Commit 691cf6245ce for nodejs
commit 691cf6245ce585cba223192e944b6dd38e9ec71a
Author: Node.js GitHub Bot <github-bot@iojs.org>
Date: Tue Sep 29 04:57:54 2026 -0400
deps: update lief to 1.0.0
PR-URL: https://github.com/nodejs/node/pull/66345
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
diff --git a/deps/LIEF/LICENSE b/deps/LIEF/LICENSE
index 0c225d7eeb8..f0c1a1afd4c 100644
--- a/deps/LIEF/LICENSE
+++ b/deps/LIEF/LICENSE
@@ -186,8 +186,8 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.
- Copyright 2017 - 2025 R. Thomas
- Copyright 2017 - 2025 Quarkslab
+ Copyright 2017 - 2026 R. Thomas
+ Copyright 2017 - 2026 Quarkslab
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/README.md b/deps/LIEF/README.md
index 0276c436d97..4e7c41949f3 100644
--- a/deps/LIEF/README.md
+++ b/deps/LIEF/README.md
@@ -17,28 +17,39 @@ modify and abstract ELF, PE and MachO formats.
**Main features**:
- * **Parsing**: LIEF can parse [ELF](https://lief.re/doc/latest/formats/elf/index.html), [PE](https://lief.re/doc/latest/formats/pe/index.html), [MachO](https://lief.re/doc/latest/formats/macho/index.html), [COFF](https://lief.re/doc/latest/formats/coff/index.html), OAT, DEX, VDEX, ART and provides an user-friendly API to access to internals.
- * **Modify**: LIEF can use to modify some parts of these formats (adding a section, changing a symbol's name, ...)
+ * **Parsing**: LIEF can parse [ELF](https://lief.re/doc/latest/formats/elf/index.html), [PE](https://lief.re/doc/latest/formats/pe/index.html), [MachO](https://lief.re/doc/latest/formats/macho/index.html), [COFF](https://lief.re/doc/latest/formats/coff/index.html), OAT, DEX, VDEX, ART and provides a user-friendly API to access their internals.
+ * **Modify**: LIEF can be used to modify some parts of these formats (adding a section, changing a symbol's name, ...)
* **Abstract**: Three formats have common features like sections, symbols, entry point... LIEF factors them.
- * **API**: LIEF can be used in [C++](https://lief.re/doc/latest/doxygen/), Python, [Rust](https://lief-rs.s3.fr-par.scw.cloud/doc/latest/lief/index.html) and C
+ * **API**: You can use LIEF via [C++](https://lief.re/doc/latest/doxygen/), Python, [Rust](https://lief-rs.s3.fr-par.scw.cloud/doc/latest/lief/index.html), C and
+ [Node.js](https://github.com/Piebald-AI/node-lief) (unofficial, AI-generated)
**Extended features**:
+ * [**Runtime**](https://lief.re/doc/latest/runtime/intro.html)
* [**DWARF/PDB** Support](https://lief.re/doc/latest/extended/debug_info/index.html)
* [**Objective-C** Metadata](https://lief.re/doc/latest/extended/objc/index.html)
* [**Dyld Shared Cache**](https://lief.re/doc/latest/extended/dsc/index.html) with support for extracting Dylib
* [**Disassembler**](https://lief.re/doc/latest/extended/disassembler/index.html): AArch64, x86/x86-64, ARM, RISC-V, Mips, PowerPC, eBPF
- * [**Assembler**](https://lief.re/doc/latest/extended/assembler/index.html): AArch64, x86/x86-64
+ * [**Assembler**](https://lief.re/doc/latest/extended/assembler/index.html): AArch64, x86/x86-64, RISC-V
**Plugins**:
* [**Ghidra**](https://lief.re/doc/latest/plugins/ghidra/index.html)
* [**BinaryNinja**](https://lief.re/doc/latest/plugins/binaryninja/index.html)
+# Sponsors
+
+<br />
+<p align="center">
+<a href="https://quansight.com/" target="_blank">
+<img width="300px" src="https://lief.re/quansight_logo.jpg"/><br />
+</a>
+</p>
+
# Content
- [About](#about)
-- [Download / Install](#downloads--install)
+- [Downloads / Install](#downloads--install)
- [Getting started](#getting-started)
- [Blog](https://lief.re/blog/)
- [Documentation](#documentation)
@@ -56,21 +67,21 @@ modify and abstract ELF, PE and MachO formats.
- [ELF Coredump](https://lief.re/doc/latest/tutorials/12_elf_coredump.html)
- [PE Authenticode](https://lief.re/doc/latest/tutorials/13_pe_authenticode.html)
- [Contact](#contact)
-- [About](#about)
+- [About](#about-1)
- [Authors](#authors)
- [License](#license)
- [Bibtex](#bibtex)
## Downloads / Install
-## C++
+### C++
```cmake
find_package(LIEF REQUIRED)
target_link_libraries(my-project LIEF::LIEF)
```
-## Rust
+### Rust
```toml
[package]
@@ -79,10 +90,16 @@ version = "0.0.1"
edition = "2021"
[dependencies]
-lief = "0.17.1"
+lief = "1.0.0"
```
-## Python
+### Homebrew
+
+```console
+brew install lief
+```
+
+### Python
To install the latest **version** (release):
@@ -102,7 +119,7 @@ pip install [--user] --force-reinstall --index-url https://lief.s3-website.fr-pa
- **Nightly**:
* SDK: https://lief.s3-website.fr-par.scw.cloud/latest/sdk
* Python Wheels: https://lief.s3-website.fr-par.scw.cloud/latest/lief
-- **v0.17.1**: https://github.com/lief-project/LIEF/releases/tag/0.17.1
+- **v1.0.0**: https://github.com/lief-project/LIEF/releases/tag/1.0.0
Here are guides to install or integrate LIEF:
@@ -124,15 +141,14 @@ for section in binary.sections:
print(section.name, section.virtual_address)
# PE
-binary = lief.parse("C:\\Windows\\explorer.exe")
-
-if rheader := pe.rich_header:
+binary = lief.parse(r"C:\Windows\explorer.exe")
+if (rheader := binary.rich_header) is not None:
print(rheader.key)
# Mach-O
binary = lief.parse("/usr/bin/ls")
-for fixup in binary.dyld_chained_fixups:
- print(fixup)
+if (fixups := binary.dyld_chained_fixups) is not None:
+ print(fixups)
```
### Rust
@@ -153,27 +169,30 @@ if let Some(Binary::PE(pe)) = Binary::parse(path.as_str()) {
### C++
```cpp
+#include <iostream>
#include <LIEF/LIEF.hpp>
int main(int argc, char** argv) {
// ELF
if (std::unique_ptr<const LIEF::ELF::Binary> elf = LIEF::ELF::Parser::parse("/bin/ls")) {
for (const LIEF::ELF::Section& section : elf->sections()) {
- std::cout << section->name() << ' ' << section->virtual_address() << '\n';
+ std::cout << section.name() << ' ' << section.virtual_address() << '\n';
}
}
// PE
if (std::unique_ptr<const LIEF::PE::Binary> pe = LIEF::PE::Parser::parse("C:\\Windows\\explorer.exe")) {
- if (const LIEF::PE::RichHeader* rheader : pe->rich_header()) {
+ if (const LIEF::PE::RichHeader* rheader = pe->rich_header()) {
std::cout << rheader->key() << '\n';
}
}
// Mach-O
if (std::unique_ptr<LIEF::MachO::FatBinary> macho = LIEF::MachO::Parser::parse("/bin/ls")) {
- for (const LIEF::MachO::DyldChainedFixups& fixup : macho->dyld_chained_fixups()) {
- std::cout << fixup << '\n';
+ for (const LIEF::MachO::Binary& bin : *macho) {
+ if (const LIEF::MachO::DyldChainedFixups* fixups = bin.dyld_chained_fixups()) {
+ std::cout << *fixups << '\n';
+ }
}
}
@@ -182,25 +201,6 @@ int main(int argc, char** argv) {
```
-### C (Limited API)
-
-```cpp
-#include <LIEF/LIEF.h>
-
-int main(int argc, char** argv) {
- Elf_Binary_t* elf = elf_parse("/usr/bin/ls");
-
- Elf_Section_t** sections = elf->sections;
-
- for (size_t i = 0; sections[i] != NULL; ++i) {
- printf("%s\n", sections[i]->name);
- }
-
- elf_binary_destroy(elf);
- return 0;
-}
-```
-
## Documentation
* [Main documentation](https://lief.re/doc/latest/index.html)
@@ -220,7 +220,7 @@ Romain Thomas ([@rh0main](https://www.romainthomas.fr/)) - Formerly at [Quarksla
### License
-LIEF is provided under the [Apache 2.0 license](https://github.com/lief-project/LIEF/blob/0.17.1/LICENSE).
+[Apache 2.0](https://github.com/lief-project/LIEF/blob/1.0.0/LICENSE).
### Bibtex
@@ -233,5 +233,3 @@ LIEF is provided under the [Apache 2.0 license](https://github.com/lief-project/
year = "2017"
}
```
-
-
diff --git a/deps/LIEF/config/mbedtls/config.h b/deps/LIEF/config/mbedtls/config.h
index 1007c99aee0..fc29d0b91f8 100644
--- a/deps/LIEF/config/mbedtls/config.h
+++ b/deps/LIEF/config/mbedtls/config.h
@@ -1,5 +1,9 @@
#include "mbedtls/mbedtls_config.h"
-#if defined (MBEDTLS_ARCH_IS_X86)
-#undef MBEDTLS_AESNI_C
+#if defined(MBEDTLS_ARCH_IS_X86)
+ #undef MBEDTLS_AESNI_C
+#endif
+
+#if defined(MBEDTLS_DEBUG_C)
+ #undef MBEDTLS_DEBUG_C
#endif
diff --git a/deps/LIEF/config/mbedtls/psa_config.h b/deps/LIEF/config/mbedtls/psa_config.h
new file mode 100644
index 00000000000..836d9b1461b
--- /dev/null
+++ b/deps/LIEF/config/mbedtls/psa_config.h
@@ -0,0 +1,14 @@
+// Disable MbedTLS options that are not thread-safe. See
+// `tests/scripts/components-sanitizers.sh` in the MbedTLS tree: both options
+// are unset there when building with MBEDTLS_THREADING_PTHREAD under TSan.
+#if defined(MBEDTLS_THREADING_C)
+ // Self-tests do not currently use multiple threads.
+ #if defined(MBEDTLS_SELF_TEST)
+ #undef MBEDTLS_SELF_TEST
+ #endif
+
+ // Interruptible ECC operations are not thread-safe.
+ #if defined(MBEDTLS_ECP_RESTARTABLE)
+ #undef MBEDTLS_ECP_RESTARTABLE
+ #endif
+#endif
diff --git a/deps/LIEF/include/LIEF/ART.hpp b/deps/LIEF/include/LIEF/ART.hpp
index 7d920b61be4..4695f8f6c42 100644
--- a/deps/LIEF/include/LIEF/ART.hpp
+++ b/deps/LIEF/include/LIEF/ART.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,10 +19,10 @@
#include "LIEF/config.h"
#if defined(LIEF_ART_SUPPORT)
-#include "LIEF/ART/Parser.hpp"
-#include "LIEF/ART/utils.hpp"
-#include "LIEF/ART/File.hpp"
-#include "LIEF/ART/EnumToString.hpp"
+ #include "LIEF/ART/Parser.hpp"
+ #include "LIEF/ART/utils.hpp"
+ #include "LIEF/ART/File.hpp"
+ #include "LIEF/ART/EnumToString.hpp"
#endif
#endif
diff --git a/deps/LIEF/include/LIEF/ART/EnumToString.hpp b/deps/LIEF/include/LIEF/ART/EnumToString.hpp
index a377b91a357..82f0b104bcd 100644
--- a/deps/LIEF/include/LIEF/ART/EnumToString.hpp
+++ b/deps/LIEF/include/LIEF/ART/EnumToString.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -37,4 +37,3 @@ LIEF_API const char* to_string(ART_44::IMAGE_ROOTS e);
} // namespace LIEF
#endif
-
diff --git a/deps/LIEF/include/LIEF/ART/File.hpp b/deps/LIEF/include/LIEF/ART/File.hpp
index ea00a53ac18..9f1c8ee330c 100644
--- a/deps/LIEF/include/LIEF/ART/File.hpp
+++ b/deps/LIEF/include/LIEF/ART/File.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,10 +31,10 @@ class LIEF_API File : public Object {
public:
File& operator=(const File& copy) = delete;
- File(const File& copy) = delete;
+ File(const File& copy) = delete;
- const Header& header() const;
- Header& header();
+ const Header& header() const LIEF_LIFETIMEBOUND;
+ Header& header() LIEF_LIFETIMEBOUND;
void accept(Visitor& visitor) const override;
diff --git a/deps/LIEF/include/LIEF/ART/Header.hpp b/deps/LIEF/include/LIEF/ART/Header.hpp
index 3aef2eb4e20..00eaf63c6a9 100644
--- a/deps/LIEF/include/LIEF/ART/Header.hpp
+++ b/deps/LIEF/include/LIEF/ART/Header.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -85,43 +85,43 @@ class LIEF_API Header : public Object {
~Header() override;
private:
- magic_t magic_;
- art_version_t version_;
+ magic_t magic_{};
+ art_version_t version_ = 0;
- uint32_t image_begin_;
- uint32_t image_size_;
+ uint32_t image_begin_ = 0;
+ uint32_t image_size_ = 0;
- uint32_t oat_checksum_;
+ uint32_t oat_checksum_ = 0;
- uint32_t oat_file_begin_;
- uint32_t oat_file_end_;
+ uint32_t oat_file_begin_ = 0;
+ uint32_t oat_file_end_ = 0;
- uint32_t oat_data_begin_;
- uint32_t oat_data_end_;
+ uint32_t oat_data_begin_ = 0;
+ uint32_t oat_data_end_ = 0;
- int32_t patch_delta_;
- uint32_t image_roots_;
+ int32_t patch_delta_ = 0;
+ uint32_t image_roots_ = 0;
- uint32_t pointer_size_;
+ uint32_t pointer_size_ = 0;
- bool compile_pic_;
+ bool compile_pic_ = false;
- uint32_t nb_sections_;
- uint32_t nb_methods_;
+ uint32_t nb_sections_ = 0;
+ uint32_t nb_methods_ = 0;
- bool is_pic_;
+ bool is_pic_ = false;
// From ART 29
// ===========
- uint32_t boot_image_begin_;
- uint32_t boot_image_size_;
+ uint32_t boot_image_begin_ = 0;
+ uint32_t boot_image_size_ = 0;
- uint32_t boot_oat_begin_;
- uint32_t boot_oat_size_;
+ uint32_t boot_oat_begin_ = 0;
+ uint32_t boot_oat_size_ = 0;
- STORAGE_MODES storage_mode_;
+ STORAGE_MODES storage_mode_ = STORAGE_MODES::STORAGE_UNCOMPRESSED;
- uint32_t data_size_;
+ uint32_t data_size_ = 0;
};
} // Namespace ART
diff --git a/deps/LIEF/include/LIEF/ART/Parser.hpp b/deps/LIEF/include/LIEF/ART/Parser.hpp
index 21d2250e4e9..5ff6bed37e7 100644
--- a/deps/LIEF/include/LIEF/ART/Parser.hpp
+++ b/deps/LIEF/include/LIEF/ART/Parser.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,14 +28,15 @@ namespace ART {
class File;
-/// Class which parses an ART file and transform into a ART::File object
+/// Class which parses an ART file and transforms it into an ART::File object
class LIEF_API Parser {
public:
static std::unique_ptr<File> parse(const std::string& file);
- static std::unique_ptr<File> parse(std::vector<uint8_t> data, const std::string& name = "");
+ static std::unique_ptr<File> parse(std::vector<uint8_t> data,
+ const std::string& name = "");
Parser& operator=(const Parser& copy) = delete;
- Parser(const Parser& copy) = delete;
+ Parser(const Parser& copy) = delete;
private:
Parser();
@@ -95,8 +96,8 @@ class LIEF_API Parser {
//// Parse a **Single** java.lang.DexCache object
- //template<typename ART_T, typename PTR_T>
- //void parse_class_roots(size_t object_offset);
+ // template<typename ART_T, typename PTR_T>
+ // void parse_class_roots(size_t object_offset);
std::unique_ptr<File> file_;
std::unique_ptr<BinaryStream> stream_;
diff --git a/deps/LIEF/include/LIEF/ART/enums.hpp b/deps/LIEF/include/LIEF/ART/enums.hpp
index 2165ea497bd..e149609b43e 100644
--- a/deps/LIEF/include/LIEF/ART/enums.hpp
+++ b/deps/LIEF/include/LIEF/ART/enums.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,32 +21,32 @@ namespace ART {
enum STORAGE_MODES {
STORAGE_UNCOMPRESSED = 0,
- STORAGE_LZ4 = 1,
- STORAGE_LZ4HC = 2,
+ STORAGE_LZ4 = 1,
+ STORAGE_LZ4HC = 2,
};
namespace ART_17 {
enum IMAGE_METHODS {
- RESOLUTION_METHOD = 0,
- IMT_CONFLICT_METHOD = 1,
- IMT_UNIMPLEMENTED_METHOD = 2,
- CALLEE_SAVE_METHOD = 3,
- REFS_ONLY_SAVE_METHOD = 4,
+ RESOLUTION_METHOD = 0,
+ IMT_CONFLICT_METHOD = 1,
+ IMT_UNIMPLEMENTED_METHOD = 2,
+ CALLEE_SAVE_METHOD = 3,
+ REFS_ONLY_SAVE_METHOD = 4,
REFS_AND_ARGS_SAVE_METHOD = 5,
};
enum IMAGE_SECTIONS {
- SECTION_OBJECTS = 0,
- SECTION_ART_FIELDS = 1,
- SECTION_ART_METHODS = 2,
- SECTION_INTERNED_STRINGS = 3,
- SECTION_IMAGE_BITMAP = 4,
+ SECTION_OBJECTS = 0,
+ SECTION_ART_FIELDS = 1,
+ SECTION_ART_METHODS = 2,
+ SECTION_INTERNED_STRINGS = 3,
+ SECTION_IMAGE_BITMAP = 4,
};
enum IMAGE_ROOTS {
- DEX_CACHES = 0,
- CLASS_ROOTS = 1,
+ DEX_CACHES = 0,
+ CLASS_ROOTS = 1,
};
@@ -59,19 +59,18 @@ using ART_17::IMAGE_METHODS;
using ART_17::IMAGE_ROOTS;
enum IMAGE_SECTIONS {
- SECTION_OBJECTS = 0,
- SECTION_ART_FIELDS = 1,
- SECTION_ART_METHODS = 2,
- SECTION_RUNTIME_METHODS = 3, // New in ART 29
- SECTION_IMT_CONFLICT_TABLES = 4, // New in ART 29
- SECTION_DEX_CACHE_ARRAYS = 5, // New in ART 29
- SECTION_INTERNED_STRINGS = 6,
- SECTION_CLASS_TABLE = 7, // New in ART 29
- SECTION_IMAGE_BITMAP = 8,
+ SECTION_OBJECTS = 0,
+ SECTION_ART_FIELDS = 1,
+ SECTION_ART_METHODS = 2,
+ SECTION_RUNTIME_METHODS = 3, // New in ART 29
+ SECTION_IMT_CONFLICT_TABLES = 4, // New in ART 29
+ SECTION_DEX_CACHE_ARRAYS = 5, // New in ART 29
+ SECTION_INTERNED_STRINGS = 6,
+ SECTION_CLASS_TABLE = 7, // New in ART 29
+ SECTION_IMAGE_BITMAP = 8,
};
-
} // Namespace ART_29
@@ -81,16 +80,16 @@ using ART_29::IMAGE_METHODS;
using ART_29::IMAGE_ROOTS;
enum IMAGE_SECTIONS {
- SECTION_OBJECTS = 0,
- SECTION_ART_FIELDS = 1,
- SECTION_ART_METHODS = 2,
- SECTION_RUNTIME_METHODS = 3,
- SECTION_IM_TABLES = 4, // New in ART 30
- SECTION_IMT_CONFLICT_TABLES = 5,
- SECTION_DEX_CACHE_ARRAYS = 6,
- SECTION_INTERNED_STRINGS = 7,
- SECTION_CLASS_TABLE = 8,
- SECTION_IMAGE_BITMAP = 9,
+ SECTION_OBJECTS = 0,
+ SECTION_ART_FIELDS = 1,
+ SECTION_ART_METHODS = 2,
+ SECTION_RUNTIME_METHODS = 3,
+ SECTION_IM_TABLES = 4, // New in ART 30
+ SECTION_IMT_CONFLICT_TABLES = 5,
+ SECTION_DEX_CACHE_ARRAYS = 6,
+ SECTION_INTERNED_STRINGS = 7,
+ SECTION_CLASS_TABLE = 8,
+ SECTION_IMAGE_BITMAP = 9,
};
} // Namespace ART_30
@@ -100,19 +99,19 @@ namespace ART_44 {
using ART_30::IMAGE_SECTIONS;
enum IMAGE_METHODS {
- RESOLUTION_METHOD = 0,
- IMT_CONFLICT_METHOD = 1,
- IMT_UNIMPLEMENTED_METHOD = 2,
+ RESOLUTION_METHOD = 0,
+ IMT_CONFLICT_METHOD = 1,
+ IMT_UNIMPLEMENTED_METHOD = 2,
SAVE_ALL_CALLEE_SAVES_METHOD = 3, // New in ART 44
- SAVE_REFS_ONLY_METHOD = 4, // New in ART 44
- SAVE_REFS_AND_ARGS_METHOD = 5, // New in ART 44
- SAVE_EVERYTHING_METHOD = 6, // New in ART 44
+ SAVE_REFS_ONLY_METHOD = 4, // New in ART 44
+ SAVE_REFS_AND_ARGS_METHOD = 5, // New in ART 44
+ SAVE_EVERYTHING_METHOD = 6, // New in ART 44
};
enum IMAGE_ROOTS {
- DEX_CACHES = 0,
- CLASS_ROOTS = 1,
+ DEX_CACHES = 0,
+ CLASS_ROOTS = 1,
CLASS_LOADER = 2, // New in ART 44
};
diff --git a/deps/LIEF/include/LIEF/ART/hash.hpp b/deps/LIEF/include/LIEF/ART/hash.hpp
index 1aaa7d3acd9..66f0a6a7e11 100644
--- a/deps/LIEF/include/LIEF/ART/hash.hpp
+++ b/deps/LIEF/include/LIEF/ART/hash.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -35,8 +35,8 @@ class LIEF_API Hash : public LIEF::Hash {
using LIEF::Hash::visit;
public:
- void visit(const File& file) override;
- void visit(const Header& header) override;
+ void visit(const File& file) override;
+ void visit(const Header& header) override;
~Hash() override;
};
diff --git a/deps/LIEF/include/LIEF/ART/java_structures.hpp b/deps/LIEF/include/LIEF/ART/java_structures.hpp
index da3514aaffe..5b78d94f981 100644
--- a/deps/LIEF/include/LIEF/ART/java_structures.hpp
+++ b/deps/LIEF/include/LIEF/ART/java_structures.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -49,25 +49,25 @@ struct brooks_read_barrier_t {
template<class T>
struct jobject_t {
heap_reference_t klass;
- uint32_t monitor;
- T brooks_read_barrier;
+ uint32_t monitor;
+ T brooks_read_barrier;
};
template<>
struct jobject_t<no_brooks_read_barrier_t> {
heap_reference_t klass;
- uint32_t monitor;
+ uint32_t monitor;
};
template<class T = no_brooks_read_barrier_t>
struct ALIGNED_(4) jarray_t {
jobject_t<T> object;
- int32_t length;
+ int32_t length;
uint32_t* elements;
};
template<class T = no_brooks_read_barrier_t>
struct ALIGNED_(4) jclass_t {
- jobject_t<T> object;
+ jobject_t<T> object;
heap_reference_t class_loader;
heap_reference_t component_type;
@@ -86,8 +86,8 @@ struct ALIGNED_(4) jclass_t {
uint64_t virtual_methods;
uint32_t class_size;
uint32_t clinit_thread_id;
- int32_t dex_class_def_idx;
- int32_t dex_type_idx;
+ int32_t dex_class_def_idx;
+ int32_t dex_type_idx;
uint32_t num_direct_methods;
uint32_t num_instance_fields;
uint32_t num_reference_instance_fields;
@@ -97,15 +97,15 @@ struct ALIGNED_(4) jclass_t {
uint32_t object_size;
uint32_t primitive_type;
uint32_t reference_instance_offsets;
- int32_t status;
+ int32_t status;
};
template<class T = no_brooks_read_barrier_t>
struct ALIGNED_(4) jstring_t {
jobject_t<T> object;
- int32_t count;
- uint32_t hash_code;
- uint16_t* value;
+ int32_t count;
+ uint32_t hash_code;
+ uint16_t* value;
};
template<class T = no_brooks_read_barrier_t>
@@ -118,7 +118,7 @@ struct ALIGNED_(4) jdex_cache_t {
heap_reference_t resolved_methods;
heap_reference_t resolved_types;
heap_reference_t strings;
- uint64_t dex_file;
+ uint64_t dex_file;
};
@@ -132,7 +132,7 @@ namespace ART_29 {
/// Namespace related to the Java part of ART 29
namespace Java {
-using heap_reference_t = ART_17::Java::heap_reference_t;
+using heap_reference_t = ART_17::Java::heap_reference_t;
using brooks_read_barrier_t = ART_17::Java::brooks_read_barrier_t;
template<class T = no_brooks_read_barrier_t>
@@ -143,9 +143,9 @@ using jarray_t = ART_17::Java::jarray_t<T>;
template<class T = no_brooks_read_barrier_t>
struct ALIGNED_(4) jclass_t {
- jobject_t<T> object;
+ jobject_t<T> object;
- heap_reference_t annotation_type; // ADDED in ART 29
+ heap_reference_t annotation_type; // ADDED in ART 29
heap_reference_t class_loader;
heap_reference_t component_type;
heap_reference_t dex_cache;
@@ -153,19 +153,19 @@ struct ALIGNED_(4) jclass_t {
heap_reference_t iftable;
heap_reference_t name;
heap_reference_t super_class;
- heap_reference_t verify_error; // Type CHANGED from Class to Object
+ heap_reference_t verify_error; // Type CHANGED from Class to Object
heap_reference_t vtable;
uint32_t access_flags;
- uint64_t dex_cache_strings; // direct_methods REPLACED with dex_cache_string
+ uint64_t dex_cache_strings; // direct_methods REPLACED with dex_cache_string
uint64_t ifields;
- uint64_t methods; // ADDED in ART 29
+ uint64_t methods; // ADDED in ART 29
uint64_t sfields;
- uint32_t class_flags; // virtual_methods REPLACED with class_flags
+ uint32_t class_flags; // virtual_methods REPLACED with class_flags
uint32_t class_size;
uint32_t clinit_thread_id;
- int32_t dex_class_def_idx;
- int32_t dex_type_idx;
+ int32_t dex_class_def_idx;
+ int32_t dex_type_idx;
// uint32_t num_direct_methods; // REMOVED in ART 29
// uint32_t num_instance_fields; // REMOVED in ART 29
uint32_t num_reference_instance_fields;
@@ -175,10 +175,10 @@ struct ALIGNED_(4) jclass_t {
uint32_t object_size;
uint32_t primitive_type;
uint32_t reference_instance_offsets;
- int32_t status;
+ int32_t status;
- uint16_t copied_methods_offset; // ADDED in ART 29
- uint16_t virtual_methods_offset; // ADDED in ART 29
+ uint16_t copied_methods_offset; // ADDED in ART 29
+ uint16_t virtual_methods_offset; // ADDED in ART 29
};
@@ -192,20 +192,18 @@ struct ALIGNED_(4) jdex_cache_t {
heap_reference_t dex;
heap_reference_t location;
- uint64_t dex_file; // LOCATION CHANGED
- uint64_t resolved_fields; // TYPE CHANGED from heap_reference_t to uint64_t
- uint64_t resolved_methods; // TYPE CHANGED from heap_reference_t to uint64_t
- uint64_t resolved_types; // TYPE CHANGED from heap_reference_t to uint64_t
- uint64_t strings; // TYPE CHANGED from heap_reference_t to uint64_t
- uint32_t num_resolved_fields; // ADDED in ART 29
- uint32_t num_resolved_methods; // ADDED in ART 29
- uint32_t num_resolved_types; // ADDED in ART 29
- uint32_t num_strings; // ADDED in ART 29
+ uint64_t dex_file; // LOCATION CHANGED
+ uint64_t resolved_fields; // TYPE CHANGED from heap_reference_t to uint64_t
+ uint64_t resolved_methods; // TYPE CHANGED from heap_reference_t to uint64_t
+ uint64_t resolved_types; // TYPE CHANGED from heap_reference_t to uint64_t
+ uint64_t strings; // TYPE CHANGED from heap_reference_t to uint64_t
+ uint32_t num_resolved_fields; // ADDED in ART 29
+ uint32_t num_resolved_methods; // ADDED in ART 29
+ uint32_t num_resolved_types; // ADDED in ART 29
+ uint32_t num_strings; // ADDED in ART 29
};
-
-
} // Namespace Java
} // Namespace ART_29
@@ -218,7 +216,7 @@ namespace ART_30 {
/// Namespace related to the Java part of ART 30
namespace Java {
-using heap_reference_t = ART_29::Java::heap_reference_t;
+using heap_reference_t = ART_29::Java::heap_reference_t;
using brooks_read_barrier_t = ART_29::Java::brooks_read_barrier_t;
template<class T = no_brooks_read_barrier_t>
@@ -250,7 +248,7 @@ namespace ART_44 {
namespace Java {
-using heap_reference_t = ART_30::Java::heap_reference_t;
+using heap_reference_t = ART_30::Java::heap_reference_t;
using brooks_read_barrier_t = ART_30::Java::brooks_read_barrier_t;
template<class T = no_brooks_read_barrier_t>
@@ -261,13 +259,13 @@ using jarray_t = ART_30::Java::jarray_t<T>;
template<class T = no_brooks_read_barrier_t>
struct ALIGNED_(4) jclass_t {
- jobject_t<T> object;
+ jobject_t<T> object;
// heap_reference_t annotation_type; // REMOVED in ART 44
heap_reference_t class_loader;
heap_reference_t component_type;
heap_reference_t dex_cache;
- heap_reference_t ext_data; // ADDED in ART 44
+ heap_reference_t ext_data; // ADDED in ART 44
heap_reference_t iftable;
heap_reference_t name;
heap_reference_t super_class;
@@ -279,19 +277,19 @@ struct ALIGNED_(4) jclass_t {
uint64_t ifields;
uint64_t methods;
uint64_t sfields;
- uint32_t access_flags; // ADDED in ART 44
+ uint32_t access_flags; // ADDED in ART 44
uint32_t class_flags;
uint32_t class_size;
uint32_t clinit_thread_id;
- int32_t dex_class_def_idx;
- int32_t dex_type_idx;
+ int32_t dex_class_def_idx;
+ int32_t dex_type_idx;
uint32_t num_reference_instance_fields;
uint32_t num_reference_static_fields;
uint32_t object_size;
- uint32_t object_size_alloc_fast_path; // ADDED in ART 44
+ uint32_t object_size_alloc_fast_path; // ADDED in ART 44
uint32_t primitive_type;
uint32_t reference_instance_offsets;
- int32_t status;
+ int32_t status;
uint16_t copied_methods_offset;
uint16_t virtual_methods_offset;
};
@@ -310,19 +308,19 @@ struct ALIGNED_(4) jdex_cache_t {
// heap_reference_t dex; // REMOVED in ART 44
heap_reference_t location;
- uint32_t num_resolved_call_sites; // ADDED in ART 44 (related to DEX38 format)
- uint64_t dex_file;
- uint64_t resolved_call_sites; // ADDED in ART 44 (related to DEX38 format)
- uint64_t resolved_fields;
- uint64_t resolved_method_types; // ADDED in ART 44
- uint64_t resolved_methods;
- uint64_t resolved_types;
- uint64_t strings;
- uint32_t num_resolved_fields;
- uint32_t num_resolved_methods_types; // ADDED in ART 44
- uint32_t num_resolved_methods;
- uint32_t num_resolved_types;
- uint32_t num_strings;
+ uint32_t num_resolved_call_sites; // ADDED in ART 44 (related to DEX38 format)
+ uint64_t dex_file;
+ uint64_t resolved_call_sites; // ADDED in ART 44 (related to DEX38 format)
+ uint64_t resolved_fields;
+ uint64_t resolved_method_types; // ADDED in ART 44
+ uint64_t resolved_methods;
+ uint64_t resolved_types;
+ uint64_t strings;
+ uint32_t num_resolved_fields;
+ uint32_t num_resolved_methods_types; // ADDED in ART 44
+ uint32_t num_resolved_methods;
+ uint32_t num_resolved_types;
+ uint32_t num_strings;
};
@@ -338,7 +336,7 @@ namespace ART_46 {
/// Namespace related to the Java part of ART 46
namespace Java {
-using heap_reference_t = ART_44::Java::heap_reference_t;
+using heap_reference_t = ART_44::Java::heap_reference_t;
using brooks_read_barrier_t = ART_44::Java::brooks_read_barrier_t;
template<class T = no_brooks_read_barrier_t>
@@ -367,7 +365,7 @@ namespace ART_56 {
/// Namespace related to the Java part of ART 46
namespace Java {
-using heap_reference_t = ART_46::Java::heap_reference_t;
+using heap_reference_t = ART_46::Java::heap_reference_t;
using brooks_read_barrier_t = ART_46::Java::brooks_read_barrier_t;
template<class T = no_brooks_read_barrier_t>
@@ -393,5 +391,4 @@ using jdex_cache_t = ART_46::Java::jdex_cache_t<T>;
} // Namespace LIEF
-
#endif
diff --git a/deps/LIEF/include/LIEF/ART/json.hpp b/deps/LIEF/include/LIEF/ART/json.hpp
index 3302272bd8c..502f5d6f48c 100644
--- a/deps/LIEF/include/LIEF/ART/json.hpp
+++ b/deps/LIEF/include/LIEF/ART/json.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/ART/types.hpp b/deps/LIEF/include/LIEF/ART/types.hpp
index 706e4143d08..f88380ba0ca 100644
--- a/deps/LIEF/include/LIEF/ART/types.hpp
+++ b/deps/LIEF/include/LIEF/ART/types.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/ART/utils.hpp b/deps/LIEF/include/LIEF/ART/utils.hpp
index fc4bcd8e3ee..4e0e47495fe 100644
--- a/deps/LIEF/include/LIEF/ART/utils.hpp
+++ b/deps/LIEF/include/LIEF/ART/utils.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/ASM.hpp b/deps/LIEF/include/LIEF/ASM.hpp
index 5bc1a376b2c..a09dd1f34b3 100644
--- a/deps/LIEF/include/LIEF/ASM.hpp
+++ b/deps/LIEF/include/LIEF/ASM.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/Abstract.hpp b/deps/LIEF/include/LIEF/Abstract.hpp
index bc10e669486..ee5162f860f 100644
--- a/deps/LIEF/include/LIEF/Abstract.hpp
+++ b/deps/LIEF/include/LIEF/Abstract.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/Abstract/Binary.hpp b/deps/LIEF/include/LIEF/Abstract/Binary.hpp
index 8e4f738a76e..1944a94ad24 100644
--- a/deps/LIEF/include/LIEF/Abstract/Binary.hpp
+++ b/deps/LIEF/include/LIEF/Abstract/Binary.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@
#include <memory>
#include <unordered_map>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/Object.hpp"
#include "LIEF/iterators.hpp"
@@ -58,7 +59,6 @@ class Engine;
/// Subclasses like LIEF::PE::Binary implement format-specific API
class LIEF_API Binary : public Object {
public:
-
/// Enumeration of virtual address types used for patching and memory access.
enum class VA_TYPES {
/// Automatically determine if the address is absolute or relative
@@ -69,7 +69,7 @@ class LIEF_API Binary : public Object {
RVA = 1,
/// Absolute Virtual Address.
- VA = 2
+ VA = 2,
};
enum FORMATS {
@@ -131,13 +131,15 @@ class LIEF_API Binary : public Object {
return get_abstract_header();
}
- /// Return an iterator over the abstracted symbols in which the elements **can** be modified
- it_symbols symbols() {
+ /// Return an iterator over the abstracted symbols in which the elements **can**
+ /// be modified
+ it_symbols symbols() LIEF_LIFETIMEBOUND {
return get_abstract_symbols();
}
- /// Return an iterator over the abstracted symbols in which the elements **can't** be modified
- it_const_symbols symbols() const {
+ /// Return an iterator over the abstracted symbols in which the elements
+ /// **can't** be modified
+ it_const_symbols symbols() const LIEF_LIFETIMEBOUND {
return const_cast<Binary*>(this)->get_abstract_symbols();
}
@@ -148,30 +150,30 @@ class LIEF_API Binary : public Object {
/// Return the Symbol with the given name
/// If the symbol does not exist, return a nullptr
- const Symbol* get_symbol(const std::string& name) const;
+ const Symbol* get_symbol(const std::string& name) const LIEF_LIFETIMEBOUND;
- Symbol* get_symbol(const std::string& name) {
+ Symbol* get_symbol(const std::string& name) LIEF_LIFETIMEBOUND {
return const_cast<Symbol*>(static_cast<const Binary*>(this)->get_symbol(name));
}
/// Return an iterator over the binary's sections (LIEF::Section)
- it_sections sections() {
+ it_sections sections() LIEF_LIFETIMEBOUND {
return get_abstract_sections();
}
- it_const_sections sections() const {
+ it_const_sections sections() const LIEF_LIFETIMEBOUND {
return const_cast<Binary*>(this)->get_abstract_sections();
}
/// Remove **all** the sections in the underlying binary
virtual void remove_section(const std::string& name, bool clear = false) = 0;
- /// Return an iterator over the binary relocation (LIEF::Relocation)
- it_relocations relocations() {
+ /// Return an iterator over the binary relocations (LIEF::Relocation)
+ it_relocations relocations() LIEF_LIFETIMEBOUND {
return get_abstract_relocations();
}
- it_const_relocations relocations() const {
+ it_const_relocations relocations() const LIEF_LIFETIMEBOUND {
return const_cast<Binary*>(this)->get_abstract_relocations();
}
@@ -199,7 +201,8 @@ class LIEF_API Binary : public Object {
}
/// Return the address of the given function name
- virtual result<uint64_t> get_function_address(const std::string& func_name) const;
+ virtual result<uint64_t>
+ get_function_address(const std::string& func_name) const;
/// Method so that a ``visitor`` can visit us
void accept(Visitor& visitor) const override;
@@ -212,7 +215,8 @@ class LIEF_API Binary : public Object {
/// @param[in] patch_value Patch to apply
/// @param[in] addr_type Specify if the address should be used as an
/// absolute virtual address or a RVA
- virtual void patch_address(uint64_t address, const std::vector<uint8_t>& patch_value,
+ virtual void patch_address(uint64_t address,
+ const std::vector<uint8_t>& patch_value,
VA_TYPES addr_type = VA_TYPES::AUTO) = 0;
/// Patch the address with the given value
@@ -220,23 +224,26 @@ class LIEF_API Binary : public Object {
/// @param[in] address Address to patch
/// @param[in] patch_value Patch to apply
/// @param[in] size Size of the value in **bytes** (1, 2, ... 8)
- /// @param[in] addr_type Specify if the address should be used as an absolute virtual address or an RVA
- virtual void patch_address(uint64_t address, uint64_t patch_value, size_t size = sizeof(uint64_t),
+ /// @param[in] addr_type Specify if the address should be used as an absolute
+ /// virtual address or an RVA
+ virtual void patch_address(uint64_t address, uint64_t patch_value,
+ size_t size = sizeof(uint64_t),
VA_TYPES addr_type = VA_TYPES::AUTO) = 0;
/// Return the content located at the given virtual address
- virtual span<const uint8_t>
- get_content_from_virtual_address(uint64_t virtual_address, uint64_t size,
- VA_TYPES addr_type = VA_TYPES::AUTO) const = 0;
+ virtual span<const uint8_t> get_content_from_virtual_address(
+ uint64_t virtual_address, uint64_t size, VA_TYPES addr_type = VA_TYPES::AUTO
+ ) const LIEF_LIFETIMEBOUND = 0;
/// Get the integer value at the given virtual address
template<class T>
- LIEF::result<T> get_int_from_virtual_address(
- uint64_t va, VA_TYPES addr_type = VA_TYPES::AUTO) const
- {
+ LIEF::result<T>
+ get_int_from_virtual_address(uint64_t va,
+ VA_TYPES addr_type = VA_TYPES::AUTO) const {
T value;
static_assert(std::is_integral<T>::value, "Require an integral type");
- span<const uint8_t> raw = get_content_from_virtual_address(va, sizeof(T), addr_type);
+ span<const uint8_t> raw =
+ get_content_from_virtual_address(va, sizeof(T), addr_type);
if (raw.empty() || raw.size() < sizeof(T)) {
return make_error_code(lief_errors::read_error);
}
@@ -270,14 +277,17 @@ class LIEF_API Binary : public Object {
/// Convert the given offset into a virtual address.
///
/// @param[in] offset The offset to convert.
- /// @param[in] slide If not 0, it will replace the default base address (if any)
- virtual result<uint64_t> offset_to_virtual_address(uint64_t offset, uint64_t slide = 0) const = 0;
+ /// @param[in] slide If not 0, it will replace the default base address (if
+ /// any)
+ virtual result<uint64_t> offset_to_virtual_address(uint64_t offset,
+ uint64_t slide = 0) const = 0;
virtual std::ostream& print(std::ostream& os) const {
return os;
}
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const Binary& binary) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const Binary& binary) {
binary.print(os);
return os;
}
@@ -293,9 +303,9 @@ class LIEF_API Binary : public Object {
/// use LIEF::pdb::load() or LIEF::pdb::DebugInfo::from_file() to get PDB debug
/// info.
///
- /// \warning This function requires LIEF's extended version otherwise it
- /// **always** return a nullptr
- DebugInfo* debug_info() const;
+ /// @warning This function requires LIEF's extended version otherwise it
+ /// **always** returns a nullptr
+ DebugInfo* debug_info() const LIEF_LIFETIMEBOUND;
/// Disassemble code starting at the given virtual address and with the given
/// size.
@@ -307,7 +317,7 @@ class LIEF_API Binary : public Object {
/// }
/// ```
///
- /// \see LIEF::assembly::Instruction
+ /// @see LIEF::assembly::Instruction
instructions_it disassemble(uint64_t address, size_t size) const;
/// Disassemble code starting at the given virtual address
@@ -319,7 +329,7 @@ class LIEF_API Binary : public Object {
/// }
/// ```
///
- /// \see LIEF::assembly::Instruction
+ /// @see LIEF::assembly::Instruction
instructions_it disassemble(uint64_t address) const;
/// Disassemble code for the given symbol name
@@ -331,13 +341,13 @@ class LIEF_API Binary : public Object {
/// }
/// ```
///
- /// \see LIEF::assembly::Instruction
+ /// @see LIEF::assembly::Instruction
instructions_it disassemble(const std::string& function) const;
/// Disassemble code provided by the given buffer at the specified
/// `address` parameter.
///
- /// \see LIEF::assembly::Instruction
+ /// @see LIEF::assembly::Instruction
instructions_it disassemble(const uint8_t* buffer, size_t size,
uint64_t address = 0) const;
@@ -345,7 +355,7 @@ class LIEF_API Binary : public Object {
/// Disassemble code provided by the given vector of bytes at the specified
/// `address` parameter.
///
- /// \see LIEF::assembly::Instruction
+ /// @see LIEF::assembly::Instruction
instructions_it disassemble(const std::vector<uint8_t>& buffer,
uint64_t address = 0) const {
return disassemble(buffer.data(), buffer.size(), address);
@@ -356,7 +366,8 @@ class LIEF_API Binary : public Object {
return disassemble(buffer.data(), buffer.size(), address);
}
- instructions_it disassemble(LIEF::span<uint8_t> buffer, uint64_t address = 0) const {
+ instructions_it disassemble(LIEF::span<uint8_t> buffer,
+ uint64_t address = 0) const {
return disassemble(buffer.data(), buffer.size(), address);
}
@@ -374,17 +385,18 @@ class LIEF_API Binary : public Object {
/// If you need to configure the assembly engine or to define addresses for
/// symbols, you can provide your own assembly::AssemblerConfig.
std::vector<uint8_t> assemble(uint64_t address, const std::string& Asm,
- assembly::AssemblerConfig& config = assembly::AssemblerConfig::default_config());
+ assembly::AssemblerConfig& config =
+ assembly::AssemblerConfig::default_config());
/// Assemble **and patch** the address with the given LLVM MCInst.
///
- /// \warning Because of ABI compatibility, this MCInst can **only be used**
+ /// @warning Because of ABI compatibility, this MCInst can **only be used**
/// with the **same** version of LLVM used by LIEF (see documentation)
std::vector<uint8_t> assemble(uint64_t address, const llvm::MCInst& inst);
/// Assemble **and patch** the address with the given LLVM MCInst.
///
- /// \warning Because of ABI compatibility, this MCInst can **only be used**
+ /// @warning Because of ABI compatibility, this MCInst can **only be used**
/// with the **same** version of LLVM used by LIEF (see documentation)
std::vector<uint8_t> assemble(uint64_t address,
const std::vector<llvm::MCInst>& insts);
@@ -393,23 +405,30 @@ class LIEF_API Binary : public Object {
/// the format of the current binary
virtual uint64_t page_size() const;
- /// Load and associate an external debug file (e.g., DWARF or PDB) with this binary.
+ /// Load and associate an external debug file (e.g., DWARF or PDB) with this
+ /// binary.
///
- /// This method attempts to load the debug information from the file located at the given path,
- /// and binds it to the current binary instance. If successful, it returns a pointer to the
- /// loaded DebugInfo object.
+ /// This method attempts to load the debug information from the file located at
+ /// the given path, and binds it to the current binary instance. If successful,
+ /// it returns a pointer to the loaded DebugInfo object.
///
- /// \param path Path to the external debug file (e.g., `.dwarf`, `.pdb`)
- /// \return Pointer to the loaded DebugInfo object on success, or `nullptr` on failure.
+ /// @param path Path to the external debug file (e.g., `.dwarf`, `.pdb`)
+ /// @return Pointer to the loaded DebugInfo object on success, or `nullptr` on
+ /// failure.
///
- /// \warning It is the caller's responsibility to ensure that the debug file is
+ /// @warning It is the caller's responsibility to ensure that the debug file is
/// compatible with the binary. Incorrect associations may lead to
/// inconsistent or invalid results.
///
- /// \note This function does not verify that the debug file matches the binary's unique
- /// identifier (e.g., build ID, GUID).
+ /// @note This function does not verify that the debug file matches the binary's
+ /// unique identifier (e.g., build ID, GUID).
DebugInfo* load_debug_info(const std::string& path);
+ /// Size of the binary when mapped in memory
+ virtual uint64_t virtual_size() const {
+ return 0;
+ }
+
protected:
FORMATS format_ = FORMATS::UNKNOWN;
mutable std::unique_ptr<DebugInfo> debug_info_;
@@ -421,14 +440,15 @@ class LIEF_API Binary : public Object {
template<uint32_t Key, class F>
LIEF_LOCAL assembly::Engine* get_cache_engine(uint64_t address, F&& f) const;
- // These functions need to be overloaded by the object that claims to extend this Abstract Binary
+ // These functions need to be overloaded by the object that claims to extend this
+ // Abstract Binary
virtual Header get_abstract_header() const = 0;
virtual symbols_t get_abstract_symbols() = 0;
virtual sections_t get_abstract_sections() = 0;
virtual relocations_t get_abstract_relocations() = 0;
- virtual functions_t get_abstract_exported_functions() const = 0;
- virtual functions_t get_abstract_imported_functions() const = 0;
+ virtual functions_t get_abstract_exported_functions() const = 0;
+ virtual functions_t get_abstract_imported_functions() const = 0;
virtual std::vector<std::string> get_abstract_imported_libraries() const = 0;
};
diff --git a/deps/LIEF/include/LIEF/Abstract/DebugInfo.hpp b/deps/LIEF/include/LIEF/Abstract/DebugInfo.hpp
index 24961cf7913..5792a14b3b0 100644
--- a/deps/LIEF/include/LIEF/Abstract/DebugInfo.hpp
+++ b/deps/LIEF/include/LIEF/Abstract/DebugInfo.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -34,13 +34,14 @@ class DebugInfo;
/// Users can use this interface to access high-level debug features like
/// resolving function addresses.
///
-/// See: LIEF::pdb::DebugInfo, LIEF::dwarf::DebugInfo
+/// @see LIEF::pdb::DebugInfo, LIEF::dwarf::DebugInfo
class LIEF_API DebugInfo {
public:
friend class Binary;
enum class FORMAT {
UNKNOWN = 0,
- DWARF, PDB,
+ DWARF,
+ PDB,
};
DebugInfo(std::unique_ptr<details::DebugInfo> impl);
@@ -61,7 +62,7 @@ class LIEF_API DebugInfo {
template<class T>
const T* as() const {
static_assert(std::is_base_of<DebugInfo, T>::value,
- "Require Instruction inheritance");
+ "Requires DebugInfo inheritance");
if (T::classof(this)) {
return static_cast<const T*>(this);
}
@@ -69,7 +70,8 @@ class LIEF_API DebugInfo {
}
/// Attempt to resolve the address of the function specified by `name`.
- virtual optional<uint64_t> find_function_address(const std::string& name) const = 0;
+ virtual optional<uint64_t>
+ find_function_address(const std::string& name) const = 0;
protected:
std::unique_ptr<details::DebugInfo> impl_;
diff --git a/deps/LIEF/include/LIEF/Abstract/Function.hpp b/deps/LIEF/include/LIEF/Abstract/Function.hpp
index 66004763d6e..f41bbc0424a 100644
--- a/deps/LIEF/include/LIEF/Abstract/Function.hpp
+++ b/deps/LIEF/include/LIEF/Abstract/Function.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -50,24 +50,21 @@ class LIEF_API Function : public Symbol {
/// returns its virtual address in the binary
EXPORTED = 1 << 3,
- /// The function is **imported** by the binary and the address() should return 0
+ /// The function is **imported** by the binary and the address() should return
+ /// 0
IMPORTED = 1 << 4,
};
public:
Function() = default;
Function(const std::string& name) :
- Symbol(name)
- {}
+ Symbol(name) {}
Function(uint64_t address) :
- Function("", address)
- {}
+ Function("", address) {}
Function(const std::string& name, uint64_t address) :
- Symbol(name, address)
- {}
+ Symbol(name, address) {}
Function(const std::string& name, uint64_t address, FLAGS flags) :
- Function(name, address)
- {
+ Function(name, address) {
flags_ = flags;
}
@@ -94,8 +91,8 @@ class LIEF_API Function : public Symbol {
return ((uint32_t)flags_ & (uint32_t)f) != 0;
}
- /// Address of the current function. For functions that are set with the FLAGS::IMPORTED flag,
- /// this value is likely 0.
+ /// Address of the current function. For functions that are set with the
+ /// FLAGS::IMPORTED flag, this value is likely 0.
uint64_t address() const {
return value_;
}
@@ -106,7 +103,8 @@ class LIEF_API Function : public Symbol {
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const Function& entry);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const Function& entry);
protected:
FLAGS flags_ = FLAGS::NONE;
@@ -118,4 +116,3 @@ LIEF_API const char* to_string(Function::FLAGS e);
ENABLE_BITMASK_OPERATORS(LIEF::Function::FLAGS);
#endif
-
diff --git a/deps/LIEF/include/LIEF/Abstract/Header.hpp b/deps/LIEF/include/LIEF/Abstract/Header.hpp
index 036e64cf5a5..55ade3dffee 100644
--- a/deps/LIEF/include/LIEF/Abstract/Header.hpp
+++ b/deps/LIEF/include/LIEF/Abstract/Header.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -67,9 +67,9 @@ class LIEF_API Header : public Object {
BITS_16 = 1LLU << 0, /// 16-bits architecture
BITS_32 = 1LLU << 1, /// 32-bits architecture
BITS_64 = 1LLU << 2, /// 64-bits architecture
- THUMB = 1LLU << 3, /// Support ARM Thumb mode
+ THUMB = 1LLU << 3, /// Support ARM Thumb mode
- ARM64E = 1LLU << 4, /// ARM64 with extended (security) features
+ ARM64E = 1LLU << 4, /// ARM64 with extended (security) features
};
enum class OBJECT_TYPES {
@@ -130,7 +130,7 @@ class LIEF_API Header : public Object {
protected:
ARCHITECTURES architecture_ = ARCHITECTURES::UNKNOWN;
- OBJECT_TYPES object_type_ = OBJECT_TYPES::UNKNOWN;
+ OBJECT_TYPES object_type_ = OBJECT_TYPES::UNKNOWN;
uint64_t entrypoint_ = 0;
ENDIANNESS endianness_ = ENDIANNESS::UNKNOWN;
MODES modes_ = MODES::NONE;
diff --git a/deps/LIEF/include/LIEF/Abstract/Parser.hpp b/deps/LIEF/include/LIEF/Abstract/Parser.hpp
index 9a3665192bb..8a252cf68cc 100644
--- a/deps/LIEF/include/LIEF/Abstract/Parser.hpp
+++ b/deps/LIEF/include/LIEF/Abstract/Parser.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
#include <string>
#include <memory>
+#include <cstdint>
#include <vector>
#include "LIEF/visibility.h"
@@ -50,7 +51,7 @@ class LIEF_API Parser {
protected:
Parser(const std::string& file);
- uint64_t binary_size_ = 0;
+ uint64_t binary_size_ = 0;
virtual ~Parser();
Parser();
diff --git a/deps/LIEF/include/LIEF/Abstract/Relocation.hpp b/deps/LIEF/include/LIEF/Abstract/Relocation.hpp
index c22f8e7a508..339a0d3f609 100644
--- a/deps/LIEF/include/LIEF/Abstract/Relocation.hpp
+++ b/deps/LIEF/include/LIEF/Abstract/Relocation.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,8 +32,7 @@ class LIEF_API Relocation : public Object {
/// Constructor from a relocation's address and size
Relocation(uint64_t address, uint8_t size) :
address_(address),
- size_(size)
- {}
+ size_(size) {}
~Relocation() override = default;
@@ -41,7 +40,7 @@ class LIEF_API Relocation : public Object {
Relocation(const Relocation&) = default;
void swap(Relocation& other) {
std::swap(address_, other.address_);
- std::swap(size_, other.size_);
+ std::swap(size_, other.size_);
}
/// Relocation's address
@@ -66,31 +65,32 @@ class LIEF_API Relocation : public Object {
void accept(Visitor& visitor) const override;
- /// Comparaison based on the Relocation's **address**
+ /// Comparison based on the Relocation's **address**
virtual bool operator<(const Relocation& rhs) const {
return address() < rhs.address();
}
- /// Comparaison based on the Relocation's **address**
+ /// Comparison based on the Relocation's **address**
virtual bool operator<=(const Relocation& rhs) const {
return !(address() > rhs.address());
}
- /// Comparaison based on the Relocation's **address**
+ /// Comparison based on the Relocation's **address**
virtual bool operator>(const Relocation& rhs) const {
return address() > rhs.address();
}
- /// Comparaison based on the Relocation's **address**
+ /// Comparison based on the Relocation's **address**
virtual bool operator>=(const Relocation& rhs) const {
return !(address() < rhs.address());
}
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const Relocation& entry);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const Relocation& entry);
protected:
uint64_t address_ = 0;
- uint8_t size_ = 0;
+ uint8_t size_ = 0;
};
diff --git a/deps/LIEF/include/LIEF/Abstract/Section.hpp b/deps/LIEF/include/LIEF/Abstract/Section.hpp
index eb89b42ccc5..8e912950073 100644
--- a/deps/LIEF/include/LIEF/Abstract/Section.hpp
+++ b/deps/LIEF/include/LIEF/Abstract/Section.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,6 +22,7 @@
#include "LIEF/span.hpp"
#include "LIEF/Object.hpp"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
namespace LIEF {
@@ -32,27 +33,26 @@ class LIEF_API Section : public Object {
Section() = default;
Section(std::string name) :
- name_(std::move(name))
- {}
+ name_(std::move(name)) {}
~Section() override = default;
Section& operator=(const Section&) = default;
Section(const Section&) = default;
- /// section's name
+ /// Section's name
virtual std::string name() const {
return name_.c_str();
}
- /// Return the **complete** section's name which might
+ /// Return the **complete** section's name which might include
/// trailing (``0``) bytes
virtual const std::string& fullname() const {
return name_;
}
- /// section's content
- virtual span<const uint8_t> content() const {
+ /// Section's content
+ virtual span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
return {};
}
@@ -61,7 +61,7 @@ class LIEF_API Section : public Object {
size_ = size;
}
- /// section's size (size in the binary, not the virtual size)
+ /// Section's size (size in the binary, not the virtual size)
virtual uint64_t size() const {
return size_;
}
@@ -118,9 +118,9 @@ class LIEF_API Section : public Object {
protected:
std::string name_;
- uint64_t virtual_address_ = 0;
- uint64_t size_ = 0;
- uint64_t offset_ = 0;
+ uint64_t virtual_address_ = 0;
+ uint64_t size_ = 0;
+ uint64_t offset_ = 0;
private:
template<typename T>
diff --git a/deps/LIEF/include/LIEF/Abstract/Symbol.hpp b/deps/LIEF/include/LIEF/Abstract/Symbol.hpp
index 8d9802beec3..ce4ed5d3aeb 100644
--- a/deps/LIEF/include/LIEF/Abstract/Symbol.hpp
+++ b/deps/LIEF/include/LIEF/Abstract/Symbol.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,16 +29,16 @@ class LIEF_API Symbol : public Object {
public:
Symbol() = default;
Symbol(std::string name) :
- name_(std::move(name))
- {}
+ name_(std::move(name)) {}
Symbol(std::string name, uint64_t value) :
- name_(std::move(name)), value_(value)
- {}
+ name_(std::move(name)),
+ value_(value) {}
Symbol(std::string name, uint64_t value, uint64_t size) :
- name_(std::move(name)), value_(value), size_(size)
- {}
+ name_(std::move(name)),
+ value_(value),
+ size_(size) {}
Symbol(const Symbol&) = default;
Symbol& operator=(const Symbol&) = default;
@@ -64,7 +64,7 @@ class LIEF_API Symbol : public Object {
name_ = std::move(name);
}
- // Symbol's value which is usually the **address** of the symbol
+ /// Symbol's value which is usually the **address** of the symbol
virtual uint64_t value() const {
return value_;
}
@@ -72,7 +72,7 @@ class LIEF_API Symbol : public Object {
value_ = value;
}
- /// This size of the symbol (when applicable)
+ /// The size of the symbol (when applicable)
virtual uint64_t size() const {
return size_;
}
@@ -94,4 +94,3 @@ class LIEF_API Symbol : public Object {
}
#endif
-
diff --git a/deps/LIEF/include/LIEF/Abstract/hash.hpp b/deps/LIEF/include/LIEF/Abstract/hash.hpp
index 26f4a375f44..b38537966bf 100644
--- a/deps/LIEF/include/LIEF/Abstract/hash.hpp
+++ b/deps/LIEF/include/LIEF/Abstract/hash.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -34,12 +34,12 @@ class LIEF_API AbstractHash : public LIEF::Hash {
using LIEF::Hash::visit;
public:
- void visit(const Binary& binary) override;
- void visit(const Header& header) override;
- void visit(const Section& section) override;
- void visit(const Symbol& symbol) override;
+ void visit(const Binary& binary) override;
+ void visit(const Header& header) override;
+ void visit(const Section& section) override;
+ void visit(const Symbol& symbol) override;
void visit(const Relocation& relocation) override;
- void visit(const Function& function) override;
+ void visit(const Function& function) override;
~AbstractHash() override;
};
diff --git a/deps/LIEF/include/LIEF/Abstract/json.hpp b/deps/LIEF/include/LIEF/Abstract/json.hpp
index fa05cec3458..c133c1b54a9 100644
--- a/deps/LIEF/include/LIEF/Abstract/json.hpp
+++ b/deps/LIEF/include/LIEF/Abstract/json.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,5 +26,4 @@ LIEF_API std::string to_json_from_abstract(const Object& v);
}
-#endif // LIEF_JSON_SUPPORT
-
+#endif
diff --git a/deps/LIEF/include/LIEF/BinaryStream/ASN1Reader.hpp b/deps/LIEF/include/LIEF/BinaryStream/ASN1Reader.hpp
index 385bb35dd22..e0f15ec8d49 100644
--- a/deps/LIEF/include/LIEF/BinaryStream/ASN1Reader.hpp
+++ b/deps/LIEF/include/LIEF/BinaryStream/ASN1Reader.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -34,8 +34,7 @@ class ASN1Reader {
ASN1Reader() = delete;
ASN1Reader(BinaryStream& stream) :
- stream_(stream)
- {}
+ stream_(stream) {}
ASN1Reader(const ASN1Reader&) = delete;
ASN1Reader& operator=(const ASN1Reader&) = delete;
diff --git a/deps/LIEF/include/LIEF/BinaryStream/BinaryStream.hpp b/deps/LIEF/include/LIEF/BinaryStream/BinaryStream.hpp
index 48c16034e1d..6be76072b0a 100644
--- a/deps/LIEF/include/LIEF/BinaryStream/BinaryStream.hpp
+++ b/deps/LIEF/include/LIEF/BinaryStream/BinaryStream.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@
#include <cstring>
#include <string>
#include <algorithm>
+#include <utility>
#include "LIEF/endianness_support.hpp"
#include "LIEF/errors.hpp"
@@ -28,6 +29,7 @@
namespace LIEF {
class ASN1Reader;
+class Binary;
/// Class that is used to a read stream of data from different sources
class LIEF_API BinaryStream {
@@ -40,13 +42,13 @@ class LIEF_API BinaryStream {
MEMORY,
SPAN,
FILE,
+ DUMP,
ELF_DATA_HANDLER,
};
BinaryStream(STREAM_TYPE type) :
- stype_(type)
- {}
+ stype_(type) {}
virtual ~BinaryStream() = default;
virtual uint64_t size() const = 0;
@@ -54,6 +56,18 @@ class LIEF_API BinaryStream {
return stype_;
}
+ bool is_memory_stream() const {
+ return type() == STREAM_TYPE::MEMORY;
+ }
+
+ bool is_dump_stream() const {
+ return type() == STREAM_TYPE::DUMP;
+ }
+
+ bool is_memory_view() const {
+ return is_memory_stream() || is_dump_stream();
+ }
+
result<uint64_t> read_uleb128(size_t* size = nullptr) const;
result<uint64_t> read_sleb128(size_t* size = nullptr) const;
@@ -61,7 +75,9 @@ class LIEF_API BinaryStream {
result<std::string> read_string(size_t maxsize = ~static_cast<size_t>(0)) const;
result<std::string> peek_string(size_t maxsize = ~static_cast<size_t>(0)) const;
- result<std::string> peek_string_at(size_t offset, size_t maxsize = ~static_cast<size_t>(0)) const;
+ result<std::string>
+ peek_string_at(size_t offset,
+ size_t maxsize = ~static_cast<size_t>(0)) const;
result<std::u16string> read_u16string() const;
result<std::u16string> peek_u16string() const;
@@ -73,27 +89,31 @@ class LIEF_API BinaryStream {
result<std::u16string> peek_u16string_at(size_t offset, size_t length) const;
- virtual ok_error_t peek_data(std::vector<uint8_t>& container,
- uint64_t offset, uint64_t size,
- uint64_t virtual_address = 0)
- {
+ virtual ok_error_t peek_data(std::vector<uint8_t>& container, uint64_t offset,
+ uint64_t size, uint64_t virtual_address = 0) {
if (size == 0) {
return ok();
}
// Even though offset + size < ... => offset < ...
// the addition could overflow so it's worth checking both
- const bool read_ok = offset <= this->size() && (offset + size) <= this->size()
- /* Check for an overflow */
- && (static_cast<int64_t>(offset) >= 0 && static_cast<int64_t>(size) >= 0)
- && (static_cast<int64_t>(offset + size) >= 0);
+ const bool read_ok = offset <= this->size() &&
+ (offset + size) <= this->size()
+ /* Check for an overflow */
+ && (static_cast<int64_t>(offset) >= 0 &&
+ static_cast<int64_t>(size) >= 0) &&
+ (static_cast<int64_t>(offset + size) >= 0);
if (!read_ok) {
return make_error_code(lief_errors::read_error);
}
- container.resize(size);
- if (peek_in(container.data(), offset, size, virtual_address)) {
- return ok();
+
+ if (container.size() < size) {
+ std::vector<uint8_t> buffer(size);
+ const ok_error_t res = peek_in(buffer.data(), offset, size, virtual_address);
+ container = std::move(buffer);
+ return res;
}
- return make_error_code(lief_errors::read_error);
+
+ return peek_in(container.data(), offset, size, virtual_address);
}
virtual ok_error_t read_data(std::vector<uint8_t>& container, uint64_t size) {
@@ -130,7 +150,8 @@ class LIEF_API BinaryStream {
}
template<class T>
- ok_error_t peek_objects_at(uint64_t offset, std::vector<T>& container, uint64_t count) {
+ ok_error_t peek_objects_at(uint64_t offset, std::vector<T>& container,
+ uint64_t count) {
if (count == 0) {
return ok();
}
@@ -144,22 +165,25 @@ class LIEF_API BinaryStream {
return make_error_code(lief_errors::read_error);
}
- container.resize(count);
+ ok_error_t res = make_error_code(lief_errors::inconsistent);
- if (!peek_in(container.data(), pos(), size)) {
- setpos(current_p);
- return make_error_code(lief_errors::read_error);
+ if (container.size() < count) {
+ std::vector<T> buffer(count);
+ res = peek_in(buffer.data(), pos(), size);
+ container = std::move(buffer);
+ } else {
+ res = peek_in(container.data(), pos(), size);
}
setpos(current_p);
- return ok();
+ return res;
}
void setpos(size_t pos) const {
pos_ = pos;
}
- const BinaryStream& increment_pos(size_t value) const {
+ const BinaryStream& increment_pos(size_t value) const LIEF_LIFETIMEBOUND {
pos_ += value;
return *this;
}
@@ -176,10 +200,14 @@ class LIEF_API BinaryStream {
return pos_;
}
- operator bool() const {
+ bool is_valid() const {
return pos_ < size();
}
+ operator bool() const {
+ return is_valid();
+ }
+
template<class T>
const T* read_array(size_t size) const;
@@ -190,10 +218,12 @@ class LIEF_API BinaryStream {
}
// Even though offset + size < ... => offset < ...
// the addition could overflow so it's worth checking both
- const bool read_ok = pos_ <= size() && (pos_ + N) <= size()
- /* Check for an overflow */
- && (static_cast<int64_t>(pos_) >= 0 && static_cast<int64_t>(N) >= 0)
- && (static_cast<int64_t>(pos_ + N) >= 0);
+ const bool read_ok =
+ pos_ <= size() &&
+ (pos_ + N) <= size()
+ /* Check for an overflow */
+ && (static_cast<int64_t>(pos_) >= 0 && static_cast<int64_t>(N) >= 0) &&
+ (static_cast<int64_t>(pos_ + N) >= 0);
if (!read_ok) {
return make_error_code(lief_errors::read_error);
@@ -236,7 +266,8 @@ class LIEF_API BinaryStream {
bool can_read(size_t offset) const;
bool can_read(int64_t offset, int64_t size) const {
- return offset < (int64_t)this->size() && (offset + size) < (int64_t)this->size();
+ return offset < (int64_t)this->size() &&
+ size < ((int64_t)this->size() - offset);
}
size_t align(size_t align_on) const;
@@ -247,16 +278,15 @@ class LIEF_API BinaryStream {
template<class T>
static bool is_all_zero(const T& buffer) {
- const auto* ptr = reinterpret_cast<const uint8_t *const>(&buffer);
- return std::all_of(ptr, ptr + sizeof(T),
- [] (uint8_t x) { return x == 0; });
+ const auto* ptr = reinterpret_cast<const uint8_t* const>(&buffer);
+ return std::all_of(ptr, ptr + sizeof(T), [](uint8_t x) { return x == 0; });
}
bool should_swap() const {
return endian_swap_;
}
- virtual const uint8_t* p() const {
+ virtual const uint8_t* p() const {
return nullptr;
}
@@ -284,11 +314,10 @@ class LIEF_API BinaryStream {
uint64_t virtual_address = 0) const = 0;
virtual ok_error_t peek_in(void* dst, uint64_t offset, uint64_t size,
uint64_t virtual_address = 0) const {
+ if (dst == nullptr) {
+ return make_error_code(lief_errors::read_error);
+ }
if (auto raw = read_at(offset, size, virtual_address)) {
- if (dst == nullptr) {
- return make_error_code(lief_errors::read_error);
- }
-
const void* ptr = *raw;
if (ptr == nullptr) {
@@ -301,6 +330,25 @@ class LIEF_API BinaryStream {
return make_error_code(lief_errors::read_error);
}
+ template<class T>
+ const T* cast() const {
+ static_assert(std::is_base_of<BinaryStream, T>::value,
+ "Require BinaryStream inheritance");
+ if (T::classof(*this)) {
+ return static_cast<const T*>(this);
+ }
+ return nullptr;
+ }
+
+ template<class T>
+ T* cast() {
+ return const_cast<T*>(static_cast<const BinaryStream*>(this)->cast<T>());
+ }
+
+ virtual bool bind_binary(Binary& /*bin*/) {
+ return false;
+ }
+
protected:
BinaryStream() = default;
@@ -319,15 +367,13 @@ class ScopedStream {
explicit ScopedStream(BinaryStream& stream, uint64_t pos) :
pos_{stream.pos()},
- stream_{stream}
- {
+ stream_{stream} {
stream_.setpos(pos);
}
explicit ScopedStream(BinaryStream& stream) :
pos_{stream.pos()},
- stream_{stream}
- {}
+ stream_{stream} {}
~ScopedStream() {
stream_.setpos(pos_);
@@ -360,15 +406,13 @@ class ToggleEndianness {
explicit ToggleEndianness(BinaryStream& stream, bool value) :
endian_swap_(stream.should_swap()),
- stream_{stream}
- {
+ stream_{stream} {
stream.set_endian_swap(value);
}
explicit ToggleEndianness(BinaryStream& stream) :
endian_swap_(stream.should_swap()),
- stream_{stream}
- {
+ stream_{stream} {
stream.set_endian_swap(!stream_.should_swap());
}
diff --git a/deps/LIEF/include/LIEF/BinaryStream/DumpStream.hpp b/deps/LIEF/include/LIEF/BinaryStream/DumpStream.hpp
new file mode 100644
index 00000000000..e7d1fec8ddf
--- /dev/null
+++ b/deps/LIEF/include/LIEF/BinaryStream/DumpStream.hpp
@@ -0,0 +1,97 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_DUMP_STREAM_H
+#define LIEF_DUMP_STREAM_H
+
+#include <memory>
+#include <cstdint>
+
+#include "LIEF/compiler_attributes.hpp"
+#include "LIEF/errors.hpp"
+#include "LIEF/visibility.h"
+#include "LIEF/BinaryStream/BinaryStream.hpp"
+
+namespace LIEF {
+class Binary;
+
+/// This stream interface provides facilities to parse a dumped binary.
+///
+/// A dump is a contiguous capture of a process memory that starts at a given
+/// base address. This stream owns (or weakly references)
+/// another BinaryStream that holds the raw dump and translates file offsets
+/// into dump offsets according to this base address and the binary layout.
+class LIEF_API DumpStream : public BinaryStream {
+ public:
+ DumpStream() = delete;
+ DumpStream(uintptr_t base_address, BinaryStream& ref) :
+ BinaryStream(BinaryStream::STREAM_TYPE::DUMP),
+ baseaddr_(base_address),
+ ref_(&ref) {}
+
+ DumpStream(uintptr_t base_address, std::unique_ptr<BinaryStream> owned) :
+ BinaryStream(BinaryStream::STREAM_TYPE::DUMP),
+ baseaddr_(base_address),
+ owned_(std::move(owned)),
+ ref_(owned_.get()) {}
+
+ DumpStream(const DumpStream&) = delete;
+ DumpStream& operator=(const DumpStream&) = delete;
+
+ DumpStream(DumpStream&&) noexcept = default;
+ DumpStream& operator=(DumpStream&&) noexcept = default;
+
+ uintptr_t base_address() const {
+ return baseaddr_;
+ }
+
+ Binary* binary() LIEF_LIFETIMEBOUND {
+ return binary_;
+ }
+
+ uint64_t size() const override {
+ return ref_->size();
+ }
+
+ bool bind_binary(Binary& bin) override {
+ binary_ = &bin;
+ return true;
+ }
+
+ std::vector<uint8_t> content() const;
+
+ result<const void*> read_at(uint64_t /*offset*/, uint64_t /*size*/,
+ uint64_t /*virtual_address*/ = 0) const override {
+ return make_error_code(lief_errors::not_supported);
+ }
+
+ ok_error_t peek_in(void* dst, uint64_t offset, uint64_t size,
+ uint64_t virtual_address = 0) const override;
+
+ ~DumpStream() override = default;
+
+ static bool classof(const BinaryStream& stream) {
+ return stream.type() == BinaryStream::STREAM_TYPE::DUMP;
+ }
+
+ protected:
+ uintptr_t baseaddr_ = 0;
+ Binary* binary_ = nullptr;
+ std::unique_ptr<BinaryStream> owned_;
+ BinaryStream* ref_ = nullptr;
+};
+}
+
+#endif
diff --git a/deps/LIEF/include/LIEF/BinaryStream/FileStream.hpp b/deps/LIEF/include/LIEF/BinaryStream/FileStream.hpp
index 0e5d3e5cc86..dc3583e64e9 100644
--- a/deps/LIEF/include/LIEF/BinaryStream/FileStream.hpp
+++ b/deps/LIEF/include/LIEF/BinaryStream/FileStream.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -33,8 +33,7 @@ class LIEF_API FileStream : public BinaryStream {
FileStream(std::ifstream fs, uint64_t size) :
BinaryStream(STREAM_TYPE::FILE),
ifs_(std::move(fs)),
- size_(size)
- {}
+ size_(size) {}
FileStream() = delete;
@@ -56,7 +55,7 @@ class LIEF_API FileStream : public BinaryStream {
}
ok_error_t peek_in(void* dst, uint64_t offset, uint64_t size,
- uint64_t /* virtual_address */= 0) const override {
+ uint64_t /* virtual_address */ = 0) const override {
if (offset > size_ || offset + size > size_) {
return make_error_code(lief_errors::read_error);
}
diff --git a/deps/LIEF/include/LIEF/BinaryStream/MemoryStream.hpp b/deps/LIEF/include/LIEF/BinaryStream/MemoryStream.hpp
index 9bce7e764be..bfa9588365b 100644
--- a/deps/LIEF/include/LIEF/BinaryStream/MemoryStream.hpp
+++ b/deps/LIEF/include/LIEF/BinaryStream/MemoryStream.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -35,8 +35,7 @@ class LIEF_API MemoryStream : public BinaryStream {
MemoryStream(uintptr_t base_address, uint64_t size) :
BinaryStream(BinaryStream::STREAM_TYPE::MEMORY),
baseaddr_(base_address),
- size_(size)
- {}
+ size_(size) {}
MemoryStream(const MemoryStream&) = delete;
MemoryStream& operator=(const MemoryStream&) = delete;
@@ -45,7 +44,7 @@ class LIEF_API MemoryStream : public BinaryStream {
MemoryStream& operator=(MemoryStream&&) noexcept = default;
uintptr_t base_address() const {
- return this->baseaddr_;
+ return baseaddr_;
}
const uint8_t* p() const override {
@@ -60,18 +59,19 @@ class LIEF_API MemoryStream : public BinaryStream {
return start() + size_;
}
- void binary(Binary& bin) {
- this->binary_ = &bin;
- }
-
Binary* binary() {
- return this->binary_;
+ return binary_;
}
uint64_t size() const override {
return size_;
}
+ bool bind_binary(Binary& bin) override {
+ binary_ = &bin;
+ return true;
+ }
+
~MemoryStream() override = default;
static bool classof(const BinaryStream& stream) {
@@ -79,7 +79,8 @@ class LIEF_API MemoryStream : public BinaryStream {
}
protected:
- result<const void*> read_at(uint64_t offset, uint64_t size, uint64_t va) const override;
+ result<const void*> read_at(uint64_t offset, uint64_t size,
+ uint64_t va) const override;
uintptr_t baseaddr_ = 0;
uint64_t size_ = 0;
Binary* binary_ = nullptr;
diff --git a/deps/LIEF/include/LIEF/BinaryStream/SpanStream.hpp b/deps/LIEF/include/LIEF/BinaryStream/SpanStream.hpp
index ce7e8b4c003..27ffea72cac 100644
--- a/deps/LIEF/include/LIEF/BinaryStream/SpanStream.hpp
+++ b/deps/LIEF/include/LIEF/BinaryStream/SpanStream.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -45,21 +45,17 @@ class LIEF_API SpanStream : public BinaryStream {
}
SpanStream(span<const uint8_t> data) :
- SpanStream(data.data(), data.size())
- {}
+ SpanStream(data.data(), data.size()) {}
SpanStream(span<uint8_t> data) :
- SpanStream(data.data(), data.size())
- {}
+ SpanStream(data.data(), data.size()) {}
SpanStream(const uint8_t* p, size_t size) :
BinaryStream(BinaryStream::STREAM_TYPE::SPAN),
- data_{p, p + size}
- {}
+ data_{p, p + size} {}
SpanStream(const std::vector<uint8_t>& data) :
- SpanStream(data.data(), data.size())
- {}
+ SpanStream(data.data(), data.size()) {}
std::unique_ptr<SpanStream> clone() const {
return std::unique_ptr<SpanStream>(new SpanStream(*this));
@@ -94,7 +90,7 @@ class LIEF_API SpanStream : public BinaryStream {
}
result<SpanStream> slice(size_t offset, size_t size) const {
- if (offset > data_.size() || (offset + size) > data_.size()) {
+ if (offset > data_.size() || size > data_.size() - offset) {
return make_error_code(lief_errors::read_out_of_bound);
}
return data_.subspan(offset, size);
@@ -115,9 +111,10 @@ class LIEF_API SpanStream : public BinaryStream {
~SpanStream() override = default;
protected:
- result<const void*> read_at(uint64_t offset, uint64_t size, uint64_t /*va*/) const override {
+ result<const void*> read_at(uint64_t offset, uint64_t size,
+ uint64_t /*va*/) const override {
const uint64_t stream_size = this->size();
- if (offset > stream_size || (offset + size) > stream_size) {
+ if (offset > stream_size || size > stream_size - offset) {
return make_error_code(lief_errors::read_error);
}
return data_.data() + offset;
diff --git a/deps/LIEF/include/LIEF/BinaryStream/VectorStream.hpp b/deps/LIEF/include/LIEF/BinaryStream/VectorStream.hpp
index 44293aa8c85..7d17d97a4c5 100644
--- a/deps/LIEF/include/LIEF/BinaryStream/VectorStream.hpp
+++ b/deps/LIEF/include/LIEF/BinaryStream/VectorStream.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -36,8 +36,7 @@ class LIEF_API VectorStream : public BinaryStream {
VectorStream(std::vector<uint8_t> data) :
BinaryStream(BinaryStream::STREAM_TYPE::VECTOR),
binary_(std::move(data)),
- size_(binary_.size())
- {}
+ size_(binary_.size()) {}
VectorStream() = delete;
@@ -82,9 +81,10 @@ class LIEF_API VectorStream : public BinaryStream {
}
protected:
- result<const void*> read_at(uint64_t offset, uint64_t size, uint64_t /*va*/) const override {
+ result<const void*> read_at(uint64_t offset, uint64_t size,
+ uint64_t /*va*/) const override {
const uint64_t stream_size = this->size();
- if (offset > stream_size || (offset + size) > stream_size) {
+ if (offset > stream_size || size > stream_size - offset) {
return make_error_code(lief_errors::read_error);
}
return binary_.data() + offset;
diff --git a/deps/LIEF/include/LIEF/COFF.hpp b/deps/LIEF/include/LIEF/COFF.hpp
index dcc13dbde0d..64775817a3c 100644
--- a/deps/LIEF/include/LIEF/COFF.hpp
+++ b/deps/LIEF/include/LIEF/COFF.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,30 +13,30 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#ifndef LIEF_COFF_H
-#define LIEF_COFF_H
+#ifndef LIEF_COFF_H
+#define LIEF_COFF_H
#include "LIEF/config.h"
#if defined(LIEF_COFF_SUPPORT)
-#include "LIEF/COFF/Binary.hpp"
-#include "LIEF/COFF/utils.hpp"
-#include "LIEF/COFF/Parser.hpp"
-#include "LIEF/COFF/Header.hpp"
-#include "LIEF/COFF/BigObjHeader.hpp"
-#include "LIEF/COFF/RegularHeader.hpp"
-#include "LIEF/COFF/ParserConfig.hpp"
-#include "LIEF/COFF/Section.hpp"
-#include "LIEF/COFF/Relocation.hpp"
-#include "LIEF/COFF/Symbol.hpp"
-#include "LIEF/COFF/String.hpp"
+ #include "LIEF/COFF/Binary.hpp"
+ #include "LIEF/COFF/utils.hpp"
+ #include "LIEF/COFF/Parser.hpp"
+ #include "LIEF/COFF/Header.hpp"
+ #include "LIEF/COFF/BigObjHeader.hpp"
+ #include "LIEF/COFF/RegularHeader.hpp"
+ #include "LIEF/COFF/ParserConfig.hpp"
+ #include "LIEF/COFF/Section.hpp"
+ #include "LIEF/COFF/Relocation.hpp"
+ #include "LIEF/COFF/Symbol.hpp"
+ #include "LIEF/COFF/String.hpp"
-#include "LIEF/COFF/AuxiliarySymbol.hpp"
-#include "LIEF/COFF/AuxiliarySymbols/AuxiliarybfAndefSymbol.hpp"
-#include "LIEF/COFF/AuxiliarySymbols/AuxiliaryCLRToken.hpp"
-#include "LIEF/COFF/AuxiliarySymbols/AuxiliaryFile.hpp"
-#include "LIEF/COFF/AuxiliarySymbols/AuxiliaryFunctionDefinition.hpp"
-#include "LIEF/COFF/AuxiliarySymbols/AuxiliarySectionDefinition.hpp"
-#include "LIEF/COFF/AuxiliarySymbols/AuxiliaryWeakExternal.hpp"
+ #include "LIEF/COFF/AuxiliarySymbol.hpp"
+ #include "LIEF/COFF/AuxiliarySymbols/AuxiliarybfAndefSymbol.hpp"
+ #include "LIEF/COFF/AuxiliarySymbols/AuxiliaryCLRToken.hpp"
+ #include "LIEF/COFF/AuxiliarySymbols/AuxiliaryFile.hpp"
+ #include "LIEF/COFF/AuxiliarySymbols/AuxiliaryFunctionDefinition.hpp"
+ #include "LIEF/COFF/AuxiliarySymbols/AuxiliarySectionDefinition.hpp"
+ #include "LIEF/COFF/AuxiliarySymbols/AuxiliaryWeakExternal.hpp"
#endif
#endif
diff --git a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbol.hpp b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbol.hpp
index 398776a324d..9d7970f5788 100644
--- a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbol.hpp
+++ b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbol.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@
#include <memory>
#include <vector>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/span.hpp"
@@ -32,14 +33,12 @@ class Symbol;
/// Class that represents an auxiliary symbol.
///
/// An auxiliary symbol has the same size as a regular LIEF::PE::Symbol (18
-/// bytes) but its content depends on the the parent symbol.
+/// bytes) but its content depends on the parent symbol.
class LIEF_API AuxiliarySymbol {
public:
AuxiliarySymbol() = default;
AuxiliarySymbol(std::vector<uint8_t> payload) :
- type_(TYPE::UNKNOWN),
- payload_(std::move(payload))
- {}
+ payload_(std::move(payload)) {}
AuxiliarySymbol(const AuxiliarySymbol&) = default;
AuxiliarySymbol& operator=(const AuxiliarySymbol&) = default;
@@ -47,7 +46,7 @@ class LIEF_API AuxiliarySymbol {
AuxiliarySymbol& operator=(AuxiliarySymbol&&) = default;
LIEF_LOCAL static std::unique_ptr<AuxiliarySymbol>
- parse(Symbol& sym, std::vector<uint8_t> payload);
+ parse(Symbol& sym, std::vector<uint8_t> payload);
virtual std::unique_ptr<AuxiliarySymbol> clone() const {
return std::unique_ptr<AuxiliarySymbol>(new AuxiliarySymbol(*this));
@@ -59,19 +58,22 @@ class LIEF_API AuxiliarySymbol {
CLR_TOKEN,
/// Auxiliary Format 1 from the PE-COFF documentation
FUNC_DEF,
+
/// Auxiliary Format 2: .bf and .ef Symbols from the PE-COFF documentation
BF_AND_EF,
+
/// Auxiliary Format 3: Weak Externals from the PE-COFF documentation
WEAK_EXTERNAL,
+
/// Auxiliary Format 4: Files from the PE-COFF documentation
FILE,
+
/// Auxiliary Format 5: Section Definitions from the PE-COFF documentation
SEC_DEF,
};
AuxiliarySymbol(TYPE ty) :
- type_(ty)
- {}
+ type_(ty) {}
static TYPE get_aux_type(const Symbol& sym);
@@ -80,11 +82,11 @@ class LIEF_API AuxiliarySymbol {
}
/// For unknown type **only**, return the raw representation of this symbol
- span<const uint8_t> payload() const {
+ span<const uint8_t> payload() const LIEF_LIFETIMEBOUND {
return payload_;
}
- span<uint8_t> payload() {
+ span<uint8_t> payload() LIEF_LIFETIMEBOUND {
return payload_;
}
@@ -92,7 +94,7 @@ class LIEF_API AuxiliarySymbol {
virtual ~AuxiliarySymbol() = default;
- /// Helper to **downcast** a AuxiliarySymbol into a concrete implementation
+ /// Helper to **downcast** an AuxiliarySymbol into a concrete implementation
template<class T>
const T* as() const {
static_assert(std::is_base_of<AuxiliarySymbol, T>::value,
@@ -108,9 +110,8 @@ class LIEF_API AuxiliarySymbol {
return const_cast<T*>(static_cast<const AuxiliarySymbol*>(this)->as<T>());
}
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const AuxiliarySymbol& aux)
- {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const AuxiliarySymbol& aux) {
os << aux.to_string();
return os;
}
diff --git a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryCLRToken.hpp b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryCLRToken.hpp
index cc2ee5feb71..65059a06249 100644
--- a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryCLRToken.hpp
+++ b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryCLRToken.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
#include <memory>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/COFF/AuxiliarySymbol.hpp"
@@ -32,11 +33,10 @@ class LIEF_API AuxiliaryCLRToken : public AuxiliarySymbol {
friend class Parser;
LIEF_LOCAL static std::unique_ptr<AuxiliaryCLRToken>
- parse(const std::vector<uint8_t>& payload);
+ parse(const std::vector<uint8_t>& payload);
AuxiliaryCLRToken() :
- AuxiliarySymbol(AuxiliarySymbol::TYPE::CLR_TOKEN)
- {}
+ AuxiliarySymbol(AuxiliarySymbol::TYPE::CLR_TOKEN) {}
AuxiliaryCLRToken(uint8_t aux_type, uint8_t reserved, uint32_t symbol_idx,
std::vector<uint8_t> rgb_reserved) :
@@ -44,8 +44,7 @@ class LIEF_API AuxiliaryCLRToken : public AuxiliarySymbol {
aux_type_(aux_type),
reserved_(reserved),
symbol_idx_(symbol_idx),
- rgb_reserved_(std::move(rgb_reserved))
- {}
+ rgb_reserved_(std::move(rgb_reserved)) {}
AuxiliaryCLRToken(const AuxiliaryCLRToken&) = default;
AuxiliaryCLRToken& operator=(const AuxiliaryCLRToken&) = default;
@@ -82,7 +81,7 @@ class LIEF_API AuxiliaryCLRToken : public AuxiliarySymbol {
}
/// Reserved (padding) values. Should be 0
- span<const uint8_t> rgb_reserved() const {
+ span<const uint8_t> rgb_reserved() const LIEF_LIFETIMEBOUND {
return rgb_reserved_;
}
@@ -93,6 +92,7 @@ class LIEF_API AuxiliaryCLRToken : public AuxiliarySymbol {
}
~AuxiliaryCLRToken() override = default;
+
private:
uint8_t aux_type_ = 0;
uint8_t reserved_ = 0;
diff --git a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryFile.hpp b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryFile.hpp
index 28ed0142d34..102fa70141c 100644
--- a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryFile.hpp
+++ b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryFile.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,20 +29,19 @@ namespace COFF {
/// The Symbol::name itself should start with `.file`, and this auxiliary record
/// gives the name of a source-code file.
///
-/// Reference: https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#auxiliary-format-4-files
+/// Reference:
+/// https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#auxiliary-format-4-files
class LIEF_API AuxiliaryFile : public AuxiliarySymbol {
public:
LIEF_LOCAL static std::unique_ptr<AuxiliaryFile>
- parse(const std::vector<uint8_t>& payload);
+ parse(const std::vector<uint8_t>& payload);
AuxiliaryFile() :
- AuxiliarySymbol(AuxiliarySymbol::TYPE::FILE)
- {}
+ AuxiliarySymbol(AuxiliarySymbol::TYPE::FILE) {}
AuxiliaryFile(std::string file) :
AuxiliarySymbol(AuxiliarySymbol::TYPE::FILE),
- filename_(std::move(file))
- {}
+ filename_(std::move(file)) {}
AuxiliaryFile(const AuxiliaryFile&) = default;
AuxiliaryFile& operator=(const AuxiliaryFile&) = default;
diff --git a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryFunctionDefinition.hpp b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryFunctionDefinition.hpp
index a3f184ff761..05e92ea04dd 100644
--- a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryFunctionDefinition.hpp
+++ b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryFunctionDefinition.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,35 +26,36 @@ namespace COFF {
/// This auxiliary symbols marks the beginning of a function definition.
///
-/// Reference: https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#auxiliary-format-1-function-definitions
+/// Reference:
+/// https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#auxiliary-format-1-function-definitions
class LIEF_API AuxiliaryFunctionDefinition : public AuxiliarySymbol {
public:
LIEF_LOCAL static std::unique_ptr<AuxiliaryFunctionDefinition>
- parse(const std::vector<uint8_t>& payload);
+ parse(const std::vector<uint8_t>& payload);
AuxiliaryFunctionDefinition() :
- AuxiliarySymbol(AuxiliarySymbol::TYPE::FUNC_DEF)
- {}
+ AuxiliarySymbol(AuxiliarySymbol::TYPE::FUNC_DEF) {}
- AuxiliaryFunctionDefinition(uint32_t tagidx, uint32_t totalsz,
- uint32_t ptr_line, uint32_t ptr_next_func,
- uint16_t padding) :
+ AuxiliaryFunctionDefinition(uint32_t tagidx, uint32_t totalsz, uint32_t ptr_line,
+ uint32_t ptr_next_func, uint16_t padding) :
AuxiliarySymbol(AuxiliarySymbol::TYPE::FUNC_DEF),
tag_index_(tagidx),
total_size_(totalsz),
ptr_to_linenb_(ptr_line),
ptr_to_next_func_(ptr_next_func),
- padding_(padding)
- {}
+ padding_(padding) {}
AuxiliaryFunctionDefinition(const AuxiliaryFunctionDefinition&) = default;
- AuxiliaryFunctionDefinition& operator=(const AuxiliaryFunctionDefinition&) = default;
+ AuxiliaryFunctionDefinition&
+ operator=(const AuxiliaryFunctionDefinition&) = default;
AuxiliaryFunctionDefinition(AuxiliaryFunctionDefinition&&) = default;
AuxiliaryFunctionDefinition& operator=(AuxiliaryFunctionDefinition&&) = default;
std::unique_ptr<AuxiliarySymbol> clone() const override {
- return std::unique_ptr<AuxiliaryFunctionDefinition>(new AuxiliaryFunctionDefinition{*this});
+ return std::unique_ptr<AuxiliaryFunctionDefinition>(
+ new AuxiliaryFunctionDefinition{*this}
+ );
}
/// The symbol-table index of the corresponding `.bf` (begin function)
diff --git a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliarySectionDefinition.hpp b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliarySectionDefinition.hpp
index 9037b7700af..bcb36590a3b 100644
--- a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliarySectionDefinition.hpp
+++ b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliarySectionDefinition.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -30,11 +30,10 @@ namespace COFF {
class LIEF_API AuxiliarySectionDefinition : public AuxiliarySymbol {
public:
LIEF_LOCAL static std::unique_ptr<AuxiliarySectionDefinition>
- parse(const std::vector<uint8_t>& payload);
+ parse(const std::vector<uint8_t>& payload);
AuxiliarySectionDefinition() :
- AuxiliarySymbol(AuxiliarySymbol::TYPE::SEC_DEF)
- {}
+ AuxiliarySymbol(AuxiliarySymbol::TYPE::SEC_DEF) {}
AuxiliarySectionDefinition(uint32_t length, uint16_t nb_relocs,
uint16_t nb_lines, uint32_t checksum,
@@ -47,27 +46,30 @@ class LIEF_API AuxiliarySectionDefinition : public AuxiliarySymbol {
checksum_(checksum),
sec_idx_(sec_idx),
selection_((COMDAT_SELECTION)selection),
- reserved_(reserved)
- {}
+ reserved_(reserved) {}
AuxiliarySectionDefinition(const AuxiliarySectionDefinition&) = default;
- AuxiliarySectionDefinition& operator=(const AuxiliarySectionDefinition&) = default;
+ AuxiliarySectionDefinition&
+ operator=(const AuxiliarySectionDefinition&) = default;
AuxiliarySectionDefinition(AuxiliarySectionDefinition&&) = default;
AuxiliarySectionDefinition& operator=(AuxiliarySectionDefinition&&) = default;
std::unique_ptr<AuxiliarySymbol> clone() const override {
- return std::unique_ptr<AuxiliarySectionDefinition>(new AuxiliarySectionDefinition{*this});
+ return std::unique_ptr<AuxiliarySectionDefinition>(
+ new AuxiliarySectionDefinition{*this}
+ );
}
/// Values for the AuxiliarySectionDefinition::selection attribute
///
- /// See: https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#comdat-sections-object-only
+ /// See:
+ /// https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#comdat-sections-object-only
enum class COMDAT_SELECTION : uint8_t {
NONE = 0,
- /// If this symbol is already defined, the linker issues a `multiply defined symbol`
- /// error.
+ /// If this symbol is already defined, the linker issues a `multiply defined
+ /// symbol` error.
NODUPLICATES = 1,
/// Any section that defines the same COMDAT symbol can be linked; the rest
@@ -75,8 +77,8 @@ class LIEF_API AuxiliarySectionDefinition : public AuxiliarySymbol {
ANY,
/// The linker chooses an arbitrary section among the definitions for this
- /// symbol. If all definitions are not the same size, a `multiply defined symbol`
- /// error is issued.
+ /// symbol. If all definitions are not the same size, a `multiply defined
+ /// symbol` error is issued.
SAME_SIZE,
/// The linker chooses an arbitrary section among the definitions for this
@@ -100,7 +102,7 @@ class LIEF_API AuxiliarySectionDefinition : public AuxiliarySymbol {
/// The linker chooses the largest definition from among all of the definitions
/// for this symbol. If multiple definitions have this size, the choice
/// between them is arbitrary.
- LARGEST
+ LARGEST,
};
/// The size of section data. The same as `SizeOfRawData` in the section header.
diff --git a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryWeakExternal.hpp b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryWeakExternal.hpp
index 488f787dec1..7f79aa760fe 100644
--- a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryWeakExternal.hpp
+++ b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliaryWeakExternal.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
#include <memory>
#include <cassert>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/COFF/AuxiliarySymbol.hpp"
@@ -34,37 +35,39 @@ namespace COFF {
///
/// If a definition of `sym1` is linked, then an external reference to the
/// symbol is resolved normally. If a definition of `sym1` is not linked, then all
-/// references to the weak external for `sym1` refer to `sym2` instead. The external
-/// symbol, `sym2`, must always be linked; typically, it is defined in the module
-/// that contains the weak reference to `sym1`.
+/// references to the weak external for `sym1` refer to `sym2` instead. The
+/// external symbol, `sym2`, must always be linked; typically, it is defined in the
+/// module that contains the weak reference to `sym1`.
///
-/// Reference: https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#auxiliary-format-3-weak-externals
+/// Reference:
+/// https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#auxiliary-format-3-weak-externals
class LIEF_API AuxiliaryWeakExternal : public AuxiliarySymbol {
public:
enum class CHARACTERISTICS : uint32_t {
/// No library search for `sym1` should be performed.
SEARCH_NOLIBRARY = 1,
- ///A library search for `sym1` should be performed.
+
+ /// A library search for `sym1` should be performed.
SEARCH_LIBRARY = 2,
+
/// `sym1` is an alias for sym2
SEARCH_ALIAS = 3,
- ANTI_DEPENDENCY = 4
+
+ ANTI_DEPENDENCY = 4,
};
LIEF_LOCAL static std::unique_ptr<AuxiliaryWeakExternal>
- parse(const std::vector<uint8_t>& payload);
+ parse(const std::vector<uint8_t>& payload);
AuxiliaryWeakExternal() :
- AuxiliarySymbol(AuxiliarySymbol::TYPE::WEAK_EXTERNAL)
- {}
+ AuxiliarySymbol(AuxiliarySymbol::TYPE::WEAK_EXTERNAL) {}
AuxiliaryWeakExternal(uint32_t sym_idx, uint32_t characteristics,
std::vector<uint8_t> padding) :
AuxiliarySymbol(AuxiliarySymbol::TYPE::WEAK_EXTERNAL),
sym_idx_(sym_idx),
characteristics_(characteristics),
- padding_(std::move(padding))
- {
+ padding_(std::move(padding)) {
assert(padding_.size() == 10);
}
@@ -75,7 +78,9 @@ class LIEF_API AuxiliaryWeakExternal : public AuxiliarySymbol {
AuxiliaryWeakExternal& operator=(AuxiliaryWeakExternal&&) = default;
std::unique_ptr<AuxiliarySymbol> clone() const override {
- return std::unique_ptr<AuxiliaryWeakExternal>(new AuxiliaryWeakExternal{*this});
+ return std::unique_ptr<AuxiliaryWeakExternal>(
+ new AuxiliaryWeakExternal{*this}
+ );
}
/// The symbol-table index of `sym2`, the symbol to be linked if `sym1` is not
@@ -88,7 +93,7 @@ class LIEF_API AuxiliaryWeakExternal : public AuxiliarySymbol {
return (CHARACTERISTICS)characteristics_;
}
- span<const uint8_t> padding() const {
+ span<const uint8_t> padding() const LIEF_LIFETIMEBOUND {
return padding_;
}
diff --git a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliarybfAndefSymbol.hpp b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliarybfAndefSymbol.hpp
index 53b0666b588..c76b7de392c 100644
--- a/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliarybfAndefSymbol.hpp
+++ b/deps/LIEF/include/LIEF/COFF/AuxiliarySymbols/AuxiliarybfAndefSymbol.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,11 +28,10 @@ namespace COFF {
class LIEF_API AuxiliarybfAndefSymbol : public AuxiliarySymbol {
public:
LIEF_LOCAL static std::unique_ptr<AuxiliarybfAndefSymbol>
- parse(Symbol& sym, const std::vector<uint8_t>& payload);
+ parse(Symbol& sym, const std::vector<uint8_t>& payload);
AuxiliarybfAndefSymbol() :
- AuxiliarySymbol(AuxiliarySymbol::TYPE::BF_AND_EF)
- {}
+ AuxiliarySymbol(AuxiliarySymbol::TYPE::BF_AND_EF) {}
AuxiliarybfAndefSymbol(const AuxiliarybfAndefSymbol&) = default;
AuxiliarybfAndefSymbol& operator=(const AuxiliarybfAndefSymbol&) = default;
@@ -41,7 +40,9 @@ class LIEF_API AuxiliarybfAndefSymbol : public AuxiliarySymbol {
AuxiliarybfAndefSymbol& operator=(AuxiliarybfAndefSymbol&&) = default;
std::unique_ptr<AuxiliarySymbol> clone() const override {
- return std::unique_ptr<AuxiliarybfAndefSymbol>(new AuxiliarybfAndefSymbol{*this});
+ return std::unique_ptr<AuxiliarybfAndefSymbol>(
+ new AuxiliarybfAndefSymbol{*this}
+ );
}
std::string to_string() const override {
diff --git a/deps/LIEF/include/LIEF/COFF/BigObjHeader.hpp b/deps/LIEF/include/LIEF/COFF/BigObjHeader.hpp
index a793092cd64..1ae5597453d 100644
--- a/deps/LIEF/include/LIEF/COFF/BigObjHeader.hpp
+++ b/deps/LIEF/include/LIEF/COFF/BigObjHeader.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@
#include "LIEF/COFF/Header.hpp"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/span.hpp"
@@ -35,8 +36,7 @@ class LIEF_API BigObjHeader : public Header {
public:
static constexpr auto UUID_SZ = 16;
BigObjHeader() :
- Header(KIND::BIGOBJ)
- {}
+ Header(KIND::BIGOBJ) {}
static std::unique_ptr<BigObjHeader> create(BinaryStream& stream);
@@ -55,8 +55,9 @@ class LIEF_API BigObjHeader : public Header {
return version_;
}
- /// Originally named `ClassID`, this uuid should match: `{D1BAA1C7-BAEE-4ba9-AF20-FAF66AA4DCB8}`
- span<const uint8_t> uuid() const {
+ /// Originally named `ClassID`, this uuid should match:
+ /// `{D1BAA1C7-BAEE-4ba9-AF20-FAF66AA4DCB8}`
+ span<const uint8_t> uuid() const LIEF_LIFETIMEBOUND {
return uuid_;
}
diff --git a/deps/LIEF/include/LIEF/COFF/Binary.hpp b/deps/LIEF/include/LIEF/COFF/Binary.hpp
index 9467836970e..4b0cb9f5b20 100644
--- a/deps/LIEF/include/LIEF/COFF/Binary.hpp
+++ b/deps/LIEF/include/LIEF/COFF/Binary.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -61,7 +61,8 @@ class LIEF_API Binary {
using it_relocations = ref_iterator<relocations_t&, Relocation*>;
/// Iterator that outputs const Relocation& object
- using it_const_relocations = const_ref_iterator<const relocations_t&, const Relocation*>;
+ using it_const_relocations =
+ const_ref_iterator<const relocations_t&, const Relocation*>;
/// Internal container used to store COFF's strings
using strings_table_t = std::vector<String>;
@@ -100,88 +101,92 @@ class LIEF_API Binary {
}
/// Iterator over the different sections located in this COFF binary
- it_sections sections() {
+ it_sections sections() LIEF_LIFETIMEBOUND {
return sections_;
}
- it_const_sections sections() const {
+ it_const_sections sections() const LIEF_LIFETIMEBOUND {
return sections_;
}
/// Iterator over **all** the relocations used by this COFF binary
- it_relocations relocations() {
+ it_relocations relocations() LIEF_LIFETIMEBOUND {
return relocations_;
}
- it_const_relocations relocations() const {
+ it_const_relocations relocations() const LIEF_LIFETIMEBOUND {
return relocations_;
}
/// Iterator over the COFF's symbols
- it_symbols symbols() {
+ it_symbols symbols() LIEF_LIFETIMEBOUND {
return symbols_;
}
- it_const_symbols symbols() const {
+ it_const_symbols symbols() const LIEF_LIFETIMEBOUND {
return symbols_;
}
/// Iterator over the COFF's strings
- it_const_strings_table string_table() const {
+ it_const_strings_table string_table() const LIEF_LIFETIMEBOUND {
return strings_table_;
}
- it_strings_table string_table() {
+ it_strings_table string_table() LIEF_LIFETIMEBOUND {
return strings_table_;
}
/// Try to find the COFF string at the given offset in the COFF string table.
///
- /// \warning This offset must include the first 4 bytes holding the size of
+ /// @warning This offset must include the first 4 bytes holding the size of
/// the table. Hence, the first string starts a the offset 4.
- String* find_string(uint32_t offset) {
+ String* find_string(uint32_t offset) LIEF_LIFETIMEBOUND {
auto it = std::find_if(strings_table_.begin(), strings_table_.end(),
- [offset] (const String& item) {
- return offset == item.offset();
- }
- );
+ [offset](const String& item) {
+ return offset == item.offset();
+ });
return it == strings_table_.end() ? nullptr : &*it;
}
- const String* find_string(uint32_t offset) const {
+ const String* find_string(uint32_t offset) const LIEF_LIFETIMEBOUND {
return const_cast<Binary*>(this)->find_string(offset);
}
/// Iterator over the functions implemented in this COFF
- it_const_function functions() const;
+ it_const_function functions() const LIEF_LIFETIMEBOUND;
- it_functions functions();
+ it_functions functions() LIEF_LIFETIMEBOUND;
/// Try to find the function (symbol) with the given name
- const Symbol* find_function(const std::string& name) const;
+ const Symbol* find_function(const std::string& name) const LIEF_LIFETIMEBOUND;
- Symbol* find_function(const std::string& name) {
- return const_cast<Symbol*>(static_cast<const Binary*>(this)->find_function(name));
+ Symbol* find_function(const std::string& name) LIEF_LIFETIMEBOUND {
+ return const_cast<Symbol*>(
+ static_cast<const Binary*>(this)->find_function(name)
+ );
}
/// Try to find the function (symbol) with the given **demangled** name
- const Symbol* find_demangled_function(const std::string& name) const;
+ const Symbol*
+ find_demangled_function(const std::string& name) const LIEF_LIFETIMEBOUND;
- Symbol* find_demangled_function(const std::string& name) {
- return const_cast<Symbol*>(static_cast<const Binary*>(this)->find_demangled_function(name));
+ Symbol* find_demangled_function(const std::string& name) LIEF_LIFETIMEBOUND {
+ return const_cast<Symbol*>(
+ static_cast<const Binary*>(this)->find_demangled_function(name)
+ );
}
/// Disassemble code for the given symbol
///
/// ```cpp
- /// const Symbol* func = binary->find_demangled_function("int __cdecl my_function(int, int)");
- /// auto insts = binary->disassemble(*func);
- /// for (std::unique_ptr<assembly::Instruction> inst : insts) {
+ /// const Symbol* func = binary->find_demangled_function("int __cdecl
+ /// my_function(int, int)"); auto insts = binary->disassemble(*func); for
+ /// (std::unique_ptr<assembly::Instruction> inst : insts) {
/// std::cout << inst->to_string() << '\n';
/// }
/// ```
///
- /// \see LIEF::assembly::Instruction
+ /// @see LIEF::assembly::Instruction
instructions_it disassemble(const Symbol& symbol) const;
/// Disassemble code for the given symbol name
@@ -193,13 +198,13 @@ class LIEF_API Binary {
/// }
/// ```
///
- /// \see LIEF::assembly::Instruction
+ /// @see LIEF::assembly::Instruction
instructions_it disassemble(const std::string& symbol) const;
/// Disassemble code provided by the given buffer at the specified
/// `address` parameter.
///
- /// \see LIEF::assembly::Instruction
+ /// @see LIEF::assembly::Instruction
instructions_it disassemble(const uint8_t* buffer, size_t size,
uint64_t address = 0) const;
@@ -207,7 +212,7 @@ class LIEF_API Binary {
/// Disassemble code provided by the given vector of bytes at the specified
/// `address` parameter.
///
- /// \see LIEF::assembly::Instruction
+ /// @see LIEF::assembly::Instruction
instructions_it disassemble(const std::vector<uint8_t>& buffer,
uint64_t address = 0) const {
return disassemble(buffer.data(), buffer.size(), address);
@@ -218,7 +223,8 @@ class LIEF_API Binary {
return disassemble(buffer.data(), buffer.size(), address);
}
- instructions_it disassemble(LIEF::span<uint8_t> buffer, uint64_t address = 0) const {
+ instructions_it disassemble(LIEF::span<uint8_t> buffer,
+ uint64_t address = 0) const {
return disassemble(buffer.data(), buffer.size(), address);
}
diff --git a/deps/LIEF/include/LIEF/COFF/Header.hpp b/deps/LIEF/include/LIEF/COFF/Header.hpp
index 5239b73faa4..a2b3038c53c 100644
--- a/deps/LIEF/include/LIEF/COFF/Header.hpp
+++ b/deps/LIEF/include/LIEF/COFF/Header.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,11 +32,10 @@ namespace COFF {
/// `/bigobj` files
class LIEF_API Header {
public:
-
enum class KIND {
UNKNOWN = 0,
REGULAR,
- BIGOBJ
+ BIGOBJ,
};
/// The different architectures (mirrored from PE)
@@ -48,8 +47,7 @@ class LIEF_API Header {
Header() = default;
Header(KIND kind) :
- kind_(kind)
- {}
+ kind_(kind) {}
Header& operator=(const Header&) = default;
Header(const Header&) = default;
@@ -119,8 +117,7 @@ class LIEF_API Header {
template<class T>
const T* as() const {
- static_assert(std::is_base_of<Header, T>::value,
- "Require Header inheritance");
+ static_assert(std::is_base_of<Header, T>::value, "Require Header inheritance");
if (T::classof(this)) {
return static_cast<const T*>(this);
}
diff --git a/deps/LIEF/include/LIEF/COFF/Parser.hpp b/deps/LIEF/include/LIEF/COFF/Parser.hpp
index fa1a5ff79d7..206cfa7325c 100644
--- a/deps/LIEF/include/LIEF/COFF/Parser.hpp
+++ b/deps/LIEF/include/LIEF/COFF/Parser.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,10 +16,10 @@
#ifndef LIEF_COFF_PARSER_H
#define LIEF_COFF_PARSER_H
#include <map>
+#include "LIEF/compiler_attributes.hpp"
+#include "LIEF/BinaryStream/BinaryStream.hpp"
#include "LIEF/visibility.h"
-
-#include "LIEF/BinaryStream/VectorStream.hpp"
-#include "LIEF/BinaryStream/SpanStream.hpp"
+#include "LIEF/errors.hpp"
#include "LIEF/COFF/ParserConfig.hpp"
#include "LIEF/COFF/Header.hpp"
@@ -33,23 +33,20 @@ class Symbol;
class Parser {
public:
+ static constexpr size_t MAX_NB_SECTIONS = 1 << 20;
+
/// Parse the COFF binary referenced by the `stream` argument with the
/// given config
- static LIEF_API
- std::unique_ptr<Binary> parse(std::unique_ptr<BinaryStream> stream,
- const ParserConfig& config = ParserConfig::default_conf());
+ static LIEF_API std::unique_ptr<Binary>
+ parse(std::unique_ptr<BinaryStream> stream,
+ const ParserConfig& config = ParserConfig::default_conf());
/// Parse the COFF binary pointed by the `file` argument with the given config
- static std::unique_ptr<Binary> parse(const std::string& file,
- const ParserConfig& config = ParserConfig::default_conf())
- {
- if (auto strm = VectorStream::from_file(file)) {
- return parse(std::unique_ptr<VectorStream>(new VectorStream(std::move(*strm))), config);
- }
- return nullptr;
- }
+ static LIEF_API std::unique_ptr<Binary>
+ parse(const std::string& file,
+ const ParserConfig& config = ParserConfig::default_conf());
- /// \private
+ /// @private
struct SymSec {
size_t sec_idx = 0;
Symbol* symbol = nullptr;
@@ -70,21 +67,17 @@ class Parser {
/// <=> std::unordered_multimap<section index, Symbol*>
using SymSecMap = std::vector<SymSec>;
- /// \private
+ /// @private
LIEF_LOCAL void memoize(String str);
- /// \private
+ /// @private
LIEF_LOCAL String* find_coff_string(uint32_t offset) const;
~Parser();
private:
Parser(std::unique_ptr<BinaryStream> stream, const ParserConfig& config,
- Header::KIND kind) :
- stream_(std::move(stream)),
- kind_(kind),
- config_(config)
- {}
+ Header::KIND kind);
ok_error_t process();
ok_error_t parse_header();
@@ -102,7 +95,7 @@ class Parser {
std::map<size_t, Symbol*> symbol_idx_;
SymSecMap symsec_;
- ParserConfig config_;
+ LIEF_MAYBE_UNUSED ParserConfig config_;
};
}
}
diff --git a/deps/LIEF/include/LIEF/COFF/ParserConfig.hpp b/deps/LIEF/include/LIEF/COFF/ParserConfig.hpp
index 3d0a09636b5..10de521a5d6 100644
--- a/deps/LIEF/include/LIEF/COFF/ParserConfig.hpp
+++ b/deps/LIEF/include/LIEF/COFF/ParserConfig.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,7 +29,7 @@ class LIEF_API ParserConfig {
}
static const ParserConfig& all() {
- // To be updated when there is options that are off by default
+ // To be updated when there are options that are off by default
return default_conf();
}
};
diff --git a/deps/LIEF/include/LIEF/COFF/RegularHeader.hpp b/deps/LIEF/include/LIEF/COFF/RegularHeader.hpp
index 1aab5525400..6f6cfa12805 100644
--- a/deps/LIEF/include/LIEF/COFF/RegularHeader.hpp
+++ b/deps/LIEF/include/LIEF/COFF/RegularHeader.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,8 +26,7 @@ namespace COFF {
class LIEF_API RegularHeader : public Header {
public:
RegularHeader() :
- Header(KIND::REGULAR)
- {}
+ Header(KIND::REGULAR) {}
/// Create a RegularHeader from the given stream
static std::unique_ptr<RegularHeader> create(BinaryStream& stream);
@@ -42,7 +41,7 @@ class LIEF_API RegularHeader : public Header {
return std::unique_ptr<Header>(new RegularHeader(*this));
}
- /// The size of the optional header that follows this header (should be 0)
+ /// The size of the optional header which follows this header (should be 0)
uint16_t sizeof_optionalheader() const {
return sizeof_optionalheader_;
}
diff --git a/deps/LIEF/include/LIEF/COFF/Relocation.hpp b/deps/LIEF/include/LIEF/COFF/Relocation.hpp
index 960caf0ad8b..78e5d2f81cb 100644
--- a/deps/LIEF/include/LIEF/COFF/Relocation.hpp
+++ b/deps/LIEF/include/LIEF/COFF/Relocation.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -35,11 +35,11 @@ class LIEF_API Relocation : public LIEF::Relocation {
public:
friend class Parser;
- static constexpr uint32_t I386 = 1 << 17;
- static constexpr uint32_t X64 = 1 << 18;
- static constexpr uint32_t ARM = 1 << 19;
+ static constexpr uint32_t I386 = 1 << 17;
+ static constexpr uint32_t X64 = 1 << 18;
+ static constexpr uint32_t ARM = 1 << 19;
static constexpr uint32_t ARM64 = 1 << 20;
- static constexpr uint32_t MIPS = 1 << 21;
+ static constexpr uint32_t MIPS = 1 << 21;
/// The different relocation types.
///
@@ -48,87 +48,87 @@ class LIEF_API Relocation : public LIEF::Relocation {
enum class TYPE : uint32_t {
UNKNOWN = uint32_t(-1),
I386_ABSOLUTE = I386 + 0x0000,
- I386_DIR16 = I386 + 0x0001,
- I386_REL16 = I386 + 0x0002,
- I386_DIR32 = I386 + 0x0006,
- I386_DIR32NB = I386 + 0x0007,
- I386_SEG12 = I386 + 0x0009,
- I386_SECTION = I386 + 0x000A,
- I386_SECREL = I386 + 0x000B,
- I386_TOKEN = I386 + 0x000C,
- I386_SECREL7 = I386 + 0x000D,
- I386_REL32 = I386 + 0x0014,
+ I386_DIR16 = I386 + 0x0001,
+ I386_REL16 = I386 + 0x0002,
+ I386_DIR32 = I386 + 0x0006,
+ I386_DIR32NB = I386 + 0x0007,
+ I386_SEG12 = I386 + 0x0009,
+ I386_SECTION = I386 + 0x000A,
+ I386_SECREL = I386 + 0x000B,
+ I386_TOKEN = I386 + 0x000C,
+ I386_SECREL7 = I386 + 0x000D,
+ I386_REL32 = I386 + 0x0014,
AMD64_ABSOLUTE = X64 + 0x0000,
- AMD64_ADDR64 = X64 + 0x0001,
- AMD64_ADDR32 = X64 + 0x0002,
+ AMD64_ADDR64 = X64 + 0x0001,
+ AMD64_ADDR32 = X64 + 0x0002,
AMD64_ADDR32NB = X64 + 0x0003,
- AMD64_REL32 = X64 + 0x0004,
- AMD64_REL32_1 = X64 + 0x0005,
- AMD64_REL32_2 = X64 + 0x0006,
- AMD64_REL32_3 = X64 + 0x0007,
- AMD64_REL32_4 = X64 + 0x0008,
- AMD64_REL32_5 = X64 + 0x0009,
- AMD64_SECTION = X64 + 0x000A,
- AMD64_SECREL = X64 + 0x000B,
- AMD64_SECREL7 = X64 + 0x000C,
- AMD64_TOKEN = X64 + 0x000D,
- AMD64_SREL32 = X64 + 0x000E,
- AMD64_PAIR = X64 + 0x000F,
- AMD64_SSPAN32 = X64 + 0x0010,
-
- ARM_ABSOLUTE = ARM + 0x0000,
- ARM_ADDR32 = ARM + 0x0001,
- ARM_ADDR32NB = ARM + 0x0002,
- ARM_BRANCH24 = ARM + 0x0003,
- ARM_BRANCH11 = ARM + 0x0004,
- ARM_TOKEN = ARM + 0x0005,
- ARM_BLX24 = ARM + 0x0008,
- ARM_BLX11 = ARM + 0x0009,
- ARM_REL32 = ARM + 0x000A,
- ARM_SECTION = ARM + 0x000E,
- ARM_SECREL = ARM + 0x000F,
- ARM_MOV32A = ARM + 0x0010,
- ARM_MOV32T = ARM + 0x0011,
+ AMD64_REL32 = X64 + 0x0004,
+ AMD64_REL32_1 = X64 + 0x0005,
+ AMD64_REL32_2 = X64 + 0x0006,
+ AMD64_REL32_3 = X64 + 0x0007,
+ AMD64_REL32_4 = X64 + 0x0008,
+ AMD64_REL32_5 = X64 + 0x0009,
+ AMD64_SECTION = X64 + 0x000A,
+ AMD64_SECREL = X64 + 0x000B,
+ AMD64_SECREL7 = X64 + 0x000C,
+ AMD64_TOKEN = X64 + 0x000D,
+ AMD64_SREL32 = X64 + 0x000E,
+ AMD64_PAIR = X64 + 0x000F,
+ AMD64_SSPAN32 = X64 + 0x0010,
+
+ ARM_ABSOLUTE = ARM + 0x0000,
+ ARM_ADDR32 = ARM + 0x0001,
+ ARM_ADDR32NB = ARM + 0x0002,
+ ARM_BRANCH24 = ARM + 0x0003,
+ ARM_BRANCH11 = ARM + 0x0004,
+ ARM_TOKEN = ARM + 0x0005,
+ ARM_BLX24 = ARM + 0x0008,
+ ARM_BLX11 = ARM + 0x0009,
+ ARM_REL32 = ARM + 0x000A,
+ ARM_SECTION = ARM + 0x000E,
+ ARM_SECREL = ARM + 0x000F,
+ ARM_MOV32A = ARM + 0x0010,
+ ARM_MOV32T = ARM + 0x0011,
ARM_BRANCH20T = ARM + 0x0012,
ARM_BRANCH24T = ARM + 0x0014,
- ARM_BLX23T = ARM + 0x0015,
- ARM_PAIR = ARM + 0x0016,
+ ARM_BLX23T = ARM + 0x0015,
+ ARM_PAIR = ARM + 0x0016,
- ARM64_ABSOLUTE = ARM64 + 0x0000,
- ARM64_ADDR32 = ARM64 + 0x0001,
- ARM64_ADDR32NB = ARM64 + 0x0002,
- ARM64_BRANCH26 = ARM64 + 0x0003,
+ ARM64_ABSOLUTE = ARM64 + 0x0000,
+ ARM64_ADDR32 = ARM64 + 0x0001,
+ ARM64_ADDR32NB = ARM64 + 0x0002,
+ ARM64_BRANCH26 = ARM64 + 0x0003,
ARM64_PAGEBASE_REL21 = ARM64 + 0x0004,
- ARM64_REL21 = ARM64 + 0x0005,
+ ARM64_REL21 = ARM64 + 0x0005,
ARM64_PAGEOFFSET_12A = ARM64 + 0x0006,
ARM64_PAGEOFFSET_12L = ARM64 + 0x0007,
- ARM64_SECREL = ARM64 + 0x0008,
- ARM64_SECREL_LOW12A = ARM64 + 0x0009,
+ ARM64_SECREL = ARM64 + 0x0008,
+ ARM64_SECREL_LOW12A = ARM64 + 0x0009,
ARM64_SECREL_HIGH12A = ARM64 + 0x000A,
- ARM64_SECREL_LOW12L = ARM64 + 0x000B,
- ARM64_TOKEN = ARM64 + 0x000C,
- ARM64_SECTION = ARM64 + 0x000D,
- ARM64_ADDR64 = ARM64 + 0x000E,
- ARM64_BRANCH19 = ARM64 + 0x000F,
- ARM64_BRANCH14 = ARM64 + 0x0010,
- ARM64_REL32 = ARM64 + 0x0011,
-
- MIPS_ABSOLUTE = MIPS + 0x0000,
- MIPS_REFHALF = MIPS + 0x0001,
- MIPS_REFWORD = MIPS + 0x0002,
- MIPS_JMPADDR = MIPS + 0x0003,
- MIPS_REFHI = MIPS + 0x0004,
- MIPS_REFLO = MIPS + 0x0005,
- MIPS_GPREL = MIPS + 0x0006,
- MIPS_LITERAL = MIPS + 0x0007,
- MIPS_SECTION = MIPS + 0x000A,
- MIPS_SECREL = MIPS + 0x000B,
- MIPS_SECRELLO = MIPS + 0x000C,
- MIPS_SECRELHI = MIPS + 0x000D,
+ ARM64_SECREL_LOW12L = ARM64 + 0x000B,
+ ARM64_TOKEN = ARM64 + 0x000C,
+ ARM64_SECTION = ARM64 + 0x000D,
+ ARM64_ADDR64 = ARM64 + 0x000E,
+ ARM64_BRANCH19 = ARM64 + 0x000F,
+ ARM64_BRANCH14 = ARM64 + 0x0010,
+ ARM64_REL32 = ARM64 + 0x0011,
+
+ MIPS_ABSOLUTE = MIPS + 0x0000,
+ MIPS_REFHALF = MIPS + 0x0001,
+ MIPS_REFWORD = MIPS + 0x0002,
+ MIPS_JMPADDR = MIPS + 0x0003,
+ MIPS_REFHI = MIPS + 0x0004,
+ MIPS_REFLO = MIPS + 0x0005,
+ MIPS_GPREL = MIPS + 0x0006,
+ MIPS_LITERAL = MIPS + 0x0007,
+ MIPS_SECTION = MIPS + 0x000A,
+ MIPS_SECREL = MIPS + 0x000B,
+ MIPS_SECRELLO = MIPS + 0x000C,
+ MIPS_SECRELHI = MIPS + 0x000D,
MIPS_JMPADDR16 = MIPS + 0x0010,
MIPS_REFWORDNB = MIPS + 0x0022,
- MIPS_PAIR = MIPS + 0x0025,
+ MIPS_PAIR = MIPS + 0x0025,
};
/// Convert a relocation enum type into a 16-bits value.
@@ -139,32 +139,26 @@ class LIEF_API Relocation : public LIEF::Relocation {
/// Create a relocation type from its raw value and the architecture
static TYPE from_value(uint16_t value, Header::MACHINE_TYPES arch) {
switch (arch) {
- case Header::MACHINE_TYPES::ARM64:
- return TYPE(value + ARM64);
+ case Header::MACHINE_TYPES::ARM64: return TYPE(value + ARM64);
- case Header::MACHINE_TYPES::AMD64:
- return TYPE(value + X64);
+ case Header::MACHINE_TYPES::AMD64: return TYPE(value + X64);
- case Header::MACHINE_TYPES::I386:
- return TYPE(value + I386);
+ case Header::MACHINE_TYPES::I386: return TYPE(value + I386);
case Header::MACHINE_TYPES::ARM:
case Header::MACHINE_TYPES::ARMNT:
- case Header::MACHINE_TYPES::THUMB:
- return TYPE(value + ARM);
+ case Header::MACHINE_TYPES::THUMB: return TYPE(value + ARM);
- case Header::MACHINE_TYPES::R4000:
- return TYPE(value + MIPS);
+ case Header::MACHINE_TYPES::R4000: return TYPE(value + MIPS);
- default:
- return TYPE::UNKNOWN;
+ default: return TYPE::UNKNOWN;
}
return TYPE::UNKNOWN;
}
/// Create a relocation from the given stream
- static std::unique_ptr<Relocation> parse(
- BinaryStream& stream, Header::MACHINE_TYPES arch);
+ static std::unique_ptr<Relocation> parse(BinaryStream& stream,
+ Header::MACHINE_TYPES arch);
/// Symbol index associated with this relocation
uint32_t symbol_idx() const {
diff --git a/deps/LIEF/include/LIEF/COFF/Section.hpp b/deps/LIEF/include/LIEF/COFF/Section.hpp
index d70a3117adf..f3ca20eeea7 100644
--- a/deps/LIEF/include/LIEF/COFF/Section.hpp
+++ b/deps/LIEF/include/LIEF/COFF/Section.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
#include <memory>
#include <ostream>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/Abstract/Section.hpp"
#include "LIEF/PE/Section.hpp"
@@ -60,9 +61,11 @@ class LIEF_API Section : public LIEF::Section {
using it_relocations = ref_iterator<relocations_t&, Relocation*>;
/// Iterator that outputs const Relocation&
- using it_const_relocations = const_ref_iterator<const relocations_t&, const Relocation*>;
+ using it_const_relocations =
+ const_ref_iterator<const relocations_t&, const Relocation*>;
- /// Container for the symbols associated with this section (owned by the Binary object)
+ /// Container for the symbols associated with this section (owned by the Binary
+ /// object)
using symbols_t = std::vector<Symbol*>;
/// Iterator that outputs Symbol&
@@ -85,7 +88,7 @@ class LIEF_API Section : public LIEF::Section {
}
/// Content wrapped by this section
- span<const uint8_t> content() const override {
+ span<const uint8_t> content() const LIEF_LIFETIMEBOUND override {
return content_;
}
@@ -110,7 +113,7 @@ class LIEF_API Section : public LIEF::Section {
/// Number of relocations.
///
- /// \warning If the number of relocations is greater than 0xFFFF (maximum
+ /// @warning If the number of relocations is greater than 0xFFFF (maximum
/// value for 16-bits integer), then the number of relocations is
/// stored in the virtual address of the **first** relocation.
uint16_t numberof_relocations() const {
@@ -151,32 +154,33 @@ class LIEF_API Section : public LIEF::Section {
}
/// Iterator over the relocations associated with this section
- it_relocations relocations() {
+ it_relocations relocations() LIEF_LIFETIMEBOUND {
return relocations_;
}
- it_const_relocations relocations() const {
+ it_const_relocations relocations() const LIEF_LIFETIMEBOUND {
return relocations_;
}
/// Iterator over the symbols associated with this section
- it_symbols symbols() {
+ it_symbols symbols() LIEF_LIFETIMEBOUND {
return symbols_;
}
- it_const_symbols symbols() const {
+ it_const_symbols symbols() const LIEF_LIFETIMEBOUND {
return symbols_;
}
- /// Return comdat infomration (only if the section has the
+ /// Return comdat information (only if the section has the
/// CHARACTERISTICS::LNK_COMDAT characteristic)
optional<ComdatInfo> comdat_info() const;
/// Whether there is a large number of relocations whose number need
/// to be stored in the virtual address attribute
bool has_extended_relocations() const {
+ static constexpr auto MAX_RELOC = /*uint16_t::max*/ 65535;
return has_characteristic(CHARACTERISTICS::LNK_NRELOC_OVFL) &&
- numberof_relocations() == std::numeric_limits<uint16_t>::max();
+ numberof_relocations() == MAX_RELOC;
}
void content(const std::vector<uint8_t>& data) override {
@@ -217,6 +221,18 @@ class LIEF_API Section : public LIEF::Section {
characteristics_ = characteristics;
}
+ /// Return the COFF string associated with the section's name (or a nullptr)
+ ///
+ /// This coff string is usually present for long section names whose length
+ /// does not fit in the 8 bytes allocated by the COFF format.
+ String* coff_string() {
+ return coff_string_;
+ }
+
+ const String* coff_string() const {
+ return coff_string_;
+ }
+
std::string to_string() const;
LIEF_API friend std::ostream& operator<<(std::ostream& os, const Section& sec) {
@@ -230,15 +246,17 @@ class LIEF_API Section : public LIEF::Section {
Section() = default;
std::vector<uint8_t> content_;
- uint32_t virtual_size_ = 0;
+ uint32_t virtual_size_ = 0;
uint32_t pointer_to_relocations_ = 0;
uint32_t pointer_to_linenumbers_ = 0;
- uint16_t number_of_relocations_ = 0;
- uint16_t number_of_linenumbers_ = 0;
- uint32_t characteristics_ = 0;
+ uint16_t number_of_relocations_ = 0;
+ uint16_t number_of_linenumbers_ = 0;
+ uint32_t characteristics_ = 0;
relocations_t relocations_;
symbols_t symbols_;
+
+ String* coff_string_ = nullptr;
};
inline const char* to_string(Section::CHARACTERISTICS e) {
diff --git a/deps/LIEF/include/LIEF/COFF/String.hpp b/deps/LIEF/include/LIEF/COFF/String.hpp
index 8e678762642..c2ffa3925aa 100644
--- a/deps/LIEF/include/LIEF/COFF/String.hpp
+++ b/deps/LIEF/include/LIEF/COFF/String.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,14 +29,14 @@ namespace COFF {
/// Some of these strings can be used for section names that are greater than 8
/// bytes. See: LIEF::PE::Section::coff_string()
///
-/// Reference: https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#coff-string-table
+/// Reference:
+/// https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#coff-string-table
class LIEF_API String {
public:
String() = default;
String(uint32_t offset, std::string str) :
str_(std::move(str)),
- offset_(offset)
- {}
+ offset_(offset) {}
String(const String&) = default;
String& operator=(const String&) = default;
@@ -47,7 +47,7 @@ class LIEF_API String {
~String() = default;
/// The actual string
- const std::string& str() const {
+ const std::string& str() const LIEF_LIFETIMEBOUND {
return str_;
}
@@ -57,19 +57,17 @@ class LIEF_API String {
return offset_;
}
- String& str(std::string str) {
+ String& str(std::string str) LIEF_LIFETIMEBOUND {
str_ = std::move(str);
return *this;
}
- String& offset(uint32_t value) {
+ String& offset(uint32_t value) LIEF_LIFETIMEBOUND {
offset_ = value;
return *this;
}
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const String& str)
- {
+ friend LIEF_API std::ostream& operator<<(std::ostream& os, const String& str) {
os << str.str();
return os;
}
diff --git a/deps/LIEF/include/LIEF/COFF/Symbol.hpp b/deps/LIEF/include/LIEF/COFF/Symbol.hpp
index 3a9d8a97fcb..d6b4f4f41ed 100644
--- a/deps/LIEF/include/LIEF/COFF/Symbol.hpp
+++ b/deps/LIEF/include/LIEF/COFF/Symbol.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -37,15 +37,17 @@ class LIEF_API Symbol : public LIEF::Symbol {
friend class Parser;
using auxiliary_symbols_t = std::vector<std::unique_ptr<AuxiliarySymbol>>;
- using it_auxiliary_symbols_t = ref_iterator<auxiliary_symbols_t&, AuxiliarySymbol*>;
- using it_const_auxiliary_symbols_t = const_ref_iterator<const auxiliary_symbols_t&, AuxiliarySymbol*>;
+ using it_auxiliary_symbols_t =
+ ref_iterator<auxiliary_symbols_t&, AuxiliarySymbol*>;
+ using it_const_auxiliary_symbols_t =
+ const_ref_iterator<const auxiliary_symbols_t&, AuxiliarySymbol*>;
struct parsing_context_t {
std::function<String*(uint32_t)> find_string;
bool is_bigobj;
};
- static std::unique_ptr<Symbol> parse(
- parsing_context_t& ctx, BinaryStream& stream, size_t* idx);
+ static std::unique_ptr<Symbol> parse(parsing_context_t& ctx,
+ BinaryStream& stream, size_t* idx);
Symbol();
Symbol(const Symbol&);
@@ -58,8 +60,10 @@ class LIEF_API Symbol : public LIEF::Symbol {
/// correspond to a section. Microsoft tools use this setting along with
/// `.file` records.
static constexpr auto SYM_SEC_IDX_DEBUG = -2;
+
/// The symbol has an absolute (non-relocatable) value and is not an address.
static constexpr auto SYM_SEC_IDX_ABS = -1;
+
/// The symbol record is not yet assigned a section. A value of zero indicates
/// that a reference to an external symbol is defined elsewhere. A value of
/// non-zero is a common symbol with a size that is specified by the value.
@@ -67,37 +71,38 @@ class LIEF_API Symbol : public LIEF::Symbol {
static constexpr auto SYM_COMPLEX_TYPE_SHIFT = 4;
- /// Reference: https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#storage-class
+ /// Reference:
+ /// https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#storage-class
enum class STORAGE_CLASS : int32_t {
INVALID = 0xFF,
- END_OF_FUNCTION = -1, ///< Physical end of function
- NONE = 0, ///< No symbol
- AUTOMATIC = 1, ///< Stack variable
- EXTERNAL = 2, ///< External symbol
- STATIC = 3, ///< Static
- REGISTER = 4, ///< Register variable
- EXTERNAL_DEF = 5, ///< External definition
- LABEL = 6, ///< Label
- UNDEFINED_LABEL = 7, ///< Undefined label
- MEMBER_OF_STRUCT = 8, ///< Member of structure
- ARGUMENT = 9, ///< Function argument
- STRUCT_TAG = 10, ///< Structure tag
- MEMBER_OF_UNION = 11, ///< Member of union
- UNION_TAG = 12, ///< Union tag
- TYPE_DEFINITION = 13, ///< Type definition
- UNDEFINED_STATIC = 14, ///< Undefined static
- ENUM_TAG = 15, ///< Enumeration tag
- MEMBER_OF_ENUM = 16, ///< Member of enumeration
- REGISTER_PARAM = 17, ///< Register parameter
- BIT_FIELD = 18, ///< Bit field
- BLOCK = 100,
- FUNCTION = 101,
- END_OF_STRUCT = 102, ///< End of structure
- FILE = 103, ///< File name
- SECTION = 104,
- WEAK_EXTERNAL = 105, ///< Duplicate tag
- CLR_TOKEN = 107
+ END_OF_FUNCTION = -1, ///< Physical end of function
+ NONE = 0, ///< No symbol
+ AUTOMATIC = 1, ///< Stack variable
+ EXTERNAL = 2, ///< External symbol
+ STATIC = 3, ///< Static
+ REGISTER = 4, ///< Register variable
+ EXTERNAL_DEF = 5, ///< External definition
+ LABEL = 6, ///< Label
+ UNDEFINED_LABEL = 7, ///< Undefined label
+ MEMBER_OF_STRUCT = 8, ///< Member of structure
+ ARGUMENT = 9, ///< Function argument
+ STRUCT_TAG = 10, ///< Structure tag
+ MEMBER_OF_UNION = 11, ///< Member of union
+ UNION_TAG = 12, ///< Union tag
+ TYPE_DEFINITION = 13, ///< Type definition
+ UNDEFINED_STATIC = 14, ///< Undefined static
+ ENUM_TAG = 15, ///< Enumeration tag
+ MEMBER_OF_ENUM = 16, ///< Member of enumeration
+ REGISTER_PARAM = 17, ///< Register parameter
+ BIT_FIELD = 18, ///< Bit field
+ BLOCK = 100,
+ FUNCTION = 101,
+ END_OF_STRUCT = 102, ///< End of structure
+ FILE = 103, ///< File name
+ SECTION = 104,
+ WEAK_EXTERNAL = 105, ///< Duplicate tag
+ CLR_TOKEN = 107,
};
enum class BASE_TYPE : uint32_t {
@@ -116,7 +121,7 @@ class LIEF_API Symbol : public LIEF::Symbol {
TY_BYTE = 12, ///< A byte; unsigned 1-byte integer.
TY_WORD = 13, ///< A word; unsigned 2-byte integer.
TY_UINT = 14, ///< An unsigned integer of natural size.
- TY_DWORD = 15 ///< An unsigned 4-byte integer.
+ TY_DWORD = 15, ///< An unsigned 4-byte integer.
};
enum class COMPLEX_TYPE : uint32_t {
@@ -192,8 +197,7 @@ class LIEF_API Symbol : public LIEF::Symbol {
}
bool is_undefined() const {
- return is_external() && section_idx() == SYM_SEC_IDX_UNDEF &&
- value() == 0;
+ return is_external() && section_idx() == SYM_SEC_IDX_UNDEF && value() == 0;
}
bool is_function_line_info() const {
@@ -223,7 +227,7 @@ class LIEF_API Symbol : public LIEF::Symbol {
std::string& name() override;
- /// COFF string used to represents the (long) symbol name
+ /// COFF string used to represent the (long) symbol name
const String* coff_name() const {
return coff_name_;
}
@@ -256,9 +260,7 @@ class LIEF_API Symbol : public LIEF::Symbol {
std::string to_string() const;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const Symbol& entry)
- {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os, const Symbol& entry) {
os << entry.to_string();
return os;
}
@@ -267,8 +269,8 @@ class LIEF_API Symbol : public LIEF::Symbol {
private:
template<class T>
- static std::unique_ptr<Symbol> parse_impl(
- parsing_context_t& ctx, BinaryStream& stream, size_t* idx);
+ static std::unique_ptr<Symbol> parse_impl(parsing_context_t& ctx,
+ BinaryStream& stream, size_t* idx);
String* coff_name_ = nullptr;
uint16_t type_ = 0;
uint8_t storage_class_ = 0;
diff --git a/deps/LIEF/include/LIEF/COFF/utils.hpp b/deps/LIEF/include/LIEF/COFF/utils.hpp
index 73cb9fbf34a..ead86f87efc 100644
--- a/deps/LIEF/include/LIEF/COFF/utils.hpp
+++ b/deps/LIEF/include/LIEF/COFF/utils.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,7 +17,6 @@
#define LIEF_COFF_UTILS_H
#include "LIEF/visibility.h"
#include "LIEF/COFF/Header.hpp"
-#include "LIEF/BinaryStream/FileStream.hpp"
#include "LIEF/BinaryStream/SpanStream.hpp"
#include <string>
diff --git a/deps/LIEF/include/LIEF/DEX.hpp b/deps/LIEF/include/LIEF/DEX.hpp
index f976b08117d..28324a1fb04 100644
--- a/deps/LIEF/include/LIEF/DEX.hpp
+++ b/deps/LIEF/include/LIEF/DEX.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,15 +18,15 @@
#include "LIEF/config.h"
#if defined(LIEF_DEX_SUPPORT)
-#include "LIEF/DEX/Parser.hpp"
-#include "LIEF/DEX/utils.hpp"
-#include "LIEF/DEX/File.hpp"
-#include "LIEF/DEX/Class.hpp"
-#include "LIEF/DEX/Prototype.hpp"
-#include "LIEF/DEX/Header.hpp"
-#include "LIEF/DEX/Method.hpp"
-#include "LIEF/DEX/Field.hpp"
-#include "LIEF/DEX/EnumToString.hpp"
+ #include "LIEF/DEX/Parser.hpp"
+ #include "LIEF/DEX/utils.hpp"
+ #include "LIEF/DEX/File.hpp"
+ #include "LIEF/DEX/Class.hpp"
+ #include "LIEF/DEX/Prototype.hpp"
+ #include "LIEF/DEX/Header.hpp"
+ #include "LIEF/DEX/Method.hpp"
+ #include "LIEF/DEX/Field.hpp"
+ #include "LIEF/DEX/EnumToString.hpp"
#endif
#endif
diff --git a/deps/LIEF/include/LIEF/DEX/Class.hpp b/deps/LIEF/include/LIEF/DEX/Class.hpp
index 0b1baff36ad..0a05a20d90a 100644
--- a/deps/LIEF/include/LIEF/DEX/Class.hpp
+++ b/deps/LIEF/include/LIEF/DEX/Class.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -56,7 +56,8 @@ class LIEF_API Class : public Object {
public:
static std::string package_normalized(const std::string& pkg_name);
static std::string fullname_normalized(const std::string& pkg_cls);
- static std::string fullname_normalized(const std::string& pkg, const std::string& cls_name);
+ static std::string fullname_normalized(const std::string& pkg,
+ const std::string& cls_name);
Class();
Class(const Class&) = delete;
@@ -124,10 +125,10 @@ class LIEF_API Class : public Object {
private:
std::string fullname_;
- uint32_t access_flags_ = ACCESS_FLAGS::ACC_UNKNOWN;
- Class* parent_ = nullptr;
- methods_t methods_;
- fields_t fields_;
+ uint32_t access_flags_ = ACCESS_FLAGS::ACC_UNKNOWN;
+ Class* parent_ = nullptr;
+ methods_t methods_;
+ fields_t fields_;
std::string source_filename_;
uint32_t original_index_ = UINT_MAX;
diff --git a/deps/LIEF/include/LIEF/DEX/CodeInfo.hpp b/deps/LIEF/include/LIEF/DEX/CodeInfo.hpp
index 85410e665b1..34c21b870b3 100644
--- a/deps/LIEF/include/LIEF/DEX/CodeInfo.hpp
+++ b/deps/LIEF/include/LIEF/DEX/CodeInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -46,13 +46,13 @@ class LIEF_API CodeInfo : public Object {
~CodeInfo() override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const CodeInfo& cinfo);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const CodeInfo& cinfo);
private:
uint16_t nb_registers_ = 0;
uint16_t args_input_sizes_ = 0;
uint16_t output_sizes_ = 0;
-
};
} // Namespace DEX
diff --git a/deps/LIEF/include/LIEF/DEX/EnumToString.hpp b/deps/LIEF/include/LIEF/DEX/EnumToString.hpp
index 18336a7028b..e155236f613 100644
--- a/deps/LIEF/include/LIEF/DEX/EnumToString.hpp
+++ b/deps/LIEF/include/LIEF/DEX/EnumToString.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,4 +32,3 @@ LIEF_API const char* to_string(Type::PRIMITIVES e);
} // namespace LIEF
#endif
-
diff --git a/deps/LIEF/include/LIEF/DEX/Field.hpp b/deps/LIEF/include/LIEF/DEX/Field.hpp
index 25283a81e00..3eff71324bc 100644
--- a/deps/LIEF/include/LIEF/DEX/Field.hpp
+++ b/deps/LIEF/include/LIEF/DEX/Field.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -30,9 +30,10 @@ namespace DEX {
class Parser;
class Class;
-/// Class which represent a DEX Field
+/// Class which represents a DEX Field
class LIEF_API Field : public Object {
friend class Parser;
+
public:
using access_flags_list_t = std::vector<ACCESS_FLAGS>;
@@ -51,8 +52,8 @@ class LIEF_API Field : public Object {
bool has_class() const;
/// Class associated with this Field
- const Class* cls() const;
- Class* cls();
+ const Class* cls() const LIEF_LIFETIMEBOUND;
+ Class* cls() LIEF_LIFETIMEBOUND;
/// Index in the DEX Fields pool
size_t index() const;
@@ -61,8 +62,8 @@ class LIEF_API Field : public Object {
bool is_static() const;
/// Field's prototype
- const Type* type() const;
- Type* type();
+ const Type* type() const LIEF_LIFETIMEBOUND;
+ Type* type() LIEF_LIFETIMEBOUND;
void accept(Visitor& visitor) const override;
diff --git a/deps/LIEF/include/LIEF/DEX/File.hpp b/deps/LIEF/include/LIEF/DEX/File.hpp
index 6cf6240d82c..226ffee53ac 100644
--- a/deps/LIEF/include/LIEF/DEX/File.hpp
+++ b/deps/LIEF/include/LIEF/DEX/File.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -49,25 +49,27 @@ class LIEF_API File : public Object {
using it_methods = ref_iterator<methods_t&, Method*>;
using it_const_methods = const_ref_iterator<const methods_t&, const Method*>;
- using strings_t = std::vector<std::unique_ptr<std::string>>;
- using it_strings = ref_iterator<strings_t&, std::string*>;
- using it_const_strings = const_ref_iterator<const strings_t&, const std::string*>;
+ using strings_t = std::vector<std::unique_ptr<std::string>>;
+ using it_strings = ref_iterator<strings_t&, std::string*>;
+ using it_const_strings =
+ const_ref_iterator<const strings_t&, const std::string*>;
- using types_t = std::vector<std::unique_ptr<Type>>;
- using it_types = ref_iterator<types_t&, Type*>;
- using it_const_types = const_ref_iterator<const types_t&, const Type*>;
+ using types_t = std::vector<std::unique_ptr<Type>>;
+ using it_types = ref_iterator<types_t&, Type*>;
+ using it_const_types = const_ref_iterator<const types_t&, const Type*>;
- using prototypes_t = std::vector<std::unique_ptr<Prototype>>;
- using it_prototypes = ref_iterator<prototypes_t&, Prototype*>;
- using it_const_prototypes = const_ref_iterator<const prototypes_t&, const Prototype*>;
+ using prototypes_t = std::vector<std::unique_ptr<Prototype>>;
+ using it_prototypes = ref_iterator<prototypes_t&, Prototype*>;
+ using it_const_prototypes =
+ const_ref_iterator<const prototypes_t&, const Prototype*>;
- using fields_t = std::vector<std::unique_ptr<Field>>;
- using it_fields = ref_iterator<fields_t&, Field*>;
- using it_const_fields = const_ref_iterator<const fields_t&, const Field*>;
+ using fields_t = std::vector<std::unique_ptr<Field>>;
+ using it_fields = ref_iterator<fields_t&, Field*>;
+ using it_const_fields = const_ref_iterator<const fields_t&, const Field*>;
public:
File& operator=(const File& copy) = delete;
- File(const File& copy) = delete;
+ File(const File& copy) = delete;
/// Version of the current DEX file
dex_version_t version() const;
@@ -82,25 +84,25 @@ class LIEF_API File : public Object {
void location(const std::string& location);
/// DEX header
- const Header& header() const;
- Header& header();
+ const Header& header() const LIEF_LIFETIMEBOUND;
+ Header& header() LIEF_LIFETIMEBOUND;
/// **All** classes used in the DEX file
- it_const_classes classes() const;
- it_classes classes();
+ it_const_classes classes() const LIEF_LIFETIMEBOUND;
+ it_classes classes() LIEF_LIFETIMEBOUND;
/// Check if the given class name exists
bool has_class(const std::string& class_name) const;
/// Return the DEX::Class object associated with the given name
- const Class* get_class(const std::string& class_name) const;
+ const Class* get_class(const std::string& class_name) const LIEF_LIFETIMEBOUND;
- Class* get_class(const std::string& class_name);
+ Class* get_class(const std::string& class_name) LIEF_LIFETIMEBOUND;
/// Return the DEX::Class object associated with the given index
- const Class* get_class(size_t index) const;
+ const Class* get_class(size_t index) const LIEF_LIFETIMEBOUND;
- Class* get_class(size_t index);
+ Class* get_class(size_t index) LIEF_LIFETIMEBOUND;
/// De-optimize information
dex2dex_info_t dex2dex_info() const;
@@ -109,24 +111,24 @@ class LIEF_API File : public Object {
std::string dex2dex_json_info() const;
/// Return an iterator over **all** the DEX::Method used in this DEX file
- it_const_methods methods() const;
- it_methods methods();
+ it_const_methods methods() const LIEF_LIFETIMEBOUND;
+ it_methods methods() LIEF_LIFETIMEBOUND;
/// Return an iterator over **all** the DEX::Field used in this DEX file
- it_const_fields fields() const;
- it_fields fields();
+ it_const_fields fields() const LIEF_LIFETIMEBOUND;
+ it_fields fields() LIEF_LIFETIMEBOUND;
/// String pool
- it_const_strings strings() const;
- it_strings strings();
+ it_const_strings strings() const LIEF_LIFETIMEBOUND;
+ it_strings strings() LIEF_LIFETIMEBOUND;
/// Type pool
- it_const_types types() const;
- it_types types();
+ it_const_types types() const LIEF_LIFETIMEBOUND;
+ it_types types() LIEF_LIFETIMEBOUND;
/// Prototype pool
- it_prototypes prototypes();
- it_const_prototypes prototypes() const;
+ it_prototypes prototypes() LIEF_LIFETIMEBOUND;
+ it_const_prototypes prototypes() const LIEF_LIFETIMEBOUND;
/// DEX Map
const MapList& map() const;
@@ -151,20 +153,22 @@ class LIEF_API File : public Object {
static void deoptimize_nop(uint8_t* inst_ptr, uint32_t value);
static void deoptimize_return(uint8_t* inst_ptr, uint32_t value);
- static void deoptimize_invoke_virtual(uint8_t* inst_ptr, uint32_t value, OPCODES new_inst);
- static void deoptimize_instance_field_access(uint8_t* inst_ptr, uint32_t value, OPCODES new_inst);
+ static void deoptimize_invoke_virtual(uint8_t* inst_ptr, uint32_t value,
+ OPCODES new_inst);
+ static void deoptimize_instance_field_access(uint8_t* inst_ptr, uint32_t value,
+ OPCODES new_inst);
std::string name_;
std::string location_;
- Header header_;
- classes_t classes_;
- methods_t methods_;
- fields_t fields_;
- strings_t strings_;
- types_t types_;
+ Header header_;
+ classes_t classes_;
+ methods_t methods_;
+ fields_t fields_;
+ strings_t strings_;
+ types_t types_;
prototypes_t prototypes_;
- MapList map_;
+ MapList map_;
classes_list_t class_list_;
std::vector<uint8_t> original_data_;
diff --git a/deps/LIEF/include/LIEF/DEX/Header.hpp b/deps/LIEF/include/LIEF/DEX/Header.hpp
index b1d269f7a21..d2cab3731ab 100644
--- a/deps/LIEF/include/LIEF/DEX/Header.hpp
+++ b/deps/LIEF/include/LIEF/DEX/Header.hpp
@@ -1,6 +1,6 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -42,7 +42,7 @@ class LIEF_API Header : public Object {
public:
using location_t = std::pair<uint32_t, uint32_t>;
- using magic_t = std::array<uint8_t, 8>;
+ using magic_t = std::array<uint8_t, 8>;
using signature_t = std::array<uint8_t, 20>;
Header();
@@ -67,7 +67,7 @@ class LIEF_API Header : public Object {
/// Size of this header. It should be 0x70
uint32_t header_size() const;
- /// File endianess of the file
+ /// File endianness of the file
uint32_t endian_tag() const;
/// Offset from the start of the file to the map list (see: DEX::MapList)
@@ -95,39 +95,39 @@ class LIEF_API Header : public Object {
~Header() override;
private:
- magic_t magic_;
- uint32_t checksum_;
- signature_t signature_;
- uint32_t file_size_;
+ magic_t magic_{};
+ uint32_t checksum_ = 0;
+ signature_t signature_{};
+ uint32_t file_size_ = 0;
- uint32_t header_size_;
- uint32_t endian_tag_;
+ uint32_t header_size_ = 0;
+ uint32_t endian_tag_ = 0;
- uint32_t link_size_;
- uint32_t link_off_;
+ uint32_t link_size_ = 0;
+ uint32_t link_off_ = 0;
- uint32_t map_off_;
+ uint32_t map_off_ = 0;
- uint32_t string_ids_size_;
- uint32_t string_ids_off_;
+ uint32_t string_ids_size_ = 0;
+ uint32_t string_ids_off_ = 0;
- uint32_t type_ids_size_;
- uint32_t type_ids_off_;
+ uint32_t type_ids_size_ = 0;
+ uint32_t type_ids_off_ = 0;
- uint32_t proto_ids_size_;
- uint32_t proto_ids_off_;
+ uint32_t proto_ids_size_ = 0;
+ uint32_t proto_ids_off_ = 0;
- uint32_t field_ids_size_;
- uint32_t field_ids_off_;
+ uint32_t field_ids_size_ = 0;
+ uint32_t field_ids_off_ = 0;
- uint32_t method_ids_size_;
- uint32_t method_ids_off_;
+ uint32_t method_ids_size_ = 0;
+ uint32_t method_ids_off_ = 0;
- uint32_t class_defs_size_;
- uint32_t class_defs_off_;
+ uint32_t class_defs_size_ = 0;
+ uint32_t class_defs_off_ = 0;
- uint32_t data_size_;
- uint32_t data_off_;
+ uint32_t data_size_ = 0;
+ uint32_t data_off_ = 0;
};
} // Namespace DEX
diff --git a/deps/LIEF/include/LIEF/DEX/MapItem.hpp b/deps/LIEF/include/LIEF/DEX/MapItem.hpp
index bb791c472e1..2206a8aeeb4 100644
--- a/deps/LIEF/include/LIEF/DEX/MapItem.hpp
+++ b/deps/LIEF/include/LIEF/DEX/MapItem.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -33,26 +33,26 @@ class LIEF_API MapItem : public Object {
public:
enum class TYPES : uint16_t {
- HEADER = 0x0000,
- STRING_ID = 0x0001,
- TYPE_ID = 0x0002,
- PROTO_ID = 0x0003,
- FIELD_ID = 0x0004,
- METHOD_ID = 0x0005,
- CLASS_DEF = 0x0006,
- CALL_SITE_ID = 0x0007,
- METHOD_HANDLE = 0x0008,
- MAP_LIST = 0x1000,
- TYPE_LIST = 0x1001,
+ HEADER = 0x0000,
+ STRING_ID = 0x0001,
+ TYPE_ID = 0x0002,
+ PROTO_ID = 0x0003,
+ FIELD_ID = 0x0004,
+ METHOD_ID = 0x0005,
+ CLASS_DEF = 0x0006,
+ CALL_SITE_ID = 0x0007,
+ METHOD_HANDLE = 0x0008,
+ MAP_LIST = 0x1000,
+ TYPE_LIST = 0x1001,
ANNOTATION_SET_REF_LIST = 0x1002,
- ANNOTATION_SET = 0x1003,
- CLASS_DATA = 0x2000,
- CODE = 0x2001,
- STRING_DATA = 0x2002,
- DEBUG_INFO = 0x2003,
- ANNOTATION = 0x2004,
- ENCODED_ARRAY = 0x2005,
- ANNOTATIONS_DIRECTORY = 0x2006,
+ ANNOTATION_SET = 0x1003,
+ CLASS_DATA = 0x2000,
+ CODE = 0x2001,
+ STRING_DATA = 0x2002,
+ DEBUG_INFO = 0x2003,
+ ANNOTATION = 0x2004,
+ ENCODED_ARRAY = 0x2005,
+ ANNOTATIONS_DIRECTORY = 0x2006,
};
@@ -66,7 +66,7 @@ class LIEF_API MapItem : public Object {
/// The type of the item
TYPES type() const;
- /// Reserved value (likely for alignment prupose)
+ /// Reserved value (likely for alignment purpose)
uint16_t reserved() const;
/// The number of elements (the real meaning depends on the type)
@@ -84,11 +84,10 @@ class LIEF_API MapItem : public Object {
~MapItem() override;
private:
- TYPES type_;
- uint16_t reserved_;
- uint32_t size_;
- uint32_t offset_;
-
+ TYPES type_ = TYPES::HEADER;
+ uint16_t reserved_ = 0;
+ uint32_t size_ = 0;
+ uint32_t offset_ = 0;
};
} // Namespace DEX
diff --git a/deps/LIEF/include/LIEF/DEX/MapList.hpp b/deps/LIEF/include/LIEF/DEX/MapList.hpp
index c0c59ee83b1..53559222f52 100644
--- a/deps/LIEF/include/LIEF/DEX/MapList.hpp
+++ b/deps/LIEF/include/LIEF/DEX/MapList.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -38,9 +38,9 @@ class LIEF_API MapList : public Object {
friend class Parser;
public:
- using items_t = std::map<MapItem::TYPES, MapItem>;
- using it_items_t = ref_iterator<std::vector<MapItem*>>;
- using it_const_items_t = const_ref_iterator<std::vector<MapItem*>>;
+ using items_t = std::map<MapItem::TYPES, MapItem>;
+ using it_items_t = ref_iterator<std::vector<MapItem*>>;
+ using it_const_items_t = const_ref_iterator<std::vector<MapItem*>>;
public:
MapList();
@@ -56,10 +56,10 @@ class LIEF_API MapList : public Object {
bool has(MapItem::TYPES type) const;
/// Return the LIEF::DEX::MapItem associated with the given type
- const MapItem& get(MapItem::TYPES type) const;
+ const MapItem& get(MapItem::TYPES type) const LIEF_LIFETIMEBOUND;
/// Return the LIEF::DEX::MapItem associated with the given type
- MapItem& get(MapItem::TYPES type);
+ MapItem& get(MapItem::TYPES type) LIEF_LIFETIMEBOUND;
/// Return the LIEF::DEX::MapItem associated with the given type
const MapItem& operator[](MapItem::TYPES type) const;
@@ -76,7 +76,6 @@ class LIEF_API MapList : public Object {
private:
items_t items_;
-
};
} // Namespace DEX
diff --git a/deps/LIEF/include/LIEF/DEX/Method.hpp b/deps/LIEF/include/LIEF/DEX/Method.hpp
index 54eec9bd662..5f419760ac2 100644
--- a/deps/LIEF/include/LIEF/DEX/Method.hpp
+++ b/deps/LIEF/include/LIEF/DEX/Method.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -35,6 +35,7 @@ class Prototype;
/// Class which represents a DEX::Method
class LIEF_API Method : public Object {
friend class Parser;
+
public:
using access_flags_list_t = std::vector<ACCESS_FLAGS>;
@@ -67,7 +68,7 @@ class LIEF_API Method : public Object {
size_t index() const;
/// True if this method is a virtual one.
- /// i.e. not **static**, **private**, **finale** or constructor
+ /// i.e. not **static**, **private**, **final** or constructor
bool is_virtual() const;
/// Method's prototype or a nullptr if it is not resolved
@@ -110,7 +111,6 @@ class LIEF_API Method : public Object {
CodeInfo code_info_;
dex2dex_method_info_t dex2dex_info_;
-
};
} // Namespace DEX
diff --git a/deps/LIEF/include/LIEF/DEX/Parser.hpp b/deps/LIEF/include/LIEF/DEX/Parser.hpp
index 7b925d129da..2d3337ec9da 100644
--- a/deps/LIEF/include/LIEF/DEX/Parser.hpp
+++ b/deps/LIEF/include/LIEF/DEX/Parser.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -37,13 +37,13 @@ class Type;
/// Class which parses a DEX file to produce a DEX::File object
class LIEF_API Parser {
public:
-
/// Parse the DEX file from the file path given in parameter
static std::unique_ptr<File> parse(const std::string& file);
- static std::unique_ptr<File> parse(std::vector<uint8_t> data, const std::string& name = "");
+ static std::unique_ptr<File> parse(std::vector<uint8_t> data,
+ const std::string& name = "");
Parser& operator=(const Parser& copy) = delete;
- Parser(const Parser& copy) = delete;
+ Parser(const Parser& copy) = delete;
private:
Parser();
diff --git a/deps/LIEF/include/LIEF/DEX/Prototype.hpp b/deps/LIEF/include/LIEF/DEX/Prototype.hpp
index ff6413a5c0b..37762487ec6 100644
--- a/deps/LIEF/include/LIEF/DEX/Prototype.hpp
+++ b/deps/LIEF/include/LIEF/DEX/Prototype.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,16 +31,16 @@ class LIEF_API Prototype : public Object {
public:
using parameters_type_t = std::vector<Type*>;
- using it_params = ref_iterator<parameters_type_t>;
- using it_const_params = const_ref_iterator<const parameters_type_t>;
+ using it_params = ref_iterator<parameters_type_t>;
+ using it_const_params = const_ref_iterator<const parameters_type_t>;
public:
Prototype();
Prototype(const Prototype& other);
/// Type returned or a nullptr if not resolved
- const Type* return_type() const;
- Type* return_type();
+ const Type* return_type() const LIEF_LIFETIMEBOUND;
+ Type* return_type() LIEF_LIFETIMEBOUND;
/// Types of the parameters
it_const_params parameters_type() const;
@@ -49,14 +49,14 @@ class LIEF_API Prototype : public Object {
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const Prototype& type);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const Prototype& type);
~Prototype() override;
private:
Type* return_type_ = nullptr;
parameters_type_t params_;
-
};
} // Namespace DEX
diff --git a/deps/LIEF/include/LIEF/DEX/Type.hpp b/deps/LIEF/include/LIEF/DEX/Type.hpp
index 0c93f4922f7..749eb4faf1f 100644
--- a/deps/LIEF/include/LIEF/DEX/Type.hpp
+++ b/deps/LIEF/include/LIEF/DEX/Type.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,28 +29,29 @@ class Parser;
class Class;
/// Class which represents a DEX type as described in the
-/// format specifications: https://source.android.com/devices/tech/dalvik/dex-format#typedescriptor
+/// format specifications:
+/// https://source.android.com/devices/tech/dalvik/dex-format#typedescriptor
class LIEF_API Type : public Object {
friend class Parser;
public:
enum class TYPES {
- UNKNOWN = 0,
+ UNKNOWN = 0,
PRIMITIVE = 1,
- CLASS = 2,
- ARRAY = 3,
+ CLASS = 2,
+ ARRAY = 3,
};
enum class PRIMITIVES {
- VOID_T = 0x01,
+ VOID_T = 0x01,
BOOLEAN = 0x02,
- BYTE = 0x03,
- SHORT = 0x04,
- CHAR = 0x05,
- INT = 0x06,
- LONG = 0x07,
- FLOAT = 0x08,
- DOUBLE = 0x09,
+ BYTE = 0x03,
+ SHORT = 0x04,
+ CHAR = 0x05,
+ INT = 0x06,
+ LONG = 0x07,
+ FLOAT = 0x08,
+ DOUBLE = 0x09,
};
using array_t = std::vector<Type>;
@@ -87,8 +88,8 @@ class LIEF_API Type : public Object {
size_t dim() const;
/// In the case of a TYPES::ARRAY, return the array's type
- const Type& underlying_array_type() const;
- Type& underlying_array_type();
+ const Type& underlying_array_type() const LIEF_LIFETIMEBOUND;
+ Type& underlying_array_type() LIEF_LIFETIMEBOUND;
void accept(Visitor& visitor) const override;
diff --git a/deps/LIEF/include/LIEF/DEX/deopt.hpp b/deps/LIEF/include/LIEF/DEX/deopt.hpp
index 4164a8ffecc..4a23843fe89 100644
--- a/deps/LIEF/include/LIEF/DEX/deopt.hpp
+++ b/deps/LIEF/include/LIEF/DEX/deopt.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,8 +25,8 @@ class Method;
// Method Index: {dex_pc: index, ...}
using dex2dex_method_info_t = std::unordered_map<uint32_t, uint32_t>;
-using dex2dex_class_info_t = std::unordered_map<Method*, dex2dex_method_info_t>;
-using dex2dex_info_t = std::unordered_map<Class*, dex2dex_class_info_t>;
+using dex2dex_class_info_t = std::unordered_map<Method*, dex2dex_method_info_t>;
+using dex2dex_info_t = std::unordered_map<Class*, dex2dex_class_info_t>;
}
}
diff --git a/deps/LIEF/include/LIEF/DEX/enums.hpp b/deps/LIEF/include/LIEF/DEX/enums.hpp
index 4e808d8f9b7..1bfe7d968e9 100644
--- a/deps/LIEF/include/LIEF/DEX/enums.hpp
+++ b/deps/LIEF/include/LIEF/DEX/enums.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,61 +20,51 @@ namespace LIEF {
namespace DEX {
enum ACCESS_FLAGS {
- ACC_UNKNOWN = 0x0,
- ACC_PUBLIC = 0x1,
- ACC_PRIVATE = 0x2,
- ACC_PROTECTED = 0x4,
- ACC_STATIC = 0x8,
- ACC_FINAL = 0x10,
- ACC_SYNCHRONIZED = 0x20,
- ACC_VOLATILE = 0x40,
- ACC_BRIDGE = 0x40,
- ACC_TRANSIENT = 0x80,
- ACC_VARARGS = 0x80,
- ACC_NATIVE = 0x100,
- ACC_INTERFACE = 0x200,
- ACC_ABSTRACT = 0x400,
- ACC_STRICT = 0x800,
- ACC_SYNTHETIC = 0x1000,
- ACC_ANNOTATION = 0x2000,
- ACC_ENUM = 0x4000,
- ACC_CONSTRUCTOR = 0x10000,
- ACC_DECLARED_SYNCHRONIZED = 0x20000
+ ACC_UNKNOWN = 0x0,
+ ACC_PUBLIC = 0x1,
+ ACC_PRIVATE = 0x2,
+ ACC_PROTECTED = 0x4,
+ ACC_STATIC = 0x8,
+ ACC_FINAL = 0x10,
+ ACC_SYNCHRONIZED = 0x20,
+ ACC_VOLATILE = 0x40,
+ ACC_BRIDGE = 0x40,
+ ACC_TRANSIENT = 0x80,
+ ACC_VARARGS = 0x80,
+ ACC_NATIVE = 0x100,
+ ACC_INTERFACE = 0x200,
+ ACC_ABSTRACT = 0x400,
+ ACC_STRICT = 0x800,
+ ACC_SYNTHETIC = 0x1000,
+ ACC_ANNOTATION = 0x2000,
+ ACC_ENUM = 0x4000,
+ ACC_CONSTRUCTOR = 0x10000,
+ ACC_DECLARED_SYNCHRONIZED = 0x20000,
};
enum METHOD_TYPES {
- METHOD_UNKNOWN = 0x00,
- METHOD_VIRTUAL = 0x01,
- METHOD_DIRECT = 0x02, // Deprecated
+ METHOD_UNKNOWN = 0x00,
+ METHOD_VIRTUAL = 0x01,
+ METHOD_DIRECT = 0x02, // Deprecated
- METHOD_EXTERN = 0x03,
- METHOD_CTOR = 0x04,
- METHOD_STATIC = 0x05,
- METHOD_STATIC_CTOR = 0x06,
+ METHOD_EXTERN = 0x03,
+ METHOD_CTOR = 0x04,
+ METHOD_STATIC = 0x05,
+ METHOD_STATIC_CTOR = 0x06,
};
static const ACCESS_FLAGS access_flags_list[] = {
- ACCESS_FLAGS::ACC_UNKNOWN,
- ACCESS_FLAGS::ACC_PUBLIC,
- ACCESS_FLAGS::ACC_PRIVATE,
- ACCESS_FLAGS::ACC_PROTECTED,
- ACCESS_FLAGS::ACC_STATIC,
- ACCESS_FLAGS::ACC_FINAL,
- ACCESS_FLAGS::ACC_SYNCHRONIZED,
- ACCESS_FLAGS::ACC_VOLATILE,
- ACCESS_FLAGS::ACC_BRIDGE,
- ACCESS_FLAGS::ACC_TRANSIENT,
- ACCESS_FLAGS::ACC_VARARGS,
- ACCESS_FLAGS::ACC_NATIVE,
- ACCESS_FLAGS::ACC_INTERFACE,
- ACCESS_FLAGS::ACC_ABSTRACT,
- ACCESS_FLAGS::ACC_STRICT,
- ACCESS_FLAGS::ACC_SYNTHETIC,
- ACCESS_FLAGS::ACC_ANNOTATION,
- ACCESS_FLAGS::ACC_ENUM,
- ACCESS_FLAGS::ACC_CONSTRUCTOR,
- ACCESS_FLAGS::ACC_DECLARED_SYNCHRONIZED,
+ ACCESS_FLAGS::ACC_UNKNOWN, ACCESS_FLAGS::ACC_PUBLIC,
+ ACCESS_FLAGS::ACC_PRIVATE, ACCESS_FLAGS::ACC_PROTECTED,
+ ACCESS_FLAGS::ACC_STATIC, ACCESS_FLAGS::ACC_FINAL,
+ ACCESS_FLAGS::ACC_SYNCHRONIZED, ACCESS_FLAGS::ACC_VOLATILE,
+ ACCESS_FLAGS::ACC_BRIDGE, ACCESS_FLAGS::ACC_TRANSIENT,
+ ACCESS_FLAGS::ACC_VARARGS, ACCESS_FLAGS::ACC_NATIVE,
+ ACCESS_FLAGS::ACC_INTERFACE, ACCESS_FLAGS::ACC_ABSTRACT,
+ ACCESS_FLAGS::ACC_STRICT, ACCESS_FLAGS::ACC_SYNTHETIC,
+ ACCESS_FLAGS::ACC_ANNOTATION, ACCESS_FLAGS::ACC_ENUM,
+ ACCESS_FLAGS::ACC_CONSTRUCTOR, ACCESS_FLAGS::ACC_DECLARED_SYNCHRONIZED,
};
}
diff --git a/deps/LIEF/include/LIEF/DEX/hash.hpp b/deps/LIEF/include/LIEF/DEX/hash.hpp
index 42184a42af9..c4c058f1b8e 100644
--- a/deps/LIEF/include/LIEF/DEX/hash.hpp
+++ b/deps/LIEF/include/LIEF/DEX/hash.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -46,16 +46,16 @@ class LIEF_API Hash : public LIEF::Hash {
using LIEF::Hash::visit;
public:
- void visit(const File& file) override;
- void visit(const Header& header) override;
- void visit(const Class& cls) override;
- void visit(const Field& field) override;
- void visit(const Method& method) override;
+ void visit(const File& file) override;
+ void visit(const Header& header) override;
+ void visit(const Class& cls) override;
+ void visit(const Field& field) override;
+ void visit(const Method& method) override;
void visit(const CodeInfo& code_info) override;
- void visit(const Type& type) override;
- void visit(const Prototype& type) override;
- void visit(const MapItem& item) override;
- void visit(const MapList& list) override;
+ void visit(const Type& type) override;
+ void visit(const Prototype& type) override;
+ void visit(const MapItem& item) override;
+ void visit(const MapList& list) override;
~Hash() override;
};
diff --git a/deps/LIEF/include/LIEF/DEX/instructions.hpp b/deps/LIEF/include/LIEF/DEX/instructions.hpp
index 4c076d4575f..c344b9bfd63 100644
--- a/deps/LIEF/include/LIEF/DEX/instructions.hpp
+++ b/deps/LIEF/include/LIEF/DEX/instructions.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
#include "LIEF/visibility.h"
#include "LIEF/types.hpp"
#include <cstddef>
+#include <cstdint>
namespace LIEF {
namespace DEX {
@@ -25,258 +26,258 @@ namespace DEX {
enum SWITCH_ARRAY_IDENT : uint16_t {
IDENT_PACKED_SWITCH = 0x0100,
IDENT_SPARSE_SWITCH = 0x0200,
- IDENT_FILL_ARRAY = 0x0300,
+ IDENT_FILL_ARRAY = 0x0300,
};
/// The Dalvik Opcodes
enum OPCODES : uint8_t {
- OP_NOP = 0x00,
- OP_MOVE = 0x01,
- OP_MOVE_FROM_16 = 0x02,
- OP_MOVE_16 = 0x03,
- OP_MOVE_WIDE = 0x04,
- OP_MOVE_WIDE_FROM_16 = 0x05,
- OP_MOVE_WIDE_16 = 0x06,
- OP_MOVE_OBJECT = 0x07,
- OP_MOVE_OBJECT_FROM_16 = 0x08,
- OP_MOVE_OBJECT_16 = 0x09,
- OP_MOVE_RESULT = 0x0a,
- OP_MOVE_RESULT_WIDE = 0x0b,
- OP_MOVE_RESULT_OBJECT = 0x0c,
- OP_MOVE_EXCEPTION = 0x0d,
- OP_RETURN_VOID = 0x0e,
- OP_RETURN = 0x0f,
- OP_RETURN_WIDE = 0x10,
- OP_RETURN_OBJECT = 0x11,
- OP_CONST_4 = 0x12,
- OP_CONST_16 = 0x13,
- OP_CONST = 0x14,
- OP_CONST_HIGH_16 = 0x15,
- OP_CONST_WIDE_16 = 0x16,
- OP_CONST_WIDE_32 = 0x17,
- OP_CONST_WIDE = 0x18,
- OP_CONST_WIDE_HIGH_16 = 0x19,
- OP_CONST_STRING = 0x1a,
- OP_CONST_STRING_JUMBO = 0x1b,
- OP_CONST_CLASS = 0x1c,
- OP_MONITOR_ENTER = 0x1d,
- OP_MONITOR_EXIT = 0x1e,
- OP_CHECK_CAST = 0x1f,
- OP_INSTANCE_OF = 0x20,
- OP_ARRAY_LENGTH = 0x21,
- OP_NEW_INSTANCE = 0x22,
- OP_NEW_ARRAY = 0x23,
- OP_FILLED_NEW_ARRAY = 0x24,
+ OP_NOP = 0x00,
+ OP_MOVE = 0x01,
+ OP_MOVE_FROM_16 = 0x02,
+ OP_MOVE_16 = 0x03,
+ OP_MOVE_WIDE = 0x04,
+ OP_MOVE_WIDE_FROM_16 = 0x05,
+ OP_MOVE_WIDE_16 = 0x06,
+ OP_MOVE_OBJECT = 0x07,
+ OP_MOVE_OBJECT_FROM_16 = 0x08,
+ OP_MOVE_OBJECT_16 = 0x09,
+ OP_MOVE_RESULT = 0x0a,
+ OP_MOVE_RESULT_WIDE = 0x0b,
+ OP_MOVE_RESULT_OBJECT = 0x0c,
+ OP_MOVE_EXCEPTION = 0x0d,
+ OP_RETURN_VOID = 0x0e,
+ OP_RETURN = 0x0f,
+ OP_RETURN_WIDE = 0x10,
+ OP_RETURN_OBJECT = 0x11,
+ OP_CONST_4 = 0x12,
+ OP_CONST_16 = 0x13,
+ OP_CONST = 0x14,
+ OP_CONST_HIGH_16 = 0x15,
+ OP_CONST_WIDE_16 = 0x16,
+ OP_CONST_WIDE_32 = 0x17,
+ OP_CONST_WIDE = 0x18,
+ OP_CONST_WIDE_HIGH_16 = 0x19,
+ OP_CONST_STRING = 0x1a,
+ OP_CONST_STRING_JUMBO = 0x1b,
+ OP_CONST_CLASS = 0x1c,
+ OP_MONITOR_ENTER = 0x1d,
+ OP_MONITOR_EXIT = 0x1e,
+ OP_CHECK_CAST = 0x1f,
+ OP_INSTANCE_OF = 0x20,
+ OP_ARRAY_LENGTH = 0x21,
+ OP_NEW_INSTANCE = 0x22,
+ OP_NEW_ARRAY = 0x23,
+ OP_FILLED_NEW_ARRAY = 0x24,
OP_FILLED_NEW_ARRAY_RANGE = 0x25,
- OP_FILL_ARRAY_DATA = 0x26,
- OP_THROW = 0x27,
- OP_GOTO = 0x28,
- OP_GOTO_16 = 0x29,
- OP_GOTO_32 = 0x2a,
- OP_PACKED_SWITCH = 0x2b,
- OP_SPARSE_SWITCH = 0x2c,
- OP_CMPL_FLOAT = 0x2d,
- OP_CMPG_FLOAT = 0x2e,
- OP_CMPL_DOUBLE = 0x2f,
- OP_CMPG_DOUBLE = 0x30,
- OP_CMP_LONG = 0x31,
- OP_IF_EQ = 0x32,
- OP_IF_NE = 0x33,
- OP_IF_LT = 0x34,
- OP_IF_GE = 0x35,
- OP_IF_GT = 0x36,
- OP_IF_LE = 0x37,
- OP_IF_EQZ = 0x38,
- OP_IF_NEZ = 0x39,
- OP_IF_LTZ = 0x3a,
- OP_IF_GEZ = 0x3b,
- OP_IF_GTZ = 0x3c,
- OP_IF_LEZ = 0x3d,
- OP_AGET = 0x44,
- OP_AGET_WIDE = 0x45,
- OP_AGET_OBJECT = 0x46,
- OP_AGET_BOOLEAN = 0x47,
- OP_AGET_BYTE = 0x48,
- OP_AGET_CHAR = 0x49,
- OP_AGET_SHORT = 0x4a,
- OP_APUT = 0x4b,
- OP_APUT_WIDE = 0x4c,
- OP_APUT_OBJECT = 0x4d,
- OP_APUT_BOOLEAN = 0x4e,
- OP_APUT_BYTE = 0x4f,
- OP_APUT_CHAR = 0x50,
- OP_APUT_SHORT = 0x51,
- OP_IGET = 0x52,
- OP_IGET_WIDE = 0x53,
- OP_IGET_OBJECT = 0x54,
- OP_IGET_BOOLEAN = 0x55,
- OP_IGET_BYTE = 0x56,
- OP_IGET_CHAR = 0x57,
- OP_IGET_SHORT = 0x58,
- OP_IPUT = 0x59,
- OP_IPUT_WIDE = 0x5a,
- OP_IPUT_OBJECT = 0x5b,
- OP_IPUT_BOOLEAN = 0x5c,
- OP_IPUT_BYTE = 0x5d,
- OP_IPUT_CHAR = 0x5e,
- OP_IPUT_SHORT = 0x5f,
- OP_SGET = 0x60,
- OP_SGET_WIDE = 0x61,
- OP_SGET_OBJECT = 0x62,
- OP_SGET_BOOLEAN = 0x63,
- OP_SGET_BYTE = 0x64,
- OP_SGET_CHAR = 0x65,
- OP_SGET_SHORT = 0x66,
- OP_SPUT = 0x67,
- OP_SPUT_WIDE = 0x68,
- OP_SPUT_OBJECT = 0x69,
- OP_SPUT_BOOLEAN = 0x6a,
- OP_SPUT_BYTE = 0x6b,
- OP_SPUT_CHAR = 0x6c,
- OP_SPUT_SHORT = 0x6d,
- OP_INVOKE_VIRTUAL = 0x6e,
- OP_INVOKE_SUPER = 0x6f,
- OP_INVOKE_DIRECT = 0x70,
- OP_INVOKE_STATIC = 0x71,
- OP_INVOKE_INTERFACE = 0x72,
+ OP_FILL_ARRAY_DATA = 0x26,
+ OP_THROW = 0x27,
+ OP_GOTO = 0x28,
+ OP_GOTO_16 = 0x29,
+ OP_GOTO_32 = 0x2a,
+ OP_PACKED_SWITCH = 0x2b,
+ OP_SPARSE_SWITCH = 0x2c,
+ OP_CMPL_FLOAT = 0x2d,
+ OP_CMPG_FLOAT = 0x2e,
+ OP_CMPL_DOUBLE = 0x2f,
+ OP_CMPG_DOUBLE = 0x30,
+ OP_CMP_LONG = 0x31,
+ OP_IF_EQ = 0x32,
+ OP_IF_NE = 0x33,
+ OP_IF_LT = 0x34,
+ OP_IF_GE = 0x35,
+ OP_IF_GT = 0x36,
+ OP_IF_LE = 0x37,
+ OP_IF_EQZ = 0x38,
+ OP_IF_NEZ = 0x39,
+ OP_IF_LTZ = 0x3a,
+ OP_IF_GEZ = 0x3b,
+ OP_IF_GTZ = 0x3c,
+ OP_IF_LEZ = 0x3d,
+ OP_AGET = 0x44,
+ OP_AGET_WIDE = 0x45,
+ OP_AGET_OBJECT = 0x46,
+ OP_AGET_BOOLEAN = 0x47,
+ OP_AGET_BYTE = 0x48,
+ OP_AGET_CHAR = 0x49,
+ OP_AGET_SHORT = 0x4a,
+ OP_APUT = 0x4b,
+ OP_APUT_WIDE = 0x4c,
+ OP_APUT_OBJECT = 0x4d,
+ OP_APUT_BOOLEAN = 0x4e,
+ OP_APUT_BYTE = 0x4f,
+ OP_APUT_CHAR = 0x50,
+ OP_APUT_SHORT = 0x51,
+ OP_IGET = 0x52,
+ OP_IGET_WIDE = 0x53,
+ OP_IGET_OBJECT = 0x54,
+ OP_IGET_BOOLEAN = 0x55,
+ OP_IGET_BYTE = 0x56,
+ OP_IGET_CHAR = 0x57,
+ OP_IGET_SHORT = 0x58,
+ OP_IPUT = 0x59,
+ OP_IPUT_WIDE = 0x5a,
+ OP_IPUT_OBJECT = 0x5b,
+ OP_IPUT_BOOLEAN = 0x5c,
+ OP_IPUT_BYTE = 0x5d,
+ OP_IPUT_CHAR = 0x5e,
+ OP_IPUT_SHORT = 0x5f,
+ OP_SGET = 0x60,
+ OP_SGET_WIDE = 0x61,
+ OP_SGET_OBJECT = 0x62,
+ OP_SGET_BOOLEAN = 0x63,
+ OP_SGET_BYTE = 0x64,
+ OP_SGET_CHAR = 0x65,
+ OP_SGET_SHORT = 0x66,
+ OP_SPUT = 0x67,
+ OP_SPUT_WIDE = 0x68,
+ OP_SPUT_OBJECT = 0x69,
+ OP_SPUT_BOOLEAN = 0x6a,
+ OP_SPUT_BYTE = 0x6b,
+ OP_SPUT_CHAR = 0x6c,
+ OP_SPUT_SHORT = 0x6d,
+ OP_INVOKE_VIRTUAL = 0x6e,
+ OP_INVOKE_SUPER = 0x6f,
+ OP_INVOKE_DIRECT = 0x70,
+ OP_INVOKE_STATIC = 0x71,
+ OP_INVOKE_INTERFACE = 0x72,
OP_RETURN_VOID_NO_BARRIER = 0x73,
- OP_INVOKE_VIRTUAL_RANGE = 0x74,
- OP_INVOKE_SUPER_RANGE = 0x75,
- OP_INVOKE_DIRECT_RANGE = 0x76,
- OP_INVOKE_STATIC_RANGE = 0x77,
+ OP_INVOKE_VIRTUAL_RANGE = 0x74,
+ OP_INVOKE_SUPER_RANGE = 0x75,
+ OP_INVOKE_DIRECT_RANGE = 0x76,
+ OP_INVOKE_STATIC_RANGE = 0x77,
OP_INVOKE_INTERFACE_RANGE = 0x78,
- OP_NEG_INT = 0x7b,
- OP_NOT_INT = 0x7c,
- OP_NEG_LONG = 0x7d,
- OP_NOT_LONG = 0x7e,
- OP_NEG_FLOAT = 0x7f,
- OP_NEG_DOUBLE = 0x80,
- OP_INT_TO_LONG = 0x81,
- OP_INT_TO_FLOAT = 0x82,
- OP_INT_TO_DOUBLE = 0x83,
- OP_LONG_TO_INT = 0x84,
- OP_LONG_TO_FLOAT = 0x85,
- OP_LONG_TO_DOUBLE = 0x86,
- OP_FLOAT_TO_INT = 0x87,
- OP_FLOAT_TO_LONG = 0x88,
- OP_FLOAT_TO_DOUBLE = 0x89,
- OP_DOUBLE_TO_INT = 0x8a,
- OP_DOUBLE_TO_LONG = 0x8b,
- OP_DOUBLE_TO_FLOAT = 0x8c,
- OP_INT_TO_BYTE = 0x8d,
- OP_INT_TO_CHAR = 0x8e,
- OP_INT_TO_SHORT = 0x8f,
- OP_ADD_INT = 0x90,
- OP_SUB_INT = 0x91,
- OP_MUL_INT = 0x92,
- OP_DIV_INT = 0x93,
- OP_REM_INT = 0x94,
- OP_AND_INT = 0x95,
- OP_OR_INT = 0x96,
- OP_XOR_INT = 0x97,
- OP_SHL_INT = 0x98,
- OP_SHR_INT = 0x99,
- OP_USHR_INT = 0x9a,
- OP_ADD_LONG = 0x9b,
- OP_SUB_LONG = 0x9c,
- OP_MUL_LONG = 0x9d,
- OP_DIV_LONG = 0x9e,
- OP_REM_LONG = 0x9f,
- OP_AND_LONG = 0xa0,
- OP_OR_LONG = 0xa1,
- OP_XOR_LONG = 0xa2,
- OP_SHL_LONG = 0xa3,
- OP_SHR_LONG = 0xa4,
- OP_USHR_LONG = 0xa5,
- OP_ADD_FLOAT = 0xa6,
- OP_SUB_FLOAT = 0xa7,
- OP_MUL_FLOAT = 0xa8,
- OP_DIV_FLOAT = 0xa9,
- OP_REM_FLOAT = 0xaa,
- OP_ADD_DOUBLE = 0xab,
- OP_SUB_DOUBLE = 0xac,
- OP_MUL_DOUBLE = 0xad,
- OP_DIV_DOUBLE = 0xae,
- OP_REM_DOUBLE = 0xaf,
- OP_ADD_INT_2_ADDR = 0xb0,
- OP_SUB_INT_2_ADDR = 0xb1,
- OP_MUL_INT_2_ADDR = 0xb2,
- OP_DIV_INT_2_ADDR = 0xb3,
- OP_REM_INT_2_ADDR = 0xb4,
- OP_AND_INT_2_ADDR = 0xb5,
- OP_OR_INT_2_ADDR = 0xb6,
- OP_XOR_INT_2_ADDR = 0xb7,
- OP_SHL_INT_2_ADDR = 0xb8,
- OP_SHR_INT_2_ADDR = 0xb9,
- OP_USHR_INT_2_ADDR = 0xba,
- OP_ADD_LONG_2_ADDR = 0xbb,
- OP_SUB_LONG_2_ADDR = 0xbc,
- OP_MUL_LONG_2_ADDR = 0xbd,
- OP_DIV_LONG_2_ADDR = 0xbe,
- OP_REM_LONG_2_ADDR = 0xbf,
- OP_AND_LONG_2_ADDR = 0xc0,
- OP_OR_LONG_2_ADDR = 0xc1,
- OP_XOR_LONG_2_ADDR = 0xc2,
- OP_SHL_LONG_2_ADDR = 0xc3,
- OP_SHR_LONG_2_ADDR = 0xc4,
- OP_USHR_LONG_2_ADDR = 0xc5,
- OP_ADD_FLOAT_2_ADDR = 0xc6,
- OP_SUB_FLOAT_2_ADDR = 0xc7,
- OP_MUL_FLOAT_2_ADDR = 0xc8,
- OP_DIV_FLOAT_2_ADDR = 0xc9,
- OP_REM_FLOAT_2_ADDR = 0xca,
- OP_ADD_DOUBLE_2_ADDR = 0xcb,
- OP_SUB_DOUBLE_2_ADDR = 0xcc,
- OP_MUL_DOUBLE_2_ADDR = 0xcd,
- OP_DIV_DOUBLE_2_ADDR = 0xce,
- OP_REM_DOUBLE_2_ADDR = 0xcf,
- OP_ADD_INT_LIT_16 = 0xd0,
- OP_RSUB_INT = 0xd1,
- OP_MUL_INT_LIT_16 = 0xd2,
- OP_DIV_INT_LIT_16 = 0xd3,
- OP_REM_INT_LIT_16 = 0xd4,
- OP_AND_INT_LIT_16 = 0xd5,
- OP_OR_INT_LIT_16 = 0xd6,
- OP_XOR_INT_LIT_16 = 0xd7,
- OP_ADD_INT_LIT_8 = 0xd8,
- OP_RSUB_INT_LIT_8 = 0xd9,
- OP_MUL_INT_LIT_8 = 0xda,
- OP_DIV_INT_LIT_8 = 0xdb,
- OP_REM_INT_LIT_8 = 0xdc,
- OP_AND_INT_LIT_8 = 0xdd,
- OP_OR_INT_LIT_8 = 0xde,
- OP_XOR_INT_LIT_8 = 0xdf,
- OP_SHL_INT_LIT_8 = 0xe0,
- OP_SHR_INT_LIT_8 = 0xe1,
- OP_USHR_INT_LIT_8 = 0xe2,
+ OP_NEG_INT = 0x7b,
+ OP_NOT_INT = 0x7c,
+ OP_NEG_LONG = 0x7d,
+ OP_NOT_LONG = 0x7e,
+ OP_NEG_FLOAT = 0x7f,
+ OP_NEG_DOUBLE = 0x80,
+ OP_INT_TO_LONG = 0x81,
+ OP_INT_TO_FLOAT = 0x82,
+ OP_INT_TO_DOUBLE = 0x83,
+ OP_LONG_TO_INT = 0x84,
+ OP_LONG_TO_FLOAT = 0x85,
+ OP_LONG_TO_DOUBLE = 0x86,
+ OP_FLOAT_TO_INT = 0x87,
+ OP_FLOAT_TO_LONG = 0x88,
+ OP_FLOAT_TO_DOUBLE = 0x89,
+ OP_DOUBLE_TO_INT = 0x8a,
+ OP_DOUBLE_TO_LONG = 0x8b,
+ OP_DOUBLE_TO_FLOAT = 0x8c,
+ OP_INT_TO_BYTE = 0x8d,
+ OP_INT_TO_CHAR = 0x8e,
+ OP_INT_TO_SHORT = 0x8f,
+ OP_ADD_INT = 0x90,
+ OP_SUB_INT = 0x91,
+ OP_MUL_INT = 0x92,
+ OP_DIV_INT = 0x93,
+ OP_REM_INT = 0x94,
+ OP_AND_INT = 0x95,
+ OP_OR_INT = 0x96,
+ OP_XOR_INT = 0x97,
+ OP_SHL_INT = 0x98,
+ OP_SHR_INT = 0x99,
+ OP_USHR_INT = 0x9a,
+ OP_ADD_LONG = 0x9b,
+ OP_SUB_LONG = 0x9c,
+ OP_MUL_LONG = 0x9d,
+ OP_DIV_LONG = 0x9e,
+ OP_REM_LONG = 0x9f,
+ OP_AND_LONG = 0xa0,
+ OP_OR_LONG = 0xa1,
+ OP_XOR_LONG = 0xa2,
+ OP_SHL_LONG = 0xa3,
+ OP_SHR_LONG = 0xa4,
+ OP_USHR_LONG = 0xa5,
+ OP_ADD_FLOAT = 0xa6,
+ OP_SUB_FLOAT = 0xa7,
+ OP_MUL_FLOAT = 0xa8,
+ OP_DIV_FLOAT = 0xa9,
+ OP_REM_FLOAT = 0xaa,
+ OP_ADD_DOUBLE = 0xab,
+ OP_SUB_DOUBLE = 0xac,
+ OP_MUL_DOUBLE = 0xad,
+ OP_DIV_DOUBLE = 0xae,
+ OP_REM_DOUBLE = 0xaf,
+ OP_ADD_INT_2_ADDR = 0xb0,
+ OP_SUB_INT_2_ADDR = 0xb1,
+ OP_MUL_INT_2_ADDR = 0xb2,
+ OP_DIV_INT_2_ADDR = 0xb3,
+ OP_REM_INT_2_ADDR = 0xb4,
+ OP_AND_INT_2_ADDR = 0xb5,
+ OP_OR_INT_2_ADDR = 0xb6,
+ OP_XOR_INT_2_ADDR = 0xb7,
+ OP_SHL_INT_2_ADDR = 0xb8,
+ OP_SHR_INT_2_ADDR = 0xb9,
+ OP_USHR_INT_2_ADDR = 0xba,
+ OP_ADD_LONG_2_ADDR = 0xbb,
+ OP_SUB_LONG_2_ADDR = 0xbc,
+ OP_MUL_LONG_2_ADDR = 0xbd,
+ OP_DIV_LONG_2_ADDR = 0xbe,
+ OP_REM_LONG_2_ADDR = 0xbf,
+ OP_AND_LONG_2_ADDR = 0xc0,
+ OP_OR_LONG_2_ADDR = 0xc1,
+ OP_XOR_LONG_2_ADDR = 0xc2,
+ OP_SHL_LONG_2_ADDR = 0xc3,
+ OP_SHR_LONG_2_ADDR = 0xc4,
+ OP_USHR_LONG_2_ADDR = 0xc5,
+ OP_ADD_FLOAT_2_ADDR = 0xc6,
+ OP_SUB_FLOAT_2_ADDR = 0xc7,
+ OP_MUL_FLOAT_2_ADDR = 0xc8,
+ OP_DIV_FLOAT_2_ADDR = 0xc9,
+ OP_REM_FLOAT_2_ADDR = 0xca,
+ OP_ADD_DOUBLE_2_ADDR = 0xcb,
+ OP_SUB_DOUBLE_2_ADDR = 0xcc,
+ OP_MUL_DOUBLE_2_ADDR = 0xcd,
+ OP_DIV_DOUBLE_2_ADDR = 0xce,
+ OP_REM_DOUBLE_2_ADDR = 0xcf,
+ OP_ADD_INT_LIT_16 = 0xd0,
+ OP_RSUB_INT = 0xd1,
+ OP_MUL_INT_LIT_16 = 0xd2,
+ OP_DIV_INT_LIT_16 = 0xd3,
+ OP_REM_INT_LIT_16 = 0xd4,
+ OP_AND_INT_LIT_16 = 0xd5,
+ OP_OR_INT_LIT_16 = 0xd6,
+ OP_XOR_INT_LIT_16 = 0xd7,
+ OP_ADD_INT_LIT_8 = 0xd8,
+ OP_RSUB_INT_LIT_8 = 0xd9,
+ OP_MUL_INT_LIT_8 = 0xda,
+ OP_DIV_INT_LIT_8 = 0xdb,
+ OP_REM_INT_LIT_8 = 0xdc,
+ OP_AND_INT_LIT_8 = 0xdd,
+ OP_OR_INT_LIT_8 = 0xde,
+ OP_XOR_INT_LIT_8 = 0xdf,
+ OP_SHL_INT_LIT_8 = 0xe0,
+ OP_SHR_INT_LIT_8 = 0xe1,
+ OP_USHR_INT_LIT_8 = 0xe2,
// ODEX
- OP_IGET_QUICK = 0xe3,
- OP_IGET_WIDE_QUICK = 0xe4,
- OP_IGET_OBJECT_QUICK = 0xe5,
- OP_IPUT_QUICK = 0xe6,
- OP_IPUT_WIDE_QUICK = 0xe7,
- OP_IPUT_OBJECT_QUICK = 0xe8,
- OP_INVOKE_VIRTUAL_QUICK = 0xe9,
- OP_INVOKE_VIRTUAL_RANGE_QUICK = 0xea,
- OP_IPUT_BOOLEAN_QUICK = 0xeb,
- OP_IPUT_BYTE_QUICK = 0xec,
- OP_IPUT_CHAR_QUICK = 0xed,
- OP_IPUT_SHORT_QUICK = 0xee,
- OP_IGET_BOOLEAN_QUICK = 0xef,
- OP_IGET_BYTE_QUICK = 0xf0,
- OP_IGET_CHAR_QUICK = 0xf1,
- OP_IGET_SHORT_QUICK = 0xf2,
+ OP_IGET_QUICK = 0xe3,
+ OP_IGET_WIDE_QUICK = 0xe4,
+ OP_IGET_OBJECT_QUICK = 0xe5,
+ OP_IPUT_QUICK = 0xe6,
+ OP_IPUT_WIDE_QUICK = 0xe7,
+ OP_IPUT_OBJECT_QUICK = 0xe8,
+ OP_INVOKE_VIRTUAL_QUICK = 0xe9,
+ OP_INVOKE_VIRTUAL_RANGE_QUICK = 0xea,
+ OP_IPUT_BOOLEAN_QUICK = 0xeb,
+ OP_IPUT_BYTE_QUICK = 0xec,
+ OP_IPUT_CHAR_QUICK = 0xed,
+ OP_IPUT_SHORT_QUICK = 0xee,
+ OP_IGET_BOOLEAN_QUICK = 0xef,
+ OP_IGET_BYTE_QUICK = 0xf0,
+ OP_IGET_CHAR_QUICK = 0xf1,
+ OP_IGET_SHORT_QUICK = 0xf2,
// From DEX 38
- OP_INVOKE_POLYMORPHIC = 0xfa,
+ OP_INVOKE_POLYMORPHIC = 0xfa,
OP_INVOKE_POLYMORPHIC_RANGE = 0xfb,
- OP_INVOKE_CUSTOM = 0xfc,
- OP_INVOKE_CUSTOM_RANGE = 0xfd,
+ OP_INVOKE_CUSTOM = 0xfc,
+ OP_INVOKE_CUSTOM_RANGE = 0xfd,
// From DEX 39
- OP_CONST_METHOD_HANDLE = 0xfe,
- OP_CONST_METHOD_TYPE = 0xff,
+ OP_CONST_METHOD_HANDLE = 0xfe,
+ OP_CONST_METHOD_TYPE = 0xff,
};
enum INST_FORMATS : uint8_t {
@@ -335,7 +336,7 @@ struct fill_array_data {
uint16_t ident;
uint16_t element_width;
uint32_t size;
- //uint8_t data[size];
+ // uint8_t data[size];
};
@@ -349,8 +350,11 @@ LIEF_API bool is_switch_array(const uint8_t* ptr, const uint8_t* end);
LIEF_API size_t switch_array_size(const uint8_t* ptr, const uint8_t* end);
+inline bool valid_inst_size(const uint8_t* ptr, const uint8_t* end, size_t size) {
+ return size != 0 && size != SIZE_MAX && (size_t)(end - ptr) >= size;
+}
+
} // Namespace LIEF
} // Namespace DEX
#endif
-
diff --git a/deps/LIEF/include/LIEF/DEX/json.hpp b/deps/LIEF/include/LIEF/DEX/json.hpp
index 74b79fe48e4..30ebec061f9 100644
--- a/deps/LIEF/include/LIEF/DEX/json.hpp
+++ b/deps/LIEF/include/LIEF/DEX/json.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/DEX/types.hpp b/deps/LIEF/include/LIEF/DEX/types.hpp
index e38b44ea5ae..b66a071e018 100644
--- a/deps/LIEF/include/LIEF/DEX/types.hpp
+++ b/deps/LIEF/include/LIEF/DEX/types.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/DEX/utils.hpp b/deps/LIEF/include/LIEF/DEX/utils.hpp
index ceecc6b0a0a..14166cd7f6d 100644
--- a/deps/LIEF/include/LIEF/DEX/utils.hpp
+++ b/deps/LIEF/include/LIEF/DEX/utils.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/DWARF.hpp b/deps/LIEF/include/LIEF/DWARF.hpp
index 39c516b5e6c..086daaf2a87 100644
--- a/deps/LIEF/include/LIEF/DWARF.hpp
+++ b/deps/LIEF/include/LIEF/DWARF.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,6 +26,7 @@
#include "LIEF/DWARF/types.hpp"
#include "LIEF/DWARF/Parameter.hpp"
#include "LIEF/DWARF/Editor.hpp"
+#include "LIEF/DWARF/LexicalBlock.hpp"
#include "LIEF/DWARF/editor/CompilationUnit.hpp"
#include "LIEF/DWARF/editor/Function.hpp"
diff --git a/deps/LIEF/include/LIEF/DWARF/CompilationUnit.hpp b/deps/LIEF/include/LIEF/DWARF/CompilationUnit.hpp
index c9491b530d4..98233ab516b 100644
--- a/deps/LIEF/include/LIEF/DWARF/CompilationUnit.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/CompilationUnit.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,9 +18,11 @@
#include <string>
#include <vector>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/range.hpp"
#include "LIEF/iterators.hpp"
+#include "LIEF/DebugDeclOpt.hpp"
#include "LIEF/DWARF/Function.hpp"
#include "LIEF/DWARF/Type.hpp"
@@ -35,61 +37,52 @@ class CompilationUnitIt;
/// This class represents a DWARF compilation unit
class LIEF_API CompilationUnit {
public:
- class LIEF_API Iterator {
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag,
+ CompilationUnit, std::ptrdiff_t,
+ const CompilationUnit*, const CompilationUnit&> {
public:
- using iterator_category = std::bidirectional_iterator_tag;
- using value_type = std::unique_ptr<CompilationUnit>;
- using difference_type = std::ptrdiff_t;
- using pointer = CompilationUnit*;
- using reference = std::unique_ptr<CompilationUnit>&;
using implementation = details::CompilationUnitIt;
+ using iterator_facade_base::operator++;
+ using iterator_facade_base::operator--;
- class LIEF_API PointerProxy {
- // Inspired from LLVM's iterator_facade_base
- friend class Iterator;
- public:
- pointer operator->() const { return R.get(); }
+ LIEF_API Iterator();
- private:
- value_type R;
+ LIEF_API Iterator(std::unique_ptr<details::CompilationUnitIt> impl);
- template <typename RefT>
- PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
- };
+ LIEF_API Iterator(const Iterator&);
+ LIEF_API Iterator& operator=(const Iterator&);
+
+ LIEF_API Iterator(Iterator&&) noexcept;
+ LIEF_API Iterator& operator=(Iterator&&) noexcept;
- Iterator(const Iterator&);
- Iterator(Iterator&&) noexcept;
- Iterator(std::unique_ptr<details::CompilationUnitIt> impl);
- ~Iterator();
+ LIEF_API ~Iterator();
friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
- friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+ friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
return !(LHS == RHS);
}
- Iterator& operator++();
- Iterator& operator--();
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator++();
- Iterator operator--(int) {
- Iterator tmp = *static_cast<Iterator*>(this);
- --*static_cast<Iterator *>(this);
- return tmp;
- }
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator--();
- Iterator operator++(int) {
- Iterator tmp = *static_cast<Iterator*>(this);
- ++*static_cast<Iterator *>(this);
- return tmp;
- }
+ LIEF_API const CompilationUnit& operator*() const LIEF_LIFETIMEBOUND;
- std::unique_ptr<CompilationUnit> operator*() const;
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const CompilationUnit* operator->() const LIEF_LIFETIMEBOUND;
- PointerProxy operator->() const {
- return static_cast<const Iterator*>(this)->operator*();
- }
+ /// Transfer ownership of the compilation unit at the current position
+ /// to the caller. Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<CompilationUnit> yield();
private:
+ void load() const;
+
std::unique_ptr<details::CompilationUnitIt> impl_;
+ mutable std::unique_ptr<CompilationUnit> cached_;
};
/// Iterator over the dwarf::Function
@@ -130,11 +123,10 @@ class LIEF_API CompilationUnit {
Language() = default;
Language(LANG lang, uint32_t version) :
- lang(lang), version(version)
- {}
+ lang(lang),
+ version(version) {}
Language(LANG lang) :
- Language(lang, 0)
- {}
+ Language(lang, 0) {}
Language(const Language&) = default;
Language& operator=(const Language&) = default;
@@ -169,7 +161,7 @@ class LIEF_API CompilationUnit {
/// This value matches the `DW_AT_comp_dir` attribute
std::string compilation_dir() const;
- /// Original Language of this compilation unit.
+ /// Original language of this compilation unit.
///
/// This value matches the `DW_AT_language` attribute.
Language language() const;
@@ -186,7 +178,7 @@ class LIEF_API CompilationUnit {
/// between the lowest address and the highest that are not owned by the CU),
/// then it returns the sum of **all** the address ranges owned by this CU.
///
- /// If the compilation unit is **not** fragmented, then is basically returns
+ /// If the compilation unit is **not** fragmented, then it basically returns
/// `high_address - low_address`.
uint64_t size() const;
@@ -199,16 +191,18 @@ class LIEF_API CompilationUnit {
/// Try to find the function whose name is given in parameter.
///
/// The provided name can be demangled
- std::unique_ptr<Function> find_function(const std::string& name) const;
+ std::unique_ptr<Function>
+ find_function(const std::string& name) const LIEF_LIFETIMEBOUND;
/// Try to find the function at the given address
- std::unique_ptr<Function> find_function(uint64_t addr) const;
+ std::unique_ptr<Function> find_function(uint64_t addr) const LIEF_LIFETIMEBOUND;
/// Try to find the Variable at the given address
- std::unique_ptr<Variable> find_variable(uint64_t addr) const;
+ std::unique_ptr<Variable> find_variable(uint64_t addr) const LIEF_LIFETIMEBOUND;
/// Try to find the Variable with the given name
- std::unique_ptr<Variable> find_variable(const std::string& name) const;
+ std::unique_ptr<Variable>
+ find_variable(const std::string& name) const LIEF_LIFETIMEBOUND;
/// Return an iterator over the functions implemented in this compilation
/// unit.
@@ -232,7 +226,7 @@ class LIEF_API CompilationUnit {
/// The iterator will only return **one function** for `main` since
/// `get_secret_env` is inlined and thus, its implementation is located in
/// `main`.
- functions_it functions() const;
+ functions_it functions() const LIEF_LIFETIMEBOUND;
/// Return an iterator over the functions **imported** in this compilation
/// unit **but not** implemented.
@@ -251,14 +245,13 @@ class LIEF_API CompilationUnit {
/// the iterator. On the other hand, `main()` is implemented in this
/// compilation unit so it is not returned by imported_function() but
/// functions().
- functions_it imported_functions() const;
+ functions_it imported_functions() const LIEF_LIFETIMEBOUND;
/// Return an iterator over the different types defined in this
/// compilation unit.
- types_it types() const;
-
+ types_it types() const LIEF_LIFETIMEBOUND;
- /// Return an iterator over all the variables defined in the this compilation
+ /// Return an iterator over all the variables defined in this compilation
/// unit:
///
/// ```cpp
@@ -270,7 +263,11 @@ class LIEF_API CompilationUnit {
/// return C;
/// }
/// ```
- vars_it variables() const;
+ vars_it variables() const LIEF_LIFETIMEBOUND;
+
+ /// Generate a C/C++ definition for the functions defined in this
+ /// compilation unit.
+ std::string to_decl(const DeclOpt& opt = DeclOpt()) const;
private:
std::unique_ptr<details::CompilationUnit> impl_;
@@ -279,4 +276,3 @@ class LIEF_API CompilationUnit {
}
}
#endif
-
diff --git a/deps/LIEF/include/LIEF/DWARF/DebugInfo.hpp b/deps/LIEF/include/LIEF/DWARF/DebugInfo.hpp
index ac76755b790..2298ba3c753 100644
--- a/deps/LIEF/include/LIEF/DWARF/DebugInfo.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/DebugInfo.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
#include <memory>
#include <string>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/iterators.hpp"
#include "LIEF/Abstract/DebugInfo.hpp"
#include "LIEF/DWARF/CompilationUnit.hpp"
@@ -53,23 +54,26 @@ class LIEF_API DebugInfo : public LIEF::DebugInfo {
/// // Found
/// }
/// ```
- std::unique_ptr<Function> find_function(const std::string& name) const;
+ std::unique_ptr<Function>
+ find_function(const std::string& name) const LIEF_LIFETIMEBOUND;
/// Try to find the function at the given **virtual** address
- std::unique_ptr<Function> find_function(uint64_t addr) const;
+ std::unique_ptr<Function> find_function(uint64_t addr) const LIEF_LIFETIMEBOUND;
/// Try to find the variable with the given name. This name can be mangled or
/// not.
- std::unique_ptr<Variable> find_variable(const std::string& name) const;
+ std::unique_ptr<Variable>
+ find_variable(const std::string& name) const LIEF_LIFETIMEBOUND;
/// Try to find the variable at the given **virtual** address
- std::unique_ptr<Variable> find_variable(uint64_t addr) const;
+ std::unique_ptr<Variable> find_variable(uint64_t addr) const LIEF_LIFETIMEBOUND;
/// Try to find the type with the given name
- std::unique_ptr<Type> find_type(const std::string& name) const;
+ std::unique_ptr<Type>
+ find_type(const std::string& name) const LIEF_LIFETIMEBOUND;
/// Iterator on the CompilationUnit embedded in this dwarf
- compilation_units_it compilation_units() const;
+ compilation_units_it compilation_units() const LIEF_LIFETIMEBOUND;
/// Attempt to resolve the address of the function specified by `name`.
optional<uint64_t> find_function_address(const std::string& name) const override;
diff --git a/deps/LIEF/include/LIEF/DWARF/Editor.hpp b/deps/LIEF/include/LIEF/DWARF/Editor.hpp
index 3c63c138338..e93881878c1 100644
--- a/deps/LIEF/include/LIEF/DWARF/Editor.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/Editor.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,7 +16,9 @@
#define LIEF_DWARF_EDITOR_H
#include <memory>
#include <string>
+#include <cstdint>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
namespace LIEF {
@@ -37,11 +39,29 @@ class LIEF_API Editor {
Editor() = delete;
Editor(std::unique_ptr<details::Editor> impl);
+ enum class FORMAT : uint32_t {
+ ELF,
+ MACHO,
+ PE,
+ };
+
+ enum class ARCH : uint32_t {
+ UNKNOWN,
+ X64,
+ X86,
+ AARCH64,
+ ARM,
+ };
+
/// Instantiate an editor for the given binary object
static std::unique_ptr<Editor> from_binary(LIEF::Binary& bin);
+ /// Instantiate an editor for the given format and arch
+ static std::unique_ptr<Editor> create(FORMAT fmt, ARCH arch);
+
/// Create a new compilation unit
- std::unique_ptr<editor::CompilationUnit> create_compilation_unit();
+ std::unique_ptr<editor::CompilationUnit>
+ create_compilation_unit() LIEF_LIFETIMEBOUND;
/// Write the DWARF file to the specified output
void write(const std::string& output);
@@ -50,7 +70,6 @@ class LIEF_API Editor {
private:
std::unique_ptr<details::Editor> impl_;
-
};
}
diff --git a/deps/LIEF/include/LIEF/DWARF/Function.hpp b/deps/LIEF/include/LIEF/DWARF/Function.hpp
index 495cbadac72..af98098f69e 100644
--- a/deps/LIEF/include/LIEF/DWARF/Function.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/Function.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,9 +21,12 @@
#include "LIEF/visibility.h"
#include "LIEF/errors.hpp"
#include "LIEF/iterators.hpp"
+#include "LIEF/compiler_attributes.hpp"
+
#include "LIEF/range.hpp"
#include "LIEF/DWARF/Variable.hpp"
#include "LIEF/DWARF/Type.hpp"
+#include "LIEF/DWARF/LexicalBlock.hpp"
#include "LIEF/asm/Instruction.hpp"
namespace LIEF {
@@ -41,62 +44,53 @@ class FunctionIt;
/// `DW_TAG_subprogram` or `DW_TAG_inlined_subroutine`.
class LIEF_API Function {
public:
- class LIEF_API Iterator {
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag,
+ Function, std::ptrdiff_t, const Function*,
+ const Function&> {
public:
- using iterator_category = std::bidirectional_iterator_tag;
- using value_type = std::unique_ptr<Function>;
- using difference_type = std::ptrdiff_t;
- using pointer = Function*;
- using reference = std::unique_ptr<Function>&;
using implementation = details::FunctionIt;
+ using iterator_facade_base::operator++;
+ using iterator_facade_base::operator--;
+
+ LIEF_API Iterator();
- class LIEF_API PointerProxy {
- // Inspired from LLVM's iterator_facade_base
- friend class Iterator;
- public:
- pointer operator->() const { return R.get(); }
+ LIEF_API Iterator(std::unique_ptr<details::FunctionIt> impl);
- private:
- value_type R;
+ LIEF_API Iterator(const Iterator&);
+ LIEF_API Iterator& operator=(const Iterator&);
- template <typename RefT>
- PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
- };
+ LIEF_API Iterator(Iterator&&) noexcept;
+ LIEF_API Iterator& operator=(Iterator&&) noexcept;
- Iterator(const Iterator&);
- Iterator(Iterator&&) noexcept;
- Iterator(std::unique_ptr<details::FunctionIt> impl);
- ~Iterator();
+ LIEF_API ~Iterator();
friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
- friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+ friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
return !(LHS == RHS);
}
- Iterator& operator++();
- Iterator& operator--();
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator++();
- Iterator operator--(int) {
- Iterator tmp = *static_cast<Iterator*>(this);
- --*static_cast<Iterator *>(this);
- return tmp;
- }
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator--();
- Iterator operator++(int) {
- Iterator tmp = *static_cast<Iterator*>(this);
- ++*static_cast<Iterator *>(this);
- return tmp;
- }
+ LIEF_API const Function& operator*() const LIEF_LIFETIMEBOUND;
- std::unique_ptr<Function> operator*() const;
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const Function* operator->() const LIEF_LIFETIMEBOUND;
- PointerProxy operator->() const {
- return static_cast<const Iterator*>(this)->operator*();
- }
+ /// Transfer ownership of the function at the current position to the
+ /// caller. Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<Function> yield();
private:
+ void load() const;
+
std::unique_ptr<details::FunctionIt> impl_;
+ mutable std::unique_ptr<Function> cached_;
};
/// Iterator over the variables defined in the scope of this function
@@ -104,6 +98,8 @@ class LIEF_API Function {
using parameters_t = std::vector<std::unique_ptr<Parameter>>;
using thrown_types_t = std::vector<std::unique_ptr<Type>>;
+ using lexical_blocks_it = iterator_range<LexicalBlock::Iterator>;
+
using instructions_it = iterator_range<assembly::Instruction::Iterator>;
Function(std::unique_ptr<details::Function> impl);
@@ -114,7 +110,7 @@ class LIEF_API Function {
/// The name of the function which is used for linking (`DW_AT_linkage_name`).
///
/// This name differs from name() as it is usually mangled. The function
- /// return an empty string if the linkage name is not available.
+ /// returns an empty string if the linkage name is not available.
std::string linkage_name() const;
/// Return the address of the function (`DW_AT_entry_pc` or `DW_AT_low_pc`).
@@ -123,7 +119,7 @@ class LIEF_API Function {
/// Return an iterator of variables (`DW_TAG_variable`) defined within the
/// scope of this function. This includes regular stack-based variables as
/// well as static ones.
- vars_it variables() const;
+ vars_it variables() const LIEF_LIFETIMEBOUND;
/// Whether this function is created by the compiler and not
/// present in the original source code
@@ -144,10 +140,10 @@ class LIEF_API Function {
/// Return the dwarf::Type associated with the **return type** of this
/// function
- std::unique_ptr<Type> type() const;
+ std::unique_ptr<Type> type() const LIEF_LIFETIMEBOUND;
/// Return the function's parameters (including any template parameter)
- parameters_t parameters() const;
+ parameters_t parameters() const LIEF_LIFETIMEBOUND;
/// List of exceptions (types) that can be thrown by the function.
///
@@ -161,16 +157,26 @@ class LIEF_API Function {
///
/// thrown_types() returns one element associated with the Type:
/// `StatisticsError`.
- thrown_types_t thrown_types() const;
+ thrown_types_t thrown_types() const LIEF_LIFETIMEBOUND;
/// Return the scope in which this function is defined
- std::unique_ptr<Scope> scope() const;
+ std::unique_ptr<Scope> scope() const LIEF_LIFETIMEBOUND;
/// Disassemble the current function by returning an iterator over
/// the assembly::Instruction
- instructions_it instructions() const;
+ instructions_it instructions() const LIEF_LIFETIMEBOUND;
+
+ /// Iterator over the LexicalBlock owned by this function
+ lexical_blocks_it lexical_blocks() const LIEF_LIFETIMEBOUND;
+
+ /// Description (`DW_AT_description`) of this function or an empty string
+ std::string description() const;
+
+ /// Generates a C/C++ definition for this function
+ std::string to_decl(const DeclOpt& opt = DeclOpt()) const;
~Function();
+
private:
std::unique_ptr<details::Function> impl_;
};
diff --git a/deps/LIEF/include/LIEF/DWARF/LexicalBlock.hpp b/deps/LIEF/include/LIEF/DWARF/LexicalBlock.hpp
new file mode 100644
index 00000000000..8f3ebbdd9b8
--- /dev/null
+++ b/deps/LIEF/include/LIEF/DWARF/LexicalBlock.hpp
@@ -0,0 +1,135 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_DWARF_LEXICAL_BLOCK_H
+#define LIEF_DWARF_LEXICAL_BLOCK_H
+
+#include "LIEF/compiler_attributes.hpp"
+#include "LIEF/visibility.h"
+#include "LIEF/iterators.hpp"
+#include "LIEF/optional.hpp"
+#include "LIEF/range.hpp"
+
+#include <memory>
+#include <string>
+#include <cstdint>
+
+namespace LIEF {
+namespace dwarf {
+
+namespace details {
+class LexicalBlock;
+class LexicalBlockIt;
+}
+
+/// This class represents a DWARF lexical block (`DW_TAG_lexical_block`)
+class LIEF_API LexicalBlock {
+ public:
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag,
+ LexicalBlock, std::ptrdiff_t,
+ const LexicalBlock*, const LexicalBlock&> {
+ public:
+ using implementation = details::LexicalBlockIt;
+ using iterator_facade_base::operator++;
+ using iterator_facade_base::operator--;
+
+ LIEF_API Iterator();
+
+ LIEF_API Iterator(std::unique_ptr<details::LexicalBlockIt> impl);
+
+ LIEF_API Iterator(const Iterator&);
+ LIEF_API Iterator& operator=(const Iterator&);
+
+ LIEF_API Iterator(Iterator&&) noexcept;
+ LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+ LIEF_API ~Iterator();
+
+ friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
+ friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+ return !(LHS == RHS);
+ }
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator++();
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator--();
+
+ LIEF_API const LexicalBlock& operator*() const LIEF_LIFETIMEBOUND;
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const LexicalBlock* operator->() const LIEF_LIFETIMEBOUND;
+
+ /// Transfer ownership of the lexical block at the current position
+ /// to the caller. Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<LexicalBlock> yield();
+
+ private:
+ void load() const;
+
+ std::unique_ptr<details::LexicalBlockIt> impl_;
+ mutable std::unique_ptr<LexicalBlock> cached_;
+ };
+
+ using sub_blocks_it = iterator_range<Iterator>;
+
+ LexicalBlock(std::unique_ptr<details::LexicalBlock> impl);
+ LexicalBlock() = delete;
+ LexicalBlock& operator=(const LexicalBlock&) = delete;
+ LexicalBlock(const LexicalBlock&) = delete;
+
+ /// Return the *name* associated with this lexical block or an
+ /// empty string
+ std::string name() const;
+
+ /// Return the description associated with this lexical block or an
+ /// empty string
+ std::string description() const;
+
+ /// Return an iterator over the sub-LexicalBlock owned by this block.
+ sub_blocks_it sub_blocks() const LIEF_LIFETIMEBOUND;
+
+ /// Return the start address of this block
+ optional<uint64_t> addr() const;
+
+ /// Return the size of this block as the difference of the highest address and
+ /// the lowest address.
+ uint64_t size() const;
+
+ /// Return the lowest virtual address owned by this block.
+ optional<uint64_t> low_pc() const;
+
+ /// Return the highest virtual address owned by this block.
+ optional<uint64_t> high_pc() const;
+
+ /// Return a list of address ranges owned by this block.
+ ///
+ /// If the lexical block owns a contiguous range, it should return
+ /// **a single** range.
+ std::vector<range_t> ranges() const;
+
+ ~LexicalBlock();
+
+ LIEF_LOCAL static std::unique_ptr<LexicalBlock>
+ create(std::unique_ptr<details::LexicalBlock> impl);
+
+ protected:
+ std::unique_ptr<details::LexicalBlock> impl_;
+};
+
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/DWARF/Parameter.hpp b/deps/LIEF/include/LIEF/DWARF/Parameter.hpp
index 9fa7c1211de..9959987e674 100644
--- a/deps/LIEF/include/LIEF/DWARF/Parameter.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/Parameter.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,9 +16,11 @@
#define LIEF_DWARF_PARAMETER_H
#include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
#include <memory>
#include <string>
+#include <cstdint>
namespace LIEF {
namespace dwarf {
@@ -41,19 +43,61 @@ class LIEF_API Parameter {
TEMPLATE_VALUE, ///< DW_TAG_template_value_parameter
FORMAL, ///< DW_TAG_formal_parameter
};
+
+ /// This class exposes information about the location of a parameter
+ class LIEF_API Location {
+ public:
+ enum class Type : uint8_t {
+ UNKNOWN = 0,
+ REG,
+ };
+ Location(Type ty) :
+ type(ty) {}
+
+ template<class T>
+ const T* as() const {
+ if (T::classof(this)) {
+ return static_cast<const T*>(this);
+ }
+ return nullptr;
+ }
+
+ Type type = Type::UNKNOWN;
+ };
+
+ /// This class represents a register location
+ class LIEF_API RegisterLoc : public Location {
+ public:
+ RegisterLoc(uint64_t reg_id) :
+ Location(Type::REG),
+ id(reg_id) {}
+
+ static bool classof(const Location* loc) {
+ return loc->type == Type::REG;
+ }
+
+ /// DWARF id of the register
+ uint64_t id = 0;
+ };
+
Parameter() = delete;
- Parameter(Parameter&& other);
- Parameter& operator=(Parameter&& other);
+ Parameter(Parameter&& other) noexcept;
+ Parameter& operator=(Parameter&& other) noexcept;
Parameter& operator=(const Parameter&) = delete;
Parameter(const Parameter&) = delete;
+
KIND kind() const;
/// Name of the parameter
std::string name() const;
/// Type of this parameter
- std::unique_ptr<Type> type() const;
+ std::unique_ptr<Type> type() const LIEF_LIFETIMEBOUND;
+
+ /// Location of this parameter. For instance it can be a specific register
+ /// that is not following the calling convention.
+ std::unique_ptr<Location> location() const LIEF_LIFETIMEBOUND;
template<class T>
const T* as() const {
@@ -65,8 +109,8 @@ class LIEF_API Parameter {
virtual ~Parameter();
- LIEF_LOCAL static
- std::unique_ptr<Parameter> create(std::unique_ptr<details::Parameter> impl);
+ LIEF_LOCAL static std::unique_ptr<Parameter>
+ create(std::unique_ptr<details::Parameter> impl);
protected:
Parameter(std::unique_ptr<details::Parameter> impl);
@@ -130,7 +174,7 @@ class LIEF_API TemplateValue : public Parameter {
///
/// The function `generic` has one parameters::TemplateType parameter: `Y`.
class LIEF_API TemplateType : public Parameter {
-public:
+ public:
using Parameter::Parameter;
static bool classof(const Parameter* P) {
return P->kind() == Parameter::KIND::TEMPLATE_TYPE;
diff --git a/deps/LIEF/include/LIEF/DWARF/Scope.hpp b/deps/LIEF/include/LIEF/DWARF/Scope.hpp
index 61977c21aec..dbe5e4321f7 100644
--- a/deps/LIEF/include/LIEF/DWARF/Scope.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/Scope.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -57,6 +57,7 @@ class LIEF_API Scope {
std::string chained(const std::string& sep = "::") const;
~Scope();
+
private:
std::unique_ptr<details::Scope> impl_;
};
diff --git a/deps/LIEF/include/LIEF/DWARF/Type.hpp b/deps/LIEF/include/LIEF/DWARF/Type.hpp
index 9e13e896c0d..1ef238cf1b6 100644
--- a/deps/LIEF/include/LIEF/DWARF/Type.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/Type.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,10 +17,13 @@
#include <memory>
+#include "LIEF/compiler_attributes.hpp"
+#include "LIEF/iterators.hpp"
#include "LIEF/visibility.h"
#include "LIEF/errors.hpp"
#include "LIEF/debug_loc.hpp"
#include "LIEF/canbe_unique.hpp"
+#include "LIEF/DebugDeclOpt.hpp"
namespace LIEF {
namespace dwarf {
@@ -63,63 +66,62 @@ class TypeIt;
/// - `DW_TAG_volatile_type`
class LIEF_API Type {
public:
- class LIEF_API Iterator {
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag, Type,
+ std::ptrdiff_t, const Type*, const Type&> {
public:
- using iterator_category = std::bidirectional_iterator_tag;
- using value_type = std::unique_ptr<Type>;
- using difference_type = std::ptrdiff_t;
- using pointer = Type*;
- using reference = std::unique_ptr<Type>&;
using implementation = details::TypeIt;
+ using iterator_facade_base::operator++;
+ using iterator_facade_base::operator--;
- class LIEF_API PointerProxy {
- // Inspired from LLVM's iterator_facade_base
- friend class Iterator;
- public:
- pointer operator->() const { return R.get(); }
+ LIEF_API Iterator();
- private:
- value_type R;
+ LIEF_API Iterator(std::unique_ptr<details::TypeIt> impl);
- template <typename RefT>
- PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
- };
+ LIEF_API Iterator(const Iterator&);
+ LIEF_API Iterator& operator=(const Iterator&);
- Iterator(const Iterator&);
- Iterator(Iterator&&) noexcept;
- Iterator(std::unique_ptr<details::TypeIt> impl);
- ~Iterator();
+ LIEF_API Iterator(Iterator&&) noexcept;
+ LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+ LIEF_API ~Iterator();
friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
- friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+ friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
return !(LHS == RHS);
}
- Iterator& operator++();
- Iterator& operator--();
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator++();
- Iterator operator--(int) {
- Iterator tmp = *static_cast<Iterator*>(this);
- --*static_cast<Iterator *>(this);
- return tmp;
- }
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator--();
- Iterator operator++(int) {
- Iterator tmp = *static_cast<Iterator*>(this);
- ++*static_cast<Iterator *>(this);
- return tmp;
- }
+ LIEF_API const Type& operator*() const LIEF_LIFETIMEBOUND;
- std::unique_ptr<Type> operator*() const;
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const Type* operator->() const LIEF_LIFETIMEBOUND;
- PointerProxy operator->() const {
- return static_cast<const Iterator*>(this)->operator*();
- }
+ /// Transfer ownership of the type at the current position to the
+ /// caller. Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<Type> yield();
private:
+ void load() const;
+
std::unique_ptr<details::TypeIt> impl_;
+ mutable std::unique_ptr<Type> cached_;
};
+ LIEF_LOCAL Type(std::unique_ptr<details::Type> impl);
+ LIEF_LOCAL Type(details::Type& impl);
+
+ Type(const Type&) = delete;
+ Type& operator=(const Type&) = delete;
+
+ Type(Type&&) noexcept;
+ Type& operator=(Type&&) noexcept;
+
virtual ~Type();
enum class KIND {
@@ -176,6 +178,9 @@ class LIEF_API Type {
/// Return the scope in which this type is defined
std::unique_ptr<Scope> scope() const;
+ /// Generates a C/C++ definition for this type
+ std::string to_decl(const DeclOpt& opt = DeclOpt()) const;
+
template<class T>
const T* as() const {
if (T::classof(this)) {
@@ -184,12 +189,10 @@ class LIEF_API Type {
return nullptr;
}
- static std::unique_ptr<Type> create(std::unique_ptr<details::Type> impl);
+ static std::unique_ptr<Type>
+ create(std::unique_ptr<details::Type> impl LIEF_LIFETIMEBOUND);
protected:
- Type(std::unique_ptr<details::Type> impl);
- Type(details::Type& impl);
-
LIEF::details::canbe_unique<details::Type> impl_;
};
diff --git a/deps/LIEF/include/LIEF/DWARF/Variable.hpp b/deps/LIEF/include/LIEF/DWARF/Variable.hpp
index dd457f45d6e..6e5d4ef1218 100644
--- a/deps/LIEF/include/LIEF/DWARF/Variable.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/Variable.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,7 +17,9 @@
#include <memory>
+#include "LIEF/iterators.hpp"
#include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/errors.hpp"
#include "LIEF/debug_loc.hpp"
#include "LIEF/DWARF/Type.hpp"
@@ -35,61 +37,52 @@ class VariableIt;
/// dwarf::Function or a dwarf::CompilationUnit
class LIEF_API Variable {
public:
- class LIEF_API Iterator {
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag,
+ Variable, std::ptrdiff_t, const Variable*,
+ const Variable&> {
public:
- using iterator_category = std::bidirectional_iterator_tag;
- using value_type = std::unique_ptr<Variable>;
- using difference_type = std::ptrdiff_t;
- using pointer = Variable*;
- using reference = std::unique_ptr<Variable>&;
using implementation = details::VariableIt;
+ using iterator_facade_base::operator++;
+ using iterator_facade_base::operator--;
- class LIEF_API PointerProxy {
- // Inspired from LLVM's iterator_facade_base
- friend class Iterator;
- public:
- pointer operator->() const { return R.get(); }
+ LIEF_API Iterator();
- private:
- value_type R;
+ LIEF_API Iterator(std::unique_ptr<details::VariableIt> impl);
- template <typename RefT>
- PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
- };
+ LIEF_API Iterator(const Iterator&);
+ LIEF_API Iterator& operator=(const Iterator&);
- Iterator(const Iterator&);
- Iterator(Iterator&&) noexcept;
- Iterator(std::unique_ptr<details::VariableIt> impl);
- ~Iterator();
+ LIEF_API Iterator(Iterator&&) noexcept;
+ LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+ LIEF_API ~Iterator();
friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
- friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+ friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
return !(LHS == RHS);
}
- Iterator& operator++();
- Iterator& operator--();
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator++();
- Iterator operator--(int) {
- Iterator tmp = *static_cast<Iterator*>(this);
- --*static_cast<Iterator *>(this);
- return tmp;
- }
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator--();
- Iterator operator++(int) {
- Iterator tmp = *static_cast<Iterator*>(this);
- ++*static_cast<Iterator *>(this);
- return tmp;
- }
+ LIEF_API const Variable& operator*() const LIEF_LIFETIMEBOUND;
- std::unique_ptr<Variable> operator*() const;
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const Variable* operator->() const LIEF_LIFETIMEBOUND;
- PointerProxy operator->() const {
- return static_cast<const Iterator*>(this)->operator*();
- }
+ /// Transfer ownership of the variable at the current position to the
+ /// caller. Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<Variable> yield();
private:
+ void load() const;
+
std::unique_ptr<details::VariableIt> impl_;
+ mutable std::unique_ptr<Variable> cached_;
};
Variable(std::unique_ptr<details::Variable> impl);
@@ -100,7 +93,7 @@ class LIEF_API Variable {
/// The name of the variable which is used for linking (`DW_AT_linkage_name`).
///
/// This name differs from name() as it is usually mangled. The function
- /// return an empty string if the linkage name is not available.
+ /// returns an empty string if the linkage name is not available.
std::string linkage_name() const;
/// Address of the variable.
@@ -122,16 +115,26 @@ class LIEF_API Variable {
/// Whether it's a `constexpr` variable
bool is_constexpr() const;
+ /// Whether this variable is allocated on the stack
+ bool is_stack_based() const;
+
/// The original source location where the variable is defined.
debug_location_t debug_location() const;
/// Return the type of this variable
- std::unique_ptr<Type> type() const;
+ std::unique_ptr<Type> type() const LIEF_LIFETIMEBOUND;
/// Return the scope in which this variable is defined
- std::unique_ptr<Scope> scope() const;
+ std::unique_ptr<Scope> scope() const LIEF_LIFETIMEBOUND;
+
+ /// Description (`DW_AT_description`) of the variable or an empty string
+ std::string description() const;
+
+ /// Generates a C/C++ definition for this variable
+ std::string to_decl(const DeclOpt& opt = DeclOpt()) const;
~Variable();
+
private:
std::unique_ptr<details::Variable> impl_;
};
diff --git a/deps/LIEF/include/LIEF/DWARF/editor/ArrayType.hpp b/deps/LIEF/include/LIEF/DWARF/editor/ArrayType.hpp
index 2116dd9666e..edd21ca7b09 100644
--- a/deps/LIEF/include/LIEF/DWARF/editor/ArrayType.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/editor/ArrayType.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,7 +25,11 @@ namespace editor {
/// This class represents an array type (`DW_TAG_array_type`).
class LIEF_API ArrayType : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ ArrayType(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
static bool classof(const Type* type);
diff --git a/deps/LIEF/include/LIEF/DWARF/editor/BaseType.hpp b/deps/LIEF/include/LIEF/DWARF/editor/BaseType.hpp
index f06db195b0a..11b2dd3f026 100644
--- a/deps/LIEF/include/LIEF/DWARF/editor/BaseType.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/editor/BaseType.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,7 +26,11 @@ namespace editor {
/// This class represents a primitive type like `int, char`.
class LIEF_API BaseType : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ BaseType(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
enum class ENCODING : uint32_t {
NONE = 0,
@@ -36,7 +40,7 @@ class LIEF_API BaseType : public Type {
UNSIGNED,
UNSIGNED_CHAR,
BOOLEAN,
- FLOAT
+ FLOAT,
};
static bool classof(const Type* type);
diff --git a/deps/LIEF/include/LIEF/DWARF/editor/CompilationUnit.hpp b/deps/LIEF/include/LIEF/DWARF/editor/CompilationUnit.hpp
index b6b00714d0d..cabab90828d 100644
--- a/deps/LIEF/include/LIEF/DWARF/editor/CompilationUnit.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/editor/CompilationUnit.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,6 +18,8 @@
#include <string>
#include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
+
#include "LIEF/DWARF/editor/StructType.hpp"
#include "LIEF/DWARF/editor/BaseType.hpp"
#include "LIEF/DWARF/editor/FunctionType.hpp"
@@ -47,46 +49,57 @@ class LIEF_API CompilationUnit {
///
/// This attribute aims to inform about the program that generated this
/// compilation unit (e.g. `LIEF Extended`)
- CompilationUnit& set_producer(const std::string& producer);
+ CompilationUnit& set_producer(const std::string& producer) LIEF_LIFETIMEBOUND;
/// Create a new function owned by this compilation unit
- std::unique_ptr<Function> create_function(const std::string& name);
+ std::unique_ptr<Function>
+ create_function(const std::string& name) LIEF_LIFETIMEBOUND;
/// Create a new **global** variable owned by this compilation unit
- std::unique_ptr<Variable> create_variable(const std::string& name);
+ std::unique_ptr<Variable>
+ create_variable(const std::string& name) LIEF_LIFETIMEBOUND;
/// Create a `DW_TAG_unspecified_type` type with the given name
- std::unique_ptr<Type> create_generic_type(const std::string& name);
+ std::unique_ptr<Type>
+ create_generic_type(const std::string& name) LIEF_LIFETIMEBOUND;
/// Create an enum type (`DW_TAG_enumeration_type`)
- std::unique_ptr<EnumType> create_enum(const std::string& name);
+ std::unique_ptr<EnumType>
+ create_enum(const std::string& name) LIEF_LIFETIMEBOUND;
- /// Create a typdef with the name provided in the first parameter which aliases
+ /// Create a typedef with the name provided in the first parameter which aliases
/// the type provided in the second parameter
- std::unique_ptr<TypeDef> create_typedef(const std::string& name, const Type& type);
+ std::unique_ptr<TypeDef> create_typedef(const std::string& name,
+ const Type& type) LIEF_LIFETIMEBOUND;
/// Create a struct-like type (struct, class, union) with the given name.
std::unique_ptr<StructType> create_structure(
- const std::string& name, StructType::TYPE kind = StructType::TYPE::STRUCT);
+ const std::string& name, StructType::TYPE kind = StructType::TYPE::STRUCT
+ ) LIEF_LIFETIMEBOUND;
/// Create a primitive type with the given name and size.
- std::unique_ptr<BaseType> create_base_type(const std::string& name, size_t size,
- BaseType::ENCODING encoding = BaseType::ENCODING::NONE);
+ std::unique_ptr<BaseType> create_base_type(
+ const std::string& name, size_t size,
+ BaseType::ENCODING encoding = BaseType::ENCODING::NONE
+ ) LIEF_LIFETIMEBOUND;
/// Create a function type with the given name.
- std::unique_ptr<FunctionType> create_function_type(const std::string& name);
+ std::unique_ptr<FunctionType>
+ create_function_type(const std::string& name) LIEF_LIFETIMEBOUND;
/// Create a pointer on the provided type
- std::unique_ptr<PointerType> create_pointer_type(const Type& ty) {
+ std::unique_ptr<PointerType>
+ create_pointer_type(const Type& ty) LIEF_LIFETIMEBOUND {
return ty.pointer_to();
}
/// Create a `void` type
- std::unique_ptr<Type> create_void_type();
+ std::unique_ptr<Type> create_void_type() LIEF_LIFETIMEBOUND;
/// Create an array type with the given name, type and size.
- std::unique_ptr<ArrayType>
- create_array(const std::string& name, const Type& type, size_t count);
+ std::unique_ptr<ArrayType> create_array(const std::string& name,
+ const Type& type,
+ size_t count) LIEF_LIFETIMEBOUND;
~CompilationUnit();
diff --git a/deps/LIEF/include/LIEF/DWARF/editor/EnumType.hpp b/deps/LIEF/include/LIEF/DWARF/editor/EnumType.hpp
index 90d76fa0e91..9eda1e305b1 100644
--- a/deps/LIEF/include/LIEF/DWARF/editor/EnumType.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/editor/EnumType.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
#include <cstdint>
#include <string>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/DWARF/editor/Type.hpp"
@@ -31,7 +32,11 @@ class EnumValue;
/// This class represents an editable enum type (`DW_TAG_enumeration_type`)
class LIEF_API EnumType : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ EnumType(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
/// This class represents an enum value
class LIEF_API Value {
@@ -40,16 +45,21 @@ class LIEF_API EnumType : public Type {
Value(std::unique_ptr<details::EnumValue> impl);
~Value();
+
private:
std::unique_ptr<details::EnumValue> impl_;
};
/// Define the number of bytes required to hold an instance of the
/// enumeration (`DW_AT_byte_size`).
- EnumType& set_size(uint64_t size);
+ EnumType& set_size(uint64_t size) LIEF_LIFETIMEBOUND;
+
+ /// Set the underlying type that is used to encode this enum
+ EnumType& set_underlying_type(const Type& type) LIEF_LIFETIMEBOUND;
/// Add an enum value by specifying its name and its integer value
- std::unique_ptr<Value> add_value(const std::string& name, int64_t value);
+ std::unique_ptr<Value> add_value(const std::string& name,
+ int64_t value) LIEF_LIFETIMEBOUND;
static bool classof(const Type* type);
diff --git a/deps/LIEF/include/LIEF/DWARF/editor/Function.hpp b/deps/LIEF/include/LIEF/DWARF/editor/Function.hpp
index e91f64139c0..4c341a1d5cf 100644
--- a/deps/LIEF/include/LIEF/DWARF/editor/Function.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/editor/Function.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
#include <vector>
#include <string>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
namespace LIEF {
@@ -40,19 +41,27 @@ class LIEF_API Function {
struct LIEF_API range_t {
range_t() = default;
range_t(uint64_t start, uint64_t end) :
- start(start), end(end)
- {}
+ start(start),
+ end(end) {}
uint64_t start = 0;
uint64_t end = 0;
};
- /// This class represents a parameter of the current function (`DW_TAG_formal_parameter`)
+ /// This class represents a parameter of the current function
+ /// (`DW_TAG_formal_parameter`)
class LIEF_API Parameter {
public:
Parameter() = delete;
Parameter(std::unique_ptr<details::FunctionParameter> impl);
~Parameter();
+
+ /// Assign this parameter to a specific named register.
+ Parameter& assign_register(const std::string& name) LIEF_LIFETIMEBOUND;
+
+ /// Assign this parameter to the given DWARF register id (e.g. `DW_OP_reg0`).
+ Parameter& assign_register(uint64_t reg) LIEF_LIFETIMEBOUND;
+
private:
std::unique_ptr<details::FunctionParameter> impl_;
};
@@ -63,7 +72,24 @@ class LIEF_API Function {
LexicalBlock() = delete;
LexicalBlock(std::unique_ptr<details::FunctionLexicalBlock> impl);
+ /// Create a sub-block with the given low/high addresses.
+ std::unique_ptr<LexicalBlock> add_block(uint64_t start,
+ uint64_t end) LIEF_LIFETIMEBOUND;
+
+ /// Create a sub-block with the given range of addresses.
+ std::unique_ptr<LexicalBlock>
+ add_block(const std::vector<range_t>& range) LIEF_LIFETIMEBOUND;
+
+ /// Create a `DW_AT_description` entry with the description
+ /// provided in parameter.
+ LexicalBlock&
+ add_description(const std::string& description) LIEF_LIFETIMEBOUND;
+
+ /// Create a `DW_AT_name` entry to associate a name to this entry
+ LexicalBlock& add_name(const std::string& name) LIEF_LIFETIMEBOUND;
+
~LexicalBlock();
+
private:
std::unique_ptr<details::FunctionLexicalBlock> impl_;
};
@@ -75,6 +101,7 @@ class LIEF_API Function {
Label(std::unique_ptr<details::FunctionLabel> impl);
~Label();
+
private:
std::unique_ptr<details::FunctionLabel> impl_;
};
@@ -83,39 +110,47 @@ class LIEF_API Function {
Function(std::unique_ptr<details::Function> impl);
/// Set the address of this function by defining `DW_AT_entry_pc`
- Function& set_address(uint64_t addr);
+ Function& set_address(uint64_t addr) LIEF_LIFETIMEBOUND;
/// Set the upper and lower bound addresses for this function. This assumes
/// that the function is contiguous between `low` and `high`.
///
/// Underneath, the function defines `DW_AT_low_pc` and `DW_AT_high_pc`
- Function& set_low_high(uint64_t low, uint64_t high);
+ Function& set_low_high(uint64_t low, uint64_t high) LIEF_LIFETIMEBOUND;
/// Set the ranges of addresses owned by the implementation of this function
/// by setting the `DW_AT_ranges` attribute.
///
- /// This setter should be used for non-contiguous function.
- Function& set_ranges(const std::vector<range_t>& ranges);
+ /// This setter should be used for non-contiguous functions.
+ Function& set_ranges(const std::vector<range_t>& ranges) LIEF_LIFETIMEBOUND;
/// Set the function as external by defining `DW_AT_external` to true.
/// This means that the function is **imported** by the current compilation
/// unit.
- Function& set_external();
+ Function& set_external() LIEF_LIFETIMEBOUND;
/// Set the return type of this function
- Function& set_return_type(const Type& type);
+ Function& set_return_type(const Type& type) LIEF_LIFETIMEBOUND;
/// Add a parameter to the current function
- std::unique_ptr<Parameter> add_parameter(const std::string& name, const Type& type);
+ std::unique_ptr<Parameter> add_parameter(const std::string& name,
+ const Type& type) LIEF_LIFETIMEBOUND;
/// Create a stack-based variable owned by the current function
- std::unique_ptr<Variable> create_stack_variable(const std::string& name);
+ std::unique_ptr<Variable>
+ create_stack_variable(const std::string& name) LIEF_LIFETIMEBOUND;
/// Add a lexical block with the given range
- std::unique_ptr<LexicalBlock> add_lexical_block(uint64_t start, uint64_t end);
+ std::unique_ptr<LexicalBlock> add_lexical_block(uint64_t start,
+ uint64_t end) LIEF_LIFETIMEBOUND;
/// Add a label at the given address
- std::unique_ptr<Label> add_label(uint64_t addr, const std::string& label);
+ std::unique_ptr<Label> add_label(uint64_t addr,
+ const std::string& label) LIEF_LIFETIMEBOUND;
+
+ /// Create a `DW_AT_description` entry with the description
+ /// provided in parameter.
+ Function& add_description(const std::string& description) LIEF_LIFETIMEBOUND;
~Function();
diff --git a/deps/LIEF/include/LIEF/DWARF/editor/FunctionType.hpp b/deps/LIEF/include/LIEF/DWARF/editor/FunctionType.hpp
index 9b843798404..e45999617f0 100644
--- a/deps/LIEF/include/LIEF/DWARF/editor/FunctionType.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/editor/FunctionType.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,6 +14,7 @@
*/
#ifndef LIEF_DWARF_EDITOR_FUNCTION_TYPE_H
#define LIEF_DWARF_EDITOR_FUNCTION_TYPE_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/DWARF/editor/Type.hpp"
@@ -28,7 +29,11 @@ class FunctionTyParameter;
/// This class represents a function type (`DW_TAG_subroutine_type`)
class LIEF_API FunctionType : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ FunctionType(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
/// This class represents a function's parameter
class LIEF_API Parameter {
@@ -37,15 +42,16 @@ class LIEF_API FunctionType : public Type {
Parameter(std::unique_ptr<details::FunctionTyParameter> impl);
~Parameter();
+
private:
std::unique_ptr<details::FunctionTyParameter> impl_;
};
/// Set the return type of this function
- FunctionType& set_return_type(const Type& type);
+ FunctionType& set_return_type(const Type& type) LIEF_LIFETIMEBOUND;
/// Add a parameter
- std::unique_ptr<Parameter> add_parameter(const Type& type);
+ std::unique_ptr<Parameter> add_parameter(const Type& type) LIEF_LIFETIMEBOUND;
static bool classof(const Type* type);
diff --git a/deps/LIEF/include/LIEF/DWARF/editor/PointerType.hpp b/deps/LIEF/include/LIEF/DWARF/editor/PointerType.hpp
index 8bb5a0ea3cd..884b1b09ca2 100644
--- a/deps/LIEF/include/LIEF/DWARF/editor/PointerType.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/editor/PointerType.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,7 +25,11 @@ namespace editor {
/// This class represents a pointer to another type.
class LIEF_API PointerType : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ PointerType(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
static bool classof(const Type* type);
diff --git a/deps/LIEF/include/LIEF/DWARF/editor/StructType.hpp b/deps/LIEF/include/LIEF/DWARF/editor/StructType.hpp
index 82093eb64bc..a01b6160d85 100644
--- a/deps/LIEF/include/LIEF/DWARF/editor/StructType.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/editor/StructType.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
#include <string>
#include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/DWARF/editor/Type.hpp"
namespace LIEF {
@@ -36,12 +37,16 @@ class StructMember;
/// - `DW_TAG_union_type`
class LIEF_API StructType : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ StructType(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
enum class TYPE : uint32_t {
- CLASS, /// Discriminant for `DW_TAG_class_type`
+ CLASS, /// Discriminant for `DW_TAG_class_type`
STRUCT, /// Discriminant for `DW_TAG_structure_type`
- UNION, /// Discriminant for `DW_TAG_union_type`
+ UNION, /// Discriminant for `DW_TAG_union_type`
};
/// This class represents a member of the struct-like
@@ -51,6 +56,7 @@ class LIEF_API StructType : public Type {
Member(std::unique_ptr<details::StructMember> impl);
~Member();
+
private:
std::unique_ptr<details::StructMember> impl_;
};
@@ -59,11 +65,16 @@ class LIEF_API StructType : public Type {
/// type.
///
/// This function defines the `DW_AT_byte_size` attribute
- StructType& set_size(uint64_t size);
+ StructType& set_size(uint64_t size) LIEF_LIFETIMEBOUND;
- /// Add a member to the current struct-like
+ /// Adds a member to the current struct-like
std::unique_ptr<Member> add_member(const std::string& name, const Type& type,
- int64_t offset = -1);
+ int64_t offset = -1) LIEF_LIFETIMEBOUND;
+
+ /// Adds a bitfield member to the current structure.
+ std::unique_ptr<Member> add_bitfield(const std::string& name, const Type& type,
+ uint64_t bitsize,
+ int64_t bitoffset = -1) LIEF_LIFETIMEBOUND;
static bool classof(const Type* type);
diff --git a/deps/LIEF/include/LIEF/DWARF/editor/Type.hpp b/deps/LIEF/include/LIEF/DWARF/editor/Type.hpp
index 6dbe44f9672..7d694537ee4 100644
--- a/deps/LIEF/include/LIEF/DWARF/editor/Type.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/editor/Type.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
#include <memory>
#include <cassert>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
namespace LIEF {
@@ -39,20 +40,20 @@ class LIEF_API Type {
Type(std::unique_ptr<details::Type> impl);
/// Create a pointer type pointing to this type
- std::unique_ptr<PointerType> pointer_to() const;
+ std::unique_ptr<PointerType> pointer_to() const LIEF_LIFETIMEBOUND;
virtual ~Type();
- /// \private
+ /// @private
static std::unique_ptr<Type> create(std::unique_ptr<details::Type> impl);
- /// \private
- details::Type& impl() {
+ /// @private
+ details::Type& impl() LIEF_LIFETIMEBOUND {
assert(impl_ != nullptr);
return *impl_;
}
- const details::Type& impl() const {
+ const details::Type& impl() const LIEF_LIFETIMEBOUND {
assert(impl_ != nullptr);
return *impl_;
}
diff --git a/deps/LIEF/include/LIEF/DWARF/editor/TypeDef.hpp b/deps/LIEF/include/LIEF/DWARF/editor/TypeDef.hpp
index aab89dd40ef..38e9b5e2d09 100644
--- a/deps/LIEF/include/LIEF/DWARF/editor/TypeDef.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/editor/TypeDef.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,7 +25,11 @@ namespace editor {
/// This class represents a typedef (`DW_TAG_typedef`).
class LIEF_API TypeDef : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ TypeDef(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
static bool classof(const Type* type);
diff --git a/deps/LIEF/include/LIEF/DWARF/editor/Variable.hpp b/deps/LIEF/include/LIEF/DWARF/editor/Variable.hpp
index f9e41b20913..a6f2762be79 100644
--- a/deps/LIEF/include/LIEF/DWARF/editor/Variable.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/editor/Variable.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,7 +16,9 @@
#define LIEF_DWARF_EDITOR_VARIABLE_H
#include <cstdint>
#include <memory>
+#include <string>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
namespace LIEF {
@@ -36,22 +38,26 @@ class LIEF_API Variable {
Variable(std::unique_ptr<details::Variable> impl);
/// Set the global address of this variable. Setting this address is only
- /// revelant in the case of a static global variable. For stack variable, you
+ /// relevant in the case of a static global variable. For stack variable, you
/// should use set_stack_offset.
///
- /// This function set the `DW_AT_location` attribute
- Variable& set_addr(uint64_t address);
+ /// This function sets the `DW_AT_location` attribute
+ Variable& set_addr(uint64_t address) LIEF_LIFETIMEBOUND;
/// Set the stack offset of this variable.
///
- /// This function set the `DW_AT_location` attribute
- Variable& set_stack_offset(uint64_t offset);
+ /// This function sets the `DW_AT_location` attribute
+ Variable& set_stack_offset(uint64_t offset) LIEF_LIFETIMEBOUND;
/// Mark this variable as **imported**
- Variable& set_external();
+ Variable& set_external() LIEF_LIFETIMEBOUND;
/// Set the type of the current variable
- Variable& set_type(const Type& type);
+ Variable& set_type(const Type& type) LIEF_LIFETIMEBOUND;
+
+ /// Create a `DW_AT_description` entry with the description
+ /// provided in parameter.
+ Variable& add_description(const std::string& description) LIEF_LIFETIMEBOUND;
~Variable();
diff --git a/deps/LIEF/include/LIEF/DWARF/enums.hpp b/deps/LIEF/include/LIEF/DWARF/enums.hpp
index e1c3bd48c4d..6357e39b71d 100644
--- a/deps/LIEF/include/LIEF/DWARF/enums.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/enums.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,26 +19,26 @@
namespace LIEF {
namespace dwarf {
- enum class EH_ENCODING {
- ABSPTR = 0x00,
- OMIT = 0xff,
- ULEB128 = 0x01,
- UDATA2 = 0x02,
- UDATA4 = 0x03,
- UDATA8 = 0x04,
- SLEB128 = 0x09,
- SDATA2 = 0x0a,
- SDATA4 = 0x0b,
- SDATA8 = 0x0c,
- SIGNED = 0x09,
+enum class EH_ENCODING {
+ ABSPTR = 0x00,
+ OMIT = 0xff,
+ ULEB128 = 0x01,
+ UDATA2 = 0x02,
+ UDATA4 = 0x03,
+ UDATA8 = 0x04,
+ SLEB128 = 0x09,
+ SDATA2 = 0x0a,
+ SDATA4 = 0x0b,
+ SDATA8 = 0x0c,
+ SIGNED = 0x09,
- PCREL = 0x10,
- INDIRECT = 0x80,
- TEXTREL = 0x20,
- DATAREL = 0x30,
- FUNCREL = 0x40,
- ALIGNED = 0x50,
- };
+ PCREL = 0x10,
+ INDIRECT = 0x80,
+ TEXTREL = 0x20,
+ DATAREL = 0x30,
+ FUNCREL = 0x40,
+ ALIGNED = 0x50,
+};
} // dwarf
} // LIEF
diff --git a/deps/LIEF/include/LIEF/DWARF/types.hpp b/deps/LIEF/include/LIEF/DWARF/types.hpp
index 6064e3b8140..0450baa4ba6 100644
--- a/deps/LIEF/include/LIEF/DWARF/types.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Array.hpp b/deps/LIEF/include/LIEF/DWARF/types/Array.hpp
index 8a8e7ab185a..48c311e610e 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Array.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Array.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
#ifndef LIEF_DWARF_TYPE_ARRAY_H
#define LIEF_DWARF_TYPE_ARRAY_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/DWARF/Type.hpp"
@@ -25,7 +26,17 @@ namespace types {
/// This class represents a `DW_TAG_array_type`
class LIEF_API Array : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ Array(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
+
+ Array(const Array&) = delete;
+ Array& operator=(const Array&) = delete;
+
+ Array(Array&&) noexcept = default;
+ Array& operator=(Array&&) noexcept = default;
/// Structure that wraps information about the dimension of this array
struct size_info_t {
@@ -50,13 +61,13 @@ class LIEF_API Array : public Type {
}
/// The underlying type of this array
- const Type* underlying_type() const;
+ const Type* underlying_type() const LIEF_LIFETIMEBOUND;
- const Type* operator->() const {
+ const Type* operator->() const LIEF_LIFETIMEBOUND {
return underlying_type();
}
- const Type& operator*() const {
+ const Type& operator*() const LIEF_LIFETIMEBOUND {
return *underlying_type();
}
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Atomic.hpp b/deps/LIEF/include/LIEF/DWARF/types/Atomic.hpp
index 6721c240e07..c1a4229157c 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Atomic.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Atomic.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
#ifndef LIEF_DWARF_TYPE_ATOMIC_H
#define LIEF_DWARF_TYPE_ATOMIC_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/DWARF/Type.hpp"
@@ -25,20 +26,30 @@ namespace types {
/// This class represents a `DW_TAG_atomic_type`
class LIEF_API Atomic : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ Atomic(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
+
+ Atomic(const Atomic&) = delete;
+ Atomic& operator=(const Atomic&) = delete;
+
+ Atomic(Atomic&&) noexcept = default;
+ Atomic& operator=(Atomic&&) noexcept = default;
static bool classof(const Type* type) {
return type->kind() == Type::KIND::ATOMIC;
}
/// The underlying type being atomic
- const Type* underlying_type() const;
+ const Type* underlying_type() const LIEF_LIFETIMEBOUND;
- const Type* operator->() const {
+ const Type* operator->() const LIEF_LIFETIMEBOUND {
return underlying_type();
}
- const Type& operator*() const {
+ const Type& operator*() const LIEF_LIFETIMEBOUND {
return *underlying_type();
}
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Base.hpp b/deps/LIEF/include/LIEF/DWARF/types/Base.hpp
index e3c4630896b..2c9b752d376 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Base.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Base.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,7 +26,11 @@ namespace types {
/// instance -- to represent integers or primitive types.
class LIEF_API Base : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ Base(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
enum class ENCODING {
NONE = 0,
@@ -53,6 +57,12 @@ class LIEF_API Base : public Type {
ADDRESS,
};
+ Base(const Base&) = delete;
+ Base& operator=(const Base&) = delete;
+
+ Base(Base&&) noexcept = default;
+ Base& operator=(Base&&) noexcept = default;
+
static bool classof(const Type* type) {
return type->kind() == Type::KIND::BASE;
}
@@ -67,5 +77,3 @@ class LIEF_API Base : public Type {
}
}
#endif
-
-
diff --git a/deps/LIEF/include/LIEF/DWARF/types/ClassLike.hpp b/deps/LIEF/include/LIEF/DWARF/types/ClassLike.hpp
index b5fa0be2b3c..58b26d2005b 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/ClassLike.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/ClassLike.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
#define LIEF_DWARF_TYPE_STRUCTURE_H
#include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/DWARF/Type.hpp"
#include "LIEF/DWARF/Function.hpp"
@@ -31,7 +32,11 @@ class Member;
/// `DW_TAG_class_type`, `DW_TAG_union_type`.
class LIEF_API ClassLike : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ ClassLike(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
/// This represents a class/struct/union attribute
class LIEF_API Member {
@@ -40,6 +45,9 @@ class LIEF_API ClassLike : public Type {
Member(Member&& other) noexcept;
Member& operator=(Member&& other) noexcept;
+ Member(const Member&) = delete;
+ Member& operator=(const Member&) = delete;
+
/// Name of the member
std::string name() const;
@@ -48,7 +56,7 @@ class LIEF_API ClassLike : public Type {
/// If the offset can't be resolved it returns a lief_errors
result<uint64_t> offset() const;
- /// Offset of the current member in **bits** the struct/union/class
+ /// Offset of the current member in **bits** in the struct/union/class
///
/// This function differs from offset() for aggregates using bit-field
/// declaration:
@@ -65,35 +73,45 @@ class LIEF_API ClassLike : public Type {
/// If the offset can't be resolved it returns a lief_errors
result<uint64_t> bit_offset() const;
- /// Type of the current member
- std::unique_ptr<Type> type() const;
-
+ /// If the current member is a bit-field, this function returns its size in
+ /// bits.
+ result<uint64_t> bit_size() const;
+ /// Type of the current member
+ std::unique_ptr<Type> type() const LIEF_LIFETIMEBOUND;
bool is_external() const;
bool is_declaration() const;
~Member();
+
private:
std::unique_ptr<details::Member> impl_;
};
+ ClassLike(const ClassLike&) = delete;
+ ClassLike& operator=(const ClassLike&) = delete;
+
+ ClassLike(ClassLike&&) noexcept = default;
+ ClassLike& operator=(ClassLike&&) noexcept = default;
+
using functions_it = iterator_range<Function::Iterator>;
static bool classof(const Type* type) {
const auto kind = type->kind();
- return kind == Type::KIND::CLASS || kind == Type::KIND::STRUCT || kind == Type::KIND::UNION;
+ return kind == Type::KIND::CLASS || kind == Type::KIND::STRUCT ||
+ kind == Type::KIND::UNION;
}
/// Return the list of all the attributes defined in this class-like type
- std::vector<Member> members() const;
+ std::vector<Member> members() const LIEF_LIFETIMEBOUND;
/// Try to find the attribute at the given offset
- std::unique_ptr<Member> find_member(uint64_t offset) const;
+ std::unique_ptr<Member> find_member(uint64_t offset) const LIEF_LIFETIMEBOUND;
/// Iterator over the functions defined by the class-like.
- functions_it functions() const;
+ functions_it functions() const LIEF_LIFETIMEBOUND;
~ClassLike() override;
};
@@ -101,7 +119,17 @@ class LIEF_API ClassLike : public Type {
/// This class represents a DWARF `struct` type (`DW_TAG_structure_type`)
class LIEF_API Structure : public ClassLike {
public:
- using ClassLike::ClassLike;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<ClassLike, Args&&...>::value>::type>
+ Structure(Args&&... args) :
+ ClassLike(std::forward<Args>(args)...) {}
+
+ Structure(const Structure&) = delete;
+ Structure& operator=(const Structure&) = delete;
+
+ Structure(Structure&&) noexcept = default;
+ Structure& operator=(Structure&&) noexcept = default;
static bool classof(const Type* type) {
return type->kind() == Type::KIND::STRUCT;
@@ -113,7 +141,17 @@ class LIEF_API Structure : public ClassLike {
/// This class represents a DWARF `class` type (`DW_TAG_class_type`)
class LIEF_API Class : public ClassLike {
public:
- using ClassLike::ClassLike;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<ClassLike, Args&&...>::value>::type>
+ Class(Args&&... args) :
+ ClassLike(std::forward<Args>(args)...) {}
+
+ Class(const Class&) = delete;
+ Class& operator=(const Class&) = delete;
+
+ Class(Class&&) noexcept = default;
+ Class& operator=(Class&&) noexcept = default;
static bool classof(const Type* type) {
return type->kind() == Type::KIND::CLASS;
@@ -122,10 +160,20 @@ class LIEF_API Class : public ClassLike {
~Class() override;
};
-/// This class represents a DWARF `class` type (`DW_TAG_union_type`)
+/// This class represents a DWARF `union` type (`DW_TAG_union_type`)
class LIEF_API Union : public ClassLike {
public:
- using ClassLike::ClassLike;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<ClassLike, Args&&...>::value>::type>
+ Union(Args&&... args) :
+ ClassLike(std::forward<Args>(args)...) {}
+
+ Union(const Union&) = delete;
+ Union& operator=(const Union&) = delete;
+
+ Union(Union&&) noexcept = default;
+ Union& operator=(Union&&) noexcept = default;
static bool classof(const Type* type) {
return type->kind() == Type::KIND::UNION;
@@ -137,7 +185,17 @@ class LIEF_API Union : public ClassLike {
/// This class represents a DWARF `packed` type (`DW_TAG_packed_type`)
class LIEF_API Packed : public ClassLike {
public:
- using ClassLike::ClassLike;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<ClassLike, Args&&...>::value>::type>
+ Packed(Args&&... args) :
+ ClassLike(std::forward<Args>(args)...) {}
+
+ Packed(const Packed&) = delete;
+ Packed& operator=(const Packed&) = delete;
+
+ Packed(Packed&&) noexcept = default;
+ Packed& operator=(Packed&&) noexcept = default;
static bool classof(const Type* type) {
return type->kind() == Type::KIND::PACKED;
@@ -150,5 +208,3 @@ class LIEF_API Packed : public ClassLike {
}
}
#endif
-
-
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Coarray.hpp b/deps/LIEF/include/LIEF/DWARF/types/Coarray.hpp
index b2855331406..3899f5a0cbc 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Coarray.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Coarray.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,7 +25,17 @@ namespace types {
/// This class represents a `DW_TAG_coarray_type`
class LIEF_API Coarray : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ Coarray(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
+
+ Coarray(const Coarray&) = delete;
+ Coarray& operator=(const Coarray&) = delete;
+
+ Coarray(Coarray&&) noexcept = default;
+ Coarray& operator=(Coarray&&) noexcept = default;
static bool classof(const Type* type) {
return type->kind() == Type::KIND::COARRAY;
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Const.hpp b/deps/LIEF/include/LIEF/DWARF/types/Const.hpp
index 85718ad39e5..091f5fea759 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Const.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Const.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
#define LIEF_DWARF_TYPE_CONST_H
#include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/DWARF/Type.hpp"
namespace LIEF {
@@ -25,20 +26,30 @@ namespace types {
/// This class represents a `DW_TAG_const_type`
class LIEF_API Const : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ Const(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
+
+ Const(const Const&) = delete;
+ Const& operator=(const Const&) = delete;
+
+ Const(Const&&) noexcept = default;
+ Const& operator=(Const&&) noexcept = default;
static bool classof(const Type* type) {
return type->kind() == Type::KIND::CONST_KIND;
}
/// The underlying type being const-ed
- const Type* underlying_type() const;
+ const Type* underlying_type() const LIEF_LIFETIMEBOUND;
- const Type* operator->() const {
+ const Type* operator->() const LIEF_LIFETIMEBOUND {
return underlying_type();
}
- const Type& operator*() const {
+ const Type& operator*() const LIEF_LIFETIMEBOUND {
return *underlying_type();
}
@@ -52,5 +63,3 @@ class LIEF_API Const : public Type {
}
}
#endif
-
-
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Dynamic.hpp b/deps/LIEF/include/LIEF/DWARF/types/Dynamic.hpp
index b726545acb4..61ac878cc48 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Dynamic.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Dynamic.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,7 +25,17 @@ namespace types {
/// This class represents a `DW_TAG_dynamic_type`
class LIEF_API Dynamic : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ Dynamic(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
+
+ Dynamic(const Dynamic&) = delete;
+ Dynamic& operator=(const Dynamic&) = delete;
+
+ Dynamic(Dynamic&&) noexcept = default;
+ Dynamic& operator=(Dynamic&&) noexcept = default;
static bool classof(const Type* type) {
return type->kind() == Type::KIND::DYNAMIC;
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Enum.hpp b/deps/LIEF/include/LIEF/DWARF/types/Enum.hpp
index b8f3791d85b..33f83195bc5 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Enum.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Enum.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,23 +15,74 @@
#ifndef LIEF_DWARF_TYPE_ENUM_H
#define LIEF_DWARF_TYPE_ENUM_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
+#include "LIEF/optional.hpp"
#include "LIEF/DWARF/Type.hpp"
namespace LIEF {
namespace dwarf {
namespace types {
+namespace details {
+class EnumEntry;
+}
+
/// This class represents a `DW_TAG_enumeration_type`
class LIEF_API Enum : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ Enum(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
+
+ Enum(const Enum&) = delete;
+ Enum& operator=(const Enum&) = delete;
+
+ Enum(Enum&&) noexcept = default;
+ Enum& operator=(Enum&&) noexcept = default;
+
+ /// This class represents an enum entry which is essentially
+ /// composed of a name and its value (integer).
+ class LIEF_API Entry {
+ public:
+ Entry(std::unique_ptr<details::EnumEntry> impl);
+ Entry(Entry&& other) noexcept;
+ Entry& operator=(Entry&& other) noexcept;
+
+ Entry(const Entry&) = delete;
+ Entry& operator=(const Entry&) = delete;
+
+ /// Enum entry's name
+ std::string name() const;
+
+ /// Enum entry's value (if any)
+ optional<int64_t> value() const;
+
+ ~Entry();
+
+ private:
+ std::unique_ptr<details::EnumEntry> impl_;
+ };
+
+ /// Return the different entries associated with this enum
+ std::vector<Entry> entries() const LIEF_LIFETIMEBOUND;
+
+ /// The underlying type that is used to encode this enum
+ const Type* underlying_type() const LIEF_LIFETIMEBOUND;
+
+ /// Try to find the enum matching the given value
+ optional<Entry> find_entry(int64_t value) const LIEF_LIFETIMEBOUND;
static bool classof(const Type* type) {
return type->kind() == Type::KIND::ENUM;
}
~Enum() override;
+
+ protected:
+ mutable std::unique_ptr<Type> underlying_;
};
}
diff --git a/deps/LIEF/include/LIEF/DWARF/types/File.hpp b/deps/LIEF/include/LIEF/DWARF/types/File.hpp
index acd56227720..5806c25a5ab 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/File.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/File.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,7 +25,17 @@ namespace types {
/// This class represents a `DW_TAG_file_type`
class LIEF_API File : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ File(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
+
+ File(const File&) = delete;
+ File& operator=(const File&) = delete;
+
+ File(File&&) noexcept = default;
+ File& operator=(File&&) noexcept = default;
static bool classof(const Type* type) {
return type->kind() == Type::KIND::FILE;
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Immutable.hpp b/deps/LIEF/include/LIEF/DWARF/types/Immutable.hpp
index c2a7e03aa23..d122fc38bda 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Immutable.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Immutable.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
#ifndef LIEF_DWARF_TYPE_IMMUTABLE_H
#define LIEF_DWARF_TYPE_IMMUTABLE_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/DWARF/Type.hpp"
@@ -25,20 +26,30 @@ namespace types {
/// This class represents a `DW_TAG_immutable_type`
class LIEF_API Immutable : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ Immutable(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
+
+ Immutable(const Immutable&) = delete;
+ Immutable& operator=(const Immutable&) = delete;
+
+ Immutable(Immutable&&) noexcept = default;
+ Immutable& operator=(Immutable&&) noexcept = default;
static bool classof(const Type* type) {
return type->kind() == Type::KIND::IMMUTABLE;
}
/// The underlying type
- const Type* underlying_type() const;
+ const Type* underlying_type() const LIEF_LIFETIMEBOUND;
- const Type* operator->() const {
+ const Type* operator->() const LIEF_LIFETIMEBOUND {
return underlying_type();
}
- const Type& operator*() const {
+ const Type& operator*() const LIEF_LIFETIMEBOUND {
return *underlying_type();
}
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Interface.hpp b/deps/LIEF/include/LIEF/DWARF/types/Interface.hpp
index 3cd00f839b0..7e5ff08e4a8 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Interface.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Interface.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,7 +25,17 @@ namespace types {
/// This class represents a `DW_TAG_interface_type`
class LIEF_API Interface : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ Interface(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
+
+ Interface(const Interface&) = delete;
+ Interface& operator=(const Interface&) = delete;
+
+ Interface(Interface&&) noexcept = default;
+ Interface& operator=(Interface&&) noexcept = default;
static bool classof(const Type* type) {
return type->kind() == Type::KIND::INTERFACE;
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Pointer.hpp b/deps/LIEF/include/LIEF/DWARF/types/Pointer.hpp
index f31cf92b8b4..2509fc55a4e 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Pointer.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Pointer.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
#ifndef LIEF_DWARF_TYPE_POINTER_H
#define LIEF_DWARF_TYPE_POINTER_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/DWARF/Type.hpp"
@@ -25,20 +26,30 @@ namespace types {
/// This class represents a `DW_TAG_pointer_type` DWARF type
class LIEF_API Pointer : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ Pointer(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
+
+ Pointer(const Pointer&) = delete;
+ Pointer& operator=(const Pointer&) = delete;
+
+ Pointer(Pointer&&) noexcept = default;
+ Pointer& operator=(Pointer&&) noexcept = default;
static bool classof(const Type* type) {
return type->kind() == Type::KIND::POINTER;
}
/// The type pointed by this pointer
- const Type* underlying_type() const;
+ const Type* underlying_type() const LIEF_LIFETIMEBOUND;
- const Type* operator->() const {
+ const Type* operator->() const LIEF_LIFETIMEBOUND {
return underlying_type();
}
- const Type& operator*() const {
+ const Type& operator*() const LIEF_LIFETIMEBOUND {
return *underlying_type();
}
@@ -52,5 +63,3 @@ class LIEF_API Pointer : public Type {
}
}
#endif
-
-
diff --git a/deps/LIEF/include/LIEF/DWARF/types/PointerToMember.hpp b/deps/LIEF/include/LIEF/DWARF/types/PointerToMember.hpp
index f8daf900669..aa3fa9c0422 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/PointerToMember.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/PointerToMember.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
#ifndef LIEF_DWARF_TYPE_POINTER_TO_MEMBER_H
#define LIEF_DWARF_TYPE_POINTER_TO_MEMBER_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/DWARF/Type.hpp"
@@ -25,25 +26,35 @@ namespace types {
/// This class represents a `DW_TAG_ptr_to_member_type`
class LIEF_API PointerToMember : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ PointerToMember(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
+
+ PointerToMember(const PointerToMember&) = delete;
+ PointerToMember& operator=(const PointerToMember&) = delete;
+
+ PointerToMember(PointerToMember&&) noexcept = default;
+ PointerToMember& operator=(PointerToMember&&) noexcept = default;
static bool classof(const Type* type) {
return type->kind() == Type::KIND::POINTER_MEMBER;
}
/// The type of the member referenced by this pointer
- const Type* underlying_type() const;
+ const Type* underlying_type() const LIEF_LIFETIMEBOUND;
- const Type* operator->() const {
+ const Type* operator->() const LIEF_LIFETIMEBOUND {
return underlying_.get();
}
- const Type* operator*() const {
+ const Type* operator*() const LIEF_LIFETIMEBOUND {
return underlying_.get();
}
/// The type that embeds this member
- std::unique_ptr<Type> containing_type() const;
+ std::unique_ptr<Type> containing_type() const LIEF_LIFETIMEBOUND;
~PointerToMember() override;
diff --git a/deps/LIEF/include/LIEF/DWARF/types/RValueRef.hpp b/deps/LIEF/include/LIEF/DWARF/types/RValueRef.hpp
index 71dd830da2c..7e2bcf819ac 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/RValueRef.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/RValueRef.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
#ifndef LIEF_DWARF_TYPE_RVALUE_REFERENCE_H
#define LIEF_DWARF_TYPE_RVALUE_REFERENCE_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/DWARF/Type.hpp"
@@ -25,20 +26,30 @@ namespace types {
/// This class represents a `DW_TAG_rvalue_reference_type`
class LIEF_API RValueReference : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ RValueReference(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
+
+ RValueReference(const RValueReference&) = delete;
+ RValueReference& operator=(const RValueReference&) = delete;
+
+ RValueReference(RValueReference&&) noexcept = default;
+ RValueReference& operator=(RValueReference&&) noexcept = default;
static bool classof(const Type* type) {
return type->kind() == Type::KIND::RVALREF;
}
/// The underlying type referenced by this rvalue-type.
- const Type* underlying_type() const;
+ const Type* underlying_type() const LIEF_LIFETIMEBOUND;
- const Type* operator->() const {
+ const Type* operator->() const LIEF_LIFETIMEBOUND {
return underlying_.get();
}
- const Type* operator*() const {
+ const Type* operator*() const LIEF_LIFETIMEBOUND {
return underlying_.get();
}
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Reference.hpp b/deps/LIEF/include/LIEF/DWARF/types/Reference.hpp
index cee47316a57..39ba5886995 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Reference.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Reference.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
#ifndef LIEF_DWARF_REFERENCE_H
#define LIEF_DWARF_REFERENCE_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/DWARF/Type.hpp"
@@ -25,20 +26,30 @@ namespace types {
/// This class represents a `DW_TAG_reference_type`
class LIEF_API Reference : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ Reference(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
+
+ Reference(const Reference&) = delete;
+ Reference& operator=(const Reference&) = delete;
+
+ Reference(Reference&&) noexcept = default;
+ Reference& operator=(Reference&&) noexcept = default;
static bool classof(const Type* type) {
return type->kind() == Type::KIND::REF;
}
/// The underlying type referenced by this ref-type.
- const Type* underlying_type() const;
+ const Type* underlying_type() const LIEF_LIFETIMEBOUND;
- const Type* operator->() const {
+ const Type* operator->() const LIEF_LIFETIMEBOUND {
return underlying_.get();
}
- const Type* operator*() const {
+ const Type* operator*() const LIEF_LIFETIMEBOUND {
return underlying_.get();
}
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Restrict.hpp b/deps/LIEF/include/LIEF/DWARF/types/Restrict.hpp
index 9ece15498c0..5aee2beb1bf 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Restrict.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Restrict.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
#ifndef LIEF_DWARF_RESTRICT_H
#define LIEF_DWARF_RESTRICT_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/DWARF/Type.hpp"
@@ -25,20 +26,30 @@ namespace types {
/// This class represents a `DW_TAG_restrict_type`
class LIEF_API Restrict : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ Restrict(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
+
+ Restrict(const Restrict&) = delete;
+ Restrict& operator=(const Restrict&) = delete;
+
+ Restrict(Restrict&&) noexcept = default;
+ Restrict& operator=(Restrict&&) noexcept = default;
static bool classof(const Type* type) {
return type->kind() == Type::KIND::RESTRICT;
}
/// The underlying type referenced by this restrict-type.
- const Type* underlying_type() const;
+ const Type* underlying_type() const LIEF_LIFETIMEBOUND;
- const Type* operator->() const {
+ const Type* operator->() const LIEF_LIFETIMEBOUND {
return underlying_.get();
}
- const Type* operator*() const {
+ const Type* operator*() const LIEF_LIFETIMEBOUND {
return underlying_.get();
}
diff --git a/deps/LIEF/include/LIEF/DWARF/types/SetTy.hpp b/deps/LIEF/include/LIEF/DWARF/types/SetTy.hpp
index 66dac384326..c0201ee80a4 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/SetTy.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/SetTy.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
#define LIEF_DWARF_SET_TYPE_H
#include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/DWARF/Type.hpp"
namespace LIEF {
@@ -25,20 +26,30 @@ namespace types {
/// This class represents a `DW_TAG_set_type`
class LIEF_API SetTy : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ SetTy(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
+
+ SetTy(const SetTy&) = delete;
+ SetTy& operator=(const SetTy&) = delete;
+
+ SetTy(SetTy&&) noexcept = default;
+ SetTy& operator=(SetTy&&) noexcept = default;
static bool classof(const Type* type) {
return type->kind() == Type::KIND::SET_TYPE;
}
/// The underlying type referenced by this set-type.
- const Type* underlying_type() const;
+ const Type* underlying_type() const LIEF_LIFETIMEBOUND;
- const Type* operator->() const {
+ const Type* operator->() const LIEF_LIFETIMEBOUND {
return underlying_.get();
}
- const Type* operator*() const {
+ const Type* operator*() const LIEF_LIFETIMEBOUND {
return underlying_.get();
}
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Shared.hpp b/deps/LIEF/include/LIEF/DWARF/types/Shared.hpp
index 97ef5cb5bac..f14b7046f2b 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Shared.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Shared.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
#ifndef LIEF_DWARF_SHARED_TYPE_H
#define LIEF_DWARF_SHARED_TYPE_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/DWARF/Type.hpp"
@@ -25,20 +26,30 @@ namespace types {
/// This class represents a `DW_TAG_shared_type`
class LIEF_API Shared : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ Shared(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
+
+ Shared(const Shared&) = delete;
+ Shared& operator=(const Shared&) = delete;
+
+ Shared(Shared&&) noexcept = default;
+ Shared& operator=(Shared&&) noexcept = default;
static bool classof(const Type* type) {
return type->kind() == Type::KIND::SHARED;
}
/// The underlying type referenced by this shared-type.
- const Type* underlying_type() const;
+ const Type* underlying_type() const LIEF_LIFETIMEBOUND;
- const Type* operator->() const {
+ const Type* operator->() const LIEF_LIFETIMEBOUND {
return underlying_.get();
}
- const Type* operator*() const {
+ const Type* operator*() const LIEF_LIFETIMEBOUND {
return underlying_.get();
}
diff --git a/deps/LIEF/include/LIEF/DWARF/types/StringTy.hpp b/deps/LIEF/include/LIEF/DWARF/types/StringTy.hpp
index 6e514bd62d3..f4ca2066bd1 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/StringTy.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/StringTy.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,7 +25,17 @@ namespace types {
/// This class represents a `DW_TAG_string_type`
class LIEF_API StringTy : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ StringTy(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
+
+ StringTy(const StringTy&) = delete;
+ StringTy& operator=(const StringTy&) = delete;
+
+ StringTy(StringTy&&) noexcept = default;
+ StringTy& operator=(StringTy&&) noexcept = default;
static bool classof(const Type* type) {
return type->kind() == Type::KIND::STRING;
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Subroutine.hpp b/deps/LIEF/include/LIEF/DWARF/types/Subroutine.hpp
index 3a50085fca5..959070f27a0 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Subroutine.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Subroutine.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
#define LIEF_DWARF_SUBROUTINE_TYPE_H
#include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/DWARF/Type.hpp"
namespace LIEF {
@@ -27,12 +28,26 @@ namespace types {
/// This class represents a `DW_TAG_subroutine_type`
class LIEF_API Subroutine : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ Subroutine(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
+
+ Subroutine(const Subroutine&) = delete;
+ Subroutine& operator=(const Subroutine&) = delete;
+
+ Subroutine(Subroutine&&) noexcept = default;
+ Subroutine& operator=(Subroutine&&) noexcept = default;
using parameters_t = std::vector<std::unique_ptr<Parameter>>;
+ /// Return the dwarf::Type associated with the **return type** of this
+ /// function
+ std::unique_ptr<Type> return_type() const LIEF_LIFETIMEBOUND;
+
/// Parameters of this subroutine
- parameters_t parameters() const;
+ parameters_t parameters() const LIEF_LIFETIMEBOUND;
static bool classof(const Type* type) {
return type->kind() == Type::KIND::SUBROUTINE;
diff --git a/deps/LIEF/include/LIEF/DWARF/types/TemplateAlias.hpp b/deps/LIEF/include/LIEF/DWARF/types/TemplateAlias.hpp
index 0217a0fb180..cb6b8e5e904 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/TemplateAlias.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/TemplateAlias.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
#define LIEF_DWARF_TEMPLATE_ALIAS_H
#include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/DWARF/Type.hpp"
namespace LIEF {
@@ -27,22 +28,33 @@ namespace types {
/// This class represents a `DW_TAG_template_alias`
class LIEF_API TemplateAlias : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ TemplateAlias(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
+
+ TemplateAlias(const TemplateAlias&) = delete;
+ TemplateAlias& operator=(const TemplateAlias&) = delete;
+
+ TemplateAlias(TemplateAlias&&) noexcept = default;
+ TemplateAlias& operator=(TemplateAlias&&) noexcept = default;
+
using parameters_t = std::vector<std::unique_ptr<Parameter>>;
/// The underlying type aliased by this type.
- const Type* underlying_type() const;
+ const Type* underlying_type() const LIEF_LIFETIMEBOUND;
- const Type* operator->() const {
+ const Type* operator->() const LIEF_LIFETIMEBOUND {
return underlying_type();
}
- const Type& operator*() const {
+ const Type& operator*() const LIEF_LIFETIMEBOUND {
return *underlying_type();
}
/// Parameters associated with the underlying template
- parameters_t parameters() const;
+ parameters_t parameters() const LIEF_LIFETIMEBOUND;
static bool classof(const Type* type) {
return type->kind() == Type::KIND::TEMPLATE_ALIAS;
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Thrown.hpp b/deps/LIEF/include/LIEF/DWARF/types/Thrown.hpp
index 2688c28c823..d02ab974909 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Thrown.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Thrown.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
#define LIEF_DWARF_THROWN_TYPE_H
#include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/DWARF/Type.hpp"
namespace LIEF {
@@ -27,16 +28,26 @@ namespace types {
/// This class represents a `DW_TAG_thrown_type`
class LIEF_API Thrown : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ Thrown(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
+
+ Thrown(const Thrown&) = delete;
+ Thrown& operator=(const Thrown&) = delete;
+
+ Thrown(Thrown&&) noexcept = default;
+ Thrown& operator=(Thrown&&) noexcept = default;
/// The underlying type being thrown
- const Type* underlying_type() const;
+ const Type* underlying_type() const LIEF_LIFETIMEBOUND;
- const Type* operator->() const {
+ const Type* operator->() const LIEF_LIFETIMEBOUND {
return underlying_type();
}
- const Type& operator*() const {
+ const Type& operator*() const LIEF_LIFETIMEBOUND {
return *underlying_type();
}
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Typedef.hpp b/deps/LIEF/include/LIEF/DWARF/types/Typedef.hpp
index 0e7f28e1cb2..710e859fca3 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Typedef.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Typedef.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
#ifndef LIEF_DWARF_TYPE_TYPEDEF_H
#define LIEF_DWARF_TYPE_TYPEDEF_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/DWARF/Type.hpp"
@@ -25,16 +26,26 @@ namespace types {
/// This class represents a `DW_TAG_typedef` type
class LIEF_API Typedef : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ Typedef(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
+
+ Typedef(const Typedef&) = delete;
+ Typedef& operator=(const Typedef&) = delete;
+
+ Typedef(Typedef&&) noexcept = default;
+ Typedef& operator=(Typedef&&) noexcept = default;
/// The type aliased by this typedef
- const Type* underlying_type() const;
+ const Type* underlying_type() const LIEF_LIFETIMEBOUND;
- const Type* operator->() const {
+ const Type* operator->() const LIEF_LIFETIMEBOUND {
return underlying_type();
}
- const Type& operator*() const {
+ const Type& operator*() const LIEF_LIFETIMEBOUND {
return *underlying_type();
}
@@ -46,12 +57,9 @@ class LIEF_API Typedef : public Type {
protected:
mutable std::unique_ptr<Type> underlying_;
-
};
}
}
}
#endif
-
-
diff --git a/deps/LIEF/include/LIEF/DWARF/types/Volatile.hpp b/deps/LIEF/include/LIEF/DWARF/types/Volatile.hpp
index e1fe40867fc..5c82102d994 100644
--- a/deps/LIEF/include/LIEF/DWARF/types/Volatile.hpp
+++ b/deps/LIEF/include/LIEF/DWARF/types/Volatile.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
#define LIEF_DWARF_VOLATILE_TYPE_H
#include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/DWARF/Type.hpp"
namespace LIEF {
@@ -27,16 +28,26 @@ namespace types {
/// This class represents a `DW_TAG_volatile_type`
class LIEF_API Volatile : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ Volatile(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
- /// This underlying type
- const Type* underlying_type() const;
+ Volatile(const Volatile&) = delete;
+ Volatile& operator=(const Volatile&) = delete;
- const Type* operator->() const {
+ Volatile(Volatile&&) noexcept = default;
+ Volatile& operator=(Volatile&&) noexcept = default;
+
+ /// The underlying type
+ const Type* underlying_type() const LIEF_LIFETIMEBOUND;
+
+ const Type* operator->() const LIEF_LIFETIMEBOUND {
return underlying_type();
}
- const Type& operator*() const {
+ const Type& operator*() const LIEF_LIFETIMEBOUND {
return *underlying_type();
}
diff --git a/deps/LIEF/include/LIEF/DebugDeclOpt.hpp b/deps/LIEF/include/LIEF/DebugDeclOpt.hpp
new file mode 100644
index 00000000000..08cd482933e
--- /dev/null
+++ b/deps/LIEF/include/LIEF/DebugDeclOpt.hpp
@@ -0,0 +1,114 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_DEBUG_DECL_OPT_H
+#define LIEF_DEBUG_DECL_OPT_H
+#include <cstdint>
+#include <memory>
+#include <string>
+#include <unordered_map>
+
+#include "LIEF/compiler_attributes.hpp"
+#include "LIEF/visibility.h"
+
+namespace LIEF {
+namespace details {
+class DeclOpt;
+}
+
+/// Configuration options for generated code from debug info.
+///
+/// This structure configures how the debug information (DWARF/PDB) translated
+/// into an AST is generated. You can use it to configure the indentation, and
+/// the information to generate when translating DWARF/PDB into C++-like
+/// definitions
+class LIEF_API DeclOpt {
+ public:
+ /// Mapping between a type name and a user-friendly aliases. (e.g.
+ /// ``std::basic_string<char,std::char_traits<char>,std::allocator<char>>`` ->
+ /// ``std::string``).
+ using type_aliases_t = std::unordered_map<std::string, std::string>;
+
+ DeclOpt();
+
+ DeclOpt(const DeclOpt& other);
+ DeclOpt& operator=(const DeclOpt& other);
+
+ DeclOpt(DeclOpt&& other) noexcept;
+ DeclOpt& operator=(DeclOpt&& other) noexcept;
+
+ ~DeclOpt();
+
+ /// The number of spaces for indentation.
+ uint32_t indentation() const;
+ DeclOpt& indentation(uint32_t value) LIEF_LIFETIMEBOUND;
+
+ /// Prefer C++ syntax over C syntax.
+ ///
+ /// If true, the output will use C++ features (e.g. `bool` keyword)
+ bool is_cpp() const;
+ DeclOpt& is_cpp(bool value) LIEF_LIFETIMEBOUND;
+
+ /// Enable extended comments and annotations.
+ ///
+ /// If true, the generated code will include comments containing low-level
+ /// details such as memory addresses, offsets, type sizes, and original
+ /// source locations.
+ bool show_extended_annotations() const;
+ DeclOpt& show_extended_annotations(bool value) LIEF_LIFETIMEBOUND;
+
+ /// Include full type definitions.
+ ///
+ /// If true, the output will contain the full definition of types (structs,
+ /// enums, unions).
+ bool include_types() const;
+ DeclOpt& include_types(bool value) LIEF_LIFETIMEBOUND;
+
+ /// Emit a function body listing its local / stack variables
+ bool include_locals() const;
+ DeclOpt& include_locals(bool value) LIEF_LIFETIMEBOUND;
+
+ /// Resolve type aliases (sugar).
+ ///
+ /// If true, typedef and type aliases are replaced by their underlying
+ /// canonical types (e.g., `uint32_t` might become `unsigned int`).
+ bool desugar() const;
+ DeclOpt& desugar(bool value) LIEF_LIFETIMEBOUND;
+
+ /// Show the relative offset of each field/attribute in structures.
+ ///
+ /// If true, every member of a structure is prefixed with its byte offset,
+ ///
+ /// ```cpp
+ /// struct Foo {
+ /// /* 0x00 */ int A;
+ /// /* 0x04 */ int B;
+ /// };
+ /// ```
+ bool show_field_offsets() const;
+ DeclOpt& show_field_offsets(bool value) LIEF_LIFETIMEBOUND;
+
+ /// Mapping of type names to user-friendly aliases
+ const type_aliases_t& type_aliases() const;
+ DeclOpt& type_aliases(type_aliases_t aliases) LIEF_LIFETIMEBOUND;
+
+ /// Register a single type alias.
+ DeclOpt& add_type_alias(std::string name, std::string alias) LIEF_LIFETIMEBOUND;
+
+ private:
+ std::unique_ptr<details::DeclOpt> impl_;
+};
+
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/DyldSharedCache.hpp b/deps/LIEF/include/LIEF/DyldSharedCache.hpp
index f87a0600b58..b97bdc1218c 100644
--- a/deps/LIEF/include/LIEF/DyldSharedCache.hpp
+++ b/deps/LIEF/include/LIEF/DyldSharedCache.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/DyldSharedCache/DyldSharedCache.hpp b/deps/LIEF/include/LIEF/DyldSharedCache/DyldSharedCache.hpp
index 26b9ca13044..b67c3164ba1 100644
--- a/deps/LIEF/include/LIEF/DyldSharedCache/DyldSharedCache.hpp
+++ b/deps/LIEF/include/LIEF/DyldSharedCache/DyldSharedCache.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
*/
#ifndef LIEF_DSC_DYLD_SHARED_CACHE_H
#define LIEF_DSC_DYLD_SHARED_CACHE_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/iterators.hpp"
#include "LIEF/DyldSharedCache/Dylib.hpp"
@@ -39,7 +40,6 @@ class DyldSharedCache;
/// This class represents a dyld shared cache file.
class LIEF_API DyldSharedCache {
public:
-
/// This enum wraps the dyld's git tags for which the structure of
/// dyld shared cache evolved
enum class VERSION : uint32_t {
@@ -63,23 +63,23 @@ class LIEF_API DyldSharedCache {
/// Platforms supported by the dyld shared cache
enum class DYLD_TARGET_PLATFORM : uint32_t {
- UNKNOWN = 0,
- MACOS = 1,
- IOS = 2,
- TVOS = 3,
- WATCHOS = 4,
- BRIDGEOS = 5,
- IOSMAC = 6,
- IOS_SIMULATOR = 7,
- TVOS_SIMULATOR = 8,
- WATCHOS_SIMULATOR = 9,
- DRIVERKIT = 10,
- VISIONOS = 11,
- VISIONOS_SIMULATOR = 12,
- FIRMWARE = 13,
- SEPOS = 14,
-
- ANY = 0xFFFFFFFF
+ UNKNOWN = 0,
+ MACOS = 1,
+ IOS = 2,
+ TVOS = 3,
+ WATCHOS = 4,
+ BRIDGEOS = 5,
+ IOSMAC = 6,
+ IOS_SIMULATOR = 7,
+ TVOS_SIMULATOR = 8,
+ WATCHOS_SIMULATOR = 9,
+ DRIVERKIT = 10,
+ VISIONOS = 11,
+ VISIONOS_SIMULATOR = 12,
+ FIRMWARE = 13,
+ SEPOS = 14,
+
+ ANY = 0xFFFFFFFF,
};
/// Architecture supported by the dyld shared cache
@@ -113,16 +113,18 @@ class LIEF_API DyldSharedCache {
DyldSharedCache(std::unique_ptr<details::DyldSharedCache> impl);
~DyldSharedCache();
- /// See the \ref load functions for the details
+ /// See the @ref load functions for the details
static std::unique_ptr<DyldSharedCache> from_path(const std::string& path,
const std::string& arch = "");
- /// See the \ref load functions for the details
- static std::unique_ptr<DyldSharedCache> from_files(const std::vector<std::string>& path);
+ /// See the @ref load functions for the details
+ static std::unique_ptr<DyldSharedCache>
+ from_files(const std::vector<std::string>& path);
/// Filename of the dyld shared file associated with this object.
///
- /// For instance: `dyld_shared_cache_arm64e, dyld_shared_cache_arm64e.62.dyldlinkedit`
+ /// For instance: `dyld_shared_cache_arm64e,
+ /// dyld_shared_cache_arm64e.62.dyldlinkedit`
std::string filename() const;
/// Version of dyld used by this cache
@@ -146,21 +148,23 @@ class LIEF_API DyldSharedCache {
/// Find the Dylib that encompasses the given virtual address.
/// It returns a nullptr if a Dylib can't be found.
- std::unique_ptr<Dylib> find_lib_from_va(uint64_t va) const;
+ std::unique_ptr<Dylib> find_lib_from_va(uint64_t va) const LIEF_LIFETIMEBOUND;
/// Find the Dylib whose Dylib::path matches the provided path.
- std::unique_ptr<Dylib> find_lib_from_path(const std::string& path) const;
+ std::unique_ptr<Dylib>
+ find_lib_from_path(const std::string& path) const LIEF_LIFETIMEBOUND;
/// Find the Dylib whose filename of Dylib::path matches the provided name.
///
/// If multiple libraries have the same name (but with a different path),
/// the **first one** matching the provided name is returned.
- std::unique_ptr<Dylib> find_lib_from_name(const std::string& name) const;
+ std::unique_ptr<Dylib>
+ find_lib_from_name(const std::string& name) const LIEF_LIFETIMEBOUND;
/// True if the subcaches are associated with this cache
bool has_subcaches() const;
- /// Return an interator over the libraries embedded in this dyld shared cache.
+ /// Return an iterator over the libraries embedded in this dyld shared cache.
///
/// This iterator implements the *random access* trait. Thus, one can use
/// iterator_range::size, iterator_range::at, iterator_range::operator[] to a
@@ -172,9 +176,9 @@ class LIEF_API DyldSharedCache {
/// std::string path = libaries[i]->path();
/// }
/// ```
- dylib_iterator libraries() const;
+ dylib_iterator libraries() const LIEF_LIFETIMEBOUND;
- /// Return an interator over the mapping information of this dyld shared cache.
+ /// Return an iterator over the mapping information of this dyld shared cache.
///
/// This iterator implements the *random access* trait. Thus, one can use
/// iterator_range::size, iterator_range::at, iterator_range::operator[] to
@@ -188,8 +192,8 @@ class LIEF_API DyldSharedCache {
/// ```
mapping_info_iterator mapping_info() const;
- /// Return an interator over the subcaches associated with this (main) dyld shared
- /// cache.
+ /// Return an iterator over the subcaches associated with this (main) dyld
+ /// shared cache.
///
/// This iterator implements the *random access* trait. Thus, one can use
/// iterator_range::size, iterator_range::at, iterator_range::operator[] to
@@ -201,37 +205,39 @@ class LIEF_API DyldSharedCache {
/// std::unique_ptr<DyldSharedCache> impl = subcaches[i]->cache();
/// }
/// ```
- subcache_iterator subcaches() const;
+ subcache_iterator subcaches() const LIEF_LIFETIMEBOUND;
/// Disassemble instructions at the provided virtual address.
/// This function returns an iterator over assembly::Instruction.
- instructions_iterator disassemble(uint64_t va) const;
+ instructions_iterator disassemble(uint64_t va) const LIEF_LIFETIMEBOUND;
/// Return the content at the specified virtual address
std::vector<uint8_t> get_content_from_va(uint64_t va, uint64_t size) const;
/// Find the sub-DyldSharedCache that wraps the given virtual address
- std::unique_ptr<DyldSharedCache> cache_for_address(uint64_t va) const;
+ std::unique_ptr<DyldSharedCache>
+ cache_for_address(uint64_t va) const LIEF_LIFETIMEBOUND;
/// Return the principal dyld shared cache in the case of multiple subcaches
- std::unique_ptr<DyldSharedCache> main_cache() const;
+ std::unique_ptr<DyldSharedCache> main_cache() const LIEF_LIFETIMEBOUND;
/// Try to find the DyldSharedCache associated with the filename given
/// in the first parameter.
- std::unique_ptr<DyldSharedCache> find_subcache(const std::string& filename) const;
+ std::unique_ptr<DyldSharedCache>
+ find_subcache(const std::string& filename) const LIEF_LIFETIMEBOUND;
/// Convert the given virtual address into an offset.
///
- /// \warning If the shared cache contains multiple subcaches,
+ /// @warning If the shared cache contains multiple subcaches,
/// this function needs to be called on the targeted subcache.
/// See cache_for_address() to find the associated subcache.
result<uint64_t> va_to_offset(uint64_t va) const;
/// Return the stream associated with this dyld shared cache
- FileStream& stream() const;
+ FileStream& stream() const LIEF_LIFETIMEBOUND;
/// Return the stream associated with this dyld shared cache
- FileStream& stream();
+ FileStream& stream() LIEF_LIFETIMEBOUND;
/// When enabled, this function allows to record and to keep in *cache*,
/// dyld shared cache information that are costly to access.
@@ -240,7 +246,8 @@ class LIEF_API DyldSharedCache {
///
/// It is **highly** recommended to enable this function when processing
/// a dyld shared cache several times or when extracting a large number of
- /// LIEF::dsc::Dylib with enhanced extraction options (e.g. Dylib::extract_opt_t::fix_branches)
+ /// LIEF::dsc::Dylib with enhanced extraction options (e.g.
+ /// Dylib::extract_opt_t::fix_branches)
///
/// One can enable caching by calling this function:
///
@@ -262,10 +269,10 @@ class LIEF_API DyldSharedCache {
};
/// Load a shared cache from a single file or from a directory specified
-/// by the \p path parameter.
+/// by the @p path parameter.
///
/// In the case where multiple architectures are
-/// available in the \p path directory, the \p arch parameter can be used to
+/// available in the @p path directory, the @p arch parameter can be used to
/// define which architecture should be prefered.
///
/// **Example:**
@@ -281,8 +288,7 @@ class LIEF_API DyldSharedCache {
/// auto cache = LIEF::dsc::load("macos-12.6/", /*arch=*/"x86_64h");
/// ```
inline std::unique_ptr<DyldSharedCache> load(const std::string& path,
- const std::string& arch = "")
-{
+ const std::string& arch = "") {
return DyldSharedCache::from_path(path, arch);
}
@@ -295,13 +301,11 @@ inline std::unique_ptr<DyldSharedCache> load(const std::string& path,
/// };
/// auto cache = LIEF::dsc::load(files);
/// ```
-inline std::unique_ptr<DyldSharedCache> load(const std::vector<std::string>& files)
-{
+inline std::unique_ptr<DyldSharedCache>
+ load(const std::vector<std::string>& files) {
return DyldSharedCache::from_files(files);
}
}
}
#endif
-
-
diff --git a/deps/LIEF/include/LIEF/DyldSharedCache/Dylib.hpp b/deps/LIEF/include/LIEF/DyldSharedCache/Dylib.hpp
index c8eefa05359..faed59117a2 100644
--- a/deps/LIEF/include/LIEF/DyldSharedCache/Dylib.hpp
+++ b/deps/LIEF/include/LIEF/DyldSharedCache/Dylib.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -40,14 +40,14 @@ class DylibIt;
class LIEF_API Dylib {
public:
/// Dylib Iterator
- class LIEF_API Iterator :
- public iterator_facade_base<Iterator, std::random_access_iterator_tag,
- std::unique_ptr<Dylib>, std::ptrdiff_t, Dylib*,
- std::unique_ptr<Dylib>>
- {
+ class LIEF_API Iterator
+ : public iterator_facade_base<Iterator, std::random_access_iterator_tag, Dylib,
+ std::ptrdiff_t, const Dylib*, const Dylib&> {
public:
using implementation = details::DylibIt;
+ Iterator();
+
Iterator(std::unique_ptr<details::DylibIt> impl);
Iterator(const Iterator&);
Iterator& operator=(const Iterator&);
@@ -69,11 +69,22 @@ class LIEF_API Dylib {
return !(LHS == RHS);
}
- std::unique_ptr<Dylib> operator*() const;
+ const Dylib& operator*() const LIEF_LIFETIMEBOUND;
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ const Dylib* operator->() const LIEF_LIFETIMEBOUND;
+
+ /// Transfer ownership of the dylib at the current position to the
+ /// caller. Returns `nullptr` if the iterator is past-the-end.
+ std::unique_ptr<Dylib> yield();
private:
+ void load() const;
+
std::unique_ptr<details::DylibIt> impl_;
+ mutable std::unique_ptr<Dylib> cached_;
};
+
public:
/// This structure is used to tweak the extraction process while calling
/// Dylib::get. These options allow to deoptimize the dylib and get an
@@ -84,29 +95,32 @@ class LIEF_API Dylib {
/// Whether the segment's offsets should be packed to avoid
/// an in-memory size while writing back the binary.
///
- /// \note This option does not have an impact on the performances
+ /// @note This option does not have an impact on the performances
bool pack = true;
/// Fix call instructions that target addresses outside the current dylib
/// virtual space.
///
- /// \warning Enabling this option can have a significant impact on the
+ /// @warning Enabling this option can have a significant impact on the
/// performances. Make sure to enable the internal cache mechanism:
- /// LIEF::dsc::enable_cache or LIEF::dsc::DyldSharedCache::enable_caching
+ /// LIEF::dsc::enable_cache or
+ /// LIEF::dsc::DyldSharedCache::enable_caching
bool fix_branches = false;
/// Fix memory accesses performed outside the dylib's virtual space
///
- /// \warning Enabling this option can have a significant impact on the
+ /// @warning Enabling this option can have a significant impact on the
/// performances. Make sure to enable the internal cache mechanism:
- /// LIEF::dsc::enable_cache or LIEF::dsc::DyldSharedCache::enable_caching
+ /// LIEF::dsc::enable_cache or
+ /// LIEF::dsc::DyldSharedCache::enable_caching
bool fix_memory = false;
/// Recover and fix relocations
///
- /// \warning Enabling this option can have a significant impact on the
+ /// @warning Enabling this option can have a significant impact on the
/// performances. Make sure to enable the internal cache mechanism:
- /// LIEF::dsc::enable_cache or LIEF::dsc::DyldSharedCache::enable_caching
+ /// LIEF::dsc::enable_cache or
+ /// LIEF::dsc::DyldSharedCache::enable_caching
bool fix_relocations = false;
/// Fix Objective-C information
@@ -147,7 +161,8 @@ class LIEF_API Dylib {
/// ```cpp
/// dyld_cache->libraries()[12]->get()->write("liblockdown.dylib");
/// ```
- std::unique_ptr<LIEF::MachO::Binary> get(const extract_opt_t& opt = extract_opt_t()) const;
+ std::unique_ptr<LIEF::MachO::Binary>
+ get(const extract_opt_t& opt = extract_opt_t()) const;
private:
std::unique_ptr<details::Dylib> impl_;
diff --git a/deps/LIEF/include/LIEF/DyldSharedCache/MappingInfo.hpp b/deps/LIEF/include/LIEF/DyldSharedCache/MappingInfo.hpp
index 22d1c0e16b2..25eace02f44 100644
--- a/deps/LIEF/include/LIEF/DyldSharedCache/MappingInfo.hpp
+++ b/deps/LIEF/include/LIEF/DyldSharedCache/MappingInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
*/
#ifndef LIEF_DSC_MAPPING_INFO_H
#define LIEF_DSC_MAPPING_INFO_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/iterators.hpp"
@@ -31,19 +32,20 @@ class MappingInfoIt;
/// This class represents a `dyld_cache_mapping_info` entry.
///
-/// It provides information about the relationshiop between on-disk shared cache
+/// It provides information about the relationship between on-disk shared cache
/// and in-memory shared cache.
class LIEF_API MappingInfo {
public:
/// MappingInfo Iterator
- class LIEF_API Iterator :
- public iterator_facade_base<Iterator, std::random_access_iterator_tag,
- std::unique_ptr<MappingInfo>, std::ptrdiff_t, MappingInfo*,
- std::unique_ptr<MappingInfo>>
- {
+ class LIEF_API Iterator
+ : public iterator_facade_base<Iterator, std::random_access_iterator_tag,
+ MappingInfo, std::ptrdiff_t, const MappingInfo*,
+ const MappingInfo&> {
public:
using implementation = details::MappingInfoIt;
+ Iterator();
+
Iterator(std::unique_ptr<details::MappingInfoIt> impl);
Iterator(const Iterator&);
Iterator& operator=(const Iterator&);
@@ -65,10 +67,20 @@ class LIEF_API MappingInfo {
return !(LHS == RHS);
}
- std::unique_ptr<MappingInfo> operator*() const;
+ const MappingInfo& operator*() const LIEF_LIFETIMEBOUND;
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ const MappingInfo* operator->() const LIEF_LIFETIMEBOUND;
+
+ /// Transfer ownership of the mapping info at the current position to
+ /// the caller. Returns `nullptr` if the iterator is past-the-end.
+ std::unique_ptr<MappingInfo> yield();
private:
+ void load() const;
+
std::unique_ptr<details::MappingInfoIt> impl_;
+ mutable std::unique_ptr<MappingInfo> cached_;
};
MappingInfo(std::unique_ptr<details::MappingInfo> impl);
diff --git a/deps/LIEF/include/LIEF/DyldSharedCache/SubCache.hpp b/deps/LIEF/include/LIEF/DyldSharedCache/SubCache.hpp
index 966e4a85037..d3cd9ba9ced 100644
--- a/deps/LIEF/include/LIEF/DyldSharedCache/SubCache.hpp
+++ b/deps/LIEF/include/LIEF/DyldSharedCache/SubCache.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
*/
#ifndef LIEF_DSC_SUBCACHE_H
#define LIEF_DSC_SUBCACHE_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/iterators.hpp"
#include "LIEF/DyldSharedCache/uuid.hpp"
@@ -34,20 +35,20 @@ class SubCacheIt;
/// This class represents a subcache in the case of large/split dyld shared
/// cache.
///
-/// It mirror (and abstracts) the original `dyld_subcache_entry` / `dyld_subcache_entry_v1`
+/// It mirrors (and abstracts) the original `dyld_subcache_entry` /
+/// `dyld_subcache_entry_v1`
class LIEF_API SubCache {
public:
/// SubCache Iterator
- class LIEF_API Iterator :
- public iterator_facade_base<Iterator, std::random_access_iterator_tag,
- std::unique_ptr<SubCache>, std::ptrdiff_t, SubCache*,
- std::unique_ptr<SubCache>
-
- >
- {
+ class LIEF_API Iterator
+ : public iterator_facade_base<Iterator, std::random_access_iterator_tag,
+ SubCache, std::ptrdiff_t, const SubCache*,
+ const SubCache&> {
public:
using implementation = details::SubCacheIt;
+ Iterator();
+
Iterator(std::unique_ptr<details::SubCacheIt> impl);
Iterator(const Iterator&);
Iterator& operator=(const Iterator&);
@@ -69,10 +70,20 @@ class LIEF_API SubCache {
return !(LHS == RHS);
}
- std::unique_ptr<SubCache> operator*() const;
+ const SubCache& operator*() const LIEF_LIFETIMEBOUND;
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ const SubCache* operator->() const LIEF_LIFETIMEBOUND;
+
+ /// Transfer ownership of the subcache at the current position to the
+ /// caller. Returns `nullptr` if the iterator is past-the-end.
+ std::unique_ptr<SubCache> yield();
private:
+ void load() const;
+
std::unique_ptr<details::SubCacheIt> impl_;
+ mutable std::unique_ptr<SubCache> cached_;
};
public:
@@ -85,14 +96,15 @@ class LIEF_API SubCache {
/// The offset of this subcache from the main cache base address
uint64_t vm_offset() const;
- /// The file name suffix of the subCache file (e.g. `.25.data`, `.03.development`)
+ /// The file name suffix of the subCache file (e.g. `.25.data`,
+ /// `.03.development`)
std::string suffix() const;
/// The associated DyldSharedCache object for this subcache
- std::unique_ptr<const DyldSharedCache> cache() const;
+ std::unique_ptr<const DyldSharedCache> cache() const LIEF_LIFETIMEBOUND;
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const SubCache& subcache);
+ friend LIEF_API std::ostream& operator<<(std::ostream& os,
+ const SubCache& subcache);
private:
std::unique_ptr<details::SubCache> impl_;
diff --git a/deps/LIEF/include/LIEF/DyldSharedCache/caching.hpp b/deps/LIEF/include/LIEF/DyldSharedCache/caching.hpp
index 81600feb8a0..e057faf294b 100644
--- a/deps/LIEF/include/LIEF/DyldSharedCache/caching.hpp
+++ b/deps/LIEF/include/LIEF/DyldSharedCache/caching.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -35,7 +35,8 @@ namespace dsc {
/// directory (in this priority):
///
/// 1. System or user cache directory
-/// - macOS: `DARWIN_USER_TEMP_DIR` / `DARWIN_USER_CACHE_DIR` + `/dyld_shared_cache`
+/// - macOS: `DARWIN_USER_TEMP_DIR` / `DARWIN_USER_CACHE_DIR` +
+/// `/dyld_shared_cache`
/// - Linux: `${XDG_CACHE_HOME}/dyld_shared_cache`
/// - Windows: `%LOCALAPPDATA%\dyld_shared_cache`
/// 2. Home directory
@@ -43,7 +44,7 @@ namespace dsc {
/// - Windows: `%USERPROFILE%\.dyld_shared_cache`
///
///
-/// \see LIEF::dsc::DyldSharedCache::enable_caching for a finer granularity
+/// @see LIEF::dsc::DyldSharedCache::enable_caching for a finer granularity
LIEF_API bool enable_cache();
/// Same behavior as enable_cache() but with a
@@ -52,4 +53,3 @@ LIEF_API bool enable_cache(const std::string& dir);
}
}
#endif
-
diff --git a/deps/LIEF/include/LIEF/DyldSharedCache/utils.hpp b/deps/LIEF/include/LIEF/DyldSharedCache/utils.hpp
index d143e018caf..adb59becf8e 100644
--- a/deps/LIEF/include/LIEF/DyldSharedCache/utils.hpp
+++ b/deps/LIEF/include/LIEF/DyldSharedCache/utils.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/DyldSharedCache/uuid.hpp b/deps/LIEF/include/LIEF/DyldSharedCache/uuid.hpp
index c32002999f9..074792e9a3c 100644
--- a/deps/LIEF/include/LIEF/DyldSharedCache/uuid.hpp
+++ b/deps/LIEF/include/LIEF/DyldSharedCache/uuid.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/ELF.hpp b/deps/LIEF/include/LIEF/ELF.hpp
index fccdea0240b..778e33d3d5c 100644
--- a/deps/LIEF/include/LIEF/ELF.hpp
+++ b/deps/LIEF/include/LIEF/ELF.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,35 +18,37 @@
#include "LIEF/config.h"
#if defined(LIEF_ELF_SUPPORT)
-#include "LIEF/ELF/hash.hpp"
-#include "LIEF/ELF/utils.hpp"
-#include "LIEF/ELF/enums.hpp"
+ #include "LIEF/ELF/hash.hpp"
+ #include "LIEF/ELF/utils.hpp"
+ #include "LIEF/ELF/enums.hpp"
-#include "LIEF/ELF/Parser.hpp"
-#include "LIEF/ELF/Header.hpp"
-#include "LIEF/ELF/Section.hpp"
-#include "LIEF/ELF/Binary.hpp"
-#include "LIEF/ELF/Segment.hpp"
-#include "LIEF/ELF/Builder.hpp"
-#include "LIEF/ELF/EnumToString.hpp"
-#include "LIEF/ELF/Relocation.hpp"
-#include "LIEF/ELF/DynamicEntryArray.hpp"
-#include "LIEF/ELF/DynamicEntryFlags.hpp"
-#include "LIEF/ELF/DynamicEntry.hpp"
-#include "LIEF/ELF/DynamicEntryLibrary.hpp"
-#include "LIEF/ELF/DynamicEntryRpath.hpp"
-#include "LIEF/ELF/DynamicEntryRunPath.hpp"
-#include "LIEF/ELF/DynamicSharedObject.hpp"
-#include "LIEF/ELF/GnuHash.hpp"
-#include "LIEF/ELF/Note.hpp"
-#include "LIEF/ELF/NoteDetails.hpp"
-#include "LIEF/ELF/Symbol.hpp"
-#include "LIEF/ELF/SymbolVersion.hpp"
-#include "LIEF/ELF/SymbolVersionAux.hpp"
-#include "LIEF/ELF/SymbolVersionAuxRequirement.hpp"
-#include "LIEF/ELF/SymbolVersionDefinition.hpp"
-#include "LIEF/ELF/SymbolVersionRequirement.hpp"
-#include "LIEF/ELF/SysvHash.hpp"
+ #include "LIEF/ELF/Parser.hpp"
+ #include "LIEF/ELF/Header.hpp"
+ #include "LIEF/ELF/Section.hpp"
+ #include "LIEF/ELF/Binary.hpp"
+ #include "LIEF/ELF/Segment.hpp"
+ #include "LIEF/ELF/Builder.hpp"
+ #include "LIEF/ELF/EnumToString.hpp"
+ #include "LIEF/ELF/Relocation.hpp"
+ #include "LIEF/ELF/DynamicEntryArray.hpp"
+ #include "LIEF/ELF/DynamicEntryFlags.hpp"
+ #include "LIEF/ELF/DynamicEntry.hpp"
+ #include "LIEF/ELF/DynamicEntryLibrary.hpp"
+ #include "LIEF/ELF/DynamicEntryRpath.hpp"
+ #include "LIEF/ELF/DynamicEntryRunPath.hpp"
+ #include "LIEF/ELF/DynamicSharedObject.hpp"
+ #include "LIEF/ELF/DynamicEntryFilter.hpp"
+ #include "LIEF/ELF/DynamicEntryAuxiliary.hpp"
+ #include "LIEF/ELF/GnuHash.hpp"
+ #include "LIEF/ELF/Note.hpp"
+ #include "LIEF/ELF/NoteDetails.hpp"
+ #include "LIEF/ELF/Symbol.hpp"
+ #include "LIEF/ELF/SymbolVersion.hpp"
+ #include "LIEF/ELF/SymbolVersionAux.hpp"
+ #include "LIEF/ELF/SymbolVersionAuxRequirement.hpp"
+ #include "LIEF/ELF/SymbolVersionDefinition.hpp"
+ #include "LIEF/ELF/SymbolVersionRequirement.hpp"
+ #include "LIEF/ELF/SysvHash.hpp"
#endif
diff --git a/deps/LIEF/include/LIEF/ELF/Binary.hpp b/deps/LIEF/include/LIEF/ELF/Binary.hpp
index 4dc44e8fbd6..30410dd84ea 100644
--- a/deps/LIEF/include/LIEF/ELF/Binary.hpp
+++ b/deps/LIEF/include/LIEF/ELF/Binary.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
#include <vector>
#include <memory>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/errors.hpp"
#include "LIEF/iterators.hpp"
@@ -64,7 +65,7 @@ class LIEF_API Binary : public LIEF::Binary {
friend class ObjectFileLayout;
public:
- using string_list_t = std::vector<std::string>;
+ using string_list_t = std::vector<std::string>;
/// Internal container for storing notes
using notes_t = std::vector<std::unique_ptr<Note>>;
@@ -76,22 +77,30 @@ class LIEF_API Binary : public LIEF::Binary {
using it_const_notes = const_ref_iterator<const notes_t&, const Note*>;
/// Internal container for storing SymbolVersionRequirement
- using symbols_version_requirement_t = std::vector<std::unique_ptr<SymbolVersionRequirement>>;
+ using symbols_version_requirement_t =
+ std::vector<std::unique_ptr<SymbolVersionRequirement>>;
/// Iterator which outputs SymbolVersionRequirement& object
- using it_symbols_version_requirement = ref_iterator<symbols_version_requirement_t&, SymbolVersionRequirement*>;
+ using it_symbols_version_requirement =
+ ref_iterator<symbols_version_requirement_t&, SymbolVersionRequirement*>;
/// Iterator which outputs const SymbolVersionRequirement& object
- using it_const_symbols_version_requirement = const_ref_iterator<const symbols_version_requirement_t&, const SymbolVersionRequirement*>;
+ using it_const_symbols_version_requirement =
+ const_ref_iterator<const symbols_version_requirement_t&,
+ const SymbolVersionRequirement*>;
/// Internal container for storing SymbolVersionDefinition
- using symbols_version_definition_t = std::vector<std::unique_ptr<SymbolVersionDefinition>>;
+ using symbols_version_definition_t =
+ std::vector<std::unique_ptr<SymbolVersionDefinition>>;
/// Iterator which outputs SymbolVersionDefinition& object
- using it_symbols_version_definition = ref_iterator<symbols_version_definition_t&, SymbolVersionDefinition*>;
+ using it_symbols_version_definition =
+ ref_iterator<symbols_version_definition_t&, SymbolVersionDefinition*>;
/// Iterator which outputs const SymbolVersionDefinition& object
- using it_const_symbols_version_definition = const_ref_iterator<const symbols_version_definition_t&, const SymbolVersionDefinition*>;
+ using it_const_symbols_version_definition =
+ const_ref_iterator<const symbols_version_definition_t&,
+ const SymbolVersionDefinition*>;
/// Internal container for storing ELF's Segment
using segments_t = std::vector<std::unique_ptr<Segment>>;
@@ -109,7 +118,8 @@ class LIEF_API Binary : public LIEF::Binary {
using it_dynamic_entries = ref_iterator<dynamic_entries_t&, DynamicEntry*>;
/// Iterator which outputs const DynamicEntry& object
- using it_const_dynamic_entries = const_ref_iterator<const dynamic_entries_t&, const DynamicEntry*>;
+ using it_const_dynamic_entries =
+ const_ref_iterator<const dynamic_entries_t&, const DynamicEntry*>;
/// Internal container for storing ELF's SymbolVersion
using symbols_version_t = std::vector<std::unique_ptr<SymbolVersion>>;
@@ -118,7 +128,8 @@ class LIEF_API Binary : public LIEF::Binary {
using it_symbols_version = ref_iterator<symbols_version_t&, SymbolVersion*>;
/// Iterator which outputs const SymbolVersion& object
- using it_const_symbols_version = const_ref_iterator<const symbols_version_t&, const SymbolVersion*>;
+ using it_const_symbols_version =
+ const_ref_iterator<const symbols_version_t&, const SymbolVersion*>;
/// Internal container for storing ELF's Relocation
using relocations_t = std::vector<std::unique_ptr<Relocation>>;
@@ -127,25 +138,31 @@ class LIEF_API Binary : public LIEF::Binary {
using it_pltgot_relocations = filter_iterator<relocations_t&, Relocation*>;
/// Iterator which outputs plt/got const Relocation& object
- using it_const_pltgot_relocations = const_filter_iterator<const relocations_t&, const Relocation*>;
+ using it_const_pltgot_relocations =
+ const_filter_iterator<const relocations_t&, const Relocation*>;
- /// Iterator which outputs dynamic Relocation& object (not related to the PLT/GOT mechanism)
+ /// Iterator which outputs dynamic Relocation& object (not related to the PLT/GOT
+ /// mechanism)
using it_dynamic_relocations = filter_iterator<relocations_t&, Relocation*>;
- /// Iterator which outputs dynamic const Relocation& object (not related to the PLT/GOT mechanism)
- using it_const_dynamic_relocations = const_filter_iterator<const relocations_t&, const Relocation*>;
+ /// Iterator which outputs dynamic const Relocation& object (not related to the
+ /// PLT/GOT mechanism)
+ using it_const_dynamic_relocations =
+ const_filter_iterator<const relocations_t&, const Relocation*>;
/// Iterator which outputs Relocation& object found in object files (.o)
using it_object_relocations = filter_iterator<relocations_t&, Relocation*>;
/// Iterator which outputs const Relocation& object found in object files (.o)
- using it_const_object_relocations = const_filter_iterator<const relocations_t&, const Relocation*>;
+ using it_const_object_relocations =
+ const_filter_iterator<const relocations_t&, const Relocation*>;
/// Iterator which outputs Relocation& object
using it_relocations = ref_iterator<relocations_t&, Relocation*>;
/// Iterator which outputs const Relocation& object
- using it_const_relocations = const_ref_iterator<const relocations_t&, const Relocation*>;
+ using it_const_relocations =
+ const_ref_iterator<const relocations_t&, const Relocation*>;
/// Internal container for storing ELF's Symbol
using symbols_t = std::vector<std::unique_ptr<Symbol>>;
@@ -154,13 +171,15 @@ class LIEF_API Binary : public LIEF::Binary {
using it_dynamic_symbols = ref_iterator<symbols_t&, Symbol*>;
/// Iterator which outputs the Dynamic const Symbol& object
- using it_const_dynamic_symbols = const_ref_iterator<const symbols_t&, const Symbol*>;
+ using it_const_dynamic_symbols =
+ const_ref_iterator<const symbols_t&, const Symbol*>;
/// Iterator which outputs the static/debug Symbol& object
using it_symtab_symbols = ref_iterator<symbols_t&, Symbol*>;
/// Iterator which outputs the static/debug const Symbol& object
- using it_const_symtab_symbols = const_ref_iterator<const symbols_t&, const Symbol*>;
+ using it_const_symtab_symbols =
+ const_ref_iterator<const symbols_t&, const Symbol*>;
/// Iterator which outputs static and dynamic Symbol& object
using it_symbols = ref_iterator<std::vector<Symbol*>>;
@@ -243,7 +262,7 @@ class LIEF_API Binary : public LIEF::Binary {
};
public:
- Binary& operator=(const Binary& ) = delete;
+ Binary& operator=(const Binary&) = delete;
Binary(const Binary& copy) = delete;
/// Return binary's class (ELF32 or ELF64)
@@ -252,11 +271,11 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return @link ELF::Header Elf header @endlink
- Header& header() {
+ Header& header() LIEF_LIFETIMEBOUND {
return header_;
}
- const Header& header() const {
+ const Header& header() const LIEF_LIFETIMEBOUND {
return header_;
}
@@ -272,11 +291,11 @@ class LIEF_API Binary : public LIEF::Binary {
uint64_t next_virtual_address() const;
/// Return an iterator over the binary's sections
- it_sections sections() {
+ it_sections sections() LIEF_LIFETIMEBOUND {
return sections_;
}
- it_const_sections sections() const {
+ it_const_sections sections() const LIEF_LIFETIMEBOUND {
return sections_;
}
@@ -286,28 +305,28 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return binary's segments
- it_segments segments() {
+ it_segments segments() LIEF_LIFETIMEBOUND {
return segments_;
}
- it_const_segments segments() const {
+ it_const_segments segments() const LIEF_LIFETIMEBOUND {
return segments_;
}
/// Return binary's dynamic entries
- it_dynamic_entries dynamic_entries() {
+ it_dynamic_entries dynamic_entries() LIEF_LIFETIMEBOUND {
return dynamic_entries_;
}
- it_const_dynamic_entries dynamic_entries() const {
+ it_const_dynamic_entries dynamic_entries() const LIEF_LIFETIMEBOUND {
return dynamic_entries_;
}
/// Add the given dynamic entry and return the new entry
- DynamicEntry& add(const DynamicEntry& entry);
+ DynamicEntry& add(const DynamicEntry& entry) LIEF_LIFETIMEBOUND;
/// Add the given note and return the created entry
- Note& add(const Note& note);
+ Note& add(const Note& note) LIEF_LIFETIMEBOUND;
/// Remove the given dynamic entry
void remove(const DynamicEntry& entry);
@@ -328,131 +347,143 @@ class LIEF_API Binary : public LIEF::Binary {
/// Remove **all** notes with the given type
void remove(Note::TYPE type);
- /// Remove the given segment. If \p clear is set, the original content of the
+ /// Remove the given segment. If @p clear is set, the original content of the
/// segment will be filled with zeros before removal.
void remove(const Segment& seg, bool clear = false);
/// Remove all segments associated with the given type.
///
- /// If \p clear is set, the original content of the segment will be filled
+ /// If @p clear is set, the original content of the segment will be filled
/// with zeros before removal.
void remove(Segment::TYPE type, bool clear = false);
/// Return an iterator over the binary's dynamic symbols
/// The dynamic symbols are those located in the ``.dynsym`` section
- it_dynamic_symbols dynamic_symbols() {
+ it_dynamic_symbols dynamic_symbols() LIEF_LIFETIMEBOUND {
return dynamic_symbols_;
}
- it_const_dynamic_symbols dynamic_symbols() const {
+ it_const_dynamic_symbols dynamic_symbols() const LIEF_LIFETIMEBOUND {
return dynamic_symbols_;
}
/// Return symbols which are exported by the binary
- it_exported_symbols exported_symbols();
- it_const_exported_symbols exported_symbols() const;
+ it_exported_symbols exported_symbols() LIEF_LIFETIMEBOUND;
+ it_const_exported_symbols exported_symbols() const LIEF_LIFETIMEBOUND;
/// Return symbols which are imported by the binary
- it_imported_symbols imported_symbols();
- it_const_imported_symbols imported_symbols() const;
+ it_imported_symbols imported_symbols() LIEF_LIFETIMEBOUND;
+ it_const_imported_symbols imported_symbols() const LIEF_LIFETIMEBOUND;
/// Return the debug symbols from the `.symtab` section.
- it_symtab_symbols symtab_symbols() {
+ it_symtab_symbols symtab_symbols() LIEF_LIFETIMEBOUND {
return symtab_symbols_;
}
- it_const_symtab_symbols symtab_symbols() const {
+ it_const_symtab_symbols symtab_symbols() const LIEF_LIFETIMEBOUND {
return symtab_symbols_;
}
/// Return the symbol versions
- it_symbols_version symbols_version() {
+ it_symbols_version symbols_version() LIEF_LIFETIMEBOUND {
return symbol_version_table_;
}
- it_const_symbols_version symbols_version() const {
+ it_const_symbols_version symbols_version() const LIEF_LIFETIMEBOUND {
return symbol_version_table_;
}
/// Return symbols version definition
- it_symbols_version_definition symbols_version_definition() {
+ it_symbols_version_definition symbols_version_definition() LIEF_LIFETIMEBOUND {
return symbol_version_definition_;
}
- it_const_symbols_version_definition symbols_version_definition() const {
+ it_const_symbols_version_definition
+ symbols_version_definition() const LIEF_LIFETIMEBOUND {
return symbol_version_definition_;
}
/// Return Symbol version requirement
- it_symbols_version_requirement symbols_version_requirement() {
+ it_symbols_version_requirement symbols_version_requirement() LIEF_LIFETIMEBOUND {
return symbol_version_requirements_;
}
- it_const_symbols_version_requirement symbols_version_requirement() const {
+ it_const_symbols_version_requirement
+ symbols_version_requirement() const LIEF_LIFETIMEBOUND {
return symbol_version_requirements_;
}
/// Return dynamic relocations
- it_dynamic_relocations dynamic_relocations();
- it_const_dynamic_relocations dynamic_relocations() const;
+ it_dynamic_relocations dynamic_relocations() LIEF_LIFETIMEBOUND;
+ it_const_dynamic_relocations dynamic_relocations() const LIEF_LIFETIMEBOUND;
/// Add a new *dynamic* relocation.
///
/// We consider a dynamic relocation as a relocation which is not plt-related
///
/// See: add_pltgot_relocation
- Relocation& add_dynamic_relocation(const Relocation& relocation);
+ Relocation&
+ add_dynamic_relocation(const Relocation& relocation) LIEF_LIFETIMEBOUND;
/// Add a .plt.got relocation. This kind of relocation is usually
/// associated with a PLT stub that aims at resolving the underlying symbol
///
/// See also: add_dynamic_relocation
- Relocation& add_pltgot_relocation(const Relocation& relocation);
+ Relocation&
+ add_pltgot_relocation(const Relocation& relocation) LIEF_LIFETIMEBOUND;
/// Add relocation for object file (.o)
///
/// The first parameter is the section to add while the second parameter
/// is the LIEF::ELF::Section associated with the relocation.
///
- /// If there is an error, this function returns a ``nullptr``. Otherwise, it returns
- /// the relocation added.
- Relocation* add_object_relocation(const Relocation& relocation, const Section& section);
+ /// If there is an error, this function returns a ``nullptr``. Otherwise, it
+ /// returns the relocation added.
+ Relocation* add_object_relocation(const Relocation& relocation,
+ const Section& section) LIEF_LIFETIMEBOUND;
/// Return `plt.got` relocations
- it_pltgot_relocations pltgot_relocations();
- it_const_pltgot_relocations pltgot_relocations() const;
+ it_pltgot_relocations pltgot_relocations() LIEF_LIFETIMEBOUND;
+ it_const_pltgot_relocations pltgot_relocations() const LIEF_LIFETIMEBOUND;
/// Return relocations used in an object file (``*.o``)
- it_object_relocations object_relocations();
- it_const_object_relocations object_relocations() const;
+ it_object_relocations object_relocations() LIEF_LIFETIMEBOUND;
+ it_const_object_relocations object_relocations() const LIEF_LIFETIMEBOUND;
/// Return **all** relocations present in the binary
- it_relocations relocations() {
+ it_relocations relocations() LIEF_LIFETIMEBOUND {
return relocations_;
}
- it_const_relocations relocations() const {
+ it_const_relocations relocations() const LIEF_LIFETIMEBOUND {
return relocations_;
}
/// Return relocation associated with the given address.
/// It returns a ``nullptr`` if it is not found
- const Relocation* get_relocation(uint64_t address) const;
- Relocation* get_relocation(uint64_t address) {
- return const_cast<Relocation*>(static_cast<const Binary*>(this)->get_relocation(address));
+ const Relocation* get_relocation(uint64_t address) const LIEF_LIFETIMEBOUND;
+ Relocation* get_relocation(uint64_t address) LIEF_LIFETIMEBOUND {
+ return const_cast<Relocation*>(
+ static_cast<const Binary*>(this)->get_relocation(address)
+ );
}
/// Return relocation associated with the given Symbol
/// It returns a ``nullptr`` if it is not found
- const Relocation* get_relocation(const Symbol& symbol) const;
- Relocation* get_relocation(const Symbol& symbol) {
- return const_cast<Relocation*>(static_cast<const Binary*>(this)->get_relocation(symbol));
+ const Relocation* get_relocation(const Symbol& symbol) const LIEF_LIFETIMEBOUND;
+ Relocation* get_relocation(const Symbol& symbol) LIEF_LIFETIMEBOUND {
+ return const_cast<Relocation*>(
+ static_cast<const Binary*>(this)->get_relocation(symbol)
+ );
}
/// Return relocation associated with the given Symbol name
/// It returns a ``nullptr`` if it is not found
- const Relocation* get_relocation(const std::string& symbol_name) const;
- Relocation* get_relocation(const std::string& symbol_name) {
- return const_cast<Relocation*>(static_cast<const Binary*>(this)->get_relocation(symbol_name));
+ const Relocation*
+ get_relocation(const std::string& symbol_name) const LIEF_LIFETIMEBOUND;
+ Relocation* get_relocation(const std::string& symbol_name) LIEF_LIFETIMEBOUND {
+ return const_cast<Relocation*>(
+ static_cast<const Binary*>(this)->get_relocation(symbol_name)
+ );
}
/// ``true`` if GNU hash is used
@@ -464,7 +495,7 @@ class LIEF_API Binary : public LIEF::Binary {
/// Return the GnuHash object in **readonly**
/// If the ELF binary does not use the GNU hash table, return a nullptr
- const GnuHash* gnu_hash() const {
+ const GnuHash* gnu_hash() const LIEF_LIFETIMEBOUND {
return use_gnu_hash() ? gnu_hash_.get() : nullptr;
}
@@ -477,7 +508,7 @@ class LIEF_API Binary : public LIEF::Binary {
/// Return the SysvHash object as a **read-only** object
/// If the ELF binary does not use the legacy sysv hash table, return a nullptr
- const SysvHash* sysv_hash() const {
+ const SysvHash* sysv_hash() const LIEF_LIFETIMEBOUND {
return use_sysv_hash() ? sysv_hash_.get() : nullptr;
}
@@ -494,28 +525,30 @@ class LIEF_API Binary : public LIEF::Binary {
/// Return Section with the given `name`. If the section can't be
/// found, it returns a nullptr
- Section* get_section(const std::string& name) {
- return const_cast<Section*>(static_cast<const Binary*>(this)->get_section(name));
+ Section* get_section(const std::string& name) LIEF_LIFETIMEBOUND {
+ return const_cast<Section*>(
+ static_cast<const Binary*>(this)->get_section(name)
+ );
}
- const Section* get_section(const std::string& name) const;
+ const Section* get_section(const std::string& name) const LIEF_LIFETIMEBOUND;
/// Return the `.text` section. If the section
/// can't be found, it returns a nullptr
- Section* text_section() {
+ Section* text_section() LIEF_LIFETIMEBOUND {
return get_section(".text");
}
/// Return the `.dynamic` section. If the section
/// can't be found, it returns a nullptr
- Section* dynamic_section();
+ Section* dynamic_section() LIEF_LIFETIMEBOUND;
/// Return the hash section. If the section
/// can't be found, it returns a nullptr
- Section* hash_section();
+ Section* hash_section() LIEF_LIFETIMEBOUND;
/// Return section which holds the symtab symbols. If the section
/// can't be found, it returns a nullptr
- Section* symtab_symbols_section();
+ Section* symtab_symbols_section() LIEF_LIFETIMEBOUND;
/// Return program image base. For instance ``0x40000``
///
@@ -524,7 +557,7 @@ class LIEF_API Binary : public LIEF::Binary {
uint64_t imagebase() const override;
/// Return the size of the mapped binary
- uint64_t virtual_size() const;
+ uint64_t virtual_size() const override;
/// Check if the binary uses a loader (also named linker or interpreter)
/// @see interpreter
@@ -534,7 +567,7 @@ class LIEF_API Binary : public LIEF::Binary {
/// If the binary does not have an interpreter, it returns an empty string
///
/// @see has_interpreter
- const std::string& interpreter() const {
+ const std::string& interpreter() const LIEF_LIFETIMEBOUND {
return interpreter_;
}
@@ -544,31 +577,36 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return an iterator on both static and dynamic symbols
- it_symbols symbols() {
+ it_symbols symbols() LIEF_LIFETIMEBOUND {
return symtab_dyn_symbols();
}
- it_const_symbols symbols() const {
+ it_const_symbols symbols() const LIEF_LIFETIMEBOUND {
return symtab_dyn_symbols();
}
/// Export the given symbol and create it if it doesn't exist
- Symbol& export_symbol(const Symbol& symbol);
+ Symbol& export_symbol(const Symbol& symbol) LIEF_LIFETIMEBOUND;
/// Export the symbol with the given name and create it if it doesn't exist
- Symbol& export_symbol(const std::string& symbol_name, uint64_t value = 0);
+ Symbol& export_symbol(const std::string& symbol_name,
+ uint64_t value = 0) LIEF_LIFETIMEBOUND;
- /// Check if the symbol with the given ``name`` exists in the dynamic symbols table
+ /// Check if the symbol with the given ``name`` exists in the dynamic symbols
+ /// table
bool has_dynamic_symbol(const std::string& name) const {
return get_dynamic_symbol(name) != nullptr;
}
/// Get the dynamic symbol from the given name.
/// Return a nullptr if it can't be found
- const Symbol* get_dynamic_symbol(const std::string& name) const;
+ const Symbol*
+ get_dynamic_symbol(const std::string& name) const LIEF_LIFETIMEBOUND;
- Symbol* get_dynamic_symbol(const std::string& name) {
- return const_cast<Symbol*>(static_cast<const Binary*>(this)->get_dynamic_symbol(name));
+ Symbol* get_dynamic_symbol(const std::string& name) LIEF_LIFETIMEBOUND {
+ return const_cast<Symbol*>(
+ static_cast<const Binary*>(this)->get_dynamic_symbol(name)
+ );
}
/// Check if the symbol with the given ``name`` exists in the symtab symbol table
@@ -578,15 +616,18 @@ class LIEF_API Binary : public LIEF::Binary {
/// Get the symtab symbol from the given name
/// Return a nullptr if it can't be found
- const Symbol* get_symtab_symbol(const std::string& name) const;
+ const Symbol*
+ get_symtab_symbol(const std::string& name) const LIEF_LIFETIMEBOUND;
- Symbol* get_symtab_symbol(const std::string& name) {
- return const_cast<Symbol*>(static_cast<const Binary*>(this)->get_symtab_symbol(name));
+ Symbol* get_symtab_symbol(const std::string& name) LIEF_LIFETIMEBOUND {
+ return const_cast<Symbol*>(
+ static_cast<const Binary*>(this)->get_symtab_symbol(name)
+ );
}
/// Return list of the strings used by the ELF binary.
///
- /// Basically, this function looks for string in the ``.roadata`` section
+ /// Basically, this function looks for strings in the ``.rodata`` section
string_list_t strings(size_t min_size = 5) const;
/// Remove symbols with the given name in both:
@@ -596,7 +637,7 @@ class LIEF_API Binary : public LIEF::Binary {
/// @see remove_symtab_symbol, remove_dynamic_symbol
void remove_symbol(const std::string& name);
- /// Remove symtabl symbols with the given name
+ /// Remove symtab symbols with the given name
void remove_symtab_symbol(const std::string& name);
void remove_symtab_symbol(Symbol* symbol);
@@ -611,18 +652,21 @@ class LIEF_API Binary : public LIEF::Binary {
void remove_dynamic_symbol(Symbol* symbol);
/// Return the address of the given function name
- result<uint64_t> get_function_address(const std::string& func_name) const override;
+ result<uint64_t>
+ get_function_address(const std::string& func_name) const override;
/// Return the address of the given function name
//
/// @param[in] func_name The function's name target
/// @param[in] demangled Use the demangled name
- result<uint64_t> get_function_address(const std::string& func_name, bool demangled) const;
+ result<uint64_t> get_function_address(const std::string& func_name,
+ bool demangled) const;
/// Add a new section in the binary
///
/// @param[in] section The section object to insert
- /// @param[in] loaded Boolean value to indicate that section's data must be loaded
+ /// @param[in] loaded Boolean value to indicate that section's data must be
+ /// loaded
/// by a PT_LOAD segment
/// @param[in] pos Position where to insert the data in the sections table
///
@@ -630,34 +674,41 @@ class LIEF_API Binary : public LIEF::Binary {
///
/// This function requires a well-formed ELF binary
Section* add(const Section& section, bool loaded = true,
- SEC_INSERT_POS pos = SEC_INSERT_POS::AUTO);
+ SEC_INSERT_POS pos = SEC_INSERT_POS::AUTO) LIEF_LIFETIMEBOUND;
- Section* extend(const Section& section, uint64_t size);
+ Section* extend(const Section& section, uint64_t size) LIEF_LIFETIMEBOUND;
/// Add a symtab symbol
- Symbol& add_symtab_symbol(const Symbol& symbol);
+ Symbol& add_symtab_symbol(const Symbol& symbol) LIEF_LIFETIMEBOUND;
/// Add a dynamic symbol with the associated SymbolVersion
- Symbol& add_dynamic_symbol(const Symbol& symbol, const SymbolVersion* version = nullptr);
+ Symbol& add_dynamic_symbol(const Symbol& symbol, const SymbolVersion* version =
+ nullptr) LIEF_LIFETIMEBOUND;
/// Create a symbol for the function at the given address and export it
- Symbol& add_exported_function(uint64_t address, const std::string& name = "");
+ Symbol& add_exported_function(uint64_t address,
+ const std::string& name = "") LIEF_LIFETIMEBOUND;
/// Add a library as dependency
- DynamicEntryLibrary& add_library(const std::string& library_name);
+ DynamicEntryLibrary&
+ add_library(const std::string& library_name) LIEF_LIFETIMEBOUND;
/// Remove the given library from the dependencies
void remove_library(const std::string& library_name);
/// Get the library object (DynamicEntryLibrary) from the given name
/// If the library can't be found, it returns a nullptr.
- DynamicEntryLibrary* get_library(const std::string& library_name) {
- return const_cast<DynamicEntryLibrary*>(static_cast<const Binary*>(this)->get_library(library_name));
+ DynamicEntryLibrary*
+ get_library(const std::string& library_name) LIEF_LIFETIMEBOUND {
+ return const_cast<DynamicEntryLibrary*>(
+ static_cast<const Binary*>(this)->get_library(library_name)
+ );
}
/// Get the library object (DynamicEntryLibrary) from the given name
/// If the library can't be found, it returns a nullptr.
- const DynamicEntryLibrary* get_library(const std::string& library_name) const;
+ const DynamicEntryLibrary*
+ get_library(const std::string& library_name) const LIEF_LIFETIMEBOUND;
/// Check if the given library name exists in the current binary
bool has_library(const std::string& name) const {
@@ -671,23 +722,27 @@ class LIEF_API Binary : public LIEF::Binary {
/// @return The segment added. `Virtual address` and `File Offset` might change.
///
/// This function requires a well-formed ELF binary
- Segment* add(const Segment& segment, uint64_t base = 0);
+ Segment* add(const Segment& segment, uint64_t base = 0) LIEF_LIFETIMEBOUND;
- /// Replace the segment given in 2nd parameter with the segment given in the first one and return the updated segment.
+ /// Replace the segment given in 2nd parameter with the segment given in the
+ /// first one and return the updated segment.
///
/// @warning The ``original_segment`` is no longer valid after this function
- Segment* replace(const Segment& new_segment, const Segment& original_segment, uint64_t base = 0);
+ Segment* replace(const Segment& new_segment, const Segment& original_segment,
+ uint64_t base = 0) LIEF_LIFETIMEBOUND;
- Segment* extend(const Segment& segment, uint64_t size);
+ Segment* extend(const Segment& segment, uint64_t size) LIEF_LIFETIMEBOUND;
/// Patch the content at virtual address @p address with @p patch_value
///
/// @param[in] address Address to patch
/// @param[in] patch_value Patch to apply
- /// @param[in] addr_type Specify if the address should be used as an absolute virtual address or an RVA
+ /// @param[in] addr_type Specify if the address should be used as an absolute
+ /// virtual address or an RVA
void patch_address(uint64_t address, const std::vector<uint8_t>& patch_value,
- LIEF::Binary::VA_TYPES addr_type = LIEF::Binary::VA_TYPES::AUTO) override;
+ LIEF::Binary::VA_TYPES addr_type =
+ LIEF::Binary::VA_TYPES::AUTO) override;
/// Patch the address with the given value
@@ -695,10 +750,12 @@ class LIEF_API Binary : public LIEF::Binary {
/// @param[in] address Address to patch
/// @param[in] patch_value Patch to apply
/// @param[in] size Size of the value in **bytes** (1, 2, ... 8)
- /// @param[in] addr_type Specify if the address should be used as an absolute virtual address or an RVA
- void patch_address(uint64_t address, uint64_t patch_value,
- size_t size = sizeof(uint64_t),
- LIEF::Binary::VA_TYPES addr_type = LIEF::Binary::VA_TYPES::AUTO) override;
+ /// @param[in] addr_type Specify if the address should be used as an
+ /// absolute virtual address or an RVA
+ void patch_address(
+ uint64_t address, uint64_t patch_value, size_t size = sizeof(uint64_t),
+ LIEF::Binary::VA_TYPES addr_type = LIEF::Binary::VA_TYPES::AUTO
+ ) override;
/// Patch the imported symbol with the ``address``
///
@@ -732,7 +789,8 @@ class LIEF_API Binary : public LIEF::Binary {
return write(filename, Builder::config_t{});
}
- /// Reconstruct the binary object with the given config and write it in `filename`
+ /// Reconstruct the binary object with the given config and write it in
+ /// `filename`
///
/// This function assumes that the layout of the current ELF binary is correct
/// (i.e. the binary can run).
@@ -751,7 +809,8 @@ class LIEF_API Binary : public LIEF::Binary {
return write(os, Builder::config_t{});
}
- /// Reconstruct the binary object with the given config and write it in `os` stream
+ /// Reconstruct the binary object with the given config and write it in `os`
+ /// stream
///
/// @param os Output stream for the written ELF binary
/// @param config Builder configuration
@@ -766,8 +825,10 @@ class LIEF_API Binary : public LIEF::Binary {
/// Convert the given offset into a virtual address.
///
/// @param[in] offset The offset to convert.
- /// @param[in] slide If not 0, it will replace the default base address (if any)
- result<uint64_t> offset_to_virtual_address(uint64_t offset, uint64_t slide = 0) const override;
+ /// @param[in] slide If not 0, it will replace the default base address (if
+ /// any)
+ result<uint64_t> offset_to_virtual_address(uint64_t offset,
+ uint64_t slide = 0) const override;
/// Check if the binary has been compiled with `-fpie -pie` flags
///
@@ -793,10 +854,16 @@ class LIEF_API Binary : public LIEF::Binary {
/// if a section can't be found
///
/// If @p skip_nobits is set (which is the case by default), this function won't
- /// consider section for which the type is ``SHT_NOBITS`` (like ``.bss, .tbss, ...``)
- const Section* section_from_offset(uint64_t offset, bool skip_nobits = true) const;
- Section* section_from_offset(uint64_t offset, bool skip_nobits = true) {
- return const_cast<Section*>(static_cast<const Binary*>(this)->section_from_offset(offset, skip_nobits));
+ /// consider section for which the type is ``SHT_NOBITS`` (like ``.bss, .tbss,
+ /// ...``)
+ const Section*
+ section_from_offset(uint64_t offset,
+ bool skip_nobits = true) const LIEF_LIFETIMEBOUND;
+ Section* section_from_offset(uint64_t offset,
+ bool skip_nobits = true) LIEF_LIFETIMEBOUND {
+ return const_cast<Section*>(
+ static_cast<const Binary*>(this)->section_from_offset(offset, skip_nobits)
+ );
}
/// Return the ELF::Section from the given @p address. Return a nullptr
@@ -804,56 +871,76 @@ class LIEF_API Binary : public LIEF::Binary {
///
/// If @p skip_nobits is set (which is the case by default), this function won't
/// consider section for which type is ``SHT_NOBITS`` (like ``.bss, .tbss, ...``)
- const Section* section_from_virtual_address(uint64_t address, bool skip_nobits = true) const;
- Section* section_from_virtual_address(uint64_t address, bool skip_nobits = true) {
- return const_cast<Section*>(static_cast<const Binary*>(this)->section_from_virtual_address(address, skip_nobits));
+ const Section* section_from_virtual_address(
+ uint64_t address, bool skip_nobits = true
+ ) const LIEF_LIFETIMEBOUND;
+
+ Section*
+ section_from_virtual_address(uint64_t address,
+ bool skip_nobits = true) LIEF_LIFETIMEBOUND {
+ return const_cast<Section*>(
+ static_cast<const Binary*>(this)->section_from_virtual_address(address,
+ skip_nobits)
+ );
}
/// Return the ELF::Segment from the given @p address. Return a nullptr
/// if a segment can't be found.
- const Segment* segment_from_virtual_address(uint64_t address) const;
- Segment* segment_from_virtual_address(uint64_t address) {
- return const_cast<Segment*>(static_cast<const Binary*>(this)->segment_from_virtual_address(address));
+ const Segment*
+ segment_from_virtual_address(uint64_t address) const LIEF_LIFETIMEBOUND;
+
+ Segment* segment_from_virtual_address(uint64_t address) LIEF_LIFETIMEBOUND {
+ return const_cast<Segment*>(
+ static_cast<const Binary*>(this)->segment_from_virtual_address(address)
+ );
}
- const Segment* segment_from_virtual_address(Segment::TYPE type, uint64_t address) const;
- Segment* segment_from_virtual_address(Segment::TYPE type, uint64_t address) {
- return const_cast<Segment*>(static_cast<const Binary*>(this)->segment_from_virtual_address(type, address));
+ const Segment*
+ segment_from_virtual_address(Segment::TYPE type,
+ uint64_t address) const LIEF_LIFETIMEBOUND;
+ Segment* segment_from_virtual_address(Segment::TYPE type,
+ uint64_t address) LIEF_LIFETIMEBOUND {
+ return const_cast<Segment*>(
+ static_cast<const Binary*>(this)->segment_from_virtual_address(type,
+ address)
+ );
}
/// Return the ELF::Segment from the @p offset. Return a nullptr
/// if a segment can't be found.
- const Segment* segment_from_offset(uint64_t offset) const;
- Segment* segment_from_offset(uint64_t offset) {
- return const_cast<Segment*>(static_cast<const Binary*>(this)->segment_from_offset(offset));
+ const Segment* segment_from_offset(uint64_t offset) const LIEF_LIFETIMEBOUND;
+ Segment* segment_from_offset(uint64_t offset) LIEF_LIFETIMEBOUND {
+ return const_cast<Segment*>(
+ static_cast<const Binary*>(this)->segment_from_offset(offset)
+ );
}
/// Return the **first** ELF::DynamicEntry associated with the given tag
/// If the tag can't be found, it returns a nullptr
- const DynamicEntry* get(DynamicEntry::TAG tag) const;
- DynamicEntry* get(DynamicEntry::TAG tag) {
+ const DynamicEntry* get(DynamicEntry::TAG tag) const LIEF_LIFETIMEBOUND;
+ DynamicEntry* get(DynamicEntry::TAG tag) LIEF_LIFETIMEBOUND {
return const_cast<DynamicEntry*>(static_cast<const Binary*>(this)->get(tag));
}
/// Return the **first** ELF::Segment associated with the given type.
/// If a segment can't be found, it returns a nullptr.
- const Segment* get(Segment::TYPE type) const;
- Segment* get(Segment::TYPE type) {
+ const Segment* get(Segment::TYPE type) const LIEF_LIFETIMEBOUND;
+ Segment* get(Segment::TYPE type) LIEF_LIFETIMEBOUND {
return const_cast<Segment*>(static_cast<const Binary*>(this)->get(type));
}
/// Return the **first** ELF::Note associated with the given type
/// If a note can't be found, it returns a nullptr.
- const Note* get(Note::TYPE type) const;
- Note* get(Note::TYPE type) {
+ const Note* get(Note::TYPE type) const LIEF_LIFETIMEBOUND;
+ Note* get(Note::TYPE type) LIEF_LIFETIMEBOUND {
return const_cast<Note*>(static_cast<const Binary*>(this)->get(type));
}
/// Return the **first** ELF::Section associated with the given type
/// If a section can't be found, it returns a nullptr.
- const Section* get(Section::TYPE type) const;
- Section* get(Section::TYPE type) {
+ const Section* get(Section::TYPE type) const LIEF_LIFETIMEBOUND;
+ Section* get(Section::TYPE type) LIEF_LIFETIMEBOUND {
return const_cast<Section*>(static_cast<const Binary*>(this)->get(type));
}
@@ -878,8 +965,10 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return the content located at virtual address
- span<const uint8_t> get_content_from_virtual_address(uint64_t virtual_address, uint64_t size,
- Binary::VA_TYPES addr_type = Binary::VA_TYPES::AUTO) const override;
+ span<const uint8_t> get_content_from_virtual_address(
+ uint64_t virtual_address, uint64_t size,
+ Binary::VA_TYPES addr_type = Binary::VA_TYPES::AUTO
+ ) const LIEF_LIFETIMEBOUND override;
/// Method associated with the visitor pattern.
void accept(LIEF::Visitor& visitor) const override;
@@ -887,13 +976,15 @@ class LIEF_API Binary : public LIEF::Binary {
/// Apply the given permutation on the dynamic symbols table
void permute_dynamic_symbols(const std::vector<size_t>& permutation);
- /// List of binary constructors (typically, the functions located in the ``.init_array``)
+ /// List of binary constructors (typically, the functions located in the
+ /// ``.init_array``)
LIEF::Binary::functions_t ctor_functions() const override;
- /// List of the binary destructors (typically, the functions located in the ``.fini_array``)
+ /// List of the binary destructors (typically, the functions located in the
+ /// ``.fini_array``)
LIEF::Binary::functions_t dtor_functions() const;
- /// List of the functions found the in the binary.
+ /// List of the functions found in the binary.
LIEF::Binary::functions_t functions() const;
/// ``true`` if the binary embeds notes
@@ -902,16 +993,16 @@ class LIEF_API Binary : public LIEF::Binary {
/// Return an iterator over the ELF's LIEF::ELF::Note
///
/// @see has_note
- it_const_notes notes() const {
+ it_const_notes notes() const LIEF_LIFETIMEBOUND {
return notes_;
}
- it_notes notes() {
+ it_notes notes() LIEF_LIFETIMEBOUND {
return notes_;
}
- /// Return the last offset used by the ELF binary according to both: the sections table
- /// and the segments table
+ /// Return the last offset used by the ELF binary according to both: the sections
+ /// table and the segments table
uint64_t eof_offset() const;
/// True if data are present at the end of the binary
@@ -920,7 +1011,7 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Overlay data (if any)
- span<const uint8_t> overlay() const {
+ span<const uint8_t> overlay() const LIEF_LIFETIMEBOUND {
return overlay_;
}
@@ -949,10 +1040,9 @@ class LIEF_API Binary : public LIEF::Binary {
/// Find the index of the section given in the first parameter
result<size_t> get_section_idx(const Section& section) const {
auto it = std::find_if(sections_.begin(), sections_.end(),
- [§ion] (const std::unique_ptr<Section>& S) {
- return S.get() == §ion;
- }
- );
+ [§ion](const std::unique_ptr<Section>& S) {
+ return S.get() == §ion;
+ });
if (it == sections_.end()) {
return make_error_code(lief_errors::not_found);
}
@@ -962,10 +1052,9 @@ class LIEF_API Binary : public LIEF::Binary {
/// Find the index of the section with the name given in the first parameter
result<size_t> get_section_idx(const std::string& name) const {
auto it = std::find_if(sections_.begin(), sections_.end(),
- [name] (const std::unique_ptr<Section>& S) {
- return S->name() == name;
- }
- );
+ [name](const std::unique_ptr<Section>& S) {
+ return S->name() == name;
+ });
if (it == sections_.end()) {
return make_error_code(lief_errors::not_found);
}
@@ -974,29 +1063,30 @@ class LIEF_API Binary : public LIEF::Binary {
/// Try to find the SymbolVersionRequirement associated with the given library
/// name (e.g. `libc.so.6`)
- const SymbolVersionRequirement*
- find_version_requirement(const std::string& libname) const;
-
- SymbolVersionRequirement* find_version_requirement(const std::string& name) {
- return const_cast<SymbolVersionRequirement*>(static_cast<const Binary*>(this)->find_version_requirement(name));
+ const SymbolVersionRequirement* find_version_requirement(
+ const std::string& libname
+ ) const LIEF_LIFETIMEBOUND;
+
+ SymbolVersionRequirement*
+ find_version_requirement(const std::string& name) LIEF_LIFETIMEBOUND {
+ return const_cast<SymbolVersionRequirement*>(
+ static_cast<const Binary*>(this)->find_version_requirement(name)
+ );
}
/// Deletes all required symbol versions linked to the specified library name.
/// The function returns true if the operation succeed, false otherwise.
///
- /// \warning To maintain consistency, this function also removes versions
+ /// @warning To maintain consistency, this function also removes versions
/// associated with dynamic symbols that are linked to the specified
/// library name.
bool remove_version_requirement(const std::string& libname);
uint8_t ptr_size() const {
switch (type()) {
- case Header::CLASS::ELF32:
- return sizeof(uint32_t);
- case Header::CLASS::ELF64:
- return sizeof(uint64_t);
- default:
- return 0;
+ case Header::CLASS::ELF32: return sizeof(uint32_t);
+ case Header::CLASS::ELF64: return sizeof(uint64_t);
+ default: return 0;
}
return 0;
}
@@ -1014,74 +1104,74 @@ class LIEF_API Binary : public LIEF::Binary {
std::ostream& print(std::ostream& os) const override;
- Binary& operator+=(const DynamicEntry& entry) {
+ Binary& operator+=(const DynamicEntry& entry) LIEF_LIFETIMEBOUND {
add(entry);
return *this;
}
- Binary& operator+=(const Section& section) {
+ Binary& operator+=(const Section& section) LIEF_LIFETIMEBOUND {
add(section);
return *this;
}
- Binary& operator+=(const Segment& segment) {
+ Binary& operator+=(const Segment& segment) LIEF_LIFETIMEBOUND {
add(segment);
return *this;
}
- Binary& operator+=(const Note& note) {
+ Binary& operator+=(const Note& note) LIEF_LIFETIMEBOUND {
add(note);
return *this;
}
- Binary& operator-=(const DynamicEntry& entry) {
+ Binary& operator-=(const DynamicEntry& entry) LIEF_LIFETIMEBOUND {
remove(entry);
return *this;
}
- Binary& operator-=(DynamicEntry::TAG tag) {
+ Binary& operator-=(DynamicEntry::TAG tag) LIEF_LIFETIMEBOUND {
remove(tag);
return *this;
}
- Binary& operator-=(const Note& note) {
+ Binary& operator-=(const Note& note) LIEF_LIFETIMEBOUND {
remove(note);
return *this;
}
- Binary& operator-=(Note::TYPE type) {
+ Binary& operator-=(Note::TYPE type) LIEF_LIFETIMEBOUND {
remove(type);
return *this;
}
- Segment* operator[](Segment::TYPE type) {
+ Segment* operator[](Segment::TYPE type) LIEF_LIFETIMEBOUND {
return get(type);
}
- const Segment* operator[](Segment::TYPE type) const {
+ const Segment* operator[](Segment::TYPE type) const LIEF_LIFETIMEBOUND {
return get(type);
}
- DynamicEntry* operator[](DynamicEntry::TAG tag) {
+ DynamicEntry* operator[](DynamicEntry::TAG tag) LIEF_LIFETIMEBOUND {
return get(tag);
}
- const DynamicEntry* operator[](DynamicEntry::TAG tag) const {
+ const DynamicEntry* operator[](DynamicEntry::TAG tag) const LIEF_LIFETIMEBOUND {
return get(tag);
}
- Note* operator[](Note::TYPE type) {
+ Note* operator[](Note::TYPE type) LIEF_LIFETIMEBOUND {
return get(type);
}
- const Note* operator[](Note::TYPE type) const {
+ const Note* operator[](Note::TYPE type) const LIEF_LIFETIMEBOUND {
return get(type);
}
- Section* operator[](Section::TYPE type) {
+ Section* operator[](Section::TYPE type) LIEF_LIFETIMEBOUND {
return get(type);
}
- const Section* operator[](Section::TYPE type) const {
+ const Section* operator[](Section::TYPE type) const LIEF_LIFETIMEBOUND {
return get(type);
}
@@ -1098,6 +1188,13 @@ class LIEF_API Binary : public LIEF::Binary {
nb_segments = 0;
}
};
+ uint64_t entry_size(DynamicEntry::TAG ent_tag, uint64_t fallback) const {
+ if (const DynamicEntry* dt_ent = get(ent_tag)) {
+ return dt_ent->value();
+ }
+ return fallback;
+ }
+
LIEF_LOCAL Binary();
/// Return an abstraction of binary's section: LIEF::Section
@@ -1107,17 +1204,21 @@ class LIEF_API Binary : public LIEF::Binary {
return LIEF::Header::from(*this);
}
- LIEF_LOCAL LIEF::Binary::functions_t get_abstract_exported_functions() const override;
- LIEF_LOCAL LIEF::Binary::functions_t get_abstract_imported_functions() const override;
- LIEF_LOCAL std::vector<std::string> get_abstract_imported_libraries() const override;
- LIEF_LOCAL LIEF::Binary::symbols_t get_abstract_symbols() override;
+ LIEF_LOCAL LIEF::Binary::functions_t
+ get_abstract_exported_functions() const override;
+ LIEF_LOCAL LIEF::Binary::functions_t
+ get_abstract_imported_functions() const override;
+ LIEF_LOCAL std::vector<std::string>
+ get_abstract_imported_libraries() const override;
+ LIEF_LOCAL LIEF::Binary::symbols_t get_abstract_symbols() override;
LIEF_LOCAL LIEF::Binary::relocations_t get_abstract_relocations() override;
template<ELF::ARCH ARCH>
LIEF_LOCAL void patch_relocations(uint64_t from, uint64_t shift);
template<class T>
- LIEF_LOCAL void patch_addend(Relocation& relocatio, uint64_t from, uint64_t shift);
+ LIEF_LOCAL void patch_addend(Relocation& relocatio, uint64_t from,
+ uint64_t shift);
LIEF_LOCAL void shift_sections(uint64_t from, uint64_t shift);
LIEF_LOCAL void shift_segments(uint64_t from, uint64_t shift);
@@ -1132,7 +1233,8 @@ class LIEF_API Binary : public LIEF::Binary {
LIEF_LOCAL LIEF::Binary::functions_t armexid_functions() const;
template<Header::FILE_TYPE OBJECT_TYPE, bool note = false>
- LIEF_LOCAL Segment* add_segment(const Segment& segment, uint64_t base);
+ LIEF_LOCAL Segment* add_segment(const Segment& segment,
+ uint64_t base) LIEF_LIFETIMEBOUND;
LIEF_LOCAL uint64_t relocate_phdr_table_auto();
LIEF_LOCAL uint64_t relocate_phdr_table_pie();
@@ -1141,16 +1243,18 @@ class LIEF_API Binary : public LIEF::Binary {
LIEF_LOCAL uint64_t relocate_phdr_table_v3();
template<Segment::TYPE PT>
- LIEF_LOCAL Segment* extend_segment(const Segment& segment, uint64_t size);
+ LIEF_LOCAL Segment* extend_segment(const Segment& segment,
+ uint64_t size) LIEF_LIFETIMEBOUND;
template<bool LOADED>
- LIEF_LOCAL Section* add_section(const Section& section, SEC_INSERT_POS pos);
+ LIEF_LOCAL Section* add_section(const Section& section,
+ SEC_INSERT_POS pos) LIEF_LIFETIMEBOUND;
- std::vector<Symbol*> symtab_dyn_symbols() const;
+ std::vector<Symbol*> symtab_dyn_symbols() const LIEF_LIFETIMEBOUND;
LIEF_LOCAL std::string shstrtab_name() const;
- LIEF_LOCAL Section* add_frame_section(const Section& sec);
- LIEF_LOCAL Section* add_section(std::unique_ptr<Section> sec);
+ LIEF_LOCAL Section* add_frame_section(const Section& sec) LIEF_LIFETIMEBOUND;
+ LIEF_LOCAL Section* add_section(std::unique_ptr<Section> sec) LIEF_LIFETIMEBOUND;
LIEF_LOCAL LIEF::Binary::functions_t tor_functions(DynamicEntry::TAG tag) const;
@@ -1164,7 +1268,7 @@ class LIEF_API Binary : public LIEF::Binary {
relocations_t relocations_;
symbols_version_t symbol_version_table_;
symbols_version_requirement_t symbol_version_requirements_;
- symbols_version_definition_t symbol_version_definition_;
+ symbols_version_definition_t symbol_version_definition_;
notes_t notes_;
std::unique_ptr<GnuHash> gnu_hash_;
std::unique_ptr<SysvHash> sysv_hash_;
diff --git a/deps/LIEF/include/LIEF/ELF/Builder.hpp b/deps/LIEF/include/LIEF/ELF/Builder.hpp
index b7da3f3151c..1f7b595d4ac 100644
--- a/deps/LIEF/include/LIEF/ELF/Builder.hpp
+++ b/deps/LIEF/include/LIEF/ELF/Builder.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
* Copyright 2017 - 2021, NVIDIA CORPORATION. All rights reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -53,27 +53,70 @@ class LIEF_API Builder {
public:
/// Configuration options to tweak the building process
struct config_t {
- bool dt_hash = true; /// Rebuild DT_HASH
- bool dyn_str = true; /// Rebuild DT_STRTAB
- bool dynamic_section = true; /// Rebuild PT_DYNAMIC segment
- bool fini_array = true; /// Rebuild DT_FINI_ARRAY
- bool gnu_hash = true; /// Rebuild DT_GNU_HASH
- bool init_array = true; /// Rebuild DT_INIT_ARRAY
- bool interpreter = true; /// Rebuild PT_INTERPRETER
- bool jmprel = true; /// Rebuild DT_JMPREL
- bool notes = false; /// Disable note building since it can break the default layout
- bool preinit_array = true; /// Rebuild DT_PREINIT_ARRAY
- bool relr = true; /// Rebuild DT_RELR
- bool android_rela = true; /// Rebuild DT_ANDROID_REL[A]
- bool rela = true; /// Rebuild DT_REL[A]
- bool static_symtab = true; /// Rebuild `.symtab`
- bool sym_verdef = true; /// Rebuild DT_VERDEF
- bool sym_verneed = true; /// Rebuild DT_VERNEED
- bool sym_versym = true; /// Rebuild DT_VERSYM
- bool symtab = true; /// Rebuild DT_SYMTAB
- bool coredump_notes = true; /// Rebuild the Coredump notes
- bool force_relocate = false; /// Force to relocating all the ELF structures that are supported by LIEF (mostly for testing)
- bool skip_dynamic = false; /// Skip relocating the PT_DYNAMIC segment (only relevant if force_relocate is set)
+ /// Rebuild DT_HASH
+ bool dt_hash = true;
+
+ /// Rebuild DT_STRTAB
+ bool dyn_str = true;
+
+ /// Rebuild PT_DYNAMIC segment
+ bool dynamic_section = true;
+
+ /// Rebuild DT_FINI_ARRAY
+ bool fini_array = true;
+
+ /// Rebuild DT_GNU_HASH
+ bool gnu_hash = true;
+
+ /// Rebuild DT_INIT_ARRAY
+ bool init_array = true;
+
+ /// Rebuild PT_INTERPRETER
+ bool interpreter = true;
+
+ /// Rebuild DT_JMPREL
+ bool jmprel = true;
+
+ /// Disable note building since it can break the default layout
+ bool notes = false;
+
+ /// Rebuild DT_PREINIT_ARRAY
+ bool preinit_array = true;
+
+ /// Rebuild DT_RELR
+ bool relr = true;
+
+ /// Rebuild DT_ANDROID_REL[A]
+ bool android_rela = true;
+
+ /// Rebuild DT_REL[A]
+ bool rela = true;
+
+ /// Rebuild `.symtab`
+ bool static_symtab = true;
+
+ /// Rebuild DT_VERDEF
+ bool sym_verdef = true;
+
+ /// Rebuild DT_VERNEED
+ bool sym_verneed = true;
+
+ /// Rebuild DT_VERSYM
+ bool sym_versym = true;
+
+ /// Rebuild DT_SYMTAB
+ bool symtab = true;
+
+ /// Rebuild the Coredump notes
+ bool coredump_notes = true;
+
+ /// Force to relocating all the ELF structures that are
+ /// supported by LIEF (mostly for testing)
+ bool force_relocate = false;
+
+ /// Skip relocating the PT_DYNAMIC segment (only relevant if force_relocate is
+ /// set
+ bool skip_dynamic = false;
/// Remove entries in `.gnu.version_r` if they are not associated with at
/// least one version
@@ -82,8 +125,7 @@ class LIEF_API Builder {
Builder(Binary& binary, const config_t& config);
Builder(Binary& binary) :
- Builder(binary, config_t())
- {}
+ Builder(binary, config_t()) {}
Builder() = delete;
~Builder();
@@ -91,12 +133,12 @@ class LIEF_API Builder {
/// Perform the build of the provided ELF binary
void build();
- config_t& config() {
+ config_t& config() LIEF_LIFETIMEBOUND {
return config_;
}
/// Return the built ELF binary as a byte vector
- const std::vector<uint8_t>& get_build();
+ const std::vector<uint8_t>& get_build() LIEF_LIFETIMEBOUND;
/// Write the built ELF binary in the ``filename`` given in parameter
void write(const std::string& filename) const;
@@ -178,7 +220,8 @@ class LIEF_API Builder {
template<typename ELF_T>
LIEF_LOCAL ok_error_t build_notes();
- LIEF_LOCAL ok_error_t update_note_section(const Note& note, std::set<const Note*>& notes);
+ LIEF_LOCAL ok_error_t update_note_section(const Note& note,
+ std::set<const Note*>& notes);
template<typename ELF_T>
LIEF_LOCAL ok_error_t build_overlay();
@@ -200,6 +243,4 @@ class LIEF_API Builder {
} // namespace LIEF
-
-
#endif
diff --git a/deps/LIEF/include/LIEF/ELF/DynamicEntry.hpp b/deps/LIEF/include/LIEF/ELF/DynamicEntry.hpp
index ff12e810d04..ac7e58ed957 100644
--- a/deps/LIEF/include/LIEF/ELF/DynamicEntry.hpp
+++ b/deps/LIEF/include/LIEF/ELF/DynamicEntry.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,9 +32,11 @@ struct Elf32_Dyn;
}
/// Class which represents an entry in the dynamic table
-/// These entries are located in the ``.dynamic`` section or the ``PT_DYNAMIC`` segment
+/// These entries are located in the ``.dynamic`` section or the ``PT_DYNAMIC``
+/// segment
class LIEF_API DynamicEntry : public Object {
public:
+ // clang-format off
static constexpr uint64_t MIPS_DISC = 0x100000000;
static constexpr uint64_t AARCH64_DISC = 0x200000000;
static constexpr uint64_t HEXAGON_DISC = 0x300000000;
@@ -45,67 +47,72 @@ class LIEF_API DynamicEntry : public Object {
static constexpr uint64_t IA_64_DISC = 0x800000000;
enum class TAG : uint64_t {
- UNKNOWN = uint64_t(-1),
- DT_NULL_ = 0, /**< Marks end of dynamic array. */
- NEEDED = 1, /**< String table offset of needed library. */
- PLTRELSZ = 2, /**< Size of relocation entries in PLT. */
- PLTGOT = 3, /**< Address associated with linkage table. */
- HASH = 4, /**< Address of symbolic hash table. */
- STRTAB = 5, /**< Address of dynamic string table. */
- SYMTAB = 6, /**< Address of dynamic symbol table. */
- RELA = 7, /**< Address of relocation table (Rela entries). */
- RELASZ = 8, /**< Size of Rela relocation table. */
- RELAENT = 9, /**< Size of a Rela relocation entry. */
- STRSZ = 10,/**< Total size of the string table. */
- SYMENT = 11,/**< Size of a symbol table entry. */
- INIT = 12,/**< Address of initialization function. */
- FINI = 13,/**< Address of termination function. */
- SONAME = 14,/**< String table offset of a shared objects name. */
- RPATH = 15,/**< String table offset of library search path. */
- SYMBOLIC = 16,/**< Changes symbol resolution algorithm. */
- REL = 17,/**< Address of relocation table (Rel entries). */
- RELSZ = 18,/**< Size of Rel relocation table. */
- RELENT = 19,/**< Size of a Rel relocation entry. */
- PLTREL = 20,/**< Type of relocation entry used for linking. */
- DEBUG_TAG = 21,/**< Reserved for debugger. */
- TEXTREL = 22,/**< Relocations exist for non-writable segments. */
- JMPREL = 23,/**< Address of relocations associated with PLT. */
- BIND_NOW = 24,/**< Process all relocations before execution. */
- INIT_ARRAY = 25,/**< Pointer to array of initialization functions. */
- FINI_ARRAY = 26,/**< Pointer to array of termination functions. */
- INIT_ARRAYSZ = 27,/**< Size of DT_INIT_ARRAY. */
- FINI_ARRAYSZ = 28,/**< Size of DT_FINI_ARRAY. */
- RUNPATH = 29,/**< String table offset of lib search path. */
- FLAGS = 30,/**< Flags. */
- PREINIT_ARRAY = 32,/**< Pointer to array of preinit functions. */
- PREINIT_ARRAYSZ = 33,/**< Size of the DT_PREINIT_ARRAY array. */
- SYMTAB_SHNDX = 34,/**< Address of SYMTAB_SHNDX section */
- RELRSZ = 35,/**< Total size of RELR relative relocations */
- RELR = 36,/**< Address of RELR relative relocations */
- RELRENT = 37,/**< Size of one RELR relative relocaction */
+ UNKNOWN = uint64_t(-1),
+ DT_NULL_ = 0, /**< Marks end of dynamic array. */
+ NEEDED = 1, /**< String table offset of needed library. */
+ PLTRELSZ = 2, /**< Size of relocation entries in PLT. */
+ PLTGOT = 3, /**< Address associated with linkage table. */
+ HASH = 4, /**< Address of symbolic hash table. */
+ STRTAB = 5, /**< Address of dynamic string table. */
+ SYMTAB = 6, /**< Address of dynamic symbol table. */
+ RELA = 7, /**< Address of relocation table (Rela entries). */
+ RELASZ = 8, /**< Size of Rela relocation table. */
+ RELAENT = 9, /**< Size of a Rela relocation entry. */
+ STRSZ = 10, /**< Total size of the string table. */
+ SYMENT = 11, /**< Size of a symbol table entry. */
+ INIT = 12, /**< Address of initialization function. */
+ FINI = 13, /**< Address of termination function. */
+ SONAME = 14, /**< String table offset of a shared objects name. */
+ RPATH = 15, /**< String table offset of library search path. */
+ SYMBOLIC = 16, /**< Changes symbol resolution algorithm. */
+ REL = 17, /**< Address of relocation table (Rel entries). */
+ RELSZ = 18, /**< Size of Rel relocation table. */
+ RELENT = 19, /**< Size of a Rel relocation entry. */
+ PLTREL = 20, /**< Type of relocation entry used for linking. */
+ DEBUG_TAG = 21, /**< Reserved for debugger. */
+ TEXTREL = 22, /**< Relocations exist for non-writable segments. */
+ JMPREL = 23, /**< Address of relocations associated with PLT. */
+ BIND_NOW = 24, /**< Process all relocations before execution. */
+ INIT_ARRAY = 25, /**< Pointer to array of initialization functions. */
+ FINI_ARRAY = 26, /**< Pointer to array of termination functions. */
+ INIT_ARRAYSZ = 27, /**< Size of DT_INIT_ARRAY. */
+ FINI_ARRAYSZ = 28, /**< Size of DT_FINI_ARRAY. */
+ RUNPATH = 29, /**< String table offset of lib search path. */
+ FLAGS = 30, /**< Flags. */
+ PREINIT_ARRAY = 32, /**< Pointer to array of preinit functions. */
+ PREINIT_ARRAYSZ = 33, /**< Size of the DT_PREINIT_ARRAY array. */
+ SYMTAB_SHNDX = 34, /**< Address of SYMTAB_SHNDX section */
+ RELRSZ = 35, /**< Total size of RELR relative relocations */
+ RELR = 36, /**< Address of RELR relative relocations */
+ RELRENT = 37, /**< Size of one RELR relative relocation */
// GNU Extensions
- GNU_HASH = 0x6FFFFEF5, /**< Reference to the GNU hash table. */
- RELACOUNT = 0x6FFFFFF9, /**< ELF32_Rela count. */
- RELCOUNT = 0x6FFFFFFA, /**< ELF32_Rel count. */
- FLAGS_1 = 0x6FFFFFFB, /**< Flags_1. */
- VERSYM = 0x6FFFFFF0, /**< The address of .gnu.version section. */
- VERDEF = 0x6FFFFFFC, /**< The address of the version definition table. */
- VERDEFNUM = 0x6FFFFFFD, /**< The number of entries in DT_VERDEF. */
- VERNEED = 0x6FFFFFFE, /**< The address of the version Dependency table. */
- VERNEEDNUM = 0x6FFFFFFF, /**< The number of entries in DT_VERNEED. */
+ GNU_HASH = 0x6FFFFEF5, /**< Reference to the GNU hash table. */
+ TLSDESC_PLT = 0x6FFFFEF6, /**< Location of PLT entry for TLS descriptor resolver calls. */
+ TLSDESC_GOT = 0x6FFFFEF7, /**< Location of GOT entry for TLS descriptor resolver PLT entry. */
+ RELACOUNT = 0x6FFFFFF9, /**< ELF32_Rela count. */
+ RELCOUNT = 0x6FFFFFFA, /**< ELF32_Rel count. */
+ FLAGS_1 = 0x6FFFFFFB, /**< Flags_1. */
+ VERSYM = 0x6FFFFFF0, /**< The address of .gnu.version section. */
+ VERDEF = 0x6FFFFFFC, /**< The address of the version definition table. */
+ VERDEFNUM = 0x6FFFFFFD, /**< The number of entries in DT_VERDEF. */
+ VERNEED = 0x6FFFFFFE, /**< The address of the version Dependency table. */
+ VERNEEDNUM = 0x6FFFFFFF, /**< The number of entries in DT_VERNEED. */
+
+ AUXILIARY = 0x7ffffffd, /**< Shared object to load before self */
+ FILTER = 0x7fffffff, /**< Shared object to filter from */
// Android Extensions
- ANDROID_REL_OFFSET = 0x6000000D, /**< The offset of packed relocation data (older version < M) (Android specific). */
- ANDROID_REL_SIZE = 0x6000000E, /**< The size of packed relocation data in bytes (older version < M) (Android specific). */
- ANDROID_REL = 0x6000000F, /**< The offset of packed relocation data (Android specific). */
- ANDROID_RELSZ = 0x60000010, /**< The size of packed relocation data in bytes (Android specific). */
- ANDROID_RELA = 0x60000011, /**< The offset of packed relocation data (Android specific). */
- ANDROID_RELASZ = 0x60000012, /**< The size of packed relocation data in bytes (Android specific). */
- ANDROID_RELR = 0x6FFFE000, /**< The offset of new relr relocation data (Android specific). */
- ANDROID_RELRSZ = 0x6FFFE001, /**< The size of nre relr relocation data in bytes (Android specific). */
- ANDROID_RELRENT = 0x6FFFE003, /**< The size of a new relr relocation entry (Android specific). */
- ANDROID_RELRCOUNT = 0x6FFFE005, /**< Specifies the relative count of new relr relocation entries (Android specific). */
+ ANDROID_REL_OFFSET = 0x6000000D, /**< The offset of packed relocation data (older version < M) (Android specific). */
+ ANDROID_REL_SIZE = 0x6000000E, /**< The size of packed relocation data in bytes (older version < M) (Android specific). */
+ ANDROID_REL = 0x6000000F, /**< The offset of packed relocation data (Android specific). */
+ ANDROID_RELSZ = 0x60000010, /**< The size of packed relocation data in bytes (Android specific). */
+ ANDROID_RELA = 0x60000011, /**< The offset of packed relocation data (Android specific). */
+ ANDROID_RELASZ = 0x60000012, /**< The size of packed relocation data in bytes (Android specific). */
+ ANDROID_RELR = 0x6FFFE000, /**< The offset of new relr relocation data (Android specific). */
+ ANDROID_RELRSZ = 0x6FFFE001, /**< The size of new relr relocation data in bytes (Android specific). */
+ ANDROID_RELRENT = 0x6FFFE003, /**< The size of a new relr relocation entry (Android specific). */
+ ANDROID_RELRCOUNT = 0x6FFFE005, /**< Specifies the relative count of new relr relocation entries (Android specific). */
/* Mips specific dynamic table entry tags. */
MIPS_RLD_VERSION = MIPS_DISC + 0x70000001, /**< 32 bit version number for runtime linker interface. */
@@ -156,63 +163,64 @@ class LIEF_API DynamicEntry : public Object {
MIPS_RLD_MAP_REL = MIPS_DISC + 0x70000035,
MIPS_XHASH = MIPS_DISC + 0x70000036,
- AARCH64_BTI_PLT = AARCH64_DISC + 0x70000001,
- AARCH64_PAC_PLT = AARCH64_DISC + 0x70000003,
- AARCH64_VARIANT_PCS = AARCH64_DISC + 0x70000005,
- AARCH64_MEMTAG_MODE = AARCH64_DISC + 0x70000009,
- AARCH64_MEMTAG_HEAP = AARCH64_DISC + 0x7000000b,
- AARCH64_MEMTAG_STACK = AARCH64_DISC + 0x7000000c,
- AARCH64_MEMTAG_GLOBALS = AARCH64_DISC + 0x7000000d,
- AARCH64_MEMTAG_GLOBALSSZ = AARCH64_DISC + 0x7000000f,
-
- HEXAGON_SYMSZ = HEXAGON_DISC + 0x70000000,
- HEXAGON_VER = HEXAGON_DISC + 0x70000001,
- HEXAGON_PLT = HEXAGON_DISC + 0x70000002,
-
- PPC_GOT = PPC_DISC + 0x70000000,
- PPC_OPT = PPC_DISC + 0x70000001,
-
- PPC64_GLINK = PPC64_DISC + 0x70000000,
- PPC64_OPT = PPC64_DISC + 0x70000003,
-
- RISCV_VARIANT_CC = RISCV_DISC + 0x70000003,
-
- X86_64_PLT = X86_64_DISC + 0x70000000,
- X86_64_PLTSZ = X86_64_DISC + 0x70000001,
- X86_64_PLTENT = X86_64_DISC + 0x70000003,
-
- IA_64_PLT_RESERVE = IA_64_DISC + (0x70000000 + 0),
- IA_64_VMS_SUBTYPE = IA_64_DISC + (0x60000000 + 0),
- IA_64_VMS_IMGIOCNT = IA_64_DISC + (0x60000000 + 2),
- IA_64_VMS_LNKFLAGS = IA_64_DISC + (0x60000000 + 8),
- IA_64_VMS_VIR_MEM_BLK_SIZ = IA_64_DISC + (0x60000000 + 10),
- IA_64_VMS_IDENT = IA_64_DISC + (0x60000000 + 12),
- IA_64_VMS_NEEDED_IDENT = IA_64_DISC + (0x60000000 + 16),
- IA_64_VMS_IMG_RELA_CNT = IA_64_DISC + (0x60000000 + 18),
- IA_64_VMS_SEG_RELA_CNT = IA_64_DISC + (0x60000000 + 20),
- IA_64_VMS_FIXUP_RELA_CNT = IA_64_DISC + (0x60000000 + 22),
- IA_64_VMS_FIXUP_NEEDED = IA_64_DISC + (0x60000000 + 24),
- IA_64_VMS_SYMVEC_CNT = IA_64_DISC + (0x60000000 + 26),
- IA_64_VMS_XLATED = IA_64_DISC + (0x60000000 + 30),
- IA_64_VMS_STACKSIZE = IA_64_DISC + (0x60000000 + 32),
- IA_64_VMS_UNWINDSZ = IA_64_DISC + (0x60000000 + 34),
- IA_64_VMS_UNWIND_CODSEG = IA_64_DISC + (0x60000000 + 36),
- IA_64_VMS_UNWIND_INFOSEG = IA_64_DISC + (0x60000000 + 38),
- IA_64_VMS_LINKTIME = IA_64_DISC + (0x60000000 + 40),
- IA_64_VMS_SEG_NO = IA_64_DISC + (0x60000000 + 42),
- IA_64_VMS_SYMVEC_OFFSET = IA_64_DISC + (0x60000000 + 44),
- IA_64_VMS_SYMVEC_SEG = IA_64_DISC + (0x60000000 + 46),
- IA_64_VMS_UNWIND_OFFSET = IA_64_DISC + (0x60000000 + 48),
- IA_64_VMS_UNWIND_SEG = IA_64_DISC + (0x60000000 + 50),
- IA_64_VMS_STRTAB_OFFSET = IA_64_DISC + (0x60000000 + 52),
- IA_64_VMS_SYSVER_OFFSET = IA_64_DISC + (0x60000000 + 54),
- IA_64_VMS_IMG_RELA_OFF = IA_64_DISC + (0x60000000 + 56),
- IA_64_VMS_SEG_RELA_OFF = IA_64_DISC + (0x60000000 + 58),
- IA_64_VMS_FIXUP_RELA_OFF = IA_64_DISC + (0x60000000 + 60),
- IA_64_VMS_PLTGOT_OFFSET = IA_64_DISC + (0x60000000 + 62),
- IA_64_VMS_PLTGOT_SEG = IA_64_DISC + (0x60000000 + 64),
- IA_64_VMS_FPMODE = IA_64_DISC + (0x60000000 + 66),
+ AARCH64_BTI_PLT = AARCH64_DISC + 0x70000001,
+ AARCH64_PAC_PLT = AARCH64_DISC + 0x70000003,
+ AARCH64_VARIANT_PCS = AARCH64_DISC + 0x70000005,
+ AARCH64_MEMTAG_MODE = AARCH64_DISC + 0x70000009,
+ AARCH64_MEMTAG_HEAP = AARCH64_DISC + 0x7000000b,
+ AARCH64_MEMTAG_STACK = AARCH64_DISC + 0x7000000c,
+ AARCH64_MEMTAG_GLOBALS = AARCH64_DISC + 0x7000000d,
+ AARCH64_MEMTAG_GLOBALSSZ = AARCH64_DISC + 0x7000000f,
+
+ HEXAGON_SYMSZ = HEXAGON_DISC + 0x70000000,
+ HEXAGON_VER = HEXAGON_DISC + 0x70000001,
+ HEXAGON_PLT = HEXAGON_DISC + 0x70000002,
+
+ PPC_GOT = PPC_DISC + 0x70000000,
+ PPC_OPT = PPC_DISC + 0x70000001,
+
+ PPC64_GLINK = PPC64_DISC + 0x70000000,
+ PPC64_OPT = PPC64_DISC + 0x70000003,
+
+ RISCV_VARIANT_CC = RISCV_DISC + 0x70000003,
+
+ X86_64_PLT = X86_64_DISC + 0x70000000,
+ X86_64_PLTSZ = X86_64_DISC + 0x70000001,
+ X86_64_PLTENT = X86_64_DISC + 0x70000003,
+
+ IA_64_PLT_RESERVE = IA_64_DISC + (0x70000000 + 0),
+ IA_64_VMS_SUBTYPE = IA_64_DISC + (0x60000000 + 0),
+ IA_64_VMS_IMGIOCNT = IA_64_DISC + (0x60000000 + 2),
+ IA_64_VMS_LNKFLAGS = IA_64_DISC + (0x60000000 + 8),
+ IA_64_VMS_VIR_MEM_BLK_SIZ = IA_64_DISC + (0x60000000 + 10),
+ IA_64_VMS_IDENT = IA_64_DISC + (0x60000000 + 12),
+ IA_64_VMS_NEEDED_IDENT = IA_64_DISC + (0x60000000 + 16),
+ IA_64_VMS_IMG_RELA_CNT = IA_64_DISC + (0x60000000 + 18),
+ IA_64_VMS_SEG_RELA_CNT = IA_64_DISC + (0x60000000 + 20),
+ IA_64_VMS_FIXUP_RELA_CNT = IA_64_DISC + (0x60000000 + 22),
+ IA_64_VMS_FIXUP_NEEDED = IA_64_DISC + (0x60000000 + 24),
+ IA_64_VMS_SYMVEC_CNT = IA_64_DISC + (0x60000000 + 26),
+ IA_64_VMS_XLATED = IA_64_DISC + (0x60000000 + 30),
+ IA_64_VMS_STACKSIZE = IA_64_DISC + (0x60000000 + 32),
+ IA_64_VMS_UNWINDSZ = IA_64_DISC + (0x60000000 + 34),
+ IA_64_VMS_UNWIND_CODSEG = IA_64_DISC + (0x60000000 + 36),
+ IA_64_VMS_UNWIND_INFOSEG = IA_64_DISC + (0x60000000 + 38),
+ IA_64_VMS_LINKTIME = IA_64_DISC + (0x60000000 + 40),
+ IA_64_VMS_SEG_NO = IA_64_DISC + (0x60000000 + 42),
+ IA_64_VMS_SYMVEC_OFFSET = IA_64_DISC + (0x60000000 + 44),
+ IA_64_VMS_SYMVEC_SEG = IA_64_DISC + (0x60000000 + 46),
+ IA_64_VMS_UNWIND_OFFSET = IA_64_DISC + (0x60000000 + 48),
+ IA_64_VMS_UNWIND_SEG = IA_64_DISC + (0x60000000 + 50),
+ IA_64_VMS_STRTAB_OFFSET = IA_64_DISC + (0x60000000 + 52),
+ IA_64_VMS_SYSVER_OFFSET = IA_64_DISC + (0x60000000 + 54),
+ IA_64_VMS_IMG_RELA_OFF = IA_64_DISC + (0x60000000 + 56),
+ IA_64_VMS_SEG_RELA_OFF = IA_64_DISC + (0x60000000 + 58),
+ IA_64_VMS_FIXUP_RELA_OFF = IA_64_DISC + (0x60000000 + 60),
+ IA_64_VMS_PLTGOT_OFFSET = IA_64_DISC + (0x60000000 + 62),
+ IA_64_VMS_PLTGOT_SEG = IA_64_DISC + (0x60000000 + 64),
+ IA_64_VMS_FPMODE = IA_64_DISC + (0x60000000 + 66),
};
+ // clang-format on
static TAG from_value(uint64_t value, ARCH arch);
static uint64_t to_value(TAG tag);
@@ -222,8 +230,8 @@ class LIEF_API DynamicEntry : public Object {
DynamicEntry(const details::Elf32_Dyn& header, ARCH arch);
DynamicEntry(TAG tag, uint64_t value) :
- tag_(tag), value_(value)
- {}
+ tag_(tag),
+ value_(value) {}
DynamicEntry& operator=(const DynamicEntry&) = default;
DynamicEntry(const DynamicEntry&) = default;
@@ -267,8 +275,8 @@ class LIEF_API DynamicEntry : public Object {
std::string to_string() const;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const DynamicEntry& entry) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const DynamicEntry& entry) {
return entry.print(os);
}
@@ -288,7 +296,7 @@ class LIEF_API DynamicEntry : public Object {
}
protected:
- TAG tag_ = TAG::DT_NULL_;
+ TAG tag_ = TAG::DT_NULL_;
uint64_t value_ = 0;
};
diff --git a/deps/LIEF/include/LIEF/ELF/DynamicEntryArray.hpp b/deps/LIEF/include/LIEF/ELF/DynamicEntryArray.hpp
index 9b61250e02a..bf146992137 100644
--- a/deps/LIEF/include/LIEF/ELF/DynamicEntryArray.hpp
+++ b/deps/LIEF/include/LIEF/ELF/DynamicEntryArray.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -40,8 +40,7 @@ class LIEF_API DynamicEntryArray : public DynamicEntry {
DynamicEntryArray() = delete;
DynamicEntryArray(DynamicEntry::TAG tag, array_t array) :
DynamicEntry(tag, 0),
- array_(std::move(array))
- {}
+ array_(std::move(array)) {}
DynamicEntryArray& operator=(const DynamicEntryArray&) = default;
DynamicEntryArray(const DynamicEntryArray&) = default;
@@ -51,11 +50,11 @@ class LIEF_API DynamicEntryArray : public DynamicEntry {
}
/// Return the array values (list of pointers)
- array_t& array() {
+ array_t& array() LIEF_LIFETIMEBOUND {
return array_;
}
- const array_t& array() const {
+ const array_t& array() const LIEF_LIFETIMEBOUND {
return array_;
}
void array(const array_t& array) {
@@ -63,18 +62,18 @@ class LIEF_API DynamicEntryArray : public DynamicEntry {
}
/// Insert the given function at ``pos``
- DynamicEntryArray& insert(size_t pos, uint64_t function);
+ DynamicEntryArray& insert(size_t pos, uint64_t function) LIEF_LIFETIMEBOUND;
/// Append the given function
- DynamicEntryArray& append(uint64_t function) {
+ DynamicEntryArray& append(uint64_t function) LIEF_LIFETIMEBOUND {
array_.push_back(function);
return *this;
}
/// Remove the given function
- DynamicEntryArray& remove(uint64_t function);
+ DynamicEntryArray& remove(uint64_t function) LIEF_LIFETIMEBOUND;
- /// Number of function registred in this array
+ /// Number of functions registered in this array
size_t size() const {
return array_.size();
}
@@ -88,7 +87,7 @@ class LIEF_API DynamicEntryArray : public DynamicEntry {
}
const uint64_t& operator[](size_t idx) const;
- uint64_t& operator[](size_t idx);
+ uint64_t& operator[](size_t idx);
void accept(Visitor& visitor) const override;
diff --git a/deps/LIEF/include/LIEF/ELF/DynamicEntryAuxiliary.hpp b/deps/LIEF/include/LIEF/ELF/DynamicEntryAuxiliary.hpp
new file mode 100644
index 00000000000..b4379e0d87a
--- /dev/null
+++ b/deps/LIEF/include/LIEF/ELF/DynamicEntryAuxiliary.hpp
@@ -0,0 +1,74 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ELF_DYNAMIC_ENTRY_AUXILIARY_H
+#define LIEF_ELF_DYNAMIC_ENTRY_AUXILIARY_H
+
+#include <string>
+
+#include "LIEF/visibility.h"
+#include "LIEF/ELF/DynamicEntry.hpp"
+
+namespace LIEF {
+namespace ELF {
+
+/// Class which represents a ``DT_AUXILIARY`` entry in the dynamic table
+/// This kind of entry is used to specify a shared object that should be
+/// loaded before the current one.
+class LIEF_API DynamicEntryAuxiliary : public DynamicEntry {
+
+ public:
+ using DynamicEntry::DynamicEntry;
+ DynamicEntryAuxiliary() :
+ DynamicEntry(DynamicEntry::TAG::AUXILIARY, 0) {}
+
+ DynamicEntryAuxiliary(std::string name) :
+ DynamicEntry(DynamicEntry::TAG::AUXILIARY, 0),
+ name_(std::move(name)) {}
+
+ DynamicEntryAuxiliary& operator=(const DynamicEntryAuxiliary&) = default;
+ DynamicEntryAuxiliary(const DynamicEntryAuxiliary&) = default;
+
+ std::unique_ptr<DynamicEntry> clone() const override {
+ return std::unique_ptr<DynamicEntryAuxiliary>(
+ new DynamicEntryAuxiliary(*this)
+ );
+ }
+
+ /// The actual name (e.g. `libaux.so`)
+ const std::string& name() const {
+ return name_;
+ }
+
+ void name(std::string name) {
+ name_ = std::move(name);
+ }
+
+ void accept(Visitor& visitor) const override;
+
+ std::ostream& print(std::ostream& os) const override;
+
+ static bool classof(const DynamicEntry* entry) {
+ return entry->tag() == DynamicEntry::TAG::AUXILIARY;
+ }
+
+ ~DynamicEntryAuxiliary() override = default;
+
+ private:
+ std::string name_;
+};
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/ELF/DynamicEntryFilter.hpp b/deps/LIEF/include/LIEF/ELF/DynamicEntryFilter.hpp
new file mode 100644
index 00000000000..71a1c9c3e09
--- /dev/null
+++ b/deps/LIEF/include/LIEF/ELF/DynamicEntryFilter.hpp
@@ -0,0 +1,72 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ELF_DYNAMIC_ENTRY_FILTER_H
+#define LIEF_ELF_DYNAMIC_ENTRY_FILTER_H
+
+#include <string>
+
+#include "LIEF/visibility.h"
+#include "LIEF/ELF/DynamicEntry.hpp"
+
+namespace LIEF {
+namespace ELF {
+
+/// Class which represents a `DT_FILTER` entry in the dynamic table
+/// This kind of entry is used to specify a shared object for which the
+/// current one is a filter.
+class LIEF_API DynamicEntryFilter : public DynamicEntry {
+
+ public:
+ using DynamicEntry::DynamicEntry;
+ DynamicEntryFilter() :
+ DynamicEntry(DynamicEntry::TAG::FILTER, 0) {}
+
+ DynamicEntryFilter(std::string name) :
+ DynamicEntry(DynamicEntry::TAG::FILTER, 0),
+ name_(std::move(name)) {}
+
+ DynamicEntryFilter& operator=(const DynamicEntryFilter&) = default;
+ DynamicEntryFilter(const DynamicEntryFilter&) = default;
+
+ std::unique_ptr<DynamicEntry> clone() const override {
+ return std::unique_ptr<DynamicEntryFilter>(new DynamicEntryFilter(*this));
+ }
+
+ /// The actual name (e.g. `libfilter.so`)
+ const std::string& name() const {
+ return name_;
+ }
+
+ void name(std::string name) {
+ name_ = std::move(name);
+ }
+
+ void accept(Visitor& visitor) const override;
+
+ std::ostream& print(std::ostream& os) const override;
+
+ static bool classof(const DynamicEntry* entry) {
+ return entry->tag() == DynamicEntry::TAG::FILTER;
+ }
+
+ ~DynamicEntryFilter() override = default;
+
+ private:
+ std::string name_;
+};
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/ELF/DynamicEntryFlags.hpp b/deps/LIEF/include/LIEF/ELF/DynamicEntryFlags.hpp
index 4d4b89f3d42..efd445218b9 100644
--- a/deps/LIEF/include/LIEF/ELF/DynamicEntryFlags.hpp
+++ b/deps/LIEF/include/LIEF/ELF/DynamicEntryFlags.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -30,6 +30,7 @@ class LIEF_API DynamicEntryFlags : public DynamicEntry {
public:
static constexpr uint64_t BASE = 0x100000000;
+ // clang-format off
enum class FLAG : uint64_t {
ORIGIN = 0x00000001, /**< The object may reference $ORIGIN. */
SYMBOLIC = 0x00000002, /**< Search the shared lib before searching the exe. */
@@ -68,6 +69,7 @@ class LIEF_API DynamicEntryFlags : public DynamicEntry {
WEAKFILTER = BASE + 0x020000000,
NOCOMMON = BASE + 0x040000000,
};
+ // clang-format on
using flags_list_t = std::vector<FLAG>;
@@ -76,11 +78,11 @@ class LIEF_API DynamicEntryFlags : public DynamicEntry {
DynamicEntryFlags() = delete;
static DynamicEntryFlags create_dt_flag(uint64_t value) {
- return DynamicEntryFlags(DynamicEntry::TAG::FLAGS, value);
+ return {DynamicEntry::TAG::FLAGS, value};
}
static DynamicEntryFlags create_dt_flag_1(uint64_t value) {
- return DynamicEntryFlags(DynamicEntry::TAG::FLAGS_1, value);
+ return {DynamicEntry::TAG::FLAGS_1, value};
}
DynamicEntryFlags& operator=(const DynamicEntryFlags&) = default;
@@ -99,10 +101,9 @@ class LIEF_API DynamicEntryFlags : public DynamicEntry {
uint64_t raw_flags() const {
flags_list_t flags = this->flags();
return std::accumulate(flags.begin(), flags.end(), uint64_t(0),
- [] (uint64_t value, FLAG f) {
- return value + (uint64_t)f;
- }
- );
+ [](uint64_t value, FLAG f) {
+ return value + (uint64_t)f;
+ });
}
/// Add the given FLAG
@@ -128,13 +129,13 @@ class LIEF_API DynamicEntryFlags : public DynamicEntry {
entry->tag() == DynamicEntry::TAG::FLAGS_1;
}
- ~DynamicEntryFlags() = default;
+ ~DynamicEntryFlags() override = default;
std::ostream& print(std::ostream& os) const override;
+
private:
DynamicEntryFlags(DynamicEntry::TAG tag, uint64_t flags) :
- DynamicEntry(tag, flags)
- {}
+ DynamicEntry(tag, flags) {}
};
LIEF_API const char* to_string(DynamicEntryFlags::FLAG e);
diff --git a/deps/LIEF/include/LIEF/ELF/DynamicEntryLibrary.hpp b/deps/LIEF/include/LIEF/ELF/DynamicEntryLibrary.hpp
index 86d77b5409f..4fbd0f508f3 100644
--- a/deps/LIEF/include/LIEF/ELF/DynamicEntryLibrary.hpp
+++ b/deps/LIEF/include/LIEF/ELF/DynamicEntryLibrary.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,13 +32,11 @@ class LIEF_API DynamicEntryLibrary : public DynamicEntry {
using DynamicEntry::DynamicEntry;
DynamicEntryLibrary() :
- DynamicEntry::DynamicEntry{DynamicEntry::TAG::NEEDED, 0}
- {}
+ DynamicEntry::DynamicEntry{DynamicEntry::TAG::NEEDED, 0} {}
DynamicEntryLibrary(std::string name) :
DynamicEntry::DynamicEntry{DynamicEntry::TAG::NEEDED, 0},
- libname_(std::move(name))
- {}
+ libname_(std::move(name)) {}
DynamicEntryLibrary& operator=(const DynamicEntryLibrary&) = default;
DynamicEntryLibrary(const DynamicEntryLibrary&) = default;
diff --git a/deps/LIEF/include/LIEF/ELF/DynamicEntryRpath.hpp b/deps/LIEF/include/LIEF/ELF/DynamicEntryRpath.hpp
index c95b6a0e236..323e3818146 100644
--- a/deps/LIEF/include/LIEF/ELF/DynamicEntryRpath.hpp
+++ b/deps/LIEF/include/LIEF/ELF/DynamicEntryRpath.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,24 +26,22 @@ namespace LIEF {
namespace ELF {
/// Class which represents a ``DT_RPATH`` entry. This attribute is
-/// deprecated (cf. ``man ld``) in favor of ``DT_RUNPATH`` (See DynamicEntryRunPath)
+/// deprecated (cf. ``man ld``) in favor of ``DT_RUNPATH`` (See
+/// DynamicEntryRunPath)
class LIEF_API DynamicEntryRpath : public DynamicEntry {
public:
static constexpr char delimiter = ':';
using DynamicEntry::DynamicEntry;
DynamicEntryRpath() :
- DynamicEntry::DynamicEntry(DynamicEntry::TAG::RPATH, 0)
- {}
+ DynamicEntry::DynamicEntry(DynamicEntry::TAG::RPATH, 0) {}
DynamicEntryRpath(std::string rpath) :
DynamicEntry::DynamicEntry(DynamicEntry::TAG::RPATH, 0),
- rpath_(std::move(rpath))
- {}
+ rpath_(std::move(rpath)) {}
/// Constructor from a list of paths
DynamicEntryRpath(const std::vector<std::string>& paths) :
- DynamicEntry::DynamicEntry(DynamicEntry::TAG::RPATH, 0)
- {
+ DynamicEntry::DynamicEntry(DynamicEntry::TAG::RPATH, 0) {
this->paths(paths);
}
@@ -68,13 +66,14 @@ class LIEF_API DynamicEntryRpath : public DynamicEntry {
void paths(const std::vector<std::string>& paths);
/// Insert a ``path`` at the given ``position``
- DynamicEntryRpath& insert(size_t pos, const std::string& path);
+ DynamicEntryRpath& insert(size_t pos,
+ const std::string& path) LIEF_LIFETIMEBOUND;
/// Append the given ``path``
- DynamicEntryRpath& append(std::string path);
+ DynamicEntryRpath& append(std::string path) LIEF_LIFETIMEBOUND;
/// Remove the given ``path``
- DynamicEntryRpath& remove(const std::string& path);
+ DynamicEntryRpath& remove(const std::string& path) LIEF_LIFETIMEBOUND;
DynamicEntryRpath& operator+=(std::string path) {
return append(std::move(path));
@@ -92,7 +91,7 @@ class LIEF_API DynamicEntryRpath : public DynamicEntry {
std::ostream& print(std::ostream& os) const override;
- ~DynamicEntryRpath() = default;
+ ~DynamicEntryRpath() override = default;
private:
std::string rpath_;
diff --git a/deps/LIEF/include/LIEF/ELF/DynamicEntryRunPath.hpp b/deps/LIEF/include/LIEF/ELF/DynamicEntryRunPath.hpp
index aa929a61de2..2b6f285d495 100644
--- a/deps/LIEF/include/LIEF/ELF/DynamicEntryRunPath.hpp
+++ b/deps/LIEF/include/LIEF/ELF/DynamicEntryRunPath.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -34,19 +34,16 @@ class LIEF_API DynamicEntryRunPath : public DynamicEntry {
using DynamicEntry::DynamicEntry;
DynamicEntryRunPath() :
- DynamicEntry::DynamicEntry(DynamicEntry::TAG::RUNPATH, 0)
- {}
+ DynamicEntry::DynamicEntry(DynamicEntry::TAG::RUNPATH, 0) {}
/// Constructor from (run)path
DynamicEntryRunPath(std::string runpath) :
DynamicEntry::DynamicEntry(DynamicEntry::TAG::RUNPATH, 0),
- runpath_(std::move(runpath))
- {}
+ runpath_(std::move(runpath)) {}
/// Constructor from a list of paths
DynamicEntryRunPath(const std::vector<std::string>& paths) :
- DynamicEntry::DynamicEntry(DynamicEntry::TAG::RUNPATH, 0)
- {
+ DynamicEntry::DynamicEntry(DynamicEntry::TAG::RUNPATH, 0) {
this->paths(paths);
}
@@ -71,16 +68,17 @@ class LIEF_API DynamicEntryRunPath : public DynamicEntry {
void paths(const std::vector<std::string>& paths);
/// Insert a ``path`` at the given ``position``
- DynamicEntryRunPath& insert(size_t pos, const std::string& path);
+ DynamicEntryRunPath& insert(size_t pos,
+ const std::string& path) LIEF_LIFETIMEBOUND;
/// Append the given ``path``
- DynamicEntryRunPath& append(const std::string& path);
+ DynamicEntryRunPath& append(const std::string& path) LIEF_LIFETIMEBOUND;
/// Remove the given ``path``
- DynamicEntryRunPath& remove(const std::string& path);
+ DynamicEntryRunPath& remove(const std::string& path) LIEF_LIFETIMEBOUND;
- DynamicEntryRunPath& operator+=(std::string path) {
- return append(std::move(path));
+ DynamicEntryRunPath& operator+=(const std::string& path) {
+ return append(path);
}
DynamicEntryRunPath& operator-=(const std::string& path) {
@@ -95,7 +93,7 @@ class LIEF_API DynamicEntryRunPath : public DynamicEntry {
std::ostream& print(std::ostream& os) const override;
- ~DynamicEntryRunPath() = default;
+ ~DynamicEntryRunPath() override = default;
private:
std::string runpath_;
diff --git a/deps/LIEF/include/LIEF/ELF/DynamicSharedObject.hpp b/deps/LIEF/include/LIEF/ELF/DynamicSharedObject.hpp
index 6206eab223d..e0845535977 100644
--- a/deps/LIEF/include/LIEF/ELF/DynamicSharedObject.hpp
+++ b/deps/LIEF/include/LIEF/ELF/DynamicSharedObject.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,19 +27,17 @@ namespace ELF {
/// Class which represents a ``DT_SONAME`` entry in the dynamic table
/// This kind of entry is usually used to name the original library.
///
-/// This entry is not present for executable.
+/// This entry is not present for executables.
class LIEF_API DynamicSharedObject : public DynamicEntry {
public:
using DynamicEntry::DynamicEntry;
DynamicSharedObject() :
- DynamicEntry(DynamicEntry::TAG::SONAME, 0)
- {}
+ DynamicEntry(DynamicEntry::TAG::SONAME, 0) {}
DynamicSharedObject(std::string name) :
DynamicEntry(DynamicEntry::TAG::SONAME, 0),
- name_(std::move(name))
- {}
+ name_(std::move(name)) {}
DynamicSharedObject& operator=(const DynamicSharedObject&) = default;
DynamicSharedObject(const DynamicSharedObject&) = default;
diff --git a/deps/LIEF/include/LIEF/ELF/EnumToString.hpp b/deps/LIEF/include/LIEF/ELF/EnumToString.hpp
index 8eae9f7af38..e6412128c95 100644
--- a/deps/LIEF/include/LIEF/ELF/EnumToString.hpp
+++ b/deps/LIEF/include/LIEF/ELF/EnumToString.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,4 +25,3 @@ LIEF_API const char* to_string(ARCH e);
} // namespace LIEF
#endif
-
diff --git a/deps/LIEF/include/LIEF/ELF/GnuHash.hpp b/deps/LIEF/include/LIEF/ELF/GnuHash.hpp
index 1cf07be653e..6f993748011 100644
--- a/deps/LIEF/include/LIEF/ELF/GnuHash.hpp
+++ b/deps/LIEF/include/LIEF/ELF/GnuHash.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -52,8 +52,7 @@ class LIEF_API GnuHash : public Object {
shift2_{shift2},
bloom_filters_{std::move(bloom_filters)},
buckets_{std::move(buckets)},
- hash_values_{std::move(hash_values)}
- {}
+ hash_values_{std::move(hash_values)} {}
GnuHash& operator=(const GnuHash& copy) = default;
GnuHash(const GnuHash& copy) = default;
@@ -70,7 +69,7 @@ class LIEF_API GnuHash : public Object {
}
/// Index of the first symbol in the dynamic
- /// symbols table which accessible with the hash table
+ /// symbols table which is accessible with the hash table
uint32_t symbol_index() const {
return symbol_index_;
}
@@ -87,17 +86,17 @@ class LIEF_API GnuHash : public Object {
}
/// Bloom filters
- const std::vector<uint64_t>& bloom_filters() const {
+ const std::vector<uint64_t>& bloom_filters() const LIEF_LIFETIMEBOUND {
return bloom_filters_;
}
/// Hash buckets
- const std::vector<uint32_t>& buckets() const {
+ const std::vector<uint32_t>& buckets() const LIEF_LIFETIMEBOUND {
return buckets_;
}
/// Hash values
- const std::vector<uint32_t>& hash_values() const {
+ const std::vector<uint32_t>& hash_values() const LIEF_LIFETIMEBOUND {
return hash_values_;
}
@@ -106,6 +105,9 @@ class LIEF_API GnuHash : public Object {
/// Check if the given hash passes the bucket filter
bool check_bucket(uint32_t hash) const {
+ if (nb_buckets() == 0) {
+ return false;
+ }
return buckets_[hash % nb_buckets()] > 0;
}
@@ -117,17 +119,19 @@ class LIEF_API GnuHash : public Object {
/// Check if the symbol associated with the given hash *probably* exists. If
/// the returned value is ``false`` you can assume at ``100%`` that
- /// the symbol doesn't exists. If ``true`` you can't
+ /// the symbol doesn't exist. If ``true`` you can't
/// do any assumption
bool check(uint32_t hash) const;
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const GnuHash& gnuhash);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const GnuHash& gnuhash);
template<class ELF_T>
- static LIEF_LOCAL std::unique_ptr<GnuHash> parse(SpanStream& strm, uint64_t dynsymcount);
+ static LIEF_LOCAL std::unique_ptr<GnuHash> parse(SpanStream& strm,
+ uint64_t dynsymcount);
template<class ELF_T>
static LIEF_LOCAL result<uint32_t> nb_symbols(SpanStream& strm);
@@ -138,7 +142,7 @@ class LIEF_API GnuHash : public Object {
private:
uint32_t symbol_index_ = 0;
- uint32_t shift2_ = 0;
+ uint32_t shift2_ = 0;
std::vector<uint64_t> bloom_filters_;
std::vector<uint32_t> buckets_;
@@ -149,7 +153,7 @@ class LIEF_API GnuHash : public Object {
};
-} // namepsace ELF
+} // namespace ELF
} // namespace LIEF
#endif
diff --git a/deps/LIEF/include/LIEF/ELF/Header.hpp b/deps/LIEF/include/LIEF/ELF/Header.hpp
index 2ed6ca65e8d..007b33943ee 100644
--- a/deps/LIEF/include/LIEF/ELF/Header.hpp
+++ b/deps/LIEF/include/LIEF/ELF/Header.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -34,80 +34,81 @@ class Parser;
/// ELF `Elfxx_Ehdr` structure
class LIEF_API Header : public Object {
friend class Parser;
+
public:
using identity_t = std::array<uint8_t, 16>;
public:
/// e_ident size and indices.
enum ELF_INDENT {
- ELI_MAG0 = 0, ///< File identification index.
- ELI_MAG1 = 1, ///< File identification index.
- ELI_MAG2 = 2, ///< File identification index.
- ELI_MAG3 = 3, ///< File identification index.
- ELI_CLASS = 4, ///< File class.
- ELI_DATA = 5, ///< Data encoding.
- ELI_VERSION = 6, ///< File version.
- ELI_OSABI = 7, ///< OS/ABI identification.
- ELI_ABIVERSION = 8, ///< ABI version.
- ELI_PAD = 9, ///< Start of padding bytes.
- ELI_NIDENT = 16 ///< Number of bytes in e_ident.
+ ELI_MAG0 = 0, ///< File identification index.
+ ELI_MAG1 = 1, ///< File identification index.
+ ELI_MAG2 = 2, ///< File identification index.
+ ELI_MAG3 = 3, ///< File identification index.
+ ELI_CLASS = 4, ///< File class.
+ ELI_DATA = 5, ///< Data encoding.
+ ELI_VERSION = 6, ///< File version.
+ ELI_OSABI = 7, ///< OS/ABI identification.
+ ELI_ABIVERSION = 8, ///< ABI version.
+ ELI_PAD = 9, ///< Start of padding bytes.
+ ELI_NIDENT = 16, ///< Number of bytes in e_ident.
};
/// The type of the underlying ELF file. This enum matches
/// the semantic of `ET_NONE`, `ET_REL`, ...
enum class FILE_TYPE {
NONE = 0, ///< Can't be determined
- REL = 1, ///< Relocatable file (or object file)
+ REL = 1, ///< Relocatable file (or object file)
EXEC = 2, ///< non-pie executable
- DYN = 3, ///< Shared library **or** a pie-executable
+ DYN = 3, ///< Shared library **or** a pie-executable
CORE = 4, ///< Core dump file
};
/// Match the result of `Elfxx_Ehdr.e_version`
enum class VERSION {
- NONE = 0, ///< Invalid ELF version
+ NONE = 0, ///< Invalid ELF version
CURRENT = 1, ///< Current version (default)
};
/// Match the result of `Elfxx_Ehdr.e_ident[EI_CLASS]`
enum class CLASS {
- NONE = 0, /// Invalid class
- ELF32, /// 32-bit objects
- ELF64, /// 64-bits objects
+ NONE = 0, ///< Invalid class
+ ELF32, ///< 32-bit objects
+ ELF64, ///< 64-bit objects
};
/// Match the result `Elfxx_Ehdr.e_ident[EI_OSABI]`
enum class OS_ABI {
- SYSTEMV = 0, /// UNIX System V ABI
- HPUX = 1, /// HP-UX operating system
- NETBSD = 2, /// NetBSD
- GNU = 3, /// GNU/Linux
- LINUX = 3, /// Historical alias for ELFOSABI_GNU.
- HURD = 4, /// GNU/Hurd
- SOLARIS = 6, /// Solaris
- AIX = 7, /// AIX
- IRIX = 8, /// IRIX
- FREEBSD = 9, /// FreeBSD
- TRU64 = 10, /// TRU64 UNIX
- MODESTO = 11, /// Novell Modesto
- OPENBSD = 12, /// OpenBSD
- OPENVMS = 13, /// OpenVMS
- NSK = 14, /// Hewlett-Packard Non-Stop Kernel
- AROS = 15, /// AROS
- FENIXOS = 16, /// FenixOS
- CLOUDABI = 17, /// Nuxi CloudABI
- C6000_ELFABI = 64, /// Bare-metal TMS320C6000
- AMDGPU_HSA = 64, /// AMD HSA runtime
- C6000_LINUX = 65, /// Linux TMS320C6000
- ARM = 97, /// ARM
- STANDALONE = 255 /// Standalone (embedded) application
+ SYSTEMV = 0, ///< UNIX System V ABI
+ HPUX = 1, ///< HP-UX operating system
+ NETBSD = 2, ///< NetBSD
+ GNU = 3, ///< GNU/Linux
+ LINUX = 3, ///< Historical alias for ELFOSABI_GNU.
+ HURD = 4, ///< GNU/Hurd
+ SOLARIS = 6, ///< Solaris
+ AIX = 7, ///< AIX
+ IRIX = 8, ///< IRIX
+ FREEBSD = 9, ///< FreeBSD
+ TRU64 = 10, ///< TRU64 UNIX
+ MODESTO = 11, ///< Novell Modesto
+ OPENBSD = 12, ///< OpenBSD
+ OPENVMS = 13, ///< OpenVMS
+ NSK = 14, ///< Hewlett-Packard Non-Stop Kernel
+ AROS = 15, ///< AROS
+ FENIXOS = 16, ///< FenixOS
+ CLOUDABI = 17, ///< Nuxi CloudABI
+ C6000_ELFABI = 64, ///< Bare-metal TMS320C6000
+ AMDGPU_HSA = 64, ///< AMD HSA runtime
+ C6000_LINUX = 65, ///< Linux TMS320C6000
+ ARM = 97, ///< ARM
+ STANDALONE = 255, ///< Standalone (embedded) application
};
/// Match the result `Elfxx_Ehdr.e_ident[EI_DATA]`
enum class ELF_DATA {
- NONE = 0, /// Invalid data encoding
- LSB = 1, /// 2's complement, little endian
- MSB = 2 /// 2's complement, big endian
+ NONE = 0, ///< Invalid data encoding
+ LSB = 1, ///< 2's complement, little endian
+ MSB = 2, ///< 2's complement, big endian
};
Header() = default;
diff --git a/deps/LIEF/include/LIEF/ELF/Note.hpp b/deps/LIEF/include/LIEF/ELF/Note.hpp
index ae365a21d62..a5ce70e73e8 100644
--- a/deps/LIEF/include/LIEF/ELF/Note.hpp
+++ b/deps/LIEF/include/LIEF/ELF/Note.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@
#include <memory>
#include "LIEF/Object.hpp"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/errors.hpp"
#include "LIEF/span.hpp"
@@ -52,12 +53,16 @@ class LIEF_API Note : public Object {
///
/// See: NoteAbi
GNU_ABI_TAG,
+
/// Match `NT_HWCAP`: Synthetic hardware capabilities information
GNU_HWCAP,
+
/// Match `NT_GNU_BUILD_ID`: Unique build ID as generated by the GNU ld
GNU_BUILD_ID,
+
/// Match `NT_GNU_GOLD_VERSION`: The version of gold used to link
GNU_GOLD_VERSION,
+
/// Match `NT_GNU_PROPERTY_TYPE_0`: Program property note, as described in
/// "Linux Extensions to the gABI".
GNU_PROPERTY_TYPE_0,
@@ -71,11 +76,13 @@ class LIEF_API Note : public Object {
/// Coredump that wraps the `elf_prstatus` structure
CORE_PRSTATUS,
CORE_FPREGSET,
+
/// Coredump that wraps the `elf_prpsinfo` structure
///
/// See: CorePrPsInfo
CORE_PRPSINFO,
CORE_TASKSTRUCT,
+
/// Coredump that contains a copy of all the auxiliary vectors (auxv)
///
/// See: CoreAuxv
@@ -119,10 +126,12 @@ class LIEF_API Note : public Object {
/// Note specific to Go binaries
GO_BUILDID,
+
/// Note for SystemTap probes
STAPSDT,
+
/// QNX Note
- QNX_STACK
+ QNX_STACK,
};
public:
@@ -148,27 +157,28 @@ class LIEF_API Note : public Object {
/// Create a new note from the given parameters. Additional information
/// such as the architecture or the ELF class could be required for
/// creating notes like Coredump notes.
- static std::unique_ptr<Note> create(
- const std::string& name, uint32_t type, description_t description,
- std::string section_name,
- Header::FILE_TYPE ftype = Header::FILE_TYPE::NONE, ARCH arch = ARCH::NONE,
- Header::CLASS cls = Header::CLASS::NONE);
+ static std::unique_ptr<Note>
+ create(const std::string& name, uint32_t type, description_t description,
+ std::string section_name,
+ Header::FILE_TYPE ftype = Header::FILE_TYPE::NONE,
+ ARCH arch = ARCH::NONE, Header::CLASS cls = Header::CLASS::NONE);
/// Create a new note from the given parameters. Additional information
/// such as the architecture or the ELF class could be required for
/// creating notes like Coredump notes.
- static std::unique_ptr<Note> create(
- const std::string& name, TYPE type, description_t description,
- std::string section_name,
- ARCH arch = ARCH::NONE, Header::CLASS cls = Header::CLASS::NONE);
+ static std::unique_ptr<Note> create(const std::string& name, TYPE type,
+ description_t description,
+ std::string section_name,
+ ARCH arch = ARCH::NONE,
+ Header::CLASS cls = Header::CLASS::NONE);
/// Create a new note from the given stream. Additional information
/// such as the architecture or the ELF class could be required for
/// creating notes like Coredump notes.
- static std::unique_ptr<Note> create(BinaryStream& stream,
- std::string section_name,
- Header::FILE_TYPE ftype = Header::FILE_TYPE::NONE, ARCH arch = ARCH::NONE,
- Header::CLASS cls = Header::CLASS::NONE);
+ static std::unique_ptr<Note>
+ create(BinaryStream& stream, std::string section_name,
+ Header::FILE_TYPE ftype = Header::FILE_TYPE::NONE,
+ ARCH arch = ARCH::NONE, Header::CLASS cls = Header::CLASS::NONE);
Note& operator=(const Note& copy) = default;
Note(const Note& copy) = default;
@@ -203,11 +213,11 @@ class LIEF_API Note : public Object {
}
/// Return the description associated with the note
- span<const uint8_t> description() const {
+ span<const uint8_t> description() const LIEF_LIFETIMEBOUND {
return description_;
}
- span<uint8_t> description() {
+ span<uint8_t> description() LIEF_LIFETIMEBOUND {
return description_;
}
@@ -227,16 +237,14 @@ class LIEF_API Note : public Object {
void accept(Visitor& visitor) const override;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const Note& note) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os, const Note& note) {
note.dump(os);
return os;
}
template<class T>
const T* cast() const {
- static_assert(std::is_base_of<Note, T>::value,
- "Require Note inheritance");
+ static_assert(std::is_base_of<Note, T>::value, "Require Note inheritance");
if (T::classof(this)) {
return static_cast<const T*>(this);
}
@@ -256,8 +264,7 @@ class LIEF_API Note : public Object {
type_(type),
original_type_(original_type),
description_(std::move(description)),
- section_name_(std::move(section))
- {}
+ section_name_(std::move(section)) {}
template<class T>
LIEF_LOCAL result<T> read_at(size_t offset) const;
@@ -267,10 +274,10 @@ class LIEF_API Note : public Object {
LIEF_LOCAL ok_error_t write_string_at(size_t offset, const std::string& value);
- LIEF_LOCAL result<std::string>
- read_string_at(size_t offset, size_t maxsize = 0) const;
+ LIEF_LOCAL result<std::string> read_string_at(size_t offset,
+ size_t maxsize = 0) const;
- std::string name_;
+ std::string name_;
TYPE type_ = TYPE::UNKNOWN;
uint32_t original_type_ = 0;
description_t description_;
@@ -280,6 +287,6 @@ class LIEF_API Note : public Object {
LIEF_API const char* to_string(Note::TYPE type);
-} // namepsace ELF
+} // namespace ELF
} // namespace LIEF
#endif
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails.hpp
index f1aba88bed5..fcd422d1fd6 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/AndroidIdent.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/AndroidIdent.hpp
index 0bcb5885452..125cba1f967 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/AndroidIdent.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/AndroidIdent.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,12 +27,13 @@ namespace ELF {
/// Class representing the ".note.android.ident" section
///
-/// @see: https://android.googlesource.com/platform/ndk/+/ndk-release-r16/sources/crt/crtbrand.S#39
+/// @see
+/// https://android.googlesource.com/platform/ndk/+/ndk-release-r16/sources/crt/crtbrand.S#39
class LIEF_API AndroidIdent : public Note {
public:
- static constexpr size_t sdk_version_size = sizeof(uint32_t);
- static constexpr size_t ndk_version_size = 64 * sizeof(char);
- static constexpr size_t ndk_build_number_size = 64 * sizeof(char);
+ static constexpr size_t sdk_version_size = sizeof(uint32_t);
+ static constexpr size_t ndk_version_size = 64 * sizeof(char);
+ static constexpr size_t ndk_build_number_size = 64 * sizeof(char);
public:
std::unique_ptr<Note> clone() const override {
@@ -66,17 +67,18 @@ class LIEF_API AndroidIdent : public Note {
return sdk_version_size + ndk_version_size + ndk_build_number_size;
}
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const AndroidIdent& note) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const AndroidIdent& note) {
note.dump(os);
return os;
}
+
protected:
using Note::Note;
};
-} // namepsace ELF
+} // namespace ELF
} // namespace LIEF
#endif
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/Core.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/Core.hpp
index 699328e08b5..4a9062949d7 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/Core.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/Core.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/NoteAbi.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/NoteAbi.hpp
index aa7de8fa4b9..1043af9f0fa 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/NoteAbi.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/NoteAbi.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -37,16 +37,16 @@ class LIEF_API NoteAbi : public Note {
FREEBSD,
NETBSD,
SYLLABLE,
- NACL
+ NACL,
};
/// Version type: (Major, Minor, Patch)
using version_t = std::array<uint32_t, 3>;
- static constexpr size_t abi_offset = 0;
- static constexpr size_t abi_size = sizeof(uint32_t);
+ static constexpr size_t abi_offset = 0;
+ static constexpr size_t abi_size = sizeof(uint32_t);
- static constexpr size_t version_offset = abi_size;
- static constexpr size_t version_size = 3 * sizeof(uint32_t);
+ static constexpr size_t version_offset = abi_size;
+ static constexpr size_t version_size = 3 * sizeof(uint32_t);
public:
using Note::Note;
@@ -72,15 +72,14 @@ class LIEF_API NoteAbi : public Note {
return note->type() == Note::TYPE::GNU_ABI_TAG;
}
- //// Size of the description content
+ /// Size of the description content
static constexpr uint8_t description_size() {
return /* abi */ sizeof(uint32_t) + /* version */ 3 * sizeof(uint32_t);
}
~NoteAbi() override = default;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const NoteAbi& note) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os, const NoteAbi& note) {
note.dump(os);
return os;
}
@@ -88,7 +87,7 @@ class LIEF_API NoteAbi : public Note {
LIEF_API const char* to_string(NoteAbi::ABI abi);
-} // namepsace ELF
+} // namespace ELF
} // namespace LIEF
#endif
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/NoteGnuProperty.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/NoteGnuProperty.hpp
index 807a5703d76..fcf6573d197 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/NoteGnuProperty.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/NoteGnuProperty.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,22 +29,37 @@ namespace ELF {
/// Class that wraps the `NT_GNU_PROPERTY_TYPE_0` note
class LIEF_API NoteGnuProperty : public Note {
public:
-
/// This class wraps the different properties that can be used in a
/// `NT_GNU_PROPERTY_TYPE_0` note
class LIEF_API Property {
public:
+ Property() = delete;
/// LIEF's mirror types of the original `GNU_PROPERTY_` values
enum class TYPE {
UNKNOWN = 0,
- GENERIC, ///< Property that dont' have special implementation
- AARCH64_FEATURES, ///< Mirror of `GNU_PROPERTY_AARCH64_FEATURE_1_AND`
- AARCH64_PAUTH, ///< Mirror of `GNU_PROPERTY_AARCH64_FEATURE_PAUTH`
- STACK_SIZE, ///< Mirror of `GNU_PROPERTY_STACK_SIZE`
- NO_COPY_ON_PROTECTED, ///< Mirror of `GNU_PROPERTY_NO_COPY_ON_PROTECTED`
- X86_ISA, ///< Mirror of `GNU_PROPERTY_X86_ISA_1_*` and `GNU_PROPERTY_X86_COMPAT_*`
- X86_FEATURE, ///< Mirror of `GNU_PROPERTY_X86_FEATURE_*`
+
+ /// Property that doesn't have a special implementation
+ GENERIC,
+
+ /// Mirror of `GNU_PROPERTY_AARCH64_FEATURE_1_AND`
+ AARCH64_FEATURES,
+
+ /// Mirror of `GNU_PROPERTY_AARCH64_FEATURE_PAUTH`
+ AARCH64_PAUTH,
+
+ /// Mirror of `GNU_PROPERTY_STACK_SIZE`
+ STACK_SIZE,
+
+ /// Mirror of `GNU_PROPERTY_NO_COPY_ON_PROTECTED`
+ NO_COPY_ON_PROTECTED,
+
+ /// Mirror of `GNU_PROPERTY_X86_ISA_1_*` and `GNU_PROPERTY_X86_COMPAT_*`
+ X86_ISA,
+
+ ///< Mirror of `GNU_PROPERTY_X86_FEATURE_*`
+ X86_FEATURE,
+
NEEDED,
};
@@ -57,14 +72,13 @@ class LIEF_API NoteGnuProperty : public Note {
virtual ~Property() = default;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const Property& prop) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const Property& prop) {
prop.dump(os);
return os;
}
protected:
- Property() = delete;
Property(TYPE type) :
type_(type) {}
TYPE type_ = TYPE::UNKNOWN;
@@ -72,13 +86,12 @@ class LIEF_API NoteGnuProperty : public Note {
using properties_t = std::vector<std::unique_ptr<NoteGnuProperty::Property>>;
- NoteGnuProperty(ARCH arch, Header::CLASS cls, std::string name,
- uint32_t type, description_t description,
- std::string secname) :
+ NoteGnuProperty(ARCH arch, Header::CLASS cls, std::string name, uint32_t type,
+ description_t description, std::string secname) :
Note(std::move(name), TYPE::GNU_PROPERTY_TYPE_0, type, std::move(description),
std::move(secname)),
- arch_(arch), class_(cls)
- {}
+ arch_(arch),
+ class_(cls) {}
std::unique_ptr<Note> clone() const override {
return std::unique_ptr<Note>(new NoteGnuProperty(*this));
@@ -100,8 +113,8 @@ class LIEF_API NoteGnuProperty : public Note {
~NoteGnuProperty() override = default;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const NoteGnuProperty& note) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const NoteGnuProperty& note) {
note.dump(os);
return os;
}
@@ -113,7 +126,7 @@ class LIEF_API NoteGnuProperty : public Note {
LIEF_API const char* to_string(NoteGnuProperty::Property::TYPE type);
-} // namepsace ELF
+} // namespace ELF
} // namespace LIEF
#endif
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/Properties.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/Properties.hpp
index eeb39b0a37a..091ae60c64e 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/Properties.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/Properties.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/QNXStack.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/QNXStack.hpp
index f614ab895db..8d72fdb00e5 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/QNXStack.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/QNXStack.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -55,17 +55,18 @@ class LIEF_API QNXStack : public Note {
~QNXStack() override = default;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const QNXStack& note) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const QNXStack& note) {
note.dump(os);
return os;
}
+
protected:
using Note::Note;
};
-} // namepsace ELF
+} // namespace ELF
} // namespace LIEF
#endif
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CoreAuxv.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CoreAuxv.hpp
index 09b4227f384..a27b50861f4 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CoreAuxv.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CoreAuxv.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -52,26 +52,26 @@ class LIEF_API CoreAuxv : public Note {
FPUCW, /**< Used FPU control word. */
DCACHEBSIZE, /**< Data cache block size. */
ICACHEBSIZE, /**< Instruction cache block size. */
- UCACHEBSIZE, /**< Instruction cache block size. */
+ UCACHEBSIZE, /**< Unified cache block size. */
IGNOREPPC, /**< Entry should be ignored. */
SECURE, /**< Boolean, was exec setuid-like?. */
BASE_PLATFORM, /**< String identifying real platform */
RANDOM, /**< Address of 16 random bytes */
HWCAP2, /**< Extension of AT_HWCAP */
- //ENTRY27,
- //ENTRY28,
- //ENTRY29,
- //ENTRY30,
- EXECFN = 31, /**< Filename of executable */
- SYSINFO, /**< Filename of executable */
- SYSINFO_EHDR, /**< Pointer to ELF header of system-supplied DSO. */
+ // ENTRY27,
+ // ENTRY28,
+ // ENTRY29,
+ // ENTRY30,
+ EXECFN = 31, /**< Filename of executable */
+ SYSINFO, /**< Filename of executable */
+ SYSINFO_EHDR, /**< Pointer to ELF header of system-supplied DSO. */
};
- CoreAuxv(ARCH arch, Header::CLASS cls, std::string name,
- uint32_t type, description_t description) :
+ CoreAuxv(ARCH arch, Header::CLASS cls, std::string name, uint32_t type,
+ description_t description) :
Note(std::move(name), Note::TYPE::CORE_AUXV, type, std::move(description), ""),
- arch_(arch), class_(cls)
- {}
+ arch_(arch),
+ class_(cls) {}
std::unique_ptr<Note> clone() const override {
return std::unique_ptr<Note>(new CoreAuxv(*this));
@@ -101,8 +101,8 @@ class LIEF_API CoreAuxv : public Note {
~CoreAuxv() override = default;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const CoreAuxv& note) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const CoreAuxv& note) {
note.dump(os);
return os;
}
@@ -114,7 +114,7 @@ class LIEF_API CoreAuxv : public Note {
LIEF_API const char* to_string(CoreAuxv::TYPE type);
-} // namepsace ELF
+} // namespace ELF
} // namespace LIEF
#endif
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CoreFile.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CoreFile.hpp
index 28e968ee316..f637b85112e 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CoreFile.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CoreFile.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,22 +32,22 @@ class LIEF_API CoreFile : public Note {
public:
/// Core file entry
struct entry_t {
- uint64_t start = 0; /// Start address of mapped file
+ uint64_t start = 0; ///< Start address of mapped file
uint64_t end = 0; ///< End address of mapped file
uint64_t file_ofs = 0; ///< Offset (in core) of mapped file
std::string path; ///< Path of mapped file
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const entry_t& entry);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const entry_t& entry);
};
- using files_t = std::vector<entry_t>;
- using iterator = files_t::iterator;
+ using files_t = std::vector<entry_t>;
+ using iterator = files_t::iterator;
using const_iterator = files_t::const_iterator;
public:
- CoreFile(ARCH arch, Header::CLASS cls, std::string name,
- uint32_t type, Note::description_t description);
+ CoreFile(ARCH arch, Header::CLASS cls, std::string name, uint32_t type,
+ Note::description_t description);
std::unique_ptr<Note> clone() const override {
return std::unique_ptr<Note>(new CoreFile(*this));
@@ -59,7 +59,7 @@ class LIEF_API CoreFile : public Note {
}
/// Coredump file entries
- const files_t& files() const {
+ const files_t& files() const LIEF_LIFETIMEBOUND {
return files_;
}
@@ -90,8 +90,8 @@ class LIEF_API CoreFile : public Note {
~CoreFile() override = default;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const CoreFile& note) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const CoreFile& note) {
note.dump(os);
return os;
}
@@ -103,13 +103,13 @@ class LIEF_API CoreFile : public Note {
template<class T>
LIEF_LOCAL void write_files();
- files_t files_;
+ files_t files_;
uint64_t page_size_ = 0;
ARCH arch_ = ARCH::NONE;
Header::CLASS class_ = Header::CLASS::NONE;
};
-} // namepsace ELF
+} // namespace ELF
} // namespace LIEF
#endif
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CorePrPsInfo.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CorePrPsInfo.hpp
index d9af0f842b3..1daa4dbd5d3 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CorePrPsInfo.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CorePrPsInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
#include <ostream>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/ELF/enums.hpp"
#include "LIEF/ELF/Note.hpp"
@@ -30,19 +31,19 @@ namespace ELF {
class LIEF_API CorePrPsInfo : public Note {
public:
struct info_t {
- uint8_t state = 0; /// Numeric process state
- char sname = ' '; /// printable character representing state
- bool zombie = false; /// Whether the process is a zombie
- uint8_t nice = 0; /// Nice value
- uint64_t flag = 0; /// Process flag
- uint32_t uid = 0; /// Process user ID
- uint32_t gid = 0; /// Process group ID
- uint32_t pid = 0; /// Process ID
- uint32_t ppid = 0; /// Process parent ID
- uint32_t pgrp = 0; /// Process group
- uint32_t sid = 0; /// Process session id
- std::string filename; /// Filename of the executable
- std::string args; /// Initial part of the arguments
+ uint8_t state = 0; ///< Numeric process state
+ char sname = ' '; ///< Printable character representing state
+ bool zombie = false; ///< Whether the process is a zombie
+ uint8_t nice = 0; ///< Nice value
+ uint64_t flag = 0; ///< Process flag
+ uint32_t uid = 0; ///< Process user ID
+ uint32_t gid = 0; ///< Process group ID
+ uint32_t pid = 0; ///< Process ID
+ uint32_t ppid = 0; ///< Process parent ID
+ uint32_t pgrp = 0; ///< Process group
+ uint32_t sid = 0; ///< Process session ID
+ std::string filename; ///< Filename of the executable
+ std::string args; ///< Initial part of the arguments
/// Return the filename without the ending `\x00`
std::string filename_stripped() const {
@@ -54,11 +55,11 @@ class LIEF_API CorePrPsInfo : public Note {
return args.c_str();
}
};
- CorePrPsInfo(ARCH arch, Header::CLASS cls, std::string name,
- uint32_t type, description_t description) :
+ CorePrPsInfo(ARCH arch, Header::CLASS cls, std::string name, uint32_t type,
+ description_t description) :
Note(std::move(name), TYPE::CORE_PRPSINFO, type, std::move(description), ""),
- arch_(arch), class_(cls)
- {}
+ arch_(arch),
+ class_(cls) {}
std::unique_ptr<Note> clone() const override {
return std::unique_ptr<Note>(new CorePrPsInfo(*this));
@@ -78,17 +79,18 @@ class LIEF_API CorePrPsInfo : public Note {
~CorePrPsInfo() override = default;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const CorePrPsInfo& note) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const CorePrPsInfo& note) {
note.dump(os);
return os;
}
+
private:
- [[maybe_unused]] ARCH arch_ = ARCH::NONE;
+ LIEF_MAYBE_UNUSED ARCH arch_ = ARCH::NONE;
Header::CLASS class_ = Header::CLASS::NONE;
};
-} // namepsace ELF
+} // namespace ELF
} // namespace LIEF
#endif
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CorePrStatus.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CorePrStatus.hpp
index bb91ea12f67..3ba5b28c474 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CorePrStatus.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CorePrStatus.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -45,6 +45,11 @@ class LIEF_API CorePrStatus : public Note {
uint64_t usec = 0;
};
+ /// Status information from a core dump
+ ///
+ /// This structure mirrors the kernel's `prstatus` data embedded in
+ /// `NT_PRSTATUS` core-dump notes and exposes signal state, process
+ /// identifiers, and CPU-time accounting.
struct pr_status_t {
siginfo_t info;
@@ -54,10 +59,10 @@ class LIEF_API CorePrStatus : public Note {
uint64_t sigpend = 0;
uint64_t sighold = 0;
- int32_t pid = 0;
- int32_t ppid = 0;
- int32_t pgrp = 0;
- int32_t sid = 0;
+ int32_t pid = 0;
+ int32_t ppid = 0;
+ int32_t pgrp = 0;
+ int32_t sid = 0;
timeval_t utime;
timeval_t stime;
@@ -68,41 +73,124 @@ class LIEF_API CorePrStatus : public Note {
struct Registers {
/// Register for the x86 architecture (ARCH::I386).
enum class X86 {
- EBX = 0, ECX, EDX, ESI, EDI, EBP, EAX,
- DS, ES, FS, GS, ORIG_EAX, EIP, CS, EFLAGS, ESP, SS,
- _COUNT
+ EBX = 0,
+ ECX,
+ EDX,
+ ESI,
+ EDI,
+ EBP,
+ EAX,
+ DS,
+ ES,
+ FS,
+ GS,
+ ORIG_EAX,
+ EIP,
+ CS,
+ EFLAGS,
+ ESP,
+ SS,
+ _COUNT,
};
/// Register for the x86-64 architecture (ARCH::X86_64).
enum class X86_64 {
- R15 = 0, R14, R13, R12, RBP, RBX, R11, R10,
- R9, R8, RAX, RCX, RDX, RSI, RDI, ORIG_RAX,
- RIP, CS, EFLAGS, RSP, SS,
- _COUNT
+ R15 = 0,
+ R14,
+ R13,
+ R12,
+ RBP,
+ RBX,
+ R11,
+ R10,
+ R9,
+ R8,
+ RAX,
+ RCX,
+ RDX,
+ RSI,
+ RDI,
+ ORIG_RAX,
+ RIP,
+ CS,
+ EFLAGS,
+ RSP,
+ SS,
+ FS_BASE,
+ GS_BASE,
+ DS,
+ ES,
+ _COUNT,
};
/// Register for the ARM architecture (ARCH::ARM).
enum class ARM {
- R0 = 0, R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15,
+ R0 = 0,
+ R1,
+ R2,
+ R3,
+ R4,
+ R5,
+ R6,
+ R7,
+ R8,
+ R9,
+ R10,
+ R11,
+ R12,
+ R13,
+ R14,
+ R15,
CPSR,
- _COUNT
+ _COUNT,
};
/// Register for the AARCH64 architecture (ARCH::AARCH64).
enum class AARCH64 {
- X0 = 0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15,
- X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, X26, X27, X28, X29, X30,
- X31, PC, PSTATE,
- _COUNT
+ X0 = 0,
+ X1,
+ X2,
+ X3,
+ X4,
+ X5,
+ X6,
+ X7,
+ X8,
+ X9,
+ X10,
+ X11,
+ X12,
+ X13,
+ X14,
+ X15,
+ X16,
+ X17,
+ X18,
+ X19,
+ X20,
+ X21,
+ X22,
+ X23,
+ X24,
+ X25,
+ X26,
+ X27,
+ X28,
+ X29,
+ X30,
+ X31,
+ PC,
+ PSTATE,
+ _COUNT,
};
};
public:
- CorePrStatus(ARCH arch, Header::CLASS cls, std::string name,
- uint32_t type, description_t description) :
+ CorePrStatus(ARCH arch, Header::CLASS cls, std::string name, uint32_t type,
+ description_t description) :
Note(std::move(name), TYPE::CORE_PRSTATUS, type, std::move(description), ""),
- arch_(arch), class_(cls)
- {}
+ arch_(arch),
+ class_(cls) {}
std::unique_ptr<Note> clone() const override {
return std::unique_ptr<CorePrStatus>(new CorePrStatus(*this));
@@ -179,8 +267,8 @@ class LIEF_API CorePrStatus : public Note {
~CorePrStatus() override = default;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const CorePrStatus& note) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const CorePrStatus& note) {
note.dump(os);
return os;
}
@@ -195,7 +283,7 @@ LIEF_API const char* to_string(CorePrStatus::Registers::X86_64 e);
LIEF_API const char* to_string(CorePrStatus::Registers::ARM e);
LIEF_API const char* to_string(CorePrStatus::Registers::AARCH64 e);
-} // namepsace ELF
+} // namespace ELF
} // namespace LIEF
#endif
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CoreSigInfo.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CoreSigInfo.hpp
index d9d3381d8b7..f3df861dfcd 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CoreSigInfo.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/core/CoreSigInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -33,12 +33,13 @@ class LIEF_API CoreSigInfo : public Note {
return std::unique_ptr<CoreSigInfo>(new CoreSigInfo(*this));
}
- /// Signal number of an error if it can't be resolved
+ /// Signal number or an error if it can't be resolved
result<int32_t> signo() const;
- /// Signal code of an error if it can't be resolved
+
+ /// Signal code or an error if it can't be resolved
result<int32_t> sigcode() const;
- /// Signal error number of an error if it can't be resolved
+ /// Signal error number or an error if it can't be resolved
result<int32_t> sigerrno() const;
void signo(uint32_t value);
@@ -54,15 +55,16 @@ class LIEF_API CoreSigInfo : public Note {
return note->type() == Note::TYPE::CORE_SIGINFO;
}
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const CoreSigInfo& note) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const CoreSigInfo& note) {
note.dump(os);
return os;
}
+
protected:
using Note::Note;
};
-} // namepsace ELF
+} // namespace ELF
} // namespace LIEF
#endif
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/AArch64Feature.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/AArch64Feature.hpp
index dac7a856470..d1f0ca0df50 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/AArch64Feature.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/AArch64Feature.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,6 +31,7 @@ class LIEF_API AArch64Feature : public NoteGnuProperty::Property {
UNKNOWN = 0,
BTI, ///< Support Branch Target Identification (BTI)
PAC, ///< Support Pointer authentication (PAC)
+ GCS, ///< Guarded Control Stack
};
/// Return the list of the supported features
@@ -44,19 +45,17 @@ class LIEF_API AArch64Feature : public NoteGnuProperty::Property {
static std::unique_ptr<AArch64Feature> create(BinaryStream& stream);
- void dump(std::ostream &os) const override;
+ void dump(std::ostream& os) const override;
~AArch64Feature() override = default;
protected:
AArch64Feature() :
- NoteGnuProperty::Property(NoteGnuProperty::Property::TYPE::AARCH64_FEATURES)
- {}
+ NoteGnuProperty::Property(NoteGnuProperty::Property::TYPE::AARCH64_FEATURES) {}
AArch64Feature(std::vector<FEATURE> features) :
NoteGnuProperty::Property(NoteGnuProperty::Property::TYPE::AARCH64_FEATURES),
- features_(std::move(features))
- {}
+ features_(std::move(features)) {}
std::vector<FEATURE> features_;
};
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/AArch64PAuth.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/AArch64PAuth.hpp
index efca9bd7204..8183657188c 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/AArch64PAuth.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/AArch64PAuth.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,7 +27,7 @@ namespace ELF {
/// This class represents the `GNU_PROPERTY_AARCH64_FEATURE_PAUTH` property.
///
-/// \note If both: AArch64PAuth::platform and AArch64PAuth::version are set to
+/// @note If both AArch64PAuth::platform and AArch64PAuth::version are set to
/// 0, this means that the binary is incompatible with PAuth ABI extension.
class LIEF_API AArch64PAuth : public NoteGnuProperty::Property {
public:
@@ -50,20 +50,18 @@ class LIEF_API AArch64PAuth : public NoteGnuProperty::Property {
static std::unique_ptr<AArch64PAuth> create(BinaryStream& stream);
- void dump(std::ostream &os) const override;
+ void dump(std::ostream& os) const override;
~AArch64PAuth() override = default;
protected:
AArch64PAuth() :
- NoteGnuProperty::Property(NoteGnuProperty::Property::TYPE::AARCH64_PAUTH)
- {}
+ NoteGnuProperty::Property(NoteGnuProperty::Property::TYPE::AARCH64_PAUTH) {}
AArch64PAuth(uint64_t platform, uint64_t version) :
NoteGnuProperty::Property(NoteGnuProperty::Property::TYPE::AARCH64_PAUTH),
platform_(platform),
- version_(version)
- {}
+ version_(version) {}
uint64_t platform_ = 0;
uint64_t version_ = 0;
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/Generic.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/Generic.hpp
index edcaf866a09..58a2464aa18 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/Generic.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/Generic.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,7 +25,6 @@ namespace ELF {
/// implementation.
class Generic : public NoteGnuProperty::Property {
public:
-
/// The original raw type as an integer. This value might depends
/// on the architecture and/or the file type.
uint32_t type() const {
@@ -45,8 +44,7 @@ class Generic : public NoteGnuProperty::Property {
protected:
Generic(uint32_t raw_type) :
NoteGnuProperty::Property(NoteGnuProperty::Property::TYPE::GENERIC),
- raw_type_(raw_type)
- {}
+ raw_type_(raw_type) {}
uint32_t raw_type_ = 0;
};
}
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/Needed.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/Needed.hpp
index 9507dbc56ed..cf0fa32936d 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/Needed.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/Needed.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,24 +15,52 @@
*/
#ifndef LIEF_ELF_NOTE_DETAILS_PROPERTIES_NEEDED_H
#define LIEF_ELF_NOTE_DETAILS_PROPERTIES_NEEDED_H
+#include <vector>
+#include "LIEF/visibility.h"
#include "LIEF/ELF/NoteDetails/NoteGnuProperty.hpp"
namespace LIEF {
+class BinaryStream;
+
namespace ELF {
-class Needed : public NoteGnuProperty::Property {
+/// This class represents the ``GNU_PROPERTY_1_NEEDED`` note property.
+///
+/// This property provides information about additional features that the
+/// object file needs at runtime (e.g. indirect external access).
+class LIEF_API Needed : public NoteGnuProperty::Property {
public:
enum class NEED {
UNKNOWN = 0,
- INDIRECT_EXTERN_ACCESS,
+ INDIRECT_EXTERN_ACCESS, ///< The object needs indirect external access
};
+
+ /// Return the list of needed features
+ const std::vector<NEED>& needs() const {
+ return needs_;
+ }
+
static bool classof(const NoteGnuProperty::Property* prop) {
return prop->type() == NoteGnuProperty::Property::TYPE::NEEDED;
}
+ static std::unique_ptr<Needed> create(BinaryStream& stream);
+
+ void dump(std::ostream& os) const override;
+
~Needed() override = default;
+
+ protected:
+ Needed(std::vector<NEED> needs) :
+ NoteGnuProperty::Property(NoteGnuProperty::Property::TYPE::NEEDED),
+ needs_(std::move(needs)) {}
+
+ std::vector<NEED> needs_;
};
+
+LIEF_API const char* to_string(Needed::NEED need);
+
}
}
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/NoteNoCopyOnProtected.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/NoteNoCopyOnProtected.hpp
index 0720c8e1afb..78da60971e9 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/NoteNoCopyOnProtected.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/NoteNoCopyOnProtected.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -38,8 +38,9 @@ class NoteNoCopyOnProtected : public NoteGnuProperty::Property {
protected:
NoteNoCopyOnProtected() :
- NoteGnuProperty::Property(NoteGnuProperty::Property::TYPE::NO_COPY_ON_PROTECTED)
- {}
+ NoteGnuProperty::Property(
+ NoteGnuProperty::Property::TYPE::NO_COPY_ON_PROTECTED
+ ) {}
};
}
}
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/StackSize.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/StackSize.hpp
index ebd63a90d84..36b7e54ee5c 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/StackSize.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/StackSize.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -39,15 +39,14 @@ class LIEF_API StackSize : public NoteGnuProperty::Property {
return stack_size_;
}
- void dump(std::ostream &os) const override;
+ void dump(std::ostream& os) const override;
~StackSize() override = default;
protected:
StackSize(uint64_t stack_size) :
NoteGnuProperty::Property(NoteGnuProperty::Property::TYPE::STACK_SIZE),
- stack_size_(stack_size)
- {}
+ stack_size_(stack_size) {}
uint64_t stack_size_ = 0;
};
}
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/X86Feature.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/X86Feature.hpp
index a4653fd8777..c0d518e6f13 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/X86Feature.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/X86Feature.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,7 +31,6 @@ namespace ELF {
/// - ``GNU_PROPERTY_X86_FEATURE_2_NEEDED``
class LIEF_API X86Features : public NoteGnuProperty::Property {
public:
-
/// Flag according to the ``_AND``, ``_USED`` or ``_NEEDED`` suffixes
enum class FLAG {
NONE = 0, ///< For the original ``GNU_PROPERTY_X86_FEATURE_1_AND`` property
@@ -79,17 +78,18 @@ class LIEF_API X86Features : public NoteGnuProperty::Property {
return features_;
}
- void dump(std::ostream &os) const override;
+ void dump(std::ostream& os) const override;
~X86Features() override = default;
protected:
- inline static std::unique_ptr<X86Features> create_feat1(FLAG flag, BinaryStream& stream);
- inline static std::unique_ptr<X86Features> create_feat2(FLAG flag, BinaryStream& stream);
+ inline static std::unique_ptr<X86Features> create_feat1(FLAG flag,
+ BinaryStream& stream);
+ inline static std::unique_ptr<X86Features> create_feat2(FLAG flag,
+ BinaryStream& stream);
X86Features(features_t values) :
NoteGnuProperty::Property(NoteGnuProperty::Property::TYPE::X86_FEATURE),
- features_(std::move(values))
- {}
+ features_(std::move(values)) {}
features_t features_;
};
diff --git a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/X86ISA.hpp b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/X86ISA.hpp
index 0b64d08672e..226d828a6de 100644
--- a/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/X86ISA.hpp
+++ b/deps/LIEF/include/LIEF/ELF/NoteDetails/properties/X86ISA.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -90,17 +90,16 @@ class LIEF_API X86ISA : public NoteGnuProperty::Property {
~X86ISA() override = default;
- void dump(std::ostream &os) const override;
+ void dump(std::ostream& os) const override;
protected:
+ inline static std::unique_ptr<X86ISA> create_isa_1(FLAG flag,
+ BinaryStream& stream);
inline static std::unique_ptr<X86ISA>
- create_isa_1(FLAG flag, BinaryStream& stream);
- inline static std::unique_ptr<X86ISA>
- create_compat_isa_1(FLAG flag, BinaryStream& stream, bool is_compat2);
+ create_compat_isa_1(FLAG flag, BinaryStream& stream, bool is_compat2);
X86ISA(values_t values) :
NoteGnuProperty::Property(NoteGnuProperty::Property::TYPE::X86_ISA),
- values_(std::move(values))
- {}
+ values_(std::move(values)) {}
values_t values_;
};
diff --git a/deps/LIEF/include/LIEF/ELF/Parser.hpp b/deps/LIEF/include/LIEF/ELF/Parser.hpp
index 12b1436d98b..daeee162337 100644
--- a/deps/LIEF/include/LIEF/ELF/Parser.hpp
+++ b/deps/LIEF/include/LIEF/ELF/Parser.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,7 +22,6 @@
#include "LIEF/Abstract/Parser.hpp"
#include "LIEF/errors.hpp"
-#include "LIEF/ELF/enums.hpp"
#include "LIEF/ELF/ParserConfig.hpp"
@@ -44,56 +43,112 @@ class Relocation;
/// Class which parses and transforms an ELF file into a ELF::Binary object
class LIEF_API Parser : public LIEF::Parser {
friend class OAT::Parser;
+
public:
- static constexpr uint32_t NB_MAX_SYMBOLS = 1000000;
- static constexpr uint32_t DELTA_NB_SYMBOLS = 3000;
- static constexpr uint32_t NB_MAX_BUCKETS = NB_MAX_SYMBOLS;
- static constexpr uint32_t NB_MAX_CHAINS = 1000000;
- static constexpr uint32_t NB_MAX_SEGMENTS = 10000;
- static constexpr uint32_t NB_MAX_RELOCATIONS = 3000000;
+ static constexpr uint32_t NB_MAX_SYMBOLS = 1000000;
+ static constexpr uint32_t DELTA_NB_SYMBOLS = 3000;
+ static constexpr uint32_t NB_MAX_BUCKETS = NB_MAX_SYMBOLS;
+ static constexpr uint32_t NB_MAX_CHAINS = 1000000;
+ static constexpr uint32_t NB_MAX_SEGMENTS = 10000;
+ static constexpr uint32_t NB_MAX_RELOCATIONS = 3000000;
static constexpr uint32_t NB_MAX_DYNAMIC_ENTRIES = 1000;
- static constexpr uint32_t MAX_SEGMENT_SIZE = 3_GB;
+ static constexpr uint32_t MAX_SEGMENT_SIZE = 3_GB;
enum ELF_TYPE {
ELF_UNKNOWN,
- ELF32, ELF64
+ ELF32,
+ ELF64,
};
/// Parse an ELF file and return a LIEF::ELF::Binary object
///
- /// For weird binaries (e.g. sectionless) you can choose which method to use for counting dynamic symbols
+ /// For weird binaries (e.g. sectionless) you can choose which method to use for
+ /// counting dynamic symbols
///
/// @param[in] file Path to the ELF binary
/// @param[in] conf Optional configuration for the parser
///
/// @return LIEF::ELF::Binary as a `unique_ptr`
- static std::unique_ptr<Binary> parse(const std::string& file,
- const ParserConfig& conf = ParserConfig::all());
+ static std::unique_ptr<Binary>
+ parse(const std::string& file,
+ const ParserConfig& conf = ParserConfig::all());
- /// Parse the given raw data as an ELF binary and return a LIEF::ELF::Binary object
+ /// Parse the given raw data as an ELF binary and return a LIEF::ELF::Binary
+ /// object
///
- /// For weird binaries (e.g. sectionless) you can choose which method use to count dynamic symbols
+ /// For weird binaries (e.g. sectionless) you can choose which method to use to
+ /// count dynamic symbols
///
/// @param[in] data Raw ELF as a std::vector of uint8_t
/// @param[in] conf Optional configuration for the parser
///
/// @return LIEF::ELF::Binary
- static std::unique_ptr<Binary> parse(const std::vector<uint8_t>& data,
- const ParserConfig& conf = ParserConfig::all());
+ static std::unique_ptr<Binary>
+ parse(const std::vector<uint8_t>& data,
+ const ParserConfig& conf = ParserConfig::all());
- /// Parse the ELF binary from the given stream and return a LIEF::ELF::Binary object
+ /// Parse the ELF binary from the given stream and return a LIEF::ELF::Binary
+ /// object
///
- /// For weird binaries (e.g. sectionless) you can choose which method use to count dynamic symbols
+ /// For weird binaries (e.g. sectionless) you can choose which method to use to
+ /// count dynamic symbols
///
/// @param[in] stream The stream which wraps the ELF binary
/// @param[in] conf Optional configuration for the parser
///
/// @return LIEF::ELF::Binary
- static std::unique_ptr<Binary> parse(std::unique_ptr<BinaryStream> stream,
- const ParserConfig& conf = ParserConfig::all());
+ static std::unique_ptr<Binary>
+ parse(std::unique_ptr<BinaryStream> stream,
+ const ParserConfig& conf = ParserConfig::all());
+
+ /// Parse the ELF binary from the given memory address
+ ///
+ /// @param[in] address Base address of the ELF binary in memory
+ /// @param[in] conf Optional configuration for the parser
+ ///
+ /// @return LIEF::ELF::Binary
+ static std::unique_ptr<Binary>
+ parse_from_memory(uintptr_t address,
+ const ParserConfig& conf = ParserConfig::all());
+
+ /// Parse the ELF binary from the given memory address with the given size
+ ///
+ /// @param[in] address Base address of the ELF binary in memory
+ /// @param[in] size Size of the memory region
+ /// @param[in] conf Optional configuration for the parser
+ ///
+ /// @return LIEF::ELF::Binary
+ static std::unique_ptr<Binary>
+ parse_from_memory(uintptr_t address, size_t size,
+ const ParserConfig& conf = ParserConfig::all());
+
+ /// Parse an ELF binary from a memory dump located on disk.
+ ///
+ /// A dump is a raw capture of the process memory that was mapped starting at
+ /// the virtual address `addr`. This is typically used to parse an ELF image
+ /// that has been dumped from memory (e.g. from a debugger or a runtime hook).
+ ///
+ /// @param[in] filepath Path to the file that contains the memory dump
+ /// @param[in] addr Virtual address at which the dump was mapped
+ /// @param[in] conf Optional configuration for the parser
+ static std::unique_ptr<Binary>
+ parse_from_dump(const std::string& filepath, uint64_t addr,
+ const ParserConfig& conf = ParserConfig::all());
+
+ /// Same as parse_from_dump(const std::string&, uint64_t, const ParserConfig&)
+ /// but the dump is wrapped in the given **non-owned** stream.
+ static std::unique_ptr<Binary>
+ parse_from_dump(BinaryStream& stream, uint64_t addr,
+ const ParserConfig& conf = ParserConfig::all());
+
+ /// Same as parse_from_dump(const std::string&, uint64_t, const ParserConfig&)
+ /// but the dump is wrapped in the given **owned** stream.
+ static std::unique_ptr<Binary>
+ parse_from_dump(std::unique_ptr<BinaryStream> stream, uint64_t addr,
+ const ParserConfig& conf = ParserConfig::all());
Parser& operator=(const Parser&) = delete;
- Parser(const Parser&) = delete;
+ Parser(const Parser&) = delete;
~Parser() override;
@@ -125,16 +180,18 @@ class LIEF_API Parser : public LIEF::Parser {
template<typename ELF_T>
LIEF_LOCAL ok_error_t parse_segments();
- LIEF_LOCAL uint64_t get_dynamic_string_table(BinaryStream* stream = nullptr) const;
+ LIEF_LOCAL uint64_t
+ get_dynamic_string_table(BinaryStream* stream = nullptr) const;
- LIEF_LOCAL result<uint64_t> get_dynamic_string_table_from_segments(BinaryStream* stream = nullptr) const;
+ LIEF_LOCAL result<uint64_t>
+ get_dynamic_string_table_from_segments(BinaryStream* stream = nullptr) const;
LIEF_LOCAL uint64_t get_dynamic_string_table_from_sections() const;
/// Return the number of dynamic symbols using the given method
template<typename ELF_T>
LIEF_LOCAL result<uint32_t>
- get_numberof_dynamic_symbols(ParserConfig::DYNSYM_COUNT mtd) const;
+ get_numberof_dynamic_symbols(ParserConfig::DYNSYM_COUNT mtd) const;
/// Count based on hash table (reliable)
template<typename ELF_T>
@@ -167,20 +224,20 @@ class LIEF_API Parser : public LIEF::Parser {
/// Parser find Symbols offset by using the file offset attribute of the
/// ELF_SECTION_TYPES::SHT_SYMTAB Section.
///
- /// The number of symbols is taken from the `information` attribute in the section header.
+ /// The number of symbols is taken from the `information` attribute in the
+ /// section header.
///
/// The section containing symbols name is found with the `link` attribute.
template<typename ELF_T>
- LIEF_LOCAL ok_error_t
- parse_symtab_symbols(uint64_t offset, uint32_t nb_symbols,
- const Section& string_section);
+ LIEF_LOCAL ok_error_t parse_symtab_symbols(const Section& symtab_section,
+ const Section& string_section);
/// Parse Dynamic relocations
///
/// It uses DT_REL/DT_RELA dynamic entries to parse it
template<typename ELF_T, typename REL_T>
- LIEF_LOCAL ok_error_t
- parse_dynamic_relocations(uint64_t relocations_offset, uint64_t size);
+ LIEF_LOCAL ok_error_t parse_dynamic_relocations(uint64_t relocations_offset,
+ uint64_t size);
/// Parse `.plt.got`/`got` relocations
///
@@ -205,8 +262,7 @@ class LIEF_API Parser : public LIEF::Parser {
/// Parse relocations using LIEF::ELF::Section.
/// Section relocations are usually found in object files
template<typename ELF_T, typename REL_T>
- LIEF_LOCAL ok_error_t
- parse_section_relocations(const Section& section);
+ LIEF_LOCAL ok_error_t parse_section_relocations(const Section& section);
/// Parse SymbolVersionRequirement
///
@@ -214,8 +270,8 @@ class LIEF_API Parser : public LIEF::Parser {
/// DynamicEntry::TAG::VERNEED entry to get the offset.
/// and DynamicEntry::TAG::VERNEEDNUM to get the number of entries
template<typename ELF_T>
- LIEF_LOCAL ok_error_t
- parse_symbol_version_requirement(uint64_t offset, uint32_t nb_entries);
+ LIEF_LOCAL ok_error_t parse_symbol_version_requirement(uint64_t offset,
+ uint32_t nb_entries);
/// Parse SymbolVersionDefinition.
@@ -224,8 +280,8 @@ class LIEF_API Parser : public LIEF::Parser {
/// the DynamicEntry::TAG::VERDEF DT_VERDEF entry to get the offset.
/// DynamicEntry::TAG::VERDEFNUM gives the number of entries
template<typename ELF_T>
- LIEF_LOCAL ok_error_t
- parse_symbol_version_definition(uint64_t offset, uint32_t nb_entries);
+ LIEF_LOCAL ok_error_t parse_symbol_version_definition(uint64_t offset,
+ uint32_t nb_entries);
/// Parse @link SymbolVersion Symbol version @endlink.
@@ -245,8 +301,8 @@ class LIEF_API Parser : public LIEF::Parser {
/// Parse Note (.gnu.note)
LIEF_LOCAL ok_error_t parse_notes(uint64_t offset, uint64_t size);
- LIEF_LOCAL std::unique_ptr<Note>
- get_note(uint32_t type, std::string name, std::vector<uint8_t> desc_bytes);
+ LIEF_LOCAL std::unique_ptr<Note> get_note(uint32_t type, std::string name,
+ std::vector<uint8_t> desc_bytes);
/// Parse Symbols's SYSV hash
LIEF_LOCAL ok_error_t parse_symbol_sysv_hash(uint64_t offset);
@@ -254,10 +310,12 @@ class LIEF_API Parser : public LIEF::Parser {
LIEF_LOCAL ok_error_t parse_overlay();
template<typename ELF_T, typename REL_T>
- LIEF_LOCAL uint32_t max_relocation_index(uint64_t relocations_offset, uint64_t size) const;
+ LIEF_LOCAL uint32_t max_relocation_index(uint64_t relocations_offset,
+ uint64_t size) const;
/// Check if the given Section is wrapped by the given segment
- LIEF_LOCAL static bool check_section_in_segment(const Section& section, const Segment& segment);
+ LIEF_LOCAL static bool check_section_in_segment(const Section& section,
+ const Segment& segment);
LIEF_LOCAL bool bind_symbol(Relocation& R);
LIEF_LOCAL Relocation& insert_relocation(std::unique_ptr<Relocation> R);
@@ -276,6 +334,7 @@ class LIEF_API Parser : public LIEF::Parser {
* reference sections. That's why we have this unordered_map.
*/
std::unordered_map<size_t, Section*> sections_idx_;
+ uint64_t memory_address_ = 0;
};
} // namespace ELF
diff --git a/deps/LIEF/include/LIEF/ELF/ParserConfig.hpp b/deps/LIEF/include/LIEF/ELF/ParserConfig.hpp
index a178568062a..00fd80dad63 100644
--- a/deps/LIEF/include/LIEF/ELF/ParserConfig.hpp
+++ b/deps/LIEF/include/LIEF/ELF/ParserConfig.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,20 +16,28 @@
#ifndef LIEF_ELF_PARSER_CONFIG_H
#define LIEF_ELF_PARSER_CONFIG_H
#include "LIEF/visibility.h"
-#include "LIEF/ELF/enums.hpp"
+
+#include <cstdint>
namespace LIEF {
namespace ELF {
/// This structure is used to tweak the ELF Parser (ELF::Parser)
struct LIEF_API ParserConfig {
- /** Methods that can be used by the LIEF::ELF::Parser
- to count the number of dynamic symbols */
+ /// Methods that can be used by the LIEF::ELF::Parser to count the number
+ /// of dynamic symbols
enum class DYNSYM_COUNT {
- AUTO = 0, /**< Automatic detection */
- SECTION = 1, /**< Count based on sections (not very reliable) */
- HASH = 2, /**< Count based on hash table (reliable) */
- RELOCATIONS = 3, /**< Count based on PLT/GOT relocations (very reliable but not accurate) */
+ /// Automatic detection
+ AUTO = 0,
+
+ /// Count based on sections (not very reliable)
+ SECTION,
+
+ /// Count based on hash table (reliable)
+ HASH,
+
+ /// Count based on PLT/GOT relocations (very reliable but not accurate)
+ RELOCATIONS,
};
/// This returns a ParserConfig object configured to process all the ELF
@@ -39,14 +47,25 @@ struct LIEF_API ParserConfig {
return DEFAULT;
}
- bool parse_relocations = true; ///< Whether relocations (including plt-like relocations) should be parsed.
- bool parse_dyn_symbols = true; ///< Whether dynamic symbols (those from `.dynsym`) should be parsed
- bool parse_symtab_symbols = true; ///< Whether debug symbols (those from `.symtab`) should be parsed
- bool parse_symbol_versions = true; ///< Whether versioning symbols should be parsed
- bool parse_notes = true; ///< Whether ELF notes information should be parsed
- bool parse_overlay = true; ///< Whether the overlay data should be parsed
+ /// Whether relocations (including plt-like relocations) should be parsed.
+ bool parse_relocations = true;
+
+ /// Whether dynamic symbols (those from `.dynsym`) should be parsed
+ bool parse_dyn_symbols = true;
+
+ /// Whether debug symbols (those from `.symtab`) should be parsed
+ bool parse_symtab_symbols = true;
+
+ /// Whether versioning symbols should be parsed
+ bool parse_symbol_versions = true;
+
+ /// Whether ELF notes information should be parsed
+ bool parse_notes = true;
+
+ /// Whether the overlay data should be parsed
+ bool parse_overlay = true;
- /** The method used to count the number of dynamic symbols */
+ /// The method used to count the number of dynamic symbols
DYNSYM_COUNT count_mtd = DYNSYM_COUNT::AUTO;
/// Memory page size if the binary uses a non-standard value.
diff --git a/deps/LIEF/include/LIEF/ELF/ProcessorFlags.hpp b/deps/LIEF/include/LIEF/ELF/ProcessorFlags.hpp
index 5b6bcfde8ff..992c6069e6b 100644
--- a/deps/LIEF/include/LIEF/ELF/ProcessorFlags.hpp
+++ b/deps/LIEF/include/LIEF/ELF/ProcessorFlags.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@
namespace LIEF {
namespace ELF {
+// clang-format off
static constexpr uint64_t PFLAGS_BIT = 43;
static constexpr uint64_t PFLAGS_MASK = (1LLU << PFLAGS_BIT) - 1;
static constexpr uint64_t PF_ARM_ID = 1;
@@ -39,73 +40,71 @@ enum class PROCESSOR_FLAGS : uint64_t {
ARM_EABI_VER4 = 0x04000000 | (PF_ARM_ID << PFLAGS_BIT),
ARM_EABI_VER5 = 0x05000000 | (PF_ARM_ID << PFLAGS_BIT),
- HEXAGON_MACH_V2 = 0x00000001 | (PF_HEX_ID << PFLAGS_BIT), // Hexagon V2
- HEXAGON_MACH_V3 = 0x00000002 | (PF_HEX_ID << PFLAGS_BIT), // Hexagon V3
- HEXAGON_MACH_V4 = 0x00000003 | (PF_HEX_ID << PFLAGS_BIT), // Hexagon V4
- HEXAGON_MACH_V5 = 0x00000004 | (PF_HEX_ID << PFLAGS_BIT), // Hexagon V5
-
- HEXAGON_ISA_V2 = 0x00000010 | (PF_HEX_ID << PFLAGS_BIT), // Hexagon V2 ISA
- HEXAGON_ISA_V3 = 0x00000020 | (PF_HEX_ID << PFLAGS_BIT), // Hexagon V3 ISA
- HEXAGON_ISA_V4 = 0x00000030 | (PF_HEX_ID << PFLAGS_BIT), // Hexagon V4 ISA
- HEXAGON_ISA_V5 = 0x00000040 | (PF_HEX_ID << PFLAGS_BIT), // Hexagon V5 ISA
-
- LOONGARCH_ABI_SOFT_FLOAT = 0x1 | (PF_LOONGARCH_ID << PFLAGS_BIT),
- LOONGARCH_ABI_SINGLE_FLOAT = 0x2 | (PF_LOONGARCH_ID << PFLAGS_BIT),
- LOONGARCH_ABI_DOUBLE_FLOAT = 0x3 | (PF_LOONGARCH_ID << PFLAGS_BIT),
-
- MIPS_NOREORDER = 0x00000001 | (PF_MIPS_ID << PFLAGS_BIT), /* Don't reorder instructions */
- MIPS_PIC = 0x00000002 | (PF_MIPS_ID << PFLAGS_BIT), /* Position independent code */
- MIPS_CPIC = 0x00000004 | (PF_MIPS_ID << PFLAGS_BIT), /* Call object with Position independent code */
- MIPS_ABI2 = 0x00000020 | (PF_MIPS_ID << PFLAGS_BIT), /* File uses N32 ABI */
- MIPS_32BITMODE = 0x00000100 | (PF_MIPS_ID << PFLAGS_BIT), /* Code compiled for a 64-bit machine */
- /* in 32-bit mode */
- MIPS_FP64 = 0x00000200 | (PF_MIPS_ID << PFLAGS_BIT), /* Code compiled for a 32-bit machine */
- /* but uses 64-bit FP registers */
- MIPS_NAN2008 = 0x00000400 | (PF_MIPS_ID << PFLAGS_BIT), /* Uses IEE 754-2008 NaN encoding */
+ HEXAGON_MACH_V2 = 0x00000001 | (PF_HEX_ID << PFLAGS_BIT), // Hexagon V2
+ HEXAGON_MACH_V3 = 0x00000002 | (PF_HEX_ID << PFLAGS_BIT), // Hexagon V3
+ HEXAGON_MACH_V4 = 0x00000003 | (PF_HEX_ID << PFLAGS_BIT), // Hexagon V4
+ HEXAGON_MACH_V5 = 0x00000004 | (PF_HEX_ID << PFLAGS_BIT), // Hexagon V5
+
+ HEXAGON_ISA_V2 = 0x00000010 | (PF_HEX_ID << PFLAGS_BIT), // Hexagon V2 ISA
+ HEXAGON_ISA_V3 = 0x00000020 | (PF_HEX_ID << PFLAGS_BIT), // Hexagon V3 ISA
+ HEXAGON_ISA_V4 = 0x00000030 | (PF_HEX_ID << PFLAGS_BIT), // Hexagon V4 ISA
+ HEXAGON_ISA_V5 = 0x00000040 | (PF_HEX_ID << PFLAGS_BIT), // Hexagon V5 ISA
+
+ LOONGARCH_ABI_SOFT_FLOAT = 0x1 | (PF_LOONGARCH_ID << PFLAGS_BIT),
+ LOONGARCH_ABI_SINGLE_FLOAT = 0x2 | (PF_LOONGARCH_ID << PFLAGS_BIT),
+ LOONGARCH_ABI_DOUBLE_FLOAT = 0x3 | (PF_LOONGARCH_ID << PFLAGS_BIT),
+
+ MIPS_NOREORDER = 0x00000001 | (PF_MIPS_ID << PFLAGS_BIT), /* Don't reorder instructions */
+ MIPS_PIC = 0x00000002 | (PF_MIPS_ID << PFLAGS_BIT), /* Position independent code */
+ MIPS_CPIC = 0x00000004 | (PF_MIPS_ID << PFLAGS_BIT), /* Call object with Position independent code */
+ MIPS_ABI2 = 0x00000020 | (PF_MIPS_ID << PFLAGS_BIT), /* File uses N32 ABI */
+ MIPS_32BITMODE = 0x00000100 | (PF_MIPS_ID << PFLAGS_BIT), /* Code compiled for a 64-bit machine */
+ MIPS_FP64 = 0x00000200 | (PF_MIPS_ID << PFLAGS_BIT), /* Code compiled for a 32-bit machine */
+ MIPS_NAN2008 = 0x00000400 | (PF_MIPS_ID << PFLAGS_BIT), /* Uses IEE 754-2008 NaN encoding */
/* ABI flags */
- MIPS_ABI_O32 = 0x00001000 | (PF_MIPS_ID << PFLAGS_BIT), /* This file follows the first MIPS 32 bit ABI */
- MIPS_ABI_O64 = 0x00002000 | (PF_MIPS_ID << PFLAGS_BIT), /* O32 ABI extended for 64-bit architecture. */
- MIPS_ABI_EABI32 = 0x00003000 | (PF_MIPS_ID << PFLAGS_BIT), /* EABI in 32 bit mode. */
- MIPS_ABI_EABI64 = 0x00004000 | (PF_MIPS_ID << PFLAGS_BIT), /* EABI in 64 bit mode. */
+ MIPS_ABI_O32 = 0x00001000 | (PF_MIPS_ID << PFLAGS_BIT), /* This file follows the first MIPS 32 bit ABI */
+ MIPS_ABI_O64 = 0x00002000 | (PF_MIPS_ID << PFLAGS_BIT), /* O32 ABI extended for 64-bit architecture. */
+ MIPS_ABI_EABI32 = 0x00003000 | (PF_MIPS_ID << PFLAGS_BIT), /* EABI in 32 bit mode. */
+ MIPS_ABI_EABI64 = 0x00004000 | (PF_MIPS_ID << PFLAGS_BIT), /* EABI in 64 bit mode. */
/* MIPS machine variant */
- MIPS_MACH_3900 = 0x00810000 | (PF_MIPS_ID << PFLAGS_BIT), /* Toshiba R3900 */
- MIPS_MACH_4010 = 0x00820000 | (PF_MIPS_ID << PFLAGS_BIT), /* LSI R4010 */
- MIPS_MACH_4100 = 0x00830000 | (PF_MIPS_ID << PFLAGS_BIT), /* NEC VR4100 */
- MIPS_MACH_4650 = 0x00850000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS R4650 */
- MIPS_MACH_4120 = 0x00870000 | (PF_MIPS_ID << PFLAGS_BIT), /* NEC VR4120 */
- MIPS_MACH_4111 = 0x00880000 | (PF_MIPS_ID << PFLAGS_BIT), /* NEC VR4111/VR4181 */
- MIPS_MACH_SB1 = 0x008a0000 | (PF_MIPS_ID << PFLAGS_BIT), /* Broadcom SB-1 */
- MIPS_MACH_OCTEON = 0x008b0000 | (PF_MIPS_ID << PFLAGS_BIT), /* Cavium Networks Octeon */
- MIPS_MACH_XLR = 0x008c0000 | (PF_MIPS_ID << PFLAGS_BIT), /* RMI Xlr */
- MIPS_MACH_OCTEON2 = 0x008d0000 | (PF_MIPS_ID << PFLAGS_BIT), /* Cavium Networks Octeon2 */
- MIPS_MACH_OCTEON3 = 0x008e0000 | (PF_MIPS_ID << PFLAGS_BIT), /* Cavium Networks Octeon3 */
- MIPS_MACH_5400 = 0x00910000 | (PF_MIPS_ID << PFLAGS_BIT), /* NEC VR5400 */
- MIPS_MACH_5900 = 0x00920000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS R5900 */
- MIPS_MACH_5500 = 0x00980000 | (PF_MIPS_ID << PFLAGS_BIT), /* NEC VR5500 */
- MIPS_MACH_9000 = 0x00990000 | (PF_MIPS_ID << PFLAGS_BIT), /* Unknown */
- MIPS_MACH_LS2E = 0x00a00000 | (PF_MIPS_ID << PFLAGS_BIT), /* ST Microelectronics Loongson 2E */
- MIPS_MACH_LS2F = 0x00a10000 | (PF_MIPS_ID << PFLAGS_BIT), /* ST Microelectronics Loongson 2F */
- MIPS_MACH_LS3A = 0x00a20000 | (PF_MIPS_ID << PFLAGS_BIT), /* Loongson 3A */
+ MIPS_MACH_3900 = 0x00810000 | (PF_MIPS_ID << PFLAGS_BIT), /* Toshiba R3900 */
+ MIPS_MACH_4010 = 0x00820000 | (PF_MIPS_ID << PFLAGS_BIT), /* LSI R4010 */
+ MIPS_MACH_4100 = 0x00830000 | (PF_MIPS_ID << PFLAGS_BIT), /* NEC VR4100 */
+ MIPS_MACH_4650 = 0x00850000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS R4650 */
+ MIPS_MACH_4120 = 0x00870000 | (PF_MIPS_ID << PFLAGS_BIT), /* NEC VR4120 */
+ MIPS_MACH_4111 = 0x00880000 | (PF_MIPS_ID << PFLAGS_BIT), /* NEC VR4111/VR4181 */
+ MIPS_MACH_SB1 = 0x008a0000 | (PF_MIPS_ID << PFLAGS_BIT), /* Broadcom SB-1 */
+ MIPS_MACH_OCTEON = 0x008b0000 | (PF_MIPS_ID << PFLAGS_BIT), /* Cavium Networks Octeon */
+ MIPS_MACH_XLR = 0x008c0000 | (PF_MIPS_ID << PFLAGS_BIT), /* RMI Xlr */
+ MIPS_MACH_OCTEON2 = 0x008d0000 | (PF_MIPS_ID << PFLAGS_BIT), /* Cavium Networks Octeon2 */
+ MIPS_MACH_OCTEON3 = 0x008e0000 | (PF_MIPS_ID << PFLAGS_BIT), /* Cavium Networks Octeon3 */
+ MIPS_MACH_5400 = 0x00910000 | (PF_MIPS_ID << PFLAGS_BIT), /* NEC VR5400 */
+ MIPS_MACH_5900 = 0x00920000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS R5900 */
+ MIPS_MACH_5500 = 0x00980000 | (PF_MIPS_ID << PFLAGS_BIT), /* NEC VR5500 */
+ MIPS_MACH_9000 = 0x00990000 | (PF_MIPS_ID << PFLAGS_BIT), /* Unknown */
+ MIPS_MACH_LS2E = 0x00a00000 | (PF_MIPS_ID << PFLAGS_BIT), /* ST Microelectronics Loongson 2E */
+ MIPS_MACH_LS2F = 0x00a10000 | (PF_MIPS_ID << PFLAGS_BIT), /* ST Microelectronics Loongson 2F */
+ MIPS_MACH_LS3A = 0x00a20000 | (PF_MIPS_ID << PFLAGS_BIT), /* Loongson 3A */
/* ARCH_ASE */
- MIPS_MICROMIPS = 0x02000000 | (PF_MIPS_ID << PFLAGS_BIT), /* microMIPS */
- MIPS_ARCH_ASE_M16 = 0x04000000 | (PF_MIPS_ID << PFLAGS_BIT), /* Has Mips-16 ISA extensions */
- MIPS_ARCH_ASE_MDMX = 0x08000000 | (PF_MIPS_ID << PFLAGS_BIT), /* Has MDMX multimedia extensions */
+ MIPS_MICROMIPS = 0x02000000 | (PF_MIPS_ID << PFLAGS_BIT), /* microMIPS */
+ MIPS_ARCH_ASE_M16 = 0x04000000 | (PF_MIPS_ID << PFLAGS_BIT), /* Has Mips-16 ISA extensions */
+ MIPS_ARCH_ASE_MDMX = 0x08000000 | (PF_MIPS_ID << PFLAGS_BIT), /* Has MDMX multimedia extensions */
/* ARCH */
- MIPS_ARCH_1 = 0x00000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS1 instruction set */
- MIPS_ARCH_2 = 0x10000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS2 instruction set */
- MIPS_ARCH_3 = 0x20000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS3 instruction set */
- MIPS_ARCH_4 = 0x30000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS4 instruction set */
- MIPS_ARCH_5 = 0x40000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS5 instruction set */
- MIPS_ARCH_32 = 0x50000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS32 instruction set per linux not elf.h */
- MIPS_ARCH_64 = 0x60000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS64 instruction set per linux not elf.h */
- MIPS_ARCH_32R2 = 0x70000000 | (PF_MIPS_ID << PFLAGS_BIT), /* mips32r2, mips32r3, mips32r5 */
- MIPS_ARCH_64R2 = 0x80000000 | (PF_MIPS_ID << PFLAGS_BIT), /* mips64r2, mips64r3, mips64r5 */
- MIPS_ARCH_32R6 = 0x90000000 | (PF_MIPS_ID << PFLAGS_BIT), /* mips32r6 */
- MIPS_ARCH_64R6 = 0xa0000000 | (PF_MIPS_ID << PFLAGS_BIT), /* mips64r6 */
+ MIPS_ARCH_1 = 0x00000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS1 instruction set */
+ MIPS_ARCH_2 = 0x10000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS2 instruction set */
+ MIPS_ARCH_3 = 0x20000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS3 instruction set */
+ MIPS_ARCH_4 = 0x30000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS4 instruction set */
+ MIPS_ARCH_5 = 0x40000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS5 instruction set */
+ MIPS_ARCH_32 = 0x50000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS32 instruction set per linux not elf.h */
+ MIPS_ARCH_64 = 0x60000000 | (PF_MIPS_ID << PFLAGS_BIT), /* MIPS64 instruction set per linux not elf.h */
+ MIPS_ARCH_32R2 = 0x70000000 | (PF_MIPS_ID << PFLAGS_BIT), /* mips32r2, mips32r3, mips32r5 */
+ MIPS_ARCH_64R2 = 0x80000000 | (PF_MIPS_ID << PFLAGS_BIT), /* mips64r2, mips64r3, mips64r5 */
+ MIPS_ARCH_32R6 = 0x90000000 | (PF_MIPS_ID << PFLAGS_BIT), /* mips32r6 */
+ MIPS_ARCH_64R6 = 0xa0000000 | (PF_MIPS_ID << PFLAGS_BIT), /* mips64r6 */
RISCV_RVC = 0x00000001 | (PF_RISCV_ID << PFLAGS_BIT),
@@ -117,6 +116,7 @@ enum class PROCESSOR_FLAGS : uint64_t {
RISCV_FLOAT_ABI_RVE = 0x00000008 | (PF_RISCV_ID << PFLAGS_BIT),
RISCV_FLOAT_ABI_TSO = 0x00000010 | (PF_RISCV_ID << PFLAGS_BIT),
};
+// clang-format on
LIEF_API const char* to_string(PROCESSOR_FLAGS flag);
diff --git a/deps/LIEF/include/LIEF/ELF/Relocation.hpp b/deps/LIEF/include/LIEF/ELF/Relocation.hpp
index b2001fb04cb..60b70328a72 100644
--- a/deps/LIEF/include/LIEF/ELF/Relocation.hpp
+++ b/deps/LIEF/include/LIEF/ELF/Relocation.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -44,27 +44,40 @@ class LIEF_API Relocation : public LIEF::Relocation {
friend class Builder;
public:
-
/// The *purpose* of a relocation defines how this relocation is used by the
/// loader.
enum class PURPOSE {
NONE = 0,
- PLTGOT = 1, ///< The relocation is associated with the PLT/GOT resolution
- DYNAMIC = 2, ///< The relocation is used for regulard data/code relocation
- OBJECT = 3, ///< The relocation is used in an object file
+ /// The relocation is associated with the PLT/GOT resolution
+ PLTGOT,
+
+ /// The relocation is used for regular data/code relocation
+ DYNAMIC,
+
+ /// The relocation is used in an object file
+ OBJECT,
};
enum class ENCODING {
UNKNOWN = 0,
- REL, ///< The relocation is using the regular Elf_Rel structure
- RELA, ///< The relocation is using the regular Elf_Rela structure
- RELR, ///< The relocation is using the relative relocation format
- ANDROID_SLEB, ///< The relocation is using the packed Android-SLEB128 format
+
+ /// The relocation is using the regular Elf_Rel structure
+ REL,
+
+ /// The relocation is using the regular Elf_Rela structure
+ RELA,
+
+ /// The relocation is using the relative relocation format
+ RELR,
+
+ /// The relocation is using the packed Android-SLEB128 format
+ ANDROID_SLEB,
};
static constexpr uint64_t R_BIT = 27;
static constexpr uint64_t R_MASK = (uint64_t(1) << R_BIT) - 1;
+ // clang-format off
static constexpr uint64_t R_X64 = uint64_t(1) << R_BIT;
static constexpr uint64_t R_AARCH64 = uint64_t(2) << R_BIT;
static constexpr uint64_t R_ARM = uint64_t(3) << R_BIT;
@@ -79,66 +92,67 @@ class LIEF_API Relocation : public LIEF::Relocation {
static constexpr uint64_t R_RISCV = uint64_t(12) << R_BIT;
static constexpr uint64_t R_BPF = uint64_t(13) << R_BIT;
static constexpr uint64_t R_SH4 = uint64_t(14) << R_BIT;
+ // clang-format on
/// The different types of the relocation
enum class TYPE : uint32_t {
UNKNOWN = uint32_t(-1),
- #define ELF_RELOC(name, value) name = (value | R_X64),
- #include "LIEF/ELF/Relocations/x86_64.def"
- #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_X64),
+#include "LIEF/ELF/Relocations/x86_64.def"
+#undef ELF_RELOC
- #define ELF_RELOC(name, value) name = (value | R_AARCH64),
- #include "LIEF/ELF/Relocations/AArch64.def"
- #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_AARCH64),
+#include "LIEF/ELF/Relocations/AArch64.def"
+#undef ELF_RELOC
- #define ELF_RELOC(name, value) name = (value | R_ARM),
- #include "LIEF/ELF/Relocations/ARM.def"
- #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_ARM),
+#include "LIEF/ELF/Relocations/ARM.def"
+#undef ELF_RELOC
- #define ELF_RELOC(name, value) name = (value | R_HEXAGON),
- #include "LIEF/ELF/Relocations/Hexagon.def"
- #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_HEXAGON),
+#include "LIEF/ELF/Relocations/Hexagon.def"
+#undef ELF_RELOC
- #define ELF_RELOC(name, value) name = (value | R_X86),
- #include "LIEF/ELF/Relocations/i386.def"
- #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_X86),
+#include "LIEF/ELF/Relocations/i386.def"
+#undef ELF_RELOC
- #define ELF_RELOC(name, value) name = (value | R_LARCH),
- #include "LIEF/ELF/Relocations/LoongArch.def"
- #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_LARCH),
+#include "LIEF/ELF/Relocations/LoongArch.def"
+#undef ELF_RELOC
- #define ELF_RELOC(name, value) name = (value | R_MIPS),
- #include "LIEF/ELF/Relocations/Mips.def"
- #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_MIPS),
+#include "LIEF/ELF/Relocations/Mips.def"
+#undef ELF_RELOC
- #define ELF_RELOC(name, value) name = (value | R_PPC),
- #include "LIEF/ELF/Relocations/PowerPC.def"
- #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_PPC),
+#include "LIEF/ELF/Relocations/PowerPC.def"
+#undef ELF_RELOC
- #define ELF_RELOC(name, value) name = (value | R_PPC64),
- #include "LIEF/ELF/Relocations/PowerPC64.def"
- #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_PPC64),
+#include "LIEF/ELF/Relocations/PowerPC64.def"
+#undef ELF_RELOC
- #define ELF_RELOC(name, value) name = (value | R_SPARC),
- #include "LIEF/ELF/Relocations/Sparc.def"
- #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_SPARC),
+#include "LIEF/ELF/Relocations/Sparc.def"
+#undef ELF_RELOC
- #define ELF_RELOC(name, value) name = (value | R_SYSZ),
- #include "LIEF/ELF/Relocations/SystemZ.def"
- #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_SYSZ),
+#include "LIEF/ELF/Relocations/SystemZ.def"
+#undef ELF_RELOC
- #define ELF_RELOC(name, value) name = (value | R_RISCV),
- #include "LIEF/ELF/Relocations/RISCV.def"
- #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_RISCV),
+#include "LIEF/ELF/Relocations/RISCV.def"
+#undef ELF_RELOC
- #define ELF_RELOC(name, value) name = (value | R_BPF),
- #include "LIEF/ELF/Relocations/BPF.def"
- #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_BPF),
+#include "LIEF/ELF/Relocations/BPF.def"
+#undef ELF_RELOC
- #define ELF_RELOC(name, value) name = (value | R_SH4),
- #include "LIEF/ELF/Relocations/SH4.def"
- #undef ELF_RELOC
+#define ELF_RELOC(name, value) name = (value | R_SH4),
+#include "LIEF/ELF/Relocations/SH4.def"
+#undef ELF_RELOC
};
static TYPE type_from(uint32_t value, ARCH arch);
@@ -150,15 +164,14 @@ class LIEF_API Relocation : public LIEF::Relocation {
Relocation(uint64_t address, TYPE type, ENCODING enc);
Relocation() = default;
- Relocation(ARCH arch) {
- architecture_ = arch;
- }
+ Relocation(ARCH arch) :
+ architecture_(arch) {}
~Relocation() override = default;
/// Copy constructor.
///
- /// \warning When this constructor is invoked, referenced sections or symbols
+ /// @warning When this constructor is invoked, referenced sections or symbols
/// are discarded. This means that on the copied Relocation, Relocation::section,
/// Relocation::symbol and Relocation::symbol_table are set to a nullptr.
Relocation(const Relocation& other) :
@@ -166,8 +179,7 @@ class LIEF_API Relocation : public LIEF::Relocation {
type_{other.type_},
addend_{other.addend_},
encoding_{other.encoding_},
- architecture_{other.architecture_}
- {}
+ architecture_{other.architecture_} {}
/// Copy assignment operator.
///
@@ -178,17 +190,17 @@ class LIEF_API Relocation : public LIEF::Relocation {
}
void swap(Relocation& other) {
- std::swap(address_, other.address_);
- std::swap(type_, other.type_);
- std::swap(addend_, other.addend_);
- std::swap(encoding_, other.encoding_);
- std::swap(symbol_, other.symbol_);
+ std::swap(address_, other.address_);
+ std::swap(type_, other.type_);
+ std::swap(addend_, other.addend_);
+ std::swap(encoding_, other.encoding_);
+ std::swap(symbol_, other.symbol_);
std::swap(architecture_, other.architecture_);
- std::swap(purpose_, other.purpose_);
- std::swap(section_, other.section_);
+ std::swap(purpose_, other.purpose_);
+ std::swap(section_, other.section_);
std::swap(symbol_table_, other.symbol_table_);
- std::swap(info_, other.info_);
- std::swap(binary_, other.binary_);
+ std::swap(info_, other.info_);
+ std::swap(binary_, other.binary_);
}
/// Additional value that can be involved in the relocation processing
@@ -234,8 +246,8 @@ class LIEF_API Relocation : public LIEF::Relocation {
return 0;
}
return clazz == Header::CLASS::ELF32 ?
- uint32_t(info()) << 8 | to_value(type()) :
- uint64_t(info()) << 32 | (to_value(type()) & 0xffffffffL);
+ uint32_t(info()) << 8 | to_value(type()) :
+ uint64_t(info()) << 32 | (to_value(type()) & 0xffffffffL);
}
/// Target architecture for this relocation
@@ -270,11 +282,11 @@ class LIEF_API Relocation : public LIEF::Relocation {
}
/// Symbol associated with the relocation (or a nullptr)
- Symbol* symbol() {
+ Symbol* symbol() LIEF_LIFETIMEBOUND {
return symbol_;
}
- const Symbol* symbol() const {
+ const Symbol* symbol() const LIEF_LIFETIMEBOUND {
return symbol_;
}
@@ -284,20 +296,20 @@ class LIEF_API Relocation : public LIEF::Relocation {
}
/// The section in which the relocation is applied (or a nullptr)
- Section* section() {
+ Section* section() LIEF_LIFETIMEBOUND {
return section_;
}
- const Section* section() const {
+ const Section* section() const LIEF_LIFETIMEBOUND {
return section_;
}
/// The associated symbol table (or a nullptr)
- Section* symbol_table() {
+ Section* symbol_table() LIEF_LIFETIMEBOUND {
return symbol_table_;
}
- const Section* symbol_table() const {
+ const Section* symbol_table() const LIEF_LIFETIMEBOUND {
return symbol_table_;
}
@@ -335,7 +347,8 @@ class LIEF_API Relocation : public LIEF::Relocation {
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const Relocation& entry);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const Relocation& entry);
private:
template<class T>
diff --git a/deps/LIEF/include/LIEF/ELF/Section.hpp b/deps/LIEF/include/LIEF/ELF/Section.hpp
index 08e22c35879..7e61ef85e0e 100644
--- a/deps/LIEF/include/LIEF/ELF/Section.hpp
+++ b/deps/LIEF/include/LIEF/ELF/Section.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,6 +22,7 @@
#include <memory>
#include "LIEF/utils.hpp"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/Abstract/Section.hpp"
@@ -53,56 +54,65 @@ class LIEF_API Section : public LIEF::Section {
friend class ObjectFileLayout;
public:
- using segments_t = std::vector<Segment*>;
- using it_segments = ref_iterator<segments_t&>;
+ using segments_t = std::vector<Segment*>;
+ using it_segments = ref_iterator<segments_t&>;
using it_const_segments = const_ref_iterator<const segments_t&>;
static constexpr uint32_t MAX_SECTION_SIZE = 2_GB;
+ // clang-format off
enum class TYPE : uint64_t {
- SHT_NULL_ = 0, /**< No associated section (inactive entry). */
- PROGBITS = 1, /**< Program-defined contents. */
- SYMTAB = 2, /**< Symbol table. */
- STRTAB = 3, /**< String table. */
- RELA = 4, /**< Relocation entries; explicit addends. */
- HASH = 5, /**< Symbol hash table. */
- DYNAMIC = 6, /**< Information for dynamic linking. */
- NOTE = 7, /**< Information about the file. */
- NOBITS = 8, /**< Data occupies no space in the file. */
- REL = 9, /**< Relocation entries; no explicit addends. */
- SHLIB = 10, /**< Reserved. */
- DYNSYM = 11, /**< Symbol table. */
- INIT_ARRAY = 14, /**< Pointers to initialization functions. */
- FINI_ARRAY = 15, /**< Pointers to termination functions. */
- PREINIT_ARRAY = 16, /**< Pointers to pre-init functions. */
- GROUP = 17, /**< Section group. */
- SYMTAB_SHNDX = 18, /**< Indices for SHN_XINDEX entries. */
- RELR = 19, /**< Relocation entries; only offsets. */
-
- ANDROID_REL = 0x60000001, /**< Packed relocations (Android specific). */
- ANDROID_RELA = 0x60000002, /**< Packed relocations (Android specific). */
- LLVM_ADDRSIG = 0x6fff4c03, /**< This section is used to mark symbols as address-significant. */
- ANDROID_RELR = 0x6fffff00, /**< New relr relocations (Android specific). */
- GNU_ATTRIBUTES = 0x6ffffff5, /**< Object attributes. */
- GNU_HASH = 0x6ffffff6, /**< GNU-style hash table. */
- GNU_VERDEF = 0x6ffffffd, /**< GNU version definitions. */
- GNU_VERNEED = 0x6ffffffe, /**< GNU version references. */
- GNU_VERSYM = 0x6fffffff, /**< GNU symbol versions table. */
-
- _ID_SHIFT_ = 32,
- _ARM_ID_ = 1LLU, _HEX_ID_ = 2LLU, _X86_64_ID_ = 2LLU,
- _MIPS_ID_ = 3LLU, _RISCV_ID_ = 4LLU,
-
- ARM_EXIDX = 0x70000001U + (_ARM_ID_ << _ID_SHIFT_), /**< Exception Index table */
- ARM_PREEMPTMAP = 0x70000002U + (_ARM_ID_ << _ID_SHIFT_), /**< BPABI DLL dynamic linking pre-emption map */
- ARM_ATTRIBUTES = 0x70000003U + (_ARM_ID_ << _ID_SHIFT_), /**< Object file compatibility attributes */
- ARM_DEBUGOVERLAY = 0x70000004U + (_ARM_ID_ << _ID_SHIFT_),
- ARM_OVERLAYSECTION = 0x70000005U + (_ARM_ID_ << _ID_SHIFT_),
-
- HEX_ORDERED = 0x70000000 + (_HEX_ID_ << _ID_SHIFT_), /**< Link editor is to sort the entries in this section based on their sizes */
+ SHT_NULL_ = 0, /**< No associated section (inactive entry). */
+ PROGBITS = 1, /**< Program-defined contents. */
+ SYMTAB = 2, /**< Symbol table. */
+ STRTAB = 3, /**< String table. */
+ RELA = 4, /**< Relocation entries; explicit addends. */
+ HASH = 5, /**< Symbol hash table. */
+ DYNAMIC = 6, /**< Information for dynamic linking. */
+ NOTE = 7, /**< Information about the file. */
+ NOBITS = 8, /**< Data occupies no space in the file. */
+ REL = 9, /**< Relocation entries; no explicit addends. */
+ SHLIB = 10, /**< Reserved. */
+ DYNSYM = 11, /**< Symbol table. */
+ INIT_ARRAY = 14, /**< Pointers to initialization functions. */
+ FINI_ARRAY = 15, /**< Pointers to termination functions. */
+ PREINIT_ARRAY = 16, /**< Pointers to pre-init functions. */
+ GROUP = 17, /**< Section group. */
+ SYMTAB_SHNDX = 18, /**< Indices for SHN_XINDEX entries. */
+ RELR = 19, /**< Relocation entries; only offsets. */
+
+ ANDROID_REL = 0x60000001, /**< Packed relocations (Android specific). */
+ ANDROID_RELA = 0x60000002, /**< Packed relocations (Android specific). */
+
+ LLVM_ADDRSIG = 0x6fff4c03, /**< This section is used to mark symbols as
+ address-significant. */
+
+ ANDROID_RELR = 0x6fffff00, /**< New relr relocations (Android specific). */
+ GNU_ATTRIBUTES = 0x6ffffff5, /**< Object attributes. */
+ GNU_HASH = 0x6ffffff6, /**< GNU-style hash table. */
+ GNU_VERDEF = 0x6ffffffd, /**< GNU version definitions. */
+ GNU_VERNEED = 0x6ffffffe, /**< GNU version references. */
+ GNU_VERSYM = 0x6fffffff, /**< GNU symbol versions table. */
+
+ _ID_SHIFT_ = 32,
+ _ARM_ID_ = 1LLU,
+ _HEX_ID_ = 2LLU,
+ _X86_64_ID_ = 2LLU,
+ _MIPS_ID_ = 3LLU,
+ _RISCV_ID_ = 4LLU,
+ _AARCH64_ID_ = 5LLU,
+
+ ARM_EXIDX = 0x70000001U + (_ARM_ID_ << _ID_SHIFT_), /**< Exception Index table */
+ ARM_PREEMPTMAP = 0x70000002U + (_ARM_ID_ << _ID_SHIFT_), /**< BPABI DLL dynamic linking pre-emption map */
+ ARM_ATTRIBUTES = 0x70000003U + (_ARM_ID_ << _ID_SHIFT_), /**< Object file compatibility attributes */
+ ARM_DEBUGOVERLAY = 0x70000004U + (_ARM_ID_ << _ID_SHIFT_),
+ ARM_OVERLAYSECTION = 0x70000005U + (_ARM_ID_ << _ID_SHIFT_),
+
+ HEX_ORDERED = 0x70000000 + (_HEX_ID_ << _ID_SHIFT_), /**< Link editor is to sort the entries in this
+ section based on their sizes */
/* this section based on their sizes */
- X86_64_UNWIND = 0x70000001 + (_X86_64_ID_ << _ID_SHIFT_), /**< Unwind information */
+ X86_64_UNWIND = 0x70000001 + (_X86_64_ID_ << _ID_SHIFT_), /**< Unwind information */
MIPS_LIBLIST = 0x70000000 + (_MIPS_ID_ << _ID_SHIFT_),
MIPS_MSYM = 0x70000001 + (_MIPS_ID_ << _ID_SHIFT_),
@@ -146,50 +156,64 @@ class LIEF_API Section : public LIEF::Section {
MIPS_ABIFLAGS = 0x7000002a + (_MIPS_ID_ << _ID_SHIFT_),
MIPS_XHASH = 0x7000002b + (_MIPS_ID_ << _ID_SHIFT_),
- RISCV_ATTRIBUTES = 0x70000003 + (_RISCV_ID_ << _ID_SHIFT_),
+ RISCV_ATTRIBUTES = 0x70000003 + (_RISCV_ID_ << _ID_SHIFT_),
+
+ AARCH64_ATTRIBUTES = 0x70000003 + (_AARCH64_ID_ << _ID_SHIFT_),
+ AARCH64_AUTH_RELR = 0x70000004 + (_AARCH64_ID_ << _ID_SHIFT_),
+ AARCH64_MEMTAG_GLOBALS_STATIC = 0x70000007 + (_AARCH64_ID_ << _ID_SHIFT_),
+ AARCH64_MEMTAG_GLOBALS_DYNAMIC = 0x70000008 + (_AARCH64_ID_ << _ID_SHIFT_),
};
enum class FLAGS : uint64_t {
- NONE = 0x000000000,
- WRITE = 0x000000001, /**< Section data should be writable during execution. */
- ALLOC = 0x000000002, /**< Section occupies memory during program execution. */
- EXECINSTR = 0x000000004, /**< Section contains executable machine instructions. */
- MERGE = 0x000000010, /**< The data in this section may be merged. */
- STRINGS = 0x000000020, /**< The data in this section is null-terminated strings. */
- INFO_LINK = 0x000000040, /**< A field in this section holds a section header table index. */
- LINK_ORDER = 0x000000080, /**< Adds special ordering requirements for link editors. */
- OS_NONCONFORMING = 0x000000100, /**< This section requires special OS-specific processing to avoid incorrect behavior */
- GROUP = 0x000000200, /**< This section is a member of a section group. */
- TLS = 0x000000400, /**< This section holds Thread-Local Storage. */
- COMPRESSED = 0x000000800,
- GNU_RETAIN = 0x000200000,
- EXCLUDE = 0x080000000,
-
- _ID_SHIFT_ = 32,
- _XCORE_ID_ = 1LLU, _HEX_ID_ = 3LLU, _X86_64_ID_ = 2LLU,
- _MIPS_ID_ = 4LLU, _ARM_ID_ = 5LLU,
+ NONE = 0x000000000,
+ WRITE = 0x000000001, /**< Section data should be writable during execution. */
+ ALLOC = 0x000000002, /**< Section occupies memory during program execution. */
+ EXECINSTR = 0x000000004, /**< Section contains executable machine instructions. */
+ MERGE = 0x000000010, /**< The data in this section may be merged. */
+ STRINGS = 0x000000020, /**< The data in this section is null-terminated strings. */
+ INFO_LINK = 0x000000040, /**< A field in this section holds a section header table index. */
+ LINK_ORDER = 0x000000080, /**< Adds special ordering requirements for link editors. */
+ OS_NONCONFORMING = 0x000000100, /**< This section requires special OS-specific processing to avoid incorrect behavior */
+ GROUP = 0x000000200, /**< This section is a member of a section group. */
+ TLS = 0x000000400, /**< This section holds Thread-Local Storage. */
+ COMPRESSED = 0x000000800,
+ GNU_RETAIN = 0x000200000,
+ EXCLUDE = 0x080000000,
+
+ _ID_SHIFT_ = 32,
+ _XCORE_ID_ = 1LLU,
+ _HEX_ID_ = 3LLU,
+ _X86_64_ID_ = 2LLU,
+ _MIPS_ID_ = 4LLU,
+ _ARM_ID_ = 5LLU,
+ _AARCH64_ID_ = 6LLU,
XCORE_SHF_DP_SECTION = 0x010000000 + (_XCORE_ID_ << _ID_SHIFT_),
XCORE_SHF_CP_SECTION = 0x020000000 + (_XCORE_ID_ << _ID_SHIFT_),
- X86_64_LARGE = 0x010000000 + (_X86_64_ID_ << _ID_SHIFT_),
+ X86_64_LARGE = 0x010000000 + (_X86_64_ID_ << _ID_SHIFT_),
+
+ HEX_GPREL = 0x010000000 + (_HEX_ID_ << _ID_SHIFT_),
- HEX_GPREL = 0x010000000 + (_HEX_ID_ << _ID_SHIFT_),
+ MIPS_NODUPES = 0x001000000 + (_MIPS_ID_ << _ID_SHIFT_),
+ MIPS_NAMES = 0x002000000 + (_MIPS_ID_ << _ID_SHIFT_),
+ MIPS_LOCAL = 0x004000000 + (_MIPS_ID_ << _ID_SHIFT_),
+ MIPS_NOSTRIP = 0x008000000 + (_MIPS_ID_ << _ID_SHIFT_),
+ MIPS_GPREL = 0x010000000 + (_MIPS_ID_ << _ID_SHIFT_),
+ MIPS_MERGE = 0x020000000 + (_MIPS_ID_ << _ID_SHIFT_),
+ MIPS_ADDR = 0x040000000 + (_MIPS_ID_ << _ID_SHIFT_),
+ MIPS_STRING = 0x080000000 + (_MIPS_ID_ << _ID_SHIFT_),
- MIPS_NODUPES = 0x001000000 + (_MIPS_ID_ << _ID_SHIFT_),
- MIPS_NAMES = 0x002000000 + (_MIPS_ID_ << _ID_SHIFT_),
- MIPS_LOCAL = 0x004000000 + (_MIPS_ID_ << _ID_SHIFT_),
- MIPS_NOSTRIP = 0x008000000 + (_MIPS_ID_ << _ID_SHIFT_),
- MIPS_GPREL = 0x010000000 + (_MIPS_ID_ << _ID_SHIFT_),
- MIPS_MERGE = 0x020000000 + (_MIPS_ID_ << _ID_SHIFT_),
- MIPS_ADDR = 0x040000000 + (_MIPS_ID_ << _ID_SHIFT_),
- MIPS_STRING = 0x080000000 + (_MIPS_ID_ << _ID_SHIFT_),
+ ARM_PURECODE = 0x020000000 + (_ARM_ID_ << _ID_SHIFT_),
- ARM_PURECODE = 0x020000000 + (_ARM_ID_ << _ID_SHIFT_),
+ AARCH64_PURECODE = 0x020000000 + (_AARCH64_ID_ << _ID_SHIFT_),
};
+ // clang-format on
- static constexpr uint64_t FLAG_MASK = (uint64_t(1) << uint8_t(FLAGS::_ID_SHIFT_)) - 1;
- static constexpr uint64_t TYPE_MASK = (uint64_t(1) << uint8_t(TYPE::_ID_SHIFT_)) - 1;
+ static constexpr uint64_t FLAG_MASK =
+ (uint64_t(1) << uint8_t(FLAGS::_ID_SHIFT_)) - 1;
+ static constexpr uint64_t TYPE_MASK =
+ (uint64_t(1) << uint8_t(TYPE::_ID_SHIFT_)) - 1;
static TYPE type_from(uint32_t value, ARCH arch);
static uint32_t to_value(TYPE type) {
@@ -198,8 +222,7 @@ class LIEF_API Section : public LIEF::Section {
Section(const std::string& name, TYPE type = TYPE::PROGBITS) :
LIEF::Section(name),
- type_{type}
- {}
+ type_{type} {}
Section() = default;
~Section() override = default;
@@ -216,7 +239,7 @@ class LIEF_API Section : public LIEF::Section {
}
/// Section's content
- span<const uint8_t> content() const override;
+ span<const uint8_t> content() const LIEF_LIFETIMEBOUND override;
/// Set section content
void content(const std::vector<uint8_t>& data) override;
@@ -273,12 +296,12 @@ class LIEF_API Section : public LIEF::Section {
return info_;
}
- /// This function returns the size of an element in the case of a section that contains
- /// an array.
+ /// This function returns the size of an element in the case of a section that
+ /// contains an array.
///
- /// For instance, the `.dynamic` section contains an array of DynamicEntry. As the
- /// size of the raw C structure of this entry is 0x10 (`sizeoe(Elf64_Dyn)`)
- /// in a ELF64, the `entry_size` is set to this value.
+ /// For instance, the `.dynamic` section contains an array of DynamicEntry. As
+ /// the size of the raw C structure of this entry is 0x10 (`sizeof(Elf64_Dyn)`)
+ /// in an ELF64, the `entry_size` is set to this value.
uint64_t entry_size() const {
return entry_size_;
}
@@ -289,7 +312,7 @@ class LIEF_API Section : public LIEF::Section {
}
/// Clear the content of the section with the given ``value``
- Section& clear(uint8_t value = 0);
+ Section& clear(uint8_t value = 0) LIEF_LIFETIMEBOUND;
/// Add the given ELF_SECTION_FLAGS
void add(FLAGS flag);
@@ -298,7 +321,7 @@ class LIEF_API Section : public LIEF::Section {
void remove(FLAGS flag);
void type(TYPE type) {
- type_ = type;
+ type_ = type;
}
void flags(uint64_t flags) {
@@ -329,15 +352,15 @@ class LIEF_API Section : public LIEF::Section {
entry_size_ = entry_size;
}
- it_segments segments() {
+ it_segments segments() LIEF_LIFETIMEBOUND {
return segments_;
}
- it_const_segments segments() const {
+ it_const_segments segments() const LIEF_LIFETIMEBOUND {
return segments_;
}
- Section& as_frame() {
+ Section& as_frame() LIEF_LIFETIMEBOUND {
is_frame_ = true;
return *this;
}
@@ -361,13 +384,14 @@ class LIEF_API Section : public LIEF::Section {
/// Return a stream over the content of this section
std::unique_ptr<SpanStream> stream() const;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const Section& section);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const Section& section);
private:
template<class T>
LIEF_LOCAL Section(const T& header, ARCH arch);
- LIEF_LOCAL span<uint8_t> writable_content();
+ LIEF_LOCAL span<uint8_t> writable_content() LIEF_LIFETIMEBOUND;
ARCH arch_ = ARCH::NONE;
TYPE type_ = TYPE::SHT_NULL_;
uint64_t flags_ = 0;
diff --git a/deps/LIEF/include/LIEF/ELF/Segment.hpp b/deps/LIEF/include/LIEF/ELF/Segment.hpp
index b74e1850a4a..4edd1c12cf1 100644
--- a/deps/LIEF/include/LIEF/ELF/Segment.hpp
+++ b/deps/LIEF/include/LIEF/ELF/Segment.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,6 +22,7 @@
#include <memory>
#include "LIEF/Object.hpp"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/errors.hpp"
#include "LIEF/iterators.hpp"
@@ -53,78 +54,80 @@ class LIEF_API Segment : public Object {
friend class Builder;
public:
- using sections_t = std::vector<Section*>;
- using it_sections = ref_iterator<sections_t&>;
+ using sections_t = std::vector<Section*>;
+ using it_sections = ref_iterator<sections_t&>;
using it_const_sections = const_ref_iterator<const sections_t&>;
+ // clang-format off
static constexpr uint64_t PT_BIT = 33;
static constexpr uint64_t PT_OS_BIT = 53;
static constexpr uint64_t PT_MASK = (uint64_t(1) << PT_BIT) - 1;
- static constexpr uint64_t PT_ARM = uint64_t(1) << PT_BIT;
- static constexpr uint64_t PT_AARCH64 = uint64_t(2) << PT_BIT;
- static constexpr uint64_t PT_MIPS = uint64_t(3) << PT_BIT;
- static constexpr uint64_t PT_RISCV = uint64_t(4) << PT_BIT;
- static constexpr uint64_t PT_IA_64 = uint64_t(5) << PT_BIT;
+ static constexpr uint64_t PT_ARM = uint64_t(1) << PT_BIT;
+ static constexpr uint64_t PT_AARCH64 = uint64_t(2) << PT_BIT;
+ static constexpr uint64_t PT_MIPS = uint64_t(3) << PT_BIT;
+ static constexpr uint64_t PT_RISCV = uint64_t(4) << PT_BIT;
+ static constexpr uint64_t PT_IA_64 = uint64_t(5) << PT_BIT;
- static constexpr uint64_t PT_HPUX = uint64_t(1) << PT_OS_BIT;
+ static constexpr uint64_t PT_HPUX = uint64_t(1) << PT_OS_BIT;
enum class TYPE : uint64_t {
- UNKNOWN = uint64_t(-1),
- PT_NULL_ = 0, /**< Unused segment. */
- LOAD = 1, /**< Loadable segment. */
- DYNAMIC = 2, /**< Dynamic linking information. */
- INTERP = 3, /**< Interpreter pathname. */
- NOTE = 4, /**< Auxiliary information. */
- SHLIB = 5, /**< Reserved. */
- PHDR = 6, /**< The program header table itself. */
- TLS = 7, /**< The thread-local storage template. */
-
- GNU_EH_FRAME = 0x6474e550,
-
- GNU_STACK = 0x6474e551, /**< Indicates stack executability. */
- GNU_PROPERTY = 0x6474e553, /**< GNU property */
- GNU_RELRO = 0x6474e552, /**< Read-only after relocation. */
- PAX_FLAGS = 0x65041580,
-
- ARM_ARCHEXT = 0x70000000 | PT_ARM, /**< Platform architecture compatibility info */
- ARM_EXIDX = 0x70000001 | PT_ARM,
+ UNKNOWN = uint64_t(-1),
+ PT_NULL_ = 0, /**< Unused segment. */
+ LOAD = 1, /**< Loadable segment. */
+ DYNAMIC = 2, /**< Dynamic linking information. */
+ INTERP = 3, /**< Interpreter pathname. */
+ NOTE = 4, /**< Auxiliary information. */
+ SHLIB = 5, /**< Reserved. */
+ PHDR = 6, /**< The program header table itself. */
+ TLS = 7, /**< The thread-local storage template. */
+
+ GNU_EH_FRAME = 0x6474e550,
+
+ GNU_STACK = 0x6474e551, /**< Indicates stack executability. */
+ GNU_PROPERTY = 0x6474e553, /**< GNU property */
+ GNU_RELRO = 0x6474e552, /**< Read-only after relocation. */
+ PAX_FLAGS = 0x65041580,
+
+ ARM_ARCHEXT = 0x70000000 | PT_ARM, /**< Platform architecture compatibility info */
+ ARM_EXIDX = 0x70000001 | PT_ARM,
AARCH64_MEMTAG_MTE = 0x70000002 | PT_AARCH64,
- MIPS_REGINFO = 0x70000000 | PT_MIPS, /**< Register usage information. */
- MIPS_RTPROC = 0x70000001 | PT_MIPS, /**< Runtime procedure table. */
- MIPS_OPTIONS = 0x70000002 | PT_MIPS, /**< Options segment. */
- MIPS_ABIFLAGS = 0x70000003 | PT_MIPS, /**< Abiflags segment. */
+ MIPS_REGINFO = 0x70000000 | PT_MIPS, /**< Register usage information. */
+ MIPS_RTPROC = 0x70000001 | PT_MIPS, /**< Runtime procedure table. */
+ MIPS_OPTIONS = 0x70000002 | PT_MIPS, /**< Options segment. */
+ MIPS_ABIFLAGS = 0x70000003 | PT_MIPS, /**< Abiflags segment. */
RISCV_ATTRIBUTES = 0x70000003 | PT_RISCV,
- IA_64_EXT = (0x70000000 + 0x0) | PT_IA_64,
- IA_64_UNWIND = (0x70000000 + 0x1) | PT_IA_64,
-
- HP_TLS = (0x60000000 + 0x0) | PT_HPUX,
- HP_CORE_NONE = (0x60000000 + 0x1) | PT_HPUX,
- HP_CORE_VERSION = (0x60000000 + 0x2) | PT_HPUX,
- HP_CORE_KERNEL = (0x60000000 + 0x3) | PT_HPUX,
- HP_CORE_COMM = (0x60000000 + 0x4) | PT_HPUX,
- HP_CORE_PROC = (0x60000000 + 0x5) | PT_HPUX,
- HP_CORE_LOADABLE = (0x60000000 + 0x6) | PT_HPUX,
- HP_CORE_STACK = (0x60000000 + 0x7) | PT_HPUX,
- HP_CORE_SHM = (0x60000000 + 0x8) | PT_HPUX,
- HP_CORE_MMF = (0x60000000 + 0x9) | PT_HPUX,
- HP_PARALLEL = (0x60000000 + 0x10) | PT_HPUX,
- HP_FASTBIND = (0x60000000 + 0x11) | PT_HPUX,
- HP_OPT_ANNOT = (0x60000000 + 0x12) | PT_HPUX,
- HP_HSL_ANNOT = (0x60000000 + 0x13) | PT_HPUX,
- HP_STACK = (0x60000000 + 0x14) | PT_HPUX,
- HP_CORE_UTSNAME = (0x60000000 + 0x15) | PT_HPUX,
+ IA_64_EXT = (0x70000000 + 0x0) | PT_IA_64,
+ IA_64_UNWIND = (0x70000000 + 0x1) | PT_IA_64,
+
+ HP_TLS = (0x60000000 + 0x00) | PT_HPUX,
+ HP_CORE_NONE = (0x60000000 + 0x01) | PT_HPUX,
+ HP_CORE_VERSION = (0x60000000 + 0x02) | PT_HPUX,
+ HP_CORE_KERNEL = (0x60000000 + 0x03) | PT_HPUX,
+ HP_CORE_COMM = (0x60000000 + 0x04) | PT_HPUX,
+ HP_CORE_PROC = (0x60000000 + 0x05) | PT_HPUX,
+ HP_CORE_LOADABLE = (0x60000000 + 0x06) | PT_HPUX,
+ HP_CORE_STACK = (0x60000000 + 0x07) | PT_HPUX,
+ HP_CORE_SHM = (0x60000000 + 0x08) | PT_HPUX,
+ HP_CORE_MMF = (0x60000000 + 0x09) | PT_HPUX,
+ HP_PARALLEL = (0x60000000 + 0x10) | PT_HPUX,
+ HP_FASTBIND = (0x60000000 + 0x11) | PT_HPUX,
+ HP_OPT_ANNOT = (0x60000000 + 0x12) | PT_HPUX,
+ HP_HSL_ANNOT = (0x60000000 + 0x13) | PT_HPUX,
+ HP_STACK = (0x60000000 + 0x14) | PT_HPUX,
+ HP_CORE_UTSNAME = (0x60000000 + 0x15) | PT_HPUX,
};
+ // clang-format on
enum class FLAGS {
NONE = 0,
- X = 1,
- W = 2,
- R = 4,
+ X = 1,
+ W = 2,
+ R = 4,
};
static TYPE type_from(uint64_t value, ARCH arch, Header::OS_ABI os);
@@ -208,7 +211,7 @@ class LIEF_API Segment : public Object {
}
/// The raw data associated with this segment.
- span<const uint8_t> content() const;
+ span<const uint8_t> content() const LIEF_LIFETIMEBOUND;
/// Check if the current segment has the given flag
bool has(FLAGS flag) const {
@@ -272,18 +275,22 @@ class LIEF_API Segment : public Object {
}
/// Clear the content of this segment
- void clear() { fill('\0'); }
+ void clear() {
+ fill('\0');
+ }
- template<typename T> T get_content_value(size_t offset) const;
- template<typename T> void set_content_value(size_t offset, T value);
+ template<typename T>
+ T get_content_value(size_t offset) const;
+ template<typename T>
+ void set_content_value(size_t offset, T value);
size_t get_content_size() const;
/// Iterator over the sections wrapped by this segment
- it_sections sections() {
+ it_sections sections() LIEF_LIFETIMEBOUND {
return sections_;
}
- it_const_sections sections() const {
+ it_const_sections sections() const LIEF_LIFETIMEBOUND {
return sections_;
}
@@ -301,7 +308,8 @@ class LIEF_API Segment : public Object {
return *this;
}
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const Segment& segment);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const Segment& segment);
private:
template<class T>
@@ -309,7 +317,7 @@ class LIEF_API Segment : public Object {
Header::OS_ABI os = Header::OS_ABI::SYSTEMV);
LIEF_LOCAL uint64_t handler_size() const;
- span<uint8_t> writable_content();
+ span<uint8_t> writable_content() LIEF_LIFETIMEBOUND;
TYPE type_ = TYPE::PT_NULL_;
ARCH arch_ = ARCH::NONE;
@@ -323,7 +331,7 @@ class LIEF_API Segment : public Object {
uint64_t handler_size_ = 0;
sections_t sections_;
DataHandler::Handler* datahandler_ = nullptr;
- std::vector<uint8_t> content_c_;
+ std::vector<uint8_t> content_c_;
};
LIEF_API const char* to_string(Segment::TYPE e);
@@ -334,4 +342,4 @@ LIEF_API const char* to_string(Segment::FLAGS e);
ENABLE_BITMASK_OPERATORS(LIEF::ELF::Segment::FLAGS);
-#endif /* _ELF_SEGMENT_H */
+#endif
diff --git a/deps/LIEF/include/LIEF/ELF/Symbol.hpp b/deps/LIEF/include/LIEF/ELF/Symbol.hpp
index bfb5c226244..8b38d71f39d 100644
--- a/deps/LIEF/include/LIEF/ELF/Symbol.hpp
+++ b/deps/LIEF/include/LIEF/ELF/Symbol.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,7 +17,6 @@
#define LIEF_ELF_SYMBOL_H
#include <string>
-#include <vector>
#include <ostream>
#include "LIEF/visibility.h"
@@ -35,48 +34,47 @@ class Section;
class LIEF_API Symbol : public LIEF::Symbol {
friend class Parser;
friend class Binary;
- public:
+ public:
enum class BINDING {
- LOCAL = 0, ///< Local symbol
- GLOBAL = 1, ///< Global symbol
- WEAK = 2, ///< Weak symbol
+ LOCAL = 0, ///< Local symbol
+ GLOBAL, ///< Global symbol
+ WEAK, ///< Weak symbol
GNU_UNIQUE = 10, ///< Unique symbol
};
/// Type of the symbol. This enum matches the `STT_xxx` values of the ELF
/// specs
enum class TYPE {
- NOTYPE = 0, ///< Symbol's type is not specified
- OBJECT = 1, ///< Symbol is a data object (variable, array, etc.)
- FUNC = 2, ///< Symbol is executable code (function, etc.)
- SECTION = 3, ///< Symbol refers to a section
- FILE = 4, ///< Local, absolute symbol that refers to a file
- COMMON = 5, ///< An uninitialized common block
- TLS = 6, ///< Thread local data object
- GNU_IFUNC = 10, ///< GNU indirect function
+ NOTYPE = 0, ///< Symbol's type is not specified
+ OBJECT, ///< Symbol is a data object (variable, array, etc.)
+ FUNC, ///< Symbol is executable code (function, etc.)
+ SECTION, ///< Symbol refers to a section
+ FILE, ///< Local, absolute symbol that refers to a file
+ COMMON, ///< An uninitialized common block
+ TLS, ///< Thread local data object
+ GNU_IFUNC = 10, ///< GNU indirect function
};
/// Visibility of the symbol. This enum matches the `STV_xxx` values of the
/// official ELF specs
enum class VISIBILITY {
- DEFAULT = 0, ///< Visibility is specified by binding type
- INTERNAL = 1, ///< Defined by processor supplements
- HIDDEN = 2, ///< Not visible to other components
- PROTECTED = 3 ///< Visible in other components but not preemptable
+ DEFAULT = 0, ///< Visibility is specified by binding type
+ INTERNAL, ///< Defined by processor supplements
+ HIDDEN, ///< Not visible to other components
+ PROTECTED, ///< Visible in other components but not preemptable
};
/// Special section indices
enum SECTION_INDEX {
- UNDEF = 0, ///< Undefined section
- ABS = 0xfff1, ///< Associated symbol is absolute
+ UNDEF = 0, ///< Undefined section
+ ABS = 0xfff1, ///< Associated symbol is absolute
COMMON = 0xfff2, ///< Associated symbol is common
};
public:
- Symbol(std::string name):
- LIEF::Symbol(std::move(name), 0, 0)
- {}
+ Symbol(std::string name) :
+ LIEF::Symbol(std::move(name), 0, 0) {}
static BINDING binding_from(uint32_t value, ARCH) {
return BINDING(value);
@@ -130,31 +128,35 @@ class LIEF_API Symbol : public LIEF::Symbol {
}
/// Section associated with the symbol or a nullptr if it does not exist.
- Section* section() {
+ Section* section() LIEF_LIFETIMEBOUND {
return section_;
}
- const Section* section() const {
+ const Section* section() const LIEF_LIFETIMEBOUND {
return section_;
}
/// This member has slightly different interpretations:
- /// * In relocatable files, `value` holds alignment constraints for a symbol for which section index
+ /// * In relocatable files, `value` holds alignment constraints for a symbol
+ /// for which section index
/// is SHN_COMMON
- /// * In relocatable files, `value` holds a section offset for a defined symbol. That is, `value` is an
+ /// * In relocatable files, `value` holds a section offset for a defined
+ /// symbol. That is, `value` is an
/// offset from the beginning of the section associated with this symbol.
- /// * In executable and shared object files, `value` holds a virtual address. To make these files's
- /// symbols more useful for the dynamic linker, the section offset (file interpretation) gives way to
- /// a virtual address (memory interpretation) for which the section number is irrelevant.
+ /// * In executable and shared object files, `value` holds a virtual address.
+ /// To make these files's
+ /// symbols more useful for the dynamic linker, the section offset (file
+ /// interpretation) gives way to a virtual address (memory interpretation)
+ /// for which the section number is irrelevant.
uint64_t value() const override {
return value_;
}
/// Symbol size
///
- /// Many symbols have associated sizes. For example, a data object's size is the number of
- /// bytes contained in the object. This member holds `0` if the symbol has no size or
- /// an unknown size.
+ /// Many symbols have associated sizes. For example, a data object's size is the
+ /// number of bytes contained in the object. This member holds `0` if the symbol
+ /// has no size or an unknown size.
uint64_t size() const override {
return size_;
}
@@ -171,11 +173,11 @@ class LIEF_API Symbol : public LIEF::Symbol {
/// Return the SymbolVersion associated with this symbol.
/// If there is no symbol version, return a nullptr
- SymbolVersion* symbol_version() {
+ SymbolVersion* symbol_version() LIEF_LIFETIMEBOUND {
return symbol_version_;
}
- const SymbolVersion* symbol_version() const {
+ const SymbolVersion* symbol_version() const LIEF_LIFETIMEBOUND {
return symbol_version_;
}
@@ -241,12 +243,12 @@ class LIEF_API Symbol : public LIEF::Symbol {
return this->binding() == BINDING::GLOBAL;
}
- /// True if the symbol represent a function
+ /// True if the symbol represents a function
bool is_function() const {
return this->type() == TYPE::FUNC;
}
- /// True if the symbol represent a variable
+ /// True if the symbol represents a variable
bool is_variable() const {
return this->type() == TYPE::OBJECT;
}
@@ -259,10 +261,10 @@ class LIEF_API Symbol : public LIEF::Symbol {
template<class T>
LIEF_API Symbol(const T& header, ARCH arch);
- TYPE type_ = TYPE::NOTYPE;
+ TYPE type_ = TYPE::NOTYPE;
BINDING binding_ = BINDING::LOCAL;
- uint8_t other_ = 0;
- uint16_t shndx_ = 0;
+ uint8_t other_ = 0;
+ uint16_t shndx_ = 0;
Section* section_ = nullptr;
SymbolVersion* symbol_version_ = nullptr;
ARCH arch_ = ARCH::NONE;
@@ -273,4 +275,4 @@ LIEF_API const char* to_string(Symbol::TYPE type);
LIEF_API const char* to_string(Symbol::VISIBILITY viz);
}
}
-#endif /* _ELF_SYMBOL_H */
+#endif
diff --git a/deps/LIEF/include/LIEF/ELF/SymbolVersion.hpp b/deps/LIEF/include/LIEF/ELF/SymbolVersion.hpp
index ad92e21203f..3cf718abb82 100644
--- a/deps/LIEF/include/LIEF/ELF/SymbolVersion.hpp
+++ b/deps/LIEF/include/LIEF/ELF/SymbolVersion.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -38,18 +38,17 @@ class LIEF_API SymbolVersion : public Object {
static constexpr auto GLOBAL_VERSION = 1;
SymbolVersion(uint16_t value) :
- value_(value)
- {}
+ value_(value) {}
SymbolVersion() = default;
/// Generate a *local* SymbolVersion
static SymbolVersion local() {
- return SymbolVersion(LOCAL_VERSION);
+ return LOCAL_VERSION;
}
/// Generate a *global* SymbolVersion
static SymbolVersion global() {
- return SymbolVersion(GLOBAL_VERSION);
+ return GLOBAL_VERSION;
}
~SymbolVersion() override = default;
@@ -74,11 +73,11 @@ class LIEF_API SymbolVersion : public Object {
/// SymbolVersionAux associated with the current Version if any,
/// or a nullptr
- SymbolVersionAux* symbol_version_auxiliary() {
+ SymbolVersionAux* symbol_version_auxiliary() LIEF_LIFETIMEBOUND {
return symbol_aux_;
}
- const SymbolVersionAux* symbol_version_auxiliary() const {
+ const SymbolVersionAux* symbol_version_auxiliary() const LIEF_LIFETIMEBOUND {
return symbol_aux_;
}
@@ -102,14 +101,14 @@ class LIEF_API SymbolVersion : public Object {
/// Redefine this version as global by dropping its auxiliary version
///
- /// \see as_local() drop_version()
+ /// @see as_local() drop_version()
void as_global() {
return drop_version(GLOBAL_VERSION);
}
/// Redefine this version as local by dropping its auxiliary version
///
- /// \see as_global() drop_version()
+ /// @see as_global() drop_version()
void as_local() {
return drop_version(LOCAL_VERSION);
}
@@ -120,10 +119,11 @@ class LIEF_API SymbolVersion : public Object {
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const SymbolVersion& symv);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const SymbolVersion& symv);
private:
- uint16_t value_ = 0;
+ uint16_t value_ = 0;
SymbolVersionAux* symbol_aux_ = nullptr;
};
}
diff --git a/deps/LIEF/include/LIEF/ELF/SymbolVersionAux.hpp b/deps/LIEF/include/LIEF/ELF/SymbolVersionAux.hpp
index 4ea2c921993..e784f4ffe88 100644
--- a/deps/LIEF/include/LIEF/ELF/SymbolVersionAux.hpp
+++ b/deps/LIEF/include/LIEF/ELF/SymbolVersionAux.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,10 +29,10 @@ class Parser;
/// Class which represents an Auxiliary Symbol version
class LIEF_API SymbolVersionAux : public Object {
friend class Parser;
+
public:
SymbolVersionAux(std::string name) :
- name_(std::move(name))
- {}
+ name_(std::move(name)) {}
SymbolVersionAux() = default;
~SymbolVersionAux() override = default;
@@ -50,8 +50,8 @@ class LIEF_API SymbolVersionAux : public Object {
void accept(Visitor& visitor) const override;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const SymbolVersionAux& aux) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const SymbolVersionAux& aux) {
os << aux.name();
return os;
}
diff --git a/deps/LIEF/include/LIEF/ELF/SymbolVersionAuxRequirement.hpp b/deps/LIEF/include/LIEF/ELF/SymbolVersionAuxRequirement.hpp
index a96a97e2441..712f74ff57f 100644
--- a/deps/LIEF/include/LIEF/ELF/SymbolVersionAuxRequirement.hpp
+++ b/deps/LIEF/include/LIEF/ELF/SymbolVersionAuxRequirement.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,12 +16,10 @@
#ifndef LIEF_ELF_SYMBOL_VERSION_AUX_REQUIREMENT_H
#define LIEF_ELF_SYMBOL_VERSION_AUX_REQUIREMENT_H
-#include <string>
#include <ostream>
#include <cstdint>
#include "LIEF/visibility.h"
-#include "LIEF/iterators.hpp"
#include "LIEF/ELF/SymbolVersionAux.hpp"
@@ -40,7 +38,8 @@ class LIEF_API SymbolVersionAuxRequirement : public SymbolVersionAux {
SymbolVersionAuxRequirement(const details::Elf32_Vernaux& header);
SymbolVersionAuxRequirement() = default;
- SymbolVersionAuxRequirement& operator=(const SymbolVersionAuxRequirement&) = default;
+ SymbolVersionAuxRequirement&
+ operator=(const SymbolVersionAuxRequirement&) = default;
SymbolVersionAuxRequirement(const SymbolVersionAuxRequirement&) = default;
~SymbolVersionAuxRequirement() override = default;
@@ -77,8 +76,8 @@ class LIEF_API SymbolVersionAuxRequirement : public SymbolVersionAux {
void accept(Visitor& visitor) const override;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const SymbolVersionAuxRequirement& aux) {
+ LIEF_API friend std::ostream&
+ operator<<(std::ostream& os, const SymbolVersionAuxRequirement& aux) {
os << aux.name();
return os;
}
diff --git a/deps/LIEF/include/LIEF/ELF/SymbolVersionDefinition.hpp b/deps/LIEF/include/LIEF/ELF/SymbolVersionDefinition.hpp
index f3e786ba0f1..368a4291ee8 100644
--- a/deps/LIEF/include/LIEF/ELF/SymbolVersionDefinition.hpp
+++ b/deps/LIEF/include/LIEF/ELF/SymbolVersionDefinition.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -37,10 +37,12 @@ struct Elf32_Verdef;
/// Class which represents an entry defined in `DT_VERDEF` or `.gnu.version_d`
class LIEF_API SymbolVersionDefinition : public Object {
friend class Parser;
+
public:
- using version_aux_t = std::vector<std::unique_ptr<SymbolVersionAux>>;
- using it_version_aux = ref_iterator<version_aux_t&, SymbolVersionAux*>;
- using it_const_version_aux = const_ref_iterator<const version_aux_t&, const SymbolVersionAux*>;
+ using version_aux_t = std::vector<std::unique_ptr<SymbolVersionAux>>;
+ using it_version_aux = ref_iterator<version_aux_t&, SymbolVersionAux*>;
+ using it_const_version_aux =
+ const_ref_iterator<const version_aux_t&, const SymbolVersionAux*>;
SymbolVersionDefinition() = default;
SymbolVersionDefinition(const details::Elf64_Verdef& header);
@@ -77,11 +79,11 @@ class LIEF_API SymbolVersionDefinition : public Object {
}
/// SymbolVersionAux entries
- it_version_aux symbols_aux() {
+ it_version_aux symbols_aux() LIEF_LIFETIMEBOUND {
return symbol_version_aux_;
}
- it_const_version_aux symbols_aux() const {
+ it_const_version_aux symbols_aux() const LIEF_LIFETIMEBOUND {
return symbol_version_aux_;
}
@@ -99,16 +101,16 @@ class LIEF_API SymbolVersionDefinition : public Object {
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const SymbolVersionDefinition& sym);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const SymbolVersionDefinition& sym);
private:
uint16_t version_ = 1;
uint16_t flags_ = 0;
- uint16_t ndx_ = 0;
+ uint16_t ndx_ = 0;
uint32_t hash_ = 0;
version_aux_t symbol_version_aux_;
};
}
}
#endif
-
diff --git a/deps/LIEF/include/LIEF/ELF/SymbolVersionRequirement.hpp b/deps/LIEF/include/LIEF/ELF/SymbolVersionRequirement.hpp
index cbe20807f5f..94afd0cfde3 100644
--- a/deps/LIEF/include/LIEF/ELF/SymbolVersionRequirement.hpp
+++ b/deps/LIEF/include/LIEF/ELF/SymbolVersionRequirement.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -41,9 +41,13 @@ class LIEF_API SymbolVersionRequirement : public Object {
friend class Parser;
public:
- using aux_requirement_t = std::vector<std::unique_ptr<SymbolVersionAuxRequirement>>;
- using it_aux_requirement = ref_iterator<aux_requirement_t&, SymbolVersionAuxRequirement*>;
- using it_const_aux_requirement = const_ref_iterator<const aux_requirement_t&, const SymbolVersionAuxRequirement*>;
+ using aux_requirement_t =
+ std::vector<std::unique_ptr<SymbolVersionAuxRequirement>>;
+ using it_aux_requirement =
+ ref_iterator<aux_requirement_t&, SymbolVersionAuxRequirement*>;
+ using it_const_aux_requirement =
+ const_ref_iterator<const aux_requirement_t&,
+ const SymbolVersionAuxRequirement*>;
SymbolVersionRequirement() = default;
SymbolVersionRequirement(const details::Elf64_Verneed& header);
@@ -68,16 +72,16 @@ class LIEF_API SymbolVersionRequirement : public Object {
}
/// Auxiliary entries as an iterator over SymbolVersionAuxRequirement
- it_aux_requirement auxiliary_symbols() {
+ it_aux_requirement auxiliary_symbols() LIEF_LIFETIMEBOUND {
return aux_requirements_;
}
- it_const_aux_requirement auxiliary_symbols() const {
+ it_const_aux_requirement auxiliary_symbols() const LIEF_LIFETIMEBOUND {
return aux_requirements_;
}
/// Return the library name associated with this requirement (e.g. ``libc.so.6``)
- const std::string& name() const {
+ const std::string& name() const LIEF_LIFETIMEBOUND {
return name_;
}
@@ -90,19 +94,26 @@ class LIEF_API SymbolVersionRequirement : public Object {
}
/// Add a version auxiliary requirement to the existing list
- SymbolVersionAuxRequirement& add_aux_requirement(const SymbolVersionAuxRequirement& aux_requirement);
-
- /// Try to find the SymbolVersionAuxRequirement with the given name (e.g. `GLIBC_2.27`)
- const SymbolVersionAuxRequirement* find_aux(const std::string& name) const;
-
- SymbolVersionAuxRequirement* find_aux(const std::string& name) {
- return const_cast<SymbolVersionAuxRequirement*>(static_cast<const SymbolVersionRequirement*>(this)->find_aux(name));
+ SymbolVersionAuxRequirement& add_aux_requirement(
+ const SymbolVersionAuxRequirement& aux_requirement
+ ) LIEF_LIFETIMEBOUND;
+
+ /// Try to find the SymbolVersionAuxRequirement with the given name (e.g.
+ /// `GLIBC_2.27`)
+ const SymbolVersionAuxRequirement*
+ find_aux(const std::string& name) const LIEF_LIFETIMEBOUND;
+
+ SymbolVersionAuxRequirement*
+ find_aux(const std::string& name) LIEF_LIFETIMEBOUND {
+ return const_cast<SymbolVersionAuxRequirement*>(
+ static_cast<const SymbolVersionRequirement*>(this)->find_aux(name)
+ );
}
/// Try to remove the auxiliary requirement symbol with the given name.
/// The function returns true if the operation succeed, false otherwise.
///
- /// \warning this function invalidates all the references (pointers) of
+ /// @warning this function invalidates all the references (pointers) of
/// SymbolVersionAuxRequirement. Therefore, the user is responsible
/// to ensure that the auxiliary requirement is no longer used in the
/// ELF binary (e.g. in SymbolVersion)
@@ -116,7 +127,7 @@ class LIEF_API SymbolVersionRequirement : public Object {
/// Try to remove the given auxiliary requirement symbol.
/// The function returns true if the operation succeed, false otherwise.
///
- /// \warning this function invalidates all the references (pointers) of
+ /// @warning this function invalidates all the references (pointers) of
/// SymbolVersionAuxRequirement. Therefore, the user is responsible
/// to ensure that the auxiliary requirement is no longer used in the
/// ELF binary (e.g. in SymbolVersion)
@@ -124,19 +135,18 @@ class LIEF_API SymbolVersionRequirement : public Object {
void accept(Visitor& visitor) const override;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const SymbolVersionRequirement& symr) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const SymbolVersionRequirement& symr) {
os << symr.version() << " " << symr.name();
return os;
}
private:
aux_requirement_t aux_requirements_;
- uint16_t version_ = 0;
+ uint16_t version_ = 0;
std::string name_;
};
}
}
#endif
-
diff --git a/deps/LIEF/include/LIEF/ELF/SysvHash.hpp b/deps/LIEF/include/LIEF/ELF/SysvHash.hpp
index eaacfb1e3bc..f5fefa77e14 100644
--- a/deps/LIEF/include/LIEF/ELF/SysvHash.hpp
+++ b/deps/LIEF/include/LIEF/ELF/SysvHash.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -62,12 +62,12 @@ class LIEF_API SysvHash : public Object {
}
/// Buckets values
- const std::vector<uint32_t>& buckets() const {
+ const std::vector<uint32_t>& buckets() const LIEF_LIFETIMEBOUND {
return buckets_;
}
/// Chains values
- const std::vector<uint32_t>& chains() const {
+ const std::vector<uint32_t>& chains() const LIEF_LIFETIMEBOUND {
return chains_;
}
@@ -77,14 +77,15 @@ class LIEF_API SysvHash : public Object {
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const SysvHash& sysvhash);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const SysvHash& sysvhash);
private:
std::vector<uint32_t> buckets_;
std::vector<uint32_t> chains_;
};
-} // namepsace ELF
+} // namespace ELF
} // namespace LIEF
#endif
diff --git a/deps/LIEF/include/LIEF/ELF/enums.hpp b/deps/LIEF/include/LIEF/ELF/enums.hpp
index a14b83f9752..00cfea73d9a 100644
--- a/deps/LIEF/include/LIEF/ELF/enums.hpp
+++ b/deps/LIEF/include/LIEF/ELF/enums.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,187 +28,189 @@ namespace ELF {
* http://www.sco.com/developers/gabi/latest/ch4.eheader.html
*/
enum class ARCH {
- NONE = 0, /**< No machine */
- M32 = 1, /**< AT&T WE 32100 */
- SPARC = 2, /**< SPARC */
- I386 = 3, /**< Intel 386 */
- M68K = 4, /**< Motorola 68000 */
- M88K = 5, /**< Motorola 88000 */
- IAMCU = 6, /**< Intel MCU */
- I860 = 7, /**< Intel 80860 */
- MIPS = 8, /**< MIPS R3000 */
- S370 = 9, /**< IBM System/370 */
- MIPS_RS3_LE = 10, /**< MIPS RS3000 Little-endian */
- PARISC = 15, /**< Hewlett-Packard PA-RISC */
- VPP500 = 17, /**< Fujitsu VPP500 */
- SPARC32PLUS = 18, /**< Enhanced instruction set SPARC */
- I60 = 19, /**< Intel 80960 */
- PPC = 20, /**< PowerPC */
- PPC64 = 21, /**< PowerPC64 */
- S390 = 22, /**< IBM System/390 */
- SPU = 23, /**< IBM SPU/SPC */
- V800 = 36, /**< NEC V800 */
- FR20 = 37, /**< Fujitsu FR20 */
- RH32 = 38, /**< TRW RH-32 */
- RCE = 39, /**< Motorola RCE */
- ARM = 40, /**< ARM */
- ALPHA = 41, /**< DEC Alpha */
- SH = 42, /**< Hitachi SH */
- SPARCV9 = 43, /**< SPARC V9 */
- TRICORE = 44, /**< Siemens TriCore */
- ARC = 45, /**< Argonaut RISC Core */
- H8_300 = 46, /**< Hitachi H8/300 */
- H8_300H = 47, /**< Hitachi H8/300H */
- H8S = 48, /**< Hitachi H8S */
- H8_500 = 49, /**< Hitachi H8/500 */
- IA_64 = 50, /**< Intel IA-64 processor architecture */
- MIPS_X = 51, /**< Stanford MIPS-X */
- COLDFIRE = 52, /**< Motorola ColdFire */
- M68HC12 = 53, /**< Motorola M68HC12 */
- MMA = 54, /**< Fujitsu MMA Multimedia Accelerator */
- PCP = 55, /**< Siemens PCP */
- NCPU = 56, /**< Sony nCPU embedded RISC processor */
- NDR1 = 57, /**< Denso NDR1 microprocessor */
- STARCORE = 58, /**< Motorola Star*Core processor */
- ME16 = 59, /**< Toyota ME16 processor */
- ST100 = 60, /**< STMicroelectronics ST100 processor */
- TINYJ = 61, /**< Advanced Logic Corp. TinyJ embedded processor family */
- X86_64 = 62, /**< AMD x86-64 architecture */
- PDSP = 63, /**< Sony DSP Processor */
- PDP10 = 64, /**< Digital Equipment Corp. PDP-10 */
- PDP11 = 65, /**< Digital Equipment Corp. PDP-11 */
- FX66 = 66, /**< Siemens FX66 microcontroller */
- ST9PLUS = 67, /**< STMicroelectronics ST9+ 8/16 bit microcontroller */
- ST7 = 68, /**< STMicroelectronics ST7 8-bit microcontroller */
- M68HC16 = 69, /**< Motorola MC68HC16 Microcontroller */
- M68HC11 = 70, /**< Motorola MC68HC11 Microcontroller */
- M68HC08 = 71, /**< Motorola MC68HC08 Microcontroller */
- M68HC05 = 72, /**< Motorola MC68HC05 Microcontroller */
- SVX = 73, /**< Silicon Graphics SVx */
- ST19 = 74, /**< STMicroelectronics ST19 8-bit microcontroller */
- VAX = 75, /**< Digital VAX */
- CRIS = 76, /**< Axis Communications 32-bit embedded processor */
- JAVELIN = 77, /**< Infineon Technologies 32-bit embedded processor */
- FIREPATH = 78, /**< Element 14 64-bit DSP Processor */
- ZSP = 79, /**< LSI Logic 16-bit DSP Processor */
- MMIX = 80, /**< Donald Knuth's educational 64-bit processor */
- HUANY = 81, /**< Harvard University machine-independent object files */
- PRISM = 82, /**< SiTera Prism */
- AVR = 83, /**< Atmel AVR 8-bit microcontroller */
- FR30 = 84, /**< Fujitsu FR30 */
- D10V = 85, /**< Mitsubishi D10V */
- D30V = 86, /**< Mitsubishi D30V */
- V850 = 87, /**< NEC v850 */
- M32R = 88, /**< Mitsubishi M32R */
- MN10300 = 89, /**< Matsushita MN10300 */
- MN10200 = 90, /**< Matsushita MN10200 */
- PJ = 91, /**< picoJava */
- OPENRISC = 92, /**< OpenRISC 32-bit embedded processor */
- ARC_COMPACT = 93, /**< ARC International ARCompact processor (old spelling/synonym: EM_ARC_A5) */
- XTENSA = 94, /**< Tensilica Xtensa Architecture */
- VIDEOCORE = 95, /**< Alphamosaic VideoCore processor */
- TMM_GPP = 96, /**< Thompson Multimedia General Purpose Processor */
- NS32K = 97, /**< National Semiconductor 32000 series */
- TPC = 98, /**< Tenor Network TPC processor */
- SNP1K = 99, /**< Trebia SNP 1000 processor */
- ST200 = 100, /**< STMicroelectronics (www.st.com) ST200 */
- IP2K = 101, /**< Ubicom IP2xxx microcontroller family */
- MAX = 102, /**< MAX Processor */
- CR = 103, /**< National Semiconductor CompactRISC microprocessor */
- F2MC16 = 104, /**< Fujitsu F2MC16 */
- MSP430 = 105, /**< Texas Instruments embedded microcontroller msp430 */
- BLACKFIN = 106, /**< Analog Devices Blackfin (DSP) processor */
- SE_C33 = 107, /**< S1C33 Family of Seiko Epson processors */
- SEP = 108, /**< Sharp embedded microprocessor */
- ARCA = 109, /**< Arca RISC Microprocessor */
- UNICORE = 110, /**< Microprocessor series from PKU-Unity Ltd. and MPRC of Peking University */
- EXCESS = 111, /**< eXcess: 16/32/64-bit configurable embedded CPU */
- DXP = 112, /**< Icera Semiconductor Inc. Deep Execution Processor */
- ALTERA_NIOS2 = 113, /**< Altera Nios II soft-core processor */
- CRX = 114, /**< National Semiconductor CompactRISC CRX */
- XGATE = 115, /**< Motorola XGATE embedded processor */
- C166 = 116, /**< Infineon C16x/XC16x processor */
- M16C = 117, /**< Renesas M16C series microprocessors */
- DSPIC30F = 118, /**< Microchip Technology dsPIC30F Digital Signal */
- CE = 119, /**< Freescale Communication Engine RISC core */
- M32C = 120, /**< Renesas M32C series microprocessors */
- TSK3000 = 131, /**< Altium TSK3000 core */
- RS08 = 132, /**< Freescale RS08 embedded processor */
- SHARC = 133, /**< Analog Devices SHARC family of 32-bit DSP */
- ECOG2 = 134, /**< Cyan Technology eCOG2 microprocessor */
- SCORE7 = 135, /**< Sunplus S+core7 RISC processor */
- DSP24 = 136, /**< New Japan Radio (NJR) 24-bit DSP Processor */
- VIDEOCORE3 = 137, /**< Broadcom VideoCore III processor */
+ NONE = 0, /**< No machine */
+ M32 = 1, /**< AT&T WE 32100 */
+ SPARC = 2, /**< SPARC */
+ I386 = 3, /**< Intel 386 */
+ M68K = 4, /**< Motorola 68000 */
+ M88K = 5, /**< Motorola 88000 */
+ IAMCU = 6, /**< Intel MCU */
+ I860 = 7, /**< Intel 80860 */
+ MIPS = 8, /**< MIPS R3000 */
+ S370 = 9, /**< IBM System/370 */
+ MIPS_RS3_LE = 10, /**< MIPS RS3000 Little-endian */
+ PARISC = 15, /**< Hewlett-Packard PA-RISC */
+ VPP500 = 17, /**< Fujitsu VPP500 */
+ SPARC32PLUS = 18, /**< Enhanced instruction set SPARC */
+ I60 = 19, /**< Intel 80960 */
+ PPC = 20, /**< PowerPC */
+ PPC64 = 21, /**< PowerPC64 */
+ S390 = 22, /**< IBM System/390 */
+ SPU = 23, /**< IBM SPU/SPC */
+ V800 = 36, /**< NEC V800 */
+ FR20 = 37, /**< Fujitsu FR20 */
+ RH32 = 38, /**< TRW RH-32 */
+ RCE = 39, /**< Motorola RCE */
+ ARM = 40, /**< ARM */
+ ALPHA = 41, /**< DEC Alpha */
+ SH = 42, /**< Hitachi SH */
+ SPARCV9 = 43, /**< SPARC V9 */
+ TRICORE = 44, /**< Siemens TriCore */
+ ARC = 45, /**< Argonaut RISC Core */
+ H8_300 = 46, /**< Hitachi H8/300 */
+ H8_300H = 47, /**< Hitachi H8/300H */
+ H8S = 48, /**< Hitachi H8S */
+ H8_500 = 49, /**< Hitachi H8/500 */
+ IA_64 = 50, /**< Intel IA-64 processor architecture */
+ MIPS_X = 51, /**< Stanford MIPS-X */
+ COLDFIRE = 52, /**< Motorola ColdFire */
+ M68HC12 = 53, /**< Motorola M68HC12 */
+ MMA = 54, /**< Fujitsu MMA Multimedia Accelerator */
+ PCP = 55, /**< Siemens PCP */
+ NCPU = 56, /**< Sony nCPU embedded RISC processor */
+ NDR1 = 57, /**< Denso NDR1 microprocessor */
+ STARCORE = 58, /**< Motorola Star*Core processor */
+ ME16 = 59, /**< Toyota ME16 processor */
+ ST100 = 60, /**< STMicroelectronics ST100 processor */
+ TINYJ = 61, /**< Advanced Logic Corp. TinyJ embedded processor family */
+ X86_64 = 62, /**< AMD x86-64 architecture */
+ PDSP = 63, /**< Sony DSP Processor */
+ PDP10 = 64, /**< Digital Equipment Corp. PDP-10 */
+ PDP11 = 65, /**< Digital Equipment Corp. PDP-11 */
+ FX66 = 66, /**< Siemens FX66 microcontroller */
+ ST9PLUS = 67, /**< STMicroelectronics ST9+ 8/16 bit microcontroller */
+ ST7 = 68, /**< STMicroelectronics ST7 8-bit microcontroller */
+ M68HC16 = 69, /**< Motorola MC68HC16 Microcontroller */
+ M68HC11 = 70, /**< Motorola MC68HC11 Microcontroller */
+ M68HC08 = 71, /**< Motorola MC68HC08 Microcontroller */
+ M68HC05 = 72, /**< Motorola MC68HC05 Microcontroller */
+ SVX = 73, /**< Silicon Graphics SVx */
+ ST19 = 74, /**< STMicroelectronics ST19 8-bit microcontroller */
+ VAX = 75, /**< Digital VAX */
+ CRIS = 76, /**< Axis Communications 32-bit embedded processor */
+ JAVELIN = 77, /**< Infineon Technologies 32-bit embedded processor */
+ FIREPATH = 78, /**< Element 14 64-bit DSP Processor */
+ ZSP = 79, /**< LSI Logic 16-bit DSP Processor */
+ MMIX = 80, /**< Donald Knuth's educational 64-bit processor */
+ HUANY = 81, /**< Harvard University machine-independent object files */
+ PRISM = 82, /**< SiTera Prism */
+ AVR = 83, /**< Atmel AVR 8-bit microcontroller */
+ FR30 = 84, /**< Fujitsu FR30 */
+ D10V = 85, /**< Mitsubishi D10V */
+ D30V = 86, /**< Mitsubishi D30V */
+ V850 = 87, /**< NEC v850 */
+ M32R = 88, /**< Mitsubishi M32R */
+ MN10300 = 89, /**< Matsushita MN10300 */
+ MN10200 = 90, /**< Matsushita MN10200 */
+ PJ = 91, /**< picoJava */
+ OPENRISC = 92, /**< OpenRISC 32-bit embedded processor */
+ ARC_COMPACT = 93, /**< ARC International ARCompact processor (old
+ spelling/synonym: EM_ARC_A5) */
+ XTENSA = 94, /**< Tensilica Xtensa Architecture */
+ VIDEOCORE = 95, /**< Alphamosaic VideoCore processor */
+ TMM_GPP = 96, /**< Thompson Multimedia General Purpose Processor */
+ NS32K = 97, /**< National Semiconductor 32000 series */
+ TPC = 98, /**< Tenor Network TPC processor */
+ SNP1K = 99, /**< Trebia SNP 1000 processor */
+ ST200 = 100, /**< STMicroelectronics (www.st.com) ST200 */
+ IP2K = 101, /**< Ubicom IP2xxx microcontroller family */
+ MAX = 102, /**< MAX Processor */
+ CR = 103, /**< National Semiconductor CompactRISC microprocessor */
+ F2MC16 = 104, /**< Fujitsu F2MC16 */
+ MSP430 = 105, /**< Texas Instruments embedded microcontroller msp430 */
+ BLACKFIN = 106, /**< Analog Devices Blackfin (DSP) processor */
+ SE_C33 = 107, /**< S1C33 Family of Seiko Epson processors */
+ SEP = 108, /**< Sharp embedded microprocessor */
+ ARCA = 109, /**< Arca RISC Microprocessor */
+ UNICORE = 110, /**< Microprocessor series from PKU-Unity Ltd. and MPRC of Peking
+ University */
+ EXCESS = 111, /**< eXcess: 16/32/64-bit configurable embedded CPU */
+ DXP = 112, /**< Icera Semiconductor Inc. Deep Execution Processor */
+ ALTERA_NIOS2 = 113, /**< Altera Nios II soft-core processor */
+ CRX = 114, /**< National Semiconductor CompactRISC CRX */
+ XGATE = 115, /**< Motorola XGATE embedded processor */
+ C166 = 116, /**< Infineon C16x/XC16x processor */
+ M16C = 117, /**< Renesas M16C series microprocessors */
+ DSPIC30F = 118, /**< Microchip Technology dsPIC30F Digital Signal */
+ CE = 119, /**< Freescale Communication Engine RISC core */
+ M32C = 120, /**< Renesas M32C series microprocessors */
+ TSK3000 = 131, /**< Altium TSK3000 core */
+ RS08 = 132, /**< Freescale RS08 embedded processor */
+ SHARC = 133, /**< Analog Devices SHARC family of 32-bit DSP */
+ ECOG2 = 134, /**< Cyan Technology eCOG2 microprocessor */
+ SCORE7 = 135, /**< Sunplus S+core7 RISC processor */
+ DSP24 = 136, /**< New Japan Radio (NJR) 24-bit DSP Processor */
+ VIDEOCORE3 = 137, /**< Broadcom VideoCore III processor */
LATTICEMICO32 = 138, /**< RISC processor for Lattice FPGA architecture */
- SE_C17 = 139, /**< Seiko Epson C17 family */
- TI_C6000 = 140, /**< The Texas Instruments TMS320C6000 DSP family */
- TI_C2000 = 141, /**< The Texas Instruments TMS320C2000 DSP family */
- TI_C5500 = 142, /**< The Texas Instruments TMS320C55x DSP family */
- MMDSP_PLUS = 160, /**< STMicroelectronics 64bit VLIW Data Signal Processor */
- CYPRESS_M8C = 161, /**< Cypress M8C microprocessor */
- R32C = 162, /**< Renesas R32C series microprocessors */
- TRIMEDIA = 163, /**< NXP Semiconductors TriMedia architecture family */
- HEXAGON = 164, /**< Qualcomm Hexagon processor */
- M8051 = 165, /**< Intel 8051 and variants */
- STXP7X = 166, /**< STMicroelectronics STxP7x family of configurable */
- NDS32 = 167, /* Andes Technology compact code size embedded RISC */
- ECOG1 = 168, /**< Cyan Technology eCOG1X family */
- ECOG1X = 168, /**< Cyan Technology eCOG1X family */
- MAXQ30 = 169, /**< Dallas Semiconductor MAXQ30 Core Micro-controllers */
- XIMO16 = 170, /**< New Japan Radio (NJR) 16-bit DSP Processor */
- MANIK = 171, /**< M2000 Reconfigurable RISC Microprocessor */
- CRAYNV2 = 172, /**< Cray Inc. NV2 vector architecture */
- RX = 173, /**< Renesas RX family */
- METAG = 174, /**< Imagination Technologies META processor */
- MCST_ELBRUS = 175, /**< MCST Elbrus general purpose hardware architecture */
- ECOG16 = 176, /**< Cyan Technology eCOG16 family */
- CR16 = 177, /**< National Semiconductor CompactRISC CR16 16-bit */
- ETPU = 178, /**< Freescale Extended Time Processing Unit */
- SLE9X = 179, /**< Infineon Technologies SLE9X core */
- L10M = 180, /**< Intel L10M */
- K10M = 181, /**< Intel K10M */
- AARCH64 = 183, /**< ARM AArch64 */
- AVR32 = 185, /**< Atmel Corporation 32-bit microprocessor family */
- STM8 = 186, /**< STMicroeletronics STM8 8-bit microcontroller */
- TILE64 = 187, /**< Tilera TILE64 multicore architecture family */
- TILEPRO = 188, /**< Tilera TILEPro multicore architecture family */
- CUDA = 190, /**< NVIDIA CUDA architecture */
- TILEGX = 191, /**< Tilera TILE-Gx multicore architecture family */
- CLOUDSHIELD = 192, /**< CloudShield architecture family */
- COREA_1ST = 193, /**< KIPO-KAIST Core-A 1st generation processor family */
- COREA_2ND = 194, /**< KIPO-KAIST Core-A 2nd generation processor family */
- ARC_COMPACT2 = 195, /**< Synopsys ARCompact V2 */
- OPEN8 = 196, /**< Open8 8-bit RISC soft processor core */
- RL78 = 197, /**< Renesas RL78 family */
- VIDEOCORE5 = 198, /**< Broadcom VideoCore V processor */
- M78KOR = 199, /**< Renesas 78KOR family */
- M56800EX = 200, /**< Freescale 56800EX Digital Signal Controller (DSC) */
- BA1 = 201, /**< Beyond BA1 CPU architecture */
- BA2 = 202, /**< Beyond BA2 CPU architecture */
- XCORE = 203, /**< XMOS xCORE processor family */
- MCHP_PIC = 204, /**< Microchip 8-bit PIC(r) family */
- INTEL205 = 205, /**< Reserved by Intel */
- INTEL206 = 206, /**< Reserved by Intel */
- INTEL207 = 207, /**< Reserved by Intel */
- INTEL208 = 208, /**< Reserved by Intel */
- INTEL209 = 209, /**< Reserved by Intel */
- KM32 = 210, /**< KM211 KM32 32-bit processor */
- KMX32 = 211, /**< KM211 KMX32 32-bit processor */
- KMX16 = 212, /**< KM211 KMX16 16-bit processor */
- KMX8 = 213, /**< KM211 KMX8 8-bit processor */
- KVARC = 214, /**< KM211 KVARC processor */
- CDP = 215, /**< Paneve CDP architecture family */
- COGE = 216, /**< Cognitive Smart Memory Processor */
- COOL = 217, /**< iCelero CoolEngine */
- NORC = 218, /**< Nanoradio Optimized RISC */
- CSR_KALIMBA = 219, /**< CSR Kalimba architecture family */
- AMDGPU = 224, /**< AMD GPU architecture */
- RISCV = 243, /**< RISC-V */
- BPF = 247, /**< eBPF Filter */
- CSKY = 252, /**< C-SKY */
- LOONGARCH = 258, /**< LoongArch */
+ SE_C17 = 139, /**< Seiko Epson C17 family */
+ TI_C6000 = 140, /**< The Texas Instruments TMS320C6000 DSP family */
+ TI_C2000 = 141, /**< The Texas Instruments TMS320C2000 DSP family */
+ TI_C5500 = 142, /**< The Texas Instruments TMS320C55x DSP family */
+ MMDSP_PLUS = 160, /**< STMicroelectronics 64bit VLIW Data Signal Processor */
+ CYPRESS_M8C = 161, /**< Cypress M8C microprocessor */
+ R32C = 162, /**< Renesas R32C series microprocessors */
+ TRIMEDIA = 163, /**< NXP Semiconductors TriMedia architecture family */
+ HEXAGON = 164, /**< Qualcomm Hexagon processor */
+ M8051 = 165, /**< Intel 8051 and variants */
+ STXP7X = 166, /**< STMicroelectronics STxP7x family of configurable */
+ NDS32 = 167, /* Andes Technology compact code size embedded RISC */
+ ECOG1 = 168, /**< Cyan Technology eCOG1X family */
+ ECOG1X = 168, /**< Cyan Technology eCOG1X family */
+ MAXQ30 = 169, /**< Dallas Semiconductor MAXQ30 Core Micro-controllers */
+ XIMO16 = 170, /**< New Japan Radio (NJR) 16-bit DSP Processor */
+ MANIK = 171, /**< M2000 Reconfigurable RISC Microprocessor */
+ CRAYNV2 = 172, /**< Cray Inc. NV2 vector architecture */
+ RX = 173, /**< Renesas RX family */
+ METAG = 174, /**< Imagination Technologies META processor */
+ MCST_ELBRUS = 175, /**< MCST Elbrus general purpose hardware architecture */
+ ECOG16 = 176, /**< Cyan Technology eCOG16 family */
+ CR16 = 177, /**< National Semiconductor CompactRISC CR16 16-bit */
+ ETPU = 178, /**< Freescale Extended Time Processing Unit */
+ SLE9X = 179, /**< Infineon Technologies SLE9X core */
+ L10M = 180, /**< Intel L10M */
+ K10M = 181, /**< Intel K10M */
+ AARCH64 = 183, /**< ARM AArch64 */
+ AVR32 = 185, /**< Atmel Corporation 32-bit microprocessor family */
+ STM8 = 186, /**< STMicroeletronics STM8 8-bit microcontroller */
+ TILE64 = 187, /**< Tilera TILE64 multicore architecture family */
+ TILEPRO = 188, /**< Tilera TILEPro multicore architecture family */
+ CUDA = 190, /**< NVIDIA CUDA architecture */
+ TILEGX = 191, /**< Tilera TILE-Gx multicore architecture family */
+ CLOUDSHIELD = 192, /**< CloudShield architecture family */
+ COREA_1ST = 193, /**< KIPO-KAIST Core-A 1st generation processor family */
+ COREA_2ND = 194, /**< KIPO-KAIST Core-A 2nd generation processor family */
+ ARC_COMPACT2 = 195, /**< Synopsys ARCompact V2 */
+ OPEN8 = 196, /**< Open8 8-bit RISC soft processor core */
+ RL78 = 197, /**< Renesas RL78 family */
+ VIDEOCORE5 = 198, /**< Broadcom VideoCore V processor */
+ M78KOR = 199, /**< Renesas 78KOR family */
+ M56800EX = 200, /**< Freescale 56800EX Digital Signal Controller (DSC) */
+ BA1 = 201, /**< Beyond BA1 CPU architecture */
+ BA2 = 202, /**< Beyond BA2 CPU architecture */
+ XCORE = 203, /**< XMOS xCORE processor family */
+ MCHP_PIC = 204, /**< Microchip 8-bit PIC(r) family */
+ INTEL205 = 205, /**< Reserved by Intel */
+ INTEL206 = 206, /**< Reserved by Intel */
+ INTEL207 = 207, /**< Reserved by Intel */
+ INTEL208 = 208, /**< Reserved by Intel */
+ INTEL209 = 209, /**< Reserved by Intel */
+ KM32 = 210, /**< KM211 KM32 32-bit processor */
+ KMX32 = 211, /**< KM211 KMX32 32-bit processor */
+ KMX16 = 212, /**< KM211 KMX16 16-bit processor */
+ KMX8 = 213, /**< KM211 KMX8 8-bit processor */
+ KVARC = 214, /**< KM211 KVARC processor */
+ CDP = 215, /**< Paneve CDP architecture family */
+ COGE = 216, /**< Cognitive Smart Memory Processor */
+ COOL = 217, /**< iCelero CoolEngine */
+ NORC = 218, /**< Nanoradio Optimized RISC */
+ CSR_KALIMBA = 219, /**< CSR Kalimba architecture family */
+ AMDGPU = 224, /**< AMD GPU architecture */
+ RISCV = 243, /**< RISC-V */
+ BPF = 247, /**< eBPF Filter */
+ CSKY = 252, /**< C-SKY */
+ LOONGARCH = 258, /**< LoongArch */
- ALPHA_ALT = 0x9026
+ ALPHA_ALT = 0x9026,
};
}
diff --git a/deps/LIEF/include/LIEF/ELF/hash.hpp b/deps/LIEF/include/LIEF/ELF/hash.hpp
index e10516717a1..6a400b22f0f 100644
--- a/deps/LIEF/include/LIEF/ELF/hash.hpp
+++ b/deps/LIEF/include/LIEF/ELF/hash.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -64,36 +64,36 @@ class LIEF_API Hash : public LIEF::Hash {
using LIEF::Hash::visit;
public:
- void visit(const Binary& binary) override;
- void visit(const Header& header) override;
- void visit(const Section& section) override;
- void visit(const Segment& segment) override;
- void visit(const DynamicEntry& entry) override;
- void visit(const DynamicEntryArray& entry) override;
- void visit(const DynamicEntryLibrary& entry) override;
- void visit(const DynamicEntryRpath& entry) override;
- void visit(const DynamicEntryRunPath& entry) override;
- void visit(const DynamicSharedObject& entry) override;
- void visit(const DynamicEntryFlags& entry) override;
- void visit(const Symbol& symbol) override;
- void visit(const Relocation& relocation) override;
- void visit(const SymbolVersion& sv) override;
- void visit(const SymbolVersionAux& sv) override;
+ void visit(const Binary& binary) override;
+ void visit(const Header& header) override;
+ void visit(const Section& section) override;
+ void visit(const Segment& segment) override;
+ void visit(const DynamicEntry& entry) override;
+ void visit(const DynamicEntryArray& entry) override;
+ void visit(const DynamicEntryLibrary& entry) override;
+ void visit(const DynamicEntryRpath& entry) override;
+ void visit(const DynamicEntryRunPath& entry) override;
+ void visit(const DynamicSharedObject& entry) override;
+ void visit(const DynamicEntryFlags& entry) override;
+ void visit(const Symbol& symbol) override;
+ void visit(const Relocation& relocation) override;
+ void visit(const SymbolVersion& sv) override;
+ void visit(const SymbolVersionAux& sv) override;
void visit(const SymbolVersionAuxRequirement& sv) override;
- void visit(const SymbolVersionRequirement& svr) override;
- void visit(const SymbolVersionDefinition& svd) override;
- void visit(const Note& note) override;
- void visit(const AndroidIdent& note) override;
- void visit(const QNXStack& note) override;
- void visit(const NoteAbi& note) override;
- void visit(const NoteGnuProperty& note) override;
- void visit(const CorePrPsInfo& pinfo) override;
- void visit(const CorePrStatus& pstatus) override;
- void visit(const CoreAuxv& auxv) override;
- void visit(const CoreSigInfo& siginfo) override;
- void visit(const CoreFile& file) override;
- void visit(const GnuHash& gnuhash) override;
- void visit(const SysvHash& sysvhash) override;
+ void visit(const SymbolVersionRequirement& svr) override;
+ void visit(const SymbolVersionDefinition& svd) override;
+ void visit(const Note& note) override;
+ void visit(const AndroidIdent& note) override;
+ void visit(const QNXStack& note) override;
+ void visit(const NoteAbi& note) override;
+ void visit(const NoteGnuProperty& note) override;
+ void visit(const CorePrPsInfo& pinfo) override;
+ void visit(const CorePrStatus& pstatus) override;
+ void visit(const CoreAuxv& auxv) override;
+ void visit(const CoreSigInfo& siginfo) override;
+ void visit(const CoreFile& file) override;
+ void visit(const GnuHash& gnuhash) override;
+ void visit(const SysvHash& sysvhash) override;
~Hash() override;
};
diff --git a/deps/LIEF/include/LIEF/ELF/json.hpp b/deps/LIEF/include/LIEF/ELF/json.hpp
index fa1acd66bd1..a8f5bcdcda1 100644
--- a/deps/LIEF/include/LIEF/ELF/json.hpp
+++ b/deps/LIEF/include/LIEF/ELF/json.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/ELF/utils.hpp b/deps/LIEF/include/LIEF/ELF/utils.hpp
index a723e5a9467..8caf6c5383d 100644
--- a/deps/LIEF/include/LIEF/ELF/utils.hpp
+++ b/deps/LIEF/include/LIEF/ELF/utils.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,14 +18,15 @@
#include <string>
#include <vector>
+#include <cstdint>
-#include "LIEF/types.hpp"
#include "LIEF/visibility.h"
namespace LIEF {
class BinaryStream;
namespace ELF {
+class Binary;
/// Check if given stream wraps an ELF file
LIEF_API bool is_elf(BinaryStream& stream);
@@ -33,9 +34,12 @@ LIEF_API bool is_elf(BinaryStream& stream);
/// Check if the given file is an ELF one.
LIEF_API bool is_elf(const std::string& file);
-/// check if the raw data is an ELF file
+/// Check if the raw data is an ELF file
LIEF_API bool is_elf(const std::vector<uint8_t>& raw);
+/// Check that the layout of the given Binary is correct
+LIEF_API bool check_layout(const Binary& bin, std::string* error_info = nullptr);
+
LIEF_API unsigned long hash32(const char* name);
LIEF_API unsigned long hash64(const char* name);
LIEF_API uint32_t dl_new_hash(const char* name);
diff --git a/deps/LIEF/include/LIEF/LIEF.hpp b/deps/LIEF/include/LIEF/LIEF.hpp
index 05395035464..81ec0cb4e5c 100644
--- a/deps/LIEF/include/LIEF/LIEF.hpp
+++ b/deps/LIEF/include/LIEF/LIEF.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
#include <LIEF/Abstract.hpp>
+#include <LIEF/runtime.hpp>
#include <LIEF/OAT.hpp>
#include <LIEF/VDEX.hpp>
#include <LIEF/ART.hpp>
@@ -35,6 +36,7 @@
#include <LIEF/logging.hpp>
#include <LIEF/platforms.hpp>
#include <LIEF/debug_loc.hpp>
+#include <LIEF/DebugDeclOpt.hpp>
#endif
diff --git a/deps/LIEF/include/LIEF/MachO.hpp b/deps/LIEF/include/LIEF/MachO.hpp
index 8c8151a8dfb..23a280143d6 100644
--- a/deps/LIEF/include/LIEF/MachO.hpp
+++ b/deps/LIEF/include/LIEF/MachO.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,72 +20,74 @@
#if defined(LIEF_MACHO_SUPPORT)
-#include "LIEF/MachO/AtomInfo.hpp"
-#include "LIEF/MachO/Binary.hpp"
-#include "LIEF/MachO/BinaryParser.hpp"
-#include "LIEF/MachO/BindingInfo.hpp"
-#include "LIEF/MachO/BindingInfoIterator.hpp"
-#include "LIEF/MachO/BuildToolVersion.hpp"
-#include "LIEF/MachO/BuildVersion.hpp"
-#include "LIEF/MachO/Builder.hpp"
-#include "LIEF/MachO/ChainedBindingInfo.hpp"
-#include "LIEF/MachO/CodeSignature.hpp"
-#include "LIEF/MachO/CodeSignatureDir.hpp"
-#include "LIEF/MachO/DataCodeEntry.hpp"
-#include "LIEF/MachO/DataInCode.hpp"
-#include "LIEF/MachO/DyldBindingInfo.hpp"
-#include "LIEF/MachO/DyldChainedFixups.hpp"
-#include "LIEF/MachO/DyldChainedFixupsCreator.hpp"
-#include "LIEF/MachO/DyldEnvironment.hpp"
-#include "LIEF/MachO/DyldExportsTrie.hpp"
-#include "LIEF/MachO/DyldInfo.hpp"
-#include "LIEF/MachO/DylibCommand.hpp"
-#include "LIEF/MachO/DylinkerCommand.hpp"
-#include "LIEF/MachO/DynamicSymbolCommand.hpp"
-#include "LIEF/MachO/EncryptionInfo.hpp"
-#include "LIEF/MachO/EnumToString.hpp"
-#include "LIEF/MachO/ExportInfo.hpp"
-#include "LIEF/MachO/FatBinary.hpp"
-#include "LIEF/MachO/FilesetCommand.hpp"
-#include "LIEF/MachO/FunctionStarts.hpp"
-#include "LIEF/MachO/FunctionVariants.hpp"
-#include "LIEF/MachO/FunctionVariantFixups.hpp"
-#include "LIEF/MachO/Header.hpp"
-#include "LIEF/MachO/IndirectBindingInfo.hpp"
-#include "LIEF/MachO/LinkEdit.hpp"
-#include "LIEF/MachO/LinkerOptHint.hpp"
-#include "LIEF/MachO/LoadCommand.hpp"
-#include "LIEF/MachO/MainCommand.hpp"
-#include "LIEF/MachO/NoteCommand.hpp"
-#include "LIEF/MachO/Parser.hpp"
-#include "LIEF/MachO/ParserConfig.hpp"
-#include "LIEF/MachO/RPathCommand.hpp"
-#include "LIEF/MachO/Relocation.hpp"
-#include "LIEF/MachO/RelocationDyld.hpp"
-#include "LIEF/MachO/RelocationFixup.hpp"
-#include "LIEF/MachO/RelocationObject.hpp"
-#include "LIEF/MachO/Routine.hpp"
-#include "LIEF/MachO/Section.hpp"
-#include "LIEF/MachO/SegmentCommand.hpp"
-#include "LIEF/MachO/SegmentSplitInfo.hpp"
-#include "LIEF/MachO/SourceVersion.hpp"
-#include "LIEF/MachO/Stub.hpp"
-#include "LIEF/MachO/SubClient.hpp"
-#include "LIEF/MachO/SubFramework.hpp"
-#include "LIEF/MachO/Symbol.hpp"
-#include "LIEF/MachO/SymbolCommand.hpp"
-#include "LIEF/MachO/ThreadCommand.hpp"
-#include "LIEF/MachO/TwoLevelHints.hpp"
-#include "LIEF/MachO/UUIDCommand.hpp"
-#include "LIEF/MachO/UnknownCommand.hpp"
-#include "LIEF/MachO/VersionMin.hpp"
-#include "LIEF/MachO/enums.hpp"
-#include "LIEF/MachO/hash.hpp"
-#include "LIEF/MachO/json.hpp"
-#include "LIEF/MachO/type_traits.hpp"
-#include "LIEF/MachO/utils.hpp"
+ #include "LIEF/MachO/AtomInfo.hpp"
+ #include "LIEF/MachO/Binary.hpp"
+ #include "LIEF/MachO/BinaryParser.hpp"
+ #include "LIEF/MachO/BindingInfo.hpp"
+ #include "LIEF/MachO/BindingInfoIterator.hpp"
+ #include "LIEF/MachO/BuildToolVersion.hpp"
+ #include "LIEF/MachO/BuildVersion.hpp"
+ #include "LIEF/MachO/Builder.hpp"
+ #include "LIEF/MachO/ChainedBindingInfo.hpp"
+ #include "LIEF/MachO/CodeSignature.hpp"
+ #include "LIEF/MachO/CodeSignatureDir.hpp"
+ #include "LIEF/MachO/DataCodeEntry.hpp"
+ #include "LIEF/MachO/DataInCode.hpp"
+ #include "LIEF/MachO/DyldBindingInfo.hpp"
+ #include "LIEF/MachO/DyldChainedFixups.hpp"
+ #include "LIEF/MachO/DyldChainedFixupsCreator.hpp"
+ #include "LIEF/MachO/DyldEnvironment.hpp"
+ #include "LIEF/MachO/DyldExportsTrie.hpp"
+ #include "LIEF/MachO/DyldInfo.hpp"
+ #include "LIEF/MachO/DylibCommand.hpp"
+ #include "LIEF/MachO/DylinkerCommand.hpp"
+ #include "LIEF/MachO/DynamicSymbolCommand.hpp"
+ #include "LIEF/MachO/EncryptionInfo.hpp"
+ #include "LIEF/MachO/EnumToString.hpp"
+ #include "LIEF/MachO/ExportInfo.hpp"
+ #include "LIEF/MachO/FatBinary.hpp"
+ #include "LIEF/MachO/FilesetCommand.hpp"
+ #include "LIEF/MachO/FunctionStarts.hpp"
+ #include "LIEF/MachO/FunctionVariants.hpp"
+ #include "LIEF/MachO/FunctionVariantFixups.hpp"
+ #include "LIEF/MachO/Header.hpp"
+ #include "LIEF/MachO/IndirectBindingInfo.hpp"
+ #include "LIEF/MachO/LazyLoadDylibInfo.hpp"
+ #include "LIEF/MachO/LinkEdit.hpp"
+ #include "LIEF/MachO/LinkerOptHint.hpp"
+ #include "LIEF/MachO/LoadCommand.hpp"
+ #include "LIEF/MachO/MainCommand.hpp"
+ #include "LIEF/MachO/NoteCommand.hpp"
+ #include "LIEF/MachO/Parser.hpp"
+ #include "LIEF/MachO/ParserConfig.hpp"
+ #include "LIEF/MachO/RPathCommand.hpp"
+ #include "LIEF/MachO/Relocation.hpp"
+ #include "LIEF/MachO/RelocationDyld.hpp"
+ #include "LIEF/MachO/RelocationFixup.hpp"
+ #include "LIEF/MachO/RelocationObject.hpp"
+ #include "LIEF/MachO/Routine.hpp"
+ #include "LIEF/MachO/Section.hpp"
+ #include "LIEF/MachO/ThreadLocalVariables.hpp"
+ #include "LIEF/MachO/SegmentCommand.hpp"
+ #include "LIEF/MachO/SegmentSplitInfo.hpp"
+ #include "LIEF/MachO/SourceVersion.hpp"
+ #include "LIEF/MachO/Stub.hpp"
+ #include "LIEF/MachO/SubClient.hpp"
+ #include "LIEF/MachO/SubFramework.hpp"
+ #include "LIEF/MachO/Symbol.hpp"
+ #include "LIEF/MachO/SymbolCommand.hpp"
+ #include "LIEF/MachO/ThreadCommand.hpp"
+ #include "LIEF/MachO/TwoLevelHints.hpp"
+ #include "LIEF/MachO/UUIDCommand.hpp"
+ #include "LIEF/MachO/UnknownCommand.hpp"
+ #include "LIEF/MachO/VersionMin.hpp"
+ #include "LIEF/MachO/enums.hpp"
+ #include "LIEF/MachO/hash.hpp"
+ #include "LIEF/MachO/json.hpp"
+ #include "LIEF/MachO/type_traits.hpp"
+ #include "LIEF/MachO/utils.hpp"
-#include "LIEF/ObjC/Metadata.hpp"
+ #include "LIEF/ObjC/Metadata.hpp"
#endif
#endif
diff --git a/deps/LIEF/include/LIEF/MachO/AtomInfo.hpp b/deps/LIEF/include/LIEF/MachO/AtomInfo.hpp
index 06fa5f85a00..9f657b001c4 100644
--- a/deps/LIEF/include/LIEF/MachO/AtomInfo.hpp
+++ b/deps/LIEF/include/LIEF/MachO/AtomInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
#define LIEF_MACHO_ATOM_INFO_COMMAND_H
#include <ostream>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/span.hpp"
@@ -64,11 +65,11 @@ class LIEF_API AtomInfo : public LoadCommand {
data_size_ = size;
}
- span<const uint8_t> content() const {
+ span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
return content_;
}
- span<uint8_t> content() {
+ span<uint8_t> content() LIEF_LIFETIMEBOUND {
return content_;
}
diff --git a/deps/LIEF/include/LIEF/MachO/Binary.hpp b/deps/LIEF/include/LIEF/MachO/Binary.hpp
index 3e300093c5d..e95e07a8deb 100644
--- a/deps/LIEF/include/LIEF/MachO/Binary.hpp
+++ b/deps/LIEF/include/LIEF/MachO/Binary.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@
#include <map>
#include <set>
#include <memory>
+#include <mutex>
#include "LIEF/MachO/LoadCommand.hpp"
#include "LIEF/MachO/Header.hpp"
@@ -28,6 +29,7 @@
#include "LIEF/MachO/Stub.hpp"
#include "LIEF/MachO/Builder.hpp"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/utils.hpp"
@@ -63,6 +65,7 @@ class ExportInfo;
class FunctionStarts;
class FunctionVariants;
class FunctionVariantFixups;
+class LazyLoadDylibInfo;
class Header;
class IndirectBindingInfo;
class LinkerOptHint;
@@ -85,7 +88,7 @@ class UUIDCommand;
class VersionMin;
/// Class which represents a MachO binary
-class LIEF_API Binary : public LIEF::Binary {
+class LIEF_API Binary : public LIEF::Binary {
friend class Parser;
friend class BinaryParser;
@@ -96,7 +99,7 @@ class LIEF_API Binary : public LIEF::Binary {
public:
struct range_t {
uint64_t start = 0;
- uint64_t end = 0;
+ uint64_t end = 0;
uint64_t size() const {
return end - start;
@@ -129,13 +132,15 @@ class LIEF_API Binary : public LIEF::Binary {
using it_exported_symbols = filter_iterator<symbols_t&, Symbol*>;
/// Iterator that outputs exported const Symbol&
- using it_const_exported_symbols = const_filter_iterator<const symbols_t&, const Symbol*>;
+ using it_const_exported_symbols =
+ const_filter_iterator<const symbols_t&, const Symbol*>;
/// Iterator that outputs imported Symbol&
using it_imported_symbols = filter_iterator<symbols_t&, Symbol*>;
/// Iterator that outputs imported const Symbol&
- using it_const_imported_symbols = const_filter_iterator<const symbols_t&, const Symbol*>;
+ using it_const_imported_symbols =
+ const_filter_iterator<const symbols_t&, const Symbol*>;
/// Internal container for caching Mach-O Section
using sections_cache_t = std::vector<Section*>;
@@ -164,6 +169,16 @@ class LIEF_API Binary : public LIEF::Binary {
/// Iterator that outputs const DylibCommand&
using it_const_libraries = const_ref_iterator<const libraries_cache_t&>;
+ /// Internal container for storing Mach-O LazyLoadDylibInfo
+ using lazy_load_dylib_info_cache_t = std::vector<LazyLoadDylibInfo*>;
+
+ /// Iterator that outputs LazyLoadDylibInfo&
+ using it_lazy_load_dylib_info = ref_iterator<lazy_load_dylib_info_cache_t&>;
+
+ /// Iterator that outputs const LazyLoadDylibInfo&
+ using it_const_lazy_load_dylib_info =
+ const_ref_iterator<const lazy_load_dylib_info_cache_t&>;
+
/// Internal container for storing Mach-O Fileset Binary
using fileset_binaries_t = std::vector<std::unique_ptr<Binary>>;
@@ -171,10 +186,11 @@ class LIEF_API Binary : public LIEF::Binary {
using it_fileset_binaries = ref_iterator<fileset_binaries_t&, Binary*>;
/// Iterator that outputs const Binary&
- using it_const_fileset_binaries = const_ref_iterator<const fileset_binaries_t&, Binary*>;
+ using it_const_fileset_binaries =
+ const_ref_iterator<const fileset_binaries_t&, Binary*>;
struct KeyCmp {
- bool operator() (const Relocation* lhs, const Relocation* rhs) const;
+ bool operator()(const Relocation* lhs, const Relocation* rhs) const;
};
/// Internal container that store all the relocations
@@ -186,19 +202,22 @@ class LIEF_API Binary : public LIEF::Binary {
using it_relocations = ref_iterator<relocations_t&, Relocation*>;
/// Iterator which outputs const Relocation&
- using it_const_relocations = const_ref_iterator<const relocations_t&, const Relocation*>;
+ using it_const_relocations =
+ const_ref_iterator<const relocations_t&, const Relocation*>;
/// Iterator which outputs RPathCommand&
using it_rpaths = filter_iterator<commands_t&, RPathCommand*>;
/// Iterator which outputs const RPathCommand&
- using it_const_rpaths = const_filter_iterator<const commands_t&, const RPathCommand*>;
+ using it_const_rpaths =
+ const_filter_iterator<const commands_t&, const RPathCommand*>;
/// Iterator which outputs SubClient&
using it_sub_clients = filter_iterator<commands_t&, SubClient*>;
/// Iterator which outputs const SubClient&
- using it_const_sub_clients = const_filter_iterator<const commands_t&, const SubClient*>;
+ using it_const_sub_clients =
+ const_filter_iterator<const commands_t&, const SubClient*>;
using it_bindings = iterator_range<BindingInfoIterator>;
@@ -209,46 +228,47 @@ class LIEF_API Binary : public LIEF::Binary {
using it_notes = filter_iterator<commands_t&, NoteCommand*>;
/// Iterator which outputs const NoteCommand&
- using it_const_notes = const_filter_iterator<const commands_t&, const NoteCommand*>;
+ using it_const_notes =
+ const_filter_iterator<const commands_t&, const NoteCommand*>;
public:
Binary(const Binary&) = delete;
Binary& operator=(const Binary&) = delete;
/// Return a reference to the MachO::Header
- Header& header() {
+ Header& header() LIEF_LIFETIMEBOUND {
return header_;
}
- const Header& header() const {
+ const Header& header() const LIEF_LIFETIMEBOUND {
return header_;
}
/// Return an iterator over the MachO LoadCommand present
/// in the binary
- it_commands commands() {
+ it_commands commands() LIEF_LIFETIMEBOUND {
return commands_;
}
- it_const_commands commands() const {
+ it_const_commands commands() const LIEF_LIFETIMEBOUND {
return commands_;
}
/// Return an iterator over the MachO::Binary associated
/// with the LoadCommand::TYPE::FILESET_ENTRY commands
- it_fileset_binaries filesets() {
+ it_fileset_binaries filesets() LIEF_LIFETIMEBOUND {
return filesets_;
}
- it_const_fileset_binaries filesets() const {
+ it_const_fileset_binaries filesets() const LIEF_LIFETIMEBOUND {
return filesets_;
}
/// Return binary's @link MachO::Symbol symbols @endlink
- it_symbols symbols() {
+ it_symbols symbols() LIEF_LIFETIMEBOUND {
return symbols_;
}
- it_const_symbols symbols() const {
+ it_const_symbols symbols() const LIEF_LIFETIMEBOUND {
return symbols_;
}
@@ -258,9 +278,9 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return Symbol from the given name. If the symbol does not
- /// exists, it returns a null pointer
- const Symbol* get_symbol(const std::string& name) const;
- Symbol* get_symbol(const std::string& name) {
+ /// exist, it returns a null pointer
+ const Symbol* get_symbol(const std::string& name) const LIEF_LIFETIMEBOUND;
+ Symbol* get_symbol(const std::string& name) LIEF_LIFETIMEBOUND {
return const_cast<Symbol*>(static_cast<const Binary*>(this)->get_symbol(name));
}
@@ -268,61 +288,74 @@ class LIEF_API Binary : public LIEF::Binary {
static bool is_exported(const Symbol& symbol);
/// Return binary's exported symbols (iterator over LIEF::MachO::Symbol)
- it_exported_symbols exported_symbols() {
- return {symbols_, [] (const std::unique_ptr<Symbol>& symbol) {
- return is_exported(*symbol); }
- };
+ it_exported_symbols exported_symbols() LIEF_LIFETIMEBOUND {
+ return {symbols_, [](const std::unique_ptr<Symbol>& symbol) {
+ return is_exported(*symbol);
+ }};
}
- it_const_exported_symbols exported_symbols() const {
- return {symbols_, [] (const std::unique_ptr<Symbol>& symbol) {
- return is_exported(*symbol);
- }};
+ it_const_exported_symbols exported_symbols() const LIEF_LIFETIMEBOUND {
+ return {symbols_, [](const std::unique_ptr<Symbol>& symbol) {
+ return is_exported(*symbol);
+ }};
}
/// Check if the given symbol is an imported one
static bool is_imported(const Symbol& symbol);
/// Return binary's imported symbols (iterator over LIEF::MachO::Symbol)
- it_imported_symbols imported_symbols() {
- return {symbols_, [] (const std::unique_ptr<Symbol>& symbol) {
- return is_imported(*symbol);
- }};
+ it_imported_symbols imported_symbols() LIEF_LIFETIMEBOUND {
+ return {symbols_, [](const std::unique_ptr<Symbol>& symbol) {
+ return is_imported(*symbol);
+ }};
}
- it_const_imported_symbols imported_symbols() const {
- return {symbols_, [] (const std::unique_ptr<Symbol>& symbol) {
- return is_imported(*symbol);
- }};
+ it_const_imported_symbols imported_symbols() const LIEF_LIFETIMEBOUND {
+ return {symbols_, [](const std::unique_ptr<Symbol>& symbol) {
+ return is_imported(*symbol);
+ }};
}
/// Return binary imported libraries (MachO::DylibCommand)
- it_libraries libraries() {
+ it_libraries libraries() LIEF_LIFETIMEBOUND {
return libraries_;
}
- it_const_libraries libraries() const {
+ it_const_libraries libraries() const LIEF_LIFETIMEBOUND {
return libraries_;
}
+ /// Return an iterator over the binary's LazyLoadDylibInfo commands
+ /// (`LC_LAZY_LOAD_DYLIB_INFO`)
+ it_lazy_load_dylib_info lazy_load_dylib_infos() LIEF_LIFETIMEBOUND {
+ return lazy_load_dylib_infos_;
+ }
+
+ it_const_lazy_load_dylib_info lazy_load_dylib_infos() const LIEF_LIFETIMEBOUND {
+ return lazy_load_dylib_infos_;
+ }
+
/// Return an iterator over the SegmentCommand
- it_segments segments() {
+ it_segments segments() LIEF_LIFETIMEBOUND {
return segments_;
}
- it_const_segments segments() const {
+ it_const_segments segments() const LIEF_LIFETIMEBOUND {
return segments_;
}
/// Return an iterator over the MachO::Section
- it_sections sections() {
+ it_sections sections() LIEF_LIFETIMEBOUND {
return sections_;
}
- it_const_sections sections() const {
+ it_const_sections sections() const LIEF_LIFETIMEBOUND {
return sections_;
}
/// Return an iterator over the MachO::Relocation
- it_relocations relocations();
- it_const_relocations relocations() const;
+ it_relocations relocations() LIEF_LIFETIMEBOUND {
+ return static_cast<const Binary*>(this)->relocations();
+ }
+
+ it_const_relocations relocations() const LIEF_LIFETIMEBOUND;
/// Reconstruct the binary object and write the result in the given `filename`
///
@@ -358,48 +391,52 @@ class LIEF_API Binary : public LIEF::Binary {
/// Return the LoadCommand associated with the given LoadCommand::TYPE
/// or a nullptr if the command can't be found.
- const LoadCommand* get(LoadCommand::TYPE type) const;
- LoadCommand* get(LoadCommand::TYPE type) {
+ const LoadCommand* get(LoadCommand::TYPE type) const LIEF_LIFETIMEBOUND;
+ LoadCommand* get(LoadCommand::TYPE type) LIEF_LIFETIMEBOUND {
return const_cast<LoadCommand*>(static_cast<const Binary*>(this)->get(type));
}
- LoadCommand* add(std::unique_ptr<LoadCommand> command);
+ LoadCommand* add(std::unique_ptr<LoadCommand> command) LIEF_LIFETIMEBOUND;
/// Insert a new LoadCommand
- LoadCommand* add(const LoadCommand& command) {
+ LoadCommand* add(const LoadCommand& command) LIEF_LIFETIMEBOUND {
return add(command.clone());
}
/// Insert a new LoadCommand at the specified `index`
- LoadCommand* add(const LoadCommand& command, size_t index);
+ LoadCommand* add(const LoadCommand& command, size_t index) LIEF_LIFETIMEBOUND;
/// Insert the given DylibCommand
- LoadCommand* add(const DylibCommand& library);
+ LoadCommand* add(const DylibCommand& library) LIEF_LIFETIMEBOUND;
/// Add a new LC_SEGMENT command from the given SegmentCommand
- LoadCommand* add(const SegmentCommand& segment);
+ LoadCommand* add(const SegmentCommand& segment) LIEF_LIFETIMEBOUND;
/// Insert a new shared library through a `LC_LOAD_DYLIB` command
- LoadCommand* add_library(const std::string& name);
+ LoadCommand* add_library(const std::string& name) LIEF_LIFETIMEBOUND;
/// Add a new MachO::Section in the __TEXT segment
- Section* add_section(const Section& section);
+ Section* add_section(const Section& section) LIEF_LIFETIMEBOUND;
/// Try to find the library with the given library name.
///
/// This function tries to match the fullpath of the DylibCommand or the
/// library name suffix.
- const DylibCommand* find_library(const std::string& name) const;
+ const DylibCommand*
+ find_library(const std::string& name) const LIEF_LIFETIMEBOUND;
- DylibCommand* find_library(const std::string& name) {
- return const_cast<DylibCommand*>(static_cast<const Binary*>(this)->find_library(name));
+ DylibCommand* find_library(const std::string& name) LIEF_LIFETIMEBOUND {
+ return const_cast<DylibCommand*>(
+ static_cast<const Binary*>(this)->find_library(name)
+ );
}
/// Add a section in the given MachO::SegmentCommand.
///
/// @warning This method may corrupt the file if the segment is not the first one
/// nor the last one
- Section* add_section(const SegmentCommand& segment, const Section& section);
+ Section* add_section(const SegmentCommand& segment,
+ const Section& section) LIEF_LIFETIMEBOUND;
/// Remove the section with the name provided in the first parameter.
///
@@ -414,7 +451,8 @@ class LIEF_API Binary : public LIEF::Binary {
/// @param segname Name of the MachO::Segment
/// @param secname Name of the MachO::Section to remove
/// @param clear If `true` clear the content of the section before removing
- void remove_section(const std::string& segname, const std::string& secname, bool clear = false);
+ void remove_section(const std::string& segname, const std::string& secname,
+ bool clear = false);
/// Remove the given LoadCommand
bool remove(const LoadCommand& command);
@@ -435,7 +473,8 @@ class LIEF_API Binary : public LIEF::Binary {
bool extend_segment(const SegmentCommand& segment, size_t size);
/// Extend the **content** of the given Section.
- /// @note This method may extend the section more than `size` preventing creation a gap
+ /// @note This method may extend the section more than `size` preventing creation
+ /// a gap
/// between the current section and the next one.
/// This may happen trying to satisfy alignment requirement of sections.
/// @note This method works only with sections that belong to the first segment.
@@ -448,7 +487,7 @@ class LIEF_API Binary : public LIEF::Binary {
uint64_t imagebase() const override;
/// Size of the binary in memory when mapped by the loader (`dyld`)
- uint64_t virtual_size() const {
+ uint64_t virtual_size() const override {
return align(va_ranges().size(), (uint64_t)page_size());
}
@@ -461,24 +500,30 @@ class LIEF_API Binary : public LIEF::Binary {
return get_section(name) != nullptr;
}
- /// Return the section from the given name of a nullptr
+ /// Return the section from the given name or a nullptr
/// if the section can't be found.
- Section* get_section(const std::string& name) {
- return const_cast<Section*>(static_cast<const Binary*>(this)->get_section(name));
+ Section* get_section(const std::string& name) LIEF_LIFETIMEBOUND {
+ return const_cast<Section*>(
+ static_cast<const Binary*>(this)->get_section(name)
+ );
}
/// Return the section from the given name or a nullptr
/// if the section can't be found
- const Section* get_section(const std::string& name) const;
+ const Section* get_section(const std::string& name) const LIEF_LIFETIMEBOUND;
/// Return the section from the segment with the name
/// given in the first parameter and with the section's name provided in the
/// second parameter. If the section cannot be found, it returns a nullptr
- Section* get_section(const std::string& segname, const std::string& secname) {
- return const_cast<Section*>(static_cast<const Binary*>(this)->get_section(segname, secname));
+ Section* get_section(const std::string& segname,
+ const std::string& secname) LIEF_LIFETIMEBOUND {
+ return const_cast<Section*>(
+ static_cast<const Binary*>(this)->get_section(segname, secname)
+ );
}
- const Section* get_section(const std::string& segname, const std::string& secname) const;
+ const Section* get_section(const std::string& segname,
+ const std::string& secname) const LIEF_LIFETIMEBOUND;
/// Check if a segment with the given name exists
bool has_segment(const std::string& name) const {
@@ -486,11 +531,14 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return the segment from the given name
- const SegmentCommand* get_segment(const std::string& name) const;
+ const SegmentCommand*
+ get_segment(const std::string& name) const LIEF_LIFETIMEBOUND;
/// Return the segment from the given name
- SegmentCommand* get_segment(const std::string& name) {
- return const_cast<SegmentCommand*>(static_cast<const Binary*>(this)->get_segment(name));
+ SegmentCommand* get_segment(const std::string& name) LIEF_LIFETIMEBOUND {
+ return const_cast<SegmentCommand*>(
+ static_cast<const Binary*>(this)->get_segment(name)
+ );
}
/// Remove the symbol with the given name
@@ -513,17 +561,26 @@ class LIEF_API Binary : public LIEF::Binary {
/// Return the MachO::Section that encompasses the provided offset.
/// If a section can't be found, it returns a null pointer (`nullptr`)
- Section* section_from_offset(uint64_t offset) {
- return const_cast<Section*>(static_cast<const Binary*>(this)->section_from_offset(offset));
+ Section* section_from_offset(uint64_t offset) LIEF_LIFETIMEBOUND {
+ return const_cast<Section*>(
+ static_cast<const Binary*>(this)->section_from_offset(offset)
+ );
}
- const Section* section_from_offset(uint64_t offset) const;
+ const Section* section_from_offset(uint64_t offset) const LIEF_LIFETIMEBOUND;
/// Return the MachO::Section that encompasses the provided virtual address.
/// If a section can't be found, it returns a null pointer (`nullptr`)
- Section* section_from_virtual_address(uint64_t virtual_address) {
- return const_cast<Section*>(static_cast<const Binary*>(this)->section_from_virtual_address(virtual_address));
- }
- const Section* section_from_virtual_address(uint64_t virtual_address) const;
+ Section*
+ section_from_virtual_address(uint64_t virtual_address) LIEF_LIFETIMEBOUND {
+ return const_cast<Section*>(
+ static_cast<const Binary*>(this)->section_from_virtual_address(
+ virtual_address
+ )
+ );
+ }
+ const Section* section_from_virtual_address(
+ uint64_t virtual_address
+ ) const LIEF_LIFETIMEBOUND;
/// Convert a virtual address to an offset in the file
result<uint64_t> virtual_address_to_offset(uint64_t virtual_address) const;
@@ -531,16 +588,21 @@ class LIEF_API Binary : public LIEF::Binary {
/// Convert the given offset into a virtual address.
///
/// @param[in] offset The offset to convert.
- /// @param[in] slide If not 0, it will replace the default base address (if any)
- result<uint64_t> offset_to_virtual_address(uint64_t offset, uint64_t slide = 0) const override;
+ /// @param[in] slide If not 0, it will replace the default base address (if
+ /// any)
+ result<uint64_t> offset_to_virtual_address(uint64_t offset,
+ uint64_t slide = 0) const override;
/// Return the binary's SegmentCommand that encompasses the provided offset
///
/// If a SegmentCommand can't be found it returns a null pointer (`nullptr`).
- SegmentCommand* segment_from_offset(uint64_t offset) {
- return const_cast<SegmentCommand*>(static_cast<const Binary*>(this)->segment_from_offset(offset));
+ SegmentCommand* segment_from_offset(uint64_t offset) LIEF_LIFETIMEBOUND {
+ return const_cast<SegmentCommand*>(
+ static_cast<const Binary*>(this)->segment_from_offset(offset)
+ );
}
- const SegmentCommand* segment_from_offset(uint64_t offset) const;
+ const SegmentCommand*
+ segment_from_offset(uint64_t offset) const LIEF_LIFETIMEBOUND;
/// Return the index of the given SegmentCommand
size_t segment_index(const SegmentCommand& segment) const;
@@ -550,12 +612,19 @@ class LIEF_API Binary : public LIEF::Binary {
return fat_offset_;
}
- /// Return the binary's SegmentCommand which encompasses the given virtual address
- /// or a nullptr if not found.
- SegmentCommand* segment_from_virtual_address(uint64_t virtual_address) {
- return const_cast<SegmentCommand*>(static_cast<const Binary*>(this)->segment_from_virtual_address(virtual_address));
+ /// Return the binary's SegmentCommand which encompasses the given virtual
+ /// address or a nullptr if not found.
+ SegmentCommand*
+ segment_from_virtual_address(uint64_t virtual_address) LIEF_LIFETIMEBOUND {
+ return const_cast<SegmentCommand*>(
+ static_cast<const Binary*>(this)->segment_from_virtual_address(
+ virtual_address
+ )
+ );
}
- const SegmentCommand* segment_from_virtual_address(uint64_t virtual_address) const;
+ const SegmentCommand* segment_from_virtual_address(
+ uint64_t virtual_address
+ ) const LIEF_LIFETIMEBOUND;
/// Return the range of virtual addresses
range_t va_ranges() const;
@@ -563,6 +632,9 @@ class LIEF_API Binary : public LIEF::Binary {
/// Return the range of offsets
range_t off_ranges() const;
+ /// Return the TLV initial content range
+ range_t tlv_initial_content_range() const;
+
/// Check if the given address is encompassed in the
/// binary's virtual addresses range
bool is_valid_addr(uint64_t address) const {
@@ -582,7 +654,8 @@ class LIEF_API Binary : public LIEF::Binary {
/// @param[in] addr_type Specify if the address should be used as
/// an absolute virtual address or an RVA
void patch_address(uint64_t address, const std::vector<uint8_t>& patch_value,
- LIEF::Binary::VA_TYPES addr_type = LIEF::Binary::VA_TYPES::AUTO) override;
+ LIEF::Binary::VA_TYPES addr_type =
+ LIEF::Binary::VA_TYPES::AUTO) override;
/// Patch the address with the given value
///
@@ -591,14 +664,16 @@ class LIEF_API Binary : public LIEF::Binary {
/// @param[in] size Size of the value in **bytes** (1, 2, ... 8)
/// @param[in] addr_type Specify if the address should be used as
/// an absolute virtual address or an RVA
- void patch_address(uint64_t address, uint64_t patch_value,
- size_t size = sizeof(uint64_t),
- LIEF::Binary::VA_TYPES addr_type = LIEF::Binary::VA_TYPES::AUTO) override;
+ void patch_address(
+ uint64_t address, uint64_t patch_value, size_t size = sizeof(uint64_t),
+ LIEF::Binary::VA_TYPES addr_type = LIEF::Binary::VA_TYPES::AUTO
+ ) override;
/// Return the content located at virtual address
span<const uint8_t> get_content_from_virtual_address(
uint64_t virtual_address, uint64_t size,
- Binary::VA_TYPES addr_type = Binary::VA_TYPES::AUTO) const override;
+ Binary::VA_TYPES addr_type = Binary::VA_TYPES::AUTO
+ ) const LIEF_LIFETIMEBOUND override;
/// The binary entrypoint
uint64_t entrypoint() const override;
@@ -636,8 +711,8 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return the MachO::UUIDCommand if present, a nullptr otherwise.
- UUIDCommand* uuid();
- const UUIDCommand* uuid() const;
+ UUIDCommand* uuid() LIEF_LIFETIMEBOUND;
+ const UUIDCommand* uuid() const LIEF_LIFETIMEBOUND;
/// `true` if the binary has a MachO::MainCommand command.
bool has_main_command() const {
@@ -645,8 +720,8 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return the MachO::MainCommand if present, a nullptr otherwise.
- MainCommand* main_command();
- const MainCommand* main_command() const;
+ MainCommand* main_command() LIEF_LIFETIMEBOUND;
+ const MainCommand* main_command() const LIEF_LIFETIMEBOUND;
/// `true` if the binary has a MachO::DylinkerCommand.
bool has_dylinker() const {
@@ -654,8 +729,8 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return the MachO::DylinkerCommand if present, a nullptr otherwise.
- DylinkerCommand* dylinker();
- const DylinkerCommand* dylinker() const;
+ DylinkerCommand* dylinker() LIEF_LIFETIMEBOUND;
+ const DylinkerCommand* dylinker() const LIEF_LIFETIMEBOUND;
/// `true` if the binary has a MachO::DyldInfo command.
bool has_dyld_info() const {
@@ -663,8 +738,8 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return the MachO::Dyld command if present, a nullptr otherwise.
- DyldInfo* dyld_info();
- const DyldInfo* dyld_info() const;
+ DyldInfo* dyld_info() LIEF_LIFETIMEBOUND;
+ const DyldInfo* dyld_info() const LIEF_LIFETIMEBOUND;
/// `true` if the binary has a MachO::FunctionStarts command.
bool has_function_starts() const {
@@ -672,8 +747,8 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return the MachO::FunctionStarts command if present, a nullptr otherwise.
- FunctionStarts* function_starts();
- const FunctionStarts* function_starts() const;
+ FunctionStarts* function_starts() LIEF_LIFETIMEBOUND;
+ const FunctionStarts* function_starts() const LIEF_LIFETIMEBOUND;
/// `true` if the binary has a MachO::SourceVersion command.
bool has_source_version() const {
@@ -681,8 +756,8 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return the MachO::SourceVersion command if present, a nullptr otherwise.
- SourceVersion* source_version();
- const SourceVersion* source_version() const;
+ SourceVersion* source_version() LIEF_LIFETIMEBOUND;
+ const SourceVersion* source_version() const LIEF_LIFETIMEBOUND;
/// `true` if the binary has a MachO::VersionMin command.
bool has_version_min() const {
@@ -690,8 +765,8 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return the MachO::VersionMin command if present, a nullptr otherwise.
- VersionMin* version_min();
- const VersionMin* version_min() const;
+ VersionMin* version_min() LIEF_LIFETIMEBOUND;
+ const VersionMin* version_min() const LIEF_LIFETIMEBOUND;
/// `true` if the binary has a MachO::ThreadCommand command.
bool has_thread_command() const {
@@ -699,8 +774,8 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return the MachO::ThreadCommand command if present, a nullptr otherwise.
- ThreadCommand* thread_command();
- const ThreadCommand* thread_command() const;
+ ThreadCommand* thread_command() LIEF_LIFETIMEBOUND;
+ const ThreadCommand* thread_command() const LIEF_LIFETIMEBOUND;
/// `true` if the binary has a MachO::Routine command.
bool has_routine_command() const {
@@ -708,8 +783,8 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return the MachO::Routine command if present, a nullptr otherwise.
- Routine* routine_command();
- const Routine* routine_command() const;
+ Routine* routine_command() LIEF_LIFETIMEBOUND;
+ const Routine* routine_command() const LIEF_LIFETIMEBOUND;
/// `true` if the binary has a MachO::RPathCommand command.
bool has_rpath() const {
@@ -717,12 +792,12 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return the MachO::RPathCommand command if present, a nullptr otherwise.
- RPathCommand* rpath();
- const RPathCommand* rpath() const;
+ RPathCommand* rpath() LIEF_LIFETIMEBOUND;
+ const RPathCommand* rpath() const LIEF_LIFETIMEBOUND;
/// Iterator over **all** the MachO::RPathCommand commands.
- it_rpaths rpaths();
- it_const_rpaths rpaths() const;
+ it_rpaths rpaths() LIEF_LIFETIMEBOUND;
+ it_const_rpaths rpaths() const LIEF_LIFETIMEBOUND;
/// `true` if the binary has a MachO::SymbolCommand command.
bool has_symbol_command() const {
@@ -730,8 +805,8 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return the MachO::SymbolCommand if present, a nullptr otherwise.
- SymbolCommand* symbol_command();
- const SymbolCommand* symbol_command() const;
+ SymbolCommand* symbol_command() LIEF_LIFETIMEBOUND;
+ const SymbolCommand* symbol_command() const LIEF_LIFETIMEBOUND;
/// `true` if the binary has a MachO::DynamicSymbolCommand command.
bool has_dynamic_symbol_command() const {
@@ -739,8 +814,8 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return the MachO::SymbolCommand if present, a nullptr otherwise.
- DynamicSymbolCommand* dynamic_symbol_command();
- const DynamicSymbolCommand* dynamic_symbol_command() const;
+ DynamicSymbolCommand* dynamic_symbol_command() LIEF_LIFETIMEBOUND;
+ const DynamicSymbolCommand* dynamic_symbol_command() const LIEF_LIFETIMEBOUND;
/// `true` if the binary is signed with `LC_CODE_SIGNATURE` command
bool has_code_signature() const {
@@ -748,10 +823,12 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return the MachO::CodeSignature if present, a nullptr otherwise.
- CodeSignature* code_signature() {
- return const_cast<CodeSignature*>(static_cast<const Binary*>(this)->code_signature());
+ CodeSignature* code_signature() LIEF_LIFETIMEBOUND {
+ return const_cast<CodeSignature*>(
+ static_cast<const Binary*>(this)->code_signature()
+ );
}
- const CodeSignature* code_signature() const;
+ const CodeSignature* code_signature() const LIEF_LIFETIMEBOUND;
/// `true` if the binary is signed with the command `DYLIB_CODE_SIGN_DRS`
bool has_code_signature_dir() const {
@@ -759,10 +836,12 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return the MachO::CodeSignatureDir if present, a nullptr otherwise.
- CodeSignatureDir* code_signature_dir() {
- return const_cast<CodeSignatureDir*>(static_cast<const Binary*>(this)->code_signature_dir());
+ CodeSignatureDir* code_signature_dir() LIEF_LIFETIMEBOUND {
+ return const_cast<CodeSignatureDir*>(
+ static_cast<const Binary*>(this)->code_signature_dir()
+ );
}
- const CodeSignatureDir* code_signature_dir() const;
+ const CodeSignatureDir* code_signature_dir() const LIEF_LIFETIMEBOUND;
/// `true` if the binary has a MachO::DataInCode command.
bool has_data_in_code() const {
@@ -770,8 +849,8 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return the MachO::DataInCode if present, a nullptr otherwise.
- DataInCode* data_in_code();
- const DataInCode* data_in_code() const;
+ DataInCode* data_in_code() LIEF_LIFETIMEBOUND;
+ const DataInCode* data_in_code() const LIEF_LIFETIMEBOUND;
/// `true` if the binary has segment split info.
bool has_segment_split_info() const {
@@ -779,8 +858,8 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return the MachO::SegmentSplitInfo if present, a nullptr otherwise.
- SegmentSplitInfo* segment_split_info();
- const SegmentSplitInfo* segment_split_info() const;
+ SegmentSplitInfo* segment_split_info() LIEF_LIFETIMEBOUND;
+ const SegmentSplitInfo* segment_split_info() const LIEF_LIFETIMEBOUND;
/// `true` if the binary has a sub framework command.
bool has_sub_framework() const {
@@ -792,28 +871,28 @@ class LIEF_API Binary : public LIEF::Binary {
return encryption_info() != nullptr;
}
- /// Return the MachO::DyldEnvironment if present, a nullptr otherwise.
- EncryptionInfo* encryption_info();
- const EncryptionInfo* encryption_info() const;
+ /// Return the MachO::EncryptionInfo if present, a nullptr otherwise.
+ EncryptionInfo* encryption_info() LIEF_LIFETIMEBOUND;
+ const EncryptionInfo* encryption_info() const LIEF_LIFETIMEBOUND;
/// Return the MachO::SubFramework if present, a nullptr otherwise.
- SubFramework* sub_framework();
- const SubFramework* sub_framework() const;
+ SubFramework* sub_framework() LIEF_LIFETIMEBOUND;
+ const SubFramework* sub_framework() const LIEF_LIFETIMEBOUND;
/// Iterator over **all** the MachO::SubClient commands.
- it_sub_clients subclients();
- it_const_sub_clients subclients() const;
+ it_sub_clients subclients() LIEF_LIFETIMEBOUND;
+ it_const_sub_clients subclients() const LIEF_LIFETIMEBOUND;
bool has_subclients() const;
- /// `true` if the binary has Dyld envrionment variables.
+ /// `true` if the binary has Dyld environment variables.
bool has_dyld_environment() const {
return dyld_environment() != nullptr;
}
/// Return the MachO::DyldEnvironment if present, a nullptr otherwise
- DyldEnvironment* dyld_environment();
- const DyldEnvironment* dyld_environment() const;
+ DyldEnvironment* dyld_environment() LIEF_LIFETIMEBOUND;
+ const DyldEnvironment* dyld_environment() const LIEF_LIFETIMEBOUND;
/// `true` if the binary has the BuildVersion command.
bool has_build_version() const {
@@ -821,8 +900,8 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return the MachO::BuildVersion if present, a nullptr otherwise.
- BuildVersion* build_version();
- const BuildVersion* build_version() const;
+ BuildVersion* build_version() LIEF_LIFETIMEBOUND;
+ const BuildVersion* build_version() const LIEF_LIFETIMEBOUND;
/// Return the platform for which this Mach-O has been compiled for
BuildVersion::PLATFORMS platform() const {
@@ -851,28 +930,30 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return the MachO::DyldChainedFixups if present, a nullptr otherwise.
- DyldChainedFixups* dyld_chained_fixups();
- const DyldChainedFixups* dyld_chained_fixups() const;
+ DyldChainedFixups* dyld_chained_fixups() LIEF_LIFETIMEBOUND;
+ const DyldChainedFixups* dyld_chained_fixups() const LIEF_LIFETIMEBOUND;
- /// `true` if the binary has the command LC_DYLD_CHAINED_FIXUPS.
+ /// `true` if the binary has the command LC_DYLD_EXPORTS_TRIE.
bool has_dyld_exports_trie() const {
return dyld_exports_trie() != nullptr;
}
- /// Return the MachO::DyldChainedFixups if present, a nullptr otherwise.
- DyldExportsTrie* dyld_exports_trie();
- const DyldExportsTrie* dyld_exports_trie() const;
+ /// Return the MachO::DyldExportsTrie if present, a nullptr otherwise.
+ DyldExportsTrie* dyld_exports_trie() LIEF_LIFETIMEBOUND;
+ const DyldExportsTrie* dyld_exports_trie() const LIEF_LIFETIMEBOUND;
/// `true` if the binary has the command LC_TWO_LEVEL_HINTS.
bool has_two_level_hints() const {
return two_level_hints() != nullptr;
}
- /// Return the MachO::DyldChainedFixups if present, a nullptr otherwise.
- TwoLevelHints* two_level_hints() {
- return const_cast<TwoLevelHints*>(static_cast<const Binary*>(this)->two_level_hints());
+ /// Return the MachO::TwoLevelHints if present, a nullptr otherwise.
+ TwoLevelHints* two_level_hints() LIEF_LIFETIMEBOUND {
+ return const_cast<TwoLevelHints*>(
+ static_cast<const Binary*>(this)->two_level_hints()
+ );
}
- const TwoLevelHints* two_level_hints() const;
+ const TwoLevelHints* two_level_hints() const LIEF_LIFETIMEBOUND;
/// `true` if the binary has the command LC_LINKER_OPTIMIZATION_HINT.
bool has_linker_opt_hint() const {
@@ -880,16 +961,20 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return the MachO::LinkerOptHint if present, a nullptr otherwise.
- LinkerOptHint* linker_opt_hint() {
- return const_cast<LinkerOptHint*>(static_cast<const Binary*>(this)->linker_opt_hint());
+ LinkerOptHint* linker_opt_hint() LIEF_LIFETIMEBOUND {
+ return const_cast<LinkerOptHint*>(
+ static_cast<const Binary*>(this)->linker_opt_hint()
+ );
}
- const LinkerOptHint* linker_opt_hint() const;
+ const LinkerOptHint* linker_opt_hint() const LIEF_LIFETIMEBOUND;
/// Add a symbol in the export trie of the current binary
- ExportInfo* add_exported_function(uint64_t address, const std::string& name);
+ ExportInfo* add_exported_function(uint64_t address,
+ const std::string& name) LIEF_LIFETIMEBOUND;
/// Add a symbol in LC_SYMTAB command of the current binary
- Symbol* add_local_symbol(uint64_t address, const std::string& name);
+ Symbol* add_local_symbol(uint64_t address,
+ const std::string& name) LIEF_LIFETIMEBOUND;
/// Return Objective-C metadata if present
std::unique_ptr<objc::Metadata> objc_metadata() const;
@@ -899,7 +984,8 @@ class LIEF_API Binary : public LIEF::Binary {
/// These stubs are involved when calling an **imported** function and are
/// similar to the ELF's plt/got mechanism.
///
- /// There are located in sections like: `__stubs,__auth_stubs,__symbol_stub,__picsymbolstub4`
+ /// There are located in sections like:
+ /// `__stubs,__auth_stubs,__symbol_stub,__picsymbolstub4`
stub_iterator symbol_stubs() const;
/// `true` if the binary has the command LC_ATOM_INFO.
@@ -908,15 +994,15 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return the MachO::AtomInfo if present, a nullptr otherwise.
- AtomInfo* atom_info() {
+ AtomInfo* atom_info() LIEF_LIFETIMEBOUND {
return const_cast<AtomInfo*>(static_cast<const Binary*>(this)->atom_info());
}
- const AtomInfo* atom_info() const;
+ const AtomInfo* atom_info() const LIEF_LIFETIMEBOUND;
/// Iterator over the different `LC_NOTE` commands
- it_notes notes();
+ it_notes notes() LIEF_LIFETIMEBOUND;
- it_const_notes notes() const;
+ it_const_notes notes() const LIEF_LIFETIMEBOUND;
/// True if the binary contains `LC_NOTE` command(s)
bool has_notes() const {
@@ -929,11 +1015,13 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return the FunctionVariants if present, a nullptr otherwise.
- FunctionVariants* function_variants() {
- return const_cast<FunctionVariants*>(static_cast<const Binary*>(this)->function_variants());
+ FunctionVariants* function_variants() LIEF_LIFETIMEBOUND {
+ return const_cast<FunctionVariants*>(
+ static_cast<const Binary*>(this)->function_variants()
+ );
}
- const FunctionVariants* function_variants() const;
+ const FunctionVariants* function_variants() const LIEF_LIFETIMEBOUND;
/// `true` if the binary has the command `LC_FUNCTION_VARIANT_FIXUPS`.
bool has_function_variant_fixups() const {
@@ -942,7 +1030,9 @@ class LIEF_API Binary : public LIEF::Binary {
/// Return the FunctionVariantFixups if present, a nullptr otherwise.
FunctionVariantFixups* function_variant_fixups() {
- return const_cast<FunctionVariantFixups*>(static_cast<const Binary*>(this)->function_variant_fixups());
+ return const_cast<FunctionVariantFixups*>(
+ static_cast<const Binary*>(this)->function_variant_fixups()
+ );
}
const FunctionVariantFixups* function_variant_fixups() const;
@@ -980,16 +1070,22 @@ class LIEF_API Binary : public LIEF::Binary {
/// `true` if the binary has a LoadCommand::TYPE::FILESET_ENTRY command
bool has_filesets() const {
- return filesets_.empty();
+ return !filesets_.empty();
}
- /// Name associated with the LC_FILESET_ENTRY binary
+ /// Name associated with the `LC_FILESET_ENTRY` for this MachO.
+ /// For instance: `com.apple.kec.corecrypto`
const std::string& fileset_name() const {
- return fileset_name_;
+ return fileset_info_.name;
+ }
+
+ /// Original address associated with the `LC_FILESET_ENTRY` for this MachO.
+ uint64_t fileset_addr() const {
+ return fileset_info_.address;
}
/// Add a symbol to this binary
- Symbol& add(const Symbol& symbol);
+ Symbol& add(const Symbol& symbol) LIEF_LIFETIMEBOUND;
~Binary() override;
@@ -1011,7 +1107,8 @@ class LIEF_API Binary : public LIEF::Binary {
/// Check if the binary is supporting ARM64 pointer authentication (arm64e)
bool support_arm64_ptr_auth() const {
return header().cpu_type() == Header::CPU_TYPE::ARM64 &&
- (header().cpu_subtype() & ~Header::SUBTYPE_MASK) == Header::CPU_SUBTYPE_ARM64_ARM64E;
+ (header().cpu_subtype() & ~Header::SUBTYPE_MASK) ==
+ Header::CPU_SUBTYPE_ARM64_ARM64E;
}
/// Return an iterator over the binding info which can come from either
@@ -1025,7 +1122,7 @@ class LIEF_API Binary : public LIEF::Binary {
return bin->format() == Binary::FORMATS::MACHO;
}
- span<const uint8_t> overlay() const {
+ span<const uint8_t> overlay() const LIEF_LIFETIMEBOUND {
return overlay_;
}
@@ -1035,7 +1132,7 @@ class LIEF_API Binary : public LIEF::Binary {
/// Check if the given segment can go in the offset_seg_ cache
static LIEF_LOCAL bool can_cache_segment(const SegmentCommand& segment);
- /// \private
+ /// @private
LIEF_LOCAL size_t available_command_space() const {
return available_command_space_;
}
@@ -1061,37 +1158,43 @@ class LIEF_API Binary : public LIEF::Binary {
LIEF_LOCAL LIEF::Binary::sections_t get_abstract_sections() override;
LIEF_LOCAL LIEF::Binary::symbols_t get_abstract_symbols() override;
LIEF_LOCAL LIEF::Binary::relocations_t get_abstract_relocations() override;
- LIEF_LOCAL LIEF::Binary::functions_t get_abstract_exported_functions() const override;
- LIEF_LOCAL LIEF::Binary::functions_t get_abstract_imported_functions() const override;
- LIEF_LOCAL std::vector<std::string> get_abstract_imported_libraries() const override;
+ LIEF_LOCAL LIEF::Binary::functions_t
+ get_abstract_exported_functions() const override;
+ LIEF_LOCAL LIEF::Binary::functions_t
+ get_abstract_imported_functions() const override;
+ LIEF_LOCAL std::vector<std::string>
+ get_abstract_imported_libraries() const override;
/// Check that a gap between the load command table and
- /// the first section is at least \p size bytes.
- /// If there is not enough space, the gap is grown using \ref shift method.
+ /// the first section is at least @p size bytes.
+ /// If there is not enough space, the gap is grown using the shift method.
ok_error_t ensure_command_space(size_t size) {
return available_command_space_ < size ? shift(size) : ok();
}
relocations_t& relocations_list() {
- return this->relocations_;
+ return relocations_;
}
const relocations_t& relocations_list() const {
- return this->relocations_;
+ return relocations_;
}
size_t pointer_size() const {
- return this->is64_ ? sizeof(uint64_t) : sizeof(uint32_t);
+ return is64_ ? sizeof(uint64_t) : sizeof(uint32_t);
}
- bool is64_ = true;
- Header header_;
- commands_t commands_;
- symbols_t symbols_;
+ bool is64_ = true;
+ Header header_;
+ commands_t commands_;
+ symbols_t symbols_;
// Same purpose as sections_cache_t
libraries_cache_t libraries_;
+ // Cache of the LC_LAZY_LOAD_DYLIB_INFO commands
+ lazy_load_dylib_info_cache_t lazy_load_dylib_infos_;
+
// The sections are owned by the SegmentCommand object.
// This attribute is a cache to speed-up the iteration
sections_cache_t sections_;
@@ -1110,12 +1213,17 @@ class LIEF_API Binary : public LIEF::Binary {
std::map<uint64_t, SegmentCommand*> offset_seg_;
protected:
+ struct fileset_info_t {
+ std::string name;
+ uint64_t address = 0;
+ };
+
uint64_t fat_offset_ = 0;
- uint64_t fileset_offset_ = 0;
uint64_t in_memory_base_addr_ = 0;
- std::string fileset_name_;
std::vector<uint8_t> overlay_;
std::vector<std::unique_ptr<IndirectBindingInfo>> indirect_bindings_;
+ fileset_info_t fileset_info_;
+ mutable std::mutex mu_;
};
} // namespace MachO
diff --git a/deps/LIEF/include/LIEF/MachO/BinaryParser.hpp b/deps/LIEF/include/LIEF/MachO/BinaryParser.hpp
index 96d6a6778b2..90c1e2ad8b6 100644
--- a/deps/LIEF/include/LIEF/MachO/BinaryParser.hpp
+++ b/deps/LIEF/include/LIEF/MachO/BinaryParser.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -50,6 +50,7 @@ class ExportInfo;
class FunctionStarts;
class FunctionVariants;
class FunctionVariantFixups;
+class LazyLoadDylibInfo;
class LinkerOptHint;
class Parser;
class Section;
@@ -72,7 +73,7 @@ union dyld_chained_ptr_arm64e_segmented;
/// Class used to parse a **single** binary (i.e. non-FAT)
///
-/// @warning This class should not be directly used.
+/// @warning This class should not be used directly.
///
/// @see MachO::Parser
class LIEF_API BinaryParser : public LIEF::Parser {
@@ -87,14 +88,18 @@ class LIEF_API BinaryParser : public LIEF::Parser {
public:
static std::unique_ptr<Binary> parse(const std::string& file);
- static std::unique_ptr<Binary> parse(const std::string& file, const ParserConfig& conf);
- static std::unique_ptr<Binary> parse(const std::vector<uint8_t>& data,
- const ParserConfig& conf = ParserConfig::deep());
+ static std::unique_ptr<Binary> parse(const std::string& file,
+ const ParserConfig& conf);
+ static std::unique_ptr<Binary>
+ parse(const std::vector<uint8_t>& data,
+ const ParserConfig& conf = ParserConfig::deep());
- static std::unique_ptr<Binary> parse(const std::vector<uint8_t>& data, uint64_t fat_offset,
- const ParserConfig& conf = ParserConfig::deep());
+ static std::unique_ptr<Binary>
+ parse(const std::vector<uint8_t>& data, uint64_t fat_offset,
+ const ParserConfig& conf = ParserConfig::deep());
- static std::unique_ptr<Binary> parse(std::unique_ptr<BinaryStream> stream, uint64_t fat_offset,
+ static std::unique_ptr<Binary> parse(std::unique_ptr<BinaryStream> stream,
+ uint64_t fat_offset,
const ParserConfig& conf);
BinaryParser& operator=(const BinaryParser& copy) = delete;
@@ -149,27 +154,31 @@ class LIEF_API BinaryParser : public LIEF::Parser {
LIEF_LOCAL ok_error_t parse_symtab(SymbolCommand& cmd, SpanStream& nlist_s,
SpanStream& string_s);
- LIEF_LOCAL ok_error_t parse_indirect_symbols(
- DynamicSymbolCommand& cmd, std::vector<Symbol*>& symtab,
- BinaryStream& indirect_stream);
+ LIEF_LOCAL ok_error_t parse_indirect_symbols(DynamicSymbolCommand& cmd,
+ std::vector<Symbol*>& symtab,
+ BinaryStream& indirect_stream);
template<class MACHO_T>
LIEF_LOCAL ok_error_t parse_data_in_code(DataInCode& cmd, BinaryStream& stream);
- using it_opaque_segments = void*; // To avoid including Binary.hpp. It must contains it_opaque_segments
+ using it_opaque_segments =
+ void*; // To avoid including Binary.hpp. It must contains it_opaque_segments
template<class MACHO_T>
- LIEF_LOCAL ok_error_t do_bind(DyldBindingInfo::CLASS cls, uint8_t type, uint8_t segment_idx,
- uint64_t segment_offset, const std::string& symbol_name,
- int32_t ord, int64_t addend, bool is_weak,
- bool is_non_weak_definition, it_opaque_segments segments_ptr, uint64_t offset = 0);
+ LIEF_LOCAL ok_error_t do_bind(DyldBindingInfo::CLASS cls, uint8_t type,
+ uint8_t segment_idx, uint64_t segment_offset,
+ const std::string& symbol_name, int32_t ord,
+ int64_t addend, bool is_weak,
+ bool is_non_weak_definition,
+ it_opaque_segments segments_ptr,
+ uint64_t offset = 0);
template<class MACHO_T>
- LIEF_LOCAL ok_error_t do_rebase(
- uint8_t type, uint8_t segment_idx, uint64_t segment_offset,
- it_opaque_segments segments);
+ LIEF_LOCAL ok_error_t do_rebase(uint8_t type, uint8_t segment_idx,
+ uint64_t segment_offset,
+ it_opaque_segments segments);
/*
* This set of functions are related to the parsing of LC_DYLD_CHAINED_FIXUPS
@@ -178,58 +187,65 @@ class LIEF_API BinaryParser : public LIEF::Parser {
LIEF_LOCAL ok_error_t parse_chained_payload(SpanStream& stream);
template<class MACHO_T>
- LIEF_LOCAL ok_error_t parse_chained_import(
- const details::dyld_chained_fixups_header& header, SpanStream& stream,
- SpanStream& symbol_pool);
+ LIEF_LOCAL ok_error_t
+ parse_chained_import(const details::dyld_chained_fixups_header& header,
+ SpanStream& stream, SpanStream& symbol_pool);
template<class MACHO_T>
- LIEF_LOCAL ok_error_t parse_chained_fixup(
- const details::dyld_chained_fixups_header& header, SpanStream& stream);
+ LIEF_LOCAL ok_error_t
+ parse_chained_fixup(const details::dyld_chained_fixups_header& header,
+ SpanStream& stream);
template<class MACHO_T>
- LIEF_LOCAL ok_error_t parse_fixup_seg(
- SpanStream& stream, uint32_t seg_info_offset, uint64_t offset,
- uint32_t seg_idx);
+ LIEF_LOCAL ok_error_t parse_fixup_seg(SpanStream& stream,
+ uint32_t seg_info_offset, uint64_t offset,
+ uint32_t seg_idx);
template<class MACHO_T>
- LIEF_LOCAL ok_error_t do_fixup(
- DYLD_CHAINED_FORMAT fmt, int32_t ord, const std::string& symbol_name,
- int64_t addend, bool is_weak);
+ LIEF_LOCAL ok_error_t do_fixup(DYLD_CHAINED_FORMAT fmt, int32_t ord,
+ const std::string& symbol_name, int64_t addend,
+ bool is_weak);
template<class MACHO_T>
- LIEF_LOCAL ok_error_t process_fixup(
- SegmentCommand& segment, uint64_t chain_address, uint64_t chain_offset,
- const details::dyld_chained_starts_in_segment& seg_info);
+ LIEF_LOCAL ok_error_t
+ process_fixup(SegmentCommand& segment, uint64_t chain_address,
+ uint64_t chain_offset,
+ const details::dyld_chained_starts_in_segment& seg_info);
template<class MACHO_T>
- LIEF_LOCAL result<uint64_t> next_chain(
- uint64_t& chain_address, uint64_t chain_offset,
- const details::dyld_chained_starts_in_segment& seg_info);
+ LIEF_LOCAL result<uint64_t>
+ next_chain(uint64_t& chain_address, uint64_t chain_offset,
+ const details::dyld_chained_starts_in_segment& seg_info);
template<class MACHO_T>
- LIEF_LOCAL ok_error_t walk_chain(
- SegmentCommand& segment, uint64_t chain_address, uint64_t chain_offset,
- const details::dyld_chained_starts_in_segment& seg_info);
+ LIEF_LOCAL ok_error_t
+ walk_chain(SegmentCommand& segment, uint64_t chain_address,
+ uint64_t chain_offset,
+ const details::dyld_chained_starts_in_segment& seg_info);
- LIEF_LOCAL ok_error_t do_chained_fixup(
- SegmentCommand& segment, uint64_t chain_address, uint32_t chain_offset,
- const details::dyld_chained_starts_in_segment& seg_info,
- const details::dyld_chained_ptr_arm64e& fixup);
+ LIEF_LOCAL ok_error_t
+ do_chained_fixup(SegmentCommand& segment, uint64_t chain_address,
+ uint32_t chain_offset,
+ const details::dyld_chained_starts_in_segment& seg_info,
+ const details::dyld_chained_ptr_arm64e& fixup);
- LIEF_LOCAL ok_error_t do_chained_fixup(
- SegmentCommand& segment, uint64_t chain_address, uint32_t chain_offset,
- const details::dyld_chained_starts_in_segment& seg_info,
- const details::dyld_chained_ptr_generic64& fixup);
+ LIEF_LOCAL ok_error_t
+ do_chained_fixup(SegmentCommand& segment, uint64_t chain_address,
+ uint32_t chain_offset,
+ const details::dyld_chained_starts_in_segment& seg_info,
+ const details::dyld_chained_ptr_generic64& fixup);
- LIEF_LOCAL ok_error_t do_chained_fixup(
- SegmentCommand& segment, uint64_t chain_address, uint32_t chain_offset,
- const details::dyld_chained_starts_in_segment& seg_info,
- const details::dyld_chained_ptr_generic32 & fixup);
+ LIEF_LOCAL ok_error_t
+ do_chained_fixup(SegmentCommand& segment, uint64_t chain_address,
+ uint32_t chain_offset,
+ const details::dyld_chained_starts_in_segment& seg_info,
+ const details::dyld_chained_ptr_generic32& fixup);
- LIEF_LOCAL ok_error_t do_chained_fixup(
- SegmentCommand& segment, uint64_t chain_address, uint32_t chain_offset,
- const details::dyld_chained_starts_in_segment& seg_info,
- const details::dyld_chained_ptr_arm64e_segmented& fixup);
+ LIEF_LOCAL ok_error_t
+ do_chained_fixup(SegmentCommand& segment, uint64_t chain_address,
+ uint32_t chain_offset,
+ const details::dyld_chained_starts_in_segment& seg_info,
+ const details::dyld_chained_ptr_arm64e_segmented& fixup);
template<class MACHO_T>
LIEF_LOCAL ok_error_t post_process(SymbolCommand& cmd);
@@ -267,6 +283,9 @@ class LIEF_API BinaryParser : public LIEF::Parser {
template<class MACHO_T>
LIEF_LOCAL ok_error_t post_process(FunctionVariantFixups& cmd);
+ template<class MACHO_T>
+ LIEF_LOCAL ok_error_t post_process(LazyLoadDylibInfo& cmd);
+
LIEF_LOCAL ok_error_t parse_overlay();
// Exports
@@ -274,20 +293,22 @@ class LIEF_API BinaryParser : public LIEF::Parser {
LIEF_LOCAL ok_error_t parse_dyldinfo_export();
LIEF_LOCAL ok_error_t parse_dyld_exports();
- LIEF_LOCAL ok_error_t parse_export_trie(
- exports_list_t& exports, BinaryStream& stream,
- uint64_t start, const std::string& prefix, bool* invalid_names);
+ LIEF_LOCAL result<exports_list_t> parse_export_trie(BinaryStream& stream,
+ uint64_t start,
+ const std::string& prefix,
+ uint32_t depth,
+ bool* invalid_names);
LIEF_LOCAL void copy_from(ChainedBindingInfo& to, ChainedBindingInfo& from);
- std::unique_ptr<BinaryStream> stream_;
- std::unique_ptr<Binary> binary_;
- MACHO_TYPES type_ = MACHO_TYPES::MAGIC_64;
- bool is64_ = true;
- ParserConfig config_;
- std::set<uint64_t> visited_;
+ std::unique_ptr<BinaryStream> stream_;
+ std::unique_ptr<Binary> binary_;
+ MACHO_TYPES type_ = MACHO_TYPES::MAGIC_64;
+ bool is64_ = true;
+ ParserConfig config_;
+ std::set<uint64_t> visited_;
std::unordered_map<std::string, Symbol*> memoized_symbols_;
- std::map<uint64_t, Symbol*> memoized_symbols_by_address_;
+ std::map<uint64_t, Symbol*> memoized_symbols_by_address_;
std::vector<DylibCommand*> binding_libs_;
std::set<uint64_t> dyld_reloc_addrs_;
diff --git a/deps/LIEF/include/LIEF/MachO/BindingInfo.hpp b/deps/LIEF/include/LIEF/MachO/BindingInfo.hpp
index 8bf7a5c6274..23701ab6729 100644
--- a/deps/LIEF/include/LIEF/MachO/BindingInfo.hpp
+++ b/deps/LIEF/include/LIEF/MachO/BindingInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,8 +32,9 @@ class DyldChainedFixupsCreator;
/// Class that provides an interface over a *binding* operation.
///
/// This class does not represent a structure that exists in the Mach-O format
-/// specifications but it provides a *view* of a binding operation that is performed
-/// by the Dyld binding bytecode (`LC_DYLD_INFO`) or the Dyld chained fixups (`DYLD_CHAINED_FIXUPS`)
+/// specifications but it provides a *view* of a binding operation that is
+/// performed by the Dyld binding bytecode (`LC_DYLD_INFO`) or the Dyld chained
+/// fixups (`DYLD_CHAINED_FIXUPS`)
///
/// See: LIEF::MachO::ChainedBindingInfo, LIEF::MachO::DyldBindingInfo
class LIEF_API BindingInfo : public Object {
@@ -47,7 +48,7 @@ class LIEF_API BindingInfo : public Object {
DYLD_INFO, /// Binding associated with the Dyld info opcodes
CHAINED, /// Binding associated with the chained fixups
CHAINED_LIST, /// Internal use
- INDIRECT_SYMBOL, /// Infered from the indirect symbols table
+ INDIRECT_SYMBOL, /// Inferred from the indirect symbols table
};
BindingInfo() = default;
@@ -65,11 +66,11 @@ class LIEF_API BindingInfo : public Object {
}
/// The MachO::SegmentCommand associated with the BindingInfo or
- /// a nullptr of it is not bind to a SegmentCommand
- const SegmentCommand* segment() const {
+ /// a nullptr if it is not bound to a SegmentCommand
+ const SegmentCommand* segment() const LIEF_LIFETIMEBOUND {
return segment_;
}
- SegmentCommand* segment() {
+ SegmentCommand* segment() LIEF_LIFETIMEBOUND {
return segment_;
}
@@ -80,10 +81,10 @@ class LIEF_API BindingInfo : public Object {
/// MachO::DylibCommand associated with the BindingInfo or a nullptr
/// if not present
- const DylibCommand* library() const {
+ const DylibCommand* library() const LIEF_LIFETIMEBOUND {
return library_;
}
- DylibCommand* library() {
+ DylibCommand* library() LIEF_LIFETIMEBOUND {
return library_;
}
@@ -94,10 +95,10 @@ class LIEF_API BindingInfo : public Object {
/// MachO::Symbol associated with the BindingInfo or
/// a nullptr if not present
- const Symbol* symbol() const {
+ const Symbol* symbol() const LIEF_LIFETIMEBOUND {
return symbol_;
}
- Symbol* symbol() {
+ Symbol* symbol() LIEF_LIFETIMEBOUND {
return symbol_;
}
@@ -145,7 +146,8 @@ class LIEF_API BindingInfo : public Object {
template<class T>
const T* cast() const {
- static_assert(std::is_base_of<BindingInfo, T>::value, "Require BindingInfo inheritance");
+ static_assert(std::is_base_of<BindingInfo, T>::value,
+ "Require BindingInfo inheritance");
if (T::classof(this)) {
return static_cast<const T*>(this);
}
@@ -157,16 +159,17 @@ class LIEF_API BindingInfo : public Object {
return const_cast<T*>(static_cast<const BindingInfo*>(this)->cast<T>());
}
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const BindingInfo& binding_info);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const BindingInfo& binding_info);
protected:
SegmentCommand* segment_ = nullptr;
- Symbol* symbol_ = nullptr;
- int32_t library_ordinal_ = 0;
- int64_t addend_ = 0;
- bool is_weak_import_ = false;
- DylibCommand* library_ = nullptr;
- uint64_t address_ = 0;
+ Symbol* symbol_ = nullptr;
+ int32_t library_ordinal_ = 0;
+ int64_t addend_ = 0;
+ bool is_weak_import_ = false;
+ DylibCommand* library_ = nullptr;
+ uint64_t address_ = 0;
};
}
diff --git a/deps/LIEF/include/LIEF/MachO/BindingInfoIterator.hpp b/deps/LIEF/include/LIEF/MachO/BindingInfoIterator.hpp
index 0bcf8ca6e07..11c0c2f4c77 100644
--- a/deps/LIEF/include/LIEF/MachO/BindingInfoIterator.hpp
+++ b/deps/LIEF/include/LIEF/MachO/BindingInfoIterator.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,15 +25,11 @@ class Binary;
class DyldInfo;
class DyldChainedFixups;
-class LIEF_API BindingInfoIterator :
- public iterator_facade_base<BindingInfoIterator,
+class LIEF_API BindingInfoIterator
+ : public iterator_facade_base<BindingInfoIterator,
std::random_access_iterator_tag,
- const BindingInfo&,
- std::ptrdiff_t,
- const BindingInfo*,
- const BindingInfo&
- >
-{
+ const BindingInfo&, std::ptrdiff_t,
+ const BindingInfo*, const BindingInfo&> {
public:
enum class ORIGIN : uint8_t {
NONE = 0,
@@ -52,20 +48,17 @@ class LIEF_API BindingInfoIterator :
BindingInfoIterator(const DyldInfo& dyld_info, size_t pos) :
pos_(pos),
origin_(ORIGIN::DYLD),
- dyld_info_(&dyld_info)
- {}
+ dyld_info_(&dyld_info) {}
BindingInfoIterator(const DyldChainedFixups& fixups, size_t pos) :
pos_(pos),
origin_(ORIGIN::CHAINED_FIXUPS),
- chained_fixups_(&fixups)
- {}
+ chained_fixups_(&fixups) {}
BindingInfoIterator(const Binary& binary, size_t pos) :
pos_(pos),
origin_(ORIGIN::INDIRECT),
- binary_(&binary)
- {}
+ binary_(&binary) {}
bool operator<(const BindingInfoIterator& rhs) const {
return pos_ < rhs.pos_;
@@ -85,7 +78,8 @@ class LIEF_API BindingInfoIterator :
return *this;
}
- friend bool operator==(const BindingInfoIterator& LHS, const BindingInfoIterator& RHS) {
+ friend bool operator==(const BindingInfoIterator& LHS,
+ const BindingInfoIterator& RHS) {
return LHS.pos_ == RHS.pos_;
}
@@ -100,10 +94,8 @@ class LIEF_API BindingInfoIterator :
const DyldChainedFixups* chained_fixups_;
const Binary* binary_;
};
-
};
}
}
#endif
-
diff --git a/deps/LIEF/include/LIEF/MachO/BuildToolVersion.hpp b/deps/LIEF/include/LIEF/MachO/BuildToolVersion.hpp
index 07b2119ab4b..a629da1776a 100644
--- a/deps/LIEF/include/LIEF/MachO/BuildToolVersion.hpp
+++ b/deps/LIEF/include/LIEF/MachO/BuildToolVersion.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -39,17 +39,17 @@ class LIEF_API BuildToolVersion : public Object {
public:
enum class TOOLS {
UNKNOWN = 0,
- CLANG = 1,
- SWIFT = 2,
- LD = 3,
- LLD = 4,
+ CLANG = 1,
+ SWIFT = 2,
+ LD = 3,
+ LLD = 4,
- METAL = 1024,
- AIRLLD = 1025,
- AIRNT = 1026,
- AIRNT_PLUGIN = 1027,
- AIRPACK = 1028,
- GPUARCHIVER = 1031,
+ METAL = 1024,
+ AIRLLD = 1025,
+ AIRNT = 1026,
+ AIRNT_PLUGIN = 1027,
+ AIRPACK = 1028,
+ GPUARCHIVER = 1031,
METAL_FRAMEWORK = 1032,
};
@@ -71,8 +71,8 @@ class LIEF_API BuildToolVersion : public Object {
void accept(Visitor& visitor) const override;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const BuildToolVersion& tool);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const BuildToolVersion& tool);
private:
TOOLS tool_ = TOOLS::UNKNOWN;
diff --git a/deps/LIEF/include/LIEF/MachO/BuildVersion.hpp b/deps/LIEF/include/LIEF/MachO/BuildVersion.hpp
index 2a774dd22d2..bd1627f19ff 100644
--- a/deps/LIEF/include/LIEF/MachO/BuildVersion.hpp
+++ b/deps/LIEF/include/LIEF/MachO/BuildVersion.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -42,42 +42,40 @@ class LIEF_API BuildVersion : public LoadCommand {
public:
enum class PLATFORMS : uint32_t {
- UNKNOWN = 0,
- MACOS = 1,
- IOS = 2,
- TVOS = 3,
- WATCHOS = 4,
- BRIDGEOS = 5,
- MAC_CATALYST = 6,
- IOS_SIMULATOR = 7,
- TVOS_SIMULATOR = 8,
- WATCHOS_SIMULATOR = 9,
- DRIVERKIT = 10,
- VISIONOS = 11,
- VISIONOS_SIMULATOR = 12,
- FIRMWARE = 13,
- SEPOS = 14,
- MACOS_EXCLAVE_CORE = 15,
- MACOS_EXCLAVE_KIT = 16,
- IOS_EXCLAVE_CORE = 17,
- IOS_EXCLAVE_KIT = 18,
- TVOS_EXCLAVE_CORE = 19,
- TVOS_EXCLAVE_KIT = 20,
- WATCHOS_EXCLAVE_CORE = 21,
- WATCHOS_EXCLAVE_KIT = 22,
+ UNKNOWN = 0,
+ MACOS = 1,
+ IOS = 2,
+ TVOS = 3,
+ WATCHOS = 4,
+ BRIDGEOS = 5,
+ MAC_CATALYST = 6,
+ IOS_SIMULATOR = 7,
+ TVOS_SIMULATOR = 8,
+ WATCHOS_SIMULATOR = 9,
+ DRIVERKIT = 10,
+ VISIONOS = 11,
+ VISIONOS_SIMULATOR = 12,
+ FIRMWARE = 13,
+ SEPOS = 14,
+ MACOS_EXCLAVE_CORE = 15,
+ MACOS_EXCLAVE_KIT = 16,
+ IOS_EXCLAVE_CORE = 17,
+ IOS_EXCLAVE_KIT = 18,
+ TVOS_EXCLAVE_CORE = 19,
+ TVOS_EXCLAVE_KIT = 20,
+ WATCHOS_EXCLAVE_CORE = 21,
+ WATCHOS_EXCLAVE_KIT = 22,
VISIONOS_EXCLAVE_CORE = 23,
- VISIONOS_EXCLAVE_KIT = 24,
+ VISIONOS_EXCLAVE_KIT = 24,
- ANY = 0xFFFFFFFF
+ ANY = 0xFFFFFFFF,
};
public:
BuildVersion() = default;
BuildVersion(const details::build_version_command& version_cmd);
- BuildVersion(const PLATFORMS platform,
- const version_t &minos,
- const version_t &sdk,
- const tools_list_t &tools);
+ BuildVersion(const PLATFORMS platform, const version_t& minos,
+ const version_t& sdk, const tools_list_t& tools);
BuildVersion& operator=(const BuildVersion& copy) = default;
BuildVersion(const BuildVersion& copy) = default;
diff --git a/deps/LIEF/include/LIEF/MachO/Builder.hpp b/deps/LIEF/include/LIEF/MachO/Builder.hpp
index a470c12c888..1edd1f403fa 100644
--- a/deps/LIEF/include/LIEF/MachO/Builder.hpp
+++ b/deps/LIEF/include/LIEF/MachO/Builder.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -44,6 +44,7 @@ class FatBinary;
class FunctionStarts;
class FunctionVariants;
class FunctionVariantFixups;
+class LazyLoadDylibInfo;
class LinkerOptHint;
class LoadCommand;
class MainCommand;
@@ -70,27 +71,41 @@ class LIEF_API Builder {
Builder() = delete;
static ok_error_t write(Binary& binary, const std::string& filename);
- static ok_error_t write(Binary& binary, const std::string& filename, config_t config);
+ static ok_error_t write(Binary& binary, const std::string& filename,
+ config_t config);
static ok_error_t write(Binary& binary, std::vector<uint8_t>& out);
- static ok_error_t write(Binary& binary, std::vector<uint8_t>& out, config_t config);
+ static ok_error_t write(Binary& binary, std::vector<uint8_t>& out,
+ config_t config);
static ok_error_t write(Binary& binary, std::ostream& out);
static ok_error_t write(Binary& binary, std::ostream& out, config_t config);
static ok_error_t write(FatBinary& fat, const std::string& filename);
- static ok_error_t write(FatBinary& fat, const std::string& filename, config_t config);
+ static ok_error_t write(FatBinary& fat, const std::string& filename,
+ config_t config);
static ok_error_t write(FatBinary& fat, std::vector<uint8_t>& out);
- static ok_error_t write(FatBinary& fat, std::vector<uint8_t>& out, config_t config);
+ static ok_error_t write(FatBinary& fat, std::vector<uint8_t>& out,
+ config_t config);
static ok_error_t write(FatBinary& fat, std::ostream& out);
static ok_error_t write(FatBinary& fat, std::ostream& out, config_t config);
~Builder();
+
private:
LIEF_LOCAL ok_error_t build();
+ LIEF_LOCAL bool should_swap() const;
+
+ template<class T>
+ LIEF_LOCAL void swap_endian_if_needed(T& s) const {
+ if (should_swap()) {
+ LIEF::swap_endian(&s);
+ }
+ }
+
LIEF_LOCAL const std::vector<uint8_t>& get_build();
LIEF_LOCAL ok_error_t write(const std::string& filename) const;
LIEF_LOCAL ok_error_t write(std::ostream& os) const;
@@ -98,8 +113,10 @@ class LIEF_API Builder {
LIEF_LOCAL Builder(Binary& binary, config_t config);
LIEF_LOCAL Builder(std::vector<Binary*> binaries, config_t config);
- LIEF_LOCAL static std::vector<uint8_t> build_raw(Binary& binary, config_t config);
- LIEF_LOCAL static std::vector<uint8_t> build_raw(FatBinary& binary, config_t config);
+ LIEF_LOCAL static std::vector<uint8_t> build_raw(Binary& binary,
+ config_t config);
+ LIEF_LOCAL static std::vector<uint8_t> build_raw(FatBinary& binary,
+ config_t config);
template<class T>
LIEF_LOCAL static size_t get_cmd_size(const LoadCommand& cmd);
@@ -201,18 +218,21 @@ class LIEF_API Builder {
template<class T>
LIEF_LOCAL ok_error_t build(FunctionVariantFixups& func);
- template <typename T>
+ template<class T>
+ LIEF_LOCAL ok_error_t build(LazyLoadDylibInfo& cmd);
+
+ template<typename T>
LIEF_LOCAL ok_error_t build_segments();
template<class T>
LIEF_LOCAL ok_error_t build(BuildVersion& bv);
- template <typename T>
+ template<typename T>
LIEF_LOCAL ok_error_t build_symbols();
LIEF_LOCAL ok_error_t build_uuid();
- template <typename T>
+ template<typename T>
LIEF_LOCAL ok_error_t update_fixups(DyldChainedFixups& fixups);
std::vector<Binary*> binaries_;
diff --git a/deps/LIEF/include/LIEF/MachO/ChainedBindingInfo.hpp b/deps/LIEF/include/LIEF/MachO/ChainedBindingInfo.hpp
index 4ece4607d35..5177ac45ac7 100644
--- a/deps/LIEF/include/LIEF/MachO/ChainedBindingInfo.hpp
+++ b/deps/LIEF/include/LIEF/MachO/ChainedBindingInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -44,7 +44,7 @@ struct dyld_chained_ptr_32_bind;
/// This class does not represent a structure that exists in the Mach-O format
/// specifications but it provides a *view* on an entry.
///
-/// @see: BindingInfo
+/// @see BindingInfo
class LIEF_API ChainedBindingInfo : public BindingInfo {
friend class BinaryParser;
@@ -56,14 +56,12 @@ class LIEF_API ChainedBindingInfo : public BindingInfo {
ChainedBindingInfo() = delete;
explicit ChainedBindingInfo(DYLD_CHAINED_FORMAT fmt, bool is_weak);
- ChainedBindingInfo& operator=(ChainedBindingInfo other);
+ ChainedBindingInfo& operator=(const ChainedBindingInfo& other);
ChainedBindingInfo(const ChainedBindingInfo& other);
ChainedBindingInfo(ChainedBindingInfo&&) noexcept;
ChainedBindingInfo& operator=(ChainedBindingInfo&&) noexcept;
- void swap(ChainedBindingInfo& other) noexcept;
-
/// Format of the imports
DYLD_CHAINED_FORMAT format() const {
return format_;
@@ -105,8 +103,8 @@ class LIEF_API ChainedBindingInfo : public BindingInfo {
void accept(Visitor& visitor) const override;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const ChainedBindingInfo& info) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const ChainedBindingInfo& info) {
os << static_cast<const BindingInfo&>(info);
return os;
}
@@ -140,12 +138,12 @@ class LIEF_API ChainedBindingInfo : public BindingInfo {
BIND_TYPES btypes_ = BIND_TYPES::UNKNOWN;
union {
- details::dyld_chained_ptr_arm64e_bind* arm64_bind_ = nullptr;
- details::dyld_chained_ptr_arm64e_auth_bind* arm64_auth_bind_;
- details::dyld_chained_ptr_arm64e_bind24* arm64_bind24_;
+ details::dyld_chained_ptr_arm64e_bind* arm64_bind_ = nullptr;
+ details::dyld_chained_ptr_arm64e_auth_bind* arm64_auth_bind_;
+ details::dyld_chained_ptr_arm64e_bind24* arm64_bind24_;
details::dyld_chained_ptr_arm64e_auth_bind24* arm64_auth_bind24_;
- details::dyld_chained_ptr_64_bind* p64_bind_;
- details::dyld_chained_ptr_32_bind* p32_bind_;
+ details::dyld_chained_ptr_64_bind* p64_bind_;
+ details::dyld_chained_ptr_32_bind* p32_bind_;
};
};
diff --git a/deps/LIEF/include/LIEF/MachO/ChainedPointerAnalysis.hpp b/deps/LIEF/include/LIEF/MachO/ChainedPointerAnalysis.hpp
index ffb688afa1f..8f5b76311f3 100644
--- a/deps/LIEF/include/LIEF/MachO/ChainedPointerAnalysis.hpp
+++ b/deps/LIEF/include/LIEF/MachO/ChainedPointerAnalysis.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -30,16 +30,18 @@ namespace MachO {
class LIEF_API ChainedPointerAnalysis {
public:
// DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E
- struct dyld_chained_ptr_arm64e_rebase_t
- {
+ struct dyld_chained_ptr_arm64e_rebase_t {
+ // clang-format off
uint64_t target : 43,
high8 : 8,
next : 11,
bind : 1,
auth : 1;
+ // clang-format on
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_arm64e_rebase_t& chain);
+ friend LIEF_API std::ostream&
+ operator<<(std::ostream& os,
+ const dyld_chained_ptr_arm64e_rebase_t& chain);
uint64_t unpack_target() const {
return uint64_t(high8) | target;
@@ -47,22 +49,23 @@ class LIEF_API ChainedPointerAnalysis {
};
// DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E
- struct dyld_chained_ptr_arm64e_bind_t
- {
+ struct dyld_chained_ptr_arm64e_bind_t {
+ // clang-format off
uint64_t ordinal : 16,
zero : 16,
addend : 19,
next : 11,
bind : 1,
auth : 1;
+ // clang-format on
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_arm64e_bind_t& chain);
+ friend LIEF_API std::ostream&
+ operator<<(std::ostream& os, const dyld_chained_ptr_arm64e_bind_t& chain);
};
// DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E
- struct dyld_chained_ptr_arm64e_auth_rebase_t
- {
+ struct dyld_chained_ptr_arm64e_auth_rebase_t {
+ // clang-format off
uint64_t target : 32,
diversity : 16,
addr_div : 1,
@@ -70,14 +73,16 @@ class LIEF_API ChainedPointerAnalysis {
next : 11,
bind : 1,
auth : 1;
+ // clang-format on
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_arm64e_auth_rebase_t& chain);
+ friend LIEF_API std::ostream&
+ operator<<(std::ostream& os,
+ const dyld_chained_ptr_arm64e_auth_rebase_t& chain);
};
// DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E
- struct dyld_chained_ptr_arm64e_auth_bind_t
- {
+ struct dyld_chained_ptr_arm64e_auth_bind_t {
+ // clang-format off
uint64_t ordinal : 16,
zero : 16,
diversity : 16,
@@ -86,22 +91,25 @@ class LIEF_API ChainedPointerAnalysis {
next : 11,
bind : 1,
auth : 1;
+ // clang-format on
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_arm64e_auth_bind_t& chain);
+ friend LIEF_API std::ostream&
+ operator<<(std::ostream& os,
+ const dyld_chained_ptr_arm64e_auth_bind_t& chain);
};
// DYLD_CHAINED_PTR_FORMAT::PTR_64 & DYLD_CHAINED_PTR_FORMAT::PTR_64_OFFSET
- struct dyld_chained_ptr_64_rebase_t
- {
+ struct dyld_chained_ptr_64_rebase_t {
+ // clang-format off
uint64_t target : 36,
high8 : 8,
reserved : 7,
next : 12,
bind : 1;
+ // clang-format on
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_64_rebase_t& chain);
+ friend LIEF_API std::ostream&
+ operator<<(std::ostream& os, const dyld_chained_ptr_64_rebase_t& chain);
uint64_t unpack_target() const {
return uint64_t(high8) | target;
@@ -109,22 +117,24 @@ class LIEF_API ChainedPointerAnalysis {
};
// DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24
- struct dyld_chained_ptr_arm64e_bind24_t
- {
+ struct dyld_chained_ptr_arm64e_bind24_t {
+ // clang-format off
uint64_t ordinal : 24,
zero : 8,
addend : 19,
next : 11,
bind : 1,
auth : 1;
+ // clang-format on
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_arm64e_bind24_t& chain);
+ friend LIEF_API std::ostream&
+ operator<<(std::ostream& os,
+ const dyld_chained_ptr_arm64e_bind24_t& chain);
};
// DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24
- struct dyld_chained_ptr_arm64e_auth_bind24_t
- {
+ struct dyld_chained_ptr_arm64e_auth_bind24_t {
+ // clang-format off
uint64_t ordinal : 24,
zero : 8,
diversity : 16,
@@ -133,27 +143,30 @@ class LIEF_API ChainedPointerAnalysis {
next : 11,
bind : 1,
auth : 1;
+ // clang-format on
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_arm64e_auth_bind24_t& chain);
+ friend LIEF_API std::ostream&
+ operator<<(std::ostream& os,
+ const dyld_chained_ptr_arm64e_auth_bind24_t& chain);
};
// DYLD_CHAINED_PTR_FORMAT::PTR_64
- struct dyld_chained_ptr_64_bind_t
- {
+ struct dyld_chained_ptr_64_bind_t {
+ // clang-format off
uint64_t ordinal : 24,
addend : 8,
reserved : 19,
next : 12,
bind : 1;
+ // clang-format on
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_64_bind_t& chain);
+ friend LIEF_API std::ostream&
+ operator<<(std::ostream& os, const dyld_chained_ptr_64_bind_t& chain);
};
// DYLD_CHAINED_PTR_FORMAT::PTR_64_KERNEL_CACHE
- struct dyld_chained_ptr_64_kernel_cache_rebase_t
- {
+ struct dyld_chained_ptr_64_kernel_cache_rebase_t {
+ // clang-format off
uint64_t target : 30,
cache_level : 2,
diversity : 16,
@@ -161,70 +174,80 @@ class LIEF_API ChainedPointerAnalysis {
key : 2,
next : 12,
is_auth : 1;
+ // clang-format on
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_64_kernel_cache_rebase_t& chain);
+ friend LIEF_API std::ostream&
+ operator<<(std::ostream& os,
+ const dyld_chained_ptr_64_kernel_cache_rebase_t& chain);
};
// DYLD_CHAINED_PTR_FORMAT::PTR_32
- struct dyld_chained_ptr_32_rebase_t
- {
+ struct dyld_chained_ptr_32_rebase_t {
+ // clang-format off
uint32_t target : 26,
next : 5,
bind : 1;
+ // clang-format on
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_32_rebase_t& chain);
+ friend LIEF_API std::ostream&
+ operator<<(std::ostream& os, const dyld_chained_ptr_32_rebase_t& chain);
};
// DYLD_CHAINED_PTR_FORMAT::PTR_32
- struct dyld_chained_ptr_32_bind_t
- {
+ struct dyld_chained_ptr_32_bind_t {
+ // clang-format off
uint32_t ordinal : 20,
addend : 6,
next : 5,
bind : 1;
+ // clang-format on
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_32_bind_t& chain);
+ friend LIEF_API std::ostream&
+ operator<<(std::ostream& os, const dyld_chained_ptr_32_bind_t& chain);
};
// DYLD_CHAINED_PTR_FORMAT::PTR_32_CACHE
- struct dyld_chained_ptr_32_cache_rebase_t
- {
+ struct dyld_chained_ptr_32_cache_rebase_t {
+ // clang-format off
uint32_t target : 30,
next : 2;
+ // clang-format on
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_32_cache_rebase_t& chain);
+ friend LIEF_API std::ostream&
+ operator<<(std::ostream& os,
+ const dyld_chained_ptr_32_cache_rebase_t& chain);
};
// DYLD_CHAINED_PTR_FORMAT::PTR_32_FIRMWARE
- struct dyld_chained_ptr_32_firmware_rebase_t
- {
+ struct dyld_chained_ptr_32_firmware_rebase_t {
+ // clang-format off
uint32_t target : 26,
next : 6;
+ // clang-format on
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_32_firmware_rebase_t& chain);
+ friend LIEF_API std::ostream&
+ operator<<(std::ostream& os,
+ const dyld_chained_ptr_32_firmware_rebase_t& chain);
};
// DYLD_CHAINED_PTR_ARM64E_SEGMENTED
- struct dyld_chained_ptr_arm64e_segmented_rebase_t
- {
+ struct dyld_chained_ptr_arm64e_segmented_rebase_t {
+ // clang-format off
uint32_t target_seg_offset : 28,
target_seg_index : 4;
uint32_t padding : 19,
next : 12,
auth : 1;
+ // clang-format on
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_arm64e_segmented_rebase_t& chain);
+ friend LIEF_API std::ostream&
+ operator<<(std::ostream& os,
+ const dyld_chained_ptr_arm64e_segmented_rebase_t& chain);
};
// DYLD_CHAINED_PTR_ARM64E_SEGMENTED
- struct dyld_chained_ptr_arm64e_auth_segmented_rebase_t
- {
+ struct dyld_chained_ptr_arm64e_auth_segmented_rebase_t {
+ // clang-format off
uint32_t target_seg_offset : 28,
target_seg_index : 4;
uint32_t diversity : 16,
@@ -232,8 +255,11 @@ class LIEF_API ChainedPointerAnalysis {
key : 2,
next : 12,
auth : 1;
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const dyld_chained_ptr_arm64e_auth_segmented_rebase_t& chain);
+ // clang-format on
+
+ friend LIEF_API std::ostream&
+ operator<<(std::ostream& os,
+ const dyld_chained_ptr_arm64e_auth_segmented_rebase_t& chain);
};
@@ -257,68 +283,60 @@ class LIEF_API ChainedPointerAnalysis {
};
static std::unique_ptr<ChainedPointerAnalysis> from_value(uint64_t value,
- size_t size)
- {
+ size_t size) {
return std::unique_ptr<ChainedPointerAnalysis>(
- new ChainedPointerAnalysis(value, size));
+ new ChainedPointerAnalysis(value, size)
+ );
}
static size_t stride(DYLD_CHAINED_PTR_FORMAT fmt) {
switch (fmt) {
- case DYLD_CHAINED_PTR_FORMAT::NONE:
- return 0;
- case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E:
- case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND:
- case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24:
- case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SHARED_CACHE:
- return 8;
-
- case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_KERNEL:
- case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_FIRMWARE:
- case DYLD_CHAINED_PTR_FORMAT::PTR_32_FIRMWARE:
- case DYLD_CHAINED_PTR_FORMAT::PTR_64:
- case DYLD_CHAINED_PTR_FORMAT::PTR_64_OFFSET:
- case DYLD_CHAINED_PTR_FORMAT::PTR_32:
- case DYLD_CHAINED_PTR_FORMAT::PTR_32_CACHE:
- case DYLD_CHAINED_PTR_FORMAT::PTR_64_KERNEL_CACHE:
- case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SEGMENTED:
- return 4;
-
- case DYLD_CHAINED_PTR_FORMAT::PTR_X86_64_KERNEL_CACHE:
- return 1;
+ case DYLD_CHAINED_PTR_FORMAT::NONE: return 0;
+ case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E:
+ case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND:
+ case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24:
+ case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SHARED_CACHE: return 8;
+
+ case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_KERNEL:
+ case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_FIRMWARE:
+ case DYLD_CHAINED_PTR_FORMAT::PTR_32_FIRMWARE:
+ case DYLD_CHAINED_PTR_FORMAT::PTR_64:
+ case DYLD_CHAINED_PTR_FORMAT::PTR_64_OFFSET:
+ case DYLD_CHAINED_PTR_FORMAT::PTR_32:
+ case DYLD_CHAINED_PTR_FORMAT::PTR_32_CACHE:
+ case DYLD_CHAINED_PTR_FORMAT::PTR_64_KERNEL_CACHE:
+ case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SEGMENTED: return 4;
+
+ case DYLD_CHAINED_PTR_FORMAT::PTR_X86_64_KERNEL_CACHE: return 1;
}
return 0;
}
static size_t ptr_size(DYLD_CHAINED_PTR_FORMAT fmt) {
switch (fmt) {
- case DYLD_CHAINED_PTR_FORMAT::NONE:
- return 0;
- case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E:
- case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND:
- case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24:
- case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_KERNEL:
- case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_FIRMWARE:
- case DYLD_CHAINED_PTR_FORMAT::PTR_64:
- case DYLD_CHAINED_PTR_FORMAT::PTR_64_OFFSET:
- case DYLD_CHAINED_PTR_FORMAT::PTR_64_KERNEL_CACHE:
- case DYLD_CHAINED_PTR_FORMAT::PTR_X86_64_KERNEL_CACHE:
- case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SHARED_CACHE:
- case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SEGMENTED:
- return sizeof(uint64_t);
-
- case DYLD_CHAINED_PTR_FORMAT::PTR_32_FIRMWARE:
- case DYLD_CHAINED_PTR_FORMAT::PTR_32:
- case DYLD_CHAINED_PTR_FORMAT::PTR_32_CACHE:
- return sizeof(uint32_t);
+ case DYLD_CHAINED_PTR_FORMAT::NONE: return 0;
+ case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E:
+ case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND:
+ case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24:
+ case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_KERNEL:
+ case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_FIRMWARE:
+ case DYLD_CHAINED_PTR_FORMAT::PTR_64:
+ case DYLD_CHAINED_PTR_FORMAT::PTR_64_OFFSET:
+ case DYLD_CHAINED_PTR_FORMAT::PTR_64_KERNEL_CACHE:
+ case DYLD_CHAINED_PTR_FORMAT::PTR_X86_64_KERNEL_CACHE:
+ case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SHARED_CACHE:
+ case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SEGMENTED: return sizeof(uint64_t);
+
+ case DYLD_CHAINED_PTR_FORMAT::PTR_32_FIRMWARE:
+ case DYLD_CHAINED_PTR_FORMAT::PTR_32:
+ case DYLD_CHAINED_PTR_FORMAT::PTR_32_CACHE: return sizeof(uint32_t);
}
return 0;
}
ChainedPointerAnalysis(uint64_t value, size_t size) :
value_(value),
- size_(size)
- {}
+ size_(size) {}
ChainedPointerAnalysis(const ChainedPointerAnalysis&) = default;
ChainedPointerAnalysis& operator=(const ChainedPointerAnalysis&) = default;
@@ -337,91 +355,99 @@ class LIEF_API ChainedPointerAnalysis {
}
const dyld_chained_ptr_arm64e_rebase_t dyld_chained_ptr_arm64e_rebase() const {
- dyld_chained_ptr_arm64e_rebase_t result;
+ dyld_chained_ptr_arm64e_rebase_t result{};
std::memcpy(&result, &value_, sizeof(result));
return result;
}
const dyld_chained_ptr_arm64e_bind_t dyld_chained_ptr_arm64e_bind() const {
- dyld_chained_ptr_arm64e_bind_t result;
+ dyld_chained_ptr_arm64e_bind_t result{};
std::memcpy(&result, &value_, sizeof(result));
return result;
}
- const dyld_chained_ptr_arm64e_auth_rebase_t dyld_chained_ptr_arm64e_auth_rebase() const {
- dyld_chained_ptr_arm64e_auth_rebase_t result;
+ const dyld_chained_ptr_arm64e_auth_rebase_t
+ dyld_chained_ptr_arm64e_auth_rebase() const {
+ dyld_chained_ptr_arm64e_auth_rebase_t result{};
std::memcpy(&result, &value_, sizeof(result));
return result;
}
- const dyld_chained_ptr_arm64e_auth_bind_t dyld_chained_ptr_arm64e_auth_bind() const {
- dyld_chained_ptr_arm64e_auth_bind_t result;
+ const dyld_chained_ptr_arm64e_auth_bind_t
+ dyld_chained_ptr_arm64e_auth_bind() const {
+ dyld_chained_ptr_arm64e_auth_bind_t result{};
std::memcpy(&result, &value_, sizeof(result));
return result;
}
const dyld_chained_ptr_64_rebase_t dyld_chained_ptr_64_rebase() const {
- dyld_chained_ptr_64_rebase_t result;
+ dyld_chained_ptr_64_rebase_t result{};
std::memcpy(&result, &value_, sizeof(result));
return result;
}
const dyld_chained_ptr_arm64e_bind24_t dyld_chained_ptr_arm64e_bind24() const {
- dyld_chained_ptr_arm64e_bind24_t result;
+ dyld_chained_ptr_arm64e_bind24_t result{};
std::memcpy(&result, &value_, sizeof(result));
return result;
}
- const dyld_chained_ptr_arm64e_auth_bind24_t dyld_chained_ptr_arm64e_auth_bind24() const {
- dyld_chained_ptr_arm64e_auth_bind24_t result;
+ const dyld_chained_ptr_arm64e_auth_bind24_t
+ dyld_chained_ptr_arm64e_auth_bind24() const {
+ dyld_chained_ptr_arm64e_auth_bind24_t result{};
std::memcpy(&result, &value_, sizeof(result));
return result;
}
const dyld_chained_ptr_64_bind_t dyld_chained_ptr_64_bind() const {
- dyld_chained_ptr_64_bind_t result;
+ dyld_chained_ptr_64_bind_t result{};
std::memcpy(&result, &value_, sizeof(result));
return result;
}
- const dyld_chained_ptr_64_kernel_cache_rebase_t dyld_chained_ptr_64_kernel_cache_rebase() const {
- dyld_chained_ptr_64_kernel_cache_rebase_t result;
+ const dyld_chained_ptr_64_kernel_cache_rebase_t
+ dyld_chained_ptr_64_kernel_cache_rebase() const {
+ dyld_chained_ptr_64_kernel_cache_rebase_t result{};
std::memcpy(&result, &value_, sizeof(result));
return result;
}
const dyld_chained_ptr_32_rebase_t dyld_chained_ptr_32_rebase() const {
- dyld_chained_ptr_32_rebase_t result;
+ dyld_chained_ptr_32_rebase_t result{};
std::memcpy(&result, &value_, sizeof(result));
return result;
}
const dyld_chained_ptr_32_bind_t dyld_chained_ptr_32_bind() const {
- dyld_chained_ptr_32_bind_t result;
+ dyld_chained_ptr_32_bind_t result{};
std::memcpy(&result, &value_, sizeof(result));
return result;
}
- const dyld_chained_ptr_32_cache_rebase_t dyld_chained_ptr_32_cache_rebase() const {
- dyld_chained_ptr_32_cache_rebase_t result;
+ const dyld_chained_ptr_32_cache_rebase_t
+ dyld_chained_ptr_32_cache_rebase() const {
+ dyld_chained_ptr_32_cache_rebase_t result{};
std::memcpy(&result, &value_, sizeof(result));
return result;
}
- const dyld_chained_ptr_32_firmware_rebase_t dyld_chained_ptr_32_firmware_rebase() const {
- dyld_chained_ptr_32_firmware_rebase_t result;
+ const dyld_chained_ptr_32_firmware_rebase_t
+ dyld_chained_ptr_32_firmware_rebase() const {
+ dyld_chained_ptr_32_firmware_rebase_t result{};
std::memcpy(&result, &value_, sizeof(result));
return result;
}
- const dyld_chained_ptr_arm64e_segmented_rebase_t dyld_chained_ptr_arm64e_segmented_rebase() const {
- dyld_chained_ptr_arm64e_segmented_rebase_t result;
+ const dyld_chained_ptr_arm64e_segmented_rebase_t
+ dyld_chained_ptr_arm64e_segmented_rebase() const {
+ dyld_chained_ptr_arm64e_segmented_rebase_t result{};
std::memcpy(&result, &value_, sizeof(result));
return result;
}
- const dyld_chained_ptr_arm64e_auth_segmented_rebase_t dyld_chained_ptr_arm64e_auth_segmented_rebase() const {
- dyld_chained_ptr_arm64e_auth_segmented_rebase_t result;
+ const dyld_chained_ptr_arm64e_auth_segmented_rebase_t
+ dyld_chained_ptr_arm64e_auth_segmented_rebase() const {
+ dyld_chained_ptr_arm64e_auth_segmented_rebase_t result{};
std::memcpy(&result, &value_, sizeof(result));
return result;
}
@@ -429,7 +455,7 @@ class LIEF_API ChainedPointerAnalysis {
struct union_pointer_t {
PTR_TYPE type = PTR_TYPE::UNKNOWN;
union {
- dyld_chained_ptr_arm64e_rebase_t arm64e_rebase;
+ dyld_chained_ptr_arm64e_rebase_t arm64e_rebase{};
dyld_chained_ptr_arm64e_bind_t arm64e_bind;
dyld_chained_ptr_arm64e_auth_rebase_t arm64e_auth_rebase;
dyld_chained_ptr_arm64e_auth_bind_t arm64e_auth_bind;
@@ -444,7 +470,8 @@ class LIEF_API ChainedPointerAnalysis {
dyld_chained_ptr_32_firmware_rebase_t ptr_32_firmware_rebase;
dyld_chained_ptr_arm64e_segmented_rebase_t ptr_arm64e_segmented_rebase;
- dyld_chained_ptr_arm64e_auth_segmented_rebase_t ptr_arm64e_auth_segmented_rebase;
+ dyld_chained_ptr_arm64e_auth_segmented_rebase_t
+ ptr_arm64e_auth_segmented_rebase;
uint64_t raw;
};
uint32_t next() const;
@@ -457,17 +484,18 @@ class LIEF_API ChainedPointerAnalysis {
}
bool is_auth() const;
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const union_pointer_t& ptr);
+ friend LIEF_API std::ostream& operator<<(std::ostream& os,
+ const union_pointer_t& ptr);
};
- static_assert(sizeof(union_pointer_t) == 16);
+ static_assert(sizeof(union_pointer_t) == 16, "Wrong sizeof");
union_pointer_t get_as(DYLD_CHAINED_PTR_FORMAT fmt) const;
static uint64_t walk_chain(
BinaryStream& stream, DYLD_CHAINED_PTR_FORMAT format,
- const std::function<int(uint64_t, const union_pointer_t& ptr)>& callback);
+ const std::function<int(uint64_t, const union_pointer_t& ptr)>& callback
+ );
private:
uint64_t value_ = 0;
diff --git a/deps/LIEF/include/LIEF/MachO/CodeSignature.hpp b/deps/LIEF/include/LIEF/MachO/CodeSignature.hpp
index e8b314daf4b..5d3da4e6d57 100644
--- a/deps/LIEF/include/LIEF/MachO/CodeSignature.hpp
+++ b/deps/LIEF/include/LIEF/MachO/CodeSignature.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
#include <cstdint>
#include "LIEF/span.hpp"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/MachO/LoadCommand.hpp"
@@ -67,11 +68,11 @@ class LIEF_API CodeSignature : public LoadCommand {
data_size_ = size;
}
- span<uint8_t> content() {
+ span<uint8_t> content() LIEF_LIFETIMEBOUND {
return content_;
}
- span<const uint8_t> content() const {
+ span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
return content_;
}
@@ -89,7 +90,6 @@ class LIEF_API CodeSignature : public LoadCommand {
uint32_t data_offset_ = 0;
uint32_t data_size_ = 0;
span<uint8_t> content_;
-
};
}
diff --git a/deps/LIEF/include/LIEF/MachO/CodeSignatureDir.hpp b/deps/LIEF/include/LIEF/MachO/CodeSignatureDir.hpp
index 77760679343..b18ad20ac6b 100644
--- a/deps/LIEF/include/LIEF/MachO/CodeSignatureDir.hpp
+++ b/deps/LIEF/include/LIEF/MachO/CodeSignatureDir.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
#define LIEF_MACHO_CODE_SIGNATURE_DIR_COMMAND_H
#include <ostream>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/span.hpp"
@@ -67,11 +68,11 @@ class LIEF_API CodeSignatureDir : public LoadCommand {
data_size_ = size;
}
- span<const uint8_t> content() const {
+ span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
return content_;
}
- span<uint8_t> content() {
+ span<uint8_t> content() LIEF_LIFETIMEBOUND {
return content_;
}
@@ -86,10 +87,9 @@ class LIEF_API CodeSignatureDir : public LoadCommand {
}
private:
- uint32_t data_offset_ = 0;
- uint32_t data_size_ = 0;
+ uint32_t data_offset_ = 0;
+ uint32_t data_size_ = 0;
span<uint8_t> content_;
-
};
}
diff --git a/deps/LIEF/include/LIEF/MachO/DataCodeEntry.hpp b/deps/LIEF/include/LIEF/MachO/DataCodeEntry.hpp
index a4940b65554..9ce70c555b1 100644
--- a/deps/LIEF/include/LIEF/MachO/DataCodeEntry.hpp
+++ b/deps/LIEF/include/LIEF/MachO/DataCodeEntry.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -33,11 +33,11 @@ struct data_in_code_entry;
class LIEF_API DataCodeEntry : public LIEF::Object {
public:
enum class TYPES {
- UNKNOWN = 0,
- DATA = 1,
- JUMP_TABLE_8 = 2,
- JUMP_TABLE_16 = 3,
- JUMP_TABLE_32 = 4,
+ UNKNOWN = 0,
+ DATA = 1,
+ JUMP_TABLE_8 = 2,
+ JUMP_TABLE_16 = 3,
+ JUMP_TABLE_32 = 4,
ABS_JUMP_TABLE_32 = 5,
};
@@ -46,8 +46,7 @@ class LIEF_API DataCodeEntry : public LIEF::Object {
DataCodeEntry(uint32_t off, uint16_t length, TYPES type) :
offset_(off),
length_(length),
- type_(type)
- {}
+ type_(type) {}
DataCodeEntry(const details::data_in_code_entry& entry);
DataCodeEntry& operator=(const DataCodeEntry&) = default;
@@ -82,7 +81,8 @@ class LIEF_API DataCodeEntry : public LIEF::Object {
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const DataCodeEntry& entry);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const DataCodeEntry& entry);
private:
uint32_t offset_ = 0;
diff --git a/deps/LIEF/include/LIEF/MachO/DataInCode.hpp b/deps/LIEF/include/LIEF/MachO/DataInCode.hpp
index d9843371e2e..33616151838 100644
--- a/deps/LIEF/include/LIEF/MachO/DataInCode.hpp
+++ b/deps/LIEF/include/LIEF/MachO/DataInCode.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
#include <vector>
#include <ostream>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/iterators.hpp"
#include "LIEF/span.hpp"
@@ -35,17 +36,18 @@ struct linkedit_data_command;
}
/// Interface of the LC_DATA_IN_CODE command
-/// This command is used to list slices of code sections that contain data. The *slices*
-/// information are stored as an array of DataCodeEntry
+/// This command is used to list slices of code sections that contain data. The
+/// *slices* information are stored as an array of DataCodeEntry
///
/// @see DataCodeEntry
class LIEF_API DataInCode : public LoadCommand {
friend class BinaryParser;
friend class LinkEdit;
+
public:
- using entries_t = std::vector<DataCodeEntry>;
+ using entries_t = std::vector<DataCodeEntry>;
using it_const_entries = const_ref_iterator<const entries_t&>;
- using it_entries = ref_iterator<entries_t&>;
+ using it_entries = ref_iterator<entries_t&>;
public:
DataInCode() = default;
@@ -82,19 +84,19 @@ class LIEF_API DataInCode : public LoadCommand {
}
/// Iterator over the DataCodeEntry
- it_const_entries entries() const {
+ it_const_entries entries() const LIEF_LIFETIMEBOUND {
return entries_;
}
- it_entries entries() {
+ it_entries entries() LIEF_LIFETIMEBOUND {
return entries_;
}
- span<uint8_t> content() {
+ span<uint8_t> content() LIEF_LIFETIMEBOUND {
return content_;
}
- span<const uint8_t> content() const {
+ span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
return content_;
}
@@ -109,11 +111,10 @@ class LIEF_API DataInCode : public LoadCommand {
}
private:
- uint32_t data_offset_ = 0;
- uint32_t data_size_ = 0;
+ uint32_t data_offset_ = 0;
+ uint32_t data_size_ = 0;
entries_t entries_;
span<uint8_t> content_;
-
};
}
diff --git a/deps/LIEF/include/LIEF/MachO/DyldBindingInfo.hpp b/deps/LIEF/include/LIEF/MachO/DyldBindingInfo.hpp
index 1d0c3f80f93..9bb76d59fa8 100644
--- a/deps/LIEF/include/LIEF/MachO/DyldBindingInfo.hpp
+++ b/deps/LIEF/include/LIEF/MachO/DyldBindingInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,30 +28,30 @@ namespace MachO {
/// the LC_DYLD_INFO bytecode.
///
/// It does not represent a structure that exists in the Mach-O format
-/// specifications but it provides a *view* on an entry of the Dyld binding opcodes.
+/// specifications but it provides a *view* on an entry of the Dyld binding
+/// opcodes.
///
-/// @see: BindingInfo
+/// @see BindingInfo
class LIEF_API DyldBindingInfo : public BindingInfo {
friend class BinaryParser;
public:
- enum class CLASS: uint64_t {
- WEAK = 1u,
- LAZY = 2u,
+ enum class CLASS : uint64_t {
+ WEAK = 1u,
+ LAZY = 2u,
STANDARD = 3u,
- THREADED = 100u
+ THREADED = 100u,
};
- enum class TYPE: uint64_t {
- POINTER = 1u,
+ enum class TYPE : uint64_t {
+ POINTER = 1u,
TEXT_ABSOLUTE32 = 2u,
- TEXT_PCREL32 = 3u
+ TEXT_PCREL32 = 3u,
};
public:
DyldBindingInfo() = default;
- DyldBindingInfo(CLASS cls, TYPE type,
- uint64_t address, int64_t addend = 0,
+ DyldBindingInfo(CLASS cls, TYPE type, uint64_t address, int64_t addend = 0,
int32_t oridnal = 0, bool is_weak = false,
bool is_non_weak_definition = false, uint64_t offset = 0);
@@ -71,7 +71,7 @@ class LIEF_API DyldBindingInfo : public BindingInfo {
class_ = bind_class;
}
- /// Type of the binding. Most of the times it's TYPE::POINTER
+ /// Type of the binding. Most of the time it's TYPE::POINTER
TYPE binding_type() const {
return binding_type_;
}
@@ -81,11 +81,11 @@ class LIEF_API DyldBindingInfo : public BindingInfo {
}
bool is_non_weak_definition() const {
- return this->is_non_weak_definition_;
+ return is_non_weak_definition_;
}
void set_non_weak_definition(bool val) {
- this->is_non_weak_definition_ = val;
+ is_non_weak_definition_ = val;
}
/// Original relative offset of the binding opcodes
@@ -105,8 +105,8 @@ class LIEF_API DyldBindingInfo : public BindingInfo {
void accept(Visitor& visitor) const override;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const DyldBindingInfo& info) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const DyldBindingInfo& info) {
os << static_cast<const BindingInfo&>(info);
return os;
}
diff --git a/deps/LIEF/include/LIEF/MachO/DyldChainedFixups.hpp b/deps/LIEF/include/LIEF/MachO/DyldChainedFixups.hpp
index 2259a8ae17d..dde6e34c1ef 100644
--- a/deps/LIEF/include/LIEF/MachO/DyldChainedFixups.hpp
+++ b/deps/LIEF/include/LIEF/MachO/DyldChainedFixups.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
#include <memory>
#include "LIEF/span.hpp"
#include "LIEF/iterators.hpp"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/MachO/LoadCommand.hpp"
#include "LIEF/MachO/DyldChainedFormat.hpp"
@@ -58,29 +59,51 @@ class LIEF_API DyldChainedFixups : public LoadCommand {
/// Structure that mirrors the raw dyld_chained_starts_in_segment
/// which aims at providing information about the chained rebase/bind fixups
///
- /// The relocations provided by this structure can be accessed through SegmentCommand::relocations
+ /// The relocations provided by this structure can be accessed through
+ /// SegmentCommand::relocations
struct chained_starts_in_segment {
- uint32_t offset = 0; ///< Original offset of the structure, relative to DyldChainedFixups::starts_offset
- uint32_t size = 0; ///< sizeof(size) + sizeof(page_size) + ... + sizeof(pointer_format)
- uint16_t page_size = 0; ///< Likely 0x1000 for x86/x86_64 architectures and 0x4000 for ARM64 architecture
- uint64_t segment_offset = 0; ///< Offset of the segment's data from the beginning of the file (it should match SegmentCommand::file_offset)
- uint32_t max_valid_pointer = 0; ///< for 32-bit OS, any value beyond this is not a pointer
- DYLD_CHAINED_PTR_FORMAT pointer_format = DYLD_CHAINED_PTR_FORMAT::NONE; ///< How pointers are encoded
+ /// Original offset of the structure, relative to
+ /// DyldChainedFixups::starts_offset
+ uint32_t offset = 0;
+
+ /// sizeof(size) + sizeof(page_size) + ... + sizeof(pointer_format)
+ uint32_t size = 0;
+
+ /// Likely 0x1000 for x86/x86_64 architectures and 0x4000 for ARM64
+ /// architecture
+ uint16_t page_size = 0;
+
+ /// Offset of the segment's data from the beginning of the file (it
+ /// should match SegmentCommand::file_offset)
+ uint64_t segment_offset = 0;
+
+ /// for 32-bit OS, any value beyond this is not a pointer
+ uint32_t max_valid_pointer = 0;
+
+ /// How pointers are encoded
+ DYLD_CHAINED_PTR_FORMAT pointer_format = DYLD_CHAINED_PTR_FORMAT::NONE;
/// How many pages are in the page_start array
size_t page_count() const {
return page_start.size();
}
- std::vector<uint16_t> page_start; ///< Offset in the SegmentCommand of the first element of the chain
- std::vector<uint16_t> chain_starts; ///< Currently not supported
+ /// Offset in the SegmentCommand of the
+ /// first element of the chain
+ std::vector<uint16_t> page_start;
- SegmentCommand& segment; ///< Segment in which the rebase/bind fixups take place
+ /// Currently not supported
+ std::vector<uint16_t> chain_starts;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const chained_starts_in_segment& info);
+ /// Segment in which the rebase/bind fixups take place
+ SegmentCommand& segment;
- static chained_starts_in_segment create_empty_chained(SegmentCommand& segment) {
- return chained_starts_in_segment(0, segment);
+ LIEF_API friend std::ostream&
+ operator<<(std::ostream& os, const chained_starts_in_segment& info);
+
+ static chained_starts_in_segment
+ create_empty_chained(SegmentCommand& segment) {
+ return {0, segment};
}
private:
@@ -88,9 +111,9 @@ class LIEF_API DyldChainedFixups : public LoadCommand {
friend class DyldChainedFixupsCreator;
chained_starts_in_segment(uint32_t offset, SegmentCommand& segment) :
offset(offset),
- segment(segment)
- {}
- chained_starts_in_segment(uint32_t offset, const details::dyld_chained_starts_in_segment& info,
+ segment(segment) {}
+ chained_starts_in_segment(uint32_t offset,
+ const details::dyld_chained_starts_in_segment& info,
SegmentCommand& segment);
};
@@ -98,10 +121,12 @@ class LIEF_API DyldChainedFixups : public LoadCommand {
using chained_starts_in_segments_t = std::vector<chained_starts_in_segment>;
/// Iterator that outputs chained_starts_in_segment&
- using it_chained_starts_in_segments_t = ref_iterator<chained_starts_in_segments_t&>;
+ using it_chained_starts_in_segments_t =
+ ref_iterator<chained_starts_in_segments_t&>;
/// Iterator that outputs const chained_starts_in_segment&
- using it_const_chained_starts_in_segments_t = const_ref_iterator<const chained_starts_in_segments_t&>;
+ using it_const_chained_starts_in_segments_t =
+ const_ref_iterator<const chained_starts_in_segments_t&>;
/// Internal container for storing DyldBindingInfo
using binding_info_t = std::vector<std::unique_ptr<ChainedBindingInfo>>;
@@ -110,7 +135,8 @@ class LIEF_API DyldChainedFixups : public LoadCommand {
using it_binding_info = ref_iterator<binding_info_t&, ChainedBindingInfo*>;
/// Iterator which outputs const DyldBindingInfo&
- using it_const_binding_info = const_ref_iterator<const binding_info_t&, ChainedBindingInfo*>;
+ using it_const_binding_info =
+ const_ref_iterator<const binding_info_t&, ChainedBindingInfo*>;
DyldChainedFixups();
@@ -140,61 +166,90 @@ class LIEF_API DyldChainedFixups : public LoadCommand {
}
/// Return the raw content of the command
- span<const uint8_t> payload() const {
+ span<const uint8_t> payload() const LIEF_LIFETIMEBOUND {
return content_;
}
/// Iterator over the bindings (ChainedBindingInfo) associated with this command
- it_binding_info bindings() {
+ it_binding_info bindings() LIEF_LIFETIMEBOUND {
return all_bindings_;
}
/// Iterator over the bindings (ChainedBindingInfo) associated with this command
- it_const_binding_info bindings() const {
+ it_const_binding_info bindings() const LIEF_LIFETIMEBOUND {
return all_bindings_;
}
/// Iterator over the chained fixup metadata
- it_chained_starts_in_segments_t chained_starts_in_segments() {
+ it_chained_starts_in_segments_t chained_starts_in_segments() LIEF_LIFETIMEBOUND {
return chained_starts_in_segment_;
}
- it_const_chained_starts_in_segments_t chained_starts_in_segments() const {
+ it_const_chained_starts_in_segments_t
+ chained_starts_in_segments() const LIEF_LIFETIMEBOUND {
return chained_starts_in_segment_;
}
/// Chained fixups version. The loader (dyld v852.2) checks
/// that this value is set to 0
- uint32_t fixups_version() const { return fixups_version_; }
- void fixups_version(uint32_t version) { fixups_version_ = version; }
+ uint32_t fixups_version() const {
+ return fixups_version_;
+ }
+ void fixups_version(uint32_t version) {
+ fixups_version_ = version;
+ }
/// offset of dyld_chained_starts_in_image in chain_data
- uint32_t starts_offset() const { return starts_offset_; }
- void starts_offset(uint32_t offset) { starts_offset_ = offset; }
+ uint32_t starts_offset() const {
+ return starts_offset_;
+ }
+ void starts_offset(uint32_t offset) {
+ starts_offset_ = offset;
+ }
/// Offset of imports table in chain data
- uint32_t imports_offset() const { return imports_offset_; }
- void imports_offset(uint32_t offset) { imports_offset_ = offset; }
+ uint32_t imports_offset() const {
+ return imports_offset_;
+ }
+ void imports_offset(uint32_t offset) {
+ imports_offset_ = offset;
+ }
/// Offset of symbol strings in chain data
- uint32_t symbols_offset() const { return symbols_offset_; }
- void symbols_offset(uint32_t offset) { symbols_offset_ = offset; }
+ uint32_t symbols_offset() const {
+ return symbols_offset_;
+ }
+ void symbols_offset(uint32_t offset) {
+ symbols_offset_ = offset;
+ }
/// Number of imported symbol names
- uint32_t imports_count() const { return imports_count_; }
- void imports_count(uint32_t cnt) { imports_count_ = cnt; }
+ uint32_t imports_count() const {
+ return imports_count_;
+ }
+ void imports_count(uint32_t cnt) {
+ imports_count_ = cnt;
+ }
/// The compression algorithm (if any) used to store the symbols
/// 0 means uncompressed while 1 means zlib compressed.
///
/// As far of the version v852.2 of dyld loader, it only supports
/// **uncompressed** format
- uint32_t symbols_format() const { return symbols_format_; }
- void symbols_format(uint32_t fmt) { symbols_format_ = fmt; }
+ uint32_t symbols_format() const {
+ return symbols_format_;
+ }
+ void symbols_format(uint32_t fmt) {
+ symbols_format_ = fmt;
+ }
/// The format of the imports (ChainedBindingInfo)
- DYLD_CHAINED_FORMAT imports_format() const { return imports_format_; }
- void imports_format(DYLD_CHAINED_FORMAT fmt) { imports_format_ = fmt; }
+ DYLD_CHAINED_FORMAT imports_format() const {
+ return imports_format_;
+ }
+ void imports_format(DYLD_CHAINED_FORMAT fmt) {
+ imports_format_ = fmt;
+ }
chained_starts_in_segment& add(chained_starts_in_segment start_info) {
chained_starts_in_segment_.push_back(std::move(start_info));
@@ -215,17 +270,17 @@ class LIEF_API DyldChainedFixups : public LoadCommand {
LIEF_LOCAL DyldChainedFixups(const DyldChainedFixups& other);
uint32_t data_offset_ = 0;
- uint32_t data_size_ = 0;
+ uint32_t data_size_ = 0;
// Raw payload of the DyldChainedFixups.
// This payload is located in the __LINKEDIT segment
span<uint8_t> content_;
uint32_t fixups_version_ = 0;
- uint32_t starts_offset_ = 0;
+ uint32_t starts_offset_ = 0;
uint32_t imports_offset_ = 0;
uint32_t symbols_offset_ = 0;
- uint32_t imports_count_ = 0;
+ uint32_t imports_count_ = 0;
uint32_t symbols_format_ = 0;
DYLD_CHAINED_FORMAT imports_format_ = DYLD_CHAINED_FORMAT::IMPORT;
diff --git a/deps/LIEF/include/LIEF/MachO/DyldChainedFixupsCreator.hpp b/deps/LIEF/include/LIEF/MachO/DyldChainedFixupsCreator.hpp
index d52bcd1d666..c6b4a06f632 100644
--- a/deps/LIEF/include/LIEF/MachO/DyldChainedFixupsCreator.hpp
+++ b/deps/LIEF/include/LIEF/MachO/DyldChainedFixupsCreator.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -69,25 +69,23 @@ class LIEF_LOCAL DyldChainedFixupsCreator {
DyldChainedFixupsCreator& add_relocation(uint64_t address, uint64_t target);
DyldChainedFixupsCreator&
- add_relocations(const std::vector<reloc_info_t>& relocations)
- {
+ add_relocations(const std::vector<reloc_info_t>& relocations) {
std::copy(relocations.begin(), relocations.end(),
std::back_inserter(relocations_));
return *this;
}
- DyldChainedFixupsCreator& add_binding(uint64_t address,
- std::string symbol, std::string library,
- uint64_t addend = 0, bool weak = false);
+ DyldChainedFixupsCreator& add_binding(uint64_t address, std::string symbol,
+ std::string library, uint64_t addend = 0,
+ bool weak = false);
- DyldChainedFixupsCreator& add_binding(uint64_t address,
- std::string symbol,
- uint64_t addend = 0, bool weak = false)
- {
+ DyldChainedFixupsCreator& add_binding(uint64_t address, std::string symbol,
+ uint64_t addend = 0, bool weak = false) {
return add_binding(address, std::move(symbol), "", addend, weak);
}
- DyldChainedFixupsCreator& add_bindings(const std::vector<binding_info_t>& bindings) {
+ DyldChainedFixupsCreator&
+ add_bindings(const std::vector<binding_info_t>& bindings) {
std::copy(bindings.begin(), bindings.end(), std::back_inserter(bindings_));
return *this;
}
@@ -98,7 +96,8 @@ class LIEF_LOCAL DyldChainedFixupsCreator {
struct LIEF_LOCAL binding_rebase_t {
enum TYPE {
UNKNOWN = 0,
- FIXUP, BINDING,
+ FIXUP,
+ BINDING,
};
union {
ChainedBindingInfo* binding = nullptr;
@@ -108,13 +107,11 @@ class LIEF_LOCAL DyldChainedFixupsCreator {
binding_rebase_t(ChainedBindingInfo& info) :
binding(&info),
- type(BINDING)
- {}
+ type(BINDING) {}
binding_rebase_t(RelocationFixup& fixup) :
fixup(&fixup),
- type(FIXUP)
- {}
+ type(FIXUP) {}
uint64_t addr() const;
@@ -145,24 +142,26 @@ class LIEF_LOCAL DyldChainedFixupsCreator {
const binding_rebase_t& rhs) {
return !(lhs > rhs);
}
-
};
LIEF_LOCAL result<size_t> lib2ord(const Binary& bin, const Symbol& sym,
const std::string& lib);
LIEF_LOCAL const Symbol* find_symbol(const Binary& bin, const std::string& name);
- LIEF_LOCAL static DYLD_CHAINED_PTR_FORMAT pointer_format(const Binary& bin, size_t imp_count);
- LIEF_LOCAL ok_error_t process_relocations(Binary& target, DYLD_CHAINED_PTR_FORMAT ptr_fmt);
- LIEF_LOCAL ok_error_t process_bindings(
- Binary& target, strong_map_t& strong_map,
- std::unordered_map<std::string, size_t>& symbols_idx, DyldChainedFixups* cmd,
- DyldChainedFixups::binding_info_t& all_bindings);
+ LIEF_LOCAL static DYLD_CHAINED_PTR_FORMAT pointer_format(const Binary& bin,
+ size_t imp_count);
+ LIEF_LOCAL ok_error_t process_relocations(Binary& target,
+ DYLD_CHAINED_PTR_FORMAT ptr_fmt);
+ LIEF_LOCAL DyldChainedFixups::binding_info_t
+ process_bindings(Binary& target, strong_map_t& strong_map,
+ std::unordered_map<std::string, size_t>& symbols_idx,
+ DyldChainedFixups* cmd);
uint32_t fixups_version_ = 0;
DYLD_CHAINED_FORMAT imports_format_;
std::vector<binding_info_t> bindings_;
std::vector<reloc_info_t> relocations_;
- std::unordered_map<SegmentCommand*, std::vector<binding_rebase_t>> segment_chains_;
+ std::unordered_map<SegmentCommand*, std::vector<binding_rebase_t>>
+ segment_chains_;
std::unordered_map<std::string, size_t> lib2ord_;
};
}
diff --git a/deps/LIEF/include/LIEF/MachO/DyldChainedFormat.hpp b/deps/LIEF/include/LIEF/MachO/DyldChainedFormat.hpp
index 603d28de043..ea056e29ae4 100644
--- a/deps/LIEF/include/LIEF/MachO/DyldChainedFormat.hpp
+++ b/deps/LIEF/include/LIEF/MachO/DyldChainedFormat.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2024 - 2025 R. Thomas
+/* Copyright 2024 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,29 +20,45 @@ namespace MachO {
// values for dyld_chained_fixups_header.imports_format
enum class DYLD_CHAINED_FORMAT {
- IMPORT = 1, // Originally: DYLD_CHAINED_IMPORT
- IMPORT_ADDEND = 2, // Originally: DYLD_CHAINED_IMPORT_ADDEND
- IMPORT_ADDEND64 = 3, // Originally: DYLD_CHAINED_IMPORT_ADDEND64
+ /// Originally: DYLD_CHAINED_IMPORT
+ IMPORT = 1,
+
+ /// Originally: DYLD_CHAINED_IMPORT_ADDEND
+ IMPORT_ADDEND = 2,
+
+ /// Originally: DYLD_CHAINED_IMPORT_ADDEND64
+ IMPORT_ADDEND64 = 3,
};
// values for dyld_chained_starts_in_segment.pointer_format
enum class DYLD_CHAINED_PTR_FORMAT {
- NONE = 0,
- PTR_ARM64E = 1, // stride 8, unauth target is vmaddr
- PTR_64 = 2, // target is vmaddr
- PTR_32 = 3,
- PTR_32_CACHE = 4,
- PTR_32_FIRMWARE = 5,
- PTR_64_OFFSET = 6, // target is vm offset
- PTR_ARM64E_OFFSET = 7, // old name
- PTR_ARM64E_KERNEL = 7, // stride 4, unauth target is vm offset
- PTR_64_KERNEL_CACHE = 8,
- PTR_ARM64E_USERLAND = 9, // stride 8, unauth target is vm offset
- PTR_ARM64E_FIRMWARE = 10, // stride 4, unauth target is vmaddr
- PTR_X86_64_KERNEL_CACHE = 11, // stride 1, x86_64 kernel caches
- PTR_ARM64E_USERLAND24 = 12, // stride 8, unauth target is vm offset, 24-bit bind
- PTR_ARM64E_SHARED_CACHE = 13, // stride 8, regular/auth targets both vm offsets. Only A keys supported
- PTR_ARM64E_SEGMENTED = 14, // stride 4, rebase offsets use segIndex and segOffset
+ NONE = 0,
+ // stride 8, unauth target is vmaddr
+ PTR_ARM64E = 1,
+ // target is vmaddr
+ PTR_64 = 2,
+ PTR_32 = 3,
+ PTR_32_CACHE = 4,
+ PTR_32_FIRMWARE = 5,
+ // target is vm offset
+ PTR_64_OFFSET = 6,
+ // old name
+ PTR_ARM64E_OFFSET = 7,
+ // stride 4, unauth target is vm offset
+ PTR_ARM64E_KERNEL = 7,
+ PTR_64_KERNEL_CACHE = 8,
+ // stride 8, unauth target is vm offset
+ PTR_ARM64E_USERLAND = 9,
+ // stride 4, unauth target is vmaddr
+ PTR_ARM64E_FIRMWARE = 10,
+ // stride 1, x86_64 kernel caches
+ PTR_X86_64_KERNEL_CACHE = 11,
+ // stride 8, unauth target is vm offset, 24-bit bind
+ PTR_ARM64E_USERLAND24 = 12,
+ // stride 8, regular/auth targets both vm offsets. Only A keys supported
+ PTR_ARM64E_SHARED_CACHE = 13,
+ // stride 4, rebase offsets use segIndex and segOffset
+ PTR_ARM64E_SEGMENTED = 14,
};
LIEF_API const char* to_string(DYLD_CHAINED_FORMAT fmt);
diff --git a/deps/LIEF/include/LIEF/MachO/DyldEnvironment.hpp b/deps/LIEF/include/LIEF/MachO/DyldEnvironment.hpp
index e2c2daf16c3..0176d28c753 100644
--- a/deps/LIEF/include/LIEF/MachO/DyldEnvironment.hpp
+++ b/deps/LIEF/include/LIEF/MachO/DyldEnvironment.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -48,7 +48,7 @@ class LIEF_API DyldEnvironment : public LoadCommand {
std::ostream& print(std::ostream& os) const override;
/// The actual environment variable
- const std::string& value() const {
+ const std::string& value() const LIEF_LIFETIMEBOUND {
return value_;
}
diff --git a/deps/LIEF/include/LIEF/MachO/DyldExportsTrie.hpp b/deps/LIEF/include/LIEF/MachO/DyldExportsTrie.hpp
index e4f261ba1c3..3b646bb1e79 100644
--- a/deps/LIEF/include/LIEF/MachO/DyldExportsTrie.hpp
+++ b/deps/LIEF/include/LIEF/MachO/DyldExportsTrie.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,10 @@
#ifndef LIEF_MACHO_DYLD_EXPORTS_TRIE_H
#define LIEF_MACHO_DYLD_EXPORTS_TRIE_H
#include <memory>
+#include <string>
#include "LIEF/span.hpp"
#include "LIEF/iterators.hpp"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/MachO/LoadCommand.hpp"
@@ -36,7 +38,8 @@ struct linkedit_data_command;
/// Class that represents the LC_DYLD_EXPORTS_TRIE command
///
-/// In recent Mach-O binaries, this command replace the DyldInfo export trie buffer
+/// In recent Mach-O binaries, this command replaces the DyldInfo export trie
+/// buffer
class LIEF_API DyldExportsTrie : public LoadCommand {
friend class BinaryParser;
friend class Builder;
@@ -51,7 +54,8 @@ class LIEF_API DyldExportsTrie : public LoadCommand {
using it_export_info = ref_iterator<export_info_t&, ExportInfo*>;
/// Iterator which outputs const ExportInfo&
- using it_const_export_info = const_ref_iterator<const export_info_t&, ExportInfo*>;
+ using it_const_export_info =
+ const_ref_iterator<const export_info_t&, ExportInfo*>;
DyldExportsTrie();
DyldExportsTrie(const details::linkedit_data_command& cmd);
@@ -81,7 +85,7 @@ class LIEF_API DyldExportsTrie : public LoadCommand {
data_size_ = size;
}
- span<const uint8_t> content() const {
+ span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
return content_;
}
@@ -94,12 +98,12 @@ class LIEF_API DyldExportsTrie : public LoadCommand {
return export_info_;
}
- /// Print the exports trie in a humman-readable way
+ /// Print the exports trie in a human-readable way
std::string show_export_trie() const;
- /// Add an entrie in the current trie.
+ /// Add an entry in the current trie.
/// See also: LIEF::MachO::Binary::add_exported_function
- void add(std::unique_ptr<ExportInfo> info);
+ ExportInfo* add(std::unique_ptr<ExportInfo> info) LIEF_LIFETIMEBOUND;
void accept(Visitor& visitor) const override;
@@ -114,13 +118,13 @@ class LIEF_API DyldExportsTrie : public LoadCommand {
LIEF_LOCAL DyldExportsTrie(const DyldExportsTrie& other);
uint32_t data_offset_ = 0;
- uint32_t data_size_ = 0;
+ uint32_t data_size_ = 0;
- // Raw payload of the DyldChainedFixups.
+ // Raw payload of the DyldExportsTrie.
// This payload is located in the __LINKEDIT segment
span<uint8_t> content_;
- export_info_t export_info_;
+ export_info_t export_info_;
};
}
diff --git a/deps/LIEF/include/LIEF/MachO/DyldInfo.hpp b/deps/LIEF/include/LIEF/MachO/DyldInfo.hpp
index bbd3042337f..addceded3ba 100644
--- a/deps/LIEF/include/LIEF/MachO/DyldInfo.hpp
+++ b/deps/LIEF/include/LIEF/MachO/DyldInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@
#include <ostream>
#include <memory>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/span.hpp"
@@ -66,7 +67,8 @@ class LIEF_API DyldInfo : public LoadCommand {
using it_binding_info = ref_iterator<binding_info_t&, DyldBindingInfo*>;
/// Iterator which outputs const DyldBindingInfo&
- using it_const_binding_info = const_ref_iterator<const binding_info_t&, DyldBindingInfo*>;
+ using it_const_binding_info =
+ const_ref_iterator<const binding_info_t&, DyldBindingInfo*>;
/// Internal container for storing ExportInfo
using export_info_t = std::vector<std::unique_ptr<ExportInfo>>;
@@ -75,57 +77,90 @@ class LIEF_API DyldInfo : public LoadCommand {
using it_export_info = ref_iterator<export_info_t&, ExportInfo*>;
/// Iterator which outputs const ExportInfo&
- using it_const_export_info = const_ref_iterator<const export_info_t&, ExportInfo*>;
+ using it_const_export_info =
+ const_ref_iterator<const export_info_t&, ExportInfo*>;
enum class BINDING_ENCODING_VERSION {
UNKNOWN = 0,
V1,
- V2
+ V2,
};
- enum class REBASE_TYPE: uint64_t {
- POINTER = 1u,
+ enum class REBASE_TYPE : uint64_t {
+ POINTER = 1u,
TEXT_ABSOLUTE32 = 2u,
- TEXT_PCREL32 = 3u,
- THREADED = 102u,
+ TEXT_PCREL32 = 3u,
+ THREADED = 102u,
};
- enum class REBASE_OPCODES: uint8_t {
- DONE = 0x00u, ///< It's finished
- SET_TYPE_IMM = 0x10u, ///< Set type to immediate (lower 4-bits). Used for ordinal numbers from 0-15
- SET_SEGMENT_AND_OFFSET_ULEB = 0x20u, ///< Set segment's index to immediate (lower 4-bits) and segment's offset to following ULEB128 encoding.
- ADD_ADDR_ULEB = 0x30u, ///< Add segment's offset with the following ULEB128 encoding.
- ADD_ADDR_IMM_SCALED = 0x40u, ///< Add segment's offset with immediate scaling
- DO_REBASE_IMM_TIMES = 0x50u, ///< Rebase in the range of ``[segment's offset; segment's offset + immediate * sizeof(ptr)]``
- DO_REBASE_ULEB_TIMES = 0x60u, ///< Same as REBASE_OPCODE_DO_REBASE_IMM_TIMES but *immediate* is replaced with ULEB128 value
- DO_REBASE_ADD_ADDR_ULEB = 0x70u, ///< Rebase and increment segment's offset with following ULEB128 encoding + pointer's size
- DO_REBASE_ULEB_TIMES_SKIPPING_ULEB = 0x80u ///< Rebase and skip several bytes
+ enum class REBASE_OPCODES : uint8_t {
+ /// It's finished.
+ DONE = 0x00u,
+ /// Set type to immediate (lower 4-bits). Used for ordinal numbers from
+ /// 0-15.
+ SET_TYPE_IMM = 0x10u,
+ /// Set segment's index to immediate (lower 4-bits) and segment's offset to
+ /// following ULEB128 encoding.
+ SET_SEGMENT_AND_OFFSET_ULEB = 0x20u,
+ /// Add segment's offset with the following ULEB128 encoding.
+ ADD_ADDR_ULEB = 0x30u,
+ /// Add segment's offset with immediate scaling.
+ ADD_ADDR_IMM_SCALED = 0x40u,
+ /// Rebase in the range of ``[segment's offset; segment's offset +
+ /// immediate * sizeof(ptr)]``.
+ DO_REBASE_IMM_TIMES = 0x50u,
+ /// Same as REBASE_OPCODE_DO_REBASE_IMM_TIMES but *immediate* is replaced
+ /// with ULEB128 value.
+ DO_REBASE_ULEB_TIMES = 0x60u,
+ /// Rebase and increment segment's offset with following ULEB128 encoding +
+ /// pointer's size.
+ DO_REBASE_ADD_ADDR_ULEB = 0x70u,
+ /// Rebase and skip several bytes.
+ DO_REBASE_ULEB_TIMES_SKIPPING_ULEB = 0x80u,
};
/// Opcodes used by Dyld info to bind symbols
- enum class BIND_OPCODES: uint8_t {
- DONE = 0x00u, ///< It's finished
- SET_DYLIB_ORDINAL_IMM = 0x10u, ///< Set ordinal to immediate (lower 4-bits). Used for ordinal numbers from 0-15
- SET_DYLIB_ORDINAL_ULEB = 0x20u, ///< Set ordinal to following ULEB128 encoding. Used for ordinal numbers from 16+
- SET_DYLIB_SPECIAL_IMM = 0x30u, ///< Set ordinal, with 0 or negative number as immediate. the value is sign extended.
- SET_SYMBOL_TRAILING_FLAGS_IMM = 0x40u, ///< Set the following symbol (NULL-terminated char*).
- SET_TYPE_IMM = 0x50u, ///< Set the type to immediate (lower 4-bits). See BIND_TYPES
- SET_ADDEND_SLEB = 0x60u, ///< Set the addend field to the following SLEB128 encoding.
- SET_SEGMENT_AND_OFFSET_ULEB = 0x70u, ///< Set Segment to immediate value, and address to the following SLEB128 encoding
- ADD_ADDR_ULEB = 0x80u, ///< Set the address field to the following SLEB128 encoding.
- DO_BIND = 0x90u, ///< Perform binding of current table row
- DO_BIND_ADD_ADDR_ULEB = 0xA0u, ///< Perform binding, also add following ULEB128 as address
- DO_BIND_ADD_ADDR_IMM_SCALED = 0xB0u, ///< Perform binding, also add immediate (lower 4-bits) using scaling
- DO_BIND_ULEB_TIMES_SKIPPING_ULEB = 0xC0u, ///< Perform binding for several symbols (as following ULEB128), and skip several bytes.
- THREADED = 0xD0u,
-
- THREADED_APPLY = 0xD0u | 0x01u,
+ enum class BIND_OPCODES : uint8_t {
+ /// It's finished.
+ DONE = 0x00u,
+ /// Set ordinal to immediate (lower 4-bits). Used for ordinal numbers from
+ /// 0-15.
+ SET_DYLIB_ORDINAL_IMM = 0x10u,
+ /// Set ordinal to following ULEB128 encoding. Used for ordinal numbers
+ /// from 16+.
+ SET_DYLIB_ORDINAL_ULEB = 0x20u,
+ /// Set ordinal, with 0 or negative number as immediate. The value is sign
+ /// extended.
+ SET_DYLIB_SPECIAL_IMM = 0x30u,
+ /// Set the following symbol (NULL-terminated char*).
+ SET_SYMBOL_TRAILING_FLAGS_IMM = 0x40u,
+ /// Set the type to immediate (lower 4-bits). See BIND_TYPES.
+ SET_TYPE_IMM = 0x50u,
+ /// Set the addend field to the following SLEB128 encoding.
+ SET_ADDEND_SLEB = 0x60u,
+ /// Set Segment to immediate value, and address to the following SLEB128
+ /// encoding.
+ SET_SEGMENT_AND_OFFSET_ULEB = 0x70u,
+ /// Set the address field to the following SLEB128 encoding.
+ ADD_ADDR_ULEB = 0x80u,
+ /// Perform binding of current table row.
+ DO_BIND = 0x90u,
+ /// Perform binding, also add following ULEB128 as address.
+ DO_BIND_ADD_ADDR_ULEB = 0xA0u,
+ /// Perform binding, also add immediate (lower 4-bits) using scaling.
+ DO_BIND_ADD_ADDR_IMM_SCALED = 0xB0u,
+ /// Perform binding for several symbols (as following ULEB128), and skip
+ /// several bytes.
+ DO_BIND_ULEB_TIMES_SKIPPING_ULEB = 0xC0u,
+ THREADED = 0xD0u,
+
+ THREADED_APPLY = 0xD0u | 0x01u,
THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB = 0xD0u | 0x00u,
};
- enum class BIND_SUBOPCODE_THREADED: uint8_t {
+ enum class BIND_SUBOPCODE_THREADED : uint8_t {
SET_BIND_ORDINAL_TABLE_SIZE_ULEB = 0x00u,
- APPLY = 0x01u,
+ APPLY = 0x01u,
};
enum BIND_SYMBOL_FLAGS {
@@ -168,17 +203,17 @@ class LIEF_API DyldInfo : public LoadCommand {
}
/// Return Rebase's opcodes as raw data
- span<const uint8_t> rebase_opcodes() const {
+ span<const uint8_t> rebase_opcodes() const LIEF_LIFETIMEBOUND {
return rebase_opcodes_;
}
- span<uint8_t> rebase_opcodes() {
+ span<uint8_t> rebase_opcodes() LIEF_LIFETIMEBOUND {
return rebase_opcodes_;
}
/// Set new opcodes
void rebase_opcodes(buffer_t raw);
- /// Return the rebase opcodes in a humman-readable way
+ /// Return the rebase opcodes in a human-readable way
std::string show_rebases_opcodes() const;
/// *Bind* information
@@ -191,7 +226,7 @@ class LIEF_API DyldInfo : public LoadCommand {
/// <seg-index, seg-offset, type, symbol-library-ordinal, symbol-name, addend>
/// The opcodes are a compressed way to encode the table by only
/// encoding when a column changes. In addition simple patterns
- /// like for runs of pointers initialzed to the same value can be
+ /// like for runs of pointers initialized to the same value can be
/// encoded in a few bytes.
///
/// @see ``/usr/include/mach-o/loader.h``
@@ -200,17 +235,17 @@ class LIEF_API DyldInfo : public LoadCommand {
}
/// Return Binding's opcodes as raw data
- span<const uint8_t> bind_opcodes() const {
+ span<const uint8_t> bind_opcodes() const LIEF_LIFETIMEBOUND {
return bind_opcodes_;
}
- span<uint8_t> bind_opcodes() {
+ span<uint8_t> bind_opcodes() LIEF_LIFETIMEBOUND {
return bind_opcodes_;
}
/// Set new opcodes
void bind_opcodes(buffer_t raw);
- /// Return the bind opcodes in a humman-readable way
+ /// Return the bind opcodes in a human-readable way
std::string show_bind_opcodes() const;
/// *Weak Bind* information
@@ -235,24 +270,24 @@ class LIEF_API DyldInfo : public LoadCommand {
}
/// Return **Weak** Binding's opcodes as raw data
- span<const uint8_t> weak_bind_opcodes() const {
+ span<const uint8_t> weak_bind_opcodes() const LIEF_LIFETIMEBOUND {
return weak_bind_opcodes_;
}
- span<uint8_t> weak_bind_opcodes() {
+ span<uint8_t> weak_bind_opcodes() LIEF_LIFETIMEBOUND {
return weak_bind_opcodes_;
}
/// Set new opcodes
void weak_bind_opcodes(buffer_t raw);
- /// Return the bind opcodes in a humman-readable way
+ /// Return the bind opcodes in a human-readable way
std::string show_weak_bind_opcodes() const;
/// *Lazy Bind* information
///
/// Some uses of external symbols do not need to be bound immediately.
/// Instead they can be lazily bound on first use. The lazy_bind
- /// are contains a stream of BIND opcodes to bind all lazy symbols.
+ /// area contains a stream of BIND opcodes to bind all lazy symbols.
/// Normal use is that dyld ignores the lazy_bind section when
/// loading an image. Instead the static linker arranged for the
/// lazy pointer to initially point to a helper function which
@@ -267,25 +302,25 @@ class LIEF_API DyldInfo : public LoadCommand {
}
/// Return **Lazy** Binding's opcodes as raw data
- span<const uint8_t> lazy_bind_opcodes() const {
+ span<const uint8_t> lazy_bind_opcodes() const LIEF_LIFETIMEBOUND {
return lazy_bind_opcodes_;
}
- span<uint8_t> lazy_bind_opcodes() {
+ span<uint8_t> lazy_bind_opcodes() LIEF_LIFETIMEBOUND {
return lazy_bind_opcodes_;
}
/// Set new opcodes
void lazy_bind_opcodes(buffer_t raw);
- /// Return the lazy opcodes in a humman-readable way
+ /// Return the lazy opcodes in a human-readable way
std::string show_lazy_bind_opcodes() const;
/// Iterator over BindingInfo entries
- it_binding_info bindings() {
+ it_binding_info bindings() LIEF_LIFETIMEBOUND {
return binding_info_;
}
- it_const_binding_info bindings() const {
+ it_const_binding_info bindings() const LIEF_LIFETIMEBOUND {
return binding_info_;
}
@@ -320,25 +355,25 @@ class LIEF_API DyldInfo : public LoadCommand {
}
/// Iterator over ExportInfo entries
- it_export_info exports() {
+ it_export_info exports() LIEF_LIFETIMEBOUND {
return export_info_;
}
- it_const_export_info exports() const {
+ it_const_export_info exports() const LIEF_LIFETIMEBOUND {
return export_info_;
}
/// Return Export's trie as raw data
- span<const uint8_t> export_trie() const {
+ span<const uint8_t> export_trie() const LIEF_LIFETIMEBOUND {
return export_trie_;
}
- span<uint8_t> export_trie() {
+ span<uint8_t> export_trie() LIEF_LIFETIMEBOUND {
return export_trie_;
}
/// Set new trie
void export_trie(buffer_t raw);
- /// Return the export trie in a humman-readable way
+ /// Return the export trie in a human-readable way
std::string show_export_trie() const;
void rebase(const info_t& info) {
@@ -361,7 +396,7 @@ class LIEF_API DyldInfo : public LoadCommand {
rebase_ = {offset, std::get<1>(rebase())};
}
void set_rebase_size(uint32_t size) {
- rebase_ = {std::get<0>(rebase()), size};
+ rebase_ = {std::get<0>(rebase()), size};
}
void set_bind_offset(uint32_t offset) {
@@ -393,7 +428,7 @@ class LIEF_API DyldInfo : public LoadCommand {
export_ = {std::get<0>(export_info()), size};
}
- void add(std::unique_ptr<ExportInfo> info);
+ ExportInfo* add(std::unique_ptr<ExportInfo> info) LIEF_LIFETIMEBOUND;
void accept(Visitor& visitor) const override;
@@ -406,45 +441,57 @@ class LIEF_API DyldInfo : public LoadCommand {
}
private:
- using bind_container_t = std::set<DyldBindingInfo*, std::function<bool(DyldBindingInfo*, DyldBindingInfo*)>>;
+ using bind_container_t =
+ std::set<DyldBindingInfo*,
+ std::function<bool(DyldBindingInfo*, DyldBindingInfo*)>>;
- LIEF_LOCAL void show_bindings(std::ostream& os, span<const uint8_t> buffer, bool is_lazy = false) const;
+ LIEF_LOCAL void show_bindings(std::ostream& os, span<const uint8_t> buffer,
+ bool is_lazy = false) const;
LIEF_LOCAL void show_trie(std::ostream& output, std::string output_prefix,
BinaryStream& stream, uint64_t start, uint64_t end,
const std::string& prefix) const;
- LIEF_LOCAL DyldInfo& update_standard_bindings(const bind_container_t& bindings, vector_iostream& stream);
- LIEF_LOCAL DyldInfo& update_standard_bindings_v1(const bind_container_t& bindings, vector_iostream& stream);
- LIEF_LOCAL DyldInfo& update_standard_bindings_v2(const bind_container_t& bindings,
- std::vector<RelocationDyld*> rebases, vector_iostream& stream);
-
- LIEF_LOCAL DyldInfo& update_weak_bindings(const bind_container_t& bindings, vector_iostream& stream);
- LIEF_LOCAL DyldInfo& update_lazy_bindings(const bind_container_t& bindings, vector_iostream& stream);
+ LIEF_LOCAL DyldInfo& update_standard_bindings(const bind_container_t& bindings,
+ vector_iostream& stream);
+ LIEF_LOCAL DyldInfo&
+ update_standard_bindings_v1(const bind_container_t& bindings,
+ vector_iostream& stream);
+ LIEF_LOCAL DyldInfo&
+ update_standard_bindings_v2(const bind_container_t& bindings,
+ std::vector<RelocationDyld*> rebases,
+ vector_iostream& stream);
+
+ LIEF_LOCAL DyldInfo& update_weak_bindings(const bind_container_t& bindings,
+ vector_iostream& stream);
+ LIEF_LOCAL DyldInfo& update_lazy_bindings(const bind_container_t& bindings,
+ vector_iostream& stream);
LIEF_LOCAL DyldInfo& update_rebase_info(vector_iostream& stream);
- LIEF_LOCAL DyldInfo& update_binding_info(vector_iostream& stream, details::dyld_info_command& cmd);
+ LIEF_LOCAL DyldInfo& update_binding_info(vector_iostream& stream,
+ details::dyld_info_command& cmd);
LIEF_LOCAL DyldInfo& update_export_trie(vector_iostream& stream);
- info_t rebase_;
+ info_t rebase_;
span<uint8_t> rebase_opcodes_;
- info_t bind_;
+ info_t bind_;
span<uint8_t> bind_opcodes_;
- info_t weak_bind_;
+ info_t weak_bind_;
span<uint8_t> weak_bind_opcodes_;
- info_t lazy_bind_;
+ info_t lazy_bind_;
span<uint8_t> lazy_bind_opcodes_;
- info_t export_;
+ info_t export_;
span<uint8_t> export_trie_;
- export_info_t export_info_;
+ export_info_t export_info_;
binding_info_t binding_info_;
- BINDING_ENCODING_VERSION binding_encoding_version_ = BINDING_ENCODING_VERSION::UNKNOWN;
+ BINDING_ENCODING_VERSION binding_encoding_version_ =
+ BINDING_ENCODING_VERSION::UNKNOWN;
Binary* binary_ = nullptr;
};
diff --git a/deps/LIEF/include/LIEF/MachO/DylibCommand.hpp b/deps/LIEF/include/LIEF/MachO/DylibCommand.hpp
index bf4627c767a..cf73d9cbae0 100644
--- a/deps/LIEF/include/LIEF/MachO/DylibCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/DylibCommand.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -39,9 +39,9 @@ class LIEF_API DylibCommand : public LoadCommand {
/// Helper to convert an integer into a version array
static version_t int2version(uint32_t version) {
return {{
- static_cast<uint16_t>(version >> 16),
- static_cast<uint16_t>((version >> 8) & 0xFF),
- static_cast<uint16_t>(version & 0xFF),
+ static_cast<uint16_t>(version >> 16),
+ static_cast<uint16_t>((version >> 8) & 0xFF),
+ static_cast<uint16_t>(version & 0xFF),
}};
}
@@ -51,40 +51,37 @@ class LIEF_API DylibCommand : public LoadCommand {
}
/// Factory function to generate a LC_LOAD_WEAK_DYLIB library
- static DylibCommand weak_dylib(const std::string& name,
- uint32_t timestamp = 0,
- uint32_t current_version = 0,
- uint32_t compat_version = 0);
+ static DylibCommand weak_dylib(const std::string& name, uint32_t timestamp = 0,
+ uint32_t current_version = 0,
+ uint32_t compat_version = 0);
/// Factory function to generate a LC_ID_DYLIB library
- static DylibCommand id_dylib(const std::string& name,
- uint32_t timestamp = 0,
- uint32_t current_version = 0,
- uint32_t compat_version = 0);
+ static DylibCommand id_dylib(const std::string& name, uint32_t timestamp = 0,
+ uint32_t current_version = 0,
+ uint32_t compat_version = 0);
/// Factory function to generate a LC_LOAD_DYLIB library
- static DylibCommand load_dylib(const std::string& name,
- uint32_t timestamp = 2,
- uint32_t current_version = 0,
- uint32_t compat_version = 0);
+ static DylibCommand load_dylib(const std::string& name, uint32_t timestamp = 2,
+ uint32_t current_version = 0,
+ uint32_t compat_version = 0);
/// Factory function to generate a LC_REEXPORT_DYLIB library
static DylibCommand reexport_dylib(const std::string& name,
- uint32_t timestamp = 0,
- uint32_t current_version = 0,
- uint32_t compat_version = 0);
+ uint32_t timestamp = 0,
+ uint32_t current_version = 0,
+ uint32_t compat_version = 0);
/// Factory function to generate a LC_LOAD_UPWARD_DYLIB library
static DylibCommand load_upward_dylib(const std::string& name,
- uint32_t timestamp = 0,
- uint32_t current_version = 0,
- uint32_t compat_version = 0);
+ uint32_t timestamp = 0,
+ uint32_t current_version = 0,
+ uint32_t compat_version = 0);
/// Factory function to generate a LC_LAZY_LOAD_DYLIB library
static DylibCommand lazy_load_dylib(const std::string& name,
- uint32_t timestamp = 0,
- uint32_t current_version = 0,
- uint32_t compat_version = 0);
+ uint32_t timestamp = 0,
+ uint32_t current_version = 0,
+ uint32_t compat_version = 0);
public:
DylibCommand() = default;
@@ -100,7 +97,7 @@ class LIEF_API DylibCommand : public LoadCommand {
}
/// Library name
- const std::string& name() const {
+ const std::string& name() const LIEF_LIFETIMEBOUND {
return name_;
}
@@ -143,19 +140,18 @@ class LIEF_API DylibCommand : public LoadCommand {
static bool classof(const LoadCommand* cmd) {
const LoadCommand::TYPE type = cmd->command();
- return type == LoadCommand::TYPE::LOAD_WEAK_DYLIB ||
+ return type == LoadCommand::TYPE::LOAD_UPWARD_DYLIB ||
+ type == LoadCommand::TYPE::LAZY_LOAD_DYLIB ||
+ type == LoadCommand::TYPE::LOAD_WEAK_DYLIB ||
type == LoadCommand::TYPE::ID_DYLIB ||
type == LoadCommand::TYPE::LOAD_DYLIB ||
- type == LoadCommand::TYPE::LOAD_UPWARD_DYLIB ||
- type == LoadCommand::TYPE::REEXPORT_DYLIB ||
- type == LoadCommand::TYPE::LOAD_UPWARD_DYLIB ||
- type == LoadCommand::TYPE::LAZY_LOAD_DYLIB;
+ type == LoadCommand::TYPE::REEXPORT_DYLIB;
}
private:
- LIEF_LOCAL static DylibCommand create(
- LoadCommand::TYPE type, const std::string& name, uint32_t timestamp,
- uint32_t current_version, uint32_t compat_version);
+ LIEF_LOCAL static DylibCommand
+ create(LoadCommand::TYPE type, const std::string& name, uint32_t timestamp,
+ uint32_t current_version, uint32_t compat_version);
std::string name_;
uint32_t name_offset_ = 0;
diff --git a/deps/LIEF/include/LIEF/MachO/DylinkerCommand.hpp b/deps/LIEF/include/LIEF/MachO/DylinkerCommand.hpp
index 4b2bb40e8e9..a7016f3995e 100644
--- a/deps/LIEF/include/LIEF/MachO/DylinkerCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/DylinkerCommand.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -49,7 +49,7 @@ class LIEF_API DylinkerCommand : public LoadCommand {
std::ostream& print(std::ostream& os) const override;
/// Path to the linker (or loader)
- const std::string& name() const {
+ const std::string& name() const LIEF_LIFETIMEBOUND {
return name_;
}
diff --git a/deps/LIEF/include/LIEF/MachO/DynamicSymbolCommand.hpp b/deps/LIEF/include/LIEF/MachO/DynamicSymbolCommand.hpp
index 12911022d0c..543e51822be 100644
--- a/deps/LIEF/include/LIEF/MachO/DynamicSymbolCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/DynamicSymbolCommand.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -142,8 +142,8 @@ class LIEF_API DynamicSymbolCommand : public LoadCommand {
/// Byte offset from the start of the file to the indirect symbol table data.
///
- /// Indirect symbol table is used by the loader to speed-up symbol resolution during
- /// the *lazy binding* process
+ /// Indirect symbol table is used by the loader to speed-up symbol resolution
+ /// during the *lazy binding* process
///
/// References:
/// * dyld-519.2.1/src/ImageLoaderMachOCompressed.cpp
@@ -252,11 +252,11 @@ class LIEF_API DynamicSymbolCommand : public LoadCommand {
}
/// Iterator over the indirect symbols indexed by this command
- it_indirect_symbols indirect_symbols() {
+ it_indirect_symbols indirect_symbols() LIEF_LIFETIMEBOUND {
return indirect_symbols_;
}
- it_const_indirect_symbols indirect_symbols() const {
+ it_const_indirect_symbols indirect_symbols() const LIEF_LIFETIMEBOUND {
return indirect_symbols_;
}
diff --git a/deps/LIEF/include/LIEF/MachO/EncryptionInfo.hpp b/deps/LIEF/include/LIEF/MachO/EncryptionInfo.hpp
index 031f7930418..7dc694bd328 100644
--- a/deps/LIEF/include/LIEF/MachO/EncryptionInfo.hpp
+++ b/deps/LIEF/include/LIEF/MachO/EncryptionInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -56,7 +56,7 @@ class LIEF_API EncryptionInfo : public LoadCommand {
return csize_;
}
- /// The encryption system. 0 means no encrypted
+ /// The encryption system. 0 means not encrypted
uint32_t crypt_id() const {
return cid_;
}
diff --git a/deps/LIEF/include/LIEF/MachO/EnumToString.hpp b/deps/LIEF/include/LIEF/MachO/EnumToString.hpp
index dd9f7a198e6..31356cc747b 100644
--- a/deps/LIEF/include/LIEF/MachO/EnumToString.hpp
+++ b/deps/LIEF/include/LIEF/MachO/EnumToString.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/MachO/ExportInfo.hpp b/deps/LIEF/include/LIEF/MachO/ExportInfo.hpp
index 536e983fa00..55ac191f740 100644
--- a/deps/LIEF/include/LIEF/MachO/ExportInfo.hpp
+++ b/deps/LIEF/include/LIEF/MachO/ExportInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -41,17 +41,17 @@ class LIEF_API ExportInfo : public Object {
friend class Binary;
public:
- enum class KIND: uint64_t {
- REGULAR = 0x00u,
+ enum class KIND : uint64_t {
+ REGULAR = 0x00u,
THREAD_LOCAL_KIND = 0x01u,
- ABSOLUTE_KIND = 0x02u
+ ABSOLUTE_KIND = 0x02u,
};
- enum class FLAGS: uint64_t {
- WEAK_DEFINITION = 0x04u,
- REEXPORT = 0x08u,
- STUB_AND_RESOLVER = 0x10u,
- STATIC_RESOLVER = 0x20u,
+ enum class FLAGS : uint64_t {
+ WEAK_DEFINITION = 0x04u,
+ REEXPORT = 0x08u,
+ STUB_AND_RESOLVER = 0x10u,
+ STATIC_RESOLVER = 0x20u,
};
using flag_list_t = std::vector<FLAGS>;
@@ -60,8 +60,7 @@ class LIEF_API ExportInfo : public Object {
ExportInfo(uint64_t address, uint64_t flags, uint64_t offset = 0) :
node_offset_(offset),
flags_(flags),
- address_(address)
- {}
+ address_(address) {}
ExportInfo& operator=(ExportInfo copy);
ExportInfo(const ExportInfo& copy);
@@ -112,28 +111,28 @@ class LIEF_API ExportInfo : public Object {
}
/// MachO::Symbol associated with this export or a nullptr if no symbol
- const Symbol* symbol() const {
+ const Symbol* symbol() const LIEF_LIFETIMEBOUND {
return symbol_;
}
- Symbol* symbol() {
+ Symbol* symbol() LIEF_LIFETIMEBOUND {
return symbol_;
}
/// If the export is a ExportInfo::FLAGS::REEXPORT,
/// this returns the (optional) MachO::Symbol
- Symbol* alias() {
+ Symbol* alias() LIEF_LIFETIMEBOUND {
return alias_;
}
- const Symbol* alias() const {
+ const Symbol* alias() const LIEF_LIFETIMEBOUND {
return alias_;
}
/// If the export is a ExportInfo::FLAGS::REEXPORT,
/// this returns the (optional) library (MachO::DylibCommand)
- DylibCommand* alias_library() {
+ DylibCommand* alias_library() LIEF_LIFETIMEBOUND {
return alias_location_;
}
- const DylibCommand* alias_library() const {
+ const DylibCommand* alias_library() const LIEF_LIFETIMEBOUND {
return alias_location_;
}
@@ -141,7 +140,8 @@ class LIEF_API ExportInfo : public Object {
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const ExportInfo& export_info);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const ExportInfo& export_info);
private:
uint64_t node_offset_ = 0;
diff --git a/deps/LIEF/include/LIEF/MachO/FatBinary.hpp b/deps/LIEF/include/LIEF/MachO/FatBinary.hpp
index 59afbb7564b..5916a7c3d3a 100644
--- a/deps/LIEF/include/LIEF/MachO/FatBinary.hpp
+++ b/deps/LIEF/include/LIEF/MachO/FatBinary.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,17 +31,15 @@ class Parser;
class Builder;
class Binary;
-/// Class which represent a Mach-O (fat) binary
+/// Class which represents a Mach-O (fat) binary
/// This object is also used for representing Mach-O binaries that are **NOT FAT**
class LIEF_API FatBinary {
-
friend class LIEF::Parser;
friend class Parser;
friend class Builder;
public:
-
- /// Internal containter used to store Binary objects within a Fat Mach-O
+ /// Internal container used to store Binary objects within a Fat Mach-O
using binaries_t = std::vector<std::unique_ptr<Binary>>;
/// Iterator that outputs Binary&
@@ -53,6 +51,13 @@ class LIEF_API FatBinary {
FatBinary(const FatBinary&) = delete;
FatBinary& operator=(const FatBinary&) = delete;
+ /// Create a FatBinary object from the provided list of Binary objects.
+ ///
+ /// The binaries **must** target different architectures (i.e. unique
+ /// CPU type and subtype). If a duplicate architecture is detected,
+ /// this function returns a nullptr.
+ static std::unique_ptr<FatBinary> create(binaries_t binaries);
+
virtual ~FatBinary();
/// Number of MachO::Binary wrapped by this object
@@ -65,10 +70,10 @@ class LIEF_API FatBinary {
return binaries_.empty();
}
- it_binaries begin() {
+ it_binaries begin() LIEF_LIFETIMEBOUND {
return binaries_;
}
- it_const_binaries begin() const {
+ it_const_binaries begin() const LIEF_LIFETIMEBOUND {
return binaries_;
}
@@ -80,22 +85,43 @@ class LIEF_API FatBinary {
return it_const_binaries(binaries_).end();
}
- void release_all_binaries();
+ void release_all_binaries() {
+ for (auto& bin : binaries_) {
+ bin.release(); // NOLINT(bugprone-unused-return-value)
+ }
+ }
- /// Get a pointer to the last MachO::Binary object presents in this Fat Binary.
- /// It returns a nullptr if no binary are present.
+ /// Get a pointer to the last MachO::Binary object present in this Fat Binary.
+ /// It returns a nullptr if no binaries are present.
std::unique_ptr<Binary> pop_back();
/// Get a pointer to the MachO::Binary specified by the ``index``.
/// It returns a nullptr if the binary does not exist at the given index.
- Binary* at(size_t index);
- const Binary* at(size_t index) const;
+ Binary* at(size_t index) LIEF_LIFETIMEBOUND {
+ return const_cast<Binary*>(static_cast<const FatBinary*>(this)->at(index));
+ }
+
+ const Binary* at(size_t index) const LIEF_LIFETIMEBOUND {
+ if (index >= size()) {
+ return nullptr;
+ }
+ return binaries_[index].get();
+ }
+
+ Binary* back() {
+ return const_cast<Binary*>(static_cast<const FatBinary*>(this)->back());
+ }
+ const Binary* back() const {
+ return binaries_.empty() ? nullptr : binaries_.back().get();
+ }
- Binary* back();
- const Binary* back() const;
+ Binary* front() {
+ return const_cast<Binary*>(static_cast<const FatBinary*>(this)->front());
+ }
- Binary* front();
- const Binary* front() const;
+ const Binary* front() const {
+ return binaries_.empty() ? nullptr : binaries_.front().get();
+ }
Binary* operator[](size_t index) {
return at(index);
@@ -107,7 +133,7 @@ class LIEF_API FatBinary {
/// Extract a MachO::Binary object. Gives ownership to the caller, and
/// remove it from this FatBinary object.
///
- /// @warning: this invalidates any previously hold iterator!
+ /// @warning This invalidates any previously held iterator!
std::unique_ptr<Binary> take(size_t index);
/// Take the underlying MachO::Binary that matches the given architecture
@@ -118,10 +144,26 @@ class LIEF_API FatBinary {
/// @param filename Path to write the reconstructed binary
void write(const std::string& filename);
- /// Reconstruct the Fat binary object and return his content as bytes
+ /// Reconstruct the Fat binary object and return its content as bytes
std::vector<uint8_t> raw();
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const FatBinary& fatbinary);
+ Binary* get(Header::CPU_TYPE cpu) LIEF_LIFETIMEBOUND {
+ return const_cast<Binary*>(static_cast<const FatBinary*>(this)->get(cpu));
+ }
+
+ /// Gets a pointer to the MachO::Binary that matches the given architecture
+ const Binary* get(Header::CPU_TYPE cpu) const LIEF_LIFETIMEBOUND;
+
+ Binary* operator[](Header::CPU_TYPE cpu) {
+ return get(cpu);
+ }
+
+ const Binary* operator[](Header::CPU_TYPE cpu) const {
+ return get(cpu);
+ }
+
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const FatBinary& fatbinary);
private:
LIEF_LOCAL FatBinary();
diff --git a/deps/LIEF/include/LIEF/MachO/FilesetCommand.hpp b/deps/LIEF/include/LIEF/MachO/FilesetCommand.hpp
index f4fcde6a2ec..1854e54d1d6 100644
--- a/deps/LIEF/include/LIEF/MachO/FilesetCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/FilesetCommand.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -40,8 +40,7 @@ class LIEF_API FilesetCommand : public LoadCommand {
FilesetCommand() = default;
FilesetCommand(const details::fileset_entry_command& command);
FilesetCommand(std::string name) :
- name_(std::move(name))
- {}
+ name_(std::move(name)) {}
FilesetCommand& operator=(FilesetCommand copy);
FilesetCommand(const FilesetCommand& copy);
@@ -71,11 +70,11 @@ class LIEF_API FilesetCommand : public LoadCommand {
/// Return a pointer on the LIEF::MachO::Binary associated
/// with this entry
- const Binary* binary() const {
+ const Binary* binary() const LIEF_LIFETIMEBOUND {
return binary_;
}
- Binary* binary() {
+ Binary* binary() LIEF_LIFETIMEBOUND {
return binary_;
}
diff --git a/deps/LIEF/include/LIEF/MachO/FunctionStarts.hpp b/deps/LIEF/include/LIEF/MachO/FunctionStarts.hpp
index 793cd7a3e08..7af1f4cd600 100644
--- a/deps/LIEF/include/LIEF/MachO/FunctionStarts.hpp
+++ b/deps/LIEF/include/LIEF/MachO/FunctionStarts.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
#include <vector>
#include <ostream>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/span.hpp"
@@ -51,7 +52,8 @@ class LIEF_API FunctionStarts : public LoadCommand {
return std::unique_ptr<FunctionStarts>(new FunctionStarts(*this));
}
- /// Offset in the ``__LINKEDIT`` SegmentCommand where *start functions* are located
+ /// Offset in the ``__LINKEDIT`` SegmentCommand where *start functions* are
+ /// located
uint32_t data_offset() const {
return data_offset_;
}
@@ -63,14 +65,15 @@ class LIEF_API FunctionStarts : public LoadCommand {
/// Addresses of every function entry point in the executable.
///
- /// This allows functions to exist for which there are no entries in the symbol table.
+ /// This allows functions to exist for which there are no entries in the symbol
+ /// table.
///
/// @warning The address is relative to the ``__TEXT`` segment
- const std::vector<uint64_t>& functions() const {
+ const std::vector<uint64_t>& functions() const LIEF_LIFETIMEBOUND {
return functions_;
}
- std::vector<uint64_t>& functions() {
+ std::vector<uint64_t>& functions() LIEF_LIFETIMEBOUND {
return functions_;
}
@@ -90,11 +93,11 @@ class LIEF_API FunctionStarts : public LoadCommand {
functions_ = std::move(funcs);
}
- span<const uint8_t> content() const {
+ span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
return content_;
}
- span<uint8_t> content() {
+ span<uint8_t> content() LIEF_LIFETIMEBOUND {
return content_;
}
@@ -107,6 +110,7 @@ class LIEF_API FunctionStarts : public LoadCommand {
static bool classof(const LoadCommand* cmd) {
return cmd->command() == LoadCommand::TYPE::FUNCTION_STARTS;
}
+
private:
uint32_t data_offset_ = 0;
uint32_t data_size_ = 0;
diff --git a/deps/LIEF/include/LIEF/MachO/FunctionVariantFixups.hpp b/deps/LIEF/include/LIEF/MachO/FunctionVariantFixups.hpp
index 988c11bf5f9..dc93393e2bc 100644
--- a/deps/LIEF/include/LIEF/MachO/FunctionVariantFixups.hpp
+++ b/deps/LIEF/include/LIEF/MachO/FunctionVariantFixups.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,35 +15,200 @@
*/
#ifndef LIEF_MACHO_FUNCTION_VARIANT_FIXUPS_COMMAND_H
#define LIEF_MACHO_FUNCTION_VARIANT_FIXUPS_COMMAND_H
+#include <vector>
#include <ostream>
#include "LIEF/visibility.h"
+#include "LIEF/span.hpp"
+#include "LIEF/iterators.hpp"
#include "LIEF/MachO/LoadCommand.hpp"
namespace LIEF {
+class SpanStream;
+
namespace MachO {
class BinaryParser;
class LinkEdit;
+class SegmentCommand;
namespace details {
struct linkedit_data_command;
+
+// clang-format off
+//
+// On-disk entry of a `LC_FUNCTION_VARIANT_FIXUPS` payload
+// (mirror of dyld's `FunctionVariantFixups::InternalFixup`)
+struct function_variant_fixup_t {
+ uint32_t seg_offset;
+ uint32_t seg_index : 4,
+ variant_index : 8,
+ pac_auth : 1,
+ pac_address : 1,
+ pac_key : 2,
+ pac_diversity : 16;
+};
+// clang-format on
}
-/// Class which represents the `LC_FUNCTION_VARIANT_FIXUPS` command
+/// Class which represents the `LC_FUNCTION_VARIANT_FIXUPS` command.
+///
+/// This command contains the relocations that must be applied to the GOT-like
+/// slots associated with a FunctionVariants table. At runtime, `dyld` resolves
+/// each slot to the best implementation and (re-)signs it according to the
+/// pointer-authentication information.
class LIEF_API FunctionVariantFixups : public LoadCommand {
friend class BinaryParser;
friend class LinkEdit;
public:
+ /// A single relocation associated with a function-variant. It mirrors the
+ /// `FunctionVariantFixups::InternalFixup` structure used by `dyld` and
+ /// describes a slot that must be fixed up to point to the variant referenced by
+ /// variant_index().
+ class LIEF_API Fixup {
+ public:
+ Fixup() = default;
+ Fixup(uint32_t seg_offset, uint32_t seg_index, uint32_t variant_index,
+ bool pac_auth, bool pac_address, uint8_t pac_key,
+ uint16_t pac_diversity) :
+ seg_offset_(seg_offset),
+ seg_index_(seg_index),
+ variant_index_(variant_index),
+ pac_auth_(pac_auth),
+ pac_address_(pac_address),
+ pac_key_(pac_key),
+ pac_diversity_(pac_diversity) {}
+
+ Fixup(const details::function_variant_fixup_t& raw);
+
+ Fixup(const Fixup&) = default;
+ Fixup& operator=(const Fixup&) = default;
+
+ Fixup(Fixup&&) noexcept = default;
+ Fixup& operator=(Fixup&&) noexcept = default;
+
+ ~Fixup() = default;
+
+ /// Offset of the slot to fix up, relative to the segment designated by
+ /// seg_index()
+ uint32_t seg_offset() const {
+ return seg_offset_;
+ }
+
+ /// Index of the segment that owns the slot to fix up
+ uint32_t seg_index() const {
+ return seg_index_;
+ }
+
+ /// Index of the FunctionVariants runtime table used to resolve the slot
+ uint32_t variant_index() const {
+ return variant_index_;
+ }
+
+ /// Whether the slot is signed with pointer authentication (arm64e)
+ bool pac_auth() const {
+ return pac_auth_;
+ }
+
+ /// Whether the pointer-authentication signature mixes the storage address
+ /// (address diversity)
+ bool pac_address() const {
+ return pac_address_;
+ }
+
+ /// Pointer-authentication key used to sign the slot
+ uint8_t pac_key() const {
+ return pac_key_;
+ }
+
+ /// Pointer-authentication diversity (discriminator) of the slot
+ uint16_t pac_diversity() const {
+ return pac_diversity_;
+ }
+
+ /// SegmentCommand referenced by seg_index() if it could be resolved
+ SegmentCommand* segment() {
+ return segment_;
+ }
+
+ const SegmentCommand* segment() const {
+ return segment_;
+ }
+
+ void seg_offset(uint32_t value) {
+ seg_offset_ = value;
+ }
+
+ void seg_index(uint32_t value) {
+ seg_index_ = value;
+ }
+
+ void variant_index(uint32_t value) {
+ variant_index_ = value;
+ }
+
+ void pac_auth(bool value) {
+ pac_auth_ = value;
+ }
+
+ void pac_address(bool value) {
+ pac_address_ = value;
+ }
+
+ void pac_key(uint8_t value) {
+ pac_key_ = value;
+ }
+
+ void pac_diversity(uint16_t value) {
+ pac_diversity_ = value;
+ }
+
+ void segment(SegmentCommand& seg) {
+ segment_ = &seg;
+ }
+
+ std::string to_string() const;
+
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const Fixup& fixup) {
+ os << fixup.to_string();
+ return os;
+ }
+
+ private:
+ uint32_t seg_offset_ = 0;
+ uint32_t seg_index_ = 0;
+ uint32_t variant_index_ = 0;
+ bool pac_auth_ = false;
+ bool pac_address_ = false;
+ uint8_t pac_key_ = 0;
+ uint16_t pac_diversity_ = 0;
+ SegmentCommand* segment_ = nullptr;
+ };
+
+ using fixups_t = std::vector<Fixup>;
+
+ /// Iterator that outputs Fixup&
+ using it_fixups = ref_iterator<fixups_t&>;
+
+ /// Iterator that outputs const Fixup&
+ using it_const_fixups = const_ref_iterator<const fixups_t&>;
+
FunctionVariantFixups() = default;
+
+ FunctionVariantFixups(FunctionVariantFixups&&) noexcept = default;
+ FunctionVariantFixups& operator=(FunctionVariantFixups&&) noexcept = default;
+
FunctionVariantFixups(const details::linkedit_data_command& cmd);
FunctionVariantFixups& operator=(const FunctionVariantFixups& copy) = default;
FunctionVariantFixups(const FunctionVariantFixups& copy) = default;
std::unique_ptr<LoadCommand> clone() const override {
- return std::unique_ptr<FunctionVariantFixups>(new FunctionVariantFixups(*this));
+ return std::unique_ptr<FunctionVariantFixups>(
+ new FunctionVariantFixups(*this)
+ );
}
/// Offset in the `__LINKEDIT` SegmentCommand where the payload starts
@@ -64,14 +229,30 @@ class LIEF_API FunctionVariantFixups : public LoadCommand {
data_size_ = size;
}
- span<const uint8_t> content() const {
+ /// Return the data slice in the `__LINKEDIT` segment referenced by
+ /// data_offset and data_size
+ span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
return content_;
}
- span<uint8_t> content() {
+ span<uint8_t> content() LIEF_LIFETIMEBOUND {
return content_;
}
+ /// Iterator over the different Fixup entries
+ it_fixups fixups() LIEF_LIFETIMEBOUND {
+ return fixups_;
+ }
+
+ it_const_fixups fixups() const LIEF_LIFETIMEBOUND {
+ return fixups_;
+ }
+
+ /// Append a new Fixup
+ FunctionVariantFixups& add(Fixup fixup) {
+ fixups_.push_back(fixup);
+ return *this;
+ }
~FunctionVariantFixups() override = default;
@@ -81,10 +262,13 @@ class LIEF_API FunctionVariantFixups : public LoadCommand {
return cmd->command() == LoadCommand::TYPE::FUNCTION_VARIANT_FIXUPS;
}
+ LIEF_LOCAL static std::vector<Fixup> parse_payload(SpanStream& stream);
+
private:
uint32_t data_offset_ = 0;
uint32_t data_size_ = 0;
span<uint8_t> content_;
+ std::vector<Fixup> fixups_;
};
}
diff --git a/deps/LIEF/include/LIEF/MachO/FunctionVariants.hpp b/deps/LIEF/include/LIEF/MachO/FunctionVariants.hpp
index b3d2aa4eb35..a52333a2d4e 100644
--- a/deps/LIEF/include/LIEF/MachO/FunctionVariants.hpp
+++ b/deps/LIEF/include/LIEF/MachO/FunctionVariants.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
#include <vector>
#include <ostream>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/errors.hpp"
#include "LIEF/iterators.hpp"
@@ -34,7 +35,16 @@ class LinkEdit;
namespace details {
struct linkedit_data_command;
-struct runtime_table_entry_t;
+
+// clang-format off
+// On-disk entry of a `LC_FUNCTION_VARIANTS` runtime table
+struct runtime_table_entry_t {
+ uint32_t impl : 31,
+ another_table : 1;
+ uint8_t flag_bit_nums[4];
+};
+// clang-format on
+
}
/// Class representing the `LC_FUNCTION_VARIANTS` load command.
@@ -64,13 +74,16 @@ class LIEF_API FunctionVariants : public LoadCommand {
/// This class exposes information about a given implementation.
class LIEF_API RuntimeTableEntry {
public:
+ /// The implementation address/index is encoded on 31 bits
+ static constexpr uint32_t MAX_IMPL = (uint32_t(1) << 31) - 1;
+
static constexpr uint32_t F_BIT = 20;
static constexpr uint32_t F_MASK = (uint32_t(1) << F_BIT) - 1;
static constexpr uint32_t F_PER_PROCESS = uint32_t(1) << F_BIT;
static constexpr uint32_t F_SYSTEM_WIDE = uint32_t(2) << F_BIT;
- static constexpr uint32_t F_ARM64 = uint32_t(3) << F_BIT;
- static constexpr uint32_t F_X86_64 = uint32_t(4) << F_BIT;
+ static constexpr uint32_t F_ARM64 = uint32_t(3) << F_BIT;
+ static constexpr uint32_t F_X86_64 = uint32_t(4) << F_BIT;
/// Flags describing the target platform, environment, or architecture
/// for a given function implementation.
@@ -80,21 +93,21 @@ class LIEF_API FunctionVariants : public LoadCommand {
enum class FLAGS : uint32_t {
UNKNOWN = 0,
- #define FUNCTION_VARIANT_FLAG(name, value, _) name = (value | F_ARM64),
- #include "LIEF/MachO/FunctionVariants/Arm64.def"
- #undef FUNCTION_VARIANT_FLAG
+#define FUNCTION_VARIANT_FLAG(name, value, _) name = (value | F_ARM64),
+#include "LIEF/MachO/FunctionVariants/Arm64.def"
+#undef FUNCTION_VARIANT_FLAG
- #define FUNCTION_VARIANT_FLAG(name, value, _) name = (value | F_X86_64),
- #include "LIEF/MachO/FunctionVariants/X86_64.def"
- #undef FUNCTION_VARIANT_FLAG
+#define FUNCTION_VARIANT_FLAG(name, value, _) name = (value | F_X86_64),
+#include "LIEF/MachO/FunctionVariants/X86_64.def"
+#undef FUNCTION_VARIANT_FLAG
- #define FUNCTION_VARIANT_FLAG(name, value, _) name = (value | F_SYSTEM_WIDE),
- #include "LIEF/MachO/FunctionVariants/SystemWide.def"
- #undef FUNCTION_VARIANT_FLAG
+#define FUNCTION_VARIANT_FLAG(name, value, _) name = (value | F_SYSTEM_WIDE),
+#include "LIEF/MachO/FunctionVariants/SystemWide.def"
+#undef FUNCTION_VARIANT_FLAG
- #define FUNCTION_VARIANT_FLAG(name, value, _) name = (value | F_PER_PROCESS),
- #include "LIEF/MachO/FunctionVariants/PerProcess.def"
- #undef FUNCTION_VARIANT_FLAG
+#define FUNCTION_VARIANT_FLAG(name, value, _) name = (value | F_PER_PROCESS),
+#include "LIEF/MachO/FunctionVariants/PerProcess.def"
+#undef FUNCTION_VARIANT_FLAG
};
static uint8_t get_raw(FLAGS f) {
@@ -118,14 +131,28 @@ class LIEF_API FunctionVariants : public LoadCommand {
return impl_;
}
+ /// Set the relative address of the implementation (or the index of the
+ /// target entry when another_table() is set).
+ ///
+ /// \note The value is stored on 31 bits, so the most significant bit is
+ /// silently dropped.
+ void impl(uint32_t value) {
+ impl_ = value & MAX_IMPL;
+ }
+
/// Indicates whether impl() refers to an entry in another runtime table,
/// rather than a direct function implementation address.
bool another_table() const {
return another_table_;
}
+ /// Set whether impl() refers to an entry in another runtime table.
+ void another_table(bool value) {
+ another_table_ = value;
+ }
+
/// The `flagBitNums` value as a slice of bytes
- span<const uint8_t> flag_bit_nums() const {
+ span<const uint8_t> flag_bit_nums() const LIEF_LIFETIMEBOUND {
return flag_bit_nums_;
}
@@ -136,19 +163,19 @@ class LIEF_API FunctionVariants : public LoadCommand {
std::string to_string() const;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const RuntimeTableEntry& entry)
- {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const RuntimeTableEntry& entry) {
os << entry.to_string();
return os;
}
- /// \private
+ /// @private
LIEF_LOCAL void set_flags(std::vector<FLAGS> flags) {
flags_ = std::move(flags);
}
+
private:
- bool another_table_;
+ bool another_table_ = false;
uint32_t impl_ = 0;
std::array<uint8_t, 4> flag_bit_nums_ = {};
std::vector<FLAGS> flags_;
@@ -163,10 +190,10 @@ class LIEF_API FunctionVariants : public LoadCommand {
public:
using entries_t = std::vector<RuntimeTableEntry>;
- /// Iterator that output RuntimeTableEntry&
+ /// Iterator that outputs RuntimeTableEntry&
using it_entries = ref_iterator<entries_t&>;
- /// Iterator that output const RuntimeTableEntry&
+ /// Iterator that outputs const RuntimeTableEntry&
using it_const_entries = const_ref_iterator<const entries_t&>;
/// Enumeration describing the namespace or category of a function variant.
@@ -184,20 +211,21 @@ class LIEF_API FunctionVariants : public LoadCommand {
/// Variants that apply on a per-process basis
PER_PROCESS = 1,
- /// Variants that are selected based on system-wide capabilities or configurations.
+ /// Variants that are selected based on system-wide capabilities or
+ /// configurations.
SYSTEM_WIDE = 2,
/// Variants optimized for the ARM64 architecture.
ARM64 = 3,
/// Variants optimized for the x86-64 architecture.
- X86_64 = 4
+ X86_64 = 4,
};
RuntimeTable() = default;
RuntimeTable(KIND kind, uint32_t offset) :
- kind_(kind), offset_(offset)
- {}
+ kind_(kind),
+ offset_(offset) {}
RuntimeTable(const RuntimeTable&) = default;
RuntimeTable& operator=(const RuntimeTable&) = default;
@@ -217,11 +245,11 @@ class LIEF_API FunctionVariants : public LoadCommand {
}
/// Iterator over the different RuntimeTableEntry entries
- it_entries entries() {
+ it_entries entries() LIEF_LIFETIMEBOUND {
return entries_;
}
- it_const_entries entries() const {
+ it_const_entries entries() const LIEF_LIFETIMEBOUND {
return entries_;
}
@@ -231,9 +259,8 @@ class LIEF_API FunctionVariants : public LoadCommand {
std::string to_string() const;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const RuntimeTable& table)
- {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const RuntimeTable& table) {
os << table.to_string();
return os;
}
@@ -282,24 +309,30 @@ class LIEF_API FunctionVariants : public LoadCommand {
/// Return the data slice in the `__LINKEDIT` segment referenced by
/// data_offset and data_size;
- span<const uint8_t> content() const {
+ span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
return content_;
}
- span<uint8_t> content() {
+ span<uint8_t> content() LIEF_LIFETIMEBOUND {
return content_;
}
/// Iterator over the different RuntimeTable entries located in the content
/// of this `__LINKEDIT` command
- it_runtime_table runtime_table() {
+ it_runtime_table runtime_table() LIEF_LIFETIMEBOUND {
return runtime_table_;
}
- it_const_runtime_table runtime_table() const {
+ it_const_runtime_table runtime_table() const LIEF_LIFETIMEBOUND {
return runtime_table_;
}
+ /// Append a new RuntimeTable and return a reference to the inserted table
+ RuntimeTable& add(RuntimeTable table) LIEF_LIFETIMEBOUND {
+ runtime_table_.push_back(std::move(table));
+ return runtime_table_.back();
+ }
+
~FunctionVariants() override = default;
std::ostream& print(std::ostream& os) const override;
@@ -309,7 +342,8 @@ class LIEF_API FunctionVariants : public LoadCommand {
}
LIEF_LOCAL static std::vector<RuntimeTable> parse_payload(SpanStream& stream);
- LIEF_LOCAL static result<RuntimeTable> parse_entry(BinaryStream& stream);
+ LIEF_LOCAL static result<RuntimeTable> parse_entry(BinaryStream& stream,
+ uint64_t max_entries);
private:
uint32_t data_offset_ = 0;
diff --git a/deps/LIEF/include/LIEF/MachO/FunctionVariants/PerProcess.def b/deps/LIEF/include/LIEF/MachO/FunctionVariants/PerProcess.def
index f42208d63b2..b710268dc20 100644
--- a/deps/LIEF/include/LIEF/MachO/FunctionVariants/PerProcess.def
+++ b/deps/LIEF/include/LIEF/MachO/FunctionVariants/PerProcess.def
@@ -5,4 +5,5 @@
FUNCTION_VARIANT_FLAG(PER_PROCESS_DEFAULT , 0 , "default" )
FUNCTION_VARIANT_FLAG(PER_PROCESS_TRANSLATED , 1 , "translated" )
+FUNCTION_VARIANT_FLAG(PER_PROCESS_MTE_ENABLED , 2 , "mte_enabled" )
FUNCTION_VARIANT_FLAG(PER_PROCESS_NO_OVERREAD , 3 , "no_overread" )
diff --git a/deps/LIEF/include/LIEF/MachO/Header.hpp b/deps/LIEF/include/LIEF/MachO/Header.hpp
index b75a1784af3..46f9fc94295 100644
--- a/deps/LIEF/include/LIEF/MachO/Header.hpp
+++ b/deps/LIEF/include/LIEF/MachO/Header.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -37,6 +37,7 @@ struct mach_header;
/// Class that represents the Mach-O header
class LIEF_API Header : public Object {
friend class BinaryParser;
+
public:
Header() = default;
@@ -45,6 +46,7 @@ class LIEF_API Header : public Object {
~Header() override = default;
+ // clang-format off
enum class FILE_TYPE : uint32_t {
UNKNOWN = 0,
OBJECT = 0x1u,
@@ -62,7 +64,9 @@ class LIEF_API Header : public Object {
GPU_EXECUTE = 0xDu,
GPU_DYLIB = 0xEu,
};
+ // clang-format on
+ // clang-format off
enum class FLAGS : uint32_t {
NOUNDEFS = 0x00000001u,
INCRLINK = 0x00000002u,
@@ -95,10 +99,12 @@ class LIEF_API Header : public Object {
IMPLICIT_PAGEZERO = 0x10000000u,
DYLIB_IN_CACHE = 0x80000000u,
};
+ // clang-format on
static constexpr int ABI64 = 0x01000000;
- enum class CPU_TYPE: int32_t {
+ // clang-format off
+ enum class CPU_TYPE : int32_t {
ANY = -1,
X86 = 7,
X86_64 = 7 | ABI64,
@@ -110,7 +116,7 @@ class LIEF_API Header : public Object {
MC88000 = 13,
SPARC = 14,
I860 = 15,
- ALPHA = 16,
+ ALPHA = 16,
POWERPC = 18,
POWERPC64 = 18 | ABI64,
APPLE_GPU = 19 | ABI64,
@@ -118,6 +124,7 @@ class LIEF_API Header : public Object {
INTEL_GPU = 21 | ABI64,
AIR64 = 23 | ABI64,
};
+ // clang-format on
static constexpr uint32_t SUBTYPE_MASK = 0xff000000;
static constexpr uint32_t SUBTYPE_LIB64 = 0x80000000;
@@ -206,14 +213,12 @@ class LIEF_API Header : public Object {
/// True if the binary is 32-bit
bool is_32bit() const {
- return magic_ == MACHO_TYPES::MAGIC ||
- magic_ == MACHO_TYPES::CIGAM;
+ return magic_ == MACHO_TYPES::MAGIC || magic_ == MACHO_TYPES::CIGAM;
}
/// True if the binary is 64-bit
bool is_64bit() const {
- return magic_ == MACHO_TYPES::MAGIC_64 ||
- magic_ == MACHO_TYPES::CIGAM_64;
+ return magic_ == MACHO_TYPES::MAGIC_64 || magic_ == MACHO_TYPES::CIGAM_64;
}
void remove(FLAGS flag);
@@ -240,13 +245,13 @@ class LIEF_API Header : public Object {
LIEF_LOCAL Header(const T& header);
MACHO_TYPES magic_ = MACHO_TYPES::UNKNOWN;
- CPU_TYPE cputype_ = CPU_TYPE::ANY;
- uint32_t cpusubtype_;
- FILE_TYPE filetype_ = FILE_TYPE::UNKNOWN;
- uint32_t ncmds_ = 0;
- uint32_t sizeofcmds_ = 0;
- uint32_t flags_ = 0;
- uint32_t reserved_ = 0;
+ CPU_TYPE cputype_ = CPU_TYPE::ANY;
+ uint32_t cpusubtype_;
+ FILE_TYPE filetype_ = FILE_TYPE::UNKNOWN;
+ uint32_t ncmds_ = 0;
+ uint32_t sizeofcmds_ = 0;
+ uint32_t flags_ = 0;
+ uint32_t reserved_ = 0;
};
LIEF_API const char* to_string(Header::FILE_TYPE e);
diff --git a/deps/LIEF/include/LIEF/MachO/IndirectBindingInfo.hpp b/deps/LIEF/include/LIEF/MachO/IndirectBindingInfo.hpp
index b65a63cb6cd..b2eee511242 100644
--- a/deps/LIEF/include/LIEF/MachO/IndirectBindingInfo.hpp
+++ b/deps/LIEF/include/LIEF/MachO/IndirectBindingInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,15 +24,14 @@
namespace LIEF {
namespace MachO {
-/// This class represents a binding operation infered from the indirect symbol
+/// This class represents a binding operation inferred from the indirect symbol
/// table.
class LIEF_API IndirectBindingInfo : public BindingInfo {
friend class BinaryParser;
- public:
+ public:
IndirectBindingInfo(SegmentCommand& segment, Symbol& symbol, int32_t ordinal,
- DylibCommand* dylib, uint64_t address)
- {
+ DylibCommand* dylib, uint64_t address) {
segment_ = &segment;
symbol_ = &symbol;
library_ordinal_ = ordinal;
@@ -56,8 +55,8 @@ class LIEF_API IndirectBindingInfo : public BindingInfo {
~IndirectBindingInfo() override = default;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const IndirectBindingInfo& info) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const IndirectBindingInfo& info) {
os << static_cast<const BindingInfo&>(info);
return os;
}
diff --git a/deps/LIEF/include/LIEF/MachO/LazyLoadDylibInfo.hpp b/deps/LIEF/include/LIEF/MachO/LazyLoadDylibInfo.hpp
new file mode 100644
index 00000000000..970eadb4e41
--- /dev/null
+++ b/deps/LIEF/include/LIEF/MachO/LazyLoadDylibInfo.hpp
@@ -0,0 +1,298 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_MACHO_LAZY_LOAD_DYLIB_INFO_COMMAND_H
+#define LIEF_MACHO_LAZY_LOAD_DYLIB_INFO_COMMAND_H
+#include <string>
+#include <vector>
+#include <ostream>
+
+#include "LIEF/visibility.h"
+#include "LIEF/errors.hpp"
+#include "LIEF/iterators.hpp"
+
+#include "LIEF/MachO/LoadCommand.hpp"
+
+namespace LIEF {
+class SpanStream;
+class BinaryStream;
+class vector_iostream;
+
+namespace MachO {
+class Binary;
+class BinaryParser;
+class Builder;
+class LinkEdit;
+class SegmentCommand;
+
+namespace details {
+struct linkedit_data_command;
+}
+
+/// Class representing the `LC_LAZY_LOAD_DYLIB_INFO` load command.
+///
+/// This command describes how to **lazily load a dylib**: instead of binding
+/// the library and its symbols at launch time, `dyld` keeps the information
+/// required to resolve the dylib on the first use of one of its symbols.
+class LIEF_API LazyLoadDylibInfo : public LoadCommand {
+ friend class BinaryParser;
+ friend class Builder;
+ friend class LinkEdit;
+
+ public:
+ /// A single lazy-binding fixup decoded from the chain referenced by
+ /// chain_start_image_offset and decoded according to pointer_format
+ class LIEF_API Fixup {
+ friend class Binary;
+
+ public:
+ Fixup() = default;
+ Fixup(uint64_t address, uint32_t ordinal, std::string symbol, bool is_auth) :
+ address_(address),
+ ordinal_(ordinal),
+ symbol_(std::move(symbol)),
+ is_auth_(is_auth) {}
+
+ Fixup(const Fixup&) = default;
+ Fixup& operator=(const Fixup&) = default;
+
+ Fixup(Fixup&&) noexcept = default;
+ Fixup& operator=(Fixup&&) noexcept = default;
+
+ ~Fixup() = default;
+
+ /// Virtual address of the slot bound by this fixup
+ uint64_t address() const {
+ return address_;
+ }
+
+ void address(uint64_t value) {
+ address_ = value;
+ }
+
+ /// Index of the bound symbol in the symbols table of LazyLoadDylibInfo
+ uint32_t ordinal() const {
+ return ordinal_;
+ }
+
+ /// Name of the bound symbol, resolved from ordinal() (empty if the ordinal
+ /// is out of the symbols() range)
+ const std::string& symbol() const LIEF_LIFETIMEBOUND {
+ return symbol_;
+ }
+
+ /// Whether the bound pointer is authenticated (`arm64e` PAC)
+ bool is_auth() const {
+ return is_auth_;
+ }
+
+ std::string to_string() const;
+
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const Fixup& fixup) {
+ os << fixup.to_string();
+ return os;
+ }
+
+ private:
+ uint64_t address_ = 0;
+ uint32_t ordinal_ = 0;
+ std::string symbol_;
+ bool is_auth_ = false;
+ };
+ static constexpr auto MAYBE_MISSING_FLAG = 1;
+
+ using fixups_t = std::vector<Fixup>;
+
+ /// Iterator that outputs Fixup&
+ using it_fixups = ref_iterator<fixups_t&>;
+
+ /// Iterator that outputs const Fixup&
+ using it_const_fixups = const_ref_iterator<const fixups_t&>;
+
+ LazyLoadDylibInfo();
+ LazyLoadDylibInfo(const details::linkedit_data_command& cmd);
+
+ LazyLoadDylibInfo& operator=(const LazyLoadDylibInfo& copy) = default;
+ LazyLoadDylibInfo(const LazyLoadDylibInfo& copy) = default;
+
+ std::unique_ptr<LoadCommand> clone() const override {
+ return std::unique_ptr<LazyLoadDylibInfo>(new LazyLoadDylibInfo(*this));
+ }
+
+ /// Offset in the `__LINKEDIT` segment where the payload starts
+ uint32_t data_offset() const {
+ return data_offset_;
+ }
+
+ /// Size of the payload
+ uint32_t data_size() const {
+ return data_size_;
+ }
+
+ void data_offset(uint32_t offset) {
+ data_offset_ = offset;
+ }
+
+ void data_size(uint32_t size) {
+ data_size_ = size;
+ }
+
+ /// Return the data slice in the `__LINKEDIT` segment referenced by
+ /// data_offset and data_size.
+ span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
+ return content_;
+ }
+
+ span<uint8_t> content() LIEF_LIFETIMEBOUND {
+ return content_;
+ }
+
+ /// Load path of the dylib to bind lazily
+ const std::string& load_path() const LIEF_LIFETIMEBOUND {
+ return load_path_;
+ }
+
+ /// Change the load path of the dylib to bind lazily
+ LazyLoadDylibInfo& load_path(std::string value) LIEF_LIFETIMEBOUND {
+ load_path_ = std::move(value);
+ return *this;
+ }
+
+ /// Image offset of the global flag that is set once the dylib has been
+ /// loaded by dyld
+ uint32_t flag_image_offset() const {
+ return flag_image_offset_;
+ }
+
+ LazyLoadDylibInfo& flag_image_offset(uint32_t value) LIEF_LIFETIMEBOUND {
+ flag_image_offset_ = value;
+ return *this;
+ }
+
+ /// Raw flags associated with this command
+ uint16_t flags() const {
+ return flags_;
+ }
+
+ LazyLoadDylibInfo& flags(uint16_t value) LIEF_LIFETIMEBOUND {
+ flags_ = value;
+ return *this;
+ }
+
+ /// Whether the dylib is allowed to be missing at runtime (i.e. "weak
+ /// linked")
+ bool may_be_missing() const {
+ return (flags_ & MAYBE_MISSING_FLAG) != 0;
+ }
+
+ /// Set or clear the "may be missing" (weak linked) bit of flags().
+ LazyLoadDylibInfo& may_be_missing(bool value) LIEF_LIFETIMEBOUND {
+ if (value) {
+ flags_ |= MAYBE_MISSING_FLAG;
+ } else {
+ flags_ &= ~static_cast<uint16_t>(MAYBE_MISSING_FLAG);
+ }
+ return *this;
+ }
+
+ /// Chained-fixups pointer format used by the binding chain
+ /// (e.g. `DYLD_CHAINED_PTR_ARM64E_USERLAND`)
+ uint16_t pointer_format() const {
+ return pointer_format_;
+ }
+
+ LazyLoadDylibInfo& pointer_format(uint16_t value) LIEF_LIFETIMEBOUND {
+ pointer_format_ = value;
+ return *this;
+ }
+
+ /// Image offset of the fixup chain start used to bind the dylib's symbols
+ uint32_t chain_start_image_offset() const {
+ return chain_start_image_offset_;
+ }
+
+ LazyLoadDylibInfo& chain_start_image_offset(uint32_t value) LIEF_LIFETIMEBOUND {
+ chain_start_image_offset_ = value;
+ return *this;
+ }
+
+ /// List of the symbol names to bind lazily for this dylib
+ const std::vector<std::string>& symbols() const LIEF_LIFETIMEBOUND {
+ return symbols_;
+ }
+
+ /// Replace the list of the symbol names to bind lazily for this dylib.
+ LazyLoadDylibInfo& symbols(std::vector<std::string> value) LIEF_LIFETIMEBOUND {
+ symbols_ = std::move(value);
+ return *this;
+ }
+
+ /// Append a symbol name to the list of symbols to bind lazily.
+ LazyLoadDylibInfo& add_symbol(std::string value) LIEF_LIFETIMEBOUND {
+ symbols_.push_back(std::move(value));
+ return *this;
+ }
+
+ /// Remove all the symbol names to bind lazily.
+ LazyLoadDylibInfo& clear_symbols() LIEF_LIFETIMEBOUND {
+ symbols_.clear();
+ return *this;
+ }
+
+ /// Iterator over the lazy-binding Fixup entries
+ it_fixups fixups() LIEF_LIFETIMEBOUND {
+ return fixups_;
+ }
+
+ it_const_fixups fixups() const LIEF_LIFETIMEBOUND {
+ return fixups_;
+ }
+
+ ~LazyLoadDylibInfo() override = default;
+
+ std::ostream& print(std::ostream& os) const override;
+
+ static bool classof(const LoadCommand* cmd) {
+ return cmd->command() == LoadCommand::TYPE::LAZY_LOAD_DYLIB_INFO;
+ }
+
+ /// \private
+ LIEF_LOCAL ok_error_t parse_payload(BinaryStream& stream);
+
+ /// \private
+ LIEF_LOCAL ok_error_t walk_fixups(uint64_t chain_va, SegmentCommand& seg);
+
+ /// \private
+ LIEF_LOCAL ok_error_t serialize(vector_iostream& ios) const;
+
+
+ private:
+ uint32_t data_offset_ = 0;
+ uint32_t data_size_ = 0;
+ span<uint8_t> content_;
+
+ std::string load_path_;
+ uint32_t flag_image_offset_ = 0;
+ uint16_t flags_ = 0;
+ uint16_t pointer_format_ = 0;
+ uint32_t chain_start_image_offset_ = 0;
+ std::vector<std::string> symbols_;
+ fixups_t fixups_;
+};
+
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/MachO/LinkEdit.hpp b/deps/LIEF/include/LIEF/MachO/LinkEdit.hpp
index 8dcee6c37f8..77e5e534273 100644
--- a/deps/LIEF/include/LIEF/MachO/LinkEdit.hpp
+++ b/deps/LIEF/include/LIEF/MachO/LinkEdit.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
#ifndef LIEF_MACHO_LINK_EDIT_H
#define LIEF_MACHO_LINK_EDIT_H
#include <memory>
+#include <vector>
#include "LIEF/visibility.h"
@@ -36,6 +37,7 @@ class DyldInfo;
class FunctionStarts;
class FunctionVariants;
class FunctionVariantFixups;
+class LazyLoadDylibInfo;
class LinkerOptHint;
class SymbolCommand;
class TwoLevelHints;
@@ -72,10 +74,10 @@ class LIEF_API LinkEdit : public SegmentCommand {
private:
LIEF_LOCAL void update_data(const update_fnc_t& f) override;
- LIEF_LOCAL void update_data(const update_fnc_ws_t& f,
- size_t where, size_t size) override;
+ LIEF_LOCAL void update_data(const update_fnc_ws_t& f, size_t where,
+ size_t size) override;
- //x-ref to keep the spans in a consistent state
+ // x-ref to keep the spans in a consistent state
DyldInfo* dyld_ = nullptr;
DyldChainedFixups* chained_fixups_ = nullptr;
DyldExportsTrie* exports_trie_ = nullptr;
@@ -88,8 +90,9 @@ class LIEF_API LinkEdit : public SegmentCommand {
TwoLevelHints* two_lvl_hint_ = nullptr;
CodeSignature* code_sig_ = nullptr;
AtomInfo* atom_info_ = nullptr;
- FunctionVariants* func_variants_ = nullptr;
+ FunctionVariants* func_variants_ = nullptr;
FunctionVariantFixups* func_variant_fixups_ = nullptr;
+ std::vector<LazyLoadDylibInfo*> lazy_load_dylibs_;
};
}
diff --git a/deps/LIEF/include/LIEF/MachO/LinkerOptHint.hpp b/deps/LIEF/include/LIEF/MachO/LinkerOptHint.hpp
index 0d39f048edb..b98055954d5 100644
--- a/deps/LIEF/include/LIEF/MachO/LinkerOptHint.hpp
+++ b/deps/LIEF/include/LIEF/MachO/LinkerOptHint.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
#define LIEF_MACHO_LINKER_OPT_HINT_COMMAND_H
#include <ostream>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/span.hpp"
@@ -68,11 +69,11 @@ class LIEF_API LinkerOptHint : public LoadCommand {
data_size_ = size;
}
- span<const uint8_t> content() const {
+ span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
return content_;
}
- span<uint8_t> content() {
+ span<uint8_t> content() LIEF_LIFETIMEBOUND {
return content_;
}
@@ -87,10 +88,9 @@ class LIEF_API LinkerOptHint : public LoadCommand {
}
private:
- uint32_t data_offset_ = 0;
- uint32_t data_size_ = 0;
+ uint32_t data_offset_ = 0;
+ uint32_t data_size_ = 0;
span<uint8_t> content_;
-
};
}
diff --git a/deps/LIEF/include/LIEF/MachO/LoadCommand.hpp b/deps/LIEF/include/LIEF/MachO/LoadCommand.hpp
index 5dac8aa0379..1dacbf94dd2 100644
--- a/deps/LIEF/include/LIEF/MachO/LoadCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/LoadCommand.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@
#include <vector>
#include "LIEF/Object.hpp"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/span.hpp"
@@ -33,15 +34,17 @@ namespace details {
struct load_command;
}
-/// Based class for the Mach-O load commands
+/// Base class for the Mach-O load commands
class LIEF_API LoadCommand : public Object {
friend class Builder;
friend class BinaryParser;
friend class Binary;
+
public:
using raw_t = std::vector<uint8_t>;
- enum class TYPE: uint64_t {
+ // clang-format off
+ enum class TYPE : uint64_t {
UNKNOWN = 0,
SEGMENT = 0x00000001u,
SYMTAB = 0x00000002u,
@@ -101,17 +104,18 @@ class LIEF_API LoadCommand : public Object {
FUNCTION_VARIANTS = 0x00000037u,
FUNCTION_VARIANT_FIXUPS = 0x00000038u,
TARGET_TRIPLE = 0x00000039u,
+ LAZY_LOAD_DYLIB_INFO = 0x0000003Au,
- LIEF_UNKNOWN = 0xffee0001u
+ LIEF_UNKNOWN = 0xffee0001u,
};
+ // clang-format on
public:
LoadCommand() = default;
LoadCommand(const details::load_command& command);
LoadCommand(LoadCommand::TYPE type, uint32_t size) :
command_(type),
- size_(size)
- {}
+ size_(size) {}
LoadCommand& operator=(const LoadCommand& copy) = default;
LoadCommand(const LoadCommand& copy) = default;
@@ -129,13 +133,13 @@ class LIEF_API LoadCommand : public Object {
return command_;
}
- /// Size of the command (should be greather than ``sizeof(load_command)``)
+ /// Size of the command (should be greater than ``sizeof(load_command)``)
uint32_t size() const {
return size_;
}
/// Raw command
- span<const uint8_t> data() const {
+ span<const uint8_t> data() const LIEF_LIFETIMEBOUND {
return original_data_;
}
@@ -182,8 +186,8 @@ class LIEF_API LoadCommand : public Object {
}
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const LoadCommand& cmd) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const LoadCommand& cmd) {
return cmd.print(os);
}
diff --git a/deps/LIEF/include/LIEF/MachO/MainCommand.hpp b/deps/LIEF/include/LIEF/MachO/MainCommand.hpp
index 4f752d4ec37..d89cf9ebde1 100644
--- a/deps/LIEF/include/LIEF/MachO/MainCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/MainCommand.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,7 +28,7 @@ namespace details {
struct entry_point_command;
}
-/// Class that represent the LC_MAIN command. This kind
+/// Class that represents the LC_MAIN command. This kind
/// of command can be used to determine the entrypoint of an executable
class LIEF_API MainCommand : public LoadCommand {
public:
diff --git a/deps/LIEF/include/LIEF/MachO/NoteCommand.hpp b/deps/LIEF/include/LIEF/MachO/NoteCommand.hpp
index cf0794cebc8..2e61173e900 100644
--- a/deps/LIEF/include/LIEF/MachO/NoteCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/NoteCommand.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,8 +15,11 @@
*/
#ifndef LIEF_MACHO_NOTE_COMMAND_H
#define LIEF_MACHO_NOTE_COMMAND_H
+#include <algorithm>
#include <ostream>
+#include <string>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/span.hpp"
@@ -29,7 +32,7 @@ namespace details {
struct note_command;
}
-/// Class that represent the `LC_NOTE` command.
+/// Class that represents the `LC_NOTE` command.
///
/// This command is used to include arbitrary notes or metadata within a binary.
class LIEF_API NoteCommand : public LoadCommand {
@@ -55,17 +58,18 @@ class LIEF_API NoteCommand : public LoadCommand {
}
/// Owner of the note (e.g. `AIR_METALLIB`)
- span<const char> owner() const {
+ span<const char> owner() const LIEF_LIFETIMEBOUND {
return owner_;
}
- span<char> owner() {
+ span<char> owner() LIEF_LIFETIMEBOUND {
return owner_;
}
/// Owner as a zero-terminated string
std::string owner_str() const {
- return std::string(owner_.data(), owner_.size()).c_str();
+ const auto end = std::find(owner_.begin(), owner_.end(), '\0');
+ return {owner_.begin(), end};
}
void note_offset(uint64_t offset) {
diff --git a/deps/LIEF/include/LIEF/MachO/Parser.hpp b/deps/LIEF/include/LIEF/MachO/Parser.hpp
index a33a53757d3..c57bd9bcc23 100644
--- a/deps/LIEF/include/LIEF/MachO/Parser.hpp
+++ b/deps/LIEF/include/LIEF/MachO/Parser.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -36,13 +36,13 @@ class FatBinary;
/// The main interface to parse a Mach-O binary.
///
/// This class is used to parse both Fat & non-Fat binary.
-/// Non-fat binaries are considerated as a **fat** with
+/// Non-fat binaries are considered as a **fat** with
/// only one architecture. This is why MachO::Parser::parse outputs
/// a FatBinary object.
class LIEF_API Parser : public LIEF::Parser {
public:
Parser& operator=(const Parser& copy) = delete;
- Parser(const Parser& copy) = delete;
+ Parser(const Parser& copy) = delete;
~Parser() override;
@@ -53,9 +53,10 @@ class LIEF_API Parser : public LIEF::Parser {
/// of the parser
///
/// @param[in] filename Path to the Mach-O file
- /// @param[in] conf Parser configuration (Defaut: ParserConfig::deep)
- static std::unique_ptr<FatBinary> parse(const std::string& filename,
- const ParserConfig& conf = ParserConfig::deep());
+ /// @param[in] conf Parser configuration (Default: ParserConfig::deep)
+ static std::unique_ptr<FatBinary>
+ parse(const std::string& filename,
+ const ParserConfig& conf = ParserConfig::deep());
/// Parse a Mach-O file from the raw content provided by the ``data``
/// parameter
@@ -64,33 +65,63 @@ class LIEF_API Parser : public LIEF::Parser {
/// of the parser
///
/// @param[in] data Mach-O file as a vector of bytes
- /// @param[in] conf Parser configuration (Defaut: ParserConfig::deep)
- static std::unique_ptr<FatBinary> parse(const std::vector<uint8_t>& data,
- const ParserConfig& conf = ParserConfig::deep());
+ /// @param[in] conf Parser configuration (Default: ParserConfig::deep)
+ static std::unique_ptr<FatBinary>
+ parse(const std::vector<uint8_t>& data,
+ const ParserConfig& conf = ParserConfig::deep());
- /// Parser a Mach-O binary from the provided BinaryStream.
- static std::unique_ptr<FatBinary> parse(std::unique_ptr<BinaryStream> stream,
- const ParserConfig& conf = ParserConfig::deep());
+ /// Parse a Mach-O binary from the provided BinaryStream.
+ static std::unique_ptr<FatBinary>
+ parse(std::unique_ptr<BinaryStream> stream,
+ const ParserConfig& conf = ParserConfig::deep());
/// Parse the Mach-O binary from the address given in the first parameter
- static std::unique_ptr<FatBinary> parse_from_memory(uintptr_t address,
- const ParserConfig& conf = ParserConfig::deep());
+ static std::unique_ptr<FatBinary>
+ parse_from_memory(uintptr_t address,
+ const ParserConfig& conf = ParserConfig::deep());
/// Parse the Mach-O binary from the address given in the first parameter
/// and the size given in the second parameter
- static std::unique_ptr<FatBinary> parse_from_memory(uintptr_t address, size_t size,
- const ParserConfig& conf = ParserConfig::deep());
+ static std::unique_ptr<FatBinary>
+ parse_from_memory(uintptr_t address, size_t size,
+ const ParserConfig& conf = ParserConfig::deep());
+
+ /// Parse a Mach-O binary from a memory dump located on disk.
+ ///
+ /// A dump is a raw capture of the process memory that was mapped starting at
+ /// the virtual address `addr`. This is typically used to parse a Mach-O image
+ /// that has been dumped from memory (e.g. from a debugger or a runtime hook).
+ ///
+ /// @param[in] filepath Path to the file that contains the memory dump
+ /// @param[in] addr Virtual address at which the dump was mapped
+ /// @param[in] conf Optional configuration for the parser
+ static std::unique_ptr<FatBinary>
+ parse_from_dump(const std::string& filepath, uint64_t addr,
+ const ParserConfig& conf = ParserConfig::deep());
+
+ /// Same as parse_from_dump(const std::string&, uint64_t, const ParserConfig&)
+ /// but the dump is wrapped in the given **non-owned** stream.
+ static std::unique_ptr<FatBinary>
+ parse_from_dump(BinaryStream& stream, uint64_t addr,
+ const ParserConfig& conf = ParserConfig::deep());
+
+ /// Same as parse_from_dump(const std::string&, uint64_t, const ParserConfig&)
+ /// but the dump is wrapped in the given **owned** stream.
+ static std::unique_ptr<FatBinary>
+ parse_from_dump(std::unique_ptr<BinaryStream> stream, uint64_t addr,
+ const ParserConfig& conf = ParserConfig::deep());
private:
LIEF_LOCAL Parser(const std::string& file, const ParserConfig& conf);
LIEF_LOCAL Parser(std::vector<uint8_t> data, const ParserConfig& conf);
LIEF_LOCAL Parser();
- LIEF_LOCAL ok_error_t build();
- LIEF_LOCAL ok_error_t build_fat();
+ LIEF_LOCAL ok_error_t parse();
+ LIEF_LOCAL ok_error_t parse_fat();
LIEF_LOCAL ok_error_t undo_reloc_bindings(uintptr_t base_address);
+ LIEF_LOCAL ok_error_t unpack_tlv();
std::unique_ptr<BinaryStream> stream_;
std::vector<std::unique_ptr<Binary>> binaries_;
diff --git a/deps/LIEF/include/LIEF/MachO/ParserConfig.hpp b/deps/LIEF/include/LIEF/MachO/ParserConfig.hpp
index 429d0e2cff8..c93810dc2e6 100644
--- a/deps/LIEF/include/LIEF/MachO/ParserConfig.hpp
+++ b/deps/LIEF/include/LIEF/MachO/ParserConfig.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -36,10 +36,17 @@ struct LIEF_API ParserConfig {
/// @warning Enabling this flag can slow down the parsing
ParserConfig& full_dyldinfo(bool flag);
- bool parse_dyld_exports = true; ///< Parse the Dyld export trie
- bool parse_dyld_bindings = true; ///< Parse the Dyld binding opcodes
- bool parse_dyld_rebases = true; ///< Parse the Dyld rebase opcodes
- bool parse_overlay = true; ///< Whether the overlay data should be parsed
+ /// Parse the Dyld export trie
+ bool parse_dyld_exports = true;
+
+ /// Parse the Dyld binding opcodes
+ bool parse_dyld_bindings = true;
+
+ /// Parse the Dyld rebase opcodes
+ bool parse_dyld_rebases = true;
+
+ /// Whether the overlay data should be parsed
+ bool parse_overlay = true;
/// When parsing Mach-O from memory, this option
/// can be used to *undo* relocations and symbols bindings.
diff --git a/deps/LIEF/include/LIEF/MachO/RPathCommand.hpp b/deps/LIEF/include/LIEF/MachO/RPathCommand.hpp
index 6e53014c6bc..262c078e9a0 100644
--- a/deps/LIEF/include/LIEF/MachO/RPathCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/RPathCommand.hpp
@@ -1,5 +1,5 @@
/* Copyright 2017 - 2021 J. Rieck (based on R. Thomas's work)
- * Copyright 2017 - 2025 Quarkslab
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -54,7 +54,7 @@ class LIEF_API RPathCommand : public LoadCommand {
~RPathCommand() override = default;
/// The rpath value as a string
- const std::string& path() const {
+ const std::string& path() const LIEF_LIFETIMEBOUND {
return path_;
}
diff --git a/deps/LIEF/include/LIEF/MachO/Relocation.hpp b/deps/LIEF/include/LIEF/MachO/Relocation.hpp
index 365e22e9ef2..95aa8894692 100644
--- a/deps/LIEF/include/LIEF/MachO/Relocation.hpp
+++ b/deps/LIEF/include/LIEF/MachO/Relocation.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -33,7 +33,7 @@ class Symbol;
/// Class that represents a Mach-O relocation
///
-/// @see:
+/// @see
/// * MachO::RelocationObject
/// * MachO::RelocationDyld
/// * MachO::RelocationFixup
@@ -46,9 +46,9 @@ class LIEF_API Relocation : public LIEF::Relocation {
using LIEF::Relocation::size;
enum class ORIGIN {
- UNKNOWN = 0,
- DYLDINFO = 1,
- RELOC_TABLE = 2,
+ UNKNOWN = 0,
+ DYLDINFO = 1,
+ RELOC_TABLE = 2,
CHAINED_FIXUPS = 3,
};
@@ -69,8 +69,8 @@ class LIEF_API Relocation : public LIEF::Relocation {
/// Indicates whether the item containing the address to be
/// relocated is part of a CPU instruction that uses PC-relative addressing.
///
- /// For addresses contained in PC-relative instructions, the CPU adds the address of
- /// the instruction to the address contained in the instruction.
+ /// For addresses contained in PC-relative instructions, the CPU adds the address
+ /// of the instruction to the address contained in the instruction.
virtual bool is_pc_relative() const = 0;
/// Type of the relocation according to the
@@ -87,7 +87,7 @@ class LIEF_API Relocation : public LIEF::Relocation {
return type_;
}
- /// Achitecture targeted by this relocation
+ /// Architecture targeted by this relocation
Header::CPU_TYPE architecture() const {
return architecture_;
}
@@ -102,10 +102,10 @@ class LIEF_API Relocation : public LIEF::Relocation {
/// Symbol associated with the relocation, if any,
/// otherwise a nullptr.
- Symbol* symbol() {
+ Symbol* symbol() LIEF_LIFETIMEBOUND {
return symbol_;
}
- const Symbol* symbol() const {
+ const Symbol* symbol() const LIEF_LIFETIMEBOUND {
return symbol_;
}
@@ -116,10 +116,10 @@ class LIEF_API Relocation : public LIEF::Relocation {
/// Section associated with the relocation, if any,
/// otherwise a nullptr.
- Section* section() {
+ Section* section() LIEF_LIFETIMEBOUND {
return section_;
}
- const Section* section() const {
+ const Section* section() const LIEF_LIFETIMEBOUND {
return section_;
}
@@ -130,16 +130,17 @@ class LIEF_API Relocation : public LIEF::Relocation {
/// SegmentCommand associated with the relocation, if any,
/// otherwise a nullptr.
- SegmentCommand* segment() {
+ SegmentCommand* segment() LIEF_LIFETIMEBOUND {
return segment_;
}
- const SegmentCommand* segment() const {
+ const SegmentCommand* segment() const LIEF_LIFETIMEBOUND {
return segment_;
}
template<class T>
const T* cast() const {
- static_assert(std::is_base_of<Relocation, T>::value, "Require Relocation inheritance");
+ static_assert(std::is_base_of<Relocation, T>::value,
+ "Require Relocation inheritance");
if (T::classof(*this)) {
return static_cast<const T*>(this);
}
@@ -158,13 +159,14 @@ class LIEF_API Relocation : public LIEF::Relocation {
virtual std::ostream& print(std::ostream& os) const;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const Relocation& relocation);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const Relocation& relocation);
protected:
- Symbol* symbol_ = nullptr;
- uint8_t type_ = 0;
+ Symbol* symbol_ = nullptr;
+ uint8_t type_ = 0;
Header::CPU_TYPE architecture_ = Header::CPU_TYPE::ANY;
- Section* section_ = nullptr;
+ Section* section_ = nullptr;
SegmentCommand* segment_ = nullptr;
};
diff --git a/deps/LIEF/include/LIEF/MachO/RelocationDyld.hpp b/deps/LIEF/include/LIEF/MachO/RelocationDyld.hpp
index f4b0a1a3c09..23b7d936c2c 100644
--- a/deps/LIEF/include/LIEF/MachO/RelocationDyld.hpp
+++ b/deps/LIEF/include/LIEF/MachO/RelocationDyld.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,8 +28,8 @@ class BinaryParser;
/// Class that represents a relocation found in the DyldInfo structure.
///
-/// While this class does not have an associated structure in the Mach-O format specification,
-/// it provides a convenient interface for the Dyld::rebase
+/// While this class does not have an associated structure in the Mach-O format
+/// specification, it provides a convenient interface for the Dyld::rebase
class LIEF_API RelocationDyld : public Relocation {
friend class BinaryParser;
@@ -54,8 +54,8 @@ class LIEF_API RelocationDyld : public Relocation {
/// Indicates whether the item containing the address to be
/// relocated is part of a CPU instruction that uses PC-relative addressing.
///
- /// For addresses contained in PC-relative instructions, the CPU adds the address of
- /// the instruction to the address contained in the instruction.
+ /// For addresses contained in PC-relative instructions, the CPU adds the address
+ /// of the instruction to the address contained in the instruction.
bool is_pc_relative() const override;
/// Origin of the relocation. For this concrete object, it
diff --git a/deps/LIEF/include/LIEF/MachO/RelocationFixup.hpp b/deps/LIEF/include/LIEF/MachO/RelocationFixup.hpp
index 6a7a07c0b2a..7fcf55c8dbe 100644
--- a/deps/LIEF/include/LIEF/MachO/RelocationFixup.hpp
+++ b/deps/LIEF/include/LIEF/MachO/RelocationFixup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -39,16 +39,19 @@ class BinaryParser;
class Builder;
class DyldChainedFixupsCreator;
-/// Class that represents a rebase relocation found in the `LC_DYLD_CHAINED_FIXUPS` command.
+/// Class that represents a rebase relocation found in the `LC_DYLD_CHAINED_FIXUPS`
+/// command.
///
-/// This class extends LIEF::Relocation in which LIEF::Relocation::address is set to
-/// the absolute virtual address where the relocation must take place (e.g. `0x10000d270`).
+/// This class extends LIEF::Relocation in which LIEF::Relocation::address is set
+/// to the absolute virtual address where the relocation must take place (e.g.
+/// `0x10000d270`).
///
/// On the other hand, RelocationFixup::target contains the value that should be
-/// set at LIEF::Relocation::address if the imagebase is LIEF::Binary::imagebase (e.g. `0x1000073a8`).
+/// set at LIEF::Relocation::address if the imagebase is LIEF::Binary::imagebase
+/// (e.g. `0x1000073a8`).
///
-/// If the Mach-O loader chooses another base address (like 0x7ff100000), it must set
-/// `0x10000d270` to `0x7ff1073a8`.
+/// If the Mach-O loader chooses another base address (like 0x7ff100000), it must
+/// set `0x10000d270` to `0x7ff1073a8`.
class LIEF_API RelocationFixup : public Relocation {
friend class BinaryParser;
@@ -86,9 +89,10 @@ class LIEF_API RelocationFixup : public Relocation {
return ptr_fmt_;
}
- /// The value that should be set at the address pointed by LIEF::Relocation::address
- /// if the imagebase chosen by the loader is LIEF::Binary::imagebase.
- /// Otherwise: target() - LIEF::Binary::imagebase() + new_imagebase.
+ /// The value that should be set at the address pointed by
+ /// LIEF::Relocation::address if the imagebase chosen by the loader is
+ /// LIEF::Binary::imagebase. Otherwise: target() - LIEF::Binary::imagebase() +
+ /// new_imagebase.
uint64_t target() const;
void target(uint64_t target);
@@ -143,8 +147,10 @@ class LIEF_API RelocationFixup : public Relocation {
LIEF_LOCAL void set(const details::dyld_chained_ptr_arm64e_auth_rebase& fixup);
LIEF_LOCAL void set(const details::dyld_chained_ptr_64_rebase& fixup);
LIEF_LOCAL void set(const details::dyld_chained_ptr_32_rebase& fixup);
- LIEF_LOCAL void set(const details::dyld_chained_ptr_arm64e_segmented_rebase& fixup);
- LIEF_LOCAL void set(const details::dyld_chained_ptr_arm64e_auth_segmented_rebase& fixup);
+ LIEF_LOCAL void
+ set(const details::dyld_chained_ptr_arm64e_segmented_rebase& fixup);
+ LIEF_LOCAL void
+ set(const details::dyld_chained_ptr_arm64e_auth_segmented_rebase& fixup);
DYLD_CHAINED_PTR_FORMAT ptr_fmt_ = DYLD_CHAINED_PTR_FORMAT::PTR_32;
uint64_t imagebase_ = 0;
@@ -153,10 +159,10 @@ class LIEF_API RelocationFixup : public Relocation {
REBASE_TYPES rtypes_ = REBASE_TYPES::UNKNOWN;
union {
- details::dyld_chained_ptr_arm64e_rebase* arm64_rebase_ = nullptr;
+ details::dyld_chained_ptr_arm64e_rebase* arm64_rebase_ = nullptr;
details::dyld_chained_ptr_arm64e_auth_rebase* arm64_auth_rebase_;
- details::dyld_chained_ptr_64_rebase* p64_rebase_;
- details::dyld_chained_ptr_32_rebase* p32_rebase_;
+ details::dyld_chained_ptr_64_rebase* p64_rebase_;
+ details::dyld_chained_ptr_32_rebase* p32_rebase_;
details::dyld_chained_ptr_arm64e_segmented_rebase* segmented_rebase_;
details::dyld_chained_ptr_arm64e_auth_segmented_rebase* auth_segmented_rebase_;
};
diff --git a/deps/LIEF/include/LIEF/MachO/RelocationObject.hpp b/deps/LIEF/include/LIEF/MachO/RelocationObject.hpp
index 82b2b6da19c..f17c61009c3 100644
--- a/deps/LIEF/include/LIEF/MachO/RelocationObject.hpp
+++ b/deps/LIEF/include/LIEF/MachO/RelocationObject.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,7 +31,7 @@ struct relocation_info;
struct scattered_relocation_info;
}
-/// Class that represents a relocation presents in the MachO object
+/// Class that represents a relocation present in the MachO object
/// file (``.o``). Usually, this kind of relocation is found in the MachO::Section
///
/// @see RelocationDyld
@@ -65,7 +65,8 @@ class LIEF_API RelocationObject : public Relocation {
size_t size() const override;
/// Address where the relocation is applied
- /// This address is relative to the start of the section where the relocation takes place
+ /// This address is relative to the start of the section where the relocation
+ /// takes place
uint64_t address() const override;
/// ``true`` if the relocation is a scattered one
@@ -79,11 +80,12 @@ class LIEF_API RelocationObject : public Relocation {
///
/// For relocatable expressions with the difference of two section addresses,
/// the address from which to subtract (in mathematical terms, the minuend)
- /// is contained in the first relocation entry and the address to subtract (the subtrahend)
- /// is contained in the second relocation entry.
+ /// is contained in the first relocation entry and the address to subtract (the
+ /// subtrahend) is contained in the second relocation entry.
int32_t value() const;
- /// Origin of the relocation. For this object it should be Relocation::ORIGIN::RELOC_TABLE)
+ /// Origin of the relocation. For this object it should be
+ /// Relocation::ORIGIN::RELOC_TABLE)
ORIGIN origin() const override {
return ORIGIN::RELOC_TABLE;
}
diff --git a/deps/LIEF/include/LIEF/MachO/Routine.hpp b/deps/LIEF/include/LIEF/MachO/Routine.hpp
index 8bd97cc486c..c59186de9c1 100644
--- a/deps/LIEF/include/LIEF/MachO/Routine.hpp
+++ b/deps/LIEF/include/LIEF/MachO/Routine.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,7 +27,7 @@ namespace MachO {
class BinaryParser;
/// Class that represents the `LC_ROUTINE/LC_ROUTINE64` commands.
-/// Accodring to the Mach-O `loader.h` documentation:
+/// According to the Mach-O `loader.h` documentation:
///
/// > The routines command contains the address of the dynamic shared library
/// > initialization routine and an index into the module table for the module
@@ -37,6 +37,7 @@ class BinaryParser;
/// > routines (used for C++ static constructors) in the library.
class LIEF_API Routine : public LoadCommand {
friend class BinaryParser;
+
public:
Routine() = default;
@@ -126,6 +127,7 @@ class LIEF_API Routine : public LoadCommand {
return cmd->command() == LoadCommand::TYPE::ROUTINES ||
cmd->command() == LoadCommand::TYPE::ROUTINES_64;
}
+
private:
uint64_t init_address_ = 0;
uint64_t init_module_ = 0;
diff --git a/deps/LIEF/include/LIEF/MachO/Section.hpp b/deps/LIEF/include/LIEF/MachO/Section.hpp
index 20d7cdaad26..1a65307bc5b 100644
--- a/deps/LIEF/include/LIEF/MachO/Section.hpp
+++ b/deps/LIEF/include/LIEF/MachO/Section.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,11 +15,13 @@
*/
#ifndef LIEF_MACHO_SECTION_H
#define LIEF_MACHO_SECTION_H
+#include <cstdint>
#include <string>
#include <vector>
#include <ostream>
#include <memory>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/Abstract/Section.hpp"
@@ -50,7 +52,7 @@ class LIEF_API Section : public LIEF::Section {
friend class SegmentCommand;
public:
- using content_t = std::vector<uint8_t>;
+ using content_t = std::vector<uint8_t>;
/// Internal container for storing Mach-O Relocation
using relocations_t = std::vector<std::unique_ptr<Relocation>>;
@@ -59,67 +61,117 @@ class LIEF_API Section : public LIEF::Section {
using it_relocations = ref_iterator<relocations_t&, Relocation*>;
/// Iterator which outputs const Relocation&
- using it_const_relocations = const_ref_iterator<const relocations_t&, const Relocation*>;
+ using it_const_relocations =
+ const_ref_iterator<const relocations_t&, const Relocation*>;
static constexpr auto FLAGS_MASK = uint32_t(0xffffff00u);
static constexpr auto TYPE_MASK = uint32_t(0xff);
- enum class TYPE: uint64_t {
- REGULAR = 0x00u, ///< Regular section.
- ZEROFILL = 0x01u, ///< Zero fill on demand section.
- CSTRING_LITERALS = 0x02u, ///< Section with literal C strings.
- IS_4BYTE_LITERALS = 0x03u, ///< Section with 4 byte literals.
- IS_8BYTE_LITERALS = 0x04u, ///< Section with 8 byte literals.
- LITERAL_POINTERS = 0x05u, ///< Section with pointers to literals.
- NON_LAZY_SYMBOL_POINTERS = 0x06u, ///< Section with non-lazy symbol pointers.
- LAZY_SYMBOL_POINTERS = 0x07u, ///< Section with lazy symbol pointers.
- SYMBOL_STUBS = 0x08u, ///< Section with symbol stubs, byte size of stub in the Reserved2 field.
- MOD_INIT_FUNC_POINTERS = 0x09u, ///< Section with only function pointers for initialization.
- MOD_TERM_FUNC_POINTERS = 0x0au, ///< Section with only function pointers for termination.
- COALESCED = 0x0bu, ///< Section contains symbols that are to be coalesced.
- GB_ZEROFILL = 0x0cu, ///< Zero fill on demand section (that can be larger than 4 gigabytes).
- INTERPOSING = 0x0du, ///< Section with only pairs of function pointers for interposing.
- IS_16BYTE_LITERALS = 0x0eu, ///< Section with only 16 byte literals.
- DTRACE_DOF = 0x0fu, ///< Section contains DTrace Object Format.
- LAZY_DYLIB_SYMBOL_POINTERS = 0x10u, ///< Section with lazy symbol pointers to lazy loaded dylibs.
- THREAD_LOCAL_REGULAR = 0x11u, ///< Thread local data section.
- THREAD_LOCAL_ZEROFILL = 0x12u, ///< Thread local zerofill section.
- THREAD_LOCAL_VARIABLES = 0x13u, ///< Section with thread local variable structure data.
- THREAD_LOCAL_VARIABLE_POINTERS = 0x14u, ///< Section with pointers to thread local structures.
- THREAD_LOCAL_INIT_FUNCTION_POINTERS = 0x15u, ///< Section with thread local variable initialization pointers to functions.
- INIT_FUNC_OFFSETS = 0x16u, ///< Section with 32-bit offsets to initializer functions
+ enum class TYPE : uint64_t {
+ /// Regular section.
+ REGULAR = 0x00u,
+ /// Zero fill on demand section.
+ ZEROFILL = 0x01u,
+ /// Section with literal C strings.
+ CSTRING_LITERALS = 0x02u,
+ /// Section with 4 byte literals.
+ IS_4BYTE_LITERALS = 0x03u,
+ /// Section with 8 byte literals.
+ IS_8BYTE_LITERALS = 0x04u,
+ /// Section with pointers to literals.
+ LITERAL_POINTERS = 0x05u,
+ /// Section with non-lazy symbol pointers.
+ NON_LAZY_SYMBOL_POINTERS = 0x06u,
+ /// Section with lazy symbol pointers.
+ LAZY_SYMBOL_POINTERS = 0x07u,
+ /// Section with symbol stubs, byte size of stub in the Reserved2 field.
+ SYMBOL_STUBS = 0x08u,
+ /// Section with only function pointers for initialization.
+ MOD_INIT_FUNC_POINTERS = 0x09u,
+ /// Section with only function pointers for termination.
+ MOD_TERM_FUNC_POINTERS = 0x0au,
+ /// Section contains symbols that are to be coalesced.
+ COALESCED = 0x0bu,
+ /// Zero fill on demand section (that can be larger than 4 gigabytes).
+ GB_ZEROFILL = 0x0cu,
+ /// Section with only pairs of function pointers for interposing.
+ INTERPOSING = 0x0du,
+ /// Section with only 16 byte literals.
+ IS_16BYTE_LITERALS = 0x0eu,
+ /// Section contains DTrace Object Format.
+ DTRACE_DOF = 0x0fu,
+ /// Section with lazy symbol pointers to lazy loaded dylibs.
+ LAZY_DYLIB_SYMBOL_POINTERS = 0x10u,
+ /// Thread local data section.
+ THREAD_LOCAL_REGULAR = 0x11u,
+ /// Thread local zerofill section.
+ THREAD_LOCAL_ZEROFILL = 0x12u,
+ /// Section with thread local variable structure data.
+ THREAD_LOCAL_VARIABLES = 0x13u,
+ /// Section with pointers to thread local structures.
+ THREAD_LOCAL_VARIABLE_POINTERS = 0x14u,
+ /// Section with thread local variable initialization pointers to functions.
+ THREAD_LOCAL_INIT_FUNCTION_POINTERS = 0x15u,
+ /// Section with 32-bit offsets to initializer functions.
+ INIT_FUNC_OFFSETS = 0x16u,
};
- enum class FLAGS: uint64_t {
- PURE_INSTRUCTIONS = 0x80000000u, ///< Section contains only true machine instructions
- NO_TOC = 0x40000000u, ///< Section contains coalesced symbols that are not to be in a ranlib table of contents.
- STRIP_STATIC_SYMS = 0x20000000u, ///< Ok to strip static symbols in this section in files with the MY_DYLDLINK flag.
- NO_DEAD_STRIP = 0x10000000u, ///< No dead stripping.
- LIVE_SUPPORT = 0x08000000u, ///< Blocks are live if they reference live blocks.
- SELF_MODIFYING_CODE = 0x04000000u, ///< Used with i386 code stubs written on by dyld
- DEBUG_INFO = 0x02000000u, ///< A debug section.
-
- SOME_INSTRUCTIONS = 0x00000400u, ///< Section contains some machine instructions.
- EXT_RELOC = 0x00000200u, ///< Section has external relocation entries.
- LOC_RELOC = 0x00000100u, ///< Section has local relocation entries.
+ enum class FLAGS : uint64_t {
+ /// Section contains only true machine instructions.
+ PURE_INSTRUCTIONS = 0x80000000u,
+ /// Section contains coalesced symbols that are not to be in a ranlib
+ /// table of contents.
+ NO_TOC = 0x40000000u,
+ /// Ok to strip static symbols in this section in files with the
+ /// MY_DYLDLINK flag.
+ STRIP_STATIC_SYMS = 0x20000000u,
+ /// No dead stripping.
+ NO_DEAD_STRIP = 0x10000000u,
+ /// Blocks are live if they reference live blocks.
+ LIVE_SUPPORT = 0x08000000u,
+ /// Used with i386 code stubs written on by dyld.
+ SELF_MODIFYING_CODE = 0x04000000u,
+ /// A debug section.
+ DEBUG_INFO = 0x02000000u,
+ /// Section contains some machine instructions.
+ SOME_INSTRUCTIONS = 0x00000400u,
+ /// Section has external relocation entries.
+ EXT_RELOC = 0x00000200u,
+ /// Section has local relocation entries.
+ LOC_RELOC = 0x00000100u,
};
public:
- Section();
- Section(const details::section_32& section_cmd);
- Section(const details::section_64& section_cmd);
+ static std::unique_ptr<Section> create(const details::section_32& sec);
+ static std::unique_ptr<Section> create(const details::section_64& sec);
- Section(std::string name);
- Section(std::string name, content_t content);
+ static std::unique_ptr<Section> create(std::string name,
+ const content_t& content,
+ TYPE type = TYPE::REGULAR);
- Section& operator=(Section copy);
- Section(const Section& copy);
- void swap(Section& other) noexcept;
+ static std::unique_ptr<Section> create(std::string name,
+ TYPE type = TYPE::REGULAR) {
+ return create(std::move(name), /*content=*/{}, type);
+ }
+
+ Section(const details::section_32& sec);
+ Section(const details::section_64& sec);
+
+ Section(Section&&);
+ Section& operator=(Section&&);
~Section() override;
- span<const uint8_t> content() const override;
+ virtual std::unique_ptr<Section> clone() const {
+ return std::unique_ptr<Section>(new Section(*this));
+ }
+
+ span<const uint8_t> content() const LIEF_LIFETIMEBOUND override;
+
+ span<uint8_t> content() LIEF_LIFETIMEBOUND {
+ return as_writable(static_cast<const Section*>(this)->content());
+ }
/// Update the content of the section
void content(const content_t& data) override;
@@ -138,7 +190,8 @@ class LIEF_API Section : public LIEF::Section {
}
/// Offset of the relocation table. This value should be 0
- /// for executable and libraries as the relocations are managed by the DyldInfo::rebase
+ /// for executable and libraries as the relocations are managed by the
+ /// DyldInfo::rebase
///
/// On the other hand, for object files (``.o``) this value should not be 0
///
@@ -200,10 +253,10 @@ class LIEF_API Section : public LIEF::Section {
/// The segment associated with this section or a nullptr
/// if not present
- SegmentCommand* segment() {
+ SegmentCommand* segment() LIEF_LIFETIMEBOUND {
return segment_;
}
- const SegmentCommand* segment() const {
+ const SegmentCommand* segment() const LIEF_LIFETIMEBOUND {
return segment_;
}
@@ -212,16 +265,19 @@ class LIEF_API Section : public LIEF::Section {
/// Clear the content of this section by filling its values
/// with the byte provided in parameter
- void clear(uint8_t v);
+ void clear(uint8_t v) {
+ span<uint8_t> write_content = content();
+ std::fill(write_content.begin(), write_content.end(), v);
+ }
/// Return an iterator over the MachO::Relocation associated with this section
///
- /// This iterator is likely to be empty of executable and libraries while it should not
- /// for object files (``.o``)
- it_relocations relocations() {
+ /// This iterator is likely to be empty for executables and libraries while it
+ /// should not be for object files (``.o``)
+ it_relocations relocations() LIEF_LIFETIMEBOUND {
return relocations_;
}
- it_const_relocations relocations() const {
+ it_const_relocations relocations() const LIEF_LIFETIMEBOUND {
return relocations_;
}
@@ -273,11 +329,32 @@ class LIEF_API Section : public LIEF::Section {
return *this;
}
+ template<class T>
+ const T* cast() const {
+ static_assert(std::is_base_of<Section, T>::value,
+ "Require Section inheritance");
+ if (T::classof(this)) {
+ return static_cast<const T*>(this);
+ }
+ return nullptr;
+ }
+
+ template<class T>
+ T* cast() {
+ return const_cast<T*>(static_cast<const Section*>(this)->cast<T>());
+ }
+
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const Section& section);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const Section& section);
+
+ protected:
+ Section();
+
+ Section& operator=(const Section& copy);
+ Section(const Section& copy);
- private:
std::string segment_name_;
uint64_t original_size_ = 0;
uint32_t align_ = 0;
@@ -288,7 +365,7 @@ class LIEF_API Section : public LIEF::Section {
uint32_t reserved2_ = 0;
uint32_t reserved3_ = 0;
content_t content_;
- SegmentCommand *segment_ = nullptr;
+ SegmentCommand* segment_ = nullptr;
relocations_t relocations_;
};
diff --git a/deps/LIEF/include/LIEF/MachO/SegmentCommand.hpp b/deps/LIEF/include/LIEF/MachO/SegmentCommand.hpp
index ef755628bfc..eb6770e3350 100644
--- a/deps/LIEF/include/LIEF/MachO/SegmentCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/SegmentCommand.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,6 +23,7 @@
#include "LIEF/enums.hpp"
#include "LIEF/span.hpp"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/iterators.hpp"
@@ -38,6 +39,7 @@ class BinaryParser;
class Builder;
class DyldChainedFixupsCreator;
class DyldInfo;
+class Parser;
class Relocation;
class Section;
@@ -46,11 +48,13 @@ struct segment_command_32;
struct segment_command_64;
}
-/// Class which represents a LoadCommand::TYPE::SEGMENT / LoadCommand::TYPE::SEGMENT_64 command
+/// Class which represents a LoadCommand::TYPE::SEGMENT /
+/// LoadCommand::TYPE::SEGMENT_64 command
class LIEF_API SegmentCommand : public LoadCommand {
friend class DyldChainedFixupsCreator;
friend class BinaryParser;
+ friend class Parser;
friend class Binary;
friend class Section;
friend class Builder;
@@ -74,22 +78,31 @@ class LIEF_API SegmentCommand : public LoadCommand {
using it_relocations = ref_iterator<relocations_t&, Relocation*>;
/// Iterator which outputs const Relocation&
- using it_const_relocations = const_ref_iterator<const relocations_t&, const Relocation*>;
-
- enum class FLAGS: uint64_t {
- HIGHVM = 0x1u, ///< The file contents for this segment are for the high part of the virtual memory space; the low part is zero filled (for stacks in core files).
- FVMLIB = 0x2u, ///< this segment is the VM that is allocated by a fixed VM library, for overlap checking in the link editor.
- NORELOC = 0x4u, ///< This segment has nothing that was relocated in it and nothing relocated to it. It may be safely replaced without relocation.
+ using it_const_relocations =
+ const_ref_iterator<const relocations_t&, const Relocation*>;
+
+ enum class FLAGS : uint64_t {
+ /// The file contents for this segment are for the high part of the virtual
+ /// memory space; the low part is zero filled (for stacks in core files).
+ HIGHVM = 0x1u,
+ /// This segment is the VM that is allocated by a fixed VM library, for
+ /// overlap checking in the link editor.
+ FVMLIB = 0x2u,
+ /// This segment has nothing that was relocated in it and nothing relocated
+ /// to it. It may be safely replaced without relocation.
+ NORELOC = 0x4u,
PROTECTED_VERSION_1 = 0x8u,
- READ_ONLY = 0x10u,
+ READ_ONLY = 0x10u,
};
- /// Values for segment_command.initprot.
- /// From <mach/vm_prot.h>
- enum class VM_PROTECTIONS {
- READ = 0x1, ///< Reading data within the segment is allowed
- WRITE = 0x2, ///< Writing data within the segment is allowed
- EXECUTE = 0x4, ///< Executing data within the segment is allowed
+ /// Values for segment_command.initprot. From <mach/vm_prot.h>
+ enum class VM_PROTECTIONS {
+ /// Reading data within the segment is allowed.
+ READ = 0x1,
+ /// Writing data within the segment is allowed.
+ WRITE = 0x2,
+ /// Executing data within the segment is allowed.
+ EXECUTE = 0x4,
};
public:
@@ -158,11 +171,11 @@ class LIEF_API SegmentCommand : public LoadCommand {
}
/// Return an iterator over the MachO::Section linked to this segment
- it_sections sections() {
+ it_sections sections() LIEF_LIFETIMEBOUND {
return sections_;
}
- it_const_sections sections() const {
+ it_const_sections sections() const LIEF_LIFETIMEBOUND {
return sections_;
}
@@ -170,20 +183,25 @@ class LIEF_API SegmentCommand : public LoadCommand {
///
/// For Mach-O executable or library this iterator should be empty as
/// the relocations are managed by the Dyld::rebase_opcodes.
- /// On the other hand, for object files (``.o``) this iterator should not be empty
- it_relocations relocations() {
+ /// On the other hand, for object files (``.o``) this iterator should not be
+ /// empty
+ it_relocations relocations() LIEF_LIFETIMEBOUND {
return relocations_;
}
- it_const_relocations relocations() const {
+ it_const_relocations relocations() const LIEF_LIFETIMEBOUND {
return relocations_;
}
/// Get the section with the given name
- const Section* get_section(const std::string& name) const;
- Section* get_section(const std::string& name);
+ const Section* get_section(const std::string& name) const LIEF_LIFETIMEBOUND;
+ Section* get_section(const std::string& name) LIEF_LIFETIMEBOUND;
/// The raw content of this segment
- span<const uint8_t> content() const {
+ span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
+ return data_;
+ }
+
+ span<uint8_t> content() LIEF_LIFETIMEBOUND {
return data_;
}
@@ -192,7 +210,7 @@ class LIEF_API SegmentCommand : public LoadCommand {
/// The original index of this segment or -1 if not defined
int8_t index() const {
- return this->index_;
+ return index_;
}
void name(std::string name) {
@@ -227,7 +245,7 @@ class LIEF_API SegmentCommand : public LoadCommand {
void content(content_t data);
/// Add a new section in this segment
- Section& add_section(const Section& section);
+ Section& add_section(const Section& section) LIEF_LIFETIMEBOUND;
/// Remove all the sections linked to this segment
void remove_all_sections();
@@ -254,10 +272,6 @@ class LIEF_API SegmentCommand : public LoadCommand {
}
protected:
- span<uint8_t> writable_content() {
- return data_;
- }
-
LIEF_LOCAL void content_resize(size_t size);
LIEF_LOCAL void content_insert(size_t where, size_t size);
@@ -265,12 +279,13 @@ class LIEF_API SegmentCommand : public LoadCommand {
content_resize(data_.size() + width);
}
- using update_fnc_t = std::function<void(std::vector<uint8_t>&)>;
- using update_fnc_ws_t = std::function<void(std::vector<uint8_t>&, size_t, size_t)>;
+ using update_fnc_t = std::function<void(std::vector<uint8_t>&)>;
+ using update_fnc_ws_t =
+ std::function<void(std::vector<uint8_t>&, size_t, size_t)>;
LIEF_LOCAL virtual void update_data(const update_fnc_t& f);
- LIEF_LOCAL virtual void update_data(const update_fnc_ws_t& f,
- size_t where, size_t size);
+ LIEF_LOCAL virtual void update_data(const update_fnc_ws_t& f, size_t where,
+ size_t size);
std::string name_;
uint64_t virtual_address_ = 0;
@@ -281,7 +296,7 @@ class LIEF_API SegmentCommand : public LoadCommand {
uint32_t init_protection_ = 0;
uint32_t nb_sections_ = 0;
uint32_t flags_ = 0;
- int8_t index_ = -1;
+ int8_t index_ = -1;
content_t data_;
sections_t sections_;
relocations_t relocations_;
diff --git a/deps/LIEF/include/LIEF/MachO/SegmentSplitInfo.hpp b/deps/LIEF/include/LIEF/MachO/SegmentSplitInfo.hpp
index 46d3c4aa83f..4d2dffb04e9 100644
--- a/deps/LIEF/include/LIEF/MachO/SegmentSplitInfo.hpp
+++ b/deps/LIEF/include/LIEF/MachO/SegmentSplitInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
#define LIEF_MACHO_SEGMENT_SPLIT_INFO_H
#include <ostream>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/span.hpp"
@@ -35,6 +36,7 @@ struct linkedit_data_command;
class LIEF_API SegmentSplitInfo : public LoadCommand {
friend class BinaryParser;
friend class LinkEdit;
+
public:
SegmentSplitInfo() = default;
SegmentSplitInfo(const details::linkedit_data_command& cmd);
@@ -60,11 +62,11 @@ class LIEF_API SegmentSplitInfo : public LoadCommand {
data_size_ = size;
}
- span<uint8_t> content() {
+ span<uint8_t> content() LIEF_LIFETIMEBOUND {
return content_;
}
- span<const uint8_t> content() const {
+ span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
return content_;
}
@@ -80,9 +82,8 @@ class LIEF_API SegmentSplitInfo : public LoadCommand {
private:
uint32_t data_offset_ = 0;
- uint32_t data_size_ = 0;
+ uint32_t data_size_ = 0;
span<uint8_t> content_;
-
};
}
diff --git a/deps/LIEF/include/LIEF/MachO/SourceVersion.hpp b/deps/LIEF/include/LIEF/MachO/SourceVersion.hpp
index 158eff31750..ccbb70c90b0 100644
--- a/deps/LIEF/include/LIEF/MachO/SourceVersion.hpp
+++ b/deps/LIEF/include/LIEF/MachO/SourceVersion.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -51,7 +51,7 @@ class LIEF_API SourceVersion : public LoadCommand {
~SourceVersion() override = default;
/// Return the version as an array
- const version_t& version() const {
+ const version_t& version() const LIEF_LIFETIMEBOUND {
return version_;
}
void version(const version_t& version) {
diff --git a/deps/LIEF/include/LIEF/MachO/Stub.hpp b/deps/LIEF/include/LIEF/MachO/Stub.hpp
index eece39520a4..99ff691e3d4 100644
--- a/deps/LIEF/include/LIEF/MachO/Stub.hpp
+++ b/deps/LIEF/include/LIEF/MachO/Stub.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,7 +15,9 @@
*/
#ifndef LIEF_MACHO_STUB_H
#define LIEF_MACHO_STUB_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
+
#include "LIEF/span.hpp"
#include "LIEF/iterators.hpp"
#include "LIEF/errors.hpp"
@@ -53,14 +55,13 @@ class LIEF_API Stub {
Header::CPU_TYPE arch;
uint32_t subtype = 0;
friend bool operator==(const Stub::target_info_t& lhs,
- const Stub::target_info_t& rhs)
- {
+ const Stub::target_info_t& rhs) {
return lhs.arch == rhs.arch && lhs.subtype == rhs.subtype;
}
};
- class LIEF_API Iterator :
- public iterator_facade_base<Iterator, std::random_access_iterator_tag, const Stub>
- {
+ class LIEF_API Iterator
+ : public iterator_facade_base<Iterator, std::random_access_iterator_tag,
+ const Stub> {
public:
Iterator() = default;
@@ -68,9 +69,7 @@ class LIEF_API Stub {
size_t pos) :
target_info_(target_info),
stubs_(std::move(sections)),
- pos_(pos)
- {
- }
+ pos_(pos) {}
Iterator(const Iterator&) = default;
Iterator& operator=(const Iterator&) = default;
@@ -114,6 +113,7 @@ class LIEF_API Stub {
std::vector<const Section*> stubs_;
size_t pos_ = 0;
};
+
public:
Stub() = delete;
Stub(const Stub&) = default;
@@ -126,11 +126,10 @@ class LIEF_API Stub {
Stub(target_info_t target_info, uint64_t addr, std::vector<uint8_t> raw) :
target_info_(target_info),
address_(addr),
- raw_(std::move(raw))
- {}
+ raw_(std::move(raw)) {}
/// The (raw) instructions of this entry as a slice of bytes
- span<const uint8_t> raw() const {
+ span<const uint8_t> raw() const LIEF_LIFETIMEBOUND {
return raw_;
}
@@ -159,7 +158,7 @@ class LIEF_API Stub {
private:
target_info_t target_info_;
uint64_t address_ = 0;
- [[maybe_unused]] mutable uint64_t target_addr_ = 0;
+ LIEF_MAYBE_UNUSED mutable uint64_t target_addr_ = 0;
std::vector<uint8_t> raw_;
};
diff --git a/deps/LIEF/include/LIEF/MachO/SubClient.hpp b/deps/LIEF/include/LIEF/MachO/SubClient.hpp
index c74fcc3177a..b6447799872 100644
--- a/deps/LIEF/include/LIEF/MachO/SubClient.hpp
+++ b/deps/LIEF/include/LIEF/MachO/SubClient.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2017 - 2025 R. Thomas
+/* Copyright 2017 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,7 +31,7 @@ struct sub_client_command;
}
/// Class that represents the SubClient command.
-/// Accodring to the Mach-O `loader.h` documentation:
+/// According to the Mach-O `loader.h` documentation:
///
/// > For dynamically linked shared libraries that are subframework of an umbrella
/// > framework they can allow clients other than the umbrella framework or other
@@ -42,6 +42,7 @@ struct sub_client_command;
/// > where the bundle is built with "-client_name client_name".
class LIEF_API SubClient : public LoadCommand {
friend class BinaryParser;
+
public:
SubClient() = default;
SubClient(const details::sub_client_command& cmd);
diff --git a/deps/LIEF/include/LIEF/MachO/SubFramework.hpp b/deps/LIEF/include/LIEF/MachO/SubFramework.hpp
index 7fd36ad03b6..8e22a52c328 100644
--- a/deps/LIEF/include/LIEF/MachO/SubFramework.hpp
+++ b/deps/LIEF/include/LIEF/MachO/SubFramework.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,7 +32,7 @@ struct sub_framework_command;
}
/// Class that represents the SubFramework command.
-/// Accodring to the Mach-O ``loader.h`` documentation:
+/// According to the Mach-O ``loader.h`` documentation:
///
///
/// > A dynamically linked shared library may be a subframework of an umbrella
@@ -45,6 +45,7 @@ struct sub_framework_command;
/// > following structure.
class LIEF_API SubFramework : public LoadCommand {
friend class BinaryParser;
+
public:
SubFramework() = default;
SubFramework(const details::sub_framework_command& cmd);
diff --git a/deps/LIEF/include/LIEF/MachO/Symbol.hpp b/deps/LIEF/include/LIEF/MachO/Symbol.hpp
index 4ec3c72e4a2..7c50177637d 100644
--- a/deps/LIEF/include/LIEF/MachO/Symbol.hpp
+++ b/deps/LIEF/include/LIEF/MachO/Symbol.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -50,12 +50,13 @@ class LIEF_API Symbol : public LIEF::Symbol {
friend class Binary;
public:
- static constexpr int SELF_LIBRARY_ORD = 0x0; // Mirror SELF_LIBRARY_ORDINAL
+ static constexpr int SELF_LIBRARY_ORD = 0x0; // Mirror SELF_LIBRARY_ORDINAL
static constexpr int MAIN_EXECUTABLE_ORD = 0xff; // Mirror DYNAMIC_LOOKUP_ORDINAL
- static constexpr int DYNAMIC_LOOKUP_ORD = 0xfe; // EXECUTABLE_ORDINAL
+ static constexpr int DYNAMIC_LOOKUP_ORD = 0xfe; // EXECUTABLE_ORDINAL
/// Category of the symbol when the symbol comes from the `LC_SYMTAB` command.
- /// The category is defined according to the `LC_DYSYMTAB` (DynamicSymbolCommand) command.
+ /// The category is defined according to the `LC_DYSYMTAB` (DynamicSymbolCommand)
+ /// command.
enum class CATEGORY : uint32_t {
NONE = 0,
LOCAL,
@@ -68,18 +69,29 @@ class LIEF_API Symbol : public LIEF::Symbol {
};
enum class ORIGIN : uint32_t {
- UNKNOWN = 0,
+ UNKNOWN = 0,
DYLD_EXPORT = 1,
- DYLD_BIND = 2, /// The symbol comes from the binding opcodes
- SYMTAB = 3, /// The symbol comes from the LC_SYMTAB command
+ /// The symbol comes from the binding opcodes.
+ DYLD_BIND = 2,
+ /// The symbol comes from the LC_SYMTAB command.
+ SYMTAB = 3,
};
- enum class TYPE : uint32_t{
- UNDEFINED = 0x0u, ///< The symbol is undefined. It is referenced in a different module.
- ABSOLUTE_SYM = 0x2u, ///< The symbol is absolute. The linker doesn't update his value.
- SECTION = 0xeu, ///< The symbol is defined in the section number given in nlist_base.n_sect .
- PREBOUND = 0xcu, ///< The symbol is undefined and the image is using a prebound value for the symbol. Set the n_sect field to NO_SECT .
- INDIRECT = 0xau ///< The symbol is defined to be the same as another symbol. The n_value field is an index into the string table specifying the name of the other symbol. When that symbol is linked, both this and the other symbol point to the same defined type and value.
+ enum class TYPE : uint32_t {
+ /// The symbol is undefined. It is referenced in a different module.
+ UNDEFINED = 0x0u,
+ /// The symbol is absolute. The linker doesn't update its value.
+ ABSOLUTE_SYM = 0x2u,
+ /// The symbol is defined in the section number given in nlist_base.n_sect.
+ SECTION = 0xeu,
+ /// The symbol is undefined and the image is using a prebound value for the
+ /// symbol. Set the n_sect field to NO_SECT.
+ PREBOUND = 0xcu,
+ /// The symbol is defined to be the same as another symbol. The n_value
+ /// field is an index into the string table specifying the name of the other
+ /// symbol. When that symbol is linked, both this and the other symbol point
+ /// to the same defined type and value.
+ INDIRECT = 0xau,
};
@@ -94,8 +106,7 @@ class LIEF_API Symbol : public LIEF::Symbol {
type_{n_type},
numberof_sections_{n_sect},
description_{n_desc},
- origin_{ORIGIN::SYMTAB}
- {
+ origin_{ORIGIN::SYMTAB} {
value_ = value;
}
@@ -144,10 +155,10 @@ class LIEF_API Symbol : public LIEF::Symbol {
/// Return the ExportInfo associated with this symbol (or nullptr if not present)
/// @see has_export_info
- const ExportInfo* export_info() const {
+ const ExportInfo* export_info() const LIEF_LIFETIMEBOUND {
return export_info_;
}
- ExportInfo* export_info() {
+ ExportInfo* export_info() LIEF_LIFETIMEBOUND {
return export_info_;
}
@@ -157,13 +168,14 @@ class LIEF_API Symbol : public LIEF::Symbol {
return binding_info() != nullptr;
}
- /// Return the BindingInfo associated with this symbol (or nullptr if not present)
+ /// Return the BindingInfo associated with this symbol (or nullptr if not
+ /// present)
/// @see has_binding_info
- const BindingInfo* binding_info() const {
+ const BindingInfo* binding_info() const LIEF_LIFETIMEBOUND {
return binding_info_;
}
- BindingInfo* binding_info() {
+ BindingInfo* binding_info() LIEF_LIFETIMEBOUND {
return binding_info_;
}
@@ -177,15 +189,16 @@ class LIEF_API Symbol : public LIEF::Symbol {
/// Return the library in which the symbol is defined.
/// It returns a null pointer if the library can't be resolved
- const DylibCommand* library() const {
+ const DylibCommand* library() const LIEF_LIFETIMEBOUND {
return library_;
}
- DylibCommand* library() {
+ DylibCommand* library() LIEF_LIFETIMEBOUND {
return library_;
}
- /// Return the origin of the symbol: from LC_SYMTAB command or from the Dyld information
+ /// Return the origin of the symbol: from LC_SYMTAB command or from the Dyld
+ /// information
ORIGIN origin() const {
return origin_;
}
@@ -215,10 +228,9 @@ class LIEF_API Symbol : public LIEF::Symbol {
private:
Symbol(CATEGORY cat) :
- category_(cat)
- {}
+ category_(cat) {}
void library(DylibCommand& library) {
- this->library_ = &library;
+ library_ = &library;
}
uint8_t type_ = 0;
diff --git a/deps/LIEF/include/LIEF/MachO/SymbolCommand.hpp b/deps/LIEF/include/LIEF/MachO/SymbolCommand.hpp
index 1a41178cc45..54a21a6086a 100644
--- a/deps/LIEF/include/LIEF/MachO/SymbolCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/SymbolCommand.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
#define LIEF_MACHO_SYMBOL_COMMAND_H
#include <ostream>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/span.hpp"
@@ -64,7 +65,7 @@ class LIEF_API SymbolCommand : public LoadCommand {
return strings_offset_;
}
- /// Size of the size string table
+ /// Size of the string table
uint32_t strings_size() const {
return strings_size_;
}
@@ -82,19 +83,19 @@ class LIEF_API SymbolCommand : public LoadCommand {
strings_size_ = size;
}
- span<const uint8_t> symbol_table() const {
+ span<const uint8_t> symbol_table() const LIEF_LIFETIMEBOUND {
return symbol_table_;
}
- span<uint8_t> symbol_table() {
+ span<uint8_t> symbol_table() LIEF_LIFETIMEBOUND {
return symbol_table_;
}
- span<const uint8_t> string_table() const {
+ span<const uint8_t> string_table() const LIEF_LIFETIMEBOUND {
return string_table_;
}
- span<uint8_t> string_table() {
+ span<uint8_t> string_table() LIEF_LIFETIMEBOUND {
return string_table_;
}
@@ -116,11 +117,11 @@ class LIEF_API SymbolCommand : public LoadCommand {
private:
uint32_t symbols_offset_ = 0;
- uint32_t nb_symbols_ = 0;
+ uint32_t nb_symbols_ = 0;
uint32_t strings_offset_ = 0;
- uint32_t strings_size_ = 0;
+ uint32_t strings_size_ = 0;
- uint32_t original_str_size_ = 0;
+ uint32_t original_str_size_ = 0;
uint32_t original_nb_symbols_ = 0;
span<uint8_t> symbol_table_;
diff --git a/deps/LIEF/include/LIEF/MachO/ThreadCommand.hpp b/deps/LIEF/include/LIEF/MachO/ThreadCommand.hpp
index 2c9a955e629..e25308b9950 100644
--- a/deps/LIEF/include/LIEF/MachO/ThreadCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/ThreadCommand.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
#include <vector>
#include <ostream>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/span.hpp"
@@ -34,18 +35,20 @@ struct thread_command;
}
/// Class that represents the LC_THREAD / LC_UNIXTHREAD commands and that
-/// can be used to get the binary entrypoint when the LC_MAIN (MainCommand) is not present
+/// can be used to get the binary entrypoint when the LC_MAIN (MainCommand) is not
+/// present
///
/// Generally speaking, this command aims at defining the original state
/// of the main thread which includes the registers' values
class LIEF_API ThreadCommand : public LoadCommand {
friend class BinaryParser;
+
public:
ThreadCommand() = default;
ThreadCommand(const details::thread_command& cmd,
Header::CPU_TYPE arch = Header::CPU_TYPE::ANY);
ThreadCommand(uint32_t flavor, uint32_t count,
- Header::CPU_TYPE arch= Header::CPU_TYPE::ANY);
+ Header::CPU_TYPE arch = Header::CPU_TYPE::ANY);
ThreadCommand& operator=(const ThreadCommand& copy) = default;
ThreadCommand(const ThreadCommand& copy) = default;
@@ -78,13 +81,14 @@ class LIEF_API ThreadCommand : public LoadCommand {
return architecture_;
}
- /// The actual thread state as a vector of bytes. Depending on the architecture(),
- /// these data can be casted into x86_thread_state_t, x86_thread_state64_t, ...
- span<const uint8_t> state() const {
- return state_;
+ /// The actual thread state as a vector of bytes. Depending on the
+ /// architecture(), these data can be casted into x86_thread_state_t,
+ /// x86_thread_state64_t, ...
+ span<const uint8_t> state() const LIEF_LIFETIMEBOUND {
+ return state_;
}
- span<uint8_t> state() {
+ span<uint8_t> state() LIEF_LIFETIMEBOUND {
return state_;
}
@@ -121,9 +125,8 @@ class LIEF_API ThreadCommand : public LoadCommand {
private:
uint32_t flavor_ = 0;
uint32_t count_ = 0;
- Header::CPU_TYPE architecture_ = Header::CPU_TYPE::ANY;
+ Header::CPU_TYPE architecture_ = Header::CPU_TYPE::ANY;
std::vector<uint8_t> state_;
-
};
}
diff --git a/deps/LIEF/include/LIEF/MachO/ThreadLocalVariables.hpp b/deps/LIEF/include/LIEF/MachO/ThreadLocalVariables.hpp
new file mode 100644
index 00000000000..c332ed7659b
--- /dev/null
+++ b/deps/LIEF/include/LIEF/MachO/ThreadLocalVariables.hpp
@@ -0,0 +1,178 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_MACHO_THREAD_LOCAL_VARIABLES_H
+#define LIEF_MACHO_THREAD_LOCAL_VARIABLES_H
+
+#include "LIEF/visibility.h"
+#include "LIEF/iterators.hpp"
+#include "LIEF/optional.hpp"
+
+#include "LIEF/MachO/Section.hpp"
+
+#include <cassert>
+#include <cstddef>
+#include <cstdint>
+#include <iterator>
+#include <memory>
+#include <ostream>
+#include <string>
+
+namespace LIEF {
+
+namespace MachO {
+
+/// This class represents a MachO section with type
+/// Section::TYPE::THREAD_LOCAL_VARIABLES (`S_THREAD_LOCAL_VARIABLES`).
+///
+/// Such a section contains an array of thread-local variable descriptors
+/// (Thunk) that the dynamic linker (dyld) uses to lazily initialize
+/// thread-local storage (TLS) on first access.
+///
+/// Each descriptor holds a pointer to the initializer function, a TLS key, and
+/// the offset of the variable in the TLS block.
+class LIEF_API ThreadLocalVariables : public LIEF::MachO::Section {
+ public:
+ friend class Section;
+ using LIEF::MachO::Section::Section;
+
+ ThreadLocalVariables();
+
+ ThreadLocalVariables(const ThreadLocalVariables&) = default;
+ ThreadLocalVariables(ThreadLocalVariables&&) noexcept = default;
+
+ ThreadLocalVariables& operator=(const ThreadLocalVariables&) = default;
+ ThreadLocalVariables& operator=(ThreadLocalVariables&&) noexcept = default;
+
+ /// Descriptor for a single thread-local variable.
+ ///
+ /// The layout mirrors the `tlv_descriptor` structure defined in
+ /// `<mach-o/loader.h>` (see also `libdyld/ThreadLocalVariables.h` in dyld).
+ struct LIEF_API Thunk {
+ /// Address of the initializer function (`tlv_thunk`)
+ uint64_t func = 0;
+
+ /// `pthread_key_t` key used by the runtime
+ uint64_t key = 0;
+
+ /// Offset of the variable in the TLS block
+ uint64_t offset = 0;
+
+ std::string to_string() const;
+
+ friend std::ostream& operator<<(std::ostream& os, const Thunk& thunk) {
+ os << thunk.to_string();
+ return os;
+ }
+ };
+
+ /// Random-access iterator that materializes Thunk values on the fly from the
+ /// raw section content.
+ class LIEF_API Iterator
+ : public iterator_facade_base<Iterator, std::random_access_iterator_tag,
+ const Thunk> {
+ public:
+ Iterator() = default;
+
+ Iterator(const ThreadLocalVariables& parent, size_t pos) :
+ parent_(&parent),
+ pos_(pos) {}
+
+ Iterator(const Iterator&) = default;
+ Iterator& operator=(const Iterator&) = default;
+
+ Iterator(Iterator&&) noexcept = default;
+ Iterator& operator=(Iterator&&) noexcept = default;
+
+ ~Iterator() = default;
+
+ bool operator<(const Iterator& rhs) const {
+ return pos_ < rhs.pos_;
+ }
+
+ std::ptrdiff_t operator-(const Iterator& R) const {
+ return pos_ - R.pos_;
+ }
+
+ Iterator& operator+=(std::ptrdiff_t n) {
+ pos_ += n;
+ return *this;
+ }
+
+ Iterator& operator-=(std::ptrdiff_t n) {
+ pos_ -= n;
+ return *this;
+ }
+
+ friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS) {
+ assert(LHS.parent_ == RHS.parent_);
+ return LHS.pos_ == RHS.pos_;
+ }
+
+ friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+ return !(LHS == RHS);
+ }
+
+ Thunk operator*() const {
+ auto value = parent_->get(pos_);
+ assert(value);
+ return *value;
+ }
+
+ private:
+ const ThreadLocalVariables* parent_ = nullptr;
+ size_t pos_ = 0;
+ };
+
+ using thunks_it = iterator_range<Iterator>;
+
+ std::unique_ptr<Section> clone() const override {
+ return std::unique_ptr<Section>(new ThreadLocalVariables(*this));
+ }
+
+ /// Return an iterator range over the Thunk descriptors stored in this
+ /// section.
+ thunks_it thunks() const LIEF_LIFETIMEBOUND {
+ auto B = Iterator(*this, 0);
+ auto E = Iterator(*this, nb_thunks());
+ return make_range(std::move(B), std::move(E)); // NOLINT
+ }
+
+ /// Number of Thunk descriptors in this section.
+ size_t nb_thunks() const;
+
+ /// Access the Thunk at the given @p idx, or return an empty optional if the
+ /// index is out of range.
+ optional<Thunk> get(size_t idx) const;
+
+ /// Change the Thunk at the given @p idx
+ void set(size_t idx, const Thunk& thunk);
+
+ /// Access the Thunk at the given @p idx
+ optional<Thunk> operator[](size_t idx) const {
+ return get(idx);
+ }
+
+ ~ThreadLocalVariables() override = default;
+
+ static bool classof(const Section* section) {
+ return section->type() == Section::TYPE::THREAD_LOCAL_VARIABLES;
+ }
+};
+
+}
+}
+
+#endif
diff --git a/deps/LIEF/include/LIEF/MachO/TwoLevelHints.hpp b/deps/LIEF/include/LIEF/MachO/TwoLevelHints.hpp
index 072950f36a2..3ab64860996 100644
--- a/deps/LIEF/include/LIEF/MachO/TwoLevelHints.hpp
+++ b/deps/LIEF/include/LIEF/MachO/TwoLevelHints.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
#include <vector>
#include <ostream>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/span.hpp"
#include "LIEF/iterators.hpp"
@@ -42,8 +43,8 @@ class LIEF_API TwoLevelHints : public LoadCommand {
friend class Builder;
public:
- using hints_list_t = std::vector<uint32_t>;
- using it_hints_t = ref_iterator<hints_list_t&>;
+ using hints_list_t = std::vector<uint32_t>;
+ using it_hints_t = ref_iterator<hints_list_t&>;
using it_const_hints_t = const_ref_iterator<const hints_list_t&>;
TwoLevelHints() = default;
@@ -57,17 +58,29 @@ class LIEF_API TwoLevelHints : public LoadCommand {
}
/// Original payload of the command
- span<const uint8_t> content() const { return content_; }
- span<uint8_t> content() { return content_; }
+ span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
+ return content_;
+ }
+ span<uint8_t> content() LIEF_LIFETIMEBOUND {
+ return content_;
+ }
/// Iterator over the hints (`uint32_t` integers)
- it_hints_t hints() { return hints_; }
- it_const_hints_t hints() const { return hints_; }
+ it_hints_t hints() {
+ return hints_;
+ }
+ it_const_hints_t hints() const {
+ return hints_;
+ }
/// Original offset of the command. It should point in the
/// `__LINKEDIT` segment
- uint32_t offset() const { return offset_; }
- void offset(uint32_t offset) { offset_ = offset; }
+ uint32_t offset() const {
+ return offset_;
+ }
+ void offset(uint32_t offset) {
+ offset_ = offset;
+ }
uint32_t original_nb_hints() const {
return original_nb_hints_;
diff --git a/deps/LIEF/include/LIEF/MachO/UUIDCommand.hpp b/deps/LIEF/include/LIEF/MachO/UUIDCommand.hpp
index fdbfab6eaa4..6f6c1b39c7b 100644
--- a/deps/LIEF/include/LIEF/MachO/UUIDCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/UUIDCommand.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -47,7 +47,7 @@ class LIEF_API UUIDCommand : public LoadCommand {
~UUIDCommand() override = default;
/// The UUID as a 16-bytes array
- const uuid_t& uuid() const {
+ const uuid_t& uuid() const LIEF_LIFETIMEBOUND {
return uuid_;
}
void uuid(const uuid_t& uuid) {
diff --git a/deps/LIEF/include/LIEF/MachO/UnknownCommand.hpp b/deps/LIEF/include/LIEF/MachO/UnknownCommand.hpp
index 7cd9a58a341..c7dd1b829d4 100644
--- a/deps/LIEF/include/LIEF/MachO/UnknownCommand.hpp
+++ b/deps/LIEF/include/LIEF/MachO/UnknownCommand.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2024 - 2025 R. Thomas
+/* Copyright 2024 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -35,8 +35,7 @@ class LIEF_API UnknownCommand : public LoadCommand {
UnknownCommand() = delete;
UnknownCommand(const details::load_command& command) :
LoadCommand(command),
- original_command_(static_cast<uint64_t>(command_))
- {
+ original_command_(static_cast<uint64_t>(command_)) {
command_ = LoadCommand::TYPE::LIEF_UNKNOWN;
}
diff --git a/deps/LIEF/include/LIEF/MachO/VersionMin.hpp b/deps/LIEF/include/LIEF/MachO/VersionMin.hpp
index a5ebd42961a..3614241d3ab 100644
--- a/deps/LIEF/include/LIEF/MachO/VersionMin.hpp
+++ b/deps/LIEF/include/LIEF/MachO/VersionMin.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,7 +29,8 @@ namespace details {
struct version_min_command;
}
-/// Class that wraps the LC_VERSION_MIN_MACOSX, LC_VERSION_MIN_IPHONEOS, ... commands.
+/// Class that wraps the LC_VERSION_MIN_MACOSX, LC_VERSION_MIN_IPHONEOS, ...
+/// commands.
class LIEF_API VersionMin : public LoadCommand {
public:
@@ -49,7 +50,7 @@ class LIEF_API VersionMin : public LoadCommand {
~VersionMin() override = default;
/// Return the version as an array
- const version_t& version() const {
+ const version_t& version() const LIEF_LIFETIMEBOUND {
return version_;
}
void version(const version_t& version) {
@@ -57,7 +58,7 @@ class LIEF_API VersionMin : public LoadCommand {
}
/// Return the sdk version as an array
- const version_t& sdk() const {
+ const version_t& sdk() const LIEF_LIFETIMEBOUND {
return sdk_;
}
void sdk(const version_t& sdk) {
diff --git a/deps/LIEF/include/LIEF/MachO/enums.hpp b/deps/LIEF/include/LIEF/MachO/enums.hpp
index 9b381fc8d47..ef28a729dea 100644
--- a/deps/LIEF/include/LIEF/MachO/enums.hpp
+++ b/deps/LIEF/include/LIEF/MachO/enums.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,87 +20,113 @@
namespace LIEF {
namespace MachO {
-enum class MACHO_TYPES: uint32_t {
- UNKNOWN = 0,
- MAGIC = 0xFEEDFACEu, ///< 32-bit big-endian magic
- CIGAM = 0xCEFAEDFEu, ///< 32-bit little-endian magic
- MAGIC_64 = 0xFEEDFACFu, ///< 64-bit big-endian magic
- CIGAM_64 = 0xCFFAEDFEu, ///< 64-bit little-endian magic
- MAGIC_FAT = 0xCAFEBABEu, ///< big-endian fat magic
- CIGAM_FAT = 0xBEBAFECAu, ///< little-endian fat magic
+enum class MACHO_TYPES : uint32_t {
+ UNKNOWN = 0,
+ MAGIC = 0xFEEDFACEu, ///< 32-bit big-endian magic
+ CIGAM = 0xCEFAEDFEu, ///< 32-bit little-endian magic
+ MAGIC_64 = 0xFEEDFACFu, ///< 64-bit big-endian magic
+ CIGAM_64 = 0xCFFAEDFEu, ///< 64-bit little-endian magic
+ MAGIC_FAT = 0xCAFEBABEu, ///< big-endian fat magic
+ CIGAM_FAT = 0xBEBAFECAu, ///< little-endian fat magic
NEURAL_MODEL = 0xbeeffaceu,
};
-enum class X86_RELOCATION {
- GENERIC_RELOC_VANILLA = 0, /**< A generic relocation entry for both addresses contained in data and addresses contained in CPU instructions. */
- GENERIC_RELOC_PAIR = 1, /**< The second relocation entry of a pair. */
- GENERIC_RELOC_SECTDIFF = 2, /**< A relocation entry for an item that contains the difference of two section addresses. This is generally used for position-independent code generation. */
- GENERIC_RELOC_PB_LA_PTR = 3, /**< contains the address from which to subtract; it must be followed by a X86_RELOCATION::GENERIC_RELOC_PAIR containing the address to subtract.*/
- GENERIC_RELOC_LOCAL_SECTDIFF = 4, /**< Similar to X86_RELOCATION::GENERIC_RELOC_SECTDIFF except that this entry refers specifically to the address in this item. If the address is that of a globally visible coalesced symbol, this relocation entry does not change if the symbol is overridden. This is used to associate stack unwinding information with the object code this relocation entry describes.*/
- GENERIC_RELOC_TLV = 5, /**< A relocation entry for a prebound lazy pointer. This is always a scattered relocation entry. The MachO::Relocation::value field contains the non-prebound value of the lazy pointer.*/
+enum class X86_RELOCATION {
+ GENERIC_RELOC_VANILLA =
+ 0, /**< A generic relocation entry for both addresses contained in data and
+ addresses contained in CPU instructions. */
+ GENERIC_RELOC_PAIR = 1, /**< The second relocation entry of a pair. */
+ GENERIC_RELOC_SECTDIFF =
+ 2, /**< A relocation entry for an item that contains the difference of two
+ section addresses. This is generally used for position-independent code
+ generation. */
+ GENERIC_RELOC_PB_LA_PTR =
+ 3, /**< contains the address from which to subtract; it must be followed by a
+ X86_RELOCATION::GENERIC_RELOC_PAIR containing the address to
+ subtract.*/
+ GENERIC_RELOC_LOCAL_SECTDIFF =
+ 4, /**< Similar to X86_RELOCATION::GENERIC_RELOC_SECTDIFF except that this
+ entry refers specifically to the address in this item. If the address
+ is that of a globally visible coalesced symbol, this relocation entry
+ does not change if the symbol is overridden. This is used to associate
+ stack unwinding information with the object code this relocation entry
+ describes.*/
+ GENERIC_RELOC_TLV =
+ 5, /**< A relocation entry for a prebound lazy pointer. This is always a
+ scattered relocation entry. The MachO::Relocation::value field contains
+ the non-prebound value of the lazy pointer.*/
};
-enum class X86_64_RELOCATION {
- X86_64_RELOC_UNSIGNED = 0, /**< A CALL/JMP instruction with 32-bit displacement. */
- X86_64_RELOC_SIGNED = 1, /**< A MOVQ load of a GOT entry. */
- X86_64_RELOC_BRANCH = 2, /**< Other GOT references. */
- X86_64_RELOC_GOT_LOAD = 3, /**< Signed 32-bit displacement. */
- X86_64_RELOC_GOT = 4, /**< Absolute address. */
- X86_64_RELOC_SUBTRACTOR = 5, /**< Must be followed by a X86_64_RELOCATION::X86_64_RELOC_UNSIGNED relocation. */
- X86_64_RELOC_SIGNED_1 = 6, /**< */
- X86_64_RELOC_SIGNED_2 = 7, /**< */
- X86_64_RELOC_SIGNED_4 = 8, /**< */
- X86_64_RELOC_TLV = 9, /**< */
+enum class X86_64_RELOCATION {
+ X86_64_RELOC_UNSIGNED =
+ 0, /**< A CALL/JMP instruction with 32-bit displacement. */
+ X86_64_RELOC_SIGNED = 1, /**< A MOVQ load of a GOT entry. */
+ X86_64_RELOC_BRANCH = 2, /**< Other GOT references. */
+ X86_64_RELOC_GOT_LOAD = 3, /**< Signed 32-bit displacement. */
+ X86_64_RELOC_GOT = 4, /**< Absolute address. */
+ X86_64_RELOC_SUBTRACTOR =
+ 5, /**< Must be followed by a X86_64_RELOCATION::X86_64_RELOC_UNSIGNED
+ relocation. */
+ X86_64_RELOC_SIGNED_1 = 6, /**< */
+ X86_64_RELOC_SIGNED_2 = 7, /**< */
+ X86_64_RELOC_SIGNED_4 = 8, /**< */
+ X86_64_RELOC_TLV = 9, /**< */
};
-enum class PPC_RELOCATION {
- PPC_RELOC_VANILLA = 0,
- PPC_RELOC_PAIR = 1,
- PPC_RELOC_BR14 = 2,
- PPC_RELOC_BR24 = 3,
- PPC_RELOC_HI16 = 4,
- PPC_RELOC_LO16 = 5,
- PPC_RELOC_HA16 = 6,
- PPC_RELOC_LO14 = 7,
- PPC_RELOC_SECTDIFF = 8,
- PPC_RELOC_PB_LA_PTR = 9,
- PPC_RELOC_HI16_SECTDIFF = 10,
- PPC_RELOC_LO16_SECTDIFF = 11,
- PPC_RELOC_HA16_SECTDIFF = 12,
- PPC_RELOC_JBSR = 13,
- PPC_RELOC_LO14_SECTDIFF = 14,
- PPC_RELOC_LOCAL_SECTDIFF = 15,
+enum class PPC_RELOCATION {
+ PPC_RELOC_VANILLA = 0,
+ PPC_RELOC_PAIR = 1,
+ PPC_RELOC_BR14 = 2,
+ PPC_RELOC_BR24 = 3,
+ PPC_RELOC_HI16 = 4,
+ PPC_RELOC_LO16 = 5,
+ PPC_RELOC_HA16 = 6,
+ PPC_RELOC_LO14 = 7,
+ PPC_RELOC_SECTDIFF = 8,
+ PPC_RELOC_PB_LA_PTR = 9,
+ PPC_RELOC_HI16_SECTDIFF = 10,
+ PPC_RELOC_LO16_SECTDIFF = 11,
+ PPC_RELOC_HA16_SECTDIFF = 12,
+ PPC_RELOC_JBSR = 13,
+ PPC_RELOC_LO14_SECTDIFF = 14,
+ PPC_RELOC_LOCAL_SECTDIFF = 15,
};
-enum class ARM_RELOCATION {
- ARM_RELOC_VANILLA = 0,
- ARM_RELOC_PAIR = 1,
- ARM_RELOC_SECTDIFF = 2,
- ARM_RELOC_LOCAL_SECTDIFF = 3,
- ARM_RELOC_PB_LA_PTR = 4,
- ARM_RELOC_BR24 = 5,
- ARM_THUMB_RELOC_BR22 = 6,
- ARM_THUMB_32BIT_BRANCH = 7, // obsolete
- ARM_RELOC_HALF = 8,
- ARM_RELOC_HALF_SECTDIFF = 9,
+enum class ARM_RELOCATION {
+ ARM_RELOC_VANILLA = 0,
+ ARM_RELOC_PAIR = 1,
+ ARM_RELOC_SECTDIFF = 2,
+ ARM_RELOC_LOCAL_SECTDIFF = 3,
+ ARM_RELOC_PB_LA_PTR = 4,
+ ARM_RELOC_BR24 = 5,
+ ARM_THUMB_RELOC_BR22 = 6,
+ ARM_THUMB_32BIT_BRANCH = 7, // obsolete
+ ARM_RELOC_HALF = 8,
+ ARM_RELOC_HALF_SECTDIFF = 9,
};
-enum class ARM64_RELOCATION {
- ARM64_RELOC_UNSIGNED = 0, /**< For pointers. */
- ARM64_RELOC_SUBTRACTOR = 1, /**< Must be followed by an ARM64_RELOCATION::ARM64_RELOC_UNSIGNED */
- ARM64_RELOC_BRANCH26 = 2, /**< A B/BL instruction with 26-bit displacement. */
- ARM64_RELOC_PAGE21 = 3, /**< PC-rel distance to page of target. */
- ARM64_RELOC_PAGEOFF12 = 4, /**< Offset within page, scaled by MachO::Relocation::size. */
- ARM64_RELOC_GOT_LOAD_PAGE21 = 5, /**< PC-rel distance to page of GOT slot */
- ARM64_RELOC_GOT_LOAD_PAGEOFF12 = 6, /**< Offset within page of GOT slot, scaled by MachO::Relocation::size. */
- ARM64_RELOC_POINTER_TO_GOT = 7, /**< For pointers to GOT slots. */
- ARM64_RELOC_TLVP_LOAD_PAGE21 = 8, /**< PC-rel distance to page of TLVP slot. */
- ARM64_RELOC_TLVP_LOAD_PAGEOFF12 = 9, /**< Offset within page of TLVP slot, scaled by MachO::Relocation::size.*/
- ARM64_RELOC_ADDEND = 10, /**< Must be followed by ARM64_RELOCATION::ARM64_RELOC_PAGE21 or ARM64_RELOCATION::ARM64_RELOC_PAGEOFF12. */
+enum class ARM64_RELOCATION {
+ ARM64_RELOC_UNSIGNED = 0, /**< For pointers. */
+ ARM64_RELOC_SUBTRACTOR =
+ 1, /**< Must be followed by an ARM64_RELOCATION::ARM64_RELOC_UNSIGNED */
+ ARM64_RELOC_BRANCH26 = 2, /**< A B/BL instruction with 26-bit displacement. */
+ ARM64_RELOC_PAGE21 = 3, /**< PC-rel distance to page of target. */
+ ARM64_RELOC_PAGEOFF12 =
+ 4, /**< Offset within page, scaled by MachO::Relocation::size. */
+ ARM64_RELOC_GOT_LOAD_PAGE21 = 5, /**< PC-rel distance to page of GOT slot */
+ ARM64_RELOC_GOT_LOAD_PAGEOFF12 =
+ 6, /**< Offset within page of GOT slot, scaled by MachO::Relocation::size. */
+ ARM64_RELOC_POINTER_TO_GOT = 7, /**< For pointers to GOT slots. */
+ ARM64_RELOC_TLVP_LOAD_PAGE21 = 8, /**< PC-rel distance to page of TLVP slot. */
+ ARM64_RELOC_TLVP_LOAD_PAGEOFF12 =
+ 9, /**< Offset within page of TLVP slot, scaled by MachO::Relocation::size.*/
+ ARM64_RELOC_ADDEND =
+ 10, /**< Must be followed by ARM64_RELOCATION::ARM64_RELOC_PAGE21 or
+ ARM64_RELOCATION::ARM64_RELOC_PAGEOFF12. */
};
}
diff --git a/deps/LIEF/include/LIEF/MachO/hash.hpp b/deps/LIEF/include/LIEF/MachO/hash.hpp
index 9058b5d2aba..eccde6427fa 100644
--- a/deps/LIEF/include/LIEF/MachO/hash.hpp
+++ b/deps/LIEF/include/LIEF/MachO/hash.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -76,48 +76,48 @@ class LIEF_API Hash : public LIEF::Hash {
using LIEF::Hash::visit;
public:
- void visit(const Binary& binary) override;
- void visit(const BindingInfo& binding) override;
- void visit(const BuildToolVersion& e) override;
- void visit(const BuildVersion& e) override;
- void visit(const ChainedBindingInfo& binding) override;
- void visit(const CodeSignature& cs) override;
- void visit(const CodeSignatureDir& e) override;
- void visit(const DataCodeEntry& dce) override;
- void visit(const DataInCode& dic) override;
- void visit(const DyldBindingInfo& binding) override;
- void visit(const DyldEnvironment& sf) override;
- void visit(const DyldExportsTrie& trie) override;
- void visit(const DylibCommand& dylib) override;
- void visit(const DylinkerCommand& dylinker) override;
- void visit(const DynamicSymbolCommand& dynamic_symbol) override;
- void visit(const EncryptionInfo& e) override;
- void visit(const ExportInfo& einfo) override;
- void visit(const FilesetCommand& e) override;
- void visit(const FunctionStarts& fs) override;
- void visit(const Header& header) override;
- void visit(const LinkerOptHint& e) override;
- void visit(const LoadCommand& cmd) override;
- void visit(const MainCommand& maincmd) override;
- void visit(const NoteCommand& note) override;
- void visit(const Routine& rpath) override;
- void visit(const RPathCommand& rpath) override;
- void visit(const Relocation& relocation) override;
- void visit(const RelocationDyld& rdyld) override;
- void visit(const RelocationFixup& fixup) override;
- void visit(const RelocationObject& robject) override;
- void visit(const Section& section) override;
- void visit(const SegmentCommand& segment) override;
- void visit(const SegmentSplitInfo& ssi) override;
- void visit(const SourceVersion& sv) override;
- void visit(const SubFramework& sf) override;
- void visit(const Symbol& symbol) override;
- void visit(const SymbolCommand& symbol) override;
- void visit(const ThreadCommand& threadcmd) override;
- void visit(const TwoLevelHints& e) override;
- void visit(const UUIDCommand& uuid) override;
- void visit(const VersionMin& vmin) override;
- void visit(const UnknownCommand& ukn) override;
+ void visit(const Binary& binary) override;
+ void visit(const BindingInfo& binding) override;
+ void visit(const BuildToolVersion& e) override;
+ void visit(const BuildVersion& e) override;
+ void visit(const ChainedBindingInfo& binding) override;
+ void visit(const CodeSignature& cs) override;
+ void visit(const CodeSignatureDir& e) override;
+ void visit(const DataCodeEntry& dce) override;
+ void visit(const DataInCode& dic) override;
+ void visit(const DyldBindingInfo& binding) override;
+ void visit(const DyldEnvironment& sf) override;
+ void visit(const DyldExportsTrie& trie) override;
+ void visit(const DylibCommand& dylib) override;
+ void visit(const DylinkerCommand& dylinker) override;
+ void visit(const DynamicSymbolCommand& dynamic_symbol) override;
+ void visit(const EncryptionInfo& e) override;
+ void visit(const ExportInfo& einfo) override;
+ void visit(const FilesetCommand& e) override;
+ void visit(const FunctionStarts& fs) override;
+ void visit(const Header& header) override;
+ void visit(const LinkerOptHint& e) override;
+ void visit(const LoadCommand& cmd) override;
+ void visit(const MainCommand& maincmd) override;
+ void visit(const NoteCommand& note) override;
+ void visit(const Routine& rpath) override;
+ void visit(const RPathCommand& rpath) override;
+ void visit(const Relocation& relocation) override;
+ void visit(const RelocationDyld& rdyld) override;
+ void visit(const RelocationFixup& fixup) override;
+ void visit(const RelocationObject& robject) override;
+ void visit(const Section& section) override;
+ void visit(const SegmentCommand& segment) override;
+ void visit(const SegmentSplitInfo& ssi) override;
+ void visit(const SourceVersion& sv) override;
+ void visit(const SubFramework& sf) override;
+ void visit(const Symbol& symbol) override;
+ void visit(const SymbolCommand& symbol) override;
+ void visit(const ThreadCommand& threadcmd) override;
+ void visit(const TwoLevelHints& e) override;
+ void visit(const UUIDCommand& uuid) override;
+ void visit(const VersionMin& vmin) override;
+ void visit(const UnknownCommand& ukn) override;
~Hash() override;
};
diff --git a/deps/LIEF/include/LIEF/MachO/json.hpp b/deps/LIEF/include/LIEF/MachO/json.hpp
index afd1854f39f..d4cf2e64a94 100644
--- a/deps/LIEF/include/LIEF/MachO/json.hpp
+++ b/deps/LIEF/include/LIEF/MachO/json.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/MachO/type_traits.hpp b/deps/LIEF/include/LIEF/MachO/type_traits.hpp
index 0c4c9969ed3..ff338febfe5 100644
--- a/deps/LIEF/include/LIEF/MachO/type_traits.hpp
+++ b/deps/LIEF/include/LIEF/MachO/type_traits.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/MachO/utils.hpp b/deps/LIEF/include/LIEF/MachO/utils.hpp
index a0957a9d724..30dfa18bde5 100644
--- a/deps/LIEF/include/LIEF/MachO/utils.hpp
+++ b/deps/LIEF/include/LIEF/MachO/utils.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -55,11 +55,11 @@ LIEF_API bool check_layout(const Binary& binary, std::string* error = nullptr);
LIEF_API bool check_layout(const FatBinary& binary, std::string* error = nullptr);
-using segment_callback_t = std::function<
- void(const std::string& name, uint64_t offset, uint64_t size, uint64_t addr, uint64_t vsize)
->;
+using segment_callback_t =
+ std::function<void(const std::string& name, uint64_t offset, uint64_t size,
+ uint64_t addr, uint64_t vsize)>;
-LIEF_API void foreach_segment(BinaryStream& stream, const segment_callback_t cbk);
+LIEF_API void foreach_segment(BinaryStream& stream, const segment_callback_t& cbk);
}
}
diff --git a/deps/LIEF/include/LIEF/OAT.hpp b/deps/LIEF/include/LIEF/OAT.hpp
index e9ccb622c7b..03695cefc84 100644
--- a/deps/LIEF/include/LIEF/OAT.hpp
+++ b/deps/LIEF/include/LIEF/OAT.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,14 +19,14 @@
#include "LIEF/config.h"
#if defined(LIEF_OAT_SUPPORT)
-#include "LIEF/OAT/Parser.hpp"
-#include "LIEF/OAT/utils.hpp"
-#include "LIEF/OAT/Binary.hpp"
-#include "LIEF/OAT/Header.hpp"
-#include "LIEF/OAT/DexFile.hpp"
-#include "LIEF/OAT/Class.hpp"
-#include "LIEF/OAT/Method.hpp"
-#include "LIEF/OAT/EnumToString.hpp"
+ #include "LIEF/OAT/Parser.hpp"
+ #include "LIEF/OAT/utils.hpp"
+ #include "LIEF/OAT/Binary.hpp"
+ #include "LIEF/OAT/Header.hpp"
+ #include "LIEF/OAT/DexFile.hpp"
+ #include "LIEF/OAT/Class.hpp"
+ #include "LIEF/OAT/Method.hpp"
+ #include "LIEF/OAT/EnumToString.hpp"
#endif
#endif
diff --git a/deps/LIEF/include/LIEF/OAT/Binary.hpp b/deps/LIEF/include/LIEF/OAT/Binary.hpp
index f491a53b6f3..8f8f992ec54 100644
--- a/deps/LIEF/include/LIEF/OAT/Binary.hpp
+++ b/deps/LIEF/include/LIEF/OAT/Binary.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -42,44 +42,46 @@ class LIEF_API Binary : public ELF::Binary {
friend class Parser;
public:
- using dex_files_t = std::vector<std::unique_ptr<DEX::File>>;
- using it_dex_files = ref_iterator<dex_files_t&, DEX::File*>;
- using it_const_dex_files = const_ref_iterator<const dex_files_t&, const DEX::File*>;
+ using dex_files_t = std::vector<std::unique_ptr<DEX::File>>;
+ using it_dex_files = ref_iterator<dex_files_t&, DEX::File*>;
+ using it_const_dex_files =
+ const_ref_iterator<const dex_files_t&, const DEX::File*>;
- using classes_t = std::unordered_map<std::string, Class*>;
- using classes_list_t = std::vector<std::unique_ptr<Class>>;
- using it_classes = ref_iterator<classes_list_t&, Class*>;
- using it_const_classes = const_ref_iterator<const classes_list_t&, const Class*>;
+ using classes_t = std::unordered_map<std::string, Class*>;
+ using classes_list_t = std::vector<std::unique_ptr<Class>>;
+ using it_classes = ref_iterator<classes_list_t&, Class*>;
+ using it_const_classes = const_ref_iterator<const classes_list_t&, const Class*>;
- using oat_dex_files_t = std::vector<std::unique_ptr<DexFile>>;
- using it_oat_dex_files = ref_iterator<oat_dex_files_t&, DexFile*>;
- using it_const_oat_dex_files = const_ref_iterator<const oat_dex_files_t&, const DexFile*>;
+ using oat_dex_files_t = std::vector<std::unique_ptr<DexFile>>;
+ using it_oat_dex_files = ref_iterator<oat_dex_files_t&, DexFile*>;
+ using it_const_oat_dex_files =
+ const_ref_iterator<const oat_dex_files_t&, const DexFile*>;
- using methods_t = std::vector<std::unique_ptr<Method>>;
- using it_methods = ref_iterator<methods_t&, Method*>;
- using it_const_methods = const_ref_iterator<const methods_t&, const Method*>;
+ using methods_t = std::vector<std::unique_ptr<Method>>;
+ using it_methods = ref_iterator<methods_t&, Method*>;
+ using it_const_methods = const_ref_iterator<const methods_t&, const Method*>;
using dex2dex_info_t = std::unordered_map<const DEX::File*, DEX::dex2dex_info_t>;
public:
Binary& operator=(const Binary& copy) = delete;
- Binary(const Binary& copy) = delete;
+ Binary(const Binary& copy) = delete;
/// OAT Header
- const Header& header() const;
- Header& header();
+ const Header& header() const LIEF_LIFETIMEBOUND;
+ Header& header() LIEF_LIFETIMEBOUND;
/// Iterator over LIEF::DEX::File
- it_dex_files dex_files();
- it_const_dex_files dex_files() const;
+ it_dex_files dex_files() LIEF_LIFETIMEBOUND;
+ it_const_dex_files dex_files() const LIEF_LIFETIMEBOUND;
/// Iterator over LIEF::OAT::DexFile
- it_oat_dex_files oat_dex_files();
- it_const_oat_dex_files oat_dex_files() const;
+ it_oat_dex_files oat_dex_files() LIEF_LIFETIMEBOUND;
+ it_const_oat_dex_files oat_dex_files() const LIEF_LIFETIMEBOUND;
/// Iterator over LIEF::OAT::Class
- it_const_classes classes() const;
- it_classes classes();
+ it_const_classes classes() const LIEF_LIFETIMEBOUND;
+ it_classes classes() LIEF_LIFETIMEBOUND;
/// Check if the current OAT has the given class
bool has_class(const std::string& class_name) const;
@@ -87,19 +89,19 @@ class LIEF_API Binary : public ELF::Binary {
/// Return the LIEF::OAT::Class with the given name or
/// a nullptr if the class can't be found
- const Class* get_class(const std::string& class_name) const;
+ const Class* get_class(const std::string& class_name) const LIEF_LIFETIMEBOUND;
- Class* get_class(const std::string& class_name);
+ Class* get_class(const std::string& class_name) LIEF_LIFETIMEBOUND;
/// Return the LIEF::OAT::Class at the given index or a nullptr
/// if it does not exist
- const Class* get_class(size_t index) const;
+ const Class* get_class(size_t index) const LIEF_LIFETIMEBOUND;
- Class* get_class(size_t index);
+ Class* get_class(size_t index) LIEF_LIFETIMEBOUND;
/// Iterator over LIEF::OAT::Method
- it_const_methods methods() const;
- it_methods methods();
+ it_const_methods methods() const LIEF_LIFETIMEBOUND;
+ it_methods methods() LIEF_LIFETIMEBOUND;
dex2dex_info_t dex2dex_info() const;
diff --git a/deps/LIEF/include/LIEF/OAT/Class.hpp b/deps/LIEF/include/LIEF/OAT/Class.hpp
index bb1d235735f..72f3b199f5d 100644
--- a/deps/LIEF/include/LIEF/OAT/Class.hpp
+++ b/deps/LIEF/include/LIEF/OAT/Class.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -44,8 +44,8 @@ class LIEF_API Class : public Object {
public:
Class();
- Class(OAT_CLASS_STATUS status, OAT_CLASS_TYPES type,
- DEX::Class* dex_class, std::vector<uint32_t> bitmap = {});
+ Class(OAT_CLASS_STATUS status, OAT_CLASS_TYPES type, DEX::Class* dex_class,
+ std::vector<uint32_t> bitmap = {});
Class(const Class&);
Class& operator=(const Class&);
@@ -84,15 +84,13 @@ class LIEF_API Class : public Object {
~Class() override;
private:
-
DEX::Class* dex_class_ = nullptr;
OAT_CLASS_STATUS status_ = OAT_CLASS_STATUS::STATUS_NOTREADY;
- OAT_CLASS_TYPES type_ = OAT_CLASS_TYPES::OAT_CLASS_NONE_COMPILED;
+ OAT_CLASS_TYPES type_ = OAT_CLASS_TYPES::OAT_CLASS_NONE_COMPILED;
std::vector<uint32_t> method_bitmap_;
methods_t methods_;
-
};
} // Namespace OAT
diff --git a/deps/LIEF/include/LIEF/OAT/DexFile.hpp b/deps/LIEF/include/LIEF/OAT/DexFile.hpp
index 3902404fa97..41ce04f2d3f 100644
--- a/deps/LIEF/include/LIEF/OAT/DexFile.hpp
+++ b/deps/LIEF/include/LIEF/OAT/DexFile.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -70,7 +70,8 @@ class LIEF_API DexFile : public Object {
~DexFile() override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const DexFile& dex_file);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const DexFile& dex_file);
private:
std::string location_;
diff --git a/deps/LIEF/include/LIEF/OAT/EnumToString.hpp b/deps/LIEF/include/LIEF/OAT/EnumToString.hpp
index 8ec2579f6e9..9a9227fb6ce 100644
--- a/deps/LIEF/include/LIEF/OAT/EnumToString.hpp
+++ b/deps/LIEF/include/LIEF/OAT/EnumToString.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -30,4 +30,3 @@ LIEF_API const char* to_string(INSTRUCTION_SETS e);
} // namespace LIEF
#endif
-
diff --git a/deps/LIEF/include/LIEF/OAT/Header.hpp b/deps/LIEF/include/LIEF/OAT/Header.hpp
index fe8a1e347bf..3f92526006a 100644
--- a/deps/LIEF/include/LIEF/OAT/Header.hpp
+++ b/deps/LIEF/include/LIEF/OAT/Header.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -39,18 +39,19 @@ class LIEF_API Header : public Object {
public:
struct element_t {
element_t(HEADER_KEYS key, const std::string& value) :
- key(key), value(const_cast<std::string*>(&value)) {}
+ key(key),
+ value(const_cast<std::string*>(&value)) {}
HEADER_KEYS key;
std::string* value = nullptr;
};
- using magic_t = std::array<uint8_t, 4>; // oat\n
- using key_values_t = std::map<HEADER_KEYS, std::string>;
- using it_key_values_t = ref_iterator<std::vector<element_t>>;
+ using magic_t = std::array<uint8_t, 4>; // oat\n
+ using key_values_t = std::map<HEADER_KEYS, std::string>;
+ using it_key_values_t = ref_iterator<std::vector<element_t>>;
using it_const_key_values_t = const_ref_iterator<std::vector<element_t>>;
/// Iterator type over
- using keys_t = std::vector<HEADER_KEYS>;
+ using keys_t = std::vector<HEADER_KEYS>;
using values_t = std::vector<std::string>;
public:
@@ -99,16 +100,16 @@ class LIEF_API Header : public Object {
uint32_t key_value_size() const;
- it_key_values_t key_values();
- it_const_key_values_t key_values() const;
+ it_key_values_t key_values() LIEF_LIFETIMEBOUND;
+ it_const_key_values_t key_values() const LIEF_LIFETIMEBOUND;
keys_t keys() const;
values_t values() const;
- const std::string* get(HEADER_KEYS key) const;
- std::string* get(HEADER_KEYS key);
+ const std::string* get(HEADER_KEYS key) const LIEF_LIFETIMEBOUND;
+ std::string* get(HEADER_KEYS key) LIEF_LIFETIMEBOUND;
- Header& set(HEADER_KEYS key, const std::string& value);
+ Header& set(HEADER_KEYS key, const std::string& value) LIEF_LIFETIMEBOUND;
const std::string* operator[](HEADER_KEYS key) const;
std::string* operator[](HEADER_KEYS key);
@@ -146,8 +147,6 @@ class LIEF_API Header : public Object {
uint32_t key_value_store_size_ = 0;
key_values_t dex2oat_context_;
-
-
};
}
diff --git a/deps/LIEF/include/LIEF/OAT/Method.hpp b/deps/LIEF/include/LIEF/OAT/Method.hpp
index 1194cf6a006..c3bbb3ed2c9 100644
--- a/deps/LIEF/include/LIEF/OAT/Method.hpp
+++ b/deps/LIEF/include/LIEF/OAT/Method.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -33,14 +33,14 @@ class Class;
class LIEF_API Method : public Object {
friend class Parser;
- public:
+ public:
/// Container for the Quick Code
using quick_code_t = std::vector<uint8_t>;
public:
Method();
- Method(DEX::Method* method, Class* oat_class, std::vector<uint8_t> code = {});
+ Method(DEX::Method* method, Class* oat_class, std::vector<uint8_t> code = {});
Method(const Method&);
Method& operator=(const Method&);
@@ -49,16 +49,16 @@ class LIEF_API Method : public Object {
std::string name() const;
/// OAT Class associated with this Method
- const Class* oat_class() const;
- Class* oat_class();
+ const Class* oat_class() const LIEF_LIFETIMEBOUND;
+ Class* oat_class() LIEF_LIFETIMEBOUND;
/// Check if a LIEF::DEX::Method is associated with
/// this Method
bool has_dex_method() const;
/// LIEF::DEX::Method associated (if any)
- const DEX::Method* dex_method() const;
- DEX::Method* dex_method();
+ const DEX::Method* dex_method() const LIEF_LIFETIMEBOUND;
+ DEX::Method* dex_method() LIEF_LIFETIMEBOUND;
/// True if the optimization is DEX
bool is_dex2dex_optimized() const;
diff --git a/deps/LIEF/include/LIEF/OAT/Parser.hpp b/deps/LIEF/include/LIEF/OAT/Parser.hpp
index 87b280ae76b..f34f3864ba3 100644
--- a/deps/LIEF/include/LIEF/OAT/Parser.hpp
+++ b/deps/LIEF/include/LIEF/OAT/Parser.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,8 +15,10 @@
*/
#ifndef LIEF_OAT_PARSER_H
#define LIEF_OAT_PARSER_H
+#include <cstdint>
#include <memory>
+#include "LIEF/errors.hpp"
#include "LIEF/visibility.h"
#include "LIEF/ELF/Parser.hpp"
@@ -45,7 +47,7 @@ class LIEF_API Parser : public ELF::Parser {
static std::unique_ptr<Binary> parse(std::vector<uint8_t> data);
Parser& operator=(const Parser& copy) = delete;
- Parser(const Parser& copy) = delete;
+ Parser(const Parser& copy) = delete;
protected:
Parser();
@@ -80,10 +82,13 @@ class LIEF_API Parser : public ELF::Parser {
void parse_oat_classes();
template<typename OAT_T>
- void parse_oat_methods(uint64_t methods_offsets, Class& clazz, const DEX::Class& dex_class);
+ void parse_oat_methods(uint64_t methods_offsets, Class& clazz,
+ const DEX::Class& dex_class);
void init();
+ result<uint64_t> oat_data_exec_gap() const;
+
std::unique_ptr<LIEF::VDEX::File> vdex_file_;
uint64_t data_address_ = 0;
diff --git a/deps/LIEF/include/LIEF/OAT/enums.hpp b/deps/LIEF/include/LIEF/OAT/enums.hpp
index d0d098da35d..bdb0b0bbf5d 100644
--- a/deps/LIEF/include/LIEF/OAT/enums.hpp
+++ b/deps/LIEF/include/LIEF/OAT/enums.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,69 +20,68 @@ namespace LIEF {
namespace OAT {
enum OAT_CLASS_TYPES {
- OAT_CLASS_ALL_COMPILED = 0, /// OatClass is followed by an OatMethodOffsets for each method.
- OAT_CLASS_SOME_COMPILED = 1, /// A bitmap of which OatMethodOffsets are present follows the OatClass.
- OAT_CLASS_NONE_COMPILED = 2, /// All methods are interpreted so no OatMethodOffsets are necessary.
+ OAT_CLASS_ALL_COMPILED =
+ 0, /// OatClass is followed by an OatMethodOffsets for each method.
+ OAT_CLASS_SOME_COMPILED =
+ 1, /// A bitmap of which OatMethodOffsets are present follows the OatClass.
+ OAT_CLASS_NONE_COMPILED =
+ 2, /// All methods are interpreted so no OatMethodOffsets are necessary.
};
// From art/runtime/mirror/class.h
enum OAT_CLASS_STATUS {
- STATUS_RETIRED = -2, // Retired, should not be used. Use the newly cloned one instead.
- STATUS_ERROR = -1,
- STATUS_NOTREADY = 0,
- STATUS_IDX = 1, // Loaded, DEX idx in super_class_type_idx_ and interfaces_type_idx_.
- STATUS_LOADED = 2, // DEX idx values resolved.
- STATUS_RESOLVING = 3, // Just cloned from temporary class object.
- STATUS_RESOLVED = 4, // Part of linking.
- STATUS_VERIFYING = 5, // In the process of being verified.
- STATUS_RETRY_VERIFICATION_AT_RUNTIME = 6, // Compile time verification failed, retry at runtime.
- STATUS_VERIFYING_AT_RUNTIME = 7, // Retrying verification at runtime.
- STATUS_VERIFIED = 8, // Logically part of linking; done pre-init.
- STATUS_INITIALIZING = 9, // Class init in progress.
- STATUS_INITIALIZED = 10, // Ready to go.
+ STATUS_RETIRED =
+ -2, // Retired, should not be used. Use the newly cloned one instead.
+ STATUS_ERROR = -1,
+ STATUS_NOTREADY = 0,
+ STATUS_IDX =
+ 1, // Loaded, DEX idx in super_class_type_idx_ and interfaces_type_idx_.
+ STATUS_LOADED = 2, // DEX idx values resolved.
+ STATUS_RESOLVING = 3, // Just cloned from temporary class object.
+ STATUS_RESOLVED = 4, // Part of linking.
+ STATUS_VERIFYING = 5, // In the process of being verified.
+ STATUS_RETRY_VERIFICATION_AT_RUNTIME =
+ 6, // Compile time verification failed, retry at runtime.
+ STATUS_VERIFYING_AT_RUNTIME = 7, // Retrying verification at runtime.
+ STATUS_VERIFIED = 8, // Logically part of linking; done pre-init.
+ STATUS_INITIALIZING = 9, // Class init in progress.
+ STATUS_INITIALIZED = 10, // Ready to go.
};
enum HEADER_KEYS {
- KEY_IMAGE_LOCATION = 0,
- KEY_DEX2OAT_CMD_LINE = 1,
- KEY_DEX2OAT_HOST = 2,
- KEY_PIC = 3,
- KEY_HAS_PATCH_INFO = 4,
- KEY_DEBUGGABLE = 5,
- KEY_NATIVE_DEBUGGABLE = 6,
- KEY_COMPILER_FILTER = 7,
- KEY_CLASS_PATH = 8,
- KEY_BOOT_CLASS_PATH = 9,
+ KEY_IMAGE_LOCATION = 0,
+ KEY_DEX2OAT_CMD_LINE = 1,
+ KEY_DEX2OAT_HOST = 2,
+ KEY_PIC = 3,
+ KEY_HAS_PATCH_INFO = 4,
+ KEY_DEBUGGABLE = 5,
+ KEY_NATIVE_DEBUGGABLE = 6,
+ KEY_COMPILER_FILTER = 7,
+ KEY_CLASS_PATH = 8,
+ KEY_BOOT_CLASS_PATH = 9,
KEY_CONCURRENT_COPYING = 10,
- KE_COMPILATION_REASON = 11,
+ KE_COMPILATION_REASON = 11,
};
enum INSTRUCTION_SETS {
- INST_SET_NONE = 0,
- INST_SET_ARM = 1,
- INST_SET_ARM_64 = 2,
- INST_SET_THUMB2 = 3,
- INST_SET_X86 = 4,
- INST_SET_X86_64 = 5,
- INST_SET_MIPS = 6,
+ INST_SET_NONE = 0,
+ INST_SET_ARM = 1,
+ INST_SET_ARM_64 = 2,
+ INST_SET_THUMB2 = 3,
+ INST_SET_X86 = 4,
+ INST_SET_X86_64 = 5,
+ INST_SET_MIPS = 6,
INST_SET_MIPS_64 = 7,
};
-
static const HEADER_KEYS header_keys_list[] = {
- HEADER_KEYS::KEY_IMAGE_LOCATION ,
- HEADER_KEYS::KEY_DEX2OAT_CMD_LINE ,
- HEADER_KEYS::KEY_DEX2OAT_HOST ,
- HEADER_KEYS::KEY_PIC ,
- HEADER_KEYS::KEY_HAS_PATCH_INFO ,
- HEADER_KEYS::KEY_DEBUGGABLE ,
- HEADER_KEYS::KEY_NATIVE_DEBUGGABLE ,
- HEADER_KEYS::KEY_COMPILER_FILTER ,
- HEADER_KEYS::KEY_CLASS_PATH ,
- HEADER_KEYS::KEY_BOOT_CLASS_PATH ,
- HEADER_KEYS::KEY_CONCURRENT_COPYING ,
- HEADER_KEYS::KE_COMPILATION_REASON ,
+ HEADER_KEYS::KEY_IMAGE_LOCATION, HEADER_KEYS::KEY_DEX2OAT_CMD_LINE,
+ HEADER_KEYS::KEY_DEX2OAT_HOST, HEADER_KEYS::KEY_PIC,
+ HEADER_KEYS::KEY_HAS_PATCH_INFO, HEADER_KEYS::KEY_DEBUGGABLE,
+ HEADER_KEYS::KEY_NATIVE_DEBUGGABLE, HEADER_KEYS::KEY_COMPILER_FILTER,
+ HEADER_KEYS::KEY_CLASS_PATH, HEADER_KEYS::KEY_BOOT_CLASS_PATH,
+ HEADER_KEYS::KEY_CONCURRENT_COPYING, HEADER_KEYS::KE_COMPILATION_REASON,
};
}
diff --git a/deps/LIEF/include/LIEF/OAT/hash.hpp b/deps/LIEF/include/LIEF/OAT/hash.hpp
index bfa3a49e987..7839bf97be4 100644
--- a/deps/LIEF/include/LIEF/OAT/hash.hpp
+++ b/deps/LIEF/include/LIEF/OAT/hash.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -38,11 +38,11 @@ class LIEF_API Hash : public LIEF::Hash {
using LIEF::Hash::visit;
public:
- void visit(const Binary& binary) override;
- void visit(const Header& header) override;
- void visit(const DexFile& dex_file) override;
- void visit(const Class& cls) override;
- void visit(const Method& method) override;
+ void visit(const Binary& binary) override;
+ void visit(const Header& header) override;
+ void visit(const DexFile& dex_file) override;
+ void visit(const Class& cls) override;
+ void visit(const Method& method) override;
~Hash() override;
};
diff --git a/deps/LIEF/include/LIEF/OAT/json.hpp b/deps/LIEF/include/LIEF/OAT/json.hpp
index 99dc19bbacc..f37342f0939 100644
--- a/deps/LIEF/include/LIEF/OAT/json.hpp
+++ b/deps/LIEF/include/LIEF/OAT/json.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/OAT/type_traits.hpp b/deps/LIEF/include/LIEF/OAT/type_traits.hpp
index 198554e81eb..cfa691b3b86 100644
--- a/deps/LIEF/include/LIEF/OAT/type_traits.hpp
+++ b/deps/LIEF/include/LIEF/OAT/type_traits.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/OAT/utils.hpp b/deps/LIEF/include/LIEF/OAT/utils.hpp
index fe28a784a21..4274783efc7 100644
--- a/deps/LIEF/include/LIEF/OAT/utils.hpp
+++ b/deps/LIEF/include/LIEF/OAT/utils.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/ObjC.hpp b/deps/LIEF/include/LIEF/ObjC.hpp
index 21f0240179c..4d7f4a140e1 100644
--- a/deps/LIEF/include/LIEF/ObjC.hpp
+++ b/deps/LIEF/include/LIEF/ObjC.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
#define LIEF_OBJC_H
#include <LIEF/ObjC/Metadata.hpp>
#include <LIEF/ObjC/Class.hpp>
+#include <LIEF/ObjC/Category.hpp>
#include <LIEF/ObjC/IVar.hpp>
#include <LIEF/ObjC/Method.hpp>
#include <LIEF/ObjC/Property.hpp>
diff --git a/deps/LIEF/include/LIEF/ObjC/Category.hpp b/deps/LIEF/include/LIEF/ObjC/Category.hpp
new file mode 100644
index 00000000000..5abf1096b70
--- /dev/null
+++ b/deps/LIEF/include/LIEF/ObjC/Category.hpp
@@ -0,0 +1,130 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_OBJC_CATEGORY_H
+#define LIEF_OBJC_CATEGORY_H
+#include <LIEF/compiler_attributes.hpp>
+#include <LIEF/visibility.h>
+#include <LIEF/iterators.hpp>
+
+#include <LIEF/ObjC/Method.hpp>
+#include <LIEF/ObjC/Property.hpp>
+#include <LIEF/ObjC/Protocol.hpp>
+#include <LIEF/ObjC/DeclOpt.hpp>
+
+#include <memory>
+#include <string>
+
+namespace LIEF {
+namespace objc {
+
+namespace details {
+class Category;
+class CategoryIt;
+}
+
+/// This class represents an Objective-C category (e.g.
+/// `@interface NSString (MyAdditions)`)
+class LIEF_API Category {
+ public:
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag,
+ Category, std::ptrdiff_t, const Category*,
+ const Category&> {
+ public:
+ using implementation = details::CategoryIt;
+ using iterator_facade_base::operator++;
+ using iterator_facade_base::operator--;
+
+ LIEF_API Iterator();
+
+ LIEF_API Iterator(std::unique_ptr<details::CategoryIt> impl);
+
+ LIEF_API Iterator(const Iterator&);
+ LIEF_API Iterator& operator=(const Iterator&);
+
+ LIEF_API Iterator(Iterator&&) noexcept;
+ LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+ LIEF_API ~Iterator();
+
+ friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
+
+ friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+ return !(LHS == RHS);
+ }
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator++();
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator--();
+
+ LIEF_API const Category& operator*() const;
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const Category* operator->() const;
+
+ /// Transfer ownership of the category at the current position to the
+ /// caller. Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<Category> yield();
+
+ private:
+ void load() const;
+
+ std::unique_ptr<details::CategoryIt> impl_;
+ mutable std::unique_ptr<Category> cached_;
+ };
+
+ public:
+ /// Iterator for the category's methods
+ using methods_t = iterator_range<Method::Iterator>;
+
+ /// Iterator for the protocols adopted by this category
+ using protocols_t = iterator_range<Protocol::Iterator>;
+
+ /// Iterator for the properties declared by this category
+ using properties_t = iterator_range<Property::Iterator>;
+
+ Category(std::unique_ptr<details::Category> impl);
+
+ /// Name of the category
+ std::string name() const;
+
+ /// (demangled) name of the class extended by this category
+ std::string class_name() const;
+
+ /// Iterator over the different methods defined by this category
+ methods_t methods() const LIEF_LIFETIMEBOUND;
+
+ /// Iterator over the different protocols adopted by this category
+ protocols_t protocols() const LIEF_LIFETIMEBOUND;
+
+ /// Iterator over the properties of this category
+ properties_t properties() const LIEF_LIFETIMEBOUND;
+
+ /// Generate a header-like string for this specific category.
+ ///
+ /// The generated output can be configured with DeclOpt
+ std::string to_decl(const DeclOpt& opt = DeclOpt()) const;
+
+ ~Category();
+
+ private:
+ std::unique_ptr<details::Category> impl_;
+};
+
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/ObjC/Class.hpp b/deps/LIEF/include/LIEF/ObjC/Class.hpp
index 71f0894c2d5..2b4457927fe 100644
--- a/deps/LIEF/include/LIEF/ObjC/Class.hpp
+++ b/deps/LIEF/include/LIEF/ObjC/Class.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
#define LIEF_OBJC_CLASS_H
#include <LIEF/visibility.h>
+#include <LIEF/compiler_attributes.hpp>
#include <LIEF/ObjC/IVar.hpp>
#include <LIEF/ObjC/Protocol.hpp>
@@ -37,66 +38,56 @@ class ClassIt;
/// This class represents an Objective-C class (`@interface`)
class LIEF_API Class {
public:
- class LIEF_API Iterator {
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag, Class,
+ std::ptrdiff_t, const Class*, const Class&> {
public:
- using iterator_category = std::bidirectional_iterator_tag;
- using value_type = std::unique_ptr<Class>;
- using difference_type = std::ptrdiff_t;
- using pointer = Class*;
- using reference = std::unique_ptr<Class>&;
using implementation = details::ClassIt;
+ using iterator_facade_base::operator++;
+ using iterator_facade_base::operator--;
- class LIEF_API PointerProxy {
- // Inspired from LLVM's iterator_facade_base
- friend class Iterator;
- public:
- pointer operator->() const { return R.get(); }
+ LIEF_API Iterator();
- private:
- value_type R;
+ LIEF_API Iterator(std::unique_ptr<details::ClassIt> impl);
- template <typename RefT>
- PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
- };
+ LIEF_API Iterator(const Iterator&);
+ LIEF_API Iterator& operator=(const Iterator&);
- Iterator(const Iterator&);
- Iterator(Iterator&&) noexcept;
- Iterator(std::unique_ptr<details::ClassIt> impl);
- ~Iterator();
+ LIEF_API Iterator(Iterator&&) noexcept;
+ LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+ LIEF_API ~Iterator();
friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
- friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+ friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
return !(LHS == RHS);
}
- Iterator& operator++();
- Iterator& operator--();
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator++();
- Iterator operator--(int) {
- Iterator tmp = *static_cast<Iterator*>(this);
- --*static_cast<Iterator *>(this);
- return tmp;
- }
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator--();
- Iterator operator++(int) {
- Iterator tmp = *static_cast<Iterator*>(this);
- ++*static_cast<Iterator *>(this);
- return tmp;
- }
+ LIEF_API const Class& operator*() const;
- std::unique_ptr<Class> operator*() const;
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const Class* operator->() const;
- PointerProxy operator->() const {
- return static_cast<const Iterator*>(this)->operator*();
- }
+ /// Transfer ownership of the class at the current position to the
+ /// caller. Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<Class> yield();
private:
+ void load() const;
+
std::unique_ptr<details::ClassIt> impl_;
+ mutable std::unique_ptr<Class> cached_;
};
public:
- /// Iterator for the class's method
+ /// Iterator for the class's methods
using methods_t = iterator_range<Method::Iterator>;
/// Iterator for the protocols implemented by this class
@@ -116,22 +107,34 @@ class LIEF_API Class {
/// Demangled name of the class
std::string demangled_name() const;
- /// Parent class in case of inheritance
- std::unique_ptr<Class> super_class() const;
+ /// Parent class in case of inheritance.
+ ///
+ /// This returns the superclass object **only** when it is defined in the same
+ /// binary. For root classes (e.g. `NSObject`) or superclasses imported from
+ /// another image, it returns a null pointer even though the name can still be
+ /// resolved through super_name() / demangled_super_name().
+ std::unique_ptr<Class> super_class() const LIEF_LIFETIMEBOUND;
+
+ /// (raw) name of the superclass (empty for root classes or when it could not
+ /// be resolved).
+ std::string super_name() const;
+
+ /// Demangled name of the superclass.
+ std::string demangled_super_name() const;
bool is_meta() const;
/// Iterator over the different methods defined by this class
- methods_t methods() const;
+ methods_t methods() const LIEF_LIFETIMEBOUND;
/// Iterator over the different protocols implemented by this class
- protocols_t protocols() const;
+ protocols_t protocols() const LIEF_LIFETIMEBOUND;
/// Iterator over the properties of this class
- properties_t properties() const;
+ properties_t properties() const LIEF_LIFETIMEBOUND;
/// Iterator over the different instance variables defined in this class
- ivars_t ivars() const;
+ ivars_t ivars() const LIEF_LIFETIMEBOUND;
/// Generate a header-like string for this specific class.
///
@@ -139,6 +142,7 @@ class LIEF_API Class {
std::string to_decl(const DeclOpt& opt = DeclOpt()) const;
~Class();
+
private:
std::unique_ptr<details::Class> impl_;
};
diff --git a/deps/LIEF/include/LIEF/ObjC/DeclOpt.hpp b/deps/LIEF/include/LIEF/ObjC/DeclOpt.hpp
index 23d12e4b75e..4cab434af3a 100644
--- a/deps/LIEF/include/LIEF/ObjC/DeclOpt.hpp
+++ b/deps/LIEF/include/LIEF/ObjC/DeclOpt.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,4 +26,3 @@ struct DeclOpt {
}
}
#endif
-
diff --git a/deps/LIEF/include/LIEF/ObjC/IVar.hpp b/deps/LIEF/include/LIEF/ObjC/IVar.hpp
index cc2650ce051..d34b5a1bdc9 100644
--- a/deps/LIEF/include/LIEF/ObjC/IVar.hpp
+++ b/deps/LIEF/include/LIEF/ObjC/IVar.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -33,62 +33,52 @@ class IVarIt;
/// This class represents an instance variable (ivar)
class LIEF_API IVar {
public:
- class LIEF_API Iterator {
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag, IVar,
+ std::ptrdiff_t, const IVar*, const IVar&> {
public:
- using iterator_category = std::bidirectional_iterator_tag;
- using value_type = std::unique_ptr<IVar>;
- using difference_type = std::ptrdiff_t;
- using pointer = IVar*;
- using reference = std::unique_ptr<IVar>&;
using implementation = details::IVarIt;
+ using iterator_facade_base::operator++;
+ using iterator_facade_base::operator--;
- class LIEF_API PointerProxy {
- // Inspired from LLVM's iterator_facade_base
- friend class Iterator;
- public:
- pointer operator->() const { return R.get(); }
+ LIEF_API Iterator();
- private:
- value_type R;
+ LIEF_API Iterator(std::unique_ptr<details::IVarIt> impl);
- template <typename RefT>
- PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
- };
+ LIEF_API Iterator(const Iterator&);
+ LIEF_API Iterator& operator=(const Iterator&);
- Iterator(const Iterator&);
- Iterator(Iterator&&) noexcept;
- Iterator(std::unique_ptr<details::IVarIt> impl);
- ~Iterator();
+ LIEF_API Iterator(Iterator&&) noexcept;
+ LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+ LIEF_API ~Iterator();
friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
- friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+ friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
return !(LHS == RHS);
}
- Iterator& operator++();
- Iterator& operator--();
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator++();
- Iterator operator--(int) {
- Iterator tmp = *static_cast<Iterator*>(this);
- --*static_cast<Iterator *>(this);
- return tmp;
- }
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator--();
- Iterator operator++(int) {
- Iterator tmp = *static_cast<Iterator*>(this);
- ++*static_cast<Iterator *>(this);
- return tmp;
- }
+ LIEF_API const IVar& operator*() const;
- std::unique_ptr<IVar> operator*() const;
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const IVar* operator->() const;
- PointerProxy operator->() const {
- return static_cast<const Iterator*>(this)->operator*();
- }
+ /// Transfer ownership of the ivar at the current position to the
+ /// caller. Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<IVar> yield();
private:
+ void load() const;
+
std::unique_ptr<details::IVarIt> impl_;
+ mutable std::unique_ptr<IVar> cached_;
};
public:
@@ -101,6 +91,7 @@ class LIEF_API IVar {
std::string mangled_type() const;
~IVar();
+
private:
std::unique_ptr<details::IVar> impl_;
};
diff --git a/deps/LIEF/include/LIEF/ObjC/Metadata.hpp b/deps/LIEF/include/LIEF/ObjC/Metadata.hpp
index 83be50c971f..e3a22a3c4c2 100644
--- a/deps/LIEF/include/LIEF/ObjC/Metadata.hpp
+++ b/deps/LIEF/include/LIEF/ObjC/Metadata.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,9 +14,11 @@
*/
#ifndef LIEF_OBJC_METADATA_H
#define LIEF_OBJC_METADATA_H
+#include <LIEF/compiler_attributes.hpp>
#include <LIEF/visibility.h>
#include <LIEF/ObjC/Class.hpp>
#include <LIEF/ObjC/Protocol.hpp>
+#include <LIEF/ObjC/Category.hpp>
#include <LIEF/iterators.hpp>
#include <LIEF/ObjC/DeclOpt.hpp>
@@ -38,20 +40,28 @@ class LIEF_API Metadata {
public:
using classes_it = iterator_range<Class::Iterator>;
using protocols_it = iterator_range<Protocol::Iterator>;
+ using categories_it = iterator_range<Category::Iterator>;
Metadata(std::unique_ptr<details::Metadata> impl);
/// Return an iterator over the different Objective-C classes (`@interface`)
- classes_it classes() const;
+ classes_it classes() const LIEF_LIFETIMEBOUND;
- /// Return an iterator over the Objective-C protocols declared in this binary (`@protocol`).
- protocols_it protocols() const;
+ /// Return an iterator over the Objective-C protocols declared in this binary
+ /// (`@protocol`).
+ protocols_it protocols() const LIEF_LIFETIMEBOUND;
+
+ /// Return an iterator over the Objective-C categories declared in this binary
+ /// (e.g. `@interface NSString (MyAdditions)`).
+ categories_it categories() const LIEF_LIFETIMEBOUND;
/// Try to find the Objective-C class with the given **mangled** name
- std::unique_ptr<Class> get_class(const std::string& name) const;
+ std::unique_ptr<Class>
+ get_class(const std::string& name) const LIEF_LIFETIMEBOUND;
/// Try to find the Objective-C protocol with the given **mangled** name
- std::unique_ptr<Protocol> get_protocol(const std::string& name) const;
+ std::unique_ptr<Protocol>
+ get_protocol(const std::string& name) const LIEF_LIFETIMEBOUND;
/// Generate a header-like of all the Objective-C metadata identified in the
/// binary.
@@ -59,6 +69,7 @@ class LIEF_API Metadata {
std::string to_decl(const DeclOpt& opt = DeclOpt()) const;
~Metadata();
+
private:
std::unique_ptr<details::Metadata> impl_;
};
diff --git a/deps/LIEF/include/LIEF/ObjC/Method.hpp b/deps/LIEF/include/LIEF/ObjC/Method.hpp
index b9f37288247..b2a3a602153 100644
--- a/deps/LIEF/include/LIEF/ObjC/Method.hpp
+++ b/deps/LIEF/include/LIEF/ObjC/Method.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,6 +14,7 @@
*/
#ifndef LIEF_OBJC_METHOD_H
#define LIEF_OBJC_METHOD_H
+#include <LIEF/iterators.hpp>
#include <LIEF/visibility.h>
#include <cstdint>
@@ -31,62 +32,53 @@ class MethodIt;
/// This class represents an Objective-C Method
class LIEF_API Method {
public:
- class LIEF_API Iterator {
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag,
+ Method, std::ptrdiff_t, const Method*,
+ const Method&> {
public:
- using iterator_category = std::bidirectional_iterator_tag;
- using value_type = std::unique_ptr<Method>;
- using difference_type = std::ptrdiff_t;
- using pointer = Method*;
- using reference = std::unique_ptr<Method>&;
using implementation = details::MethodIt;
+ using iterator_facade_base::operator++;
+ using iterator_facade_base::operator--;
- class LIEF_API PointerProxy {
- // Inspired from LLVM's iterator_facade_base
- friend class Iterator;
- public:
- pointer operator->() const { return R.get(); }
+ LIEF_API Iterator();
- private:
- value_type R;
+ LIEF_API Iterator(std::unique_ptr<details::MethodIt> impl);
- template <typename RefT>
- PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
- };
+ LIEF_API Iterator(const Iterator&);
+ LIEF_API Iterator& operator=(const Iterator&);
- Iterator(const Iterator&);
- Iterator(Iterator&&) noexcept;
- Iterator(std::unique_ptr<details::MethodIt> impl);
- ~Iterator();
+ LIEF_API Iterator(Iterator&&) noexcept;
+ LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+ LIEF_API ~Iterator();
friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
- friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+ friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
return !(LHS == RHS);
}
- Iterator& operator++();
- Iterator& operator--();
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator++();
- Iterator operator--(int) {
- Iterator tmp = *static_cast<Iterator*>(this);
- --*static_cast<Iterator *>(this);
- return tmp;
- }
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator--();
- Iterator operator++(int) {
- Iterator tmp = *static_cast<Iterator*>(this);
- ++*static_cast<Iterator *>(this);
- return tmp;
- }
+ LIEF_API const Method& operator*() const;
- std::unique_ptr<Method> operator*() const;
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const Method* operator->() const;
- PointerProxy operator->() const {
- return static_cast<const Iterator*>(this)->operator*();
- }
+ /// Transfer ownership of the method at the current position to the
+ /// caller. Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<Method> yield();
private:
+ void load() const;
+
std::unique_ptr<details::MethodIt> impl_;
+ mutable std::unique_ptr<Method> cached_;
};
public:
@@ -105,6 +97,7 @@ class LIEF_API Method {
bool is_instance() const;
~Method();
+
private:
std::unique_ptr<details::Method> impl_;
};
diff --git a/deps/LIEF/include/LIEF/ObjC/Property.hpp b/deps/LIEF/include/LIEF/ObjC/Property.hpp
index e28336f6998..032dcedcb70 100644
--- a/deps/LIEF/include/LIEF/ObjC/Property.hpp
+++ b/deps/LIEF/include/LIEF/ObjC/Property.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,6 +14,7 @@
*/
#ifndef LIEF_OBJC_PROPERTY_H
#define LIEF_OBJC_PROPERTY_H
+#include <LIEF/iterators.hpp>
#include <LIEF/visibility.h>
#include <memory>
@@ -30,62 +31,53 @@ class PropertyIt;
/// This class represents a `@property` in Objective-C
class LIEF_API Property {
public:
- class LIEF_API Iterator {
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag,
+ Property, std::ptrdiff_t, const Property*,
+ const Property&> {
public:
- using iterator_category = std::bidirectional_iterator_tag;
- using value_type = std::unique_ptr<Property>;
- using difference_type = std::ptrdiff_t;
- using pointer = Property*;
- using reference = std::unique_ptr<Property>&;
using implementation = details::PropertyIt;
+ using iterator_facade_base::operator++;
+ using iterator_facade_base::operator--;
- class LIEF_API PointerProxy {
- // Inspired from LLVM's iterator_facade_base
- friend class Iterator;
- public:
- pointer operator->() const { return R.get(); }
+ LIEF_API Iterator();
- private:
- value_type R;
+ LIEF_API Iterator(std::unique_ptr<details::PropertyIt> impl);
- template <typename RefT>
- PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
- };
+ LIEF_API Iterator(const Iterator&);
+ LIEF_API Iterator& operator=(const Iterator&);
- Iterator(const Iterator&);
- Iterator(Iterator&&) noexcept;
- Iterator(std::unique_ptr<details::PropertyIt> impl);
- ~Iterator();
+ LIEF_API Iterator(Iterator&&) noexcept;
+ LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+ LIEF_API ~Iterator();
friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
- friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+ friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
return !(LHS == RHS);
}
- Iterator& operator++();
- Iterator& operator--();
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator++();
- Iterator operator--(int) {
- Iterator tmp = *static_cast<Iterator*>(this);
- --*static_cast<Iterator *>(this);
- return tmp;
- }
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator--();
- Iterator operator++(int) {
- Iterator tmp = *static_cast<Iterator*>(this);
- ++*static_cast<Iterator *>(this);
- return tmp;
- }
+ LIEF_API const Property& operator*() const;
- std::unique_ptr<Property> operator*() const;
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const Property* operator->() const;
- PointerProxy operator->() const {
- return static_cast<const Iterator*>(this)->operator*();
- }
+ /// Transfer ownership of the property at the current position to the
+ /// caller. Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<Property> yield();
private:
+ void load() const;
+
std::unique_ptr<details::PropertyIt> impl_;
+ mutable std::unique_ptr<Property> cached_;
};
public:
@@ -98,6 +90,7 @@ class LIEF_API Property {
std::string attribute() const;
~Property();
+
private:
std::unique_ptr<details::Property> impl_;
};
diff --git a/deps/LIEF/include/LIEF/ObjC/Protocol.hpp b/deps/LIEF/include/LIEF/ObjC/Protocol.hpp
index dddd97279ac..3f8e14dc82d 100644
--- a/deps/LIEF/include/LIEF/ObjC/Protocol.hpp
+++ b/deps/LIEF/include/LIEF/ObjC/Protocol.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,6 +14,7 @@
*/
#ifndef LIEF_OBJC_PROTOCOL_H
#define LIEF_OBJC_PROTOCOL_H
+#include <LIEF/compiler_attributes.hpp>
#include <LIEF/visibility.h>
#include <LIEF/iterators.hpp>
@@ -35,81 +36,77 @@ class ProtocolIt;
/// This class represents an Objective-C `@protocol`
class LIEF_API Protocol {
public:
- class LIEF_API Iterator {
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag,
+ Protocol, std::ptrdiff_t, const Protocol*,
+ const Protocol&> {
public:
- using iterator_category = std::bidirectional_iterator_tag;
- using value_type = std::unique_ptr<Protocol>;
- using difference_type = std::ptrdiff_t;
- using pointer = Protocol*;
- using reference = std::unique_ptr<Protocol>&;
using implementation = details::ProtocolIt;
+ using iterator_facade_base::operator++;
+ using iterator_facade_base::operator--;
- class LIEF_API PointerProxy {
- // Inspired from LLVM's iterator_facade_base
- friend class Iterator;
- public:
- pointer operator->() const { return R.get(); }
+ LIEF_API Iterator();
- private:
- value_type R;
+ LIEF_API Iterator(std::unique_ptr<details::ProtocolIt> impl);
- template <typename RefT>
- PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
- };
+ LIEF_API Iterator(const Iterator&);
+ LIEF_API Iterator& operator=(const Iterator&);
- Iterator(const Iterator&);
- Iterator(Iterator&&) noexcept;
- Iterator(std::unique_ptr<details::ProtocolIt> impl);
- ~Iterator();
+ LIEF_API Iterator(Iterator&&) noexcept;
+ LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+ LIEF_API ~Iterator();
friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
- friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+ friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
return !(LHS == RHS);
}
- Iterator& operator++();
- Iterator& operator--();
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator++();
- Iterator operator--(int) {
- Iterator tmp = *static_cast<Iterator*>(this);
- --*static_cast<Iterator *>(this);
- return tmp;
- }
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator--();
- Iterator operator++(int) {
- Iterator tmp = *static_cast<Iterator*>(this);
- ++*static_cast<Iterator *>(this);
- return tmp;
- }
+ LIEF_API const Protocol& operator*() const;
- std::unique_ptr<Protocol> operator*() const;
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const Protocol* operator->() const;
- PointerProxy operator->() const {
- return static_cast<const Iterator*>(this)->operator*();
- }
+ /// Transfer ownership of the protocol at the current position to the
+ /// caller. Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<Protocol> yield();
private:
+ void load() const;
+
std::unique_ptr<details::ProtocolIt> impl_;
+ mutable std::unique_ptr<Protocol> cached_;
};
public:
using methods_it = iterator_range<Method::Iterator>;
using properties_it = iterator_range<Property::Iterator>;
+ using protocols_it = iterator_range<Iterator>;
Protocol(std::unique_ptr<details::Protocol> impl);
/// Mangled name of the protocol
std::string mangled_name() const;
+ /// Iterator over the protocols adopted by this protocol (e.g. the
+ /// `<Bar, Baz>` in `@protocol Foo <Bar, Baz>`).
+ protocols_it protocols() const LIEF_LIFETIMEBOUND;
+
/// Iterator over the methods that could be overridden
- methods_it optional_methods() const;
+ methods_it optional_methods() const LIEF_LIFETIMEBOUND;
/// Iterator over the methods of this protocol that must be implemented
- methods_it required_methods() const;
+ methods_it required_methods() const LIEF_LIFETIMEBOUND;
/// Iterator over the properties defined in this protocol
- properties_it properties() const;
+ properties_it properties() const LIEF_LIFETIMEBOUND;
/// Generate a header-like string for this specific protocol.
///
@@ -117,6 +114,7 @@ class LIEF_API Protocol {
std::string to_decl(const DeclOpt& opt = DeclOpt()) const;
~Protocol();
+
private:
std::unique_ptr<details::Protocol> impl_;
};
diff --git a/deps/LIEF/include/LIEF/Object.hpp b/deps/LIEF/include/LIEF/Object.hpp
index 11ebcad9dc0..003f320ed80 100644
--- a/deps/LIEF/include/LIEF/Object.hpp
+++ b/deps/LIEF/include/LIEF/Object.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/PDB.hpp b/deps/LIEF/include/LIEF/PDB.hpp
index 0aa81447566..92fc9654b6e 100644
--- a/deps/LIEF/include/LIEF/PDB.hpp
+++ b/deps/LIEF/include/LIEF/PDB.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,8 +13,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#ifndef LIEF_PDB_H
-#define LIEF_PDB_H
+#ifndef LIEF_PDB_H
+#define LIEF_PDB_H
#include <LIEF/PDB/CompilationUnit.hpp>
#include <LIEF/PDB/Function.hpp>
#include <LIEF/PDB/PublicSymbol.hpp>
diff --git a/deps/LIEF/include/LIEF/PDB/BuildMetadata.hpp b/deps/LIEF/include/LIEF/PDB/BuildMetadata.hpp
index e4b40f0ec14..ab7b40383d7 100644
--- a/deps/LIEF/include/LIEF/PDB/BuildMetadata.hpp
+++ b/deps/LIEF/include/LIEF/PDB/BuildMetadata.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,6 +14,7 @@
*/
#ifndef LIEF_PDB_BUILD_METADATA_H
#define LIEF_PDB_BUILD_METADATA_H
+#include <vector>
#include <memory>
#include <ostream>
@@ -31,100 +32,99 @@ class BuildMetadata;
/// `S_COMPILE3, S_COMPILE2, S_BUILDINFO, S_ENVBLOCK`
class LIEF_API BuildMetadata {
public:
-
enum class LANG : uint8_t {
- C = 0x00,
- CPP = 0x01,
- FORTRAN = 0x02,
- MASM = 0x03,
+ C = 0x00,
+ CPP = 0x01,
+ FORTRAN = 0x02,
+ MASM = 0x03,
PASCAL_LANG = 0x04,
- BASIC = 0x05,
- COBOL = 0x06,
- LINK = 0x07,
- CVTRES = 0x08,
- CVTPGD = 0x09,
- CSHARP = 0x0a,
- VB = 0x0b,
- ILASM = 0x0c,
- JAVA = 0x0d,
- JSCRIPT = 0x0e,
- MSIL = 0x0f,
- HLSL = 0x10,
- OBJC = 0x11,
- OBJCPP = 0x12,
- SWIFT = 0x13,
- ALIASOBJ = 0x14,
- RUST = 0x15,
- GO = 0x16,
+ BASIC = 0x05,
+ COBOL = 0x06,
+ LINK = 0x07,
+ CVTRES = 0x08,
+ CVTPGD = 0x09,
+ CSHARP = 0x0a,
+ VB = 0x0b,
+ ILASM = 0x0c,
+ JAVA = 0x0d,
+ JSCRIPT = 0x0e,
+ MSIL = 0x0f,
+ HLSL = 0x10,
+ OBJC = 0x11,
+ OBJCPP = 0x12,
+ SWIFT = 0x13,
+ ALIASOBJ = 0x14,
+ RUST = 0x15,
+ GO = 0x16,
UNKNOWN = 0xFF,
};
enum class CPU : uint16_t {
- INTEL_8080 = 0x0,
- INTEL_8086 = 0x1,
- INTEL_80286 = 0x2,
- INTEL_80386 = 0x3,
- INTEL_80486 = 0x4,
- PENTIUM = 0x5,
- PENTIUMPRO = 0x6,
- PENTIUM3 = 0x7,
- MIPS = 0x10,
- MIPS16 = 0x11,
- MIPS32 = 0x12,
- MIPS64 = 0x13,
- MIPSI = 0x14,
- MIPSII = 0x15,
- MIPSIII = 0x16,
- MIPSIV = 0x17,
- MIPSV = 0x18,
- M68000 = 0x20,
- M68010 = 0x21,
- M68020 = 0x22,
- M68030 = 0x23,
- M68040 = 0x24,
- ALPHA = 0x30,
- ALPHA_21164 = 0x31,
- ALPHA_21164A = 0x32,
- ALPHA_21264 = 0x33,
- ALPHA_21364 = 0x34,
- PPC601 = 0x40,
- PPC603 = 0x41,
- PPC604 = 0x42,
- PPC620 = 0x43,
- PPCFP = 0x44,
- PPCBE = 0x45,
- SH3 = 0x50,
- SH3E = 0x51,
- SH3DSP = 0x52,
- SH4 = 0x53,
- SHMEDIA = 0x54,
- ARM3 = 0x60,
- ARM4 = 0x61,
- ARM4T = 0x62,
- ARM5 = 0x63,
- ARM5T = 0x64,
- ARM6 = 0x65,
- ARM_XMAC = 0x66,
- ARM_WMMX = 0x67,
- ARM7 = 0x68,
- OMNI = 0x70,
- IA64 = 0x80,
- IA64_2 = 0x81,
- CEE = 0x90,
- AM33 = 0xa0,
- M32R = 0xb0,
- TRICORE = 0xc0,
- X64 = 0xd0,
- EBC = 0xe0,
- THUMB = 0xf0,
- ARMNT = 0xf4,
- ARM64 = 0xf6,
+ INTEL_8080 = 0x0,
+ INTEL_8086 = 0x1,
+ INTEL_80286 = 0x2,
+ INTEL_80386 = 0x3,
+ INTEL_80486 = 0x4,
+ PENTIUM = 0x5,
+ PENTIUMPRO = 0x6,
+ PENTIUM3 = 0x7,
+ MIPS = 0x10,
+ MIPS16 = 0x11,
+ MIPS32 = 0x12,
+ MIPS64 = 0x13,
+ MIPSI = 0x14,
+ MIPSII = 0x15,
+ MIPSIII = 0x16,
+ MIPSIV = 0x17,
+ MIPSV = 0x18,
+ M68000 = 0x20,
+ M68010 = 0x21,
+ M68020 = 0x22,
+ M68030 = 0x23,
+ M68040 = 0x24,
+ ALPHA = 0x30,
+ ALPHA_21164 = 0x31,
+ ALPHA_21164A = 0x32,
+ ALPHA_21264 = 0x33,
+ ALPHA_21364 = 0x34,
+ PPC601 = 0x40,
+ PPC603 = 0x41,
+ PPC604 = 0x42,
+ PPC620 = 0x43,
+ PPCFP = 0x44,
+ PPCBE = 0x45,
+ SH3 = 0x50,
+ SH3E = 0x51,
+ SH3DSP = 0x52,
+ SH4 = 0x53,
+ SHMEDIA = 0x54,
+ ARM3 = 0x60,
+ ARM4 = 0x61,
+ ARM4T = 0x62,
+ ARM5 = 0x63,
+ ARM5T = 0x64,
+ ARM6 = 0x65,
+ ARM_XMAC = 0x66,
+ ARM_WMMX = 0x67,
+ ARM7 = 0x68,
+ OMNI = 0x70,
+ IA64 = 0x80,
+ IA64_2 = 0x81,
+ CEE = 0x90,
+ AM33 = 0xa0,
+ M32R = 0xb0,
+ TRICORE = 0xc0,
+ X64 = 0xd0,
+ EBC = 0xe0,
+ THUMB = 0xf0,
+ ARMNT = 0xf4,
+ ARM64 = 0xf6,
HYBRID_X86ARM64 = 0xf7,
- ARM64EC = 0xf8,
- ARM64X = 0xf9,
- D3D11_SHADER = 0x100,
- UNKNOWN = 0xff,
+ ARM64EC = 0xf8,
+ ARM64X = 0xf9,
+ D3D11_SHADER = 0x100,
+ UNKNOWN = 0xff,
};
/// This structure represents a version for the backend or the frontend.
@@ -138,7 +138,7 @@ class LIEF_API BuildMetadata {
/// Build version
uint16_t build = 0;
- /// Quick Fix Engineeringa version
+ /// Quick Fix Engineering version
uint16_t qfe = 0;
};
@@ -148,7 +148,8 @@ class LIEF_API BuildMetadata {
/// Working directory where the *build tool* was invoked
std::string cwd;
- /// Path to the build tool (e.g. `C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\HostX64\x64\CL.exe`)
+ /// Path to the build tool (e.g. `C:\Program Files\Microsoft Visual
+ /// Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\HostX64\x64\CL.exe`)
std::string build_tool;
/// Source file consumed by the *build tool*
@@ -188,9 +189,8 @@ class LIEF_API BuildMetadata {
std::string to_string() const;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const BuildMetadata& meta)
- {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const BuildMetadata& meta) {
os << meta.to_string();
return os;
}
@@ -205,4 +205,3 @@ LIEF_API const char* to_string(BuildMetadata::LANG cpu);
}
}
#endif
-
diff --git a/deps/LIEF/include/LIEF/PDB/CompilationUnit.hpp b/deps/LIEF/include/LIEF/PDB/CompilationUnit.hpp
index b3e3c1cfafd..7cb4d6ca65b 100644
--- a/deps/LIEF/include/LIEF/PDB/CompilationUnit.hpp
+++ b/deps/LIEF/include/LIEF/PDB/CompilationUnit.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@
#include <ostream>
#include "LIEF/iterators.hpp"
+#include "LIEF/DebugDeclOpt.hpp"
#include "LIEF/PDB/Function.hpp"
#include "LIEF/visibility.h"
@@ -36,65 +37,57 @@ class CompilationUnitIt;
/// This class represents a CompilationUnit (or Module) in a PDB file
class LIEF_API CompilationUnit {
public:
- class LIEF_API Iterator {
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag,
+ CompilationUnit, std::ptrdiff_t,
+ const CompilationUnit*, const CompilationUnit&> {
public:
- using iterator_category = std::bidirectional_iterator_tag;
- using value_type = std::unique_ptr<CompilationUnit>;
- using difference_type = std::ptrdiff_t;
- using pointer = CompilationUnit*;
- using reference = CompilationUnit&;
using implementation = details::CompilationUnitIt;
+ using iterator_facade_base::operator++;
+ using iterator_facade_base::operator--;
- class PointerProxy {
- // Inspired from LLVM's iterator_facade_base
- friend class Iterator;
- public:
- pointer operator->() const { return R.get(); }
+ LIEF_API Iterator();
- private:
- value_type R;
+ LIEF_API Iterator(std::unique_ptr<details::CompilationUnitIt> impl);
- template <typename RefT>
- PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
- };
+ LIEF_API Iterator(const Iterator&);
+ LIEF_API Iterator& operator=(const Iterator&);
- Iterator(const Iterator&);
- Iterator(Iterator&&);
- Iterator(std::unique_ptr<details::CompilationUnitIt> impl);
- ~Iterator();
+ LIEF_API Iterator(Iterator&&) noexcept;
+ LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+ LIEF_API ~Iterator();
friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
- friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+ friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
return !(LHS == RHS);
}
- Iterator& operator++();
- Iterator& operator--();
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator++();
- Iterator operator--(int) {
- Iterator tmp = *static_cast<Iterator*>(this);
- --*static_cast<Iterator *>(this);
- return tmp;
- }
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator--();
- Iterator operator++(int) {
- Iterator tmp = *static_cast<Iterator*>(this);
- ++*static_cast<Iterator *>(this);
- return tmp;
- }
+ LIEF_API const CompilationUnit& operator*() const LIEF_LIFETIMEBOUND;
- std::unique_ptr<CompilationUnit> operator*() const;
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const CompilationUnit* operator->() const LIEF_LIFETIMEBOUND;
- PointerProxy operator->() const {
- return static_cast<const Iterator*>(this)->operator*();
- }
+ /// Transfer ownership of the compilation unit at the current position
+ /// to the caller. Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<CompilationUnit> yield();
private:
+ void load() const;
+
std::unique_ptr<details::CompilationUnitIt> impl_;
+ mutable std::unique_ptr<CompilationUnit> cached_;
};
- /// Iterator over the sources file (std::string)
- using sources_iterator = iterator_range<std::vector<std::string>::const_iterator>;
+ /// Iterator over the source files (std::string)
+ using sources_iterator =
+ iterator_range<std::vector<std::string>::const_iterator>;
using function_iterator = iterator_range<Function::Iterator>;
@@ -102,32 +95,36 @@ class LIEF_API CompilationUnit {
~CompilationUnit();
/// Name (or path) to the COFF object (`.obj`) associated with this
- /// compilation unit (e.g. `e:\obj.amd64fre\minkernel\ntos\hvl\mp\objfre\amd64\hvlp.obj`)
+ /// compilation unit (e.g.
+ /// `e:\obj.amd64fre\minkernel\ntos\hvl\mp\objfre\amd64\hvlp.obj`)
std::string module_name() const;
- /// Name of path to the original binary object (COFF, Archive) in which
+ /// Name or path to the original binary object (COFF, Archive) in which
/// the compilation unit was located before being linked.
/// e.g. `e:\obj.amd64fre\minkernel\ntos\hvl\mp\objfre\amd64\hvl.lib`
std::string object_filename() const;
/// Iterator over the sources files that compose this compilation unit.
/// These files also include **headers** (`.h, .hpp`, ...).
- sources_iterator sources() const;
+ sources_iterator sources() const LIEF_LIFETIMEBOUND;
/// Return an iterator over the function defined in this compilation unit.
/// If the PDB does not contain or has an empty DBI stream, it returns
/// an empty iterator.
- function_iterator functions() const;
+ function_iterator functions() const LIEF_LIFETIMEBOUND;
/// Return build metadata such as the version of the compiler or
/// the original source language of this compilation unit
- std::unique_ptr<BuildMetadata> build_metadata() const;
+ std::unique_ptr<BuildMetadata> build_metadata() const LIEF_LIFETIMEBOUND;
+
+ /// Generate a C/C++ definition for the functions defined in this
+ /// compilation unit.
+ std::string to_decl(const DeclOpt& opt = DeclOpt()) const;
std::string to_string() const;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const CompilationUnit& CU)
- {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const CompilationUnit& CU) {
os << CU.to_string();
return os;
}
@@ -139,4 +136,3 @@ class LIEF_API CompilationUnit {
}
}
#endif
-
diff --git a/deps/LIEF/include/LIEF/PDB/DebugInfo.hpp b/deps/LIEF/include/LIEF/PDB/DebugInfo.hpp
index 5b4130ff731..4d74de371c4 100644
--- a/deps/LIEF/include/LIEF/PDB/DebugInfo.hpp
+++ b/deps/LIEF/include/LIEF/PDB/DebugInfo.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
#include <string>
#include <ostream>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/iterators.hpp"
#include "LIEF/Abstract/DebugInfo.hpp"
@@ -61,18 +62,23 @@ class LIEF_API DebugInfo : public LIEF::DebugInfo {
/// Iterator over the CompilationUnit from the PDB's DBI stream.
/// CompilationUnit are also named "Module" in the PDB's official documentation
- compilation_units_it compilation_units() const;
+ compilation_units_it compilation_units() const LIEF_LIFETIMEBOUND;
/// Return an iterator over the public symbol stream
- public_symbols_it public_symbols() const;
+ public_symbols_it public_symbols() const LIEF_LIFETIMEBOUND;
/// Return an iterator over the different types registered in this PDB.
- types_it types() const;
+ types_it types() const LIEF_LIFETIMEBOUND;
/// Find the type with the given name
- std::unique_ptr<Type> find_type(const std::string& name) const;
+ std::unique_ptr<Type>
+ find_type(const std::string& name) const LIEF_LIFETIMEBOUND;
- /// Try to find the PublicSymbol from the given name (based on the public symbol stream)
+ /// Find the type at the given index
+ std::unique_ptr<Type> find_type(uint32_t index) const LIEF_LIFETIMEBOUND;
+
+ /// Try to find the PublicSymbol from the given name (based on the public symbol
+ /// stream)
///
/// The function returns a nullptr if the symbol can't be found
///
@@ -82,7 +88,8 @@ class LIEF_API DebugInfo : public LIEF::DebugInfo {
/// // FOUND!
/// }
/// ```
- std::unique_ptr<PublicSymbol> find_public_symbol(const std::string& name) const;
+ std::unique_ptr<PublicSymbol>
+ find_public_symbol(const std::string& name) const LIEF_LIFETIMEBOUND;
/// Attempt to resolve the address of the function specified by `name`.
optional<uint64_t> find_function_address(const std::string& name) const override;
@@ -96,9 +103,8 @@ class LIEF_API DebugInfo : public LIEF::DebugInfo {
/// Pretty representation
std::string to_string() const;
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const DebugInfo& dbg)
- {
+ friend LIEF_API std::ostream& operator<<(std::ostream& os,
+ const DebugInfo& dbg) {
os << dbg.to_string();
return os;
}
diff --git a/deps/LIEF/include/LIEF/PDB/Function.hpp b/deps/LIEF/include/LIEF/PDB/Function.hpp
index 5e947def641..82427ba7869 100644
--- a/deps/LIEF/include/LIEF/PDB/Function.hpp
+++ b/deps/LIEF/include/LIEF/PDB/Function.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,8 +18,11 @@
#include <string>
#include <ostream>
+#include "LIEF/compiler_attributes.hpp"
+#include "LIEF/iterators.hpp"
#include "LIEF/visibility.h"
#include "LIEF/debug_loc.hpp"
+#include "LIEF/DebugDeclOpt.hpp"
namespace LIEF {
namespace pdb {
@@ -31,54 +34,48 @@ class FunctionIt;
class LIEF_API Function {
public:
- class LIEF_API Iterator {
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::forward_iterator_tag, Function,
+ std::ptrdiff_t, const Function*,
+ const Function&> {
public:
- using iterator_category = std::forward_iterator_tag;
- using value_type = std::unique_ptr<Function>;
- using difference_type = std::ptrdiff_t;
- using pointer = Function*;
- using reference = Function&;
using implementation = details::FunctionIt;
+ using iterator_facade_base::operator++;
- class LIEF_API PointerProxy {
- // Inspired from LLVM's iterator_facade_base
- friend class Iterator;
- public:
- pointer operator->() const { return R.get(); }
+ LIEF_API Iterator();
- private:
- value_type R;
+ LIEF_API Iterator(std::unique_ptr<details::FunctionIt> impl);
- template <typename RefT>
- PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
- };
+ LIEF_API Iterator(const Iterator&);
+ LIEF_API Iterator& operator=(const Iterator&);
- Iterator(const Iterator&);
- Iterator(Iterator&&);
- Iterator(std::unique_ptr<details::FunctionIt> impl);
- ~Iterator();
+ LIEF_API Iterator(Iterator&&) noexcept;
+ LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+ LIEF_API ~Iterator();
friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
- friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+ friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
return !(LHS == RHS);
}
- Iterator& operator++();
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator++();
- Iterator operator++(int) {
- Iterator tmp = *static_cast<Iterator*>(this);
- ++*static_cast<Iterator *>(this);
- return tmp;
- }
+ LIEF_API const Function& operator*() const LIEF_LIFETIMEBOUND;
- std::unique_ptr<Function> operator*() const;
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const Function* operator->() const LIEF_LIFETIMEBOUND;
- PointerProxy operator->() const {
- return static_cast<const Iterator*>(this)->operator*();
- }
+ /// Transfer ownership of the function at the current position to the
+ /// caller. Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<Function> yield();
private:
+ void load() const;
+
std::unique_ptr<details::FunctionIt> impl_;
+ mutable std::unique_ptr<Function> cached_;
};
Function(std::unique_ptr<details::Function> impl);
~Function();
@@ -98,11 +95,12 @@ class LIEF_API Function {
/// Original source code location
debug_location_t debug_location() const;
+ /// Generate a C/C++ definition for this function
+ std::string to_decl(const DeclOpt& opt = DeclOpt()) const;
+
std::string to_string() const;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const Function& F)
- {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os, const Function& F) {
os << F.to_string();
return os;
}
@@ -114,4 +112,3 @@ class LIEF_API Function {
}
}
#endif
-
diff --git a/deps/LIEF/include/LIEF/PDB/PublicSymbol.hpp b/deps/LIEF/include/LIEF/PDB/PublicSymbol.hpp
index 0e1054353ea..f1ec0127e93 100644
--- a/deps/LIEF/include/LIEF/PDB/PublicSymbol.hpp
+++ b/deps/LIEF/include/LIEF/PDB/PublicSymbol.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,6 +19,8 @@
#include <string>
#include <ostream>
+#include "LIEF/compiler_attributes.hpp"
+#include "LIEF/iterators.hpp"
#include "LIEF/visibility.h"
namespace LIEF {
@@ -33,65 +35,59 @@ class PublicSymbolIt;
/// from the PDB's public symbol stream (or Public symbol hash stream)
class LIEF_API PublicSymbol {
public:
- class LIEF_API Iterator {
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::forward_iterator_tag,
+ PublicSymbol, std::ptrdiff_t,
+ const PublicSymbol*, const PublicSymbol&> {
public:
- using iterator_category = std::forward_iterator_tag;
- using value_type = std::unique_ptr<PublicSymbol>;
- using difference_type = std::ptrdiff_t;
- using pointer = PublicSymbol*;
- using reference = PublicSymbol&;
using implementation = details::PublicSymbolIt;
+ using iterator_facade_base::operator++;
- class LIEF_API PointerProxy {
- // Inspired from LLVM's iterator_facade_base
- friend class Iterator;
- public:
- pointer operator->() const { return R.get(); }
+ LIEF_API Iterator();
- private:
- value_type R;
+ LIEF_API Iterator(std::unique_ptr<details::PublicSymbolIt> impl);
- template <typename RefT>
- PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
- };
+ LIEF_API Iterator(const Iterator&);
+ LIEF_API Iterator& operator=(const Iterator&);
- Iterator(const Iterator&);
- Iterator(Iterator&&);
- Iterator(std::unique_ptr<details::PublicSymbolIt> impl);
- ~Iterator();
+ LIEF_API Iterator(Iterator&&) noexcept;
+ LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+ LIEF_API ~Iterator();
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator++();
friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
- friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+ friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
return !(LHS == RHS);
}
- Iterator& operator++();
+ LIEF_API const PublicSymbol& operator*() const LIEF_LIFETIMEBOUND;
- Iterator operator++(int) {
- Iterator tmp = *static_cast<Iterator*>(this);
- ++*static_cast<Iterator *>(this);
- return tmp;
- }
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const PublicSymbol* operator->() const LIEF_LIFETIMEBOUND;
- std::unique_ptr<PublicSymbol> operator*() const;
-
- PointerProxy operator->() const {
- return static_cast<const Iterator*>(this)->operator*();
- }
+ /// Transfer ownership of the public symbol at the current position to
+ /// the caller. Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<PublicSymbol> yield();
private:
+ void load() const;
+
std::unique_ptr<details::PublicSymbolIt> impl_;
+ mutable std::unique_ptr<PublicSymbol> cached_;
};
PublicSymbol(std::unique_ptr<details::PublicSymbol> impl);
~PublicSymbol();
enum class FLAGS : uint32_t {
- NONE = 0,
- CODE = 1 << 0,
+ NONE = 0,
+ CODE = 1 << 0,
FUNCTION = 1 << 1,
- MANAGED = 1 << 2,
- MSIL = 1 << 3,
+ MANAGED = 1 << 2,
+ MSIL = 1 << 3,
};
/// Name of the symbol
@@ -112,9 +108,8 @@ class LIEF_API PublicSymbol {
std::string to_string() const;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const PublicSymbol& sym)
- {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const PublicSymbol& sym) {
os << sym.to_string();
return os;
}
@@ -126,4 +121,3 @@ class LIEF_API PublicSymbol {
}
}
#endif
-
diff --git a/deps/LIEF/include/LIEF/PDB/Type.hpp b/deps/LIEF/include/LIEF/PDB/Type.hpp
index 45621744b51..c006f52e675 100644
--- a/deps/LIEF/include/LIEF/PDB/Type.hpp
+++ b/deps/LIEF/include/LIEF/PDB/Type.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,9 +14,15 @@
*/
#ifndef LIEF_PDB_TYPE_H
#define LIEF_PDB_TYPE_H
+#include <cstdint>
#include <memory>
+#include <string>
+#include "LIEF/compiler_attributes.hpp"
+#include "LIEF/iterators.hpp"
#include "LIEF/visibility.h"
+#include "LIEF/optional.hpp"
+#include "LIEF/DebugDeclOpt.hpp"
namespace LIEF {
namespace pdb {
@@ -29,57 +35,52 @@ class TypeIt;
/// This is the base class for any PDB type
class LIEF_API Type {
public:
- class LIEF_API Iterator {
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::forward_iterator_tag, Type,
+ std::ptrdiff_t, const Type*, const Type&> {
public:
- using iterator_category = std::forward_iterator_tag;
- using value_type = std::unique_ptr<Type>;
- using difference_type = std::ptrdiff_t;
- using pointer = Type*;
- using reference = Type&;
using implementation = details::TypeIt;
+ using iterator_facade_base::operator++;
- class LIEF_API PointerProxy {
- // Inspired from LLVM's iterator_facade_base
- friend class Iterator;
- public:
- pointer operator->() const { return R.get(); }
+ LIEF_API Iterator();
- private:
- value_type R;
+ LIEF_API Iterator(std::unique_ptr<details::TypeIt> impl);
- template <typename RefT>
- PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
- };
+ LIEF_API Iterator(const Iterator&);
+ LIEF_API Iterator& operator=(const Iterator&);
- Iterator(const Iterator&);
- Iterator(Iterator&&) noexcept;
- Iterator(std::unique_ptr<details::TypeIt> impl);
- ~Iterator();
+ LIEF_API Iterator(Iterator&&) noexcept;
+ LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+ LIEF_API ~Iterator();
friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
- friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+ friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
return !(LHS == RHS);
}
- Iterator& operator++();
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator++();
- Iterator operator++(int) {
- Iterator tmp = *static_cast<Iterator*>(this);
- ++*static_cast<Iterator *>(this);
- return tmp;
- }
+ LIEF_API const Type& operator*() const LIEF_LIFETIMEBOUND;
- std::unique_ptr<Type> operator*() const;
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const Type* operator->() const LIEF_LIFETIMEBOUND;
- PointerProxy operator->() const {
- return static_cast<const Iterator*>(this)->operator*();
- }
+ /// Transfer ownership of the type at the current position to the
+ /// caller. Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<Type> yield();
private:
+ void load() const;
+
std::unique_ptr<details::TypeIt> impl_;
+ mutable std::unique_ptr<Type> cached_;
};
+ LIEF_LOCAL Type(std::unique_ptr<details::Type> impl);
+
enum class KIND {
UNKNOWN = 0,
CLASS,
@@ -97,6 +98,16 @@ class LIEF_API Type {
KIND kind() const;
+ /// Size of the type. This size should match the value of `sizeof(...)`
+ /// applied to this type.
+ optional<uint64_t> size() const;
+
+ /// Type's name (if present)
+ optional<std::string> name() const;
+
+ /// Generates a C/C++ definition for this type
+ std::string to_decl(const DeclOpt& opt = DeclOpt()) const;
+
template<class T>
const T* as() const {
if (T::classof(this)) {
@@ -105,16 +116,15 @@ class LIEF_API Type {
return nullptr;
}
- static std::unique_ptr<Type> create(std::unique_ptr<details::Type> impl);
+ static std::unique_ptr<Type>
+ create(std::unique_ptr<details::Type> impl LIEF_LIFETIMEBOUND);
virtual ~Type();
protected:
- Type(std::unique_ptr<details::Type> impl);
std::unique_ptr<details::Type> impl_;
};
}
}
#endif
-
diff --git a/deps/LIEF/include/LIEF/PDB/types.hpp b/deps/LIEF/include/LIEF/PDB/types.hpp
index 8c912f3a02d..5cf23bfd8e7 100644
--- a/deps/LIEF/include/LIEF/PDB/types.hpp
+++ b/deps/LIEF/include/LIEF/PDB/types.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/PDB/types/Array.hpp b/deps/LIEF/include/LIEF/PDB/types/Array.hpp
index ad72ddaa342..66c33c1c3bd 100644
--- a/deps/LIEF/include/LIEF/PDB/types/Array.hpp
+++ b/deps/LIEF/include/LIEF/PDB/types/Array.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
#ifndef LIEF_PDB_TYPE_ARRAY_H
#define LIEF_PDB_TYPE_ARRAY_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/PDB/Type.hpp"
@@ -25,7 +26,20 @@ namespace types {
/// This class represents a `LF_ARRAY` PDB type
class LIEF_API Array : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ Array(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
+
+ /// The number of elements in this array
+ size_t numberof_elements() const;
+
+ /// Type of the elements
+ std::unique_ptr<Type> element_type() const LIEF_LIFETIMEBOUND;
+
+ /// Type of the index
+ std::unique_ptr<Type> index_type() const LIEF_LIFETIMEBOUND;
static bool classof(const Type* type) {
return type->kind() == Type::KIND::ARRAY;
@@ -38,5 +52,3 @@ class LIEF_API Array : public Type {
}
}
#endif
-
-
diff --git a/deps/LIEF/include/LIEF/PDB/types/Attribute.hpp b/deps/LIEF/include/LIEF/PDB/types/Attribute.hpp
index fc961be5d74..81c0deb37d5 100644
--- a/deps/LIEF/include/LIEF/PDB/types/Attribute.hpp
+++ b/deps/LIEF/include/LIEF/PDB/types/Attribute.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,8 @@
#ifndef LIEF_PDB_TYPE_ATTRIBUTE_H
#define LIEF_PDB_TYPE_ATTRIBUTE_H
+#include "LIEF/compiler_attributes.hpp"
+#include "LIEF/iterators.hpp"
#include "LIEF/visibility.h"
#include <cstdint>
@@ -35,54 +37,50 @@ class AttributeIt;
/// struct, union, ...)
class LIEF_API Attribute {
public:
- class LIEF_API Iterator {
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::forward_iterator_tag, Attribute,
+ std::ptrdiff_t, const Attribute*,
+ const Attribute&> {
public:
- using iterator_category = std::forward_iterator_tag;
- using value_type = std::unique_ptr<Attribute>;
- using difference_type = std::ptrdiff_t;
- using pointer = Attribute*;
- using reference = Attribute&;
using implementation = details::AttributeIt;
+ using iterator_facade_base::operator++;
- class LIEF_API PointerProxy {
- // Inspired from LLVM's iterator_facade_base
- friend class Iterator;
- public:
- pointer operator->() const { return R.get(); }
+ LIEF_API Iterator();
- private:
- value_type R;
+ LIEF_API Iterator(std::unique_ptr<details::AttributeIt> impl);
- template <typename RefT>
- PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
- };
- Iterator(const Iterator&);
- Iterator(Iterator&&) noexcept;
- Iterator(std::unique_ptr<details::AttributeIt> impl);
- ~Iterator();
+ LIEF_API Iterator(const Iterator&);
+ LIEF_API Iterator& operator=(const Iterator&);
+
+ LIEF_API Iterator(Iterator&&) noexcept;
+ LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+ LIEF_API ~Iterator();
friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
- friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+ friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
return !(LHS == RHS);
}
- Iterator& operator++();
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator++();
- Iterator operator++(int) {
- Iterator tmp = *static_cast<Iterator*>(this);
- ++*static_cast<Iterator *>(this);
- return tmp;
- }
+ LIEF_API const Attribute& operator*() const LIEF_LIFETIMEBOUND;
- std::unique_ptr<Attribute> operator*() const;
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const Attribute* operator->() const LIEF_LIFETIMEBOUND;
- PointerProxy operator->() const {
- return static_cast<const Iterator*>(this)->operator*();
- }
+ /// Transfer ownership of the attribute at the current position to the
+ /// caller. Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<Attribute> yield();
private:
+ void load() const;
+
std::unique_ptr<details::AttributeIt> impl_;
+ mutable std::unique_ptr<Attribute> cached_;
};
+
public:
Attribute(std::unique_ptr<details::Attribute> impl);
@@ -90,7 +88,7 @@ class LIEF_API Attribute {
std::string name() const;
/// Type of this attribute
- std::unique_ptr<Type> type() const;
+ std::unique_ptr<Type> type() const LIEF_LIFETIMEBOUND;
/// Offset of this attribute in the aggregate
uint64_t field_offset() const;
@@ -105,4 +103,3 @@ class LIEF_API Attribute {
}
}
#endif
-
diff --git a/deps/LIEF/include/LIEF/PDB/types/BitField.hpp b/deps/LIEF/include/LIEF/PDB/types/BitField.hpp
index 1aadb136c43..41285c603af 100644
--- a/deps/LIEF/include/LIEF/PDB/types/BitField.hpp
+++ b/deps/LIEF/include/LIEF/PDB/types/BitField.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,7 +25,11 @@ namespace types {
/// This class represents a `LF_BITFIELD` PDB type
class LIEF_API BitField : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ BitField(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
static bool classof(const Type* type) {
return type->kind() == Type::KIND::BITFIELD;
@@ -38,5 +42,3 @@ class LIEF_API BitField : public Type {
}
}
#endif
-
-
diff --git a/deps/LIEF/include/LIEF/PDB/types/ClassLike.hpp b/deps/LIEF/include/LIEF/PDB/types/ClassLike.hpp
index dd8cb662498..9d61c214cfa 100644
--- a/deps/LIEF/include/LIEF/PDB/types/ClassLike.hpp
+++ b/deps/LIEF/include/LIEF/PDB/types/ClassLike.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
#ifndef LIEF_PDB_TYPE_CLASS_H
#define LIEF_PDB_TYPE_CLASS_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/PDB/Type.hpp"
#include "LIEF/PDB/types/Attribute.hpp"
@@ -27,11 +28,15 @@ namespace LIEF {
namespace pdb {
namespace types {
-/// This class abstracts the following PDB types: `LF_STRUCTURE`, `LF_INTERFACE`, `LF_CLASS`
-/// or `LF_UNION`.
+/// This class abstracts the following PDB types: `LF_STRUCTURE`, `LF_INTERFACE`,
+/// `LF_CLASS` or `LF_UNION`.
class LIEF_API ClassLike : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ ClassLike(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
/// Attributes iterator
using attributes_iterator = iterator_range<Attribute::Iterator>;
@@ -42,22 +47,17 @@ class LIEF_API ClassLike : public Type {
/// Mangled type name
std::string unique_name() const;
- /// Demangled type name
- std::string name() const;
-
/// Iterator over the different attributes defined in this class-like type
- attributes_iterator attributes() const;
+ attributes_iterator attributes() const LIEF_LIFETIMEBOUND;
/// Iterator over the different methods implemented in this class-type type
- methods_iterator methods() const;
-
- /// Size of the type including all its attributes. This size should match
- /// the `sizeof(...)` this type.
- uint64_t size() const;
+ methods_iterator methods() const LIEF_LIFETIMEBOUND;
- template <class T>
- static bool classof(const T*, typename std::enable_if<std::is_base_of<ClassLike, T>::value>::type* = 0)
- {
+ template<class T>
+ static bool classof(
+ const T*,
+ typename std::enable_if<std::is_base_of<ClassLike, T>::value>::type* = 0
+ ) {
return true;
}
@@ -68,7 +68,11 @@ class LIEF_API ClassLike : public Type {
/// Interface for the `LF_STRUCTURE` PDB type
class LIEF_API Structure : public ClassLike {
public:
- using ClassLike::ClassLike;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<ClassLike, Args&&...>::value>::type>
+ Structure(Args&&... args) :
+ ClassLike(std::forward<Args>(args)...) {}
static bool classof(const Type* type) {
return type->kind() == Type::KIND::STRUCTURE;
@@ -80,7 +84,11 @@ class LIEF_API Structure : public ClassLike {
/// Interface for the `LF_CLASS` PDB type
class LIEF_API Class : public ClassLike {
public:
- using ClassLike::ClassLike;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<ClassLike, Args&&...>::value>::type>
+ Class(Args&&... args) :
+ ClassLike(std::forward<Args>(args)...) {}
static bool classof(const Type* type) {
return type->kind() == Type::KIND::CLASS;
@@ -92,7 +100,11 @@ class LIEF_API Class : public ClassLike {
/// Interface for the `LF_INTERFACE` PDB type
class LIEF_API Interface : public ClassLike {
public:
- using ClassLike::ClassLike;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<ClassLike, Args&&...>::value>::type>
+ Interface(Args&&... args) :
+ ClassLike(std::forward<Args>(args)...) {}
static bool classof(const Type* type) {
return type->kind() == Type::KIND::INTERFACE;
@@ -106,5 +118,3 @@ class LIEF_API Interface : public ClassLike {
}
}
#endif
-
-
diff --git a/deps/LIEF/include/LIEF/PDB/types/Enum.hpp b/deps/LIEF/include/LIEF/PDB/types/Enum.hpp
index d6ea5dd0e09..a51d3ba4560 100644
--- a/deps/LIEF/include/LIEF/PDB/types/Enum.hpp
+++ b/deps/LIEF/include/LIEF/PDB/types/Enum.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
#ifndef LIEF_PDB_TYPE_ENUM_H
#define LIEF_PDB_TYPE_ENUM_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/PDB/Type.hpp"
@@ -22,21 +23,62 @@ namespace LIEF {
namespace pdb {
namespace types {
+namespace details {
+class EnumEntry;
+}
+
/// This class represents a `LF_ENUM` PDB type
class LIEF_API Enum : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ Enum(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
+
+ /// This class represents an enum entry which is essentially
+ /// composed of a name and its value (integer).
+ class LIEF_API Entry {
+ public:
+ Entry(std::unique_ptr<details::EnumEntry> impl LIEF_LIFETIMEBOUND);
+ Entry(Entry&& other) noexcept;
+ Entry& operator=(Entry&& other) noexcept;
+
+ /// Enum entry's name
+ std::string name() const;
+
+ /// Enum entry's value (if any)
+ int64_t value() const;
+
+ ~Entry();
+
+ private:
+ std::unique_ptr<details::EnumEntry> impl_;
+ };
+
+ /// Enum's mangled name
+ std::string unique_name() const;
+
+ /// Return the different entries associated with this enum
+ std::vector<Entry> entries() const LIEF_LIFETIMEBOUND;
+
+ /// The underlying type that is used to encode this enum
+ const Type* underlying_type() const LIEF_LIFETIMEBOUND;
+
+ /// Try to find the enum matching the given value
+ optional<Entry> find_entry(int64_t value) const LIEF_LIFETIMEBOUND;
static bool classof(const Type* type) {
return type->kind() == Type::KIND::ENUM;
}
~Enum() override;
+
+ protected:
+ mutable std::unique_ptr<Type> underlying_;
};
}
}
}
#endif
-
-
diff --git a/deps/LIEF/include/LIEF/PDB/types/Function.hpp b/deps/LIEF/include/LIEF/PDB/types/Function.hpp
index 39409f09971..c60c99efed3 100644
--- a/deps/LIEF/include/LIEF/PDB/types/Function.hpp
+++ b/deps/LIEF/include/LIEF/PDB/types/Function.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
#ifndef LIEF_PDB_TYPE_FUNCTION_H
#define LIEF_PDB_TYPE_FUNCTION_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/PDB/Type.hpp"
@@ -25,7 +26,18 @@ namespace types {
/// This class represents a `LF_PROCEDURE` PDB type
class LIEF_API Function : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ Function(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
+ using parameters_t = std::vector<std::unique_ptr<Type>>;
+
+ /// Type returned by the function
+ std::unique_ptr<Type> return_type() const LIEF_LIFETIMEBOUND;
+
+ /// Types of the function's parameters
+ parameters_t parameters() const LIEF_LIFETIMEBOUND;
static bool classof(const Type* type) {
return type->kind() == Type::KIND::FUNCTION;
@@ -38,5 +50,3 @@ class LIEF_API Function : public Type {
}
}
#endif
-
-
diff --git a/deps/LIEF/include/LIEF/PDB/types/Method.hpp b/deps/LIEF/include/LIEF/PDB/types/Method.hpp
index 5fa9599d84c..c21ade6c33a 100644
--- a/deps/LIEF/include/LIEF/PDB/types/Method.hpp
+++ b/deps/LIEF/include/LIEF/PDB/types/Method.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,10 +15,13 @@
#ifndef LIEF_PDB_TYPE_METHOD_H
#define LIEF_PDB_TYPE_METHOD_H
+#include "LIEF/compiler_attributes.hpp"
+#include "LIEF/iterators.hpp"
#include "LIEF/visibility.h"
#include <string>
#include <memory>
+#include <cstdint>
namespace LIEF {
namespace pdb {
@@ -31,64 +34,97 @@ class MethodIt;
}
/// This class represents a Method (`LF_ONEMETHOD`) that can be defined in
-/// ClassLike PDB type
+/// a ClassLike PDB type (Class, Structure, Union, Interface).
class LIEF_API Method {
public:
- class LIEF_API Iterator {
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::forward_iterator_tag, Method,
+ std::ptrdiff_t, const Method*, const Method&> {
public:
- using iterator_category = std::forward_iterator_tag;
- using value_type = std::unique_ptr<Method>;
- using difference_type = std::ptrdiff_t;
- using pointer = Method*;
- using reference = Method&;
using implementation = details::MethodIt;
+ using iterator_facade_base::operator++;
- class LIEF_API PointerProxy {
- // Inspired from LLVM's iterator_facade_base
- friend class Iterator;
- public:
- pointer operator->() const { return R.get(); }
+ LIEF_API Iterator();
- private:
- value_type R;
+ LIEF_API Iterator(std::unique_ptr<details::MethodIt> impl);
- template <typename RefT>
- PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {} // NOLINT(bugprone-forwarding-reference-overload)
- };
- Iterator(const Iterator&);
- Iterator(Iterator&&) noexcept;
- Iterator(std::unique_ptr<details::MethodIt> impl);
- ~Iterator();
+ LIEF_API Iterator(const Iterator&);
+ LIEF_API Iterator& operator=(const Iterator&);
+
+ LIEF_API Iterator(Iterator&&) noexcept;
+ LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+ LIEF_API ~Iterator();
friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
- friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+ friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
return !(LHS == RHS);
}
- Iterator& operator++();
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator++();
- Iterator operator++(int) {
- Iterator tmp = *static_cast<Iterator*>(this);
- ++*static_cast<Iterator *>(this);
- return tmp;
- }
+ LIEF_API const Method& operator*() const LIEF_LIFETIMEBOUND;
- std::unique_ptr<Method> operator*() const;
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const Method* operator->() const LIEF_LIFETIMEBOUND;
- PointerProxy operator->() const {
- return static_cast<const Iterator*>(this)->operator*();
- }
+ /// Transfer ownership of the method at the current position to the
+ /// caller. Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<Method> yield();
private:
+ void load() const;
+
std::unique_ptr<details::MethodIt> impl_;
+ mutable std::unique_ptr<Method> cached_;
};
+
public:
+ /// The type (or property) of the method.
+ enum class TYPE {
+ /// Regular instance method
+ VANILLA = 0x00,
+
+ /// Virtual method
+ VIRTUAL = 0x01,
+
+ /// Static method
+ STATIC = 0x02,
+
+ /// Friend method
+ FRIEND = 0x03,
+
+ /// Virtual method that introduces a new vtable slot
+ INTRODUCING_VIRTUAL = 0x04,
+
+ /// Pure virtual method (abstract)
+ PURE_VIRTUAL = 0x05,
+
+ /// Pure virtual method that introduces a new vtable slot
+ PURE_INTRODUCING_VIRTUAL = 0x06,
+ };
+
+ /// Visibility access for the method.
+ enum class ACCESS : uint8_t {
+ NONE = 0, /// No access specifier (or unknown)
+ PRIVATE = 1, /// Private access
+ PROTECTED = 2, /// Protected access
+ PUBLIC = 3, /// Public access
+ };
+
Method(std::unique_ptr<details::Method> impl);
/// Name of the method
std::string name() const;
+ /// Type/Properties of the method (virtual, static, etc.)
+ TYPE type() const;
+
+ /// Visibility access (public, private, ...)
+ ACCESS access() const;
+
~Method();
private:
@@ -99,4 +135,3 @@ class LIEF_API Method {
}
}
#endif
-
diff --git a/deps/LIEF/include/LIEF/PDB/types/Modifier.hpp b/deps/LIEF/include/LIEF/PDB/types/Modifier.hpp
index f08755803d3..632a9986bab 100644
--- a/deps/LIEF/include/LIEF/PDB/types/Modifier.hpp
+++ b/deps/LIEF/include/LIEF/PDB/types/Modifier.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
#ifndef LIEF_PDB_TYPE_MODIFIER_H
#define LIEF_PDB_TYPE_MODIFIER_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/PDB/Type.hpp"
@@ -25,14 +26,18 @@ namespace types {
/// This class represents a `LF_MODIFIER` PDB type
class LIEF_API Modifier : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ Modifier(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
static bool classof(const Type* type) {
return type->kind() == Type::KIND::MODIFIER;
}
/// Underlying type targeted by this modifier
- std::unique_ptr<Type> underlying_type() const;
+ std::unique_ptr<Type> underlying_type() const LIEF_LIFETIMEBOUND;
~Modifier() override;
};
@@ -41,5 +46,3 @@ class LIEF_API Modifier : public Type {
}
}
#endif
-
-
diff --git a/deps/LIEF/include/LIEF/PDB/types/Pointer.hpp b/deps/LIEF/include/LIEF/PDB/types/Pointer.hpp
index 66c8e950ab4..a1513eb254d 100644
--- a/deps/LIEF/include/LIEF/PDB/types/Pointer.hpp
+++ b/deps/LIEF/include/LIEF/PDB/types/Pointer.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
#ifndef LIEF_PDB_TYPE_POINTER_H
#define LIEF_PDB_TYPE_POINTER_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/PDB/Type.hpp"
@@ -25,14 +26,18 @@ namespace types {
/// This class represents a `LF_POINTER` PDB type
class LIEF_API Pointer : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ Pointer(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
static bool classof(const Type* type) {
return type->kind() == Type::KIND::POINTER;
}
/// The underlying type pointed by this pointer
- std::unique_ptr<Type> underlying_type() const;
+ std::unique_ptr<Type> underlying_type() const LIEF_LIFETIMEBOUND;
~Pointer() override;
};
@@ -41,5 +46,3 @@ class LIEF_API Pointer : public Type {
}
}
#endif
-
-
diff --git a/deps/LIEF/include/LIEF/PDB/types/Simple.hpp b/deps/LIEF/include/LIEF/PDB/types/Simple.hpp
index 44995a41d7c..16e38f5306e 100644
--- a/deps/LIEF/include/LIEF/PDB/types/Simple.hpp
+++ b/deps/LIEF/include/LIEF/PDB/types/Simple.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,11 +22,125 @@ namespace LIEF {
namespace pdb {
namespace types {
-/// This class represents a primitive types (int, float, ...) which are
+/// This class represents primitive types (int, float, ...) which are
/// also named *simple* types in the PDB format.
class LIEF_API Simple : public Type {
public:
- using Type::Type;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<Type, Args&&...>::value>::type>
+ Simple(Args&&... args) :
+ Type(std::forward<Args>(args)...) {}
+
+ /// Identifier of the primitive type.
+ ///
+ /// These values correspond to the low bits of the CodeView Type Index.
+ enum class TYPES {
+ UNKNOWN = 0,
+ VOID_ = 0x0003,
+
+ // --- Characters ---
+ SCHAR = 0x0010, //!< Signed Character
+ UCHAR = 0x0020, //!< Unsigned Character
+ RCHAR = 0x0070, //!< "Real" Character (char)
+
+ // --- Unicode / Wide Characters ---
+ WCHAR = 0x0071, //!< Wide Character (wchar_t)
+ CHAR16 = 0x007a, //!< 16-bit Character (char16_t)
+ CHAR32 = 0x007b, //!< 32-bit Character (char32_t)
+ CHAR8 = 0x007c, //!< 8-bit Character (char8_t)
+
+ // --- Bytes ---
+ SBYTE = 0x0068, //!< Signed Byte
+ UBYTE = 0x0069, //!< Unsigned Byte
+
+ // --- Short (16-bit) ---
+ SSHORT = 0x0011, //!< Signed Short
+ USHORT = 0x0021, //!< Unsigned Short
+
+ SINT16 = 0x0072, //!< Explicit Signed 16-bit Integer
+ UINT16 = 0x0073, //!< Explicit Unsigned 16-bit Integer
+
+ // --- Long (32-bit) ---
+ SLONG = 0x0012, //!< Signed Long
+ ULONG = 0x0022, //!< Unsigned Long
+
+ SINT32 = 0x0074, //!< Explicit Signed 32-bit Integer
+ UINT32 = 0x0075, //!< Explicit Unsigned 32-bit Integer
+
+ // --- Quad (64-bit) ---
+ SQUAD = 0x0013, //!< Signed Quadword
+ UQUAD = 0x0023, //!< Unsigned Quadword
+
+ SINT64 = 0x0076, //!< Explicit Signed 64-bit Integer
+ UINT64 = 0x0077, //!< Explicit Unsigned 64-bit Integer
+
+ // --- Octa (128-bit) ---
+ SOCTA = 0x0014, //!< Signed Octaword
+ UOCTA = 0x0024, //!< Unsigned Octaword
+
+ SINT128 = 0x0078, //!< Explicit Signed 128-bit Integer
+ UINT128 = 0x0079, //!< Explicit Unsigned 128-bit Integer
+
+ // --- Floating Point ---
+ FLOAT16 = 0x0046, //!< 16-bit Floating point
+ FLOAT32 = 0x0040, //!< 32-bit Floating point (float)
+ FLOAT32_PARTIAL_PRECISION = 0x45,
+
+ FLOAT48 = 0x0044, //!< 48-bit Floating point
+ FLOAT64 = 0x0041, //!< 64-bit Floating point (double)
+ FLOAT80 = 0x0042, //!< 80-bit Floating point
+ FLOAT128 = 0x0043, //!< 128-bit Floating point
+
+ // --- Complex Numbers ---
+ COMPLEX16 = 0x0056,
+ COMPLEX32 = 0x0050,
+ COMPLEX32_PARTIAL_PRECISION = 0x0055,
+ COMPLEX48 = 0x0054,
+ COMPLEX64 = 0x0051,
+ COMPLEX80 = 0x0052,
+ COMPLEX128 = 0x0053,
+
+ // --- Booleans ---
+ BOOL8 = 0x0030, //!< 8-bit Boolean
+ BOOL16 = 0x0031, //!< 16-bit Boolean
+ BOOL32 = 0x0032, //!< 32-bit Boolean
+ BOOL64 = 0x0033, //!< 64-bit Boolean
+ BOOL128 = 0x0034, //!< 128-bit Boolean
+ };
+
+ /// Modifier applied to the underlying type.
+ ///
+ /// In the PDB Simple Type encoding, these represent pointer attributes.
+ enum class MODES : uint32_t {
+ DIRECT = 0x00000000, //!< Not a pointer (direct access)
+ FAR_POINTER = 0x00000200, //!< Far pointer
+ HUGE_POINTER = 0x00000300, //!< Huge pointer
+ NEAR_POINTER32 = 0x00000400, //!< 32-bit Near pointer
+ FAR_POINTER32 = 0x00000500, //!< 32-bit Far pointer
+ NEAR_POINTER64 = 0x00000600, //!< 64-bit Near pointer
+ NEAR_POINTER128 = 0x00000700, //!< 128-bit Near pointer
+ };
+
+ /// Returns the underlying primitive type.
+ TYPES type() const;
+
+ /// Returns the mode (pointer type) of this Simple type.
+ MODES modes() const;
+
+ /// Check if this simple type is a pointer.
+ bool is_pointer() const {
+ return modes() != MODES::DIRECT;
+ }
+
+ /// Check if the underlying type is signed
+ bool is_signed() const {
+ const TYPES ty = type();
+ return ty == TYPES::SCHAR || ty == TYPES::SBYTE || ty == TYPES::SSHORT ||
+ ty == TYPES::SINT16 || ty == TYPES::SLONG || ty == TYPES::SINT32 ||
+ ty == TYPES::SQUAD || ty == TYPES::SINT64 || ty == TYPES::SOCTA ||
+ ty == TYPES::SINT128;
+ }
static bool classof(const Type* type) {
return type->kind() == Type::KIND::SIMPLE;
@@ -39,5 +153,3 @@ class LIEF_API Simple : public Type {
}
}
#endif
-
-
diff --git a/deps/LIEF/include/LIEF/PDB/types/Union.hpp b/deps/LIEF/include/LIEF/PDB/types/Union.hpp
index 6fa18c65386..662e342462f 100644
--- a/deps/LIEF/include/LIEF/PDB/types/Union.hpp
+++ b/deps/LIEF/include/LIEF/PDB/types/Union.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,7 +25,11 @@ namespace types {
/// This class represents a `LF_UNION` PDB type
class LIEF_API Union : public ClassLike {
public:
- using ClassLike::ClassLike;
+ template<typename... Args,
+ typename = typename std::
+ enable_if<std::is_constructible<ClassLike, Args&&...>::value>::type>
+ Union(Args&&... args) :
+ ClassLike(std::forward<Args>(args)...) {}
static bool classof(const Type* type) {
return type->kind() == Type::KIND::UNION;
@@ -38,5 +42,3 @@ class LIEF_API Union : public ClassLike {
}
}
#endif
-
-
diff --git a/deps/LIEF/include/LIEF/PDB/utils.hpp b/deps/LIEF/include/LIEF/PDB/utils.hpp
index e7521741ece..cfd04d9f4b1 100644
--- a/deps/LIEF/include/LIEF/PDB/utils.hpp
+++ b/deps/LIEF/include/LIEF/PDB/utils.hpp
@@ -1,6 +1,6 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/PE.hpp b/deps/LIEF/include/LIEF/PE.hpp
index a0d2d081e0b..682bdce406f 100644
--- a/deps/LIEF/include/LIEF/PE.hpp
+++ b/deps/LIEF/include/LIEF/PE.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,72 +20,73 @@
#if defined(LIEF_PE_SUPPORT)
-#include "LIEF/PE/Parser.hpp"
-#include "LIEF/PE/Section.hpp"
-#include "LIEF/PE/TLS.hpp"
-#include "LIEF/PE/Export.hpp"
-#include "LIEF/PE/ExportEntry.hpp"
-#include "LIEF/PE/Import.hpp"
-#include "LIEF/PE/ImportEntry.hpp"
-#include "LIEF/PE/DelayImport.hpp"
-#include "LIEF/PE/DelayImportEntry.hpp"
-#include "LIEF/PE/DataDirectory.hpp"
-#include "LIEF/PE/ResourcesManager.hpp"
-#include "LIEF/PE/ResourceData.hpp"
-#include "LIEF/PE/ResourceNode.hpp"
-#include "LIEF/PE/ResourceDirectory.hpp"
-#include "LIEF/PE/resources/ResourceAccelerator.hpp"
-#include "LIEF/PE/resources/ResourceDialog.hpp"
-#include "LIEF/PE/resources/ResourceDialogRegular.hpp"
-#include "LIEF/PE/resources/ResourceDialogExtended.hpp"
-#include "LIEF/PE/resources/AcceleratorCodes.hpp"
-#include "LIEF/PE/resources/ResourceIcon.hpp"
-#include "LIEF/PE/resources/ResourceStringFileInfo.hpp"
-#include "LIEF/PE/resources/ResourceStringTable.hpp"
-#include "LIEF/PE/resources/ResourceVarFileInfo.hpp"
-#include "LIEF/PE/resources/ResourceVar.hpp"
-#include "LIEF/PE/resources/ResourceVersion.hpp"
-#include "LIEF/PE/RichEntry.hpp"
-#include "LIEF/PE/RichHeader.hpp"
-#include "LIEF/PE/Relocation.hpp"
-#include "LIEF/PE/RelocationEntry.hpp"
-#include "LIEF/PE/Builder.hpp"
-#include "LIEF/PE/Binary.hpp"
-#include "LIEF/PE/Debug.hpp"
-#include "LIEF/PE/DosHeader.hpp"
-#include "LIEF/PE/Header.hpp"
-#include "LIEF/PE/OptionalHeader.hpp"
-#include "LIEF/PE/LoadConfigurations.hpp"
-#include "LIEF/PE/CodeIntegrity.hpp"
-#include "LIEF/PE/Factory.hpp"
-#include "LIEF/PE/ExceptionInfo.hpp"
-#include "LIEF/PE/exceptions_info/RuntimeFunctionAArch64.hpp"
-#include "LIEF/PE/exceptions_info/AArch64/PackedFunction.hpp"
-#include "LIEF/PE/exceptions_info/AArch64/UnpackedFunction.hpp"
-#include "LIEF/PE/exceptions_info/RuntimeFunctionX64.hpp"
-#include "LIEF/PE/exceptions_info/UnwindCodeX64.hpp"
+ #include "LIEF/PE/Parser.hpp"
+ #include "LIEF/PE/Section.hpp"
+ #include "LIEF/PE/TLS.hpp"
+ #include "LIEF/PE/Export.hpp"
+ #include "LIEF/PE/ExportEntry.hpp"
+ #include "LIEF/PE/Import.hpp"
+ #include "LIEF/PE/ImportEntry.hpp"
+ #include "LIEF/PE/DelayImport.hpp"
+ #include "LIEF/PE/DelayImportEntry.hpp"
+ #include "LIEF/PE/DataDirectory.hpp"
+ #include "LIEF/PE/ResourcesManager.hpp"
+ #include "LIEF/PE/ResourceData.hpp"
+ #include "LIEF/PE/ResourceNode.hpp"
+ #include "LIEF/PE/ResourceDirectory.hpp"
+ #include "LIEF/PE/resources/ResourceAccelerator.hpp"
+ #include "LIEF/PE/resources/ResourceDialog.hpp"
+ #include "LIEF/PE/resources/ResourceDialogRegular.hpp"
+ #include "LIEF/PE/resources/ResourceDialogExtended.hpp"
+ #include "LIEF/PE/resources/AcceleratorCodes.hpp"
+ #include "LIEF/PE/resources/ResourceIcon.hpp"
+ #include "LIEF/PE/resources/ResourceStringFileInfo.hpp"
+ #include "LIEF/PE/resources/ResourceStringTable.hpp"
+ #include "LIEF/PE/resources/ResourceVarFileInfo.hpp"
+ #include "LIEF/PE/resources/ResourceVar.hpp"
+ #include "LIEF/PE/resources/ResourceVersion.hpp"
+ #include "LIEF/PE/RichEntry.hpp"
+ #include "LIEF/PE/RichHeader.hpp"
+ #include "LIEF/PE/Relocation.hpp"
+ #include "LIEF/PE/RelocationEntry.hpp"
+ #include "LIEF/PE/Builder.hpp"
+ #include "LIEF/PE/Binary.hpp"
+ #include "LIEF/PE/Debug.hpp"
+ #include "LIEF/PE/DosHeader.hpp"
+ #include "LIEF/PE/Header.hpp"
+ #include "LIEF/PE/OptionalHeader.hpp"
+ #include "LIEF/PE/LoadConfigurations.hpp"
+ #include "LIEF/PE/CodeIntegrity.hpp"
+ #include "LIEF/PE/Factory.hpp"
+ #include "LIEF/PE/ExceptionInfo.hpp"
+ #include "LIEF/PE/exceptions_info/RuntimeFunctionAArch64.hpp"
+ #include "LIEF/PE/exceptions_info/AArch64/PackedFunction.hpp"
+ #include "LIEF/PE/exceptions_info/AArch64/UnpackedFunction.hpp"
+ #include "LIEF/PE/exceptions_info/RuntimeFunctionX64.hpp"
+ #include "LIEF/PE/exceptions_info/UnwindCodeX64.hpp"
-#include "LIEF/PE/signature/Attribute.hpp"
-#include "LIEF/PE/signature/ContentInfo.hpp"
-#include "LIEF/PE/signature/GenericContent.hpp"
-#include "LIEF/PE/signature/OIDToString.hpp"
-#include "LIEF/PE/signature/Signature.hpp"
-#include "LIEF/PE/signature/SignerInfo.hpp"
-#include "LIEF/PE/signature/SpcIndirectData.hpp"
-#include "LIEF/PE/signature/attributes.hpp"
-#include "LIEF/PE/signature/types.hpp"
-#include "LIEF/PE/signature/x509.hpp"
-#include "LIEF/PE/signature/SpcIndirectData.hpp"
-#include "LIEF/PE/signature/GenericContent.hpp"
-#include "LIEF/PE/signature/PKCS9TSTInfo.hpp"
+ #include "LIEF/PE/signature/Attribute.hpp"
+ #include "LIEF/PE/signature/ContentInfo.hpp"
+ #include "LIEF/PE/signature/GenericContent.hpp"
+ #include "LIEF/PE/signature/OIDToString.hpp"
+ #include "LIEF/PE/signature/Signature.hpp"
+ #include "LIEF/PE/signature/SignerInfo.hpp"
+ #include "LIEF/PE/signature/SpcIndirectData.hpp"
+ #include "LIEF/PE/signature/attributes.hpp"
+ #include "LIEF/PE/signature/types.hpp"
+ #include "LIEF/PE/signature/x509.hpp"
+ #include "LIEF/PE/signature/RsaInfo.hpp"
+ #include "LIEF/PE/signature/SpcIndirectData.hpp"
+ #include "LIEF/PE/signature/GenericContent.hpp"
+ #include "LIEF/PE/signature/PKCS9TSTInfo.hpp"
-#include "LIEF/PE/hash.hpp"
-#include "LIEF/PE/enums.hpp"
-#include "LIEF/PE/EnumToString.hpp"
-#include "LIEF/PE/utils.hpp"
+ #include "LIEF/PE/hash.hpp"
+ #include "LIEF/PE/enums.hpp"
+ #include "LIEF/PE/EnumToString.hpp"
+ #include "LIEF/PE/utils.hpp"
-#include "LIEF/COFF/Symbol.hpp"
-#include "LIEF/COFF/String.hpp"
+ #include "LIEF/COFF/Symbol.hpp"
+ #include "LIEF/COFF/String.hpp"
#endif
diff --git a/deps/LIEF/include/LIEF/PE/Binary.hpp b/deps/LIEF/include/LIEF/PE/Binary.hpp
index 4a05754377c..cd7a5c5ba4d 100644
--- a/deps/LIEF/include/LIEF/PE/Binary.hpp
+++ b/deps/LIEF/include/LIEF/PE/Binary.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,7 +24,6 @@
#include "LIEF/PE/DataDirectory.hpp"
#include "LIEF/PE/Builder.hpp"
#include "LIEF/PE/ResourcesManager.hpp"
-#include "LIEF/PE/ExceptionInfo.hpp"
#include "LIEF/PE/signature/Signature.hpp"
#include "LIEF/COFF/Symbol.hpp"
@@ -32,6 +31,7 @@
#include "LIEF/Abstract/Binary.hpp"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
namespace LIEF {
@@ -76,7 +76,8 @@ class LIEF_API Binary : public LIEF::Binary {
using it_data_directories = ref_iterator<data_directories_t&, DataDirectory*>;
/// Iterator that outputs const DataDirectory&
- using it_const_data_directories = const_ref_iterator<const data_directories_t&, const DataDirectory*>;
+ using it_const_data_directories =
+ const_ref_iterator<const data_directories_t&, const DataDirectory*>;
/// Internal container for storing PE's Relocation
using relocations_t = std::vector<std::unique_ptr<Relocation>>;
@@ -85,12 +86,13 @@ class LIEF_API Binary : public LIEF::Binary {
using it_relocations = ref_iterator<relocations_t&, Relocation*>;
/// Iterator that outputs const Relocation&
- using it_const_relocations = const_ref_iterator<const relocations_t&, const Relocation*>;
+ using it_const_relocations =
+ const_ref_iterator<const relocations_t&, const Relocation*>;
/// Internal container for storing PE's Import
using imports_t = std::vector<std::unique_ptr<Import>>;
- /// Iterator that output Import&
+ /// Iterator that outputs Import&
using it_imports = ref_iterator<imports_t&, Import*>;
/// Iterator that outputs const Import&
@@ -99,11 +101,12 @@ class LIEF_API Binary : public LIEF::Binary {
/// Internal container for storing PE's DelayImport
using delay_imports_t = std::vector<std::unique_ptr<DelayImport>>;
- /// Iterator that output DelayImport&
+ /// Iterator that outputs DelayImport&
using it_delay_imports = ref_iterator<delay_imports_t&, DelayImport*>;
/// Iterator that outputs const DelayImport&
- using it_const_delay_imports = const_ref_iterator<const delay_imports_t&, const DelayImport*>;
+ using it_const_delay_imports =
+ const_ref_iterator<const delay_imports_t&, const DelayImport*>;
/// Internal container for storing Debug information
using debug_entries_t = std::vector<std::unique_ptr<Debug>>;
@@ -112,7 +115,8 @@ class LIEF_API Binary : public LIEF::Binary {
using it_debug_entries = ref_iterator<debug_entries_t&, Debug*>;
/// Iterator that outputs const Debug&
- using it_const_debug_entries = const_ref_iterator<const debug_entries_t&, const Debug*>;
+ using it_const_debug_entries =
+ const_ref_iterator<const debug_entries_t&, const Debug*>;
/// Internal container for storing COFF Symbols
using symbols_t = std::vector<std::unique_ptr<COFF::Symbol>>;
@@ -121,7 +125,8 @@ class LIEF_API Binary : public LIEF::Binary {
using it_symbols = ref_iterator<symbols_t&, COFF::Symbol*>;
/// Iterator that outputs const Symbol&
- using it_const_symbols = const_ref_iterator<const symbols_t&, const COFF::Symbol*>;
+ using it_const_symbols =
+ const_ref_iterator<const symbols_t&, const COFF::Symbol*>;
/// Internal container for storing strings
using strings_table_t = std::vector<COFF::String>;
@@ -148,7 +153,8 @@ class LIEF_API Binary : public LIEF::Binary {
using it_exceptions = ref_iterator<exceptions_t&, ExceptionInfo*>;
/// Iterator that outputs const ExceptionInfo&
- using it_const_exceptions = const_ref_iterator<const exceptions_t&, const ExceptionInfo*>;
+ using it_const_exceptions =
+ const_ref_iterator<const exceptions_t&, const ExceptionInfo*>;
Binary();
~Binary() override;
@@ -171,11 +177,15 @@ class LIEF_API Binary : public LIEF::Binary {
return rva_to_offset(rva);
}
- /// Convert the given offset into a virtual address.
+ /// Convert the given offset into an absolute virtual address.
///
/// @param[in] offset The offset to convert.
/// @param[in] slide If not 0, it will replace the default base address (if any)
- result<uint64_t> offset_to_virtual_address(uint64_t offset, uint64_t slide = 0) const override;
+ result<uint64_t> offset_to_virtual_address(uint64_t offset,
+ uint64_t slide = 0) const override;
+
+ /// Convert the given offset into a relative virtual address (RVA).
+ uint64_t offset_to_rva(uint64_t offset) const;
/// Return binary's imagebase. ``0`` if not relevant
///
@@ -184,56 +194,61 @@ class LIEF_API Binary : public LIEF::Binary {
return optional_header().imagebase();
}
- /// Find the section associated that encompasses the given offset.
+ /// Find the section that encompasses the given offset.
///
/// If no section can be found, return a nullptr
- Section* section_from_offset(uint64_t offset) {
- return const_cast<Section*>(static_cast<const Binary*>(this)->section_from_offset(offset));
+ Section* section_from_offset(uint64_t offset) LIEF_LIFETIMEBOUND {
+ return const_cast<Section*>(
+ static_cast<const Binary*>(this)->section_from_offset(offset)
+ );
}
- const Section* section_from_offset(uint64_t offset) const;
+ const Section* section_from_offset(uint64_t offset) const LIEF_LIFETIMEBOUND;
- /// Find the section associated that encompasses the given RVA.
+ /// Find the section that encompasses the given RVA.
///
/// If no section can be found, return a nullptr
- Section* section_from_rva(uint64_t virtual_address) {
- return const_cast<Section*>(static_cast<const Binary*>(this)->section_from_rva(virtual_address));
+ Section* section_from_rva(uint64_t virtual_address) LIEF_LIFETIMEBOUND {
+ return const_cast<Section*>(
+ static_cast<const Binary*>(this)->section_from_rva(virtual_address)
+ );
}
- const Section* section_from_rva(uint64_t virtual_address) const;
+ const Section*
+ section_from_rva(uint64_t virtual_address) const LIEF_LIFETIMEBOUND;
/// Return an iterator over the PE's Section
- it_sections sections() {
+ it_sections sections() LIEF_LIFETIMEBOUND {
return sections_;
}
- it_const_sections sections() const {
+ it_const_sections sections() const LIEF_LIFETIMEBOUND {
return sections_;
}
/// Return a reference to the PE::DosHeader object
- DosHeader& dos_header() {
+ DosHeader& dos_header() LIEF_LIFETIMEBOUND {
return dos_header_;
}
- const DosHeader& dos_header() const {
+ const DosHeader& dos_header() const LIEF_LIFETIMEBOUND {
return dos_header_;
}
/// Return a reference to the PE::Header object
- Header& header() {
+ Header& header() LIEF_LIFETIMEBOUND {
return header_;
}
- const Header& header() const {
+ const Header& header() const LIEF_LIFETIMEBOUND {
return header_;
}
/// Header that follows the header(). It is named optional from the COFF
- /// specfication but it is mandatory in a PE file.
- OptionalHeader& optional_header() {
+ /// specification but it is mandatory in a PE file.
+ OptionalHeader& optional_header() LIEF_LIFETIMEBOUND {
return optional_header_;
}
- const OptionalHeader& optional_header() const {
+ const OptionalHeader& optional_header() const LIEF_LIFETIMEBOUND {
return optional_header_;
}
@@ -246,22 +261,22 @@ class LIEF_API Binary : public LIEF::Binary {
/// Compute the binary's virtual size.
/// It should match OptionalHeader::sizeof_image
- uint64_t virtual_size() const;
+ uint64_t virtual_size() const override;
/// Compute the size of all the headers
uint32_t sizeof_headers() const;
/// Return a reference to the TLS object
- TLS* tls() {
+ TLS* tls() LIEF_LIFETIMEBOUND {
return tls_.get();
}
- const TLS* tls() const {
+ const TLS* tls() const LIEF_LIFETIMEBOUND {
return tls_.get();
}
/// Set a TLS object in the current Binary
- TLS& tls(const TLS& tls);
+ TLS& tls(const TLS& tls) LIEF_LIFETIMEBOUND;
/// Check if the current binary has a TLS object
bool has_tls() const {
@@ -299,7 +314,10 @@ class LIEF_API Binary : public LIEF::Binary {
/// Check if the current binary has exceptions
bool has_exceptions() const {
- return exceptions_dir()->size() != 0;
+ if (const DataDirectory* dir = exceptions_dir()) {
+ return dir->size() > 0;
+ }
+ return false;
}
/// Check if the current binary has relocations
@@ -326,118 +344,128 @@ class LIEF_API Binary : public LIEF::Binary {
bool is_reproducible_build() const;
/// Return an iterator over the Signature object(s) if the binary is signed
- it_const_signatures signatures() const {
+ it_const_signatures signatures() const LIEF_LIFETIMEBOUND {
return signatures_;
}
- it_signatures signatures() {
+ it_signatures signatures() LIEF_LIFETIMEBOUND {
return signatures_;
}
/// Verify the binary against the embedded signature(s) (if any)
- /// First, it checks that the embedded signatures are correct (c.f. Signature::check)
- /// and then, it checks that the authentihash matches ContentInfo::digest
+ /// First, it checks that the embedded signatures are correct (c.f.
+ /// Signature::check) and then, it checks that the authentihash matches
+ /// ContentInfo::digest
///
- /// One can tweak the verification process with the Signature::VERIFICATION_CHECKS flags
+ /// One can tweak the verification process with the
+ /// Signature::VERIFICATION_CHECKS flags
///
/// @see LIEF::PE::Signature::check
- Signature::VERIFICATION_FLAGS verify_signature(
- Signature::VERIFICATION_CHECKS checks = Signature::VERIFICATION_CHECKS::DEFAULT) const;
+ Signature::VERIFICATION_FLAGS
+ verify_signature(Signature::VERIFICATION_CHECKS checks =
+ Signature::VERIFICATION_CHECKS::DEFAULT) const;
/// Verify the binary with the Signature object provided in the first parameter.
/// It can be used to verify a detached signature:
///
- /// \code{.cpp}
+ /// @code{.cpp}
/// result<Signature> detached = LIEF::PE::SignatureParser::parse("sig.pkcs7")
/// if (detached) {
/// binary->verify_signature(detached.value());
/// }
- /// \endcode
- Signature::VERIFICATION_FLAGS verify_signature(const Signature& sig,
- Signature::VERIFICATION_CHECKS checks = Signature::VERIFICATION_CHECKS::DEFAULT) const;
+ /// @endcode
+ Signature::VERIFICATION_FLAGS
+ verify_signature(const Signature& sig,
+ Signature::VERIFICATION_CHECKS checks =
+ Signature::VERIFICATION_CHECKS::DEFAULT) const;
/// Compute the authentihash according to the algorithm provided in the first
/// parameter
std::vector<uint8_t> authentihash(ALGORITHMS algo) const;
/// Return the Export object
- Export* get_export() {
+ Export* get_export() LIEF_LIFETIMEBOUND {
return export_.get();
}
- const Export* get_export() const {
+ const Export* get_export() const LIEF_LIFETIMEBOUND {
return export_.get();
}
- Export& set_export(const Export& export_table);
+ Export& set_export(const Export& export_table) LIEF_LIFETIMEBOUND;
/// Return binary Symbols
- it_symbols symbols() {
+ it_symbols symbols() LIEF_LIFETIMEBOUND {
return symbols_;
}
- it_const_symbols symbols() const {
+ it_const_symbols symbols() const LIEF_LIFETIMEBOUND {
return symbols_;
}
/// Iterator over the strings located in the COFF string table
- it_const_strings_table coff_string_table() const {
+ it_const_strings_table coff_string_table() const LIEF_LIFETIMEBOUND {
return strings_table_;
}
- it_strings_table coff_string_table() {
+ it_strings_table coff_string_table() LIEF_LIFETIMEBOUND {
return strings_table_;
}
/// Try to find the COFF string at the given offset in the COFF string table.
///
- /// \warning This offset must include the first 4 bytes holding the size of
- /// the table. Hence, the first string starts a the offset 4.
- COFF::String* find_coff_string(uint32_t offset) {
+ /// @warning This offset must include the first 4 bytes holding the size of
+ /// the table. Hence, the first string starts at the offset 4.
+ COFF::String* find_coff_string(uint32_t offset) LIEF_LIFETIMEBOUND {
auto it = std::find_if(strings_table_.begin(), strings_table_.end(),
- [offset] (const COFF::String& item) {
- return offset == item.offset();
- }
- );
+ [offset](const COFF::String& item) {
+ return offset == item.offset();
+ });
return it == strings_table_.end() ? nullptr : &*it;
}
- const COFF::String* find_coff_string(uint32_t offset) const {
+ const COFF::String* find_coff_string(uint32_t offset) const LIEF_LIFETIMEBOUND {
return const_cast<Binary*>(this)->find_coff_string(offset);
}
/// Return resources as a tree or a nullptr if there is no resources
- ResourceNode* resources() {
+ ResourceNode* resources() LIEF_LIFETIMEBOUND {
return resources_.get();
}
- const ResourceNode* resources() const {
+ const ResourceNode* resources() const LIEF_LIFETIMEBOUND {
return resources_.get();
}
/// Change or set the current resource tree with the new one provided in
/// parameter.
- ResourceNode* set_resources(const ResourceNode& root);
+ ResourceNode* set_resources(const ResourceNode& root) LIEF_LIFETIMEBOUND;
- ResourceNode* set_resources(std::unique_ptr<ResourceNode> root);
+ ResourceNode*
+ set_resources(std::unique_ptr<ResourceNode> root) LIEF_LIFETIMEBOUND;
- /// Return the ResourcesManager (class to manage resources more easily than the tree one)
- result<ResourcesManager> resources_manager() const;
+ /// Return the ResourcesManager (class to manage resources more easily than the
+ /// tree one)
+ result<ResourcesManager> resources_manager() const LIEF_LIFETIMEBOUND;
/// Return binary's section from its name.
- /// If the secion can't be found, return a nullptr
+ /// If the section can't be found, return a nullptr
///
/// @param[in] name Name of the Section
- Section* get_section(const std::string& name) {
- return const_cast<Section*>(static_cast<const Binary*>(this)->get_section(name));
+ Section* get_section(const std::string& name) LIEF_LIFETIMEBOUND {
+ return const_cast<Section*>(
+ static_cast<const Binary*>(this)->get_section(name)
+ );
}
- const Section* get_section(const std::string& name) const;
+ const Section* get_section(const std::string& name) const LIEF_LIFETIMEBOUND;
/// Return the section associated with import table or a
/// nullptr if the binary does not have an import table
const Section* import_section() const;
Section* import_section() {
- return const_cast<Section*>(static_cast<const Binary*>(this)->import_section());
+ return const_cast<Section*>(
+ static_cast<const Binary*>(this)->import_section()
+ );
}
/// Delete the section with the given name
@@ -453,37 +481,40 @@ class LIEF_API Binary : public LIEF::Binary {
void remove(const Section& section, bool clear = false);
/// Add a section to the binary and return the section added.
- Section* add_section(const Section& section);
+ Section* add_section(const Section& section) LIEF_LIFETIMEBOUND;
/// Return an iterator over the PE's Relocation
- it_relocations relocations() {
+ it_relocations relocations() LIEF_LIFETIMEBOUND {
return relocations_;
}
- it_const_relocations relocations() const {
+ it_const_relocations relocations() const LIEF_LIFETIMEBOUND {
return relocations_;
}
/// Add a new PE Relocation
- Relocation& add_relocation(const Relocation& relocation);
+ Relocation& add_relocation(const Relocation& relocation) LIEF_LIFETIMEBOUND;
/// Remove all the relocations
void remove_all_relocations();
/// Return an iterator over the DataDirectory present in the Binary
- it_data_directories data_directories() {
+ it_data_directories data_directories() LIEF_LIFETIMEBOUND {
return data_directories_;
}
- it_const_data_directories data_directories() const {
+ it_const_data_directories data_directories() const LIEF_LIFETIMEBOUND {
return data_directories_;
}
/// Return the DataDirectory with the given type (or index)
- DataDirectory* data_directory(DataDirectory::TYPES type) {
- return const_cast<DataDirectory*>(static_cast<const Binary*>(this)->data_directory(type));
+ DataDirectory* data_directory(DataDirectory::TYPES type) LIEF_LIFETIMEBOUND {
+ return const_cast<DataDirectory*>(
+ static_cast<const Binary*>(this)->data_directory(type)
+ );
}
- const DataDirectory* data_directory(DataDirectory::TYPES type) const;
+ const DataDirectory*
+ data_directory(DataDirectory::TYPES type) const LIEF_LIFETIMEBOUND;
/// Check if the current binary has the given DataDirectory::TYPES
bool has(DataDirectory::TYPES type) const {
@@ -491,16 +522,16 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return an iterator over the Debug entries
- it_debug_entries debug() {
+ it_debug_entries debug() LIEF_LIFETIMEBOUND {
return debug_;
}
- it_const_debug_entries debug() const {
+ it_const_debug_entries debug() const LIEF_LIFETIMEBOUND {
return debug_;
}
/// Add a new debug entry
- Debug* add_debug_info(const Debug& entry);
+ Debug* add_debug_info(const Debug& entry) LIEF_LIFETIMEBOUND;
/// Remove a specific debug entry
bool remove_debug(const Debug& entry);
@@ -509,24 +540,30 @@ class LIEF_API Binary : public LIEF::Binary {
bool clear_debug();
/// Return the CodeViewPDB object if present
- const CodeViewPDB* codeview_pdb() const;
+ const CodeViewPDB* codeview_pdb() const LIEF_LIFETIMEBOUND;
- /// Retrun the LoadConfiguration object or a nullptr if the binary does not
+ CodeViewPDB* codeview_pdb() LIEF_LIFETIMEBOUND {
+ return const_cast<CodeViewPDB*>(
+ static_cast<const Binary*>(this)->codeview_pdb()
+ );
+ }
+
+ /// Return the LoadConfiguration object or a nullptr if the binary does not
/// use the LoadConfiguration
- const LoadConfiguration* load_configuration() const {
+ const LoadConfiguration* load_configuration() const LIEF_LIFETIMEBOUND {
return loadconfig_.get();
}
- LoadConfiguration* load_configuration() {
+ LoadConfiguration* load_configuration() LIEF_LIFETIMEBOUND {
return loadconfig_.get();
}
/// Return the overlay content
- span<const uint8_t> overlay() const {
+ span<const uint8_t> overlay() const LIEF_LIFETIMEBOUND {
return overlay_;
}
- span<uint8_t> overlay() {
+ span<uint8_t> overlay() LIEF_LIFETIMEBOUND {
return overlay_;
}
@@ -536,11 +573,11 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return the DOS stub content
- span<const uint8_t> dos_stub() const {
+ span<const uint8_t> dos_stub() const LIEF_LIFETIMEBOUND {
return dos_stub_;
}
- span<uint8_t> dos_stub() {
+ span<uint8_t> dos_stub() LIEF_LIFETIMEBOUND {
return dos_stub_;
}
@@ -550,11 +587,11 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return a reference to the RichHeader object
- RichHeader* rich_header() {
+ RichHeader* rich_header() LIEF_LIFETIMEBOUND {
return rich_header_.get();
}
- const RichHeader* rich_header() const {
+ const RichHeader* rich_header() const LIEF_LIFETIMEBOUND {
return rich_header_.get();
}
@@ -567,22 +604,25 @@ class LIEF_API Binary : public LIEF::Binary {
}
/// Return an iterator over the binary imports
- it_imports imports() {
+ it_imports imports() LIEF_LIFETIMEBOUND {
return imports_;
}
- it_const_imports imports() const {
+ it_const_imports imports() const LIEF_LIFETIMEBOUND {
return imports_;
}
/// Return the Import matching the provided name (case sensitive)
///
/// If the import can't be found, it returns a nullptr
- Import* get_import(const std::string& import_name) {
- return const_cast<Import*>(static_cast<const Binary*>(this)->get_import(import_name));
+ Import* get_import(const std::string& import_name) LIEF_LIFETIMEBOUND {
+ return const_cast<Import*>(
+ static_cast<const Binary*>(this)->get_import(import_name)
+ );
}
- const Import* get_import(const std::string& import_name) const;
+ const Import*
+ get_import(const std::string& import_name) const LIEF_LIFETIMEBOUND;
/// `True` if the binary imports the given library name
bool has_import(const std::string& import_name) const {
@@ -605,10 +645,14 @@ class LIEF_API Binary : public LIEF::Binary {
/// Returns the DelayImport matching the given name. If it can't be
/// found, it returns a nullptr
- DelayImport* get_delay_import(const std::string& import_name) {
- return const_cast<DelayImport*>(static_cast<const Binary*>(this)->get_delay_import(import_name));
+ DelayImport*
+ get_delay_import(const std::string& import_name) LIEF_LIFETIMEBOUND {
+ return const_cast<DelayImport*>(
+ static_cast<const Binary*>(this)->get_delay_import(import_name)
+ );
}
- const DelayImport* get_delay_import(const std::string& import_name) const;
+ const DelayImport*
+ get_delay_import(const std::string& import_name) const LIEF_LIFETIMEBOUND;
/// `True` if the binary delay-imports the given library name
@@ -616,15 +660,24 @@ class LIEF_API Binary : public LIEF::Binary {
return get_delay_import(import_name) != nullptr;
}
- /// Add an imported library (i.e. `DLL`) to the binary
- Import& add_import(const std::string& name) {
- imports_.push_back(std::unique_ptr<Import>(new Import(name)));
- return *imports_.back();
+ /// Add an imported library (i.e. `DLL`) to the binary.
+ ///
+ /// The second parameter `pos` defines where to insert the import.
+ /// If negative (default), the import is appended to the end of the list.
+ Import& add_import(const std::string& name,
+ int32_t pos = -1) LIEF_LIFETIMEBOUND {
+ if (pos < 0) {
+ imports_.push_back(std::unique_ptr<Import>(new Import(name)));
+ return *imports_.back();
+ }
+ assert(pos >= 0);
+ return **imports_.insert(imports_.begin() + pos,
+ std::unique_ptr<Import>(new Import(name)));
}
/// Remove the imported library with the given `name`
///
- /// Return true if the deletion succeed, false otherwise.
+ /// Return true if the deletion succeeded, false otherwise.
bool remove_import(const std::string& name);
/// Remove all libraries in the binary
@@ -669,12 +722,14 @@ class LIEF_API Binary : public LIEF::Binary {
/// @param[in] address Address to patch
/// @param[in] patch_value Patch to apply
/// @param[in] size Size of the value in **bytes** (1, 2, ... 8)
- /// @param[in] addr_type Type of the Virtual address: VA or RVA. Default: Auto
- void patch_address(uint64_t address, uint64_t patch_value, size_t size = sizeof(uint64_t),
+ /// @param[in] addr_type Type of the Virtual address: VA or RVA. Default:
+ /// Auto
+ void patch_address(uint64_t address, uint64_t patch_value,
+ size_t size = sizeof(uint64_t),
VA_TYPES addr_type = VA_TYPES::AUTO) override;
- /// Fill the content at the provided with a fixed value
+ /// Fill the content at the provided address with a fixed value
void fill_address(uint64_t address, size_t size, uint8_t value = 0,
VA_TYPES addr_type = VA_TYPES::AUTO);
@@ -682,12 +737,15 @@ class LIEF_API Binary : public LIEF::Binary {
///
/// @param[in] virtual_address Virtual address of the data to retrieve
/// @param[in] size Size in bytes of the data to retrieve
- /// @param[in] addr_type Type of the Virtual address: VA or RVA. Default: Auto
+ /// @param[in] addr_type Type of the Virtual address: VA or RVA.
+ /// Default: Auto
span<const uint8_t> get_content_from_virtual_address(
uint64_t virtual_address, uint64_t size,
- Binary::VA_TYPES addr_type = Binary::VA_TYPES::AUTO) const override;
+ Binary::VA_TYPES addr_type = Binary::VA_TYPES::AUTO
+ ) const LIEF_LIFETIMEBOUND override;
- /// Return the binary's entrypoint (It is the same value as OptionalHeader::addressof_entrypoint
+ /// Return the binary's entrypoint (it is the same value as
+ /// OptionalHeader::addressof_entrypoint)
uint64_t entrypoint() const override {
return optional_header_.imagebase() + optional_header_.addressof_entrypoint();
}
@@ -817,25 +875,25 @@ class LIEF_API Binary : public LIEF::Binary {
/// Iterator over the exception (`_RUNTIME_FUNCTION`) functions
///
- /// \warning This function requires that the option
+ /// @warning This function requires that the option
/// LIEF::PE::ParserConfig::parse_exceptions was turned on (default is false)
/// when parsing the binary
- it_exceptions exceptions() {
+ it_exceptions exceptions() LIEF_LIFETIMEBOUND {
return exceptions_;
}
- it_const_exceptions exceptions() const {
+ it_const_exceptions exceptions() const LIEF_LIFETIMEBOUND {
return exceptions_;
}
/// Try to find the exception info at the given RVA
///
- /// \warning This function requires that the option
+ /// @warning This function requires that the option
/// LIEF::PE::ParserConfig::parse_exceptions was turned on (default is false)
/// when parsing the binary
- ExceptionInfo* find_exception_at(uint32_t rva);
+ ExceptionInfo* find_exception_at(uint32_t rva) LIEF_LIFETIMEBOUND;
- const ExceptionInfo* find_exception_at(uint32_t rva) const {
+ const ExceptionInfo* find_exception_at(uint32_t rva) const LIEF_LIFETIMEBOUND {
return const_cast<Binary*>(this)->find_exception_at(rva);
}
@@ -853,7 +911,7 @@ class LIEF_API Binary : public LIEF::Binary {
/// This can be used to get the alternative PE binary, targeting a different
/// architectures.
///
- /// \warning This function requires that the option
+ /// @warning This function requires that the option
/// LIEF::PE::ParserConfig::parse_arm64x_binary was turned on (default is false)
/// when parsing the binary
const Binary* nested_pe_binary() const {
@@ -874,7 +932,7 @@ class LIEF_API Binary : public LIEF::Binary {
std::ostream& print(std::ostream& os) const override;
- /// \private
+ /// @private
///
/// Should only be used for the Rust bindings
LIEF_LOCAL std::unique_ptr<Binary> move_nested_pe_binary() {
diff --git a/deps/LIEF/include/LIEF/PE/Builder.hpp b/deps/LIEF/include/LIEF/PE/Builder.hpp
index f206ef68664..8efc7be78f1 100644
--- a/deps/LIEF/include/LIEF/PE/Builder.hpp
+++ b/deps/LIEF/include/LIEF/PE/Builder.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,7 +16,6 @@
#ifndef LIEF_PE_BUILDER_H
#define LIEF_PE_BUILDER_H
-#include <cstring>
#include <string>
#include <vector>
#include <functional>
@@ -65,7 +64,7 @@ class LIEF_API Builder {
bool exports = false;
/// Whether the builder should regenerate the resources tree
- bool resources = true;
+ bool resources = true;
/// Whether the builder should regenerate relocations
bool relocations = true;
@@ -106,18 +105,17 @@ class LIEF_API Builder {
std::string debug_section = ".debug";
using resolved_iat_cbk_t =
- std::function<void(Binary*, const Import*, const ImportEntry*, uint32_t)>;
+ std::function<void(Binary*, const Import*, const ImportEntry*, uint32_t)>;
resolved_iat_cbk_t resolved_iat_cbk = nullptr;
- /// \private
+ /// @private
bool force_relocating = false;
};
Builder() = delete;
- Builder(Binary& binary, const config_t& config) :
+ Builder(Binary& binary, config_t config) :
binary_(&binary),
- config_(config)
- {}
+ config_(std::move(config)) {}
~Builder();
@@ -187,14 +185,15 @@ class LIEF_API Builder {
static ok_error_t compute_resources_size(const ResourceNode& node,
rsrc_sizing_info_t& info);
- static ok_error_t construct_resource(
- vector_iostream& ios, ResourceNode& node, rsrc_build_context_t& ctx);
+ static ok_error_t construct_resource(vector_iostream& ios, ResourceNode& node,
+ rsrc_build_context_t& ctx);
- static ok_error_t construct_resource(
- vector_iostream& ios, ResourceDirectory& dir, rsrc_build_context_t& ctx);
+ static ok_error_t construct_resource(vector_iostream& ios,
+ ResourceDirectory& dir,
+ rsrc_build_context_t& ctx);
- static ok_error_t construct_resource(
- vector_iostream& ios, ResourceData& dir, rsrc_build_context_t& ctx);
+ static ok_error_t construct_resource(vector_iostream& ios, ResourceData& dir,
+ rsrc_build_context_t& ctx);
mutable vector_iostream ios_;
Binary* binary_ = nullptr;
diff --git a/deps/LIEF/include/LIEF/PE/CodeIntegrity.hpp b/deps/LIEF/include/LIEF/PE/CodeIntegrity.hpp
index c963ae6868b..5181b6d90b8 100644
--- a/deps/LIEF/include/LIEF/PE/CodeIntegrity.hpp
+++ b/deps/LIEF/include/LIEF/PE/CodeIntegrity.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
#include <ostream>
#include <cstdint>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/errors.hpp"
#include "LIEF/Object.hpp"
#include "LIEF/visibility.h"
@@ -60,29 +61,30 @@ class LIEF_API CodeIntegrity : public Object {
return reserved_;
}
- CodeIntegrity& flags(uint16_t flags) {
+ CodeIntegrity& flags(uint16_t flags) LIEF_LIFETIMEBOUND {
flags_ = flags;
return *this;
}
- CodeIntegrity& catalog(uint16_t catalog) {
+ CodeIntegrity& catalog(uint16_t catalog) LIEF_LIFETIMEBOUND {
catalog_ = catalog;
return *this;
}
- CodeIntegrity& catalog_offset(uint32_t catalog_offset) {
+ CodeIntegrity& catalog_offset(uint32_t catalog_offset) LIEF_LIFETIMEBOUND {
catalog_offset_ = catalog_offset;
return *this;
}
- CodeIntegrity& reserved(uint32_t reserved) {
+ CodeIntegrity& reserved(uint32_t reserved) LIEF_LIFETIMEBOUND {
reserved_ = reserved;
return *this;
}
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const CodeIntegrity& entry);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const CodeIntegrity& entry);
private:
uint16_t flags_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/CodePage.hpp b/deps/LIEF/include/LIEF/PE/CodePage.hpp
index e35e755bc22..2f63d1e7cde 100644
--- a/deps/LIEF/include/LIEF/PE/CodePage.hpp
+++ b/deps/LIEF/include/LIEF/PE/CodePage.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,6 +21,8 @@
namespace LIEF {
namespace PE {
+// clang-format off
+
/// Code page from https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers
enum class CODE_PAGES : uint32_t {
IBM037 = 37, /**< IBM EBCDIC US-Canada */
diff --git a/deps/LIEF/include/LIEF/PE/DataDirectory.hpp b/deps/LIEF/include/LIEF/PE/DataDirectory.hpp
index 3ee16482b57..45e1e82e97d 100644
--- a/deps/LIEF/include/LIEF/PE/DataDirectory.hpp
+++ b/deps/LIEF/include/LIEF/PE/DataDirectory.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -48,7 +48,7 @@ class LIEF_API DataDirectory : public Object {
public:
static constexpr size_t DEFAULT_NB = 16;
- enum class TYPES: uint32_t {
+ enum class TYPES : uint32_t {
EXPORT_TABLE = 0,
IMPORT_TABLE,
RESOURCE_TABLE,
@@ -70,8 +70,7 @@ class LIEF_API DataDirectory : public Object {
};
DataDirectory() = default;
DataDirectory(TYPES type) :
- type_{type}
- {}
+ type_{type} {}
DataDirectory(const details::pe_data_directory& header, TYPES type);
@@ -101,18 +100,18 @@ class LIEF_API DataDirectory : public Object {
}
/// Raw content (bytes) referenced by this data directory
- span<const uint8_t> content() const {
+ span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
return const_cast<DataDirectory*>(this)->content();
}
- span<uint8_t> content();
+ span<uint8_t> content() LIEF_LIFETIMEBOUND;
/// Section associated with the DataDirectory
- Section* section() {
+ Section* section() LIEF_LIFETIMEBOUND {
return section_;
}
- const Section* section() const {
+ const Section* section() const LIEF_LIFETIMEBOUND {
return section_;
}
@@ -131,12 +130,12 @@ class LIEF_API DataDirectory : public Object {
void accept(Visitor& visitor) const override;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const DataDirectory& entry);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const DataDirectory& entry);
- /// \private
+ /// @private
LIEF_LOCAL
- std::unique_ptr<SpanStream> stream(bool sized = true) const;
+ std::unique_ptr<SpanStream> stream(bool sized = true) const;
private:
uint32_t rva_ = 0;
@@ -150,4 +149,4 @@ LIEF_API const char* to_string(DataDirectory::TYPES e);
}
}
-#endif /* LIEF_PE_DATADIRECTORY_H */
+#endif
diff --git a/deps/LIEF/include/LIEF/PE/Debug.hpp b/deps/LIEF/include/LIEF/PE/Debug.hpp
index 2a6e59ba8d1..46e53f75a06 100644
--- a/deps/LIEF/include/LIEF/PE/Debug.hpp
+++ b/deps/LIEF/include/LIEF/PE/Debug.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/PE/DelayImport.hpp b/deps/LIEF/include/LIEF/PE/DelayImport.hpp
index f9dd19c0044..9e3ea6281d7 100644
--- a/deps/LIEF/include/LIEF/PE/DelayImport.hpp
+++ b/deps/LIEF/include/LIEF/PE/DelayImport.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -40,15 +40,15 @@ class LIEF_API DelayImport : public Object {
friend class Builder;
public:
- using entries_t = std::vector<std::unique_ptr<DelayImportEntry>>;
- using it_entries = ref_iterator<entries_t&, DelayImportEntry*>;
- using it_const_entries = const_ref_iterator<const entries_t&, const DelayImportEntry*>;
+ using entries_t = std::vector<std::unique_ptr<DelayImportEntry>>;
+ using it_entries = ref_iterator<entries_t&, DelayImportEntry*>;
+ using it_const_entries =
+ const_ref_iterator<const entries_t&, const DelayImportEntry*>;
DelayImport() = default;
DelayImport(const details::delay_imports& import, PE_TYPE type);
DelayImport(std::string name) :
- name_(std::move(name))
- {}
+ name_(std::move(name)) {}
~DelayImport() override = default;
@@ -73,7 +73,7 @@ class LIEF_API DelayImport : public Object {
}
/// Return the library's name (e.g. `kernel32.dll`)
- const std::string& name() const {
+ const std::string& name() const LIEF_LIFETIMEBOUND {
return name_;
}
void name(std::string name) {
@@ -121,7 +121,7 @@ class LIEF_API DelayImport : public Object {
///
/// According to the PE specifications, this table is an
/// exact copy of the delay import address table that can be
- /// used to to restore the original IAT the case of unloading.
+ /// used to restore the original IAT in the case of unloading.
uint32_t uiat() const {
return unload_iat_;
}
@@ -138,18 +138,19 @@ class LIEF_API DelayImport : public Object {
}
/// Iterator over the DelayImport's entries (DelayImportEntry)
- it_entries entries() {
+ it_entries entries() LIEF_LIFETIMEBOUND {
return entries_;
}
/// Iterator over the DelayImport's entries (DelayImportEntry)
- it_const_entries entries() const {
+ it_const_entries entries() const LIEF_LIFETIMEBOUND {
return entries_;
}
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const DelayImport& entry);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const DelayImport& entry);
private:
uint32_t attribute_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/DelayImportEntry.hpp b/deps/LIEF/include/LIEF/PE/DelayImportEntry.hpp
index f082ea0518e..a598c3eface 100644
--- a/deps/LIEF/include/LIEF/PE/DelayImportEntry.hpp
+++ b/deps/LIEF/include/LIEF/PE/DelayImportEntry.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,13 +28,14 @@ namespace PE {
class Parser;
class Builder;
-/// Class that represents an entry (i.e. an import) in the delay import table (DelayImport).
+/// Class that represents an entry (i.e. an import) in the delay import table
+/// (DelayImport).
///
-/// It extends the LIEF::Symbol generic class that exposes the LIEF::Symbol::name and
-/// LIEF::Symbol::value API.
+/// It extends the LIEF::Symbol generic class that exposes the LIEF::Symbol::name
+/// and LIEF::Symbol::value API.
///
-/// The meaning of LIEF::Symbol::value for this PE object is the address (as an RVA) in the IAT
-/// where the resolution should take place.
+/// The meaning of LIEF::Symbol::value for this PE object is the address (as an
+/// RVA) in the IAT where the resolution should take place.
class LIEF_API DelayImportEntry : public LIEF::Symbol {
friend class Parser;
friend class Builder;
@@ -43,8 +44,7 @@ class LIEF_API DelayImportEntry : public LIEF::Symbol {
DelayImportEntry() = default;
DelayImportEntry(uint64_t data, PE_TYPE type) :
data_(data),
- type_(type)
- {}
+ type_(type) {}
DelayImportEntry(const DelayImportEntry&) = default;
DelayImportEntry& operator=(const DelayImportEntry&) = default;
@@ -94,17 +94,18 @@ class LIEF_API DelayImportEntry : public LIEF::Symbol {
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const DelayImportEntry& entry);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const DelayImportEntry& entry);
private:
uint64_t data_ = 0;
uint16_t hint_ = 0;
uint64_t iat_offset_ = 0;
uint64_t iat_value_ = 0;
- PE_TYPE type_ = PE_TYPE::PE32_PLUS;
+ PE_TYPE type_ = PE_TYPE::PE32_PLUS;
};
}
}
-#endif /* LIEF_PE_DELAY_IMPORT_ENTRY_H */
+#endif
diff --git a/deps/LIEF/include/LIEF/PE/DosHeader.hpp b/deps/LIEF/include/LIEF/PE/DosHeader.hpp
index 377de46d687..d8c337cef8f 100644
--- a/deps/LIEF/include/LIEF/PE/DosHeader.hpp
+++ b/deps/LIEF/include/LIEF/PE/DosHeader.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,12 +32,12 @@ struct pe_dos_header;
}
/// Class which represents the DosHeader, the **first**
-/// structure presents at the beginning of a PE file.
+/// structure present at the beginning of a PE file.
///
/// Most of the attributes of this structures are no longer relevant.
class LIEF_API DosHeader : public Object {
public:
- using reserved_t = std::array<uint16_t, 4>;
+ using reserved_t = std::array<uint16_t, 4>;
using reserved2_t = std::array<uint16_t, 10>;
static constexpr uint16_t MAGIC = 0x5a4d; // MZ
@@ -207,36 +207,36 @@ class LIEF_API DosHeader : public Object {
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const DosHeader& entry);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const DosHeader& entry);
static DosHeader create(PE_TYPE type);
- /// \private
+ /// @private
LIEF_LOCAL DosHeader() = default;
private:
- uint16_t magic_ = 0;
- uint16_t used_bytes_in_last_page_ = 0;
- uint16_t file_sz_in_pages_ = 0;
- uint16_t nb_relocations_ = 0;
- uint16_t header_sz_in_paragraphs_ = 0;
- uint16_t min_extra_paragraphs_ = 0;
- uint16_t max_extra_paragraphs_ = 0;
- uint16_t init_relative_ss_ = 0;
- uint16_t init_sp_ = 0;
- uint16_t checksum_ = 0;
- uint16_t init_ip_ = 0;
- uint16_t init_rel_cs_ = 0;
- uint16_t addr_reloc_table_ = 0;
- uint16_t overlay_number_ = 0;
- reserved_t reserved_ = {0};
- uint16_t oem_id_ = 0;
- uint16_t oem_info_ = 0;
+ uint16_t magic_ = 0;
+ uint16_t used_bytes_in_last_page_ = 0;
+ uint16_t file_sz_in_pages_ = 0;
+ uint16_t nb_relocations_ = 0;
+ uint16_t header_sz_in_paragraphs_ = 0;
+ uint16_t min_extra_paragraphs_ = 0;
+ uint16_t max_extra_paragraphs_ = 0;
+ uint16_t init_relative_ss_ = 0;
+ uint16_t init_sp_ = 0;
+ uint16_t checksum_ = 0;
+ uint16_t init_ip_ = 0;
+ uint16_t init_rel_cs_ = 0;
+ uint16_t addr_reloc_table_ = 0;
+ uint16_t overlay_number_ = 0;
+ reserved_t reserved_ = {0};
+ uint16_t oem_id_ = 0;
+ uint16_t oem_info_ = 0;
reserved2_t reserved2_ = {0};
- uint32_t addr_new_exe_header_ = 0;
+ uint32_t addr_new_exe_header_ = 0;
};
}
}
#endif
-
diff --git a/deps/LIEF/include/LIEF/PE/EnumToString.hpp b/deps/LIEF/include/LIEF/PE/EnumToString.hpp
index 017f60a6d80..f4a84a23bae 100644
--- a/deps/LIEF/include/LIEF/PE/EnumToString.hpp
+++ b/deps/LIEF/include/LIEF/PE/EnumToString.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,7 +17,6 @@
#define LIEF_PE_ENUM_TO_STRING_H
#include <cstdint>
-#include <cstddef>
#include "LIEF/visibility.h"
@@ -33,5 +32,3 @@ LIEF_API const char* to_string(ALGORITHMS e);
} // namespace PE
} // namespace LIEF
#endif
-
-
diff --git a/deps/LIEF/include/LIEF/PE/ExceptionInfo.hpp b/deps/LIEF/include/LIEF/PE/ExceptionInfo.hpp
index 5dce234bd24..b4f7bb447ea 100644
--- a/deps/LIEF/include/LIEF/PE/ExceptionInfo.hpp
+++ b/deps/LIEF/include/LIEF/PE/ExceptionInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -49,17 +49,16 @@ class LIEF_API ExceptionInfo {
/// Arch discriminator for the subclasses
enum class ARCH {
UNKNOWN = 0,
- ARM64, X86_64
+ ARM64,
+ X86_64,
};
ExceptionInfo(ARCH arch, uint64_t rva) :
arch_(arch),
- rva_(rva)
- {}
+ rva_(rva) {}
ExceptionInfo(ARCH arch) :
- ExceptionInfo(arch, /*rva=*/0)
- {}
+ ExceptionInfo(arch, /*rva=*/0) {}
/// Target architecture of this exception
ARCH arch() const {
@@ -97,14 +96,13 @@ class LIEF_API ExceptionInfo {
return const_cast<ExceptionInfo*>(this)->as<T>();
}
- /// \private
+ /// @private
void offset(uint64_t value) {
offset_ = value;
}
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const ExceptionInfo& info)
- {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const ExceptionInfo& info) {
os << info.to_string();
return os;
}
diff --git a/deps/LIEF/include/LIEF/PE/Export.hpp b/deps/LIEF/include/LIEF/PE/Export.hpp
index 59d542716ca..4fc2978e779 100644
--- a/deps/LIEF/include/LIEF/PE/Export.hpp
+++ b/deps/LIEF/include/LIEF/PE/Export.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -41,23 +41,22 @@ class LIEF_API Export : public Object {
friend class Parser;
public:
- using entries_t = std::vector<std::unique_ptr<ExportEntry>>;
- using it_entries = ref_iterator<entries_t&, ExportEntry*>;
- using it_const_entries = const_ref_iterator<const entries_t&, const ExportEntry*>;
+ using entries_t = std::vector<std::unique_ptr<ExportEntry>>;
+ using it_entries = ref_iterator<entries_t&, ExportEntry*>;
+ using it_const_entries =
+ const_ref_iterator<const entries_t&, const ExportEntry*>;
Export() = default;
Export(std::string name, const std::vector<ExportEntry>& entries) :
- name_(std::move(name))
- {
+ name_(std::move(name)) {
for (const ExportEntry& E : entries) {
add_entry(E);
}
}
Export(std::string name) :
- Export(std::move(name), {})
- {}
+ Export(std::move(name), {}) {}
Export(const details::pe_export_directory_table& header);
@@ -101,11 +100,11 @@ class LIEF_API Export : public Object {
}
/// Iterator over the ExportEntry
- it_entries entries() {
+ it_entries entries() LIEF_LIFETIMEBOUND {
return entries_;
}
- it_const_entries entries() const {
+ it_const_entries entries() const LIEF_LIFETIMEBOUND {
return entries_;
}
@@ -164,30 +163,36 @@ class LIEF_API Export : public Object {
}
/// Find the export entry with the given name
- const ExportEntry* find_entry(const std::string& name) const;
+ const ExportEntry* find_entry(const std::string& name) const LIEF_LIFETIMEBOUND;
- ExportEntry* find_entry(const std::string& name) {
- return const_cast<ExportEntry*>(static_cast<const Export*>(this)->find_entry(name));
+ ExportEntry* find_entry(const std::string& name) LIEF_LIFETIMEBOUND {
+ return const_cast<ExportEntry*>(
+ static_cast<const Export*>(this)->find_entry(name)
+ );
}
/// Find the export entry with the given ordinal number
- const ExportEntry* find_entry(uint32_t ordinal) const;
+ const ExportEntry* find_entry(uint32_t ordinal) const LIEF_LIFETIMEBOUND;
- ExportEntry* find_entry(uint32_t ordinal) {
- return const_cast<ExportEntry*>(static_cast<const Export*>(this)->find_entry(ordinal));
+ ExportEntry* find_entry(uint32_t ordinal) LIEF_LIFETIMEBOUND {
+ return const_cast<ExportEntry*>(
+ static_cast<const Export*>(this)->find_entry(ordinal)
+ );
}
/// Find the export entry at the provided RVA
- const ExportEntry* find_entry_at(uint32_t rva) const;
+ const ExportEntry* find_entry_at(uint32_t rva) const LIEF_LIFETIMEBOUND;
- ExportEntry* find_entry_at(uint32_t rva) {
- return const_cast<ExportEntry*>(static_cast<const Export*>(this)->find_entry_at(rva));
+ ExportEntry* find_entry_at(uint32_t rva) LIEF_LIFETIMEBOUND {
+ return const_cast<ExportEntry*>(
+ static_cast<const Export*>(this)->find_entry_at(rva)
+ );
}
/// Add the given export and return the newly created and added export
- ExportEntry& add_entry(const ExportEntry& exp);
+ ExportEntry& add_entry(const ExportEntry& exp) LIEF_LIFETIMEBOUND;
- ExportEntry& add_entry(std::string name, uint32_t rva) {
+ ExportEntry& add_entry(std::string name, uint32_t rva) LIEF_LIFETIMEBOUND {
return add_entry(ExportEntry(std::move(name), rva));
}
@@ -234,4 +239,4 @@ class LIEF_API Export : public Object {
}
}
-#endif /* PE_EXPORT_H */
+#endif
diff --git a/deps/LIEF/include/LIEF/PE/ExportEntry.hpp b/deps/LIEF/include/LIEF/PE/ExportEntry.hpp
index b6d110af24f..2f717c58608 100644
--- a/deps/LIEF/include/LIEF/PE/ExportEntry.hpp
+++ b/deps/LIEF/include/LIEF/PE/ExportEntry.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -48,7 +48,8 @@ class LIEF_API ExportEntry : public LIEF::Symbol {
return library + '.' + function;
}
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const forward_information_t& info) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const forward_information_t& info) {
os << info.key();
return os;
}
@@ -56,18 +57,16 @@ class LIEF_API ExportEntry : public LIEF::Symbol {
public:
ExportEntry() = default;
- ExportEntry(uint32_t address, bool is_extern,
- uint16_t ordinal, uint32_t function_rva) :
+ ExportEntry(uint32_t address, bool is_extern, uint16_t ordinal,
+ uint32_t function_rva) :
function_rva_{function_rva},
ordinal_{ordinal},
address_{address},
- is_extern_{is_extern}
- {}
+ is_extern_{is_extern} {}
ExportEntry(std::string name, uint32_t rva) :
LIEF::Symbol(std::move(name)),
- address_(rva)
- {}
+ address_(rva) {}
ExportEntry(const ExportEntry&) = default;
ExportEntry& operator=(const ExportEntry&) = default;
@@ -91,7 +90,7 @@ class LIEF_API ExportEntry : public LIEF::Symbol {
/// Address of the current exported function in the DLL.
///
- /// \warning If this entry is **external** to the DLL then it returns 0
+ /// @warning If this entry is **external** to the DLL then it returns 0
/// and the external address is returned by function_rva()
uint32_t address() const {
return address_;
@@ -133,15 +132,16 @@ class LIEF_API ExportEntry : public LIEF::Symbol {
address(static_cast<uint32_t>(value));
}
- void set_forward_info(std::string lib, std::string function) {
- forward_info_.library = std::move(lib);
+ void set_forward_info(std::string lib, std::string function) {
+ forward_info_.library = std::move(lib);
forward_info_.function = std::move(function);
}
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const ExportEntry& exportEntry);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const ExportEntry& exportEntry);
private:
uint32_t function_rva_ = 0;
@@ -150,10 +150,9 @@ class LIEF_API ExportEntry : public LIEF::Symbol {
bool is_extern_ = false;
forward_information_t forward_info_;
-
};
}
}
-#endif /* PE_EXPORTENTRY_H */
+#endif
diff --git a/deps/LIEF/include/LIEF/PE/Factory.hpp b/deps/LIEF/include/LIEF/PE/Factory.hpp
index 819d2815ee7..7df1c8e9928 100644
--- a/deps/LIEF/include/LIEF/PE/Factory.hpp
+++ b/deps/LIEF/include/LIEF/PE/Factory.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -34,7 +34,7 @@ class LIEF_API Factory {
Factory(Factory&&);
Factory& operator=(Factory&&);
- /// Initiate the factory to construct a PE which the given type
+ /// Initiate the factory to construct a PE with the given type
static std::unique_ptr<Factory> create(PE_TYPE type);
Factory& add_section(const Section& section) {
@@ -76,8 +76,7 @@ class LIEF_API Factory {
protected:
Factory() :
- pe_(std::unique_ptr<Binary>(new Binary{}))
- {}
+ pe_(std::unique_ptr<Binary>(new Binary{})) {}
std::unique_ptr<Binary> process();
ok_error_t check_overlapping() const;
@@ -93,4 +92,3 @@ class LIEF_API Factory {
}
}
#endif
-
diff --git a/deps/LIEF/include/LIEF/PE/Header.hpp b/deps/LIEF/include/LIEF/PE/Header.hpp
index e598a5e9eba..42f87b9913d 100644
--- a/deps/LIEF/include/LIEF/PE/Header.hpp
+++ b/deps/LIEF/include/LIEF/PE/Header.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -37,6 +37,7 @@ class LIEF_API Header : public Object {
public:
using signature_t = std::array<uint8_t, /* PE Magic */ 4>;
+ // clang-format off
enum class MACHINE_TYPES {
UNKNOWN = 0x0,
ALPHA = 0x184 , /**< Alpha AXP, 32-bit address space */
@@ -72,40 +73,35 @@ class LIEF_API Header : public Object {
ARM64X = 0xa64e,
CHPE_X86 = 0x3a64,
};
+ // clang-format on
static bool is_known_machine(uint16_t machine);
static bool is_arm(MACHINE_TYPES ty) {
switch (ty) {
- default:
- return false;
+ default: return false;
case MACHINE_TYPES::ARM:
case MACHINE_TYPES::THUMB:
- case MACHINE_TYPES::ARMNT:
- return true;
+ case MACHINE_TYPES::ARMNT: return true;
}
return false;
}
static bool is_riscv(MACHINE_TYPES ty) {
switch (ty) {
- default:
- return false;
+ default: return false;
case MACHINE_TYPES::RISCV32:
case MACHINE_TYPES::RISCV64:
- case MACHINE_TYPES::RISCV128:
- return true;
+ case MACHINE_TYPES::RISCV128: return true;
}
return false;
}
static bool is_loonarch(MACHINE_TYPES ty) {
switch (ty) {
- default:
- return false;
+ default: return false;
case MACHINE_TYPES::LOONGARCH32:
- case MACHINE_TYPES::LOONGARCH64:
- return true;
+ case MACHINE_TYPES::LOONGARCH64: return true;
}
return false;
}
@@ -129,47 +125,75 @@ class LIEF_API Header : public Object {
static bool is_mips(MACHINE_TYPES ty) {
switch (ty) {
- default:
- return false;
+ default: return false;
case MACHINE_TYPES::MIPS16:
case MACHINE_TYPES::MIPSFPU:
case MACHINE_TYPES::MIPSFPU16:
case MACHINE_TYPES::R4000:
- case MACHINE_TYPES::WCEMIPSV2:
- return true;
+ case MACHINE_TYPES::WCEMIPSV2: return true;
}
return false;
}
static bool is_ppc(MACHINE_TYPES ty) {
switch (ty) {
- default:
- return false;
+ default: return false;
case MACHINE_TYPES::POWERPC:
case MACHINE_TYPES::POWERPCFP:
- case MACHINE_TYPES::POWERPCBE:
- return true;
+ case MACHINE_TYPES::POWERPCBE: return true;
}
return false;
}
enum class CHARACTERISTICS {
- NONE = 0x0000,
- RELOCS_STRIPPED = 0x0001, /**< The file does not contain base relocations and must be loaded at its preferred base. If this cannot be done, the loader will error.*/
- EXECUTABLE_IMAGE = 0x0002, /**< File is executable (i.e. no unresolved externel references). */
- LINE_NUMS_STRIPPED = 0x0004, /**< COFF line numbers have been stripped. This is deprecated and should be 0 */
- LOCAL_SYMS_STRIPPED = 0x0008, /**< COFF symbol table entries for local symbols have been removed. This is deprecated and should be 0.*/
- AGGRESSIVE_WS_TRIM = 0x0010, /**< Aggressively trim working set. This is deprecated and must be 0. */
- LARGE_ADDRESS_AWARE = 0x0020, /**< Image can handle > 2GiB addresses. */
- BYTES_REVERSED_LO = 0x0080, /**< Little endian: the LSB precedes the MSB in memory. This is deprecated and should be 0.*/
- NEED_32BIT_MACHINE = 0x0100, /**< Machine is based on a 32bit word architecture. */
- DEBUG_STRIPPED = 0x0200, /**< Debugging info has been removed. */
- REMOVABLE_RUN_FROM_SWAP = 0x0400, /**< If the image is on removable media, fully load it and copy it to swap. */
- NET_RUN_FROM_SWAP = 0x0800, /**< If the image is on network media, fully load it and copy it to swap. */
- SYSTEM = 0x1000, /**< The image file is a system file, not a user program.*/
- DLL = 0x2000, /**< The image file is a DLL. */
- UP_SYSTEM_ONLY = 0x4000, /**< This file should only be run on a uniprocessor machine. */
- BYTES_REVERSED_HI = 0x8000 /**< Big endian: the MSB precedes the LSB in memory. This is deprecated */
+ NONE = 0x0000,
+ /// The file does not contain base relocations and must be loaded at its
+ /// preferred base. If this cannot be done, the loader will error.
+ RELOCS_STRIPPED = 0x0001,
+
+ /// File is executable (i.e. no unresolved external references).
+ EXECUTABLE_IMAGE = 0x0002,
+
+ /// COFF line numbers have been stripped. This is deprecated and should be 0
+ LINE_NUMS_STRIPPED = 0x0004,
+
+ /// COFF symbol table entries for local symbols have been removed. This is
+ /// deprecated and should be 0.
+ LOCAL_SYMS_STRIPPED = 0x0008,
+
+ /// Aggressively trim working set. This is deprecated and must be 0.
+ AGGRESSIVE_WS_TRIM = 0x0010,
+
+ /// Image can handle > 2GiB addresses.
+ LARGE_ADDRESS_AWARE = 0x0020,
+
+ /// Little endian: the LSB precedes the MSB in memory. This is deprecated and
+ /// should be 0.
+ BYTES_REVERSED_LO = 0x0080,
+
+ /// Machine is based on a 32bit word architecture.
+ NEED_32BIT_MACHINE = 0x0100,
+
+ /// Debugging info has been removed.
+ DEBUG_STRIPPED = 0x0200,
+
+ /// If the image is on removable media, fully load it and copy it to swap.
+ REMOVABLE_RUN_FROM_SWAP = 0x0400,
+
+ /// If the image is on network media, fully load it and copy it to swap.
+ NET_RUN_FROM_SWAP = 0x0800,
+
+ /// The image file is a system file, not a user program.
+ SYSTEM = 0x1000,
+
+ /// The image file is a DLL.
+ DLL = 0x2000,
+
+ /// This file should only be run on a uniprocessor machine.
+ UP_SYSTEM_ONLY = 0x4000,
+
+ /// Big endian: the MSB precedes the LSB in memory. This is deprecated
+ BYTES_REVERSED_HI = 0x8000,
};
static Header create(PE_TYPE type);
@@ -202,22 +226,26 @@ class LIEF_API Header : public Object {
/// The offset of the **COFF** symbol table.
///
- /// This value should be zero for an image because COFF debugging information is deprecated.
+ /// This value should be zero for an image because COFF debugging information is
+ /// deprecated.
uint32_t pointerto_symbol_table() const {
return pointerto_symtab_;
}
- /// The number of entries in the symbol table. This data can be used to locate the string table
- /// which immediately follows the symbol table.
+ /// The number of entries in the symbol table. This data can be used to locate
+ /// the string table which immediately follows the symbol table.
///
- /// This value should be zero for an image because COFF debugging information is deprecated.
+ /// This value should be zero for an image because COFF debugging information is
+ /// deprecated.
uint32_t numberof_symbols() const {
return nb_symbols_;
}
- /// Size of the OptionalHeader **AND** the data directories which follows this header.
+ /// Size of the OptionalHeader **AND** the data directories which follows this
+ /// header.
///
- /// This value is equivalent to: ``sizeof(pe_optional_header) + NB_DATA_DIR * sizeof(data_directory)``
+ /// This value is equivalent to: ``sizeof(pe_optional_header) + NB_DATA_DIR *
+ /// sizeof(data_directory)``
///
/// This size **should** be either:
/// * 0xE0 (224) for a PE32 (32 bits)
@@ -283,7 +311,7 @@ class LIEF_API Header : public Object {
LIEF_API friend std::ostream& operator<<(std::ostream& os, const Header& entry);
- /// \private
+ /// @private
LIEF_LOCAL Header() = default;
private:
diff --git a/deps/LIEF/include/LIEF/PE/Import.hpp b/deps/LIEF/include/LIEF/PE/Import.hpp
index aa2e45b6e96..5bf07e93b33 100644
--- a/deps/LIEF/include/LIEF/PE/Import.hpp
+++ b/deps/LIEF/include/LIEF/PE/Import.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -43,14 +43,14 @@ class LIEF_API Import : public Object {
friend class Builder;
public:
- using entries_t = std::vector<std::unique_ptr<ImportEntry>>;
- using it_entries = ref_iterator<entries_t&, ImportEntry*>;
- using it_const_entries = const_ref_iterator<const entries_t&, const ImportEntry*>;
+ using entries_t = std::vector<std::unique_ptr<ImportEntry>>;
+ using it_entries = ref_iterator<entries_t&, ImportEntry*>;
+ using it_const_entries =
+ const_ref_iterator<const entries_t&, const ImportEntry*>;
Import(const details::pe_import& import);
Import(std::string name) :
- name_(std::move(name))
- {}
+ name_(std::move(name)) {}
Import() = default;
~Import() override = default;
@@ -72,11 +72,11 @@ class LIEF_API Import : public Object {
}
/// Iterator over the PE::ImportEntry
- it_const_entries entries() const {
+ it_const_entries entries() const LIEF_LIFETIMEBOUND {
return entries_;
}
- it_entries entries() {
+ it_entries entries() LIEF_LIFETIMEBOUND {
return entries_;
}
@@ -84,31 +84,33 @@ class LIEF_API Import : public Object {
/// **identical** to the content of the Import Lookup Table (`ILT`) until the
/// image is bound.
///
- /// \warning This address could change when re-building the binary
+ /// @warning This address could change when re-building the binary
uint32_t import_address_table_rva() const {
return iat_rva_;
}
/// Return the relative virtual address of the import lookup table.
///
- /// \warning This address could change when re-building the binary
+ /// @warning This address could change when re-building the binary
uint32_t import_lookup_table_rva() const {
return ilt_rva_;
}
/// Return the Function's RVA from the import address table (`IAT`)
///
- /// \warning This address could change when re-building the binary
+ /// @warning This address could change when re-building the binary
result<uint32_t> get_function_rva_from_iat(const std::string& function) const;
/// Return the imported function with the given name
- ImportEntry* get_entry(const std::string& name) {
- return const_cast<ImportEntry*>(static_cast<const Import*>(this)->get_entry(name));
+ ImportEntry* get_entry(const std::string& name) LIEF_LIFETIMEBOUND {
+ return const_cast<ImportEntry*>(
+ static_cast<const Import*>(this)->get_entry(name)
+ );
}
- const ImportEntry* get_entry(const std::string& name) const;
+ const ImportEntry* get_entry(const std::string& name) const LIEF_LIFETIMEBOUND;
/// Return the library's name (e.g. `kernel32.dll`)
- const std::string& name() const {
+ const std::string& name() const LIEF_LIFETIMEBOUND {
return name_;
}
@@ -126,46 +128,46 @@ class LIEF_API Import : public Object {
/// It should be the one at index PE::DataDirectory::TYPES::IMPORT_TABLE
///
/// If the data directory can't be found, return a nullptr
- DataDirectory* directory() {
+ DataDirectory* directory() LIEF_LIFETIMEBOUND {
return directory_;
}
- const DataDirectory* directory() const {
+ const DataDirectory* directory() const LIEF_LIFETIMEBOUND {
return directory_;
}
- /// Return the PE::DataDirectory associated associated with the IAT.
+ /// Return the PE::DataDirectory associated with the IAT.
/// It should be the one at index PE::DataDirectory::TYPES::IAT
///
/// If the data directory can't be found, return a nullptr
- DataDirectory* iat_directory() {
+ DataDirectory* iat_directory() LIEF_LIFETIMEBOUND {
return iat_directory_;
}
- const DataDirectory* iat_directory() const {
+ const DataDirectory* iat_directory() const LIEF_LIFETIMEBOUND {
return iat_directory_;
}
/// Add a new import entry (i.e. an imported function)
- ImportEntry& add_entry(ImportEntry entry) {
- entries_.emplace_back(new ImportEntry(std::move(entry)));
+ ImportEntry& add_entry(const ImportEntry& entry) LIEF_LIFETIMEBOUND {
+ entries_.emplace_back(new ImportEntry(entry));
return *entries_.back();
}
/// Add a new import entry with the given name (i.e. an imported function)
- ImportEntry& add_entry(const std::string& name) {
+ ImportEntry& add_entry(const std::string& name) LIEF_LIFETIMEBOUND {
entries_.emplace_back(new ImportEntry(name));
- return *entries_.back();
+ return *entries_.back();
}
/// Remove the import entry with the given name.
///
- /// Return true if the deletion succeed, false otherwise
+ /// Return true if the deletion succeeded, false otherwise
bool remove_entry(const std::string& name);
/// Remove the import entry with the given ordinal number
///
- /// Return true if the deletion succeed, false otherwise
+ /// Return true if the deletion succeeded, false otherwise
bool remove_entry(uint32_t ordinal);
void import_lookup_table_rva(uint32_t rva) {
@@ -176,7 +178,7 @@ class LIEF_API Import : public Object {
iat_rva_ = rva;
}
- /// \private
+ /// @private
LIEF_LOCAL size_t nb_original_func() const {
return nb_original_func_;
}
diff --git a/deps/LIEF/include/LIEF/PE/ImportEntry.hpp b/deps/LIEF/include/LIEF/PE/ImportEntry.hpp
index 57744b2adc9..500cdbddd0a 100644
--- a/deps/LIEF/include/LIEF/PE/ImportEntry.hpp
+++ b/deps/LIEF/include/LIEF/PE/ImportEntry.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,8 +31,8 @@ class Builder;
/// Class that represents an entry (i.e. an import) in the import table (Import).
///
-/// It extends the LIEF::Symbol generic class that exposes the LIEF::Symbol::name and
-/// LIEF::Symbol::value API
+/// It extends the LIEF::Symbol generic class that exposes the LIEF::Symbol::name
+/// and LIEF::Symbol::value API
class LIEF_API ImportEntry : public LIEF::Symbol {
friend class Parser;
friend class Builder;
@@ -41,8 +41,8 @@ class LIEF_API ImportEntry : public LIEF::Symbol {
ImportEntry() = default;
ImportEntry(uint64_t data, PE_TYPE type) :
- data_(data), type_(type)
- {}
+ data_(data),
+ type_(type) {}
ImportEntry(std::string name) {
this->name(std::move(name));
@@ -82,12 +82,20 @@ class LIEF_API ImportEntry : public LIEF::Symbol {
return iat_value_;
}
+ void iat_value(uint64_t value) {
+ iat_value_ = value;
+ }
+
/// Original value in the import lookup table.
/// This value should match the iat_value().
uint64_t ilt_value() const {
return ilt_value_;
}
+ void ilt_value(uint64_t value) {
+ ilt_value_ = value;
+ }
+
/// Raw value
uint64_t data() const {
return data_;
@@ -104,9 +112,10 @@ class LIEF_API ImportEntry : public LIEF::Symbol {
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const ImportEntry& entry);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const ImportEntry& entry);
- /// \private Internal use **only**
+ /// @private Internal use **only**
LIEF_LOCAL void iat_address(uint64_t rva) {
rva_ = rva;
}
@@ -117,10 +126,10 @@ class LIEF_API ImportEntry : public LIEF::Symbol {
uint64_t iat_value_ = 0;
uint64_t ilt_value_ = 0;
uint64_t rva_ = 0;
- PE_TYPE type_ = PE_TYPE::PE32_PLUS;
+ PE_TYPE type_ = PE_TYPE::PE32_PLUS;
};
}
}
-#endif /* IMPORTENTRY_H */
+#endif
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations.hpp
index 8e31387b185..3b7b28b2fb2 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata.hpp
index 92d62e2090c..c6186940b60 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata/Metadata.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata/Metadata.hpp
index 90a75c22fda..bfb620b530b 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata/Metadata.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata/Metadata.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,17 +31,17 @@ class Parser;
/// This class is inherited by architecture-specific implementation.
class LIEF_API CHPEMetadata {
public:
-
/// Discriminator for the subclasses
enum class KIND {
UNKNOWN = 0,
- ARM64, X86,
+ ARM64,
+ X86,
};
CHPEMetadata() = default;
CHPEMetadata(KIND kind, uint32_t version) :
- kind_(kind), version_(version)
- {}
+ kind_(kind),
+ version_(version) {}
CHPEMetadata(const CHPEMetadata&) = default;
CHPEMetadata& operator=(const CHPEMetadata&) = default;
@@ -84,9 +84,8 @@ class LIEF_API CHPEMetadata {
return const_cast<CHPEMetadata*>(this)->as<T>();
}
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const CHPEMetadata& meta)
- {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const CHPEMetadata& meta) {
os << meta.to_string();
return os;
}
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata/MetadataARM64.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata/MetadataARM64.hpp
index 13f0fbf91bf..632ef022304 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata/MetadataARM64.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata/MetadataARM64.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -97,15 +97,16 @@ class LIEF_API CHPEMetadataARM64 : public CHPEMetadata {
using redirection_entries_t = std::vector<redirection_entry_t>;
using it_redirection_entries = ref_iterator<redirection_entries_t&>;
- using it_const_redirection_entries = const_ref_iterator<const redirection_entries_t&>;
+ using it_const_redirection_entries =
+ const_ref_iterator<const redirection_entries_t&>;
using code_range_entry_point_entries = std::vector<code_range_entry_point_t>;
using it_code_range_entry_point = ref_iterator<code_range_entry_point_entries&>;
- using it_const_code_range_entry_point = const_ref_iterator<const code_range_entry_point_entries&>;
+ using it_const_code_range_entry_point =
+ const_ref_iterator<const code_range_entry_point_entries&>;
CHPEMetadataARM64(uint32_t version) :
- CHPEMetadata(KIND::ARM64, version)
- {}
+ CHPEMetadata(KIND::ARM64, version) {}
CHPEMetadataARM64(const CHPEMetadataARM64&) = default;
CHPEMetadataARM64& operator=(const CHPEMetadataARM64&) = default;
@@ -117,15 +118,15 @@ class LIEF_API CHPEMetadataARM64 : public CHPEMetadata {
return std::unique_ptr<CHPEMetadataARM64>(new CHPEMetadataARM64(*this));
}
- static std::unique_ptr<CHPEMetadataARM64> parse(
- Parser& ctx, BinaryStream& stream, uint32_t version);
+ static std::unique_ptr<CHPEMetadataARM64>
+ parse(Parser& ctx, BinaryStream& stream, uint32_t version);
static ok_error_t parse_code_map(Parser& ctx, CHPEMetadataARM64& metadata);
static ok_error_t parse_redirections(Parser& ctx, CHPEMetadataARM64& metadata);
- static ok_error_t parse_code_ranges_to_entry_points(
- Parser& ctx, CHPEMetadataARM64& metadata);
+ static ok_error_t parse_code_ranges_to_entry_points(Parser& ctx,
+ CHPEMetadataARM64& metadata);
/// RVA to the array that describes architecture-specific ranges
uint32_t code_map() const {
@@ -219,136 +220,145 @@ class LIEF_API CHPEMetadataARM64 : public CHPEMetadata {
return bitfield_info_;
}
- it_range_entries code_ranges() {
+ it_range_entries code_ranges() LIEF_LIFETIMEBOUND {
return range_entries_;
}
- it_const_range_entries code_ranges() const {
+ it_const_range_entries code_ranges() const LIEF_LIFETIMEBOUND {
return range_entries_;
}
- it_redirection_entries redirections() {
+ it_redirection_entries redirections() LIEF_LIFETIMEBOUND {
return redirection_entries_;
}
- it_const_redirection_entries redirections() const {
+ it_const_redirection_entries redirections() const LIEF_LIFETIMEBOUND {
return redirection_entries_;
}
- it_code_range_entry_point code_range_entry_point() {
+ it_code_range_entry_point code_range_entry_point() LIEF_LIFETIMEBOUND {
return code_range_entry_point_entries_;
}
- it_const_code_range_entry_point code_range_entry_point() const {
+ it_const_code_range_entry_point
+ code_range_entry_point() const LIEF_LIFETIMEBOUND {
return code_range_entry_point_entries_;
}
- CHPEMetadataARM64& code_map(uint32_t value) {
+ CHPEMetadataARM64& code_map(uint32_t value) LIEF_LIFETIMEBOUND {
code_map_rva_ = value;
return *this;
}
- CHPEMetadataARM64& code_map_count(uint32_t value) {
+ CHPEMetadataARM64& code_map_count(uint32_t value) LIEF_LIFETIMEBOUND {
code_map_cnt_ = value;
return *this;
}
- CHPEMetadataARM64& code_ranges_to_entrypoints(uint32_t value) {
+ CHPEMetadataARM64&
+ code_ranges_to_entrypoints(uint32_t value) LIEF_LIFETIMEBOUND {
code_ranges_to_ep_ = value;
return *this;
}
- CHPEMetadataARM64& redirection_metadata(uint32_t value) {
+ CHPEMetadataARM64& redirection_metadata(uint32_t value) LIEF_LIFETIMEBOUND {
redirection_metadata_ = value;
return *this;
}
- CHPEMetadataARM64& os_arm64x_dispatch_call_no_redirect(uint32_t value) {
+ CHPEMetadataARM64&
+ os_arm64x_dispatch_call_no_redirect(uint32_t value) LIEF_LIFETIMEBOUND {
os_arm64x_dispatch_call_no_redirect_ = value;
return *this;
}
- CHPEMetadataARM64& os_arm64x_dispatch_ret(uint32_t value) {
+ CHPEMetadataARM64& os_arm64x_dispatch_ret(uint32_t value) LIEF_LIFETIMEBOUND {
os_arm64x_dispatch_ret_ = value;
return *this;
}
- CHPEMetadataARM64& os_arm64x_dispatch_call(uint32_t value) {
+ CHPEMetadataARM64& os_arm64x_dispatch_call(uint32_t value) LIEF_LIFETIMEBOUND {
os_arm64x_dispatch_call_ = value;
return *this;
}
- CHPEMetadataARM64& os_arm64x_dispatch_icall(uint32_t value) {
+ CHPEMetadataARM64& os_arm64x_dispatch_icall(uint32_t value) LIEF_LIFETIMEBOUND {
os_arm64x_dispatch_icall_ = value;
return *this;
}
- CHPEMetadataARM64& os_arm64x_dispatch_icall_cfg(uint32_t value) {
+ CHPEMetadataARM64&
+ os_arm64x_dispatch_icall_cfg(uint32_t value) LIEF_LIFETIMEBOUND {
os_arm64x_dispatch_icall_cfg_ = value;
return *this;
}
- CHPEMetadataARM64& alternate_entry_point(uint32_t value) {
+ CHPEMetadataARM64& alternate_entry_point(uint32_t value) LIEF_LIFETIMEBOUND {
alternate_ep_ = value;
return *this;
}
- CHPEMetadataARM64& auxiliary_iat(uint32_t value) {
+ CHPEMetadataARM64& auxiliary_iat(uint32_t value) LIEF_LIFETIMEBOUND {
aux_iat_ = value;
return *this;
}
- CHPEMetadataARM64& code_ranges_to_entry_points_count(uint32_t value) {
+ CHPEMetadataARM64&
+ code_ranges_to_entry_points_count(uint32_t value) LIEF_LIFETIMEBOUND {
code_ranges_to_ep_cnt_ = value;
return *this;
}
- CHPEMetadataARM64& redirection_metadata_count(uint32_t value) {
+ CHPEMetadataARM64&
+ redirection_metadata_count(uint32_t value) LIEF_LIFETIMEBOUND {
redirection_metadata_cnt_ = value;
return *this;
}
- CHPEMetadataARM64& get_x64_information_function_pointer(uint32_t value) {
+ CHPEMetadataARM64&
+ get_x64_information_function_pointer(uint32_t value) LIEF_LIFETIMEBOUND {
get_x64_information_function_pointer_ = value;
return *this;
}
- CHPEMetadataARM64& set_x64_information_function_pointer(uint32_t value) {
+ CHPEMetadataARM64&
+ set_x64_information_function_pointer(uint32_t value) LIEF_LIFETIMEBOUND {
set_x64_information_function_pointer_ = value;
return *this;
}
- CHPEMetadataARM64& extra_rfe_table(uint32_t value) {
+ CHPEMetadataARM64& extra_rfe_table(uint32_t value) LIEF_LIFETIMEBOUND {
extra_rfe_table_ = value;
return *this;
}
- CHPEMetadataARM64& extra_rfe_table_size(uint32_t value) {
+ CHPEMetadataARM64& extra_rfe_table_size(uint32_t value) LIEF_LIFETIMEBOUND {
extra_rfe_table_size_ = value;
return *this;
}
- CHPEMetadataARM64& os_arm64x_dispatch_fptr(uint32_t value) {
+ CHPEMetadataARM64& os_arm64x_dispatch_fptr(uint32_t value) LIEF_LIFETIMEBOUND {
os_arm64x_dispatch_fptr_ = value;
return *this;
}
- CHPEMetadataARM64& auxiliary_iat_copy(uint32_t value) {
+ CHPEMetadataARM64& auxiliary_iat_copy(uint32_t value) LIEF_LIFETIMEBOUND {
aux_iat_copy_ = value;
return *this;
}
- CHPEMetadataARM64& auxiliary_delay_import(uint32_t value) {
+ CHPEMetadataARM64& auxiliary_delay_import(uint32_t value) LIEF_LIFETIMEBOUND {
aux_delay_import_ = value;
return *this;
}
- CHPEMetadataARM64& auxiliary_delay_import_copy(uint32_t value) {
+ CHPEMetadataARM64&
+ auxiliary_delay_import_copy(uint32_t value) LIEF_LIFETIMEBOUND {
aux_delay_import_copy_ = value;
return *this;
}
- CHPEMetadataARM64& bitfield_info(uint32_t value) {
+ CHPEMetadataARM64& bitfield_info(uint32_t value) LIEF_LIFETIMEBOUND {
bitfield_info_ = value;
return *this;
}
@@ -388,7 +398,6 @@ class LIEF_API CHPEMetadataARM64 : public CHPEMetadata {
range_entries_t range_entries_;
redirection_entries_t redirection_entries_;
code_range_entry_point_entries code_range_entry_point_entries_;
-
};
LIEF_API const char* to_string(CHPEMetadataARM64::range_entry_t::TYPE e);
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata/MetadataX86.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata/MetadataX86.hpp
index b436b1898d6..ce67c65e82e 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata/MetadataX86.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/CHPEMetadata/MetadataX86.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,8 +29,7 @@ namespace PE {
class LIEF_API CHPEMetadataX86 : public CHPEMetadata {
public:
CHPEMetadataX86(uint32_t version) :
- CHPEMetadata(KIND::X86, version)
- {}
+ CHPEMetadata(KIND::X86, version) {}
CHPEMetadataX86(const CHPEMetadataX86&) = default;
CHPEMetadataX86& operator=(const CHPEMetadataX86&) = default;
@@ -42,8 +41,8 @@ class LIEF_API CHPEMetadataX86 : public CHPEMetadata {
return std::unique_ptr<CHPEMetadataX86>(new CHPEMetadataX86(*this));
}
- static std::unique_ptr<CHPEMetadataX86> parse(
- Parser& ctx, BinaryStream& stream, uint32_t version);
+ static std::unique_ptr<CHPEMetadataX86> parse(Parser& ctx, BinaryStream& stream,
+ uint32_t version);
uint32_t chpe_code_address_range_offset() const {
@@ -90,57 +89,71 @@ class LIEF_API CHPEMetadataX86 : public CHPEMetadata {
return wowa64_rdtsc_function_pointer_;
}
- CHPEMetadataX86& chpe_code_address_range_offset(uint32_t value) {
+ CHPEMetadataX86&
+ chpe_code_address_range_offset(uint32_t value) LIEF_LIFETIMEBOUND {
chpe_code_address_range_offset_ = value;
return *this;
}
- CHPEMetadataX86& chpe_code_address_range_count(uint32_t value) {
+ CHPEMetadataX86&
+ chpe_code_address_range_count(uint32_t value) LIEF_LIFETIMEBOUND {
chpe_code_address_range_count_ = value;
return *this;
}
- CHPEMetadataX86& wowa64_exception_handler_function_pointer(uint32_t value) {
+ CHPEMetadataX86& wowa64_exception_handler_function_pointer(
+ uint32_t value
+ ) LIEF_LIFETIMEBOUND {
wowa64_exception_handler_function_pointer_ = value;
return *this;
}
- CHPEMetadataX86& wowa64_dispatch_call_function_pointer(uint32_t value) {
+ CHPEMetadataX86&
+ wowa64_dispatch_call_function_pointer(uint32_t value) LIEF_LIFETIMEBOUND {
wowa64_dispatch_call_function_pointer_ = value;
return *this;
}
- CHPEMetadataX86& wowa64_dispatch_indirect_call_function_pointer(uint32_t value) {
+ CHPEMetadataX86& wowa64_dispatch_indirect_call_function_pointer(
+ uint32_t value
+ ) LIEF_LIFETIMEBOUND {
wowa64_dispatch_indirect_call_function_pointer_ = value;
return *this;
}
- CHPEMetadataX86& wowa64_dispatch_indirect_call_cfg_function_pointer(uint32_t value) {
+ CHPEMetadataX86& wowa64_dispatch_indirect_call_cfg_function_pointer(
+ uint32_t value
+ ) LIEF_LIFETIMEBOUND {
wowa64_dispatch_indirect_call_cfg_function_pointer_ = value;
return *this;
}
- CHPEMetadataX86& wowa64_dispatch_ret_function_pointer(uint32_t value) {
+ CHPEMetadataX86&
+ wowa64_dispatch_ret_function_pointer(uint32_t value) LIEF_LIFETIMEBOUND {
wowa64_dispatch_ret_function_pointer_ = value;
return *this;
}
- CHPEMetadataX86& wowa64_dispatch_ret_leaf_function_pointer(uint32_t value) {
+ CHPEMetadataX86& wowa64_dispatch_ret_leaf_function_pointer(
+ uint32_t value
+ ) LIEF_LIFETIMEBOUND {
wowa64_dispatch_ret_leaf_function_pointer_ = value;
return *this;
}
- CHPEMetadataX86& wowa64_dispatch_jump_function_pointer(uint32_t value) {
+ CHPEMetadataX86&
+ wowa64_dispatch_jump_function_pointer(uint32_t value) LIEF_LIFETIMEBOUND {
wowa64_dispatch_jump_function_pointer_ = value;
return *this;
}
- CHPEMetadataX86& compiler_iat_pointer(uint32_t value) {
+ CHPEMetadataX86& compiler_iat_pointer(uint32_t value) LIEF_LIFETIMEBOUND {
compiler_iat_pointer_ = value;
return *this;
}
- CHPEMetadataX86& wowa64_rdtsc_function_pointer(uint32_t value) {
+ CHPEMetadataX86&
+ wowa64_rdtsc_function_pointer(uint32_t value) LIEF_LIFETIMEBOUND {
wowa64_rdtsc_function_pointer_ = value;
return *this;
}
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation.hpp
index 6cdb3c4de9f..b5d236a9158 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixup.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixup.hpp
index 85afbe6c105..93fad08960c 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixup.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -44,20 +44,22 @@ class LIEF_API DynamicFixup {
/// If DynamicRelocation::symbol is set to `IMAGE_DYNAMIC_RELOCATION_ARM64X`
ARM64X,
- /// If DynamicRelocation::symbol is set to `IMAGE_DYNAMIC_RELOCATION_FUNCTION_OVERRIDE`
+ /// If DynamicRelocation::symbol is set to
+ /// `IMAGE_DYNAMIC_RELOCATION_FUNCTION_OVERRIDE`
FUNCTION_OVERRIDE,
- /// If DynamicRelocation::symbol is set to `IMAGE_DYNAMIC_RELOCATION_ARM64_KERNEL_IMPORT_CALL_TRANSFER`
+ /// If DynamicRelocation::symbol is set to
+ /// `IMAGE_DYNAMIC_RELOCATION_ARM64_KERNEL_IMPORT_CALL_TRANSFER`
ARM64_KERNEL_IMPORT_CALL_TRANSFER,
- /// If DynamicRelocation::symbol is set to `IMAGE_DYNAMIC_RELOCATION_GUARD_IMPORT_CONTROL_TRANSFER`
+ /// If DynamicRelocation::symbol is set to
+ /// `IMAGE_DYNAMIC_RELOCATION_GUARD_IMPORT_CONTROL_TRANSFER`
GUARD_IMPORT_CONTROL_TRANSFER,
};
DynamicFixup() = delete;
DynamicFixup(KIND kind) :
- kind_(kind)
- {}
+ kind_(kind) {}
DynamicFixup(const DynamicFixup&) = default;
DynamicFixup& operator=(const DynamicFixup&) = default;
@@ -89,22 +91,20 @@ class LIEF_API DynamicFixup {
return const_cast<DynamicFixup*>(this)->as<T>();
}
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const DynamicFixup& fixup)
- {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const DynamicFixup& fixup) {
os << fixup.to_string();
return os;
}
virtual ~DynamicFixup() = default;
- /// \private
- static LIEF_LOCAL ok_error_t
- parse(Parser& ctx, SpanStream& stream, DynamicRelocation& R);
+ /// @private
+ static LIEF_LOCAL ok_error_t parse(Parser& ctx, SpanStream& stream,
+ DynamicRelocation& R);
protected:
KIND kind_ = KIND::UNKNOWN;
-
};
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64Kernel.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64Kernel.hpp
index ca3b1e5e911..c56c5f2d279 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64Kernel.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64Kernel.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -55,9 +55,8 @@ class LIEF_API DynamicFixupARM64Kernel : public DynamicFixup {
std::string to_string() const;
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const reloc_entry_t& entry)
- {
+ friend LIEF_API std::ostream& operator<<(std::ostream& os,
+ const reloc_entry_t& entry) {
os << entry.to_string();
return os;
}
@@ -68,8 +67,7 @@ class LIEF_API DynamicFixupARM64Kernel : public DynamicFixup {
using it_const_relocations = const_ref_iterator<const reloc_entries_t&>;
DynamicFixupARM64Kernel() :
- DynamicFixup(KIND::ARM64_KERNEL_IMPORT_CALL_TRANSFER)
- {}
+ DynamicFixup(KIND::ARM64_KERNEL_IMPORT_CALL_TRANSFER) {}
DynamicFixupARM64Kernel(const DynamicFixupARM64Kernel&) = default;
DynamicFixupARM64Kernel& operator=(const DynamicFixupARM64Kernel&) = default;
@@ -78,17 +76,19 @@ class LIEF_API DynamicFixupARM64Kernel : public DynamicFixup {
DynamicFixupARM64Kernel& operator=(DynamicFixupARM64Kernel&&) = default;
std::unique_ptr<DynamicFixup> clone() const override {
- return std::unique_ptr<DynamicFixupARM64Kernel>(new DynamicFixupARM64Kernel(*this));
+ return std::unique_ptr<DynamicFixupARM64Kernel>(
+ new DynamicFixupARM64Kernel(*this)
+ );
}
std::string to_string() const override;
/// Iterator over the relocations
- it_relocations relocations() {
+ it_relocations relocations() LIEF_LIFETIMEBOUND {
return entries_;
}
- it_const_relocations relocations() const {
+ it_const_relocations relocations() const LIEF_LIFETIMEBOUND {
return entries_;
}
@@ -98,9 +98,9 @@ class LIEF_API DynamicFixupARM64Kernel : public DynamicFixup {
~DynamicFixupARM64Kernel() override = default;
- /// \private
- LIEF_LOCAL static
- std::unique_ptr<DynamicFixupARM64Kernel> parse(Parser& ctx, SpanStream& strm);
+ /// @private
+ LIEF_LOCAL static std::unique_ptr<DynamicFixupARM64Kernel>
+ parse(Parser& ctx, SpanStream& strm);
private:
reloc_entries_t entries_;
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64X.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64X.hpp
index 6d1264267e4..6913aea4151 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64X.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64X.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -51,9 +51,8 @@ class LIEF_API DynamicFixupARM64X : public DynamicFixup {
std::string to_string() const;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const reloc_entry_t& entry)
- {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const reloc_entry_t& entry) {
os << entry.to_string();
return os;
}
@@ -64,8 +63,7 @@ class LIEF_API DynamicFixupARM64X : public DynamicFixup {
using it_const_relocations = const_ref_iterator<const reloc_entries_t&>;
DynamicFixupARM64X() :
- DynamicFixup(KIND::ARM64X)
- {}
+ DynamicFixup(KIND::ARM64X) {}
DynamicFixupARM64X(const DynamicFixupARM64X&) = default;
DynamicFixupARM64X& operator=(const DynamicFixupARM64X&) = default;
@@ -80,11 +78,11 @@ class LIEF_API DynamicFixupARM64X : public DynamicFixup {
std::string to_string() const override;
/// Iterator over the different fixup entries
- it_relocations relocations() {
+ it_relocations relocations() LIEF_LIFETIMEBOUND {
return entries_;
}
- it_const_relocations relocations() const {
+ it_const_relocations relocations() const LIEF_LIFETIMEBOUND {
return entries_;
}
@@ -94,13 +92,12 @@ class LIEF_API DynamicFixupARM64X : public DynamicFixup {
~DynamicFixupARM64X() override = default;
- /// \private
- LIEF_LOCAL static
- std::unique_ptr<DynamicFixupARM64X> parse(Parser& ctx, SpanStream& strm);
+ /// @private
+ LIEF_LOCAL static std::unique_ptr<DynamicFixupARM64X> parse(Parser& ctx,
+ SpanStream& strm);
private:
reloc_entries_t entries_;
-
};
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupControlTransfer.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupControlTransfer.hpp
index 3acda31f0fd..3ec341965af 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupControlTransfer.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupControlTransfer.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -43,9 +43,8 @@ class LIEF_API DynamicFixupControlTransfer : public DynamicFixup {
std::string to_string() const;
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const reloc_entry_t& entry)
- {
+ friend LIEF_API std::ostream& operator<<(std::ostream& os,
+ const reloc_entry_t& entry) {
os << entry.to_string();
return os;
}
@@ -56,27 +55,29 @@ class LIEF_API DynamicFixupControlTransfer : public DynamicFixup {
using it_const_relocations = const_ref_iterator<const reloc_entries_t&>;
DynamicFixupControlTransfer() :
- DynamicFixup(KIND::GUARD_IMPORT_CONTROL_TRANSFER)
- {}
+ DynamicFixup(KIND::GUARD_IMPORT_CONTROL_TRANSFER) {}
DynamicFixupControlTransfer(const DynamicFixupControlTransfer&) = default;
- DynamicFixupControlTransfer& operator=(const DynamicFixupControlTransfer&) = default;
+ DynamicFixupControlTransfer&
+ operator=(const DynamicFixupControlTransfer&) = default;
DynamicFixupControlTransfer(DynamicFixupControlTransfer&&) = default;
DynamicFixupControlTransfer& operator=(DynamicFixupControlTransfer&&) = default;
std::unique_ptr<DynamicFixup> clone() const override {
- return std::unique_ptr<DynamicFixupControlTransfer>(new DynamicFixupControlTransfer(*this));
+ return std::unique_ptr<DynamicFixupControlTransfer>(
+ new DynamicFixupControlTransfer(*this)
+ );
}
std::string to_string() const override;
/// Iterator over the relocations
- it_relocations relocations() {
+ it_relocations relocations() LIEF_LIFETIMEBOUND {
return entries_;
}
- it_const_relocations relocations() const {
+ it_const_relocations relocations() const LIEF_LIFETIMEBOUND {
return entries_;
}
@@ -86,9 +87,9 @@ class LIEF_API DynamicFixupControlTransfer : public DynamicFixup {
~DynamicFixupControlTransfer() override = default;
- /// \private
- LIEF_LOCAL static
- std::unique_ptr<DynamicFixupControlTransfer> parse(Parser& ctx, SpanStream& strm);
+ /// @private
+ LIEF_LOCAL static std::unique_ptr<DynamicFixupControlTransfer>
+ parse(Parser& ctx, SpanStream& strm);
private:
reloc_entries_t entries_;
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupGeneric.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupGeneric.hpp
index e28bc74cda8..e6c75b67970 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupGeneric.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupGeneric.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,7 +29,8 @@ class LIEF_API DynamicFixupGeneric : public DynamicFixup {
public:
using relocations_t = std::vector<std::unique_ptr<Relocation>>;
using it_relocations = ref_iterator<relocations_t&, Relocation*>;
- using it_const_relocations = const_ref_iterator<const relocations_t&, Relocation*>;
+ using it_const_relocations =
+ const_ref_iterator<const relocations_t&, Relocation*>;
DynamicFixupGeneric();
@@ -44,11 +45,11 @@ class LIEF_API DynamicFixupGeneric : public DynamicFixup {
}
/// Iterator over the relocations
- it_relocations relocations() {
+ it_relocations relocations() LIEF_LIFETIMEBOUND {
return relocations_;
}
- it_const_relocations relocations() const {
+ it_const_relocations relocations() const LIEF_LIFETIMEBOUND {
return relocations_;
}
@@ -60,9 +61,9 @@ class LIEF_API DynamicFixupGeneric : public DynamicFixup {
~DynamicFixupGeneric() override;
- /// \private
- LIEF_LOCAL static
- std::unique_ptr<DynamicFixupGeneric> parse(Parser& ctx, SpanStream& strm);
+ /// @private
+ LIEF_LOCAL static std::unique_ptr<DynamicFixupGeneric> parse(Parser& ctx,
+ SpanStream& strm);
private:
relocations_t relocations_;
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupUnknown.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupUnknown.hpp
index 3ef46db7d54..d72cfec74ed 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupUnknown.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixupUnknown.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
*/
#ifndef LIEF_PE_LOAD_CONFIGURATION_DYNAMIC_FIXUP_UNKNOWN_H
#define LIEF_PE_LOAD_CONFIGURATION_DYNAMIC_FIXUP_UNKNOWN_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/span.hpp"
#include "LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicFixup.hpp"
@@ -23,14 +24,13 @@
namespace LIEF {
namespace PE {
-/// This class represents an special dynamic relocation where the format of the
+/// This class represents a special dynamic relocation where the format of the
/// fixups is not supported by LIEF.
class LIEF_API DynamicFixupUnknown : public DynamicFixup {
public:
DynamicFixupUnknown(std::vector<uint8_t> payload) :
DynamicFixup(KIND::UNKNOWN),
- payload_(std::move(payload))
- {}
+ payload_(std::move(payload)) {}
DynamicFixupUnknown(const DynamicFixupUnknown&) = default;
DynamicFixupUnknown& operator=(const DynamicFixupUnknown&) = default;
@@ -51,11 +51,11 @@ class LIEF_API DynamicFixupUnknown : public DynamicFixup {
}
/// Raw fixups
- span<const uint8_t> payload() const {
+ span<const uint8_t> payload() const LIEF_LIFETIMEBOUND {
return payload_;
}
- span<uint8_t> payload() {
+ span<uint8_t> payload() LIEF_LIFETIMEBOUND {
return payload_;
}
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationBase.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationBase.hpp
index 899b60755bc..aca70db2329 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationBase.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationBase.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -83,22 +83,22 @@ class LIEF_API DynamicRelocation {
return symbol_;
}
- const DynamicFixup* fixups() const {
+ const DynamicFixup* fixups() const LIEF_LIFETIMEBOUND {
return fixups_.get();
}
/// Return fixups information, where the interpretation may depend on the
/// symbol's value
- DynamicFixup* fixups() {
+ DynamicFixup* fixups() LIEF_LIFETIMEBOUND {
return fixups_.get();
}
- DynamicRelocation& symbol(uint64_t value) {
+ DynamicRelocation& symbol(uint64_t value) LIEF_LIFETIMEBOUND {
symbol_ = value;
return *this;
}
- DynamicRelocation& fixups(std::unique_ptr<DynamicFixup> F);
+ DynamicRelocation& fixups(std::unique_ptr<DynamicFixup> F) LIEF_LIFETIMEBOUND;
virtual std::string to_string() const = 0;
@@ -117,9 +117,8 @@ class LIEF_API DynamicRelocation {
return const_cast<DynamicRelocation*>(this)->as<T>();
}
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const DynamicRelocation& reloc)
- {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const DynamicRelocation& reloc) {
os << reloc.to_string();
return os;
}
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV1.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV1.hpp
index d881df85c17..ba59264b227 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV1.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV1.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -33,8 +33,7 @@ class Parser;
class LIEF_API DynamicRelocationV1 : public DynamicRelocation {
public:
DynamicRelocationV1() :
- DynamicRelocation(1)
- {}
+ DynamicRelocation(1) {}
DynamicRelocationV1(const DynamicRelocationV1&) = default;
DynamicRelocationV1& operator=(const DynamicRelocationV1&) = default;
@@ -54,9 +53,10 @@ class LIEF_API DynamicRelocationV1 : public DynamicRelocation {
~DynamicRelocationV1() override = default;
- /// \private
- template<class PE_T> LIEF_LOCAL static
- std::unique_ptr<DynamicRelocationV1> parse(Parser& ctx, BinaryStream& strm);
+ /// @private
+ template<class PE_T>
+ LIEF_LOCAL static std::unique_ptr<DynamicRelocationV1> parse(Parser& ctx,
+ BinaryStream& strm);
};
}
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV2.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV2.hpp
index 7d6634a9479..2f967c8ed8e 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV2.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV2.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -33,8 +33,7 @@ class Parser;
class LIEF_API DynamicRelocationV2 : public DynamicRelocation {
public:
DynamicRelocationV2() :
- DynamicRelocation(2)
- {}
+ DynamicRelocation(2) {}
DynamicRelocationV2(const DynamicRelocationV2&) = default;
DynamicRelocationV2& operator=(const DynamicRelocationV2&) = default;
@@ -54,10 +53,10 @@ class LIEF_API DynamicRelocationV2 : public DynamicRelocation {
~DynamicRelocationV2() override = default;
- /// \private
- template<class PE_T> LIEF_LOCAL static
- std::unique_ptr<DynamicRelocationV2> parse(Parser& ctx, BinaryStream& strm);
-
+ /// @private
+ template<class PE_T>
+ LIEF_LOCAL static std::unique_ptr<DynamicRelocationV2> parse(Parser& ctx,
+ BinaryStream& strm);
};
}
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/FunctionOverride.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/FunctionOverride.hpp
index 17f671fc4b9..02ebeca3597 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/FunctionOverride.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/FunctionOverride.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -34,7 +34,6 @@ class FunctionOverrideInfo;
/// This class represents `IMAGE_DYNAMIC_RELOCATION_FUNCTION_OVERRIDE`
class LIEF_API FunctionOverride : public DynamicFixup {
public:
-
/// Mirror `IMAGE_BDD_DYNAMIC_RELOCATION`
struct image_bdd_dynamic_relocation_t {
uint16_t left = 0;
@@ -55,9 +54,13 @@ class LIEF_API FunctionOverride : public DynamicFixup {
std::vector<uint8_t> payload;
};
- using func_overriding_info_t = std::vector<std::unique_ptr<FunctionOverrideInfo>>;
- using it_func_overriding_info = ref_iterator<func_overriding_info_t&, FunctionOverrideInfo*>;
- using it_const_func_overriding_info = const_ref_iterator<const func_overriding_info_t&, const FunctionOverrideInfo*>;
+ using func_overriding_info_t =
+ std::vector<std::unique_ptr<FunctionOverrideInfo>>;
+ using it_func_overriding_info =
+ ref_iterator<func_overriding_info_t&, FunctionOverrideInfo*>;
+ using it_const_func_overriding_info =
+ const_ref_iterator<const func_overriding_info_t&,
+ const FunctionOverrideInfo*>;
using bdd_info_list_t = std::vector<image_bdd_info_t>;
using it_bdd_info = ref_iterator<bdd_info_list_t&>;
@@ -76,34 +79,36 @@ class LIEF_API FunctionOverride : public DynamicFixup {
}
/// Iterator over the overriding info
- it_func_overriding_info func_overriding_info() {
+ it_func_overriding_info func_overriding_info() LIEF_LIFETIMEBOUND {
return overriding_info_;
}
- it_const_func_overriding_info func_overriding_info() const {
+ it_const_func_overriding_info func_overriding_info() const LIEF_LIFETIMEBOUND {
return overriding_info_;
}
/// Iterator over the BDD info
- it_bdd_info bdd_info() {
+ it_bdd_info bdd_info() LIEF_LIFETIMEBOUND {
return bdd_info_;
}
- it_const_bdd_info bdd_info() const {
+ it_const_bdd_info bdd_info() const LIEF_LIFETIMEBOUND {
return bdd_info_;
}
/// Find the `IMAGE_BDD_INFO` at the given offset
- image_bdd_info_t* find_bdd_info(uint32_t offset);
+ image_bdd_info_t* find_bdd_info(uint32_t offset) LIEF_LIFETIMEBOUND;
/// Find the `IMAGE_BDD_INFO` associated with the given info
- image_bdd_info_t* find_bdd_info(const FunctionOverrideInfo& info);
+ image_bdd_info_t*
+ find_bdd_info(const FunctionOverrideInfo& info) LIEF_LIFETIMEBOUND;
- const image_bdd_info_t* find_bdd_info(uint32_t offset) const {
+ const image_bdd_info_t* find_bdd_info(uint32_t offset) const LIEF_LIFETIMEBOUND {
return const_cast<FunctionOverride*>(this)->find_bdd_info(offset);
}
- const image_bdd_info_t* find_bdd_info(const FunctionOverrideInfo& info) const {
+ const image_bdd_info_t*
+ find_bdd_info(const FunctionOverrideInfo& info) const LIEF_LIFETIMEBOUND {
return const_cast<FunctionOverride*>(this)->find_bdd_info(info);
}
@@ -115,17 +120,17 @@ class LIEF_API FunctionOverride : public DynamicFixup {
~FunctionOverride() override;
- /// \private
- LIEF_LOCAL static
- std::unique_ptr<FunctionOverride> parse(Parser& ctx, SpanStream& strm);
+ /// @private
+ LIEF_LOCAL static std::unique_ptr<FunctionOverride> parse(Parser& ctx,
+ SpanStream& strm);
- /// \private
- LIEF_LOCAL static ok_error_t
- parse_override_info(Parser& ctx, SpanStream& strm, FunctionOverride& func);
+ /// @private
+ LIEF_LOCAL static ok_error_t parse_override_info(Parser& ctx, SpanStream& strm,
+ FunctionOverride& func);
- /// \private
- LIEF_LOCAL static ok_error_t
- parse_bdd_info(Parser& ctx, SpanStream& strm, FunctionOverride& func);
+ /// @private
+ LIEF_LOCAL static ok_error_t parse_bdd_info(Parser& ctx, SpanStream& strm,
+ FunctionOverride& func);
private:
func_overriding_info_t overriding_info_;
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/FunctionOverrideInfo.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/FunctionOverrideInfo.hpp
index 589323b2693..d94111eaed3 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/FunctionOverrideInfo.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/DynamicRelocation/FunctionOverrideInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
#include <memory>
#include <string>
#include <vector>
+#include <cstdint>
#include "LIEF/visibility.h"
#include "LIEF/iterators.hpp"
@@ -34,7 +35,8 @@ class LIEF_API FunctionOverrideInfo {
public:
using relocations_t = std::vector<std::unique_ptr<Relocation>>;
using it_relocations = ref_iterator<relocations_t&, Relocation*>;
- using it_const_relocations = const_ref_iterator<const relocations_t&, const Relocation*>;
+ using it_const_relocations =
+ const_ref_iterator<const relocations_t&, const Relocation*>;
FunctionOverrideInfo() = default;
FunctionOverrideInfo(uint32_t original_rva, uint32_t bdd_offset,
@@ -72,25 +74,25 @@ class LIEF_API FunctionOverrideInfo {
return rvas_;
}
- it_relocations relocations() {
+ it_relocations relocations() LIEF_LIFETIMEBOUND {
return relocations_;
}
- it_const_relocations relocations() const {
+ it_const_relocations relocations() const LIEF_LIFETIMEBOUND {
return relocations_;
}
- FunctionOverrideInfo& original_rva(uint32_t value) {
+ FunctionOverrideInfo& original_rva(uint32_t value) LIEF_LIFETIMEBOUND {
original_rva_ = value;
return *this;
}
- FunctionOverrideInfo& bdd_offset(uint32_t value) {
+ FunctionOverrideInfo& bdd_offset(uint32_t value) LIEF_LIFETIMEBOUND {
bdd_offset_ = value;
return *this;
}
- FunctionOverrideInfo& base_reloc_size(uint32_t value) {
+ FunctionOverrideInfo& base_reloc_size(uint32_t value) LIEF_LIFETIMEBOUND {
base_relocsz_ = value;
return *this;
}
@@ -100,18 +102,17 @@ class LIEF_API FunctionOverrideInfo {
return *this;
}
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const FunctionOverrideInfo& info)
- {
+ friend LIEF_API std::ostream& operator<<(std::ostream& os,
+ const FunctionOverrideInfo& info) {
os << info.to_string();
return os;
}
~FunctionOverrideInfo();
- /// \private
- LIEF_LOCAL static
- std::unique_ptr<FunctionOverrideInfo> parse(Parser& ctx, SpanStream& strm);
+ /// @private
+ LIEF_LOCAL static std::unique_ptr<FunctionOverrideInfo> parse(Parser& ctx,
+ SpanStream& strm);
private:
uint32_t original_rva_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/EnclaveConfiguration.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/EnclaveConfiguration.hpp
index 8864ffc4aa9..7fc71619aec 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/EnclaveConfiguration.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/EnclaveConfiguration.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -72,7 +72,8 @@ class LIEF_API EnclaveConfiguration {
/// If `MinimumRequiredConfigSize` is zero, the minimum size of the
/// `IMAGE_ENCLAVE_CONFIG(32,64)` structure that the image loader must be able
/// to process in order for the enclave to be usable is assumed to be the size
- /// of the structure through and including the `MinimumRequiredConfigSize` member.
+ /// of the structure through and including the `MinimumRequiredConfigSize`
+ /// member.
uint32_t min_required_config_size() const {
return min_req_size_;
}
@@ -106,22 +107,22 @@ class LIEF_API EnclaveConfiguration {
}
/// Return an iterator over the enclave's imports
- it_imports imports() {
+ it_imports imports() LIEF_LIFETIMEBOUND {
return imports_;
}
- it_const_imports imports() const {
+ it_const_imports imports() const LIEF_LIFETIMEBOUND {
return imports_;
}
/// The family identifier that the author of the enclave assigned to the
/// enclave.
- const id_array_t& family_id() const {
+ const id_array_t& family_id() const LIEF_LIFETIMEBOUND {
return family_id_;
}
/// The image identifier that the author of the enclave assigned to the enclave.
- const id_array_t& image_id() const {
+ const id_array_t& image_id() const LIEF_LIFETIMEBOUND {
return image_id_;
}
@@ -153,7 +154,7 @@ class LIEF_API EnclaveConfiguration {
return enclave_flags_;
}
- EnclaveConfiguration& size(uint32_t value) {
+ EnclaveConfiguration& size(uint32_t value) LIEF_LIFETIMEBOUND {
size_ = value;
return *this;
}
@@ -163,69 +164,68 @@ class LIEF_API EnclaveConfiguration {
return *this;
}
- EnclaveConfiguration& policy_flags(uint32_t value) {
+ EnclaveConfiguration& policy_flags(uint32_t value) LIEF_LIFETIMEBOUND {
policy_flags_ = value;
return *this;
}
- EnclaveConfiguration& import_list_rva(uint32_t value) {
+ EnclaveConfiguration& import_list_rva(uint32_t value) LIEF_LIFETIMEBOUND {
imports_list_rva_ = value;
return *this;
}
- EnclaveConfiguration& import_entry_size(uint32_t value) {
+ EnclaveConfiguration& import_entry_size(uint32_t value) LIEF_LIFETIMEBOUND {
import_entry_size_ = value;
return *this;
}
- EnclaveConfiguration& family_id(const id_array_t& value) {
+ EnclaveConfiguration& family_id(const id_array_t& value) LIEF_LIFETIMEBOUND {
family_id_ = value;
return *this;
}
- EnclaveConfiguration& image_id(const id_array_t& value) {
+ EnclaveConfiguration& image_id(const id_array_t& value) LIEF_LIFETIMEBOUND {
image_id_ = value;
return *this;
}
- EnclaveConfiguration& image_version(uint32_t value) {
+ EnclaveConfiguration& image_version(uint32_t value) LIEF_LIFETIMEBOUND {
image_version_ = value;
return *this;
}
- EnclaveConfiguration& security_version(uint32_t value) {
+ EnclaveConfiguration& security_version(uint32_t value) LIEF_LIFETIMEBOUND {
security_version_ = value;
return *this;
}
- EnclaveConfiguration& enclave_size(uint64_t value) {
+ EnclaveConfiguration& enclave_size(uint64_t value) LIEF_LIFETIMEBOUND {
enclave_size_ = value;
return *this;
}
- EnclaveConfiguration& nb_threads(uint32_t value) {
+ EnclaveConfiguration& nb_threads(uint32_t value) LIEF_LIFETIMEBOUND {
nb_threads_ = value;
return *this;
}
- EnclaveConfiguration& enclave_flags(uint32_t value) {
+ EnclaveConfiguration& enclave_flags(uint32_t value) LIEF_LIFETIMEBOUND {
enclave_flags_ = value;
return *this;
}
std::string to_string() const;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const EnclaveConfiguration& meta)
- {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const EnclaveConfiguration& meta) {
os << meta.to_string();
return os;
}
- /// \private
+ /// @private
template<class PE_T>
LIEF_LOCAL static std::unique_ptr<EnclaveConfiguration>
- parse(Parser& ctx, BinaryStream& stream);
+ parse(Parser& ctx, BinaryStream& stream);
private:
uint32_t size_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/EnclaveImport.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/EnclaveImport.hpp
index 5eea0597d68..e7d8b63aacb 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/EnclaveImport.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/EnclaveImport.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -48,7 +48,7 @@ class LIEF_API EnclaveImport {
/// of all zeros, the imported image must be part of the Windows installation.
AUTHOR_ID = 0x00000002,
- /// The value of the enclave family identifier of the image must match the
+ /// The value of the enclave family identifier of the image must match the
/// value in the import record. Otherwise, loading of the image fails.
FAMILY_ID = 0x00000003,
@@ -82,17 +82,17 @@ class LIEF_API EnclaveImport {
/// The unique identifier of the primary module for the enclave, if the type()
/// is TYPE::UNIQUE_ID. Otherwise, the author identifier of the primary module
/// for the enclave.
- const long_id_t& id() const {
+ const long_id_t& id() const LIEF_LIFETIMEBOUND {
return id_;
}
/// The family identifier of the primary module for the enclave.
- const short_id_t& family_id() const {
+ const short_id_t& family_id() const LIEF_LIFETIMEBOUND {
return family_id_;
}
/// The image identifier of the primary module for the enclave.
- const short_id_t& image_id() const {
+ const short_id_t& image_id() const LIEF_LIFETIMEBOUND {
return image_id_;
}
@@ -103,7 +103,7 @@ class LIEF_API EnclaveImport {
}
/// Resolved import name
- const std::string& import_name() const {
+ const std::string& import_name() const LIEF_LIFETIMEBOUND {
return import_name_;
}
@@ -112,63 +112,61 @@ class LIEF_API EnclaveImport {
return reserved_;
}
- EnclaveImport& type(TYPE ty) {
+ EnclaveImport& type(TYPE ty) LIEF_LIFETIMEBOUND {
type_ = ty;
return *this;
}
- EnclaveImport& min_security_version(uint32_t value) {
+ EnclaveImport& min_security_version(uint32_t value) LIEF_LIFETIMEBOUND {
min_security_version_ = value;
return *this;
}
- EnclaveImport& id(const long_id_t& value) {
+ EnclaveImport& id(const long_id_t& value) LIEF_LIFETIMEBOUND {
id_ = value;
return *this;
}
- EnclaveImport& family_id(const short_id_t& value) {
+ EnclaveImport& family_id(const short_id_t& value) LIEF_LIFETIMEBOUND {
family_id_ = value;
return *this;
}
- EnclaveImport& image_id(const short_id_t& value) {
+ EnclaveImport& image_id(const short_id_t& value) LIEF_LIFETIMEBOUND {
image_id_ = value;
return *this;
}
- EnclaveImport& import_name_rva(uint32_t value) {
+ EnclaveImport& import_name_rva(uint32_t value) LIEF_LIFETIMEBOUND {
import_name_rva_ = value;
return *this;
}
- EnclaveImport& reserved(uint32_t value) {
+ EnclaveImport& reserved(uint32_t value) LIEF_LIFETIMEBOUND {
reserved_ = value;
return *this;
}
- EnclaveImport& import_name(std::string name) {
+ EnclaveImport& import_name(std::string name) LIEF_LIFETIMEBOUND {
import_name_ = std::move(name);
return *this;
}
std::string to_string() const;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const EnclaveImport& meta)
- {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const EnclaveImport& meta) {
os << meta.to_string();
return os;
}
- /// \private
- LIEF_LOCAL static result<EnclaveImport>
- parse(Parser& ctx, BinaryStream& stream);
+ /// @private
+ LIEF_LOCAL static result<EnclaveImport> parse(Parser& ctx, BinaryStream& stream);
private:
TYPE type_ = TYPE::NONE;
uint32_t min_security_version_ = 0;
- long_id_t id_;
+ long_id_t id_ = {0};
short_id_t family_id_ = {0};
short_id_t image_id_ = {0};
uint32_t import_name_rva_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/LoadConfiguration.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/LoadConfiguration.hpp
index c9e45c47025..5c84454ce7e 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/LoadConfiguration.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/LoadConfiguration.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -42,7 +42,8 @@ class VolatileMetadata;
///
/// This structure is frequently updated by Microsoft to add new metadata.
///
-/// Reference: https://github.com/MicrosoftDocs/sdk-api/blob/cbeab4d371e8bc7e352c4d3a4c5819caa08c6a1c/sdk-api-src/content/winnt/ns-winnt-image_load_config_directory64.md#L2
+/// Reference:
+/// https://github.com/MicrosoftDocs/sdk-api/blob/cbeab4d371e8bc7e352c4d3a4c5819caa08c6a1c/sdk-api-src/content/winnt/ns-winnt-image_load_config_directory64.md#L2
class LIEF_API LoadConfiguration : public Object {
public:
friend class Parser;
@@ -114,12 +115,14 @@ class LIEF_API LoadConfiguration : public Object {
using it_const_guard_functions = const_ref_iterator<const guard_functions_t&>;
using dynamic_relocations_t = std::vector<std::unique_ptr<DynamicRelocation>>;
- using it_dynamic_relocations_t = ref_iterator<dynamic_relocations_t&, DynamicRelocation*>;
- using it_const_dynamic_relocations_t = const_ref_iterator<const dynamic_relocations_t&, const DynamicRelocation*>;
+ using it_dynamic_relocations_t =
+ ref_iterator<dynamic_relocations_t&, DynamicRelocation*>;
+ using it_const_dynamic_relocations_t =
+ const_ref_iterator<const dynamic_relocations_t&, const DynamicRelocation*>;
template<class PE_T>
- static LIEF_LOCAL
- std::unique_ptr<LoadConfiguration> parse(Parser& ctx, BinaryStream& stream);
+ static LIEF_LOCAL std::unique_ptr<LoadConfiguration> parse(Parser& ctx,
+ BinaryStream& stream);
LoadConfiguration();
@@ -254,7 +257,7 @@ class LIEF_API LoadConfiguration : public Object {
}
/// Return the list of the function RVA in the SEH table (if any)
- const std::vector<uint32_t>& seh_functions() const {
+ const std::vector<uint32_t>& seh_functions() const LIEF_LIFETIMEBOUND {
return seh_rva_;
}
@@ -281,11 +284,11 @@ class LIEF_API LoadConfiguration : public Object {
/// Iterator over the Control Flow Guard functions referenced by
/// guard_cf_function_table()
- it_const_guard_functions guard_cf_functions() const {
+ it_const_guard_functions guard_cf_functions() const LIEF_LIFETIMEBOUND {
return guard_cf_functions_;
}
- it_guard_functions guard_cf_functions() {
+ it_guard_functions guard_cf_functions() LIEF_LIFETIMEBOUND {
return guard_cf_functions_;
}
@@ -306,11 +309,11 @@ class LIEF_API LoadConfiguration : public Object {
std::vector<IMAGE_GUARD> guard_cf_flags_list() const;
/// Code integrity information.
- const CodeIntegrity* code_integrity() const {
+ const CodeIntegrity* code_integrity() const LIEF_LIFETIMEBOUND {
return code_integrity_ ? &*code_integrity_ : nullptr;
}
- CodeIntegrity* code_integrity() {
+ CodeIntegrity* code_integrity() LIEF_LIFETIMEBOUND {
return code_integrity_ ? &*code_integrity_ : nullptr;
}
@@ -360,11 +363,11 @@ class LIEF_API LoadConfiguration : public Object {
}
/// Return an iterator over the Dynamic relocations (DVRT)
- it_dynamic_relocations_t dynamic_relocations() {
+ it_dynamic_relocations_t dynamic_relocations() LIEF_LIFETIMEBOUND {
return dynamic_relocs_;
}
- it_const_dynamic_relocations_t dynamic_relocations() const {
+ it_const_dynamic_relocations_t dynamic_relocations() const LIEF_LIFETIMEBOUND {
return dynamic_relocs_;
}
@@ -379,11 +382,11 @@ class LIEF_API LoadConfiguration : public Object {
}
/// Compiled Hybrid Portable Executable (CHPE) metadata (if any)
- const CHPEMetadata* chpe_metadata() const {
+ const CHPEMetadata* chpe_metadata() const LIEF_LIFETIMEBOUND {
return chpe_.get();
}
- CHPEMetadata* chpe_metadata() {
+ CHPEMetadata* chpe_metadata() LIEF_LIFETIMEBOUND {
return chpe_.get();
}
@@ -430,11 +433,11 @@ class LIEF_API LoadConfiguration : public Object {
return enclave_configuration_ptr_;
}
- const EnclaveConfiguration* enclave_config() const {
+ const EnclaveConfiguration* enclave_config() const LIEF_LIFETIMEBOUND {
return enclave_config_.get();
}
- EnclaveConfiguration* enclave_config() {
+ EnclaveConfiguration* enclave_config() LIEF_LIFETIMEBOUND {
return enclave_config_.get();
}
@@ -490,221 +493,255 @@ class LIEF_API LoadConfiguration : public Object {
return uma_function_pointers_;
}
- LoadConfiguration& characteristics(uint32_t characteristics) {
+ LoadConfiguration& characteristics(uint32_t characteristics) LIEF_LIFETIMEBOUND {
characteristics_ = characteristics;
return *this;
}
- LoadConfiguration& size(uint32_t value) {
+ LoadConfiguration& size(uint32_t value) LIEF_LIFETIMEBOUND {
return characteristics(value);
}
- LoadConfiguration& timedatestamp(uint32_t timedatestamp) {
+ LoadConfiguration& timedatestamp(uint32_t timedatestamp) LIEF_LIFETIMEBOUND {
timedatestamp_ = timedatestamp;
return *this;
}
- LoadConfiguration& major_version(uint16_t major_version) {
+ LoadConfiguration& major_version(uint16_t major_version) LIEF_LIFETIMEBOUND {
major_version_ = major_version;
return *this;
}
- LoadConfiguration& minor_version(uint16_t minor_version) {
+ LoadConfiguration& minor_version(uint16_t minor_version) LIEF_LIFETIMEBOUND {
minor_version_ = minor_version;
return *this;
}
- LoadConfiguration& global_flags_clear(uint32_t global_flags_clear) {
+ LoadConfiguration&
+ global_flags_clear(uint32_t global_flags_clear) LIEF_LIFETIMEBOUND {
global_flags_clear_ = global_flags_clear;
return *this;
}
- LoadConfiguration& global_flags_set(uint32_t global_flags_set) {
+ LoadConfiguration&
+ global_flags_set(uint32_t global_flags_set) LIEF_LIFETIMEBOUND {
global_flags_set_ = global_flags_set;
return *this;
}
- LoadConfiguration& critical_section_default_timeout(uint32_t critical_section_default_timeout) {
+ LoadConfiguration& critical_section_default_timeout(
+ uint32_t critical_section_default_timeout
+ ) LIEF_LIFETIMEBOUND {
critical_section_default_timeout_ = critical_section_default_timeout;
return *this;
}
- LoadConfiguration& decommit_free_block_threshold(uint64_t decommit_free_block_threshold) {
+ LoadConfiguration& decommit_free_block_threshold(
+ uint64_t decommit_free_block_threshold
+ ) LIEF_LIFETIMEBOUND {
decommit_free_block_threshold_ = decommit_free_block_threshold;
return *this;
}
- LoadConfiguration& decommit_total_free_threshold(uint64_t decommit_total_free_threshold) {
+ LoadConfiguration& decommit_total_free_threshold(
+ uint64_t decommit_total_free_threshold
+ ) LIEF_LIFETIMEBOUND {
decommit_total_free_threshold_ = decommit_total_free_threshold;
return *this;
}
- LoadConfiguration& lock_prefix_table(uint64_t lock_prefix_table) {
+ LoadConfiguration&
+ lock_prefix_table(uint64_t lock_prefix_table) LIEF_LIFETIMEBOUND {
lock_prefix_table_ = lock_prefix_table;
return *this;
}
- LoadConfiguration& maximum_allocation_size(uint64_t maximum_allocation_size) {
+ LoadConfiguration& maximum_allocation_size(
+ uint64_t maximum_allocation_size
+ ) LIEF_LIFETIMEBOUND {
maximum_allocation_size_ = maximum_allocation_size;
return *this;
}
- LoadConfiguration& virtual_memory_threshold(uint64_t virtual_memory_threshold) {
+ LoadConfiguration& virtual_memory_threshold(
+ uint64_t virtual_memory_threshold
+ ) LIEF_LIFETIMEBOUND {
virtual_memory_threshold_ = virtual_memory_threshold;
return *this;
}
- LoadConfiguration& process_affinity_mask(uint64_t process_affinity_mask) {
+ LoadConfiguration&
+ process_affinity_mask(uint64_t process_affinity_mask) LIEF_LIFETIMEBOUND {
process_affinity_mask_ = process_affinity_mask;
return *this;
}
- LoadConfiguration& process_heap_flags(uint32_t process_heap_flagsid) {
+ LoadConfiguration&
+ process_heap_flags(uint32_t process_heap_flagsid) LIEF_LIFETIMEBOUND {
process_heap_flags_ = process_heap_flagsid;
return *this;
}
- LoadConfiguration& csd_version(uint16_t csd_version) {
+ LoadConfiguration& csd_version(uint16_t csd_version) LIEF_LIFETIMEBOUND {
csd_version_ = csd_version;
return *this;
}
- LoadConfiguration& reserved1(uint16_t reserved1) {
+ LoadConfiguration& reserved1(uint16_t reserved1) LIEF_LIFETIMEBOUND {
reserved1_ = reserved1;
return *this;
}
- LoadConfiguration& dependent_load_flags(uint16_t flags) {
+ LoadConfiguration& dependent_load_flags(uint16_t flags) LIEF_LIFETIMEBOUND {
reserved1(flags);
return *this;
}
- LoadConfiguration& editlist(uint64_t editlist) {
+ LoadConfiguration& editlist(uint64_t editlist) LIEF_LIFETIMEBOUND {
editlist_ = editlist;
return *this;
}
- LoadConfiguration& security_cookie(uint64_t security_cookie) {
+ LoadConfiguration& security_cookie(uint64_t security_cookie) LIEF_LIFETIMEBOUND {
security_cookie_ = security_cookie;
return *this;
}
- LoadConfiguration& se_handler_table(uint64_t se_handler_table) {
+ LoadConfiguration&
+ se_handler_table(uint64_t se_handler_table) LIEF_LIFETIMEBOUND {
se_handler_table_ = se_handler_table;
return *this;
}
- LoadConfiguration& se_handler_count(uint64_t se_handler_count) {
+ LoadConfiguration&
+ se_handler_count(uint64_t se_handler_count) LIEF_LIFETIMEBOUND {
se_handler_count_ = se_handler_count;
return *this;
}
- LoadConfiguration& guard_cf_check_function_pointer(uint64_t check_pointer) {
+ LoadConfiguration&
+ guard_cf_check_function_pointer(uint64_t check_pointer) LIEF_LIFETIMEBOUND {
guard_cf_check_function_pointer_ = check_pointer;
return *this;
}
- LoadConfiguration& guard_cf_dispatch_function_pointer(uint64_t dispatch_pointer) {
+ LoadConfiguration& guard_cf_dispatch_function_pointer(
+ uint64_t dispatch_pointer
+ ) LIEF_LIFETIMEBOUND {
guard_cf_dispatch_function_pointer_ = dispatch_pointer;
return *this;
}
- LoadConfiguration& guard_cf_function_table(uint64_t guard_cf_function_table) {
+ LoadConfiguration& guard_cf_function_table(
+ uint64_t guard_cf_function_table
+ ) LIEF_LIFETIMEBOUND {
guard_cf_function_table_ = guard_cf_function_table;
return *this;
}
- LoadConfiguration& guard_cf_function_count(uint64_t guard_cf_function_count) {
+ LoadConfiguration& guard_cf_function_count(
+ uint64_t guard_cf_function_count
+ ) LIEF_LIFETIMEBOUND {
guard_cf_function_count_ = guard_cf_function_count;
return *this;
}
- LoadConfiguration& guard_flags(IMAGE_GUARD flags) {
+ LoadConfiguration& guard_flags(IMAGE_GUARD flags) LIEF_LIFETIMEBOUND {
flags_ = (uint32_t)flags;
return *this;
}
- LoadConfiguration& guard_flags(uint32_t flags) {
+ LoadConfiguration& guard_flags(uint32_t flags) LIEF_LIFETIMEBOUND {
flags_ = flags;
return *this;
}
- LoadConfiguration& code_integrity(CodeIntegrity CI) {
+ LoadConfiguration& code_integrity(CodeIntegrity CI) LIEF_LIFETIMEBOUND {
code_integrity_ = std::move(CI);
return *this;
}
- LoadConfiguration& guard_address_taken_iat_entry_table(uint64_t value) {
+ LoadConfiguration&
+ guard_address_taken_iat_entry_table(uint64_t value) LIEF_LIFETIMEBOUND {
guard_address_taken_iat_entry_table_ = value;
return *this;
}
- LoadConfiguration& guard_address_taken_iat_entry_count(uint64_t value) {
+ LoadConfiguration&
+ guard_address_taken_iat_entry_count(uint64_t value) LIEF_LIFETIMEBOUND {
guard_address_taken_iat_entry_count_ = value;
return *this;
}
- LoadConfiguration& guard_long_jump_target_table(uint64_t value) {
+ LoadConfiguration&
+ guard_long_jump_target_table(uint64_t value) LIEF_LIFETIMEBOUND {
guard_long_jump_target_table_ = value;
return *this;
}
- LoadConfiguration& guard_long_jump_target_count(uint64_t value) {
+ LoadConfiguration&
+ guard_long_jump_target_count(uint64_t value) LIEF_LIFETIMEBOUND {
guard_long_jump_target_count_ = value;
return *this;
}
- LoadConfiguration& dynamic_value_reloc_table(uint64_t value) {
+ LoadConfiguration& dynamic_value_reloc_table(uint64_t value) LIEF_LIFETIMEBOUND {
dynamic_value_reloc_table_ = value;
return *this;
}
- LoadConfiguration& hybrid_metadata_pointer(uint64_t value) {
+ LoadConfiguration& hybrid_metadata_pointer(uint64_t value) LIEF_LIFETIMEBOUND {
hybrid_metadata_pointer_ = value;
return *this;
}
- LoadConfiguration& guard_rf_failure_routine(uint64_t value) {
+ LoadConfiguration& guard_rf_failure_routine(uint64_t value) LIEF_LIFETIMEBOUND {
guard_rf_failure_routine_ = value;
return *this;
}
- LoadConfiguration& guard_rf_failure_routine_function_pointer(uint64_t value) {
+ LoadConfiguration& guard_rf_failure_routine_function_pointer(
+ uint64_t value
+ ) LIEF_LIFETIMEBOUND {
guard_rf_failure_routine_function_pointer_ = value;
return *this;
}
- LoadConfiguration& dynamic_value_reloctable_offset(uint32_t value) {
+ LoadConfiguration&
+ dynamic_value_reloctable_offset(uint32_t value) LIEF_LIFETIMEBOUND {
dynamic_value_reloctable_offset_ = value;
return *this;
}
- LoadConfiguration& dynamic_value_reloctable_section(uint16_t value) {
+ LoadConfiguration&
+ dynamic_value_reloctable_section(uint16_t value) LIEF_LIFETIMEBOUND {
dynamic_value_reloctable_section_ = value;
return *this;
}
- LoadConfiguration& reserved2(uint16_t value) {
+ LoadConfiguration& reserved2(uint16_t value) LIEF_LIFETIMEBOUND {
reserved2_ = value;
return *this;
}
- LoadConfiguration& guard_rf_verify_stackpointer_function_pointer(uint64_t value) {
+ LoadConfiguration& guard_rf_verify_stackpointer_function_pointer(
+ uint64_t value
+ ) LIEF_LIFETIMEBOUND {
guardrf_verify_stackpointer_function_pointer_ = value;
return *this;
}
- LoadConfiguration& hotpatch_table_offset(uint32_t value) {
+ LoadConfiguration& hotpatch_table_offset(uint32_t value) LIEF_LIFETIMEBOUND {
hotpatch_table_offset_ = value;
return *this;
}
- LoadConfiguration& reserved3(uint32_t value) {
+ LoadConfiguration& reserved3(uint32_t value) LIEF_LIFETIMEBOUND {
reserved3_ = value;
return *this;
}
- LoadConfiguration& enclave_configuration_ptr(uint64_t value) {
+ LoadConfiguration& enclave_configuration_ptr(uint64_t value) LIEF_LIFETIMEBOUND {
enclave_configuration_ptr_ = value;
return *this;
}
@@ -760,40 +797,40 @@ class LIEF_API LoadConfiguration : public Object {
std::string to_string() const;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const LoadConfiguration& config)
- {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const LoadConfiguration& config) {
os << config.to_string();
return os;
}
- /// \private
- LIEF_LOCAL static ok_error_t parse_seh_table(
- Parser& ctx, BinaryStream& stream, LoadConfiguration& config);
+ /// @private
+ LIEF_LOCAL static ok_error_t parse_seh_table(Parser& ctx, BinaryStream& stream,
+ LoadConfiguration& config);
- /// \private
- LIEF_LOCAL static ok_error_t parse_guard_functions(
- Parser& ctx, BinaryStream& stream, LoadConfiguration& config,
- size_t count, guard_functions_t LoadConfiguration::* dst);
+ /// @private
+ LIEF_LOCAL static ok_error_t
+ parse_guard_functions(Parser& ctx, BinaryStream& stream,
+ LoadConfiguration& config, size_t count,
+ guard_functions_t LoadConfiguration::* dst);
- /// \private
- LIEF_LOCAL static ok_error_t parse_dyn_relocs(
- Parser& ctx, LoadConfiguration& config);
+ /// @private
+ LIEF_LOCAL static ok_error_t parse_dyn_relocs(Parser& ctx,
+ LoadConfiguration& config);
- /// \private
+ /// @private
template<uint8_t version, class PE_T>
- LIEF_LOCAL static ok_error_t parse_dyn_relocs_entries(
- Parser& ctx, BinaryStream& stream, LoadConfiguration& config,
- size_t size);
+ LIEF_LOCAL static ok_error_t
+ parse_dyn_relocs_entries(Parser& ctx, BinaryStream& stream,
+ LoadConfiguration& config, size_t size);
- /// \private
+ /// @private
template<class PE_T>
- LIEF_LOCAL static ok_error_t parse_enclave_config(
- Parser& ctx, LoadConfiguration& config);
+ LIEF_LOCAL static ok_error_t parse_enclave_config(Parser& ctx,
+ LoadConfiguration& config);
- /// \private
- LIEF_LOCAL static ok_error_t parse_volatile_metadata(
- Parser& ctx, LoadConfiguration& config);
+ /// @private
+ LIEF_LOCAL static ok_error_t parse_volatile_metadata(Parser& ctx,
+ LoadConfiguration& config);
protected:
uint32_t characteristics_ = 0;
@@ -816,7 +853,7 @@ class LIEF_API LoadConfiguration : public Object {
uint64_t process_affinity_mask_ = 0;
uint32_t process_heap_flags_ = 0;
uint16_t csd_version_ = 0;
- uint16_t reserved1_ = 0; // named DependentLoadFlags in recent headers
+ uint16_t reserved1_ = 0; // named DependentLoadFlags in recent headers
uint64_t editlist_ = 0;
uint64_t security_cookie_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/LoadConfigurations/VolatileMetadata.hpp b/deps/LIEF/include/LIEF/PE/LoadConfigurations/VolatileMetadata.hpp
index 073ccabc48a..495f305ac41 100644
--- a/deps/LIEF/include/LIEF/PE/LoadConfigurations/VolatileMetadata.hpp
+++ b/deps/LIEF/include/LIEF/PE/LoadConfigurations/VolatileMetadata.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -76,7 +76,7 @@ class LIEF_API VolatileMetadata {
return access_table_rva_;
}
- const access_table_t& access_table() const {
+ const access_table_t& access_table() const LIEF_LIFETIMEBOUND {
return access_table_;
}
@@ -89,55 +89,55 @@ class LIEF_API VolatileMetadata {
}
uint32_t info_ranges_size() const {
- static_assert(sizeof(range_t) == 8, "Can't be used for computing the raw size");
+ static_assert(sizeof(range_t) == 8,
+ "Can't be used for computing the raw size");
return info_ranges_.size() * sizeof(range_t);
}
- it_const_info_ranges_t info_ranges() const {
+ it_const_info_ranges_t info_ranges() const LIEF_LIFETIMEBOUND {
return info_ranges_;
}
- it_info_ranges_t info_ranges() {
+ it_info_ranges_t info_ranges() LIEF_LIFETIMEBOUND {
return info_ranges_;
}
- VolatileMetadata& size(uint32_t value) {
+ VolatileMetadata& size(uint32_t value) LIEF_LIFETIMEBOUND {
size_ = value;
return *this;
}
- VolatileMetadata& min_version(uint16_t min) {
+ VolatileMetadata& min_version(uint16_t min) LIEF_LIFETIMEBOUND {
min_version_ = min;
return *this;
}
- VolatileMetadata& max_version(uint16_t max) {
+ VolatileMetadata& max_version(uint16_t max) LIEF_LIFETIMEBOUND {
max_version_ = max;
return *this;
}
- VolatileMetadata& access_table_rva(uint32_t value) {
+ VolatileMetadata& access_table_rva(uint32_t value) LIEF_LIFETIMEBOUND {
access_table_rva_ = value;
return *this;
}
- VolatileMetadata& info_range_rva(uint32_t value) {
+ VolatileMetadata& info_range_rva(uint32_t value) LIEF_LIFETIMEBOUND {
info_range_rva_ = value;
return *this;
}
std::string to_string() const;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const VolatileMetadata& meta)
- {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const VolatileMetadata& meta) {
os << meta.to_string();
return os;
}
- /// \private
- LIEF_LOCAL static std::unique_ptr<VolatileMetadata>
- parse(Parser& ctx, BinaryStream& stream);
+ /// @private
+ LIEF_LOCAL static std::unique_ptr<VolatileMetadata> parse(Parser& ctx,
+ BinaryStream& stream);
private:
uint32_t size_ = 0;
@@ -149,7 +149,6 @@ class LIEF_API VolatileMetadata {
access_table_t access_table_;
info_ranges_t info_ranges_;
-
};
}
}
diff --git a/deps/LIEF/include/LIEF/PE/OptionalHeader.hpp b/deps/LIEF/include/LIEF/PE/OptionalHeader.hpp
index 0a344d45f1e..34c859b2ca1 100644
--- a/deps/LIEF/include/LIEF/PE/OptionalHeader.hpp
+++ b/deps/LIEF/include/LIEF/PE/OptionalHeader.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
#include <vector>
#include <cstdint>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/Object.hpp"
#include "LIEF/visibility.h"
@@ -42,37 +43,60 @@ struct pe64_optional_header;
class LIEF_API OptionalHeader : public Object {
friend class Parser;
friend class Binary;
+
public:
+ enum class DLL_CHARACTERISTICS : size_t {
+ /// ASLR with 64 bit address space.
+ HIGH_ENTROPY_VA = 0x0020,
+
+ /// DLL can be relocated at load time.
+ DYNAMIC_BASE = 0x0040,
+
+ /// Code integrity checks are enforced.
+ FORCE_INTEGRITY = 0x0080,
+
+ /// Image is NX compatible.
+ NX_COMPAT = 0x0100,
+
+ /// Isolation aware, but do not isolate the image.
+ NO_ISOLATION = 0x0200,
+
+ /// Does not use structured exception handling (SEH). No SEH handler may be
+ /// called in this image.
+ NO_SEH = 0x0400,
+
+ /// Do not bind the image.
+ NO_BIND = 0x0800,
+
+ /// Image should execute in an AppContainer.
+ APPCONTAINER = 0x1000,
+
+ /// A WDM driver.
+ WDM_DRIVER = 0x2000,
+
+ /// Image supports Control Flow Guard.
+ GUARD_CF = 0x4000,
- enum class DLL_CHARACTERISTICS: size_t {
- HIGH_ENTROPY_VA = 0x0020, ///< ASLR with 64 bit address space.
- DYNAMIC_BASE = 0x0040, ///< DLL can be relocated at load time.
- FORCE_INTEGRITY = 0x0080, ///< Code integrity checks are enforced.
- NX_COMPAT = 0x0100, ///< Image is NX compatible.
- NO_ISOLATION = 0x0200, ///< Isolation aware, but do not isolate the image.
- NO_SEH = 0x0400, ///< Does not use structured exception handling (SEH). No SEH handler may be called in this image.
- NO_BIND = 0x0800, ///< Do not bind the image.
- APPCONTAINER = 0x1000, ///< Image should execute in an AppContainer.
- WDM_DRIVER = 0x2000, ///< A WDM driver.
- GUARD_CF = 0x4000, ///< Image supports Control Flow Guard.
- TERMINAL_SERVER_AWARE = 0x8000 ///< Terminal Server aware.
+ /// Terminal Server aware.
+ TERMINAL_SERVER_AWARE = 0x8000,
};
- enum class SUBSYSTEM: size_t {
- UNKNOWN = 0, ///< An unknown subsystem.
- NATIVE = 1, ///< Device drivers and native Windows processes
- WINDOWS_GUI = 2, ///< The Windows GUI subsystem.
- WINDOWS_CUI = 3, ///< The Windows character subsystem.
- OS2_CUI = 5, ///< The OS/2 character subsytem.
- POSIX_CUI = 7, ///< The POSIX character subsystem.
- NATIVE_WINDOWS = 8, ///< Native Windows 9x driver.
- WINDOWS_CE_GUI = 9, ///< Windows CE.
- EFI_APPLICATION = 10, ///< An EFI application.
- EFI_BOOT_SERVICE_DRIVER = 11, ///< An EFI driver with boot services.
- EFI_RUNTIME_DRIVER = 12, ///< An EFI driver with run-time services.
- EFI_ROM = 13, ///< An EFI ROM image.
- XBOX = 14, ///< XBOX.
- WINDOWS_BOOT_APPLICATION = 16 ///< A BCD application.
+ enum class SUBSYSTEM : size_t {
+ UNKNOWN = 0, ///< An unknown subsystem.
+ NATIVE = 1, ///< Device drivers and native Windows processes
+ WINDOWS_GUI = 2, ///< The Windows GUI subsystem.
+ WINDOWS_CUI = 3, ///< The Windows character subsystem.
+ OS2_CUI = 5, ///< The OS/2 character subsystem.
+ POSIX_CUI = 7, ///< The POSIX character subsystem.
+ NATIVE_WINDOWS = 8, ///< Native Windows 9x driver.
+ WINDOWS_CE_GUI = 9, ///< Windows CE.
+ EFI_APPLICATION = 10, ///< An EFI application.
+ EFI_BOOT_SERVICE_DRIVER = 11, ///< An EFI driver with boot services.
+ EFI_RUNTIME_DRIVER = 12, ///< An EFI driver with run-time services.
+ EFI_ROM = 13, ///< An EFI ROM image.
+ XBOX = 14, ///< XBOX.
+ WINDOWS_BOOT_APPLICATION = 16, ///< A BCD application.
+ XBOX_CODE_CATALOG = 17, ///< Security Metadata Containers
};
OptionalHeader(const details::pe32_optional_header& header);
@@ -100,34 +124,38 @@ class LIEF_API OptionalHeader : public Object {
}
/// The size of the code ``.text`` section or the sum of
- /// all the sections that contain code (i.e. PE::Section with the flag Section::CHARACTERISTICS::CNT_CODE)
+ /// all the sections that contain code (i.e. PE::Section with the flag
+ /// Section::CHARACTERISTICS::CNT_CODE)
uint32_t sizeof_code() const {
return sizeof_code_;
}
- /// The size of the initialized data which are usually located in the ``.data`` section.
- /// If the initialized data are split across multiple sections, it is the sum of the sections.
+ /// The size of the initialized data which are usually located in the ``.data``
+ /// section. If the initialized data are split across multiple sections, it is
+ /// the sum of the sections.
///
- /// The sections associated with the initialized data are usually identified with the
- /// flag Section::CHARACTERISTICS::CNT_INITIALIZED_DATA
+ /// The sections associated with the initialized data are usually identified with
+ /// the flag Section::CHARACTERISTICS::CNT_INITIALIZED_DATA
uint32_t sizeof_initialized_data() const {
return sizeof_initialized_data_;
}
- /// The size of the uninitialized data which are usually located in the ``.bss`` section.
- /// If the uninitialized data are split across multiple sections, it is the sum of the sections.
+ /// The size of the uninitialized data which are usually located in the ``.bss``
+ /// section. If the uninitialized data are split across multiple sections, it is
+ /// the sum of the sections.
///
- /// The sections associated with the uninitialized data are usually identified with the
- /// flag Section::CHARACTERISTICS::CNT_UNINITIALIZED_DATA
+ /// The sections associated with the uninitialized data are usually identified
+ /// with the flag Section::CHARACTERISTICS::CNT_UNINITIALIZED_DATA
uint32_t sizeof_uninitialized_data() const {
return sizeof_uninitialized_data_;
}
- /// The address of the entry point relative to the image base when the executable file is
- /// loaded into memory. For program images, this is the starting address. For device
- /// drivers, this is the address of the initialization function.
+ /// The address of the entry point relative to the image base when the executable
+ /// file is loaded into memory. For program images, this is the starting address.
+ /// For device drivers, this is the address of the initialization function.
///
- /// An entry point is optional for DLLs. When no entry point is present, this field must be zero.
+ /// An entry point is optional for DLLs. When no entry point is present, this
+ /// field must be zero.
uint32_t addressof_entrypoint() const {
return entrypoint_;
}
@@ -157,8 +185,8 @@ class LIEF_API OptionalHeader : public Object {
return section_align_;
}
- /// The section's file alignment. This value must be a power of 2 between 512 and 64K.
- /// The default value is usually 512
+ /// The section's file alignment. This value must be a power of 2 between 512 and
+ /// 64K. The default value is usually 512
uint32_t file_alignment() const {
return file_align_;
}
@@ -199,22 +227,27 @@ class LIEF_API OptionalHeader : public Object {
return win32_version_value_;
}
- /// The size (in bytes) of the image, including all headers, as the image is loaded in memory.
+ /// The size (in bytes) of the image, including all headers, as the image is
+ /// loaded in memory.
///
- /// It must be a multiple of section_alignment and should match Binary::virtual_size
+ /// It must be a multiple of section_alignment and should match
+ /// Binary::virtual_size
uint32_t sizeof_image() const {
return sizeof_image_;
}
- /// Size of the DosHeader + PE Header + Section headers rounded up to a multiple of the file_alignment
+ /// Size of the DosHeader + PE Header + Section headers rounded up to a multiple
+ /// of the file_alignment
uint32_t sizeof_headers() const {
return sizeof_headers_;
}
- /// The image file checksum. The algorithm for computing the checksum is incorporated into ``IMAGHELP.DLL``.
+ /// The image file checksum. The algorithm for computing the checksum is
+ /// incorporated into ``IMAGHELP.DLL``.
///
- /// The following are checked for validation at load time all **drivers**, any **DLL loaded at boot**
- /// time, and any **DLL** that is loaded into a **critical** Windows process.
+ /// The following are checked for validation at load time all **drivers**, any
+ /// **DLL loaded at boot** time, and any **DLL** that is loaded into a
+ /// **critical** Windows process.
uint32_t checksum() const {
return checksum_;
}
@@ -225,8 +258,8 @@ class LIEF_API OptionalHeader : public Object {
}
/// Some characteristics of the underlying binary like the support of the PIE.
- /// The prefix ``dll`` comes from the official PE specifications but these characteristics
- /// are also used for **executables**
+ /// The prefix ``dll`` comes from the official PE specifications but these
+ /// characteristics are also used for **executables**
uint32_t dll_characteristics() const {
return dll_characteristics_;
}
@@ -254,7 +287,8 @@ class LIEF_API OptionalHeader : public Object {
return sizeof_heap_commit_;
}
- /// According to the PE specifications, this value is *reserved* and **should** be 0.
+ /// According to the PE specifications, this value is *reserved* and **should**
+ /// be 0.
uint32_t loader_flags() const {
return loader_flags_;
}
@@ -269,7 +303,8 @@ class LIEF_API OptionalHeader : public Object {
return (dll_characteristics() & static_cast<uint32_t>(c)) != 0;
}
- /// Return the list of the dll_characteristics as an std::set of DLL_CHARACTERISTICS
+ /// Return the list of the dll_characteristics as an std::set of
+ /// DLL_CHARACTERISTICS
std::vector<DLL_CHARACTERISTICS> dll_characteristics_list() const;
/// Add a DLL_CHARACTERISTICS to the current characteristics
@@ -279,7 +314,7 @@ class LIEF_API OptionalHeader : public Object {
/// Remove a DLL_CHARACTERISTICS from the current characteristics
void remove(DLL_CHARACTERISTICS c) {
- dll_characteristics(dll_characteristics() & (~ static_cast<uint32_t>(c)));
+ dll_characteristics(dll_characteristics() & (~static_cast<uint32_t>(c)));
}
void magic(PE_TYPE magic) {
@@ -404,50 +439,51 @@ class LIEF_API OptionalHeader : public Object {
void accept(Visitor& visitor) const override;
- OptionalHeader& operator+=(DLL_CHARACTERISTICS c) {
+ OptionalHeader& operator+=(DLL_CHARACTERISTICS c) LIEF_LIFETIMEBOUND {
add(c);
return *this;
}
- OptionalHeader& operator-=(DLL_CHARACTERISTICS c) {
+ OptionalHeader& operator-=(DLL_CHARACTERISTICS c) LIEF_LIFETIMEBOUND {
remove(c);
return *this;
}
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const OptionalHeader& entry);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const OptionalHeader& entry);
private:
OptionalHeader() = default;
- PE_TYPE magic_ = PE_TYPE::PE32;
- uint8_t major_linker_version_ = 0;
- uint8_t minor_linker_version_ = 0;
- uint32_t sizeof_code_ = 0;
- uint32_t sizeof_initialized_data_ = 0;
- uint32_t sizeof_uninitialized_data_ = 0;
- uint32_t entrypoint_ = 0;
- uint32_t baseof_code_ = 0;
- uint32_t baseof_data_ = 0;
- uint64_t imagebase_ = 0;
- uint32_t section_align_ = 0;
- uint32_t file_align_ = 0;
- uint16_t major_os_version_ = 0;
- uint16_t minor_os_version_ = 0;
- uint16_t major_image_version_ = 0;
- uint16_t minor_image_version_ = 0;
- uint16_t major_subsys_version_ = 0;
- uint16_t minor_subsys_version_ = 0;
- uint32_t win32_version_value_ = 0;
- uint32_t sizeof_image_ = 0;
- uint32_t sizeof_headers_ = 0;
- uint32_t checksum_ = 0;
+ PE_TYPE magic_ = PE_TYPE::PE32;
+ uint8_t major_linker_version_ = 0;
+ uint8_t minor_linker_version_ = 0;
+ uint32_t sizeof_code_ = 0;
+ uint32_t sizeof_initialized_data_ = 0;
+ uint32_t sizeof_uninitialized_data_ = 0;
+ uint32_t entrypoint_ = 0;
+ uint32_t baseof_code_ = 0;
+ uint32_t baseof_data_ = 0;
+ uint64_t imagebase_ = 0;
+ uint32_t section_align_ = 0;
+ uint32_t file_align_ = 0;
+ uint16_t major_os_version_ = 0;
+ uint16_t minor_os_version_ = 0;
+ uint16_t major_image_version_ = 0;
+ uint16_t minor_image_version_ = 0;
+ uint16_t major_subsys_version_ = 0;
+ uint16_t minor_subsys_version_ = 0;
+ uint32_t win32_version_value_ = 0;
+ uint32_t sizeof_image_ = 0;
+ uint32_t sizeof_headers_ = 0;
+ uint32_t checksum_ = 0;
SUBSYSTEM subsystem_ = SUBSYSTEM::UNKNOWN;
- uint32_t dll_characteristics_ = 0;
- uint64_t sizeof_stack_reserve_ = 0;
- uint64_t sizeof_stack_commit_ = 0;
- uint64_t sizeof_heap_reserve_ = 0;
- uint64_t sizeof_heap_commit_ = 0;
- uint32_t loader_flags_ = 0;
- uint32_t nb_rva_size_ = 0;
+ uint32_t dll_characteristics_ = 0;
+ uint64_t sizeof_stack_reserve_ = 0;
+ uint64_t sizeof_stack_commit_ = 0;
+ uint64_t sizeof_heap_reserve_ = 0;
+ uint64_t sizeof_heap_commit_ = 0;
+ uint32_t loader_flags_ = 0;
+ uint32_t nb_rva_size_ = 0;
};
LIEF_API const char* to_string(OptionalHeader::DLL_CHARACTERISTICS);
diff --git a/deps/LIEF/include/LIEF/PE/Parser.hpp b/deps/LIEF/include/LIEF/PE/Parser.hpp
index 142e47b9122..1af350655dd 100644
--- a/deps/LIEF/include/LIEF/PE/Parser.hpp
+++ b/deps/LIEF/include/LIEF/PE/Parser.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -45,18 +45,25 @@ class RelocationEntry;
namespace details {
struct pe_debug;
+struct pe_section;
}
-/// Main interface to parse PE binaries. In particular the **static** functions:
-/// Parser::parse should be used to get a LIEF::PE::Binary
+/// Main interface to parse PE binaries. In particular, the **static**
+/// Parser::parse functions should be used to get a LIEF::PE::Binary instance.
class LIEF_API Parser : public LIEF::Parser {
public:
-
/// Maximum size of the data read
static constexpr size_t MAX_DATA_SIZE = 3_GB;
static constexpr size_t MAX_TLS_CALLBACKS = 3000;
+ // Bounds the import thunk loop to prevent hangs on malformed IATs
+ static constexpr size_t MAX_IMPORT_ENTRIES = 0x10000;
+
+ // Bounds peek_string_at to prevent multi-megabyte reads on invalid RVAs
+ // According to https://stackoverflow.com/a/23340781
+ static constexpr size_t MAX_IMPORT_NAME_SIZE = 0x1000;
+
// According to https://stackoverflow.com/a/265782/87207
static constexpr size_t MAX_DLL_NAME_SIZE = 255;
@@ -66,36 +73,76 @@ class LIEF_API Parser : public LIEF::Parser {
public:
/// Check if the given name is a valid import.
///
- /// This check verified that:
- /// 1. The name is not too large or empty (cf. https://stackoverflow.com/a/23340781)
+ /// This check verifies that:
+ /// 1. The name is not too large or empty (cf.
+ /// https://stackoverflow.com/a/23340781)
/// 2. All the characters are printable
static bool is_valid_import_name(const std::string& name);
/// Check if the given name is a valid DLL name.
///
/// This check verifies that:
- /// 1. The name of the DLL is at 4
+ /// 1. The name of the DLL is at least 4 characters long
/// 2. All the characters are printable
static bool is_valid_dll_name(const std::string& name);
public:
/// Parse a PE binary from the given filename
- static std::unique_ptr<Binary> parse(const std::string& filename,
- const ParserConfig& conf = ParserConfig::default_conf());
+ static std::unique_ptr<Binary>
+ parse(const std::string& filename,
+ const ParserConfig& conf = ParserConfig::default_conf());
/// Parse a PE binary from a data buffer
- static std::unique_ptr<Binary> parse(std::vector<uint8_t> data,
- const ParserConfig& conf = ParserConfig::default_conf());
+ static std::unique_ptr<Binary>
+ parse(std::vector<uint8_t> data,
+ const ParserConfig& conf = ParserConfig::default_conf());
- static std::unique_ptr<Binary> parse(const uint8_t* buffer, size_t size,
- const ParserConfig& conf = ParserConfig::default_conf());
+ static std::unique_ptr<Binary>
+ parse(const uint8_t* buffer, size_t size,
+ const ParserConfig& conf = ParserConfig::default_conf());
/// Parse a PE binary from the given BinaryStream
- static std::unique_ptr<Binary> parse(std::unique_ptr<BinaryStream> stream,
- const ParserConfig& conf = ParserConfig::default_conf());
+ static std::unique_ptr<Binary>
+ parse(std::unique_ptr<BinaryStream> stream,
+ const ParserConfig& conf = ParserConfig::default_conf());
+
+ /// Parse the PE binary at the given memory address
+ static std::unique_ptr<Binary>
+ parse_from_memory(uintptr_t address,
+ const ParserConfig& config = ParserConfig::default_conf());
+
+ /// Parse the PE binary at the given memory address and with the given size
+ static std::unique_ptr<Binary>
+ parse_from_memory(uintptr_t address, size_t size,
+ const ParserConfig& config = ParserConfig::default_conf());
+
+ /// Parse a PE binary from a memory dump located on disk.
+ ///
+ /// A dump is a raw capture of the process memory that was mapped starting at
+ /// the virtual address `addr`. This is typically used to parse a PE image that
+ /// has been dumped from memory (e.g. from a debugger or a runtime hook).
+ ///
+ /// @param[in] filepath Path to the file that contains the memory dump
+ /// @param[in] addr Virtual address at which the dump was mapped
+ /// @param[in] config Optional configuration for the parser
+ static std::unique_ptr<Binary>
+ parse_from_dump(const std::string& filepath, uint64_t addr,
+ const ParserConfig& config = ParserConfig::default_conf());
+
+ /// Same as parse_from_dump(const std::string&, uint64_t, const ParserConfig&)
+ /// but the dump is wrapped in the given **non-owned** stream.
+ static std::unique_ptr<Binary>
+ parse_from_dump(BinaryStream& stream, uint64_t addr,
+ const ParserConfig& config = ParserConfig::default_conf());
+
+ /// Same as parse_from_dump(const std::string&, uint64_t, const ParserConfig&)
+ /// but the dump is wrapped in the given **owned** stream.
+ static std::unique_ptr<Binary>
+ parse_from_dump(std::unique_ptr<BinaryStream> stream, uint64_t addr,
+ const ParserConfig& config = ParserConfig::default_conf());
Parser& operator=(const Parser& copy) = delete;
- Parser(const Parser& copy) = delete;
+ Parser(const Parser& copy) = delete;
COFF::String* find_coff_string(uint32_t offset) const;
@@ -152,6 +199,9 @@ class LIEF_API Parser : public LIEF::Parser {
ok_error_t parse_exports();
ok_error_t parse_sections();
+ ok_error_t read_section_content(const details::pe_section& raw_sec,
+ uint32_t index, Section& section);
+
template<typename PE_T>
ok_error_t parse_headers();
@@ -204,6 +254,18 @@ class LIEF_API Parser : public LIEF::Parser {
ok_error_t parse_rich_header();
ok_error_t parse_chpe_exceptions();
+ template<typename PE_T>
+ ok_error_t undo_relocations();
+
+ template<typename PE_T>
+ ok_error_t fix_iat();
+
+ template<typename PE_T>
+ ok_error_t fix_tls();
+
+ template<typename PE_T>
+ ok_error_t fix_load_config();
+
PE_TYPE type_ = PE_TYPE::PE32_PLUS;
std::unique_ptr<Binary> binary_;
std::unique_ptr<BinaryStream> stream_;
diff --git a/deps/LIEF/include/LIEF/PE/ParserConfig.hpp b/deps/LIEF/include/LIEF/PE/ParserConfig.hpp
index e343fb7ec04..de0b9a8db85 100644
--- a/deps/LIEF/include/LIEF/PE/ParserConfig.hpp
+++ b/deps/LIEF/include/LIEF/PE/ParserConfig.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,17 +18,20 @@
#include <string>
#include <ostream>
#include "LIEF/visibility.h"
+#include "LIEF/optional.hpp"
namespace LIEF {
namespace PE {
-/// This structure is used to tweak the PE Parser (PE::Parser)
+/// This structure is used to configure the behavior of the PE Parser (PE::Parser).
struct LIEF_API ParserConfig {
+ /// Returns the default configuration for the PE Parser.
static const ParserConfig& default_conf() {
static const ParserConfig DEFAULT;
return DEFAULT;
}
+ /// Returns a configuration that enables all optional parsing features.
static ParserConfig all() {
ParserConfig config;
config.parse_exceptions = true;
@@ -36,38 +39,42 @@ struct LIEF_API ParserConfig {
return config;
}
- /// Parse PE Authenticode signature
+ /// Whether to parse the PE Authenticode signature.
bool parse_signature = true;
- /// Parse PE Exports Directory
+ /// Whether to parse the PE Export Directory.
bool parse_exports = true;
- /// Parse PE Import Directory
+ /// Whether to parse the PE Import Directory.
bool parse_imports = true;
- /// Parse PE resources tree
+ /// Whether to parse the PE resources tree.
bool parse_rsrc = true;
- /// Parse PE relocations
+ /// Whether to parse PE relocations.
bool parse_reloc = true;
- /// Whether it should parse in-depth exceptions metadata.
+ /// Whether to parse in-depth exception metadata.
///
- /// This option is set to off by default since it can introduce a certain
- /// overhead.
+ /// This option is disabled by default because it can introduce significant
+ /// parsing overhead.
bool parse_exceptions = false;
- /// Whether it should parse nested ARM64X binary
+ /// Whether to parse nested ARM64X binaries.
///
- /// This option is set to off by default since it can introduce a certain
- /// overhead.
+ /// This option is disabled by default because it can introduce significant
+ /// parsing overhead.
bool parse_arm64x_binary = false;
+ /// If set, this value holds the original image base from which the binary
+ /// should be rebased. This is used to *undo* relocations and IAT bindings
+ /// when parsing a PE loaded in memory.
+ optional<uint64_t> rebase;
+
std::string to_string() const;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const ParserConfig& config)
- {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const ParserConfig& config) {
os << config.to_string();
return os;
}
diff --git a/deps/LIEF/include/LIEF/PE/Relocation.hpp b/deps/LIEF/include/LIEF/PE/Relocation.hpp
index cd81bf68541..94dab8c4e70 100644
--- a/deps/LIEF/include/LIEF/PE/Relocation.hpp
+++ b/deps/LIEF/include/LIEF/PE/Relocation.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -46,8 +46,8 @@ class LIEF_API Relocation : public Object {
friend class Binary;
public:
- using entries_t = std::vector<std::unique_ptr<RelocationEntry>>;
- using it_entries = ref_iterator<entries_t&, RelocationEntry*>;
+ using entries_t = std::vector<std::unique_ptr<RelocationEntry>>;
+ using it_entries = ref_iterator<entries_t&, RelocationEntry*>;
using it_const_entries = const_ref_iterator<const entries_t&, RelocationEntry*>;
Relocation();
@@ -65,7 +65,8 @@ class LIEF_API Relocation : public Object {
void swap(Relocation& other);
- /// The RVA for which the offset of the relocation entries (RelocationEntry) is added
+ /// The RVA for which the offset of the relocation entries (RelocationEntry) is
+ /// added
uint32_t virtual_address() const {
return virtual_address_;
}
@@ -81,11 +82,11 @@ class LIEF_API Relocation : public Object {
}
/// Iterator over the RelocationEntry
- it_const_entries entries() const {
+ it_const_entries entries() const LIEF_LIFETIMEBOUND {
return entries_;
}
- it_entries entries() {
+ it_entries entries() LIEF_LIFETIMEBOUND {
return entries_;
}
@@ -97,11 +98,12 @@ class LIEF_API Relocation : public Object {
block_size_ = block_size;
}
- RelocationEntry& add_entry(const RelocationEntry& entry);
+ RelocationEntry& add_entry(const RelocationEntry& entry) LIEF_LIFETIMEBOUND;
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const Relocation& relocation);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const Relocation& relocation);
using relocations_t = std::vector<std::unique_ptr<Relocation>>;
@@ -115,4 +117,4 @@ class LIEF_API Relocation : public Object {
}
}
-#endif /* RELOCATION_H */
+#endif
diff --git a/deps/LIEF/include/LIEF/PE/RelocationEntry.hpp b/deps/LIEF/include/LIEF/PE/RelocationEntry.hpp
index f2aa4734a32..22384b15da5 100644
--- a/deps/LIEF/include/LIEF/PE/RelocationEntry.hpp
+++ b/deps/LIEF/include/LIEF/PE/RelocationEntry.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,7 +32,8 @@ class Relocation;
/// Class which represents an entry of the PE relocation table
///
-/// It extends the LIEF::Relocation object to provide an uniform API across the file formats
+/// It extends the LIEF::Relocation object to provide an uniform API across the
+/// file formats
class LIEF_API RelocationEntry : public LIEF::Relocation {
friend class Parser;
@@ -94,19 +95,23 @@ class LIEF_API RelocationEntry : public LIEF::Relocation {
/// occupies two slots.
HIGHADJ = 4,
- MIPS_JMPADDR = 5 | (1 << 8),
- ARM_MOV32 = 5 | (1 << 9),
- RISCV_HI20 = 5 | (1 << 10),
+ // clang-format off
- SECTION = 6,
+ MIPS_JMPADDR = 5 | (1 << 8),
+ ARM_MOV32 = 5 | (1 << 9),
+ RISCV_HI20 = 5 | (1 << 10),
- THUMB_MOV32 = 7 | (1 << 11),
- RISCV_LOW12I = 7 | (1 << 12),
+ SECTION = 6,
- RISCV_LOW12S = 8 | (1 << 13),
+ THUMB_MOV32 = 7 | (1 << 11),
+ RISCV_LOW12I = 7 | (1 << 12),
+
+ RISCV_LOW12S = 8 | (1 << 13),
LOONARCH_MARK_LA = 8 | (1 << 14),
- MIPS_JMPADDR16 = 9,
+ MIPS_JMPADDR16 = 9,
+
+ // clang-format on
/// This value matches `IMAGE_REL_BASED_DIR64`
///
@@ -117,7 +122,7 @@ class LIEF_API RelocationEntry : public LIEF::Relocation {
/// ```cpp
/// write<int64_t_t>(ADDR, read<int64_t_t>(ADDR) + DELTA)
/// ```
- DIR64 = 10,
+ DIR64 = 10,
HIGH3ADJ = 11,
};
@@ -135,9 +140,9 @@ class LIEF_API RelocationEntry : public LIEF::Relocation {
RelocationEntry(const RelocationEntry& other) :
LIEF::Relocation(other),
position_(other.position_),
- type_(other.type_),
- // Parent relocation is not forwarded during copy
- relocation_(nullptr)
+ type_(other.type_)
+ /* Parent relocation is not forwarded during copy
+ * relocation_(nullptr) */
{}
RelocationEntry& operator=(RelocationEntry other) {
@@ -150,8 +155,7 @@ class LIEF_API RelocationEntry : public LIEF::Relocation {
RelocationEntry(uint16_t position, BASE_TYPES type) :
position_(position),
- type_(type)
- {
+ type_(type) {
assert(position_ < MAX_ADDR);
}
@@ -159,8 +163,8 @@ class LIEF_API RelocationEntry : public LIEF::Relocation {
void swap(RelocationEntry& other) {
LIEF::Relocation::swap(other);
- std::swap(position_, other.position_);
- std::swap(type_, other.type_);
+ std::swap(position_, other.position_);
+ std::swap(type_, other.type_);
std::swap(relocation_, other.relocation_);
}
@@ -202,19 +206,20 @@ class LIEF_API RelocationEntry : public LIEF::Relocation {
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const RelocationEntry& entry);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const RelocationEntry& entry);
- /// \private
+ /// @private
LIEF_LOCAL PE::Relocation* parent() {
return relocation_;
}
- /// \private
+ /// @private
LIEF_LOCAL const PE::Relocation* parent() const {
return relocation_;
}
- /// \private
+ /// @private
LIEF_LOCAL void parent(PE::Relocation& R) {
relocation_ = &R;
}
diff --git a/deps/LIEF/include/LIEF/PE/ResourceData.hpp b/deps/LIEF/include/LIEF/PE/ResourceData.hpp
index 3c2dd5e56e2..35473d774fe 100644
--- a/deps/LIEF/include/LIEF/PE/ResourceData.hpp
+++ b/deps/LIEF/include/LIEF/PE/ResourceData.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
#include <vector>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/PE/ResourceNode.hpp"
#include "LIEF/span.hpp"
@@ -36,19 +37,16 @@ class LIEF_API ResourceData : public ResourceNode {
public:
ResourceData() :
- ResourceNode(ResourceNode::TYPE::DATA)
- {}
+ ResourceNode(ResourceNode::TYPE::DATA) {}
ResourceData(std::vector<uint8_t> content, uint32_t code_page = 0) :
ResourceNode(ResourceNode::TYPE::DATA),
content_(std::move(content)),
- code_page_(code_page)
- {}
+ code_page_(code_page) {}
ResourceData(const std::string& str, uint32_t code_page = 0) :
ResourceNode(ResourceNode::TYPE::DATA),
content_{str.begin(), str.end()},
- code_page_(code_page)
- {}
+ code_page_(code_page) {}
ResourceData(const ResourceData& other) = default;
ResourceData& operator=(const ResourceData& other) = default;
@@ -67,11 +65,11 @@ class LIEF_API ResourceData : public ResourceNode {
}
/// Resource content
- span<const uint8_t> content() const {
+ span<const uint8_t> content() const LIEF_LIFETIMEBOUND {
return content_;
}
- span<uint8_t> content() {
+ span<uint8_t> content() LIEF_LIFETIMEBOUND {
return content_;
}
@@ -107,17 +105,17 @@ class LIEF_API ResourceData : public ResourceNode {
reserved_ = value;
}
- /// \private
+ /// @private
LIEF_LOCAL vector_iostream edit() {
- return vector_iostream(content_);
+ return content_;
}
- /// \private
+ /// @private
LIEF_LOCAL const std::vector<uint8_t> raw_content() const {
return content_;
}
- /// \private
+ /// @private
LIEF_LOCAL void set_offset(uint32_t offset) {
offset_ = offset;
}
@@ -136,5 +134,5 @@ class LIEF_API ResourceData : public ResourceNode {
};
} // namespace PE
-} // namepsace LIEF
-#endif /* RESOURCEDATA_H */
+} // namespace LIEF
+#endif
diff --git a/deps/LIEF/include/LIEF/PE/ResourceDirectory.hpp b/deps/LIEF/include/LIEF/PE/ResourceDirectory.hpp
index 348a50d483d..214a66f7800 100644
--- a/deps/LIEF/include/LIEF/PE/ResourceDirectory.hpp
+++ b/deps/LIEF/include/LIEF/PE/ResourceDirectory.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -37,12 +37,10 @@ class LIEF_API ResourceDirectory : public ResourceNode {
public:
ResourceDirectory() :
- ResourceNode(ResourceNode::TYPE::DIRECTORY)
- {}
+ ResourceNode(ResourceNode::TYPE::DIRECTORY) {}
ResourceDirectory(uint32_t id) :
- ResourceNode(ResourceNode::TYPE::DIRECTORY)
- {
+ ResourceNode(ResourceNode::TYPE::DIRECTORY) {
this->id(id);
}
@@ -130,4 +128,4 @@ class LIEF_API ResourceDirectory : public ResourceNode {
};
}
}
-#endif /* RESOURCEDIRECTORY_H */
+#endif
diff --git a/deps/LIEF/include/LIEF/PE/ResourceNode.hpp b/deps/LIEF/include/LIEF/PE/ResourceNode.hpp
index 4db05119a1a..0595eb7f5ca 100644
--- a/deps/LIEF/include/LIEF/PE/ResourceNode.hpp
+++ b/deps/LIEF/include/LIEF/PE/ResourceNode.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -49,8 +49,8 @@ class LIEF_API ResourceNode : public Object {
friend class Builder;
public:
- using childs_t = std::vector<std::unique_ptr<ResourceNode>>;
- using it_childs = ref_iterator<childs_t&, ResourceNode*>;
+ using childs_t = std::vector<std::unique_ptr<ResourceNode>>;
+ using it_childs = ref_iterator<childs_t&, ResourceNode*>;
using it_const_childs = const_ref_iterator<const childs_t&, ResourceNode*>;
/// Enum that identifies the type of a node in the resource tree
@@ -73,7 +73,7 @@ class LIEF_API ResourceNode : public Object {
/// Parse the resource tree from the provided BinaryStream stream and
/// with the original RVA provided in the second parameter.
///
- /// The RVA value should be come from the DataDirectory::RVA associated with
+ /// The RVA value should come from the DataDirectory::RVA associated with
/// the resource tree.
static std::unique_ptr<ResourceNode> parse(BinaryStream& stream, uint64_t rva);
@@ -85,20 +85,18 @@ class LIEF_API ResourceNode : public Object {
/// See doc from other parse functions
static std::unique_ptr<ResourceNode> parse(const std::vector<uint8_t>& buffer,
- uint64_t rva)
- {
+ uint64_t rva) {
return parse(buffer.data(), buffer.size(), rva);
}
/// See doc from other parse functions
static std::unique_ptr<ResourceNode> parse(span<const uint8_t> buffer,
- uint64_t rva)
- {
+ uint64_t rva) {
return parse(buffer.data(), buffer.size(), rva);
}
- static std::unique_ptr<ResourceNode>
- parse(BinaryStream& stream, const Binary& bin);
+ static std::unique_ptr<ResourceNode> parse(BinaryStream& stream,
+ const Binary& bin);
virtual std::unique_ptr<ResourceNode> clone() const = 0;
@@ -109,7 +107,7 @@ class LIEF_API ResourceNode : public Object {
}
/// Name of the entry (if any)
- const std::u16string& name() const {
+ const std::u16string& name() const LIEF_LIFETIMEBOUND {
return name_;
}
@@ -117,11 +115,11 @@ class LIEF_API ResourceNode : public Object {
std::string utf8_name() const;
/// Iterator on node's children
- it_childs childs() {
+ it_childs childs() LIEF_LIFETIMEBOUND {
return childs_;
}
- it_const_childs childs() const {
+ it_const_childs childs() const LIEF_LIFETIMEBOUND {
return childs_;
}
@@ -169,10 +167,10 @@ class LIEF_API ResourceNode : public Object {
/// Add a new child to the current node, taking the ownership
/// of the provided `unique_ptr`
- ResourceNode& add_child(std::unique_ptr<ResourceNode> child);
+ ResourceNode& add_child(std::unique_ptr<ResourceNode> child) LIEF_LIFETIMEBOUND;
/// Add a new child to the current node
- ResourceNode& add_child(const ResourceNode& child) {
+ ResourceNode& add_child(const ResourceNode& child) LIEF_LIFETIMEBOUND {
return add_child(child.clone());
}
@@ -186,7 +184,8 @@ class LIEF_API ResourceNode : public Object {
template<class T>
const T* cast() const {
- static_assert(std::is_base_of<ResourceNode, T>::value, "Require inheritance relationship");
+ static_assert(std::is_base_of<ResourceNode, T>::value,
+ "Require inheritance relationship");
if (T::classof(this)) {
return static_cast<const T*>(this);
}
@@ -198,7 +197,8 @@ class LIEF_API ResourceNode : public Object {
return const_cast<T*>(static_cast<const ResourceNode*>(this)->cast<T>());
}
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const ResourceNode& node);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const ResourceNode& node);
std::string to_string() const {
std::ostringstream oss;
@@ -206,19 +206,21 @@ class LIEF_API ResourceNode : public Object {
return oss.str();
}
- /// Access the children at the given index in a safety way.
+ /// Access the children at the given index in a safe way.
///
- /// \warning For internal use only
+ /// @warning For internal use only
///
- /// \private
- LIEF_LOCAL const ResourceNode& safe_get_at(size_t idx) const;
-
- /// \private
- LIEF_LOCAL ResourceNode& safe_get_at(size_t idx) {
- return const_cast<ResourceNode&>(static_cast<const ResourceNode*>(this)->safe_get_at(idx));
+ /// @private
+ LIEF_LOCAL const ResourceNode& safe_get_at(size_t idx) const LIEF_LIFETIMEBOUND;
+
+ /// @private
+ LIEF_LOCAL ResourceNode& safe_get_at(size_t idx) LIEF_LIFETIMEBOUND {
+ return const_cast<ResourceNode&>(
+ static_cast<const ResourceNode*>(this)->safe_get_at(idx)
+ );
}
- /// \private
+ /// @private
LIEF_LOCAL void set_depth(uint32_t depth) {
depth_ = depth;
}
@@ -227,21 +229,23 @@ class LIEF_API ResourceNode : public Object {
childs_.push_back(std::move(node));
}
- LIEF_API friend bool operator==(const ResourceNode& LHS, const ResourceNode& RHS);
+ LIEF_API friend bool operator==(const ResourceNode& LHS,
+ const ResourceNode& RHS);
- LIEF_API friend bool operator!=(const ResourceNode& LHS, const ResourceNode& RHS) {
+ LIEF_API friend bool operator!=(const ResourceNode& LHS,
+ const ResourceNode& RHS) {
return !(LHS == RHS);
}
protected:
ResourceNode() = default;
ResourceNode(TYPE type) :
- type_(type)
- {}
+ type_(type) {}
std::unique_ptr<ResourceNode> parse_resource_node(
const details::pe_resource_directory_table& directory_table,
- uint32_t base_offset, uint32_t current_offset, uint32_t depth = 0);
+ uint32_t base_offset, uint32_t current_offset, uint32_t depth = 0
+ );
childs_t::iterator insert_child(std::unique_ptr<ResourceNode> child);
@@ -253,4 +257,4 @@ class LIEF_API ResourceNode : public Object {
};
}
}
-#endif /* RESOURCENODE_H */
+#endif
diff --git a/deps/LIEF/include/LIEF/PE/ResourcesManager.hpp b/deps/LIEF/include/LIEF/PE/ResourcesManager.hpp
index 6ad660fc652..413ba06fe40 100644
--- a/deps/LIEF/include/LIEF/PE/ResourcesManager.hpp
+++ b/deps/LIEF/include/LIEF/PE/ResourcesManager.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,8 @@
#ifndef LIEF_PE_RESOURCES_MANAGER_H
#define LIEF_PE_RESOURCES_MANAGER_H
#include <ostream>
+#include <sstream>
-#include "LIEF/errors.hpp"
#include "LIEF/visibility.h"
#include "LIEF/Object.hpp"
#include "LIEF/iterators.hpp"
@@ -25,7 +25,6 @@
#include "LIEF/PE/resources/ResourceVersion.hpp"
#include "LIEF/PE/resources/ResourceIcon.hpp"
#include "LIEF/PE/resources/ResourceDialog.hpp"
-#include "LIEF/PE/resources/ResourceStringTable.hpp"
#include "LIEF/PE/resources/ResourceAccelerator.hpp"
namespace LIEF {
@@ -37,36 +36,36 @@ class ResourceNode;
/// The Resource Manager provides an enhanced API to manipulate the resource tree.
class LIEF_API ResourcesManager : public Object {
public:
-
/// The different types of resources
/// From https://learn.microsoft.com/en-us/windows/win32/menurc/resource-types
enum class TYPE {
- CURSOR = 1,
- BITMAP = 2,
- ICON = 3,
- MENU = 4,
- DIALOG = 5,
- STRING = 6,
- FONTDIR = 7,
- FONT = 8,
- ACCELERATOR = 9,
- RCDATA = 10,
+ CURSOR = 1,
+ BITMAP = 2,
+ ICON = 3,
+ MENU = 4,
+ DIALOG = 5,
+ STRING = 6,
+ FONTDIR = 7,
+ FONT = 8,
+ ACCELERATOR = 9,
+ RCDATA = 10,
MESSAGETABLE = 11,
GROUP_CURSOR = 12,
- GROUP_ICON = 14,
- VERSION = 16,
- DLGINCLUDE = 17,
- PLUGPLAY = 19,
- VXD = 20,
- ANICURSOR = 21,
- ANIICON = 22,
- HTML = 23,
- MANIFEST = 24
+ GROUP_ICON = 14,
+ VERSION = 16,
+ DLGINCLUDE = 17,
+ PLUGPLAY = 19,
+ VXD = 20,
+ ANICURSOR = 21,
+ ANIICON = 22,
+ HTML = 23,
+ MANIFEST = 24,
};
public:
using dialogs_t = ResourceDialog::dialogs_t;
- using it_const_dialogs = const_ref_iterator<const dialogs_t&, const ResourceDialog*>;
+ using it_const_dialogs =
+ const_ref_iterator<const dialogs_t&, const ResourceDialog*>;
using icons_t = std::vector<ResourceIcon>;
using it_const_icons = const_ref_iterator<icons_t>;
@@ -89,9 +88,8 @@ class LIEF_API ResourcesManager : public Object {
return is_defined();
}
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const string_entry_t& str)
- {
+ friend LIEF_API std::ostream& operator<<(std::ostream& os,
+ const string_entry_t& str) {
os << std::to_string(str.id) << ", " << str.string_u8();
return os;
}
@@ -101,13 +99,12 @@ class LIEF_API ResourcesManager : public Object {
ResourcesManager() = delete;
ResourcesManager(ResourceNode& rsrc) :
- resources_{&rsrc}
- {}
+ resources_{&rsrc} {}
ResourcesManager(const ResourcesManager& other) :
Object(other),
resources_(other.resources_)
- // Skip (on purpose) the `dialogs_` cache
+ // Skip (on purpose) the `dialogs_` cache
{}
ResourcesManager& operator=(const ResourcesManager& other) {
@@ -126,11 +123,12 @@ class LIEF_API ResourcesManager : public Object {
/// Return the ResourceNode associated with the given TYPE
/// or a nullptr if not found;
- ResourceNode* get_node_type(TYPE type) {
+ ResourceNode* get_node_type(TYPE type) LIEF_LIFETIMEBOUND {
return const_cast<ResourceNode*>(
- static_cast<const ResourcesManager*>(this)->get_node_type(type));
+ static_cast<const ResourcesManager*>(this)->get_node_type(type)
+ );
}
- const ResourceNode* get_node_type(TYPE type) const;
+ const ResourceNode* get_node_type(TYPE type) const LIEF_LIFETIMEBOUND;
/// List of TYPE present in the resources
std::vector<TYPE> get_types() const;
@@ -153,22 +151,22 @@ class LIEF_API ResourcesManager : public Object {
/// all required nodes are created.
void manifest(const std::string& manifest);
- /// `true` if resources a LIEF::PE::ResourceVersion
+ /// `true` if resources contain a LIEF::PE::ResourceVersion
bool has_version() const {
return get_node_type(TYPE::VERSION) != nullptr;
}
- /// Return a list of verison info (`VS_VERSIONINFO`).
+ /// Return a list of version info (`VS_VERSIONINFO`).
std::vector<ResourceVersion> version() const;
/// `true` if resources contain a LIEF::PE::ResourceIcon
bool has_icons() const {
- return get_node_type(TYPE::ICON) != nullptr &&
+ return get_node_type(TYPE::ICON) != nullptr &&
get_node_type(TYPE::GROUP_ICON) != nullptr;
}
/// Return the list of the icons present in the resources
- it_const_icons icons() const;
+ it_const_icons icons() const LIEF_LIFETIMEBOUND;
/// Add an icon to the resources
void add_icon(const ResourceIcon& icon);
@@ -181,7 +179,7 @@ class LIEF_API ResourcesManager : public Object {
}
/// Return the list of the dialogs present in the resource
- it_const_dialogs dialogs() const;
+ it_const_dialogs dialogs() const LIEF_LIFETIMEBOUND;
/// `true` if the resources contain a string table
bool has_string_table() const {
@@ -212,13 +210,14 @@ class LIEF_API ResourcesManager : public Object {
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const ResourcesManager& m);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const ResourcesManager& m);
private:
void print_tree(const ResourceNode& node, std::ostringstream& stream,
uint32_t current_depth, uint32_t max_depth,
- const ResourceNode* parent = nullptr,
- std::string header = "", bool is_last = false) const;
+ const ResourceNode* parent = nullptr, std::string header = "",
+ bool is_last = false) const;
ResourceNode* resources_ = nullptr;
mutable dialogs_t dialogs_;
};
diff --git a/deps/LIEF/include/LIEF/PE/RichEntry.hpp b/deps/LIEF/include/LIEF/PE/RichEntry.hpp
index 296744276f5..b314a98f8be 100644
--- a/deps/LIEF/include/LIEF/PE/RichEntry.hpp
+++ b/deps/LIEF/include/LIEF/PE/RichEntry.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,13 +27,11 @@ namespace PE {
/// Class which represents an entry associated to the RichHeader
class LIEF_API RichEntry : public Object {
public:
-
RichEntry() = default;
RichEntry(uint16_t id, uint16_t build_id, uint32_t count) :
id_(id),
build_id_(build_id),
- count_(count)
- {}
+ count_(count) {}
RichEntry(const RichEntry&) = default;
RichEntry& operator=(const RichEntry&) = default;
@@ -66,17 +64,15 @@ class LIEF_API RichEntry : public Object {
void accept(Visitor& visitor) const override;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const RichEntry& rich_entry);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const RichEntry& rich_entry);
private:
uint16_t id_ = 0;
uint16_t build_id_ = 0;
uint32_t count_ = 0;
-
};
}
}
#endif
-
diff --git a/deps/LIEF/include/LIEF/PE/RichHeader.hpp b/deps/LIEF/include/LIEF/PE/RichHeader.hpp
index 5c886ab0dc4..d9aa97c6bae 100644
--- a/deps/LIEF/include/LIEF/PE/RichHeader.hpp
+++ b/deps/LIEF/include/LIEF/PE/RichHeader.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,17 +32,17 @@ namespace PE {
///
/// This structure is usually located at the end of the Binary::dos_stub
/// and contains information about the build environment.
-/// It is generated by the Microsoft linker `link.exe` and there are no options to disable
-/// or remove this information.
+/// It is generated by the Microsoft linker `link.exe` and there are no options to
+/// disable or remove this information.
class LIEF_API RichHeader : public Object {
public:
- using entries_t = std::vector<RichEntry>;
- using it_entries = ref_iterator<entries_t&>;
+ using entries_t = std::vector<RichEntry>;
+ using it_entries = ref_iterator<entries_t&>;
using it_const_entries = const_ref_iterator<const entries_t&>;
static constexpr uint8_t RICH_MAGIC[] = {'R', 'i', 'c', 'h'};
- static constexpr uint32_t RICH_MAGIC_INT = 0x68636952; // 'Rich'
- static constexpr uint32_t DANS_MAGIC_NUMBER = 0x536E6144; // 'Rich'
+ static constexpr uint32_t RICH_MAGIC_INT = 0x68636952; // 'Rich'
+ static constexpr uint32_t DANS_MAGIC_NUMBER = 0x536E6144; // 'DanS'
RichHeader() = default;
RichHeader(const RichHeader&) = default;
@@ -79,7 +79,8 @@ class LIEF_API RichHeader : public Object {
/// The raw structure of the Rich header without xor-encoding.
///
- /// This function is equivalent as calling RichHeader::raw(uint32_t) with a `xor_key` set to 0
+ /// This function is equivalent as calling RichHeader::raw(uint32_t) with a
+ /// `xor_key` set to 0
std::vector<uint8_t> raw() const {
return raw(/*xor_key=*/0);
}
@@ -103,15 +104,14 @@ class LIEF_API RichHeader : public Object {
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const RichHeader& rich_header);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const RichHeader& rich_header);
private:
uint32_t key_ = 0;
entries_t entries_;
-
};
}
}
#endif
-
diff --git a/deps/LIEF/include/LIEF/PE/Section.hpp b/deps/LIEF/include/LIEF/PE/Section.hpp
index 99aa06c563c..49722950ca2 100644
--- a/deps/LIEF/include/LIEF/PE/Section.hpp
+++ b/deps/LIEF/include/LIEF/PE/Section.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@
#include <memory>
#include "LIEF/iostream.hpp"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/Abstract/Section.hpp"
#include "LIEF/enums.hpp"
@@ -53,7 +54,8 @@ class LIEF_API Section : public LIEF::Section {
using LIEF::Section::name;
static constexpr size_t MAX_SECTION_NAME = 8;
- enum class CHARACTERISTICS: uint64_t {
+ enum class CHARACTERISTICS : uint64_t {
+ // clang-format off
TYPE_NO_PAD = 0x00000008,
CNT_CODE = 0x00000020,
CNT_INITIALIZED_DATA = 0x00000040,
@@ -88,20 +90,19 @@ class LIEF_API Section : public LIEF::Section {
MEM_SHARED = 0x10000000,
MEM_EXECUTE = 0x20000000,
MEM_READ = 0x40000000,
- MEM_WRITE = 0x80000000
+ MEM_WRITE = 0x80000000,
+ // clang-format on
};
Section(const details::pe_section& header);
Section() = default;
Section(std::string name) :
- Section::Section()
- {
+ Section::Section() {
name_ = std::move(name);
}
Section(std::string name, std::vector<uint8_t> content) :
- Section(std::move(name))
- {
+ Section(std::move(name)) {
content_ = std::move(content);
size_ = content_.size();
}
@@ -121,30 +122,32 @@ class LIEF_API Section : public LIEF::Section {
}
/// The actual content of the section
- span<const uint8_t> content() const override {
+ span<const uint8_t> content() const LIEF_LIFETIMEBOUND override {
return content_;
}
/// Content of the section's padding area
- span<const uint8_t> padding() const {
+ span<const uint8_t> padding() const LIEF_LIFETIMEBOUND {
return padding_;
}
/// The offset of the section data in the PE file
uint32_t pointerto_raw_data() const;
- /// The file pointer to the beginning of the COFF relocation entries for the section. This is set to zero for
- /// executable images or if there are no relocations.
+ /// The file pointer to the beginning of the COFF relocation entries for the
+ /// section. This is set to zero for executable images or if there are no
+ /// relocations.
///
- /// For modern PE binaries, this value is usually set to 0 as the relocations are managed by
- /// PE::Relocation.
+ /// For modern PE binaries, this value is usually set to 0 as the relocations are
+ /// managed by PE::Relocation.
uint32_t pointerto_relocation() const {
return pointer_to_relocations_;
}
/// The file pointer to the beginning of line-number entries for the section.
- /// This is set to zero if there are no COFF line numbers. This value should be zero for an image because COFF
- /// debugging information is deprecated and modern debug information relies on the PDB files.
+ /// This is set to zero if there are no COFF line numbers. This value should be
+ /// zero for an image because COFF debugging information is deprecated and modern
+ /// debug information relies on the PDB files.
uint32_t pointerto_line_numbers() const {
return pointer_to_linenumbers_;
}
@@ -225,56 +228,58 @@ class LIEF_API Section : public LIEF::Section {
///
/// This coff string is usually present for long section names whose length
/// does not fit in the 8 bytes allocated by the PE format.
- COFF::String* coff_string() {
+ COFF::String* coff_string() LIEF_LIFETIMEBOUND {
return coff_string_;
}
- const COFF::String* coff_string() const {
+ const COFF::String* coff_string() const LIEF_LIFETIMEBOUND {
return coff_string_;
}
- Section& remove_characteristic(CHARACTERISTICS characteristic) {
+ Section&
+ remove_characteristic(CHARACTERISTICS characteristic) LIEF_LIFETIMEBOUND {
characteristics_ &= ~static_cast<size_t>(characteristic);
return *this;
}
- Section& add_characteristic(CHARACTERISTICS characteristic) {
+ Section& add_characteristic(CHARACTERISTICS characteristic) LIEF_LIFETIMEBOUND {
characteristics_ |= static_cast<size_t>(characteristic);
return *this;
}
- std::unique_ptr<SpanStream> stream() const;
+ std::unique_ptr<SpanStream> stream() const LIEF_LIFETIMEBOUND;
- /// \private
- LIEF_LOCAL Section& reserve(size_t size, uint8_t value = 0) {
+ /// @private
+ LIEF_LOCAL Section& reserve(size_t size, uint8_t value = 0) LIEF_LIFETIMEBOUND {
content_.resize(size, value);
return *this;
}
- /// \private
- LIEF_LOCAL vector_iostream edit() {
- return vector_iostream(content_);
+ /// @private
+ LIEF_LOCAL vector_iostream edit() LIEF_LIFETIMEBOUND {
+ return content_;
}
- span<uint8_t> writable_content() {
+ span<uint8_t> writable_content() LIEF_LIFETIMEBOUND {
return content_;
}
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const Section& section);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const Section& section);
static std::vector<CHARACTERISTICS> characteristics_to_list(uint32_t value);
private:
std::vector<uint8_t> content_;
std::vector<uint8_t> padding_;
- uint32_t virtual_size_ = 0;
+ uint32_t virtual_size_ = 0;
uint32_t pointer_to_relocations_ = 0;
uint32_t pointer_to_linenumbers_ = 0;
- uint16_t number_of_relocations_ = 0;
- uint16_t number_of_linenumbers_ = 0;
- uint32_t characteristics_ = 0;
+ uint16_t number_of_relocations_ = 0;
+ uint16_t number_of_linenumbers_ = 0;
+ uint32_t characteristics_ = 0;
COFF::String* coff_string_ = nullptr;
};
diff --git a/deps/LIEF/include/LIEF/PE/TLS.hpp b/deps/LIEF/include/LIEF/PE/TLS.hpp
index 182f37d529d..a77e418f823 100644
--- a/deps/LIEF/include/LIEF/PE/TLS.hpp
+++ b/deps/LIEF/include/LIEF/PE/TLS.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@
#include "LIEF/span.hpp"
#include "LIEF/Object.hpp"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
namespace LIEF {
@@ -59,15 +60,15 @@ class LIEF_API TLS : public Object {
TLS(TLS&& other) noexcept = default;
TLS& operator=(TLS&& other) noexcept = default;
- /// List of the callback associated with the current TLS.
+ /// List of the callbacks associated with the current TLS.
///
/// These functions are called before any other functions.
- const std::vector<uint64_t>& callbacks() const {
+ const std::vector<uint64_t>& callbacks() const LIEF_LIFETIMEBOUND {
return callbacks_;
}
/// Add a new TLS callback
- TLS& add_callback(uint64_t addr) {
+ TLS& add_callback(uint64_t addr) LIEF_LIFETIMEBOUND {
callbacks_.push_back(addr);
return *this;
}
@@ -77,7 +78,7 @@ class LIEF_API TLS : public Object {
/// The system copies all of this data each time a thread is created, so it
/// must not be corrupted.
///
- /// \note These addresses are not RVA. It is addresses for which there
+ /// @note These addresses are not RVA. They are addresses for which there
/// should be a rebase relocation in the `.reloc` section.
const std::pair<uint64_t, uint64_t>& addressof_raw_data() const {
return va_rawdata_;
@@ -112,7 +113,7 @@ class LIEF_API TLS : public Object {
}
/// The initial content used to initialize TLS data.
- span<const uint8_t> data_template() const {
+ span<const uint8_t> data_template() const LIEF_LIFETIMEBOUND {
return data_template_;
}
@@ -123,11 +124,11 @@ class LIEF_API TLS : public Object {
/// Return the DataDirectory associated with this object or a nullptr
/// If it exists, its type should be DataDirectory::TYPES::TLS_TABLE
- DataDirectory* directory() {
+ DataDirectory* directory() LIEF_LIFETIMEBOUND {
return directory_;
}
- const DataDirectory* directory() const {
+ const DataDirectory* directory() const LIEF_LIFETIMEBOUND {
return directory_;
}
@@ -137,11 +138,11 @@ class LIEF_API TLS : public Object {
}
/// The section associated with the entry (or a nullptr)
- Section* section() {
+ Section* section() LIEF_LIFETIMEBOUND {
return section_;
}
- const Section* section() const {
+ const Section* section() const LIEF_LIFETIMEBOUND {
return section_;
}
@@ -150,7 +151,7 @@ class LIEF_API TLS : public Object {
}
void addressof_raw_data(std::pair<uint64_t, uint64_t> addresses) {
- va_rawdata_ = addresses;
+ va_rawdata_ = std::move(addresses);
}
void addressof_index(uint64_t addr_idx) {
diff --git a/deps/LIEF/include/LIEF/PE/debug/CodeView.hpp b/deps/LIEF/include/LIEF/PE/debug/CodeView.hpp
index 9cd7c613f27..520753ca7d3 100644
--- a/deps/LIEF/include/LIEF/PE/debug/CodeView.hpp
+++ b/deps/LIEF/include/LIEF/PE/debug/CodeView.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -35,22 +35,19 @@ class LIEF_API CodeView : public Debug {
PDB_70 = 0x53445352, // RSDS
PDB_20 = 0x3031424e, // NB10
- CV_50 = 0x3131424e, // NB11
- CV_41 = 0x3930424e, // NB09
+ CV_50 = 0x3131424e, // NB11
+ CV_41 = 0x3930424e, // NB09
};
CodeView() :
- Debug(Debug::TYPES::CODEVIEW)
- {}
+ Debug(Debug::TYPES::CODEVIEW) {}
CodeView(SIGNATURES sig) :
Debug{Debug::TYPES::CODEVIEW},
- sig_{sig}
- {}
+ sig_{sig} {}
CodeView(const details::pe_debug& debug, SIGNATURES sig, Section* sec) :
Debug(debug, sec),
- sig_(sig)
- {}
+ sig_(sig) {}
CodeView(const CodeView& other) = default;
CodeView& operator=(const CodeView& other) = default;
diff --git a/deps/LIEF/include/LIEF/PE/debug/CodeViewPDB.hpp b/deps/LIEF/include/LIEF/PE/debug/CodeViewPDB.hpp
index 47b058476bb..afa8ce081d6 100644
--- a/deps/LIEF/include/LIEF/PE/debug/CodeViewPDB.hpp
+++ b/deps/LIEF/include/LIEF/PE/debug/CodeViewPDB.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,7 +19,6 @@
#include <cstdint>
#include <array>
-#include <ostream>
namespace LIEF {
namespace PE {
@@ -39,14 +38,12 @@ class LIEF_API CodeViewPDB : public CodeView {
public:
using signature_t = std::array<uint8_t, 16>;
CodeViewPDB() :
- CodeView(CodeView::SIGNATURES::PDB_70)
- {}
+ CodeView(CodeView::SIGNATURES::PDB_70) {}
CodeViewPDB(std::string filename) :
CodeView(CodeView::SIGNATURES::PDB_70),
signature_{0},
- filename_(std::move(filename))
- {}
+ filename_(std::move(filename)) {}
CodeViewPDB(const details::pe_debug& debug_info,
const details::pe_pdb_70& pdb_70, Section* sec);
@@ -60,12 +57,13 @@ class LIEF_API CodeViewPDB : public CodeView {
CodeViewPDB(CodeViewPDB&& other) = default;
CodeViewPDB& operator=(CodeViewPDB&& other) = default;
- /// The GUID signature to verify against the .pdb file signature.
+ /// The GUID signature to verify against the `.pdb` file signature.
/// This attribute might be used to lookup remote PDB file on a symbol server
std::string guid() const;
/// Age value to verify. The age does not necessarily correspond to any known
- /// time value, it is used to determine if a .pdb file is out of sync with a corresponding .exe file.
+ /// time value, it is used to determine if a .pdb file is out of sync with
+ /// corresponding `.exe` file.
uint32_t age() const {
return age_;
}
diff --git a/deps/LIEF/include/LIEF/PE/debug/Debug.hpp b/deps/LIEF/include/LIEF/PE/debug/Debug.hpp
index 31e6e28eaa1..a57505cf8dd 100644
--- a/deps/LIEF/include/LIEF/PE/debug/Debug.hpp
+++ b/deps/LIEF/include/LIEF/PE/debug/Debug.hpp
@@ -1,6 +1,6 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -36,7 +36,7 @@ struct pe_debug;
/// This class represents a generic entry in the debug data directory.
/// For known types, this class is extended to provide a dedicated API
-/// (see: CodeCodeView)
+/// (see: CodeView)
class LIEF_API Debug : public Object {
friend class Parser;
friend class Builder;
@@ -100,12 +100,11 @@ class LIEF_API Debug : public Object {
EX_DLLCHARACTERISTICS = 20,
};
Debug() = default;
- Debug(TYPES type) {
- type_ = type;
- }
+ Debug(TYPES type) :
+ type_(type) {}
- static span<uint8_t> get_payload(Section& section, uint32_t rva,
- uint32_t offset, uint32_t size);
+ static span<uint8_t> get_payload(Section& section, uint32_t rva, uint32_t offset,
+ uint32_t size);
static span<uint8_t> get_payload(Section& section, const details::pe_debug& hdr);
static span<uint8_t> get_payload(Section& section, const Debug& dbg) {
return get_payload(section, dbg.addressof_rawdata(), dbg.pointerto_rawdata(),
@@ -167,18 +166,18 @@ class LIEF_API Debug : public Object {
}
/// The section where debug data is located
- const Section* section() const {
+ const Section* section() const LIEF_LIFETIMEBOUND {
return section_;
}
- Section* section() {
+ Section* section() LIEF_LIFETIMEBOUND {
return section_;
}
/// Debug data associated with this entry
- span<uint8_t> payload();
+ span<uint8_t> payload() LIEF_LIFETIMEBOUND;
- span<const uint8_t> payload() const {
+ span<const uint8_t> payload() const LIEF_LIFETIMEBOUND {
return const_cast<Debug*>(this)->payload();
}
@@ -228,9 +227,7 @@ class LIEF_API Debug : public Object {
virtual std::string to_string() const;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const Debug& entry)
- {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os, const Debug& entry) {
os << entry.to_string();
return os;
}
diff --git a/deps/LIEF/include/LIEF/PE/debug/ExDllCharacteristics.hpp b/deps/LIEF/include/LIEF/PE/debug/ExDllCharacteristics.hpp
index e153f18ec8e..203525c3381 100644
--- a/deps/LIEF/include/LIEF/PE/debug/ExDllCharacteristics.hpp
+++ b/deps/LIEF/include/LIEF/PE/debug/ExDllCharacteristics.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -30,24 +30,23 @@ class LIEF_API ExDllCharacteristics : public Debug {
public:
/// Extended DLL Characteristics
enum class CHARACTERISTICS : uint32_t {
- CET_COMPAT = 0x01,
- CET_COMPAT_STRICT_MODE = 0x02,
+ CET_COMPAT = 0x01,
+ CET_COMPAT_STRICT_MODE = 0x02,
CET_SET_CONTEXT_IP_VALIDATION_RELAXED_MODE = 0x04,
- CET_DYNAMIC_APIS_ALLOW_IN_PROC = 0x08,
- CET_RESERVED_1 = 0x10,
- CET_RESERVED_2 = 0x20,
- FORWARD_CFI_COMPAT = 0x40,
- HOTPATCH_COMPATIBLE = 0x80,
+ CET_DYNAMIC_APIS_ALLOW_IN_PROC = 0x08,
+ CET_RESERVED_1 = 0x10,
+ CET_RESERVED_2 = 0x20,
+ FORWARD_CFI_COMPAT = 0x40,
+ HOTPATCH_COMPATIBLE = 0x80,
};
static std::unique_ptr<ExDllCharacteristics>
- parse(const details::pe_debug& hdr, Section* section, span<uint8_t> payload);
+ parse(const details::pe_debug& hdr, Section* section, span<uint8_t> payload);
ExDllCharacteristics(const details::pe_debug& debug, Section* sec,
uint32_t characteristics) :
Debug(debug, sec),
- characteristics_(characteristics)
- {}
+ characteristics_(characteristics) {}
ExDllCharacteristics(const ExDllCharacteristics& other) = default;
ExDllCharacteristics& operator=(const ExDllCharacteristics& other) = default;
diff --git a/deps/LIEF/include/LIEF/PE/debug/FPO.hpp b/deps/LIEF/include/LIEF/PE/debug/FPO.hpp
index 950a66d7e85..3a8e856f06f 100644
--- a/deps/LIEF/include/LIEF/PE/debug/FPO.hpp
+++ b/deps/LIEF/include/LIEF/PE/debug/FPO.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,7 +27,6 @@ namespace PE {
/// This class represents the `IMAGE_DEBUG_TYPE_FPO` debug entry
class LIEF_API FPO : public Debug {
public:
-
enum class FRAME_TYPE {
FPO = 0,
TRAP = 1,
@@ -50,7 +49,7 @@ class LIEF_API FPO : public Debug {
/// The size of the parameters
uint32_t parameters_size = 0;
- /// The number of bytes in the function prolog code.
+ /// The number of bytes in the function prologue code.
uint16_t prolog_size = 0;
/// Number of registers saved
@@ -70,9 +69,8 @@ class LIEF_API FPO : public Debug {
std::string to_string() const;
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const entry_t& entry)
- {
+ friend LIEF_API std::ostream& operator<<(std::ostream& os,
+ const entry_t& entry) {
os << entry.to_string();
return os;
}
@@ -82,12 +80,11 @@ class LIEF_API FPO : public Debug {
using it_entries = ref_iterator<entries_t&>;
using it_const_entries = const_ref_iterator<const entries_t&>;
- static std::unique_ptr<FPO>
- parse(const details::pe_debug& hdr, Section* section, span<uint8_t> payload);
+ static std::unique_ptr<FPO> parse(const details::pe_debug& hdr, Section* section,
+ span<uint8_t> payload);
FPO(const details::pe_debug& hdr, Section* section) :
- Debug(hdr, section)
- {}
+ Debug(hdr, section) {}
FPO(const FPO& other) = default;
FPO& operator=(const FPO& other) = default;
@@ -100,11 +97,11 @@ class LIEF_API FPO : public Debug {
}
/// Iterator over the FPO entries
- it_const_entries entries() const {
+ it_const_entries entries() const LIEF_LIFETIMEBOUND {
return entries_;
}
- it_entries entries() {
+ it_entries entries() LIEF_LIFETIMEBOUND {
return entries_;
}
diff --git a/deps/LIEF/include/LIEF/PE/debug/PDBChecksum.hpp b/deps/LIEF/include/LIEF/PE/debug/PDBChecksum.hpp
index 2dd85b562de..ffdd92a4a29 100644
--- a/deps/LIEF/include/LIEF/PE/debug/PDBChecksum.hpp
+++ b/deps/LIEF/include/LIEF/PE/debug/PDBChecksum.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
#define LIEF_PE_PDBCHECKSUM_H
#include <vector>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/PE/debug/Debug.hpp"
@@ -28,7 +29,7 @@ namespace PE {
class LIEF_API PDBChecksum : public Debug {
public:
static std::unique_ptr<PDBChecksum>
- parse(const details::pe_debug& hdr, Section* section, span<uint8_t> payload);
+ parse(const details::pe_debug& hdr, Section* section, span<uint8_t> payload);
enum class HASH_ALGO : uint32_t {
UNKNOWN = 0,
@@ -38,15 +39,13 @@ class LIEF_API PDBChecksum : public Debug {
PDBChecksum(HASH_ALGO algo, std::vector<uint8_t> hash) :
Debug(Debug::TYPES::PDBCHECKSUM),
algo_(algo),
- hash_(std::move(hash))
- {}
+ hash_(std::move(hash)) {}
- PDBChecksum(const details::pe_debug& dbg, Section* sec,
- HASH_ALGO algo, std::vector<uint8_t> hash) :
+ PDBChecksum(const details::pe_debug& dbg, Section* sec, HASH_ALGO algo,
+ std::vector<uint8_t> hash) :
Debug(dbg, sec),
algo_(algo),
- hash_(std::move(hash))
- {}
+ hash_(std::move(hash)) {}
PDBChecksum(const PDBChecksum& other) = default;
PDBChecksum& operator=(const PDBChecksum& other) = default;
@@ -59,11 +58,11 @@ class LIEF_API PDBChecksum : public Debug {
}
/// Hash of the PDB content
- span<const uint8_t> hash() const {
+ span<const uint8_t> hash() const LIEF_LIFETIMEBOUND {
return hash_;
}
- span<uint8_t> hash() {
+ span<uint8_t> hash() LIEF_LIFETIMEBOUND {
return hash_;
}
diff --git a/deps/LIEF/include/LIEF/PE/debug/Pogo.hpp b/deps/LIEF/include/LIEF/PE/debug/Pogo.hpp
index bdbdeab5f19..7509e35f636 100644
--- a/deps/LIEF/include/LIEF/PE/debug/Pogo.hpp
+++ b/deps/LIEF/include/LIEF/PE/debug/Pogo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,7 +15,6 @@
*/
#ifndef LIEF_PE_POGO_H
#define LIEF_PE_POGO_H
-#include <ostream>
#include "LIEF/visibility.h"
#include "LIEF/iterators.hpp"
@@ -36,15 +35,18 @@ class LIEF_API Pogo : public Debug {
friend class Parser;
public:
- using entries_t = std::vector<PogoEntry>;
- using it_entries = ref_iterator<entries_t&>;
+ using entries_t = std::vector<PogoEntry>;
+ using it_entries = ref_iterator<entries_t&>;
using it_const_entries = const_ref_iterator<const entries_t&>;
enum class SIGNATURES {
UNKNOWN = 0x0fffffff,
- ZERO = 0x00000000,
- LCTG = 0x4C544347, // LCTG
- PGI = 0x50474900, // PGI\0
+ ZERO = 0x00000000,
+ LCTG = 0x4C544347, // LCTG
+ PGI = 0x50474900, // PGI\0
+ PGO = 0x50474F00, // PGI\0
+ PGU = 0x50475500, // PGU\0
+ SPGO = 0x5350474f, // SPGO
};
Pogo() {
@@ -53,13 +55,11 @@ class LIEF_API Pogo : public Debug {
Pogo(SIGNATURES sig) :
Debug{Debug::TYPES::POGO},
- sig_{sig}
- {}
+ sig_{sig} {}
Pogo(const details::pe_debug& debug, SIGNATURES sig, Section* sec) :
Debug(debug, sec),
- sig_(sig)
- {}
+ sig_(sig) {}
Pogo(const Pogo&) = default;
Pogo& operator=(const Pogo&) = default;
@@ -76,11 +76,11 @@ class LIEF_API Pogo : public Debug {
}
/// An iterator over the different POGO elements
- it_entries entries() {
+ it_entries entries() LIEF_LIFETIMEBOUND {
return entries_;
}
- it_const_entries entries() const {
+ it_const_entries entries() const LIEF_LIFETIMEBOUND {
return entries_;
}
diff --git a/deps/LIEF/include/LIEF/PE/debug/PogoEntry.hpp b/deps/LIEF/include/LIEF/PE/debug/PogoEntry.hpp
index 4221fe5a545..465ac7e246a 100644
--- a/deps/LIEF/include/LIEF/PE/debug/PogoEntry.hpp
+++ b/deps/LIEF/include/LIEF/PE/debug/PogoEntry.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -39,12 +39,10 @@ class LIEF_API PogoEntry : public Object {
PogoEntry(uint32_t start_rva, uint32_t size, std::string name) :
start_rva_{start_rva},
size_{size},
- name_{std::move(name)}
- {}
+ name_{std::move(name)} {}
PogoEntry(uint32_t start_rva, uint32_t size) :
- PogoEntry{start_rva, size, ""}
- {}
+ PogoEntry{start_rva, size, ""} {}
PogoEntry& operator=(const PogoEntry&) = default;
~PogoEntry() override = default;
@@ -75,7 +73,8 @@ class LIEF_API PogoEntry : public Object {
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const PogoEntry& entry);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const PogoEntry& entry);
protected:
uint32_t start_rva_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/debug/Repro.hpp b/deps/LIEF/include/LIEF/PE/debug/Repro.hpp
index 42bf694766b..9f7b1cdd7d0 100644
--- a/deps/LIEF/include/LIEF/PE/debug/Repro.hpp
+++ b/deps/LIEF/include/LIEF/PE/debug/Repro.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,9 +15,9 @@
*/
#ifndef LIEF_PE_REPRO_H
#define LIEF_PE_REPRO_H
-#include <ostream>
#include <vector>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/PE/debug/Debug.hpp"
#include "LIEF/span.hpp"
@@ -40,22 +40,18 @@ class LIEF_API Repro : public Debug {
public:
Repro() :
- Debug{Debug::TYPES::REPRO}
- {}
+ Debug{Debug::TYPES::REPRO} {}
Repro(std::vector<uint8_t> hash) :
Debug{Debug::TYPES::REPRO},
- hash_{std::move(hash)}
- {}
+ hash_{std::move(hash)} {}
Repro(const details::pe_debug& dbg, std::vector<uint8_t> hash, Section* sec) :
Debug{dbg, sec},
- hash_{std::move(hash)}
- {}
+ hash_{std::move(hash)} {}
Repro(const details::pe_debug& dbg, Section* sec) :
- Debug{dbg, sec}
- {}
+ Debug{dbg, sec} {}
Repro(const Repro& other) = default;
Repro& operator=(const Repro& other) = default;
@@ -64,11 +60,11 @@ class LIEF_API Repro : public Debug {
Repro& operator=(Repro&& other) = default;
/// The hash associated with the reproducible build
- span<const uint8_t> hash() const {
+ span<const uint8_t> hash() const LIEF_LIFETIMEBOUND {
return hash_;
}
- span<uint8_t> hash() {
+ span<uint8_t> hash() LIEF_LIFETIMEBOUND {
return hash_;
}
diff --git a/deps/LIEF/include/LIEF/PE/debug/VCFeature.hpp b/deps/LIEF/include/LIEF/PE/debug/VCFeature.hpp
index 07760ddf89b..f245898924e 100644
--- a/deps/LIEF/include/LIEF/PE/debug/VCFeature.hpp
+++ b/deps/LIEF/include/LIEF/PE/debug/VCFeature.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,16 +25,17 @@ namespace PE {
/// This class represents the `IMAGE_DEBUG_TYPE_VC_FEATURE` debug entry
class LIEF_API VCFeature : public Debug {
public:
- static std::unique_ptr<VCFeature>
- parse(const details::pe_debug& hdr, Section* section, span<uint8_t> payload);
+ static std::unique_ptr<VCFeature> parse(const details::pe_debug& hdr,
+ Section* section, span<uint8_t> payload);
- VCFeature(const details::pe_debug& debug, Section* sec,
- uint32_t pre_vc, uint32_t c_cpp, uint32_t gs, uint32_t sdl,
- uint32_t guards) :
+ VCFeature(const details::pe_debug& debug, Section* sec, uint32_t pre_vc,
+ uint32_t c_cpp, uint32_t gs, uint32_t sdl, uint32_t guards) :
Debug(debug, sec),
- pre_vc_(pre_vc), c_cpp_(c_cpp),
- gs_(gs), sdl_(sdl), guards_(guards)
- {}
+ pre_vc_(pre_vc),
+ c_cpp_(c_cpp),
+ gs_(gs),
+ sdl_(sdl),
+ guards_(guards) {}
VCFeature(const VCFeature& other) = default;
VCFeature& operator=(const VCFeature& other) = default;
@@ -75,27 +76,27 @@ class LIEF_API VCFeature : public Debug {
return guards_;
}
- VCFeature& pre_vcpp(uint32_t value) {
+ VCFeature& pre_vcpp(uint32_t value) LIEF_LIFETIMEBOUND {
pre_vc_ = value;
return *this;
}
- VCFeature& c_cpp(uint32_t value) {
+ VCFeature& c_cpp(uint32_t value) LIEF_LIFETIMEBOUND {
c_cpp_ = value;
return *this;
}
- VCFeature& gs(uint32_t value) {
+ VCFeature& gs(uint32_t value) LIEF_LIFETIMEBOUND {
gs_ = value;
return *this;
}
- VCFeature& sdl(uint32_t value) {
+ VCFeature& sdl(uint32_t value) LIEF_LIFETIMEBOUND {
sdl_ = value;
return *this;
}
- VCFeature& guards(uint32_t value) {
+ VCFeature& guards(uint32_t value) LIEF_LIFETIMEBOUND {
guards_ = value;
return *this;
}
@@ -107,6 +108,7 @@ class LIEF_API VCFeature : public Debug {
~VCFeature() override = default;
std::string to_string() const override;
+
private:
uint32_t pre_vc_ = 0;
uint32_t c_cpp_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/enums.hpp b/deps/LIEF/include/LIEF/PE/enums.hpp
index aa79c37d6f2..e808ce330b0 100644
--- a/deps/LIEF/include/LIEF/PE/enums.hpp
+++ b/deps/LIEF/include/LIEF/PE/enums.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,8 +20,8 @@ namespace LIEF {
namespace PE {
enum class PE_TYPE : uint16_t {
- PE32 = 0x10b, ///< 32bits
- PE32_PLUS = 0x20b ///< 64 bits
+ PE32 = 0x10b, ///< 32bits
+ PE32_PLUS = 0x20b, ///< 64 bits
};
/// Cryptography algorithms
diff --git a/deps/LIEF/include/LIEF/PE/exceptions_info/AArch64/PackedFunction.hpp b/deps/LIEF/include/LIEF/PE/exceptions_info/AArch64/PackedFunction.hpp
index 49dccee0077..56f51faa567 100644
--- a/deps/LIEF/include/LIEF/PE/exceptions_info/AArch64/PackedFunction.hpp
+++ b/deps/LIEF/include/LIEF/PE/exceptions_info/AArch64/PackedFunction.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,11 +29,12 @@ namespace unwind_aarch64 {
///
/// An excepted entry can be packed if the unwind data fit in 30 bits
///
-/// Reference: https://learn.microsoft.com/en-us/cpp/build/arm64-exception-handling?view=msvc-170#packed-unwind-data
+/// Reference:
+/// https://learn.microsoft.com/en-us/cpp/build/arm64-exception-handling?view=msvc-170#packed-unwind-data
class LIEF_API PackedFunction : public RuntimeFunctionAArch64 {
public:
- static std::unique_ptr<PackedFunction>
- parse(Parser& ctx, BinaryStream& strm, uint32_t rva, uint32_t unwind_data);
+ static std::unique_ptr<PackedFunction> parse(Parser& ctx, BinaryStream& strm,
+ uint32_t rva, uint32_t unwind_data);
using RuntimeFunctionAArch64::RuntimeFunctionAArch64;
@@ -121,7 +122,6 @@ class LIEF_API PackedFunction : public RuntimeFunctionAArch64 {
uint8_t h_ = 0;
uint8_t reg_I_ = 0;
uint8_t reg_F_ = 0;
-
};
}
}
diff --git a/deps/LIEF/include/LIEF/PE/exceptions_info/AArch64/UnpackedFunction.hpp b/deps/LIEF/include/LIEF/PE/exceptions_info/AArch64/UnpackedFunction.hpp
index 1d2120b58ac..11554ff3b78 100644
--- a/deps/LIEF/include/LIEF/PE/exceptions_info/AArch64/UnpackedFunction.hpp
+++ b/deps/LIEF/include/LIEF/PE/exceptions_info/AArch64/UnpackedFunction.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,10 +27,10 @@ namespace unwind_aarch64 {
/// This class represents an unpacked AArch64 exception entry
///
-/// Reference: https://learn.microsoft.com/en-us/cpp/build/arm64-exception-handling?view=msvc-170#xdata-records
+/// Reference:
+/// https://learn.microsoft.com/en-us/cpp/build/arm64-exception-handling?view=msvc-170#xdata-records
class LIEF_API UnpackedFunction : public RuntimeFunctionAArch64 {
public:
-
/// This structure describes an epilog scope.
struct epilog_scope_t {
static epilog_scope_t from_raw(uint32_t raw);
@@ -48,12 +48,11 @@ class LIEF_API UnpackedFunction : public RuntimeFunctionAArch64 {
using it_epilog_scopes = ref_iterator<epilog_scopes_t&>;
using it_const_epilog_scopes = const_ref_iterator<const epilog_scopes_t&>;
- static std::unique_ptr<UnpackedFunction>
- parse(Parser& ctx, BinaryStream& strm, uint32_t xdata_rva, uint32_t rva);
+ static std::unique_ptr<UnpackedFunction> parse(Parser& ctx, BinaryStream& strm,
+ uint32_t xdata_rva, uint32_t rva);
UnpackedFunction(uint32_t rva, uint32_t length) :
- RuntimeFunctionAArch64(rva, length, PACKED_FLAGS::UNPACKED)
- {}
+ RuntimeFunctionAArch64(rva, length, PACKED_FLAGS::UNPACKED) {}
UnpackedFunction(const UnpackedFunction&) = default;
UnpackedFunction& operator=(const UnpackedFunction&) = default;
@@ -117,11 +116,11 @@ class LIEF_API UnpackedFunction : public RuntimeFunctionAArch64 {
}
/// Bytes that contain the unwind codes.
- span<const uint8_t> unwind_code() const {
+ span<const uint8_t> unwind_code() const LIEF_LIFETIMEBOUND {
return unwind_code_;
}
- span<uint8_t> unwind_code() {
+ span<uint8_t> unwind_code() LIEF_LIFETIMEBOUND {
return unwind_code_;
}
@@ -143,11 +142,11 @@ class LIEF_API UnpackedFunction : public RuntimeFunctionAArch64 {
}
/// Iterator over the epilog scopes
- it_epilog_scopes epilog_scopes() {
+ it_epilog_scopes epilog_scopes() LIEF_LIFETIMEBOUND {
return epilog_scopes_;
}
- it_const_epilog_scopes epilog_scopes() const {
+ it_const_epilog_scopes epilog_scopes() const LIEF_LIFETIMEBOUND {
return epilog_scopes_;
}
@@ -186,12 +185,12 @@ class LIEF_API UnpackedFunction : public RuntimeFunctionAArch64 {
return *this;
}
- UnpackedFunction& epilog_scopes(epilog_scopes_t scopes) {
+ UnpackedFunction& epilog_scopes(epilog_scopes_t scopes) LIEF_LIFETIMEBOUND {
epilog_scopes_ = std::move(scopes);
return *this;
}
- UnpackedFunction& unwind_code(std::vector<uint8_t> code) {
+ UnpackedFunction& unwind_code(std::vector<uint8_t> code) LIEF_LIFETIMEBOUND {
unwind_code_ = std::move(code);
return *this;
}
diff --git a/deps/LIEF/include/LIEF/PE/exceptions_info/RuntimeFunctionAArch64.hpp b/deps/LIEF/include/LIEF/PE/exceptions_info/RuntimeFunctionAArch64.hpp
index 94f54dd98fe..7e8d70660e7 100644
--- a/deps/LIEF/include/LIEF/PE/exceptions_info/RuntimeFunctionAArch64.hpp
+++ b/deps/LIEF/include/LIEF/PE/exceptions_info/RuntimeFunctionAArch64.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -34,7 +34,8 @@ class Parser;
/// format, this class is inherited by LIEF::PE::unwind_aarch64::PackedFunction
/// and LIEF::PE::unwind_aarch64::UnpackedFunction
///
-/// Reference: https://learn.microsoft.com/en-us/cpp/build/arm64-exception-handling#arm64-exception-handling-information
+/// Reference:
+/// https://learn.microsoft.com/en-us/cpp/build/arm64-exception-handling#arm64-exception-handling-information
class LIEF_API RuntimeFunctionAArch64 : public ExceptionInfo {
public:
enum class PACKED_FLAGS {
@@ -44,14 +45,13 @@ class LIEF_API RuntimeFunctionAArch64 : public ExceptionInfo {
RESERVED = 3,
};
- static std::unique_ptr<RuntimeFunctionAArch64>
- parse(Parser& ctx, BinaryStream& strm);
+ static std::unique_ptr<RuntimeFunctionAArch64> parse(Parser& ctx,
+ BinaryStream& strm);
RuntimeFunctionAArch64(uint64_t RVA, uint32_t length, PACKED_FLAGS flag) :
ExceptionInfo(ARCH::ARM64, RVA),
length_(length),
- flag_(flag)
- {}
+ flag_(flag) {}
RuntimeFunctionAArch64(const RuntimeFunctionAArch64&) = default;
RuntimeFunctionAArch64& operator=(const RuntimeFunctionAArch64&) = default;
@@ -60,7 +60,9 @@ class LIEF_API RuntimeFunctionAArch64 : public ExceptionInfo {
RuntimeFunctionAArch64& operator=(RuntimeFunctionAArch64&&) = default;
std::unique_ptr<ExceptionInfo> clone() const override {
- return std::unique_ptr<RuntimeFunctionAArch64>(new RuntimeFunctionAArch64(*this));
+ return std::unique_ptr<RuntimeFunctionAArch64>(
+ new RuntimeFunctionAArch64(*this)
+ );
}
/// Length of the function in bytes
@@ -85,7 +87,7 @@ class LIEF_API RuntimeFunctionAArch64 : public ExceptionInfo {
return info->arch() == ExceptionInfo::ARCH::ARM64;
}
- ~RuntimeFunctionAArch64() = default;
+ ~RuntimeFunctionAArch64() override = default;
protected:
uint32_t length_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/exceptions_info/RuntimeFunctionX64.hpp b/deps/LIEF/include/LIEF/PE/exceptions_info/RuntimeFunctionX64.hpp
index 2fb4339a2c3..90b0e98db03 100644
--- a/deps/LIEF/include/LIEF/PE/exceptions_info/RuntimeFunctionX64.hpp
+++ b/deps/LIEF/include/LIEF/PE/exceptions_info/RuntimeFunctionX64.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -41,14 +41,13 @@ class Code;
/// Reference: https://learn.microsoft.com/en-us/cpp/build/exception-handling-x64
class LIEF_API RuntimeFunctionX64 : public ExceptionInfo {
public:
-
- /// \private
+ /// @private
LIEF_LOCAL static std::unique_ptr<RuntimeFunctionX64>
- parse(Parser& ctx, BinaryStream& strm, bool skip_unwind = false);
+ parse(Parser& ctx, BinaryStream& strm, bool skip_unwind = false);
- /// \private
- LIEF_LOCAL static ok_error_t
- parse_unwind(Parser& ctx, BinaryStream& strm, RuntimeFunctionX64& func);
+ /// @private
+ LIEF_LOCAL static ok_error_t parse_unwind(Parser& ctx, BinaryStream& strm,
+ RuntimeFunctionX64& func);
enum class UNWIND_FLAGS : uint8_t {
/// The function has an exception handler that should be called when looking
@@ -133,7 +132,21 @@ class LIEF_API RuntimeFunctionX64 : public ExceptionInfo {
enum class UNWIND_REG : uint32_t {
RAX = 0,
- RCX, RDX, RBX, RSP, RBP, RSI, RDI, R8, R9, R10, R11, R12, R13, R14, R15,
+ RCX,
+ RDX,
+ RBX,
+ RSP,
+ RBP,
+ RSI,
+ RDI,
+ R8,
+ R9,
+ R10,
+ R11,
+ R12,
+ R13,
+ R14,
+ R15,
};
/// This structure represents the `UNWIND_INFO` which records the effects
@@ -191,9 +204,8 @@ class LIEF_API RuntimeFunctionX64 : public ExceptionInfo {
/// Pretty representation of this structure as a string
std::string to_string() const;
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const unwind_info_t& info)
- {
+ friend LIEF_API std::ostream& operator<<(std::ostream& os,
+ const unwind_info_t& info) {
os << info.to_string();
return os;
}
@@ -202,8 +214,7 @@ class LIEF_API RuntimeFunctionX64 : public ExceptionInfo {
RuntimeFunctionX64(uint32_t rva_start, uint32_t rva_end, uint32_t unwind_rva) :
ExceptionInfo(ARCH::X86_64, rva_start),
rva_end_(rva_end),
- unwind_rva_(unwind_rva)
- {}
+ unwind_rva_(unwind_rva) {}
RuntimeFunctionX64(const RuntimeFunctionX64&) = default;
RuntimeFunctionX64& operator=(const RuntimeFunctionX64&) = default;
diff --git a/deps/LIEF/include/LIEF/PE/exceptions_info/UnwindCodeAArch64.hpp b/deps/LIEF/include/LIEF/PE/exceptions_info/UnwindCodeAArch64.hpp
index d7e94f1cad6..dc06e01421c 100644
--- a/deps/LIEF/include/LIEF/PE/exceptions_info/UnwindCodeAArch64.hpp
+++ b/deps/LIEF/include/LIEF/PE/exceptions_info/UnwindCodeAArch64.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -45,7 +45,8 @@ enum class OPCODES {
END,
END_C,
SAVE_NEXT,
- SAVE_ANY_REG, E7,
+ SAVE_ANY_REG,
+ E7,
TRAP_FRAME,
MACHINE_FRAME,
CONTEXT,
diff --git a/deps/LIEF/include/LIEF/PE/exceptions_info/UnwindCodeX64.hpp b/deps/LIEF/include/LIEF/PE/exceptions_info/UnwindCodeX64.hpp
index 2116e270379..83898043884 100644
--- a/deps/LIEF/include/LIEF/PE/exceptions_info/UnwindCodeX64.hpp
+++ b/deps/LIEF/include/LIEF/PE/exceptions_info/UnwindCodeX64.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -33,9 +33,10 @@ class LIEF_API Code {
using OPCODE = RuntimeFunctionX64::UNWIND_OPCODES;
using REG = RuntimeFunctionX64::UNWIND_REG;
- /// \private
+ /// @private
static std::unique_ptr<Code>
- create_from(const RuntimeFunctionX64::unwind_info_t& info, SpanStream& stream);
+ create_from(const RuntimeFunctionX64::unwind_info_t& info,
+ SpanStream& stream);
Code() = delete;
Code(const Code&) = default;
@@ -48,12 +49,10 @@ class LIEF_API Code {
Code(OPCODE opcode, uint32_t pos) :
pos_(pos),
- opcode_(opcode)
- {}
+ opcode_(opcode) {}
Code(OPCODE opcode) :
- Code(opcode, 0)
- {}
+ Code(opcode, 0) {}
/// The original opcode
OPCODE opcode() const {
@@ -84,8 +83,7 @@ class LIEF_API Alloc : public Code {
public:
Alloc(OPCODE op, size_t pos, uint32_t size) :
Code(op, pos),
- size_(size)
- {}
+ size_(size) {}
/// The size allocated
uint32_t size() const {
@@ -100,6 +98,7 @@ class LIEF_API Alloc : public Code {
return code->opcode() == OPCODE::ALLOC_LARGE ||
code->opcode() == OPCODE::ALLOC_SMALL;
}
+
protected:
uint32_t size_ = 0;
};
@@ -110,8 +109,7 @@ class LIEF_API PushNonVol : public Code {
PushNonVol() = delete;
PushNonVol(REG reg, size_t pos) :
Code(OPCODE::PUSH_NONVOL, pos),
- reg_(reg)
- {}
+ reg_(reg) {}
std::string to_string() const override;
@@ -136,8 +134,7 @@ class LIEF_API PushMachFrame : public Code {
PushMachFrame() = delete;
PushMachFrame(uint8_t value, size_t pos) :
Code(OPCODE::PUSH_MACHFRAME, pos),
- value_(value)
- {}
+ value_(value) {}
/// 0 or 1
uint8_t value() const {
@@ -163,8 +160,7 @@ class LIEF_API SetFPReg : public Code {
SetFPReg() = delete;
SetFPReg(REG value, size_t pos) :
Code(OPCODE::SET_FPREG, pos),
- reg_(value)
- {}
+ reg_(value) {}
/// Frame pointer register
REG reg() const {
@@ -191,8 +187,7 @@ class LIEF_API SaveNonVolatile : public Code {
SaveNonVolatile(OPCODE op, REG value, size_t pos, uint32_t offset) :
Code(op, pos),
reg_(value),
- offset_(offset)
- {}
+ offset_(offset) {}
REG reg() const {
return reg_;
@@ -222,8 +217,7 @@ class LIEF_API SaveXMM128 : public Code {
SaveXMM128(OPCODE op, uint8_t num, size_t pos, uint32_t offset) :
Code(op, pos),
num_(num),
- offset_(offset)
- {}
+ offset_(offset) {}
uint8_t num() const {
return num_;
@@ -255,8 +249,7 @@ class LIEF_API Epilog : public Code {
Epilog(uint8_t flags, uint8_t size) :
Code(OPCODE::EPILOG, 0),
flags_(flags),
- size_(size)
- {}
+ size_(size) {}
uint8_t flags() const {
return flags_;
@@ -283,8 +276,7 @@ class LIEF_API Epilog : public Code {
class LIEF_API Spare : public Code {
public:
Spare() :
- Code(OPCODE::SPARE, 0)
- {}
+ Code(OPCODE::SPARE, 0) {}
std::string to_string() const override {
return "Noop";
@@ -302,5 +294,3 @@ class LIEF_API Spare : public Code {
}
}
#endif
-
-
diff --git a/deps/LIEF/include/LIEF/PE/exceptions_info/internal_arm64.hpp b/deps/LIEF/include/LIEF/PE/exceptions_info/internal_arm64.hpp
index d2a93c4c778..4683a097c8d 100644
--- a/deps/LIEF/include/LIEF/PE/exceptions_info/internal_arm64.hpp
+++ b/deps/LIEF/include/LIEF/PE/exceptions_info/internal_arm64.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -78,8 +78,7 @@ struct arm64_unpacked_t {
}
uint16_t epilog_count() const {
- return is_extended() ? (data[1] & 0x0000ffff) :
- (data[0] & 0x07C00000) >> 22;
+ return is_extended() ? (data[1] & 0x0000ffff) : (data[0] & 0x07C00000) >> 22;
}
uint8_t code_words() const {
diff --git a/deps/LIEF/include/LIEF/PE/exceptions_info/internal_x64.hpp b/deps/LIEF/include/LIEF/PE/exceptions_info/internal_x64.hpp
index d0394851463..eee9474a737 100644
--- a/deps/LIEF/include/LIEF/PE/exceptions_info/internal_x64.hpp
+++ b/deps/LIEF/include/LIEF/PE/exceptions_info/internal_x64.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/PE/hash.hpp b/deps/LIEF/include/LIEF/PE/hash.hpp
index 92c4a208e31..57b00e2d38b 100644
--- a/deps/LIEF/include/LIEF/PE/hash.hpp
+++ b/deps/LIEF/include/LIEF/PE/hash.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -90,63 +90,63 @@ class LIEF_API Hash : public LIEF::Hash {
using LIEF::Hash::process;
public:
- void visit(const Binary& Binary) override;
- void visit(const DosHeader& dos_header) override;
- void visit(const RichHeader& rich_header) override;
- void visit(const RichEntry& rich_entry) override;
- void visit(const Header& header) override;
- void visit(const OptionalHeader& optional_header) override;
- void visit(const DataDirectory& data_directory) override;
- void visit(const Section& section) override;
- void visit(const Relocation& relocation) override;
- void visit(const RelocationEntry& relocation_entry) override;
- void visit(const Export& export_) override;
- void visit(const ExportEntry& export_entry) override;
- void visit(const TLS& tls) override;
- void visit(const Debug& debug) override;
- void visit(const CodeView& cv) override;
- void visit(const CodeViewPDB& cvpdb) override;
- void visit(const Import& import) override;
- void visit(const ImportEntry& import_entry) override;
- void visit(const DelayImport& import) override;
- void visit(const DelayImportEntry& import_entry) override;
- void visit(const ResourceNode& resource_node) override;
- void visit(const ResourceData& resource_data) override;
+ void visit(const Binary& Binary) override;
+ void visit(const DosHeader& dos_header) override;
+ void visit(const RichHeader& rich_header) override;
+ void visit(const RichEntry& rich_entry) override;
+ void visit(const Header& header) override;
+ void visit(const OptionalHeader& optional_header) override;
+ void visit(const DataDirectory& data_directory) override;
+ void visit(const Section& section) override;
+ void visit(const Relocation& relocation) override;
+ void visit(const RelocationEntry& relocation_entry) override;
+ void visit(const Export& export_) override;
+ void visit(const ExportEntry& export_entry) override;
+ void visit(const TLS& tls) override;
+ void visit(const Debug& debug) override;
+ void visit(const CodeView& cv) override;
+ void visit(const CodeViewPDB& cvpdb) override;
+ void visit(const Import& import) override;
+ void visit(const ImportEntry& import_entry) override;
+ void visit(const DelayImport& import) override;
+ void visit(const DelayImportEntry& import_entry) override;
+ void visit(const ResourceNode& resource_node) override;
+ void visit(const ResourceData& resource_data) override;
void visit(const ResourceDirectory& resource_directory) override;
- void visit(const ResourcesManager& resources_manager) override;
- void visit(const ResourceVersion& resource_version) override;
- void visit(const ResourceStringFileInfo& resource_sfi) override;
- void visit(const ResourceVarFileInfo& resource_vfi) override;
- void visit(const ResourceIcon& resource_icon) override;
- void visit(const ResourceDialogExtended& dialog) override;
- void visit(const ResourceDialogRegular& dialog) override;
- void visit(const ResourceStringTable& string_table) override;
- void visit(const ResourceAccelerator& acc) override;
- void visit(const Signature& signature) override;
- void visit(const x509& x509) override;
- void visit(const SignerInfo& signerinfo) override;
- void visit(const ContentInfo& contentinfo) override;
- void visit(const GenericContent& content) override;
- void visit(const SpcIndirectData& content) override;
- void visit(const Attribute& attr) override;
- void visit(const ContentType& attr) override;
- void visit(const GenericType& attr) override;
- void visit(const MsCounterSign& attr) override;
- void visit(const MsSpcNestedSignature& attr) override;
- void visit(const MsSpcStatementType& attr) override;
- void visit(const MsManifestBinaryID& attr) override;
- void visit(const PKCS9AtSequenceNumber& attr) override;
- void visit(const PKCS9CounterSignature& attr) override;
- void visit(const PKCS9MessageDigest& attr) override;
- void visit(const PKCS9SigningTime& attr) override;
- void visit(const SpcSpOpusInfo& attr) override;
- void visit(const SpcRelaxedPeMarkerCheck& attr) override;
- void visit(const SigningCertificateV2& attr) override;
- void visit(const CodeIntegrity& code_integrity) override;
- void visit(const LoadConfiguration& config) override;
- void visit(const Pogo& pogo) override;
- void visit(const PogoEntry& entry) override;
- void visit(const Repro& entry) override;
+ void visit(const ResourcesManager& resources_manager) override;
+ void visit(const ResourceVersion& resource_version) override;
+ void visit(const ResourceStringFileInfo& resource_sfi) override;
+ void visit(const ResourceVarFileInfo& resource_vfi) override;
+ void visit(const ResourceIcon& resource_icon) override;
+ void visit(const ResourceDialogExtended& dialog) override;
+ void visit(const ResourceDialogRegular& dialog) override;
+ void visit(const ResourceStringTable& string_table) override;
+ void visit(const ResourceAccelerator& acc) override;
+ void visit(const Signature& signature) override;
+ void visit(const x509& x509) override;
+ void visit(const SignerInfo& signerinfo) override;
+ void visit(const ContentInfo& contentinfo) override;
+ void visit(const GenericContent& content) override;
+ void visit(const SpcIndirectData& content) override;
+ void visit(const Attribute& attr) override;
+ void visit(const ContentType& attr) override;
+ void visit(const GenericType& attr) override;
+ void visit(const MsCounterSign& attr) override;
+ void visit(const MsSpcNestedSignature& attr) override;
+ void visit(const MsSpcStatementType& attr) override;
+ void visit(const MsManifestBinaryID& attr) override;
+ void visit(const PKCS9AtSequenceNumber& attr) override;
+ void visit(const PKCS9CounterSignature& attr) override;
+ void visit(const PKCS9MessageDigest& attr) override;
+ void visit(const PKCS9SigningTime& attr) override;
+ void visit(const SpcSpOpusInfo& attr) override;
+ void visit(const SpcRelaxedPeMarkerCheck& attr) override;
+ void visit(const SigningCertificateV2& attr) override;
+ void visit(const CodeIntegrity& code_integrity) override;
+ void visit(const LoadConfiguration& config) override;
+ void visit(const Pogo& pogo) override;
+ void visit(const PogoEntry& entry) override;
+ void visit(const Repro& entry) override;
~Hash() override;
};
diff --git a/deps/LIEF/include/LIEF/PE/json.hpp b/deps/LIEF/include/LIEF/PE/json.hpp
index fe08a17a359..e681ddd2ddb 100644
--- a/deps/LIEF/include/LIEF/PE/json.hpp
+++ b/deps/LIEF/include/LIEF/PE/json.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/PE/resources/AcceleratorCodes.hpp b/deps/LIEF/include/LIEF/PE/resources/AcceleratorCodes.hpp
index efe99cad26d..7a870ca9100 100644
--- a/deps/LIEF/include/LIEF/PE/resources/AcceleratorCodes.hpp
+++ b/deps/LIEF/include/LIEF/PE/resources/AcceleratorCodes.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,178 +22,178 @@ namespace LIEF {
namespace PE {
/// From https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
-enum class ACCELERATOR_CODES: uint32_t {
- LBUTTON = 0x01,
- RBUTTON = 0x02,
- CANCEL = 0x03,
- MBUTTON = 0x04,
- XBUTTON1_K = 0x05,
- XBUTTON2_K = 0x06,
- BACK = 0x08,
- TAB = 0x09,
- CLEAR = 0x0C,
- RETURN = 0x0D,
- SHIFT = 0x10,
- CONTROL = 0x11,
- MENU = 0x12,
- PAUSE = 0x13,
- CAPITAL = 0x14,
- KANA = 0x15,
- IME_ON = 0x16,
- JUNJA = 0x17,
- FINAL = 0x18,
- KANJI = 0x19,
- IME_OFF = 0x1A,
- ESCAPE = 0x1B,
- CONVERT = 0x1C,
- NONCONVERT = 0x1D,
- ACCEPT = 0x1E,
- MODECHANGE = 0x1F,
- SPACE = 0x20,
- PRIOR = 0x21,
- NEXT = 0x22,
- END = 0x23,
- HOME = 0x24,
- LEFT = 0x25,
- UP = 0x26,
- RIGHT = 0x27,
- DOWN = 0x28,
- SELECT = 0x29,
- PRINT = 0x2A,
- EXECUTE = 0x2B,
- SNAPSHOT = 0x2C,
- INSERT = 0x2D,
- DELETE_K = 0x2E,
- HELP = 0x2F,
- NUM_0 = 0x30,
- NUM_1 = 0x31,
- NUM_2 = 0x32,
- NUM_3 = 0x33,
- NUM_4 = 0x34,
- NUM_5 = 0x35,
- NUM_6 = 0x36,
- NUM_7 = 0x37,
- NUM_8 = 0x38,
- NUM_9 = 0x39,
- A = 0x41,
- B = 0x42,
- C = 0x43,
- D = 0x44,
- E = 0x45,
- F = 0x46,
- G = 0x47,
- H = 0x48,
- I = 0x49,
- J = 0x4A,
- K = 0x4B,
- L = 0x4C,
- M = 0x4D,
- N = 0x4E,
- O = 0x4F,
- P = 0x50,
- Q = 0x51,
- R = 0x52,
- S = 0x53,
- T = 0x54,
- U = 0x55,
- V = 0x56,
- W = 0x57,
- X = 0x58,
- Y = 0x59,
- Z = 0x5A,
- LWIN = 0x5B,
- RWIN = 0x5C,
- APPS = 0x5D,
- SLEEP = 0x5F,
- NUMPAD0 = 0x60,
- NUMPAD1 = 0x61,
- NUMPAD2 = 0x62,
- NUMPAD3 = 0x63,
- NUMPAD4 = 0x64,
- NUMPAD5 = 0x65,
- NUMPAD6 = 0x66,
- NUMPAD7 = 0x67,
- NUMPAD8 = 0x68,
- NUMPAD9 = 0x69,
- MULTIPLY = 0x6A,
- ADD = 0x6B,
- SEPARATOR = 0x6C,
- SUBTRACT = 0x6D,
- DECIMAL = 0x6E,
- DIVIDE = 0x6F,
- F1 = 0x70,
- F2 = 0x71,
- F3 = 0x72,
- F4 = 0x73,
- F5 = 0x74,
- F6 = 0x75,
- F7 = 0x76,
- F8 = 0x77,
- F9 = 0x78,
- F10 = 0x79,
- F11 = 0x7A,
- F12 = 0x7B,
- F13 = 0x7C,
- F14 = 0x7D,
- F15 = 0x7E,
- F16 = 0x7F,
- F17 = 0x80,
- F18 = 0x81,
- F19 = 0x82,
- F20 = 0x83,
- F21 = 0x84,
- F22 = 0x85,
- F23 = 0x86,
- F24 = 0x87,
- NUMLOCK = 0x90,
- SCROLL = 0x91,
- LSHIFT = 0xA0,
- RSHIFT = 0xA1,
- LCONTROL = 0xA2,
- RCONTROL = 0xA3,
- LMENU = 0xA4,
- RMENU = 0xA5,
- BROWSER_BACK = 0xA6,
- BROWSER_FORWARD = 0xA7,
- BROWSER_REFRESH = 0xA8,
- BROWSER_STOP = 0xA9,
- BROWSER_SEARCH = 0xAA,
- BROWSER_FAVORITES = 0xAB,
- BROWSER_HOME = 0xAC,
- VOLUME_MUTE = 0xAD,
- VOLUME_DOWN = 0xAE,
- VOLUME_UP = 0xAF,
- MEDIA_NEXT_TRACK = 0xB0,
- MEDIA_PREV_TRACK = 0xB1,
- MEDIA_STOP = 0xB2,
- MEDIA_PLAY_PAUSE = 0xB3,
- LAUNCH_MAIL = 0xB4,
+enum class ACCELERATOR_CODES : uint32_t {
+ LBUTTON = 0x01,
+ RBUTTON = 0x02,
+ CANCEL = 0x03,
+ MBUTTON = 0x04,
+ XBUTTON1_K = 0x05,
+ XBUTTON2_K = 0x06,
+ BACK = 0x08,
+ TAB = 0x09,
+ CLEAR = 0x0C,
+ RETURN = 0x0D,
+ SHIFT = 0x10,
+ CONTROL = 0x11,
+ MENU = 0x12,
+ PAUSE = 0x13,
+ CAPITAL = 0x14,
+ KANA = 0x15,
+ IME_ON = 0x16,
+ JUNJA = 0x17,
+ FINAL = 0x18,
+ KANJI = 0x19,
+ IME_OFF = 0x1A,
+ ESCAPE = 0x1B,
+ CONVERT = 0x1C,
+ NONCONVERT = 0x1D,
+ ACCEPT = 0x1E,
+ MODECHANGE = 0x1F,
+ SPACE = 0x20,
+ PRIOR = 0x21,
+ NEXT = 0x22,
+ END = 0x23,
+ HOME = 0x24,
+ LEFT = 0x25,
+ UP = 0x26,
+ RIGHT = 0x27,
+ DOWN = 0x28,
+ SELECT = 0x29,
+ PRINT = 0x2A,
+ EXECUTE = 0x2B,
+ SNAPSHOT = 0x2C,
+ INSERT = 0x2D,
+ DELETE_K = 0x2E,
+ HELP = 0x2F,
+ NUM_0 = 0x30,
+ NUM_1 = 0x31,
+ NUM_2 = 0x32,
+ NUM_3 = 0x33,
+ NUM_4 = 0x34,
+ NUM_5 = 0x35,
+ NUM_6 = 0x36,
+ NUM_7 = 0x37,
+ NUM_8 = 0x38,
+ NUM_9 = 0x39,
+ A = 0x41,
+ B = 0x42,
+ C = 0x43,
+ D = 0x44,
+ E = 0x45,
+ F = 0x46,
+ G = 0x47,
+ H = 0x48,
+ I = 0x49,
+ J = 0x4A,
+ K = 0x4B,
+ L = 0x4C,
+ M = 0x4D,
+ N = 0x4E,
+ O = 0x4F,
+ P = 0x50,
+ Q = 0x51,
+ R = 0x52,
+ S = 0x53,
+ T = 0x54,
+ U = 0x55,
+ V = 0x56,
+ W = 0x57,
+ X = 0x58,
+ Y = 0x59,
+ Z = 0x5A,
+ LWIN = 0x5B,
+ RWIN = 0x5C,
+ APPS = 0x5D,
+ SLEEP = 0x5F,
+ NUMPAD0 = 0x60,
+ NUMPAD1 = 0x61,
+ NUMPAD2 = 0x62,
+ NUMPAD3 = 0x63,
+ NUMPAD4 = 0x64,
+ NUMPAD5 = 0x65,
+ NUMPAD6 = 0x66,
+ NUMPAD7 = 0x67,
+ NUMPAD8 = 0x68,
+ NUMPAD9 = 0x69,
+ MULTIPLY = 0x6A,
+ ADD = 0x6B,
+ SEPARATOR = 0x6C,
+ SUBTRACT = 0x6D,
+ DECIMAL = 0x6E,
+ DIVIDE = 0x6F,
+ F1 = 0x70,
+ F2 = 0x71,
+ F3 = 0x72,
+ F4 = 0x73,
+ F5 = 0x74,
+ F6 = 0x75,
+ F7 = 0x76,
+ F8 = 0x77,
+ F9 = 0x78,
+ F10 = 0x79,
+ F11 = 0x7A,
+ F12 = 0x7B,
+ F13 = 0x7C,
+ F14 = 0x7D,
+ F15 = 0x7E,
+ F16 = 0x7F,
+ F17 = 0x80,
+ F18 = 0x81,
+ F19 = 0x82,
+ F20 = 0x83,
+ F21 = 0x84,
+ F22 = 0x85,
+ F23 = 0x86,
+ F24 = 0x87,
+ NUMLOCK = 0x90,
+ SCROLL = 0x91,
+ LSHIFT = 0xA0,
+ RSHIFT = 0xA1,
+ LCONTROL = 0xA2,
+ RCONTROL = 0xA3,
+ LMENU = 0xA4,
+ RMENU = 0xA5,
+ BROWSER_BACK = 0xA6,
+ BROWSER_FORWARD = 0xA7,
+ BROWSER_REFRESH = 0xA8,
+ BROWSER_STOP = 0xA9,
+ BROWSER_SEARCH = 0xAA,
+ BROWSER_FAVORITES = 0xAB,
+ BROWSER_HOME = 0xAC,
+ VOLUME_MUTE = 0xAD,
+ VOLUME_DOWN = 0xAE,
+ VOLUME_UP = 0xAF,
+ MEDIA_NEXT_TRACK = 0xB0,
+ MEDIA_PREV_TRACK = 0xB1,
+ MEDIA_STOP = 0xB2,
+ MEDIA_PLAY_PAUSE = 0xB3,
+ LAUNCH_MAIL = 0xB4,
LAUNCH_MEDIA_SELECT = 0xB5,
- LAUNCH_APP1 = 0xB6,
- LAUNCH_APP2 = 0xB7,
- OEM_1 = 0xBA,
- OEM_PLUS = 0xBB,
- OEM_COMMA = 0xBC,
- OEM_MINUS = 0xBD,
- OEM_PERIOD = 0xBE,
- OEM_2 = 0xBF,
- OEM_4 = 0xDB,
- OEM_5 = 0xDC,
- OEM_6 = 0xDD,
- OEM_7 = 0xDE,
- OEM_8 = 0xDF,
- OEM_102 = 0xE2,
- PROCESSKEY = 0xE5,
- PACKET = 0xE7,
- ATTN = 0xF6,
- CRSEL = 0xF7,
- EXSEL = 0xF8,
- EREOF = 0xF9,
- PLAY = 0xFA,
- ZOOM = 0xFB,
- NONAME = 0xFC,
- PA1 = 0xFD,
- OEM_CLEAR = 0xFE,
+ LAUNCH_APP1 = 0xB6,
+ LAUNCH_APP2 = 0xB7,
+ OEM_1 = 0xBA,
+ OEM_PLUS = 0xBB,
+ OEM_COMMA = 0xBC,
+ OEM_MINUS = 0xBD,
+ OEM_PERIOD = 0xBE,
+ OEM_2 = 0xBF,
+ OEM_4 = 0xDB,
+ OEM_5 = 0xDC,
+ OEM_6 = 0xDD,
+ OEM_7 = 0xDE,
+ OEM_8 = 0xDF,
+ OEM_102 = 0xE2,
+ PROCESSKEY = 0xE5,
+ PACKET = 0xE7,
+ ATTN = 0xF6,
+ CRSEL = 0xF7,
+ EXSEL = 0xF8,
+ EREOF = 0xF9,
+ PLAY = 0xFA,
+ ZOOM = 0xFB,
+ NONAME = 0xFC,
+ PA1 = 0xFD,
+ OEM_CLEAR = 0xFE,
};
LIEF_API const char* to_string(ACCELERATOR_CODES code);
diff --git a/deps/LIEF/include/LIEF/PE/resources/ResourceAccelerator.hpp b/deps/LIEF/include/LIEF/PE/resources/ResourceAccelerator.hpp
index 9ba111e3362..c6a923d8b2f 100644
--- a/deps/LIEF/include/LIEF/PE/resources/ResourceAccelerator.hpp
+++ b/deps/LIEF/include/LIEF/PE/resources/ResourceAccelerator.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,7 +16,6 @@
#ifndef LIEF_PE_RESOURCE_ACCELERATOR_H
#define LIEF_PE_RESOURCE_ACCELERATOR_H
-#include <string>
#include <ostream>
#include <vector>
@@ -37,8 +36,8 @@ struct pe_resource_acceltableentry;
class LIEF_API ResourceAccelerator : public Object {
friend class ResourcesManager;
- public:
+ public:
/// From: https://docs.microsoft.com/en-us/windows/win32/menurc/acceltableentry
enum class FLAGS : uint32_t {
/// The accelerator key is a virtual-key code. If this flag is not specified,
@@ -122,7 +121,8 @@ class LIEF_API ResourceAccelerator : public Object {
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const ResourceAccelerator& acc);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const ResourceAccelerator& acc);
private:
int16_t flags_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/resources/ResourceDialog.hpp b/deps/LIEF/include/LIEF/PE/resources/ResourceDialog.hpp
index 68d51ee8418..3613cbf2dea 100644
--- a/deps/LIEF/include/LIEF/PE/resources/ResourceDialog.hpp
+++ b/deps/LIEF/include/LIEF/PE/resources/ResourceDialog.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
#ifndef LIEF_PE_RESOURCE_DIALOG_H
#define LIEF_PE_RESOURCE_DIALOG_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/Object.hpp"
#include "LIEF/enums.hpp"
@@ -36,7 +37,8 @@ class ResourceData;
/// an extended Dialog. These different kinds of Dialogs are documented by MS
/// at the following addresses:
///
-/// - https://learn.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-dlgtemplate
+/// -
+/// https://learn.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-dlgtemplate
/// - https://learn.microsoft.com/fr-fr/windows/win32/dlgbox/dlgitemtemplateex
class LIEF_API ResourceDialog : public Object {
public:
@@ -63,11 +65,14 @@ class LIEF_API ResourceDialog : public Object {
/// Enum for discriminating the kind of the Dialog (regular vs extended)
enum class TYPE {
UNKNOWN = 0,
- REGULAR, EXTENDED,
+ REGULAR,
+ EXTENDED,
};
- /// From: https://learn.microsoft.com/en-us/windows/win32/dlgbox/dialog-box-styles
+ /// From:
+ /// https://learn.microsoft.com/en-us/windows/win32/dlgbox/dialog-box-styles
enum class DIALOG_STYLES : uint32_t {
+ // clang-format off
ABSALIGN = 0x0001,
SYSMODAL = 0x0002,
LOCALEDIT = 0x0020,
@@ -83,66 +88,75 @@ class LIEF_API ResourceDialog : public Object {
CENTERMOUSE = 0x1000,
CONTEXTHELP = 0x2000,
SHELLFONT = SETFONT | FIXEDSYS,
+ // clang-format on
};
/// From: https://docs.microsoft.com/en-us/windows/win32/winmsg/window-styles
enum class WINDOW_STYLES : uint32_t {
- OVERLAPPED = 0x00000000,
- POPUP = 0x80000000,
- CHILD = 0x40000000,
- MINIMIZE = 0x20000000,
- VISIBLE = 0x10000000,
- DISABLED = 0x08000000,
- CLIPSIBLINGS = 0x04000000,
- CLIPCHILDREN = 0x02000000,
- MAXIMIZE = 0x01000000,
- CAPTION = 0x00C00000,
- BORDER = 0x00800000,
- DLGFRAME = 0x00400000,
- VSCROLL = 0x00200000,
- HSCROLL = 0x00100000,
- SYSMENU = 0x00080000,
- THICKFRAME = 0x00040000,
- GROUP = 0x00020000,
- TABSTOP = 0x00010000,
+ // clang-format off
+ OVERLAPPED = 0x00000000,
+ POPUP = 0x80000000,
+ CHILD = 0x40000000,
+ MINIMIZE = 0x20000000,
+ VISIBLE = 0x10000000,
+ DISABLED = 0x08000000,
+ CLIPSIBLINGS = 0x04000000,
+ CLIPCHILDREN = 0x02000000,
+ MAXIMIZE = 0x01000000,
+ CAPTION = 0x00C00000,
+ BORDER = 0x00800000,
+ DLGFRAME = 0x00400000,
+ VSCROLL = 0x00200000,
+ HSCROLL = 0x00100000,
+ SYSMENU = 0x00080000,
+ THICKFRAME = 0x00040000,
+ GROUP = 0x00020000,
+ TABSTOP = 0x00010000,
+ // clang-format on
};
- /// From https://docs.microsoft.com/en-us/windows/win32/winmsg/extended-window-styles
+ /// From
+ /// https://docs.microsoft.com/en-us/windows/win32/winmsg/extended-window-styles
enum class WINDOW_EXTENDED_STYLES : uint32_t {
- DLGMODALFRAME = 0x00000001,
- NOPARENTNOTIFY = 0x00000004,
- TOPMOST = 0x00000008,
- ACCEPTFILES = 0x00000010,
- TRANSPARENT_STY = 0x00000020,
- MDICHILD = 0x00000040,
- TOOLWINDOW = 0x00000080,
- WINDOWEDGE = 0x00000100,
- CLIENTEDGE = 0x00000200,
- CONTEXTHELP = 0x00000400,
-
- RIGHT = 0x00001000,
- LEFT = 0x00000000,
- RTLREADING = 0x00002000,
- LEFTSCROLLBAR = 0x00004000,
-
- CONTROLPARENT = 0x00010000,
- STATICEDGE = 0x00020000,
- APPWINDOW = 0x00040000,
+ // clang-format off
+ DLGMODALFRAME = 0x00000001,
+ NOPARENTNOTIFY = 0x00000004,
+ TOPMOST = 0x00000008,
+ ACCEPTFILES = 0x00000010,
+ TRANSPARENT_STY = 0x00000020,
+ MDICHILD = 0x00000040,
+ TOOLWINDOW = 0x00000080,
+ WINDOWEDGE = 0x00000100,
+ CLIENTEDGE = 0x00000200,
+ CONTEXTHELP = 0x00000400,
+
+ RIGHT = 0x00001000,
+ LEFT = 0x00000000,
+ RTLREADING = 0x00002000,
+ LEFTSCROLLBAR = 0x00004000,
+
+ CONTROLPARENT = 0x00010000,
+ STATICEDGE = 0x00020000,
+ APPWINDOW = 0x00040000,
+ // clang-format on
};
- /// From: https://learn.microsoft.com/en-us/windows/win32/controls/common-control-styles
+ /// From:
+ /// https://learn.microsoft.com/en-us/windows/win32/controls/common-control-styles
enum class CONTROL_STYLES : uint32_t {
- TOP = 0x00000001,
- NOMOVEY = 0x00000002,
- BOTTOM = 0x00000003,
- NORESIZE = 0x00000004,
- NOPARENTALIGN = 0x00000008,
- ADJUSTABLE = 0x00000020,
- NODIVIDER = 0x00000040,
- VERT = 0x00000080,
- LEFT = VERT | TOP,
- RIGHT = VERT | BOTTOM,
- NOMOVEX = VERT | NOMOVEY
+ // clang-format off
+ TOP = 0x00000001,
+ NOMOVEY = 0x00000002,
+ BOTTOM = 0x00000003,
+ NORESIZE = 0x00000004,
+ NOPARENTALIGN = 0x00000008,
+ ADJUSTABLE = 0x00000020,
+ NODIVIDER = 0x00000040,
+ VERT = 0x00000080,
+ LEFT = VERT | TOP,
+ RIGHT = VERT | BOTTOM,
+ NOMOVEX = VERT | NOMOVEY,
+ // clang-format on
};
/// This class represents an element of the dialog. It can be for instance,
@@ -161,12 +175,12 @@ class LIEF_API ResourceDialog : public Object {
Item& operator=(Item&&) = default;
enum class WINDOW_CLASS : uint32_t {
- BUTTON = 0x0080,
- EDIT = 0x0081,
- STATIC = 0x0082,
- LIST_BOX = 0x0083,
+ BUTTON = 0x0080,
+ EDIT = 0x0081,
+ STATIC = 0x0082,
+ LIST_BOX = 0x0083,
SCROLL_BAR = 0x0084,
- COMBO_BOX = 0x0085,
+ COMBO_BOX = 0x0085,
};
/// The style of the control. This can be a combination of WINDOW_STYLES or
@@ -208,18 +222,26 @@ class LIEF_API ResourceDialog : public Object {
/// The x-coordinate, in dialog box units, of the upper-left corner of the
/// control. This coordinate is always relative to the upper-left corner of
/// the dialog box's client area.
- int16_t x() const { return x_; }
+ int16_t x() const {
+ return x_;
+ }
/// The y-coordinate, in dialog box units, of the upper-left corner of the
/// control. This coordinate is always relative to the upper-left corner of
/// the dialog box's client area.
- int16_t y() const { return y_; }
+ int16_t y() const {
+ return y_;
+ }
/// The width, in dialog box units, of the control.
- int16_t cx() const { return cx_; }
+ int16_t cx() const {
+ return cx_;
+ }
/// The height, in dialog box units, of the control.
- int16_t cy() const { return cy_; }
+ int16_t cy() const {
+ return cy_;
+ }
Item& style(uint32_t value) {
style_ = value;
@@ -231,12 +253,27 @@ class LIEF_API ResourceDialog : public Object {
return *this;
}
- Item& x(int16_t value) { x_ = value; return *this; }
- Item& y(int16_t value) { y_ = value; return *this; }
- Item& cx(int16_t value) { cx_ = value; return *this; }
- Item& cy(int16_t value) { cy_ = value; return *this; }
+ Item& x(int16_t value) {
+ x_ = value;
+ return *this;
+ }
+ Item& y(int16_t value) {
+ y_ = value;
+ return *this;
+ }
+ Item& cx(int16_t value) {
+ cx_ = value;
+ return *this;
+ }
+ Item& cy(int16_t value) {
+ cy_ = value;
+ return *this;
+ }
- Item& id(int32_t value) { id_ = value; return *this; }
+ Item& id(int32_t value) {
+ id_ = value;
+ return *this;
+ }
Item& data(std::vector<uint8_t> creation_data) {
creation_data_ = std::move(creation_data);
@@ -280,11 +317,11 @@ class LIEF_API ResourceDialog : public Object {
}
/// Creation data that is passed to the control's window procedure
- span<const uint8_t> creation_data() const {
+ span<const uint8_t> creation_data() const LIEF_LIFETIMEBOUND {
return creation_data_;
}
- span<uint8_t> creation_data() {
+ span<uint8_t> creation_data() LIEF_LIFETIMEBOUND {
return creation_data_;
}
@@ -325,8 +362,7 @@ class LIEF_API ResourceDialog : public Object {
ResourceDialog& operator=(ResourceDialog&&) = default;
ResourceDialog(TYPE ty) :
- type_(ty)
- {}
+ type_(ty) {}
virtual std::unique_ptr<ResourceDialog> clone() const = 0;
@@ -350,32 +386,52 @@ class LIEF_API ResourceDialog : public Object {
/// The x-coordinate, in dialog box units, of the upper-left corner of the
/// dialog box.
- int16_t x() const { return x_; }
+ int16_t x() const {
+ return x_;
+ }
/// The y-coordinate, in dialog box units, of the upper-left corner of the
/// dialog box.
- int16_t y() const { return y_; }
+ int16_t y() const {
+ return y_;
+ }
/// The width, in dialog box units, of the dialog box.
- int16_t cx() const { return cx_; }
+ int16_t cx() const {
+ return cx_;
+ }
/// The height, in dialog box units, of the dialog box.
- int16_t cy() const { return cy_; }
+ int16_t cy() const {
+ return cy_;
+ }
- ResourceDialog& style(uint32_t value) {
+ ResourceDialog& style(uint32_t value) LIEF_LIFETIMEBOUND {
style_ = value;
return *this;
}
- ResourceDialog& extended_style(uint32_t value) {
+ ResourceDialog& extended_style(uint32_t value) LIEF_LIFETIMEBOUND {
extended_style_ = value;
return *this;
}
- ResourceDialog& x(int16_t value) { x_ = value; return *this; }
- ResourceDialog& y(int16_t value) { y_ = value; return *this; }
- ResourceDialog& cx(int16_t value) { cx_ = value; return *this; }
- ResourceDialog& cy(int16_t value) { cy_ = value; return *this; }
+ ResourceDialog& x(int16_t value) LIEF_LIFETIMEBOUND {
+ x_ = value;
+ return *this;
+ }
+ ResourceDialog& y(int16_t value) LIEF_LIFETIMEBOUND {
+ y_ = value;
+ return *this;
+ }
+ ResourceDialog& cx(int16_t value) LIEF_LIFETIMEBOUND {
+ cx_ = value;
+ return *this;
+ }
+ ResourceDialog& cy(int16_t value) LIEF_LIFETIMEBOUND {
+ cy_ = value;
+ return *this;
+ }
ResourceDialog& menu(std::u16string title) {
menu_.string = std::move(title);
@@ -399,24 +455,24 @@ class LIEF_API ResourceDialog : public Object {
return *this;
}
- ResourceDialog& title(std::u16string value) {
+ ResourceDialog& title(std::u16string value) LIEF_LIFETIMEBOUND {
title_ = std::move(value);
return *this;
}
- ResourceDialog& title(const std::string& title);
+ ResourceDialog& title(const std::string& title) LIEF_LIFETIMEBOUND;
- /// Check if the dialog used to given dialog style
+ /// Check if the dialog uses the given dialog style
bool has(DIALOG_STYLES style) const {
return (style_ & (uint32_t)style) != 0;
}
- /// Check if the dialog used to given window style
+ /// Check if the dialog uses the given window style
bool has(WINDOW_STYLES style) const {
return (style_ & (uint32_t)style) != 0;
}
- /// Check if the dialog used to given extended window style
+ /// Check if the dialog uses the given extended window style
bool has(WINDOW_EXTENDED_STYLES style) const {
return (extended_style_ & (uint32_t)style) != 0;
}
@@ -431,7 +487,7 @@ class LIEF_API ResourceDialog : public Object {
std::vector<WINDOW_EXTENDED_STYLES> windows_ext_styles_list() const;
/// title of the dialog box
- const std::u16string& title() const {
+ const std::u16string& title() const LIEF_LIFETIMEBOUND {
return title_;
}
@@ -466,7 +522,8 @@ class LIEF_API ResourceDialog : public Object {
return nullptr;
}
- friend LIEF_API std::ostream& operator<<(std::ostream& os, const ResourceDialog& dialog) {
+ friend LIEF_API std::ostream& operator<<(std::ostream& os,
+ const ResourceDialog& dialog) {
os << dialog.to_string();
return os;
}
@@ -474,10 +531,13 @@ class LIEF_API ResourceDialog : public Object {
protected:
static ok_error_t parse_menu(ResourceDialog& dialog, BinaryStream& stream);
static ok_error_t parse_class(ResourceDialog& dialog, BinaryStream& stream);
- static ok_error_t parse_class(ResourceDialog::Item& dialog, BinaryStream& stream);
+ static ok_error_t parse_class(ResourceDialog::Item& dialog,
+ BinaryStream& stream);
static ok_error_t parse_title(ResourceDialog& dialog, BinaryStream& stream);
- static ok_error_t parse_title(ResourceDialog::Item& dialog, BinaryStream& stream);
- static ok_error_t parse_creation_data(ResourceDialog::Item& item, BinaryStream& stream);
+ static ok_error_t parse_title(ResourceDialog::Item& dialog,
+ BinaryStream& stream);
+ static ok_error_t parse_creation_data(ResourceDialog::Item& item,
+ BinaryStream& stream);
TYPE type_ = TYPE::UNKNOWN;
uint32_t style_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/resources/ResourceDialogExtended.hpp b/deps/LIEF/include/LIEF/PE/resources/ResourceDialogExtended.hpp
index bd7c9e1514f..c2167232a2e 100644
--- a/deps/LIEF/include/LIEF/PE/resources/ResourceDialogExtended.hpp
+++ b/deps/LIEF/include/LIEF/PE/resources/ResourceDialogExtended.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,7 +31,6 @@ namespace PE {
/// See: https://learn.microsoft.com/en-us/windows/win32/dlgbox/dlgtemplateex
class LIEF_API ResourceDialogExtended : public ResourceDialog {
public:
-
/// This class represents a `DLGTEMPLATEEX` item (`DLGITEMTEMPLATEEX`).
///
/// See: https://learn.microsoft.com/en-us/windows/win32/dlgbox/dlgitemtemplateex
@@ -94,7 +93,8 @@ class LIEF_API ResourceDialogExtended : public ResourceDialog {
std::string to_string() const;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const font_t& font) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const font_t& font) {
os << font.to_string();
return os;
}
@@ -105,8 +105,7 @@ class LIEF_API ResourceDialogExtended : public ResourceDialog {
using it_const_items = const_ref_iterator<const items_t&>;
ResourceDialogExtended() :
- ResourceDialog(ResourceDialog::TYPE::EXTENDED)
- {}
+ ResourceDialog(ResourceDialog::TYPE::EXTENDED) {}
ResourceDialogExtended(const ResourceDialogExtended&) = default;
ResourceDialogExtended& operator=(const ResourceDialogExtended&) = default;
@@ -117,7 +116,9 @@ class LIEF_API ResourceDialogExtended : public ResourceDialog {
static std::unique_ptr<ResourceDialogExtended> create(BinaryStream& stream);
std::unique_ptr<ResourceDialog> clone() const override {
- return std::unique_ptr<ResourceDialogExtended>(new ResourceDialogExtended(*this));
+ return std::unique_ptr<ResourceDialogExtended>(
+ new ResourceDialogExtended(*this)
+ );
}
static bool classof(const ResourceDialog* dialog) {
@@ -151,11 +152,11 @@ class LIEF_API ResourceDialogExtended : public ResourceDialog {
}
/// Iterator over the control items of this dialog box
- it_items items() {
+ it_items items() LIEF_LIFETIMEBOUND {
return items_;
}
- it_const_items items() const {
+ it_const_items items() const LIEF_LIFETIMEBOUND {
return items_;
}
@@ -185,8 +186,7 @@ class LIEF_API ResourceDialogExtended : public ResourceDialog {
}
ResourceDialogExtended& font(uint16_t point_size, uint16_t weight, bool italic,
- uint8_t charset, std::u16string typeface)
- {
+ uint8_t charset, std::u16string typeface) {
font_.point_size = point_size;
font_.weight = weight;
font_.italic = italic;
diff --git a/deps/LIEF/include/LIEF/PE/resources/ResourceDialogRegular.hpp b/deps/LIEF/include/LIEF/PE/resources/ResourceDialogRegular.hpp
index 26552687bfb..983147d44fc 100644
--- a/deps/LIEF/include/LIEF/PE/resources/ResourceDialogRegular.hpp
+++ b/deps/LIEF/include/LIEF/PE/resources/ResourceDialogRegular.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,7 +20,6 @@
#include "LIEF/PE/resources/ResourceDialog.hpp"
#include "LIEF/errors.hpp"
#include "LIEF/iterators.hpp"
-#include "LIEF/span.hpp"
namespace LIEF {
class BinaryStream;
@@ -29,14 +28,16 @@ namespace PE {
/// Implementation for a regular/legacy dialog box.
///
-/// See: https://learn.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-dlgtemplate
+/// See:
+/// https://learn.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-dlgtemplate
class LIEF_API ResourceDialogRegular : public ResourceDialog {
public:
using ResourceDialog::ordinal_or_str_t;
/// This class represents a `DLGTEMPLATE` item: `DLGITEMTEMPLATE`
///
- /// See: https://learn.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-dlgitemtemplate
+ /// See:
+ /// https://learn.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-dlgitemtemplate
class LIEF_API Item : public ResourceDialog::Item {
public:
Item() = default;
@@ -69,7 +70,8 @@ class LIEF_API ResourceDialogRegular : public ResourceDialog {
std::string to_string() const;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const font_t& font) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const font_t& font) {
os << font.to_string();
return os;
}
@@ -80,8 +82,7 @@ class LIEF_API ResourceDialogRegular : public ResourceDialog {
using it_const_items = const_ref_iterator<const items_t&>;
ResourceDialogRegular() :
- ResourceDialog(ResourceDialog::TYPE::REGULAR)
- {}
+ ResourceDialog(ResourceDialog::TYPE::REGULAR) {}
ResourceDialogRegular(const ResourceDialogRegular&) = default;
ResourceDialogRegular& operator=(const ResourceDialogRegular&) = default;
@@ -92,7 +93,9 @@ class LIEF_API ResourceDialogRegular : public ResourceDialog {
static std::unique_ptr<ResourceDialogRegular> create(BinaryStream& stream);
std::unique_ptr<ResourceDialog> clone() const override {
- return std::unique_ptr<ResourceDialogRegular>(new ResourceDialogRegular(*this));
+ return std::unique_ptr<ResourceDialogRegular>(
+ new ResourceDialogRegular(*this)
+ );
}
static bool classof(const ResourceDialog* dialog) {
@@ -107,11 +110,11 @@ class LIEF_API ResourceDialogRegular : public ResourceDialog {
}
/// Iterator over the different control items
- it_items items() {
+ it_items items() LIEF_LIFETIMEBOUND {
return items_;
}
- it_const_items items() const {
+ it_const_items items() const LIEF_LIFETIMEBOUND {
return items_;
}
diff --git a/deps/LIEF/include/LIEF/PE/resources/ResourceIcon.hpp b/deps/LIEF/include/LIEF/PE/resources/ResourceIcon.hpp
index d4b4d9073db..f375e16574d 100644
--- a/deps/LIEF/include/LIEF/PE/resources/ResourceIcon.hpp
+++ b/deps/LIEF/include/LIEF/PE/resources/ResourceIcon.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,9 +16,9 @@
#ifndef LIEF_PE_RESOURCE_ICON_H
#define LIEF_PE_RESOURCE_ICON_H
#include <ostream>
-#include <climits>
#include <vector>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/errors.hpp"
@@ -38,10 +38,11 @@ class LIEF_API ResourceIcon : public Object {
friend class ResourcesManager;
public:
- static result<ResourceIcon>
- from_serialization(const uint8_t* buffer, size_t size);
+ static result<ResourceIcon> from_serialization(const uint8_t* buffer,
+ size_t size);
- static result<ResourceIcon> from_serialization(const std::vector<uint8_t>& bytes) {
+ static result<ResourceIcon>
+ from_serialization(const std::vector<uint8_t>& bytes) {
return from_serialization(bytes.data(), bytes.size());
}
@@ -112,7 +113,7 @@ class LIEF_API ResourceIcon : public Object {
}
/// Pixels of the image (as bytes)
- span<const uint8_t> pixels() const {
+ span<const uint8_t> pixels() const LIEF_LIFETIMEBOUND {
return pixels_;
}
@@ -165,7 +166,8 @@ class LIEF_API ResourceIcon : public Object {
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const ResourceIcon& entry);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const ResourceIcon& entry);
private:
uint8_t width_ = 0;
@@ -175,7 +177,7 @@ class LIEF_API ResourceIcon : public Object {
uint16_t planes_ = 0;
uint16_t bit_count_ = 0;
uint32_t id_ = uint32_t(-1);
- uint32_t lang_ = /* LANG_NEUTRAL */0;
+ uint32_t lang_ = /* LANG_NEUTRAL */ 0;
uint32_t sublang_ = 0 /* SUBLANG_NEUTRAL */;
std::vector<uint8_t> pixels_;
};
diff --git a/deps/LIEF/include/LIEF/PE/resources/ResourceStringFileInfo.hpp b/deps/LIEF/include/LIEF/PE/resources/ResourceStringFileInfo.hpp
index 0d8faad7614..3290d58e52d 100644
--- a/deps/LIEF/include/LIEF/PE/resources/ResourceStringFileInfo.hpp
+++ b/deps/LIEF/include/LIEF/PE/resources/ResourceStringFileInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -95,8 +95,8 @@ class LIEF_API ResourceStringFileInfo : public Object {
void accept(Visitor& visitor) const override;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const ResourceStringFileInfo& info);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const ResourceStringFileInfo& info);
private:
uint16_t type_ = 0;
@@ -105,8 +105,6 @@ class LIEF_API ResourceStringFileInfo : public Object {
};
-
-
}
}
diff --git a/deps/LIEF/include/LIEF/PE/resources/ResourceStringTable.hpp b/deps/LIEF/include/LIEF/PE/resources/ResourceStringTable.hpp
index 1617d5af38e..de1ce613b55 100644
--- a/deps/LIEF/include/LIEF/PE/resources/ResourceStringTable.hpp
+++ b/deps/LIEF/include/LIEF/PE/resources/ResourceStringTable.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,8 +29,8 @@ class BinaryStream;
namespace PE {
/// This class represents the `StringTable` structure. This structure
-/// can be seen as a dictionary of key, values with key and values defined a
-/// utf-16 string.
+/// can be seen as a dictionary of key-value pairs with keys and values defined as
+/// UTF-16 strings.
class LIEF_API ResourceStringTable : public Object {
public:
/// An entry in this table which is composed of an UTF-16 key and an UTF-16
@@ -57,9 +57,8 @@ class LIEF_API ResourceStringTable : public Object {
return key_u8() + ": " + value_u8();
}
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const entry_t& entry)
- {
+ friend LIEF_API std::ostream& operator<<(std::ostream& os,
+ const entry_t& entry) {
os << entry.to_string();
return os;
}
@@ -111,11 +110,9 @@ class LIEF_API ResourceStringTable : public Object {
}
optional<std::u16string> get(const std::u16string& key) const {
- auto it = std::find_if(entries_.begin(), entries_.end(),
- [&key] (const entry_t& entry) {
- return entry.key == key;
- }
- );
+ auto it =
+ std::find_if(entries_.begin(), entries_.end(),
+ [&key](const entry_t& entry) { return entry.key == key; });
if (it == entries_.end()) {
return nullopt();
}
@@ -153,8 +150,8 @@ class LIEF_API ResourceStringTable : public Object {
return get(str);
}
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const ResourceStringTable& table);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const ResourceStringTable& table);
private:
uint16_t type_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/resources/ResourceVar.hpp b/deps/LIEF/include/LIEF/PE/resources/ResourceVar.hpp
index cce09b6fafd..d273729fbaa 100644
--- a/deps/LIEF/include/LIEF/PE/resources/ResourceVar.hpp
+++ b/deps/LIEF/include/LIEF/PE/resources/ResourceVar.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -90,8 +90,8 @@ class LIEF_API ResourceVar {
values_.push_back(val);
}
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const ResourceVar& entry);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const ResourceVar& entry);
private:
uint16_t type_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/resources/ResourceVarFileInfo.hpp b/deps/LIEF/include/LIEF/PE/resources/ResourceVarFileInfo.hpp
index 40a64c60807..74cd1af8b2e 100644
--- a/deps/LIEF/include/LIEF/PE/resources/ResourceVarFileInfo.hpp
+++ b/deps/LIEF/include/LIEF/PE/resources/ResourceVarFileInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -95,8 +95,8 @@ class LIEF_API ResourceVarFileInfo : public Object {
void accept(Visitor& visitor) const override;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const ResourceVarFileInfo& entry);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const ResourceVarFileInfo& entry);
private:
uint16_t type_ = 0;
diff --git a/deps/LIEF/include/LIEF/PE/resources/ResourceVersion.hpp b/deps/LIEF/include/LIEF/PE/resources/ResourceVersion.hpp
index 19663fa4d01..d60fe863d44 100644
--- a/deps/LIEF/include/LIEF/PE/resources/ResourceVersion.hpp
+++ b/deps/LIEF/include/LIEF/PE/resources/ResourceVersion.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -33,7 +33,8 @@ class ResourceData;
/// Representation of the data associated with the `RT_VERSION` entry
///
-/// See: `VS_VERSIONINFO` at https://learn.microsoft.com/en-us/windows/win32/menurc/vs-versioninfo
+/// See: `VS_VERSIONINFO` at
+/// https://learn.microsoft.com/en-us/windows/win32/menurc/vs-versioninfo
class LIEF_API ResourceVersion : public Object {
public:
static result<ResourceVersion> parse(const ResourceData& node);
@@ -44,7 +45,8 @@ class LIEF_API ResourceVersion : public Object {
/// in `verrsrc.h`.
struct LIEF_API fixed_file_info_t {
enum class VERSION_OS : uint32_t {
- /// The operating system for which the file was designed is unknown to the system.
+ /// The operating system for which the file was designed is unknown to the
+ /// system.
UNKNOWN = 0x00000000,
/// The file was designed for MS-DOS.
@@ -92,7 +94,7 @@ class LIEF_API ResourceVersion : public Object {
NT_WINDOWS32 = NT | WINDOWS32,
};
- enum class FILE_TYPE : uint32_t {
+ enum class FILE_TYPE : uint32_t {
/// The file type is unknown to the system.
UNKNOWN = 0x00000000,
@@ -142,7 +144,7 @@ class LIEF_API ResourceVersion : public Object {
/// The file contains a sound driver.
DRV_SOUND = 0x00000009 | DRV_K,
/// The file contains a communications driver.
- DRV_COMM = 0x0000000A | DRV_K,
+ DRV_COMM = 0x0000000A | DRV_K,
DRV_INPUTMETHOD = 0x0000000B | DRV_K,
@@ -159,7 +161,7 @@ class LIEF_API ResourceVersion : public Object {
FONT_TRUETYPE = 0x00000003 | FONT_K,
};
- enum class FILE_FLAGS : uint32_t {
+ enum class FILE_FLAGS : uint32_t {
/// The file contains debugging information or is compiled with debugging
/// features enabled.
DEBUG = 0x00000001,
@@ -273,9 +275,8 @@ class LIEF_API ResourceVersion : public Object {
std::string to_string() const;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const fixed_file_info_t& info)
- {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const fixed_file_info_t& info) {
os << info.to_string();
return os;
}
@@ -358,17 +359,20 @@ class LIEF_API ResourceVersion : public Object {
void accept(Visitor& visitor) const override;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const ResourceVersion& version);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const ResourceVersion& version);
private:
ResourceVersion() = default;
static ok_error_t parse_children(ResourceVersion& version, BinaryStream& stream);
static ok_error_t parse_child(ResourceVersion& version, BinaryStream& stream);
- static ok_error_t parse_fixed_file_info(ResourceVersion& version, BinaryStream& stream);
- static ok_error_t parse_str_file_info(ResourceVersion& version, BinaryStream& stream);
- static ok_error_t parse_var_file_info(ResourceVersion& version, BinaryStream& stream);
+ static ok_error_t parse_fixed_file_info(ResourceVersion& version,
+ BinaryStream& stream);
+ static ok_error_t parse_str_file_info(ResourceVersion& version,
+ BinaryStream& stream);
+ static ok_error_t parse_var_file_info(ResourceVersion& version,
+ BinaryStream& stream);
uint16_t type_ = 0;
std::u16string key_;
@@ -381,7 +385,8 @@ class LIEF_API ResourceVersion : public Object {
LIEF_API const char* to_string(ResourceVersion::fixed_file_info_t::FILE_FLAGS e);
LIEF_API const char* to_string(ResourceVersion::fixed_file_info_t::VERSION_OS e);
LIEF_API const char* to_string(ResourceVersion::fixed_file_info_t::FILE_TYPE e);
-LIEF_API const char* to_string(ResourceVersion::fixed_file_info_t::FILE_TYPE_DETAILS e);
+LIEF_API const char*
+ to_string(ResourceVersion::fixed_file_info_t::FILE_TYPE_DETAILS e);
}
}
diff --git a/deps/LIEF/include/LIEF/PE/resources/langs.hpp b/deps/LIEF/include/LIEF/PE/resources/langs.hpp
index 5f2bb087280..4bc3266e6d6 100644
--- a/deps/LIEF/include/LIEF/PE/resources/langs.hpp
+++ b/deps/LIEF/include/LIEF/PE/resources/langs.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,110 +19,110 @@
namespace LIEF {
namespace PE {
-enum class RESOURCE_LANGS {
- NEUTRAL = 0x00,
- INVARIANT = 0x7f,
- AFRIKAANS = 0x36,
- ALBANIAN = 0x1c,
- ARABIC = 0x01,
- ARMENIAN = 0x2b,
- ASSAMESE = 0x4d,
- AZERI = 0x2c,
- BASQUE = 0x2d,
- BELARUSIAN = 0x23,
- BANGLA = 0x45,
- BULGARIAN = 0x02,
- CATALAN = 0x03,
- CHINESE = 0x04,
- CROATIAN = 0x1a,
- BOSNIAN = 0x1a,
- CZECH = 0x05,
- DANISH = 0x06,
- DIVEHI = 0x65,
- DUTCH = 0x13,
- ENGLISH = 0x09,
- ESTONIAN = 0x25,
- FAEROESE = 0x38,
- FARSI = 0x29,
- FINNISH = 0x0b,
- FRENCH = 0x0c,
- GALICIAN = 0x56,
- GEORGIAN = 0x37,
- GERMAN = 0x07,
- GREEK = 0x08,
- GUJARATI = 0x47,
- HEBREW = 0x0d,
- HINDI = 0x39,
- HUNGARIAN = 0x0e,
- ICELANDIC = 0x0f,
- INDONESIAN = 0x21,
- ITALIAN = 0x10,
- JAPANESE = 0x11,
- KANNADA = 0x4b,
- KASHMIRI = 0x60,
- KAZAK = 0x3f,
- KONKANI = 0x57,
- KOREAN = 0x12,
- KYRGYZ = 0x40,
- LATVIAN = 0x26,
- LITHUANIAN = 0x27,
- MACEDONIAN = 0x2f,
- MALAY = 0x3e,
- MALAYALAM = 0x4c,
- MANIPURI = 0x58,
- MARATHI = 0x4e,
- MONGOLIAN = 0x50,
- NEPALI = 0x61,
- NORWEGIAN = 0x14,
- ORIYA = 0x48,
- POLISH = 0x15,
- PORTUGUESE = 0x16,
- PUNJABI = 0x46,
- ROMANIAN = 0x18,
- RUSSIAN = 0x19,
- SANSKRIT = 0x4f,
- SERBIAN = 0x1a,
- SINDHI = 0x59,
- SLOVAK = 0x1b,
- SLOVENIAN = 0x24,
- SPANISH = 0x0a,
- SWAHILI = 0x41,
- SWEDISH = 0x1d,
- SYRIAC = 0x5a,
- TAMIL = 0x49,
- TATAR = 0x44,
- TELUGU = 0x4a,
- THAI = 0x1e,
- TURKISH = 0x1f,
- UKRAINIAN = 0x22,
- URDU = 0x20,
- UZBEK = 0x43,
- VIETNAMESE = 0x2a,
- GAELIC = 0x3c,
- MALTESE = 0x3a,
- MAORI = 0x28,
+enum class RESOURCE_LANGS {
+ NEUTRAL = 0x00,
+ INVARIANT = 0x7f,
+ AFRIKAANS = 0x36,
+ ALBANIAN = 0x1c,
+ ARABIC = 0x01,
+ ARMENIAN = 0x2b,
+ ASSAMESE = 0x4d,
+ AZERI = 0x2c,
+ BASQUE = 0x2d,
+ BELARUSIAN = 0x23,
+ BANGLA = 0x45,
+ BULGARIAN = 0x02,
+ CATALAN = 0x03,
+ CHINESE = 0x04,
+ CROATIAN = 0x1a,
+ BOSNIAN = 0x1a,
+ CZECH = 0x05,
+ DANISH = 0x06,
+ DIVEHI = 0x65,
+ DUTCH = 0x13,
+ ENGLISH = 0x09,
+ ESTONIAN = 0x25,
+ FAEROESE = 0x38,
+ FARSI = 0x29,
+ FINNISH = 0x0b,
+ FRENCH = 0x0c,
+ GALICIAN = 0x56,
+ GEORGIAN = 0x37,
+ GERMAN = 0x07,
+ GREEK = 0x08,
+ GUJARATI = 0x47,
+ HEBREW = 0x0d,
+ HINDI = 0x39,
+ HUNGARIAN = 0x0e,
+ ICELANDIC = 0x0f,
+ INDONESIAN = 0x21,
+ ITALIAN = 0x10,
+ JAPANESE = 0x11,
+ KANNADA = 0x4b,
+ KASHMIRI = 0x60,
+ KAZAK = 0x3f,
+ KONKANI = 0x57,
+ KOREAN = 0x12,
+ KYRGYZ = 0x40,
+ LATVIAN = 0x26,
+ LITHUANIAN = 0x27,
+ MACEDONIAN = 0x2f,
+ MALAY = 0x3e,
+ MALAYALAM = 0x4c,
+ MANIPURI = 0x58,
+ MARATHI = 0x4e,
+ MONGOLIAN = 0x50,
+ NEPALI = 0x61,
+ NORWEGIAN = 0x14,
+ ORIYA = 0x48,
+ POLISH = 0x15,
+ PORTUGUESE = 0x16,
+ PUNJABI = 0x46,
+ ROMANIAN = 0x18,
+ RUSSIAN = 0x19,
+ SANSKRIT = 0x4f,
+ SERBIAN = 0x1a,
+ SINDHI = 0x59,
+ SLOVAK = 0x1b,
+ SLOVENIAN = 0x24,
+ SPANISH = 0x0a,
+ SWAHILI = 0x41,
+ SWEDISH = 0x1d,
+ SYRIAC = 0x5a,
+ TAMIL = 0x49,
+ TATAR = 0x44,
+ TELUGU = 0x4a,
+ THAI = 0x1e,
+ TURKISH = 0x1f,
+ UKRAINIAN = 0x22,
+ URDU = 0x20,
+ UZBEK = 0x43,
+ VIETNAMESE = 0x2a,
+ GAELIC = 0x3c,
+ MALTESE = 0x3a,
+ MAORI = 0x28,
RHAETO_ROMANCE = 0x17,
- SAMI = 0x3b,
- SORBIAN = 0x2e,
- SUTU = 0x30,
- TSONGA = 0x31,
- TSWANA = 0x32,
- VENDA = 0x33,
- XHOSA = 0x34,
- ZULU = 0x35,
- ESPERANTO = 0x8f,
- WALON = 0x90,
- CORNISH = 0x91,
- WELSH = 0x92,
- BRETON = 0x93,
- INUKTITUT = 0x5d,
- IRISH = 0x3C,
- LOWER_SORBIAN = 0x2E,
- PULAR = 0x67,
- QUECHUA = 0x6B,
- TAMAZIGHT = 0x5F,
- TIGRINYA = 0x73,
- VALENCIAN = 0x03,
+ SAMI = 0x3b,
+ SORBIAN = 0x2e,
+ SUTU = 0x30,
+ TSONGA = 0x31,
+ TSWANA = 0x32,
+ VENDA = 0x33,
+ XHOSA = 0x34,
+ ZULU = 0x35,
+ ESPERANTO = 0x8f,
+ WALON = 0x90,
+ CORNISH = 0x91,
+ WELSH = 0x92,
+ BRETON = 0x93,
+ INUKTITUT = 0x5d,
+ IRISH = 0x3C,
+ LOWER_SORBIAN = 0x2E,
+ PULAR = 0x67,
+ QUECHUA = 0x6B,
+ TAMAZIGHT = 0x5F,
+ TIGRINYA = 0x73,
+ VALENCIAN = 0x03,
};
static constexpr uint32_t lang_from_id(uint32_t id) {
diff --git a/deps/LIEF/include/LIEF/PE/signature/Attribute.hpp b/deps/LIEF/include/LIEF/PE/signature/Attribute.hpp
index b1fa5a45632..e993b7c9ae4 100644
--- a/deps/LIEF/include/LIEF/PE/signature/Attribute.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/Attribute.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -70,8 +70,8 @@ class LIEF_API Attribute : public Object {
~Attribute() override = default;
- LIEF_API friend
- std::ostream& operator<<(std::ostream& os, const Attribute& attribute) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const Attribute& attribute) {
os << attribute.print();
return os;
}
@@ -93,8 +93,7 @@ class LIEF_API Attribute : public Object {
protected:
Attribute(TYPE type) :
- type_(type)
- {}
+ type_(type) {}
TYPE type_ = TYPE::UNKNOWN;
};
diff --git a/deps/LIEF/include/LIEF/PE/signature/ContentInfo.hpp b/deps/LIEF/include/LIEF/PE/signature/ContentInfo.hpp
index b3c07d605b0..23ad4f62753 100644
--- a/deps/LIEF/include/LIEF/PE/signature/ContentInfo.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/ContentInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -33,7 +33,8 @@ class Parser;
class SignatureParser;
/**
- * ContentInfo as described in the RFC2315 (https://tools.ietf.org/html/rfc2315#section-7)
+ * ContentInfo as described in the RFC2315
+ * (https://tools.ietf.org/html/rfc2315#section-7)
*
* ```text
* ContentInfo ::= SEQUENCE {
@@ -44,8 +45,9 @@ class SignatureParser;
* ContentType ::= OBJECT IDENTIFIER
* ```
*
- * In the case of PE signature, ContentType **must** be set to SPC_INDIRECT_DATA_OBJID
- * OID: ``1.3.6.1.4.1.311.2.1.4`` and content is defined by the structure: ``SpcIndirectDataContent``
+ * In the case of PE signature, ContentType **must** be set to
+ * SPC_INDIRECT_DATA_OBJID OID: ``1.3.6.1.4.1.311.2.1.4`` and content is defined by
+ * the structure: ``SpcIndirectDataContent``
*
* ```text
* SpcIndirectDataContent ::= SEQUENCE {
@@ -60,7 +62,8 @@ class SignatureParser;
* ```
*
* For PE signature, ``SpcAttributeTypeAndOptionalValue.type``
- * is set to ``SPC_PE_IMAGE_DATAOBJ`` (OID: ``1.3.6.1.4.1.311.2.1.15``) and the value is defined by
+ * is set to ``SPC_PE_IMAGE_DATAOBJ`` (OID: ``1.3.6.1.4.1.311.2.1.15``) and the
+ * value is defined by
* ``SpcPeImageData``
*
* ```text
@@ -80,11 +83,10 @@ class LIEF_API ContentInfo : public Object {
friend class SignatureParser;
public:
- class Content : public Object {
+ class LIEF_API Content : public Object {
public:
Content(oid_t oid) :
- type_(std::move(oid))
- {}
+ type_(std::move(oid)) {}
const oid_t& content_type() const {
return type_;
@@ -93,7 +95,8 @@ class LIEF_API ContentInfo : public Object {
virtual std::unique_ptr<Content> clone() const = 0;
virtual void print(std::ostream& os) const = 0;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const Content& content) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const Content& content) {
content.print(os);
return os;
}
@@ -114,6 +117,7 @@ class LIEF_API ContentInfo : public Object {
}
~Content() override = default;
+
private:
oid_t type_;
};
@@ -130,16 +134,16 @@ class LIEF_API ContentInfo : public Object {
return value_->content_type();
}
- Content& value() {
+ Content& value() LIEF_LIFETIMEBOUND {
return *value_;
}
- const Content& value() const {
+ const Content& value() const LIEF_LIFETIMEBOUND {
return *value_;
}
- /// Return the digest (authentihash) if the underlying content type is `SPC_INDIRECT_DATA_OBJID`
- /// Otherwise, return an empty vector
+ /// Return the digest (authentihash) if the underlying content type is
+ /// `SPC_INDIRECT_DATA_OBJID` Otherwise, return an empty vector
std::vector<uint8_t> digest() const;
/// Return the digest used to hash the file
@@ -149,7 +153,8 @@ class LIEF_API ContentInfo : public Object {
~ContentInfo() override = default;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const ContentInfo& content_info);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const ContentInfo& content_info);
private:
std::unique_ptr<Content> value_;
diff --git a/deps/LIEF/include/LIEF/PE/signature/GenericContent.hpp b/deps/LIEF/include/LIEF/PE/signature/GenericContent.hpp
index b7ac2f67498..4cfc7369bb3 100644
--- a/deps/LIEF/include/LIEF/PE/signature/GenericContent.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/GenericContent.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
#ifndef LIEF_PE_GENERIC_CONTENT_H
#define LIEF_PE_GENERIC_CONTENT_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/span.hpp"
@@ -40,11 +41,11 @@ class LIEF_API GenericContent : public ContentInfo::Content {
return oid_;
}
- span<const uint8_t> raw() const {
+ span<const uint8_t> raw() const LIEF_LIFETIMEBOUND {
return raw_;
}
- span<uint8_t> raw() {
+ span<uint8_t> raw() LIEF_LIFETIMEBOUND {
return raw_;
}
@@ -53,7 +54,8 @@ class LIEF_API GenericContent : public ContentInfo::Content {
void print(std::ostream& os) const override;
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const GenericContent& content) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const GenericContent& content) {
content.print(os);
return os;
}
diff --git a/deps/LIEF/include/LIEF/PE/signature/OIDToString.hpp b/deps/LIEF/include/LIEF/PE/signature/OIDToString.hpp
index c3c0a32b463..57bb5f1be2e 100644
--- a/deps/LIEF/include/LIEF/PE/signature/OIDToString.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/OIDToString.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/PE/signature/PKCS9TSTInfo.hpp b/deps/LIEF/include/LIEF/PE/signature/PKCS9TSTInfo.hpp
index 75dcd0dccc9..5db5ba884f8 100644
--- a/deps/LIEF/include/LIEF/PE/signature/PKCS9TSTInfo.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/PKCS9TSTInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,7 +25,8 @@
namespace LIEF {
namespace PE {
-/// Interface over the structure described by the OID `1.2.840.113549.1.9.16.1.4` (PKCS #9)
+/// Interface over the structure described by the OID `1.2.840.113549.1.9.16.1.4`
+/// (PKCS #9)
///
/// The internal structure is described in the
/// [RFC #3161](https://tools.ietf.org/html/rfc3161)
@@ -62,8 +63,7 @@ class LIEF_API PKCS9TSTInfo : public ContentInfo::Content {
public:
static constexpr auto PKCS9_TSTINFO_OBJID = "1.2.840.113549.1.9.16.1.4";
PKCS9TSTInfo() :
- ContentInfo::Content(PKCS9_TSTINFO_OBJID)
- {}
+ ContentInfo::Content(PKCS9_TSTINFO_OBJID) {}
PKCS9TSTInfo(const PKCS9TSTInfo&) = default;
PKCS9TSTInfo& operator=(const PKCS9TSTInfo&) = default;
diff --git a/deps/LIEF/include/LIEF/PE/signature/RsaInfo.hpp b/deps/LIEF/include/LIEF/PE/signature/RsaInfo.hpp
index 86a61a2f889..8572ab2785f 100644
--- a/deps/LIEF/include/LIEF/PE/signature/RsaInfo.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/RsaInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -72,7 +72,7 @@ class LIEF_API RsaInfo {
private:
RsaInfo();
RsaInfo(const rsa_ctx_handle ctx);
- rsa_ctx_handle ctx_;
+ rsa_ctx_handle ctx_ = nullptr;
};
}
diff --git a/deps/LIEF/include/LIEF/PE/signature/Signature.hpp b/deps/LIEF/include/LIEF/PE/signature/Signature.hpp
index 8be586a0a9b..008ea39095a 100644
--- a/deps/LIEF/include/LIEF/PE/signature/Signature.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/Signature.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
#define LIEF_PE_SIGNATURE_H
#include "LIEF/Object.hpp"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/span.hpp"
@@ -44,14 +45,15 @@ class LIEF_API Signature : public Object {
public:
/// Hash the input given the algorithm
- static std::vector<uint8_t> hash(const std::vector<uint8_t>& input, ALGORITHMS algo) {
+ static std::vector<uint8_t> hash(const std::vector<uint8_t>& input,
+ ALGORITHMS algo) {
return hash(input.data(), input.size(), algo);
}
- static std::vector<uint8_t> hash(const uint8_t* buffer, size_t size, ALGORITHMS algo);
+ static std::vector<uint8_t> hash(const uint8_t* buffer, size_t size,
+ ALGORITHMS algo);
public:
-
/// Iterator which outputs const x509& certificates
using it_const_crt = const_ref_iterator<const std::vector<x509>&>;
@@ -66,7 +68,8 @@ class LIEF_API Signature : public Object {
/// Flags returned by the verification functions
enum class VERIFICATION_FLAGS : uint32_t {
- OK = 0,
+ // clang-format off
+ OK = 0,
INVALID_SIGNER = 1 << 0,
UNSUPPORTED_ALGORITHM = 1 << 1,
INCONSISTENT_DIGEST_ALGORITHM = 1 << 2,
@@ -79,20 +82,33 @@ class LIEF_API Signature : public Object {
NO_SIGNATURE = 1 << 9,
CERT_EXPIRED = 1 << 10,
CERT_FUTURE = 1 << 11,
+ // clang-format on
};
- /// Convert a verification flag into a humman representation.
- /// e.g VERIFICATION_FLAGS.BAD_DIGEST | VERIFICATION_FLAGS.BAD_SIGNATURE | VERIFICATION_FLAGS.CERT_EXPIRED
+ /// Convert a verification flag into a human-readable representation.
+ /// e.g VERIFICATION_FLAGS.BAD_DIGEST | VERIFICATION_FLAGS.BAD_SIGNATURE |
+ /// VERIFICATION_FLAGS.CERT_EXPIRED
static std::string flag_to_string(VERIFICATION_FLAGS flag);
/// Flags to tweak the verification process of the signature
///
/// See Signature::check and LIEF::PE::Binary::verify_signature
enum class VERIFICATION_CHECKS : uint32_t {
- DEFAULT = 1 << 0, /**< Default behavior that tries to follow the Microsoft verification process as close as possible */
- HASH_ONLY = 1 << 1, /**< Only check that Binary::authentihash matches ContentInfo::digest regardless of the signature's validity */
- LIFETIME_SIGNING = 1 << 2, /**< Same semantic as [WTD_LIFETIME_SIGNING_FLAG](https://docs.microsoft.com/en-us/windows/win32/api/wintrust/ns-wintrust-wintrust_data#WTD_LIFETIME_SIGNING_FLAG) */
- SKIP_CERT_TIME = 1 << 3, /**< Skip the verification of the certificates time validities so that even though a certificate expired, it returns VERIFICATION_FLAGS::OK */
+ /// Default behavior that tries to follow the Microsoft verification process
+ /// as close as possible
+ DEFAULT = 1 << 0,
+
+ /// Only check that Binary::authentihash matches ContentInfo::digest
+ /// regardless of the signature's validity
+ HASH_ONLY = 1 << 1,
+
+ /// Same semantic as
+ /// [WTD_LIFETIME_SIGNING_FLAG](https://docs.microsoft.com/en-us/windows/win32/api/wintrust/ns-wintrust-wintrust_data#WTD_LIFETIME_SIGNING_FLAG)
+ LIFETIME_SIGNING = 1 << 2,
+
+ /// Skip the verification of the certificates time validities so that even
+ /// though a certificate expired, it returns VERIFICATION_FLAGS::OK
+ SKIP_CERT_TIME = 1 << 3,
};
Signature();
@@ -115,30 +131,31 @@ class LIEF_API Signature : public Object {
}
/// Return the ContentInfo
- const ContentInfo& content_info() const {
+ const ContentInfo& content_info() const LIEF_LIFETIMEBOUND {
return content_info_;
}
/// Return an iterator over x509 certificates
- it_const_crt certificates() const {
+ it_const_crt certificates() const LIEF_LIFETIMEBOUND {
return certificates_;
}
- it_crt certificates() {
+ it_crt certificates() LIEF_LIFETIMEBOUND {
return certificates_;
}
- /// Return an iterator over the signers (SignerInfo) defined in the PKCS #7 signature
- it_const_signers_t signers() const {
+ /// Return an iterator over the signers (SignerInfo) defined in the PKCS #7
+ /// signature
+ it_const_signers_t signers() const LIEF_LIFETIMEBOUND {
return signers_;
}
- it_signers_t signers() {
+ it_signers_t signers() LIEF_LIFETIMEBOUND {
return signers_;
}
/// Return the raw original PKCS7 signature
- span<const uint8_t> raw_der() const {
+ span<const uint8_t> raw_der() const LIEF_LIFETIMEBOUND {
return original_raw_signature_;
}
@@ -149,15 +166,18 @@ class LIEF_API Signature : public Object {
const x509* find_crt_subject(const std::string& subject) const;
/// Find x509 certificate according to its subject **AND** serial number
- const x509* find_crt_subject(const std::string& subject, const std::vector<uint8_t>& serialno) const;
+ const x509* find_crt_subject(const std::string& subject,
+ const std::vector<uint8_t>& serialno) const;
/// Find x509 certificate according to its issuer
const x509* find_crt_issuer(const std::string& issuer) const;
/// Find x509 certificate according to its issuer **AND** serial number
- const x509* find_crt_issuer(const std::string& issuer, const std::vector<uint8_t>& serialno) const;
+ const x509* find_crt_issuer(const std::string& issuer,
+ const std::vector<uint8_t>& serialno) const;
- /// Check if this signature is valid according to the Authenticode/PKCS #7 verification scheme
+ /// Check if this signature is valid according to the Authenticode/PKCS #7
+ /// verification scheme
///
/// By default, it performs the following verifications:
///
@@ -165,35 +185,42 @@ class LIEF_API Signature : public Object {
/// 2. Signature::digest_algorithm must match:
/// * ContentInfo::digest_algorithm
/// * SignerInfo::digest_algorithm
- /// 3. The x509 certificate specified by SignerInfo::serial_number **and** SignerInfo::issuer
+ /// 3. The x509 certificate specified by SignerInfo::serial_number **and**
+ /// SignerInfo::issuer
/// must exist within Signature::certificates
- /// 4. Given the x509 certificate, compare SignerInfo::encrypted_digest against either:
+ /// 4. Given the x509 certificate, compare SignerInfo::encrypted_digest against
+ /// either:
/// * hash of authenticated attributes if present
/// * hash of ContentInfo
- /// 5. If authenticated attributes are present, check that a PKCS9_MESSAGE_DIGEST attribute exists
+ /// 5. If authenticated attributes are present, check that a PKCS9_MESSAGE_DIGEST
+ /// attribute exists
/// and that its value matches hash of ContentInfo
/// 6. Check the validity of the PKCS #9 counter signature if present
- /// 7. If the signature doesn't embed a signing-time in the counter signature, check the certificate
- /// validity. (See LIEF::PE::Signature::VERIFICATION_CHECKS::LIFETIME_SIGNING and LIEF::PE::Signature::VERIFICATION_CHECKS::SKIP_CERT_TIME)
+ /// 7. If the signature doesn't embed a signing-time in the counter signature,
+ /// check the certificate
+ /// validity. (See LIEF::PE::Signature::VERIFICATION_CHECKS::LIFETIME_SIGNING
+ /// and LIEF::PE::Signature::VERIFICATION_CHECKS::SKIP_CERT_TIME)
///
/// See: LIEF::PE::Signature::VERIFICATION_CHECKS to tweak the behavior
- VERIFICATION_FLAGS check(VERIFICATION_CHECKS checks = VERIFICATION_CHECKS::DEFAULT) const;
+ VERIFICATION_FLAGS
+ check(VERIFICATION_CHECKS checks = VERIFICATION_CHECKS::DEFAULT) const;
void accept(Visitor& visitor) const override;
~Signature() override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const Signature& signature);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const Signature& signature);
private:
- uint32_t version_ = 0;
- ALGORITHMS digest_algorithm_ = ALGORITHMS::UNKNOWN;
- ContentInfo content_info_;
- std::vector<x509> certificates_;
+ uint32_t version_ = 0;
+ ALGORITHMS digest_algorithm_ = ALGORITHMS::UNKNOWN;
+ ContentInfo content_info_;
+ std::vector<x509> certificates_;
std::vector<SignerInfo> signers_;
- uint64_t content_info_start_ = 0;
- uint64_t content_info_end_ = 0;
+ uint64_t content_info_start_ = 0;
+ uint64_t content_info_end_ = 0;
std::vector<uint8_t> original_raw_signature_;
};
@@ -207,4 +234,3 @@ ENABLE_BITMASK_OPERATORS(LIEF::PE::Signature::VERIFICATION_CHECKS);
#endif
-
diff --git a/deps/LIEF/include/LIEF/PE/signature/SignatureParser.hpp b/deps/LIEF/include/LIEF/PE/signature/SignatureParser.hpp
index 1f6502f912d..dab54c89a5b 100644
--- a/deps/LIEF/include/LIEF/PE/signature/SignatureParser.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/SignatureParser.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,7 +22,6 @@
#include "LIEF/errors.hpp"
#include "LIEF/PE/signature/Signature.hpp"
-#include "LIEF/PE/signature/OIDToString.hpp"
namespace LIEF {
class BinaryStream;
@@ -57,7 +56,8 @@ class LIEF_API SignatureParser {
using time_t = std::array<int32_t, 6>;
/// Parse a PKCS #7 signature given a raw blob
- static result<Signature> parse(std::vector<uint8_t> data, bool skip_header = false);
+ static result<Signature> parse(std::vector<uint8_t> data,
+ bool skip_header = false);
/// Parse a PKCS #7 signature given a BinaryStream
static result<Signature> parse(BinaryStream& stream, bool skip_header = false);
@@ -66,37 +66,46 @@ class LIEF_API SignatureParser {
static result<Signature> parse(const std::string& path);
SignatureParser(const SignatureParser&) = delete;
SignatureParser& operator=(const SignatureParser&) = delete;
- private:
+ private:
~SignatureParser() = default;
SignatureParser() = default;
static result<Signature> parse_signature(BinaryStream& stream);
- static result<ContentInfo> parse_content_info(BinaryStream& stream, range_t& range);
+ static result<ContentInfo> parse_content_info(BinaryStream& stream,
+ range_t& range);
static result<x509_certificates_t> parse_certificates(BinaryStream& stream);
static result<signer_infos_t> parse_signer_infos(BinaryStream& stream);
static result<attributes_t> parse_attributes(BinaryStream& stream);
- static result<std::unique_ptr<Attribute>> parse_content_type(BinaryStream& stream);
+ static result<std::unique_ptr<Attribute>>
+ parse_content_type(BinaryStream& stream);
static result<signer_infos_t> parse_pkcs9_counter_sign(BinaryStream& stream);
- static result<std::vector<uint8_t>> parse_pkcs9_message_digest(BinaryStream& stream);
+ static result<std::vector<uint8_t>>
+ parse_pkcs9_message_digest(BinaryStream& stream);
static result<int32_t> parse_pkcs9_at_sequence_number(BinaryStream& stream);
static result<time_t> parse_pkcs9_signing_time(BinaryStream& stream);
- static result<std::unique_ptr<PKCS9TSTInfo>> parse_pkcs9_tstinfo(BinaryStream& stream);
+ static result<std::unique_ptr<PKCS9TSTInfo>>
+ parse_pkcs9_tstinfo(BinaryStream& stream);
- static result<std::unique_ptr<Attribute>> parse_ms_counter_sign(BinaryStream& stream);
+ static result<std::unique_ptr<Attribute>>
+ parse_ms_counter_sign(BinaryStream& stream);
static result<Signature> parse_ms_spc_nested_signature(BinaryStream& stream);
static result<oid_t> parse_ms_spc_statement_type(BinaryStream& stream);
static result<SpcSpOpusInfo> parse_spc_sp_opus_info(BinaryStream& stream);
static result<std::string> parse_spc_string(BinaryStream& stream);
static result<std::string> parse_spc_link(BinaryStream& stream);
- static result<std::unique_ptr<Attribute>> parse_spc_relaxed_pe_marker_check(BinaryStream& stream);
+ static result<std::unique_ptr<Attribute>>
+ parse_spc_relaxed_pe_marker_check(BinaryStream& stream);
static result<SpcPeImageData> parse_spc_pe_image_data(BinaryStream& stream);
- static result<std::unique_ptr<SpcIndirectData>> parse_spc_indirect_data(BinaryStream& stream, range_t& range);
- static result<std::unique_ptr<Attribute>> parse_ms_platform_manifest_binary_id(BinaryStream& stream);
+ static result<std::unique_ptr<SpcIndirectData>>
+ parse_spc_indirect_data(BinaryStream& stream, range_t& range);
+ static result<std::unique_ptr<Attribute>>
+ parse_ms_platform_manifest_binary_id(BinaryStream& stream);
- static result<std::unique_ptr<Attribute>> parse_signing_certificate_v2(BinaryStream& stream);
+ static result<std::unique_ptr<Attribute>>
+ parse_signing_certificate_v2(BinaryStream& stream);
};
}
diff --git a/deps/LIEF/include/LIEF/PE/signature/SignerInfo.hpp b/deps/LIEF/include/LIEF/PE/signature/SignerInfo.hpp
index c883b77e800..618d248b1c1 100644
--- a/deps/LIEF/include/LIEF/PE/signature/SignerInfo.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/SignerInfo.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,10 +18,10 @@
#include <memory>
#include "LIEF/Object.hpp"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/span.hpp"
-#include "LIEF/PE/signature/types.hpp"
#include "LIEF/iterators.hpp"
#include "LIEF/PE/enums.hpp"
#include "LIEF/PE/signature/Attribute.hpp"
@@ -35,7 +35,8 @@ class Parser;
class SignatureParser;
class x509;
-/** SignerInfo as described in the [RFC 2315](https://tools.ietf.org/html/rfc2315#section-9.2)
+/** SignerInfo as described in the [RFC
+ * 2315](https://tools.ietf.org/html/rfc2315#section-9.2)
*
* ```text
* SignerInfo ::= SEQUENCE {
@@ -64,7 +65,8 @@ class LIEF_API SignerInfo : public Object {
using attributes_t = std::vector<std::unique_ptr<Attribute>>;
/// Iterator which outputs const Attribute&
- using it_const_attributes_t = const_ref_iterator<const attributes_t&, const Attribute*>;
+ using it_const_attributes_t =
+ const_ref_iterator<const attributes_t&, const Attribute*>;
SignerInfo();
@@ -87,7 +89,7 @@ class LIEF_API SignerInfo : public Object {
/// @see
/// LIEF::PE::x509::serial_number
/// SignerInfo::issuer
- span<const uint8_t> serial_number() const {
+ span<const uint8_t> serial_number() const LIEF_LIFETIMEBOUND {
return serialno_;
}
@@ -117,12 +119,12 @@ class LIEF_API SignerInfo : public Object {
}
/// Iterator over LIEF::PE::Attribute for **authenticated** attributes
- it_const_attributes_t authenticated_attributes() const {
+ it_const_attributes_t authenticated_attributes() const LIEF_LIFETIMEBOUND {
return authenticated_attributes_;
}
/// Iterator over LIEF::PE::Attribute for **unauthenticated** attributes
- it_const_attributes_t unauthenticated_attributes() const {
+ it_const_attributes_t unauthenticated_attributes() const LIEF_LIFETIMEBOUND {
return unauthenticated_attributes_;
}
@@ -131,32 +133,38 @@ class LIEF_API SignerInfo : public Object {
///
/// It returns **the first** entry that matches the given type. If it can't be
/// found, it returns a nullptr.
- const Attribute* get_attribute(Attribute::TYPE type) const;
+ const Attribute* get_attribute(Attribute::TYPE type) const LIEF_LIFETIMEBOUND;
- /// Return the authenticated attribute matching the given PE::SIG_ATTRIBUTE_TYPES.
+ /// Return the authenticated attribute matching the given
+ /// PE::SIG_ATTRIBUTE_TYPES.
///
/// It returns **the first** entry that matches the given type. If it can't be
/// found, it returns a nullptr.
- const Attribute* get_auth_attribute(Attribute::TYPE type) const;
+ const Attribute*
+ get_auth_attribute(Attribute::TYPE type) const LIEF_LIFETIMEBOUND;
- /// Return the un-authenticated attribute matching the given PE::SIG_ATTRIBUTE_TYPES.
+ /// Return the un-authenticated attribute matching the given
+ /// PE::SIG_ATTRIBUTE_TYPES.
///
/// It returns **the first** entry that matches the given type. If it can't be
/// found, it returns a nullptr.
- const Attribute* get_unauth_attribute(Attribute::TYPE type) const;
+ const Attribute*
+ get_unauth_attribute(Attribute::TYPE type) const LIEF_LIFETIMEBOUND;
- /// x509 certificate used by this signer. If it can't be found, it returns a nullptr
- const x509* cert() const {
+ /// x509 certificate used by this signer. If it can't be found, it returns a
+ /// nullptr
+ const x509* cert() const LIEF_LIFETIMEBOUND {
return cert_.get();
}
- /// x509 certificate used by this signer. If it can't be found, it returns a nullptr
- x509* cert() {
+ /// x509 certificate used by this signer. If it can't be found, it returns a
+ /// nullptr
+ x509* cert() LIEF_LIFETIMEBOUND {
return cert_.get();
}
/// Raw blob that is signed by the signer certificate
- span<const uint8_t> raw_auth_data() const {
+ span<const uint8_t> raw_auth_data() const LIEF_LIFETIMEBOUND {
return raw_auth_data_;
}
@@ -164,14 +172,15 @@ class LIEF_API SignerInfo : public Object {
~SignerInfo() override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const SignerInfo& signer_info);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const SignerInfo& signer_info);
private:
uint32_t version_ = 0;
std::string issuer_;
std::vector<uint8_t> serialno_;
- ALGORITHMS digest_algorithm_ = ALGORITHMS::UNKNOWN;
+ ALGORITHMS digest_algorithm_ = ALGORITHMS::UNKNOWN;
ALGORITHMS digest_enc_algorithm_ = ALGORITHMS::UNKNOWN;
encrypted_digest_t encrypted_digest_;
diff --git a/deps/LIEF/include/LIEF/PE/signature/SpcIndirectData.hpp b/deps/LIEF/include/LIEF/PE/signature/SpcIndirectData.hpp
index cb65d91a888..367d0ef93b9 100644
--- a/deps/LIEF/include/LIEF/PE/signature/SpcIndirectData.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/SpcIndirectData.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@
#include <vector>
#include <cstdint>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/span.hpp"
@@ -34,8 +35,7 @@ class LIEF_API SpcIndirectData : public ContentInfo::Content {
static constexpr auto SPC_INDIRECT_DATA_OBJID = "1.3.6.1.4.1.311.2.1.4";
SpcIndirectData() :
- ContentInfo::Content(SPC_INDIRECT_DATA_OBJID)
- {}
+ ContentInfo::Content(SPC_INDIRECT_DATA_OBJID) {}
SpcIndirectData(const SpcIndirectData&) = default;
SpcIndirectData& operator=(const SpcIndirectData&) = default;
@@ -53,7 +53,7 @@ class LIEF_API SpcIndirectData : public ContentInfo::Content {
/// PE's authentihash
///
/// @see LIEF::PE::Binary::authentihash
- span<const uint8_t> digest() const {
+ span<const uint8_t> digest() const LIEF_LIFETIMEBOUND {
return digest_;
}
@@ -69,7 +69,8 @@ class LIEF_API SpcIndirectData : public ContentInfo::Content {
void accept(Visitor& visitor) const override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const SpcIndirectData& content) {
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const SpcIndirectData& content) {
content.print(os);
return os;
}
diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes.hpp
index d83a5a50713..684cd8f0cc0 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,4 +29,3 @@
#include "LIEF/PE/signature/attributes/SpcSpOpusInfo.hpp"
#include "LIEF/PE/signature/attributes/SpcRelaxedPeMarkerCheck.hpp"
#endif
-
diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/ContentType.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/ContentType.hpp
index 7e0f161ada5..bd61e107890 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/ContentType.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/ContentType.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,10 +26,12 @@ namespace LIEF {
class VectorStream;
namespace PE {
-/// Interface over the structure described by the OID ``1.2.840.113549.1.9.3`` (PKCS #9)
+/// Interface over the structure described by the OID ``1.2.840.113549.1.9.3``
+/// (PKCS #9)
///
/// The internal structure is described in the
-/// [RFC #2985: PKCS #9 - Selected Object Classes and Attribute Types Version 2.0](https://tools.ietf.org/html/rfc2985)
+/// [RFC #2985: PKCS #9 - Selected Object Classes and Attribute Types
+/// Version 2.0](https://tools.ietf.org/html/rfc2985)
///
/// ```text
/// ContentType ::= OBJECT IDENTIFIER
@@ -41,12 +43,10 @@ class LIEF_API ContentType : public Attribute {
public:
ContentType() :
- Attribute(Attribute::TYPE::CONTENT_TYPE)
- {}
+ Attribute(Attribute::TYPE::CONTENT_TYPE) {}
ContentType(oid_t oid) :
Attribute(Attribute::TYPE::CONTENT_TYPE),
- oid_{std::move(oid)}
- {}
+ oid_{std::move(oid)} {}
ContentType(const ContentType&) = default;
ContentType& operator=(const ContentType&) = default;
diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/GenericType.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/GenericType.hpp
index b85394f96f2..9ce4e4fb37c 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/GenericType.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/GenericType.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
#include <memory>
#include <vector>
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/span.hpp"
#include "LIEF/PE/signature/Attribute.hpp"
@@ -27,20 +28,19 @@ namespace LIEF {
class VectorStream;
namespace PE {
-/// Interface over an attribute for which the internal structure is not supported by LIEF
+/// Interface over an attribute for which the internal structure is not supported
+/// by LIEF
class LIEF_API GenericType : public Attribute {
friend class Parser;
friend class SignatureParser;
public:
GenericType() :
- Attribute(Attribute::TYPE::GENERIC_TYPE)
- {}
+ Attribute(Attribute::TYPE::GENERIC_TYPE) {}
GenericType(oid_t oid, std::vector<uint8_t> raw) :
Attribute(Attribute::TYPE::GENERIC_TYPE),
oid_{std::move(oid)},
- raw_{std::move(raw)}
- {}
+ raw_{std::move(raw)} {}
GenericType(const GenericType&) = default;
GenericType& operator=(const GenericType&) = default;
@@ -54,7 +54,7 @@ class LIEF_API GenericType : public Attribute {
}
/// Original DER blob of the attribute
- span<const uint8_t> raw_content() const {
+ span<const uint8_t> raw_content() const LIEF_LIFETIMEBOUND {
return raw_;
}
diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/MsCounterSign.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/MsCounterSign.hpp
index f32ad4867b0..ebe1d17d19c 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/MsCounterSign.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/MsCounterSign.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -43,8 +43,7 @@ class LIEF_API MsCounterSign : public Attribute {
using it_signers = ref_iterator<signers_t&>;
MsCounterSign() :
- Attribute(Attribute::TYPE::MS_COUNTER_SIGN)
- {}
+ Attribute(Attribute::TYPE::MS_COUNTER_SIGN) {}
MsCounterSign(const MsCounterSign&) = default;
MsCounterSign& operator=(const MsCounterSign&) = default;
@@ -58,20 +57,20 @@ class LIEF_API MsCounterSign : public Attribute {
}
/// Iterator over the LIEF::PE::x509 certificates of this counter signature
- it_const_certificates certificates() const {
+ it_const_certificates certificates() const LIEF_LIFETIMEBOUND {
return certificates_;
}
- it_certificates certificates() {
+ it_certificates certificates() LIEF_LIFETIMEBOUND {
return certificates_;
}
/// Signer iterator (same as LIEF::PE::SignerInfo)
- it_const_signers signers() const {
+ it_const_signers signers() const LIEF_LIFETIMEBOUND {
return signers_;
}
- it_signers signers() {
+ it_signers signers() LIEF_LIFETIMEBOUND {
return signers_;
}
diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/MsManifestBinaryID.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/MsManifestBinaryID.hpp
index 1a4a57a2b79..e11a2f2db99 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/MsManifestBinaryID.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/MsManifestBinaryID.hpp
@@ -1,6 +1,6 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,9 +23,11 @@
namespace LIEF {
namespace PE {
-/// Interface over the structure described by the OID `1.3.6.1.4.1.311.10.3.28` (szOID_PLATFORM_MANIFEST_BINARY_ID)
+/// Interface over the structure described by the OID `1.3.6.1.4.1.311.10.3.28`
+/// (szOID_PLATFORM_MANIFEST_BINARY_ID)
///
-/// The internal structure is not documented but we can infer the following structure:
+/// The internal structure is not documented but we can infer the following
+/// structure:
///
/// ```text
/// szOID_PLATFORM_MANIFEST_BINARY_ID ::= SET OF BinaryID
@@ -41,8 +43,7 @@ class LIEF_API MsManifestBinaryID : public Attribute {
MsManifestBinaryID() = delete;
MsManifestBinaryID(std::string binid) :
Attribute(Attribute::TYPE::MS_PLATFORM_MANIFEST_BINARY_ID),
- id_(std::move(binid))
- {}
+ id_(std::move(binid)) {}
MsManifestBinaryID(const MsManifestBinaryID&) = default;
MsManifestBinaryID& operator=(const MsManifestBinaryID&) = default;
@@ -71,7 +72,7 @@ class LIEF_API MsManifestBinaryID : public Attribute {
void accept(Visitor& visitor) const override;
- virtual ~MsManifestBinaryID() = default;
+ ~MsManifestBinaryID() override = default;
private:
std::string id_;
diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/MsSpcNestedSignature.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/MsSpcNestedSignature.hpp
index 1e4a871eb36..a22363ce633 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/MsSpcNestedSignature.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/MsSpcNestedSignature.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,7 +26,8 @@ namespace PE {
/// Interface over the structure described by the OID ``1.3.6.1.4.1.311.2.4.1``
///
-/// The internal structure is not documented but we can infer the following structure:
+/// The internal structure is not documented but we can infer the following
+/// structure:
///
/// ```text
/// MsSpcNestedSignature ::= SET OF SignedData
@@ -42,8 +43,7 @@ class LIEF_API MsSpcNestedSignature : public Attribute {
MsSpcNestedSignature() = delete;
MsSpcNestedSignature(Signature sig) :
Attribute(Attribute::TYPE::MS_SPC_NESTED_SIGN),
- sig_{std::move(sig)}
- {}
+ sig_{std::move(sig)} {}
MsSpcNestedSignature(const MsSpcNestedSignature&) = default;
MsSpcNestedSignature& operator=(const MsSpcNestedSignature&) = default;
@@ -52,7 +52,7 @@ class LIEF_API MsSpcNestedSignature : public Attribute {
}
/// Underlying Signature object
- const Signature& sig() const {
+ const Signature& sig() const LIEF_LIFETIMEBOUND {
return sig_;
}
diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/MsSpcStatementType.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/MsSpcStatementType.hpp
index baa8451de29..d470096333b 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/MsSpcStatementType.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/MsSpcStatementType.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,7 +26,8 @@ namespace PE {
/// Interface over the structure described by the OID ``1.3.6.1.4.1.311.2.1.11``
///
/// The internal structure is described in the official document:
-/// [Windows Authenticode Portable Executable Signature Format](http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/Authenticode_PE.docx)
+/// [Windows Authenticode Portable Executable Signature
+/// Format](http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/Authenticode_PE.docx)
///
/// ```text
/// SpcStatementType ::= SEQUENCE of OBJECT IDENTIFIER
@@ -40,8 +41,7 @@ class LIEF_API MsSpcStatementType : public Attribute {
MsSpcStatementType() = delete;
MsSpcStatementType(oid_t oid) :
Attribute(Attribute::TYPE::MS_SPC_STATEMENT_TYPE),
- oid_{std::move(oid)}
- {}
+ oid_{std::move(oid)} {}
MsSpcStatementType(const MsSpcStatementType&) = default;
MsSpcStatementType& operator=(const MsSpcStatementType&) = default;
@@ -52,8 +52,8 @@ class LIEF_API MsSpcStatementType : public Attribute {
/// According to the documentation:
/// > The SpcStatementType MUST contain one Object Identifier with either
- /// > the value ``1.3.6.1.4.1.311.2.1.21 (SPC_INDIVIDUAL_SP_KEY_PURPOSE_OBJID)`` or
- /// > ``1.3.6.1.4.1.311.2.1.22 (SPC_COMMERCIAL_SP_KEY_PURPOSE_OBJID)``.
+ /// > the value ``1.3.6.1.4.1.311.2.1.21 (SPC_INDIVIDUAL_SP_KEY_PURPOSE_OBJID)``
+ /// or > ``1.3.6.1.4.1.311.2.1.22 (SPC_COMMERCIAL_SP_KEY_PURPOSE_OBJID)``.
const oid_t& oid() const {
return oid_;
}
diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9AtSequenceNumber.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9AtSequenceNumber.hpp
index 32db1470ea3..cdbe60a1c53 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9AtSequenceNumber.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9AtSequenceNumber.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,10 +26,12 @@ namespace PE {
class Parser;
class SignatureParser;
-/// Interface over the structure described by the OID ``1.2.840.113549.1.9.25.4`` (PKCS #9)
+/// Interface over the structure described by the OID ``1.2.840.113549.1.9.25.4``
+/// (PKCS #9)
///
/// The internal structure is described in the
-/// [RFC #2985: PKCS #9 - Selected Object Classes and Attribute Types Version 2.0](https://tools.ietf.org/html/rfc2985)
+/// [RFC #2985: PKCS #9 - Selected Object Classes and Attribute Types
+/// Version 2.0](https://tools.ietf.org/html/rfc2985)
///
/// ```text
/// sequenceNumber ATTRIBUTE ::= {
@@ -50,8 +52,7 @@ class LIEF_API PKCS9AtSequenceNumber : public Attribute {
PKCS9AtSequenceNumber() = delete;
PKCS9AtSequenceNumber(uint32_t num) :
Attribute(Attribute::TYPE::PKCS9_AT_SEQUENCE_NUMBER),
- number_{num}
- {}
+ number_{num} {}
PKCS9AtSequenceNumber(const PKCS9AtSequenceNumber&) = default;
PKCS9AtSequenceNumber& operator=(const PKCS9AtSequenceNumber&) = default;
diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9CounterSignature.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9CounterSignature.hpp
index 78367f50930..9c8bf275200 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9CounterSignature.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9CounterSignature.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,10 +24,12 @@ namespace LIEF {
class VectorStream;
namespace PE {
-/// Interface over the structure described by the OID ``1.2.840.113549.1.9.6`` (PKCS #9)
+/// Interface over the structure described by the OID ``1.2.840.113549.1.9.6``
+/// (PKCS #9)
///
/// The internal structure is described in the
-/// [RFC #2985: PKCS #9 - Selected Object Classes and Attribute Types Version 2.0](https://tools.ietf.org/html/rfc2985)
+/// [RFC #2985: PKCS #9 - Selected Object Classes and Attribute Types
+/// Version 2.0](https://tools.ietf.org/html/rfc2985)
///
/// ```text
/// counterSignature ATTRIBUTE ::= {
@@ -44,8 +46,7 @@ class LIEF_API PKCS9CounterSignature : public Attribute {
PKCS9CounterSignature() = delete;
PKCS9CounterSignature(SignerInfo signer) :
Attribute(Attribute::TYPE::PKCS9_COUNTER_SIGNATURE),
- signer_{std::move(signer)}
- {}
+ signer_{std::move(signer)} {}
PKCS9CounterSignature(const PKCS9CounterSignature&) = default;
PKCS9CounterSignature& operator=(const PKCS9CounterSignature&) = default;
@@ -55,8 +56,8 @@ class LIEF_API PKCS9CounterSignature : public Attribute {
}
/// SignerInfo as described in the RFC #2985
- const SignerInfo& signer() const {
- return this->signer_;
+ const SignerInfo& signer() const LIEF_LIFETIMEBOUND {
+ return signer_;
}
/// Print information about the attribute
diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9MessageDigest.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9MessageDigest.hpp
index 9ec273f98a9..2ada66a4921 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9MessageDigest.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9MessageDigest.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
#ifndef LIEF_PE_ATTRIBUTES_PKCS9_MESSAGE_DIGEST_H
#define LIEF_PE_ATTRIBUTES_PKCS9_MESSAGE_DIGEST_H
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/visibility.h"
#include "LIEF/PE/signature/Attribute.hpp"
#include "LIEF/span.hpp"
@@ -28,10 +29,12 @@ namespace PE {
class Parser;
class SignatureParser;
-/// Interface over the structure described by the OID ``1.2.840.113549.1.9.4`` (PKCS #9)
+/// Interface over the structure described by the OID ``1.2.840.113549.1.9.4``
+/// (PKCS #9)
///
/// The internal structure is described in the
-/// [RFC #2985: PKCS #9 - Selected Object Classes and Attribute Types Version 2.0](https://tools.ietf.org/html/rfc2985)
+/// [RFC #2985: PKCS #9 - Selected Object Classes and Attribute Types
+/// Version 2.0](https://tools.ietf.org/html/rfc2985)
///
/// ```text
/// messageDigest ATTRIBUTE ::= {
@@ -52,8 +55,7 @@ class LIEF_API PKCS9MessageDigest : public Attribute {
PKCS9MessageDigest() = delete;
PKCS9MessageDigest(std::vector<uint8_t> digest) :
Attribute(Attribute::TYPE::PKCS9_MESSAGE_DIGEST),
- digest_{std::move(digest)}
- {}
+ digest_{std::move(digest)} {}
PKCS9MessageDigest(const PKCS9MessageDigest&) = default;
PKCS9MessageDigest& operator=(const PKCS9MessageDigest&) = default;
@@ -63,7 +65,7 @@ class LIEF_API PKCS9MessageDigest : public Attribute {
}
/// Message digeset as a blob of bytes as described in the RFC
- span<const uint8_t> digest() const {
+ span<const uint8_t> digest() const LIEF_LIFETIMEBOUND {
return digest_;
}
diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9SigningTime.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9SigningTime.hpp
index 57896b22728..238807cacc2 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9SigningTime.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/PKCS9SigningTime.hpp
@@ -1,6 +1,6 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,10 +24,12 @@
namespace LIEF {
namespace PE {
-/// Interface over the structure described by the OID ``1.2.840.113549.1.9.5`` (PKCS #9)
+/// Interface over the structure described by the OID ``1.2.840.113549.1.9.5``
+/// (PKCS #9)
///
/// The internal structure is described in the
-/// [RFC #2985: PKCS #9 - Selected Object Classes and Attribute Types Version 2.0](https://tools.ietf.org/html/rfc2985)
+/// [RFC #2985: PKCS #9 - Selected Object Classes and Attribute Types
+/// Version 2.0](https://tools.ietf.org/html/rfc2985)
///
/// ```text
/// signingTime ATTRIBUTE ::= {
@@ -51,8 +53,7 @@ class LIEF_API PKCS9SigningTime : public Attribute {
PKCS9SigningTime() = delete;
PKCS9SigningTime(time_t time) :
Attribute(Attribute::TYPE::PKCS9_SIGNING_TIME),
- time_{time}
- {}
+ time_{time} {}
PKCS9SigningTime(const PKCS9SigningTime&) = default;
PKCS9SigningTime& operator=(const PKCS9SigningTime&) = default;
diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/SigningCertificateV2.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/SigningCertificateV2.hpp
index 3d95664bf07..bcb6b17e837 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/SigningCertificateV2.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/SigningCertificateV2.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -47,8 +47,7 @@ class LIEF_API SigningCertificateV2 : public Attribute {
public:
SigningCertificateV2() :
- Attribute(Attribute::TYPE::SIGNING_CERTIFICATE_V2)
- {}
+ Attribute(Attribute::TYPE::SIGNING_CERTIFICATE_V2) {}
SigningCertificateV2(const SigningCertificateV2&) = default;
SigningCertificateV2& operator=(const SigningCertificateV2&) = default;
diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/SpcRelaxedPeMarkerCheck.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/SpcRelaxedPeMarkerCheck.hpp
index 5cce98b4817..861c00f5ff4 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/SpcRelaxedPeMarkerCheck.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/SpcRelaxedPeMarkerCheck.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,13 +29,11 @@ class LIEF_API SpcRelaxedPeMarkerCheck : public Attribute {
public:
SpcRelaxedPeMarkerCheck() :
- SpcRelaxedPeMarkerCheck(0)
- {}
+ SpcRelaxedPeMarkerCheck(0) {}
SpcRelaxedPeMarkerCheck(uint32_t value) :
Attribute(Attribute::TYPE::SPC_RELAXED_PE_MARKER_CHECK),
- value_(value)
- {}
+ value_(value) {}
SpcRelaxedPeMarkerCheck(const SpcRelaxedPeMarkerCheck&) = default;
SpcRelaxedPeMarkerCheck& operator=(const SpcRelaxedPeMarkerCheck&) = default;
diff --git a/deps/LIEF/include/LIEF/PE/signature/attributes/SpcSpOpusInfo.hpp b/deps/LIEF/include/LIEF/PE/signature/attributes/SpcSpOpusInfo.hpp
index 4640cd8991d..a9e5f4613e4 100644
--- a/deps/LIEF/include/LIEF/PE/signature/attributes/SpcSpOpusInfo.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/attributes/SpcSpOpusInfo.hpp
@@ -1,6 +1,6 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,7 +28,8 @@ namespace PE {
/// Interface over the structure described by the OID ``1.3.6.1.4.1.311.2.1.12``
///
/// The internal structure is described in the official document:
-/// [Windows Authenticode Portable Executable Signature Format](http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/Authenticode_PE.docx)
+/// [Windows Authenticode Portable Executable Signature
+/// Format](http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/Authenticode_PE.docx)
///
/// ```text
/// SpcSpOpusInfo ::= SEQUENCE {
@@ -45,12 +46,10 @@ class LIEF_API SpcSpOpusInfo : public Attribute {
SpcSpOpusInfo(std::string program_name, std::string more_info) :
Attribute(Attribute::TYPE::SPC_SP_OPUS_INFO),
program_name_(std::move(program_name)),
- more_info_(std::move(more_info))
- {}
+ more_info_(std::move(more_info)) {}
SpcSpOpusInfo() :
- SpcSpOpusInfo("", "")
- {}
+ SpcSpOpusInfo("", "") {}
SpcSpOpusInfo(const SpcSpOpusInfo&) = default;
SpcSpOpusInfo& operator=(const SpcSpOpusInfo&) = default;
diff --git a/deps/LIEF/include/LIEF/PE/signature/types.hpp b/deps/LIEF/include/LIEF/PE/signature/types.hpp
index 3324b07141f..08e092ffc5c 100644
--- a/deps/LIEF/include/LIEF/PE/signature/types.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/types.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/PE/signature/x509.hpp b/deps/LIEF/include/LIEF/PE/signature/x509.hpp
index 8f96d92f3f1..1483fd4d796 100644
--- a/deps/LIEF/include/LIEF/PE/signature/x509.hpp
+++ b/deps/LIEF/include/LIEF/PE/signature/x509.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -69,53 +69,118 @@ class LIEF_API x509 : public Object {
/// Public key scheme
enum class KEY_TYPES : uint32_t {
- NONE = 0, ///< Unknown scheme
- RSA, ///< RSA Scheme
- ECKEY, ///< Elliptic-curve scheme
- ECKEY_DH, ///< Elliptic-curve Diffie-Hellman
- ECDSA, ///< Elliptic-curve Digital Signature Algorithm
- RSA_ALT, ///< RSA scheme with an alternative implementation for signing and decrypting
- RSASSA_PSS, ///< RSA Probabilistic signature scheme
+ NONE = 0, ///< Unknown scheme
+ RSA, ///< RSA Scheme
+ ECKEY, ///< Elliptic-curve scheme
+ ECKEY_DH, ///< Elliptic-curve Diffie-Hellman
+ ECDSA, ///< Elliptic-curve Digital Signature Algorithm
+ RSA_ALT, ///< RSA scheme with an alternative implementation for signing and
+ ///< decrypting
+ RSASSA_PSS, ///< RSA Probabilistic signature scheme
};
/// Mirror of mbedtls's X509 Verify codes: MBEDTLS_X509_XX
///
/// It must be sync with include/mbedtls/x509.h
enum class VERIFICATION_FLAGS : uint32_t {
- OK = 0, /**< The verification succeed */
- BADCERT_EXPIRED = 1 << 0, /**< The certificate validity has expired. */
- BADCERT_REVOKED = 1 << 1, /**< The certificate has been revoked (is on a CRL). */
- BADCERT_CN_MISMATCH = 1 << 2, /**< The certificate Common Name (CN) does not match with the expected CN. */
- BADCERT_NOT_TRUSTED = 1 << 3, /**< The certificate is not correctly signed by the trusted CA. */
- BADCRL_NOT_TRUSTED = 1 << 4, /**< The CRL is not correctly signed by the trusted CA. */
- BADCRL_EXPIRED = 1 << 5, /**< The CRL is expired. */
- BADCERT_MISSING = 1 << 6, /**< Certificate was missing. */
- BADCERT_SKIP_VERIFY = 1 << 7, /**< Certificate verification was skipped. */
- BADCERT_OTHER = 1 << 8, /**< Other reason (can be used by verify callback) */
- BADCERT_FUTURE = 1 << 9, /**< The certificate validity starts in the future. */
- BADCRL_FUTURE = 1 << 10, /**< The CRL is from the future */
- BADCERT_KEY_USAGE = 1 << 11, /**< Usage does not match the keyUsage extension. */
- BADCERT_EXT_KEY_USAGE = 1 << 12, /**< Usage does not match the extendedKeyUsage extension. */
- BADCERT_NS_CERT_TYPE = 1 << 13, /**< Usage does not match the nsCertType extension. */
- BADCERT_BAD_MD = 1 << 14, /**< The certificate is signed with an unacceptable hash. */
- BADCERT_BAD_PK = 1 << 15, /**< The certificate is signed with an unacceptable PK alg (eg RSA vs ECDSA). */
- BADCERT_BAD_KEY = 1 << 16, /**< The certificate is signed with an unacceptable key (eg bad curve, RSA too short). */
- BADCRL_BAD_MD = 1 << 17, /**< The CRL is signed with an unacceptable hash. */
- BADCRL_BAD_PK = 1 << 18, /**< The CRL is signed with an unacceptable PK alg (eg RSA vs ECDSA). */
- BADCRL_BAD_KEY = 1 << 19, /**< The CRL is signed with an unacceptable key (eg bad curve, RSA too short). */
+ /// The verification succeed
+ OK = 0,
+
+ /// The certificate validity has expired.
+ BADCERT_EXPIRED = 1 << 0,
+
+ /// The certificate has been revoked (is on a CRL).
+ BADCERT_REVOKED = 1 << 1,
+
+ /// The certificate Common Name (CN) does not match with the expected CN.
+ BADCERT_CN_MISMATCH = 1 << 2,
+
+ /// The certificate is not correctly signed by the trusted CA.
+ BADCERT_NOT_TRUSTED = 1 << 3,
+
+ /// The CRL is not correctly signed by the trusted CA.
+ BADCRL_NOT_TRUSTED = 1 << 4,
+
+ /// The CRL is expired.
+ BADCRL_EXPIRED = 1 << 5,
+
+ /// Certificate was missing.
+ BADCERT_MISSING = 1 << 6,
+
+ /// Certificate verification was skipped.
+ BADCERT_SKIP_VERIFY = 1 << 7,
+
+ ///
+ /// Other reason (can be used by verify callback)
+ BADCERT_OTHER = 1 << 8,
+
+ /// The certificate validity starts in the future.
+ BADCERT_FUTURE = 1 << 9,
+
+ /// The CRL is from the future
+ BADCRL_FUTURE = 1 << 10,
+
+ /// Usage does not match the keyUsage extension.
+ BADCERT_KEY_USAGE = 1 << 11,
+
+ /// Usage does not match the extendedKeyUsage extension.
+ BADCERT_EXT_KEY_USAGE = 1 << 12,
+
+ /// Usage does not match the nsCertType extension.
+ BADCERT_NS_CERT_TYPE = 1 << 13,
+
+ /// The certificate is signed with an unacceptable hash.
+ BADCERT_BAD_MD = 1 << 14,
+
+ /// The certificate is signed with an unacceptable PK alg (eg RSA vs ECDSA).
+ BADCERT_BAD_PK = 1 << 15,
+
+ /// The certificate is signed with an unacceptable key (eg bad curve, RSA too
+ /// short).
+ BADCERT_BAD_KEY = 1 << 16,
+
+ /// The CRL is signed with an unacceptable hash.
+ BADCRL_BAD_MD = 1 << 17,
+
+ /// The CRL is signed with an unacceptable PK alg (eg RSA vs ECDSA).
+ BADCRL_BAD_PK = 1 << 18,
+
+ /// The CRL is signed with an unacceptable key (eg bad curve, RSA too short).
+ BADCRL_BAD_KEY = 1 << 19,
};
- /// Key usage as defined in [RFC #5280 - section-4.2.1.3](https://tools.ietf.org/html/rfc5280#section-4.2.1.3)
+ /// Key usage as defined in [RFC #5280 -
+ /// section-4.2.1.3](https://tools.ietf.org/html/rfc5280#section-4.2.1.3)
enum class KEY_USAGE : uint32_t {
- DIGITAL_SIGNATURE = 0, /**< The key is used for digital signature */
- NON_REPUDIATION, /**< The key is used for digital signature AND to protects against falsely denying some action */
- KEY_ENCIPHERMENT, /**< The key is used for enciphering private or secret keys */
- DATA_ENCIPHERMENT, /**< The key is used for directly enciphering raw user data without the use of an intermediate symmetric cipher */
- KEY_AGREEMENT, /**< The Key is used for key agreement. (e.g. with Diffie-Hellman) */
- KEY_CERT_SIGN, /**< The key is used for verifying signatures on public key certificates */
- CRL_SIGN, /**< The key is used for verifying signatures on certificate revocation lists */
- ENCIPHER_ONLY, /**< In **association with** KEY_AGREEMENT (otherwise the meaning is undefined), the key is only used for enciphering data while performing key agreement */
- DECIPHER_ONLY, /**< In **association with** KEY_AGREEMENT (otherwise the meaning is undefined), the key is only used for deciphering data while performing key agreement */
+ /// The key is used for digital signature
+ DIGITAL_SIGNATURE = 0,
+ /// The key is used for digital signature AND to protect against falsely
+ /// denying some action
+ NON_REPUDIATION,
+
+ /// The key is used for enciphering private or secret keys
+ KEY_ENCIPHERMENT,
+
+ /// The key is used for directly enciphering raw user data without the use of
+ /// an intermediate symmetric cipher
+ DATA_ENCIPHERMENT,
+
+ /// The Key is used for key agreement. (e.g. with Diffie-Hellman)
+ KEY_AGREEMENT,
+
+ /// The key is used for verifying signatures on public key certificates
+ KEY_CERT_SIGN,
+
+ /// The key is used for verifying signatures on certificate revocation lists
+ CRL_SIGN,
+
+ /// In **association with** KEY_AGREEMENT (otherwise the meaning is undefined),
+ /// the key is only used for enciphering data while performing key agreement
+ ENCIPHER_ONLY,
+
+ /// In **association with** KEY_AGREEMENT (otherwise the meaning is undefined),
+ /// the key is only used for deciphering data while performing key agreement
+ DECIPHER_ONLY,
};
x509(mbedtls_x509_crt* ca);
@@ -138,16 +203,17 @@ class LIEF_API x509 : public Object {
/// End time of certificate validity
date_t valid_to() const;
- /// Issuer informations
+ /// Issuer information
std::string issuer() const;
- /// Subject informations
+ /// Subject information
std::string subject() const;
- /// Try to decrypt the given signature and check if it matches the given hash according to
- /// the hash algorithm provided
+ /// Try to decrypt the given signature and check if it matches the given hash
+ /// according to the hash algorithm provided
bool check_signature(const std::vector<uint8_t>& hash,
- const std::vector<uint8_t>& signature, ALGORITHMS digest) const;
+ const std::vector<uint8_t>& signature,
+ ALGORITHMS digest) const;
/// The raw x509 bytes (DER encoded)
std::vector<uint8_t> raw() const;
@@ -171,7 +237,8 @@ class LIEF_API x509 : public Object {
/// Purpose of the key contained in the certificate
std::vector<KEY_USAGE> key_usage() const;
- /// Indicates one or more purposes for which the certified public key may be used (OID types)
+ /// Indicates one or more purposes for which the certified public key may be used
+ /// (OID types)
std::vector<oid_t> ext_key_usage() const;
bool is_ca() const;
@@ -183,12 +250,12 @@ class LIEF_API x509 : public Object {
~x509() override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const x509& x509_cert);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const x509& x509_cert);
private:
x509();
mbedtls_x509_crt* x509_cert_ = nullptr;
-
};
}
diff --git a/deps/LIEF/include/LIEF/PE/utils.hpp b/deps/LIEF/include/LIEF/PE/utils.hpp
index e3066d11b0e..29b1b65f0c9 100644
--- a/deps/LIEF/include/LIEF/PE/utils.hpp
+++ b/deps/LIEF/include/LIEF/PE/utils.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,10 +31,18 @@ class Import;
/// Enum to define the behavior of LIEF::PE::get_imphash
enum class IMPHASH_MODE {
- DEFAULT = 0, /**< Default implementation */
- LIEF = DEFAULT, /**< Same as IMPHASH_MODE::DEFAULT */
- PEFILE, /**< Use pefile algorithm */
- VT = PEFILE, /**< Same as IMPHASH_MODE::PEFILE since Virus Total is using pefile */
+ /// Default implementation
+ DEFAULT = 0,
+
+ /// Same as IMPHASH_MODE::DEFAULT
+ LIEF = DEFAULT,
+
+ /// Use pefile algorithm
+ PEFILE,
+
+ /// Same as IMPHASH_MODE::PEFILE since Virus Total is using pefile
+ VT = PEFILE,
+
};
/// Check if the given stream wraps a PE binary
@@ -62,13 +70,16 @@ LIEF_LOCAL result<PE_TYPE> get_type_from_stream(BinaryStream& stream);
/// * Casse agnostic
/// * Ordinal (**in some extent**) agnostic
///
-/// If one needs the same output as Virus Total (i.e. pefile), you can pass IMPHASH_MODE::PEFILE
-/// as second parameter.
+/// If one needs the same output as Virus Total (i.e. pefile), you can pass
+/// IMPHASH_MODE::PEFILE as second parameter.
///
-/// @warning The default algorithm used to compute the *imphash* value has some variations compared to Yara, pefile, VT implementation
+/// @warning The default algorithm used to compute the *imphash* value has some
+/// variations compared to Yara, pefile, VT implementation
///
-/// @see https://www.fireeye.com/blog/threat-research/2014/01/tracking-malware-import-hashing.html
-LIEF_API std::string get_imphash(const Binary& binary, IMPHASH_MODE mode = IMPHASH_MODE::DEFAULT);
+/// @see
+/// https://www.fireeye.com/blog/threat-research/2014/01/tracking-malware-import-hashing.html
+LIEF_API std::string get_imphash(const Binary& binary,
+ IMPHASH_MODE mode = IMPHASH_MODE::DEFAULT);
/// Take a PE::Import as entry and try to resolve imports
/// by ordinal.
@@ -77,11 +88,15 @@ LIEF_API std::string get_imphash(const Binary& binary, IMPHASH_MODE mode = IMPHA
/// if the ordinal can't be resolved. Otherwise it skips the entry.
///
/// @param[in] import Import to resolve
-/// @param[in] strict If set to ``true``, throw an exception if the import can't be resolved
-/// @param[in] use_std If ``true``, it will use the [pefile](https://github.com/erocarrera/pefile/tree/09264be6f731bf8578aee8638cc4046154e03abf/ordlookup) look-up table for resolving imports
+/// @param[in] strict If set to ``true``, throw an exception if the import can't be
+/// resolved
+/// @param[in] use_std If ``true``, it will use the
+/// [pefile](https://github.com/erocarrera/pefile/tree/09264be6f731bf8578aee8638cc4046154e03abf/ordlookup)
+/// look-up table for resolving imports
///
/// @return The PE::import resolved with PE::ImportEntry::name set
-LIEF_API result<Import> resolve_ordinals(const Import& import, bool strict=false, bool use_std=false);
+LIEF_API result<Import> resolve_ordinals(const Import& import, bool strict = false,
+ bool use_std = false);
LIEF_API ALGORITHMS algo_from_oid(const std::string& oid);
diff --git a/deps/LIEF/include/LIEF/VDEX.hpp b/deps/LIEF/include/LIEF/VDEX.hpp
index 304b28f6c06..3506f014a86 100644
--- a/deps/LIEF/include/LIEF/VDEX.hpp
+++ b/deps/LIEF/include/LIEF/VDEX.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,13 +19,13 @@
#include "LIEF/config.h"
#if defined(LIEF_VDEX_SUPPORT)
-#if !defined(LIEF_DEX_SUPPORT)
-#error "The VDEX module can't be used without the DEX support"
-#endif
-#include "LIEF/DEX.hpp"
-#include "LIEF/VDEX/Parser.hpp"
-#include "LIEF/VDEX/utils.hpp"
-#include "LIEF/VDEX/File.hpp"
+ #if !defined(LIEF_DEX_SUPPORT)
+ #error "The VDEX module can't be used without the DEX support"
+ #endif
+ #include "LIEF/DEX.hpp"
+ #include "LIEF/VDEX/Parser.hpp"
+ #include "LIEF/VDEX/utils.hpp"
+ #include "LIEF/VDEX/File.hpp"
#endif
#endif
diff --git a/deps/LIEF/include/LIEF/VDEX/File.hpp b/deps/LIEF/include/LIEF/VDEX/File.hpp
index d25b131503b..b4dc04b5dd6 100644
--- a/deps/LIEF/include/LIEF/VDEX/File.hpp
+++ b/deps/LIEF/include/LIEF/VDEX/File.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -46,18 +46,19 @@ class LIEF_API File : public Object {
public:
using dex_files_t = std::vector<std::unique_ptr<DEX::File>>;
using it_dex_files = ref_iterator<dex_files_t&, DEX::File*>;
- using it_const_dex_files = const_ref_iterator<const dex_files_t&, const DEX::File*>;
+ using it_const_dex_files =
+ const_ref_iterator<const dex_files_t&, const DEX::File*>;
File& operator=(const File& copy) = delete;
- File(const File& copy) = delete;
+ File(const File& copy) = delete;
/// VDEX Header
- const Header& header() const;
- Header& header();
+ const Header& header() const LIEF_LIFETIMEBOUND;
+ Header& header() LIEF_LIFETIMEBOUND;
/// Iterator over LIEF::DEX::Files registered
- it_dex_files dex_files();
- it_const_dex_files dex_files() const;
+ it_dex_files dex_files() LIEF_LIFETIMEBOUND;
+ it_const_dex_files dex_files() const LIEF_LIFETIMEBOUND;
dex2dex_info_t dex2dex_info() const;
@@ -68,7 +69,8 @@ class LIEF_API File : public Object {
~File() override;
- LIEF_API friend std::ostream& operator<<(std::ostream& os, const File& vdex_file);
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const File& vdex_file);
private:
File();
diff --git a/deps/LIEF/include/LIEF/VDEX/Header.hpp b/deps/LIEF/include/LIEF/VDEX/Header.hpp
index f97e5125fdb..b91d56c0a60 100644
--- a/deps/LIEF/include/LIEF/VDEX/Header.hpp
+++ b/deps/LIEF/include/LIEF/VDEX/Header.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/VDEX/Parser.hpp b/deps/LIEF/include/LIEF/VDEX/Parser.hpp
index d7c05a73570..9d6afeb4f5d 100644
--- a/deps/LIEF/include/LIEF/VDEX/Parser.hpp
+++ b/deps/LIEF/include/LIEF/VDEX/Parser.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,7 +28,7 @@ class VectorStream;
namespace VDEX {
class File;
-/// Class which parse an VDEX file and transform into a VDEX::File object
+/// Class which parses a VDEX file and transforms it into a VDEX::File object
class LIEF_API Parser {
public:
static std::unique_ptr<File> parse(const std::string& file);
@@ -36,7 +36,7 @@ class LIEF_API Parser {
const std::string& name = "");
Parser& operator=(const Parser& copy) = delete;
- Parser(const Parser& copy) = delete;
+ Parser(const Parser& copy) = delete;
private:
Parser();
diff --git a/deps/LIEF/include/LIEF/VDEX/hash.hpp b/deps/LIEF/include/LIEF/VDEX/hash.hpp
index f9d03fd4273..fcf7e2ae4a3 100644
--- a/deps/LIEF/include/LIEF/VDEX/hash.hpp
+++ b/deps/LIEF/include/LIEF/VDEX/hash.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -33,7 +33,7 @@ class LIEF_API Hash : public LIEF::Hash {
using LIEF::Hash::visit;
public:
- void visit(const File& file) override;
+ void visit(const File& file) override;
void visit(const Header& header) override;
~Hash() override;
diff --git a/deps/LIEF/include/LIEF/VDEX/json.hpp b/deps/LIEF/include/LIEF/VDEX/json.hpp
index 74644d4be6b..2de70a8c10f 100644
--- a/deps/LIEF/include/LIEF/VDEX/json.hpp
+++ b/deps/LIEF/include/LIEF/VDEX/json.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/VDEX/type_traits.hpp b/deps/LIEF/include/LIEF/VDEX/type_traits.hpp
index 5ae2f6ee357..e69b4c6e2d0 100644
--- a/deps/LIEF/include/LIEF/VDEX/type_traits.hpp
+++ b/deps/LIEF/include/LIEF/VDEX/type_traits.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/VDEX/utils.hpp b/deps/LIEF/include/LIEF/VDEX/utils.hpp
index 71f48f7fcc6..3a68ef8dbde 100644
--- a/deps/LIEF/include/LIEF/VDEX/utils.hpp
+++ b/deps/LIEF/include/LIEF/VDEX/utils.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,10 +29,10 @@
namespace LIEF {
namespace VDEX {
-/// Check if the given file is an VDEX one.
+/// Check if the given file is a VDEX one.
LIEF_API bool is_vdex(const std::string& file);
-/// Check if the given raw data is an VDEX one.
+/// Check if the given raw data is a VDEX one.
LIEF_API bool is_vdex(const std::vector<uint8_t>& raw);
/// Return the VDEX version of the given file
diff --git a/deps/LIEF/include/LIEF/Visitor.hpp b/deps/LIEF/include/LIEF/Visitor.hpp
index 9c0b57ca2f6..fa4c2a53cc9 100644
--- a/deps/LIEF/include/LIEF/Visitor.hpp
+++ b/deps/LIEF/include/LIEF/Visitor.hpp
@@ -1,18 +1,18 @@
-/* Copyright 2017 - 2025 R. Thomas
-* Copyright 2017 - 2025 Quarkslab
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
#ifndef LIEF_VISITOR_H
#define LIEF_VISITOR_H
#include <set>
@@ -106,6 +106,8 @@ LIEF_ELF_FORWARD(DynamicEntry)
LIEF_ELF_FORWARD(DynamicEntryArray)
LIEF_ELF_FORWARD(DynamicEntryLibrary)
LIEF_ELF_FORWARD(DynamicSharedObject)
+LIEF_ELF_FORWARD(DynamicEntryAuxiliary)
+LIEF_ELF_FORWARD(DynamicEntryFilter)
LIEF_ELF_FORWARD(DynamicEntryRunPath)
LIEF_ELF_FORWARD(DynamicEntryRpath)
LIEF_ELF_FORWARD(DynamicEntryFlags)
@@ -248,6 +250,8 @@ class LIEF_API Visitor {
LIEF_ELF_VISITABLE(DynamicEntryArray)
LIEF_ELF_VISITABLE(DynamicEntryLibrary)
LIEF_ELF_VISITABLE(DynamicSharedObject)
+ LIEF_ELF_VISITABLE(DynamicEntryAuxiliary)
+ LIEF_ELF_VISITABLE(DynamicEntryFilter)
LIEF_ELF_VISITABLE(DynamicEntryRunPath)
LIEF_ELF_VISITABLE(DynamicEntryRpath)
LIEF_ELF_VISITABLE(DynamicEntryFlags)
@@ -279,10 +283,10 @@ class LIEF_API Visitor {
/// Method to visit a LIEF::PE::DosHeader
LIEF_PE_VISITABLE(DosHeader)
- /// Method to visit a LIEF::PE:RichHeader
+ /// Method to visit a LIEF::PE::RichHeader
LIEF_PE_VISITABLE(RichHeader)
- /// Method to visit a LIEF::PE:RichEntry
+ /// Method to visit a LIEF::PE::RichEntry
LIEF_PE_VISITABLE(RichEntry)
/// Method to visit a LIEF::PE::Header
@@ -342,7 +346,7 @@ class LIEF_API Visitor {
/// Method to visit a LIEF::PE::ResourceDirectory
LIEF_PE_VISITABLE(ResourceDirectory)
- /// Method to visit a LIEF::PE::ResourceVersion
+ /// Method to visit a LIEF::PE::ResourcesManager
LIEF_PE_VISITABLE(ResourcesManager)
/// Method to visit a LIEF::PE::ResourceVersion
@@ -548,16 +552,16 @@ class LIEF_API Visitor {
/// Method to visit a LIEF::MachO::DyldEnvironment
LIEF_MACHO_VISITABLE(DyldEnvironment)
- /// Method to visit a LIEF::MachO::DyldEnvironment
+ /// Method to visit a LIEF::MachO::EncryptionInfo
LIEF_MACHO_VISITABLE(EncryptionInfo)
- /// Method to visit a LIEF::MachO:BuildVersion:
+ /// Method to visit a LIEF::MachO::BuildVersion
LIEF_MACHO_VISITABLE(BuildVersion)
- /// Method to visit a LIEF::MachO:BuildToolVersion:
+ /// Method to visit a LIEF::MachO::BuildToolVersion
LIEF_MACHO_VISITABLE(BuildToolVersion)
- /// Method to visit a LIEF::MachO:BuildToolVersion:
+ /// Method to visit a LIEF::MachO::FilesetCommand
LIEF_MACHO_VISITABLE(FilesetCommand)
/// Method to visit a LIEF::MachO::CodeSignatureDir
@@ -597,7 +601,7 @@ class LIEF_API Visitor {
/// Method to visit a LIEF::DEX::File
LIEF_DEX_VISITABLE(File)
-/// Method to visit a LIEF::DEX::Field
+ /// Method to visit a LIEF::DEX::Field
LIEF_DEX_VISITABLE(Field)
/// Method to visit a LIEF::DEX::Method
@@ -615,13 +619,13 @@ class LIEF_API Visitor {
/// Method to visit a LIEF::DEX::Type
LIEF_DEX_VISITABLE(Type)
- /// Method to visit a LIEF::DEX:Prototype:
+ /// Method to visit a LIEF::DEX::Prototype
LIEF_DEX_VISITABLE(Prototype)
- /// Method to visit a LIEF::DEX:MapList:
+ /// Method to visit a LIEF::DEX::MapList
LIEF_DEX_VISITABLE(MapList)
- /// Method to visit a LIEF::DEX:MapItem:
+ /// Method to visit a LIEF::DEX::MapItem
LIEF_DEX_VISITABLE(MapItem)
// VDEX part
@@ -651,11 +655,10 @@ class LIEF_API Visitor {
};
-
template<typename Arg1, typename... Args>
void Visitor::operator()(Arg1&& arg1, Args&&... args) {
dispatch(std::forward<Arg1>(arg1));
- operator()(std::forward<Args>(args)... );
+ operator()(std::forward<Args>(args)...);
}
template<class T>
diff --git a/deps/LIEF/include/LIEF/asm/AssemblerConfig.hpp b/deps/LIEF/include/LIEF/asm/AssemblerConfig.hpp
index c9d5b963e38..73c9831d342 100644
--- a/deps/LIEF/include/LIEF/asm/AssemblerConfig.hpp
+++ b/deps/LIEF/include/LIEF/asm/AssemblerConfig.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -30,11 +30,11 @@ class LIEF_API AssemblerConfig {
public:
AssemblerConfig() = default;
- AssemblerConfig(const AssemblerConfig &) = default;
- AssemblerConfig &operator=(const AssemblerConfig &) = default;
+ AssemblerConfig(const AssemblerConfig&) = default;
+ AssemblerConfig& operator=(const AssemblerConfig&) = default;
- AssemblerConfig(AssemblerConfig &&) = default;
- AssemblerConfig &operator=(AssemblerConfig &&) = default;
+ AssemblerConfig(AssemblerConfig&&) = default;
+ AssemblerConfig& operator=(AssemblerConfig&&) = default;
/// The different supported dialects
enum class DIALECT {
@@ -65,8 +65,8 @@ class LIEF_API AssemblerConfig {
/// 0x1003: call _my_function
/// ```
///
- /// The function `_my_function` will remain undefined unless we return its address
- /// in `resolve_symbol()`:
+ /// The function `_my_function` will remain undefined unless we return its
+ /// address in `resolve_symbol()`:
///
/// ```cpp
/// class MyConfig : public AssemblerConfig {
diff --git a/deps/LIEF/include/LIEF/asm/Engine.hpp b/deps/LIEF/include/LIEF/asm/Engine.hpp
index 291752a2a67..9e339872341 100644
--- a/deps/LIEF/include/LIEF/asm/Engine.hpp
+++ b/deps/LIEF/include/LIEF/asm/Engine.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
#define LIEF_ASM_ENGINE_H
#include "LIEF/visibility.h"
#include "LIEF/iterators.hpp"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/asm/Instruction.hpp"
#include "LIEF/asm/AssemblerConfig.hpp"
@@ -51,34 +52,34 @@ class LIEF_API Engine {
/// parameter.
instructions_it disassemble(const uint8_t* buffer, size_t size, uint64_t addr);
- /// Disassemble the given vector of bytes with the address specified in the second
- /// parameter.
+ /// Disassemble the given vector of bytes with the address specified in the
+ /// second parameter.
instructions_it disassemble(const std::vector<uint8_t>& bytes, uint64_t addr) {
return disassemble(bytes.data(), bytes.size(), addr);
}
- std::vector<uint8_t> assemble(uint64_t address, const std::string& Asm,
- AssemblerConfig& config = AssemblerConfig::default_config());
+ std::vector<uint8_t>
+ assemble(uint64_t address, const std::string& Asm,
+ AssemblerConfig& config = AssemblerConfig::default_config());
- std::vector<uint8_t> assemble(uint64_t address, const std::string& Asm,
- LIEF::Binary& bin, AssemblerConfig& config = AssemblerConfig::default_config());
+ std::vector<uint8_t>
+ assemble(uint64_t address, const std::string& Asm, LIEF::Binary& bin,
+ AssemblerConfig& config = AssemblerConfig::default_config());
- std::vector<uint8_t> assemble(uint64_t address, const llvm::MCInst& inst,
- LIEF::Binary& bin);
+ std::vector<uint8_t> assemble(const llvm::MCInst& inst);
- std::vector<uint8_t> assemble(
- uint64_t address, const std::vector<llvm::MCInst>& inst, LIEF::Binary& bin);
+ std::vector<uint8_t> assemble(const std::vector<llvm::MCInst>& inst);
~Engine();
- /// \private
- LIEF_LOCAL const details::Engine& impl() const {
+ /// @private
+ LIEF_LOCAL const details::Engine& impl() const LIEF_LIFETIMEBOUND {
assert(impl_ != nullptr);
return *impl_;
}
- /// \private
- LIEF_LOCAL details::Engine& impl() {
+ /// @private
+ LIEF_LOCAL details::Engine& impl() LIEF_LIFETIMEBOUND {
assert(impl_ != nullptr);
return *impl_;
}
diff --git a/deps/LIEF/include/LIEF/asm/Instruction.hpp b/deps/LIEF/include/LIEF/asm/Instruction.hpp
index 7570af8fc61..8e952b57a02 100644
--- a/deps/LIEF/include/LIEF/asm/Instruction.hpp
+++ b/deps/LIEF/include/LIEF/asm/Instruction.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
#define LIEF_ASM_INST_H
#include "LIEF/visibility.h"
#include "LIEF/iterators.hpp"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/errors.hpp"
#include <ostream>
@@ -37,13 +38,14 @@ class InstructionIt;
/// This class represents an assembly instruction
class LIEF_API Instruction {
public:
- /// **Lazy-forward** iterator that outputs Instruction
- class Iterator final :
- public iterator_facade_base<Iterator, std::forward_iterator_tag, std::unique_ptr<Instruction>,
- std::ptrdiff_t, Instruction*, std::unique_ptr<Instruction>>
- {
+ /// **Lazy-forward** iterator that disassembles instructions on demand.
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::forward_iterator_tag, Instruction,
+ std::ptrdiff_t, const Instruction*,
+ const Instruction&> {
public:
using implementation = details::InstructionIt;
+ using iterator_facade_base::operator++;
LIEF_API Iterator();
@@ -56,6 +58,7 @@ class LIEF_API Instruction {
LIEF_API ~Iterator();
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
LIEF_API Iterator& operator++();
friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
@@ -64,18 +67,27 @@ class LIEF_API Instruction {
return !(LHS == RHS);
}
- /// Disassemble and output an Instruction at the current iterator's
- /// position.
- LIEF_API std::unique_ptr<Instruction> operator*() const;
+ LIEF_API const Instruction& operator*() const LIEF_LIFETIMEBOUND;
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const Instruction* operator->() const LIEF_LIFETIMEBOUND;
+
+ /// Transfer ownership of the instruction at the current position to the
+ /// caller. Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<Instruction> yield();
private:
+ void load() const;
+
std::unique_ptr<details::InstructionIt> impl_;
+ mutable std::unique_ptr<Instruction> cached_;
};
+
public:
/// Memory operation flags
enum class MemoryAccess : uint8_t {
- NONE = 0,
- READ = 1 << 0,
+ NONE = 0,
+ READ = 1 << 0,
WRITE = 1 << 1,
READ_WRITE = READ | WRITE,
};
@@ -87,7 +99,7 @@ class LIEF_API Instruction {
size_t size() const;
/// Raw bytes of the current instruction
- const std::vector<uint8_t>& raw() const;
+ const std::vector<uint8_t>& raw() const LIEF_LIFETIMEBOUND;
/// Instruction mnemonic (e.g. `br`)
std::string mnemonic() const;
@@ -123,14 +135,14 @@ class LIEF_API Instruction {
bool is_trap() const;
/// True if the instruction prevents executing the instruction
- /// that immediatly follows the current. This includes return
+ /// that immediately follows the current. This includes return
/// or unconditional branch instructions
bool is_barrier() const;
/// True if the instruction is a return
bool is_return() const;
- /// True if the instruction is and indirect branch.
+ /// True if the instruction is an indirect branch.
///
/// This includes instructions that branch through a register (e.g. `jmp rax`,
/// `br x1`).
@@ -162,9 +174,9 @@ class LIEF_API Instruction {
/// Return the underlying llvm::MCInst implementation.
///
- /// \warning Because of ABI compatibility, this MCInst can **only be used**
+ /// @warning Because of ABI compatibility, this MCInst can **only be used**
/// with the **same** version of LLVM used by LIEF (see documentation)
- const llvm::MCInst& mcinst() const;
+ const llvm::MCInst& mcinst() const LIEF_LIFETIMEBOUND;
/// This function can be used to **down cast** an Instruction instance:
///
@@ -175,7 +187,7 @@ class LIEF_API Instruction {
/// }
/// ```
template<class T>
- const T* as() const {
+ const T* as() const LIEF_LIFETIMEBOUND {
static_assert(std::is_base_of<Instruction, T>::value,
"Require Instruction inheritance");
if (T::classof(this)) {
@@ -184,25 +196,26 @@ class LIEF_API Instruction {
return nullptr;
}
- friend LIEF_API std::ostream& operator<<(std::ostream& os, const Instruction& inst) {
+ friend LIEF_API std::ostream& operator<<(std::ostream& os,
+ const Instruction& inst) {
os << inst.to_string();
return os;
}
virtual ~Instruction();
- /// \private
+ /// @private
static LIEF_LOCAL std::unique_ptr<Instruction>
- create(std::unique_ptr<details::Instruction> impl);
+ create(std::unique_ptr<details::Instruction> impl);
- /// \private
- LIEF_LOCAL const details::Instruction& impl() const {
+ /// @private
+ LIEF_LOCAL const details::Instruction& impl() const LIEF_LIFETIMEBOUND {
assert(impl_ != nullptr);
return *impl_;
}
- /// \private
- LIEF_LOCAL details::Instruction& impl() {
+ /// @private
+ LIEF_LOCAL details::Instruction& impl() LIEF_LIFETIMEBOUND {
assert(impl_ != nullptr);
return *impl_;
}
diff --git a/deps/LIEF/include/LIEF/asm/aarch64.hpp b/deps/LIEF/include/LIEF/asm/aarch64.hpp
index 6cd62d1ffdf..63803c6ab94 100644
--- a/deps/LIEF/include/LIEF/asm/aarch64.hpp
+++ b/deps/LIEF/include/LIEF/asm/aarch64.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/aarch64/Instruction.hpp b/deps/LIEF/include/LIEF/asm/aarch64/Instruction.hpp
index 6aadc16acff..7ca78e599d7 100644
--- a/deps/LIEF/include/LIEF/asm/aarch64/Instruction.hpp
+++ b/deps/LIEF/include/LIEF/asm/aarch64/Instruction.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
#ifndef LIEF_ASM_AARCH64_INST_H
#define LIEF_ASM_AARCH64_INST_H
#include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/asm/Instruction.hpp"
#include "LIEF/asm/aarch64/opcodes.hpp"
@@ -37,7 +38,7 @@ class LIEF_API Instruction : public assembly::Instruction {
OPCODE opcode() const;
/// Iterator over the operands of the current instruction
- operands_it operands() const;
+ operands_it operands() const LIEF_LIFETIMEBOUND;
/// True if `inst` is an **effective** instance of aarch64::Instruction
static bool classof(const assembly::Instruction* inst);
diff --git a/deps/LIEF/include/LIEF/asm/aarch64/Operand.hpp b/deps/LIEF/include/LIEF/asm/aarch64/Operand.hpp
index f37c4aae4d0..968c2cbf21d 100644
--- a/deps/LIEF/include/LIEF/asm/aarch64/Operand.hpp
+++ b/deps/LIEF/include/LIEF/asm/aarch64/Operand.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
#ifndef LIEF_ASM_AARCH64_OPERAND_H
#define LIEF_ASM_AARCH64_OPERAND_H
#include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/iterators.hpp"
#include <memory>
@@ -35,14 +36,13 @@ class OperandIt;
/// This class represents an operand for an AArch64 instruction
class LIEF_API Operand {
public:
-
- /// **Forward** iterator that outputs aarch64 Operand as `std::unique_ptr`
- class Iterator final :
- public iterator_facade_base<Iterator, std::forward_iterator_tag, std::unique_ptr<Operand>,
- std::ptrdiff_t, Operand*, std::unique_ptr<Operand>>
- {
+ /// **Forward** iterator that lazily disassembles aarch64 Operand.
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::forward_iterator_tag, Operand,
+ std::ptrdiff_t, const Operand*, const Operand&> {
public:
using implementation = details::OperandIt;
+ using iterator_facade_base::operator++;
LIEF_API Iterator();
@@ -55,6 +55,7 @@ class LIEF_API Operand {
LIEF_API ~Iterator();
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
LIEF_API Iterator& operator++();
friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
@@ -63,10 +64,20 @@ class LIEF_API Operand {
return !(LHS == RHS);
}
- LIEF_API std::unique_ptr<Operand> operator*() const;
+ LIEF_API const Operand& operator*() const LIEF_LIFETIMEBOUND;
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const Operand* operator->() const LIEF_LIFETIMEBOUND;
+
+ /// Transfer ownership of the operand at the current position to the
+ /// caller. Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<Operand> yield();
private:
+ void load() const;
+
std::unique_ptr<details::OperandIt> impl_;
+ mutable std::unique_ptr<Operand> cached_;
};
/// Pretty representation of the operand
@@ -81,7 +92,7 @@ class LIEF_API Operand {
/// }
/// ```
template<class T>
- const T* as() const {
+ const T* as() const LIEF_LIFETIMEBOUND {
static_assert(std::is_base_of<Operand, T>::value,
"Require Operand inheritance");
if (T::classof(this)) {
@@ -92,18 +103,18 @@ class LIEF_API Operand {
virtual ~Operand();
- /// \private
+ /// @private
static LIEF_LOCAL std::unique_ptr<Operand>
- create(std::unique_ptr<details::Operand> impl);
+ create(std::unique_ptr<details::Operand> impl);
- /// \private
- LIEF_LOCAL const details::Operand& impl() const {
+ /// @private
+ LIEF_LOCAL const details::Operand& impl() const LIEF_LIFETIMEBOUND {
assert(impl_ != nullptr);
return *impl_;
}
- /// \private
- LIEF_LOCAL details::Operand& impl() {
+ /// @private
+ LIEF_LOCAL details::Operand& impl() LIEF_LIFETIMEBOUND {
assert(impl_ != nullptr);
return *impl_;
}
diff --git a/deps/LIEF/include/LIEF/asm/aarch64/opcodes.hpp b/deps/LIEF/include/LIEF/asm/aarch64/opcodes.hpp
index 79161dcf3bd..61f01f1a9ae 100644
--- a/deps/LIEF/include/LIEF/asm/aarch64/opcodes.hpp
+++ b/deps/LIEF/include/LIEF/asm/aarch64/opcodes.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
#ifndef LIEF_ASM_AARCH64_OPCODE_H
#define LIEF_ASM_AARCH64_OPCODE_H
-/* Generated from LLVM: 21.1.0 */
+/* Generated from LLVM: 22.1.8 */
namespace LIEF {
namespace assembly {
@@ -42,8986 +42,9121 @@ enum class OPCODE {
DBG_LABEL = 18,
REG_SEQUENCE = 19,
COPY = 20,
- BUNDLE = 21,
- LIFETIME_START = 22,
- LIFETIME_END = 23,
- PSEUDO_PROBE = 24,
- ARITH_FENCE = 25,
- STACKMAP = 26,
- FENTRY_CALL = 27,
- PATCHPOINT = 28,
- LOAD_STACK_GUARD = 29,
- PREALLOCATED_SETUP = 30,
- PREALLOCATED_ARG = 31,
- STATEPOINT = 32,
- LOCAL_ESCAPE = 33,
- FAULTING_OP = 34,
- PATCHABLE_OP = 35,
- PATCHABLE_FUNCTION_ENTER = 36,
- PATCHABLE_RET = 37,
- PATCHABLE_FUNCTION_EXIT = 38,
- PATCHABLE_TAIL_CALL = 39,
- PATCHABLE_EVENT_CALL = 40,
- PATCHABLE_TYPED_EVENT_CALL = 41,
- ICALL_BRANCH_FUNNEL = 42,
- FAKE_USE = 43,
- MEMBARRIER = 44,
- JUMP_TABLE_DEBUG_INFO = 45,
- CONVERGENCECTRL_ENTRY = 46,
- CONVERGENCECTRL_ANCHOR = 47,
- CONVERGENCECTRL_LOOP = 48,
- CONVERGENCECTRL_GLUE = 49,
- G_ASSERT_SEXT = 50,
- G_ASSERT_ZEXT = 51,
- G_ASSERT_ALIGN = 52,
- G_ADD = 53,
- G_SUB = 54,
- G_MUL = 55,
- G_SDIV = 56,
- G_UDIV = 57,
- G_SREM = 58,
- G_UREM = 59,
- G_SDIVREM = 60,
- G_UDIVREM = 61,
- G_AND = 62,
- G_OR = 63,
- G_XOR = 64,
- G_ABDS = 65,
- G_ABDU = 66,
- G_IMPLICIT_DEF = 67,
- G_PHI = 68,
- G_FRAME_INDEX = 69,
- G_GLOBAL_VALUE = 70,
- G_PTRAUTH_GLOBAL_VALUE = 71,
- G_CONSTANT_POOL = 72,
- G_EXTRACT = 73,
- G_UNMERGE_VALUES = 74,
- G_INSERT = 75,
- G_MERGE_VALUES = 76,
- G_BUILD_VECTOR = 77,
- G_BUILD_VECTOR_TRUNC = 78,
- G_CONCAT_VECTORS = 79,
- G_PTRTOINT = 80,
- G_INTTOPTR = 81,
- G_BITCAST = 82,
- G_FREEZE = 83,
- G_CONSTANT_FOLD_BARRIER = 84,
- G_INTRINSIC_FPTRUNC_ROUND = 85,
- G_INTRINSIC_TRUNC = 86,
- G_INTRINSIC_ROUND = 87,
- G_INTRINSIC_LRINT = 88,
- G_INTRINSIC_LLRINT = 89,
- G_INTRINSIC_ROUNDEVEN = 90,
- G_READCYCLECOUNTER = 91,
- G_READSTEADYCOUNTER = 92,
- G_LOAD = 93,
- G_SEXTLOAD = 94,
- G_ZEXTLOAD = 95,
- G_INDEXED_LOAD = 96,
- G_INDEXED_SEXTLOAD = 97,
- G_INDEXED_ZEXTLOAD = 98,
- G_STORE = 99,
- G_INDEXED_STORE = 100,
- G_ATOMIC_CMPXCHG_WITH_SUCCESS = 101,
- G_ATOMIC_CMPXCHG = 102,
- G_ATOMICRMW_XCHG = 103,
- G_ATOMICRMW_ADD = 104,
- G_ATOMICRMW_SUB = 105,
- G_ATOMICRMW_AND = 106,
- G_ATOMICRMW_NAND = 107,
- G_ATOMICRMW_OR = 108,
- G_ATOMICRMW_XOR = 109,
- G_ATOMICRMW_MAX = 110,
- G_ATOMICRMW_MIN = 111,
- G_ATOMICRMW_UMAX = 112,
- G_ATOMICRMW_UMIN = 113,
- G_ATOMICRMW_FADD = 114,
- G_ATOMICRMW_FSUB = 115,
- G_ATOMICRMW_FMAX = 116,
- G_ATOMICRMW_FMIN = 117,
- G_ATOMICRMW_FMAXIMUM = 118,
- G_ATOMICRMW_FMINIMUM = 119,
- G_ATOMICRMW_UINC_WRAP = 120,
- G_ATOMICRMW_UDEC_WRAP = 121,
- G_ATOMICRMW_USUB_COND = 122,
- G_ATOMICRMW_USUB_SAT = 123,
- G_FENCE = 124,
- G_PREFETCH = 125,
- G_BRCOND = 126,
- G_BRINDIRECT = 127,
- G_INVOKE_REGION_START = 128,
- G_INTRINSIC = 129,
- G_INTRINSIC_W_SIDE_EFFECTS = 130,
- G_INTRINSIC_CONVERGENT = 131,
- G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 132,
- G_ANYEXT = 133,
- G_TRUNC = 134,
- G_TRUNC_SSAT_S = 135,
- G_TRUNC_SSAT_U = 136,
- G_TRUNC_USAT_U = 137,
- G_CONSTANT = 138,
- G_FCONSTANT = 139,
- G_VASTART = 140,
- G_VAARG = 141,
- G_SEXT = 142,
- G_SEXT_INREG = 143,
- G_ZEXT = 144,
- G_SHL = 145,
- G_LSHR = 146,
- G_ASHR = 147,
- G_FSHL = 148,
- G_FSHR = 149,
- G_ROTR = 150,
- G_ROTL = 151,
- G_ICMP = 152,
- G_FCMP = 153,
- G_SCMP = 154,
- G_UCMP = 155,
- G_SELECT = 156,
- G_UADDO = 157,
- G_UADDE = 158,
- G_USUBO = 159,
- G_USUBE = 160,
- G_SADDO = 161,
- G_SADDE = 162,
- G_SSUBO = 163,
- G_SSUBE = 164,
- G_UMULO = 165,
- G_SMULO = 166,
- G_UMULH = 167,
- G_SMULH = 168,
- G_UADDSAT = 169,
- G_SADDSAT = 170,
- G_USUBSAT = 171,
- G_SSUBSAT = 172,
- G_USHLSAT = 173,
- G_SSHLSAT = 174,
- G_SMULFIX = 175,
- G_UMULFIX = 176,
- G_SMULFIXSAT = 177,
- G_UMULFIXSAT = 178,
- G_SDIVFIX = 179,
- G_UDIVFIX = 180,
- G_SDIVFIXSAT = 181,
- G_UDIVFIXSAT = 182,
- G_FADD = 183,
- G_FSUB = 184,
- G_FMUL = 185,
- G_FMA = 186,
- G_FMAD = 187,
- G_FDIV = 188,
- G_FREM = 189,
- G_FPOW = 190,
- G_FPOWI = 191,
- G_FEXP = 192,
- G_FEXP2 = 193,
- G_FEXP10 = 194,
- G_FLOG = 195,
- G_FLOG2 = 196,
- G_FLOG10 = 197,
- G_FLDEXP = 198,
- G_FFREXP = 199,
- G_FNEG = 200,
- G_FPEXT = 201,
- G_FPTRUNC = 202,
- G_FPTOSI = 203,
- G_FPTOUI = 204,
- G_SITOFP = 205,
- G_UITOFP = 206,
- G_FPTOSI_SAT = 207,
- G_FPTOUI_SAT = 208,
- G_FABS = 209,
- G_FCOPYSIGN = 210,
- G_IS_FPCLASS = 211,
- G_FCANONICALIZE = 212,
- G_FMINNUM = 213,
- G_FMAXNUM = 214,
- G_FMINNUM_IEEE = 215,
- G_FMAXNUM_IEEE = 216,
- G_FMINIMUM = 217,
- G_FMAXIMUM = 218,
- G_FMINIMUMNUM = 219,
- G_FMAXIMUMNUM = 220,
- G_GET_FPENV = 221,
- G_SET_FPENV = 222,
- G_RESET_FPENV = 223,
- G_GET_FPMODE = 224,
- G_SET_FPMODE = 225,
- G_RESET_FPMODE = 226,
- G_GET_ROUNDING = 227,
- G_PTR_ADD = 228,
- G_PTRMASK = 229,
- G_SMIN = 230,
- G_SMAX = 231,
- G_UMIN = 232,
- G_UMAX = 233,
- G_ABS = 234,
- G_LROUND = 235,
- G_LLROUND = 236,
- G_BR = 237,
- G_BRJT = 238,
- G_VSCALE = 239,
- G_INSERT_SUBVECTOR = 240,
- G_EXTRACT_SUBVECTOR = 241,
- G_INSERT_VECTOR_ELT = 242,
- G_EXTRACT_VECTOR_ELT = 243,
- G_SHUFFLE_VECTOR = 244,
- G_SPLAT_VECTOR = 245,
- G_STEP_VECTOR = 246,
- G_VECTOR_COMPRESS = 247,
- G_CTTZ = 248,
- G_CTTZ_ZERO_UNDEF = 249,
- G_CTLZ = 250,
- G_CTLZ_ZERO_UNDEF = 251,
- G_CTPOP = 252,
- G_BSWAP = 253,
- G_BITREVERSE = 254,
- G_FCEIL = 255,
- G_FCOS = 256,
- G_FSIN = 257,
- G_FSINCOS = 258,
- G_FTAN = 259,
- G_FACOS = 260,
- G_FASIN = 261,
- G_FATAN = 262,
- G_FATAN2 = 263,
- G_FCOSH = 264,
- G_FSINH = 265,
- G_FTANH = 266,
- G_FSQRT = 267,
- G_FFLOOR = 268,
- G_FRINT = 269,
- G_FNEARBYINT = 270,
- G_ADDRSPACE_CAST = 271,
- G_BLOCK_ADDR = 272,
- G_JUMP_TABLE = 273,
- G_DYN_STACKALLOC = 274,
- G_STACKSAVE = 275,
- G_STACKRESTORE = 276,
- G_STRICT_FADD = 277,
- G_STRICT_FSUB = 278,
- G_STRICT_FMUL = 279,
- G_STRICT_FDIV = 280,
- G_STRICT_FREM = 281,
- G_STRICT_FMA = 282,
- G_STRICT_FSQRT = 283,
- G_STRICT_FLDEXP = 284,
- G_READ_REGISTER = 285,
- G_WRITE_REGISTER = 286,
- G_MEMCPY = 287,
- G_MEMCPY_INLINE = 288,
- G_MEMMOVE = 289,
- G_MEMSET = 290,
- G_BZERO = 291,
- G_TRAP = 292,
- G_DEBUGTRAP = 293,
- G_UBSANTRAP = 294,
- G_VECREDUCE_SEQ_FADD = 295,
- G_VECREDUCE_SEQ_FMUL = 296,
- G_VECREDUCE_FADD = 297,
- G_VECREDUCE_FMUL = 298,
- G_VECREDUCE_FMAX = 299,
- G_VECREDUCE_FMIN = 300,
- G_VECREDUCE_FMAXIMUM = 301,
- G_VECREDUCE_FMINIMUM = 302,
- G_VECREDUCE_ADD = 303,
- G_VECREDUCE_MUL = 304,
- G_VECREDUCE_AND = 305,
- G_VECREDUCE_OR = 306,
- G_VECREDUCE_XOR = 307,
- G_VECREDUCE_SMAX = 308,
- G_VECREDUCE_SMIN = 309,
- G_VECREDUCE_UMAX = 310,
- G_VECREDUCE_UMIN = 311,
- G_SBFX = 312,
- G_UBFX = 313,
- ABS_ZPmZ_B_UNDEF = 314,
- ABS_ZPmZ_D_UNDEF = 315,
- ABS_ZPmZ_H_UNDEF = 316,
- ABS_ZPmZ_S_UNDEF = 317,
- ADDHA_MPPZ_D_PSEUDO_D = 318,
- ADDHA_MPPZ_S_PSEUDO_S = 319,
- ADDSWrr = 320,
- ADDSXrr = 321,
- ADDVA_MPPZ_D_PSEUDO_D = 322,
- ADDVA_MPPZ_S_PSEUDO_S = 323,
- ADDWrr = 324,
- ADDXrr = 325,
- ADD_VG2_M2Z2Z_D_PSEUDO = 326,
- ADD_VG2_M2Z2Z_S_PSEUDO = 327,
- ADD_VG2_M2ZZ_D_PSEUDO = 328,
- ADD_VG2_M2ZZ_S_PSEUDO = 329,
- ADD_VG2_M2Z_D_PSEUDO = 330,
- ADD_VG2_M2Z_S_PSEUDO = 331,
- ADD_VG4_M4Z4Z_D_PSEUDO = 332,
- ADD_VG4_M4Z4Z_S_PSEUDO = 333,
- ADD_VG4_M4ZZ_D_PSEUDO = 334,
- ADD_VG4_M4ZZ_S_PSEUDO = 335,
- ADD_VG4_M4Z_D_PSEUDO = 336,
- ADD_VG4_M4Z_S_PSEUDO = 337,
- ADD_ZPZZ_B_ZERO = 338,
- ADD_ZPZZ_D_ZERO = 339,
- ADD_ZPZZ_H_ZERO = 340,
- ADD_ZPZZ_S_ZERO = 341,
- ADDlowTLS = 342,
- ADJCALLSTACKDOWN = 343,
- ADJCALLSTACKUP = 344,
- AESIMCrrTied = 345,
- AESMCrrTied = 346,
- ANDSWrr = 347,
- ANDSXrr = 348,
- ANDWrr = 349,
- ANDXrr = 350,
- AND_ZPZZ_B_ZERO = 351,
- AND_ZPZZ_D_ZERO = 352,
- AND_ZPZZ_H_ZERO = 353,
- AND_ZPZZ_S_ZERO = 354,
- ASRD_ZPZI_B_ZERO = 355,
- ASRD_ZPZI_D_ZERO = 356,
- ASRD_ZPZI_H_ZERO = 357,
- ASRD_ZPZI_S_ZERO = 358,
- ASR_ZPZI_B_UNDEF = 359,
- ASR_ZPZI_B_ZERO = 360,
- ASR_ZPZI_D_UNDEF = 361,
- ASR_ZPZI_D_ZERO = 362,
- ASR_ZPZI_H_UNDEF = 363,
- ASR_ZPZI_H_ZERO = 364,
- ASR_ZPZI_S_UNDEF = 365,
- ASR_ZPZI_S_ZERO = 366,
- ASR_ZPZZ_B_UNDEF = 367,
- ASR_ZPZZ_B_ZERO = 368,
- ASR_ZPZZ_D_UNDEF = 369,
- ASR_ZPZZ_D_ZERO = 370,
- ASR_ZPZZ_H_UNDEF = 371,
- ASR_ZPZZ_H_ZERO = 372,
- ASR_ZPZZ_S_UNDEF = 373,
- ASR_ZPZZ_S_ZERO = 374,
- AUTH_TCRETURN = 375,
- AUTH_TCRETURN_BTI = 376,
- AUTPAC = 377,
- AUTx16x17 = 378,
- AUTxMxN = 379,
- AllocateSMESaveBuffer = 380,
- AllocateZABuffer = 381,
- BFADD_VG2_M2Z_H_PSEUDO = 382,
- BFADD_VG4_M4Z_H_PSEUDO = 383,
- BFADD_ZPZZ_UNDEF = 384,
- BFADD_ZPZZ_ZERO = 385,
- BFDOT_VG2_M2Z2Z_HtoS_PSEUDO = 386,
- BFDOT_VG2_M2ZZI_HtoS_PSEUDO = 387,
- BFDOT_VG2_M2ZZ_HtoS_PSEUDO = 388,
- BFDOT_VG4_M4Z4Z_HtoS_PSEUDO = 389,
- BFDOT_VG4_M4ZZI_HtoS_PSEUDO = 390,
- BFDOT_VG4_M4ZZ_HtoS_PSEUDO = 391,
- BFMAXNM_ZPZZ_UNDEF = 392,
- BFMAXNM_ZPZZ_ZERO = 393,
- BFMAX_ZPZZ_UNDEF = 394,
- BFMAX_ZPZZ_ZERO = 395,
- BFMINNM_ZPZZ_UNDEF = 396,
- BFMINNM_ZPZZ_ZERO = 397,
- BFMIN_ZPZZ_UNDEF = 398,
- BFMIN_ZPZZ_ZERO = 399,
- BFMLAL_MZZI_HtoS_PSEUDO = 400,
- BFMLAL_MZZ_HtoS_PSEUDO = 401,
- BFMLAL_VG2_M2Z2Z_HtoS_PSEUDO = 402,
- BFMLAL_VG2_M2ZZI_HtoS_PSEUDO = 403,
- BFMLAL_VG2_M2ZZ_HtoS_PSEUDO = 404,
- BFMLAL_VG4_M4Z4Z_HtoS_PSEUDO = 405,
- BFMLAL_VG4_M4ZZI_HtoS_PSEUDO = 406,
- BFMLAL_VG4_M4ZZ_HtoS_PSEUDO = 407,
- BFMLA_VG2_M2Z2Z_PSEUDO = 408,
- BFMLA_VG2_M2ZZI_PSEUDO = 409,
- BFMLA_VG2_M2ZZ_PSEUDO = 410,
- BFMLA_VG4_M4Z4Z_PSEUDO = 411,
- BFMLA_VG4_M4ZZI_PSEUDO = 412,
- BFMLA_VG4_M4ZZ_PSEUDO = 413,
- BFMLA_ZPZZZ_UNDEF = 414,
- BFMLSL_MZZI_HtoS_PSEUDO = 415,
- BFMLSL_MZZ_HtoS_PSEUDO = 416,
- BFMLSL_VG2_M2Z2Z_HtoS_PSEUDO = 417,
- BFMLSL_VG2_M2ZZI_HtoS_PSEUDO = 418,
- BFMLSL_VG2_M2ZZ_HtoS_PSEUDO = 419,
- BFMLSL_VG4_M4Z4Z_HtoS_PSEUDO = 420,
- BFMLSL_VG4_M4ZZI_HtoS_PSEUDO = 421,
- BFMLSL_VG4_M4ZZ_HtoS_PSEUDO = 422,
- BFMLS_VG2_M2Z2Z_PSEUDO = 423,
- BFMLS_VG2_M2ZZI_PSEUDO = 424,
- BFMLS_VG2_M2ZZ_PSEUDO = 425,
- BFMLS_VG4_M4Z4Z_PSEUDO = 426,
- BFMLS_VG4_M4ZZI_PSEUDO = 427,
- BFMLS_VG4_M4ZZ_PSEUDO = 428,
- BFMLS_ZPZZZ_UNDEF = 429,
- BFMOP4A_M2Z2Z_H_PSEUDO = 430,
- BFMOP4A_M2Z2Z_S_PSEUDO = 431,
- BFMOP4A_M2ZZ_H_PSEUDO = 432,
- BFMOP4A_M2ZZ_S_PSEUDO = 433,
- BFMOP4A_MZ2Z_H_PSEUDO = 434,
- BFMOP4A_MZ2Z_S_PSEUDO = 435,
- BFMOP4A_MZZ_H_PSEUDO = 436,
- BFMOP4A_MZZ_S_PSEUDO = 437,
- BFMOP4S_M2Z2Z_H_PSEUDO = 438,
- BFMOP4S_M2Z2Z_S_PSEUDO = 439,
- BFMOP4S_M2ZZ_H_PSEUDO = 440,
- BFMOP4S_M2ZZ_S_PSEUDO = 441,
- BFMOP4S_MZ2Z_H_PSEUDO = 442,
- BFMOP4S_MZ2Z_S_PSEUDO = 443,
- BFMOP4S_MZZ_H_PSEUDO = 444,
- BFMOP4S_MZZ_S_PSEUDO = 445,
- BFMOPA_MPPZZ_H_PSEUDO = 446,
- BFMOPA_MPPZZ_PSEUDO = 447,
- BFMOPS_MPPZZ_H_PSEUDO = 448,
- BFMOPS_MPPZZ_PSEUDO = 449,
- BFMUL_ZPZZ_UNDEF = 450,
- BFMUL_ZPZZ_ZERO = 451,
- BFSUB_VG2_M2Z_H_PSEUDO = 452,
- BFSUB_VG4_M4Z_H_PSEUDO = 453,
- BFSUB_ZPZZ_UNDEF = 454,
- BFSUB_ZPZZ_ZERO = 455,
- BFTMOPA_M2ZZZI_HtoH_PSEUDO = 456,
- BFTMOPA_M2ZZZI_HtoS_PSEUDO = 457,
- BFVDOT_VG2_M2ZZI_HtoS_PSEUDO = 458,
- BICSWrr = 459,
- BICSXrr = 460,
- BICWrr = 461,
- BICXrr = 462,
- BIC_ZPZZ_B_ZERO = 463,
- BIC_ZPZZ_D_ZERO = 464,
- BIC_ZPZZ_H_ZERO = 465,
- BIC_ZPZZ_S_ZERO = 466,
- BLRA = 467,
- BLRA_RVMARKER = 468,
- BLRNoIP = 469,
- BLR_BTI = 470,
- BLR_RVMARKER = 471,
- BLR_X16 = 472,
- BMOPA_MPPZZ_S_PSEUDO = 473,
- BMOPS_MPPZZ_S_PSEUDO = 474,
- BRA = 475,
- BR_JumpTable = 476,
- BSPv16i8 = 477,
- BSPv8i8 = 478,
- CATCHRET = 479,
- CBWPri = 480,
- CBWPrr = 481,
- CBXPri = 482,
- CBXPrr = 483,
- CLEANUPRET = 484,
- CLS_ZPmZ_B_UNDEF = 485,
- CLS_ZPmZ_D_UNDEF = 486,
- CLS_ZPmZ_H_UNDEF = 487,
- CLS_ZPmZ_S_UNDEF = 488,
- CLZ_ZPmZ_B_UNDEF = 489,
- CLZ_ZPmZ_D_UNDEF = 490,
- CLZ_ZPmZ_H_UNDEF = 491,
- CLZ_ZPmZ_S_UNDEF = 492,
- CMP_SWAP_128 = 493,
- CMP_SWAP_128_ACQUIRE = 494,
- CMP_SWAP_128_MONOTONIC = 495,
- CMP_SWAP_128_RELEASE = 496,
- CMP_SWAP_16 = 497,
- CMP_SWAP_32 = 498,
- CMP_SWAP_64 = 499,
- CMP_SWAP_8 = 500,
- CNOT_ZPmZ_B_UNDEF = 501,
- CNOT_ZPmZ_D_UNDEF = 502,
- CNOT_ZPmZ_H_UNDEF = 503,
- CNOT_ZPmZ_S_UNDEF = 504,
- CNT_ZPmZ_B_UNDEF = 505,
- CNT_ZPmZ_D_UNDEF = 506,
- CNT_ZPmZ_H_UNDEF = 507,
- CNT_ZPmZ_S_UNDEF = 508,
- COALESCER_BARRIER_FPR128 = 509,
- COALESCER_BARRIER_FPR16 = 510,
- COALESCER_BARRIER_FPR32 = 511,
- COALESCER_BARRIER_FPR64 = 512,
- EMITBKEY = 513,
- EMITMTETAGGED = 514,
- EONWrr = 515,
- EONXrr = 516,
- EORWrr = 517,
- EORXrr = 518,
- EOR_ZPZZ_B_ZERO = 519,
- EOR_ZPZZ_D_ZERO = 520,
- EOR_ZPZZ_H_ZERO = 521,
- EOR_ZPZZ_S_ZERO = 522,
- F128CSEL = 523,
- FABD_ZPZZ_D_UNDEF = 524,
- FABD_ZPZZ_D_ZERO = 525,
- FABD_ZPZZ_H_UNDEF = 526,
- FABD_ZPZZ_H_ZERO = 527,
- FABD_ZPZZ_S_UNDEF = 528,
- FABD_ZPZZ_S_ZERO = 529,
- FABS_ZPmZ_D_UNDEF = 530,
- FABS_ZPmZ_H_UNDEF = 531,
- FABS_ZPmZ_S_UNDEF = 532,
- FADD_VG2_M2Z_D_PSEUDO = 533,
- FADD_VG2_M2Z_H_PSEUDO = 534,
- FADD_VG2_M2Z_S_PSEUDO = 535,
- FADD_VG4_M4Z_D_PSEUDO = 536,
- FADD_VG4_M4Z_H_PSEUDO = 537,
- FADD_VG4_M4Z_S_PSEUDO = 538,
- FADD_ZPZI_D_UNDEF = 539,
- FADD_ZPZI_D_ZERO = 540,
- FADD_ZPZI_H_UNDEF = 541,
- FADD_ZPZI_H_ZERO = 542,
- FADD_ZPZI_S_UNDEF = 543,
- FADD_ZPZI_S_ZERO = 544,
- FADD_ZPZZ_D_UNDEF = 545,
- FADD_ZPZZ_D_ZERO = 546,
- FADD_ZPZZ_H_UNDEF = 547,
- FADD_ZPZZ_H_ZERO = 548,
- FADD_ZPZZ_S_UNDEF = 549,
- FADD_ZPZZ_S_ZERO = 550,
- FAMAX_ZPZZ_D_UNDEF = 551,
- FAMAX_ZPZZ_H_UNDEF = 552,
- FAMAX_ZPZZ_S_UNDEF = 553,
- FAMIN_ZPZZ_D_UNDEF = 554,
- FAMIN_ZPZZ_H_UNDEF = 555,
- FAMIN_ZPZZ_S_UNDEF = 556,
- FCVTZS_ZPmZ_DtoD_UNDEF = 557,
- FCVTZS_ZPmZ_DtoS_UNDEF = 558,
- FCVTZS_ZPmZ_HtoD_UNDEF = 559,
- FCVTZS_ZPmZ_HtoH_UNDEF = 560,
- FCVTZS_ZPmZ_HtoS_UNDEF = 561,
- FCVTZS_ZPmZ_StoD_UNDEF = 562,
- FCVTZS_ZPmZ_StoS_UNDEF = 563,
- FCVTZU_ZPmZ_DtoD_UNDEF = 564,
- FCVTZU_ZPmZ_DtoS_UNDEF = 565,
- FCVTZU_ZPmZ_HtoD_UNDEF = 566,
- FCVTZU_ZPmZ_HtoH_UNDEF = 567,
- FCVTZU_ZPmZ_HtoS_UNDEF = 568,
- FCVTZU_ZPmZ_StoD_UNDEF = 569,
- FCVTZU_ZPmZ_StoS_UNDEF = 570,
- FCVT_ZPmZ_DtoH_UNDEF = 571,
- FCVT_ZPmZ_DtoS_UNDEF = 572,
- FCVT_ZPmZ_HtoD_UNDEF = 573,
- FCVT_ZPmZ_HtoS_UNDEF = 574,
- FCVT_ZPmZ_StoD_UNDEF = 575,
- FCVT_ZPmZ_StoH_UNDEF = 576,
- FDIVR_ZPZZ_D_ZERO = 577,
- FDIVR_ZPZZ_H_ZERO = 578,
- FDIVR_ZPZZ_S_ZERO = 579,
- FDIV_ZPZZ_D_UNDEF = 580,
- FDIV_ZPZZ_D_ZERO = 581,
- FDIV_ZPZZ_H_UNDEF = 582,
- FDIV_ZPZZ_H_ZERO = 583,
- FDIV_ZPZZ_S_UNDEF = 584,
- FDIV_ZPZZ_S_ZERO = 585,
- FDOT_VG2_M2Z2Z_BtoH_PSEUDO = 586,
- FDOT_VG2_M2Z2Z_BtoS_PSEUDO = 587,
- FDOT_VG2_M2Z2Z_HtoS_PSEUDO = 588,
- FDOT_VG2_M2ZZI_BtoH_PSEUDO = 589,
- FDOT_VG2_M2ZZI_BtoS_PSEUDO = 590,
- FDOT_VG2_M2ZZI_HtoS_PSEUDO = 591,
- FDOT_VG2_M2ZZ_BtoH_PSEUDO = 592,
- FDOT_VG2_M2ZZ_BtoS_PSEUDO = 593,
- FDOT_VG2_M2ZZ_HtoS_PSEUDO = 594,
- FDOT_VG4_M4Z4Z_BtoH_PSEUDO = 595,
- FDOT_VG4_M4Z4Z_BtoS_PSEUDO = 596,
- FDOT_VG4_M4Z4Z_HtoS_PSEUDO = 597,
- FDOT_VG4_M4ZZI_BtoH_PSEUDO = 598,
- FDOT_VG4_M4ZZI_BtoS_PSEUDO = 599,
- FDOT_VG4_M4ZZI_HtoS_PSEUDO = 600,
- FDOT_VG4_M4ZZ_BtoH_PSEUDO = 601,
- FDOT_VG4_M4ZZ_BtoS_PSEUDO = 602,
- FDOT_VG4_M4ZZ_HtoS_PSEUDO = 603,
- FILL_PPR_FROM_ZPR_SLOT_PSEUDO = 604,
- FLOGB_ZPZZ_D_ZERO = 605,
- FLOGB_ZPZZ_H_ZERO = 606,
- FLOGB_ZPZZ_S_ZERO = 607,
- FMAXNM_ZPZI_D_UNDEF = 608,
- FMAXNM_ZPZI_D_ZERO = 609,
- FMAXNM_ZPZI_H_UNDEF = 610,
- FMAXNM_ZPZI_H_ZERO = 611,
- FMAXNM_ZPZI_S_UNDEF = 612,
- FMAXNM_ZPZI_S_ZERO = 613,
- FMAXNM_ZPZZ_D_UNDEF = 614,
- FMAXNM_ZPZZ_D_ZERO = 615,
- FMAXNM_ZPZZ_H_UNDEF = 616,
- FMAXNM_ZPZZ_H_ZERO = 617,
- FMAXNM_ZPZZ_S_UNDEF = 618,
- FMAXNM_ZPZZ_S_ZERO = 619,
- FMAX_ZPZI_D_UNDEF = 620,
- FMAX_ZPZI_D_ZERO = 621,
- FMAX_ZPZI_H_UNDEF = 622,
- FMAX_ZPZI_H_ZERO = 623,
- FMAX_ZPZI_S_UNDEF = 624,
- FMAX_ZPZI_S_ZERO = 625,
- FMAX_ZPZZ_D_UNDEF = 626,
- FMAX_ZPZZ_D_ZERO = 627,
- FMAX_ZPZZ_H_UNDEF = 628,
- FMAX_ZPZZ_H_ZERO = 629,
- FMAX_ZPZZ_S_UNDEF = 630,
- FMAX_ZPZZ_S_ZERO = 631,
- FMINNM_ZPZI_D_UNDEF = 632,
- FMINNM_ZPZI_D_ZERO = 633,
- FMINNM_ZPZI_H_UNDEF = 634,
- FMINNM_ZPZI_H_ZERO = 635,
- FMINNM_ZPZI_S_UNDEF = 636,
- FMINNM_ZPZI_S_ZERO = 637,
- FMINNM_ZPZZ_D_UNDEF = 638,
- FMINNM_ZPZZ_D_ZERO = 639,
- FMINNM_ZPZZ_H_UNDEF = 640,
- FMINNM_ZPZZ_H_ZERO = 641,
- FMINNM_ZPZZ_S_UNDEF = 642,
- FMINNM_ZPZZ_S_ZERO = 643,
- FMIN_ZPZI_D_UNDEF = 644,
- FMIN_ZPZI_D_ZERO = 645,
- FMIN_ZPZI_H_UNDEF = 646,
- FMIN_ZPZI_H_ZERO = 647,
- FMIN_ZPZI_S_UNDEF = 648,
- FMIN_ZPZI_S_ZERO = 649,
- FMIN_ZPZZ_D_UNDEF = 650,
- FMIN_ZPZZ_D_ZERO = 651,
- FMIN_ZPZZ_H_UNDEF = 652,
- FMIN_ZPZZ_H_ZERO = 653,
- FMIN_ZPZZ_S_UNDEF = 654,
- FMIN_ZPZZ_S_ZERO = 655,
- FMLALL_MZZI_BtoS_PSEUDO = 656,
- FMLALL_MZZ_BtoS_PSEUDO = 657,
- FMLALL_VG2_M2Z2Z_BtoS_PSEUDO = 658,
- FMLALL_VG2_M2ZZI_BtoS_PSEUDO = 659,
- FMLALL_VG2_M2ZZ_BtoS_PSEUDO = 660,
- FMLALL_VG4_M4Z4Z_BtoS_PSEUDO = 661,
- FMLALL_VG4_M4ZZI_BtoS_PSEUDO = 662,
- FMLALL_VG4_M4ZZ_BtoS_PSEUDO = 663,
- FMLAL_MZZI_BtoH_PSEUDO = 664,
- FMLAL_MZZI_HtoS_PSEUDO = 665,
- FMLAL_MZZ_HtoS_PSEUDO = 666,
- FMLAL_VG2_M2Z2Z_BtoH_PSEUDO = 667,
- FMLAL_VG2_M2Z2Z_HtoS_PSEUDO = 668,
- FMLAL_VG2_M2ZZI_BtoH_PSEUDO = 669,
- FMLAL_VG2_M2ZZI_HtoS_PSEUDO = 670,
- FMLAL_VG2_M2ZZ_BtoH_PSEUDO = 671,
- FMLAL_VG2_M2ZZ_HtoS_PSEUDO = 672,
- FMLAL_VG2_MZZ_BtoH_PSEUDO = 673,
- FMLAL_VG4_M4Z4Z_BtoH_PSEUDO = 674,
- FMLAL_VG4_M4Z4Z_HtoS_PSEUDO = 675,
- FMLAL_VG4_M4ZZI_BtoH_PSEUDO = 676,
- FMLAL_VG4_M4ZZI_HtoS_PSEUDO = 677,
- FMLAL_VG4_M4ZZ_BtoH_PSEUDO = 678,
- FMLAL_VG4_M4ZZ_HtoS_PSEUDO = 679,
- FMLA_VG2_M2Z2Z_D_PSEUDO = 680,
- FMLA_VG2_M2Z2Z_H_PSEUDO = 681,
- FMLA_VG2_M2Z2Z_S_PSEUDO = 682,
- FMLA_VG2_M2ZZI_D_PSEUDO = 683,
- FMLA_VG2_M2ZZI_H_PSEUDO = 684,
- FMLA_VG2_M2ZZI_S_PSEUDO = 685,
- FMLA_VG2_M2ZZ_D_PSEUDO = 686,
- FMLA_VG2_M2ZZ_H_PSEUDO = 687,
- FMLA_VG2_M2ZZ_S_PSEUDO = 688,
- FMLA_VG4_M4Z4Z_D_PSEUDO = 689,
- FMLA_VG4_M4Z4Z_H_PSEUDO = 690,
- FMLA_VG4_M4Z4Z_S_PSEUDO = 691,
- FMLA_VG4_M4ZZI_D_PSEUDO = 692,
- FMLA_VG4_M4ZZI_H_PSEUDO = 693,
- FMLA_VG4_M4ZZI_S_PSEUDO = 694,
- FMLA_VG4_M4ZZ_D_PSEUDO = 695,
- FMLA_VG4_M4ZZ_H_PSEUDO = 696,
- FMLA_VG4_M4ZZ_S_PSEUDO = 697,
- FMLA_ZPZZZ_D_UNDEF = 698,
- FMLA_ZPZZZ_H_UNDEF = 699,
- FMLA_ZPZZZ_S_UNDEF = 700,
- FMLSL_MZZI_HtoS_PSEUDO = 701,
- FMLSL_MZZ_HtoS_PSEUDO = 702,
- FMLSL_VG2_M2Z2Z_HtoS_PSEUDO = 703,
- FMLSL_VG2_M2ZZI_HtoS_PSEUDO = 704,
- FMLSL_VG2_M2ZZ_HtoS_PSEUDO = 705,
- FMLSL_VG4_M4Z4Z_HtoS_PSEUDO = 706,
- FMLSL_VG4_M4ZZI_HtoS_PSEUDO = 707,
- FMLSL_VG4_M4ZZ_HtoS_PSEUDO = 708,
- FMLS_VG2_M2Z2Z_D_PSEUDO = 709,
- FMLS_VG2_M2Z2Z_H_PSEUDO = 710,
- FMLS_VG2_M2Z2Z_S_PSEUDO = 711,
- FMLS_VG2_M2ZZI_D_PSEUDO = 712,
- FMLS_VG2_M2ZZI_H_PSEUDO = 713,
- FMLS_VG2_M2ZZI_S_PSEUDO = 714,
- FMLS_VG2_M2ZZ_D_PSEUDO = 715,
- FMLS_VG2_M2ZZ_H_PSEUDO = 716,
- FMLS_VG2_M2ZZ_S_PSEUDO = 717,
- FMLS_VG4_M4Z4Z_D_PSEUDO = 718,
- FMLS_VG4_M4Z4Z_H_PSEUDO = 719,
- FMLS_VG4_M4Z4Z_S_PSEUDO = 720,
- FMLS_VG4_M4ZZI_D_PSEUDO = 721,
- FMLS_VG4_M4ZZI_H_PSEUDO = 722,
- FMLS_VG4_M4ZZI_S_PSEUDO = 723,
- FMLS_VG4_M4ZZ_D_PSEUDO = 724,
- FMLS_VG4_M4ZZ_H_PSEUDO = 725,
- FMLS_VG4_M4ZZ_S_PSEUDO = 726,
- FMLS_ZPZZZ_D_UNDEF = 727,
- FMLS_ZPZZZ_H_UNDEF = 728,
- FMLS_ZPZZZ_S_UNDEF = 729,
- FMOP4A_M2Z2Z_BtoH_PSEUDO = 730,
- FMOP4A_M2Z2Z_BtoS_PSEUDO = 731,
- FMOP4A_M2Z2Z_D_PSEUDO = 732,
- FMOP4A_M2Z2Z_H_PSEUDO = 733,
- FMOP4A_M2Z2Z_HtoS_PSEUDO = 734,
- FMOP4A_M2Z2Z_S_PSEUDO = 735,
- FMOP4A_M2ZZ_BtoH_PSEUDO = 736,
- FMOP4A_M2ZZ_BtoS_PSEUDO = 737,
- FMOP4A_M2ZZ_D_PSEUDO = 738,
- FMOP4A_M2ZZ_H_PSEUDO = 739,
- FMOP4A_M2ZZ_HtoS_PSEUDO = 740,
- FMOP4A_M2ZZ_S_PSEUDO = 741,
- FMOP4A_MZ2Z_BtoH_PSEUDO = 742,
- FMOP4A_MZ2Z_BtoS_PSEUDO = 743,
- FMOP4A_MZ2Z_D_PSEUDO = 744,
- FMOP4A_MZ2Z_H_PSEUDO = 745,
- FMOP4A_MZ2Z_HtoS_PSEUDO = 746,
- FMOP4A_MZ2Z_S_PSEUDO = 747,
- FMOP4A_MZZ_BtoH_PSEUDO = 748,
- FMOP4A_MZZ_BtoS_PSEUDO = 749,
- FMOP4A_MZZ_D_PSEUDO = 750,
- FMOP4A_MZZ_H_PSEUDO = 751,
- FMOP4A_MZZ_HtoS_PSEUDO = 752,
- FMOP4A_MZZ_S_PSEUDO = 753,
- FMOP4S_M2Z2Z_D_PSEUDO = 754,
- FMOP4S_M2Z2Z_H_PSEUDO = 755,
- FMOP4S_M2Z2Z_HtoS_PSEUDO = 756,
- FMOP4S_M2Z2Z_S_PSEUDO = 757,
- FMOP4S_M2ZZ_D_PSEUDO = 758,
- FMOP4S_M2ZZ_H_PSEUDO = 759,
- FMOP4S_M2ZZ_HtoS_PSEUDO = 760,
- FMOP4S_M2ZZ_S_PSEUDO = 761,
- FMOP4S_MZ2Z_D_PSEUDO = 762,
- FMOP4S_MZ2Z_H_PSEUDO = 763,
- FMOP4S_MZ2Z_HtoS_PSEUDO = 764,
- FMOP4S_MZ2Z_S_PSEUDO = 765,
- FMOP4S_MZZ_D_PSEUDO = 766,
- FMOP4S_MZZ_H_PSEUDO = 767,
- FMOP4S_MZZ_HtoS_PSEUDO = 768,
- FMOP4S_MZZ_S_PSEUDO = 769,
- FMOPAL_MPPZZ_PSEUDO = 770,
- FMOPA_MPPZZ_BtoH_PSEUDO = 771,
- FMOPA_MPPZZ_BtoS_PSEUDO = 772,
- FMOPA_MPPZZ_D_PSEUDO = 773,
- FMOPA_MPPZZ_H_PSEUDO = 774,
- FMOPA_MPPZZ_S_PSEUDO = 775,
- FMOPSL_MPPZZ_PSEUDO = 776,
- FMOPS_MPPZZ_D_PSEUDO = 777,
- FMOPS_MPPZZ_H_PSEUDO = 778,
- FMOPS_MPPZZ_S_PSEUDO = 779,
- FMOVD0 = 780,
- FMOVH0 = 781,
- FMOVS0 = 782,
- FMULX_ZPZZ_D_UNDEF = 783,
- FMULX_ZPZZ_D_ZERO = 784,
- FMULX_ZPZZ_H_UNDEF = 785,
- FMULX_ZPZZ_H_ZERO = 786,
- FMULX_ZPZZ_S_UNDEF = 787,
- FMULX_ZPZZ_S_ZERO = 788,
- FMUL_ZPZI_D_UNDEF = 789,
- FMUL_ZPZI_D_ZERO = 790,
- FMUL_ZPZI_H_UNDEF = 791,
- FMUL_ZPZI_H_ZERO = 792,
- FMUL_ZPZI_S_UNDEF = 793,
- FMUL_ZPZI_S_ZERO = 794,
- FMUL_ZPZZ_D_UNDEF = 795,
- FMUL_ZPZZ_D_ZERO = 796,
- FMUL_ZPZZ_H_UNDEF = 797,
- FMUL_ZPZZ_H_ZERO = 798,
- FMUL_ZPZZ_S_UNDEF = 799,
- FMUL_ZPZZ_S_ZERO = 800,
- FNEG_ZPmZ_D_UNDEF = 801,
- FNEG_ZPmZ_H_UNDEF = 802,
- FNEG_ZPmZ_S_UNDEF = 803,
- FNMLA_ZPZZZ_D_UNDEF = 804,
- FNMLA_ZPZZZ_H_UNDEF = 805,
- FNMLA_ZPZZZ_S_UNDEF = 806,
- FNMLS_ZPZZZ_D_UNDEF = 807,
- FNMLS_ZPZZZ_H_UNDEF = 808,
- FNMLS_ZPZZZ_S_UNDEF = 809,
- FORM_TRANSPOSED_REG_TUPLE_X2_PSEUDO = 810,
- FORM_TRANSPOSED_REG_TUPLE_X4_PSEUDO = 811,
- FRECPX_ZPmZ_D_UNDEF = 812,
- FRECPX_ZPmZ_H_UNDEF = 813,
- FRECPX_ZPmZ_S_UNDEF = 814,
- FRINTA_ZPmZ_D_UNDEF = 815,
- FRINTA_ZPmZ_H_UNDEF = 816,
- FRINTA_ZPmZ_S_UNDEF = 817,
- FRINTI_ZPmZ_D_UNDEF = 818,
- FRINTI_ZPmZ_H_UNDEF = 819,
- FRINTI_ZPmZ_S_UNDEF = 820,
- FRINTM_ZPmZ_D_UNDEF = 821,
- FRINTM_ZPmZ_H_UNDEF = 822,
- FRINTM_ZPmZ_S_UNDEF = 823,
- FRINTN_ZPmZ_D_UNDEF = 824,
- FRINTN_ZPmZ_H_UNDEF = 825,
- FRINTN_ZPmZ_S_UNDEF = 826,
- FRINTP_ZPmZ_D_UNDEF = 827,
- FRINTP_ZPmZ_H_UNDEF = 828,
- FRINTP_ZPmZ_S_UNDEF = 829,
- FRINTX_ZPmZ_D_UNDEF = 830,
- FRINTX_ZPmZ_H_UNDEF = 831,
- FRINTX_ZPmZ_S_UNDEF = 832,
- FRINTZ_ZPmZ_D_UNDEF = 833,
- FRINTZ_ZPmZ_H_UNDEF = 834,
- FRINTZ_ZPmZ_S_UNDEF = 835,
- FSQRT_ZPmZ_D_UNDEF = 836,
- FSQRT_ZPmZ_H_UNDEF = 837,
- FSQRT_ZPmZ_S_UNDEF = 838,
- FSUBR_ZPZI_D_UNDEF = 839,
- FSUBR_ZPZI_D_ZERO = 840,
- FSUBR_ZPZI_H_UNDEF = 841,
- FSUBR_ZPZI_H_ZERO = 842,
- FSUBR_ZPZI_S_UNDEF = 843,
- FSUBR_ZPZI_S_ZERO = 844,
- FSUBR_ZPZZ_D_ZERO = 845,
- FSUBR_ZPZZ_H_ZERO = 846,
- FSUBR_ZPZZ_S_ZERO = 847,
- FSUB_VG2_M2Z_D_PSEUDO = 848,
- FSUB_VG2_M2Z_H_PSEUDO = 849,
- FSUB_VG2_M2Z_S_PSEUDO = 850,
- FSUB_VG4_M4Z_D_PSEUDO = 851,
- FSUB_VG4_M4Z_H_PSEUDO = 852,
- FSUB_VG4_M4Z_S_PSEUDO = 853,
- FSUB_ZPZI_D_UNDEF = 854,
- FSUB_ZPZI_D_ZERO = 855,
- FSUB_ZPZI_H_UNDEF = 856,
- FSUB_ZPZI_H_ZERO = 857,
- FSUB_ZPZI_S_UNDEF = 858,
- FSUB_ZPZI_S_ZERO = 859,
- FSUB_ZPZZ_D_UNDEF = 860,
- FSUB_ZPZZ_D_ZERO = 861,
- FSUB_ZPZZ_H_UNDEF = 862,
- FSUB_ZPZZ_H_ZERO = 863,
- FSUB_ZPZZ_S_UNDEF = 864,
- FSUB_ZPZZ_S_ZERO = 865,
- FTMOPA_M2ZZZI_BtoH_PSEUDO = 866,
- FTMOPA_M2ZZZI_BtoS_PSEUDO = 867,
- FTMOPA_M2ZZZI_HtoH_PSEUDO = 868,
- FTMOPA_M2ZZZI_HtoS_PSEUDO = 869,
- FTMOPA_M2ZZZI_StoS_PSEUDO = 870,
- FVDOTB_VG4_M2ZZI_BtoS_PSEUDO = 871,
- FVDOTT_VG4_M2ZZI_BtoS_PSEUDO = 872,
- FVDOT_VG2_M2ZZI_BtoH_PSEUDO = 873,
- FVDOT_VG2_M2ZZI_HtoS_PSEUDO = 874,
- G_AARCH64_PREFETCH = 875,
- G_ADD_LOW = 876,
- G_BSP = 877,
- G_DUP = 878,
- G_DUPLANE16 = 879,
- G_DUPLANE32 = 880,
- G_DUPLANE64 = 881,
- G_DUPLANE8 = 882,
- G_EXT = 883,
- G_FCMEQ = 884,
- G_FCMGE = 885,
- G_FCMGT = 886,
- G_REV16 = 887,
- G_REV32 = 888,
- G_REV64 = 889,
- G_SADDLP = 890,
- G_SADDLV = 891,
- G_SDOT = 892,
- G_SITOF = 893,
- G_SMULL = 894,
- G_TRN1 = 895,
- G_TRN2 = 896,
- G_UADDLP = 897,
- G_UADDLV = 898,
- G_UDOT = 899,
- G_UITOF = 900,
- G_UMULL = 901,
- G_UZP1 = 902,
- G_UZP2 = 903,
- G_VASHR = 904,
- G_VLSHR = 905,
- G_ZIP1 = 906,
- G_ZIP2 = 907,
- GetSMESaveSize = 908,
- HOM_Epilog = 909,
- HOM_Prolog = 910,
- HWASAN_CHECK_MEMACCESS = 911,
- HWASAN_CHECK_MEMACCESS_FIXEDSHADOW = 912,
- HWASAN_CHECK_MEMACCESS_SHORTGRANULES = 913,
- HWASAN_CHECK_MEMACCESS_SHORTGRANULES_FIXEDSHADOW = 914,
- INSERT_MXIPZ_H_PSEUDO_B = 915,
- INSERT_MXIPZ_H_PSEUDO_D = 916,
- INSERT_MXIPZ_H_PSEUDO_H = 917,
- INSERT_MXIPZ_H_PSEUDO_Q = 918,
- INSERT_MXIPZ_H_PSEUDO_S = 919,
- INSERT_MXIPZ_V_PSEUDO_B = 920,
- INSERT_MXIPZ_V_PSEUDO_D = 921,
- INSERT_MXIPZ_V_PSEUDO_H = 922,
- INSERT_MXIPZ_V_PSEUDO_Q = 923,
- INSERT_MXIPZ_V_PSEUDO_S = 924,
- IRGstack = 925,
- InitTPIDR2Obj = 926,
- JumpTableDest16 = 927,
- JumpTableDest32 = 928,
- JumpTableDest8 = 929,
- KCFI_CHECK = 930,
- LD1B_2Z_IMM_PSEUDO = 931,
- LD1B_2Z_PSEUDO = 932,
- LD1B_4Z_IMM_PSEUDO = 933,
- LD1B_4Z_PSEUDO = 934,
- LD1D_2Z_IMM_PSEUDO = 935,
- LD1D_2Z_PSEUDO = 936,
- LD1D_4Z_IMM_PSEUDO = 937,
- LD1D_4Z_PSEUDO = 938,
- LD1H_2Z_IMM_PSEUDO = 939,
- LD1H_2Z_PSEUDO = 940,
- LD1H_4Z_IMM_PSEUDO = 941,
- LD1H_4Z_PSEUDO = 942,
- LD1W_2Z_IMM_PSEUDO = 943,
- LD1W_2Z_PSEUDO = 944,
- LD1W_4Z_IMM_PSEUDO = 945,
- LD1W_4Z_PSEUDO = 946,
- LD1_MXIPXX_H_PSEUDO_B = 947,
- LD1_MXIPXX_H_PSEUDO_D = 948,
- LD1_MXIPXX_H_PSEUDO_H = 949,
- LD1_MXIPXX_H_PSEUDO_Q = 950,
- LD1_MXIPXX_H_PSEUDO_S = 951,
- LD1_MXIPXX_V_PSEUDO_B = 952,
- LD1_MXIPXX_V_PSEUDO_D = 953,
- LD1_MXIPXX_V_PSEUDO_H = 954,
- LD1_MXIPXX_V_PSEUDO_Q = 955,
- LD1_MXIPXX_V_PSEUDO_S = 956,
- LDNT1B_2Z_IMM_PSEUDO = 957,
- LDNT1B_2Z_PSEUDO = 958,
- LDNT1B_4Z_IMM_PSEUDO = 959,
- LDNT1B_4Z_PSEUDO = 960,
- LDNT1D_2Z_IMM_PSEUDO = 961,
- LDNT1D_2Z_PSEUDO = 962,
- LDNT1D_4Z_IMM_PSEUDO = 963,
- LDNT1D_4Z_PSEUDO = 964,
- LDNT1H_2Z_IMM_PSEUDO = 965,
- LDNT1H_2Z_PSEUDO = 966,
- LDNT1H_4Z_IMM_PSEUDO = 967,
- LDNT1H_4Z_PSEUDO = 968,
- LDNT1W_2Z_IMM_PSEUDO = 969,
- LDNT1W_2Z_PSEUDO = 970,
- LDNT1W_4Z_IMM_PSEUDO = 971,
- LDNT1W_4Z_PSEUDO = 972,
- LDR_PPXI = 973,
- LDR_TX_PSEUDO = 974,
- LDR_ZA_PSEUDO = 975,
- LDR_ZZXI = 976,
- LDR_ZZXI_STRIDED_CONTIGUOUS = 977,
- LDR_ZZZXI = 978,
- LDR_ZZZZXI = 979,
- LDR_ZZZZXI_STRIDED_CONTIGUOUS = 980,
- LOADauthptrstatic = 981,
- LOADgot = 982,
- LOADgotAUTH = 983,
- LOADgotPAC = 984,
- LSL_ZPZI_B_UNDEF = 985,
- LSL_ZPZI_B_ZERO = 986,
- LSL_ZPZI_D_UNDEF = 987,
- LSL_ZPZI_D_ZERO = 988,
- LSL_ZPZI_H_UNDEF = 989,
- LSL_ZPZI_H_ZERO = 990,
- LSL_ZPZI_S_UNDEF = 991,
- LSL_ZPZI_S_ZERO = 992,
- LSL_ZPZZ_B_UNDEF = 993,
- LSL_ZPZZ_B_ZERO = 994,
- LSL_ZPZZ_D_UNDEF = 995,
- LSL_ZPZZ_D_ZERO = 996,
- LSL_ZPZZ_H_UNDEF = 997,
- LSL_ZPZZ_H_ZERO = 998,
- LSL_ZPZZ_S_UNDEF = 999,
- LSL_ZPZZ_S_ZERO = 1000,
- LSR_ZPZI_B_UNDEF = 1001,
- LSR_ZPZI_B_ZERO = 1002,
- LSR_ZPZI_D_UNDEF = 1003,
- LSR_ZPZI_D_ZERO = 1004,
- LSR_ZPZI_H_UNDEF = 1005,
- LSR_ZPZI_H_ZERO = 1006,
- LSR_ZPZI_S_UNDEF = 1007,
- LSR_ZPZI_S_ZERO = 1008,
- LSR_ZPZZ_B_UNDEF = 1009,
- LSR_ZPZZ_B_ZERO = 1010,
- LSR_ZPZZ_D_UNDEF = 1011,
- LSR_ZPZZ_D_ZERO = 1012,
- LSR_ZPZZ_H_UNDEF = 1013,
- LSR_ZPZZ_H_ZERO = 1014,
- LSR_ZPZZ_S_UNDEF = 1015,
- LSR_ZPZZ_S_ZERO = 1016,
- MLA_ZPZZZ_B_UNDEF = 1017,
- MLA_ZPZZZ_D_UNDEF = 1018,
- MLA_ZPZZZ_H_UNDEF = 1019,
- MLA_ZPZZZ_S_UNDEF = 1020,
- MLS_ZPZZZ_B_UNDEF = 1021,
- MLS_ZPZZZ_D_UNDEF = 1022,
- MLS_ZPZZZ_H_UNDEF = 1023,
- MLS_ZPZZZ_S_UNDEF = 1024,
- MOPSMemoryCopyPseudo = 1025,
- MOPSMemoryMovePseudo = 1026,
- MOPSMemorySetPseudo = 1027,
- MOPSMemorySetTaggingPseudo = 1028,
- MOVAZ_2ZMI_H_B_PSEUDO = 1029,
- MOVAZ_2ZMI_H_D_PSEUDO = 1030,
- MOVAZ_2ZMI_H_H_PSEUDO = 1031,
- MOVAZ_2ZMI_H_S_PSEUDO = 1032,
- MOVAZ_2ZMI_V_B_PSEUDO = 1033,
- MOVAZ_2ZMI_V_D_PSEUDO = 1034,
- MOVAZ_2ZMI_V_H_PSEUDO = 1035,
- MOVAZ_2ZMI_V_S_PSEUDO = 1036,
- MOVAZ_4ZMI_H_B_PSEUDO = 1037,
- MOVAZ_4ZMI_H_D_PSEUDO = 1038,
- MOVAZ_4ZMI_H_H_PSEUDO = 1039,
- MOVAZ_4ZMI_H_S_PSEUDO = 1040,
- MOVAZ_4ZMI_V_B_PSEUDO = 1041,
- MOVAZ_4ZMI_V_D_PSEUDO = 1042,
- MOVAZ_4ZMI_V_H_PSEUDO = 1043,
- MOVAZ_4ZMI_V_S_PSEUDO = 1044,
- MOVAZ_VG2_2ZMXI_PSEUDO = 1045,
- MOVAZ_VG4_4ZMXI_PSEUDO = 1046,
- MOVAZ_ZMI_H_B_PSEUDO = 1047,
- MOVAZ_ZMI_H_D_PSEUDO = 1048,
- MOVAZ_ZMI_H_H_PSEUDO = 1049,
- MOVAZ_ZMI_H_Q_PSEUDO = 1050,
- MOVAZ_ZMI_H_S_PSEUDO = 1051,
- MOVAZ_ZMI_V_B_PSEUDO = 1052,
- MOVAZ_ZMI_V_D_PSEUDO = 1053,
- MOVAZ_ZMI_V_H_PSEUDO = 1054,
- MOVAZ_ZMI_V_Q_PSEUDO = 1055,
- MOVAZ_ZMI_V_S_PSEUDO = 1056,
- MOVA_MXI2Z_H_B_PSEUDO = 1057,
- MOVA_MXI2Z_H_D_PSEUDO = 1058,
- MOVA_MXI2Z_H_H_PSEUDO = 1059,
- MOVA_MXI2Z_H_S_PSEUDO = 1060,
- MOVA_MXI2Z_V_B_PSEUDO = 1061,
- MOVA_MXI2Z_V_D_PSEUDO = 1062,
- MOVA_MXI2Z_V_H_PSEUDO = 1063,
- MOVA_MXI2Z_V_S_PSEUDO = 1064,
- MOVA_MXI4Z_H_B_PSEUDO = 1065,
- MOVA_MXI4Z_H_D_PSEUDO = 1066,
- MOVA_MXI4Z_H_H_PSEUDO = 1067,
- MOVA_MXI4Z_H_S_PSEUDO = 1068,
- MOVA_MXI4Z_V_B_PSEUDO = 1069,
- MOVA_MXI4Z_V_D_PSEUDO = 1070,
- MOVA_MXI4Z_V_H_PSEUDO = 1071,
- MOVA_MXI4Z_V_S_PSEUDO = 1072,
- MOVA_VG2_MXI2Z_PSEUDO = 1073,
- MOVA_VG4_MXI4Z_PSEUDO = 1074,
- MOVMCSym = 1075,
- MOVT_TIZ_PSEUDO = 1076,
- MOVaddr = 1077,
- MOVaddrBA = 1078,
- MOVaddrCP = 1079,
- MOVaddrEXT = 1080,
- MOVaddrJT = 1081,
- MOVaddrPAC = 1082,
- MOVaddrTLS = 1083,
- MOVbaseTLS = 1084,
- MOVi32imm = 1085,
- MOVi64imm = 1086,
- MRS_FPCR = 1087,
- MRS_FPSR = 1088,
- MSR_FPCR = 1089,
- MSR_FPMR = 1090,
- MSR_FPSR = 1091,
- MSRpstatePseudo = 1092,
- MUL_ZPZZ_B_UNDEF = 1093,
- MUL_ZPZZ_D_UNDEF = 1094,
- MUL_ZPZZ_H_UNDEF = 1095,
- MUL_ZPZZ_S_UNDEF = 1096,
- NEG_ZPmZ_B_UNDEF = 1097,
- NEG_ZPmZ_D_UNDEF = 1098,
- NEG_ZPmZ_H_UNDEF = 1099,
- NEG_ZPmZ_S_UNDEF = 1100,
- NOT_ZPmZ_B_UNDEF = 1101,
- NOT_ZPmZ_D_UNDEF = 1102,
- NOT_ZPmZ_H_UNDEF = 1103,
- NOT_ZPmZ_S_UNDEF = 1104,
- ORNWrr = 1105,
- ORNXrr = 1106,
- ORRWrr = 1107,
- ORRXrr = 1108,
- ORR_ZPZZ_B_ZERO = 1109,
- ORR_ZPZZ_D_ZERO = 1110,
- ORR_ZPZZ_H_ZERO = 1111,
- ORR_ZPZZ_S_ZERO = 1112,
- PAUTH_EPILOGUE = 1113,
- PAUTH_PROLOGUE = 1114,
- PROBED_STACKALLOC = 1115,
- PROBED_STACKALLOC_DYN = 1116,
- PROBED_STACKALLOC_VAR = 1117,
- PTEST_PP_ANY = 1118,
- RET_ReallyLR = 1119,
- RestoreZAPseudo = 1120,
- SABD_ZPZZ_B_UNDEF = 1121,
- SABD_ZPZZ_D_UNDEF = 1122,
- SABD_ZPZZ_H_UNDEF = 1123,
- SABD_ZPZZ_S_UNDEF = 1124,
- SCVTF_ZPmZ_DtoD_UNDEF = 1125,
- SCVTF_ZPmZ_DtoH_UNDEF = 1126,
- SCVTF_ZPmZ_DtoS_UNDEF = 1127,
- SCVTF_ZPmZ_HtoH_UNDEF = 1128,
- SCVTF_ZPmZ_StoD_UNDEF = 1129,
- SCVTF_ZPmZ_StoH_UNDEF = 1130,
- SCVTF_ZPmZ_StoS_UNDEF = 1131,
- SDIV_ZPZZ_D_UNDEF = 1132,
- SDIV_ZPZZ_S_UNDEF = 1133,
- SDOT_VG2_M2Z2Z_BtoS_PSEUDO = 1134,
- SDOT_VG2_M2Z2Z_HtoD_PSEUDO = 1135,
- SDOT_VG2_M2Z2Z_HtoS_PSEUDO = 1136,
- SDOT_VG2_M2ZZI_BToS_PSEUDO = 1137,
- SDOT_VG2_M2ZZI_HToS_PSEUDO = 1138,
- SDOT_VG2_M2ZZI_HtoD_PSEUDO = 1139,
- SDOT_VG2_M2ZZ_BtoS_PSEUDO = 1140,
- SDOT_VG2_M2ZZ_HtoD_PSEUDO = 1141,
- SDOT_VG2_M2ZZ_HtoS_PSEUDO = 1142,
- SDOT_VG4_M4Z4Z_BtoS_PSEUDO = 1143,
- SDOT_VG4_M4Z4Z_HtoD_PSEUDO = 1144,
- SDOT_VG4_M4Z4Z_HtoS_PSEUDO = 1145,
- SDOT_VG4_M4ZZI_BToS_PSEUDO = 1146,
- SDOT_VG4_M4ZZI_HToS_PSEUDO = 1147,
- SDOT_VG4_M4ZZI_HtoD_PSEUDO = 1148,
- SDOT_VG4_M4ZZ_BtoS_PSEUDO = 1149,
- SDOT_VG4_M4ZZ_HtoD_PSEUDO = 1150,
- SDOT_VG4_M4ZZ_HtoS_PSEUDO = 1151,
- SEH_AddFP = 1152,
- SEH_AllocZ = 1153,
- SEH_EpilogEnd = 1154,
- SEH_EpilogStart = 1155,
- SEH_Nop = 1156,
- SEH_PACSignLR = 1157,
- SEH_PrologEnd = 1158,
- SEH_SaveAnyRegQP = 1159,
- SEH_SaveAnyRegQPX = 1160,
- SEH_SaveFPLR = 1161,
- SEH_SaveFPLR_X = 1162,
- SEH_SaveFReg = 1163,
- SEH_SaveFRegP = 1164,
- SEH_SaveFRegP_X = 1165,
- SEH_SaveFReg_X = 1166,
- SEH_SavePReg = 1167,
- SEH_SaveReg = 1168,
- SEH_SaveRegP = 1169,
- SEH_SaveRegP_X = 1170,
- SEH_SaveReg_X = 1171,
- SEH_SaveZReg = 1172,
- SEH_SetFP = 1173,
- SEH_StackAlloc = 1174,
- SMAX_ZPZZ_B_UNDEF = 1175,
- SMAX_ZPZZ_D_UNDEF = 1176,
- SMAX_ZPZZ_H_UNDEF = 1177,
- SMAX_ZPZZ_S_UNDEF = 1178,
- SMIN_ZPZZ_B_UNDEF = 1179,
- SMIN_ZPZZ_D_UNDEF = 1180,
- SMIN_ZPZZ_H_UNDEF = 1181,
- SMIN_ZPZZ_S_UNDEF = 1182,
- SMLALL_MZZI_BtoS_PSEUDO = 1183,
- SMLALL_MZZI_HtoD_PSEUDO = 1184,
- SMLALL_MZZ_BtoS_PSEUDO = 1185,
- SMLALL_MZZ_HtoD_PSEUDO = 1186,
- SMLALL_VG2_M2Z2Z_BtoS_PSEUDO = 1187,
- SMLALL_VG2_M2Z2Z_HtoD_PSEUDO = 1188,
- SMLALL_VG2_M2ZZI_BtoS_PSEUDO = 1189,
- SMLALL_VG2_M2ZZI_HtoD_PSEUDO = 1190,
- SMLALL_VG2_M2ZZ_BtoS_PSEUDO = 1191,
- SMLALL_VG2_M2ZZ_HtoD_PSEUDO = 1192,
- SMLALL_VG4_M4Z4Z_BtoS_PSEUDO = 1193,
- SMLALL_VG4_M4Z4Z_HtoD_PSEUDO = 1194,
- SMLALL_VG4_M4ZZI_BtoS_PSEUDO = 1195,
- SMLALL_VG4_M4ZZI_HtoD_PSEUDO = 1196,
- SMLALL_VG4_M4ZZ_BtoS_PSEUDO = 1197,
- SMLALL_VG4_M4ZZ_HtoD_PSEUDO = 1198,
- SMLAL_MZZI_HtoS_PSEUDO = 1199,
- SMLAL_MZZ_HtoS_PSEUDO = 1200,
- SMLAL_VG2_M2Z2Z_HtoS_PSEUDO = 1201,
- SMLAL_VG2_M2ZZI_S_PSEUDO = 1202,
- SMLAL_VG2_M2ZZ_HtoS_PSEUDO = 1203,
- SMLAL_VG4_M4Z4Z_HtoS_PSEUDO = 1204,
- SMLAL_VG4_M4ZZI_HtoS_PSEUDO = 1205,
- SMLAL_VG4_M4ZZ_HtoS_PSEUDO = 1206,
- SMLSLL_MZZI_BtoS_PSEUDO = 1207,
- SMLSLL_MZZI_HtoD_PSEUDO = 1208,
- SMLSLL_MZZ_BtoS_PSEUDO = 1209,
- SMLSLL_MZZ_HtoD_PSEUDO = 1210,
- SMLSLL_VG2_M2Z2Z_BtoS_PSEUDO = 1211,
- SMLSLL_VG2_M2Z2Z_HtoD_PSEUDO = 1212,
- SMLSLL_VG2_M2ZZI_BtoS_PSEUDO = 1213,
- SMLSLL_VG2_M2ZZI_HtoD_PSEUDO = 1214,
- SMLSLL_VG2_M2ZZ_BtoS_PSEUDO = 1215,
- SMLSLL_VG2_M2ZZ_HtoD_PSEUDO = 1216,
- SMLSLL_VG4_M4Z4Z_BtoS_PSEUDO = 1217,
- SMLSLL_VG4_M4Z4Z_HtoD_PSEUDO = 1218,
- SMLSLL_VG4_M4ZZI_BtoS_PSEUDO = 1219,
- SMLSLL_VG4_M4ZZI_HtoD_PSEUDO = 1220,
- SMLSLL_VG4_M4ZZ_BtoS_PSEUDO = 1221,
- SMLSLL_VG4_M4ZZ_HtoD_PSEUDO = 1222,
- SMLSL_MZZI_HtoS_PSEUDO = 1223,
- SMLSL_MZZ_HtoS_PSEUDO = 1224,
- SMLSL_VG2_M2Z2Z_HtoS_PSEUDO = 1225,
- SMLSL_VG2_M2ZZI_S_PSEUDO = 1226,
- SMLSL_VG2_M2ZZ_HtoS_PSEUDO = 1227,
- SMLSL_VG4_M4Z4Z_HtoS_PSEUDO = 1228,
- SMLSL_VG4_M4ZZI_HtoS_PSEUDO = 1229,
- SMLSL_VG4_M4ZZ_HtoS_PSEUDO = 1230,
- SMOP4A_M2Z2Z_BToS_PSEUDO = 1231,
- SMOP4A_M2Z2Z_HToS_PSEUDO = 1232,
- SMOP4A_M2Z2Z_HtoD_PSEUDO = 1233,
- SMOP4A_M2ZZ_BToS_PSEUDO = 1234,
- SMOP4A_M2ZZ_HToS_PSEUDO = 1235,
- SMOP4A_M2ZZ_HtoD_PSEUDO = 1236,
- SMOP4A_MZ2Z_BToS_PSEUDO = 1237,
- SMOP4A_MZ2Z_HToS_PSEUDO = 1238,
- SMOP4A_MZ2Z_HtoD_PSEUDO = 1239,
- SMOP4A_MZZ_BToS_PSEUDO = 1240,
- SMOP4A_MZZ_HToS_PSEUDO = 1241,
- SMOP4A_MZZ_HtoD_PSEUDO = 1242,
- SMOP4S_M2Z2Z_BToS_PSEUDO = 1243,
- SMOP4S_M2Z2Z_HToS_PSEUDO = 1244,
- SMOP4S_M2Z2Z_HtoD_PSEUDO = 1245,
- SMOP4S_M2ZZ_BToS_PSEUDO = 1246,
- SMOP4S_M2ZZ_HToS_PSEUDO = 1247,
- SMOP4S_M2ZZ_HtoD_PSEUDO = 1248,
- SMOP4S_MZ2Z_BToS_PSEUDO = 1249,
- SMOP4S_MZ2Z_HToS_PSEUDO = 1250,
- SMOP4S_MZ2Z_HtoD_PSEUDO = 1251,
- SMOP4S_MZZ_BToS_PSEUDO = 1252,
- SMOP4S_MZZ_HToS_PSEUDO = 1253,
- SMOP4S_MZZ_HtoD_PSEUDO = 1254,
- SMOPA_MPPZZ_D_PSEUDO = 1255,
- SMOPA_MPPZZ_HtoS_PSEUDO = 1256,
- SMOPA_MPPZZ_S_PSEUDO = 1257,
- SMOPS_MPPZZ_D_PSEUDO = 1258,
- SMOPS_MPPZZ_HtoS_PSEUDO = 1259,
- SMOPS_MPPZZ_S_PSEUDO = 1260,
- SMULH_ZPZZ_B_UNDEF = 1261,
- SMULH_ZPZZ_D_UNDEF = 1262,
- SMULH_ZPZZ_H_UNDEF = 1263,
- SMULH_ZPZZ_S_UNDEF = 1264,
- SPACE = 1265,
- SPILL_PPR_TO_ZPR_SLOT_PSEUDO = 1266,
- SQABS_ZPmZ_B_UNDEF = 1267,
- SQABS_ZPmZ_D_UNDEF = 1268,
- SQABS_ZPmZ_H_UNDEF = 1269,
- SQABS_ZPmZ_S_UNDEF = 1270,
- SQNEG_ZPmZ_B_UNDEF = 1271,
- SQNEG_ZPmZ_D_UNDEF = 1272,
- SQNEG_ZPmZ_H_UNDEF = 1273,
- SQNEG_ZPmZ_S_UNDEF = 1274,
- SQRSHL_ZPZZ_B_UNDEF = 1275,
- SQRSHL_ZPZZ_D_UNDEF = 1276,
- SQRSHL_ZPZZ_H_UNDEF = 1277,
- SQRSHL_ZPZZ_S_UNDEF = 1278,
- SQSHLU_ZPZI_B_ZERO = 1279,
- SQSHLU_ZPZI_D_ZERO = 1280,
- SQSHLU_ZPZI_H_ZERO = 1281,
- SQSHLU_ZPZI_S_ZERO = 1282,
- SQSHL_ZPZI_B_ZERO = 1283,
- SQSHL_ZPZI_D_ZERO = 1284,
- SQSHL_ZPZI_H_ZERO = 1285,
- SQSHL_ZPZI_S_ZERO = 1286,
- SQSHL_ZPZZ_B_UNDEF = 1287,
- SQSHL_ZPZZ_D_UNDEF = 1288,
- SQSHL_ZPZZ_H_UNDEF = 1289,
- SQSHL_ZPZZ_S_UNDEF = 1290,
- SRSHL_ZPZZ_B_UNDEF = 1291,
- SRSHL_ZPZZ_D_UNDEF = 1292,
- SRSHL_ZPZZ_H_UNDEF = 1293,
- SRSHL_ZPZZ_S_UNDEF = 1294,
- SRSHR_ZPZI_B_ZERO = 1295,
- SRSHR_ZPZI_D_ZERO = 1296,
- SRSHR_ZPZI_H_ZERO = 1297,
- SRSHR_ZPZI_S_ZERO = 1298,
- STGloop = 1299,
- STGloop_wback = 1300,
- STMOPA_M2ZZZI_BtoS_PSEUDO = 1301,
- STMOPA_M2ZZZI_HtoS_PSEUDO = 1302,
- STR_PPXI = 1303,
- STR_TX_PSEUDO = 1304,
- STR_ZZXI = 1305,
- STR_ZZXI_STRIDED_CONTIGUOUS = 1306,
- STR_ZZZXI = 1307,
- STR_ZZZZXI = 1308,
- STR_ZZZZXI_STRIDED_CONTIGUOUS = 1309,
- STZGloop = 1310,
- STZGloop_wback = 1311,
- SUBR_ZPZZ_B_ZERO = 1312,
- SUBR_ZPZZ_D_ZERO = 1313,
- SUBR_ZPZZ_H_ZERO = 1314,
- SUBR_ZPZZ_S_ZERO = 1315,
- SUBSWrr = 1316,
- SUBSXrr = 1317,
- SUBWrr = 1318,
- SUBXrr = 1319,
- SUB_VG2_M2Z2Z_D_PSEUDO = 1320,
- SUB_VG2_M2Z2Z_S_PSEUDO = 1321,
- SUB_VG2_M2ZZ_D_PSEUDO = 1322,
- SUB_VG2_M2ZZ_S_PSEUDO = 1323,
- SUB_VG2_M2Z_D_PSEUDO = 1324,
- SUB_VG2_M2Z_S_PSEUDO = 1325,
- SUB_VG4_M4Z4Z_D_PSEUDO = 1326,
- SUB_VG4_M4Z4Z_S_PSEUDO = 1327,
- SUB_VG4_M4ZZ_D_PSEUDO = 1328,
- SUB_VG4_M4ZZ_S_PSEUDO = 1329,
- SUB_VG4_M4Z_D_PSEUDO = 1330,
- SUB_VG4_M4Z_S_PSEUDO = 1331,
- SUB_ZPZZ_B_ZERO = 1332,
- SUB_ZPZZ_D_ZERO = 1333,
- SUB_ZPZZ_H_ZERO = 1334,
- SUB_ZPZZ_S_ZERO = 1335,
- SUDOT_VG2_M2ZZI_BToS_PSEUDO = 1336,
- SUDOT_VG2_M2ZZ_BToS_PSEUDO = 1337,
- SUDOT_VG4_M4ZZI_BToS_PSEUDO = 1338,
- SUDOT_VG4_M4ZZ_BToS_PSEUDO = 1339,
- SUMLALL_MZZI_BtoS_PSEUDO = 1340,
- SUMLALL_VG2_M2ZZI_BtoS_PSEUDO = 1341,
- SUMLALL_VG2_M2ZZ_BtoS_PSEUDO = 1342,
- SUMLALL_VG4_M4ZZI_BtoS_PSEUDO = 1343,
- SUMLALL_VG4_M4ZZ_BtoS_PSEUDO = 1344,
- SUMOP4A_M2Z2Z_BToS_PSEUDO = 1345,
- SUMOP4A_M2Z2Z_HtoD_PSEUDO = 1346,
- SUMOP4A_M2ZZ_BToS_PSEUDO = 1347,
- SUMOP4A_M2ZZ_HtoD_PSEUDO = 1348,
- SUMOP4A_MZ2Z_BToS_PSEUDO = 1349,
- SUMOP4A_MZ2Z_HtoD_PSEUDO = 1350,
- SUMOP4A_MZZ_BToS_PSEUDO = 1351,
- SUMOP4A_MZZ_HtoD_PSEUDO = 1352,
- SUMOP4S_M2Z2Z_BToS_PSEUDO = 1353,
- SUMOP4S_M2Z2Z_HtoD_PSEUDO = 1354,
- SUMOP4S_M2ZZ_BToS_PSEUDO = 1355,
- SUMOP4S_M2ZZ_HtoD_PSEUDO = 1356,
- SUMOP4S_MZ2Z_BToS_PSEUDO = 1357,
- SUMOP4S_MZ2Z_HtoD_PSEUDO = 1358,
- SUMOP4S_MZZ_BToS_PSEUDO = 1359,
- SUMOP4S_MZZ_HtoD_PSEUDO = 1360,
- SUMOPA_MPPZZ_D_PSEUDO = 1361,
- SUMOPA_MPPZZ_S_PSEUDO = 1362,
- SUMOPS_MPPZZ_D_PSEUDO = 1363,
- SUMOPS_MPPZZ_S_PSEUDO = 1364,
- SUTMOPA_M2ZZZI_BtoS_PSEUDO = 1365,
- SUVDOT_VG4_M4ZZI_BToS_PSEUDO = 1366,
- SVDOT_VG2_M2ZZI_HtoS_PSEUDO = 1367,
- SVDOT_VG4_M4ZZI_BtoS_PSEUDO = 1368,
- SVDOT_VG4_M4ZZI_HtoD_PSEUDO = 1369,
- SXTB_ZPmZ_D_UNDEF = 1370,
- SXTB_ZPmZ_H_UNDEF = 1371,
- SXTB_ZPmZ_S_UNDEF = 1372,
- SXTH_ZPmZ_D_UNDEF = 1373,
- SXTH_ZPmZ_S_UNDEF = 1374,
- SXTW_ZPmZ_D_UNDEF = 1375,
- SpeculationBarrierISBDSBEndBB = 1376,
- SpeculationBarrierSBEndBB = 1377,
- SpeculationSafeValueW = 1378,
- SpeculationSafeValueX = 1379,
- StoreSwiftAsyncContext = 1380,
- TAGPstack = 1381,
- TCRETURNdi = 1382,
- TCRETURNri = 1383,
- TCRETURNriALL = 1384,
- TCRETURNrinotx16 = 1385,
- TCRETURNrix16x17 = 1386,
- TCRETURNrix17 = 1387,
- TLSDESCCALL = 1388,
- TLSDESC_AUTH_CALLSEQ = 1389,
- TLSDESC_CALLSEQ = 1390,
- UABD_ZPZZ_B_UNDEF = 1391,
- UABD_ZPZZ_D_UNDEF = 1392,
- UABD_ZPZZ_H_UNDEF = 1393,
- UABD_ZPZZ_S_UNDEF = 1394,
- UCVTF_ZPmZ_DtoD_UNDEF = 1395,
- UCVTF_ZPmZ_DtoH_UNDEF = 1396,
- UCVTF_ZPmZ_DtoS_UNDEF = 1397,
- UCVTF_ZPmZ_HtoH_UNDEF = 1398,
- UCVTF_ZPmZ_StoD_UNDEF = 1399,
- UCVTF_ZPmZ_StoH_UNDEF = 1400,
- UCVTF_ZPmZ_StoS_UNDEF = 1401,
- UDIV_ZPZZ_D_UNDEF = 1402,
- UDIV_ZPZZ_S_UNDEF = 1403,
- UDOT_VG2_M2Z2Z_BtoS_PSEUDO = 1404,
- UDOT_VG2_M2Z2Z_HtoD_PSEUDO = 1405,
- UDOT_VG2_M2Z2Z_HtoS_PSEUDO = 1406,
- UDOT_VG2_M2ZZI_BToS_PSEUDO = 1407,
- UDOT_VG2_M2ZZI_HToS_PSEUDO = 1408,
- UDOT_VG2_M2ZZI_HtoD_PSEUDO = 1409,
- UDOT_VG2_M2ZZ_BtoS_PSEUDO = 1410,
- UDOT_VG2_M2ZZ_HtoD_PSEUDO = 1411,
- UDOT_VG2_M2ZZ_HtoS_PSEUDO = 1412,
- UDOT_VG4_M4Z4Z_BtoS_PSEUDO = 1413,
- UDOT_VG4_M4Z4Z_HtoD_PSEUDO = 1414,
- UDOT_VG4_M4Z4Z_HtoS_PSEUDO = 1415,
- UDOT_VG4_M4ZZI_BtoS_PSEUDO = 1416,
- UDOT_VG4_M4ZZI_HToS_PSEUDO = 1417,
- UDOT_VG4_M4ZZI_HtoD_PSEUDO = 1418,
- UDOT_VG4_M4ZZ_BtoS_PSEUDO = 1419,
- UDOT_VG4_M4ZZ_HtoD_PSEUDO = 1420,
- UDOT_VG4_M4ZZ_HtoS_PSEUDO = 1421,
- UMAX_ZPZZ_B_UNDEF = 1422,
- UMAX_ZPZZ_D_UNDEF = 1423,
- UMAX_ZPZZ_H_UNDEF = 1424,
- UMAX_ZPZZ_S_UNDEF = 1425,
- UMIN_ZPZZ_B_UNDEF = 1426,
- UMIN_ZPZZ_D_UNDEF = 1427,
- UMIN_ZPZZ_H_UNDEF = 1428,
- UMIN_ZPZZ_S_UNDEF = 1429,
- UMLALL_MZZI_BtoS_PSEUDO = 1430,
- UMLALL_MZZI_HtoD_PSEUDO = 1431,
- UMLALL_MZZ_BtoS_PSEUDO = 1432,
- UMLALL_MZZ_HtoD_PSEUDO = 1433,
- UMLALL_VG2_M2Z2Z_BtoS_PSEUDO = 1434,
- UMLALL_VG2_M2Z2Z_HtoD_PSEUDO = 1435,
- UMLALL_VG2_M2ZZI_BtoS_PSEUDO = 1436,
- UMLALL_VG2_M2ZZI_HtoD_PSEUDO = 1437,
- UMLALL_VG2_M2ZZ_BtoS_PSEUDO = 1438,
- UMLALL_VG2_M2ZZ_HtoD_PSEUDO = 1439,
- UMLALL_VG4_M4Z4Z_BtoS_PSEUDO = 1440,
- UMLALL_VG4_M4Z4Z_HtoD_PSEUDO = 1441,
- UMLALL_VG4_M4ZZI_BtoS_PSEUDO = 1442,
- UMLALL_VG4_M4ZZI_HtoD_PSEUDO = 1443,
- UMLALL_VG4_M4ZZ_BtoS_PSEUDO = 1444,
- UMLALL_VG4_M4ZZ_HtoD_PSEUDO = 1445,
- UMLAL_MZZI_HtoS_PSEUDO = 1446,
- UMLAL_MZZ_HtoS_PSEUDO = 1447,
- UMLAL_VG2_M2Z2Z_HtoS_PSEUDO = 1448,
- UMLAL_VG2_M2ZZI_S_PSEUDO = 1449,
- UMLAL_VG2_M2ZZ_HtoS_PSEUDO = 1450,
- UMLAL_VG4_M4Z4Z_HtoS_PSEUDO = 1451,
- UMLAL_VG4_M4ZZI_HtoS_PSEUDO = 1452,
- UMLAL_VG4_M4ZZ_HtoS_PSEUDO = 1453,
- UMLSLL_MZZI_BtoS_PSEUDO = 1454,
- UMLSLL_MZZI_HtoD_PSEUDO = 1455,
- UMLSLL_MZZ_BtoS_PSEUDO = 1456,
- UMLSLL_MZZ_HtoD_PSEUDO = 1457,
- UMLSLL_VG2_M2Z2Z_BtoS_PSEUDO = 1458,
- UMLSLL_VG2_M2Z2Z_HtoD_PSEUDO = 1459,
- UMLSLL_VG2_M2ZZI_BtoS_PSEUDO = 1460,
- UMLSLL_VG2_M2ZZI_HtoD_PSEUDO = 1461,
- UMLSLL_VG2_M2ZZ_BtoS_PSEUDO = 1462,
- UMLSLL_VG2_M2ZZ_HtoD_PSEUDO = 1463,
- UMLSLL_VG4_M4Z4Z_BtoS_PSEUDO = 1464,
- UMLSLL_VG4_M4Z4Z_HtoD_PSEUDO = 1465,
- UMLSLL_VG4_M4ZZI_BtoS_PSEUDO = 1466,
- UMLSLL_VG4_M4ZZI_HtoD_PSEUDO = 1467,
- UMLSLL_VG4_M4ZZ_BtoS_PSEUDO = 1468,
- UMLSLL_VG4_M4ZZ_HtoD_PSEUDO = 1469,
- UMLSL_MZZI_HtoS_PSEUDO = 1470,
- UMLSL_MZZ_HtoS_PSEUDO = 1471,
- UMLSL_VG2_M2Z2Z_HtoS_PSEUDO = 1472,
- UMLSL_VG2_M2ZZI_S_PSEUDO = 1473,
- UMLSL_VG2_M2ZZ_HtoS_PSEUDO = 1474,
- UMLSL_VG4_M4Z4Z_HtoS_PSEUDO = 1475,
- UMLSL_VG4_M4ZZI_HtoS_PSEUDO = 1476,
- UMLSL_VG4_M4ZZ_HtoS_PSEUDO = 1477,
- UMOP4A_M2Z2Z_BToS_PSEUDO = 1478,
- UMOP4A_M2Z2Z_HToS_PSEUDO = 1479,
- UMOP4A_M2Z2Z_HtoD_PSEUDO = 1480,
- UMOP4A_M2ZZ_BToS_PSEUDO = 1481,
- UMOP4A_M2ZZ_HToS_PSEUDO = 1482,
- UMOP4A_M2ZZ_HtoD_PSEUDO = 1483,
- UMOP4A_MZ2Z_BToS_PSEUDO = 1484,
- UMOP4A_MZ2Z_HToS_PSEUDO = 1485,
- UMOP4A_MZ2Z_HtoD_PSEUDO = 1486,
- UMOP4A_MZZ_BToS_PSEUDO = 1487,
- UMOP4A_MZZ_HToS_PSEUDO = 1488,
- UMOP4A_MZZ_HtoD_PSEUDO = 1489,
- UMOP4S_M2Z2Z_BToS_PSEUDO = 1490,
- UMOP4S_M2Z2Z_HToS_PSEUDO = 1491,
- UMOP4S_M2Z2Z_HtoD_PSEUDO = 1492,
- UMOP4S_M2ZZ_BToS_PSEUDO = 1493,
- UMOP4S_M2ZZ_HToS_PSEUDO = 1494,
- UMOP4S_M2ZZ_HtoD_PSEUDO = 1495,
- UMOP4S_MZ2Z_BToS_PSEUDO = 1496,
- UMOP4S_MZ2Z_HToS_PSEUDO = 1497,
- UMOP4S_MZ2Z_HtoD_PSEUDO = 1498,
- UMOP4S_MZZ_BToS_PSEUDO = 1499,
- UMOP4S_MZZ_HToS_PSEUDO = 1500,
- UMOP4S_MZZ_HtoD_PSEUDO = 1501,
- UMOPA_MPPZZ_D_PSEUDO = 1502,
- UMOPA_MPPZZ_HtoS_PSEUDO = 1503,
- UMOPA_MPPZZ_S_PSEUDO = 1504,
- UMOPS_MPPZZ_D_PSEUDO = 1505,
- UMOPS_MPPZZ_HtoS_PSEUDO = 1506,
- UMOPS_MPPZZ_S_PSEUDO = 1507,
- UMULH_ZPZZ_B_UNDEF = 1508,
- UMULH_ZPZZ_D_UNDEF = 1509,
- UMULH_ZPZZ_H_UNDEF = 1510,
- UMULH_ZPZZ_S_UNDEF = 1511,
- UQRSHL_ZPZZ_B_UNDEF = 1512,
- UQRSHL_ZPZZ_D_UNDEF = 1513,
- UQRSHL_ZPZZ_H_UNDEF = 1514,
- UQRSHL_ZPZZ_S_UNDEF = 1515,
- UQSHL_ZPZI_B_ZERO = 1516,
- UQSHL_ZPZI_D_ZERO = 1517,
- UQSHL_ZPZI_H_ZERO = 1518,
- UQSHL_ZPZI_S_ZERO = 1519,
- UQSHL_ZPZZ_B_UNDEF = 1520,
- UQSHL_ZPZZ_D_UNDEF = 1521,
- UQSHL_ZPZZ_H_UNDEF = 1522,
- UQSHL_ZPZZ_S_UNDEF = 1523,
- URECPE_ZPmZ_S_UNDEF = 1524,
- URSHL_ZPZZ_B_UNDEF = 1525,
- URSHL_ZPZZ_D_UNDEF = 1526,
- URSHL_ZPZZ_H_UNDEF = 1527,
- URSHL_ZPZZ_S_UNDEF = 1528,
- URSHR_ZPZI_B_ZERO = 1529,
- URSHR_ZPZI_D_ZERO = 1530,
- URSHR_ZPZI_H_ZERO = 1531,
- URSHR_ZPZI_S_ZERO = 1532,
- URSQRTE_ZPmZ_S_UNDEF = 1533,
- USDOT_VG2_M2Z2Z_BToS_PSEUDO = 1534,
- USDOT_VG2_M2ZZI_BToS_PSEUDO = 1535,
- USDOT_VG2_M2ZZ_BToS_PSEUDO = 1536,
- USDOT_VG4_M4Z4Z_BToS_PSEUDO = 1537,
- USDOT_VG4_M4ZZI_BToS_PSEUDO = 1538,
- USDOT_VG4_M4ZZ_BToS_PSEUDO = 1539,
- USMLALL_MZZI_BtoS_PSEUDO = 1540,
- USMLALL_MZZ_BtoS_PSEUDO = 1541,
- USMLALL_VG2_M2Z2Z_BtoS_PSEUDO = 1542,
- USMLALL_VG2_M2ZZI_BtoS_PSEUDO = 1543,
- USMLALL_VG2_M2ZZ_BtoS_PSEUDO = 1544,
- USMLALL_VG4_M4Z4Z_BtoS_PSEUDO = 1545,
- USMLALL_VG4_M4ZZI_BtoS_PSEUDO = 1546,
- USMLALL_VG4_M4ZZ_BtoS_PSEUDO = 1547,
- USMOP4A_M2Z2Z_BToS_PSEUDO = 1548,
- USMOP4A_M2Z2Z_HtoD_PSEUDO = 1549,
- USMOP4A_M2ZZ_BToS_PSEUDO = 1550,
- USMOP4A_M2ZZ_HtoD_PSEUDO = 1551,
- USMOP4A_MZ2Z_BToS_PSEUDO = 1552,
- USMOP4A_MZ2Z_HtoD_PSEUDO = 1553,
- USMOP4A_MZZ_BToS_PSEUDO = 1554,
- USMOP4A_MZZ_HtoD_PSEUDO = 1555,
- USMOP4S_M2Z2Z_BToS_PSEUDO = 1556,
- USMOP4S_M2Z2Z_HtoD_PSEUDO = 1557,
- USMOP4S_M2ZZ_BToS_PSEUDO = 1558,
- USMOP4S_M2ZZ_HtoD_PSEUDO = 1559,
- USMOP4S_MZ2Z_BToS_PSEUDO = 1560,
- USMOP4S_MZ2Z_HtoD_PSEUDO = 1561,
- USMOP4S_MZZ_BToS_PSEUDO = 1562,
- USMOP4S_MZZ_HtoD_PSEUDO = 1563,
- USMOPA_MPPZZ_D_PSEUDO = 1564,
- USMOPA_MPPZZ_S_PSEUDO = 1565,
- USMOPS_MPPZZ_D_PSEUDO = 1566,
- USMOPS_MPPZZ_S_PSEUDO = 1567,
- USTMOPA_M2ZZZI_BtoS_PSEUDO = 1568,
- USVDOT_VG4_M4ZZI_BToS_PSEUDO = 1569,
- UTMOPA_M2ZZZI_BtoS_PSEUDO = 1570,
- UTMOPA_M2ZZZI_HtoS_PSEUDO = 1571,
- UVDOT_VG2_M2ZZI_HtoS_PSEUDO = 1572,
- UVDOT_VG4_M4ZZI_BtoS_PSEUDO = 1573,
- UVDOT_VG4_M4ZZI_HtoD_PSEUDO = 1574,
- UXTB_ZPmZ_D_UNDEF = 1575,
- UXTB_ZPmZ_H_UNDEF = 1576,
- UXTB_ZPmZ_S_UNDEF = 1577,
- UXTH_ZPmZ_D_UNDEF = 1578,
- UXTH_ZPmZ_S_UNDEF = 1579,
- UXTW_ZPmZ_D_UNDEF = 1580,
- VGRestorePseudo = 1581,
- VGSavePseudo = 1582,
- ZERO_MXI_2Z_PSEUDO = 1583,
- ZERO_MXI_4Z_PSEUDO = 1584,
- ZERO_MXI_VG2_2Z_PSEUDO = 1585,
- ZERO_MXI_VG2_4Z_PSEUDO = 1586,
- ZERO_MXI_VG2_Z_PSEUDO = 1587,
- ZERO_MXI_VG4_2Z_PSEUDO = 1588,
- ZERO_MXI_VG4_4Z_PSEUDO = 1589,
- ZERO_MXI_VG4_Z_PSEUDO = 1590,
- ZERO_M_PSEUDO = 1591,
- ZERO_T_PSEUDO = 1592,
- ABSWr = 1593,
- ABSXr = 1594,
- ABS_ZPmZ_B = 1595,
- ABS_ZPmZ_D = 1596,
- ABS_ZPmZ_H = 1597,
- ABS_ZPmZ_S = 1598,
- ABS_ZPzZ_B = 1599,
- ABS_ZPzZ_D = 1600,
- ABS_ZPzZ_H = 1601,
- ABS_ZPzZ_S = 1602,
- ABSv16i8 = 1603,
- ABSv1i64 = 1604,
- ABSv2i32 = 1605,
- ABSv2i64 = 1606,
- ABSv4i16 = 1607,
- ABSv4i32 = 1608,
- ABSv8i16 = 1609,
- ABSv8i8 = 1610,
- ADCLB_ZZZ_D = 1611,
- ADCLB_ZZZ_S = 1612,
- ADCLT_ZZZ_D = 1613,
- ADCLT_ZZZ_S = 1614,
- ADCSWr = 1615,
- ADCSXr = 1616,
- ADCWr = 1617,
- ADCXr = 1618,
- ADDG = 1619,
- ADDHA_MPPZ_D = 1620,
- ADDHA_MPPZ_S = 1621,
- ADDHNB_ZZZ_B = 1622,
- ADDHNB_ZZZ_H = 1623,
- ADDHNB_ZZZ_S = 1624,
- ADDHNT_ZZZ_B = 1625,
- ADDHNT_ZZZ_H = 1626,
- ADDHNT_ZZZ_S = 1627,
- ADDHNv2i64_v2i32 = 1628,
- ADDHNv2i64_v4i32 = 1629,
- ADDHNv4i32_v4i16 = 1630,
- ADDHNv4i32_v8i16 = 1631,
- ADDHNv8i16_v16i8 = 1632,
- ADDHNv8i16_v8i8 = 1633,
- ADDPL_XXI = 1634,
- ADDPT_shift = 1635,
- ADDP_ZPmZ_B = 1636,
- ADDP_ZPmZ_D = 1637,
- ADDP_ZPmZ_H = 1638,
- ADDP_ZPmZ_S = 1639,
- ADDPv16i8 = 1640,
- ADDPv2i32 = 1641,
- ADDPv2i64 = 1642,
- ADDPv2i64p = 1643,
- ADDPv4i16 = 1644,
- ADDPv4i32 = 1645,
- ADDPv8i16 = 1646,
- ADDPv8i8 = 1647,
- ADDQV_VPZ_B = 1648,
- ADDQV_VPZ_D = 1649,
- ADDQV_VPZ_H = 1650,
- ADDQV_VPZ_S = 1651,
- ADDSPL_XXI = 1652,
- ADDSVL_XXI = 1653,
- ADDSWri = 1654,
- ADDSWrs = 1655,
- ADDSWrx = 1656,
- ADDSXri = 1657,
- ADDSXrs = 1658,
- ADDSXrx = 1659,
- ADDSXrx64 = 1660,
- ADDVA_MPPZ_D = 1661,
- ADDVA_MPPZ_S = 1662,
- ADDVL_XXI = 1663,
- ADDVv16i8v = 1664,
- ADDVv4i16v = 1665,
- ADDVv4i32v = 1666,
- ADDVv8i16v = 1667,
- ADDVv8i8v = 1668,
- ADDWri = 1669,
- ADDWrs = 1670,
- ADDWrx = 1671,
- ADDXri = 1672,
- ADDXrs = 1673,
- ADDXrx = 1674,
- ADDXrx64 = 1675,
- ADD_VG2_2ZZ_B = 1676,
- ADD_VG2_2ZZ_D = 1677,
- ADD_VG2_2ZZ_H = 1678,
- ADD_VG2_2ZZ_S = 1679,
- ADD_VG2_M2Z2Z_D = 1680,
- ADD_VG2_M2Z2Z_S = 1681,
- ADD_VG2_M2ZZ_D = 1682,
- ADD_VG2_M2ZZ_S = 1683,
- ADD_VG2_M2Z_D = 1684,
- ADD_VG2_M2Z_S = 1685,
- ADD_VG4_4ZZ_B = 1686,
- ADD_VG4_4ZZ_D = 1687,
- ADD_VG4_4ZZ_H = 1688,
- ADD_VG4_4ZZ_S = 1689,
- ADD_VG4_M4Z4Z_D = 1690,
- ADD_VG4_M4Z4Z_S = 1691,
- ADD_VG4_M4ZZ_D = 1692,
- ADD_VG4_M4ZZ_S = 1693,
- ADD_VG4_M4Z_D = 1694,
- ADD_VG4_M4Z_S = 1695,
- ADD_ZI_B = 1696,
- ADD_ZI_D = 1697,
- ADD_ZI_H = 1698,
- ADD_ZI_S = 1699,
- ADD_ZPmZ_B = 1700,
- ADD_ZPmZ_CPA = 1701,
- ADD_ZPmZ_D = 1702,
- ADD_ZPmZ_H = 1703,
- ADD_ZPmZ_S = 1704,
- ADD_ZZZ_B = 1705,
- ADD_ZZZ_CPA = 1706,
- ADD_ZZZ_D = 1707,
- ADD_ZZZ_H = 1708,
- ADD_ZZZ_S = 1709,
- ADDv16i8 = 1710,
- ADDv1i64 = 1711,
- ADDv2i32 = 1712,
- ADDv2i64 = 1713,
- ADDv4i16 = 1714,
- ADDv4i32 = 1715,
- ADDv8i16 = 1716,
- ADDv8i8 = 1717,
- ADR = 1718,
- ADRP = 1719,
- ADR_LSL_ZZZ_D_0 = 1720,
- ADR_LSL_ZZZ_D_1 = 1721,
- ADR_LSL_ZZZ_D_2 = 1722,
- ADR_LSL_ZZZ_D_3 = 1723,
- ADR_LSL_ZZZ_S_0 = 1724,
- ADR_LSL_ZZZ_S_1 = 1725,
- ADR_LSL_ZZZ_S_2 = 1726,
- ADR_LSL_ZZZ_S_3 = 1727,
- ADR_SXTW_ZZZ_D_0 = 1728,
- ADR_SXTW_ZZZ_D_1 = 1729,
- ADR_SXTW_ZZZ_D_2 = 1730,
- ADR_SXTW_ZZZ_D_3 = 1731,
- ADR_UXTW_ZZZ_D_0 = 1732,
- ADR_UXTW_ZZZ_D_1 = 1733,
- ADR_UXTW_ZZZ_D_2 = 1734,
- ADR_UXTW_ZZZ_D_3 = 1735,
- AESDMIC_2ZZI_B = 1736,
- AESDMIC_4ZZI_B = 1737,
- AESD_2ZZI_B = 1738,
- AESD_4ZZI_B = 1739,
- AESD_ZZZ_B = 1740,
- AESDrr = 1741,
- AESEMC_2ZZI_B = 1742,
- AESEMC_4ZZI_B = 1743,
- AESE_2ZZI_B = 1744,
- AESE_4ZZI_B = 1745,
- AESE_ZZZ_B = 1746,
- AESErr = 1747,
- AESIMC_ZZ_B = 1748,
- AESIMCrr = 1749,
- AESMC_ZZ_B = 1750,
- AESMCrr = 1751,
- ANDQV_VPZ_B = 1752,
- ANDQV_VPZ_D = 1753,
- ANDQV_VPZ_H = 1754,
- ANDQV_VPZ_S = 1755,
- ANDSWri = 1756,
- ANDSWrs = 1757,
- ANDSXri = 1758,
- ANDSXrs = 1759,
- ANDS_PPzPP = 1760,
- ANDV_VPZ_B = 1761,
- ANDV_VPZ_D = 1762,
- ANDV_VPZ_H = 1763,
- ANDV_VPZ_S = 1764,
- ANDWri = 1765,
- ANDWrs = 1766,
- ANDXri = 1767,
- ANDXrs = 1768,
- AND_PPzPP = 1769,
- AND_ZI = 1770,
- AND_ZPmZ_B = 1771,
- AND_ZPmZ_D = 1772,
- AND_ZPmZ_H = 1773,
- AND_ZPmZ_S = 1774,
- AND_ZZZ = 1775,
- ANDv16i8 = 1776,
- ANDv8i8 = 1777,
- APAS = 1778,
- ASRD_ZPmI_B = 1779,
- ASRD_ZPmI_D = 1780,
- ASRD_ZPmI_H = 1781,
- ASRD_ZPmI_S = 1782,
- ASRR_ZPmZ_B = 1783,
- ASRR_ZPmZ_D = 1784,
- ASRR_ZPmZ_H = 1785,
- ASRR_ZPmZ_S = 1786,
- ASRVWr = 1787,
- ASRVXr = 1788,
- ASR_WIDE_ZPmZ_B = 1789,
- ASR_WIDE_ZPmZ_H = 1790,
- ASR_WIDE_ZPmZ_S = 1791,
- ASR_WIDE_ZZZ_B = 1792,
- ASR_WIDE_ZZZ_H = 1793,
- ASR_WIDE_ZZZ_S = 1794,
- ASR_ZPmI_B = 1795,
- ASR_ZPmI_D = 1796,
- ASR_ZPmI_H = 1797,
- ASR_ZPmI_S = 1798,
- ASR_ZPmZ_B = 1799,
- ASR_ZPmZ_D = 1800,
- ASR_ZPmZ_H = 1801,
- ASR_ZPmZ_S = 1802,
- ASR_ZZI_B = 1803,
- ASR_ZZI_D = 1804,
- ASR_ZZI_H = 1805,
- ASR_ZZI_S = 1806,
- AUTDA = 1807,
- AUTDB = 1808,
- AUTDZA = 1809,
- AUTDZB = 1810,
- AUTIA = 1811,
- AUTIA1716 = 1812,
- AUTIA171615 = 1813,
- AUTIASP = 1814,
- AUTIASPPCi = 1815,
- AUTIASPPCr = 1816,
- AUTIAZ = 1817,
- AUTIB = 1818,
- AUTIB1716 = 1819,
- AUTIB171615 = 1820,
- AUTIBSP = 1821,
- AUTIBSPPCi = 1822,
- AUTIBSPPCr = 1823,
- AUTIBZ = 1824,
- AUTIZA = 1825,
- AUTIZB = 1826,
- AXFLAG = 1827,
- B = 1828,
- BCAX = 1829,
- BCAX_ZZZZ = 1830,
- BCcc = 1831,
- BDEP_ZZZ_B = 1832,
- BDEP_ZZZ_D = 1833,
- BDEP_ZZZ_H = 1834,
- BDEP_ZZZ_S = 1835,
- BEXT_ZZZ_B = 1836,
- BEXT_ZZZ_D = 1837,
- BEXT_ZZZ_H = 1838,
- BEXT_ZZZ_S = 1839,
- BF16DOTlanev4bf16 = 1840,
- BF16DOTlanev8bf16 = 1841,
- BF1CVTL = 1842,
- BF1CVTL2 = 1843,
- BF1CVTLT_ZZ_BtoH = 1844,
- BF1CVTL_2ZZ_BtoH = 1845,
- BF1CVT_2ZZ_BtoH = 1846,
- BF1CVT_ZZ_BtoH = 1847,
- BF2CVTL = 1848,
- BF2CVTL2 = 1849,
- BF2CVTLT_ZZ_BtoH = 1850,
- BF2CVTL_2ZZ_BtoH = 1851,
- BF2CVT_2ZZ_BtoH = 1852,
- BF2CVT_ZZ_BtoH = 1853,
- BFADD_VG2_M2Z_H = 1854,
- BFADD_VG4_M4Z_H = 1855,
- BFADD_ZPmZZ = 1856,
- BFADD_ZZZ = 1857,
- BFCLAMP_VG2_2ZZZ_H = 1858,
- BFCLAMP_VG4_4ZZZ_H = 1859,
- BFCLAMP_ZZZ = 1860,
- BFCVT = 1861,
- BFCVTN = 1862,
- BFCVTN2 = 1863,
- BFCVTNT_ZPmZ = 1864,
- BFCVTNT_ZPzZ = 1865,
- BFCVTN_Z2Z_HtoB = 1866,
- BFCVTN_Z2Z_StoH = 1867,
- BFCVT_Z2Z_HtoB = 1868,
- BFCVT_Z2Z_StoH = 1869,
- BFCVT_ZPmZ = 1870,
- BFCVT_ZPzZ_StoH = 1871,
- BFDOT_VG2_M2Z2Z_HtoS = 1872,
- BFDOT_VG2_M2ZZI_HtoS = 1873,
- BFDOT_VG2_M2ZZ_HtoS = 1874,
- BFDOT_VG4_M4Z4Z_HtoS = 1875,
- BFDOT_VG4_M4ZZI_HtoS = 1876,
- BFDOT_VG4_M4ZZ_HtoS = 1877,
- BFDOT_ZZI = 1878,
- BFDOT_ZZZ = 1879,
- BFDOTv4bf16 = 1880,
- BFDOTv8bf16 = 1881,
- BFMAXNM_VG2_2Z2Z_H = 1882,
- BFMAXNM_VG2_2ZZ_H = 1883,
- BFMAXNM_VG4_4Z2Z_H = 1884,
- BFMAXNM_VG4_4ZZ_H = 1885,
- BFMAXNM_ZPmZZ = 1886,
- BFMAX_VG2_2Z2Z_H = 1887,
- BFMAX_VG2_2ZZ_H = 1888,
- BFMAX_VG4_4Z2Z_H = 1889,
- BFMAX_VG4_4ZZ_H = 1890,
- BFMAX_ZPmZZ = 1891,
- BFMINNM_VG2_2Z2Z_H = 1892,
- BFMINNM_VG2_2ZZ_H = 1893,
- BFMINNM_VG4_4Z2Z_H = 1894,
- BFMINNM_VG4_4ZZ_H = 1895,
- BFMINNM_ZPmZZ = 1896,
- BFMIN_VG2_2Z2Z_H = 1897,
- BFMIN_VG2_2ZZ_H = 1898,
- BFMIN_VG4_4Z2Z_H = 1899,
- BFMIN_VG4_4ZZ_H = 1900,
- BFMIN_ZPmZZ = 1901,
- BFMLALB = 1902,
- BFMLALBIdx = 1903,
- BFMLALB_ZZZ = 1904,
- BFMLALB_ZZZI = 1905,
- BFMLALT = 1906,
- BFMLALTIdx = 1907,
- BFMLALT_ZZZ = 1908,
- BFMLALT_ZZZI = 1909,
- BFMLAL_MZZI_HtoS = 1910,
- BFMLAL_MZZ_HtoS = 1911,
- BFMLAL_VG2_M2Z2Z_HtoS = 1912,
- BFMLAL_VG2_M2ZZI_HtoS = 1913,
- BFMLAL_VG2_M2ZZ_HtoS = 1914,
- BFMLAL_VG4_M4Z4Z_HtoS = 1915,
- BFMLAL_VG4_M4ZZI_HtoS = 1916,
- BFMLAL_VG4_M4ZZ_HtoS = 1917,
- BFMLA_VG2_M2Z2Z = 1918,
- BFMLA_VG2_M2ZZ = 1919,
- BFMLA_VG2_M2ZZI = 1920,
- BFMLA_VG4_M4Z4Z = 1921,
- BFMLA_VG4_M4ZZ = 1922,
- BFMLA_VG4_M4ZZI = 1923,
- BFMLA_ZPmZZ = 1924,
- BFMLA_ZZZI = 1925,
- BFMLSLB_ZZZI_S = 1926,
- BFMLSLB_ZZZ_S = 1927,
- BFMLSLT_ZZZI_S = 1928,
- BFMLSLT_ZZZ_S = 1929,
- BFMLSL_MZZI_HtoS = 1930,
- BFMLSL_MZZ_HtoS = 1931,
- BFMLSL_VG2_M2Z2Z_HtoS = 1932,
- BFMLSL_VG2_M2ZZI_HtoS = 1933,
- BFMLSL_VG2_M2ZZ_HtoS = 1934,
- BFMLSL_VG4_M4Z4Z_HtoS = 1935,
- BFMLSL_VG4_M4ZZI_HtoS = 1936,
- BFMLSL_VG4_M4ZZ_HtoS = 1937,
- BFMLS_VG2_M2Z2Z = 1938,
- BFMLS_VG2_M2ZZ = 1939,
- BFMLS_VG2_M2ZZI = 1940,
- BFMLS_VG4_M4Z4Z = 1941,
- BFMLS_VG4_M4ZZ = 1942,
- BFMLS_VG4_M4ZZI = 1943,
- BFMLS_ZPmZZ = 1944,
- BFMLS_ZZZI = 1945,
- BFMMLA = 1946,
- BFMMLA_ZZZ = 1947,
- BFMOP4A_M2Z2Z_H = 1948,
- BFMOP4A_M2Z2Z_S = 1949,
- BFMOP4A_M2ZZ_H = 1950,
- BFMOP4A_M2ZZ_S = 1951,
- BFMOP4A_MZ2Z_H = 1952,
- BFMOP4A_MZ2Z_S = 1953,
- BFMOP4A_MZZ_H = 1954,
- BFMOP4A_MZZ_S = 1955,
- BFMOP4S_M2Z2Z_H = 1956,
- BFMOP4S_M2Z2Z_S = 1957,
- BFMOP4S_M2ZZ_H = 1958,
- BFMOP4S_M2ZZ_S = 1959,
- BFMOP4S_MZ2Z_H = 1960,
- BFMOP4S_MZ2Z_S = 1961,
- BFMOP4S_MZZ_H = 1962,
- BFMOP4S_MZZ_S = 1963,
- BFMOPA_MPPZZ = 1964,
- BFMOPA_MPPZZ_H = 1965,
- BFMOPS_MPPZZ = 1966,
- BFMOPS_MPPZZ_H = 1967,
- BFMUL_2Z2Z = 1968,
- BFMUL_2ZZ = 1969,
- BFMUL_4Z4Z = 1970,
- BFMUL_4ZZ = 1971,
- BFMUL_ZPmZZ = 1972,
- BFMUL_ZZZ = 1973,
- BFMUL_ZZZI = 1974,
- BFMWri = 1975,
- BFMXri = 1976,
- BFSCALE_2Z2Z = 1977,
- BFSCALE_2ZZ = 1978,
- BFSCALE_4Z4Z = 1979,
- BFSCALE_4ZZ = 1980,
- BFSCALE_ZPZZ = 1981,
- BFSUB_VG2_M2Z_H = 1982,
- BFSUB_VG4_M4Z_H = 1983,
- BFSUB_ZPmZZ = 1984,
- BFSUB_ZZZ = 1985,
- BFTMOPA_M2ZZZI_HtoH = 1986,
- BFTMOPA_M2ZZZI_HtoS = 1987,
- BFVDOT_VG2_M2ZZI_HtoS = 1988,
- BGRP_ZZZ_B = 1989,
- BGRP_ZZZ_D = 1990,
- BGRP_ZZZ_H = 1991,
- BGRP_ZZZ_S = 1992,
- BICSWrs = 1993,
- BICSXrs = 1994,
- BICS_PPzPP = 1995,
- BICWrs = 1996,
- BICXrs = 1997,
- BIC_PPzPP = 1998,
- BIC_ZPmZ_B = 1999,
- BIC_ZPmZ_D = 2000,
- BIC_ZPmZ_H = 2001,
- BIC_ZPmZ_S = 2002,
- BIC_ZZZ = 2003,
- BICv16i8 = 2004,
- BICv2i32 = 2005,
- BICv4i16 = 2006,
- BICv4i32 = 2007,
- BICv8i16 = 2008,
- BICv8i8 = 2009,
- BIFv16i8 = 2010,
- BIFv8i8 = 2011,
- BITv16i8 = 2012,
- BITv8i8 = 2013,
- BL = 2014,
- BLR = 2015,
- BLRAA = 2016,
- BLRAAZ = 2017,
- BLRAB = 2018,
- BLRABZ = 2019,
- BMOPA_MPPZZ_S = 2020,
- BMOPS_MPPZZ_S = 2021,
- BR = 2022,
- BRAA = 2023,
- BRAAZ = 2024,
- BRAB = 2025,
- BRABZ = 2026,
- BRB_IALL = 2027,
- BRB_INJ = 2028,
- BRK = 2029,
- BRKAS_PPzP = 2030,
- BRKA_PPmP = 2031,
- BRKA_PPzP = 2032,
- BRKBS_PPzP = 2033,
- BRKB_PPmP = 2034,
- BRKB_PPzP = 2035,
- BRKNS_PPzP = 2036,
- BRKN_PPzP = 2037,
- BRKPAS_PPzPP = 2038,
- BRKPA_PPzPP = 2039,
- BRKPBS_PPzPP = 2040,
- BRKPB_PPzPP = 2041,
- BSL1N_ZZZZ = 2042,
- BSL2N_ZZZZ = 2043,
- BSL_ZZZZ = 2044,
- BSLv16i8 = 2045,
- BSLv8i8 = 2046,
- Bcc = 2047,
- CADD_ZZI_B = 2048,
- CADD_ZZI_D = 2049,
- CADD_ZZI_H = 2050,
- CADD_ZZI_S = 2051,
- CASAB = 2052,
- CASAH = 2053,
- CASALB = 2054,
- CASALH = 2055,
- CASALTX = 2056,
- CASALW = 2057,
- CASALX = 2058,
- CASATX = 2059,
- CASAW = 2060,
- CASAX = 2061,
- CASB = 2062,
- CASH = 2063,
- CASLB = 2064,
- CASLH = 2065,
- CASLTX = 2066,
- CASLW = 2067,
- CASLX = 2068,
- CASPALTX = 2069,
- CASPALW = 2070,
- CASPALX = 2071,
- CASPATX = 2072,
- CASPAW = 2073,
- CASPAX = 2074,
- CASPLTX = 2075,
- CASPLW = 2076,
- CASPLX = 2077,
- CASPTX = 2078,
- CASPW = 2079,
- CASPX = 2080,
- CASTX = 2081,
- CASW = 2082,
- CASX = 2083,
- CBBEQWrr = 2084,
- CBBGEWrr = 2085,
- CBBGTWrr = 2086,
- CBBHIWrr = 2087,
- CBBHSWrr = 2088,
- CBBNEWrr = 2089,
- CBEQWri = 2090,
- CBEQWrr = 2091,
- CBEQXri = 2092,
- CBEQXrr = 2093,
- CBGEWrr = 2094,
- CBGEXrr = 2095,
- CBGTWri = 2096,
- CBGTWrr = 2097,
- CBGTXri = 2098,
- CBGTXrr = 2099,
- CBHEQWrr = 2100,
- CBHGEWrr = 2101,
- CBHGTWrr = 2102,
- CBHHIWrr = 2103,
- CBHHSWrr = 2104,
- CBHIWri = 2105,
- CBHIWrr = 2106,
- CBHIXri = 2107,
- CBHIXrr = 2108,
- CBHNEWrr = 2109,
- CBHSWrr = 2110,
- CBHSXrr = 2111,
- CBLOWri = 2112,
- CBLOXri = 2113,
- CBLTWri = 2114,
- CBLTXri = 2115,
- CBNEWri = 2116,
- CBNEWrr = 2117,
- CBNEXri = 2118,
- CBNEXrr = 2119,
- CBNZW = 2120,
- CBNZX = 2121,
- CBZW = 2122,
- CBZX = 2123,
- CCMNWi = 2124,
- CCMNWr = 2125,
- CCMNXi = 2126,
- CCMNXr = 2127,
- CCMPWi = 2128,
- CCMPWr = 2129,
- CCMPXi = 2130,
- CCMPXr = 2131,
- CDOT_ZZZI_D = 2132,
- CDOT_ZZZI_S = 2133,
- CDOT_ZZZ_D = 2134,
- CDOT_ZZZ_S = 2135,
- CFINV = 2136,
- CHKFEAT = 2137,
- CLASTA_RPZ_B = 2138,
- CLASTA_RPZ_D = 2139,
- CLASTA_RPZ_H = 2140,
- CLASTA_RPZ_S = 2141,
- CLASTA_VPZ_B = 2142,
- CLASTA_VPZ_D = 2143,
- CLASTA_VPZ_H = 2144,
- CLASTA_VPZ_S = 2145,
- CLASTA_ZPZ_B = 2146,
- CLASTA_ZPZ_D = 2147,
- CLASTA_ZPZ_H = 2148,
- CLASTA_ZPZ_S = 2149,
- CLASTB_RPZ_B = 2150,
- CLASTB_RPZ_D = 2151,
- CLASTB_RPZ_H = 2152,
- CLASTB_RPZ_S = 2153,
- CLASTB_VPZ_B = 2154,
- CLASTB_VPZ_D = 2155,
- CLASTB_VPZ_H = 2156,
- CLASTB_VPZ_S = 2157,
- CLASTB_ZPZ_B = 2158,
- CLASTB_ZPZ_D = 2159,
- CLASTB_ZPZ_H = 2160,
- CLASTB_ZPZ_S = 2161,
- CLREX = 2162,
- CLSWr = 2163,
- CLSXr = 2164,
- CLS_ZPmZ_B = 2165,
- CLS_ZPmZ_D = 2166,
- CLS_ZPmZ_H = 2167,
- CLS_ZPmZ_S = 2168,
- CLS_ZPzZ_B = 2169,
- CLS_ZPzZ_D = 2170,
- CLS_ZPzZ_H = 2171,
- CLS_ZPzZ_S = 2172,
- CLSv16i8 = 2173,
- CLSv2i32 = 2174,
- CLSv4i16 = 2175,
- CLSv4i32 = 2176,
- CLSv8i16 = 2177,
- CLSv8i8 = 2178,
- CLZWr = 2179,
- CLZXr = 2180,
- CLZ_ZPmZ_B = 2181,
- CLZ_ZPmZ_D = 2182,
- CLZ_ZPmZ_H = 2183,
- CLZ_ZPmZ_S = 2184,
- CLZ_ZPzZ_B = 2185,
- CLZ_ZPzZ_D = 2186,
- CLZ_ZPzZ_H = 2187,
- CLZ_ZPzZ_S = 2188,
- CLZv16i8 = 2189,
- CLZv2i32 = 2190,
- CLZv4i16 = 2191,
- CLZv4i32 = 2192,
- CLZv8i16 = 2193,
- CLZv8i8 = 2194,
- CMEQv16i8 = 2195,
- CMEQv16i8rz = 2196,
- CMEQv1i64 = 2197,
- CMEQv1i64rz = 2198,
- CMEQv2i32 = 2199,
- CMEQv2i32rz = 2200,
- CMEQv2i64 = 2201,
- CMEQv2i64rz = 2202,
- CMEQv4i16 = 2203,
- CMEQv4i16rz = 2204,
- CMEQv4i32 = 2205,
- CMEQv4i32rz = 2206,
- CMEQv8i16 = 2207,
- CMEQv8i16rz = 2208,
- CMEQv8i8 = 2209,
- CMEQv8i8rz = 2210,
- CMGEv16i8 = 2211,
- CMGEv16i8rz = 2212,
- CMGEv1i64 = 2213,
- CMGEv1i64rz = 2214,
- CMGEv2i32 = 2215,
- CMGEv2i32rz = 2216,
- CMGEv2i64 = 2217,
- CMGEv2i64rz = 2218,
- CMGEv4i16 = 2219,
- CMGEv4i16rz = 2220,
- CMGEv4i32 = 2221,
- CMGEv4i32rz = 2222,
- CMGEv8i16 = 2223,
- CMGEv8i16rz = 2224,
- CMGEv8i8 = 2225,
- CMGEv8i8rz = 2226,
- CMGTv16i8 = 2227,
- CMGTv16i8rz = 2228,
- CMGTv1i64 = 2229,
- CMGTv1i64rz = 2230,
- CMGTv2i32 = 2231,
- CMGTv2i32rz = 2232,
- CMGTv2i64 = 2233,
- CMGTv2i64rz = 2234,
- CMGTv4i16 = 2235,
- CMGTv4i16rz = 2236,
- CMGTv4i32 = 2237,
- CMGTv4i32rz = 2238,
- CMGTv8i16 = 2239,
- CMGTv8i16rz = 2240,
- CMGTv8i8 = 2241,
- CMGTv8i8rz = 2242,
- CMHIv16i8 = 2243,
- CMHIv1i64 = 2244,
- CMHIv2i32 = 2245,
- CMHIv2i64 = 2246,
- CMHIv4i16 = 2247,
- CMHIv4i32 = 2248,
- CMHIv8i16 = 2249,
- CMHIv8i8 = 2250,
- CMHSv16i8 = 2251,
- CMHSv1i64 = 2252,
- CMHSv2i32 = 2253,
- CMHSv2i64 = 2254,
- CMHSv4i16 = 2255,
- CMHSv4i32 = 2256,
- CMHSv8i16 = 2257,
- CMHSv8i8 = 2258,
- CMLA_ZZZI_H = 2259,
- CMLA_ZZZI_S = 2260,
- CMLA_ZZZ_B = 2261,
- CMLA_ZZZ_D = 2262,
- CMLA_ZZZ_H = 2263,
- CMLA_ZZZ_S = 2264,
- CMLEv16i8rz = 2265,
- CMLEv1i64rz = 2266,
- CMLEv2i32rz = 2267,
- CMLEv2i64rz = 2268,
- CMLEv4i16rz = 2269,
- CMLEv4i32rz = 2270,
- CMLEv8i16rz = 2271,
- CMLEv8i8rz = 2272,
- CMLTv16i8rz = 2273,
- CMLTv1i64rz = 2274,
- CMLTv2i32rz = 2275,
- CMLTv2i64rz = 2276,
- CMLTv4i16rz = 2277,
- CMLTv4i32rz = 2278,
- CMLTv8i16rz = 2279,
- CMLTv8i8rz = 2280,
- CMPEQ_PPzZI_B = 2281,
- CMPEQ_PPzZI_D = 2282,
- CMPEQ_PPzZI_H = 2283,
- CMPEQ_PPzZI_S = 2284,
- CMPEQ_PPzZZ_B = 2285,
- CMPEQ_PPzZZ_D = 2286,
- CMPEQ_PPzZZ_H = 2287,
- CMPEQ_PPzZZ_S = 2288,
- CMPEQ_WIDE_PPzZZ_B = 2289,
- CMPEQ_WIDE_PPzZZ_H = 2290,
- CMPEQ_WIDE_PPzZZ_S = 2291,
- CMPGE_PPzZI_B = 2292,
- CMPGE_PPzZI_D = 2293,
- CMPGE_PPzZI_H = 2294,
- CMPGE_PPzZI_S = 2295,
- CMPGE_PPzZZ_B = 2296,
- CMPGE_PPzZZ_D = 2297,
- CMPGE_PPzZZ_H = 2298,
- CMPGE_PPzZZ_S = 2299,
- CMPGE_WIDE_PPzZZ_B = 2300,
- CMPGE_WIDE_PPzZZ_H = 2301,
- CMPGE_WIDE_PPzZZ_S = 2302,
- CMPGT_PPzZI_B = 2303,
- CMPGT_PPzZI_D = 2304,
- CMPGT_PPzZI_H = 2305,
- CMPGT_PPzZI_S = 2306,
- CMPGT_PPzZZ_B = 2307,
- CMPGT_PPzZZ_D = 2308,
- CMPGT_PPzZZ_H = 2309,
- CMPGT_PPzZZ_S = 2310,
- CMPGT_WIDE_PPzZZ_B = 2311,
- CMPGT_WIDE_PPzZZ_H = 2312,
- CMPGT_WIDE_PPzZZ_S = 2313,
- CMPHI_PPzZI_B = 2314,
- CMPHI_PPzZI_D = 2315,
- CMPHI_PPzZI_H = 2316,
- CMPHI_PPzZI_S = 2317,
- CMPHI_PPzZZ_B = 2318,
- CMPHI_PPzZZ_D = 2319,
- CMPHI_PPzZZ_H = 2320,
- CMPHI_PPzZZ_S = 2321,
- CMPHI_WIDE_PPzZZ_B = 2322,
- CMPHI_WIDE_PPzZZ_H = 2323,
- CMPHI_WIDE_PPzZZ_S = 2324,
- CMPHS_PPzZI_B = 2325,
- CMPHS_PPzZI_D = 2326,
- CMPHS_PPzZI_H = 2327,
- CMPHS_PPzZI_S = 2328,
- CMPHS_PPzZZ_B = 2329,
- CMPHS_PPzZZ_D = 2330,
- CMPHS_PPzZZ_H = 2331,
- CMPHS_PPzZZ_S = 2332,
- CMPHS_WIDE_PPzZZ_B = 2333,
- CMPHS_WIDE_PPzZZ_H = 2334,
- CMPHS_WIDE_PPzZZ_S = 2335,
- CMPLE_PPzZI_B = 2336,
- CMPLE_PPzZI_D = 2337,
- CMPLE_PPzZI_H = 2338,
- CMPLE_PPzZI_S = 2339,
- CMPLE_WIDE_PPzZZ_B = 2340,
- CMPLE_WIDE_PPzZZ_H = 2341,
- CMPLE_WIDE_PPzZZ_S = 2342,
- CMPLO_PPzZI_B = 2343,
- CMPLO_PPzZI_D = 2344,
- CMPLO_PPzZI_H = 2345,
- CMPLO_PPzZI_S = 2346,
- CMPLO_WIDE_PPzZZ_B = 2347,
- CMPLO_WIDE_PPzZZ_H = 2348,
- CMPLO_WIDE_PPzZZ_S = 2349,
- CMPLS_PPzZI_B = 2350,
- CMPLS_PPzZI_D = 2351,
- CMPLS_PPzZI_H = 2352,
- CMPLS_PPzZI_S = 2353,
- CMPLS_WIDE_PPzZZ_B = 2354,
- CMPLS_WIDE_PPzZZ_H = 2355,
- CMPLS_WIDE_PPzZZ_S = 2356,
- CMPLT_PPzZI_B = 2357,
- CMPLT_PPzZI_D = 2358,
- CMPLT_PPzZI_H = 2359,
- CMPLT_PPzZI_S = 2360,
- CMPLT_WIDE_PPzZZ_B = 2361,
- CMPLT_WIDE_PPzZZ_H = 2362,
- CMPLT_WIDE_PPzZZ_S = 2363,
- CMPNE_PPzZI_B = 2364,
- CMPNE_PPzZI_D = 2365,
- CMPNE_PPzZI_H = 2366,
- CMPNE_PPzZI_S = 2367,
- CMPNE_PPzZZ_B = 2368,
- CMPNE_PPzZZ_D = 2369,
- CMPNE_PPzZZ_H = 2370,
- CMPNE_PPzZZ_S = 2371,
- CMPNE_WIDE_PPzZZ_B = 2372,
- CMPNE_WIDE_PPzZZ_H = 2373,
- CMPNE_WIDE_PPzZZ_S = 2374,
- CMTSTv16i8 = 2375,
- CMTSTv1i64 = 2376,
- CMTSTv2i32 = 2377,
- CMTSTv2i64 = 2378,
- CMTSTv4i16 = 2379,
- CMTSTv4i32 = 2380,
- CMTSTv8i16 = 2381,
- CMTSTv8i8 = 2382,
- CNOT_ZPmZ_B = 2383,
- CNOT_ZPmZ_D = 2384,
- CNOT_ZPmZ_H = 2385,
- CNOT_ZPmZ_S = 2386,
- CNOT_ZPzZ_B = 2387,
- CNOT_ZPzZ_D = 2388,
- CNOT_ZPzZ_H = 2389,
- CNOT_ZPzZ_S = 2390,
- CNTB_XPiI = 2391,
- CNTD_XPiI = 2392,
- CNTH_XPiI = 2393,
- CNTP_XCI_B = 2394,
- CNTP_XCI_D = 2395,
- CNTP_XCI_H = 2396,
- CNTP_XCI_S = 2397,
- CNTP_XPP_B = 2398,
- CNTP_XPP_D = 2399,
- CNTP_XPP_H = 2400,
- CNTP_XPP_S = 2401,
- CNTW_XPiI = 2402,
- CNTWr = 2403,
- CNTXr = 2404,
- CNT_ZPmZ_B = 2405,
- CNT_ZPmZ_D = 2406,
- CNT_ZPmZ_H = 2407,
- CNT_ZPmZ_S = 2408,
- CNT_ZPzZ_B = 2409,
- CNT_ZPzZ_D = 2410,
- CNT_ZPzZ_H = 2411,
- CNT_ZPzZ_S = 2412,
- CNTv16i8 = 2413,
- CNTv8i8 = 2414,
- COMPACT_ZPZ_B = 2415,
- COMPACT_ZPZ_D = 2416,
- COMPACT_ZPZ_H = 2417,
- COMPACT_ZPZ_S = 2418,
- CPYE = 2419,
- CPYEN = 2420,
- CPYERN = 2421,
- CPYERT = 2422,
- CPYERTN = 2423,
- CPYERTRN = 2424,
- CPYERTWN = 2425,
- CPYET = 2426,
- CPYETN = 2427,
- CPYETRN = 2428,
- CPYETWN = 2429,
- CPYEWN = 2430,
- CPYEWT = 2431,
- CPYEWTN = 2432,
- CPYEWTRN = 2433,
- CPYEWTWN = 2434,
- CPYFE = 2435,
- CPYFEN = 2436,
- CPYFERN = 2437,
- CPYFERT = 2438,
- CPYFERTN = 2439,
- CPYFERTRN = 2440,
- CPYFERTWN = 2441,
- CPYFET = 2442,
- CPYFETN = 2443,
- CPYFETRN = 2444,
- CPYFETWN = 2445,
- CPYFEWN = 2446,
- CPYFEWT = 2447,
- CPYFEWTN = 2448,
- CPYFEWTRN = 2449,
- CPYFEWTWN = 2450,
- CPYFM = 2451,
- CPYFMN = 2452,
- CPYFMRN = 2453,
- CPYFMRT = 2454,
- CPYFMRTN = 2455,
- CPYFMRTRN = 2456,
- CPYFMRTWN = 2457,
- CPYFMT = 2458,
- CPYFMTN = 2459,
- CPYFMTRN = 2460,
- CPYFMTWN = 2461,
- CPYFMWN = 2462,
- CPYFMWT = 2463,
- CPYFMWTN = 2464,
- CPYFMWTRN = 2465,
- CPYFMWTWN = 2466,
- CPYFP = 2467,
- CPYFPN = 2468,
- CPYFPRN = 2469,
- CPYFPRT = 2470,
- CPYFPRTN = 2471,
- CPYFPRTRN = 2472,
- CPYFPRTWN = 2473,
- CPYFPT = 2474,
- CPYFPTN = 2475,
- CPYFPTRN = 2476,
- CPYFPTWN = 2477,
- CPYFPWN = 2478,
- CPYFPWT = 2479,
- CPYFPWTN = 2480,
- CPYFPWTRN = 2481,
- CPYFPWTWN = 2482,
- CPYM = 2483,
- CPYMN = 2484,
- CPYMRN = 2485,
- CPYMRT = 2486,
- CPYMRTN = 2487,
- CPYMRTRN = 2488,
- CPYMRTWN = 2489,
- CPYMT = 2490,
- CPYMTN = 2491,
- CPYMTRN = 2492,
- CPYMTWN = 2493,
- CPYMWN = 2494,
- CPYMWT = 2495,
- CPYMWTN = 2496,
- CPYMWTRN = 2497,
- CPYMWTWN = 2498,
- CPYP = 2499,
- CPYPN = 2500,
- CPYPRN = 2501,
- CPYPRT = 2502,
- CPYPRTN = 2503,
- CPYPRTRN = 2504,
- CPYPRTWN = 2505,
- CPYPT = 2506,
- CPYPTN = 2507,
- CPYPTRN = 2508,
- CPYPTWN = 2509,
- CPYPWN = 2510,
- CPYPWT = 2511,
- CPYPWTN = 2512,
- CPYPWTRN = 2513,
- CPYPWTWN = 2514,
- CPY_ZPmI_B = 2515,
- CPY_ZPmI_D = 2516,
- CPY_ZPmI_H = 2517,
- CPY_ZPmI_S = 2518,
- CPY_ZPmR_B = 2519,
- CPY_ZPmR_D = 2520,
- CPY_ZPmR_H = 2521,
- CPY_ZPmR_S = 2522,
- CPY_ZPmV_B = 2523,
- CPY_ZPmV_D = 2524,
- CPY_ZPmV_H = 2525,
- CPY_ZPmV_S = 2526,
- CPY_ZPzI_B = 2527,
- CPY_ZPzI_D = 2528,
- CPY_ZPzI_H = 2529,
- CPY_ZPzI_S = 2530,
- CRC32Brr = 2531,
- CRC32CBrr = 2532,
- CRC32CHrr = 2533,
- CRC32CWrr = 2534,
- CRC32CXrr = 2535,
- CRC32Hrr = 2536,
- CRC32Wrr = 2537,
- CRC32Xrr = 2538,
- CSELWr = 2539,
- CSELXr = 2540,
- CSINCWr = 2541,
- CSINCXr = 2542,
- CSINVWr = 2543,
- CSINVXr = 2544,
- CSNEGWr = 2545,
- CSNEGXr = 2546,
- CTERMEQ_WW = 2547,
- CTERMEQ_XX = 2548,
- CTERMNE_WW = 2549,
- CTERMNE_XX = 2550,
- CTZWr = 2551,
- CTZXr = 2552,
- DCPS1 = 2553,
- DCPS2 = 2554,
- DCPS3 = 2555,
- DECB_XPiI = 2556,
- DECD_XPiI = 2557,
- DECD_ZPiI = 2558,
- DECH_XPiI = 2559,
- DECH_ZPiI = 2560,
- DECP_XP_B = 2561,
- DECP_XP_D = 2562,
- DECP_XP_H = 2563,
- DECP_XP_S = 2564,
- DECP_ZP_D = 2565,
- DECP_ZP_H = 2566,
- DECP_ZP_S = 2567,
- DECW_XPiI = 2568,
- DECW_ZPiI = 2569,
- DMB = 2570,
- DRPS = 2571,
- DSB = 2572,
- DSBnXS = 2573,
- DUPM_ZI = 2574,
- DUPQ_ZZI_B = 2575,
- DUPQ_ZZI_D = 2576,
- DUPQ_ZZI_H = 2577,
- DUPQ_ZZI_S = 2578,
- DUP_ZI_B = 2579,
- DUP_ZI_D = 2580,
- DUP_ZI_H = 2581,
- DUP_ZI_S = 2582,
- DUP_ZR_B = 2583,
- DUP_ZR_D = 2584,
- DUP_ZR_H = 2585,
- DUP_ZR_S = 2586,
- DUP_ZZI_B = 2587,
- DUP_ZZI_D = 2588,
- DUP_ZZI_H = 2589,
- DUP_ZZI_Q = 2590,
- DUP_ZZI_S = 2591,
- DUPi16 = 2592,
- DUPi32 = 2593,
- DUPi64 = 2594,
- DUPi8 = 2595,
- DUPv16i8gpr = 2596,
- DUPv16i8lane = 2597,
- DUPv2i32gpr = 2598,
- DUPv2i32lane = 2599,
- DUPv2i64gpr = 2600,
- DUPv2i64lane = 2601,
- DUPv4i16gpr = 2602,
- DUPv4i16lane = 2603,
- DUPv4i32gpr = 2604,
- DUPv4i32lane = 2605,
- DUPv8i16gpr = 2606,
- DUPv8i16lane = 2607,
- DUPv8i8gpr = 2608,
- DUPv8i8lane = 2609,
- EONWrs = 2610,
- EONXrs = 2611,
- EOR3 = 2612,
- EOR3_ZZZZ = 2613,
- EORBT_ZZZ_B = 2614,
- EORBT_ZZZ_D = 2615,
- EORBT_ZZZ_H = 2616,
- EORBT_ZZZ_S = 2617,
- EORQV_VPZ_B = 2618,
- EORQV_VPZ_D = 2619,
- EORQV_VPZ_H = 2620,
- EORQV_VPZ_S = 2621,
- EORS_PPzPP = 2622,
- EORTB_ZZZ_B = 2623,
- EORTB_ZZZ_D = 2624,
- EORTB_ZZZ_H = 2625,
- EORTB_ZZZ_S = 2626,
- EORV_VPZ_B = 2627,
- EORV_VPZ_D = 2628,
- EORV_VPZ_H = 2629,
- EORV_VPZ_S = 2630,
- EORWri = 2631,
- EORWrs = 2632,
- EORXri = 2633,
- EORXrs = 2634,
- EOR_PPzPP = 2635,
- EOR_ZI = 2636,
- EOR_ZPmZ_B = 2637,
- EOR_ZPmZ_D = 2638,
- EOR_ZPmZ_H = 2639,
- EOR_ZPmZ_S = 2640,
- EOR_ZZZ = 2641,
- EORv16i8 = 2642,
- EORv8i8 = 2643,
- ERET = 2644,
- ERETAA = 2645,
- ERETAB = 2646,
- EXPAND_ZPZ_B = 2647,
- EXPAND_ZPZ_D = 2648,
- EXPAND_ZPZ_H = 2649,
- EXPAND_ZPZ_S = 2650,
- EXTQ_ZZI = 2651,
- EXTRACT_ZPMXI_H_B = 2652,
- EXTRACT_ZPMXI_H_D = 2653,
- EXTRACT_ZPMXI_H_H = 2654,
- EXTRACT_ZPMXI_H_Q = 2655,
- EXTRACT_ZPMXI_H_S = 2656,
- EXTRACT_ZPMXI_V_B = 2657,
- EXTRACT_ZPMXI_V_D = 2658,
- EXTRACT_ZPMXI_V_H = 2659,
- EXTRACT_ZPMXI_V_Q = 2660,
- EXTRACT_ZPMXI_V_S = 2661,
- EXTRWrri = 2662,
- EXTRXrri = 2663,
- EXT_ZZI = 2664,
- EXT_ZZI_B = 2665,
- EXTv16i8 = 2666,
- EXTv8i8 = 2667,
- F1CVTL = 2668,
- F1CVTL2 = 2669,
- F1CVTLT_ZZ_BtoH = 2670,
- F1CVTL_2ZZ_BtoH = 2671,
- F1CVT_2ZZ_BtoH = 2672,
- F1CVT_ZZ_BtoH = 2673,
- F2CVTL = 2674,
- F2CVTL2 = 2675,
- F2CVTLT_ZZ_BtoH = 2676,
- F2CVTL_2ZZ_BtoH = 2677,
- F2CVT_2ZZ_BtoH = 2678,
- F2CVT_ZZ_BtoH = 2679,
- FABD16 = 2680,
- FABD32 = 2681,
- FABD64 = 2682,
- FABD_ZPmZ_D = 2683,
- FABD_ZPmZ_H = 2684,
- FABD_ZPmZ_S = 2685,
- FABDv2f32 = 2686,
- FABDv2f64 = 2687,
- FABDv4f16 = 2688,
- FABDv4f32 = 2689,
- FABDv8f16 = 2690,
- FABSDr = 2691,
- FABSHr = 2692,
- FABSSr = 2693,
- FABS_ZPmZ_D = 2694,
- FABS_ZPmZ_H = 2695,
- FABS_ZPmZ_S = 2696,
- FABS_ZPzZ_D = 2697,
- FABS_ZPzZ_H = 2698,
- FABS_ZPzZ_S = 2699,
- FABSv2f32 = 2700,
- FABSv2f64 = 2701,
- FABSv4f16 = 2702,
- FABSv4f32 = 2703,
- FABSv8f16 = 2704,
- FACGE16 = 2705,
- FACGE32 = 2706,
- FACGE64 = 2707,
- FACGE_PPzZZ_D = 2708,
- FACGE_PPzZZ_H = 2709,
- FACGE_PPzZZ_S = 2710,
- FACGEv2f32 = 2711,
- FACGEv2f64 = 2712,
- FACGEv4f16 = 2713,
- FACGEv4f32 = 2714,
- FACGEv8f16 = 2715,
- FACGT16 = 2716,
- FACGT32 = 2717,
- FACGT64 = 2718,
- FACGT_PPzZZ_D = 2719,
- FACGT_PPzZZ_H = 2720,
- FACGT_PPzZZ_S = 2721,
- FACGTv2f32 = 2722,
- FACGTv2f64 = 2723,
- FACGTv4f16 = 2724,
- FACGTv4f32 = 2725,
- FACGTv8f16 = 2726,
- FADDA_VPZ_D = 2727,
- FADDA_VPZ_H = 2728,
- FADDA_VPZ_S = 2729,
- FADDDrr = 2730,
- FADDHrr = 2731,
- FADDP_ZPmZZ_D = 2732,
- FADDP_ZPmZZ_H = 2733,
- FADDP_ZPmZZ_S = 2734,
- FADDPv2f32 = 2735,
- FADDPv2f64 = 2736,
- FADDPv2i16p = 2737,
- FADDPv2i32p = 2738,
- FADDPv2i64p = 2739,
- FADDPv4f16 = 2740,
- FADDPv4f32 = 2741,
- FADDPv8f16 = 2742,
- FADDQV_D = 2743,
- FADDQV_H = 2744,
- FADDQV_S = 2745,
- FADDSrr = 2746,
- FADDV_VPZ_D = 2747,
- FADDV_VPZ_H = 2748,
- FADDV_VPZ_S = 2749,
- FADD_VG2_M2Z_D = 2750,
- FADD_VG2_M2Z_H = 2751,
- FADD_VG2_M2Z_S = 2752,
- FADD_VG4_M4Z_D = 2753,
- FADD_VG4_M4Z_H = 2754,
- FADD_VG4_M4Z_S = 2755,
- FADD_ZPmI_D = 2756,
- FADD_ZPmI_H = 2757,
- FADD_ZPmI_S = 2758,
- FADD_ZPmZ_D = 2759,
- FADD_ZPmZ_H = 2760,
- FADD_ZPmZ_S = 2761,
- FADD_ZZZ_D = 2762,
- FADD_ZZZ_H = 2763,
- FADD_ZZZ_S = 2764,
- FADDv2f32 = 2765,
- FADDv2f64 = 2766,
- FADDv4f16 = 2767,
- FADDv4f32 = 2768,
- FADDv8f16 = 2769,
- FAMAX_2Z2Z_D = 2770,
- FAMAX_2Z2Z_H = 2771,
- FAMAX_2Z2Z_S = 2772,
- FAMAX_4Z4Z_D = 2773,
- FAMAX_4Z4Z_H = 2774,
- FAMAX_4Z4Z_S = 2775,
- FAMAX_ZPmZ_D = 2776,
- FAMAX_ZPmZ_H = 2777,
- FAMAX_ZPmZ_S = 2778,
- FAMAXv2f32 = 2779,
- FAMAXv2f64 = 2780,
- FAMAXv4f16 = 2781,
- FAMAXv4f32 = 2782,
- FAMAXv8f16 = 2783,
- FAMIN_2Z2Z_D = 2784,
- FAMIN_2Z2Z_H = 2785,
- FAMIN_2Z2Z_S = 2786,
- FAMIN_4Z4Z_D = 2787,
- FAMIN_4Z4Z_H = 2788,
- FAMIN_4Z4Z_S = 2789,
- FAMIN_ZPmZ_D = 2790,
- FAMIN_ZPmZ_H = 2791,
- FAMIN_ZPmZ_S = 2792,
- FAMINv2f32 = 2793,
- FAMINv2f64 = 2794,
- FAMINv4f16 = 2795,
- FAMINv4f32 = 2796,
- FAMINv8f16 = 2797,
- FCADD_ZPmZ_D = 2798,
- FCADD_ZPmZ_H = 2799,
- FCADD_ZPmZ_S = 2800,
- FCADDv2f32 = 2801,
- FCADDv2f64 = 2802,
- FCADDv4f16 = 2803,
- FCADDv4f32 = 2804,
- FCADDv8f16 = 2805,
- FCCMPDrr = 2806,
- FCCMPEDrr = 2807,
- FCCMPEHrr = 2808,
- FCCMPESrr = 2809,
- FCCMPHrr = 2810,
- FCCMPSrr = 2811,
- FCLAMP_VG2_2Z2Z_D = 2812,
- FCLAMP_VG2_2Z2Z_H = 2813,
- FCLAMP_VG2_2Z2Z_S = 2814,
- FCLAMP_VG4_4Z4Z_D = 2815,
- FCLAMP_VG4_4Z4Z_H = 2816,
- FCLAMP_VG4_4Z4Z_S = 2817,
- FCLAMP_ZZZ_D = 2818,
- FCLAMP_ZZZ_H = 2819,
- FCLAMP_ZZZ_S = 2820,
- FCMEQ16 = 2821,
- FCMEQ32 = 2822,
- FCMEQ64 = 2823,
- FCMEQ_PPzZ0_D = 2824,
- FCMEQ_PPzZ0_H = 2825,
- FCMEQ_PPzZ0_S = 2826,
- FCMEQ_PPzZZ_D = 2827,
- FCMEQ_PPzZZ_H = 2828,
- FCMEQ_PPzZZ_S = 2829,
- FCMEQv1i16rz = 2830,
- FCMEQv1i32rz = 2831,
- FCMEQv1i64rz = 2832,
- FCMEQv2f32 = 2833,
- FCMEQv2f64 = 2834,
- FCMEQv2i32rz = 2835,
- FCMEQv2i64rz = 2836,
- FCMEQv4f16 = 2837,
- FCMEQv4f32 = 2838,
- FCMEQv4i16rz = 2839,
- FCMEQv4i32rz = 2840,
- FCMEQv8f16 = 2841,
- FCMEQv8i16rz = 2842,
- FCMGE16 = 2843,
- FCMGE32 = 2844,
- FCMGE64 = 2845,
- FCMGE_PPzZ0_D = 2846,
- FCMGE_PPzZ0_H = 2847,
- FCMGE_PPzZ0_S = 2848,
- FCMGE_PPzZZ_D = 2849,
- FCMGE_PPzZZ_H = 2850,
- FCMGE_PPzZZ_S = 2851,
- FCMGEv1i16rz = 2852,
- FCMGEv1i32rz = 2853,
- FCMGEv1i64rz = 2854,
- FCMGEv2f32 = 2855,
- FCMGEv2f64 = 2856,
- FCMGEv2i32rz = 2857,
- FCMGEv2i64rz = 2858,
- FCMGEv4f16 = 2859,
- FCMGEv4f32 = 2860,
- FCMGEv4i16rz = 2861,
- FCMGEv4i32rz = 2862,
- FCMGEv8f16 = 2863,
- FCMGEv8i16rz = 2864,
- FCMGT16 = 2865,
- FCMGT32 = 2866,
- FCMGT64 = 2867,
- FCMGT_PPzZ0_D = 2868,
- FCMGT_PPzZ0_H = 2869,
- FCMGT_PPzZ0_S = 2870,
- FCMGT_PPzZZ_D = 2871,
- FCMGT_PPzZZ_H = 2872,
- FCMGT_PPzZZ_S = 2873,
- FCMGTv1i16rz = 2874,
- FCMGTv1i32rz = 2875,
- FCMGTv1i64rz = 2876,
- FCMGTv2f32 = 2877,
- FCMGTv2f64 = 2878,
- FCMGTv2i32rz = 2879,
- FCMGTv2i64rz = 2880,
- FCMGTv4f16 = 2881,
- FCMGTv4f32 = 2882,
- FCMGTv4i16rz = 2883,
- FCMGTv4i32rz = 2884,
- FCMGTv8f16 = 2885,
- FCMGTv8i16rz = 2886,
- FCMLA_ZPmZZ_D = 2887,
- FCMLA_ZPmZZ_H = 2888,
- FCMLA_ZPmZZ_S = 2889,
- FCMLA_ZZZI_H = 2890,
- FCMLA_ZZZI_S = 2891,
- FCMLAv2f32 = 2892,
- FCMLAv2f64 = 2893,
- FCMLAv4f16 = 2894,
- FCMLAv4f16_indexed = 2895,
- FCMLAv4f32 = 2896,
- FCMLAv4f32_indexed = 2897,
- FCMLAv8f16 = 2898,
- FCMLAv8f16_indexed = 2899,
- FCMLE_PPzZ0_D = 2900,
- FCMLE_PPzZ0_H = 2901,
- FCMLE_PPzZ0_S = 2902,
- FCMLEv1i16rz = 2903,
- FCMLEv1i32rz = 2904,
- FCMLEv1i64rz = 2905,
- FCMLEv2i32rz = 2906,
- FCMLEv2i64rz = 2907,
- FCMLEv4i16rz = 2908,
- FCMLEv4i32rz = 2909,
- FCMLEv8i16rz = 2910,
- FCMLT_PPzZ0_D = 2911,
- FCMLT_PPzZ0_H = 2912,
- FCMLT_PPzZ0_S = 2913,
- FCMLTv1i16rz = 2914,
- FCMLTv1i32rz = 2915,
- FCMLTv1i64rz = 2916,
- FCMLTv2i32rz = 2917,
- FCMLTv2i64rz = 2918,
- FCMLTv4i16rz = 2919,
- FCMLTv4i32rz = 2920,
- FCMLTv8i16rz = 2921,
- FCMNE_PPzZ0_D = 2922,
- FCMNE_PPzZ0_H = 2923,
- FCMNE_PPzZ0_S = 2924,
- FCMNE_PPzZZ_D = 2925,
- FCMNE_PPzZZ_H = 2926,
- FCMNE_PPzZZ_S = 2927,
- FCMPDri = 2928,
- FCMPDrr = 2929,
- FCMPEDri = 2930,
- FCMPEDrr = 2931,
- FCMPEHri = 2932,
- FCMPEHrr = 2933,
- FCMPESri = 2934,
- FCMPESrr = 2935,
- FCMPHri = 2936,
- FCMPHrr = 2937,
- FCMPSri = 2938,
- FCMPSrr = 2939,
- FCMUO_PPzZZ_D = 2940,
- FCMUO_PPzZZ_H = 2941,
- FCMUO_PPzZZ_S = 2942,
- FCPY_ZPmI_D = 2943,
- FCPY_ZPmI_H = 2944,
- FCPY_ZPmI_S = 2945,
- FCSELDrrr = 2946,
- FCSELHrrr = 2947,
- FCSELSrrr = 2948,
- FCVTASDHr = 2949,
- FCVTASDSr = 2950,
- FCVTASSDr = 2951,
- FCVTASSHr = 2952,
- FCVTASUWDr = 2953,
- FCVTASUWHr = 2954,
- FCVTASUWSr = 2955,
- FCVTASUXDr = 2956,
- FCVTASUXHr = 2957,
- FCVTASUXSr = 2958,
- FCVTASv1f16 = 2959,
- FCVTASv1i32 = 2960,
- FCVTASv1i64 = 2961,
- FCVTASv2f32 = 2962,
- FCVTASv2f64 = 2963,
- FCVTASv4f16 = 2964,
- FCVTASv4f32 = 2965,
- FCVTASv8f16 = 2966,
- FCVTAUDHr = 2967,
- FCVTAUDSr = 2968,
- FCVTAUSDr = 2969,
- FCVTAUSHr = 2970,
- FCVTAUUWDr = 2971,
- FCVTAUUWHr = 2972,
- FCVTAUUWSr = 2973,
- FCVTAUUXDr = 2974,
- FCVTAUUXHr = 2975,
- FCVTAUUXSr = 2976,
- FCVTAUv1f16 = 2977,
- FCVTAUv1i32 = 2978,
- FCVTAUv1i64 = 2979,
- FCVTAUv2f32 = 2980,
- FCVTAUv2f64 = 2981,
- FCVTAUv4f16 = 2982,
- FCVTAUv4f32 = 2983,
- FCVTAUv8f16 = 2984,
- FCVTDHr = 2985,
- FCVTDSr = 2986,
- FCVTHDr = 2987,
- FCVTHSr = 2988,
- FCVTLT_ZPmZ_HtoS = 2989,
- FCVTLT_ZPmZ_StoD = 2990,
- FCVTLT_ZPzZ_HtoS = 2991,
- FCVTLT_ZPzZ_StoD = 2992,
- FCVTL_2ZZ_H_S = 2993,
- FCVTLv2i32 = 2994,
- FCVTLv4i16 = 2995,
- FCVTLv4i32 = 2996,
- FCVTLv8i16 = 2997,
- FCVTMSDHr = 2998,
- FCVTMSDSr = 2999,
- FCVTMSSDr = 3000,
- FCVTMSSHr = 3001,
- FCVTMSUWDr = 3002,
- FCVTMSUWHr = 3003,
- FCVTMSUWSr = 3004,
- FCVTMSUXDr = 3005,
- FCVTMSUXHr = 3006,
- FCVTMSUXSr = 3007,
- FCVTMSv1f16 = 3008,
- FCVTMSv1i32 = 3009,
- FCVTMSv1i64 = 3010,
- FCVTMSv2f32 = 3011,
- FCVTMSv2f64 = 3012,
- FCVTMSv4f16 = 3013,
- FCVTMSv4f32 = 3014,
- FCVTMSv8f16 = 3015,
- FCVTMUDHr = 3016,
- FCVTMUDSr = 3017,
- FCVTMUSDr = 3018,
- FCVTMUSHr = 3019,
- FCVTMUUWDr = 3020,
- FCVTMUUWHr = 3021,
- FCVTMUUWSr = 3022,
- FCVTMUUXDr = 3023,
- FCVTMUUXHr = 3024,
- FCVTMUUXSr = 3025,
- FCVTMUv1f16 = 3026,
- FCVTMUv1i32 = 3027,
- FCVTMUv1i64 = 3028,
- FCVTMUv2f32 = 3029,
- FCVTMUv2f64 = 3030,
- FCVTMUv4f16 = 3031,
- FCVTMUv4f32 = 3032,
- FCVTMUv8f16 = 3033,
- FCVTNB_Z2Z_StoB = 3034,
- FCVTNSDHr = 3035,
- FCVTNSDSr = 3036,
- FCVTNSSDr = 3037,
- FCVTNSSHr = 3038,
- FCVTNSUWDr = 3039,
- FCVTNSUWHr = 3040,
- FCVTNSUWSr = 3041,
- FCVTNSUXDr = 3042,
- FCVTNSUXHr = 3043,
- FCVTNSUXSr = 3044,
- FCVTNSv1f16 = 3045,
- FCVTNSv1i32 = 3046,
- FCVTNSv1i64 = 3047,
- FCVTNSv2f32 = 3048,
- FCVTNSv2f64 = 3049,
- FCVTNSv4f16 = 3050,
- FCVTNSv4f32 = 3051,
- FCVTNSv8f16 = 3052,
- FCVTNT_Z2Z_StoB = 3053,
- FCVTNT_ZPmZ_DtoS = 3054,
- FCVTNT_ZPmZ_StoH = 3055,
- FCVTNT_ZPzZ_DtoS = 3056,
- FCVTNT_ZPzZ_StoH = 3057,
- FCVTNUDHr = 3058,
- FCVTNUDSr = 3059,
- FCVTNUSDr = 3060,
- FCVTNUSHr = 3061,
- FCVTNUUWDr = 3062,
- FCVTNUUWHr = 3063,
- FCVTNUUWSr = 3064,
- FCVTNUUXDr = 3065,
- FCVTNUUXHr = 3066,
- FCVTNUUXSr = 3067,
- FCVTNUv1f16 = 3068,
- FCVTNUv1i32 = 3069,
- FCVTNUv1i64 = 3070,
- FCVTNUv2f32 = 3071,
- FCVTNUv2f64 = 3072,
- FCVTNUv4f16 = 3073,
- FCVTNUv4f32 = 3074,
- FCVTNUv8f16 = 3075,
- FCVTN_F16v16f8 = 3076,
- FCVTN_F16v8f8 = 3077,
- FCVTN_F322v16f8 = 3078,
- FCVTN_F32v8f8 = 3079,
- FCVTN_Z2Z_HtoB = 3080,
- FCVTN_Z2Z_StoH = 3081,
- FCVTN_Z4Z_StoB = 3082,
- FCVTNv2i32 = 3083,
- FCVTNv4i16 = 3084,
- FCVTNv4i32 = 3085,
- FCVTNv8i16 = 3086,
- FCVTPSDHr = 3087,
- FCVTPSDSr = 3088,
- FCVTPSSDr = 3089,
- FCVTPSSHr = 3090,
- FCVTPSUWDr = 3091,
- FCVTPSUWHr = 3092,
- FCVTPSUWSr = 3093,
- FCVTPSUXDr = 3094,
- FCVTPSUXHr = 3095,
- FCVTPSUXSr = 3096,
- FCVTPSv1f16 = 3097,
- FCVTPSv1i32 = 3098,
- FCVTPSv1i64 = 3099,
- FCVTPSv2f32 = 3100,
- FCVTPSv2f64 = 3101,
- FCVTPSv4f16 = 3102,
- FCVTPSv4f32 = 3103,
- FCVTPSv8f16 = 3104,
- FCVTPUDHr = 3105,
- FCVTPUDSr = 3106,
- FCVTPUSDr = 3107,
- FCVTPUSHr = 3108,
- FCVTPUUWDr = 3109,
- FCVTPUUWHr = 3110,
- FCVTPUUWSr = 3111,
- FCVTPUUXDr = 3112,
- FCVTPUUXHr = 3113,
- FCVTPUUXSr = 3114,
- FCVTPUv1f16 = 3115,
- FCVTPUv1i32 = 3116,
- FCVTPUv1i64 = 3117,
- FCVTPUv2f32 = 3118,
- FCVTPUv2f64 = 3119,
- FCVTPUv4f16 = 3120,
- FCVTPUv4f32 = 3121,
- FCVTPUv8f16 = 3122,
- FCVTSDr = 3123,
- FCVTSHr = 3124,
- FCVTXNT_ZPmZ_DtoS = 3125,
- FCVTXNT_ZPzZ = 3126,
- FCVTXNv1i64 = 3127,
- FCVTXNv2f32 = 3128,
- FCVTXNv4f32 = 3129,
- FCVTX_ZPmZ_DtoS = 3130,
- FCVTX_ZPzZ_DtoS = 3131,
- FCVTZSDHr = 3132,
- FCVTZSDSr = 3133,
- FCVTZSSDr = 3134,
- FCVTZSSHr = 3135,
- FCVTZSSWDri = 3136,
- FCVTZSSWHri = 3137,
- FCVTZSSWSri = 3138,
- FCVTZSSXDri = 3139,
- FCVTZSSXHri = 3140,
- FCVTZSSXSri = 3141,
- FCVTZSUWDr = 3142,
- FCVTZSUWHr = 3143,
- FCVTZSUWSr = 3144,
- FCVTZSUXDr = 3145,
- FCVTZSUXHr = 3146,
- FCVTZSUXSr = 3147,
- FCVTZS_2Z2Z_StoS = 3148,
- FCVTZS_4Z4Z_StoS = 3149,
- FCVTZS_ZPmZ_DtoD = 3150,
- FCVTZS_ZPmZ_DtoS = 3151,
- FCVTZS_ZPmZ_HtoD = 3152,
- FCVTZS_ZPmZ_HtoH = 3153,
- FCVTZS_ZPmZ_HtoS = 3154,
- FCVTZS_ZPmZ_StoD = 3155,
- FCVTZS_ZPmZ_StoS = 3156,
- FCVTZS_ZPzZ_DtoD = 3157,
- FCVTZS_ZPzZ_DtoS = 3158,
- FCVTZS_ZPzZ_HtoD = 3159,
- FCVTZS_ZPzZ_HtoH = 3160,
- FCVTZS_ZPzZ_HtoS = 3161,
- FCVTZS_ZPzZ_StoD = 3162,
- FCVTZS_ZPzZ_StoS = 3163,
- FCVTZSd = 3164,
- FCVTZSh = 3165,
- FCVTZSs = 3166,
- FCVTZSv1f16 = 3167,
- FCVTZSv1i32 = 3168,
- FCVTZSv1i64 = 3169,
- FCVTZSv2f32 = 3170,
- FCVTZSv2f64 = 3171,
- FCVTZSv2i32_shift = 3172,
- FCVTZSv2i64_shift = 3173,
- FCVTZSv4f16 = 3174,
- FCVTZSv4f32 = 3175,
- FCVTZSv4i16_shift = 3176,
- FCVTZSv4i32_shift = 3177,
- FCVTZSv8f16 = 3178,
- FCVTZSv8i16_shift = 3179,
- FCVTZUDHr = 3180,
- FCVTZUDSr = 3181,
- FCVTZUSDr = 3182,
- FCVTZUSHr = 3183,
- FCVTZUSWDri = 3184,
- FCVTZUSWHri = 3185,
- FCVTZUSWSri = 3186,
- FCVTZUSXDri = 3187,
- FCVTZUSXHri = 3188,
- FCVTZUSXSri = 3189,
- FCVTZUUWDr = 3190,
- FCVTZUUWHr = 3191,
- FCVTZUUWSr = 3192,
- FCVTZUUXDr = 3193,
- FCVTZUUXHr = 3194,
- FCVTZUUXSr = 3195,
- FCVTZU_2Z2Z_StoS = 3196,
- FCVTZU_4Z4Z_StoS = 3197,
- FCVTZU_ZPmZ_DtoD = 3198,
- FCVTZU_ZPmZ_DtoS = 3199,
- FCVTZU_ZPmZ_HtoD = 3200,
- FCVTZU_ZPmZ_HtoH = 3201,
- FCVTZU_ZPmZ_HtoS = 3202,
- FCVTZU_ZPmZ_StoD = 3203,
- FCVTZU_ZPmZ_StoS = 3204,
- FCVTZU_ZPzZ_DtoD = 3205,
- FCVTZU_ZPzZ_DtoS = 3206,
- FCVTZU_ZPzZ_HtoD = 3207,
- FCVTZU_ZPzZ_HtoH = 3208,
- FCVTZU_ZPzZ_HtoS = 3209,
- FCVTZU_ZPzZ_StoD = 3210,
- FCVTZU_ZPzZ_StoS = 3211,
- FCVTZUd = 3212,
- FCVTZUh = 3213,
- FCVTZUs = 3214,
- FCVTZUv1f16 = 3215,
- FCVTZUv1i32 = 3216,
- FCVTZUv1i64 = 3217,
- FCVTZUv2f32 = 3218,
- FCVTZUv2f64 = 3219,
- FCVTZUv2i32_shift = 3220,
- FCVTZUv2i64_shift = 3221,
- FCVTZUv4f16 = 3222,
- FCVTZUv4f32 = 3223,
- FCVTZUv4i16_shift = 3224,
- FCVTZUv4i32_shift = 3225,
- FCVTZUv8f16 = 3226,
- FCVTZUv8i16_shift = 3227,
- FCVT_2ZZ_H_S = 3228,
- FCVT_Z2Z_HtoB = 3229,
- FCVT_Z2Z_StoH = 3230,
- FCVT_Z4Z_StoB = 3231,
- FCVT_ZPmZ_DtoH = 3232,
- FCVT_ZPmZ_DtoS = 3233,
- FCVT_ZPmZ_HtoD = 3234,
- FCVT_ZPmZ_HtoS = 3235,
- FCVT_ZPmZ_StoD = 3236,
- FCVT_ZPmZ_StoH = 3237,
- FCVT_ZPzZ_DtoH = 3238,
- FCVT_ZPzZ_DtoS = 3239,
- FCVT_ZPzZ_HtoD = 3240,
- FCVT_ZPzZ_HtoS = 3241,
- FCVT_ZPzZ_StoD = 3242,
- FCVT_ZPzZ_StoH = 3243,
- FDIVDrr = 3244,
- FDIVHrr = 3245,
- FDIVR_ZPmZ_D = 3246,
- FDIVR_ZPmZ_H = 3247,
- FDIVR_ZPmZ_S = 3248,
- FDIVSrr = 3249,
- FDIV_ZPmZ_D = 3250,
- FDIV_ZPmZ_H = 3251,
- FDIV_ZPmZ_S = 3252,
- FDIVv2f32 = 3253,
- FDIVv2f64 = 3254,
- FDIVv4f16 = 3255,
- FDIVv4f32 = 3256,
- FDIVv8f16 = 3257,
- FDOT_VG2_M2Z2Z_BtoH = 3258,
- FDOT_VG2_M2Z2Z_BtoS = 3259,
- FDOT_VG2_M2Z2Z_HtoS = 3260,
- FDOT_VG2_M2ZZI_BtoH = 3261,
- FDOT_VG2_M2ZZI_BtoS = 3262,
- FDOT_VG2_M2ZZI_HtoS = 3263,
- FDOT_VG2_M2ZZ_BtoH = 3264,
- FDOT_VG2_M2ZZ_BtoS = 3265,
- FDOT_VG2_M2ZZ_HtoS = 3266,
- FDOT_VG4_M4Z4Z_BtoH = 3267,
- FDOT_VG4_M4Z4Z_BtoS = 3268,
- FDOT_VG4_M4Z4Z_HtoS = 3269,
- FDOT_VG4_M4ZZI_BtoH = 3270,
- FDOT_VG4_M4ZZI_BtoS = 3271,
- FDOT_VG4_M4ZZI_HtoS = 3272,
- FDOT_VG4_M4ZZ_BtoH = 3273,
- FDOT_VG4_M4ZZ_BtoS = 3274,
- FDOT_VG4_M4ZZ_HtoS = 3275,
- FDOT_ZZZI_BtoH = 3276,
- FDOT_ZZZI_BtoS = 3277,
- FDOT_ZZZI_S = 3278,
- FDOT_ZZZ_BtoH = 3279,
- FDOT_ZZZ_BtoS = 3280,
- FDOT_ZZZ_S = 3281,
- FDOTlanev2f32 = 3282,
- FDOTlanev4f16 = 3283,
- FDOTlanev4f32 = 3284,
- FDOTlanev8f16 = 3285,
- FDOTv2f32 = 3286,
- FDOTv4f16 = 3287,
- FDOTv4f32 = 3288,
- FDOTv8f16 = 3289,
- FDUP_ZI_D = 3290,
- FDUP_ZI_H = 3291,
- FDUP_ZI_S = 3292,
- FEXPA_ZZ_D = 3293,
- FEXPA_ZZ_H = 3294,
- FEXPA_ZZ_S = 3295,
- FIRSTP_XPP_B = 3296,
- FIRSTP_XPP_D = 3297,
- FIRSTP_XPP_H = 3298,
- FIRSTP_XPP_S = 3299,
- FJCVTZS = 3300,
- FLOGB_ZPmZ_D = 3301,
- FLOGB_ZPmZ_H = 3302,
- FLOGB_ZPmZ_S = 3303,
- FLOGB_ZPzZ_D = 3304,
- FLOGB_ZPzZ_H = 3305,
- FLOGB_ZPzZ_S = 3306,
- FMADDDrrr = 3307,
- FMADDHrrr = 3308,
- FMADDSrrr = 3309,
- FMAD_ZPmZZ_D = 3310,
- FMAD_ZPmZZ_H = 3311,
- FMAD_ZPmZZ_S = 3312,
- FMAXDrr = 3313,
- FMAXHrr = 3314,
- FMAXNMDrr = 3315,
- FMAXNMHrr = 3316,
- FMAXNMP_ZPmZZ_D = 3317,
- FMAXNMP_ZPmZZ_H = 3318,
- FMAXNMP_ZPmZZ_S = 3319,
- FMAXNMPv2f32 = 3320,
- FMAXNMPv2f64 = 3321,
- FMAXNMPv2i16p = 3322,
- FMAXNMPv2i32p = 3323,
- FMAXNMPv2i64p = 3324,
- FMAXNMPv4f16 = 3325,
- FMAXNMPv4f32 = 3326,
- FMAXNMPv8f16 = 3327,
- FMAXNMQV_D = 3328,
- FMAXNMQV_H = 3329,
- FMAXNMQV_S = 3330,
- FMAXNMSrr = 3331,
- FMAXNMV_VPZ_D = 3332,
- FMAXNMV_VPZ_H = 3333,
- FMAXNMV_VPZ_S = 3334,
- FMAXNMVv4i16v = 3335,
- FMAXNMVv4i32v = 3336,
- FMAXNMVv8i16v = 3337,
- FMAXNM_VG2_2Z2Z_D = 3338,
- FMAXNM_VG2_2Z2Z_H = 3339,
- FMAXNM_VG2_2Z2Z_S = 3340,
- FMAXNM_VG2_2ZZ_D = 3341,
- FMAXNM_VG2_2ZZ_H = 3342,
- FMAXNM_VG2_2ZZ_S = 3343,
- FMAXNM_VG4_4Z4Z_D = 3344,
- FMAXNM_VG4_4Z4Z_H = 3345,
- FMAXNM_VG4_4Z4Z_S = 3346,
- FMAXNM_VG4_4ZZ_D = 3347,
- FMAXNM_VG4_4ZZ_H = 3348,
- FMAXNM_VG4_4ZZ_S = 3349,
- FMAXNM_ZPmI_D = 3350,
- FMAXNM_ZPmI_H = 3351,
- FMAXNM_ZPmI_S = 3352,
- FMAXNM_ZPmZ_D = 3353,
- FMAXNM_ZPmZ_H = 3354,
- FMAXNM_ZPmZ_S = 3355,
- FMAXNMv2f32 = 3356,
- FMAXNMv2f64 = 3357,
- FMAXNMv4f16 = 3358,
- FMAXNMv4f32 = 3359,
- FMAXNMv8f16 = 3360,
- FMAXP_ZPmZZ_D = 3361,
- FMAXP_ZPmZZ_H = 3362,
- FMAXP_ZPmZZ_S = 3363,
- FMAXPv2f32 = 3364,
- FMAXPv2f64 = 3365,
- FMAXPv2i16p = 3366,
- FMAXPv2i32p = 3367,
- FMAXPv2i64p = 3368,
- FMAXPv4f16 = 3369,
- FMAXPv4f32 = 3370,
- FMAXPv8f16 = 3371,
- FMAXQV_D = 3372,
- FMAXQV_H = 3373,
- FMAXQV_S = 3374,
- FMAXSrr = 3375,
- FMAXV_VPZ_D = 3376,
- FMAXV_VPZ_H = 3377,
- FMAXV_VPZ_S = 3378,
- FMAXVv4i16v = 3379,
- FMAXVv4i32v = 3380,
- FMAXVv8i16v = 3381,
- FMAX_VG2_2Z2Z_D = 3382,
- FMAX_VG2_2Z2Z_H = 3383,
- FMAX_VG2_2Z2Z_S = 3384,
- FMAX_VG2_2ZZ_D = 3385,
- FMAX_VG2_2ZZ_H = 3386,
- FMAX_VG2_2ZZ_S = 3387,
- FMAX_VG4_4Z4Z_D = 3388,
- FMAX_VG4_4Z4Z_H = 3389,
- FMAX_VG4_4Z4Z_S = 3390,
- FMAX_VG4_4ZZ_D = 3391,
- FMAX_VG4_4ZZ_H = 3392,
- FMAX_VG4_4ZZ_S = 3393,
- FMAX_ZPmI_D = 3394,
- FMAX_ZPmI_H = 3395,
- FMAX_ZPmI_S = 3396,
- FMAX_ZPmZ_D = 3397,
- FMAX_ZPmZ_H = 3398,
- FMAX_ZPmZ_S = 3399,
- FMAXv2f32 = 3400,
- FMAXv2f64 = 3401,
- FMAXv4f16 = 3402,
- FMAXv4f32 = 3403,
- FMAXv8f16 = 3404,
- FMINDrr = 3405,
- FMINHrr = 3406,
- FMINNMDrr = 3407,
- FMINNMHrr = 3408,
- FMINNMP_ZPmZZ_D = 3409,
- FMINNMP_ZPmZZ_H = 3410,
- FMINNMP_ZPmZZ_S = 3411,
- FMINNMPv2f32 = 3412,
- FMINNMPv2f64 = 3413,
- FMINNMPv2i16p = 3414,
- FMINNMPv2i32p = 3415,
- FMINNMPv2i64p = 3416,
- FMINNMPv4f16 = 3417,
- FMINNMPv4f32 = 3418,
- FMINNMPv8f16 = 3419,
- FMINNMQV_D = 3420,
- FMINNMQV_H = 3421,
- FMINNMQV_S = 3422,
- FMINNMSrr = 3423,
- FMINNMV_VPZ_D = 3424,
- FMINNMV_VPZ_H = 3425,
- FMINNMV_VPZ_S = 3426,
- FMINNMVv4i16v = 3427,
- FMINNMVv4i32v = 3428,
- FMINNMVv8i16v = 3429,
- FMINNM_VG2_2Z2Z_D = 3430,
- FMINNM_VG2_2Z2Z_H = 3431,
- FMINNM_VG2_2Z2Z_S = 3432,
- FMINNM_VG2_2ZZ_D = 3433,
- FMINNM_VG2_2ZZ_H = 3434,
- FMINNM_VG2_2ZZ_S = 3435,
- FMINNM_VG4_4Z4Z_D = 3436,
- FMINNM_VG4_4Z4Z_H = 3437,
- FMINNM_VG4_4Z4Z_S = 3438,
- FMINNM_VG4_4ZZ_D = 3439,
- FMINNM_VG4_4ZZ_H = 3440,
- FMINNM_VG4_4ZZ_S = 3441,
- FMINNM_ZPmI_D = 3442,
- FMINNM_ZPmI_H = 3443,
- FMINNM_ZPmI_S = 3444,
- FMINNM_ZPmZ_D = 3445,
- FMINNM_ZPmZ_H = 3446,
- FMINNM_ZPmZ_S = 3447,
- FMINNMv2f32 = 3448,
- FMINNMv2f64 = 3449,
- FMINNMv4f16 = 3450,
- FMINNMv4f32 = 3451,
- FMINNMv8f16 = 3452,
- FMINP_ZPmZZ_D = 3453,
- FMINP_ZPmZZ_H = 3454,
- FMINP_ZPmZZ_S = 3455,
- FMINPv2f32 = 3456,
- FMINPv2f64 = 3457,
- FMINPv2i16p = 3458,
- FMINPv2i32p = 3459,
- FMINPv2i64p = 3460,
- FMINPv4f16 = 3461,
- FMINPv4f32 = 3462,
- FMINPv8f16 = 3463,
- FMINQV_D = 3464,
- FMINQV_H = 3465,
- FMINQV_S = 3466,
- FMINSrr = 3467,
- FMINV_VPZ_D = 3468,
- FMINV_VPZ_H = 3469,
- FMINV_VPZ_S = 3470,
- FMINVv4i16v = 3471,
- FMINVv4i32v = 3472,
- FMINVv8i16v = 3473,
- FMIN_VG2_2Z2Z_D = 3474,
- FMIN_VG2_2Z2Z_H = 3475,
- FMIN_VG2_2Z2Z_S = 3476,
- FMIN_VG2_2ZZ_D = 3477,
- FMIN_VG2_2ZZ_H = 3478,
- FMIN_VG2_2ZZ_S = 3479,
- FMIN_VG4_4Z4Z_D = 3480,
- FMIN_VG4_4Z4Z_H = 3481,
- FMIN_VG4_4Z4Z_S = 3482,
- FMIN_VG4_4ZZ_D = 3483,
- FMIN_VG4_4ZZ_H = 3484,
- FMIN_VG4_4ZZ_S = 3485,
- FMIN_ZPmI_D = 3486,
- FMIN_ZPmI_H = 3487,
- FMIN_ZPmI_S = 3488,
- FMIN_ZPmZ_D = 3489,
- FMIN_ZPmZ_H = 3490,
- FMIN_ZPmZ_S = 3491,
- FMINv2f32 = 3492,
- FMINv2f64 = 3493,
- FMINv4f16 = 3494,
- FMINv4f32 = 3495,
- FMINv8f16 = 3496,
- FMLAL2lanev4f16 = 3497,
- FMLAL2lanev8f16 = 3498,
- FMLAL2v4f16 = 3499,
- FMLAL2v8f16 = 3500,
- FMLALB_ZZZ = 3501,
- FMLALB_ZZZI = 3502,
- FMLALB_ZZZI_SHH = 3503,
- FMLALB_ZZZ_SHH = 3504,
- FMLALBlanev8f16 = 3505,
- FMLALBv8f16 = 3506,
- FMLALLBB_ZZZ = 3507,
- FMLALLBB_ZZZI = 3508,
- FMLALLBBlanev4f32 = 3509,
- FMLALLBBv4f32 = 3510,
- FMLALLBT_ZZZ = 3511,
- FMLALLBT_ZZZI = 3512,
- FMLALLBTlanev4f32 = 3513,
- FMLALLBTv4f32 = 3514,
- FMLALLTB_ZZZ = 3515,
- FMLALLTB_ZZZI = 3516,
- FMLALLTBlanev4f32 = 3517,
- FMLALLTBv4f32 = 3518,
- FMLALLTT_ZZZ = 3519,
- FMLALLTT_ZZZI = 3520,
- FMLALLTTlanev4f32 = 3521,
- FMLALLTTv4f32 = 3522,
- FMLALL_MZZI_BtoS = 3523,
- FMLALL_MZZ_BtoS = 3524,
- FMLALL_VG2_M2Z2Z_BtoS = 3525,
- FMLALL_VG2_M2ZZI_BtoS = 3526,
- FMLALL_VG2_M2ZZ_BtoS = 3527,
- FMLALL_VG4_M4Z4Z_BtoS = 3528,
- FMLALL_VG4_M4ZZI_BtoS = 3529,
- FMLALL_VG4_M4ZZ_BtoS = 3530,
- FMLALT_ZZZ = 3531,
- FMLALT_ZZZI = 3532,
- FMLALT_ZZZI_SHH = 3533,
- FMLALT_ZZZ_SHH = 3534,
- FMLALTlanev8f16 = 3535,
- FMLALTv8f16 = 3536,
- FMLAL_MZZI_BtoH = 3537,
- FMLAL_MZZI_HtoS = 3538,
- FMLAL_MZZ_HtoS = 3539,
- FMLAL_VG2_M2Z2Z_BtoH = 3540,
- FMLAL_VG2_M2Z2Z_HtoS = 3541,
- FMLAL_VG2_M2ZZI_BtoH = 3542,
- FMLAL_VG2_M2ZZI_HtoS = 3543,
- FMLAL_VG2_M2ZZ_BtoH = 3544,
- FMLAL_VG2_M2ZZ_HtoS = 3545,
- FMLAL_VG2_MZZ_BtoH = 3546,
- FMLAL_VG4_M4Z4Z_BtoH = 3547,
- FMLAL_VG4_M4Z4Z_HtoS = 3548,
- FMLAL_VG4_M4ZZI_BtoH = 3549,
- FMLAL_VG4_M4ZZI_HtoS = 3550,
- FMLAL_VG4_M4ZZ_BtoH = 3551,
- FMLAL_VG4_M4ZZ_HtoS = 3552,
- FMLALlanev4f16 = 3553,
- FMLALlanev8f16 = 3554,
- FMLALv4f16 = 3555,
- FMLALv8f16 = 3556,
- FMLA_VG2_M2Z2Z_D = 3557,
- FMLA_VG2_M2Z2Z_H = 3558,
- FMLA_VG2_M2Z2Z_S = 3559,
- FMLA_VG2_M2ZZI_D = 3560,
- FMLA_VG2_M2ZZI_H = 3561,
- FMLA_VG2_M2ZZI_S = 3562,
- FMLA_VG2_M2ZZ_D = 3563,
- FMLA_VG2_M2ZZ_H = 3564,
- FMLA_VG2_M2ZZ_S = 3565,
- FMLA_VG4_M4Z4Z_D = 3566,
- FMLA_VG4_M4Z4Z_H = 3567,
- FMLA_VG4_M4Z4Z_S = 3568,
- FMLA_VG4_M4ZZI_D = 3569,
- FMLA_VG4_M4ZZI_H = 3570,
- FMLA_VG4_M4ZZI_S = 3571,
- FMLA_VG4_M4ZZ_D = 3572,
- FMLA_VG4_M4ZZ_H = 3573,
- FMLA_VG4_M4ZZ_S = 3574,
- FMLA_ZPmZZ_D = 3575,
- FMLA_ZPmZZ_H = 3576,
- FMLA_ZPmZZ_S = 3577,
- FMLA_ZZZI_D = 3578,
- FMLA_ZZZI_H = 3579,
- FMLA_ZZZI_S = 3580,
- FMLAv1i16_indexed = 3581,
- FMLAv1i32_indexed = 3582,
- FMLAv1i64_indexed = 3583,
- FMLAv2f32 = 3584,
- FMLAv2f64 = 3585,
- FMLAv2i32_indexed = 3586,
- FMLAv2i64_indexed = 3587,
- FMLAv4f16 = 3588,
- FMLAv4f32 = 3589,
- FMLAv4i16_indexed = 3590,
- FMLAv4i32_indexed = 3591,
- FMLAv8f16 = 3592,
- FMLAv8i16_indexed = 3593,
- FMLLA_ZZZ_HtoS = 3594,
- FMLSL2lanev4f16 = 3595,
- FMLSL2lanev8f16 = 3596,
- FMLSL2v4f16 = 3597,
- FMLSL2v8f16 = 3598,
- FMLSLB_ZZZI_SHH = 3599,
- FMLSLB_ZZZ_SHH = 3600,
- FMLSLT_ZZZI_SHH = 3601,
- FMLSLT_ZZZ_SHH = 3602,
- FMLSL_MZZI_HtoS = 3603,
- FMLSL_MZZ_HtoS = 3604,
- FMLSL_VG2_M2Z2Z_HtoS = 3605,
- FMLSL_VG2_M2ZZI_HtoS = 3606,
- FMLSL_VG2_M2ZZ_HtoS = 3607,
- FMLSL_VG4_M4Z4Z_HtoS = 3608,
- FMLSL_VG4_M4ZZI_HtoS = 3609,
- FMLSL_VG4_M4ZZ_HtoS = 3610,
- FMLSLlanev4f16 = 3611,
- FMLSLlanev8f16 = 3612,
- FMLSLv4f16 = 3613,
- FMLSLv8f16 = 3614,
- FMLS_VG2_M2Z2Z_D = 3615,
- FMLS_VG2_M2Z2Z_H = 3616,
- FMLS_VG2_M2Z2Z_S = 3617,
- FMLS_VG2_M2ZZI_D = 3618,
- FMLS_VG2_M2ZZI_H = 3619,
- FMLS_VG2_M2ZZI_S = 3620,
- FMLS_VG2_M2ZZ_D = 3621,
- FMLS_VG2_M2ZZ_H = 3622,
- FMLS_VG2_M2ZZ_S = 3623,
- FMLS_VG4_M4Z4Z_D = 3624,
- FMLS_VG4_M4Z4Z_H = 3625,
- FMLS_VG4_M4Z4Z_S = 3626,
- FMLS_VG4_M4ZZI_D = 3627,
- FMLS_VG4_M4ZZI_H = 3628,
- FMLS_VG4_M4ZZI_S = 3629,
- FMLS_VG4_M4ZZ_D = 3630,
- FMLS_VG4_M4ZZ_H = 3631,
- FMLS_VG4_M4ZZ_S = 3632,
- FMLS_ZPmZZ_D = 3633,
- FMLS_ZPmZZ_H = 3634,
- FMLS_ZPmZZ_S = 3635,
- FMLS_ZZZI_D = 3636,
- FMLS_ZZZI_H = 3637,
- FMLS_ZZZI_S = 3638,
- FMLSv1i16_indexed = 3639,
- FMLSv1i32_indexed = 3640,
- FMLSv1i64_indexed = 3641,
- FMLSv2f32 = 3642,
- FMLSv2f64 = 3643,
- FMLSv2i32_indexed = 3644,
- FMLSv2i64_indexed = 3645,
- FMLSv4f16 = 3646,
- FMLSv4f32 = 3647,
- FMLSv4i16_indexed = 3648,
- FMLSv4i32_indexed = 3649,
- FMLSv8f16 = 3650,
- FMLSv8i16_indexed = 3651,
- FMMLA_ZZZ_BtoH = 3652,
- FMMLA_ZZZ_BtoS = 3653,
- FMMLA_ZZZ_D = 3654,
- FMMLA_ZZZ_S = 3655,
- FMMLAv4f32 = 3656,
- FMMLAv8f16 = 3657,
- FMOP4A_M2Z2Z_BtoH = 3658,
- FMOP4A_M2Z2Z_BtoS = 3659,
- FMOP4A_M2Z2Z_D = 3660,
- FMOP4A_M2Z2Z_H = 3661,
- FMOP4A_M2Z2Z_HtoS = 3662,
- FMOP4A_M2Z2Z_S = 3663,
- FMOP4A_M2ZZ_BtoH = 3664,
- FMOP4A_M2ZZ_BtoS = 3665,
- FMOP4A_M2ZZ_D = 3666,
- FMOP4A_M2ZZ_H = 3667,
- FMOP4A_M2ZZ_HtoS = 3668,
- FMOP4A_M2ZZ_S = 3669,
- FMOP4A_MZ2Z_BtoH = 3670,
- FMOP4A_MZ2Z_BtoS = 3671,
- FMOP4A_MZ2Z_D = 3672,
- FMOP4A_MZ2Z_H = 3673,
- FMOP4A_MZ2Z_HtoS = 3674,
- FMOP4A_MZ2Z_S = 3675,
- FMOP4A_MZZ_BtoH = 3676,
- FMOP4A_MZZ_BtoS = 3677,
- FMOP4A_MZZ_D = 3678,
- FMOP4A_MZZ_H = 3679,
- FMOP4A_MZZ_HtoS = 3680,
- FMOP4A_MZZ_S = 3681,
- FMOP4S_M2Z2Z_D = 3682,
- FMOP4S_M2Z2Z_H = 3683,
- FMOP4S_M2Z2Z_HtoS = 3684,
- FMOP4S_M2Z2Z_S = 3685,
- FMOP4S_M2ZZ_D = 3686,
- FMOP4S_M2ZZ_H = 3687,
- FMOP4S_M2ZZ_HtoS = 3688,
- FMOP4S_M2ZZ_S = 3689,
- FMOP4S_MZ2Z_D = 3690,
- FMOP4S_MZ2Z_H = 3691,
- FMOP4S_MZ2Z_HtoS = 3692,
- FMOP4S_MZ2Z_S = 3693,
- FMOP4S_MZZ_D = 3694,
- FMOP4S_MZZ_H = 3695,
- FMOP4S_MZZ_HtoS = 3696,
- FMOP4S_MZZ_S = 3697,
- FMOPAL_MPPZZ = 3698,
- FMOPA_MPPZZ_BtoH = 3699,
- FMOPA_MPPZZ_BtoS = 3700,
- FMOPA_MPPZZ_D = 3701,
- FMOPA_MPPZZ_H = 3702,
- FMOPA_MPPZZ_S = 3703,
- FMOPSL_MPPZZ = 3704,
- FMOPS_MPPZZ_D = 3705,
- FMOPS_MPPZZ_H = 3706,
- FMOPS_MPPZZ_S = 3707,
- FMOVDXHighr = 3708,
- FMOVDXr = 3709,
- FMOVDi = 3710,
- FMOVDr = 3711,
- FMOVHWr = 3712,
- FMOVHXr = 3713,
- FMOVHi = 3714,
- FMOVHr = 3715,
- FMOVSWr = 3716,
- FMOVSi = 3717,
- FMOVSr = 3718,
- FMOVWHr = 3719,
- FMOVWSr = 3720,
- FMOVXDHighr = 3721,
- FMOVXDr = 3722,
- FMOVXHr = 3723,
- FMOVv2f32_ns = 3724,
- FMOVv2f64_ns = 3725,
- FMOVv4f16_ns = 3726,
- FMOVv4f32_ns = 3727,
- FMOVv8f16_ns = 3728,
- FMSB_ZPmZZ_D = 3729,
- FMSB_ZPmZZ_H = 3730,
- FMSB_ZPmZZ_S = 3731,
- FMSUBDrrr = 3732,
- FMSUBHrrr = 3733,
- FMSUBSrrr = 3734,
- FMULDrr = 3735,
- FMULHrr = 3736,
- FMULSrr = 3737,
- FMULX16 = 3738,
- FMULX32 = 3739,
- FMULX64 = 3740,
- FMULX_ZPmZ_D = 3741,
- FMULX_ZPmZ_H = 3742,
- FMULX_ZPmZ_S = 3743,
- FMULXv1i16_indexed = 3744,
- FMULXv1i32_indexed = 3745,
- FMULXv1i64_indexed = 3746,
- FMULXv2f32 = 3747,
- FMULXv2f64 = 3748,
- FMULXv2i32_indexed = 3749,
- FMULXv2i64_indexed = 3750,
- FMULXv4f16 = 3751,
- FMULXv4f32 = 3752,
- FMULXv4i16_indexed = 3753,
- FMULXv4i32_indexed = 3754,
- FMULXv8f16 = 3755,
- FMULXv8i16_indexed = 3756,
- FMUL_2Z2Z_D = 3757,
- FMUL_2Z2Z_H = 3758,
- FMUL_2Z2Z_S = 3759,
- FMUL_2ZZ_D = 3760,
- FMUL_2ZZ_H = 3761,
- FMUL_2ZZ_S = 3762,
- FMUL_4Z4Z_D = 3763,
- FMUL_4Z4Z_H = 3764,
- FMUL_4Z4Z_S = 3765,
- FMUL_4ZZ_D = 3766,
- FMUL_4ZZ_H = 3767,
- FMUL_4ZZ_S = 3768,
- FMUL_ZPmI_D = 3769,
- FMUL_ZPmI_H = 3770,
- FMUL_ZPmI_S = 3771,
- FMUL_ZPmZ_D = 3772,
- FMUL_ZPmZ_H = 3773,
- FMUL_ZPmZ_S = 3774,
- FMUL_ZZZI_D = 3775,
- FMUL_ZZZI_H = 3776,
- FMUL_ZZZI_S = 3777,
- FMUL_ZZZ_D = 3778,
- FMUL_ZZZ_H = 3779,
- FMUL_ZZZ_S = 3780,
- FMULv1i16_indexed = 3781,
- FMULv1i32_indexed = 3782,
- FMULv1i64_indexed = 3783,
- FMULv2f32 = 3784,
- FMULv2f64 = 3785,
- FMULv2i32_indexed = 3786,
- FMULv2i64_indexed = 3787,
- FMULv4f16 = 3788,
- FMULv4f32 = 3789,
- FMULv4i16_indexed = 3790,
- FMULv4i32_indexed = 3791,
- FMULv8f16 = 3792,
- FMULv8i16_indexed = 3793,
- FNEGDr = 3794,
- FNEGHr = 3795,
- FNEGSr = 3796,
- FNEG_ZPmZ_D = 3797,
- FNEG_ZPmZ_H = 3798,
- FNEG_ZPmZ_S = 3799,
- FNEG_ZPzZ_D = 3800,
- FNEG_ZPzZ_H = 3801,
- FNEG_ZPzZ_S = 3802,
- FNEGv2f32 = 3803,
- FNEGv2f64 = 3804,
- FNEGv4f16 = 3805,
- FNEGv4f32 = 3806,
- FNEGv8f16 = 3807,
- FNMADDDrrr = 3808,
- FNMADDHrrr = 3809,
- FNMADDSrrr = 3810,
- FNMAD_ZPmZZ_D = 3811,
- FNMAD_ZPmZZ_H = 3812,
- FNMAD_ZPmZZ_S = 3813,
- FNMLA_ZPmZZ_D = 3814,
- FNMLA_ZPmZZ_H = 3815,
- FNMLA_ZPmZZ_S = 3816,
- FNMLS_ZPmZZ_D = 3817,
- FNMLS_ZPmZZ_H = 3818,
- FNMLS_ZPmZZ_S = 3819,
- FNMSB_ZPmZZ_D = 3820,
- FNMSB_ZPmZZ_H = 3821,
- FNMSB_ZPmZZ_S = 3822,
- FNMSUBDrrr = 3823,
- FNMSUBHrrr = 3824,
- FNMSUBSrrr = 3825,
- FNMULDrr = 3826,
- FNMULHrr = 3827,
- FNMULSrr = 3828,
- FRECPE_ZZ_D = 3829,
- FRECPE_ZZ_H = 3830,
- FRECPE_ZZ_S = 3831,
- FRECPEv1f16 = 3832,
- FRECPEv1i32 = 3833,
- FRECPEv1i64 = 3834,
- FRECPEv2f32 = 3835,
- FRECPEv2f64 = 3836,
- FRECPEv4f16 = 3837,
- FRECPEv4f32 = 3838,
- FRECPEv8f16 = 3839,
- FRECPS16 = 3840,
- FRECPS32 = 3841,
- FRECPS64 = 3842,
- FRECPS_ZZZ_D = 3843,
- FRECPS_ZZZ_H = 3844,
- FRECPS_ZZZ_S = 3845,
- FRECPSv2f32 = 3846,
- FRECPSv2f64 = 3847,
- FRECPSv4f16 = 3848,
- FRECPSv4f32 = 3849,
- FRECPSv8f16 = 3850,
- FRECPX_ZPmZ_D = 3851,
- FRECPX_ZPmZ_H = 3852,
- FRECPX_ZPmZ_S = 3853,
- FRECPX_ZPzZ_D = 3854,
- FRECPX_ZPzZ_H = 3855,
- FRECPX_ZPzZ_S = 3856,
- FRECPXv1f16 = 3857,
- FRECPXv1i32 = 3858,
- FRECPXv1i64 = 3859,
- FRINT32XDr = 3860,
- FRINT32XSr = 3861,
- FRINT32X_ZPmZ_D = 3862,
- FRINT32X_ZPmZ_S = 3863,
- FRINT32X_ZPzZ_D = 3864,
- FRINT32X_ZPzZ_S = 3865,
- FRINT32Xv2f32 = 3866,
- FRINT32Xv2f64 = 3867,
- FRINT32Xv4f32 = 3868,
- FRINT32ZDr = 3869,
- FRINT32ZSr = 3870,
- FRINT32Z_ZPmZ_D = 3871,
- FRINT32Z_ZPmZ_S = 3872,
- FRINT32Z_ZPzZ_D = 3873,
- FRINT32Z_ZPzZ_S = 3874,
- FRINT32Zv2f32 = 3875,
- FRINT32Zv2f64 = 3876,
- FRINT32Zv4f32 = 3877,
- FRINT64XDr = 3878,
- FRINT64XSr = 3879,
- FRINT64X_ZPmZ_D = 3880,
- FRINT64X_ZPmZ_S = 3881,
- FRINT64X_ZPzZ_D = 3882,
- FRINT64X_ZPzZ_S = 3883,
- FRINT64Xv2f32 = 3884,
- FRINT64Xv2f64 = 3885,
- FRINT64Xv4f32 = 3886,
- FRINT64ZDr = 3887,
- FRINT64ZSr = 3888,
- FRINT64Z_ZPmZ_D = 3889,
- FRINT64Z_ZPmZ_S = 3890,
- FRINT64Z_ZPzZ_D = 3891,
- FRINT64Z_ZPzZ_S = 3892,
- FRINT64Zv2f32 = 3893,
- FRINT64Zv2f64 = 3894,
- FRINT64Zv4f32 = 3895,
- FRINTADr = 3896,
- FRINTAHr = 3897,
- FRINTASr = 3898,
- FRINTA_2Z2Z_S = 3899,
- FRINTA_4Z4Z_S = 3900,
- FRINTA_ZPmZ_D = 3901,
- FRINTA_ZPmZ_H = 3902,
- FRINTA_ZPmZ_S = 3903,
- FRINTA_ZPzZ_D = 3904,
- FRINTA_ZPzZ_H = 3905,
- FRINTA_ZPzZ_S = 3906,
- FRINTAv2f32 = 3907,
- FRINTAv2f64 = 3908,
- FRINTAv4f16 = 3909,
- FRINTAv4f32 = 3910,
- FRINTAv8f16 = 3911,
- FRINTIDr = 3912,
- FRINTIHr = 3913,
- FRINTISr = 3914,
- FRINTI_ZPmZ_D = 3915,
- FRINTI_ZPmZ_H = 3916,
- FRINTI_ZPmZ_S = 3917,
- FRINTI_ZPzZ_D = 3918,
- FRINTI_ZPzZ_H = 3919,
- FRINTI_ZPzZ_S = 3920,
- FRINTIv2f32 = 3921,
- FRINTIv2f64 = 3922,
- FRINTIv4f16 = 3923,
- FRINTIv4f32 = 3924,
- FRINTIv8f16 = 3925,
- FRINTMDr = 3926,
- FRINTMHr = 3927,
- FRINTMSr = 3928,
- FRINTM_2Z2Z_S = 3929,
- FRINTM_4Z4Z_S = 3930,
- FRINTM_ZPmZ_D = 3931,
- FRINTM_ZPmZ_H = 3932,
- FRINTM_ZPmZ_S = 3933,
- FRINTM_ZPzZ_D = 3934,
- FRINTM_ZPzZ_H = 3935,
- FRINTM_ZPzZ_S = 3936,
- FRINTMv2f32 = 3937,
- FRINTMv2f64 = 3938,
- FRINTMv4f16 = 3939,
- FRINTMv4f32 = 3940,
- FRINTMv8f16 = 3941,
- FRINTNDr = 3942,
- FRINTNHr = 3943,
- FRINTNSr = 3944,
- FRINTN_2Z2Z_S = 3945,
- FRINTN_4Z4Z_S = 3946,
- FRINTN_ZPmZ_D = 3947,
- FRINTN_ZPmZ_H = 3948,
- FRINTN_ZPmZ_S = 3949,
- FRINTN_ZPzZ_D = 3950,
- FRINTN_ZPzZ_H = 3951,
- FRINTN_ZPzZ_S = 3952,
- FRINTNv2f32 = 3953,
- FRINTNv2f64 = 3954,
- FRINTNv4f16 = 3955,
- FRINTNv4f32 = 3956,
- FRINTNv8f16 = 3957,
- FRINTPDr = 3958,
- FRINTPHr = 3959,
- FRINTPSr = 3960,
- FRINTP_2Z2Z_S = 3961,
- FRINTP_4Z4Z_S = 3962,
- FRINTP_ZPmZ_D = 3963,
- FRINTP_ZPmZ_H = 3964,
- FRINTP_ZPmZ_S = 3965,
- FRINTP_ZPzZ_D = 3966,
- FRINTP_ZPzZ_H = 3967,
- FRINTP_ZPzZ_S = 3968,
- FRINTPv2f32 = 3969,
- FRINTPv2f64 = 3970,
- FRINTPv4f16 = 3971,
- FRINTPv4f32 = 3972,
- FRINTPv8f16 = 3973,
- FRINTXDr = 3974,
- FRINTXHr = 3975,
- FRINTXSr = 3976,
- FRINTX_ZPmZ_D = 3977,
- FRINTX_ZPmZ_H = 3978,
- FRINTX_ZPmZ_S = 3979,
- FRINTX_ZPzZ_D = 3980,
- FRINTX_ZPzZ_H = 3981,
- FRINTX_ZPzZ_S = 3982,
- FRINTXv2f32 = 3983,
- FRINTXv2f64 = 3984,
- FRINTXv4f16 = 3985,
- FRINTXv4f32 = 3986,
- FRINTXv8f16 = 3987,
- FRINTZDr = 3988,
- FRINTZHr = 3989,
- FRINTZSr = 3990,
- FRINTZ_ZPmZ_D = 3991,
- FRINTZ_ZPmZ_H = 3992,
- FRINTZ_ZPmZ_S = 3993,
- FRINTZ_ZPzZ_D = 3994,
- FRINTZ_ZPzZ_H = 3995,
- FRINTZ_ZPzZ_S = 3996,
- FRINTZv2f32 = 3997,
- FRINTZv2f64 = 3998,
- FRINTZv4f16 = 3999,
- FRINTZv4f32 = 4000,
- FRINTZv8f16 = 4001,
- FRSQRTE_ZZ_D = 4002,
- FRSQRTE_ZZ_H = 4003,
- FRSQRTE_ZZ_S = 4004,
- FRSQRTEv1f16 = 4005,
- FRSQRTEv1i32 = 4006,
- FRSQRTEv1i64 = 4007,
- FRSQRTEv2f32 = 4008,
- FRSQRTEv2f64 = 4009,
- FRSQRTEv4f16 = 4010,
- FRSQRTEv4f32 = 4011,
- FRSQRTEv8f16 = 4012,
- FRSQRTS16 = 4013,
- FRSQRTS32 = 4014,
- FRSQRTS64 = 4015,
- FRSQRTS_ZZZ_D = 4016,
- FRSQRTS_ZZZ_H = 4017,
- FRSQRTS_ZZZ_S = 4018,
- FRSQRTSv2f32 = 4019,
- FRSQRTSv2f64 = 4020,
- FRSQRTSv4f16 = 4021,
- FRSQRTSv4f32 = 4022,
- FRSQRTSv8f16 = 4023,
- FSCALE_2Z2Z_D = 4024,
- FSCALE_2Z2Z_H = 4025,
- FSCALE_2Z2Z_S = 4026,
- FSCALE_2ZZ_D = 4027,
- FSCALE_2ZZ_H = 4028,
- FSCALE_2ZZ_S = 4029,
- FSCALE_4Z4Z_D = 4030,
- FSCALE_4Z4Z_H = 4031,
- FSCALE_4Z4Z_S = 4032,
- FSCALE_4ZZ_D = 4033,
- FSCALE_4ZZ_H = 4034,
- FSCALE_4ZZ_S = 4035,
- FSCALE_ZPmZ_D = 4036,
- FSCALE_ZPmZ_H = 4037,
- FSCALE_ZPmZ_S = 4038,
- FSCALEv2f32 = 4039,
- FSCALEv2f64 = 4040,
- FSCALEv4f16 = 4041,
- FSCALEv4f32 = 4042,
- FSCALEv8f16 = 4043,
- FSQRTDr = 4044,
- FSQRTHr = 4045,
- FSQRTSr = 4046,
- FSQRT_ZPZz_D = 4047,
- FSQRT_ZPZz_H = 4048,
- FSQRT_ZPZz_S = 4049,
- FSQRT_ZPmZ_D = 4050,
- FSQRT_ZPmZ_H = 4051,
- FSQRT_ZPmZ_S = 4052,
- FSQRTv2f32 = 4053,
- FSQRTv2f64 = 4054,
- FSQRTv4f16 = 4055,
- FSQRTv4f32 = 4056,
- FSQRTv8f16 = 4057,
- FSUBDrr = 4058,
- FSUBHrr = 4059,
- FSUBR_ZPmI_D = 4060,
- FSUBR_ZPmI_H = 4061,
- FSUBR_ZPmI_S = 4062,
- FSUBR_ZPmZ_D = 4063,
- FSUBR_ZPmZ_H = 4064,
- FSUBR_ZPmZ_S = 4065,
- FSUBSrr = 4066,
- FSUB_VG2_M2Z_D = 4067,
- FSUB_VG2_M2Z_H = 4068,
- FSUB_VG2_M2Z_S = 4069,
- FSUB_VG4_M4Z_D = 4070,
- FSUB_VG4_M4Z_H = 4071,
- FSUB_VG4_M4Z_S = 4072,
- FSUB_ZPmI_D = 4073,
- FSUB_ZPmI_H = 4074,
- FSUB_ZPmI_S = 4075,
- FSUB_ZPmZ_D = 4076,
- FSUB_ZPmZ_H = 4077,
- FSUB_ZPmZ_S = 4078,
- FSUB_ZZZ_D = 4079,
- FSUB_ZZZ_H = 4080,
- FSUB_ZZZ_S = 4081,
- FSUBv2f32 = 4082,
- FSUBv2f64 = 4083,
- FSUBv4f16 = 4084,
- FSUBv4f32 = 4085,
- FSUBv8f16 = 4086,
- FTMAD_ZZI_D = 4087,
- FTMAD_ZZI_H = 4088,
- FTMAD_ZZI_S = 4089,
- FTMOPA_M2ZZZI_BtoH = 4090,
- FTMOPA_M2ZZZI_BtoS = 4091,
- FTMOPA_M2ZZZI_HtoH = 4092,
- FTMOPA_M2ZZZI_HtoS = 4093,
- FTMOPA_M2ZZZI_StoS = 4094,
- FTSMUL_ZZZ_D = 4095,
- FTSMUL_ZZZ_H = 4096,
- FTSMUL_ZZZ_S = 4097,
- FTSSEL_ZZZ_D = 4098,
- FTSSEL_ZZZ_H = 4099,
- FTSSEL_ZZZ_S = 4100,
- FVDOTB_VG4_M2ZZI_BtoS = 4101,
- FVDOTT_VG4_M2ZZI_BtoS = 4102,
- FVDOT_VG2_M2ZZI_BtoH = 4103,
- FVDOT_VG2_M2ZZI_HtoS = 4104,
- GCSPOPCX = 4105,
- GCSPOPM = 4106,
- GCSPOPX = 4107,
- GCSPUSHM = 4108,
- GCSPUSHX = 4109,
- GCSSS1 = 4110,
- GCSSS2 = 4111,
- GCSSTR = 4112,
- GCSSTTR = 4113,
- GLD1B_D = 4114,
- GLD1B_D_IMM = 4115,
- GLD1B_D_SXTW = 4116,
- GLD1B_D_UXTW = 4117,
- GLD1B_S_IMM = 4118,
- GLD1B_S_SXTW = 4119,
- GLD1B_S_UXTW = 4120,
- GLD1D = 4121,
- GLD1D_IMM = 4122,
- GLD1D_SCALED = 4123,
- GLD1D_SXTW = 4124,
- GLD1D_SXTW_SCALED = 4125,
- GLD1D_UXTW = 4126,
- GLD1D_UXTW_SCALED = 4127,
- GLD1H_D = 4128,
- GLD1H_D_IMM = 4129,
- GLD1H_D_SCALED = 4130,
- GLD1H_D_SXTW = 4131,
- GLD1H_D_SXTW_SCALED = 4132,
- GLD1H_D_UXTW = 4133,
- GLD1H_D_UXTW_SCALED = 4134,
- GLD1H_S_IMM = 4135,
- GLD1H_S_SXTW = 4136,
- GLD1H_S_SXTW_SCALED = 4137,
- GLD1H_S_UXTW = 4138,
- GLD1H_S_UXTW_SCALED = 4139,
- GLD1Q = 4140,
- GLD1SB_D = 4141,
- GLD1SB_D_IMM = 4142,
- GLD1SB_D_SXTW = 4143,
- GLD1SB_D_UXTW = 4144,
- GLD1SB_S_IMM = 4145,
- GLD1SB_S_SXTW = 4146,
- GLD1SB_S_UXTW = 4147,
- GLD1SH_D = 4148,
- GLD1SH_D_IMM = 4149,
- GLD1SH_D_SCALED = 4150,
- GLD1SH_D_SXTW = 4151,
- GLD1SH_D_SXTW_SCALED = 4152,
- GLD1SH_D_UXTW = 4153,
- GLD1SH_D_UXTW_SCALED = 4154,
- GLD1SH_S_IMM = 4155,
- GLD1SH_S_SXTW = 4156,
- GLD1SH_S_SXTW_SCALED = 4157,
- GLD1SH_S_UXTW = 4158,
- GLD1SH_S_UXTW_SCALED = 4159,
- GLD1SW_D = 4160,
- GLD1SW_D_IMM = 4161,
- GLD1SW_D_SCALED = 4162,
- GLD1SW_D_SXTW = 4163,
- GLD1SW_D_SXTW_SCALED = 4164,
- GLD1SW_D_UXTW = 4165,
- GLD1SW_D_UXTW_SCALED = 4166,
- GLD1W_D = 4167,
- GLD1W_D_IMM = 4168,
- GLD1W_D_SCALED = 4169,
- GLD1W_D_SXTW = 4170,
- GLD1W_D_SXTW_SCALED = 4171,
- GLD1W_D_UXTW = 4172,
- GLD1W_D_UXTW_SCALED = 4173,
- GLD1W_IMM = 4174,
- GLD1W_SXTW = 4175,
- GLD1W_SXTW_SCALED = 4176,
- GLD1W_UXTW = 4177,
- GLD1W_UXTW_SCALED = 4178,
- GLDFF1B_D = 4179,
- GLDFF1B_D_IMM = 4180,
- GLDFF1B_D_SXTW = 4181,
- GLDFF1B_D_UXTW = 4182,
- GLDFF1B_S_IMM = 4183,
- GLDFF1B_S_SXTW = 4184,
- GLDFF1B_S_UXTW = 4185,
- GLDFF1D = 4186,
- GLDFF1D_IMM = 4187,
- GLDFF1D_SCALED = 4188,
- GLDFF1D_SXTW = 4189,
- GLDFF1D_SXTW_SCALED = 4190,
- GLDFF1D_UXTW = 4191,
- GLDFF1D_UXTW_SCALED = 4192,
- GLDFF1H_D = 4193,
- GLDFF1H_D_IMM = 4194,
- GLDFF1H_D_SCALED = 4195,
- GLDFF1H_D_SXTW = 4196,
- GLDFF1H_D_SXTW_SCALED = 4197,
- GLDFF1H_D_UXTW = 4198,
- GLDFF1H_D_UXTW_SCALED = 4199,
- GLDFF1H_S_IMM = 4200,
- GLDFF1H_S_SXTW = 4201,
- GLDFF1H_S_SXTW_SCALED = 4202,
- GLDFF1H_S_UXTW = 4203,
- GLDFF1H_S_UXTW_SCALED = 4204,
- GLDFF1SB_D = 4205,
- GLDFF1SB_D_IMM = 4206,
- GLDFF1SB_D_SXTW = 4207,
- GLDFF1SB_D_UXTW = 4208,
- GLDFF1SB_S_IMM = 4209,
- GLDFF1SB_S_SXTW = 4210,
- GLDFF1SB_S_UXTW = 4211,
- GLDFF1SH_D = 4212,
- GLDFF1SH_D_IMM = 4213,
- GLDFF1SH_D_SCALED = 4214,
- GLDFF1SH_D_SXTW = 4215,
- GLDFF1SH_D_SXTW_SCALED = 4216,
- GLDFF1SH_D_UXTW = 4217,
- GLDFF1SH_D_UXTW_SCALED = 4218,
- GLDFF1SH_S_IMM = 4219,
- GLDFF1SH_S_SXTW = 4220,
- GLDFF1SH_S_SXTW_SCALED = 4221,
- GLDFF1SH_S_UXTW = 4222,
- GLDFF1SH_S_UXTW_SCALED = 4223,
- GLDFF1SW_D = 4224,
- GLDFF1SW_D_IMM = 4225,
- GLDFF1SW_D_SCALED = 4226,
- GLDFF1SW_D_SXTW = 4227,
- GLDFF1SW_D_SXTW_SCALED = 4228,
- GLDFF1SW_D_UXTW = 4229,
- GLDFF1SW_D_UXTW_SCALED = 4230,
- GLDFF1W_D = 4231,
- GLDFF1W_D_IMM = 4232,
- GLDFF1W_D_SCALED = 4233,
- GLDFF1W_D_SXTW = 4234,
- GLDFF1W_D_SXTW_SCALED = 4235,
- GLDFF1W_D_UXTW = 4236,
- GLDFF1W_D_UXTW_SCALED = 4237,
- GLDFF1W_IMM = 4238,
- GLDFF1W_SXTW = 4239,
- GLDFF1W_SXTW_SCALED = 4240,
- GLDFF1W_UXTW = 4241,
- GLDFF1W_UXTW_SCALED = 4242,
- GMI = 4243,
- HINT = 4244,
- HISTCNT_ZPzZZ_D = 4245,
- HISTCNT_ZPzZZ_S = 4246,
- HISTSEG_ZZZ = 4247,
- HLT = 4248,
- HVC = 4249,
- INCB_XPiI = 4250,
- INCD_XPiI = 4251,
- INCD_ZPiI = 4252,
- INCH_XPiI = 4253,
- INCH_ZPiI = 4254,
- INCP_XP_B = 4255,
- INCP_XP_D = 4256,
- INCP_XP_H = 4257,
- INCP_XP_S = 4258,
- INCP_ZP_D = 4259,
- INCP_ZP_H = 4260,
- INCP_ZP_S = 4261,
- INCW_XPiI = 4262,
- INCW_ZPiI = 4263,
- INDEX_II_B = 4264,
- INDEX_II_D = 4265,
- INDEX_II_H = 4266,
- INDEX_II_S = 4267,
- INDEX_IR_B = 4268,
- INDEX_IR_D = 4269,
- INDEX_IR_H = 4270,
- INDEX_IR_S = 4271,
- INDEX_RI_B = 4272,
- INDEX_RI_D = 4273,
- INDEX_RI_H = 4274,
- INDEX_RI_S = 4275,
- INDEX_RR_B = 4276,
- INDEX_RR_D = 4277,
- INDEX_RR_H = 4278,
- INDEX_RR_S = 4279,
- INSERT_MXIPZ_H_B = 4280,
- INSERT_MXIPZ_H_D = 4281,
- INSERT_MXIPZ_H_H = 4282,
- INSERT_MXIPZ_H_Q = 4283,
- INSERT_MXIPZ_H_S = 4284,
- INSERT_MXIPZ_V_B = 4285,
- INSERT_MXIPZ_V_D = 4286,
- INSERT_MXIPZ_V_H = 4287,
- INSERT_MXIPZ_V_Q = 4288,
- INSERT_MXIPZ_V_S = 4289,
- INSR_ZR_B = 4290,
- INSR_ZR_D = 4291,
- INSR_ZR_H = 4292,
- INSR_ZR_S = 4293,
- INSR_ZV_B = 4294,
- INSR_ZV_D = 4295,
- INSR_ZV_H = 4296,
- INSR_ZV_S = 4297,
- INSvi16gpr = 4298,
- INSvi16lane = 4299,
- INSvi32gpr = 4300,
- INSvi32lane = 4301,
- INSvi64gpr = 4302,
- INSvi64lane = 4303,
- INSvi8gpr = 4304,
- INSvi8lane = 4305,
- IRG = 4306,
- ISB = 4307,
- LASTA_RPZ_B = 4308,
- LASTA_RPZ_D = 4309,
- LASTA_RPZ_H = 4310,
- LASTA_RPZ_S = 4311,
- LASTA_VPZ_B = 4312,
- LASTA_VPZ_D = 4313,
- LASTA_VPZ_H = 4314,
- LASTA_VPZ_S = 4315,
- LASTB_RPZ_B = 4316,
- LASTB_RPZ_D = 4317,
- LASTB_RPZ_H = 4318,
- LASTB_RPZ_S = 4319,
- LASTB_VPZ_B = 4320,
- LASTB_VPZ_D = 4321,
- LASTB_VPZ_H = 4322,
- LASTB_VPZ_S = 4323,
- LASTP_XPP_B = 4324,
- LASTP_XPP_D = 4325,
- LASTP_XPP_H = 4326,
- LASTP_XPP_S = 4327,
- LD1B = 4328,
- LD1B_2Z = 4329,
- LD1B_2Z_IMM = 4330,
- LD1B_2Z_STRIDED = 4331,
- LD1B_2Z_STRIDED_IMM = 4332,
- LD1B_4Z = 4333,
- LD1B_4Z_IMM = 4334,
- LD1B_4Z_STRIDED = 4335,
- LD1B_4Z_STRIDED_IMM = 4336,
- LD1B_D = 4337,
- LD1B_D_IMM = 4338,
- LD1B_H = 4339,
- LD1B_H_IMM = 4340,
- LD1B_IMM = 4341,
- LD1B_S = 4342,
- LD1B_S_IMM = 4343,
- LD1D = 4344,
- LD1D_2Z = 4345,
- LD1D_2Z_IMM = 4346,
- LD1D_2Z_STRIDED = 4347,
- LD1D_2Z_STRIDED_IMM = 4348,
- LD1D_4Z = 4349,
- LD1D_4Z_IMM = 4350,
- LD1D_4Z_STRIDED = 4351,
- LD1D_4Z_STRIDED_IMM = 4352,
- LD1D_IMM = 4353,
- LD1D_Q = 4354,
- LD1D_Q_IMM = 4355,
- LD1Fourv16b = 4356,
- LD1Fourv16b_POST = 4357,
- LD1Fourv1d = 4358,
- LD1Fourv1d_POST = 4359,
- LD1Fourv2d = 4360,
- LD1Fourv2d_POST = 4361,
- LD1Fourv2s = 4362,
- LD1Fourv2s_POST = 4363,
- LD1Fourv4h = 4364,
- LD1Fourv4h_POST = 4365,
- LD1Fourv4s = 4366,
- LD1Fourv4s_POST = 4367,
- LD1Fourv8b = 4368,
- LD1Fourv8b_POST = 4369,
- LD1Fourv8h = 4370,
- LD1Fourv8h_POST = 4371,
- LD1H = 4372,
- LD1H_2Z = 4373,
- LD1H_2Z_IMM = 4374,
- LD1H_2Z_STRIDED = 4375,
- LD1H_2Z_STRIDED_IMM = 4376,
- LD1H_4Z = 4377,
- LD1H_4Z_IMM = 4378,
- LD1H_4Z_STRIDED = 4379,
- LD1H_4Z_STRIDED_IMM = 4380,
- LD1H_D = 4381,
- LD1H_D_IMM = 4382,
- LD1H_IMM = 4383,
- LD1H_S = 4384,
- LD1H_S_IMM = 4385,
- LD1Onev16b = 4386,
- LD1Onev16b_POST = 4387,
- LD1Onev1d = 4388,
- LD1Onev1d_POST = 4389,
- LD1Onev2d = 4390,
- LD1Onev2d_POST = 4391,
- LD1Onev2s = 4392,
- LD1Onev2s_POST = 4393,
- LD1Onev4h = 4394,
- LD1Onev4h_POST = 4395,
- LD1Onev4s = 4396,
- LD1Onev4s_POST = 4397,
- LD1Onev8b = 4398,
- LD1Onev8b_POST = 4399,
- LD1Onev8h = 4400,
- LD1Onev8h_POST = 4401,
- LD1RB_D_IMM = 4402,
- LD1RB_H_IMM = 4403,
- LD1RB_IMM = 4404,
- LD1RB_S_IMM = 4405,
- LD1RD_IMM = 4406,
- LD1RH_D_IMM = 4407,
- LD1RH_IMM = 4408,
- LD1RH_S_IMM = 4409,
- LD1RO_B = 4410,
- LD1RO_B_IMM = 4411,
- LD1RO_D = 4412,
- LD1RO_D_IMM = 4413,
- LD1RO_H = 4414,
- LD1RO_H_IMM = 4415,
- LD1RO_W = 4416,
- LD1RO_W_IMM = 4417,
- LD1RQ_B = 4418,
- LD1RQ_B_IMM = 4419,
- LD1RQ_D = 4420,
- LD1RQ_D_IMM = 4421,
- LD1RQ_H = 4422,
- LD1RQ_H_IMM = 4423,
- LD1RQ_W = 4424,
- LD1RQ_W_IMM = 4425,
- LD1RSB_D_IMM = 4426,
- LD1RSB_H_IMM = 4427,
- LD1RSB_S_IMM = 4428,
- LD1RSH_D_IMM = 4429,
- LD1RSH_S_IMM = 4430,
- LD1RSW_IMM = 4431,
- LD1RW_D_IMM = 4432,
- LD1RW_IMM = 4433,
- LD1Rv16b = 4434,
- LD1Rv16b_POST = 4435,
- LD1Rv1d = 4436,
- LD1Rv1d_POST = 4437,
- LD1Rv2d = 4438,
- LD1Rv2d_POST = 4439,
- LD1Rv2s = 4440,
- LD1Rv2s_POST = 4441,
- LD1Rv4h = 4442,
- LD1Rv4h_POST = 4443,
- LD1Rv4s = 4444,
- LD1Rv4s_POST = 4445,
- LD1Rv8b = 4446,
- LD1Rv8b_POST = 4447,
- LD1Rv8h = 4448,
- LD1Rv8h_POST = 4449,
- LD1SB_D = 4450,
- LD1SB_D_IMM = 4451,
- LD1SB_H = 4452,
- LD1SB_H_IMM = 4453,
- LD1SB_S = 4454,
- LD1SB_S_IMM = 4455,
- LD1SH_D = 4456,
- LD1SH_D_IMM = 4457,
- LD1SH_S = 4458,
- LD1SH_S_IMM = 4459,
- LD1SW_D = 4460,
- LD1SW_D_IMM = 4461,
- LD1Threev16b = 4462,
- LD1Threev16b_POST = 4463,
- LD1Threev1d = 4464,
- LD1Threev1d_POST = 4465,
- LD1Threev2d = 4466,
- LD1Threev2d_POST = 4467,
- LD1Threev2s = 4468,
- LD1Threev2s_POST = 4469,
- LD1Threev4h = 4470,
- LD1Threev4h_POST = 4471,
- LD1Threev4s = 4472,
- LD1Threev4s_POST = 4473,
- LD1Threev8b = 4474,
- LD1Threev8b_POST = 4475,
- LD1Threev8h = 4476,
- LD1Threev8h_POST = 4477,
- LD1Twov16b = 4478,
- LD1Twov16b_POST = 4479,
- LD1Twov1d = 4480,
- LD1Twov1d_POST = 4481,
- LD1Twov2d = 4482,
- LD1Twov2d_POST = 4483,
- LD1Twov2s = 4484,
- LD1Twov2s_POST = 4485,
- LD1Twov4h = 4486,
- LD1Twov4h_POST = 4487,
- LD1Twov4s = 4488,
- LD1Twov4s_POST = 4489,
- LD1Twov8b = 4490,
- LD1Twov8b_POST = 4491,
- LD1Twov8h = 4492,
- LD1Twov8h_POST = 4493,
- LD1W = 4494,
- LD1W_2Z = 4495,
- LD1W_2Z_IMM = 4496,
- LD1W_2Z_STRIDED = 4497,
- LD1W_2Z_STRIDED_IMM = 4498,
- LD1W_4Z = 4499,
- LD1W_4Z_IMM = 4500,
- LD1W_4Z_STRIDED = 4501,
- LD1W_4Z_STRIDED_IMM = 4502,
- LD1W_D = 4503,
- LD1W_D_IMM = 4504,
- LD1W_IMM = 4505,
- LD1W_Q = 4506,
- LD1W_Q_IMM = 4507,
- LD1_MXIPXX_H_B = 4508,
- LD1_MXIPXX_H_D = 4509,
- LD1_MXIPXX_H_H = 4510,
- LD1_MXIPXX_H_Q = 4511,
- LD1_MXIPXX_H_S = 4512,
- LD1_MXIPXX_V_B = 4513,
- LD1_MXIPXX_V_D = 4514,
- LD1_MXIPXX_V_H = 4515,
- LD1_MXIPXX_V_Q = 4516,
- LD1_MXIPXX_V_S = 4517,
- LD1i16 = 4518,
- LD1i16_POST = 4519,
- LD1i32 = 4520,
- LD1i32_POST = 4521,
- LD1i64 = 4522,
- LD1i64_POST = 4523,
- LD1i8 = 4524,
- LD1i8_POST = 4525,
- LD2B = 4526,
- LD2B_IMM = 4527,
- LD2D = 4528,
- LD2D_IMM = 4529,
- LD2H = 4530,
- LD2H_IMM = 4531,
- LD2Q = 4532,
- LD2Q_IMM = 4533,
- LD2Rv16b = 4534,
- LD2Rv16b_POST = 4535,
- LD2Rv1d = 4536,
- LD2Rv1d_POST = 4537,
- LD2Rv2d = 4538,
- LD2Rv2d_POST = 4539,
- LD2Rv2s = 4540,
- LD2Rv2s_POST = 4541,
- LD2Rv4h = 4542,
- LD2Rv4h_POST = 4543,
- LD2Rv4s = 4544,
- LD2Rv4s_POST = 4545,
- LD2Rv8b = 4546,
- LD2Rv8b_POST = 4547,
- LD2Rv8h = 4548,
- LD2Rv8h_POST = 4549,
- LD2Twov16b = 4550,
- LD2Twov16b_POST = 4551,
- LD2Twov2d = 4552,
- LD2Twov2d_POST = 4553,
- LD2Twov2s = 4554,
- LD2Twov2s_POST = 4555,
- LD2Twov4h = 4556,
- LD2Twov4h_POST = 4557,
- LD2Twov4s = 4558,
- LD2Twov4s_POST = 4559,
- LD2Twov8b = 4560,
- LD2Twov8b_POST = 4561,
- LD2Twov8h = 4562,
- LD2Twov8h_POST = 4563,
- LD2W = 4564,
- LD2W_IMM = 4565,
- LD2i16 = 4566,
- LD2i16_POST = 4567,
- LD2i32 = 4568,
- LD2i32_POST = 4569,
- LD2i64 = 4570,
- LD2i64_POST = 4571,
- LD2i8 = 4572,
- LD2i8_POST = 4573,
- LD3B = 4574,
- LD3B_IMM = 4575,
- LD3D = 4576,
- LD3D_IMM = 4577,
- LD3H = 4578,
- LD3H_IMM = 4579,
- LD3Q = 4580,
- LD3Q_IMM = 4581,
- LD3Rv16b = 4582,
- LD3Rv16b_POST = 4583,
- LD3Rv1d = 4584,
- LD3Rv1d_POST = 4585,
- LD3Rv2d = 4586,
- LD3Rv2d_POST = 4587,
- LD3Rv2s = 4588,
- LD3Rv2s_POST = 4589,
- LD3Rv4h = 4590,
- LD3Rv4h_POST = 4591,
- LD3Rv4s = 4592,
- LD3Rv4s_POST = 4593,
- LD3Rv8b = 4594,
- LD3Rv8b_POST = 4595,
- LD3Rv8h = 4596,
- LD3Rv8h_POST = 4597,
- LD3Threev16b = 4598,
- LD3Threev16b_POST = 4599,
- LD3Threev2d = 4600,
- LD3Threev2d_POST = 4601,
- LD3Threev2s = 4602,
- LD3Threev2s_POST = 4603,
- LD3Threev4h = 4604,
- LD3Threev4h_POST = 4605,
- LD3Threev4s = 4606,
- LD3Threev4s_POST = 4607,
- LD3Threev8b = 4608,
- LD3Threev8b_POST = 4609,
- LD3Threev8h = 4610,
- LD3Threev8h_POST = 4611,
- LD3W = 4612,
- LD3W_IMM = 4613,
- LD3i16 = 4614,
- LD3i16_POST = 4615,
- LD3i32 = 4616,
- LD3i32_POST = 4617,
- LD3i64 = 4618,
- LD3i64_POST = 4619,
- LD3i8 = 4620,
- LD3i8_POST = 4621,
- LD4B = 4622,
- LD4B_IMM = 4623,
- LD4D = 4624,
- LD4D_IMM = 4625,
- LD4Fourv16b = 4626,
- LD4Fourv16b_POST = 4627,
- LD4Fourv2d = 4628,
- LD4Fourv2d_POST = 4629,
- LD4Fourv2s = 4630,
- LD4Fourv2s_POST = 4631,
- LD4Fourv4h = 4632,
- LD4Fourv4h_POST = 4633,
- LD4Fourv4s = 4634,
- LD4Fourv4s_POST = 4635,
- LD4Fourv8b = 4636,
- LD4Fourv8b_POST = 4637,
- LD4Fourv8h = 4638,
- LD4Fourv8h_POST = 4639,
- LD4H = 4640,
- LD4H_IMM = 4641,
- LD4Q = 4642,
- LD4Q_IMM = 4643,
- LD4Rv16b = 4644,
- LD4Rv16b_POST = 4645,
- LD4Rv1d = 4646,
- LD4Rv1d_POST = 4647,
- LD4Rv2d = 4648,
- LD4Rv2d_POST = 4649,
- LD4Rv2s = 4650,
- LD4Rv2s_POST = 4651,
- LD4Rv4h = 4652,
- LD4Rv4h_POST = 4653,
- LD4Rv4s = 4654,
- LD4Rv4s_POST = 4655,
- LD4Rv8b = 4656,
- LD4Rv8b_POST = 4657,
- LD4Rv8h = 4658,
- LD4Rv8h_POST = 4659,
- LD4W = 4660,
- LD4W_IMM = 4661,
- LD4i16 = 4662,
- LD4i16_POST = 4663,
- LD4i32 = 4664,
- LD4i32_POST = 4665,
- LD4i64 = 4666,
- LD4i64_POST = 4667,
- LD4i8 = 4668,
- LD4i8_POST = 4669,
- LD64B = 4670,
- LDADDAB = 4671,
- LDADDAH = 4672,
- LDADDALB = 4673,
- LDADDALH = 4674,
- LDADDALW = 4675,
- LDADDALX = 4676,
- LDADDAW = 4677,
- LDADDAX = 4678,
- LDADDB = 4679,
- LDADDH = 4680,
- LDADDLB = 4681,
- LDADDLH = 4682,
- LDADDLW = 4683,
- LDADDLX = 4684,
- LDADDW = 4685,
- LDADDX = 4686,
- LDAP1 = 4687,
- LDAPRB = 4688,
- LDAPRH = 4689,
- LDAPRW = 4690,
- LDAPRWpost = 4691,
- LDAPRX = 4692,
- LDAPRXpost = 4693,
- LDAPURBi = 4694,
- LDAPURHi = 4695,
- LDAPURSBWi = 4696,
- LDAPURSBXi = 4697,
- LDAPURSHWi = 4698,
- LDAPURSHXi = 4699,
- LDAPURSWi = 4700,
- LDAPURXi = 4701,
- LDAPURbi = 4702,
- LDAPURdi = 4703,
- LDAPURhi = 4704,
- LDAPURi = 4705,
- LDAPURqi = 4706,
- LDAPURsi = 4707,
- LDARB = 4708,
- LDARH = 4709,
- LDARW = 4710,
- LDARX = 4711,
- LDATXRW = 4712,
- LDATXRX = 4713,
- LDAXPW = 4714,
- LDAXPX = 4715,
- LDAXRB = 4716,
- LDAXRH = 4717,
- LDAXRW = 4718,
- LDAXRX = 4719,
- LDBFADD = 4720,
- LDBFADDA = 4721,
- LDBFADDAL = 4722,
- LDBFADDL = 4723,
- LDBFMAX = 4724,
- LDBFMAXA = 4725,
- LDBFMAXAL = 4726,
- LDBFMAXL = 4727,
- LDBFMAXNM = 4728,
- LDBFMAXNMA = 4729,
- LDBFMAXNMAL = 4730,
- LDBFMAXNML = 4731,
- LDBFMIN = 4732,
- LDBFMINA = 4733,
- LDBFMINAL = 4734,
- LDBFMINL = 4735,
- LDBFMINNM = 4736,
- LDBFMINNMA = 4737,
- LDBFMINNMAL = 4738,
- LDBFMINNML = 4739,
- LDCLRAB = 4740,
- LDCLRAH = 4741,
- LDCLRALB = 4742,
- LDCLRALH = 4743,
- LDCLRALW = 4744,
- LDCLRALX = 4745,
- LDCLRAW = 4746,
- LDCLRAX = 4747,
- LDCLRB = 4748,
- LDCLRH = 4749,
- LDCLRLB = 4750,
- LDCLRLH = 4751,
- LDCLRLW = 4752,
- LDCLRLX = 4753,
- LDCLRP = 4754,
- LDCLRPA = 4755,
- LDCLRPAL = 4756,
- LDCLRPL = 4757,
- LDCLRW = 4758,
- LDCLRX = 4759,
- LDEORAB = 4760,
- LDEORAH = 4761,
- LDEORALB = 4762,
- LDEORALH = 4763,
- LDEORALW = 4764,
- LDEORALX = 4765,
- LDEORAW = 4766,
- LDEORAX = 4767,
- LDEORB = 4768,
- LDEORH = 4769,
- LDEORLB = 4770,
- LDEORLH = 4771,
- LDEORLW = 4772,
- LDEORLX = 4773,
- LDEORW = 4774,
- LDEORX = 4775,
- LDFADDAD = 4776,
- LDFADDAH = 4777,
- LDFADDALD = 4778,
- LDFADDALH = 4779,
- LDFADDALS = 4780,
- LDFADDAS = 4781,
- LDFADDD = 4782,
- LDFADDH = 4783,
- LDFADDLD = 4784,
- LDFADDLH = 4785,
- LDFADDLS = 4786,
- LDFADDS = 4787,
- LDFF1B = 4788,
- LDFF1B_D = 4789,
- LDFF1B_H = 4790,
- LDFF1B_S = 4791,
- LDFF1D = 4792,
- LDFF1H = 4793,
- LDFF1H_D = 4794,
- LDFF1H_S = 4795,
- LDFF1SB_D = 4796,
- LDFF1SB_H = 4797,
- LDFF1SB_S = 4798,
- LDFF1SH_D = 4799,
- LDFF1SH_S = 4800,
- LDFF1SW_D = 4801,
- LDFF1W = 4802,
- LDFF1W_D = 4803,
- LDFMAXAD = 4804,
- LDFMAXAH = 4805,
- LDFMAXALD = 4806,
- LDFMAXALH = 4807,
- LDFMAXALS = 4808,
- LDFMAXAS = 4809,
- LDFMAXD = 4810,
- LDFMAXH = 4811,
- LDFMAXLD = 4812,
- LDFMAXLH = 4813,
- LDFMAXLS = 4814,
- LDFMAXNMAD = 4815,
- LDFMAXNMAH = 4816,
- LDFMAXNMALD = 4817,
- LDFMAXNMALH = 4818,
- LDFMAXNMALS = 4819,
- LDFMAXNMAS = 4820,
- LDFMAXNMD = 4821,
- LDFMAXNMH = 4822,
- LDFMAXNMLD = 4823,
- LDFMAXNMLH = 4824,
- LDFMAXNMLS = 4825,
- LDFMAXNMS = 4826,
- LDFMAXS = 4827,
- LDFMINAD = 4828,
- LDFMINAH = 4829,
- LDFMINALD = 4830,
- LDFMINALH = 4831,
- LDFMINALS = 4832,
- LDFMINAS = 4833,
- LDFMIND = 4834,
- LDFMINH = 4835,
- LDFMINLD = 4836,
- LDFMINLH = 4837,
- LDFMINLS = 4838,
- LDFMINNMAD = 4839,
- LDFMINNMAH = 4840,
- LDFMINNMALD = 4841,
- LDFMINNMALH = 4842,
- LDFMINNMALS = 4843,
- LDFMINNMAS = 4844,
- LDFMINNMD = 4845,
- LDFMINNMH = 4846,
- LDFMINNMLD = 4847,
- LDFMINNMLH = 4848,
- LDFMINNMLS = 4849,
- LDFMINNMS = 4850,
- LDFMINS = 4851,
- LDG = 4852,
- LDGM = 4853,
- LDIAPPW = 4854,
- LDIAPPWpost = 4855,
- LDIAPPX = 4856,
- LDIAPPXpost = 4857,
- LDLARB = 4858,
- LDLARH = 4859,
- LDLARW = 4860,
- LDLARX = 4861,
- LDNF1B_D_IMM = 4862,
- LDNF1B_H_IMM = 4863,
- LDNF1B_IMM = 4864,
- LDNF1B_S_IMM = 4865,
- LDNF1D_IMM = 4866,
- LDNF1H_D_IMM = 4867,
- LDNF1H_IMM = 4868,
- LDNF1H_S_IMM = 4869,
- LDNF1SB_D_IMM = 4870,
- LDNF1SB_H_IMM = 4871,
- LDNF1SB_S_IMM = 4872,
- LDNF1SH_D_IMM = 4873,
- LDNF1SH_S_IMM = 4874,
- LDNF1SW_D_IMM = 4875,
- LDNF1W_D_IMM = 4876,
- LDNF1W_IMM = 4877,
- LDNPDi = 4878,
- LDNPQi = 4879,
- LDNPSi = 4880,
- LDNPWi = 4881,
- LDNPXi = 4882,
- LDNT1B_2Z = 4883,
- LDNT1B_2Z_IMM = 4884,
- LDNT1B_2Z_STRIDED = 4885,
- LDNT1B_2Z_STRIDED_IMM = 4886,
- LDNT1B_4Z = 4887,
- LDNT1B_4Z_IMM = 4888,
- LDNT1B_4Z_STRIDED = 4889,
- LDNT1B_4Z_STRIDED_IMM = 4890,
- LDNT1B_ZRI = 4891,
- LDNT1B_ZRR = 4892,
- LDNT1B_ZZR_D = 4893,
- LDNT1B_ZZR_S = 4894,
- LDNT1D_2Z = 4895,
- LDNT1D_2Z_IMM = 4896,
- LDNT1D_2Z_STRIDED = 4897,
- LDNT1D_2Z_STRIDED_IMM = 4898,
- LDNT1D_4Z = 4899,
- LDNT1D_4Z_IMM = 4900,
- LDNT1D_4Z_STRIDED = 4901,
- LDNT1D_4Z_STRIDED_IMM = 4902,
- LDNT1D_ZRI = 4903,
- LDNT1D_ZRR = 4904,
- LDNT1D_ZZR_D = 4905,
- LDNT1H_2Z = 4906,
- LDNT1H_2Z_IMM = 4907,
- LDNT1H_2Z_STRIDED = 4908,
- LDNT1H_2Z_STRIDED_IMM = 4909,
- LDNT1H_4Z = 4910,
- LDNT1H_4Z_IMM = 4911,
- LDNT1H_4Z_STRIDED = 4912,
- LDNT1H_4Z_STRIDED_IMM = 4913,
- LDNT1H_ZRI = 4914,
- LDNT1H_ZRR = 4915,
- LDNT1H_ZZR_D = 4916,
- LDNT1H_ZZR_S = 4917,
- LDNT1SB_ZZR_D = 4918,
- LDNT1SB_ZZR_S = 4919,
- LDNT1SH_ZZR_D = 4920,
- LDNT1SH_ZZR_S = 4921,
- LDNT1SW_ZZR_D = 4922,
- LDNT1W_2Z = 4923,
- LDNT1W_2Z_IMM = 4924,
- LDNT1W_2Z_STRIDED = 4925,
- LDNT1W_2Z_STRIDED_IMM = 4926,
- LDNT1W_4Z = 4927,
- LDNT1W_4Z_IMM = 4928,
- LDNT1W_4Z_STRIDED = 4929,
- LDNT1W_4Z_STRIDED_IMM = 4930,
- LDNT1W_ZRI = 4931,
- LDNT1W_ZRR = 4932,
- LDNT1W_ZZR_D = 4933,
- LDNT1W_ZZR_S = 4934,
- LDPDi = 4935,
- LDPDpost = 4936,
- LDPDpre = 4937,
- LDPQi = 4938,
- LDPQpost = 4939,
- LDPQpre = 4940,
- LDPSWi = 4941,
- LDPSWpost = 4942,
- LDPSWpre = 4943,
- LDPSi = 4944,
- LDPSpost = 4945,
- LDPSpre = 4946,
- LDPWi = 4947,
- LDPWpost = 4948,
- LDPWpre = 4949,
- LDPXi = 4950,
- LDPXpost = 4951,
- LDPXpre = 4952,
- LDRAAindexed = 4953,
- LDRAAwriteback = 4954,
- LDRABindexed = 4955,
- LDRABwriteback = 4956,
- LDRBBpost = 4957,
- LDRBBpre = 4958,
- LDRBBroW = 4959,
- LDRBBroX = 4960,
- LDRBBui = 4961,
- LDRBpost = 4962,
- LDRBpre = 4963,
- LDRBroW = 4964,
- LDRBroX = 4965,
- LDRBui = 4966,
- LDRDl = 4967,
- LDRDpost = 4968,
- LDRDpre = 4969,
- LDRDroW = 4970,
- LDRDroX = 4971,
- LDRDui = 4972,
- LDRHHpost = 4973,
- LDRHHpre = 4974,
- LDRHHroW = 4975,
- LDRHHroX = 4976,
- LDRHHui = 4977,
- LDRHpost = 4978,
- LDRHpre = 4979,
- LDRHroW = 4980,
- LDRHroX = 4981,
- LDRHui = 4982,
- LDRQl = 4983,
- LDRQpost = 4984,
- LDRQpre = 4985,
- LDRQroW = 4986,
- LDRQroX = 4987,
- LDRQui = 4988,
- LDRSBWpost = 4989,
- LDRSBWpre = 4990,
- LDRSBWroW = 4991,
- LDRSBWroX = 4992,
- LDRSBWui = 4993,
- LDRSBXpost = 4994,
- LDRSBXpre = 4995,
- LDRSBXroW = 4996,
- LDRSBXroX = 4997,
- LDRSBXui = 4998,
- LDRSHWpost = 4999,
- LDRSHWpre = 5000,
- LDRSHWroW = 5001,
- LDRSHWroX = 5002,
- LDRSHWui = 5003,
- LDRSHXpost = 5004,
- LDRSHXpre = 5005,
- LDRSHXroW = 5006,
- LDRSHXroX = 5007,
- LDRSHXui = 5008,
- LDRSWl = 5009,
- LDRSWpost = 5010,
- LDRSWpre = 5011,
- LDRSWroW = 5012,
- LDRSWroX = 5013,
- LDRSWui = 5014,
- LDRSl = 5015,
- LDRSpost = 5016,
- LDRSpre = 5017,
- LDRSroW = 5018,
- LDRSroX = 5019,
- LDRSui = 5020,
- LDRWl = 5021,
- LDRWpost = 5022,
- LDRWpre = 5023,
- LDRWroW = 5024,
- LDRWroX = 5025,
- LDRWui = 5026,
- LDRXl = 5027,
- LDRXpost = 5028,
- LDRXpre = 5029,
- LDRXroW = 5030,
- LDRXroX = 5031,
- LDRXui = 5032,
- LDR_PXI = 5033,
- LDR_TX = 5034,
- LDR_ZA = 5035,
- LDR_ZXI = 5036,
- LDSETAB = 5037,
- LDSETAH = 5038,
- LDSETALB = 5039,
- LDSETALH = 5040,
- LDSETALW = 5041,
- LDSETALX = 5042,
- LDSETAW = 5043,
- LDSETAX = 5044,
- LDSETB = 5045,
- LDSETH = 5046,
- LDSETLB = 5047,
- LDSETLH = 5048,
- LDSETLW = 5049,
- LDSETLX = 5050,
- LDSETP = 5051,
- LDSETPA = 5052,
- LDSETPAL = 5053,
- LDSETPL = 5054,
- LDSETW = 5055,
- LDSETX = 5056,
- LDSMAXAB = 5057,
- LDSMAXAH = 5058,
- LDSMAXALB = 5059,
- LDSMAXALH = 5060,
- LDSMAXALW = 5061,
- LDSMAXALX = 5062,
- LDSMAXAW = 5063,
- LDSMAXAX = 5064,
- LDSMAXB = 5065,
- LDSMAXH = 5066,
- LDSMAXLB = 5067,
- LDSMAXLH = 5068,
- LDSMAXLW = 5069,
- LDSMAXLX = 5070,
- LDSMAXW = 5071,
- LDSMAXX = 5072,
- LDSMINAB = 5073,
- LDSMINAH = 5074,
- LDSMINALB = 5075,
- LDSMINALH = 5076,
- LDSMINALW = 5077,
- LDSMINALX = 5078,
- LDSMINAW = 5079,
- LDSMINAX = 5080,
- LDSMINB = 5081,
- LDSMINH = 5082,
- LDSMINLB = 5083,
- LDSMINLH = 5084,
- LDSMINLW = 5085,
- LDSMINLX = 5086,
- LDSMINW = 5087,
- LDSMINX = 5088,
- LDTADDALW = 5089,
- LDTADDALX = 5090,
- LDTADDAW = 5091,
- LDTADDAX = 5092,
- LDTADDLW = 5093,
- LDTADDLX = 5094,
- LDTADDW = 5095,
- LDTADDX = 5096,
- LDTCLRALW = 5097,
- LDTCLRALX = 5098,
- LDTCLRAW = 5099,
- LDTCLRAX = 5100,
- LDTCLRLW = 5101,
- LDTCLRLX = 5102,
- LDTCLRW = 5103,
- LDTCLRX = 5104,
- LDTNPQi = 5105,
- LDTNPXi = 5106,
- LDTPQi = 5107,
- LDTPQpost = 5108,
- LDTPQpre = 5109,
- LDTPi = 5110,
- LDTPpost = 5111,
- LDTPpre = 5112,
- LDTRBi = 5113,
- LDTRHi = 5114,
- LDTRSBWi = 5115,
- LDTRSBXi = 5116,
- LDTRSHWi = 5117,
- LDTRSHXi = 5118,
- LDTRSWi = 5119,
- LDTRWi = 5120,
- LDTRXi = 5121,
- LDTSETALW = 5122,
- LDTSETALX = 5123,
- LDTSETAW = 5124,
- LDTSETAX = 5125,
- LDTSETLW = 5126,
- LDTSETLX = 5127,
- LDTSETW = 5128,
- LDTSETX = 5129,
- LDTXRWr = 5130,
- LDTXRXr = 5131,
- LDUMAXAB = 5132,
- LDUMAXAH = 5133,
- LDUMAXALB = 5134,
- LDUMAXALH = 5135,
- LDUMAXALW = 5136,
- LDUMAXALX = 5137,
- LDUMAXAW = 5138,
- LDUMAXAX = 5139,
- LDUMAXB = 5140,
- LDUMAXH = 5141,
- LDUMAXLB = 5142,
- LDUMAXLH = 5143,
- LDUMAXLW = 5144,
- LDUMAXLX = 5145,
- LDUMAXW = 5146,
- LDUMAXX = 5147,
- LDUMINAB = 5148,
- LDUMINAH = 5149,
- LDUMINALB = 5150,
- LDUMINALH = 5151,
- LDUMINALW = 5152,
- LDUMINALX = 5153,
- LDUMINAW = 5154,
- LDUMINAX = 5155,
- LDUMINB = 5156,
- LDUMINH = 5157,
- LDUMINLB = 5158,
- LDUMINLH = 5159,
- LDUMINLW = 5160,
- LDUMINLX = 5161,
- LDUMINW = 5162,
- LDUMINX = 5163,
- LDURBBi = 5164,
- LDURBi = 5165,
- LDURDi = 5166,
- LDURHHi = 5167,
- LDURHi = 5168,
- LDURQi = 5169,
- LDURSBWi = 5170,
- LDURSBXi = 5171,
- LDURSHWi = 5172,
- LDURSHXi = 5173,
- LDURSWi = 5174,
- LDURSi = 5175,
- LDURWi = 5176,
- LDURXi = 5177,
- LDXPW = 5178,
- LDXPX = 5179,
- LDXRB = 5180,
- LDXRH = 5181,
- LDXRW = 5182,
- LDXRX = 5183,
- LSLR_ZPmZ_B = 5184,
- LSLR_ZPmZ_D = 5185,
- LSLR_ZPmZ_H = 5186,
- LSLR_ZPmZ_S = 5187,
- LSLVWr = 5188,
- LSLVXr = 5189,
- LSL_WIDE_ZPmZ_B = 5190,
- LSL_WIDE_ZPmZ_H = 5191,
- LSL_WIDE_ZPmZ_S = 5192,
- LSL_WIDE_ZZZ_B = 5193,
- LSL_WIDE_ZZZ_H = 5194,
- LSL_WIDE_ZZZ_S = 5195,
- LSL_ZPmI_B = 5196,
- LSL_ZPmI_D = 5197,
- LSL_ZPmI_H = 5198,
- LSL_ZPmI_S = 5199,
- LSL_ZPmZ_B = 5200,
- LSL_ZPmZ_D = 5201,
- LSL_ZPmZ_H = 5202,
- LSL_ZPmZ_S = 5203,
- LSL_ZZI_B = 5204,
- LSL_ZZI_D = 5205,
- LSL_ZZI_H = 5206,
- LSL_ZZI_S = 5207,
- LSRR_ZPmZ_B = 5208,
- LSRR_ZPmZ_D = 5209,
- LSRR_ZPmZ_H = 5210,
- LSRR_ZPmZ_S = 5211,
- LSRVWr = 5212,
- LSRVXr = 5213,
- LSR_WIDE_ZPmZ_B = 5214,
- LSR_WIDE_ZPmZ_H = 5215,
- LSR_WIDE_ZPmZ_S = 5216,
- LSR_WIDE_ZZZ_B = 5217,
- LSR_WIDE_ZZZ_H = 5218,
- LSR_WIDE_ZZZ_S = 5219,
- LSR_ZPmI_B = 5220,
- LSR_ZPmI_D = 5221,
- LSR_ZPmI_H = 5222,
- LSR_ZPmI_S = 5223,
- LSR_ZPmZ_B = 5224,
- LSR_ZPmZ_D = 5225,
- LSR_ZPmZ_H = 5226,
- LSR_ZPmZ_S = 5227,
- LSR_ZZI_B = 5228,
- LSR_ZZI_D = 5229,
- LSR_ZZI_H = 5230,
- LSR_ZZI_S = 5231,
- LUT2_B = 5232,
- LUT2_H = 5233,
- LUT4_B = 5234,
- LUT4_H = 5235,
- LUTI2_2ZTZI_B = 5236,
- LUTI2_2ZTZI_H = 5237,
- LUTI2_2ZTZI_S = 5238,
- LUTI2_4ZTZI_B = 5239,
- LUTI2_4ZTZI_H = 5240,
- LUTI2_4ZTZI_S = 5241,
- LUTI2_S_2ZTZI_B = 5242,
- LUTI2_S_2ZTZI_H = 5243,
- LUTI2_S_4ZTZI_B = 5244,
- LUTI2_S_4ZTZI_H = 5245,
- LUTI2_ZTZI_B = 5246,
- LUTI2_ZTZI_H = 5247,
- LUTI2_ZTZI_S = 5248,
- LUTI2_ZZZI_B = 5249,
- LUTI2_ZZZI_H = 5250,
- LUTI4_2ZTZI_B = 5251,
- LUTI4_2ZTZI_H = 5252,
- LUTI4_2ZTZI_S = 5253,
- LUTI4_4ZTZI_H = 5254,
- LUTI4_4ZTZI_S = 5255,
- LUTI4_4ZZT2Z = 5256,
- LUTI4_S_2ZTZI_B = 5257,
- LUTI4_S_2ZTZI_H = 5258,
- LUTI4_S_4ZTZI_H = 5259,
- LUTI4_S_4ZZT2Z = 5260,
- LUTI4_Z2ZZI = 5261,
- LUTI4_ZTZI_B = 5262,
- LUTI4_ZTZI_H = 5263,
- LUTI4_ZTZI_S = 5264,
- LUTI4_ZZZI_B = 5265,
- LUTI4_ZZZI_H = 5266,
- MADDPT = 5267,
- MADDWrrr = 5268,
- MADDXrrr = 5269,
- MAD_CPA = 5270,
- MAD_ZPmZZ_B = 5271,
- MAD_ZPmZZ_D = 5272,
- MAD_ZPmZZ_H = 5273,
- MAD_ZPmZZ_S = 5274,
- MATCH_PPzZZ_B = 5275,
- MATCH_PPzZZ_H = 5276,
- MLA_CPA = 5277,
- MLA_ZPmZZ_B = 5278,
- MLA_ZPmZZ_D = 5279,
- MLA_ZPmZZ_H = 5280,
- MLA_ZPmZZ_S = 5281,
- MLA_ZZZI_D = 5282,
- MLA_ZZZI_H = 5283,
- MLA_ZZZI_S = 5284,
- MLAv16i8 = 5285,
- MLAv2i32 = 5286,
- MLAv2i32_indexed = 5287,
- MLAv4i16 = 5288,
- MLAv4i16_indexed = 5289,
- MLAv4i32 = 5290,
- MLAv4i32_indexed = 5291,
- MLAv8i16 = 5292,
- MLAv8i16_indexed = 5293,
- MLAv8i8 = 5294,
- MLS_ZPmZZ_B = 5295,
- MLS_ZPmZZ_D = 5296,
- MLS_ZPmZZ_H = 5297,
- MLS_ZPmZZ_S = 5298,
- MLS_ZZZI_D = 5299,
- MLS_ZZZI_H = 5300,
- MLS_ZZZI_S = 5301,
- MLSv16i8 = 5302,
- MLSv2i32 = 5303,
- MLSv2i32_indexed = 5304,
- MLSv4i16 = 5305,
- MLSv4i16_indexed = 5306,
- MLSv4i32 = 5307,
- MLSv4i32_indexed = 5308,
- MLSv8i16 = 5309,
- MLSv8i16_indexed = 5310,
- MLSv8i8 = 5311,
- MOPSSETGE = 5312,
- MOPSSETGEN = 5313,
- MOPSSETGET = 5314,
- MOPSSETGETN = 5315,
- MOVAZ_2ZMI_H_B = 5316,
- MOVAZ_2ZMI_H_D = 5317,
- MOVAZ_2ZMI_H_H = 5318,
- MOVAZ_2ZMI_H_S = 5319,
- MOVAZ_2ZMI_V_B = 5320,
- MOVAZ_2ZMI_V_D = 5321,
- MOVAZ_2ZMI_V_H = 5322,
- MOVAZ_2ZMI_V_S = 5323,
- MOVAZ_4ZMI_H_B = 5324,
- MOVAZ_4ZMI_H_D = 5325,
- MOVAZ_4ZMI_H_H = 5326,
- MOVAZ_4ZMI_H_S = 5327,
- MOVAZ_4ZMI_V_B = 5328,
- MOVAZ_4ZMI_V_D = 5329,
- MOVAZ_4ZMI_V_H = 5330,
- MOVAZ_4ZMI_V_S = 5331,
- MOVAZ_VG2_2ZMXI = 5332,
- MOVAZ_VG4_4ZMXI = 5333,
- MOVAZ_ZMI_H_B = 5334,
- MOVAZ_ZMI_H_D = 5335,
- MOVAZ_ZMI_H_H = 5336,
- MOVAZ_ZMI_H_Q = 5337,
- MOVAZ_ZMI_H_S = 5338,
- MOVAZ_ZMI_V_B = 5339,
- MOVAZ_ZMI_V_D = 5340,
- MOVAZ_ZMI_V_H = 5341,
- MOVAZ_ZMI_V_Q = 5342,
- MOVAZ_ZMI_V_S = 5343,
- MOVA_2ZMXI_H_B = 5344,
- MOVA_2ZMXI_H_D = 5345,
- MOVA_2ZMXI_H_H = 5346,
- MOVA_2ZMXI_H_S = 5347,
- MOVA_2ZMXI_V_B = 5348,
- MOVA_2ZMXI_V_D = 5349,
- MOVA_2ZMXI_V_H = 5350,
- MOVA_2ZMXI_V_S = 5351,
- MOVA_4ZMXI_H_B = 5352,
- MOVA_4ZMXI_H_D = 5353,
- MOVA_4ZMXI_H_H = 5354,
- MOVA_4ZMXI_H_S = 5355,
- MOVA_4ZMXI_V_B = 5356,
- MOVA_4ZMXI_V_D = 5357,
- MOVA_4ZMXI_V_H = 5358,
- MOVA_4ZMXI_V_S = 5359,
- MOVA_MXI2Z_H_B = 5360,
- MOVA_MXI2Z_H_D = 5361,
- MOVA_MXI2Z_H_H = 5362,
- MOVA_MXI2Z_H_S = 5363,
- MOVA_MXI2Z_V_B = 5364,
- MOVA_MXI2Z_V_D = 5365,
- MOVA_MXI2Z_V_H = 5366,
- MOVA_MXI2Z_V_S = 5367,
- MOVA_MXI4Z_H_B = 5368,
- MOVA_MXI4Z_H_D = 5369,
- MOVA_MXI4Z_H_H = 5370,
- MOVA_MXI4Z_H_S = 5371,
- MOVA_MXI4Z_V_B = 5372,
- MOVA_MXI4Z_V_D = 5373,
- MOVA_MXI4Z_V_H = 5374,
- MOVA_MXI4Z_V_S = 5375,
- MOVA_VG2_2ZMXI = 5376,
- MOVA_VG2_MXI2Z = 5377,
- MOVA_VG4_4ZMXI = 5378,
- MOVA_VG4_MXI4Z = 5379,
- MOVID = 5380,
- MOVIv16b_ns = 5381,
- MOVIv2d_ns = 5382,
- MOVIv2i32 = 5383,
- MOVIv2s_msl = 5384,
- MOVIv4i16 = 5385,
- MOVIv4i32 = 5386,
- MOVIv4s_msl = 5387,
- MOVIv8b_ns = 5388,
- MOVIv8i16 = 5389,
- MOVKWi = 5390,
- MOVKXi = 5391,
- MOVNWi = 5392,
- MOVNXi = 5393,
- MOVPRFX_ZPmZ_B = 5394,
- MOVPRFX_ZPmZ_D = 5395,
- MOVPRFX_ZPmZ_H = 5396,
- MOVPRFX_ZPmZ_S = 5397,
- MOVPRFX_ZPzZ_B = 5398,
- MOVPRFX_ZPzZ_D = 5399,
- MOVPRFX_ZPzZ_H = 5400,
- MOVPRFX_ZPzZ_S = 5401,
- MOVPRFX_ZZ = 5402,
- MOVT_TIX = 5403,
- MOVT_TIZ = 5404,
- MOVT_XTI = 5405,
- MOVZWi = 5406,
- MOVZXi = 5407,
- MRRS = 5408,
- MRS = 5409,
- MSB_ZPmZZ_B = 5410,
- MSB_ZPmZZ_D = 5411,
- MSB_ZPmZZ_H = 5412,
- MSB_ZPmZZ_S = 5413,
- MSR = 5414,
- MSRR = 5415,
- MSRpstateImm1 = 5416,
- MSRpstateImm4 = 5417,
- MSRpstatesvcrImm1 = 5418,
- MSUBPT = 5419,
- MSUBWrrr = 5420,
- MSUBXrrr = 5421,
- MUL_ZI_B = 5422,
- MUL_ZI_D = 5423,
- MUL_ZI_H = 5424,
- MUL_ZI_S = 5425,
- MUL_ZPmZ_B = 5426,
- MUL_ZPmZ_D = 5427,
- MUL_ZPmZ_H = 5428,
- MUL_ZPmZ_S = 5429,
- MUL_ZZZI_D = 5430,
- MUL_ZZZI_H = 5431,
- MUL_ZZZI_S = 5432,
- MUL_ZZZ_B = 5433,
- MUL_ZZZ_D = 5434,
- MUL_ZZZ_H = 5435,
- MUL_ZZZ_S = 5436,
- MULv16i8 = 5437,
- MULv2i32 = 5438,
- MULv2i32_indexed = 5439,
- MULv4i16 = 5440,
- MULv4i16_indexed = 5441,
- MULv4i32 = 5442,
- MULv4i32_indexed = 5443,
- MULv8i16 = 5444,
- MULv8i16_indexed = 5445,
- MULv8i8 = 5446,
- MVNIv2i32 = 5447,
- MVNIv2s_msl = 5448,
- MVNIv4i16 = 5449,
- MVNIv4i32 = 5450,
- MVNIv4s_msl = 5451,
- MVNIv8i16 = 5452,
- NANDS_PPzPP = 5453,
- NAND_PPzPP = 5454,
- NBSL_ZZZZ = 5455,
- NEG_ZPmZ_B = 5456,
- NEG_ZPmZ_D = 5457,
- NEG_ZPmZ_H = 5458,
- NEG_ZPmZ_S = 5459,
- NEG_ZPzZ_B = 5460,
- NEG_ZPzZ_D = 5461,
- NEG_ZPzZ_H = 5462,
- NEG_ZPzZ_S = 5463,
- NEGv16i8 = 5464,
- NEGv1i64 = 5465,
- NEGv2i32 = 5466,
- NEGv2i64 = 5467,
- NEGv4i16 = 5468,
- NEGv4i32 = 5469,
- NEGv8i16 = 5470,
- NEGv8i8 = 5471,
- NMATCH_PPzZZ_B = 5472,
- NMATCH_PPzZZ_H = 5473,
- NORS_PPzPP = 5474,
- NOR_PPzPP = 5475,
- NOT_ZPmZ_B = 5476,
- NOT_ZPmZ_D = 5477,
- NOT_ZPmZ_H = 5478,
- NOT_ZPmZ_S = 5479,
- NOT_ZPzZ_B = 5480,
- NOT_ZPzZ_D = 5481,
- NOT_ZPzZ_H = 5482,
- NOT_ZPzZ_S = 5483,
- NOTv16i8 = 5484,
- NOTv8i8 = 5485,
- ORNS_PPzPP = 5486,
- ORNWrs = 5487,
- ORNXrs = 5488,
- ORN_PPzPP = 5489,
- ORNv16i8 = 5490,
- ORNv8i8 = 5491,
- ORQV_VPZ_B = 5492,
- ORQV_VPZ_D = 5493,
- ORQV_VPZ_H = 5494,
- ORQV_VPZ_S = 5495,
- ORRS_PPzPP = 5496,
- ORRWri = 5497,
- ORRWrs = 5498,
- ORRXri = 5499,
- ORRXrs = 5500,
- ORR_PPzPP = 5501,
- ORR_ZI = 5502,
- ORR_ZPmZ_B = 5503,
- ORR_ZPmZ_D = 5504,
- ORR_ZPmZ_H = 5505,
- ORR_ZPmZ_S = 5506,
- ORR_ZZZ = 5507,
- ORRv16i8 = 5508,
- ORRv2i32 = 5509,
- ORRv4i16 = 5510,
- ORRv4i32 = 5511,
- ORRv8i16 = 5512,
- ORRv8i8 = 5513,
- ORV_VPZ_B = 5514,
- ORV_VPZ_D = 5515,
- ORV_VPZ_H = 5516,
- ORV_VPZ_S = 5517,
- PACDA = 5518,
- PACDB = 5519,
- PACDZA = 5520,
- PACDZB = 5521,
- PACGA = 5522,
- PACIA = 5523,
- PACIA1716 = 5524,
- PACIA171615 = 5525,
- PACIASP = 5526,
- PACIASPPC = 5527,
- PACIAZ = 5528,
- PACIB = 5529,
- PACIB1716 = 5530,
- PACIB171615 = 5531,
- PACIBSP = 5532,
- PACIBSPPC = 5533,
- PACIBZ = 5534,
- PACIZA = 5535,
- PACIZB = 5536,
- PACM = 5537,
- PACNBIASPPC = 5538,
- PACNBIBSPPC = 5539,
- PEXT_2PCI_B = 5540,
- PEXT_2PCI_D = 5541,
- PEXT_2PCI_H = 5542,
- PEXT_2PCI_S = 5543,
- PEXT_PCI_B = 5544,
- PEXT_PCI_D = 5545,
- PEXT_PCI_H = 5546,
- PEXT_PCI_S = 5547,
- PFALSE = 5548,
- PFIRST_B = 5549,
- PMLAL_2ZZZ_Q = 5550,
- PMOV_PZI_B = 5551,
- PMOV_PZI_D = 5552,
- PMOV_PZI_H = 5553,
- PMOV_PZI_S = 5554,
- PMOV_ZIP_B = 5555,
- PMOV_ZIP_D = 5556,
- PMOV_ZIP_H = 5557,
- PMOV_ZIP_S = 5558,
- PMULLB_ZZZ_D = 5559,
- PMULLB_ZZZ_H = 5560,
- PMULLB_ZZZ_Q = 5561,
- PMULLT_ZZZ_D = 5562,
- PMULLT_ZZZ_H = 5563,
- PMULLT_ZZZ_Q = 5564,
- PMULL_2ZZZ_Q = 5565,
- PMULLv16i8 = 5566,
- PMULLv1i64 = 5567,
- PMULLv2i64 = 5568,
- PMULLv8i8 = 5569,
- PMUL_ZZZ_B = 5570,
- PMULv16i8 = 5571,
- PMULv8i8 = 5572,
- PNEXT_B = 5573,
- PNEXT_D = 5574,
- PNEXT_H = 5575,
- PNEXT_S = 5576,
- PRFB_D_PZI = 5577,
- PRFB_D_SCALED = 5578,
- PRFB_D_SXTW_SCALED = 5579,
- PRFB_D_UXTW_SCALED = 5580,
- PRFB_PRI = 5581,
- PRFB_PRR = 5582,
- PRFB_S_PZI = 5583,
- PRFB_S_SXTW_SCALED = 5584,
- PRFB_S_UXTW_SCALED = 5585,
- PRFD_D_PZI = 5586,
- PRFD_D_SCALED = 5587,
- PRFD_D_SXTW_SCALED = 5588,
- PRFD_D_UXTW_SCALED = 5589,
- PRFD_PRI = 5590,
- PRFD_PRR = 5591,
- PRFD_S_PZI = 5592,
- PRFD_S_SXTW_SCALED = 5593,
- PRFD_S_UXTW_SCALED = 5594,
- PRFH_D_PZI = 5595,
- PRFH_D_SCALED = 5596,
- PRFH_D_SXTW_SCALED = 5597,
- PRFH_D_UXTW_SCALED = 5598,
- PRFH_PRI = 5599,
- PRFH_PRR = 5600,
- PRFH_S_PZI = 5601,
- PRFH_S_SXTW_SCALED = 5602,
- PRFH_S_UXTW_SCALED = 5603,
- PRFMl = 5604,
- PRFMroW = 5605,
- PRFMroX = 5606,
- PRFMui = 5607,
- PRFUMi = 5608,
- PRFW_D_PZI = 5609,
- PRFW_D_SCALED = 5610,
- PRFW_D_SXTW_SCALED = 5611,
- PRFW_D_UXTW_SCALED = 5612,
- PRFW_PRI = 5613,
- PRFW_PRR = 5614,
- PRFW_S_PZI = 5615,
- PRFW_S_SXTW_SCALED = 5616,
- PRFW_S_UXTW_SCALED = 5617,
- PSEL_PPPRI_B = 5618,
- PSEL_PPPRI_D = 5619,
- PSEL_PPPRI_H = 5620,
- PSEL_PPPRI_S = 5621,
- PTEST_PP = 5622,
- PTRUES_B = 5623,
- PTRUES_D = 5624,
- PTRUES_H = 5625,
- PTRUES_S = 5626,
- PTRUE_B = 5627,
- PTRUE_C_B = 5628,
- PTRUE_C_D = 5629,
- PTRUE_C_H = 5630,
- PTRUE_C_S = 5631,
- PTRUE_D = 5632,
- PTRUE_H = 5633,
- PTRUE_S = 5634,
- PUNPKHI_PP = 5635,
- PUNPKLO_PP = 5636,
- RADDHNB_ZZZ_B = 5637,
- RADDHNB_ZZZ_H = 5638,
- RADDHNB_ZZZ_S = 5639,
- RADDHNT_ZZZ_B = 5640,
- RADDHNT_ZZZ_H = 5641,
- RADDHNT_ZZZ_S = 5642,
- RADDHNv2i64_v2i32 = 5643,
- RADDHNv2i64_v4i32 = 5644,
- RADDHNv4i32_v4i16 = 5645,
- RADDHNv4i32_v8i16 = 5646,
- RADDHNv8i16_v16i8 = 5647,
- RADDHNv8i16_v8i8 = 5648,
- RAX1 = 5649,
- RAX1_ZZZ_D = 5650,
- RBITWr = 5651,
- RBITXr = 5652,
- RBIT_ZPmZ_B = 5653,
- RBIT_ZPmZ_D = 5654,
- RBIT_ZPmZ_H = 5655,
- RBIT_ZPmZ_S = 5656,
- RBIT_ZPzZ_B = 5657,
- RBIT_ZPzZ_D = 5658,
- RBIT_ZPzZ_H = 5659,
- RBIT_ZPzZ_S = 5660,
- RBITv16i8 = 5661,
- RBITv8i8 = 5662,
- RCWCAS = 5663,
- RCWCASA = 5664,
- RCWCASAL = 5665,
- RCWCASL = 5666,
- RCWCASP = 5667,
- RCWCASPA = 5668,
- RCWCASPAL = 5669,
- RCWCASPL = 5670,
- RCWCLR = 5671,
- RCWCLRA = 5672,
- RCWCLRAL = 5673,
- RCWCLRL = 5674,
- RCWCLRP = 5675,
- RCWCLRPA = 5676,
- RCWCLRPAL = 5677,
- RCWCLRPL = 5678,
- RCWCLRS = 5679,
- RCWCLRSA = 5680,
- RCWCLRSAL = 5681,
- RCWCLRSL = 5682,
- RCWCLRSP = 5683,
- RCWCLRSPA = 5684,
- RCWCLRSPAL = 5685,
- RCWCLRSPL = 5686,
- RCWSCAS = 5687,
- RCWSCASA = 5688,
- RCWSCASAL = 5689,
- RCWSCASL = 5690,
- RCWSCASP = 5691,
- RCWSCASPA = 5692,
- RCWSCASPAL = 5693,
- RCWSCASPL = 5694,
- RCWSET = 5695,
- RCWSETA = 5696,
- RCWSETAL = 5697,
- RCWSETL = 5698,
- RCWSETP = 5699,
- RCWSETPA = 5700,
- RCWSETPAL = 5701,
- RCWSETPL = 5702,
- RCWSETS = 5703,
- RCWSETSA = 5704,
- RCWSETSAL = 5705,
- RCWSETSL = 5706,
- RCWSETSP = 5707,
- RCWSETSPA = 5708,
- RCWSETSPAL = 5709,
- RCWSETSPL = 5710,
- RCWSWP = 5711,
- RCWSWPA = 5712,
- RCWSWPAL = 5713,
- RCWSWPL = 5714,
- RCWSWPP = 5715,
- RCWSWPPA = 5716,
- RCWSWPPAL = 5717,
- RCWSWPPL = 5718,
- RCWSWPS = 5719,
- RCWSWPSA = 5720,
- RCWSWPSAL = 5721,
- RCWSWPSL = 5722,
- RCWSWPSP = 5723,
- RCWSWPSPA = 5724,
- RCWSWPSPAL = 5725,
- RCWSWPSPL = 5726,
- RDFFRS_PPz = 5727,
- RDFFR_P = 5728,
- RDFFR_PPz = 5729,
- RDSVLI_XI = 5730,
- RDVLI_XI = 5731,
- RET = 5732,
- RETAA = 5733,
- RETAASPPCi = 5734,
- RETAASPPCr = 5735,
- RETAB = 5736,
- RETABSPPCi = 5737,
- RETABSPPCr = 5738,
- REV16Wr = 5739,
- REV16Xr = 5740,
- REV16v16i8 = 5741,
- REV16v8i8 = 5742,
- REV32Xr = 5743,
- REV32v16i8 = 5744,
- REV32v4i16 = 5745,
- REV32v8i16 = 5746,
- REV32v8i8 = 5747,
- REV64v16i8 = 5748,
- REV64v2i32 = 5749,
- REV64v4i16 = 5750,
- REV64v4i32 = 5751,
- REV64v8i16 = 5752,
- REV64v8i8 = 5753,
- REVB_ZPmZ_D = 5754,
- REVB_ZPmZ_H = 5755,
- REVB_ZPmZ_S = 5756,
- REVB_ZPzZ_D = 5757,
- REVB_ZPzZ_H = 5758,
- REVB_ZPzZ_S = 5759,
- REVD_ZPmZ = 5760,
- REVD_ZPzZ = 5761,
- REVH_ZPmZ_D = 5762,
- REVH_ZPmZ_S = 5763,
- REVH_ZPzZ_D = 5764,
- REVH_ZPzZ_S = 5765,
- REVW_ZPmZ_D = 5766,
- REVW_ZPzZ_D = 5767,
- REVWr = 5768,
- REVXr = 5769,
- REV_PP_B = 5770,
- REV_PP_D = 5771,
- REV_PP_H = 5772,
- REV_PP_S = 5773,
- REV_ZZ_B = 5774,
- REV_ZZ_D = 5775,
- REV_ZZ_H = 5776,
- REV_ZZ_S = 5777,
- RMIF = 5778,
- RORVWr = 5779,
- RORVXr = 5780,
- RPRFM = 5781,
- RSHRNB_ZZI_B = 5782,
- RSHRNB_ZZI_H = 5783,
- RSHRNB_ZZI_S = 5784,
- RSHRNT_ZZI_B = 5785,
- RSHRNT_ZZI_H = 5786,
- RSHRNT_ZZI_S = 5787,
- RSHRNv16i8_shift = 5788,
- RSHRNv2i32_shift = 5789,
- RSHRNv4i16_shift = 5790,
- RSHRNv4i32_shift = 5791,
- RSHRNv8i16_shift = 5792,
- RSHRNv8i8_shift = 5793,
- RSUBHNB_ZZZ_B = 5794,
- RSUBHNB_ZZZ_H = 5795,
- RSUBHNB_ZZZ_S = 5796,
- RSUBHNT_ZZZ_B = 5797,
- RSUBHNT_ZZZ_H = 5798,
- RSUBHNT_ZZZ_S = 5799,
- RSUBHNv2i64_v2i32 = 5800,
- RSUBHNv2i64_v4i32 = 5801,
- RSUBHNv4i32_v4i16 = 5802,
- RSUBHNv4i32_v8i16 = 5803,
- RSUBHNv8i16_v16i8 = 5804,
- RSUBHNv8i16_v8i8 = 5805,
- SABALB_ZZZ_D = 5806,
- SABALB_ZZZ_H = 5807,
- SABALB_ZZZ_S = 5808,
- SABALT_ZZZ_D = 5809,
- SABALT_ZZZ_H = 5810,
- SABALT_ZZZ_S = 5811,
- SABALv16i8_v8i16 = 5812,
- SABALv2i32_v2i64 = 5813,
- SABALv4i16_v4i32 = 5814,
- SABALv4i32_v2i64 = 5815,
- SABALv8i16_v4i32 = 5816,
- SABALv8i8_v8i16 = 5817,
- SABA_ZZZ_B = 5818,
- SABA_ZZZ_D = 5819,
- SABA_ZZZ_H = 5820,
- SABA_ZZZ_S = 5821,
- SABAv16i8 = 5822,
- SABAv2i32 = 5823,
- SABAv4i16 = 5824,
- SABAv4i32 = 5825,
- SABAv8i16 = 5826,
- SABAv8i8 = 5827,
- SABDLB_ZZZ_D = 5828,
- SABDLB_ZZZ_H = 5829,
- SABDLB_ZZZ_S = 5830,
- SABDLT_ZZZ_D = 5831,
- SABDLT_ZZZ_H = 5832,
- SABDLT_ZZZ_S = 5833,
- SABDLv16i8_v8i16 = 5834,
- SABDLv2i32_v2i64 = 5835,
- SABDLv4i16_v4i32 = 5836,
- SABDLv4i32_v2i64 = 5837,
- SABDLv8i16_v4i32 = 5838,
- SABDLv8i8_v8i16 = 5839,
- SABD_ZPmZ_B = 5840,
- SABD_ZPmZ_D = 5841,
- SABD_ZPmZ_H = 5842,
- SABD_ZPmZ_S = 5843,
- SABDv16i8 = 5844,
- SABDv2i32 = 5845,
- SABDv4i16 = 5846,
- SABDv4i32 = 5847,
- SABDv8i16 = 5848,
- SABDv8i8 = 5849,
- SADALP_ZPmZ_D = 5850,
- SADALP_ZPmZ_H = 5851,
- SADALP_ZPmZ_S = 5852,
- SADALPv16i8_v8i16 = 5853,
- SADALPv2i32_v1i64 = 5854,
- SADALPv4i16_v2i32 = 5855,
- SADALPv4i32_v2i64 = 5856,
- SADALPv8i16_v4i32 = 5857,
- SADALPv8i8_v4i16 = 5858,
- SADDLBT_ZZZ_D = 5859,
- SADDLBT_ZZZ_H = 5860,
- SADDLBT_ZZZ_S = 5861,
- SADDLB_ZZZ_D = 5862,
- SADDLB_ZZZ_H = 5863,
- SADDLB_ZZZ_S = 5864,
- SADDLPv16i8_v8i16 = 5865,
- SADDLPv2i32_v1i64 = 5866,
- SADDLPv4i16_v2i32 = 5867,
- SADDLPv4i32_v2i64 = 5868,
- SADDLPv8i16_v4i32 = 5869,
- SADDLPv8i8_v4i16 = 5870,
- SADDLT_ZZZ_D = 5871,
- SADDLT_ZZZ_H = 5872,
- SADDLT_ZZZ_S = 5873,
- SADDLVv16i8v = 5874,
- SADDLVv4i16v = 5875,
- SADDLVv4i32v = 5876,
- SADDLVv8i16v = 5877,
- SADDLVv8i8v = 5878,
- SADDLv16i8_v8i16 = 5879,
- SADDLv2i32_v2i64 = 5880,
- SADDLv4i16_v4i32 = 5881,
- SADDLv4i32_v2i64 = 5882,
- SADDLv8i16_v4i32 = 5883,
- SADDLv8i8_v8i16 = 5884,
- SADDV_VPZ_B = 5885,
- SADDV_VPZ_H = 5886,
- SADDV_VPZ_S = 5887,
- SADDWB_ZZZ_D = 5888,
- SADDWB_ZZZ_H = 5889,
- SADDWB_ZZZ_S = 5890,
- SADDWT_ZZZ_D = 5891,
- SADDWT_ZZZ_H = 5892,
- SADDWT_ZZZ_S = 5893,
- SADDWv16i8_v8i16 = 5894,
- SADDWv2i32_v2i64 = 5895,
- SADDWv4i16_v4i32 = 5896,
- SADDWv4i32_v2i64 = 5897,
- SADDWv8i16_v4i32 = 5898,
- SADDWv8i8_v8i16 = 5899,
- SB = 5900,
- SBCLB_ZZZ_D = 5901,
- SBCLB_ZZZ_S = 5902,
- SBCLT_ZZZ_D = 5903,
- SBCLT_ZZZ_S = 5904,
- SBCSWr = 5905,
- SBCSXr = 5906,
- SBCWr = 5907,
- SBCXr = 5908,
- SBFMWri = 5909,
- SBFMXri = 5910,
- SCLAMP_VG2_2Z2Z_B = 5911,
- SCLAMP_VG2_2Z2Z_D = 5912,
- SCLAMP_VG2_2Z2Z_H = 5913,
- SCLAMP_VG2_2Z2Z_S = 5914,
- SCLAMP_VG4_4Z4Z_B = 5915,
- SCLAMP_VG4_4Z4Z_D = 5916,
- SCLAMP_VG4_4Z4Z_H = 5917,
- SCLAMP_VG4_4Z4Z_S = 5918,
- SCLAMP_ZZZ_B = 5919,
- SCLAMP_ZZZ_D = 5920,
- SCLAMP_ZZZ_H = 5921,
- SCLAMP_ZZZ_S = 5922,
- SCVTFDSr = 5923,
- SCVTFHDr = 5924,
- SCVTFHSr = 5925,
- SCVTFSDr = 5926,
- SCVTFSWDri = 5927,
- SCVTFSWHri = 5928,
- SCVTFSWSri = 5929,
- SCVTFSXDri = 5930,
- SCVTFSXHri = 5931,
- SCVTFSXSri = 5932,
- SCVTFUWDri = 5933,
- SCVTFUWHri = 5934,
- SCVTFUWSri = 5935,
- SCVTFUXDri = 5936,
- SCVTFUXHri = 5937,
- SCVTFUXSri = 5938,
- SCVTF_2Z2Z_StoS = 5939,
- SCVTF_4Z4Z_StoS = 5940,
- SCVTF_ZPmZ_DtoD = 5941,
- SCVTF_ZPmZ_DtoH = 5942,
- SCVTF_ZPmZ_DtoS = 5943,
- SCVTF_ZPmZ_HtoH = 5944,
- SCVTF_ZPmZ_StoD = 5945,
- SCVTF_ZPmZ_StoH = 5946,
- SCVTF_ZPmZ_StoS = 5947,
- SCVTF_ZPzZ_DtoD = 5948,
- SCVTF_ZPzZ_DtoH = 5949,
- SCVTF_ZPzZ_DtoS = 5950,
- SCVTF_ZPzZ_HtoH = 5951,
- SCVTF_ZPzZ_StoD = 5952,
- SCVTF_ZPzZ_StoH = 5953,
- SCVTF_ZPzZ_StoS = 5954,
- SCVTFd = 5955,
- SCVTFh = 5956,
- SCVTFs = 5957,
- SCVTFv1i16 = 5958,
- SCVTFv1i32 = 5959,
- SCVTFv1i64 = 5960,
- SCVTFv2f32 = 5961,
- SCVTFv2f64 = 5962,
- SCVTFv2i32_shift = 5963,
- SCVTFv2i64_shift = 5964,
- SCVTFv4f16 = 5965,
- SCVTFv4f32 = 5966,
- SCVTFv4i16_shift = 5967,
- SCVTFv4i32_shift = 5968,
- SCVTFv8f16 = 5969,
- SCVTFv8i16_shift = 5970,
- SDIVR_ZPmZ_D = 5971,
- SDIVR_ZPmZ_S = 5972,
- SDIVWr = 5973,
- SDIVXr = 5974,
- SDIV_ZPmZ_D = 5975,
- SDIV_ZPmZ_S = 5976,
- SDOT_VG2_M2Z2Z_BtoS = 5977,
- SDOT_VG2_M2Z2Z_HtoD = 5978,
- SDOT_VG2_M2Z2Z_HtoS = 5979,
- SDOT_VG2_M2ZZI_BToS = 5980,
- SDOT_VG2_M2ZZI_HToS = 5981,
- SDOT_VG2_M2ZZI_HtoD = 5982,
- SDOT_VG2_M2ZZ_BtoS = 5983,
- SDOT_VG2_M2ZZ_HtoD = 5984,
- SDOT_VG2_M2ZZ_HtoS = 5985,
- SDOT_VG4_M4Z4Z_BtoS = 5986,
- SDOT_VG4_M4Z4Z_HtoD = 5987,
- SDOT_VG4_M4Z4Z_HtoS = 5988,
- SDOT_VG4_M4ZZI_BToS = 5989,
- SDOT_VG4_M4ZZI_HToS = 5990,
- SDOT_VG4_M4ZZI_HtoD = 5991,
- SDOT_VG4_M4ZZ_BtoS = 5992,
- SDOT_VG4_M4ZZ_HtoD = 5993,
- SDOT_VG4_M4ZZ_HtoS = 5994,
- SDOT_ZZZI_D = 5995,
- SDOT_ZZZI_HtoS = 5996,
- SDOT_ZZZI_S = 5997,
- SDOT_ZZZ_D = 5998,
- SDOT_ZZZ_HtoS = 5999,
- SDOT_ZZZ_S = 6000,
- SDOTlanev16i8 = 6001,
- SDOTlanev8i8 = 6002,
- SDOTv16i8 = 6003,
- SDOTv8i8 = 6004,
- SEL_PPPP = 6005,
- SEL_VG2_2ZC2Z2Z_B = 6006,
- SEL_VG2_2ZC2Z2Z_D = 6007,
- SEL_VG2_2ZC2Z2Z_H = 6008,
- SEL_VG2_2ZC2Z2Z_S = 6009,
- SEL_VG4_4ZC4Z4Z_B = 6010,
- SEL_VG4_4ZC4Z4Z_D = 6011,
- SEL_VG4_4ZC4Z4Z_H = 6012,
- SEL_VG4_4ZC4Z4Z_S = 6013,
- SEL_ZPZZ_B = 6014,
- SEL_ZPZZ_D = 6015,
- SEL_ZPZZ_H = 6016,
- SEL_ZPZZ_S = 6017,
- SETE = 6018,
- SETEN = 6019,
- SETET = 6020,
- SETETN = 6021,
- SETF16 = 6022,
- SETF8 = 6023,
- SETFFR = 6024,
- SETGM = 6025,
- SETGMN = 6026,
- SETGMT = 6027,
- SETGMTN = 6028,
- SETGP = 6029,
- SETGPN = 6030,
- SETGPT = 6031,
- SETGPTN = 6032,
- SETM = 6033,
- SETMN = 6034,
- SETMT = 6035,
- SETMTN = 6036,
- SETP = 6037,
- SETPN = 6038,
- SETPT = 6039,
- SETPTN = 6040,
- SHA1Crrr = 6041,
- SHA1Hrr = 6042,
- SHA1Mrrr = 6043,
- SHA1Prrr = 6044,
- SHA1SU0rrr = 6045,
- SHA1SU1rr = 6046,
- SHA256H2rrr = 6047,
- SHA256Hrrr = 6048,
- SHA256SU0rr = 6049,
- SHA256SU1rrr = 6050,
- SHA512H = 6051,
- SHA512H2 = 6052,
- SHA512SU0 = 6053,
- SHA512SU1 = 6054,
- SHADD_ZPmZ_B = 6055,
- SHADD_ZPmZ_D = 6056,
- SHADD_ZPmZ_H = 6057,
- SHADD_ZPmZ_S = 6058,
- SHADDv16i8 = 6059,
- SHADDv2i32 = 6060,
- SHADDv4i16 = 6061,
- SHADDv4i32 = 6062,
- SHADDv8i16 = 6063,
- SHADDv8i8 = 6064,
- SHLLv16i8 = 6065,
- SHLLv2i32 = 6066,
- SHLLv4i16 = 6067,
- SHLLv4i32 = 6068,
- SHLLv8i16 = 6069,
- SHLLv8i8 = 6070,
- SHLd = 6071,
- SHLv16i8_shift = 6072,
- SHLv2i32_shift = 6073,
- SHLv2i64_shift = 6074,
- SHLv4i16_shift = 6075,
- SHLv4i32_shift = 6076,
- SHLv8i16_shift = 6077,
- SHLv8i8_shift = 6078,
- SHRNB_ZZI_B = 6079,
- SHRNB_ZZI_H = 6080,
- SHRNB_ZZI_S = 6081,
- SHRNT_ZZI_B = 6082,
- SHRNT_ZZI_H = 6083,
- SHRNT_ZZI_S = 6084,
- SHRNv16i8_shift = 6085,
- SHRNv2i32_shift = 6086,
- SHRNv4i16_shift = 6087,
- SHRNv4i32_shift = 6088,
- SHRNv8i16_shift = 6089,
- SHRNv8i8_shift = 6090,
- SHSUBR_ZPmZ_B = 6091,
- SHSUBR_ZPmZ_D = 6092,
- SHSUBR_ZPmZ_H = 6093,
- SHSUBR_ZPmZ_S = 6094,
- SHSUB_ZPmZ_B = 6095,
- SHSUB_ZPmZ_D = 6096,
- SHSUB_ZPmZ_H = 6097,
- SHSUB_ZPmZ_S = 6098,
- SHSUBv16i8 = 6099,
- SHSUBv2i32 = 6100,
- SHSUBv4i16 = 6101,
- SHSUBv4i32 = 6102,
- SHSUBv8i16 = 6103,
- SHSUBv8i8 = 6104,
- SLI_ZZI_B = 6105,
- SLI_ZZI_D = 6106,
- SLI_ZZI_H = 6107,
- SLI_ZZI_S = 6108,
- SLId = 6109,
- SLIv16i8_shift = 6110,
- SLIv2i32_shift = 6111,
- SLIv2i64_shift = 6112,
- SLIv4i16_shift = 6113,
- SLIv4i32_shift = 6114,
- SLIv8i16_shift = 6115,
- SLIv8i8_shift = 6116,
- SM3PARTW1 = 6117,
- SM3PARTW2 = 6118,
- SM3SS1 = 6119,
- SM3TT1A = 6120,
- SM3TT1B = 6121,
- SM3TT2A = 6122,
- SM3TT2B = 6123,
- SM4E = 6124,
- SM4EKEY_ZZZ_S = 6125,
- SM4ENCKEY = 6126,
- SM4E_ZZZ_S = 6127,
- SMADDLrrr = 6128,
- SMAXP_ZPmZ_B = 6129,
- SMAXP_ZPmZ_D = 6130,
- SMAXP_ZPmZ_H = 6131,
- SMAXP_ZPmZ_S = 6132,
- SMAXPv16i8 = 6133,
- SMAXPv2i32 = 6134,
- SMAXPv4i16 = 6135,
- SMAXPv4i32 = 6136,
- SMAXPv8i16 = 6137,
- SMAXPv8i8 = 6138,
- SMAXQV_VPZ_B = 6139,
- SMAXQV_VPZ_D = 6140,
- SMAXQV_VPZ_H = 6141,
- SMAXQV_VPZ_S = 6142,
- SMAXV_VPZ_B = 6143,
- SMAXV_VPZ_D = 6144,
- SMAXV_VPZ_H = 6145,
- SMAXV_VPZ_S = 6146,
- SMAXVv16i8v = 6147,
- SMAXVv4i16v = 6148,
- SMAXVv4i32v = 6149,
- SMAXVv8i16v = 6150,
- SMAXVv8i8v = 6151,
- SMAXWri = 6152,
- SMAXWrr = 6153,
- SMAXXri = 6154,
- SMAXXrr = 6155,
- SMAX_VG2_2Z2Z_B = 6156,
- SMAX_VG2_2Z2Z_D = 6157,
- SMAX_VG2_2Z2Z_H = 6158,
- SMAX_VG2_2Z2Z_S = 6159,
- SMAX_VG2_2ZZ_B = 6160,
- SMAX_VG2_2ZZ_D = 6161,
- SMAX_VG2_2ZZ_H = 6162,
- SMAX_VG2_2ZZ_S = 6163,
- SMAX_VG4_4Z4Z_B = 6164,
- SMAX_VG4_4Z4Z_D = 6165,
- SMAX_VG4_4Z4Z_H = 6166,
- SMAX_VG4_4Z4Z_S = 6167,
- SMAX_VG4_4ZZ_B = 6168,
- SMAX_VG4_4ZZ_D = 6169,
- SMAX_VG4_4ZZ_H = 6170,
- SMAX_VG4_4ZZ_S = 6171,
- SMAX_ZI_B = 6172,
- SMAX_ZI_D = 6173,
- SMAX_ZI_H = 6174,
- SMAX_ZI_S = 6175,
- SMAX_ZPmZ_B = 6176,
- SMAX_ZPmZ_D = 6177,
- SMAX_ZPmZ_H = 6178,
- SMAX_ZPmZ_S = 6179,
- SMAXv16i8 = 6180,
- SMAXv2i32 = 6181,
- SMAXv4i16 = 6182,
- SMAXv4i32 = 6183,
- SMAXv8i16 = 6184,
- SMAXv8i8 = 6185,
- SMC = 6186,
- SMINP_ZPmZ_B = 6187,
- SMINP_ZPmZ_D = 6188,
- SMINP_ZPmZ_H = 6189,
- SMINP_ZPmZ_S = 6190,
- SMINPv16i8 = 6191,
- SMINPv2i32 = 6192,
- SMINPv4i16 = 6193,
- SMINPv4i32 = 6194,
- SMINPv8i16 = 6195,
- SMINPv8i8 = 6196,
- SMINQV_VPZ_B = 6197,
- SMINQV_VPZ_D = 6198,
- SMINQV_VPZ_H = 6199,
- SMINQV_VPZ_S = 6200,
- SMINV_VPZ_B = 6201,
- SMINV_VPZ_D = 6202,
- SMINV_VPZ_H = 6203,
- SMINV_VPZ_S = 6204,
- SMINVv16i8v = 6205,
- SMINVv4i16v = 6206,
- SMINVv4i32v = 6207,
- SMINVv8i16v = 6208,
- SMINVv8i8v = 6209,
- SMINWri = 6210,
- SMINWrr = 6211,
- SMINXri = 6212,
- SMINXrr = 6213,
- SMIN_VG2_2Z2Z_B = 6214,
- SMIN_VG2_2Z2Z_D = 6215,
- SMIN_VG2_2Z2Z_H = 6216,
- SMIN_VG2_2Z2Z_S = 6217,
- SMIN_VG2_2ZZ_B = 6218,
- SMIN_VG2_2ZZ_D = 6219,
- SMIN_VG2_2ZZ_H = 6220,
- SMIN_VG2_2ZZ_S = 6221,
- SMIN_VG4_4Z4Z_B = 6222,
- SMIN_VG4_4Z4Z_D = 6223,
- SMIN_VG4_4Z4Z_H = 6224,
- SMIN_VG4_4Z4Z_S = 6225,
- SMIN_VG4_4ZZ_B = 6226,
- SMIN_VG4_4ZZ_D = 6227,
- SMIN_VG4_4ZZ_H = 6228,
- SMIN_VG4_4ZZ_S = 6229,
- SMIN_ZI_B = 6230,
- SMIN_ZI_D = 6231,
- SMIN_ZI_H = 6232,
- SMIN_ZI_S = 6233,
- SMIN_ZPmZ_B = 6234,
- SMIN_ZPmZ_D = 6235,
- SMIN_ZPmZ_H = 6236,
- SMIN_ZPmZ_S = 6237,
- SMINv16i8 = 6238,
- SMINv2i32 = 6239,
- SMINv4i16 = 6240,
- SMINv4i32 = 6241,
- SMINv8i16 = 6242,
- SMINv8i8 = 6243,
- SMLALB_ZZZI_D = 6244,
- SMLALB_ZZZI_S = 6245,
- SMLALB_ZZZ_D = 6246,
- SMLALB_ZZZ_H = 6247,
- SMLALB_ZZZ_S = 6248,
- SMLALL_MZZI_BtoS = 6249,
- SMLALL_MZZI_HtoD = 6250,
- SMLALL_MZZ_BtoS = 6251,
- SMLALL_MZZ_HtoD = 6252,
- SMLALL_VG2_M2Z2Z_BtoS = 6253,
- SMLALL_VG2_M2Z2Z_HtoD = 6254,
- SMLALL_VG2_M2ZZI_BtoS = 6255,
- SMLALL_VG2_M2ZZI_HtoD = 6256,
- SMLALL_VG2_M2ZZ_BtoS = 6257,
- SMLALL_VG2_M2ZZ_HtoD = 6258,
- SMLALL_VG4_M4Z4Z_BtoS = 6259,
- SMLALL_VG4_M4Z4Z_HtoD = 6260,
- SMLALL_VG4_M4ZZI_BtoS = 6261,
- SMLALL_VG4_M4ZZI_HtoD = 6262,
- SMLALL_VG4_M4ZZ_BtoS = 6263,
- SMLALL_VG4_M4ZZ_HtoD = 6264,
- SMLALT_ZZZI_D = 6265,
- SMLALT_ZZZI_S = 6266,
- SMLALT_ZZZ_D = 6267,
- SMLALT_ZZZ_H = 6268,
- SMLALT_ZZZ_S = 6269,
- SMLAL_MZZI_HtoS = 6270,
- SMLAL_MZZ_HtoS = 6271,
- SMLAL_VG2_M2Z2Z_HtoS = 6272,
- SMLAL_VG2_M2ZZI_S = 6273,
- SMLAL_VG2_M2ZZ_HtoS = 6274,
- SMLAL_VG4_M4Z4Z_HtoS = 6275,
- SMLAL_VG4_M4ZZI_HtoS = 6276,
- SMLAL_VG4_M4ZZ_HtoS = 6277,
- SMLALv16i8_v8i16 = 6278,
- SMLALv2i32_indexed = 6279,
- SMLALv2i32_v2i64 = 6280,
- SMLALv4i16_indexed = 6281,
- SMLALv4i16_v4i32 = 6282,
- SMLALv4i32_indexed = 6283,
- SMLALv4i32_v2i64 = 6284,
- SMLALv8i16_indexed = 6285,
- SMLALv8i16_v4i32 = 6286,
- SMLALv8i8_v8i16 = 6287,
- SMLSLB_ZZZI_D = 6288,
- SMLSLB_ZZZI_S = 6289,
- SMLSLB_ZZZ_D = 6290,
- SMLSLB_ZZZ_H = 6291,
- SMLSLB_ZZZ_S = 6292,
- SMLSLL_MZZI_BtoS = 6293,
- SMLSLL_MZZI_HtoD = 6294,
- SMLSLL_MZZ_BtoS = 6295,
- SMLSLL_MZZ_HtoD = 6296,
- SMLSLL_VG2_M2Z2Z_BtoS = 6297,
- SMLSLL_VG2_M2Z2Z_HtoD = 6298,
- SMLSLL_VG2_M2ZZI_BtoS = 6299,
- SMLSLL_VG2_M2ZZI_HtoD = 6300,
- SMLSLL_VG2_M2ZZ_BtoS = 6301,
- SMLSLL_VG2_M2ZZ_HtoD = 6302,
- SMLSLL_VG4_M4Z4Z_BtoS = 6303,
- SMLSLL_VG4_M4Z4Z_HtoD = 6304,
- SMLSLL_VG4_M4ZZI_BtoS = 6305,
- SMLSLL_VG4_M4ZZI_HtoD = 6306,
- SMLSLL_VG4_M4ZZ_BtoS = 6307,
- SMLSLL_VG4_M4ZZ_HtoD = 6308,
- SMLSLT_ZZZI_D = 6309,
- SMLSLT_ZZZI_S = 6310,
- SMLSLT_ZZZ_D = 6311,
- SMLSLT_ZZZ_H = 6312,
- SMLSLT_ZZZ_S = 6313,
- SMLSL_MZZI_HtoS = 6314,
- SMLSL_MZZ_HtoS = 6315,
- SMLSL_VG2_M2Z2Z_HtoS = 6316,
- SMLSL_VG2_M2ZZI_S = 6317,
- SMLSL_VG2_M2ZZ_HtoS = 6318,
- SMLSL_VG4_M4Z4Z_HtoS = 6319,
- SMLSL_VG4_M4ZZI_HtoS = 6320,
- SMLSL_VG4_M4ZZ_HtoS = 6321,
- SMLSLv16i8_v8i16 = 6322,
- SMLSLv2i32_indexed = 6323,
- SMLSLv2i32_v2i64 = 6324,
- SMLSLv4i16_indexed = 6325,
- SMLSLv4i16_v4i32 = 6326,
- SMLSLv4i32_indexed = 6327,
- SMLSLv4i32_v2i64 = 6328,
- SMLSLv8i16_indexed = 6329,
- SMLSLv8i16_v4i32 = 6330,
- SMLSLv8i8_v8i16 = 6331,
- SMMLA = 6332,
- SMMLA_ZZZ = 6333,
- SMOP4A_M2Z2Z_BToS = 6334,
- SMOP4A_M2Z2Z_HToS = 6335,
- SMOP4A_M2Z2Z_HtoD = 6336,
- SMOP4A_M2ZZ_BToS = 6337,
- SMOP4A_M2ZZ_HToS = 6338,
- SMOP4A_M2ZZ_HtoD = 6339,
- SMOP4A_MZ2Z_BToS = 6340,
- SMOP4A_MZ2Z_HToS = 6341,
- SMOP4A_MZ2Z_HtoD = 6342,
- SMOP4A_MZZ_BToS = 6343,
- SMOP4A_MZZ_HToS = 6344,
- SMOP4A_MZZ_HtoD = 6345,
- SMOP4S_M2Z2Z_BToS = 6346,
- SMOP4S_M2Z2Z_HToS = 6347,
- SMOP4S_M2Z2Z_HtoD = 6348,
- SMOP4S_M2ZZ_BToS = 6349,
- SMOP4S_M2ZZ_HToS = 6350,
- SMOP4S_M2ZZ_HtoD = 6351,
- SMOP4S_MZ2Z_BToS = 6352,
- SMOP4S_MZ2Z_HToS = 6353,
- SMOP4S_MZ2Z_HtoD = 6354,
- SMOP4S_MZZ_BToS = 6355,
- SMOP4S_MZZ_HToS = 6356,
- SMOP4S_MZZ_HtoD = 6357,
- SMOPA_MPPZZ_D = 6358,
- SMOPA_MPPZZ_HtoS = 6359,
- SMOPA_MPPZZ_S = 6360,
- SMOPS_MPPZZ_D = 6361,
- SMOPS_MPPZZ_HtoS = 6362,
- SMOPS_MPPZZ_S = 6363,
- SMOVvi16to32 = 6364,
- SMOVvi16to32_idx0 = 6365,
- SMOVvi16to64 = 6366,
- SMOVvi16to64_idx0 = 6367,
- SMOVvi32to64 = 6368,
- SMOVvi32to64_idx0 = 6369,
- SMOVvi8to32 = 6370,
- SMOVvi8to32_idx0 = 6371,
- SMOVvi8to64 = 6372,
- SMOVvi8to64_idx0 = 6373,
- SMSUBLrrr = 6374,
- SMULH_ZPmZ_B = 6375,
- SMULH_ZPmZ_D = 6376,
- SMULH_ZPmZ_H = 6377,
- SMULH_ZPmZ_S = 6378,
- SMULH_ZZZ_B = 6379,
- SMULH_ZZZ_D = 6380,
- SMULH_ZZZ_H = 6381,
- SMULH_ZZZ_S = 6382,
- SMULHrr = 6383,
- SMULLB_ZZZI_D = 6384,
- SMULLB_ZZZI_S = 6385,
- SMULLB_ZZZ_D = 6386,
- SMULLB_ZZZ_H = 6387,
- SMULLB_ZZZ_S = 6388,
- SMULLT_ZZZI_D = 6389,
- SMULLT_ZZZI_S = 6390,
- SMULLT_ZZZ_D = 6391,
- SMULLT_ZZZ_H = 6392,
- SMULLT_ZZZ_S = 6393,
- SMULLv16i8_v8i16 = 6394,
- SMULLv2i32_indexed = 6395,
- SMULLv2i32_v2i64 = 6396,
- SMULLv4i16_indexed = 6397,
- SMULLv4i16_v4i32 = 6398,
- SMULLv4i32_indexed = 6399,
- SMULLv4i32_v2i64 = 6400,
- SMULLv8i16_indexed = 6401,
- SMULLv8i16_v4i32 = 6402,
- SMULLv8i8_v8i16 = 6403,
- SPLICE_ZPZZ_B = 6404,
- SPLICE_ZPZZ_D = 6405,
- SPLICE_ZPZZ_H = 6406,
- SPLICE_ZPZZ_S = 6407,
- SPLICE_ZPZ_B = 6408,
- SPLICE_ZPZ_D = 6409,
- SPLICE_ZPZ_H = 6410,
- SPLICE_ZPZ_S = 6411,
- SQABS_ZPmZ_B = 6412,
- SQABS_ZPmZ_D = 6413,
- SQABS_ZPmZ_H = 6414,
- SQABS_ZPmZ_S = 6415,
- SQABS_ZPzZ_B = 6416,
- SQABS_ZPzZ_D = 6417,
- SQABS_ZPzZ_H = 6418,
- SQABS_ZPzZ_S = 6419,
- SQABSv16i8 = 6420,
- SQABSv1i16 = 6421,
- SQABSv1i32 = 6422,
- SQABSv1i64 = 6423,
- SQABSv1i8 = 6424,
- SQABSv2i32 = 6425,
- SQABSv2i64 = 6426,
- SQABSv4i16 = 6427,
- SQABSv4i32 = 6428,
- SQABSv8i16 = 6429,
- SQABSv8i8 = 6430,
- SQADD_ZI_B = 6431,
- SQADD_ZI_D = 6432,
- SQADD_ZI_H = 6433,
- SQADD_ZI_S = 6434,
- SQADD_ZPmZ_B = 6435,
- SQADD_ZPmZ_D = 6436,
- SQADD_ZPmZ_H = 6437,
- SQADD_ZPmZ_S = 6438,
- SQADD_ZZZ_B = 6439,
- SQADD_ZZZ_D = 6440,
- SQADD_ZZZ_H = 6441,
- SQADD_ZZZ_S = 6442,
- SQADDv16i8 = 6443,
- SQADDv1i16 = 6444,
- SQADDv1i32 = 6445,
- SQADDv1i64 = 6446,
- SQADDv1i8 = 6447,
- SQADDv2i32 = 6448,
- SQADDv2i64 = 6449,
- SQADDv4i16 = 6450,
- SQADDv4i32 = 6451,
- SQADDv8i16 = 6452,
- SQADDv8i8 = 6453,
- SQCADD_ZZI_B = 6454,
- SQCADD_ZZI_D = 6455,
- SQCADD_ZZI_H = 6456,
- SQCADD_ZZI_S = 6457,
- SQCVTN_Z2Z_StoH = 6458,
- SQCVTN_Z4Z_DtoH = 6459,
- SQCVTN_Z4Z_StoB = 6460,
- SQCVTUN_Z2Z_StoH = 6461,
- SQCVTUN_Z4Z_DtoH = 6462,
- SQCVTUN_Z4Z_StoB = 6463,
- SQCVTU_Z2Z_StoH = 6464,
- SQCVTU_Z4Z_DtoH = 6465,
- SQCVTU_Z4Z_StoB = 6466,
- SQCVT_Z2Z_StoH = 6467,
- SQCVT_Z4Z_DtoH = 6468,
- SQCVT_Z4Z_StoB = 6469,
- SQDECB_XPiI = 6470,
- SQDECB_XPiWdI = 6471,
- SQDECD_XPiI = 6472,
- SQDECD_XPiWdI = 6473,
- SQDECD_ZPiI = 6474,
- SQDECH_XPiI = 6475,
- SQDECH_XPiWdI = 6476,
- SQDECH_ZPiI = 6477,
- SQDECP_XPWd_B = 6478,
- SQDECP_XPWd_D = 6479,
- SQDECP_XPWd_H = 6480,
- SQDECP_XPWd_S = 6481,
- SQDECP_XP_B = 6482,
- SQDECP_XP_D = 6483,
- SQDECP_XP_H = 6484,
- SQDECP_XP_S = 6485,
- SQDECP_ZP_D = 6486,
- SQDECP_ZP_H = 6487,
- SQDECP_ZP_S = 6488,
- SQDECW_XPiI = 6489,
- SQDECW_XPiWdI = 6490,
- SQDECW_ZPiI = 6491,
- SQDMLALBT_ZZZ_D = 6492,
- SQDMLALBT_ZZZ_H = 6493,
- SQDMLALBT_ZZZ_S = 6494,
- SQDMLALB_ZZZI_D = 6495,
- SQDMLALB_ZZZI_S = 6496,
- SQDMLALB_ZZZ_D = 6497,
- SQDMLALB_ZZZ_H = 6498,
- SQDMLALB_ZZZ_S = 6499,
- SQDMLALT_ZZZI_D = 6500,
- SQDMLALT_ZZZI_S = 6501,
- SQDMLALT_ZZZ_D = 6502,
- SQDMLALT_ZZZ_H = 6503,
- SQDMLALT_ZZZ_S = 6504,
- SQDMLALi16 = 6505,
- SQDMLALi32 = 6506,
- SQDMLALv1i32_indexed = 6507,
- SQDMLALv1i64_indexed = 6508,
- SQDMLALv2i32_indexed = 6509,
- SQDMLALv2i32_v2i64 = 6510,
- SQDMLALv4i16_indexed = 6511,
- SQDMLALv4i16_v4i32 = 6512,
- SQDMLALv4i32_indexed = 6513,
- SQDMLALv4i32_v2i64 = 6514,
- SQDMLALv8i16_indexed = 6515,
- SQDMLALv8i16_v4i32 = 6516,
- SQDMLSLBT_ZZZ_D = 6517,
- SQDMLSLBT_ZZZ_H = 6518,
- SQDMLSLBT_ZZZ_S = 6519,
- SQDMLSLB_ZZZI_D = 6520,
- SQDMLSLB_ZZZI_S = 6521,
- SQDMLSLB_ZZZ_D = 6522,
- SQDMLSLB_ZZZ_H = 6523,
- SQDMLSLB_ZZZ_S = 6524,
- SQDMLSLT_ZZZI_D = 6525,
- SQDMLSLT_ZZZI_S = 6526,
- SQDMLSLT_ZZZ_D = 6527,
- SQDMLSLT_ZZZ_H = 6528,
- SQDMLSLT_ZZZ_S = 6529,
- SQDMLSLi16 = 6530,
- SQDMLSLi32 = 6531,
- SQDMLSLv1i32_indexed = 6532,
- SQDMLSLv1i64_indexed = 6533,
- SQDMLSLv2i32_indexed = 6534,
- SQDMLSLv2i32_v2i64 = 6535,
- SQDMLSLv4i16_indexed = 6536,
- SQDMLSLv4i16_v4i32 = 6537,
- SQDMLSLv4i32_indexed = 6538,
- SQDMLSLv4i32_v2i64 = 6539,
- SQDMLSLv8i16_indexed = 6540,
- SQDMLSLv8i16_v4i32 = 6541,
- SQDMULH_VG2_2Z2Z_B = 6542,
- SQDMULH_VG2_2Z2Z_D = 6543,
- SQDMULH_VG2_2Z2Z_H = 6544,
- SQDMULH_VG2_2Z2Z_S = 6545,
- SQDMULH_VG2_2ZZ_B = 6546,
- SQDMULH_VG2_2ZZ_D = 6547,
- SQDMULH_VG2_2ZZ_H = 6548,
- SQDMULH_VG2_2ZZ_S = 6549,
- SQDMULH_VG4_4Z4Z_B = 6550,
- SQDMULH_VG4_4Z4Z_D = 6551,
- SQDMULH_VG4_4Z4Z_H = 6552,
- SQDMULH_VG4_4Z4Z_S = 6553,
- SQDMULH_VG4_4ZZ_B = 6554,
- SQDMULH_VG4_4ZZ_D = 6555,
- SQDMULH_VG4_4ZZ_H = 6556,
- SQDMULH_VG4_4ZZ_S = 6557,
- SQDMULH_ZZZI_D = 6558,
- SQDMULH_ZZZI_H = 6559,
- SQDMULH_ZZZI_S = 6560,
- SQDMULH_ZZZ_B = 6561,
- SQDMULH_ZZZ_D = 6562,
- SQDMULH_ZZZ_H = 6563,
- SQDMULH_ZZZ_S = 6564,
- SQDMULHv1i16 = 6565,
- SQDMULHv1i16_indexed = 6566,
- SQDMULHv1i32 = 6567,
- SQDMULHv1i32_indexed = 6568,
- SQDMULHv2i32 = 6569,
- SQDMULHv2i32_indexed = 6570,
- SQDMULHv4i16 = 6571,
- SQDMULHv4i16_indexed = 6572,
- SQDMULHv4i32 = 6573,
- SQDMULHv4i32_indexed = 6574,
- SQDMULHv8i16 = 6575,
- SQDMULHv8i16_indexed = 6576,
- SQDMULLB_ZZZI_D = 6577,
- SQDMULLB_ZZZI_S = 6578,
- SQDMULLB_ZZZ_D = 6579,
- SQDMULLB_ZZZ_H = 6580,
- SQDMULLB_ZZZ_S = 6581,
- SQDMULLT_ZZZI_D = 6582,
- SQDMULLT_ZZZI_S = 6583,
- SQDMULLT_ZZZ_D = 6584,
- SQDMULLT_ZZZ_H = 6585,
- SQDMULLT_ZZZ_S = 6586,
- SQDMULLi16 = 6587,
- SQDMULLi32 = 6588,
- SQDMULLv1i32_indexed = 6589,
- SQDMULLv1i64_indexed = 6590,
- SQDMULLv2i32_indexed = 6591,
- SQDMULLv2i32_v2i64 = 6592,
- SQDMULLv4i16_indexed = 6593,
- SQDMULLv4i16_v4i32 = 6594,
- SQDMULLv4i32_indexed = 6595,
- SQDMULLv4i32_v2i64 = 6596,
- SQDMULLv8i16_indexed = 6597,
- SQDMULLv8i16_v4i32 = 6598,
- SQINCB_XPiI = 6599,
- SQINCB_XPiWdI = 6600,
- SQINCD_XPiI = 6601,
- SQINCD_XPiWdI = 6602,
- SQINCD_ZPiI = 6603,
- SQINCH_XPiI = 6604,
- SQINCH_XPiWdI = 6605,
- SQINCH_ZPiI = 6606,
- SQINCP_XPWd_B = 6607,
- SQINCP_XPWd_D = 6608,
- SQINCP_XPWd_H = 6609,
- SQINCP_XPWd_S = 6610,
- SQINCP_XP_B = 6611,
- SQINCP_XP_D = 6612,
- SQINCP_XP_H = 6613,
- SQINCP_XP_S = 6614,
- SQINCP_ZP_D = 6615,
- SQINCP_ZP_H = 6616,
- SQINCP_ZP_S = 6617,
- SQINCW_XPiI = 6618,
- SQINCW_XPiWdI = 6619,
- SQINCW_ZPiI = 6620,
- SQNEG_ZPmZ_B = 6621,
- SQNEG_ZPmZ_D = 6622,
- SQNEG_ZPmZ_H = 6623,
- SQNEG_ZPmZ_S = 6624,
- SQNEG_ZPzZ_B = 6625,
- SQNEG_ZPzZ_D = 6626,
- SQNEG_ZPzZ_H = 6627,
- SQNEG_ZPzZ_S = 6628,
- SQNEGv16i8 = 6629,
- SQNEGv1i16 = 6630,
- SQNEGv1i32 = 6631,
- SQNEGv1i64 = 6632,
- SQNEGv1i8 = 6633,
- SQNEGv2i32 = 6634,
- SQNEGv2i64 = 6635,
- SQNEGv4i16 = 6636,
- SQNEGv4i32 = 6637,
- SQNEGv8i16 = 6638,
- SQNEGv8i8 = 6639,
- SQRDCMLAH_ZZZI_H = 6640,
- SQRDCMLAH_ZZZI_S = 6641,
- SQRDCMLAH_ZZZ_B = 6642,
- SQRDCMLAH_ZZZ_D = 6643,
- SQRDCMLAH_ZZZ_H = 6644,
- SQRDCMLAH_ZZZ_S = 6645,
- SQRDMLAH_ZZZI_D = 6646,
- SQRDMLAH_ZZZI_H = 6647,
- SQRDMLAH_ZZZI_S = 6648,
- SQRDMLAH_ZZZ_B = 6649,
- SQRDMLAH_ZZZ_D = 6650,
- SQRDMLAH_ZZZ_H = 6651,
- SQRDMLAH_ZZZ_S = 6652,
- SQRDMLAHv1i16 = 6653,
- SQRDMLAHv1i16_indexed = 6654,
- SQRDMLAHv1i32 = 6655,
- SQRDMLAHv1i32_indexed = 6656,
- SQRDMLAHv2i32 = 6657,
- SQRDMLAHv2i32_indexed = 6658,
- SQRDMLAHv4i16 = 6659,
- SQRDMLAHv4i16_indexed = 6660,
- SQRDMLAHv4i32 = 6661,
- SQRDMLAHv4i32_indexed = 6662,
- SQRDMLAHv8i16 = 6663,
- SQRDMLAHv8i16_indexed = 6664,
- SQRDMLSH_ZZZI_D = 6665,
- SQRDMLSH_ZZZI_H = 6666,
- SQRDMLSH_ZZZI_S = 6667,
- SQRDMLSH_ZZZ_B = 6668,
- SQRDMLSH_ZZZ_D = 6669,
- SQRDMLSH_ZZZ_H = 6670,
- SQRDMLSH_ZZZ_S = 6671,
- SQRDMLSHv1i16 = 6672,
- SQRDMLSHv1i16_indexed = 6673,
- SQRDMLSHv1i32 = 6674,
- SQRDMLSHv1i32_indexed = 6675,
- SQRDMLSHv2i32 = 6676,
- SQRDMLSHv2i32_indexed = 6677,
- SQRDMLSHv4i16 = 6678,
- SQRDMLSHv4i16_indexed = 6679,
- SQRDMLSHv4i32 = 6680,
- SQRDMLSHv4i32_indexed = 6681,
- SQRDMLSHv8i16 = 6682,
- SQRDMLSHv8i16_indexed = 6683,
- SQRDMULH_ZZZI_D = 6684,
- SQRDMULH_ZZZI_H = 6685,
- SQRDMULH_ZZZI_S = 6686,
- SQRDMULH_ZZZ_B = 6687,
- SQRDMULH_ZZZ_D = 6688,
- SQRDMULH_ZZZ_H = 6689,
- SQRDMULH_ZZZ_S = 6690,
- SQRDMULHv1i16 = 6691,
- SQRDMULHv1i16_indexed = 6692,
- SQRDMULHv1i32 = 6693,
- SQRDMULHv1i32_indexed = 6694,
- SQRDMULHv2i32 = 6695,
- SQRDMULHv2i32_indexed = 6696,
- SQRDMULHv4i16 = 6697,
- SQRDMULHv4i16_indexed = 6698,
- SQRDMULHv4i32 = 6699,
- SQRDMULHv4i32_indexed = 6700,
- SQRDMULHv8i16 = 6701,
- SQRDMULHv8i16_indexed = 6702,
- SQRSHLR_ZPmZ_B = 6703,
- SQRSHLR_ZPmZ_D = 6704,
- SQRSHLR_ZPmZ_H = 6705,
- SQRSHLR_ZPmZ_S = 6706,
- SQRSHL_ZPmZ_B = 6707,
- SQRSHL_ZPmZ_D = 6708,
- SQRSHL_ZPmZ_H = 6709,
- SQRSHL_ZPmZ_S = 6710,
- SQRSHLv16i8 = 6711,
- SQRSHLv1i16 = 6712,
- SQRSHLv1i32 = 6713,
- SQRSHLv1i64 = 6714,
- SQRSHLv1i8 = 6715,
- SQRSHLv2i32 = 6716,
- SQRSHLv2i64 = 6717,
- SQRSHLv4i16 = 6718,
- SQRSHLv4i32 = 6719,
- SQRSHLv8i16 = 6720,
- SQRSHLv8i8 = 6721,
- SQRSHRNB_ZZI_B = 6722,
- SQRSHRNB_ZZI_H = 6723,
- SQRSHRNB_ZZI_S = 6724,
- SQRSHRNT_ZZI_B = 6725,
- SQRSHRNT_ZZI_H = 6726,
- SQRSHRNT_ZZI_S = 6727,
- SQRSHRN_VG4_Z4ZI_B = 6728,
- SQRSHRN_VG4_Z4ZI_H = 6729,
- SQRSHRN_Z2ZI_StoH = 6730,
- SQRSHRNb = 6731,
- SQRSHRNh = 6732,
- SQRSHRNs = 6733,
- SQRSHRNv16i8_shift = 6734,
- SQRSHRNv2i32_shift = 6735,
- SQRSHRNv4i16_shift = 6736,
- SQRSHRNv4i32_shift = 6737,
- SQRSHRNv8i16_shift = 6738,
- SQRSHRNv8i8_shift = 6739,
- SQRSHRUNB_ZZI_B = 6740,
- SQRSHRUNB_ZZI_H = 6741,
- SQRSHRUNB_ZZI_S = 6742,
- SQRSHRUNT_ZZI_B = 6743,
- SQRSHRUNT_ZZI_H = 6744,
- SQRSHRUNT_ZZI_S = 6745,
- SQRSHRUN_VG4_Z4ZI_B = 6746,
- SQRSHRUN_VG4_Z4ZI_H = 6747,
- SQRSHRUN_Z2ZI_StoH = 6748,
- SQRSHRUNb = 6749,
- SQRSHRUNh = 6750,
- SQRSHRUNs = 6751,
- SQRSHRUNv16i8_shift = 6752,
- SQRSHRUNv2i32_shift = 6753,
- SQRSHRUNv4i16_shift = 6754,
- SQRSHRUNv4i32_shift = 6755,
- SQRSHRUNv8i16_shift = 6756,
- SQRSHRUNv8i8_shift = 6757,
- SQRSHRU_VG2_Z2ZI_H = 6758,
- SQRSHRU_VG4_Z4ZI_B = 6759,
- SQRSHRU_VG4_Z4ZI_H = 6760,
- SQRSHR_VG2_Z2ZI_H = 6761,
- SQRSHR_VG4_Z4ZI_B = 6762,
- SQRSHR_VG4_Z4ZI_H = 6763,
- SQSHLR_ZPmZ_B = 6764,
- SQSHLR_ZPmZ_D = 6765,
- SQSHLR_ZPmZ_H = 6766,
- SQSHLR_ZPmZ_S = 6767,
- SQSHLU_ZPmI_B = 6768,
- SQSHLU_ZPmI_D = 6769,
- SQSHLU_ZPmI_H = 6770,
- SQSHLU_ZPmI_S = 6771,
- SQSHLUb = 6772,
- SQSHLUd = 6773,
- SQSHLUh = 6774,
- SQSHLUs = 6775,
- SQSHLUv16i8_shift = 6776,
- SQSHLUv2i32_shift = 6777,
- SQSHLUv2i64_shift = 6778,
- SQSHLUv4i16_shift = 6779,
- SQSHLUv4i32_shift = 6780,
- SQSHLUv8i16_shift = 6781,
- SQSHLUv8i8_shift = 6782,
- SQSHL_ZPmI_B = 6783,
- SQSHL_ZPmI_D = 6784,
- SQSHL_ZPmI_H = 6785,
- SQSHL_ZPmI_S = 6786,
- SQSHL_ZPmZ_B = 6787,
- SQSHL_ZPmZ_D = 6788,
- SQSHL_ZPmZ_H = 6789,
- SQSHL_ZPmZ_S = 6790,
- SQSHLb = 6791,
- SQSHLd = 6792,
- SQSHLh = 6793,
- SQSHLs = 6794,
- SQSHLv16i8 = 6795,
- SQSHLv16i8_shift = 6796,
- SQSHLv1i16 = 6797,
- SQSHLv1i32 = 6798,
- SQSHLv1i64 = 6799,
- SQSHLv1i8 = 6800,
- SQSHLv2i32 = 6801,
- SQSHLv2i32_shift = 6802,
- SQSHLv2i64 = 6803,
- SQSHLv2i64_shift = 6804,
- SQSHLv4i16 = 6805,
- SQSHLv4i16_shift = 6806,
- SQSHLv4i32 = 6807,
- SQSHLv4i32_shift = 6808,
- SQSHLv8i16 = 6809,
- SQSHLv8i16_shift = 6810,
- SQSHLv8i8 = 6811,
- SQSHLv8i8_shift = 6812,
- SQSHRNB_ZZI_B = 6813,
- SQSHRNB_ZZI_H = 6814,
- SQSHRNB_ZZI_S = 6815,
- SQSHRNT_ZZI_B = 6816,
- SQSHRNT_ZZI_H = 6817,
- SQSHRNT_ZZI_S = 6818,
- SQSHRNb = 6819,
- SQSHRNh = 6820,
- SQSHRNs = 6821,
- SQSHRNv16i8_shift = 6822,
- SQSHRNv2i32_shift = 6823,
- SQSHRNv4i16_shift = 6824,
- SQSHRNv4i32_shift = 6825,
- SQSHRNv8i16_shift = 6826,
- SQSHRNv8i8_shift = 6827,
- SQSHRUNB_ZZI_B = 6828,
- SQSHRUNB_ZZI_H = 6829,
- SQSHRUNB_ZZI_S = 6830,
- SQSHRUNT_ZZI_B = 6831,
- SQSHRUNT_ZZI_H = 6832,
- SQSHRUNT_ZZI_S = 6833,
- SQSHRUNb = 6834,
- SQSHRUNh = 6835,
- SQSHRUNs = 6836,
- SQSHRUNv16i8_shift = 6837,
- SQSHRUNv2i32_shift = 6838,
- SQSHRUNv4i16_shift = 6839,
- SQSHRUNv4i32_shift = 6840,
- SQSHRUNv8i16_shift = 6841,
- SQSHRUNv8i8_shift = 6842,
- SQSUBR_ZPmZ_B = 6843,
- SQSUBR_ZPmZ_D = 6844,
- SQSUBR_ZPmZ_H = 6845,
- SQSUBR_ZPmZ_S = 6846,
- SQSUB_ZI_B = 6847,
- SQSUB_ZI_D = 6848,
- SQSUB_ZI_H = 6849,
- SQSUB_ZI_S = 6850,
- SQSUB_ZPmZ_B = 6851,
- SQSUB_ZPmZ_D = 6852,
- SQSUB_ZPmZ_H = 6853,
- SQSUB_ZPmZ_S = 6854,
- SQSUB_ZZZ_B = 6855,
- SQSUB_ZZZ_D = 6856,
- SQSUB_ZZZ_H = 6857,
- SQSUB_ZZZ_S = 6858,
- SQSUBv16i8 = 6859,
- SQSUBv1i16 = 6860,
- SQSUBv1i32 = 6861,
- SQSUBv1i64 = 6862,
- SQSUBv1i8 = 6863,
- SQSUBv2i32 = 6864,
- SQSUBv2i64 = 6865,
- SQSUBv4i16 = 6866,
- SQSUBv4i32 = 6867,
- SQSUBv8i16 = 6868,
- SQSUBv8i8 = 6869,
- SQXTNB_ZZ_B = 6870,
- SQXTNB_ZZ_H = 6871,
- SQXTNB_ZZ_S = 6872,
- SQXTNT_ZZ_B = 6873,
- SQXTNT_ZZ_H = 6874,
- SQXTNT_ZZ_S = 6875,
- SQXTNv16i8 = 6876,
- SQXTNv1i16 = 6877,
- SQXTNv1i32 = 6878,
- SQXTNv1i8 = 6879,
- SQXTNv2i32 = 6880,
- SQXTNv4i16 = 6881,
- SQXTNv4i32 = 6882,
- SQXTNv8i16 = 6883,
- SQXTNv8i8 = 6884,
- SQXTUNB_ZZ_B = 6885,
- SQXTUNB_ZZ_H = 6886,
- SQXTUNB_ZZ_S = 6887,
- SQXTUNT_ZZ_B = 6888,
- SQXTUNT_ZZ_H = 6889,
- SQXTUNT_ZZ_S = 6890,
- SQXTUNv16i8 = 6891,
- SQXTUNv1i16 = 6892,
- SQXTUNv1i32 = 6893,
- SQXTUNv1i8 = 6894,
- SQXTUNv2i32 = 6895,
- SQXTUNv4i16 = 6896,
- SQXTUNv4i32 = 6897,
- SQXTUNv8i16 = 6898,
- SQXTUNv8i8 = 6899,
- SRHADD_ZPmZ_B = 6900,
- SRHADD_ZPmZ_D = 6901,
- SRHADD_ZPmZ_H = 6902,
- SRHADD_ZPmZ_S = 6903,
- SRHADDv16i8 = 6904,
- SRHADDv2i32 = 6905,
- SRHADDv4i16 = 6906,
- SRHADDv4i32 = 6907,
- SRHADDv8i16 = 6908,
- SRHADDv8i8 = 6909,
- SRI_ZZI_B = 6910,
- SRI_ZZI_D = 6911,
- SRI_ZZI_H = 6912,
- SRI_ZZI_S = 6913,
- SRId = 6914,
- SRIv16i8_shift = 6915,
- SRIv2i32_shift = 6916,
- SRIv2i64_shift = 6917,
- SRIv4i16_shift = 6918,
- SRIv4i32_shift = 6919,
- SRIv8i16_shift = 6920,
- SRIv8i8_shift = 6921,
- SRSHLR_ZPmZ_B = 6922,
- SRSHLR_ZPmZ_D = 6923,
- SRSHLR_ZPmZ_H = 6924,
- SRSHLR_ZPmZ_S = 6925,
- SRSHL_VG2_2Z2Z_B = 6926,
- SRSHL_VG2_2Z2Z_D = 6927,
- SRSHL_VG2_2Z2Z_H = 6928,
- SRSHL_VG2_2Z2Z_S = 6929,
- SRSHL_VG2_2ZZ_B = 6930,
- SRSHL_VG2_2ZZ_D = 6931,
- SRSHL_VG2_2ZZ_H = 6932,
- SRSHL_VG2_2ZZ_S = 6933,
- SRSHL_VG4_4Z4Z_B = 6934,
- SRSHL_VG4_4Z4Z_D = 6935,
- SRSHL_VG4_4Z4Z_H = 6936,
- SRSHL_VG4_4Z4Z_S = 6937,
- SRSHL_VG4_4ZZ_B = 6938,
- SRSHL_VG4_4ZZ_D = 6939,
- SRSHL_VG4_4ZZ_H = 6940,
- SRSHL_VG4_4ZZ_S = 6941,
- SRSHL_ZPmZ_B = 6942,
- SRSHL_ZPmZ_D = 6943,
- SRSHL_ZPmZ_H = 6944,
- SRSHL_ZPmZ_S = 6945,
- SRSHLv16i8 = 6946,
- SRSHLv1i64 = 6947,
- SRSHLv2i32 = 6948,
- SRSHLv2i64 = 6949,
- SRSHLv4i16 = 6950,
- SRSHLv4i32 = 6951,
- SRSHLv8i16 = 6952,
- SRSHLv8i8 = 6953,
- SRSHR_ZPmI_B = 6954,
- SRSHR_ZPmI_D = 6955,
- SRSHR_ZPmI_H = 6956,
- SRSHR_ZPmI_S = 6957,
- SRSHRd = 6958,
- SRSHRv16i8_shift = 6959,
- SRSHRv2i32_shift = 6960,
- SRSHRv2i64_shift = 6961,
- SRSHRv4i16_shift = 6962,
- SRSHRv4i32_shift = 6963,
- SRSHRv8i16_shift = 6964,
- SRSHRv8i8_shift = 6965,
- SRSRA_ZZI_B = 6966,
- SRSRA_ZZI_D = 6967,
- SRSRA_ZZI_H = 6968,
- SRSRA_ZZI_S = 6969,
- SRSRAd = 6970,
- SRSRAv16i8_shift = 6971,
- SRSRAv2i32_shift = 6972,
- SRSRAv2i64_shift = 6973,
- SRSRAv4i16_shift = 6974,
- SRSRAv4i32_shift = 6975,
- SRSRAv8i16_shift = 6976,
- SRSRAv8i8_shift = 6977,
- SSHLLB_ZZI_D = 6978,
- SSHLLB_ZZI_H = 6979,
- SSHLLB_ZZI_S = 6980,
- SSHLLT_ZZI_D = 6981,
- SSHLLT_ZZI_H = 6982,
- SSHLLT_ZZI_S = 6983,
- SSHLLv16i8_shift = 6984,
- SSHLLv2i32_shift = 6985,
- SSHLLv4i16_shift = 6986,
- SSHLLv4i32_shift = 6987,
- SSHLLv8i16_shift = 6988,
- SSHLLv8i8_shift = 6989,
- SSHLv16i8 = 6990,
- SSHLv1i64 = 6991,
- SSHLv2i32 = 6992,
- SSHLv2i64 = 6993,
- SSHLv4i16 = 6994,
- SSHLv4i32 = 6995,
- SSHLv8i16 = 6996,
- SSHLv8i8 = 6997,
- SSHRd = 6998,
- SSHRv16i8_shift = 6999,
- SSHRv2i32_shift = 7000,
- SSHRv2i64_shift = 7001,
- SSHRv4i16_shift = 7002,
- SSHRv4i32_shift = 7003,
- SSHRv8i16_shift = 7004,
- SSHRv8i8_shift = 7005,
- SSRA_ZZI_B = 7006,
- SSRA_ZZI_D = 7007,
- SSRA_ZZI_H = 7008,
- SSRA_ZZI_S = 7009,
- SSRAd = 7010,
- SSRAv16i8_shift = 7011,
- SSRAv2i32_shift = 7012,
- SSRAv2i64_shift = 7013,
- SSRAv4i16_shift = 7014,
- SSRAv4i32_shift = 7015,
- SSRAv8i16_shift = 7016,
- SSRAv8i8_shift = 7017,
- SST1B_D = 7018,
- SST1B_D_IMM = 7019,
- SST1B_D_SXTW = 7020,
- SST1B_D_UXTW = 7021,
- SST1B_S_IMM = 7022,
- SST1B_S_SXTW = 7023,
- SST1B_S_UXTW = 7024,
- SST1D = 7025,
- SST1D_IMM = 7026,
- SST1D_SCALED = 7027,
- SST1D_SXTW = 7028,
- SST1D_SXTW_SCALED = 7029,
- SST1D_UXTW = 7030,
- SST1D_UXTW_SCALED = 7031,
- SST1H_D = 7032,
- SST1H_D_IMM = 7033,
- SST1H_D_SCALED = 7034,
- SST1H_D_SXTW = 7035,
- SST1H_D_SXTW_SCALED = 7036,
- SST1H_D_UXTW = 7037,
- SST1H_D_UXTW_SCALED = 7038,
- SST1H_S_IMM = 7039,
- SST1H_S_SXTW = 7040,
- SST1H_S_SXTW_SCALED = 7041,
- SST1H_S_UXTW = 7042,
- SST1H_S_UXTW_SCALED = 7043,
- SST1Q = 7044,
- SST1W_D = 7045,
- SST1W_D_IMM = 7046,
- SST1W_D_SCALED = 7047,
- SST1W_D_SXTW = 7048,
- SST1W_D_SXTW_SCALED = 7049,
- SST1W_D_UXTW = 7050,
- SST1W_D_UXTW_SCALED = 7051,
- SST1W_IMM = 7052,
- SST1W_SXTW = 7053,
- SST1W_SXTW_SCALED = 7054,
- SST1W_UXTW = 7055,
- SST1W_UXTW_SCALED = 7056,
- SSUBLBT_ZZZ_D = 7057,
- SSUBLBT_ZZZ_H = 7058,
- SSUBLBT_ZZZ_S = 7059,
- SSUBLB_ZZZ_D = 7060,
- SSUBLB_ZZZ_H = 7061,
- SSUBLB_ZZZ_S = 7062,
- SSUBLTB_ZZZ_D = 7063,
- SSUBLTB_ZZZ_H = 7064,
- SSUBLTB_ZZZ_S = 7065,
- SSUBLT_ZZZ_D = 7066,
- SSUBLT_ZZZ_H = 7067,
- SSUBLT_ZZZ_S = 7068,
- SSUBLv16i8_v8i16 = 7069,
- SSUBLv2i32_v2i64 = 7070,
- SSUBLv4i16_v4i32 = 7071,
- SSUBLv4i32_v2i64 = 7072,
- SSUBLv8i16_v4i32 = 7073,
- SSUBLv8i8_v8i16 = 7074,
- SSUBWB_ZZZ_D = 7075,
- SSUBWB_ZZZ_H = 7076,
- SSUBWB_ZZZ_S = 7077,
- SSUBWT_ZZZ_D = 7078,
- SSUBWT_ZZZ_H = 7079,
- SSUBWT_ZZZ_S = 7080,
- SSUBWv16i8_v8i16 = 7081,
- SSUBWv2i32_v2i64 = 7082,
- SSUBWv4i16_v4i32 = 7083,
- SSUBWv4i32_v2i64 = 7084,
- SSUBWv8i16_v4i32 = 7085,
- SSUBWv8i8_v8i16 = 7086,
- ST1B = 7087,
- ST1B_2Z = 7088,
- ST1B_2Z_IMM = 7089,
- ST1B_2Z_STRIDED = 7090,
- ST1B_2Z_STRIDED_IMM = 7091,
- ST1B_4Z = 7092,
- ST1B_4Z_IMM = 7093,
- ST1B_4Z_STRIDED = 7094,
- ST1B_4Z_STRIDED_IMM = 7095,
- ST1B_D = 7096,
- ST1B_D_IMM = 7097,
- ST1B_H = 7098,
- ST1B_H_IMM = 7099,
- ST1B_IMM = 7100,
- ST1B_S = 7101,
- ST1B_S_IMM = 7102,
- ST1D = 7103,
- ST1D_2Z = 7104,
- ST1D_2Z_IMM = 7105,
- ST1D_2Z_STRIDED = 7106,
- ST1D_2Z_STRIDED_IMM = 7107,
- ST1D_4Z = 7108,
- ST1D_4Z_IMM = 7109,
- ST1D_4Z_STRIDED = 7110,
- ST1D_4Z_STRIDED_IMM = 7111,
- ST1D_IMM = 7112,
- ST1D_Q = 7113,
- ST1D_Q_IMM = 7114,
- ST1Fourv16b = 7115,
- ST1Fourv16b_POST = 7116,
- ST1Fourv1d = 7117,
- ST1Fourv1d_POST = 7118,
- ST1Fourv2d = 7119,
- ST1Fourv2d_POST = 7120,
- ST1Fourv2s = 7121,
- ST1Fourv2s_POST = 7122,
- ST1Fourv4h = 7123,
- ST1Fourv4h_POST = 7124,
- ST1Fourv4s = 7125,
- ST1Fourv4s_POST = 7126,
- ST1Fourv8b = 7127,
- ST1Fourv8b_POST = 7128,
- ST1Fourv8h = 7129,
- ST1Fourv8h_POST = 7130,
- ST1H = 7131,
- ST1H_2Z = 7132,
- ST1H_2Z_IMM = 7133,
- ST1H_2Z_STRIDED = 7134,
- ST1H_2Z_STRIDED_IMM = 7135,
- ST1H_4Z = 7136,
- ST1H_4Z_IMM = 7137,
- ST1H_4Z_STRIDED = 7138,
- ST1H_4Z_STRIDED_IMM = 7139,
- ST1H_D = 7140,
- ST1H_D_IMM = 7141,
- ST1H_IMM = 7142,
- ST1H_S = 7143,
- ST1H_S_IMM = 7144,
- ST1Onev16b = 7145,
- ST1Onev16b_POST = 7146,
- ST1Onev1d = 7147,
- ST1Onev1d_POST = 7148,
- ST1Onev2d = 7149,
- ST1Onev2d_POST = 7150,
- ST1Onev2s = 7151,
- ST1Onev2s_POST = 7152,
- ST1Onev4h = 7153,
- ST1Onev4h_POST = 7154,
- ST1Onev4s = 7155,
- ST1Onev4s_POST = 7156,
- ST1Onev8b = 7157,
- ST1Onev8b_POST = 7158,
- ST1Onev8h = 7159,
- ST1Onev8h_POST = 7160,
- ST1Threev16b = 7161,
- ST1Threev16b_POST = 7162,
- ST1Threev1d = 7163,
- ST1Threev1d_POST = 7164,
- ST1Threev2d = 7165,
- ST1Threev2d_POST = 7166,
- ST1Threev2s = 7167,
- ST1Threev2s_POST = 7168,
- ST1Threev4h = 7169,
- ST1Threev4h_POST = 7170,
- ST1Threev4s = 7171,
- ST1Threev4s_POST = 7172,
- ST1Threev8b = 7173,
- ST1Threev8b_POST = 7174,
- ST1Threev8h = 7175,
- ST1Threev8h_POST = 7176,
- ST1Twov16b = 7177,
- ST1Twov16b_POST = 7178,
- ST1Twov1d = 7179,
- ST1Twov1d_POST = 7180,
- ST1Twov2d = 7181,
- ST1Twov2d_POST = 7182,
- ST1Twov2s = 7183,
- ST1Twov2s_POST = 7184,
- ST1Twov4h = 7185,
- ST1Twov4h_POST = 7186,
- ST1Twov4s = 7187,
- ST1Twov4s_POST = 7188,
- ST1Twov8b = 7189,
- ST1Twov8b_POST = 7190,
- ST1Twov8h = 7191,
- ST1Twov8h_POST = 7192,
- ST1W = 7193,
- ST1W_2Z = 7194,
- ST1W_2Z_IMM = 7195,
- ST1W_2Z_STRIDED = 7196,
- ST1W_2Z_STRIDED_IMM = 7197,
- ST1W_4Z = 7198,
- ST1W_4Z_IMM = 7199,
- ST1W_4Z_STRIDED = 7200,
- ST1W_4Z_STRIDED_IMM = 7201,
- ST1W_D = 7202,
- ST1W_D_IMM = 7203,
- ST1W_IMM = 7204,
- ST1W_Q = 7205,
- ST1W_Q_IMM = 7206,
- ST1_MXIPXX_H_B = 7207,
- ST1_MXIPXX_H_D = 7208,
- ST1_MXIPXX_H_H = 7209,
- ST1_MXIPXX_H_Q = 7210,
- ST1_MXIPXX_H_S = 7211,
- ST1_MXIPXX_V_B = 7212,
- ST1_MXIPXX_V_D = 7213,
- ST1_MXIPXX_V_H = 7214,
- ST1_MXIPXX_V_Q = 7215,
- ST1_MXIPXX_V_S = 7216,
- ST1i16 = 7217,
- ST1i16_POST = 7218,
- ST1i32 = 7219,
- ST1i32_POST = 7220,
- ST1i64 = 7221,
- ST1i64_POST = 7222,
- ST1i8 = 7223,
- ST1i8_POST = 7224,
- ST2B = 7225,
- ST2B_IMM = 7226,
- ST2D = 7227,
- ST2D_IMM = 7228,
- ST2GPostIndex = 7229,
- ST2GPreIndex = 7230,
- ST2Gi = 7231,
- ST2H = 7232,
- ST2H_IMM = 7233,
- ST2Q = 7234,
- ST2Q_IMM = 7235,
- ST2Twov16b = 7236,
- ST2Twov16b_POST = 7237,
- ST2Twov2d = 7238,
- ST2Twov2d_POST = 7239,
- ST2Twov2s = 7240,
- ST2Twov2s_POST = 7241,
- ST2Twov4h = 7242,
- ST2Twov4h_POST = 7243,
- ST2Twov4s = 7244,
- ST2Twov4s_POST = 7245,
- ST2Twov8b = 7246,
- ST2Twov8b_POST = 7247,
- ST2Twov8h = 7248,
- ST2Twov8h_POST = 7249,
- ST2W = 7250,
- ST2W_IMM = 7251,
- ST2i16 = 7252,
- ST2i16_POST = 7253,
- ST2i32 = 7254,
- ST2i32_POST = 7255,
- ST2i64 = 7256,
- ST2i64_POST = 7257,
- ST2i8 = 7258,
- ST2i8_POST = 7259,
- ST3B = 7260,
- ST3B_IMM = 7261,
- ST3D = 7262,
- ST3D_IMM = 7263,
- ST3H = 7264,
- ST3H_IMM = 7265,
- ST3Q = 7266,
- ST3Q_IMM = 7267,
- ST3Threev16b = 7268,
- ST3Threev16b_POST = 7269,
- ST3Threev2d = 7270,
- ST3Threev2d_POST = 7271,
- ST3Threev2s = 7272,
- ST3Threev2s_POST = 7273,
- ST3Threev4h = 7274,
- ST3Threev4h_POST = 7275,
- ST3Threev4s = 7276,
- ST3Threev4s_POST = 7277,
- ST3Threev8b = 7278,
- ST3Threev8b_POST = 7279,
- ST3Threev8h = 7280,
- ST3Threev8h_POST = 7281,
- ST3W = 7282,
- ST3W_IMM = 7283,
- ST3i16 = 7284,
- ST3i16_POST = 7285,
- ST3i32 = 7286,
- ST3i32_POST = 7287,
- ST3i64 = 7288,
- ST3i64_POST = 7289,
- ST3i8 = 7290,
- ST3i8_POST = 7291,
- ST4B = 7292,
- ST4B_IMM = 7293,
- ST4D = 7294,
- ST4D_IMM = 7295,
- ST4Fourv16b = 7296,
- ST4Fourv16b_POST = 7297,
- ST4Fourv2d = 7298,
- ST4Fourv2d_POST = 7299,
- ST4Fourv2s = 7300,
- ST4Fourv2s_POST = 7301,
- ST4Fourv4h = 7302,
- ST4Fourv4h_POST = 7303,
- ST4Fourv4s = 7304,
- ST4Fourv4s_POST = 7305,
- ST4Fourv8b = 7306,
- ST4Fourv8b_POST = 7307,
- ST4Fourv8h = 7308,
- ST4Fourv8h_POST = 7309,
- ST4H = 7310,
- ST4H_IMM = 7311,
- ST4Q = 7312,
- ST4Q_IMM = 7313,
- ST4W = 7314,
- ST4W_IMM = 7315,
- ST4i16 = 7316,
- ST4i16_POST = 7317,
- ST4i32 = 7318,
- ST4i32_POST = 7319,
- ST4i64 = 7320,
- ST4i64_POST = 7321,
- ST4i8 = 7322,
- ST4i8_POST = 7323,
- ST64B = 7324,
- ST64BV = 7325,
- ST64BV0 = 7326,
- STBFADD = 7327,
- STBFADDL = 7328,
- STBFMAX = 7329,
- STBFMAXL = 7330,
- STBFMAXNM = 7331,
- STBFMAXNML = 7332,
- STBFMIN = 7333,
- STBFMINL = 7334,
- STBFMINNM = 7335,
- STBFMINNML = 7336,
- STFADDD = 7337,
- STFADDH = 7338,
- STFADDLD = 7339,
- STFADDLH = 7340,
- STFADDLS = 7341,
- STFADDS = 7342,
- STFMAXD = 7343,
- STFMAXH = 7344,
- STFMAXLD = 7345,
- STFMAXLH = 7346,
- STFMAXLS = 7347,
- STFMAXNMD = 7348,
- STFMAXNMH = 7349,
- STFMAXNMLD = 7350,
- STFMAXNMLH = 7351,
- STFMAXNMLS = 7352,
- STFMAXNMS = 7353,
- STFMAXS = 7354,
- STFMIND = 7355,
- STFMINH = 7356,
- STFMINLD = 7357,
- STFMINLH = 7358,
- STFMINLS = 7359,
- STFMINNMD = 7360,
- STFMINNMH = 7361,
- STFMINNMLD = 7362,
- STFMINNMLH = 7363,
- STFMINNMLS = 7364,
- STFMINNMS = 7365,
- STFMINS = 7366,
- STGM = 7367,
- STGPi = 7368,
- STGPostIndex = 7369,
- STGPpost = 7370,
- STGPpre = 7371,
- STGPreIndex = 7372,
- STGi = 7373,
- STILPW = 7374,
- STILPWpre = 7375,
- STILPX = 7376,
- STILPXpre = 7377,
- STL1 = 7378,
- STLLRB = 7379,
- STLLRH = 7380,
- STLLRW = 7381,
- STLLRX = 7382,
- STLRB = 7383,
- STLRH = 7384,
- STLRW = 7385,
- STLRWpre = 7386,
- STLRX = 7387,
- STLRXpre = 7388,
- STLTXRW = 7389,
- STLTXRX = 7390,
- STLURBi = 7391,
- STLURHi = 7392,
- STLURWi = 7393,
- STLURXi = 7394,
- STLURbi = 7395,
- STLURdi = 7396,
- STLURhi = 7397,
- STLURqi = 7398,
- STLURsi = 7399,
- STLXPW = 7400,
- STLXPX = 7401,
- STLXRB = 7402,
- STLXRH = 7403,
- STLXRW = 7404,
- STLXRX = 7405,
- STMOPA_M2ZZZI_BtoS = 7406,
- STMOPA_M2ZZZI_HtoS = 7407,
- STNPDi = 7408,
- STNPQi = 7409,
- STNPSi = 7410,
- STNPWi = 7411,
- STNPXi = 7412,
- STNT1B_2Z = 7413,
- STNT1B_2Z_IMM = 7414,
- STNT1B_2Z_STRIDED = 7415,
- STNT1B_2Z_STRIDED_IMM = 7416,
- STNT1B_4Z = 7417,
- STNT1B_4Z_IMM = 7418,
- STNT1B_4Z_STRIDED = 7419,
- STNT1B_4Z_STRIDED_IMM = 7420,
- STNT1B_ZRI = 7421,
- STNT1B_ZRR = 7422,
- STNT1B_ZZR_D = 7423,
- STNT1B_ZZR_S = 7424,
- STNT1D_2Z = 7425,
- STNT1D_2Z_IMM = 7426,
- STNT1D_2Z_STRIDED = 7427,
- STNT1D_2Z_STRIDED_IMM = 7428,
- STNT1D_4Z = 7429,
- STNT1D_4Z_IMM = 7430,
- STNT1D_4Z_STRIDED = 7431,
- STNT1D_4Z_STRIDED_IMM = 7432,
- STNT1D_ZRI = 7433,
- STNT1D_ZRR = 7434,
- STNT1D_ZZR_D = 7435,
- STNT1H_2Z = 7436,
- STNT1H_2Z_IMM = 7437,
- STNT1H_2Z_STRIDED = 7438,
- STNT1H_2Z_STRIDED_IMM = 7439,
- STNT1H_4Z = 7440,
- STNT1H_4Z_IMM = 7441,
- STNT1H_4Z_STRIDED = 7442,
- STNT1H_4Z_STRIDED_IMM = 7443,
- STNT1H_ZRI = 7444,
- STNT1H_ZRR = 7445,
- STNT1H_ZZR_D = 7446,
- STNT1H_ZZR_S = 7447,
- STNT1W_2Z = 7448,
- STNT1W_2Z_IMM = 7449,
- STNT1W_2Z_STRIDED = 7450,
- STNT1W_2Z_STRIDED_IMM = 7451,
- STNT1W_4Z = 7452,
- STNT1W_4Z_IMM = 7453,
- STNT1W_4Z_STRIDED = 7454,
- STNT1W_4Z_STRIDED_IMM = 7455,
- STNT1W_ZRI = 7456,
- STNT1W_ZRR = 7457,
- STNT1W_ZZR_D = 7458,
- STNT1W_ZZR_S = 7459,
- STPDi = 7460,
- STPDpost = 7461,
- STPDpre = 7462,
- STPQi = 7463,
- STPQpost = 7464,
- STPQpre = 7465,
- STPSi = 7466,
- STPSpost = 7467,
- STPSpre = 7468,
- STPWi = 7469,
- STPWpost = 7470,
- STPWpre = 7471,
- STPXi = 7472,
- STPXpost = 7473,
- STPXpre = 7474,
- STRBBpost = 7475,
- STRBBpre = 7476,
- STRBBroW = 7477,
- STRBBroX = 7478,
- STRBBui = 7479,
- STRBpost = 7480,
- STRBpre = 7481,
- STRBroW = 7482,
- STRBroX = 7483,
- STRBui = 7484,
- STRDpost = 7485,
- STRDpre = 7486,
- STRDroW = 7487,
- STRDroX = 7488,
- STRDui = 7489,
- STRHHpost = 7490,
- STRHHpre = 7491,
- STRHHroW = 7492,
- STRHHroX = 7493,
- STRHHui = 7494,
- STRHpost = 7495,
- STRHpre = 7496,
- STRHroW = 7497,
- STRHroX = 7498,
- STRHui = 7499,
- STRQpost = 7500,
- STRQpre = 7501,
- STRQroW = 7502,
- STRQroX = 7503,
- STRQui = 7504,
- STRSpost = 7505,
- STRSpre = 7506,
- STRSroW = 7507,
- STRSroX = 7508,
- STRSui = 7509,
- STRWpost = 7510,
- STRWpre = 7511,
- STRWroW = 7512,
- STRWroX = 7513,
- STRWui = 7514,
- STRXpost = 7515,
- STRXpre = 7516,
- STRXroW = 7517,
- STRXroX = 7518,
- STRXui = 7519,
- STR_PXI = 7520,
- STR_TX = 7521,
- STR_ZA = 7522,
- STR_ZXI = 7523,
- STSHH = 7524,
- STTNPQi = 7525,
- STTNPXi = 7526,
- STTPQi = 7527,
- STTPQpost = 7528,
- STTPQpre = 7529,
- STTPi = 7530,
- STTPpost = 7531,
- STTPpre = 7532,
- STTRBi = 7533,
- STTRHi = 7534,
- STTRWi = 7535,
- STTRXi = 7536,
- STTXRWr = 7537,
- STTXRXr = 7538,
- STURBBi = 7539,
- STURBi = 7540,
- STURDi = 7541,
- STURHHi = 7542,
- STURHi = 7543,
- STURQi = 7544,
- STURSi = 7545,
- STURWi = 7546,
- STURXi = 7547,
- STXPW = 7548,
- STXPX = 7549,
- STXRB = 7550,
- STXRH = 7551,
- STXRW = 7552,
- STXRX = 7553,
- STZ2GPostIndex = 7554,
- STZ2GPreIndex = 7555,
- STZ2Gi = 7556,
- STZGM = 7557,
- STZGPostIndex = 7558,
- STZGPreIndex = 7559,
- STZGi = 7560,
- SUBG = 7561,
- SUBHNB_ZZZ_B = 7562,
- SUBHNB_ZZZ_H = 7563,
- SUBHNB_ZZZ_S = 7564,
- SUBHNT_ZZZ_B = 7565,
- SUBHNT_ZZZ_H = 7566,
- SUBHNT_ZZZ_S = 7567,
- SUBHNv2i64_v2i32 = 7568,
- SUBHNv2i64_v4i32 = 7569,
- SUBHNv4i32_v4i16 = 7570,
- SUBHNv4i32_v8i16 = 7571,
- SUBHNv8i16_v16i8 = 7572,
- SUBHNv8i16_v8i8 = 7573,
- SUBP = 7574,
- SUBPS = 7575,
- SUBPT_shift = 7576,
- SUBR_ZI_B = 7577,
- SUBR_ZI_D = 7578,
- SUBR_ZI_H = 7579,
- SUBR_ZI_S = 7580,
- SUBR_ZPmZ_B = 7581,
- SUBR_ZPmZ_D = 7582,
- SUBR_ZPmZ_H = 7583,
- SUBR_ZPmZ_S = 7584,
- SUBSWri = 7585,
- SUBSWrs = 7586,
- SUBSWrx = 7587,
- SUBSXri = 7588,
- SUBSXrs = 7589,
- SUBSXrx = 7590,
- SUBSXrx64 = 7591,
- SUBWri = 7592,
- SUBWrs = 7593,
- SUBWrx = 7594,
- SUBXri = 7595,
- SUBXrs = 7596,
- SUBXrx = 7597,
- SUBXrx64 = 7598,
- SUB_VG2_M2Z2Z_D = 7599,
- SUB_VG2_M2Z2Z_S = 7600,
- SUB_VG2_M2ZZ_D = 7601,
- SUB_VG2_M2ZZ_S = 7602,
- SUB_VG2_M2Z_D = 7603,
- SUB_VG2_M2Z_S = 7604,
- SUB_VG4_M4Z4Z_D = 7605,
- SUB_VG4_M4Z4Z_S = 7606,
- SUB_VG4_M4ZZ_D = 7607,
- SUB_VG4_M4ZZ_S = 7608,
- SUB_VG4_M4Z_D = 7609,
- SUB_VG4_M4Z_S = 7610,
- SUB_ZI_B = 7611,
- SUB_ZI_D = 7612,
- SUB_ZI_H = 7613,
- SUB_ZI_S = 7614,
- SUB_ZPmZ_B = 7615,
- SUB_ZPmZ_CPA = 7616,
- SUB_ZPmZ_D = 7617,
- SUB_ZPmZ_H = 7618,
- SUB_ZPmZ_S = 7619,
- SUB_ZZZ_B = 7620,
- SUB_ZZZ_CPA = 7621,
- SUB_ZZZ_D = 7622,
- SUB_ZZZ_H = 7623,
- SUB_ZZZ_S = 7624,
- SUBv16i8 = 7625,
- SUBv1i64 = 7626,
- SUBv2i32 = 7627,
- SUBv2i64 = 7628,
- SUBv4i16 = 7629,
- SUBv4i32 = 7630,
- SUBv8i16 = 7631,
- SUBv8i8 = 7632,
- SUDOT_VG2_M2ZZI_BToS = 7633,
- SUDOT_VG2_M2ZZ_BToS = 7634,
- SUDOT_VG4_M4ZZI_BToS = 7635,
- SUDOT_VG4_M4ZZ_BToS = 7636,
- SUDOT_ZZZI = 7637,
- SUDOTlanev16i8 = 7638,
- SUDOTlanev8i8 = 7639,
- SUMLALL_MZZI_BtoS = 7640,
- SUMLALL_VG2_M2ZZI_BtoS = 7641,
- SUMLALL_VG2_M2ZZ_BtoS = 7642,
- SUMLALL_VG4_M4ZZI_BtoS = 7643,
- SUMLALL_VG4_M4ZZ_BtoS = 7644,
- SUMOP4A_M2Z2Z_BToS = 7645,
- SUMOP4A_M2Z2Z_HtoD = 7646,
- SUMOP4A_M2ZZ_BToS = 7647,
- SUMOP4A_M2ZZ_HtoD = 7648,
- SUMOP4A_MZ2Z_BToS = 7649,
- SUMOP4A_MZ2Z_HtoD = 7650,
- SUMOP4A_MZZ_BToS = 7651,
- SUMOP4A_MZZ_HtoD = 7652,
- SUMOP4S_M2Z2Z_BToS = 7653,
- SUMOP4S_M2Z2Z_HtoD = 7654,
- SUMOP4S_M2ZZ_BToS = 7655,
- SUMOP4S_M2ZZ_HtoD = 7656,
- SUMOP4S_MZ2Z_BToS = 7657,
- SUMOP4S_MZ2Z_HtoD = 7658,
- SUMOP4S_MZZ_BToS = 7659,
- SUMOP4S_MZZ_HtoD = 7660,
- SUMOPA_MPPZZ_D = 7661,
- SUMOPA_MPPZZ_S = 7662,
- SUMOPS_MPPZZ_D = 7663,
- SUMOPS_MPPZZ_S = 7664,
- SUNPKHI_ZZ_D = 7665,
- SUNPKHI_ZZ_H = 7666,
- SUNPKHI_ZZ_S = 7667,
- SUNPKLO_ZZ_D = 7668,
- SUNPKLO_ZZ_H = 7669,
- SUNPKLO_ZZ_S = 7670,
- SUNPK_VG2_2ZZ_D = 7671,
- SUNPK_VG2_2ZZ_H = 7672,
- SUNPK_VG2_2ZZ_S = 7673,
- SUNPK_VG4_4Z2Z_D = 7674,
- SUNPK_VG4_4Z2Z_H = 7675,
- SUNPK_VG4_4Z2Z_S = 7676,
- SUQADD_ZPmZ_B = 7677,
- SUQADD_ZPmZ_D = 7678,
- SUQADD_ZPmZ_H = 7679,
- SUQADD_ZPmZ_S = 7680,
- SUQADDv16i8 = 7681,
- SUQADDv1i16 = 7682,
- SUQADDv1i32 = 7683,
- SUQADDv1i64 = 7684,
- SUQADDv1i8 = 7685,
- SUQADDv2i32 = 7686,
- SUQADDv2i64 = 7687,
- SUQADDv4i16 = 7688,
- SUQADDv4i32 = 7689,
- SUQADDv8i16 = 7690,
- SUQADDv8i8 = 7691,
- SUTMOPA_M2ZZZI_BtoS = 7692,
- SUVDOT_VG4_M4ZZI_BToS = 7693,
- SVC = 7694,
- SVDOT_VG2_M2ZZI_HtoS = 7695,
- SVDOT_VG4_M4ZZI_BtoS = 7696,
- SVDOT_VG4_M4ZZI_HtoD = 7697,
- SWPAB = 7698,
- SWPAH = 7699,
- SWPALB = 7700,
- SWPALH = 7701,
- SWPALW = 7702,
- SWPALX = 7703,
- SWPAW = 7704,
- SWPAX = 7705,
- SWPB = 7706,
- SWPH = 7707,
- SWPLB = 7708,
- SWPLH = 7709,
- SWPLW = 7710,
- SWPLX = 7711,
- SWPP = 7712,
- SWPPA = 7713,
- SWPPAL = 7714,
- SWPPL = 7715,
- SWPTALW = 7716,
- SWPTALX = 7717,
- SWPTAW = 7718,
- SWPTAX = 7719,
- SWPTLW = 7720,
- SWPTLX = 7721,
- SWPTW = 7722,
- SWPTX = 7723,
- SWPW = 7724,
- SWPX = 7725,
- SXTB_ZPmZ_D = 7726,
- SXTB_ZPmZ_H = 7727,
- SXTB_ZPmZ_S = 7728,
- SXTB_ZPzZ_D = 7729,
- SXTB_ZPzZ_H = 7730,
- SXTB_ZPzZ_S = 7731,
- SXTH_ZPmZ_D = 7732,
- SXTH_ZPmZ_S = 7733,
- SXTH_ZPzZ_D = 7734,
- SXTH_ZPzZ_S = 7735,
- SXTW_ZPmZ_D = 7736,
- SXTW_ZPzZ_D = 7737,
- SYSLxt = 7738,
- SYSPxt = 7739,
- SYSPxt_XZR = 7740,
- SYSxt = 7741,
- TBLQ_ZZZ_B = 7742,
- TBLQ_ZZZ_D = 7743,
- TBLQ_ZZZ_H = 7744,
- TBLQ_ZZZ_S = 7745,
- TBL_ZZZZ_B = 7746,
- TBL_ZZZZ_D = 7747,
- TBL_ZZZZ_H = 7748,
- TBL_ZZZZ_S = 7749,
- TBL_ZZZ_B = 7750,
- TBL_ZZZ_D = 7751,
- TBL_ZZZ_H = 7752,
- TBL_ZZZ_S = 7753,
- TBLv16i8Four = 7754,
- TBLv16i8One = 7755,
- TBLv16i8Three = 7756,
- TBLv16i8Two = 7757,
- TBLv8i8Four = 7758,
- TBLv8i8One = 7759,
- TBLv8i8Three = 7760,
- TBLv8i8Two = 7761,
- TBNZW = 7762,
- TBNZX = 7763,
- TBXQ_ZZZ_B = 7764,
- TBXQ_ZZZ_D = 7765,
- TBXQ_ZZZ_H = 7766,
- TBXQ_ZZZ_S = 7767,
- TBX_ZZZ_B = 7768,
- TBX_ZZZ_D = 7769,
- TBX_ZZZ_H = 7770,
- TBX_ZZZ_S = 7771,
- TBXv16i8Four = 7772,
- TBXv16i8One = 7773,
- TBXv16i8Three = 7774,
- TBXv16i8Two = 7775,
- TBXv8i8Four = 7776,
- TBXv8i8One = 7777,
- TBXv8i8Three = 7778,
- TBXv8i8Two = 7779,
- TBZW = 7780,
- TBZX = 7781,
- TCANCEL = 7782,
- TCOMMIT = 7783,
- TRCIT = 7784,
- TRN1_PPP_B = 7785,
- TRN1_PPP_D = 7786,
- TRN1_PPP_H = 7787,
- TRN1_PPP_S = 7788,
- TRN1_ZZZ_B = 7789,
- TRN1_ZZZ_D = 7790,
- TRN1_ZZZ_H = 7791,
- TRN1_ZZZ_Q = 7792,
- TRN1_ZZZ_S = 7793,
- TRN1v16i8 = 7794,
- TRN1v2i32 = 7795,
- TRN1v2i64 = 7796,
- TRN1v4i16 = 7797,
- TRN1v4i32 = 7798,
- TRN1v8i16 = 7799,
- TRN1v8i8 = 7800,
- TRN2_PPP_B = 7801,
- TRN2_PPP_D = 7802,
- TRN2_PPP_H = 7803,
- TRN2_PPP_S = 7804,
- TRN2_ZZZ_B = 7805,
- TRN2_ZZZ_D = 7806,
- TRN2_ZZZ_H = 7807,
- TRN2_ZZZ_Q = 7808,
- TRN2_ZZZ_S = 7809,
- TRN2v16i8 = 7810,
- TRN2v2i32 = 7811,
- TRN2v2i64 = 7812,
- TRN2v4i16 = 7813,
- TRN2v4i32 = 7814,
- TRN2v8i16 = 7815,
- TRN2v8i8 = 7816,
- TSB = 7817,
- TSTART = 7818,
- TTEST = 7819,
- UABALB_ZZZ_D = 7820,
- UABALB_ZZZ_H = 7821,
- UABALB_ZZZ_S = 7822,
- UABALT_ZZZ_D = 7823,
- UABALT_ZZZ_H = 7824,
- UABALT_ZZZ_S = 7825,
- UABALv16i8_v8i16 = 7826,
- UABALv2i32_v2i64 = 7827,
- UABALv4i16_v4i32 = 7828,
- UABALv4i32_v2i64 = 7829,
- UABALv8i16_v4i32 = 7830,
- UABALv8i8_v8i16 = 7831,
- UABA_ZZZ_B = 7832,
- UABA_ZZZ_D = 7833,
- UABA_ZZZ_H = 7834,
- UABA_ZZZ_S = 7835,
- UABAv16i8 = 7836,
- UABAv2i32 = 7837,
- UABAv4i16 = 7838,
- UABAv4i32 = 7839,
- UABAv8i16 = 7840,
- UABAv8i8 = 7841,
- UABDLB_ZZZ_D = 7842,
- UABDLB_ZZZ_H = 7843,
- UABDLB_ZZZ_S = 7844,
- UABDLT_ZZZ_D = 7845,
- UABDLT_ZZZ_H = 7846,
- UABDLT_ZZZ_S = 7847,
- UABDLv16i8_v8i16 = 7848,
- UABDLv2i32_v2i64 = 7849,
- UABDLv4i16_v4i32 = 7850,
- UABDLv4i32_v2i64 = 7851,
- UABDLv8i16_v4i32 = 7852,
- UABDLv8i8_v8i16 = 7853,
- UABD_ZPmZ_B = 7854,
- UABD_ZPmZ_D = 7855,
- UABD_ZPmZ_H = 7856,
- UABD_ZPmZ_S = 7857,
- UABDv16i8 = 7858,
- UABDv2i32 = 7859,
- UABDv4i16 = 7860,
- UABDv4i32 = 7861,
- UABDv8i16 = 7862,
- UABDv8i8 = 7863,
- UADALP_ZPmZ_D = 7864,
- UADALP_ZPmZ_H = 7865,
- UADALP_ZPmZ_S = 7866,
- UADALPv16i8_v8i16 = 7867,
- UADALPv2i32_v1i64 = 7868,
- UADALPv4i16_v2i32 = 7869,
- UADALPv4i32_v2i64 = 7870,
- UADALPv8i16_v4i32 = 7871,
- UADALPv8i8_v4i16 = 7872,
- UADDLB_ZZZ_D = 7873,
- UADDLB_ZZZ_H = 7874,
- UADDLB_ZZZ_S = 7875,
- UADDLPv16i8_v8i16 = 7876,
- UADDLPv2i32_v1i64 = 7877,
- UADDLPv4i16_v2i32 = 7878,
- UADDLPv4i32_v2i64 = 7879,
- UADDLPv8i16_v4i32 = 7880,
- UADDLPv8i8_v4i16 = 7881,
- UADDLT_ZZZ_D = 7882,
- UADDLT_ZZZ_H = 7883,
- UADDLT_ZZZ_S = 7884,
- UADDLVv16i8v = 7885,
- UADDLVv4i16v = 7886,
- UADDLVv4i32v = 7887,
- UADDLVv8i16v = 7888,
- UADDLVv8i8v = 7889,
- UADDLv16i8_v8i16 = 7890,
- UADDLv2i32_v2i64 = 7891,
- UADDLv4i16_v4i32 = 7892,
- UADDLv4i32_v2i64 = 7893,
- UADDLv8i16_v4i32 = 7894,
- UADDLv8i8_v8i16 = 7895,
- UADDV_VPZ_B = 7896,
- UADDV_VPZ_D = 7897,
- UADDV_VPZ_H = 7898,
- UADDV_VPZ_S = 7899,
- UADDWB_ZZZ_D = 7900,
- UADDWB_ZZZ_H = 7901,
- UADDWB_ZZZ_S = 7902,
- UADDWT_ZZZ_D = 7903,
- UADDWT_ZZZ_H = 7904,
- UADDWT_ZZZ_S = 7905,
- UADDWv16i8_v8i16 = 7906,
- UADDWv2i32_v2i64 = 7907,
- UADDWv4i16_v4i32 = 7908,
- UADDWv4i32_v2i64 = 7909,
- UADDWv8i16_v4i32 = 7910,
- UADDWv8i8_v8i16 = 7911,
- UBFMWri = 7912,
- UBFMXri = 7913,
- UCLAMP_VG2_2Z2Z_B = 7914,
- UCLAMP_VG2_2Z2Z_D = 7915,
- UCLAMP_VG2_2Z2Z_H = 7916,
- UCLAMP_VG2_2Z2Z_S = 7917,
- UCLAMP_VG4_4Z4Z_B = 7918,
- UCLAMP_VG4_4Z4Z_D = 7919,
- UCLAMP_VG4_4Z4Z_H = 7920,
- UCLAMP_VG4_4Z4Z_S = 7921,
- UCLAMP_ZZZ_B = 7922,
- UCLAMP_ZZZ_D = 7923,
- UCLAMP_ZZZ_H = 7924,
- UCLAMP_ZZZ_S = 7925,
- UCVTFDSr = 7926,
- UCVTFHDr = 7927,
- UCVTFHSr = 7928,
- UCVTFSDr = 7929,
- UCVTFSWDri = 7930,
- UCVTFSWHri = 7931,
- UCVTFSWSri = 7932,
- UCVTFSXDri = 7933,
- UCVTFSXHri = 7934,
- UCVTFSXSri = 7935,
- UCVTFUWDri = 7936,
- UCVTFUWHri = 7937,
- UCVTFUWSri = 7938,
- UCVTFUXDri = 7939,
- UCVTFUXHri = 7940,
- UCVTFUXSri = 7941,
- UCVTF_2Z2Z_StoS = 7942,
- UCVTF_4Z4Z_StoS = 7943,
- UCVTF_ZPmZ_DtoD = 7944,
- UCVTF_ZPmZ_DtoH = 7945,
- UCVTF_ZPmZ_DtoS = 7946,
- UCVTF_ZPmZ_HtoH = 7947,
- UCVTF_ZPmZ_StoD = 7948,
- UCVTF_ZPmZ_StoH = 7949,
- UCVTF_ZPmZ_StoS = 7950,
- UCVTF_ZPzZ_DtoD = 7951,
- UCVTF_ZPzZ_DtoH = 7952,
- UCVTF_ZPzZ_DtoS = 7953,
- UCVTF_ZPzZ_HtoH = 7954,
- UCVTF_ZPzZ_StoD = 7955,
- UCVTF_ZPzZ_StoH = 7956,
- UCVTF_ZPzZ_StoS = 7957,
- UCVTFd = 7958,
- UCVTFh = 7959,
- UCVTFs = 7960,
- UCVTFv1i16 = 7961,
- UCVTFv1i32 = 7962,
- UCVTFv1i64 = 7963,
- UCVTFv2f32 = 7964,
- UCVTFv2f64 = 7965,
- UCVTFv2i32_shift = 7966,
- UCVTFv2i64_shift = 7967,
- UCVTFv4f16 = 7968,
- UCVTFv4f32 = 7969,
- UCVTFv4i16_shift = 7970,
- UCVTFv4i32_shift = 7971,
- UCVTFv8f16 = 7972,
- UCVTFv8i16_shift = 7973,
- UDF = 7974,
- UDIVR_ZPmZ_D = 7975,
- UDIVR_ZPmZ_S = 7976,
- UDIVWr = 7977,
- UDIVXr = 7978,
- UDIV_ZPmZ_D = 7979,
- UDIV_ZPmZ_S = 7980,
- UDOT_VG2_M2Z2Z_BtoS = 7981,
- UDOT_VG2_M2Z2Z_HtoD = 7982,
- UDOT_VG2_M2Z2Z_HtoS = 7983,
- UDOT_VG2_M2ZZI_BToS = 7984,
- UDOT_VG2_M2ZZI_HToS = 7985,
- UDOT_VG2_M2ZZI_HtoD = 7986,
- UDOT_VG2_M2ZZ_BtoS = 7987,
- UDOT_VG2_M2ZZ_HtoD = 7988,
- UDOT_VG2_M2ZZ_HtoS = 7989,
- UDOT_VG4_M4Z4Z_BtoS = 7990,
- UDOT_VG4_M4Z4Z_HtoD = 7991,
- UDOT_VG4_M4Z4Z_HtoS = 7992,
- UDOT_VG4_M4ZZI_BtoS = 7993,
- UDOT_VG4_M4ZZI_HToS = 7994,
- UDOT_VG4_M4ZZI_HtoD = 7995,
- UDOT_VG4_M4ZZ_BtoS = 7996,
- UDOT_VG4_M4ZZ_HtoD = 7997,
- UDOT_VG4_M4ZZ_HtoS = 7998,
- UDOT_ZZZI_D = 7999,
- UDOT_ZZZI_HtoS = 8000,
- UDOT_ZZZI_S = 8001,
- UDOT_ZZZ_D = 8002,
- UDOT_ZZZ_HtoS = 8003,
- UDOT_ZZZ_S = 8004,
- UDOTlanev16i8 = 8005,
- UDOTlanev8i8 = 8006,
- UDOTv16i8 = 8007,
- UDOTv8i8 = 8008,
- UHADD_ZPmZ_B = 8009,
- UHADD_ZPmZ_D = 8010,
- UHADD_ZPmZ_H = 8011,
- UHADD_ZPmZ_S = 8012,
- UHADDv16i8 = 8013,
- UHADDv2i32 = 8014,
- UHADDv4i16 = 8015,
- UHADDv4i32 = 8016,
- UHADDv8i16 = 8017,
- UHADDv8i8 = 8018,
- UHSUBR_ZPmZ_B = 8019,
- UHSUBR_ZPmZ_D = 8020,
- UHSUBR_ZPmZ_H = 8021,
- UHSUBR_ZPmZ_S = 8022,
- UHSUB_ZPmZ_B = 8023,
- UHSUB_ZPmZ_D = 8024,
- UHSUB_ZPmZ_H = 8025,
- UHSUB_ZPmZ_S = 8026,
- UHSUBv16i8 = 8027,
- UHSUBv2i32 = 8028,
- UHSUBv4i16 = 8029,
- UHSUBv4i32 = 8030,
- UHSUBv8i16 = 8031,
- UHSUBv8i8 = 8032,
- UMADDLrrr = 8033,
- UMAXP_ZPmZ_B = 8034,
- UMAXP_ZPmZ_D = 8035,
- UMAXP_ZPmZ_H = 8036,
- UMAXP_ZPmZ_S = 8037,
- UMAXPv16i8 = 8038,
- UMAXPv2i32 = 8039,
- UMAXPv4i16 = 8040,
- UMAXPv4i32 = 8041,
- UMAXPv8i16 = 8042,
- UMAXPv8i8 = 8043,
- UMAXQV_VPZ_B = 8044,
- UMAXQV_VPZ_D = 8045,
- UMAXQV_VPZ_H = 8046,
- UMAXQV_VPZ_S = 8047,
- UMAXV_VPZ_B = 8048,
- UMAXV_VPZ_D = 8049,
- UMAXV_VPZ_H = 8050,
- UMAXV_VPZ_S = 8051,
- UMAXVv16i8v = 8052,
- UMAXVv4i16v = 8053,
- UMAXVv4i32v = 8054,
- UMAXVv8i16v = 8055,
- UMAXVv8i8v = 8056,
- UMAXWri = 8057,
- UMAXWrr = 8058,
- UMAXXri = 8059,
- UMAXXrr = 8060,
- UMAX_VG2_2Z2Z_B = 8061,
- UMAX_VG2_2Z2Z_D = 8062,
- UMAX_VG2_2Z2Z_H = 8063,
- UMAX_VG2_2Z2Z_S = 8064,
- UMAX_VG2_2ZZ_B = 8065,
- UMAX_VG2_2ZZ_D = 8066,
- UMAX_VG2_2ZZ_H = 8067,
- UMAX_VG2_2ZZ_S = 8068,
- UMAX_VG4_4Z4Z_B = 8069,
- UMAX_VG4_4Z4Z_D = 8070,
- UMAX_VG4_4Z4Z_H = 8071,
- UMAX_VG4_4Z4Z_S = 8072,
- UMAX_VG4_4ZZ_B = 8073,
- UMAX_VG4_4ZZ_D = 8074,
- UMAX_VG4_4ZZ_H = 8075,
- UMAX_VG4_4ZZ_S = 8076,
- UMAX_ZI_B = 8077,
- UMAX_ZI_D = 8078,
- UMAX_ZI_H = 8079,
- UMAX_ZI_S = 8080,
- UMAX_ZPmZ_B = 8081,
- UMAX_ZPmZ_D = 8082,
- UMAX_ZPmZ_H = 8083,
- UMAX_ZPmZ_S = 8084,
- UMAXv16i8 = 8085,
- UMAXv2i32 = 8086,
- UMAXv4i16 = 8087,
- UMAXv4i32 = 8088,
- UMAXv8i16 = 8089,
- UMAXv8i8 = 8090,
- UMINP_ZPmZ_B = 8091,
- UMINP_ZPmZ_D = 8092,
- UMINP_ZPmZ_H = 8093,
- UMINP_ZPmZ_S = 8094,
- UMINPv16i8 = 8095,
- UMINPv2i32 = 8096,
- UMINPv4i16 = 8097,
- UMINPv4i32 = 8098,
- UMINPv8i16 = 8099,
- UMINPv8i8 = 8100,
- UMINQV_VPZ_B = 8101,
- UMINQV_VPZ_D = 8102,
- UMINQV_VPZ_H = 8103,
- UMINQV_VPZ_S = 8104,
- UMINV_VPZ_B = 8105,
- UMINV_VPZ_D = 8106,
- UMINV_VPZ_H = 8107,
- UMINV_VPZ_S = 8108,
- UMINVv16i8v = 8109,
- UMINVv4i16v = 8110,
- UMINVv4i32v = 8111,
- UMINVv8i16v = 8112,
- UMINVv8i8v = 8113,
- UMINWri = 8114,
- UMINWrr = 8115,
- UMINXri = 8116,
- UMINXrr = 8117,
- UMIN_VG2_2Z2Z_B = 8118,
- UMIN_VG2_2Z2Z_D = 8119,
- UMIN_VG2_2Z2Z_H = 8120,
- UMIN_VG2_2Z2Z_S = 8121,
- UMIN_VG2_2ZZ_B = 8122,
- UMIN_VG2_2ZZ_D = 8123,
- UMIN_VG2_2ZZ_H = 8124,
- UMIN_VG2_2ZZ_S = 8125,
- UMIN_VG4_4Z4Z_B = 8126,
- UMIN_VG4_4Z4Z_D = 8127,
- UMIN_VG4_4Z4Z_H = 8128,
- UMIN_VG4_4Z4Z_S = 8129,
- UMIN_VG4_4ZZ_B = 8130,
- UMIN_VG4_4ZZ_D = 8131,
- UMIN_VG4_4ZZ_H = 8132,
- UMIN_VG4_4ZZ_S = 8133,
- UMIN_ZI_B = 8134,
- UMIN_ZI_D = 8135,
- UMIN_ZI_H = 8136,
- UMIN_ZI_S = 8137,
- UMIN_ZPmZ_B = 8138,
- UMIN_ZPmZ_D = 8139,
- UMIN_ZPmZ_H = 8140,
- UMIN_ZPmZ_S = 8141,
- UMINv16i8 = 8142,
- UMINv2i32 = 8143,
- UMINv4i16 = 8144,
- UMINv4i32 = 8145,
- UMINv8i16 = 8146,
- UMINv8i8 = 8147,
- UMLALB_ZZZI_D = 8148,
- UMLALB_ZZZI_S = 8149,
- UMLALB_ZZZ_D = 8150,
- UMLALB_ZZZ_H = 8151,
- UMLALB_ZZZ_S = 8152,
- UMLALL_MZZI_BtoS = 8153,
- UMLALL_MZZI_HtoD = 8154,
- UMLALL_MZZ_BtoS = 8155,
- UMLALL_MZZ_HtoD = 8156,
- UMLALL_VG2_M2Z2Z_BtoS = 8157,
- UMLALL_VG2_M2Z2Z_HtoD = 8158,
- UMLALL_VG2_M2ZZI_BtoS = 8159,
- UMLALL_VG2_M2ZZI_HtoD = 8160,
- UMLALL_VG2_M2ZZ_BtoS = 8161,
- UMLALL_VG2_M2ZZ_HtoD = 8162,
- UMLALL_VG4_M4Z4Z_BtoS = 8163,
- UMLALL_VG4_M4Z4Z_HtoD = 8164,
- UMLALL_VG4_M4ZZI_BtoS = 8165,
- UMLALL_VG4_M4ZZI_HtoD = 8166,
- UMLALL_VG4_M4ZZ_BtoS = 8167,
- UMLALL_VG4_M4ZZ_HtoD = 8168,
- UMLALT_ZZZI_D = 8169,
- UMLALT_ZZZI_S = 8170,
- UMLALT_ZZZ_D = 8171,
- UMLALT_ZZZ_H = 8172,
- UMLALT_ZZZ_S = 8173,
- UMLAL_MZZI_HtoS = 8174,
- UMLAL_MZZ_HtoS = 8175,
- UMLAL_VG2_M2Z2Z_HtoS = 8176,
- UMLAL_VG2_M2ZZI_S = 8177,
- UMLAL_VG2_M2ZZ_HtoS = 8178,
- UMLAL_VG4_M4Z4Z_HtoS = 8179,
- UMLAL_VG4_M4ZZI_HtoS = 8180,
- UMLAL_VG4_M4ZZ_HtoS = 8181,
- UMLALv16i8_v8i16 = 8182,
- UMLALv2i32_indexed = 8183,
- UMLALv2i32_v2i64 = 8184,
- UMLALv4i16_indexed = 8185,
- UMLALv4i16_v4i32 = 8186,
- UMLALv4i32_indexed = 8187,
- UMLALv4i32_v2i64 = 8188,
- UMLALv8i16_indexed = 8189,
- UMLALv8i16_v4i32 = 8190,
- UMLALv8i8_v8i16 = 8191,
- UMLSLB_ZZZI_D = 8192,
- UMLSLB_ZZZI_S = 8193,
- UMLSLB_ZZZ_D = 8194,
- UMLSLB_ZZZ_H = 8195,
- UMLSLB_ZZZ_S = 8196,
- UMLSLL_MZZI_BtoS = 8197,
- UMLSLL_MZZI_HtoD = 8198,
- UMLSLL_MZZ_BtoS = 8199,
- UMLSLL_MZZ_HtoD = 8200,
- UMLSLL_VG2_M2Z2Z_BtoS = 8201,
- UMLSLL_VG2_M2Z2Z_HtoD = 8202,
- UMLSLL_VG2_M2ZZI_BtoS = 8203,
- UMLSLL_VG2_M2ZZI_HtoD = 8204,
- UMLSLL_VG2_M2ZZ_BtoS = 8205,
- UMLSLL_VG2_M2ZZ_HtoD = 8206,
- UMLSLL_VG4_M4Z4Z_BtoS = 8207,
- UMLSLL_VG4_M4Z4Z_HtoD = 8208,
- UMLSLL_VG4_M4ZZI_BtoS = 8209,
- UMLSLL_VG4_M4ZZI_HtoD = 8210,
- UMLSLL_VG4_M4ZZ_BtoS = 8211,
- UMLSLL_VG4_M4ZZ_HtoD = 8212,
- UMLSLT_ZZZI_D = 8213,
- UMLSLT_ZZZI_S = 8214,
- UMLSLT_ZZZ_D = 8215,
- UMLSLT_ZZZ_H = 8216,
- UMLSLT_ZZZ_S = 8217,
- UMLSL_MZZI_HtoS = 8218,
- UMLSL_MZZ_HtoS = 8219,
- UMLSL_VG2_M2Z2Z_HtoS = 8220,
- UMLSL_VG2_M2ZZI_S = 8221,
- UMLSL_VG2_M2ZZ_HtoS = 8222,
- UMLSL_VG4_M4Z4Z_HtoS = 8223,
- UMLSL_VG4_M4ZZI_HtoS = 8224,
- UMLSL_VG4_M4ZZ_HtoS = 8225,
- UMLSLv16i8_v8i16 = 8226,
- UMLSLv2i32_indexed = 8227,
- UMLSLv2i32_v2i64 = 8228,
- UMLSLv4i16_indexed = 8229,
- UMLSLv4i16_v4i32 = 8230,
- UMLSLv4i32_indexed = 8231,
- UMLSLv4i32_v2i64 = 8232,
- UMLSLv8i16_indexed = 8233,
- UMLSLv8i16_v4i32 = 8234,
- UMLSLv8i8_v8i16 = 8235,
- UMMLA = 8236,
- UMMLA_ZZZ = 8237,
- UMOP4A_M2Z2Z_BToS = 8238,
- UMOP4A_M2Z2Z_HToS = 8239,
- UMOP4A_M2Z2Z_HtoD = 8240,
- UMOP4A_M2ZZ_BToS = 8241,
- UMOP4A_M2ZZ_HToS = 8242,
- UMOP4A_M2ZZ_HtoD = 8243,
- UMOP4A_MZ2Z_BToS = 8244,
- UMOP4A_MZ2Z_HToS = 8245,
- UMOP4A_MZ2Z_HtoD = 8246,
- UMOP4A_MZZ_BToS = 8247,
- UMOP4A_MZZ_HToS = 8248,
- UMOP4A_MZZ_HtoD = 8249,
- UMOP4S_M2Z2Z_BToS = 8250,
- UMOP4S_M2Z2Z_HToS = 8251,
- UMOP4S_M2Z2Z_HtoD = 8252,
- UMOP4S_M2ZZ_BToS = 8253,
- UMOP4S_M2ZZ_HToS = 8254,
- UMOP4S_M2ZZ_HtoD = 8255,
- UMOP4S_MZ2Z_BToS = 8256,
- UMOP4S_MZ2Z_HToS = 8257,
- UMOP4S_MZ2Z_HtoD = 8258,
- UMOP4S_MZZ_BToS = 8259,
- UMOP4S_MZZ_HToS = 8260,
- UMOP4S_MZZ_HtoD = 8261,
- UMOPA_MPPZZ_D = 8262,
- UMOPA_MPPZZ_HtoS = 8263,
- UMOPA_MPPZZ_S = 8264,
- UMOPS_MPPZZ_D = 8265,
- UMOPS_MPPZZ_HtoS = 8266,
- UMOPS_MPPZZ_S = 8267,
- UMOVvi16 = 8268,
- UMOVvi16_idx0 = 8269,
- UMOVvi32 = 8270,
- UMOVvi32_idx0 = 8271,
- UMOVvi64 = 8272,
- UMOVvi64_idx0 = 8273,
- UMOVvi8 = 8274,
- UMOVvi8_idx0 = 8275,
- UMSUBLrrr = 8276,
- UMULH_ZPmZ_B = 8277,
- UMULH_ZPmZ_D = 8278,
- UMULH_ZPmZ_H = 8279,
- UMULH_ZPmZ_S = 8280,
- UMULH_ZZZ_B = 8281,
- UMULH_ZZZ_D = 8282,
- UMULH_ZZZ_H = 8283,
- UMULH_ZZZ_S = 8284,
- UMULHrr = 8285,
- UMULLB_ZZZI_D = 8286,
- UMULLB_ZZZI_S = 8287,
- UMULLB_ZZZ_D = 8288,
- UMULLB_ZZZ_H = 8289,
- UMULLB_ZZZ_S = 8290,
- UMULLT_ZZZI_D = 8291,
- UMULLT_ZZZI_S = 8292,
- UMULLT_ZZZ_D = 8293,
- UMULLT_ZZZ_H = 8294,
- UMULLT_ZZZ_S = 8295,
- UMULLv16i8_v8i16 = 8296,
- UMULLv2i32_indexed = 8297,
- UMULLv2i32_v2i64 = 8298,
- UMULLv4i16_indexed = 8299,
- UMULLv4i16_v4i32 = 8300,
- UMULLv4i32_indexed = 8301,
- UMULLv4i32_v2i64 = 8302,
- UMULLv8i16_indexed = 8303,
- UMULLv8i16_v4i32 = 8304,
- UMULLv8i8_v8i16 = 8305,
- UQADD_ZI_B = 8306,
- UQADD_ZI_D = 8307,
- UQADD_ZI_H = 8308,
- UQADD_ZI_S = 8309,
- UQADD_ZPmZ_B = 8310,
- UQADD_ZPmZ_D = 8311,
- UQADD_ZPmZ_H = 8312,
- UQADD_ZPmZ_S = 8313,
- UQADD_ZZZ_B = 8314,
- UQADD_ZZZ_D = 8315,
- UQADD_ZZZ_H = 8316,
- UQADD_ZZZ_S = 8317,
- UQADDv16i8 = 8318,
- UQADDv1i16 = 8319,
- UQADDv1i32 = 8320,
- UQADDv1i64 = 8321,
- UQADDv1i8 = 8322,
- UQADDv2i32 = 8323,
- UQADDv2i64 = 8324,
- UQADDv4i16 = 8325,
- UQADDv4i32 = 8326,
- UQADDv8i16 = 8327,
- UQADDv8i8 = 8328,
- UQCVTN_Z2Z_StoH = 8329,
- UQCVTN_Z4Z_DtoH = 8330,
- UQCVTN_Z4Z_StoB = 8331,
- UQCVT_Z2Z_StoH = 8332,
- UQCVT_Z4Z_DtoH = 8333,
- UQCVT_Z4Z_StoB = 8334,
- UQDECB_WPiI = 8335,
- UQDECB_XPiI = 8336,
- UQDECD_WPiI = 8337,
- UQDECD_XPiI = 8338,
- UQDECD_ZPiI = 8339,
- UQDECH_WPiI = 8340,
- UQDECH_XPiI = 8341,
- UQDECH_ZPiI = 8342,
- UQDECP_WP_B = 8343,
- UQDECP_WP_D = 8344,
- UQDECP_WP_H = 8345,
- UQDECP_WP_S = 8346,
- UQDECP_XP_B = 8347,
- UQDECP_XP_D = 8348,
- UQDECP_XP_H = 8349,
- UQDECP_XP_S = 8350,
- UQDECP_ZP_D = 8351,
- UQDECP_ZP_H = 8352,
- UQDECP_ZP_S = 8353,
- UQDECW_WPiI = 8354,
- UQDECW_XPiI = 8355,
- UQDECW_ZPiI = 8356,
- UQINCB_WPiI = 8357,
- UQINCB_XPiI = 8358,
- UQINCD_WPiI = 8359,
- UQINCD_XPiI = 8360,
- UQINCD_ZPiI = 8361,
- UQINCH_WPiI = 8362,
- UQINCH_XPiI = 8363,
- UQINCH_ZPiI = 8364,
- UQINCP_WP_B = 8365,
- UQINCP_WP_D = 8366,
- UQINCP_WP_H = 8367,
- UQINCP_WP_S = 8368,
- UQINCP_XP_B = 8369,
- UQINCP_XP_D = 8370,
- UQINCP_XP_H = 8371,
- UQINCP_XP_S = 8372,
- UQINCP_ZP_D = 8373,
- UQINCP_ZP_H = 8374,
- UQINCP_ZP_S = 8375,
- UQINCW_WPiI = 8376,
- UQINCW_XPiI = 8377,
- UQINCW_ZPiI = 8378,
- UQRSHLR_ZPmZ_B = 8379,
- UQRSHLR_ZPmZ_D = 8380,
- UQRSHLR_ZPmZ_H = 8381,
- UQRSHLR_ZPmZ_S = 8382,
- UQRSHL_ZPmZ_B = 8383,
- UQRSHL_ZPmZ_D = 8384,
- UQRSHL_ZPmZ_H = 8385,
- UQRSHL_ZPmZ_S = 8386,
- UQRSHLv16i8 = 8387,
- UQRSHLv1i16 = 8388,
- UQRSHLv1i32 = 8389,
- UQRSHLv1i64 = 8390,
- UQRSHLv1i8 = 8391,
- UQRSHLv2i32 = 8392,
- UQRSHLv2i64 = 8393,
- UQRSHLv4i16 = 8394,
- UQRSHLv4i32 = 8395,
- UQRSHLv8i16 = 8396,
- UQRSHLv8i8 = 8397,
- UQRSHRNB_ZZI_B = 8398,
- UQRSHRNB_ZZI_H = 8399,
- UQRSHRNB_ZZI_S = 8400,
- UQRSHRNT_ZZI_B = 8401,
- UQRSHRNT_ZZI_H = 8402,
- UQRSHRNT_ZZI_S = 8403,
- UQRSHRN_VG4_Z4ZI_B = 8404,
- UQRSHRN_VG4_Z4ZI_H = 8405,
- UQRSHRN_Z2ZI_StoH = 8406,
- UQRSHRNb = 8407,
- UQRSHRNh = 8408,
- UQRSHRNs = 8409,
- UQRSHRNv16i8_shift = 8410,
- UQRSHRNv2i32_shift = 8411,
- UQRSHRNv4i16_shift = 8412,
- UQRSHRNv4i32_shift = 8413,
- UQRSHRNv8i16_shift = 8414,
- UQRSHRNv8i8_shift = 8415,
- UQRSHR_VG2_Z2ZI_H = 8416,
- UQRSHR_VG4_Z4ZI_B = 8417,
- UQRSHR_VG4_Z4ZI_H = 8418,
- UQSHLR_ZPmZ_B = 8419,
- UQSHLR_ZPmZ_D = 8420,
- UQSHLR_ZPmZ_H = 8421,
- UQSHLR_ZPmZ_S = 8422,
- UQSHL_ZPmI_B = 8423,
- UQSHL_ZPmI_D = 8424,
- UQSHL_ZPmI_H = 8425,
- UQSHL_ZPmI_S = 8426,
- UQSHL_ZPmZ_B = 8427,
- UQSHL_ZPmZ_D = 8428,
- UQSHL_ZPmZ_H = 8429,
- UQSHL_ZPmZ_S = 8430,
- UQSHLb = 8431,
- UQSHLd = 8432,
- UQSHLh = 8433,
- UQSHLs = 8434,
- UQSHLv16i8 = 8435,
- UQSHLv16i8_shift = 8436,
- UQSHLv1i16 = 8437,
- UQSHLv1i32 = 8438,
- UQSHLv1i64 = 8439,
- UQSHLv1i8 = 8440,
- UQSHLv2i32 = 8441,
- UQSHLv2i32_shift = 8442,
- UQSHLv2i64 = 8443,
- UQSHLv2i64_shift = 8444,
- UQSHLv4i16 = 8445,
- UQSHLv4i16_shift = 8446,
- UQSHLv4i32 = 8447,
- UQSHLv4i32_shift = 8448,
- UQSHLv8i16 = 8449,
- UQSHLv8i16_shift = 8450,
- UQSHLv8i8 = 8451,
- UQSHLv8i8_shift = 8452,
- UQSHRNB_ZZI_B = 8453,
- UQSHRNB_ZZI_H = 8454,
- UQSHRNB_ZZI_S = 8455,
- UQSHRNT_ZZI_B = 8456,
- UQSHRNT_ZZI_H = 8457,
- UQSHRNT_ZZI_S = 8458,
- UQSHRNb = 8459,
- UQSHRNh = 8460,
- UQSHRNs = 8461,
- UQSHRNv16i8_shift = 8462,
- UQSHRNv2i32_shift = 8463,
- UQSHRNv4i16_shift = 8464,
- UQSHRNv4i32_shift = 8465,
- UQSHRNv8i16_shift = 8466,
- UQSHRNv8i8_shift = 8467,
- UQSUBR_ZPmZ_B = 8468,
- UQSUBR_ZPmZ_D = 8469,
- UQSUBR_ZPmZ_H = 8470,
- UQSUBR_ZPmZ_S = 8471,
- UQSUB_ZI_B = 8472,
- UQSUB_ZI_D = 8473,
- UQSUB_ZI_H = 8474,
- UQSUB_ZI_S = 8475,
- UQSUB_ZPmZ_B = 8476,
- UQSUB_ZPmZ_D = 8477,
- UQSUB_ZPmZ_H = 8478,
- UQSUB_ZPmZ_S = 8479,
- UQSUB_ZZZ_B = 8480,
- UQSUB_ZZZ_D = 8481,
- UQSUB_ZZZ_H = 8482,
- UQSUB_ZZZ_S = 8483,
- UQSUBv16i8 = 8484,
- UQSUBv1i16 = 8485,
- UQSUBv1i32 = 8486,
- UQSUBv1i64 = 8487,
- UQSUBv1i8 = 8488,
- UQSUBv2i32 = 8489,
- UQSUBv2i64 = 8490,
- UQSUBv4i16 = 8491,
- UQSUBv4i32 = 8492,
- UQSUBv8i16 = 8493,
- UQSUBv8i8 = 8494,
- UQXTNB_ZZ_B = 8495,
- UQXTNB_ZZ_H = 8496,
- UQXTNB_ZZ_S = 8497,
- UQXTNT_ZZ_B = 8498,
- UQXTNT_ZZ_H = 8499,
- UQXTNT_ZZ_S = 8500,
- UQXTNv16i8 = 8501,
- UQXTNv1i16 = 8502,
- UQXTNv1i32 = 8503,
- UQXTNv1i8 = 8504,
- UQXTNv2i32 = 8505,
- UQXTNv4i16 = 8506,
- UQXTNv4i32 = 8507,
- UQXTNv8i16 = 8508,
- UQXTNv8i8 = 8509,
- URECPE_ZPmZ_S = 8510,
- URECPE_ZPzZ_S = 8511,
- URECPEv2i32 = 8512,
- URECPEv4i32 = 8513,
- URHADD_ZPmZ_B = 8514,
- URHADD_ZPmZ_D = 8515,
- URHADD_ZPmZ_H = 8516,
- URHADD_ZPmZ_S = 8517,
- URHADDv16i8 = 8518,
- URHADDv2i32 = 8519,
- URHADDv4i16 = 8520,
- URHADDv4i32 = 8521,
- URHADDv8i16 = 8522,
- URHADDv8i8 = 8523,
- URSHLR_ZPmZ_B = 8524,
- URSHLR_ZPmZ_D = 8525,
- URSHLR_ZPmZ_H = 8526,
- URSHLR_ZPmZ_S = 8527,
- URSHL_VG2_2Z2Z_B = 8528,
- URSHL_VG2_2Z2Z_D = 8529,
- URSHL_VG2_2Z2Z_H = 8530,
- URSHL_VG2_2Z2Z_S = 8531,
- URSHL_VG2_2ZZ_B = 8532,
- URSHL_VG2_2ZZ_D = 8533,
- URSHL_VG2_2ZZ_H = 8534,
- URSHL_VG2_2ZZ_S = 8535,
- URSHL_VG4_4Z4Z_B = 8536,
- URSHL_VG4_4Z4Z_D = 8537,
- URSHL_VG4_4Z4Z_H = 8538,
- URSHL_VG4_4Z4Z_S = 8539,
- URSHL_VG4_4ZZ_B = 8540,
- URSHL_VG4_4ZZ_D = 8541,
- URSHL_VG4_4ZZ_H = 8542,
- URSHL_VG4_4ZZ_S = 8543,
- URSHL_ZPmZ_B = 8544,
- URSHL_ZPmZ_D = 8545,
- URSHL_ZPmZ_H = 8546,
- URSHL_ZPmZ_S = 8547,
- URSHLv16i8 = 8548,
- URSHLv1i64 = 8549,
- URSHLv2i32 = 8550,
- URSHLv2i64 = 8551,
- URSHLv4i16 = 8552,
- URSHLv4i32 = 8553,
- URSHLv8i16 = 8554,
- URSHLv8i8 = 8555,
- URSHR_ZPmI_B = 8556,
- URSHR_ZPmI_D = 8557,
- URSHR_ZPmI_H = 8558,
- URSHR_ZPmI_S = 8559,
- URSHRd = 8560,
- URSHRv16i8_shift = 8561,
- URSHRv2i32_shift = 8562,
- URSHRv2i64_shift = 8563,
- URSHRv4i16_shift = 8564,
- URSHRv4i32_shift = 8565,
- URSHRv8i16_shift = 8566,
- URSHRv8i8_shift = 8567,
- URSQRTE_ZPmZ_S = 8568,
- URSQRTE_ZPzZ_S = 8569,
- URSQRTEv2i32 = 8570,
- URSQRTEv4i32 = 8571,
- URSRA_ZZI_B = 8572,
- URSRA_ZZI_D = 8573,
- URSRA_ZZI_H = 8574,
- URSRA_ZZI_S = 8575,
- URSRAd = 8576,
- URSRAv16i8_shift = 8577,
- URSRAv2i32_shift = 8578,
- URSRAv2i64_shift = 8579,
- URSRAv4i16_shift = 8580,
- URSRAv4i32_shift = 8581,
- URSRAv8i16_shift = 8582,
- URSRAv8i8_shift = 8583,
- USDOT_VG2_M2Z2Z_BToS = 8584,
- USDOT_VG2_M2ZZI_BToS = 8585,
- USDOT_VG2_M2ZZ_BToS = 8586,
- USDOT_VG4_M4Z4Z_BToS = 8587,
- USDOT_VG4_M4ZZI_BToS = 8588,
- USDOT_VG4_M4ZZ_BToS = 8589,
- USDOT_ZZZ = 8590,
- USDOT_ZZZI = 8591,
- USDOTlanev16i8 = 8592,
- USDOTlanev8i8 = 8593,
- USDOTv16i8 = 8594,
- USDOTv8i8 = 8595,
- USHLLB_ZZI_D = 8596,
- USHLLB_ZZI_H = 8597,
- USHLLB_ZZI_S = 8598,
- USHLLT_ZZI_D = 8599,
- USHLLT_ZZI_H = 8600,
- USHLLT_ZZI_S = 8601,
- USHLLv16i8_shift = 8602,
- USHLLv2i32_shift = 8603,
- USHLLv4i16_shift = 8604,
- USHLLv4i32_shift = 8605,
- USHLLv8i16_shift = 8606,
- USHLLv8i8_shift = 8607,
- USHLv16i8 = 8608,
- USHLv1i64 = 8609,
- USHLv2i32 = 8610,
- USHLv2i64 = 8611,
- USHLv4i16 = 8612,
- USHLv4i32 = 8613,
- USHLv8i16 = 8614,
- USHLv8i8 = 8615,
- USHRd = 8616,
- USHRv16i8_shift = 8617,
- USHRv2i32_shift = 8618,
- USHRv2i64_shift = 8619,
- USHRv4i16_shift = 8620,
- USHRv4i32_shift = 8621,
- USHRv8i16_shift = 8622,
- USHRv8i8_shift = 8623,
- USMLALL_MZZI_BtoS = 8624,
- USMLALL_MZZ_BtoS = 8625,
- USMLALL_VG2_M2Z2Z_BtoS = 8626,
- USMLALL_VG2_M2ZZI_BtoS = 8627,
- USMLALL_VG2_M2ZZ_BtoS = 8628,
- USMLALL_VG4_M4Z4Z_BtoS = 8629,
- USMLALL_VG4_M4ZZI_BtoS = 8630,
- USMLALL_VG4_M4ZZ_BtoS = 8631,
- USMMLA = 8632,
- USMMLA_ZZZ = 8633,
- USMOP4A_M2Z2Z_BToS = 8634,
- USMOP4A_M2Z2Z_HtoD = 8635,
- USMOP4A_M2ZZ_BToS = 8636,
- USMOP4A_M2ZZ_HtoD = 8637,
- USMOP4A_MZ2Z_BToS = 8638,
- USMOP4A_MZ2Z_HtoD = 8639,
- USMOP4A_MZZ_BToS = 8640,
- USMOP4A_MZZ_HtoD = 8641,
- USMOP4S_M2Z2Z_BToS = 8642,
- USMOP4S_M2Z2Z_HtoD = 8643,
- USMOP4S_M2ZZ_BToS = 8644,
- USMOP4S_M2ZZ_HtoD = 8645,
- USMOP4S_MZ2Z_BToS = 8646,
- USMOP4S_MZ2Z_HtoD = 8647,
- USMOP4S_MZZ_BToS = 8648,
- USMOP4S_MZZ_HtoD = 8649,
- USMOPA_MPPZZ_D = 8650,
- USMOPA_MPPZZ_S = 8651,
- USMOPS_MPPZZ_D = 8652,
- USMOPS_MPPZZ_S = 8653,
- USQADD_ZPmZ_B = 8654,
- USQADD_ZPmZ_D = 8655,
- USQADD_ZPmZ_H = 8656,
- USQADD_ZPmZ_S = 8657,
- USQADDv16i8 = 8658,
- USQADDv1i16 = 8659,
- USQADDv1i32 = 8660,
- USQADDv1i64 = 8661,
- USQADDv1i8 = 8662,
- USQADDv2i32 = 8663,
- USQADDv2i64 = 8664,
- USQADDv4i16 = 8665,
- USQADDv4i32 = 8666,
- USQADDv8i16 = 8667,
- USQADDv8i8 = 8668,
- USRA_ZZI_B = 8669,
- USRA_ZZI_D = 8670,
- USRA_ZZI_H = 8671,
- USRA_ZZI_S = 8672,
- USRAd = 8673,
- USRAv16i8_shift = 8674,
- USRAv2i32_shift = 8675,
- USRAv2i64_shift = 8676,
- USRAv4i16_shift = 8677,
- USRAv4i32_shift = 8678,
- USRAv8i16_shift = 8679,
- USRAv8i8_shift = 8680,
- USTMOPA_M2ZZZI_BtoS = 8681,
- USUBLB_ZZZ_D = 8682,
- USUBLB_ZZZ_H = 8683,
- USUBLB_ZZZ_S = 8684,
- USUBLT_ZZZ_D = 8685,
- USUBLT_ZZZ_H = 8686,
- USUBLT_ZZZ_S = 8687,
- USUBLv16i8_v8i16 = 8688,
- USUBLv2i32_v2i64 = 8689,
- USUBLv4i16_v4i32 = 8690,
- USUBLv4i32_v2i64 = 8691,
- USUBLv8i16_v4i32 = 8692,
- USUBLv8i8_v8i16 = 8693,
- USUBWB_ZZZ_D = 8694,
- USUBWB_ZZZ_H = 8695,
- USUBWB_ZZZ_S = 8696,
- USUBWT_ZZZ_D = 8697,
- USUBWT_ZZZ_H = 8698,
- USUBWT_ZZZ_S = 8699,
- USUBWv16i8_v8i16 = 8700,
- USUBWv2i32_v2i64 = 8701,
- USUBWv4i16_v4i32 = 8702,
- USUBWv4i32_v2i64 = 8703,
- USUBWv8i16_v4i32 = 8704,
- USUBWv8i8_v8i16 = 8705,
- USVDOT_VG4_M4ZZI_BToS = 8706,
- UTMOPA_M2ZZZI_BtoS = 8707,
- UTMOPA_M2ZZZI_HtoS = 8708,
- UUNPKHI_ZZ_D = 8709,
- UUNPKHI_ZZ_H = 8710,
- UUNPKHI_ZZ_S = 8711,
- UUNPKLO_ZZ_D = 8712,
- UUNPKLO_ZZ_H = 8713,
- UUNPKLO_ZZ_S = 8714,
- UUNPK_VG2_2ZZ_D = 8715,
- UUNPK_VG2_2ZZ_H = 8716,
- UUNPK_VG2_2ZZ_S = 8717,
- UUNPK_VG4_4Z2Z_D = 8718,
- UUNPK_VG4_4Z2Z_H = 8719,
- UUNPK_VG4_4Z2Z_S = 8720,
- UVDOT_VG2_M2ZZI_HtoS = 8721,
- UVDOT_VG4_M4ZZI_BtoS = 8722,
- UVDOT_VG4_M4ZZI_HtoD = 8723,
- UXTB_ZPmZ_D = 8724,
- UXTB_ZPmZ_H = 8725,
- UXTB_ZPmZ_S = 8726,
- UXTB_ZPzZ_D = 8727,
- UXTB_ZPzZ_H = 8728,
- UXTB_ZPzZ_S = 8729,
- UXTH_ZPmZ_D = 8730,
- UXTH_ZPmZ_S = 8731,
- UXTH_ZPzZ_D = 8732,
- UXTH_ZPzZ_S = 8733,
- UXTW_ZPmZ_D = 8734,
- UXTW_ZPzZ_D = 8735,
- UZP1_PPP_B = 8736,
- UZP1_PPP_D = 8737,
- UZP1_PPP_H = 8738,
- UZP1_PPP_S = 8739,
- UZP1_ZZZ_B = 8740,
- UZP1_ZZZ_D = 8741,
- UZP1_ZZZ_H = 8742,
- UZP1_ZZZ_Q = 8743,
- UZP1_ZZZ_S = 8744,
- UZP1v16i8 = 8745,
- UZP1v2i32 = 8746,
- UZP1v2i64 = 8747,
- UZP1v4i16 = 8748,
- UZP1v4i32 = 8749,
- UZP1v8i16 = 8750,
- UZP1v8i8 = 8751,
- UZP2_PPP_B = 8752,
- UZP2_PPP_D = 8753,
- UZP2_PPP_H = 8754,
- UZP2_PPP_S = 8755,
- UZP2_ZZZ_B = 8756,
- UZP2_ZZZ_D = 8757,
- UZP2_ZZZ_H = 8758,
- UZP2_ZZZ_Q = 8759,
- UZP2_ZZZ_S = 8760,
- UZP2v16i8 = 8761,
- UZP2v2i32 = 8762,
- UZP2v2i64 = 8763,
- UZP2v4i16 = 8764,
- UZP2v4i32 = 8765,
- UZP2v8i16 = 8766,
- UZP2v8i8 = 8767,
- UZPQ1_ZZZ_B = 8768,
- UZPQ1_ZZZ_D = 8769,
- UZPQ1_ZZZ_H = 8770,
- UZPQ1_ZZZ_S = 8771,
- UZPQ2_ZZZ_B = 8772,
- UZPQ2_ZZZ_D = 8773,
- UZPQ2_ZZZ_H = 8774,
- UZPQ2_ZZZ_S = 8775,
- UZP_VG2_2ZZZ_B = 8776,
- UZP_VG2_2ZZZ_D = 8777,
- UZP_VG2_2ZZZ_H = 8778,
- UZP_VG2_2ZZZ_Q = 8779,
- UZP_VG2_2ZZZ_S = 8780,
- UZP_VG4_4Z4Z_B = 8781,
- UZP_VG4_4Z4Z_D = 8782,
- UZP_VG4_4Z4Z_H = 8783,
- UZP_VG4_4Z4Z_Q = 8784,
- UZP_VG4_4Z4Z_S = 8785,
- WFET = 8786,
- WFIT = 8787,
- WHILEGE_2PXX_B = 8788,
- WHILEGE_2PXX_D = 8789,
- WHILEGE_2PXX_H = 8790,
- WHILEGE_2PXX_S = 8791,
- WHILEGE_CXX_B = 8792,
- WHILEGE_CXX_D = 8793,
- WHILEGE_CXX_H = 8794,
- WHILEGE_CXX_S = 8795,
- WHILEGE_PWW_B = 8796,
- WHILEGE_PWW_D = 8797,
- WHILEGE_PWW_H = 8798,
- WHILEGE_PWW_S = 8799,
- WHILEGE_PXX_B = 8800,
- WHILEGE_PXX_D = 8801,
- WHILEGE_PXX_H = 8802,
- WHILEGE_PXX_S = 8803,
- WHILEGT_2PXX_B = 8804,
- WHILEGT_2PXX_D = 8805,
- WHILEGT_2PXX_H = 8806,
- WHILEGT_2PXX_S = 8807,
- WHILEGT_CXX_B = 8808,
- WHILEGT_CXX_D = 8809,
- WHILEGT_CXX_H = 8810,
- WHILEGT_CXX_S = 8811,
- WHILEGT_PWW_B = 8812,
- WHILEGT_PWW_D = 8813,
- WHILEGT_PWW_H = 8814,
- WHILEGT_PWW_S = 8815,
- WHILEGT_PXX_B = 8816,
- WHILEGT_PXX_D = 8817,
- WHILEGT_PXX_H = 8818,
- WHILEGT_PXX_S = 8819,
- WHILEHI_2PXX_B = 8820,
- WHILEHI_2PXX_D = 8821,
- WHILEHI_2PXX_H = 8822,
- WHILEHI_2PXX_S = 8823,
- WHILEHI_CXX_B = 8824,
- WHILEHI_CXX_D = 8825,
- WHILEHI_CXX_H = 8826,
- WHILEHI_CXX_S = 8827,
- WHILEHI_PWW_B = 8828,
- WHILEHI_PWW_D = 8829,
- WHILEHI_PWW_H = 8830,
- WHILEHI_PWW_S = 8831,
- WHILEHI_PXX_B = 8832,
- WHILEHI_PXX_D = 8833,
- WHILEHI_PXX_H = 8834,
- WHILEHI_PXX_S = 8835,
- WHILEHS_2PXX_B = 8836,
- WHILEHS_2PXX_D = 8837,
- WHILEHS_2PXX_H = 8838,
- WHILEHS_2PXX_S = 8839,
- WHILEHS_CXX_B = 8840,
- WHILEHS_CXX_D = 8841,
- WHILEHS_CXX_H = 8842,
- WHILEHS_CXX_S = 8843,
- WHILEHS_PWW_B = 8844,
- WHILEHS_PWW_D = 8845,
- WHILEHS_PWW_H = 8846,
- WHILEHS_PWW_S = 8847,
- WHILEHS_PXX_B = 8848,
- WHILEHS_PXX_D = 8849,
- WHILEHS_PXX_H = 8850,
- WHILEHS_PXX_S = 8851,
- WHILELE_2PXX_B = 8852,
- WHILELE_2PXX_D = 8853,
- WHILELE_2PXX_H = 8854,
- WHILELE_2PXX_S = 8855,
- WHILELE_CXX_B = 8856,
- WHILELE_CXX_D = 8857,
- WHILELE_CXX_H = 8858,
- WHILELE_CXX_S = 8859,
- WHILELE_PWW_B = 8860,
- WHILELE_PWW_D = 8861,
- WHILELE_PWW_H = 8862,
- WHILELE_PWW_S = 8863,
- WHILELE_PXX_B = 8864,
- WHILELE_PXX_D = 8865,
- WHILELE_PXX_H = 8866,
- WHILELE_PXX_S = 8867,
- WHILELO_2PXX_B = 8868,
- WHILELO_2PXX_D = 8869,
- WHILELO_2PXX_H = 8870,
- WHILELO_2PXX_S = 8871,
- WHILELO_CXX_B = 8872,
- WHILELO_CXX_D = 8873,
- WHILELO_CXX_H = 8874,
- WHILELO_CXX_S = 8875,
- WHILELO_PWW_B = 8876,
- WHILELO_PWW_D = 8877,
- WHILELO_PWW_H = 8878,
- WHILELO_PWW_S = 8879,
- WHILELO_PXX_B = 8880,
- WHILELO_PXX_D = 8881,
- WHILELO_PXX_H = 8882,
- WHILELO_PXX_S = 8883,
- WHILELS_2PXX_B = 8884,
- WHILELS_2PXX_D = 8885,
- WHILELS_2PXX_H = 8886,
- WHILELS_2PXX_S = 8887,
- WHILELS_CXX_B = 8888,
- WHILELS_CXX_D = 8889,
- WHILELS_CXX_H = 8890,
- WHILELS_CXX_S = 8891,
- WHILELS_PWW_B = 8892,
- WHILELS_PWW_D = 8893,
- WHILELS_PWW_H = 8894,
- WHILELS_PWW_S = 8895,
- WHILELS_PXX_B = 8896,
- WHILELS_PXX_D = 8897,
- WHILELS_PXX_H = 8898,
- WHILELS_PXX_S = 8899,
- WHILELT_2PXX_B = 8900,
- WHILELT_2PXX_D = 8901,
- WHILELT_2PXX_H = 8902,
- WHILELT_2PXX_S = 8903,
- WHILELT_CXX_B = 8904,
- WHILELT_CXX_D = 8905,
- WHILELT_CXX_H = 8906,
- WHILELT_CXX_S = 8907,
- WHILELT_PWW_B = 8908,
- WHILELT_PWW_D = 8909,
- WHILELT_PWW_H = 8910,
- WHILELT_PWW_S = 8911,
- WHILELT_PXX_B = 8912,
- WHILELT_PXX_D = 8913,
- WHILELT_PXX_H = 8914,
- WHILELT_PXX_S = 8915,
- WHILERW_PXX_B = 8916,
- WHILERW_PXX_D = 8917,
- WHILERW_PXX_H = 8918,
- WHILERW_PXX_S = 8919,
- WHILEWR_PXX_B = 8920,
- WHILEWR_PXX_D = 8921,
- WHILEWR_PXX_H = 8922,
- WHILEWR_PXX_S = 8923,
- WRFFR = 8924,
- XAFLAG = 8925,
- XAR = 8926,
- XAR_ZZZI_B = 8927,
- XAR_ZZZI_D = 8928,
- XAR_ZZZI_H = 8929,
- XAR_ZZZI_S = 8930,
- XPACD = 8931,
- XPACI = 8932,
- XPACLRI = 8933,
- XTNv16i8 = 8934,
- XTNv2i32 = 8935,
- XTNv4i16 = 8936,
- XTNv4i32 = 8937,
- XTNv8i16 = 8938,
- XTNv8i8 = 8939,
- ZERO_M = 8940,
- ZERO_MXI_2Z = 8941,
- ZERO_MXI_4Z = 8942,
- ZERO_MXI_VG2_2Z = 8943,
- ZERO_MXI_VG2_4Z = 8944,
- ZERO_MXI_VG2_Z = 8945,
- ZERO_MXI_VG4_2Z = 8946,
- ZERO_MXI_VG4_4Z = 8947,
- ZERO_MXI_VG4_Z = 8948,
- ZERO_T = 8949,
- ZIP1_PPP_B = 8950,
- ZIP1_PPP_D = 8951,
- ZIP1_PPP_H = 8952,
- ZIP1_PPP_S = 8953,
- ZIP1_ZZZ_B = 8954,
- ZIP1_ZZZ_D = 8955,
- ZIP1_ZZZ_H = 8956,
- ZIP1_ZZZ_Q = 8957,
- ZIP1_ZZZ_S = 8958,
- ZIP1v16i8 = 8959,
- ZIP1v2i32 = 8960,
- ZIP1v2i64 = 8961,
- ZIP1v4i16 = 8962,
- ZIP1v4i32 = 8963,
- ZIP1v8i16 = 8964,
- ZIP1v8i8 = 8965,
- ZIP2_PPP_B = 8966,
- ZIP2_PPP_D = 8967,
- ZIP2_PPP_H = 8968,
- ZIP2_PPP_S = 8969,
- ZIP2_ZZZ_B = 8970,
- ZIP2_ZZZ_D = 8971,
- ZIP2_ZZZ_H = 8972,
- ZIP2_ZZZ_Q = 8973,
- ZIP2_ZZZ_S = 8974,
- ZIP2v16i8 = 8975,
- ZIP2v2i32 = 8976,
- ZIP2v2i64 = 8977,
- ZIP2v4i16 = 8978,
- ZIP2v4i32 = 8979,
- ZIP2v8i16 = 8980,
- ZIP2v8i8 = 8981,
- ZIPQ1_ZZZ_B = 8982,
- ZIPQ1_ZZZ_D = 8983,
- ZIPQ1_ZZZ_H = 8984,
- ZIPQ1_ZZZ_S = 8985,
- ZIPQ2_ZZZ_B = 8986,
- ZIPQ2_ZZZ_D = 8987,
- ZIPQ2_ZZZ_H = 8988,
- ZIPQ2_ZZZ_S = 8989,
- ZIP_VG2_2ZZZ_B = 8990,
- ZIP_VG2_2ZZZ_D = 8991,
- ZIP_VG2_2ZZZ_H = 8992,
- ZIP_VG2_2ZZZ_Q = 8993,
- ZIP_VG2_2ZZZ_S = 8994,
- ZIP_VG4_4Z4Z_B = 8995,
- ZIP_VG4_4Z4Z_D = 8996,
- ZIP_VG4_4Z4Z_H = 8997,
- ZIP_VG4_4Z4Z_Q = 8998,
- ZIP_VG4_4Z4Z_S = 8999,
- INSTRUCTION_LIST_END = 9000,
+ COPY_LANEMASK = 21,
+ BUNDLE = 22,
+ LIFETIME_START = 23,
+ LIFETIME_END = 24,
+ PSEUDO_PROBE = 25,
+ ARITH_FENCE = 26,
+ STACKMAP = 27,
+ FENTRY_CALL = 28,
+ PATCHPOINT = 29,
+ LOAD_STACK_GUARD = 30,
+ PREALLOCATED_SETUP = 31,
+ PREALLOCATED_ARG = 32,
+ STATEPOINT = 33,
+ LOCAL_ESCAPE = 34,
+ FAULTING_OP = 35,
+ PATCHABLE_OP = 36,
+ PATCHABLE_FUNCTION_ENTER = 37,
+ PATCHABLE_RET = 38,
+ PATCHABLE_FUNCTION_EXIT = 39,
+ PATCHABLE_TAIL_CALL = 40,
+ PATCHABLE_EVENT_CALL = 41,
+ PATCHABLE_TYPED_EVENT_CALL = 42,
+ ICALL_BRANCH_FUNNEL = 43,
+ FAKE_USE = 44,
+ MEMBARRIER = 45,
+ JUMP_TABLE_DEBUG_INFO = 46,
+ RELOC_NONE = 47,
+ CONVERGENCECTRL_ENTRY = 48,
+ CONVERGENCECTRL_ANCHOR = 49,
+ CONVERGENCECTRL_LOOP = 50,
+ CONVERGENCECTRL_GLUE = 51,
+ G_ASSERT_SEXT = 52,
+ G_ASSERT_ZEXT = 53,
+ G_ASSERT_ALIGN = 54,
+ G_ADD = 55,
+ G_SUB = 56,
+ G_MUL = 57,
+ G_SDIV = 58,
+ G_UDIV = 59,
+ G_SREM = 60,
+ G_UREM = 61,
+ G_SDIVREM = 62,
+ G_UDIVREM = 63,
+ G_AND = 64,
+ G_OR = 65,
+ G_XOR = 66,
+ G_ABDS = 67,
+ G_ABDU = 68,
+ G_UAVGFLOOR = 69,
+ G_UAVGCEIL = 70,
+ G_SAVGFLOOR = 71,
+ G_SAVGCEIL = 72,
+ G_IMPLICIT_DEF = 73,
+ G_PHI = 74,
+ G_FRAME_INDEX = 75,
+ G_GLOBAL_VALUE = 76,
+ G_PTRAUTH_GLOBAL_VALUE = 77,
+ G_CONSTANT_POOL = 78,
+ G_EXTRACT = 79,
+ G_UNMERGE_VALUES = 80,
+ G_INSERT = 81,
+ G_MERGE_VALUES = 82,
+ G_BUILD_VECTOR = 83,
+ G_BUILD_VECTOR_TRUNC = 84,
+ G_CONCAT_VECTORS = 85,
+ G_PTRTOINT = 86,
+ G_INTTOPTR = 87,
+ G_BITCAST = 88,
+ G_FREEZE = 89,
+ G_CONSTANT_FOLD_BARRIER = 90,
+ G_INTRINSIC_FPTRUNC_ROUND = 91,
+ G_INTRINSIC_TRUNC = 92,
+ G_INTRINSIC_ROUND = 93,
+ G_INTRINSIC_LRINT = 94,
+ G_INTRINSIC_LLRINT = 95,
+ G_INTRINSIC_ROUNDEVEN = 96,
+ G_READCYCLECOUNTER = 97,
+ G_READSTEADYCOUNTER = 98,
+ G_LOAD = 99,
+ G_SEXTLOAD = 100,
+ G_ZEXTLOAD = 101,
+ G_INDEXED_LOAD = 102,
+ G_INDEXED_SEXTLOAD = 103,
+ G_INDEXED_ZEXTLOAD = 104,
+ G_STORE = 105,
+ G_INDEXED_STORE = 106,
+ G_ATOMIC_CMPXCHG_WITH_SUCCESS = 107,
+ G_ATOMIC_CMPXCHG = 108,
+ G_ATOMICRMW_XCHG = 109,
+ G_ATOMICRMW_ADD = 110,
+ G_ATOMICRMW_SUB = 111,
+ G_ATOMICRMW_AND = 112,
+ G_ATOMICRMW_NAND = 113,
+ G_ATOMICRMW_OR = 114,
+ G_ATOMICRMW_XOR = 115,
+ G_ATOMICRMW_MAX = 116,
+ G_ATOMICRMW_MIN = 117,
+ G_ATOMICRMW_UMAX = 118,
+ G_ATOMICRMW_UMIN = 119,
+ G_ATOMICRMW_FADD = 120,
+ G_ATOMICRMW_FSUB = 121,
+ G_ATOMICRMW_FMAX = 122,
+ G_ATOMICRMW_FMIN = 123,
+ G_ATOMICRMW_FMAXIMUM = 124,
+ G_ATOMICRMW_FMINIMUM = 125,
+ G_ATOMICRMW_UINC_WRAP = 126,
+ G_ATOMICRMW_UDEC_WRAP = 127,
+ G_ATOMICRMW_USUB_COND = 128,
+ G_ATOMICRMW_USUB_SAT = 129,
+ G_FENCE = 130,
+ G_PREFETCH = 131,
+ G_BRCOND = 132,
+ G_BRINDIRECT = 133,
+ G_INVOKE_REGION_START = 134,
+ G_INTRINSIC = 135,
+ G_INTRINSIC_W_SIDE_EFFECTS = 136,
+ G_INTRINSIC_CONVERGENT = 137,
+ G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 138,
+ G_ANYEXT = 139,
+ G_TRUNC = 140,
+ G_TRUNC_SSAT_S = 141,
+ G_TRUNC_SSAT_U = 142,
+ G_TRUNC_USAT_U = 143,
+ G_CONSTANT = 144,
+ G_FCONSTANT = 145,
+ G_VASTART = 146,
+ G_VAARG = 147,
+ G_SEXT = 148,
+ G_SEXT_INREG = 149,
+ G_ZEXT = 150,
+ G_SHL = 151,
+ G_LSHR = 152,
+ G_ASHR = 153,
+ G_FSHL = 154,
+ G_FSHR = 155,
+ G_ROTR = 156,
+ G_ROTL = 157,
+ G_ICMP = 158,
+ G_FCMP = 159,
+ G_SCMP = 160,
+ G_UCMP = 161,
+ G_SELECT = 162,
+ G_UADDO = 163,
+ G_UADDE = 164,
+ G_USUBO = 165,
+ G_USUBE = 166,
+ G_SADDO = 167,
+ G_SADDE = 168,
+ G_SSUBO = 169,
+ G_SSUBE = 170,
+ G_UMULO = 171,
+ G_SMULO = 172,
+ G_UMULH = 173,
+ G_SMULH = 174,
+ G_UADDSAT = 175,
+ G_SADDSAT = 176,
+ G_USUBSAT = 177,
+ G_SSUBSAT = 178,
+ G_USHLSAT = 179,
+ G_SSHLSAT = 180,
+ G_SMULFIX = 181,
+ G_UMULFIX = 182,
+ G_SMULFIXSAT = 183,
+ G_UMULFIXSAT = 184,
+ G_SDIVFIX = 185,
+ G_UDIVFIX = 186,
+ G_SDIVFIXSAT = 187,
+ G_UDIVFIXSAT = 188,
+ G_FADD = 189,
+ G_FSUB = 190,
+ G_FMUL = 191,
+ G_FMA = 192,
+ G_FMAD = 193,
+ G_FDIV = 194,
+ G_FREM = 195,
+ G_FMODF = 196,
+ G_FPOW = 197,
+ G_FPOWI = 198,
+ G_FEXP = 199,
+ G_FEXP2 = 200,
+ G_FEXP10 = 201,
+ G_FLOG = 202,
+ G_FLOG2 = 203,
+ G_FLOG10 = 204,
+ G_FLDEXP = 205,
+ G_FFREXP = 206,
+ G_FNEG = 207,
+ G_FPEXT = 208,
+ G_FPTRUNC = 209,
+ G_FPTOSI = 210,
+ G_FPTOUI = 211,
+ G_SITOFP = 212,
+ G_UITOFP = 213,
+ G_FPTOSI_SAT = 214,
+ G_FPTOUI_SAT = 215,
+ G_FABS = 216,
+ G_FCOPYSIGN = 217,
+ G_IS_FPCLASS = 218,
+ G_FCANONICALIZE = 219,
+ G_FMINNUM = 220,
+ G_FMAXNUM = 221,
+ G_FMINNUM_IEEE = 222,
+ G_FMAXNUM_IEEE = 223,
+ G_FMINIMUM = 224,
+ G_FMAXIMUM = 225,
+ G_FMINIMUMNUM = 226,
+ G_FMAXIMUMNUM = 227,
+ G_GET_FPENV = 228,
+ G_SET_FPENV = 229,
+ G_RESET_FPENV = 230,
+ G_GET_FPMODE = 231,
+ G_SET_FPMODE = 232,
+ G_RESET_FPMODE = 233,
+ G_GET_ROUNDING = 234,
+ G_SET_ROUNDING = 235,
+ G_PTR_ADD = 236,
+ G_PTRMASK = 237,
+ G_SMIN = 238,
+ G_SMAX = 239,
+ G_UMIN = 240,
+ G_UMAX = 241,
+ G_ABS = 242,
+ G_LROUND = 243,
+ G_LLROUND = 244,
+ G_BR = 245,
+ G_BRJT = 246,
+ G_VSCALE = 247,
+ G_INSERT_SUBVECTOR = 248,
+ G_EXTRACT_SUBVECTOR = 249,
+ G_INSERT_VECTOR_ELT = 250,
+ G_EXTRACT_VECTOR_ELT = 251,
+ G_SHUFFLE_VECTOR = 252,
+ G_SPLAT_VECTOR = 253,
+ G_STEP_VECTOR = 254,
+ G_VECTOR_COMPRESS = 255,
+ G_CTTZ = 256,
+ G_CTTZ_ZERO_UNDEF = 257,
+ G_CTLZ = 258,
+ G_CTLZ_ZERO_UNDEF = 259,
+ G_CTPOP = 260,
+ G_BSWAP = 261,
+ G_BITREVERSE = 262,
+ G_FCEIL = 263,
+ G_FCOS = 264,
+ G_FSIN = 265,
+ G_FSINCOS = 266,
+ G_FTAN = 267,
+ G_FACOS = 268,
+ G_FASIN = 269,
+ G_FATAN = 270,
+ G_FATAN2 = 271,
+ G_FCOSH = 272,
+ G_FSINH = 273,
+ G_FTANH = 274,
+ G_FSQRT = 275,
+ G_FFLOOR = 276,
+ G_FRINT = 277,
+ G_FNEARBYINT = 278,
+ G_ADDRSPACE_CAST = 279,
+ G_BLOCK_ADDR = 280,
+ G_JUMP_TABLE = 281,
+ G_DYN_STACKALLOC = 282,
+ G_STACKSAVE = 283,
+ G_STACKRESTORE = 284,
+ G_STRICT_FADD = 285,
+ G_STRICT_FSUB = 286,
+ G_STRICT_FMUL = 287,
+ G_STRICT_FDIV = 288,
+ G_STRICT_FREM = 289,
+ G_STRICT_FMA = 290,
+ G_STRICT_FSQRT = 291,
+ G_STRICT_FLDEXP = 292,
+ G_READ_REGISTER = 293,
+ G_WRITE_REGISTER = 294,
+ G_MEMCPY = 295,
+ G_MEMCPY_INLINE = 296,
+ G_MEMMOVE = 297,
+ G_MEMSET = 298,
+ G_BZERO = 299,
+ G_TRAP = 300,
+ G_DEBUGTRAP = 301,
+ G_UBSANTRAP = 302,
+ G_VECREDUCE_SEQ_FADD = 303,
+ G_VECREDUCE_SEQ_FMUL = 304,
+ G_VECREDUCE_FADD = 305,
+ G_VECREDUCE_FMUL = 306,
+ G_VECREDUCE_FMAX = 307,
+ G_VECREDUCE_FMIN = 308,
+ G_VECREDUCE_FMAXIMUM = 309,
+ G_VECREDUCE_FMINIMUM = 310,
+ G_VECREDUCE_ADD = 311,
+ G_VECREDUCE_MUL = 312,
+ G_VECREDUCE_AND = 313,
+ G_VECREDUCE_OR = 314,
+ G_VECREDUCE_XOR = 315,
+ G_VECREDUCE_SMAX = 316,
+ G_VECREDUCE_SMIN = 317,
+ G_VECREDUCE_UMAX = 318,
+ G_VECREDUCE_UMIN = 319,
+ G_SBFX = 320,
+ G_UBFX = 321,
+ ABS_ZPmZ_B_UNDEF = 322,
+ ABS_ZPmZ_D_UNDEF = 323,
+ ABS_ZPmZ_H_UNDEF = 324,
+ ABS_ZPmZ_S_UNDEF = 325,
+ ADDHA_MPPZ_D_PSEUDO_D = 326,
+ ADDHA_MPPZ_S_PSEUDO_S = 327,
+ ADDSWrr = 328,
+ ADDSXrr = 329,
+ ADDVA_MPPZ_D_PSEUDO_D = 330,
+ ADDVA_MPPZ_S_PSEUDO_S = 331,
+ ADDWrr = 332,
+ ADDXrr = 333,
+ ADD_VG2_M2Z2Z_D_PSEUDO = 334,
+ ADD_VG2_M2Z2Z_S_PSEUDO = 335,
+ ADD_VG2_M2ZZ_D_PSEUDO = 336,
+ ADD_VG2_M2ZZ_S_PSEUDO = 337,
+ ADD_VG2_M2Z_D_PSEUDO = 338,
+ ADD_VG2_M2Z_S_PSEUDO = 339,
+ ADD_VG4_M4Z4Z_D_PSEUDO = 340,
+ ADD_VG4_M4Z4Z_S_PSEUDO = 341,
+ ADD_VG4_M4ZZ_D_PSEUDO = 342,
+ ADD_VG4_M4ZZ_S_PSEUDO = 343,
+ ADD_VG4_M4Z_D_PSEUDO = 344,
+ ADD_VG4_M4Z_S_PSEUDO = 345,
+ ADD_ZPZZ_B_ZERO = 346,
+ ADD_ZPZZ_D_ZERO = 347,
+ ADD_ZPZZ_H_ZERO = 348,
+ ADD_ZPZZ_S_ZERO = 349,
+ ADDlowTLS = 350,
+ ADJCALLSTACKDOWN = 351,
+ ADJCALLSTACKUP = 352,
+ AESIMCrrTied = 353,
+ AESMCrrTied = 354,
+ ANDSWrr = 355,
+ ANDSXrr = 356,
+ ANDWrr = 357,
+ ANDXrr = 358,
+ AND_ZPZZ_B_ZERO = 359,
+ AND_ZPZZ_D_ZERO = 360,
+ AND_ZPZZ_H_ZERO = 361,
+ AND_ZPZZ_S_ZERO = 362,
+ ASRD_ZPZI_B_ZERO = 363,
+ ASRD_ZPZI_D_ZERO = 364,
+ ASRD_ZPZI_H_ZERO = 365,
+ ASRD_ZPZI_S_ZERO = 366,
+ ASR_ZPZI_B_UNDEF = 367,
+ ASR_ZPZI_B_ZERO = 368,
+ ASR_ZPZI_D_UNDEF = 369,
+ ASR_ZPZI_D_ZERO = 370,
+ ASR_ZPZI_H_UNDEF = 371,
+ ASR_ZPZI_H_ZERO = 372,
+ ASR_ZPZI_S_UNDEF = 373,
+ ASR_ZPZI_S_ZERO = 374,
+ ASR_ZPZZ_B_UNDEF = 375,
+ ASR_ZPZZ_B_ZERO = 376,
+ ASR_ZPZZ_D_UNDEF = 377,
+ ASR_ZPZZ_D_ZERO = 378,
+ ASR_ZPZZ_H_UNDEF = 379,
+ ASR_ZPZZ_H_ZERO = 380,
+ ASR_ZPZZ_S_UNDEF = 381,
+ ASR_ZPZZ_S_ZERO = 382,
+ AUTH_TCRETURN = 383,
+ AUTH_TCRETURN_BTI = 384,
+ AUTPAC = 385,
+ AUTx16x17 = 386,
+ AUTxMxN = 387,
+ AllocateSMESaveBuffer = 388,
+ AllocateZABuffer = 389,
+ BFADD_VG2_M2Z_H_PSEUDO = 390,
+ BFADD_VG4_M4Z_H_PSEUDO = 391,
+ BFADD_ZPZZ_UNDEF = 392,
+ BFADD_ZPZZ_ZERO = 393,
+ BFDOT_VG2_M2Z2Z_HtoS_PSEUDO = 394,
+ BFDOT_VG2_M2ZZI_HtoS_PSEUDO = 395,
+ BFDOT_VG2_M2ZZ_HtoS_PSEUDO = 396,
+ BFDOT_VG4_M4Z4Z_HtoS_PSEUDO = 397,
+ BFDOT_VG4_M4ZZI_HtoS_PSEUDO = 398,
+ BFDOT_VG4_M4ZZ_HtoS_PSEUDO = 399,
+ BFMAXNM_ZPZZ_UNDEF = 400,
+ BFMAXNM_ZPZZ_ZERO = 401,
+ BFMAX_ZPZZ_UNDEF = 402,
+ BFMAX_ZPZZ_ZERO = 403,
+ BFMINNM_ZPZZ_UNDEF = 404,
+ BFMINNM_ZPZZ_ZERO = 405,
+ BFMIN_ZPZZ_UNDEF = 406,
+ BFMIN_ZPZZ_ZERO = 407,
+ BFMLAL_MZZI_HtoS_PSEUDO = 408,
+ BFMLAL_MZZ_HtoS_PSEUDO = 409,
+ BFMLAL_VG2_M2Z2Z_HtoS_PSEUDO = 410,
+ BFMLAL_VG2_M2ZZI_HtoS_PSEUDO = 411,
+ BFMLAL_VG2_M2ZZ_HtoS_PSEUDO = 412,
+ BFMLAL_VG4_M4Z4Z_HtoS_PSEUDO = 413,
+ BFMLAL_VG4_M4ZZI_HtoS_PSEUDO = 414,
+ BFMLAL_VG4_M4ZZ_HtoS_PSEUDO = 415,
+ BFMLA_VG2_M2Z2Z_PSEUDO = 416,
+ BFMLA_VG2_M2ZZI_PSEUDO = 417,
+ BFMLA_VG2_M2ZZ_PSEUDO = 418,
+ BFMLA_VG4_M4Z4Z_PSEUDO = 419,
+ BFMLA_VG4_M4ZZI_PSEUDO = 420,
+ BFMLA_VG4_M4ZZ_PSEUDO = 421,
+ BFMLA_ZPZZZ_UNDEF = 422,
+ BFMLSL_MZZI_HtoS_PSEUDO = 423,
+ BFMLSL_MZZ_HtoS_PSEUDO = 424,
+ BFMLSL_VG2_M2Z2Z_HtoS_PSEUDO = 425,
+ BFMLSL_VG2_M2ZZI_HtoS_PSEUDO = 426,
+ BFMLSL_VG2_M2ZZ_HtoS_PSEUDO = 427,
+ BFMLSL_VG4_M4Z4Z_HtoS_PSEUDO = 428,
+ BFMLSL_VG4_M4ZZI_HtoS_PSEUDO = 429,
+ BFMLSL_VG4_M4ZZ_HtoS_PSEUDO = 430,
+ BFMLS_VG2_M2Z2Z_PSEUDO = 431,
+ BFMLS_VG2_M2ZZI_PSEUDO = 432,
+ BFMLS_VG2_M2ZZ_PSEUDO = 433,
+ BFMLS_VG4_M4Z4Z_PSEUDO = 434,
+ BFMLS_VG4_M4ZZI_PSEUDO = 435,
+ BFMLS_VG4_M4ZZ_PSEUDO = 436,
+ BFMLS_ZPZZZ_UNDEF = 437,
+ BFMOP4A_M2Z2Z_H_PSEUDO = 438,
+ BFMOP4A_M2Z2Z_S_PSEUDO = 439,
+ BFMOP4A_M2ZZ_H_PSEUDO = 440,
+ BFMOP4A_M2ZZ_S_PSEUDO = 441,
+ BFMOP4A_MZ2Z_H_PSEUDO = 442,
+ BFMOP4A_MZ2Z_S_PSEUDO = 443,
+ BFMOP4A_MZZ_H_PSEUDO = 444,
+ BFMOP4A_MZZ_S_PSEUDO = 445,
+ BFMOP4S_M2Z2Z_H_PSEUDO = 446,
+ BFMOP4S_M2Z2Z_S_PSEUDO = 447,
+ BFMOP4S_M2ZZ_H_PSEUDO = 448,
+ BFMOP4S_M2ZZ_S_PSEUDO = 449,
+ BFMOP4S_MZ2Z_H_PSEUDO = 450,
+ BFMOP4S_MZ2Z_S_PSEUDO = 451,
+ BFMOP4S_MZZ_H_PSEUDO = 452,
+ BFMOP4S_MZZ_S_PSEUDO = 453,
+ BFMOPA_MPPZZ_H_PSEUDO = 454,
+ BFMOPA_MPPZZ_PSEUDO = 455,
+ BFMOPS_MPPZZ_H_PSEUDO = 456,
+ BFMOPS_MPPZZ_PSEUDO = 457,
+ BFMUL_ZPZZ_UNDEF = 458,
+ BFMUL_ZPZZ_ZERO = 459,
+ BFSUB_VG2_M2Z_H_PSEUDO = 460,
+ BFSUB_VG4_M4Z_H_PSEUDO = 461,
+ BFSUB_ZPZZ_UNDEF = 462,
+ BFSUB_ZPZZ_ZERO = 463,
+ BFTMOPA_M2ZZZI_HtoH_PSEUDO = 464,
+ BFTMOPA_M2ZZZI_HtoS_PSEUDO = 465,
+ BFVDOT_VG2_M2ZZI_HtoS_PSEUDO = 466,
+ BICSWrr = 467,
+ BICSXrr = 468,
+ BICWrr = 469,
+ BICXrr = 470,
+ BIC_ZPZZ_B_ZERO = 471,
+ BIC_ZPZZ_D_ZERO = 472,
+ BIC_ZPZZ_H_ZERO = 473,
+ BIC_ZPZZ_S_ZERO = 474,
+ BLRA = 475,
+ BLRA_RVMARKER = 476,
+ BLRNoIP = 477,
+ BLR_BTI = 478,
+ BLR_RVMARKER = 479,
+ BLR_X16 = 480,
+ BMOPA_MPPZZ_S_PSEUDO = 481,
+ BMOPS_MPPZZ_S_PSEUDO = 482,
+ BRA = 483,
+ BR_JumpTable = 484,
+ BSPv16i8 = 485,
+ BSPv8i8 = 486,
+ CATCHRET = 487,
+ CBBAssertExt = 488,
+ CBHAssertExt = 489,
+ CBWPri = 490,
+ CBWPrr = 491,
+ CBXPri = 492,
+ CBXPrr = 493,
+ CHECK_MATCHING_VL_PSEUDO = 494,
+ CLEANUPRET = 495,
+ CLS_ZPmZ_B_UNDEF = 496,
+ CLS_ZPmZ_D_UNDEF = 497,
+ CLS_ZPmZ_H_UNDEF = 498,
+ CLS_ZPmZ_S_UNDEF = 499,
+ CLZ_ZPmZ_B_UNDEF = 500,
+ CLZ_ZPmZ_D_UNDEF = 501,
+ CLZ_ZPmZ_H_UNDEF = 502,
+ CLZ_ZPmZ_S_UNDEF = 503,
+ CMP_SWAP_128 = 504,
+ CMP_SWAP_128_ACQUIRE = 505,
+ CMP_SWAP_128_MONOTONIC = 506,
+ CMP_SWAP_128_RELEASE = 507,
+ CMP_SWAP_16 = 508,
+ CMP_SWAP_32 = 509,
+ CMP_SWAP_64 = 510,
+ CMP_SWAP_8 = 511,
+ CNOT_ZPmZ_B_UNDEF = 512,
+ CNOT_ZPmZ_D_UNDEF = 513,
+ CNOT_ZPmZ_H_UNDEF = 514,
+ CNOT_ZPmZ_S_UNDEF = 515,
+ CNT_ZPmZ_B_UNDEF = 516,
+ CNT_ZPmZ_D_UNDEF = 517,
+ CNT_ZPmZ_H_UNDEF = 518,
+ CNT_ZPmZ_S_UNDEF = 519,
+ COALESCER_BARRIER_FPR128 = 520,
+ COALESCER_BARRIER_FPR16 = 521,
+ COALESCER_BARRIER_FPR32 = 522,
+ COALESCER_BARRIER_FPR64 = 523,
+ CommitZASavePseudo = 524,
+ EMITBKEY = 525,
+ EMITMTETAGGED = 526,
+ EONWrr = 527,
+ EONXrr = 528,
+ EORWrr = 529,
+ EORXrr = 530,
+ EOR_ZPZZ_B_ZERO = 531,
+ EOR_ZPZZ_D_ZERO = 532,
+ EOR_ZPZZ_H_ZERO = 533,
+ EOR_ZPZZ_S_ZERO = 534,
+ EXT_ZZI_CONSTRUCTIVE = 535,
+ EntryPStateSM = 536,
+ F128CSEL = 537,
+ FABD_ZPZZ_D_UNDEF = 538,
+ FABD_ZPZZ_D_ZERO = 539,
+ FABD_ZPZZ_H_UNDEF = 540,
+ FABD_ZPZZ_H_ZERO = 541,
+ FABD_ZPZZ_S_UNDEF = 542,
+ FABD_ZPZZ_S_ZERO = 543,
+ FABS_ZPmZ_D_UNDEF = 544,
+ FABS_ZPmZ_H_UNDEF = 545,
+ FABS_ZPmZ_S_UNDEF = 546,
+ FADD_VG2_M2Z_D_PSEUDO = 547,
+ FADD_VG2_M2Z_H_PSEUDO = 548,
+ FADD_VG2_M2Z_S_PSEUDO = 549,
+ FADD_VG4_M4Z_D_PSEUDO = 550,
+ FADD_VG4_M4Z_H_PSEUDO = 551,
+ FADD_VG4_M4Z_S_PSEUDO = 552,
+ FADD_ZPZI_D_UNDEF = 553,
+ FADD_ZPZI_D_ZERO = 554,
+ FADD_ZPZI_H_UNDEF = 555,
+ FADD_ZPZI_H_ZERO = 556,
+ FADD_ZPZI_S_UNDEF = 557,
+ FADD_ZPZI_S_ZERO = 558,
+ FADD_ZPZZ_D_UNDEF = 559,
+ FADD_ZPZZ_D_ZERO = 560,
+ FADD_ZPZZ_H_UNDEF = 561,
+ FADD_ZPZZ_H_ZERO = 562,
+ FADD_ZPZZ_S_UNDEF = 563,
+ FADD_ZPZZ_S_ZERO = 564,
+ FAMAX_ZPZZ_D_UNDEF = 565,
+ FAMAX_ZPZZ_H_UNDEF = 566,
+ FAMAX_ZPZZ_S_UNDEF = 567,
+ FAMIN_ZPZZ_D_UNDEF = 568,
+ FAMIN_ZPZZ_H_UNDEF = 569,
+ FAMIN_ZPZZ_S_UNDEF = 570,
+ FCVTZS_ZPmZ_DtoD_UNDEF = 571,
+ FCVTZS_ZPmZ_DtoS_UNDEF = 572,
+ FCVTZS_ZPmZ_HtoD_UNDEF = 573,
+ FCVTZS_ZPmZ_HtoH_UNDEF = 574,
+ FCVTZS_ZPmZ_HtoS_UNDEF = 575,
+ FCVTZS_ZPmZ_StoD_UNDEF = 576,
+ FCVTZS_ZPmZ_StoS_UNDEF = 577,
+ FCVTZU_ZPmZ_DtoD_UNDEF = 578,
+ FCVTZU_ZPmZ_DtoS_UNDEF = 579,
+ FCVTZU_ZPmZ_HtoD_UNDEF = 580,
+ FCVTZU_ZPmZ_HtoH_UNDEF = 581,
+ FCVTZU_ZPmZ_HtoS_UNDEF = 582,
+ FCVTZU_ZPmZ_StoD_UNDEF = 583,
+ FCVTZU_ZPmZ_StoS_UNDEF = 584,
+ FCVT_ZPmZ_DtoH_UNDEF = 585,
+ FCVT_ZPmZ_DtoS_UNDEF = 586,
+ FCVT_ZPmZ_HtoD_UNDEF = 587,
+ FCVT_ZPmZ_HtoS_UNDEF = 588,
+ FCVT_ZPmZ_StoD_UNDEF = 589,
+ FCVT_ZPmZ_StoH_UNDEF = 590,
+ FDIVR_ZPZZ_D_ZERO = 591,
+ FDIVR_ZPZZ_H_ZERO = 592,
+ FDIVR_ZPZZ_S_ZERO = 593,
+ FDIV_ZPZZ_D_UNDEF = 594,
+ FDIV_ZPZZ_D_ZERO = 595,
+ FDIV_ZPZZ_H_UNDEF = 596,
+ FDIV_ZPZZ_H_ZERO = 597,
+ FDIV_ZPZZ_S_UNDEF = 598,
+ FDIV_ZPZZ_S_ZERO = 599,
+ FDOT_VG2_M2Z2Z_BtoH_PSEUDO = 600,
+ FDOT_VG2_M2Z2Z_BtoS_PSEUDO = 601,
+ FDOT_VG2_M2Z2Z_HtoS_PSEUDO = 602,
+ FDOT_VG2_M2ZZI_BtoH_PSEUDO = 603,
+ FDOT_VG2_M2ZZI_BtoS_PSEUDO = 604,
+ FDOT_VG2_M2ZZI_HtoS_PSEUDO = 605,
+ FDOT_VG2_M2ZZ_BtoH_PSEUDO = 606,
+ FDOT_VG2_M2ZZ_BtoS_PSEUDO = 607,
+ FDOT_VG2_M2ZZ_HtoS_PSEUDO = 608,
+ FDOT_VG4_M4Z4Z_BtoH_PSEUDO = 609,
+ FDOT_VG4_M4Z4Z_BtoS_PSEUDO = 610,
+ FDOT_VG4_M4Z4Z_HtoS_PSEUDO = 611,
+ FDOT_VG4_M4ZZI_BtoH_PSEUDO = 612,
+ FDOT_VG4_M4ZZI_BtoS_PSEUDO = 613,
+ FDOT_VG4_M4ZZI_HtoS_PSEUDO = 614,
+ FDOT_VG4_M4ZZ_BtoH_PSEUDO = 615,
+ FDOT_VG4_M4ZZ_BtoS_PSEUDO = 616,
+ FDOT_VG4_M4ZZ_HtoS_PSEUDO = 617,
+ FLOGB_ZPZZ_D_ZERO = 618,
+ FLOGB_ZPZZ_H_ZERO = 619,
+ FLOGB_ZPZZ_S_ZERO = 620,
+ FMAXNM_ZPZI_D_UNDEF = 621,
+ FMAXNM_ZPZI_D_ZERO = 622,
+ FMAXNM_ZPZI_H_UNDEF = 623,
+ FMAXNM_ZPZI_H_ZERO = 624,
+ FMAXNM_ZPZI_S_UNDEF = 625,
+ FMAXNM_ZPZI_S_ZERO = 626,
+ FMAXNM_ZPZZ_D_UNDEF = 627,
+ FMAXNM_ZPZZ_D_ZERO = 628,
+ FMAXNM_ZPZZ_H_UNDEF = 629,
+ FMAXNM_ZPZZ_H_ZERO = 630,
+ FMAXNM_ZPZZ_S_UNDEF = 631,
+ FMAXNM_ZPZZ_S_ZERO = 632,
+ FMAX_ZPZI_D_UNDEF = 633,
+ FMAX_ZPZI_D_ZERO = 634,
+ FMAX_ZPZI_H_UNDEF = 635,
+ FMAX_ZPZI_H_ZERO = 636,
+ FMAX_ZPZI_S_UNDEF = 637,
+ FMAX_ZPZI_S_ZERO = 638,
+ FMAX_ZPZZ_D_UNDEF = 639,
+ FMAX_ZPZZ_D_ZERO = 640,
+ FMAX_ZPZZ_H_UNDEF = 641,
+ FMAX_ZPZZ_H_ZERO = 642,
+ FMAX_ZPZZ_S_UNDEF = 643,
+ FMAX_ZPZZ_S_ZERO = 644,
+ FMINNM_ZPZI_D_UNDEF = 645,
+ FMINNM_ZPZI_D_ZERO = 646,
+ FMINNM_ZPZI_H_UNDEF = 647,
+ FMINNM_ZPZI_H_ZERO = 648,
+ FMINNM_ZPZI_S_UNDEF = 649,
+ FMINNM_ZPZI_S_ZERO = 650,
+ FMINNM_ZPZZ_D_UNDEF = 651,
+ FMINNM_ZPZZ_D_ZERO = 652,
+ FMINNM_ZPZZ_H_UNDEF = 653,
+ FMINNM_ZPZZ_H_ZERO = 654,
+ FMINNM_ZPZZ_S_UNDEF = 655,
+ FMINNM_ZPZZ_S_ZERO = 656,
+ FMIN_ZPZI_D_UNDEF = 657,
+ FMIN_ZPZI_D_ZERO = 658,
+ FMIN_ZPZI_H_UNDEF = 659,
+ FMIN_ZPZI_H_ZERO = 660,
+ FMIN_ZPZI_S_UNDEF = 661,
+ FMIN_ZPZI_S_ZERO = 662,
+ FMIN_ZPZZ_D_UNDEF = 663,
+ FMIN_ZPZZ_D_ZERO = 664,
+ FMIN_ZPZZ_H_UNDEF = 665,
+ FMIN_ZPZZ_H_ZERO = 666,
+ FMIN_ZPZZ_S_UNDEF = 667,
+ FMIN_ZPZZ_S_ZERO = 668,
+ FMLALL_MZZI_BtoS_PSEUDO = 669,
+ FMLALL_MZZ_BtoS_PSEUDO = 670,
+ FMLALL_VG2_M2Z2Z_BtoS_PSEUDO = 671,
+ FMLALL_VG2_M2ZZI_BtoS_PSEUDO = 672,
+ FMLALL_VG2_M2ZZ_BtoS_PSEUDO = 673,
+ FMLALL_VG4_M4Z4Z_BtoS_PSEUDO = 674,
+ FMLALL_VG4_M4ZZI_BtoS_PSEUDO = 675,
+ FMLALL_VG4_M4ZZ_BtoS_PSEUDO = 676,
+ FMLAL_MZZI_BtoH_PSEUDO = 677,
+ FMLAL_MZZI_HtoS_PSEUDO = 678,
+ FMLAL_MZZ_HtoS_PSEUDO = 679,
+ FMLAL_VG2_M2Z2Z_BtoH_PSEUDO = 680,
+ FMLAL_VG2_M2Z2Z_HtoS_PSEUDO = 681,
+ FMLAL_VG2_M2ZZI_BtoH_PSEUDO = 682,
+ FMLAL_VG2_M2ZZI_HtoS_PSEUDO = 683,
+ FMLAL_VG2_M2ZZ_BtoH_PSEUDO = 684,
+ FMLAL_VG2_M2ZZ_HtoS_PSEUDO = 685,
+ FMLAL_VG2_MZZ_BtoH_PSEUDO = 686,
+ FMLAL_VG4_M4Z4Z_BtoH_PSEUDO = 687,
+ FMLAL_VG4_M4Z4Z_HtoS_PSEUDO = 688,
+ FMLAL_VG4_M4ZZI_BtoH_PSEUDO = 689,
+ FMLAL_VG4_M4ZZI_HtoS_PSEUDO = 690,
+ FMLAL_VG4_M4ZZ_BtoH_PSEUDO = 691,
+ FMLAL_VG4_M4ZZ_HtoS_PSEUDO = 692,
+ FMLA_VG2_M2Z2Z_D_PSEUDO = 693,
+ FMLA_VG2_M2Z2Z_H_PSEUDO = 694,
+ FMLA_VG2_M2Z2Z_S_PSEUDO = 695,
+ FMLA_VG2_M2ZZI_D_PSEUDO = 696,
+ FMLA_VG2_M2ZZI_H_PSEUDO = 697,
+ FMLA_VG2_M2ZZI_S_PSEUDO = 698,
+ FMLA_VG2_M2ZZ_D_PSEUDO = 699,
+ FMLA_VG2_M2ZZ_H_PSEUDO = 700,
+ FMLA_VG2_M2ZZ_S_PSEUDO = 701,
+ FMLA_VG4_M4Z4Z_D_PSEUDO = 702,
+ FMLA_VG4_M4Z4Z_H_PSEUDO = 703,
+ FMLA_VG4_M4Z4Z_S_PSEUDO = 704,
+ FMLA_VG4_M4ZZI_D_PSEUDO = 705,
+ FMLA_VG4_M4ZZI_H_PSEUDO = 706,
+ FMLA_VG4_M4ZZI_S_PSEUDO = 707,
+ FMLA_VG4_M4ZZ_D_PSEUDO = 708,
+ FMLA_VG4_M4ZZ_H_PSEUDO = 709,
+ FMLA_VG4_M4ZZ_S_PSEUDO = 710,
+ FMLA_ZPZZZ_D_UNDEF = 711,
+ FMLA_ZPZZZ_H_UNDEF = 712,
+ FMLA_ZPZZZ_S_UNDEF = 713,
+ FMLSL_MZZI_HtoS_PSEUDO = 714,
+ FMLSL_MZZ_HtoS_PSEUDO = 715,
+ FMLSL_VG2_M2Z2Z_HtoS_PSEUDO = 716,
+ FMLSL_VG2_M2ZZI_HtoS_PSEUDO = 717,
+ FMLSL_VG2_M2ZZ_HtoS_PSEUDO = 718,
+ FMLSL_VG4_M4Z4Z_HtoS_PSEUDO = 719,
+ FMLSL_VG4_M4ZZI_HtoS_PSEUDO = 720,
+ FMLSL_VG4_M4ZZ_HtoS_PSEUDO = 721,
+ FMLS_VG2_M2Z2Z_D_PSEUDO = 722,
+ FMLS_VG2_M2Z2Z_H_PSEUDO = 723,
+ FMLS_VG2_M2Z2Z_S_PSEUDO = 724,
+ FMLS_VG2_M2ZZI_D_PSEUDO = 725,
+ FMLS_VG2_M2ZZI_H_PSEUDO = 726,
+ FMLS_VG2_M2ZZI_S_PSEUDO = 727,
+ FMLS_VG2_M2ZZ_D_PSEUDO = 728,
+ FMLS_VG2_M2ZZ_H_PSEUDO = 729,
+ FMLS_VG2_M2ZZ_S_PSEUDO = 730,
+ FMLS_VG4_M4Z4Z_D_PSEUDO = 731,
+ FMLS_VG4_M4Z4Z_H_PSEUDO = 732,
+ FMLS_VG4_M4Z4Z_S_PSEUDO = 733,
+ FMLS_VG4_M4ZZI_D_PSEUDO = 734,
+ FMLS_VG4_M4ZZI_H_PSEUDO = 735,
+ FMLS_VG4_M4ZZI_S_PSEUDO = 736,
+ FMLS_VG4_M4ZZ_D_PSEUDO = 737,
+ FMLS_VG4_M4ZZ_H_PSEUDO = 738,
+ FMLS_VG4_M4ZZ_S_PSEUDO = 739,
+ FMLS_ZPZZZ_D_UNDEF = 740,
+ FMLS_ZPZZZ_H_UNDEF = 741,
+ FMLS_ZPZZZ_S_UNDEF = 742,
+ FMOP4A_M2Z2Z_BtoH_PSEUDO = 743,
+ FMOP4A_M2Z2Z_BtoS_PSEUDO = 744,
+ FMOP4A_M2Z2Z_D_PSEUDO = 745,
+ FMOP4A_M2Z2Z_H_PSEUDO = 746,
+ FMOP4A_M2Z2Z_HtoS_PSEUDO = 747,
+ FMOP4A_M2Z2Z_S_PSEUDO = 748,
+ FMOP4A_M2ZZ_BtoH_PSEUDO = 749,
+ FMOP4A_M2ZZ_BtoS_PSEUDO = 750,
+ FMOP4A_M2ZZ_D_PSEUDO = 751,
+ FMOP4A_M2ZZ_H_PSEUDO = 752,
+ FMOP4A_M2ZZ_HtoS_PSEUDO = 753,
+ FMOP4A_M2ZZ_S_PSEUDO = 754,
+ FMOP4A_MZ2Z_BtoH_PSEUDO = 755,
+ FMOP4A_MZ2Z_BtoS_PSEUDO = 756,
+ FMOP4A_MZ2Z_D_PSEUDO = 757,
+ FMOP4A_MZ2Z_H_PSEUDO = 758,
+ FMOP4A_MZ2Z_HtoS_PSEUDO = 759,
+ FMOP4A_MZ2Z_S_PSEUDO = 760,
+ FMOP4A_MZZ_BtoH_PSEUDO = 761,
+ FMOP4A_MZZ_BtoS_PSEUDO = 762,
+ FMOP4A_MZZ_D_PSEUDO = 763,
+ FMOP4A_MZZ_H_PSEUDO = 764,
+ FMOP4A_MZZ_HtoS_PSEUDO = 765,
+ FMOP4A_MZZ_S_PSEUDO = 766,
+ FMOP4S_M2Z2Z_D_PSEUDO = 767,
+ FMOP4S_M2Z2Z_H_PSEUDO = 768,
+ FMOP4S_M2Z2Z_HtoS_PSEUDO = 769,
+ FMOP4S_M2Z2Z_S_PSEUDO = 770,
+ FMOP4S_M2ZZ_D_PSEUDO = 771,
+ FMOP4S_M2ZZ_H_PSEUDO = 772,
+ FMOP4S_M2ZZ_HtoS_PSEUDO = 773,
+ FMOP4S_M2ZZ_S_PSEUDO = 774,
+ FMOP4S_MZ2Z_D_PSEUDO = 775,
+ FMOP4S_MZ2Z_H_PSEUDO = 776,
+ FMOP4S_MZ2Z_HtoS_PSEUDO = 777,
+ FMOP4S_MZ2Z_S_PSEUDO = 778,
+ FMOP4S_MZZ_D_PSEUDO = 779,
+ FMOP4S_MZZ_H_PSEUDO = 780,
+ FMOP4S_MZZ_HtoS_PSEUDO = 781,
+ FMOP4S_MZZ_S_PSEUDO = 782,
+ FMOPAL_MPPZZ_PSEUDO = 783,
+ FMOPA_MPPZZ_BtoH_PSEUDO = 784,
+ FMOPA_MPPZZ_BtoS_PSEUDO = 785,
+ FMOPA_MPPZZ_D_PSEUDO = 786,
+ FMOPA_MPPZZ_H_PSEUDO = 787,
+ FMOPA_MPPZZ_S_PSEUDO = 788,
+ FMOPSL_MPPZZ_PSEUDO = 789,
+ FMOPS_MPPZZ_D_PSEUDO = 790,
+ FMOPS_MPPZZ_H_PSEUDO = 791,
+ FMOPS_MPPZZ_S_PSEUDO = 792,
+ FMOVD0 = 793,
+ FMOVH0 = 794,
+ FMOVS0 = 795,
+ FMULX_ZPZZ_D_UNDEF = 796,
+ FMULX_ZPZZ_D_ZERO = 797,
+ FMULX_ZPZZ_H_UNDEF = 798,
+ FMULX_ZPZZ_H_ZERO = 799,
+ FMULX_ZPZZ_S_UNDEF = 800,
+ FMULX_ZPZZ_S_ZERO = 801,
+ FMUL_ZPZI_D_UNDEF = 802,
+ FMUL_ZPZI_D_ZERO = 803,
+ FMUL_ZPZI_H_UNDEF = 804,
+ FMUL_ZPZI_H_ZERO = 805,
+ FMUL_ZPZI_S_UNDEF = 806,
+ FMUL_ZPZI_S_ZERO = 807,
+ FMUL_ZPZZ_D_UNDEF = 808,
+ FMUL_ZPZZ_D_ZERO = 809,
+ FMUL_ZPZZ_H_UNDEF = 810,
+ FMUL_ZPZZ_H_ZERO = 811,
+ FMUL_ZPZZ_S_UNDEF = 812,
+ FMUL_ZPZZ_S_ZERO = 813,
+ FNEG_ZPmZ_D_UNDEF = 814,
+ FNEG_ZPmZ_H_UNDEF = 815,
+ FNEG_ZPmZ_S_UNDEF = 816,
+ FNMLA_ZPZZZ_D_UNDEF = 817,
+ FNMLA_ZPZZZ_H_UNDEF = 818,
+ FNMLA_ZPZZZ_S_UNDEF = 819,
+ FNMLS_ZPZZZ_D_UNDEF = 820,
+ FNMLS_ZPZZZ_H_UNDEF = 821,
+ FNMLS_ZPZZZ_S_UNDEF = 822,
+ FORM_TRANSPOSED_REG_TUPLE_X2_PSEUDO = 823,
+ FORM_TRANSPOSED_REG_TUPLE_X4_PSEUDO = 824,
+ FRECPX_ZPmZ_D_UNDEF = 825,
+ FRECPX_ZPmZ_H_UNDEF = 826,
+ FRECPX_ZPmZ_S_UNDEF = 827,
+ FRINT32X_ZPmZ_D_UNDEF = 828,
+ FRINT32X_ZPmZ_S_UNDEF = 829,
+ FRINT32Z_ZPmZ_D_UNDEF = 830,
+ FRINT32Z_ZPmZ_S_UNDEF = 831,
+ FRINT64X_ZPmZ_D_UNDEF = 832,
+ FRINT64X_ZPmZ_S_UNDEF = 833,
+ FRINT64Z_ZPmZ_D_UNDEF = 834,
+ FRINT64Z_ZPmZ_S_UNDEF = 835,
+ FRINTA_ZPmZ_D_UNDEF = 836,
+ FRINTA_ZPmZ_H_UNDEF = 837,
+ FRINTA_ZPmZ_S_UNDEF = 838,
+ FRINTI_ZPmZ_D_UNDEF = 839,
+ FRINTI_ZPmZ_H_UNDEF = 840,
+ FRINTI_ZPmZ_S_UNDEF = 841,
+ FRINTM_ZPmZ_D_UNDEF = 842,
+ FRINTM_ZPmZ_H_UNDEF = 843,
+ FRINTM_ZPmZ_S_UNDEF = 844,
+ FRINTN_ZPmZ_D_UNDEF = 845,
+ FRINTN_ZPmZ_H_UNDEF = 846,
+ FRINTN_ZPmZ_S_UNDEF = 847,
+ FRINTP_ZPmZ_D_UNDEF = 848,
+ FRINTP_ZPmZ_H_UNDEF = 849,
+ FRINTP_ZPmZ_S_UNDEF = 850,
+ FRINTX_ZPmZ_D_UNDEF = 851,
+ FRINTX_ZPmZ_H_UNDEF = 852,
+ FRINTX_ZPmZ_S_UNDEF = 853,
+ FRINTZ_ZPmZ_D_UNDEF = 854,
+ FRINTZ_ZPmZ_H_UNDEF = 855,
+ FRINTZ_ZPmZ_S_UNDEF = 856,
+ FSQRT_ZPmZ_D_UNDEF = 857,
+ FSQRT_ZPmZ_H_UNDEF = 858,
+ FSQRT_ZPmZ_S_UNDEF = 859,
+ FSUBR_ZPZI_D_UNDEF = 860,
+ FSUBR_ZPZI_D_ZERO = 861,
+ FSUBR_ZPZI_H_UNDEF = 862,
+ FSUBR_ZPZI_H_ZERO = 863,
+ FSUBR_ZPZI_S_UNDEF = 864,
+ FSUBR_ZPZI_S_ZERO = 865,
+ FSUBR_ZPZZ_D_ZERO = 866,
+ FSUBR_ZPZZ_H_ZERO = 867,
+ FSUBR_ZPZZ_S_ZERO = 868,
+ FSUB_VG2_M2Z_D_PSEUDO = 869,
+ FSUB_VG2_M2Z_H_PSEUDO = 870,
+ FSUB_VG2_M2Z_S_PSEUDO = 871,
+ FSUB_VG4_M4Z_D_PSEUDO = 872,
+ FSUB_VG4_M4Z_H_PSEUDO = 873,
+ FSUB_VG4_M4Z_S_PSEUDO = 874,
+ FSUB_ZPZI_D_UNDEF = 875,
+ FSUB_ZPZI_D_ZERO = 876,
+ FSUB_ZPZI_H_UNDEF = 877,
+ FSUB_ZPZI_H_ZERO = 878,
+ FSUB_ZPZI_S_UNDEF = 879,
+ FSUB_ZPZI_S_ZERO = 880,
+ FSUB_ZPZZ_D_UNDEF = 881,
+ FSUB_ZPZZ_D_ZERO = 882,
+ FSUB_ZPZZ_H_UNDEF = 883,
+ FSUB_ZPZZ_H_ZERO = 884,
+ FSUB_ZPZZ_S_UNDEF = 885,
+ FSUB_ZPZZ_S_ZERO = 886,
+ FTMOPA_M2ZZZI_BtoH_PSEUDO = 887,
+ FTMOPA_M2ZZZI_BtoS_PSEUDO = 888,
+ FTMOPA_M2ZZZI_HtoH_PSEUDO = 889,
+ FTMOPA_M2ZZZI_HtoS_PSEUDO = 890,
+ FTMOPA_M2ZZZI_StoS_PSEUDO = 891,
+ FVDOTB_VG4_M2ZZI_BtoS_PSEUDO = 892,
+ FVDOTT_VG4_M2ZZI_BtoS_PSEUDO = 893,
+ FVDOT_VG2_M2ZZI_BtoH_PSEUDO = 894,
+ FVDOT_VG2_M2ZZI_HtoS_PSEUDO = 895,
+ G_AARCH64_PREFETCH = 896,
+ G_AARCH64_RANGE_PREFETCH = 897,
+ G_ADD_LOW = 898,
+ G_BSP = 899,
+ G_DUP = 900,
+ G_DUPLANE16 = 901,
+ G_DUPLANE32 = 902,
+ G_DUPLANE64 = 903,
+ G_DUPLANE8 = 904,
+ G_EXT = 905,
+ G_FCMEQ = 906,
+ G_FCMGE = 907,
+ G_FCMGT = 908,
+ G_FPTRUNC_ODD = 909,
+ G_PMULL = 910,
+ G_REV16 = 911,
+ G_REV32 = 912,
+ G_REV64 = 913,
+ G_SADDLP = 914,
+ G_SADDLV = 915,
+ G_SDOT = 916,
+ G_SITOF = 917,
+ G_SLI = 918,
+ G_SMULL = 919,
+ G_SQSHLU_I = 920,
+ G_SRI = 921,
+ G_SRSHR_I = 922,
+ G_TRN1 = 923,
+ G_TRN2 = 924,
+ G_UADDLP = 925,
+ G_UADDLV = 926,
+ G_UDOT = 927,
+ G_UITOF = 928,
+ G_UMULL = 929,
+ G_URSHR_I = 930,
+ G_USDOT = 931,
+ G_UZP1 = 932,
+ G_UZP2 = 933,
+ G_VASHR = 934,
+ G_VLSHR = 935,
+ G_ZIP1 = 936,
+ G_ZIP2 = 937,
+ GetSMESaveSize = 938,
+ HOM_Epilog = 939,
+ HOM_Prolog = 940,
+ HWASAN_CHECK_MEMACCESS = 941,
+ HWASAN_CHECK_MEMACCESS_FIXEDSHADOW = 942,
+ HWASAN_CHECK_MEMACCESS_SHORTGRANULES = 943,
+ HWASAN_CHECK_MEMACCESS_SHORTGRANULES_FIXEDSHADOW = 944,
+ INSERT_MXIPZ_H_PSEUDO_B = 945,
+ INSERT_MXIPZ_H_PSEUDO_D = 946,
+ INSERT_MXIPZ_H_PSEUDO_H = 947,
+ INSERT_MXIPZ_H_PSEUDO_Q = 948,
+ INSERT_MXIPZ_H_PSEUDO_S = 949,
+ INSERT_MXIPZ_V_PSEUDO_B = 950,
+ INSERT_MXIPZ_V_PSEUDO_D = 951,
+ INSERT_MXIPZ_V_PSEUDO_H = 952,
+ INSERT_MXIPZ_V_PSEUDO_Q = 953,
+ INSERT_MXIPZ_V_PSEUDO_S = 954,
+ IRGstack = 955,
+ InOutZAUsePseudo = 956,
+ InitTPIDR2Obj = 957,
+ JumpTableDest16 = 958,
+ JumpTableDest32 = 959,
+ JumpTableDest8 = 960,
+ KCFI_CHECK = 961,
+ LD1B_2Z_IMM_PSEUDO = 962,
+ LD1B_2Z_PSEUDO = 963,
+ LD1B_4Z_IMM_PSEUDO = 964,
+ LD1B_4Z_PSEUDO = 965,
+ LD1D_2Z_IMM_PSEUDO = 966,
+ LD1D_2Z_PSEUDO = 967,
+ LD1D_4Z_IMM_PSEUDO = 968,
+ LD1D_4Z_PSEUDO = 969,
+ LD1H_2Z_IMM_PSEUDO = 970,
+ LD1H_2Z_PSEUDO = 971,
+ LD1H_4Z_IMM_PSEUDO = 972,
+ LD1H_4Z_PSEUDO = 973,
+ LD1W_2Z_IMM_PSEUDO = 974,
+ LD1W_2Z_PSEUDO = 975,
+ LD1W_4Z_IMM_PSEUDO = 976,
+ LD1W_4Z_PSEUDO = 977,
+ LD1_MXIPXX_H_PSEUDO_B = 978,
+ LD1_MXIPXX_H_PSEUDO_D = 979,
+ LD1_MXIPXX_H_PSEUDO_H = 980,
+ LD1_MXIPXX_H_PSEUDO_Q = 981,
+ LD1_MXIPXX_H_PSEUDO_S = 982,
+ LD1_MXIPXX_V_PSEUDO_B = 983,
+ LD1_MXIPXX_V_PSEUDO_D = 984,
+ LD1_MXIPXX_V_PSEUDO_H = 985,
+ LD1_MXIPXX_V_PSEUDO_Q = 986,
+ LD1_MXIPXX_V_PSEUDO_S = 987,
+ LDNT1B_2Z_IMM_PSEUDO = 988,
+ LDNT1B_2Z_PSEUDO = 989,
+ LDNT1B_4Z_IMM_PSEUDO = 990,
+ LDNT1B_4Z_PSEUDO = 991,
+ LDNT1D_2Z_IMM_PSEUDO = 992,
+ LDNT1D_2Z_PSEUDO = 993,
+ LDNT1D_4Z_IMM_PSEUDO = 994,
+ LDNT1D_4Z_PSEUDO = 995,
+ LDNT1H_2Z_IMM_PSEUDO = 996,
+ LDNT1H_2Z_PSEUDO = 997,
+ LDNT1H_4Z_IMM_PSEUDO = 998,
+ LDNT1H_4Z_PSEUDO = 999,
+ LDNT1W_2Z_IMM_PSEUDO = 1000,
+ LDNT1W_2Z_PSEUDO = 1001,
+ LDNT1W_4Z_IMM_PSEUDO = 1002,
+ LDNT1W_4Z_PSEUDO = 1003,
+ LDR_PPXI = 1004,
+ LDR_TX_PSEUDO = 1005,
+ LDR_ZA_PSEUDO = 1006,
+ LDR_ZZXI = 1007,
+ LDR_ZZXI_STRIDED_CONTIGUOUS = 1008,
+ LDR_ZZZXI = 1009,
+ LDR_ZZZZXI = 1010,
+ LDR_ZZZZXI_STRIDED_CONTIGUOUS = 1011,
+ LOADauthptrstatic = 1012,
+ LOADgot = 1013,
+ LOADgotAUTH = 1014,
+ LOADgotPAC = 1015,
+ LSL_ZPZI_B_UNDEF = 1016,
+ LSL_ZPZI_B_ZERO = 1017,
+ LSL_ZPZI_D_UNDEF = 1018,
+ LSL_ZPZI_D_ZERO = 1019,
+ LSL_ZPZI_H_UNDEF = 1020,
+ LSL_ZPZI_H_ZERO = 1021,
+ LSL_ZPZI_S_UNDEF = 1022,
+ LSL_ZPZI_S_ZERO = 1023,
+ LSL_ZPZZ_B_UNDEF = 1024,
+ LSL_ZPZZ_B_ZERO = 1025,
+ LSL_ZPZZ_D_UNDEF = 1026,
+ LSL_ZPZZ_D_ZERO = 1027,
+ LSL_ZPZZ_H_UNDEF = 1028,
+ LSL_ZPZZ_H_ZERO = 1029,
+ LSL_ZPZZ_S_UNDEF = 1030,
+ LSL_ZPZZ_S_ZERO = 1031,
+ LSR_ZPZI_B_UNDEF = 1032,
+ LSR_ZPZI_B_ZERO = 1033,
+ LSR_ZPZI_D_UNDEF = 1034,
+ LSR_ZPZI_D_ZERO = 1035,
+ LSR_ZPZI_H_UNDEF = 1036,
+ LSR_ZPZI_H_ZERO = 1037,
+ LSR_ZPZI_S_UNDEF = 1038,
+ LSR_ZPZI_S_ZERO = 1039,
+ LSR_ZPZZ_B_UNDEF = 1040,
+ LSR_ZPZZ_B_ZERO = 1041,
+ LSR_ZPZZ_D_UNDEF = 1042,
+ LSR_ZPZZ_D_ZERO = 1043,
+ LSR_ZPZZ_H_UNDEF = 1044,
+ LSR_ZPZZ_H_ZERO = 1045,
+ LSR_ZPZZ_S_UNDEF = 1046,
+ LSR_ZPZZ_S_ZERO = 1047,
+ MLA_ZPZZZ_B_UNDEF = 1048,
+ MLA_ZPZZZ_D_UNDEF = 1049,
+ MLA_ZPZZZ_H_UNDEF = 1050,
+ MLA_ZPZZZ_S_UNDEF = 1051,
+ MLS_ZPZZZ_B_UNDEF = 1052,
+ MLS_ZPZZZ_D_UNDEF = 1053,
+ MLS_ZPZZZ_H_UNDEF = 1054,
+ MLS_ZPZZZ_S_UNDEF = 1055,
+ MOPSMemoryCopyPseudo = 1056,
+ MOPSMemoryMovePseudo = 1057,
+ MOPSMemorySetPseudo = 1058,
+ MOPSMemorySetTaggingPseudo = 1059,
+ MOVAZ_2ZMI_H_B_PSEUDO = 1060,
+ MOVAZ_2ZMI_H_D_PSEUDO = 1061,
+ MOVAZ_2ZMI_H_H_PSEUDO = 1062,
+ MOVAZ_2ZMI_H_S_PSEUDO = 1063,
+ MOVAZ_2ZMI_V_B_PSEUDO = 1064,
+ MOVAZ_2ZMI_V_D_PSEUDO = 1065,
+ MOVAZ_2ZMI_V_H_PSEUDO = 1066,
+ MOVAZ_2ZMI_V_S_PSEUDO = 1067,
+ MOVAZ_4ZMI_H_B_PSEUDO = 1068,
+ MOVAZ_4ZMI_H_D_PSEUDO = 1069,
+ MOVAZ_4ZMI_H_H_PSEUDO = 1070,
+ MOVAZ_4ZMI_H_S_PSEUDO = 1071,
+ MOVAZ_4ZMI_V_B_PSEUDO = 1072,
+ MOVAZ_4ZMI_V_D_PSEUDO = 1073,
+ MOVAZ_4ZMI_V_H_PSEUDO = 1074,
+ MOVAZ_4ZMI_V_S_PSEUDO = 1075,
+ MOVAZ_VG2_2ZMXI_PSEUDO = 1076,
+ MOVAZ_VG4_4ZMXI_PSEUDO = 1077,
+ MOVAZ_ZMI_H_B_PSEUDO = 1078,
+ MOVAZ_ZMI_H_D_PSEUDO = 1079,
+ MOVAZ_ZMI_H_H_PSEUDO = 1080,
+ MOVAZ_ZMI_H_Q_PSEUDO = 1081,
+ MOVAZ_ZMI_H_S_PSEUDO = 1082,
+ MOVAZ_ZMI_V_B_PSEUDO = 1083,
+ MOVAZ_ZMI_V_D_PSEUDO = 1084,
+ MOVAZ_ZMI_V_H_PSEUDO = 1085,
+ MOVAZ_ZMI_V_Q_PSEUDO = 1086,
+ MOVAZ_ZMI_V_S_PSEUDO = 1087,
+ MOVA_MXI2Z_H_B_PSEUDO = 1088,
+ MOVA_MXI2Z_H_D_PSEUDO = 1089,
+ MOVA_MXI2Z_H_H_PSEUDO = 1090,
+ MOVA_MXI2Z_H_S_PSEUDO = 1091,
+ MOVA_MXI2Z_V_B_PSEUDO = 1092,
+ MOVA_MXI2Z_V_D_PSEUDO = 1093,
+ MOVA_MXI2Z_V_H_PSEUDO = 1094,
+ MOVA_MXI2Z_V_S_PSEUDO = 1095,
+ MOVA_MXI4Z_H_B_PSEUDO = 1096,
+ MOVA_MXI4Z_H_D_PSEUDO = 1097,
+ MOVA_MXI4Z_H_H_PSEUDO = 1098,
+ MOVA_MXI4Z_H_S_PSEUDO = 1099,
+ MOVA_MXI4Z_V_B_PSEUDO = 1100,
+ MOVA_MXI4Z_V_D_PSEUDO = 1101,
+ MOVA_MXI4Z_V_H_PSEUDO = 1102,
+ MOVA_MXI4Z_V_S_PSEUDO = 1103,
+ MOVA_VG2_MXI2Z_PSEUDO = 1104,
+ MOVA_VG4_MXI4Z_PSEUDO = 1105,
+ MOVMCSym = 1106,
+ MOVT_TIZ_PSEUDO = 1107,
+ MOVaddr = 1108,
+ MOVaddrBA = 1109,
+ MOVaddrCP = 1110,
+ MOVaddrEXT = 1111,
+ MOVaddrJT = 1112,
+ MOVaddrPAC = 1113,
+ MOVaddrTLS = 1114,
+ MOVbaseTLS = 1115,
+ MOVi32imm = 1116,
+ MOVi64imm = 1117,
+ MRS_FPCR = 1118,
+ MRS_FPSR = 1119,
+ MSR_FPCR = 1120,
+ MSR_FPMR = 1121,
+ MSR_FPSR = 1122,
+ MSRpstatePseudo = 1123,
+ MUL_ZPZZ_B_UNDEF = 1124,
+ MUL_ZPZZ_D_UNDEF = 1125,
+ MUL_ZPZZ_H_UNDEF = 1126,
+ MUL_ZPZZ_S_UNDEF = 1127,
+ NEG_ZPmZ_B_UNDEF = 1128,
+ NEG_ZPmZ_D_UNDEF = 1129,
+ NEG_ZPmZ_H_UNDEF = 1130,
+ NEG_ZPmZ_S_UNDEF = 1131,
+ NOT_ZPmZ_B_UNDEF = 1132,
+ NOT_ZPmZ_D_UNDEF = 1133,
+ NOT_ZPmZ_H_UNDEF = 1134,
+ NOT_ZPmZ_S_UNDEF = 1135,
+ ORNWrr = 1136,
+ ORNXrr = 1137,
+ ORRWrr = 1138,
+ ORRXrr = 1139,
+ ORR_ZPZZ_B_ZERO = 1140,
+ ORR_ZPZZ_D_ZERO = 1141,
+ ORR_ZPZZ_H_ZERO = 1142,
+ ORR_ZPZZ_S_ZERO = 1143,
+ PAC = 1144,
+ PAUTH_EPILOGUE = 1145,
+ PAUTH_PROLOGUE = 1146,
+ PROBED_STACKALLOC = 1147,
+ PROBED_STACKALLOC_DYN = 1148,
+ PROBED_STACKALLOC_VAR = 1149,
+ PTEST_PP_ANY = 1150,
+ PTEST_PP_FIRST = 1151,
+ RET_ReallyLR = 1152,
+ RequiresZASavePseudo = 1153,
+ RequiresZT0SavePseudo = 1154,
+ RestoreZAPseudo = 1155,
+ SABD_ZPZZ_B_UNDEF = 1156,
+ SABD_ZPZZ_D_UNDEF = 1157,
+ SABD_ZPZZ_H_UNDEF = 1158,
+ SABD_ZPZZ_S_UNDEF = 1159,
+ SCVTF_ZPmZ_DtoD_UNDEF = 1160,
+ SCVTF_ZPmZ_DtoH_UNDEF = 1161,
+ SCVTF_ZPmZ_DtoS_UNDEF = 1162,
+ SCVTF_ZPmZ_HtoH_UNDEF = 1163,
+ SCVTF_ZPmZ_StoD_UNDEF = 1164,
+ SCVTF_ZPmZ_StoH_UNDEF = 1165,
+ SCVTF_ZPmZ_StoS_UNDEF = 1166,
+ SDIV_ZPZZ_D_UNDEF = 1167,
+ SDIV_ZPZZ_S_UNDEF = 1168,
+ SDOT_VG2_M2Z2Z_BtoS_PSEUDO = 1169,
+ SDOT_VG2_M2Z2Z_HtoD_PSEUDO = 1170,
+ SDOT_VG2_M2Z2Z_HtoS_PSEUDO = 1171,
+ SDOT_VG2_M2ZZI_BToS_PSEUDO = 1172,
+ SDOT_VG2_M2ZZI_HToS_PSEUDO = 1173,
+ SDOT_VG2_M2ZZI_HtoD_PSEUDO = 1174,
+ SDOT_VG2_M2ZZ_BtoS_PSEUDO = 1175,
+ SDOT_VG2_M2ZZ_HtoD_PSEUDO = 1176,
+ SDOT_VG2_M2ZZ_HtoS_PSEUDO = 1177,
+ SDOT_VG4_M4Z4Z_BtoS_PSEUDO = 1178,
+ SDOT_VG4_M4Z4Z_HtoD_PSEUDO = 1179,
+ SDOT_VG4_M4Z4Z_HtoS_PSEUDO = 1180,
+ SDOT_VG4_M4ZZI_BToS_PSEUDO = 1181,
+ SDOT_VG4_M4ZZI_HToS_PSEUDO = 1182,
+ SDOT_VG4_M4ZZI_HtoD_PSEUDO = 1183,
+ SDOT_VG4_M4ZZ_BtoS_PSEUDO = 1184,
+ SDOT_VG4_M4ZZ_HtoD_PSEUDO = 1185,
+ SDOT_VG4_M4ZZ_HtoS_PSEUDO = 1186,
+ SEH_AddFP = 1187,
+ SEH_AllocZ = 1188,
+ SEH_EpilogEnd = 1189,
+ SEH_EpilogStart = 1190,
+ SEH_Nop = 1191,
+ SEH_PACSignLR = 1192,
+ SEH_PrologEnd = 1193,
+ SEH_SaveAnyRegI = 1194,
+ SEH_SaveAnyRegIP = 1195,
+ SEH_SaveAnyRegQP = 1196,
+ SEH_SaveAnyRegQPX = 1197,
+ SEH_SaveFPLR = 1198,
+ SEH_SaveFPLR_X = 1199,
+ SEH_SaveFReg = 1200,
+ SEH_SaveFRegP = 1201,
+ SEH_SaveFRegP_X = 1202,
+ SEH_SaveFReg_X = 1203,
+ SEH_SavePReg = 1204,
+ SEH_SaveReg = 1205,
+ SEH_SaveRegP = 1206,
+ SEH_SaveRegP_X = 1207,
+ SEH_SaveReg_X = 1208,
+ SEH_SaveZReg = 1209,
+ SEH_SetFP = 1210,
+ SEH_StackAlloc = 1211,
+ SHSUB_ZPZZ_B_UNDEF = 1212,
+ SHSUB_ZPZZ_D_UNDEF = 1213,
+ SHSUB_ZPZZ_H_UNDEF = 1214,
+ SHSUB_ZPZZ_S_UNDEF = 1215,
+ SMAX_ZPZZ_B_UNDEF = 1216,
+ SMAX_ZPZZ_D_UNDEF = 1217,
+ SMAX_ZPZZ_H_UNDEF = 1218,
+ SMAX_ZPZZ_S_UNDEF = 1219,
+ SMEStateAllocPseudo = 1220,
+ SMIN_ZPZZ_B_UNDEF = 1221,
+ SMIN_ZPZZ_D_UNDEF = 1222,
+ SMIN_ZPZZ_H_UNDEF = 1223,
+ SMIN_ZPZZ_S_UNDEF = 1224,
+ SMLALL_MZZI_BtoS_PSEUDO = 1225,
+ SMLALL_MZZI_HtoD_PSEUDO = 1226,
+ SMLALL_MZZ_BtoS_PSEUDO = 1227,
+ SMLALL_MZZ_HtoD_PSEUDO = 1228,
+ SMLALL_VG2_M2Z2Z_BtoS_PSEUDO = 1229,
+ SMLALL_VG2_M2Z2Z_HtoD_PSEUDO = 1230,
+ SMLALL_VG2_M2ZZI_BtoS_PSEUDO = 1231,
+ SMLALL_VG2_M2ZZI_HtoD_PSEUDO = 1232,
+ SMLALL_VG2_M2ZZ_BtoS_PSEUDO = 1233,
+ SMLALL_VG2_M2ZZ_HtoD_PSEUDO = 1234,
+ SMLALL_VG4_M4Z4Z_BtoS_PSEUDO = 1235,
+ SMLALL_VG4_M4Z4Z_HtoD_PSEUDO = 1236,
+ SMLALL_VG4_M4ZZI_BtoS_PSEUDO = 1237,
+ SMLALL_VG4_M4ZZI_HtoD_PSEUDO = 1238,
+ SMLALL_VG4_M4ZZ_BtoS_PSEUDO = 1239,
+ SMLALL_VG4_M4ZZ_HtoD_PSEUDO = 1240,
+ SMLAL_MZZI_HtoS_PSEUDO = 1241,
+ SMLAL_MZZ_HtoS_PSEUDO = 1242,
+ SMLAL_VG2_M2Z2Z_HtoS_PSEUDO = 1243,
+ SMLAL_VG2_M2ZZI_S_PSEUDO = 1244,
+ SMLAL_VG2_M2ZZ_HtoS_PSEUDO = 1245,
+ SMLAL_VG4_M4Z4Z_HtoS_PSEUDO = 1246,
+ SMLAL_VG4_M4ZZI_HtoS_PSEUDO = 1247,
+ SMLAL_VG4_M4ZZ_HtoS_PSEUDO = 1248,
+ SMLSLL_MZZI_BtoS_PSEUDO = 1249,
+ SMLSLL_MZZI_HtoD_PSEUDO = 1250,
+ SMLSLL_MZZ_BtoS_PSEUDO = 1251,
+ SMLSLL_MZZ_HtoD_PSEUDO = 1252,
+ SMLSLL_VG2_M2Z2Z_BtoS_PSEUDO = 1253,
+ SMLSLL_VG2_M2Z2Z_HtoD_PSEUDO = 1254,
+ SMLSLL_VG2_M2ZZI_BtoS_PSEUDO = 1255,
+ SMLSLL_VG2_M2ZZI_HtoD_PSEUDO = 1256,
+ SMLSLL_VG2_M2ZZ_BtoS_PSEUDO = 1257,
+ SMLSLL_VG2_M2ZZ_HtoD_PSEUDO = 1258,
+ SMLSLL_VG4_M4Z4Z_BtoS_PSEUDO = 1259,
+ SMLSLL_VG4_M4Z4Z_HtoD_PSEUDO = 1260,
+ SMLSLL_VG4_M4ZZI_BtoS_PSEUDO = 1261,
+ SMLSLL_VG4_M4ZZI_HtoD_PSEUDO = 1262,
+ SMLSLL_VG4_M4ZZ_BtoS_PSEUDO = 1263,
+ SMLSLL_VG4_M4ZZ_HtoD_PSEUDO = 1264,
+ SMLSL_MZZI_HtoS_PSEUDO = 1265,
+ SMLSL_MZZ_HtoS_PSEUDO = 1266,
+ SMLSL_VG2_M2Z2Z_HtoS_PSEUDO = 1267,
+ SMLSL_VG2_M2ZZI_S_PSEUDO = 1268,
+ SMLSL_VG2_M2ZZ_HtoS_PSEUDO = 1269,
+ SMLSL_VG4_M4Z4Z_HtoS_PSEUDO = 1270,
+ SMLSL_VG4_M4ZZI_HtoS_PSEUDO = 1271,
+ SMLSL_VG4_M4ZZ_HtoS_PSEUDO = 1272,
+ SMOP4A_M2Z2Z_BToS_PSEUDO = 1273,
+ SMOP4A_M2Z2Z_HToS_PSEUDO = 1274,
+ SMOP4A_M2Z2Z_HtoD_PSEUDO = 1275,
+ SMOP4A_M2ZZ_BToS_PSEUDO = 1276,
+ SMOP4A_M2ZZ_HToS_PSEUDO = 1277,
+ SMOP4A_M2ZZ_HtoD_PSEUDO = 1278,
+ SMOP4A_MZ2Z_BToS_PSEUDO = 1279,
+ SMOP4A_MZ2Z_HToS_PSEUDO = 1280,
+ SMOP4A_MZ2Z_HtoD_PSEUDO = 1281,
+ SMOP4A_MZZ_BToS_PSEUDO = 1282,
+ SMOP4A_MZZ_HToS_PSEUDO = 1283,
+ SMOP4A_MZZ_HtoD_PSEUDO = 1284,
+ SMOP4S_M2Z2Z_BToS_PSEUDO = 1285,
+ SMOP4S_M2Z2Z_HToS_PSEUDO = 1286,
+ SMOP4S_M2Z2Z_HtoD_PSEUDO = 1287,
+ SMOP4S_M2ZZ_BToS_PSEUDO = 1288,
+ SMOP4S_M2ZZ_HToS_PSEUDO = 1289,
+ SMOP4S_M2ZZ_HtoD_PSEUDO = 1290,
+ SMOP4S_MZ2Z_BToS_PSEUDO = 1291,
+ SMOP4S_MZ2Z_HToS_PSEUDO = 1292,
+ SMOP4S_MZ2Z_HtoD_PSEUDO = 1293,
+ SMOP4S_MZZ_BToS_PSEUDO = 1294,
+ SMOP4S_MZZ_HToS_PSEUDO = 1295,
+ SMOP4S_MZZ_HtoD_PSEUDO = 1296,
+ SMOPA_MPPZZ_D_PSEUDO = 1297,
+ SMOPA_MPPZZ_HtoS_PSEUDO = 1298,
+ SMOPA_MPPZZ_S_PSEUDO = 1299,
+ SMOPS_MPPZZ_D_PSEUDO = 1300,
+ SMOPS_MPPZZ_HtoS_PSEUDO = 1301,
+ SMOPS_MPPZZ_S_PSEUDO = 1302,
+ SMULH_ZPZZ_B_UNDEF = 1303,
+ SMULH_ZPZZ_D_UNDEF = 1304,
+ SMULH_ZPZZ_H_UNDEF = 1305,
+ SMULH_ZPZZ_S_UNDEF = 1306,
+ SPACE = 1307,
+ SQABS_ZPmZ_B_UNDEF = 1308,
+ SQABS_ZPmZ_D_UNDEF = 1309,
+ SQABS_ZPmZ_H_UNDEF = 1310,
+ SQABS_ZPmZ_S_UNDEF = 1311,
+ SQNEG_ZPmZ_B_UNDEF = 1312,
+ SQNEG_ZPmZ_D_UNDEF = 1313,
+ SQNEG_ZPmZ_H_UNDEF = 1314,
+ SQNEG_ZPmZ_S_UNDEF = 1315,
+ SQRSHL_ZPZZ_B_UNDEF = 1316,
+ SQRSHL_ZPZZ_D_UNDEF = 1317,
+ SQRSHL_ZPZZ_H_UNDEF = 1318,
+ SQRSHL_ZPZZ_S_UNDEF = 1319,
+ SQSHLU_ZPZI_B_ZERO = 1320,
+ SQSHLU_ZPZI_D_ZERO = 1321,
+ SQSHLU_ZPZI_H_ZERO = 1322,
+ SQSHLU_ZPZI_S_ZERO = 1323,
+ SQSHL_ZPZI_B_UNDEF = 1324,
+ SQSHL_ZPZI_B_ZERO = 1325,
+ SQSHL_ZPZI_D_UNDEF = 1326,
+ SQSHL_ZPZI_D_ZERO = 1327,
+ SQSHL_ZPZI_H_UNDEF = 1328,
+ SQSHL_ZPZI_H_ZERO = 1329,
+ SQSHL_ZPZI_S_UNDEF = 1330,
+ SQSHL_ZPZI_S_ZERO = 1331,
+ SQSHL_ZPZZ_B_UNDEF = 1332,
+ SQSHL_ZPZZ_D_UNDEF = 1333,
+ SQSHL_ZPZZ_H_UNDEF = 1334,
+ SQSHL_ZPZZ_S_UNDEF = 1335,
+ SRSHL_ZPZZ_B_UNDEF = 1336,
+ SRSHL_ZPZZ_D_UNDEF = 1337,
+ SRSHL_ZPZZ_H_UNDEF = 1338,
+ SRSHL_ZPZZ_S_UNDEF = 1339,
+ SRSHR_ZPZI_B_ZERO = 1340,
+ SRSHR_ZPZI_D_ZERO = 1341,
+ SRSHR_ZPZI_H_ZERO = 1342,
+ SRSHR_ZPZI_S_ZERO = 1343,
+ STGloop = 1344,
+ STGloop_wback = 1345,
+ STMOPA_M2ZZZI_BtoS_PSEUDO = 1346,
+ STMOPA_M2ZZZI_HtoS_PSEUDO = 1347,
+ STR_PPXI = 1348,
+ STR_TX_PSEUDO = 1349,
+ STR_ZZXI = 1350,
+ STR_ZZXI_STRIDED_CONTIGUOUS = 1351,
+ STR_ZZZXI = 1352,
+ STR_ZZZZXI = 1353,
+ STR_ZZZZXI_STRIDED_CONTIGUOUS = 1354,
+ STZGloop = 1355,
+ STZGloop_wback = 1356,
+ SUBR_ZPZZ_B_ZERO = 1357,
+ SUBR_ZPZZ_D_ZERO = 1358,
+ SUBR_ZPZZ_H_ZERO = 1359,
+ SUBR_ZPZZ_S_ZERO = 1360,
+ SUBSWrr = 1361,
+ SUBSXrr = 1362,
+ SUBWrr = 1363,
+ SUBXrr = 1364,
+ SUB_VG2_M2Z2Z_D_PSEUDO = 1365,
+ SUB_VG2_M2Z2Z_S_PSEUDO = 1366,
+ SUB_VG2_M2ZZ_D_PSEUDO = 1367,
+ SUB_VG2_M2ZZ_S_PSEUDO = 1368,
+ SUB_VG2_M2Z_D_PSEUDO = 1369,
+ SUB_VG2_M2Z_S_PSEUDO = 1370,
+ SUB_VG4_M4Z4Z_D_PSEUDO = 1371,
+ SUB_VG4_M4Z4Z_S_PSEUDO = 1372,
+ SUB_VG4_M4ZZ_D_PSEUDO = 1373,
+ SUB_VG4_M4ZZ_S_PSEUDO = 1374,
+ SUB_VG4_M4Z_D_PSEUDO = 1375,
+ SUB_VG4_M4Z_S_PSEUDO = 1376,
+ SUB_ZPZZ_B_ZERO = 1377,
+ SUB_ZPZZ_D_ZERO = 1378,
+ SUB_ZPZZ_H_ZERO = 1379,
+ SUB_ZPZZ_S_ZERO = 1380,
+ SUDOT_VG2_M2ZZI_BToS_PSEUDO = 1381,
+ SUDOT_VG2_M2ZZ_BToS_PSEUDO = 1382,
+ SUDOT_VG4_M4ZZI_BToS_PSEUDO = 1383,
+ SUDOT_VG4_M4ZZ_BToS_PSEUDO = 1384,
+ SUMLALL_MZZI_BtoS_PSEUDO = 1385,
+ SUMLALL_VG2_M2ZZI_BtoS_PSEUDO = 1386,
+ SUMLALL_VG2_M2ZZ_BtoS_PSEUDO = 1387,
+ SUMLALL_VG4_M4ZZI_BtoS_PSEUDO = 1388,
+ SUMLALL_VG4_M4ZZ_BtoS_PSEUDO = 1389,
+ SUMOP4A_M2Z2Z_BToS_PSEUDO = 1390,
+ SUMOP4A_M2Z2Z_HtoD_PSEUDO = 1391,
+ SUMOP4A_M2ZZ_BToS_PSEUDO = 1392,
+ SUMOP4A_M2ZZ_HtoD_PSEUDO = 1393,
+ SUMOP4A_MZ2Z_BToS_PSEUDO = 1394,
+ SUMOP4A_MZ2Z_HtoD_PSEUDO = 1395,
+ SUMOP4A_MZZ_BToS_PSEUDO = 1396,
+ SUMOP4A_MZZ_HtoD_PSEUDO = 1397,
+ SUMOP4S_M2Z2Z_BToS_PSEUDO = 1398,
+ SUMOP4S_M2Z2Z_HtoD_PSEUDO = 1399,
+ SUMOP4S_M2ZZ_BToS_PSEUDO = 1400,
+ SUMOP4S_M2ZZ_HtoD_PSEUDO = 1401,
+ SUMOP4S_MZ2Z_BToS_PSEUDO = 1402,
+ SUMOP4S_MZ2Z_HtoD_PSEUDO = 1403,
+ SUMOP4S_MZZ_BToS_PSEUDO = 1404,
+ SUMOP4S_MZZ_HtoD_PSEUDO = 1405,
+ SUMOPA_MPPZZ_D_PSEUDO = 1406,
+ SUMOPA_MPPZZ_S_PSEUDO = 1407,
+ SUMOPS_MPPZZ_D_PSEUDO = 1408,
+ SUMOPS_MPPZZ_S_PSEUDO = 1409,
+ SUTMOPA_M2ZZZI_BtoS_PSEUDO = 1410,
+ SUVDOT_VG4_M4ZZI_BToS_PSEUDO = 1411,
+ SVDOT_VG2_M2ZZI_HtoS_PSEUDO = 1412,
+ SVDOT_VG4_M4ZZI_BtoS_PSEUDO = 1413,
+ SVDOT_VG4_M4ZZI_HtoD_PSEUDO = 1414,
+ SXTB_ZPmZ_D_UNDEF = 1415,
+ SXTB_ZPmZ_H_UNDEF = 1416,
+ SXTB_ZPmZ_S_UNDEF = 1417,
+ SXTH_ZPmZ_D_UNDEF = 1418,
+ SXTH_ZPmZ_S_UNDEF = 1419,
+ SXTW_ZPmZ_D_UNDEF = 1420,
+ SpeculationBarrierISBDSBEndBB = 1421,
+ SpeculationBarrierSBEndBB = 1422,
+ SpeculationSafeValueW = 1423,
+ SpeculationSafeValueX = 1424,
+ StoreSwiftAsyncContext = 1425,
+ TAGPstack = 1426,
+ TCRETURNdi = 1427,
+ TCRETURNri = 1428,
+ TCRETURNriALL = 1429,
+ TCRETURNrinotx16 = 1430,
+ TCRETURNrix16x17 = 1431,
+ TCRETURNrix17 = 1432,
+ TLSDESCCALL = 1433,
+ TLSDESC_AUTH_CALLSEQ = 1434,
+ TLSDESC_CALLSEQ = 1435,
+ UABD_ZPZZ_B_UNDEF = 1436,
+ UABD_ZPZZ_D_UNDEF = 1437,
+ UABD_ZPZZ_H_UNDEF = 1438,
+ UABD_ZPZZ_S_UNDEF = 1439,
+ UCVTF_ZPmZ_DtoD_UNDEF = 1440,
+ UCVTF_ZPmZ_DtoH_UNDEF = 1441,
+ UCVTF_ZPmZ_DtoS_UNDEF = 1442,
+ UCVTF_ZPmZ_HtoH_UNDEF = 1443,
+ UCVTF_ZPmZ_StoD_UNDEF = 1444,
+ UCVTF_ZPmZ_StoH_UNDEF = 1445,
+ UCVTF_ZPmZ_StoS_UNDEF = 1446,
+ UDIV_ZPZZ_D_UNDEF = 1447,
+ UDIV_ZPZZ_S_UNDEF = 1448,
+ UDOT_VG2_M2Z2Z_BtoS_PSEUDO = 1449,
+ UDOT_VG2_M2Z2Z_HtoD_PSEUDO = 1450,
+ UDOT_VG2_M2Z2Z_HtoS_PSEUDO = 1451,
+ UDOT_VG2_M2ZZI_BToS_PSEUDO = 1452,
+ UDOT_VG2_M2ZZI_HToS_PSEUDO = 1453,
+ UDOT_VG2_M2ZZI_HtoD_PSEUDO = 1454,
+ UDOT_VG2_M2ZZ_BtoS_PSEUDO = 1455,
+ UDOT_VG2_M2ZZ_HtoD_PSEUDO = 1456,
+ UDOT_VG2_M2ZZ_HtoS_PSEUDO = 1457,
+ UDOT_VG4_M4Z4Z_BtoS_PSEUDO = 1458,
+ UDOT_VG4_M4Z4Z_HtoD_PSEUDO = 1459,
+ UDOT_VG4_M4Z4Z_HtoS_PSEUDO = 1460,
+ UDOT_VG4_M4ZZI_BtoS_PSEUDO = 1461,
+ UDOT_VG4_M4ZZI_HToS_PSEUDO = 1462,
+ UDOT_VG4_M4ZZI_HtoD_PSEUDO = 1463,
+ UDOT_VG4_M4ZZ_BtoS_PSEUDO = 1464,
+ UDOT_VG4_M4ZZ_HtoD_PSEUDO = 1465,
+ UDOT_VG4_M4ZZ_HtoS_PSEUDO = 1466,
+ UHSUB_ZPZZ_B_UNDEF = 1467,
+ UHSUB_ZPZZ_D_UNDEF = 1468,
+ UHSUB_ZPZZ_H_UNDEF = 1469,
+ UHSUB_ZPZZ_S_UNDEF = 1470,
+ UMAX_ZPZZ_B_UNDEF = 1471,
+ UMAX_ZPZZ_D_UNDEF = 1472,
+ UMAX_ZPZZ_H_UNDEF = 1473,
+ UMAX_ZPZZ_S_UNDEF = 1474,
+ UMIN_ZPZZ_B_UNDEF = 1475,
+ UMIN_ZPZZ_D_UNDEF = 1476,
+ UMIN_ZPZZ_H_UNDEF = 1477,
+ UMIN_ZPZZ_S_UNDEF = 1478,
+ UMLALL_MZZI_BtoS_PSEUDO = 1479,
+ UMLALL_MZZI_HtoD_PSEUDO = 1480,
+ UMLALL_MZZ_BtoS_PSEUDO = 1481,
+ UMLALL_MZZ_HtoD_PSEUDO = 1482,
+ UMLALL_VG2_M2Z2Z_BtoS_PSEUDO = 1483,
+ UMLALL_VG2_M2Z2Z_HtoD_PSEUDO = 1484,
+ UMLALL_VG2_M2ZZI_BtoS_PSEUDO = 1485,
+ UMLALL_VG2_M2ZZI_HtoD_PSEUDO = 1486,
+ UMLALL_VG2_M2ZZ_BtoS_PSEUDO = 1487,
+ UMLALL_VG2_M2ZZ_HtoD_PSEUDO = 1488,
+ UMLALL_VG4_M4Z4Z_BtoS_PSEUDO = 1489,
+ UMLALL_VG4_M4Z4Z_HtoD_PSEUDO = 1490,
+ UMLALL_VG4_M4ZZI_BtoS_PSEUDO = 1491,
+ UMLALL_VG4_M4ZZI_HtoD_PSEUDO = 1492,
+ UMLALL_VG4_M4ZZ_BtoS_PSEUDO = 1493,
+ UMLALL_VG4_M4ZZ_HtoD_PSEUDO = 1494,
+ UMLAL_MZZI_HtoS_PSEUDO = 1495,
+ UMLAL_MZZ_HtoS_PSEUDO = 1496,
+ UMLAL_VG2_M2Z2Z_HtoS_PSEUDO = 1497,
+ UMLAL_VG2_M2ZZI_S_PSEUDO = 1498,
+ UMLAL_VG2_M2ZZ_HtoS_PSEUDO = 1499,
+ UMLAL_VG4_M4Z4Z_HtoS_PSEUDO = 1500,
+ UMLAL_VG4_M4ZZI_HtoS_PSEUDO = 1501,
+ UMLAL_VG4_M4ZZ_HtoS_PSEUDO = 1502,
+ UMLSLL_MZZI_BtoS_PSEUDO = 1503,
+ UMLSLL_MZZI_HtoD_PSEUDO = 1504,
+ UMLSLL_MZZ_BtoS_PSEUDO = 1505,
+ UMLSLL_MZZ_HtoD_PSEUDO = 1506,
+ UMLSLL_VG2_M2Z2Z_BtoS_PSEUDO = 1507,
+ UMLSLL_VG2_M2Z2Z_HtoD_PSEUDO = 1508,
+ UMLSLL_VG2_M2ZZI_BtoS_PSEUDO = 1509,
+ UMLSLL_VG2_M2ZZI_HtoD_PSEUDO = 1510,
+ UMLSLL_VG2_M2ZZ_BtoS_PSEUDO = 1511,
+ UMLSLL_VG2_M2ZZ_HtoD_PSEUDO = 1512,
+ UMLSLL_VG4_M4Z4Z_BtoS_PSEUDO = 1513,
+ UMLSLL_VG4_M4Z4Z_HtoD_PSEUDO = 1514,
+ UMLSLL_VG4_M4ZZI_BtoS_PSEUDO = 1515,
+ UMLSLL_VG4_M4ZZI_HtoD_PSEUDO = 1516,
+ UMLSLL_VG4_M4ZZ_BtoS_PSEUDO = 1517,
+ UMLSLL_VG4_M4ZZ_HtoD_PSEUDO = 1518,
+ UMLSL_MZZI_HtoS_PSEUDO = 1519,
+ UMLSL_MZZ_HtoS_PSEUDO = 1520,
+ UMLSL_VG2_M2Z2Z_HtoS_PSEUDO = 1521,
+ UMLSL_VG2_M2ZZI_S_PSEUDO = 1522,
+ UMLSL_VG2_M2ZZ_HtoS_PSEUDO = 1523,
+ UMLSL_VG4_M4Z4Z_HtoS_PSEUDO = 1524,
+ UMLSL_VG4_M4ZZI_HtoS_PSEUDO = 1525,
+ UMLSL_VG4_M4ZZ_HtoS_PSEUDO = 1526,
+ UMOP4A_M2Z2Z_BToS_PSEUDO = 1527,
+ UMOP4A_M2Z2Z_HToS_PSEUDO = 1528,
+ UMOP4A_M2Z2Z_HtoD_PSEUDO = 1529,
+ UMOP4A_M2ZZ_BToS_PSEUDO = 1530,
+ UMOP4A_M2ZZ_HToS_PSEUDO = 1531,
+ UMOP4A_M2ZZ_HtoD_PSEUDO = 1532,
+ UMOP4A_MZ2Z_BToS_PSEUDO = 1533,
+ UMOP4A_MZ2Z_HToS_PSEUDO = 1534,
+ UMOP4A_MZ2Z_HtoD_PSEUDO = 1535,
+ UMOP4A_MZZ_BToS_PSEUDO = 1536,
+ UMOP4A_MZZ_HToS_PSEUDO = 1537,
+ UMOP4A_MZZ_HtoD_PSEUDO = 1538,
+ UMOP4S_M2Z2Z_BToS_PSEUDO = 1539,
+ UMOP4S_M2Z2Z_HToS_PSEUDO = 1540,
+ UMOP4S_M2Z2Z_HtoD_PSEUDO = 1541,
+ UMOP4S_M2ZZ_BToS_PSEUDO = 1542,
+ UMOP4S_M2ZZ_HToS_PSEUDO = 1543,
+ UMOP4S_M2ZZ_HtoD_PSEUDO = 1544,
+ UMOP4S_MZ2Z_BToS_PSEUDO = 1545,
+ UMOP4S_MZ2Z_HToS_PSEUDO = 1546,
+ UMOP4S_MZ2Z_HtoD_PSEUDO = 1547,
+ UMOP4S_MZZ_BToS_PSEUDO = 1548,
+ UMOP4S_MZZ_HToS_PSEUDO = 1549,
+ UMOP4S_MZZ_HtoD_PSEUDO = 1550,
+ UMOPA_MPPZZ_D_PSEUDO = 1551,
+ UMOPA_MPPZZ_HtoS_PSEUDO = 1552,
+ UMOPA_MPPZZ_S_PSEUDO = 1553,
+ UMOPS_MPPZZ_D_PSEUDO = 1554,
+ UMOPS_MPPZZ_HtoS_PSEUDO = 1555,
+ UMOPS_MPPZZ_S_PSEUDO = 1556,
+ UMULH_ZPZZ_B_UNDEF = 1557,
+ UMULH_ZPZZ_D_UNDEF = 1558,
+ UMULH_ZPZZ_H_UNDEF = 1559,
+ UMULH_ZPZZ_S_UNDEF = 1560,
+ UQRSHL_ZPZZ_B_UNDEF = 1561,
+ UQRSHL_ZPZZ_D_UNDEF = 1562,
+ UQRSHL_ZPZZ_H_UNDEF = 1563,
+ UQRSHL_ZPZZ_S_UNDEF = 1564,
+ UQSHL_ZPZI_B_UNDEF = 1565,
+ UQSHL_ZPZI_B_ZERO = 1566,
+ UQSHL_ZPZI_D_UNDEF = 1567,
+ UQSHL_ZPZI_D_ZERO = 1568,
+ UQSHL_ZPZI_H_UNDEF = 1569,
+ UQSHL_ZPZI_H_ZERO = 1570,
+ UQSHL_ZPZI_S_UNDEF = 1571,
+ UQSHL_ZPZI_S_ZERO = 1572,
+ UQSHL_ZPZZ_B_UNDEF = 1573,
+ UQSHL_ZPZZ_D_UNDEF = 1574,
+ UQSHL_ZPZZ_H_UNDEF = 1575,
+ UQSHL_ZPZZ_S_UNDEF = 1576,
+ URECPE_ZPmZ_S_UNDEF = 1577,
+ URSHL_ZPZZ_B_UNDEF = 1578,
+ URSHL_ZPZZ_D_UNDEF = 1579,
+ URSHL_ZPZZ_H_UNDEF = 1580,
+ URSHL_ZPZZ_S_UNDEF = 1581,
+ URSHR_ZPZI_B_ZERO = 1582,
+ URSHR_ZPZI_D_ZERO = 1583,
+ URSHR_ZPZI_H_ZERO = 1584,
+ URSHR_ZPZI_S_ZERO = 1585,
+ URSQRTE_ZPmZ_S_UNDEF = 1586,
+ USDOT_VG2_M2Z2Z_BToS_PSEUDO = 1587,
+ USDOT_VG2_M2ZZI_BToS_PSEUDO = 1588,
+ USDOT_VG2_M2ZZ_BToS_PSEUDO = 1589,
+ USDOT_VG4_M4Z4Z_BToS_PSEUDO = 1590,
+ USDOT_VG4_M4ZZI_BToS_PSEUDO = 1591,
+ USDOT_VG4_M4ZZ_BToS_PSEUDO = 1592,
+ USMLALL_MZZI_BtoS_PSEUDO = 1593,
+ USMLALL_MZZ_BtoS_PSEUDO = 1594,
+ USMLALL_VG2_M2Z2Z_BtoS_PSEUDO = 1595,
+ USMLALL_VG2_M2ZZI_BtoS_PSEUDO = 1596,
+ USMLALL_VG2_M2ZZ_BtoS_PSEUDO = 1597,
+ USMLALL_VG4_M4Z4Z_BtoS_PSEUDO = 1598,
+ USMLALL_VG4_M4ZZI_BtoS_PSEUDO = 1599,
+ USMLALL_VG4_M4ZZ_BtoS_PSEUDO = 1600,
+ USMOP4A_M2Z2Z_BToS_PSEUDO = 1601,
+ USMOP4A_M2Z2Z_HtoD_PSEUDO = 1602,
+ USMOP4A_M2ZZ_BToS_PSEUDO = 1603,
+ USMOP4A_M2ZZ_HtoD_PSEUDO = 1604,
+ USMOP4A_MZ2Z_BToS_PSEUDO = 1605,
+ USMOP4A_MZ2Z_HtoD_PSEUDO = 1606,
+ USMOP4A_MZZ_BToS_PSEUDO = 1607,
+ USMOP4A_MZZ_HtoD_PSEUDO = 1608,
+ USMOP4S_M2Z2Z_BToS_PSEUDO = 1609,
+ USMOP4S_M2Z2Z_HtoD_PSEUDO = 1610,
+ USMOP4S_M2ZZ_BToS_PSEUDO = 1611,
+ USMOP4S_M2ZZ_HtoD_PSEUDO = 1612,
+ USMOP4S_MZ2Z_BToS_PSEUDO = 1613,
+ USMOP4S_MZ2Z_HtoD_PSEUDO = 1614,
+ USMOP4S_MZZ_BToS_PSEUDO = 1615,
+ USMOP4S_MZZ_HtoD_PSEUDO = 1616,
+ USMOPA_MPPZZ_D_PSEUDO = 1617,
+ USMOPA_MPPZZ_S_PSEUDO = 1618,
+ USMOPS_MPPZZ_D_PSEUDO = 1619,
+ USMOPS_MPPZZ_S_PSEUDO = 1620,
+ USTMOPA_M2ZZZI_BtoS_PSEUDO = 1621,
+ USVDOT_VG4_M4ZZI_BToS_PSEUDO = 1622,
+ UTMOPA_M2ZZZI_BtoS_PSEUDO = 1623,
+ UTMOPA_M2ZZZI_HtoS_PSEUDO = 1624,
+ UVDOT_VG2_M2ZZI_HtoS_PSEUDO = 1625,
+ UVDOT_VG4_M4ZZI_BtoS_PSEUDO = 1626,
+ UVDOT_VG4_M4ZZI_HtoD_PSEUDO = 1627,
+ UXTB_ZPmZ_D_UNDEF = 1628,
+ UXTB_ZPmZ_H_UNDEF = 1629,
+ UXTB_ZPmZ_S_UNDEF = 1630,
+ UXTH_ZPmZ_D_UNDEF = 1631,
+ UXTH_ZPmZ_S_UNDEF = 1632,
+ UXTW_ZPmZ_D_UNDEF = 1633,
+ ZERO_MXI_2Z_PSEUDO = 1634,
+ ZERO_MXI_4Z_PSEUDO = 1635,
+ ZERO_MXI_VG2_2Z_PSEUDO = 1636,
+ ZERO_MXI_VG2_4Z_PSEUDO = 1637,
+ ZERO_MXI_VG2_Z_PSEUDO = 1638,
+ ZERO_MXI_VG4_2Z_PSEUDO = 1639,
+ ZERO_MXI_VG4_4Z_PSEUDO = 1640,
+ ZERO_MXI_VG4_Z_PSEUDO = 1641,
+ ZERO_M_PSEUDO = 1642,
+ ZERO_T_PSEUDO = 1643,
+ ABSWr = 1644,
+ ABSXr = 1645,
+ ABS_ZPmZ_B = 1646,
+ ABS_ZPmZ_D = 1647,
+ ABS_ZPmZ_H = 1648,
+ ABS_ZPmZ_S = 1649,
+ ABS_ZPzZ_B = 1650,
+ ABS_ZPzZ_D = 1651,
+ ABS_ZPzZ_H = 1652,
+ ABS_ZPzZ_S = 1653,
+ ABSv16i8 = 1654,
+ ABSv1i64 = 1655,
+ ABSv2i32 = 1656,
+ ABSv2i64 = 1657,
+ ABSv4i16 = 1658,
+ ABSv4i32 = 1659,
+ ABSv8i16 = 1660,
+ ABSv8i8 = 1661,
+ ADCLB_ZZZ_D = 1662,
+ ADCLB_ZZZ_S = 1663,
+ ADCLT_ZZZ_D = 1664,
+ ADCLT_ZZZ_S = 1665,
+ ADCSWr = 1666,
+ ADCSXr = 1667,
+ ADCWr = 1668,
+ ADCXr = 1669,
+ ADDG = 1670,
+ ADDHA_MPPZ_D = 1671,
+ ADDHA_MPPZ_S = 1672,
+ ADDHNB_ZZZ_B = 1673,
+ ADDHNB_ZZZ_H = 1674,
+ ADDHNB_ZZZ_S = 1675,
+ ADDHNT_ZZZ_B = 1676,
+ ADDHNT_ZZZ_H = 1677,
+ ADDHNT_ZZZ_S = 1678,
+ ADDHNv2i64_v2i32 = 1679,
+ ADDHNv2i64_v4i32 = 1680,
+ ADDHNv4i32_v4i16 = 1681,
+ ADDHNv4i32_v8i16 = 1682,
+ ADDHNv8i16_v16i8 = 1683,
+ ADDHNv8i16_v8i8 = 1684,
+ ADDPL_XXI = 1685,
+ ADDPT_shift = 1686,
+ ADDP_ZPmZ_B = 1687,
+ ADDP_ZPmZ_D = 1688,
+ ADDP_ZPmZ_H = 1689,
+ ADDP_ZPmZ_S = 1690,
+ ADDPv16i8 = 1691,
+ ADDPv2i32 = 1692,
+ ADDPv2i64 = 1693,
+ ADDPv2i64p = 1694,
+ ADDPv4i16 = 1695,
+ ADDPv4i32 = 1696,
+ ADDPv8i16 = 1697,
+ ADDPv8i8 = 1698,
+ ADDQP_ZZZ_B = 1699,
+ ADDQP_ZZZ_D = 1700,
+ ADDQP_ZZZ_H = 1701,
+ ADDQP_ZZZ_S = 1702,
+ ADDQV_VPZ_B = 1703,
+ ADDQV_VPZ_D = 1704,
+ ADDQV_VPZ_H = 1705,
+ ADDQV_VPZ_S = 1706,
+ ADDSPL_XXI = 1707,
+ ADDSUBP_ZZZ_B = 1708,
+ ADDSUBP_ZZZ_D = 1709,
+ ADDSUBP_ZZZ_H = 1710,
+ ADDSUBP_ZZZ_S = 1711,
+ ADDSVL_XXI = 1712,
+ ADDSWri = 1713,
+ ADDSWrs = 1714,
+ ADDSWrx = 1715,
+ ADDSXri = 1716,
+ ADDSXrs = 1717,
+ ADDSXrx = 1718,
+ ADDSXrx64 = 1719,
+ ADDVA_MPPZ_D = 1720,
+ ADDVA_MPPZ_S = 1721,
+ ADDVL_XXI = 1722,
+ ADDVv16i8v = 1723,
+ ADDVv4i16v = 1724,
+ ADDVv4i32v = 1725,
+ ADDVv8i16v = 1726,
+ ADDVv8i8v = 1727,
+ ADDWri = 1728,
+ ADDWrs = 1729,
+ ADDWrx = 1730,
+ ADDXri = 1731,
+ ADDXrs = 1732,
+ ADDXrx = 1733,
+ ADDXrx64 = 1734,
+ ADD_VG2_2ZZ_B = 1735,
+ ADD_VG2_2ZZ_D = 1736,
+ ADD_VG2_2ZZ_H = 1737,
+ ADD_VG2_2ZZ_S = 1738,
+ ADD_VG2_M2Z2Z_D = 1739,
+ ADD_VG2_M2Z2Z_S = 1740,
+ ADD_VG2_M2ZZ_D = 1741,
+ ADD_VG2_M2ZZ_S = 1742,
+ ADD_VG2_M2Z_D = 1743,
+ ADD_VG2_M2Z_S = 1744,
+ ADD_VG4_4ZZ_B = 1745,
+ ADD_VG4_4ZZ_D = 1746,
+ ADD_VG4_4ZZ_H = 1747,
+ ADD_VG4_4ZZ_S = 1748,
+ ADD_VG4_M4Z4Z_D = 1749,
+ ADD_VG4_M4Z4Z_S = 1750,
+ ADD_VG4_M4ZZ_D = 1751,
+ ADD_VG4_M4ZZ_S = 1752,
+ ADD_VG4_M4Z_D = 1753,
+ ADD_VG4_M4Z_S = 1754,
+ ADD_ZI_B = 1755,
+ ADD_ZI_D = 1756,
+ ADD_ZI_H = 1757,
+ ADD_ZI_S = 1758,
+ ADD_ZPmZ_B = 1759,
+ ADD_ZPmZ_CPA = 1760,
+ ADD_ZPmZ_D = 1761,
+ ADD_ZPmZ_H = 1762,
+ ADD_ZPmZ_S = 1763,
+ ADD_ZZZ_B = 1764,
+ ADD_ZZZ_CPA = 1765,
+ ADD_ZZZ_D = 1766,
+ ADD_ZZZ_H = 1767,
+ ADD_ZZZ_S = 1768,
+ ADDv16i8 = 1769,
+ ADDv1i64 = 1770,
+ ADDv2i32 = 1771,
+ ADDv2i64 = 1772,
+ ADDv4i16 = 1773,
+ ADDv4i32 = 1774,
+ ADDv8i16 = 1775,
+ ADDv8i8 = 1776,
+ ADR = 1777,
+ ADRP = 1778,
+ ADR_LSL_ZZZ_D_0 = 1779,
+ ADR_LSL_ZZZ_D_1 = 1780,
+ ADR_LSL_ZZZ_D_2 = 1781,
+ ADR_LSL_ZZZ_D_3 = 1782,
+ ADR_LSL_ZZZ_S_0 = 1783,
+ ADR_LSL_ZZZ_S_1 = 1784,
+ ADR_LSL_ZZZ_S_2 = 1785,
+ ADR_LSL_ZZZ_S_3 = 1786,
+ ADR_SXTW_ZZZ_D_0 = 1787,
+ ADR_SXTW_ZZZ_D_1 = 1788,
+ ADR_SXTW_ZZZ_D_2 = 1789,
+ ADR_SXTW_ZZZ_D_3 = 1790,
+ ADR_UXTW_ZZZ_D_0 = 1791,
+ ADR_UXTW_ZZZ_D_1 = 1792,
+ ADR_UXTW_ZZZ_D_2 = 1793,
+ ADR_UXTW_ZZZ_D_3 = 1794,
+ AESDIMC_2ZZI_B = 1795,
+ AESDIMC_4ZZI_B = 1796,
+ AESD_2ZZI_B = 1797,
+ AESD_4ZZI_B = 1798,
+ AESD_ZZZ_B = 1799,
+ AESDrr = 1800,
+ AESEMC_2ZZI_B = 1801,
+ AESEMC_4ZZI_B = 1802,
+ AESE_2ZZI_B = 1803,
+ AESE_4ZZI_B = 1804,
+ AESE_ZZZ_B = 1805,
+ AESErr = 1806,
+ AESIMC_ZZ_B = 1807,
+ AESIMCrr = 1808,
+ AESMC_ZZ_B = 1809,
+ AESMCrr = 1810,
+ ANDQV_VPZ_B = 1811,
+ ANDQV_VPZ_D = 1812,
+ ANDQV_VPZ_H = 1813,
+ ANDQV_VPZ_S = 1814,
+ ANDSWri = 1815,
+ ANDSWrs = 1816,
+ ANDSXri = 1817,
+ ANDSXrs = 1818,
+ ANDS_PPzPP = 1819,
+ ANDV_VPZ_B = 1820,
+ ANDV_VPZ_D = 1821,
+ ANDV_VPZ_H = 1822,
+ ANDV_VPZ_S = 1823,
+ ANDWri = 1824,
+ ANDWrs = 1825,
+ ANDXri = 1826,
+ ANDXrs = 1827,
+ AND_PPzPP = 1828,
+ AND_ZI = 1829,
+ AND_ZPmZ_B = 1830,
+ AND_ZPmZ_D = 1831,
+ AND_ZPmZ_H = 1832,
+ AND_ZPmZ_S = 1833,
+ AND_ZZZ = 1834,
+ ANDv16i8 = 1835,
+ ANDv8i8 = 1836,
+ APAS = 1837,
+ ASRD_ZPmI_B = 1838,
+ ASRD_ZPmI_D = 1839,
+ ASRD_ZPmI_H = 1840,
+ ASRD_ZPmI_S = 1841,
+ ASRR_ZPmZ_B = 1842,
+ ASRR_ZPmZ_D = 1843,
+ ASRR_ZPmZ_H = 1844,
+ ASRR_ZPmZ_S = 1845,
+ ASRVWr = 1846,
+ ASRVXr = 1847,
+ ASR_WIDE_ZPmZ_B = 1848,
+ ASR_WIDE_ZPmZ_H = 1849,
+ ASR_WIDE_ZPmZ_S = 1850,
+ ASR_WIDE_ZZZ_B = 1851,
+ ASR_WIDE_ZZZ_H = 1852,
+ ASR_WIDE_ZZZ_S = 1853,
+ ASR_ZPmI_B = 1854,
+ ASR_ZPmI_D = 1855,
+ ASR_ZPmI_H = 1856,
+ ASR_ZPmI_S = 1857,
+ ASR_ZPmZ_B = 1858,
+ ASR_ZPmZ_D = 1859,
+ ASR_ZPmZ_H = 1860,
+ ASR_ZPmZ_S = 1861,
+ ASR_ZZI_B = 1862,
+ ASR_ZZI_D = 1863,
+ ASR_ZZI_H = 1864,
+ ASR_ZZI_S = 1865,
+ AUTDA = 1866,
+ AUTDB = 1867,
+ AUTDZA = 1868,
+ AUTDZB = 1869,
+ AUTIA = 1870,
+ AUTIA1716 = 1871,
+ AUTIA171615 = 1872,
+ AUTIASP = 1873,
+ AUTIASPPCi = 1874,
+ AUTIASPPCr = 1875,
+ AUTIAZ = 1876,
+ AUTIB = 1877,
+ AUTIB1716 = 1878,
+ AUTIB171615 = 1879,
+ AUTIBSP = 1880,
+ AUTIBSPPCi = 1881,
+ AUTIBSPPCr = 1882,
+ AUTIBZ = 1883,
+ AUTIZA = 1884,
+ AUTIZB = 1885,
+ AXFLAG = 1886,
+ B = 1887,
+ BCAX = 1888,
+ BCAX_ZZZZ = 1889,
+ BCcc = 1890,
+ BDEP_ZZZ_B = 1891,
+ BDEP_ZZZ_D = 1892,
+ BDEP_ZZZ_H = 1893,
+ BDEP_ZZZ_S = 1894,
+ BEXT_ZZZ_B = 1895,
+ BEXT_ZZZ_D = 1896,
+ BEXT_ZZZ_H = 1897,
+ BEXT_ZZZ_S = 1898,
+ BF16DOTlanev4bf16 = 1899,
+ BF16DOTlanev8bf16 = 1900,
+ BF1CVTL = 1901,
+ BF1CVTL2 = 1902,
+ BF1CVTLT_ZZ_BtoH = 1903,
+ BF1CVTL_2ZZ_BtoH = 1904,
+ BF1CVT_2ZZ_BtoH = 1905,
+ BF1CVT_ZZ_BtoH = 1906,
+ BF2CVTL = 1907,
+ BF2CVTL2 = 1908,
+ BF2CVTLT_ZZ_BtoH = 1909,
+ BF2CVTL_2ZZ_BtoH = 1910,
+ BF2CVT_2ZZ_BtoH = 1911,
+ BF2CVT_ZZ_BtoH = 1912,
+ BFADD_VG2_M2Z_H = 1913,
+ BFADD_VG4_M4Z_H = 1914,
+ BFADD_ZPmZZ = 1915,
+ BFADD_ZZZ = 1916,
+ BFCLAMP_VG2_2ZZZ_H = 1917,
+ BFCLAMP_VG4_4ZZZ_H = 1918,
+ BFCLAMP_ZZZ = 1919,
+ BFCVT = 1920,
+ BFCVTN = 1921,
+ BFCVTN2 = 1922,
+ BFCVTNT_ZPmZ = 1923,
+ BFCVTNT_ZPzZ_StoH = 1924,
+ BFCVTN_Z2Z_HtoB = 1925,
+ BFCVTN_Z2Z_StoH = 1926,
+ BFCVT_Z2Z_HtoB = 1927,
+ BFCVT_Z2Z_StoH = 1928,
+ BFCVT_ZPmZ = 1929,
+ BFCVT_ZPzZ_StoH = 1930,
+ BFDOT_VG2_M2Z2Z_HtoS = 1931,
+ BFDOT_VG2_M2ZZI_HtoS = 1932,
+ BFDOT_VG2_M2ZZ_HtoS = 1933,
+ BFDOT_VG4_M4Z4Z_HtoS = 1934,
+ BFDOT_VG4_M4ZZI_HtoS = 1935,
+ BFDOT_VG4_M4ZZ_HtoS = 1936,
+ BFDOT_ZZI = 1937,
+ BFDOT_ZZZ = 1938,
+ BFDOTv4bf16 = 1939,
+ BFDOTv8bf16 = 1940,
+ BFMAXNM_VG2_2Z2Z_H = 1941,
+ BFMAXNM_VG2_2ZZ_H = 1942,
+ BFMAXNM_VG4_4Z2Z_H = 1943,
+ BFMAXNM_VG4_4ZZ_H = 1944,
+ BFMAXNM_ZPmZZ = 1945,
+ BFMAX_VG2_2Z2Z_H = 1946,
+ BFMAX_VG2_2ZZ_H = 1947,
+ BFMAX_VG4_4Z2Z_H = 1948,
+ BFMAX_VG4_4ZZ_H = 1949,
+ BFMAX_ZPmZZ = 1950,
+ BFMINNM_VG2_2Z2Z_H = 1951,
+ BFMINNM_VG2_2ZZ_H = 1952,
+ BFMINNM_VG4_4Z2Z_H = 1953,
+ BFMINNM_VG4_4ZZ_H = 1954,
+ BFMINNM_ZPmZZ = 1955,
+ BFMIN_VG2_2Z2Z_H = 1956,
+ BFMIN_VG2_2ZZ_H = 1957,
+ BFMIN_VG4_4Z2Z_H = 1958,
+ BFMIN_VG4_4ZZ_H = 1959,
+ BFMIN_ZPmZZ = 1960,
+ BFMLALB = 1961,
+ BFMLALBIdx = 1962,
+ BFMLALB_ZZZ = 1963,
+ BFMLALB_ZZZI = 1964,
+ BFMLALT = 1965,
+ BFMLALTIdx = 1966,
+ BFMLALT_ZZZ = 1967,
+ BFMLALT_ZZZI = 1968,
+ BFMLAL_MZZI_HtoS = 1969,
+ BFMLAL_MZZ_HtoS = 1970,
+ BFMLAL_VG2_M2Z2Z_HtoS = 1971,
+ BFMLAL_VG2_M2ZZI_HtoS = 1972,
+ BFMLAL_VG2_M2ZZ_HtoS = 1973,
+ BFMLAL_VG4_M4Z4Z_HtoS = 1974,
+ BFMLAL_VG4_M4ZZI_HtoS = 1975,
+ BFMLAL_VG4_M4ZZ_HtoS = 1976,
+ BFMLA_VG2_M2Z2Z = 1977,
+ BFMLA_VG2_M2ZZ = 1978,
+ BFMLA_VG2_M2ZZI = 1979,
+ BFMLA_VG4_M4Z4Z = 1980,
+ BFMLA_VG4_M4ZZ = 1981,
+ BFMLA_VG4_M4ZZI = 1982,
+ BFMLA_ZPmZZ = 1983,
+ BFMLA_ZZZI = 1984,
+ BFMLSLB_ZZZI_S = 1985,
+ BFMLSLB_ZZZ_S = 1986,
+ BFMLSLT_ZZZI_S = 1987,
+ BFMLSLT_ZZZ_S = 1988,
+ BFMLSL_MZZI_HtoS = 1989,
+ BFMLSL_MZZ_HtoS = 1990,
+ BFMLSL_VG2_M2Z2Z_HtoS = 1991,
+ BFMLSL_VG2_M2ZZI_HtoS = 1992,
+ BFMLSL_VG2_M2ZZ_HtoS = 1993,
+ BFMLSL_VG4_M4Z4Z_HtoS = 1994,
+ BFMLSL_VG4_M4ZZI_HtoS = 1995,
+ BFMLSL_VG4_M4ZZ_HtoS = 1996,
+ BFMLS_VG2_M2Z2Z = 1997,
+ BFMLS_VG2_M2ZZ = 1998,
+ BFMLS_VG2_M2ZZI = 1999,
+ BFMLS_VG4_M4Z4Z = 2000,
+ BFMLS_VG4_M4ZZ = 2001,
+ BFMLS_VG4_M4ZZI = 2002,
+ BFMLS_ZPmZZ = 2003,
+ BFMLS_ZZZI = 2004,
+ BFMMLA = 2005,
+ BFMMLA_ZZZ_H = 2006,
+ BFMMLA_ZZZ_HtoS = 2007,
+ BFMOP4A_M2Z2Z_H = 2008,
+ BFMOP4A_M2Z2Z_S = 2009,
+ BFMOP4A_M2ZZ_H = 2010,
+ BFMOP4A_M2ZZ_S = 2011,
+ BFMOP4A_MZ2Z_H = 2012,
+ BFMOP4A_MZ2Z_S = 2013,
+ BFMOP4A_MZZ_H = 2014,
+ BFMOP4A_MZZ_S = 2015,
+ BFMOP4S_M2Z2Z_H = 2016,
+ BFMOP4S_M2Z2Z_S = 2017,
+ BFMOP4S_M2ZZ_H = 2018,
+ BFMOP4S_M2ZZ_S = 2019,
+ BFMOP4S_MZ2Z_H = 2020,
+ BFMOP4S_MZ2Z_S = 2021,
+ BFMOP4S_MZZ_H = 2022,
+ BFMOP4S_MZZ_S = 2023,
+ BFMOPA_MPPZZ = 2024,
+ BFMOPA_MPPZZ_H = 2025,
+ BFMOPS_MPPZZ = 2026,
+ BFMOPS_MPPZZ_H = 2027,
+ BFMUL_2Z2Z = 2028,
+ BFMUL_2ZZ = 2029,
+ BFMUL_4Z4Z = 2030,
+ BFMUL_4ZZ = 2031,
+ BFMUL_ZPmZZ = 2032,
+ BFMUL_ZZZ = 2033,
+ BFMUL_ZZZI = 2034,
+ BFMWri = 2035,
+ BFMXri = 2036,
+ BFSCALE_2Z2Z = 2037,
+ BFSCALE_2ZZ = 2038,
+ BFSCALE_4Z4Z = 2039,
+ BFSCALE_4ZZ = 2040,
+ BFSCALE_ZPZZ_H = 2041,
+ BFSUB_VG2_M2Z_H = 2042,
+ BFSUB_VG4_M4Z_H = 2043,
+ BFSUB_ZPmZZ = 2044,
+ BFSUB_ZZZ = 2045,
+ BFTMOPA_M2ZZZI_HtoH = 2046,
+ BFTMOPA_M2ZZZI_HtoS = 2047,
+ BFVDOT_VG2_M2ZZI_HtoS = 2048,
+ BGRP_ZZZ_B = 2049,
+ BGRP_ZZZ_D = 2050,
+ BGRP_ZZZ_H = 2051,
+ BGRP_ZZZ_S = 2052,
+ BICSWrs = 2053,
+ BICSXrs = 2054,
+ BICS_PPzPP = 2055,
+ BICWrs = 2056,
+ BICXrs = 2057,
+ BIC_PPzPP = 2058,
+ BIC_ZPmZ_B = 2059,
+ BIC_ZPmZ_D = 2060,
+ BIC_ZPmZ_H = 2061,
+ BIC_ZPmZ_S = 2062,
+ BIC_ZZZ = 2063,
+ BICv16i8 = 2064,
+ BICv2i32 = 2065,
+ BICv4i16 = 2066,
+ BICv4i32 = 2067,
+ BICv8i16 = 2068,
+ BICv8i8 = 2069,
+ BIFv16i8 = 2070,
+ BIFv8i8 = 2071,
+ BITv16i8 = 2072,
+ BITv8i8 = 2073,
+ BL = 2074,
+ BLR = 2075,
+ BLRAA = 2076,
+ BLRAAZ = 2077,
+ BLRAB = 2078,
+ BLRABZ = 2079,
+ BMOPA_MPPZZ_S = 2080,
+ BMOPS_MPPZZ_S = 2081,
+ BR = 2082,
+ BRAA = 2083,
+ BRAAZ = 2084,
+ BRAB = 2085,
+ BRABZ = 2086,
+ BRB_IALL = 2087,
+ BRB_INJ = 2088,
+ BRK = 2089,
+ BRKAS_PPzP = 2090,
+ BRKA_PPmP = 2091,
+ BRKA_PPzP = 2092,
+ BRKBS_PPzP = 2093,
+ BRKB_PPmP = 2094,
+ BRKB_PPzP = 2095,
+ BRKNS_PPzP = 2096,
+ BRKN_PPzP = 2097,
+ BRKPAS_PPzPP = 2098,
+ BRKPA_PPzPP = 2099,
+ BRKPBS_PPzPP = 2100,
+ BRKPB_PPzPP = 2101,
+ BSL1N_ZZZZ = 2102,
+ BSL2N_ZZZZ = 2103,
+ BSL_ZZZZ = 2104,
+ BSLv16i8 = 2105,
+ BSLv8i8 = 2106,
+ Bcc = 2107,
+ CADD_ZZI_B = 2108,
+ CADD_ZZI_D = 2109,
+ CADD_ZZI_H = 2110,
+ CADD_ZZI_S = 2111,
+ CASAB = 2112,
+ CASAH = 2113,
+ CASALB = 2114,
+ CASALH = 2115,
+ CASALTX = 2116,
+ CASALW = 2117,
+ CASALX = 2118,
+ CASATX = 2119,
+ CASAW = 2120,
+ CASAX = 2121,
+ CASB = 2122,
+ CASH = 2123,
+ CASLB = 2124,
+ CASLH = 2125,
+ CASLTX = 2126,
+ CASLW = 2127,
+ CASLX = 2128,
+ CASPALTX = 2129,
+ CASPALW = 2130,
+ CASPALX = 2131,
+ CASPATX = 2132,
+ CASPAW = 2133,
+ CASPAX = 2134,
+ CASPLTX = 2135,
+ CASPLW = 2136,
+ CASPLX = 2137,
+ CASPTX = 2138,
+ CASPW = 2139,
+ CASPX = 2140,
+ CASTX = 2141,
+ CASW = 2142,
+ CASX = 2143,
+ CBBEQWrr = 2144,
+ CBBGEWrr = 2145,
+ CBBGTWrr = 2146,
+ CBBHIWrr = 2147,
+ CBBHSWrr = 2148,
+ CBBNEWrr = 2149,
+ CBEQWri = 2150,
+ CBEQWrr = 2151,
+ CBEQXri = 2152,
+ CBEQXrr = 2153,
+ CBGEWrr = 2154,
+ CBGEXrr = 2155,
+ CBGTWri = 2156,
+ CBGTWrr = 2157,
+ CBGTXri = 2158,
+ CBGTXrr = 2159,
+ CBHEQWrr = 2160,
+ CBHGEWrr = 2161,
+ CBHGTWrr = 2162,
+ CBHHIWrr = 2163,
+ CBHHSWrr = 2164,
+ CBHIWri = 2165,
+ CBHIWrr = 2166,
+ CBHIXri = 2167,
+ CBHIXrr = 2168,
+ CBHNEWrr = 2169,
+ CBHSWrr = 2170,
+ CBHSXrr = 2171,
+ CBLOWri = 2172,
+ CBLOXri = 2173,
+ CBLTWri = 2174,
+ CBLTXri = 2175,
+ CBNEWri = 2176,
+ CBNEWrr = 2177,
+ CBNEXri = 2178,
+ CBNEXrr = 2179,
+ CBNZW = 2180,
+ CBNZX = 2181,
+ CBZW = 2182,
+ CBZX = 2183,
+ CCMNWi = 2184,
+ CCMNWr = 2185,
+ CCMNXi = 2186,
+ CCMNXr = 2187,
+ CCMPWi = 2188,
+ CCMPWr = 2189,
+ CCMPXi = 2190,
+ CCMPXr = 2191,
+ CDOT_ZZZI_D = 2192,
+ CDOT_ZZZI_S = 2193,
+ CDOT_ZZZ_D = 2194,
+ CDOT_ZZZ_S = 2195,
+ CFINV = 2196,
+ CHKFEAT = 2197,
+ CLASTA_RPZ_B = 2198,
+ CLASTA_RPZ_D = 2199,
+ CLASTA_RPZ_H = 2200,
+ CLASTA_RPZ_S = 2201,
+ CLASTA_VPZ_B = 2202,
+ CLASTA_VPZ_D = 2203,
+ CLASTA_VPZ_H = 2204,
+ CLASTA_VPZ_S = 2205,
+ CLASTA_ZPZ_B = 2206,
+ CLASTA_ZPZ_D = 2207,
+ CLASTA_ZPZ_H = 2208,
+ CLASTA_ZPZ_S = 2209,
+ CLASTB_RPZ_B = 2210,
+ CLASTB_RPZ_D = 2211,
+ CLASTB_RPZ_H = 2212,
+ CLASTB_RPZ_S = 2213,
+ CLASTB_VPZ_B = 2214,
+ CLASTB_VPZ_D = 2215,
+ CLASTB_VPZ_H = 2216,
+ CLASTB_VPZ_S = 2217,
+ CLASTB_ZPZ_B = 2218,
+ CLASTB_ZPZ_D = 2219,
+ CLASTB_ZPZ_H = 2220,
+ CLASTB_ZPZ_S = 2221,
+ CLREX = 2222,
+ CLSWr = 2223,
+ CLSXr = 2224,
+ CLS_ZPmZ_B = 2225,
+ CLS_ZPmZ_D = 2226,
+ CLS_ZPmZ_H = 2227,
+ CLS_ZPmZ_S = 2228,
+ CLS_ZPzZ_B = 2229,
+ CLS_ZPzZ_D = 2230,
+ CLS_ZPzZ_H = 2231,
+ CLS_ZPzZ_S = 2232,
+ CLSv16i8 = 2233,
+ CLSv2i32 = 2234,
+ CLSv4i16 = 2235,
+ CLSv4i32 = 2236,
+ CLSv8i16 = 2237,
+ CLSv8i8 = 2238,
+ CLZWr = 2239,
+ CLZXr = 2240,
+ CLZ_ZPmZ_B = 2241,
+ CLZ_ZPmZ_D = 2242,
+ CLZ_ZPmZ_H = 2243,
+ CLZ_ZPmZ_S = 2244,
+ CLZ_ZPzZ_B = 2245,
+ CLZ_ZPzZ_D = 2246,
+ CLZ_ZPzZ_H = 2247,
+ CLZ_ZPzZ_S = 2248,
+ CLZv16i8 = 2249,
+ CLZv2i32 = 2250,
+ CLZv4i16 = 2251,
+ CLZv4i32 = 2252,
+ CLZv8i16 = 2253,
+ CLZv8i8 = 2254,
+ CMEQv16i8 = 2255,
+ CMEQv16i8rz = 2256,
+ CMEQv1i64 = 2257,
+ CMEQv1i64rz = 2258,
+ CMEQv2i32 = 2259,
+ CMEQv2i32rz = 2260,
+ CMEQv2i64 = 2261,
+ CMEQv2i64rz = 2262,
+ CMEQv4i16 = 2263,
+ CMEQv4i16rz = 2264,
+ CMEQv4i32 = 2265,
+ CMEQv4i32rz = 2266,
+ CMEQv8i16 = 2267,
+ CMEQv8i16rz = 2268,
+ CMEQv8i8 = 2269,
+ CMEQv8i8rz = 2270,
+ CMGEv16i8 = 2271,
+ CMGEv16i8rz = 2272,
+ CMGEv1i64 = 2273,
+ CMGEv1i64rz = 2274,
+ CMGEv2i32 = 2275,
+ CMGEv2i32rz = 2276,
+ CMGEv2i64 = 2277,
+ CMGEv2i64rz = 2278,
+ CMGEv4i16 = 2279,
+ CMGEv4i16rz = 2280,
+ CMGEv4i32 = 2281,
+ CMGEv4i32rz = 2282,
+ CMGEv8i16 = 2283,
+ CMGEv8i16rz = 2284,
+ CMGEv8i8 = 2285,
+ CMGEv8i8rz = 2286,
+ CMGTv16i8 = 2287,
+ CMGTv16i8rz = 2288,
+ CMGTv1i64 = 2289,
+ CMGTv1i64rz = 2290,
+ CMGTv2i32 = 2291,
+ CMGTv2i32rz = 2292,
+ CMGTv2i64 = 2293,
+ CMGTv2i64rz = 2294,
+ CMGTv4i16 = 2295,
+ CMGTv4i16rz = 2296,
+ CMGTv4i32 = 2297,
+ CMGTv4i32rz = 2298,
+ CMGTv8i16 = 2299,
+ CMGTv8i16rz = 2300,
+ CMGTv8i8 = 2301,
+ CMGTv8i8rz = 2302,
+ CMHIv16i8 = 2303,
+ CMHIv1i64 = 2304,
+ CMHIv2i32 = 2305,
+ CMHIv2i64 = 2306,
+ CMHIv4i16 = 2307,
+ CMHIv4i32 = 2308,
+ CMHIv8i16 = 2309,
+ CMHIv8i8 = 2310,
+ CMHSv16i8 = 2311,
+ CMHSv1i64 = 2312,
+ CMHSv2i32 = 2313,
+ CMHSv2i64 = 2314,
+ CMHSv4i16 = 2315,
+ CMHSv4i32 = 2316,
+ CMHSv8i16 = 2317,
+ CMHSv8i8 = 2318,
+ CMLA_ZZZI_H = 2319,
+ CMLA_ZZZI_S = 2320,
+ CMLA_ZZZ_B = 2321,
+ CMLA_ZZZ_D = 2322,
+ CMLA_ZZZ_H = 2323,
+ CMLA_ZZZ_S = 2324,
+ CMLEv16i8rz = 2325,
+ CMLEv1i64rz = 2326,
+ CMLEv2i32rz = 2327,
+ CMLEv2i64rz = 2328,
+ CMLEv4i16rz = 2329,
+ CMLEv4i32rz = 2330,
+ CMLEv8i16rz = 2331,
+ CMLEv8i8rz = 2332,
+ CMLTv16i8rz = 2333,
+ CMLTv1i64rz = 2334,
+ CMLTv2i32rz = 2335,
+ CMLTv2i64rz = 2336,
+ CMLTv4i16rz = 2337,
+ CMLTv4i32rz = 2338,
+ CMLTv8i16rz = 2339,
+ CMLTv8i8rz = 2340,
+ CMPEQ_PPzZI_B = 2341,
+ CMPEQ_PPzZI_D = 2342,
+ CMPEQ_PPzZI_H = 2343,
+ CMPEQ_PPzZI_S = 2344,
+ CMPEQ_PPzZZ_B = 2345,
+ CMPEQ_PPzZZ_D = 2346,
+ CMPEQ_PPzZZ_H = 2347,
+ CMPEQ_PPzZZ_S = 2348,
+ CMPEQ_WIDE_PPzZZ_B = 2349,
+ CMPEQ_WIDE_PPzZZ_H = 2350,
+ CMPEQ_WIDE_PPzZZ_S = 2351,
+ CMPGE_PPzZI_B = 2352,
+ CMPGE_PPzZI_D = 2353,
+ CMPGE_PPzZI_H = 2354,
+ CMPGE_PPzZI_S = 2355,
+ CMPGE_PPzZZ_B = 2356,
+ CMPGE_PPzZZ_D = 2357,
+ CMPGE_PPzZZ_H = 2358,
+ CMPGE_PPzZZ_S = 2359,
+ CMPGE_WIDE_PPzZZ_B = 2360,
+ CMPGE_WIDE_PPzZZ_H = 2361,
+ CMPGE_WIDE_PPzZZ_S = 2362,
+ CMPGT_PPzZI_B = 2363,
+ CMPGT_PPzZI_D = 2364,
+ CMPGT_PPzZI_H = 2365,
+ CMPGT_PPzZI_S = 2366,
+ CMPGT_PPzZZ_B = 2367,
+ CMPGT_PPzZZ_D = 2368,
+ CMPGT_PPzZZ_H = 2369,
+ CMPGT_PPzZZ_S = 2370,
+ CMPGT_WIDE_PPzZZ_B = 2371,
+ CMPGT_WIDE_PPzZZ_H = 2372,
+ CMPGT_WIDE_PPzZZ_S = 2373,
+ CMPHI_PPzZI_B = 2374,
+ CMPHI_PPzZI_D = 2375,
+ CMPHI_PPzZI_H = 2376,
+ CMPHI_PPzZI_S = 2377,
+ CMPHI_PPzZZ_B = 2378,
+ CMPHI_PPzZZ_D = 2379,
+ CMPHI_PPzZZ_H = 2380,
+ CMPHI_PPzZZ_S = 2381,
+ CMPHI_WIDE_PPzZZ_B = 2382,
+ CMPHI_WIDE_PPzZZ_H = 2383,
+ CMPHI_WIDE_PPzZZ_S = 2384,
+ CMPHS_PPzZI_B = 2385,
+ CMPHS_PPzZI_D = 2386,
+ CMPHS_PPzZI_H = 2387,
+ CMPHS_PPzZI_S = 2388,
+ CMPHS_PPzZZ_B = 2389,
+ CMPHS_PPzZZ_D = 2390,
+ CMPHS_PPzZZ_H = 2391,
+ CMPHS_PPzZZ_S = 2392,
+ CMPHS_WIDE_PPzZZ_B = 2393,
+ CMPHS_WIDE_PPzZZ_H = 2394,
+ CMPHS_WIDE_PPzZZ_S = 2395,
+ CMPLE_PPzZI_B = 2396,
+ CMPLE_PPzZI_D = 2397,
+ CMPLE_PPzZI_H = 2398,
+ CMPLE_PPzZI_S = 2399,
+ CMPLE_WIDE_PPzZZ_B = 2400,
+ CMPLE_WIDE_PPzZZ_H = 2401,
+ CMPLE_WIDE_PPzZZ_S = 2402,
+ CMPLO_PPzZI_B = 2403,
+ CMPLO_PPzZI_D = 2404,
+ CMPLO_PPzZI_H = 2405,
+ CMPLO_PPzZI_S = 2406,
+ CMPLO_WIDE_PPzZZ_B = 2407,
+ CMPLO_WIDE_PPzZZ_H = 2408,
+ CMPLO_WIDE_PPzZZ_S = 2409,
+ CMPLS_PPzZI_B = 2410,
+ CMPLS_PPzZI_D = 2411,
+ CMPLS_PPzZI_H = 2412,
+ CMPLS_PPzZI_S = 2413,
+ CMPLS_WIDE_PPzZZ_B = 2414,
+ CMPLS_WIDE_PPzZZ_H = 2415,
+ CMPLS_WIDE_PPzZZ_S = 2416,
+ CMPLT_PPzZI_B = 2417,
+ CMPLT_PPzZI_D = 2418,
+ CMPLT_PPzZI_H = 2419,
+ CMPLT_PPzZI_S = 2420,
+ CMPLT_WIDE_PPzZZ_B = 2421,
+ CMPLT_WIDE_PPzZZ_H = 2422,
+ CMPLT_WIDE_PPzZZ_S = 2423,
+ CMPNE_PPzZI_B = 2424,
+ CMPNE_PPzZI_D = 2425,
+ CMPNE_PPzZI_H = 2426,
+ CMPNE_PPzZI_S = 2427,
+ CMPNE_PPzZZ_B = 2428,
+ CMPNE_PPzZZ_D = 2429,
+ CMPNE_PPzZZ_H = 2430,
+ CMPNE_PPzZZ_S = 2431,
+ CMPNE_WIDE_PPzZZ_B = 2432,
+ CMPNE_WIDE_PPzZZ_H = 2433,
+ CMPNE_WIDE_PPzZZ_S = 2434,
+ CMTSTv16i8 = 2435,
+ CMTSTv1i64 = 2436,
+ CMTSTv2i32 = 2437,
+ CMTSTv2i64 = 2438,
+ CMTSTv4i16 = 2439,
+ CMTSTv4i32 = 2440,
+ CMTSTv8i16 = 2441,
+ CMTSTv8i8 = 2442,
+ CNOT_ZPmZ_B = 2443,
+ CNOT_ZPmZ_D = 2444,
+ CNOT_ZPmZ_H = 2445,
+ CNOT_ZPmZ_S = 2446,
+ CNOT_ZPzZ_B = 2447,
+ CNOT_ZPzZ_D = 2448,
+ CNOT_ZPzZ_H = 2449,
+ CNOT_ZPzZ_S = 2450,
+ CNTB_XPiI = 2451,
+ CNTD_XPiI = 2452,
+ CNTH_XPiI = 2453,
+ CNTP_XCI_B = 2454,
+ CNTP_XCI_D = 2455,
+ CNTP_XCI_H = 2456,
+ CNTP_XCI_S = 2457,
+ CNTP_XPP_B = 2458,
+ CNTP_XPP_D = 2459,
+ CNTP_XPP_H = 2460,
+ CNTP_XPP_S = 2461,
+ CNTW_XPiI = 2462,
+ CNTWr = 2463,
+ CNTXr = 2464,
+ CNT_ZPmZ_B = 2465,
+ CNT_ZPmZ_D = 2466,
+ CNT_ZPmZ_H = 2467,
+ CNT_ZPmZ_S = 2468,
+ CNT_ZPzZ_B = 2469,
+ CNT_ZPzZ_D = 2470,
+ CNT_ZPzZ_H = 2471,
+ CNT_ZPzZ_S = 2472,
+ CNTv16i8 = 2473,
+ CNTv8i8 = 2474,
+ COMPACT_ZPZ_B = 2475,
+ COMPACT_ZPZ_D = 2476,
+ COMPACT_ZPZ_H = 2477,
+ COMPACT_ZPZ_S = 2478,
+ CPYE = 2479,
+ CPYEN = 2480,
+ CPYERN = 2481,
+ CPYERT = 2482,
+ CPYERTN = 2483,
+ CPYERTRN = 2484,
+ CPYERTWN = 2485,
+ CPYET = 2486,
+ CPYETN = 2487,
+ CPYETRN = 2488,
+ CPYETWN = 2489,
+ CPYEWN = 2490,
+ CPYEWT = 2491,
+ CPYEWTN = 2492,
+ CPYEWTRN = 2493,
+ CPYEWTWN = 2494,
+ CPYFE = 2495,
+ CPYFEN = 2496,
+ CPYFERN = 2497,
+ CPYFERT = 2498,
+ CPYFERTN = 2499,
+ CPYFERTRN = 2500,
+ CPYFERTWN = 2501,
+ CPYFET = 2502,
+ CPYFETN = 2503,
+ CPYFETRN = 2504,
+ CPYFETWN = 2505,
+ CPYFEWN = 2506,
+ CPYFEWT = 2507,
+ CPYFEWTN = 2508,
+ CPYFEWTRN = 2509,
+ CPYFEWTWN = 2510,
+ CPYFM = 2511,
+ CPYFMN = 2512,
+ CPYFMRN = 2513,
+ CPYFMRT = 2514,
+ CPYFMRTN = 2515,
+ CPYFMRTRN = 2516,
+ CPYFMRTWN = 2517,
+ CPYFMT = 2518,
+ CPYFMTN = 2519,
+ CPYFMTRN = 2520,
+ CPYFMTWN = 2521,
+ CPYFMWN = 2522,
+ CPYFMWT = 2523,
+ CPYFMWTN = 2524,
+ CPYFMWTRN = 2525,
+ CPYFMWTWN = 2526,
+ CPYFP = 2527,
+ CPYFPN = 2528,
+ CPYFPRN = 2529,
+ CPYFPRT = 2530,
+ CPYFPRTN = 2531,
+ CPYFPRTRN = 2532,
+ CPYFPRTWN = 2533,
+ CPYFPT = 2534,
+ CPYFPTN = 2535,
+ CPYFPTRN = 2536,
+ CPYFPTWN = 2537,
+ CPYFPWN = 2538,
+ CPYFPWT = 2539,
+ CPYFPWTN = 2540,
+ CPYFPWTRN = 2541,
+ CPYFPWTWN = 2542,
+ CPYM = 2543,
+ CPYMN = 2544,
+ CPYMRN = 2545,
+ CPYMRT = 2546,
+ CPYMRTN = 2547,
+ CPYMRTRN = 2548,
+ CPYMRTWN = 2549,
+ CPYMT = 2550,
+ CPYMTN = 2551,
+ CPYMTRN = 2552,
+ CPYMTWN = 2553,
+ CPYMWN = 2554,
+ CPYMWT = 2555,
+ CPYMWTN = 2556,
+ CPYMWTRN = 2557,
+ CPYMWTWN = 2558,
+ CPYP = 2559,
+ CPYPN = 2560,
+ CPYPRN = 2561,
+ CPYPRT = 2562,
+ CPYPRTN = 2563,
+ CPYPRTRN = 2564,
+ CPYPRTWN = 2565,
+ CPYPT = 2566,
+ CPYPTN = 2567,
+ CPYPTRN = 2568,
+ CPYPTWN = 2569,
+ CPYPWN = 2570,
+ CPYPWT = 2571,
+ CPYPWTN = 2572,
+ CPYPWTRN = 2573,
+ CPYPWTWN = 2574,
+ CPY_ZPmI_B = 2575,
+ CPY_ZPmI_D = 2576,
+ CPY_ZPmI_H = 2577,
+ CPY_ZPmI_S = 2578,
+ CPY_ZPmR_B = 2579,
+ CPY_ZPmR_D = 2580,
+ CPY_ZPmR_H = 2581,
+ CPY_ZPmR_S = 2582,
+ CPY_ZPmV_B = 2583,
+ CPY_ZPmV_D = 2584,
+ CPY_ZPmV_H = 2585,
+ CPY_ZPmV_S = 2586,
+ CPY_ZPzI_B = 2587,
+ CPY_ZPzI_D = 2588,
+ CPY_ZPzI_H = 2589,
+ CPY_ZPzI_S = 2590,
+ CRC32Brr = 2591,
+ CRC32CBrr = 2592,
+ CRC32CHrr = 2593,
+ CRC32CWrr = 2594,
+ CRC32CXrr = 2595,
+ CRC32Hrr = 2596,
+ CRC32Wrr = 2597,
+ CRC32Xrr = 2598,
+ CSELWr = 2599,
+ CSELXr = 2600,
+ CSINCWr = 2601,
+ CSINCXr = 2602,
+ CSINVWr = 2603,
+ CSINVXr = 2604,
+ CSNEGWr = 2605,
+ CSNEGXr = 2606,
+ CTERMEQ_WW = 2607,
+ CTERMEQ_XX = 2608,
+ CTERMNE_WW = 2609,
+ CTERMNE_XX = 2610,
+ CTZWr = 2611,
+ CTZXr = 2612,
+ DCPS1 = 2613,
+ DCPS2 = 2614,
+ DCPS3 = 2615,
+ DECB_XPiI = 2616,
+ DECD_XPiI = 2617,
+ DECD_ZPiI = 2618,
+ DECH_XPiI = 2619,
+ DECH_ZPiI = 2620,
+ DECP_XP_B = 2621,
+ DECP_XP_D = 2622,
+ DECP_XP_H = 2623,
+ DECP_XP_S = 2624,
+ DECP_ZP_D = 2625,
+ DECP_ZP_H = 2626,
+ DECP_ZP_S = 2627,
+ DECW_XPiI = 2628,
+ DECW_ZPiI = 2629,
+ DMB = 2630,
+ DRPS = 2631,
+ DSB = 2632,
+ DSBnXS = 2633,
+ DUPM_ZI = 2634,
+ DUPQ_ZZI_B = 2635,
+ DUPQ_ZZI_D = 2636,
+ DUPQ_ZZI_H = 2637,
+ DUPQ_ZZI_S = 2638,
+ DUP_ZI_B = 2639,
+ DUP_ZI_D = 2640,
+ DUP_ZI_H = 2641,
+ DUP_ZI_S = 2642,
+ DUP_ZR_B = 2643,
+ DUP_ZR_D = 2644,
+ DUP_ZR_H = 2645,
+ DUP_ZR_S = 2646,
+ DUP_ZZI_B = 2647,
+ DUP_ZZI_D = 2648,
+ DUP_ZZI_H = 2649,
+ DUP_ZZI_Q = 2650,
+ DUP_ZZI_S = 2651,
+ DUPi16 = 2652,
+ DUPi32 = 2653,
+ DUPi64 = 2654,
+ DUPi8 = 2655,
+ DUPv16i8gpr = 2656,
+ DUPv16i8lane = 2657,
+ DUPv2i32gpr = 2658,
+ DUPv2i32lane = 2659,
+ DUPv2i64gpr = 2660,
+ DUPv2i64lane = 2661,
+ DUPv4i16gpr = 2662,
+ DUPv4i16lane = 2663,
+ DUPv4i32gpr = 2664,
+ DUPv4i32lane = 2665,
+ DUPv8i16gpr = 2666,
+ DUPv8i16lane = 2667,
+ DUPv8i8gpr = 2668,
+ DUPv8i8lane = 2669,
+ EONWrs = 2670,
+ EONXrs = 2671,
+ EOR3 = 2672,
+ EOR3_ZZZZ = 2673,
+ EORBT_ZZZ_B = 2674,
+ EORBT_ZZZ_D = 2675,
+ EORBT_ZZZ_H = 2676,
+ EORBT_ZZZ_S = 2677,
+ EORQV_VPZ_B = 2678,
+ EORQV_VPZ_D = 2679,
+ EORQV_VPZ_H = 2680,
+ EORQV_VPZ_S = 2681,
+ EORS_PPzPP = 2682,
+ EORTB_ZZZ_B = 2683,
+ EORTB_ZZZ_D = 2684,
+ EORTB_ZZZ_H = 2685,
+ EORTB_ZZZ_S = 2686,
+ EORV_VPZ_B = 2687,
+ EORV_VPZ_D = 2688,
+ EORV_VPZ_H = 2689,
+ EORV_VPZ_S = 2690,
+ EORWri = 2691,
+ EORWrs = 2692,
+ EORXri = 2693,
+ EORXrs = 2694,
+ EOR_PPzPP = 2695,
+ EOR_ZI = 2696,
+ EOR_ZPmZ_B = 2697,
+ EOR_ZPmZ_D = 2698,
+ EOR_ZPmZ_H = 2699,
+ EOR_ZPmZ_S = 2700,
+ EOR_ZZZ = 2701,
+ EORv16i8 = 2702,
+ EORv8i8 = 2703,
+ ERET = 2704,
+ ERETAA = 2705,
+ ERETAB = 2706,
+ EXPAND_ZPZ_B = 2707,
+ EXPAND_ZPZ_D = 2708,
+ EXPAND_ZPZ_H = 2709,
+ EXPAND_ZPZ_S = 2710,
+ EXTQ_ZZI = 2711,
+ EXTRACT_ZPMXI_H_B = 2712,
+ EXTRACT_ZPMXI_H_D = 2713,
+ EXTRACT_ZPMXI_H_H = 2714,
+ EXTRACT_ZPMXI_H_Q = 2715,
+ EXTRACT_ZPMXI_H_S = 2716,
+ EXTRACT_ZPMXI_V_B = 2717,
+ EXTRACT_ZPMXI_V_D = 2718,
+ EXTRACT_ZPMXI_V_H = 2719,
+ EXTRACT_ZPMXI_V_Q = 2720,
+ EXTRACT_ZPMXI_V_S = 2721,
+ EXTRWrri = 2722,
+ EXTRXrri = 2723,
+ EXT_ZZI = 2724,
+ EXT_ZZI_B = 2725,
+ EXTv16i8 = 2726,
+ EXTv8i8 = 2727,
+ F1CVTL = 2728,
+ F1CVTL2 = 2729,
+ F1CVTLT_ZZ_BtoH = 2730,
+ F1CVTL_2ZZ_BtoH = 2731,
+ F1CVT_2ZZ_BtoH = 2732,
+ F1CVT_ZZ_BtoH = 2733,
+ F2CVTL = 2734,
+ F2CVTL2 = 2735,
+ F2CVTLT_ZZ_BtoH = 2736,
+ F2CVTL_2ZZ_BtoH = 2737,
+ F2CVT_2ZZ_BtoH = 2738,
+ F2CVT_ZZ_BtoH = 2739,
+ FABD16 = 2740,
+ FABD32 = 2741,
+ FABD64 = 2742,
+ FABD_ZPmZ_D = 2743,
+ FABD_ZPmZ_H = 2744,
+ FABD_ZPmZ_S = 2745,
+ FABDv2f32 = 2746,
+ FABDv2f64 = 2747,
+ FABDv4f16 = 2748,
+ FABDv4f32 = 2749,
+ FABDv8f16 = 2750,
+ FABSDr = 2751,
+ FABSHr = 2752,
+ FABSSr = 2753,
+ FABS_ZPmZ_D = 2754,
+ FABS_ZPmZ_H = 2755,
+ FABS_ZPmZ_S = 2756,
+ FABS_ZPzZ_D = 2757,
+ FABS_ZPzZ_H = 2758,
+ FABS_ZPzZ_S = 2759,
+ FABSv2f32 = 2760,
+ FABSv2f64 = 2761,
+ FABSv4f16 = 2762,
+ FABSv4f32 = 2763,
+ FABSv8f16 = 2764,
+ FACGE16 = 2765,
+ FACGE32 = 2766,
+ FACGE64 = 2767,
+ FACGE_PPzZZ_D = 2768,
+ FACGE_PPzZZ_H = 2769,
+ FACGE_PPzZZ_S = 2770,
+ FACGEv2f32 = 2771,
+ FACGEv2f64 = 2772,
+ FACGEv4f16 = 2773,
+ FACGEv4f32 = 2774,
+ FACGEv8f16 = 2775,
+ FACGT16 = 2776,
+ FACGT32 = 2777,
+ FACGT64 = 2778,
+ FACGT_PPzZZ_D = 2779,
+ FACGT_PPzZZ_H = 2780,
+ FACGT_PPzZZ_S = 2781,
+ FACGTv2f32 = 2782,
+ FACGTv2f64 = 2783,
+ FACGTv4f16 = 2784,
+ FACGTv4f32 = 2785,
+ FACGTv8f16 = 2786,
+ FADDA_VPZ_D = 2787,
+ FADDA_VPZ_H = 2788,
+ FADDA_VPZ_S = 2789,
+ FADDDrr = 2790,
+ FADDHrr = 2791,
+ FADDP_ZPmZZ_D = 2792,
+ FADDP_ZPmZZ_H = 2793,
+ FADDP_ZPmZZ_S = 2794,
+ FADDPv2f32 = 2795,
+ FADDPv2f64 = 2796,
+ FADDPv2i16p = 2797,
+ FADDPv2i32p = 2798,
+ FADDPv2i64p = 2799,
+ FADDPv4f16 = 2800,
+ FADDPv4f32 = 2801,
+ FADDPv8f16 = 2802,
+ FADDQV_D = 2803,
+ FADDQV_H = 2804,
+ FADDQV_S = 2805,
+ FADDSrr = 2806,
+ FADDV_VPZ_D = 2807,
+ FADDV_VPZ_H = 2808,
+ FADDV_VPZ_S = 2809,
+ FADD_VG2_M2Z_D = 2810,
+ FADD_VG2_M2Z_H = 2811,
+ FADD_VG2_M2Z_S = 2812,
+ FADD_VG4_M4Z_D = 2813,
+ FADD_VG4_M4Z_H = 2814,
+ FADD_VG4_M4Z_S = 2815,
+ FADD_ZPmI_D = 2816,
+ FADD_ZPmI_H = 2817,
+ FADD_ZPmI_S = 2818,
+ FADD_ZPmZ_D = 2819,
+ FADD_ZPmZ_H = 2820,
+ FADD_ZPmZ_S = 2821,
+ FADD_ZZZ_D = 2822,
+ FADD_ZZZ_H = 2823,
+ FADD_ZZZ_S = 2824,
+ FADDv2f32 = 2825,
+ FADDv2f64 = 2826,
+ FADDv4f16 = 2827,
+ FADDv4f32 = 2828,
+ FADDv8f16 = 2829,
+ FAMAX_2Z2Z_D = 2830,
+ FAMAX_2Z2Z_H = 2831,
+ FAMAX_2Z2Z_S = 2832,
+ FAMAX_4Z4Z_D = 2833,
+ FAMAX_4Z4Z_H = 2834,
+ FAMAX_4Z4Z_S = 2835,
+ FAMAX_ZPmZ_D = 2836,
+ FAMAX_ZPmZ_H = 2837,
+ FAMAX_ZPmZ_S = 2838,
+ FAMAXv2f32 = 2839,
+ FAMAXv2f64 = 2840,
+ FAMAXv4f16 = 2841,
+ FAMAXv4f32 = 2842,
+ FAMAXv8f16 = 2843,
+ FAMIN_2Z2Z_D = 2844,
+ FAMIN_2Z2Z_H = 2845,
+ FAMIN_2Z2Z_S = 2846,
+ FAMIN_4Z4Z_D = 2847,
+ FAMIN_4Z4Z_H = 2848,
+ FAMIN_4Z4Z_S = 2849,
+ FAMIN_ZPmZ_D = 2850,
+ FAMIN_ZPmZ_H = 2851,
+ FAMIN_ZPmZ_S = 2852,
+ FAMINv2f32 = 2853,
+ FAMINv2f64 = 2854,
+ FAMINv4f16 = 2855,
+ FAMINv4f32 = 2856,
+ FAMINv8f16 = 2857,
+ FCADD_ZPmZ_D = 2858,
+ FCADD_ZPmZ_H = 2859,
+ FCADD_ZPmZ_S = 2860,
+ FCADDv2f32 = 2861,
+ FCADDv2f64 = 2862,
+ FCADDv4f16 = 2863,
+ FCADDv4f32 = 2864,
+ FCADDv8f16 = 2865,
+ FCCMPDrr = 2866,
+ FCCMPEDrr = 2867,
+ FCCMPEHrr = 2868,
+ FCCMPESrr = 2869,
+ FCCMPHrr = 2870,
+ FCCMPSrr = 2871,
+ FCLAMP_VG2_2Z2Z_D = 2872,
+ FCLAMP_VG2_2Z2Z_H = 2873,
+ FCLAMP_VG2_2Z2Z_S = 2874,
+ FCLAMP_VG4_4Z4Z_D = 2875,
+ FCLAMP_VG4_4Z4Z_H = 2876,
+ FCLAMP_VG4_4Z4Z_S = 2877,
+ FCLAMP_ZZZ_D = 2878,
+ FCLAMP_ZZZ_H = 2879,
+ FCLAMP_ZZZ_S = 2880,
+ FCMEQ16 = 2881,
+ FCMEQ32 = 2882,
+ FCMEQ64 = 2883,
+ FCMEQ_PPzZ0_D = 2884,
+ FCMEQ_PPzZ0_H = 2885,
+ FCMEQ_PPzZ0_S = 2886,
+ FCMEQ_PPzZZ_D = 2887,
+ FCMEQ_PPzZZ_H = 2888,
+ FCMEQ_PPzZZ_S = 2889,
+ FCMEQv1i16rz = 2890,
+ FCMEQv1i32rz = 2891,
+ FCMEQv1i64rz = 2892,
+ FCMEQv2f32 = 2893,
+ FCMEQv2f64 = 2894,
+ FCMEQv2i32rz = 2895,
+ FCMEQv2i64rz = 2896,
+ FCMEQv4f16 = 2897,
+ FCMEQv4f32 = 2898,
+ FCMEQv4i16rz = 2899,
+ FCMEQv4i32rz = 2900,
+ FCMEQv8f16 = 2901,
+ FCMEQv8i16rz = 2902,
+ FCMGE16 = 2903,
+ FCMGE32 = 2904,
+ FCMGE64 = 2905,
+ FCMGE_PPzZ0_D = 2906,
+ FCMGE_PPzZ0_H = 2907,
+ FCMGE_PPzZ0_S = 2908,
+ FCMGE_PPzZZ_D = 2909,
+ FCMGE_PPzZZ_H = 2910,
+ FCMGE_PPzZZ_S = 2911,
+ FCMGEv1i16rz = 2912,
+ FCMGEv1i32rz = 2913,
+ FCMGEv1i64rz = 2914,
+ FCMGEv2f32 = 2915,
+ FCMGEv2f64 = 2916,
+ FCMGEv2i32rz = 2917,
+ FCMGEv2i64rz = 2918,
+ FCMGEv4f16 = 2919,
+ FCMGEv4f32 = 2920,
+ FCMGEv4i16rz = 2921,
+ FCMGEv4i32rz = 2922,
+ FCMGEv8f16 = 2923,
+ FCMGEv8i16rz = 2924,
+ FCMGT16 = 2925,
+ FCMGT32 = 2926,
+ FCMGT64 = 2927,
+ FCMGT_PPzZ0_D = 2928,
+ FCMGT_PPzZ0_H = 2929,
+ FCMGT_PPzZ0_S = 2930,
+ FCMGT_PPzZZ_D = 2931,
+ FCMGT_PPzZZ_H = 2932,
+ FCMGT_PPzZZ_S = 2933,
+ FCMGTv1i16rz = 2934,
+ FCMGTv1i32rz = 2935,
+ FCMGTv1i64rz = 2936,
+ FCMGTv2f32 = 2937,
+ FCMGTv2f64 = 2938,
+ FCMGTv2i32rz = 2939,
+ FCMGTv2i64rz = 2940,
+ FCMGTv4f16 = 2941,
+ FCMGTv4f32 = 2942,
+ FCMGTv4i16rz = 2943,
+ FCMGTv4i32rz = 2944,
+ FCMGTv8f16 = 2945,
+ FCMGTv8i16rz = 2946,
+ FCMLA_ZPmZZ_D = 2947,
+ FCMLA_ZPmZZ_H = 2948,
+ FCMLA_ZPmZZ_S = 2949,
+ FCMLA_ZZZI_H = 2950,
+ FCMLA_ZZZI_S = 2951,
+ FCMLAv2f32 = 2952,
+ FCMLAv2f64 = 2953,
+ FCMLAv4f16 = 2954,
+ FCMLAv4f16_indexed = 2955,
+ FCMLAv4f32 = 2956,
+ FCMLAv4f32_indexed = 2957,
+ FCMLAv8f16 = 2958,
+ FCMLAv8f16_indexed = 2959,
+ FCMLE_PPzZ0_D = 2960,
+ FCMLE_PPzZ0_H = 2961,
+ FCMLE_PPzZ0_S = 2962,
+ FCMLEv1i16rz = 2963,
+ FCMLEv1i32rz = 2964,
+ FCMLEv1i64rz = 2965,
+ FCMLEv2i32rz = 2966,
+ FCMLEv2i64rz = 2967,
+ FCMLEv4i16rz = 2968,
+ FCMLEv4i32rz = 2969,
+ FCMLEv8i16rz = 2970,
+ FCMLT_PPzZ0_D = 2971,
+ FCMLT_PPzZ0_H = 2972,
+ FCMLT_PPzZ0_S = 2973,
+ FCMLTv1i16rz = 2974,
+ FCMLTv1i32rz = 2975,
+ FCMLTv1i64rz = 2976,
+ FCMLTv2i32rz = 2977,
+ FCMLTv2i64rz = 2978,
+ FCMLTv4i16rz = 2979,
+ FCMLTv4i32rz = 2980,
+ FCMLTv8i16rz = 2981,
+ FCMNE_PPzZ0_D = 2982,
+ FCMNE_PPzZ0_H = 2983,
+ FCMNE_PPzZ0_S = 2984,
+ FCMNE_PPzZZ_D = 2985,
+ FCMNE_PPzZZ_H = 2986,
+ FCMNE_PPzZZ_S = 2987,
+ FCMPDri = 2988,
+ FCMPDrr = 2989,
+ FCMPEDri = 2990,
+ FCMPEDrr = 2991,
+ FCMPEHri = 2992,
+ FCMPEHrr = 2993,
+ FCMPESri = 2994,
+ FCMPESrr = 2995,
+ FCMPHri = 2996,
+ FCMPHrr = 2997,
+ FCMPSri = 2998,
+ FCMPSrr = 2999,
+ FCMUO_PPzZZ_D = 3000,
+ FCMUO_PPzZZ_H = 3001,
+ FCMUO_PPzZZ_S = 3002,
+ FCPY_ZPmI_D = 3003,
+ FCPY_ZPmI_H = 3004,
+ FCPY_ZPmI_S = 3005,
+ FCSELDrrr = 3006,
+ FCSELHrrr = 3007,
+ FCSELSrrr = 3008,
+ FCVTASDHr = 3009,
+ FCVTASDSr = 3010,
+ FCVTASSDr = 3011,
+ FCVTASSHr = 3012,
+ FCVTASUWDr = 3013,
+ FCVTASUWHr = 3014,
+ FCVTASUWSr = 3015,
+ FCVTASUXDr = 3016,
+ FCVTASUXHr = 3017,
+ FCVTASUXSr = 3018,
+ FCVTASv1f16 = 3019,
+ FCVTASv1i32 = 3020,
+ FCVTASv1i64 = 3021,
+ FCVTASv2f32 = 3022,
+ FCVTASv2f64 = 3023,
+ FCVTASv4f16 = 3024,
+ FCVTASv4f32 = 3025,
+ FCVTASv8f16 = 3026,
+ FCVTAUDHr = 3027,
+ FCVTAUDSr = 3028,
+ FCVTAUSDr = 3029,
+ FCVTAUSHr = 3030,
+ FCVTAUUWDr = 3031,
+ FCVTAUUWHr = 3032,
+ FCVTAUUWSr = 3033,
+ FCVTAUUXDr = 3034,
+ FCVTAUUXHr = 3035,
+ FCVTAUUXSr = 3036,
+ FCVTAUv1f16 = 3037,
+ FCVTAUv1i32 = 3038,
+ FCVTAUv1i64 = 3039,
+ FCVTAUv2f32 = 3040,
+ FCVTAUv2f64 = 3041,
+ FCVTAUv4f16 = 3042,
+ FCVTAUv4f32 = 3043,
+ FCVTAUv8f16 = 3044,
+ FCVTDHr = 3045,
+ FCVTDSr = 3046,
+ FCVTHDr = 3047,
+ FCVTHSr = 3048,
+ FCVTLT_ZPmZ_HtoS = 3049,
+ FCVTLT_ZPmZ_StoD = 3050,
+ FCVTLT_ZPzZ_HtoS = 3051,
+ FCVTLT_ZPzZ_StoD = 3052,
+ FCVTL_2ZZ_H_S = 3053,
+ FCVTLv2i32 = 3054,
+ FCVTLv4i16 = 3055,
+ FCVTLv4i32 = 3056,
+ FCVTLv8i16 = 3057,
+ FCVTMSDHr = 3058,
+ FCVTMSDSr = 3059,
+ FCVTMSSDr = 3060,
+ FCVTMSSHr = 3061,
+ FCVTMSUWDr = 3062,
+ FCVTMSUWHr = 3063,
+ FCVTMSUWSr = 3064,
+ FCVTMSUXDr = 3065,
+ FCVTMSUXHr = 3066,
+ FCVTMSUXSr = 3067,
+ FCVTMSv1f16 = 3068,
+ FCVTMSv1i32 = 3069,
+ FCVTMSv1i64 = 3070,
+ FCVTMSv2f32 = 3071,
+ FCVTMSv2f64 = 3072,
+ FCVTMSv4f16 = 3073,
+ FCVTMSv4f32 = 3074,
+ FCVTMSv8f16 = 3075,
+ FCVTMUDHr = 3076,
+ FCVTMUDSr = 3077,
+ FCVTMUSDr = 3078,
+ FCVTMUSHr = 3079,
+ FCVTMUUWDr = 3080,
+ FCVTMUUWHr = 3081,
+ FCVTMUUWSr = 3082,
+ FCVTMUUXDr = 3083,
+ FCVTMUUXHr = 3084,
+ FCVTMUUXSr = 3085,
+ FCVTMUv1f16 = 3086,
+ FCVTMUv1i32 = 3087,
+ FCVTMUv1i64 = 3088,
+ FCVTMUv2f32 = 3089,
+ FCVTMUv2f64 = 3090,
+ FCVTMUv4f16 = 3091,
+ FCVTMUv4f32 = 3092,
+ FCVTMUv8f16 = 3093,
+ FCVTNB_Z2Z_StoB = 3094,
+ FCVTNSDHr = 3095,
+ FCVTNSDSr = 3096,
+ FCVTNSSDr = 3097,
+ FCVTNSSHr = 3098,
+ FCVTNSUWDr = 3099,
+ FCVTNSUWHr = 3100,
+ FCVTNSUWSr = 3101,
+ FCVTNSUXDr = 3102,
+ FCVTNSUXHr = 3103,
+ FCVTNSUXSr = 3104,
+ FCVTNSv1f16 = 3105,
+ FCVTNSv1i32 = 3106,
+ FCVTNSv1i64 = 3107,
+ FCVTNSv2f32 = 3108,
+ FCVTNSv2f64 = 3109,
+ FCVTNSv4f16 = 3110,
+ FCVTNSv4f32 = 3111,
+ FCVTNSv8f16 = 3112,
+ FCVTNT_Z2Z_StoB = 3113,
+ FCVTNT_ZPmZ_DtoS = 3114,
+ FCVTNT_ZPmZ_StoH = 3115,
+ FCVTNT_ZPzZ_DtoS = 3116,
+ FCVTNT_ZPzZ_StoH = 3117,
+ FCVTNUDHr = 3118,
+ FCVTNUDSr = 3119,
+ FCVTNUSDr = 3120,
+ FCVTNUSHr = 3121,
+ FCVTNUUWDr = 3122,
+ FCVTNUUWHr = 3123,
+ FCVTNUUWSr = 3124,
+ FCVTNUUXDr = 3125,
+ FCVTNUUXHr = 3126,
+ FCVTNUUXSr = 3127,
+ FCVTNUv1f16 = 3128,
+ FCVTNUv1i32 = 3129,
+ FCVTNUv1i64 = 3130,
+ FCVTNUv2f32 = 3131,
+ FCVTNUv2f64 = 3132,
+ FCVTNUv4f16 = 3133,
+ FCVTNUv4f32 = 3134,
+ FCVTNUv8f16 = 3135,
+ FCVTN_F16v16f8 = 3136,
+ FCVTN_F16v8f8 = 3137,
+ FCVTN_F322v16f8 = 3138,
+ FCVTN_F32v8f8 = 3139,
+ FCVTN_Z2Z_HtoB = 3140,
+ FCVTN_Z2Z_StoH = 3141,
+ FCVTN_Z4Z_StoB = 3142,
+ FCVTNv2i32 = 3143,
+ FCVTNv4i16 = 3144,
+ FCVTNv4i32 = 3145,
+ FCVTNv8i16 = 3146,
+ FCVTPSDHr = 3147,
+ FCVTPSDSr = 3148,
+ FCVTPSSDr = 3149,
+ FCVTPSSHr = 3150,
+ FCVTPSUWDr = 3151,
+ FCVTPSUWHr = 3152,
+ FCVTPSUWSr = 3153,
+ FCVTPSUXDr = 3154,
+ FCVTPSUXHr = 3155,
+ FCVTPSUXSr = 3156,
+ FCVTPSv1f16 = 3157,
+ FCVTPSv1i32 = 3158,
+ FCVTPSv1i64 = 3159,
+ FCVTPSv2f32 = 3160,
+ FCVTPSv2f64 = 3161,
+ FCVTPSv4f16 = 3162,
+ FCVTPSv4f32 = 3163,
+ FCVTPSv8f16 = 3164,
+ FCVTPUDHr = 3165,
+ FCVTPUDSr = 3166,
+ FCVTPUSDr = 3167,
+ FCVTPUSHr = 3168,
+ FCVTPUUWDr = 3169,
+ FCVTPUUWHr = 3170,
+ FCVTPUUWSr = 3171,
+ FCVTPUUXDr = 3172,
+ FCVTPUUXHr = 3173,
+ FCVTPUUXSr = 3174,
+ FCVTPUv1f16 = 3175,
+ FCVTPUv1i32 = 3176,
+ FCVTPUv1i64 = 3177,
+ FCVTPUv2f32 = 3178,
+ FCVTPUv2f64 = 3179,
+ FCVTPUv4f16 = 3180,
+ FCVTPUv4f32 = 3181,
+ FCVTPUv8f16 = 3182,
+ FCVTSDr = 3183,
+ FCVTSHr = 3184,
+ FCVTXNT_ZPmZ_DtoS = 3185,
+ FCVTXNT_ZPzZ_StoD = 3186,
+ FCVTXNv1i64 = 3187,
+ FCVTXNv2f32 = 3188,
+ FCVTXNv4f32 = 3189,
+ FCVTX_ZPmZ_DtoS = 3190,
+ FCVTX_ZPzZ_DtoS = 3191,
+ FCVTZSDHr = 3192,
+ FCVTZSDSr = 3193,
+ FCVTZSN_Z2Z_DtoS = 3194,
+ FCVTZSN_Z2Z_HtoB = 3195,
+ FCVTZSN_Z2Z_StoH = 3196,
+ FCVTZSSDr = 3197,
+ FCVTZSSHr = 3198,
+ FCVTZSSWDri = 3199,
+ FCVTZSSWHri = 3200,
+ FCVTZSSWSri = 3201,
+ FCVTZSSXDri = 3202,
+ FCVTZSSXHri = 3203,
+ FCVTZSSXSri = 3204,
+ FCVTZSUWDr = 3205,
+ FCVTZSUWHr = 3206,
+ FCVTZSUWSr = 3207,
+ FCVTZSUXDr = 3208,
+ FCVTZSUXHr = 3209,
+ FCVTZSUXSr = 3210,
+ FCVTZS_2Z2Z_StoS = 3211,
+ FCVTZS_4Z4Z_StoS = 3212,
+ FCVTZS_ZPmZ_DtoD = 3213,
+ FCVTZS_ZPmZ_DtoS = 3214,
+ FCVTZS_ZPmZ_HtoD = 3215,
+ FCVTZS_ZPmZ_HtoH = 3216,
+ FCVTZS_ZPmZ_HtoS = 3217,
+ FCVTZS_ZPmZ_StoD = 3218,
+ FCVTZS_ZPmZ_StoS = 3219,
+ FCVTZS_ZPzZ_DtoD = 3220,
+ FCVTZS_ZPzZ_DtoS = 3221,
+ FCVTZS_ZPzZ_HtoD = 3222,
+ FCVTZS_ZPzZ_HtoH = 3223,
+ FCVTZS_ZPzZ_HtoS = 3224,
+ FCVTZS_ZPzZ_StoD = 3225,
+ FCVTZS_ZPzZ_StoS = 3226,
+ FCVTZSd = 3227,
+ FCVTZSh = 3228,
+ FCVTZSs = 3229,
+ FCVTZSv1f16 = 3230,
+ FCVTZSv1i32 = 3231,
+ FCVTZSv1i64 = 3232,
+ FCVTZSv2f32 = 3233,
+ FCVTZSv2f64 = 3234,
+ FCVTZSv2i32_shift = 3235,
+ FCVTZSv2i64_shift = 3236,
+ FCVTZSv4f16 = 3237,
+ FCVTZSv4f32 = 3238,
+ FCVTZSv4i16_shift = 3239,
+ FCVTZSv4i32_shift = 3240,
+ FCVTZSv8f16 = 3241,
+ FCVTZSv8i16_shift = 3242,
+ FCVTZUDHr = 3243,
+ FCVTZUDSr = 3244,
+ FCVTZUN_Z2Z_DtoS = 3245,
+ FCVTZUN_Z2Z_HtoB = 3246,
+ FCVTZUN_Z2Z_StoH = 3247,
+ FCVTZUSDr = 3248,
+ FCVTZUSHr = 3249,
+ FCVTZUSWDri = 3250,
+ FCVTZUSWHri = 3251,
+ FCVTZUSWSri = 3252,
+ FCVTZUSXDri = 3253,
+ FCVTZUSXHri = 3254,
+ FCVTZUSXSri = 3255,
+ FCVTZUUWDr = 3256,
+ FCVTZUUWHr = 3257,
+ FCVTZUUWSr = 3258,
+ FCVTZUUXDr = 3259,
+ FCVTZUUXHr = 3260,
+ FCVTZUUXSr = 3261,
+ FCVTZU_2Z2Z_StoS = 3262,
+ FCVTZU_4Z4Z_StoS = 3263,
+ FCVTZU_ZPmZ_DtoD = 3264,
+ FCVTZU_ZPmZ_DtoS = 3265,
+ FCVTZU_ZPmZ_HtoD = 3266,
+ FCVTZU_ZPmZ_HtoH = 3267,
+ FCVTZU_ZPmZ_HtoS = 3268,
+ FCVTZU_ZPmZ_StoD = 3269,
+ FCVTZU_ZPmZ_StoS = 3270,
+ FCVTZU_ZPzZ_DtoD = 3271,
+ FCVTZU_ZPzZ_DtoS = 3272,
+ FCVTZU_ZPzZ_HtoD = 3273,
+ FCVTZU_ZPzZ_HtoH = 3274,
+ FCVTZU_ZPzZ_HtoS = 3275,
+ FCVTZU_ZPzZ_StoD = 3276,
+ FCVTZU_ZPzZ_StoS = 3277,
+ FCVTZUd = 3278,
+ FCVTZUh = 3279,
+ FCVTZUs = 3280,
+ FCVTZUv1f16 = 3281,
+ FCVTZUv1i32 = 3282,
+ FCVTZUv1i64 = 3283,
+ FCVTZUv2f32 = 3284,
+ FCVTZUv2f64 = 3285,
+ FCVTZUv2i32_shift = 3286,
+ FCVTZUv2i64_shift = 3287,
+ FCVTZUv4f16 = 3288,
+ FCVTZUv4f32 = 3289,
+ FCVTZUv4i16_shift = 3290,
+ FCVTZUv4i32_shift = 3291,
+ FCVTZUv8f16 = 3292,
+ FCVTZUv8i16_shift = 3293,
+ FCVT_2ZZ_H_S = 3294,
+ FCVT_Z2Z_HtoB = 3295,
+ FCVT_Z2Z_StoH = 3296,
+ FCVT_Z4Z_StoB = 3297,
+ FCVT_ZPmZ_DtoH = 3298,
+ FCVT_ZPmZ_DtoS = 3299,
+ FCVT_ZPmZ_HtoD = 3300,
+ FCVT_ZPmZ_HtoS = 3301,
+ FCVT_ZPmZ_StoD = 3302,
+ FCVT_ZPmZ_StoH = 3303,
+ FCVT_ZPzZ_DtoH = 3304,
+ FCVT_ZPzZ_DtoS = 3305,
+ FCVT_ZPzZ_HtoD = 3306,
+ FCVT_ZPzZ_HtoS = 3307,
+ FCVT_ZPzZ_StoD = 3308,
+ FCVT_ZPzZ_StoH = 3309,
+ FDIVDrr = 3310,
+ FDIVHrr = 3311,
+ FDIVR_ZPmZ_D = 3312,
+ FDIVR_ZPmZ_H = 3313,
+ FDIVR_ZPmZ_S = 3314,
+ FDIVSrr = 3315,
+ FDIV_ZPmZ_D = 3316,
+ FDIV_ZPmZ_H = 3317,
+ FDIV_ZPmZ_S = 3318,
+ FDIVv2f32 = 3319,
+ FDIVv2f64 = 3320,
+ FDIVv4f16 = 3321,
+ FDIVv4f32 = 3322,
+ FDIVv8f16 = 3323,
+ FDOT_VG2_M2Z2Z_BtoH = 3324,
+ FDOT_VG2_M2Z2Z_BtoS = 3325,
+ FDOT_VG2_M2Z2Z_HtoS = 3326,
+ FDOT_VG2_M2ZZI_BtoH = 3327,
+ FDOT_VG2_M2ZZI_BtoS = 3328,
+ FDOT_VG2_M2ZZI_HtoS = 3329,
+ FDOT_VG2_M2ZZ_BtoH = 3330,
+ FDOT_VG2_M2ZZ_BtoS = 3331,
+ FDOT_VG2_M2ZZ_HtoS = 3332,
+ FDOT_VG4_M4Z4Z_BtoH = 3333,
+ FDOT_VG4_M4Z4Z_BtoS = 3334,
+ FDOT_VG4_M4Z4Z_HtoS = 3335,
+ FDOT_VG4_M4ZZI_BtoH = 3336,
+ FDOT_VG4_M4ZZI_BtoS = 3337,
+ FDOT_VG4_M4ZZI_HtoS = 3338,
+ FDOT_VG4_M4ZZ_BtoH = 3339,
+ FDOT_VG4_M4ZZ_BtoS = 3340,
+ FDOT_VG4_M4ZZ_HtoS = 3341,
+ FDOT_ZZZI_BtoH = 3342,
+ FDOT_ZZZI_BtoS = 3343,
+ FDOT_ZZZI_S = 3344,
+ FDOT_ZZZ_BtoH = 3345,
+ FDOT_ZZZ_BtoS = 3346,
+ FDOT_ZZZ_S = 3347,
+ FDOTlanev2f32 = 3348,
+ FDOTlanev4f16 = 3349,
+ FDOTlanev4f16_v2f32 = 3350,
+ FDOTlanev4f32 = 3351,
+ FDOTlanev8f16 = 3352,
+ FDOTlanev8f16_v4f32 = 3353,
+ FDOTv2f32 = 3354,
+ FDOTv4f16 = 3355,
+ FDOTv4f16_v2f32 = 3356,
+ FDOTv4f32 = 3357,
+ FDOTv8f16 = 3358,
+ FDOTv8f16_v4f32 = 3359,
+ FDUP_ZI_D = 3360,
+ FDUP_ZI_H = 3361,
+ FDUP_ZI_S = 3362,
+ FEXPA_ZZ_D = 3363,
+ FEXPA_ZZ_H = 3364,
+ FEXPA_ZZ_S = 3365,
+ FIRSTP_XPP_B = 3366,
+ FIRSTP_XPP_D = 3367,
+ FIRSTP_XPP_H = 3368,
+ FIRSTP_XPP_S = 3369,
+ FJCVTZS = 3370,
+ FLOGB_ZPmZ_D = 3371,
+ FLOGB_ZPmZ_H = 3372,
+ FLOGB_ZPmZ_S = 3373,
+ FLOGB_ZPzZ_D = 3374,
+ FLOGB_ZPzZ_H = 3375,
+ FLOGB_ZPzZ_S = 3376,
+ FMADDDrrr = 3377,
+ FMADDHrrr = 3378,
+ FMADDSrrr = 3379,
+ FMAD_ZPmZZ_D = 3380,
+ FMAD_ZPmZZ_H = 3381,
+ FMAD_ZPmZZ_S = 3382,
+ FMAXDrr = 3383,
+ FMAXHrr = 3384,
+ FMAXNMDrr = 3385,
+ FMAXNMHrr = 3386,
+ FMAXNMP_ZPmZZ_D = 3387,
+ FMAXNMP_ZPmZZ_H = 3388,
+ FMAXNMP_ZPmZZ_S = 3389,
+ FMAXNMPv2f32 = 3390,
+ FMAXNMPv2f64 = 3391,
+ FMAXNMPv2i16p = 3392,
+ FMAXNMPv2i32p = 3393,
+ FMAXNMPv2i64p = 3394,
+ FMAXNMPv4f16 = 3395,
+ FMAXNMPv4f32 = 3396,
+ FMAXNMPv8f16 = 3397,
+ FMAXNMQV_D = 3398,
+ FMAXNMQV_H = 3399,
+ FMAXNMQV_S = 3400,
+ FMAXNMSrr = 3401,
+ FMAXNMV_VPZ_D = 3402,
+ FMAXNMV_VPZ_H = 3403,
+ FMAXNMV_VPZ_S = 3404,
+ FMAXNMVv4i16v = 3405,
+ FMAXNMVv4i32v = 3406,
+ FMAXNMVv8i16v = 3407,
+ FMAXNM_VG2_2Z2Z_D = 3408,
+ FMAXNM_VG2_2Z2Z_H = 3409,
+ FMAXNM_VG2_2Z2Z_S = 3410,
+ FMAXNM_VG2_2ZZ_D = 3411,
+ FMAXNM_VG2_2ZZ_H = 3412,
+ FMAXNM_VG2_2ZZ_S = 3413,
+ FMAXNM_VG4_4Z4Z_D = 3414,
+ FMAXNM_VG4_4Z4Z_H = 3415,
+ FMAXNM_VG4_4Z4Z_S = 3416,
+ FMAXNM_VG4_4ZZ_D = 3417,
+ FMAXNM_VG4_4ZZ_H = 3418,
+ FMAXNM_VG4_4ZZ_S = 3419,
+ FMAXNM_ZPmI_D = 3420,
+ FMAXNM_ZPmI_H = 3421,
+ FMAXNM_ZPmI_S = 3422,
+ FMAXNM_ZPmZ_D = 3423,
+ FMAXNM_ZPmZ_H = 3424,
+ FMAXNM_ZPmZ_S = 3425,
+ FMAXNMv2f32 = 3426,
+ FMAXNMv2f64 = 3427,
+ FMAXNMv4f16 = 3428,
+ FMAXNMv4f32 = 3429,
+ FMAXNMv8f16 = 3430,
+ FMAXP_ZPmZZ_D = 3431,
+ FMAXP_ZPmZZ_H = 3432,
+ FMAXP_ZPmZZ_S = 3433,
+ FMAXPv2f32 = 3434,
+ FMAXPv2f64 = 3435,
+ FMAXPv2i16p = 3436,
+ FMAXPv2i32p = 3437,
+ FMAXPv2i64p = 3438,
+ FMAXPv4f16 = 3439,
+ FMAXPv4f32 = 3440,
+ FMAXPv8f16 = 3441,
+ FMAXQV_D = 3442,
+ FMAXQV_H = 3443,
+ FMAXQV_S = 3444,
+ FMAXSrr = 3445,
+ FMAXV_VPZ_D = 3446,
+ FMAXV_VPZ_H = 3447,
+ FMAXV_VPZ_S = 3448,
+ FMAXVv4i16v = 3449,
+ FMAXVv4i32v = 3450,
+ FMAXVv8i16v = 3451,
+ FMAX_VG2_2Z2Z_D = 3452,
+ FMAX_VG2_2Z2Z_H = 3453,
+ FMAX_VG2_2Z2Z_S = 3454,
+ FMAX_VG2_2ZZ_D = 3455,
+ FMAX_VG2_2ZZ_H = 3456,
+ FMAX_VG2_2ZZ_S = 3457,
+ FMAX_VG4_4Z4Z_D = 3458,
+ FMAX_VG4_4Z4Z_H = 3459,
+ FMAX_VG4_4Z4Z_S = 3460,
+ FMAX_VG4_4ZZ_D = 3461,
+ FMAX_VG4_4ZZ_H = 3462,
+ FMAX_VG4_4ZZ_S = 3463,
+ FMAX_ZPmI_D = 3464,
+ FMAX_ZPmI_H = 3465,
+ FMAX_ZPmI_S = 3466,
+ FMAX_ZPmZ_D = 3467,
+ FMAX_ZPmZ_H = 3468,
+ FMAX_ZPmZ_S = 3469,
+ FMAXv2f32 = 3470,
+ FMAXv2f64 = 3471,
+ FMAXv4f16 = 3472,
+ FMAXv4f32 = 3473,
+ FMAXv8f16 = 3474,
+ FMINDrr = 3475,
+ FMINHrr = 3476,
+ FMINNMDrr = 3477,
+ FMINNMHrr = 3478,
+ FMINNMP_ZPmZZ_D = 3479,
+ FMINNMP_ZPmZZ_H = 3480,
+ FMINNMP_ZPmZZ_S = 3481,
+ FMINNMPv2f32 = 3482,
+ FMINNMPv2f64 = 3483,
+ FMINNMPv2i16p = 3484,
+ FMINNMPv2i32p = 3485,
+ FMINNMPv2i64p = 3486,
+ FMINNMPv4f16 = 3487,
+ FMINNMPv4f32 = 3488,
+ FMINNMPv8f16 = 3489,
+ FMINNMQV_D = 3490,
+ FMINNMQV_H = 3491,
+ FMINNMQV_S = 3492,
+ FMINNMSrr = 3493,
+ FMINNMV_VPZ_D = 3494,
+ FMINNMV_VPZ_H = 3495,
+ FMINNMV_VPZ_S = 3496,
+ FMINNMVv4i16v = 3497,
+ FMINNMVv4i32v = 3498,
+ FMINNMVv8i16v = 3499,
+ FMINNM_VG2_2Z2Z_D = 3500,
+ FMINNM_VG2_2Z2Z_H = 3501,
+ FMINNM_VG2_2Z2Z_S = 3502,
+ FMINNM_VG2_2ZZ_D = 3503,
+ FMINNM_VG2_2ZZ_H = 3504,
+ FMINNM_VG2_2ZZ_S = 3505,
+ FMINNM_VG4_4Z4Z_D = 3506,
+ FMINNM_VG4_4Z4Z_H = 3507,
+ FMINNM_VG4_4Z4Z_S = 3508,
+ FMINNM_VG4_4ZZ_D = 3509,
+ FMINNM_VG4_4ZZ_H = 3510,
+ FMINNM_VG4_4ZZ_S = 3511,
+ FMINNM_ZPmI_D = 3512,
+ FMINNM_ZPmI_H = 3513,
+ FMINNM_ZPmI_S = 3514,
+ FMINNM_ZPmZ_D = 3515,
+ FMINNM_ZPmZ_H = 3516,
+ FMINNM_ZPmZ_S = 3517,
+ FMINNMv2f32 = 3518,
+ FMINNMv2f64 = 3519,
+ FMINNMv4f16 = 3520,
+ FMINNMv4f32 = 3521,
+ FMINNMv8f16 = 3522,
+ FMINP_ZPmZZ_D = 3523,
+ FMINP_ZPmZZ_H = 3524,
+ FMINP_ZPmZZ_S = 3525,
+ FMINPv2f32 = 3526,
+ FMINPv2f64 = 3527,
+ FMINPv2i16p = 3528,
+ FMINPv2i32p = 3529,
+ FMINPv2i64p = 3530,
+ FMINPv4f16 = 3531,
+ FMINPv4f32 = 3532,
+ FMINPv8f16 = 3533,
+ FMINQV_D = 3534,
+ FMINQV_H = 3535,
+ FMINQV_S = 3536,
+ FMINSrr = 3537,
+ FMINV_VPZ_D = 3538,
+ FMINV_VPZ_H = 3539,
+ FMINV_VPZ_S = 3540,
+ FMINVv4i16v = 3541,
+ FMINVv4i32v = 3542,
+ FMINVv8i16v = 3543,
+ FMIN_VG2_2Z2Z_D = 3544,
+ FMIN_VG2_2Z2Z_H = 3545,
+ FMIN_VG2_2Z2Z_S = 3546,
+ FMIN_VG2_2ZZ_D = 3547,
+ FMIN_VG2_2ZZ_H = 3548,
+ FMIN_VG2_2ZZ_S = 3549,
+ FMIN_VG4_4Z4Z_D = 3550,
+ FMIN_VG4_4Z4Z_H = 3551,
+ FMIN_VG4_4Z4Z_S = 3552,
+ FMIN_VG4_4ZZ_D = 3553,
+ FMIN_VG4_4ZZ_H = 3554,
+ FMIN_VG4_4ZZ_S = 3555,
+ FMIN_ZPmI_D = 3556,
+ FMIN_ZPmI_H = 3557,
+ FMIN_ZPmI_S = 3558,
+ FMIN_ZPmZ_D = 3559,
+ FMIN_ZPmZ_H = 3560,
+ FMIN_ZPmZ_S = 3561,
+ FMINv2f32 = 3562,
+ FMINv2f64 = 3563,
+ FMINv4f16 = 3564,
+ FMINv4f32 = 3565,
+ FMINv8f16 = 3566,
+ FMLAL2lanev4f16 = 3567,
+ FMLAL2lanev8f16 = 3568,
+ FMLAL2v4f16 = 3569,
+ FMLAL2v8f16 = 3570,
+ FMLALB_ZZZ = 3571,
+ FMLALB_ZZZI = 3572,
+ FMLALB_ZZZI_SHH = 3573,
+ FMLALB_ZZZ_SHH = 3574,
+ FMLALBlanev8f16 = 3575,
+ FMLALBv16i8_v8f16 = 3576,
+ FMLALLBB_ZZZ = 3577,
+ FMLALLBB_ZZZI = 3578,
+ FMLALLBBlanev4f32 = 3579,
+ FMLALLBBv4f32 = 3580,
+ FMLALLBT_ZZZ = 3581,
+ FMLALLBT_ZZZI = 3582,
+ FMLALLBTlanev4f32 = 3583,
+ FMLALLBTv4f32 = 3584,
+ FMLALLTB_ZZZ = 3585,
+ FMLALLTB_ZZZI = 3586,
+ FMLALLTBlanev4f32 = 3587,
+ FMLALLTBv4f32 = 3588,
+ FMLALLTT_ZZZ = 3589,
+ FMLALLTT_ZZZI = 3590,
+ FMLALLTTlanev4f32 = 3591,
+ FMLALLTTv4f32 = 3592,
+ FMLALL_MZZI_BtoS = 3593,
+ FMLALL_MZZ_BtoS = 3594,
+ FMLALL_VG2_M2Z2Z_BtoS = 3595,
+ FMLALL_VG2_M2ZZI_BtoS = 3596,
+ FMLALL_VG2_M2ZZ_BtoS = 3597,
+ FMLALL_VG4_M4Z4Z_BtoS = 3598,
+ FMLALL_VG4_M4ZZI_BtoS = 3599,
+ FMLALL_VG4_M4ZZ_BtoS = 3600,
+ FMLALT_ZZZ = 3601,
+ FMLALT_ZZZI = 3602,
+ FMLALT_ZZZI_SHH = 3603,
+ FMLALT_ZZZ_SHH = 3604,
+ FMLALTlanev8f16 = 3605,
+ FMLALTv16i8_v8f16 = 3606,
+ FMLAL_MZZI_BtoH = 3607,
+ FMLAL_MZZI_HtoS = 3608,
+ FMLAL_MZZ_HtoS = 3609,
+ FMLAL_VG2_M2Z2Z_BtoH = 3610,
+ FMLAL_VG2_M2Z2Z_HtoS = 3611,
+ FMLAL_VG2_M2ZZI_BtoH = 3612,
+ FMLAL_VG2_M2ZZI_HtoS = 3613,
+ FMLAL_VG2_M2ZZ_BtoH = 3614,
+ FMLAL_VG2_M2ZZ_HtoS = 3615,
+ FMLAL_VG2_MZZ_BtoH = 3616,
+ FMLAL_VG4_M4Z4Z_BtoH = 3617,
+ FMLAL_VG4_M4Z4Z_HtoS = 3618,
+ FMLAL_VG4_M4ZZI_BtoH = 3619,
+ FMLAL_VG4_M4ZZI_HtoS = 3620,
+ FMLAL_VG4_M4ZZ_BtoH = 3621,
+ FMLAL_VG4_M4ZZ_HtoS = 3622,
+ FMLALlanev4f16 = 3623,
+ FMLALlanev8f16 = 3624,
+ FMLALv4f16 = 3625,
+ FMLALv8f16 = 3626,
+ FMLA_VG2_M2Z2Z_D = 3627,
+ FMLA_VG2_M2Z2Z_H = 3628,
+ FMLA_VG2_M2Z2Z_S = 3629,
+ FMLA_VG2_M2ZZI_D = 3630,
+ FMLA_VG2_M2ZZI_H = 3631,
+ FMLA_VG2_M2ZZI_S = 3632,
+ FMLA_VG2_M2ZZ_D = 3633,
+ FMLA_VG2_M2ZZ_H = 3634,
+ FMLA_VG2_M2ZZ_S = 3635,
+ FMLA_VG4_M4Z4Z_D = 3636,
+ FMLA_VG4_M4Z4Z_H = 3637,
+ FMLA_VG4_M4Z4Z_S = 3638,
+ FMLA_VG4_M4ZZI_D = 3639,
+ FMLA_VG4_M4ZZI_H = 3640,
+ FMLA_VG4_M4ZZI_S = 3641,
+ FMLA_VG4_M4ZZ_D = 3642,
+ FMLA_VG4_M4ZZ_H = 3643,
+ FMLA_VG4_M4ZZ_S = 3644,
+ FMLA_ZPmZZ_D = 3645,
+ FMLA_ZPmZZ_H = 3646,
+ FMLA_ZPmZZ_S = 3647,
+ FMLA_ZZZI_D = 3648,
+ FMLA_ZZZI_H = 3649,
+ FMLA_ZZZI_S = 3650,
+ FMLAv1i16_indexed = 3651,
+ FMLAv1i32_indexed = 3652,
+ FMLAv1i64_indexed = 3653,
+ FMLAv2f32 = 3654,
+ FMLAv2f64 = 3655,
+ FMLAv2i32_indexed = 3656,
+ FMLAv2i64_indexed = 3657,
+ FMLAv4f16 = 3658,
+ FMLAv4f32 = 3659,
+ FMLAv4i16_indexed = 3660,
+ FMLAv4i32_indexed = 3661,
+ FMLAv8f16 = 3662,
+ FMLAv8i16_indexed = 3663,
+ FMLLA_ZZZ_HtoS = 3664,
+ FMLSL2lanev4f16 = 3665,
+ FMLSL2lanev8f16 = 3666,
+ FMLSL2v4f16 = 3667,
+ FMLSL2v8f16 = 3668,
+ FMLSLB_ZZZI_SHH = 3669,
+ FMLSLB_ZZZ_SHH = 3670,
+ FMLSLT_ZZZI_SHH = 3671,
+ FMLSLT_ZZZ_SHH = 3672,
+ FMLSL_MZZI_HtoS = 3673,
+ FMLSL_MZZ_HtoS = 3674,
+ FMLSL_VG2_M2Z2Z_HtoS = 3675,
+ FMLSL_VG2_M2ZZI_HtoS = 3676,
+ FMLSL_VG2_M2ZZ_HtoS = 3677,
+ FMLSL_VG4_M4Z4Z_HtoS = 3678,
+ FMLSL_VG4_M4ZZI_HtoS = 3679,
+ FMLSL_VG4_M4ZZ_HtoS = 3680,
+ FMLSLlanev4f16 = 3681,
+ FMLSLlanev8f16 = 3682,
+ FMLSLv4f16 = 3683,
+ FMLSLv8f16 = 3684,
+ FMLS_VG2_M2Z2Z_D = 3685,
+ FMLS_VG2_M2Z2Z_H = 3686,
+ FMLS_VG2_M2Z2Z_S = 3687,
+ FMLS_VG2_M2ZZI_D = 3688,
+ FMLS_VG2_M2ZZI_H = 3689,
+ FMLS_VG2_M2ZZI_S = 3690,
+ FMLS_VG2_M2ZZ_D = 3691,
+ FMLS_VG2_M2ZZ_H = 3692,
+ FMLS_VG2_M2ZZ_S = 3693,
+ FMLS_VG4_M4Z4Z_D = 3694,
+ FMLS_VG4_M4Z4Z_H = 3695,
+ FMLS_VG4_M4Z4Z_S = 3696,
+ FMLS_VG4_M4ZZI_D = 3697,
+ FMLS_VG4_M4ZZI_H = 3698,
+ FMLS_VG4_M4ZZI_S = 3699,
+ FMLS_VG4_M4ZZ_D = 3700,
+ FMLS_VG4_M4ZZ_H = 3701,
+ FMLS_VG4_M4ZZ_S = 3702,
+ FMLS_ZPmZZ_D = 3703,
+ FMLS_ZPmZZ_H = 3704,
+ FMLS_ZPmZZ_S = 3705,
+ FMLS_ZZZI_D = 3706,
+ FMLS_ZZZI_H = 3707,
+ FMLS_ZZZI_S = 3708,
+ FMLSv1i16_indexed = 3709,
+ FMLSv1i32_indexed = 3710,
+ FMLSv1i64_indexed = 3711,
+ FMLSv2f32 = 3712,
+ FMLSv2f64 = 3713,
+ FMLSv2i32_indexed = 3714,
+ FMLSv2i64_indexed = 3715,
+ FMLSv4f16 = 3716,
+ FMLSv4f32 = 3717,
+ FMLSv4i16_indexed = 3718,
+ FMLSv4i32_indexed = 3719,
+ FMLSv8f16 = 3720,
+ FMLSv8i16_indexed = 3721,
+ FMMLA_ZZZ_BtoH = 3722,
+ FMMLA_ZZZ_BtoS = 3723,
+ FMMLA_ZZZ_D = 3724,
+ FMMLA_ZZZ_H = 3725,
+ FMMLA_ZZZ_S = 3726,
+ FMMLAv4f32 = 3727,
+ FMMLAv8f16 = 3728,
+ FMMLAv8f16_v4f32 = 3729,
+ FMMLAv8f16_v8f16 = 3730,
+ FMOP4A_M2Z2Z_BtoH = 3731,
+ FMOP4A_M2Z2Z_BtoS = 3732,
+ FMOP4A_M2Z2Z_D = 3733,
+ FMOP4A_M2Z2Z_H = 3734,
+ FMOP4A_M2Z2Z_HtoS = 3735,
+ FMOP4A_M2Z2Z_S = 3736,
+ FMOP4A_M2ZZ_BtoH = 3737,
+ FMOP4A_M2ZZ_BtoS = 3738,
+ FMOP4A_M2ZZ_D = 3739,
+ FMOP4A_M2ZZ_H = 3740,
+ FMOP4A_M2ZZ_HtoS = 3741,
+ FMOP4A_M2ZZ_S = 3742,
+ FMOP4A_MZ2Z_BtoH = 3743,
+ FMOP4A_MZ2Z_BtoS = 3744,
+ FMOP4A_MZ2Z_D = 3745,
+ FMOP4A_MZ2Z_H = 3746,
+ FMOP4A_MZ2Z_HtoS = 3747,
+ FMOP4A_MZ2Z_S = 3748,
+ FMOP4A_MZZ_BtoH = 3749,
+ FMOP4A_MZZ_BtoS = 3750,
+ FMOP4A_MZZ_D = 3751,
+ FMOP4A_MZZ_H = 3752,
+ FMOP4A_MZZ_HtoS = 3753,
+ FMOP4A_MZZ_S = 3754,
+ FMOP4S_M2Z2Z_D = 3755,
+ FMOP4S_M2Z2Z_H = 3756,
+ FMOP4S_M2Z2Z_HtoS = 3757,
+ FMOP4S_M2Z2Z_S = 3758,
+ FMOP4S_M2ZZ_D = 3759,
+ FMOP4S_M2ZZ_H = 3760,
+ FMOP4S_M2ZZ_HtoS = 3761,
+ FMOP4S_M2ZZ_S = 3762,
+ FMOP4S_MZ2Z_D = 3763,
+ FMOP4S_MZ2Z_H = 3764,
+ FMOP4S_MZ2Z_HtoS = 3765,
+ FMOP4S_MZ2Z_S = 3766,
+ FMOP4S_MZZ_D = 3767,
+ FMOP4S_MZZ_H = 3768,
+ FMOP4S_MZZ_HtoS = 3769,
+ FMOP4S_MZZ_S = 3770,
+ FMOPAL_MPPZZ = 3771,
+ FMOPA_MPPZZ_BtoH = 3772,
+ FMOPA_MPPZZ_BtoS = 3773,
+ FMOPA_MPPZZ_D = 3774,
+ FMOPA_MPPZZ_H = 3775,
+ FMOPA_MPPZZ_S = 3776,
+ FMOPSL_MPPZZ = 3777,
+ FMOPS_MPPZZ_D = 3778,
+ FMOPS_MPPZZ_H = 3779,
+ FMOPS_MPPZZ_S = 3780,
+ FMOVDXHighr = 3781,
+ FMOVDXr = 3782,
+ FMOVDi = 3783,
+ FMOVDr = 3784,
+ FMOVHWr = 3785,
+ FMOVHXr = 3786,
+ FMOVHi = 3787,
+ FMOVHr = 3788,
+ FMOVSWr = 3789,
+ FMOVSi = 3790,
+ FMOVSr = 3791,
+ FMOVWHr = 3792,
+ FMOVWSr = 3793,
+ FMOVXDHighr = 3794,
+ FMOVXDr = 3795,
+ FMOVXHr = 3796,
+ FMOVv2f32_ns = 3797,
+ FMOVv2f64_ns = 3798,
+ FMOVv4f16_ns = 3799,
+ FMOVv4f32_ns = 3800,
+ FMOVv8f16_ns = 3801,
+ FMSB_ZPmZZ_D = 3802,
+ FMSB_ZPmZZ_H = 3803,
+ FMSB_ZPmZZ_S = 3804,
+ FMSUBDrrr = 3805,
+ FMSUBHrrr = 3806,
+ FMSUBSrrr = 3807,
+ FMULDrr = 3808,
+ FMULHrr = 3809,
+ FMULSrr = 3810,
+ FMULX16 = 3811,
+ FMULX32 = 3812,
+ FMULX64 = 3813,
+ FMULX_ZPmZ_D = 3814,
+ FMULX_ZPmZ_H = 3815,
+ FMULX_ZPmZ_S = 3816,
+ FMULXv1i16_indexed = 3817,
+ FMULXv1i32_indexed = 3818,
+ FMULXv1i64_indexed = 3819,
+ FMULXv2f32 = 3820,
+ FMULXv2f64 = 3821,
+ FMULXv2i32_indexed = 3822,
+ FMULXv2i64_indexed = 3823,
+ FMULXv4f16 = 3824,
+ FMULXv4f32 = 3825,
+ FMULXv4i16_indexed = 3826,
+ FMULXv4i32_indexed = 3827,
+ FMULXv8f16 = 3828,
+ FMULXv8i16_indexed = 3829,
+ FMUL_2Z2Z_D = 3830,
+ FMUL_2Z2Z_H = 3831,
+ FMUL_2Z2Z_S = 3832,
+ FMUL_2ZZ_D = 3833,
+ FMUL_2ZZ_H = 3834,
+ FMUL_2ZZ_S = 3835,
+ FMUL_4Z4Z_D = 3836,
+ FMUL_4Z4Z_H = 3837,
+ FMUL_4Z4Z_S = 3838,
+ FMUL_4ZZ_D = 3839,
+ FMUL_4ZZ_H = 3840,
+ FMUL_4ZZ_S = 3841,
+ FMUL_ZPmI_D = 3842,
+ FMUL_ZPmI_H = 3843,
+ FMUL_ZPmI_S = 3844,
+ FMUL_ZPmZ_D = 3845,
+ FMUL_ZPmZ_H = 3846,
+ FMUL_ZPmZ_S = 3847,
+ FMUL_ZZZI_D = 3848,
+ FMUL_ZZZI_H = 3849,
+ FMUL_ZZZI_S = 3850,
+ FMUL_ZZZ_D = 3851,
+ FMUL_ZZZ_H = 3852,
+ FMUL_ZZZ_S = 3853,
+ FMULv1i16_indexed = 3854,
+ FMULv1i32_indexed = 3855,
+ FMULv1i64_indexed = 3856,
+ FMULv2f32 = 3857,
+ FMULv2f64 = 3858,
+ FMULv2i32_indexed = 3859,
+ FMULv2i64_indexed = 3860,
+ FMULv4f16 = 3861,
+ FMULv4f32 = 3862,
+ FMULv4i16_indexed = 3863,
+ FMULv4i32_indexed = 3864,
+ FMULv8f16 = 3865,
+ FMULv8i16_indexed = 3866,
+ FNEGDr = 3867,
+ FNEGHr = 3868,
+ FNEGSr = 3869,
+ FNEG_ZPmZ_D = 3870,
+ FNEG_ZPmZ_H = 3871,
+ FNEG_ZPmZ_S = 3872,
+ FNEG_ZPzZ_D = 3873,
+ FNEG_ZPzZ_H = 3874,
+ FNEG_ZPzZ_S = 3875,
+ FNEGv2f32 = 3876,
+ FNEGv2f64 = 3877,
+ FNEGv4f16 = 3878,
+ FNEGv4f32 = 3879,
+ FNEGv8f16 = 3880,
+ FNMADDDrrr = 3881,
+ FNMADDHrrr = 3882,
+ FNMADDSrrr = 3883,
+ FNMAD_ZPmZZ_D = 3884,
+ FNMAD_ZPmZZ_H = 3885,
+ FNMAD_ZPmZZ_S = 3886,
+ FNMLA_ZPmZZ_D = 3887,
+ FNMLA_ZPmZZ_H = 3888,
+ FNMLA_ZPmZZ_S = 3889,
+ FNMLS_ZPmZZ_D = 3890,
+ FNMLS_ZPmZZ_H = 3891,
+ FNMLS_ZPmZZ_S = 3892,
+ FNMSB_ZPmZZ_D = 3893,
+ FNMSB_ZPmZZ_H = 3894,
+ FNMSB_ZPmZZ_S = 3895,
+ FNMSUBDrrr = 3896,
+ FNMSUBHrrr = 3897,
+ FNMSUBSrrr = 3898,
+ FNMULDrr = 3899,
+ FNMULHrr = 3900,
+ FNMULSrr = 3901,
+ FRECPE_ZZ_D = 3902,
+ FRECPE_ZZ_H = 3903,
+ FRECPE_ZZ_S = 3904,
+ FRECPEv1f16 = 3905,
+ FRECPEv1i32 = 3906,
+ FRECPEv1i64 = 3907,
+ FRECPEv2f32 = 3908,
+ FRECPEv2f64 = 3909,
+ FRECPEv4f16 = 3910,
+ FRECPEv4f32 = 3911,
+ FRECPEv8f16 = 3912,
+ FRECPS16 = 3913,
+ FRECPS32 = 3914,
+ FRECPS64 = 3915,
+ FRECPS_ZZZ_D = 3916,
+ FRECPS_ZZZ_H = 3917,
+ FRECPS_ZZZ_S = 3918,
+ FRECPSv2f32 = 3919,
+ FRECPSv2f64 = 3920,
+ FRECPSv4f16 = 3921,
+ FRECPSv4f32 = 3922,
+ FRECPSv8f16 = 3923,
+ FRECPX_ZPmZ_D = 3924,
+ FRECPX_ZPmZ_H = 3925,
+ FRECPX_ZPmZ_S = 3926,
+ FRECPX_ZPzZ_D = 3927,
+ FRECPX_ZPzZ_H = 3928,
+ FRECPX_ZPzZ_S = 3929,
+ FRECPXv1f16 = 3930,
+ FRECPXv1i32 = 3931,
+ FRECPXv1i64 = 3932,
+ FRINT32XDr = 3933,
+ FRINT32XSr = 3934,
+ FRINT32X_ZPmZ_D = 3935,
+ FRINT32X_ZPmZ_S = 3936,
+ FRINT32X_ZPzZ_D = 3937,
+ FRINT32X_ZPzZ_S = 3938,
+ FRINT32Xv2f32 = 3939,
+ FRINT32Xv2f64 = 3940,
+ FRINT32Xv4f32 = 3941,
+ FRINT32ZDr = 3942,
+ FRINT32ZSr = 3943,
+ FRINT32Z_ZPmZ_D = 3944,
+ FRINT32Z_ZPmZ_S = 3945,
+ FRINT32Z_ZPzZ_D = 3946,
+ FRINT32Z_ZPzZ_S = 3947,
+ FRINT32Zv2f32 = 3948,
+ FRINT32Zv2f64 = 3949,
+ FRINT32Zv4f32 = 3950,
+ FRINT64XDr = 3951,
+ FRINT64XSr = 3952,
+ FRINT64X_ZPmZ_D = 3953,
+ FRINT64X_ZPmZ_S = 3954,
+ FRINT64X_ZPzZ_D = 3955,
+ FRINT64X_ZPzZ_S = 3956,
+ FRINT64Xv2f32 = 3957,
+ FRINT64Xv2f64 = 3958,
+ FRINT64Xv4f32 = 3959,
+ FRINT64ZDr = 3960,
+ FRINT64ZSr = 3961,
+ FRINT64Z_ZPmZ_D = 3962,
+ FRINT64Z_ZPmZ_S = 3963,
+ FRINT64Z_ZPzZ_D = 3964,
+ FRINT64Z_ZPzZ_S = 3965,
+ FRINT64Zv2f32 = 3966,
+ FRINT64Zv2f64 = 3967,
+ FRINT64Zv4f32 = 3968,
+ FRINTADr = 3969,
+ FRINTAHr = 3970,
+ FRINTASr = 3971,
+ FRINTA_2Z2Z_S = 3972,
+ FRINTA_4Z4Z_S = 3973,
+ FRINTA_ZPmZ_D = 3974,
+ FRINTA_ZPmZ_H = 3975,
+ FRINTA_ZPmZ_S = 3976,
+ FRINTA_ZPzZ_D = 3977,
+ FRINTA_ZPzZ_H = 3978,
+ FRINTA_ZPzZ_S = 3979,
+ FRINTAv2f32 = 3980,
+ FRINTAv2f64 = 3981,
+ FRINTAv4f16 = 3982,
+ FRINTAv4f32 = 3983,
+ FRINTAv8f16 = 3984,
+ FRINTIDr = 3985,
+ FRINTIHr = 3986,
+ FRINTISr = 3987,
+ FRINTI_ZPmZ_D = 3988,
+ FRINTI_ZPmZ_H = 3989,
+ FRINTI_ZPmZ_S = 3990,
+ FRINTI_ZPzZ_D = 3991,
+ FRINTI_ZPzZ_H = 3992,
+ FRINTI_ZPzZ_S = 3993,
+ FRINTIv2f32 = 3994,
+ FRINTIv2f64 = 3995,
+ FRINTIv4f16 = 3996,
+ FRINTIv4f32 = 3997,
+ FRINTIv8f16 = 3998,
+ FRINTMDr = 3999,
+ FRINTMHr = 4000,
+ FRINTMSr = 4001,
+ FRINTM_2Z2Z_S = 4002,
+ FRINTM_4Z4Z_S = 4003,
+ FRINTM_ZPmZ_D = 4004,
+ FRINTM_ZPmZ_H = 4005,
+ FRINTM_ZPmZ_S = 4006,
+ FRINTM_ZPzZ_D = 4007,
+ FRINTM_ZPzZ_H = 4008,
+ FRINTM_ZPzZ_S = 4009,
+ FRINTMv2f32 = 4010,
+ FRINTMv2f64 = 4011,
+ FRINTMv4f16 = 4012,
+ FRINTMv4f32 = 4013,
+ FRINTMv8f16 = 4014,
+ FRINTNDr = 4015,
+ FRINTNHr = 4016,
+ FRINTNSr = 4017,
+ FRINTN_2Z2Z_S = 4018,
+ FRINTN_4Z4Z_S = 4019,
+ FRINTN_ZPmZ_D = 4020,
+ FRINTN_ZPmZ_H = 4021,
+ FRINTN_ZPmZ_S = 4022,
+ FRINTN_ZPzZ_D = 4023,
+ FRINTN_ZPzZ_H = 4024,
+ FRINTN_ZPzZ_S = 4025,
+ FRINTNv2f32 = 4026,
+ FRINTNv2f64 = 4027,
+ FRINTNv4f16 = 4028,
+ FRINTNv4f32 = 4029,
+ FRINTNv8f16 = 4030,
+ FRINTPDr = 4031,
+ FRINTPHr = 4032,
+ FRINTPSr = 4033,
+ FRINTP_2Z2Z_S = 4034,
+ FRINTP_4Z4Z_S = 4035,
+ FRINTP_ZPmZ_D = 4036,
+ FRINTP_ZPmZ_H = 4037,
+ FRINTP_ZPmZ_S = 4038,
+ FRINTP_ZPzZ_D = 4039,
+ FRINTP_ZPzZ_H = 4040,
+ FRINTP_ZPzZ_S = 4041,
+ FRINTPv2f32 = 4042,
+ FRINTPv2f64 = 4043,
+ FRINTPv4f16 = 4044,
+ FRINTPv4f32 = 4045,
+ FRINTPv8f16 = 4046,
+ FRINTXDr = 4047,
+ FRINTXHr = 4048,
+ FRINTXSr = 4049,
+ FRINTX_ZPmZ_D = 4050,
+ FRINTX_ZPmZ_H = 4051,
+ FRINTX_ZPmZ_S = 4052,
+ FRINTX_ZPzZ_D = 4053,
+ FRINTX_ZPzZ_H = 4054,
+ FRINTX_ZPzZ_S = 4055,
+ FRINTXv2f32 = 4056,
+ FRINTXv2f64 = 4057,
+ FRINTXv4f16 = 4058,
+ FRINTXv4f32 = 4059,
+ FRINTXv8f16 = 4060,
+ FRINTZDr = 4061,
+ FRINTZHr = 4062,
+ FRINTZSr = 4063,
+ FRINTZ_ZPmZ_D = 4064,
+ FRINTZ_ZPmZ_H = 4065,
+ FRINTZ_ZPmZ_S = 4066,
+ FRINTZ_ZPzZ_D = 4067,
+ FRINTZ_ZPzZ_H = 4068,
+ FRINTZ_ZPzZ_S = 4069,
+ FRINTZv2f32 = 4070,
+ FRINTZv2f64 = 4071,
+ FRINTZv4f16 = 4072,
+ FRINTZv4f32 = 4073,
+ FRINTZv8f16 = 4074,
+ FRSQRTE_ZZ_D = 4075,
+ FRSQRTE_ZZ_H = 4076,
+ FRSQRTE_ZZ_S = 4077,
+ FRSQRTEv1f16 = 4078,
+ FRSQRTEv1i32 = 4079,
+ FRSQRTEv1i64 = 4080,
+ FRSQRTEv2f32 = 4081,
+ FRSQRTEv2f64 = 4082,
+ FRSQRTEv4f16 = 4083,
+ FRSQRTEv4f32 = 4084,
+ FRSQRTEv8f16 = 4085,
+ FRSQRTS16 = 4086,
+ FRSQRTS32 = 4087,
+ FRSQRTS64 = 4088,
+ FRSQRTS_ZZZ_D = 4089,
+ FRSQRTS_ZZZ_H = 4090,
+ FRSQRTS_ZZZ_S = 4091,
+ FRSQRTSv2f32 = 4092,
+ FRSQRTSv2f64 = 4093,
+ FRSQRTSv4f16 = 4094,
+ FRSQRTSv4f32 = 4095,
+ FRSQRTSv8f16 = 4096,
+ FSCALE_2Z2Z_D = 4097,
+ FSCALE_2Z2Z_H = 4098,
+ FSCALE_2Z2Z_S = 4099,
+ FSCALE_2ZZ_D = 4100,
+ FSCALE_2ZZ_H = 4101,
+ FSCALE_2ZZ_S = 4102,
+ FSCALE_4Z4Z_D = 4103,
+ FSCALE_4Z4Z_H = 4104,
+ FSCALE_4Z4Z_S = 4105,
+ FSCALE_4ZZ_D = 4106,
+ FSCALE_4ZZ_H = 4107,
+ FSCALE_4ZZ_S = 4108,
+ FSCALE_ZPmZ_D = 4109,
+ FSCALE_ZPmZ_H = 4110,
+ FSCALE_ZPmZ_S = 4111,
+ FSCALEv2f32 = 4112,
+ FSCALEv2f64 = 4113,
+ FSCALEv4f16 = 4114,
+ FSCALEv4f32 = 4115,
+ FSCALEv8f16 = 4116,
+ FSQRTDr = 4117,
+ FSQRTHr = 4118,
+ FSQRTSr = 4119,
+ FSQRT_ZPZz_D = 4120,
+ FSQRT_ZPZz_H = 4121,
+ FSQRT_ZPZz_S = 4122,
+ FSQRT_ZPmZ_D = 4123,
+ FSQRT_ZPmZ_H = 4124,
+ FSQRT_ZPmZ_S = 4125,
+ FSQRTv2f32 = 4126,
+ FSQRTv2f64 = 4127,
+ FSQRTv4f16 = 4128,
+ FSQRTv4f32 = 4129,
+ FSQRTv8f16 = 4130,
+ FSUBDrr = 4131,
+ FSUBHrr = 4132,
+ FSUBR_ZPmI_D = 4133,
+ FSUBR_ZPmI_H = 4134,
+ FSUBR_ZPmI_S = 4135,
+ FSUBR_ZPmZ_D = 4136,
+ FSUBR_ZPmZ_H = 4137,
+ FSUBR_ZPmZ_S = 4138,
+ FSUBSrr = 4139,
+ FSUB_VG2_M2Z_D = 4140,
+ FSUB_VG2_M2Z_H = 4141,
+ FSUB_VG2_M2Z_S = 4142,
+ FSUB_VG4_M4Z_D = 4143,
+ FSUB_VG4_M4Z_H = 4144,
+ FSUB_VG4_M4Z_S = 4145,
+ FSUB_ZPmI_D = 4146,
+ FSUB_ZPmI_H = 4147,
+ FSUB_ZPmI_S = 4148,
+ FSUB_ZPmZ_D = 4149,
+ FSUB_ZPmZ_H = 4150,
+ FSUB_ZPmZ_S = 4151,
+ FSUB_ZZZ_D = 4152,
+ FSUB_ZZZ_H = 4153,
+ FSUB_ZZZ_S = 4154,
+ FSUBv2f32 = 4155,
+ FSUBv2f64 = 4156,
+ FSUBv4f16 = 4157,
+ FSUBv4f32 = 4158,
+ FSUBv8f16 = 4159,
+ FTMAD_ZZI_D = 4160,
+ FTMAD_ZZI_H = 4161,
+ FTMAD_ZZI_S = 4162,
+ FTMOPA_M2ZZZI_BtoH = 4163,
+ FTMOPA_M2ZZZI_BtoS = 4164,
+ FTMOPA_M2ZZZI_HtoH = 4165,
+ FTMOPA_M2ZZZI_HtoS = 4166,
+ FTMOPA_M2ZZZI_StoS = 4167,
+ FTSMUL_ZZZ_D = 4168,
+ FTSMUL_ZZZ_H = 4169,
+ FTSMUL_ZZZ_S = 4170,
+ FTSSEL_ZZZ_D = 4171,
+ FTSSEL_ZZZ_H = 4172,
+ FTSSEL_ZZZ_S = 4173,
+ FVDOTB_VG4_M2ZZI_BtoS = 4174,
+ FVDOTT_VG4_M2ZZI_BtoS = 4175,
+ FVDOT_VG2_M2ZZI_BtoH = 4176,
+ FVDOT_VG2_M2ZZI_HtoS = 4177,
+ GCSPOPCX = 4178,
+ GCSPOPM = 4179,
+ GCSPOPX = 4180,
+ GCSPUSHM = 4181,
+ GCSPUSHX = 4182,
+ GCSSS1 = 4183,
+ GCSSS2 = 4184,
+ GCSSTR = 4185,
+ GCSSTTR = 4186,
+ GLD1B_D = 4187,
+ GLD1B_D_IMM = 4188,
+ GLD1B_D_SXTW = 4189,
+ GLD1B_D_UXTW = 4190,
+ GLD1B_S_IMM = 4191,
+ GLD1B_S_SXTW = 4192,
+ GLD1B_S_UXTW = 4193,
+ GLD1D = 4194,
+ GLD1D_IMM = 4195,
+ GLD1D_SCALED = 4196,
+ GLD1D_SXTW = 4197,
+ GLD1D_SXTW_SCALED = 4198,
+ GLD1D_UXTW = 4199,
+ GLD1D_UXTW_SCALED = 4200,
+ GLD1H_D = 4201,
+ GLD1H_D_IMM = 4202,
+ GLD1H_D_SCALED = 4203,
+ GLD1H_D_SXTW = 4204,
+ GLD1H_D_SXTW_SCALED = 4205,
+ GLD1H_D_UXTW = 4206,
+ GLD1H_D_UXTW_SCALED = 4207,
+ GLD1H_S_IMM = 4208,
+ GLD1H_S_SXTW = 4209,
+ GLD1H_S_SXTW_SCALED = 4210,
+ GLD1H_S_UXTW = 4211,
+ GLD1H_S_UXTW_SCALED = 4212,
+ GLD1Q = 4213,
+ GLD1SB_D = 4214,
+ GLD1SB_D_IMM = 4215,
+ GLD1SB_D_SXTW = 4216,
+ GLD1SB_D_UXTW = 4217,
+ GLD1SB_S_IMM = 4218,
+ GLD1SB_S_SXTW = 4219,
+ GLD1SB_S_UXTW = 4220,
+ GLD1SH_D = 4221,
+ GLD1SH_D_IMM = 4222,
+ GLD1SH_D_SCALED = 4223,
+ GLD1SH_D_SXTW = 4224,
+ GLD1SH_D_SXTW_SCALED = 4225,
+ GLD1SH_D_UXTW = 4226,
+ GLD1SH_D_UXTW_SCALED = 4227,
+ GLD1SH_S_IMM = 4228,
+ GLD1SH_S_SXTW = 4229,
+ GLD1SH_S_SXTW_SCALED = 4230,
+ GLD1SH_S_UXTW = 4231,
+ GLD1SH_S_UXTW_SCALED = 4232,
+ GLD1SW_D = 4233,
+ GLD1SW_D_IMM = 4234,
+ GLD1SW_D_SCALED = 4235,
+ GLD1SW_D_SXTW = 4236,
+ GLD1SW_D_SXTW_SCALED = 4237,
+ GLD1SW_D_UXTW = 4238,
+ GLD1SW_D_UXTW_SCALED = 4239,
+ GLD1W_D = 4240,
+ GLD1W_D_IMM = 4241,
+ GLD1W_D_SCALED = 4242,
+ GLD1W_D_SXTW = 4243,
+ GLD1W_D_SXTW_SCALED = 4244,
+ GLD1W_D_UXTW = 4245,
+ GLD1W_D_UXTW_SCALED = 4246,
+ GLD1W_IMM = 4247,
+ GLD1W_SXTW = 4248,
+ GLD1W_SXTW_SCALED = 4249,
+ GLD1W_UXTW = 4250,
+ GLD1W_UXTW_SCALED = 4251,
+ GLDFF1B_D = 4252,
+ GLDFF1B_D_IMM = 4253,
+ GLDFF1B_D_SXTW = 4254,
+ GLDFF1B_D_UXTW = 4255,
+ GLDFF1B_S_IMM = 4256,
+ GLDFF1B_S_SXTW = 4257,
+ GLDFF1B_S_UXTW = 4258,
+ GLDFF1D = 4259,
+ GLDFF1D_IMM = 4260,
+ GLDFF1D_SCALED = 4261,
+ GLDFF1D_SXTW = 4262,
+ GLDFF1D_SXTW_SCALED = 4263,
+ GLDFF1D_UXTW = 4264,
+ GLDFF1D_UXTW_SCALED = 4265,
+ GLDFF1H_D = 4266,
+ GLDFF1H_D_IMM = 4267,
+ GLDFF1H_D_SCALED = 4268,
+ GLDFF1H_D_SXTW = 4269,
+ GLDFF1H_D_SXTW_SCALED = 4270,
+ GLDFF1H_D_UXTW = 4271,
+ GLDFF1H_D_UXTW_SCALED = 4272,
+ GLDFF1H_S_IMM = 4273,
+ GLDFF1H_S_SXTW = 4274,
+ GLDFF1H_S_SXTW_SCALED = 4275,
+ GLDFF1H_S_UXTW = 4276,
+ GLDFF1H_S_UXTW_SCALED = 4277,
+ GLDFF1SB_D = 4278,
+ GLDFF1SB_D_IMM = 4279,
+ GLDFF1SB_D_SXTW = 4280,
+ GLDFF1SB_D_UXTW = 4281,
+ GLDFF1SB_S_IMM = 4282,
+ GLDFF1SB_S_SXTW = 4283,
+ GLDFF1SB_S_UXTW = 4284,
+ GLDFF1SH_D = 4285,
+ GLDFF1SH_D_IMM = 4286,
+ GLDFF1SH_D_SCALED = 4287,
+ GLDFF1SH_D_SXTW = 4288,
+ GLDFF1SH_D_SXTW_SCALED = 4289,
+ GLDFF1SH_D_UXTW = 4290,
+ GLDFF1SH_D_UXTW_SCALED = 4291,
+ GLDFF1SH_S_IMM = 4292,
+ GLDFF1SH_S_SXTW = 4293,
+ GLDFF1SH_S_SXTW_SCALED = 4294,
+ GLDFF1SH_S_UXTW = 4295,
+ GLDFF1SH_S_UXTW_SCALED = 4296,
+ GLDFF1SW_D = 4297,
+ GLDFF1SW_D_IMM = 4298,
+ GLDFF1SW_D_SCALED = 4299,
+ GLDFF1SW_D_SXTW = 4300,
+ GLDFF1SW_D_SXTW_SCALED = 4301,
+ GLDFF1SW_D_UXTW = 4302,
+ GLDFF1SW_D_UXTW_SCALED = 4303,
+ GLDFF1W_D = 4304,
+ GLDFF1W_D_IMM = 4305,
+ GLDFF1W_D_SCALED = 4306,
+ GLDFF1W_D_SXTW = 4307,
+ GLDFF1W_D_SXTW_SCALED = 4308,
+ GLDFF1W_D_UXTW = 4309,
+ GLDFF1W_D_UXTW_SCALED = 4310,
+ GLDFF1W_IMM = 4311,
+ GLDFF1W_SXTW = 4312,
+ GLDFF1W_SXTW_SCALED = 4313,
+ GLDFF1W_UXTW = 4314,
+ GLDFF1W_UXTW_SCALED = 4315,
+ GMI = 4316,
+ HINT = 4317,
+ HISTCNT_ZPzZZ_D = 4318,
+ HISTCNT_ZPzZZ_S = 4319,
+ HISTSEG_ZZZ = 4320,
+ HLT = 4321,
+ HVC = 4322,
+ INCB_XPiI = 4323,
+ INCD_XPiI = 4324,
+ INCD_ZPiI = 4325,
+ INCH_XPiI = 4326,
+ INCH_ZPiI = 4327,
+ INCP_XP_B = 4328,
+ INCP_XP_D = 4329,
+ INCP_XP_H = 4330,
+ INCP_XP_S = 4331,
+ INCP_ZP_D = 4332,
+ INCP_ZP_H = 4333,
+ INCP_ZP_S = 4334,
+ INCW_XPiI = 4335,
+ INCW_ZPiI = 4336,
+ INDEX_II_B = 4337,
+ INDEX_II_D = 4338,
+ INDEX_II_H = 4339,
+ INDEX_II_S = 4340,
+ INDEX_IR_B = 4341,
+ INDEX_IR_D = 4342,
+ INDEX_IR_H = 4343,
+ INDEX_IR_S = 4344,
+ INDEX_RI_B = 4345,
+ INDEX_RI_D = 4346,
+ INDEX_RI_H = 4347,
+ INDEX_RI_S = 4348,
+ INDEX_RR_B = 4349,
+ INDEX_RR_D = 4350,
+ INDEX_RR_H = 4351,
+ INDEX_RR_S = 4352,
+ INSERT_MXIPZ_H_B = 4353,
+ INSERT_MXIPZ_H_D = 4354,
+ INSERT_MXIPZ_H_H = 4355,
+ INSERT_MXIPZ_H_Q = 4356,
+ INSERT_MXIPZ_H_S = 4357,
+ INSERT_MXIPZ_V_B = 4358,
+ INSERT_MXIPZ_V_D = 4359,
+ INSERT_MXIPZ_V_H = 4360,
+ INSERT_MXIPZ_V_Q = 4361,
+ INSERT_MXIPZ_V_S = 4362,
+ INSR_ZR_B = 4363,
+ INSR_ZR_D = 4364,
+ INSR_ZR_H = 4365,
+ INSR_ZR_S = 4366,
+ INSR_ZV_B = 4367,
+ INSR_ZV_D = 4368,
+ INSR_ZV_H = 4369,
+ INSR_ZV_S = 4370,
+ INSvi16gpr = 4371,
+ INSvi16lane = 4372,
+ INSvi32gpr = 4373,
+ INSvi32lane = 4374,
+ INSvi64gpr = 4375,
+ INSvi64lane = 4376,
+ INSvi8gpr = 4377,
+ INSvi8lane = 4378,
+ IRG = 4379,
+ ISB = 4380,
+ LASTA_RPZ_B = 4381,
+ LASTA_RPZ_D = 4382,
+ LASTA_RPZ_H = 4383,
+ LASTA_RPZ_S = 4384,
+ LASTA_VPZ_B = 4385,
+ LASTA_VPZ_D = 4386,
+ LASTA_VPZ_H = 4387,
+ LASTA_VPZ_S = 4388,
+ LASTB_RPZ_B = 4389,
+ LASTB_RPZ_D = 4390,
+ LASTB_RPZ_H = 4391,
+ LASTB_RPZ_S = 4392,
+ LASTB_VPZ_B = 4393,
+ LASTB_VPZ_D = 4394,
+ LASTB_VPZ_H = 4395,
+ LASTB_VPZ_S = 4396,
+ LASTP_XPP_B = 4397,
+ LASTP_XPP_D = 4398,
+ LASTP_XPP_H = 4399,
+ LASTP_XPP_S = 4400,
+ LD1B = 4401,
+ LD1B_2Z = 4402,
+ LD1B_2Z_IMM = 4403,
+ LD1B_2Z_STRIDED = 4404,
+ LD1B_2Z_STRIDED_IMM = 4405,
+ LD1B_4Z = 4406,
+ LD1B_4Z_IMM = 4407,
+ LD1B_4Z_STRIDED = 4408,
+ LD1B_4Z_STRIDED_IMM = 4409,
+ LD1B_D = 4410,
+ LD1B_D_IMM = 4411,
+ LD1B_H = 4412,
+ LD1B_H_IMM = 4413,
+ LD1B_IMM = 4414,
+ LD1B_S = 4415,
+ LD1B_S_IMM = 4416,
+ LD1D = 4417,
+ LD1D_2Z = 4418,
+ LD1D_2Z_IMM = 4419,
+ LD1D_2Z_STRIDED = 4420,
+ LD1D_2Z_STRIDED_IMM = 4421,
+ LD1D_4Z = 4422,
+ LD1D_4Z_IMM = 4423,
+ LD1D_4Z_STRIDED = 4424,
+ LD1D_4Z_STRIDED_IMM = 4425,
+ LD1D_IMM = 4426,
+ LD1D_Q = 4427,
+ LD1D_Q_IMM = 4428,
+ LD1Fourv16b = 4429,
+ LD1Fourv16b_POST = 4430,
+ LD1Fourv1d = 4431,
+ LD1Fourv1d_POST = 4432,
+ LD1Fourv2d = 4433,
+ LD1Fourv2d_POST = 4434,
+ LD1Fourv2s = 4435,
+ LD1Fourv2s_POST = 4436,
+ LD1Fourv4h = 4437,
+ LD1Fourv4h_POST = 4438,
+ LD1Fourv4s = 4439,
+ LD1Fourv4s_POST = 4440,
+ LD1Fourv8b = 4441,
+ LD1Fourv8b_POST = 4442,
+ LD1Fourv8h = 4443,
+ LD1Fourv8h_POST = 4444,
+ LD1H = 4445,
+ LD1H_2Z = 4446,
+ LD1H_2Z_IMM = 4447,
+ LD1H_2Z_STRIDED = 4448,
+ LD1H_2Z_STRIDED_IMM = 4449,
+ LD1H_4Z = 4450,
+ LD1H_4Z_IMM = 4451,
+ LD1H_4Z_STRIDED = 4452,
+ LD1H_4Z_STRIDED_IMM = 4453,
+ LD1H_D = 4454,
+ LD1H_D_IMM = 4455,
+ LD1H_IMM = 4456,
+ LD1H_S = 4457,
+ LD1H_S_IMM = 4458,
+ LD1Onev16b = 4459,
+ LD1Onev16b_POST = 4460,
+ LD1Onev1d = 4461,
+ LD1Onev1d_POST = 4462,
+ LD1Onev2d = 4463,
+ LD1Onev2d_POST = 4464,
+ LD1Onev2s = 4465,
+ LD1Onev2s_POST = 4466,
+ LD1Onev4h = 4467,
+ LD1Onev4h_POST = 4468,
+ LD1Onev4s = 4469,
+ LD1Onev4s_POST = 4470,
+ LD1Onev8b = 4471,
+ LD1Onev8b_POST = 4472,
+ LD1Onev8h = 4473,
+ LD1Onev8h_POST = 4474,
+ LD1RB_D_IMM = 4475,
+ LD1RB_H_IMM = 4476,
+ LD1RB_IMM = 4477,
+ LD1RB_S_IMM = 4478,
+ LD1RD_IMM = 4479,
+ LD1RH_D_IMM = 4480,
+ LD1RH_IMM = 4481,
+ LD1RH_S_IMM = 4482,
+ LD1RO_B = 4483,
+ LD1RO_B_IMM = 4484,
+ LD1RO_D = 4485,
+ LD1RO_D_IMM = 4486,
+ LD1RO_H = 4487,
+ LD1RO_H_IMM = 4488,
+ LD1RO_W = 4489,
+ LD1RO_W_IMM = 4490,
+ LD1RQ_B = 4491,
+ LD1RQ_B_IMM = 4492,
+ LD1RQ_D = 4493,
+ LD1RQ_D_IMM = 4494,
+ LD1RQ_H = 4495,
+ LD1RQ_H_IMM = 4496,
+ LD1RQ_W = 4497,
+ LD1RQ_W_IMM = 4498,
+ LD1RSB_D_IMM = 4499,
+ LD1RSB_H_IMM = 4500,
+ LD1RSB_S_IMM = 4501,
+ LD1RSH_D_IMM = 4502,
+ LD1RSH_S_IMM = 4503,
+ LD1RSW_IMM = 4504,
+ LD1RW_D_IMM = 4505,
+ LD1RW_IMM = 4506,
+ LD1Rv16b = 4507,
+ LD1Rv16b_POST = 4508,
+ LD1Rv1d = 4509,
+ LD1Rv1d_POST = 4510,
+ LD1Rv2d = 4511,
+ LD1Rv2d_POST = 4512,
+ LD1Rv2s = 4513,
+ LD1Rv2s_POST = 4514,
+ LD1Rv4h = 4515,
+ LD1Rv4h_POST = 4516,
+ LD1Rv4s = 4517,
+ LD1Rv4s_POST = 4518,
+ LD1Rv8b = 4519,
+ LD1Rv8b_POST = 4520,
+ LD1Rv8h = 4521,
+ LD1Rv8h_POST = 4522,
+ LD1SB_D = 4523,
+ LD1SB_D_IMM = 4524,
+ LD1SB_H = 4525,
+ LD1SB_H_IMM = 4526,
+ LD1SB_S = 4527,
+ LD1SB_S_IMM = 4528,
+ LD1SH_D = 4529,
+ LD1SH_D_IMM = 4530,
+ LD1SH_S = 4531,
+ LD1SH_S_IMM = 4532,
+ LD1SW_D = 4533,
+ LD1SW_D_IMM = 4534,
+ LD1Threev16b = 4535,
+ LD1Threev16b_POST = 4536,
+ LD1Threev1d = 4537,
+ LD1Threev1d_POST = 4538,
+ LD1Threev2d = 4539,
+ LD1Threev2d_POST = 4540,
+ LD1Threev2s = 4541,
+ LD1Threev2s_POST = 4542,
+ LD1Threev4h = 4543,
+ LD1Threev4h_POST = 4544,
+ LD1Threev4s = 4545,
+ LD1Threev4s_POST = 4546,
+ LD1Threev8b = 4547,
+ LD1Threev8b_POST = 4548,
+ LD1Threev8h = 4549,
+ LD1Threev8h_POST = 4550,
+ LD1Twov16b = 4551,
+ LD1Twov16b_POST = 4552,
+ LD1Twov1d = 4553,
+ LD1Twov1d_POST = 4554,
+ LD1Twov2d = 4555,
+ LD1Twov2d_POST = 4556,
+ LD1Twov2s = 4557,
+ LD1Twov2s_POST = 4558,
+ LD1Twov4h = 4559,
+ LD1Twov4h_POST = 4560,
+ LD1Twov4s = 4561,
+ LD1Twov4s_POST = 4562,
+ LD1Twov8b = 4563,
+ LD1Twov8b_POST = 4564,
+ LD1Twov8h = 4565,
+ LD1Twov8h_POST = 4566,
+ LD1W = 4567,
+ LD1W_2Z = 4568,
+ LD1W_2Z_IMM = 4569,
+ LD1W_2Z_STRIDED = 4570,
+ LD1W_2Z_STRIDED_IMM = 4571,
+ LD1W_4Z = 4572,
+ LD1W_4Z_IMM = 4573,
+ LD1W_4Z_STRIDED = 4574,
+ LD1W_4Z_STRIDED_IMM = 4575,
+ LD1W_D = 4576,
+ LD1W_D_IMM = 4577,
+ LD1W_IMM = 4578,
+ LD1W_Q = 4579,
+ LD1W_Q_IMM = 4580,
+ LD1_MXIPXX_H_B = 4581,
+ LD1_MXIPXX_H_D = 4582,
+ LD1_MXIPXX_H_H = 4583,
+ LD1_MXIPXX_H_Q = 4584,
+ LD1_MXIPXX_H_S = 4585,
+ LD1_MXIPXX_V_B = 4586,
+ LD1_MXIPXX_V_D = 4587,
+ LD1_MXIPXX_V_H = 4588,
+ LD1_MXIPXX_V_Q = 4589,
+ LD1_MXIPXX_V_S = 4590,
+ LD1i16 = 4591,
+ LD1i16_POST = 4592,
+ LD1i32 = 4593,
+ LD1i32_POST = 4594,
+ LD1i64 = 4595,
+ LD1i64_POST = 4596,
+ LD1i8 = 4597,
+ LD1i8_POST = 4598,
+ LD2B = 4599,
+ LD2B_IMM = 4600,
+ LD2D = 4601,
+ LD2D_IMM = 4602,
+ LD2H = 4603,
+ LD2H_IMM = 4604,
+ LD2Q = 4605,
+ LD2Q_IMM = 4606,
+ LD2Rv16b = 4607,
+ LD2Rv16b_POST = 4608,
+ LD2Rv1d = 4609,
+ LD2Rv1d_POST = 4610,
+ LD2Rv2d = 4611,
+ LD2Rv2d_POST = 4612,
+ LD2Rv2s = 4613,
+ LD2Rv2s_POST = 4614,
+ LD2Rv4h = 4615,
+ LD2Rv4h_POST = 4616,
+ LD2Rv4s = 4617,
+ LD2Rv4s_POST = 4618,
+ LD2Rv8b = 4619,
+ LD2Rv8b_POST = 4620,
+ LD2Rv8h = 4621,
+ LD2Rv8h_POST = 4622,
+ LD2Twov16b = 4623,
+ LD2Twov16b_POST = 4624,
+ LD2Twov2d = 4625,
+ LD2Twov2d_POST = 4626,
+ LD2Twov2s = 4627,
+ LD2Twov2s_POST = 4628,
+ LD2Twov4h = 4629,
+ LD2Twov4h_POST = 4630,
+ LD2Twov4s = 4631,
+ LD2Twov4s_POST = 4632,
+ LD2Twov8b = 4633,
+ LD2Twov8b_POST = 4634,
+ LD2Twov8h = 4635,
+ LD2Twov8h_POST = 4636,
+ LD2W = 4637,
+ LD2W_IMM = 4638,
+ LD2i16 = 4639,
+ LD2i16_POST = 4640,
+ LD2i32 = 4641,
+ LD2i32_POST = 4642,
+ LD2i64 = 4643,
+ LD2i64_POST = 4644,
+ LD2i8 = 4645,
+ LD2i8_POST = 4646,
+ LD3B = 4647,
+ LD3B_IMM = 4648,
+ LD3D = 4649,
+ LD3D_IMM = 4650,
+ LD3H = 4651,
+ LD3H_IMM = 4652,
+ LD3Q = 4653,
+ LD3Q_IMM = 4654,
+ LD3Rv16b = 4655,
+ LD3Rv16b_POST = 4656,
+ LD3Rv1d = 4657,
+ LD3Rv1d_POST = 4658,
+ LD3Rv2d = 4659,
+ LD3Rv2d_POST = 4660,
+ LD3Rv2s = 4661,
+ LD3Rv2s_POST = 4662,
+ LD3Rv4h = 4663,
+ LD3Rv4h_POST = 4664,
+ LD3Rv4s = 4665,
+ LD3Rv4s_POST = 4666,
+ LD3Rv8b = 4667,
+ LD3Rv8b_POST = 4668,
+ LD3Rv8h = 4669,
+ LD3Rv8h_POST = 4670,
+ LD3Threev16b = 4671,
+ LD3Threev16b_POST = 4672,
+ LD3Threev2d = 4673,
+ LD3Threev2d_POST = 4674,
+ LD3Threev2s = 4675,
+ LD3Threev2s_POST = 4676,
+ LD3Threev4h = 4677,
+ LD3Threev4h_POST = 4678,
+ LD3Threev4s = 4679,
+ LD3Threev4s_POST = 4680,
+ LD3Threev8b = 4681,
+ LD3Threev8b_POST = 4682,
+ LD3Threev8h = 4683,
+ LD3Threev8h_POST = 4684,
+ LD3W = 4685,
+ LD3W_IMM = 4686,
+ LD3i16 = 4687,
+ LD3i16_POST = 4688,
+ LD3i32 = 4689,
+ LD3i32_POST = 4690,
+ LD3i64 = 4691,
+ LD3i64_POST = 4692,
+ LD3i8 = 4693,
+ LD3i8_POST = 4694,
+ LD4B = 4695,
+ LD4B_IMM = 4696,
+ LD4D = 4697,
+ LD4D_IMM = 4698,
+ LD4Fourv16b = 4699,
+ LD4Fourv16b_POST = 4700,
+ LD4Fourv2d = 4701,
+ LD4Fourv2d_POST = 4702,
+ LD4Fourv2s = 4703,
+ LD4Fourv2s_POST = 4704,
+ LD4Fourv4h = 4705,
+ LD4Fourv4h_POST = 4706,
+ LD4Fourv4s = 4707,
+ LD4Fourv4s_POST = 4708,
+ LD4Fourv8b = 4709,
+ LD4Fourv8b_POST = 4710,
+ LD4Fourv8h = 4711,
+ LD4Fourv8h_POST = 4712,
+ LD4H = 4713,
+ LD4H_IMM = 4714,
+ LD4Q = 4715,
+ LD4Q_IMM = 4716,
+ LD4Rv16b = 4717,
+ LD4Rv16b_POST = 4718,
+ LD4Rv1d = 4719,
+ LD4Rv1d_POST = 4720,
+ LD4Rv2d = 4721,
+ LD4Rv2d_POST = 4722,
+ LD4Rv2s = 4723,
+ LD4Rv2s_POST = 4724,
+ LD4Rv4h = 4725,
+ LD4Rv4h_POST = 4726,
+ LD4Rv4s = 4727,
+ LD4Rv4s_POST = 4728,
+ LD4Rv8b = 4729,
+ LD4Rv8b_POST = 4730,
+ LD4Rv8h = 4731,
+ LD4Rv8h_POST = 4732,
+ LD4W = 4733,
+ LD4W_IMM = 4734,
+ LD4i16 = 4735,
+ LD4i16_POST = 4736,
+ LD4i32 = 4737,
+ LD4i32_POST = 4738,
+ LD4i64 = 4739,
+ LD4i64_POST = 4740,
+ LD4i8 = 4741,
+ LD4i8_POST = 4742,
+ LD64B = 4743,
+ LDADDAB = 4744,
+ LDADDAH = 4745,
+ LDADDALB = 4746,
+ LDADDALH = 4747,
+ LDADDALW = 4748,
+ LDADDALX = 4749,
+ LDADDAW = 4750,
+ LDADDAX = 4751,
+ LDADDB = 4752,
+ LDADDH = 4753,
+ LDADDLB = 4754,
+ LDADDLH = 4755,
+ LDADDLW = 4756,
+ LDADDLX = 4757,
+ LDADDW = 4758,
+ LDADDX = 4759,
+ LDAP1 = 4760,
+ LDAPPi = 4761,
+ LDAPRB = 4762,
+ LDAPRH = 4763,
+ LDAPRW = 4764,
+ LDAPRWpost = 4765,
+ LDAPRX = 4766,
+ LDAPRXpost = 4767,
+ LDAPURBi = 4768,
+ LDAPURHi = 4769,
+ LDAPURSBWi = 4770,
+ LDAPURSBXi = 4771,
+ LDAPURSHWi = 4772,
+ LDAPURSHXi = 4773,
+ LDAPURSWi = 4774,
+ LDAPURXi = 4775,
+ LDAPURbi = 4776,
+ LDAPURdi = 4777,
+ LDAPURhi = 4778,
+ LDAPURi = 4779,
+ LDAPURqi = 4780,
+ LDAPURsi = 4781,
+ LDAPi = 4782,
+ LDARB = 4783,
+ LDARH = 4784,
+ LDARW = 4785,
+ LDARX = 4786,
+ LDATXRW = 4787,
+ LDATXRX = 4788,
+ LDAXPW = 4789,
+ LDAXPX = 4790,
+ LDAXRB = 4791,
+ LDAXRH = 4792,
+ LDAXRW = 4793,
+ LDAXRX = 4794,
+ LDBFADD = 4795,
+ LDBFADDA = 4796,
+ LDBFADDAL = 4797,
+ LDBFADDL = 4798,
+ LDBFMAX = 4799,
+ LDBFMAXA = 4800,
+ LDBFMAXAL = 4801,
+ LDBFMAXL = 4802,
+ LDBFMAXNM = 4803,
+ LDBFMAXNMA = 4804,
+ LDBFMAXNMAL = 4805,
+ LDBFMAXNML = 4806,
+ LDBFMIN = 4807,
+ LDBFMINA = 4808,
+ LDBFMINAL = 4809,
+ LDBFMINL = 4810,
+ LDBFMINNM = 4811,
+ LDBFMINNMA = 4812,
+ LDBFMINNMAL = 4813,
+ LDBFMINNML = 4814,
+ LDCLRAB = 4815,
+ LDCLRAH = 4816,
+ LDCLRALB = 4817,
+ LDCLRALH = 4818,
+ LDCLRALW = 4819,
+ LDCLRALX = 4820,
+ LDCLRAW = 4821,
+ LDCLRAX = 4822,
+ LDCLRB = 4823,
+ LDCLRH = 4824,
+ LDCLRLB = 4825,
+ LDCLRLH = 4826,
+ LDCLRLW = 4827,
+ LDCLRLX = 4828,
+ LDCLRP = 4829,
+ LDCLRPA = 4830,
+ LDCLRPAL = 4831,
+ LDCLRPL = 4832,
+ LDCLRW = 4833,
+ LDCLRX = 4834,
+ LDEORAB = 4835,
+ LDEORAH = 4836,
+ LDEORALB = 4837,
+ LDEORALH = 4838,
+ LDEORALW = 4839,
+ LDEORALX = 4840,
+ LDEORAW = 4841,
+ LDEORAX = 4842,
+ LDEORB = 4843,
+ LDEORH = 4844,
+ LDEORLB = 4845,
+ LDEORLH = 4846,
+ LDEORLW = 4847,
+ LDEORLX = 4848,
+ LDEORW = 4849,
+ LDEORX = 4850,
+ LDFADDAD = 4851,
+ LDFADDAH = 4852,
+ LDFADDALD = 4853,
+ LDFADDALH = 4854,
+ LDFADDALS = 4855,
+ LDFADDAS = 4856,
+ LDFADDD = 4857,
+ LDFADDH = 4858,
+ LDFADDLD = 4859,
+ LDFADDLH = 4860,
+ LDFADDLS = 4861,
+ LDFADDS = 4862,
+ LDFF1B = 4863,
+ LDFF1B_D = 4864,
+ LDFF1B_H = 4865,
+ LDFF1B_S = 4866,
+ LDFF1D = 4867,
+ LDFF1H = 4868,
+ LDFF1H_D = 4869,
+ LDFF1H_S = 4870,
+ LDFF1SB_D = 4871,
+ LDFF1SB_H = 4872,
+ LDFF1SB_S = 4873,
+ LDFF1SH_D = 4874,
+ LDFF1SH_S = 4875,
+ LDFF1SW_D = 4876,
+ LDFF1W = 4877,
+ LDFF1W_D = 4878,
+ LDFMAXAD = 4879,
+ LDFMAXAH = 4880,
+ LDFMAXALD = 4881,
+ LDFMAXALH = 4882,
+ LDFMAXALS = 4883,
+ LDFMAXAS = 4884,
+ LDFMAXD = 4885,
+ LDFMAXH = 4886,
+ LDFMAXLD = 4887,
+ LDFMAXLH = 4888,
+ LDFMAXLS = 4889,
+ LDFMAXNMAD = 4890,
+ LDFMAXNMAH = 4891,
+ LDFMAXNMALD = 4892,
+ LDFMAXNMALH = 4893,
+ LDFMAXNMALS = 4894,
+ LDFMAXNMAS = 4895,
+ LDFMAXNMD = 4896,
+ LDFMAXNMH = 4897,
+ LDFMAXNMLD = 4898,
+ LDFMAXNMLH = 4899,
+ LDFMAXNMLS = 4900,
+ LDFMAXNMS = 4901,
+ LDFMAXS = 4902,
+ LDFMINAD = 4903,
+ LDFMINAH = 4904,
+ LDFMINALD = 4905,
+ LDFMINALH = 4906,
+ LDFMINALS = 4907,
+ LDFMINAS = 4908,
+ LDFMIND = 4909,
+ LDFMINH = 4910,
+ LDFMINLD = 4911,
+ LDFMINLH = 4912,
+ LDFMINLS = 4913,
+ LDFMINNMAD = 4914,
+ LDFMINNMAH = 4915,
+ LDFMINNMALD = 4916,
+ LDFMINNMALH = 4917,
+ LDFMINNMALS = 4918,
+ LDFMINNMAS = 4919,
+ LDFMINNMD = 4920,
+ LDFMINNMH = 4921,
+ LDFMINNMLD = 4922,
+ LDFMINNMLH = 4923,
+ LDFMINNMLS = 4924,
+ LDFMINNMS = 4925,
+ LDFMINS = 4926,
+ LDG = 4927,
+ LDGM = 4928,
+ LDIAPPW = 4929,
+ LDIAPPWpost = 4930,
+ LDIAPPX = 4931,
+ LDIAPPXpost = 4932,
+ LDLARB = 4933,
+ LDLARH = 4934,
+ LDLARW = 4935,
+ LDLARX = 4936,
+ LDNF1B_D_IMM = 4937,
+ LDNF1B_H_IMM = 4938,
+ LDNF1B_IMM = 4939,
+ LDNF1B_S_IMM = 4940,
+ LDNF1D_IMM = 4941,
+ LDNF1H_D_IMM = 4942,
+ LDNF1H_IMM = 4943,
+ LDNF1H_S_IMM = 4944,
+ LDNF1SB_D_IMM = 4945,
+ LDNF1SB_H_IMM = 4946,
+ LDNF1SB_S_IMM = 4947,
+ LDNF1SH_D_IMM = 4948,
+ LDNF1SH_S_IMM = 4949,
+ LDNF1SW_D_IMM = 4950,
+ LDNF1W_D_IMM = 4951,
+ LDNF1W_IMM = 4952,
+ LDNPDi = 4953,
+ LDNPQi = 4954,
+ LDNPSi = 4955,
+ LDNPWi = 4956,
+ LDNPXi = 4957,
+ LDNT1B_2Z = 4958,
+ LDNT1B_2Z_IMM = 4959,
+ LDNT1B_2Z_STRIDED = 4960,
+ LDNT1B_2Z_STRIDED_IMM = 4961,
+ LDNT1B_4Z = 4962,
+ LDNT1B_4Z_IMM = 4963,
+ LDNT1B_4Z_STRIDED = 4964,
+ LDNT1B_4Z_STRIDED_IMM = 4965,
+ LDNT1B_ZRI = 4966,
+ LDNT1B_ZRR = 4967,
+ LDNT1B_ZZR_D = 4968,
+ LDNT1B_ZZR_S = 4969,
+ LDNT1D_2Z = 4970,
+ LDNT1D_2Z_IMM = 4971,
+ LDNT1D_2Z_STRIDED = 4972,
+ LDNT1D_2Z_STRIDED_IMM = 4973,
+ LDNT1D_4Z = 4974,
+ LDNT1D_4Z_IMM = 4975,
+ LDNT1D_4Z_STRIDED = 4976,
+ LDNT1D_4Z_STRIDED_IMM = 4977,
+ LDNT1D_ZRI = 4978,
+ LDNT1D_ZRR = 4979,
+ LDNT1D_ZZR_D = 4980,
+ LDNT1H_2Z = 4981,
+ LDNT1H_2Z_IMM = 4982,
+ LDNT1H_2Z_STRIDED = 4983,
+ LDNT1H_2Z_STRIDED_IMM = 4984,
+ LDNT1H_4Z = 4985,
+ LDNT1H_4Z_IMM = 4986,
+ LDNT1H_4Z_STRIDED = 4987,
+ LDNT1H_4Z_STRIDED_IMM = 4988,
+ LDNT1H_ZRI = 4989,
+ LDNT1H_ZRR = 4990,
+ LDNT1H_ZZR_D = 4991,
+ LDNT1H_ZZR_S = 4992,
+ LDNT1SB_ZZR_D = 4993,
+ LDNT1SB_ZZR_S = 4994,
+ LDNT1SH_ZZR_D = 4995,
+ LDNT1SH_ZZR_S = 4996,
+ LDNT1SW_ZZR_D = 4997,
+ LDNT1W_2Z = 4998,
+ LDNT1W_2Z_IMM = 4999,
+ LDNT1W_2Z_STRIDED = 5000,
+ LDNT1W_2Z_STRIDED_IMM = 5001,
+ LDNT1W_4Z = 5002,
+ LDNT1W_4Z_IMM = 5003,
+ LDNT1W_4Z_STRIDED = 5004,
+ LDNT1W_4Z_STRIDED_IMM = 5005,
+ LDNT1W_ZRI = 5006,
+ LDNT1W_ZRR = 5007,
+ LDNT1W_ZZR_D = 5008,
+ LDNT1W_ZZR_S = 5009,
+ LDPDi = 5010,
+ LDPDpost = 5011,
+ LDPDpre = 5012,
+ LDPQi = 5013,
+ LDPQpost = 5014,
+ LDPQpre = 5015,
+ LDPSWi = 5016,
+ LDPSWpost = 5017,
+ LDPSWpre = 5018,
+ LDPSi = 5019,
+ LDPSpost = 5020,
+ LDPSpre = 5021,
+ LDPWi = 5022,
+ LDPWpost = 5023,
+ LDPWpre = 5024,
+ LDPXi = 5025,
+ LDPXpost = 5026,
+ LDPXpre = 5027,
+ LDRAAindexed = 5028,
+ LDRAAwriteback = 5029,
+ LDRABindexed = 5030,
+ LDRABwriteback = 5031,
+ LDRBBpost = 5032,
+ LDRBBpre = 5033,
+ LDRBBroW = 5034,
+ LDRBBroX = 5035,
+ LDRBBui = 5036,
+ LDRBpost = 5037,
+ LDRBpre = 5038,
+ LDRBroW = 5039,
+ LDRBroX = 5040,
+ LDRBui = 5041,
+ LDRDl = 5042,
+ LDRDpost = 5043,
+ LDRDpre = 5044,
+ LDRDroW = 5045,
+ LDRDroX = 5046,
+ LDRDui = 5047,
+ LDRHHpost = 5048,
+ LDRHHpre = 5049,
+ LDRHHroW = 5050,
+ LDRHHroX = 5051,
+ LDRHHui = 5052,
+ LDRHpost = 5053,
+ LDRHpre = 5054,
+ LDRHroW = 5055,
+ LDRHroX = 5056,
+ LDRHui = 5057,
+ LDRQl = 5058,
+ LDRQpost = 5059,
+ LDRQpre = 5060,
+ LDRQroW = 5061,
+ LDRQroX = 5062,
+ LDRQui = 5063,
+ LDRSBWpost = 5064,
+ LDRSBWpre = 5065,
+ LDRSBWroW = 5066,
+ LDRSBWroX = 5067,
+ LDRSBWui = 5068,
+ LDRSBXpost = 5069,
+ LDRSBXpre = 5070,
+ LDRSBXroW = 5071,
+ LDRSBXroX = 5072,
+ LDRSBXui = 5073,
+ LDRSHWpost = 5074,
+ LDRSHWpre = 5075,
+ LDRSHWroW = 5076,
+ LDRSHWroX = 5077,
+ LDRSHWui = 5078,
+ LDRSHXpost = 5079,
+ LDRSHXpre = 5080,
+ LDRSHXroW = 5081,
+ LDRSHXroX = 5082,
+ LDRSHXui = 5083,
+ LDRSWl = 5084,
+ LDRSWpost = 5085,
+ LDRSWpre = 5086,
+ LDRSWroW = 5087,
+ LDRSWroX = 5088,
+ LDRSWui = 5089,
+ LDRSl = 5090,
+ LDRSpost = 5091,
+ LDRSpre = 5092,
+ LDRSroW = 5093,
+ LDRSroX = 5094,
+ LDRSui = 5095,
+ LDRWl = 5096,
+ LDRWpost = 5097,
+ LDRWpre = 5098,
+ LDRWroW = 5099,
+ LDRWroX = 5100,
+ LDRWui = 5101,
+ LDRXl = 5102,
+ LDRXpost = 5103,
+ LDRXpre = 5104,
+ LDRXroW = 5105,
+ LDRXroX = 5106,
+ LDRXui = 5107,
+ LDR_PXI = 5108,
+ LDR_TX = 5109,
+ LDR_ZA = 5110,
+ LDR_ZXI = 5111,
+ LDSETAB = 5112,
+ LDSETAH = 5113,
+ LDSETALB = 5114,
+ LDSETALH = 5115,
+ LDSETALW = 5116,
+ LDSETALX = 5117,
+ LDSETAW = 5118,
+ LDSETAX = 5119,
+ LDSETB = 5120,
+ LDSETH = 5121,
+ LDSETLB = 5122,
+ LDSETLH = 5123,
+ LDSETLW = 5124,
+ LDSETLX = 5125,
+ LDSETP = 5126,
+ LDSETPA = 5127,
+ LDSETPAL = 5128,
+ LDSETPL = 5129,
+ LDSETW = 5130,
+ LDSETX = 5131,
+ LDSMAXAB = 5132,
+ LDSMAXAH = 5133,
+ LDSMAXALB = 5134,
+ LDSMAXALH = 5135,
+ LDSMAXALW = 5136,
+ LDSMAXALX = 5137,
+ LDSMAXAW = 5138,
+ LDSMAXAX = 5139,
+ LDSMAXB = 5140,
+ LDSMAXH = 5141,
+ LDSMAXLB = 5142,
+ LDSMAXLH = 5143,
+ LDSMAXLW = 5144,
+ LDSMAXLX = 5145,
+ LDSMAXW = 5146,
+ LDSMAXX = 5147,
+ LDSMINAB = 5148,
+ LDSMINAH = 5149,
+ LDSMINALB = 5150,
+ LDSMINALH = 5151,
+ LDSMINALW = 5152,
+ LDSMINALX = 5153,
+ LDSMINAW = 5154,
+ LDSMINAX = 5155,
+ LDSMINB = 5156,
+ LDSMINH = 5157,
+ LDSMINLB = 5158,
+ LDSMINLH = 5159,
+ LDSMINLW = 5160,
+ LDSMINLX = 5161,
+ LDSMINW = 5162,
+ LDSMINX = 5163,
+ LDTADDALW = 5164,
+ LDTADDALX = 5165,
+ LDTADDAW = 5166,
+ LDTADDAX = 5167,
+ LDTADDLW = 5168,
+ LDTADDLX = 5169,
+ LDTADDW = 5170,
+ LDTADDX = 5171,
+ LDTCLRALW = 5172,
+ LDTCLRALX = 5173,
+ LDTCLRAW = 5174,
+ LDTCLRAX = 5175,
+ LDTCLRLW = 5176,
+ LDTCLRLX = 5177,
+ LDTCLRW = 5178,
+ LDTCLRX = 5179,
+ LDTNPQi = 5180,
+ LDTNPXi = 5181,
+ LDTPQi = 5182,
+ LDTPQpost = 5183,
+ LDTPQpre = 5184,
+ LDTPi = 5185,
+ LDTPpost = 5186,
+ LDTPpre = 5187,
+ LDTRBi = 5188,
+ LDTRHi = 5189,
+ LDTRSBWi = 5190,
+ LDTRSBXi = 5191,
+ LDTRSHWi = 5192,
+ LDTRSHXi = 5193,
+ LDTRSWi = 5194,
+ LDTRWi = 5195,
+ LDTRXi = 5196,
+ LDTSETALW = 5197,
+ LDTSETALX = 5198,
+ LDTSETAW = 5199,
+ LDTSETAX = 5200,
+ LDTSETLW = 5201,
+ LDTSETLX = 5202,
+ LDTSETW = 5203,
+ LDTSETX = 5204,
+ LDTXRWr = 5205,
+ LDTXRXr = 5206,
+ LDUMAXAB = 5207,
+ LDUMAXAH = 5208,
+ LDUMAXALB = 5209,
+ LDUMAXALH = 5210,
+ LDUMAXALW = 5211,
+ LDUMAXALX = 5212,
+ LDUMAXAW = 5213,
+ LDUMAXAX = 5214,
+ LDUMAXB = 5215,
+ LDUMAXH = 5216,
+ LDUMAXLB = 5217,
+ LDUMAXLH = 5218,
+ LDUMAXLW = 5219,
+ LDUMAXLX = 5220,
+ LDUMAXW = 5221,
+ LDUMAXX = 5222,
+ LDUMINAB = 5223,
+ LDUMINAH = 5224,
+ LDUMINALB = 5225,
+ LDUMINALH = 5226,
+ LDUMINALW = 5227,
+ LDUMINALX = 5228,
+ LDUMINAW = 5229,
+ LDUMINAX = 5230,
+ LDUMINB = 5231,
+ LDUMINH = 5232,
+ LDUMINLB = 5233,
+ LDUMINLH = 5234,
+ LDUMINLW = 5235,
+ LDUMINLX = 5236,
+ LDUMINW = 5237,
+ LDUMINX = 5238,
+ LDURBBi = 5239,
+ LDURBi = 5240,
+ LDURDi = 5241,
+ LDURHHi = 5242,
+ LDURHi = 5243,
+ LDURQi = 5244,
+ LDURSBWi = 5245,
+ LDURSBXi = 5246,
+ LDURSHWi = 5247,
+ LDURSHXi = 5248,
+ LDURSWi = 5249,
+ LDURSi = 5250,
+ LDURWi = 5251,
+ LDURXi = 5252,
+ LDXPW = 5253,
+ LDXPX = 5254,
+ LDXRB = 5255,
+ LDXRH = 5256,
+ LDXRW = 5257,
+ LDXRX = 5258,
+ LSLR_ZPmZ_B = 5259,
+ LSLR_ZPmZ_D = 5260,
+ LSLR_ZPmZ_H = 5261,
+ LSLR_ZPmZ_S = 5262,
+ LSLVWr = 5263,
+ LSLVXr = 5264,
+ LSL_WIDE_ZPmZ_B = 5265,
+ LSL_WIDE_ZPmZ_H = 5266,
+ LSL_WIDE_ZPmZ_S = 5267,
+ LSL_WIDE_ZZZ_B = 5268,
+ LSL_WIDE_ZZZ_H = 5269,
+ LSL_WIDE_ZZZ_S = 5270,
+ LSL_ZPmI_B = 5271,
+ LSL_ZPmI_D = 5272,
+ LSL_ZPmI_H = 5273,
+ LSL_ZPmI_S = 5274,
+ LSL_ZPmZ_B = 5275,
+ LSL_ZPmZ_D = 5276,
+ LSL_ZPmZ_H = 5277,
+ LSL_ZPmZ_S = 5278,
+ LSL_ZZI_B = 5279,
+ LSL_ZZI_D = 5280,
+ LSL_ZZI_H = 5281,
+ LSL_ZZI_S = 5282,
+ LSRR_ZPmZ_B = 5283,
+ LSRR_ZPmZ_D = 5284,
+ LSRR_ZPmZ_H = 5285,
+ LSRR_ZPmZ_S = 5286,
+ LSRVWr = 5287,
+ LSRVXr = 5288,
+ LSR_WIDE_ZPmZ_B = 5289,
+ LSR_WIDE_ZPmZ_H = 5290,
+ LSR_WIDE_ZPmZ_S = 5291,
+ LSR_WIDE_ZZZ_B = 5292,
+ LSR_WIDE_ZZZ_H = 5293,
+ LSR_WIDE_ZZZ_S = 5294,
+ LSR_ZPmI_B = 5295,
+ LSR_ZPmI_D = 5296,
+ LSR_ZPmI_H = 5297,
+ LSR_ZPmI_S = 5298,
+ LSR_ZPmZ_B = 5299,
+ LSR_ZPmZ_D = 5300,
+ LSR_ZPmZ_H = 5301,
+ LSR_ZPmZ_S = 5302,
+ LSR_ZZI_B = 5303,
+ LSR_ZZI_D = 5304,
+ LSR_ZZI_H = 5305,
+ LSR_ZZI_S = 5306,
+ LUT2_B = 5307,
+ LUT2_H = 5308,
+ LUT4_B = 5309,
+ LUT4_H = 5310,
+ LUTI2_2ZTZI_B = 5311,
+ LUTI2_2ZTZI_H = 5312,
+ LUTI2_2ZTZI_S = 5313,
+ LUTI2_4ZTZI_B = 5314,
+ LUTI2_4ZTZI_H = 5315,
+ LUTI2_4ZTZI_S = 5316,
+ LUTI2_S_2ZTZI_B = 5317,
+ LUTI2_S_2ZTZI_H = 5318,
+ LUTI2_S_4ZTZI_B = 5319,
+ LUTI2_S_4ZTZI_H = 5320,
+ LUTI2_ZTZI_B = 5321,
+ LUTI2_ZTZI_H = 5322,
+ LUTI2_ZTZI_S = 5323,
+ LUTI2_ZZZI_B = 5324,
+ LUTI2_ZZZI_H = 5325,
+ LUTI4_2ZTZI_B = 5326,
+ LUTI4_2ZTZI_H = 5327,
+ LUTI4_2ZTZI_S = 5328,
+ LUTI4_4ZTZI_H = 5329,
+ LUTI4_4ZTZI_S = 5330,
+ LUTI4_4ZZT2Z = 5331,
+ LUTI4_S_2ZTZI_B = 5332,
+ LUTI4_S_2ZTZI_H = 5333,
+ LUTI4_S_4ZTZI_H = 5334,
+ LUTI4_S_4ZZT2Z = 5335,
+ LUTI4_Z2ZZI = 5336,
+ LUTI4_ZTZI_B = 5337,
+ LUTI4_ZTZI_H = 5338,
+ LUTI4_ZTZI_S = 5339,
+ LUTI4_ZZZI_B = 5340,
+ LUTI4_ZZZI_H = 5341,
+ LUTI6_4Z2Z2ZI = 5342,
+ LUTI6_4ZT3Z = 5343,
+ LUTI6_S_4Z2Z2ZI = 5344,
+ LUTI6_S_4ZT3Z = 5345,
+ LUTI6_Z2ZZ = 5346,
+ LUTI6_Z2ZZI_H = 5347,
+ LUTI6_ZTZ = 5348,
+ MADDPT = 5349,
+ MADDWrrr = 5350,
+ MADDXrrr = 5351,
+ MAD_CPA = 5352,
+ MAD_ZPmZZ_B = 5353,
+ MAD_ZPmZZ_D = 5354,
+ MAD_ZPmZZ_H = 5355,
+ MAD_ZPmZZ_S = 5356,
+ MATCH_PPzZZ_B = 5357,
+ MATCH_PPzZZ_H = 5358,
+ MLA_CPA = 5359,
+ MLA_ZPmZZ_B = 5360,
+ MLA_ZPmZZ_D = 5361,
+ MLA_ZPmZZ_H = 5362,
+ MLA_ZPmZZ_S = 5363,
+ MLA_ZZZI_D = 5364,
+ MLA_ZZZI_H = 5365,
+ MLA_ZZZI_S = 5366,
+ MLAv16i8 = 5367,
+ MLAv2i32 = 5368,
+ MLAv2i32_indexed = 5369,
+ MLAv4i16 = 5370,
+ MLAv4i16_indexed = 5371,
+ MLAv4i32 = 5372,
+ MLAv4i32_indexed = 5373,
+ MLAv8i16 = 5374,
+ MLAv8i16_indexed = 5375,
+ MLAv8i8 = 5376,
+ MLS_ZPmZZ_B = 5377,
+ MLS_ZPmZZ_D = 5378,
+ MLS_ZPmZZ_H = 5379,
+ MLS_ZPmZZ_S = 5380,
+ MLS_ZZZI_D = 5381,
+ MLS_ZZZI_H = 5382,
+ MLS_ZZZI_S = 5383,
+ MLSv16i8 = 5384,
+ MLSv2i32 = 5385,
+ MLSv2i32_indexed = 5386,
+ MLSv4i16 = 5387,
+ MLSv4i16_indexed = 5388,
+ MLSv4i32 = 5389,
+ MLSv4i32_indexed = 5390,
+ MLSv8i16 = 5391,
+ MLSv8i16_indexed = 5392,
+ MLSv8i8 = 5393,
+ MOPSSETGE = 5394,
+ MOPSSETGEN = 5395,
+ MOPSSETGET = 5396,
+ MOPSSETGETN = 5397,
+ MOVAZ_2ZMI_H_B = 5398,
+ MOVAZ_2ZMI_H_D = 5399,
+ MOVAZ_2ZMI_H_H = 5400,
+ MOVAZ_2ZMI_H_S = 5401,
+ MOVAZ_2ZMI_V_B = 5402,
+ MOVAZ_2ZMI_V_D = 5403,
+ MOVAZ_2ZMI_V_H = 5404,
+ MOVAZ_2ZMI_V_S = 5405,
+ MOVAZ_4ZMI_H_B = 5406,
+ MOVAZ_4ZMI_H_D = 5407,
+ MOVAZ_4ZMI_H_H = 5408,
+ MOVAZ_4ZMI_H_S = 5409,
+ MOVAZ_4ZMI_V_B = 5410,
+ MOVAZ_4ZMI_V_D = 5411,
+ MOVAZ_4ZMI_V_H = 5412,
+ MOVAZ_4ZMI_V_S = 5413,
+ MOVAZ_VG2_2ZMXI = 5414,
+ MOVAZ_VG4_4ZMXI = 5415,
+ MOVAZ_ZMI_H_B = 5416,
+ MOVAZ_ZMI_H_D = 5417,
+ MOVAZ_ZMI_H_H = 5418,
+ MOVAZ_ZMI_H_Q = 5419,
+ MOVAZ_ZMI_H_S = 5420,
+ MOVAZ_ZMI_V_B = 5421,
+ MOVAZ_ZMI_V_D = 5422,
+ MOVAZ_ZMI_V_H = 5423,
+ MOVAZ_ZMI_V_Q = 5424,
+ MOVAZ_ZMI_V_S = 5425,
+ MOVA_2ZMXI_H_B = 5426,
+ MOVA_2ZMXI_H_D = 5427,
+ MOVA_2ZMXI_H_H = 5428,
+ MOVA_2ZMXI_H_S = 5429,
+ MOVA_2ZMXI_V_B = 5430,
+ MOVA_2ZMXI_V_D = 5431,
+ MOVA_2ZMXI_V_H = 5432,
+ MOVA_2ZMXI_V_S = 5433,
+ MOVA_4ZMXI_H_B = 5434,
+ MOVA_4ZMXI_H_D = 5435,
+ MOVA_4ZMXI_H_H = 5436,
+ MOVA_4ZMXI_H_S = 5437,
+ MOVA_4ZMXI_V_B = 5438,
+ MOVA_4ZMXI_V_D = 5439,
+ MOVA_4ZMXI_V_H = 5440,
+ MOVA_4ZMXI_V_S = 5441,
+ MOVA_MXI2Z_H_B = 5442,
+ MOVA_MXI2Z_H_D = 5443,
+ MOVA_MXI2Z_H_H = 5444,
+ MOVA_MXI2Z_H_S = 5445,
+ MOVA_MXI2Z_V_B = 5446,
+ MOVA_MXI2Z_V_D = 5447,
+ MOVA_MXI2Z_V_H = 5448,
+ MOVA_MXI2Z_V_S = 5449,
+ MOVA_MXI4Z_H_B = 5450,
+ MOVA_MXI4Z_H_D = 5451,
+ MOVA_MXI4Z_H_H = 5452,
+ MOVA_MXI4Z_H_S = 5453,
+ MOVA_MXI4Z_V_B = 5454,
+ MOVA_MXI4Z_V_D = 5455,
+ MOVA_MXI4Z_V_H = 5456,
+ MOVA_MXI4Z_V_S = 5457,
+ MOVA_VG2_2ZMXI = 5458,
+ MOVA_VG2_MXI2Z = 5459,
+ MOVA_VG4_4ZMXI = 5460,
+ MOVA_VG4_MXI4Z = 5461,
+ MOVID = 5462,
+ MOVIv16b_ns = 5463,
+ MOVIv2d_ns = 5464,
+ MOVIv2i32 = 5465,
+ MOVIv2s_msl = 5466,
+ MOVIv4i16 = 5467,
+ MOVIv4i32 = 5468,
+ MOVIv4s_msl = 5469,
+ MOVIv8b_ns = 5470,
+ MOVIv8i16 = 5471,
+ MOVKWi = 5472,
+ MOVKXi = 5473,
+ MOVNWi = 5474,
+ MOVNXi = 5475,
+ MOVPRFX_ZPmZ_B = 5476,
+ MOVPRFX_ZPmZ_D = 5477,
+ MOVPRFX_ZPmZ_H = 5478,
+ MOVPRFX_ZPmZ_S = 5479,
+ MOVPRFX_ZPzZ_B = 5480,
+ MOVPRFX_ZPzZ_D = 5481,
+ MOVPRFX_ZPzZ_H = 5482,
+ MOVPRFX_ZPzZ_S = 5483,
+ MOVPRFX_ZZ = 5484,
+ MOVT_TIX = 5485,
+ MOVT_TIZ = 5486,
+ MOVT_XTI = 5487,
+ MOVZWi = 5488,
+ MOVZXi = 5489,
+ MRRS = 5490,
+ MRS = 5491,
+ MSB_ZPmZZ_B = 5492,
+ MSB_ZPmZZ_D = 5493,
+ MSB_ZPmZZ_H = 5494,
+ MSB_ZPmZZ_S = 5495,
+ MSR = 5496,
+ MSRR = 5497,
+ MSRpstateImm1 = 5498,
+ MSRpstateImm4 = 5499,
+ MSRpstatesvcrImm1 = 5500,
+ MSUBPT = 5501,
+ MSUBWrrr = 5502,
+ MSUBXrrr = 5503,
+ MUL_ZI_B = 5504,
+ MUL_ZI_D = 5505,
+ MUL_ZI_H = 5506,
+ MUL_ZI_S = 5507,
+ MUL_ZPmZ_B = 5508,
+ MUL_ZPmZ_D = 5509,
+ MUL_ZPmZ_H = 5510,
+ MUL_ZPmZ_S = 5511,
+ MUL_ZZZI_D = 5512,
+ MUL_ZZZI_H = 5513,
+ MUL_ZZZI_S = 5514,
+ MUL_ZZZ_B = 5515,
+ MUL_ZZZ_D = 5516,
+ MUL_ZZZ_H = 5517,
+ MUL_ZZZ_S = 5518,
+ MULv16i8 = 5519,
+ MULv2i32 = 5520,
+ MULv2i32_indexed = 5521,
+ MULv4i16 = 5522,
+ MULv4i16_indexed = 5523,
+ MULv4i32 = 5524,
+ MULv4i32_indexed = 5525,
+ MULv8i16 = 5526,
+ MULv8i16_indexed = 5527,
+ MULv8i8 = 5528,
+ MVNIv2i32 = 5529,
+ MVNIv2s_msl = 5530,
+ MVNIv4i16 = 5531,
+ MVNIv4i32 = 5532,
+ MVNIv4s_msl = 5533,
+ MVNIv8i16 = 5534,
+ NANDS_PPzPP = 5535,
+ NAND_PPzPP = 5536,
+ NBSL_ZZZZ = 5537,
+ NEG_ZPmZ_B = 5538,
+ NEG_ZPmZ_D = 5539,
+ NEG_ZPmZ_H = 5540,
+ NEG_ZPmZ_S = 5541,
+ NEG_ZPzZ_B = 5542,
+ NEG_ZPzZ_D = 5543,
+ NEG_ZPzZ_H = 5544,
+ NEG_ZPzZ_S = 5545,
+ NEGv16i8 = 5546,
+ NEGv1i64 = 5547,
+ NEGv2i32 = 5548,
+ NEGv2i64 = 5549,
+ NEGv4i16 = 5550,
+ NEGv4i32 = 5551,
+ NEGv8i16 = 5552,
+ NEGv8i8 = 5553,
+ NMATCH_PPzZZ_B = 5554,
+ NMATCH_PPzZZ_H = 5555,
+ NOP = 5556,
+ NORS_PPzPP = 5557,
+ NOR_PPzPP = 5558,
+ NOT_ZPmZ_B = 5559,
+ NOT_ZPmZ_D = 5560,
+ NOT_ZPmZ_H = 5561,
+ NOT_ZPmZ_S = 5562,
+ NOT_ZPzZ_B = 5563,
+ NOT_ZPzZ_D = 5564,
+ NOT_ZPzZ_H = 5565,
+ NOT_ZPzZ_S = 5566,
+ NOTv16i8 = 5567,
+ NOTv8i8 = 5568,
+ ORNS_PPzPP = 5569,
+ ORNWrs = 5570,
+ ORNXrs = 5571,
+ ORN_PPzPP = 5572,
+ ORNv16i8 = 5573,
+ ORNv8i8 = 5574,
+ ORQV_VPZ_B = 5575,
+ ORQV_VPZ_D = 5576,
+ ORQV_VPZ_H = 5577,
+ ORQV_VPZ_S = 5578,
+ ORRS_PPzPP = 5579,
+ ORRWri = 5580,
+ ORRWrs = 5581,
+ ORRXri = 5582,
+ ORRXrs = 5583,
+ ORR_PPzPP = 5584,
+ ORR_ZI = 5585,
+ ORR_ZPmZ_B = 5586,
+ ORR_ZPmZ_D = 5587,
+ ORR_ZPmZ_H = 5588,
+ ORR_ZPmZ_S = 5589,
+ ORR_ZZZ = 5590,
+ ORRv16i8 = 5591,
+ ORRv2i32 = 5592,
+ ORRv4i16 = 5593,
+ ORRv4i32 = 5594,
+ ORRv8i16 = 5595,
+ ORRv8i8 = 5596,
+ ORV_VPZ_B = 5597,
+ ORV_VPZ_D = 5598,
+ ORV_VPZ_H = 5599,
+ ORV_VPZ_S = 5600,
+ PACDA = 5601,
+ PACDB = 5602,
+ PACDZA = 5603,
+ PACDZB = 5604,
+ PACGA = 5605,
+ PACIA = 5606,
+ PACIA1716 = 5607,
+ PACIA171615 = 5608,
+ PACIASP = 5609,
+ PACIASPPC = 5610,
+ PACIAZ = 5611,
+ PACIB = 5612,
+ PACIB1716 = 5613,
+ PACIB171615 = 5614,
+ PACIBSP = 5615,
+ PACIBSPPC = 5616,
+ PACIBZ = 5617,
+ PACIZA = 5618,
+ PACIZB = 5619,
+ PACM = 5620,
+ PACNBIASPPC = 5621,
+ PACNBIBSPPC = 5622,
+ PEXT_2PCI_B = 5623,
+ PEXT_2PCI_D = 5624,
+ PEXT_2PCI_H = 5625,
+ PEXT_2PCI_S = 5626,
+ PEXT_PCI_B = 5627,
+ PEXT_PCI_D = 5628,
+ PEXT_PCI_H = 5629,
+ PEXT_PCI_S = 5630,
+ PFALSE = 5631,
+ PFIRST_B = 5632,
+ PMLAL_2ZZZ_Q = 5633,
+ PMOV_PZI_B = 5634,
+ PMOV_PZI_D = 5635,
+ PMOV_PZI_H = 5636,
+ PMOV_PZI_S = 5637,
+ PMOV_ZIP_B = 5638,
+ PMOV_ZIP_D = 5639,
+ PMOV_ZIP_H = 5640,
+ PMOV_ZIP_S = 5641,
+ PMULLB_ZZZ_D = 5642,
+ PMULLB_ZZZ_H = 5643,
+ PMULLB_ZZZ_Q = 5644,
+ PMULLT_ZZZ_D = 5645,
+ PMULLT_ZZZ_H = 5646,
+ PMULLT_ZZZ_Q = 5647,
+ PMULL_2ZZZ_Q = 5648,
+ PMULLv16i8 = 5649,
+ PMULLv1i64 = 5650,
+ PMULLv2i64 = 5651,
+ PMULLv8i8 = 5652,
+ PMUL_ZZZ_B = 5653,
+ PMULv16i8 = 5654,
+ PMULv8i8 = 5655,
+ PNEXT_B = 5656,
+ PNEXT_D = 5657,
+ PNEXT_H = 5658,
+ PNEXT_S = 5659,
+ PRFB_D_PZI = 5660,
+ PRFB_D_SCALED = 5661,
+ PRFB_D_SXTW_SCALED = 5662,
+ PRFB_D_UXTW_SCALED = 5663,
+ PRFB_PRI = 5664,
+ PRFB_PRR = 5665,
+ PRFB_S_PZI = 5666,
+ PRFB_S_SXTW_SCALED = 5667,
+ PRFB_S_UXTW_SCALED = 5668,
+ PRFD_D_PZI = 5669,
+ PRFD_D_SCALED = 5670,
+ PRFD_D_SXTW_SCALED = 5671,
+ PRFD_D_UXTW_SCALED = 5672,
+ PRFD_PRI = 5673,
+ PRFD_PRR = 5674,
+ PRFD_S_PZI = 5675,
+ PRFD_S_SXTW_SCALED = 5676,
+ PRFD_S_UXTW_SCALED = 5677,
+ PRFH_D_PZI = 5678,
+ PRFH_D_SCALED = 5679,
+ PRFH_D_SXTW_SCALED = 5680,
+ PRFH_D_UXTW_SCALED = 5681,
+ PRFH_PRI = 5682,
+ PRFH_PRR = 5683,
+ PRFH_S_PZI = 5684,
+ PRFH_S_SXTW_SCALED = 5685,
+ PRFH_S_UXTW_SCALED = 5686,
+ PRFMl = 5687,
+ PRFMroW = 5688,
+ PRFMroX = 5689,
+ PRFMui = 5690,
+ PRFUMi = 5691,
+ PRFW_D_PZI = 5692,
+ PRFW_D_SCALED = 5693,
+ PRFW_D_SXTW_SCALED = 5694,
+ PRFW_D_UXTW_SCALED = 5695,
+ PRFW_PRI = 5696,
+ PRFW_PRR = 5697,
+ PRFW_S_PZI = 5698,
+ PRFW_S_SXTW_SCALED = 5699,
+ PRFW_S_UXTW_SCALED = 5700,
+ PSEL_PPPRI_B = 5701,
+ PSEL_PPPRI_D = 5702,
+ PSEL_PPPRI_H = 5703,
+ PSEL_PPPRI_S = 5704,
+ PTEST_PP = 5705,
+ PTRUES_B = 5706,
+ PTRUES_D = 5707,
+ PTRUES_H = 5708,
+ PTRUES_S = 5709,
+ PTRUE_B = 5710,
+ PTRUE_C_B = 5711,
+ PTRUE_C_D = 5712,
+ PTRUE_C_H = 5713,
+ PTRUE_C_S = 5714,
+ PTRUE_D = 5715,
+ PTRUE_H = 5716,
+ PTRUE_S = 5717,
+ PUNPKHI_PP = 5718,
+ PUNPKLO_PP = 5719,
+ RADDHNB_ZZZ_B = 5720,
+ RADDHNB_ZZZ_H = 5721,
+ RADDHNB_ZZZ_S = 5722,
+ RADDHNT_ZZZ_B = 5723,
+ RADDHNT_ZZZ_H = 5724,
+ RADDHNT_ZZZ_S = 5725,
+ RADDHNv2i64_v2i32 = 5726,
+ RADDHNv2i64_v4i32 = 5727,
+ RADDHNv4i32_v4i16 = 5728,
+ RADDHNv4i32_v8i16 = 5729,
+ RADDHNv8i16_v16i8 = 5730,
+ RADDHNv8i16_v8i8 = 5731,
+ RAX1 = 5732,
+ RAX1_ZZZ_D = 5733,
+ RBITWr = 5734,
+ RBITXr = 5735,
+ RBIT_ZPmZ_B = 5736,
+ RBIT_ZPmZ_D = 5737,
+ RBIT_ZPmZ_H = 5738,
+ RBIT_ZPmZ_S = 5739,
+ RBIT_ZPzZ_B = 5740,
+ RBIT_ZPzZ_D = 5741,
+ RBIT_ZPzZ_H = 5742,
+ RBIT_ZPzZ_S = 5743,
+ RBITv16i8 = 5744,
+ RBITv8i8 = 5745,
+ RCWCAS = 5746,
+ RCWCASA = 5747,
+ RCWCASAL = 5748,
+ RCWCASL = 5749,
+ RCWCASP = 5750,
+ RCWCASPA = 5751,
+ RCWCASPAL = 5752,
+ RCWCASPL = 5753,
+ RCWCLR = 5754,
+ RCWCLRA = 5755,
+ RCWCLRAL = 5756,
+ RCWCLRL = 5757,
+ RCWCLRP = 5758,
+ RCWCLRPA = 5759,
+ RCWCLRPAL = 5760,
+ RCWCLRPL = 5761,
+ RCWCLRS = 5762,
+ RCWCLRSA = 5763,
+ RCWCLRSAL = 5764,
+ RCWCLRSL = 5765,
+ RCWCLRSP = 5766,
+ RCWCLRSPA = 5767,
+ RCWCLRSPAL = 5768,
+ RCWCLRSPL = 5769,
+ RCWSCAS = 5770,
+ RCWSCASA = 5771,
+ RCWSCASAL = 5772,
+ RCWSCASL = 5773,
+ RCWSCASP = 5774,
+ RCWSCASPA = 5775,
+ RCWSCASPAL = 5776,
+ RCWSCASPL = 5777,
+ RCWSET = 5778,
+ RCWSETA = 5779,
+ RCWSETAL = 5780,
+ RCWSETL = 5781,
+ RCWSETP = 5782,
+ RCWSETPA = 5783,
+ RCWSETPAL = 5784,
+ RCWSETPL = 5785,
+ RCWSETS = 5786,
+ RCWSETSA = 5787,
+ RCWSETSAL = 5788,
+ RCWSETSL = 5789,
+ RCWSETSP = 5790,
+ RCWSETSPA = 5791,
+ RCWSETSPAL = 5792,
+ RCWSETSPL = 5793,
+ RCWSWP = 5794,
+ RCWSWPA = 5795,
+ RCWSWPAL = 5796,
+ RCWSWPL = 5797,
+ RCWSWPP = 5798,
+ RCWSWPPA = 5799,
+ RCWSWPPAL = 5800,
+ RCWSWPPL = 5801,
+ RCWSWPS = 5802,
+ RCWSWPSA = 5803,
+ RCWSWPSAL = 5804,
+ RCWSWPSL = 5805,
+ RCWSWPSP = 5806,
+ RCWSWPSPA = 5807,
+ RCWSWPSPAL = 5808,
+ RCWSWPSPL = 5809,
+ RDFFRS_PPz = 5810,
+ RDFFR_P = 5811,
+ RDFFR_PPz = 5812,
+ RDSVLI_XI = 5813,
+ RDVLI_XI = 5814,
+ RET = 5815,
+ RETAA = 5816,
+ RETAASPPCi = 5817,
+ RETAASPPCr = 5818,
+ RETAB = 5819,
+ RETABSPPCi = 5820,
+ RETABSPPCr = 5821,
+ REV16Wr = 5822,
+ REV16Xr = 5823,
+ REV16v16i8 = 5824,
+ REV16v8i8 = 5825,
+ REV32Xr = 5826,
+ REV32v16i8 = 5827,
+ REV32v4i16 = 5828,
+ REV32v8i16 = 5829,
+ REV32v8i8 = 5830,
+ REV64v16i8 = 5831,
+ REV64v2i32 = 5832,
+ REV64v4i16 = 5833,
+ REV64v4i32 = 5834,
+ REV64v8i16 = 5835,
+ REV64v8i8 = 5836,
+ REVB_ZPmZ_D = 5837,
+ REVB_ZPmZ_H = 5838,
+ REVB_ZPmZ_S = 5839,
+ REVB_ZPzZ_D = 5840,
+ REVB_ZPzZ_H = 5841,
+ REVB_ZPzZ_S = 5842,
+ REVD_ZPmZ = 5843,
+ REVD_ZPzZ = 5844,
+ REVH_ZPmZ_D = 5845,
+ REVH_ZPmZ_S = 5846,
+ REVH_ZPzZ_D = 5847,
+ REVH_ZPzZ_S = 5848,
+ REVW_ZPmZ_D = 5849,
+ REVW_ZPzZ_D = 5850,
+ REVWr = 5851,
+ REVXr = 5852,
+ REV_PP_B = 5853,
+ REV_PP_D = 5854,
+ REV_PP_H = 5855,
+ REV_PP_S = 5856,
+ REV_ZZ_B = 5857,
+ REV_ZZ_D = 5858,
+ REV_ZZ_H = 5859,
+ REV_ZZ_S = 5860,
+ RMIF = 5861,
+ RORVWr = 5862,
+ RORVXr = 5863,
+ RPRFM = 5864,
+ RSHRNB_ZZI_B = 5865,
+ RSHRNB_ZZI_H = 5866,
+ RSHRNB_ZZI_S = 5867,
+ RSHRNT_ZZI_B = 5868,
+ RSHRNT_ZZI_H = 5869,
+ RSHRNT_ZZI_S = 5870,
+ RSHRNv16i8_shift = 5871,
+ RSHRNv2i32_shift = 5872,
+ RSHRNv4i16_shift = 5873,
+ RSHRNv4i32_shift = 5874,
+ RSHRNv8i16_shift = 5875,
+ RSHRNv8i8_shift = 5876,
+ RSUBHNB_ZZZ_B = 5877,
+ RSUBHNB_ZZZ_H = 5878,
+ RSUBHNB_ZZZ_S = 5879,
+ RSUBHNT_ZZZ_B = 5880,
+ RSUBHNT_ZZZ_H = 5881,
+ RSUBHNT_ZZZ_S = 5882,
+ RSUBHNv2i64_v2i32 = 5883,
+ RSUBHNv2i64_v4i32 = 5884,
+ RSUBHNv4i32_v4i16 = 5885,
+ RSUBHNv4i32_v8i16 = 5886,
+ RSUBHNv8i16_v16i8 = 5887,
+ RSUBHNv8i16_v8i8 = 5888,
+ SABALB_ZZZ_D = 5889,
+ SABALB_ZZZ_H = 5890,
+ SABALB_ZZZ_S = 5891,
+ SABALT_ZZZ_D = 5892,
+ SABALT_ZZZ_H = 5893,
+ SABALT_ZZZ_S = 5894,
+ SABAL_ZZZ_BtoH = 5895,
+ SABAL_ZZZ_HtoS = 5896,
+ SABAL_ZZZ_StoD = 5897,
+ SABALv16i8_v8i16 = 5898,
+ SABALv2i32_v2i64 = 5899,
+ SABALv4i16_v4i32 = 5900,
+ SABALv4i32_v2i64 = 5901,
+ SABALv8i16_v4i32 = 5902,
+ SABALv8i8_v8i16 = 5903,
+ SABA_ZZZ_B = 5904,
+ SABA_ZZZ_D = 5905,
+ SABA_ZZZ_H = 5906,
+ SABA_ZZZ_S = 5907,
+ SABAv16i8 = 5908,
+ SABAv2i32 = 5909,
+ SABAv4i16 = 5910,
+ SABAv4i32 = 5911,
+ SABAv8i16 = 5912,
+ SABAv8i8 = 5913,
+ SABDLB_ZZZ_D = 5914,
+ SABDLB_ZZZ_H = 5915,
+ SABDLB_ZZZ_S = 5916,
+ SABDLT_ZZZ_D = 5917,
+ SABDLT_ZZZ_H = 5918,
+ SABDLT_ZZZ_S = 5919,
+ SABDLv16i8_v8i16 = 5920,
+ SABDLv2i32_v2i64 = 5921,
+ SABDLv4i16_v4i32 = 5922,
+ SABDLv4i32_v2i64 = 5923,
+ SABDLv8i16_v4i32 = 5924,
+ SABDLv8i8_v8i16 = 5925,
+ SABD_ZPmZ_B = 5926,
+ SABD_ZPmZ_D = 5927,
+ SABD_ZPmZ_H = 5928,
+ SABD_ZPmZ_S = 5929,
+ SABDv16i8 = 5930,
+ SABDv2i32 = 5931,
+ SABDv4i16 = 5932,
+ SABDv4i32 = 5933,
+ SABDv8i16 = 5934,
+ SABDv8i8 = 5935,
+ SADALP_ZPmZ_D = 5936,
+ SADALP_ZPmZ_H = 5937,
+ SADALP_ZPmZ_S = 5938,
+ SADALPv16i8_v8i16 = 5939,
+ SADALPv2i32_v1i64 = 5940,
+ SADALPv4i16_v2i32 = 5941,
+ SADALPv4i32_v2i64 = 5942,
+ SADALPv8i16_v4i32 = 5943,
+ SADALPv8i8_v4i16 = 5944,
+ SADDLBT_ZZZ_D = 5945,
+ SADDLBT_ZZZ_H = 5946,
+ SADDLBT_ZZZ_S = 5947,
+ SADDLB_ZZZ_D = 5948,
+ SADDLB_ZZZ_H = 5949,
+ SADDLB_ZZZ_S = 5950,
+ SADDLPv16i8_v8i16 = 5951,
+ SADDLPv2i32_v1i64 = 5952,
+ SADDLPv4i16_v2i32 = 5953,
+ SADDLPv4i32_v2i64 = 5954,
+ SADDLPv8i16_v4i32 = 5955,
+ SADDLPv8i8_v4i16 = 5956,
+ SADDLT_ZZZ_D = 5957,
+ SADDLT_ZZZ_H = 5958,
+ SADDLT_ZZZ_S = 5959,
+ SADDLVv16i8v = 5960,
+ SADDLVv4i16v = 5961,
+ SADDLVv4i32v = 5962,
+ SADDLVv8i16v = 5963,
+ SADDLVv8i8v = 5964,
+ SADDLv16i8_v8i16 = 5965,
+ SADDLv2i32_v2i64 = 5966,
+ SADDLv4i16_v4i32 = 5967,
+ SADDLv4i32_v2i64 = 5968,
+ SADDLv8i16_v4i32 = 5969,
+ SADDLv8i8_v8i16 = 5970,
+ SADDV_VPZ_B = 5971,
+ SADDV_VPZ_H = 5972,
+ SADDV_VPZ_S = 5973,
+ SADDWB_ZZZ_D = 5974,
+ SADDWB_ZZZ_H = 5975,
+ SADDWB_ZZZ_S = 5976,
+ SADDWT_ZZZ_D = 5977,
+ SADDWT_ZZZ_H = 5978,
+ SADDWT_ZZZ_S = 5979,
+ SADDWv16i8_v8i16 = 5980,
+ SADDWv2i32_v2i64 = 5981,
+ SADDWv4i16_v4i32 = 5982,
+ SADDWv4i32_v2i64 = 5983,
+ SADDWv8i16_v4i32 = 5984,
+ SADDWv8i8_v8i16 = 5985,
+ SB = 5986,
+ SBCLB_ZZZ_D = 5987,
+ SBCLB_ZZZ_S = 5988,
+ SBCLT_ZZZ_D = 5989,
+ SBCLT_ZZZ_S = 5990,
+ SBCSWr = 5991,
+ SBCSXr = 5992,
+ SBCWr = 5993,
+ SBCXr = 5994,
+ SBFMWri = 5995,
+ SBFMXri = 5996,
+ SCLAMP_VG2_2Z2Z_B = 5997,
+ SCLAMP_VG2_2Z2Z_D = 5998,
+ SCLAMP_VG2_2Z2Z_H = 5999,
+ SCLAMP_VG2_2Z2Z_S = 6000,
+ SCLAMP_VG4_4Z4Z_B = 6001,
+ SCLAMP_VG4_4Z4Z_D = 6002,
+ SCLAMP_VG4_4Z4Z_H = 6003,
+ SCLAMP_VG4_4Z4Z_S = 6004,
+ SCLAMP_ZZZ_B = 6005,
+ SCLAMP_ZZZ_D = 6006,
+ SCLAMP_ZZZ_H = 6007,
+ SCLAMP_ZZZ_S = 6008,
+ SCVTFDSr = 6009,
+ SCVTFHDr = 6010,
+ SCVTFHSr = 6011,
+ SCVTFLT_ZZ_BtoH = 6012,
+ SCVTFLT_ZZ_HtoS = 6013,
+ SCVTFLT_ZZ_StoD = 6014,
+ SCVTFSDr = 6015,
+ SCVTFSWDri = 6016,
+ SCVTFSWHri = 6017,
+ SCVTFSWSri = 6018,
+ SCVTFSXDri = 6019,
+ SCVTFSXHri = 6020,
+ SCVTFSXSri = 6021,
+ SCVTFUWDri = 6022,
+ SCVTFUWHri = 6023,
+ SCVTFUWSri = 6024,
+ SCVTFUXDri = 6025,
+ SCVTFUXHri = 6026,
+ SCVTFUXSri = 6027,
+ SCVTF_2Z2Z_StoS = 6028,
+ SCVTF_4Z4Z_StoS = 6029,
+ SCVTF_ZPmZ_DtoD = 6030,
+ SCVTF_ZPmZ_DtoH = 6031,
+ SCVTF_ZPmZ_DtoS = 6032,
+ SCVTF_ZPmZ_HtoH = 6033,
+ SCVTF_ZPmZ_StoD = 6034,
+ SCVTF_ZPmZ_StoH = 6035,
+ SCVTF_ZPmZ_StoS = 6036,
+ SCVTF_ZPzZ_DtoD = 6037,
+ SCVTF_ZPzZ_DtoH = 6038,
+ SCVTF_ZPzZ_DtoS = 6039,
+ SCVTF_ZPzZ_HtoH = 6040,
+ SCVTF_ZPzZ_StoD = 6041,
+ SCVTF_ZPzZ_StoH = 6042,
+ SCVTF_ZPzZ_StoS = 6043,
+ SCVTF_ZZ_BtoH = 6044,
+ SCVTF_ZZ_HtoS = 6045,
+ SCVTF_ZZ_StoD = 6046,
+ SCVTFd = 6047,
+ SCVTFh = 6048,
+ SCVTFs = 6049,
+ SCVTFv1i16 = 6050,
+ SCVTFv1i32 = 6051,
+ SCVTFv1i64 = 6052,
+ SCVTFv2f32 = 6053,
+ SCVTFv2f64 = 6054,
+ SCVTFv2i32_shift = 6055,
+ SCVTFv2i64_shift = 6056,
+ SCVTFv4f16 = 6057,
+ SCVTFv4f32 = 6058,
+ SCVTFv4i16_shift = 6059,
+ SCVTFv4i32_shift = 6060,
+ SCVTFv8f16 = 6061,
+ SCVTFv8i16_shift = 6062,
+ SDIVR_ZPmZ_D = 6063,
+ SDIVR_ZPmZ_S = 6064,
+ SDIVWr = 6065,
+ SDIVXr = 6066,
+ SDIV_ZPmZ_D = 6067,
+ SDIV_ZPmZ_S = 6068,
+ SDOT_VG2_M2Z2Z_BtoS = 6069,
+ SDOT_VG2_M2Z2Z_HtoD = 6070,
+ SDOT_VG2_M2Z2Z_HtoS = 6071,
+ SDOT_VG2_M2ZZI_BToS = 6072,
+ SDOT_VG2_M2ZZI_HToS = 6073,
+ SDOT_VG2_M2ZZI_HtoD = 6074,
+ SDOT_VG2_M2ZZ_BtoS = 6075,
+ SDOT_VG2_M2ZZ_HtoD = 6076,
+ SDOT_VG2_M2ZZ_HtoS = 6077,
+ SDOT_VG4_M4Z4Z_BtoS = 6078,
+ SDOT_VG4_M4Z4Z_HtoD = 6079,
+ SDOT_VG4_M4Z4Z_HtoS = 6080,
+ SDOT_VG4_M4ZZI_BToS = 6081,
+ SDOT_VG4_M4ZZI_HToS = 6082,
+ SDOT_VG4_M4ZZI_HtoD = 6083,
+ SDOT_VG4_M4ZZ_BtoS = 6084,
+ SDOT_VG4_M4ZZ_HtoD = 6085,
+ SDOT_VG4_M4ZZ_HtoS = 6086,
+ SDOT_ZZZI_BtoH = 6087,
+ SDOT_ZZZI_BtoS = 6088,
+ SDOT_ZZZI_HtoD = 6089,
+ SDOT_ZZZI_HtoS = 6090,
+ SDOT_ZZZ_BtoH = 6091,
+ SDOT_ZZZ_BtoS = 6092,
+ SDOT_ZZZ_HtoD = 6093,
+ SDOT_ZZZ_HtoS = 6094,
+ SDOTlanev16i8 = 6095,
+ SDOTlanev8i8 = 6096,
+ SDOTv16i8 = 6097,
+ SDOTv8i8 = 6098,
+ SEL_PPPP = 6099,
+ SEL_VG2_2ZC2Z2Z_B = 6100,
+ SEL_VG2_2ZC2Z2Z_D = 6101,
+ SEL_VG2_2ZC2Z2Z_H = 6102,
+ SEL_VG2_2ZC2Z2Z_S = 6103,
+ SEL_VG4_4ZC4Z4Z_B = 6104,
+ SEL_VG4_4ZC4Z4Z_D = 6105,
+ SEL_VG4_4ZC4Z4Z_H = 6106,
+ SEL_VG4_4ZC4Z4Z_S = 6107,
+ SEL_ZPZZ_B = 6108,
+ SEL_ZPZZ_D = 6109,
+ SEL_ZPZZ_H = 6110,
+ SEL_ZPZZ_S = 6111,
+ SETE = 6112,
+ SETEN = 6113,
+ SETET = 6114,
+ SETETN = 6115,
+ SETF16 = 6116,
+ SETF8 = 6117,
+ SETFFR = 6118,
+ SETGM = 6119,
+ SETGMN = 6120,
+ SETGMT = 6121,
+ SETGMTN = 6122,
+ SETGOE = 6123,
+ SETGOEN = 6124,
+ SETGOET = 6125,
+ SETGOETN = 6126,
+ SETGOM = 6127,
+ SETGOMN = 6128,
+ SETGOMT = 6129,
+ SETGOMTN = 6130,
+ SETGOP = 6131,
+ SETGOPN = 6132,
+ SETGOPT = 6133,
+ SETGOPTN = 6134,
+ SETGP = 6135,
+ SETGPN = 6136,
+ SETGPT = 6137,
+ SETGPTN = 6138,
+ SETM = 6139,
+ SETMN = 6140,
+ SETMT = 6141,
+ SETMTN = 6142,
+ SETP = 6143,
+ SETPN = 6144,
+ SETPT = 6145,
+ SETPTN = 6146,
+ SHA1Crrr = 6147,
+ SHA1Hrr = 6148,
+ SHA1Mrrr = 6149,
+ SHA1Prrr = 6150,
+ SHA1SU0rrr = 6151,
+ SHA1SU1rr = 6152,
+ SHA256H2rrr = 6153,
+ SHA256Hrrr = 6154,
+ SHA256SU0rr = 6155,
+ SHA256SU1rrr = 6156,
+ SHA512H = 6157,
+ SHA512H2 = 6158,
+ SHA512SU0 = 6159,
+ SHA512SU1 = 6160,
+ SHADD_ZPmZ_B = 6161,
+ SHADD_ZPmZ_D = 6162,
+ SHADD_ZPmZ_H = 6163,
+ SHADD_ZPmZ_S = 6164,
+ SHADDv16i8 = 6165,
+ SHADDv2i32 = 6166,
+ SHADDv4i16 = 6167,
+ SHADDv4i32 = 6168,
+ SHADDv8i16 = 6169,
+ SHADDv8i8 = 6170,
+ SHLLv16i8 = 6171,
+ SHLLv2i32 = 6172,
+ SHLLv4i16 = 6173,
+ SHLLv4i32 = 6174,
+ SHLLv8i16 = 6175,
+ SHLLv8i8 = 6176,
+ SHLd = 6177,
+ SHLv16i8_shift = 6178,
+ SHLv2i32_shift = 6179,
+ SHLv2i64_shift = 6180,
+ SHLv4i16_shift = 6181,
+ SHLv4i32_shift = 6182,
+ SHLv8i16_shift = 6183,
+ SHLv8i8_shift = 6184,
+ SHRNB_ZZI_B = 6185,
+ SHRNB_ZZI_H = 6186,
+ SHRNB_ZZI_S = 6187,
+ SHRNT_ZZI_B = 6188,
+ SHRNT_ZZI_H = 6189,
+ SHRNT_ZZI_S = 6190,
+ SHRNv16i8_shift = 6191,
+ SHRNv2i32_shift = 6192,
+ SHRNv4i16_shift = 6193,
+ SHRNv4i32_shift = 6194,
+ SHRNv8i16_shift = 6195,
+ SHRNv8i8_shift = 6196,
+ SHSUBR_ZPmZ_B = 6197,
+ SHSUBR_ZPmZ_D = 6198,
+ SHSUBR_ZPmZ_H = 6199,
+ SHSUBR_ZPmZ_S = 6200,
+ SHSUB_ZPmZ_B = 6201,
+ SHSUB_ZPmZ_D = 6202,
+ SHSUB_ZPmZ_H = 6203,
+ SHSUB_ZPmZ_S = 6204,
+ SHSUBv16i8 = 6205,
+ SHSUBv2i32 = 6206,
+ SHSUBv4i16 = 6207,
+ SHSUBv4i32 = 6208,
+ SHSUBv8i16 = 6209,
+ SHSUBv8i8 = 6210,
+ SHUH = 6211,
+ SLI_ZZI_B = 6212,
+ SLI_ZZI_D = 6213,
+ SLI_ZZI_H = 6214,
+ SLI_ZZI_S = 6215,
+ SLId = 6216,
+ SLIv16i8_shift = 6217,
+ SLIv2i32_shift = 6218,
+ SLIv2i64_shift = 6219,
+ SLIv4i16_shift = 6220,
+ SLIv4i32_shift = 6221,
+ SLIv8i16_shift = 6222,
+ SLIv8i8_shift = 6223,
+ SM3PARTW1 = 6224,
+ SM3PARTW2 = 6225,
+ SM3SS1 = 6226,
+ SM3TT1A = 6227,
+ SM3TT1B = 6228,
+ SM3TT2A = 6229,
+ SM3TT2B = 6230,
+ SM4E = 6231,
+ SM4EKEY_ZZZ_S = 6232,
+ SM4ENCKEY = 6233,
+ SM4E_ZZZ_S = 6234,
+ SMADDLrrr = 6235,
+ SMAXP_ZPmZ_B = 6236,
+ SMAXP_ZPmZ_D = 6237,
+ SMAXP_ZPmZ_H = 6238,
+ SMAXP_ZPmZ_S = 6239,
+ SMAXPv16i8 = 6240,
+ SMAXPv2i32 = 6241,
+ SMAXPv4i16 = 6242,
+ SMAXPv4i32 = 6243,
+ SMAXPv8i16 = 6244,
+ SMAXPv8i8 = 6245,
+ SMAXQV_VPZ_B = 6246,
+ SMAXQV_VPZ_D = 6247,
+ SMAXQV_VPZ_H = 6248,
+ SMAXQV_VPZ_S = 6249,
+ SMAXV_VPZ_B = 6250,
+ SMAXV_VPZ_D = 6251,
+ SMAXV_VPZ_H = 6252,
+ SMAXV_VPZ_S = 6253,
+ SMAXVv16i8v = 6254,
+ SMAXVv4i16v = 6255,
+ SMAXVv4i32v = 6256,
+ SMAXVv8i16v = 6257,
+ SMAXVv8i8v = 6258,
+ SMAXWri = 6259,
+ SMAXWrr = 6260,
+ SMAXXri = 6261,
+ SMAXXrr = 6262,
+ SMAX_VG2_2Z2Z_B = 6263,
+ SMAX_VG2_2Z2Z_D = 6264,
+ SMAX_VG2_2Z2Z_H = 6265,
+ SMAX_VG2_2Z2Z_S = 6266,
+ SMAX_VG2_2ZZ_B = 6267,
+ SMAX_VG2_2ZZ_D = 6268,
+ SMAX_VG2_2ZZ_H = 6269,
+ SMAX_VG2_2ZZ_S = 6270,
+ SMAX_VG4_4Z4Z_B = 6271,
+ SMAX_VG4_4Z4Z_D = 6272,
+ SMAX_VG4_4Z4Z_H = 6273,
+ SMAX_VG4_4Z4Z_S = 6274,
+ SMAX_VG4_4ZZ_B = 6275,
+ SMAX_VG4_4ZZ_D = 6276,
+ SMAX_VG4_4ZZ_H = 6277,
+ SMAX_VG4_4ZZ_S = 6278,
+ SMAX_ZI_B = 6279,
+ SMAX_ZI_D = 6280,
+ SMAX_ZI_H = 6281,
+ SMAX_ZI_S = 6282,
+ SMAX_ZPmZ_B = 6283,
+ SMAX_ZPmZ_D = 6284,
+ SMAX_ZPmZ_H = 6285,
+ SMAX_ZPmZ_S = 6286,
+ SMAXv16i8 = 6287,
+ SMAXv2i32 = 6288,
+ SMAXv4i16 = 6289,
+ SMAXv4i32 = 6290,
+ SMAXv8i16 = 6291,
+ SMAXv8i8 = 6292,
+ SMC = 6293,
+ SMINP_ZPmZ_B = 6294,
+ SMINP_ZPmZ_D = 6295,
+ SMINP_ZPmZ_H = 6296,
+ SMINP_ZPmZ_S = 6297,
+ SMINPv16i8 = 6298,
+ SMINPv2i32 = 6299,
+ SMINPv4i16 = 6300,
+ SMINPv4i32 = 6301,
+ SMINPv8i16 = 6302,
+ SMINPv8i8 = 6303,
+ SMINQV_VPZ_B = 6304,
+ SMINQV_VPZ_D = 6305,
+ SMINQV_VPZ_H = 6306,
+ SMINQV_VPZ_S = 6307,
+ SMINV_VPZ_B = 6308,
+ SMINV_VPZ_D = 6309,
+ SMINV_VPZ_H = 6310,
+ SMINV_VPZ_S = 6311,
+ SMINVv16i8v = 6312,
+ SMINVv4i16v = 6313,
+ SMINVv4i32v = 6314,
+ SMINVv8i16v = 6315,
+ SMINVv8i8v = 6316,
+ SMINWri = 6317,
+ SMINWrr = 6318,
+ SMINXri = 6319,
+ SMINXrr = 6320,
+ SMIN_VG2_2Z2Z_B = 6321,
+ SMIN_VG2_2Z2Z_D = 6322,
+ SMIN_VG2_2Z2Z_H = 6323,
+ SMIN_VG2_2Z2Z_S = 6324,
+ SMIN_VG2_2ZZ_B = 6325,
+ SMIN_VG2_2ZZ_D = 6326,
+ SMIN_VG2_2ZZ_H = 6327,
+ SMIN_VG2_2ZZ_S = 6328,
+ SMIN_VG4_4Z4Z_B = 6329,
+ SMIN_VG4_4Z4Z_D = 6330,
+ SMIN_VG4_4Z4Z_H = 6331,
+ SMIN_VG4_4Z4Z_S = 6332,
+ SMIN_VG4_4ZZ_B = 6333,
+ SMIN_VG4_4ZZ_D = 6334,
+ SMIN_VG4_4ZZ_H = 6335,
+ SMIN_VG4_4ZZ_S = 6336,
+ SMIN_ZI_B = 6337,
+ SMIN_ZI_D = 6338,
+ SMIN_ZI_H = 6339,
+ SMIN_ZI_S = 6340,
+ SMIN_ZPmZ_B = 6341,
+ SMIN_ZPmZ_D = 6342,
+ SMIN_ZPmZ_H = 6343,
+ SMIN_ZPmZ_S = 6344,
+ SMINv16i8 = 6345,
+ SMINv2i32 = 6346,
+ SMINv4i16 = 6347,
+ SMINv4i32 = 6348,
+ SMINv8i16 = 6349,
+ SMINv8i8 = 6350,
+ SMLALB_ZZZI_D = 6351,
+ SMLALB_ZZZI_S = 6352,
+ SMLALB_ZZZ_D = 6353,
+ SMLALB_ZZZ_H = 6354,
+ SMLALB_ZZZ_S = 6355,
+ SMLALL_MZZI_BtoS = 6356,
+ SMLALL_MZZI_HtoD = 6357,
+ SMLALL_MZZ_BtoS = 6358,
+ SMLALL_MZZ_HtoD = 6359,
+ SMLALL_VG2_M2Z2Z_BtoS = 6360,
+ SMLALL_VG2_M2Z2Z_HtoD = 6361,
+ SMLALL_VG2_M2ZZI_BtoS = 6362,
+ SMLALL_VG2_M2ZZI_HtoD = 6363,
+ SMLALL_VG2_M2ZZ_BtoS = 6364,
+ SMLALL_VG2_M2ZZ_HtoD = 6365,
+ SMLALL_VG4_M4Z4Z_BtoS = 6366,
+ SMLALL_VG4_M4Z4Z_HtoD = 6367,
+ SMLALL_VG4_M4ZZI_BtoS = 6368,
+ SMLALL_VG4_M4ZZI_HtoD = 6369,
+ SMLALL_VG4_M4ZZ_BtoS = 6370,
+ SMLALL_VG4_M4ZZ_HtoD = 6371,
+ SMLALT_ZZZI_D = 6372,
+ SMLALT_ZZZI_S = 6373,
+ SMLALT_ZZZ_D = 6374,
+ SMLALT_ZZZ_H = 6375,
+ SMLALT_ZZZ_S = 6376,
+ SMLAL_MZZI_HtoS = 6377,
+ SMLAL_MZZ_HtoS = 6378,
+ SMLAL_VG2_M2Z2Z_HtoS = 6379,
+ SMLAL_VG2_M2ZZI_S = 6380,
+ SMLAL_VG2_M2ZZ_HtoS = 6381,
+ SMLAL_VG4_M4Z4Z_HtoS = 6382,
+ SMLAL_VG4_M4ZZI_HtoS = 6383,
+ SMLAL_VG4_M4ZZ_HtoS = 6384,
+ SMLALv16i8_v8i16 = 6385,
+ SMLALv2i32_indexed = 6386,
+ SMLALv2i32_v2i64 = 6387,
+ SMLALv4i16_indexed = 6388,
+ SMLALv4i16_v4i32 = 6389,
+ SMLALv4i32_indexed = 6390,
+ SMLALv4i32_v2i64 = 6391,
+ SMLALv8i16_indexed = 6392,
+ SMLALv8i16_v4i32 = 6393,
+ SMLALv8i8_v8i16 = 6394,
+ SMLSLB_ZZZI_D = 6395,
+ SMLSLB_ZZZI_S = 6396,
+ SMLSLB_ZZZ_D = 6397,
+ SMLSLB_ZZZ_H = 6398,
+ SMLSLB_ZZZ_S = 6399,
+ SMLSLL_MZZI_BtoS = 6400,
+ SMLSLL_MZZI_HtoD = 6401,
+ SMLSLL_MZZ_BtoS = 6402,
+ SMLSLL_MZZ_HtoD = 6403,
+ SMLSLL_VG2_M2Z2Z_BtoS = 6404,
+ SMLSLL_VG2_M2Z2Z_HtoD = 6405,
+ SMLSLL_VG2_M2ZZI_BtoS = 6406,
+ SMLSLL_VG2_M2ZZI_HtoD = 6407,
+ SMLSLL_VG2_M2ZZ_BtoS = 6408,
+ SMLSLL_VG2_M2ZZ_HtoD = 6409,
+ SMLSLL_VG4_M4Z4Z_BtoS = 6410,
+ SMLSLL_VG4_M4Z4Z_HtoD = 6411,
+ SMLSLL_VG4_M4ZZI_BtoS = 6412,
+ SMLSLL_VG4_M4ZZI_HtoD = 6413,
+ SMLSLL_VG4_M4ZZ_BtoS = 6414,
+ SMLSLL_VG4_M4ZZ_HtoD = 6415,
+ SMLSLT_ZZZI_D = 6416,
+ SMLSLT_ZZZI_S = 6417,
+ SMLSLT_ZZZ_D = 6418,
+ SMLSLT_ZZZ_H = 6419,
+ SMLSLT_ZZZ_S = 6420,
+ SMLSL_MZZI_HtoS = 6421,
+ SMLSL_MZZ_HtoS = 6422,
+ SMLSL_VG2_M2Z2Z_HtoS = 6423,
+ SMLSL_VG2_M2ZZI_S = 6424,
+ SMLSL_VG2_M2ZZ_HtoS = 6425,
+ SMLSL_VG4_M4Z4Z_HtoS = 6426,
+ SMLSL_VG4_M4ZZI_HtoS = 6427,
+ SMLSL_VG4_M4ZZ_HtoS = 6428,
+ SMLSLv16i8_v8i16 = 6429,
+ SMLSLv2i32_indexed = 6430,
+ SMLSLv2i32_v2i64 = 6431,
+ SMLSLv4i16_indexed = 6432,
+ SMLSLv4i16_v4i32 = 6433,
+ SMLSLv4i32_indexed = 6434,
+ SMLSLv4i32_v2i64 = 6435,
+ SMLSLv8i16_indexed = 6436,
+ SMLSLv8i16_v4i32 = 6437,
+ SMLSLv8i8_v8i16 = 6438,
+ SMMLA = 6439,
+ SMMLA_ZZZ = 6440,
+ SMOP4A_M2Z2Z_BToS = 6441,
+ SMOP4A_M2Z2Z_HToS = 6442,
+ SMOP4A_M2Z2Z_HtoD = 6443,
+ SMOP4A_M2ZZ_BToS = 6444,
+ SMOP4A_M2ZZ_HToS = 6445,
+ SMOP4A_M2ZZ_HtoD = 6446,
+ SMOP4A_MZ2Z_BToS = 6447,
+ SMOP4A_MZ2Z_HToS = 6448,
+ SMOP4A_MZ2Z_HtoD = 6449,
+ SMOP4A_MZZ_BToS = 6450,
+ SMOP4A_MZZ_HToS = 6451,
+ SMOP4A_MZZ_HtoD = 6452,
+ SMOP4S_M2Z2Z_BToS = 6453,
+ SMOP4S_M2Z2Z_HToS = 6454,
+ SMOP4S_M2Z2Z_HtoD = 6455,
+ SMOP4S_M2ZZ_BToS = 6456,
+ SMOP4S_M2ZZ_HToS = 6457,
+ SMOP4S_M2ZZ_HtoD = 6458,
+ SMOP4S_MZ2Z_BToS = 6459,
+ SMOP4S_MZ2Z_HToS = 6460,
+ SMOP4S_MZ2Z_HtoD = 6461,
+ SMOP4S_MZZ_BToS = 6462,
+ SMOP4S_MZZ_HToS = 6463,
+ SMOP4S_MZZ_HtoD = 6464,
+ SMOPA_MPPZZ_D = 6465,
+ SMOPA_MPPZZ_HtoS = 6466,
+ SMOPA_MPPZZ_S = 6467,
+ SMOPS_MPPZZ_D = 6468,
+ SMOPS_MPPZZ_HtoS = 6469,
+ SMOPS_MPPZZ_S = 6470,
+ SMOVvi16to32 = 6471,
+ SMOVvi16to32_idx0 = 6472,
+ SMOVvi16to64 = 6473,
+ SMOVvi16to64_idx0 = 6474,
+ SMOVvi32to64 = 6475,
+ SMOVvi32to64_idx0 = 6476,
+ SMOVvi8to32 = 6477,
+ SMOVvi8to32_idx0 = 6478,
+ SMOVvi8to64 = 6479,
+ SMOVvi8to64_idx0 = 6480,
+ SMSUBLrrr = 6481,
+ SMULH_ZPmZ_B = 6482,
+ SMULH_ZPmZ_D = 6483,
+ SMULH_ZPmZ_H = 6484,
+ SMULH_ZPmZ_S = 6485,
+ SMULH_ZZZ_B = 6486,
+ SMULH_ZZZ_D = 6487,
+ SMULH_ZZZ_H = 6488,
+ SMULH_ZZZ_S = 6489,
+ SMULHrr = 6490,
+ SMULLB_ZZZI_D = 6491,
+ SMULLB_ZZZI_S = 6492,
+ SMULLB_ZZZ_D = 6493,
+ SMULLB_ZZZ_H = 6494,
+ SMULLB_ZZZ_S = 6495,
+ SMULLT_ZZZI_D = 6496,
+ SMULLT_ZZZI_S = 6497,
+ SMULLT_ZZZ_D = 6498,
+ SMULLT_ZZZ_H = 6499,
+ SMULLT_ZZZ_S = 6500,
+ SMULLv16i8_v8i16 = 6501,
+ SMULLv2i32_indexed = 6502,
+ SMULLv2i32_v2i64 = 6503,
+ SMULLv4i16_indexed = 6504,
+ SMULLv4i16_v4i32 = 6505,
+ SMULLv4i32_indexed = 6506,
+ SMULLv4i32_v2i64 = 6507,
+ SMULLv8i16_indexed = 6508,
+ SMULLv8i16_v4i32 = 6509,
+ SMULLv8i8_v8i16 = 6510,
+ SPLICE_ZPZZ_B = 6511,
+ SPLICE_ZPZZ_D = 6512,
+ SPLICE_ZPZZ_H = 6513,
+ SPLICE_ZPZZ_S = 6514,
+ SPLICE_ZPZ_B = 6515,
+ SPLICE_ZPZ_D = 6516,
+ SPLICE_ZPZ_H = 6517,
+ SPLICE_ZPZ_S = 6518,
+ SQABS_ZPmZ_B = 6519,
+ SQABS_ZPmZ_D = 6520,
+ SQABS_ZPmZ_H = 6521,
+ SQABS_ZPmZ_S = 6522,
+ SQABS_ZPzZ_B = 6523,
+ SQABS_ZPzZ_D = 6524,
+ SQABS_ZPzZ_H = 6525,
+ SQABS_ZPzZ_S = 6526,
+ SQABSv16i8 = 6527,
+ SQABSv1i16 = 6528,
+ SQABSv1i32 = 6529,
+ SQABSv1i64 = 6530,
+ SQABSv1i8 = 6531,
+ SQABSv2i32 = 6532,
+ SQABSv2i64 = 6533,
+ SQABSv4i16 = 6534,
+ SQABSv4i32 = 6535,
+ SQABSv8i16 = 6536,
+ SQABSv8i8 = 6537,
+ SQADD_ZI_B = 6538,
+ SQADD_ZI_D = 6539,
+ SQADD_ZI_H = 6540,
+ SQADD_ZI_S = 6541,
+ SQADD_ZPmZ_B = 6542,
+ SQADD_ZPmZ_D = 6543,
+ SQADD_ZPmZ_H = 6544,
+ SQADD_ZPmZ_S = 6545,
+ SQADD_ZZZ_B = 6546,
+ SQADD_ZZZ_D = 6547,
+ SQADD_ZZZ_H = 6548,
+ SQADD_ZZZ_S = 6549,
+ SQADDv16i8 = 6550,
+ SQADDv1i16 = 6551,
+ SQADDv1i32 = 6552,
+ SQADDv1i64 = 6553,
+ SQADDv1i8 = 6554,
+ SQADDv2i32 = 6555,
+ SQADDv2i64 = 6556,
+ SQADDv4i16 = 6557,
+ SQADDv4i32 = 6558,
+ SQADDv8i16 = 6559,
+ SQADDv8i8 = 6560,
+ SQCADD_ZZI_B = 6561,
+ SQCADD_ZZI_D = 6562,
+ SQCADD_ZZI_H = 6563,
+ SQCADD_ZZI_S = 6564,
+ SQCVTN_Z2Z_StoH = 6565,
+ SQCVTN_Z4Z_DtoH = 6566,
+ SQCVTN_Z4Z_StoB = 6567,
+ SQCVTUN_Z2Z_StoH = 6568,
+ SQCVTUN_Z4Z_DtoH = 6569,
+ SQCVTUN_Z4Z_StoB = 6570,
+ SQCVTU_Z2Z_StoH = 6571,
+ SQCVTU_Z4Z_DtoH = 6572,
+ SQCVTU_Z4Z_StoB = 6573,
+ SQCVT_Z2Z_StoH = 6574,
+ SQCVT_Z4Z_DtoH = 6575,
+ SQCVT_Z4Z_StoB = 6576,
+ SQDECB_XPiI = 6577,
+ SQDECB_XPiWdI = 6578,
+ SQDECD_XPiI = 6579,
+ SQDECD_XPiWdI = 6580,
+ SQDECD_ZPiI = 6581,
+ SQDECH_XPiI = 6582,
+ SQDECH_XPiWdI = 6583,
+ SQDECH_ZPiI = 6584,
+ SQDECP_XPWd_B = 6585,
+ SQDECP_XPWd_D = 6586,
+ SQDECP_XPWd_H = 6587,
+ SQDECP_XPWd_S = 6588,
+ SQDECP_XP_B = 6589,
+ SQDECP_XP_D = 6590,
+ SQDECP_XP_H = 6591,
+ SQDECP_XP_S = 6592,
+ SQDECP_ZP_D = 6593,
+ SQDECP_ZP_H = 6594,
+ SQDECP_ZP_S = 6595,
+ SQDECW_XPiI = 6596,
+ SQDECW_XPiWdI = 6597,
+ SQDECW_ZPiI = 6598,
+ SQDMLALBT_ZZZ_D = 6599,
+ SQDMLALBT_ZZZ_H = 6600,
+ SQDMLALBT_ZZZ_S = 6601,
+ SQDMLALB_ZZZI_D = 6602,
+ SQDMLALB_ZZZI_S = 6603,
+ SQDMLALB_ZZZ_D = 6604,
+ SQDMLALB_ZZZ_H = 6605,
+ SQDMLALB_ZZZ_S = 6606,
+ SQDMLALT_ZZZI_D = 6607,
+ SQDMLALT_ZZZI_S = 6608,
+ SQDMLALT_ZZZ_D = 6609,
+ SQDMLALT_ZZZ_H = 6610,
+ SQDMLALT_ZZZ_S = 6611,
+ SQDMLALi16 = 6612,
+ SQDMLALi32 = 6613,
+ SQDMLALv1i32_indexed = 6614,
+ SQDMLALv1i64_indexed = 6615,
+ SQDMLALv2i32_indexed = 6616,
+ SQDMLALv2i32_v2i64 = 6617,
+ SQDMLALv4i16_indexed = 6618,
+ SQDMLALv4i16_v4i32 = 6619,
+ SQDMLALv4i32_indexed = 6620,
+ SQDMLALv4i32_v2i64 = 6621,
+ SQDMLALv8i16_indexed = 6622,
+ SQDMLALv8i16_v4i32 = 6623,
+ SQDMLSLBT_ZZZ_D = 6624,
+ SQDMLSLBT_ZZZ_H = 6625,
+ SQDMLSLBT_ZZZ_S = 6626,
+ SQDMLSLB_ZZZI_D = 6627,
+ SQDMLSLB_ZZZI_S = 6628,
+ SQDMLSLB_ZZZ_D = 6629,
+ SQDMLSLB_ZZZ_H = 6630,
+ SQDMLSLB_ZZZ_S = 6631,
+ SQDMLSLT_ZZZI_D = 6632,
+ SQDMLSLT_ZZZI_S = 6633,
+ SQDMLSLT_ZZZ_D = 6634,
+ SQDMLSLT_ZZZ_H = 6635,
+ SQDMLSLT_ZZZ_S = 6636,
+ SQDMLSLi16 = 6637,
+ SQDMLSLi32 = 6638,
+ SQDMLSLv1i32_indexed = 6639,
+ SQDMLSLv1i64_indexed = 6640,
+ SQDMLSLv2i32_indexed = 6641,
+ SQDMLSLv2i32_v2i64 = 6642,
+ SQDMLSLv4i16_indexed = 6643,
+ SQDMLSLv4i16_v4i32 = 6644,
+ SQDMLSLv4i32_indexed = 6645,
+ SQDMLSLv4i32_v2i64 = 6646,
+ SQDMLSLv8i16_indexed = 6647,
+ SQDMLSLv8i16_v4i32 = 6648,
+ SQDMULH_VG2_2Z2Z_B = 6649,
+ SQDMULH_VG2_2Z2Z_D = 6650,
+ SQDMULH_VG2_2Z2Z_H = 6651,
+ SQDMULH_VG2_2Z2Z_S = 6652,
+ SQDMULH_VG2_2ZZ_B = 6653,
+ SQDMULH_VG2_2ZZ_D = 6654,
+ SQDMULH_VG2_2ZZ_H = 6655,
+ SQDMULH_VG2_2ZZ_S = 6656,
+ SQDMULH_VG4_4Z4Z_B = 6657,
+ SQDMULH_VG4_4Z4Z_D = 6658,
+ SQDMULH_VG4_4Z4Z_H = 6659,
+ SQDMULH_VG4_4Z4Z_S = 6660,
+ SQDMULH_VG4_4ZZ_B = 6661,
+ SQDMULH_VG4_4ZZ_D = 6662,
+ SQDMULH_VG4_4ZZ_H = 6663,
+ SQDMULH_VG4_4ZZ_S = 6664,
+ SQDMULH_ZZZI_D = 6665,
+ SQDMULH_ZZZI_H = 6666,
+ SQDMULH_ZZZI_S = 6667,
+ SQDMULH_ZZZ_B = 6668,
+ SQDMULH_ZZZ_D = 6669,
+ SQDMULH_ZZZ_H = 6670,
+ SQDMULH_ZZZ_S = 6671,
+ SQDMULHv1i16 = 6672,
+ SQDMULHv1i16_indexed = 6673,
+ SQDMULHv1i32 = 6674,
+ SQDMULHv1i32_indexed = 6675,
+ SQDMULHv2i32 = 6676,
+ SQDMULHv2i32_indexed = 6677,
+ SQDMULHv4i16 = 6678,
+ SQDMULHv4i16_indexed = 6679,
+ SQDMULHv4i32 = 6680,
+ SQDMULHv4i32_indexed = 6681,
+ SQDMULHv8i16 = 6682,
+ SQDMULHv8i16_indexed = 6683,
+ SQDMULLB_ZZZI_D = 6684,
+ SQDMULLB_ZZZI_S = 6685,
+ SQDMULLB_ZZZ_D = 6686,
+ SQDMULLB_ZZZ_H = 6687,
+ SQDMULLB_ZZZ_S = 6688,
+ SQDMULLT_ZZZI_D = 6689,
+ SQDMULLT_ZZZI_S = 6690,
+ SQDMULLT_ZZZ_D = 6691,
+ SQDMULLT_ZZZ_H = 6692,
+ SQDMULLT_ZZZ_S = 6693,
+ SQDMULLi16 = 6694,
+ SQDMULLi32 = 6695,
+ SQDMULLv1i32_indexed = 6696,
+ SQDMULLv1i64_indexed = 6697,
+ SQDMULLv2i32_indexed = 6698,
+ SQDMULLv2i32_v2i64 = 6699,
+ SQDMULLv4i16_indexed = 6700,
+ SQDMULLv4i16_v4i32 = 6701,
+ SQDMULLv4i32_indexed = 6702,
+ SQDMULLv4i32_v2i64 = 6703,
+ SQDMULLv8i16_indexed = 6704,
+ SQDMULLv8i16_v4i32 = 6705,
+ SQINCB_XPiI = 6706,
+ SQINCB_XPiWdI = 6707,
+ SQINCD_XPiI = 6708,
+ SQINCD_XPiWdI = 6709,
+ SQINCD_ZPiI = 6710,
+ SQINCH_XPiI = 6711,
+ SQINCH_XPiWdI = 6712,
+ SQINCH_ZPiI = 6713,
+ SQINCP_XPWd_B = 6714,
+ SQINCP_XPWd_D = 6715,
+ SQINCP_XPWd_H = 6716,
+ SQINCP_XPWd_S = 6717,
+ SQINCP_XP_B = 6718,
+ SQINCP_XP_D = 6719,
+ SQINCP_XP_H = 6720,
+ SQINCP_XP_S = 6721,
+ SQINCP_ZP_D = 6722,
+ SQINCP_ZP_H = 6723,
+ SQINCP_ZP_S = 6724,
+ SQINCW_XPiI = 6725,
+ SQINCW_XPiWdI = 6726,
+ SQINCW_ZPiI = 6727,
+ SQNEG_ZPmZ_B = 6728,
+ SQNEG_ZPmZ_D = 6729,
+ SQNEG_ZPmZ_H = 6730,
+ SQNEG_ZPmZ_S = 6731,
+ SQNEG_ZPzZ_B = 6732,
+ SQNEG_ZPzZ_D = 6733,
+ SQNEG_ZPzZ_H = 6734,
+ SQNEG_ZPzZ_S = 6735,
+ SQNEGv16i8 = 6736,
+ SQNEGv1i16 = 6737,
+ SQNEGv1i32 = 6738,
+ SQNEGv1i64 = 6739,
+ SQNEGv1i8 = 6740,
+ SQNEGv2i32 = 6741,
+ SQNEGv2i64 = 6742,
+ SQNEGv4i16 = 6743,
+ SQNEGv4i32 = 6744,
+ SQNEGv8i16 = 6745,
+ SQNEGv8i8 = 6746,
+ SQRDCMLAH_ZZZI_H = 6747,
+ SQRDCMLAH_ZZZI_S = 6748,
+ SQRDCMLAH_ZZZ_B = 6749,
+ SQRDCMLAH_ZZZ_D = 6750,
+ SQRDCMLAH_ZZZ_H = 6751,
+ SQRDCMLAH_ZZZ_S = 6752,
+ SQRDMLAH_ZZZI_D = 6753,
+ SQRDMLAH_ZZZI_H = 6754,
+ SQRDMLAH_ZZZI_S = 6755,
+ SQRDMLAH_ZZZ_B = 6756,
+ SQRDMLAH_ZZZ_D = 6757,
+ SQRDMLAH_ZZZ_H = 6758,
+ SQRDMLAH_ZZZ_S = 6759,
+ SQRDMLAHv1i16 = 6760,
+ SQRDMLAHv1i16_indexed = 6761,
+ SQRDMLAHv1i32 = 6762,
+ SQRDMLAHv1i32_indexed = 6763,
+ SQRDMLAHv2i32 = 6764,
+ SQRDMLAHv2i32_indexed = 6765,
+ SQRDMLAHv4i16 = 6766,
+ SQRDMLAHv4i16_indexed = 6767,
+ SQRDMLAHv4i32 = 6768,
+ SQRDMLAHv4i32_indexed = 6769,
+ SQRDMLAHv8i16 = 6770,
+ SQRDMLAHv8i16_indexed = 6771,
+ SQRDMLSH_ZZZI_D = 6772,
+ SQRDMLSH_ZZZI_H = 6773,
+ SQRDMLSH_ZZZI_S = 6774,
+ SQRDMLSH_ZZZ_B = 6775,
+ SQRDMLSH_ZZZ_D = 6776,
+ SQRDMLSH_ZZZ_H = 6777,
+ SQRDMLSH_ZZZ_S = 6778,
+ SQRDMLSHv1i16 = 6779,
+ SQRDMLSHv1i16_indexed = 6780,
+ SQRDMLSHv1i32 = 6781,
+ SQRDMLSHv1i32_indexed = 6782,
+ SQRDMLSHv2i32 = 6783,
+ SQRDMLSHv2i32_indexed = 6784,
+ SQRDMLSHv4i16 = 6785,
+ SQRDMLSHv4i16_indexed = 6786,
+ SQRDMLSHv4i32 = 6787,
+ SQRDMLSHv4i32_indexed = 6788,
+ SQRDMLSHv8i16 = 6789,
+ SQRDMLSHv8i16_indexed = 6790,
+ SQRDMULH_ZZZI_D = 6791,
+ SQRDMULH_ZZZI_H = 6792,
+ SQRDMULH_ZZZI_S = 6793,
+ SQRDMULH_ZZZ_B = 6794,
+ SQRDMULH_ZZZ_D = 6795,
+ SQRDMULH_ZZZ_H = 6796,
+ SQRDMULH_ZZZ_S = 6797,
+ SQRDMULHv1i16 = 6798,
+ SQRDMULHv1i16_indexed = 6799,
+ SQRDMULHv1i32 = 6800,
+ SQRDMULHv1i32_indexed = 6801,
+ SQRDMULHv2i32 = 6802,
+ SQRDMULHv2i32_indexed = 6803,
+ SQRDMULHv4i16 = 6804,
+ SQRDMULHv4i16_indexed = 6805,
+ SQRDMULHv4i32 = 6806,
+ SQRDMULHv4i32_indexed = 6807,
+ SQRDMULHv8i16 = 6808,
+ SQRDMULHv8i16_indexed = 6809,
+ SQRSHLR_ZPmZ_B = 6810,
+ SQRSHLR_ZPmZ_D = 6811,
+ SQRSHLR_ZPmZ_H = 6812,
+ SQRSHLR_ZPmZ_S = 6813,
+ SQRSHL_ZPmZ_B = 6814,
+ SQRSHL_ZPmZ_D = 6815,
+ SQRSHL_ZPmZ_H = 6816,
+ SQRSHL_ZPmZ_S = 6817,
+ SQRSHLv16i8 = 6818,
+ SQRSHLv1i16 = 6819,
+ SQRSHLv1i32 = 6820,
+ SQRSHLv1i64 = 6821,
+ SQRSHLv1i8 = 6822,
+ SQRSHLv2i32 = 6823,
+ SQRSHLv2i64 = 6824,
+ SQRSHLv4i16 = 6825,
+ SQRSHLv4i32 = 6826,
+ SQRSHLv8i16 = 6827,
+ SQRSHLv8i8 = 6828,
+ SQRSHRNB_ZZI_B = 6829,
+ SQRSHRNB_ZZI_H = 6830,
+ SQRSHRNB_ZZI_S = 6831,
+ SQRSHRNT_ZZI_B = 6832,
+ SQRSHRNT_ZZI_H = 6833,
+ SQRSHRNT_ZZI_S = 6834,
+ SQRSHRN_VG4_Z4ZI_B = 6835,
+ SQRSHRN_VG4_Z4ZI_H = 6836,
+ SQRSHRN_Z2ZI_HtoB = 6837,
+ SQRSHRN_Z2ZI_StoH = 6838,
+ SQRSHRNb = 6839,
+ SQRSHRNh = 6840,
+ SQRSHRNs = 6841,
+ SQRSHRNv16i8_shift = 6842,
+ SQRSHRNv2i32_shift = 6843,
+ SQRSHRNv4i16_shift = 6844,
+ SQRSHRNv4i32_shift = 6845,
+ SQRSHRNv8i16_shift = 6846,
+ SQRSHRNv8i8_shift = 6847,
+ SQRSHRUNB_ZZI_B = 6848,
+ SQRSHRUNB_ZZI_H = 6849,
+ SQRSHRUNB_ZZI_S = 6850,
+ SQRSHRUNT_ZZI_B = 6851,
+ SQRSHRUNT_ZZI_H = 6852,
+ SQRSHRUNT_ZZI_S = 6853,
+ SQRSHRUN_VG4_Z4ZI_B = 6854,
+ SQRSHRUN_VG4_Z4ZI_H = 6855,
+ SQRSHRUN_Z2ZI_HtoB = 6856,
+ SQRSHRUN_Z2ZI_StoH = 6857,
+ SQRSHRUNb = 6858,
+ SQRSHRUNh = 6859,
+ SQRSHRUNs = 6860,
+ SQRSHRUNv16i8_shift = 6861,
+ SQRSHRUNv2i32_shift = 6862,
+ SQRSHRUNv4i16_shift = 6863,
+ SQRSHRUNv4i32_shift = 6864,
+ SQRSHRUNv8i16_shift = 6865,
+ SQRSHRUNv8i8_shift = 6866,
+ SQRSHRU_VG2_Z2ZI_H = 6867,
+ SQRSHRU_VG4_Z4ZI_B = 6868,
+ SQRSHRU_VG4_Z4ZI_H = 6869,
+ SQRSHR_VG2_Z2ZI_H = 6870,
+ SQRSHR_VG4_Z4ZI_B = 6871,
+ SQRSHR_VG4_Z4ZI_H = 6872,
+ SQSHLR_ZPmZ_B = 6873,
+ SQSHLR_ZPmZ_D = 6874,
+ SQSHLR_ZPmZ_H = 6875,
+ SQSHLR_ZPmZ_S = 6876,
+ SQSHLU_ZPmI_B = 6877,
+ SQSHLU_ZPmI_D = 6878,
+ SQSHLU_ZPmI_H = 6879,
+ SQSHLU_ZPmI_S = 6880,
+ SQSHLUb = 6881,
+ SQSHLUd = 6882,
+ SQSHLUh = 6883,
+ SQSHLUs = 6884,
+ SQSHLUv16i8_shift = 6885,
+ SQSHLUv2i32_shift = 6886,
+ SQSHLUv2i64_shift = 6887,
+ SQSHLUv4i16_shift = 6888,
+ SQSHLUv4i32_shift = 6889,
+ SQSHLUv8i16_shift = 6890,
+ SQSHLUv8i8_shift = 6891,
+ SQSHL_ZPmI_B = 6892,
+ SQSHL_ZPmI_D = 6893,
+ SQSHL_ZPmI_H = 6894,
+ SQSHL_ZPmI_S = 6895,
+ SQSHL_ZPmZ_B = 6896,
+ SQSHL_ZPmZ_D = 6897,
+ SQSHL_ZPmZ_H = 6898,
+ SQSHL_ZPmZ_S = 6899,
+ SQSHLb = 6900,
+ SQSHLd = 6901,
+ SQSHLh = 6902,
+ SQSHLs = 6903,
+ SQSHLv16i8 = 6904,
+ SQSHLv16i8_shift = 6905,
+ SQSHLv1i16 = 6906,
+ SQSHLv1i32 = 6907,
+ SQSHLv1i64 = 6908,
+ SQSHLv1i8 = 6909,
+ SQSHLv2i32 = 6910,
+ SQSHLv2i32_shift = 6911,
+ SQSHLv2i64 = 6912,
+ SQSHLv2i64_shift = 6913,
+ SQSHLv4i16 = 6914,
+ SQSHLv4i16_shift = 6915,
+ SQSHLv4i32 = 6916,
+ SQSHLv4i32_shift = 6917,
+ SQSHLv8i16 = 6918,
+ SQSHLv8i16_shift = 6919,
+ SQSHLv8i8 = 6920,
+ SQSHLv8i8_shift = 6921,
+ SQSHRNB_ZZI_B = 6922,
+ SQSHRNB_ZZI_H = 6923,
+ SQSHRNB_ZZI_S = 6924,
+ SQSHRNT_ZZI_B = 6925,
+ SQSHRNT_ZZI_H = 6926,
+ SQSHRNT_ZZI_S = 6927,
+ SQSHRN_Z2ZI_HtoB = 6928,
+ SQSHRN_Z2ZI_StoH = 6929,
+ SQSHRNb = 6930,
+ SQSHRNh = 6931,
+ SQSHRNs = 6932,
+ SQSHRNv16i8_shift = 6933,
+ SQSHRNv2i32_shift = 6934,
+ SQSHRNv4i16_shift = 6935,
+ SQSHRNv4i32_shift = 6936,
+ SQSHRNv8i16_shift = 6937,
+ SQSHRNv8i8_shift = 6938,
+ SQSHRUNB_ZZI_B = 6939,
+ SQSHRUNB_ZZI_H = 6940,
+ SQSHRUNB_ZZI_S = 6941,
+ SQSHRUNT_ZZI_B = 6942,
+ SQSHRUNT_ZZI_H = 6943,
+ SQSHRUNT_ZZI_S = 6944,
+ SQSHRUN_Z2ZI_HtoB = 6945,
+ SQSHRUN_Z2ZI_StoH = 6946,
+ SQSHRUNb = 6947,
+ SQSHRUNh = 6948,
+ SQSHRUNs = 6949,
+ SQSHRUNv16i8_shift = 6950,
+ SQSHRUNv2i32_shift = 6951,
+ SQSHRUNv4i16_shift = 6952,
+ SQSHRUNv4i32_shift = 6953,
+ SQSHRUNv8i16_shift = 6954,
+ SQSHRUNv8i8_shift = 6955,
+ SQSUBR_ZPmZ_B = 6956,
+ SQSUBR_ZPmZ_D = 6957,
+ SQSUBR_ZPmZ_H = 6958,
+ SQSUBR_ZPmZ_S = 6959,
+ SQSUB_ZI_B = 6960,
+ SQSUB_ZI_D = 6961,
+ SQSUB_ZI_H = 6962,
+ SQSUB_ZI_S = 6963,
+ SQSUB_ZPmZ_B = 6964,
+ SQSUB_ZPmZ_D = 6965,
+ SQSUB_ZPmZ_H = 6966,
+ SQSUB_ZPmZ_S = 6967,
+ SQSUB_ZZZ_B = 6968,
+ SQSUB_ZZZ_D = 6969,
+ SQSUB_ZZZ_H = 6970,
+ SQSUB_ZZZ_S = 6971,
+ SQSUBv16i8 = 6972,
+ SQSUBv1i16 = 6973,
+ SQSUBv1i32 = 6974,
+ SQSUBv1i64 = 6975,
+ SQSUBv1i8 = 6976,
+ SQSUBv2i32 = 6977,
+ SQSUBv2i64 = 6978,
+ SQSUBv4i16 = 6979,
+ SQSUBv4i32 = 6980,
+ SQSUBv8i16 = 6981,
+ SQSUBv8i8 = 6982,
+ SQXTNB_ZZ_B = 6983,
+ SQXTNB_ZZ_H = 6984,
+ SQXTNB_ZZ_S = 6985,
+ SQXTNT_ZZ_B = 6986,
+ SQXTNT_ZZ_H = 6987,
+ SQXTNT_ZZ_S = 6988,
+ SQXTNv16i8 = 6989,
+ SQXTNv1i16 = 6990,
+ SQXTNv1i32 = 6991,
+ SQXTNv1i8 = 6992,
+ SQXTNv2i32 = 6993,
+ SQXTNv4i16 = 6994,
+ SQXTNv4i32 = 6995,
+ SQXTNv8i16 = 6996,
+ SQXTNv8i8 = 6997,
+ SQXTUNB_ZZ_B = 6998,
+ SQXTUNB_ZZ_H = 6999,
+ SQXTUNB_ZZ_S = 7000,
+ SQXTUNT_ZZ_B = 7001,
+ SQXTUNT_ZZ_H = 7002,
+ SQXTUNT_ZZ_S = 7003,
+ SQXTUNv16i8 = 7004,
+ SQXTUNv1i16 = 7005,
+ SQXTUNv1i32 = 7006,
+ SQXTUNv1i8 = 7007,
+ SQXTUNv2i32 = 7008,
+ SQXTUNv4i16 = 7009,
+ SQXTUNv4i32 = 7010,
+ SQXTUNv8i16 = 7011,
+ SQXTUNv8i8 = 7012,
+ SRHADD_ZPmZ_B = 7013,
+ SRHADD_ZPmZ_D = 7014,
+ SRHADD_ZPmZ_H = 7015,
+ SRHADD_ZPmZ_S = 7016,
+ SRHADDv16i8 = 7017,
+ SRHADDv2i32 = 7018,
+ SRHADDv4i16 = 7019,
+ SRHADDv4i32 = 7020,
+ SRHADDv8i16 = 7021,
+ SRHADDv8i8 = 7022,
+ SRI_ZZI_B = 7023,
+ SRI_ZZI_D = 7024,
+ SRI_ZZI_H = 7025,
+ SRI_ZZI_S = 7026,
+ SRId = 7027,
+ SRIv16i8_shift = 7028,
+ SRIv2i32_shift = 7029,
+ SRIv2i64_shift = 7030,
+ SRIv4i16_shift = 7031,
+ SRIv4i32_shift = 7032,
+ SRIv8i16_shift = 7033,
+ SRIv8i8_shift = 7034,
+ SRSHLR_ZPmZ_B = 7035,
+ SRSHLR_ZPmZ_D = 7036,
+ SRSHLR_ZPmZ_H = 7037,
+ SRSHLR_ZPmZ_S = 7038,
+ SRSHL_VG2_2Z2Z_B = 7039,
+ SRSHL_VG2_2Z2Z_D = 7040,
+ SRSHL_VG2_2Z2Z_H = 7041,
+ SRSHL_VG2_2Z2Z_S = 7042,
+ SRSHL_VG2_2ZZ_B = 7043,
+ SRSHL_VG2_2ZZ_D = 7044,
+ SRSHL_VG2_2ZZ_H = 7045,
+ SRSHL_VG2_2ZZ_S = 7046,
+ SRSHL_VG4_4Z4Z_B = 7047,
+ SRSHL_VG4_4Z4Z_D = 7048,
+ SRSHL_VG4_4Z4Z_H = 7049,
+ SRSHL_VG4_4Z4Z_S = 7050,
+ SRSHL_VG4_4ZZ_B = 7051,
+ SRSHL_VG4_4ZZ_D = 7052,
+ SRSHL_VG4_4ZZ_H = 7053,
+ SRSHL_VG4_4ZZ_S = 7054,
+ SRSHL_ZPmZ_B = 7055,
+ SRSHL_ZPmZ_D = 7056,
+ SRSHL_ZPmZ_H = 7057,
+ SRSHL_ZPmZ_S = 7058,
+ SRSHLv16i8 = 7059,
+ SRSHLv1i64 = 7060,
+ SRSHLv2i32 = 7061,
+ SRSHLv2i64 = 7062,
+ SRSHLv4i16 = 7063,
+ SRSHLv4i32 = 7064,
+ SRSHLv8i16 = 7065,
+ SRSHLv8i8 = 7066,
+ SRSHR_ZPmI_B = 7067,
+ SRSHR_ZPmI_D = 7068,
+ SRSHR_ZPmI_H = 7069,
+ SRSHR_ZPmI_S = 7070,
+ SRSHRd = 7071,
+ SRSHRv16i8_shift = 7072,
+ SRSHRv2i32_shift = 7073,
+ SRSHRv2i64_shift = 7074,
+ SRSHRv4i16_shift = 7075,
+ SRSHRv4i32_shift = 7076,
+ SRSHRv8i16_shift = 7077,
+ SRSHRv8i8_shift = 7078,
+ SRSRA_ZZI_B = 7079,
+ SRSRA_ZZI_D = 7080,
+ SRSRA_ZZI_H = 7081,
+ SRSRA_ZZI_S = 7082,
+ SRSRAd = 7083,
+ SRSRAv16i8_shift = 7084,
+ SRSRAv2i32_shift = 7085,
+ SRSRAv2i64_shift = 7086,
+ SRSRAv4i16_shift = 7087,
+ SRSRAv4i32_shift = 7088,
+ SRSRAv8i16_shift = 7089,
+ SRSRAv8i8_shift = 7090,
+ SSHLLB_ZZI_D = 7091,
+ SSHLLB_ZZI_H = 7092,
+ SSHLLB_ZZI_S = 7093,
+ SSHLLT_ZZI_D = 7094,
+ SSHLLT_ZZI_H = 7095,
+ SSHLLT_ZZI_S = 7096,
+ SSHLLv16i8_shift = 7097,
+ SSHLLv2i32_shift = 7098,
+ SSHLLv4i16_shift = 7099,
+ SSHLLv4i32_shift = 7100,
+ SSHLLv8i16_shift = 7101,
+ SSHLLv8i8_shift = 7102,
+ SSHLv16i8 = 7103,
+ SSHLv1i64 = 7104,
+ SSHLv2i32 = 7105,
+ SSHLv2i64 = 7106,
+ SSHLv4i16 = 7107,
+ SSHLv4i32 = 7108,
+ SSHLv8i16 = 7109,
+ SSHLv8i8 = 7110,
+ SSHRd = 7111,
+ SSHRv16i8_shift = 7112,
+ SSHRv2i32_shift = 7113,
+ SSHRv2i64_shift = 7114,
+ SSHRv4i16_shift = 7115,
+ SSHRv4i32_shift = 7116,
+ SSHRv8i16_shift = 7117,
+ SSHRv8i8_shift = 7118,
+ SSRA_ZZI_B = 7119,
+ SSRA_ZZI_D = 7120,
+ SSRA_ZZI_H = 7121,
+ SSRA_ZZI_S = 7122,
+ SSRAd = 7123,
+ SSRAv16i8_shift = 7124,
+ SSRAv2i32_shift = 7125,
+ SSRAv2i64_shift = 7126,
+ SSRAv4i16_shift = 7127,
+ SSRAv4i32_shift = 7128,
+ SSRAv8i16_shift = 7129,
+ SSRAv8i8_shift = 7130,
+ SST1B_D = 7131,
+ SST1B_D_IMM = 7132,
+ SST1B_D_SXTW = 7133,
+ SST1B_D_UXTW = 7134,
+ SST1B_S_IMM = 7135,
+ SST1B_S_SXTW = 7136,
+ SST1B_S_UXTW = 7137,
+ SST1D = 7138,
+ SST1D_IMM = 7139,
+ SST1D_SCALED = 7140,
+ SST1D_SXTW = 7141,
+ SST1D_SXTW_SCALED = 7142,
+ SST1D_UXTW = 7143,
+ SST1D_UXTW_SCALED = 7144,
+ SST1H_D = 7145,
+ SST1H_D_IMM = 7146,
+ SST1H_D_SCALED = 7147,
+ SST1H_D_SXTW = 7148,
+ SST1H_D_SXTW_SCALED = 7149,
+ SST1H_D_UXTW = 7150,
+ SST1H_D_UXTW_SCALED = 7151,
+ SST1H_S_IMM = 7152,
+ SST1H_S_SXTW = 7153,
+ SST1H_S_SXTW_SCALED = 7154,
+ SST1H_S_UXTW = 7155,
+ SST1H_S_UXTW_SCALED = 7156,
+ SST1Q = 7157,
+ SST1W_D = 7158,
+ SST1W_D_IMM = 7159,
+ SST1W_D_SCALED = 7160,
+ SST1W_D_SXTW = 7161,
+ SST1W_D_SXTW_SCALED = 7162,
+ SST1W_D_UXTW = 7163,
+ SST1W_D_UXTW_SCALED = 7164,
+ SST1W_IMM = 7165,
+ SST1W_SXTW = 7166,
+ SST1W_SXTW_SCALED = 7167,
+ SST1W_UXTW = 7168,
+ SST1W_UXTW_SCALED = 7169,
+ SSUBLBT_ZZZ_D = 7170,
+ SSUBLBT_ZZZ_H = 7171,
+ SSUBLBT_ZZZ_S = 7172,
+ SSUBLB_ZZZ_D = 7173,
+ SSUBLB_ZZZ_H = 7174,
+ SSUBLB_ZZZ_S = 7175,
+ SSUBLTB_ZZZ_D = 7176,
+ SSUBLTB_ZZZ_H = 7177,
+ SSUBLTB_ZZZ_S = 7178,
+ SSUBLT_ZZZ_D = 7179,
+ SSUBLT_ZZZ_H = 7180,
+ SSUBLT_ZZZ_S = 7181,
+ SSUBLv16i8_v8i16 = 7182,
+ SSUBLv2i32_v2i64 = 7183,
+ SSUBLv4i16_v4i32 = 7184,
+ SSUBLv4i32_v2i64 = 7185,
+ SSUBLv8i16_v4i32 = 7186,
+ SSUBLv8i8_v8i16 = 7187,
+ SSUBWB_ZZZ_D = 7188,
+ SSUBWB_ZZZ_H = 7189,
+ SSUBWB_ZZZ_S = 7190,
+ SSUBWT_ZZZ_D = 7191,
+ SSUBWT_ZZZ_H = 7192,
+ SSUBWT_ZZZ_S = 7193,
+ SSUBWv16i8_v8i16 = 7194,
+ SSUBWv2i32_v2i64 = 7195,
+ SSUBWv4i16_v4i32 = 7196,
+ SSUBWv4i32_v2i64 = 7197,
+ SSUBWv8i16_v4i32 = 7198,
+ SSUBWv8i8_v8i16 = 7199,
+ ST1B = 7200,
+ ST1B_2Z = 7201,
+ ST1B_2Z_IMM = 7202,
+ ST1B_2Z_STRIDED = 7203,
+ ST1B_2Z_STRIDED_IMM = 7204,
+ ST1B_4Z = 7205,
+ ST1B_4Z_IMM = 7206,
+ ST1B_4Z_STRIDED = 7207,
+ ST1B_4Z_STRIDED_IMM = 7208,
+ ST1B_D = 7209,
+ ST1B_D_IMM = 7210,
+ ST1B_H = 7211,
+ ST1B_H_IMM = 7212,
+ ST1B_IMM = 7213,
+ ST1B_S = 7214,
+ ST1B_S_IMM = 7215,
+ ST1D = 7216,
+ ST1D_2Z = 7217,
+ ST1D_2Z_IMM = 7218,
+ ST1D_2Z_STRIDED = 7219,
+ ST1D_2Z_STRIDED_IMM = 7220,
+ ST1D_4Z = 7221,
+ ST1D_4Z_IMM = 7222,
+ ST1D_4Z_STRIDED = 7223,
+ ST1D_4Z_STRIDED_IMM = 7224,
+ ST1D_IMM = 7225,
+ ST1D_Q = 7226,
+ ST1D_Q_IMM = 7227,
+ ST1Fourv16b = 7228,
+ ST1Fourv16b_POST = 7229,
+ ST1Fourv1d = 7230,
+ ST1Fourv1d_POST = 7231,
+ ST1Fourv2d = 7232,
+ ST1Fourv2d_POST = 7233,
+ ST1Fourv2s = 7234,
+ ST1Fourv2s_POST = 7235,
+ ST1Fourv4h = 7236,
+ ST1Fourv4h_POST = 7237,
+ ST1Fourv4s = 7238,
+ ST1Fourv4s_POST = 7239,
+ ST1Fourv8b = 7240,
+ ST1Fourv8b_POST = 7241,
+ ST1Fourv8h = 7242,
+ ST1Fourv8h_POST = 7243,
+ ST1H = 7244,
+ ST1H_2Z = 7245,
+ ST1H_2Z_IMM = 7246,
+ ST1H_2Z_STRIDED = 7247,
+ ST1H_2Z_STRIDED_IMM = 7248,
+ ST1H_4Z = 7249,
+ ST1H_4Z_IMM = 7250,
+ ST1H_4Z_STRIDED = 7251,
+ ST1H_4Z_STRIDED_IMM = 7252,
+ ST1H_D = 7253,
+ ST1H_D_IMM = 7254,
+ ST1H_IMM = 7255,
+ ST1H_S = 7256,
+ ST1H_S_IMM = 7257,
+ ST1Onev16b = 7258,
+ ST1Onev16b_POST = 7259,
+ ST1Onev1d = 7260,
+ ST1Onev1d_POST = 7261,
+ ST1Onev2d = 7262,
+ ST1Onev2d_POST = 7263,
+ ST1Onev2s = 7264,
+ ST1Onev2s_POST = 7265,
+ ST1Onev4h = 7266,
+ ST1Onev4h_POST = 7267,
+ ST1Onev4s = 7268,
+ ST1Onev4s_POST = 7269,
+ ST1Onev8b = 7270,
+ ST1Onev8b_POST = 7271,
+ ST1Onev8h = 7272,
+ ST1Onev8h_POST = 7273,
+ ST1Threev16b = 7274,
+ ST1Threev16b_POST = 7275,
+ ST1Threev1d = 7276,
+ ST1Threev1d_POST = 7277,
+ ST1Threev2d = 7278,
+ ST1Threev2d_POST = 7279,
+ ST1Threev2s = 7280,
+ ST1Threev2s_POST = 7281,
+ ST1Threev4h = 7282,
+ ST1Threev4h_POST = 7283,
+ ST1Threev4s = 7284,
+ ST1Threev4s_POST = 7285,
+ ST1Threev8b = 7286,
+ ST1Threev8b_POST = 7287,
+ ST1Threev8h = 7288,
+ ST1Threev8h_POST = 7289,
+ ST1Twov16b = 7290,
+ ST1Twov16b_POST = 7291,
+ ST1Twov1d = 7292,
+ ST1Twov1d_POST = 7293,
+ ST1Twov2d = 7294,
+ ST1Twov2d_POST = 7295,
+ ST1Twov2s = 7296,
+ ST1Twov2s_POST = 7297,
+ ST1Twov4h = 7298,
+ ST1Twov4h_POST = 7299,
+ ST1Twov4s = 7300,
+ ST1Twov4s_POST = 7301,
+ ST1Twov8b = 7302,
+ ST1Twov8b_POST = 7303,
+ ST1Twov8h = 7304,
+ ST1Twov8h_POST = 7305,
+ ST1W = 7306,
+ ST1W_2Z = 7307,
+ ST1W_2Z_IMM = 7308,
+ ST1W_2Z_STRIDED = 7309,
+ ST1W_2Z_STRIDED_IMM = 7310,
+ ST1W_4Z = 7311,
+ ST1W_4Z_IMM = 7312,
+ ST1W_4Z_STRIDED = 7313,
+ ST1W_4Z_STRIDED_IMM = 7314,
+ ST1W_D = 7315,
+ ST1W_D_IMM = 7316,
+ ST1W_IMM = 7317,
+ ST1W_Q = 7318,
+ ST1W_Q_IMM = 7319,
+ ST1_MXIPXX_H_B = 7320,
+ ST1_MXIPXX_H_D = 7321,
+ ST1_MXIPXX_H_H = 7322,
+ ST1_MXIPXX_H_Q = 7323,
+ ST1_MXIPXX_H_S = 7324,
+ ST1_MXIPXX_V_B = 7325,
+ ST1_MXIPXX_V_D = 7326,
+ ST1_MXIPXX_V_H = 7327,
+ ST1_MXIPXX_V_Q = 7328,
+ ST1_MXIPXX_V_S = 7329,
+ ST1i16 = 7330,
+ ST1i16_POST = 7331,
+ ST1i32 = 7332,
+ ST1i32_POST = 7333,
+ ST1i64 = 7334,
+ ST1i64_POST = 7335,
+ ST1i8 = 7336,
+ ST1i8_POST = 7337,
+ ST2B = 7338,
+ ST2B_IMM = 7339,
+ ST2D = 7340,
+ ST2D_IMM = 7341,
+ ST2GPostIndex = 7342,
+ ST2GPreIndex = 7343,
+ ST2Gi = 7344,
+ ST2H = 7345,
+ ST2H_IMM = 7346,
+ ST2Q = 7347,
+ ST2Q_IMM = 7348,
+ ST2Twov16b = 7349,
+ ST2Twov16b_POST = 7350,
+ ST2Twov2d = 7351,
+ ST2Twov2d_POST = 7352,
+ ST2Twov2s = 7353,
+ ST2Twov2s_POST = 7354,
+ ST2Twov4h = 7355,
+ ST2Twov4h_POST = 7356,
+ ST2Twov4s = 7357,
+ ST2Twov4s_POST = 7358,
+ ST2Twov8b = 7359,
+ ST2Twov8b_POST = 7360,
+ ST2Twov8h = 7361,
+ ST2Twov8h_POST = 7362,
+ ST2W = 7363,
+ ST2W_IMM = 7364,
+ ST2i16 = 7365,
+ ST2i16_POST = 7366,
+ ST2i32 = 7367,
+ ST2i32_POST = 7368,
+ ST2i64 = 7369,
+ ST2i64_POST = 7370,
+ ST2i8 = 7371,
+ ST2i8_POST = 7372,
+ ST3B = 7373,
+ ST3B_IMM = 7374,
+ ST3D = 7375,
+ ST3D_IMM = 7376,
+ ST3H = 7377,
+ ST3H_IMM = 7378,
+ ST3Q = 7379,
+ ST3Q_IMM = 7380,
+ ST3Threev16b = 7381,
+ ST3Threev16b_POST = 7382,
+ ST3Threev2d = 7383,
+ ST3Threev2d_POST = 7384,
+ ST3Threev2s = 7385,
+ ST3Threev2s_POST = 7386,
+ ST3Threev4h = 7387,
+ ST3Threev4h_POST = 7388,
+ ST3Threev4s = 7389,
+ ST3Threev4s_POST = 7390,
+ ST3Threev8b = 7391,
+ ST3Threev8b_POST = 7392,
+ ST3Threev8h = 7393,
+ ST3Threev8h_POST = 7394,
+ ST3W = 7395,
+ ST3W_IMM = 7396,
+ ST3i16 = 7397,
+ ST3i16_POST = 7398,
+ ST3i32 = 7399,
+ ST3i32_POST = 7400,
+ ST3i64 = 7401,
+ ST3i64_POST = 7402,
+ ST3i8 = 7403,
+ ST3i8_POST = 7404,
+ ST4B = 7405,
+ ST4B_IMM = 7406,
+ ST4D = 7407,
+ ST4D_IMM = 7408,
+ ST4Fourv16b = 7409,
+ ST4Fourv16b_POST = 7410,
+ ST4Fourv2d = 7411,
+ ST4Fourv2d_POST = 7412,
+ ST4Fourv2s = 7413,
+ ST4Fourv2s_POST = 7414,
+ ST4Fourv4h = 7415,
+ ST4Fourv4h_POST = 7416,
+ ST4Fourv4s = 7417,
+ ST4Fourv4s_POST = 7418,
+ ST4Fourv8b = 7419,
+ ST4Fourv8b_POST = 7420,
+ ST4Fourv8h = 7421,
+ ST4Fourv8h_POST = 7422,
+ ST4H = 7423,
+ ST4H_IMM = 7424,
+ ST4Q = 7425,
+ ST4Q_IMM = 7426,
+ ST4W = 7427,
+ ST4W_IMM = 7428,
+ ST4i16 = 7429,
+ ST4i16_POST = 7430,
+ ST4i32 = 7431,
+ ST4i32_POST = 7432,
+ ST4i64 = 7433,
+ ST4i64_POST = 7434,
+ ST4i8 = 7435,
+ ST4i8_POST = 7436,
+ ST64B = 7437,
+ ST64BV = 7438,
+ ST64BV0 = 7439,
+ STBFADD = 7440,
+ STBFADDL = 7441,
+ STBFMAX = 7442,
+ STBFMAXL = 7443,
+ STBFMAXNM = 7444,
+ STBFMAXNML = 7445,
+ STBFMIN = 7446,
+ STBFMINL = 7447,
+ STBFMINNM = 7448,
+ STBFMINNML = 7449,
+ STCPH = 7450,
+ STFADDD = 7451,
+ STFADDH = 7452,
+ STFADDLD = 7453,
+ STFADDLH = 7454,
+ STFADDLS = 7455,
+ STFADDS = 7456,
+ STFMAXD = 7457,
+ STFMAXH = 7458,
+ STFMAXLD = 7459,
+ STFMAXLH = 7460,
+ STFMAXLS = 7461,
+ STFMAXNMD = 7462,
+ STFMAXNMH = 7463,
+ STFMAXNMLD = 7464,
+ STFMAXNMLH = 7465,
+ STFMAXNMLS = 7466,
+ STFMAXNMS = 7467,
+ STFMAXS = 7468,
+ STFMIND = 7469,
+ STFMINH = 7470,
+ STFMINLD = 7471,
+ STFMINLH = 7472,
+ STFMINLS = 7473,
+ STFMINNMD = 7474,
+ STFMINNMH = 7475,
+ STFMINNMLD = 7476,
+ STFMINNMLH = 7477,
+ STFMINNMLS = 7478,
+ STFMINNMS = 7479,
+ STFMINS = 7480,
+ STGM = 7481,
+ STGPi = 7482,
+ STGPostIndex = 7483,
+ STGPpost = 7484,
+ STGPpre = 7485,
+ STGPreIndex = 7486,
+ STGi = 7487,
+ STILPW = 7488,
+ STILPWpre = 7489,
+ STILPX = 7490,
+ STILPXpre = 7491,
+ STL1 = 7492,
+ STLLRB = 7493,
+ STLLRH = 7494,
+ STLLRW = 7495,
+ STLLRX = 7496,
+ STLPi = 7497,
+ STLRB = 7498,
+ STLRH = 7499,
+ STLRW = 7500,
+ STLRWpre = 7501,
+ STLRX = 7502,
+ STLRXpre = 7503,
+ STLTXRW = 7504,
+ STLTXRX = 7505,
+ STLURBi = 7506,
+ STLURHi = 7507,
+ STLURWi = 7508,
+ STLURXi = 7509,
+ STLURbi = 7510,
+ STLURdi = 7511,
+ STLURhi = 7512,
+ STLURqi = 7513,
+ STLURsi = 7514,
+ STLXPW = 7515,
+ STLXPX = 7516,
+ STLXRB = 7517,
+ STLXRH = 7518,
+ STLXRW = 7519,
+ STLXRX = 7520,
+ STMOPA_M2ZZZI_BtoS = 7521,
+ STMOPA_M2ZZZI_HtoS = 7522,
+ STNPDi = 7523,
+ STNPQi = 7524,
+ STNPSi = 7525,
+ STNPWi = 7526,
+ STNPXi = 7527,
+ STNT1B_2Z = 7528,
+ STNT1B_2Z_IMM = 7529,
+ STNT1B_2Z_STRIDED = 7530,
+ STNT1B_2Z_STRIDED_IMM = 7531,
+ STNT1B_4Z = 7532,
+ STNT1B_4Z_IMM = 7533,
+ STNT1B_4Z_STRIDED = 7534,
+ STNT1B_4Z_STRIDED_IMM = 7535,
+ STNT1B_ZRI = 7536,
+ STNT1B_ZRR = 7537,
+ STNT1B_ZZR_D = 7538,
+ STNT1B_ZZR_S = 7539,
+ STNT1D_2Z = 7540,
+ STNT1D_2Z_IMM = 7541,
+ STNT1D_2Z_STRIDED = 7542,
+ STNT1D_2Z_STRIDED_IMM = 7543,
+ STNT1D_4Z = 7544,
+ STNT1D_4Z_IMM = 7545,
+ STNT1D_4Z_STRIDED = 7546,
+ STNT1D_4Z_STRIDED_IMM = 7547,
+ STNT1D_ZRI = 7548,
+ STNT1D_ZRR = 7549,
+ STNT1D_ZZR_D = 7550,
+ STNT1H_2Z = 7551,
+ STNT1H_2Z_IMM = 7552,
+ STNT1H_2Z_STRIDED = 7553,
+ STNT1H_2Z_STRIDED_IMM = 7554,
+ STNT1H_4Z = 7555,
+ STNT1H_4Z_IMM = 7556,
+ STNT1H_4Z_STRIDED = 7557,
+ STNT1H_4Z_STRIDED_IMM = 7558,
+ STNT1H_ZRI = 7559,
+ STNT1H_ZRR = 7560,
+ STNT1H_ZZR_D = 7561,
+ STNT1H_ZZR_S = 7562,
+ STNT1W_2Z = 7563,
+ STNT1W_2Z_IMM = 7564,
+ STNT1W_2Z_STRIDED = 7565,
+ STNT1W_2Z_STRIDED_IMM = 7566,
+ STNT1W_4Z = 7567,
+ STNT1W_4Z_IMM = 7568,
+ STNT1W_4Z_STRIDED = 7569,
+ STNT1W_4Z_STRIDED_IMM = 7570,
+ STNT1W_ZRI = 7571,
+ STNT1W_ZRR = 7572,
+ STNT1W_ZZR_D = 7573,
+ STNT1W_ZZR_S = 7574,
+ STPDi = 7575,
+ STPDpost = 7576,
+ STPDpre = 7577,
+ STPQi = 7578,
+ STPQpost = 7579,
+ STPQpre = 7580,
+ STPSi = 7581,
+ STPSpost = 7582,
+ STPSpre = 7583,
+ STPWi = 7584,
+ STPWpost = 7585,
+ STPWpre = 7586,
+ STPXi = 7587,
+ STPXpost = 7588,
+ STPXpre = 7589,
+ STRBBpost = 7590,
+ STRBBpre = 7591,
+ STRBBroW = 7592,
+ STRBBroX = 7593,
+ STRBBui = 7594,
+ STRBpost = 7595,
+ STRBpre = 7596,
+ STRBroW = 7597,
+ STRBroX = 7598,
+ STRBui = 7599,
+ STRDpost = 7600,
+ STRDpre = 7601,
+ STRDroW = 7602,
+ STRDroX = 7603,
+ STRDui = 7604,
+ STRHHpost = 7605,
+ STRHHpre = 7606,
+ STRHHroW = 7607,
+ STRHHroX = 7608,
+ STRHHui = 7609,
+ STRHpost = 7610,
+ STRHpre = 7611,
+ STRHroW = 7612,
+ STRHroX = 7613,
+ STRHui = 7614,
+ STRQpost = 7615,
+ STRQpre = 7616,
+ STRQroW = 7617,
+ STRQroX = 7618,
+ STRQui = 7619,
+ STRSpost = 7620,
+ STRSpre = 7621,
+ STRSroW = 7622,
+ STRSroX = 7623,
+ STRSui = 7624,
+ STRWpost = 7625,
+ STRWpre = 7626,
+ STRWroW = 7627,
+ STRWroX = 7628,
+ STRWui = 7629,
+ STRXpost = 7630,
+ STRXpre = 7631,
+ STRXroW = 7632,
+ STRXroX = 7633,
+ STRXui = 7634,
+ STR_PXI = 7635,
+ STR_TX = 7636,
+ STR_ZA = 7637,
+ STR_ZXI = 7638,
+ STSHH = 7639,
+ STTNPQi = 7640,
+ STTNPXi = 7641,
+ STTPQi = 7642,
+ STTPQpost = 7643,
+ STTPQpre = 7644,
+ STTPi = 7645,
+ STTPpost = 7646,
+ STTPpre = 7647,
+ STTRBi = 7648,
+ STTRHi = 7649,
+ STTRWi = 7650,
+ STTRXi = 7651,
+ STTXRWr = 7652,
+ STTXRXr = 7653,
+ STURBBi = 7654,
+ STURBi = 7655,
+ STURDi = 7656,
+ STURHHi = 7657,
+ STURHi = 7658,
+ STURQi = 7659,
+ STURSi = 7660,
+ STURWi = 7661,
+ STURXi = 7662,
+ STXPW = 7663,
+ STXPX = 7664,
+ STXRB = 7665,
+ STXRH = 7666,
+ STXRW = 7667,
+ STXRX = 7668,
+ STZ2GPostIndex = 7669,
+ STZ2GPreIndex = 7670,
+ STZ2Gi = 7671,
+ STZGM = 7672,
+ STZGPostIndex = 7673,
+ STZGPreIndex = 7674,
+ STZGi = 7675,
+ SUBG = 7676,
+ SUBHNB_ZZZ_B = 7677,
+ SUBHNB_ZZZ_H = 7678,
+ SUBHNB_ZZZ_S = 7679,
+ SUBHNT_ZZZ_B = 7680,
+ SUBHNT_ZZZ_H = 7681,
+ SUBHNT_ZZZ_S = 7682,
+ SUBHNv2i64_v2i32 = 7683,
+ SUBHNv2i64_v4i32 = 7684,
+ SUBHNv4i32_v4i16 = 7685,
+ SUBHNv4i32_v8i16 = 7686,
+ SUBHNv8i16_v16i8 = 7687,
+ SUBHNv8i16_v8i8 = 7688,
+ SUBP = 7689,
+ SUBPS = 7690,
+ SUBPT_shift = 7691,
+ SUBP_ZPmZZ_B = 7692,
+ SUBP_ZPmZZ_D = 7693,
+ SUBP_ZPmZZ_H = 7694,
+ SUBP_ZPmZZ_S = 7695,
+ SUBR_ZI_B = 7696,
+ SUBR_ZI_D = 7697,
+ SUBR_ZI_H = 7698,
+ SUBR_ZI_S = 7699,
+ SUBR_ZPmZ_B = 7700,
+ SUBR_ZPmZ_D = 7701,
+ SUBR_ZPmZ_H = 7702,
+ SUBR_ZPmZ_S = 7703,
+ SUBSWri = 7704,
+ SUBSWrs = 7705,
+ SUBSWrx = 7706,
+ SUBSXri = 7707,
+ SUBSXrs = 7708,
+ SUBSXrx = 7709,
+ SUBSXrx64 = 7710,
+ SUBWri = 7711,
+ SUBWrs = 7712,
+ SUBWrx = 7713,
+ SUBXri = 7714,
+ SUBXrs = 7715,
+ SUBXrx = 7716,
+ SUBXrx64 = 7717,
+ SUB_VG2_M2Z2Z_D = 7718,
+ SUB_VG2_M2Z2Z_S = 7719,
+ SUB_VG2_M2ZZ_D = 7720,
+ SUB_VG2_M2ZZ_S = 7721,
+ SUB_VG2_M2Z_D = 7722,
+ SUB_VG2_M2Z_S = 7723,
+ SUB_VG4_M4Z4Z_D = 7724,
+ SUB_VG4_M4Z4Z_S = 7725,
+ SUB_VG4_M4ZZ_D = 7726,
+ SUB_VG4_M4ZZ_S = 7727,
+ SUB_VG4_M4Z_D = 7728,
+ SUB_VG4_M4Z_S = 7729,
+ SUB_ZI_B = 7730,
+ SUB_ZI_D = 7731,
+ SUB_ZI_H = 7732,
+ SUB_ZI_S = 7733,
+ SUB_ZPmZ_B = 7734,
+ SUB_ZPmZ_CPA = 7735,
+ SUB_ZPmZ_D = 7736,
+ SUB_ZPmZ_H = 7737,
+ SUB_ZPmZ_S = 7738,
+ SUB_ZZZ_B = 7739,
+ SUB_ZZZ_CPA = 7740,
+ SUB_ZZZ_D = 7741,
+ SUB_ZZZ_H = 7742,
+ SUB_ZZZ_S = 7743,
+ SUBv16i8 = 7744,
+ SUBv1i64 = 7745,
+ SUBv2i32 = 7746,
+ SUBv2i64 = 7747,
+ SUBv4i16 = 7748,
+ SUBv4i32 = 7749,
+ SUBv8i16 = 7750,
+ SUBv8i8 = 7751,
+ SUDOT_VG2_M2ZZI_BToS = 7752,
+ SUDOT_VG2_M2ZZ_BToS = 7753,
+ SUDOT_VG4_M4ZZI_BToS = 7754,
+ SUDOT_VG4_M4ZZ_BToS = 7755,
+ SUDOT_ZZZI = 7756,
+ SUDOTlanev16i8 = 7757,
+ SUDOTlanev8i8 = 7758,
+ SUMLALL_MZZI_BtoS = 7759,
+ SUMLALL_VG2_M2ZZI_BtoS = 7760,
+ SUMLALL_VG2_M2ZZ_BtoS = 7761,
+ SUMLALL_VG4_M4ZZI_BtoS = 7762,
+ SUMLALL_VG4_M4ZZ_BtoS = 7763,
+ SUMOP4A_M2Z2Z_BToS = 7764,
+ SUMOP4A_M2Z2Z_HtoD = 7765,
+ SUMOP4A_M2ZZ_BToS = 7766,
+ SUMOP4A_M2ZZ_HtoD = 7767,
+ SUMOP4A_MZ2Z_BToS = 7768,
+ SUMOP4A_MZ2Z_HtoD = 7769,
+ SUMOP4A_MZZ_BToS = 7770,
+ SUMOP4A_MZZ_HtoD = 7771,
+ SUMOP4S_M2Z2Z_BToS = 7772,
+ SUMOP4S_M2Z2Z_HtoD = 7773,
+ SUMOP4S_M2ZZ_BToS = 7774,
+ SUMOP4S_M2ZZ_HtoD = 7775,
+ SUMOP4S_MZ2Z_BToS = 7776,
+ SUMOP4S_MZ2Z_HtoD = 7777,
+ SUMOP4S_MZZ_BToS = 7778,
+ SUMOP4S_MZZ_HtoD = 7779,
+ SUMOPA_MPPZZ_D = 7780,
+ SUMOPA_MPPZZ_S = 7781,
+ SUMOPS_MPPZZ_D = 7782,
+ SUMOPS_MPPZZ_S = 7783,
+ SUNPKHI_ZZ_D = 7784,
+ SUNPKHI_ZZ_H = 7785,
+ SUNPKHI_ZZ_S = 7786,
+ SUNPKLO_ZZ_D = 7787,
+ SUNPKLO_ZZ_H = 7788,
+ SUNPKLO_ZZ_S = 7789,
+ SUNPK_VG2_2ZZ_D = 7790,
+ SUNPK_VG2_2ZZ_H = 7791,
+ SUNPK_VG2_2ZZ_S = 7792,
+ SUNPK_VG4_4Z2Z_D = 7793,
+ SUNPK_VG4_4Z2Z_H = 7794,
+ SUNPK_VG4_4Z2Z_S = 7795,
+ SUQADD_ZPmZ_B = 7796,
+ SUQADD_ZPmZ_D = 7797,
+ SUQADD_ZPmZ_H = 7798,
+ SUQADD_ZPmZ_S = 7799,
+ SUQADDv16i8 = 7800,
+ SUQADDv1i16 = 7801,
+ SUQADDv1i32 = 7802,
+ SUQADDv1i64 = 7803,
+ SUQADDv1i8 = 7804,
+ SUQADDv2i32 = 7805,
+ SUQADDv2i64 = 7806,
+ SUQADDv4i16 = 7807,
+ SUQADDv4i32 = 7808,
+ SUQADDv8i16 = 7809,
+ SUQADDv8i8 = 7810,
+ SUTMOPA_M2ZZZI_BtoS = 7811,
+ SUVDOT_VG4_M4ZZI_BToS = 7812,
+ SVC = 7813,
+ SVDOT_VG2_M2ZZI_HtoS = 7814,
+ SVDOT_VG4_M4ZZI_BtoS = 7815,
+ SVDOT_VG4_M4ZZI_HtoD = 7816,
+ SWPAB = 7817,
+ SWPAH = 7818,
+ SWPALB = 7819,
+ SWPALH = 7820,
+ SWPALW = 7821,
+ SWPALX = 7822,
+ SWPAW = 7823,
+ SWPAX = 7824,
+ SWPB = 7825,
+ SWPH = 7826,
+ SWPLB = 7827,
+ SWPLH = 7828,
+ SWPLW = 7829,
+ SWPLX = 7830,
+ SWPP = 7831,
+ SWPPA = 7832,
+ SWPPAL = 7833,
+ SWPPL = 7834,
+ SWPTALW = 7835,
+ SWPTALX = 7836,
+ SWPTAW = 7837,
+ SWPTAX = 7838,
+ SWPTLW = 7839,
+ SWPTLX = 7840,
+ SWPTW = 7841,
+ SWPTX = 7842,
+ SWPW = 7843,
+ SWPX = 7844,
+ SXTB_ZPmZ_D = 7845,
+ SXTB_ZPmZ_H = 7846,
+ SXTB_ZPmZ_S = 7847,
+ SXTB_ZPzZ_D = 7848,
+ SXTB_ZPzZ_H = 7849,
+ SXTB_ZPzZ_S = 7850,
+ SXTH_ZPmZ_D = 7851,
+ SXTH_ZPmZ_S = 7852,
+ SXTH_ZPzZ_D = 7853,
+ SXTH_ZPzZ_S = 7854,
+ SXTW_ZPmZ_D = 7855,
+ SXTW_ZPzZ_D = 7856,
+ SYSLxt = 7857,
+ SYSPxt = 7858,
+ SYSPxt_XZR = 7859,
+ SYSxt = 7860,
+ TBLQ_ZZZ_B = 7861,
+ TBLQ_ZZZ_D = 7862,
+ TBLQ_ZZZ_H = 7863,
+ TBLQ_ZZZ_S = 7864,
+ TBL_ZZZZ_B = 7865,
+ TBL_ZZZZ_D = 7866,
+ TBL_ZZZZ_H = 7867,
+ TBL_ZZZZ_S = 7868,
+ TBL_ZZZ_B = 7869,
+ TBL_ZZZ_D = 7870,
+ TBL_ZZZ_H = 7871,
+ TBL_ZZZ_S = 7872,
+ TBLv16i8Four = 7873,
+ TBLv16i8One = 7874,
+ TBLv16i8Three = 7875,
+ TBLv16i8Two = 7876,
+ TBLv8i8Four = 7877,
+ TBLv8i8One = 7878,
+ TBLv8i8Three = 7879,
+ TBLv8i8Two = 7880,
+ TBNZW = 7881,
+ TBNZX = 7882,
+ TBXQ_ZZZ_B = 7883,
+ TBXQ_ZZZ_D = 7884,
+ TBXQ_ZZZ_H = 7885,
+ TBXQ_ZZZ_S = 7886,
+ TBX_ZZZ_B = 7887,
+ TBX_ZZZ_D = 7888,
+ TBX_ZZZ_H = 7889,
+ TBX_ZZZ_S = 7890,
+ TBXv16i8Four = 7891,
+ TBXv16i8One = 7892,
+ TBXv16i8Three = 7893,
+ TBXv16i8Two = 7894,
+ TBXv8i8Four = 7895,
+ TBXv8i8One = 7896,
+ TBXv8i8Three = 7897,
+ TBXv8i8Two = 7898,
+ TBZW = 7899,
+ TBZX = 7900,
+ TCHANGEBri = 7901,
+ TCHANGEBrr = 7902,
+ TCHANGEFri = 7903,
+ TCHANGEFrr = 7904,
+ TENTER = 7905,
+ TEXIT = 7906,
+ TRCIT = 7907,
+ TRN1_PPP_B = 7908,
+ TRN1_PPP_D = 7909,
+ TRN1_PPP_H = 7910,
+ TRN1_PPP_S = 7911,
+ TRN1_ZZZ_B = 7912,
+ TRN1_ZZZ_D = 7913,
+ TRN1_ZZZ_H = 7914,
+ TRN1_ZZZ_Q = 7915,
+ TRN1_ZZZ_S = 7916,
+ TRN1v16i8 = 7917,
+ TRN1v2i32 = 7918,
+ TRN1v2i64 = 7919,
+ TRN1v4i16 = 7920,
+ TRN1v4i32 = 7921,
+ TRN1v8i16 = 7922,
+ TRN1v8i8 = 7923,
+ TRN2_PPP_B = 7924,
+ TRN2_PPP_D = 7925,
+ TRN2_PPP_H = 7926,
+ TRN2_PPP_S = 7927,
+ TRN2_ZZZ_B = 7928,
+ TRN2_ZZZ_D = 7929,
+ TRN2_ZZZ_H = 7930,
+ TRN2_ZZZ_Q = 7931,
+ TRN2_ZZZ_S = 7932,
+ TRN2v16i8 = 7933,
+ TRN2v2i32 = 7934,
+ TRN2v2i64 = 7935,
+ TRN2v4i16 = 7936,
+ TRN2v4i32 = 7937,
+ TRN2v8i16 = 7938,
+ TRN2v8i8 = 7939,
+ TSB = 7940,
+ UABALB_ZZZ_D = 7941,
+ UABALB_ZZZ_H = 7942,
+ UABALB_ZZZ_S = 7943,
+ UABALT_ZZZ_D = 7944,
+ UABALT_ZZZ_H = 7945,
+ UABALT_ZZZ_S = 7946,
+ UABAL_ZZZ_BtoH = 7947,
+ UABAL_ZZZ_HtoS = 7948,
+ UABAL_ZZZ_StoD = 7949,
+ UABALv16i8_v8i16 = 7950,
+ UABALv2i32_v2i64 = 7951,
+ UABALv4i16_v4i32 = 7952,
+ UABALv4i32_v2i64 = 7953,
+ UABALv8i16_v4i32 = 7954,
+ UABALv8i8_v8i16 = 7955,
+ UABA_ZZZ_B = 7956,
+ UABA_ZZZ_D = 7957,
+ UABA_ZZZ_H = 7958,
+ UABA_ZZZ_S = 7959,
+ UABAv16i8 = 7960,
+ UABAv2i32 = 7961,
+ UABAv4i16 = 7962,
+ UABAv4i32 = 7963,
+ UABAv8i16 = 7964,
+ UABAv8i8 = 7965,
+ UABDLB_ZZZ_D = 7966,
+ UABDLB_ZZZ_H = 7967,
+ UABDLB_ZZZ_S = 7968,
+ UABDLT_ZZZ_D = 7969,
+ UABDLT_ZZZ_H = 7970,
+ UABDLT_ZZZ_S = 7971,
+ UABDLv16i8_v8i16 = 7972,
+ UABDLv2i32_v2i64 = 7973,
+ UABDLv4i16_v4i32 = 7974,
+ UABDLv4i32_v2i64 = 7975,
+ UABDLv8i16_v4i32 = 7976,
+ UABDLv8i8_v8i16 = 7977,
+ UABD_ZPmZ_B = 7978,
+ UABD_ZPmZ_D = 7979,
+ UABD_ZPmZ_H = 7980,
+ UABD_ZPmZ_S = 7981,
+ UABDv16i8 = 7982,
+ UABDv2i32 = 7983,
+ UABDv4i16 = 7984,
+ UABDv4i32 = 7985,
+ UABDv8i16 = 7986,
+ UABDv8i8 = 7987,
+ UADALP_ZPmZ_D = 7988,
+ UADALP_ZPmZ_H = 7989,
+ UADALP_ZPmZ_S = 7990,
+ UADALPv16i8_v8i16 = 7991,
+ UADALPv2i32_v1i64 = 7992,
+ UADALPv4i16_v2i32 = 7993,
+ UADALPv4i32_v2i64 = 7994,
+ UADALPv8i16_v4i32 = 7995,
+ UADALPv8i8_v4i16 = 7996,
+ UADDLB_ZZZ_D = 7997,
+ UADDLB_ZZZ_H = 7998,
+ UADDLB_ZZZ_S = 7999,
+ UADDLPv16i8_v8i16 = 8000,
+ UADDLPv2i32_v1i64 = 8001,
+ UADDLPv4i16_v2i32 = 8002,
+ UADDLPv4i32_v2i64 = 8003,
+ UADDLPv8i16_v4i32 = 8004,
+ UADDLPv8i8_v4i16 = 8005,
+ UADDLT_ZZZ_D = 8006,
+ UADDLT_ZZZ_H = 8007,
+ UADDLT_ZZZ_S = 8008,
+ UADDLVv16i8v = 8009,
+ UADDLVv4i16v = 8010,
+ UADDLVv4i32v = 8011,
+ UADDLVv8i16v = 8012,
+ UADDLVv8i8v = 8013,
+ UADDLv16i8_v8i16 = 8014,
+ UADDLv2i32_v2i64 = 8015,
+ UADDLv4i16_v4i32 = 8016,
+ UADDLv4i32_v2i64 = 8017,
+ UADDLv8i16_v4i32 = 8018,
+ UADDLv8i8_v8i16 = 8019,
+ UADDV_VPZ_B = 8020,
+ UADDV_VPZ_D = 8021,
+ UADDV_VPZ_H = 8022,
+ UADDV_VPZ_S = 8023,
+ UADDWB_ZZZ_D = 8024,
+ UADDWB_ZZZ_H = 8025,
+ UADDWB_ZZZ_S = 8026,
+ UADDWT_ZZZ_D = 8027,
+ UADDWT_ZZZ_H = 8028,
+ UADDWT_ZZZ_S = 8029,
+ UADDWv16i8_v8i16 = 8030,
+ UADDWv2i32_v2i64 = 8031,
+ UADDWv4i16_v4i32 = 8032,
+ UADDWv4i32_v2i64 = 8033,
+ UADDWv8i16_v4i32 = 8034,
+ UADDWv8i8_v8i16 = 8035,
+ UBFMWri = 8036,
+ UBFMXri = 8037,
+ UCLAMP_VG2_2Z2Z_B = 8038,
+ UCLAMP_VG2_2Z2Z_D = 8039,
+ UCLAMP_VG2_2Z2Z_H = 8040,
+ UCLAMP_VG2_2Z2Z_S = 8041,
+ UCLAMP_VG4_4Z4Z_B = 8042,
+ UCLAMP_VG4_4Z4Z_D = 8043,
+ UCLAMP_VG4_4Z4Z_H = 8044,
+ UCLAMP_VG4_4Z4Z_S = 8045,
+ UCLAMP_ZZZ_B = 8046,
+ UCLAMP_ZZZ_D = 8047,
+ UCLAMP_ZZZ_H = 8048,
+ UCLAMP_ZZZ_S = 8049,
+ UCVTFDSr = 8050,
+ UCVTFHDr = 8051,
+ UCVTFHSr = 8052,
+ UCVTFLT_ZZ_BtoH = 8053,
+ UCVTFLT_ZZ_HtoS = 8054,
+ UCVTFLT_ZZ_StoD = 8055,
+ UCVTFSDr = 8056,
+ UCVTFSWDri = 8057,
+ UCVTFSWHri = 8058,
+ UCVTFSWSri = 8059,
+ UCVTFSXDri = 8060,
+ UCVTFSXHri = 8061,
+ UCVTFSXSri = 8062,
+ UCVTFUWDri = 8063,
+ UCVTFUWHri = 8064,
+ UCVTFUWSri = 8065,
+ UCVTFUXDri = 8066,
+ UCVTFUXHri = 8067,
+ UCVTFUXSri = 8068,
+ UCVTF_2Z2Z_StoS = 8069,
+ UCVTF_4Z4Z_StoS = 8070,
+ UCVTF_ZPmZ_DtoD = 8071,
+ UCVTF_ZPmZ_DtoH = 8072,
+ UCVTF_ZPmZ_DtoS = 8073,
+ UCVTF_ZPmZ_HtoH = 8074,
+ UCVTF_ZPmZ_StoD = 8075,
+ UCVTF_ZPmZ_StoH = 8076,
+ UCVTF_ZPmZ_StoS = 8077,
+ UCVTF_ZPzZ_DtoD = 8078,
+ UCVTF_ZPzZ_DtoH = 8079,
+ UCVTF_ZPzZ_DtoS = 8080,
+ UCVTF_ZPzZ_HtoH = 8081,
+ UCVTF_ZPzZ_StoD = 8082,
+ UCVTF_ZPzZ_StoH = 8083,
+ UCVTF_ZPzZ_StoS = 8084,
+ UCVTF_ZZ_BtoH = 8085,
+ UCVTF_ZZ_HtoS = 8086,
+ UCVTF_ZZ_StoD = 8087,
+ UCVTFd = 8088,
+ UCVTFh = 8089,
+ UCVTFs = 8090,
+ UCVTFv1i16 = 8091,
+ UCVTFv1i32 = 8092,
+ UCVTFv1i64 = 8093,
+ UCVTFv2f32 = 8094,
+ UCVTFv2f64 = 8095,
+ UCVTFv2i32_shift = 8096,
+ UCVTFv2i64_shift = 8097,
+ UCVTFv4f16 = 8098,
+ UCVTFv4f32 = 8099,
+ UCVTFv4i16_shift = 8100,
+ UCVTFv4i32_shift = 8101,
+ UCVTFv8f16 = 8102,
+ UCVTFv8i16_shift = 8103,
+ UDF = 8104,
+ UDIVR_ZPmZ_D = 8105,
+ UDIVR_ZPmZ_S = 8106,
+ UDIVWr = 8107,
+ UDIVXr = 8108,
+ UDIV_ZPmZ_D = 8109,
+ UDIV_ZPmZ_S = 8110,
+ UDOT_VG2_M2Z2Z_BtoS = 8111,
+ UDOT_VG2_M2Z2Z_HtoD = 8112,
+ UDOT_VG2_M2Z2Z_HtoS = 8113,
+ UDOT_VG2_M2ZZI_BToS = 8114,
+ UDOT_VG2_M2ZZI_HToS = 8115,
+ UDOT_VG2_M2ZZI_HtoD = 8116,
+ UDOT_VG2_M2ZZ_BtoS = 8117,
+ UDOT_VG2_M2ZZ_HtoD = 8118,
+ UDOT_VG2_M2ZZ_HtoS = 8119,
+ UDOT_VG4_M4Z4Z_BtoS = 8120,
+ UDOT_VG4_M4Z4Z_HtoD = 8121,
+ UDOT_VG4_M4Z4Z_HtoS = 8122,
+ UDOT_VG4_M4ZZI_BtoS = 8123,
+ UDOT_VG4_M4ZZI_HToS = 8124,
+ UDOT_VG4_M4ZZI_HtoD = 8125,
+ UDOT_VG4_M4ZZ_BtoS = 8126,
+ UDOT_VG4_M4ZZ_HtoD = 8127,
+ UDOT_VG4_M4ZZ_HtoS = 8128,
+ UDOT_ZZZI_BtoH = 8129,
+ UDOT_ZZZI_BtoS = 8130,
+ UDOT_ZZZI_HtoD = 8131,
+ UDOT_ZZZI_HtoS = 8132,
+ UDOT_ZZZ_BtoH = 8133,
+ UDOT_ZZZ_BtoS = 8134,
+ UDOT_ZZZ_HtoD = 8135,
+ UDOT_ZZZ_HtoS = 8136,
+ UDOTlanev16i8 = 8137,
+ UDOTlanev8i8 = 8138,
+ UDOTv16i8 = 8139,
+ UDOTv8i8 = 8140,
+ UHADD_ZPmZ_B = 8141,
+ UHADD_ZPmZ_D = 8142,
+ UHADD_ZPmZ_H = 8143,
+ UHADD_ZPmZ_S = 8144,
+ UHADDv16i8 = 8145,
+ UHADDv2i32 = 8146,
+ UHADDv4i16 = 8147,
+ UHADDv4i32 = 8148,
+ UHADDv8i16 = 8149,
+ UHADDv8i8 = 8150,
+ UHSUBR_ZPmZ_B = 8151,
+ UHSUBR_ZPmZ_D = 8152,
+ UHSUBR_ZPmZ_H = 8153,
+ UHSUBR_ZPmZ_S = 8154,
+ UHSUB_ZPmZ_B = 8155,
+ UHSUB_ZPmZ_D = 8156,
+ UHSUB_ZPmZ_H = 8157,
+ UHSUB_ZPmZ_S = 8158,
+ UHSUBv16i8 = 8159,
+ UHSUBv2i32 = 8160,
+ UHSUBv4i16 = 8161,
+ UHSUBv4i32 = 8162,
+ UHSUBv8i16 = 8163,
+ UHSUBv8i8 = 8164,
+ UMADDLrrr = 8165,
+ UMAXP_ZPmZ_B = 8166,
+ UMAXP_ZPmZ_D = 8167,
+ UMAXP_ZPmZ_H = 8168,
+ UMAXP_ZPmZ_S = 8169,
+ UMAXPv16i8 = 8170,
+ UMAXPv2i32 = 8171,
+ UMAXPv4i16 = 8172,
+ UMAXPv4i32 = 8173,
+ UMAXPv8i16 = 8174,
+ UMAXPv8i8 = 8175,
+ UMAXQV_VPZ_B = 8176,
+ UMAXQV_VPZ_D = 8177,
+ UMAXQV_VPZ_H = 8178,
+ UMAXQV_VPZ_S = 8179,
+ UMAXV_VPZ_B = 8180,
+ UMAXV_VPZ_D = 8181,
+ UMAXV_VPZ_H = 8182,
+ UMAXV_VPZ_S = 8183,
+ UMAXVv16i8v = 8184,
+ UMAXVv4i16v = 8185,
+ UMAXVv4i32v = 8186,
+ UMAXVv8i16v = 8187,
+ UMAXVv8i8v = 8188,
+ UMAXWri = 8189,
+ UMAXWrr = 8190,
+ UMAXXri = 8191,
+ UMAXXrr = 8192,
+ UMAX_VG2_2Z2Z_B = 8193,
+ UMAX_VG2_2Z2Z_D = 8194,
+ UMAX_VG2_2Z2Z_H = 8195,
+ UMAX_VG2_2Z2Z_S = 8196,
+ UMAX_VG2_2ZZ_B = 8197,
+ UMAX_VG2_2ZZ_D = 8198,
+ UMAX_VG2_2ZZ_H = 8199,
+ UMAX_VG2_2ZZ_S = 8200,
+ UMAX_VG4_4Z4Z_B = 8201,
+ UMAX_VG4_4Z4Z_D = 8202,
+ UMAX_VG4_4Z4Z_H = 8203,
+ UMAX_VG4_4Z4Z_S = 8204,
+ UMAX_VG4_4ZZ_B = 8205,
+ UMAX_VG4_4ZZ_D = 8206,
+ UMAX_VG4_4ZZ_H = 8207,
+ UMAX_VG4_4ZZ_S = 8208,
+ UMAX_ZI_B = 8209,
+ UMAX_ZI_D = 8210,
+ UMAX_ZI_H = 8211,
+ UMAX_ZI_S = 8212,
+ UMAX_ZPmZ_B = 8213,
+ UMAX_ZPmZ_D = 8214,
+ UMAX_ZPmZ_H = 8215,
+ UMAX_ZPmZ_S = 8216,
+ UMAXv16i8 = 8217,
+ UMAXv2i32 = 8218,
+ UMAXv4i16 = 8219,
+ UMAXv4i32 = 8220,
+ UMAXv8i16 = 8221,
+ UMAXv8i8 = 8222,
+ UMINP_ZPmZ_B = 8223,
+ UMINP_ZPmZ_D = 8224,
+ UMINP_ZPmZ_H = 8225,
+ UMINP_ZPmZ_S = 8226,
+ UMINPv16i8 = 8227,
+ UMINPv2i32 = 8228,
+ UMINPv4i16 = 8229,
+ UMINPv4i32 = 8230,
+ UMINPv8i16 = 8231,
+ UMINPv8i8 = 8232,
+ UMINQV_VPZ_B = 8233,
+ UMINQV_VPZ_D = 8234,
+ UMINQV_VPZ_H = 8235,
+ UMINQV_VPZ_S = 8236,
+ UMINV_VPZ_B = 8237,
+ UMINV_VPZ_D = 8238,
+ UMINV_VPZ_H = 8239,
+ UMINV_VPZ_S = 8240,
+ UMINVv16i8v = 8241,
+ UMINVv4i16v = 8242,
+ UMINVv4i32v = 8243,
+ UMINVv8i16v = 8244,
+ UMINVv8i8v = 8245,
+ UMINWri = 8246,
+ UMINWrr = 8247,
+ UMINXri = 8248,
+ UMINXrr = 8249,
+ UMIN_VG2_2Z2Z_B = 8250,
+ UMIN_VG2_2Z2Z_D = 8251,
+ UMIN_VG2_2Z2Z_H = 8252,
+ UMIN_VG2_2Z2Z_S = 8253,
+ UMIN_VG2_2ZZ_B = 8254,
+ UMIN_VG2_2ZZ_D = 8255,
+ UMIN_VG2_2ZZ_H = 8256,
+ UMIN_VG2_2ZZ_S = 8257,
+ UMIN_VG4_4Z4Z_B = 8258,
+ UMIN_VG4_4Z4Z_D = 8259,
+ UMIN_VG4_4Z4Z_H = 8260,
+ UMIN_VG4_4Z4Z_S = 8261,
+ UMIN_VG4_4ZZ_B = 8262,
+ UMIN_VG4_4ZZ_D = 8263,
+ UMIN_VG4_4ZZ_H = 8264,
+ UMIN_VG4_4ZZ_S = 8265,
+ UMIN_ZI_B = 8266,
+ UMIN_ZI_D = 8267,
+ UMIN_ZI_H = 8268,
+ UMIN_ZI_S = 8269,
+ UMIN_ZPmZ_B = 8270,
+ UMIN_ZPmZ_D = 8271,
+ UMIN_ZPmZ_H = 8272,
+ UMIN_ZPmZ_S = 8273,
+ UMINv16i8 = 8274,
+ UMINv2i32 = 8275,
+ UMINv4i16 = 8276,
+ UMINv4i32 = 8277,
+ UMINv8i16 = 8278,
+ UMINv8i8 = 8279,
+ UMLALB_ZZZI_D = 8280,
+ UMLALB_ZZZI_S = 8281,
+ UMLALB_ZZZ_D = 8282,
+ UMLALB_ZZZ_H = 8283,
+ UMLALB_ZZZ_S = 8284,
+ UMLALL_MZZI_BtoS = 8285,
+ UMLALL_MZZI_HtoD = 8286,
+ UMLALL_MZZ_BtoS = 8287,
+ UMLALL_MZZ_HtoD = 8288,
+ UMLALL_VG2_M2Z2Z_BtoS = 8289,
+ UMLALL_VG2_M2Z2Z_HtoD = 8290,
+ UMLALL_VG2_M2ZZI_BtoS = 8291,
+ UMLALL_VG2_M2ZZI_HtoD = 8292,
+ UMLALL_VG2_M2ZZ_BtoS = 8293,
+ UMLALL_VG2_M2ZZ_HtoD = 8294,
+ UMLALL_VG4_M4Z4Z_BtoS = 8295,
+ UMLALL_VG4_M4Z4Z_HtoD = 8296,
+ UMLALL_VG4_M4ZZI_BtoS = 8297,
+ UMLALL_VG4_M4ZZI_HtoD = 8298,
+ UMLALL_VG4_M4ZZ_BtoS = 8299,
+ UMLALL_VG4_M4ZZ_HtoD = 8300,
+ UMLALT_ZZZI_D = 8301,
+ UMLALT_ZZZI_S = 8302,
+ UMLALT_ZZZ_D = 8303,
+ UMLALT_ZZZ_H = 8304,
+ UMLALT_ZZZ_S = 8305,
+ UMLAL_MZZI_HtoS = 8306,
+ UMLAL_MZZ_HtoS = 8307,
+ UMLAL_VG2_M2Z2Z_HtoS = 8308,
+ UMLAL_VG2_M2ZZI_S = 8309,
+ UMLAL_VG2_M2ZZ_HtoS = 8310,
+ UMLAL_VG4_M4Z4Z_HtoS = 8311,
+ UMLAL_VG4_M4ZZI_HtoS = 8312,
+ UMLAL_VG4_M4ZZ_HtoS = 8313,
+ UMLALv16i8_v8i16 = 8314,
+ UMLALv2i32_indexed = 8315,
+ UMLALv2i32_v2i64 = 8316,
+ UMLALv4i16_indexed = 8317,
+ UMLALv4i16_v4i32 = 8318,
+ UMLALv4i32_indexed = 8319,
+ UMLALv4i32_v2i64 = 8320,
+ UMLALv8i16_indexed = 8321,
+ UMLALv8i16_v4i32 = 8322,
+ UMLALv8i8_v8i16 = 8323,
+ UMLSLB_ZZZI_D = 8324,
+ UMLSLB_ZZZI_S = 8325,
+ UMLSLB_ZZZ_D = 8326,
+ UMLSLB_ZZZ_H = 8327,
+ UMLSLB_ZZZ_S = 8328,
+ UMLSLL_MZZI_BtoS = 8329,
+ UMLSLL_MZZI_HtoD = 8330,
+ UMLSLL_MZZ_BtoS = 8331,
+ UMLSLL_MZZ_HtoD = 8332,
+ UMLSLL_VG2_M2Z2Z_BtoS = 8333,
+ UMLSLL_VG2_M2Z2Z_HtoD = 8334,
+ UMLSLL_VG2_M2ZZI_BtoS = 8335,
+ UMLSLL_VG2_M2ZZI_HtoD = 8336,
+ UMLSLL_VG2_M2ZZ_BtoS = 8337,
+ UMLSLL_VG2_M2ZZ_HtoD = 8338,
+ UMLSLL_VG4_M4Z4Z_BtoS = 8339,
+ UMLSLL_VG4_M4Z4Z_HtoD = 8340,
+ UMLSLL_VG4_M4ZZI_BtoS = 8341,
+ UMLSLL_VG4_M4ZZI_HtoD = 8342,
+ UMLSLL_VG4_M4ZZ_BtoS = 8343,
+ UMLSLL_VG4_M4ZZ_HtoD = 8344,
+ UMLSLT_ZZZI_D = 8345,
+ UMLSLT_ZZZI_S = 8346,
+ UMLSLT_ZZZ_D = 8347,
+ UMLSLT_ZZZ_H = 8348,
+ UMLSLT_ZZZ_S = 8349,
+ UMLSL_MZZI_HtoS = 8350,
+ UMLSL_MZZ_HtoS = 8351,
+ UMLSL_VG2_M2Z2Z_HtoS = 8352,
+ UMLSL_VG2_M2ZZI_S = 8353,
+ UMLSL_VG2_M2ZZ_HtoS = 8354,
+ UMLSL_VG4_M4Z4Z_HtoS = 8355,
+ UMLSL_VG4_M4ZZI_HtoS = 8356,
+ UMLSL_VG4_M4ZZ_HtoS = 8357,
+ UMLSLv16i8_v8i16 = 8358,
+ UMLSLv2i32_indexed = 8359,
+ UMLSLv2i32_v2i64 = 8360,
+ UMLSLv4i16_indexed = 8361,
+ UMLSLv4i16_v4i32 = 8362,
+ UMLSLv4i32_indexed = 8363,
+ UMLSLv4i32_v2i64 = 8364,
+ UMLSLv8i16_indexed = 8365,
+ UMLSLv8i16_v4i32 = 8366,
+ UMLSLv8i8_v8i16 = 8367,
+ UMMLA = 8368,
+ UMMLA_ZZZ = 8369,
+ UMOP4A_M2Z2Z_BToS = 8370,
+ UMOP4A_M2Z2Z_HToS = 8371,
+ UMOP4A_M2Z2Z_HtoD = 8372,
+ UMOP4A_M2ZZ_BToS = 8373,
+ UMOP4A_M2ZZ_HToS = 8374,
+ UMOP4A_M2ZZ_HtoD = 8375,
+ UMOP4A_MZ2Z_BToS = 8376,
+ UMOP4A_MZ2Z_HToS = 8377,
+ UMOP4A_MZ2Z_HtoD = 8378,
+ UMOP4A_MZZ_BToS = 8379,
+ UMOP4A_MZZ_HToS = 8380,
+ UMOP4A_MZZ_HtoD = 8381,
+ UMOP4S_M2Z2Z_BToS = 8382,
+ UMOP4S_M2Z2Z_HToS = 8383,
+ UMOP4S_M2Z2Z_HtoD = 8384,
+ UMOP4S_M2ZZ_BToS = 8385,
+ UMOP4S_M2ZZ_HToS = 8386,
+ UMOP4S_M2ZZ_HtoD = 8387,
+ UMOP4S_MZ2Z_BToS = 8388,
+ UMOP4S_MZ2Z_HToS = 8389,
+ UMOP4S_MZ2Z_HtoD = 8390,
+ UMOP4S_MZZ_BToS = 8391,
+ UMOP4S_MZZ_HToS = 8392,
+ UMOP4S_MZZ_HtoD = 8393,
+ UMOPA_MPPZZ_D = 8394,
+ UMOPA_MPPZZ_HtoS = 8395,
+ UMOPA_MPPZZ_S = 8396,
+ UMOPS_MPPZZ_D = 8397,
+ UMOPS_MPPZZ_HtoS = 8398,
+ UMOPS_MPPZZ_S = 8399,
+ UMOVvi16 = 8400,
+ UMOVvi16_idx0 = 8401,
+ UMOVvi32 = 8402,
+ UMOVvi32_idx0 = 8403,
+ UMOVvi64 = 8404,
+ UMOVvi64_idx0 = 8405,
+ UMOVvi8 = 8406,
+ UMOVvi8_idx0 = 8407,
+ UMSUBLrrr = 8408,
+ UMULH_ZPmZ_B = 8409,
+ UMULH_ZPmZ_D = 8410,
+ UMULH_ZPmZ_H = 8411,
+ UMULH_ZPmZ_S = 8412,
+ UMULH_ZZZ_B = 8413,
+ UMULH_ZZZ_D = 8414,
+ UMULH_ZZZ_H = 8415,
+ UMULH_ZZZ_S = 8416,
+ UMULHrr = 8417,
+ UMULLB_ZZZI_D = 8418,
+ UMULLB_ZZZI_S = 8419,
+ UMULLB_ZZZ_D = 8420,
+ UMULLB_ZZZ_H = 8421,
+ UMULLB_ZZZ_S = 8422,
+ UMULLT_ZZZI_D = 8423,
+ UMULLT_ZZZI_S = 8424,
+ UMULLT_ZZZ_D = 8425,
+ UMULLT_ZZZ_H = 8426,
+ UMULLT_ZZZ_S = 8427,
+ UMULLv16i8_v8i16 = 8428,
+ UMULLv2i32_indexed = 8429,
+ UMULLv2i32_v2i64 = 8430,
+ UMULLv4i16_indexed = 8431,
+ UMULLv4i16_v4i32 = 8432,
+ UMULLv4i32_indexed = 8433,
+ UMULLv4i32_v2i64 = 8434,
+ UMULLv8i16_indexed = 8435,
+ UMULLv8i16_v4i32 = 8436,
+ UMULLv8i8_v8i16 = 8437,
+ UQADD_ZI_B = 8438,
+ UQADD_ZI_D = 8439,
+ UQADD_ZI_H = 8440,
+ UQADD_ZI_S = 8441,
+ UQADD_ZPmZ_B = 8442,
+ UQADD_ZPmZ_D = 8443,
+ UQADD_ZPmZ_H = 8444,
+ UQADD_ZPmZ_S = 8445,
+ UQADD_ZZZ_B = 8446,
+ UQADD_ZZZ_D = 8447,
+ UQADD_ZZZ_H = 8448,
+ UQADD_ZZZ_S = 8449,
+ UQADDv16i8 = 8450,
+ UQADDv1i16 = 8451,
+ UQADDv1i32 = 8452,
+ UQADDv1i64 = 8453,
+ UQADDv1i8 = 8454,
+ UQADDv2i32 = 8455,
+ UQADDv2i64 = 8456,
+ UQADDv4i16 = 8457,
+ UQADDv4i32 = 8458,
+ UQADDv8i16 = 8459,
+ UQADDv8i8 = 8460,
+ UQCVTN_Z2Z_StoH = 8461,
+ UQCVTN_Z4Z_DtoH = 8462,
+ UQCVTN_Z4Z_StoB = 8463,
+ UQCVT_Z2Z_StoH = 8464,
+ UQCVT_Z4Z_DtoH = 8465,
+ UQCVT_Z4Z_StoB = 8466,
+ UQDECB_WPiI = 8467,
+ UQDECB_XPiI = 8468,
+ UQDECD_WPiI = 8469,
+ UQDECD_XPiI = 8470,
+ UQDECD_ZPiI = 8471,
+ UQDECH_WPiI = 8472,
+ UQDECH_XPiI = 8473,
+ UQDECH_ZPiI = 8474,
+ UQDECP_WP_B = 8475,
+ UQDECP_WP_D = 8476,
+ UQDECP_WP_H = 8477,
+ UQDECP_WP_S = 8478,
+ UQDECP_XP_B = 8479,
+ UQDECP_XP_D = 8480,
+ UQDECP_XP_H = 8481,
+ UQDECP_XP_S = 8482,
+ UQDECP_ZP_D = 8483,
+ UQDECP_ZP_H = 8484,
+ UQDECP_ZP_S = 8485,
+ UQDECW_WPiI = 8486,
+ UQDECW_XPiI = 8487,
+ UQDECW_ZPiI = 8488,
+ UQINCB_WPiI = 8489,
+ UQINCB_XPiI = 8490,
+ UQINCD_WPiI = 8491,
+ UQINCD_XPiI = 8492,
+ UQINCD_ZPiI = 8493,
+ UQINCH_WPiI = 8494,
+ UQINCH_XPiI = 8495,
+ UQINCH_ZPiI = 8496,
+ UQINCP_WP_B = 8497,
+ UQINCP_WP_D = 8498,
+ UQINCP_WP_H = 8499,
+ UQINCP_WP_S = 8500,
+ UQINCP_XP_B = 8501,
+ UQINCP_XP_D = 8502,
+ UQINCP_XP_H = 8503,
+ UQINCP_XP_S = 8504,
+ UQINCP_ZP_D = 8505,
+ UQINCP_ZP_H = 8506,
+ UQINCP_ZP_S = 8507,
+ UQINCW_WPiI = 8508,
+ UQINCW_XPiI = 8509,
+ UQINCW_ZPiI = 8510,
+ UQRSHLR_ZPmZ_B = 8511,
+ UQRSHLR_ZPmZ_D = 8512,
+ UQRSHLR_ZPmZ_H = 8513,
+ UQRSHLR_ZPmZ_S = 8514,
+ UQRSHL_ZPmZ_B = 8515,
+ UQRSHL_ZPmZ_D = 8516,
+ UQRSHL_ZPmZ_H = 8517,
+ UQRSHL_ZPmZ_S = 8518,
+ UQRSHLv16i8 = 8519,
+ UQRSHLv1i16 = 8520,
+ UQRSHLv1i32 = 8521,
+ UQRSHLv1i64 = 8522,
+ UQRSHLv1i8 = 8523,
+ UQRSHLv2i32 = 8524,
+ UQRSHLv2i64 = 8525,
+ UQRSHLv4i16 = 8526,
+ UQRSHLv4i32 = 8527,
+ UQRSHLv8i16 = 8528,
+ UQRSHLv8i8 = 8529,
+ UQRSHRNB_ZZI_B = 8530,
+ UQRSHRNB_ZZI_H = 8531,
+ UQRSHRNB_ZZI_S = 8532,
+ UQRSHRNT_ZZI_B = 8533,
+ UQRSHRNT_ZZI_H = 8534,
+ UQRSHRNT_ZZI_S = 8535,
+ UQRSHRN_VG4_Z4ZI_B = 8536,
+ UQRSHRN_VG4_Z4ZI_H = 8537,
+ UQRSHRN_Z2ZI_HtoB = 8538,
+ UQRSHRN_Z2ZI_StoH = 8539,
+ UQRSHRNb = 8540,
+ UQRSHRNh = 8541,
+ UQRSHRNs = 8542,
+ UQRSHRNv16i8_shift = 8543,
+ UQRSHRNv2i32_shift = 8544,
+ UQRSHRNv4i16_shift = 8545,
+ UQRSHRNv4i32_shift = 8546,
+ UQRSHRNv8i16_shift = 8547,
+ UQRSHRNv8i8_shift = 8548,
+ UQRSHR_VG2_Z2ZI_H = 8549,
+ UQRSHR_VG4_Z4ZI_B = 8550,
+ UQRSHR_VG4_Z4ZI_H = 8551,
+ UQSHLR_ZPmZ_B = 8552,
+ UQSHLR_ZPmZ_D = 8553,
+ UQSHLR_ZPmZ_H = 8554,
+ UQSHLR_ZPmZ_S = 8555,
+ UQSHL_ZPmI_B = 8556,
+ UQSHL_ZPmI_D = 8557,
+ UQSHL_ZPmI_H = 8558,
+ UQSHL_ZPmI_S = 8559,
+ UQSHL_ZPmZ_B = 8560,
+ UQSHL_ZPmZ_D = 8561,
+ UQSHL_ZPmZ_H = 8562,
+ UQSHL_ZPmZ_S = 8563,
+ UQSHLb = 8564,
+ UQSHLd = 8565,
+ UQSHLh = 8566,
+ UQSHLs = 8567,
+ UQSHLv16i8 = 8568,
+ UQSHLv16i8_shift = 8569,
+ UQSHLv1i16 = 8570,
+ UQSHLv1i32 = 8571,
+ UQSHLv1i64 = 8572,
+ UQSHLv1i8 = 8573,
+ UQSHLv2i32 = 8574,
+ UQSHLv2i32_shift = 8575,
+ UQSHLv2i64 = 8576,
+ UQSHLv2i64_shift = 8577,
+ UQSHLv4i16 = 8578,
+ UQSHLv4i16_shift = 8579,
+ UQSHLv4i32 = 8580,
+ UQSHLv4i32_shift = 8581,
+ UQSHLv8i16 = 8582,
+ UQSHLv8i16_shift = 8583,
+ UQSHLv8i8 = 8584,
+ UQSHLv8i8_shift = 8585,
+ UQSHRNB_ZZI_B = 8586,
+ UQSHRNB_ZZI_H = 8587,
+ UQSHRNB_ZZI_S = 8588,
+ UQSHRNT_ZZI_B = 8589,
+ UQSHRNT_ZZI_H = 8590,
+ UQSHRNT_ZZI_S = 8591,
+ UQSHRN_Z2ZI_HtoB = 8592,
+ UQSHRN_Z2ZI_StoH = 8593,
+ UQSHRNb = 8594,
+ UQSHRNh = 8595,
+ UQSHRNs = 8596,
+ UQSHRNv16i8_shift = 8597,
+ UQSHRNv2i32_shift = 8598,
+ UQSHRNv4i16_shift = 8599,
+ UQSHRNv4i32_shift = 8600,
+ UQSHRNv8i16_shift = 8601,
+ UQSHRNv8i8_shift = 8602,
+ UQSUBR_ZPmZ_B = 8603,
+ UQSUBR_ZPmZ_D = 8604,
+ UQSUBR_ZPmZ_H = 8605,
+ UQSUBR_ZPmZ_S = 8606,
+ UQSUB_ZI_B = 8607,
+ UQSUB_ZI_D = 8608,
+ UQSUB_ZI_H = 8609,
+ UQSUB_ZI_S = 8610,
+ UQSUB_ZPmZ_B = 8611,
+ UQSUB_ZPmZ_D = 8612,
+ UQSUB_ZPmZ_H = 8613,
+ UQSUB_ZPmZ_S = 8614,
+ UQSUB_ZZZ_B = 8615,
+ UQSUB_ZZZ_D = 8616,
+ UQSUB_ZZZ_H = 8617,
+ UQSUB_ZZZ_S = 8618,
+ UQSUBv16i8 = 8619,
+ UQSUBv1i16 = 8620,
+ UQSUBv1i32 = 8621,
+ UQSUBv1i64 = 8622,
+ UQSUBv1i8 = 8623,
+ UQSUBv2i32 = 8624,
+ UQSUBv2i64 = 8625,
+ UQSUBv4i16 = 8626,
+ UQSUBv4i32 = 8627,
+ UQSUBv8i16 = 8628,
+ UQSUBv8i8 = 8629,
+ UQXTNB_ZZ_B = 8630,
+ UQXTNB_ZZ_H = 8631,
+ UQXTNB_ZZ_S = 8632,
+ UQXTNT_ZZ_B = 8633,
+ UQXTNT_ZZ_H = 8634,
+ UQXTNT_ZZ_S = 8635,
+ UQXTNv16i8 = 8636,
+ UQXTNv1i16 = 8637,
+ UQXTNv1i32 = 8638,
+ UQXTNv1i8 = 8639,
+ UQXTNv2i32 = 8640,
+ UQXTNv4i16 = 8641,
+ UQXTNv4i32 = 8642,
+ UQXTNv8i16 = 8643,
+ UQXTNv8i8 = 8644,
+ URECPE_ZPmZ_S = 8645,
+ URECPE_ZPzZ_S = 8646,
+ URECPEv2i32 = 8647,
+ URECPEv4i32 = 8648,
+ URHADD_ZPmZ_B = 8649,
+ URHADD_ZPmZ_D = 8650,
+ URHADD_ZPmZ_H = 8651,
+ URHADD_ZPmZ_S = 8652,
+ URHADDv16i8 = 8653,
+ URHADDv2i32 = 8654,
+ URHADDv4i16 = 8655,
+ URHADDv4i32 = 8656,
+ URHADDv8i16 = 8657,
+ URHADDv8i8 = 8658,
+ URSHLR_ZPmZ_B = 8659,
+ URSHLR_ZPmZ_D = 8660,
+ URSHLR_ZPmZ_H = 8661,
+ URSHLR_ZPmZ_S = 8662,
+ URSHL_VG2_2Z2Z_B = 8663,
+ URSHL_VG2_2Z2Z_D = 8664,
+ URSHL_VG2_2Z2Z_H = 8665,
+ URSHL_VG2_2Z2Z_S = 8666,
+ URSHL_VG2_2ZZ_B = 8667,
+ URSHL_VG2_2ZZ_D = 8668,
+ URSHL_VG2_2ZZ_H = 8669,
+ URSHL_VG2_2ZZ_S = 8670,
+ URSHL_VG4_4Z4Z_B = 8671,
+ URSHL_VG4_4Z4Z_D = 8672,
+ URSHL_VG4_4Z4Z_H = 8673,
+ URSHL_VG4_4Z4Z_S = 8674,
+ URSHL_VG4_4ZZ_B = 8675,
+ URSHL_VG4_4ZZ_D = 8676,
+ URSHL_VG4_4ZZ_H = 8677,
+ URSHL_VG4_4ZZ_S = 8678,
+ URSHL_ZPmZ_B = 8679,
+ URSHL_ZPmZ_D = 8680,
+ URSHL_ZPmZ_H = 8681,
+ URSHL_ZPmZ_S = 8682,
+ URSHLv16i8 = 8683,
+ URSHLv1i64 = 8684,
+ URSHLv2i32 = 8685,
+ URSHLv2i64 = 8686,
+ URSHLv4i16 = 8687,
+ URSHLv4i32 = 8688,
+ URSHLv8i16 = 8689,
+ URSHLv8i8 = 8690,
+ URSHR_ZPmI_B = 8691,
+ URSHR_ZPmI_D = 8692,
+ URSHR_ZPmI_H = 8693,
+ URSHR_ZPmI_S = 8694,
+ URSHRd = 8695,
+ URSHRv16i8_shift = 8696,
+ URSHRv2i32_shift = 8697,
+ URSHRv2i64_shift = 8698,
+ URSHRv4i16_shift = 8699,
+ URSHRv4i32_shift = 8700,
+ URSHRv8i16_shift = 8701,
+ URSHRv8i8_shift = 8702,
+ URSQRTE_ZPmZ_S = 8703,
+ URSQRTE_ZPzZ_S = 8704,
+ URSQRTEv2i32 = 8705,
+ URSQRTEv4i32 = 8706,
+ URSRA_ZZI_B = 8707,
+ URSRA_ZZI_D = 8708,
+ URSRA_ZZI_H = 8709,
+ URSRA_ZZI_S = 8710,
+ URSRAd = 8711,
+ URSRAv16i8_shift = 8712,
+ URSRAv2i32_shift = 8713,
+ URSRAv2i64_shift = 8714,
+ URSRAv4i16_shift = 8715,
+ URSRAv4i32_shift = 8716,
+ URSRAv8i16_shift = 8717,
+ URSRAv8i8_shift = 8718,
+ USDOT_VG2_M2Z2Z_BToS = 8719,
+ USDOT_VG2_M2ZZI_BToS = 8720,
+ USDOT_VG2_M2ZZ_BToS = 8721,
+ USDOT_VG4_M4Z4Z_BToS = 8722,
+ USDOT_VG4_M4ZZI_BToS = 8723,
+ USDOT_VG4_M4ZZ_BToS = 8724,
+ USDOT_ZZZ = 8725,
+ USDOT_ZZZI = 8726,
+ USDOTlanev16i8 = 8727,
+ USDOTlanev8i8 = 8728,
+ USDOTv16i8 = 8729,
+ USDOTv8i8 = 8730,
+ USHLLB_ZZI_D = 8731,
+ USHLLB_ZZI_H = 8732,
+ USHLLB_ZZI_S = 8733,
+ USHLLT_ZZI_D = 8734,
+ USHLLT_ZZI_H = 8735,
+ USHLLT_ZZI_S = 8736,
+ USHLLv16i8_shift = 8737,
+ USHLLv2i32_shift = 8738,
+ USHLLv4i16_shift = 8739,
+ USHLLv4i32_shift = 8740,
+ USHLLv8i16_shift = 8741,
+ USHLLv8i8_shift = 8742,
+ USHLv16i8 = 8743,
+ USHLv1i64 = 8744,
+ USHLv2i32 = 8745,
+ USHLv2i64 = 8746,
+ USHLv4i16 = 8747,
+ USHLv4i32 = 8748,
+ USHLv8i16 = 8749,
+ USHLv8i8 = 8750,
+ USHRd = 8751,
+ USHRv16i8_shift = 8752,
+ USHRv2i32_shift = 8753,
+ USHRv2i64_shift = 8754,
+ USHRv4i16_shift = 8755,
+ USHRv4i32_shift = 8756,
+ USHRv8i16_shift = 8757,
+ USHRv8i8_shift = 8758,
+ USMLALL_MZZI_BtoS = 8759,
+ USMLALL_MZZ_BtoS = 8760,
+ USMLALL_VG2_M2Z2Z_BtoS = 8761,
+ USMLALL_VG2_M2ZZI_BtoS = 8762,
+ USMLALL_VG2_M2ZZ_BtoS = 8763,
+ USMLALL_VG4_M4Z4Z_BtoS = 8764,
+ USMLALL_VG4_M4ZZI_BtoS = 8765,
+ USMLALL_VG4_M4ZZ_BtoS = 8766,
+ USMMLA = 8767,
+ USMMLA_ZZZ = 8768,
+ USMOP4A_M2Z2Z_BToS = 8769,
+ USMOP4A_M2Z2Z_HtoD = 8770,
+ USMOP4A_M2ZZ_BToS = 8771,
+ USMOP4A_M2ZZ_HtoD = 8772,
+ USMOP4A_MZ2Z_BToS = 8773,
+ USMOP4A_MZ2Z_HtoD = 8774,
+ USMOP4A_MZZ_BToS = 8775,
+ USMOP4A_MZZ_HtoD = 8776,
+ USMOP4S_M2Z2Z_BToS = 8777,
+ USMOP4S_M2Z2Z_HtoD = 8778,
+ USMOP4S_M2ZZ_BToS = 8779,
+ USMOP4S_M2ZZ_HtoD = 8780,
+ USMOP4S_MZ2Z_BToS = 8781,
+ USMOP4S_MZ2Z_HtoD = 8782,
+ USMOP4S_MZZ_BToS = 8783,
+ USMOP4S_MZZ_HtoD = 8784,
+ USMOPA_MPPZZ_D = 8785,
+ USMOPA_MPPZZ_S = 8786,
+ USMOPS_MPPZZ_D = 8787,
+ USMOPS_MPPZZ_S = 8788,
+ USQADD_ZPmZ_B = 8789,
+ USQADD_ZPmZ_D = 8790,
+ USQADD_ZPmZ_H = 8791,
+ USQADD_ZPmZ_S = 8792,
+ USQADDv16i8 = 8793,
+ USQADDv1i16 = 8794,
+ USQADDv1i32 = 8795,
+ USQADDv1i64 = 8796,
+ USQADDv1i8 = 8797,
+ USQADDv2i32 = 8798,
+ USQADDv2i64 = 8799,
+ USQADDv4i16 = 8800,
+ USQADDv4i32 = 8801,
+ USQADDv8i16 = 8802,
+ USQADDv8i8 = 8803,
+ USRA_ZZI_B = 8804,
+ USRA_ZZI_D = 8805,
+ USRA_ZZI_H = 8806,
+ USRA_ZZI_S = 8807,
+ USRAd = 8808,
+ USRAv16i8_shift = 8809,
+ USRAv2i32_shift = 8810,
+ USRAv2i64_shift = 8811,
+ USRAv4i16_shift = 8812,
+ USRAv4i32_shift = 8813,
+ USRAv8i16_shift = 8814,
+ USRAv8i8_shift = 8815,
+ USTMOPA_M2ZZZI_BtoS = 8816,
+ USUBLB_ZZZ_D = 8817,
+ USUBLB_ZZZ_H = 8818,
+ USUBLB_ZZZ_S = 8819,
+ USUBLT_ZZZ_D = 8820,
+ USUBLT_ZZZ_H = 8821,
+ USUBLT_ZZZ_S = 8822,
+ USUBLv16i8_v8i16 = 8823,
+ USUBLv2i32_v2i64 = 8824,
+ USUBLv4i16_v4i32 = 8825,
+ USUBLv4i32_v2i64 = 8826,
+ USUBLv8i16_v4i32 = 8827,
+ USUBLv8i8_v8i16 = 8828,
+ USUBWB_ZZZ_D = 8829,
+ USUBWB_ZZZ_H = 8830,
+ USUBWB_ZZZ_S = 8831,
+ USUBWT_ZZZ_D = 8832,
+ USUBWT_ZZZ_H = 8833,
+ USUBWT_ZZZ_S = 8834,
+ USUBWv16i8_v8i16 = 8835,
+ USUBWv2i32_v2i64 = 8836,
+ USUBWv4i16_v4i32 = 8837,
+ USUBWv4i32_v2i64 = 8838,
+ USUBWv8i16_v4i32 = 8839,
+ USUBWv8i8_v8i16 = 8840,
+ USVDOT_VG4_M4ZZI_BToS = 8841,
+ UTMOPA_M2ZZZI_BtoS = 8842,
+ UTMOPA_M2ZZZI_HtoS = 8843,
+ UUNPKHI_ZZ_D = 8844,
+ UUNPKHI_ZZ_H = 8845,
+ UUNPKHI_ZZ_S = 8846,
+ UUNPKLO_ZZ_D = 8847,
+ UUNPKLO_ZZ_H = 8848,
+ UUNPKLO_ZZ_S = 8849,
+ UUNPK_VG2_2ZZ_D = 8850,
+ UUNPK_VG2_2ZZ_H = 8851,
+ UUNPK_VG2_2ZZ_S = 8852,
+ UUNPK_VG4_4Z2Z_D = 8853,
+ UUNPK_VG4_4Z2Z_H = 8854,
+ UUNPK_VG4_4Z2Z_S = 8855,
+ UVDOT_VG2_M2ZZI_HtoS = 8856,
+ UVDOT_VG4_M4ZZI_BtoS = 8857,
+ UVDOT_VG4_M4ZZI_HtoD = 8858,
+ UXTB_ZPmZ_D = 8859,
+ UXTB_ZPmZ_H = 8860,
+ UXTB_ZPmZ_S = 8861,
+ UXTB_ZPzZ_D = 8862,
+ UXTB_ZPzZ_H = 8863,
+ UXTB_ZPzZ_S = 8864,
+ UXTH_ZPmZ_D = 8865,
+ UXTH_ZPmZ_S = 8866,
+ UXTH_ZPzZ_D = 8867,
+ UXTH_ZPzZ_S = 8868,
+ UXTW_ZPmZ_D = 8869,
+ UXTW_ZPzZ_D = 8870,
+ UZP1_PPP_B = 8871,
+ UZP1_PPP_D = 8872,
+ UZP1_PPP_H = 8873,
+ UZP1_PPP_S = 8874,
+ UZP1_ZZZ_B = 8875,
+ UZP1_ZZZ_D = 8876,
+ UZP1_ZZZ_H = 8877,
+ UZP1_ZZZ_Q = 8878,
+ UZP1_ZZZ_S = 8879,
+ UZP1v16i8 = 8880,
+ UZP1v2i32 = 8881,
+ UZP1v2i64 = 8882,
+ UZP1v4i16 = 8883,
+ UZP1v4i32 = 8884,
+ UZP1v8i16 = 8885,
+ UZP1v8i8 = 8886,
+ UZP2_PPP_B = 8887,
+ UZP2_PPP_D = 8888,
+ UZP2_PPP_H = 8889,
+ UZP2_PPP_S = 8890,
+ UZP2_ZZZ_B = 8891,
+ UZP2_ZZZ_D = 8892,
+ UZP2_ZZZ_H = 8893,
+ UZP2_ZZZ_Q = 8894,
+ UZP2_ZZZ_S = 8895,
+ UZP2v16i8 = 8896,
+ UZP2v2i32 = 8897,
+ UZP2v2i64 = 8898,
+ UZP2v4i16 = 8899,
+ UZP2v4i32 = 8900,
+ UZP2v8i16 = 8901,
+ UZP2v8i8 = 8902,
+ UZPQ1_ZZZ_B = 8903,
+ UZPQ1_ZZZ_D = 8904,
+ UZPQ1_ZZZ_H = 8905,
+ UZPQ1_ZZZ_S = 8906,
+ UZPQ2_ZZZ_B = 8907,
+ UZPQ2_ZZZ_D = 8908,
+ UZPQ2_ZZZ_H = 8909,
+ UZPQ2_ZZZ_S = 8910,
+ UZP_VG2_2ZZZ_B = 8911,
+ UZP_VG2_2ZZZ_D = 8912,
+ UZP_VG2_2ZZZ_H = 8913,
+ UZP_VG2_2ZZZ_Q = 8914,
+ UZP_VG2_2ZZZ_S = 8915,
+ UZP_VG4_4Z4Z_B = 8916,
+ UZP_VG4_4Z4Z_D = 8917,
+ UZP_VG4_4Z4Z_H = 8918,
+ UZP_VG4_4Z4Z_Q = 8919,
+ UZP_VG4_4Z4Z_S = 8920,
+ WFET = 8921,
+ WFIT = 8922,
+ WHILEGE_2PXX_B = 8923,
+ WHILEGE_2PXX_D = 8924,
+ WHILEGE_2PXX_H = 8925,
+ WHILEGE_2PXX_S = 8926,
+ WHILEGE_CXX_B = 8927,
+ WHILEGE_CXX_D = 8928,
+ WHILEGE_CXX_H = 8929,
+ WHILEGE_CXX_S = 8930,
+ WHILEGE_PWW_B = 8931,
+ WHILEGE_PWW_D = 8932,
+ WHILEGE_PWW_H = 8933,
+ WHILEGE_PWW_S = 8934,
+ WHILEGE_PXX_B = 8935,
+ WHILEGE_PXX_D = 8936,
+ WHILEGE_PXX_H = 8937,
+ WHILEGE_PXX_S = 8938,
+ WHILEGT_2PXX_B = 8939,
+ WHILEGT_2PXX_D = 8940,
+ WHILEGT_2PXX_H = 8941,
+ WHILEGT_2PXX_S = 8942,
+ WHILEGT_CXX_B = 8943,
+ WHILEGT_CXX_D = 8944,
+ WHILEGT_CXX_H = 8945,
+ WHILEGT_CXX_S = 8946,
+ WHILEGT_PWW_B = 8947,
+ WHILEGT_PWW_D = 8948,
+ WHILEGT_PWW_H = 8949,
+ WHILEGT_PWW_S = 8950,
+ WHILEGT_PXX_B = 8951,
+ WHILEGT_PXX_D = 8952,
+ WHILEGT_PXX_H = 8953,
+ WHILEGT_PXX_S = 8954,
+ WHILEHI_2PXX_B = 8955,
+ WHILEHI_2PXX_D = 8956,
+ WHILEHI_2PXX_H = 8957,
+ WHILEHI_2PXX_S = 8958,
+ WHILEHI_CXX_B = 8959,
+ WHILEHI_CXX_D = 8960,
+ WHILEHI_CXX_H = 8961,
+ WHILEHI_CXX_S = 8962,
+ WHILEHI_PWW_B = 8963,
+ WHILEHI_PWW_D = 8964,
+ WHILEHI_PWW_H = 8965,
+ WHILEHI_PWW_S = 8966,
+ WHILEHI_PXX_B = 8967,
+ WHILEHI_PXX_D = 8968,
+ WHILEHI_PXX_H = 8969,
+ WHILEHI_PXX_S = 8970,
+ WHILEHS_2PXX_B = 8971,
+ WHILEHS_2PXX_D = 8972,
+ WHILEHS_2PXX_H = 8973,
+ WHILEHS_2PXX_S = 8974,
+ WHILEHS_CXX_B = 8975,
+ WHILEHS_CXX_D = 8976,
+ WHILEHS_CXX_H = 8977,
+ WHILEHS_CXX_S = 8978,
+ WHILEHS_PWW_B = 8979,
+ WHILEHS_PWW_D = 8980,
+ WHILEHS_PWW_H = 8981,
+ WHILEHS_PWW_S = 8982,
+ WHILEHS_PXX_B = 8983,
+ WHILEHS_PXX_D = 8984,
+ WHILEHS_PXX_H = 8985,
+ WHILEHS_PXX_S = 8986,
+ WHILELE_2PXX_B = 8987,
+ WHILELE_2PXX_D = 8988,
+ WHILELE_2PXX_H = 8989,
+ WHILELE_2PXX_S = 8990,
+ WHILELE_CXX_B = 8991,
+ WHILELE_CXX_D = 8992,
+ WHILELE_CXX_H = 8993,
+ WHILELE_CXX_S = 8994,
+ WHILELE_PWW_B = 8995,
+ WHILELE_PWW_D = 8996,
+ WHILELE_PWW_H = 8997,
+ WHILELE_PWW_S = 8998,
+ WHILELE_PXX_B = 8999,
+ WHILELE_PXX_D = 9000,
+ WHILELE_PXX_H = 9001,
+ WHILELE_PXX_S = 9002,
+ WHILELO_2PXX_B = 9003,
+ WHILELO_2PXX_D = 9004,
+ WHILELO_2PXX_H = 9005,
+ WHILELO_2PXX_S = 9006,
+ WHILELO_CXX_B = 9007,
+ WHILELO_CXX_D = 9008,
+ WHILELO_CXX_H = 9009,
+ WHILELO_CXX_S = 9010,
+ WHILELO_PWW_B = 9011,
+ WHILELO_PWW_D = 9012,
+ WHILELO_PWW_H = 9013,
+ WHILELO_PWW_S = 9014,
+ WHILELO_PXX_B = 9015,
+ WHILELO_PXX_D = 9016,
+ WHILELO_PXX_H = 9017,
+ WHILELO_PXX_S = 9018,
+ WHILELS_2PXX_B = 9019,
+ WHILELS_2PXX_D = 9020,
+ WHILELS_2PXX_H = 9021,
+ WHILELS_2PXX_S = 9022,
+ WHILELS_CXX_B = 9023,
+ WHILELS_CXX_D = 9024,
+ WHILELS_CXX_H = 9025,
+ WHILELS_CXX_S = 9026,
+ WHILELS_PWW_B = 9027,
+ WHILELS_PWW_D = 9028,
+ WHILELS_PWW_H = 9029,
+ WHILELS_PWW_S = 9030,
+ WHILELS_PXX_B = 9031,
+ WHILELS_PXX_D = 9032,
+ WHILELS_PXX_H = 9033,
+ WHILELS_PXX_S = 9034,
+ WHILELT_2PXX_B = 9035,
+ WHILELT_2PXX_D = 9036,
+ WHILELT_2PXX_H = 9037,
+ WHILELT_2PXX_S = 9038,
+ WHILELT_CXX_B = 9039,
+ WHILELT_CXX_D = 9040,
+ WHILELT_CXX_H = 9041,
+ WHILELT_CXX_S = 9042,
+ WHILELT_PWW_B = 9043,
+ WHILELT_PWW_D = 9044,
+ WHILELT_PWW_H = 9045,
+ WHILELT_PWW_S = 9046,
+ WHILELT_PXX_B = 9047,
+ WHILELT_PXX_D = 9048,
+ WHILELT_PXX_H = 9049,
+ WHILELT_PXX_S = 9050,
+ WHILERW_PXX_B = 9051,
+ WHILERW_PXX_D = 9052,
+ WHILERW_PXX_H = 9053,
+ WHILERW_PXX_S = 9054,
+ WHILEWR_PXX_B = 9055,
+ WHILEWR_PXX_D = 9056,
+ WHILEWR_PXX_H = 9057,
+ WHILEWR_PXX_S = 9058,
+ WRFFR = 9059,
+ XAFLAG = 9060,
+ XAR = 9061,
+ XAR_ZZZI_B = 9062,
+ XAR_ZZZI_D = 9063,
+ XAR_ZZZI_H = 9064,
+ XAR_ZZZI_S = 9065,
+ XPACD = 9066,
+ XPACI = 9067,
+ XPACLRI = 9068,
+ XTNv16i8 = 9069,
+ XTNv2i32 = 9070,
+ XTNv4i16 = 9071,
+ XTNv4i32 = 9072,
+ XTNv8i16 = 9073,
+ XTNv8i8 = 9074,
+ ZERO_M = 9075,
+ ZERO_MXI_2Z = 9076,
+ ZERO_MXI_4Z = 9077,
+ ZERO_MXI_VG2_2Z = 9078,
+ ZERO_MXI_VG2_4Z = 9079,
+ ZERO_MXI_VG2_Z = 9080,
+ ZERO_MXI_VG4_2Z = 9081,
+ ZERO_MXI_VG4_4Z = 9082,
+ ZERO_MXI_VG4_Z = 9083,
+ ZERO_T = 9084,
+ ZIP1_PPP_B = 9085,
+ ZIP1_PPP_D = 9086,
+ ZIP1_PPP_H = 9087,
+ ZIP1_PPP_S = 9088,
+ ZIP1_ZZZ_B = 9089,
+ ZIP1_ZZZ_D = 9090,
+ ZIP1_ZZZ_H = 9091,
+ ZIP1_ZZZ_Q = 9092,
+ ZIP1_ZZZ_S = 9093,
+ ZIP1v16i8 = 9094,
+ ZIP1v2i32 = 9095,
+ ZIP1v2i64 = 9096,
+ ZIP1v4i16 = 9097,
+ ZIP1v4i32 = 9098,
+ ZIP1v8i16 = 9099,
+ ZIP1v8i8 = 9100,
+ ZIP2_PPP_B = 9101,
+ ZIP2_PPP_D = 9102,
+ ZIP2_PPP_H = 9103,
+ ZIP2_PPP_S = 9104,
+ ZIP2_ZZZ_B = 9105,
+ ZIP2_ZZZ_D = 9106,
+ ZIP2_ZZZ_H = 9107,
+ ZIP2_ZZZ_Q = 9108,
+ ZIP2_ZZZ_S = 9109,
+ ZIP2v16i8 = 9110,
+ ZIP2v2i32 = 9111,
+ ZIP2v2i64 = 9112,
+ ZIP2v4i16 = 9113,
+ ZIP2v4i32 = 9114,
+ ZIP2v8i16 = 9115,
+ ZIP2v8i8 = 9116,
+ ZIPQ1_ZZZ_B = 9117,
+ ZIPQ1_ZZZ_D = 9118,
+ ZIPQ1_ZZZ_H = 9119,
+ ZIPQ1_ZZZ_S = 9120,
+ ZIPQ2_ZZZ_B = 9121,
+ ZIPQ2_ZZZ_D = 9122,
+ ZIPQ2_ZZZ_H = 9123,
+ ZIPQ2_ZZZ_S = 9124,
+ ZIP_VG2_2ZZZ_B = 9125,
+ ZIP_VG2_2ZZZ_D = 9126,
+ ZIP_VG2_2ZZZ_H = 9127,
+ ZIP_VG2_2ZZZ_Q = 9128,
+ ZIP_VG2_2ZZZ_S = 9129,
+ ZIP_VG4_4Z4Z_B = 9130,
+ ZIP_VG4_4Z4Z_D = 9131,
+ ZIP_VG4_4Z4Z_H = 9132,
+ ZIP_VG4_4Z4Z_Q = 9133,
+ ZIP_VG4_4Z4Z_S = 9134,
+ INSTRUCTION_LIST_END = 9135,
};
}
}
diff --git a/deps/LIEF/include/LIEF/asm/aarch64/operands.hpp b/deps/LIEF/include/LIEF/asm/aarch64/operands.hpp
index e3bbf86ab0d..525b9a45f74 100644
--- a/deps/LIEF/include/LIEF/asm/aarch64/operands.hpp
+++ b/deps/LIEF/include/LIEF/asm/aarch64/operands.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/aarch64/operands/Immediate.hpp b/deps/LIEF/include/LIEF/asm/aarch64/operands/Immediate.hpp
index 4fde9acf5de..3fc811b18e3 100644
--- a/deps/LIEF/include/LIEF/asm/aarch64/operands/Immediate.hpp
+++ b/deps/LIEF/include/LIEF/asm/aarch64/operands/Immediate.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/aarch64/operands/Memory.hpp b/deps/LIEF/include/LIEF/asm/aarch64/operands/Memory.hpp
index 51cdf3292b4..d110c9c7406 100644
--- a/deps/LIEF/include/LIEF/asm/aarch64/operands/Memory.hpp
+++ b/deps/LIEF/include/LIEF/asm/aarch64/operands/Memory.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/aarch64/operands/PCRelative.hpp b/deps/LIEF/include/LIEF/asm/aarch64/operands/PCRelative.hpp
index 23248cdffa7..e3516e2e500 100644
--- a/deps/LIEF/include/LIEF/asm/aarch64/operands/PCRelative.hpp
+++ b/deps/LIEF/include/LIEF/asm/aarch64/operands/PCRelative.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/aarch64/operands/Register.hpp b/deps/LIEF/include/LIEF/asm/aarch64/operands/Register.hpp
index 3f29f223ed2..61d9e09fd78 100644
--- a/deps/LIEF/include/LIEF/asm/aarch64/operands/Register.hpp
+++ b/deps/LIEF/include/LIEF/asm/aarch64/operands/Register.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/aarch64/registers.hpp b/deps/LIEF/include/LIEF/asm/aarch64/registers.hpp
index 3d8b1cafc1c..a48c7db8dad 100644
--- a/deps/LIEF/include/LIEF/asm/aarch64/registers.hpp
+++ b/deps/LIEF/include/LIEF/asm/aarch64/registers.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1085,7 +1085,6 @@ enum class SYSREG {
TRCEVENTCTL0R = 34880,
TRCVDCTLR = 34882,
TRCEXTINSELR = 34884,
- TRCEXTINSELR0 = 34884,
TRCCNTVR0 = 34885,
TRCIDR0 = 34887,
TRCEVENTCTL1R = 34888,
@@ -1367,7 +1366,6 @@ enum class SYSREG {
MDCCSR_EL0 = 38920,
DBGDTR_EL0 = 38944,
DBGDTRRX_EL0 = 38952,
- DBGDTRTX_EL0 = 38952,
SPMCR_EL0 = 40160,
SPMCNTENSET_EL0 = 40161,
SPMCNTENCLR_EL0 = 40162,
@@ -1516,14 +1514,23 @@ enum class SYSREG {
TTBR1_EL1 = 49409,
TCR_EL1 = 49410,
TCR2_EL1 = 49411,
+ IRTBRU_EL1 = 49412,
+ IRTBRP_EL1 = 49413,
+ DPOTBR0_EL1 = 49414,
+ DPOTBR1_EL1 = 49415,
APIAKeyLo_EL1 = 49416,
APIAKeyHi_EL1 = 49417,
APIBKeyLo_EL1 = 49418,
APIBKeyHi_EL1 = 49419,
+ LDSTT_EL1 = 49423,
APDAKeyLo_EL1 = 49424,
APDAKeyHi_EL1 = 49425,
APDBKeyLo_EL1 = 49426,
APDBKeyHi_EL1 = 49427,
+ TPMIN0_EL1 = 49428,
+ TPMAX0_EL1 = 49429,
+ TPMIN1_EL1 = 49430,
+ TPMAX1_EL1 = 49431,
APGAKeyLo_EL1 = 49432,
APGAKeyHi_EL1 = 49433,
GCSCR_EL1 = 49448,
@@ -1533,8 +1540,74 @@ enum class SYSREG {
TCR2MASK_EL1 = 49467,
TCRALIAS_EL1 = 49470,
TCR2ALIAS_EL1 = 49471,
+ FGDTP0_EL1 = 49552,
+ FGDTP1_EL1 = 49553,
+ FGDTP2_EL1 = 49554,
+ FGDTP3_EL1 = 49555,
+ FGDTP4_EL1 = 49556,
+ FGDTP5_EL1 = 49557,
+ FGDTP6_EL1 = 49558,
+ FGDTP7_EL1 = 49559,
+ FGDTP8_EL1 = 49560,
+ FGDTP9_EL1 = 49561,
+ FGDTP10_EL1 = 49562,
+ FGDTP11_EL1 = 49563,
+ FGDTP12_EL1 = 49564,
+ FGDTP13_EL1 = 49565,
+ FGDTP14_EL1 = 49566,
+ FGDTP15_EL1 = 49567,
+ FGDTU0_EL1 = 49568,
+ FGDTU1_EL1 = 49569,
+ FGDTU2_EL1 = 49570,
+ FGDTU3_EL1 = 49571,
+ FGDTU4_EL1 = 49572,
+ FGDTU5_EL1 = 49573,
+ FGDTU6_EL1 = 49574,
+ FGDTU7_EL1 = 49575,
+ FGDTU8_EL1 = 49576,
+ FGDTU9_EL1 = 49577,
+ FGDTU10_EL1 = 49578,
+ FGDTU11_EL1 = 49579,
+ FGDTU12_EL1 = 49580,
+ FGDTU13_EL1 = 49581,
+ FGDTU14_EL1 = 49582,
+ FGDTU15_EL1 = 49583,
+ AFGDTP0_EL1 = 49584,
+ AFGDTP1_EL1 = 49585,
+ AFGDTP2_EL1 = 49586,
+ AFGDTP3_EL1 = 49587,
+ AFGDTP4_EL1 = 49588,
+ AFGDTP5_EL1 = 49589,
+ AFGDTP6_EL1 = 49590,
+ AFGDTP7_EL1 = 49591,
+ AFGDTP8_EL1 = 49592,
+ AFGDTP9_EL1 = 49593,
+ AFGDTP10_EL1 = 49594,
+ AFGDTP11_EL1 = 49595,
+ AFGDTP12_EL1 = 49596,
+ AFGDTP13_EL1 = 49597,
+ AFGDTP14_EL1 = 49598,
+ AFGDTP15_EL1 = 49599,
+ AFGDTU0_EL1 = 49600,
+ AFGDTU1_EL1 = 49601,
+ AFGDTU2_EL1 = 49602,
+ AFGDTU3_EL1 = 49603,
+ AFGDTU4_EL1 = 49604,
+ AFGDTU5_EL1 = 49605,
+ AFGDTU6_EL1 = 49606,
+ AFGDTU7_EL1 = 49607,
+ AFGDTU8_EL1 = 49608,
+ AFGDTU9_EL1 = 49609,
+ AFGDTU10_EL1 = 49610,
+ AFGDTU11_EL1 = 49611,
+ AFGDTU12_EL1 = 49612,
+ AFGDTU13_EL1 = 49613,
+ AFGDTU14_EL1 = 49614,
+ AFGDTU15_EL1 = 49615,
SPSR_EL1 = 49664,
ELR_EL1 = 49665,
+ STINDEX_EL1 = 49666,
+ TINDEX_EL1 = 49667,
SP_EL0 = 49672,
SPSel = 49680,
CurrentEL = 49682,
@@ -1634,6 +1707,8 @@ enum class SYSREG {
PIR_EL1 = 50451,
POR_EL1 = 50452,
S2POR_EL1 = 50453,
+ TTTBRU_EL1 = 50454,
+ TTTBRP_EL1 = 50455,
AMAIR_EL1 = 50456,
AMAIR2_EL1 = 50457,
LORSA_EL1 = 50464,
@@ -1642,9 +1717,11 @@ enum class SYSREG {
LORC_EL1 = 50467,
MPAMIDR_EL1 = 50468,
MPAMBWIDR_EL1 = 50469,
+ TLBIDIDR_EL1 = 50470,
LORID_EL1 = 50471,
MPAM1_EL1 = 50472,
MPAM0_EL1 = 50473,
+ MPAMCTL_EL1 = 50474,
MPAMSM_EL1 = 50475,
MPAMBW1_EL1 = 50476,
MPAMBW0_EL1 = 50477,
@@ -1667,6 +1744,14 @@ enum class SYSREG {
ICC_AP1R2_EL1 = 50762,
ICC_AP1R3_EL1 = 50763,
ICC_NMIAR1_EL1 = 50765,
+ ICC_PPI_HMR0_EL1 = 50768,
+ ICC_PPI_HMR1_EL1 = 50769,
+ ICC_IDR0_EL1 = 50770,
+ ICC_HPPIR_EL1 = 50771,
+ ICC_ICSR_EL1 = 50772,
+ ICC_IAFFIDR_EL1 = 50773,
+ ICC_PPI_ENABLER0_EL1 = 50774,
+ ICC_PPI_ENABLER1_EL1 = 50775,
ICC_DIR_EL1 = 50777,
ICC_RPR_EL1 = 50779,
ICC_SGI1R_EL1 = 50781,
@@ -1680,6 +1765,31 @@ enum class SYSREG {
ICC_SRE_EL1 = 50789,
ICC_IGRPEN0_EL1 = 50790,
ICC_IGRPEN1_EL1 = 50791,
+ ICC_PPI_CACTIVER0_EL1 = 50792,
+ ICC_PPI_CACTIVER1_EL1 = 50793,
+ ICC_PPI_SACTIVER0_EL1 = 50794,
+ ICC_PPI_SACTIVER1_EL1 = 50795,
+ ICC_PPI_CPENDR0_EL1 = 50796,
+ ICC_PPI_CPENDR1_EL1 = 50797,
+ ICC_PPI_SPENDR0_EL1 = 50798,
+ ICC_PPI_SPENDR1_EL1 = 50799,
+ ICC_PPI_PRIORITYR0_EL1 = 50800,
+ ICC_PPI_PRIORITYR1_EL1 = 50801,
+ ICC_PPI_PRIORITYR2_EL1 = 50802,
+ ICC_PPI_PRIORITYR3_EL1 = 50803,
+ ICC_PPI_PRIORITYR4_EL1 = 50804,
+ ICC_PPI_PRIORITYR5_EL1 = 50805,
+ ICC_PPI_PRIORITYR6_EL1 = 50806,
+ ICC_PPI_PRIORITYR7_EL1 = 50807,
+ ICC_PPI_PRIORITYR8_EL1 = 50808,
+ ICC_PPI_PRIORITYR9_EL1 = 50809,
+ ICC_PPI_PRIORITYR10_EL1 = 50810,
+ ICC_PPI_PRIORITYR11_EL1 = 50811,
+ ICC_PPI_PRIORITYR12_EL1 = 50812,
+ ICC_PPI_PRIORITYR13_EL1 = 50813,
+ ICC_PPI_PRIORITYR14_EL1 = 50814,
+ ICC_PPI_PRIORITYR15_EL1 = 50815,
+ TPIDR3_EL1 = 50816,
CONTEXTIDR_EL1 = 50817,
RCWSMASK_EL1 = 50819,
TPIDR_EL1 = 50820,
@@ -1693,12 +1803,21 @@ enum class SYSREG {
GMID_EL1 = 51204,
SMIDR_EL1 = 51206,
AIDR_EL1 = 51207,
+ ICC_APR_EL1 = 52736,
+ ICC_CR0_EL1 = 52737,
+ ICC_PCR_EL1 = 52738,
+ ICC_HAPR_EL1 = 52739,
CSSELR_EL1 = 53248,
CTR_EL0 = 55297,
DCZID_EL0 = 55303,
+ TPMIN0_EL0 = 55572,
+ TPMAX0_EL0 = 55573,
+ TPMIN1_EL0 = 55574,
+ TPMAX1_EL0 = 55575,
RNDR = 55584,
RNDRRS = 55585,
GCSPR_EL0 = 55593,
+ TINDEX_EL0 = 55811,
NZCV = 55824,
DAIF = 55825,
SVCR = 55826,
@@ -1710,6 +1829,7 @@ enum class SYSREG {
FPMR = 55842,
DSPSR_EL0 = 55848,
DLR_EL0 = 55849,
+ DPOCR_EL0 = 55850,
PMICNTR_EL0 = 56480,
PMICFILTR_EL0 = 56496,
PMCR_EL0 = 56544,
@@ -1727,6 +1847,7 @@ enum class SYSREG {
PMUSERENR_EL0 = 56560,
PMOVSSET_EL0 = 56563,
POR_EL0 = 56596,
+ TPIDR3_EL0 = 56960,
TPIDR_EL0 = 56962,
TPIDRRO_EL0 = 56963,
TPIDR2_EL0 = 56965,
@@ -1879,14 +2000,29 @@ enum class SYSREG {
ACTLRMASK_EL2 = 57505,
CPTRMASK_EL2 = 57506,
SCTLR2MASK_EL2 = 57507,
+ NVHCR_EL2 = 57512,
+ NVHCRX_EL2 = 57513,
+ NVHCRMASK_EL2 = 57516,
+ NVHCRXMASK_EL2 = 57517,
+ HCRMASK_EL2 = 57518,
+ HCRXMASK_EL2 = 57519,
TTBR0_EL2 = 57600,
- VSCTLR_EL2 = 57600,
TTBR1_EL2 = 57601,
TCR_EL2 = 57602,
TCR2_EL2 = 57603,
+ IRTBRU_EL2 = 57604,
+ IRTBRP_EL2 = 57605,
+ DPOTBR0_EL2 = 57606,
+ DPOTBR1_EL2 = 57607,
VTTBR_EL2 = 57608,
VTCR_EL2 = 57610,
+ LDSTT_EL2 = 57615,
VNCR_EL2 = 57616,
+ VNCCR_EL2 = 57617,
+ TPMIN0_EL2 = 57620,
+ TPMAX0_EL2 = 57621,
+ TPMIN1_EL2 = 57622,
+ TPMAX1_EL2 = 57623,
HDBSSBR_EL2 = 57626,
HDBSSPROD_EL2 = 57627,
HACDBSBR_EL2 = 57628,
@@ -1897,6 +2033,14 @@ enum class SYSREG {
VSTCR_EL2 = 57650,
TCRMASK_EL2 = 57658,
TCR2MASK_EL2 = 57659,
+ VTLBID0_EL2 = 57664,
+ VTLBID1_EL2 = 57665,
+ VTLBID2_EL2 = 57666,
+ VTLBID3_EL2 = 57667,
+ VTLBIDOS0_EL2 = 57672,
+ VTLBIDOS1_EL2 = 57673,
+ VTLBIDOS2_EL2 = 57674,
+ VTLBIDOS3_EL2 = 57675,
DACR32_EL2 = 57728,
HDFGRTR2_EL2 = 57736,
HDFGWTR2_EL2 = 57737,
@@ -1906,8 +2050,74 @@ enum class SYSREG {
HDFGWTR_EL2 = 57741,
HAFGRTR_EL2 = 57742,
HFGITR2_EL2 = 57743,
+ FGDTP0_EL2 = 57744,
+ FGDTP1_EL2 = 57745,
+ FGDTP2_EL2 = 57746,
+ FGDTP3_EL2 = 57747,
+ FGDTP4_EL2 = 57748,
+ FGDTP5_EL2 = 57749,
+ FGDTP6_EL2 = 57750,
+ FGDTP7_EL2 = 57751,
+ FGDTP8_EL2 = 57752,
+ FGDTP9_EL2 = 57753,
+ FGDTP10_EL2 = 57754,
+ FGDTP11_EL2 = 57755,
+ FGDTP12_EL2 = 57756,
+ FGDTP13_EL2 = 57757,
+ FGDTP14_EL2 = 57758,
+ FGDTP15_EL2 = 57759,
+ FGDTU0_EL2 = 57760,
+ FGDTU1_EL2 = 57761,
+ FGDTU2_EL2 = 57762,
+ FGDTU3_EL2 = 57763,
+ FGDTU4_EL2 = 57764,
+ FGDTU5_EL2 = 57765,
+ FGDTU6_EL2 = 57766,
+ FGDTU7_EL2 = 57767,
+ FGDTU8_EL2 = 57768,
+ FGDTU9_EL2 = 57769,
+ FGDTU10_EL2 = 57770,
+ FGDTU11_EL2 = 57771,
+ FGDTU12_EL2 = 57772,
+ FGDTU13_EL2 = 57773,
+ FGDTU14_EL2 = 57774,
+ FGDTU15_EL2 = 57775,
+ AFGDTP0_EL2 = 57776,
+ AFGDTP1_EL2 = 57777,
+ AFGDTP2_EL2 = 57778,
+ AFGDTP3_EL2 = 57779,
+ AFGDTP4_EL2 = 57780,
+ AFGDTP5_EL2 = 57781,
+ AFGDTP6_EL2 = 57782,
+ AFGDTP7_EL2 = 57783,
+ AFGDTP8_EL2 = 57784,
+ AFGDTP9_EL2 = 57785,
+ AFGDTP10_EL2 = 57786,
+ AFGDTP11_EL2 = 57787,
+ AFGDTP12_EL2 = 57788,
+ AFGDTP13_EL2 = 57789,
+ AFGDTP14_EL2 = 57790,
+ AFGDTP15_EL2 = 57791,
+ AFGDTU0_EL2 = 57792,
+ AFGDTU1_EL2 = 57793,
+ AFGDTU2_EL2 = 57794,
+ AFGDTU3_EL2 = 57795,
+ AFGDTU4_EL2 = 57796,
+ AFGDTU5_EL2 = 57797,
+ AFGDTU6_EL2 = 57798,
+ AFGDTU7_EL2 = 57799,
+ AFGDTU8_EL2 = 57800,
+ AFGDTU9_EL2 = 57801,
+ AFGDTU10_EL2 = 57802,
+ AFGDTU11_EL2 = 57803,
+ AFGDTU12_EL2 = 57804,
+ AFGDTU13_EL2 = 57805,
+ AFGDTU14_EL2 = 57806,
+ AFGDTU15_EL2 = 57807,
SPSR_EL2 = 57856,
ELR_EL2 = 57857,
+ STINDEX_EL2 = 57858,
+ TINDEX_EL2 = 57859,
SP_EL1 = 57864,
SPSR_irq = 57880,
SPSR_abt = 57881,
@@ -1966,11 +2176,14 @@ enum class SYSREG {
PIR_EL2 = 58643,
POR_EL2 = 58644,
S2PIR_EL2 = 58645,
+ TTTBRU_EL2 = 58646,
+ TTTBRP_EL2 = 58647,
AMAIR_EL2 = 58648,
AMAIR2_EL2 = 58649,
MPAMHCR_EL2 = 58656,
MPAMVPMV_EL2 = 58657,
MPAM2_EL2 = 58664,
+ MPAMCTL_EL2 = 58666,
MPAMBW2_EL2 = 58668,
MPAMBWCAP_EL2 = 58670,
MPAMVPM0_EL2 = 58672,
@@ -1981,6 +2194,8 @@ enum class SYSREG {
MPAMVPM5_EL2 = 58677,
MPAMVPM6_EL2 = 58678,
MPAMVPM7_EL2 = 58679,
+ MPAMVIDCR_EL2 = 58680,
+ MPAMVIDSR_EL2 = 58681,
MECID_P0_EL2 = 58688,
MECID_A0_EL2 = 58689,
MECID_P1_EL2 = 58690,
@@ -1996,16 +2211,31 @@ enum class SYSREG {
ICH_AP0R1_EL2 = 58945,
ICH_AP0R2_EL2 = 58946,
ICH_AP0R3_EL2 = 58947,
+ ICH_APR_EL2 = 58948,
+ ICH_HPPIR_EL2 = 58949,
ICH_AP1R0_EL2 = 58952,
ICH_AP1R1_EL2 = 58953,
ICH_AP1R2_EL2 = 58954,
ICH_AP1R3_EL2 = 58955,
+ ICH_HFGRTR_EL2 = 58956,
ICC_SRE_EL2 = 58957,
+ ICH_HFGWTR_EL2 = 58958,
+ ICH_HFGITR_EL2 = 58959,
+ ICH_PPI_DVIR0_EL2 = 58960,
+ ICH_PPI_DVIR1_EL2 = 58961,
+ ICH_PPI_ENABLER0_EL2 = 58962,
+ ICH_PPI_ENABLER1_EL2 = 58963,
+ ICH_PPI_PENDR0_EL2 = 58964,
+ ICH_PPI_PENDR1_EL2 = 58965,
+ ICH_PPI_ACTIVER0_EL2 = 58966,
+ ICH_PPI_ACTIVER1_EL2 = 58967,
ICH_HCR_EL2 = 58968,
ICH_VTR_EL2 = 58969,
ICH_MISR_EL2 = 58970,
ICH_EISR_EL2 = 58971,
+ ICH_VCTLR_EL2 = 58972,
ICH_ELRSR_EL2 = 58973,
+ ICH_CONTEXTR_EL2 = 58974,
ICH_VMCR_EL2 = 58975,
ICH_LR0_EL2 = 58976,
ICH_LR1_EL2 = 58977,
@@ -2023,6 +2253,23 @@ enum class SYSREG {
ICH_LR13_EL2 = 58989,
ICH_LR14_EL2 = 58990,
ICH_LR15_EL2 = 58991,
+ ICH_PPI_PRIORITYR0_EL2 = 58992,
+ ICH_PPI_PRIORITYR1_EL2 = 58993,
+ ICH_PPI_PRIORITYR2_EL2 = 58994,
+ ICH_PPI_PRIORITYR3_EL2 = 58995,
+ ICH_PPI_PRIORITYR4_EL2 = 58996,
+ ICH_PPI_PRIORITYR5_EL2 = 58997,
+ ICH_PPI_PRIORITYR6_EL2 = 58998,
+ ICH_PPI_PRIORITYR7_EL2 = 58999,
+ ICH_PPI_PRIORITYR8_EL2 = 59000,
+ ICH_PPI_PRIORITYR9_EL2 = 59001,
+ ICH_PPI_PRIORITYR10_EL2 = 59002,
+ ICH_PPI_PRIORITYR11_EL2 = 59003,
+ ICH_PPI_PRIORITYR12_EL2 = 59004,
+ ICH_PPI_PRIORITYR13_EL2 = 59005,
+ ICH_PPI_PRIORITYR14_EL2 = 59006,
+ ICH_PPI_PRIORITYR15_EL2 = 59007,
+ TPIDR3_EL2 = 59008,
CONTEXTIDR_EL2 = 59009,
TPIDR_EL2 = 59010,
SCXTNUM_EL2 = 59015,
@@ -2092,12 +2339,87 @@ enum class SYSREG {
TTBR1_EL12 = 59649,
TCR_EL12 = 59650,
TCR2_EL12 = 59651,
+ IRTBRU_EL12 = 59652,
+ IRTBRP_EL12 = 59653,
+ DPOTBR0_EL12 = 59654,
+ DPOTBR1_EL12 = 59655,
+ LDSTT_EL12 = 59663,
+ TPMIN0_EL12 = 59668,
+ TPMAX0_EL12 = 59669,
+ TPMIN1_EL12 = 59670,
+ TPMAX1_EL12 = 59671,
GCSCR_EL12 = 59688,
GCSPR_EL12 = 59689,
TCRMASK_EL12 = 59706,
TCR2MASK_EL12 = 59707,
+ FGDTP0_EL12 = 59792,
+ FGDTP1_EL12 = 59793,
+ FGDTP2_EL12 = 59794,
+ FGDTP3_EL12 = 59795,
+ FGDTP4_EL12 = 59796,
+ FGDTP5_EL12 = 59797,
+ FGDTP6_EL12 = 59798,
+ FGDTP7_EL12 = 59799,
+ FGDTP8_EL12 = 59800,
+ FGDTP9_EL12 = 59801,
+ FGDTP10_EL12 = 59802,
+ FGDTP11_EL12 = 59803,
+ FGDTP12_EL12 = 59804,
+ FGDTP13_EL12 = 59805,
+ FGDTP14_EL12 = 59806,
+ FGDTP15_EL12 = 59807,
+ FGDTU0_EL12 = 59808,
+ FGDTU1_EL12 = 59809,
+ FGDTU2_EL12 = 59810,
+ FGDTU3_EL12 = 59811,
+ FGDTU4_EL12 = 59812,
+ FGDTU5_EL12 = 59813,
+ FGDTU6_EL12 = 59814,
+ FGDTU7_EL12 = 59815,
+ FGDTU8_EL12 = 59816,
+ FGDTU9_EL12 = 59817,
+ FGDTU10_EL12 = 59818,
+ FGDTU11_EL12 = 59819,
+ FGDTU12_EL12 = 59820,
+ FGDTU13_EL12 = 59821,
+ FGDTU14_EL12 = 59822,
+ FGDTU15_EL12 = 59823,
+ AFGDTP0_EL12 = 59824,
+ AFGDTP1_EL12 = 59825,
+ AFGDTP2_EL12 = 59826,
+ AFGDTP3_EL12 = 59827,
+ AFGDTP4_EL12 = 59828,
+ AFGDTP5_EL12 = 59829,
+ AFGDTP6_EL12 = 59830,
+ AFGDTP7_EL12 = 59831,
+ AFGDTP8_EL12 = 59832,
+ AFGDTP9_EL12 = 59833,
+ AFGDTP10_EL12 = 59834,
+ AFGDTP11_EL12 = 59835,
+ AFGDTP12_EL12 = 59836,
+ AFGDTP13_EL12 = 59837,
+ AFGDTP14_EL12 = 59838,
+ AFGDTP15_EL12 = 59839,
+ AFGDTU0_EL12 = 59840,
+ AFGDTU1_EL12 = 59841,
+ AFGDTU2_EL12 = 59842,
+ AFGDTU3_EL12 = 59843,
+ AFGDTU4_EL12 = 59844,
+ AFGDTU5_EL12 = 59845,
+ AFGDTU6_EL12 = 59846,
+ AFGDTU7_EL12 = 59847,
+ AFGDTU8_EL12 = 59848,
+ AFGDTU9_EL12 = 59849,
+ AFGDTU10_EL12 = 59850,
+ AFGDTU11_EL12 = 59851,
+ AFGDTU12_EL12 = 59852,
+ AFGDTU13_EL12 = 59853,
+ AFGDTU14_EL12 = 59854,
+ AFGDTU15_EL12 = 59855,
SPSR_EL12 = 59904,
ELR_EL12 = 59905,
+ STINDEX_EL12 = 59906,
+ TINDEX_EL12 = 59907,
AFSR0_EL12 = 60040,
AFSR1_EL12 = 60041,
ESR_EL12 = 60048,
@@ -2112,11 +2434,15 @@ enum class SYSREG {
PIRE0_EL12 = 60690,
PIR_EL12 = 60691,
POR_EL12 = 60692,
+ TTTBRU_EL12 = 60694,
+ TTTBRP_EL12 = 60695,
AMAIR_EL12 = 60696,
AMAIR2_EL12 = 60697,
MPAM1_EL12 = 60712,
+ MPAMCTL_EL12 = 60714,
MPAMBW1_EL12 = 60716,
VBAR_EL12 = 60928,
+ TPIDR3_EL12 = 61056,
CONTEXTIDR_EL12 = 61057,
SCXTNUM_EL12 = 61063,
CNTKCTL_EL12 = 61192,
@@ -2138,13 +2464,49 @@ enum class SYSREG {
MDCR_EL3 = 61593,
TTBR0_EL3 = 61696,
TCR_EL3 = 61698,
+ IRTBRP_EL3 = 61701,
+ DPOTBR0_EL3 = 61702,
GPTBR_EL3 = 61708,
GPCBW_EL3 = 61709,
GPCCR_EL3 = 61710,
GCSCR_EL3 = 61736,
GCSPR_EL3 = 61737,
+ FGDTP0_EL3 = 61840,
+ FGDTP1_EL3 = 61841,
+ FGDTP2_EL3 = 61842,
+ FGDTP3_EL3 = 61843,
+ FGDTP4_EL3 = 61844,
+ FGDTP5_EL3 = 61845,
+ FGDTP6_EL3 = 61846,
+ FGDTP7_EL3 = 61847,
+ FGDTP8_EL3 = 61848,
+ FGDTP9_EL3 = 61849,
+ FGDTP10_EL3 = 61850,
+ FGDTP11_EL3 = 61851,
+ FGDTP12_EL3 = 61852,
+ FGDTP13_EL3 = 61853,
+ FGDTP14_EL3 = 61854,
+ FGDTP15_EL3 = 61855,
+ AFGDTP0_EL3 = 61872,
+ AFGDTP1_EL3 = 61873,
+ AFGDTP2_EL3 = 61874,
+ AFGDTP3_EL3 = 61875,
+ AFGDTP4_EL3 = 61876,
+ AFGDTP5_EL3 = 61877,
+ AFGDTP6_EL3 = 61878,
+ AFGDTP7_EL3 = 61879,
+ AFGDTP8_EL3 = 61880,
+ AFGDTP9_EL3 = 61881,
+ AFGDTP10_EL3 = 61882,
+ AFGDTP11_EL3 = 61883,
+ AFGDTP12_EL3 = 61884,
+ AFGDTP13_EL3 = 61885,
+ AFGDTP14_EL3 = 61886,
+ AFGDTP15_EL3 = 61887,
SPSR_EL3 = 61952,
ELR_EL3 = 61953,
+ STINDEX_EL3 = 61954,
+ TINDEX_EL3 = 61955,
SP_EL2 = 61960,
AFSR0_EL3 = 62088,
AFSR1_EL3 = 62089,
@@ -2159,24 +2521,37 @@ enum class SYSREG {
MAIR_EL3 = 62736,
PIR_EL3 = 62739,
POR_EL3 = 62740,
+ TTTBRP_EL3 = 62743,
AMAIR_EL3 = 62744,
AMAIR2_EL3 = 62745,
MPAM3_EL3 = 62760,
+ MPAMCTL_EL3 = 62762,
MPAMBW3_EL3 = 62764,
+ MPAMVIDSR_EL3 = 62777,
MECID_RL_A_EL3 = 62801,
VBAR_EL3 = 62976,
RVBAR_EL3 = 62977,
RMR_EL3 = 62978,
VDISR_EL3 = 62985,
+ ICC_APR_EL3 = 63040,
+ ICC_PCR_EL3 = 63041,
+ ICC_DOMHPPIR_EL3 = 63042,
+ ICC_PPI_DOMAINR0_EL3 = 63044,
+ ICC_PPI_DOMAINR1_EL3 = 63045,
+ ICC_PPI_DOMAINR2_EL3 = 63046,
+ ICC_PPI_DOMAINR3_EL3 = 63047,
+ ICC_CR0_EL3 = 63048,
+ ICC_HPPIR_EL3 = 63049,
ICC_CTLR_EL3 = 63076,
ICC_SRE_EL3 = 63077,
ICC_IGRPEN1_EL3 = 63079,
+ TPIDR3_EL3 = 63104,
TPIDR_EL3 = 63106,
SCXTNUM_EL3 = 63111,
CNTPS_TVAL_EL1 = 65296,
CNTPS_CTL_EL1 = 65297,
CNTPS_CVAL_EL1 = 65298,
- NUM_TARGET_SYSREGS = 1254,
+ NUM_TARGET_SYSREGS = 1665,
};
}
}
diff --git a/deps/LIEF/include/LIEF/asm/arm.hpp b/deps/LIEF/include/LIEF/asm/arm.hpp
index 64b8faaa0ba..685af56ac7b 100644
--- a/deps/LIEF/include/LIEF/asm/arm.hpp
+++ b/deps/LIEF/include/LIEF/asm/arm.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/arm/Instruction.hpp b/deps/LIEF/include/LIEF/asm/arm/Instruction.hpp
index b8a79e700ca..8735a7cf7cf 100644
--- a/deps/LIEF/include/LIEF/asm/arm/Instruction.hpp
+++ b/deps/LIEF/include/LIEF/asm/arm/Instruction.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/arm/opcodes.hpp b/deps/LIEF/include/LIEF/asm/arm/opcodes.hpp
index 2e0efc79a95..57c852ac243 100644
--- a/deps/LIEF/include/LIEF/asm/arm/opcodes.hpp
+++ b/deps/LIEF/include/LIEF/asm/arm/opcodes.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
#ifndef LIEF_ASM_ARM_OPCODE_H
#define LIEF_ASM_ARM_OPCODE_H
-/* Generated from LLVM: 21.1.0 */
+/* Generated from LLVM: 22.1.8 */
namespace LIEF {
namespace assembly {
@@ -42,4497 +42,4505 @@ enum class OPCODE {
DBG_LABEL = 18,
REG_SEQUENCE = 19,
COPY = 20,
- BUNDLE = 21,
- LIFETIME_START = 22,
- LIFETIME_END = 23,
- PSEUDO_PROBE = 24,
- ARITH_FENCE = 25,
- STACKMAP = 26,
- FENTRY_CALL = 27,
- PATCHPOINT = 28,
- LOAD_STACK_GUARD = 29,
- PREALLOCATED_SETUP = 30,
- PREALLOCATED_ARG = 31,
- STATEPOINT = 32,
- LOCAL_ESCAPE = 33,
- FAULTING_OP = 34,
- PATCHABLE_OP = 35,
- PATCHABLE_FUNCTION_ENTER = 36,
- PATCHABLE_RET = 37,
- PATCHABLE_FUNCTION_EXIT = 38,
- PATCHABLE_TAIL_CALL = 39,
- PATCHABLE_EVENT_CALL = 40,
- PATCHABLE_TYPED_EVENT_CALL = 41,
- ICALL_BRANCH_FUNNEL = 42,
- FAKE_USE = 43,
- MEMBARRIER = 44,
- JUMP_TABLE_DEBUG_INFO = 45,
- CONVERGENCECTRL_ENTRY = 46,
- CONVERGENCECTRL_ANCHOR = 47,
- CONVERGENCECTRL_LOOP = 48,
- CONVERGENCECTRL_GLUE = 49,
- G_ASSERT_SEXT = 50,
- G_ASSERT_ZEXT = 51,
- G_ASSERT_ALIGN = 52,
- G_ADD = 53,
- G_SUB = 54,
- G_MUL = 55,
- G_SDIV = 56,
- G_UDIV = 57,
- G_SREM = 58,
- G_UREM = 59,
- G_SDIVREM = 60,
- G_UDIVREM = 61,
- G_AND = 62,
- G_OR = 63,
- G_XOR = 64,
- G_ABDS = 65,
- G_ABDU = 66,
- G_IMPLICIT_DEF = 67,
- G_PHI = 68,
- G_FRAME_INDEX = 69,
- G_GLOBAL_VALUE = 70,
- G_PTRAUTH_GLOBAL_VALUE = 71,
- G_CONSTANT_POOL = 72,
- G_EXTRACT = 73,
- G_UNMERGE_VALUES = 74,
- G_INSERT = 75,
- G_MERGE_VALUES = 76,
- G_BUILD_VECTOR = 77,
- G_BUILD_VECTOR_TRUNC = 78,
- G_CONCAT_VECTORS = 79,
- G_PTRTOINT = 80,
- G_INTTOPTR = 81,
- G_BITCAST = 82,
- G_FREEZE = 83,
- G_CONSTANT_FOLD_BARRIER = 84,
- G_INTRINSIC_FPTRUNC_ROUND = 85,
- G_INTRINSIC_TRUNC = 86,
- G_INTRINSIC_ROUND = 87,
- G_INTRINSIC_LRINT = 88,
- G_INTRINSIC_LLRINT = 89,
- G_INTRINSIC_ROUNDEVEN = 90,
- G_READCYCLECOUNTER = 91,
- G_READSTEADYCOUNTER = 92,
- G_LOAD = 93,
- G_SEXTLOAD = 94,
- G_ZEXTLOAD = 95,
- G_INDEXED_LOAD = 96,
- G_INDEXED_SEXTLOAD = 97,
- G_INDEXED_ZEXTLOAD = 98,
- G_STORE = 99,
- G_INDEXED_STORE = 100,
- G_ATOMIC_CMPXCHG_WITH_SUCCESS = 101,
- G_ATOMIC_CMPXCHG = 102,
- G_ATOMICRMW_XCHG = 103,
- G_ATOMICRMW_ADD = 104,
- G_ATOMICRMW_SUB = 105,
- G_ATOMICRMW_AND = 106,
- G_ATOMICRMW_NAND = 107,
- G_ATOMICRMW_OR = 108,
- G_ATOMICRMW_XOR = 109,
- G_ATOMICRMW_MAX = 110,
- G_ATOMICRMW_MIN = 111,
- G_ATOMICRMW_UMAX = 112,
- G_ATOMICRMW_UMIN = 113,
- G_ATOMICRMW_FADD = 114,
- G_ATOMICRMW_FSUB = 115,
- G_ATOMICRMW_FMAX = 116,
- G_ATOMICRMW_FMIN = 117,
- G_ATOMICRMW_FMAXIMUM = 118,
- G_ATOMICRMW_FMINIMUM = 119,
- G_ATOMICRMW_UINC_WRAP = 120,
- G_ATOMICRMW_UDEC_WRAP = 121,
- G_ATOMICRMW_USUB_COND = 122,
- G_ATOMICRMW_USUB_SAT = 123,
- G_FENCE = 124,
- G_PREFETCH = 125,
- G_BRCOND = 126,
- G_BRINDIRECT = 127,
- G_INVOKE_REGION_START = 128,
- G_INTRINSIC = 129,
- G_INTRINSIC_W_SIDE_EFFECTS = 130,
- G_INTRINSIC_CONVERGENT = 131,
- G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 132,
- G_ANYEXT = 133,
- G_TRUNC = 134,
- G_TRUNC_SSAT_S = 135,
- G_TRUNC_SSAT_U = 136,
- G_TRUNC_USAT_U = 137,
- G_CONSTANT = 138,
- G_FCONSTANT = 139,
- G_VASTART = 140,
- G_VAARG = 141,
- G_SEXT = 142,
- G_SEXT_INREG = 143,
- G_ZEXT = 144,
- G_SHL = 145,
- G_LSHR = 146,
- G_ASHR = 147,
- G_FSHL = 148,
- G_FSHR = 149,
- G_ROTR = 150,
- G_ROTL = 151,
- G_ICMP = 152,
- G_FCMP = 153,
- G_SCMP = 154,
- G_UCMP = 155,
- G_SELECT = 156,
- G_UADDO = 157,
- G_UADDE = 158,
- G_USUBO = 159,
- G_USUBE = 160,
- G_SADDO = 161,
- G_SADDE = 162,
- G_SSUBO = 163,
- G_SSUBE = 164,
- G_UMULO = 165,
- G_SMULO = 166,
- G_UMULH = 167,
- G_SMULH = 168,
- G_UADDSAT = 169,
- G_SADDSAT = 170,
- G_USUBSAT = 171,
- G_SSUBSAT = 172,
- G_USHLSAT = 173,
- G_SSHLSAT = 174,
- G_SMULFIX = 175,
- G_UMULFIX = 176,
- G_SMULFIXSAT = 177,
- G_UMULFIXSAT = 178,
- G_SDIVFIX = 179,
- G_UDIVFIX = 180,
- G_SDIVFIXSAT = 181,
- G_UDIVFIXSAT = 182,
- G_FADD = 183,
- G_FSUB = 184,
- G_FMUL = 185,
- G_FMA = 186,
- G_FMAD = 187,
- G_FDIV = 188,
- G_FREM = 189,
- G_FPOW = 190,
- G_FPOWI = 191,
- G_FEXP = 192,
- G_FEXP2 = 193,
- G_FEXP10 = 194,
- G_FLOG = 195,
- G_FLOG2 = 196,
- G_FLOG10 = 197,
- G_FLDEXP = 198,
- G_FFREXP = 199,
- G_FNEG = 200,
- G_FPEXT = 201,
- G_FPTRUNC = 202,
- G_FPTOSI = 203,
- G_FPTOUI = 204,
- G_SITOFP = 205,
- G_UITOFP = 206,
- G_FPTOSI_SAT = 207,
- G_FPTOUI_SAT = 208,
- G_FABS = 209,
- G_FCOPYSIGN = 210,
- G_IS_FPCLASS = 211,
- G_FCANONICALIZE = 212,
- G_FMINNUM = 213,
- G_FMAXNUM = 214,
- G_FMINNUM_IEEE = 215,
- G_FMAXNUM_IEEE = 216,
- G_FMINIMUM = 217,
- G_FMAXIMUM = 218,
- G_FMINIMUMNUM = 219,
- G_FMAXIMUMNUM = 220,
- G_GET_FPENV = 221,
- G_SET_FPENV = 222,
- G_RESET_FPENV = 223,
- G_GET_FPMODE = 224,
- G_SET_FPMODE = 225,
- G_RESET_FPMODE = 226,
- G_GET_ROUNDING = 227,
- G_PTR_ADD = 228,
- G_PTRMASK = 229,
- G_SMIN = 230,
- G_SMAX = 231,
- G_UMIN = 232,
- G_UMAX = 233,
- G_ABS = 234,
- G_LROUND = 235,
- G_LLROUND = 236,
- G_BR = 237,
- G_BRJT = 238,
- G_VSCALE = 239,
- G_INSERT_SUBVECTOR = 240,
- G_EXTRACT_SUBVECTOR = 241,
- G_INSERT_VECTOR_ELT = 242,
- G_EXTRACT_VECTOR_ELT = 243,
- G_SHUFFLE_VECTOR = 244,
- G_SPLAT_VECTOR = 245,
- G_STEP_VECTOR = 246,
- G_VECTOR_COMPRESS = 247,
- G_CTTZ = 248,
- G_CTTZ_ZERO_UNDEF = 249,
- G_CTLZ = 250,
- G_CTLZ_ZERO_UNDEF = 251,
- G_CTPOP = 252,
- G_BSWAP = 253,
- G_BITREVERSE = 254,
- G_FCEIL = 255,
- G_FCOS = 256,
- G_FSIN = 257,
- G_FSINCOS = 258,
- G_FTAN = 259,
- G_FACOS = 260,
- G_FASIN = 261,
- G_FATAN = 262,
- G_FATAN2 = 263,
- G_FCOSH = 264,
- G_FSINH = 265,
- G_FTANH = 266,
- G_FSQRT = 267,
- G_FFLOOR = 268,
- G_FRINT = 269,
- G_FNEARBYINT = 270,
- G_ADDRSPACE_CAST = 271,
- G_BLOCK_ADDR = 272,
- G_JUMP_TABLE = 273,
- G_DYN_STACKALLOC = 274,
- G_STACKSAVE = 275,
- G_STACKRESTORE = 276,
- G_STRICT_FADD = 277,
- G_STRICT_FSUB = 278,
- G_STRICT_FMUL = 279,
- G_STRICT_FDIV = 280,
- G_STRICT_FREM = 281,
- G_STRICT_FMA = 282,
- G_STRICT_FSQRT = 283,
- G_STRICT_FLDEXP = 284,
- G_READ_REGISTER = 285,
- G_WRITE_REGISTER = 286,
- G_MEMCPY = 287,
- G_MEMCPY_INLINE = 288,
- G_MEMMOVE = 289,
- G_MEMSET = 290,
- G_BZERO = 291,
- G_TRAP = 292,
- G_DEBUGTRAP = 293,
- G_UBSANTRAP = 294,
- G_VECREDUCE_SEQ_FADD = 295,
- G_VECREDUCE_SEQ_FMUL = 296,
- G_VECREDUCE_FADD = 297,
- G_VECREDUCE_FMUL = 298,
- G_VECREDUCE_FMAX = 299,
- G_VECREDUCE_FMIN = 300,
- G_VECREDUCE_FMAXIMUM = 301,
- G_VECREDUCE_FMINIMUM = 302,
- G_VECREDUCE_ADD = 303,
- G_VECREDUCE_MUL = 304,
- G_VECREDUCE_AND = 305,
- G_VECREDUCE_OR = 306,
- G_VECREDUCE_XOR = 307,
- G_VECREDUCE_SMAX = 308,
- G_VECREDUCE_SMIN = 309,
- G_VECREDUCE_UMAX = 310,
- G_VECREDUCE_UMIN = 311,
- G_SBFX = 312,
- G_UBFX = 313,
- ABS = 314,
- ADDSri = 315,
- ADDSrr = 316,
- ADDSrsi = 317,
- ADDSrsr = 318,
- ADJCALLSTACKDOWN = 319,
- ADJCALLSTACKUP = 320,
- ASRi = 321,
- ASRr = 322,
- ASRs1 = 323,
- B = 324,
- BCCZi64 = 325,
- BCCi64 = 326,
- BLX_noip = 327,
- BLX_pred_noip = 328,
- BL_PUSHLR = 329,
- BMOVPCB_CALL = 330,
- BMOVPCRX_CALL = 331,
- BR_JTadd = 332,
- BR_JTm_i12 = 333,
- BR_JTm_rs = 334,
- BR_JTr = 335,
- BX_CALL = 336,
- CMP_SWAP_16 = 337,
- CMP_SWAP_32 = 338,
- CMP_SWAP_64 = 339,
- CMP_SWAP_8 = 340,
- CONSTPOOL_ENTRY = 341,
- COPY_STRUCT_BYVAL_I32 = 342,
- ITasm = 343,
- Int_eh_sjlj_dispatchsetup = 344,
- Int_eh_sjlj_longjmp = 345,
- Int_eh_sjlj_setjmp = 346,
- Int_eh_sjlj_setjmp_nofp = 347,
- Int_eh_sjlj_setup_dispatch = 348,
- JUMPTABLE_ADDRS = 349,
- JUMPTABLE_INSTS = 350,
- JUMPTABLE_TBB = 351,
- JUMPTABLE_TBH = 352,
- LDMIA_RET = 353,
- LDRBT_POST = 354,
- LDRConstPool = 355,
- LDRHTii = 356,
- LDRLIT_ga_abs = 357,
- LDRLIT_ga_pcrel = 358,
- LDRLIT_ga_pcrel_ldr = 359,
- LDRSBTii = 360,
- LDRSHTii = 361,
- LDRT_POST = 362,
- LEApcrel = 363,
- LEApcrelJT = 364,
- LOADDUAL = 365,
- LSLi = 366,
- LSLr = 367,
- LSRi = 368,
- LSRr = 369,
- LSRs1 = 370,
- MEMCPY = 371,
- MLAv5 = 372,
- MOVCCi = 373,
- MOVCCi16 = 374,
- MOVCCi32imm = 375,
- MOVCCr = 376,
- MOVCCsi = 377,
- MOVCCsr = 378,
- MOVPCRX = 379,
- MOVTi16_ga_pcrel = 380,
- MOV_ga_pcrel = 381,
- MOV_ga_pcrel_ldr = 382,
- MOVi16_ga_pcrel = 383,
- MOVi32imm = 384,
- MQPRCopy = 385,
- MQQPRLoad = 386,
- MQQPRStore = 387,
- MQQQQPRLoad = 388,
- MQQQQPRStore = 389,
- MULv5 = 390,
- MVE_MEMCPYLOOPINST = 391,
- MVE_MEMSETLOOPINST = 392,
- MVNCCi = 393,
- PICADD = 394,
- PICLDR = 395,
- PICLDRB = 396,
- PICLDRH = 397,
- PICLDRSB = 398,
- PICLDRSH = 399,
- PICSTR = 400,
- PICSTRB = 401,
- PICSTRH = 402,
- RORi = 403,
- RORr = 404,
- RRX = 405,
- RRXi = 406,
- RSBSri = 407,
- RSBSrsi = 408,
- RSBSrsr = 409,
- SEH_EpilogEnd = 410,
- SEH_EpilogStart = 411,
- SEH_Nop = 412,
- SEH_Nop_Ret = 413,
- SEH_PrologEnd = 414,
- SEH_SaveFRegs = 415,
- SEH_SaveLR = 416,
- SEH_SaveRegs = 417,
- SEH_SaveRegs_Ret = 418,
- SEH_SaveSP = 419,
- SEH_StackAlloc = 420,
- SMLALv5 = 421,
- SMULLv5 = 422,
- SPACE = 423,
- STOREDUAL = 424,
- STRBT_POST = 425,
- STRBi_preidx = 426,
- STRBr_preidx = 427,
- STRH_preidx = 428,
- STRT_POST = 429,
- STRi_preidx = 430,
- STRr_preidx = 431,
- SUBS_PC_LR = 432,
- SUBSri = 433,
- SUBSrr = 434,
- SUBSrsi = 435,
- SUBSrsr = 436,
- SpeculationBarrierISBDSBEndBB = 437,
- SpeculationBarrierSBEndBB = 438,
- TAILJMPd = 439,
- TAILJMPr = 440,
- TAILJMPr4 = 441,
- TCRETURNdi = 442,
- TCRETURNri = 443,
- TCRETURNrinotr12 = 444,
- TPsoft = 445,
- UMLALv5 = 446,
- UMULLv5 = 447,
- VLD1LNdAsm_16 = 448,
- VLD1LNdAsm_32 = 449,
- VLD1LNdAsm_8 = 450,
- VLD1LNdWB_fixed_Asm_16 = 451,
- VLD1LNdWB_fixed_Asm_32 = 452,
- VLD1LNdWB_fixed_Asm_8 = 453,
- VLD1LNdWB_register_Asm_16 = 454,
- VLD1LNdWB_register_Asm_32 = 455,
- VLD1LNdWB_register_Asm_8 = 456,
- VLD2LNdAsm_16 = 457,
- VLD2LNdAsm_32 = 458,
- VLD2LNdAsm_8 = 459,
- VLD2LNdWB_fixed_Asm_16 = 460,
- VLD2LNdWB_fixed_Asm_32 = 461,
- VLD2LNdWB_fixed_Asm_8 = 462,
- VLD2LNdWB_register_Asm_16 = 463,
- VLD2LNdWB_register_Asm_32 = 464,
- VLD2LNdWB_register_Asm_8 = 465,
- VLD2LNqAsm_16 = 466,
- VLD2LNqAsm_32 = 467,
- VLD2LNqWB_fixed_Asm_16 = 468,
- VLD2LNqWB_fixed_Asm_32 = 469,
- VLD2LNqWB_register_Asm_16 = 470,
- VLD2LNqWB_register_Asm_32 = 471,
- VLD3DUPdAsm_16 = 472,
- VLD3DUPdAsm_32 = 473,
- VLD3DUPdAsm_8 = 474,
- VLD3DUPdWB_fixed_Asm_16 = 475,
- VLD3DUPdWB_fixed_Asm_32 = 476,
- VLD3DUPdWB_fixed_Asm_8 = 477,
- VLD3DUPdWB_register_Asm_16 = 478,
- VLD3DUPdWB_register_Asm_32 = 479,
- VLD3DUPdWB_register_Asm_8 = 480,
- VLD3DUPqAsm_16 = 481,
- VLD3DUPqAsm_32 = 482,
- VLD3DUPqAsm_8 = 483,
- VLD3DUPqWB_fixed_Asm_16 = 484,
- VLD3DUPqWB_fixed_Asm_32 = 485,
- VLD3DUPqWB_fixed_Asm_8 = 486,
- VLD3DUPqWB_register_Asm_16 = 487,
- VLD3DUPqWB_register_Asm_32 = 488,
- VLD3DUPqWB_register_Asm_8 = 489,
- VLD3LNdAsm_16 = 490,
- VLD3LNdAsm_32 = 491,
- VLD3LNdAsm_8 = 492,
- VLD3LNdWB_fixed_Asm_16 = 493,
- VLD3LNdWB_fixed_Asm_32 = 494,
- VLD3LNdWB_fixed_Asm_8 = 495,
- VLD3LNdWB_register_Asm_16 = 496,
- VLD3LNdWB_register_Asm_32 = 497,
- VLD3LNdWB_register_Asm_8 = 498,
- VLD3LNqAsm_16 = 499,
- VLD3LNqAsm_32 = 500,
- VLD3LNqWB_fixed_Asm_16 = 501,
- VLD3LNqWB_fixed_Asm_32 = 502,
- VLD3LNqWB_register_Asm_16 = 503,
- VLD3LNqWB_register_Asm_32 = 504,
- VLD3dAsm_16 = 505,
- VLD3dAsm_32 = 506,
- VLD3dAsm_8 = 507,
- VLD3dWB_fixed_Asm_16 = 508,
- VLD3dWB_fixed_Asm_32 = 509,
- VLD3dWB_fixed_Asm_8 = 510,
- VLD3dWB_register_Asm_16 = 511,
- VLD3dWB_register_Asm_32 = 512,
- VLD3dWB_register_Asm_8 = 513,
- VLD3qAsm_16 = 514,
- VLD3qAsm_32 = 515,
- VLD3qAsm_8 = 516,
- VLD3qWB_fixed_Asm_16 = 517,
- VLD3qWB_fixed_Asm_32 = 518,
- VLD3qWB_fixed_Asm_8 = 519,
- VLD3qWB_register_Asm_16 = 520,
- VLD3qWB_register_Asm_32 = 521,
- VLD3qWB_register_Asm_8 = 522,
- VLD4DUPdAsm_16 = 523,
- VLD4DUPdAsm_32 = 524,
- VLD4DUPdAsm_8 = 525,
- VLD4DUPdWB_fixed_Asm_16 = 526,
- VLD4DUPdWB_fixed_Asm_32 = 527,
- VLD4DUPdWB_fixed_Asm_8 = 528,
- VLD4DUPdWB_register_Asm_16 = 529,
- VLD4DUPdWB_register_Asm_32 = 530,
- VLD4DUPdWB_register_Asm_8 = 531,
- VLD4DUPqAsm_16 = 532,
- VLD4DUPqAsm_32 = 533,
- VLD4DUPqAsm_8 = 534,
- VLD4DUPqWB_fixed_Asm_16 = 535,
- VLD4DUPqWB_fixed_Asm_32 = 536,
- VLD4DUPqWB_fixed_Asm_8 = 537,
- VLD4DUPqWB_register_Asm_16 = 538,
- VLD4DUPqWB_register_Asm_32 = 539,
- VLD4DUPqWB_register_Asm_8 = 540,
- VLD4LNdAsm_16 = 541,
- VLD4LNdAsm_32 = 542,
- VLD4LNdAsm_8 = 543,
- VLD4LNdWB_fixed_Asm_16 = 544,
- VLD4LNdWB_fixed_Asm_32 = 545,
- VLD4LNdWB_fixed_Asm_8 = 546,
- VLD4LNdWB_register_Asm_16 = 547,
- VLD4LNdWB_register_Asm_32 = 548,
- VLD4LNdWB_register_Asm_8 = 549,
- VLD4LNqAsm_16 = 550,
- VLD4LNqAsm_32 = 551,
- VLD4LNqWB_fixed_Asm_16 = 552,
- VLD4LNqWB_fixed_Asm_32 = 553,
- VLD4LNqWB_register_Asm_16 = 554,
- VLD4LNqWB_register_Asm_32 = 555,
- VLD4dAsm_16 = 556,
- VLD4dAsm_32 = 557,
- VLD4dAsm_8 = 558,
- VLD4dWB_fixed_Asm_16 = 559,
- VLD4dWB_fixed_Asm_32 = 560,
- VLD4dWB_fixed_Asm_8 = 561,
- VLD4dWB_register_Asm_16 = 562,
- VLD4dWB_register_Asm_32 = 563,
- VLD4dWB_register_Asm_8 = 564,
- VLD4qAsm_16 = 565,
- VLD4qAsm_32 = 566,
- VLD4qAsm_8 = 567,
- VLD4qWB_fixed_Asm_16 = 568,
- VLD4qWB_fixed_Asm_32 = 569,
- VLD4qWB_fixed_Asm_8 = 570,
- VLD4qWB_register_Asm_16 = 571,
- VLD4qWB_register_Asm_32 = 572,
- VLD4qWB_register_Asm_8 = 573,
- VMOVD0 = 574,
- VMOVDcc = 575,
- VMOVHcc = 576,
- VMOVQ0 = 577,
- VMOVScc = 578,
- VST1LNdAsm_16 = 579,
- VST1LNdAsm_32 = 580,
- VST1LNdAsm_8 = 581,
- VST1LNdWB_fixed_Asm_16 = 582,
- VST1LNdWB_fixed_Asm_32 = 583,
- VST1LNdWB_fixed_Asm_8 = 584,
- VST1LNdWB_register_Asm_16 = 585,
- VST1LNdWB_register_Asm_32 = 586,
- VST1LNdWB_register_Asm_8 = 587,
- VST2LNdAsm_16 = 588,
- VST2LNdAsm_32 = 589,
- VST2LNdAsm_8 = 590,
- VST2LNdWB_fixed_Asm_16 = 591,
- VST2LNdWB_fixed_Asm_32 = 592,
- VST2LNdWB_fixed_Asm_8 = 593,
- VST2LNdWB_register_Asm_16 = 594,
- VST2LNdWB_register_Asm_32 = 595,
- VST2LNdWB_register_Asm_8 = 596,
- VST2LNqAsm_16 = 597,
- VST2LNqAsm_32 = 598,
- VST2LNqWB_fixed_Asm_16 = 599,
- VST2LNqWB_fixed_Asm_32 = 600,
- VST2LNqWB_register_Asm_16 = 601,
- VST2LNqWB_register_Asm_32 = 602,
- VST3LNdAsm_16 = 603,
- VST3LNdAsm_32 = 604,
- VST3LNdAsm_8 = 605,
- VST3LNdWB_fixed_Asm_16 = 606,
- VST3LNdWB_fixed_Asm_32 = 607,
- VST3LNdWB_fixed_Asm_8 = 608,
- VST3LNdWB_register_Asm_16 = 609,
- VST3LNdWB_register_Asm_32 = 610,
- VST3LNdWB_register_Asm_8 = 611,
- VST3LNqAsm_16 = 612,
- VST3LNqAsm_32 = 613,
- VST3LNqWB_fixed_Asm_16 = 614,
- VST3LNqWB_fixed_Asm_32 = 615,
- VST3LNqWB_register_Asm_16 = 616,
- VST3LNqWB_register_Asm_32 = 617,
- VST3dAsm_16 = 618,
- VST3dAsm_32 = 619,
- VST3dAsm_8 = 620,
- VST3dWB_fixed_Asm_16 = 621,
- VST3dWB_fixed_Asm_32 = 622,
- VST3dWB_fixed_Asm_8 = 623,
- VST3dWB_register_Asm_16 = 624,
- VST3dWB_register_Asm_32 = 625,
- VST3dWB_register_Asm_8 = 626,
- VST3qAsm_16 = 627,
- VST3qAsm_32 = 628,
- VST3qAsm_8 = 629,
- VST3qWB_fixed_Asm_16 = 630,
- VST3qWB_fixed_Asm_32 = 631,
- VST3qWB_fixed_Asm_8 = 632,
- VST3qWB_register_Asm_16 = 633,
- VST3qWB_register_Asm_32 = 634,
- VST3qWB_register_Asm_8 = 635,
- VST4LNdAsm_16 = 636,
- VST4LNdAsm_32 = 637,
- VST4LNdAsm_8 = 638,
- VST4LNdWB_fixed_Asm_16 = 639,
- VST4LNdWB_fixed_Asm_32 = 640,
- VST4LNdWB_fixed_Asm_8 = 641,
- VST4LNdWB_register_Asm_16 = 642,
- VST4LNdWB_register_Asm_32 = 643,
- VST4LNdWB_register_Asm_8 = 644,
- VST4LNqAsm_16 = 645,
- VST4LNqAsm_32 = 646,
- VST4LNqWB_fixed_Asm_16 = 647,
- VST4LNqWB_fixed_Asm_32 = 648,
- VST4LNqWB_register_Asm_16 = 649,
- VST4LNqWB_register_Asm_32 = 650,
- VST4dAsm_16 = 651,
- VST4dAsm_32 = 652,
- VST4dAsm_8 = 653,
- VST4dWB_fixed_Asm_16 = 654,
- VST4dWB_fixed_Asm_32 = 655,
- VST4dWB_fixed_Asm_8 = 656,
- VST4dWB_register_Asm_16 = 657,
- VST4dWB_register_Asm_32 = 658,
- VST4dWB_register_Asm_8 = 659,
- VST4qAsm_16 = 660,
- VST4qAsm_32 = 661,
- VST4qAsm_8 = 662,
- VST4qWB_fixed_Asm_16 = 663,
- VST4qWB_fixed_Asm_32 = 664,
- VST4qWB_fixed_Asm_8 = 665,
- VST4qWB_register_Asm_16 = 666,
- VST4qWB_register_Asm_32 = 667,
- VST4qWB_register_Asm_8 = 668,
- WIN__CHKSTK = 669,
- WIN__DBZCHK = 670,
- t2ABS = 671,
- t2ADDSri = 672,
- t2ADDSrr = 673,
- t2ADDSrs = 674,
- t2BF_LabelPseudo = 675,
- t2BR_JT = 676,
- t2CALL_BTI = 677,
- t2DoLoopStart = 678,
- t2DoLoopStartTP = 679,
- t2LDMIA_RET = 680,
- t2LDRB_OFFSET_imm = 681,
- t2LDRB_POST_imm = 682,
- t2LDRB_PRE_imm = 683,
- t2LDRBpcrel = 684,
- t2LDRConstPool = 685,
- t2LDRH_OFFSET_imm = 686,
- t2LDRH_POST_imm = 687,
- t2LDRH_PRE_imm = 688,
- t2LDRHpcrel = 689,
- t2LDRLIT_ga_pcrel = 690,
- t2LDRSB_OFFSET_imm = 691,
- t2LDRSB_POST_imm = 692,
- t2LDRSB_PRE_imm = 693,
- t2LDRSBpcrel = 694,
- t2LDRSH_OFFSET_imm = 695,
- t2LDRSH_POST_imm = 696,
- t2LDRSH_PRE_imm = 697,
- t2LDRSHpcrel = 698,
- t2LDR_POST_imm = 699,
- t2LDR_PRE_imm = 700,
- t2LDRpci_pic = 701,
- t2LDRpcrel = 702,
- t2LEApcrel = 703,
- t2LEApcrelJT = 704,
- t2LoopDec = 705,
- t2LoopEnd = 706,
- t2LoopEndDec = 707,
- t2MOVCCasr = 708,
- t2MOVCCi = 709,
- t2MOVCCi16 = 710,
- t2MOVCCi32imm = 711,
- t2MOVCClsl = 712,
- t2MOVCClsr = 713,
- t2MOVCCr = 714,
- t2MOVCCror = 715,
- t2MOVSsi = 716,
- t2MOVSsr = 717,
- t2MOVTi16_ga_pcrel = 718,
- t2MOV_ga_pcrel = 719,
- t2MOVi16_ga_pcrel = 720,
- t2MOVi32imm = 721,
- t2MOVsi = 722,
- t2MOVsr = 723,
- t2MVNCCi = 724,
- t2RSBSri = 725,
- t2RSBSrs = 726,
- t2STRB_OFFSET_imm = 727,
- t2STRB_POST_imm = 728,
- t2STRB_PRE_imm = 729,
- t2STRB_preidx = 730,
- t2STRH_OFFSET_imm = 731,
- t2STRH_POST_imm = 732,
- t2STRH_PRE_imm = 733,
- t2STRH_preidx = 734,
- t2STR_POST_imm = 735,
- t2STR_PRE_imm = 736,
- t2STR_preidx = 737,
- t2SUBSri = 738,
- t2SUBSrr = 739,
- t2SUBSrs = 740,
- t2SpeculationBarrierISBDSBEndBB = 741,
- t2SpeculationBarrierSBEndBB = 742,
- t2TBB_JT = 743,
- t2TBH_JT = 744,
- t2WhileLoopSetup = 745,
- t2WhileLoopStart = 746,
- t2WhileLoopStartLR = 747,
- t2WhileLoopStartTP = 748,
- tADCS = 749,
- tADDSi3 = 750,
- tADDSi8 = 751,
- tADDSrr = 752,
- tADDframe = 753,
- tADJCALLSTACKDOWN = 754,
- tADJCALLSTACKUP = 755,
- tBLXNS_CALL = 756,
- tBLXr_noip = 757,
- tBL_PUSHLR = 758,
- tBRIND = 759,
- tBR_JTr = 760,
- tBXNS_RET = 761,
- tBX_CALL = 762,
- tBX_RET = 763,
- tBX_RET_vararg = 764,
- tBfar = 765,
- tCMP_SWAP_16 = 766,
- tCMP_SWAP_32 = 767,
- tCMP_SWAP_8 = 768,
- tLDMIA_UPD = 769,
- tLDRConstPool = 770,
- tLDRLIT_ga_abs = 771,
- tLDRLIT_ga_pcrel = 772,
- tLDR_postidx = 773,
- tLDRpci_pic = 774,
- tLEApcrel = 775,
- tLEApcrelJT = 776,
- tLSLSri = 777,
- tMOVCCr_pseudo = 778,
- tMOVi32imm = 779,
- tPOP_RET = 780,
- tRSBS = 781,
- tSBCS = 782,
- tSUBSi3 = 783,
- tSUBSi8 = 784,
- tSUBSrr = 785,
- tTAILJMPd = 786,
- tTAILJMPdND = 787,
- tTAILJMPr = 788,
- tTBB_JT = 789,
- tTBH_JT = 790,
- tTPsoft = 791,
- ADCri = 792,
- ADCrr = 793,
- ADCrsi = 794,
- ADCrsr = 795,
- ADDri = 796,
- ADDrr = 797,
- ADDrsi = 798,
- ADDrsr = 799,
- ADR = 800,
- AESD = 801,
- AESE = 802,
- AESIMC = 803,
- AESMC = 804,
- ANDri = 805,
- ANDrr = 806,
- ANDrsi = 807,
- ANDrsr = 808,
- BF16VDOTI_VDOTD = 809,
- BF16VDOTI_VDOTQ = 810,
- BF16VDOTS_VDOTD = 811,
- BF16VDOTS_VDOTQ = 812,
- BF16_VCVT = 813,
- BF16_VCVTB = 814,
- BF16_VCVTT = 815,
- BFC = 816,
- BFI = 817,
- BICri = 818,
- BICrr = 819,
- BICrsi = 820,
- BICrsr = 821,
- BKPT = 822,
- BL = 823,
- BLX = 824,
- BLX_pred = 825,
- BLXi = 826,
- BL_pred = 827,
- BX = 828,
- BXJ = 829,
- BX_RET = 830,
- BX_pred = 831,
- Bcc = 832,
- CDE_CX1 = 833,
- CDE_CX1A = 834,
- CDE_CX1D = 835,
- CDE_CX1DA = 836,
- CDE_CX2 = 837,
- CDE_CX2A = 838,
- CDE_CX2D = 839,
- CDE_CX2DA = 840,
- CDE_CX3 = 841,
- CDE_CX3A = 842,
- CDE_CX3D = 843,
- CDE_CX3DA = 844,
- CDE_VCX1A_fpdp = 845,
- CDE_VCX1A_fpsp = 846,
- CDE_VCX1A_vec = 847,
- CDE_VCX1_fpdp = 848,
- CDE_VCX1_fpsp = 849,
- CDE_VCX1_vec = 850,
- CDE_VCX2A_fpdp = 851,
- CDE_VCX2A_fpsp = 852,
- CDE_VCX2A_vec = 853,
- CDE_VCX2_fpdp = 854,
- CDE_VCX2_fpsp = 855,
- CDE_VCX2_vec = 856,
- CDE_VCX3A_fpdp = 857,
- CDE_VCX3A_fpsp = 858,
- CDE_VCX3A_vec = 859,
- CDE_VCX3_fpdp = 860,
- CDE_VCX3_fpsp = 861,
- CDE_VCX3_vec = 862,
- CDP = 863,
- CDP2 = 864,
- CLREX = 865,
- CLZ = 866,
- CMNri = 867,
- CMNzrr = 868,
- CMNzrsi = 869,
- CMNzrsr = 870,
- CMPri = 871,
- CMPrr = 872,
- CMPrsi = 873,
- CMPrsr = 874,
- CPS1p = 875,
- CPS2p = 876,
- CPS3p = 877,
- CRC32B = 878,
- CRC32CB = 879,
- CRC32CH = 880,
- CRC32CW = 881,
- CRC32H = 882,
- CRC32W = 883,
- DBG = 884,
- DMB = 885,
- DSB = 886,
- EORri = 887,
- EORrr = 888,
- EORrsi = 889,
- EORrsr = 890,
- ERET = 891,
- FCONSTD = 892,
- FCONSTH = 893,
- FCONSTS = 894,
- FLDMXDB_UPD = 895,
- FLDMXIA = 896,
- FLDMXIA_UPD = 897,
- FMSTAT = 898,
- FSTMXDB_UPD = 899,
- FSTMXIA = 900,
- FSTMXIA_UPD = 901,
- HINT = 902,
- HLT = 903,
- HVC = 904,
- ISB = 905,
- LDA = 906,
- LDAB = 907,
- LDAEX = 908,
- LDAEXB = 909,
- LDAEXD = 910,
- LDAEXH = 911,
- LDAH = 912,
- LDC2L_OFFSET = 913,
- LDC2L_OPTION = 914,
- LDC2L_POST = 915,
- LDC2L_PRE = 916,
- LDC2_OFFSET = 917,
- LDC2_OPTION = 918,
- LDC2_POST = 919,
- LDC2_PRE = 920,
- LDCL_OFFSET = 921,
- LDCL_OPTION = 922,
- LDCL_POST = 923,
- LDCL_PRE = 924,
- LDC_OFFSET = 925,
- LDC_OPTION = 926,
- LDC_POST = 927,
- LDC_PRE = 928,
- LDMDA = 929,
- LDMDA_UPD = 930,
- LDMDB = 931,
- LDMDB_UPD = 932,
- LDMIA = 933,
- LDMIA_UPD = 934,
- LDMIB = 935,
- LDMIB_UPD = 936,
- LDRBT_POST_IMM = 937,
- LDRBT_POST_REG = 938,
- LDRB_POST_IMM = 939,
- LDRB_POST_REG = 940,
- LDRB_PRE_IMM = 941,
- LDRB_PRE_REG = 942,
- LDRBi12 = 943,
- LDRBrs = 944,
- LDRD = 945,
- LDRD_POST = 946,
- LDRD_PRE = 947,
- LDREX = 948,
- LDREXB = 949,
- LDREXD = 950,
- LDREXH = 951,
- LDRH = 952,
- LDRHTi = 953,
- LDRHTr = 954,
- LDRH_POST = 955,
- LDRH_PRE = 956,
- LDRSB = 957,
- LDRSBTi = 958,
- LDRSBTr = 959,
- LDRSB_POST = 960,
- LDRSB_PRE = 961,
- LDRSH = 962,
- LDRSHTi = 963,
- LDRSHTr = 964,
- LDRSH_POST = 965,
- LDRSH_PRE = 966,
- LDRT_POST_IMM = 967,
- LDRT_POST_REG = 968,
- LDR_POST_IMM = 969,
- LDR_POST_REG = 970,
- LDR_PRE_IMM = 971,
- LDR_PRE_REG = 972,
- LDRcp = 973,
- LDRi12 = 974,
- LDRrs = 975,
- MCR = 976,
- MCR2 = 977,
- MCRR = 978,
- MCRR2 = 979,
- MLA = 980,
- MLS = 981,
- MOVPCLR = 982,
- MOVTi16 = 983,
- MOVi = 984,
- MOVi16 = 985,
- MOVr = 986,
- MOVr_TC = 987,
- MOVsi = 988,
- MOVsr = 989,
- MRC = 990,
- MRC2 = 991,
- MRRC = 992,
- MRRC2 = 993,
- MRS = 994,
- MRSbanked = 995,
- MRSsys = 996,
- MSR = 997,
- MSRbanked = 998,
- MSRi = 999,
- MUL = 1000,
- MVE_ASRLi = 1001,
- MVE_ASRLr = 1002,
- MVE_DLSTP_16 = 1003,
- MVE_DLSTP_32 = 1004,
- MVE_DLSTP_64 = 1005,
- MVE_DLSTP_8 = 1006,
- MVE_LCTP = 1007,
- MVE_LETP = 1008,
- MVE_LSLLi = 1009,
- MVE_LSLLr = 1010,
- MVE_LSRL = 1011,
- MVE_SQRSHR = 1012,
- MVE_SQRSHRL = 1013,
- MVE_SQSHL = 1014,
- MVE_SQSHLL = 1015,
- MVE_SRSHR = 1016,
- MVE_SRSHRL = 1017,
- MVE_UQRSHL = 1018,
- MVE_UQRSHLL = 1019,
- MVE_UQSHL = 1020,
- MVE_UQSHLL = 1021,
- MVE_URSHR = 1022,
- MVE_URSHRL = 1023,
- MVE_VABAVs16 = 1024,
- MVE_VABAVs32 = 1025,
- MVE_VABAVs8 = 1026,
- MVE_VABAVu16 = 1027,
- MVE_VABAVu32 = 1028,
- MVE_VABAVu8 = 1029,
- MVE_VABDf16 = 1030,
- MVE_VABDf32 = 1031,
- MVE_VABDs16 = 1032,
- MVE_VABDs32 = 1033,
- MVE_VABDs8 = 1034,
- MVE_VABDu16 = 1035,
- MVE_VABDu32 = 1036,
- MVE_VABDu8 = 1037,
- MVE_VABSf16 = 1038,
- MVE_VABSf32 = 1039,
- MVE_VABSs16 = 1040,
- MVE_VABSs32 = 1041,
- MVE_VABSs8 = 1042,
- MVE_VADC = 1043,
- MVE_VADCI = 1044,
- MVE_VADDLVs32acc = 1045,
- MVE_VADDLVs32no_acc = 1046,
- MVE_VADDLVu32acc = 1047,
- MVE_VADDLVu32no_acc = 1048,
- MVE_VADDVs16acc = 1049,
- MVE_VADDVs16no_acc = 1050,
- MVE_VADDVs32acc = 1051,
- MVE_VADDVs32no_acc = 1052,
- MVE_VADDVs8acc = 1053,
- MVE_VADDVs8no_acc = 1054,
- MVE_VADDVu16acc = 1055,
- MVE_VADDVu16no_acc = 1056,
- MVE_VADDVu32acc = 1057,
- MVE_VADDVu32no_acc = 1058,
- MVE_VADDVu8acc = 1059,
- MVE_VADDVu8no_acc = 1060,
- MVE_VADD_qr_f16 = 1061,
- MVE_VADD_qr_f32 = 1062,
- MVE_VADD_qr_i16 = 1063,
- MVE_VADD_qr_i32 = 1064,
- MVE_VADD_qr_i8 = 1065,
- MVE_VADDf16 = 1066,
- MVE_VADDf32 = 1067,
- MVE_VADDi16 = 1068,
- MVE_VADDi32 = 1069,
- MVE_VADDi8 = 1070,
- MVE_VAND = 1071,
- MVE_VBIC = 1072,
- MVE_VBICimmi16 = 1073,
- MVE_VBICimmi32 = 1074,
- MVE_VBRSR16 = 1075,
- MVE_VBRSR32 = 1076,
- MVE_VBRSR8 = 1077,
- MVE_VCADDf16 = 1078,
- MVE_VCADDf32 = 1079,
- MVE_VCADDi16 = 1080,
- MVE_VCADDi32 = 1081,
- MVE_VCADDi8 = 1082,
- MVE_VCLSs16 = 1083,
- MVE_VCLSs32 = 1084,
- MVE_VCLSs8 = 1085,
- MVE_VCLZs16 = 1086,
- MVE_VCLZs32 = 1087,
- MVE_VCLZs8 = 1088,
- MVE_VCMLAf16 = 1089,
- MVE_VCMLAf32 = 1090,
- MVE_VCMPf16 = 1091,
- MVE_VCMPf16r = 1092,
- MVE_VCMPf32 = 1093,
- MVE_VCMPf32r = 1094,
- MVE_VCMPi16 = 1095,
- MVE_VCMPi16r = 1096,
- MVE_VCMPi32 = 1097,
- MVE_VCMPi32r = 1098,
- MVE_VCMPi8 = 1099,
- MVE_VCMPi8r = 1100,
- MVE_VCMPs16 = 1101,
- MVE_VCMPs16r = 1102,
- MVE_VCMPs32 = 1103,
- MVE_VCMPs32r = 1104,
- MVE_VCMPs8 = 1105,
- MVE_VCMPs8r = 1106,
- MVE_VCMPu16 = 1107,
- MVE_VCMPu16r = 1108,
- MVE_VCMPu32 = 1109,
- MVE_VCMPu32r = 1110,
- MVE_VCMPu8 = 1111,
- MVE_VCMPu8r = 1112,
- MVE_VCMULf16 = 1113,
- MVE_VCMULf32 = 1114,
- MVE_VCTP16 = 1115,
- MVE_VCTP32 = 1116,
- MVE_VCTP64 = 1117,
- MVE_VCTP8 = 1118,
- MVE_VCVTf16f32bh = 1119,
- MVE_VCVTf16f32th = 1120,
- MVE_VCVTf16s16_fix = 1121,
- MVE_VCVTf16s16n = 1122,
- MVE_VCVTf16u16_fix = 1123,
- MVE_VCVTf16u16n = 1124,
- MVE_VCVTf32f16bh = 1125,
- MVE_VCVTf32f16th = 1126,
- MVE_VCVTf32s32_fix = 1127,
- MVE_VCVTf32s32n = 1128,
- MVE_VCVTf32u32_fix = 1129,
- MVE_VCVTf32u32n = 1130,
- MVE_VCVTs16f16_fix = 1131,
- MVE_VCVTs16f16a = 1132,
- MVE_VCVTs16f16m = 1133,
- MVE_VCVTs16f16n = 1134,
- MVE_VCVTs16f16p = 1135,
- MVE_VCVTs16f16z = 1136,
- MVE_VCVTs32f32_fix = 1137,
- MVE_VCVTs32f32a = 1138,
- MVE_VCVTs32f32m = 1139,
- MVE_VCVTs32f32n = 1140,
- MVE_VCVTs32f32p = 1141,
- MVE_VCVTs32f32z = 1142,
- MVE_VCVTu16f16_fix = 1143,
- MVE_VCVTu16f16a = 1144,
- MVE_VCVTu16f16m = 1145,
- MVE_VCVTu16f16n = 1146,
- MVE_VCVTu16f16p = 1147,
- MVE_VCVTu16f16z = 1148,
- MVE_VCVTu32f32_fix = 1149,
- MVE_VCVTu32f32a = 1150,
- MVE_VCVTu32f32m = 1151,
- MVE_VCVTu32f32n = 1152,
- MVE_VCVTu32f32p = 1153,
- MVE_VCVTu32f32z = 1154,
- MVE_VDDUPu16 = 1155,
- MVE_VDDUPu32 = 1156,
- MVE_VDDUPu8 = 1157,
- MVE_VDUP16 = 1158,
- MVE_VDUP32 = 1159,
- MVE_VDUP8 = 1160,
- MVE_VDWDUPu16 = 1161,
- MVE_VDWDUPu32 = 1162,
- MVE_VDWDUPu8 = 1163,
- MVE_VEOR = 1164,
- MVE_VFMA_qr_Sf16 = 1165,
- MVE_VFMA_qr_Sf32 = 1166,
- MVE_VFMA_qr_f16 = 1167,
- MVE_VFMA_qr_f32 = 1168,
- MVE_VFMAf16 = 1169,
- MVE_VFMAf32 = 1170,
- MVE_VFMSf16 = 1171,
- MVE_VFMSf32 = 1172,
- MVE_VHADD_qr_s16 = 1173,
- MVE_VHADD_qr_s32 = 1174,
- MVE_VHADD_qr_s8 = 1175,
- MVE_VHADD_qr_u16 = 1176,
- MVE_VHADD_qr_u32 = 1177,
- MVE_VHADD_qr_u8 = 1178,
- MVE_VHADDs16 = 1179,
- MVE_VHADDs32 = 1180,
- MVE_VHADDs8 = 1181,
- MVE_VHADDu16 = 1182,
- MVE_VHADDu32 = 1183,
- MVE_VHADDu8 = 1184,
- MVE_VHCADDs16 = 1185,
- MVE_VHCADDs32 = 1186,
- MVE_VHCADDs8 = 1187,
- MVE_VHSUB_qr_s16 = 1188,
- MVE_VHSUB_qr_s32 = 1189,
- MVE_VHSUB_qr_s8 = 1190,
- MVE_VHSUB_qr_u16 = 1191,
- MVE_VHSUB_qr_u32 = 1192,
- MVE_VHSUB_qr_u8 = 1193,
- MVE_VHSUBs16 = 1194,
- MVE_VHSUBs32 = 1195,
- MVE_VHSUBs8 = 1196,
- MVE_VHSUBu16 = 1197,
- MVE_VHSUBu32 = 1198,
- MVE_VHSUBu8 = 1199,
- MVE_VIDUPu16 = 1200,
- MVE_VIDUPu32 = 1201,
- MVE_VIDUPu8 = 1202,
- MVE_VIWDUPu16 = 1203,
- MVE_VIWDUPu32 = 1204,
- MVE_VIWDUPu8 = 1205,
- MVE_VLD20_16 = 1206,
- MVE_VLD20_16_wb = 1207,
- MVE_VLD20_32 = 1208,
- MVE_VLD20_32_wb = 1209,
- MVE_VLD20_8 = 1210,
- MVE_VLD20_8_wb = 1211,
- MVE_VLD21_16 = 1212,
- MVE_VLD21_16_wb = 1213,
- MVE_VLD21_32 = 1214,
- MVE_VLD21_32_wb = 1215,
- MVE_VLD21_8 = 1216,
- MVE_VLD21_8_wb = 1217,
- MVE_VLD40_16 = 1218,
- MVE_VLD40_16_wb = 1219,
- MVE_VLD40_32 = 1220,
- MVE_VLD40_32_wb = 1221,
- MVE_VLD40_8 = 1222,
- MVE_VLD40_8_wb = 1223,
- MVE_VLD41_16 = 1224,
- MVE_VLD41_16_wb = 1225,
- MVE_VLD41_32 = 1226,
- MVE_VLD41_32_wb = 1227,
- MVE_VLD41_8 = 1228,
- MVE_VLD41_8_wb = 1229,
- MVE_VLD42_16 = 1230,
- MVE_VLD42_16_wb = 1231,
- MVE_VLD42_32 = 1232,
- MVE_VLD42_32_wb = 1233,
- MVE_VLD42_8 = 1234,
- MVE_VLD42_8_wb = 1235,
- MVE_VLD43_16 = 1236,
- MVE_VLD43_16_wb = 1237,
- MVE_VLD43_32 = 1238,
- MVE_VLD43_32_wb = 1239,
- MVE_VLD43_8 = 1240,
- MVE_VLD43_8_wb = 1241,
- MVE_VLDRBS16 = 1242,
- MVE_VLDRBS16_post = 1243,
- MVE_VLDRBS16_pre = 1244,
- MVE_VLDRBS16_rq = 1245,
- MVE_VLDRBS32 = 1246,
- MVE_VLDRBS32_post = 1247,
- MVE_VLDRBS32_pre = 1248,
- MVE_VLDRBS32_rq = 1249,
- MVE_VLDRBU16 = 1250,
- MVE_VLDRBU16_post = 1251,
- MVE_VLDRBU16_pre = 1252,
- MVE_VLDRBU16_rq = 1253,
- MVE_VLDRBU32 = 1254,
- MVE_VLDRBU32_post = 1255,
- MVE_VLDRBU32_pre = 1256,
- MVE_VLDRBU32_rq = 1257,
- MVE_VLDRBU8 = 1258,
- MVE_VLDRBU8_post = 1259,
- MVE_VLDRBU8_pre = 1260,
- MVE_VLDRBU8_rq = 1261,
- MVE_VLDRDU64_qi = 1262,
- MVE_VLDRDU64_qi_pre = 1263,
- MVE_VLDRDU64_rq = 1264,
- MVE_VLDRDU64_rq_u = 1265,
- MVE_VLDRHS32 = 1266,
- MVE_VLDRHS32_post = 1267,
- MVE_VLDRHS32_pre = 1268,
- MVE_VLDRHS32_rq = 1269,
- MVE_VLDRHS32_rq_u = 1270,
- MVE_VLDRHU16 = 1271,
- MVE_VLDRHU16_post = 1272,
- MVE_VLDRHU16_pre = 1273,
- MVE_VLDRHU16_rq = 1274,
- MVE_VLDRHU16_rq_u = 1275,
- MVE_VLDRHU32 = 1276,
- MVE_VLDRHU32_post = 1277,
- MVE_VLDRHU32_pre = 1278,
- MVE_VLDRHU32_rq = 1279,
- MVE_VLDRHU32_rq_u = 1280,
- MVE_VLDRWU32 = 1281,
- MVE_VLDRWU32_post = 1282,
- MVE_VLDRWU32_pre = 1283,
- MVE_VLDRWU32_qi = 1284,
- MVE_VLDRWU32_qi_pre = 1285,
- MVE_VLDRWU32_rq = 1286,
- MVE_VLDRWU32_rq_u = 1287,
- MVE_VMAXAVs16 = 1288,
- MVE_VMAXAVs32 = 1289,
- MVE_VMAXAVs8 = 1290,
- MVE_VMAXAs16 = 1291,
- MVE_VMAXAs32 = 1292,
- MVE_VMAXAs8 = 1293,
- MVE_VMAXNMAVf16 = 1294,
- MVE_VMAXNMAVf32 = 1295,
- MVE_VMAXNMAf16 = 1296,
- MVE_VMAXNMAf32 = 1297,
- MVE_VMAXNMVf16 = 1298,
- MVE_VMAXNMVf32 = 1299,
- MVE_VMAXNMf16 = 1300,
- MVE_VMAXNMf32 = 1301,
- MVE_VMAXVs16 = 1302,
- MVE_VMAXVs32 = 1303,
- MVE_VMAXVs8 = 1304,
- MVE_VMAXVu16 = 1305,
- MVE_VMAXVu32 = 1306,
- MVE_VMAXVu8 = 1307,
- MVE_VMAXs16 = 1308,
- MVE_VMAXs32 = 1309,
- MVE_VMAXs8 = 1310,
- MVE_VMAXu16 = 1311,
- MVE_VMAXu32 = 1312,
- MVE_VMAXu8 = 1313,
- MVE_VMINAVs16 = 1314,
- MVE_VMINAVs32 = 1315,
- MVE_VMINAVs8 = 1316,
- MVE_VMINAs16 = 1317,
- MVE_VMINAs32 = 1318,
- MVE_VMINAs8 = 1319,
- MVE_VMINNMAVf16 = 1320,
- MVE_VMINNMAVf32 = 1321,
- MVE_VMINNMAf16 = 1322,
- MVE_VMINNMAf32 = 1323,
- MVE_VMINNMVf16 = 1324,
- MVE_VMINNMVf32 = 1325,
- MVE_VMINNMf16 = 1326,
- MVE_VMINNMf32 = 1327,
- MVE_VMINVs16 = 1328,
- MVE_VMINVs32 = 1329,
- MVE_VMINVs8 = 1330,
- MVE_VMINVu16 = 1331,
- MVE_VMINVu32 = 1332,
- MVE_VMINVu8 = 1333,
- MVE_VMINs16 = 1334,
- MVE_VMINs32 = 1335,
- MVE_VMINs8 = 1336,
- MVE_VMINu16 = 1337,
- MVE_VMINu32 = 1338,
- MVE_VMINu8 = 1339,
- MVE_VMLADAVas16 = 1340,
- MVE_VMLADAVas32 = 1341,
- MVE_VMLADAVas8 = 1342,
- MVE_VMLADAVau16 = 1343,
- MVE_VMLADAVau32 = 1344,
- MVE_VMLADAVau8 = 1345,
- MVE_VMLADAVaxs16 = 1346,
- MVE_VMLADAVaxs32 = 1347,
- MVE_VMLADAVaxs8 = 1348,
- MVE_VMLADAVs16 = 1349,
- MVE_VMLADAVs32 = 1350,
- MVE_VMLADAVs8 = 1351,
- MVE_VMLADAVu16 = 1352,
- MVE_VMLADAVu32 = 1353,
- MVE_VMLADAVu8 = 1354,
- MVE_VMLADAVxs16 = 1355,
- MVE_VMLADAVxs32 = 1356,
- MVE_VMLADAVxs8 = 1357,
- MVE_VMLALDAVas16 = 1358,
- MVE_VMLALDAVas32 = 1359,
- MVE_VMLALDAVau16 = 1360,
- MVE_VMLALDAVau32 = 1361,
- MVE_VMLALDAVaxs16 = 1362,
- MVE_VMLALDAVaxs32 = 1363,
- MVE_VMLALDAVs16 = 1364,
- MVE_VMLALDAVs32 = 1365,
- MVE_VMLALDAVu16 = 1366,
- MVE_VMLALDAVu32 = 1367,
- MVE_VMLALDAVxs16 = 1368,
- MVE_VMLALDAVxs32 = 1369,
- MVE_VMLAS_qr_i16 = 1370,
- MVE_VMLAS_qr_i32 = 1371,
- MVE_VMLAS_qr_i8 = 1372,
- MVE_VMLA_qr_i16 = 1373,
- MVE_VMLA_qr_i32 = 1374,
- MVE_VMLA_qr_i8 = 1375,
- MVE_VMLSDAVas16 = 1376,
- MVE_VMLSDAVas32 = 1377,
- MVE_VMLSDAVas8 = 1378,
- MVE_VMLSDAVaxs16 = 1379,
- MVE_VMLSDAVaxs32 = 1380,
- MVE_VMLSDAVaxs8 = 1381,
- MVE_VMLSDAVs16 = 1382,
- MVE_VMLSDAVs32 = 1383,
- MVE_VMLSDAVs8 = 1384,
- MVE_VMLSDAVxs16 = 1385,
- MVE_VMLSDAVxs32 = 1386,
- MVE_VMLSDAVxs8 = 1387,
- MVE_VMLSLDAVas16 = 1388,
- MVE_VMLSLDAVas32 = 1389,
- MVE_VMLSLDAVaxs16 = 1390,
- MVE_VMLSLDAVaxs32 = 1391,
- MVE_VMLSLDAVs16 = 1392,
- MVE_VMLSLDAVs32 = 1393,
- MVE_VMLSLDAVxs16 = 1394,
- MVE_VMLSLDAVxs32 = 1395,
- MVE_VMOVLs16bh = 1396,
- MVE_VMOVLs16th = 1397,
- MVE_VMOVLs8bh = 1398,
- MVE_VMOVLs8th = 1399,
- MVE_VMOVLu16bh = 1400,
- MVE_VMOVLu16th = 1401,
- MVE_VMOVLu8bh = 1402,
- MVE_VMOVLu8th = 1403,
- MVE_VMOVNi16bh = 1404,
- MVE_VMOVNi16th = 1405,
- MVE_VMOVNi32bh = 1406,
- MVE_VMOVNi32th = 1407,
- MVE_VMOV_from_lane_32 = 1408,
- MVE_VMOV_from_lane_s16 = 1409,
- MVE_VMOV_from_lane_s8 = 1410,
- MVE_VMOV_from_lane_u16 = 1411,
- MVE_VMOV_from_lane_u8 = 1412,
- MVE_VMOV_q_rr = 1413,
- MVE_VMOV_rr_q = 1414,
- MVE_VMOV_to_lane_16 = 1415,
- MVE_VMOV_to_lane_32 = 1416,
- MVE_VMOV_to_lane_8 = 1417,
- MVE_VMOVimmf32 = 1418,
- MVE_VMOVimmi16 = 1419,
- MVE_VMOVimmi32 = 1420,
- MVE_VMOVimmi64 = 1421,
- MVE_VMOVimmi8 = 1422,
- MVE_VMULHs16 = 1423,
- MVE_VMULHs32 = 1424,
- MVE_VMULHs8 = 1425,
- MVE_VMULHu16 = 1426,
- MVE_VMULHu32 = 1427,
- MVE_VMULHu8 = 1428,
- MVE_VMULLBp16 = 1429,
- MVE_VMULLBp8 = 1430,
- MVE_VMULLBs16 = 1431,
- MVE_VMULLBs32 = 1432,
- MVE_VMULLBs8 = 1433,
- MVE_VMULLBu16 = 1434,
- MVE_VMULLBu32 = 1435,
- MVE_VMULLBu8 = 1436,
- MVE_VMULLTp16 = 1437,
- MVE_VMULLTp8 = 1438,
- MVE_VMULLTs16 = 1439,
- MVE_VMULLTs32 = 1440,
- MVE_VMULLTs8 = 1441,
- MVE_VMULLTu16 = 1442,
- MVE_VMULLTu32 = 1443,
- MVE_VMULLTu8 = 1444,
- MVE_VMUL_qr_f16 = 1445,
- MVE_VMUL_qr_f32 = 1446,
- MVE_VMUL_qr_i16 = 1447,
- MVE_VMUL_qr_i32 = 1448,
- MVE_VMUL_qr_i8 = 1449,
- MVE_VMULf16 = 1450,
- MVE_VMULf32 = 1451,
- MVE_VMULi16 = 1452,
- MVE_VMULi32 = 1453,
- MVE_VMULi8 = 1454,
- MVE_VMVN = 1455,
- MVE_VMVNimmi16 = 1456,
- MVE_VMVNimmi32 = 1457,
- MVE_VNEGf16 = 1458,
- MVE_VNEGf32 = 1459,
- MVE_VNEGs16 = 1460,
- MVE_VNEGs32 = 1461,
- MVE_VNEGs8 = 1462,
- MVE_VORN = 1463,
- MVE_VORR = 1464,
- MVE_VORRimmi16 = 1465,
- MVE_VORRimmi32 = 1466,
- MVE_VPNOT = 1467,
- MVE_VPSEL = 1468,
- MVE_VPST = 1469,
- MVE_VPTv16i8 = 1470,
- MVE_VPTv16i8r = 1471,
- MVE_VPTv16s8 = 1472,
- MVE_VPTv16s8r = 1473,
- MVE_VPTv16u8 = 1474,
- MVE_VPTv16u8r = 1475,
- MVE_VPTv4f32 = 1476,
- MVE_VPTv4f32r = 1477,
- MVE_VPTv4i32 = 1478,
- MVE_VPTv4i32r = 1479,
- MVE_VPTv4s32 = 1480,
- MVE_VPTv4s32r = 1481,
- MVE_VPTv4u32 = 1482,
- MVE_VPTv4u32r = 1483,
- MVE_VPTv8f16 = 1484,
- MVE_VPTv8f16r = 1485,
- MVE_VPTv8i16 = 1486,
- MVE_VPTv8i16r = 1487,
- MVE_VPTv8s16 = 1488,
- MVE_VPTv8s16r = 1489,
- MVE_VPTv8u16 = 1490,
- MVE_VPTv8u16r = 1491,
- MVE_VQABSs16 = 1492,
- MVE_VQABSs32 = 1493,
- MVE_VQABSs8 = 1494,
- MVE_VQADD_qr_s16 = 1495,
- MVE_VQADD_qr_s32 = 1496,
- MVE_VQADD_qr_s8 = 1497,
- MVE_VQADD_qr_u16 = 1498,
- MVE_VQADD_qr_u32 = 1499,
- MVE_VQADD_qr_u8 = 1500,
- MVE_VQADDs16 = 1501,
- MVE_VQADDs32 = 1502,
- MVE_VQADDs8 = 1503,
- MVE_VQADDu16 = 1504,
- MVE_VQADDu32 = 1505,
- MVE_VQADDu8 = 1506,
- MVE_VQDMLADHXs16 = 1507,
- MVE_VQDMLADHXs32 = 1508,
- MVE_VQDMLADHXs8 = 1509,
- MVE_VQDMLADHs16 = 1510,
- MVE_VQDMLADHs32 = 1511,
- MVE_VQDMLADHs8 = 1512,
- MVE_VQDMLAH_qrs16 = 1513,
- MVE_VQDMLAH_qrs32 = 1514,
- MVE_VQDMLAH_qrs8 = 1515,
- MVE_VQDMLASH_qrs16 = 1516,
- MVE_VQDMLASH_qrs32 = 1517,
- MVE_VQDMLASH_qrs8 = 1518,
- MVE_VQDMLSDHXs16 = 1519,
- MVE_VQDMLSDHXs32 = 1520,
- MVE_VQDMLSDHXs8 = 1521,
- MVE_VQDMLSDHs16 = 1522,
- MVE_VQDMLSDHs32 = 1523,
- MVE_VQDMLSDHs8 = 1524,
- MVE_VQDMULH_qr_s16 = 1525,
- MVE_VQDMULH_qr_s32 = 1526,
- MVE_VQDMULH_qr_s8 = 1527,
- MVE_VQDMULHi16 = 1528,
- MVE_VQDMULHi32 = 1529,
- MVE_VQDMULHi8 = 1530,
- MVE_VQDMULL_qr_s16bh = 1531,
- MVE_VQDMULL_qr_s16th = 1532,
- MVE_VQDMULL_qr_s32bh = 1533,
- MVE_VQDMULL_qr_s32th = 1534,
- MVE_VQDMULLs16bh = 1535,
- MVE_VQDMULLs16th = 1536,
- MVE_VQDMULLs32bh = 1537,
- MVE_VQDMULLs32th = 1538,
- MVE_VQMOVNs16bh = 1539,
- MVE_VQMOVNs16th = 1540,
- MVE_VQMOVNs32bh = 1541,
- MVE_VQMOVNs32th = 1542,
- MVE_VQMOVNu16bh = 1543,
- MVE_VQMOVNu16th = 1544,
- MVE_VQMOVNu32bh = 1545,
- MVE_VQMOVNu32th = 1546,
- MVE_VQMOVUNs16bh = 1547,
- MVE_VQMOVUNs16th = 1548,
- MVE_VQMOVUNs32bh = 1549,
- MVE_VQMOVUNs32th = 1550,
- MVE_VQNEGs16 = 1551,
- MVE_VQNEGs32 = 1552,
- MVE_VQNEGs8 = 1553,
- MVE_VQRDMLADHXs16 = 1554,
- MVE_VQRDMLADHXs32 = 1555,
- MVE_VQRDMLADHXs8 = 1556,
- MVE_VQRDMLADHs16 = 1557,
- MVE_VQRDMLADHs32 = 1558,
- MVE_VQRDMLADHs8 = 1559,
- MVE_VQRDMLAH_qrs16 = 1560,
- MVE_VQRDMLAH_qrs32 = 1561,
- MVE_VQRDMLAH_qrs8 = 1562,
- MVE_VQRDMLASH_qrs16 = 1563,
- MVE_VQRDMLASH_qrs32 = 1564,
- MVE_VQRDMLASH_qrs8 = 1565,
- MVE_VQRDMLSDHXs16 = 1566,
- MVE_VQRDMLSDHXs32 = 1567,
- MVE_VQRDMLSDHXs8 = 1568,
- MVE_VQRDMLSDHs16 = 1569,
- MVE_VQRDMLSDHs32 = 1570,
- MVE_VQRDMLSDHs8 = 1571,
- MVE_VQRDMULH_qr_s16 = 1572,
- MVE_VQRDMULH_qr_s32 = 1573,
- MVE_VQRDMULH_qr_s8 = 1574,
- MVE_VQRDMULHi16 = 1575,
- MVE_VQRDMULHi32 = 1576,
- MVE_VQRDMULHi8 = 1577,
- MVE_VQRSHL_by_vecs16 = 1578,
- MVE_VQRSHL_by_vecs32 = 1579,
- MVE_VQRSHL_by_vecs8 = 1580,
- MVE_VQRSHL_by_vecu16 = 1581,
- MVE_VQRSHL_by_vecu32 = 1582,
- MVE_VQRSHL_by_vecu8 = 1583,
- MVE_VQRSHL_qrs16 = 1584,
- MVE_VQRSHL_qrs32 = 1585,
- MVE_VQRSHL_qrs8 = 1586,
- MVE_VQRSHL_qru16 = 1587,
- MVE_VQRSHL_qru32 = 1588,
- MVE_VQRSHL_qru8 = 1589,
- MVE_VQRSHRNbhs16 = 1590,
- MVE_VQRSHRNbhs32 = 1591,
- MVE_VQRSHRNbhu16 = 1592,
- MVE_VQRSHRNbhu32 = 1593,
- MVE_VQRSHRNths16 = 1594,
- MVE_VQRSHRNths32 = 1595,
- MVE_VQRSHRNthu16 = 1596,
- MVE_VQRSHRNthu32 = 1597,
- MVE_VQRSHRUNs16bh = 1598,
- MVE_VQRSHRUNs16th = 1599,
- MVE_VQRSHRUNs32bh = 1600,
- MVE_VQRSHRUNs32th = 1601,
- MVE_VQSHLU_imms16 = 1602,
- MVE_VQSHLU_imms32 = 1603,
- MVE_VQSHLU_imms8 = 1604,
- MVE_VQSHL_by_vecs16 = 1605,
- MVE_VQSHL_by_vecs32 = 1606,
- MVE_VQSHL_by_vecs8 = 1607,
- MVE_VQSHL_by_vecu16 = 1608,
- MVE_VQSHL_by_vecu32 = 1609,
- MVE_VQSHL_by_vecu8 = 1610,
- MVE_VQSHL_qrs16 = 1611,
- MVE_VQSHL_qrs32 = 1612,
- MVE_VQSHL_qrs8 = 1613,
- MVE_VQSHL_qru16 = 1614,
- MVE_VQSHL_qru32 = 1615,
- MVE_VQSHL_qru8 = 1616,
- MVE_VQSHLimms16 = 1617,
- MVE_VQSHLimms32 = 1618,
- MVE_VQSHLimms8 = 1619,
- MVE_VQSHLimmu16 = 1620,
- MVE_VQSHLimmu32 = 1621,
- MVE_VQSHLimmu8 = 1622,
- MVE_VQSHRNbhs16 = 1623,
- MVE_VQSHRNbhs32 = 1624,
- MVE_VQSHRNbhu16 = 1625,
- MVE_VQSHRNbhu32 = 1626,
- MVE_VQSHRNths16 = 1627,
- MVE_VQSHRNths32 = 1628,
- MVE_VQSHRNthu16 = 1629,
- MVE_VQSHRNthu32 = 1630,
- MVE_VQSHRUNs16bh = 1631,
- MVE_VQSHRUNs16th = 1632,
- MVE_VQSHRUNs32bh = 1633,
- MVE_VQSHRUNs32th = 1634,
- MVE_VQSUB_qr_s16 = 1635,
- MVE_VQSUB_qr_s32 = 1636,
- MVE_VQSUB_qr_s8 = 1637,
- MVE_VQSUB_qr_u16 = 1638,
- MVE_VQSUB_qr_u32 = 1639,
- MVE_VQSUB_qr_u8 = 1640,
- MVE_VQSUBs16 = 1641,
- MVE_VQSUBs32 = 1642,
- MVE_VQSUBs8 = 1643,
- MVE_VQSUBu16 = 1644,
- MVE_VQSUBu32 = 1645,
- MVE_VQSUBu8 = 1646,
- MVE_VREV16_8 = 1647,
- MVE_VREV32_16 = 1648,
- MVE_VREV32_8 = 1649,
- MVE_VREV64_16 = 1650,
- MVE_VREV64_32 = 1651,
- MVE_VREV64_8 = 1652,
- MVE_VRHADDs16 = 1653,
- MVE_VRHADDs32 = 1654,
- MVE_VRHADDs8 = 1655,
- MVE_VRHADDu16 = 1656,
- MVE_VRHADDu32 = 1657,
- MVE_VRHADDu8 = 1658,
- MVE_VRINTf16A = 1659,
- MVE_VRINTf16M = 1660,
- MVE_VRINTf16N = 1661,
- MVE_VRINTf16P = 1662,
- MVE_VRINTf16X = 1663,
- MVE_VRINTf16Z = 1664,
- MVE_VRINTf32A = 1665,
- MVE_VRINTf32M = 1666,
- MVE_VRINTf32N = 1667,
- MVE_VRINTf32P = 1668,
- MVE_VRINTf32X = 1669,
- MVE_VRINTf32Z = 1670,
- MVE_VRMLALDAVHas32 = 1671,
- MVE_VRMLALDAVHau32 = 1672,
- MVE_VRMLALDAVHaxs32 = 1673,
- MVE_VRMLALDAVHs32 = 1674,
- MVE_VRMLALDAVHu32 = 1675,
- MVE_VRMLALDAVHxs32 = 1676,
- MVE_VRMLSLDAVHas32 = 1677,
- MVE_VRMLSLDAVHaxs32 = 1678,
- MVE_VRMLSLDAVHs32 = 1679,
- MVE_VRMLSLDAVHxs32 = 1680,
- MVE_VRMULHs16 = 1681,
- MVE_VRMULHs32 = 1682,
- MVE_VRMULHs8 = 1683,
- MVE_VRMULHu16 = 1684,
- MVE_VRMULHu32 = 1685,
- MVE_VRMULHu8 = 1686,
- MVE_VRSHL_by_vecs16 = 1687,
- MVE_VRSHL_by_vecs32 = 1688,
- MVE_VRSHL_by_vecs8 = 1689,
- MVE_VRSHL_by_vecu16 = 1690,
- MVE_VRSHL_by_vecu32 = 1691,
- MVE_VRSHL_by_vecu8 = 1692,
- MVE_VRSHL_qrs16 = 1693,
- MVE_VRSHL_qrs32 = 1694,
- MVE_VRSHL_qrs8 = 1695,
- MVE_VRSHL_qru16 = 1696,
- MVE_VRSHL_qru32 = 1697,
- MVE_VRSHL_qru8 = 1698,
- MVE_VRSHRNi16bh = 1699,
- MVE_VRSHRNi16th = 1700,
- MVE_VRSHRNi32bh = 1701,
- MVE_VRSHRNi32th = 1702,
- MVE_VRSHR_imms16 = 1703,
- MVE_VRSHR_imms32 = 1704,
- MVE_VRSHR_imms8 = 1705,
- MVE_VRSHR_immu16 = 1706,
- MVE_VRSHR_immu32 = 1707,
- MVE_VRSHR_immu8 = 1708,
- MVE_VSBC = 1709,
- MVE_VSBCI = 1710,
- MVE_VSHLC = 1711,
- MVE_VSHLL_imms16bh = 1712,
- MVE_VSHLL_imms16th = 1713,
- MVE_VSHLL_imms8bh = 1714,
- MVE_VSHLL_imms8th = 1715,
- MVE_VSHLL_immu16bh = 1716,
- MVE_VSHLL_immu16th = 1717,
- MVE_VSHLL_immu8bh = 1718,
- MVE_VSHLL_immu8th = 1719,
- MVE_VSHLL_lws16bh = 1720,
- MVE_VSHLL_lws16th = 1721,
- MVE_VSHLL_lws8bh = 1722,
- MVE_VSHLL_lws8th = 1723,
- MVE_VSHLL_lwu16bh = 1724,
- MVE_VSHLL_lwu16th = 1725,
- MVE_VSHLL_lwu8bh = 1726,
- MVE_VSHLL_lwu8th = 1727,
- MVE_VSHL_by_vecs16 = 1728,
- MVE_VSHL_by_vecs32 = 1729,
- MVE_VSHL_by_vecs8 = 1730,
- MVE_VSHL_by_vecu16 = 1731,
- MVE_VSHL_by_vecu32 = 1732,
- MVE_VSHL_by_vecu8 = 1733,
- MVE_VSHL_immi16 = 1734,
- MVE_VSHL_immi32 = 1735,
- MVE_VSHL_immi8 = 1736,
- MVE_VSHL_qrs16 = 1737,
- MVE_VSHL_qrs32 = 1738,
- MVE_VSHL_qrs8 = 1739,
- MVE_VSHL_qru16 = 1740,
- MVE_VSHL_qru32 = 1741,
- MVE_VSHL_qru8 = 1742,
- MVE_VSHRNi16bh = 1743,
- MVE_VSHRNi16th = 1744,
- MVE_VSHRNi32bh = 1745,
- MVE_VSHRNi32th = 1746,
- MVE_VSHR_imms16 = 1747,
- MVE_VSHR_imms32 = 1748,
- MVE_VSHR_imms8 = 1749,
- MVE_VSHR_immu16 = 1750,
- MVE_VSHR_immu32 = 1751,
- MVE_VSHR_immu8 = 1752,
- MVE_VSLIimm16 = 1753,
- MVE_VSLIimm32 = 1754,
- MVE_VSLIimm8 = 1755,
- MVE_VSRIimm16 = 1756,
- MVE_VSRIimm32 = 1757,
- MVE_VSRIimm8 = 1758,
- MVE_VST20_16 = 1759,
- MVE_VST20_16_wb = 1760,
- MVE_VST20_32 = 1761,
- MVE_VST20_32_wb = 1762,
- MVE_VST20_8 = 1763,
- MVE_VST20_8_wb = 1764,
- MVE_VST21_16 = 1765,
- MVE_VST21_16_wb = 1766,
- MVE_VST21_32 = 1767,
- MVE_VST21_32_wb = 1768,
- MVE_VST21_8 = 1769,
- MVE_VST21_8_wb = 1770,
- MVE_VST40_16 = 1771,
- MVE_VST40_16_wb = 1772,
- MVE_VST40_32 = 1773,
- MVE_VST40_32_wb = 1774,
- MVE_VST40_8 = 1775,
- MVE_VST40_8_wb = 1776,
- MVE_VST41_16 = 1777,
- MVE_VST41_16_wb = 1778,
- MVE_VST41_32 = 1779,
- MVE_VST41_32_wb = 1780,
- MVE_VST41_8 = 1781,
- MVE_VST41_8_wb = 1782,
- MVE_VST42_16 = 1783,
- MVE_VST42_16_wb = 1784,
- MVE_VST42_32 = 1785,
- MVE_VST42_32_wb = 1786,
- MVE_VST42_8 = 1787,
- MVE_VST42_8_wb = 1788,
- MVE_VST43_16 = 1789,
- MVE_VST43_16_wb = 1790,
- MVE_VST43_32 = 1791,
- MVE_VST43_32_wb = 1792,
- MVE_VST43_8 = 1793,
- MVE_VST43_8_wb = 1794,
- MVE_VSTRB16 = 1795,
- MVE_VSTRB16_post = 1796,
- MVE_VSTRB16_pre = 1797,
- MVE_VSTRB16_rq = 1798,
- MVE_VSTRB32 = 1799,
- MVE_VSTRB32_post = 1800,
- MVE_VSTRB32_pre = 1801,
- MVE_VSTRB32_rq = 1802,
- MVE_VSTRB8_rq = 1803,
- MVE_VSTRBU8 = 1804,
- MVE_VSTRBU8_post = 1805,
- MVE_VSTRBU8_pre = 1806,
- MVE_VSTRD64_qi = 1807,
- MVE_VSTRD64_qi_pre = 1808,
- MVE_VSTRD64_rq = 1809,
- MVE_VSTRD64_rq_u = 1810,
- MVE_VSTRH16_rq = 1811,
- MVE_VSTRH16_rq_u = 1812,
- MVE_VSTRH32 = 1813,
- MVE_VSTRH32_post = 1814,
- MVE_VSTRH32_pre = 1815,
- MVE_VSTRH32_rq = 1816,
- MVE_VSTRH32_rq_u = 1817,
- MVE_VSTRHU16 = 1818,
- MVE_VSTRHU16_post = 1819,
- MVE_VSTRHU16_pre = 1820,
- MVE_VSTRW32_qi = 1821,
- MVE_VSTRW32_qi_pre = 1822,
- MVE_VSTRW32_rq = 1823,
- MVE_VSTRW32_rq_u = 1824,
- MVE_VSTRWU32 = 1825,
- MVE_VSTRWU32_post = 1826,
- MVE_VSTRWU32_pre = 1827,
- MVE_VSUB_qr_f16 = 1828,
- MVE_VSUB_qr_f32 = 1829,
- MVE_VSUB_qr_i16 = 1830,
- MVE_VSUB_qr_i32 = 1831,
- MVE_VSUB_qr_i8 = 1832,
- MVE_VSUBf16 = 1833,
- MVE_VSUBf32 = 1834,
- MVE_VSUBi16 = 1835,
- MVE_VSUBi32 = 1836,
- MVE_VSUBi8 = 1837,
- MVE_WLSTP_16 = 1838,
- MVE_WLSTP_32 = 1839,
- MVE_WLSTP_64 = 1840,
- MVE_WLSTP_8 = 1841,
- MVNi = 1842,
- MVNr = 1843,
- MVNsi = 1844,
- MVNsr = 1845,
- NEON_VMAXNMNDf = 1846,
- NEON_VMAXNMNDh = 1847,
- NEON_VMAXNMNQf = 1848,
- NEON_VMAXNMNQh = 1849,
- NEON_VMINNMNDf = 1850,
- NEON_VMINNMNDh = 1851,
- NEON_VMINNMNQf = 1852,
- NEON_VMINNMNQh = 1853,
- ORRri = 1854,
- ORRrr = 1855,
- ORRrsi = 1856,
- ORRrsr = 1857,
- PKHBT = 1858,
- PKHTB = 1859,
- PLDWi12 = 1860,
- PLDWrs = 1861,
- PLDi12 = 1862,
- PLDrs = 1863,
- PLIi12 = 1864,
- PLIrs = 1865,
- QADD = 1866,
- QADD16 = 1867,
- QADD8 = 1868,
- QASX = 1869,
- QDADD = 1870,
- QDSUB = 1871,
- QSAX = 1872,
- QSUB = 1873,
- QSUB16 = 1874,
- QSUB8 = 1875,
- RBIT = 1876,
- REV = 1877,
- REV16 = 1878,
- REVSH = 1879,
- RFEDA = 1880,
- RFEDA_UPD = 1881,
- RFEDB = 1882,
- RFEDB_UPD = 1883,
- RFEIA = 1884,
- RFEIA_UPD = 1885,
- RFEIB = 1886,
- RFEIB_UPD = 1887,
- RSBri = 1888,
- RSBrr = 1889,
- RSBrsi = 1890,
- RSBrsr = 1891,
- RSCri = 1892,
- RSCrr = 1893,
- RSCrsi = 1894,
- RSCrsr = 1895,
- SADD16 = 1896,
- SADD8 = 1897,
- SASX = 1898,
- SB = 1899,
- SBCri = 1900,
- SBCrr = 1901,
- SBCrsi = 1902,
- SBCrsr = 1903,
- SBFX = 1904,
- SDIV = 1905,
- SEL = 1906,
- SETEND = 1907,
- SETPAN = 1908,
- SHA1C = 1909,
- SHA1H = 1910,
- SHA1M = 1911,
- SHA1P = 1912,
- SHA1SU0 = 1913,
- SHA1SU1 = 1914,
- SHA256H = 1915,
- SHA256H2 = 1916,
- SHA256SU0 = 1917,
- SHA256SU1 = 1918,
- SHADD16 = 1919,
- SHADD8 = 1920,
- SHASX = 1921,
- SHSAX = 1922,
- SHSUB16 = 1923,
- SHSUB8 = 1924,
- SMC = 1925,
- SMLABB = 1926,
- SMLABT = 1927,
- SMLAD = 1928,
- SMLADX = 1929,
- SMLAL = 1930,
- SMLALBB = 1931,
- SMLALBT = 1932,
- SMLALD = 1933,
- SMLALDX = 1934,
- SMLALTB = 1935,
- SMLALTT = 1936,
- SMLATB = 1937,
- SMLATT = 1938,
- SMLAWB = 1939,
- SMLAWT = 1940,
- SMLSD = 1941,
- SMLSDX = 1942,
- SMLSLD = 1943,
- SMLSLDX = 1944,
- SMMLA = 1945,
- SMMLAR = 1946,
- SMMLS = 1947,
- SMMLSR = 1948,
- SMMUL = 1949,
- SMMULR = 1950,
- SMUAD = 1951,
- SMUADX = 1952,
- SMULBB = 1953,
- SMULBT = 1954,
- SMULL = 1955,
- SMULTB = 1956,
- SMULTT = 1957,
- SMULWB = 1958,
- SMULWT = 1959,
- SMUSD = 1960,
- SMUSDX = 1961,
- SRSDA = 1962,
- SRSDA_UPD = 1963,
- SRSDB = 1964,
- SRSDB_UPD = 1965,
- SRSIA = 1966,
- SRSIA_UPD = 1967,
- SRSIB = 1968,
- SRSIB_UPD = 1969,
- SSAT = 1970,
- SSAT16 = 1971,
- SSAX = 1972,
- SSUB16 = 1973,
- SSUB8 = 1974,
- STC2L_OFFSET = 1975,
- STC2L_OPTION = 1976,
- STC2L_POST = 1977,
- STC2L_PRE = 1978,
- STC2_OFFSET = 1979,
- STC2_OPTION = 1980,
- STC2_POST = 1981,
- STC2_PRE = 1982,
- STCL_OFFSET = 1983,
- STCL_OPTION = 1984,
- STCL_POST = 1985,
- STCL_PRE = 1986,
- STC_OFFSET = 1987,
- STC_OPTION = 1988,
- STC_POST = 1989,
- STC_PRE = 1990,
- STL = 1991,
- STLB = 1992,
- STLEX = 1993,
- STLEXB = 1994,
- STLEXD = 1995,
- STLEXH = 1996,
- STLH = 1997,
- STMDA = 1998,
- STMDA_UPD = 1999,
- STMDB = 2000,
- STMDB_UPD = 2001,
- STMIA = 2002,
- STMIA_UPD = 2003,
- STMIB = 2004,
- STMIB_UPD = 2005,
- STRBT_POST_IMM = 2006,
- STRBT_POST_REG = 2007,
- STRB_POST_IMM = 2008,
- STRB_POST_REG = 2009,
- STRB_PRE_IMM = 2010,
- STRB_PRE_REG = 2011,
- STRBi12 = 2012,
- STRBrs = 2013,
- STRD = 2014,
- STRD_POST = 2015,
- STRD_PRE = 2016,
- STREX = 2017,
- STREXB = 2018,
- STREXD = 2019,
- STREXH = 2020,
- STRH = 2021,
- STRHTi = 2022,
- STRHTr = 2023,
- STRH_POST = 2024,
- STRH_PRE = 2025,
- STRT_POST_IMM = 2026,
- STRT_POST_REG = 2027,
- STR_POST_IMM = 2028,
- STR_POST_REG = 2029,
- STR_PRE_IMM = 2030,
- STR_PRE_REG = 2031,
- STRi12 = 2032,
- STRrs = 2033,
- SUBri = 2034,
- SUBrr = 2035,
- SUBrsi = 2036,
- SUBrsr = 2037,
- SVC = 2038,
- SWP = 2039,
- SWPB = 2040,
- SXTAB = 2041,
- SXTAB16 = 2042,
- SXTAH = 2043,
- SXTB = 2044,
- SXTB16 = 2045,
- SXTH = 2046,
- TEQri = 2047,
- TEQrr = 2048,
- TEQrsi = 2049,
- TEQrsr = 2050,
- TRAP = 2051,
- TRAPNaCl = 2052,
- TSB = 2053,
- TSTri = 2054,
- TSTrr = 2055,
- TSTrsi = 2056,
- TSTrsr = 2057,
- UADD16 = 2058,
- UADD8 = 2059,
- UASX = 2060,
- UBFX = 2061,
- UDF = 2062,
- UDIV = 2063,
- UHADD16 = 2064,
- UHADD8 = 2065,
- UHASX = 2066,
- UHSAX = 2067,
- UHSUB16 = 2068,
- UHSUB8 = 2069,
- UMAAL = 2070,
- UMLAL = 2071,
- UMULL = 2072,
- UQADD16 = 2073,
- UQADD8 = 2074,
- UQASX = 2075,
- UQSAX = 2076,
- UQSUB16 = 2077,
- UQSUB8 = 2078,
- USAD8 = 2079,
- USADA8 = 2080,
- USAT = 2081,
- USAT16 = 2082,
- USAX = 2083,
- USUB16 = 2084,
- USUB8 = 2085,
- UXTAB = 2086,
- UXTAB16 = 2087,
- UXTAH = 2088,
- UXTB = 2089,
- UXTB16 = 2090,
- UXTH = 2091,
- VABALsv2i64 = 2092,
- VABALsv4i32 = 2093,
- VABALsv8i16 = 2094,
- VABALuv2i64 = 2095,
- VABALuv4i32 = 2096,
- VABALuv8i16 = 2097,
- VABAsv16i8 = 2098,
- VABAsv2i32 = 2099,
- VABAsv4i16 = 2100,
- VABAsv4i32 = 2101,
- VABAsv8i16 = 2102,
- VABAsv8i8 = 2103,
- VABAuv16i8 = 2104,
- VABAuv2i32 = 2105,
- VABAuv4i16 = 2106,
- VABAuv4i32 = 2107,
- VABAuv8i16 = 2108,
- VABAuv8i8 = 2109,
- VABDLsv2i64 = 2110,
- VABDLsv4i32 = 2111,
- VABDLsv8i16 = 2112,
- VABDLuv2i64 = 2113,
- VABDLuv4i32 = 2114,
- VABDLuv8i16 = 2115,
- VABDfd = 2116,
- VABDfq = 2117,
- VABDhd = 2118,
- VABDhq = 2119,
- VABDsv16i8 = 2120,
- VABDsv2i32 = 2121,
- VABDsv4i16 = 2122,
- VABDsv4i32 = 2123,
- VABDsv8i16 = 2124,
- VABDsv8i8 = 2125,
- VABDuv16i8 = 2126,
- VABDuv2i32 = 2127,
- VABDuv4i16 = 2128,
- VABDuv4i32 = 2129,
- VABDuv8i16 = 2130,
- VABDuv8i8 = 2131,
- VABSD = 2132,
- VABSH = 2133,
- VABSS = 2134,
- VABSfd = 2135,
- VABSfq = 2136,
- VABShd = 2137,
- VABShq = 2138,
- VABSv16i8 = 2139,
- VABSv2i32 = 2140,
- VABSv4i16 = 2141,
- VABSv4i32 = 2142,
- VABSv8i16 = 2143,
- VABSv8i8 = 2144,
- VACGEfd = 2145,
- VACGEfq = 2146,
- VACGEhd = 2147,
- VACGEhq = 2148,
- VACGTfd = 2149,
- VACGTfq = 2150,
- VACGThd = 2151,
- VACGThq = 2152,
- VADDD = 2153,
- VADDH = 2154,
- VADDHNv2i32 = 2155,
- VADDHNv4i16 = 2156,
- VADDHNv8i8 = 2157,
- VADDLsv2i64 = 2158,
- VADDLsv4i32 = 2159,
- VADDLsv8i16 = 2160,
- VADDLuv2i64 = 2161,
- VADDLuv4i32 = 2162,
- VADDLuv8i16 = 2163,
- VADDS = 2164,
- VADDWsv2i64 = 2165,
- VADDWsv4i32 = 2166,
- VADDWsv8i16 = 2167,
- VADDWuv2i64 = 2168,
- VADDWuv4i32 = 2169,
- VADDWuv8i16 = 2170,
- VADDfd = 2171,
- VADDfq = 2172,
- VADDhd = 2173,
- VADDhq = 2174,
- VADDv16i8 = 2175,
- VADDv1i64 = 2176,
- VADDv2i32 = 2177,
- VADDv2i64 = 2178,
- VADDv4i16 = 2179,
- VADDv4i32 = 2180,
- VADDv8i16 = 2181,
- VADDv8i8 = 2182,
- VANDd = 2183,
- VANDq = 2184,
- VBF16MALBQ = 2185,
- VBF16MALBQI = 2186,
- VBF16MALTQ = 2187,
- VBF16MALTQI = 2188,
- VBICd = 2189,
- VBICiv2i32 = 2190,
- VBICiv4i16 = 2191,
- VBICiv4i32 = 2192,
- VBICiv8i16 = 2193,
- VBICq = 2194,
- VBIFd = 2195,
- VBIFq = 2196,
- VBITd = 2197,
- VBITq = 2198,
- VBSLd = 2199,
- VBSLq = 2200,
- VBSPd = 2201,
- VBSPq = 2202,
- VCADDv2f32 = 2203,
- VCADDv4f16 = 2204,
- VCADDv4f32 = 2205,
- VCADDv8f16 = 2206,
- VCEQfd = 2207,
- VCEQfq = 2208,
- VCEQhd = 2209,
- VCEQhq = 2210,
- VCEQv16i8 = 2211,
- VCEQv2i32 = 2212,
- VCEQv4i16 = 2213,
- VCEQv4i32 = 2214,
- VCEQv8i16 = 2215,
- VCEQv8i8 = 2216,
- VCEQzv16i8 = 2217,
- VCEQzv2f32 = 2218,
- VCEQzv2i32 = 2219,
- VCEQzv4f16 = 2220,
- VCEQzv4f32 = 2221,
- VCEQzv4i16 = 2222,
- VCEQzv4i32 = 2223,
- VCEQzv8f16 = 2224,
- VCEQzv8i16 = 2225,
- VCEQzv8i8 = 2226,
- VCGEfd = 2227,
- VCGEfq = 2228,
- VCGEhd = 2229,
- VCGEhq = 2230,
- VCGEsv16i8 = 2231,
- VCGEsv2i32 = 2232,
- VCGEsv4i16 = 2233,
- VCGEsv4i32 = 2234,
- VCGEsv8i16 = 2235,
- VCGEsv8i8 = 2236,
- VCGEuv16i8 = 2237,
- VCGEuv2i32 = 2238,
- VCGEuv4i16 = 2239,
- VCGEuv4i32 = 2240,
- VCGEuv8i16 = 2241,
- VCGEuv8i8 = 2242,
- VCGEzv16i8 = 2243,
- VCGEzv2f32 = 2244,
- VCGEzv2i32 = 2245,
- VCGEzv4f16 = 2246,
- VCGEzv4f32 = 2247,
- VCGEzv4i16 = 2248,
- VCGEzv4i32 = 2249,
- VCGEzv8f16 = 2250,
- VCGEzv8i16 = 2251,
- VCGEzv8i8 = 2252,
- VCGTfd = 2253,
- VCGTfq = 2254,
- VCGThd = 2255,
- VCGThq = 2256,
- VCGTsv16i8 = 2257,
- VCGTsv2i32 = 2258,
- VCGTsv4i16 = 2259,
- VCGTsv4i32 = 2260,
- VCGTsv8i16 = 2261,
- VCGTsv8i8 = 2262,
- VCGTuv16i8 = 2263,
- VCGTuv2i32 = 2264,
- VCGTuv4i16 = 2265,
- VCGTuv4i32 = 2266,
- VCGTuv8i16 = 2267,
- VCGTuv8i8 = 2268,
- VCGTzv16i8 = 2269,
- VCGTzv2f32 = 2270,
- VCGTzv2i32 = 2271,
- VCGTzv4f16 = 2272,
- VCGTzv4f32 = 2273,
- VCGTzv4i16 = 2274,
- VCGTzv4i32 = 2275,
- VCGTzv8f16 = 2276,
- VCGTzv8i16 = 2277,
- VCGTzv8i8 = 2278,
- VCLEzv16i8 = 2279,
- VCLEzv2f32 = 2280,
- VCLEzv2i32 = 2281,
- VCLEzv4f16 = 2282,
- VCLEzv4f32 = 2283,
- VCLEzv4i16 = 2284,
- VCLEzv4i32 = 2285,
- VCLEzv8f16 = 2286,
- VCLEzv8i16 = 2287,
- VCLEzv8i8 = 2288,
- VCLSv16i8 = 2289,
- VCLSv2i32 = 2290,
- VCLSv4i16 = 2291,
- VCLSv4i32 = 2292,
- VCLSv8i16 = 2293,
- VCLSv8i8 = 2294,
- VCLTzv16i8 = 2295,
- VCLTzv2f32 = 2296,
- VCLTzv2i32 = 2297,
- VCLTzv4f16 = 2298,
- VCLTzv4f32 = 2299,
- VCLTzv4i16 = 2300,
- VCLTzv4i32 = 2301,
- VCLTzv8f16 = 2302,
- VCLTzv8i16 = 2303,
- VCLTzv8i8 = 2304,
- VCLZv16i8 = 2305,
- VCLZv2i32 = 2306,
- VCLZv4i16 = 2307,
- VCLZv4i32 = 2308,
- VCLZv8i16 = 2309,
- VCLZv8i8 = 2310,
- VCMLAv2f32 = 2311,
- VCMLAv2f32_indexed = 2312,
- VCMLAv4f16 = 2313,
- VCMLAv4f16_indexed = 2314,
- VCMLAv4f32 = 2315,
- VCMLAv4f32_indexed = 2316,
- VCMLAv8f16 = 2317,
- VCMLAv8f16_indexed = 2318,
- VCMPD = 2319,
- VCMPED = 2320,
- VCMPEH = 2321,
- VCMPES = 2322,
- VCMPEZD = 2323,
- VCMPEZH = 2324,
- VCMPEZS = 2325,
- VCMPH = 2326,
- VCMPS = 2327,
- VCMPZD = 2328,
- VCMPZH = 2329,
- VCMPZS = 2330,
- VCNTd = 2331,
- VCNTq = 2332,
- VCVTANSDf = 2333,
- VCVTANSDh = 2334,
- VCVTANSQf = 2335,
- VCVTANSQh = 2336,
- VCVTANUDf = 2337,
- VCVTANUDh = 2338,
- VCVTANUQf = 2339,
- VCVTANUQh = 2340,
- VCVTASD = 2341,
- VCVTASH = 2342,
- VCVTASS = 2343,
- VCVTAUD = 2344,
- VCVTAUH = 2345,
- VCVTAUS = 2346,
- VCVTBDH = 2347,
- VCVTBHD = 2348,
- VCVTBHS = 2349,
- VCVTBSH = 2350,
- VCVTDS = 2351,
- VCVTMNSDf = 2352,
- VCVTMNSDh = 2353,
- VCVTMNSQf = 2354,
- VCVTMNSQh = 2355,
- VCVTMNUDf = 2356,
- VCVTMNUDh = 2357,
- VCVTMNUQf = 2358,
- VCVTMNUQh = 2359,
- VCVTMSD = 2360,
- VCVTMSH = 2361,
- VCVTMSS = 2362,
- VCVTMUD = 2363,
- VCVTMUH = 2364,
- VCVTMUS = 2365,
- VCVTNNSDf = 2366,
- VCVTNNSDh = 2367,
- VCVTNNSQf = 2368,
- VCVTNNSQh = 2369,
- VCVTNNUDf = 2370,
- VCVTNNUDh = 2371,
- VCVTNNUQf = 2372,
- VCVTNNUQh = 2373,
- VCVTNSD = 2374,
- VCVTNSH = 2375,
- VCVTNSS = 2376,
- VCVTNUD = 2377,
- VCVTNUH = 2378,
- VCVTNUS = 2379,
- VCVTPNSDf = 2380,
- VCVTPNSDh = 2381,
- VCVTPNSQf = 2382,
- VCVTPNSQh = 2383,
- VCVTPNUDf = 2384,
- VCVTPNUDh = 2385,
- VCVTPNUQf = 2386,
- VCVTPNUQh = 2387,
- VCVTPSD = 2388,
- VCVTPSH = 2389,
- VCVTPSS = 2390,
- VCVTPUD = 2391,
- VCVTPUH = 2392,
- VCVTPUS = 2393,
- VCVTSD = 2394,
- VCVTTDH = 2395,
- VCVTTHD = 2396,
- VCVTTHS = 2397,
- VCVTTSH = 2398,
- VCVTf2h = 2399,
- VCVTf2sd = 2400,
- VCVTf2sq = 2401,
- VCVTf2ud = 2402,
- VCVTf2uq = 2403,
- VCVTf2xsd = 2404,
- VCVTf2xsq = 2405,
- VCVTf2xud = 2406,
- VCVTf2xuq = 2407,
- VCVTh2f = 2408,
- VCVTh2sd = 2409,
- VCVTh2sq = 2410,
- VCVTh2ud = 2411,
- VCVTh2uq = 2412,
- VCVTh2xsd = 2413,
- VCVTh2xsq = 2414,
- VCVTh2xud = 2415,
- VCVTh2xuq = 2416,
- VCVTs2fd = 2417,
- VCVTs2fq = 2418,
- VCVTs2hd = 2419,
- VCVTs2hq = 2420,
- VCVTu2fd = 2421,
- VCVTu2fq = 2422,
- VCVTu2hd = 2423,
- VCVTu2hq = 2424,
- VCVTxs2fd = 2425,
- VCVTxs2fq = 2426,
- VCVTxs2hd = 2427,
- VCVTxs2hq = 2428,
- VCVTxu2fd = 2429,
- VCVTxu2fq = 2430,
- VCVTxu2hd = 2431,
- VCVTxu2hq = 2432,
- VDIVD = 2433,
- VDIVH = 2434,
- VDIVS = 2435,
- VDUP16d = 2436,
- VDUP16q = 2437,
- VDUP32d = 2438,
- VDUP32q = 2439,
- VDUP8d = 2440,
- VDUP8q = 2441,
- VDUPLN16d = 2442,
- VDUPLN16q = 2443,
- VDUPLN32d = 2444,
- VDUPLN32q = 2445,
- VDUPLN8d = 2446,
- VDUPLN8q = 2447,
- VEORd = 2448,
- VEORq = 2449,
- VEXTd16 = 2450,
- VEXTd32 = 2451,
- VEXTd8 = 2452,
- VEXTq16 = 2453,
- VEXTq32 = 2454,
- VEXTq64 = 2455,
- VEXTq8 = 2456,
- VFMAD = 2457,
- VFMAH = 2458,
- VFMALD = 2459,
- VFMALDI = 2460,
- VFMALQ = 2461,
- VFMALQI = 2462,
- VFMAS = 2463,
- VFMAfd = 2464,
- VFMAfq = 2465,
- VFMAhd = 2466,
- VFMAhq = 2467,
- VFMSD = 2468,
- VFMSH = 2469,
- VFMSLD = 2470,
- VFMSLDI = 2471,
- VFMSLQ = 2472,
- VFMSLQI = 2473,
- VFMSS = 2474,
- VFMSfd = 2475,
- VFMSfq = 2476,
- VFMShd = 2477,
- VFMShq = 2478,
- VFNMAD = 2479,
- VFNMAH = 2480,
- VFNMAS = 2481,
- VFNMSD = 2482,
- VFNMSH = 2483,
- VFNMSS = 2484,
- VFP_VMAXNMD = 2485,
- VFP_VMAXNMH = 2486,
- VFP_VMAXNMS = 2487,
- VFP_VMINNMD = 2488,
- VFP_VMINNMH = 2489,
- VFP_VMINNMS = 2490,
- VGETLNi32 = 2491,
- VGETLNs16 = 2492,
- VGETLNs8 = 2493,
- VGETLNu16 = 2494,
- VGETLNu8 = 2495,
- VHADDsv16i8 = 2496,
- VHADDsv2i32 = 2497,
- VHADDsv4i16 = 2498,
- VHADDsv4i32 = 2499,
- VHADDsv8i16 = 2500,
- VHADDsv8i8 = 2501,
- VHADDuv16i8 = 2502,
- VHADDuv2i32 = 2503,
- VHADDuv4i16 = 2504,
- VHADDuv4i32 = 2505,
- VHADDuv8i16 = 2506,
- VHADDuv8i8 = 2507,
- VHSUBsv16i8 = 2508,
- VHSUBsv2i32 = 2509,
- VHSUBsv4i16 = 2510,
- VHSUBsv4i32 = 2511,
- VHSUBsv8i16 = 2512,
- VHSUBsv8i8 = 2513,
- VHSUBuv16i8 = 2514,
- VHSUBuv2i32 = 2515,
- VHSUBuv4i16 = 2516,
- VHSUBuv4i32 = 2517,
- VHSUBuv8i16 = 2518,
- VHSUBuv8i8 = 2519,
- VINSH = 2520,
- VJCVT = 2521,
- VLD1DUPd16 = 2522,
- VLD1DUPd16wb_fixed = 2523,
- VLD1DUPd16wb_register = 2524,
- VLD1DUPd32 = 2525,
- VLD1DUPd32wb_fixed = 2526,
- VLD1DUPd32wb_register = 2527,
- VLD1DUPd8 = 2528,
- VLD1DUPd8wb_fixed = 2529,
- VLD1DUPd8wb_register = 2530,
- VLD1DUPq16 = 2531,
- VLD1DUPq16wb_fixed = 2532,
- VLD1DUPq16wb_register = 2533,
- VLD1DUPq32 = 2534,
- VLD1DUPq32wb_fixed = 2535,
- VLD1DUPq32wb_register = 2536,
- VLD1DUPq8 = 2537,
- VLD1DUPq8wb_fixed = 2538,
- VLD1DUPq8wb_register = 2539,
- VLD1LNd16 = 2540,
- VLD1LNd16_UPD = 2541,
- VLD1LNd32 = 2542,
- VLD1LNd32_UPD = 2543,
- VLD1LNd8 = 2544,
- VLD1LNd8_UPD = 2545,
- VLD1LNq16Pseudo = 2546,
- VLD1LNq16Pseudo_UPD = 2547,
- VLD1LNq32Pseudo = 2548,
- VLD1LNq32Pseudo_UPD = 2549,
- VLD1LNq8Pseudo = 2550,
- VLD1LNq8Pseudo_UPD = 2551,
- VLD1d16 = 2552,
- VLD1d16Q = 2553,
- VLD1d16QPseudo = 2554,
- VLD1d16QPseudoWB_fixed = 2555,
- VLD1d16QPseudoWB_register = 2556,
- VLD1d16Qwb_fixed = 2557,
- VLD1d16Qwb_register = 2558,
- VLD1d16T = 2559,
- VLD1d16TPseudo = 2560,
- VLD1d16TPseudoWB_fixed = 2561,
- VLD1d16TPseudoWB_register = 2562,
- VLD1d16Twb_fixed = 2563,
- VLD1d16Twb_register = 2564,
- VLD1d16wb_fixed = 2565,
- VLD1d16wb_register = 2566,
- VLD1d32 = 2567,
- VLD1d32Q = 2568,
- VLD1d32QPseudo = 2569,
- VLD1d32QPseudoWB_fixed = 2570,
- VLD1d32QPseudoWB_register = 2571,
- VLD1d32Qwb_fixed = 2572,
- VLD1d32Qwb_register = 2573,
- VLD1d32T = 2574,
- VLD1d32TPseudo = 2575,
- VLD1d32TPseudoWB_fixed = 2576,
- VLD1d32TPseudoWB_register = 2577,
- VLD1d32Twb_fixed = 2578,
- VLD1d32Twb_register = 2579,
- VLD1d32wb_fixed = 2580,
- VLD1d32wb_register = 2581,
- VLD1d64 = 2582,
- VLD1d64Q = 2583,
- VLD1d64QPseudo = 2584,
- VLD1d64QPseudoWB_fixed = 2585,
- VLD1d64QPseudoWB_register = 2586,
- VLD1d64Qwb_fixed = 2587,
- VLD1d64Qwb_register = 2588,
- VLD1d64T = 2589,
- VLD1d64TPseudo = 2590,
- VLD1d64TPseudoWB_fixed = 2591,
- VLD1d64TPseudoWB_register = 2592,
- VLD1d64Twb_fixed = 2593,
- VLD1d64Twb_register = 2594,
- VLD1d64wb_fixed = 2595,
- VLD1d64wb_register = 2596,
- VLD1d8 = 2597,
- VLD1d8Q = 2598,
- VLD1d8QPseudo = 2599,
- VLD1d8QPseudoWB_fixed = 2600,
- VLD1d8QPseudoWB_register = 2601,
- VLD1d8Qwb_fixed = 2602,
- VLD1d8Qwb_register = 2603,
- VLD1d8T = 2604,
- VLD1d8TPseudo = 2605,
- VLD1d8TPseudoWB_fixed = 2606,
- VLD1d8TPseudoWB_register = 2607,
- VLD1d8Twb_fixed = 2608,
- VLD1d8Twb_register = 2609,
- VLD1d8wb_fixed = 2610,
- VLD1d8wb_register = 2611,
- VLD1q16 = 2612,
- VLD1q16HighQPseudo = 2613,
- VLD1q16HighQPseudo_UPD = 2614,
- VLD1q16HighTPseudo = 2615,
- VLD1q16HighTPseudo_UPD = 2616,
- VLD1q16LowQPseudo_UPD = 2617,
- VLD1q16LowTPseudo_UPD = 2618,
- VLD1q16wb_fixed = 2619,
- VLD1q16wb_register = 2620,
- VLD1q32 = 2621,
- VLD1q32HighQPseudo = 2622,
- VLD1q32HighQPseudo_UPD = 2623,
- VLD1q32HighTPseudo = 2624,
- VLD1q32HighTPseudo_UPD = 2625,
- VLD1q32LowQPseudo_UPD = 2626,
- VLD1q32LowTPseudo_UPD = 2627,
- VLD1q32wb_fixed = 2628,
- VLD1q32wb_register = 2629,
- VLD1q64 = 2630,
- VLD1q64HighQPseudo = 2631,
- VLD1q64HighQPseudo_UPD = 2632,
- VLD1q64HighTPseudo = 2633,
- VLD1q64HighTPseudo_UPD = 2634,
- VLD1q64LowQPseudo_UPD = 2635,
- VLD1q64LowTPseudo_UPD = 2636,
- VLD1q64wb_fixed = 2637,
- VLD1q64wb_register = 2638,
- VLD1q8 = 2639,
- VLD1q8HighQPseudo = 2640,
- VLD1q8HighQPseudo_UPD = 2641,
- VLD1q8HighTPseudo = 2642,
- VLD1q8HighTPseudo_UPD = 2643,
- VLD1q8LowQPseudo_UPD = 2644,
- VLD1q8LowTPseudo_UPD = 2645,
- VLD1q8wb_fixed = 2646,
- VLD1q8wb_register = 2647,
- VLD2DUPd16 = 2648,
- VLD2DUPd16wb_fixed = 2649,
- VLD2DUPd16wb_register = 2650,
- VLD2DUPd16x2 = 2651,
- VLD2DUPd16x2wb_fixed = 2652,
- VLD2DUPd16x2wb_register = 2653,
- VLD2DUPd32 = 2654,
- VLD2DUPd32wb_fixed = 2655,
- VLD2DUPd32wb_register = 2656,
- VLD2DUPd32x2 = 2657,
- VLD2DUPd32x2wb_fixed = 2658,
- VLD2DUPd32x2wb_register = 2659,
- VLD2DUPd8 = 2660,
- VLD2DUPd8wb_fixed = 2661,
- VLD2DUPd8wb_register = 2662,
- VLD2DUPd8x2 = 2663,
- VLD2DUPd8x2wb_fixed = 2664,
- VLD2DUPd8x2wb_register = 2665,
- VLD2DUPq16EvenPseudo = 2666,
- VLD2DUPq16OddPseudo = 2667,
- VLD2DUPq16OddPseudoWB_fixed = 2668,
- VLD2DUPq16OddPseudoWB_register = 2669,
- VLD2DUPq32EvenPseudo = 2670,
- VLD2DUPq32OddPseudo = 2671,
- VLD2DUPq32OddPseudoWB_fixed = 2672,
- VLD2DUPq32OddPseudoWB_register = 2673,
- VLD2DUPq8EvenPseudo = 2674,
- VLD2DUPq8OddPseudo = 2675,
- VLD2DUPq8OddPseudoWB_fixed = 2676,
- VLD2DUPq8OddPseudoWB_register = 2677,
- VLD2LNd16 = 2678,
- VLD2LNd16Pseudo = 2679,
- VLD2LNd16Pseudo_UPD = 2680,
- VLD2LNd16_UPD = 2681,
- VLD2LNd32 = 2682,
- VLD2LNd32Pseudo = 2683,
- VLD2LNd32Pseudo_UPD = 2684,
- VLD2LNd32_UPD = 2685,
- VLD2LNd8 = 2686,
- VLD2LNd8Pseudo = 2687,
- VLD2LNd8Pseudo_UPD = 2688,
- VLD2LNd8_UPD = 2689,
- VLD2LNq16 = 2690,
- VLD2LNq16Pseudo = 2691,
- VLD2LNq16Pseudo_UPD = 2692,
- VLD2LNq16_UPD = 2693,
- VLD2LNq32 = 2694,
- VLD2LNq32Pseudo = 2695,
- VLD2LNq32Pseudo_UPD = 2696,
- VLD2LNq32_UPD = 2697,
- VLD2b16 = 2698,
- VLD2b16wb_fixed = 2699,
- VLD2b16wb_register = 2700,
- VLD2b32 = 2701,
- VLD2b32wb_fixed = 2702,
- VLD2b32wb_register = 2703,
- VLD2b8 = 2704,
- VLD2b8wb_fixed = 2705,
- VLD2b8wb_register = 2706,
- VLD2d16 = 2707,
- VLD2d16wb_fixed = 2708,
- VLD2d16wb_register = 2709,
- VLD2d32 = 2710,
- VLD2d32wb_fixed = 2711,
- VLD2d32wb_register = 2712,
- VLD2d8 = 2713,
- VLD2d8wb_fixed = 2714,
- VLD2d8wb_register = 2715,
- VLD2q16 = 2716,
- VLD2q16Pseudo = 2717,
- VLD2q16PseudoWB_fixed = 2718,
- VLD2q16PseudoWB_register = 2719,
- VLD2q16wb_fixed = 2720,
- VLD2q16wb_register = 2721,
- VLD2q32 = 2722,
- VLD2q32Pseudo = 2723,
- VLD2q32PseudoWB_fixed = 2724,
- VLD2q32PseudoWB_register = 2725,
- VLD2q32wb_fixed = 2726,
- VLD2q32wb_register = 2727,
- VLD2q8 = 2728,
- VLD2q8Pseudo = 2729,
- VLD2q8PseudoWB_fixed = 2730,
- VLD2q8PseudoWB_register = 2731,
- VLD2q8wb_fixed = 2732,
- VLD2q8wb_register = 2733,
- VLD3DUPd16 = 2734,
- VLD3DUPd16Pseudo = 2735,
- VLD3DUPd16Pseudo_UPD = 2736,
- VLD3DUPd16_UPD = 2737,
- VLD3DUPd32 = 2738,
- VLD3DUPd32Pseudo = 2739,
- VLD3DUPd32Pseudo_UPD = 2740,
- VLD3DUPd32_UPD = 2741,
- VLD3DUPd8 = 2742,
- VLD3DUPd8Pseudo = 2743,
- VLD3DUPd8Pseudo_UPD = 2744,
- VLD3DUPd8_UPD = 2745,
- VLD3DUPq16 = 2746,
- VLD3DUPq16EvenPseudo = 2747,
- VLD3DUPq16OddPseudo = 2748,
- VLD3DUPq16OddPseudo_UPD = 2749,
- VLD3DUPq16_UPD = 2750,
- VLD3DUPq32 = 2751,
- VLD3DUPq32EvenPseudo = 2752,
- VLD3DUPq32OddPseudo = 2753,
- VLD3DUPq32OddPseudo_UPD = 2754,
- VLD3DUPq32_UPD = 2755,
- VLD3DUPq8 = 2756,
- VLD3DUPq8EvenPseudo = 2757,
- VLD3DUPq8OddPseudo = 2758,
- VLD3DUPq8OddPseudo_UPD = 2759,
- VLD3DUPq8_UPD = 2760,
- VLD3LNd16 = 2761,
- VLD3LNd16Pseudo = 2762,
- VLD3LNd16Pseudo_UPD = 2763,
- VLD3LNd16_UPD = 2764,
- VLD3LNd32 = 2765,
- VLD3LNd32Pseudo = 2766,
- VLD3LNd32Pseudo_UPD = 2767,
- VLD3LNd32_UPD = 2768,
- VLD3LNd8 = 2769,
- VLD3LNd8Pseudo = 2770,
- VLD3LNd8Pseudo_UPD = 2771,
- VLD3LNd8_UPD = 2772,
- VLD3LNq16 = 2773,
- VLD3LNq16Pseudo = 2774,
- VLD3LNq16Pseudo_UPD = 2775,
- VLD3LNq16_UPD = 2776,
- VLD3LNq32 = 2777,
- VLD3LNq32Pseudo = 2778,
- VLD3LNq32Pseudo_UPD = 2779,
- VLD3LNq32_UPD = 2780,
- VLD3d16 = 2781,
- VLD3d16Pseudo = 2782,
- VLD3d16Pseudo_UPD = 2783,
- VLD3d16_UPD = 2784,
- VLD3d32 = 2785,
- VLD3d32Pseudo = 2786,
- VLD3d32Pseudo_UPD = 2787,
- VLD3d32_UPD = 2788,
- VLD3d8 = 2789,
- VLD3d8Pseudo = 2790,
- VLD3d8Pseudo_UPD = 2791,
- VLD3d8_UPD = 2792,
- VLD3q16 = 2793,
- VLD3q16Pseudo_UPD = 2794,
- VLD3q16_UPD = 2795,
- VLD3q16oddPseudo = 2796,
- VLD3q16oddPseudo_UPD = 2797,
- VLD3q32 = 2798,
- VLD3q32Pseudo_UPD = 2799,
- VLD3q32_UPD = 2800,
- VLD3q32oddPseudo = 2801,
- VLD3q32oddPseudo_UPD = 2802,
- VLD3q8 = 2803,
- VLD3q8Pseudo_UPD = 2804,
- VLD3q8_UPD = 2805,
- VLD3q8oddPseudo = 2806,
- VLD3q8oddPseudo_UPD = 2807,
- VLD4DUPd16 = 2808,
- VLD4DUPd16Pseudo = 2809,
- VLD4DUPd16Pseudo_UPD = 2810,
- VLD4DUPd16_UPD = 2811,
- VLD4DUPd32 = 2812,
- VLD4DUPd32Pseudo = 2813,
- VLD4DUPd32Pseudo_UPD = 2814,
- VLD4DUPd32_UPD = 2815,
- VLD4DUPd8 = 2816,
- VLD4DUPd8Pseudo = 2817,
- VLD4DUPd8Pseudo_UPD = 2818,
- VLD4DUPd8_UPD = 2819,
- VLD4DUPq16 = 2820,
- VLD4DUPq16EvenPseudo = 2821,
- VLD4DUPq16OddPseudo = 2822,
- VLD4DUPq16OddPseudo_UPD = 2823,
- VLD4DUPq16_UPD = 2824,
- VLD4DUPq32 = 2825,
- VLD4DUPq32EvenPseudo = 2826,
- VLD4DUPq32OddPseudo = 2827,
- VLD4DUPq32OddPseudo_UPD = 2828,
- VLD4DUPq32_UPD = 2829,
- VLD4DUPq8 = 2830,
- VLD4DUPq8EvenPseudo = 2831,
- VLD4DUPq8OddPseudo = 2832,
- VLD4DUPq8OddPseudo_UPD = 2833,
- VLD4DUPq8_UPD = 2834,
- VLD4LNd16 = 2835,
- VLD4LNd16Pseudo = 2836,
- VLD4LNd16Pseudo_UPD = 2837,
- VLD4LNd16_UPD = 2838,
- VLD4LNd32 = 2839,
- VLD4LNd32Pseudo = 2840,
- VLD4LNd32Pseudo_UPD = 2841,
- VLD4LNd32_UPD = 2842,
- VLD4LNd8 = 2843,
- VLD4LNd8Pseudo = 2844,
- VLD4LNd8Pseudo_UPD = 2845,
- VLD4LNd8_UPD = 2846,
- VLD4LNq16 = 2847,
- VLD4LNq16Pseudo = 2848,
- VLD4LNq16Pseudo_UPD = 2849,
- VLD4LNq16_UPD = 2850,
- VLD4LNq32 = 2851,
- VLD4LNq32Pseudo = 2852,
- VLD4LNq32Pseudo_UPD = 2853,
- VLD4LNq32_UPD = 2854,
- VLD4d16 = 2855,
- VLD4d16Pseudo = 2856,
- VLD4d16Pseudo_UPD = 2857,
- VLD4d16_UPD = 2858,
- VLD4d32 = 2859,
- VLD4d32Pseudo = 2860,
- VLD4d32Pseudo_UPD = 2861,
- VLD4d32_UPD = 2862,
- VLD4d8 = 2863,
- VLD4d8Pseudo = 2864,
- VLD4d8Pseudo_UPD = 2865,
- VLD4d8_UPD = 2866,
- VLD4q16 = 2867,
- VLD4q16Pseudo_UPD = 2868,
- VLD4q16_UPD = 2869,
- VLD4q16oddPseudo = 2870,
- VLD4q16oddPseudo_UPD = 2871,
- VLD4q32 = 2872,
- VLD4q32Pseudo_UPD = 2873,
- VLD4q32_UPD = 2874,
- VLD4q32oddPseudo = 2875,
- VLD4q32oddPseudo_UPD = 2876,
- VLD4q8 = 2877,
- VLD4q8Pseudo_UPD = 2878,
- VLD4q8_UPD = 2879,
- VLD4q8oddPseudo = 2880,
- VLD4q8oddPseudo_UPD = 2881,
- VLDMDDB_UPD = 2882,
- VLDMDIA = 2883,
- VLDMDIA_UPD = 2884,
- VLDMQIA = 2885,
- VLDMSDB_UPD = 2886,
- VLDMSIA = 2887,
- VLDMSIA_UPD = 2888,
- VLDRD = 2889,
- VLDRH = 2890,
- VLDRS = 2891,
- VLDR_FPCXTNS_off = 2892,
- VLDR_FPCXTNS_post = 2893,
- VLDR_FPCXTNS_pre = 2894,
- VLDR_FPCXTS_off = 2895,
- VLDR_FPCXTS_post = 2896,
- VLDR_FPCXTS_pre = 2897,
- VLDR_FPSCR_NZCVQC_off = 2898,
- VLDR_FPSCR_NZCVQC_post = 2899,
- VLDR_FPSCR_NZCVQC_pre = 2900,
- VLDR_FPSCR_off = 2901,
- VLDR_FPSCR_post = 2902,
- VLDR_FPSCR_pre = 2903,
- VLDR_P0_off = 2904,
- VLDR_P0_post = 2905,
- VLDR_P0_pre = 2906,
- VLDR_VPR_off = 2907,
- VLDR_VPR_post = 2908,
- VLDR_VPR_pre = 2909,
- VLLDM = 2910,
- VLLDM_T2 = 2911,
- VLSTM = 2912,
- VLSTM_T2 = 2913,
- VMAXfd = 2914,
- VMAXfq = 2915,
- VMAXhd = 2916,
- VMAXhq = 2917,
- VMAXsv16i8 = 2918,
- VMAXsv2i32 = 2919,
- VMAXsv4i16 = 2920,
- VMAXsv4i32 = 2921,
- VMAXsv8i16 = 2922,
- VMAXsv8i8 = 2923,
- VMAXuv16i8 = 2924,
- VMAXuv2i32 = 2925,
- VMAXuv4i16 = 2926,
- VMAXuv4i32 = 2927,
- VMAXuv8i16 = 2928,
- VMAXuv8i8 = 2929,
- VMINfd = 2930,
- VMINfq = 2931,
- VMINhd = 2932,
- VMINhq = 2933,
- VMINsv16i8 = 2934,
- VMINsv2i32 = 2935,
- VMINsv4i16 = 2936,
- VMINsv4i32 = 2937,
- VMINsv8i16 = 2938,
- VMINsv8i8 = 2939,
- VMINuv16i8 = 2940,
- VMINuv2i32 = 2941,
- VMINuv4i16 = 2942,
- VMINuv4i32 = 2943,
- VMINuv8i16 = 2944,
- VMINuv8i8 = 2945,
- VMLAD = 2946,
- VMLAH = 2947,
- VMLALslsv2i32 = 2948,
- VMLALslsv4i16 = 2949,
- VMLALsluv2i32 = 2950,
- VMLALsluv4i16 = 2951,
- VMLALsv2i64 = 2952,
- VMLALsv4i32 = 2953,
- VMLALsv8i16 = 2954,
- VMLALuv2i64 = 2955,
- VMLALuv4i32 = 2956,
- VMLALuv8i16 = 2957,
- VMLAS = 2958,
- VMLAfd = 2959,
- VMLAfq = 2960,
- VMLAhd = 2961,
- VMLAhq = 2962,
- VMLAslfd = 2963,
- VMLAslfq = 2964,
- VMLAslhd = 2965,
- VMLAslhq = 2966,
- VMLAslv2i32 = 2967,
- VMLAslv4i16 = 2968,
- VMLAslv4i32 = 2969,
- VMLAslv8i16 = 2970,
- VMLAv16i8 = 2971,
- VMLAv2i32 = 2972,
- VMLAv4i16 = 2973,
- VMLAv4i32 = 2974,
- VMLAv8i16 = 2975,
- VMLAv8i8 = 2976,
- VMLSD = 2977,
- VMLSH = 2978,
- VMLSLslsv2i32 = 2979,
- VMLSLslsv4i16 = 2980,
- VMLSLsluv2i32 = 2981,
- VMLSLsluv4i16 = 2982,
- VMLSLsv2i64 = 2983,
- VMLSLsv4i32 = 2984,
- VMLSLsv8i16 = 2985,
- VMLSLuv2i64 = 2986,
- VMLSLuv4i32 = 2987,
- VMLSLuv8i16 = 2988,
- VMLSS = 2989,
- VMLSfd = 2990,
- VMLSfq = 2991,
- VMLShd = 2992,
- VMLShq = 2993,
- VMLSslfd = 2994,
- VMLSslfq = 2995,
- VMLSslhd = 2996,
- VMLSslhq = 2997,
- VMLSslv2i32 = 2998,
- VMLSslv4i16 = 2999,
- VMLSslv4i32 = 3000,
- VMLSslv8i16 = 3001,
- VMLSv16i8 = 3002,
- VMLSv2i32 = 3003,
- VMLSv4i16 = 3004,
- VMLSv4i32 = 3005,
- VMLSv8i16 = 3006,
- VMLSv8i8 = 3007,
- VMMLA = 3008,
- VMOVD = 3009,
- VMOVDRR = 3010,
- VMOVH = 3011,
- VMOVHR = 3012,
- VMOVLsv2i64 = 3013,
- VMOVLsv4i32 = 3014,
- VMOVLsv8i16 = 3015,
- VMOVLuv2i64 = 3016,
- VMOVLuv4i32 = 3017,
- VMOVLuv8i16 = 3018,
- VMOVNv2i32 = 3019,
- VMOVNv4i16 = 3020,
- VMOVNv8i8 = 3021,
- VMOVRH = 3022,
- VMOVRRD = 3023,
- VMOVRRS = 3024,
- VMOVRS = 3025,
- VMOVS = 3026,
- VMOVSR = 3027,
- VMOVSRR = 3028,
- VMOVv16i8 = 3029,
- VMOVv1i64 = 3030,
- VMOVv2f32 = 3031,
- VMOVv2i32 = 3032,
- VMOVv2i64 = 3033,
- VMOVv4f32 = 3034,
- VMOVv4i16 = 3035,
- VMOVv4i32 = 3036,
- VMOVv8i16 = 3037,
- VMOVv8i8 = 3038,
- VMRS = 3039,
- VMRS_FPCXTNS = 3040,
- VMRS_FPCXTS = 3041,
- VMRS_FPEXC = 3042,
- VMRS_FPINST = 3043,
- VMRS_FPINST2 = 3044,
- VMRS_FPSCR_NZCVQC = 3045,
- VMRS_FPSID = 3046,
- VMRS_MVFR0 = 3047,
- VMRS_MVFR1 = 3048,
- VMRS_MVFR2 = 3049,
- VMRS_P0 = 3050,
- VMRS_VPR = 3051,
- VMSR = 3052,
- VMSR_FPCXTNS = 3053,
- VMSR_FPCXTS = 3054,
- VMSR_FPEXC = 3055,
- VMSR_FPINST = 3056,
- VMSR_FPINST2 = 3057,
- VMSR_FPSCR_NZCVQC = 3058,
- VMSR_FPSID = 3059,
- VMSR_P0 = 3060,
- VMSR_VPR = 3061,
- VMULD = 3062,
- VMULH = 3063,
- VMULLp64 = 3064,
- VMULLp8 = 3065,
- VMULLslsv2i32 = 3066,
- VMULLslsv4i16 = 3067,
- VMULLsluv2i32 = 3068,
- VMULLsluv4i16 = 3069,
- VMULLsv2i64 = 3070,
- VMULLsv4i32 = 3071,
- VMULLsv8i16 = 3072,
- VMULLuv2i64 = 3073,
- VMULLuv4i32 = 3074,
- VMULLuv8i16 = 3075,
- VMULS = 3076,
- VMULfd = 3077,
- VMULfq = 3078,
- VMULhd = 3079,
- VMULhq = 3080,
- VMULpd = 3081,
- VMULpq = 3082,
- VMULslfd = 3083,
- VMULslfq = 3084,
- VMULslhd = 3085,
- VMULslhq = 3086,
- VMULslv2i32 = 3087,
- VMULslv4i16 = 3088,
- VMULslv4i32 = 3089,
- VMULslv8i16 = 3090,
- VMULv16i8 = 3091,
- VMULv2i32 = 3092,
- VMULv4i16 = 3093,
- VMULv4i32 = 3094,
- VMULv8i16 = 3095,
- VMULv8i8 = 3096,
- VMVNd = 3097,
- VMVNq = 3098,
- VMVNv2i32 = 3099,
- VMVNv4i16 = 3100,
- VMVNv4i32 = 3101,
- VMVNv8i16 = 3102,
- VNEGD = 3103,
- VNEGH = 3104,
- VNEGS = 3105,
- VNEGf32q = 3106,
- VNEGfd = 3107,
- VNEGhd = 3108,
- VNEGhq = 3109,
- VNEGs16d = 3110,
- VNEGs16q = 3111,
- VNEGs32d = 3112,
- VNEGs32q = 3113,
- VNEGs8d = 3114,
- VNEGs8q = 3115,
- VNMLAD = 3116,
- VNMLAH = 3117,
- VNMLAS = 3118,
- VNMLSD = 3119,
- VNMLSH = 3120,
- VNMLSS = 3121,
- VNMULD = 3122,
- VNMULH = 3123,
- VNMULS = 3124,
- VORNd = 3125,
- VORNq = 3126,
- VORRd = 3127,
- VORRiv2i32 = 3128,
- VORRiv4i16 = 3129,
- VORRiv4i32 = 3130,
- VORRiv8i16 = 3131,
- VORRq = 3132,
- VPADALsv16i8 = 3133,
- VPADALsv2i32 = 3134,
- VPADALsv4i16 = 3135,
- VPADALsv4i32 = 3136,
- VPADALsv8i16 = 3137,
- VPADALsv8i8 = 3138,
- VPADALuv16i8 = 3139,
- VPADALuv2i32 = 3140,
- VPADALuv4i16 = 3141,
- VPADALuv4i32 = 3142,
- VPADALuv8i16 = 3143,
- VPADALuv8i8 = 3144,
- VPADDLsv16i8 = 3145,
- VPADDLsv2i32 = 3146,
- VPADDLsv4i16 = 3147,
- VPADDLsv4i32 = 3148,
- VPADDLsv8i16 = 3149,
- VPADDLsv8i8 = 3150,
- VPADDLuv16i8 = 3151,
- VPADDLuv2i32 = 3152,
- VPADDLuv4i16 = 3153,
- VPADDLuv4i32 = 3154,
- VPADDLuv8i16 = 3155,
- VPADDLuv8i8 = 3156,
- VPADDf = 3157,
- VPADDh = 3158,
- VPADDi16 = 3159,
- VPADDi32 = 3160,
- VPADDi8 = 3161,
- VPMAXf = 3162,
- VPMAXh = 3163,
- VPMAXs16 = 3164,
- VPMAXs32 = 3165,
- VPMAXs8 = 3166,
- VPMAXu16 = 3167,
- VPMAXu32 = 3168,
- VPMAXu8 = 3169,
- VPMINf = 3170,
- VPMINh = 3171,
- VPMINs16 = 3172,
- VPMINs32 = 3173,
- VPMINs8 = 3174,
- VPMINu16 = 3175,
- VPMINu32 = 3176,
- VPMINu8 = 3177,
- VQABSv16i8 = 3178,
- VQABSv2i32 = 3179,
- VQABSv4i16 = 3180,
- VQABSv4i32 = 3181,
- VQABSv8i16 = 3182,
- VQABSv8i8 = 3183,
- VQADDsv16i8 = 3184,
- VQADDsv1i64 = 3185,
- VQADDsv2i32 = 3186,
- VQADDsv2i64 = 3187,
- VQADDsv4i16 = 3188,
- VQADDsv4i32 = 3189,
- VQADDsv8i16 = 3190,
- VQADDsv8i8 = 3191,
- VQADDuv16i8 = 3192,
- VQADDuv1i64 = 3193,
- VQADDuv2i32 = 3194,
- VQADDuv2i64 = 3195,
- VQADDuv4i16 = 3196,
- VQADDuv4i32 = 3197,
- VQADDuv8i16 = 3198,
- VQADDuv8i8 = 3199,
- VQDMLALslv2i32 = 3200,
- VQDMLALslv4i16 = 3201,
- VQDMLALv2i64 = 3202,
- VQDMLALv4i32 = 3203,
- VQDMLSLslv2i32 = 3204,
- VQDMLSLslv4i16 = 3205,
- VQDMLSLv2i64 = 3206,
- VQDMLSLv4i32 = 3207,
- VQDMULHslv2i32 = 3208,
- VQDMULHslv4i16 = 3209,
- VQDMULHslv4i32 = 3210,
- VQDMULHslv8i16 = 3211,
- VQDMULHv2i32 = 3212,
- VQDMULHv4i16 = 3213,
- VQDMULHv4i32 = 3214,
- VQDMULHv8i16 = 3215,
- VQDMULLslv2i32 = 3216,
- VQDMULLslv4i16 = 3217,
- VQDMULLv2i64 = 3218,
- VQDMULLv4i32 = 3219,
- VQMOVNsuv2i32 = 3220,
- VQMOVNsuv4i16 = 3221,
- VQMOVNsuv8i8 = 3222,
- VQMOVNsv2i32 = 3223,
- VQMOVNsv4i16 = 3224,
- VQMOVNsv8i8 = 3225,
- VQMOVNuv2i32 = 3226,
- VQMOVNuv4i16 = 3227,
- VQMOVNuv8i8 = 3228,
- VQNEGv16i8 = 3229,
- VQNEGv2i32 = 3230,
- VQNEGv4i16 = 3231,
- VQNEGv4i32 = 3232,
- VQNEGv8i16 = 3233,
- VQNEGv8i8 = 3234,
- VQRDMLAHslv2i32 = 3235,
- VQRDMLAHslv4i16 = 3236,
- VQRDMLAHslv4i32 = 3237,
- VQRDMLAHslv8i16 = 3238,
- VQRDMLAHv2i32 = 3239,
- VQRDMLAHv4i16 = 3240,
- VQRDMLAHv4i32 = 3241,
- VQRDMLAHv8i16 = 3242,
- VQRDMLSHslv2i32 = 3243,
- VQRDMLSHslv4i16 = 3244,
- VQRDMLSHslv4i32 = 3245,
- VQRDMLSHslv8i16 = 3246,
- VQRDMLSHv2i32 = 3247,
- VQRDMLSHv4i16 = 3248,
- VQRDMLSHv4i32 = 3249,
- VQRDMLSHv8i16 = 3250,
- VQRDMULHslv2i32 = 3251,
- VQRDMULHslv4i16 = 3252,
- VQRDMULHslv4i32 = 3253,
- VQRDMULHslv8i16 = 3254,
- VQRDMULHv2i32 = 3255,
- VQRDMULHv4i16 = 3256,
- VQRDMULHv4i32 = 3257,
- VQRDMULHv8i16 = 3258,
- VQRSHLsv16i8 = 3259,
- VQRSHLsv1i64 = 3260,
- VQRSHLsv2i32 = 3261,
- VQRSHLsv2i64 = 3262,
- VQRSHLsv4i16 = 3263,
- VQRSHLsv4i32 = 3264,
- VQRSHLsv8i16 = 3265,
- VQRSHLsv8i8 = 3266,
- VQRSHLuv16i8 = 3267,
- VQRSHLuv1i64 = 3268,
- VQRSHLuv2i32 = 3269,
- VQRSHLuv2i64 = 3270,
- VQRSHLuv4i16 = 3271,
- VQRSHLuv4i32 = 3272,
- VQRSHLuv8i16 = 3273,
- VQRSHLuv8i8 = 3274,
- VQRSHRNsv2i32 = 3275,
- VQRSHRNsv4i16 = 3276,
- VQRSHRNsv8i8 = 3277,
- VQRSHRNuv2i32 = 3278,
- VQRSHRNuv4i16 = 3279,
- VQRSHRNuv8i8 = 3280,
- VQRSHRUNv2i32 = 3281,
- VQRSHRUNv4i16 = 3282,
- VQRSHRUNv8i8 = 3283,
- VQSHLsiv16i8 = 3284,
- VQSHLsiv1i64 = 3285,
- VQSHLsiv2i32 = 3286,
- VQSHLsiv2i64 = 3287,
- VQSHLsiv4i16 = 3288,
- VQSHLsiv4i32 = 3289,
- VQSHLsiv8i16 = 3290,
- VQSHLsiv8i8 = 3291,
- VQSHLsuv16i8 = 3292,
- VQSHLsuv1i64 = 3293,
- VQSHLsuv2i32 = 3294,
- VQSHLsuv2i64 = 3295,
- VQSHLsuv4i16 = 3296,
- VQSHLsuv4i32 = 3297,
- VQSHLsuv8i16 = 3298,
- VQSHLsuv8i8 = 3299,
- VQSHLsv16i8 = 3300,
- VQSHLsv1i64 = 3301,
- VQSHLsv2i32 = 3302,
- VQSHLsv2i64 = 3303,
- VQSHLsv4i16 = 3304,
- VQSHLsv4i32 = 3305,
- VQSHLsv8i16 = 3306,
- VQSHLsv8i8 = 3307,
- VQSHLuiv16i8 = 3308,
- VQSHLuiv1i64 = 3309,
- VQSHLuiv2i32 = 3310,
- VQSHLuiv2i64 = 3311,
- VQSHLuiv4i16 = 3312,
- VQSHLuiv4i32 = 3313,
- VQSHLuiv8i16 = 3314,
- VQSHLuiv8i8 = 3315,
- VQSHLuv16i8 = 3316,
- VQSHLuv1i64 = 3317,
- VQSHLuv2i32 = 3318,
- VQSHLuv2i64 = 3319,
- VQSHLuv4i16 = 3320,
- VQSHLuv4i32 = 3321,
- VQSHLuv8i16 = 3322,
- VQSHLuv8i8 = 3323,
- VQSHRNsv2i32 = 3324,
- VQSHRNsv4i16 = 3325,
- VQSHRNsv8i8 = 3326,
- VQSHRNuv2i32 = 3327,
- VQSHRNuv4i16 = 3328,
- VQSHRNuv8i8 = 3329,
- VQSHRUNv2i32 = 3330,
- VQSHRUNv4i16 = 3331,
- VQSHRUNv8i8 = 3332,
- VQSUBsv16i8 = 3333,
- VQSUBsv1i64 = 3334,
- VQSUBsv2i32 = 3335,
- VQSUBsv2i64 = 3336,
- VQSUBsv4i16 = 3337,
- VQSUBsv4i32 = 3338,
- VQSUBsv8i16 = 3339,
- VQSUBsv8i8 = 3340,
- VQSUBuv16i8 = 3341,
- VQSUBuv1i64 = 3342,
- VQSUBuv2i32 = 3343,
- VQSUBuv2i64 = 3344,
- VQSUBuv4i16 = 3345,
- VQSUBuv4i32 = 3346,
- VQSUBuv8i16 = 3347,
- VQSUBuv8i8 = 3348,
- VRADDHNv2i32 = 3349,
- VRADDHNv4i16 = 3350,
- VRADDHNv8i8 = 3351,
- VRECPEd = 3352,
- VRECPEfd = 3353,
- VRECPEfq = 3354,
- VRECPEhd = 3355,
- VRECPEhq = 3356,
- VRECPEq = 3357,
- VRECPSfd = 3358,
- VRECPSfq = 3359,
- VRECPShd = 3360,
- VRECPShq = 3361,
- VREV16d8 = 3362,
- VREV16q8 = 3363,
- VREV32d16 = 3364,
- VREV32d8 = 3365,
- VREV32q16 = 3366,
- VREV32q8 = 3367,
- VREV64d16 = 3368,
- VREV64d32 = 3369,
- VREV64d8 = 3370,
- VREV64q16 = 3371,
- VREV64q32 = 3372,
- VREV64q8 = 3373,
- VRHADDsv16i8 = 3374,
- VRHADDsv2i32 = 3375,
- VRHADDsv4i16 = 3376,
- VRHADDsv4i32 = 3377,
- VRHADDsv8i16 = 3378,
- VRHADDsv8i8 = 3379,
- VRHADDuv16i8 = 3380,
- VRHADDuv2i32 = 3381,
- VRHADDuv4i16 = 3382,
- VRHADDuv4i32 = 3383,
- VRHADDuv8i16 = 3384,
- VRHADDuv8i8 = 3385,
- VRINTAD = 3386,
- VRINTAH = 3387,
- VRINTANDf = 3388,
- VRINTANDh = 3389,
- VRINTANQf = 3390,
- VRINTANQh = 3391,
- VRINTAS = 3392,
- VRINTMD = 3393,
- VRINTMH = 3394,
- VRINTMNDf = 3395,
- VRINTMNDh = 3396,
- VRINTMNQf = 3397,
- VRINTMNQh = 3398,
- VRINTMS = 3399,
- VRINTND = 3400,
- VRINTNH = 3401,
- VRINTNNDf = 3402,
- VRINTNNDh = 3403,
- VRINTNNQf = 3404,
- VRINTNNQh = 3405,
- VRINTNS = 3406,
- VRINTPD = 3407,
- VRINTPH = 3408,
- VRINTPNDf = 3409,
- VRINTPNDh = 3410,
- VRINTPNQf = 3411,
- VRINTPNQh = 3412,
- VRINTPS = 3413,
- VRINTRD = 3414,
- VRINTRH = 3415,
- VRINTRS = 3416,
- VRINTXD = 3417,
- VRINTXH = 3418,
- VRINTXNDf = 3419,
- VRINTXNDh = 3420,
- VRINTXNQf = 3421,
- VRINTXNQh = 3422,
- VRINTXS = 3423,
- VRINTZD = 3424,
- VRINTZH = 3425,
- VRINTZNDf = 3426,
- VRINTZNDh = 3427,
- VRINTZNQf = 3428,
- VRINTZNQh = 3429,
- VRINTZS = 3430,
- VRSHLsv16i8 = 3431,
- VRSHLsv1i64 = 3432,
- VRSHLsv2i32 = 3433,
- VRSHLsv2i64 = 3434,
- VRSHLsv4i16 = 3435,
- VRSHLsv4i32 = 3436,
- VRSHLsv8i16 = 3437,
- VRSHLsv8i8 = 3438,
- VRSHLuv16i8 = 3439,
- VRSHLuv1i64 = 3440,
- VRSHLuv2i32 = 3441,
- VRSHLuv2i64 = 3442,
- VRSHLuv4i16 = 3443,
- VRSHLuv4i32 = 3444,
- VRSHLuv8i16 = 3445,
- VRSHLuv8i8 = 3446,
- VRSHRNv2i32 = 3447,
- VRSHRNv4i16 = 3448,
- VRSHRNv8i8 = 3449,
- VRSHRsv16i8 = 3450,
- VRSHRsv1i64 = 3451,
- VRSHRsv2i32 = 3452,
- VRSHRsv2i64 = 3453,
- VRSHRsv4i16 = 3454,
- VRSHRsv4i32 = 3455,
- VRSHRsv8i16 = 3456,
- VRSHRsv8i8 = 3457,
- VRSHRuv16i8 = 3458,
- VRSHRuv1i64 = 3459,
- VRSHRuv2i32 = 3460,
- VRSHRuv2i64 = 3461,
- VRSHRuv4i16 = 3462,
- VRSHRuv4i32 = 3463,
- VRSHRuv8i16 = 3464,
- VRSHRuv8i8 = 3465,
- VRSQRTEd = 3466,
- VRSQRTEfd = 3467,
- VRSQRTEfq = 3468,
- VRSQRTEhd = 3469,
- VRSQRTEhq = 3470,
- VRSQRTEq = 3471,
- VRSQRTSfd = 3472,
- VRSQRTSfq = 3473,
- VRSQRTShd = 3474,
- VRSQRTShq = 3475,
- VRSRAsv16i8 = 3476,
- VRSRAsv1i64 = 3477,
- VRSRAsv2i32 = 3478,
- VRSRAsv2i64 = 3479,
- VRSRAsv4i16 = 3480,
- VRSRAsv4i32 = 3481,
- VRSRAsv8i16 = 3482,
- VRSRAsv8i8 = 3483,
- VRSRAuv16i8 = 3484,
- VRSRAuv1i64 = 3485,
- VRSRAuv2i32 = 3486,
- VRSRAuv2i64 = 3487,
- VRSRAuv4i16 = 3488,
- VRSRAuv4i32 = 3489,
- VRSRAuv8i16 = 3490,
- VRSRAuv8i8 = 3491,
- VRSUBHNv2i32 = 3492,
- VRSUBHNv4i16 = 3493,
- VRSUBHNv8i8 = 3494,
- VSCCLRMD = 3495,
- VSCCLRMS = 3496,
- VSDOTD = 3497,
- VSDOTDI = 3498,
- VSDOTQ = 3499,
- VSDOTQI = 3500,
- VSELEQD = 3501,
- VSELEQH = 3502,
- VSELEQS = 3503,
- VSELGED = 3504,
- VSELGEH = 3505,
- VSELGES = 3506,
- VSELGTD = 3507,
- VSELGTH = 3508,
- VSELGTS = 3509,
- VSELVSD = 3510,
- VSELVSH = 3511,
- VSELVSS = 3512,
- VSETLNi16 = 3513,
- VSETLNi32 = 3514,
- VSETLNi8 = 3515,
- VSHLLi16 = 3516,
- VSHLLi32 = 3517,
- VSHLLi8 = 3518,
- VSHLLsv2i64 = 3519,
- VSHLLsv4i32 = 3520,
- VSHLLsv8i16 = 3521,
- VSHLLuv2i64 = 3522,
- VSHLLuv4i32 = 3523,
- VSHLLuv8i16 = 3524,
- VSHLiv16i8 = 3525,
- VSHLiv1i64 = 3526,
- VSHLiv2i32 = 3527,
- VSHLiv2i64 = 3528,
- VSHLiv4i16 = 3529,
- VSHLiv4i32 = 3530,
- VSHLiv8i16 = 3531,
- VSHLiv8i8 = 3532,
- VSHLsv16i8 = 3533,
- VSHLsv1i64 = 3534,
- VSHLsv2i32 = 3535,
- VSHLsv2i64 = 3536,
- VSHLsv4i16 = 3537,
- VSHLsv4i32 = 3538,
- VSHLsv8i16 = 3539,
- VSHLsv8i8 = 3540,
- VSHLuv16i8 = 3541,
- VSHLuv1i64 = 3542,
- VSHLuv2i32 = 3543,
- VSHLuv2i64 = 3544,
- VSHLuv4i16 = 3545,
- VSHLuv4i32 = 3546,
- VSHLuv8i16 = 3547,
- VSHLuv8i8 = 3548,
- VSHRNv2i32 = 3549,
- VSHRNv4i16 = 3550,
- VSHRNv8i8 = 3551,
- VSHRsv16i8 = 3552,
- VSHRsv1i64 = 3553,
- VSHRsv2i32 = 3554,
- VSHRsv2i64 = 3555,
- VSHRsv4i16 = 3556,
- VSHRsv4i32 = 3557,
- VSHRsv8i16 = 3558,
- VSHRsv8i8 = 3559,
- VSHRuv16i8 = 3560,
- VSHRuv1i64 = 3561,
- VSHRuv2i32 = 3562,
- VSHRuv2i64 = 3563,
- VSHRuv4i16 = 3564,
- VSHRuv4i32 = 3565,
- VSHRuv8i16 = 3566,
- VSHRuv8i8 = 3567,
- VSHTOD = 3568,
- VSHTOH = 3569,
- VSHTOS = 3570,
- VSITOD = 3571,
- VSITOH = 3572,
- VSITOS = 3573,
- VSLIv16i8 = 3574,
- VSLIv1i64 = 3575,
- VSLIv2i32 = 3576,
- VSLIv2i64 = 3577,
- VSLIv4i16 = 3578,
- VSLIv4i32 = 3579,
- VSLIv8i16 = 3580,
- VSLIv8i8 = 3581,
- VSLTOD = 3582,
- VSLTOH = 3583,
- VSLTOS = 3584,
- VSMMLA = 3585,
- VSQRTD = 3586,
- VSQRTH = 3587,
- VSQRTS = 3588,
- VSRAsv16i8 = 3589,
- VSRAsv1i64 = 3590,
- VSRAsv2i32 = 3591,
- VSRAsv2i64 = 3592,
- VSRAsv4i16 = 3593,
- VSRAsv4i32 = 3594,
- VSRAsv8i16 = 3595,
- VSRAsv8i8 = 3596,
- VSRAuv16i8 = 3597,
- VSRAuv1i64 = 3598,
- VSRAuv2i32 = 3599,
- VSRAuv2i64 = 3600,
- VSRAuv4i16 = 3601,
- VSRAuv4i32 = 3602,
- VSRAuv8i16 = 3603,
- VSRAuv8i8 = 3604,
- VSRIv16i8 = 3605,
- VSRIv1i64 = 3606,
- VSRIv2i32 = 3607,
- VSRIv2i64 = 3608,
- VSRIv4i16 = 3609,
- VSRIv4i32 = 3610,
- VSRIv8i16 = 3611,
- VSRIv8i8 = 3612,
- VST1LNd16 = 3613,
- VST1LNd16_UPD = 3614,
- VST1LNd32 = 3615,
- VST1LNd32_UPD = 3616,
- VST1LNd8 = 3617,
- VST1LNd8_UPD = 3618,
- VST1LNq16Pseudo = 3619,
- VST1LNq16Pseudo_UPD = 3620,
- VST1LNq32Pseudo = 3621,
- VST1LNq32Pseudo_UPD = 3622,
- VST1LNq8Pseudo = 3623,
- VST1LNq8Pseudo_UPD = 3624,
- VST1d16 = 3625,
- VST1d16Q = 3626,
- VST1d16QPseudo = 3627,
- VST1d16QPseudoWB_fixed = 3628,
- VST1d16QPseudoWB_register = 3629,
- VST1d16Qwb_fixed = 3630,
- VST1d16Qwb_register = 3631,
- VST1d16T = 3632,
- VST1d16TPseudo = 3633,
- VST1d16TPseudoWB_fixed = 3634,
- VST1d16TPseudoWB_register = 3635,
- VST1d16Twb_fixed = 3636,
- VST1d16Twb_register = 3637,
- VST1d16wb_fixed = 3638,
- VST1d16wb_register = 3639,
- VST1d32 = 3640,
- VST1d32Q = 3641,
- VST1d32QPseudo = 3642,
- VST1d32QPseudoWB_fixed = 3643,
- VST1d32QPseudoWB_register = 3644,
- VST1d32Qwb_fixed = 3645,
- VST1d32Qwb_register = 3646,
- VST1d32T = 3647,
- VST1d32TPseudo = 3648,
- VST1d32TPseudoWB_fixed = 3649,
- VST1d32TPseudoWB_register = 3650,
- VST1d32Twb_fixed = 3651,
- VST1d32Twb_register = 3652,
- VST1d32wb_fixed = 3653,
- VST1d32wb_register = 3654,
- VST1d64 = 3655,
- VST1d64Q = 3656,
- VST1d64QPseudo = 3657,
- VST1d64QPseudoWB_fixed = 3658,
- VST1d64QPseudoWB_register = 3659,
- VST1d64Qwb_fixed = 3660,
- VST1d64Qwb_register = 3661,
- VST1d64T = 3662,
- VST1d64TPseudo = 3663,
- VST1d64TPseudoWB_fixed = 3664,
- VST1d64TPseudoWB_register = 3665,
- VST1d64Twb_fixed = 3666,
- VST1d64Twb_register = 3667,
- VST1d64wb_fixed = 3668,
- VST1d64wb_register = 3669,
- VST1d8 = 3670,
- VST1d8Q = 3671,
- VST1d8QPseudo = 3672,
- VST1d8QPseudoWB_fixed = 3673,
- VST1d8QPseudoWB_register = 3674,
- VST1d8Qwb_fixed = 3675,
- VST1d8Qwb_register = 3676,
- VST1d8T = 3677,
- VST1d8TPseudo = 3678,
- VST1d8TPseudoWB_fixed = 3679,
- VST1d8TPseudoWB_register = 3680,
- VST1d8Twb_fixed = 3681,
- VST1d8Twb_register = 3682,
- VST1d8wb_fixed = 3683,
- VST1d8wb_register = 3684,
- VST1q16 = 3685,
- VST1q16HighQPseudo = 3686,
- VST1q16HighQPseudo_UPD = 3687,
- VST1q16HighTPseudo = 3688,
- VST1q16HighTPseudo_UPD = 3689,
- VST1q16LowQPseudo_UPD = 3690,
- VST1q16LowTPseudo_UPD = 3691,
- VST1q16wb_fixed = 3692,
- VST1q16wb_register = 3693,
- VST1q32 = 3694,
- VST1q32HighQPseudo = 3695,
- VST1q32HighQPseudo_UPD = 3696,
- VST1q32HighTPseudo = 3697,
- VST1q32HighTPseudo_UPD = 3698,
- VST1q32LowQPseudo_UPD = 3699,
- VST1q32LowTPseudo_UPD = 3700,
- VST1q32wb_fixed = 3701,
- VST1q32wb_register = 3702,
- VST1q64 = 3703,
- VST1q64HighQPseudo = 3704,
- VST1q64HighQPseudo_UPD = 3705,
- VST1q64HighTPseudo = 3706,
- VST1q64HighTPseudo_UPD = 3707,
- VST1q64LowQPseudo_UPD = 3708,
- VST1q64LowTPseudo_UPD = 3709,
- VST1q64wb_fixed = 3710,
- VST1q64wb_register = 3711,
- VST1q8 = 3712,
- VST1q8HighQPseudo = 3713,
- VST1q8HighQPseudo_UPD = 3714,
- VST1q8HighTPseudo = 3715,
- VST1q8HighTPseudo_UPD = 3716,
- VST1q8LowQPseudo_UPD = 3717,
- VST1q8LowTPseudo_UPD = 3718,
- VST1q8wb_fixed = 3719,
- VST1q8wb_register = 3720,
- VST2LNd16 = 3721,
- VST2LNd16Pseudo = 3722,
- VST2LNd16Pseudo_UPD = 3723,
- VST2LNd16_UPD = 3724,
- VST2LNd32 = 3725,
- VST2LNd32Pseudo = 3726,
- VST2LNd32Pseudo_UPD = 3727,
- VST2LNd32_UPD = 3728,
- VST2LNd8 = 3729,
- VST2LNd8Pseudo = 3730,
- VST2LNd8Pseudo_UPD = 3731,
- VST2LNd8_UPD = 3732,
- VST2LNq16 = 3733,
- VST2LNq16Pseudo = 3734,
- VST2LNq16Pseudo_UPD = 3735,
- VST2LNq16_UPD = 3736,
- VST2LNq32 = 3737,
- VST2LNq32Pseudo = 3738,
- VST2LNq32Pseudo_UPD = 3739,
- VST2LNq32_UPD = 3740,
- VST2b16 = 3741,
- VST2b16wb_fixed = 3742,
- VST2b16wb_register = 3743,
- VST2b32 = 3744,
- VST2b32wb_fixed = 3745,
- VST2b32wb_register = 3746,
- VST2b8 = 3747,
- VST2b8wb_fixed = 3748,
- VST2b8wb_register = 3749,
- VST2d16 = 3750,
- VST2d16wb_fixed = 3751,
- VST2d16wb_register = 3752,
- VST2d32 = 3753,
- VST2d32wb_fixed = 3754,
- VST2d32wb_register = 3755,
- VST2d8 = 3756,
- VST2d8wb_fixed = 3757,
- VST2d8wb_register = 3758,
- VST2q16 = 3759,
- VST2q16Pseudo = 3760,
- VST2q16PseudoWB_fixed = 3761,
- VST2q16PseudoWB_register = 3762,
- VST2q16wb_fixed = 3763,
- VST2q16wb_register = 3764,
- VST2q32 = 3765,
- VST2q32Pseudo = 3766,
- VST2q32PseudoWB_fixed = 3767,
- VST2q32PseudoWB_register = 3768,
- VST2q32wb_fixed = 3769,
- VST2q32wb_register = 3770,
- VST2q8 = 3771,
- VST2q8Pseudo = 3772,
- VST2q8PseudoWB_fixed = 3773,
- VST2q8PseudoWB_register = 3774,
- VST2q8wb_fixed = 3775,
- VST2q8wb_register = 3776,
- VST3LNd16 = 3777,
- VST3LNd16Pseudo = 3778,
- VST3LNd16Pseudo_UPD = 3779,
- VST3LNd16_UPD = 3780,
- VST3LNd32 = 3781,
- VST3LNd32Pseudo = 3782,
- VST3LNd32Pseudo_UPD = 3783,
- VST3LNd32_UPD = 3784,
- VST3LNd8 = 3785,
- VST3LNd8Pseudo = 3786,
- VST3LNd8Pseudo_UPD = 3787,
- VST3LNd8_UPD = 3788,
- VST3LNq16 = 3789,
- VST3LNq16Pseudo = 3790,
- VST3LNq16Pseudo_UPD = 3791,
- VST3LNq16_UPD = 3792,
- VST3LNq32 = 3793,
- VST3LNq32Pseudo = 3794,
- VST3LNq32Pseudo_UPD = 3795,
- VST3LNq32_UPD = 3796,
- VST3d16 = 3797,
- VST3d16Pseudo = 3798,
- VST3d16Pseudo_UPD = 3799,
- VST3d16_UPD = 3800,
- VST3d32 = 3801,
- VST3d32Pseudo = 3802,
- VST3d32Pseudo_UPD = 3803,
- VST3d32_UPD = 3804,
- VST3d8 = 3805,
- VST3d8Pseudo = 3806,
- VST3d8Pseudo_UPD = 3807,
- VST3d8_UPD = 3808,
- VST3q16 = 3809,
- VST3q16Pseudo_UPD = 3810,
- VST3q16_UPD = 3811,
- VST3q16oddPseudo = 3812,
- VST3q16oddPseudo_UPD = 3813,
- VST3q32 = 3814,
- VST3q32Pseudo_UPD = 3815,
- VST3q32_UPD = 3816,
- VST3q32oddPseudo = 3817,
- VST3q32oddPseudo_UPD = 3818,
- VST3q8 = 3819,
- VST3q8Pseudo_UPD = 3820,
- VST3q8_UPD = 3821,
- VST3q8oddPseudo = 3822,
- VST3q8oddPseudo_UPD = 3823,
- VST4LNd16 = 3824,
- VST4LNd16Pseudo = 3825,
- VST4LNd16Pseudo_UPD = 3826,
- VST4LNd16_UPD = 3827,
- VST4LNd32 = 3828,
- VST4LNd32Pseudo = 3829,
- VST4LNd32Pseudo_UPD = 3830,
- VST4LNd32_UPD = 3831,
- VST4LNd8 = 3832,
- VST4LNd8Pseudo = 3833,
- VST4LNd8Pseudo_UPD = 3834,
- VST4LNd8_UPD = 3835,
- VST4LNq16 = 3836,
- VST4LNq16Pseudo = 3837,
- VST4LNq16Pseudo_UPD = 3838,
- VST4LNq16_UPD = 3839,
- VST4LNq32 = 3840,
- VST4LNq32Pseudo = 3841,
- VST4LNq32Pseudo_UPD = 3842,
- VST4LNq32_UPD = 3843,
- VST4d16 = 3844,
- VST4d16Pseudo = 3845,
- VST4d16Pseudo_UPD = 3846,
- VST4d16_UPD = 3847,
- VST4d32 = 3848,
- VST4d32Pseudo = 3849,
- VST4d32Pseudo_UPD = 3850,
- VST4d32_UPD = 3851,
- VST4d8 = 3852,
- VST4d8Pseudo = 3853,
- VST4d8Pseudo_UPD = 3854,
- VST4d8_UPD = 3855,
- VST4q16 = 3856,
- VST4q16Pseudo_UPD = 3857,
- VST4q16_UPD = 3858,
- VST4q16oddPseudo = 3859,
- VST4q16oddPseudo_UPD = 3860,
- VST4q32 = 3861,
- VST4q32Pseudo_UPD = 3862,
- VST4q32_UPD = 3863,
- VST4q32oddPseudo = 3864,
- VST4q32oddPseudo_UPD = 3865,
- VST4q8 = 3866,
- VST4q8Pseudo_UPD = 3867,
- VST4q8_UPD = 3868,
- VST4q8oddPseudo = 3869,
- VST4q8oddPseudo_UPD = 3870,
- VSTMDDB_UPD = 3871,
- VSTMDIA = 3872,
- VSTMDIA_UPD = 3873,
- VSTMQIA = 3874,
- VSTMSDB_UPD = 3875,
- VSTMSIA = 3876,
- VSTMSIA_UPD = 3877,
- VSTRD = 3878,
- VSTRH = 3879,
- VSTRS = 3880,
- VSTR_FPCXTNS_off = 3881,
- VSTR_FPCXTNS_post = 3882,
- VSTR_FPCXTNS_pre = 3883,
- VSTR_FPCXTS_off = 3884,
- VSTR_FPCXTS_post = 3885,
- VSTR_FPCXTS_pre = 3886,
- VSTR_FPSCR_NZCVQC_off = 3887,
- VSTR_FPSCR_NZCVQC_post = 3888,
- VSTR_FPSCR_NZCVQC_pre = 3889,
- VSTR_FPSCR_off = 3890,
- VSTR_FPSCR_post = 3891,
- VSTR_FPSCR_pre = 3892,
- VSTR_P0_off = 3893,
- VSTR_P0_post = 3894,
- VSTR_P0_pre = 3895,
- VSTR_VPR_off = 3896,
- VSTR_VPR_post = 3897,
- VSTR_VPR_pre = 3898,
- VSUBD = 3899,
- VSUBH = 3900,
- VSUBHNv2i32 = 3901,
- VSUBHNv4i16 = 3902,
- VSUBHNv8i8 = 3903,
- VSUBLsv2i64 = 3904,
- VSUBLsv4i32 = 3905,
- VSUBLsv8i16 = 3906,
- VSUBLuv2i64 = 3907,
- VSUBLuv4i32 = 3908,
- VSUBLuv8i16 = 3909,
- VSUBS = 3910,
- VSUBWsv2i64 = 3911,
- VSUBWsv4i32 = 3912,
- VSUBWsv8i16 = 3913,
- VSUBWuv2i64 = 3914,
- VSUBWuv4i32 = 3915,
- VSUBWuv8i16 = 3916,
- VSUBfd = 3917,
- VSUBfq = 3918,
- VSUBhd = 3919,
- VSUBhq = 3920,
- VSUBv16i8 = 3921,
- VSUBv1i64 = 3922,
- VSUBv2i32 = 3923,
- VSUBv2i64 = 3924,
- VSUBv4i16 = 3925,
- VSUBv4i32 = 3926,
- VSUBv8i16 = 3927,
- VSUBv8i8 = 3928,
- VSUDOTDI = 3929,
- VSUDOTQI = 3930,
- VSWPd = 3931,
- VSWPq = 3932,
- VTBL1 = 3933,
- VTBL2 = 3934,
- VTBL3 = 3935,
- VTBL3Pseudo = 3936,
- VTBL4 = 3937,
- VTBL4Pseudo = 3938,
- VTBX1 = 3939,
- VTBX2 = 3940,
- VTBX3 = 3941,
- VTBX3Pseudo = 3942,
- VTBX4 = 3943,
- VTBX4Pseudo = 3944,
- VTOSHD = 3945,
- VTOSHH = 3946,
- VTOSHS = 3947,
- VTOSIRD = 3948,
- VTOSIRH = 3949,
- VTOSIRS = 3950,
- VTOSIZD = 3951,
- VTOSIZH = 3952,
- VTOSIZS = 3953,
- VTOSLD = 3954,
- VTOSLH = 3955,
- VTOSLS = 3956,
- VTOUHD = 3957,
- VTOUHH = 3958,
- VTOUHS = 3959,
- VTOUIRD = 3960,
- VTOUIRH = 3961,
- VTOUIRS = 3962,
- VTOUIZD = 3963,
- VTOUIZH = 3964,
- VTOUIZS = 3965,
- VTOULD = 3966,
- VTOULH = 3967,
- VTOULS = 3968,
- VTRNd16 = 3969,
- VTRNd32 = 3970,
- VTRNd8 = 3971,
- VTRNq16 = 3972,
- VTRNq32 = 3973,
- VTRNq8 = 3974,
- VTSTv16i8 = 3975,
- VTSTv2i32 = 3976,
- VTSTv4i16 = 3977,
- VTSTv4i32 = 3978,
- VTSTv8i16 = 3979,
- VTSTv8i8 = 3980,
- VUDOTD = 3981,
- VUDOTDI = 3982,
- VUDOTQ = 3983,
- VUDOTQI = 3984,
- VUHTOD = 3985,
- VUHTOH = 3986,
- VUHTOS = 3987,
- VUITOD = 3988,
- VUITOH = 3989,
- VUITOS = 3990,
- VULTOD = 3991,
- VULTOH = 3992,
- VULTOS = 3993,
- VUMMLA = 3994,
- VUSDOTD = 3995,
- VUSDOTDI = 3996,
- VUSDOTQ = 3997,
- VUSDOTQI = 3998,
- VUSMMLA = 3999,
- VUZPd16 = 4000,
- VUZPd8 = 4001,
- VUZPq16 = 4002,
- VUZPq32 = 4003,
- VUZPq8 = 4004,
- VZIPd16 = 4005,
- VZIPd8 = 4006,
- VZIPq16 = 4007,
- VZIPq32 = 4008,
- VZIPq8 = 4009,
- sysLDMDA = 4010,
- sysLDMDA_UPD = 4011,
- sysLDMDB = 4012,
- sysLDMDB_UPD = 4013,
- sysLDMIA = 4014,
- sysLDMIA_UPD = 4015,
- sysLDMIB = 4016,
- sysLDMIB_UPD = 4017,
- sysSTMDA = 4018,
- sysSTMDA_UPD = 4019,
- sysSTMDB = 4020,
- sysSTMDB_UPD = 4021,
- sysSTMIA = 4022,
- sysSTMIA_UPD = 4023,
- sysSTMIB = 4024,
- sysSTMIB_UPD = 4025,
- t2ADCri = 4026,
- t2ADCrr = 4027,
- t2ADCrs = 4028,
- t2ADDri = 4029,
- t2ADDri12 = 4030,
- t2ADDrr = 4031,
- t2ADDrs = 4032,
- t2ADDspImm = 4033,
- t2ADDspImm12 = 4034,
- t2ADR = 4035,
- t2ANDri = 4036,
- t2ANDrr = 4037,
- t2ANDrs = 4038,
- t2ASRri = 4039,
- t2ASRrr = 4040,
- t2ASRs1 = 4041,
- t2AUT = 4042,
- t2AUTG = 4043,
- t2B = 4044,
- t2BFC = 4045,
- t2BFI = 4046,
- t2BFLi = 4047,
- t2BFLr = 4048,
- t2BFi = 4049,
- t2BFic = 4050,
- t2BFr = 4051,
- t2BICri = 4052,
- t2BICrr = 4053,
- t2BICrs = 4054,
- t2BTI = 4055,
- t2BXAUT = 4056,
- t2BXJ = 4057,
- t2Bcc = 4058,
- t2CDP = 4059,
- t2CDP2 = 4060,
- t2CLREX = 4061,
- t2CLRM = 4062,
- t2CLZ = 4063,
- t2CMNri = 4064,
- t2CMNzrr = 4065,
- t2CMNzrs = 4066,
- t2CMPri = 4067,
- t2CMPrr = 4068,
- t2CMPrs = 4069,
- t2CPS1p = 4070,
- t2CPS2p = 4071,
- t2CPS3p = 4072,
- t2CRC32B = 4073,
- t2CRC32CB = 4074,
- t2CRC32CH = 4075,
- t2CRC32CW = 4076,
- t2CRC32H = 4077,
- t2CRC32W = 4078,
- t2CSEL = 4079,
- t2CSINC = 4080,
- t2CSINV = 4081,
- t2CSNEG = 4082,
- t2DBG = 4083,
- t2DCPS1 = 4084,
- t2DCPS2 = 4085,
- t2DCPS3 = 4086,
- t2DLS = 4087,
- t2DMB = 4088,
- t2DSB = 4089,
- t2EORri = 4090,
- t2EORrr = 4091,
- t2EORrs = 4092,
- t2HINT = 4093,
- t2HVC = 4094,
- t2ISB = 4095,
- t2IT = 4096,
- t2Int_eh_sjlj_setjmp = 4097,
- t2Int_eh_sjlj_setjmp_nofp = 4098,
- t2LDA = 4099,
- t2LDAB = 4100,
- t2LDAEX = 4101,
- t2LDAEXB = 4102,
- t2LDAEXD = 4103,
- t2LDAEXH = 4104,
- t2LDAH = 4105,
- t2LDC2L_OFFSET = 4106,
- t2LDC2L_OPTION = 4107,
- t2LDC2L_POST = 4108,
- t2LDC2L_PRE = 4109,
- t2LDC2_OFFSET = 4110,
- t2LDC2_OPTION = 4111,
- t2LDC2_POST = 4112,
- t2LDC2_PRE = 4113,
- t2LDCL_OFFSET = 4114,
- t2LDCL_OPTION = 4115,
- t2LDCL_POST = 4116,
- t2LDCL_PRE = 4117,
- t2LDC_OFFSET = 4118,
- t2LDC_OPTION = 4119,
- t2LDC_POST = 4120,
- t2LDC_PRE = 4121,
- t2LDMDB = 4122,
- t2LDMDB_UPD = 4123,
- t2LDMIA = 4124,
- t2LDMIA_UPD = 4125,
- t2LDRBT = 4126,
- t2LDRB_POST = 4127,
- t2LDRB_PRE = 4128,
- t2LDRBi12 = 4129,
- t2LDRBi8 = 4130,
- t2LDRBpci = 4131,
- t2LDRBs = 4132,
- t2LDRD_POST = 4133,
- t2LDRD_PRE = 4134,
- t2LDRDi8 = 4135,
- t2LDREX = 4136,
- t2LDREXB = 4137,
- t2LDREXD = 4138,
- t2LDREXH = 4139,
- t2LDRHT = 4140,
- t2LDRH_POST = 4141,
- t2LDRH_PRE = 4142,
- t2LDRHi12 = 4143,
- t2LDRHi8 = 4144,
- t2LDRHpci = 4145,
- t2LDRHs = 4146,
- t2LDRSBT = 4147,
- t2LDRSB_POST = 4148,
- t2LDRSB_PRE = 4149,
- t2LDRSBi12 = 4150,
- t2LDRSBi8 = 4151,
- t2LDRSBpci = 4152,
- t2LDRSBs = 4153,
- t2LDRSHT = 4154,
- t2LDRSH_POST = 4155,
- t2LDRSH_PRE = 4156,
- t2LDRSHi12 = 4157,
- t2LDRSHi8 = 4158,
- t2LDRSHpci = 4159,
- t2LDRSHs = 4160,
- t2LDRT = 4161,
- t2LDR_POST = 4162,
- t2LDR_PRE = 4163,
- t2LDRi12 = 4164,
- t2LDRi8 = 4165,
- t2LDRpci = 4166,
- t2LDRs = 4167,
- t2LE = 4168,
- t2LEUpdate = 4169,
- t2LSLri = 4170,
- t2LSLrr = 4171,
- t2LSRri = 4172,
- t2LSRrr = 4173,
- t2LSRs1 = 4174,
- t2MCR = 4175,
- t2MCR2 = 4176,
- t2MCRR = 4177,
- t2MCRR2 = 4178,
- t2MLA = 4179,
- t2MLS = 4180,
- t2MOVTi16 = 4181,
- t2MOVi = 4182,
- t2MOVi16 = 4183,
- t2MOVr = 4184,
- t2MRC = 4185,
- t2MRC2 = 4186,
- t2MRRC = 4187,
- t2MRRC2 = 4188,
- t2MRS_AR = 4189,
- t2MRS_M = 4190,
- t2MRSbanked = 4191,
- t2MRSsys_AR = 4192,
- t2MSR_AR = 4193,
- t2MSR_M = 4194,
- t2MSRbanked = 4195,
- t2MUL = 4196,
- t2MVNi = 4197,
- t2MVNr = 4198,
- t2MVNs = 4199,
- t2ORNri = 4200,
- t2ORNrr = 4201,
- t2ORNrs = 4202,
- t2ORRri = 4203,
- t2ORRrr = 4204,
- t2ORRrs = 4205,
- t2PAC = 4206,
- t2PACBTI = 4207,
- t2PACG = 4208,
- t2PKHBT = 4209,
- t2PKHTB = 4210,
- t2PLDWi12 = 4211,
- t2PLDWi8 = 4212,
- t2PLDWs = 4213,
- t2PLDi12 = 4214,
- t2PLDi8 = 4215,
- t2PLDpci = 4216,
- t2PLDs = 4217,
- t2PLIi12 = 4218,
- t2PLIi8 = 4219,
- t2PLIpci = 4220,
- t2PLIs = 4221,
- t2QADD = 4222,
- t2QADD16 = 4223,
- t2QADD8 = 4224,
- t2QASX = 4225,
- t2QDADD = 4226,
- t2QDSUB = 4227,
- t2QSAX = 4228,
- t2QSUB = 4229,
- t2QSUB16 = 4230,
- t2QSUB8 = 4231,
- t2RBIT = 4232,
- t2REV = 4233,
- t2REV16 = 4234,
- t2REVSH = 4235,
- t2RFEDB = 4236,
- t2RFEDBW = 4237,
- t2RFEIA = 4238,
- t2RFEIAW = 4239,
- t2RORri = 4240,
- t2RORrr = 4241,
- t2RRX = 4242,
- t2RSBri = 4243,
- t2RSBrr = 4244,
- t2RSBrs = 4245,
- t2SADD16 = 4246,
- t2SADD8 = 4247,
- t2SASX = 4248,
- t2SB = 4249,
- t2SBCri = 4250,
- t2SBCrr = 4251,
- t2SBCrs = 4252,
- t2SBFX = 4253,
- t2SDIV = 4254,
- t2SEL = 4255,
- t2SETPAN = 4256,
- t2SG = 4257,
- t2SHADD16 = 4258,
- t2SHADD8 = 4259,
- t2SHASX = 4260,
- t2SHSAX = 4261,
- t2SHSUB16 = 4262,
- t2SHSUB8 = 4263,
- t2SMC = 4264,
- t2SMLABB = 4265,
- t2SMLABT = 4266,
- t2SMLAD = 4267,
- t2SMLADX = 4268,
- t2SMLAL = 4269,
- t2SMLALBB = 4270,
- t2SMLALBT = 4271,
- t2SMLALD = 4272,
- t2SMLALDX = 4273,
- t2SMLALTB = 4274,
- t2SMLALTT = 4275,
- t2SMLATB = 4276,
- t2SMLATT = 4277,
- t2SMLAWB = 4278,
- t2SMLAWT = 4279,
- t2SMLSD = 4280,
- t2SMLSDX = 4281,
- t2SMLSLD = 4282,
- t2SMLSLDX = 4283,
- t2SMMLA = 4284,
- t2SMMLAR = 4285,
- t2SMMLS = 4286,
- t2SMMLSR = 4287,
- t2SMMUL = 4288,
- t2SMMULR = 4289,
- t2SMUAD = 4290,
- t2SMUADX = 4291,
- t2SMULBB = 4292,
- t2SMULBT = 4293,
- t2SMULL = 4294,
- t2SMULTB = 4295,
- t2SMULTT = 4296,
- t2SMULWB = 4297,
- t2SMULWT = 4298,
- t2SMUSD = 4299,
- t2SMUSDX = 4300,
- t2SRSDB = 4301,
- t2SRSDB_UPD = 4302,
- t2SRSIA = 4303,
- t2SRSIA_UPD = 4304,
- t2SSAT = 4305,
- t2SSAT16 = 4306,
- t2SSAX = 4307,
- t2SSUB16 = 4308,
- t2SSUB8 = 4309,
- t2STC2L_OFFSET = 4310,
- t2STC2L_OPTION = 4311,
- t2STC2L_POST = 4312,
- t2STC2L_PRE = 4313,
- t2STC2_OFFSET = 4314,
- t2STC2_OPTION = 4315,
- t2STC2_POST = 4316,
- t2STC2_PRE = 4317,
- t2STCL_OFFSET = 4318,
- t2STCL_OPTION = 4319,
- t2STCL_POST = 4320,
- t2STCL_PRE = 4321,
- t2STC_OFFSET = 4322,
- t2STC_OPTION = 4323,
- t2STC_POST = 4324,
- t2STC_PRE = 4325,
- t2STL = 4326,
- t2STLB = 4327,
- t2STLEX = 4328,
- t2STLEXB = 4329,
- t2STLEXD = 4330,
- t2STLEXH = 4331,
- t2STLH = 4332,
- t2STMDB = 4333,
- t2STMDB_UPD = 4334,
- t2STMIA = 4335,
- t2STMIA_UPD = 4336,
- t2STRBT = 4337,
- t2STRB_POST = 4338,
- t2STRB_PRE = 4339,
- t2STRBi12 = 4340,
- t2STRBi8 = 4341,
- t2STRBs = 4342,
- t2STRD_POST = 4343,
- t2STRD_PRE = 4344,
- t2STRDi8 = 4345,
- t2STREX = 4346,
- t2STREXB = 4347,
- t2STREXD = 4348,
- t2STREXH = 4349,
- t2STRHT = 4350,
- t2STRH_POST = 4351,
- t2STRH_PRE = 4352,
- t2STRHi12 = 4353,
- t2STRHi8 = 4354,
- t2STRHs = 4355,
- t2STRT = 4356,
- t2STR_POST = 4357,
- t2STR_PRE = 4358,
- t2STRi12 = 4359,
- t2STRi8 = 4360,
- t2STRs = 4361,
- t2SUBS_PC_LR = 4362,
- t2SUBri = 4363,
- t2SUBri12 = 4364,
- t2SUBrr = 4365,
- t2SUBrs = 4366,
- t2SUBspImm = 4367,
- t2SUBspImm12 = 4368,
- t2SXTAB = 4369,
- t2SXTAB16 = 4370,
- t2SXTAH = 4371,
- t2SXTB = 4372,
- t2SXTB16 = 4373,
- t2SXTH = 4374,
- t2TBB = 4375,
- t2TBH = 4376,
- t2TEQri = 4377,
- t2TEQrr = 4378,
- t2TEQrs = 4379,
- t2TSB = 4380,
- t2TSTri = 4381,
- t2TSTrr = 4382,
- t2TSTrs = 4383,
- t2TT = 4384,
- t2TTA = 4385,
- t2TTAT = 4386,
- t2TTT = 4387,
- t2UADD16 = 4388,
- t2UADD8 = 4389,
- t2UASX = 4390,
- t2UBFX = 4391,
- t2UDF = 4392,
- t2UDIV = 4393,
- t2UHADD16 = 4394,
- t2UHADD8 = 4395,
- t2UHASX = 4396,
- t2UHSAX = 4397,
- t2UHSUB16 = 4398,
- t2UHSUB8 = 4399,
- t2UMAAL = 4400,
- t2UMLAL = 4401,
- t2UMULL = 4402,
- t2UQADD16 = 4403,
- t2UQADD8 = 4404,
- t2UQASX = 4405,
- t2UQSAX = 4406,
- t2UQSUB16 = 4407,
- t2UQSUB8 = 4408,
- t2USAD8 = 4409,
- t2USADA8 = 4410,
- t2USAT = 4411,
- t2USAT16 = 4412,
- t2USAX = 4413,
- t2USUB16 = 4414,
- t2USUB8 = 4415,
- t2UXTAB = 4416,
- t2UXTAB16 = 4417,
- t2UXTAH = 4418,
- t2UXTB = 4419,
- t2UXTB16 = 4420,
- t2UXTH = 4421,
- t2WLS = 4422,
- tADC = 4423,
- tADDhirr = 4424,
- tADDi3 = 4425,
- tADDi8 = 4426,
- tADDrSP = 4427,
- tADDrSPi = 4428,
- tADDrr = 4429,
- tADDspi = 4430,
- tADDspr = 4431,
- tADR = 4432,
- tAND = 4433,
- tASRri = 4434,
- tASRrr = 4435,
- tB = 4436,
- tBIC = 4437,
- tBKPT = 4438,
- tBL = 4439,
- tBLXNSr = 4440,
- tBLXi = 4441,
- tBLXr = 4442,
- tBX = 4443,
- tBXNS = 4444,
- tBcc = 4445,
- tCBNZ = 4446,
- tCBZ = 4447,
- tCMNz = 4448,
- tCMPhir = 4449,
- tCMPi8 = 4450,
- tCMPr = 4451,
- tCPS = 4452,
- tEOR = 4453,
- tHINT = 4454,
- tHLT = 4455,
- tInt_WIN_eh_sjlj_longjmp = 4456,
- tInt_eh_sjlj_longjmp = 4457,
- tInt_eh_sjlj_setjmp = 4458,
- tLDMIA = 4459,
- tLDRBi = 4460,
- tLDRBr = 4461,
- tLDRHi = 4462,
- tLDRHr = 4463,
- tLDRSB = 4464,
- tLDRSH = 4465,
- tLDRi = 4466,
- tLDRpci = 4467,
- tLDRr = 4468,
- tLDRspi = 4469,
- tLSLri = 4470,
- tLSLrr = 4471,
- tLSRri = 4472,
- tLSRrr = 4473,
- tMOVSr = 4474,
- tMOVi8 = 4475,
- tMOVr = 4476,
- tMUL = 4477,
- tMVN = 4478,
- tORR = 4479,
- tPICADD = 4480,
- tPOP = 4481,
- tPUSH = 4482,
- tREV = 4483,
- tREV16 = 4484,
- tREVSH = 4485,
- tROR = 4486,
- tRSB = 4487,
- tSBC = 4488,
- tSETEND = 4489,
- tSTMIA_UPD = 4490,
- tSTRBi = 4491,
- tSTRBr = 4492,
- tSTRHi = 4493,
- tSTRHr = 4494,
- tSTRi = 4495,
- tSTRr = 4496,
- tSTRspi = 4497,
- tSUBi3 = 4498,
- tSUBi8 = 4499,
- tSUBrr = 4500,
- tSUBspi = 4501,
- tSVC = 4502,
- tSXTB = 4503,
- tSXTH = 4504,
- tTRAP = 4505,
- tTST = 4506,
- tUDF = 4507,
- tUXTB = 4508,
- tUXTH = 4509,
- t__brkdiv0 = 4510,
- INSTRUCTION_LIST_END = 4511,
+ COPY_LANEMASK = 21,
+ BUNDLE = 22,
+ LIFETIME_START = 23,
+ LIFETIME_END = 24,
+ PSEUDO_PROBE = 25,
+ ARITH_FENCE = 26,
+ STACKMAP = 27,
+ FENTRY_CALL = 28,
+ PATCHPOINT = 29,
+ LOAD_STACK_GUARD = 30,
+ PREALLOCATED_SETUP = 31,
+ PREALLOCATED_ARG = 32,
+ STATEPOINT = 33,
+ LOCAL_ESCAPE = 34,
+ FAULTING_OP = 35,
+ PATCHABLE_OP = 36,
+ PATCHABLE_FUNCTION_ENTER = 37,
+ PATCHABLE_RET = 38,
+ PATCHABLE_FUNCTION_EXIT = 39,
+ PATCHABLE_TAIL_CALL = 40,
+ PATCHABLE_EVENT_CALL = 41,
+ PATCHABLE_TYPED_EVENT_CALL = 42,
+ ICALL_BRANCH_FUNNEL = 43,
+ FAKE_USE = 44,
+ MEMBARRIER = 45,
+ JUMP_TABLE_DEBUG_INFO = 46,
+ RELOC_NONE = 47,
+ CONVERGENCECTRL_ENTRY = 48,
+ CONVERGENCECTRL_ANCHOR = 49,
+ CONVERGENCECTRL_LOOP = 50,
+ CONVERGENCECTRL_GLUE = 51,
+ G_ASSERT_SEXT = 52,
+ G_ASSERT_ZEXT = 53,
+ G_ASSERT_ALIGN = 54,
+ G_ADD = 55,
+ G_SUB = 56,
+ G_MUL = 57,
+ G_SDIV = 58,
+ G_UDIV = 59,
+ G_SREM = 60,
+ G_UREM = 61,
+ G_SDIVREM = 62,
+ G_UDIVREM = 63,
+ G_AND = 64,
+ G_OR = 65,
+ G_XOR = 66,
+ G_ABDS = 67,
+ G_ABDU = 68,
+ G_UAVGFLOOR = 69,
+ G_UAVGCEIL = 70,
+ G_SAVGFLOOR = 71,
+ G_SAVGCEIL = 72,
+ G_IMPLICIT_DEF = 73,
+ G_PHI = 74,
+ G_FRAME_INDEX = 75,
+ G_GLOBAL_VALUE = 76,
+ G_PTRAUTH_GLOBAL_VALUE = 77,
+ G_CONSTANT_POOL = 78,
+ G_EXTRACT = 79,
+ G_UNMERGE_VALUES = 80,
+ G_INSERT = 81,
+ G_MERGE_VALUES = 82,
+ G_BUILD_VECTOR = 83,
+ G_BUILD_VECTOR_TRUNC = 84,
+ G_CONCAT_VECTORS = 85,
+ G_PTRTOINT = 86,
+ G_INTTOPTR = 87,
+ G_BITCAST = 88,
+ G_FREEZE = 89,
+ G_CONSTANT_FOLD_BARRIER = 90,
+ G_INTRINSIC_FPTRUNC_ROUND = 91,
+ G_INTRINSIC_TRUNC = 92,
+ G_INTRINSIC_ROUND = 93,
+ G_INTRINSIC_LRINT = 94,
+ G_INTRINSIC_LLRINT = 95,
+ G_INTRINSIC_ROUNDEVEN = 96,
+ G_READCYCLECOUNTER = 97,
+ G_READSTEADYCOUNTER = 98,
+ G_LOAD = 99,
+ G_SEXTLOAD = 100,
+ G_ZEXTLOAD = 101,
+ G_INDEXED_LOAD = 102,
+ G_INDEXED_SEXTLOAD = 103,
+ G_INDEXED_ZEXTLOAD = 104,
+ G_STORE = 105,
+ G_INDEXED_STORE = 106,
+ G_ATOMIC_CMPXCHG_WITH_SUCCESS = 107,
+ G_ATOMIC_CMPXCHG = 108,
+ G_ATOMICRMW_XCHG = 109,
+ G_ATOMICRMW_ADD = 110,
+ G_ATOMICRMW_SUB = 111,
+ G_ATOMICRMW_AND = 112,
+ G_ATOMICRMW_NAND = 113,
+ G_ATOMICRMW_OR = 114,
+ G_ATOMICRMW_XOR = 115,
+ G_ATOMICRMW_MAX = 116,
+ G_ATOMICRMW_MIN = 117,
+ G_ATOMICRMW_UMAX = 118,
+ G_ATOMICRMW_UMIN = 119,
+ G_ATOMICRMW_FADD = 120,
+ G_ATOMICRMW_FSUB = 121,
+ G_ATOMICRMW_FMAX = 122,
+ G_ATOMICRMW_FMIN = 123,
+ G_ATOMICRMW_FMAXIMUM = 124,
+ G_ATOMICRMW_FMINIMUM = 125,
+ G_ATOMICRMW_UINC_WRAP = 126,
+ G_ATOMICRMW_UDEC_WRAP = 127,
+ G_ATOMICRMW_USUB_COND = 128,
+ G_ATOMICRMW_USUB_SAT = 129,
+ G_FENCE = 130,
+ G_PREFETCH = 131,
+ G_BRCOND = 132,
+ G_BRINDIRECT = 133,
+ G_INVOKE_REGION_START = 134,
+ G_INTRINSIC = 135,
+ G_INTRINSIC_W_SIDE_EFFECTS = 136,
+ G_INTRINSIC_CONVERGENT = 137,
+ G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 138,
+ G_ANYEXT = 139,
+ G_TRUNC = 140,
+ G_TRUNC_SSAT_S = 141,
+ G_TRUNC_SSAT_U = 142,
+ G_TRUNC_USAT_U = 143,
+ G_CONSTANT = 144,
+ G_FCONSTANT = 145,
+ G_VASTART = 146,
+ G_VAARG = 147,
+ G_SEXT = 148,
+ G_SEXT_INREG = 149,
+ G_ZEXT = 150,
+ G_SHL = 151,
+ G_LSHR = 152,
+ G_ASHR = 153,
+ G_FSHL = 154,
+ G_FSHR = 155,
+ G_ROTR = 156,
+ G_ROTL = 157,
+ G_ICMP = 158,
+ G_FCMP = 159,
+ G_SCMP = 160,
+ G_UCMP = 161,
+ G_SELECT = 162,
+ G_UADDO = 163,
+ G_UADDE = 164,
+ G_USUBO = 165,
+ G_USUBE = 166,
+ G_SADDO = 167,
+ G_SADDE = 168,
+ G_SSUBO = 169,
+ G_SSUBE = 170,
+ G_UMULO = 171,
+ G_SMULO = 172,
+ G_UMULH = 173,
+ G_SMULH = 174,
+ G_UADDSAT = 175,
+ G_SADDSAT = 176,
+ G_USUBSAT = 177,
+ G_SSUBSAT = 178,
+ G_USHLSAT = 179,
+ G_SSHLSAT = 180,
+ G_SMULFIX = 181,
+ G_UMULFIX = 182,
+ G_SMULFIXSAT = 183,
+ G_UMULFIXSAT = 184,
+ G_SDIVFIX = 185,
+ G_UDIVFIX = 186,
+ G_SDIVFIXSAT = 187,
+ G_UDIVFIXSAT = 188,
+ G_FADD = 189,
+ G_FSUB = 190,
+ G_FMUL = 191,
+ G_FMA = 192,
+ G_FMAD = 193,
+ G_FDIV = 194,
+ G_FREM = 195,
+ G_FMODF = 196,
+ G_FPOW = 197,
+ G_FPOWI = 198,
+ G_FEXP = 199,
+ G_FEXP2 = 200,
+ G_FEXP10 = 201,
+ G_FLOG = 202,
+ G_FLOG2 = 203,
+ G_FLOG10 = 204,
+ G_FLDEXP = 205,
+ G_FFREXP = 206,
+ G_FNEG = 207,
+ G_FPEXT = 208,
+ G_FPTRUNC = 209,
+ G_FPTOSI = 210,
+ G_FPTOUI = 211,
+ G_SITOFP = 212,
+ G_UITOFP = 213,
+ G_FPTOSI_SAT = 214,
+ G_FPTOUI_SAT = 215,
+ G_FABS = 216,
+ G_FCOPYSIGN = 217,
+ G_IS_FPCLASS = 218,
+ G_FCANONICALIZE = 219,
+ G_FMINNUM = 220,
+ G_FMAXNUM = 221,
+ G_FMINNUM_IEEE = 222,
+ G_FMAXNUM_IEEE = 223,
+ G_FMINIMUM = 224,
+ G_FMAXIMUM = 225,
+ G_FMINIMUMNUM = 226,
+ G_FMAXIMUMNUM = 227,
+ G_GET_FPENV = 228,
+ G_SET_FPENV = 229,
+ G_RESET_FPENV = 230,
+ G_GET_FPMODE = 231,
+ G_SET_FPMODE = 232,
+ G_RESET_FPMODE = 233,
+ G_GET_ROUNDING = 234,
+ G_SET_ROUNDING = 235,
+ G_PTR_ADD = 236,
+ G_PTRMASK = 237,
+ G_SMIN = 238,
+ G_SMAX = 239,
+ G_UMIN = 240,
+ G_UMAX = 241,
+ G_ABS = 242,
+ G_LROUND = 243,
+ G_LLROUND = 244,
+ G_BR = 245,
+ G_BRJT = 246,
+ G_VSCALE = 247,
+ G_INSERT_SUBVECTOR = 248,
+ G_EXTRACT_SUBVECTOR = 249,
+ G_INSERT_VECTOR_ELT = 250,
+ G_EXTRACT_VECTOR_ELT = 251,
+ G_SHUFFLE_VECTOR = 252,
+ G_SPLAT_VECTOR = 253,
+ G_STEP_VECTOR = 254,
+ G_VECTOR_COMPRESS = 255,
+ G_CTTZ = 256,
+ G_CTTZ_ZERO_UNDEF = 257,
+ G_CTLZ = 258,
+ G_CTLZ_ZERO_UNDEF = 259,
+ G_CTPOP = 260,
+ G_BSWAP = 261,
+ G_BITREVERSE = 262,
+ G_FCEIL = 263,
+ G_FCOS = 264,
+ G_FSIN = 265,
+ G_FSINCOS = 266,
+ G_FTAN = 267,
+ G_FACOS = 268,
+ G_FASIN = 269,
+ G_FATAN = 270,
+ G_FATAN2 = 271,
+ G_FCOSH = 272,
+ G_FSINH = 273,
+ G_FTANH = 274,
+ G_FSQRT = 275,
+ G_FFLOOR = 276,
+ G_FRINT = 277,
+ G_FNEARBYINT = 278,
+ G_ADDRSPACE_CAST = 279,
+ G_BLOCK_ADDR = 280,
+ G_JUMP_TABLE = 281,
+ G_DYN_STACKALLOC = 282,
+ G_STACKSAVE = 283,
+ G_STACKRESTORE = 284,
+ G_STRICT_FADD = 285,
+ G_STRICT_FSUB = 286,
+ G_STRICT_FMUL = 287,
+ G_STRICT_FDIV = 288,
+ G_STRICT_FREM = 289,
+ G_STRICT_FMA = 290,
+ G_STRICT_FSQRT = 291,
+ G_STRICT_FLDEXP = 292,
+ G_READ_REGISTER = 293,
+ G_WRITE_REGISTER = 294,
+ G_MEMCPY = 295,
+ G_MEMCPY_INLINE = 296,
+ G_MEMMOVE = 297,
+ G_MEMSET = 298,
+ G_BZERO = 299,
+ G_TRAP = 300,
+ G_DEBUGTRAP = 301,
+ G_UBSANTRAP = 302,
+ G_VECREDUCE_SEQ_FADD = 303,
+ G_VECREDUCE_SEQ_FMUL = 304,
+ G_VECREDUCE_FADD = 305,
+ G_VECREDUCE_FMUL = 306,
+ G_VECREDUCE_FMAX = 307,
+ G_VECREDUCE_FMIN = 308,
+ G_VECREDUCE_FMAXIMUM = 309,
+ G_VECREDUCE_FMINIMUM = 310,
+ G_VECREDUCE_ADD = 311,
+ G_VECREDUCE_MUL = 312,
+ G_VECREDUCE_AND = 313,
+ G_VECREDUCE_OR = 314,
+ G_VECREDUCE_XOR = 315,
+ G_VECREDUCE_SMAX = 316,
+ G_VECREDUCE_SMIN = 317,
+ G_VECREDUCE_UMAX = 318,
+ G_VECREDUCE_UMIN = 319,
+ G_SBFX = 320,
+ G_UBFX = 321,
+ ADDSri = 322,
+ ADDSrr = 323,
+ ADDSrsi = 324,
+ ADDSrsr = 325,
+ ADJCALLSTACKDOWN = 326,
+ ADJCALLSTACKUP = 327,
+ ASRi = 328,
+ ASRr = 329,
+ ASRs1 = 330,
+ B = 331,
+ BCCZi64 = 332,
+ BCCi64 = 333,
+ BLX_noip = 334,
+ BLX_pred_noip = 335,
+ BL_PUSHLR = 336,
+ BMOVPCB_CALL = 337,
+ BMOVPCRX_CALL = 338,
+ BR_JTadd = 339,
+ BR_JTm_i12 = 340,
+ BR_JTm_rs = 341,
+ BR_JTr = 342,
+ BX_CALL = 343,
+ CMP_SWAP_16 = 344,
+ CMP_SWAP_32 = 345,
+ CMP_SWAP_64 = 346,
+ CMP_SWAP_8 = 347,
+ CONSTPOOL_ENTRY = 348,
+ COPY_STRUCT_BYVAL_I32 = 349,
+ ITasm = 350,
+ Int_eh_sjlj_dispatchsetup = 351,
+ Int_eh_sjlj_longjmp = 352,
+ Int_eh_sjlj_setjmp = 353,
+ Int_eh_sjlj_setjmp_nofp = 354,
+ Int_eh_sjlj_setup_dispatch = 355,
+ JUMPTABLE_ADDRS = 356,
+ JUMPTABLE_INSTS = 357,
+ JUMPTABLE_TBB = 358,
+ JUMPTABLE_TBH = 359,
+ KCFI_CHECK_ARM = 360,
+ KCFI_CHECK_Thumb1 = 361,
+ KCFI_CHECK_Thumb2 = 362,
+ LDMIA_RET = 363,
+ LDRBT_POST = 364,
+ LDRConstPool = 365,
+ LDRHTii = 366,
+ LDRLIT_ga_abs = 367,
+ LDRLIT_ga_pcrel = 368,
+ LDRLIT_ga_pcrel_ldr = 369,
+ LDRSBTii = 370,
+ LDRSHTii = 371,
+ LDRT_POST = 372,
+ LEApcrel = 373,
+ LEApcrelJT = 374,
+ LOADDUAL = 375,
+ LSLi = 376,
+ LSLr = 377,
+ LSRi = 378,
+ LSRr = 379,
+ LSRs1 = 380,
+ MEMCPY = 381,
+ MLAv5 = 382,
+ MOVCCi = 383,
+ MOVCCi16 = 384,
+ MOVCCi32imm = 385,
+ MOVCCr = 386,
+ MOVCCsi = 387,
+ MOVCCsr = 388,
+ MOVPCRX = 389,
+ MOVTi16_ga_pcrel = 390,
+ MOV_ga_pcrel = 391,
+ MOV_ga_pcrel_ldr = 392,
+ MOVi16_ga_pcrel = 393,
+ MOVi32imm = 394,
+ MQPRCopy = 395,
+ MQQPRLoad = 396,
+ MQQPRStore = 397,
+ MQQQQPRLoad = 398,
+ MQQQQPRStore = 399,
+ MULv5 = 400,
+ MVE_MEMCPYLOOPINST = 401,
+ MVE_MEMSETLOOPINST = 402,
+ MVNCCi = 403,
+ PICADD = 404,
+ PICLDR = 405,
+ PICLDRB = 406,
+ PICLDRH = 407,
+ PICLDRSB = 408,
+ PICLDRSH = 409,
+ PICSTR = 410,
+ PICSTRB = 411,
+ PICSTRH = 412,
+ RORi = 413,
+ RORr = 414,
+ RRX = 415,
+ RRXi = 416,
+ RSBSri = 417,
+ RSBSrsi = 418,
+ RSBSrsr = 419,
+ SEH_EpilogEnd = 420,
+ SEH_EpilogStart = 421,
+ SEH_Nop = 422,
+ SEH_Nop_Ret = 423,
+ SEH_PrologEnd = 424,
+ SEH_SaveFRegs = 425,
+ SEH_SaveLR = 426,
+ SEH_SaveRegs = 427,
+ SEH_SaveRegs_Ret = 428,
+ SEH_SaveSP = 429,
+ SEH_StackAlloc = 430,
+ SMLALv5 = 431,
+ SMULLv5 = 432,
+ SPACE = 433,
+ STOREDUAL = 434,
+ STRBT_POST = 435,
+ STRBi_preidx = 436,
+ STRBr_preidx = 437,
+ STRH_preidx = 438,
+ STRT_POST = 439,
+ STRi_preidx = 440,
+ STRr_preidx = 441,
+ SUBS_PC_LR = 442,
+ SUBSri = 443,
+ SUBSrr = 444,
+ SUBSrsi = 445,
+ SUBSrsr = 446,
+ SpeculationBarrierISBDSBEndBB = 447,
+ SpeculationBarrierSBEndBB = 448,
+ TAILJMPd = 449,
+ TAILJMPr = 450,
+ TAILJMPr4 = 451,
+ TCRETURNdi = 452,
+ TCRETURNri = 453,
+ TCRETURNrinotr12 = 454,
+ TPsoft = 455,
+ UMLALv5 = 456,
+ UMULLv5 = 457,
+ VLD1LNdAsm_16 = 458,
+ VLD1LNdAsm_32 = 459,
+ VLD1LNdAsm_8 = 460,
+ VLD1LNdWB_fixed_Asm_16 = 461,
+ VLD1LNdWB_fixed_Asm_32 = 462,
+ VLD1LNdWB_fixed_Asm_8 = 463,
+ VLD1LNdWB_register_Asm_16 = 464,
+ VLD1LNdWB_register_Asm_32 = 465,
+ VLD1LNdWB_register_Asm_8 = 466,
+ VLD2LNdAsm_16 = 467,
+ VLD2LNdAsm_32 = 468,
+ VLD2LNdAsm_8 = 469,
+ VLD2LNdWB_fixed_Asm_16 = 470,
+ VLD2LNdWB_fixed_Asm_32 = 471,
+ VLD2LNdWB_fixed_Asm_8 = 472,
+ VLD2LNdWB_register_Asm_16 = 473,
+ VLD2LNdWB_register_Asm_32 = 474,
+ VLD2LNdWB_register_Asm_8 = 475,
+ VLD2LNqAsm_16 = 476,
+ VLD2LNqAsm_32 = 477,
+ VLD2LNqWB_fixed_Asm_16 = 478,
+ VLD2LNqWB_fixed_Asm_32 = 479,
+ VLD2LNqWB_register_Asm_16 = 480,
+ VLD2LNqWB_register_Asm_32 = 481,
+ VLD3DUPdAsm_16 = 482,
+ VLD3DUPdAsm_32 = 483,
+ VLD3DUPdAsm_8 = 484,
+ VLD3DUPdWB_fixed_Asm_16 = 485,
+ VLD3DUPdWB_fixed_Asm_32 = 486,
+ VLD3DUPdWB_fixed_Asm_8 = 487,
+ VLD3DUPdWB_register_Asm_16 = 488,
+ VLD3DUPdWB_register_Asm_32 = 489,
+ VLD3DUPdWB_register_Asm_8 = 490,
+ VLD3DUPqAsm_16 = 491,
+ VLD3DUPqAsm_32 = 492,
+ VLD3DUPqAsm_8 = 493,
+ VLD3DUPqWB_fixed_Asm_16 = 494,
+ VLD3DUPqWB_fixed_Asm_32 = 495,
+ VLD3DUPqWB_fixed_Asm_8 = 496,
+ VLD3DUPqWB_register_Asm_16 = 497,
+ VLD3DUPqWB_register_Asm_32 = 498,
+ VLD3DUPqWB_register_Asm_8 = 499,
+ VLD3LNdAsm_16 = 500,
+ VLD3LNdAsm_32 = 501,
+ VLD3LNdAsm_8 = 502,
+ VLD3LNdWB_fixed_Asm_16 = 503,
+ VLD3LNdWB_fixed_Asm_32 = 504,
+ VLD3LNdWB_fixed_Asm_8 = 505,
+ VLD3LNdWB_register_Asm_16 = 506,
+ VLD3LNdWB_register_Asm_32 = 507,
+ VLD3LNdWB_register_Asm_8 = 508,
+ VLD3LNqAsm_16 = 509,
+ VLD3LNqAsm_32 = 510,
+ VLD3LNqWB_fixed_Asm_16 = 511,
+ VLD3LNqWB_fixed_Asm_32 = 512,
+ VLD3LNqWB_register_Asm_16 = 513,
+ VLD3LNqWB_register_Asm_32 = 514,
+ VLD3dAsm_16 = 515,
+ VLD3dAsm_32 = 516,
+ VLD3dAsm_8 = 517,
+ VLD3dWB_fixed_Asm_16 = 518,
+ VLD3dWB_fixed_Asm_32 = 519,
+ VLD3dWB_fixed_Asm_8 = 520,
+ VLD3dWB_register_Asm_16 = 521,
+ VLD3dWB_register_Asm_32 = 522,
+ VLD3dWB_register_Asm_8 = 523,
+ VLD3qAsm_16 = 524,
+ VLD3qAsm_32 = 525,
+ VLD3qAsm_8 = 526,
+ VLD3qWB_fixed_Asm_16 = 527,
+ VLD3qWB_fixed_Asm_32 = 528,
+ VLD3qWB_fixed_Asm_8 = 529,
+ VLD3qWB_register_Asm_16 = 530,
+ VLD3qWB_register_Asm_32 = 531,
+ VLD3qWB_register_Asm_8 = 532,
+ VLD4DUPdAsm_16 = 533,
+ VLD4DUPdAsm_32 = 534,
+ VLD4DUPdAsm_8 = 535,
+ VLD4DUPdWB_fixed_Asm_16 = 536,
+ VLD4DUPdWB_fixed_Asm_32 = 537,
+ VLD4DUPdWB_fixed_Asm_8 = 538,
+ VLD4DUPdWB_register_Asm_16 = 539,
+ VLD4DUPdWB_register_Asm_32 = 540,
+ VLD4DUPdWB_register_Asm_8 = 541,
+ VLD4DUPqAsm_16 = 542,
+ VLD4DUPqAsm_32 = 543,
+ VLD4DUPqAsm_8 = 544,
+ VLD4DUPqWB_fixed_Asm_16 = 545,
+ VLD4DUPqWB_fixed_Asm_32 = 546,
+ VLD4DUPqWB_fixed_Asm_8 = 547,
+ VLD4DUPqWB_register_Asm_16 = 548,
+ VLD4DUPqWB_register_Asm_32 = 549,
+ VLD4DUPqWB_register_Asm_8 = 550,
+ VLD4LNdAsm_16 = 551,
+ VLD4LNdAsm_32 = 552,
+ VLD4LNdAsm_8 = 553,
+ VLD4LNdWB_fixed_Asm_16 = 554,
+ VLD4LNdWB_fixed_Asm_32 = 555,
+ VLD4LNdWB_fixed_Asm_8 = 556,
+ VLD4LNdWB_register_Asm_16 = 557,
+ VLD4LNdWB_register_Asm_32 = 558,
+ VLD4LNdWB_register_Asm_8 = 559,
+ VLD4LNqAsm_16 = 560,
+ VLD4LNqAsm_32 = 561,
+ VLD4LNqWB_fixed_Asm_16 = 562,
+ VLD4LNqWB_fixed_Asm_32 = 563,
+ VLD4LNqWB_register_Asm_16 = 564,
+ VLD4LNqWB_register_Asm_32 = 565,
+ VLD4dAsm_16 = 566,
+ VLD4dAsm_32 = 567,
+ VLD4dAsm_8 = 568,
+ VLD4dWB_fixed_Asm_16 = 569,
+ VLD4dWB_fixed_Asm_32 = 570,
+ VLD4dWB_fixed_Asm_8 = 571,
+ VLD4dWB_register_Asm_16 = 572,
+ VLD4dWB_register_Asm_32 = 573,
+ VLD4dWB_register_Asm_8 = 574,
+ VLD4qAsm_16 = 575,
+ VLD4qAsm_32 = 576,
+ VLD4qAsm_8 = 577,
+ VLD4qWB_fixed_Asm_16 = 578,
+ VLD4qWB_fixed_Asm_32 = 579,
+ VLD4qWB_fixed_Asm_8 = 580,
+ VLD4qWB_register_Asm_16 = 581,
+ VLD4qWB_register_Asm_32 = 582,
+ VLD4qWB_register_Asm_8 = 583,
+ VMOVD0 = 584,
+ VMOVDcc = 585,
+ VMOVHcc = 586,
+ VMOVQ0 = 587,
+ VMOVScc = 588,
+ VST1LNdAsm_16 = 589,
+ VST1LNdAsm_32 = 590,
+ VST1LNdAsm_8 = 591,
+ VST1LNdWB_fixed_Asm_16 = 592,
+ VST1LNdWB_fixed_Asm_32 = 593,
+ VST1LNdWB_fixed_Asm_8 = 594,
+ VST1LNdWB_register_Asm_16 = 595,
+ VST1LNdWB_register_Asm_32 = 596,
+ VST1LNdWB_register_Asm_8 = 597,
+ VST2LNdAsm_16 = 598,
+ VST2LNdAsm_32 = 599,
+ VST2LNdAsm_8 = 600,
+ VST2LNdWB_fixed_Asm_16 = 601,
+ VST2LNdWB_fixed_Asm_32 = 602,
+ VST2LNdWB_fixed_Asm_8 = 603,
+ VST2LNdWB_register_Asm_16 = 604,
+ VST2LNdWB_register_Asm_32 = 605,
+ VST2LNdWB_register_Asm_8 = 606,
+ VST2LNqAsm_16 = 607,
+ VST2LNqAsm_32 = 608,
+ VST2LNqWB_fixed_Asm_16 = 609,
+ VST2LNqWB_fixed_Asm_32 = 610,
+ VST2LNqWB_register_Asm_16 = 611,
+ VST2LNqWB_register_Asm_32 = 612,
+ VST3LNdAsm_16 = 613,
+ VST3LNdAsm_32 = 614,
+ VST3LNdAsm_8 = 615,
+ VST3LNdWB_fixed_Asm_16 = 616,
+ VST3LNdWB_fixed_Asm_32 = 617,
+ VST3LNdWB_fixed_Asm_8 = 618,
+ VST3LNdWB_register_Asm_16 = 619,
+ VST3LNdWB_register_Asm_32 = 620,
+ VST3LNdWB_register_Asm_8 = 621,
+ VST3LNqAsm_16 = 622,
+ VST3LNqAsm_32 = 623,
+ VST3LNqWB_fixed_Asm_16 = 624,
+ VST3LNqWB_fixed_Asm_32 = 625,
+ VST3LNqWB_register_Asm_16 = 626,
+ VST3LNqWB_register_Asm_32 = 627,
+ VST3dAsm_16 = 628,
+ VST3dAsm_32 = 629,
+ VST3dAsm_8 = 630,
+ VST3dWB_fixed_Asm_16 = 631,
+ VST3dWB_fixed_Asm_32 = 632,
+ VST3dWB_fixed_Asm_8 = 633,
+ VST3dWB_register_Asm_16 = 634,
+ VST3dWB_register_Asm_32 = 635,
+ VST3dWB_register_Asm_8 = 636,
+ VST3qAsm_16 = 637,
+ VST3qAsm_32 = 638,
+ VST3qAsm_8 = 639,
+ VST3qWB_fixed_Asm_16 = 640,
+ VST3qWB_fixed_Asm_32 = 641,
+ VST3qWB_fixed_Asm_8 = 642,
+ VST3qWB_register_Asm_16 = 643,
+ VST3qWB_register_Asm_32 = 644,
+ VST3qWB_register_Asm_8 = 645,
+ VST4LNdAsm_16 = 646,
+ VST4LNdAsm_32 = 647,
+ VST4LNdAsm_8 = 648,
+ VST4LNdWB_fixed_Asm_16 = 649,
+ VST4LNdWB_fixed_Asm_32 = 650,
+ VST4LNdWB_fixed_Asm_8 = 651,
+ VST4LNdWB_register_Asm_16 = 652,
+ VST4LNdWB_register_Asm_32 = 653,
+ VST4LNdWB_register_Asm_8 = 654,
+ VST4LNqAsm_16 = 655,
+ VST4LNqAsm_32 = 656,
+ VST4LNqWB_fixed_Asm_16 = 657,
+ VST4LNqWB_fixed_Asm_32 = 658,
+ VST4LNqWB_register_Asm_16 = 659,
+ VST4LNqWB_register_Asm_32 = 660,
+ VST4dAsm_16 = 661,
+ VST4dAsm_32 = 662,
+ VST4dAsm_8 = 663,
+ VST4dWB_fixed_Asm_16 = 664,
+ VST4dWB_fixed_Asm_32 = 665,
+ VST4dWB_fixed_Asm_8 = 666,
+ VST4dWB_register_Asm_16 = 667,
+ VST4dWB_register_Asm_32 = 668,
+ VST4dWB_register_Asm_8 = 669,
+ VST4qAsm_16 = 670,
+ VST4qAsm_32 = 671,
+ VST4qAsm_8 = 672,
+ VST4qWB_fixed_Asm_16 = 673,
+ VST4qWB_fixed_Asm_32 = 674,
+ VST4qWB_fixed_Asm_8 = 675,
+ VST4qWB_register_Asm_16 = 676,
+ VST4qWB_register_Asm_32 = 677,
+ VST4qWB_register_Asm_8 = 678,
+ WIN__CHKSTK = 679,
+ WIN__DBZCHK = 680,
+ t2ADDSri = 681,
+ t2ADDSrr = 682,
+ t2ADDSrs = 683,
+ t2BF_LabelPseudo = 684,
+ t2BR_JT = 685,
+ t2CALL_BTI = 686,
+ t2DoLoopStart = 687,
+ t2DoLoopStartTP = 688,
+ t2LDMIA_RET = 689,
+ t2LDRB_OFFSET_imm = 690,
+ t2LDRB_POST_imm = 691,
+ t2LDRB_PRE_imm = 692,
+ t2LDRBpcrel = 693,
+ t2LDRConstPool = 694,
+ t2LDRH_OFFSET_imm = 695,
+ t2LDRH_POST_imm = 696,
+ t2LDRH_PRE_imm = 697,
+ t2LDRHpcrel = 698,
+ t2LDRLIT_ga_pcrel = 699,
+ t2LDRSB_OFFSET_imm = 700,
+ t2LDRSB_POST_imm = 701,
+ t2LDRSB_PRE_imm = 702,
+ t2LDRSBpcrel = 703,
+ t2LDRSH_OFFSET_imm = 704,
+ t2LDRSH_POST_imm = 705,
+ t2LDRSH_PRE_imm = 706,
+ t2LDRSHpcrel = 707,
+ t2LDR_POST_imm = 708,
+ t2LDR_PRE_imm = 709,
+ t2LDRpci_pic = 710,
+ t2LDRpcrel = 711,
+ t2LEApcrel = 712,
+ t2LEApcrelJT = 713,
+ t2LoopDec = 714,
+ t2LoopEnd = 715,
+ t2LoopEndDec = 716,
+ t2MOVCCasr = 717,
+ t2MOVCCi = 718,
+ t2MOVCCi16 = 719,
+ t2MOVCCi32imm = 720,
+ t2MOVCClsl = 721,
+ t2MOVCClsr = 722,
+ t2MOVCCr = 723,
+ t2MOVCCror = 724,
+ t2MOVSsi = 725,
+ t2MOVSsr = 726,
+ t2MOVTi16_ga_pcrel = 727,
+ t2MOV_ga_pcrel = 728,
+ t2MOVi16_ga_pcrel = 729,
+ t2MOVi32imm = 730,
+ t2MOVsi = 731,
+ t2MOVsr = 732,
+ t2MVNCCi = 733,
+ t2RSBSri = 734,
+ t2RSBSrs = 735,
+ t2STRB_OFFSET_imm = 736,
+ t2STRB_POST_imm = 737,
+ t2STRB_PRE_imm = 738,
+ t2STRB_preidx = 739,
+ t2STRH_OFFSET_imm = 740,
+ t2STRH_POST_imm = 741,
+ t2STRH_PRE_imm = 742,
+ t2STRH_preidx = 743,
+ t2STR_POST_imm = 744,
+ t2STR_PRE_imm = 745,
+ t2STR_preidx = 746,
+ t2SUBSri = 747,
+ t2SUBSrr = 748,
+ t2SUBSrs = 749,
+ t2SpeculationBarrierISBDSBEndBB = 750,
+ t2SpeculationBarrierSBEndBB = 751,
+ t2TBB_JT = 752,
+ t2TBH_JT = 753,
+ t2WhileLoopSetup = 754,
+ t2WhileLoopStart = 755,
+ t2WhileLoopStartLR = 756,
+ t2WhileLoopStartTP = 757,
+ tADCS = 758,
+ tADDSi3 = 759,
+ tADDSi8 = 760,
+ tADDSrr = 761,
+ tADDframe = 762,
+ tADJCALLSTACKDOWN = 763,
+ tADJCALLSTACKUP = 764,
+ tBLXNS_CALL = 765,
+ tBLXr_noip = 766,
+ tBL_PUSHLR = 767,
+ tBRIND = 768,
+ tBR_JTr = 769,
+ tBXNS_RET = 770,
+ tBX_CALL = 771,
+ tBX_RET = 772,
+ tBX_RET_vararg = 773,
+ tBfar = 774,
+ tCMP_SWAP_16 = 775,
+ tCMP_SWAP_32 = 776,
+ tCMP_SWAP_8 = 777,
+ tLDMIA_UPD = 778,
+ tLDRConstPool = 779,
+ tLDRLIT_ga_abs = 780,
+ tLDRLIT_ga_pcrel = 781,
+ tLDR_postidx = 782,
+ tLDRpci_pic = 783,
+ tLEApcrel = 784,
+ tLEApcrelJT = 785,
+ tLSLSri = 786,
+ tMOVCCr_pseudo = 787,
+ tMOVi32imm = 788,
+ tPOP_RET = 789,
+ tRSBS = 790,
+ tSBCS = 791,
+ tSUBSi3 = 792,
+ tSUBSi8 = 793,
+ tSUBSrr = 794,
+ tTAILJMPd = 795,
+ tTAILJMPdND = 796,
+ tTAILJMPr = 797,
+ tTBB_JT = 798,
+ tTBH_JT = 799,
+ tTPsoft = 800,
+ ADCri = 801,
+ ADCrr = 802,
+ ADCrsi = 803,
+ ADCrsr = 804,
+ ADDri = 805,
+ ADDrr = 806,
+ ADDrsi = 807,
+ ADDrsr = 808,
+ ADR = 809,
+ AESD = 810,
+ AESE = 811,
+ AESIMC = 812,
+ AESMC = 813,
+ ANDri = 814,
+ ANDrr = 815,
+ ANDrsi = 816,
+ ANDrsr = 817,
+ BF16VDOTI_VDOTD = 818,
+ BF16VDOTI_VDOTQ = 819,
+ BF16VDOTS_VDOTD = 820,
+ BF16VDOTS_VDOTQ = 821,
+ BF16_VCVT = 822,
+ BF16_VCVTB = 823,
+ BF16_VCVTT = 824,
+ BFC = 825,
+ BFI = 826,
+ BICri = 827,
+ BICrr = 828,
+ BICrsi = 829,
+ BICrsr = 830,
+ BKPT = 831,
+ BL = 832,
+ BLX = 833,
+ BLX_pred = 834,
+ BLXi = 835,
+ BL_pred = 836,
+ BX = 837,
+ BXJ = 838,
+ BX_RET = 839,
+ BX_pred = 840,
+ Bcc = 841,
+ CDE_CX1 = 842,
+ CDE_CX1A = 843,
+ CDE_CX1D = 844,
+ CDE_CX1DA = 845,
+ CDE_CX2 = 846,
+ CDE_CX2A = 847,
+ CDE_CX2D = 848,
+ CDE_CX2DA = 849,
+ CDE_CX3 = 850,
+ CDE_CX3A = 851,
+ CDE_CX3D = 852,
+ CDE_CX3DA = 853,
+ CDE_VCX1A_fpdp = 854,
+ CDE_VCX1A_fpsp = 855,
+ CDE_VCX1A_vec = 856,
+ CDE_VCX1_fpdp = 857,
+ CDE_VCX1_fpsp = 858,
+ CDE_VCX1_vec = 859,
+ CDE_VCX2A_fpdp = 860,
+ CDE_VCX2A_fpsp = 861,
+ CDE_VCX2A_vec = 862,
+ CDE_VCX2_fpdp = 863,
+ CDE_VCX2_fpsp = 864,
+ CDE_VCX2_vec = 865,
+ CDE_VCX3A_fpdp = 866,
+ CDE_VCX3A_fpsp = 867,
+ CDE_VCX3A_vec = 868,
+ CDE_VCX3_fpdp = 869,
+ CDE_VCX3_fpsp = 870,
+ CDE_VCX3_vec = 871,
+ CDP = 872,
+ CDP2 = 873,
+ CLREX = 874,
+ CLZ = 875,
+ CMNri = 876,
+ CMNzrr = 877,
+ CMNzrsi = 878,
+ CMNzrsr = 879,
+ CMPri = 880,
+ CMPrr = 881,
+ CMPrsi = 882,
+ CMPrsr = 883,
+ CPS1p = 884,
+ CPS2p = 885,
+ CPS3p = 886,
+ CRC32B = 887,
+ CRC32CB = 888,
+ CRC32CH = 889,
+ CRC32CW = 890,
+ CRC32H = 891,
+ CRC32W = 892,
+ DBG = 893,
+ DMB = 894,
+ DSB = 895,
+ EORri = 896,
+ EORrr = 897,
+ EORrsi = 898,
+ EORrsr = 899,
+ ERET = 900,
+ FCONSTD = 901,
+ FCONSTH = 902,
+ FCONSTS = 903,
+ FLDMXDB_UPD = 904,
+ FLDMXIA = 905,
+ FLDMXIA_UPD = 906,
+ FMSTAT = 907,
+ FSTMXDB_UPD = 908,
+ FSTMXIA = 909,
+ FSTMXIA_UPD = 910,
+ HINT = 911,
+ HLT = 912,
+ HVC = 913,
+ ISB = 914,
+ LDA = 915,
+ LDAB = 916,
+ LDAEX = 917,
+ LDAEXB = 918,
+ LDAEXD = 919,
+ LDAEXH = 920,
+ LDAH = 921,
+ LDC2L_OFFSET = 922,
+ LDC2L_OPTION = 923,
+ LDC2L_POST = 924,
+ LDC2L_PRE = 925,
+ LDC2_OFFSET = 926,
+ LDC2_OPTION = 927,
+ LDC2_POST = 928,
+ LDC2_PRE = 929,
+ LDCL_OFFSET = 930,
+ LDCL_OPTION = 931,
+ LDCL_POST = 932,
+ LDCL_PRE = 933,
+ LDC_OFFSET = 934,
+ LDC_OPTION = 935,
+ LDC_POST = 936,
+ LDC_PRE = 937,
+ LDMDA = 938,
+ LDMDA_UPD = 939,
+ LDMDB = 940,
+ LDMDB_UPD = 941,
+ LDMIA = 942,
+ LDMIA_UPD = 943,
+ LDMIB = 944,
+ LDMIB_UPD = 945,
+ LDRBT_POST_IMM = 946,
+ LDRBT_POST_REG = 947,
+ LDRB_POST_IMM = 948,
+ LDRB_POST_REG = 949,
+ LDRB_PRE_IMM = 950,
+ LDRB_PRE_REG = 951,
+ LDRBi12 = 952,
+ LDRBrs = 953,
+ LDRD = 954,
+ LDRD_POST = 955,
+ LDRD_PRE = 956,
+ LDREX = 957,
+ LDREXB = 958,
+ LDREXD = 959,
+ LDREXH = 960,
+ LDRH = 961,
+ LDRHTi = 962,
+ LDRHTr = 963,
+ LDRH_POST = 964,
+ LDRH_PRE = 965,
+ LDRSB = 966,
+ LDRSBTi = 967,
+ LDRSBTr = 968,
+ LDRSB_POST = 969,
+ LDRSB_PRE = 970,
+ LDRSH = 971,
+ LDRSHTi = 972,
+ LDRSHTr = 973,
+ LDRSH_POST = 974,
+ LDRSH_PRE = 975,
+ LDRT_POST_IMM = 976,
+ LDRT_POST_REG = 977,
+ LDR_POST_IMM = 978,
+ LDR_POST_REG = 979,
+ LDR_PRE_IMM = 980,
+ LDR_PRE_REG = 981,
+ LDRcp = 982,
+ LDRi12 = 983,
+ LDRrs = 984,
+ MCR = 985,
+ MCR2 = 986,
+ MCRR = 987,
+ MCRR2 = 988,
+ MLA = 989,
+ MLS = 990,
+ MOVPCLR = 991,
+ MOVTi16 = 992,
+ MOVi = 993,
+ MOVi16 = 994,
+ MOVr = 995,
+ MOVr_TC = 996,
+ MOVsi = 997,
+ MOVsr = 998,
+ MRC = 999,
+ MRC2 = 1000,
+ MRRC = 1001,
+ MRRC2 = 1002,
+ MRS = 1003,
+ MRSbanked = 1004,
+ MRSsys = 1005,
+ MSR = 1006,
+ MSRbanked = 1007,
+ MSRi = 1008,
+ MUL = 1009,
+ MVE_ASRLi = 1010,
+ MVE_ASRLr = 1011,
+ MVE_DLSTP_16 = 1012,
+ MVE_DLSTP_32 = 1013,
+ MVE_DLSTP_64 = 1014,
+ MVE_DLSTP_8 = 1015,
+ MVE_LCTP = 1016,
+ MVE_LETP = 1017,
+ MVE_LSLLi = 1018,
+ MVE_LSLLr = 1019,
+ MVE_LSRL = 1020,
+ MVE_SQRSHR = 1021,
+ MVE_SQRSHRL = 1022,
+ MVE_SQSHL = 1023,
+ MVE_SQSHLL = 1024,
+ MVE_SRSHR = 1025,
+ MVE_SRSHRL = 1026,
+ MVE_UQRSHL = 1027,
+ MVE_UQRSHLL = 1028,
+ MVE_UQSHL = 1029,
+ MVE_UQSHLL = 1030,
+ MVE_URSHR = 1031,
+ MVE_URSHRL = 1032,
+ MVE_VABAVs16 = 1033,
+ MVE_VABAVs32 = 1034,
+ MVE_VABAVs8 = 1035,
+ MVE_VABAVu16 = 1036,
+ MVE_VABAVu32 = 1037,
+ MVE_VABAVu8 = 1038,
+ MVE_VABDf16 = 1039,
+ MVE_VABDf32 = 1040,
+ MVE_VABDs16 = 1041,
+ MVE_VABDs32 = 1042,
+ MVE_VABDs8 = 1043,
+ MVE_VABDu16 = 1044,
+ MVE_VABDu32 = 1045,
+ MVE_VABDu8 = 1046,
+ MVE_VABSf16 = 1047,
+ MVE_VABSf32 = 1048,
+ MVE_VABSs16 = 1049,
+ MVE_VABSs32 = 1050,
+ MVE_VABSs8 = 1051,
+ MVE_VADC = 1052,
+ MVE_VADCI = 1053,
+ MVE_VADDLVs32acc = 1054,
+ MVE_VADDLVs32no_acc = 1055,
+ MVE_VADDLVu32acc = 1056,
+ MVE_VADDLVu32no_acc = 1057,
+ MVE_VADDVs16acc = 1058,
+ MVE_VADDVs16no_acc = 1059,
+ MVE_VADDVs32acc = 1060,
+ MVE_VADDVs32no_acc = 1061,
+ MVE_VADDVs8acc = 1062,
+ MVE_VADDVs8no_acc = 1063,
+ MVE_VADDVu16acc = 1064,
+ MVE_VADDVu16no_acc = 1065,
+ MVE_VADDVu32acc = 1066,
+ MVE_VADDVu32no_acc = 1067,
+ MVE_VADDVu8acc = 1068,
+ MVE_VADDVu8no_acc = 1069,
+ MVE_VADD_qr_f16 = 1070,
+ MVE_VADD_qr_f32 = 1071,
+ MVE_VADD_qr_i16 = 1072,
+ MVE_VADD_qr_i32 = 1073,
+ MVE_VADD_qr_i8 = 1074,
+ MVE_VADDf16 = 1075,
+ MVE_VADDf32 = 1076,
+ MVE_VADDi16 = 1077,
+ MVE_VADDi32 = 1078,
+ MVE_VADDi8 = 1079,
+ MVE_VAND = 1080,
+ MVE_VBIC = 1081,
+ MVE_VBICimmi16 = 1082,
+ MVE_VBICimmi32 = 1083,
+ MVE_VBRSR16 = 1084,
+ MVE_VBRSR32 = 1085,
+ MVE_VBRSR8 = 1086,
+ MVE_VCADDf16 = 1087,
+ MVE_VCADDf32 = 1088,
+ MVE_VCADDi16 = 1089,
+ MVE_VCADDi32 = 1090,
+ MVE_VCADDi8 = 1091,
+ MVE_VCLSs16 = 1092,
+ MVE_VCLSs32 = 1093,
+ MVE_VCLSs8 = 1094,
+ MVE_VCLZs16 = 1095,
+ MVE_VCLZs32 = 1096,
+ MVE_VCLZs8 = 1097,
+ MVE_VCMLAf16 = 1098,
+ MVE_VCMLAf32 = 1099,
+ MVE_VCMPf16 = 1100,
+ MVE_VCMPf16r = 1101,
+ MVE_VCMPf32 = 1102,
+ MVE_VCMPf32r = 1103,
+ MVE_VCMPi16 = 1104,
+ MVE_VCMPi16r = 1105,
+ MVE_VCMPi32 = 1106,
+ MVE_VCMPi32r = 1107,
+ MVE_VCMPi8 = 1108,
+ MVE_VCMPi8r = 1109,
+ MVE_VCMPs16 = 1110,
+ MVE_VCMPs16r = 1111,
+ MVE_VCMPs32 = 1112,
+ MVE_VCMPs32r = 1113,
+ MVE_VCMPs8 = 1114,
+ MVE_VCMPs8r = 1115,
+ MVE_VCMPu16 = 1116,
+ MVE_VCMPu16r = 1117,
+ MVE_VCMPu32 = 1118,
+ MVE_VCMPu32r = 1119,
+ MVE_VCMPu8 = 1120,
+ MVE_VCMPu8r = 1121,
+ MVE_VCMULf16 = 1122,
+ MVE_VCMULf32 = 1123,
+ MVE_VCTP16 = 1124,
+ MVE_VCTP32 = 1125,
+ MVE_VCTP64 = 1126,
+ MVE_VCTP8 = 1127,
+ MVE_VCVTf16f32bh = 1128,
+ MVE_VCVTf16f32th = 1129,
+ MVE_VCVTf16s16_fix = 1130,
+ MVE_VCVTf16s16n = 1131,
+ MVE_VCVTf16u16_fix = 1132,
+ MVE_VCVTf16u16n = 1133,
+ MVE_VCVTf32f16bh = 1134,
+ MVE_VCVTf32f16th = 1135,
+ MVE_VCVTf32s32_fix = 1136,
+ MVE_VCVTf32s32n = 1137,
+ MVE_VCVTf32u32_fix = 1138,
+ MVE_VCVTf32u32n = 1139,
+ MVE_VCVTs16f16_fix = 1140,
+ MVE_VCVTs16f16a = 1141,
+ MVE_VCVTs16f16m = 1142,
+ MVE_VCVTs16f16n = 1143,
+ MVE_VCVTs16f16p = 1144,
+ MVE_VCVTs16f16z = 1145,
+ MVE_VCVTs32f32_fix = 1146,
+ MVE_VCVTs32f32a = 1147,
+ MVE_VCVTs32f32m = 1148,
+ MVE_VCVTs32f32n = 1149,
+ MVE_VCVTs32f32p = 1150,
+ MVE_VCVTs32f32z = 1151,
+ MVE_VCVTu16f16_fix = 1152,
+ MVE_VCVTu16f16a = 1153,
+ MVE_VCVTu16f16m = 1154,
+ MVE_VCVTu16f16n = 1155,
+ MVE_VCVTu16f16p = 1156,
+ MVE_VCVTu16f16z = 1157,
+ MVE_VCVTu32f32_fix = 1158,
+ MVE_VCVTu32f32a = 1159,
+ MVE_VCVTu32f32m = 1160,
+ MVE_VCVTu32f32n = 1161,
+ MVE_VCVTu32f32p = 1162,
+ MVE_VCVTu32f32z = 1163,
+ MVE_VDDUPu16 = 1164,
+ MVE_VDDUPu32 = 1165,
+ MVE_VDDUPu8 = 1166,
+ MVE_VDUP16 = 1167,
+ MVE_VDUP32 = 1168,
+ MVE_VDUP8 = 1169,
+ MVE_VDWDUPu16 = 1170,
+ MVE_VDWDUPu32 = 1171,
+ MVE_VDWDUPu8 = 1172,
+ MVE_VEOR = 1173,
+ MVE_VFMA_qr_Sf16 = 1174,
+ MVE_VFMA_qr_Sf32 = 1175,
+ MVE_VFMA_qr_f16 = 1176,
+ MVE_VFMA_qr_f32 = 1177,
+ MVE_VFMAf16 = 1178,
+ MVE_VFMAf32 = 1179,
+ MVE_VFMSf16 = 1180,
+ MVE_VFMSf32 = 1181,
+ MVE_VHADD_qr_s16 = 1182,
+ MVE_VHADD_qr_s32 = 1183,
+ MVE_VHADD_qr_s8 = 1184,
+ MVE_VHADD_qr_u16 = 1185,
+ MVE_VHADD_qr_u32 = 1186,
+ MVE_VHADD_qr_u8 = 1187,
+ MVE_VHADDs16 = 1188,
+ MVE_VHADDs32 = 1189,
+ MVE_VHADDs8 = 1190,
+ MVE_VHADDu16 = 1191,
+ MVE_VHADDu32 = 1192,
+ MVE_VHADDu8 = 1193,
+ MVE_VHCADDs16 = 1194,
+ MVE_VHCADDs32 = 1195,
+ MVE_VHCADDs8 = 1196,
+ MVE_VHSUB_qr_s16 = 1197,
+ MVE_VHSUB_qr_s32 = 1198,
+ MVE_VHSUB_qr_s8 = 1199,
+ MVE_VHSUB_qr_u16 = 1200,
+ MVE_VHSUB_qr_u32 = 1201,
+ MVE_VHSUB_qr_u8 = 1202,
+ MVE_VHSUBs16 = 1203,
+ MVE_VHSUBs32 = 1204,
+ MVE_VHSUBs8 = 1205,
+ MVE_VHSUBu16 = 1206,
+ MVE_VHSUBu32 = 1207,
+ MVE_VHSUBu8 = 1208,
+ MVE_VIDUPu16 = 1209,
+ MVE_VIDUPu32 = 1210,
+ MVE_VIDUPu8 = 1211,
+ MVE_VIWDUPu16 = 1212,
+ MVE_VIWDUPu32 = 1213,
+ MVE_VIWDUPu8 = 1214,
+ MVE_VLD20_16 = 1215,
+ MVE_VLD20_16_wb = 1216,
+ MVE_VLD20_32 = 1217,
+ MVE_VLD20_32_wb = 1218,
+ MVE_VLD20_8 = 1219,
+ MVE_VLD20_8_wb = 1220,
+ MVE_VLD21_16 = 1221,
+ MVE_VLD21_16_wb = 1222,
+ MVE_VLD21_32 = 1223,
+ MVE_VLD21_32_wb = 1224,
+ MVE_VLD21_8 = 1225,
+ MVE_VLD21_8_wb = 1226,
+ MVE_VLD40_16 = 1227,
+ MVE_VLD40_16_wb = 1228,
+ MVE_VLD40_32 = 1229,
+ MVE_VLD40_32_wb = 1230,
+ MVE_VLD40_8 = 1231,
+ MVE_VLD40_8_wb = 1232,
+ MVE_VLD41_16 = 1233,
+ MVE_VLD41_16_wb = 1234,
+ MVE_VLD41_32 = 1235,
+ MVE_VLD41_32_wb = 1236,
+ MVE_VLD41_8 = 1237,
+ MVE_VLD41_8_wb = 1238,
+ MVE_VLD42_16 = 1239,
+ MVE_VLD42_16_wb = 1240,
+ MVE_VLD42_32 = 1241,
+ MVE_VLD42_32_wb = 1242,
+ MVE_VLD42_8 = 1243,
+ MVE_VLD42_8_wb = 1244,
+ MVE_VLD43_16 = 1245,
+ MVE_VLD43_16_wb = 1246,
+ MVE_VLD43_32 = 1247,
+ MVE_VLD43_32_wb = 1248,
+ MVE_VLD43_8 = 1249,
+ MVE_VLD43_8_wb = 1250,
+ MVE_VLDRBS16 = 1251,
+ MVE_VLDRBS16_post = 1252,
+ MVE_VLDRBS16_pre = 1253,
+ MVE_VLDRBS16_rq = 1254,
+ MVE_VLDRBS32 = 1255,
+ MVE_VLDRBS32_post = 1256,
+ MVE_VLDRBS32_pre = 1257,
+ MVE_VLDRBS32_rq = 1258,
+ MVE_VLDRBU16 = 1259,
+ MVE_VLDRBU16_post = 1260,
+ MVE_VLDRBU16_pre = 1261,
+ MVE_VLDRBU16_rq = 1262,
+ MVE_VLDRBU32 = 1263,
+ MVE_VLDRBU32_post = 1264,
+ MVE_VLDRBU32_pre = 1265,
+ MVE_VLDRBU32_rq = 1266,
+ MVE_VLDRBU8 = 1267,
+ MVE_VLDRBU8_post = 1268,
+ MVE_VLDRBU8_pre = 1269,
+ MVE_VLDRBU8_rq = 1270,
+ MVE_VLDRDU64_qi = 1271,
+ MVE_VLDRDU64_qi_pre = 1272,
+ MVE_VLDRDU64_rq = 1273,
+ MVE_VLDRDU64_rq_u = 1274,
+ MVE_VLDRHS32 = 1275,
+ MVE_VLDRHS32_post = 1276,
+ MVE_VLDRHS32_pre = 1277,
+ MVE_VLDRHS32_rq = 1278,
+ MVE_VLDRHS32_rq_u = 1279,
+ MVE_VLDRHU16 = 1280,
+ MVE_VLDRHU16_post = 1281,
+ MVE_VLDRHU16_pre = 1282,
+ MVE_VLDRHU16_rq = 1283,
+ MVE_VLDRHU16_rq_u = 1284,
+ MVE_VLDRHU32 = 1285,
+ MVE_VLDRHU32_post = 1286,
+ MVE_VLDRHU32_pre = 1287,
+ MVE_VLDRHU32_rq = 1288,
+ MVE_VLDRHU32_rq_u = 1289,
+ MVE_VLDRWU32 = 1290,
+ MVE_VLDRWU32_post = 1291,
+ MVE_VLDRWU32_pre = 1292,
+ MVE_VLDRWU32_qi = 1293,
+ MVE_VLDRWU32_qi_pre = 1294,
+ MVE_VLDRWU32_rq = 1295,
+ MVE_VLDRWU32_rq_u = 1296,
+ MVE_VMAXAVs16 = 1297,
+ MVE_VMAXAVs32 = 1298,
+ MVE_VMAXAVs8 = 1299,
+ MVE_VMAXAs16 = 1300,
+ MVE_VMAXAs32 = 1301,
+ MVE_VMAXAs8 = 1302,
+ MVE_VMAXNMAVf16 = 1303,
+ MVE_VMAXNMAVf32 = 1304,
+ MVE_VMAXNMAf16 = 1305,
+ MVE_VMAXNMAf32 = 1306,
+ MVE_VMAXNMVf16 = 1307,
+ MVE_VMAXNMVf32 = 1308,
+ MVE_VMAXNMf16 = 1309,
+ MVE_VMAXNMf32 = 1310,
+ MVE_VMAXVs16 = 1311,
+ MVE_VMAXVs32 = 1312,
+ MVE_VMAXVs8 = 1313,
+ MVE_VMAXVu16 = 1314,
+ MVE_VMAXVu32 = 1315,
+ MVE_VMAXVu8 = 1316,
+ MVE_VMAXs16 = 1317,
+ MVE_VMAXs32 = 1318,
+ MVE_VMAXs8 = 1319,
+ MVE_VMAXu16 = 1320,
+ MVE_VMAXu32 = 1321,
+ MVE_VMAXu8 = 1322,
+ MVE_VMINAVs16 = 1323,
+ MVE_VMINAVs32 = 1324,
+ MVE_VMINAVs8 = 1325,
+ MVE_VMINAs16 = 1326,
+ MVE_VMINAs32 = 1327,
+ MVE_VMINAs8 = 1328,
+ MVE_VMINNMAVf16 = 1329,
+ MVE_VMINNMAVf32 = 1330,
+ MVE_VMINNMAf16 = 1331,
+ MVE_VMINNMAf32 = 1332,
+ MVE_VMINNMVf16 = 1333,
+ MVE_VMINNMVf32 = 1334,
+ MVE_VMINNMf16 = 1335,
+ MVE_VMINNMf32 = 1336,
+ MVE_VMINVs16 = 1337,
+ MVE_VMINVs32 = 1338,
+ MVE_VMINVs8 = 1339,
+ MVE_VMINVu16 = 1340,
+ MVE_VMINVu32 = 1341,
+ MVE_VMINVu8 = 1342,
+ MVE_VMINs16 = 1343,
+ MVE_VMINs32 = 1344,
+ MVE_VMINs8 = 1345,
+ MVE_VMINu16 = 1346,
+ MVE_VMINu32 = 1347,
+ MVE_VMINu8 = 1348,
+ MVE_VMLADAVas16 = 1349,
+ MVE_VMLADAVas32 = 1350,
+ MVE_VMLADAVas8 = 1351,
+ MVE_VMLADAVau16 = 1352,
+ MVE_VMLADAVau32 = 1353,
+ MVE_VMLADAVau8 = 1354,
+ MVE_VMLADAVaxs16 = 1355,
+ MVE_VMLADAVaxs32 = 1356,
+ MVE_VMLADAVaxs8 = 1357,
+ MVE_VMLADAVs16 = 1358,
+ MVE_VMLADAVs32 = 1359,
+ MVE_VMLADAVs8 = 1360,
+ MVE_VMLADAVu16 = 1361,
+ MVE_VMLADAVu32 = 1362,
+ MVE_VMLADAVu8 = 1363,
+ MVE_VMLADAVxs16 = 1364,
+ MVE_VMLADAVxs32 = 1365,
+ MVE_VMLADAVxs8 = 1366,
+ MVE_VMLALDAVas16 = 1367,
+ MVE_VMLALDAVas32 = 1368,
+ MVE_VMLALDAVau16 = 1369,
+ MVE_VMLALDAVau32 = 1370,
+ MVE_VMLALDAVaxs16 = 1371,
+ MVE_VMLALDAVaxs32 = 1372,
+ MVE_VMLALDAVs16 = 1373,
+ MVE_VMLALDAVs32 = 1374,
+ MVE_VMLALDAVu16 = 1375,
+ MVE_VMLALDAVu32 = 1376,
+ MVE_VMLALDAVxs16 = 1377,
+ MVE_VMLALDAVxs32 = 1378,
+ MVE_VMLAS_qr_i16 = 1379,
+ MVE_VMLAS_qr_i32 = 1380,
+ MVE_VMLAS_qr_i8 = 1381,
+ MVE_VMLA_qr_i16 = 1382,
+ MVE_VMLA_qr_i32 = 1383,
+ MVE_VMLA_qr_i8 = 1384,
+ MVE_VMLSDAVas16 = 1385,
+ MVE_VMLSDAVas32 = 1386,
+ MVE_VMLSDAVas8 = 1387,
+ MVE_VMLSDAVaxs16 = 1388,
+ MVE_VMLSDAVaxs32 = 1389,
+ MVE_VMLSDAVaxs8 = 1390,
+ MVE_VMLSDAVs16 = 1391,
+ MVE_VMLSDAVs32 = 1392,
+ MVE_VMLSDAVs8 = 1393,
+ MVE_VMLSDAVxs16 = 1394,
+ MVE_VMLSDAVxs32 = 1395,
+ MVE_VMLSDAVxs8 = 1396,
+ MVE_VMLSLDAVas16 = 1397,
+ MVE_VMLSLDAVas32 = 1398,
+ MVE_VMLSLDAVaxs16 = 1399,
+ MVE_VMLSLDAVaxs32 = 1400,
+ MVE_VMLSLDAVs16 = 1401,
+ MVE_VMLSLDAVs32 = 1402,
+ MVE_VMLSLDAVxs16 = 1403,
+ MVE_VMLSLDAVxs32 = 1404,
+ MVE_VMOVLs16bh = 1405,
+ MVE_VMOVLs16th = 1406,
+ MVE_VMOVLs8bh = 1407,
+ MVE_VMOVLs8th = 1408,
+ MVE_VMOVLu16bh = 1409,
+ MVE_VMOVLu16th = 1410,
+ MVE_VMOVLu8bh = 1411,
+ MVE_VMOVLu8th = 1412,
+ MVE_VMOVNi16bh = 1413,
+ MVE_VMOVNi16th = 1414,
+ MVE_VMOVNi32bh = 1415,
+ MVE_VMOVNi32th = 1416,
+ MVE_VMOV_from_lane_32 = 1417,
+ MVE_VMOV_from_lane_s16 = 1418,
+ MVE_VMOV_from_lane_s8 = 1419,
+ MVE_VMOV_from_lane_u16 = 1420,
+ MVE_VMOV_from_lane_u8 = 1421,
+ MVE_VMOV_q_rr = 1422,
+ MVE_VMOV_rr_q = 1423,
+ MVE_VMOV_to_lane_16 = 1424,
+ MVE_VMOV_to_lane_32 = 1425,
+ MVE_VMOV_to_lane_8 = 1426,
+ MVE_VMOVimmf32 = 1427,
+ MVE_VMOVimmi16 = 1428,
+ MVE_VMOVimmi32 = 1429,
+ MVE_VMOVimmi64 = 1430,
+ MVE_VMOVimmi8 = 1431,
+ MVE_VMULHs16 = 1432,
+ MVE_VMULHs32 = 1433,
+ MVE_VMULHs8 = 1434,
+ MVE_VMULHu16 = 1435,
+ MVE_VMULHu32 = 1436,
+ MVE_VMULHu8 = 1437,
+ MVE_VMULLBp16 = 1438,
+ MVE_VMULLBp8 = 1439,
+ MVE_VMULLBs16 = 1440,
+ MVE_VMULLBs32 = 1441,
+ MVE_VMULLBs8 = 1442,
+ MVE_VMULLBu16 = 1443,
+ MVE_VMULLBu32 = 1444,
+ MVE_VMULLBu8 = 1445,
+ MVE_VMULLTp16 = 1446,
+ MVE_VMULLTp8 = 1447,
+ MVE_VMULLTs16 = 1448,
+ MVE_VMULLTs32 = 1449,
+ MVE_VMULLTs8 = 1450,
+ MVE_VMULLTu16 = 1451,
+ MVE_VMULLTu32 = 1452,
+ MVE_VMULLTu8 = 1453,
+ MVE_VMUL_qr_f16 = 1454,
+ MVE_VMUL_qr_f32 = 1455,
+ MVE_VMUL_qr_i16 = 1456,
+ MVE_VMUL_qr_i32 = 1457,
+ MVE_VMUL_qr_i8 = 1458,
+ MVE_VMULf16 = 1459,
+ MVE_VMULf32 = 1460,
+ MVE_VMULi16 = 1461,
+ MVE_VMULi32 = 1462,
+ MVE_VMULi8 = 1463,
+ MVE_VMVN = 1464,
+ MVE_VMVNimmi16 = 1465,
+ MVE_VMVNimmi32 = 1466,
+ MVE_VNEGf16 = 1467,
+ MVE_VNEGf32 = 1468,
+ MVE_VNEGs16 = 1469,
+ MVE_VNEGs32 = 1470,
+ MVE_VNEGs8 = 1471,
+ MVE_VORN = 1472,
+ MVE_VORR = 1473,
+ MVE_VORRimmi16 = 1474,
+ MVE_VORRimmi32 = 1475,
+ MVE_VPNOT = 1476,
+ MVE_VPSEL = 1477,
+ MVE_VPST = 1478,
+ MVE_VPTv16i8 = 1479,
+ MVE_VPTv16i8r = 1480,
+ MVE_VPTv16s8 = 1481,
+ MVE_VPTv16s8r = 1482,
+ MVE_VPTv16u8 = 1483,
+ MVE_VPTv16u8r = 1484,
+ MVE_VPTv4f32 = 1485,
+ MVE_VPTv4f32r = 1486,
+ MVE_VPTv4i32 = 1487,
+ MVE_VPTv4i32r = 1488,
+ MVE_VPTv4s32 = 1489,
+ MVE_VPTv4s32r = 1490,
+ MVE_VPTv4u32 = 1491,
+ MVE_VPTv4u32r = 1492,
+ MVE_VPTv8f16 = 1493,
+ MVE_VPTv8f16r = 1494,
+ MVE_VPTv8i16 = 1495,
+ MVE_VPTv8i16r = 1496,
+ MVE_VPTv8s16 = 1497,
+ MVE_VPTv8s16r = 1498,
+ MVE_VPTv8u16 = 1499,
+ MVE_VPTv8u16r = 1500,
+ MVE_VQABSs16 = 1501,
+ MVE_VQABSs32 = 1502,
+ MVE_VQABSs8 = 1503,
+ MVE_VQADD_qr_s16 = 1504,
+ MVE_VQADD_qr_s32 = 1505,
+ MVE_VQADD_qr_s8 = 1506,
+ MVE_VQADD_qr_u16 = 1507,
+ MVE_VQADD_qr_u32 = 1508,
+ MVE_VQADD_qr_u8 = 1509,
+ MVE_VQADDs16 = 1510,
+ MVE_VQADDs32 = 1511,
+ MVE_VQADDs8 = 1512,
+ MVE_VQADDu16 = 1513,
+ MVE_VQADDu32 = 1514,
+ MVE_VQADDu8 = 1515,
+ MVE_VQDMLADHXs16 = 1516,
+ MVE_VQDMLADHXs32 = 1517,
+ MVE_VQDMLADHXs8 = 1518,
+ MVE_VQDMLADHs16 = 1519,
+ MVE_VQDMLADHs32 = 1520,
+ MVE_VQDMLADHs8 = 1521,
+ MVE_VQDMLAH_qrs16 = 1522,
+ MVE_VQDMLAH_qrs32 = 1523,
+ MVE_VQDMLAH_qrs8 = 1524,
+ MVE_VQDMLASH_qrs16 = 1525,
+ MVE_VQDMLASH_qrs32 = 1526,
+ MVE_VQDMLASH_qrs8 = 1527,
+ MVE_VQDMLSDHXs16 = 1528,
+ MVE_VQDMLSDHXs32 = 1529,
+ MVE_VQDMLSDHXs8 = 1530,
+ MVE_VQDMLSDHs16 = 1531,
+ MVE_VQDMLSDHs32 = 1532,
+ MVE_VQDMLSDHs8 = 1533,
+ MVE_VQDMULH_qr_s16 = 1534,
+ MVE_VQDMULH_qr_s32 = 1535,
+ MVE_VQDMULH_qr_s8 = 1536,
+ MVE_VQDMULHi16 = 1537,
+ MVE_VQDMULHi32 = 1538,
+ MVE_VQDMULHi8 = 1539,
+ MVE_VQDMULL_qr_s16bh = 1540,
+ MVE_VQDMULL_qr_s16th = 1541,
+ MVE_VQDMULL_qr_s32bh = 1542,
+ MVE_VQDMULL_qr_s32th = 1543,
+ MVE_VQDMULLs16bh = 1544,
+ MVE_VQDMULLs16th = 1545,
+ MVE_VQDMULLs32bh = 1546,
+ MVE_VQDMULLs32th = 1547,
+ MVE_VQMOVNs16bh = 1548,
+ MVE_VQMOVNs16th = 1549,
+ MVE_VQMOVNs32bh = 1550,
+ MVE_VQMOVNs32th = 1551,
+ MVE_VQMOVNu16bh = 1552,
+ MVE_VQMOVNu16th = 1553,
+ MVE_VQMOVNu32bh = 1554,
+ MVE_VQMOVNu32th = 1555,
+ MVE_VQMOVUNs16bh = 1556,
+ MVE_VQMOVUNs16th = 1557,
+ MVE_VQMOVUNs32bh = 1558,
+ MVE_VQMOVUNs32th = 1559,
+ MVE_VQNEGs16 = 1560,
+ MVE_VQNEGs32 = 1561,
+ MVE_VQNEGs8 = 1562,
+ MVE_VQRDMLADHXs16 = 1563,
+ MVE_VQRDMLADHXs32 = 1564,
+ MVE_VQRDMLADHXs8 = 1565,
+ MVE_VQRDMLADHs16 = 1566,
+ MVE_VQRDMLADHs32 = 1567,
+ MVE_VQRDMLADHs8 = 1568,
+ MVE_VQRDMLAH_qrs16 = 1569,
+ MVE_VQRDMLAH_qrs32 = 1570,
+ MVE_VQRDMLAH_qrs8 = 1571,
+ MVE_VQRDMLASH_qrs16 = 1572,
+ MVE_VQRDMLASH_qrs32 = 1573,
+ MVE_VQRDMLASH_qrs8 = 1574,
+ MVE_VQRDMLSDHXs16 = 1575,
+ MVE_VQRDMLSDHXs32 = 1576,
+ MVE_VQRDMLSDHXs8 = 1577,
+ MVE_VQRDMLSDHs16 = 1578,
+ MVE_VQRDMLSDHs32 = 1579,
+ MVE_VQRDMLSDHs8 = 1580,
+ MVE_VQRDMULH_qr_s16 = 1581,
+ MVE_VQRDMULH_qr_s32 = 1582,
+ MVE_VQRDMULH_qr_s8 = 1583,
+ MVE_VQRDMULHi16 = 1584,
+ MVE_VQRDMULHi32 = 1585,
+ MVE_VQRDMULHi8 = 1586,
+ MVE_VQRSHL_by_vecs16 = 1587,
+ MVE_VQRSHL_by_vecs32 = 1588,
+ MVE_VQRSHL_by_vecs8 = 1589,
+ MVE_VQRSHL_by_vecu16 = 1590,
+ MVE_VQRSHL_by_vecu32 = 1591,
+ MVE_VQRSHL_by_vecu8 = 1592,
+ MVE_VQRSHL_qrs16 = 1593,
+ MVE_VQRSHL_qrs32 = 1594,
+ MVE_VQRSHL_qrs8 = 1595,
+ MVE_VQRSHL_qru16 = 1596,
+ MVE_VQRSHL_qru32 = 1597,
+ MVE_VQRSHL_qru8 = 1598,
+ MVE_VQRSHRNbhs16 = 1599,
+ MVE_VQRSHRNbhs32 = 1600,
+ MVE_VQRSHRNbhu16 = 1601,
+ MVE_VQRSHRNbhu32 = 1602,
+ MVE_VQRSHRNths16 = 1603,
+ MVE_VQRSHRNths32 = 1604,
+ MVE_VQRSHRNthu16 = 1605,
+ MVE_VQRSHRNthu32 = 1606,
+ MVE_VQRSHRUNs16bh = 1607,
+ MVE_VQRSHRUNs16th = 1608,
+ MVE_VQRSHRUNs32bh = 1609,
+ MVE_VQRSHRUNs32th = 1610,
+ MVE_VQSHLU_imms16 = 1611,
+ MVE_VQSHLU_imms32 = 1612,
+ MVE_VQSHLU_imms8 = 1613,
+ MVE_VQSHL_by_vecs16 = 1614,
+ MVE_VQSHL_by_vecs32 = 1615,
+ MVE_VQSHL_by_vecs8 = 1616,
+ MVE_VQSHL_by_vecu16 = 1617,
+ MVE_VQSHL_by_vecu32 = 1618,
+ MVE_VQSHL_by_vecu8 = 1619,
+ MVE_VQSHL_qrs16 = 1620,
+ MVE_VQSHL_qrs32 = 1621,
+ MVE_VQSHL_qrs8 = 1622,
+ MVE_VQSHL_qru16 = 1623,
+ MVE_VQSHL_qru32 = 1624,
+ MVE_VQSHL_qru8 = 1625,
+ MVE_VQSHLimms16 = 1626,
+ MVE_VQSHLimms32 = 1627,
+ MVE_VQSHLimms8 = 1628,
+ MVE_VQSHLimmu16 = 1629,
+ MVE_VQSHLimmu32 = 1630,
+ MVE_VQSHLimmu8 = 1631,
+ MVE_VQSHRNbhs16 = 1632,
+ MVE_VQSHRNbhs32 = 1633,
+ MVE_VQSHRNbhu16 = 1634,
+ MVE_VQSHRNbhu32 = 1635,
+ MVE_VQSHRNths16 = 1636,
+ MVE_VQSHRNths32 = 1637,
+ MVE_VQSHRNthu16 = 1638,
+ MVE_VQSHRNthu32 = 1639,
+ MVE_VQSHRUNs16bh = 1640,
+ MVE_VQSHRUNs16th = 1641,
+ MVE_VQSHRUNs32bh = 1642,
+ MVE_VQSHRUNs32th = 1643,
+ MVE_VQSUB_qr_s16 = 1644,
+ MVE_VQSUB_qr_s32 = 1645,
+ MVE_VQSUB_qr_s8 = 1646,
+ MVE_VQSUB_qr_u16 = 1647,
+ MVE_VQSUB_qr_u32 = 1648,
+ MVE_VQSUB_qr_u8 = 1649,
+ MVE_VQSUBs16 = 1650,
+ MVE_VQSUBs32 = 1651,
+ MVE_VQSUBs8 = 1652,
+ MVE_VQSUBu16 = 1653,
+ MVE_VQSUBu32 = 1654,
+ MVE_VQSUBu8 = 1655,
+ MVE_VREV16_8 = 1656,
+ MVE_VREV32_16 = 1657,
+ MVE_VREV32_8 = 1658,
+ MVE_VREV64_16 = 1659,
+ MVE_VREV64_32 = 1660,
+ MVE_VREV64_8 = 1661,
+ MVE_VRHADDs16 = 1662,
+ MVE_VRHADDs32 = 1663,
+ MVE_VRHADDs8 = 1664,
+ MVE_VRHADDu16 = 1665,
+ MVE_VRHADDu32 = 1666,
+ MVE_VRHADDu8 = 1667,
+ MVE_VRINTf16A = 1668,
+ MVE_VRINTf16M = 1669,
+ MVE_VRINTf16N = 1670,
+ MVE_VRINTf16P = 1671,
+ MVE_VRINTf16X = 1672,
+ MVE_VRINTf16Z = 1673,
+ MVE_VRINTf32A = 1674,
+ MVE_VRINTf32M = 1675,
+ MVE_VRINTf32N = 1676,
+ MVE_VRINTf32P = 1677,
+ MVE_VRINTf32X = 1678,
+ MVE_VRINTf32Z = 1679,
+ MVE_VRMLALDAVHas32 = 1680,
+ MVE_VRMLALDAVHau32 = 1681,
+ MVE_VRMLALDAVHaxs32 = 1682,
+ MVE_VRMLALDAVHs32 = 1683,
+ MVE_VRMLALDAVHu32 = 1684,
+ MVE_VRMLALDAVHxs32 = 1685,
+ MVE_VRMLSLDAVHas32 = 1686,
+ MVE_VRMLSLDAVHaxs32 = 1687,
+ MVE_VRMLSLDAVHs32 = 1688,
+ MVE_VRMLSLDAVHxs32 = 1689,
+ MVE_VRMULHs16 = 1690,
+ MVE_VRMULHs32 = 1691,
+ MVE_VRMULHs8 = 1692,
+ MVE_VRMULHu16 = 1693,
+ MVE_VRMULHu32 = 1694,
+ MVE_VRMULHu8 = 1695,
+ MVE_VRSHL_by_vecs16 = 1696,
+ MVE_VRSHL_by_vecs32 = 1697,
+ MVE_VRSHL_by_vecs8 = 1698,
+ MVE_VRSHL_by_vecu16 = 1699,
+ MVE_VRSHL_by_vecu32 = 1700,
+ MVE_VRSHL_by_vecu8 = 1701,
+ MVE_VRSHL_qrs16 = 1702,
+ MVE_VRSHL_qrs32 = 1703,
+ MVE_VRSHL_qrs8 = 1704,
+ MVE_VRSHL_qru16 = 1705,
+ MVE_VRSHL_qru32 = 1706,
+ MVE_VRSHL_qru8 = 1707,
+ MVE_VRSHRNi16bh = 1708,
+ MVE_VRSHRNi16th = 1709,
+ MVE_VRSHRNi32bh = 1710,
+ MVE_VRSHRNi32th = 1711,
+ MVE_VRSHR_imms16 = 1712,
+ MVE_VRSHR_imms32 = 1713,
+ MVE_VRSHR_imms8 = 1714,
+ MVE_VRSHR_immu16 = 1715,
+ MVE_VRSHR_immu32 = 1716,
+ MVE_VRSHR_immu8 = 1717,
+ MVE_VSBC = 1718,
+ MVE_VSBCI = 1719,
+ MVE_VSHLC = 1720,
+ MVE_VSHLL_imms16bh = 1721,
+ MVE_VSHLL_imms16th = 1722,
+ MVE_VSHLL_imms8bh = 1723,
+ MVE_VSHLL_imms8th = 1724,
+ MVE_VSHLL_immu16bh = 1725,
+ MVE_VSHLL_immu16th = 1726,
+ MVE_VSHLL_immu8bh = 1727,
+ MVE_VSHLL_immu8th = 1728,
+ MVE_VSHLL_lws16bh = 1729,
+ MVE_VSHLL_lws16th = 1730,
+ MVE_VSHLL_lws8bh = 1731,
+ MVE_VSHLL_lws8th = 1732,
+ MVE_VSHLL_lwu16bh = 1733,
+ MVE_VSHLL_lwu16th = 1734,
+ MVE_VSHLL_lwu8bh = 1735,
+ MVE_VSHLL_lwu8th = 1736,
+ MVE_VSHL_by_vecs16 = 1737,
+ MVE_VSHL_by_vecs32 = 1738,
+ MVE_VSHL_by_vecs8 = 1739,
+ MVE_VSHL_by_vecu16 = 1740,
+ MVE_VSHL_by_vecu32 = 1741,
+ MVE_VSHL_by_vecu8 = 1742,
+ MVE_VSHL_immi16 = 1743,
+ MVE_VSHL_immi32 = 1744,
+ MVE_VSHL_immi8 = 1745,
+ MVE_VSHL_qrs16 = 1746,
+ MVE_VSHL_qrs32 = 1747,
+ MVE_VSHL_qrs8 = 1748,
+ MVE_VSHL_qru16 = 1749,
+ MVE_VSHL_qru32 = 1750,
+ MVE_VSHL_qru8 = 1751,
+ MVE_VSHRNi16bh = 1752,
+ MVE_VSHRNi16th = 1753,
+ MVE_VSHRNi32bh = 1754,
+ MVE_VSHRNi32th = 1755,
+ MVE_VSHR_imms16 = 1756,
+ MVE_VSHR_imms32 = 1757,
+ MVE_VSHR_imms8 = 1758,
+ MVE_VSHR_immu16 = 1759,
+ MVE_VSHR_immu32 = 1760,
+ MVE_VSHR_immu8 = 1761,
+ MVE_VSLIimm16 = 1762,
+ MVE_VSLIimm32 = 1763,
+ MVE_VSLIimm8 = 1764,
+ MVE_VSRIimm16 = 1765,
+ MVE_VSRIimm32 = 1766,
+ MVE_VSRIimm8 = 1767,
+ MVE_VST20_16 = 1768,
+ MVE_VST20_16_wb = 1769,
+ MVE_VST20_32 = 1770,
+ MVE_VST20_32_wb = 1771,
+ MVE_VST20_8 = 1772,
+ MVE_VST20_8_wb = 1773,
+ MVE_VST21_16 = 1774,
+ MVE_VST21_16_wb = 1775,
+ MVE_VST21_32 = 1776,
+ MVE_VST21_32_wb = 1777,
+ MVE_VST21_8 = 1778,
+ MVE_VST21_8_wb = 1779,
+ MVE_VST40_16 = 1780,
+ MVE_VST40_16_wb = 1781,
+ MVE_VST40_32 = 1782,
+ MVE_VST40_32_wb = 1783,
+ MVE_VST40_8 = 1784,
+ MVE_VST40_8_wb = 1785,
+ MVE_VST41_16 = 1786,
+ MVE_VST41_16_wb = 1787,
+ MVE_VST41_32 = 1788,
+ MVE_VST41_32_wb = 1789,
+ MVE_VST41_8 = 1790,
+ MVE_VST41_8_wb = 1791,
+ MVE_VST42_16 = 1792,
+ MVE_VST42_16_wb = 1793,
+ MVE_VST42_32 = 1794,
+ MVE_VST42_32_wb = 1795,
+ MVE_VST42_8 = 1796,
+ MVE_VST42_8_wb = 1797,
+ MVE_VST43_16 = 1798,
+ MVE_VST43_16_wb = 1799,
+ MVE_VST43_32 = 1800,
+ MVE_VST43_32_wb = 1801,
+ MVE_VST43_8 = 1802,
+ MVE_VST43_8_wb = 1803,
+ MVE_VSTRB16 = 1804,
+ MVE_VSTRB16_post = 1805,
+ MVE_VSTRB16_pre = 1806,
+ MVE_VSTRB16_rq = 1807,
+ MVE_VSTRB32 = 1808,
+ MVE_VSTRB32_post = 1809,
+ MVE_VSTRB32_pre = 1810,
+ MVE_VSTRB32_rq = 1811,
+ MVE_VSTRB8_rq = 1812,
+ MVE_VSTRBU8 = 1813,
+ MVE_VSTRBU8_post = 1814,
+ MVE_VSTRBU8_pre = 1815,
+ MVE_VSTRD64_qi = 1816,
+ MVE_VSTRD64_qi_pre = 1817,
+ MVE_VSTRD64_rq = 1818,
+ MVE_VSTRD64_rq_u = 1819,
+ MVE_VSTRH16_rq = 1820,
+ MVE_VSTRH16_rq_u = 1821,
+ MVE_VSTRH32 = 1822,
+ MVE_VSTRH32_post = 1823,
+ MVE_VSTRH32_pre = 1824,
+ MVE_VSTRH32_rq = 1825,
+ MVE_VSTRH32_rq_u = 1826,
+ MVE_VSTRHU16 = 1827,
+ MVE_VSTRHU16_post = 1828,
+ MVE_VSTRHU16_pre = 1829,
+ MVE_VSTRW32_qi = 1830,
+ MVE_VSTRW32_qi_pre = 1831,
+ MVE_VSTRW32_rq = 1832,
+ MVE_VSTRW32_rq_u = 1833,
+ MVE_VSTRWU32 = 1834,
+ MVE_VSTRWU32_post = 1835,
+ MVE_VSTRWU32_pre = 1836,
+ MVE_VSUB_qr_f16 = 1837,
+ MVE_VSUB_qr_f32 = 1838,
+ MVE_VSUB_qr_i16 = 1839,
+ MVE_VSUB_qr_i32 = 1840,
+ MVE_VSUB_qr_i8 = 1841,
+ MVE_VSUBf16 = 1842,
+ MVE_VSUBf32 = 1843,
+ MVE_VSUBi16 = 1844,
+ MVE_VSUBi32 = 1845,
+ MVE_VSUBi8 = 1846,
+ MVE_WLSTP_16 = 1847,
+ MVE_WLSTP_32 = 1848,
+ MVE_WLSTP_64 = 1849,
+ MVE_WLSTP_8 = 1850,
+ MVNi = 1851,
+ MVNr = 1852,
+ MVNsi = 1853,
+ MVNsr = 1854,
+ NEON_VMAXNMNDf = 1855,
+ NEON_VMAXNMNDh = 1856,
+ NEON_VMAXNMNQf = 1857,
+ NEON_VMAXNMNQh = 1858,
+ NEON_VMINNMNDf = 1859,
+ NEON_VMINNMNDh = 1860,
+ NEON_VMINNMNQf = 1861,
+ NEON_VMINNMNQh = 1862,
+ ORRri = 1863,
+ ORRrr = 1864,
+ ORRrsi = 1865,
+ ORRrsr = 1866,
+ PKHBT = 1867,
+ PKHTB = 1868,
+ PLDWi12 = 1869,
+ PLDWrs = 1870,
+ PLDi12 = 1871,
+ PLDrs = 1872,
+ PLIi12 = 1873,
+ PLIrs = 1874,
+ QADD = 1875,
+ QADD16 = 1876,
+ QADD8 = 1877,
+ QASX = 1878,
+ QDADD = 1879,
+ QDSUB = 1880,
+ QSAX = 1881,
+ QSUB = 1882,
+ QSUB16 = 1883,
+ QSUB8 = 1884,
+ RBIT = 1885,
+ REV = 1886,
+ REV16 = 1887,
+ REVSH = 1888,
+ RFEDA = 1889,
+ RFEDA_UPD = 1890,
+ RFEDB = 1891,
+ RFEDB_UPD = 1892,
+ RFEIA = 1893,
+ RFEIA_UPD = 1894,
+ RFEIB = 1895,
+ RFEIB_UPD = 1896,
+ RSBri = 1897,
+ RSBrr = 1898,
+ RSBrsi = 1899,
+ RSBrsr = 1900,
+ RSCri = 1901,
+ RSCrr = 1902,
+ RSCrsi = 1903,
+ RSCrsr = 1904,
+ SADD16 = 1905,
+ SADD8 = 1906,
+ SASX = 1907,
+ SB = 1908,
+ SBCri = 1909,
+ SBCrr = 1910,
+ SBCrsi = 1911,
+ SBCrsr = 1912,
+ SBFX = 1913,
+ SDIV = 1914,
+ SEL = 1915,
+ SETEND = 1916,
+ SETPAN = 1917,
+ SHA1C = 1918,
+ SHA1H = 1919,
+ SHA1M = 1920,
+ SHA1P = 1921,
+ SHA1SU0 = 1922,
+ SHA1SU1 = 1923,
+ SHA256H = 1924,
+ SHA256H2 = 1925,
+ SHA256SU0 = 1926,
+ SHA256SU1 = 1927,
+ SHADD16 = 1928,
+ SHADD8 = 1929,
+ SHASX = 1930,
+ SHSAX = 1931,
+ SHSUB16 = 1932,
+ SHSUB8 = 1933,
+ SMC = 1934,
+ SMLABB = 1935,
+ SMLABT = 1936,
+ SMLAD = 1937,
+ SMLADX = 1938,
+ SMLAL = 1939,
+ SMLALBB = 1940,
+ SMLALBT = 1941,
+ SMLALD = 1942,
+ SMLALDX = 1943,
+ SMLALTB = 1944,
+ SMLALTT = 1945,
+ SMLATB = 1946,
+ SMLATT = 1947,
+ SMLAWB = 1948,
+ SMLAWT = 1949,
+ SMLSD = 1950,
+ SMLSDX = 1951,
+ SMLSLD = 1952,
+ SMLSLDX = 1953,
+ SMMLA = 1954,
+ SMMLAR = 1955,
+ SMMLS = 1956,
+ SMMLSR = 1957,
+ SMMUL = 1958,
+ SMMULR = 1959,
+ SMUAD = 1960,
+ SMUADX = 1961,
+ SMULBB = 1962,
+ SMULBT = 1963,
+ SMULL = 1964,
+ SMULTB = 1965,
+ SMULTT = 1966,
+ SMULWB = 1967,
+ SMULWT = 1968,
+ SMUSD = 1969,
+ SMUSDX = 1970,
+ SRSDA = 1971,
+ SRSDA_UPD = 1972,
+ SRSDB = 1973,
+ SRSDB_UPD = 1974,
+ SRSIA = 1975,
+ SRSIA_UPD = 1976,
+ SRSIB = 1977,
+ SRSIB_UPD = 1978,
+ SSAT = 1979,
+ SSAT16 = 1980,
+ SSAX = 1981,
+ SSUB16 = 1982,
+ SSUB8 = 1983,
+ STC2L_OFFSET = 1984,
+ STC2L_OPTION = 1985,
+ STC2L_POST = 1986,
+ STC2L_PRE = 1987,
+ STC2_OFFSET = 1988,
+ STC2_OPTION = 1989,
+ STC2_POST = 1990,
+ STC2_PRE = 1991,
+ STCL_OFFSET = 1992,
+ STCL_OPTION = 1993,
+ STCL_POST = 1994,
+ STCL_PRE = 1995,
+ STC_OFFSET = 1996,
+ STC_OPTION = 1997,
+ STC_POST = 1998,
+ STC_PRE = 1999,
+ STL = 2000,
+ STLB = 2001,
+ STLEX = 2002,
+ STLEXB = 2003,
+ STLEXD = 2004,
+ STLEXH = 2005,
+ STLH = 2006,
+ STMDA = 2007,
+ STMDA_UPD = 2008,
+ STMDB = 2009,
+ STMDB_UPD = 2010,
+ STMIA = 2011,
+ STMIA_UPD = 2012,
+ STMIB = 2013,
+ STMIB_UPD = 2014,
+ STRBT_POST_IMM = 2015,
+ STRBT_POST_REG = 2016,
+ STRB_POST_IMM = 2017,
+ STRB_POST_REG = 2018,
+ STRB_PRE_IMM = 2019,
+ STRB_PRE_REG = 2020,
+ STRBi12 = 2021,
+ STRBrs = 2022,
+ STRD = 2023,
+ STRD_POST = 2024,
+ STRD_PRE = 2025,
+ STREX = 2026,
+ STREXB = 2027,
+ STREXD = 2028,
+ STREXH = 2029,
+ STRH = 2030,
+ STRHTi = 2031,
+ STRHTr = 2032,
+ STRH_POST = 2033,
+ STRH_PRE = 2034,
+ STRT_POST_IMM = 2035,
+ STRT_POST_REG = 2036,
+ STR_POST_IMM = 2037,
+ STR_POST_REG = 2038,
+ STR_PRE_IMM = 2039,
+ STR_PRE_REG = 2040,
+ STRi12 = 2041,
+ STRrs = 2042,
+ SUBri = 2043,
+ SUBrr = 2044,
+ SUBrsi = 2045,
+ SUBrsr = 2046,
+ SVC = 2047,
+ SWP = 2048,
+ SWPB = 2049,
+ SXTAB = 2050,
+ SXTAB16 = 2051,
+ SXTAH = 2052,
+ SXTB = 2053,
+ SXTB16 = 2054,
+ SXTH = 2055,
+ TEQri = 2056,
+ TEQrr = 2057,
+ TEQrsi = 2058,
+ TEQrsr = 2059,
+ TRAP = 2060,
+ TSB = 2061,
+ TSTri = 2062,
+ TSTrr = 2063,
+ TSTrsi = 2064,
+ TSTrsr = 2065,
+ UADD16 = 2066,
+ UADD8 = 2067,
+ UASX = 2068,
+ UBFX = 2069,
+ UDF = 2070,
+ UDIV = 2071,
+ UHADD16 = 2072,
+ UHADD8 = 2073,
+ UHASX = 2074,
+ UHSAX = 2075,
+ UHSUB16 = 2076,
+ UHSUB8 = 2077,
+ UMAAL = 2078,
+ UMLAL = 2079,
+ UMULL = 2080,
+ UQADD16 = 2081,
+ UQADD8 = 2082,
+ UQASX = 2083,
+ UQSAX = 2084,
+ UQSUB16 = 2085,
+ UQSUB8 = 2086,
+ USAD8 = 2087,
+ USADA8 = 2088,
+ USAT = 2089,
+ USAT16 = 2090,
+ USAX = 2091,
+ USUB16 = 2092,
+ USUB8 = 2093,
+ UXTAB = 2094,
+ UXTAB16 = 2095,
+ UXTAH = 2096,
+ UXTB = 2097,
+ UXTB16 = 2098,
+ UXTH = 2099,
+ VABALsv2i64 = 2100,
+ VABALsv4i32 = 2101,
+ VABALsv8i16 = 2102,
+ VABALuv2i64 = 2103,
+ VABALuv4i32 = 2104,
+ VABALuv8i16 = 2105,
+ VABAsv16i8 = 2106,
+ VABAsv2i32 = 2107,
+ VABAsv4i16 = 2108,
+ VABAsv4i32 = 2109,
+ VABAsv8i16 = 2110,
+ VABAsv8i8 = 2111,
+ VABAuv16i8 = 2112,
+ VABAuv2i32 = 2113,
+ VABAuv4i16 = 2114,
+ VABAuv4i32 = 2115,
+ VABAuv8i16 = 2116,
+ VABAuv8i8 = 2117,
+ VABDLsv2i64 = 2118,
+ VABDLsv4i32 = 2119,
+ VABDLsv8i16 = 2120,
+ VABDLuv2i64 = 2121,
+ VABDLuv4i32 = 2122,
+ VABDLuv8i16 = 2123,
+ VABDfd = 2124,
+ VABDfq = 2125,
+ VABDhd = 2126,
+ VABDhq = 2127,
+ VABDsv16i8 = 2128,
+ VABDsv2i32 = 2129,
+ VABDsv4i16 = 2130,
+ VABDsv4i32 = 2131,
+ VABDsv8i16 = 2132,
+ VABDsv8i8 = 2133,
+ VABDuv16i8 = 2134,
+ VABDuv2i32 = 2135,
+ VABDuv4i16 = 2136,
+ VABDuv4i32 = 2137,
+ VABDuv8i16 = 2138,
+ VABDuv8i8 = 2139,
+ VABSD = 2140,
+ VABSH = 2141,
+ VABSS = 2142,
+ VABSfd = 2143,
+ VABSfq = 2144,
+ VABShd = 2145,
+ VABShq = 2146,
+ VABSv16i8 = 2147,
+ VABSv2i32 = 2148,
+ VABSv4i16 = 2149,
+ VABSv4i32 = 2150,
+ VABSv8i16 = 2151,
+ VABSv8i8 = 2152,
+ VACGEfd = 2153,
+ VACGEfq = 2154,
+ VACGEhd = 2155,
+ VACGEhq = 2156,
+ VACGTfd = 2157,
+ VACGTfq = 2158,
+ VACGThd = 2159,
+ VACGThq = 2160,
+ VADDD = 2161,
+ VADDH = 2162,
+ VADDHNv2i32 = 2163,
+ VADDHNv4i16 = 2164,
+ VADDHNv8i8 = 2165,
+ VADDLsv2i64 = 2166,
+ VADDLsv4i32 = 2167,
+ VADDLsv8i16 = 2168,
+ VADDLuv2i64 = 2169,
+ VADDLuv4i32 = 2170,
+ VADDLuv8i16 = 2171,
+ VADDS = 2172,
+ VADDWsv2i64 = 2173,
+ VADDWsv4i32 = 2174,
+ VADDWsv8i16 = 2175,
+ VADDWuv2i64 = 2176,
+ VADDWuv4i32 = 2177,
+ VADDWuv8i16 = 2178,
+ VADDfd = 2179,
+ VADDfq = 2180,
+ VADDhd = 2181,
+ VADDhq = 2182,
+ VADDv16i8 = 2183,
+ VADDv1i64 = 2184,
+ VADDv2i32 = 2185,
+ VADDv2i64 = 2186,
+ VADDv4i16 = 2187,
+ VADDv4i32 = 2188,
+ VADDv8i16 = 2189,
+ VADDv8i8 = 2190,
+ VANDd = 2191,
+ VANDq = 2192,
+ VBF16MALBQ = 2193,
+ VBF16MALBQI = 2194,
+ VBF16MALTQ = 2195,
+ VBF16MALTQI = 2196,
+ VBICd = 2197,
+ VBICiv2i32 = 2198,
+ VBICiv4i16 = 2199,
+ VBICiv4i32 = 2200,
+ VBICiv8i16 = 2201,
+ VBICq = 2202,
+ VBIFd = 2203,
+ VBIFq = 2204,
+ VBITd = 2205,
+ VBITq = 2206,
+ VBSLd = 2207,
+ VBSLq = 2208,
+ VBSPd = 2209,
+ VBSPq = 2210,
+ VCADDv2f32 = 2211,
+ VCADDv4f16 = 2212,
+ VCADDv4f32 = 2213,
+ VCADDv8f16 = 2214,
+ VCEQfd = 2215,
+ VCEQfq = 2216,
+ VCEQhd = 2217,
+ VCEQhq = 2218,
+ VCEQv16i8 = 2219,
+ VCEQv2i32 = 2220,
+ VCEQv4i16 = 2221,
+ VCEQv4i32 = 2222,
+ VCEQv8i16 = 2223,
+ VCEQv8i8 = 2224,
+ VCEQzv16i8 = 2225,
+ VCEQzv2f32 = 2226,
+ VCEQzv2i32 = 2227,
+ VCEQzv4f16 = 2228,
+ VCEQzv4f32 = 2229,
+ VCEQzv4i16 = 2230,
+ VCEQzv4i32 = 2231,
+ VCEQzv8f16 = 2232,
+ VCEQzv8i16 = 2233,
+ VCEQzv8i8 = 2234,
+ VCGEfd = 2235,
+ VCGEfq = 2236,
+ VCGEhd = 2237,
+ VCGEhq = 2238,
+ VCGEsv16i8 = 2239,
+ VCGEsv2i32 = 2240,
+ VCGEsv4i16 = 2241,
+ VCGEsv4i32 = 2242,
+ VCGEsv8i16 = 2243,
+ VCGEsv8i8 = 2244,
+ VCGEuv16i8 = 2245,
+ VCGEuv2i32 = 2246,
+ VCGEuv4i16 = 2247,
+ VCGEuv4i32 = 2248,
+ VCGEuv8i16 = 2249,
+ VCGEuv8i8 = 2250,
+ VCGEzv16i8 = 2251,
+ VCGEzv2f32 = 2252,
+ VCGEzv2i32 = 2253,
+ VCGEzv4f16 = 2254,
+ VCGEzv4f32 = 2255,
+ VCGEzv4i16 = 2256,
+ VCGEzv4i32 = 2257,
+ VCGEzv8f16 = 2258,
+ VCGEzv8i16 = 2259,
+ VCGEzv8i8 = 2260,
+ VCGTfd = 2261,
+ VCGTfq = 2262,
+ VCGThd = 2263,
+ VCGThq = 2264,
+ VCGTsv16i8 = 2265,
+ VCGTsv2i32 = 2266,
+ VCGTsv4i16 = 2267,
+ VCGTsv4i32 = 2268,
+ VCGTsv8i16 = 2269,
+ VCGTsv8i8 = 2270,
+ VCGTuv16i8 = 2271,
+ VCGTuv2i32 = 2272,
+ VCGTuv4i16 = 2273,
+ VCGTuv4i32 = 2274,
+ VCGTuv8i16 = 2275,
+ VCGTuv8i8 = 2276,
+ VCGTzv16i8 = 2277,
+ VCGTzv2f32 = 2278,
+ VCGTzv2i32 = 2279,
+ VCGTzv4f16 = 2280,
+ VCGTzv4f32 = 2281,
+ VCGTzv4i16 = 2282,
+ VCGTzv4i32 = 2283,
+ VCGTzv8f16 = 2284,
+ VCGTzv8i16 = 2285,
+ VCGTzv8i8 = 2286,
+ VCLEzv16i8 = 2287,
+ VCLEzv2f32 = 2288,
+ VCLEzv2i32 = 2289,
+ VCLEzv4f16 = 2290,
+ VCLEzv4f32 = 2291,
+ VCLEzv4i16 = 2292,
+ VCLEzv4i32 = 2293,
+ VCLEzv8f16 = 2294,
+ VCLEzv8i16 = 2295,
+ VCLEzv8i8 = 2296,
+ VCLSv16i8 = 2297,
+ VCLSv2i32 = 2298,
+ VCLSv4i16 = 2299,
+ VCLSv4i32 = 2300,
+ VCLSv8i16 = 2301,
+ VCLSv8i8 = 2302,
+ VCLTzv16i8 = 2303,
+ VCLTzv2f32 = 2304,
+ VCLTzv2i32 = 2305,
+ VCLTzv4f16 = 2306,
+ VCLTzv4f32 = 2307,
+ VCLTzv4i16 = 2308,
+ VCLTzv4i32 = 2309,
+ VCLTzv8f16 = 2310,
+ VCLTzv8i16 = 2311,
+ VCLTzv8i8 = 2312,
+ VCLZv16i8 = 2313,
+ VCLZv2i32 = 2314,
+ VCLZv4i16 = 2315,
+ VCLZv4i32 = 2316,
+ VCLZv8i16 = 2317,
+ VCLZv8i8 = 2318,
+ VCMLAv2f32 = 2319,
+ VCMLAv2f32_indexed = 2320,
+ VCMLAv4f16 = 2321,
+ VCMLAv4f16_indexed = 2322,
+ VCMLAv4f32 = 2323,
+ VCMLAv4f32_indexed = 2324,
+ VCMLAv8f16 = 2325,
+ VCMLAv8f16_indexed = 2326,
+ VCMPD = 2327,
+ VCMPED = 2328,
+ VCMPEH = 2329,
+ VCMPES = 2330,
+ VCMPEZD = 2331,
+ VCMPEZH = 2332,
+ VCMPEZS = 2333,
+ VCMPH = 2334,
+ VCMPS = 2335,
+ VCMPZD = 2336,
+ VCMPZH = 2337,
+ VCMPZS = 2338,
+ VCNTd = 2339,
+ VCNTq = 2340,
+ VCVTANSDf = 2341,
+ VCVTANSDh = 2342,
+ VCVTANSQf = 2343,
+ VCVTANSQh = 2344,
+ VCVTANUDf = 2345,
+ VCVTANUDh = 2346,
+ VCVTANUQf = 2347,
+ VCVTANUQh = 2348,
+ VCVTASD = 2349,
+ VCVTASH = 2350,
+ VCVTASS = 2351,
+ VCVTAUD = 2352,
+ VCVTAUH = 2353,
+ VCVTAUS = 2354,
+ VCVTBDH = 2355,
+ VCVTBHD = 2356,
+ VCVTBHS = 2357,
+ VCVTBSH = 2358,
+ VCVTDS = 2359,
+ VCVTMNSDf = 2360,
+ VCVTMNSDh = 2361,
+ VCVTMNSQf = 2362,
+ VCVTMNSQh = 2363,
+ VCVTMNUDf = 2364,
+ VCVTMNUDh = 2365,
+ VCVTMNUQf = 2366,
+ VCVTMNUQh = 2367,
+ VCVTMSD = 2368,
+ VCVTMSH = 2369,
+ VCVTMSS = 2370,
+ VCVTMUD = 2371,
+ VCVTMUH = 2372,
+ VCVTMUS = 2373,
+ VCVTNNSDf = 2374,
+ VCVTNNSDh = 2375,
+ VCVTNNSQf = 2376,
+ VCVTNNSQh = 2377,
+ VCVTNNUDf = 2378,
+ VCVTNNUDh = 2379,
+ VCVTNNUQf = 2380,
+ VCVTNNUQh = 2381,
+ VCVTNSD = 2382,
+ VCVTNSH = 2383,
+ VCVTNSS = 2384,
+ VCVTNUD = 2385,
+ VCVTNUH = 2386,
+ VCVTNUS = 2387,
+ VCVTPNSDf = 2388,
+ VCVTPNSDh = 2389,
+ VCVTPNSQf = 2390,
+ VCVTPNSQh = 2391,
+ VCVTPNUDf = 2392,
+ VCVTPNUDh = 2393,
+ VCVTPNUQf = 2394,
+ VCVTPNUQh = 2395,
+ VCVTPSD = 2396,
+ VCVTPSH = 2397,
+ VCVTPSS = 2398,
+ VCVTPUD = 2399,
+ VCVTPUH = 2400,
+ VCVTPUS = 2401,
+ VCVTSD = 2402,
+ VCVTTDH = 2403,
+ VCVTTHD = 2404,
+ VCVTTHS = 2405,
+ VCVTTSH = 2406,
+ VCVTf2h = 2407,
+ VCVTf2sd = 2408,
+ VCVTf2sq = 2409,
+ VCVTf2ud = 2410,
+ VCVTf2uq = 2411,
+ VCVTf2xsd = 2412,
+ VCVTf2xsq = 2413,
+ VCVTf2xud = 2414,
+ VCVTf2xuq = 2415,
+ VCVTh2f = 2416,
+ VCVTh2sd = 2417,
+ VCVTh2sq = 2418,
+ VCVTh2ud = 2419,
+ VCVTh2uq = 2420,
+ VCVTh2xsd = 2421,
+ VCVTh2xsq = 2422,
+ VCVTh2xud = 2423,
+ VCVTh2xuq = 2424,
+ VCVTs2fd = 2425,
+ VCVTs2fq = 2426,
+ VCVTs2hd = 2427,
+ VCVTs2hq = 2428,
+ VCVTu2fd = 2429,
+ VCVTu2fq = 2430,
+ VCVTu2hd = 2431,
+ VCVTu2hq = 2432,
+ VCVTxs2fd = 2433,
+ VCVTxs2fq = 2434,
+ VCVTxs2hd = 2435,
+ VCVTxs2hq = 2436,
+ VCVTxu2fd = 2437,
+ VCVTxu2fq = 2438,
+ VCVTxu2hd = 2439,
+ VCVTxu2hq = 2440,
+ VDIVD = 2441,
+ VDIVH = 2442,
+ VDIVS = 2443,
+ VDUP16d = 2444,
+ VDUP16q = 2445,
+ VDUP32d = 2446,
+ VDUP32q = 2447,
+ VDUP8d = 2448,
+ VDUP8q = 2449,
+ VDUPLN16d = 2450,
+ VDUPLN16q = 2451,
+ VDUPLN32d = 2452,
+ VDUPLN32q = 2453,
+ VDUPLN8d = 2454,
+ VDUPLN8q = 2455,
+ VEORd = 2456,
+ VEORq = 2457,
+ VEXTd16 = 2458,
+ VEXTd32 = 2459,
+ VEXTd8 = 2460,
+ VEXTq16 = 2461,
+ VEXTq32 = 2462,
+ VEXTq64 = 2463,
+ VEXTq8 = 2464,
+ VFMAD = 2465,
+ VFMAH = 2466,
+ VFMALD = 2467,
+ VFMALDI = 2468,
+ VFMALQ = 2469,
+ VFMALQI = 2470,
+ VFMAS = 2471,
+ VFMAfd = 2472,
+ VFMAfq = 2473,
+ VFMAhd = 2474,
+ VFMAhq = 2475,
+ VFMSD = 2476,
+ VFMSH = 2477,
+ VFMSLD = 2478,
+ VFMSLDI = 2479,
+ VFMSLQ = 2480,
+ VFMSLQI = 2481,
+ VFMSS = 2482,
+ VFMSfd = 2483,
+ VFMSfq = 2484,
+ VFMShd = 2485,
+ VFMShq = 2486,
+ VFNMAD = 2487,
+ VFNMAH = 2488,
+ VFNMAS = 2489,
+ VFNMSD = 2490,
+ VFNMSH = 2491,
+ VFNMSS = 2492,
+ VFP_VMAXNMD = 2493,
+ VFP_VMAXNMH = 2494,
+ VFP_VMAXNMS = 2495,
+ VFP_VMINNMD = 2496,
+ VFP_VMINNMH = 2497,
+ VFP_VMINNMS = 2498,
+ VGETLNi32 = 2499,
+ VGETLNs16 = 2500,
+ VGETLNs8 = 2501,
+ VGETLNu16 = 2502,
+ VGETLNu8 = 2503,
+ VHADDsv16i8 = 2504,
+ VHADDsv2i32 = 2505,
+ VHADDsv4i16 = 2506,
+ VHADDsv4i32 = 2507,
+ VHADDsv8i16 = 2508,
+ VHADDsv8i8 = 2509,
+ VHADDuv16i8 = 2510,
+ VHADDuv2i32 = 2511,
+ VHADDuv4i16 = 2512,
+ VHADDuv4i32 = 2513,
+ VHADDuv8i16 = 2514,
+ VHADDuv8i8 = 2515,
+ VHSUBsv16i8 = 2516,
+ VHSUBsv2i32 = 2517,
+ VHSUBsv4i16 = 2518,
+ VHSUBsv4i32 = 2519,
+ VHSUBsv8i16 = 2520,
+ VHSUBsv8i8 = 2521,
+ VHSUBuv16i8 = 2522,
+ VHSUBuv2i32 = 2523,
+ VHSUBuv4i16 = 2524,
+ VHSUBuv4i32 = 2525,
+ VHSUBuv8i16 = 2526,
+ VHSUBuv8i8 = 2527,
+ VINSH = 2528,
+ VJCVT = 2529,
+ VLD1DUPd16 = 2530,
+ VLD1DUPd16wb_fixed = 2531,
+ VLD1DUPd16wb_register = 2532,
+ VLD1DUPd32 = 2533,
+ VLD1DUPd32wb_fixed = 2534,
+ VLD1DUPd32wb_register = 2535,
+ VLD1DUPd8 = 2536,
+ VLD1DUPd8wb_fixed = 2537,
+ VLD1DUPd8wb_register = 2538,
+ VLD1DUPq16 = 2539,
+ VLD1DUPq16wb_fixed = 2540,
+ VLD1DUPq16wb_register = 2541,
+ VLD1DUPq32 = 2542,
+ VLD1DUPq32wb_fixed = 2543,
+ VLD1DUPq32wb_register = 2544,
+ VLD1DUPq8 = 2545,
+ VLD1DUPq8wb_fixed = 2546,
+ VLD1DUPq8wb_register = 2547,
+ VLD1LNd16 = 2548,
+ VLD1LNd16_UPD = 2549,
+ VLD1LNd32 = 2550,
+ VLD1LNd32_UPD = 2551,
+ VLD1LNd8 = 2552,
+ VLD1LNd8_UPD = 2553,
+ VLD1LNq16Pseudo = 2554,
+ VLD1LNq16Pseudo_UPD = 2555,
+ VLD1LNq32Pseudo = 2556,
+ VLD1LNq32Pseudo_UPD = 2557,
+ VLD1LNq8Pseudo = 2558,
+ VLD1LNq8Pseudo_UPD = 2559,
+ VLD1d16 = 2560,
+ VLD1d16Q = 2561,
+ VLD1d16QPseudo = 2562,
+ VLD1d16QPseudoWB_fixed = 2563,
+ VLD1d16QPseudoWB_register = 2564,
+ VLD1d16Qwb_fixed = 2565,
+ VLD1d16Qwb_register = 2566,
+ VLD1d16T = 2567,
+ VLD1d16TPseudo = 2568,
+ VLD1d16TPseudoWB_fixed = 2569,
+ VLD1d16TPseudoWB_register = 2570,
+ VLD1d16Twb_fixed = 2571,
+ VLD1d16Twb_register = 2572,
+ VLD1d16wb_fixed = 2573,
+ VLD1d16wb_register = 2574,
+ VLD1d32 = 2575,
+ VLD1d32Q = 2576,
+ VLD1d32QPseudo = 2577,
+ VLD1d32QPseudoWB_fixed = 2578,
+ VLD1d32QPseudoWB_register = 2579,
+ VLD1d32Qwb_fixed = 2580,
+ VLD1d32Qwb_register = 2581,
+ VLD1d32T = 2582,
+ VLD1d32TPseudo = 2583,
+ VLD1d32TPseudoWB_fixed = 2584,
+ VLD1d32TPseudoWB_register = 2585,
+ VLD1d32Twb_fixed = 2586,
+ VLD1d32Twb_register = 2587,
+ VLD1d32wb_fixed = 2588,
+ VLD1d32wb_register = 2589,
+ VLD1d64 = 2590,
+ VLD1d64Q = 2591,
+ VLD1d64QPseudo = 2592,
+ VLD1d64QPseudoWB_fixed = 2593,
+ VLD1d64QPseudoWB_register = 2594,
+ VLD1d64Qwb_fixed = 2595,
+ VLD1d64Qwb_register = 2596,
+ VLD1d64T = 2597,
+ VLD1d64TPseudo = 2598,
+ VLD1d64TPseudoWB_fixed = 2599,
+ VLD1d64TPseudoWB_register = 2600,
+ VLD1d64Twb_fixed = 2601,
+ VLD1d64Twb_register = 2602,
+ VLD1d64wb_fixed = 2603,
+ VLD1d64wb_register = 2604,
+ VLD1d8 = 2605,
+ VLD1d8Q = 2606,
+ VLD1d8QPseudo = 2607,
+ VLD1d8QPseudoWB_fixed = 2608,
+ VLD1d8QPseudoWB_register = 2609,
+ VLD1d8Qwb_fixed = 2610,
+ VLD1d8Qwb_register = 2611,
+ VLD1d8T = 2612,
+ VLD1d8TPseudo = 2613,
+ VLD1d8TPseudoWB_fixed = 2614,
+ VLD1d8TPseudoWB_register = 2615,
+ VLD1d8Twb_fixed = 2616,
+ VLD1d8Twb_register = 2617,
+ VLD1d8wb_fixed = 2618,
+ VLD1d8wb_register = 2619,
+ VLD1q16 = 2620,
+ VLD1q16HighQPseudo = 2621,
+ VLD1q16HighQPseudo_UPD = 2622,
+ VLD1q16HighTPseudo = 2623,
+ VLD1q16HighTPseudo_UPD = 2624,
+ VLD1q16LowQPseudo_UPD = 2625,
+ VLD1q16LowTPseudo_UPD = 2626,
+ VLD1q16wb_fixed = 2627,
+ VLD1q16wb_register = 2628,
+ VLD1q32 = 2629,
+ VLD1q32HighQPseudo = 2630,
+ VLD1q32HighQPseudo_UPD = 2631,
+ VLD1q32HighTPseudo = 2632,
+ VLD1q32HighTPseudo_UPD = 2633,
+ VLD1q32LowQPseudo_UPD = 2634,
+ VLD1q32LowTPseudo_UPD = 2635,
+ VLD1q32wb_fixed = 2636,
+ VLD1q32wb_register = 2637,
+ VLD1q64 = 2638,
+ VLD1q64HighQPseudo = 2639,
+ VLD1q64HighQPseudo_UPD = 2640,
+ VLD1q64HighTPseudo = 2641,
+ VLD1q64HighTPseudo_UPD = 2642,
+ VLD1q64LowQPseudo_UPD = 2643,
+ VLD1q64LowTPseudo_UPD = 2644,
+ VLD1q64wb_fixed = 2645,
+ VLD1q64wb_register = 2646,
+ VLD1q8 = 2647,
+ VLD1q8HighQPseudo = 2648,
+ VLD1q8HighQPseudo_UPD = 2649,
+ VLD1q8HighTPseudo = 2650,
+ VLD1q8HighTPseudo_UPD = 2651,
+ VLD1q8LowQPseudo_UPD = 2652,
+ VLD1q8LowTPseudo_UPD = 2653,
+ VLD1q8wb_fixed = 2654,
+ VLD1q8wb_register = 2655,
+ VLD2DUPd16 = 2656,
+ VLD2DUPd16wb_fixed = 2657,
+ VLD2DUPd16wb_register = 2658,
+ VLD2DUPd16x2 = 2659,
+ VLD2DUPd16x2wb_fixed = 2660,
+ VLD2DUPd16x2wb_register = 2661,
+ VLD2DUPd32 = 2662,
+ VLD2DUPd32wb_fixed = 2663,
+ VLD2DUPd32wb_register = 2664,
+ VLD2DUPd32x2 = 2665,
+ VLD2DUPd32x2wb_fixed = 2666,
+ VLD2DUPd32x2wb_register = 2667,
+ VLD2DUPd8 = 2668,
+ VLD2DUPd8wb_fixed = 2669,
+ VLD2DUPd8wb_register = 2670,
+ VLD2DUPd8x2 = 2671,
+ VLD2DUPd8x2wb_fixed = 2672,
+ VLD2DUPd8x2wb_register = 2673,
+ VLD2DUPq16EvenPseudo = 2674,
+ VLD2DUPq16OddPseudo = 2675,
+ VLD2DUPq16OddPseudoWB_fixed = 2676,
+ VLD2DUPq16OddPseudoWB_register = 2677,
+ VLD2DUPq32EvenPseudo = 2678,
+ VLD2DUPq32OddPseudo = 2679,
+ VLD2DUPq32OddPseudoWB_fixed = 2680,
+ VLD2DUPq32OddPseudoWB_register = 2681,
+ VLD2DUPq8EvenPseudo = 2682,
+ VLD2DUPq8OddPseudo = 2683,
+ VLD2DUPq8OddPseudoWB_fixed = 2684,
+ VLD2DUPq8OddPseudoWB_register = 2685,
+ VLD2LNd16 = 2686,
+ VLD2LNd16Pseudo = 2687,
+ VLD2LNd16Pseudo_UPD = 2688,
+ VLD2LNd16_UPD = 2689,
+ VLD2LNd32 = 2690,
+ VLD2LNd32Pseudo = 2691,
+ VLD2LNd32Pseudo_UPD = 2692,
+ VLD2LNd32_UPD = 2693,
+ VLD2LNd8 = 2694,
+ VLD2LNd8Pseudo = 2695,
+ VLD2LNd8Pseudo_UPD = 2696,
+ VLD2LNd8_UPD = 2697,
+ VLD2LNq16 = 2698,
+ VLD2LNq16Pseudo = 2699,
+ VLD2LNq16Pseudo_UPD = 2700,
+ VLD2LNq16_UPD = 2701,
+ VLD2LNq32 = 2702,
+ VLD2LNq32Pseudo = 2703,
+ VLD2LNq32Pseudo_UPD = 2704,
+ VLD2LNq32_UPD = 2705,
+ VLD2b16 = 2706,
+ VLD2b16wb_fixed = 2707,
+ VLD2b16wb_register = 2708,
+ VLD2b32 = 2709,
+ VLD2b32wb_fixed = 2710,
+ VLD2b32wb_register = 2711,
+ VLD2b8 = 2712,
+ VLD2b8wb_fixed = 2713,
+ VLD2b8wb_register = 2714,
+ VLD2d16 = 2715,
+ VLD2d16wb_fixed = 2716,
+ VLD2d16wb_register = 2717,
+ VLD2d32 = 2718,
+ VLD2d32wb_fixed = 2719,
+ VLD2d32wb_register = 2720,
+ VLD2d8 = 2721,
+ VLD2d8wb_fixed = 2722,
+ VLD2d8wb_register = 2723,
+ VLD2q16 = 2724,
+ VLD2q16Pseudo = 2725,
+ VLD2q16PseudoWB_fixed = 2726,
+ VLD2q16PseudoWB_register = 2727,
+ VLD2q16wb_fixed = 2728,
+ VLD2q16wb_register = 2729,
+ VLD2q32 = 2730,
+ VLD2q32Pseudo = 2731,
+ VLD2q32PseudoWB_fixed = 2732,
+ VLD2q32PseudoWB_register = 2733,
+ VLD2q32wb_fixed = 2734,
+ VLD2q32wb_register = 2735,
+ VLD2q8 = 2736,
+ VLD2q8Pseudo = 2737,
+ VLD2q8PseudoWB_fixed = 2738,
+ VLD2q8PseudoWB_register = 2739,
+ VLD2q8wb_fixed = 2740,
+ VLD2q8wb_register = 2741,
+ VLD3DUPd16 = 2742,
+ VLD3DUPd16Pseudo = 2743,
+ VLD3DUPd16Pseudo_UPD = 2744,
+ VLD3DUPd16_UPD = 2745,
+ VLD3DUPd32 = 2746,
+ VLD3DUPd32Pseudo = 2747,
+ VLD3DUPd32Pseudo_UPD = 2748,
+ VLD3DUPd32_UPD = 2749,
+ VLD3DUPd8 = 2750,
+ VLD3DUPd8Pseudo = 2751,
+ VLD3DUPd8Pseudo_UPD = 2752,
+ VLD3DUPd8_UPD = 2753,
+ VLD3DUPq16 = 2754,
+ VLD3DUPq16EvenPseudo = 2755,
+ VLD3DUPq16OddPseudo = 2756,
+ VLD3DUPq16OddPseudo_UPD = 2757,
+ VLD3DUPq16_UPD = 2758,
+ VLD3DUPq32 = 2759,
+ VLD3DUPq32EvenPseudo = 2760,
+ VLD3DUPq32OddPseudo = 2761,
+ VLD3DUPq32OddPseudo_UPD = 2762,
+ VLD3DUPq32_UPD = 2763,
+ VLD3DUPq8 = 2764,
+ VLD3DUPq8EvenPseudo = 2765,
+ VLD3DUPq8OddPseudo = 2766,
+ VLD3DUPq8OddPseudo_UPD = 2767,
+ VLD3DUPq8_UPD = 2768,
+ VLD3LNd16 = 2769,
+ VLD3LNd16Pseudo = 2770,
+ VLD3LNd16Pseudo_UPD = 2771,
+ VLD3LNd16_UPD = 2772,
+ VLD3LNd32 = 2773,
+ VLD3LNd32Pseudo = 2774,
+ VLD3LNd32Pseudo_UPD = 2775,
+ VLD3LNd32_UPD = 2776,
+ VLD3LNd8 = 2777,
+ VLD3LNd8Pseudo = 2778,
+ VLD3LNd8Pseudo_UPD = 2779,
+ VLD3LNd8_UPD = 2780,
+ VLD3LNq16 = 2781,
+ VLD3LNq16Pseudo = 2782,
+ VLD3LNq16Pseudo_UPD = 2783,
+ VLD3LNq16_UPD = 2784,
+ VLD3LNq32 = 2785,
+ VLD3LNq32Pseudo = 2786,
+ VLD3LNq32Pseudo_UPD = 2787,
+ VLD3LNq32_UPD = 2788,
+ VLD3d16 = 2789,
+ VLD3d16Pseudo = 2790,
+ VLD3d16Pseudo_UPD = 2791,
+ VLD3d16_UPD = 2792,
+ VLD3d32 = 2793,
+ VLD3d32Pseudo = 2794,
+ VLD3d32Pseudo_UPD = 2795,
+ VLD3d32_UPD = 2796,
+ VLD3d8 = 2797,
+ VLD3d8Pseudo = 2798,
+ VLD3d8Pseudo_UPD = 2799,
+ VLD3d8_UPD = 2800,
+ VLD3q16 = 2801,
+ VLD3q16Pseudo_UPD = 2802,
+ VLD3q16_UPD = 2803,
+ VLD3q16oddPseudo = 2804,
+ VLD3q16oddPseudo_UPD = 2805,
+ VLD3q32 = 2806,
+ VLD3q32Pseudo_UPD = 2807,
+ VLD3q32_UPD = 2808,
+ VLD3q32oddPseudo = 2809,
+ VLD3q32oddPseudo_UPD = 2810,
+ VLD3q8 = 2811,
+ VLD3q8Pseudo_UPD = 2812,
+ VLD3q8_UPD = 2813,
+ VLD3q8oddPseudo = 2814,
+ VLD3q8oddPseudo_UPD = 2815,
+ VLD4DUPd16 = 2816,
+ VLD4DUPd16Pseudo = 2817,
+ VLD4DUPd16Pseudo_UPD = 2818,
+ VLD4DUPd16_UPD = 2819,
+ VLD4DUPd32 = 2820,
+ VLD4DUPd32Pseudo = 2821,
+ VLD4DUPd32Pseudo_UPD = 2822,
+ VLD4DUPd32_UPD = 2823,
+ VLD4DUPd8 = 2824,
+ VLD4DUPd8Pseudo = 2825,
+ VLD4DUPd8Pseudo_UPD = 2826,
+ VLD4DUPd8_UPD = 2827,
+ VLD4DUPq16 = 2828,
+ VLD4DUPq16EvenPseudo = 2829,
+ VLD4DUPq16OddPseudo = 2830,
+ VLD4DUPq16OddPseudo_UPD = 2831,
+ VLD4DUPq16_UPD = 2832,
+ VLD4DUPq32 = 2833,
+ VLD4DUPq32EvenPseudo = 2834,
+ VLD4DUPq32OddPseudo = 2835,
+ VLD4DUPq32OddPseudo_UPD = 2836,
+ VLD4DUPq32_UPD = 2837,
+ VLD4DUPq8 = 2838,
+ VLD4DUPq8EvenPseudo = 2839,
+ VLD4DUPq8OddPseudo = 2840,
+ VLD4DUPq8OddPseudo_UPD = 2841,
+ VLD4DUPq8_UPD = 2842,
+ VLD4LNd16 = 2843,
+ VLD4LNd16Pseudo = 2844,
+ VLD4LNd16Pseudo_UPD = 2845,
+ VLD4LNd16_UPD = 2846,
+ VLD4LNd32 = 2847,
+ VLD4LNd32Pseudo = 2848,
+ VLD4LNd32Pseudo_UPD = 2849,
+ VLD4LNd32_UPD = 2850,
+ VLD4LNd8 = 2851,
+ VLD4LNd8Pseudo = 2852,
+ VLD4LNd8Pseudo_UPD = 2853,
+ VLD4LNd8_UPD = 2854,
+ VLD4LNq16 = 2855,
+ VLD4LNq16Pseudo = 2856,
+ VLD4LNq16Pseudo_UPD = 2857,
+ VLD4LNq16_UPD = 2858,
+ VLD4LNq32 = 2859,
+ VLD4LNq32Pseudo = 2860,
+ VLD4LNq32Pseudo_UPD = 2861,
+ VLD4LNq32_UPD = 2862,
+ VLD4d16 = 2863,
+ VLD4d16Pseudo = 2864,
+ VLD4d16Pseudo_UPD = 2865,
+ VLD4d16_UPD = 2866,
+ VLD4d32 = 2867,
+ VLD4d32Pseudo = 2868,
+ VLD4d32Pseudo_UPD = 2869,
+ VLD4d32_UPD = 2870,
+ VLD4d8 = 2871,
+ VLD4d8Pseudo = 2872,
+ VLD4d8Pseudo_UPD = 2873,
+ VLD4d8_UPD = 2874,
+ VLD4q16 = 2875,
+ VLD4q16Pseudo_UPD = 2876,
+ VLD4q16_UPD = 2877,
+ VLD4q16oddPseudo = 2878,
+ VLD4q16oddPseudo_UPD = 2879,
+ VLD4q32 = 2880,
+ VLD4q32Pseudo_UPD = 2881,
+ VLD4q32_UPD = 2882,
+ VLD4q32oddPseudo = 2883,
+ VLD4q32oddPseudo_UPD = 2884,
+ VLD4q8 = 2885,
+ VLD4q8Pseudo_UPD = 2886,
+ VLD4q8_UPD = 2887,
+ VLD4q8oddPseudo = 2888,
+ VLD4q8oddPseudo_UPD = 2889,
+ VLDMDDB_UPD = 2890,
+ VLDMDIA = 2891,
+ VLDMDIA_UPD = 2892,
+ VLDMQIA = 2893,
+ VLDMSDB_UPD = 2894,
+ VLDMSIA = 2895,
+ VLDMSIA_UPD = 2896,
+ VLDRD = 2897,
+ VLDRH = 2898,
+ VLDRS = 2899,
+ VLDR_FPCXTNS_off = 2900,
+ VLDR_FPCXTNS_post = 2901,
+ VLDR_FPCXTNS_pre = 2902,
+ VLDR_FPCXTS_off = 2903,
+ VLDR_FPCXTS_post = 2904,
+ VLDR_FPCXTS_pre = 2905,
+ VLDR_FPSCR_NZCVQC_off = 2906,
+ VLDR_FPSCR_NZCVQC_post = 2907,
+ VLDR_FPSCR_NZCVQC_pre = 2908,
+ VLDR_FPSCR_off = 2909,
+ VLDR_FPSCR_post = 2910,
+ VLDR_FPSCR_pre = 2911,
+ VLDR_P0_off = 2912,
+ VLDR_P0_post = 2913,
+ VLDR_P0_pre = 2914,
+ VLDR_VPR_off = 2915,
+ VLDR_VPR_post = 2916,
+ VLDR_VPR_pre = 2917,
+ VLLDM = 2918,
+ VLLDM_T2 = 2919,
+ VLSTM = 2920,
+ VLSTM_T2 = 2921,
+ VMAXfd = 2922,
+ VMAXfq = 2923,
+ VMAXhd = 2924,
+ VMAXhq = 2925,
+ VMAXsv16i8 = 2926,
+ VMAXsv2i32 = 2927,
+ VMAXsv4i16 = 2928,
+ VMAXsv4i32 = 2929,
+ VMAXsv8i16 = 2930,
+ VMAXsv8i8 = 2931,
+ VMAXuv16i8 = 2932,
+ VMAXuv2i32 = 2933,
+ VMAXuv4i16 = 2934,
+ VMAXuv4i32 = 2935,
+ VMAXuv8i16 = 2936,
+ VMAXuv8i8 = 2937,
+ VMINfd = 2938,
+ VMINfq = 2939,
+ VMINhd = 2940,
+ VMINhq = 2941,
+ VMINsv16i8 = 2942,
+ VMINsv2i32 = 2943,
+ VMINsv4i16 = 2944,
+ VMINsv4i32 = 2945,
+ VMINsv8i16 = 2946,
+ VMINsv8i8 = 2947,
+ VMINuv16i8 = 2948,
+ VMINuv2i32 = 2949,
+ VMINuv4i16 = 2950,
+ VMINuv4i32 = 2951,
+ VMINuv8i16 = 2952,
+ VMINuv8i8 = 2953,
+ VMLAD = 2954,
+ VMLAH = 2955,
+ VMLALslsv2i32 = 2956,
+ VMLALslsv4i16 = 2957,
+ VMLALsluv2i32 = 2958,
+ VMLALsluv4i16 = 2959,
+ VMLALsv2i64 = 2960,
+ VMLALsv4i32 = 2961,
+ VMLALsv8i16 = 2962,
+ VMLALuv2i64 = 2963,
+ VMLALuv4i32 = 2964,
+ VMLALuv8i16 = 2965,
+ VMLAS = 2966,
+ VMLAfd = 2967,
+ VMLAfq = 2968,
+ VMLAhd = 2969,
+ VMLAhq = 2970,
+ VMLAslfd = 2971,
+ VMLAslfq = 2972,
+ VMLAslhd = 2973,
+ VMLAslhq = 2974,
+ VMLAslv2i32 = 2975,
+ VMLAslv4i16 = 2976,
+ VMLAslv4i32 = 2977,
+ VMLAslv8i16 = 2978,
+ VMLAv16i8 = 2979,
+ VMLAv2i32 = 2980,
+ VMLAv4i16 = 2981,
+ VMLAv4i32 = 2982,
+ VMLAv8i16 = 2983,
+ VMLAv8i8 = 2984,
+ VMLSD = 2985,
+ VMLSH = 2986,
+ VMLSLslsv2i32 = 2987,
+ VMLSLslsv4i16 = 2988,
+ VMLSLsluv2i32 = 2989,
+ VMLSLsluv4i16 = 2990,
+ VMLSLsv2i64 = 2991,
+ VMLSLsv4i32 = 2992,
+ VMLSLsv8i16 = 2993,
+ VMLSLuv2i64 = 2994,
+ VMLSLuv4i32 = 2995,
+ VMLSLuv8i16 = 2996,
+ VMLSS = 2997,
+ VMLSfd = 2998,
+ VMLSfq = 2999,
+ VMLShd = 3000,
+ VMLShq = 3001,
+ VMLSslfd = 3002,
+ VMLSslfq = 3003,
+ VMLSslhd = 3004,
+ VMLSslhq = 3005,
+ VMLSslv2i32 = 3006,
+ VMLSslv4i16 = 3007,
+ VMLSslv4i32 = 3008,
+ VMLSslv8i16 = 3009,
+ VMLSv16i8 = 3010,
+ VMLSv2i32 = 3011,
+ VMLSv4i16 = 3012,
+ VMLSv4i32 = 3013,
+ VMLSv8i16 = 3014,
+ VMLSv8i8 = 3015,
+ VMMLA = 3016,
+ VMOVD = 3017,
+ VMOVDRR = 3018,
+ VMOVH = 3019,
+ VMOVHR = 3020,
+ VMOVLsv2i64 = 3021,
+ VMOVLsv4i32 = 3022,
+ VMOVLsv8i16 = 3023,
+ VMOVLuv2i64 = 3024,
+ VMOVLuv4i32 = 3025,
+ VMOVLuv8i16 = 3026,
+ VMOVNv2i32 = 3027,
+ VMOVNv4i16 = 3028,
+ VMOVNv8i8 = 3029,
+ VMOVRH = 3030,
+ VMOVRRD = 3031,
+ VMOVRRS = 3032,
+ VMOVRS = 3033,
+ VMOVS = 3034,
+ VMOVSR = 3035,
+ VMOVSRR = 3036,
+ VMOVv16i8 = 3037,
+ VMOVv1i64 = 3038,
+ VMOVv2f32 = 3039,
+ VMOVv2i32 = 3040,
+ VMOVv2i64 = 3041,
+ VMOVv4f32 = 3042,
+ VMOVv4i16 = 3043,
+ VMOVv4i32 = 3044,
+ VMOVv8i16 = 3045,
+ VMOVv8i8 = 3046,
+ VMRS = 3047,
+ VMRS_FPCXTNS = 3048,
+ VMRS_FPCXTS = 3049,
+ VMRS_FPEXC = 3050,
+ VMRS_FPINST = 3051,
+ VMRS_FPINST2 = 3052,
+ VMRS_FPSCR_NZCVQC = 3053,
+ VMRS_FPSID = 3054,
+ VMRS_MVFR0 = 3055,
+ VMRS_MVFR1 = 3056,
+ VMRS_MVFR2 = 3057,
+ VMRS_P0 = 3058,
+ VMRS_VPR = 3059,
+ VMSR = 3060,
+ VMSR_FPCXTNS = 3061,
+ VMSR_FPCXTS = 3062,
+ VMSR_FPEXC = 3063,
+ VMSR_FPINST = 3064,
+ VMSR_FPINST2 = 3065,
+ VMSR_FPSCR_NZCVQC = 3066,
+ VMSR_FPSID = 3067,
+ VMSR_P0 = 3068,
+ VMSR_VPR = 3069,
+ VMULD = 3070,
+ VMULH = 3071,
+ VMULLp64 = 3072,
+ VMULLp8 = 3073,
+ VMULLslsv2i32 = 3074,
+ VMULLslsv4i16 = 3075,
+ VMULLsluv2i32 = 3076,
+ VMULLsluv4i16 = 3077,
+ VMULLsv2i64 = 3078,
+ VMULLsv4i32 = 3079,
+ VMULLsv8i16 = 3080,
+ VMULLuv2i64 = 3081,
+ VMULLuv4i32 = 3082,
+ VMULLuv8i16 = 3083,
+ VMULS = 3084,
+ VMULfd = 3085,
+ VMULfq = 3086,
+ VMULhd = 3087,
+ VMULhq = 3088,
+ VMULpd = 3089,
+ VMULpq = 3090,
+ VMULslfd = 3091,
+ VMULslfq = 3092,
+ VMULslhd = 3093,
+ VMULslhq = 3094,
+ VMULslv2i32 = 3095,
+ VMULslv4i16 = 3096,
+ VMULslv4i32 = 3097,
+ VMULslv8i16 = 3098,
+ VMULv16i8 = 3099,
+ VMULv2i32 = 3100,
+ VMULv4i16 = 3101,
+ VMULv4i32 = 3102,
+ VMULv8i16 = 3103,
+ VMULv8i8 = 3104,
+ VMVNd = 3105,
+ VMVNq = 3106,
+ VMVNv2i32 = 3107,
+ VMVNv4i16 = 3108,
+ VMVNv4i32 = 3109,
+ VMVNv8i16 = 3110,
+ VNEGD = 3111,
+ VNEGH = 3112,
+ VNEGS = 3113,
+ VNEGf32q = 3114,
+ VNEGfd = 3115,
+ VNEGhd = 3116,
+ VNEGhq = 3117,
+ VNEGs16d = 3118,
+ VNEGs16q = 3119,
+ VNEGs32d = 3120,
+ VNEGs32q = 3121,
+ VNEGs8d = 3122,
+ VNEGs8q = 3123,
+ VNMLAD = 3124,
+ VNMLAH = 3125,
+ VNMLAS = 3126,
+ VNMLSD = 3127,
+ VNMLSH = 3128,
+ VNMLSS = 3129,
+ VNMULD = 3130,
+ VNMULH = 3131,
+ VNMULS = 3132,
+ VORNd = 3133,
+ VORNq = 3134,
+ VORRd = 3135,
+ VORRiv2i32 = 3136,
+ VORRiv4i16 = 3137,
+ VORRiv4i32 = 3138,
+ VORRiv8i16 = 3139,
+ VORRq = 3140,
+ VPADALsv16i8 = 3141,
+ VPADALsv2i32 = 3142,
+ VPADALsv4i16 = 3143,
+ VPADALsv4i32 = 3144,
+ VPADALsv8i16 = 3145,
+ VPADALsv8i8 = 3146,
+ VPADALuv16i8 = 3147,
+ VPADALuv2i32 = 3148,
+ VPADALuv4i16 = 3149,
+ VPADALuv4i32 = 3150,
+ VPADALuv8i16 = 3151,
+ VPADALuv8i8 = 3152,
+ VPADDLsv16i8 = 3153,
+ VPADDLsv2i32 = 3154,
+ VPADDLsv4i16 = 3155,
+ VPADDLsv4i32 = 3156,
+ VPADDLsv8i16 = 3157,
+ VPADDLsv8i8 = 3158,
+ VPADDLuv16i8 = 3159,
+ VPADDLuv2i32 = 3160,
+ VPADDLuv4i16 = 3161,
+ VPADDLuv4i32 = 3162,
+ VPADDLuv8i16 = 3163,
+ VPADDLuv8i8 = 3164,
+ VPADDf = 3165,
+ VPADDh = 3166,
+ VPADDi16 = 3167,
+ VPADDi32 = 3168,
+ VPADDi8 = 3169,
+ VPMAXf = 3170,
+ VPMAXh = 3171,
+ VPMAXs16 = 3172,
+ VPMAXs32 = 3173,
+ VPMAXs8 = 3174,
+ VPMAXu16 = 3175,
+ VPMAXu32 = 3176,
+ VPMAXu8 = 3177,
+ VPMINf = 3178,
+ VPMINh = 3179,
+ VPMINs16 = 3180,
+ VPMINs32 = 3181,
+ VPMINs8 = 3182,
+ VPMINu16 = 3183,
+ VPMINu32 = 3184,
+ VPMINu8 = 3185,
+ VQABSv16i8 = 3186,
+ VQABSv2i32 = 3187,
+ VQABSv4i16 = 3188,
+ VQABSv4i32 = 3189,
+ VQABSv8i16 = 3190,
+ VQABSv8i8 = 3191,
+ VQADDsv16i8 = 3192,
+ VQADDsv1i64 = 3193,
+ VQADDsv2i32 = 3194,
+ VQADDsv2i64 = 3195,
+ VQADDsv4i16 = 3196,
+ VQADDsv4i32 = 3197,
+ VQADDsv8i16 = 3198,
+ VQADDsv8i8 = 3199,
+ VQADDuv16i8 = 3200,
+ VQADDuv1i64 = 3201,
+ VQADDuv2i32 = 3202,
+ VQADDuv2i64 = 3203,
+ VQADDuv4i16 = 3204,
+ VQADDuv4i32 = 3205,
+ VQADDuv8i16 = 3206,
+ VQADDuv8i8 = 3207,
+ VQDMLALslv2i32 = 3208,
+ VQDMLALslv4i16 = 3209,
+ VQDMLALv2i64 = 3210,
+ VQDMLALv4i32 = 3211,
+ VQDMLSLslv2i32 = 3212,
+ VQDMLSLslv4i16 = 3213,
+ VQDMLSLv2i64 = 3214,
+ VQDMLSLv4i32 = 3215,
+ VQDMULHslv2i32 = 3216,
+ VQDMULHslv4i16 = 3217,
+ VQDMULHslv4i32 = 3218,
+ VQDMULHslv8i16 = 3219,
+ VQDMULHv2i32 = 3220,
+ VQDMULHv4i16 = 3221,
+ VQDMULHv4i32 = 3222,
+ VQDMULHv8i16 = 3223,
+ VQDMULLslv2i32 = 3224,
+ VQDMULLslv4i16 = 3225,
+ VQDMULLv2i64 = 3226,
+ VQDMULLv4i32 = 3227,
+ VQMOVNsuv2i32 = 3228,
+ VQMOVNsuv4i16 = 3229,
+ VQMOVNsuv8i8 = 3230,
+ VQMOVNsv2i32 = 3231,
+ VQMOVNsv4i16 = 3232,
+ VQMOVNsv8i8 = 3233,
+ VQMOVNuv2i32 = 3234,
+ VQMOVNuv4i16 = 3235,
+ VQMOVNuv8i8 = 3236,
+ VQNEGv16i8 = 3237,
+ VQNEGv2i32 = 3238,
+ VQNEGv4i16 = 3239,
+ VQNEGv4i32 = 3240,
+ VQNEGv8i16 = 3241,
+ VQNEGv8i8 = 3242,
+ VQRDMLAHslv2i32 = 3243,
+ VQRDMLAHslv4i16 = 3244,
+ VQRDMLAHslv4i32 = 3245,
+ VQRDMLAHslv8i16 = 3246,
+ VQRDMLAHv2i32 = 3247,
+ VQRDMLAHv4i16 = 3248,
+ VQRDMLAHv4i32 = 3249,
+ VQRDMLAHv8i16 = 3250,
+ VQRDMLSHslv2i32 = 3251,
+ VQRDMLSHslv4i16 = 3252,
+ VQRDMLSHslv4i32 = 3253,
+ VQRDMLSHslv8i16 = 3254,
+ VQRDMLSHv2i32 = 3255,
+ VQRDMLSHv4i16 = 3256,
+ VQRDMLSHv4i32 = 3257,
+ VQRDMLSHv8i16 = 3258,
+ VQRDMULHslv2i32 = 3259,
+ VQRDMULHslv4i16 = 3260,
+ VQRDMULHslv4i32 = 3261,
+ VQRDMULHslv8i16 = 3262,
+ VQRDMULHv2i32 = 3263,
+ VQRDMULHv4i16 = 3264,
+ VQRDMULHv4i32 = 3265,
+ VQRDMULHv8i16 = 3266,
+ VQRSHLsv16i8 = 3267,
+ VQRSHLsv1i64 = 3268,
+ VQRSHLsv2i32 = 3269,
+ VQRSHLsv2i64 = 3270,
+ VQRSHLsv4i16 = 3271,
+ VQRSHLsv4i32 = 3272,
+ VQRSHLsv8i16 = 3273,
+ VQRSHLsv8i8 = 3274,
+ VQRSHLuv16i8 = 3275,
+ VQRSHLuv1i64 = 3276,
+ VQRSHLuv2i32 = 3277,
+ VQRSHLuv2i64 = 3278,
+ VQRSHLuv4i16 = 3279,
+ VQRSHLuv4i32 = 3280,
+ VQRSHLuv8i16 = 3281,
+ VQRSHLuv8i8 = 3282,
+ VQRSHRNsv2i32 = 3283,
+ VQRSHRNsv4i16 = 3284,
+ VQRSHRNsv8i8 = 3285,
+ VQRSHRNuv2i32 = 3286,
+ VQRSHRNuv4i16 = 3287,
+ VQRSHRNuv8i8 = 3288,
+ VQRSHRUNv2i32 = 3289,
+ VQRSHRUNv4i16 = 3290,
+ VQRSHRUNv8i8 = 3291,
+ VQSHLsiv16i8 = 3292,
+ VQSHLsiv1i64 = 3293,
+ VQSHLsiv2i32 = 3294,
+ VQSHLsiv2i64 = 3295,
+ VQSHLsiv4i16 = 3296,
+ VQSHLsiv4i32 = 3297,
+ VQSHLsiv8i16 = 3298,
+ VQSHLsiv8i8 = 3299,
+ VQSHLsuv16i8 = 3300,
+ VQSHLsuv1i64 = 3301,
+ VQSHLsuv2i32 = 3302,
+ VQSHLsuv2i64 = 3303,
+ VQSHLsuv4i16 = 3304,
+ VQSHLsuv4i32 = 3305,
+ VQSHLsuv8i16 = 3306,
+ VQSHLsuv8i8 = 3307,
+ VQSHLsv16i8 = 3308,
+ VQSHLsv1i64 = 3309,
+ VQSHLsv2i32 = 3310,
+ VQSHLsv2i64 = 3311,
+ VQSHLsv4i16 = 3312,
+ VQSHLsv4i32 = 3313,
+ VQSHLsv8i16 = 3314,
+ VQSHLsv8i8 = 3315,
+ VQSHLuiv16i8 = 3316,
+ VQSHLuiv1i64 = 3317,
+ VQSHLuiv2i32 = 3318,
+ VQSHLuiv2i64 = 3319,
+ VQSHLuiv4i16 = 3320,
+ VQSHLuiv4i32 = 3321,
+ VQSHLuiv8i16 = 3322,
+ VQSHLuiv8i8 = 3323,
+ VQSHLuv16i8 = 3324,
+ VQSHLuv1i64 = 3325,
+ VQSHLuv2i32 = 3326,
+ VQSHLuv2i64 = 3327,
+ VQSHLuv4i16 = 3328,
+ VQSHLuv4i32 = 3329,
+ VQSHLuv8i16 = 3330,
+ VQSHLuv8i8 = 3331,
+ VQSHRNsv2i32 = 3332,
+ VQSHRNsv4i16 = 3333,
+ VQSHRNsv8i8 = 3334,
+ VQSHRNuv2i32 = 3335,
+ VQSHRNuv4i16 = 3336,
+ VQSHRNuv8i8 = 3337,
+ VQSHRUNv2i32 = 3338,
+ VQSHRUNv4i16 = 3339,
+ VQSHRUNv8i8 = 3340,
+ VQSUBsv16i8 = 3341,
+ VQSUBsv1i64 = 3342,
+ VQSUBsv2i32 = 3343,
+ VQSUBsv2i64 = 3344,
+ VQSUBsv4i16 = 3345,
+ VQSUBsv4i32 = 3346,
+ VQSUBsv8i16 = 3347,
+ VQSUBsv8i8 = 3348,
+ VQSUBuv16i8 = 3349,
+ VQSUBuv1i64 = 3350,
+ VQSUBuv2i32 = 3351,
+ VQSUBuv2i64 = 3352,
+ VQSUBuv4i16 = 3353,
+ VQSUBuv4i32 = 3354,
+ VQSUBuv8i16 = 3355,
+ VQSUBuv8i8 = 3356,
+ VRADDHNv2i32 = 3357,
+ VRADDHNv4i16 = 3358,
+ VRADDHNv8i8 = 3359,
+ VRECPEd = 3360,
+ VRECPEfd = 3361,
+ VRECPEfq = 3362,
+ VRECPEhd = 3363,
+ VRECPEhq = 3364,
+ VRECPEq = 3365,
+ VRECPSfd = 3366,
+ VRECPSfq = 3367,
+ VRECPShd = 3368,
+ VRECPShq = 3369,
+ VREV16d8 = 3370,
+ VREV16q8 = 3371,
+ VREV32d16 = 3372,
+ VREV32d8 = 3373,
+ VREV32q16 = 3374,
+ VREV32q8 = 3375,
+ VREV64d16 = 3376,
+ VREV64d32 = 3377,
+ VREV64d8 = 3378,
+ VREV64q16 = 3379,
+ VREV64q32 = 3380,
+ VREV64q8 = 3381,
+ VRHADDsv16i8 = 3382,
+ VRHADDsv2i32 = 3383,
+ VRHADDsv4i16 = 3384,
+ VRHADDsv4i32 = 3385,
+ VRHADDsv8i16 = 3386,
+ VRHADDsv8i8 = 3387,
+ VRHADDuv16i8 = 3388,
+ VRHADDuv2i32 = 3389,
+ VRHADDuv4i16 = 3390,
+ VRHADDuv4i32 = 3391,
+ VRHADDuv8i16 = 3392,
+ VRHADDuv8i8 = 3393,
+ VRINTAD = 3394,
+ VRINTAH = 3395,
+ VRINTANDf = 3396,
+ VRINTANDh = 3397,
+ VRINTANQf = 3398,
+ VRINTANQh = 3399,
+ VRINTAS = 3400,
+ VRINTMD = 3401,
+ VRINTMH = 3402,
+ VRINTMNDf = 3403,
+ VRINTMNDh = 3404,
+ VRINTMNQf = 3405,
+ VRINTMNQh = 3406,
+ VRINTMS = 3407,
+ VRINTND = 3408,
+ VRINTNH = 3409,
+ VRINTNNDf = 3410,
+ VRINTNNDh = 3411,
+ VRINTNNQf = 3412,
+ VRINTNNQh = 3413,
+ VRINTNS = 3414,
+ VRINTPD = 3415,
+ VRINTPH = 3416,
+ VRINTPNDf = 3417,
+ VRINTPNDh = 3418,
+ VRINTPNQf = 3419,
+ VRINTPNQh = 3420,
+ VRINTPS = 3421,
+ VRINTRD = 3422,
+ VRINTRH = 3423,
+ VRINTRS = 3424,
+ VRINTXD = 3425,
+ VRINTXH = 3426,
+ VRINTXNDf = 3427,
+ VRINTXNDh = 3428,
+ VRINTXNQf = 3429,
+ VRINTXNQh = 3430,
+ VRINTXS = 3431,
+ VRINTZD = 3432,
+ VRINTZH = 3433,
+ VRINTZNDf = 3434,
+ VRINTZNDh = 3435,
+ VRINTZNQf = 3436,
+ VRINTZNQh = 3437,
+ VRINTZS = 3438,
+ VRSHLsv16i8 = 3439,
+ VRSHLsv1i64 = 3440,
+ VRSHLsv2i32 = 3441,
+ VRSHLsv2i64 = 3442,
+ VRSHLsv4i16 = 3443,
+ VRSHLsv4i32 = 3444,
+ VRSHLsv8i16 = 3445,
+ VRSHLsv8i8 = 3446,
+ VRSHLuv16i8 = 3447,
+ VRSHLuv1i64 = 3448,
+ VRSHLuv2i32 = 3449,
+ VRSHLuv2i64 = 3450,
+ VRSHLuv4i16 = 3451,
+ VRSHLuv4i32 = 3452,
+ VRSHLuv8i16 = 3453,
+ VRSHLuv8i8 = 3454,
+ VRSHRNv2i32 = 3455,
+ VRSHRNv4i16 = 3456,
+ VRSHRNv8i8 = 3457,
+ VRSHRsv16i8 = 3458,
+ VRSHRsv1i64 = 3459,
+ VRSHRsv2i32 = 3460,
+ VRSHRsv2i64 = 3461,
+ VRSHRsv4i16 = 3462,
+ VRSHRsv4i32 = 3463,
+ VRSHRsv8i16 = 3464,
+ VRSHRsv8i8 = 3465,
+ VRSHRuv16i8 = 3466,
+ VRSHRuv1i64 = 3467,
+ VRSHRuv2i32 = 3468,
+ VRSHRuv2i64 = 3469,
+ VRSHRuv4i16 = 3470,
+ VRSHRuv4i32 = 3471,
+ VRSHRuv8i16 = 3472,
+ VRSHRuv8i8 = 3473,
+ VRSQRTEd = 3474,
+ VRSQRTEfd = 3475,
+ VRSQRTEfq = 3476,
+ VRSQRTEhd = 3477,
+ VRSQRTEhq = 3478,
+ VRSQRTEq = 3479,
+ VRSQRTSfd = 3480,
+ VRSQRTSfq = 3481,
+ VRSQRTShd = 3482,
+ VRSQRTShq = 3483,
+ VRSRAsv16i8 = 3484,
+ VRSRAsv1i64 = 3485,
+ VRSRAsv2i32 = 3486,
+ VRSRAsv2i64 = 3487,
+ VRSRAsv4i16 = 3488,
+ VRSRAsv4i32 = 3489,
+ VRSRAsv8i16 = 3490,
+ VRSRAsv8i8 = 3491,
+ VRSRAuv16i8 = 3492,
+ VRSRAuv1i64 = 3493,
+ VRSRAuv2i32 = 3494,
+ VRSRAuv2i64 = 3495,
+ VRSRAuv4i16 = 3496,
+ VRSRAuv4i32 = 3497,
+ VRSRAuv8i16 = 3498,
+ VRSRAuv8i8 = 3499,
+ VRSUBHNv2i32 = 3500,
+ VRSUBHNv4i16 = 3501,
+ VRSUBHNv8i8 = 3502,
+ VSCCLRMD = 3503,
+ VSCCLRMS = 3504,
+ VSDOTD = 3505,
+ VSDOTDI = 3506,
+ VSDOTQ = 3507,
+ VSDOTQI = 3508,
+ VSELEQD = 3509,
+ VSELEQH = 3510,
+ VSELEQS = 3511,
+ VSELGED = 3512,
+ VSELGEH = 3513,
+ VSELGES = 3514,
+ VSELGTD = 3515,
+ VSELGTH = 3516,
+ VSELGTS = 3517,
+ VSELVSD = 3518,
+ VSELVSH = 3519,
+ VSELVSS = 3520,
+ VSETLNi16 = 3521,
+ VSETLNi32 = 3522,
+ VSETLNi8 = 3523,
+ VSHLLi16 = 3524,
+ VSHLLi32 = 3525,
+ VSHLLi8 = 3526,
+ VSHLLsv2i64 = 3527,
+ VSHLLsv4i32 = 3528,
+ VSHLLsv8i16 = 3529,
+ VSHLLuv2i64 = 3530,
+ VSHLLuv4i32 = 3531,
+ VSHLLuv8i16 = 3532,
+ VSHLiv16i8 = 3533,
+ VSHLiv1i64 = 3534,
+ VSHLiv2i32 = 3535,
+ VSHLiv2i64 = 3536,
+ VSHLiv4i16 = 3537,
+ VSHLiv4i32 = 3538,
+ VSHLiv8i16 = 3539,
+ VSHLiv8i8 = 3540,
+ VSHLsv16i8 = 3541,
+ VSHLsv1i64 = 3542,
+ VSHLsv2i32 = 3543,
+ VSHLsv2i64 = 3544,
+ VSHLsv4i16 = 3545,
+ VSHLsv4i32 = 3546,
+ VSHLsv8i16 = 3547,
+ VSHLsv8i8 = 3548,
+ VSHLuv16i8 = 3549,
+ VSHLuv1i64 = 3550,
+ VSHLuv2i32 = 3551,
+ VSHLuv2i64 = 3552,
+ VSHLuv4i16 = 3553,
+ VSHLuv4i32 = 3554,
+ VSHLuv8i16 = 3555,
+ VSHLuv8i8 = 3556,
+ VSHRNv2i32 = 3557,
+ VSHRNv4i16 = 3558,
+ VSHRNv8i8 = 3559,
+ VSHRsv16i8 = 3560,
+ VSHRsv1i64 = 3561,
+ VSHRsv2i32 = 3562,
+ VSHRsv2i64 = 3563,
+ VSHRsv4i16 = 3564,
+ VSHRsv4i32 = 3565,
+ VSHRsv8i16 = 3566,
+ VSHRsv8i8 = 3567,
+ VSHRuv16i8 = 3568,
+ VSHRuv1i64 = 3569,
+ VSHRuv2i32 = 3570,
+ VSHRuv2i64 = 3571,
+ VSHRuv4i16 = 3572,
+ VSHRuv4i32 = 3573,
+ VSHRuv8i16 = 3574,
+ VSHRuv8i8 = 3575,
+ VSHTOD = 3576,
+ VSHTOH = 3577,
+ VSHTOS = 3578,
+ VSITOD = 3579,
+ VSITOH = 3580,
+ VSITOS = 3581,
+ VSLIv16i8 = 3582,
+ VSLIv1i64 = 3583,
+ VSLIv2i32 = 3584,
+ VSLIv2i64 = 3585,
+ VSLIv4i16 = 3586,
+ VSLIv4i32 = 3587,
+ VSLIv8i16 = 3588,
+ VSLIv8i8 = 3589,
+ VSLTOD = 3590,
+ VSLTOH = 3591,
+ VSLTOS = 3592,
+ VSMMLA = 3593,
+ VSQRTD = 3594,
+ VSQRTH = 3595,
+ VSQRTS = 3596,
+ VSRAsv16i8 = 3597,
+ VSRAsv1i64 = 3598,
+ VSRAsv2i32 = 3599,
+ VSRAsv2i64 = 3600,
+ VSRAsv4i16 = 3601,
+ VSRAsv4i32 = 3602,
+ VSRAsv8i16 = 3603,
+ VSRAsv8i8 = 3604,
+ VSRAuv16i8 = 3605,
+ VSRAuv1i64 = 3606,
+ VSRAuv2i32 = 3607,
+ VSRAuv2i64 = 3608,
+ VSRAuv4i16 = 3609,
+ VSRAuv4i32 = 3610,
+ VSRAuv8i16 = 3611,
+ VSRAuv8i8 = 3612,
+ VSRIv16i8 = 3613,
+ VSRIv1i64 = 3614,
+ VSRIv2i32 = 3615,
+ VSRIv2i64 = 3616,
+ VSRIv4i16 = 3617,
+ VSRIv4i32 = 3618,
+ VSRIv8i16 = 3619,
+ VSRIv8i8 = 3620,
+ VST1LNd16 = 3621,
+ VST1LNd16_UPD = 3622,
+ VST1LNd32 = 3623,
+ VST1LNd32_UPD = 3624,
+ VST1LNd8 = 3625,
+ VST1LNd8_UPD = 3626,
+ VST1LNq16Pseudo = 3627,
+ VST1LNq16Pseudo_UPD = 3628,
+ VST1LNq32Pseudo = 3629,
+ VST1LNq32Pseudo_UPD = 3630,
+ VST1LNq8Pseudo = 3631,
+ VST1LNq8Pseudo_UPD = 3632,
+ VST1d16 = 3633,
+ VST1d16Q = 3634,
+ VST1d16QPseudo = 3635,
+ VST1d16QPseudoWB_fixed = 3636,
+ VST1d16QPseudoWB_register = 3637,
+ VST1d16Qwb_fixed = 3638,
+ VST1d16Qwb_register = 3639,
+ VST1d16T = 3640,
+ VST1d16TPseudo = 3641,
+ VST1d16TPseudoWB_fixed = 3642,
+ VST1d16TPseudoWB_register = 3643,
+ VST1d16Twb_fixed = 3644,
+ VST1d16Twb_register = 3645,
+ VST1d16wb_fixed = 3646,
+ VST1d16wb_register = 3647,
+ VST1d32 = 3648,
+ VST1d32Q = 3649,
+ VST1d32QPseudo = 3650,
+ VST1d32QPseudoWB_fixed = 3651,
+ VST1d32QPseudoWB_register = 3652,
+ VST1d32Qwb_fixed = 3653,
+ VST1d32Qwb_register = 3654,
+ VST1d32T = 3655,
+ VST1d32TPseudo = 3656,
+ VST1d32TPseudoWB_fixed = 3657,
+ VST1d32TPseudoWB_register = 3658,
+ VST1d32Twb_fixed = 3659,
+ VST1d32Twb_register = 3660,
+ VST1d32wb_fixed = 3661,
+ VST1d32wb_register = 3662,
+ VST1d64 = 3663,
+ VST1d64Q = 3664,
+ VST1d64QPseudo = 3665,
+ VST1d64QPseudoWB_fixed = 3666,
+ VST1d64QPseudoWB_register = 3667,
+ VST1d64Qwb_fixed = 3668,
+ VST1d64Qwb_register = 3669,
+ VST1d64T = 3670,
+ VST1d64TPseudo = 3671,
+ VST1d64TPseudoWB_fixed = 3672,
+ VST1d64TPseudoWB_register = 3673,
+ VST1d64Twb_fixed = 3674,
+ VST1d64Twb_register = 3675,
+ VST1d64wb_fixed = 3676,
+ VST1d64wb_register = 3677,
+ VST1d8 = 3678,
+ VST1d8Q = 3679,
+ VST1d8QPseudo = 3680,
+ VST1d8QPseudoWB_fixed = 3681,
+ VST1d8QPseudoWB_register = 3682,
+ VST1d8Qwb_fixed = 3683,
+ VST1d8Qwb_register = 3684,
+ VST1d8T = 3685,
+ VST1d8TPseudo = 3686,
+ VST1d8TPseudoWB_fixed = 3687,
+ VST1d8TPseudoWB_register = 3688,
+ VST1d8Twb_fixed = 3689,
+ VST1d8Twb_register = 3690,
+ VST1d8wb_fixed = 3691,
+ VST1d8wb_register = 3692,
+ VST1q16 = 3693,
+ VST1q16HighQPseudo = 3694,
+ VST1q16HighQPseudo_UPD = 3695,
+ VST1q16HighTPseudo = 3696,
+ VST1q16HighTPseudo_UPD = 3697,
+ VST1q16LowQPseudo_UPD = 3698,
+ VST1q16LowTPseudo_UPD = 3699,
+ VST1q16wb_fixed = 3700,
+ VST1q16wb_register = 3701,
+ VST1q32 = 3702,
+ VST1q32HighQPseudo = 3703,
+ VST1q32HighQPseudo_UPD = 3704,
+ VST1q32HighTPseudo = 3705,
+ VST1q32HighTPseudo_UPD = 3706,
+ VST1q32LowQPseudo_UPD = 3707,
+ VST1q32LowTPseudo_UPD = 3708,
+ VST1q32wb_fixed = 3709,
+ VST1q32wb_register = 3710,
+ VST1q64 = 3711,
+ VST1q64HighQPseudo = 3712,
+ VST1q64HighQPseudo_UPD = 3713,
+ VST1q64HighTPseudo = 3714,
+ VST1q64HighTPseudo_UPD = 3715,
+ VST1q64LowQPseudo_UPD = 3716,
+ VST1q64LowTPseudo_UPD = 3717,
+ VST1q64wb_fixed = 3718,
+ VST1q64wb_register = 3719,
+ VST1q8 = 3720,
+ VST1q8HighQPseudo = 3721,
+ VST1q8HighQPseudo_UPD = 3722,
+ VST1q8HighTPseudo = 3723,
+ VST1q8HighTPseudo_UPD = 3724,
+ VST1q8LowQPseudo_UPD = 3725,
+ VST1q8LowTPseudo_UPD = 3726,
+ VST1q8wb_fixed = 3727,
+ VST1q8wb_register = 3728,
+ VST2LNd16 = 3729,
+ VST2LNd16Pseudo = 3730,
+ VST2LNd16Pseudo_UPD = 3731,
+ VST2LNd16_UPD = 3732,
+ VST2LNd32 = 3733,
+ VST2LNd32Pseudo = 3734,
+ VST2LNd32Pseudo_UPD = 3735,
+ VST2LNd32_UPD = 3736,
+ VST2LNd8 = 3737,
+ VST2LNd8Pseudo = 3738,
+ VST2LNd8Pseudo_UPD = 3739,
+ VST2LNd8_UPD = 3740,
+ VST2LNq16 = 3741,
+ VST2LNq16Pseudo = 3742,
+ VST2LNq16Pseudo_UPD = 3743,
+ VST2LNq16_UPD = 3744,
+ VST2LNq32 = 3745,
+ VST2LNq32Pseudo = 3746,
+ VST2LNq32Pseudo_UPD = 3747,
+ VST2LNq32_UPD = 3748,
+ VST2b16 = 3749,
+ VST2b16wb_fixed = 3750,
+ VST2b16wb_register = 3751,
+ VST2b32 = 3752,
+ VST2b32wb_fixed = 3753,
+ VST2b32wb_register = 3754,
+ VST2b8 = 3755,
+ VST2b8wb_fixed = 3756,
+ VST2b8wb_register = 3757,
+ VST2d16 = 3758,
+ VST2d16wb_fixed = 3759,
+ VST2d16wb_register = 3760,
+ VST2d32 = 3761,
+ VST2d32wb_fixed = 3762,
+ VST2d32wb_register = 3763,
+ VST2d8 = 3764,
+ VST2d8wb_fixed = 3765,
+ VST2d8wb_register = 3766,
+ VST2q16 = 3767,
+ VST2q16Pseudo = 3768,
+ VST2q16PseudoWB_fixed = 3769,
+ VST2q16PseudoWB_register = 3770,
+ VST2q16wb_fixed = 3771,
+ VST2q16wb_register = 3772,
+ VST2q32 = 3773,
+ VST2q32Pseudo = 3774,
+ VST2q32PseudoWB_fixed = 3775,
+ VST2q32PseudoWB_register = 3776,
+ VST2q32wb_fixed = 3777,
+ VST2q32wb_register = 3778,
+ VST2q8 = 3779,
+ VST2q8Pseudo = 3780,
+ VST2q8PseudoWB_fixed = 3781,
+ VST2q8PseudoWB_register = 3782,
+ VST2q8wb_fixed = 3783,
+ VST2q8wb_register = 3784,
+ VST3LNd16 = 3785,
+ VST3LNd16Pseudo = 3786,
+ VST3LNd16Pseudo_UPD = 3787,
+ VST3LNd16_UPD = 3788,
+ VST3LNd32 = 3789,
+ VST3LNd32Pseudo = 3790,
+ VST3LNd32Pseudo_UPD = 3791,
+ VST3LNd32_UPD = 3792,
+ VST3LNd8 = 3793,
+ VST3LNd8Pseudo = 3794,
+ VST3LNd8Pseudo_UPD = 3795,
+ VST3LNd8_UPD = 3796,
+ VST3LNq16 = 3797,
+ VST3LNq16Pseudo = 3798,
+ VST3LNq16Pseudo_UPD = 3799,
+ VST3LNq16_UPD = 3800,
+ VST3LNq32 = 3801,
+ VST3LNq32Pseudo = 3802,
+ VST3LNq32Pseudo_UPD = 3803,
+ VST3LNq32_UPD = 3804,
+ VST3d16 = 3805,
+ VST3d16Pseudo = 3806,
+ VST3d16Pseudo_UPD = 3807,
+ VST3d16_UPD = 3808,
+ VST3d32 = 3809,
+ VST3d32Pseudo = 3810,
+ VST3d32Pseudo_UPD = 3811,
+ VST3d32_UPD = 3812,
+ VST3d8 = 3813,
+ VST3d8Pseudo = 3814,
+ VST3d8Pseudo_UPD = 3815,
+ VST3d8_UPD = 3816,
+ VST3q16 = 3817,
+ VST3q16Pseudo_UPD = 3818,
+ VST3q16_UPD = 3819,
+ VST3q16oddPseudo = 3820,
+ VST3q16oddPseudo_UPD = 3821,
+ VST3q32 = 3822,
+ VST3q32Pseudo_UPD = 3823,
+ VST3q32_UPD = 3824,
+ VST3q32oddPseudo = 3825,
+ VST3q32oddPseudo_UPD = 3826,
+ VST3q8 = 3827,
+ VST3q8Pseudo_UPD = 3828,
+ VST3q8_UPD = 3829,
+ VST3q8oddPseudo = 3830,
+ VST3q8oddPseudo_UPD = 3831,
+ VST4LNd16 = 3832,
+ VST4LNd16Pseudo = 3833,
+ VST4LNd16Pseudo_UPD = 3834,
+ VST4LNd16_UPD = 3835,
+ VST4LNd32 = 3836,
+ VST4LNd32Pseudo = 3837,
+ VST4LNd32Pseudo_UPD = 3838,
+ VST4LNd32_UPD = 3839,
+ VST4LNd8 = 3840,
+ VST4LNd8Pseudo = 3841,
+ VST4LNd8Pseudo_UPD = 3842,
+ VST4LNd8_UPD = 3843,
+ VST4LNq16 = 3844,
+ VST4LNq16Pseudo = 3845,
+ VST4LNq16Pseudo_UPD = 3846,
+ VST4LNq16_UPD = 3847,
+ VST4LNq32 = 3848,
+ VST4LNq32Pseudo = 3849,
+ VST4LNq32Pseudo_UPD = 3850,
+ VST4LNq32_UPD = 3851,
+ VST4d16 = 3852,
+ VST4d16Pseudo = 3853,
+ VST4d16Pseudo_UPD = 3854,
+ VST4d16_UPD = 3855,
+ VST4d32 = 3856,
+ VST4d32Pseudo = 3857,
+ VST4d32Pseudo_UPD = 3858,
+ VST4d32_UPD = 3859,
+ VST4d8 = 3860,
+ VST4d8Pseudo = 3861,
+ VST4d8Pseudo_UPD = 3862,
+ VST4d8_UPD = 3863,
+ VST4q16 = 3864,
+ VST4q16Pseudo_UPD = 3865,
+ VST4q16_UPD = 3866,
+ VST4q16oddPseudo = 3867,
+ VST4q16oddPseudo_UPD = 3868,
+ VST4q32 = 3869,
+ VST4q32Pseudo_UPD = 3870,
+ VST4q32_UPD = 3871,
+ VST4q32oddPseudo = 3872,
+ VST4q32oddPseudo_UPD = 3873,
+ VST4q8 = 3874,
+ VST4q8Pseudo_UPD = 3875,
+ VST4q8_UPD = 3876,
+ VST4q8oddPseudo = 3877,
+ VST4q8oddPseudo_UPD = 3878,
+ VSTMDDB_UPD = 3879,
+ VSTMDIA = 3880,
+ VSTMDIA_UPD = 3881,
+ VSTMQIA = 3882,
+ VSTMSDB_UPD = 3883,
+ VSTMSIA = 3884,
+ VSTMSIA_UPD = 3885,
+ VSTRD = 3886,
+ VSTRH = 3887,
+ VSTRS = 3888,
+ VSTR_FPCXTNS_off = 3889,
+ VSTR_FPCXTNS_post = 3890,
+ VSTR_FPCXTNS_pre = 3891,
+ VSTR_FPCXTS_off = 3892,
+ VSTR_FPCXTS_post = 3893,
+ VSTR_FPCXTS_pre = 3894,
+ VSTR_FPSCR_NZCVQC_off = 3895,
+ VSTR_FPSCR_NZCVQC_post = 3896,
+ VSTR_FPSCR_NZCVQC_pre = 3897,
+ VSTR_FPSCR_off = 3898,
+ VSTR_FPSCR_post = 3899,
+ VSTR_FPSCR_pre = 3900,
+ VSTR_P0_off = 3901,
+ VSTR_P0_post = 3902,
+ VSTR_P0_pre = 3903,
+ VSTR_VPR_off = 3904,
+ VSTR_VPR_post = 3905,
+ VSTR_VPR_pre = 3906,
+ VSUBD = 3907,
+ VSUBH = 3908,
+ VSUBHNv2i32 = 3909,
+ VSUBHNv4i16 = 3910,
+ VSUBHNv8i8 = 3911,
+ VSUBLsv2i64 = 3912,
+ VSUBLsv4i32 = 3913,
+ VSUBLsv8i16 = 3914,
+ VSUBLuv2i64 = 3915,
+ VSUBLuv4i32 = 3916,
+ VSUBLuv8i16 = 3917,
+ VSUBS = 3918,
+ VSUBWsv2i64 = 3919,
+ VSUBWsv4i32 = 3920,
+ VSUBWsv8i16 = 3921,
+ VSUBWuv2i64 = 3922,
+ VSUBWuv4i32 = 3923,
+ VSUBWuv8i16 = 3924,
+ VSUBfd = 3925,
+ VSUBfq = 3926,
+ VSUBhd = 3927,
+ VSUBhq = 3928,
+ VSUBv16i8 = 3929,
+ VSUBv1i64 = 3930,
+ VSUBv2i32 = 3931,
+ VSUBv2i64 = 3932,
+ VSUBv4i16 = 3933,
+ VSUBv4i32 = 3934,
+ VSUBv8i16 = 3935,
+ VSUBv8i8 = 3936,
+ VSUDOTDI = 3937,
+ VSUDOTQI = 3938,
+ VSWPd = 3939,
+ VSWPq = 3940,
+ VTBL1 = 3941,
+ VTBL2 = 3942,
+ VTBL3 = 3943,
+ VTBL3Pseudo = 3944,
+ VTBL4 = 3945,
+ VTBL4Pseudo = 3946,
+ VTBX1 = 3947,
+ VTBX2 = 3948,
+ VTBX3 = 3949,
+ VTBX3Pseudo = 3950,
+ VTBX4 = 3951,
+ VTBX4Pseudo = 3952,
+ VTOSHD = 3953,
+ VTOSHH = 3954,
+ VTOSHS = 3955,
+ VTOSIRD = 3956,
+ VTOSIRH = 3957,
+ VTOSIRS = 3958,
+ VTOSIZD = 3959,
+ VTOSIZH = 3960,
+ VTOSIZS = 3961,
+ VTOSLD = 3962,
+ VTOSLH = 3963,
+ VTOSLS = 3964,
+ VTOUHD = 3965,
+ VTOUHH = 3966,
+ VTOUHS = 3967,
+ VTOUIRD = 3968,
+ VTOUIRH = 3969,
+ VTOUIRS = 3970,
+ VTOUIZD = 3971,
+ VTOUIZH = 3972,
+ VTOUIZS = 3973,
+ VTOULD = 3974,
+ VTOULH = 3975,
+ VTOULS = 3976,
+ VTRNd16 = 3977,
+ VTRNd32 = 3978,
+ VTRNd8 = 3979,
+ VTRNq16 = 3980,
+ VTRNq32 = 3981,
+ VTRNq8 = 3982,
+ VTSTv16i8 = 3983,
+ VTSTv2i32 = 3984,
+ VTSTv4i16 = 3985,
+ VTSTv4i32 = 3986,
+ VTSTv8i16 = 3987,
+ VTSTv8i8 = 3988,
+ VUDOTD = 3989,
+ VUDOTDI = 3990,
+ VUDOTQ = 3991,
+ VUDOTQI = 3992,
+ VUHTOD = 3993,
+ VUHTOH = 3994,
+ VUHTOS = 3995,
+ VUITOD = 3996,
+ VUITOH = 3997,
+ VUITOS = 3998,
+ VULTOD = 3999,
+ VULTOH = 4000,
+ VULTOS = 4001,
+ VUMMLA = 4002,
+ VUSDOTD = 4003,
+ VUSDOTDI = 4004,
+ VUSDOTQ = 4005,
+ VUSDOTQI = 4006,
+ VUSMMLA = 4007,
+ VUZPd16 = 4008,
+ VUZPd8 = 4009,
+ VUZPq16 = 4010,
+ VUZPq32 = 4011,
+ VUZPq8 = 4012,
+ VZIPd16 = 4013,
+ VZIPd8 = 4014,
+ VZIPq16 = 4015,
+ VZIPq32 = 4016,
+ VZIPq8 = 4017,
+ sysLDMDA = 4018,
+ sysLDMDA_UPD = 4019,
+ sysLDMDB = 4020,
+ sysLDMDB_UPD = 4021,
+ sysLDMIA = 4022,
+ sysLDMIA_UPD = 4023,
+ sysLDMIB = 4024,
+ sysLDMIB_UPD = 4025,
+ sysSTMDA = 4026,
+ sysSTMDA_UPD = 4027,
+ sysSTMDB = 4028,
+ sysSTMDB_UPD = 4029,
+ sysSTMIA = 4030,
+ sysSTMIA_UPD = 4031,
+ sysSTMIB = 4032,
+ sysSTMIB_UPD = 4033,
+ t2ADCri = 4034,
+ t2ADCrr = 4035,
+ t2ADCrs = 4036,
+ t2ADDri = 4037,
+ t2ADDri12 = 4038,
+ t2ADDrr = 4039,
+ t2ADDrs = 4040,
+ t2ADDspImm = 4041,
+ t2ADDspImm12 = 4042,
+ t2ADR = 4043,
+ t2ANDri = 4044,
+ t2ANDrr = 4045,
+ t2ANDrs = 4046,
+ t2ASRri = 4047,
+ t2ASRrr = 4048,
+ t2ASRs1 = 4049,
+ t2AUT = 4050,
+ t2AUTG = 4051,
+ t2B = 4052,
+ t2BFC = 4053,
+ t2BFI = 4054,
+ t2BFLi = 4055,
+ t2BFLr = 4056,
+ t2BFi = 4057,
+ t2BFic = 4058,
+ t2BFr = 4059,
+ t2BICri = 4060,
+ t2BICrr = 4061,
+ t2BICrs = 4062,
+ t2BTI = 4063,
+ t2BXAUT = 4064,
+ t2BXJ = 4065,
+ t2Bcc = 4066,
+ t2CDP = 4067,
+ t2CDP2 = 4068,
+ t2CLREX = 4069,
+ t2CLRM = 4070,
+ t2CLZ = 4071,
+ t2CMNri = 4072,
+ t2CMNzrr = 4073,
+ t2CMNzrs = 4074,
+ t2CMPri = 4075,
+ t2CMPrr = 4076,
+ t2CMPrs = 4077,
+ t2CPS1p = 4078,
+ t2CPS2p = 4079,
+ t2CPS3p = 4080,
+ t2CRC32B = 4081,
+ t2CRC32CB = 4082,
+ t2CRC32CH = 4083,
+ t2CRC32CW = 4084,
+ t2CRC32H = 4085,
+ t2CRC32W = 4086,
+ t2CSEL = 4087,
+ t2CSINC = 4088,
+ t2CSINV = 4089,
+ t2CSNEG = 4090,
+ t2DBG = 4091,
+ t2DCPS1 = 4092,
+ t2DCPS2 = 4093,
+ t2DCPS3 = 4094,
+ t2DLS = 4095,
+ t2DMB = 4096,
+ t2DSB = 4097,
+ t2EORri = 4098,
+ t2EORrr = 4099,
+ t2EORrs = 4100,
+ t2HINT = 4101,
+ t2HVC = 4102,
+ t2ISB = 4103,
+ t2IT = 4104,
+ t2Int_eh_sjlj_setjmp = 4105,
+ t2Int_eh_sjlj_setjmp_nofp = 4106,
+ t2LDA = 4107,
+ t2LDAB = 4108,
+ t2LDAEX = 4109,
+ t2LDAEXB = 4110,
+ t2LDAEXD = 4111,
+ t2LDAEXH = 4112,
+ t2LDAH = 4113,
+ t2LDC2L_OFFSET = 4114,
+ t2LDC2L_OPTION = 4115,
+ t2LDC2L_POST = 4116,
+ t2LDC2L_PRE = 4117,
+ t2LDC2_OFFSET = 4118,
+ t2LDC2_OPTION = 4119,
+ t2LDC2_POST = 4120,
+ t2LDC2_PRE = 4121,
+ t2LDCL_OFFSET = 4122,
+ t2LDCL_OPTION = 4123,
+ t2LDCL_POST = 4124,
+ t2LDCL_PRE = 4125,
+ t2LDC_OFFSET = 4126,
+ t2LDC_OPTION = 4127,
+ t2LDC_POST = 4128,
+ t2LDC_PRE = 4129,
+ t2LDMDB = 4130,
+ t2LDMDB_UPD = 4131,
+ t2LDMIA = 4132,
+ t2LDMIA_UPD = 4133,
+ t2LDRBT = 4134,
+ t2LDRB_POST = 4135,
+ t2LDRB_PRE = 4136,
+ t2LDRBi12 = 4137,
+ t2LDRBi8 = 4138,
+ t2LDRBpci = 4139,
+ t2LDRBs = 4140,
+ t2LDRD_POST = 4141,
+ t2LDRD_PRE = 4142,
+ t2LDRDi8 = 4143,
+ t2LDREX = 4144,
+ t2LDREXB = 4145,
+ t2LDREXD = 4146,
+ t2LDREXH = 4147,
+ t2LDRHT = 4148,
+ t2LDRH_POST = 4149,
+ t2LDRH_PRE = 4150,
+ t2LDRHi12 = 4151,
+ t2LDRHi8 = 4152,
+ t2LDRHpci = 4153,
+ t2LDRHs = 4154,
+ t2LDRSBT = 4155,
+ t2LDRSB_POST = 4156,
+ t2LDRSB_PRE = 4157,
+ t2LDRSBi12 = 4158,
+ t2LDRSBi8 = 4159,
+ t2LDRSBpci = 4160,
+ t2LDRSBs = 4161,
+ t2LDRSHT = 4162,
+ t2LDRSH_POST = 4163,
+ t2LDRSH_PRE = 4164,
+ t2LDRSHi12 = 4165,
+ t2LDRSHi8 = 4166,
+ t2LDRSHpci = 4167,
+ t2LDRSHs = 4168,
+ t2LDRT = 4169,
+ t2LDR_POST = 4170,
+ t2LDR_PRE = 4171,
+ t2LDRi12 = 4172,
+ t2LDRi8 = 4173,
+ t2LDRpci = 4174,
+ t2LDRs = 4175,
+ t2LE = 4176,
+ t2LEUpdate = 4177,
+ t2LSLri = 4178,
+ t2LSLrr = 4179,
+ t2LSRri = 4180,
+ t2LSRrr = 4181,
+ t2LSRs1 = 4182,
+ t2MCR = 4183,
+ t2MCR2 = 4184,
+ t2MCRR = 4185,
+ t2MCRR2 = 4186,
+ t2MLA = 4187,
+ t2MLS = 4188,
+ t2MOVTi16 = 4189,
+ t2MOVi = 4190,
+ t2MOVi16 = 4191,
+ t2MOVr = 4192,
+ t2MRC = 4193,
+ t2MRC2 = 4194,
+ t2MRRC = 4195,
+ t2MRRC2 = 4196,
+ t2MRS_AR = 4197,
+ t2MRS_M = 4198,
+ t2MRSbanked = 4199,
+ t2MRSsys_AR = 4200,
+ t2MSR_AR = 4201,
+ t2MSR_M = 4202,
+ t2MSRbanked = 4203,
+ t2MUL = 4204,
+ t2MVNi = 4205,
+ t2MVNr = 4206,
+ t2MVNs = 4207,
+ t2ORNri = 4208,
+ t2ORNrr = 4209,
+ t2ORNrs = 4210,
+ t2ORRri = 4211,
+ t2ORRrr = 4212,
+ t2ORRrs = 4213,
+ t2PAC = 4214,
+ t2PACBTI = 4215,
+ t2PACG = 4216,
+ t2PKHBT = 4217,
+ t2PKHTB = 4218,
+ t2PLDWi12 = 4219,
+ t2PLDWi8 = 4220,
+ t2PLDWs = 4221,
+ t2PLDi12 = 4222,
+ t2PLDi8 = 4223,
+ t2PLDpci = 4224,
+ t2PLDs = 4225,
+ t2PLIi12 = 4226,
+ t2PLIi8 = 4227,
+ t2PLIpci = 4228,
+ t2PLIs = 4229,
+ t2QADD = 4230,
+ t2QADD16 = 4231,
+ t2QADD8 = 4232,
+ t2QASX = 4233,
+ t2QDADD = 4234,
+ t2QDSUB = 4235,
+ t2QSAX = 4236,
+ t2QSUB = 4237,
+ t2QSUB16 = 4238,
+ t2QSUB8 = 4239,
+ t2RBIT = 4240,
+ t2REV = 4241,
+ t2REV16 = 4242,
+ t2REVSH = 4243,
+ t2RFEDB = 4244,
+ t2RFEDBW = 4245,
+ t2RFEIA = 4246,
+ t2RFEIAW = 4247,
+ t2RORri = 4248,
+ t2RORrr = 4249,
+ t2RRX = 4250,
+ t2RSBri = 4251,
+ t2RSBrr = 4252,
+ t2RSBrs = 4253,
+ t2SADD16 = 4254,
+ t2SADD8 = 4255,
+ t2SASX = 4256,
+ t2SB = 4257,
+ t2SBCri = 4258,
+ t2SBCrr = 4259,
+ t2SBCrs = 4260,
+ t2SBFX = 4261,
+ t2SDIV = 4262,
+ t2SEL = 4263,
+ t2SETPAN = 4264,
+ t2SG = 4265,
+ t2SHADD16 = 4266,
+ t2SHADD8 = 4267,
+ t2SHASX = 4268,
+ t2SHSAX = 4269,
+ t2SHSUB16 = 4270,
+ t2SHSUB8 = 4271,
+ t2SMC = 4272,
+ t2SMLABB = 4273,
+ t2SMLABT = 4274,
+ t2SMLAD = 4275,
+ t2SMLADX = 4276,
+ t2SMLAL = 4277,
+ t2SMLALBB = 4278,
+ t2SMLALBT = 4279,
+ t2SMLALD = 4280,
+ t2SMLALDX = 4281,
+ t2SMLALTB = 4282,
+ t2SMLALTT = 4283,
+ t2SMLATB = 4284,
+ t2SMLATT = 4285,
+ t2SMLAWB = 4286,
+ t2SMLAWT = 4287,
+ t2SMLSD = 4288,
+ t2SMLSDX = 4289,
+ t2SMLSLD = 4290,
+ t2SMLSLDX = 4291,
+ t2SMMLA = 4292,
+ t2SMMLAR = 4293,
+ t2SMMLS = 4294,
+ t2SMMLSR = 4295,
+ t2SMMUL = 4296,
+ t2SMMULR = 4297,
+ t2SMUAD = 4298,
+ t2SMUADX = 4299,
+ t2SMULBB = 4300,
+ t2SMULBT = 4301,
+ t2SMULL = 4302,
+ t2SMULTB = 4303,
+ t2SMULTT = 4304,
+ t2SMULWB = 4305,
+ t2SMULWT = 4306,
+ t2SMUSD = 4307,
+ t2SMUSDX = 4308,
+ t2SRSDB = 4309,
+ t2SRSDB_UPD = 4310,
+ t2SRSIA = 4311,
+ t2SRSIA_UPD = 4312,
+ t2SSAT = 4313,
+ t2SSAT16 = 4314,
+ t2SSAX = 4315,
+ t2SSUB16 = 4316,
+ t2SSUB8 = 4317,
+ t2STC2L_OFFSET = 4318,
+ t2STC2L_OPTION = 4319,
+ t2STC2L_POST = 4320,
+ t2STC2L_PRE = 4321,
+ t2STC2_OFFSET = 4322,
+ t2STC2_OPTION = 4323,
+ t2STC2_POST = 4324,
+ t2STC2_PRE = 4325,
+ t2STCL_OFFSET = 4326,
+ t2STCL_OPTION = 4327,
+ t2STCL_POST = 4328,
+ t2STCL_PRE = 4329,
+ t2STC_OFFSET = 4330,
+ t2STC_OPTION = 4331,
+ t2STC_POST = 4332,
+ t2STC_PRE = 4333,
+ t2STL = 4334,
+ t2STLB = 4335,
+ t2STLEX = 4336,
+ t2STLEXB = 4337,
+ t2STLEXD = 4338,
+ t2STLEXH = 4339,
+ t2STLH = 4340,
+ t2STMDB = 4341,
+ t2STMDB_UPD = 4342,
+ t2STMIA = 4343,
+ t2STMIA_UPD = 4344,
+ t2STRBT = 4345,
+ t2STRB_POST = 4346,
+ t2STRB_PRE = 4347,
+ t2STRBi12 = 4348,
+ t2STRBi8 = 4349,
+ t2STRBs = 4350,
+ t2STRD_POST = 4351,
+ t2STRD_PRE = 4352,
+ t2STRDi8 = 4353,
+ t2STREX = 4354,
+ t2STREXB = 4355,
+ t2STREXD = 4356,
+ t2STREXH = 4357,
+ t2STRHT = 4358,
+ t2STRH_POST = 4359,
+ t2STRH_PRE = 4360,
+ t2STRHi12 = 4361,
+ t2STRHi8 = 4362,
+ t2STRHs = 4363,
+ t2STRT = 4364,
+ t2STR_POST = 4365,
+ t2STR_PRE = 4366,
+ t2STRi12 = 4367,
+ t2STRi8 = 4368,
+ t2STRs = 4369,
+ t2SUBS_PC_LR = 4370,
+ t2SUBri = 4371,
+ t2SUBri12 = 4372,
+ t2SUBrr = 4373,
+ t2SUBrs = 4374,
+ t2SUBspImm = 4375,
+ t2SUBspImm12 = 4376,
+ t2SXTAB = 4377,
+ t2SXTAB16 = 4378,
+ t2SXTAH = 4379,
+ t2SXTB = 4380,
+ t2SXTB16 = 4381,
+ t2SXTH = 4382,
+ t2TBB = 4383,
+ t2TBH = 4384,
+ t2TEQri = 4385,
+ t2TEQrr = 4386,
+ t2TEQrs = 4387,
+ t2TSB = 4388,
+ t2TSTri = 4389,
+ t2TSTrr = 4390,
+ t2TSTrs = 4391,
+ t2TT = 4392,
+ t2TTA = 4393,
+ t2TTAT = 4394,
+ t2TTT = 4395,
+ t2UADD16 = 4396,
+ t2UADD8 = 4397,
+ t2UASX = 4398,
+ t2UBFX = 4399,
+ t2UDF = 4400,
+ t2UDIV = 4401,
+ t2UHADD16 = 4402,
+ t2UHADD8 = 4403,
+ t2UHASX = 4404,
+ t2UHSAX = 4405,
+ t2UHSUB16 = 4406,
+ t2UHSUB8 = 4407,
+ t2UMAAL = 4408,
+ t2UMLAL = 4409,
+ t2UMULL = 4410,
+ t2UQADD16 = 4411,
+ t2UQADD8 = 4412,
+ t2UQASX = 4413,
+ t2UQSAX = 4414,
+ t2UQSUB16 = 4415,
+ t2UQSUB8 = 4416,
+ t2USAD8 = 4417,
+ t2USADA8 = 4418,
+ t2USAT = 4419,
+ t2USAT16 = 4420,
+ t2USAX = 4421,
+ t2USUB16 = 4422,
+ t2USUB8 = 4423,
+ t2UXTAB = 4424,
+ t2UXTAB16 = 4425,
+ t2UXTAH = 4426,
+ t2UXTB = 4427,
+ t2UXTB16 = 4428,
+ t2UXTH = 4429,
+ t2WLS = 4430,
+ tADC = 4431,
+ tADDhirr = 4432,
+ tADDi3 = 4433,
+ tADDi8 = 4434,
+ tADDrSP = 4435,
+ tADDrSPi = 4436,
+ tADDrr = 4437,
+ tADDspi = 4438,
+ tADDspr = 4439,
+ tADR = 4440,
+ tAND = 4441,
+ tASRri = 4442,
+ tASRrr = 4443,
+ tB = 4444,
+ tBIC = 4445,
+ tBKPT = 4446,
+ tBL = 4447,
+ tBLXNSr = 4448,
+ tBLXi = 4449,
+ tBLXr = 4450,
+ tBX = 4451,
+ tBXNS = 4452,
+ tBcc = 4453,
+ tCBNZ = 4454,
+ tCBZ = 4455,
+ tCMNz = 4456,
+ tCMPhir = 4457,
+ tCMPi8 = 4458,
+ tCMPr = 4459,
+ tCPS = 4460,
+ tEOR = 4461,
+ tHINT = 4462,
+ tHLT = 4463,
+ tInt_WIN_eh_sjlj_longjmp = 4464,
+ tInt_eh_sjlj_longjmp = 4465,
+ tInt_eh_sjlj_setjmp = 4466,
+ tLDMIA = 4467,
+ tLDRBi = 4468,
+ tLDRBr = 4469,
+ tLDRHi = 4470,
+ tLDRHr = 4471,
+ tLDRSB = 4472,
+ tLDRSH = 4473,
+ tLDRi = 4474,
+ tLDRpci = 4475,
+ tLDRr = 4476,
+ tLDRspi = 4477,
+ tLSLri = 4478,
+ tLSLrr = 4479,
+ tLSRri = 4480,
+ tLSRrr = 4481,
+ tMOVSr = 4482,
+ tMOVi8 = 4483,
+ tMOVr = 4484,
+ tMUL = 4485,
+ tMVN = 4486,
+ tORR = 4487,
+ tPICADD = 4488,
+ tPOP = 4489,
+ tPUSH = 4490,
+ tREV = 4491,
+ tREV16 = 4492,
+ tREVSH = 4493,
+ tROR = 4494,
+ tRSB = 4495,
+ tSBC = 4496,
+ tSETEND = 4497,
+ tSTMIA_UPD = 4498,
+ tSTRBi = 4499,
+ tSTRBr = 4500,
+ tSTRHi = 4501,
+ tSTRHr = 4502,
+ tSTRi = 4503,
+ tSTRr = 4504,
+ tSTRspi = 4505,
+ tSUBi3 = 4506,
+ tSUBi8 = 4507,
+ tSUBrr = 4508,
+ tSUBspi = 4509,
+ tSVC = 4510,
+ tSXTB = 4511,
+ tSXTH = 4512,
+ tTRAP = 4513,
+ tTST = 4514,
+ tUDF = 4515,
+ tUXTB = 4516,
+ tUXTH = 4517,
+ t__brkdiv0 = 4518,
+ INSTRUCTION_LIST_END = 4519,
};
}
}
diff --git a/deps/LIEF/include/LIEF/asm/arm/registers.hpp b/deps/LIEF/include/LIEF/asm/arm/registers.hpp
index 3623cb1d5ef..9f60e39d993 100644
--- a/deps/LIEF/include/LIEF/asm/arm/registers.hpp
+++ b/deps/LIEF/include/LIEF/asm/arm/registers.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,292 +32,293 @@ enum class REG {
FPSCR = 8,
FPSCR_NZCV = 9,
FPSCR_NZCVQC = 10,
- FPSID = 11,
- ITSTATE = 12,
- LR = 13,
- PC = 14,
- RA_AUTH_CODE = 15,
- SP = 16,
- SPSR = 17,
- VPR = 18,
- ZR = 19,
- D0 = 20,
- D1 = 21,
- D2 = 22,
- D3 = 23,
- D4 = 24,
- D5 = 25,
- D6 = 26,
- D7 = 27,
- D8 = 28,
- D9 = 29,
- D10 = 30,
- D11 = 31,
- D12 = 32,
- D13 = 33,
- D14 = 34,
- D15 = 35,
- D16 = 36,
- D17 = 37,
- D18 = 38,
- D19 = 39,
- D20 = 40,
- D21 = 41,
- D22 = 42,
- D23 = 43,
- D24 = 44,
- D25 = 45,
- D26 = 46,
- D27 = 47,
- D28 = 48,
- D29 = 49,
- D30 = 50,
- D31 = 51,
- FPINST2 = 52,
- MVFR0 = 53,
- MVFR1 = 54,
- MVFR2 = 55,
- P0 = 56,
- Q0 = 57,
- Q1 = 58,
- Q2 = 59,
- Q3 = 60,
- Q4 = 61,
- Q5 = 62,
- Q6 = 63,
- Q7 = 64,
- Q8 = 65,
- Q9 = 66,
- Q10 = 67,
- Q11 = 68,
- Q12 = 69,
- Q13 = 70,
- Q14 = 71,
- Q15 = 72,
- R0 = 73,
- R1 = 74,
- R2 = 75,
- R3 = 76,
- R4 = 77,
- R5 = 78,
- R6 = 79,
- R7 = 80,
- R8 = 81,
- R9 = 82,
- R10 = 83,
- R11 = 84,
- R12 = 85,
- S0 = 86,
- S1 = 87,
- S2 = 88,
- S3 = 89,
- S4 = 90,
- S5 = 91,
- S6 = 92,
- S7 = 93,
- S8 = 94,
- S9 = 95,
- S10 = 96,
- S11 = 97,
- S12 = 98,
- S13 = 99,
- S14 = 100,
- S15 = 101,
- S16 = 102,
- S17 = 103,
- S18 = 104,
- S19 = 105,
- S20 = 106,
- S21 = 107,
- S22 = 108,
- S23 = 109,
- S24 = 110,
- S25 = 111,
- S26 = 112,
- S27 = 113,
- S28 = 114,
- S29 = 115,
- S30 = 116,
- S31 = 117,
- D0_D2 = 118,
- D1_D3 = 119,
- D2_D4 = 120,
- D3_D5 = 121,
- D4_D6 = 122,
- D5_D7 = 123,
- D6_D8 = 124,
- D7_D9 = 125,
- D8_D10 = 126,
- D9_D11 = 127,
- D10_D12 = 128,
- D11_D13 = 129,
- D12_D14 = 130,
- D13_D15 = 131,
- D14_D16 = 132,
- D15_D17 = 133,
- D16_D18 = 134,
- D17_D19 = 135,
- D18_D20 = 136,
- D19_D21 = 137,
- D20_D22 = 138,
- D21_D23 = 139,
- D22_D24 = 140,
- D23_D25 = 141,
- D24_D26 = 142,
- D25_D27 = 143,
- D26_D28 = 144,
- D27_D29 = 145,
- D28_D30 = 146,
- D29_D31 = 147,
- Q0_Q1 = 148,
- Q1_Q2 = 149,
- Q2_Q3 = 150,
- Q3_Q4 = 151,
- Q4_Q5 = 152,
- Q5_Q6 = 153,
- Q6_Q7 = 154,
- Q7_Q8 = 155,
- Q8_Q9 = 156,
- Q9_Q10 = 157,
- Q10_Q11 = 158,
- Q11_Q12 = 159,
- Q12_Q13 = 160,
- Q13_Q14 = 161,
- Q14_Q15 = 162,
- Q0_Q1_Q2_Q3 = 163,
- Q1_Q2_Q3_Q4 = 164,
- Q2_Q3_Q4_Q5 = 165,
- Q3_Q4_Q5_Q6 = 166,
- Q4_Q5_Q6_Q7 = 167,
- Q5_Q6_Q7_Q8 = 168,
- Q6_Q7_Q8_Q9 = 169,
- Q7_Q8_Q9_Q10 = 170,
- Q8_Q9_Q10_Q11 = 171,
- Q9_Q10_Q11_Q12 = 172,
- Q10_Q11_Q12_Q13 = 173,
- Q11_Q12_Q13_Q14 = 174,
- Q12_Q13_Q14_Q15 = 175,
- R0_R1 = 176,
- R2_R3 = 177,
- R4_R5 = 178,
- R6_R7 = 179,
- R8_R9 = 180,
- R10_R11 = 181,
- R12_SP = 182,
- D0_D1_D2 = 183,
- D1_D2_D3 = 184,
- D2_D3_D4 = 185,
- D3_D4_D5 = 186,
- D4_D5_D6 = 187,
- D5_D6_D7 = 188,
- D6_D7_D8 = 189,
- D7_D8_D9 = 190,
- D8_D9_D10 = 191,
- D9_D10_D11 = 192,
- D10_D11_D12 = 193,
- D11_D12_D13 = 194,
- D12_D13_D14 = 195,
- D13_D14_D15 = 196,
- D14_D15_D16 = 197,
- D15_D16_D17 = 198,
- D16_D17_D18 = 199,
- D17_D18_D19 = 200,
- D18_D19_D20 = 201,
- D19_D20_D21 = 202,
- D20_D21_D22 = 203,
- D21_D22_D23 = 204,
- D22_D23_D24 = 205,
- D23_D24_D25 = 206,
- D24_D25_D26 = 207,
- D25_D26_D27 = 208,
- D26_D27_D28 = 209,
- D27_D28_D29 = 210,
- D28_D29_D30 = 211,
- D29_D30_D31 = 212,
- D0_D2_D4 = 213,
- D1_D3_D5 = 214,
- D2_D4_D6 = 215,
- D3_D5_D7 = 216,
- D4_D6_D8 = 217,
- D5_D7_D9 = 218,
- D6_D8_D10 = 219,
- D7_D9_D11 = 220,
- D8_D10_D12 = 221,
- D9_D11_D13 = 222,
- D10_D12_D14 = 223,
- D11_D13_D15 = 224,
- D12_D14_D16 = 225,
- D13_D15_D17 = 226,
- D14_D16_D18 = 227,
- D15_D17_D19 = 228,
- D16_D18_D20 = 229,
- D17_D19_D21 = 230,
- D18_D20_D22 = 231,
- D19_D21_D23 = 232,
- D20_D22_D24 = 233,
- D21_D23_D25 = 234,
- D22_D24_D26 = 235,
- D23_D25_D27 = 236,
- D24_D26_D28 = 237,
- D25_D27_D29 = 238,
- D26_D28_D30 = 239,
- D27_D29_D31 = 240,
- D0_D2_D4_D6 = 241,
- D1_D3_D5_D7 = 242,
- D2_D4_D6_D8 = 243,
- D3_D5_D7_D9 = 244,
- D4_D6_D8_D10 = 245,
- D5_D7_D9_D11 = 246,
- D6_D8_D10_D12 = 247,
- D7_D9_D11_D13 = 248,
- D8_D10_D12_D14 = 249,
- D9_D11_D13_D15 = 250,
- D10_D12_D14_D16 = 251,
- D11_D13_D15_D17 = 252,
- D12_D14_D16_D18 = 253,
- D13_D15_D17_D19 = 254,
- D14_D16_D18_D20 = 255,
- D15_D17_D19_D21 = 256,
- D16_D18_D20_D22 = 257,
- D17_D19_D21_D23 = 258,
- D18_D20_D22_D24 = 259,
- D19_D21_D23_D25 = 260,
- D20_D22_D24_D26 = 261,
- D21_D23_D25_D27 = 262,
- D22_D24_D26_D28 = 263,
- D23_D25_D27_D29 = 264,
- D24_D26_D28_D30 = 265,
- D25_D27_D29_D31 = 266,
- D1_D2 = 267,
- D3_D4 = 268,
- D5_D6 = 269,
- D7_D8 = 270,
- D9_D10 = 271,
- D11_D12 = 272,
- D13_D14 = 273,
- D15_D16 = 274,
- D17_D18 = 275,
- D19_D20 = 276,
- D21_D22 = 277,
- D23_D24 = 278,
- D25_D26 = 279,
- D27_D28 = 280,
- D29_D30 = 281,
- D1_D2_D3_D4 = 282,
- D3_D4_D5_D6 = 283,
- D5_D6_D7_D8 = 284,
- D7_D8_D9_D10 = 285,
- D9_D10_D11_D12 = 286,
- D11_D12_D13_D14 = 287,
- D13_D14_D15_D16 = 288,
- D15_D16_D17_D18 = 289,
- D17_D18_D19_D20 = 290,
- D19_D20_D21_D22 = 291,
- D21_D22_D23_D24 = 292,
- D23_D24_D25_D26 = 293,
- D25_D26_D27_D28 = 294,
- D27_D28_D29_D30 = 295,
- NUM_TARGET_REGS = 296,
+ FPSCR_RM = 11,
+ FPSID = 12,
+ ITSTATE = 13,
+ LR = 14,
+ PC = 15,
+ RA_AUTH_CODE = 16,
+ SP = 17,
+ SPSR = 18,
+ VPR = 19,
+ ZR = 20,
+ D0 = 21,
+ D1 = 22,
+ D2 = 23,
+ D3 = 24,
+ D4 = 25,
+ D5 = 26,
+ D6 = 27,
+ D7 = 28,
+ D8 = 29,
+ D9 = 30,
+ D10 = 31,
+ D11 = 32,
+ D12 = 33,
+ D13 = 34,
+ D14 = 35,
+ D15 = 36,
+ D16 = 37,
+ D17 = 38,
+ D18 = 39,
+ D19 = 40,
+ D20 = 41,
+ D21 = 42,
+ D22 = 43,
+ D23 = 44,
+ D24 = 45,
+ D25 = 46,
+ D26 = 47,
+ D27 = 48,
+ D28 = 49,
+ D29 = 50,
+ D30 = 51,
+ D31 = 52,
+ FPINST2 = 53,
+ MVFR0 = 54,
+ MVFR1 = 55,
+ MVFR2 = 56,
+ P0 = 57,
+ Q0 = 58,
+ Q1 = 59,
+ Q2 = 60,
+ Q3 = 61,
+ Q4 = 62,
+ Q5 = 63,
+ Q6 = 64,
+ Q7 = 65,
+ Q8 = 66,
+ Q9 = 67,
+ Q10 = 68,
+ Q11 = 69,
+ Q12 = 70,
+ Q13 = 71,
+ Q14 = 72,
+ Q15 = 73,
+ R0 = 74,
+ R1 = 75,
+ R2 = 76,
+ R3 = 77,
+ R4 = 78,
+ R5 = 79,
+ R6 = 80,
+ R7 = 81,
+ R8 = 82,
+ R9 = 83,
+ R10 = 84,
+ R11 = 85,
+ R12 = 86,
+ S0 = 87,
+ S1 = 88,
+ S2 = 89,
+ S3 = 90,
+ S4 = 91,
+ S5 = 92,
+ S6 = 93,
+ S7 = 94,
+ S8 = 95,
+ S9 = 96,
+ S10 = 97,
+ S11 = 98,
+ S12 = 99,
+ S13 = 100,
+ S14 = 101,
+ S15 = 102,
+ S16 = 103,
+ S17 = 104,
+ S18 = 105,
+ S19 = 106,
+ S20 = 107,
+ S21 = 108,
+ S22 = 109,
+ S23 = 110,
+ S24 = 111,
+ S25 = 112,
+ S26 = 113,
+ S27 = 114,
+ S28 = 115,
+ S29 = 116,
+ S30 = 117,
+ S31 = 118,
+ D0_D2 = 119,
+ D1_D3 = 120,
+ D2_D4 = 121,
+ D3_D5 = 122,
+ D4_D6 = 123,
+ D5_D7 = 124,
+ D6_D8 = 125,
+ D7_D9 = 126,
+ D8_D10 = 127,
+ D9_D11 = 128,
+ D10_D12 = 129,
+ D11_D13 = 130,
+ D12_D14 = 131,
+ D13_D15 = 132,
+ D14_D16 = 133,
+ D15_D17 = 134,
+ D16_D18 = 135,
+ D17_D19 = 136,
+ D18_D20 = 137,
+ D19_D21 = 138,
+ D20_D22 = 139,
+ D21_D23 = 140,
+ D22_D24 = 141,
+ D23_D25 = 142,
+ D24_D26 = 143,
+ D25_D27 = 144,
+ D26_D28 = 145,
+ D27_D29 = 146,
+ D28_D30 = 147,
+ D29_D31 = 148,
+ Q0_Q1 = 149,
+ Q1_Q2 = 150,
+ Q2_Q3 = 151,
+ Q3_Q4 = 152,
+ Q4_Q5 = 153,
+ Q5_Q6 = 154,
+ Q6_Q7 = 155,
+ Q7_Q8 = 156,
+ Q8_Q9 = 157,
+ Q9_Q10 = 158,
+ Q10_Q11 = 159,
+ Q11_Q12 = 160,
+ Q12_Q13 = 161,
+ Q13_Q14 = 162,
+ Q14_Q15 = 163,
+ Q0_Q1_Q2_Q3 = 164,
+ Q1_Q2_Q3_Q4 = 165,
+ Q2_Q3_Q4_Q5 = 166,
+ Q3_Q4_Q5_Q6 = 167,
+ Q4_Q5_Q6_Q7 = 168,
+ Q5_Q6_Q7_Q8 = 169,
+ Q6_Q7_Q8_Q9 = 170,
+ Q7_Q8_Q9_Q10 = 171,
+ Q8_Q9_Q10_Q11 = 172,
+ Q9_Q10_Q11_Q12 = 173,
+ Q10_Q11_Q12_Q13 = 174,
+ Q11_Q12_Q13_Q14 = 175,
+ Q12_Q13_Q14_Q15 = 176,
+ R0_R1 = 177,
+ R2_R3 = 178,
+ R4_R5 = 179,
+ R6_R7 = 180,
+ R8_R9 = 181,
+ R10_R11 = 182,
+ R12_SP = 183,
+ D0_D1_D2 = 184,
+ D1_D2_D3 = 185,
+ D2_D3_D4 = 186,
+ D3_D4_D5 = 187,
+ D4_D5_D6 = 188,
+ D5_D6_D7 = 189,
+ D6_D7_D8 = 190,
+ D7_D8_D9 = 191,
+ D8_D9_D10 = 192,
+ D9_D10_D11 = 193,
+ D10_D11_D12 = 194,
+ D11_D12_D13 = 195,
+ D12_D13_D14 = 196,
+ D13_D14_D15 = 197,
+ D14_D15_D16 = 198,
+ D15_D16_D17 = 199,
+ D16_D17_D18 = 200,
+ D17_D18_D19 = 201,
+ D18_D19_D20 = 202,
+ D19_D20_D21 = 203,
+ D20_D21_D22 = 204,
+ D21_D22_D23 = 205,
+ D22_D23_D24 = 206,
+ D23_D24_D25 = 207,
+ D24_D25_D26 = 208,
+ D25_D26_D27 = 209,
+ D26_D27_D28 = 210,
+ D27_D28_D29 = 211,
+ D28_D29_D30 = 212,
+ D29_D30_D31 = 213,
+ D0_D2_D4 = 214,
+ D1_D3_D5 = 215,
+ D2_D4_D6 = 216,
+ D3_D5_D7 = 217,
+ D4_D6_D8 = 218,
+ D5_D7_D9 = 219,
+ D6_D8_D10 = 220,
+ D7_D9_D11 = 221,
+ D8_D10_D12 = 222,
+ D9_D11_D13 = 223,
+ D10_D12_D14 = 224,
+ D11_D13_D15 = 225,
+ D12_D14_D16 = 226,
+ D13_D15_D17 = 227,
+ D14_D16_D18 = 228,
+ D15_D17_D19 = 229,
+ D16_D18_D20 = 230,
+ D17_D19_D21 = 231,
+ D18_D20_D22 = 232,
+ D19_D21_D23 = 233,
+ D20_D22_D24 = 234,
+ D21_D23_D25 = 235,
+ D22_D24_D26 = 236,
+ D23_D25_D27 = 237,
+ D24_D26_D28 = 238,
+ D25_D27_D29 = 239,
+ D26_D28_D30 = 240,
+ D27_D29_D31 = 241,
+ D0_D2_D4_D6 = 242,
+ D1_D3_D5_D7 = 243,
+ D2_D4_D6_D8 = 244,
+ D3_D5_D7_D9 = 245,
+ D4_D6_D8_D10 = 246,
+ D5_D7_D9_D11 = 247,
+ D6_D8_D10_D12 = 248,
+ D7_D9_D11_D13 = 249,
+ D8_D10_D12_D14 = 250,
+ D9_D11_D13_D15 = 251,
+ D10_D12_D14_D16 = 252,
+ D11_D13_D15_D17 = 253,
+ D12_D14_D16_D18 = 254,
+ D13_D15_D17_D19 = 255,
+ D14_D16_D18_D20 = 256,
+ D15_D17_D19_D21 = 257,
+ D16_D18_D20_D22 = 258,
+ D17_D19_D21_D23 = 259,
+ D18_D20_D22_D24 = 260,
+ D19_D21_D23_D25 = 261,
+ D20_D22_D24_D26 = 262,
+ D21_D23_D25_D27 = 263,
+ D22_D24_D26_D28 = 264,
+ D23_D25_D27_D29 = 265,
+ D24_D26_D28_D30 = 266,
+ D25_D27_D29_D31 = 267,
+ D1_D2 = 268,
+ D3_D4 = 269,
+ D5_D6 = 270,
+ D7_D8 = 271,
+ D9_D10 = 272,
+ D11_D12 = 273,
+ D13_D14 = 274,
+ D15_D16 = 275,
+ D17_D18 = 276,
+ D19_D20 = 277,
+ D21_D22 = 278,
+ D23_D24 = 279,
+ D25_D26 = 280,
+ D27_D28 = 281,
+ D29_D30 = 282,
+ D1_D2_D3_D4 = 283,
+ D3_D4_D5_D6 = 284,
+ D5_D6_D7_D8 = 285,
+ D7_D8_D9_D10 = 286,
+ D9_D10_D11_D12 = 287,
+ D11_D12_D13_D14 = 288,
+ D13_D14_D15_D16 = 289,
+ D15_D16_D17_D18 = 290,
+ D17_D18_D19_D20 = 291,
+ D19_D20_D21_D22 = 292,
+ D21_D22_D23_D24 = 293,
+ D23_D24_D25_D26 = 294,
+ D25_D26_D27_D28 = 295,
+ D27_D28_D29_D30 = 296,
+ NUM_TARGET_REGS = 297,
};
}
diff --git a/deps/LIEF/include/LIEF/asm/ebpf.hpp b/deps/LIEF/include/LIEF/asm/ebpf.hpp
index cd0b05a84ca..a80835d37c4 100644
--- a/deps/LIEF/include/LIEF/asm/ebpf.hpp
+++ b/deps/LIEF/include/LIEF/asm/ebpf.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,4 +18,5 @@
#include <LIEF/asm/ebpf/Instruction.hpp>
#include <LIEF/asm/ebpf/opcodes.hpp>
#include <LIEF/asm/ebpf/registers.hpp>
+#include <LIEF/asm/ebpf/operands.hpp>
#endif
diff --git a/deps/LIEF/include/LIEF/asm/ebpf/Instruction.hpp b/deps/LIEF/include/LIEF/asm/ebpf/Instruction.hpp
index 80e6d24d37c..9cc45c03774 100644
--- a/deps/LIEF/include/LIEF/asm/ebpf/Instruction.hpp
+++ b/deps/LIEF/include/LIEF/asm/ebpf/Instruction.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,9 +15,11 @@
#ifndef LIEF_ASM_EBPF_INST_H
#define LIEF_ASM_EBPF_INST_H
#include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/asm/Instruction.hpp"
#include "LIEF/asm/ebpf/opcodes.hpp"
+#include "LIEF/asm/ebpf/Operand.hpp"
namespace LIEF {
namespace assembly {
@@ -30,9 +32,14 @@ class LIEF_API Instruction : public assembly::Instruction {
public:
using assembly::Instruction::Instruction;
+ using operands_it = iterator_range<Operand::Iterator>;
+
/// The instruction opcode as defined in LLVM
OPCODE opcode() const;
+ /// Iterator over the operands of the current instruction
+ operands_it operands() const LIEF_LIFETIMEBOUND;
+
/// True if `inst` is an **effective** instance of ebpf::Instruction
static bool classof(const assembly::Instruction* inst);
diff --git a/deps/LIEF/include/LIEF/asm/ebpf/Operand.hpp b/deps/LIEF/include/LIEF/asm/ebpf/Operand.hpp
new file mode 100644
index 00000000000..817f7d1bfac
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/ebpf/Operand.hpp
@@ -0,0 +1,136 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ASM_EBPF_OPERAND_H
+#define LIEF_ASM_EBPF_OPERAND_H
+#include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
+#include "LIEF/iterators.hpp"
+
+#include <memory>
+#include <string>
+#include <cassert>
+
+#include <ostream>
+
+namespace LIEF {
+namespace assembly {
+namespace ebpf {
+
+namespace details {
+class Operand;
+class OperandIt;
+}
+
+/// This class represents an operand for an eBPF instruction
+class LIEF_API Operand {
+ public:
+ /// **Forward** iterator that lazily disassembles ebpf Operand.
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::forward_iterator_tag, Operand,
+ std::ptrdiff_t, const Operand*, const Operand&> {
+ public:
+ using implementation = details::OperandIt;
+ using iterator_facade_base::operator++;
+
+ LIEF_API Iterator();
+
+ LIEF_API Iterator(std::unique_ptr<details::OperandIt> impl);
+ LIEF_API Iterator(const Iterator&);
+ LIEF_API Iterator& operator=(const Iterator&);
+
+ LIEF_API Iterator(Iterator&&) noexcept;
+ LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+ LIEF_API ~Iterator();
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator++() LIEF_LIFETIMEBOUND;
+
+ friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
+
+ friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+ return !(LHS == RHS);
+ }
+
+ LIEF_API const Operand& operator*() const LIEF_LIFETIMEBOUND;
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const Operand* operator->() const LIEF_LIFETIMEBOUND;
+
+ /// Transfer ownership of the operand at the current position to the
+ /// caller. Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<Operand> yield();
+
+ private:
+ void load() const;
+
+ std::unique_ptr<details::OperandIt> impl_;
+ mutable std::unique_ptr<Operand> cached_;
+ };
+
+ /// Pretty representation of the operand
+ std::string to_string() const;
+
+ /// This function can be used to **down cast** an Operand instance:
+ ///
+ /// ```cpp
+ /// std::unique_ptr<assembly::ebpf::Operand> op = ...;
+ /// if (const auto* imm = inst->as<assembly::ebpf::operands::Immediate>()) {
+ /// const int64_t value = imm->value();
+ /// }
+ /// ```
+ template<class T>
+ const T* as() const LIEF_LIFETIMEBOUND {
+ static_assert(std::is_base_of<Operand, T>::value,
+ "Require Operand inheritance");
+ if (T::classof(this)) {
+ return static_cast<const T*>(this);
+ }
+ return nullptr;
+ }
+
+ virtual ~Operand();
+
+ /// @private
+ static LIEF_LOCAL std::unique_ptr<Operand>
+ create(std::unique_ptr<details::Operand> impl);
+
+ /// @private
+ LIEF_LOCAL const details::Operand& impl() const LIEF_LIFETIMEBOUND {
+ assert(impl_ != nullptr);
+ return *impl_;
+ }
+
+ /// @private
+ LIEF_LOCAL details::Operand& impl() LIEF_LIFETIMEBOUND {
+ assert(impl_ != nullptr);
+ return *impl_;
+ }
+
+ friend LIEF_API std::ostream& operator<<(std::ostream& os, const Operand& op) {
+ os << op.to_string();
+ return os;
+ }
+
+ protected:
+ LIEF_LOCAL Operand(std::unique_ptr<details::Operand> impl);
+ std::unique_ptr<details::Operand> impl_;
+};
+
+}
+}
+}
+
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/ebpf/opcodes.hpp b/deps/LIEF/include/LIEF/asm/ebpf/opcodes.hpp
index 1bcc0618192..ccb23396ae1 100644
--- a/deps/LIEF/include/LIEF/asm/ebpf/opcodes.hpp
+++ b/deps/LIEF/include/LIEF/asm/ebpf/opcodes.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
#ifndef LIEF_ASM_EBPF_OPCODE_H
#define LIEF_ASM_EBPF_OPCODE_H
-/* Generated from LLVM: 21.1.0 */
+/* Generated from LLVM: 22.1.8 */
namespace LIEF {
namespace assembly {
@@ -42,499 +42,509 @@ enum class OPCODE {
DBG_LABEL = 18,
REG_SEQUENCE = 19,
COPY = 20,
- BUNDLE = 21,
- LIFETIME_START = 22,
- LIFETIME_END = 23,
- PSEUDO_PROBE = 24,
- ARITH_FENCE = 25,
- STACKMAP = 26,
- FENTRY_CALL = 27,
- PATCHPOINT = 28,
- LOAD_STACK_GUARD = 29,
- PREALLOCATED_SETUP = 30,
- PREALLOCATED_ARG = 31,
- STATEPOINT = 32,
- LOCAL_ESCAPE = 33,
- FAULTING_OP = 34,
- PATCHABLE_OP = 35,
- PATCHABLE_FUNCTION_ENTER = 36,
- PATCHABLE_RET = 37,
- PATCHABLE_FUNCTION_EXIT = 38,
- PATCHABLE_TAIL_CALL = 39,
- PATCHABLE_EVENT_CALL = 40,
- PATCHABLE_TYPED_EVENT_CALL = 41,
- ICALL_BRANCH_FUNNEL = 42,
- FAKE_USE = 43,
- MEMBARRIER = 44,
- JUMP_TABLE_DEBUG_INFO = 45,
- CONVERGENCECTRL_ENTRY = 46,
- CONVERGENCECTRL_ANCHOR = 47,
- CONVERGENCECTRL_LOOP = 48,
- CONVERGENCECTRL_GLUE = 49,
- G_ASSERT_SEXT = 50,
- G_ASSERT_ZEXT = 51,
- G_ASSERT_ALIGN = 52,
- G_ADD = 53,
- G_SUB = 54,
- G_MUL = 55,
- G_SDIV = 56,
- G_UDIV = 57,
- G_SREM = 58,
- G_UREM = 59,
- G_SDIVREM = 60,
- G_UDIVREM = 61,
- G_AND = 62,
- G_OR = 63,
- G_XOR = 64,
- G_ABDS = 65,
- G_ABDU = 66,
- G_IMPLICIT_DEF = 67,
- G_PHI = 68,
- G_FRAME_INDEX = 69,
- G_GLOBAL_VALUE = 70,
- G_PTRAUTH_GLOBAL_VALUE = 71,
- G_CONSTANT_POOL = 72,
- G_EXTRACT = 73,
- G_UNMERGE_VALUES = 74,
- G_INSERT = 75,
- G_MERGE_VALUES = 76,
- G_BUILD_VECTOR = 77,
- G_BUILD_VECTOR_TRUNC = 78,
- G_CONCAT_VECTORS = 79,
- G_PTRTOINT = 80,
- G_INTTOPTR = 81,
- G_BITCAST = 82,
- G_FREEZE = 83,
- G_CONSTANT_FOLD_BARRIER = 84,
- G_INTRINSIC_FPTRUNC_ROUND = 85,
- G_INTRINSIC_TRUNC = 86,
- G_INTRINSIC_ROUND = 87,
- G_INTRINSIC_LRINT = 88,
- G_INTRINSIC_LLRINT = 89,
- G_INTRINSIC_ROUNDEVEN = 90,
- G_READCYCLECOUNTER = 91,
- G_READSTEADYCOUNTER = 92,
- G_LOAD = 93,
- G_SEXTLOAD = 94,
- G_ZEXTLOAD = 95,
- G_INDEXED_LOAD = 96,
- G_INDEXED_SEXTLOAD = 97,
- G_INDEXED_ZEXTLOAD = 98,
- G_STORE = 99,
- G_INDEXED_STORE = 100,
- G_ATOMIC_CMPXCHG_WITH_SUCCESS = 101,
- G_ATOMIC_CMPXCHG = 102,
- G_ATOMICRMW_XCHG = 103,
- G_ATOMICRMW_ADD = 104,
- G_ATOMICRMW_SUB = 105,
- G_ATOMICRMW_AND = 106,
- G_ATOMICRMW_NAND = 107,
- G_ATOMICRMW_OR = 108,
- G_ATOMICRMW_XOR = 109,
- G_ATOMICRMW_MAX = 110,
- G_ATOMICRMW_MIN = 111,
- G_ATOMICRMW_UMAX = 112,
- G_ATOMICRMW_UMIN = 113,
- G_ATOMICRMW_FADD = 114,
- G_ATOMICRMW_FSUB = 115,
- G_ATOMICRMW_FMAX = 116,
- G_ATOMICRMW_FMIN = 117,
- G_ATOMICRMW_FMAXIMUM = 118,
- G_ATOMICRMW_FMINIMUM = 119,
- G_ATOMICRMW_UINC_WRAP = 120,
- G_ATOMICRMW_UDEC_WRAP = 121,
- G_ATOMICRMW_USUB_COND = 122,
- G_ATOMICRMW_USUB_SAT = 123,
- G_FENCE = 124,
- G_PREFETCH = 125,
- G_BRCOND = 126,
- G_BRINDIRECT = 127,
- G_INVOKE_REGION_START = 128,
- G_INTRINSIC = 129,
- G_INTRINSIC_W_SIDE_EFFECTS = 130,
- G_INTRINSIC_CONVERGENT = 131,
- G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 132,
- G_ANYEXT = 133,
- G_TRUNC = 134,
- G_TRUNC_SSAT_S = 135,
- G_TRUNC_SSAT_U = 136,
- G_TRUNC_USAT_U = 137,
- G_CONSTANT = 138,
- G_FCONSTANT = 139,
- G_VASTART = 140,
- G_VAARG = 141,
- G_SEXT = 142,
- G_SEXT_INREG = 143,
- G_ZEXT = 144,
- G_SHL = 145,
- G_LSHR = 146,
- G_ASHR = 147,
- G_FSHL = 148,
- G_FSHR = 149,
- G_ROTR = 150,
- G_ROTL = 151,
- G_ICMP = 152,
- G_FCMP = 153,
- G_SCMP = 154,
- G_UCMP = 155,
- G_SELECT = 156,
- G_UADDO = 157,
- G_UADDE = 158,
- G_USUBO = 159,
- G_USUBE = 160,
- G_SADDO = 161,
- G_SADDE = 162,
- G_SSUBO = 163,
- G_SSUBE = 164,
- G_UMULO = 165,
- G_SMULO = 166,
- G_UMULH = 167,
- G_SMULH = 168,
- G_UADDSAT = 169,
- G_SADDSAT = 170,
- G_USUBSAT = 171,
- G_SSUBSAT = 172,
- G_USHLSAT = 173,
- G_SSHLSAT = 174,
- G_SMULFIX = 175,
- G_UMULFIX = 176,
- G_SMULFIXSAT = 177,
- G_UMULFIXSAT = 178,
- G_SDIVFIX = 179,
- G_UDIVFIX = 180,
- G_SDIVFIXSAT = 181,
- G_UDIVFIXSAT = 182,
- G_FADD = 183,
- G_FSUB = 184,
- G_FMUL = 185,
- G_FMA = 186,
- G_FMAD = 187,
- G_FDIV = 188,
- G_FREM = 189,
- G_FPOW = 190,
- G_FPOWI = 191,
- G_FEXP = 192,
- G_FEXP2 = 193,
- G_FEXP10 = 194,
- G_FLOG = 195,
- G_FLOG2 = 196,
- G_FLOG10 = 197,
- G_FLDEXP = 198,
- G_FFREXP = 199,
- G_FNEG = 200,
- G_FPEXT = 201,
- G_FPTRUNC = 202,
- G_FPTOSI = 203,
- G_FPTOUI = 204,
- G_SITOFP = 205,
- G_UITOFP = 206,
- G_FPTOSI_SAT = 207,
- G_FPTOUI_SAT = 208,
- G_FABS = 209,
- G_FCOPYSIGN = 210,
- G_IS_FPCLASS = 211,
- G_FCANONICALIZE = 212,
- G_FMINNUM = 213,
- G_FMAXNUM = 214,
- G_FMINNUM_IEEE = 215,
- G_FMAXNUM_IEEE = 216,
- G_FMINIMUM = 217,
- G_FMAXIMUM = 218,
- G_FMINIMUMNUM = 219,
- G_FMAXIMUMNUM = 220,
- G_GET_FPENV = 221,
- G_SET_FPENV = 222,
- G_RESET_FPENV = 223,
- G_GET_FPMODE = 224,
- G_SET_FPMODE = 225,
- G_RESET_FPMODE = 226,
- G_GET_ROUNDING = 227,
- G_PTR_ADD = 228,
- G_PTRMASK = 229,
- G_SMIN = 230,
- G_SMAX = 231,
- G_UMIN = 232,
- G_UMAX = 233,
- G_ABS = 234,
- G_LROUND = 235,
- G_LLROUND = 236,
- G_BR = 237,
- G_BRJT = 238,
- G_VSCALE = 239,
- G_INSERT_SUBVECTOR = 240,
- G_EXTRACT_SUBVECTOR = 241,
- G_INSERT_VECTOR_ELT = 242,
- G_EXTRACT_VECTOR_ELT = 243,
- G_SHUFFLE_VECTOR = 244,
- G_SPLAT_VECTOR = 245,
- G_STEP_VECTOR = 246,
- G_VECTOR_COMPRESS = 247,
- G_CTTZ = 248,
- G_CTTZ_ZERO_UNDEF = 249,
- G_CTLZ = 250,
- G_CTLZ_ZERO_UNDEF = 251,
- G_CTPOP = 252,
- G_BSWAP = 253,
- G_BITREVERSE = 254,
- G_FCEIL = 255,
- G_FCOS = 256,
- G_FSIN = 257,
- G_FSINCOS = 258,
- G_FTAN = 259,
- G_FACOS = 260,
- G_FASIN = 261,
- G_FATAN = 262,
- G_FATAN2 = 263,
- G_FCOSH = 264,
- G_FSINH = 265,
- G_FTANH = 266,
- G_FSQRT = 267,
- G_FFLOOR = 268,
- G_FRINT = 269,
- G_FNEARBYINT = 270,
- G_ADDRSPACE_CAST = 271,
- G_BLOCK_ADDR = 272,
- G_JUMP_TABLE = 273,
- G_DYN_STACKALLOC = 274,
- G_STACKSAVE = 275,
- G_STACKRESTORE = 276,
- G_STRICT_FADD = 277,
- G_STRICT_FSUB = 278,
- G_STRICT_FMUL = 279,
- G_STRICT_FDIV = 280,
- G_STRICT_FREM = 281,
- G_STRICT_FMA = 282,
- G_STRICT_FSQRT = 283,
- G_STRICT_FLDEXP = 284,
- G_READ_REGISTER = 285,
- G_WRITE_REGISTER = 286,
- G_MEMCPY = 287,
- G_MEMCPY_INLINE = 288,
- G_MEMMOVE = 289,
- G_MEMSET = 290,
- G_BZERO = 291,
- G_TRAP = 292,
- G_DEBUGTRAP = 293,
- G_UBSANTRAP = 294,
- G_VECREDUCE_SEQ_FADD = 295,
- G_VECREDUCE_SEQ_FMUL = 296,
- G_VECREDUCE_FADD = 297,
- G_VECREDUCE_FMUL = 298,
- G_VECREDUCE_FMAX = 299,
- G_VECREDUCE_FMIN = 300,
- G_VECREDUCE_FMAXIMUM = 301,
- G_VECREDUCE_FMINIMUM = 302,
- G_VECREDUCE_ADD = 303,
- G_VECREDUCE_MUL = 304,
- G_VECREDUCE_AND = 305,
- G_VECREDUCE_OR = 306,
- G_VECREDUCE_XOR = 307,
- G_VECREDUCE_SMAX = 308,
- G_VECREDUCE_SMIN = 309,
- G_VECREDUCE_UMAX = 310,
- G_VECREDUCE_UMIN = 311,
- G_SBFX = 312,
- G_UBFX = 313,
- ADJCALLSTACKDOWN = 314,
- ADJCALLSTACKUP = 315,
- FI_ri = 316,
- MEMCPY = 317,
- Select = 318,
- Select_32 = 319,
- Select_32_64 = 320,
- Select_64_32 = 321,
- Select_Ri = 322,
- Select_Ri_32 = 323,
- Select_Ri_32_64 = 324,
- Select_Ri_64_32 = 325,
- ADDR_SPACE_CAST = 326,
- ADD_ri = 327,
- ADD_ri_32 = 328,
- ADD_rr = 329,
- ADD_rr_32 = 330,
- AND_ri = 331,
- AND_ri_32 = 332,
- AND_rr = 333,
- AND_rr_32 = 334,
- BE16 = 335,
- BE32 = 336,
- BE64 = 337,
- BSWAP16 = 338,
- BSWAP32 = 339,
- BSWAP64 = 340,
- CMPXCHGD = 341,
- CMPXCHGW32 = 342,
- CORE_LD32 = 343,
- CORE_LD64 = 344,
- CORE_SHIFT = 345,
- CORE_ST = 346,
- DIV_ri = 347,
- DIV_ri_32 = 348,
- DIV_rr = 349,
- DIV_rr_32 = 350,
- JAL = 351,
- JALX = 352,
- JCOND = 353,
- JEQ_ri = 354,
- JEQ_ri_32 = 355,
- JEQ_rr = 356,
- JEQ_rr_32 = 357,
- JMP = 358,
- JMPL = 359,
- JNE_ri = 360,
- JNE_ri_32 = 361,
- JNE_rr = 362,
- JNE_rr_32 = 363,
- JSET_ri = 364,
- JSET_ri_32 = 365,
- JSET_rr = 366,
- JSET_rr_32 = 367,
- JSGE_ri = 368,
- JSGE_ri_32 = 369,
- JSGE_rr = 370,
- JSGE_rr_32 = 371,
- JSGT_ri = 372,
- JSGT_ri_32 = 373,
- JSGT_rr = 374,
- JSGT_rr_32 = 375,
- JSLE_ri = 376,
- JSLE_ri_32 = 377,
- JSLE_rr = 378,
- JSLE_rr_32 = 379,
- JSLT_ri = 380,
- JSLT_ri_32 = 381,
- JSLT_rr = 382,
- JSLT_rr_32 = 383,
- JUGE_ri = 384,
- JUGE_ri_32 = 385,
- JUGE_rr = 386,
- JUGE_rr_32 = 387,
- JUGT_ri = 388,
- JUGT_ri_32 = 389,
- JUGT_rr = 390,
- JUGT_rr_32 = 391,
- JULE_ri = 392,
- JULE_ri_32 = 393,
- JULE_rr = 394,
- JULE_rr_32 = 395,
- JULT_ri = 396,
- JULT_ri_32 = 397,
- JULT_rr = 398,
- JULT_rr_32 = 399,
- LDB = 400,
- LDB32 = 401,
- LDBACQ32 = 402,
- LDBSX = 403,
- LDD = 404,
- LDDACQ = 405,
- LDH = 406,
- LDH32 = 407,
- LDHACQ32 = 408,
- LDHSX = 409,
- LDW = 410,
- LDW32 = 411,
- LDWACQ32 = 412,
- LDWSX = 413,
- LD_ABS_B = 414,
- LD_ABS_H = 415,
- LD_ABS_W = 416,
- LD_IND_B = 417,
- LD_IND_H = 418,
- LD_IND_W = 419,
- LD_imm64 = 420,
- LD_pseudo = 421,
- LE16 = 422,
- LE32 = 423,
- LE64 = 424,
- MOD_ri = 425,
- MOD_ri_32 = 426,
- MOD_rr = 427,
- MOD_rr_32 = 428,
- MOVSX_rr_16 = 429,
- MOVSX_rr_32 = 430,
- MOVSX_rr_32_16 = 431,
- MOVSX_rr_32_8 = 432,
- MOVSX_rr_8 = 433,
- MOV_32_64 = 434,
- MOV_ri = 435,
- MOV_ri_32 = 436,
- MOV_rr = 437,
- MOV_rr_32 = 438,
- MUL_ri = 439,
- MUL_ri_32 = 440,
- MUL_rr = 441,
- MUL_rr_32 = 442,
- NEG_32 = 443,
- NEG_64 = 444,
- NOP = 445,
- OR_ri = 446,
- OR_ri_32 = 447,
- OR_rr = 448,
- OR_rr_32 = 449,
- RET = 450,
- SDIV_ri = 451,
- SDIV_ri_32 = 452,
- SDIV_rr = 453,
- SDIV_rr_32 = 454,
- SLL_ri = 455,
- SLL_ri_32 = 456,
- SLL_rr = 457,
- SLL_rr_32 = 458,
- SMOD_ri = 459,
- SMOD_ri_32 = 460,
- SMOD_rr = 461,
- SMOD_rr_32 = 462,
- SRA_ri = 463,
- SRA_ri_32 = 464,
- SRA_rr = 465,
- SRA_rr_32 = 466,
- SRL_ri = 467,
- SRL_ri_32 = 468,
- SRL_rr = 469,
- SRL_rr_32 = 470,
- STB = 471,
- STB32 = 472,
- STBREL32 = 473,
- STB_imm = 474,
- STD = 475,
- STDREL = 476,
- STD_imm = 477,
- STH = 478,
- STH32 = 479,
- STHREL32 = 480,
- STH_imm = 481,
- STW = 482,
- STW32 = 483,
- STWREL32 = 484,
- STW_imm = 485,
- SUB_ri = 486,
- SUB_ri_32 = 487,
- SUB_rr = 488,
- SUB_rr_32 = 489,
- XADDD = 490,
- XADDW = 491,
- XADDW32 = 492,
- XANDD = 493,
- XANDW32 = 494,
- XCHGD = 495,
- XCHGW32 = 496,
- XFADDD = 497,
- XFADDW32 = 498,
- XFANDD = 499,
- XFANDW32 = 500,
- XFORD = 501,
- XFORW32 = 502,
- XFXORD = 503,
- XFXORW32 = 504,
- XORD = 505,
- XORW32 = 506,
- XOR_ri = 507,
- XOR_ri_32 = 508,
- XOR_rr = 509,
- XOR_rr_32 = 510,
- XXORD = 511,
- XXORW32 = 512,
- INSTRUCTION_LIST_END = 513,
+ COPY_LANEMASK = 21,
+ BUNDLE = 22,
+ LIFETIME_START = 23,
+ LIFETIME_END = 24,
+ PSEUDO_PROBE = 25,
+ ARITH_FENCE = 26,
+ STACKMAP = 27,
+ FENTRY_CALL = 28,
+ PATCHPOINT = 29,
+ LOAD_STACK_GUARD = 30,
+ PREALLOCATED_SETUP = 31,
+ PREALLOCATED_ARG = 32,
+ STATEPOINT = 33,
+ LOCAL_ESCAPE = 34,
+ FAULTING_OP = 35,
+ PATCHABLE_OP = 36,
+ PATCHABLE_FUNCTION_ENTER = 37,
+ PATCHABLE_RET = 38,
+ PATCHABLE_FUNCTION_EXIT = 39,
+ PATCHABLE_TAIL_CALL = 40,
+ PATCHABLE_EVENT_CALL = 41,
+ PATCHABLE_TYPED_EVENT_CALL = 42,
+ ICALL_BRANCH_FUNNEL = 43,
+ FAKE_USE = 44,
+ MEMBARRIER = 45,
+ JUMP_TABLE_DEBUG_INFO = 46,
+ RELOC_NONE = 47,
+ CONVERGENCECTRL_ENTRY = 48,
+ CONVERGENCECTRL_ANCHOR = 49,
+ CONVERGENCECTRL_LOOP = 50,
+ CONVERGENCECTRL_GLUE = 51,
+ G_ASSERT_SEXT = 52,
+ G_ASSERT_ZEXT = 53,
+ G_ASSERT_ALIGN = 54,
+ G_ADD = 55,
+ G_SUB = 56,
+ G_MUL = 57,
+ G_SDIV = 58,
+ G_UDIV = 59,
+ G_SREM = 60,
+ G_UREM = 61,
+ G_SDIVREM = 62,
+ G_UDIVREM = 63,
+ G_AND = 64,
+ G_OR = 65,
+ G_XOR = 66,
+ G_ABDS = 67,
+ G_ABDU = 68,
+ G_UAVGFLOOR = 69,
+ G_UAVGCEIL = 70,
+ G_SAVGFLOOR = 71,
+ G_SAVGCEIL = 72,
+ G_IMPLICIT_DEF = 73,
+ G_PHI = 74,
+ G_FRAME_INDEX = 75,
+ G_GLOBAL_VALUE = 76,
+ G_PTRAUTH_GLOBAL_VALUE = 77,
+ G_CONSTANT_POOL = 78,
+ G_EXTRACT = 79,
+ G_UNMERGE_VALUES = 80,
+ G_INSERT = 81,
+ G_MERGE_VALUES = 82,
+ G_BUILD_VECTOR = 83,
+ G_BUILD_VECTOR_TRUNC = 84,
+ G_CONCAT_VECTORS = 85,
+ G_PTRTOINT = 86,
+ G_INTTOPTR = 87,
+ G_BITCAST = 88,
+ G_FREEZE = 89,
+ G_CONSTANT_FOLD_BARRIER = 90,
+ G_INTRINSIC_FPTRUNC_ROUND = 91,
+ G_INTRINSIC_TRUNC = 92,
+ G_INTRINSIC_ROUND = 93,
+ G_INTRINSIC_LRINT = 94,
+ G_INTRINSIC_LLRINT = 95,
+ G_INTRINSIC_ROUNDEVEN = 96,
+ G_READCYCLECOUNTER = 97,
+ G_READSTEADYCOUNTER = 98,
+ G_LOAD = 99,
+ G_SEXTLOAD = 100,
+ G_ZEXTLOAD = 101,
+ G_INDEXED_LOAD = 102,
+ G_INDEXED_SEXTLOAD = 103,
+ G_INDEXED_ZEXTLOAD = 104,
+ G_STORE = 105,
+ G_INDEXED_STORE = 106,
+ G_ATOMIC_CMPXCHG_WITH_SUCCESS = 107,
+ G_ATOMIC_CMPXCHG = 108,
+ G_ATOMICRMW_XCHG = 109,
+ G_ATOMICRMW_ADD = 110,
+ G_ATOMICRMW_SUB = 111,
+ G_ATOMICRMW_AND = 112,
+ G_ATOMICRMW_NAND = 113,
+ G_ATOMICRMW_OR = 114,
+ G_ATOMICRMW_XOR = 115,
+ G_ATOMICRMW_MAX = 116,
+ G_ATOMICRMW_MIN = 117,
+ G_ATOMICRMW_UMAX = 118,
+ G_ATOMICRMW_UMIN = 119,
+ G_ATOMICRMW_FADD = 120,
+ G_ATOMICRMW_FSUB = 121,
+ G_ATOMICRMW_FMAX = 122,
+ G_ATOMICRMW_FMIN = 123,
+ G_ATOMICRMW_FMAXIMUM = 124,
+ G_ATOMICRMW_FMINIMUM = 125,
+ G_ATOMICRMW_UINC_WRAP = 126,
+ G_ATOMICRMW_UDEC_WRAP = 127,
+ G_ATOMICRMW_USUB_COND = 128,
+ G_ATOMICRMW_USUB_SAT = 129,
+ G_FENCE = 130,
+ G_PREFETCH = 131,
+ G_BRCOND = 132,
+ G_BRINDIRECT = 133,
+ G_INVOKE_REGION_START = 134,
+ G_INTRINSIC = 135,
+ G_INTRINSIC_W_SIDE_EFFECTS = 136,
+ G_INTRINSIC_CONVERGENT = 137,
+ G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 138,
+ G_ANYEXT = 139,
+ G_TRUNC = 140,
+ G_TRUNC_SSAT_S = 141,
+ G_TRUNC_SSAT_U = 142,
+ G_TRUNC_USAT_U = 143,
+ G_CONSTANT = 144,
+ G_FCONSTANT = 145,
+ G_VASTART = 146,
+ G_VAARG = 147,
+ G_SEXT = 148,
+ G_SEXT_INREG = 149,
+ G_ZEXT = 150,
+ G_SHL = 151,
+ G_LSHR = 152,
+ G_ASHR = 153,
+ G_FSHL = 154,
+ G_FSHR = 155,
+ G_ROTR = 156,
+ G_ROTL = 157,
+ G_ICMP = 158,
+ G_FCMP = 159,
+ G_SCMP = 160,
+ G_UCMP = 161,
+ G_SELECT = 162,
+ G_UADDO = 163,
+ G_UADDE = 164,
+ G_USUBO = 165,
+ G_USUBE = 166,
+ G_SADDO = 167,
+ G_SADDE = 168,
+ G_SSUBO = 169,
+ G_SSUBE = 170,
+ G_UMULO = 171,
+ G_SMULO = 172,
+ G_UMULH = 173,
+ G_SMULH = 174,
+ G_UADDSAT = 175,
+ G_SADDSAT = 176,
+ G_USUBSAT = 177,
+ G_SSUBSAT = 178,
+ G_USHLSAT = 179,
+ G_SSHLSAT = 180,
+ G_SMULFIX = 181,
+ G_UMULFIX = 182,
+ G_SMULFIXSAT = 183,
+ G_UMULFIXSAT = 184,
+ G_SDIVFIX = 185,
+ G_UDIVFIX = 186,
+ G_SDIVFIXSAT = 187,
+ G_UDIVFIXSAT = 188,
+ G_FADD = 189,
+ G_FSUB = 190,
+ G_FMUL = 191,
+ G_FMA = 192,
+ G_FMAD = 193,
+ G_FDIV = 194,
+ G_FREM = 195,
+ G_FMODF = 196,
+ G_FPOW = 197,
+ G_FPOWI = 198,
+ G_FEXP = 199,
+ G_FEXP2 = 200,
+ G_FEXP10 = 201,
+ G_FLOG = 202,
+ G_FLOG2 = 203,
+ G_FLOG10 = 204,
+ G_FLDEXP = 205,
+ G_FFREXP = 206,
+ G_FNEG = 207,
+ G_FPEXT = 208,
+ G_FPTRUNC = 209,
+ G_FPTOSI = 210,
+ G_FPTOUI = 211,
+ G_SITOFP = 212,
+ G_UITOFP = 213,
+ G_FPTOSI_SAT = 214,
+ G_FPTOUI_SAT = 215,
+ G_FABS = 216,
+ G_FCOPYSIGN = 217,
+ G_IS_FPCLASS = 218,
+ G_FCANONICALIZE = 219,
+ G_FMINNUM = 220,
+ G_FMAXNUM = 221,
+ G_FMINNUM_IEEE = 222,
+ G_FMAXNUM_IEEE = 223,
+ G_FMINIMUM = 224,
+ G_FMAXIMUM = 225,
+ G_FMINIMUMNUM = 226,
+ G_FMAXIMUMNUM = 227,
+ G_GET_FPENV = 228,
+ G_SET_FPENV = 229,
+ G_RESET_FPENV = 230,
+ G_GET_FPMODE = 231,
+ G_SET_FPMODE = 232,
+ G_RESET_FPMODE = 233,
+ G_GET_ROUNDING = 234,
+ G_SET_ROUNDING = 235,
+ G_PTR_ADD = 236,
+ G_PTRMASK = 237,
+ G_SMIN = 238,
+ G_SMAX = 239,
+ G_UMIN = 240,
+ G_UMAX = 241,
+ G_ABS = 242,
+ G_LROUND = 243,
+ G_LLROUND = 244,
+ G_BR = 245,
+ G_BRJT = 246,
+ G_VSCALE = 247,
+ G_INSERT_SUBVECTOR = 248,
+ G_EXTRACT_SUBVECTOR = 249,
+ G_INSERT_VECTOR_ELT = 250,
+ G_EXTRACT_VECTOR_ELT = 251,
+ G_SHUFFLE_VECTOR = 252,
+ G_SPLAT_VECTOR = 253,
+ G_STEP_VECTOR = 254,
+ G_VECTOR_COMPRESS = 255,
+ G_CTTZ = 256,
+ G_CTTZ_ZERO_UNDEF = 257,
+ G_CTLZ = 258,
+ G_CTLZ_ZERO_UNDEF = 259,
+ G_CTPOP = 260,
+ G_BSWAP = 261,
+ G_BITREVERSE = 262,
+ G_FCEIL = 263,
+ G_FCOS = 264,
+ G_FSIN = 265,
+ G_FSINCOS = 266,
+ G_FTAN = 267,
+ G_FACOS = 268,
+ G_FASIN = 269,
+ G_FATAN = 270,
+ G_FATAN2 = 271,
+ G_FCOSH = 272,
+ G_FSINH = 273,
+ G_FTANH = 274,
+ G_FSQRT = 275,
+ G_FFLOOR = 276,
+ G_FRINT = 277,
+ G_FNEARBYINT = 278,
+ G_ADDRSPACE_CAST = 279,
+ G_BLOCK_ADDR = 280,
+ G_JUMP_TABLE = 281,
+ G_DYN_STACKALLOC = 282,
+ G_STACKSAVE = 283,
+ G_STACKRESTORE = 284,
+ G_STRICT_FADD = 285,
+ G_STRICT_FSUB = 286,
+ G_STRICT_FMUL = 287,
+ G_STRICT_FDIV = 288,
+ G_STRICT_FREM = 289,
+ G_STRICT_FMA = 290,
+ G_STRICT_FSQRT = 291,
+ G_STRICT_FLDEXP = 292,
+ G_READ_REGISTER = 293,
+ G_WRITE_REGISTER = 294,
+ G_MEMCPY = 295,
+ G_MEMCPY_INLINE = 296,
+ G_MEMMOVE = 297,
+ G_MEMSET = 298,
+ G_BZERO = 299,
+ G_TRAP = 300,
+ G_DEBUGTRAP = 301,
+ G_UBSANTRAP = 302,
+ G_VECREDUCE_SEQ_FADD = 303,
+ G_VECREDUCE_SEQ_FMUL = 304,
+ G_VECREDUCE_FADD = 305,
+ G_VECREDUCE_FMUL = 306,
+ G_VECREDUCE_FMAX = 307,
+ G_VECREDUCE_FMIN = 308,
+ G_VECREDUCE_FMAXIMUM = 309,
+ G_VECREDUCE_FMINIMUM = 310,
+ G_VECREDUCE_ADD = 311,
+ G_VECREDUCE_MUL = 312,
+ G_VECREDUCE_AND = 313,
+ G_VECREDUCE_OR = 314,
+ G_VECREDUCE_XOR = 315,
+ G_VECREDUCE_SMAX = 316,
+ G_VECREDUCE_SMIN = 317,
+ G_VECREDUCE_UMAX = 318,
+ G_VECREDUCE_UMIN = 319,
+ G_SBFX = 320,
+ G_UBFX = 321,
+ ADJCALLSTACKDOWN = 322,
+ ADJCALLSTACKUP = 323,
+ FI_ri = 324,
+ LDIMM64 = 325,
+ MEMCPY = 326,
+ Select = 327,
+ Select_32 = 328,
+ Select_32_64 = 329,
+ Select_64_32 = 330,
+ Select_Ri = 331,
+ Select_Ri_32 = 332,
+ Select_Ri_32_64 = 333,
+ Select_Ri_64_32 = 334,
+ ADDR_SPACE_CAST = 335,
+ ADD_ri = 336,
+ ADD_ri_32 = 337,
+ ADD_rr = 338,
+ ADD_rr_32 = 339,
+ AND_ri = 340,
+ AND_ri_32 = 341,
+ AND_rr = 342,
+ AND_rr_32 = 343,
+ BE16 = 344,
+ BE32 = 345,
+ BE64 = 346,
+ BSWAP16 = 347,
+ BSWAP32 = 348,
+ BSWAP64 = 349,
+ CMPXCHGD = 350,
+ CMPXCHGW32 = 351,
+ CORE_LD32 = 352,
+ CORE_LD64 = 353,
+ CORE_SHIFT = 354,
+ CORE_ST = 355,
+ DIV_ri = 356,
+ DIV_ri_32 = 357,
+ DIV_rr = 358,
+ DIV_rr_32 = 359,
+ JAL = 360,
+ JALX = 361,
+ JCOND = 362,
+ JEQ_ri = 363,
+ JEQ_ri_32 = 364,
+ JEQ_rr = 365,
+ JEQ_rr_32 = 366,
+ JMP = 367,
+ JMPL = 368,
+ JNE_ri = 369,
+ JNE_ri_32 = 370,
+ JNE_rr = 371,
+ JNE_rr_32 = 372,
+ JSET_ri = 373,
+ JSET_ri_32 = 374,
+ JSET_rr = 375,
+ JSET_rr_32 = 376,
+ JSGE_ri = 377,
+ JSGE_ri_32 = 378,
+ JSGE_rr = 379,
+ JSGE_rr_32 = 380,
+ JSGT_ri = 381,
+ JSGT_ri_32 = 382,
+ JSGT_rr = 383,
+ JSGT_rr_32 = 384,
+ JSLE_ri = 385,
+ JSLE_ri_32 = 386,
+ JSLE_rr = 387,
+ JSLE_rr_32 = 388,
+ JSLT_ri = 389,
+ JSLT_ri_32 = 390,
+ JSLT_rr = 391,
+ JSLT_rr_32 = 392,
+ JUGE_ri = 393,
+ JUGE_ri_32 = 394,
+ JUGE_rr = 395,
+ JUGE_rr_32 = 396,
+ JUGT_ri = 397,
+ JUGT_ri_32 = 398,
+ JUGT_rr = 399,
+ JUGT_rr_32 = 400,
+ JULE_ri = 401,
+ JULE_ri_32 = 402,
+ JULE_rr = 403,
+ JULE_rr_32 = 404,
+ JULT_ri = 405,
+ JULT_ri_32 = 406,
+ JULT_rr = 407,
+ JULT_rr_32 = 408,
+ JX = 409,
+ LDB = 410,
+ LDB32 = 411,
+ LDBACQ32 = 412,
+ LDBSX = 413,
+ LDD = 414,
+ LDDACQ = 415,
+ LDH = 416,
+ LDH32 = 417,
+ LDHACQ32 = 418,
+ LDHSX = 419,
+ LDW = 420,
+ LDW32 = 421,
+ LDWACQ32 = 422,
+ LDWSX = 423,
+ LD_ABS_B = 424,
+ LD_ABS_H = 425,
+ LD_ABS_W = 426,
+ LD_IND_B = 427,
+ LD_IND_H = 428,
+ LD_IND_W = 429,
+ LD_imm64 = 430,
+ LD_pseudo = 431,
+ LE16 = 432,
+ LE32 = 433,
+ LE64 = 434,
+ MOD_ri = 435,
+ MOD_ri_32 = 436,
+ MOD_rr = 437,
+ MOD_rr_32 = 438,
+ MOVSX_rr_16 = 439,
+ MOVSX_rr_32 = 440,
+ MOVSX_rr_32_16 = 441,
+ MOVSX_rr_32_8 = 442,
+ MOVSX_rr_8 = 443,
+ MOV_32_64 = 444,
+ MOV_ri = 445,
+ MOV_ri_32 = 446,
+ MOV_rr = 447,
+ MOV_rr_32 = 448,
+ MUL_ri = 449,
+ MUL_ri_32 = 450,
+ MUL_rr = 451,
+ MUL_rr_32 = 452,
+ NEG_32 = 453,
+ NEG_64 = 454,
+ NOP = 455,
+ OR_ri = 456,
+ OR_ri_32 = 457,
+ OR_rr = 458,
+ OR_rr_32 = 459,
+ RET = 460,
+ SDIV_ri = 461,
+ SDIV_ri_32 = 462,
+ SDIV_rr = 463,
+ SDIV_rr_32 = 464,
+ SLL_ri = 465,
+ SLL_ri_32 = 466,
+ SLL_rr = 467,
+ SLL_rr_32 = 468,
+ SMOD_ri = 469,
+ SMOD_ri_32 = 470,
+ SMOD_rr = 471,
+ SMOD_rr_32 = 472,
+ SRA_ri = 473,
+ SRA_ri_32 = 474,
+ SRA_rr = 475,
+ SRA_rr_32 = 476,
+ SRL_ri = 477,
+ SRL_ri_32 = 478,
+ SRL_rr = 479,
+ SRL_rr_32 = 480,
+ STB = 481,
+ STB32 = 482,
+ STBREL32 = 483,
+ STB_imm = 484,
+ STD = 485,
+ STDREL = 486,
+ STD_imm = 487,
+ STH = 488,
+ STH32 = 489,
+ STHREL32 = 490,
+ STH_imm = 491,
+ STW = 492,
+ STW32 = 493,
+ STWREL32 = 494,
+ STW_imm = 495,
+ SUB_ri = 496,
+ SUB_ri_32 = 497,
+ SUB_rr = 498,
+ SUB_rr_32 = 499,
+ XADDD = 500,
+ XADDW = 501,
+ XADDW32 = 502,
+ XANDD = 503,
+ XANDW32 = 504,
+ XCHGD = 505,
+ XCHGW32 = 506,
+ XFADDD = 507,
+ XFADDW32 = 508,
+ XFANDD = 509,
+ XFANDW32 = 510,
+ XFORD = 511,
+ XFORW32 = 512,
+ XFXORD = 513,
+ XFXORW32 = 514,
+ XORD = 515,
+ XORW32 = 516,
+ XOR_ri = 517,
+ XOR_ri_32 = 518,
+ XOR_rr = 519,
+ XOR_rr_32 = 520,
+ XXORD = 521,
+ XXORW32 = 522,
+ INSTRUCTION_LIST_END = 523,
};
}
}
diff --git a/deps/LIEF/include/LIEF/asm/ebpf/operands.hpp b/deps/LIEF/include/LIEF/asm/ebpf/operands.hpp
new file mode 100644
index 00000000000..d6962cd70a5
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/ebpf/operands.hpp
@@ -0,0 +1,22 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ASM_EBPF_OPERANDS_H
+#define LIEF_ASM_EBPF_OPERANDS_H
+#include <LIEF/asm/ebpf/operands/Register.hpp>
+#include <LIEF/asm/ebpf/operands/Immediate.hpp>
+#include <LIEF/asm/ebpf/operands/PCRelative.hpp>
+#include <LIEF/asm/ebpf/operands/Memory.hpp>
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/ebpf/operands/Immediate.hpp b/deps/LIEF/include/LIEF/asm/ebpf/operands/Immediate.hpp
new file mode 100644
index 00000000000..6ca85137008
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/ebpf/operands/Immediate.hpp
@@ -0,0 +1,49 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ASM_EBPF_OPERAND_IMM_H
+#define LIEF_ASM_EBPF_OPERAND_IMM_H
+#include "LIEF/asm/ebpf/Operand.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace ebpf {
+/// Namespace that wraps the different eBPF operands
+namespace operands {
+
+
+/// This class represents an immediate operand (i.e. a constant)
+///
+/// For instance:
+///
+/// ```text
+/// r1 = 8
+/// |
+/// +---> Immediate(8)
+/// ```
+class LIEF_API Immediate : public Operand {
+ public:
+ using Operand::Operand;
+
+ /// The constant value wrapped by this operand
+ int64_t value() const;
+
+ static bool classof(const Operand* op);
+ ~Immediate() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/ebpf/operands/Memory.hpp b/deps/LIEF/include/LIEF/asm/ebpf/operands/Memory.hpp
new file mode 100644
index 00000000000..4a497adf11c
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/ebpf/operands/Memory.hpp
@@ -0,0 +1,57 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ASM_EBPF_OPERAND_MEMORY_H
+#define LIEF_ASM_EBPF_OPERAND_MEMORY_H
+#include <cstdint>
+
+#include "LIEF/asm/ebpf/Operand.hpp"
+#include "LIEF/asm/ebpf/registers.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace ebpf {
+namespace operands {
+
+/// This class represents a memory operand.
+///
+/// ```text
+/// *(u64 *)(r1 + 8) = r2
+/// | |
+/// | +-----> Displacement: 8
+/// |
+/// +----------> Base: r1
+/// ```
+class LIEF_API Memory : public Operand {
+ public:
+ using Operand::Operand;
+
+ /// The base register.
+ ///
+ /// For `*(u64 *)(r1 + 8)` it would return `r1`.
+ REG base() const;
+
+ /// The displacement value.
+ ///
+ /// For `*(u64 *)(r1 + 8)` it would return `8`.
+ int64_t displacement() const;
+
+ static bool classof(const Operand* op);
+ ~Memory() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/ebpf/operands/PCRelative.hpp b/deps/LIEF/include/LIEF/asm/ebpf/operands/PCRelative.hpp
new file mode 100644
index 00000000000..9d02038ace0
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/ebpf/operands/PCRelative.hpp
@@ -0,0 +1,47 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ASM_EBPF_OPERAND_PCREL_H
+#define LIEF_ASM_EBPF_OPERAND_PCREL_H
+#include "LIEF/asm/ebpf/Operand.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace ebpf {
+namespace operands {
+
+/// This class represents a PC-relative operand.
+///
+/// ```text
+/// if r1 == 0 goto +5
+/// |
+/// v
+/// PC Relative operand
+/// ```
+class LIEF_API PCRelative : public Operand {
+ public:
+ using Operand::Operand;
+
+ /// The effective value that is relative to the current `pc` register
+ int64_t value() const;
+
+ static bool classof(const Operand* op);
+
+ ~PCRelative() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/ebpf/operands/Register.hpp b/deps/LIEF/include/LIEF/asm/ebpf/operands/Register.hpp
new file mode 100644
index 00000000000..fdac41367ce
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/ebpf/operands/Register.hpp
@@ -0,0 +1,51 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ASM_EBPF_OPERAND_REG_H
+#define LIEF_ASM_EBPF_OPERAND_REG_H
+
+#include "LIEF/asm/ebpf/Operand.hpp"
+#include "LIEF/asm/ebpf/registers.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace ebpf {
+namespace operands {
+
+/// This class represents a register operand.
+///
+/// For instance:
+///
+/// ```text
+/// r0 = r1
+/// | |
+/// | +---------> Register(r1)
+/// |
+/// +--------------> Register(r0)
+/// ```
+class LIEF_API Register : public Operand {
+ public:
+ using Operand::Operand;
+
+ /// The effective REG wrapped by this operand
+ REG value() const;
+
+ static bool classof(const Operand* op);
+ ~Register() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/ebpf/registers.hpp b/deps/LIEF/include/LIEF/asm/ebpf/registers.hpp
index 67d5b023c17..b76b36158ee 100644
--- a/deps/LIEF/include/LIEF/asm/ebpf/registers.hpp
+++ b/deps/LIEF/include/LIEF/asm/ebpf/registers.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/mips.hpp b/deps/LIEF/include/LIEF/asm/mips.hpp
index 64641b4acb9..d7395c38df7 100644
--- a/deps/LIEF/include/LIEF/asm/mips.hpp
+++ b/deps/LIEF/include/LIEF/asm/mips.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,4 +18,5 @@
#include <LIEF/asm/mips/Instruction.hpp>
#include <LIEF/asm/mips/opcodes.hpp>
#include <LIEF/asm/mips/registers.hpp>
+#include <LIEF/asm/mips/operands.hpp>
#endif
diff --git a/deps/LIEF/include/LIEF/asm/mips/Instruction.hpp b/deps/LIEF/include/LIEF/asm/mips/Instruction.hpp
index 79dcfc20822..ea9a96828b6 100644
--- a/deps/LIEF/include/LIEF/asm/mips/Instruction.hpp
+++ b/deps/LIEF/include/LIEF/asm/mips/Instruction.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,9 +15,11 @@
#ifndef LIEF_ASM_MIPS_INST_H
#define LIEF_ASM_MIPS_INST_H
#include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/asm/Instruction.hpp"
#include "LIEF/asm/mips/opcodes.hpp"
+#include "LIEF/asm/mips/Operand.hpp"
namespace LIEF {
namespace assembly {
@@ -30,9 +32,14 @@ class LIEF_API Instruction : public assembly::Instruction {
public:
using assembly::Instruction::Instruction;
+ using operands_it = iterator_range<Operand::Iterator>;
+
/// The instruction opcode as defined in LLVM
OPCODE opcode() const;
+ /// Iterator over the operands of the current instruction
+ operands_it operands() const LIEF_LIFETIMEBOUND;
+
/// True if `inst` is an **effective** instance of mips::Instruction
static bool classof(const assembly::Instruction* inst);
diff --git a/deps/LIEF/include/LIEF/asm/mips/Operand.hpp b/deps/LIEF/include/LIEF/asm/mips/Operand.hpp
new file mode 100644
index 00000000000..99081019132
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/mips/Operand.hpp
@@ -0,0 +1,135 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ASM_MIPS_OPERAND_H
+#define LIEF_ASM_MIPS_OPERAND_H
+#include "LIEF/visibility.h"
+#include "LIEF/iterators.hpp"
+
+#include <memory>
+#include <string>
+#include <cassert>
+
+#include <ostream>
+
+namespace LIEF {
+namespace assembly {
+namespace mips {
+
+namespace details {
+class Operand;
+class OperandIt;
+}
+
+/// This class represents an operand for a Mips instruction
+class LIEF_API Operand {
+ public:
+ /// **Forward** iterator that lazily disassembles mips Operand.
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::forward_iterator_tag, Operand,
+ std::ptrdiff_t, const Operand*, const Operand&> {
+ public:
+ using implementation = details::OperandIt;
+ using iterator_facade_base::operator++;
+
+ LIEF_API Iterator();
+
+ LIEF_API Iterator(std::unique_ptr<details::OperandIt> impl);
+ LIEF_API Iterator(const Iterator&);
+ LIEF_API Iterator& operator=(const Iterator&);
+
+ LIEF_API Iterator(Iterator&&) noexcept;
+ LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+ LIEF_API ~Iterator();
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator++() LIEF_LIFETIMEBOUND;
+
+ friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
+
+ friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+ return !(LHS == RHS);
+ }
+
+ LIEF_API const Operand& operator*() const LIEF_LIFETIMEBOUND;
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const Operand* operator->() const LIEF_LIFETIMEBOUND;
+
+ /// Transfer ownership of the operand at the current position to the
+ /// caller. Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<Operand> yield();
+
+ private:
+ void load() const;
+
+ std::unique_ptr<details::OperandIt> impl_;
+ mutable std::unique_ptr<Operand> cached_;
+ };
+
+ /// Pretty representation of the operand
+ std::string to_string() const;
+
+ /// This function can be used to **down cast** an Operand instance:
+ ///
+ /// ```cpp
+ /// std::unique_ptr<assembly::mips::Operand> op = ...;
+ /// if (const auto* imm = inst->as<assembly::mips::operands::Immediate>()) {
+ /// const int64_t value = imm->value();
+ /// }
+ /// ```
+ template<class T>
+ const T* as() const LIEF_LIFETIMEBOUND {
+ static_assert(std::is_base_of<Operand, T>::value,
+ "Require Operand inheritance");
+ if (T::classof(this)) {
+ return static_cast<const T*>(this);
+ }
+ return nullptr;
+ }
+
+ virtual ~Operand();
+
+ /// @private
+ static LIEF_LOCAL std::unique_ptr<Operand>
+ create(std::unique_ptr<details::Operand> impl);
+
+ /// @private
+ LIEF_LOCAL const details::Operand& impl() const LIEF_LIFETIMEBOUND {
+ assert(impl_ != nullptr);
+ return *impl_;
+ }
+
+ /// @private
+ LIEF_LOCAL details::Operand& impl() LIEF_LIFETIMEBOUND {
+ assert(impl_ != nullptr);
+ return *impl_;
+ }
+
+ friend LIEF_API std::ostream& operator<<(std::ostream& os, const Operand& op) {
+ os << op.to_string();
+ return os;
+ }
+
+ protected:
+ LIEF_LOCAL Operand(std::unique_ptr<details::Operand> impl);
+ std::unique_ptr<details::Operand> impl_;
+};
+
+}
+}
+}
+
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/mips/opcodes.hpp b/deps/LIEF/include/LIEF/asm/mips/opcodes.hpp
index 41532b8f1cf..766c0326fe3 100644
--- a/deps/LIEF/include/LIEF/asm/mips/opcodes.hpp
+++ b/deps/LIEF/include/LIEF/asm/mips/opcodes.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
#ifndef LIEF_ASM_MIPS_OPCODE_H
#define LIEF_ASM_MIPS_OPCODE_H
-/* Generated from LLVM: 21.1.0 */
+/* Generated from LLVM: 22.1.8 */
namespace LIEF {
namespace assembly {
@@ -42,2898 +42,2906 @@ enum class OPCODE {
DBG_LABEL = 18,
REG_SEQUENCE = 19,
COPY = 20,
- BUNDLE = 21,
- LIFETIME_START = 22,
- LIFETIME_END = 23,
- PSEUDO_PROBE = 24,
- ARITH_FENCE = 25,
- STACKMAP = 26,
- FENTRY_CALL = 27,
- PATCHPOINT = 28,
- LOAD_STACK_GUARD = 29,
- PREALLOCATED_SETUP = 30,
- PREALLOCATED_ARG = 31,
- STATEPOINT = 32,
- LOCAL_ESCAPE = 33,
- FAULTING_OP = 34,
- PATCHABLE_OP = 35,
- PATCHABLE_FUNCTION_ENTER = 36,
- PATCHABLE_RET = 37,
- PATCHABLE_FUNCTION_EXIT = 38,
- PATCHABLE_TAIL_CALL = 39,
- PATCHABLE_EVENT_CALL = 40,
- PATCHABLE_TYPED_EVENT_CALL = 41,
- ICALL_BRANCH_FUNNEL = 42,
- FAKE_USE = 43,
- MEMBARRIER = 44,
- JUMP_TABLE_DEBUG_INFO = 45,
- CONVERGENCECTRL_ENTRY = 46,
- CONVERGENCECTRL_ANCHOR = 47,
- CONVERGENCECTRL_LOOP = 48,
- CONVERGENCECTRL_GLUE = 49,
- G_ASSERT_SEXT = 50,
- G_ASSERT_ZEXT = 51,
- G_ASSERT_ALIGN = 52,
- G_ADD = 53,
- G_SUB = 54,
- G_MUL = 55,
- G_SDIV = 56,
- G_UDIV = 57,
- G_SREM = 58,
- G_UREM = 59,
- G_SDIVREM = 60,
- G_UDIVREM = 61,
- G_AND = 62,
- G_OR = 63,
- G_XOR = 64,
- G_ABDS = 65,
- G_ABDU = 66,
- G_IMPLICIT_DEF = 67,
- G_PHI = 68,
- G_FRAME_INDEX = 69,
- G_GLOBAL_VALUE = 70,
- G_PTRAUTH_GLOBAL_VALUE = 71,
- G_CONSTANT_POOL = 72,
- G_EXTRACT = 73,
- G_UNMERGE_VALUES = 74,
- G_INSERT = 75,
- G_MERGE_VALUES = 76,
- G_BUILD_VECTOR = 77,
- G_BUILD_VECTOR_TRUNC = 78,
- G_CONCAT_VECTORS = 79,
- G_PTRTOINT = 80,
- G_INTTOPTR = 81,
- G_BITCAST = 82,
- G_FREEZE = 83,
- G_CONSTANT_FOLD_BARRIER = 84,
- G_INTRINSIC_FPTRUNC_ROUND = 85,
- G_INTRINSIC_TRUNC = 86,
- G_INTRINSIC_ROUND = 87,
- G_INTRINSIC_LRINT = 88,
- G_INTRINSIC_LLRINT = 89,
- G_INTRINSIC_ROUNDEVEN = 90,
- G_READCYCLECOUNTER = 91,
- G_READSTEADYCOUNTER = 92,
- G_LOAD = 93,
- G_SEXTLOAD = 94,
- G_ZEXTLOAD = 95,
- G_INDEXED_LOAD = 96,
- G_INDEXED_SEXTLOAD = 97,
- G_INDEXED_ZEXTLOAD = 98,
- G_STORE = 99,
- G_INDEXED_STORE = 100,
- G_ATOMIC_CMPXCHG_WITH_SUCCESS = 101,
- G_ATOMIC_CMPXCHG = 102,
- G_ATOMICRMW_XCHG = 103,
- G_ATOMICRMW_ADD = 104,
- G_ATOMICRMW_SUB = 105,
- G_ATOMICRMW_AND = 106,
- G_ATOMICRMW_NAND = 107,
- G_ATOMICRMW_OR = 108,
- G_ATOMICRMW_XOR = 109,
- G_ATOMICRMW_MAX = 110,
- G_ATOMICRMW_MIN = 111,
- G_ATOMICRMW_UMAX = 112,
- G_ATOMICRMW_UMIN = 113,
- G_ATOMICRMW_FADD = 114,
- G_ATOMICRMW_FSUB = 115,
- G_ATOMICRMW_FMAX = 116,
- G_ATOMICRMW_FMIN = 117,
- G_ATOMICRMW_FMAXIMUM = 118,
- G_ATOMICRMW_FMINIMUM = 119,
- G_ATOMICRMW_UINC_WRAP = 120,
- G_ATOMICRMW_UDEC_WRAP = 121,
- G_ATOMICRMW_USUB_COND = 122,
- G_ATOMICRMW_USUB_SAT = 123,
- G_FENCE = 124,
- G_PREFETCH = 125,
- G_BRCOND = 126,
- G_BRINDIRECT = 127,
- G_INVOKE_REGION_START = 128,
- G_INTRINSIC = 129,
- G_INTRINSIC_W_SIDE_EFFECTS = 130,
- G_INTRINSIC_CONVERGENT = 131,
- G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 132,
- G_ANYEXT = 133,
- G_TRUNC = 134,
- G_TRUNC_SSAT_S = 135,
- G_TRUNC_SSAT_U = 136,
- G_TRUNC_USAT_U = 137,
- G_CONSTANT = 138,
- G_FCONSTANT = 139,
- G_VASTART = 140,
- G_VAARG = 141,
- G_SEXT = 142,
- G_SEXT_INREG = 143,
- G_ZEXT = 144,
- G_SHL = 145,
- G_LSHR = 146,
- G_ASHR = 147,
- G_FSHL = 148,
- G_FSHR = 149,
- G_ROTR = 150,
- G_ROTL = 151,
- G_ICMP = 152,
- G_FCMP = 153,
- G_SCMP = 154,
- G_UCMP = 155,
- G_SELECT = 156,
- G_UADDO = 157,
- G_UADDE = 158,
- G_USUBO = 159,
- G_USUBE = 160,
- G_SADDO = 161,
- G_SADDE = 162,
- G_SSUBO = 163,
- G_SSUBE = 164,
- G_UMULO = 165,
- G_SMULO = 166,
- G_UMULH = 167,
- G_SMULH = 168,
- G_UADDSAT = 169,
- G_SADDSAT = 170,
- G_USUBSAT = 171,
- G_SSUBSAT = 172,
- G_USHLSAT = 173,
- G_SSHLSAT = 174,
- G_SMULFIX = 175,
- G_UMULFIX = 176,
- G_SMULFIXSAT = 177,
- G_UMULFIXSAT = 178,
- G_SDIVFIX = 179,
- G_UDIVFIX = 180,
- G_SDIVFIXSAT = 181,
- G_UDIVFIXSAT = 182,
- G_FADD = 183,
- G_FSUB = 184,
- G_FMUL = 185,
- G_FMA = 186,
- G_FMAD = 187,
- G_FDIV = 188,
- G_FREM = 189,
- G_FPOW = 190,
- G_FPOWI = 191,
- G_FEXP = 192,
- G_FEXP2 = 193,
- G_FEXP10 = 194,
- G_FLOG = 195,
- G_FLOG2 = 196,
- G_FLOG10 = 197,
- G_FLDEXP = 198,
- G_FFREXP = 199,
- G_FNEG = 200,
- G_FPEXT = 201,
- G_FPTRUNC = 202,
- G_FPTOSI = 203,
- G_FPTOUI = 204,
- G_SITOFP = 205,
- G_UITOFP = 206,
- G_FPTOSI_SAT = 207,
- G_FPTOUI_SAT = 208,
- G_FABS = 209,
- G_FCOPYSIGN = 210,
- G_IS_FPCLASS = 211,
- G_FCANONICALIZE = 212,
- G_FMINNUM = 213,
- G_FMAXNUM = 214,
- G_FMINNUM_IEEE = 215,
- G_FMAXNUM_IEEE = 216,
- G_FMINIMUM = 217,
- G_FMAXIMUM = 218,
- G_FMINIMUMNUM = 219,
- G_FMAXIMUMNUM = 220,
- G_GET_FPENV = 221,
- G_SET_FPENV = 222,
- G_RESET_FPENV = 223,
- G_GET_FPMODE = 224,
- G_SET_FPMODE = 225,
- G_RESET_FPMODE = 226,
- G_GET_ROUNDING = 227,
- G_PTR_ADD = 228,
- G_PTRMASK = 229,
- G_SMIN = 230,
- G_SMAX = 231,
- G_UMIN = 232,
- G_UMAX = 233,
- G_ABS = 234,
- G_LROUND = 235,
- G_LLROUND = 236,
- G_BR = 237,
- G_BRJT = 238,
- G_VSCALE = 239,
- G_INSERT_SUBVECTOR = 240,
- G_EXTRACT_SUBVECTOR = 241,
- G_INSERT_VECTOR_ELT = 242,
- G_EXTRACT_VECTOR_ELT = 243,
- G_SHUFFLE_VECTOR = 244,
- G_SPLAT_VECTOR = 245,
- G_STEP_VECTOR = 246,
- G_VECTOR_COMPRESS = 247,
- G_CTTZ = 248,
- G_CTTZ_ZERO_UNDEF = 249,
- G_CTLZ = 250,
- G_CTLZ_ZERO_UNDEF = 251,
- G_CTPOP = 252,
- G_BSWAP = 253,
- G_BITREVERSE = 254,
- G_FCEIL = 255,
- G_FCOS = 256,
- G_FSIN = 257,
- G_FSINCOS = 258,
- G_FTAN = 259,
- G_FACOS = 260,
- G_FASIN = 261,
- G_FATAN = 262,
- G_FATAN2 = 263,
- G_FCOSH = 264,
- G_FSINH = 265,
- G_FTANH = 266,
- G_FSQRT = 267,
- G_FFLOOR = 268,
- G_FRINT = 269,
- G_FNEARBYINT = 270,
- G_ADDRSPACE_CAST = 271,
- G_BLOCK_ADDR = 272,
- G_JUMP_TABLE = 273,
- G_DYN_STACKALLOC = 274,
- G_STACKSAVE = 275,
- G_STACKRESTORE = 276,
- G_STRICT_FADD = 277,
- G_STRICT_FSUB = 278,
- G_STRICT_FMUL = 279,
- G_STRICT_FDIV = 280,
- G_STRICT_FREM = 281,
- G_STRICT_FMA = 282,
- G_STRICT_FSQRT = 283,
- G_STRICT_FLDEXP = 284,
- G_READ_REGISTER = 285,
- G_WRITE_REGISTER = 286,
- G_MEMCPY = 287,
- G_MEMCPY_INLINE = 288,
- G_MEMMOVE = 289,
- G_MEMSET = 290,
- G_BZERO = 291,
- G_TRAP = 292,
- G_DEBUGTRAP = 293,
- G_UBSANTRAP = 294,
- G_VECREDUCE_SEQ_FADD = 295,
- G_VECREDUCE_SEQ_FMUL = 296,
- G_VECREDUCE_FADD = 297,
- G_VECREDUCE_FMUL = 298,
- G_VECREDUCE_FMAX = 299,
- G_VECREDUCE_FMIN = 300,
- G_VECREDUCE_FMAXIMUM = 301,
- G_VECREDUCE_FMINIMUM = 302,
- G_VECREDUCE_ADD = 303,
- G_VECREDUCE_MUL = 304,
- G_VECREDUCE_AND = 305,
- G_VECREDUCE_OR = 306,
- G_VECREDUCE_XOR = 307,
- G_VECREDUCE_SMAX = 308,
- G_VECREDUCE_SMIN = 309,
- G_VECREDUCE_UMAX = 310,
- G_VECREDUCE_UMIN = 311,
- G_SBFX = 312,
- G_UBFX = 313,
- ABSMacro = 314,
- ADJCALLSTACKDOWN = 315,
- ADJCALLSTACKUP = 316,
- AND_V_D_PSEUDO = 317,
- AND_V_H_PSEUDO = 318,
- AND_V_W_PSEUDO = 319,
- ATOMIC_CMP_SWAP_I16 = 320,
- ATOMIC_CMP_SWAP_I16_POSTRA = 321,
- ATOMIC_CMP_SWAP_I32 = 322,
- ATOMIC_CMP_SWAP_I32_POSTRA = 323,
- ATOMIC_CMP_SWAP_I64 = 324,
- ATOMIC_CMP_SWAP_I64_POSTRA = 325,
- ATOMIC_CMP_SWAP_I8 = 326,
- ATOMIC_CMP_SWAP_I8_POSTRA = 327,
- ATOMIC_LOAD_ADD_I16 = 328,
- ATOMIC_LOAD_ADD_I16_POSTRA = 329,
- ATOMIC_LOAD_ADD_I32 = 330,
- ATOMIC_LOAD_ADD_I32_POSTRA = 331,
- ATOMIC_LOAD_ADD_I64 = 332,
- ATOMIC_LOAD_ADD_I64_POSTRA = 333,
- ATOMIC_LOAD_ADD_I8 = 334,
- ATOMIC_LOAD_ADD_I8_POSTRA = 335,
- ATOMIC_LOAD_AND_I16 = 336,
- ATOMIC_LOAD_AND_I16_POSTRA = 337,
- ATOMIC_LOAD_AND_I32 = 338,
- ATOMIC_LOAD_AND_I32_POSTRA = 339,
- ATOMIC_LOAD_AND_I64 = 340,
- ATOMIC_LOAD_AND_I64_POSTRA = 341,
- ATOMIC_LOAD_AND_I8 = 342,
- ATOMIC_LOAD_AND_I8_POSTRA = 343,
- ATOMIC_LOAD_MAX_I16 = 344,
- ATOMIC_LOAD_MAX_I16_POSTRA = 345,
- ATOMIC_LOAD_MAX_I32 = 346,
- ATOMIC_LOAD_MAX_I32_POSTRA = 347,
- ATOMIC_LOAD_MAX_I64 = 348,
- ATOMIC_LOAD_MAX_I64_POSTRA = 349,
- ATOMIC_LOAD_MAX_I8 = 350,
- ATOMIC_LOAD_MAX_I8_POSTRA = 351,
- ATOMIC_LOAD_MIN_I16 = 352,
- ATOMIC_LOAD_MIN_I16_POSTRA = 353,
- ATOMIC_LOAD_MIN_I32 = 354,
- ATOMIC_LOAD_MIN_I32_POSTRA = 355,
- ATOMIC_LOAD_MIN_I64 = 356,
- ATOMIC_LOAD_MIN_I64_POSTRA = 357,
- ATOMIC_LOAD_MIN_I8 = 358,
- ATOMIC_LOAD_MIN_I8_POSTRA = 359,
- ATOMIC_LOAD_NAND_I16 = 360,
- ATOMIC_LOAD_NAND_I16_POSTRA = 361,
- ATOMIC_LOAD_NAND_I32 = 362,
- ATOMIC_LOAD_NAND_I32_POSTRA = 363,
- ATOMIC_LOAD_NAND_I64 = 364,
- ATOMIC_LOAD_NAND_I64_POSTRA = 365,
- ATOMIC_LOAD_NAND_I8 = 366,
- ATOMIC_LOAD_NAND_I8_POSTRA = 367,
- ATOMIC_LOAD_OR_I16 = 368,
- ATOMIC_LOAD_OR_I16_POSTRA = 369,
- ATOMIC_LOAD_OR_I32 = 370,
- ATOMIC_LOAD_OR_I32_POSTRA = 371,
- ATOMIC_LOAD_OR_I64 = 372,
- ATOMIC_LOAD_OR_I64_POSTRA = 373,
- ATOMIC_LOAD_OR_I8 = 374,
- ATOMIC_LOAD_OR_I8_POSTRA = 375,
- ATOMIC_LOAD_SUB_I16 = 376,
- ATOMIC_LOAD_SUB_I16_POSTRA = 377,
- ATOMIC_LOAD_SUB_I32 = 378,
- ATOMIC_LOAD_SUB_I32_POSTRA = 379,
- ATOMIC_LOAD_SUB_I64 = 380,
- ATOMIC_LOAD_SUB_I64_POSTRA = 381,
- ATOMIC_LOAD_SUB_I8 = 382,
- ATOMIC_LOAD_SUB_I8_POSTRA = 383,
- ATOMIC_LOAD_UMAX_I16 = 384,
- ATOMIC_LOAD_UMAX_I16_POSTRA = 385,
- ATOMIC_LOAD_UMAX_I32 = 386,
- ATOMIC_LOAD_UMAX_I32_POSTRA = 387,
- ATOMIC_LOAD_UMAX_I64 = 388,
- ATOMIC_LOAD_UMAX_I64_POSTRA = 389,
- ATOMIC_LOAD_UMAX_I8 = 390,
- ATOMIC_LOAD_UMAX_I8_POSTRA = 391,
- ATOMIC_LOAD_UMIN_I16 = 392,
- ATOMIC_LOAD_UMIN_I16_POSTRA = 393,
- ATOMIC_LOAD_UMIN_I32 = 394,
- ATOMIC_LOAD_UMIN_I32_POSTRA = 395,
- ATOMIC_LOAD_UMIN_I64 = 396,
- ATOMIC_LOAD_UMIN_I64_POSTRA = 397,
- ATOMIC_LOAD_UMIN_I8 = 398,
- ATOMIC_LOAD_UMIN_I8_POSTRA = 399,
- ATOMIC_LOAD_XOR_I16 = 400,
- ATOMIC_LOAD_XOR_I16_POSTRA = 401,
- ATOMIC_LOAD_XOR_I32 = 402,
- ATOMIC_LOAD_XOR_I32_POSTRA = 403,
- ATOMIC_LOAD_XOR_I64 = 404,
- ATOMIC_LOAD_XOR_I64_POSTRA = 405,
- ATOMIC_LOAD_XOR_I8 = 406,
- ATOMIC_LOAD_XOR_I8_POSTRA = 407,
- ATOMIC_SWAP_I16 = 408,
- ATOMIC_SWAP_I16_POSTRA = 409,
- ATOMIC_SWAP_I32 = 410,
- ATOMIC_SWAP_I32_POSTRA = 411,
- ATOMIC_SWAP_I64 = 412,
- ATOMIC_SWAP_I64_POSTRA = 413,
- ATOMIC_SWAP_I8 = 414,
- ATOMIC_SWAP_I8_POSTRA = 415,
- B = 416,
- BAL_BR = 417,
- BAL_BR_MM = 418,
- BEQLImmMacro = 419,
- BGE = 420,
- BGEImmMacro = 421,
- BGEL = 422,
- BGELImmMacro = 423,
- BGEU = 424,
- BGEUImmMacro = 425,
- BGEUL = 426,
- BGEULImmMacro = 427,
- BGT = 428,
- BGTImmMacro = 429,
- BGTL = 430,
- BGTLImmMacro = 431,
- BGTU = 432,
- BGTUImmMacro = 433,
- BGTUL = 434,
- BGTULImmMacro = 435,
- BLE = 436,
- BLEImmMacro = 437,
- BLEL = 438,
- BLELImmMacro = 439,
- BLEU = 440,
- BLEUImmMacro = 441,
- BLEUL = 442,
- BLEULImmMacro = 443,
- BLT = 444,
- BLTImmMacro = 445,
- BLTL = 446,
- BLTLImmMacro = 447,
- BLTU = 448,
- BLTUImmMacro = 449,
- BLTUL = 450,
- BLTULImmMacro = 451,
- BNELImmMacro = 452,
- BPOSGE32_PSEUDO = 453,
- BSEL_D_PSEUDO = 454,
- BSEL_FD_PSEUDO = 455,
- BSEL_FW_PSEUDO = 456,
- BSEL_H_PSEUDO = 457,
- BSEL_W_PSEUDO = 458,
- B_MM = 459,
- B_MMR6_Pseudo = 460,
- B_MM_Pseudo = 461,
- BeqImm = 462,
- BneImm = 463,
- BteqzT8CmpX16 = 464,
- BteqzT8CmpiX16 = 465,
- BteqzT8SltX16 = 466,
- BteqzT8SltiX16 = 467,
- BteqzT8SltiuX16 = 468,
- BteqzT8SltuX16 = 469,
- BtnezT8CmpX16 = 470,
- BtnezT8CmpiX16 = 471,
- BtnezT8SltX16 = 472,
- BtnezT8SltiX16 = 473,
- BtnezT8SltiuX16 = 474,
- BtnezT8SltuX16 = 475,
- BuildPairF64 = 476,
- BuildPairF64_64 = 477,
- CFTC1 = 478,
- CONSTPOOL_ENTRY = 479,
- COPY_FD_PSEUDO = 480,
- COPY_FW_PSEUDO = 481,
- CTTC1 = 482,
- Constant32 = 483,
- DMULImmMacro = 484,
- DMULMacro = 485,
- DMULOMacro = 486,
- DMULOUMacro = 487,
- DROL = 488,
- DROLImm = 489,
- DROR = 490,
- DRORImm = 491,
- DSDivIMacro = 492,
- DSDivMacro = 493,
- DSRemIMacro = 494,
- DSRemMacro = 495,
- DUDivIMacro = 496,
- DUDivMacro = 497,
- DURemIMacro = 498,
- DURemMacro = 499,
- ERet = 500,
- ExtractElementF64 = 501,
- ExtractElementF64_64 = 502,
- FABS_D = 503,
- FABS_W = 504,
- FEXP2_D_1_PSEUDO = 505,
- FEXP2_W_1_PSEUDO = 506,
- FILL_FD_PSEUDO = 507,
- FILL_FW_PSEUDO = 508,
- GotPrologue16 = 509,
- INSERT_B_VIDX64_PSEUDO = 510,
- INSERT_B_VIDX_PSEUDO = 511,
- INSERT_D_VIDX64_PSEUDO = 512,
- INSERT_D_VIDX_PSEUDO = 513,
- INSERT_FD_PSEUDO = 514,
- INSERT_FD_VIDX64_PSEUDO = 515,
- INSERT_FD_VIDX_PSEUDO = 516,
- INSERT_FW_PSEUDO = 517,
- INSERT_FW_VIDX64_PSEUDO = 518,
- INSERT_FW_VIDX_PSEUDO = 519,
- INSERT_H_VIDX64_PSEUDO = 520,
- INSERT_H_VIDX_PSEUDO = 521,
- INSERT_W_VIDX64_PSEUDO = 522,
- INSERT_W_VIDX_PSEUDO = 523,
- JALR64Pseudo = 524,
- JALRHB64Pseudo = 525,
- JALRHBPseudo = 526,
- JALRPseudo = 527,
- JAL_MMR6 = 528,
- JalOneReg = 529,
- JalTwoReg = 530,
- LDMacro = 531,
- LDR_D = 532,
- LDR_W = 533,
- LD_F16 = 534,
- LOAD_ACC128 = 535,
- LOAD_ACC64 = 536,
- LOAD_ACC64DSP = 537,
- LOAD_CCOND_DSP = 538,
- LONG_BRANCH_ADDiu = 539,
- LONG_BRANCH_ADDiu2Op = 540,
- LONG_BRANCH_DADDiu = 541,
- LONG_BRANCH_DADDiu2Op = 542,
- LONG_BRANCH_LUi = 543,
- LONG_BRANCH_LUi2Op = 544,
- LONG_BRANCH_LUi2Op_64 = 545,
- LWM_MM = 546,
- LoadAddrImm32 = 547,
- LoadAddrImm64 = 548,
- LoadAddrReg32 = 549,
- LoadAddrReg64 = 550,
- LoadImm32 = 551,
- LoadImm64 = 552,
- LoadImmDoubleFGR = 553,
- LoadImmDoubleFGR_32 = 554,
- LoadImmDoubleGPR = 555,
- LoadImmSingleFGR = 556,
- LoadImmSingleGPR = 557,
- LwConstant32 = 558,
- MFTACX = 559,
- MFTC0 = 560,
- MFTC1 = 561,
- MFTDSP = 562,
- MFTGPR = 563,
- MFTHC1 = 564,
- MFTHI = 565,
- MFTLO = 566,
- MIPSeh_return32 = 567,
- MIPSeh_return64 = 568,
- MSA_FP_EXTEND_D_PSEUDO = 569,
- MSA_FP_EXTEND_W_PSEUDO = 570,
- MSA_FP_ROUND_D_PSEUDO = 571,
- MSA_FP_ROUND_W_PSEUDO = 572,
- MTTACX = 573,
- MTTC0 = 574,
- MTTC1 = 575,
- MTTDSP = 576,
- MTTGPR = 577,
- MTTHC1 = 578,
- MTTHI = 579,
- MTTLO = 580,
- MULImmMacro = 581,
- MULOMacro = 582,
- MULOUMacro = 583,
- MultRxRy16 = 584,
- MultRxRyRz16 = 585,
- MultuRxRy16 = 586,
- MultuRxRyRz16 = 587,
- NOP = 588,
- NORImm = 589,
- NORImm64 = 590,
- NOR_V_D_PSEUDO = 591,
- NOR_V_H_PSEUDO = 592,
- NOR_V_W_PSEUDO = 593,
- OR_V_D_PSEUDO = 594,
- OR_V_H_PSEUDO = 595,
- OR_V_W_PSEUDO = 596,
- PseudoCMPU_EQ_QB = 597,
- PseudoCMPU_LE_QB = 598,
- PseudoCMPU_LT_QB = 599,
- PseudoCMP_EQ_PH = 600,
- PseudoCMP_LE_PH = 601,
- PseudoCMP_LT_PH = 602,
- PseudoCVT_D32_W = 603,
- PseudoCVT_D64_L = 604,
- PseudoCVT_D64_W = 605,
- PseudoCVT_S_L = 606,
- PseudoCVT_S_W = 607,
- PseudoDMULT = 608,
- PseudoDMULTu = 609,
- PseudoDSDIV = 610,
- PseudoDUDIV = 611,
- PseudoD_SELECT_I = 612,
- PseudoD_SELECT_I64 = 613,
- PseudoIndirectBranch = 614,
- PseudoIndirectBranch64 = 615,
- PseudoIndirectBranch64R6 = 616,
- PseudoIndirectBranchR6 = 617,
- PseudoIndirectBranch_MM = 618,
- PseudoIndirectBranch_MMR6 = 619,
- PseudoIndirectHazardBranch = 620,
- PseudoIndirectHazardBranch64 = 621,
- PseudoIndrectHazardBranch64R6 = 622,
- PseudoIndrectHazardBranchR6 = 623,
- PseudoMADD = 624,
- PseudoMADDU = 625,
- PseudoMADDU_MM = 626,
- PseudoMADD_MM = 627,
- PseudoMFHI = 628,
- PseudoMFHI64 = 629,
- PseudoMFHI_MM = 630,
- PseudoMFLO = 631,
- PseudoMFLO64 = 632,
- PseudoMFLO_MM = 633,
- PseudoMSUB = 634,
- PseudoMSUBU = 635,
- PseudoMSUBU_MM = 636,
- PseudoMSUB_MM = 637,
- PseudoMTLOHI = 638,
- PseudoMTLOHI64 = 639,
- PseudoMTLOHI_DSP = 640,
- PseudoMTLOHI_MM = 641,
- PseudoMULT = 642,
- PseudoMULT_MM = 643,
- PseudoMULTu = 644,
- PseudoMULTu_MM = 645,
- PseudoPICK_PH = 646,
- PseudoPICK_QB = 647,
- PseudoReturn = 648,
- PseudoReturn64 = 649,
- PseudoSDIV = 650,
- PseudoSELECTFP_F_D32 = 651,
- PseudoSELECTFP_F_D64 = 652,
- PseudoSELECTFP_F_I = 653,
- PseudoSELECTFP_F_I64 = 654,
- PseudoSELECTFP_F_S = 655,
- PseudoSELECTFP_T_D32 = 656,
- PseudoSELECTFP_T_D64 = 657,
- PseudoSELECTFP_T_I = 658,
- PseudoSELECTFP_T_I64 = 659,
- PseudoSELECTFP_T_S = 660,
- PseudoSELECT_D32 = 661,
- PseudoSELECT_D64 = 662,
- PseudoSELECT_I = 663,
- PseudoSELECT_I64 = 664,
- PseudoSELECT_S = 665,
- PseudoTRUNC_W_D = 666,
- PseudoTRUNC_W_D32 = 667,
- PseudoTRUNC_W_S = 668,
- PseudoUDIV = 669,
- ROL = 670,
- ROLImm = 671,
- ROR = 672,
- RORImm = 673,
- RetRA = 674,
- RetRA16 = 675,
- SDC1_M1 = 676,
- SDIV_MM_Pseudo = 677,
- SDMacro = 678,
- SDivIMacro = 679,
- SDivMacro = 680,
- SEQIMacro = 681,
- SEQMacro = 682,
- SGE = 683,
- SGEImm = 684,
- SGEImm64 = 685,
- SGEU = 686,
- SGEUImm = 687,
- SGEUImm64 = 688,
- SGTImm = 689,
- SGTImm64 = 690,
- SGTUImm = 691,
- SGTUImm64 = 692,
- SLE = 693,
- SLEImm = 694,
- SLEImm64 = 695,
- SLEU = 696,
- SLEUImm = 697,
- SLEUImm64 = 698,
- SLTImm64 = 699,
- SLTUImm64 = 700,
- SNEIMacro = 701,
- SNEMacro = 702,
- SNZ_B_PSEUDO = 703,
- SNZ_D_PSEUDO = 704,
- SNZ_H_PSEUDO = 705,
- SNZ_V_PSEUDO = 706,
- SNZ_W_PSEUDO = 707,
- SRemIMacro = 708,
- SRemMacro = 709,
- STORE_ACC128 = 710,
- STORE_ACC64 = 711,
- STORE_ACC64DSP = 712,
- STORE_CCOND_DSP = 713,
- STR_D = 714,
- STR_W = 715,
- ST_F16 = 716,
- SWM_MM = 717,
- SZ_B_PSEUDO = 718,
- SZ_D_PSEUDO = 719,
- SZ_H_PSEUDO = 720,
- SZ_V_PSEUDO = 721,
- SZ_W_PSEUDO = 722,
- SaaAddr = 723,
- SaadAddr = 724,
- SelBeqZ = 725,
- SelBneZ = 726,
- SelTBteqZCmp = 727,
- SelTBteqZCmpi = 728,
- SelTBteqZSlt = 729,
- SelTBteqZSlti = 730,
- SelTBteqZSltiu = 731,
- SelTBteqZSltu = 732,
- SelTBtneZCmp = 733,
- SelTBtneZCmpi = 734,
- SelTBtneZSlt = 735,
- SelTBtneZSlti = 736,
- SelTBtneZSltiu = 737,
- SelTBtneZSltu = 738,
- SltCCRxRy16 = 739,
- SltiCCRxImmX16 = 740,
- SltiuCCRxImmX16 = 741,
- SltuCCRxRy16 = 742,
- SltuRxRyRz16 = 743,
- TAILCALL = 744,
- TAILCALL64R6REG = 745,
- TAILCALLHB64R6REG = 746,
- TAILCALLHBR6REG = 747,
- TAILCALLR6REG = 748,
- TAILCALLREG = 749,
- TAILCALLREG64 = 750,
- TAILCALLREGHB = 751,
- TAILCALLREGHB64 = 752,
- TAILCALLREG_MM = 753,
- TAILCALLREG_MMR6 = 754,
- TAILCALL_MM = 755,
- TAILCALL_MMR6 = 756,
- TRAP = 757,
- TRAP_MM = 758,
- UDIV_MM_Pseudo = 759,
- UDivIMacro = 760,
- UDivMacro = 761,
- URemIMacro = 762,
- URemMacro = 763,
- Ulh = 764,
- Ulhu = 765,
- Ulw = 766,
- Ush = 767,
- Usw = 768,
- XOR_V_D_PSEUDO = 769,
- XOR_V_H_PSEUDO = 770,
- XOR_V_W_PSEUDO = 771,
- ABSQ_S_PH = 772,
- ABSQ_S_PH_MM = 773,
- ABSQ_S_QB = 774,
- ABSQ_S_QB_MMR2 = 775,
- ABSQ_S_W = 776,
- ABSQ_S_W_MM = 777,
- ADD = 778,
- ADDIUPC = 779,
- ADDIUPC_MM = 780,
- ADDIUPC_MMR6 = 781,
- ADDIUR1SP_MM = 782,
- ADDIUR2_MM = 783,
- ADDIUS5_MM = 784,
- ADDIUSP_MM = 785,
- ADDIU_MMR6 = 786,
- ADDQH_PH = 787,
- ADDQH_PH_MMR2 = 788,
- ADDQH_R_PH = 789,
- ADDQH_R_PH_MMR2 = 790,
- ADDQH_R_W = 791,
- ADDQH_R_W_MMR2 = 792,
- ADDQH_W = 793,
- ADDQH_W_MMR2 = 794,
- ADDQ_PH = 795,
- ADDQ_PH_MM = 796,
- ADDQ_S_PH = 797,
- ADDQ_S_PH_MM = 798,
- ADDQ_S_W = 799,
- ADDQ_S_W_MM = 800,
- ADDR_PS64 = 801,
- ADDSC = 802,
- ADDSC_MM = 803,
- ADDS_A_B = 804,
- ADDS_A_D = 805,
- ADDS_A_H = 806,
- ADDS_A_W = 807,
- ADDS_S_B = 808,
- ADDS_S_D = 809,
- ADDS_S_H = 810,
- ADDS_S_W = 811,
- ADDS_U_B = 812,
- ADDS_U_D = 813,
- ADDS_U_H = 814,
- ADDS_U_W = 815,
- ADDU16_MM = 816,
- ADDU16_MMR6 = 817,
- ADDUH_QB = 818,
- ADDUH_QB_MMR2 = 819,
- ADDUH_R_QB = 820,
- ADDUH_R_QB_MMR2 = 821,
- ADDU_MMR6 = 822,
- ADDU_PH = 823,
- ADDU_PH_MMR2 = 824,
- ADDU_QB = 825,
- ADDU_QB_MM = 826,
- ADDU_S_PH = 827,
- ADDU_S_PH_MMR2 = 828,
- ADDU_S_QB = 829,
- ADDU_S_QB_MM = 830,
- ADDVI_B = 831,
- ADDVI_D = 832,
- ADDVI_H = 833,
- ADDVI_W = 834,
- ADDV_B = 835,
- ADDV_D = 836,
- ADDV_H = 837,
- ADDV_W = 838,
- ADDWC = 839,
- ADDWC_MM = 840,
- ADD_A_B = 841,
- ADD_A_D = 842,
- ADD_A_H = 843,
- ADD_A_W = 844,
- ADD_MM = 845,
- ADD_MMR6 = 846,
- ADDi = 847,
- ADDi_MM = 848,
- ADDiu = 849,
- ADDiu_MM = 850,
- ADDu = 851,
- ADDu_MM = 852,
- ALIGN = 853,
- ALIGN_MMR6 = 854,
- ALUIPC = 855,
- ALUIPC_MMR6 = 856,
- AND = 857,
- AND16_MM = 858,
- AND16_MMR6 = 859,
- AND64 = 860,
- ANDI16_MM = 861,
- ANDI16_MMR6 = 862,
- ANDI_B = 863,
- ANDI_MMR6 = 864,
- AND_MM = 865,
- AND_MMR6 = 866,
- AND_V = 867,
- ANDi = 868,
- ANDi64 = 869,
- ANDi_MM = 870,
- APPEND = 871,
- APPEND_MMR2 = 872,
- ASUB_S_B = 873,
- ASUB_S_D = 874,
- ASUB_S_H = 875,
- ASUB_S_W = 876,
- ASUB_U_B = 877,
- ASUB_U_D = 878,
- ASUB_U_H = 879,
- ASUB_U_W = 880,
- AUI = 881,
- AUIPC = 882,
- AUIPC_MMR6 = 883,
- AUI_MMR6 = 884,
- AVER_S_B = 885,
- AVER_S_D = 886,
- AVER_S_H = 887,
- AVER_S_W = 888,
- AVER_U_B = 889,
- AVER_U_D = 890,
- AVER_U_H = 891,
- AVER_U_W = 892,
- AVE_S_B = 893,
- AVE_S_D = 894,
- AVE_S_H = 895,
- AVE_S_W = 896,
- AVE_U_B = 897,
- AVE_U_D = 898,
- AVE_U_H = 899,
- AVE_U_W = 900,
- AddiuRxImmX16 = 901,
- AddiuRxPcImmX16 = 902,
- AddiuRxRxImm16 = 903,
- AddiuRxRxImmX16 = 904,
- AddiuRxRyOffMemX16 = 905,
- AddiuSpImm16 = 906,
- AddiuSpImmX16 = 907,
- AdduRxRyRz16 = 908,
- AndRxRxRy16 = 909,
- B16_MM = 910,
- BADDu = 911,
- BAL = 912,
- BALC = 913,
- BALC_MMR6 = 914,
- BALIGN = 915,
- BALIGN_MMR2 = 916,
- BBIT0 = 917,
- BBIT032 = 918,
- BBIT1 = 919,
- BBIT132 = 920,
- BC = 921,
- BC16_MMR6 = 922,
- BC1EQZ = 923,
- BC1EQZC_MMR6 = 924,
- BC1F = 925,
- BC1FL = 926,
- BC1F_MM = 927,
- BC1NEZ = 928,
- BC1NEZC_MMR6 = 929,
- BC1T = 930,
- BC1TL = 931,
- BC1T_MM = 932,
- BC2EQZ = 933,
- BC2EQZC_MMR6 = 934,
- BC2NEZ = 935,
- BC2NEZC_MMR6 = 936,
- BCLRI_B = 937,
- BCLRI_D = 938,
- BCLRI_H = 939,
- BCLRI_W = 940,
- BCLR_B = 941,
- BCLR_D = 942,
- BCLR_H = 943,
- BCLR_W = 944,
- BC_MMR6 = 945,
- BEQ = 946,
- BEQ64 = 947,
- BEQC = 948,
- BEQC64 = 949,
- BEQC_MMR6 = 950,
- BEQL = 951,
- BEQZ16_MM = 952,
- BEQZALC = 953,
- BEQZALC_MMR6 = 954,
- BEQZC = 955,
- BEQZC16_MMR6 = 956,
- BEQZC64 = 957,
- BEQZC_MM = 958,
- BEQZC_MMR6 = 959,
- BEQ_MM = 960,
- BGEC = 961,
- BGEC64 = 962,
- BGEC_MMR6 = 963,
- BGEUC = 964,
- BGEUC64 = 965,
- BGEUC_MMR6 = 966,
- BGEZ = 967,
- BGEZ64 = 968,
- BGEZAL = 969,
- BGEZALC = 970,
- BGEZALC_MMR6 = 971,
- BGEZALL = 972,
- BGEZALS_MM = 973,
- BGEZAL_MM = 974,
- BGEZC = 975,
- BGEZC64 = 976,
- BGEZC_MMR6 = 977,
- BGEZL = 978,
- BGEZ_MM = 979,
- BGTZ = 980,
- BGTZ64 = 981,
- BGTZALC = 982,
- BGTZALC_MMR6 = 983,
- BGTZC = 984,
- BGTZC64 = 985,
- BGTZC_MMR6 = 986,
- BGTZL = 987,
- BGTZ_MM = 988,
- BINSLI_B = 989,
- BINSLI_D = 990,
- BINSLI_H = 991,
- BINSLI_W = 992,
- BINSL_B = 993,
- BINSL_D = 994,
- BINSL_H = 995,
- BINSL_W = 996,
- BINSRI_B = 997,
- BINSRI_D = 998,
- BINSRI_H = 999,
- BINSRI_W = 1000,
- BINSR_B = 1001,
- BINSR_D = 1002,
- BINSR_H = 1003,
- BINSR_W = 1004,
- BITREV = 1005,
- BITREV_MM = 1006,
- BITSWAP = 1007,
- BITSWAP_MMR6 = 1008,
- BLEZ = 1009,
- BLEZ64 = 1010,
- BLEZALC = 1011,
- BLEZALC_MMR6 = 1012,
- BLEZC = 1013,
- BLEZC64 = 1014,
- BLEZC_MMR6 = 1015,
- BLEZL = 1016,
- BLEZ_MM = 1017,
- BLTC = 1018,
- BLTC64 = 1019,
- BLTC_MMR6 = 1020,
- BLTUC = 1021,
- BLTUC64 = 1022,
- BLTUC_MMR6 = 1023,
- BLTZ = 1024,
- BLTZ64 = 1025,
- BLTZAL = 1026,
- BLTZALC = 1027,
- BLTZALC_MMR6 = 1028,
- BLTZALL = 1029,
- BLTZALS_MM = 1030,
- BLTZAL_MM = 1031,
- BLTZC = 1032,
- BLTZC64 = 1033,
- BLTZC_MMR6 = 1034,
- BLTZL = 1035,
- BLTZ_MM = 1036,
- BMNZI_B = 1037,
- BMNZ_V = 1038,
- BMZI_B = 1039,
- BMZ_V = 1040,
- BNE = 1041,
- BNE64 = 1042,
- BNEC = 1043,
- BNEC64 = 1044,
- BNEC_MMR6 = 1045,
- BNEGI_B = 1046,
- BNEGI_D = 1047,
- BNEGI_H = 1048,
- BNEGI_W = 1049,
- BNEG_B = 1050,
- BNEG_D = 1051,
- BNEG_H = 1052,
- BNEG_W = 1053,
- BNEL = 1054,
- BNEZ16_MM = 1055,
- BNEZALC = 1056,
- BNEZALC_MMR6 = 1057,
- BNEZC = 1058,
- BNEZC16_MMR6 = 1059,
- BNEZC64 = 1060,
- BNEZC_MM = 1061,
- BNEZC_MMR6 = 1062,
- BNE_MM = 1063,
- BNVC = 1064,
- BNVC_MMR6 = 1065,
- BNZ_B = 1066,
- BNZ_D = 1067,
- BNZ_H = 1068,
- BNZ_V = 1069,
- BNZ_W = 1070,
- BOVC = 1071,
- BOVC_MMR6 = 1072,
- BPOSGE32 = 1073,
- BPOSGE32C_MMR3 = 1074,
- BPOSGE32_MM = 1075,
- BREAK = 1076,
- BREAK16_MM = 1077,
- BREAK16_MMR6 = 1078,
- BREAK_MM = 1079,
- BREAK_MMR6 = 1080,
- BSELI_B = 1081,
- BSEL_V = 1082,
- BSETI_B = 1083,
- BSETI_D = 1084,
- BSETI_H = 1085,
- BSETI_W = 1086,
- BSET_B = 1087,
- BSET_D = 1088,
- BSET_H = 1089,
- BSET_W = 1090,
- BZ_B = 1091,
- BZ_D = 1092,
- BZ_H = 1093,
- BZ_V = 1094,
- BZ_W = 1095,
- BeqzRxImm16 = 1096,
- BeqzRxImmX16 = 1097,
- Bimm16 = 1098,
- BimmX16 = 1099,
- BnezRxImm16 = 1100,
- BnezRxImmX16 = 1101,
- Break16 = 1102,
- Bteqz16 = 1103,
- BteqzX16 = 1104,
- Btnez16 = 1105,
- BtnezX16 = 1106,
- CACHE = 1107,
- CACHEE = 1108,
- CACHEE_MM = 1109,
- CACHE_MM = 1110,
- CACHE_MMR6 = 1111,
- CACHE_R6 = 1112,
- CEIL_L_D64 = 1113,
- CEIL_L_D_MMR6 = 1114,
- CEIL_L_S = 1115,
- CEIL_L_S_MMR6 = 1116,
- CEIL_W_D32 = 1117,
- CEIL_W_D64 = 1118,
- CEIL_W_D_MMR6 = 1119,
- CEIL_W_MM = 1120,
- CEIL_W_S = 1121,
- CEIL_W_S_MM = 1122,
- CEIL_W_S_MMR6 = 1123,
- CEQI_B = 1124,
- CEQI_D = 1125,
- CEQI_H = 1126,
- CEQI_W = 1127,
- CEQ_B = 1128,
- CEQ_D = 1129,
- CEQ_H = 1130,
- CEQ_W = 1131,
- CFC1 = 1132,
- CFC1_MM = 1133,
- CFC2_MM = 1134,
- CFCMSA = 1135,
- CINS = 1136,
- CINS32 = 1137,
- CINS64_32 = 1138,
- CINS_i32 = 1139,
- CLASS_D = 1140,
- CLASS_D_MMR6 = 1141,
- CLASS_S = 1142,
- CLASS_S_MMR6 = 1143,
- CLEI_S_B = 1144,
- CLEI_S_D = 1145,
- CLEI_S_H = 1146,
- CLEI_S_W = 1147,
- CLEI_U_B = 1148,
- CLEI_U_D = 1149,
- CLEI_U_H = 1150,
- CLEI_U_W = 1151,
- CLE_S_B = 1152,
- CLE_S_D = 1153,
- CLE_S_H = 1154,
- CLE_S_W = 1155,
- CLE_U_B = 1156,
- CLE_U_D = 1157,
- CLE_U_H = 1158,
- CLE_U_W = 1159,
- CLO = 1160,
- CLO_MM = 1161,
- CLO_MMR6 = 1162,
- CLO_R6 = 1163,
- CLTI_S_B = 1164,
- CLTI_S_D = 1165,
- CLTI_S_H = 1166,
- CLTI_S_W = 1167,
- CLTI_U_B = 1168,
- CLTI_U_D = 1169,
- CLTI_U_H = 1170,
- CLTI_U_W = 1171,
- CLT_S_B = 1172,
- CLT_S_D = 1173,
- CLT_S_H = 1174,
- CLT_S_W = 1175,
- CLT_U_B = 1176,
- CLT_U_D = 1177,
- CLT_U_H = 1178,
- CLT_U_W = 1179,
- CLZ = 1180,
- CLZ_MM = 1181,
- CLZ_MMR6 = 1182,
- CLZ_R6 = 1183,
- CMPGDU_EQ_QB = 1184,
- CMPGDU_EQ_QB_MMR2 = 1185,
- CMPGDU_LE_QB = 1186,
- CMPGDU_LE_QB_MMR2 = 1187,
- CMPGDU_LT_QB = 1188,
- CMPGDU_LT_QB_MMR2 = 1189,
- CMPGU_EQ_QB = 1190,
- CMPGU_EQ_QB_MM = 1191,
- CMPGU_LE_QB = 1192,
- CMPGU_LE_QB_MM = 1193,
- CMPGU_LT_QB = 1194,
- CMPGU_LT_QB_MM = 1195,
- CMPU_EQ_QB = 1196,
- CMPU_EQ_QB_MM = 1197,
- CMPU_LE_QB = 1198,
- CMPU_LE_QB_MM = 1199,
- CMPU_LT_QB = 1200,
- CMPU_LT_QB_MM = 1201,
- CMP_AF_D_MMR6 = 1202,
- CMP_AF_S_MMR6 = 1203,
- CMP_EQ_D = 1204,
- CMP_EQ_D_MMR6 = 1205,
- CMP_EQ_PH = 1206,
- CMP_EQ_PH_MM = 1207,
- CMP_EQ_S = 1208,
- CMP_EQ_S_MMR6 = 1209,
- CMP_F_D = 1210,
- CMP_F_S = 1211,
- CMP_LE_D = 1212,
- CMP_LE_D_MMR6 = 1213,
- CMP_LE_PH = 1214,
- CMP_LE_PH_MM = 1215,
- CMP_LE_S = 1216,
- CMP_LE_S_MMR6 = 1217,
- CMP_LT_D = 1218,
- CMP_LT_D_MMR6 = 1219,
- CMP_LT_PH = 1220,
- CMP_LT_PH_MM = 1221,
- CMP_LT_S = 1222,
- CMP_LT_S_MMR6 = 1223,
- CMP_SAF_D = 1224,
- CMP_SAF_D_MMR6 = 1225,
- CMP_SAF_S = 1226,
- CMP_SAF_S_MMR6 = 1227,
- CMP_SEQ_D = 1228,
- CMP_SEQ_D_MMR6 = 1229,
- CMP_SEQ_S = 1230,
- CMP_SEQ_S_MMR6 = 1231,
- CMP_SLE_D = 1232,
- CMP_SLE_D_MMR6 = 1233,
- CMP_SLE_S = 1234,
- CMP_SLE_S_MMR6 = 1235,
- CMP_SLT_D = 1236,
- CMP_SLT_D_MMR6 = 1237,
- CMP_SLT_S = 1238,
- CMP_SLT_S_MMR6 = 1239,
- CMP_SUEQ_D = 1240,
- CMP_SUEQ_D_MMR6 = 1241,
- CMP_SUEQ_S = 1242,
- CMP_SUEQ_S_MMR6 = 1243,
- CMP_SULE_D = 1244,
- CMP_SULE_D_MMR6 = 1245,
- CMP_SULE_S = 1246,
- CMP_SULE_S_MMR6 = 1247,
- CMP_SULT_D = 1248,
- CMP_SULT_D_MMR6 = 1249,
- CMP_SULT_S = 1250,
- CMP_SULT_S_MMR6 = 1251,
- CMP_SUN_D = 1252,
- CMP_SUN_D_MMR6 = 1253,
- CMP_SUN_S = 1254,
- CMP_SUN_S_MMR6 = 1255,
- CMP_UEQ_D = 1256,
- CMP_UEQ_D_MMR6 = 1257,
- CMP_UEQ_S = 1258,
- CMP_UEQ_S_MMR6 = 1259,
- CMP_ULE_D = 1260,
- CMP_ULE_D_MMR6 = 1261,
- CMP_ULE_S = 1262,
- CMP_ULE_S_MMR6 = 1263,
- CMP_ULT_D = 1264,
- CMP_ULT_D_MMR6 = 1265,
- CMP_ULT_S = 1266,
- CMP_ULT_S_MMR6 = 1267,
- CMP_UN_D = 1268,
- CMP_UN_D_MMR6 = 1269,
- CMP_UN_S = 1270,
- CMP_UN_S_MMR6 = 1271,
- COPY_S_B = 1272,
- COPY_S_D = 1273,
- COPY_S_H = 1274,
- COPY_S_W = 1275,
- COPY_U_B = 1276,
- COPY_U_H = 1277,
- COPY_U_W = 1278,
- CRC32B = 1279,
- CRC32CB = 1280,
- CRC32CD = 1281,
- CRC32CH = 1282,
- CRC32CW = 1283,
- CRC32D = 1284,
- CRC32H = 1285,
- CRC32W = 1286,
- CTC1 = 1287,
- CTC1_MM = 1288,
- CTC2_MM = 1289,
- CTCMSA = 1290,
- CVT_D32_S = 1291,
- CVT_D32_S_MM = 1292,
- CVT_D32_W = 1293,
- CVT_D32_W_MM = 1294,
- CVT_D64_L = 1295,
- CVT_D64_S = 1296,
- CVT_D64_S_MM = 1297,
- CVT_D64_W = 1298,
- CVT_D64_W_MM = 1299,
- CVT_D_L_MMR6 = 1300,
- CVT_L_D64 = 1301,
- CVT_L_D64_MM = 1302,
- CVT_L_D_MMR6 = 1303,
- CVT_L_S = 1304,
- CVT_L_S_MM = 1305,
- CVT_L_S_MMR6 = 1306,
- CVT_PS_PW64 = 1307,
- CVT_PS_S64 = 1308,
- CVT_PW_PS64 = 1309,
- CVT_S_D32 = 1310,
- CVT_S_D32_MM = 1311,
- CVT_S_D64 = 1312,
- CVT_S_D64_MM = 1313,
- CVT_S_L = 1314,
- CVT_S_L_MMR6 = 1315,
- CVT_S_PL64 = 1316,
- CVT_S_PU64 = 1317,
- CVT_S_W = 1318,
- CVT_S_W_MM = 1319,
- CVT_S_W_MMR6 = 1320,
- CVT_W_D32 = 1321,
- CVT_W_D32_MM = 1322,
- CVT_W_D64 = 1323,
- CVT_W_D64_MM = 1324,
- CVT_W_S = 1325,
- CVT_W_S_MM = 1326,
- CVT_W_S_MMR6 = 1327,
- C_EQ_D32 = 1328,
- C_EQ_D32_MM = 1329,
- C_EQ_D64 = 1330,
- C_EQ_D64_MM = 1331,
- C_EQ_S = 1332,
- C_EQ_S_MM = 1333,
- C_F_D32 = 1334,
- C_F_D32_MM = 1335,
- C_F_D64 = 1336,
- C_F_D64_MM = 1337,
- C_F_S = 1338,
- C_F_S_MM = 1339,
- C_LE_D32 = 1340,
- C_LE_D32_MM = 1341,
- C_LE_D64 = 1342,
- C_LE_D64_MM = 1343,
- C_LE_S = 1344,
- C_LE_S_MM = 1345,
- C_LT_D32 = 1346,
- C_LT_D32_MM = 1347,
- C_LT_D64 = 1348,
- C_LT_D64_MM = 1349,
- C_LT_S = 1350,
- C_LT_S_MM = 1351,
- C_NGE_D32 = 1352,
- C_NGE_D32_MM = 1353,
- C_NGE_D64 = 1354,
- C_NGE_D64_MM = 1355,
- C_NGE_S = 1356,
- C_NGE_S_MM = 1357,
- C_NGLE_D32 = 1358,
- C_NGLE_D32_MM = 1359,
- C_NGLE_D64 = 1360,
- C_NGLE_D64_MM = 1361,
- C_NGLE_S = 1362,
- C_NGLE_S_MM = 1363,
- C_NGL_D32 = 1364,
- C_NGL_D32_MM = 1365,
- C_NGL_D64 = 1366,
- C_NGL_D64_MM = 1367,
- C_NGL_S = 1368,
- C_NGL_S_MM = 1369,
- C_NGT_D32 = 1370,
- C_NGT_D32_MM = 1371,
- C_NGT_D64 = 1372,
- C_NGT_D64_MM = 1373,
- C_NGT_S = 1374,
- C_NGT_S_MM = 1375,
- C_OLE_D32 = 1376,
- C_OLE_D32_MM = 1377,
- C_OLE_D64 = 1378,
- C_OLE_D64_MM = 1379,
- C_OLE_S = 1380,
- C_OLE_S_MM = 1381,
- C_OLT_D32 = 1382,
- C_OLT_D32_MM = 1383,
- C_OLT_D64 = 1384,
- C_OLT_D64_MM = 1385,
- C_OLT_S = 1386,
- C_OLT_S_MM = 1387,
- C_SEQ_D32 = 1388,
- C_SEQ_D32_MM = 1389,
- C_SEQ_D64 = 1390,
- C_SEQ_D64_MM = 1391,
- C_SEQ_S = 1392,
- C_SEQ_S_MM = 1393,
- C_SF_D32 = 1394,
- C_SF_D32_MM = 1395,
- C_SF_D64 = 1396,
- C_SF_D64_MM = 1397,
- C_SF_S = 1398,
- C_SF_S_MM = 1399,
- C_UEQ_D32 = 1400,
- C_UEQ_D32_MM = 1401,
- C_UEQ_D64 = 1402,
- C_UEQ_D64_MM = 1403,
- C_UEQ_S = 1404,
- C_UEQ_S_MM = 1405,
- C_ULE_D32 = 1406,
- C_ULE_D32_MM = 1407,
- C_ULE_D64 = 1408,
- C_ULE_D64_MM = 1409,
- C_ULE_S = 1410,
- C_ULE_S_MM = 1411,
- C_ULT_D32 = 1412,
- C_ULT_D32_MM = 1413,
- C_ULT_D64 = 1414,
- C_ULT_D64_MM = 1415,
- C_ULT_S = 1416,
- C_ULT_S_MM = 1417,
- C_UN_D32 = 1418,
- C_UN_D32_MM = 1419,
- C_UN_D64 = 1420,
- C_UN_D64_MM = 1421,
- C_UN_S = 1422,
- C_UN_S_MM = 1423,
- CmpRxRy16 = 1424,
- CmpiRxImm16 = 1425,
- CmpiRxImmX16 = 1426,
- DADD = 1427,
- DADDi = 1428,
- DADDiu = 1429,
- DADDu = 1430,
- DAHI = 1431,
- DALIGN = 1432,
- DATI = 1433,
- DAUI = 1434,
- DBITSWAP = 1435,
- DCLO = 1436,
- DCLO_R6 = 1437,
- DCLZ = 1438,
- DCLZ_R6 = 1439,
- DDIV = 1440,
- DDIVU = 1441,
- DERET = 1442,
- DERET_MM = 1443,
- DERET_MMR6 = 1444,
- DEXT = 1445,
- DEXT64_32 = 1446,
- DEXTM = 1447,
- DEXTU = 1448,
- DI = 1449,
- DINS = 1450,
- DINSM = 1451,
- DINSU = 1452,
- DIV = 1453,
- DIVU = 1454,
- DIVU_MMR6 = 1455,
- DIV_MMR6 = 1456,
- DIV_S_B = 1457,
- DIV_S_D = 1458,
- DIV_S_H = 1459,
- DIV_S_W = 1460,
- DIV_U_B = 1461,
- DIV_U_D = 1462,
- DIV_U_H = 1463,
- DIV_U_W = 1464,
- DI_MM = 1465,
- DI_MMR6 = 1466,
- DLSA = 1467,
- DLSA_R6 = 1468,
- DMFC0 = 1469,
- DMFC1 = 1470,
- DMFC2 = 1471,
- DMFC2_OCTEON = 1472,
- DMFGC0 = 1473,
- DMOD = 1474,
- DMODU = 1475,
- DMT = 1476,
- DMTC0 = 1477,
- DMTC1 = 1478,
- DMTC2 = 1479,
- DMTC2_OCTEON = 1480,
- DMTGC0 = 1481,
- DMUH = 1482,
- DMUHU = 1483,
- DMUL = 1484,
- DMULT = 1485,
- DMULTu = 1486,
- DMULU = 1487,
- DMUL_R6 = 1488,
- DOTP_S_D = 1489,
- DOTP_S_H = 1490,
- DOTP_S_W = 1491,
- DOTP_U_D = 1492,
- DOTP_U_H = 1493,
- DOTP_U_W = 1494,
- DPADD_S_D = 1495,
- DPADD_S_H = 1496,
- DPADD_S_W = 1497,
- DPADD_U_D = 1498,
- DPADD_U_H = 1499,
- DPADD_U_W = 1500,
- DPAQX_SA_W_PH = 1501,
- DPAQX_SA_W_PH_MMR2 = 1502,
- DPAQX_S_W_PH = 1503,
- DPAQX_S_W_PH_MMR2 = 1504,
- DPAQ_SA_L_W = 1505,
- DPAQ_SA_L_W_MM = 1506,
- DPAQ_S_W_PH = 1507,
- DPAQ_S_W_PH_MM = 1508,
- DPAU_H_QBL = 1509,
- DPAU_H_QBL_MM = 1510,
- DPAU_H_QBR = 1511,
- DPAU_H_QBR_MM = 1512,
- DPAX_W_PH = 1513,
- DPAX_W_PH_MMR2 = 1514,
- DPA_W_PH = 1515,
- DPA_W_PH_MMR2 = 1516,
- DPOP = 1517,
- DPSQX_SA_W_PH = 1518,
- DPSQX_SA_W_PH_MMR2 = 1519,
- DPSQX_S_W_PH = 1520,
- DPSQX_S_W_PH_MMR2 = 1521,
- DPSQ_SA_L_W = 1522,
- DPSQ_SA_L_W_MM = 1523,
- DPSQ_S_W_PH = 1524,
- DPSQ_S_W_PH_MM = 1525,
- DPSUB_S_D = 1526,
- DPSUB_S_H = 1527,
- DPSUB_S_W = 1528,
- DPSUB_U_D = 1529,
- DPSUB_U_H = 1530,
- DPSUB_U_W = 1531,
- DPSU_H_QBL = 1532,
- DPSU_H_QBL_MM = 1533,
- DPSU_H_QBR = 1534,
- DPSU_H_QBR_MM = 1535,
- DPSX_W_PH = 1536,
- DPSX_W_PH_MMR2 = 1537,
- DPS_W_PH = 1538,
- DPS_W_PH_MMR2 = 1539,
- DROTR = 1540,
- DROTR32 = 1541,
- DROTRV = 1542,
- DSBH = 1543,
- DSDIV = 1544,
- DSHD = 1545,
- DSLL = 1546,
- DSLL32 = 1547,
- DSLL64_32 = 1548,
- DSLLV = 1549,
- DSRA = 1550,
- DSRA32 = 1551,
- DSRAV = 1552,
- DSRL = 1553,
- DSRL32 = 1554,
- DSRLV = 1555,
- DSUB = 1556,
- DSUBu = 1557,
- DUDIV = 1558,
- DVP = 1559,
- DVPE = 1560,
- DVP_MMR6 = 1561,
- DivRxRy16 = 1562,
- DivuRxRy16 = 1563,
- EHB = 1564,
- EHB_MM = 1565,
- EHB_MMR6 = 1566,
- EI = 1567,
- EI_MM = 1568,
- EI_MMR6 = 1569,
- EMT = 1570,
- ERET = 1571,
- ERETNC = 1572,
- ERETNC_MMR6 = 1573,
- ERET_MM = 1574,
- ERET_MMR6 = 1575,
- EVP = 1576,
- EVPE = 1577,
- EVP_MMR6 = 1578,
- EXT = 1579,
- EXTP = 1580,
- EXTPDP = 1581,
- EXTPDPV = 1582,
- EXTPDPV_MM = 1583,
- EXTPDP_MM = 1584,
- EXTPV = 1585,
- EXTPV_MM = 1586,
- EXTP_MM = 1587,
- EXTRV_RS_W = 1588,
- EXTRV_RS_W_MM = 1589,
- EXTRV_R_W = 1590,
- EXTRV_R_W_MM = 1591,
- EXTRV_S_H = 1592,
- EXTRV_S_H_MM = 1593,
- EXTRV_W = 1594,
- EXTRV_W_MM = 1595,
- EXTR_RS_W = 1596,
- EXTR_RS_W_MM = 1597,
- EXTR_R_W = 1598,
- EXTR_R_W_MM = 1599,
- EXTR_S_H = 1600,
- EXTR_S_H_MM = 1601,
- EXTR_W = 1602,
- EXTR_W_MM = 1603,
- EXTS = 1604,
- EXTS32 = 1605,
- EXT_MM = 1606,
- EXT_MMR6 = 1607,
- FABS_D32 = 1608,
- FABS_D32_MM = 1609,
- FABS_D64 = 1610,
- FABS_D64_MM = 1611,
- FABS_S = 1612,
- FABS_S_MM = 1613,
- FADD_D = 1614,
- FADD_D32 = 1615,
- FADD_D32_MM = 1616,
- FADD_D64 = 1617,
- FADD_D64_MM = 1618,
- FADD_PS64 = 1619,
- FADD_S = 1620,
- FADD_S_MM = 1621,
- FADD_S_MMR6 = 1622,
- FADD_W = 1623,
- FCAF_D = 1624,
- FCAF_W = 1625,
- FCEQ_D = 1626,
- FCEQ_W = 1627,
- FCLASS_D = 1628,
- FCLASS_W = 1629,
- FCLE_D = 1630,
- FCLE_W = 1631,
- FCLT_D = 1632,
- FCLT_W = 1633,
- FCMP_D32 = 1634,
- FCMP_D32_MM = 1635,
- FCMP_D64 = 1636,
- FCMP_S32 = 1637,
- FCMP_S32_MM = 1638,
- FCNE_D = 1639,
- FCNE_W = 1640,
- FCOR_D = 1641,
- FCOR_W = 1642,
- FCUEQ_D = 1643,
- FCUEQ_W = 1644,
- FCULE_D = 1645,
- FCULE_W = 1646,
- FCULT_D = 1647,
- FCULT_W = 1648,
- FCUNE_D = 1649,
- FCUNE_W = 1650,
- FCUN_D = 1651,
- FCUN_W = 1652,
- FDIV_D = 1653,
- FDIV_D32 = 1654,
- FDIV_D32_MM = 1655,
- FDIV_D64 = 1656,
- FDIV_D64_MM = 1657,
- FDIV_S = 1658,
- FDIV_S_MM = 1659,
- FDIV_S_MMR6 = 1660,
- FDIV_W = 1661,
- FEXDO_H = 1662,
- FEXDO_W = 1663,
- FEXP2_D = 1664,
- FEXP2_W = 1665,
- FEXUPL_D = 1666,
- FEXUPL_W = 1667,
- FEXUPR_D = 1668,
- FEXUPR_W = 1669,
- FFINT_S_D = 1670,
- FFINT_S_W = 1671,
- FFINT_U_D = 1672,
- FFINT_U_W = 1673,
- FFQL_D = 1674,
- FFQL_W = 1675,
- FFQR_D = 1676,
- FFQR_W = 1677,
- FILL_B = 1678,
- FILL_D = 1679,
- FILL_H = 1680,
- FILL_W = 1681,
- FLOG2_D = 1682,
- FLOG2_W = 1683,
- FLOOR_L_D64 = 1684,
- FLOOR_L_D_MMR6 = 1685,
- FLOOR_L_S = 1686,
- FLOOR_L_S_MMR6 = 1687,
- FLOOR_W_D32 = 1688,
- FLOOR_W_D64 = 1689,
- FLOOR_W_D_MMR6 = 1690,
- FLOOR_W_MM = 1691,
- FLOOR_W_S = 1692,
- FLOOR_W_S_MM = 1693,
- FLOOR_W_S_MMR6 = 1694,
- FMADD_D = 1695,
- FMADD_W = 1696,
- FMAX_A_D = 1697,
- FMAX_A_W = 1698,
- FMAX_D = 1699,
- FMAX_W = 1700,
- FMIN_A_D = 1701,
- FMIN_A_W = 1702,
- FMIN_D = 1703,
- FMIN_W = 1704,
- FMOV_D32 = 1705,
- FMOV_D32_MM = 1706,
- FMOV_D64 = 1707,
- FMOV_D64_MM = 1708,
- FMOV_D_MMR6 = 1709,
- FMOV_S = 1710,
- FMOV_S_MM = 1711,
- FMOV_S_MMR6 = 1712,
- FMSUB_D = 1713,
- FMSUB_W = 1714,
- FMUL_D = 1715,
- FMUL_D32 = 1716,
- FMUL_D32_MM = 1717,
- FMUL_D64 = 1718,
- FMUL_D64_MM = 1719,
- FMUL_PS64 = 1720,
- FMUL_S = 1721,
- FMUL_S_MM = 1722,
- FMUL_S_MMR6 = 1723,
- FMUL_W = 1724,
- FNEG_D32 = 1725,
- FNEG_D32_MM = 1726,
- FNEG_D64 = 1727,
- FNEG_D64_MM = 1728,
- FNEG_S = 1729,
- FNEG_S_MM = 1730,
- FNEG_S_MMR6 = 1731,
- FORK = 1732,
- FRCP_D = 1733,
- FRCP_W = 1734,
- FRINT_D = 1735,
- FRINT_W = 1736,
- FRSQRT_D = 1737,
- FRSQRT_W = 1738,
- FSAF_D = 1739,
- FSAF_W = 1740,
- FSEQ_D = 1741,
- FSEQ_W = 1742,
- FSLE_D = 1743,
- FSLE_W = 1744,
- FSLT_D = 1745,
- FSLT_W = 1746,
- FSNE_D = 1747,
- FSNE_W = 1748,
- FSOR_D = 1749,
- FSOR_W = 1750,
- FSQRT_D = 1751,
- FSQRT_D32 = 1752,
- FSQRT_D32_MM = 1753,
- FSQRT_D64 = 1754,
- FSQRT_D64_MM = 1755,
- FSQRT_S = 1756,
- FSQRT_S_MM = 1757,
- FSQRT_W = 1758,
- FSUB_D = 1759,
- FSUB_D32 = 1760,
- FSUB_D32_MM = 1761,
- FSUB_D64 = 1762,
- FSUB_D64_MM = 1763,
- FSUB_PS64 = 1764,
- FSUB_S = 1765,
- FSUB_S_MM = 1766,
- FSUB_S_MMR6 = 1767,
- FSUB_W = 1768,
- FSUEQ_D = 1769,
- FSUEQ_W = 1770,
- FSULE_D = 1771,
- FSULE_W = 1772,
- FSULT_D = 1773,
- FSULT_W = 1774,
- FSUNE_D = 1775,
- FSUNE_W = 1776,
- FSUN_D = 1777,
- FSUN_W = 1778,
- FTINT_S_D = 1779,
- FTINT_S_W = 1780,
- FTINT_U_D = 1781,
- FTINT_U_W = 1782,
- FTQ_H = 1783,
- FTQ_W = 1784,
- FTRUNC_S_D = 1785,
- FTRUNC_S_W = 1786,
- FTRUNC_U_D = 1787,
- FTRUNC_U_W = 1788,
- GINVI = 1789,
- GINVI_MMR6 = 1790,
- GINVT = 1791,
- GINVT_MMR6 = 1792,
- HADD_S_D = 1793,
- HADD_S_H = 1794,
- HADD_S_W = 1795,
- HADD_U_D = 1796,
- HADD_U_H = 1797,
- HADD_U_W = 1798,
- HSUB_S_D = 1799,
- HSUB_S_H = 1800,
- HSUB_S_W = 1801,
- HSUB_U_D = 1802,
- HSUB_U_H = 1803,
- HSUB_U_W = 1804,
- HYPCALL = 1805,
- HYPCALL_MM = 1806,
- ILVEV_B = 1807,
- ILVEV_D = 1808,
- ILVEV_H = 1809,
- ILVEV_W = 1810,
- ILVL_B = 1811,
- ILVL_D = 1812,
- ILVL_H = 1813,
- ILVL_W = 1814,
- ILVOD_B = 1815,
- ILVOD_D = 1816,
- ILVOD_H = 1817,
- ILVOD_W = 1818,
- ILVR_B = 1819,
- ILVR_D = 1820,
- ILVR_H = 1821,
- ILVR_W = 1822,
- INS = 1823,
- INSERT_B = 1824,
- INSERT_D = 1825,
- INSERT_H = 1826,
- INSERT_W = 1827,
- INSV = 1828,
- INSVE_B = 1829,
- INSVE_D = 1830,
- INSVE_H = 1831,
- INSVE_W = 1832,
- INSV_MM = 1833,
- INS_MM = 1834,
- INS_MMR6 = 1835,
- J = 1836,
- JAL = 1837,
- JALR = 1838,
- JALR16_MM = 1839,
- JALR64 = 1840,
- JALRC16_MMR6 = 1841,
- JALRC_HB_MMR6 = 1842,
- JALRC_MMR6 = 1843,
- JALRS16_MM = 1844,
- JALRS_MM = 1845,
- JALR_HB = 1846,
- JALR_HB64 = 1847,
- JALR_MM = 1848,
- JALS_MM = 1849,
- JALX = 1850,
- JALX_MM = 1851,
- JAL_MM = 1852,
- JIALC = 1853,
- JIALC64 = 1854,
- JIALC_MMR6 = 1855,
- JIC = 1856,
- JIC64 = 1857,
- JIC_MMR6 = 1858,
- JR = 1859,
- JR16_MM = 1860,
- JR64 = 1861,
- JRADDIUSP = 1862,
- JRC16_MM = 1863,
- JRC16_MMR6 = 1864,
- JRCADDIUSP_MMR6 = 1865,
- JR_HB = 1866,
- JR_HB64 = 1867,
- JR_HB64_R6 = 1868,
- JR_HB_R6 = 1869,
- JR_MM = 1870,
- J_MM = 1871,
- Jal16 = 1872,
- JalB16 = 1873,
- JrRa16 = 1874,
- JrcRa16 = 1875,
- JrcRx16 = 1876,
- JumpLinkReg16 = 1877,
- LB = 1878,
- LB64 = 1879,
- LBE = 1880,
- LBE_MM = 1881,
- LBU16_MM = 1882,
- LBUX = 1883,
- LBUX_MM = 1884,
- LBU_MMR6 = 1885,
- LB_MM = 1886,
- LB_MMR6 = 1887,
- LBu = 1888,
- LBu64 = 1889,
- LBuE = 1890,
- LBuE_MM = 1891,
- LBu_MM = 1892,
- LD = 1893,
- LDC1 = 1894,
- LDC164 = 1895,
- LDC1_D64_MMR6 = 1896,
- LDC1_MM_D32 = 1897,
- LDC1_MM_D64 = 1898,
- LDC2 = 1899,
- LDC2_MMR6 = 1900,
- LDC2_R6 = 1901,
- LDC3 = 1902,
- LDI_B = 1903,
- LDI_D = 1904,
- LDI_H = 1905,
- LDI_W = 1906,
- LDL = 1907,
- LDPC = 1908,
- LDR = 1909,
- LDXC1 = 1910,
- LDXC164 = 1911,
- LD_B = 1912,
- LD_D = 1913,
- LD_H = 1914,
- LD_W = 1915,
- LEA_ADDiu = 1916,
- LEA_ADDiu64 = 1917,
- LEA_ADDiu_MM = 1918,
- LH = 1919,
- LH64 = 1920,
- LHE = 1921,
- LHE_MM = 1922,
- LHU16_MM = 1923,
- LHX = 1924,
- LHX_MM = 1925,
- LH_MM = 1926,
- LHu = 1927,
- LHu64 = 1928,
- LHuE = 1929,
- LHuE_MM = 1930,
- LHu_MM = 1931,
- LI16_MM = 1932,
- LI16_MMR6 = 1933,
- LL = 1934,
- LL64 = 1935,
- LL64_R6 = 1936,
- LLD = 1937,
- LLD_R6 = 1938,
- LLE = 1939,
- LLE_MM = 1940,
- LL_MM = 1941,
- LL_MMR6 = 1942,
- LL_R6 = 1943,
- LSA = 1944,
- LSA_MMR6 = 1945,
- LSA_R6 = 1946,
- LUI_MMR6 = 1947,
- LUXC1 = 1948,
- LUXC164 = 1949,
- LUXC1_MM = 1950,
- LUi = 1951,
- LUi64 = 1952,
- LUi_MM = 1953,
- LW = 1954,
- LW16_MM = 1955,
- LW64 = 1956,
- LWC1 = 1957,
- LWC1_MM = 1958,
- LWC2 = 1959,
- LWC2_MMR6 = 1960,
- LWC2_R6 = 1961,
- LWC3 = 1962,
- LWDSP = 1963,
- LWDSP_MM = 1964,
- LWE = 1965,
- LWE_MM = 1966,
- LWGP_MM = 1967,
- LWL = 1968,
- LWL64 = 1969,
- LWLE = 1970,
- LWLE_MM = 1971,
- LWL_MM = 1972,
- LWM16_MM = 1973,
- LWM16_MMR6 = 1974,
- LWM32_MM = 1975,
- LWPC = 1976,
- LWPC_MMR6 = 1977,
- LWP_MM = 1978,
- LWR = 1979,
- LWR64 = 1980,
- LWRE = 1981,
- LWRE_MM = 1982,
- LWR_MM = 1983,
- LWSP_MM = 1984,
- LWUPC = 1985,
- LWU_MM = 1986,
- LWX = 1987,
- LWXC1 = 1988,
- LWXC1_MM = 1989,
- LWXS_MM = 1990,
- LWX_MM = 1991,
- LW_MM = 1992,
- LW_MMR6 = 1993,
- LWu = 1994,
- LbRxRyOffMemX16 = 1995,
- LbuRxRyOffMemX16 = 1996,
- LhRxRyOffMemX16 = 1997,
- LhuRxRyOffMemX16 = 1998,
- LiRxImm16 = 1999,
- LiRxImmAlignX16 = 2000,
- LiRxImmX16 = 2001,
- LwRxPcTcp16 = 2002,
- LwRxPcTcpX16 = 2003,
- LwRxRyOffMemX16 = 2004,
- LwRxSpImmX16 = 2005,
- MADD = 2006,
- MADDF_D = 2007,
- MADDF_D_MMR6 = 2008,
- MADDF_S = 2009,
- MADDF_S_MMR6 = 2010,
- MADDR_Q_H = 2011,
- MADDR_Q_W = 2012,
- MADDU = 2013,
- MADDU_DSP = 2014,
- MADDU_DSP_MM = 2015,
- MADDU_MM = 2016,
- MADDV_B = 2017,
- MADDV_D = 2018,
- MADDV_H = 2019,
- MADDV_W = 2020,
- MADD_D32 = 2021,
- MADD_D32_MM = 2022,
- MADD_D64 = 2023,
- MADD_DSP = 2024,
- MADD_DSP_MM = 2025,
- MADD_MM = 2026,
- MADD_Q_H = 2027,
- MADD_Q_W = 2028,
- MADD_S = 2029,
- MADD_S_MM = 2030,
- MAQ_SA_W_PHL = 2031,
- MAQ_SA_W_PHL_MM = 2032,
- MAQ_SA_W_PHR = 2033,
- MAQ_SA_W_PHR_MM = 2034,
- MAQ_S_W_PHL = 2035,
- MAQ_S_W_PHL_MM = 2036,
- MAQ_S_W_PHR = 2037,
- MAQ_S_W_PHR_MM = 2038,
- MAXA_D = 2039,
- MAXA_D_MMR6 = 2040,
- MAXA_S = 2041,
- MAXA_S_MMR6 = 2042,
- MAXI_S_B = 2043,
- MAXI_S_D = 2044,
- MAXI_S_H = 2045,
- MAXI_S_W = 2046,
- MAXI_U_B = 2047,
- MAXI_U_D = 2048,
- MAXI_U_H = 2049,
- MAXI_U_W = 2050,
- MAX_A_B = 2051,
- MAX_A_D = 2052,
- MAX_A_H = 2053,
- MAX_A_W = 2054,
- MAX_D = 2055,
- MAX_D_MMR6 = 2056,
- MAX_S = 2057,
- MAX_S_B = 2058,
- MAX_S_D = 2059,
- MAX_S_H = 2060,
- MAX_S_MMR6 = 2061,
- MAX_S_W = 2062,
- MAX_U_B = 2063,
- MAX_U_D = 2064,
- MAX_U_H = 2065,
- MAX_U_W = 2066,
- MFC0 = 2067,
- MFC0_MMR6 = 2068,
- MFC1 = 2069,
- MFC1_D64 = 2070,
- MFC1_MM = 2071,
- MFC1_MMR6 = 2072,
- MFC2 = 2073,
- MFC2_MMR6 = 2074,
- MFGC0 = 2075,
- MFGC0_MM = 2076,
- MFHC0_MMR6 = 2077,
- MFHC1_D32 = 2078,
- MFHC1_D32_MM = 2079,
- MFHC1_D64 = 2080,
- MFHC1_D64_MM = 2081,
- MFHC2_MMR6 = 2082,
- MFHGC0 = 2083,
- MFHGC0_MM = 2084,
- MFHI = 2085,
- MFHI16_MM = 2086,
- MFHI64 = 2087,
- MFHI_DSP = 2088,
- MFHI_DSP_MM = 2089,
- MFHI_MM = 2090,
- MFLO = 2091,
- MFLO16_MM = 2092,
- MFLO64 = 2093,
- MFLO_DSP = 2094,
- MFLO_DSP_MM = 2095,
- MFLO_MM = 2096,
- MFTR = 2097,
- MINA_D = 2098,
- MINA_D_MMR6 = 2099,
- MINA_S = 2100,
- MINA_S_MMR6 = 2101,
- MINI_S_B = 2102,
- MINI_S_D = 2103,
- MINI_S_H = 2104,
- MINI_S_W = 2105,
- MINI_U_B = 2106,
- MINI_U_D = 2107,
- MINI_U_H = 2108,
- MINI_U_W = 2109,
- MIN_A_B = 2110,
- MIN_A_D = 2111,
- MIN_A_H = 2112,
- MIN_A_W = 2113,
- MIN_D = 2114,
- MIN_D_MMR6 = 2115,
- MIN_S = 2116,
- MIN_S_B = 2117,
- MIN_S_D = 2118,
- MIN_S_H = 2119,
- MIN_S_MMR6 = 2120,
- MIN_S_W = 2121,
- MIN_U_B = 2122,
- MIN_U_D = 2123,
- MIN_U_H = 2124,
- MIN_U_W = 2125,
- MOD = 2126,
- MODSUB = 2127,
- MODSUB_MM = 2128,
- MODU = 2129,
- MODU_MMR6 = 2130,
- MOD_MMR6 = 2131,
- MOD_S_B = 2132,
- MOD_S_D = 2133,
- MOD_S_H = 2134,
- MOD_S_W = 2135,
- MOD_U_B = 2136,
- MOD_U_D = 2137,
- MOD_U_H = 2138,
- MOD_U_W = 2139,
- MOVE16_MM = 2140,
- MOVE16_MMR6 = 2141,
- MOVEP_MM = 2142,
- MOVEP_MMR6 = 2143,
- MOVE_V = 2144,
- MOVF_D32 = 2145,
- MOVF_D32_MM = 2146,
- MOVF_D64 = 2147,
- MOVF_I = 2148,
- MOVF_I64 = 2149,
- MOVF_I_MM = 2150,
- MOVF_S = 2151,
- MOVF_S_MM = 2152,
- MOVN_I64_D64 = 2153,
- MOVN_I64_I = 2154,
- MOVN_I64_I64 = 2155,
- MOVN_I64_S = 2156,
- MOVN_I_D32 = 2157,
- MOVN_I_D32_MM = 2158,
- MOVN_I_D64 = 2159,
- MOVN_I_I = 2160,
- MOVN_I_I64 = 2161,
- MOVN_I_MM = 2162,
- MOVN_I_S = 2163,
- MOVN_I_S_MM = 2164,
- MOVT_D32 = 2165,
- MOVT_D32_MM = 2166,
- MOVT_D64 = 2167,
- MOVT_I = 2168,
- MOVT_I64 = 2169,
- MOVT_I_MM = 2170,
- MOVT_S = 2171,
- MOVT_S_MM = 2172,
- MOVZ_I64_D64 = 2173,
- MOVZ_I64_I = 2174,
- MOVZ_I64_I64 = 2175,
- MOVZ_I64_S = 2176,
- MOVZ_I_D32 = 2177,
- MOVZ_I_D32_MM = 2178,
- MOVZ_I_D64 = 2179,
- MOVZ_I_I = 2180,
- MOVZ_I_I64 = 2181,
- MOVZ_I_MM = 2182,
- MOVZ_I_S = 2183,
- MOVZ_I_S_MM = 2184,
- MSUB = 2185,
- MSUBF_D = 2186,
- MSUBF_D_MMR6 = 2187,
- MSUBF_S = 2188,
- MSUBF_S_MMR6 = 2189,
- MSUBR_Q_H = 2190,
- MSUBR_Q_W = 2191,
- MSUBU = 2192,
- MSUBU_DSP = 2193,
- MSUBU_DSP_MM = 2194,
- MSUBU_MM = 2195,
- MSUBV_B = 2196,
- MSUBV_D = 2197,
- MSUBV_H = 2198,
- MSUBV_W = 2199,
- MSUB_D32 = 2200,
- MSUB_D32_MM = 2201,
- MSUB_D64 = 2202,
- MSUB_DSP = 2203,
- MSUB_DSP_MM = 2204,
- MSUB_MM = 2205,
- MSUB_Q_H = 2206,
- MSUB_Q_W = 2207,
- MSUB_S = 2208,
- MSUB_S_MM = 2209,
- MTC0 = 2210,
- MTC0_MMR6 = 2211,
- MTC1 = 2212,
- MTC1_D64 = 2213,
- MTC1_D64_MM = 2214,
- MTC1_MM = 2215,
- MTC1_MMR6 = 2216,
- MTC2 = 2217,
- MTC2_MMR6 = 2218,
- MTGC0 = 2219,
- MTGC0_MM = 2220,
- MTHC0_MMR6 = 2221,
- MTHC1_D32 = 2222,
- MTHC1_D32_MM = 2223,
- MTHC1_D64 = 2224,
- MTHC1_D64_MM = 2225,
- MTHC2_MMR6 = 2226,
- MTHGC0 = 2227,
- MTHGC0_MM = 2228,
- MTHI = 2229,
- MTHI64 = 2230,
- MTHI_DSP = 2231,
- MTHI_DSP_MM = 2232,
- MTHI_MM = 2233,
- MTHLIP = 2234,
- MTHLIP_MM = 2235,
- MTLO = 2236,
- MTLO64 = 2237,
- MTLO_DSP = 2238,
- MTLO_DSP_MM = 2239,
- MTLO_MM = 2240,
- MTM0 = 2241,
- MTM1 = 2242,
- MTM2 = 2243,
- MTP0 = 2244,
- MTP1 = 2245,
- MTP2 = 2246,
- MTTR = 2247,
- MUH = 2248,
- MUHU = 2249,
- MUHU_MMR6 = 2250,
- MUH_MMR6 = 2251,
- MUL = 2252,
- MULEQ_S_W_PHL = 2253,
- MULEQ_S_W_PHL_MM = 2254,
- MULEQ_S_W_PHR = 2255,
- MULEQ_S_W_PHR_MM = 2256,
- MULEU_S_PH_QBL = 2257,
- MULEU_S_PH_QBL_MM = 2258,
- MULEU_S_PH_QBR = 2259,
- MULEU_S_PH_QBR_MM = 2260,
- MULQ_RS_PH = 2261,
- MULQ_RS_PH_MM = 2262,
- MULQ_RS_W = 2263,
- MULQ_RS_W_MMR2 = 2264,
- MULQ_S_PH = 2265,
- MULQ_S_PH_MMR2 = 2266,
- MULQ_S_W = 2267,
- MULQ_S_W_MMR2 = 2268,
- MULR_PS64 = 2269,
- MULR_Q_H = 2270,
- MULR_Q_W = 2271,
- MULSAQ_S_W_PH = 2272,
- MULSAQ_S_W_PH_MM = 2273,
- MULSA_W_PH = 2274,
- MULSA_W_PH_MMR2 = 2275,
- MULT = 2276,
- MULTU_DSP = 2277,
- MULTU_DSP_MM = 2278,
- MULT_DSP = 2279,
- MULT_DSP_MM = 2280,
- MULT_MM = 2281,
- MULTu = 2282,
- MULTu_MM = 2283,
- MULU = 2284,
- MULU_MMR6 = 2285,
- MULV_B = 2286,
- MULV_D = 2287,
- MULV_H = 2288,
- MULV_W = 2289,
- MUL_MM = 2290,
- MUL_MMR6 = 2291,
- MUL_PH = 2292,
- MUL_PH_MMR2 = 2293,
- MUL_Q_H = 2294,
- MUL_Q_W = 2295,
- MUL_R6 = 2296,
- MUL_S_PH = 2297,
- MUL_S_PH_MMR2 = 2298,
- Mfhi16 = 2299,
- Mflo16 = 2300,
- Move32R16 = 2301,
- MoveR3216 = 2302,
- NAL = 2303,
- NLOC_B = 2304,
- NLOC_D = 2305,
- NLOC_H = 2306,
- NLOC_W = 2307,
- NLZC_B = 2308,
- NLZC_D = 2309,
- NLZC_H = 2310,
- NLZC_W = 2311,
- NMADD_D32 = 2312,
- NMADD_D32_MM = 2313,
- NMADD_D64 = 2314,
- NMADD_S = 2315,
- NMADD_S_MM = 2316,
- NMSUB_D32 = 2317,
- NMSUB_D32_MM = 2318,
- NMSUB_D64 = 2319,
- NMSUB_S = 2320,
- NMSUB_S_MM = 2321,
- NOR = 2322,
- NOR64 = 2323,
- NORI_B = 2324,
- NOR_MM = 2325,
- NOR_MMR6 = 2326,
- NOR_V = 2327,
- NOT16_MM = 2328,
- NOT16_MMR6 = 2329,
- NegRxRy16 = 2330,
- NotRxRy16 = 2331,
- OR = 2332,
- OR16_MM = 2333,
- OR16_MMR6 = 2334,
- OR64 = 2335,
- ORI_B = 2336,
- ORI_MMR6 = 2337,
- OR_MM = 2338,
- OR_MMR6 = 2339,
- OR_V = 2340,
- ORi = 2341,
- ORi64 = 2342,
- ORi_MM = 2343,
- OrRxRxRy16 = 2344,
- PACKRL_PH = 2345,
- PACKRL_PH_MM = 2346,
- PAUSE = 2347,
- PAUSE_MM = 2348,
- PAUSE_MMR6 = 2349,
- PCKEV_B = 2350,
- PCKEV_D = 2351,
- PCKEV_H = 2352,
- PCKEV_W = 2353,
- PCKOD_B = 2354,
- PCKOD_D = 2355,
- PCKOD_H = 2356,
- PCKOD_W = 2357,
- PCNT_B = 2358,
- PCNT_D = 2359,
- PCNT_H = 2360,
- PCNT_W = 2361,
- PICK_PH = 2362,
- PICK_PH_MM = 2363,
- PICK_QB = 2364,
- PICK_QB_MM = 2365,
- PLL_PS64 = 2366,
- PLU_PS64 = 2367,
- POP = 2368,
- PRECEQU_PH_QBL = 2369,
- PRECEQU_PH_QBLA = 2370,
- PRECEQU_PH_QBLA_MM = 2371,
- PRECEQU_PH_QBL_MM = 2372,
- PRECEQU_PH_QBR = 2373,
- PRECEQU_PH_QBRA = 2374,
- PRECEQU_PH_QBRA_MM = 2375,
- PRECEQU_PH_QBR_MM = 2376,
- PRECEQ_W_PHL = 2377,
- PRECEQ_W_PHL_MM = 2378,
- PRECEQ_W_PHR = 2379,
- PRECEQ_W_PHR_MM = 2380,
- PRECEU_PH_QBL = 2381,
- PRECEU_PH_QBLA = 2382,
- PRECEU_PH_QBLA_MM = 2383,
- PRECEU_PH_QBL_MM = 2384,
- PRECEU_PH_QBR = 2385,
- PRECEU_PH_QBRA = 2386,
- PRECEU_PH_QBRA_MM = 2387,
- PRECEU_PH_QBR_MM = 2388,
- PRECRQU_S_QB_PH = 2389,
- PRECRQU_S_QB_PH_MM = 2390,
- PRECRQ_PH_W = 2391,
- PRECRQ_PH_W_MM = 2392,
- PRECRQ_QB_PH = 2393,
- PRECRQ_QB_PH_MM = 2394,
- PRECRQ_RS_PH_W = 2395,
- PRECRQ_RS_PH_W_MM = 2396,
- PRECR_QB_PH = 2397,
- PRECR_QB_PH_MMR2 = 2398,
- PRECR_SRA_PH_W = 2399,
- PRECR_SRA_PH_W_MMR2 = 2400,
- PRECR_SRA_R_PH_W = 2401,
- PRECR_SRA_R_PH_W_MMR2 = 2402,
- PREF = 2403,
- PREFE = 2404,
- PREFE_MM = 2405,
- PREFX_MM = 2406,
- PREF_MM = 2407,
- PREF_MMR6 = 2408,
- PREF_R6 = 2409,
- PREPEND = 2410,
- PREPEND_MMR2 = 2411,
- PUL_PS64 = 2412,
- PUU_PS64 = 2413,
- RADDU_W_QB = 2414,
- RADDU_W_QB_MM = 2415,
- RDDSP = 2416,
- RDDSP_MM = 2417,
- RDHWR = 2418,
- RDHWR64 = 2419,
- RDHWR_MM = 2420,
- RDHWR_MMR6 = 2421,
- RDPGPR_MMR6 = 2422,
- RECIP_D32 = 2423,
- RECIP_D32_MM = 2424,
- RECIP_D64 = 2425,
- RECIP_D64_MM = 2426,
- RECIP_S = 2427,
- RECIP_S_MM = 2428,
- REPLV_PH = 2429,
- REPLV_PH_MM = 2430,
- REPLV_QB = 2431,
- REPLV_QB_MM = 2432,
- REPL_PH = 2433,
- REPL_PH_MM = 2434,
- REPL_QB = 2435,
- REPL_QB_MM = 2436,
- RINT_D = 2437,
- RINT_D_MMR6 = 2438,
- RINT_S = 2439,
- RINT_S_MMR6 = 2440,
- ROTR = 2441,
- ROTRV = 2442,
- ROTRV_MM = 2443,
- ROTR_MM = 2444,
- ROUND_L_D64 = 2445,
- ROUND_L_D_MMR6 = 2446,
- ROUND_L_S = 2447,
- ROUND_L_S_MMR6 = 2448,
- ROUND_W_D32 = 2449,
- ROUND_W_D64 = 2450,
- ROUND_W_D_MMR6 = 2451,
- ROUND_W_MM = 2452,
- ROUND_W_S = 2453,
- ROUND_W_S_MM = 2454,
- ROUND_W_S_MMR6 = 2455,
- RSQRT_D32 = 2456,
- RSQRT_D32_MM = 2457,
- RSQRT_D64 = 2458,
- RSQRT_D64_MM = 2459,
- RSQRT_S = 2460,
- RSQRT_S_MM = 2461,
- Restore16 = 2462,
- RestoreX16 = 2463,
- SAA = 2464,
- SAAD = 2465,
- SAT_S_B = 2466,
- SAT_S_D = 2467,
- SAT_S_H = 2468,
- SAT_S_W = 2469,
- SAT_U_B = 2470,
- SAT_U_D = 2471,
- SAT_U_H = 2472,
- SAT_U_W = 2473,
- SB = 2474,
- SB16_MM = 2475,
- SB16_MMR6 = 2476,
- SB64 = 2477,
- SBE = 2478,
- SBE_MM = 2479,
- SB_MM = 2480,
- SB_MMR6 = 2481,
- SC = 2482,
- SC64 = 2483,
- SC64_R6 = 2484,
- SCD = 2485,
- SCD_R6 = 2486,
- SCE = 2487,
- SCE_MM = 2488,
- SC_MM = 2489,
- SC_MMR6 = 2490,
- SC_R6 = 2491,
- SD = 2492,
- SDBBP = 2493,
- SDBBP16_MM = 2494,
- SDBBP16_MMR6 = 2495,
- SDBBP_MM = 2496,
- SDBBP_MMR6 = 2497,
- SDBBP_R6 = 2498,
- SDC1 = 2499,
- SDC164 = 2500,
- SDC1_D64_MMR6 = 2501,
- SDC1_MM_D32 = 2502,
- SDC1_MM_D64 = 2503,
- SDC2 = 2504,
- SDC2_MMR6 = 2505,
- SDC2_R6 = 2506,
- SDC3 = 2507,
- SDIV = 2508,
- SDIV_MM = 2509,
- SDL = 2510,
- SDR = 2511,
- SDXC1 = 2512,
- SDXC164 = 2513,
- SEB = 2514,
- SEB64 = 2515,
- SEB_MM = 2516,
- SEH = 2517,
- SEH64 = 2518,
- SEH_MM = 2519,
- SELEQZ = 2520,
- SELEQZ64 = 2521,
- SELEQZ_D = 2522,
- SELEQZ_D_MMR6 = 2523,
- SELEQZ_MMR6 = 2524,
- SELEQZ_S = 2525,
- SELEQZ_S_MMR6 = 2526,
- SELNEZ = 2527,
- SELNEZ64 = 2528,
- SELNEZ_D = 2529,
- SELNEZ_D_MMR6 = 2530,
- SELNEZ_MMR6 = 2531,
- SELNEZ_S = 2532,
- SELNEZ_S_MMR6 = 2533,
- SEL_D = 2534,
- SEL_D_MMR6 = 2535,
- SEL_S = 2536,
- SEL_S_MMR6 = 2537,
- SEQ = 2538,
- SEQi = 2539,
- SH = 2540,
- SH16_MM = 2541,
- SH16_MMR6 = 2542,
- SH64 = 2543,
- SHE = 2544,
- SHE_MM = 2545,
- SHF_B = 2546,
- SHF_H = 2547,
- SHF_W = 2548,
- SHILO = 2549,
- SHILOV = 2550,
- SHILOV_MM = 2551,
- SHILO_MM = 2552,
- SHLLV_PH = 2553,
- SHLLV_PH_MM = 2554,
- SHLLV_QB = 2555,
- SHLLV_QB_MM = 2556,
- SHLLV_S_PH = 2557,
- SHLLV_S_PH_MM = 2558,
- SHLLV_S_W = 2559,
- SHLLV_S_W_MM = 2560,
- SHLL_PH = 2561,
- SHLL_PH_MM = 2562,
- SHLL_QB = 2563,
- SHLL_QB_MM = 2564,
- SHLL_S_PH = 2565,
- SHLL_S_PH_MM = 2566,
- SHLL_S_W = 2567,
- SHLL_S_W_MM = 2568,
- SHRAV_PH = 2569,
- SHRAV_PH_MM = 2570,
- SHRAV_QB = 2571,
- SHRAV_QB_MMR2 = 2572,
- SHRAV_R_PH = 2573,
- SHRAV_R_PH_MM = 2574,
- SHRAV_R_QB = 2575,
- SHRAV_R_QB_MMR2 = 2576,
- SHRAV_R_W = 2577,
- SHRAV_R_W_MM = 2578,
- SHRA_PH = 2579,
- SHRA_PH_MM = 2580,
- SHRA_QB = 2581,
- SHRA_QB_MMR2 = 2582,
- SHRA_R_PH = 2583,
- SHRA_R_PH_MM = 2584,
- SHRA_R_QB = 2585,
- SHRA_R_QB_MMR2 = 2586,
- SHRA_R_W = 2587,
- SHRA_R_W_MM = 2588,
- SHRLV_PH = 2589,
- SHRLV_PH_MMR2 = 2590,
- SHRLV_QB = 2591,
- SHRLV_QB_MM = 2592,
- SHRL_PH = 2593,
- SHRL_PH_MMR2 = 2594,
- SHRL_QB = 2595,
- SHRL_QB_MM = 2596,
- SH_MM = 2597,
- SH_MMR6 = 2598,
- SIGRIE = 2599,
- SIGRIE_MMR6 = 2600,
- SLDI_B = 2601,
- SLDI_D = 2602,
- SLDI_H = 2603,
- SLDI_W = 2604,
- SLD_B = 2605,
- SLD_D = 2606,
- SLD_H = 2607,
- SLD_W = 2608,
- SLL = 2609,
- SLL16_MM = 2610,
- SLL16_MMR6 = 2611,
- SLL64_32 = 2612,
- SLL64_64 = 2613,
- SLLI_B = 2614,
- SLLI_D = 2615,
- SLLI_H = 2616,
- SLLI_W = 2617,
- SLLV = 2618,
- SLLV_MM = 2619,
- SLL_B = 2620,
- SLL_D = 2621,
- SLL_H = 2622,
- SLL_MM = 2623,
- SLL_MMR6 = 2624,
- SLL_W = 2625,
- SLT = 2626,
- SLT64 = 2627,
- SLT_MM = 2628,
- SLTi = 2629,
- SLTi64 = 2630,
- SLTi_MM = 2631,
- SLTiu = 2632,
- SLTiu64 = 2633,
- SLTiu_MM = 2634,
- SLTu = 2635,
- SLTu64 = 2636,
- SLTu_MM = 2637,
- SNE = 2638,
- SNEi = 2639,
- SPLATI_B = 2640,
- SPLATI_D = 2641,
- SPLATI_H = 2642,
- SPLATI_W = 2643,
- SPLAT_B = 2644,
- SPLAT_D = 2645,
- SPLAT_H = 2646,
- SPLAT_W = 2647,
- SRA = 2648,
- SRAI_B = 2649,
- SRAI_D = 2650,
- SRAI_H = 2651,
- SRAI_W = 2652,
- SRARI_B = 2653,
- SRARI_D = 2654,
- SRARI_H = 2655,
- SRARI_W = 2656,
- SRAR_B = 2657,
- SRAR_D = 2658,
- SRAR_H = 2659,
- SRAR_W = 2660,
- SRAV = 2661,
- SRAV_MM = 2662,
- SRA_B = 2663,
- SRA_D = 2664,
- SRA_H = 2665,
- SRA_MM = 2666,
- SRA_W = 2667,
- SRL = 2668,
- SRL16_MM = 2669,
- SRL16_MMR6 = 2670,
- SRLI_B = 2671,
- SRLI_D = 2672,
- SRLI_H = 2673,
- SRLI_W = 2674,
- SRLRI_B = 2675,
- SRLRI_D = 2676,
- SRLRI_H = 2677,
- SRLRI_W = 2678,
- SRLR_B = 2679,
- SRLR_D = 2680,
- SRLR_H = 2681,
- SRLR_W = 2682,
- SRLV = 2683,
- SRLV_MM = 2684,
- SRL_B = 2685,
- SRL_D = 2686,
- SRL_H = 2687,
- SRL_MM = 2688,
- SRL_W = 2689,
- SSNOP = 2690,
- SSNOP_MM = 2691,
- SSNOP_MMR6 = 2692,
- ST_B = 2693,
- ST_D = 2694,
- ST_H = 2695,
- ST_W = 2696,
- SUB = 2697,
- SUBQH_PH = 2698,
- SUBQH_PH_MMR2 = 2699,
- SUBQH_R_PH = 2700,
- SUBQH_R_PH_MMR2 = 2701,
- SUBQH_R_W = 2702,
- SUBQH_R_W_MMR2 = 2703,
- SUBQH_W = 2704,
- SUBQH_W_MMR2 = 2705,
- SUBQ_PH = 2706,
- SUBQ_PH_MM = 2707,
- SUBQ_S_PH = 2708,
- SUBQ_S_PH_MM = 2709,
- SUBQ_S_W = 2710,
- SUBQ_S_W_MM = 2711,
- SUBSUS_U_B = 2712,
- SUBSUS_U_D = 2713,
- SUBSUS_U_H = 2714,
- SUBSUS_U_W = 2715,
- SUBSUU_S_B = 2716,
- SUBSUU_S_D = 2717,
- SUBSUU_S_H = 2718,
- SUBSUU_S_W = 2719,
- SUBS_S_B = 2720,
- SUBS_S_D = 2721,
- SUBS_S_H = 2722,
- SUBS_S_W = 2723,
- SUBS_U_B = 2724,
- SUBS_U_D = 2725,
- SUBS_U_H = 2726,
- SUBS_U_W = 2727,
- SUBU16_MM = 2728,
- SUBU16_MMR6 = 2729,
- SUBUH_QB = 2730,
- SUBUH_QB_MMR2 = 2731,
- SUBUH_R_QB = 2732,
- SUBUH_R_QB_MMR2 = 2733,
- SUBU_MMR6 = 2734,
- SUBU_PH = 2735,
- SUBU_PH_MMR2 = 2736,
- SUBU_QB = 2737,
- SUBU_QB_MM = 2738,
- SUBU_S_PH = 2739,
- SUBU_S_PH_MMR2 = 2740,
- SUBU_S_QB = 2741,
- SUBU_S_QB_MM = 2742,
- SUBVI_B = 2743,
- SUBVI_D = 2744,
- SUBVI_H = 2745,
- SUBVI_W = 2746,
- SUBV_B = 2747,
- SUBV_D = 2748,
- SUBV_H = 2749,
- SUBV_W = 2750,
- SUB_MM = 2751,
- SUB_MMR6 = 2752,
- SUBu = 2753,
- SUBu_MM = 2754,
- SUXC1 = 2755,
- SUXC164 = 2756,
- SUXC1_MM = 2757,
- SW = 2758,
- SW16_MM = 2759,
- SW16_MMR6 = 2760,
- SW64 = 2761,
- SWC1 = 2762,
- SWC1_MM = 2763,
- SWC2 = 2764,
- SWC2_MMR6 = 2765,
- SWC2_R6 = 2766,
- SWC3 = 2767,
- SWDSP = 2768,
- SWDSP_MM = 2769,
- SWE = 2770,
- SWE_MM = 2771,
- SWL = 2772,
- SWL64 = 2773,
- SWLE = 2774,
- SWLE_MM = 2775,
- SWL_MM = 2776,
- SWM16_MM = 2777,
- SWM16_MMR6 = 2778,
- SWM32_MM = 2779,
- SWP_MM = 2780,
- SWR = 2781,
- SWR64 = 2782,
- SWRE = 2783,
- SWRE_MM = 2784,
- SWR_MM = 2785,
- SWSP_MM = 2786,
- SWSP_MMR6 = 2787,
- SWXC1 = 2788,
- SWXC1_MM = 2789,
- SW_MM = 2790,
- SW_MMR6 = 2791,
- SYNC = 2792,
- SYNCI = 2793,
- SYNCI_MM = 2794,
- SYNCI_MMR6 = 2795,
- SYNC_MM = 2796,
- SYNC_MMR6 = 2797,
- SYSCALL = 2798,
- SYSCALL_MM = 2799,
- Save16 = 2800,
- SaveX16 = 2801,
- SbRxRyOffMemX16 = 2802,
- SebRx16 = 2803,
- SehRx16 = 2804,
- ShRxRyOffMemX16 = 2805,
- SllX16 = 2806,
- SllvRxRy16 = 2807,
- SltRxRy16 = 2808,
- SltiRxImm16 = 2809,
- SltiRxImmX16 = 2810,
- SltiuRxImm16 = 2811,
- SltiuRxImmX16 = 2812,
- SltuRxRy16 = 2813,
- SraX16 = 2814,
- SravRxRy16 = 2815,
- SrlX16 = 2816,
- SrlvRxRy16 = 2817,
- SubuRxRyRz16 = 2818,
- SwRxRyOffMemX16 = 2819,
- SwRxSpImmX16 = 2820,
- TEQ = 2821,
- TEQI = 2822,
- TEQI_MM = 2823,
- TEQ_MM = 2824,
- TGE = 2825,
- TGEI = 2826,
- TGEIU = 2827,
- TGEIU_MM = 2828,
- TGEI_MM = 2829,
- TGEU = 2830,
- TGEU_MM = 2831,
- TGE_MM = 2832,
- TLBGINV = 2833,
- TLBGINVF = 2834,
- TLBGINVF_MM = 2835,
- TLBGINV_MM = 2836,
- TLBGP = 2837,
- TLBGP_MM = 2838,
- TLBGR = 2839,
- TLBGR_MM = 2840,
- TLBGWI = 2841,
- TLBGWI_MM = 2842,
- TLBGWR = 2843,
- TLBGWR_MM = 2844,
- TLBINV = 2845,
- TLBINVF = 2846,
- TLBINVF_MMR6 = 2847,
- TLBINV_MMR6 = 2848,
- TLBP = 2849,
- TLBP_MM = 2850,
- TLBR = 2851,
- TLBR_MM = 2852,
- TLBWI = 2853,
- TLBWI_MM = 2854,
- TLBWR = 2855,
- TLBWR_MM = 2856,
- TLT = 2857,
- TLTI = 2858,
- TLTIU_MM = 2859,
- TLTI_MM = 2860,
- TLTU = 2861,
- TLTU_MM = 2862,
- TLT_MM = 2863,
- TNE = 2864,
- TNEI = 2865,
- TNEI_MM = 2866,
- TNE_MM = 2867,
- TRUNC_L_D64 = 2868,
- TRUNC_L_D_MMR6 = 2869,
- TRUNC_L_S = 2870,
- TRUNC_L_S_MMR6 = 2871,
- TRUNC_W_D32 = 2872,
- TRUNC_W_D64 = 2873,
- TRUNC_W_D_MMR6 = 2874,
- TRUNC_W_MM = 2875,
- TRUNC_W_S = 2876,
- TRUNC_W_S_MM = 2877,
- TRUNC_W_S_MMR6 = 2878,
- TTLTIU = 2879,
- UDIV = 2880,
- UDIV_MM = 2881,
- V3MULU = 2882,
- VMM0 = 2883,
- VMULU = 2884,
- VSHF_B = 2885,
- VSHF_D = 2886,
- VSHF_H = 2887,
- VSHF_W = 2888,
- WAIT = 2889,
- WAIT_MM = 2890,
- WAIT_MMR6 = 2891,
- WRDSP = 2892,
- WRDSP_MM = 2893,
- WRPGPR_MMR6 = 2894,
- WSBH = 2895,
- WSBH_MM = 2896,
- WSBH_MMR6 = 2897,
- XOR = 2898,
- XOR16_MM = 2899,
- XOR16_MMR6 = 2900,
- XOR64 = 2901,
- XORI_B = 2902,
- XORI_MMR6 = 2903,
- XOR_MM = 2904,
- XOR_MMR6 = 2905,
- XOR_V = 2906,
- XORi = 2907,
- XORi64 = 2908,
- XORi_MM = 2909,
- XorRxRxRy16 = 2910,
- YIELD = 2911,
- INSTRUCTION_LIST_END = 2912,
+ COPY_LANEMASK = 21,
+ BUNDLE = 22,
+ LIFETIME_START = 23,
+ LIFETIME_END = 24,
+ PSEUDO_PROBE = 25,
+ ARITH_FENCE = 26,
+ STACKMAP = 27,
+ FENTRY_CALL = 28,
+ PATCHPOINT = 29,
+ LOAD_STACK_GUARD = 30,
+ PREALLOCATED_SETUP = 31,
+ PREALLOCATED_ARG = 32,
+ STATEPOINT = 33,
+ LOCAL_ESCAPE = 34,
+ FAULTING_OP = 35,
+ PATCHABLE_OP = 36,
+ PATCHABLE_FUNCTION_ENTER = 37,
+ PATCHABLE_RET = 38,
+ PATCHABLE_FUNCTION_EXIT = 39,
+ PATCHABLE_TAIL_CALL = 40,
+ PATCHABLE_EVENT_CALL = 41,
+ PATCHABLE_TYPED_EVENT_CALL = 42,
+ ICALL_BRANCH_FUNNEL = 43,
+ FAKE_USE = 44,
+ MEMBARRIER = 45,
+ JUMP_TABLE_DEBUG_INFO = 46,
+ RELOC_NONE = 47,
+ CONVERGENCECTRL_ENTRY = 48,
+ CONVERGENCECTRL_ANCHOR = 49,
+ CONVERGENCECTRL_LOOP = 50,
+ CONVERGENCECTRL_GLUE = 51,
+ G_ASSERT_SEXT = 52,
+ G_ASSERT_ZEXT = 53,
+ G_ASSERT_ALIGN = 54,
+ G_ADD = 55,
+ G_SUB = 56,
+ G_MUL = 57,
+ G_SDIV = 58,
+ G_UDIV = 59,
+ G_SREM = 60,
+ G_UREM = 61,
+ G_SDIVREM = 62,
+ G_UDIVREM = 63,
+ G_AND = 64,
+ G_OR = 65,
+ G_XOR = 66,
+ G_ABDS = 67,
+ G_ABDU = 68,
+ G_UAVGFLOOR = 69,
+ G_UAVGCEIL = 70,
+ G_SAVGFLOOR = 71,
+ G_SAVGCEIL = 72,
+ G_IMPLICIT_DEF = 73,
+ G_PHI = 74,
+ G_FRAME_INDEX = 75,
+ G_GLOBAL_VALUE = 76,
+ G_PTRAUTH_GLOBAL_VALUE = 77,
+ G_CONSTANT_POOL = 78,
+ G_EXTRACT = 79,
+ G_UNMERGE_VALUES = 80,
+ G_INSERT = 81,
+ G_MERGE_VALUES = 82,
+ G_BUILD_VECTOR = 83,
+ G_BUILD_VECTOR_TRUNC = 84,
+ G_CONCAT_VECTORS = 85,
+ G_PTRTOINT = 86,
+ G_INTTOPTR = 87,
+ G_BITCAST = 88,
+ G_FREEZE = 89,
+ G_CONSTANT_FOLD_BARRIER = 90,
+ G_INTRINSIC_FPTRUNC_ROUND = 91,
+ G_INTRINSIC_TRUNC = 92,
+ G_INTRINSIC_ROUND = 93,
+ G_INTRINSIC_LRINT = 94,
+ G_INTRINSIC_LLRINT = 95,
+ G_INTRINSIC_ROUNDEVEN = 96,
+ G_READCYCLECOUNTER = 97,
+ G_READSTEADYCOUNTER = 98,
+ G_LOAD = 99,
+ G_SEXTLOAD = 100,
+ G_ZEXTLOAD = 101,
+ G_INDEXED_LOAD = 102,
+ G_INDEXED_SEXTLOAD = 103,
+ G_INDEXED_ZEXTLOAD = 104,
+ G_STORE = 105,
+ G_INDEXED_STORE = 106,
+ G_ATOMIC_CMPXCHG_WITH_SUCCESS = 107,
+ G_ATOMIC_CMPXCHG = 108,
+ G_ATOMICRMW_XCHG = 109,
+ G_ATOMICRMW_ADD = 110,
+ G_ATOMICRMW_SUB = 111,
+ G_ATOMICRMW_AND = 112,
+ G_ATOMICRMW_NAND = 113,
+ G_ATOMICRMW_OR = 114,
+ G_ATOMICRMW_XOR = 115,
+ G_ATOMICRMW_MAX = 116,
+ G_ATOMICRMW_MIN = 117,
+ G_ATOMICRMW_UMAX = 118,
+ G_ATOMICRMW_UMIN = 119,
+ G_ATOMICRMW_FADD = 120,
+ G_ATOMICRMW_FSUB = 121,
+ G_ATOMICRMW_FMAX = 122,
+ G_ATOMICRMW_FMIN = 123,
+ G_ATOMICRMW_FMAXIMUM = 124,
+ G_ATOMICRMW_FMINIMUM = 125,
+ G_ATOMICRMW_UINC_WRAP = 126,
+ G_ATOMICRMW_UDEC_WRAP = 127,
+ G_ATOMICRMW_USUB_COND = 128,
+ G_ATOMICRMW_USUB_SAT = 129,
+ G_FENCE = 130,
+ G_PREFETCH = 131,
+ G_BRCOND = 132,
+ G_BRINDIRECT = 133,
+ G_INVOKE_REGION_START = 134,
+ G_INTRINSIC = 135,
+ G_INTRINSIC_W_SIDE_EFFECTS = 136,
+ G_INTRINSIC_CONVERGENT = 137,
+ G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 138,
+ G_ANYEXT = 139,
+ G_TRUNC = 140,
+ G_TRUNC_SSAT_S = 141,
+ G_TRUNC_SSAT_U = 142,
+ G_TRUNC_USAT_U = 143,
+ G_CONSTANT = 144,
+ G_FCONSTANT = 145,
+ G_VASTART = 146,
+ G_VAARG = 147,
+ G_SEXT = 148,
+ G_SEXT_INREG = 149,
+ G_ZEXT = 150,
+ G_SHL = 151,
+ G_LSHR = 152,
+ G_ASHR = 153,
+ G_FSHL = 154,
+ G_FSHR = 155,
+ G_ROTR = 156,
+ G_ROTL = 157,
+ G_ICMP = 158,
+ G_FCMP = 159,
+ G_SCMP = 160,
+ G_UCMP = 161,
+ G_SELECT = 162,
+ G_UADDO = 163,
+ G_UADDE = 164,
+ G_USUBO = 165,
+ G_USUBE = 166,
+ G_SADDO = 167,
+ G_SADDE = 168,
+ G_SSUBO = 169,
+ G_SSUBE = 170,
+ G_UMULO = 171,
+ G_SMULO = 172,
+ G_UMULH = 173,
+ G_SMULH = 174,
+ G_UADDSAT = 175,
+ G_SADDSAT = 176,
+ G_USUBSAT = 177,
+ G_SSUBSAT = 178,
+ G_USHLSAT = 179,
+ G_SSHLSAT = 180,
+ G_SMULFIX = 181,
+ G_UMULFIX = 182,
+ G_SMULFIXSAT = 183,
+ G_UMULFIXSAT = 184,
+ G_SDIVFIX = 185,
+ G_UDIVFIX = 186,
+ G_SDIVFIXSAT = 187,
+ G_UDIVFIXSAT = 188,
+ G_FADD = 189,
+ G_FSUB = 190,
+ G_FMUL = 191,
+ G_FMA = 192,
+ G_FMAD = 193,
+ G_FDIV = 194,
+ G_FREM = 195,
+ G_FMODF = 196,
+ G_FPOW = 197,
+ G_FPOWI = 198,
+ G_FEXP = 199,
+ G_FEXP2 = 200,
+ G_FEXP10 = 201,
+ G_FLOG = 202,
+ G_FLOG2 = 203,
+ G_FLOG10 = 204,
+ G_FLDEXP = 205,
+ G_FFREXP = 206,
+ G_FNEG = 207,
+ G_FPEXT = 208,
+ G_FPTRUNC = 209,
+ G_FPTOSI = 210,
+ G_FPTOUI = 211,
+ G_SITOFP = 212,
+ G_UITOFP = 213,
+ G_FPTOSI_SAT = 214,
+ G_FPTOUI_SAT = 215,
+ G_FABS = 216,
+ G_FCOPYSIGN = 217,
+ G_IS_FPCLASS = 218,
+ G_FCANONICALIZE = 219,
+ G_FMINNUM = 220,
+ G_FMAXNUM = 221,
+ G_FMINNUM_IEEE = 222,
+ G_FMAXNUM_IEEE = 223,
+ G_FMINIMUM = 224,
+ G_FMAXIMUM = 225,
+ G_FMINIMUMNUM = 226,
+ G_FMAXIMUMNUM = 227,
+ G_GET_FPENV = 228,
+ G_SET_FPENV = 229,
+ G_RESET_FPENV = 230,
+ G_GET_FPMODE = 231,
+ G_SET_FPMODE = 232,
+ G_RESET_FPMODE = 233,
+ G_GET_ROUNDING = 234,
+ G_SET_ROUNDING = 235,
+ G_PTR_ADD = 236,
+ G_PTRMASK = 237,
+ G_SMIN = 238,
+ G_SMAX = 239,
+ G_UMIN = 240,
+ G_UMAX = 241,
+ G_ABS = 242,
+ G_LROUND = 243,
+ G_LLROUND = 244,
+ G_BR = 245,
+ G_BRJT = 246,
+ G_VSCALE = 247,
+ G_INSERT_SUBVECTOR = 248,
+ G_EXTRACT_SUBVECTOR = 249,
+ G_INSERT_VECTOR_ELT = 250,
+ G_EXTRACT_VECTOR_ELT = 251,
+ G_SHUFFLE_VECTOR = 252,
+ G_SPLAT_VECTOR = 253,
+ G_STEP_VECTOR = 254,
+ G_VECTOR_COMPRESS = 255,
+ G_CTTZ = 256,
+ G_CTTZ_ZERO_UNDEF = 257,
+ G_CTLZ = 258,
+ G_CTLZ_ZERO_UNDEF = 259,
+ G_CTPOP = 260,
+ G_BSWAP = 261,
+ G_BITREVERSE = 262,
+ G_FCEIL = 263,
+ G_FCOS = 264,
+ G_FSIN = 265,
+ G_FSINCOS = 266,
+ G_FTAN = 267,
+ G_FACOS = 268,
+ G_FASIN = 269,
+ G_FATAN = 270,
+ G_FATAN2 = 271,
+ G_FCOSH = 272,
+ G_FSINH = 273,
+ G_FTANH = 274,
+ G_FSQRT = 275,
+ G_FFLOOR = 276,
+ G_FRINT = 277,
+ G_FNEARBYINT = 278,
+ G_ADDRSPACE_CAST = 279,
+ G_BLOCK_ADDR = 280,
+ G_JUMP_TABLE = 281,
+ G_DYN_STACKALLOC = 282,
+ G_STACKSAVE = 283,
+ G_STACKRESTORE = 284,
+ G_STRICT_FADD = 285,
+ G_STRICT_FSUB = 286,
+ G_STRICT_FMUL = 287,
+ G_STRICT_FDIV = 288,
+ G_STRICT_FREM = 289,
+ G_STRICT_FMA = 290,
+ G_STRICT_FSQRT = 291,
+ G_STRICT_FLDEXP = 292,
+ G_READ_REGISTER = 293,
+ G_WRITE_REGISTER = 294,
+ G_MEMCPY = 295,
+ G_MEMCPY_INLINE = 296,
+ G_MEMMOVE = 297,
+ G_MEMSET = 298,
+ G_BZERO = 299,
+ G_TRAP = 300,
+ G_DEBUGTRAP = 301,
+ G_UBSANTRAP = 302,
+ G_VECREDUCE_SEQ_FADD = 303,
+ G_VECREDUCE_SEQ_FMUL = 304,
+ G_VECREDUCE_FADD = 305,
+ G_VECREDUCE_FMUL = 306,
+ G_VECREDUCE_FMAX = 307,
+ G_VECREDUCE_FMIN = 308,
+ G_VECREDUCE_FMAXIMUM = 309,
+ G_VECREDUCE_FMINIMUM = 310,
+ G_VECREDUCE_ADD = 311,
+ G_VECREDUCE_MUL = 312,
+ G_VECREDUCE_AND = 313,
+ G_VECREDUCE_OR = 314,
+ G_VECREDUCE_XOR = 315,
+ G_VECREDUCE_SMAX = 316,
+ G_VECREDUCE_SMIN = 317,
+ G_VECREDUCE_UMAX = 318,
+ G_VECREDUCE_UMIN = 319,
+ G_SBFX = 320,
+ G_UBFX = 321,
+ ABSMacro = 322,
+ ADJCALLSTACKDOWN = 323,
+ ADJCALLSTACKUP = 324,
+ AND_V_D_PSEUDO = 325,
+ AND_V_H_PSEUDO = 326,
+ AND_V_W_PSEUDO = 327,
+ ATOMIC_CMP_SWAP_I16 = 328,
+ ATOMIC_CMP_SWAP_I16_POSTRA = 329,
+ ATOMIC_CMP_SWAP_I32 = 330,
+ ATOMIC_CMP_SWAP_I32_POSTRA = 331,
+ ATOMIC_CMP_SWAP_I64 = 332,
+ ATOMIC_CMP_SWAP_I64_POSTRA = 333,
+ ATOMIC_CMP_SWAP_I8 = 334,
+ ATOMIC_CMP_SWAP_I8_POSTRA = 335,
+ ATOMIC_LOAD_ADD_I16 = 336,
+ ATOMIC_LOAD_ADD_I16_POSTRA = 337,
+ ATOMIC_LOAD_ADD_I32 = 338,
+ ATOMIC_LOAD_ADD_I32_POSTRA = 339,
+ ATOMIC_LOAD_ADD_I64 = 340,
+ ATOMIC_LOAD_ADD_I64_POSTRA = 341,
+ ATOMIC_LOAD_ADD_I8 = 342,
+ ATOMIC_LOAD_ADD_I8_POSTRA = 343,
+ ATOMIC_LOAD_AND_I16 = 344,
+ ATOMIC_LOAD_AND_I16_POSTRA = 345,
+ ATOMIC_LOAD_AND_I32 = 346,
+ ATOMIC_LOAD_AND_I32_POSTRA = 347,
+ ATOMIC_LOAD_AND_I64 = 348,
+ ATOMIC_LOAD_AND_I64_POSTRA = 349,
+ ATOMIC_LOAD_AND_I8 = 350,
+ ATOMIC_LOAD_AND_I8_POSTRA = 351,
+ ATOMIC_LOAD_MAX_I16 = 352,
+ ATOMIC_LOAD_MAX_I16_POSTRA = 353,
+ ATOMIC_LOAD_MAX_I32 = 354,
+ ATOMIC_LOAD_MAX_I32_POSTRA = 355,
+ ATOMIC_LOAD_MAX_I64 = 356,
+ ATOMIC_LOAD_MAX_I64_POSTRA = 357,
+ ATOMIC_LOAD_MAX_I8 = 358,
+ ATOMIC_LOAD_MAX_I8_POSTRA = 359,
+ ATOMIC_LOAD_MIN_I16 = 360,
+ ATOMIC_LOAD_MIN_I16_POSTRA = 361,
+ ATOMIC_LOAD_MIN_I32 = 362,
+ ATOMIC_LOAD_MIN_I32_POSTRA = 363,
+ ATOMIC_LOAD_MIN_I64 = 364,
+ ATOMIC_LOAD_MIN_I64_POSTRA = 365,
+ ATOMIC_LOAD_MIN_I8 = 366,
+ ATOMIC_LOAD_MIN_I8_POSTRA = 367,
+ ATOMIC_LOAD_NAND_I16 = 368,
+ ATOMIC_LOAD_NAND_I16_POSTRA = 369,
+ ATOMIC_LOAD_NAND_I32 = 370,
+ ATOMIC_LOAD_NAND_I32_POSTRA = 371,
+ ATOMIC_LOAD_NAND_I64 = 372,
+ ATOMIC_LOAD_NAND_I64_POSTRA = 373,
+ ATOMIC_LOAD_NAND_I8 = 374,
+ ATOMIC_LOAD_NAND_I8_POSTRA = 375,
+ ATOMIC_LOAD_OR_I16 = 376,
+ ATOMIC_LOAD_OR_I16_POSTRA = 377,
+ ATOMIC_LOAD_OR_I32 = 378,
+ ATOMIC_LOAD_OR_I32_POSTRA = 379,
+ ATOMIC_LOAD_OR_I64 = 380,
+ ATOMIC_LOAD_OR_I64_POSTRA = 381,
+ ATOMIC_LOAD_OR_I8 = 382,
+ ATOMIC_LOAD_OR_I8_POSTRA = 383,
+ ATOMIC_LOAD_SUB_I16 = 384,
+ ATOMIC_LOAD_SUB_I16_POSTRA = 385,
+ ATOMIC_LOAD_SUB_I32 = 386,
+ ATOMIC_LOAD_SUB_I32_POSTRA = 387,
+ ATOMIC_LOAD_SUB_I64 = 388,
+ ATOMIC_LOAD_SUB_I64_POSTRA = 389,
+ ATOMIC_LOAD_SUB_I8 = 390,
+ ATOMIC_LOAD_SUB_I8_POSTRA = 391,
+ ATOMIC_LOAD_UMAX_I16 = 392,
+ ATOMIC_LOAD_UMAX_I16_POSTRA = 393,
+ ATOMIC_LOAD_UMAX_I32 = 394,
+ ATOMIC_LOAD_UMAX_I32_POSTRA = 395,
+ ATOMIC_LOAD_UMAX_I64 = 396,
+ ATOMIC_LOAD_UMAX_I64_POSTRA = 397,
+ ATOMIC_LOAD_UMAX_I8 = 398,
+ ATOMIC_LOAD_UMAX_I8_POSTRA = 399,
+ ATOMIC_LOAD_UMIN_I16 = 400,
+ ATOMIC_LOAD_UMIN_I16_POSTRA = 401,
+ ATOMIC_LOAD_UMIN_I32 = 402,
+ ATOMIC_LOAD_UMIN_I32_POSTRA = 403,
+ ATOMIC_LOAD_UMIN_I64 = 404,
+ ATOMIC_LOAD_UMIN_I64_POSTRA = 405,
+ ATOMIC_LOAD_UMIN_I8 = 406,
+ ATOMIC_LOAD_UMIN_I8_POSTRA = 407,
+ ATOMIC_LOAD_XOR_I16 = 408,
+ ATOMIC_LOAD_XOR_I16_POSTRA = 409,
+ ATOMIC_LOAD_XOR_I32 = 410,
+ ATOMIC_LOAD_XOR_I32_POSTRA = 411,
+ ATOMIC_LOAD_XOR_I64 = 412,
+ ATOMIC_LOAD_XOR_I64_POSTRA = 413,
+ ATOMIC_LOAD_XOR_I8 = 414,
+ ATOMIC_LOAD_XOR_I8_POSTRA = 415,
+ ATOMIC_SWAP_I16 = 416,
+ ATOMIC_SWAP_I16_POSTRA = 417,
+ ATOMIC_SWAP_I32 = 418,
+ ATOMIC_SWAP_I32_POSTRA = 419,
+ ATOMIC_SWAP_I64 = 420,
+ ATOMIC_SWAP_I64_POSTRA = 421,
+ ATOMIC_SWAP_I8 = 422,
+ ATOMIC_SWAP_I8_POSTRA = 423,
+ B = 424,
+ BAL_BR = 425,
+ BAL_BR_MM = 426,
+ BEQLImmMacro = 427,
+ BGE = 428,
+ BGEImmMacro = 429,
+ BGEL = 430,
+ BGELImmMacro = 431,
+ BGEU = 432,
+ BGEUImmMacro = 433,
+ BGEUL = 434,
+ BGEULImmMacro = 435,
+ BGT = 436,
+ BGTImmMacro = 437,
+ BGTL = 438,
+ BGTLImmMacro = 439,
+ BGTU = 440,
+ BGTUImmMacro = 441,
+ BGTUL = 442,
+ BGTULImmMacro = 443,
+ BLE = 444,
+ BLEImmMacro = 445,
+ BLEL = 446,
+ BLELImmMacro = 447,
+ BLEU = 448,
+ BLEUImmMacro = 449,
+ BLEUL = 450,
+ BLEULImmMacro = 451,
+ BLT = 452,
+ BLTImmMacro = 453,
+ BLTL = 454,
+ BLTLImmMacro = 455,
+ BLTU = 456,
+ BLTUImmMacro = 457,
+ BLTUL = 458,
+ BLTULImmMacro = 459,
+ BNELImmMacro = 460,
+ BPOSGE32_PSEUDO = 461,
+ BSEL_D_PSEUDO = 462,
+ BSEL_FD_PSEUDO = 463,
+ BSEL_FW_PSEUDO = 464,
+ BSEL_H_PSEUDO = 465,
+ BSEL_W_PSEUDO = 466,
+ B_MM = 467,
+ B_MMR6_Pseudo = 468,
+ B_MM_Pseudo = 469,
+ BeqImm = 470,
+ BneImm = 471,
+ BteqzT8CmpX16 = 472,
+ BteqzT8CmpiX16 = 473,
+ BteqzT8SltX16 = 474,
+ BteqzT8SltiX16 = 475,
+ BteqzT8SltiuX16 = 476,
+ BteqzT8SltuX16 = 477,
+ BtnezT8CmpX16 = 478,
+ BtnezT8CmpiX16 = 479,
+ BtnezT8SltX16 = 480,
+ BtnezT8SltiX16 = 481,
+ BtnezT8SltiuX16 = 482,
+ BtnezT8SltuX16 = 483,
+ BuildPairF64 = 484,
+ BuildPairF64_64 = 485,
+ CFTC1 = 486,
+ CONSTPOOL_ENTRY = 487,
+ COPY_FD_PSEUDO = 488,
+ COPY_FW_PSEUDO = 489,
+ CTTC1 = 490,
+ Constant32 = 491,
+ DMULImmMacro = 492,
+ DMULMacro = 493,
+ DMULOMacro = 494,
+ DMULOUMacro = 495,
+ DROL = 496,
+ DROLImm = 497,
+ DROR = 498,
+ DRORImm = 499,
+ DSDivIMacro = 500,
+ DSDivMacro = 501,
+ DSRemIMacro = 502,
+ DSRemMacro = 503,
+ DUDivIMacro = 504,
+ DUDivMacro = 505,
+ DURemIMacro = 506,
+ DURemMacro = 507,
+ ERet = 508,
+ ExtractElementF64 = 509,
+ ExtractElementF64_64 = 510,
+ FABS_D = 511,
+ FABS_W = 512,
+ FEXP2_D_1_PSEUDO = 513,
+ FEXP2_W_1_PSEUDO = 514,
+ FILL_FD_PSEUDO = 515,
+ FILL_FW_PSEUDO = 516,
+ GotPrologue16 = 517,
+ INSERT_B_VIDX64_PSEUDO = 518,
+ INSERT_B_VIDX_PSEUDO = 519,
+ INSERT_D_VIDX64_PSEUDO = 520,
+ INSERT_D_VIDX_PSEUDO = 521,
+ INSERT_FD_PSEUDO = 522,
+ INSERT_FD_VIDX64_PSEUDO = 523,
+ INSERT_FD_VIDX_PSEUDO = 524,
+ INSERT_FW_PSEUDO = 525,
+ INSERT_FW_VIDX64_PSEUDO = 526,
+ INSERT_FW_VIDX_PSEUDO = 527,
+ INSERT_H_VIDX64_PSEUDO = 528,
+ INSERT_H_VIDX_PSEUDO = 529,
+ INSERT_W_VIDX64_PSEUDO = 530,
+ INSERT_W_VIDX_PSEUDO = 531,
+ JALR64Pseudo = 532,
+ JALRHB64Pseudo = 533,
+ JALRHBPseudo = 534,
+ JALRPseudo = 535,
+ JAL_MMR6 = 536,
+ JalOneReg = 537,
+ JalTwoReg = 538,
+ LDMacro = 539,
+ LDR_D = 540,
+ LDR_W = 541,
+ LD_F16 = 542,
+ LOAD_ACC128 = 543,
+ LOAD_ACC64 = 544,
+ LOAD_ACC64DSP = 545,
+ LOAD_CCOND_DSP = 546,
+ LONG_BRANCH_ADDiu = 547,
+ LONG_BRANCH_ADDiu2Op = 548,
+ LONG_BRANCH_DADDiu = 549,
+ LONG_BRANCH_DADDiu2Op = 550,
+ LONG_BRANCH_LUi = 551,
+ LONG_BRANCH_LUi2Op = 552,
+ LONG_BRANCH_LUi2Op_64 = 553,
+ LWM_MM = 554,
+ LoadAddrImm32 = 555,
+ LoadAddrImm64 = 556,
+ LoadAddrReg32 = 557,
+ LoadAddrReg64 = 558,
+ LoadImm32 = 559,
+ LoadImm64 = 560,
+ LoadImmDoubleFGR = 561,
+ LoadImmDoubleFGR_32 = 562,
+ LoadImmDoubleGPR = 563,
+ LoadImmSingleFGR = 564,
+ LoadImmSingleGPR = 565,
+ LwConstant32 = 566,
+ MFTACX = 567,
+ MFTC0 = 568,
+ MFTC1 = 569,
+ MFTDSP = 570,
+ MFTGPR = 571,
+ MFTHC1 = 572,
+ MFTHI = 573,
+ MFTLO = 574,
+ MIPSeh_return32 = 575,
+ MIPSeh_return64 = 576,
+ MSA_FP_EXTEND_D_PSEUDO = 577,
+ MSA_FP_EXTEND_W_PSEUDO = 578,
+ MSA_FP_ROUND_D_PSEUDO = 579,
+ MSA_FP_ROUND_W_PSEUDO = 580,
+ MTTACX = 581,
+ MTTC0 = 582,
+ MTTC1 = 583,
+ MTTDSP = 584,
+ MTTGPR = 585,
+ MTTHC1 = 586,
+ MTTHI = 587,
+ MTTLO = 588,
+ MULImmMacro = 589,
+ MULOMacro = 590,
+ MULOUMacro = 591,
+ MultRxRy16 = 592,
+ MultRxRyRz16 = 593,
+ MultuRxRy16 = 594,
+ MultuRxRyRz16 = 595,
+ NOP = 596,
+ NORImm = 597,
+ NORImm64 = 598,
+ NOR_V_D_PSEUDO = 599,
+ NOR_V_H_PSEUDO = 600,
+ NOR_V_W_PSEUDO = 601,
+ OR_V_D_PSEUDO = 602,
+ OR_V_H_PSEUDO = 603,
+ OR_V_W_PSEUDO = 604,
+ PseudoCMPU_EQ_QB = 605,
+ PseudoCMPU_LE_QB = 606,
+ PseudoCMPU_LT_QB = 607,
+ PseudoCMP_EQ_PH = 608,
+ PseudoCMP_LE_PH = 609,
+ PseudoCMP_LT_PH = 610,
+ PseudoCVT_D32_W = 611,
+ PseudoCVT_D64_L = 612,
+ PseudoCVT_D64_W = 613,
+ PseudoCVT_S_L = 614,
+ PseudoCVT_S_W = 615,
+ PseudoDMULT = 616,
+ PseudoDMULTu = 617,
+ PseudoDSDIV = 618,
+ PseudoDUDIV = 619,
+ PseudoD_SELECT_I = 620,
+ PseudoD_SELECT_I64 = 621,
+ PseudoIndirectBranch = 622,
+ PseudoIndirectBranch64 = 623,
+ PseudoIndirectBranch64R6 = 624,
+ PseudoIndirectBranchR6 = 625,
+ PseudoIndirectBranch_MM = 626,
+ PseudoIndirectBranch_MMR6 = 627,
+ PseudoIndirectHazardBranch = 628,
+ PseudoIndirectHazardBranch64 = 629,
+ PseudoIndrectHazardBranch64R6 = 630,
+ PseudoIndrectHazardBranchR6 = 631,
+ PseudoMADD = 632,
+ PseudoMADDU = 633,
+ PseudoMADDU_MM = 634,
+ PseudoMADD_MM = 635,
+ PseudoMFHI = 636,
+ PseudoMFHI64 = 637,
+ PseudoMFHI_MM = 638,
+ PseudoMFLO = 639,
+ PseudoMFLO64 = 640,
+ PseudoMFLO_MM = 641,
+ PseudoMSUB = 642,
+ PseudoMSUBU = 643,
+ PseudoMSUBU_MM = 644,
+ PseudoMSUB_MM = 645,
+ PseudoMTLOHI = 646,
+ PseudoMTLOHI64 = 647,
+ PseudoMTLOHI_DSP = 648,
+ PseudoMTLOHI_MM = 649,
+ PseudoMULT = 650,
+ PseudoMULT_MM = 651,
+ PseudoMULTu = 652,
+ PseudoMULTu_MM = 653,
+ PseudoPICK_PH = 654,
+ PseudoPICK_QB = 655,
+ PseudoReturn = 656,
+ PseudoReturn64 = 657,
+ PseudoSDIV = 658,
+ PseudoSELECTFP_F_D32 = 659,
+ PseudoSELECTFP_F_D64 = 660,
+ PseudoSELECTFP_F_I = 661,
+ PseudoSELECTFP_F_I64 = 662,
+ PseudoSELECTFP_F_S = 663,
+ PseudoSELECTFP_T_D32 = 664,
+ PseudoSELECTFP_T_D64 = 665,
+ PseudoSELECTFP_T_I = 666,
+ PseudoSELECTFP_T_I64 = 667,
+ PseudoSELECTFP_T_S = 668,
+ PseudoSELECT_D32 = 669,
+ PseudoSELECT_D64 = 670,
+ PseudoSELECT_I = 671,
+ PseudoSELECT_I64 = 672,
+ PseudoSELECT_S = 673,
+ PseudoTRUNC_W_D = 674,
+ PseudoTRUNC_W_D32 = 675,
+ PseudoTRUNC_W_S = 676,
+ PseudoUDIV = 677,
+ ROL = 678,
+ ROLImm = 679,
+ ROR = 680,
+ RORImm = 681,
+ RetRA = 682,
+ RetRA16 = 683,
+ SDC1_M1 = 684,
+ SDIV_MM_Pseudo = 685,
+ SDMacro = 686,
+ SDivIMacro = 687,
+ SDivMacro = 688,
+ SEQIMacro = 689,
+ SEQMacro = 690,
+ SGE = 691,
+ SGEImm = 692,
+ SGEImm64 = 693,
+ SGEU = 694,
+ SGEUImm = 695,
+ SGEUImm64 = 696,
+ SGTImm = 697,
+ SGTImm64 = 698,
+ SGTUImm = 699,
+ SGTUImm64 = 700,
+ SLE = 701,
+ SLEImm = 702,
+ SLEImm64 = 703,
+ SLEU = 704,
+ SLEUImm = 705,
+ SLEUImm64 = 706,
+ SLTImm64 = 707,
+ SLTUImm64 = 708,
+ SNEIMacro = 709,
+ SNEMacro = 710,
+ SNZ_B_PSEUDO = 711,
+ SNZ_D_PSEUDO = 712,
+ SNZ_H_PSEUDO = 713,
+ SNZ_V_PSEUDO = 714,
+ SNZ_W_PSEUDO = 715,
+ SRemIMacro = 716,
+ SRemMacro = 717,
+ STORE_ACC128 = 718,
+ STORE_ACC64 = 719,
+ STORE_ACC64DSP = 720,
+ STORE_CCOND_DSP = 721,
+ STR_D = 722,
+ STR_W = 723,
+ ST_F16 = 724,
+ SWM_MM = 725,
+ SZ_B_PSEUDO = 726,
+ SZ_D_PSEUDO = 727,
+ SZ_H_PSEUDO = 728,
+ SZ_V_PSEUDO = 729,
+ SZ_W_PSEUDO = 730,
+ SaaAddr = 731,
+ SaadAddr = 732,
+ SelBeqZ = 733,
+ SelBneZ = 734,
+ SelTBteqZCmp = 735,
+ SelTBteqZCmpi = 736,
+ SelTBteqZSlt = 737,
+ SelTBteqZSlti = 738,
+ SelTBteqZSltiu = 739,
+ SelTBteqZSltu = 740,
+ SelTBtneZCmp = 741,
+ SelTBtneZCmpi = 742,
+ SelTBtneZSlt = 743,
+ SelTBtneZSlti = 744,
+ SelTBtneZSltiu = 745,
+ SelTBtneZSltu = 746,
+ SltCCRxRy16 = 747,
+ SltiCCRxImmX16 = 748,
+ SltiuCCRxImmX16 = 749,
+ SltuCCRxRy16 = 750,
+ SltuRxRyRz16 = 751,
+ TAILCALL = 752,
+ TAILCALL64R6REG = 753,
+ TAILCALLHB64R6REG = 754,
+ TAILCALLHBR6REG = 755,
+ TAILCALLR6REG = 756,
+ TAILCALLREG = 757,
+ TAILCALLREG64 = 758,
+ TAILCALLREGHB = 759,
+ TAILCALLREGHB64 = 760,
+ TAILCALLREG_MM = 761,
+ TAILCALLREG_MMR6 = 762,
+ TAILCALL_MM = 763,
+ TAILCALL_MMR6 = 764,
+ TRAP = 765,
+ TRAP_MM = 766,
+ UDIV_MM_Pseudo = 767,
+ UDivIMacro = 768,
+ UDivMacro = 769,
+ URemIMacro = 770,
+ URemMacro = 771,
+ Ulh = 772,
+ Ulhu = 773,
+ Ulw = 774,
+ Ush = 775,
+ Usw = 776,
+ XOR_V_D_PSEUDO = 777,
+ XOR_V_H_PSEUDO = 778,
+ XOR_V_W_PSEUDO = 779,
+ ABSQ_S_PH = 780,
+ ABSQ_S_PH_MM = 781,
+ ABSQ_S_QB = 782,
+ ABSQ_S_QB_MMR2 = 783,
+ ABSQ_S_W = 784,
+ ABSQ_S_W_MM = 785,
+ ADD = 786,
+ ADDIUPC = 787,
+ ADDIUPC_MM = 788,
+ ADDIUPC_MMR6 = 789,
+ ADDIUR1SP_MM = 790,
+ ADDIUR2_MM = 791,
+ ADDIUS5_MM = 792,
+ ADDIUSP_MM = 793,
+ ADDIU_MMR6 = 794,
+ ADDQH_PH = 795,
+ ADDQH_PH_MMR2 = 796,
+ ADDQH_R_PH = 797,
+ ADDQH_R_PH_MMR2 = 798,
+ ADDQH_R_W = 799,
+ ADDQH_R_W_MMR2 = 800,
+ ADDQH_W = 801,
+ ADDQH_W_MMR2 = 802,
+ ADDQ_PH = 803,
+ ADDQ_PH_MM = 804,
+ ADDQ_S_PH = 805,
+ ADDQ_S_PH_MM = 806,
+ ADDQ_S_W = 807,
+ ADDQ_S_W_MM = 808,
+ ADDR_PS64 = 809,
+ ADDSC = 810,
+ ADDSC_MM = 811,
+ ADDS_A_B = 812,
+ ADDS_A_D = 813,
+ ADDS_A_H = 814,
+ ADDS_A_W = 815,
+ ADDS_S_B = 816,
+ ADDS_S_D = 817,
+ ADDS_S_H = 818,
+ ADDS_S_W = 819,
+ ADDS_U_B = 820,
+ ADDS_U_D = 821,
+ ADDS_U_H = 822,
+ ADDS_U_W = 823,
+ ADDU16_MM = 824,
+ ADDU16_MMR6 = 825,
+ ADDUH_QB = 826,
+ ADDUH_QB_MMR2 = 827,
+ ADDUH_R_QB = 828,
+ ADDUH_R_QB_MMR2 = 829,
+ ADDU_MMR6 = 830,
+ ADDU_PH = 831,
+ ADDU_PH_MMR2 = 832,
+ ADDU_QB = 833,
+ ADDU_QB_MM = 834,
+ ADDU_S_PH = 835,
+ ADDU_S_PH_MMR2 = 836,
+ ADDU_S_QB = 837,
+ ADDU_S_QB_MM = 838,
+ ADDVI_B = 839,
+ ADDVI_D = 840,
+ ADDVI_H = 841,
+ ADDVI_W = 842,
+ ADDV_B = 843,
+ ADDV_D = 844,
+ ADDV_H = 845,
+ ADDV_W = 846,
+ ADDWC = 847,
+ ADDWC_MM = 848,
+ ADD_A_B = 849,
+ ADD_A_D = 850,
+ ADD_A_H = 851,
+ ADD_A_W = 852,
+ ADD_MM = 853,
+ ADD_MMR6 = 854,
+ ADDi = 855,
+ ADDi_MM = 856,
+ ADDiu = 857,
+ ADDiu_MM = 858,
+ ADDu = 859,
+ ADDu_MM = 860,
+ ALIGN = 861,
+ ALIGN_MMR6 = 862,
+ ALUIPC = 863,
+ ALUIPC_MMR6 = 864,
+ AND = 865,
+ AND16_MM = 866,
+ AND16_MMR6 = 867,
+ AND64 = 868,
+ ANDI16_MM = 869,
+ ANDI16_MMR6 = 870,
+ ANDI_B = 871,
+ ANDI_MMR6 = 872,
+ AND_MM = 873,
+ AND_MMR6 = 874,
+ AND_V = 875,
+ ANDi = 876,
+ ANDi64 = 877,
+ ANDi_MM = 878,
+ APPEND = 879,
+ APPEND_MMR2 = 880,
+ ASUB_S_B = 881,
+ ASUB_S_D = 882,
+ ASUB_S_H = 883,
+ ASUB_S_W = 884,
+ ASUB_U_B = 885,
+ ASUB_U_D = 886,
+ ASUB_U_H = 887,
+ ASUB_U_W = 888,
+ AUI = 889,
+ AUIPC = 890,
+ AUIPC_MMR6 = 891,
+ AUI_MMR6 = 892,
+ AVER_S_B = 893,
+ AVER_S_D = 894,
+ AVER_S_H = 895,
+ AVER_S_W = 896,
+ AVER_U_B = 897,
+ AVER_U_D = 898,
+ AVER_U_H = 899,
+ AVER_U_W = 900,
+ AVE_S_B = 901,
+ AVE_S_D = 902,
+ AVE_S_H = 903,
+ AVE_S_W = 904,
+ AVE_U_B = 905,
+ AVE_U_D = 906,
+ AVE_U_H = 907,
+ AVE_U_W = 908,
+ AddiuRxImmX16 = 909,
+ AddiuRxPcImmX16 = 910,
+ AddiuRxRxImm16 = 911,
+ AddiuRxRxImmX16 = 912,
+ AddiuRxRyOffMemX16 = 913,
+ AddiuSpImm16 = 914,
+ AddiuSpImmX16 = 915,
+ AdduRxRyRz16 = 916,
+ AndRxRxRy16 = 917,
+ B16_MM = 918,
+ BADDu = 919,
+ BAL = 920,
+ BALC = 921,
+ BALC_MMR6 = 922,
+ BALIGN = 923,
+ BALIGN_MMR2 = 924,
+ BBIT0 = 925,
+ BBIT032 = 926,
+ BBIT1 = 927,
+ BBIT132 = 928,
+ BC = 929,
+ BC16_MMR6 = 930,
+ BC1EQZ = 931,
+ BC1EQZC_MMR6 = 932,
+ BC1F = 933,
+ BC1FL = 934,
+ BC1F_MM = 935,
+ BC1NEZ = 936,
+ BC1NEZC_MMR6 = 937,
+ BC1T = 938,
+ BC1TL = 939,
+ BC1T_MM = 940,
+ BC2EQZ = 941,
+ BC2EQZC_MMR6 = 942,
+ BC2NEZ = 943,
+ BC2NEZC_MMR6 = 944,
+ BCLRI_B = 945,
+ BCLRI_D = 946,
+ BCLRI_H = 947,
+ BCLRI_W = 948,
+ BCLR_B = 949,
+ BCLR_D = 950,
+ BCLR_H = 951,
+ BCLR_W = 952,
+ BC_MMR6 = 953,
+ BEQ = 954,
+ BEQ64 = 955,
+ BEQC = 956,
+ BEQC64 = 957,
+ BEQC_MMR6 = 958,
+ BEQL = 959,
+ BEQZ16_MM = 960,
+ BEQZALC = 961,
+ BEQZALC_MMR6 = 962,
+ BEQZC = 963,
+ BEQZC16_MMR6 = 964,
+ BEQZC64 = 965,
+ BEQZC_MM = 966,
+ BEQZC_MMR6 = 967,
+ BEQ_MM = 968,
+ BGEC = 969,
+ BGEC64 = 970,
+ BGEC_MMR6 = 971,
+ BGEUC = 972,
+ BGEUC64 = 973,
+ BGEUC_MMR6 = 974,
+ BGEZ = 975,
+ BGEZ64 = 976,
+ BGEZAL = 977,
+ BGEZALC = 978,
+ BGEZALC_MMR6 = 979,
+ BGEZALL = 980,
+ BGEZALS_MM = 981,
+ BGEZAL_MM = 982,
+ BGEZC = 983,
+ BGEZC64 = 984,
+ BGEZC_MMR6 = 985,
+ BGEZL = 986,
+ BGEZ_MM = 987,
+ BGTZ = 988,
+ BGTZ64 = 989,
+ BGTZALC = 990,
+ BGTZALC_MMR6 = 991,
+ BGTZC = 992,
+ BGTZC64 = 993,
+ BGTZC_MMR6 = 994,
+ BGTZL = 995,
+ BGTZ_MM = 996,
+ BINSLI_B = 997,
+ BINSLI_D = 998,
+ BINSLI_H = 999,
+ BINSLI_W = 1000,
+ BINSL_B = 1001,
+ BINSL_D = 1002,
+ BINSL_H = 1003,
+ BINSL_W = 1004,
+ BINSRI_B = 1005,
+ BINSRI_D = 1006,
+ BINSRI_H = 1007,
+ BINSRI_W = 1008,
+ BINSR_B = 1009,
+ BINSR_D = 1010,
+ BINSR_H = 1011,
+ BINSR_W = 1012,
+ BITREV = 1013,
+ BITREV_MM = 1014,
+ BITSWAP = 1015,
+ BITSWAP_MMR6 = 1016,
+ BLEZ = 1017,
+ BLEZ64 = 1018,
+ BLEZALC = 1019,
+ BLEZALC_MMR6 = 1020,
+ BLEZC = 1021,
+ BLEZC64 = 1022,
+ BLEZC_MMR6 = 1023,
+ BLEZL = 1024,
+ BLEZ_MM = 1025,
+ BLTC = 1026,
+ BLTC64 = 1027,
+ BLTC_MMR6 = 1028,
+ BLTUC = 1029,
+ BLTUC64 = 1030,
+ BLTUC_MMR6 = 1031,
+ BLTZ = 1032,
+ BLTZ64 = 1033,
+ BLTZAL = 1034,
+ BLTZALC = 1035,
+ BLTZALC_MMR6 = 1036,
+ BLTZALL = 1037,
+ BLTZALS_MM = 1038,
+ BLTZAL_MM = 1039,
+ BLTZC = 1040,
+ BLTZC64 = 1041,
+ BLTZC_MMR6 = 1042,
+ BLTZL = 1043,
+ BLTZ_MM = 1044,
+ BMNZI_B = 1045,
+ BMNZ_V = 1046,
+ BMZI_B = 1047,
+ BMZ_V = 1048,
+ BNE = 1049,
+ BNE64 = 1050,
+ BNEC = 1051,
+ BNEC64 = 1052,
+ BNEC_MMR6 = 1053,
+ BNEGI_B = 1054,
+ BNEGI_D = 1055,
+ BNEGI_H = 1056,
+ BNEGI_W = 1057,
+ BNEG_B = 1058,
+ BNEG_D = 1059,
+ BNEG_H = 1060,
+ BNEG_W = 1061,
+ BNEL = 1062,
+ BNEZ16_MM = 1063,
+ BNEZALC = 1064,
+ BNEZALC_MMR6 = 1065,
+ BNEZC = 1066,
+ BNEZC16_MMR6 = 1067,
+ BNEZC64 = 1068,
+ BNEZC_MM = 1069,
+ BNEZC_MMR6 = 1070,
+ BNE_MM = 1071,
+ BNVC = 1072,
+ BNVC_MMR6 = 1073,
+ BNZ_B = 1074,
+ BNZ_D = 1075,
+ BNZ_H = 1076,
+ BNZ_V = 1077,
+ BNZ_W = 1078,
+ BOVC = 1079,
+ BOVC_MMR6 = 1080,
+ BPOSGE32 = 1081,
+ BPOSGE32C_MMR3 = 1082,
+ BPOSGE32_MM = 1083,
+ BREAK = 1084,
+ BREAK16_MM = 1085,
+ BREAK16_MMR6 = 1086,
+ BREAK_MM = 1087,
+ BREAK_MMR6 = 1088,
+ BSELI_B = 1089,
+ BSEL_V = 1090,
+ BSETI_B = 1091,
+ BSETI_D = 1092,
+ BSETI_H = 1093,
+ BSETI_W = 1094,
+ BSET_B = 1095,
+ BSET_D = 1096,
+ BSET_H = 1097,
+ BSET_W = 1098,
+ BZ_B = 1099,
+ BZ_D = 1100,
+ BZ_H = 1101,
+ BZ_V = 1102,
+ BZ_W = 1103,
+ BeqzRxImm16 = 1104,
+ BeqzRxImmX16 = 1105,
+ Bimm16 = 1106,
+ BimmX16 = 1107,
+ BnezRxImm16 = 1108,
+ BnezRxImmX16 = 1109,
+ Break16 = 1110,
+ Bteqz16 = 1111,
+ BteqzX16 = 1112,
+ Btnez16 = 1113,
+ BtnezX16 = 1114,
+ CACHE = 1115,
+ CACHEE = 1116,
+ CACHEE_MM = 1117,
+ CACHE_MM = 1118,
+ CACHE_MMR6 = 1119,
+ CACHE_R6 = 1120,
+ CEIL_L_D64 = 1121,
+ CEIL_L_D_MMR6 = 1122,
+ CEIL_L_S = 1123,
+ CEIL_L_S_MMR6 = 1124,
+ CEIL_W_D32 = 1125,
+ CEIL_W_D64 = 1126,
+ CEIL_W_D_MMR6 = 1127,
+ CEIL_W_MM = 1128,
+ CEIL_W_S = 1129,
+ CEIL_W_S_MM = 1130,
+ CEIL_W_S_MMR6 = 1131,
+ CEQI_B = 1132,
+ CEQI_D = 1133,
+ CEQI_H = 1134,
+ CEQI_W = 1135,
+ CEQ_B = 1136,
+ CEQ_D = 1137,
+ CEQ_H = 1138,
+ CEQ_W = 1139,
+ CFC1 = 1140,
+ CFC1_MM = 1141,
+ CFC2_MM = 1142,
+ CFCMSA = 1143,
+ CINS = 1144,
+ CINS32 = 1145,
+ CINS64_32 = 1146,
+ CINS_i32 = 1147,
+ CLASS_D = 1148,
+ CLASS_D_MMR6 = 1149,
+ CLASS_S = 1150,
+ CLASS_S_MMR6 = 1151,
+ CLEI_S_B = 1152,
+ CLEI_S_D = 1153,
+ CLEI_S_H = 1154,
+ CLEI_S_W = 1155,
+ CLEI_U_B = 1156,
+ CLEI_U_D = 1157,
+ CLEI_U_H = 1158,
+ CLEI_U_W = 1159,
+ CLE_S_B = 1160,
+ CLE_S_D = 1161,
+ CLE_S_H = 1162,
+ CLE_S_W = 1163,
+ CLE_U_B = 1164,
+ CLE_U_D = 1165,
+ CLE_U_H = 1166,
+ CLE_U_W = 1167,
+ CLO = 1168,
+ CLO_MM = 1169,
+ CLO_MMR6 = 1170,
+ CLO_R6 = 1171,
+ CLTI_S_B = 1172,
+ CLTI_S_D = 1173,
+ CLTI_S_H = 1174,
+ CLTI_S_W = 1175,
+ CLTI_U_B = 1176,
+ CLTI_U_D = 1177,
+ CLTI_U_H = 1178,
+ CLTI_U_W = 1179,
+ CLT_S_B = 1180,
+ CLT_S_D = 1181,
+ CLT_S_H = 1182,
+ CLT_S_W = 1183,
+ CLT_U_B = 1184,
+ CLT_U_D = 1185,
+ CLT_U_H = 1186,
+ CLT_U_W = 1187,
+ CLZ = 1188,
+ CLZ_MM = 1189,
+ CLZ_MMR6 = 1190,
+ CLZ_R6 = 1191,
+ CMPGDU_EQ_QB = 1192,
+ CMPGDU_EQ_QB_MMR2 = 1193,
+ CMPGDU_LE_QB = 1194,
+ CMPGDU_LE_QB_MMR2 = 1195,
+ CMPGDU_LT_QB = 1196,
+ CMPGDU_LT_QB_MMR2 = 1197,
+ CMPGU_EQ_QB = 1198,
+ CMPGU_EQ_QB_MM = 1199,
+ CMPGU_LE_QB = 1200,
+ CMPGU_LE_QB_MM = 1201,
+ CMPGU_LT_QB = 1202,
+ CMPGU_LT_QB_MM = 1203,
+ CMPU_EQ_QB = 1204,
+ CMPU_EQ_QB_MM = 1205,
+ CMPU_LE_QB = 1206,
+ CMPU_LE_QB_MM = 1207,
+ CMPU_LT_QB = 1208,
+ CMPU_LT_QB_MM = 1209,
+ CMP_AF_D_MMR6 = 1210,
+ CMP_AF_S_MMR6 = 1211,
+ CMP_EQ_D = 1212,
+ CMP_EQ_D_MMR6 = 1213,
+ CMP_EQ_PH = 1214,
+ CMP_EQ_PH_MM = 1215,
+ CMP_EQ_S = 1216,
+ CMP_EQ_S_MMR6 = 1217,
+ CMP_F_D = 1218,
+ CMP_F_S = 1219,
+ CMP_LE_D = 1220,
+ CMP_LE_D_MMR6 = 1221,
+ CMP_LE_PH = 1222,
+ CMP_LE_PH_MM = 1223,
+ CMP_LE_S = 1224,
+ CMP_LE_S_MMR6 = 1225,
+ CMP_LT_D = 1226,
+ CMP_LT_D_MMR6 = 1227,
+ CMP_LT_PH = 1228,
+ CMP_LT_PH_MM = 1229,
+ CMP_LT_S = 1230,
+ CMP_LT_S_MMR6 = 1231,
+ CMP_SAF_D = 1232,
+ CMP_SAF_D_MMR6 = 1233,
+ CMP_SAF_S = 1234,
+ CMP_SAF_S_MMR6 = 1235,
+ CMP_SEQ_D = 1236,
+ CMP_SEQ_D_MMR6 = 1237,
+ CMP_SEQ_S = 1238,
+ CMP_SEQ_S_MMR6 = 1239,
+ CMP_SLE_D = 1240,
+ CMP_SLE_D_MMR6 = 1241,
+ CMP_SLE_S = 1242,
+ CMP_SLE_S_MMR6 = 1243,
+ CMP_SLT_D = 1244,
+ CMP_SLT_D_MMR6 = 1245,
+ CMP_SLT_S = 1246,
+ CMP_SLT_S_MMR6 = 1247,
+ CMP_SUEQ_D = 1248,
+ CMP_SUEQ_D_MMR6 = 1249,
+ CMP_SUEQ_S = 1250,
+ CMP_SUEQ_S_MMR6 = 1251,
+ CMP_SULE_D = 1252,
+ CMP_SULE_D_MMR6 = 1253,
+ CMP_SULE_S = 1254,
+ CMP_SULE_S_MMR6 = 1255,
+ CMP_SULT_D = 1256,
+ CMP_SULT_D_MMR6 = 1257,
+ CMP_SULT_S = 1258,
+ CMP_SULT_S_MMR6 = 1259,
+ CMP_SUN_D = 1260,
+ CMP_SUN_D_MMR6 = 1261,
+ CMP_SUN_S = 1262,
+ CMP_SUN_S_MMR6 = 1263,
+ CMP_UEQ_D = 1264,
+ CMP_UEQ_D_MMR6 = 1265,
+ CMP_UEQ_S = 1266,
+ CMP_UEQ_S_MMR6 = 1267,
+ CMP_ULE_D = 1268,
+ CMP_ULE_D_MMR6 = 1269,
+ CMP_ULE_S = 1270,
+ CMP_ULE_S_MMR6 = 1271,
+ CMP_ULT_D = 1272,
+ CMP_ULT_D_MMR6 = 1273,
+ CMP_ULT_S = 1274,
+ CMP_ULT_S_MMR6 = 1275,
+ CMP_UN_D = 1276,
+ CMP_UN_D_MMR6 = 1277,
+ CMP_UN_S = 1278,
+ CMP_UN_S_MMR6 = 1279,
+ COPY_S_B = 1280,
+ COPY_S_D = 1281,
+ COPY_S_H = 1282,
+ COPY_S_W = 1283,
+ COPY_U_B = 1284,
+ COPY_U_H = 1285,
+ COPY_U_W = 1286,
+ CRC32B = 1287,
+ CRC32CB = 1288,
+ CRC32CD = 1289,
+ CRC32CH = 1290,
+ CRC32CW = 1291,
+ CRC32D = 1292,
+ CRC32H = 1293,
+ CRC32W = 1294,
+ CTC1 = 1295,
+ CTC1_MM = 1296,
+ CTC2_MM = 1297,
+ CTCMSA = 1298,
+ CVT_D32_S = 1299,
+ CVT_D32_S_MM = 1300,
+ CVT_D32_W = 1301,
+ CVT_D32_W_MM = 1302,
+ CVT_D64_L = 1303,
+ CVT_D64_S = 1304,
+ CVT_D64_S_MM = 1305,
+ CVT_D64_W = 1306,
+ CVT_D64_W_MM = 1307,
+ CVT_D_L_MMR6 = 1308,
+ CVT_L_D64 = 1309,
+ CVT_L_D64_MM = 1310,
+ CVT_L_D_MMR6 = 1311,
+ CVT_L_S = 1312,
+ CVT_L_S_MM = 1313,
+ CVT_L_S_MMR6 = 1314,
+ CVT_PS_PW64 = 1315,
+ CVT_PS_S64 = 1316,
+ CVT_PW_PS64 = 1317,
+ CVT_S_D32 = 1318,
+ CVT_S_D32_MM = 1319,
+ CVT_S_D64 = 1320,
+ CVT_S_D64_MM = 1321,
+ CVT_S_L = 1322,
+ CVT_S_L_MMR6 = 1323,
+ CVT_S_PL64 = 1324,
+ CVT_S_PU64 = 1325,
+ CVT_S_W = 1326,
+ CVT_S_W_MM = 1327,
+ CVT_S_W_MMR6 = 1328,
+ CVT_W_D32 = 1329,
+ CVT_W_D32_MM = 1330,
+ CVT_W_D64 = 1331,
+ CVT_W_D64_MM = 1332,
+ CVT_W_S = 1333,
+ CVT_W_S_MM = 1334,
+ CVT_W_S_MMR6 = 1335,
+ C_EQ_D32 = 1336,
+ C_EQ_D32_MM = 1337,
+ C_EQ_D64 = 1338,
+ C_EQ_D64_MM = 1339,
+ C_EQ_S = 1340,
+ C_EQ_S_MM = 1341,
+ C_F_D32 = 1342,
+ C_F_D32_MM = 1343,
+ C_F_D64 = 1344,
+ C_F_D64_MM = 1345,
+ C_F_S = 1346,
+ C_F_S_MM = 1347,
+ C_LE_D32 = 1348,
+ C_LE_D32_MM = 1349,
+ C_LE_D64 = 1350,
+ C_LE_D64_MM = 1351,
+ C_LE_S = 1352,
+ C_LE_S_MM = 1353,
+ C_LT_D32 = 1354,
+ C_LT_D32_MM = 1355,
+ C_LT_D64 = 1356,
+ C_LT_D64_MM = 1357,
+ C_LT_S = 1358,
+ C_LT_S_MM = 1359,
+ C_NGE_D32 = 1360,
+ C_NGE_D32_MM = 1361,
+ C_NGE_D64 = 1362,
+ C_NGE_D64_MM = 1363,
+ C_NGE_S = 1364,
+ C_NGE_S_MM = 1365,
+ C_NGLE_D32 = 1366,
+ C_NGLE_D32_MM = 1367,
+ C_NGLE_D64 = 1368,
+ C_NGLE_D64_MM = 1369,
+ C_NGLE_S = 1370,
+ C_NGLE_S_MM = 1371,
+ C_NGL_D32 = 1372,
+ C_NGL_D32_MM = 1373,
+ C_NGL_D64 = 1374,
+ C_NGL_D64_MM = 1375,
+ C_NGL_S = 1376,
+ C_NGL_S_MM = 1377,
+ C_NGT_D32 = 1378,
+ C_NGT_D32_MM = 1379,
+ C_NGT_D64 = 1380,
+ C_NGT_D64_MM = 1381,
+ C_NGT_S = 1382,
+ C_NGT_S_MM = 1383,
+ C_OLE_D32 = 1384,
+ C_OLE_D32_MM = 1385,
+ C_OLE_D64 = 1386,
+ C_OLE_D64_MM = 1387,
+ C_OLE_S = 1388,
+ C_OLE_S_MM = 1389,
+ C_OLT_D32 = 1390,
+ C_OLT_D32_MM = 1391,
+ C_OLT_D64 = 1392,
+ C_OLT_D64_MM = 1393,
+ C_OLT_S = 1394,
+ C_OLT_S_MM = 1395,
+ C_SEQ_D32 = 1396,
+ C_SEQ_D32_MM = 1397,
+ C_SEQ_D64 = 1398,
+ C_SEQ_D64_MM = 1399,
+ C_SEQ_S = 1400,
+ C_SEQ_S_MM = 1401,
+ C_SF_D32 = 1402,
+ C_SF_D32_MM = 1403,
+ C_SF_D64 = 1404,
+ C_SF_D64_MM = 1405,
+ C_SF_S = 1406,
+ C_SF_S_MM = 1407,
+ C_UEQ_D32 = 1408,
+ C_UEQ_D32_MM = 1409,
+ C_UEQ_D64 = 1410,
+ C_UEQ_D64_MM = 1411,
+ C_UEQ_S = 1412,
+ C_UEQ_S_MM = 1413,
+ C_ULE_D32 = 1414,
+ C_ULE_D32_MM = 1415,
+ C_ULE_D64 = 1416,
+ C_ULE_D64_MM = 1417,
+ C_ULE_S = 1418,
+ C_ULE_S_MM = 1419,
+ C_ULT_D32 = 1420,
+ C_ULT_D32_MM = 1421,
+ C_ULT_D64 = 1422,
+ C_ULT_D64_MM = 1423,
+ C_ULT_S = 1424,
+ C_ULT_S_MM = 1425,
+ C_UN_D32 = 1426,
+ C_UN_D32_MM = 1427,
+ C_UN_D64 = 1428,
+ C_UN_D64_MM = 1429,
+ C_UN_S = 1430,
+ C_UN_S_MM = 1431,
+ CmpRxRy16 = 1432,
+ CmpiRxImm16 = 1433,
+ CmpiRxImmX16 = 1434,
+ DADD = 1435,
+ DADDi = 1436,
+ DADDiu = 1437,
+ DADDu = 1438,
+ DAHI = 1439,
+ DALIGN = 1440,
+ DATI = 1441,
+ DAUI = 1442,
+ DBITSWAP = 1443,
+ DCLO = 1444,
+ DCLO_R6 = 1445,
+ DCLZ = 1446,
+ DCLZ_R6 = 1447,
+ DDIV = 1448,
+ DDIVU = 1449,
+ DERET = 1450,
+ DERET_MM = 1451,
+ DERET_MMR6 = 1452,
+ DEXT = 1453,
+ DEXT64_32 = 1454,
+ DEXTM = 1455,
+ DEXTU = 1456,
+ DI = 1457,
+ DINS = 1458,
+ DINSM = 1459,
+ DINSU = 1460,
+ DIV = 1461,
+ DIVU = 1462,
+ DIVU_MMR6 = 1463,
+ DIV_MMR6 = 1464,
+ DIV_S_B = 1465,
+ DIV_S_D = 1466,
+ DIV_S_H = 1467,
+ DIV_S_W = 1468,
+ DIV_U_B = 1469,
+ DIV_U_D = 1470,
+ DIV_U_H = 1471,
+ DIV_U_W = 1472,
+ DI_MM = 1473,
+ DI_MMR6 = 1474,
+ DLSA = 1475,
+ DLSA_R6 = 1476,
+ DMFC0 = 1477,
+ DMFC1 = 1478,
+ DMFC2 = 1479,
+ DMFC2_OCTEON = 1480,
+ DMFGC0 = 1481,
+ DMOD = 1482,
+ DMODU = 1483,
+ DMT = 1484,
+ DMTC0 = 1485,
+ DMTC1 = 1486,
+ DMTC2 = 1487,
+ DMTC2_OCTEON = 1488,
+ DMTGC0 = 1489,
+ DMUH = 1490,
+ DMUHU = 1491,
+ DMUL = 1492,
+ DMULT = 1493,
+ DMULTu = 1494,
+ DMULU = 1495,
+ DMUL_R6 = 1496,
+ DOTP_S_D = 1497,
+ DOTP_S_H = 1498,
+ DOTP_S_W = 1499,
+ DOTP_U_D = 1500,
+ DOTP_U_H = 1501,
+ DOTP_U_W = 1502,
+ DPADD_S_D = 1503,
+ DPADD_S_H = 1504,
+ DPADD_S_W = 1505,
+ DPADD_U_D = 1506,
+ DPADD_U_H = 1507,
+ DPADD_U_W = 1508,
+ DPAQX_SA_W_PH = 1509,
+ DPAQX_SA_W_PH_MMR2 = 1510,
+ DPAQX_S_W_PH = 1511,
+ DPAQX_S_W_PH_MMR2 = 1512,
+ DPAQ_SA_L_W = 1513,
+ DPAQ_SA_L_W_MM = 1514,
+ DPAQ_S_W_PH = 1515,
+ DPAQ_S_W_PH_MM = 1516,
+ DPAU_H_QBL = 1517,
+ DPAU_H_QBL_MM = 1518,
+ DPAU_H_QBR = 1519,
+ DPAU_H_QBR_MM = 1520,
+ DPAX_W_PH = 1521,
+ DPAX_W_PH_MMR2 = 1522,
+ DPA_W_PH = 1523,
+ DPA_W_PH_MMR2 = 1524,
+ DPOP = 1525,
+ DPSQX_SA_W_PH = 1526,
+ DPSQX_SA_W_PH_MMR2 = 1527,
+ DPSQX_S_W_PH = 1528,
+ DPSQX_S_W_PH_MMR2 = 1529,
+ DPSQ_SA_L_W = 1530,
+ DPSQ_SA_L_W_MM = 1531,
+ DPSQ_S_W_PH = 1532,
+ DPSQ_S_W_PH_MM = 1533,
+ DPSUB_S_D = 1534,
+ DPSUB_S_H = 1535,
+ DPSUB_S_W = 1536,
+ DPSUB_U_D = 1537,
+ DPSUB_U_H = 1538,
+ DPSUB_U_W = 1539,
+ DPSU_H_QBL = 1540,
+ DPSU_H_QBL_MM = 1541,
+ DPSU_H_QBR = 1542,
+ DPSU_H_QBR_MM = 1543,
+ DPSX_W_PH = 1544,
+ DPSX_W_PH_MMR2 = 1545,
+ DPS_W_PH = 1546,
+ DPS_W_PH_MMR2 = 1547,
+ DROTR = 1548,
+ DROTR32 = 1549,
+ DROTRV = 1550,
+ DSBH = 1551,
+ DSDIV = 1552,
+ DSHD = 1553,
+ DSLL = 1554,
+ DSLL32 = 1555,
+ DSLL64_32 = 1556,
+ DSLLV = 1557,
+ DSRA = 1558,
+ DSRA32 = 1559,
+ DSRAV = 1560,
+ DSRL = 1561,
+ DSRL32 = 1562,
+ DSRLV = 1563,
+ DSUB = 1564,
+ DSUBu = 1565,
+ DUDIV = 1566,
+ DVP = 1567,
+ DVPE = 1568,
+ DVP_MMR6 = 1569,
+ DivRxRy16 = 1570,
+ DivuRxRy16 = 1571,
+ EHB = 1572,
+ EHB_MM = 1573,
+ EHB_MMR6 = 1574,
+ EI = 1575,
+ EI_MM = 1576,
+ EI_MMR6 = 1577,
+ EMT = 1578,
+ ERET = 1579,
+ ERETNC = 1580,
+ ERETNC_MMR6 = 1581,
+ ERET_MM = 1582,
+ ERET_MMR6 = 1583,
+ EVP = 1584,
+ EVPE = 1585,
+ EVP_MMR6 = 1586,
+ EXT = 1587,
+ EXTP = 1588,
+ EXTPDP = 1589,
+ EXTPDPV = 1590,
+ EXTPDPV_MM = 1591,
+ EXTPDP_MM = 1592,
+ EXTPV = 1593,
+ EXTPV_MM = 1594,
+ EXTP_MM = 1595,
+ EXTRV_RS_W = 1596,
+ EXTRV_RS_W_MM = 1597,
+ EXTRV_R_W = 1598,
+ EXTRV_R_W_MM = 1599,
+ EXTRV_S_H = 1600,
+ EXTRV_S_H_MM = 1601,
+ EXTRV_W = 1602,
+ EXTRV_W_MM = 1603,
+ EXTR_RS_W = 1604,
+ EXTR_RS_W_MM = 1605,
+ EXTR_R_W = 1606,
+ EXTR_R_W_MM = 1607,
+ EXTR_S_H = 1608,
+ EXTR_S_H_MM = 1609,
+ EXTR_W = 1610,
+ EXTR_W_MM = 1611,
+ EXTS = 1612,
+ EXTS32 = 1613,
+ EXT_MM = 1614,
+ EXT_MMR6 = 1615,
+ FABS_D32 = 1616,
+ FABS_D32_MM = 1617,
+ FABS_D64 = 1618,
+ FABS_D64_MM = 1619,
+ FABS_S = 1620,
+ FABS_S_MM = 1621,
+ FADD_D = 1622,
+ FADD_D32 = 1623,
+ FADD_D32_MM = 1624,
+ FADD_D64 = 1625,
+ FADD_D64_MM = 1626,
+ FADD_PS64 = 1627,
+ FADD_S = 1628,
+ FADD_S_MM = 1629,
+ FADD_S_MMR6 = 1630,
+ FADD_W = 1631,
+ FCAF_D = 1632,
+ FCAF_W = 1633,
+ FCEQ_D = 1634,
+ FCEQ_W = 1635,
+ FCLASS_D = 1636,
+ FCLASS_W = 1637,
+ FCLE_D = 1638,
+ FCLE_W = 1639,
+ FCLT_D = 1640,
+ FCLT_W = 1641,
+ FCMP_D32 = 1642,
+ FCMP_D32_MM = 1643,
+ FCMP_D64 = 1644,
+ FCMP_S32 = 1645,
+ FCMP_S32_MM = 1646,
+ FCNE_D = 1647,
+ FCNE_W = 1648,
+ FCOR_D = 1649,
+ FCOR_W = 1650,
+ FCUEQ_D = 1651,
+ FCUEQ_W = 1652,
+ FCULE_D = 1653,
+ FCULE_W = 1654,
+ FCULT_D = 1655,
+ FCULT_W = 1656,
+ FCUNE_D = 1657,
+ FCUNE_W = 1658,
+ FCUN_D = 1659,
+ FCUN_W = 1660,
+ FDIV_D = 1661,
+ FDIV_D32 = 1662,
+ FDIV_D32_MM = 1663,
+ FDIV_D64 = 1664,
+ FDIV_D64_MM = 1665,
+ FDIV_S = 1666,
+ FDIV_S_MM = 1667,
+ FDIV_S_MMR6 = 1668,
+ FDIV_W = 1669,
+ FEXDO_H = 1670,
+ FEXDO_W = 1671,
+ FEXP2_D = 1672,
+ FEXP2_W = 1673,
+ FEXUPL_D = 1674,
+ FEXUPL_W = 1675,
+ FEXUPR_D = 1676,
+ FEXUPR_W = 1677,
+ FFINT_S_D = 1678,
+ FFINT_S_W = 1679,
+ FFINT_U_D = 1680,
+ FFINT_U_W = 1681,
+ FFQL_D = 1682,
+ FFQL_W = 1683,
+ FFQR_D = 1684,
+ FFQR_W = 1685,
+ FILL_B = 1686,
+ FILL_D = 1687,
+ FILL_H = 1688,
+ FILL_W = 1689,
+ FLOG2_D = 1690,
+ FLOG2_W = 1691,
+ FLOOR_L_D64 = 1692,
+ FLOOR_L_D_MMR6 = 1693,
+ FLOOR_L_S = 1694,
+ FLOOR_L_S_MMR6 = 1695,
+ FLOOR_W_D32 = 1696,
+ FLOOR_W_D64 = 1697,
+ FLOOR_W_D_MMR6 = 1698,
+ FLOOR_W_MM = 1699,
+ FLOOR_W_S = 1700,
+ FLOOR_W_S_MM = 1701,
+ FLOOR_W_S_MMR6 = 1702,
+ FMADD_D = 1703,
+ FMADD_W = 1704,
+ FMAX_A_D = 1705,
+ FMAX_A_W = 1706,
+ FMAX_D = 1707,
+ FMAX_W = 1708,
+ FMIN_A_D = 1709,
+ FMIN_A_W = 1710,
+ FMIN_D = 1711,
+ FMIN_W = 1712,
+ FMOV_D32 = 1713,
+ FMOV_D32_MM = 1714,
+ FMOV_D64 = 1715,
+ FMOV_D64_MM = 1716,
+ FMOV_D_MMR6 = 1717,
+ FMOV_S = 1718,
+ FMOV_S_MM = 1719,
+ FMOV_S_MMR6 = 1720,
+ FMSUB_D = 1721,
+ FMSUB_W = 1722,
+ FMUL_D = 1723,
+ FMUL_D32 = 1724,
+ FMUL_D32_MM = 1725,
+ FMUL_D64 = 1726,
+ FMUL_D64_MM = 1727,
+ FMUL_PS64 = 1728,
+ FMUL_S = 1729,
+ FMUL_S_MM = 1730,
+ FMUL_S_MMR6 = 1731,
+ FMUL_W = 1732,
+ FNEG_D32 = 1733,
+ FNEG_D32_MM = 1734,
+ FNEG_D64 = 1735,
+ FNEG_D64_MM = 1736,
+ FNEG_S = 1737,
+ FNEG_S_MM = 1738,
+ FNEG_S_MMR6 = 1739,
+ FORK = 1740,
+ FRCP_D = 1741,
+ FRCP_W = 1742,
+ FRINT_D = 1743,
+ FRINT_W = 1744,
+ FRSQRT_D = 1745,
+ FRSQRT_W = 1746,
+ FSAF_D = 1747,
+ FSAF_W = 1748,
+ FSEQ_D = 1749,
+ FSEQ_W = 1750,
+ FSLE_D = 1751,
+ FSLE_W = 1752,
+ FSLT_D = 1753,
+ FSLT_W = 1754,
+ FSNE_D = 1755,
+ FSNE_W = 1756,
+ FSOR_D = 1757,
+ FSOR_W = 1758,
+ FSQRT_D = 1759,
+ FSQRT_D32 = 1760,
+ FSQRT_D32_MM = 1761,
+ FSQRT_D64 = 1762,
+ FSQRT_D64_MM = 1763,
+ FSQRT_S = 1764,
+ FSQRT_S_MM = 1765,
+ FSQRT_W = 1766,
+ FSUB_D = 1767,
+ FSUB_D32 = 1768,
+ FSUB_D32_MM = 1769,
+ FSUB_D64 = 1770,
+ FSUB_D64_MM = 1771,
+ FSUB_PS64 = 1772,
+ FSUB_S = 1773,
+ FSUB_S_MM = 1774,
+ FSUB_S_MMR6 = 1775,
+ FSUB_W = 1776,
+ FSUEQ_D = 1777,
+ FSUEQ_W = 1778,
+ FSULE_D = 1779,
+ FSULE_W = 1780,
+ FSULT_D = 1781,
+ FSULT_W = 1782,
+ FSUNE_D = 1783,
+ FSUNE_W = 1784,
+ FSUN_D = 1785,
+ FSUN_W = 1786,
+ FTINT_S_D = 1787,
+ FTINT_S_W = 1788,
+ FTINT_U_D = 1789,
+ FTINT_U_W = 1790,
+ FTQ_H = 1791,
+ FTQ_W = 1792,
+ FTRUNC_S_D = 1793,
+ FTRUNC_S_W = 1794,
+ FTRUNC_U_D = 1795,
+ FTRUNC_U_W = 1796,
+ GINVI = 1797,
+ GINVI_MMR6 = 1798,
+ GINVT = 1799,
+ GINVT_MMR6 = 1800,
+ HADD_S_D = 1801,
+ HADD_S_H = 1802,
+ HADD_S_W = 1803,
+ HADD_U_D = 1804,
+ HADD_U_H = 1805,
+ HADD_U_W = 1806,
+ HSUB_S_D = 1807,
+ HSUB_S_H = 1808,
+ HSUB_S_W = 1809,
+ HSUB_U_D = 1810,
+ HSUB_U_H = 1811,
+ HSUB_U_W = 1812,
+ HYPCALL = 1813,
+ HYPCALL_MM = 1814,
+ ILVEV_B = 1815,
+ ILVEV_D = 1816,
+ ILVEV_H = 1817,
+ ILVEV_W = 1818,
+ ILVL_B = 1819,
+ ILVL_D = 1820,
+ ILVL_H = 1821,
+ ILVL_W = 1822,
+ ILVOD_B = 1823,
+ ILVOD_D = 1824,
+ ILVOD_H = 1825,
+ ILVOD_W = 1826,
+ ILVR_B = 1827,
+ ILVR_D = 1828,
+ ILVR_H = 1829,
+ ILVR_W = 1830,
+ INS = 1831,
+ INSERT_B = 1832,
+ INSERT_D = 1833,
+ INSERT_H = 1834,
+ INSERT_W = 1835,
+ INSV = 1836,
+ INSVE_B = 1837,
+ INSVE_D = 1838,
+ INSVE_H = 1839,
+ INSVE_W = 1840,
+ INSV_MM = 1841,
+ INS_MM = 1842,
+ INS_MMR6 = 1843,
+ J = 1844,
+ JAL = 1845,
+ JALR = 1846,
+ JALR16_MM = 1847,
+ JALR64 = 1848,
+ JALRC16_MMR6 = 1849,
+ JALRC_HB_MMR6 = 1850,
+ JALRC_MMR6 = 1851,
+ JALRS16_MM = 1852,
+ JALRS_MM = 1853,
+ JALR_HB = 1854,
+ JALR_HB64 = 1855,
+ JALR_MM = 1856,
+ JALS_MM = 1857,
+ JALX = 1858,
+ JALX_MM = 1859,
+ JAL_MM = 1860,
+ JIALC = 1861,
+ JIALC64 = 1862,
+ JIALC_MMR6 = 1863,
+ JIC = 1864,
+ JIC64 = 1865,
+ JIC_MMR6 = 1866,
+ JR = 1867,
+ JR16_MM = 1868,
+ JR64 = 1869,
+ JRADDIUSP = 1870,
+ JRC16_MM = 1871,
+ JRC16_MMR6 = 1872,
+ JRCADDIUSP_MMR6 = 1873,
+ JR_HB = 1874,
+ JR_HB64 = 1875,
+ JR_HB64_R6 = 1876,
+ JR_HB_R6 = 1877,
+ JR_MM = 1878,
+ J_MM = 1879,
+ Jal16 = 1880,
+ JalB16 = 1881,
+ JrRa16 = 1882,
+ JrcRa16 = 1883,
+ JrcRx16 = 1884,
+ JumpLinkReg16 = 1885,
+ LB = 1886,
+ LB64 = 1887,
+ LBE = 1888,
+ LBE_MM = 1889,
+ LBU16_MM = 1890,
+ LBUX = 1891,
+ LBUX_MM = 1892,
+ LBU_MMR6 = 1893,
+ LB_MM = 1894,
+ LB_MMR6 = 1895,
+ LBu = 1896,
+ LBu64 = 1897,
+ LBuE = 1898,
+ LBuE_MM = 1899,
+ LBu_MM = 1900,
+ LD = 1901,
+ LDC1 = 1902,
+ LDC164 = 1903,
+ LDC1_D64_MMR6 = 1904,
+ LDC1_MM_D32 = 1905,
+ LDC1_MM_D64 = 1906,
+ LDC2 = 1907,
+ LDC2_MMR6 = 1908,
+ LDC2_R6 = 1909,
+ LDC3 = 1910,
+ LDI_B = 1911,
+ LDI_D = 1912,
+ LDI_H = 1913,
+ LDI_W = 1914,
+ LDL = 1915,
+ LDPC = 1916,
+ LDR = 1917,
+ LDXC1 = 1918,
+ LDXC164 = 1919,
+ LD_B = 1920,
+ LD_D = 1921,
+ LD_H = 1922,
+ LD_W = 1923,
+ LEA_ADDiu = 1924,
+ LEA_ADDiu64 = 1925,
+ LEA_ADDiu_MM = 1926,
+ LH = 1927,
+ LH64 = 1928,
+ LHE = 1929,
+ LHE_MM = 1930,
+ LHU16_MM = 1931,
+ LHX = 1932,
+ LHX_MM = 1933,
+ LH_MM = 1934,
+ LHu = 1935,
+ LHu64 = 1936,
+ LHuE = 1937,
+ LHuE_MM = 1938,
+ LHu_MM = 1939,
+ LI16_MM = 1940,
+ LI16_MMR6 = 1941,
+ LL = 1942,
+ LL64 = 1943,
+ LL64_R6 = 1944,
+ LLD = 1945,
+ LLD_R6 = 1946,
+ LLE = 1947,
+ LLE_MM = 1948,
+ LL_MM = 1949,
+ LL_MMR6 = 1950,
+ LL_R6 = 1951,
+ LSA = 1952,
+ LSA_MMR6 = 1953,
+ LSA_R6 = 1954,
+ LUI_MMR6 = 1955,
+ LUXC1 = 1956,
+ LUXC164 = 1957,
+ LUXC1_MM = 1958,
+ LUi = 1959,
+ LUi64 = 1960,
+ LUi_MM = 1961,
+ LW = 1962,
+ LW16_MM = 1963,
+ LW64 = 1964,
+ LWC1 = 1965,
+ LWC1_MM = 1966,
+ LWC2 = 1967,
+ LWC2_MMR6 = 1968,
+ LWC2_R6 = 1969,
+ LWC3 = 1970,
+ LWDSP = 1971,
+ LWDSP_MM = 1972,
+ LWE = 1973,
+ LWE_MM = 1974,
+ LWGP_MM = 1975,
+ LWL = 1976,
+ LWL64 = 1977,
+ LWLE = 1978,
+ LWLE_MM = 1979,
+ LWL_MM = 1980,
+ LWM16_MM = 1981,
+ LWM16_MMR6 = 1982,
+ LWM32_MM = 1983,
+ LWPC = 1984,
+ LWPC_MMR6 = 1985,
+ LWP_MM = 1986,
+ LWR = 1987,
+ LWR64 = 1988,
+ LWRE = 1989,
+ LWRE_MM = 1990,
+ LWR_MM = 1991,
+ LWSP_MM = 1992,
+ LWUPC = 1993,
+ LWU_MM = 1994,
+ LWX = 1995,
+ LWXC1 = 1996,
+ LWXC1_MM = 1997,
+ LWXS_MM = 1998,
+ LWX_MM = 1999,
+ LW_MM = 2000,
+ LW_MMR6 = 2001,
+ LWu = 2002,
+ LbRxRyOffMemX16 = 2003,
+ LbuRxRyOffMemX16 = 2004,
+ LhRxRyOffMemX16 = 2005,
+ LhuRxRyOffMemX16 = 2006,
+ LiRxImm16 = 2007,
+ LiRxImmAlignX16 = 2008,
+ LiRxImmX16 = 2009,
+ LwRxPcTcp16 = 2010,
+ LwRxPcTcpX16 = 2011,
+ LwRxRyOffMemX16 = 2012,
+ LwRxSpImmX16 = 2013,
+ MADD = 2014,
+ MADDF_D = 2015,
+ MADDF_D_MMR6 = 2016,
+ MADDF_S = 2017,
+ MADDF_S_MMR6 = 2018,
+ MADDR_Q_H = 2019,
+ MADDR_Q_W = 2020,
+ MADDU = 2021,
+ MADDU_DSP = 2022,
+ MADDU_DSP_MM = 2023,
+ MADDU_MM = 2024,
+ MADDV_B = 2025,
+ MADDV_D = 2026,
+ MADDV_H = 2027,
+ MADDV_W = 2028,
+ MADD_D32 = 2029,
+ MADD_D32_MM = 2030,
+ MADD_D64 = 2031,
+ MADD_DSP = 2032,
+ MADD_DSP_MM = 2033,
+ MADD_MM = 2034,
+ MADD_Q_H = 2035,
+ MADD_Q_W = 2036,
+ MADD_S = 2037,
+ MADD_S_MM = 2038,
+ MAQ_SA_W_PHL = 2039,
+ MAQ_SA_W_PHL_MM = 2040,
+ MAQ_SA_W_PHR = 2041,
+ MAQ_SA_W_PHR_MM = 2042,
+ MAQ_S_W_PHL = 2043,
+ MAQ_S_W_PHL_MM = 2044,
+ MAQ_S_W_PHR = 2045,
+ MAQ_S_W_PHR_MM = 2046,
+ MAXA_D = 2047,
+ MAXA_D_MMR6 = 2048,
+ MAXA_S = 2049,
+ MAXA_S_MMR6 = 2050,
+ MAXI_S_B = 2051,
+ MAXI_S_D = 2052,
+ MAXI_S_H = 2053,
+ MAXI_S_W = 2054,
+ MAXI_U_B = 2055,
+ MAXI_U_D = 2056,
+ MAXI_U_H = 2057,
+ MAXI_U_W = 2058,
+ MAX_A_B = 2059,
+ MAX_A_D = 2060,
+ MAX_A_H = 2061,
+ MAX_A_W = 2062,
+ MAX_D = 2063,
+ MAX_D_MMR6 = 2064,
+ MAX_S = 2065,
+ MAX_S_B = 2066,
+ MAX_S_D = 2067,
+ MAX_S_H = 2068,
+ MAX_S_MMR6 = 2069,
+ MAX_S_W = 2070,
+ MAX_U_B = 2071,
+ MAX_U_D = 2072,
+ MAX_U_H = 2073,
+ MAX_U_W = 2074,
+ MFC0 = 2075,
+ MFC0_MMR6 = 2076,
+ MFC1 = 2077,
+ MFC1_D64 = 2078,
+ MFC1_MM = 2079,
+ MFC1_MMR6 = 2080,
+ MFC2 = 2081,
+ MFC2_MMR6 = 2082,
+ MFGC0 = 2083,
+ MFGC0_MM = 2084,
+ MFHC0_MMR6 = 2085,
+ MFHC1_D32 = 2086,
+ MFHC1_D32_MM = 2087,
+ MFHC1_D64 = 2088,
+ MFHC1_D64_MM = 2089,
+ MFHC2_MMR6 = 2090,
+ MFHGC0 = 2091,
+ MFHGC0_MM = 2092,
+ MFHI = 2093,
+ MFHI16_MM = 2094,
+ MFHI64 = 2095,
+ MFHI_DSP = 2096,
+ MFHI_DSP_MM = 2097,
+ MFHI_MM = 2098,
+ MFLO = 2099,
+ MFLO16_MM = 2100,
+ MFLO64 = 2101,
+ MFLO_DSP = 2102,
+ MFLO_DSP_MM = 2103,
+ MFLO_MM = 2104,
+ MFTR = 2105,
+ MINA_D = 2106,
+ MINA_D_MMR6 = 2107,
+ MINA_S = 2108,
+ MINA_S_MMR6 = 2109,
+ MINI_S_B = 2110,
+ MINI_S_D = 2111,
+ MINI_S_H = 2112,
+ MINI_S_W = 2113,
+ MINI_U_B = 2114,
+ MINI_U_D = 2115,
+ MINI_U_H = 2116,
+ MINI_U_W = 2117,
+ MIN_A_B = 2118,
+ MIN_A_D = 2119,
+ MIN_A_H = 2120,
+ MIN_A_W = 2121,
+ MIN_D = 2122,
+ MIN_D_MMR6 = 2123,
+ MIN_S = 2124,
+ MIN_S_B = 2125,
+ MIN_S_D = 2126,
+ MIN_S_H = 2127,
+ MIN_S_MMR6 = 2128,
+ MIN_S_W = 2129,
+ MIN_U_B = 2130,
+ MIN_U_D = 2131,
+ MIN_U_H = 2132,
+ MIN_U_W = 2133,
+ MOD = 2134,
+ MODSUB = 2135,
+ MODSUB_MM = 2136,
+ MODU = 2137,
+ MODU_MMR6 = 2138,
+ MOD_MMR6 = 2139,
+ MOD_S_B = 2140,
+ MOD_S_D = 2141,
+ MOD_S_H = 2142,
+ MOD_S_W = 2143,
+ MOD_U_B = 2144,
+ MOD_U_D = 2145,
+ MOD_U_H = 2146,
+ MOD_U_W = 2147,
+ MOVE16_MM = 2148,
+ MOVE16_MMR6 = 2149,
+ MOVEP_MM = 2150,
+ MOVEP_MMR6 = 2151,
+ MOVE_V = 2152,
+ MOVF_D32 = 2153,
+ MOVF_D32_MM = 2154,
+ MOVF_D64 = 2155,
+ MOVF_I = 2156,
+ MOVF_I64 = 2157,
+ MOVF_I_MM = 2158,
+ MOVF_S = 2159,
+ MOVF_S_MM = 2160,
+ MOVN_I64_D64 = 2161,
+ MOVN_I64_I = 2162,
+ MOVN_I64_I64 = 2163,
+ MOVN_I64_S = 2164,
+ MOVN_I_D32 = 2165,
+ MOVN_I_D32_MM = 2166,
+ MOVN_I_D64 = 2167,
+ MOVN_I_I = 2168,
+ MOVN_I_I64 = 2169,
+ MOVN_I_MM = 2170,
+ MOVN_I_S = 2171,
+ MOVN_I_S_MM = 2172,
+ MOVT_D32 = 2173,
+ MOVT_D32_MM = 2174,
+ MOVT_D64 = 2175,
+ MOVT_I = 2176,
+ MOVT_I64 = 2177,
+ MOVT_I_MM = 2178,
+ MOVT_S = 2179,
+ MOVT_S_MM = 2180,
+ MOVZ_I64_D64 = 2181,
+ MOVZ_I64_I = 2182,
+ MOVZ_I64_I64 = 2183,
+ MOVZ_I64_S = 2184,
+ MOVZ_I_D32 = 2185,
+ MOVZ_I_D32_MM = 2186,
+ MOVZ_I_D64 = 2187,
+ MOVZ_I_I = 2188,
+ MOVZ_I_I64 = 2189,
+ MOVZ_I_MM = 2190,
+ MOVZ_I_S = 2191,
+ MOVZ_I_S_MM = 2192,
+ MSUB = 2193,
+ MSUBF_D = 2194,
+ MSUBF_D_MMR6 = 2195,
+ MSUBF_S = 2196,
+ MSUBF_S_MMR6 = 2197,
+ MSUBR_Q_H = 2198,
+ MSUBR_Q_W = 2199,
+ MSUBU = 2200,
+ MSUBU_DSP = 2201,
+ MSUBU_DSP_MM = 2202,
+ MSUBU_MM = 2203,
+ MSUBV_B = 2204,
+ MSUBV_D = 2205,
+ MSUBV_H = 2206,
+ MSUBV_W = 2207,
+ MSUB_D32 = 2208,
+ MSUB_D32_MM = 2209,
+ MSUB_D64 = 2210,
+ MSUB_DSP = 2211,
+ MSUB_DSP_MM = 2212,
+ MSUB_MM = 2213,
+ MSUB_Q_H = 2214,
+ MSUB_Q_W = 2215,
+ MSUB_S = 2216,
+ MSUB_S_MM = 2217,
+ MTC0 = 2218,
+ MTC0_MMR6 = 2219,
+ MTC1 = 2220,
+ MTC1_D64 = 2221,
+ MTC1_D64_MM = 2222,
+ MTC1_MM = 2223,
+ MTC1_MMR6 = 2224,
+ MTC2 = 2225,
+ MTC2_MMR6 = 2226,
+ MTGC0 = 2227,
+ MTGC0_MM = 2228,
+ MTHC0_MMR6 = 2229,
+ MTHC1_D32 = 2230,
+ MTHC1_D32_MM = 2231,
+ MTHC1_D64 = 2232,
+ MTHC1_D64_MM = 2233,
+ MTHC2_MMR6 = 2234,
+ MTHGC0 = 2235,
+ MTHGC0_MM = 2236,
+ MTHI = 2237,
+ MTHI64 = 2238,
+ MTHI_DSP = 2239,
+ MTHI_DSP_MM = 2240,
+ MTHI_MM = 2241,
+ MTHLIP = 2242,
+ MTHLIP_MM = 2243,
+ MTLO = 2244,
+ MTLO64 = 2245,
+ MTLO_DSP = 2246,
+ MTLO_DSP_MM = 2247,
+ MTLO_MM = 2248,
+ MTM0 = 2249,
+ MTM1 = 2250,
+ MTM2 = 2251,
+ MTP0 = 2252,
+ MTP1 = 2253,
+ MTP2 = 2254,
+ MTTR = 2255,
+ MUH = 2256,
+ MUHU = 2257,
+ MUHU_MMR6 = 2258,
+ MUH_MMR6 = 2259,
+ MUL = 2260,
+ MULEQ_S_W_PHL = 2261,
+ MULEQ_S_W_PHL_MM = 2262,
+ MULEQ_S_W_PHR = 2263,
+ MULEQ_S_W_PHR_MM = 2264,
+ MULEU_S_PH_QBL = 2265,
+ MULEU_S_PH_QBL_MM = 2266,
+ MULEU_S_PH_QBR = 2267,
+ MULEU_S_PH_QBR_MM = 2268,
+ MULQ_RS_PH = 2269,
+ MULQ_RS_PH_MM = 2270,
+ MULQ_RS_W = 2271,
+ MULQ_RS_W_MMR2 = 2272,
+ MULQ_S_PH = 2273,
+ MULQ_S_PH_MMR2 = 2274,
+ MULQ_S_W = 2275,
+ MULQ_S_W_MMR2 = 2276,
+ MULR_PS64 = 2277,
+ MULR_Q_H = 2278,
+ MULR_Q_W = 2279,
+ MULSAQ_S_W_PH = 2280,
+ MULSAQ_S_W_PH_MM = 2281,
+ MULSA_W_PH = 2282,
+ MULSA_W_PH_MMR2 = 2283,
+ MULT = 2284,
+ MULTU_DSP = 2285,
+ MULTU_DSP_MM = 2286,
+ MULT_DSP = 2287,
+ MULT_DSP_MM = 2288,
+ MULT_MM = 2289,
+ MULTu = 2290,
+ MULTu_MM = 2291,
+ MULU = 2292,
+ MULU_MMR6 = 2293,
+ MULV_B = 2294,
+ MULV_D = 2295,
+ MULV_H = 2296,
+ MULV_W = 2297,
+ MUL_MM = 2298,
+ MUL_MMR6 = 2299,
+ MUL_PH = 2300,
+ MUL_PH_MMR2 = 2301,
+ MUL_Q_H = 2302,
+ MUL_Q_W = 2303,
+ MUL_R6 = 2304,
+ MUL_S_PH = 2305,
+ MUL_S_PH_MMR2 = 2306,
+ Mfhi16 = 2307,
+ Mflo16 = 2308,
+ Move32R16 = 2309,
+ MoveR3216 = 2310,
+ NAL = 2311,
+ NLOC_B = 2312,
+ NLOC_D = 2313,
+ NLOC_H = 2314,
+ NLOC_W = 2315,
+ NLZC_B = 2316,
+ NLZC_D = 2317,
+ NLZC_H = 2318,
+ NLZC_W = 2319,
+ NMADD_D32 = 2320,
+ NMADD_D32_MM = 2321,
+ NMADD_D64 = 2322,
+ NMADD_S = 2323,
+ NMADD_S_MM = 2324,
+ NMSUB_D32 = 2325,
+ NMSUB_D32_MM = 2326,
+ NMSUB_D64 = 2327,
+ NMSUB_S = 2328,
+ NMSUB_S_MM = 2329,
+ NOR = 2330,
+ NOR64 = 2331,
+ NORI_B = 2332,
+ NOR_MM = 2333,
+ NOR_MMR6 = 2334,
+ NOR_V = 2335,
+ NOT16_MM = 2336,
+ NOT16_MMR6 = 2337,
+ NegRxRy16 = 2338,
+ NotRxRy16 = 2339,
+ OR = 2340,
+ OR16_MM = 2341,
+ OR16_MMR6 = 2342,
+ OR64 = 2343,
+ ORI_B = 2344,
+ ORI_MMR6 = 2345,
+ OR_MM = 2346,
+ OR_MMR6 = 2347,
+ OR_V = 2348,
+ ORi = 2349,
+ ORi64 = 2350,
+ ORi_MM = 2351,
+ OrRxRxRy16 = 2352,
+ PACKRL_PH = 2353,
+ PACKRL_PH_MM = 2354,
+ PAUSE = 2355,
+ PAUSE_MM = 2356,
+ PAUSE_MMR6 = 2357,
+ PCKEV_B = 2358,
+ PCKEV_D = 2359,
+ PCKEV_H = 2360,
+ PCKEV_W = 2361,
+ PCKOD_B = 2362,
+ PCKOD_D = 2363,
+ PCKOD_H = 2364,
+ PCKOD_W = 2365,
+ PCNT_B = 2366,
+ PCNT_D = 2367,
+ PCNT_H = 2368,
+ PCNT_W = 2369,
+ PICK_PH = 2370,
+ PICK_PH_MM = 2371,
+ PICK_QB = 2372,
+ PICK_QB_MM = 2373,
+ PLL_PS64 = 2374,
+ PLU_PS64 = 2375,
+ POP = 2376,
+ PRECEQU_PH_QBL = 2377,
+ PRECEQU_PH_QBLA = 2378,
+ PRECEQU_PH_QBLA_MM = 2379,
+ PRECEQU_PH_QBL_MM = 2380,
+ PRECEQU_PH_QBR = 2381,
+ PRECEQU_PH_QBRA = 2382,
+ PRECEQU_PH_QBRA_MM = 2383,
+ PRECEQU_PH_QBR_MM = 2384,
+ PRECEQ_W_PHL = 2385,
+ PRECEQ_W_PHL_MM = 2386,
+ PRECEQ_W_PHR = 2387,
+ PRECEQ_W_PHR_MM = 2388,
+ PRECEU_PH_QBL = 2389,
+ PRECEU_PH_QBLA = 2390,
+ PRECEU_PH_QBLA_MM = 2391,
+ PRECEU_PH_QBL_MM = 2392,
+ PRECEU_PH_QBR = 2393,
+ PRECEU_PH_QBRA = 2394,
+ PRECEU_PH_QBRA_MM = 2395,
+ PRECEU_PH_QBR_MM = 2396,
+ PRECRQU_S_QB_PH = 2397,
+ PRECRQU_S_QB_PH_MM = 2398,
+ PRECRQ_PH_W = 2399,
+ PRECRQ_PH_W_MM = 2400,
+ PRECRQ_QB_PH = 2401,
+ PRECRQ_QB_PH_MM = 2402,
+ PRECRQ_RS_PH_W = 2403,
+ PRECRQ_RS_PH_W_MM = 2404,
+ PRECR_QB_PH = 2405,
+ PRECR_QB_PH_MMR2 = 2406,
+ PRECR_SRA_PH_W = 2407,
+ PRECR_SRA_PH_W_MMR2 = 2408,
+ PRECR_SRA_R_PH_W = 2409,
+ PRECR_SRA_R_PH_W_MMR2 = 2410,
+ PREF = 2411,
+ PREFE = 2412,
+ PREFE_MM = 2413,
+ PREFX_MM = 2414,
+ PREF_MM = 2415,
+ PREF_MMR6 = 2416,
+ PREF_R6 = 2417,
+ PREPEND = 2418,
+ PREPEND_MMR2 = 2419,
+ PUL_PS64 = 2420,
+ PUU_PS64 = 2421,
+ RADDU_W_QB = 2422,
+ RADDU_W_QB_MM = 2423,
+ RDDSP = 2424,
+ RDDSP_MM = 2425,
+ RDHWR = 2426,
+ RDHWR64 = 2427,
+ RDHWR_MM = 2428,
+ RDHWR_MMR6 = 2429,
+ RDPGPR_MMR6 = 2430,
+ RECIP_D32 = 2431,
+ RECIP_D32_MM = 2432,
+ RECIP_D64 = 2433,
+ RECIP_D64_MM = 2434,
+ RECIP_S = 2435,
+ RECIP_S_MM = 2436,
+ REPLV_PH = 2437,
+ REPLV_PH_MM = 2438,
+ REPLV_QB = 2439,
+ REPLV_QB_MM = 2440,
+ REPL_PH = 2441,
+ REPL_PH_MM = 2442,
+ REPL_QB = 2443,
+ REPL_QB_MM = 2444,
+ RINT_D = 2445,
+ RINT_D_MMR6 = 2446,
+ RINT_S = 2447,
+ RINT_S_MMR6 = 2448,
+ ROTR = 2449,
+ ROTRV = 2450,
+ ROTRV_MM = 2451,
+ ROTR_MM = 2452,
+ ROUND_L_D64 = 2453,
+ ROUND_L_D_MMR6 = 2454,
+ ROUND_L_S = 2455,
+ ROUND_L_S_MMR6 = 2456,
+ ROUND_W_D32 = 2457,
+ ROUND_W_D64 = 2458,
+ ROUND_W_D_MMR6 = 2459,
+ ROUND_W_MM = 2460,
+ ROUND_W_S = 2461,
+ ROUND_W_S_MM = 2462,
+ ROUND_W_S_MMR6 = 2463,
+ RSQRT_D32 = 2464,
+ RSQRT_D32_MM = 2465,
+ RSQRT_D64 = 2466,
+ RSQRT_D64_MM = 2467,
+ RSQRT_S = 2468,
+ RSQRT_S_MM = 2469,
+ Restore16 = 2470,
+ RestoreX16 = 2471,
+ SAA = 2472,
+ SAAD = 2473,
+ SAT_S_B = 2474,
+ SAT_S_D = 2475,
+ SAT_S_H = 2476,
+ SAT_S_W = 2477,
+ SAT_U_B = 2478,
+ SAT_U_D = 2479,
+ SAT_U_H = 2480,
+ SAT_U_W = 2481,
+ SB = 2482,
+ SB16_MM = 2483,
+ SB16_MMR6 = 2484,
+ SB64 = 2485,
+ SBE = 2486,
+ SBE_MM = 2487,
+ SB_MM = 2488,
+ SB_MMR6 = 2489,
+ SC = 2490,
+ SC64 = 2491,
+ SC64_R6 = 2492,
+ SCD = 2493,
+ SCD_R6 = 2494,
+ SCE = 2495,
+ SCE_MM = 2496,
+ SC_MM = 2497,
+ SC_MMR6 = 2498,
+ SC_R6 = 2499,
+ SD = 2500,
+ SDBBP = 2501,
+ SDBBP16_MM = 2502,
+ SDBBP16_MMR6 = 2503,
+ SDBBP_MM = 2504,
+ SDBBP_MMR6 = 2505,
+ SDBBP_R6 = 2506,
+ SDC1 = 2507,
+ SDC164 = 2508,
+ SDC1_D64_MMR6 = 2509,
+ SDC1_MM_D32 = 2510,
+ SDC1_MM_D64 = 2511,
+ SDC2 = 2512,
+ SDC2_MMR6 = 2513,
+ SDC2_R6 = 2514,
+ SDC3 = 2515,
+ SDIV = 2516,
+ SDIV_MM = 2517,
+ SDL = 2518,
+ SDR = 2519,
+ SDXC1 = 2520,
+ SDXC164 = 2521,
+ SEB = 2522,
+ SEB64 = 2523,
+ SEB_MM = 2524,
+ SEH = 2525,
+ SEH64 = 2526,
+ SEH_MM = 2527,
+ SELEQZ = 2528,
+ SELEQZ64 = 2529,
+ SELEQZ_D = 2530,
+ SELEQZ_D_MMR6 = 2531,
+ SELEQZ_MMR6 = 2532,
+ SELEQZ_S = 2533,
+ SELEQZ_S_MMR6 = 2534,
+ SELNEZ = 2535,
+ SELNEZ64 = 2536,
+ SELNEZ_D = 2537,
+ SELNEZ_D_MMR6 = 2538,
+ SELNEZ_MMR6 = 2539,
+ SELNEZ_S = 2540,
+ SELNEZ_S_MMR6 = 2541,
+ SEL_D = 2542,
+ SEL_D_MMR6 = 2543,
+ SEL_S = 2544,
+ SEL_S_MMR6 = 2545,
+ SEQ = 2546,
+ SEQi = 2547,
+ SH = 2548,
+ SH16_MM = 2549,
+ SH16_MMR6 = 2550,
+ SH64 = 2551,
+ SHE = 2552,
+ SHE_MM = 2553,
+ SHF_B = 2554,
+ SHF_H = 2555,
+ SHF_W = 2556,
+ SHILO = 2557,
+ SHILOV = 2558,
+ SHILOV_MM = 2559,
+ SHILO_MM = 2560,
+ SHLLV_PH = 2561,
+ SHLLV_PH_MM = 2562,
+ SHLLV_QB = 2563,
+ SHLLV_QB_MM = 2564,
+ SHLLV_S_PH = 2565,
+ SHLLV_S_PH_MM = 2566,
+ SHLLV_S_W = 2567,
+ SHLLV_S_W_MM = 2568,
+ SHLL_PH = 2569,
+ SHLL_PH_MM = 2570,
+ SHLL_QB = 2571,
+ SHLL_QB_MM = 2572,
+ SHLL_S_PH = 2573,
+ SHLL_S_PH_MM = 2574,
+ SHLL_S_W = 2575,
+ SHLL_S_W_MM = 2576,
+ SHRAV_PH = 2577,
+ SHRAV_PH_MM = 2578,
+ SHRAV_QB = 2579,
+ SHRAV_QB_MMR2 = 2580,
+ SHRAV_R_PH = 2581,
+ SHRAV_R_PH_MM = 2582,
+ SHRAV_R_QB = 2583,
+ SHRAV_R_QB_MMR2 = 2584,
+ SHRAV_R_W = 2585,
+ SHRAV_R_W_MM = 2586,
+ SHRA_PH = 2587,
+ SHRA_PH_MM = 2588,
+ SHRA_QB = 2589,
+ SHRA_QB_MMR2 = 2590,
+ SHRA_R_PH = 2591,
+ SHRA_R_PH_MM = 2592,
+ SHRA_R_QB = 2593,
+ SHRA_R_QB_MMR2 = 2594,
+ SHRA_R_W = 2595,
+ SHRA_R_W_MM = 2596,
+ SHRLV_PH = 2597,
+ SHRLV_PH_MMR2 = 2598,
+ SHRLV_QB = 2599,
+ SHRLV_QB_MM = 2600,
+ SHRL_PH = 2601,
+ SHRL_PH_MMR2 = 2602,
+ SHRL_QB = 2603,
+ SHRL_QB_MM = 2604,
+ SH_MM = 2605,
+ SH_MMR6 = 2606,
+ SIGRIE = 2607,
+ SIGRIE_MMR6 = 2608,
+ SLDI_B = 2609,
+ SLDI_D = 2610,
+ SLDI_H = 2611,
+ SLDI_W = 2612,
+ SLD_B = 2613,
+ SLD_D = 2614,
+ SLD_H = 2615,
+ SLD_W = 2616,
+ SLL = 2617,
+ SLL16_MM = 2618,
+ SLL16_MMR6 = 2619,
+ SLL64_32 = 2620,
+ SLL64_64 = 2621,
+ SLLI_B = 2622,
+ SLLI_D = 2623,
+ SLLI_H = 2624,
+ SLLI_W = 2625,
+ SLLV = 2626,
+ SLLV_MM = 2627,
+ SLL_B = 2628,
+ SLL_D = 2629,
+ SLL_H = 2630,
+ SLL_MM = 2631,
+ SLL_MMR6 = 2632,
+ SLL_W = 2633,
+ SLT = 2634,
+ SLT64 = 2635,
+ SLT_MM = 2636,
+ SLTi = 2637,
+ SLTi64 = 2638,
+ SLTi_MM = 2639,
+ SLTiu = 2640,
+ SLTiu64 = 2641,
+ SLTiu_MM = 2642,
+ SLTu = 2643,
+ SLTu64 = 2644,
+ SLTu_MM = 2645,
+ SNE = 2646,
+ SNEi = 2647,
+ SPLATI_B = 2648,
+ SPLATI_D = 2649,
+ SPLATI_H = 2650,
+ SPLATI_W = 2651,
+ SPLAT_B = 2652,
+ SPLAT_D = 2653,
+ SPLAT_H = 2654,
+ SPLAT_W = 2655,
+ SRA = 2656,
+ SRAI_B = 2657,
+ SRAI_D = 2658,
+ SRAI_H = 2659,
+ SRAI_W = 2660,
+ SRARI_B = 2661,
+ SRARI_D = 2662,
+ SRARI_H = 2663,
+ SRARI_W = 2664,
+ SRAR_B = 2665,
+ SRAR_D = 2666,
+ SRAR_H = 2667,
+ SRAR_W = 2668,
+ SRAV = 2669,
+ SRAV_MM = 2670,
+ SRA_B = 2671,
+ SRA_D = 2672,
+ SRA_H = 2673,
+ SRA_MM = 2674,
+ SRA_W = 2675,
+ SRL = 2676,
+ SRL16_MM = 2677,
+ SRL16_MMR6 = 2678,
+ SRLI_B = 2679,
+ SRLI_D = 2680,
+ SRLI_H = 2681,
+ SRLI_W = 2682,
+ SRLRI_B = 2683,
+ SRLRI_D = 2684,
+ SRLRI_H = 2685,
+ SRLRI_W = 2686,
+ SRLR_B = 2687,
+ SRLR_D = 2688,
+ SRLR_H = 2689,
+ SRLR_W = 2690,
+ SRLV = 2691,
+ SRLV_MM = 2692,
+ SRL_B = 2693,
+ SRL_D = 2694,
+ SRL_H = 2695,
+ SRL_MM = 2696,
+ SRL_W = 2697,
+ SSNOP = 2698,
+ SSNOP_MM = 2699,
+ SSNOP_MMR6 = 2700,
+ ST_B = 2701,
+ ST_D = 2702,
+ ST_H = 2703,
+ ST_W = 2704,
+ SUB = 2705,
+ SUBQH_PH = 2706,
+ SUBQH_PH_MMR2 = 2707,
+ SUBQH_R_PH = 2708,
+ SUBQH_R_PH_MMR2 = 2709,
+ SUBQH_R_W = 2710,
+ SUBQH_R_W_MMR2 = 2711,
+ SUBQH_W = 2712,
+ SUBQH_W_MMR2 = 2713,
+ SUBQ_PH = 2714,
+ SUBQ_PH_MM = 2715,
+ SUBQ_S_PH = 2716,
+ SUBQ_S_PH_MM = 2717,
+ SUBQ_S_W = 2718,
+ SUBQ_S_W_MM = 2719,
+ SUBSUS_U_B = 2720,
+ SUBSUS_U_D = 2721,
+ SUBSUS_U_H = 2722,
+ SUBSUS_U_W = 2723,
+ SUBSUU_S_B = 2724,
+ SUBSUU_S_D = 2725,
+ SUBSUU_S_H = 2726,
+ SUBSUU_S_W = 2727,
+ SUBS_S_B = 2728,
+ SUBS_S_D = 2729,
+ SUBS_S_H = 2730,
+ SUBS_S_W = 2731,
+ SUBS_U_B = 2732,
+ SUBS_U_D = 2733,
+ SUBS_U_H = 2734,
+ SUBS_U_W = 2735,
+ SUBU16_MM = 2736,
+ SUBU16_MMR6 = 2737,
+ SUBUH_QB = 2738,
+ SUBUH_QB_MMR2 = 2739,
+ SUBUH_R_QB = 2740,
+ SUBUH_R_QB_MMR2 = 2741,
+ SUBU_MMR6 = 2742,
+ SUBU_PH = 2743,
+ SUBU_PH_MMR2 = 2744,
+ SUBU_QB = 2745,
+ SUBU_QB_MM = 2746,
+ SUBU_S_PH = 2747,
+ SUBU_S_PH_MMR2 = 2748,
+ SUBU_S_QB = 2749,
+ SUBU_S_QB_MM = 2750,
+ SUBVI_B = 2751,
+ SUBVI_D = 2752,
+ SUBVI_H = 2753,
+ SUBVI_W = 2754,
+ SUBV_B = 2755,
+ SUBV_D = 2756,
+ SUBV_H = 2757,
+ SUBV_W = 2758,
+ SUB_MM = 2759,
+ SUB_MMR6 = 2760,
+ SUBu = 2761,
+ SUBu_MM = 2762,
+ SUXC1 = 2763,
+ SUXC164 = 2764,
+ SUXC1_MM = 2765,
+ SW = 2766,
+ SW16_MM = 2767,
+ SW16_MMR6 = 2768,
+ SW64 = 2769,
+ SWC1 = 2770,
+ SWC1_MM = 2771,
+ SWC2 = 2772,
+ SWC2_MMR6 = 2773,
+ SWC2_R6 = 2774,
+ SWC3 = 2775,
+ SWDSP = 2776,
+ SWDSP_MM = 2777,
+ SWE = 2778,
+ SWE_MM = 2779,
+ SWL = 2780,
+ SWL64 = 2781,
+ SWLE = 2782,
+ SWLE_MM = 2783,
+ SWL_MM = 2784,
+ SWM16_MM = 2785,
+ SWM16_MMR6 = 2786,
+ SWM32_MM = 2787,
+ SWP_MM = 2788,
+ SWR = 2789,
+ SWR64 = 2790,
+ SWRE = 2791,
+ SWRE_MM = 2792,
+ SWR_MM = 2793,
+ SWSP_MM = 2794,
+ SWSP_MMR6 = 2795,
+ SWXC1 = 2796,
+ SWXC1_MM = 2797,
+ SW_MM = 2798,
+ SW_MMR6 = 2799,
+ SYNC = 2800,
+ SYNCI = 2801,
+ SYNCI_MM = 2802,
+ SYNCI_MMR6 = 2803,
+ SYNC_MM = 2804,
+ SYNC_MMR6 = 2805,
+ SYSCALL = 2806,
+ SYSCALL_MM = 2807,
+ Save16 = 2808,
+ SaveX16 = 2809,
+ SbRxRyOffMemX16 = 2810,
+ SebRx16 = 2811,
+ SehRx16 = 2812,
+ ShRxRyOffMemX16 = 2813,
+ SllX16 = 2814,
+ SllvRxRy16 = 2815,
+ SltRxRy16 = 2816,
+ SltiRxImm16 = 2817,
+ SltiRxImmX16 = 2818,
+ SltiuRxImm16 = 2819,
+ SltiuRxImmX16 = 2820,
+ SltuRxRy16 = 2821,
+ SraX16 = 2822,
+ SravRxRy16 = 2823,
+ SrlX16 = 2824,
+ SrlvRxRy16 = 2825,
+ SubuRxRyRz16 = 2826,
+ SwRxRyOffMemX16 = 2827,
+ SwRxSpImmX16 = 2828,
+ TEQ = 2829,
+ TEQI = 2830,
+ TEQI_MM = 2831,
+ TEQ_MM = 2832,
+ TGE = 2833,
+ TGEI = 2834,
+ TGEIU = 2835,
+ TGEIU_MM = 2836,
+ TGEI_MM = 2837,
+ TGEU = 2838,
+ TGEU_MM = 2839,
+ TGE_MM = 2840,
+ TLBGINV = 2841,
+ TLBGINVF = 2842,
+ TLBGINVF_MM = 2843,
+ TLBGINV_MM = 2844,
+ TLBGP = 2845,
+ TLBGP_MM = 2846,
+ TLBGR = 2847,
+ TLBGR_MM = 2848,
+ TLBGWI = 2849,
+ TLBGWI_MM = 2850,
+ TLBGWR = 2851,
+ TLBGWR_MM = 2852,
+ TLBINV = 2853,
+ TLBINVF = 2854,
+ TLBINVF_MMR6 = 2855,
+ TLBINV_MMR6 = 2856,
+ TLBP = 2857,
+ TLBP_MM = 2858,
+ TLBR = 2859,
+ TLBR_MM = 2860,
+ TLBWI = 2861,
+ TLBWI_MM = 2862,
+ TLBWR = 2863,
+ TLBWR_MM = 2864,
+ TLT = 2865,
+ TLTI = 2866,
+ TLTIU_MM = 2867,
+ TLTI_MM = 2868,
+ TLTU = 2869,
+ TLTU_MM = 2870,
+ TLT_MM = 2871,
+ TNE = 2872,
+ TNEI = 2873,
+ TNEI_MM = 2874,
+ TNE_MM = 2875,
+ TRUNC_L_D64 = 2876,
+ TRUNC_L_D_MMR6 = 2877,
+ TRUNC_L_S = 2878,
+ TRUNC_L_S_MMR6 = 2879,
+ TRUNC_W_D32 = 2880,
+ TRUNC_W_D64 = 2881,
+ TRUNC_W_D_MMR6 = 2882,
+ TRUNC_W_MM = 2883,
+ TRUNC_W_S = 2884,
+ TRUNC_W_S_MM = 2885,
+ TRUNC_W_S_MMR6 = 2886,
+ TTLTIU = 2887,
+ UDIV = 2888,
+ UDIV_MM = 2889,
+ V3MULU = 2890,
+ VMM0 = 2891,
+ VMULU = 2892,
+ VSHF_B = 2893,
+ VSHF_D = 2894,
+ VSHF_H = 2895,
+ VSHF_W = 2896,
+ WAIT = 2897,
+ WAIT_MM = 2898,
+ WAIT_MMR6 = 2899,
+ WRDSP = 2900,
+ WRDSP_MM = 2901,
+ WRPGPR_MMR6 = 2902,
+ WSBH = 2903,
+ WSBH_MM = 2904,
+ WSBH_MMR6 = 2905,
+ XOR = 2906,
+ XOR16_MM = 2907,
+ XOR16_MMR6 = 2908,
+ XOR64 = 2909,
+ XORI_B = 2910,
+ XORI_MMR6 = 2911,
+ XOR_MM = 2912,
+ XOR_MMR6 = 2913,
+ XOR_V = 2914,
+ XORi = 2915,
+ XORi64 = 2916,
+ XORi_MM = 2917,
+ XorRxRxRy16 = 2918,
+ YIELD = 2919,
+ INSTRUCTION_LIST_END = 2920,
};
}
}
diff --git a/deps/LIEF/include/LIEF/asm/mips/operands.hpp b/deps/LIEF/include/LIEF/asm/mips/operands.hpp
new file mode 100644
index 00000000000..f4b16eab99b
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/mips/operands.hpp
@@ -0,0 +1,22 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ASM_MIPS_OPERANDS_H
+#define LIEF_ASM_MIPS_OPERANDS_H
+#include <LIEF/asm/mips/operands/Register.hpp>
+#include <LIEF/asm/mips/operands/Immediate.hpp>
+#include <LIEF/asm/mips/operands/PCRelative.hpp>
+#include <LIEF/asm/mips/operands/Memory.hpp>
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/mips/operands/Immediate.hpp b/deps/LIEF/include/LIEF/asm/mips/operands/Immediate.hpp
new file mode 100644
index 00000000000..780bc9e163a
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/mips/operands/Immediate.hpp
@@ -0,0 +1,49 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ASM_MIPS_OPERAND_IMM_H
+#define LIEF_ASM_MIPS_OPERAND_IMM_H
+#include "LIEF/asm/mips/Operand.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace mips {
+/// Namespace that wraps the different Mips operands
+namespace operands {
+
+
+/// This class represents an immediate operand (i.e. a constant)
+///
+/// For instance:
+///
+/// ```text
+/// addiu $4, $5, 8
+/// |
+/// +---> Immediate(8)
+/// ```
+class LIEF_API Immediate : public Operand {
+ public:
+ using Operand::Operand;
+
+ /// The constant value wrapped by this operand
+ int64_t value() const;
+
+ static bool classof(const Operand* op);
+ ~Immediate() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/mips/operands/Memory.hpp b/deps/LIEF/include/LIEF/asm/mips/operands/Memory.hpp
new file mode 100644
index 00000000000..bf0d425f871
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/mips/operands/Memory.hpp
@@ -0,0 +1,82 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ASM_MIPS_OPERAND_MEMORY_H
+#define LIEF_ASM_MIPS_OPERAND_MEMORY_H
+#include "LIEF/asm/mips/Operand.hpp"
+#include "LIEF/asm/mips/registers.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace mips {
+namespace operands {
+
+/// This class represents a memory operand.
+///
+/// MIPS has two addressing forms:
+///
+/// ```text
+/// lw $4, 8($5) ldxc1 $f2, $4($7)
+/// | | | | | |
+/// +------+ | +---+ +-------+ | +-----+
+/// | | | | | |
+/// v v v v v v
+/// Reg Disp Base Reg Index Base
+/// ```
+class LIEF_API Memory : public Operand {
+ public:
+ using Operand::Operand;
+
+ /// Wraps the memory offset as either an integer displacement or an index
+ /// register.
+ struct offset_t {
+ /// Enum type used to discriminate the anonymous union
+ enum class TYPE {
+ NONE = 0,
+ /// The *union* holds the REG attribute
+ REG,
+ /// The *union* holds the `displacement` attribute (`int64_t`)
+ DISP,
+ };
+
+ union {
+ /// Register offset (index register)
+ REG reg;
+
+ /// Integer offset
+ int64_t displacement = 0;
+ };
+ TYPE type = TYPE::NONE;
+ };
+
+ /// The base register.
+ ///
+ /// For `lw $4, 8($5)` it would return `$5`.
+ REG base() const;
+
+ /// The addressing offset.
+ ///
+ /// It can be either:
+ /// - A register (e.g. `ldxc1 $f2, $4($7)`)
+ /// - A displacement (e.g. `lw $4, 8($5)`)
+ offset_t offset() const;
+
+ static bool classof(const Operand* op);
+ ~Memory() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/mips/operands/PCRelative.hpp b/deps/LIEF/include/LIEF/asm/mips/operands/PCRelative.hpp
new file mode 100644
index 00000000000..0120c4ece07
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/mips/operands/PCRelative.hpp
@@ -0,0 +1,47 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ASM_MIPS_OPERAND_PCREL_H
+#define LIEF_ASM_MIPS_OPERAND_PCREL_H
+#include "LIEF/asm/mips/Operand.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace mips {
+namespace operands {
+
+/// This class represents a PC-relative operand.
+///
+/// ```text
+/// bal 0x100
+/// |
+/// v
+/// PC Relative operand
+/// ```
+class LIEF_API PCRelative : public Operand {
+ public:
+ using Operand::Operand;
+
+ /// The effective value that is relative to the current `pc` register
+ int64_t value() const;
+
+ static bool classof(const Operand* op);
+
+ ~PCRelative() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/mips/operands/Register.hpp b/deps/LIEF/include/LIEF/asm/mips/operands/Register.hpp
new file mode 100644
index 00000000000..4622bae888d
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/mips/operands/Register.hpp
@@ -0,0 +1,51 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ASM_MIPS_OPERAND_REG_H
+#define LIEF_ASM_MIPS_OPERAND_REG_H
+
+#include "LIEF/asm/mips/Operand.hpp"
+#include "LIEF/asm/mips/registers.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace mips {
+namespace operands {
+
+/// This class represents a register operand.
+///
+/// For instance:
+///
+/// ```text
+/// move $4, $5
+/// | |
+/// | +---------> Register($5)
+/// |
+/// +-------------> Register($4)
+/// ```
+class LIEF_API Register : public Operand {
+ public:
+ using Operand::Operand;
+
+ /// The effective REG wrapped by this operand
+ REG value() const;
+
+ static bool classof(const Operand* op);
+ ~Register() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/mips/registers.hpp b/deps/LIEF/include/LIEF/asm/mips/registers.hpp
index ec6b4fc931e..a721969baeb 100644
--- a/deps/LIEF/include/LIEF/asm/mips/registers.hpp
+++ b/deps/LIEF/include/LIEF/asm/mips/registers.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/powerpc.hpp b/deps/LIEF/include/LIEF/asm/powerpc.hpp
index d404e1fa549..23339ef52e6 100644
--- a/deps/LIEF/include/LIEF/asm/powerpc.hpp
+++ b/deps/LIEF/include/LIEF/asm/powerpc.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,4 +18,5 @@
#include <LIEF/asm/powerpc/Instruction.hpp>
#include <LIEF/asm/powerpc/opcodes.hpp>
#include <LIEF/asm/powerpc/registers.hpp>
+#include <LIEF/asm/powerpc/operands.hpp>
#endif
diff --git a/deps/LIEF/include/LIEF/asm/powerpc/Instruction.hpp b/deps/LIEF/include/LIEF/asm/powerpc/Instruction.hpp
index d6758649de1..574c39d6db0 100644
--- a/deps/LIEF/include/LIEF/asm/powerpc/Instruction.hpp
+++ b/deps/LIEF/include/LIEF/asm/powerpc/Instruction.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,9 +15,11 @@
#ifndef LIEF_ASM_POWERPC_INST_H
#define LIEF_ASM_POWERPC_INST_H
#include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/asm/Instruction.hpp"
#include "LIEF/asm/powerpc/opcodes.hpp"
+#include "LIEF/asm/powerpc/Operand.hpp"
namespace LIEF {
namespace assembly {
@@ -29,9 +31,14 @@ class LIEF_API Instruction : public assembly::Instruction {
public:
using assembly::Instruction::Instruction;
+ using operands_it = iterator_range<Operand::Iterator>;
+
/// The instruction opcode as defined in LLVM
OPCODE opcode() const;
+ /// Iterator over the operands of the current instruction
+ operands_it operands() const LIEF_LIFETIMEBOUND;
+
/// True if `inst` is an **effective** instance of powerpc::Instruction
static bool classof(const assembly::Instruction* inst);
diff --git a/deps/LIEF/include/LIEF/asm/powerpc/Operand.hpp b/deps/LIEF/include/LIEF/asm/powerpc/Operand.hpp
new file mode 100644
index 00000000000..f80d231cdf2
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/powerpc/Operand.hpp
@@ -0,0 +1,136 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ASM_POWERPC_OPERAND_H
+#define LIEF_ASM_POWERPC_OPERAND_H
+#include "LIEF/visibility.h"
+#include "LIEF/iterators.hpp"
+#include "LIEF/compiler_attributes.hpp"
+
+#include <memory>
+#include <string>
+#include <cassert>
+
+#include <ostream>
+
+namespace LIEF {
+namespace assembly {
+namespace powerpc {
+
+namespace details {
+class Operand;
+class OperandIt;
+}
+
+/// This class represents an operand for a PowerPC instruction
+class LIEF_API Operand {
+ public:
+ /// **Forward** iterator that lazily disassembles powerpc Operand.
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::forward_iterator_tag, Operand,
+ std::ptrdiff_t, const Operand*, const Operand&> {
+ public:
+ using implementation = details::OperandIt;
+ using iterator_facade_base::operator++;
+
+ LIEF_API Iterator();
+
+ LIEF_API Iterator(std::unique_ptr<details::OperandIt> impl);
+ LIEF_API Iterator(const Iterator&);
+ LIEF_API Iterator& operator=(const Iterator&);
+
+ LIEF_API Iterator(Iterator&&) noexcept;
+ LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+ LIEF_API ~Iterator();
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator++() LIEF_LIFETIMEBOUND;
+
+ friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
+
+ friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+ return !(LHS == RHS);
+ }
+
+ LIEF_API const Operand& operator*() const LIEF_LIFETIMEBOUND;
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const Operand* operator->() const LIEF_LIFETIMEBOUND;
+
+ /// Transfer ownership of the operand at the current position to the
+ /// caller. Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<Operand> yield();
+
+ private:
+ void load() const;
+
+ std::unique_ptr<details::OperandIt> impl_;
+ mutable std::unique_ptr<Operand> cached_;
+ };
+
+ /// Pretty representation of the operand
+ std::string to_string() const;
+
+ /// This function can be used to **down cast** an Operand instance:
+ ///
+ /// ```cpp
+ /// std::unique_ptr<assembly::powerpc::Operand> op = ...;
+ /// if (const auto* imm = inst->as<assembly::powerpc::operands::Immediate>()) {
+ /// const int64_t value = imm->value();
+ /// }
+ /// ```
+ template<class T>
+ const T* as() const LIEF_LIFETIMEBOUND {
+ static_assert(std::is_base_of<Operand, T>::value,
+ "Require Operand inheritance");
+ if (T::classof(this)) {
+ return static_cast<const T*>(this);
+ }
+ return nullptr;
+ }
+
+ virtual ~Operand();
+
+ /// @private
+ static LIEF_LOCAL std::unique_ptr<Operand>
+ create(std::unique_ptr<details::Operand> impl);
+
+ /// @private
+ LIEF_LOCAL const details::Operand& impl() const LIEF_LIFETIMEBOUND {
+ assert(impl_ != nullptr);
+ return *impl_;
+ }
+
+ /// @private
+ LIEF_LOCAL details::Operand& impl() LIEF_LIFETIMEBOUND {
+ assert(impl_ != nullptr);
+ return *impl_;
+ }
+
+ friend LIEF_API std::ostream& operator<<(std::ostream& os, const Operand& op) {
+ os << op.to_string();
+ return os;
+ }
+
+ protected:
+ LIEF_LOCAL Operand(std::unique_ptr<details::Operand> impl);
+ std::unique_ptr<details::Operand> impl_;
+};
+
+}
+}
+}
+
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/powerpc/opcodes.hpp b/deps/LIEF/include/LIEF/asm/powerpc/opcodes.hpp
index e0b6d5dff13..ff2e43ded6b 100644
--- a/deps/LIEF/include/LIEF/asm/powerpc/opcodes.hpp
+++ b/deps/LIEF/include/LIEF/asm/powerpc/opcodes.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
#ifndef LIEF_ASM_POWERPC_OPCODE_H
#define LIEF_ASM_POWERPC_OPCODE_H
-/* Generated from LLVM: 21.1.0 */
+/* Generated from LLVM: 22.1.8 */
namespace LIEF {
namespace assembly {
@@ -42,2909 +42,2982 @@ enum class OPCODE {
DBG_LABEL = 18,
REG_SEQUENCE = 19,
COPY = 20,
- BUNDLE = 21,
- LIFETIME_START = 22,
- LIFETIME_END = 23,
- PSEUDO_PROBE = 24,
- ARITH_FENCE = 25,
- STACKMAP = 26,
- FENTRY_CALL = 27,
- PATCHPOINT = 28,
- LOAD_STACK_GUARD = 29,
- PREALLOCATED_SETUP = 30,
- PREALLOCATED_ARG = 31,
- STATEPOINT = 32,
- LOCAL_ESCAPE = 33,
- FAULTING_OP = 34,
- PATCHABLE_OP = 35,
- PATCHABLE_FUNCTION_ENTER = 36,
- PATCHABLE_RET = 37,
- PATCHABLE_FUNCTION_EXIT = 38,
- PATCHABLE_TAIL_CALL = 39,
- PATCHABLE_EVENT_CALL = 40,
- PATCHABLE_TYPED_EVENT_CALL = 41,
- ICALL_BRANCH_FUNNEL = 42,
- FAKE_USE = 43,
- MEMBARRIER = 44,
- JUMP_TABLE_DEBUG_INFO = 45,
- CONVERGENCECTRL_ENTRY = 46,
- CONVERGENCECTRL_ANCHOR = 47,
- CONVERGENCECTRL_LOOP = 48,
- CONVERGENCECTRL_GLUE = 49,
- G_ASSERT_SEXT = 50,
- G_ASSERT_ZEXT = 51,
- G_ASSERT_ALIGN = 52,
- G_ADD = 53,
- G_SUB = 54,
- G_MUL = 55,
- G_SDIV = 56,
- G_UDIV = 57,
- G_SREM = 58,
- G_UREM = 59,
- G_SDIVREM = 60,
- G_UDIVREM = 61,
- G_AND = 62,
- G_OR = 63,
- G_XOR = 64,
- G_ABDS = 65,
- G_ABDU = 66,
- G_IMPLICIT_DEF = 67,
- G_PHI = 68,
- G_FRAME_INDEX = 69,
- G_GLOBAL_VALUE = 70,
- G_PTRAUTH_GLOBAL_VALUE = 71,
- G_CONSTANT_POOL = 72,
- G_EXTRACT = 73,
- G_UNMERGE_VALUES = 74,
- G_INSERT = 75,
- G_MERGE_VALUES = 76,
- G_BUILD_VECTOR = 77,
- G_BUILD_VECTOR_TRUNC = 78,
- G_CONCAT_VECTORS = 79,
- G_PTRTOINT = 80,
- G_INTTOPTR = 81,
- G_BITCAST = 82,
- G_FREEZE = 83,
- G_CONSTANT_FOLD_BARRIER = 84,
- G_INTRINSIC_FPTRUNC_ROUND = 85,
- G_INTRINSIC_TRUNC = 86,
- G_INTRINSIC_ROUND = 87,
- G_INTRINSIC_LRINT = 88,
- G_INTRINSIC_LLRINT = 89,
- G_INTRINSIC_ROUNDEVEN = 90,
- G_READCYCLECOUNTER = 91,
- G_READSTEADYCOUNTER = 92,
- G_LOAD = 93,
- G_SEXTLOAD = 94,
- G_ZEXTLOAD = 95,
- G_INDEXED_LOAD = 96,
- G_INDEXED_SEXTLOAD = 97,
- G_INDEXED_ZEXTLOAD = 98,
- G_STORE = 99,
- G_INDEXED_STORE = 100,
- G_ATOMIC_CMPXCHG_WITH_SUCCESS = 101,
- G_ATOMIC_CMPXCHG = 102,
- G_ATOMICRMW_XCHG = 103,
- G_ATOMICRMW_ADD = 104,
- G_ATOMICRMW_SUB = 105,
- G_ATOMICRMW_AND = 106,
- G_ATOMICRMW_NAND = 107,
- G_ATOMICRMW_OR = 108,
- G_ATOMICRMW_XOR = 109,
- G_ATOMICRMW_MAX = 110,
- G_ATOMICRMW_MIN = 111,
- G_ATOMICRMW_UMAX = 112,
- G_ATOMICRMW_UMIN = 113,
- G_ATOMICRMW_FADD = 114,
- G_ATOMICRMW_FSUB = 115,
- G_ATOMICRMW_FMAX = 116,
- G_ATOMICRMW_FMIN = 117,
- G_ATOMICRMW_FMAXIMUM = 118,
- G_ATOMICRMW_FMINIMUM = 119,
- G_ATOMICRMW_UINC_WRAP = 120,
- G_ATOMICRMW_UDEC_WRAP = 121,
- G_ATOMICRMW_USUB_COND = 122,
- G_ATOMICRMW_USUB_SAT = 123,
- G_FENCE = 124,
- G_PREFETCH = 125,
- G_BRCOND = 126,
- G_BRINDIRECT = 127,
- G_INVOKE_REGION_START = 128,
- G_INTRINSIC = 129,
- G_INTRINSIC_W_SIDE_EFFECTS = 130,
- G_INTRINSIC_CONVERGENT = 131,
- G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 132,
- G_ANYEXT = 133,
- G_TRUNC = 134,
- G_TRUNC_SSAT_S = 135,
- G_TRUNC_SSAT_U = 136,
- G_TRUNC_USAT_U = 137,
- G_CONSTANT = 138,
- G_FCONSTANT = 139,
- G_VASTART = 140,
- G_VAARG = 141,
- G_SEXT = 142,
- G_SEXT_INREG = 143,
- G_ZEXT = 144,
- G_SHL = 145,
- G_LSHR = 146,
- G_ASHR = 147,
- G_FSHL = 148,
- G_FSHR = 149,
- G_ROTR = 150,
- G_ROTL = 151,
- G_ICMP = 152,
- G_FCMP = 153,
- G_SCMP = 154,
- G_UCMP = 155,
- G_SELECT = 156,
- G_UADDO = 157,
- G_UADDE = 158,
- G_USUBO = 159,
- G_USUBE = 160,
- G_SADDO = 161,
- G_SADDE = 162,
- G_SSUBO = 163,
- G_SSUBE = 164,
- G_UMULO = 165,
- G_SMULO = 166,
- G_UMULH = 167,
- G_SMULH = 168,
- G_UADDSAT = 169,
- G_SADDSAT = 170,
- G_USUBSAT = 171,
- G_SSUBSAT = 172,
- G_USHLSAT = 173,
- G_SSHLSAT = 174,
- G_SMULFIX = 175,
- G_UMULFIX = 176,
- G_SMULFIXSAT = 177,
- G_UMULFIXSAT = 178,
- G_SDIVFIX = 179,
- G_UDIVFIX = 180,
- G_SDIVFIXSAT = 181,
- G_UDIVFIXSAT = 182,
- G_FADD = 183,
- G_FSUB = 184,
- G_FMUL = 185,
- G_FMA = 186,
- G_FMAD = 187,
- G_FDIV = 188,
- G_FREM = 189,
- G_FPOW = 190,
- G_FPOWI = 191,
- G_FEXP = 192,
- G_FEXP2 = 193,
- G_FEXP10 = 194,
- G_FLOG = 195,
- G_FLOG2 = 196,
- G_FLOG10 = 197,
- G_FLDEXP = 198,
- G_FFREXP = 199,
- G_FNEG = 200,
- G_FPEXT = 201,
- G_FPTRUNC = 202,
- G_FPTOSI = 203,
- G_FPTOUI = 204,
- G_SITOFP = 205,
- G_UITOFP = 206,
- G_FPTOSI_SAT = 207,
- G_FPTOUI_SAT = 208,
- G_FABS = 209,
- G_FCOPYSIGN = 210,
- G_IS_FPCLASS = 211,
- G_FCANONICALIZE = 212,
- G_FMINNUM = 213,
- G_FMAXNUM = 214,
- G_FMINNUM_IEEE = 215,
- G_FMAXNUM_IEEE = 216,
- G_FMINIMUM = 217,
- G_FMAXIMUM = 218,
- G_FMINIMUMNUM = 219,
- G_FMAXIMUMNUM = 220,
- G_GET_FPENV = 221,
- G_SET_FPENV = 222,
- G_RESET_FPENV = 223,
- G_GET_FPMODE = 224,
- G_SET_FPMODE = 225,
- G_RESET_FPMODE = 226,
- G_GET_ROUNDING = 227,
- G_PTR_ADD = 228,
- G_PTRMASK = 229,
- G_SMIN = 230,
- G_SMAX = 231,
- G_UMIN = 232,
- G_UMAX = 233,
- G_ABS = 234,
- G_LROUND = 235,
- G_LLROUND = 236,
- G_BR = 237,
- G_BRJT = 238,
- G_VSCALE = 239,
- G_INSERT_SUBVECTOR = 240,
- G_EXTRACT_SUBVECTOR = 241,
- G_INSERT_VECTOR_ELT = 242,
- G_EXTRACT_VECTOR_ELT = 243,
- G_SHUFFLE_VECTOR = 244,
- G_SPLAT_VECTOR = 245,
- G_STEP_VECTOR = 246,
- G_VECTOR_COMPRESS = 247,
- G_CTTZ = 248,
- G_CTTZ_ZERO_UNDEF = 249,
- G_CTLZ = 250,
- G_CTLZ_ZERO_UNDEF = 251,
- G_CTPOP = 252,
- G_BSWAP = 253,
- G_BITREVERSE = 254,
- G_FCEIL = 255,
- G_FCOS = 256,
- G_FSIN = 257,
- G_FSINCOS = 258,
- G_FTAN = 259,
- G_FACOS = 260,
- G_FASIN = 261,
- G_FATAN = 262,
- G_FATAN2 = 263,
- G_FCOSH = 264,
- G_FSINH = 265,
- G_FTANH = 266,
- G_FSQRT = 267,
- G_FFLOOR = 268,
- G_FRINT = 269,
- G_FNEARBYINT = 270,
- G_ADDRSPACE_CAST = 271,
- G_BLOCK_ADDR = 272,
- G_JUMP_TABLE = 273,
- G_DYN_STACKALLOC = 274,
- G_STACKSAVE = 275,
- G_STACKRESTORE = 276,
- G_STRICT_FADD = 277,
- G_STRICT_FSUB = 278,
- G_STRICT_FMUL = 279,
- G_STRICT_FDIV = 280,
- G_STRICT_FREM = 281,
- G_STRICT_FMA = 282,
- G_STRICT_FSQRT = 283,
- G_STRICT_FLDEXP = 284,
- G_READ_REGISTER = 285,
- G_WRITE_REGISTER = 286,
- G_MEMCPY = 287,
- G_MEMCPY_INLINE = 288,
- G_MEMMOVE = 289,
- G_MEMSET = 290,
- G_BZERO = 291,
- G_TRAP = 292,
- G_DEBUGTRAP = 293,
- G_UBSANTRAP = 294,
- G_VECREDUCE_SEQ_FADD = 295,
- G_VECREDUCE_SEQ_FMUL = 296,
- G_VECREDUCE_FADD = 297,
- G_VECREDUCE_FMUL = 298,
- G_VECREDUCE_FMAX = 299,
- G_VECREDUCE_FMIN = 300,
- G_VECREDUCE_FMAXIMUM = 301,
- G_VECREDUCE_FMINIMUM = 302,
- G_VECREDUCE_ADD = 303,
- G_VECREDUCE_MUL = 304,
- G_VECREDUCE_AND = 305,
- G_VECREDUCE_OR = 306,
- G_VECREDUCE_XOR = 307,
- G_VECREDUCE_SMAX = 308,
- G_VECREDUCE_SMIN = 309,
- G_VECREDUCE_UMAX = 310,
- G_VECREDUCE_UMIN = 311,
- G_SBFX = 312,
- G_UBFX = 313,
- ATOMIC_CMP_SWAP_I128 = 314,
- ATOMIC_LOAD_ADD_I128 = 315,
- ATOMIC_LOAD_AND_I128 = 316,
- ATOMIC_LOAD_NAND_I128 = 317,
- ATOMIC_LOAD_OR_I128 = 318,
- ATOMIC_LOAD_SUB_I128 = 319,
- ATOMIC_LOAD_XOR_I128 = 320,
- ATOMIC_SWAP_I128 = 321,
- BUILD_QUADWORD = 322,
- BUILD_UACC = 323,
- CFENCE = 324,
- CFENCE8 = 325,
- CLRLSLDI = 326,
- CLRLSLDI_rec = 327,
- CLRLSLWI = 328,
- CLRLSLWI_rec = 329,
- CLRRDI = 330,
- CLRRDI_rec = 331,
- CLRRWI = 332,
- CLRRWI_rec = 333,
- DCBFL = 334,
- DCBFLP = 335,
- DCBFPS = 336,
- DCBFx = 337,
- DCBSTPS = 338,
- DCBTCT = 339,
- DCBTDS = 340,
- DCBTSTCT = 341,
- DCBTSTDS = 342,
- DCBTSTT = 343,
- DCBTSTx = 344,
- DCBTT = 345,
- DCBTx = 346,
- DFLOADf32 = 347,
- DFLOADf64 = 348,
- DFSTOREf32 = 349,
- DFSTOREf64 = 350,
- EXTLDI = 351,
- EXTLDI_rec = 352,
- EXTLWI = 353,
- EXTLWI_rec = 354,
- EXTRDI = 355,
- EXTRDI_rec = 356,
- EXTRWI = 357,
- EXTRWI_rec = 358,
- INSLWI = 359,
- INSLWI_rec = 360,
- INSRDI = 361,
- INSRDI_rec = 362,
- INSRWI = 363,
- INSRWI_rec = 364,
- KILL_PAIR = 365,
- LAx = 366,
- LIWAX = 367,
- LIWZX = 368,
- PPCLdFixedAddr = 369,
- PSUBI = 370,
- RLWIMIbm = 371,
- RLWIMIbm_rec = 372,
- RLWINMbm = 373,
- RLWINMbm_rec = 374,
- RLWNMbm = 375,
- RLWNMbm_rec = 376,
- ROTRDI = 377,
- ROTRDI_rec = 378,
- ROTRWI = 379,
- ROTRWI_rec = 380,
- SLDI = 381,
- SLDI_rec = 382,
- SLWI = 383,
- SLWI_rec = 384,
- SPILLTOVSR_LD = 385,
- SPILLTOVSR_LDX = 386,
- SPILLTOVSR_ST = 387,
- SPILLTOVSR_STX = 388,
- SRDI = 389,
- SRDI_rec = 390,
- SRWI = 391,
- SRWI_rec = 392,
- STIWX = 393,
- SUBI = 394,
- SUBIC = 395,
- SUBIC_rec = 396,
- SUBIS = 397,
- SUBPCIS = 398,
- XFLOADf32 = 399,
- XFLOADf64 = 400,
- XFSTOREf32 = 401,
- XFSTOREf64 = 402,
- ADD4 = 403,
- ADD4O = 404,
- ADD4O_rec = 405,
- ADD4TLS = 406,
- ADD4_rec = 407,
- ADD8 = 408,
- ADD8O = 409,
- ADD8O_rec = 410,
- ADD8TLS = 411,
- ADD8TLS_ = 412,
- ADD8_rec = 413,
- ADDC = 414,
- ADDC8 = 415,
- ADDC8O = 416,
- ADDC8O_rec = 417,
- ADDC8_rec = 418,
- ADDCO = 419,
- ADDCO_rec = 420,
- ADDC_rec = 421,
- ADDE = 422,
- ADDE8 = 423,
- ADDE8O = 424,
- ADDE8O_rec = 425,
- ADDE8_rec = 426,
- ADDEO = 427,
- ADDEO_rec = 428,
- ADDEX = 429,
- ADDEX8 = 430,
- ADDE_rec = 431,
- ADDG6S = 432,
- ADDG6S8 = 433,
- ADDI = 434,
- ADDI8 = 435,
- ADDIC = 436,
- ADDIC8 = 437,
- ADDIC_rec = 438,
- ADDIS = 439,
- ADDIS8 = 440,
- ADDISdtprelHA = 441,
- ADDISdtprelHA32 = 442,
- ADDISgotTprelHA = 443,
- ADDIStlsgdHA = 444,
- ADDIStlsldHA = 445,
- ADDIStocHA = 446,
- ADDIStocHA8 = 447,
- ADDIdtprelL = 448,
- ADDIdtprelL32 = 449,
- ADDItlsgdL = 450,
- ADDItlsgdL32 = 451,
- ADDItlsgdLADDR = 452,
- ADDItlsgdLADDR32 = 453,
- ADDItlsldL = 454,
- ADDItlsldL32 = 455,
- ADDItlsldLADDR = 456,
- ADDItlsldLADDR32 = 457,
- ADDItoc = 458,
- ADDItoc8 = 459,
- ADDItocL = 460,
- ADDItocL8 = 461,
- ADDME = 462,
- ADDME8 = 463,
- ADDME8O = 464,
- ADDME8O_rec = 465,
- ADDME8_rec = 466,
- ADDMEO = 467,
- ADDMEO_rec = 468,
- ADDME_rec = 469,
- ADDPCIS = 470,
- ADDZE = 471,
- ADDZE8 = 472,
- ADDZE8O = 473,
- ADDZE8O_rec = 474,
- ADDZE8_rec = 475,
- ADDZEO = 476,
- ADDZEO_rec = 477,
- ADDZE_rec = 478,
- ADJCALLSTACKDOWN = 479,
- ADJCALLSTACKUP = 480,
- AND = 481,
- AND8 = 482,
- AND8_rec = 483,
- ANDC = 484,
- ANDC8 = 485,
- ANDC8_rec = 486,
- ANDC_rec = 487,
- ANDI8_rec = 488,
- ANDIS8_rec = 489,
- ANDIS_rec = 490,
- ANDI_rec = 491,
- ANDI_rec_1_EQ_BIT = 492,
- ANDI_rec_1_EQ_BIT8 = 493,
- ANDI_rec_1_GT_BIT = 494,
- ANDI_rec_1_GT_BIT8 = 495,
- AND_rec = 496,
- ATOMIC_CMP_SWAP_I16 = 497,
- ATOMIC_CMP_SWAP_I32 = 498,
- ATOMIC_CMP_SWAP_I64 = 499,
- ATOMIC_CMP_SWAP_I8 = 500,
- ATOMIC_LOAD_ADD_I16 = 501,
- ATOMIC_LOAD_ADD_I32 = 502,
- ATOMIC_LOAD_ADD_I64 = 503,
- ATOMIC_LOAD_ADD_I8 = 504,
- ATOMIC_LOAD_AND_I16 = 505,
- ATOMIC_LOAD_AND_I32 = 506,
- ATOMIC_LOAD_AND_I64 = 507,
- ATOMIC_LOAD_AND_I8 = 508,
- ATOMIC_LOAD_MAX_I16 = 509,
- ATOMIC_LOAD_MAX_I32 = 510,
- ATOMIC_LOAD_MAX_I64 = 511,
- ATOMIC_LOAD_MAX_I8 = 512,
- ATOMIC_LOAD_MIN_I16 = 513,
- ATOMIC_LOAD_MIN_I32 = 514,
- ATOMIC_LOAD_MIN_I64 = 515,
- ATOMIC_LOAD_MIN_I8 = 516,
- ATOMIC_LOAD_NAND_I16 = 517,
- ATOMIC_LOAD_NAND_I32 = 518,
- ATOMIC_LOAD_NAND_I64 = 519,
- ATOMIC_LOAD_NAND_I8 = 520,
- ATOMIC_LOAD_OR_I16 = 521,
- ATOMIC_LOAD_OR_I32 = 522,
- ATOMIC_LOAD_OR_I64 = 523,
- ATOMIC_LOAD_OR_I8 = 524,
- ATOMIC_LOAD_SUB_I16 = 525,
- ATOMIC_LOAD_SUB_I32 = 526,
- ATOMIC_LOAD_SUB_I64 = 527,
- ATOMIC_LOAD_SUB_I8 = 528,
- ATOMIC_LOAD_UMAX_I16 = 529,
- ATOMIC_LOAD_UMAX_I32 = 530,
- ATOMIC_LOAD_UMAX_I64 = 531,
- ATOMIC_LOAD_UMAX_I8 = 532,
- ATOMIC_LOAD_UMIN_I16 = 533,
- ATOMIC_LOAD_UMIN_I32 = 534,
- ATOMIC_LOAD_UMIN_I64 = 535,
- ATOMIC_LOAD_UMIN_I8 = 536,
- ATOMIC_LOAD_XOR_I16 = 537,
- ATOMIC_LOAD_XOR_I32 = 538,
- ATOMIC_LOAD_XOR_I64 = 539,
- ATOMIC_LOAD_XOR_I8 = 540,
- ATOMIC_SWAP_I16 = 541,
- ATOMIC_SWAP_I32 = 542,
- ATOMIC_SWAP_I64 = 543,
- ATOMIC_SWAP_I8 = 544,
- ATTN = 545,
- B = 546,
- BA = 547,
- BC = 548,
- BCC = 549,
- BCCA = 550,
- BCCCTR = 551,
- BCCCTR8 = 552,
- BCCCTRL = 553,
- BCCCTRL8 = 554,
- BCCL = 555,
- BCCLA = 556,
- BCCLR = 557,
- BCCLRL = 558,
- BCCTR = 559,
- BCCTR8 = 560,
- BCCTR8n = 561,
- BCCTRL = 562,
- BCCTRL8 = 563,
- BCCTRL8n = 564,
- BCCTRLn = 565,
- BCCTRn = 566,
- BCDADD_rec = 567,
- BCDCFN_rec = 568,
- BCDCFSQ_rec = 569,
- BCDCFZ_rec = 570,
- BCDCPSGN_rec = 571,
- BCDCTN_rec = 572,
- BCDCTSQ_rec = 573,
- BCDCTZ_rec = 574,
- BCDSETSGN_rec = 575,
- BCDSR_rec = 576,
- BCDSUB_rec = 577,
- BCDS_rec = 578,
- BCDTRUNC_rec = 579,
- BCDUS_rec = 580,
- BCDUTRUNC_rec = 581,
- BCL = 582,
- BCLR = 583,
- BCLRL = 584,
- BCLRLn = 585,
- BCLRn = 586,
- BCLalways = 587,
- BCLn = 588,
- BCTR = 589,
- BCTR8 = 590,
- BCTRL = 591,
- BCTRL8 = 592,
- BCTRL8_LDinto_toc = 593,
- BCTRL8_LDinto_toc_RM = 594,
- BCTRL8_RM = 595,
- BCTRL_LWZinto_toc = 596,
- BCTRL_LWZinto_toc_RM = 597,
- BCTRL_RM = 598,
- BCn = 599,
- BDNZ = 600,
- BDNZ8 = 601,
- BDNZA = 602,
- BDNZAm = 603,
- BDNZAp = 604,
- BDNZL = 605,
- BDNZLA = 606,
- BDNZLAm = 607,
- BDNZLAp = 608,
- BDNZLR = 609,
- BDNZLR8 = 610,
- BDNZLRL = 611,
- BDNZLRLm = 612,
- BDNZLRLp = 613,
- BDNZLRm = 614,
- BDNZLRp = 615,
- BDNZLm = 616,
- BDNZLp = 617,
- BDNZm = 618,
- BDNZp = 619,
- BDZ = 620,
- BDZ8 = 621,
- BDZA = 622,
- BDZAm = 623,
- BDZAp = 624,
- BDZL = 625,
- BDZLA = 626,
- BDZLAm = 627,
- BDZLAp = 628,
- BDZLR = 629,
- BDZLR8 = 630,
- BDZLRL = 631,
- BDZLRLm = 632,
- BDZLRLp = 633,
- BDZLRm = 634,
- BDZLRp = 635,
- BDZLm = 636,
- BDZLp = 637,
- BDZm = 638,
- BDZp = 639,
- BL = 640,
- BL8 = 641,
- BL8_NOP = 642,
- BL8_NOP_RM = 643,
- BL8_NOP_TLS = 644,
- BL8_NOTOC = 645,
- BL8_NOTOC_RM = 646,
- BL8_NOTOC_TLS = 647,
- BL8_RM = 648,
- BL8_TLS = 649,
- BL8_TLS_ = 650,
- BLA = 651,
- BLA8 = 652,
- BLA8_NOP = 653,
- BLA8_NOP_RM = 654,
- BLA8_RM = 655,
- BLA_RM = 656,
- BLR = 657,
- BLR8 = 658,
- BLRL = 659,
- BL_NOP = 660,
- BL_NOP_RM = 661,
- BL_RM = 662,
- BL_TLS = 663,
- BPERMD = 664,
- BRD = 665,
- BRH = 666,
- BRH8 = 667,
- BRINC = 668,
- BRW = 669,
- BRW8 = 670,
- CBCDTD = 671,
- CBCDTD8 = 672,
- CDTBCD = 673,
- CDTBCD8 = 674,
- CFUGED = 675,
- CLRBHRB = 676,
- CMPB = 677,
- CMPB8 = 678,
- CMPD = 679,
- CMPDI = 680,
- CMPEQB = 681,
- CMPLD = 682,
- CMPLDI = 683,
- CMPLW = 684,
- CMPLWI = 685,
- CMPRB = 686,
- CMPRB8 = 687,
- CMPW = 688,
- CMPWI = 689,
- CNTLZD = 690,
- CNTLZDM = 691,
- CNTLZD_rec = 692,
- CNTLZW = 693,
- CNTLZW8 = 694,
- CNTLZW8_rec = 695,
- CNTLZW_rec = 696,
- CNTTZD = 697,
- CNTTZDM = 698,
- CNTTZD_rec = 699,
- CNTTZW = 700,
- CNTTZW8 = 701,
- CNTTZW8_rec = 702,
- CNTTZW_rec = 703,
- CP_ABORT = 704,
- CP_COPY = 705,
- CP_COPY8 = 706,
- CP_PASTE8_rec = 707,
- CP_PASTE_rec = 708,
- CR6SET = 709,
- CR6UNSET = 710,
- CRAND = 711,
- CRANDC = 712,
- CREQV = 713,
- CRNAND = 714,
- CRNOR = 715,
- CRNOT = 716,
- CROR = 717,
- CRORC = 718,
- CRSET = 719,
- CRUNSET = 720,
- CRXOR = 721,
- CTRL_DEP = 722,
- DADD = 723,
- DADDQ = 724,
- DADDQ_rec = 725,
- DADD_rec = 726,
- DARN = 727,
- DCBA = 728,
- DCBF = 729,
- DCBFEP = 730,
- DCBI = 731,
- DCBST = 732,
- DCBSTEP = 733,
- DCBT = 734,
- DCBTEP = 735,
- DCBTST = 736,
- DCBTSTEP = 737,
- DCBZ = 738,
- DCBZEP = 739,
- DCBZL = 740,
- DCBZLEP = 741,
- DCCCI = 742,
- DCFFIX = 743,
- DCFFIXQ = 744,
- DCFFIXQQ = 745,
- DCFFIXQ_rec = 746,
- DCFFIX_rec = 747,
- DCMPO = 748,
- DCMPOQ = 749,
- DCMPU = 750,
- DCMPUQ = 751,
- DCTDP = 752,
- DCTDP_rec = 753,
- DCTFIX = 754,
- DCTFIXQ = 755,
- DCTFIXQQ = 756,
- DCTFIXQ_rec = 757,
- DCTFIX_rec = 758,
- DCTQPQ = 759,
- DCTQPQ_rec = 760,
- DDEDPD = 761,
- DDEDPDQ = 762,
- DDEDPDQ_rec = 763,
- DDEDPD_rec = 764,
- DDIV = 765,
- DDIVQ = 766,
- DDIVQ_rec = 767,
- DDIV_rec = 768,
- DENBCD = 769,
- DENBCDQ = 770,
- DENBCDQ_rec = 771,
- DENBCD_rec = 772,
- DIEX = 773,
- DIEXQ = 774,
- DIEXQ_rec = 775,
- DIEX_rec = 776,
- DIVD = 777,
- DIVDE = 778,
- DIVDEO = 779,
- DIVDEO_rec = 780,
- DIVDEU = 781,
- DIVDEUO = 782,
- DIVDEUO_rec = 783,
- DIVDEU_rec = 784,
- DIVDE_rec = 785,
- DIVDO = 786,
- DIVDO_rec = 787,
- DIVDU = 788,
- DIVDUO = 789,
- DIVDUO_rec = 790,
- DIVDU_rec = 791,
- DIVD_rec = 792,
- DIVW = 793,
- DIVWE = 794,
- DIVWEO = 795,
- DIVWEO_rec = 796,
- DIVWEU = 797,
- DIVWEUO = 798,
- DIVWEUO_rec = 799,
- DIVWEU_rec = 800,
- DIVWE_rec = 801,
- DIVWO = 802,
- DIVWO_rec = 803,
- DIVWU = 804,
- DIVWUO = 805,
- DIVWUO_rec = 806,
- DIVWU_rec = 807,
- DIVW_rec = 808,
- DMMR = 809,
- DMSETDMRZ = 810,
- DMSHA2HASH = 811,
- DMSHA3HASH = 812,
- DMUL = 813,
- DMULQ = 814,
- DMULQ_rec = 815,
- DMUL_rec = 816,
- DMXOR = 817,
- DMXVBF16GERX2 = 818,
- DMXVBF16GERX2NN = 819,
- DMXVBF16GERX2NP = 820,
- DMXVBF16GERX2PN = 821,
- DMXVBF16GERX2PP = 822,
- DMXVF16GERX2 = 823,
- DMXVF16GERX2NN = 824,
- DMXVF16GERX2NP = 825,
- DMXVF16GERX2PN = 826,
- DMXVF16GERX2PP = 827,
- DMXVI8GERX4 = 828,
- DMXVI8GERX4PP = 829,
- DMXVI8GERX4SPP = 830,
- DMXXEXTFDMR256 = 831,
- DMXXEXTFDMR512 = 832,
- DMXXEXTFDMR512_HI = 833,
- DMXXINSTDMR256 = 834,
- DMXXINSTDMR512 = 835,
- DMXXINSTDMR512_HI = 836,
- DMXXSETACCZ = 837,
- DMXXSHAPAD = 838,
- DQUA = 839,
- DQUAI = 840,
- DQUAIQ = 841,
- DQUAIQ_rec = 842,
- DQUAI_rec = 843,
- DQUAQ = 844,
- DQUAQ_rec = 845,
- DQUA_rec = 846,
- DRDPQ = 847,
- DRDPQ_rec = 848,
- DRINTN = 849,
- DRINTNQ = 850,
- DRINTNQ_rec = 851,
- DRINTN_rec = 852,
- DRINTX = 853,
- DRINTXQ = 854,
- DRINTXQ_rec = 855,
- DRINTX_rec = 856,
- DRRND = 857,
- DRRNDQ = 858,
- DRRNDQ_rec = 859,
- DRRND_rec = 860,
- DRSP = 861,
- DRSP_rec = 862,
- DSCLI = 863,
- DSCLIQ = 864,
- DSCLIQ_rec = 865,
- DSCLI_rec = 866,
- DSCRI = 867,
- DSCRIQ = 868,
- DSCRIQ_rec = 869,
- DSCRI_rec = 870,
- DSS = 871,
- DSSALL = 872,
- DST = 873,
- DST64 = 874,
- DSTST = 875,
- DSTST64 = 876,
- DSTSTT = 877,
- DSTSTT64 = 878,
- DSTT = 879,
- DSTT64 = 880,
- DSUB = 881,
- DSUBQ = 882,
- DSUBQ_rec = 883,
- DSUB_rec = 884,
- DTSTDC = 885,
- DTSTDCQ = 886,
- DTSTDG = 887,
- DTSTDGQ = 888,
- DTSTEX = 889,
- DTSTEXQ = 890,
- DTSTSF = 891,
- DTSTSFI = 892,
- DTSTSFIQ = 893,
- DTSTSFQ = 894,
- DXEX = 895,
- DXEXQ = 896,
- DXEXQ_rec = 897,
- DXEX_rec = 898,
- DYNALLOC = 899,
- DYNALLOC8 = 900,
- DYNAREAOFFSET = 901,
- DYNAREAOFFSET8 = 902,
- DecreaseCTR8loop = 903,
- DecreaseCTRloop = 904,
- EFDABS = 905,
- EFDADD = 906,
- EFDCFS = 907,
- EFDCFSF = 908,
- EFDCFSI = 909,
- EFDCFSID = 910,
- EFDCFUF = 911,
- EFDCFUI = 912,
- EFDCFUID = 913,
- EFDCMPEQ = 914,
- EFDCMPGT = 915,
- EFDCMPLT = 916,
- EFDCTSF = 917,
- EFDCTSI = 918,
- EFDCTSIDZ = 919,
- EFDCTSIZ = 920,
- EFDCTUF = 921,
- EFDCTUI = 922,
- EFDCTUIDZ = 923,
- EFDCTUIZ = 924,
- EFDDIV = 925,
- EFDMUL = 926,
- EFDNABS = 927,
- EFDNEG = 928,
- EFDSUB = 929,
- EFDTSTEQ = 930,
- EFDTSTGT = 931,
- EFDTSTLT = 932,
- EFSABS = 933,
- EFSADD = 934,
- EFSCFD = 935,
- EFSCFSF = 936,
- EFSCFSI = 937,
- EFSCFUF = 938,
- EFSCFUI = 939,
- EFSCMPEQ = 940,
- EFSCMPGT = 941,
- EFSCMPLT = 942,
- EFSCTSF = 943,
- EFSCTSI = 944,
- EFSCTSIZ = 945,
- EFSCTUF = 946,
- EFSCTUI = 947,
- EFSCTUIZ = 948,
- EFSDIV = 949,
- EFSMUL = 950,
- EFSNABS = 951,
- EFSNEG = 952,
- EFSSUB = 953,
- EFSTSTEQ = 954,
- EFSTSTGT = 955,
- EFSTSTLT = 956,
- EH_SjLj_LongJmp32 = 957,
- EH_SjLj_LongJmp64 = 958,
- EH_SjLj_SetJmp32 = 959,
- EH_SjLj_SetJmp64 = 960,
- EH_SjLj_Setup = 961,
- EQV = 962,
- EQV8 = 963,
- EQV8_rec = 964,
- EQV_rec = 965,
- EVABS = 966,
- EVADDIW = 967,
- EVADDSMIAAW = 968,
- EVADDSSIAAW = 969,
- EVADDUMIAAW = 970,
- EVADDUSIAAW = 971,
- EVADDW = 972,
- EVAND = 973,
- EVANDC = 974,
- EVCMPEQ = 975,
- EVCMPGTS = 976,
- EVCMPGTU = 977,
- EVCMPLTS = 978,
- EVCMPLTU = 979,
- EVCNTLSW = 980,
- EVCNTLZW = 981,
- EVDIVWS = 982,
- EVDIVWU = 983,
- EVEQV = 984,
- EVEXTSB = 985,
- EVEXTSH = 986,
- EVFSABS = 987,
- EVFSADD = 988,
- EVFSCFSF = 989,
- EVFSCFSI = 990,
- EVFSCFUF = 991,
- EVFSCFUI = 992,
- EVFSCMPEQ = 993,
- EVFSCMPGT = 994,
- EVFSCMPLT = 995,
- EVFSCTSF = 996,
- EVFSCTSI = 997,
- EVFSCTSIZ = 998,
- EVFSCTUF = 999,
- EVFSCTUI = 1000,
- EVFSCTUIZ = 1001,
- EVFSDIV = 1002,
- EVFSMUL = 1003,
- EVFSNABS = 1004,
- EVFSNEG = 1005,
- EVFSSUB = 1006,
- EVFSTSTEQ = 1007,
- EVFSTSTGT = 1008,
- EVFSTSTLT = 1009,
- EVLDD = 1010,
- EVLDDX = 1011,
- EVLDH = 1012,
- EVLDHX = 1013,
- EVLDW = 1014,
- EVLDWX = 1015,
- EVLHHESPLAT = 1016,
- EVLHHESPLATX = 1017,
- EVLHHOSSPLAT = 1018,
- EVLHHOSSPLATX = 1019,
- EVLHHOUSPLAT = 1020,
- EVLHHOUSPLATX = 1021,
- EVLWHE = 1022,
- EVLWHEX = 1023,
- EVLWHOS = 1024,
- EVLWHOSX = 1025,
- EVLWHOU = 1026,
- EVLWHOUX = 1027,
- EVLWHSPLAT = 1028,
- EVLWHSPLATX = 1029,
- EVLWWSPLAT = 1030,
- EVLWWSPLATX = 1031,
- EVMERGEHI = 1032,
- EVMERGEHILO = 1033,
- EVMERGELO = 1034,
- EVMERGELOHI = 1035,
- EVMHEGSMFAA = 1036,
- EVMHEGSMFAN = 1037,
- EVMHEGSMIAA = 1038,
- EVMHEGSMIAN = 1039,
- EVMHEGUMIAA = 1040,
- EVMHEGUMIAN = 1041,
- EVMHESMF = 1042,
- EVMHESMFA = 1043,
- EVMHESMFAAW = 1044,
- EVMHESMFANW = 1045,
- EVMHESMI = 1046,
- EVMHESMIA = 1047,
- EVMHESMIAAW = 1048,
- EVMHESMIANW = 1049,
- EVMHESSF = 1050,
- EVMHESSFA = 1051,
- EVMHESSFAAW = 1052,
- EVMHESSFANW = 1053,
- EVMHESSIAAW = 1054,
- EVMHESSIANW = 1055,
- EVMHEUMI = 1056,
- EVMHEUMIA = 1057,
- EVMHEUMIAAW = 1058,
- EVMHEUMIANW = 1059,
- EVMHEUSIAAW = 1060,
- EVMHEUSIANW = 1061,
- EVMHOGSMFAA = 1062,
- EVMHOGSMFAN = 1063,
- EVMHOGSMIAA = 1064,
- EVMHOGSMIAN = 1065,
- EVMHOGUMIAA = 1066,
- EVMHOGUMIAN = 1067,
- EVMHOSMF = 1068,
- EVMHOSMFA = 1069,
- EVMHOSMFAAW = 1070,
- EVMHOSMFANW = 1071,
- EVMHOSMI = 1072,
- EVMHOSMIA = 1073,
- EVMHOSMIAAW = 1074,
- EVMHOSMIANW = 1075,
- EVMHOSSF = 1076,
- EVMHOSSFA = 1077,
- EVMHOSSFAAW = 1078,
- EVMHOSSFANW = 1079,
- EVMHOSSIAAW = 1080,
- EVMHOSSIANW = 1081,
- EVMHOUMI = 1082,
- EVMHOUMIA = 1083,
- EVMHOUMIAAW = 1084,
- EVMHOUMIANW = 1085,
- EVMHOUSIAAW = 1086,
- EVMHOUSIANW = 1087,
- EVMRA = 1088,
- EVMWHSMF = 1089,
- EVMWHSMFA = 1090,
- EVMWHSMI = 1091,
- EVMWHSMIA = 1092,
- EVMWHSSF = 1093,
- EVMWHSSFA = 1094,
- EVMWHUMI = 1095,
- EVMWHUMIA = 1096,
- EVMWLSMIAAW = 1097,
- EVMWLSMIANW = 1098,
- EVMWLSSIAAW = 1099,
- EVMWLSSIANW = 1100,
- EVMWLUMI = 1101,
- EVMWLUMIA = 1102,
- EVMWLUMIAAW = 1103,
- EVMWLUMIANW = 1104,
- EVMWLUSIAAW = 1105,
- EVMWLUSIANW = 1106,
- EVMWSMF = 1107,
- EVMWSMFA = 1108,
- EVMWSMFAA = 1109,
- EVMWSMFAN = 1110,
- EVMWSMI = 1111,
- EVMWSMIA = 1112,
- EVMWSMIAA = 1113,
- EVMWSMIAN = 1114,
- EVMWSSF = 1115,
- EVMWSSFA = 1116,
- EVMWSSFAA = 1117,
- EVMWSSFAN = 1118,
- EVMWUMI = 1119,
- EVMWUMIA = 1120,
- EVMWUMIAA = 1121,
- EVMWUMIAN = 1122,
- EVNAND = 1123,
- EVNEG = 1124,
- EVNOR = 1125,
- EVOR = 1126,
- EVORC = 1127,
- EVRLW = 1128,
- EVRLWI = 1129,
- EVRNDW = 1130,
- EVSEL = 1131,
- EVSLW = 1132,
- EVSLWI = 1133,
- EVSPLATFI = 1134,
- EVSPLATI = 1135,
- EVSRWIS = 1136,
- EVSRWIU = 1137,
- EVSRWS = 1138,
- EVSRWU = 1139,
- EVSTDD = 1140,
- EVSTDDX = 1141,
- EVSTDH = 1142,
- EVSTDHX = 1143,
- EVSTDW = 1144,
- EVSTDWX = 1145,
- EVSTWHE = 1146,
- EVSTWHEX = 1147,
- EVSTWHO = 1148,
- EVSTWHOX = 1149,
- EVSTWWE = 1150,
- EVSTWWEX = 1151,
- EVSTWWO = 1152,
- EVSTWWOX = 1153,
- EVSUBFSMIAAW = 1154,
- EVSUBFSSIAAW = 1155,
- EVSUBFUMIAAW = 1156,
- EVSUBFUSIAAW = 1157,
- EVSUBFW = 1158,
- EVSUBIFW = 1159,
- EVXOR = 1160,
- EXTSB = 1161,
- EXTSB8 = 1162,
- EXTSB8_32_64 = 1163,
- EXTSB8_rec = 1164,
- EXTSB_rec = 1165,
- EXTSH = 1166,
- EXTSH8 = 1167,
- EXTSH8_32_64 = 1168,
- EXTSH8_rec = 1169,
- EXTSH_rec = 1170,
- EXTSW = 1171,
- EXTSWSLI = 1172,
- EXTSWSLI_32_64 = 1173,
- EXTSWSLI_32_64_rec = 1174,
- EXTSWSLI_rec = 1175,
- EXTSW_32 = 1176,
- EXTSW_32_64 = 1177,
- EXTSW_32_64_rec = 1178,
- EXTSW_rec = 1179,
- EnforceIEIO = 1180,
- FABSD = 1181,
- FABSD_rec = 1182,
- FABSS = 1183,
- FABSS_rec = 1184,
- FADD = 1185,
- FADDS = 1186,
- FADDS_rec = 1187,
- FADD_rec = 1188,
- FADDrtz = 1189,
- FCFID = 1190,
- FCFIDS = 1191,
- FCFIDS_rec = 1192,
- FCFIDU = 1193,
- FCFIDUS = 1194,
- FCFIDUS_rec = 1195,
- FCFIDU_rec = 1196,
- FCFID_rec = 1197,
- FCMPOD = 1198,
- FCMPOS = 1199,
- FCMPUD = 1200,
- FCMPUS = 1201,
- FCPSGND = 1202,
- FCPSGND_rec = 1203,
- FCPSGNS = 1204,
- FCPSGNS_rec = 1205,
- FCTID = 1206,
- FCTIDU = 1207,
- FCTIDUZ = 1208,
- FCTIDUZ_rec = 1209,
- FCTIDU_rec = 1210,
- FCTIDZ = 1211,
- FCTIDZ_rec = 1212,
- FCTID_rec = 1213,
- FCTIW = 1214,
- FCTIWU = 1215,
- FCTIWUZ = 1216,
- FCTIWUZ_rec = 1217,
- FCTIWU_rec = 1218,
- FCTIWZ = 1219,
- FCTIWZ_rec = 1220,
- FCTIW_rec = 1221,
- FDIV = 1222,
- FDIVS = 1223,
- FDIVS_rec = 1224,
- FDIV_rec = 1225,
- FENCE = 1226,
- FMADD = 1227,
- FMADDS = 1228,
- FMADDS_rec = 1229,
- FMADD_rec = 1230,
- FMR = 1231,
- FMR_rec = 1232,
- FMSUB = 1233,
- FMSUBS = 1234,
- FMSUBS_rec = 1235,
- FMSUB_rec = 1236,
- FMUL = 1237,
- FMULS = 1238,
- FMULS_rec = 1239,
- FMUL_rec = 1240,
- FNABSD = 1241,
- FNABSD_rec = 1242,
- FNABSS = 1243,
- FNABSS_rec = 1244,
- FNEGD = 1245,
- FNEGD_rec = 1246,
- FNEGS = 1247,
- FNEGS_rec = 1248,
- FNMADD = 1249,
- FNMADDS = 1250,
- FNMADDS_rec = 1251,
- FNMADD_rec = 1252,
- FNMSUB = 1253,
- FNMSUBS = 1254,
- FNMSUBS_rec = 1255,
- FNMSUB_rec = 1256,
- FRE = 1257,
- FRES = 1258,
- FRES_rec = 1259,
- FRE_rec = 1260,
- FRIMD = 1261,
- FRIMD_rec = 1262,
- FRIMS = 1263,
- FRIMS_rec = 1264,
- FRIND = 1265,
- FRIND_rec = 1266,
- FRINS = 1267,
- FRINS_rec = 1268,
- FRIPD = 1269,
- FRIPD_rec = 1270,
- FRIPS = 1271,
- FRIPS_rec = 1272,
- FRIZD = 1273,
- FRIZD_rec = 1274,
- FRIZS = 1275,
- FRIZS_rec = 1276,
- FRSP = 1277,
- FRSP_rec = 1278,
- FRSQRTE = 1279,
- FRSQRTES = 1280,
- FRSQRTES_rec = 1281,
- FRSQRTE_rec = 1282,
- FSELD = 1283,
- FSELD_rec = 1284,
- FSELS = 1285,
- FSELS_rec = 1286,
- FSQRT = 1287,
- FSQRTS = 1288,
- FSQRTS_rec = 1289,
- FSQRT_rec = 1290,
- FSUB = 1291,
- FSUBS = 1292,
- FSUBS_rec = 1293,
- FSUB_rec = 1294,
- FTDIV = 1295,
- FTSQRT = 1296,
- GETtlsADDR = 1297,
- GETtlsADDR32 = 1298,
- GETtlsADDR32AIX = 1299,
- GETtlsADDR64AIX = 1300,
- GETtlsADDRPCREL = 1301,
- GETtlsMOD32AIX = 1302,
- GETtlsMOD64AIX = 1303,
- GETtlsTpointer32AIX = 1304,
- GETtlsldADDR = 1305,
- GETtlsldADDR32 = 1306,
- GETtlsldADDRPCREL = 1307,
- HASHCHK = 1308,
- HASHCHK8 = 1309,
- HASHCHKP = 1310,
- HASHCHKP8 = 1311,
- HASHST = 1312,
- HASHST8 = 1313,
- HASHSTP = 1314,
- HASHSTP8 = 1315,
- HRFID = 1316,
- ICBI = 1317,
- ICBIEP = 1318,
- ICBLC = 1319,
- ICBLQ = 1320,
- ICBT = 1321,
- ICBTLS = 1322,
- ICCCI = 1323,
- ISEL = 1324,
- ISEL8 = 1325,
- ISYNC = 1326,
- LA = 1327,
- LA8 = 1328,
- LBARX = 1329,
- LBARXL = 1330,
- LBEPX = 1331,
- LBZ = 1332,
- LBZ8 = 1333,
- LBZCIX = 1334,
- LBZU = 1335,
- LBZU8 = 1336,
- LBZUX = 1337,
- LBZUX8 = 1338,
- LBZX = 1339,
- LBZX8 = 1340,
- LBZXTLS = 1341,
- LBZXTLS_ = 1342,
- LBZXTLS_32 = 1343,
- LD = 1344,
- LDARX = 1345,
- LDARXL = 1346,
- LDAT = 1347,
- LDBRX = 1348,
- LDCIX = 1349,
- LDU = 1350,
- LDUX = 1351,
- LDX = 1352,
- LDXTLS = 1353,
- LDXTLS_ = 1354,
- LDgotTprelL = 1355,
- LDgotTprelL32 = 1356,
- LDtoc = 1357,
- LDtocBA = 1358,
- LDtocCPT = 1359,
- LDtocJTI = 1360,
- LDtocL = 1361,
- LFD = 1362,
- LFDEPX = 1363,
- LFDU = 1364,
- LFDUX = 1365,
- LFDX = 1366,
- LFDXTLS = 1367,
- LFDXTLS_ = 1368,
- LFIWAX = 1369,
- LFIWZX = 1370,
- LFS = 1371,
- LFSU = 1372,
- LFSUX = 1373,
- LFSX = 1374,
- LFSXTLS = 1375,
- LFSXTLS_ = 1376,
- LHA = 1377,
- LHA8 = 1378,
- LHARX = 1379,
- LHARXL = 1380,
- LHAU = 1381,
- LHAU8 = 1382,
- LHAUX = 1383,
- LHAUX8 = 1384,
- LHAX = 1385,
- LHAX8 = 1386,
- LHAXTLS = 1387,
- LHAXTLS_ = 1388,
- LHAXTLS_32 = 1389,
- LHBRX = 1390,
- LHBRX8 = 1391,
- LHEPX = 1392,
- LHZ = 1393,
- LHZ8 = 1394,
- LHZCIX = 1395,
- LHZU = 1396,
- LHZU8 = 1397,
- LHZUX = 1398,
- LHZUX8 = 1399,
- LHZX = 1400,
- LHZX8 = 1401,
- LHZXTLS = 1402,
- LHZXTLS_ = 1403,
- LHZXTLS_32 = 1404,
- LI = 1405,
- LI8 = 1406,
- LIS = 1407,
- LIS8 = 1408,
- LMW = 1409,
- LQ = 1410,
- LQARX = 1411,
- LQARXL = 1412,
- LQX_PSEUDO = 1413,
- LSWI = 1414,
- LVEBX = 1415,
- LVEHX = 1416,
- LVEWX = 1417,
- LVSL = 1418,
- LVSR = 1419,
- LVX = 1420,
- LVXL = 1421,
- LWA = 1422,
- LWARX = 1423,
- LWARXL = 1424,
- LWAT = 1425,
- LWAUX = 1426,
- LWAX = 1427,
- LWAXTLS = 1428,
- LWAXTLS_ = 1429,
- LWAXTLS_32 = 1430,
- LWAX_32 = 1431,
- LWA_32 = 1432,
- LWBRX = 1433,
- LWBRX8 = 1434,
- LWEPX = 1435,
- LWZ = 1436,
- LWZ8 = 1437,
- LWZCIX = 1438,
- LWZU = 1439,
- LWZU8 = 1440,
- LWZUX = 1441,
- LWZUX8 = 1442,
- LWZX = 1443,
- LWZX8 = 1444,
- LWZXTLS = 1445,
- LWZXTLS_ = 1446,
- LWZXTLS_32 = 1447,
- LWZtoc = 1448,
- LWZtocL = 1449,
- LXSD = 1450,
- LXSDX = 1451,
- LXSIBZX = 1452,
- LXSIHZX = 1453,
- LXSIWAX = 1454,
- LXSIWZX = 1455,
- LXSSP = 1456,
- LXSSPX = 1457,
- LXV = 1458,
- LXVB16X = 1459,
- LXVD2X = 1460,
- LXVDSX = 1461,
- LXVH8X = 1462,
- LXVKQ = 1463,
- LXVL = 1464,
- LXVLL = 1465,
- LXVP = 1466,
- LXVPRL = 1467,
- LXVPRLL = 1468,
- LXVPX = 1469,
- LXVRBX = 1470,
- LXVRDX = 1471,
- LXVRHX = 1472,
- LXVRL = 1473,
- LXVRLL = 1474,
- LXVRWX = 1475,
- LXVW4X = 1476,
- LXVWSX = 1477,
- LXVX = 1478,
- MADDHD = 1479,
- MADDHDU = 1480,
- MADDLD = 1481,
- MADDLD8 = 1482,
- MBAR = 1483,
- MCRF = 1484,
- MCRFS = 1485,
- MCRXRX = 1486,
- MFBHRBE = 1487,
- MFCR = 1488,
- MFCR8 = 1489,
- MFCTR = 1490,
- MFCTR8 = 1491,
- MFDCR = 1492,
- MFFS = 1493,
- MFFSCDRN = 1494,
- MFFSCDRNI = 1495,
- MFFSCE = 1496,
- MFFSCRN = 1497,
- MFFSCRNI = 1498,
- MFFSL = 1499,
- MFFS_rec = 1500,
- MFLR = 1501,
- MFLR8 = 1502,
- MFMSR = 1503,
- MFOCRF = 1504,
- MFOCRF8 = 1505,
- MFPMR = 1506,
- MFSPR = 1507,
- MFSPR8 = 1508,
- MFSR = 1509,
- MFSRIN = 1510,
- MFTB = 1511,
- MFTB8 = 1512,
- MFUDSCR = 1513,
- MFVRD = 1514,
- MFVRSAVE = 1515,
- MFVRSAVEv = 1516,
- MFVRWZ = 1517,
- MFVSCR = 1518,
- MFVSRD = 1519,
- MFVSRLD = 1520,
- MFVSRWZ = 1521,
- MODSD = 1522,
- MODSW = 1523,
- MODUD = 1524,
- MODUW = 1525,
- MSGSYNC = 1526,
- MSYNC = 1527,
- MTCRF = 1528,
- MTCRF8 = 1529,
- MTCTR = 1530,
- MTCTR8 = 1531,
- MTCTR8loop = 1532,
- MTCTRloop = 1533,
- MTDCR = 1534,
- MTFSB0 = 1535,
- MTFSB1 = 1536,
- MTFSF = 1537,
- MTFSFI = 1538,
- MTFSFI_rec = 1539,
- MTFSFIb = 1540,
- MTFSF_rec = 1541,
- MTFSFb = 1542,
- MTLR = 1543,
- MTLR8 = 1544,
- MTMSR = 1545,
- MTMSRD = 1546,
- MTOCRF = 1547,
- MTOCRF8 = 1548,
- MTPMR = 1549,
- MTSPR = 1550,
- MTSPR8 = 1551,
- MTSR = 1552,
- MTSRIN = 1553,
- MTUDSCR = 1554,
- MTVRD = 1555,
- MTVRSAVE = 1556,
- MTVRSAVEv = 1557,
- MTVRWA = 1558,
- MTVRWZ = 1559,
- MTVSCR = 1560,
- MTVSRBM = 1561,
- MTVSRBMI = 1562,
- MTVSRD = 1563,
- MTVSRDD = 1564,
- MTVSRDM = 1565,
- MTVSRHM = 1566,
- MTVSRQM = 1567,
- MTVSRWA = 1568,
- MTVSRWM = 1569,
- MTVSRWS = 1570,
- MTVSRWZ = 1571,
- MULHD = 1572,
- MULHDU = 1573,
- MULHDU_rec = 1574,
- MULHD_rec = 1575,
- MULHW = 1576,
- MULHWU = 1577,
- MULHWU_rec = 1578,
- MULHW_rec = 1579,
- MULLD = 1580,
- MULLDO = 1581,
- MULLDO_rec = 1582,
- MULLD_rec = 1583,
- MULLI = 1584,
- MULLI8 = 1585,
- MULLW = 1586,
- MULLWO = 1587,
- MULLWO_rec = 1588,
- MULLW_rec = 1589,
- MoveGOTtoLR = 1590,
- MovePCtoLR = 1591,
- MovePCtoLR8 = 1592,
- NAND = 1593,
- NAND8 = 1594,
- NAND8_rec = 1595,
- NAND_rec = 1596,
- NAP = 1597,
- NEG = 1598,
- NEG8 = 1599,
- NEG8O = 1600,
- NEG8O_rec = 1601,
- NEG8_rec = 1602,
- NEGO = 1603,
- NEGO_rec = 1604,
- NEG_rec = 1605,
- NOP = 1606,
- NOP_GT_PWR6 = 1607,
- NOP_GT_PWR7 = 1608,
- NOR = 1609,
- NOR8 = 1610,
- NOR8_rec = 1611,
- NOR_rec = 1612,
- OR = 1613,
- OR8 = 1614,
- OR8_rec = 1615,
- ORC = 1616,
- ORC8 = 1617,
- ORC8_rec = 1618,
- ORC_rec = 1619,
- ORI = 1620,
- ORI8 = 1621,
- ORIS = 1622,
- ORIS8 = 1623,
- OR_rec = 1624,
- PADDI = 1625,
- PADDI8 = 1626,
- PADDI8pc = 1627,
- PADDIdtprel = 1628,
- PADDIpc = 1629,
- PDEPD = 1630,
- PEXTD = 1631,
- PLA = 1632,
- PLA8 = 1633,
- PLA8pc = 1634,
- PLApc = 1635,
- PLBZ = 1636,
- PLBZ8 = 1637,
- PLBZ8nopc = 1638,
- PLBZ8onlypc = 1639,
- PLBZ8pc = 1640,
- PLBZnopc = 1641,
- PLBZonlypc = 1642,
- PLBZpc = 1643,
- PLD = 1644,
- PLDnopc = 1645,
- PLDonlypc = 1646,
- PLDpc = 1647,
- PLFD = 1648,
- PLFDnopc = 1649,
- PLFDonlypc = 1650,
- PLFDpc = 1651,
- PLFS = 1652,
- PLFSnopc = 1653,
- PLFSonlypc = 1654,
- PLFSpc = 1655,
- PLHA = 1656,
- PLHA8 = 1657,
- PLHA8nopc = 1658,
- PLHA8onlypc = 1659,
- PLHA8pc = 1660,
- PLHAnopc = 1661,
- PLHAonlypc = 1662,
- PLHApc = 1663,
- PLHZ = 1664,
- PLHZ8 = 1665,
- PLHZ8nopc = 1666,
- PLHZ8onlypc = 1667,
- PLHZ8pc = 1668,
- PLHZnopc = 1669,
- PLHZonlypc = 1670,
- PLHZpc = 1671,
- PLI = 1672,
- PLI8 = 1673,
- PLWA = 1674,
- PLWA8 = 1675,
- PLWA8nopc = 1676,
- PLWA8onlypc = 1677,
- PLWA8pc = 1678,
- PLWAnopc = 1679,
- PLWAonlypc = 1680,
- PLWApc = 1681,
- PLWZ = 1682,
- PLWZ8 = 1683,
- PLWZ8nopc = 1684,
- PLWZ8onlypc = 1685,
- PLWZ8pc = 1686,
- PLWZnopc = 1687,
- PLWZonlypc = 1688,
- PLWZpc = 1689,
- PLXSD = 1690,
- PLXSDnopc = 1691,
- PLXSDonlypc = 1692,
- PLXSDpc = 1693,
- PLXSSP = 1694,
- PLXSSPnopc = 1695,
- PLXSSPonlypc = 1696,
- PLXSSPpc = 1697,
- PLXV = 1698,
- PLXVP = 1699,
- PLXVPnopc = 1700,
- PLXVPonlypc = 1701,
- PLXVPpc = 1702,
- PLXVnopc = 1703,
- PLXVonlypc = 1704,
- PLXVpc = 1705,
- PMDMXVBF16GERX2 = 1706,
- PMDMXVBF16GERX2NN = 1707,
- PMDMXVBF16GERX2NP = 1708,
- PMDMXVBF16GERX2PN = 1709,
- PMDMXVBF16GERX2PP = 1710,
- PMDMXVF16GERX2 = 1711,
- PMDMXVF16GERX2NN = 1712,
- PMDMXVF16GERX2NP = 1713,
- PMDMXVF16GERX2PN = 1714,
- PMDMXVF16GERX2PP = 1715,
- PMDMXVI8GERX4 = 1716,
- PMDMXVI8GERX4PP = 1717,
- PMDMXVI8GERX4SPP = 1718,
- PMXVBF16GER2 = 1719,
- PMXVBF16GER2NN = 1720,
- PMXVBF16GER2NP = 1721,
- PMXVBF16GER2PN = 1722,
- PMXVBF16GER2PP = 1723,
- PMXVBF16GER2W = 1724,
- PMXVBF16GER2WNN = 1725,
- PMXVBF16GER2WNP = 1726,
- PMXVBF16GER2WPN = 1727,
- PMXVBF16GER2WPP = 1728,
- PMXVF16GER2 = 1729,
- PMXVF16GER2NN = 1730,
- PMXVF16GER2NP = 1731,
- PMXVF16GER2PN = 1732,
- PMXVF16GER2PP = 1733,
- PMXVF16GER2W = 1734,
- PMXVF16GER2WNN = 1735,
- PMXVF16GER2WNP = 1736,
- PMXVF16GER2WPN = 1737,
- PMXVF16GER2WPP = 1738,
- PMXVF32GER = 1739,
- PMXVF32GERNN = 1740,
- PMXVF32GERNP = 1741,
- PMXVF32GERPN = 1742,
- PMXVF32GERPP = 1743,
- PMXVF32GERW = 1744,
- PMXVF32GERWNN = 1745,
- PMXVF32GERWNP = 1746,
- PMXVF32GERWPN = 1747,
- PMXVF32GERWPP = 1748,
- PMXVF64GER = 1749,
- PMXVF64GERNN = 1750,
- PMXVF64GERNP = 1751,
- PMXVF64GERPN = 1752,
- PMXVF64GERPP = 1753,
- PMXVF64GERW = 1754,
- PMXVF64GERWNN = 1755,
- PMXVF64GERWNP = 1756,
- PMXVF64GERWPN = 1757,
- PMXVF64GERWPP = 1758,
- PMXVI16GER2 = 1759,
- PMXVI16GER2PP = 1760,
- PMXVI16GER2S = 1761,
- PMXVI16GER2SPP = 1762,
- PMXVI16GER2SW = 1763,
- PMXVI16GER2SWPP = 1764,
- PMXVI16GER2W = 1765,
- PMXVI16GER2WPP = 1766,
- PMXVI4GER8 = 1767,
- PMXVI4GER8PP = 1768,
- PMXVI4GER8W = 1769,
- PMXVI4GER8WPP = 1770,
- PMXVI8GER4 = 1771,
- PMXVI8GER4PP = 1772,
- PMXVI8GER4SPP = 1773,
- PMXVI8GER4W = 1774,
- PMXVI8GER4WPP = 1775,
- PMXVI8GER4WSPP = 1776,
- POPCNTB = 1777,
- POPCNTB8 = 1778,
- POPCNTD = 1779,
- POPCNTW = 1780,
- PPC32GOT = 1781,
- PPC32PICGOT = 1782,
- PREPARE_PROBED_ALLOCA_32 = 1783,
- PREPARE_PROBED_ALLOCA_64 = 1784,
- PREPARE_PROBED_ALLOCA_NEGSIZE_SAME_REG_32 = 1785,
- PREPARE_PROBED_ALLOCA_NEGSIZE_SAME_REG_64 = 1786,
- PROBED_ALLOCA_32 = 1787,
- PROBED_ALLOCA_64 = 1788,
- PROBED_STACKALLOC_32 = 1789,
- PROBED_STACKALLOC_64 = 1790,
- PSTB = 1791,
- PSTB8 = 1792,
- PSTB8nopc = 1793,
- PSTB8onlypc = 1794,
- PSTB8pc = 1795,
- PSTBnopc = 1796,
- PSTBonlypc = 1797,
- PSTBpc = 1798,
- PSTD = 1799,
- PSTDnopc = 1800,
- PSTDonlypc = 1801,
- PSTDpc = 1802,
- PSTFD = 1803,
- PSTFDnopc = 1804,
- PSTFDonlypc = 1805,
- PSTFDpc = 1806,
- PSTFS = 1807,
- PSTFSnopc = 1808,
- PSTFSonlypc = 1809,
- PSTFSpc = 1810,
- PSTH = 1811,
- PSTH8 = 1812,
- PSTH8nopc = 1813,
- PSTH8onlypc = 1814,
- PSTH8pc = 1815,
- PSTHnopc = 1816,
- PSTHonlypc = 1817,
- PSTHpc = 1818,
- PSTW = 1819,
- PSTW8 = 1820,
- PSTW8nopc = 1821,
- PSTW8onlypc = 1822,
- PSTW8pc = 1823,
- PSTWnopc = 1824,
- PSTWonlypc = 1825,
- PSTWpc = 1826,
- PSTXSD = 1827,
- PSTXSDnopc = 1828,
- PSTXSDonlypc = 1829,
- PSTXSDpc = 1830,
- PSTXSSP = 1831,
- PSTXSSPnopc = 1832,
- PSTXSSPonlypc = 1833,
- PSTXSSPpc = 1834,
- PSTXV = 1835,
- PSTXVP = 1836,
- PSTXVPnopc = 1837,
- PSTXVPonlypc = 1838,
- PSTXVPpc = 1839,
- PSTXVnopc = 1840,
- PSTXVonlypc = 1841,
- PSTXVpc = 1842,
- PseudoEIEIO = 1843,
- RESTORE_ACC = 1844,
- RESTORE_CR = 1845,
- RESTORE_CRBIT = 1846,
- RESTORE_DMR = 1847,
- RESTORE_DMRP = 1848,
- RESTORE_QUADWORD = 1849,
- RESTORE_UACC = 1850,
- RESTORE_WACC = 1851,
- RFCI = 1852,
- RFDI = 1853,
- RFEBB = 1854,
- RFI = 1855,
- RFID = 1856,
- RFMCI = 1857,
- RLDCL = 1858,
- RLDCL_rec = 1859,
- RLDCR = 1860,
- RLDCR_rec = 1861,
- RLDIC = 1862,
- RLDICL = 1863,
- RLDICL_32 = 1864,
- RLDICL_32_64 = 1865,
- RLDICL_32_rec = 1866,
- RLDICL_rec = 1867,
- RLDICR = 1868,
- RLDICR_32 = 1869,
- RLDICR_rec = 1870,
- RLDIC_rec = 1871,
- RLDIMI = 1872,
- RLDIMI_rec = 1873,
- RLWIMI = 1874,
- RLWIMI8 = 1875,
- RLWIMI8_rec = 1876,
- RLWIMI_rec = 1877,
- RLWINM = 1878,
- RLWINM8 = 1879,
- RLWINM8_rec = 1880,
- RLWINM_rec = 1881,
- RLWNM = 1882,
- RLWNM8 = 1883,
- RLWNM8_rec = 1884,
- RLWNM_rec = 1885,
- ReadTB = 1886,
- SC = 1887,
- SCV = 1888,
- SELECT_CC_F16 = 1889,
- SELECT_CC_F4 = 1890,
- SELECT_CC_F8 = 1891,
- SELECT_CC_I4 = 1892,
- SELECT_CC_I8 = 1893,
- SELECT_CC_SPE = 1894,
- SELECT_CC_SPE4 = 1895,
- SELECT_CC_VRRC = 1896,
- SELECT_CC_VSFRC = 1897,
- SELECT_CC_VSRC = 1898,
- SELECT_CC_VSSRC = 1899,
- SELECT_F16 = 1900,
- SELECT_F4 = 1901,
- SELECT_F8 = 1902,
- SELECT_I4 = 1903,
- SELECT_I8 = 1904,
- SELECT_SPE = 1905,
- SELECT_SPE4 = 1906,
- SELECT_VRRC = 1907,
- SELECT_VSFRC = 1908,
- SELECT_VSRC = 1909,
- SELECT_VSSRC = 1910,
- SETB = 1911,
- SETB8 = 1912,
- SETBC = 1913,
- SETBC8 = 1914,
- SETBCR = 1915,
- SETBCR8 = 1916,
- SETFLM = 1917,
- SETNBC = 1918,
- SETNBC8 = 1919,
- SETNBCR = 1920,
- SETNBCR8 = 1921,
- SETRND = 1922,
- SETRNDi = 1923,
- SLBFEE_rec = 1924,
- SLBIA = 1925,
- SLBIE = 1926,
- SLBIEG = 1927,
- SLBMFEE = 1928,
- SLBMFEV = 1929,
- SLBMTE = 1930,
- SLBSYNC = 1931,
- SLD = 1932,
- SLD_rec = 1933,
- SLW = 1934,
- SLW8 = 1935,
- SLW8_rec = 1936,
- SLW_rec = 1937,
- SPELWZ = 1938,
- SPELWZX = 1939,
- SPESTW = 1940,
- SPESTWX = 1941,
- SPILL_ACC = 1942,
- SPILL_CR = 1943,
- SPILL_CRBIT = 1944,
- SPILL_DMR = 1945,
- SPILL_DMRP = 1946,
- SPILL_QUADWORD = 1947,
- SPILL_UACC = 1948,
- SPILL_WACC = 1949,
- SPLIT_QUADWORD = 1950,
- SRAD = 1951,
- SRADI = 1952,
- SRADI_32 = 1953,
- SRADI_rec = 1954,
- SRAD_rec = 1955,
- SRAW = 1956,
- SRAW8 = 1957,
- SRAW8_rec = 1958,
- SRAWI = 1959,
- SRAWI8 = 1960,
- SRAWI8_rec = 1961,
- SRAWI_rec = 1962,
- SRAW_rec = 1963,
- SRD = 1964,
- SRD_rec = 1965,
- SRW = 1966,
- SRW8 = 1967,
- SRW8_rec = 1968,
- SRW_rec = 1969,
- STB = 1970,
- STB8 = 1971,
- STBCIX = 1972,
- STBCX = 1973,
- STBEPX = 1974,
- STBU = 1975,
- STBU8 = 1976,
- STBUX = 1977,
- STBUX8 = 1978,
- STBX = 1979,
- STBX8 = 1980,
- STBXTLS = 1981,
- STBXTLS_ = 1982,
- STBXTLS_32 = 1983,
- STD = 1984,
- STDAT = 1985,
- STDBRX = 1986,
- STDCIX = 1987,
- STDCX = 1988,
- STDU = 1989,
- STDUX = 1990,
- STDX = 1991,
- STDXTLS = 1992,
- STDXTLS_ = 1993,
- STFD = 1994,
- STFDEPX = 1995,
- STFDU = 1996,
- STFDUX = 1997,
- STFDX = 1998,
- STFDXTLS = 1999,
- STFDXTLS_ = 2000,
- STFIWX = 2001,
- STFS = 2002,
- STFSU = 2003,
- STFSUX = 2004,
- STFSX = 2005,
- STFSXTLS = 2006,
- STFSXTLS_ = 2007,
- STH = 2008,
- STH8 = 2009,
- STHBRX = 2010,
- STHCIX = 2011,
- STHCX = 2012,
- STHEPX = 2013,
- STHU = 2014,
- STHU8 = 2015,
- STHUX = 2016,
- STHUX8 = 2017,
- STHX = 2018,
- STHX8 = 2019,
- STHXTLS = 2020,
- STHXTLS_ = 2021,
- STHXTLS_32 = 2022,
- STMW = 2023,
- STOP = 2024,
- STQ = 2025,
- STQCX = 2026,
- STQX_PSEUDO = 2027,
- STSWI = 2028,
- STVEBX = 2029,
- STVEHX = 2030,
- STVEWX = 2031,
- STVX = 2032,
- STVXL = 2033,
- STW = 2034,
- STW8 = 2035,
- STWAT = 2036,
- STWBRX = 2037,
- STWCIX = 2038,
- STWCX = 2039,
- STWEPX = 2040,
- STWU = 2041,
- STWU8 = 2042,
- STWUX = 2043,
- STWUX8 = 2044,
- STWX = 2045,
- STWX8 = 2046,
- STWXTLS = 2047,
- STWXTLS_ = 2048,
- STWXTLS_32 = 2049,
- STXSD = 2050,
- STXSDX = 2051,
- STXSIBX = 2052,
- STXSIBXv = 2053,
- STXSIHX = 2054,
- STXSIHXv = 2055,
- STXSIWX = 2056,
- STXSSP = 2057,
- STXSSPX = 2058,
- STXV = 2059,
- STXVB16X = 2060,
- STXVD2X = 2061,
- STXVH8X = 2062,
- STXVL = 2063,
- STXVLL = 2064,
- STXVP = 2065,
- STXVPRL = 2066,
- STXVPRLL = 2067,
- STXVPX = 2068,
- STXVRBX = 2069,
- STXVRDX = 2070,
- STXVRHX = 2071,
- STXVRL = 2072,
- STXVRLL = 2073,
- STXVRWX = 2074,
- STXVW4X = 2075,
- STXVX = 2076,
- SUBF = 2077,
- SUBF8 = 2078,
- SUBF8O = 2079,
- SUBF8O_rec = 2080,
- SUBF8_rec = 2081,
- SUBFC = 2082,
- SUBFC8 = 2083,
- SUBFC8O = 2084,
- SUBFC8O_rec = 2085,
- SUBFC8_rec = 2086,
- SUBFCO = 2087,
- SUBFCO_rec = 2088,
- SUBFC_rec = 2089,
- SUBFE = 2090,
- SUBFE8 = 2091,
- SUBFE8O = 2092,
- SUBFE8O_rec = 2093,
- SUBFE8_rec = 2094,
- SUBFEO = 2095,
- SUBFEO_rec = 2096,
- SUBFE_rec = 2097,
- SUBFIC = 2098,
- SUBFIC8 = 2099,
- SUBFME = 2100,
- SUBFME8 = 2101,
- SUBFME8O = 2102,
- SUBFME8O_rec = 2103,
- SUBFME8_rec = 2104,
- SUBFMEO = 2105,
- SUBFMEO_rec = 2106,
- SUBFME_rec = 2107,
- SUBFO = 2108,
- SUBFO_rec = 2109,
- SUBFUS = 2110,
- SUBFUS_rec = 2111,
- SUBFZE = 2112,
- SUBFZE8 = 2113,
- SUBFZE8O = 2114,
- SUBFZE8O_rec = 2115,
- SUBFZE8_rec = 2116,
- SUBFZEO = 2117,
- SUBFZEO_rec = 2118,
- SUBFZE_rec = 2119,
- SUBF_rec = 2120,
- SYNC = 2121,
- SYNCP10 = 2122,
- TABORT = 2123,
- TABORTDC = 2124,
- TABORTDCI = 2125,
- TABORTWC = 2126,
- TABORTWCI = 2127,
- TAILB = 2128,
- TAILB8 = 2129,
- TAILBA = 2130,
- TAILBA8 = 2131,
- TAILBCTR = 2132,
- TAILBCTR8 = 2133,
- TBEGIN = 2134,
- TBEGIN_RET = 2135,
- TCHECK = 2136,
- TCHECK_RET = 2137,
- TCRETURNai = 2138,
- TCRETURNai8 = 2139,
- TCRETURNdi = 2140,
- TCRETURNdi8 = 2141,
- TCRETURNri = 2142,
- TCRETURNri8 = 2143,
- TD = 2144,
- TDI = 2145,
- TEND = 2146,
- TLBIA = 2147,
- TLBIE = 2148,
- TLBIEL = 2149,
- TLBILX = 2150,
- TLBIVAX = 2151,
- TLBLD = 2152,
- TLBLI = 2153,
- TLBRE = 2154,
- TLBRE2 = 2155,
- TLBSX = 2156,
- TLBSX2 = 2157,
- TLBSX2D = 2158,
- TLBSYNC = 2159,
- TLBWE = 2160,
- TLBWE2 = 2161,
- TLSGDAIX = 2162,
- TLSGDAIX8 = 2163,
- TLSLDAIX = 2164,
- TLSLDAIX8 = 2165,
- TRAP = 2166,
- TRECHKPT = 2167,
- TRECLAIM = 2168,
- TSR = 2169,
- TW = 2170,
- TWI = 2171,
- UNENCODED_NOP = 2172,
- UpdateGBR = 2173,
- VABSDUB = 2174,
- VABSDUH = 2175,
- VABSDUW = 2176,
- VADDCUQ = 2177,
- VADDCUW = 2178,
- VADDECUQ = 2179,
- VADDEUQM = 2180,
- VADDFP = 2181,
- VADDSBS = 2182,
- VADDSHS = 2183,
- VADDSWS = 2184,
- VADDUBM = 2185,
- VADDUBS = 2186,
- VADDUDM = 2187,
- VADDUHM = 2188,
- VADDUHS = 2189,
- VADDUQM = 2190,
- VADDUWM = 2191,
- VADDUWS = 2192,
- VAND = 2193,
- VANDC = 2194,
- VAVGSB = 2195,
- VAVGSH = 2196,
- VAVGSW = 2197,
- VAVGUB = 2198,
- VAVGUH = 2199,
- VAVGUW = 2200,
- VBPERMD = 2201,
- VBPERMQ = 2202,
- VCFSX = 2203,
- VCFSX_0 = 2204,
- VCFUGED = 2205,
- VCFUX = 2206,
- VCFUX_0 = 2207,
- VCIPHER = 2208,
- VCIPHERLAST = 2209,
- VCLRLB = 2210,
- VCLRRB = 2211,
- VCLZB = 2212,
- VCLZD = 2213,
- VCLZDM = 2214,
- VCLZH = 2215,
- VCLZLSBB = 2216,
- VCLZW = 2217,
- VCMPBFP = 2218,
- VCMPBFP_rec = 2219,
- VCMPEQFP = 2220,
- VCMPEQFP_rec = 2221,
- VCMPEQUB = 2222,
- VCMPEQUB_rec = 2223,
- VCMPEQUD = 2224,
- VCMPEQUD_rec = 2225,
- VCMPEQUH = 2226,
- VCMPEQUH_rec = 2227,
- VCMPEQUQ = 2228,
- VCMPEQUQ_rec = 2229,
- VCMPEQUW = 2230,
- VCMPEQUW_rec = 2231,
- VCMPGEFP = 2232,
- VCMPGEFP_rec = 2233,
- VCMPGTFP = 2234,
- VCMPGTFP_rec = 2235,
- VCMPGTSB = 2236,
- VCMPGTSB_rec = 2237,
- VCMPGTSD = 2238,
- VCMPGTSD_rec = 2239,
- VCMPGTSH = 2240,
- VCMPGTSH_rec = 2241,
- VCMPGTSQ = 2242,
- VCMPGTSQ_rec = 2243,
- VCMPGTSW = 2244,
- VCMPGTSW_rec = 2245,
- VCMPGTUB = 2246,
- VCMPGTUB_rec = 2247,
- VCMPGTUD = 2248,
- VCMPGTUD_rec = 2249,
- VCMPGTUH = 2250,
- VCMPGTUH_rec = 2251,
- VCMPGTUQ = 2252,
- VCMPGTUQ_rec = 2253,
- VCMPGTUW = 2254,
- VCMPGTUW_rec = 2255,
- VCMPNEB = 2256,
- VCMPNEB_rec = 2257,
- VCMPNEH = 2258,
- VCMPNEH_rec = 2259,
- VCMPNEW = 2260,
- VCMPNEW_rec = 2261,
- VCMPNEZB = 2262,
- VCMPNEZB_rec = 2263,
- VCMPNEZH = 2264,
- VCMPNEZH_rec = 2265,
- VCMPNEZW = 2266,
- VCMPNEZW_rec = 2267,
- VCMPSQ = 2268,
- VCMPUQ = 2269,
- VCNTMBB = 2270,
- VCNTMBD = 2271,
- VCNTMBH = 2272,
- VCNTMBW = 2273,
- VCTSXS = 2274,
- VCTSXS_0 = 2275,
- VCTUXS = 2276,
- VCTUXS_0 = 2277,
- VCTZB = 2278,
- VCTZD = 2279,
- VCTZDM = 2280,
- VCTZH = 2281,
- VCTZLSBB = 2282,
- VCTZW = 2283,
- VDIVESD = 2284,
- VDIVESQ = 2285,
- VDIVESW = 2286,
- VDIVEUD = 2287,
- VDIVEUQ = 2288,
- VDIVEUW = 2289,
- VDIVSD = 2290,
- VDIVSQ = 2291,
- VDIVSW = 2292,
- VDIVUD = 2293,
- VDIVUQ = 2294,
- VDIVUW = 2295,
- VEQV = 2296,
- VEXPANDBM = 2297,
- VEXPANDDM = 2298,
- VEXPANDHM = 2299,
- VEXPANDQM = 2300,
- VEXPANDWM = 2301,
- VEXPTEFP = 2302,
- VEXTDDVLX = 2303,
- VEXTDDVRX = 2304,
- VEXTDUBVLX = 2305,
- VEXTDUBVRX = 2306,
- VEXTDUHVLX = 2307,
- VEXTDUHVRX = 2308,
- VEXTDUWVLX = 2309,
- VEXTDUWVRX = 2310,
- VEXTRACTBM = 2311,
- VEXTRACTD = 2312,
- VEXTRACTDM = 2313,
- VEXTRACTHM = 2314,
- VEXTRACTQM = 2315,
- VEXTRACTUB = 2316,
- VEXTRACTUH = 2317,
- VEXTRACTUW = 2318,
- VEXTRACTWM = 2319,
- VEXTSB2D = 2320,
- VEXTSB2Ds = 2321,
- VEXTSB2W = 2322,
- VEXTSB2Ws = 2323,
- VEXTSD2Q = 2324,
- VEXTSH2D = 2325,
- VEXTSH2Ds = 2326,
- VEXTSH2W = 2327,
- VEXTSH2Ws = 2328,
- VEXTSW2D = 2329,
- VEXTSW2Ds = 2330,
- VEXTUBLX = 2331,
- VEXTUBRX = 2332,
- VEXTUHLX = 2333,
- VEXTUHRX = 2334,
- VEXTUWLX = 2335,
- VEXTUWRX = 2336,
- VGBBD = 2337,
- VGNB = 2338,
- VINSBLX = 2339,
- VINSBRX = 2340,
- VINSBVLX = 2341,
- VINSBVRX = 2342,
- VINSD = 2343,
- VINSDLX = 2344,
- VINSDRX = 2345,
- VINSERTB = 2346,
- VINSERTD = 2347,
- VINSERTH = 2348,
- VINSERTW = 2349,
- VINSHLX = 2350,
- VINSHRX = 2351,
- VINSHVLX = 2352,
- VINSHVRX = 2353,
- VINSW = 2354,
- VINSWLX = 2355,
- VINSWRX = 2356,
- VINSWVLX = 2357,
- VINSWVRX = 2358,
- VLOGEFP = 2359,
- VMADDFP = 2360,
- VMAXFP = 2361,
- VMAXSB = 2362,
- VMAXSD = 2363,
- VMAXSH = 2364,
- VMAXSW = 2365,
- VMAXUB = 2366,
- VMAXUD = 2367,
- VMAXUH = 2368,
- VMAXUW = 2369,
- VMHADDSHS = 2370,
- VMHRADDSHS = 2371,
- VMINFP = 2372,
- VMINSB = 2373,
- VMINSD = 2374,
- VMINSH = 2375,
- VMINSW = 2376,
- VMINUB = 2377,
- VMINUD = 2378,
- VMINUH = 2379,
- VMINUW = 2380,
- VMLADDUHM = 2381,
- VMODSD = 2382,
- VMODSQ = 2383,
- VMODSW = 2384,
- VMODUD = 2385,
- VMODUQ = 2386,
- VMODUW = 2387,
- VMRGEW = 2388,
- VMRGHB = 2389,
- VMRGHH = 2390,
- VMRGHW = 2391,
- VMRGLB = 2392,
- VMRGLH = 2393,
- VMRGLW = 2394,
- VMRGOW = 2395,
- VMSUMCUD = 2396,
- VMSUMMBM = 2397,
- VMSUMSHM = 2398,
- VMSUMSHS = 2399,
- VMSUMUBM = 2400,
- VMSUMUDM = 2401,
- VMSUMUHM = 2402,
- VMSUMUHS = 2403,
- VMUL10CUQ = 2404,
- VMUL10ECUQ = 2405,
- VMUL10EUQ = 2406,
- VMUL10UQ = 2407,
- VMULESB = 2408,
- VMULESD = 2409,
- VMULESH = 2410,
- VMULESW = 2411,
- VMULEUB = 2412,
- VMULEUD = 2413,
- VMULEUH = 2414,
- VMULEUW = 2415,
- VMULHSD = 2416,
- VMULHSW = 2417,
- VMULHUD = 2418,
- VMULHUW = 2419,
- VMULLD = 2420,
- VMULOSB = 2421,
- VMULOSD = 2422,
- VMULOSH = 2423,
- VMULOSW = 2424,
- VMULOUB = 2425,
- VMULOUD = 2426,
- VMULOUH = 2427,
- VMULOUW = 2428,
- VMULUWM = 2429,
- VNAND = 2430,
- VNCIPHER = 2431,
- VNCIPHERLAST = 2432,
- VNEGD = 2433,
- VNEGW = 2434,
- VNMSUBFP = 2435,
- VNOR = 2436,
- VOR = 2437,
- VORC = 2438,
- VPDEPD = 2439,
- VPERM = 2440,
- VPERMR = 2441,
- VPERMXOR = 2442,
- VPEXTD = 2443,
- VPKPX = 2444,
- VPKSDSS = 2445,
- VPKSDUS = 2446,
- VPKSHSS = 2447,
- VPKSHUS = 2448,
- VPKSWSS = 2449,
- VPKSWUS = 2450,
- VPKUDUM = 2451,
- VPKUDUS = 2452,
- VPKUHUM = 2453,
- VPKUHUS = 2454,
- VPKUWUM = 2455,
- VPKUWUS = 2456,
- VPMSUMB = 2457,
- VPMSUMD = 2458,
- VPMSUMH = 2459,
- VPMSUMW = 2460,
- VPOPCNTB = 2461,
- VPOPCNTD = 2462,
- VPOPCNTH = 2463,
- VPOPCNTW = 2464,
- VPRTYBD = 2465,
- VPRTYBQ = 2466,
- VPRTYBW = 2467,
- VREFP = 2468,
- VRFIM = 2469,
- VRFIN = 2470,
- VRFIP = 2471,
- VRFIZ = 2472,
- VRLB = 2473,
- VRLD = 2474,
- VRLDMI = 2475,
- VRLDNM = 2476,
- VRLH = 2477,
- VRLQ = 2478,
- VRLQMI = 2479,
- VRLQNM = 2480,
- VRLW = 2481,
- VRLWMI = 2482,
- VRLWNM = 2483,
- VRSQRTEFP = 2484,
- VSBOX = 2485,
- VSEL = 2486,
- VSHASIGMAD = 2487,
- VSHASIGMAW = 2488,
- VSL = 2489,
- VSLB = 2490,
- VSLD = 2491,
- VSLDBI = 2492,
- VSLDOI = 2493,
- VSLH = 2494,
- VSLO = 2495,
- VSLQ = 2496,
- VSLV = 2497,
- VSLW = 2498,
- VSPLTB = 2499,
- VSPLTBs = 2500,
- VSPLTH = 2501,
- VSPLTHs = 2502,
- VSPLTISB = 2503,
- VSPLTISH = 2504,
- VSPLTISW = 2505,
- VSPLTW = 2506,
- VSR = 2507,
- VSRAB = 2508,
- VSRAD = 2509,
- VSRAH = 2510,
- VSRAQ = 2511,
- VSRAW = 2512,
- VSRB = 2513,
- VSRD = 2514,
- VSRDBI = 2515,
- VSRH = 2516,
- VSRO = 2517,
- VSRQ = 2518,
- VSRV = 2519,
- VSRW = 2520,
- VSTRIBL = 2521,
- VSTRIBL_rec = 2522,
- VSTRIBR = 2523,
- VSTRIBR_rec = 2524,
- VSTRIHL = 2525,
- VSTRIHL_rec = 2526,
- VSTRIHR = 2527,
- VSTRIHR_rec = 2528,
- VSUBCUQ = 2529,
- VSUBCUW = 2530,
- VSUBECUQ = 2531,
- VSUBEUQM = 2532,
- VSUBFP = 2533,
- VSUBSBS = 2534,
- VSUBSHS = 2535,
- VSUBSWS = 2536,
- VSUBUBM = 2537,
- VSUBUBS = 2538,
- VSUBUDM = 2539,
- VSUBUHM = 2540,
- VSUBUHS = 2541,
- VSUBUQM = 2542,
- VSUBUWM = 2543,
- VSUBUWS = 2544,
- VSUM2SWS = 2545,
- VSUM4SBS = 2546,
- VSUM4SHS = 2547,
- VSUM4UBS = 2548,
- VSUMSWS = 2549,
- VUPKHPX = 2550,
- VUPKHSB = 2551,
- VUPKHSH = 2552,
- VUPKHSW = 2553,
- VUPKLPX = 2554,
- VUPKLSB = 2555,
- VUPKLSH = 2556,
- VUPKLSW = 2557,
- VXOR = 2558,
- V_SET0 = 2559,
- V_SET0B = 2560,
- V_SET0H = 2561,
- V_SETALLONES = 2562,
- V_SETALLONESB = 2563,
- V_SETALLONESH = 2564,
- WAIT = 2565,
- WAITP10 = 2566,
- WRTEE = 2567,
- WRTEEI = 2568,
- XOR = 2569,
- XOR8 = 2570,
- XOR8_rec = 2571,
- XORI = 2572,
- XORI8 = 2573,
- XORIS = 2574,
- XORIS8 = 2575,
- XOR_rec = 2576,
- XSABSDP = 2577,
- XSABSQP = 2578,
- XSADDDP = 2579,
- XSADDQP = 2580,
- XSADDQPO = 2581,
- XSADDSP = 2582,
- XSCMPEQDP = 2583,
- XSCMPEQQP = 2584,
- XSCMPEXPDP = 2585,
- XSCMPEXPQP = 2586,
- XSCMPGEDP = 2587,
- XSCMPGEQP = 2588,
- XSCMPGTDP = 2589,
- XSCMPGTQP = 2590,
- XSCMPODP = 2591,
- XSCMPOQP = 2592,
- XSCMPUDP = 2593,
- XSCMPUQP = 2594,
- XSCPSGNDP = 2595,
- XSCPSGNQP = 2596,
- XSCVDPHP = 2597,
- XSCVDPQP = 2598,
- XSCVDPSP = 2599,
- XSCVDPSPN = 2600,
- XSCVDPSXDS = 2601,
- XSCVDPSXDSs = 2602,
- XSCVDPSXWS = 2603,
- XSCVDPSXWSs = 2604,
- XSCVDPUXDS = 2605,
- XSCVDPUXDSs = 2606,
- XSCVDPUXWS = 2607,
- XSCVDPUXWSs = 2608,
- XSCVHPDP = 2609,
- XSCVQPDP = 2610,
- XSCVQPDPO = 2611,
- XSCVQPSDZ = 2612,
- XSCVQPSQZ = 2613,
- XSCVQPSWZ = 2614,
- XSCVQPUDZ = 2615,
- XSCVQPUQZ = 2616,
- XSCVQPUWZ = 2617,
- XSCVSDQP = 2618,
- XSCVSPDP = 2619,
- XSCVSPDPN = 2620,
- XSCVSQQP = 2621,
- XSCVSXDDP = 2622,
- XSCVSXDSP = 2623,
- XSCVUDQP = 2624,
- XSCVUQQP = 2625,
- XSCVUXDDP = 2626,
- XSCVUXDSP = 2627,
- XSDIVDP = 2628,
- XSDIVQP = 2629,
- XSDIVQPO = 2630,
- XSDIVSP = 2631,
- XSIEXPDP = 2632,
- XSIEXPQP = 2633,
- XSMADDADP = 2634,
- XSMADDASP = 2635,
- XSMADDMDP = 2636,
- XSMADDMSP = 2637,
- XSMADDQP = 2638,
- XSMADDQPO = 2639,
- XSMAXCDP = 2640,
- XSMAXCQP = 2641,
- XSMAXDP = 2642,
- XSMAXJDP = 2643,
- XSMINCDP = 2644,
- XSMINCQP = 2645,
- XSMINDP = 2646,
- XSMINJDP = 2647,
- XSMSUBADP = 2648,
- XSMSUBASP = 2649,
- XSMSUBMDP = 2650,
- XSMSUBMSP = 2651,
- XSMSUBQP = 2652,
- XSMSUBQPO = 2653,
- XSMULDP = 2654,
- XSMULQP = 2655,
- XSMULQPO = 2656,
- XSMULSP = 2657,
- XSNABSDP = 2658,
- XSNABSDPs = 2659,
- XSNABSQP = 2660,
- XSNEGDP = 2661,
- XSNEGQP = 2662,
- XSNMADDADP = 2663,
- XSNMADDASP = 2664,
- XSNMADDMDP = 2665,
- XSNMADDMSP = 2666,
- XSNMADDQP = 2667,
- XSNMADDQPO = 2668,
- XSNMSUBADP = 2669,
- XSNMSUBASP = 2670,
- XSNMSUBMDP = 2671,
- XSNMSUBMSP = 2672,
- XSNMSUBQP = 2673,
- XSNMSUBQPO = 2674,
- XSRDPI = 2675,
- XSRDPIC = 2676,
- XSRDPIM = 2677,
- XSRDPIP = 2678,
- XSRDPIZ = 2679,
- XSREDP = 2680,
- XSRESP = 2681,
- XSRQPI = 2682,
- XSRQPIX = 2683,
- XSRQPXP = 2684,
- XSRSP = 2685,
- XSRSQRTEDP = 2686,
- XSRSQRTESP = 2687,
- XSSQRTDP = 2688,
- XSSQRTQP = 2689,
- XSSQRTQPO = 2690,
- XSSQRTSP = 2691,
- XSSUBDP = 2692,
- XSSUBQP = 2693,
- XSSUBQPO = 2694,
- XSSUBSP = 2695,
- XSTDIVDP = 2696,
- XSTSQRTDP = 2697,
- XSTSTDCDP = 2698,
- XSTSTDCQP = 2699,
- XSTSTDCSP = 2700,
- XSXEXPDP = 2701,
- XSXEXPQP = 2702,
- XSXSIGDP = 2703,
- XSXSIGQP = 2704,
- XVABSDP = 2705,
- XVABSSP = 2706,
- XVADDDP = 2707,
- XVADDSP = 2708,
- XVBF16GER2 = 2709,
- XVBF16GER2NN = 2710,
- XVBF16GER2NP = 2711,
- XVBF16GER2PN = 2712,
- XVBF16GER2PP = 2713,
- XVBF16GER2W = 2714,
- XVBF16GER2WNN = 2715,
- XVBF16GER2WNP = 2716,
- XVBF16GER2WPN = 2717,
- XVBF16GER2WPP = 2718,
- XVCMPEQDP = 2719,
- XVCMPEQDP_rec = 2720,
- XVCMPEQSP = 2721,
- XVCMPEQSP_rec = 2722,
- XVCMPGEDP = 2723,
- XVCMPGEDP_rec = 2724,
- XVCMPGESP = 2725,
- XVCMPGESP_rec = 2726,
- XVCMPGTDP = 2727,
- XVCMPGTDP_rec = 2728,
- XVCMPGTSP = 2729,
- XVCMPGTSP_rec = 2730,
- XVCPSGNDP = 2731,
- XVCPSGNSP = 2732,
- XVCVBF16SPN = 2733,
- XVCVDPSP = 2734,
- XVCVDPSXDS = 2735,
- XVCVDPSXWS = 2736,
- XVCVDPUXDS = 2737,
- XVCVDPUXWS = 2738,
- XVCVHPSP = 2739,
- XVCVSPBF16 = 2740,
- XVCVSPDP = 2741,
- XVCVSPHP = 2742,
- XVCVSPSXDS = 2743,
- XVCVSPSXWS = 2744,
- XVCVSPUXDS = 2745,
- XVCVSPUXWS = 2746,
- XVCVSXDDP = 2747,
- XVCVSXDSP = 2748,
- XVCVSXWDP = 2749,
- XVCVSXWSP = 2750,
- XVCVUXDDP = 2751,
- XVCVUXDSP = 2752,
- XVCVUXWDP = 2753,
- XVCVUXWSP = 2754,
- XVDIVDP = 2755,
- XVDIVSP = 2756,
- XVF16GER2 = 2757,
- XVF16GER2NN = 2758,
- XVF16GER2NP = 2759,
- XVF16GER2PN = 2760,
- XVF16GER2PP = 2761,
- XVF16GER2W = 2762,
- XVF16GER2WNN = 2763,
- XVF16GER2WNP = 2764,
- XVF16GER2WPN = 2765,
- XVF16GER2WPP = 2766,
- XVF32GER = 2767,
- XVF32GERNN = 2768,
- XVF32GERNP = 2769,
- XVF32GERPN = 2770,
- XVF32GERPP = 2771,
- XVF32GERW = 2772,
- XVF32GERWNN = 2773,
- XVF32GERWNP = 2774,
- XVF32GERWPN = 2775,
- XVF32GERWPP = 2776,
- XVF64GER = 2777,
- XVF64GERNN = 2778,
- XVF64GERNP = 2779,
- XVF64GERPN = 2780,
- XVF64GERPP = 2781,
- XVF64GERW = 2782,
- XVF64GERWNN = 2783,
- XVF64GERWNP = 2784,
- XVF64GERWPN = 2785,
- XVF64GERWPP = 2786,
- XVI16GER2 = 2787,
- XVI16GER2PP = 2788,
- XVI16GER2S = 2789,
- XVI16GER2SPP = 2790,
- XVI16GER2SW = 2791,
- XVI16GER2SWPP = 2792,
- XVI16GER2W = 2793,
- XVI16GER2WPP = 2794,
- XVI4GER8 = 2795,
- XVI4GER8PP = 2796,
- XVI4GER8W = 2797,
- XVI4GER8WPP = 2798,
- XVI8GER4 = 2799,
- XVI8GER4PP = 2800,
- XVI8GER4SPP = 2801,
- XVI8GER4W = 2802,
- XVI8GER4WPP = 2803,
- XVI8GER4WSPP = 2804,
- XVIEXPDP = 2805,
- XVIEXPSP = 2806,
- XVMADDADP = 2807,
- XVMADDASP = 2808,
- XVMADDMDP = 2809,
- XVMADDMSP = 2810,
- XVMAXDP = 2811,
- XVMAXSP = 2812,
- XVMINDP = 2813,
- XVMINSP = 2814,
- XVMSUBADP = 2815,
- XVMSUBASP = 2816,
- XVMSUBMDP = 2817,
- XVMSUBMSP = 2818,
- XVMULDP = 2819,
- XVMULSP = 2820,
- XVNABSDP = 2821,
- XVNABSSP = 2822,
- XVNEGDP = 2823,
- XVNEGSP = 2824,
- XVNMADDADP = 2825,
- XVNMADDASP = 2826,
- XVNMADDMDP = 2827,
- XVNMADDMSP = 2828,
- XVNMSUBADP = 2829,
- XVNMSUBASP = 2830,
- XVNMSUBMDP = 2831,
- XVNMSUBMSP = 2832,
- XVRDPI = 2833,
- XVRDPIC = 2834,
- XVRDPIM = 2835,
- XVRDPIP = 2836,
- XVRDPIZ = 2837,
- XVREDP = 2838,
- XVRESP = 2839,
- XVRSPI = 2840,
- XVRSPIC = 2841,
- XVRSPIM = 2842,
- XVRSPIP = 2843,
- XVRSPIZ = 2844,
- XVRSQRTEDP = 2845,
- XVRSQRTESP = 2846,
- XVSQRTDP = 2847,
- XVSQRTSP = 2848,
- XVSUBDP = 2849,
- XVSUBSP = 2850,
- XVTDIVDP = 2851,
- XVTDIVSP = 2852,
- XVTLSBB = 2853,
- XVTSQRTDP = 2854,
- XVTSQRTSP = 2855,
- XVTSTDCDP = 2856,
- XVTSTDCSP = 2857,
- XVXEXPDP = 2858,
- XVXEXPSP = 2859,
- XVXSIGDP = 2860,
- XVXSIGSP = 2861,
- XXBLENDVB = 2862,
- XXBLENDVD = 2863,
- XXBLENDVH = 2864,
- XXBLENDVW = 2865,
- XXBRD = 2866,
- XXBRH = 2867,
- XXBRQ = 2868,
- XXBRW = 2869,
- XXEVAL = 2870,
- XXEXTRACTUW = 2871,
- XXGENPCVBM = 2872,
- XXGENPCVDM = 2873,
- XXGENPCVHM = 2874,
- XXGENPCVWM = 2875,
- XXINSERTW = 2876,
- XXLAND = 2877,
- XXLANDC = 2878,
- XXLEQV = 2879,
- XXLEQVOnes = 2880,
- XXLNAND = 2881,
- XXLNOR = 2882,
- XXLOR = 2883,
- XXLORC = 2884,
- XXLORf = 2885,
- XXLXOR = 2886,
- XXLXORdpz = 2887,
- XXLXORspz = 2888,
- XXLXORz = 2889,
- XXMFACC = 2890,
- XXMFACCW = 2891,
- XXMRGHW = 2892,
- XXMRGLW = 2893,
- XXMTACC = 2894,
- XXMTACCW = 2895,
- XXPERM = 2896,
- XXPERMDI = 2897,
- XXPERMDIs = 2898,
- XXPERMR = 2899,
- XXPERMX = 2900,
- XXSEL = 2901,
- XXSETACCZ = 2902,
- XXSLDWI = 2903,
- XXSLDWIs = 2904,
- XXSPLTI32DX = 2905,
- XXSPLTIB = 2906,
- XXSPLTIDP = 2907,
- XXSPLTIW = 2908,
- XXSPLTW = 2909,
- XXSPLTWs = 2910,
- gBC = 2911,
- gBCA = 2912,
- gBCAat = 2913,
- gBCCTR = 2914,
- gBCCTRL = 2915,
- gBCL = 2916,
- gBCLA = 2917,
- gBCLAat = 2918,
- gBCLR = 2919,
- gBCLRL = 2920,
- gBCLat = 2921,
- gBCat = 2922,
- INSTRUCTION_LIST_END = 2923,
+ COPY_LANEMASK = 21,
+ BUNDLE = 22,
+ LIFETIME_START = 23,
+ LIFETIME_END = 24,
+ PSEUDO_PROBE = 25,
+ ARITH_FENCE = 26,
+ STACKMAP = 27,
+ FENTRY_CALL = 28,
+ PATCHPOINT = 29,
+ LOAD_STACK_GUARD = 30,
+ PREALLOCATED_SETUP = 31,
+ PREALLOCATED_ARG = 32,
+ STATEPOINT = 33,
+ LOCAL_ESCAPE = 34,
+ FAULTING_OP = 35,
+ PATCHABLE_OP = 36,
+ PATCHABLE_FUNCTION_ENTER = 37,
+ PATCHABLE_RET = 38,
+ PATCHABLE_FUNCTION_EXIT = 39,
+ PATCHABLE_TAIL_CALL = 40,
+ PATCHABLE_EVENT_CALL = 41,
+ PATCHABLE_TYPED_EVENT_CALL = 42,
+ ICALL_BRANCH_FUNNEL = 43,
+ FAKE_USE = 44,
+ MEMBARRIER = 45,
+ JUMP_TABLE_DEBUG_INFO = 46,
+ RELOC_NONE = 47,
+ CONVERGENCECTRL_ENTRY = 48,
+ CONVERGENCECTRL_ANCHOR = 49,
+ CONVERGENCECTRL_LOOP = 50,
+ CONVERGENCECTRL_GLUE = 51,
+ G_ASSERT_SEXT = 52,
+ G_ASSERT_ZEXT = 53,
+ G_ASSERT_ALIGN = 54,
+ G_ADD = 55,
+ G_SUB = 56,
+ G_MUL = 57,
+ G_SDIV = 58,
+ G_UDIV = 59,
+ G_SREM = 60,
+ G_UREM = 61,
+ G_SDIVREM = 62,
+ G_UDIVREM = 63,
+ G_AND = 64,
+ G_OR = 65,
+ G_XOR = 66,
+ G_ABDS = 67,
+ G_ABDU = 68,
+ G_UAVGFLOOR = 69,
+ G_UAVGCEIL = 70,
+ G_SAVGFLOOR = 71,
+ G_SAVGCEIL = 72,
+ G_IMPLICIT_DEF = 73,
+ G_PHI = 74,
+ G_FRAME_INDEX = 75,
+ G_GLOBAL_VALUE = 76,
+ G_PTRAUTH_GLOBAL_VALUE = 77,
+ G_CONSTANT_POOL = 78,
+ G_EXTRACT = 79,
+ G_UNMERGE_VALUES = 80,
+ G_INSERT = 81,
+ G_MERGE_VALUES = 82,
+ G_BUILD_VECTOR = 83,
+ G_BUILD_VECTOR_TRUNC = 84,
+ G_CONCAT_VECTORS = 85,
+ G_PTRTOINT = 86,
+ G_INTTOPTR = 87,
+ G_BITCAST = 88,
+ G_FREEZE = 89,
+ G_CONSTANT_FOLD_BARRIER = 90,
+ G_INTRINSIC_FPTRUNC_ROUND = 91,
+ G_INTRINSIC_TRUNC = 92,
+ G_INTRINSIC_ROUND = 93,
+ G_INTRINSIC_LRINT = 94,
+ G_INTRINSIC_LLRINT = 95,
+ G_INTRINSIC_ROUNDEVEN = 96,
+ G_READCYCLECOUNTER = 97,
+ G_READSTEADYCOUNTER = 98,
+ G_LOAD = 99,
+ G_SEXTLOAD = 100,
+ G_ZEXTLOAD = 101,
+ G_INDEXED_LOAD = 102,
+ G_INDEXED_SEXTLOAD = 103,
+ G_INDEXED_ZEXTLOAD = 104,
+ G_STORE = 105,
+ G_INDEXED_STORE = 106,
+ G_ATOMIC_CMPXCHG_WITH_SUCCESS = 107,
+ G_ATOMIC_CMPXCHG = 108,
+ G_ATOMICRMW_XCHG = 109,
+ G_ATOMICRMW_ADD = 110,
+ G_ATOMICRMW_SUB = 111,
+ G_ATOMICRMW_AND = 112,
+ G_ATOMICRMW_NAND = 113,
+ G_ATOMICRMW_OR = 114,
+ G_ATOMICRMW_XOR = 115,
+ G_ATOMICRMW_MAX = 116,
+ G_ATOMICRMW_MIN = 117,
+ G_ATOMICRMW_UMAX = 118,
+ G_ATOMICRMW_UMIN = 119,
+ G_ATOMICRMW_FADD = 120,
+ G_ATOMICRMW_FSUB = 121,
+ G_ATOMICRMW_FMAX = 122,
+ G_ATOMICRMW_FMIN = 123,
+ G_ATOMICRMW_FMAXIMUM = 124,
+ G_ATOMICRMW_FMINIMUM = 125,
+ G_ATOMICRMW_UINC_WRAP = 126,
+ G_ATOMICRMW_UDEC_WRAP = 127,
+ G_ATOMICRMW_USUB_COND = 128,
+ G_ATOMICRMW_USUB_SAT = 129,
+ G_FENCE = 130,
+ G_PREFETCH = 131,
+ G_BRCOND = 132,
+ G_BRINDIRECT = 133,
+ G_INVOKE_REGION_START = 134,
+ G_INTRINSIC = 135,
+ G_INTRINSIC_W_SIDE_EFFECTS = 136,
+ G_INTRINSIC_CONVERGENT = 137,
+ G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 138,
+ G_ANYEXT = 139,
+ G_TRUNC = 140,
+ G_TRUNC_SSAT_S = 141,
+ G_TRUNC_SSAT_U = 142,
+ G_TRUNC_USAT_U = 143,
+ G_CONSTANT = 144,
+ G_FCONSTANT = 145,
+ G_VASTART = 146,
+ G_VAARG = 147,
+ G_SEXT = 148,
+ G_SEXT_INREG = 149,
+ G_ZEXT = 150,
+ G_SHL = 151,
+ G_LSHR = 152,
+ G_ASHR = 153,
+ G_FSHL = 154,
+ G_FSHR = 155,
+ G_ROTR = 156,
+ G_ROTL = 157,
+ G_ICMP = 158,
+ G_FCMP = 159,
+ G_SCMP = 160,
+ G_UCMP = 161,
+ G_SELECT = 162,
+ G_UADDO = 163,
+ G_UADDE = 164,
+ G_USUBO = 165,
+ G_USUBE = 166,
+ G_SADDO = 167,
+ G_SADDE = 168,
+ G_SSUBO = 169,
+ G_SSUBE = 170,
+ G_UMULO = 171,
+ G_SMULO = 172,
+ G_UMULH = 173,
+ G_SMULH = 174,
+ G_UADDSAT = 175,
+ G_SADDSAT = 176,
+ G_USUBSAT = 177,
+ G_SSUBSAT = 178,
+ G_USHLSAT = 179,
+ G_SSHLSAT = 180,
+ G_SMULFIX = 181,
+ G_UMULFIX = 182,
+ G_SMULFIXSAT = 183,
+ G_UMULFIXSAT = 184,
+ G_SDIVFIX = 185,
+ G_UDIVFIX = 186,
+ G_SDIVFIXSAT = 187,
+ G_UDIVFIXSAT = 188,
+ G_FADD = 189,
+ G_FSUB = 190,
+ G_FMUL = 191,
+ G_FMA = 192,
+ G_FMAD = 193,
+ G_FDIV = 194,
+ G_FREM = 195,
+ G_FMODF = 196,
+ G_FPOW = 197,
+ G_FPOWI = 198,
+ G_FEXP = 199,
+ G_FEXP2 = 200,
+ G_FEXP10 = 201,
+ G_FLOG = 202,
+ G_FLOG2 = 203,
+ G_FLOG10 = 204,
+ G_FLDEXP = 205,
+ G_FFREXP = 206,
+ G_FNEG = 207,
+ G_FPEXT = 208,
+ G_FPTRUNC = 209,
+ G_FPTOSI = 210,
+ G_FPTOUI = 211,
+ G_SITOFP = 212,
+ G_UITOFP = 213,
+ G_FPTOSI_SAT = 214,
+ G_FPTOUI_SAT = 215,
+ G_FABS = 216,
+ G_FCOPYSIGN = 217,
+ G_IS_FPCLASS = 218,
+ G_FCANONICALIZE = 219,
+ G_FMINNUM = 220,
+ G_FMAXNUM = 221,
+ G_FMINNUM_IEEE = 222,
+ G_FMAXNUM_IEEE = 223,
+ G_FMINIMUM = 224,
+ G_FMAXIMUM = 225,
+ G_FMINIMUMNUM = 226,
+ G_FMAXIMUMNUM = 227,
+ G_GET_FPENV = 228,
+ G_SET_FPENV = 229,
+ G_RESET_FPENV = 230,
+ G_GET_FPMODE = 231,
+ G_SET_FPMODE = 232,
+ G_RESET_FPMODE = 233,
+ G_GET_ROUNDING = 234,
+ G_SET_ROUNDING = 235,
+ G_PTR_ADD = 236,
+ G_PTRMASK = 237,
+ G_SMIN = 238,
+ G_SMAX = 239,
+ G_UMIN = 240,
+ G_UMAX = 241,
+ G_ABS = 242,
+ G_LROUND = 243,
+ G_LLROUND = 244,
+ G_BR = 245,
+ G_BRJT = 246,
+ G_VSCALE = 247,
+ G_INSERT_SUBVECTOR = 248,
+ G_EXTRACT_SUBVECTOR = 249,
+ G_INSERT_VECTOR_ELT = 250,
+ G_EXTRACT_VECTOR_ELT = 251,
+ G_SHUFFLE_VECTOR = 252,
+ G_SPLAT_VECTOR = 253,
+ G_STEP_VECTOR = 254,
+ G_VECTOR_COMPRESS = 255,
+ G_CTTZ = 256,
+ G_CTTZ_ZERO_UNDEF = 257,
+ G_CTLZ = 258,
+ G_CTLZ_ZERO_UNDEF = 259,
+ G_CTPOP = 260,
+ G_BSWAP = 261,
+ G_BITREVERSE = 262,
+ G_FCEIL = 263,
+ G_FCOS = 264,
+ G_FSIN = 265,
+ G_FSINCOS = 266,
+ G_FTAN = 267,
+ G_FACOS = 268,
+ G_FASIN = 269,
+ G_FATAN = 270,
+ G_FATAN2 = 271,
+ G_FCOSH = 272,
+ G_FSINH = 273,
+ G_FTANH = 274,
+ G_FSQRT = 275,
+ G_FFLOOR = 276,
+ G_FRINT = 277,
+ G_FNEARBYINT = 278,
+ G_ADDRSPACE_CAST = 279,
+ G_BLOCK_ADDR = 280,
+ G_JUMP_TABLE = 281,
+ G_DYN_STACKALLOC = 282,
+ G_STACKSAVE = 283,
+ G_STACKRESTORE = 284,
+ G_STRICT_FADD = 285,
+ G_STRICT_FSUB = 286,
+ G_STRICT_FMUL = 287,
+ G_STRICT_FDIV = 288,
+ G_STRICT_FREM = 289,
+ G_STRICT_FMA = 290,
+ G_STRICT_FSQRT = 291,
+ G_STRICT_FLDEXP = 292,
+ G_READ_REGISTER = 293,
+ G_WRITE_REGISTER = 294,
+ G_MEMCPY = 295,
+ G_MEMCPY_INLINE = 296,
+ G_MEMMOVE = 297,
+ G_MEMSET = 298,
+ G_BZERO = 299,
+ G_TRAP = 300,
+ G_DEBUGTRAP = 301,
+ G_UBSANTRAP = 302,
+ G_VECREDUCE_SEQ_FADD = 303,
+ G_VECREDUCE_SEQ_FMUL = 304,
+ G_VECREDUCE_FADD = 305,
+ G_VECREDUCE_FMUL = 306,
+ G_VECREDUCE_FMAX = 307,
+ G_VECREDUCE_FMIN = 308,
+ G_VECREDUCE_FMAXIMUM = 309,
+ G_VECREDUCE_FMINIMUM = 310,
+ G_VECREDUCE_ADD = 311,
+ G_VECREDUCE_MUL = 312,
+ G_VECREDUCE_AND = 313,
+ G_VECREDUCE_OR = 314,
+ G_VECREDUCE_XOR = 315,
+ G_VECREDUCE_SMAX = 316,
+ G_VECREDUCE_SMIN = 317,
+ G_VECREDUCE_UMAX = 318,
+ G_VECREDUCE_UMIN = 319,
+ G_SBFX = 320,
+ G_UBFX = 321,
+ ATOMIC_CMP_SWAP_I128 = 322,
+ ATOMIC_LOAD_ADD_I128 = 323,
+ ATOMIC_LOAD_AND_I128 = 324,
+ ATOMIC_LOAD_NAND_I128 = 325,
+ ATOMIC_LOAD_OR_I128 = 326,
+ ATOMIC_LOAD_SUB_I128 = 327,
+ ATOMIC_LOAD_XOR_I128 = 328,
+ ATOMIC_SWAP_I128 = 329,
+ BUILD_QUADWORD = 330,
+ BUILD_UACC = 331,
+ CFENCE = 332,
+ CFENCE8 = 333,
+ CLRLSLDI = 334,
+ CLRLSLDI_rec = 335,
+ CLRLSLWI = 336,
+ CLRLSLWI_rec = 337,
+ CLRRDI = 338,
+ CLRRDI_rec = 339,
+ CLRRWI = 340,
+ CLRRWI_rec = 341,
+ DCBFL = 342,
+ DCBFLP = 343,
+ DCBFPS = 344,
+ DCBFx = 345,
+ DCBSTPS = 346,
+ DCBTCT = 347,
+ DCBTDS = 348,
+ DCBTSTCT = 349,
+ DCBTSTDS = 350,
+ DCBTSTT = 351,
+ DCBTSTx = 352,
+ DCBTT = 353,
+ DCBTx = 354,
+ DFLOADf32 = 355,
+ DFLOADf64 = 356,
+ DFSTOREf32 = 357,
+ DFSTOREf64 = 358,
+ EXTLDI = 359,
+ EXTLDI_rec = 360,
+ EXTLWI = 361,
+ EXTLWI_rec = 362,
+ EXTRDI = 363,
+ EXTRDI_rec = 364,
+ EXTRWI = 365,
+ EXTRWI_rec = 366,
+ INSLWI = 367,
+ INSLWI_rec = 368,
+ INSRDI = 369,
+ INSRDI_rec = 370,
+ INSRWI = 371,
+ INSRWI_rec = 372,
+ KILL_PAIR = 373,
+ LAx = 374,
+ LIWAX = 375,
+ LIWZX = 376,
+ PPCLdFixedAddr = 377,
+ PSUBI = 378,
+ RLWIMIbm = 379,
+ RLWIMIbm_rec = 380,
+ RLWINMbm = 381,
+ RLWINMbm_rec = 382,
+ RLWNMbm = 383,
+ RLWNMbm_rec = 384,
+ ROTRDI = 385,
+ ROTRDI_rec = 386,
+ ROTRWI = 387,
+ ROTRWI_rec = 388,
+ SLDI = 389,
+ SLDI_rec = 390,
+ SLWI = 391,
+ SLWI_rec = 392,
+ SPILLTOVSR_LD = 393,
+ SPILLTOVSR_LDX = 394,
+ SPILLTOVSR_ST = 395,
+ SPILLTOVSR_STX = 396,
+ SRDI = 397,
+ SRDI_rec = 398,
+ SRWI = 399,
+ SRWI_rec = 400,
+ STIWX = 401,
+ SUBI = 402,
+ SUBIC = 403,
+ SUBIC_rec = 404,
+ SUBIS = 405,
+ SUBPCIS = 406,
+ XFLOADf32 = 407,
+ XFLOADf64 = 408,
+ XFSTOREf32 = 409,
+ XFSTOREf64 = 410,
+ ADD4 = 411,
+ ADD4O = 412,
+ ADD4O_rec = 413,
+ ADD4TLS = 414,
+ ADD4_rec = 415,
+ ADD8 = 416,
+ ADD8O = 417,
+ ADD8O_rec = 418,
+ ADD8TLS = 419,
+ ADD8TLS_ = 420,
+ ADD8_rec = 421,
+ ADDC = 422,
+ ADDC8 = 423,
+ ADDC8O = 424,
+ ADDC8O_rec = 425,
+ ADDC8_rec = 426,
+ ADDCO = 427,
+ ADDCO_rec = 428,
+ ADDC_rec = 429,
+ ADDE = 430,
+ ADDE8 = 431,
+ ADDE8O = 432,
+ ADDE8O_rec = 433,
+ ADDE8_rec = 434,
+ ADDEO = 435,
+ ADDEO_rec = 436,
+ ADDEX = 437,
+ ADDEX8 = 438,
+ ADDE_rec = 439,
+ ADDG6S = 440,
+ ADDG6S8 = 441,
+ ADDI = 442,
+ ADDI8 = 443,
+ ADDIC = 444,
+ ADDIC8 = 445,
+ ADDIC_rec = 446,
+ ADDIS = 447,
+ ADDIS8 = 448,
+ ADDISdtprelHA = 449,
+ ADDISdtprelHA32 = 450,
+ ADDISgotTprelHA = 451,
+ ADDIStlsgdHA = 452,
+ ADDIStlsldHA = 453,
+ ADDIStocHA = 454,
+ ADDIStocHA8 = 455,
+ ADDIdtprelL = 456,
+ ADDIdtprelL32 = 457,
+ ADDItlsgdL = 458,
+ ADDItlsgdL32 = 459,
+ ADDItlsgdLADDR = 460,
+ ADDItlsgdLADDR32 = 461,
+ ADDItlsldL = 462,
+ ADDItlsldL32 = 463,
+ ADDItlsldLADDR = 464,
+ ADDItlsldLADDR32 = 465,
+ ADDItoc = 466,
+ ADDItoc8 = 467,
+ ADDItocL = 468,
+ ADDItocL8 = 469,
+ ADDME = 470,
+ ADDME8 = 471,
+ ADDME8O = 472,
+ ADDME8O_rec = 473,
+ ADDME8_rec = 474,
+ ADDMEO = 475,
+ ADDMEO_rec = 476,
+ ADDME_rec = 477,
+ ADDPCIS = 478,
+ ADDZE = 479,
+ ADDZE8 = 480,
+ ADDZE8O = 481,
+ ADDZE8O_rec = 482,
+ ADDZE8_rec = 483,
+ ADDZEO = 484,
+ ADDZEO_rec = 485,
+ ADDZE_rec = 486,
+ ADJCALLSTACKDOWN = 487,
+ ADJCALLSTACKUP = 488,
+ AND = 489,
+ AND8 = 490,
+ AND8_rec = 491,
+ ANDC = 492,
+ ANDC8 = 493,
+ ANDC8_rec = 494,
+ ANDC_rec = 495,
+ ANDI8_rec = 496,
+ ANDIS8_rec = 497,
+ ANDIS_rec = 498,
+ ANDI_rec = 499,
+ ANDI_rec_1_EQ_BIT = 500,
+ ANDI_rec_1_EQ_BIT8 = 501,
+ ANDI_rec_1_GT_BIT = 502,
+ ANDI_rec_1_GT_BIT8 = 503,
+ AND_rec = 504,
+ ATOMIC_CMP_SWAP_I16 = 505,
+ ATOMIC_CMP_SWAP_I32 = 506,
+ ATOMIC_CMP_SWAP_I64 = 507,
+ ATOMIC_CMP_SWAP_I8 = 508,
+ ATOMIC_LOAD_ADD_I16 = 509,
+ ATOMIC_LOAD_ADD_I32 = 510,
+ ATOMIC_LOAD_ADD_I64 = 511,
+ ATOMIC_LOAD_ADD_I8 = 512,
+ ATOMIC_LOAD_AND_I16 = 513,
+ ATOMIC_LOAD_AND_I32 = 514,
+ ATOMIC_LOAD_AND_I64 = 515,
+ ATOMIC_LOAD_AND_I8 = 516,
+ ATOMIC_LOAD_MAX_I16 = 517,
+ ATOMIC_LOAD_MAX_I32 = 518,
+ ATOMIC_LOAD_MAX_I64 = 519,
+ ATOMIC_LOAD_MAX_I8 = 520,
+ ATOMIC_LOAD_MIN_I16 = 521,
+ ATOMIC_LOAD_MIN_I32 = 522,
+ ATOMIC_LOAD_MIN_I64 = 523,
+ ATOMIC_LOAD_MIN_I8 = 524,
+ ATOMIC_LOAD_NAND_I16 = 525,
+ ATOMIC_LOAD_NAND_I32 = 526,
+ ATOMIC_LOAD_NAND_I64 = 527,
+ ATOMIC_LOAD_NAND_I8 = 528,
+ ATOMIC_LOAD_OR_I16 = 529,
+ ATOMIC_LOAD_OR_I32 = 530,
+ ATOMIC_LOAD_OR_I64 = 531,
+ ATOMIC_LOAD_OR_I8 = 532,
+ ATOMIC_LOAD_SUB_I16 = 533,
+ ATOMIC_LOAD_SUB_I32 = 534,
+ ATOMIC_LOAD_SUB_I64 = 535,
+ ATOMIC_LOAD_SUB_I8 = 536,
+ ATOMIC_LOAD_UMAX_I16 = 537,
+ ATOMIC_LOAD_UMAX_I32 = 538,
+ ATOMIC_LOAD_UMAX_I64 = 539,
+ ATOMIC_LOAD_UMAX_I8 = 540,
+ ATOMIC_LOAD_UMIN_I16 = 541,
+ ATOMIC_LOAD_UMIN_I32 = 542,
+ ATOMIC_LOAD_UMIN_I64 = 543,
+ ATOMIC_LOAD_UMIN_I8 = 544,
+ ATOMIC_LOAD_XOR_I16 = 545,
+ ATOMIC_LOAD_XOR_I32 = 546,
+ ATOMIC_LOAD_XOR_I64 = 547,
+ ATOMIC_LOAD_XOR_I8 = 548,
+ ATOMIC_SWAP_I16 = 549,
+ ATOMIC_SWAP_I32 = 550,
+ ATOMIC_SWAP_I64 = 551,
+ ATOMIC_SWAP_I8 = 552,
+ ATTN = 553,
+ B = 554,
+ BA = 555,
+ BC = 556,
+ BCC = 557,
+ BCCA = 558,
+ BCCCTR = 559,
+ BCCCTR8 = 560,
+ BCCCTRL = 561,
+ BCCCTRL8 = 562,
+ BCCL = 563,
+ BCCLA = 564,
+ BCCLR = 565,
+ BCCLRL = 566,
+ BCCTR = 567,
+ BCCTR8 = 568,
+ BCCTR8n = 569,
+ BCCTRL = 570,
+ BCCTRL8 = 571,
+ BCCTRL8n = 572,
+ BCCTRLn = 573,
+ BCCTRn = 574,
+ BCDADD_rec = 575,
+ BCDCFN_rec = 576,
+ BCDCFSQ_rec = 577,
+ BCDCFZ_rec = 578,
+ BCDCPSGN_rec = 579,
+ BCDCTN_rec = 580,
+ BCDCTSQ_rec = 581,
+ BCDCTZ_rec = 582,
+ BCDSETSGN_rec = 583,
+ BCDSR_rec = 584,
+ BCDSUB_rec = 585,
+ BCDS_rec = 586,
+ BCDTRUNC_rec = 587,
+ BCDUS_rec = 588,
+ BCDUTRUNC_rec = 589,
+ BCL = 590,
+ BCLR = 591,
+ BCLRL = 592,
+ BCLRLn = 593,
+ BCLRn = 594,
+ BCLalways = 595,
+ BCLn = 596,
+ BCTR = 597,
+ BCTR8 = 598,
+ BCTRL = 599,
+ BCTRL8 = 600,
+ BCTRL8_LDinto_toc = 601,
+ BCTRL8_LDinto_toc_RM = 602,
+ BCTRL8_RM = 603,
+ BCTRL_LWZinto_toc = 604,
+ BCTRL_LWZinto_toc_RM = 605,
+ BCTRL_RM = 606,
+ BCn = 607,
+ BDNZ = 608,
+ BDNZ8 = 609,
+ BDNZA = 610,
+ BDNZAm = 611,
+ BDNZAp = 612,
+ BDNZL = 613,
+ BDNZLA = 614,
+ BDNZLAm = 615,
+ BDNZLAp = 616,
+ BDNZLR = 617,
+ BDNZLR8 = 618,
+ BDNZLRL = 619,
+ BDNZLRLm = 620,
+ BDNZLRLp = 621,
+ BDNZLRm = 622,
+ BDNZLRp = 623,
+ BDNZLm = 624,
+ BDNZLp = 625,
+ BDNZm = 626,
+ BDNZp = 627,
+ BDZ = 628,
+ BDZ8 = 629,
+ BDZA = 630,
+ BDZAm = 631,
+ BDZAp = 632,
+ BDZL = 633,
+ BDZLA = 634,
+ BDZLAm = 635,
+ BDZLAp = 636,
+ BDZLR = 637,
+ BDZLR8 = 638,
+ BDZLRL = 639,
+ BDZLRLm = 640,
+ BDZLRLp = 641,
+ BDZLRm = 642,
+ BDZLRp = 643,
+ BDZLm = 644,
+ BDZLp = 645,
+ BDZm = 646,
+ BDZp = 647,
+ BL = 648,
+ BL8 = 649,
+ BL8_NOP = 650,
+ BL8_NOP_RM = 651,
+ BL8_NOP_TLS = 652,
+ BL8_NOTOC = 653,
+ BL8_NOTOC_RM = 654,
+ BL8_NOTOC_TLS = 655,
+ BL8_RM = 656,
+ BL8_TLS = 657,
+ BL8_TLS_ = 658,
+ BLA = 659,
+ BLA8 = 660,
+ BLA8_NOP = 661,
+ BLA8_NOP_RM = 662,
+ BLA8_RM = 663,
+ BLA_RM = 664,
+ BLR = 665,
+ BLR8 = 666,
+ BLRL = 667,
+ BL_NOP = 668,
+ BL_NOP_RM = 669,
+ BL_RM = 670,
+ BL_TLS = 671,
+ BPERMD = 672,
+ BRD = 673,
+ BRH = 674,
+ BRH8 = 675,
+ BRINC = 676,
+ BRW = 677,
+ BRW8 = 678,
+ CBCDTD = 679,
+ CBCDTD8 = 680,
+ CDTBCD = 681,
+ CDTBCD8 = 682,
+ CFUGED = 683,
+ CLRBHRB = 684,
+ CMPB = 685,
+ CMPB8 = 686,
+ CMPD = 687,
+ CMPDI = 688,
+ CMPEQB = 689,
+ CMPLD = 690,
+ CMPLDI = 691,
+ CMPLW = 692,
+ CMPLWI = 693,
+ CMPRB = 694,
+ CMPRB8 = 695,
+ CMPW = 696,
+ CMPWI = 697,
+ CNTLZD = 698,
+ CNTLZDM = 699,
+ CNTLZD_rec = 700,
+ CNTLZW = 701,
+ CNTLZW8 = 702,
+ CNTLZW8_rec = 703,
+ CNTLZW_rec = 704,
+ CNTTZD = 705,
+ CNTTZDM = 706,
+ CNTTZD_rec = 707,
+ CNTTZW = 708,
+ CNTTZW8 = 709,
+ CNTTZW8_rec = 710,
+ CNTTZW_rec = 711,
+ CP_ABORT = 712,
+ CP_COPY = 713,
+ CP_COPY8 = 714,
+ CP_PASTE8_rec = 715,
+ CP_PASTE_rec = 716,
+ CR6SET = 717,
+ CR6UNSET = 718,
+ CRAND = 719,
+ CRANDC = 720,
+ CREQV = 721,
+ CRNAND = 722,
+ CRNOR = 723,
+ CRNOT = 724,
+ CROR = 725,
+ CRORC = 726,
+ CRSET = 727,
+ CRUNSET = 728,
+ CRXOR = 729,
+ CTRL_DEP = 730,
+ DADD = 731,
+ DADDQ = 732,
+ DADDQ_rec = 733,
+ DADD_rec = 734,
+ DARN = 735,
+ DCBA = 736,
+ DCBF = 737,
+ DCBFEP = 738,
+ DCBI = 739,
+ DCBST = 740,
+ DCBSTEP = 741,
+ DCBT = 742,
+ DCBTEP = 743,
+ DCBTST = 744,
+ DCBTSTEP = 745,
+ DCBZ = 746,
+ DCBZEP = 747,
+ DCBZL = 748,
+ DCBZLEP = 749,
+ DCCCI = 750,
+ DCFFIX = 751,
+ DCFFIXQ = 752,
+ DCFFIXQQ = 753,
+ DCFFIXQ_rec = 754,
+ DCFFIX_rec = 755,
+ DCMPO = 756,
+ DCMPOQ = 757,
+ DCMPU = 758,
+ DCMPUQ = 759,
+ DCTDP = 760,
+ DCTDP_rec = 761,
+ DCTFIX = 762,
+ DCTFIXQ = 763,
+ DCTFIXQQ = 764,
+ DCTFIXQ_rec = 765,
+ DCTFIX_rec = 766,
+ DCTQPQ = 767,
+ DCTQPQ_rec = 768,
+ DDEDPD = 769,
+ DDEDPDQ = 770,
+ DDEDPDQ_rec = 771,
+ DDEDPD_rec = 772,
+ DDIV = 773,
+ DDIVQ = 774,
+ DDIVQ_rec = 775,
+ DDIV_rec = 776,
+ DENBCD = 777,
+ DENBCDQ = 778,
+ DENBCDQ_rec = 779,
+ DENBCD_rec = 780,
+ DIEX = 781,
+ DIEXQ = 782,
+ DIEXQ_rec = 783,
+ DIEX_rec = 784,
+ DIVD = 785,
+ DIVDE = 786,
+ DIVDEO = 787,
+ DIVDEO_rec = 788,
+ DIVDEU = 789,
+ DIVDEUO = 790,
+ DIVDEUO_rec = 791,
+ DIVDEU_rec = 792,
+ DIVDE_rec = 793,
+ DIVDO = 794,
+ DIVDO_rec = 795,
+ DIVDU = 796,
+ DIVDUO = 797,
+ DIVDUO_rec = 798,
+ DIVDU_rec = 799,
+ DIVD_rec = 800,
+ DIVW = 801,
+ DIVWE = 802,
+ DIVWEO = 803,
+ DIVWEO_rec = 804,
+ DIVWEU = 805,
+ DIVWEUO = 806,
+ DIVWEUO_rec = 807,
+ DIVWEU_rec = 808,
+ DIVWE_rec = 809,
+ DIVWO = 810,
+ DIVWO_rec = 811,
+ DIVWU = 812,
+ DIVWUO = 813,
+ DIVWUO_rec = 814,
+ DIVWU_rec = 815,
+ DIVW_rec = 816,
+ DMMR = 817,
+ DMSETDMRZ = 818,
+ DMSHA2HASH = 819,
+ DMSHA3HASH = 820,
+ DMUL = 821,
+ DMULQ = 822,
+ DMULQ_rec = 823,
+ DMUL_rec = 824,
+ DMXOR = 825,
+ DMXVBF16GERX2 = 826,
+ DMXVBF16GERX2NN = 827,
+ DMXVBF16GERX2NP = 828,
+ DMXVBF16GERX2PN = 829,
+ DMXVBF16GERX2PP = 830,
+ DMXVF16GERX2 = 831,
+ DMXVF16GERX2NN = 832,
+ DMXVF16GERX2NP = 833,
+ DMXVF16GERX2PN = 834,
+ DMXVF16GERX2PP = 835,
+ DMXVI8GERX4 = 836,
+ DMXVI8GERX4PP = 837,
+ DMXVI8GERX4SPP = 838,
+ DMXXEXTFDMR256 = 839,
+ DMXXEXTFDMR512 = 840,
+ DMXXEXTFDMR512_HI = 841,
+ DMXXINSTDMR256 = 842,
+ DMXXINSTDMR512 = 843,
+ DMXXINSTDMR512_HI = 844,
+ DMXXSETACCZ = 845,
+ DMXXSHAPAD = 846,
+ DQUA = 847,
+ DQUAI = 848,
+ DQUAIQ = 849,
+ DQUAIQ_rec = 850,
+ DQUAI_rec = 851,
+ DQUAQ = 852,
+ DQUAQ_rec = 853,
+ DQUA_rec = 854,
+ DRDPQ = 855,
+ DRDPQ_rec = 856,
+ DRINTN = 857,
+ DRINTNQ = 858,
+ DRINTNQ_rec = 859,
+ DRINTN_rec = 860,
+ DRINTX = 861,
+ DRINTXQ = 862,
+ DRINTXQ_rec = 863,
+ DRINTX_rec = 864,
+ DRRND = 865,
+ DRRNDQ = 866,
+ DRRNDQ_rec = 867,
+ DRRND_rec = 868,
+ DRSP = 869,
+ DRSP_rec = 870,
+ DSCLI = 871,
+ DSCLIQ = 872,
+ DSCLIQ_rec = 873,
+ DSCLI_rec = 874,
+ DSCRI = 875,
+ DSCRIQ = 876,
+ DSCRIQ_rec = 877,
+ DSCRI_rec = 878,
+ DSS = 879,
+ DSSALL = 880,
+ DST = 881,
+ DST64 = 882,
+ DSTST = 883,
+ DSTST64 = 884,
+ DSTSTT = 885,
+ DSTSTT64 = 886,
+ DSTT = 887,
+ DSTT64 = 888,
+ DSUB = 889,
+ DSUBQ = 890,
+ DSUBQ_rec = 891,
+ DSUB_rec = 892,
+ DTSTDC = 893,
+ DTSTDCQ = 894,
+ DTSTDG = 895,
+ DTSTDGQ = 896,
+ DTSTEX = 897,
+ DTSTEXQ = 898,
+ DTSTSF = 899,
+ DTSTSFI = 900,
+ DTSTSFIQ = 901,
+ DTSTSFQ = 902,
+ DXEX = 903,
+ DXEXQ = 904,
+ DXEXQ_rec = 905,
+ DXEX_rec = 906,
+ DYNALLOC = 907,
+ DYNALLOC8 = 908,
+ DYNAREAOFFSET = 909,
+ DYNAREAOFFSET8 = 910,
+ DecreaseCTR8loop = 911,
+ DecreaseCTRloop = 912,
+ EFDABS = 913,
+ EFDADD = 914,
+ EFDCFS = 915,
+ EFDCFSF = 916,
+ EFDCFSI = 917,
+ EFDCFSID = 918,
+ EFDCFUF = 919,
+ EFDCFUI = 920,
+ EFDCFUID = 921,
+ EFDCMPEQ = 922,
+ EFDCMPGT = 923,
+ EFDCMPLT = 924,
+ EFDCTSF = 925,
+ EFDCTSI = 926,
+ EFDCTSIDZ = 927,
+ EFDCTSIZ = 928,
+ EFDCTUF = 929,
+ EFDCTUI = 930,
+ EFDCTUIDZ = 931,
+ EFDCTUIZ = 932,
+ EFDDIV = 933,
+ EFDMUL = 934,
+ EFDNABS = 935,
+ EFDNEG = 936,
+ EFDSUB = 937,
+ EFDTSTEQ = 938,
+ EFDTSTGT = 939,
+ EFDTSTLT = 940,
+ EFSABS = 941,
+ EFSADD = 942,
+ EFSCFD = 943,
+ EFSCFSF = 944,
+ EFSCFSI = 945,
+ EFSCFUF = 946,
+ EFSCFUI = 947,
+ EFSCMPEQ = 948,
+ EFSCMPGT = 949,
+ EFSCMPLT = 950,
+ EFSCTSF = 951,
+ EFSCTSI = 952,
+ EFSCTSIZ = 953,
+ EFSCTUF = 954,
+ EFSCTUI = 955,
+ EFSCTUIZ = 956,
+ EFSDIV = 957,
+ EFSMUL = 958,
+ EFSNABS = 959,
+ EFSNEG = 960,
+ EFSSUB = 961,
+ EFSTSTEQ = 962,
+ EFSTSTGT = 963,
+ EFSTSTLT = 964,
+ EH_SjLj_LongJmp32 = 965,
+ EH_SjLj_LongJmp64 = 966,
+ EH_SjLj_SetJmp32 = 967,
+ EH_SjLj_SetJmp64 = 968,
+ EH_SjLj_Setup = 969,
+ EQV = 970,
+ EQV8 = 971,
+ EQV8_rec = 972,
+ EQV_rec = 973,
+ EVABS = 974,
+ EVADDIW = 975,
+ EVADDSMIAAW = 976,
+ EVADDSSIAAW = 977,
+ EVADDUMIAAW = 978,
+ EVADDUSIAAW = 979,
+ EVADDW = 980,
+ EVAND = 981,
+ EVANDC = 982,
+ EVCMPEQ = 983,
+ EVCMPGTS = 984,
+ EVCMPGTU = 985,
+ EVCMPLTS = 986,
+ EVCMPLTU = 987,
+ EVCNTLSW = 988,
+ EVCNTLZW = 989,
+ EVDIVWS = 990,
+ EVDIVWU = 991,
+ EVEQV = 992,
+ EVEXTSB = 993,
+ EVEXTSH = 994,
+ EVFSABS = 995,
+ EVFSADD = 996,
+ EVFSCFSF = 997,
+ EVFSCFSI = 998,
+ EVFSCFUF = 999,
+ EVFSCFUI = 1000,
+ EVFSCMPEQ = 1001,
+ EVFSCMPGT = 1002,
+ EVFSCMPLT = 1003,
+ EVFSCTSF = 1004,
+ EVFSCTSI = 1005,
+ EVFSCTSIZ = 1006,
+ EVFSCTUF = 1007,
+ EVFSCTUI = 1008,
+ EVFSCTUIZ = 1009,
+ EVFSDIV = 1010,
+ EVFSMUL = 1011,
+ EVFSNABS = 1012,
+ EVFSNEG = 1013,
+ EVFSSUB = 1014,
+ EVFSTSTEQ = 1015,
+ EVFSTSTGT = 1016,
+ EVFSTSTLT = 1017,
+ EVLDD = 1018,
+ EVLDDX = 1019,
+ EVLDH = 1020,
+ EVLDHX = 1021,
+ EVLDW = 1022,
+ EVLDWX = 1023,
+ EVLHHESPLAT = 1024,
+ EVLHHESPLATX = 1025,
+ EVLHHOSSPLAT = 1026,
+ EVLHHOSSPLATX = 1027,
+ EVLHHOUSPLAT = 1028,
+ EVLHHOUSPLATX = 1029,
+ EVLWHE = 1030,
+ EVLWHEX = 1031,
+ EVLWHOS = 1032,
+ EVLWHOSX = 1033,
+ EVLWHOU = 1034,
+ EVLWHOUX = 1035,
+ EVLWHSPLAT = 1036,
+ EVLWHSPLATX = 1037,
+ EVLWWSPLAT = 1038,
+ EVLWWSPLATX = 1039,
+ EVMERGEHI = 1040,
+ EVMERGEHILO = 1041,
+ EVMERGELO = 1042,
+ EVMERGELOHI = 1043,
+ EVMHEGSMFAA = 1044,
+ EVMHEGSMFAN = 1045,
+ EVMHEGSMIAA = 1046,
+ EVMHEGSMIAN = 1047,
+ EVMHEGUMIAA = 1048,
+ EVMHEGUMIAN = 1049,
+ EVMHESMF = 1050,
+ EVMHESMFA = 1051,
+ EVMHESMFAAW = 1052,
+ EVMHESMFANW = 1053,
+ EVMHESMI = 1054,
+ EVMHESMIA = 1055,
+ EVMHESMIAAW = 1056,
+ EVMHESMIANW = 1057,
+ EVMHESSF = 1058,
+ EVMHESSFA = 1059,
+ EVMHESSFAAW = 1060,
+ EVMHESSFANW = 1061,
+ EVMHESSIAAW = 1062,
+ EVMHESSIANW = 1063,
+ EVMHEUMI = 1064,
+ EVMHEUMIA = 1065,
+ EVMHEUMIAAW = 1066,
+ EVMHEUMIANW = 1067,
+ EVMHEUSIAAW = 1068,
+ EVMHEUSIANW = 1069,
+ EVMHOGSMFAA = 1070,
+ EVMHOGSMFAN = 1071,
+ EVMHOGSMIAA = 1072,
+ EVMHOGSMIAN = 1073,
+ EVMHOGUMIAA = 1074,
+ EVMHOGUMIAN = 1075,
+ EVMHOSMF = 1076,
+ EVMHOSMFA = 1077,
+ EVMHOSMFAAW = 1078,
+ EVMHOSMFANW = 1079,
+ EVMHOSMI = 1080,
+ EVMHOSMIA = 1081,
+ EVMHOSMIAAW = 1082,
+ EVMHOSMIANW = 1083,
+ EVMHOSSF = 1084,
+ EVMHOSSFA = 1085,
+ EVMHOSSFAAW = 1086,
+ EVMHOSSFANW = 1087,
+ EVMHOSSIAAW = 1088,
+ EVMHOSSIANW = 1089,
+ EVMHOUMI = 1090,
+ EVMHOUMIA = 1091,
+ EVMHOUMIAAW = 1092,
+ EVMHOUMIANW = 1093,
+ EVMHOUSIAAW = 1094,
+ EVMHOUSIANW = 1095,
+ EVMRA = 1096,
+ EVMWHSMF = 1097,
+ EVMWHSMFA = 1098,
+ EVMWHSMI = 1099,
+ EVMWHSMIA = 1100,
+ EVMWHSSF = 1101,
+ EVMWHSSFA = 1102,
+ EVMWHUMI = 1103,
+ EVMWHUMIA = 1104,
+ EVMWLSMIAAW = 1105,
+ EVMWLSMIANW = 1106,
+ EVMWLSSIAAW = 1107,
+ EVMWLSSIANW = 1108,
+ EVMWLUMI = 1109,
+ EVMWLUMIA = 1110,
+ EVMWLUMIAAW = 1111,
+ EVMWLUMIANW = 1112,
+ EVMWLUSIAAW = 1113,
+ EVMWLUSIANW = 1114,
+ EVMWSMF = 1115,
+ EVMWSMFA = 1116,
+ EVMWSMFAA = 1117,
+ EVMWSMFAN = 1118,
+ EVMWSMI = 1119,
+ EVMWSMIA = 1120,
+ EVMWSMIAA = 1121,
+ EVMWSMIAN = 1122,
+ EVMWSSF = 1123,
+ EVMWSSFA = 1124,
+ EVMWSSFAA = 1125,
+ EVMWSSFAN = 1126,
+ EVMWUMI = 1127,
+ EVMWUMIA = 1128,
+ EVMWUMIAA = 1129,
+ EVMWUMIAN = 1130,
+ EVNAND = 1131,
+ EVNEG = 1132,
+ EVNOR = 1133,
+ EVOR = 1134,
+ EVORC = 1135,
+ EVRLW = 1136,
+ EVRLWI = 1137,
+ EVRNDW = 1138,
+ EVSEL = 1139,
+ EVSLW = 1140,
+ EVSLWI = 1141,
+ EVSPLATFI = 1142,
+ EVSPLATI = 1143,
+ EVSRWIS = 1144,
+ EVSRWIU = 1145,
+ EVSRWS = 1146,
+ EVSRWU = 1147,
+ EVSTDD = 1148,
+ EVSTDDX = 1149,
+ EVSTDH = 1150,
+ EVSTDHX = 1151,
+ EVSTDW = 1152,
+ EVSTDWX = 1153,
+ EVSTWHE = 1154,
+ EVSTWHEX = 1155,
+ EVSTWHO = 1156,
+ EVSTWHOX = 1157,
+ EVSTWWE = 1158,
+ EVSTWWEX = 1159,
+ EVSTWWO = 1160,
+ EVSTWWOX = 1161,
+ EVSUBFSMIAAW = 1162,
+ EVSUBFSSIAAW = 1163,
+ EVSUBFUMIAAW = 1164,
+ EVSUBFUSIAAW = 1165,
+ EVSUBFW = 1166,
+ EVSUBIFW = 1167,
+ EVXOR = 1168,
+ EXTSB = 1169,
+ EXTSB8 = 1170,
+ EXTSB8_32_64 = 1171,
+ EXTSB8_rec = 1172,
+ EXTSB_rec = 1173,
+ EXTSH = 1174,
+ EXTSH8 = 1175,
+ EXTSH8_32_64 = 1176,
+ EXTSH8_rec = 1177,
+ EXTSH_rec = 1178,
+ EXTSW = 1179,
+ EXTSWSLI = 1180,
+ EXTSWSLI_32_64 = 1181,
+ EXTSWSLI_32_64_rec = 1182,
+ EXTSWSLI_rec = 1183,
+ EXTSW_32 = 1184,
+ EXTSW_32_64 = 1185,
+ EXTSW_32_64_rec = 1186,
+ EXTSW_rec = 1187,
+ EnforceIEIO = 1188,
+ FABSD = 1189,
+ FABSD_rec = 1190,
+ FABSS = 1191,
+ FABSS_rec = 1192,
+ FADD = 1193,
+ FADDS = 1194,
+ FADDS_rec = 1195,
+ FADD_rec = 1196,
+ FADDrtz = 1197,
+ FCFID = 1198,
+ FCFIDS = 1199,
+ FCFIDS_rec = 1200,
+ FCFIDU = 1201,
+ FCFIDUS = 1202,
+ FCFIDUS_rec = 1203,
+ FCFIDU_rec = 1204,
+ FCFID_rec = 1205,
+ FCMPOD = 1206,
+ FCMPOS = 1207,
+ FCMPUD = 1208,
+ FCMPUS = 1209,
+ FCPSGND = 1210,
+ FCPSGND_rec = 1211,
+ FCPSGNS = 1212,
+ FCPSGNS_rec = 1213,
+ FCTID = 1214,
+ FCTIDU = 1215,
+ FCTIDUZ = 1216,
+ FCTIDUZ_rec = 1217,
+ FCTIDU_rec = 1218,
+ FCTIDZ = 1219,
+ FCTIDZ_rec = 1220,
+ FCTID_rec = 1221,
+ FCTIW = 1222,
+ FCTIWU = 1223,
+ FCTIWUZ = 1224,
+ FCTIWUZ_rec = 1225,
+ FCTIWU_rec = 1226,
+ FCTIWZ = 1227,
+ FCTIWZ_rec = 1228,
+ FCTIW_rec = 1229,
+ FDIV = 1230,
+ FDIVS = 1231,
+ FDIVS_rec = 1232,
+ FDIV_rec = 1233,
+ FENCE = 1234,
+ FMADD = 1235,
+ FMADDS = 1236,
+ FMADDS_rec = 1237,
+ FMADD_rec = 1238,
+ FMR = 1239,
+ FMR_rec = 1240,
+ FMSUB = 1241,
+ FMSUBS = 1242,
+ FMSUBS_rec = 1243,
+ FMSUB_rec = 1244,
+ FMUL = 1245,
+ FMULS = 1246,
+ FMULS_rec = 1247,
+ FMUL_rec = 1248,
+ FNABSD = 1249,
+ FNABSD_rec = 1250,
+ FNABSS = 1251,
+ FNABSS_rec = 1252,
+ FNEGD = 1253,
+ FNEGD_rec = 1254,
+ FNEGS = 1255,
+ FNEGS_rec = 1256,
+ FNMADD = 1257,
+ FNMADDS = 1258,
+ FNMADDS_rec = 1259,
+ FNMADD_rec = 1260,
+ FNMSUB = 1261,
+ FNMSUBS = 1262,
+ FNMSUBS_rec = 1263,
+ FNMSUB_rec = 1264,
+ FRE = 1265,
+ FRES = 1266,
+ FRES_rec = 1267,
+ FRE_rec = 1268,
+ FRIMD = 1269,
+ FRIMD_rec = 1270,
+ FRIMS = 1271,
+ FRIMS_rec = 1272,
+ FRIND = 1273,
+ FRIND_rec = 1274,
+ FRINS = 1275,
+ FRINS_rec = 1276,
+ FRIPD = 1277,
+ FRIPD_rec = 1278,
+ FRIPS = 1279,
+ FRIPS_rec = 1280,
+ FRIZD = 1281,
+ FRIZD_rec = 1282,
+ FRIZS = 1283,
+ FRIZS_rec = 1284,
+ FRSP = 1285,
+ FRSP_rec = 1286,
+ FRSQRTE = 1287,
+ FRSQRTES = 1288,
+ FRSQRTES_rec = 1289,
+ FRSQRTE_rec = 1290,
+ FSELD = 1291,
+ FSELD_rec = 1292,
+ FSELS = 1293,
+ FSELS_rec = 1294,
+ FSQRT = 1295,
+ FSQRTS = 1296,
+ FSQRTS_rec = 1297,
+ FSQRT_rec = 1298,
+ FSUB = 1299,
+ FSUBS = 1300,
+ FSUBS_rec = 1301,
+ FSUB_rec = 1302,
+ FTDIV = 1303,
+ FTSQRT = 1304,
+ GETtlsADDR = 1305,
+ GETtlsADDR32 = 1306,
+ GETtlsADDR32AIX = 1307,
+ GETtlsADDR64AIX = 1308,
+ GETtlsADDRPCREL = 1309,
+ GETtlsMOD32AIX = 1310,
+ GETtlsMOD64AIX = 1311,
+ GETtlsTpointer32AIX = 1312,
+ GETtlsldADDR = 1313,
+ GETtlsldADDR32 = 1314,
+ GETtlsldADDRPCREL = 1315,
+ HASHCHK = 1316,
+ HASHCHK8 = 1317,
+ HASHCHKP = 1318,
+ HASHCHKP8 = 1319,
+ HASHST = 1320,
+ HASHST8 = 1321,
+ HASHSTP = 1322,
+ HASHSTP8 = 1323,
+ HRFID = 1324,
+ ICBI = 1325,
+ ICBIEP = 1326,
+ ICBLC = 1327,
+ ICBLQ = 1328,
+ ICBT = 1329,
+ ICBTLS = 1330,
+ ICCCI = 1331,
+ ISEL = 1332,
+ ISEL8 = 1333,
+ ISYNC = 1334,
+ LA = 1335,
+ LA8 = 1336,
+ LBARX = 1337,
+ LBARXL = 1338,
+ LBEPX = 1339,
+ LBZ = 1340,
+ LBZ8 = 1341,
+ LBZCIX = 1342,
+ LBZU = 1343,
+ LBZU8 = 1344,
+ LBZUX = 1345,
+ LBZUX8 = 1346,
+ LBZX = 1347,
+ LBZX8 = 1348,
+ LBZXTLS = 1349,
+ LBZXTLS_ = 1350,
+ LBZXTLS_32 = 1351,
+ LD = 1352,
+ LDARX = 1353,
+ LDARXL = 1354,
+ LDAT = 1355,
+ LDAT_PSEUDO = 1356,
+ LDBRX = 1357,
+ LDCIX = 1358,
+ LDU = 1359,
+ LDUX = 1360,
+ LDX = 1361,
+ LDXTLS = 1362,
+ LDXTLS_ = 1363,
+ LDgotTprelL = 1364,
+ LDgotTprelL32 = 1365,
+ LDtoc = 1366,
+ LDtocBA = 1367,
+ LDtocCPT = 1368,
+ LDtocJTI = 1369,
+ LDtocL = 1370,
+ LFD = 1371,
+ LFDEPX = 1372,
+ LFDU = 1373,
+ LFDUX = 1374,
+ LFDX = 1375,
+ LFDXTLS = 1376,
+ LFDXTLS_ = 1377,
+ LFIWAX = 1378,
+ LFIWZX = 1379,
+ LFS = 1380,
+ LFSU = 1381,
+ LFSUX = 1382,
+ LFSX = 1383,
+ LFSXTLS = 1384,
+ LFSXTLS_ = 1385,
+ LHA = 1386,
+ LHA8 = 1387,
+ LHARX = 1388,
+ LHARXL = 1389,
+ LHAU = 1390,
+ LHAU8 = 1391,
+ LHAUX = 1392,
+ LHAUX8 = 1393,
+ LHAX = 1394,
+ LHAX8 = 1395,
+ LHAXTLS = 1396,
+ LHAXTLS_ = 1397,
+ LHAXTLS_32 = 1398,
+ LHBRX = 1399,
+ LHBRX8 = 1400,
+ LHEPX = 1401,
+ LHZ = 1402,
+ LHZ8 = 1403,
+ LHZCIX = 1404,
+ LHZU = 1405,
+ LHZU8 = 1406,
+ LHZUX = 1407,
+ LHZUX8 = 1408,
+ LHZX = 1409,
+ LHZX8 = 1410,
+ LHZXTLS = 1411,
+ LHZXTLS_ = 1412,
+ LHZXTLS_32 = 1413,
+ LI = 1414,
+ LI8 = 1415,
+ LIS = 1416,
+ LIS8 = 1417,
+ LMW = 1418,
+ LQ = 1419,
+ LQARX = 1420,
+ LQARXL = 1421,
+ LQX_PSEUDO = 1422,
+ LSWI = 1423,
+ LVEBX = 1424,
+ LVEHX = 1425,
+ LVEWX = 1426,
+ LVSL = 1427,
+ LVSR = 1428,
+ LVX = 1429,
+ LVXL = 1430,
+ LWA = 1431,
+ LWARX = 1432,
+ LWARXL = 1433,
+ LWAT = 1434,
+ LWAT_PSEUDO = 1435,
+ LWAUX = 1436,
+ LWAX = 1437,
+ LWAXTLS = 1438,
+ LWAXTLS_ = 1439,
+ LWAXTLS_32 = 1440,
+ LWAX_32 = 1441,
+ LWA_32 = 1442,
+ LWBRX = 1443,
+ LWBRX8 = 1444,
+ LWEPX = 1445,
+ LWZ = 1446,
+ LWZ8 = 1447,
+ LWZCIX = 1448,
+ LWZU = 1449,
+ LWZU8 = 1450,
+ LWZUX = 1451,
+ LWZUX8 = 1452,
+ LWZX = 1453,
+ LWZX8 = 1454,
+ LWZXTLS = 1455,
+ LWZXTLS_ = 1456,
+ LWZXTLS_32 = 1457,
+ LWZtoc = 1458,
+ LWZtocL = 1459,
+ LXSD = 1460,
+ LXSDX = 1461,
+ LXSIBZX = 1462,
+ LXSIHZX = 1463,
+ LXSIWAX = 1464,
+ LXSIWZX = 1465,
+ LXSSP = 1466,
+ LXSSPX = 1467,
+ LXV = 1468,
+ LXVB16X = 1469,
+ LXVD2X = 1470,
+ LXVDSX = 1471,
+ LXVH8X = 1472,
+ LXVKQ = 1473,
+ LXVL = 1474,
+ LXVLL = 1475,
+ LXVP = 1476,
+ LXVPB32X = 1477,
+ LXVPRL = 1478,
+ LXVPRLL = 1479,
+ LXVPX = 1480,
+ LXVRBX = 1481,
+ LXVRDX = 1482,
+ LXVRHX = 1483,
+ LXVRL = 1484,
+ LXVRLL = 1485,
+ LXVRWX = 1486,
+ LXVW4X = 1487,
+ LXVWSX = 1488,
+ LXVX = 1489,
+ MADDHD = 1490,
+ MADDHDU = 1491,
+ MADDLD = 1492,
+ MADDLD8 = 1493,
+ MBAR = 1494,
+ MCRF = 1495,
+ MCRFS = 1496,
+ MCRXRX = 1497,
+ MFBHRBE = 1498,
+ MFCR = 1499,
+ MFCR8 = 1500,
+ MFCTR = 1501,
+ MFCTR8 = 1502,
+ MFDCR = 1503,
+ MFFS = 1504,
+ MFFSCDRN = 1505,
+ MFFSCDRNI = 1506,
+ MFFSCE = 1507,
+ MFFSCRN = 1508,
+ MFFSCRNI = 1509,
+ MFFSL = 1510,
+ MFFS_rec = 1511,
+ MFLR = 1512,
+ MFLR8 = 1513,
+ MFMSR = 1514,
+ MFOCRF = 1515,
+ MFOCRF8 = 1516,
+ MFPMR = 1517,
+ MFSPR = 1518,
+ MFSPR8 = 1519,
+ MFSR = 1520,
+ MFSRIN = 1521,
+ MFTB = 1522,
+ MFTB8 = 1523,
+ MFUDSCR = 1524,
+ MFVRD = 1525,
+ MFVRSAVE = 1526,
+ MFVRSAVEv = 1527,
+ MFVRWZ = 1528,
+ MFVSCR = 1529,
+ MFVSRD = 1530,
+ MFVSRLD = 1531,
+ MFVSRWZ = 1532,
+ MODSD = 1533,
+ MODSW = 1534,
+ MODUD = 1535,
+ MODUW = 1536,
+ MSGSYNC = 1537,
+ MSYNC = 1538,
+ MTCRF = 1539,
+ MTCRF8 = 1540,
+ MTCTR = 1541,
+ MTCTR8 = 1542,
+ MTCTR8loop = 1543,
+ MTCTRloop = 1544,
+ MTDCR = 1545,
+ MTFSB0 = 1546,
+ MTFSB1 = 1547,
+ MTFSF = 1548,
+ MTFSFI = 1549,
+ MTFSFI_rec = 1550,
+ MTFSFIb = 1551,
+ MTFSF_rec = 1552,
+ MTFSFb = 1553,
+ MTLPL = 1554,
+ MTLPL8 = 1555,
+ MTLR = 1556,
+ MTLR8 = 1557,
+ MTMSR = 1558,
+ MTMSRD = 1559,
+ MTOCRF = 1560,
+ MTOCRF8 = 1561,
+ MTPMR = 1562,
+ MTSPR = 1563,
+ MTSPR8 = 1564,
+ MTSR = 1565,
+ MTSRIN = 1566,
+ MTUDSCR = 1567,
+ MTVRD = 1568,
+ MTVRSAVE = 1569,
+ MTVRSAVEv = 1570,
+ MTVRWA = 1571,
+ MTVRWZ = 1572,
+ MTVSCR = 1573,
+ MTVSRBM = 1574,
+ MTVSRBMI = 1575,
+ MTVSRD = 1576,
+ MTVSRDD = 1577,
+ MTVSRDM = 1578,
+ MTVSRHM = 1579,
+ MTVSRQM = 1580,
+ MTVSRWA = 1581,
+ MTVSRWM = 1582,
+ MTVSRWS = 1583,
+ MTVSRWZ = 1584,
+ MULHD = 1585,
+ MULHDU = 1586,
+ MULHDU_rec = 1587,
+ MULHD_rec = 1588,
+ MULHW = 1589,
+ MULHWU = 1590,
+ MULHWU_rec = 1591,
+ MULHW_rec = 1592,
+ MULLD = 1593,
+ MULLDO = 1594,
+ MULLDO_rec = 1595,
+ MULLD_rec = 1596,
+ MULLI = 1597,
+ MULLI8 = 1598,
+ MULLW = 1599,
+ MULLWO = 1600,
+ MULLWO_rec = 1601,
+ MULLW_rec = 1602,
+ MoveGOTtoLR = 1603,
+ MovePCtoLR = 1604,
+ MovePCtoLR8 = 1605,
+ NAND = 1606,
+ NAND8 = 1607,
+ NAND8_rec = 1608,
+ NAND_rec = 1609,
+ NAP = 1610,
+ NEG = 1611,
+ NEG8 = 1612,
+ NEG8O = 1613,
+ NEG8O_rec = 1614,
+ NEG8_rec = 1615,
+ NEGO = 1616,
+ NEGO_rec = 1617,
+ NEG_rec = 1618,
+ NOP = 1619,
+ NOP_GT_PWR6 = 1620,
+ NOP_GT_PWR7 = 1621,
+ NOR = 1622,
+ NOR8 = 1623,
+ NOR8_rec = 1624,
+ NOR_rec = 1625,
+ OR = 1626,
+ OR8 = 1627,
+ OR8_rec = 1628,
+ ORC = 1629,
+ ORC8 = 1630,
+ ORC8_rec = 1631,
+ ORC_rec = 1632,
+ ORI = 1633,
+ ORI8 = 1634,
+ ORIS = 1635,
+ ORIS8 = 1636,
+ OR_rec = 1637,
+ PADDI = 1638,
+ PADDI8 = 1639,
+ PADDI8pc = 1640,
+ PADDIS = 1641,
+ PADDIS8 = 1642,
+ PADDIS8pc = 1643,
+ PADDISpc = 1644,
+ PADDIdtprel = 1645,
+ PADDIpc = 1646,
+ PDEPD = 1647,
+ PEXTD = 1648,
+ PLA = 1649,
+ PLA8 = 1650,
+ PLA8pc = 1651,
+ PLApc = 1652,
+ PLBZ = 1653,
+ PLBZ8 = 1654,
+ PLBZ8nopc = 1655,
+ PLBZ8onlypc = 1656,
+ PLBZ8pc = 1657,
+ PLBZnopc = 1658,
+ PLBZonlypc = 1659,
+ PLBZpc = 1660,
+ PLD = 1661,
+ PLDnopc = 1662,
+ PLDonlypc = 1663,
+ PLDpc = 1664,
+ PLFD = 1665,
+ PLFDnopc = 1666,
+ PLFDonlypc = 1667,
+ PLFDpc = 1668,
+ PLFS = 1669,
+ PLFSnopc = 1670,
+ PLFSonlypc = 1671,
+ PLFSpc = 1672,
+ PLHA = 1673,
+ PLHA8 = 1674,
+ PLHA8nopc = 1675,
+ PLHA8onlypc = 1676,
+ PLHA8pc = 1677,
+ PLHAnopc = 1678,
+ PLHAonlypc = 1679,
+ PLHApc = 1680,
+ PLHZ = 1681,
+ PLHZ8 = 1682,
+ PLHZ8nopc = 1683,
+ PLHZ8onlypc = 1684,
+ PLHZ8pc = 1685,
+ PLHZnopc = 1686,
+ PLHZonlypc = 1687,
+ PLHZpc = 1688,
+ PLI = 1689,
+ PLI8 = 1690,
+ PLWA = 1691,
+ PLWA8 = 1692,
+ PLWA8nopc = 1693,
+ PLWA8onlypc = 1694,
+ PLWA8pc = 1695,
+ PLWAnopc = 1696,
+ PLWAonlypc = 1697,
+ PLWApc = 1698,
+ PLWZ = 1699,
+ PLWZ8 = 1700,
+ PLWZ8nopc = 1701,
+ PLWZ8onlypc = 1702,
+ PLWZ8pc = 1703,
+ PLWZnopc = 1704,
+ PLWZonlypc = 1705,
+ PLWZpc = 1706,
+ PLXSD = 1707,
+ PLXSDnopc = 1708,
+ PLXSDonlypc = 1709,
+ PLXSDpc = 1710,
+ PLXSSP = 1711,
+ PLXSSPnopc = 1712,
+ PLXSSPonlypc = 1713,
+ PLXSSPpc = 1714,
+ PLXV = 1715,
+ PLXVP = 1716,
+ PLXVPnopc = 1717,
+ PLXVPonlypc = 1718,
+ PLXVPpc = 1719,
+ PLXVnopc = 1720,
+ PLXVonlypc = 1721,
+ PLXVpc = 1722,
+ PMDMXVBF16GERX2 = 1723,
+ PMDMXVBF16GERX2NN = 1724,
+ PMDMXVBF16GERX2NP = 1725,
+ PMDMXVBF16GERX2PN = 1726,
+ PMDMXVBF16GERX2PP = 1727,
+ PMDMXVF16GERX2 = 1728,
+ PMDMXVF16GERX2NN = 1729,
+ PMDMXVF16GERX2NP = 1730,
+ PMDMXVF16GERX2PN = 1731,
+ PMDMXVF16GERX2PP = 1732,
+ PMDMXVI8GERX4 = 1733,
+ PMDMXVI8GERX4PP = 1734,
+ PMDMXVI8GERX4SPP = 1735,
+ PMXVBF16GER2 = 1736,
+ PMXVBF16GER2NN = 1737,
+ PMXVBF16GER2NP = 1738,
+ PMXVBF16GER2PN = 1739,
+ PMXVBF16GER2PP = 1740,
+ PMXVBF16GER2W = 1741,
+ PMXVBF16GER2WNN = 1742,
+ PMXVBF16GER2WNP = 1743,
+ PMXVBF16GER2WPN = 1744,
+ PMXVBF16GER2WPP = 1745,
+ PMXVF16GER2 = 1746,
+ PMXVF16GER2NN = 1747,
+ PMXVF16GER2NP = 1748,
+ PMXVF16GER2PN = 1749,
+ PMXVF16GER2PP = 1750,
+ PMXVF16GER2W = 1751,
+ PMXVF16GER2WNN = 1752,
+ PMXVF16GER2WNP = 1753,
+ PMXVF16GER2WPN = 1754,
+ PMXVF16GER2WPP = 1755,
+ PMXVF32GER = 1756,
+ PMXVF32GERNN = 1757,
+ PMXVF32GERNP = 1758,
+ PMXVF32GERPN = 1759,
+ PMXVF32GERPP = 1760,
+ PMXVF32GERW = 1761,
+ PMXVF32GERWNN = 1762,
+ PMXVF32GERWNP = 1763,
+ PMXVF32GERWPN = 1764,
+ PMXVF32GERWPP = 1765,
+ PMXVF64GER = 1766,
+ PMXVF64GERNN = 1767,
+ PMXVF64GERNP = 1768,
+ PMXVF64GERPN = 1769,
+ PMXVF64GERPP = 1770,
+ PMXVF64GERW = 1771,
+ PMXVF64GERWNN = 1772,
+ PMXVF64GERWNP = 1773,
+ PMXVF64GERWPN = 1774,
+ PMXVF64GERWPP = 1775,
+ PMXVI16GER2 = 1776,
+ PMXVI16GER2PP = 1777,
+ PMXVI16GER2S = 1778,
+ PMXVI16GER2SPP = 1779,
+ PMXVI16GER2SW = 1780,
+ PMXVI16GER2SWPP = 1781,
+ PMXVI16GER2W = 1782,
+ PMXVI16GER2WPP = 1783,
+ PMXVI4GER8 = 1784,
+ PMXVI4GER8PP = 1785,
+ PMXVI4GER8W = 1786,
+ PMXVI4GER8WPP = 1787,
+ PMXVI8GER4 = 1788,
+ PMXVI8GER4PP = 1789,
+ PMXVI8GER4SPP = 1790,
+ PMXVI8GER4W = 1791,
+ PMXVI8GER4WPP = 1792,
+ PMXVI8GER4WSPP = 1793,
+ POPCNTB = 1794,
+ POPCNTB8 = 1795,
+ POPCNTD = 1796,
+ POPCNTW = 1797,
+ PPC32GOT = 1798,
+ PPC32PICGOT = 1799,
+ PREPARE_PROBED_ALLOCA_32 = 1800,
+ PREPARE_PROBED_ALLOCA_64 = 1801,
+ PREPARE_PROBED_ALLOCA_NEGSIZE_SAME_REG_32 = 1802,
+ PREPARE_PROBED_ALLOCA_NEGSIZE_SAME_REG_64 = 1803,
+ PROBED_ALLOCA_32 = 1804,
+ PROBED_ALLOCA_64 = 1805,
+ PROBED_STACKALLOC_32 = 1806,
+ PROBED_STACKALLOC_64 = 1807,
+ PSTB = 1808,
+ PSTB8 = 1809,
+ PSTB8nopc = 1810,
+ PSTB8onlypc = 1811,
+ PSTB8pc = 1812,
+ PSTBnopc = 1813,
+ PSTBonlypc = 1814,
+ PSTBpc = 1815,
+ PSTD = 1816,
+ PSTDnopc = 1817,
+ PSTDonlypc = 1818,
+ PSTDpc = 1819,
+ PSTFD = 1820,
+ PSTFDnopc = 1821,
+ PSTFDonlypc = 1822,
+ PSTFDpc = 1823,
+ PSTFS = 1824,
+ PSTFSnopc = 1825,
+ PSTFSonlypc = 1826,
+ PSTFSpc = 1827,
+ PSTH = 1828,
+ PSTH8 = 1829,
+ PSTH8nopc = 1830,
+ PSTH8onlypc = 1831,
+ PSTH8pc = 1832,
+ PSTHnopc = 1833,
+ PSTHonlypc = 1834,
+ PSTHpc = 1835,
+ PSTW = 1836,
+ PSTW8 = 1837,
+ PSTW8nopc = 1838,
+ PSTW8onlypc = 1839,
+ PSTW8pc = 1840,
+ PSTWnopc = 1841,
+ PSTWonlypc = 1842,
+ PSTWpc = 1843,
+ PSTXSD = 1844,
+ PSTXSDnopc = 1845,
+ PSTXSDonlypc = 1846,
+ PSTXSDpc = 1847,
+ PSTXSSP = 1848,
+ PSTXSSPnopc = 1849,
+ PSTXSSPonlypc = 1850,
+ PSTXSSPpc = 1851,
+ PSTXV = 1852,
+ PSTXVP = 1853,
+ PSTXVPnopc = 1854,
+ PSTXVPonlypc = 1855,
+ PSTXVPpc = 1856,
+ PSTXVnopc = 1857,
+ PSTXVonlypc = 1858,
+ PSTXVpc = 1859,
+ PTESYNCIO = 1860,
+ PseudoEIEIO = 1861,
+ RESTORE_ACC = 1862,
+ RESTORE_CR = 1863,
+ RESTORE_CRBIT = 1864,
+ RESTORE_DMR = 1865,
+ RESTORE_DMRP = 1866,
+ RESTORE_QUADWORD = 1867,
+ RESTORE_UACC = 1868,
+ RESTORE_WACC = 1869,
+ RFCI = 1870,
+ RFDI = 1871,
+ RFEBB = 1872,
+ RFI = 1873,
+ RFID = 1874,
+ RFMCI = 1875,
+ RLDCL = 1876,
+ RLDCL_rec = 1877,
+ RLDCR = 1878,
+ RLDCR_rec = 1879,
+ RLDIC = 1880,
+ RLDICL = 1881,
+ RLDICL_32 = 1882,
+ RLDICL_32_64 = 1883,
+ RLDICL_32_rec = 1884,
+ RLDICL_rec = 1885,
+ RLDICR = 1886,
+ RLDICR_32 = 1887,
+ RLDICR_rec = 1888,
+ RLDIC_rec = 1889,
+ RLDIMI = 1890,
+ RLDIMI_rec = 1891,
+ RLWIMI = 1892,
+ RLWIMI8 = 1893,
+ RLWIMI8_rec = 1894,
+ RLWIMI_rec = 1895,
+ RLWINM = 1896,
+ RLWINM8 = 1897,
+ RLWINM8_rec = 1898,
+ RLWINM_rec = 1899,
+ RLWNM = 1900,
+ RLWNM8 = 1901,
+ RLWNM8_rec = 1902,
+ RLWNM_rec = 1903,
+ ReadTB = 1904,
+ SC = 1905,
+ SCV = 1906,
+ SELECT_CC_F16 = 1907,
+ SELECT_CC_F4 = 1908,
+ SELECT_CC_F8 = 1909,
+ SELECT_CC_I4 = 1910,
+ SELECT_CC_I8 = 1911,
+ SELECT_CC_SPE = 1912,
+ SELECT_CC_SPE4 = 1913,
+ SELECT_CC_VRRC = 1914,
+ SELECT_CC_VSFRC = 1915,
+ SELECT_CC_VSRC = 1916,
+ SELECT_CC_VSSRC = 1917,
+ SELECT_F16 = 1918,
+ SELECT_F4 = 1919,
+ SELECT_F8 = 1920,
+ SELECT_I4 = 1921,
+ SELECT_I8 = 1922,
+ SELECT_SPE = 1923,
+ SELECT_SPE4 = 1924,
+ SELECT_VRRC = 1925,
+ SELECT_VSFRC = 1926,
+ SELECT_VSRC = 1927,
+ SELECT_VSSRC = 1928,
+ SETB = 1929,
+ SETB8 = 1930,
+ SETBC = 1931,
+ SETBC8 = 1932,
+ SETBCR = 1933,
+ SETBCR8 = 1934,
+ SETFLM = 1935,
+ SETNBC = 1936,
+ SETNBC8 = 1937,
+ SETNBCR = 1938,
+ SETNBCR8 = 1939,
+ SETRND = 1940,
+ SETRNDi = 1941,
+ SLBFEE_rec = 1942,
+ SLBIA = 1943,
+ SLBIE = 1944,
+ SLBIEG = 1945,
+ SLBMFEE = 1946,
+ SLBMFEV = 1947,
+ SLBMTE = 1948,
+ SLBSYNC = 1949,
+ SLD = 1950,
+ SLD_rec = 1951,
+ SLW = 1952,
+ SLW8 = 1953,
+ SLW8_rec = 1954,
+ SLW_rec = 1955,
+ SPELWZ = 1956,
+ SPELWZX = 1957,
+ SPESTW = 1958,
+ SPESTWX = 1959,
+ SPILL_ACC = 1960,
+ SPILL_CR = 1961,
+ SPILL_CRBIT = 1962,
+ SPILL_DMR = 1963,
+ SPILL_DMRP = 1964,
+ SPILL_QUADWORD = 1965,
+ SPILL_UACC = 1966,
+ SPILL_WACC = 1967,
+ SPLIT_QUADWORD = 1968,
+ SRAD = 1969,
+ SRADI = 1970,
+ SRADI_32 = 1971,
+ SRADI_rec = 1972,
+ SRAD_rec = 1973,
+ SRAW = 1974,
+ SRAW8 = 1975,
+ SRAW8_rec = 1976,
+ SRAWI = 1977,
+ SRAWI8 = 1978,
+ SRAWI8_rec = 1979,
+ SRAWI_rec = 1980,
+ SRAW_rec = 1981,
+ SRD = 1982,
+ SRD_rec = 1983,
+ SRW = 1984,
+ SRW8 = 1985,
+ SRW8_rec = 1986,
+ SRW_rec = 1987,
+ STB = 1988,
+ STB8 = 1989,
+ STBCIX = 1990,
+ STBCX = 1991,
+ STBEPX = 1992,
+ STBU = 1993,
+ STBU8 = 1994,
+ STBUX = 1995,
+ STBUX8 = 1996,
+ STBX = 1997,
+ STBX8 = 1998,
+ STBXTLS = 1999,
+ STBXTLS_ = 2000,
+ STBXTLS_32 = 2001,
+ STD = 2002,
+ STDAT = 2003,
+ STDBRX = 2004,
+ STDCIX = 2005,
+ STDCX = 2006,
+ STDU = 2007,
+ STDUX = 2008,
+ STDX = 2009,
+ STDXTLS = 2010,
+ STDXTLS_ = 2011,
+ STFD = 2012,
+ STFDEPX = 2013,
+ STFDU = 2014,
+ STFDUX = 2015,
+ STFDX = 2016,
+ STFDXTLS = 2017,
+ STFDXTLS_ = 2018,
+ STFIWX = 2019,
+ STFS = 2020,
+ STFSU = 2021,
+ STFSUX = 2022,
+ STFSX = 2023,
+ STFSXTLS = 2024,
+ STFSXTLS_ = 2025,
+ STH = 2026,
+ STH8 = 2027,
+ STHBRX = 2028,
+ STHCIX = 2029,
+ STHCX = 2030,
+ STHEPX = 2031,
+ STHU = 2032,
+ STHU8 = 2033,
+ STHUX = 2034,
+ STHUX8 = 2035,
+ STHX = 2036,
+ STHX8 = 2037,
+ STHXTLS = 2038,
+ STHXTLS_ = 2039,
+ STHXTLS_32 = 2040,
+ STMW = 2041,
+ STOP = 2042,
+ STQ = 2043,
+ STQCX = 2044,
+ STQX_PSEUDO = 2045,
+ STSWI = 2046,
+ STVEBX = 2047,
+ STVEHX = 2048,
+ STVEWX = 2049,
+ STVX = 2050,
+ STVXL = 2051,
+ STW = 2052,
+ STW8 = 2053,
+ STWAT = 2054,
+ STWBRX = 2055,
+ STWCIX = 2056,
+ STWCX = 2057,
+ STWEPX = 2058,
+ STWU = 2059,
+ STWU8 = 2060,
+ STWUX = 2061,
+ STWUX8 = 2062,
+ STWX = 2063,
+ STWX8 = 2064,
+ STWXTLS = 2065,
+ STWXTLS_ = 2066,
+ STWXTLS_32 = 2067,
+ STXSD = 2068,
+ STXSDX = 2069,
+ STXSIBX = 2070,
+ STXSIBXv = 2071,
+ STXSIHX = 2072,
+ STXSIHXv = 2073,
+ STXSIWX = 2074,
+ STXSSP = 2075,
+ STXSSPX = 2076,
+ STXV = 2077,
+ STXVB16X = 2078,
+ STXVD2X = 2079,
+ STXVH8X = 2080,
+ STXVL = 2081,
+ STXVLL = 2082,
+ STXVP = 2083,
+ STXVPB32X = 2084,
+ STXVPRL = 2085,
+ STXVPRLL = 2086,
+ STXVPX = 2087,
+ STXVRBX = 2088,
+ STXVRDX = 2089,
+ STXVRHX = 2090,
+ STXVRL = 2091,
+ STXVRLL = 2092,
+ STXVRWX = 2093,
+ STXVW4X = 2094,
+ STXVX = 2095,
+ SUBF = 2096,
+ SUBF8 = 2097,
+ SUBF8O = 2098,
+ SUBF8O_rec = 2099,
+ SUBF8_rec = 2100,
+ SUBFC = 2101,
+ SUBFC8 = 2102,
+ SUBFC8O = 2103,
+ SUBFC8O_rec = 2104,
+ SUBFC8_rec = 2105,
+ SUBFCO = 2106,
+ SUBFCO_rec = 2107,
+ SUBFC_rec = 2108,
+ SUBFE = 2109,
+ SUBFE8 = 2110,
+ SUBFE8O = 2111,
+ SUBFE8O_rec = 2112,
+ SUBFE8_rec = 2113,
+ SUBFEO = 2114,
+ SUBFEO_rec = 2115,
+ SUBFE_rec = 2116,
+ SUBFIC = 2117,
+ SUBFIC8 = 2118,
+ SUBFME = 2119,
+ SUBFME8 = 2120,
+ SUBFME8O = 2121,
+ SUBFME8O_rec = 2122,
+ SUBFME8_rec = 2123,
+ SUBFMEO = 2124,
+ SUBFMEO_rec = 2125,
+ SUBFME_rec = 2126,
+ SUBFO = 2127,
+ SUBFO_rec = 2128,
+ SUBFUS = 2129,
+ SUBFUS_rec = 2130,
+ SUBFZE = 2131,
+ SUBFZE8 = 2132,
+ SUBFZE8O = 2133,
+ SUBFZE8O_rec = 2134,
+ SUBFZE8_rec = 2135,
+ SUBFZEO = 2136,
+ SUBFZEO_rec = 2137,
+ SUBFZE_rec = 2138,
+ SUBF_rec = 2139,
+ SYNC = 2140,
+ SYNCP10 = 2141,
+ TABORT = 2142,
+ TABORTDC = 2143,
+ TABORTDCI = 2144,
+ TABORTWC = 2145,
+ TABORTWCI = 2146,
+ TAILB = 2147,
+ TAILB8 = 2148,
+ TAILBA = 2149,
+ TAILBA8 = 2150,
+ TAILBCTR = 2151,
+ TAILBCTR8 = 2152,
+ TBEGIN = 2153,
+ TBEGIN_RET = 2154,
+ TCHECK = 2155,
+ TCHECK_RET = 2156,
+ TCRETURNai = 2157,
+ TCRETURNai8 = 2158,
+ TCRETURNdi = 2159,
+ TCRETURNdi8 = 2160,
+ TCRETURNri = 2161,
+ TCRETURNri8 = 2162,
+ TD = 2163,
+ TDI = 2164,
+ TEND = 2165,
+ TLBIA = 2166,
+ TLBIE = 2167,
+ TLBIE8P9 = 2168,
+ TLBIEIO = 2169,
+ TLBIEL = 2170,
+ TLBIEP = 2171,
+ TLBIEP8 = 2172,
+ TLBIEP9 = 2173,
+ TLBILX = 2174,
+ TLBIVAX = 2175,
+ TLBLD = 2176,
+ TLBLI = 2177,
+ TLBRE = 2178,
+ TLBRE2 = 2179,
+ TLBSX = 2180,
+ TLBSX2 = 2181,
+ TLBSX2D = 2182,
+ TLBSYNC = 2183,
+ TLBSYNCIO = 2184,
+ TLBWE = 2185,
+ TLBWE2 = 2186,
+ TLSGDAIX = 2187,
+ TLSGDAIX8 = 2188,
+ TLSLDAIX = 2189,
+ TLSLDAIX8 = 2190,
+ TRAP = 2191,
+ TRECHKPT = 2192,
+ TRECLAIM = 2193,
+ TSR = 2194,
+ TW = 2195,
+ TWI = 2196,
+ UNENCODED_NOP = 2197,
+ UpdateGBR = 2198,
+ VABSDUB = 2199,
+ VABSDUH = 2200,
+ VABSDUW = 2201,
+ VADDCUQ = 2202,
+ VADDCUW = 2203,
+ VADDECUQ = 2204,
+ VADDEUQM = 2205,
+ VADDFP = 2206,
+ VADDSBS = 2207,
+ VADDSHS = 2208,
+ VADDSWS = 2209,
+ VADDUBM = 2210,
+ VADDUBS = 2211,
+ VADDUDM = 2212,
+ VADDUHM = 2213,
+ VADDUHS = 2214,
+ VADDUQM = 2215,
+ VADDUWM = 2216,
+ VADDUWS = 2217,
+ VAND = 2218,
+ VANDC = 2219,
+ VAVGSB = 2220,
+ VAVGSH = 2221,
+ VAVGSW = 2222,
+ VAVGUB = 2223,
+ VAVGUH = 2224,
+ VAVGUW = 2225,
+ VBPERMD = 2226,
+ VBPERMQ = 2227,
+ VCFSX = 2228,
+ VCFSX_0 = 2229,
+ VCFUGED = 2230,
+ VCFUX = 2231,
+ VCFUX_0 = 2232,
+ VCIPHER = 2233,
+ VCIPHERLAST = 2234,
+ VCLRLB = 2235,
+ VCLRRB = 2236,
+ VCLZB = 2237,
+ VCLZD = 2238,
+ VCLZDM = 2239,
+ VCLZH = 2240,
+ VCLZLSBB = 2241,
+ VCLZW = 2242,
+ VCMPBFP = 2243,
+ VCMPBFP_rec = 2244,
+ VCMPEQFP = 2245,
+ VCMPEQFP_rec = 2246,
+ VCMPEQUB = 2247,
+ VCMPEQUB_rec = 2248,
+ VCMPEQUD = 2249,
+ VCMPEQUD_rec = 2250,
+ VCMPEQUH = 2251,
+ VCMPEQUH_rec = 2252,
+ VCMPEQUQ = 2253,
+ VCMPEQUQ_rec = 2254,
+ VCMPEQUW = 2255,
+ VCMPEQUW_rec = 2256,
+ VCMPGEFP = 2257,
+ VCMPGEFP_rec = 2258,
+ VCMPGTFP = 2259,
+ VCMPGTFP_rec = 2260,
+ VCMPGTSB = 2261,
+ VCMPGTSB_rec = 2262,
+ VCMPGTSD = 2263,
+ VCMPGTSD_rec = 2264,
+ VCMPGTSH = 2265,
+ VCMPGTSH_rec = 2266,
+ VCMPGTSQ = 2267,
+ VCMPGTSQ_rec = 2268,
+ VCMPGTSW = 2269,
+ VCMPGTSW_rec = 2270,
+ VCMPGTUB = 2271,
+ VCMPGTUB_rec = 2272,
+ VCMPGTUD = 2273,
+ VCMPGTUD_rec = 2274,
+ VCMPGTUH = 2275,
+ VCMPGTUH_rec = 2276,
+ VCMPGTUQ = 2277,
+ VCMPGTUQ_rec = 2278,
+ VCMPGTUW = 2279,
+ VCMPGTUW_rec = 2280,
+ VCMPNEB = 2281,
+ VCMPNEB_rec = 2282,
+ VCMPNEH = 2283,
+ VCMPNEH_rec = 2284,
+ VCMPNEW = 2285,
+ VCMPNEW_rec = 2286,
+ VCMPNEZB = 2287,
+ VCMPNEZB_rec = 2288,
+ VCMPNEZH = 2289,
+ VCMPNEZH_rec = 2290,
+ VCMPNEZW = 2291,
+ VCMPNEZW_rec = 2292,
+ VCMPSQ = 2293,
+ VCMPUQ = 2294,
+ VCNTMBB = 2295,
+ VCNTMBD = 2296,
+ VCNTMBH = 2297,
+ VCNTMBW = 2298,
+ VCTSXS = 2299,
+ VCTSXS_0 = 2300,
+ VCTUXS = 2301,
+ VCTUXS_0 = 2302,
+ VCTZB = 2303,
+ VCTZD = 2304,
+ VCTZDM = 2305,
+ VCTZH = 2306,
+ VCTZLSBB = 2307,
+ VCTZW = 2308,
+ VDIVESD = 2309,
+ VDIVESQ = 2310,
+ VDIVESW = 2311,
+ VDIVEUD = 2312,
+ VDIVEUQ = 2313,
+ VDIVEUW = 2314,
+ VDIVSD = 2315,
+ VDIVSQ = 2316,
+ VDIVSW = 2317,
+ VDIVUD = 2318,
+ VDIVUQ = 2319,
+ VDIVUW = 2320,
+ VEQV = 2321,
+ VEXPANDBM = 2322,
+ VEXPANDDM = 2323,
+ VEXPANDHM = 2324,
+ VEXPANDQM = 2325,
+ VEXPANDWM = 2326,
+ VEXPTEFP = 2327,
+ VEXTDDVLX = 2328,
+ VEXTDDVRX = 2329,
+ VEXTDUBVLX = 2330,
+ VEXTDUBVRX = 2331,
+ VEXTDUHVLX = 2332,
+ VEXTDUHVRX = 2333,
+ VEXTDUWVLX = 2334,
+ VEXTDUWVRX = 2335,
+ VEXTRACTBM = 2336,
+ VEXTRACTD = 2337,
+ VEXTRACTDM = 2338,
+ VEXTRACTHM = 2339,
+ VEXTRACTQM = 2340,
+ VEXTRACTUB = 2341,
+ VEXTRACTUH = 2342,
+ VEXTRACTUW = 2343,
+ VEXTRACTWM = 2344,
+ VEXTSB2D = 2345,
+ VEXTSB2Ds = 2346,
+ VEXTSB2W = 2347,
+ VEXTSB2Ws = 2348,
+ VEXTSD2Q = 2349,
+ VEXTSH2D = 2350,
+ VEXTSH2Ds = 2351,
+ VEXTSH2W = 2352,
+ VEXTSH2Ws = 2353,
+ VEXTSW2D = 2354,
+ VEXTSW2Ds = 2355,
+ VEXTUBLX = 2356,
+ VEXTUBRX = 2357,
+ VEXTUHLX = 2358,
+ VEXTUHRX = 2359,
+ VEXTUWLX = 2360,
+ VEXTUWRX = 2361,
+ VGBBD = 2362,
+ VGNB = 2363,
+ VINSBLX = 2364,
+ VINSBRX = 2365,
+ VINSBVLX = 2366,
+ VINSBVRX = 2367,
+ VINSD = 2368,
+ VINSDLX = 2369,
+ VINSDRX = 2370,
+ VINSERTB = 2371,
+ VINSERTD = 2372,
+ VINSERTH = 2373,
+ VINSERTW = 2374,
+ VINSHLX = 2375,
+ VINSHRX = 2376,
+ VINSHVLX = 2377,
+ VINSHVRX = 2378,
+ VINSW = 2379,
+ VINSWLX = 2380,
+ VINSWRX = 2381,
+ VINSWVLX = 2382,
+ VINSWVRX = 2383,
+ VLOGEFP = 2384,
+ VMADDFP = 2385,
+ VMAXFP = 2386,
+ VMAXSB = 2387,
+ VMAXSD = 2388,
+ VMAXSH = 2389,
+ VMAXSW = 2390,
+ VMAXUB = 2391,
+ VMAXUD = 2392,
+ VMAXUH = 2393,
+ VMAXUW = 2394,
+ VMHADDSHS = 2395,
+ VMHRADDSHS = 2396,
+ VMINFP = 2397,
+ VMINSB = 2398,
+ VMINSD = 2399,
+ VMINSH = 2400,
+ VMINSW = 2401,
+ VMINUB = 2402,
+ VMINUD = 2403,
+ VMINUH = 2404,
+ VMINUW = 2405,
+ VMLADDUHM = 2406,
+ VMODSD = 2407,
+ VMODSQ = 2408,
+ VMODSW = 2409,
+ VMODUD = 2410,
+ VMODUQ = 2411,
+ VMODUW = 2412,
+ VMRGEW = 2413,
+ VMRGHB = 2414,
+ VMRGHH = 2415,
+ VMRGHW = 2416,
+ VMRGLB = 2417,
+ VMRGLH = 2418,
+ VMRGLW = 2419,
+ VMRGOW = 2420,
+ VMSUMCUD = 2421,
+ VMSUMMBM = 2422,
+ VMSUMSHM = 2423,
+ VMSUMSHS = 2424,
+ VMSUMUBM = 2425,
+ VMSUMUDM = 2426,
+ VMSUMUHM = 2427,
+ VMSUMUHS = 2428,
+ VMUL10CUQ = 2429,
+ VMUL10ECUQ = 2430,
+ VMUL10EUQ = 2431,
+ VMUL10UQ = 2432,
+ VMULESB = 2433,
+ VMULESD = 2434,
+ VMULESH = 2435,
+ VMULESW = 2436,
+ VMULEUB = 2437,
+ VMULEUD = 2438,
+ VMULEUH = 2439,
+ VMULEUW = 2440,
+ VMULHSD = 2441,
+ VMULHSW = 2442,
+ VMULHUD = 2443,
+ VMULHUW = 2444,
+ VMULLD = 2445,
+ VMULOSB = 2446,
+ VMULOSD = 2447,
+ VMULOSH = 2448,
+ VMULOSW = 2449,
+ VMULOUB = 2450,
+ VMULOUD = 2451,
+ VMULOUH = 2452,
+ VMULOUW = 2453,
+ VMULUWM = 2454,
+ VNAND = 2455,
+ VNCIPHER = 2456,
+ VNCIPHERLAST = 2457,
+ VNEGD = 2458,
+ VNEGW = 2459,
+ VNMSUBFP = 2460,
+ VNOR = 2461,
+ VOR = 2462,
+ VORC = 2463,
+ VPDEPD = 2464,
+ VPERM = 2465,
+ VPERMR = 2466,
+ VPERMXOR = 2467,
+ VPEXTD = 2468,
+ VPKPX = 2469,
+ VPKSDSS = 2470,
+ VPKSDUS = 2471,
+ VPKSHSS = 2472,
+ VPKSHUS = 2473,
+ VPKSWSS = 2474,
+ VPKSWUS = 2475,
+ VPKUDUM = 2476,
+ VPKUDUS = 2477,
+ VPKUHUM = 2478,
+ VPKUHUS = 2479,
+ VPKUWUM = 2480,
+ VPKUWUS = 2481,
+ VPMSUMB = 2482,
+ VPMSUMD = 2483,
+ VPMSUMH = 2484,
+ VPMSUMW = 2485,
+ VPOPCNTB = 2486,
+ VPOPCNTD = 2487,
+ VPOPCNTH = 2488,
+ VPOPCNTW = 2489,
+ VPRTYBD = 2490,
+ VPRTYBQ = 2491,
+ VPRTYBW = 2492,
+ VREFP = 2493,
+ VRFIM = 2494,
+ VRFIN = 2495,
+ VRFIP = 2496,
+ VRFIZ = 2497,
+ VRLB = 2498,
+ VRLD = 2499,
+ VRLDMI = 2500,
+ VRLDNM = 2501,
+ VRLH = 2502,
+ VRLQ = 2503,
+ VRLQMI = 2504,
+ VRLQNM = 2505,
+ VRLW = 2506,
+ VRLWMI = 2507,
+ VRLWNM = 2508,
+ VRSQRTEFP = 2509,
+ VSBOX = 2510,
+ VSEL = 2511,
+ VSHASIGMAD = 2512,
+ VSHASIGMAW = 2513,
+ VSL = 2514,
+ VSLB = 2515,
+ VSLD = 2516,
+ VSLDBI = 2517,
+ VSLDOI = 2518,
+ VSLH = 2519,
+ VSLO = 2520,
+ VSLQ = 2521,
+ VSLV = 2522,
+ VSLW = 2523,
+ VSPLTB = 2524,
+ VSPLTBs = 2525,
+ VSPLTH = 2526,
+ VSPLTHs = 2527,
+ VSPLTISB = 2528,
+ VSPLTISH = 2529,
+ VSPLTISW = 2530,
+ VSPLTW = 2531,
+ VSR = 2532,
+ VSRAB = 2533,
+ VSRAD = 2534,
+ VSRAH = 2535,
+ VSRAQ = 2536,
+ VSRAW = 2537,
+ VSRB = 2538,
+ VSRD = 2539,
+ VSRDBI = 2540,
+ VSRH = 2541,
+ VSRO = 2542,
+ VSRQ = 2543,
+ VSRV = 2544,
+ VSRW = 2545,
+ VSTRIBL = 2546,
+ VSTRIBL_rec = 2547,
+ VSTRIBR = 2548,
+ VSTRIBR_rec = 2549,
+ VSTRIHL = 2550,
+ VSTRIHL_rec = 2551,
+ VSTRIHR = 2552,
+ VSTRIHR_rec = 2553,
+ VSUBCUQ = 2554,
+ VSUBCUW = 2555,
+ VSUBECUQ = 2556,
+ VSUBEUQM = 2557,
+ VSUBFP = 2558,
+ VSUBSBS = 2559,
+ VSUBSHS = 2560,
+ VSUBSWS = 2561,
+ VSUBUBM = 2562,
+ VSUBUBS = 2563,
+ VSUBUDM = 2564,
+ VSUBUHM = 2565,
+ VSUBUHS = 2566,
+ VSUBUQM = 2567,
+ VSUBUWM = 2568,
+ VSUBUWS = 2569,
+ VSUM2SWS = 2570,
+ VSUM4SBS = 2571,
+ VSUM4SHS = 2572,
+ VSUM4UBS = 2573,
+ VSUMSWS = 2574,
+ VUCMPRHB = 2575,
+ VUCMPRHH = 2576,
+ VUCMPRHN = 2577,
+ VUCMPRLB = 2578,
+ VUCMPRLH = 2579,
+ VUCMPRLN = 2580,
+ VUPKHPX = 2581,
+ VUPKHSB = 2582,
+ VUPKHSH = 2583,
+ VUPKHSNTOB = 2584,
+ VUPKHSW = 2585,
+ VUPKINT4TOBF16 = 2586,
+ VUPKINT4TOFP32 = 2587,
+ VUPKINT8TOBF16 = 2588,
+ VUPKINT8TOFP32 = 2589,
+ VUPKLPX = 2590,
+ VUPKLSB = 2591,
+ VUPKLSH = 2592,
+ VUPKLSNTOB = 2593,
+ VUPKLSW = 2594,
+ VXOR = 2595,
+ V_SET0 = 2596,
+ V_SET0B = 2597,
+ V_SET0H = 2598,
+ V_SETALLONES = 2599,
+ V_SETALLONESB = 2600,
+ V_SETALLONESH = 2601,
+ WAIT = 2602,
+ WAITP10 = 2603,
+ WRTEE = 2604,
+ WRTEEI = 2605,
+ XOR = 2606,
+ XOR8 = 2607,
+ XOR8_rec = 2608,
+ XORI = 2609,
+ XORI8 = 2610,
+ XORIS = 2611,
+ XORIS8 = 2612,
+ XOR_rec = 2613,
+ XSABSDP = 2614,
+ XSABSQP = 2615,
+ XSADDADDSUQM = 2616,
+ XSADDADDUQM = 2617,
+ XSADDDP = 2618,
+ XSADDQP = 2619,
+ XSADDQPO = 2620,
+ XSADDSP = 2621,
+ XSADDSUBSUQM = 2622,
+ XSADDSUBUQM = 2623,
+ XSCMPEQDP = 2624,
+ XSCMPEQQP = 2625,
+ XSCMPEXPDP = 2626,
+ XSCMPEXPQP = 2627,
+ XSCMPGEDP = 2628,
+ XSCMPGEQP = 2629,
+ XSCMPGTDP = 2630,
+ XSCMPGTQP = 2631,
+ XSCMPODP = 2632,
+ XSCMPOQP = 2633,
+ XSCMPUDP = 2634,
+ XSCMPUQP = 2635,
+ XSCPSGNDP = 2636,
+ XSCPSGNQP = 2637,
+ XSCVDPHP = 2638,
+ XSCVDPQP = 2639,
+ XSCVDPSP = 2640,
+ XSCVDPSPN = 2641,
+ XSCVDPSXDS = 2642,
+ XSCVDPSXDSs = 2643,
+ XSCVDPSXWS = 2644,
+ XSCVDPSXWSs = 2645,
+ XSCVDPUXDS = 2646,
+ XSCVDPUXDSs = 2647,
+ XSCVDPUXWS = 2648,
+ XSCVDPUXWSs = 2649,
+ XSCVHPDP = 2650,
+ XSCVQPDP = 2651,
+ XSCVQPDPO = 2652,
+ XSCVQPSDZ = 2653,
+ XSCVQPSQZ = 2654,
+ XSCVQPSWZ = 2655,
+ XSCVQPUDZ = 2656,
+ XSCVQPUQZ = 2657,
+ XSCVQPUWZ = 2658,
+ XSCVSDQP = 2659,
+ XSCVSPDP = 2660,
+ XSCVSPDPN = 2661,
+ XSCVSQQP = 2662,
+ XSCVSXDDP = 2663,
+ XSCVSXDSP = 2664,
+ XSCVUDQP = 2665,
+ XSCVUQQP = 2666,
+ XSCVUXDDP = 2667,
+ XSCVUXDSP = 2668,
+ XSDIVDP = 2669,
+ XSDIVQP = 2670,
+ XSDIVQPO = 2671,
+ XSDIVSP = 2672,
+ XSIEXPDP = 2673,
+ XSIEXPQP = 2674,
+ XSMADDADP = 2675,
+ XSMADDASP = 2676,
+ XSMADDMDP = 2677,
+ XSMADDMSP = 2678,
+ XSMADDQP = 2679,
+ XSMADDQPO = 2680,
+ XSMAXCDP = 2681,
+ XSMAXCQP = 2682,
+ XSMAXDP = 2683,
+ XSMAXJDP = 2684,
+ XSMERGE2T1UQM = 2685,
+ XSMERGE2T2UQM = 2686,
+ XSMERGE2T3UQM = 2687,
+ XSMERGE3T1UQM = 2688,
+ XSMINCDP = 2689,
+ XSMINCQP = 2690,
+ XSMINDP = 2691,
+ XSMINJDP = 2692,
+ XSMSUBADP = 2693,
+ XSMSUBASP = 2694,
+ XSMSUBMDP = 2695,
+ XSMSUBMSP = 2696,
+ XSMSUBQP = 2697,
+ XSMSUBQPO = 2698,
+ XSMULDP = 2699,
+ XSMULQP = 2700,
+ XSMULQPO = 2701,
+ XSMULSP = 2702,
+ XSNABSDP = 2703,
+ XSNABSDPs = 2704,
+ XSNABSQP = 2705,
+ XSNEGDP = 2706,
+ XSNEGQP = 2707,
+ XSNMADDADP = 2708,
+ XSNMADDASP = 2709,
+ XSNMADDMDP = 2710,
+ XSNMADDMSP = 2711,
+ XSNMADDQP = 2712,
+ XSNMADDQPO = 2713,
+ XSNMSUBADP = 2714,
+ XSNMSUBASP = 2715,
+ XSNMSUBMDP = 2716,
+ XSNMSUBMSP = 2717,
+ XSNMSUBQP = 2718,
+ XSNMSUBQPO = 2719,
+ XSRDPI = 2720,
+ XSRDPIC = 2721,
+ XSRDPIM = 2722,
+ XSRDPIP = 2723,
+ XSRDPIZ = 2724,
+ XSREBASE2T1UQM = 2725,
+ XSREBASE2T2UQM = 2726,
+ XSREBASE2T3UQM = 2727,
+ XSREBASE2T4UQM = 2728,
+ XSREBASE3T1UQM = 2729,
+ XSREBASE3T2UQM = 2730,
+ XSREBASE3T3UQM = 2731,
+ XSREDP = 2732,
+ XSRESP = 2733,
+ XSRQPI = 2734,
+ XSRQPIX = 2735,
+ XSRQPXP = 2736,
+ XSRSP = 2737,
+ XSRSQRTEDP = 2738,
+ XSRSQRTESP = 2739,
+ XSSQRTDP = 2740,
+ XSSQRTQP = 2741,
+ XSSQRTQPO = 2742,
+ XSSQRTSP = 2743,
+ XSSUBDP = 2744,
+ XSSUBQP = 2745,
+ XSSUBQPO = 2746,
+ XSSUBSP = 2747,
+ XSTDIVDP = 2748,
+ XSTSQRTDP = 2749,
+ XSTSTDCDP = 2750,
+ XSTSTDCQP = 2751,
+ XSTSTDCSP = 2752,
+ XSXEXPDP = 2753,
+ XSXEXPQP = 2754,
+ XSXSIGDP = 2755,
+ XSXSIGQP = 2756,
+ XVABSDP = 2757,
+ XVABSSP = 2758,
+ XVADDDP = 2759,
+ XVADDSP = 2760,
+ XVADDUHM = 2761,
+ XVADDUWM = 2762,
+ XVBF16GER2 = 2763,
+ XVBF16GER2NN = 2764,
+ XVBF16GER2NP = 2765,
+ XVBF16GER2PN = 2766,
+ XVBF16GER2PP = 2767,
+ XVBF16GER2W = 2768,
+ XVBF16GER2WNN = 2769,
+ XVBF16GER2WNP = 2770,
+ XVBF16GER2WPN = 2771,
+ XVBF16GER2WPP = 2772,
+ XVCMPEQDP = 2773,
+ XVCMPEQDP_rec = 2774,
+ XVCMPEQSP = 2775,
+ XVCMPEQSP_rec = 2776,
+ XVCMPGEDP = 2777,
+ XVCMPGEDP_rec = 2778,
+ XVCMPGESP = 2779,
+ XVCMPGESP_rec = 2780,
+ XVCMPGTDP = 2781,
+ XVCMPGTDP_rec = 2782,
+ XVCMPGTSP = 2783,
+ XVCMPGTSP_rec = 2784,
+ XVCPSGNDP = 2785,
+ XVCPSGNSP = 2786,
+ XVCVBF16SPN = 2787,
+ XVCVDPSP = 2788,
+ XVCVDPSXDS = 2789,
+ XVCVDPSXWS = 2790,
+ XVCVDPUXDS = 2791,
+ XVCVDPUXWS = 2792,
+ XVCVHPSP = 2793,
+ XVCVSPBF16 = 2794,
+ XVCVSPDP = 2795,
+ XVCVSPHP = 2796,
+ XVCVSPSXDS = 2797,
+ XVCVSPSXWS = 2798,
+ XVCVSPUXDS = 2799,
+ XVCVSPUXWS = 2800,
+ XVCVSXDDP = 2801,
+ XVCVSXDSP = 2802,
+ XVCVSXWDP = 2803,
+ XVCVSXWSP = 2804,
+ XVCVUXDDP = 2805,
+ XVCVUXDSP = 2806,
+ XVCVUXWDP = 2807,
+ XVCVUXWSP = 2808,
+ XVDIVDP = 2809,
+ XVDIVSP = 2810,
+ XVF16GER2 = 2811,
+ XVF16GER2NN = 2812,
+ XVF16GER2NP = 2813,
+ XVF16GER2PN = 2814,
+ XVF16GER2PP = 2815,
+ XVF16GER2W = 2816,
+ XVF16GER2WNN = 2817,
+ XVF16GER2WNP = 2818,
+ XVF16GER2WPN = 2819,
+ XVF16GER2WPP = 2820,
+ XVF32GER = 2821,
+ XVF32GERNN = 2822,
+ XVF32GERNP = 2823,
+ XVF32GERPN = 2824,
+ XVF32GERPP = 2825,
+ XVF32GERW = 2826,
+ XVF32GERWNN = 2827,
+ XVF32GERWNP = 2828,
+ XVF32GERWPN = 2829,
+ XVF32GERWPP = 2830,
+ XVF64GER = 2831,
+ XVF64GERNN = 2832,
+ XVF64GERNP = 2833,
+ XVF64GERPN = 2834,
+ XVF64GERPP = 2835,
+ XVF64GERW = 2836,
+ XVF64GERWNN = 2837,
+ XVF64GERWNP = 2838,
+ XVF64GERWPN = 2839,
+ XVF64GERWPP = 2840,
+ XVI16GER2 = 2841,
+ XVI16GER2PP = 2842,
+ XVI16GER2S = 2843,
+ XVI16GER2SPP = 2844,
+ XVI16GER2SW = 2845,
+ XVI16GER2SWPP = 2846,
+ XVI16GER2W = 2847,
+ XVI16GER2WPP = 2848,
+ XVI4GER8 = 2849,
+ XVI4GER8PP = 2850,
+ XVI4GER8W = 2851,
+ XVI4GER8WPP = 2852,
+ XVI8GER4 = 2853,
+ XVI8GER4PP = 2854,
+ XVI8GER4SPP = 2855,
+ XVI8GER4W = 2856,
+ XVI8GER4WPP = 2857,
+ XVI8GER4WSPP = 2858,
+ XVIEXPDP = 2859,
+ XVIEXPSP = 2860,
+ XVMADDADP = 2861,
+ XVMADDASP = 2862,
+ XVMADDMDP = 2863,
+ XVMADDMSP = 2864,
+ XVMAXDP = 2865,
+ XVMAXSP = 2866,
+ XVMINDP = 2867,
+ XVMINSP = 2868,
+ XVMSUBADP = 2869,
+ XVMSUBASP = 2870,
+ XVMSUBMDP = 2871,
+ XVMSUBMSP = 2872,
+ XVMULDP = 2873,
+ XVMULHSH = 2874,
+ XVMULHSW = 2875,
+ XVMULHUH = 2876,
+ XVMULHUW = 2877,
+ XVMULSP = 2878,
+ XVMULUHM = 2879,
+ XVMULUWM = 2880,
+ XVNABSDP = 2881,
+ XVNABSSP = 2882,
+ XVNEGDP = 2883,
+ XVNEGSP = 2884,
+ XVNMADDADP = 2885,
+ XVNMADDASP = 2886,
+ XVNMADDMDP = 2887,
+ XVNMADDMSP = 2888,
+ XVNMSUBADP = 2889,
+ XVNMSUBASP = 2890,
+ XVNMSUBMDP = 2891,
+ XVNMSUBMSP = 2892,
+ XVRDPI = 2893,
+ XVRDPIC = 2894,
+ XVRDPIM = 2895,
+ XVRDPIP = 2896,
+ XVRDPIZ = 2897,
+ XVREDP = 2898,
+ XVRESP = 2899,
+ XVRLW = 2900,
+ XVRSPI = 2901,
+ XVRSPIC = 2902,
+ XVRSPIM = 2903,
+ XVRSPIP = 2904,
+ XVRSPIZ = 2905,
+ XVRSQRTEDP = 2906,
+ XVRSQRTESP = 2907,
+ XVSQRTDP = 2908,
+ XVSQRTSP = 2909,
+ XVSUBDP = 2910,
+ XVSUBSP = 2911,
+ XVSUBUHM = 2912,
+ XVSUBUWM = 2913,
+ XVTDIVDP = 2914,
+ XVTDIVSP = 2915,
+ XVTLSBB = 2916,
+ XVTSQRTDP = 2917,
+ XVTSQRTSP = 2918,
+ XVTSTDCDP = 2919,
+ XVTSTDCSP = 2920,
+ XVXEXPDP = 2921,
+ XVXEXPSP = 2922,
+ XVXSIGDP = 2923,
+ XVXSIGSP = 2924,
+ XXAESDECP = 2925,
+ XXAESENCP = 2926,
+ XXAESGENLKP = 2927,
+ XXBLENDVB = 2928,
+ XXBLENDVD = 2929,
+ XXBLENDVH = 2930,
+ XXBLENDVW = 2931,
+ XXBRD = 2932,
+ XXBRH = 2933,
+ XXBRQ = 2934,
+ XXBRW = 2935,
+ XXEVAL = 2936,
+ XXEXTRACTUW = 2937,
+ XXGENPCVBM = 2938,
+ XXGENPCVDM = 2939,
+ XXGENPCVHM = 2940,
+ XXGENPCVWM = 2941,
+ XXGFMUL128 = 2942,
+ XXINSERTW = 2943,
+ XXLAND = 2944,
+ XXLANDC = 2945,
+ XXLEQV = 2946,
+ XXLEQVOnes = 2947,
+ XXLNAND = 2948,
+ XXLNOR = 2949,
+ XXLOR = 2950,
+ XXLORC = 2951,
+ XXLORf = 2952,
+ XXLXOR = 2953,
+ XXLXORdpz = 2954,
+ XXLXORspz = 2955,
+ XXLXORz = 2956,
+ XXMFACC = 2957,
+ XXMFACCW = 2958,
+ XXMRGHW = 2959,
+ XXMRGLW = 2960,
+ XXMTACC = 2961,
+ XXMTACCW = 2962,
+ XXMULMUL = 2963,
+ XXMULMULHIADD = 2964,
+ XXMULMULLOADD = 2965,
+ XXPERM = 2966,
+ XXPERMDI = 2967,
+ XXPERMDIs = 2968,
+ XXPERMR = 2969,
+ XXPERMX = 2970,
+ XXSEL = 2971,
+ XXSETACCZ = 2972,
+ XXSLDWI = 2973,
+ XXSLDWIs = 2974,
+ XXSPLTI32DX = 2975,
+ XXSPLTIB = 2976,
+ XXSPLTIDP = 2977,
+ XXSPLTIW = 2978,
+ XXSPLTW = 2979,
+ XXSPLTWs = 2980,
+ XXSSUMUDM = 2981,
+ XXSSUMUDMC = 2982,
+ XXSSUMUDMCEXT = 2983,
+ gBC = 2984,
+ gBCA = 2985,
+ gBCAat = 2986,
+ gBCCTR = 2987,
+ gBCCTRL = 2988,
+ gBCL = 2989,
+ gBCLA = 2990,
+ gBCLAat = 2991,
+ gBCLR = 2992,
+ gBCLRL = 2993,
+ gBCLat = 2994,
+ gBCat = 2995,
+ INSTRUCTION_LIST_END = 2996,
};
}
}
diff --git a/deps/LIEF/include/LIEF/asm/powerpc/operands.hpp b/deps/LIEF/include/LIEF/asm/powerpc/operands.hpp
new file mode 100644
index 00000000000..ec280f53a00
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/powerpc/operands.hpp
@@ -0,0 +1,22 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ASM_POWERPC_OPERANDS_H
+#define LIEF_ASM_POWERPC_OPERANDS_H
+#include <LIEF/asm/powerpc/operands/Register.hpp>
+#include <LIEF/asm/powerpc/operands/Immediate.hpp>
+#include <LIEF/asm/powerpc/operands/PCRelative.hpp>
+#include <LIEF/asm/powerpc/operands/Memory.hpp>
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/powerpc/operands/Immediate.hpp b/deps/LIEF/include/LIEF/asm/powerpc/operands/Immediate.hpp
new file mode 100644
index 00000000000..42da450f77e
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/powerpc/operands/Immediate.hpp
@@ -0,0 +1,49 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ASM_POWERPC_OPERAND_IMM_H
+#define LIEF_ASM_POWERPC_OPERAND_IMM_H
+#include "LIEF/asm/powerpc/Operand.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace powerpc {
+/// Namespace that wraps the different PowerPC operands
+namespace operands {
+
+
+/// This class represents an immediate operand (i.e. a constant)
+///
+/// For instance:
+///
+/// ```text
+/// li 3, 8
+/// |
+/// +---> Immediate(8)
+/// ```
+class LIEF_API Immediate : public Operand {
+ public:
+ using Operand::Operand;
+
+ /// The constant value wrapped by this operand
+ int64_t value() const;
+
+ static bool classof(const Operand* op);
+ ~Immediate() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/powerpc/operands/Memory.hpp b/deps/LIEF/include/LIEF/asm/powerpc/operands/Memory.hpp
new file mode 100644
index 00000000000..1a87ef6f19e
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/powerpc/operands/Memory.hpp
@@ -0,0 +1,88 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ASM_POWERPC_OPERAND_MEMORY_H
+#define LIEF_ASM_POWERPC_OPERAND_MEMORY_H
+#include "LIEF/asm/powerpc/Operand.hpp"
+#include "LIEF/asm/powerpc/registers.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace powerpc {
+namespace operands {
+
+/// This class represents a memory operand.
+///
+/// PowerPC has two addressing forms:
+///
+/// ```text
+/// lwz 3, 8(4) lwzx 3, 4, 5
+/// | | | | |
+/// +------+ +---+ +------+ | +---+
+/// | | | | |
+/// v v v v v
+/// Disp Base Reg Base Index
+/// ```
+class LIEF_API Memory : public Operand {
+ public:
+ using Operand::Operand;
+
+ /// Wraps the memory offset as either an integer displacement or an index
+ /// register.
+ struct offset_t {
+ /// Enum type used to discriminate the anonymous union
+ enum class TYPE {
+ NONE = 0,
+ /// The *union* holds the REG attribute
+ REG,
+ /// The *union* holds the `displacement` attribute (`int64_t`)
+ DISP,
+ };
+
+ union {
+ /// Register offset (index register)
+ REG reg;
+
+ /// Integer offset
+ int64_t displacement = 0;
+ };
+ TYPE type = TYPE::NONE;
+ };
+
+ /// The base register.
+ ///
+ /// For `lwz 3, 8(4)` it would return `4`.
+ REG base() const;
+
+ /// The addressing offset.
+ ///
+ /// It can be either:
+ /// - An index register (e.g. `lwzx 3, 4, 5`)
+ /// - A displacement (e.g. `lwz 3, 8(4)`)
+ offset_t offset() const;
+
+ /// @private
+ /// Whether the addressing offset is an index register (`true`) rather than
+ /// a constant displacement (`false`). This is redundant with offset() (which
+ /// already discriminates the two) and is kept as an internal helper.
+ LIEF_LOCAL bool has_index() const;
+
+ static bool classof(const Operand* op);
+ ~Memory() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/powerpc/operands/PCRelative.hpp b/deps/LIEF/include/LIEF/asm/powerpc/operands/PCRelative.hpp
new file mode 100644
index 00000000000..a69c7ebf670
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/powerpc/operands/PCRelative.hpp
@@ -0,0 +1,47 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ASM_POWERPC_OPERAND_PCREL_H
+#define LIEF_ASM_POWERPC_OPERAND_PCREL_H
+#include "LIEF/asm/powerpc/Operand.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace powerpc {
+namespace operands {
+
+/// This class represents a PC-relative operand.
+///
+/// ```text
+/// bl 0x100
+/// |
+/// v
+/// PC Relative operand
+/// ```
+class LIEF_API PCRelative : public Operand {
+ public:
+ using Operand::Operand;
+
+ /// The effective value that is relative to the current `pc` register
+ int64_t value() const;
+
+ static bool classof(const Operand* op);
+
+ ~PCRelative() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/powerpc/operands/Register.hpp b/deps/LIEF/include/LIEF/asm/powerpc/operands/Register.hpp
new file mode 100644
index 00000000000..b511f9921ff
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/powerpc/operands/Register.hpp
@@ -0,0 +1,51 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ASM_POWERPC_OPERAND_REG_H
+#define LIEF_ASM_POWERPC_OPERAND_REG_H
+
+#include "LIEF/asm/powerpc/Operand.hpp"
+#include "LIEF/asm/powerpc/registers.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace powerpc {
+namespace operands {
+
+/// This class represents a register operand.
+///
+/// For instance:
+///
+/// ```text
+/// add 3, 4, 5
+/// | | |
+/// | | +---------> Register(5)
+/// | +------------> Register(4)
+/// +---------------> Register(3)
+/// ```
+class LIEF_API Register : public Operand {
+ public:
+ using Operand::Operand;
+
+ /// The effective REG wrapped by this operand
+ REG value() const;
+
+ static bool classof(const Operand* op);
+ ~Register() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/powerpc/registers.hpp b/deps/LIEF/include/LIEF/asm/powerpc/registers.hpp
index c1005c4279d..ee61142b002 100644
--- a/deps/LIEF/include/LIEF/asm/powerpc/registers.hpp
+++ b/deps/LIEF/include/LIEF/asm/powerpc/registers.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/riscv.hpp b/deps/LIEF/include/LIEF/asm/riscv.hpp
index 0bcdd6ceb96..d1d9a3cb032 100644
--- a/deps/LIEF/include/LIEF/asm/riscv.hpp
+++ b/deps/LIEF/include/LIEF/asm/riscv.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,4 +18,5 @@
#include <LIEF/asm/riscv/Instruction.hpp>
#include <LIEF/asm/riscv/opcodes.hpp>
#include <LIEF/asm/riscv/registers.hpp>
+#include <LIEF/asm/riscv/operands.hpp>
#endif
diff --git a/deps/LIEF/include/LIEF/asm/riscv/Instruction.hpp b/deps/LIEF/include/LIEF/asm/riscv/Instruction.hpp
index e0da9480afc..d4dc4cc7f9d 100644
--- a/deps/LIEF/include/LIEF/asm/riscv/Instruction.hpp
+++ b/deps/LIEF/include/LIEF/asm/riscv/Instruction.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,9 +15,11 @@
#ifndef LIEF_ASM_RISCV_INST_H
#define LIEF_ASM_RISCV_INST_H
#include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/asm/Instruction.hpp"
#include "LIEF/asm/riscv/opcodes.hpp"
+#include "LIEF/asm/riscv/Operand.hpp"
namespace LIEF {
namespace assembly {
@@ -30,9 +32,14 @@ class LIEF_API Instruction : public assembly::Instruction {
public:
using assembly::Instruction::Instruction;
+ using operands_it = iterator_range<Operand::Iterator>;
+
/// The instruction opcode as defined in LLVM
OPCODE opcode() const;
+ /// Iterator over the operands of the current instruction
+ operands_it operands() const LIEF_LIFETIMEBOUND;
+
/// True if `inst` is an **effective** instance of riscv::Instruction
static bool classof(const assembly::Instruction* inst);
diff --git a/deps/LIEF/include/LIEF/asm/riscv/Operand.hpp b/deps/LIEF/include/LIEF/asm/riscv/Operand.hpp
new file mode 100644
index 00000000000..4ffd2df6ba7
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/riscv/Operand.hpp
@@ -0,0 +1,136 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ASM_RISCV_OPERAND_H
+#define LIEF_ASM_RISCV_OPERAND_H
+#include "LIEF/visibility.h"
+#include "LIEF/iterators.hpp"
+#include "LIEF/compiler_attributes.hpp"
+
+#include <memory>
+#include <string>
+#include <cassert>
+
+#include <ostream>
+
+namespace LIEF {
+namespace assembly {
+namespace riscv {
+
+namespace details {
+class Operand;
+class OperandIt;
+}
+
+/// This class represents an operand for a RISC-V instruction
+class LIEF_API Operand {
+ public:
+ /// **Forward** iterator that lazily disassembles riscv Operand.
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::forward_iterator_tag, Operand,
+ std::ptrdiff_t, const Operand*, const Operand&> {
+ public:
+ using implementation = details::OperandIt;
+ using iterator_facade_base::operator++;
+
+ LIEF_API Iterator();
+
+ LIEF_API Iterator(std::unique_ptr<details::OperandIt> impl);
+ LIEF_API Iterator(const Iterator&);
+ LIEF_API Iterator& operator=(const Iterator&);
+
+ LIEF_API Iterator(Iterator&&) noexcept;
+ LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+ LIEF_API ~Iterator();
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator++() LIEF_LIFETIMEBOUND;
+
+ friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
+
+ friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+ return !(LHS == RHS);
+ }
+
+ LIEF_API const Operand& operator*() const LIEF_LIFETIMEBOUND;
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const Operand* operator->() const LIEF_LIFETIMEBOUND;
+
+ /// Transfer ownership of the operand at the current position to the
+ /// caller. Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<Operand> yield();
+
+ private:
+ void load() const;
+
+ std::unique_ptr<details::OperandIt> impl_;
+ mutable std::unique_ptr<Operand> cached_;
+ };
+
+ /// Pretty representation of the operand
+ std::string to_string() const;
+
+ /// This function can be used to **down cast** an Operand instance:
+ ///
+ /// ```cpp
+ /// std::unique_ptr<assembly::riscv::Operand> op = ...;
+ /// if (const auto* imm = inst->as<assembly::riscv::operands::Immediate>()) {
+ /// const int64_t value = imm->value();
+ /// }
+ /// ```
+ template<class T>
+ const T* as() const {
+ static_assert(std::is_base_of<Operand, T>::value,
+ "Require Operand inheritance");
+ if (T::classof(this)) {
+ return static_cast<const T*>(this);
+ }
+ return nullptr;
+ }
+
+ virtual ~Operand();
+
+ /// @private
+ static LIEF_LOCAL std::unique_ptr<Operand>
+ create(std::unique_ptr<details::Operand> impl);
+
+ /// @private
+ LIEF_LOCAL const details::Operand& impl() const {
+ assert(impl_ != nullptr);
+ return *impl_;
+ }
+
+ /// @private
+ LIEF_LOCAL details::Operand& impl() {
+ assert(impl_ != nullptr);
+ return *impl_;
+ }
+
+ friend LIEF_API std::ostream& operator<<(std::ostream& os, const Operand& op) {
+ os << op.to_string();
+ return os;
+ }
+
+ protected:
+ LIEF_LOCAL Operand(std::unique_ptr<details::Operand> impl);
+ std::unique_ptr<details::Operand> impl_;
+};
+
+}
+}
+}
+
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/riscv/opcodes.hpp b/deps/LIEF/include/LIEF/asm/riscv/opcodes.hpp
index a586cf8ba13..2b3d2caaf5a 100644
--- a/deps/LIEF/include/LIEF/asm/riscv/opcodes.hpp
+++ b/deps/LIEF/include/LIEF/asm/riscv/opcodes.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
#ifndef LIEF_ASM_RISCV_OPCODE_H
#define LIEF_ASM_RISCV_OPCODE_H
-/* Generated from LLVM: 21.1.0 */
+/* Generated from LLVM: 22.1.8 */
namespace LIEF {
namespace assembly {
@@ -42,14298 +42,16207 @@ enum class OPCODE {
DBG_LABEL = 18,
REG_SEQUENCE = 19,
COPY = 20,
- BUNDLE = 21,
- LIFETIME_START = 22,
- LIFETIME_END = 23,
- PSEUDO_PROBE = 24,
- ARITH_FENCE = 25,
- STACKMAP = 26,
- FENTRY_CALL = 27,
- PATCHPOINT = 28,
- LOAD_STACK_GUARD = 29,
- PREALLOCATED_SETUP = 30,
- PREALLOCATED_ARG = 31,
- STATEPOINT = 32,
- LOCAL_ESCAPE = 33,
- FAULTING_OP = 34,
- PATCHABLE_OP = 35,
- PATCHABLE_FUNCTION_ENTER = 36,
- PATCHABLE_RET = 37,
- PATCHABLE_FUNCTION_EXIT = 38,
- PATCHABLE_TAIL_CALL = 39,
- PATCHABLE_EVENT_CALL = 40,
- PATCHABLE_TYPED_EVENT_CALL = 41,
- ICALL_BRANCH_FUNNEL = 42,
- FAKE_USE = 43,
- MEMBARRIER = 44,
- JUMP_TABLE_DEBUG_INFO = 45,
- CONVERGENCECTRL_ENTRY = 46,
- CONVERGENCECTRL_ANCHOR = 47,
- CONVERGENCECTRL_LOOP = 48,
- CONVERGENCECTRL_GLUE = 49,
- G_ASSERT_SEXT = 50,
- G_ASSERT_ZEXT = 51,
- G_ASSERT_ALIGN = 52,
- G_ADD = 53,
- G_SUB = 54,
- G_MUL = 55,
- G_SDIV = 56,
- G_UDIV = 57,
- G_SREM = 58,
- G_UREM = 59,
- G_SDIVREM = 60,
- G_UDIVREM = 61,
- G_AND = 62,
- G_OR = 63,
- G_XOR = 64,
- G_ABDS = 65,
- G_ABDU = 66,
- G_IMPLICIT_DEF = 67,
- G_PHI = 68,
- G_FRAME_INDEX = 69,
- G_GLOBAL_VALUE = 70,
- G_PTRAUTH_GLOBAL_VALUE = 71,
- G_CONSTANT_POOL = 72,
- G_EXTRACT = 73,
- G_UNMERGE_VALUES = 74,
- G_INSERT = 75,
- G_MERGE_VALUES = 76,
- G_BUILD_VECTOR = 77,
- G_BUILD_VECTOR_TRUNC = 78,
- G_CONCAT_VECTORS = 79,
- G_PTRTOINT = 80,
- G_INTTOPTR = 81,
- G_BITCAST = 82,
- G_FREEZE = 83,
- G_CONSTANT_FOLD_BARRIER = 84,
- G_INTRINSIC_FPTRUNC_ROUND = 85,
- G_INTRINSIC_TRUNC = 86,
- G_INTRINSIC_ROUND = 87,
- G_INTRINSIC_LRINT = 88,
- G_INTRINSIC_LLRINT = 89,
- G_INTRINSIC_ROUNDEVEN = 90,
- G_READCYCLECOUNTER = 91,
- G_READSTEADYCOUNTER = 92,
- G_LOAD = 93,
- G_SEXTLOAD = 94,
- G_ZEXTLOAD = 95,
- G_INDEXED_LOAD = 96,
- G_INDEXED_SEXTLOAD = 97,
- G_INDEXED_ZEXTLOAD = 98,
- G_STORE = 99,
- G_INDEXED_STORE = 100,
- G_ATOMIC_CMPXCHG_WITH_SUCCESS = 101,
- G_ATOMIC_CMPXCHG = 102,
- G_ATOMICRMW_XCHG = 103,
- G_ATOMICRMW_ADD = 104,
- G_ATOMICRMW_SUB = 105,
- G_ATOMICRMW_AND = 106,
- G_ATOMICRMW_NAND = 107,
- G_ATOMICRMW_OR = 108,
- G_ATOMICRMW_XOR = 109,
- G_ATOMICRMW_MAX = 110,
- G_ATOMICRMW_MIN = 111,
- G_ATOMICRMW_UMAX = 112,
- G_ATOMICRMW_UMIN = 113,
- G_ATOMICRMW_FADD = 114,
- G_ATOMICRMW_FSUB = 115,
- G_ATOMICRMW_FMAX = 116,
- G_ATOMICRMW_FMIN = 117,
- G_ATOMICRMW_FMAXIMUM = 118,
- G_ATOMICRMW_FMINIMUM = 119,
- G_ATOMICRMW_UINC_WRAP = 120,
- G_ATOMICRMW_UDEC_WRAP = 121,
- G_ATOMICRMW_USUB_COND = 122,
- G_ATOMICRMW_USUB_SAT = 123,
- G_FENCE = 124,
- G_PREFETCH = 125,
- G_BRCOND = 126,
- G_BRINDIRECT = 127,
- G_INVOKE_REGION_START = 128,
- G_INTRINSIC = 129,
- G_INTRINSIC_W_SIDE_EFFECTS = 130,
- G_INTRINSIC_CONVERGENT = 131,
- G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 132,
- G_ANYEXT = 133,
- G_TRUNC = 134,
- G_TRUNC_SSAT_S = 135,
- G_TRUNC_SSAT_U = 136,
- G_TRUNC_USAT_U = 137,
- G_CONSTANT = 138,
- G_FCONSTANT = 139,
- G_VASTART = 140,
- G_VAARG = 141,
- G_SEXT = 142,
- G_SEXT_INREG = 143,
- G_ZEXT = 144,
- G_SHL = 145,
- G_LSHR = 146,
- G_ASHR = 147,
- G_FSHL = 148,
- G_FSHR = 149,
- G_ROTR = 150,
- G_ROTL = 151,
- G_ICMP = 152,
- G_FCMP = 153,
- G_SCMP = 154,
- G_UCMP = 155,
- G_SELECT = 156,
- G_UADDO = 157,
- G_UADDE = 158,
- G_USUBO = 159,
- G_USUBE = 160,
- G_SADDO = 161,
- G_SADDE = 162,
- G_SSUBO = 163,
- G_SSUBE = 164,
- G_UMULO = 165,
- G_SMULO = 166,
- G_UMULH = 167,
- G_SMULH = 168,
- G_UADDSAT = 169,
- G_SADDSAT = 170,
- G_USUBSAT = 171,
- G_SSUBSAT = 172,
- G_USHLSAT = 173,
- G_SSHLSAT = 174,
- G_SMULFIX = 175,
- G_UMULFIX = 176,
- G_SMULFIXSAT = 177,
- G_UMULFIXSAT = 178,
- G_SDIVFIX = 179,
- G_UDIVFIX = 180,
- G_SDIVFIXSAT = 181,
- G_UDIVFIXSAT = 182,
- G_FADD = 183,
- G_FSUB = 184,
- G_FMUL = 185,
- G_FMA = 186,
- G_FMAD = 187,
- G_FDIV = 188,
- G_FREM = 189,
- G_FPOW = 190,
- G_FPOWI = 191,
- G_FEXP = 192,
- G_FEXP2 = 193,
- G_FEXP10 = 194,
- G_FLOG = 195,
- G_FLOG2 = 196,
- G_FLOG10 = 197,
- G_FLDEXP = 198,
- G_FFREXP = 199,
- G_FNEG = 200,
- G_FPEXT = 201,
- G_FPTRUNC = 202,
- G_FPTOSI = 203,
- G_FPTOUI = 204,
- G_SITOFP = 205,
- G_UITOFP = 206,
- G_FPTOSI_SAT = 207,
- G_FPTOUI_SAT = 208,
- G_FABS = 209,
- G_FCOPYSIGN = 210,
- G_IS_FPCLASS = 211,
- G_FCANONICALIZE = 212,
- G_FMINNUM = 213,
- G_FMAXNUM = 214,
- G_FMINNUM_IEEE = 215,
- G_FMAXNUM_IEEE = 216,
- G_FMINIMUM = 217,
- G_FMAXIMUM = 218,
- G_FMINIMUMNUM = 219,
- G_FMAXIMUMNUM = 220,
- G_GET_FPENV = 221,
- G_SET_FPENV = 222,
- G_RESET_FPENV = 223,
- G_GET_FPMODE = 224,
- G_SET_FPMODE = 225,
- G_RESET_FPMODE = 226,
- G_GET_ROUNDING = 227,
- G_PTR_ADD = 228,
- G_PTRMASK = 229,
- G_SMIN = 230,
- G_SMAX = 231,
- G_UMIN = 232,
- G_UMAX = 233,
- G_ABS = 234,
- G_LROUND = 235,
- G_LLROUND = 236,
- G_BR = 237,
- G_BRJT = 238,
- G_VSCALE = 239,
- G_INSERT_SUBVECTOR = 240,
- G_EXTRACT_SUBVECTOR = 241,
- G_INSERT_VECTOR_ELT = 242,
- G_EXTRACT_VECTOR_ELT = 243,
- G_SHUFFLE_VECTOR = 244,
- G_SPLAT_VECTOR = 245,
- G_STEP_VECTOR = 246,
- G_VECTOR_COMPRESS = 247,
- G_CTTZ = 248,
- G_CTTZ_ZERO_UNDEF = 249,
- G_CTLZ = 250,
- G_CTLZ_ZERO_UNDEF = 251,
- G_CTPOP = 252,
- G_BSWAP = 253,
- G_BITREVERSE = 254,
- G_FCEIL = 255,
- G_FCOS = 256,
- G_FSIN = 257,
- G_FSINCOS = 258,
- G_FTAN = 259,
- G_FACOS = 260,
- G_FASIN = 261,
- G_FATAN = 262,
- G_FATAN2 = 263,
- G_FCOSH = 264,
- G_FSINH = 265,
- G_FTANH = 266,
- G_FSQRT = 267,
- G_FFLOOR = 268,
- G_FRINT = 269,
- G_FNEARBYINT = 270,
- G_ADDRSPACE_CAST = 271,
- G_BLOCK_ADDR = 272,
- G_JUMP_TABLE = 273,
- G_DYN_STACKALLOC = 274,
- G_STACKSAVE = 275,
- G_STACKRESTORE = 276,
- G_STRICT_FADD = 277,
- G_STRICT_FSUB = 278,
- G_STRICT_FMUL = 279,
- G_STRICT_FDIV = 280,
- G_STRICT_FREM = 281,
- G_STRICT_FMA = 282,
- G_STRICT_FSQRT = 283,
- G_STRICT_FLDEXP = 284,
- G_READ_REGISTER = 285,
- G_WRITE_REGISTER = 286,
- G_MEMCPY = 287,
- G_MEMCPY_INLINE = 288,
- G_MEMMOVE = 289,
- G_MEMSET = 290,
- G_BZERO = 291,
- G_TRAP = 292,
- G_DEBUGTRAP = 293,
- G_UBSANTRAP = 294,
- G_VECREDUCE_SEQ_FADD = 295,
- G_VECREDUCE_SEQ_FMUL = 296,
- G_VECREDUCE_FADD = 297,
- G_VECREDUCE_FMUL = 298,
- G_VECREDUCE_FMAX = 299,
- G_VECREDUCE_FMIN = 300,
- G_VECREDUCE_FMAXIMUM = 301,
- G_VECREDUCE_FMINIMUM = 302,
- G_VECREDUCE_ADD = 303,
- G_VECREDUCE_MUL = 304,
- G_VECREDUCE_AND = 305,
- G_VECREDUCE_OR = 306,
- G_VECREDUCE_XOR = 307,
- G_VECREDUCE_SMAX = 308,
- G_VECREDUCE_SMIN = 309,
- G_VECREDUCE_UMAX = 310,
- G_VECREDUCE_UMIN = 311,
- G_SBFX = 312,
- G_UBFX = 313,
- ADJCALLSTACKDOWN = 314,
- ADJCALLSTACKUP = 315,
- BuildPairF64Pseudo = 316,
- G_CLZW = 317,
- G_CTZW = 318,
- G_DIVUW = 319,
- G_DIVW = 320,
- G_FCLASS = 321,
- G_FCVT_WU_RV64 = 322,
- G_FCVT_W_RV64 = 323,
- G_READ_VLENB = 324,
- G_REMUW = 325,
- G_ROLW = 326,
- G_RORW = 327,
- G_SLLW = 328,
- G_SPLAT_VECTOR_SPLIT_I64_VL = 329,
- G_SRAW = 330,
- G_SRLW = 331,
- G_VMCLR_VL = 332,
- G_VMSET_VL = 333,
- G_VMV_V_V_VL = 334,
- G_VSLIDEDOWN_VL = 335,
- G_VSLIDEUP_VL = 336,
- HWASAN_CHECK_MEMACCESS_SHORTGRANULES = 337,
- KCFI_CHECK = 338,
- PROBED_STACKALLOC = 339,
- PROBED_STACKALLOC_DYN = 340,
- PROBED_STACKALLOC_RVV = 341,
- PseudoAddTPRel = 342,
- PseudoAtomicLoadNand32 = 343,
- PseudoAtomicLoadNand64 = 344,
- PseudoBR = 345,
- PseudoBRIND = 346,
- PseudoBRINDNonX7 = 347,
- PseudoBRINDX7 = 348,
- PseudoCALL = 349,
- PseudoCALLIndirect = 350,
- PseudoCALLIndirectNonX7 = 351,
- PseudoCALLIndirectX7 = 352,
- PseudoCALLReg = 353,
- PseudoCCADD = 354,
- PseudoCCADDI = 355,
- PseudoCCADDIW = 356,
- PseudoCCADDW = 357,
- PseudoCCAND = 358,
- PseudoCCANDI = 359,
- PseudoCCANDN = 360,
- PseudoCCMOVGPR = 361,
- PseudoCCMOVGPRNoX0 = 362,
- PseudoCCNDS_BFOS = 363,
- PseudoCCNDS_BFOZ = 364,
- PseudoCCOR = 365,
- PseudoCCORI = 366,
- PseudoCCORN = 367,
- PseudoCCSLL = 368,
- PseudoCCSLLI = 369,
- PseudoCCSLLIW = 370,
- PseudoCCSLLW = 371,
- PseudoCCSRA = 372,
- PseudoCCSRAI = 373,
- PseudoCCSRAIW = 374,
- PseudoCCSRAW = 375,
- PseudoCCSRL = 376,
- PseudoCCSRLI = 377,
- PseudoCCSRLIW = 378,
- PseudoCCSRLW = 379,
- PseudoCCSUB = 380,
- PseudoCCSUBW = 381,
- PseudoCCXNOR = 382,
- PseudoCCXOR = 383,
- PseudoCCXORI = 384,
- PseudoC_ADDI_NOP = 385,
- PseudoCmpXchg32 = 386,
- PseudoCmpXchg64 = 387,
- PseudoFLD = 388,
- PseudoFLH = 389,
- PseudoFLQ = 390,
- PseudoFLW = 391,
- PseudoFROUND_D = 392,
- PseudoFROUND_D_IN32X = 393,
- PseudoFROUND_D_INX = 394,
- PseudoFROUND_H = 395,
- PseudoFROUND_H_INX = 396,
- PseudoFROUND_S = 397,
- PseudoFROUND_S_INX = 398,
- PseudoFSD = 399,
- PseudoFSH = 400,
- PseudoFSQ = 401,
- PseudoFSW = 402,
- PseudoJump = 403,
- PseudoLA = 404,
- PseudoLAImm = 405,
- PseudoLA_TLSDESC = 406,
- PseudoLA_TLS_GD = 407,
- PseudoLA_TLS_IE = 408,
- PseudoLB = 409,
- PseudoLBU = 410,
- PseudoLD = 411,
- PseudoLD_RV32 = 412,
- PseudoLGA = 413,
- PseudoLH = 414,
- PseudoLHU = 415,
- PseudoLI = 416,
- PseudoLLA = 417,
- PseudoLLAImm = 418,
- PseudoLW = 419,
- PseudoLWU = 420,
- PseudoLongBEQ = 421,
- PseudoLongBGE = 422,
- PseudoLongBGEU = 423,
- PseudoLongBLT = 424,
- PseudoLongBLTU = 425,
- PseudoLongBNE = 426,
- PseudoLongQC_BEQI = 427,
- PseudoLongQC_BGEI = 428,
- PseudoLongQC_BGEUI = 429,
- PseudoLongQC_BLTI = 430,
- PseudoLongQC_BLTUI = 431,
- PseudoLongQC_BNEI = 432,
- PseudoLongQC_E_BEQI = 433,
- PseudoLongQC_E_BGEI = 434,
- PseudoLongQC_E_BGEUI = 435,
- PseudoLongQC_E_BLTI = 436,
- PseudoLongQC_E_BLTUI = 437,
- PseudoLongQC_E_BNEI = 438,
- PseudoMV_FPR16INX = 439,
- PseudoMV_FPR32INX = 440,
- PseudoMaskedAtomicLoadAdd32 = 441,
- PseudoMaskedAtomicLoadMax32 = 442,
- PseudoMaskedAtomicLoadMin32 = 443,
- PseudoMaskedAtomicLoadNand32 = 444,
- PseudoMaskedAtomicLoadSub32 = 445,
- PseudoMaskedAtomicLoadUMax32 = 446,
- PseudoMaskedAtomicLoadUMin32 = 447,
- PseudoMaskedAtomicSwap32 = 448,
- PseudoMaskedCmpXchg32 = 449,
- PseudoMovAddr = 450,
- PseudoMovImm = 451,
- PseudoNDS_VD4DOTSU_VV_M1 = 452,
- PseudoNDS_VD4DOTSU_VV_M1_MASK = 453,
- PseudoNDS_VD4DOTSU_VV_M2 = 454,
- PseudoNDS_VD4DOTSU_VV_M2_MASK = 455,
- PseudoNDS_VD4DOTSU_VV_M4 = 456,
- PseudoNDS_VD4DOTSU_VV_M4_MASK = 457,
- PseudoNDS_VD4DOTSU_VV_M8 = 458,
- PseudoNDS_VD4DOTSU_VV_M8_MASK = 459,
- PseudoNDS_VD4DOTSU_VV_MF2 = 460,
- PseudoNDS_VD4DOTSU_VV_MF2_MASK = 461,
- PseudoNDS_VD4DOTS_VV_M1 = 462,
- PseudoNDS_VD4DOTS_VV_M1_MASK = 463,
- PseudoNDS_VD4DOTS_VV_M2 = 464,
- PseudoNDS_VD4DOTS_VV_M2_MASK = 465,
- PseudoNDS_VD4DOTS_VV_M4 = 466,
- PseudoNDS_VD4DOTS_VV_M4_MASK = 467,
- PseudoNDS_VD4DOTS_VV_M8 = 468,
- PseudoNDS_VD4DOTS_VV_M8_MASK = 469,
- PseudoNDS_VD4DOTS_VV_MF2 = 470,
- PseudoNDS_VD4DOTS_VV_MF2_MASK = 471,
- PseudoNDS_VD4DOTU_VV_M1 = 472,
- PseudoNDS_VD4DOTU_VV_M1_MASK = 473,
- PseudoNDS_VD4DOTU_VV_M2 = 474,
- PseudoNDS_VD4DOTU_VV_M2_MASK = 475,
- PseudoNDS_VD4DOTU_VV_M4 = 476,
- PseudoNDS_VD4DOTU_VV_M4_MASK = 477,
- PseudoNDS_VD4DOTU_VV_M8 = 478,
- PseudoNDS_VD4DOTU_VV_M8_MASK = 479,
- PseudoNDS_VD4DOTU_VV_MF2 = 480,
- PseudoNDS_VD4DOTU_VV_MF2_MASK = 481,
- PseudoNDS_VFNCVT_BF16_S_M1 = 482,
- PseudoNDS_VFNCVT_BF16_S_M2 = 483,
- PseudoNDS_VFNCVT_BF16_S_M4 = 484,
- PseudoNDS_VFNCVT_BF16_S_MF2 = 485,
- PseudoNDS_VFNCVT_BF16_S_MF4 = 486,
- PseudoNDS_VFPMADB_VFPR16_M1 = 487,
- PseudoNDS_VFPMADB_VFPR16_M1_MASK = 488,
- PseudoNDS_VFPMADB_VFPR16_M2 = 489,
- PseudoNDS_VFPMADB_VFPR16_M2_MASK = 490,
- PseudoNDS_VFPMADB_VFPR16_M4 = 491,
- PseudoNDS_VFPMADB_VFPR16_M4_MASK = 492,
- PseudoNDS_VFPMADB_VFPR16_M8 = 493,
- PseudoNDS_VFPMADB_VFPR16_M8_MASK = 494,
- PseudoNDS_VFPMADB_VFPR16_MF2 = 495,
- PseudoNDS_VFPMADB_VFPR16_MF2_MASK = 496,
- PseudoNDS_VFPMADB_VFPR16_MF4 = 497,
- PseudoNDS_VFPMADB_VFPR16_MF4_MASK = 498,
- PseudoNDS_VFPMADT_VFPR16_M1 = 499,
- PseudoNDS_VFPMADT_VFPR16_M1_MASK = 500,
- PseudoNDS_VFPMADT_VFPR16_M2 = 501,
- PseudoNDS_VFPMADT_VFPR16_M2_MASK = 502,
- PseudoNDS_VFPMADT_VFPR16_M4 = 503,
- PseudoNDS_VFPMADT_VFPR16_M4_MASK = 504,
- PseudoNDS_VFPMADT_VFPR16_M8 = 505,
- PseudoNDS_VFPMADT_VFPR16_M8_MASK = 506,
- PseudoNDS_VFPMADT_VFPR16_MF2 = 507,
- PseudoNDS_VFPMADT_VFPR16_MF2_MASK = 508,
- PseudoNDS_VFPMADT_VFPR16_MF4 = 509,
- PseudoNDS_VFPMADT_VFPR16_MF4_MASK = 510,
- PseudoNDS_VFWCVT_S_BF16_M1 = 511,
- PseudoNDS_VFWCVT_S_BF16_M2 = 512,
- PseudoNDS_VFWCVT_S_BF16_M4 = 513,
- PseudoNDS_VFWCVT_S_BF16_MF2 = 514,
- PseudoNDS_VFWCVT_S_BF16_MF4 = 515,
- PseudoNDS_VLN8_V_M1 = 516,
- PseudoNDS_VLN8_V_M1_MASK = 517,
- PseudoNDS_VLN8_V_M2 = 518,
- PseudoNDS_VLN8_V_M2_MASK = 519,
- PseudoNDS_VLN8_V_M4 = 520,
- PseudoNDS_VLN8_V_M4_MASK = 521,
- PseudoNDS_VLN8_V_M8 = 522,
- PseudoNDS_VLN8_V_M8_MASK = 523,
- PseudoNDS_VLN8_V_MF2 = 524,
- PseudoNDS_VLN8_V_MF2_MASK = 525,
- PseudoNDS_VLN8_V_MF4 = 526,
- PseudoNDS_VLN8_V_MF4_MASK = 527,
- PseudoNDS_VLN8_V_MF8 = 528,
- PseudoNDS_VLN8_V_MF8_MASK = 529,
- PseudoNDS_VLNU8_V_M1 = 530,
- PseudoNDS_VLNU8_V_M1_MASK = 531,
- PseudoNDS_VLNU8_V_M2 = 532,
- PseudoNDS_VLNU8_V_M2_MASK = 533,
- PseudoNDS_VLNU8_V_M4 = 534,
- PseudoNDS_VLNU8_V_M4_MASK = 535,
- PseudoNDS_VLNU8_V_M8 = 536,
- PseudoNDS_VLNU8_V_M8_MASK = 537,
- PseudoNDS_VLNU8_V_MF2 = 538,
- PseudoNDS_VLNU8_V_MF2_MASK = 539,
- PseudoNDS_VLNU8_V_MF4 = 540,
- PseudoNDS_VLNU8_V_MF4_MASK = 541,
- PseudoNDS_VLNU8_V_MF8 = 542,
- PseudoNDS_VLNU8_V_MF8_MASK = 543,
- PseudoQC_E_LB = 544,
- PseudoQC_E_LBU = 545,
- PseudoQC_E_LH = 546,
- PseudoQC_E_LHU = 547,
- PseudoQC_E_LW = 548,
- PseudoQC_E_SB = 549,
- PseudoQC_E_SH = 550,
- PseudoQC_E_SW = 551,
- PseudoQuietFLE_D = 552,
- PseudoQuietFLE_D_IN32X = 553,
- PseudoQuietFLE_D_INX = 554,
- PseudoQuietFLE_H = 555,
- PseudoQuietFLE_H_INX = 556,
- PseudoQuietFLE_S = 557,
- PseudoQuietFLE_S_INX = 558,
- PseudoQuietFLT_D = 559,
- PseudoQuietFLT_D_IN32X = 560,
- PseudoQuietFLT_D_INX = 561,
- PseudoQuietFLT_H = 562,
- PseudoQuietFLT_H_INX = 563,
- PseudoQuietFLT_S = 564,
- PseudoQuietFLT_S_INX = 565,
- PseudoRET = 566,
- PseudoRI_VEXTRACT_M1 = 567,
- PseudoRI_VEXTRACT_M2 = 568,
- PseudoRI_VEXTRACT_M4 = 569,
- PseudoRI_VEXTRACT_M8 = 570,
- PseudoRI_VEXTRACT_MF2 = 571,
- PseudoRI_VEXTRACT_MF4 = 572,
- PseudoRI_VEXTRACT_MF8 = 573,
- PseudoRI_VINSERT_M1 = 574,
- PseudoRI_VINSERT_M2 = 575,
- PseudoRI_VINSERT_M4 = 576,
- PseudoRI_VINSERT_M8 = 577,
- PseudoRI_VINSERT_MF2 = 578,
- PseudoRI_VINSERT_MF4 = 579,
- PseudoRI_VINSERT_MF8 = 580,
- PseudoRI_VUNZIP2A_VV_M1 = 581,
- PseudoRI_VUNZIP2A_VV_M1_MASK = 582,
- PseudoRI_VUNZIP2A_VV_M2 = 583,
- PseudoRI_VUNZIP2A_VV_M2_MASK = 584,
- PseudoRI_VUNZIP2A_VV_M4 = 585,
- PseudoRI_VUNZIP2A_VV_M4_MASK = 586,
- PseudoRI_VUNZIP2A_VV_M8 = 587,
- PseudoRI_VUNZIP2A_VV_M8_MASK = 588,
- PseudoRI_VUNZIP2A_VV_MF2 = 589,
- PseudoRI_VUNZIP2A_VV_MF2_MASK = 590,
- PseudoRI_VUNZIP2A_VV_MF4 = 591,
- PseudoRI_VUNZIP2A_VV_MF4_MASK = 592,
- PseudoRI_VUNZIP2A_VV_MF8 = 593,
- PseudoRI_VUNZIP2A_VV_MF8_MASK = 594,
- PseudoRI_VUNZIP2B_VV_M1 = 595,
- PseudoRI_VUNZIP2B_VV_M1_MASK = 596,
- PseudoRI_VUNZIP2B_VV_M2 = 597,
- PseudoRI_VUNZIP2B_VV_M2_MASK = 598,
- PseudoRI_VUNZIP2B_VV_M4 = 599,
- PseudoRI_VUNZIP2B_VV_M4_MASK = 600,
- PseudoRI_VUNZIP2B_VV_M8 = 601,
- PseudoRI_VUNZIP2B_VV_M8_MASK = 602,
- PseudoRI_VUNZIP2B_VV_MF2 = 603,
- PseudoRI_VUNZIP2B_VV_MF2_MASK = 604,
- PseudoRI_VUNZIP2B_VV_MF4 = 605,
- PseudoRI_VUNZIP2B_VV_MF4_MASK = 606,
- PseudoRI_VUNZIP2B_VV_MF8 = 607,
- PseudoRI_VUNZIP2B_VV_MF8_MASK = 608,
- PseudoRI_VZIP2A_VV_M1 = 609,
- PseudoRI_VZIP2A_VV_M1_MASK = 610,
- PseudoRI_VZIP2A_VV_M2 = 611,
- PseudoRI_VZIP2A_VV_M2_MASK = 612,
- PseudoRI_VZIP2A_VV_M4 = 613,
- PseudoRI_VZIP2A_VV_M4_MASK = 614,
- PseudoRI_VZIP2A_VV_M8 = 615,
- PseudoRI_VZIP2A_VV_M8_MASK = 616,
- PseudoRI_VZIP2A_VV_MF2 = 617,
- PseudoRI_VZIP2A_VV_MF2_MASK = 618,
- PseudoRI_VZIP2A_VV_MF4 = 619,
- PseudoRI_VZIP2A_VV_MF4_MASK = 620,
- PseudoRI_VZIP2A_VV_MF8 = 621,
- PseudoRI_VZIP2A_VV_MF8_MASK = 622,
- PseudoRI_VZIP2B_VV_M1 = 623,
- PseudoRI_VZIP2B_VV_M1_MASK = 624,
- PseudoRI_VZIP2B_VV_M2 = 625,
- PseudoRI_VZIP2B_VV_M2_MASK = 626,
- PseudoRI_VZIP2B_VV_M4 = 627,
- PseudoRI_VZIP2B_VV_M4_MASK = 628,
- PseudoRI_VZIP2B_VV_M8 = 629,
- PseudoRI_VZIP2B_VV_M8_MASK = 630,
- PseudoRI_VZIP2B_VV_MF2 = 631,
- PseudoRI_VZIP2B_VV_MF2_MASK = 632,
- PseudoRI_VZIP2B_VV_MF4 = 633,
- PseudoRI_VZIP2B_VV_MF4_MASK = 634,
- PseudoRI_VZIP2B_VV_MF8 = 635,
- PseudoRI_VZIP2B_VV_MF8_MASK = 636,
- PseudoRI_VZIPEVEN_VV_M1 = 637,
- PseudoRI_VZIPEVEN_VV_M1_MASK = 638,
- PseudoRI_VZIPEVEN_VV_M2 = 639,
- PseudoRI_VZIPEVEN_VV_M2_MASK = 640,
- PseudoRI_VZIPEVEN_VV_M4 = 641,
- PseudoRI_VZIPEVEN_VV_M4_MASK = 642,
- PseudoRI_VZIPEVEN_VV_M8 = 643,
- PseudoRI_VZIPEVEN_VV_M8_MASK = 644,
- PseudoRI_VZIPEVEN_VV_MF2 = 645,
- PseudoRI_VZIPEVEN_VV_MF2_MASK = 646,
- PseudoRI_VZIPEVEN_VV_MF4 = 647,
- PseudoRI_VZIPEVEN_VV_MF4_MASK = 648,
- PseudoRI_VZIPEVEN_VV_MF8 = 649,
- PseudoRI_VZIPEVEN_VV_MF8_MASK = 650,
- PseudoRI_VZIPODD_VV_M1 = 651,
- PseudoRI_VZIPODD_VV_M1_MASK = 652,
- PseudoRI_VZIPODD_VV_M2 = 653,
- PseudoRI_VZIPODD_VV_M2_MASK = 654,
- PseudoRI_VZIPODD_VV_M4 = 655,
- PseudoRI_VZIPODD_VV_M4_MASK = 656,
- PseudoRI_VZIPODD_VV_M8 = 657,
- PseudoRI_VZIPODD_VV_M8_MASK = 658,
- PseudoRI_VZIPODD_VV_MF2 = 659,
- PseudoRI_VZIPODD_VV_MF2_MASK = 660,
- PseudoRI_VZIPODD_VV_MF4 = 661,
- PseudoRI_VZIPODD_VV_MF4_MASK = 662,
- PseudoRI_VZIPODD_VV_MF8 = 663,
- PseudoRI_VZIPODD_VV_MF8_MASK = 664,
- PseudoRV32ZdinxLD = 665,
- PseudoRV32ZdinxSD = 666,
- PseudoReadVL = 667,
- PseudoReadVLENB = 668,
- PseudoReadVLENBViaVSETVLIX0 = 669,
- PseudoSB = 670,
- PseudoSD = 671,
- PseudoSD_RV32 = 672,
- PseudoSEXT_B = 673,
- PseudoSEXT_H = 674,
- PseudoSF_VC_FPR16VV_SE_M1 = 675,
- PseudoSF_VC_FPR16VV_SE_M2 = 676,
- PseudoSF_VC_FPR16VV_SE_M4 = 677,
- PseudoSF_VC_FPR16VV_SE_M8 = 678,
- PseudoSF_VC_FPR16VV_SE_MF2 = 679,
- PseudoSF_VC_FPR16VV_SE_MF4 = 680,
- PseudoSF_VC_FPR16VW_SE_M1 = 681,
- PseudoSF_VC_FPR16VW_SE_M2 = 682,
- PseudoSF_VC_FPR16VW_SE_M4 = 683,
- PseudoSF_VC_FPR16VW_SE_M8 = 684,
- PseudoSF_VC_FPR16VW_SE_MF2 = 685,
- PseudoSF_VC_FPR16VW_SE_MF4 = 686,
- PseudoSF_VC_FPR16V_SE_M1 = 687,
- PseudoSF_VC_FPR16V_SE_M2 = 688,
- PseudoSF_VC_FPR16V_SE_M4 = 689,
- PseudoSF_VC_FPR16V_SE_M8 = 690,
- PseudoSF_VC_FPR16V_SE_MF2 = 691,
- PseudoSF_VC_FPR16V_SE_MF4 = 692,
- PseudoSF_VC_FPR32VV_SE_M1 = 693,
- PseudoSF_VC_FPR32VV_SE_M2 = 694,
- PseudoSF_VC_FPR32VV_SE_M4 = 695,
- PseudoSF_VC_FPR32VV_SE_M8 = 696,
- PseudoSF_VC_FPR32VV_SE_MF2 = 697,
- PseudoSF_VC_FPR32VW_SE_M1 = 698,
- PseudoSF_VC_FPR32VW_SE_M2 = 699,
- PseudoSF_VC_FPR32VW_SE_M4 = 700,
- PseudoSF_VC_FPR32VW_SE_M8 = 701,
- PseudoSF_VC_FPR32VW_SE_MF2 = 702,
- PseudoSF_VC_FPR32V_SE_M1 = 703,
- PseudoSF_VC_FPR32V_SE_M2 = 704,
- PseudoSF_VC_FPR32V_SE_M4 = 705,
- PseudoSF_VC_FPR32V_SE_M8 = 706,
- PseudoSF_VC_FPR32V_SE_MF2 = 707,
- PseudoSF_VC_FPR64VV_SE_M1 = 708,
- PseudoSF_VC_FPR64VV_SE_M2 = 709,
- PseudoSF_VC_FPR64VV_SE_M4 = 710,
- PseudoSF_VC_FPR64VV_SE_M8 = 711,
- PseudoSF_VC_FPR64V_SE_M1 = 712,
- PseudoSF_VC_FPR64V_SE_M2 = 713,
- PseudoSF_VC_FPR64V_SE_M4 = 714,
- PseudoSF_VC_FPR64V_SE_M8 = 715,
- PseudoSF_VC_IVV_SE_M1 = 716,
- PseudoSF_VC_IVV_SE_M2 = 717,
- PseudoSF_VC_IVV_SE_M4 = 718,
- PseudoSF_VC_IVV_SE_M8 = 719,
- PseudoSF_VC_IVV_SE_MF2 = 720,
- PseudoSF_VC_IVV_SE_MF4 = 721,
- PseudoSF_VC_IVV_SE_MF8 = 722,
- PseudoSF_VC_IVW_SE_M1 = 723,
- PseudoSF_VC_IVW_SE_M2 = 724,
- PseudoSF_VC_IVW_SE_M4 = 725,
- PseudoSF_VC_IVW_SE_MF2 = 726,
- PseudoSF_VC_IVW_SE_MF4 = 727,
- PseudoSF_VC_IVW_SE_MF8 = 728,
- PseudoSF_VC_IV_SE_M1 = 729,
- PseudoSF_VC_IV_SE_M2 = 730,
- PseudoSF_VC_IV_SE_M4 = 731,
- PseudoSF_VC_IV_SE_M8 = 732,
- PseudoSF_VC_IV_SE_MF2 = 733,
- PseudoSF_VC_IV_SE_MF4 = 734,
- PseudoSF_VC_IV_SE_MF8 = 735,
- PseudoSF_VC_I_SE_M1 = 736,
- PseudoSF_VC_I_SE_M2 = 737,
- PseudoSF_VC_I_SE_M4 = 738,
- PseudoSF_VC_I_SE_M8 = 739,
- PseudoSF_VC_I_SE_MF2 = 740,
- PseudoSF_VC_I_SE_MF4 = 741,
- PseudoSF_VC_I_SE_MF8 = 742,
- PseudoSF_VC_VVV_SE_M1 = 743,
- PseudoSF_VC_VVV_SE_M2 = 744,
- PseudoSF_VC_VVV_SE_M4 = 745,
- PseudoSF_VC_VVV_SE_M8 = 746,
- PseudoSF_VC_VVV_SE_MF2 = 747,
- PseudoSF_VC_VVV_SE_MF4 = 748,
- PseudoSF_VC_VVV_SE_MF8 = 749,
- PseudoSF_VC_VVW_SE_M1 = 750,
- PseudoSF_VC_VVW_SE_M2 = 751,
- PseudoSF_VC_VVW_SE_M4 = 752,
- PseudoSF_VC_VVW_SE_MF2 = 753,
- PseudoSF_VC_VVW_SE_MF4 = 754,
- PseudoSF_VC_VVW_SE_MF8 = 755,
- PseudoSF_VC_VV_SE_M1 = 756,
- PseudoSF_VC_VV_SE_M2 = 757,
- PseudoSF_VC_VV_SE_M4 = 758,
- PseudoSF_VC_VV_SE_M8 = 759,
- PseudoSF_VC_VV_SE_MF2 = 760,
- PseudoSF_VC_VV_SE_MF4 = 761,
- PseudoSF_VC_VV_SE_MF8 = 762,
- PseudoSF_VC_V_FPR16VV_M1 = 763,
- PseudoSF_VC_V_FPR16VV_M2 = 764,
- PseudoSF_VC_V_FPR16VV_M4 = 765,
- PseudoSF_VC_V_FPR16VV_M8 = 766,
- PseudoSF_VC_V_FPR16VV_MF2 = 767,
- PseudoSF_VC_V_FPR16VV_MF4 = 768,
- PseudoSF_VC_V_FPR16VV_SE_M1 = 769,
- PseudoSF_VC_V_FPR16VV_SE_M2 = 770,
- PseudoSF_VC_V_FPR16VV_SE_M4 = 771,
- PseudoSF_VC_V_FPR16VV_SE_M8 = 772,
- PseudoSF_VC_V_FPR16VV_SE_MF2 = 773,
- PseudoSF_VC_V_FPR16VV_SE_MF4 = 774,
- PseudoSF_VC_V_FPR16VW_M1 = 775,
- PseudoSF_VC_V_FPR16VW_M2 = 776,
- PseudoSF_VC_V_FPR16VW_M4 = 777,
- PseudoSF_VC_V_FPR16VW_M8 = 778,
- PseudoSF_VC_V_FPR16VW_MF2 = 779,
- PseudoSF_VC_V_FPR16VW_MF4 = 780,
- PseudoSF_VC_V_FPR16VW_SE_M1 = 781,
- PseudoSF_VC_V_FPR16VW_SE_M2 = 782,
- PseudoSF_VC_V_FPR16VW_SE_M4 = 783,
- PseudoSF_VC_V_FPR16VW_SE_M8 = 784,
- PseudoSF_VC_V_FPR16VW_SE_MF2 = 785,
- PseudoSF_VC_V_FPR16VW_SE_MF4 = 786,
- PseudoSF_VC_V_FPR16V_M1 = 787,
- PseudoSF_VC_V_FPR16V_M2 = 788,
- PseudoSF_VC_V_FPR16V_M4 = 789,
- PseudoSF_VC_V_FPR16V_M8 = 790,
- PseudoSF_VC_V_FPR16V_MF2 = 791,
- PseudoSF_VC_V_FPR16V_MF4 = 792,
- PseudoSF_VC_V_FPR16V_SE_M1 = 793,
- PseudoSF_VC_V_FPR16V_SE_M2 = 794,
- PseudoSF_VC_V_FPR16V_SE_M4 = 795,
- PseudoSF_VC_V_FPR16V_SE_M8 = 796,
- PseudoSF_VC_V_FPR16V_SE_MF2 = 797,
- PseudoSF_VC_V_FPR16V_SE_MF4 = 798,
- PseudoSF_VC_V_FPR32VV_M1 = 799,
- PseudoSF_VC_V_FPR32VV_M2 = 800,
- PseudoSF_VC_V_FPR32VV_M4 = 801,
- PseudoSF_VC_V_FPR32VV_M8 = 802,
- PseudoSF_VC_V_FPR32VV_MF2 = 803,
- PseudoSF_VC_V_FPR32VV_SE_M1 = 804,
- PseudoSF_VC_V_FPR32VV_SE_M2 = 805,
- PseudoSF_VC_V_FPR32VV_SE_M4 = 806,
- PseudoSF_VC_V_FPR32VV_SE_M8 = 807,
- PseudoSF_VC_V_FPR32VV_SE_MF2 = 808,
- PseudoSF_VC_V_FPR32VW_M1 = 809,
- PseudoSF_VC_V_FPR32VW_M2 = 810,
- PseudoSF_VC_V_FPR32VW_M4 = 811,
- PseudoSF_VC_V_FPR32VW_M8 = 812,
- PseudoSF_VC_V_FPR32VW_MF2 = 813,
- PseudoSF_VC_V_FPR32VW_SE_M1 = 814,
- PseudoSF_VC_V_FPR32VW_SE_M2 = 815,
- PseudoSF_VC_V_FPR32VW_SE_M4 = 816,
- PseudoSF_VC_V_FPR32VW_SE_M8 = 817,
- PseudoSF_VC_V_FPR32VW_SE_MF2 = 818,
- PseudoSF_VC_V_FPR32V_M1 = 819,
- PseudoSF_VC_V_FPR32V_M2 = 820,
- PseudoSF_VC_V_FPR32V_M4 = 821,
- PseudoSF_VC_V_FPR32V_M8 = 822,
- PseudoSF_VC_V_FPR32V_MF2 = 823,
- PseudoSF_VC_V_FPR32V_SE_M1 = 824,
- PseudoSF_VC_V_FPR32V_SE_M2 = 825,
- PseudoSF_VC_V_FPR32V_SE_M4 = 826,
- PseudoSF_VC_V_FPR32V_SE_M8 = 827,
- PseudoSF_VC_V_FPR32V_SE_MF2 = 828,
- PseudoSF_VC_V_FPR64VV_M1 = 829,
- PseudoSF_VC_V_FPR64VV_M2 = 830,
- PseudoSF_VC_V_FPR64VV_M4 = 831,
- PseudoSF_VC_V_FPR64VV_M8 = 832,
- PseudoSF_VC_V_FPR64VV_SE_M1 = 833,
- PseudoSF_VC_V_FPR64VV_SE_M2 = 834,
- PseudoSF_VC_V_FPR64VV_SE_M4 = 835,
- PseudoSF_VC_V_FPR64VV_SE_M8 = 836,
- PseudoSF_VC_V_FPR64V_M1 = 837,
- PseudoSF_VC_V_FPR64V_M2 = 838,
- PseudoSF_VC_V_FPR64V_M4 = 839,
- PseudoSF_VC_V_FPR64V_M8 = 840,
- PseudoSF_VC_V_FPR64V_SE_M1 = 841,
- PseudoSF_VC_V_FPR64V_SE_M2 = 842,
- PseudoSF_VC_V_FPR64V_SE_M4 = 843,
- PseudoSF_VC_V_FPR64V_SE_M8 = 844,
- PseudoSF_VC_V_IVV_M1 = 845,
- PseudoSF_VC_V_IVV_M2 = 846,
- PseudoSF_VC_V_IVV_M4 = 847,
- PseudoSF_VC_V_IVV_M8 = 848,
- PseudoSF_VC_V_IVV_MF2 = 849,
- PseudoSF_VC_V_IVV_MF4 = 850,
- PseudoSF_VC_V_IVV_MF8 = 851,
- PseudoSF_VC_V_IVV_SE_M1 = 852,
- PseudoSF_VC_V_IVV_SE_M2 = 853,
- PseudoSF_VC_V_IVV_SE_M4 = 854,
- PseudoSF_VC_V_IVV_SE_M8 = 855,
- PseudoSF_VC_V_IVV_SE_MF2 = 856,
- PseudoSF_VC_V_IVV_SE_MF4 = 857,
- PseudoSF_VC_V_IVV_SE_MF8 = 858,
- PseudoSF_VC_V_IVW_M1 = 859,
- PseudoSF_VC_V_IVW_M2 = 860,
- PseudoSF_VC_V_IVW_M4 = 861,
- PseudoSF_VC_V_IVW_MF2 = 862,
- PseudoSF_VC_V_IVW_MF4 = 863,
- PseudoSF_VC_V_IVW_MF8 = 864,
- PseudoSF_VC_V_IVW_SE_M1 = 865,
- PseudoSF_VC_V_IVW_SE_M2 = 866,
- PseudoSF_VC_V_IVW_SE_M4 = 867,
- PseudoSF_VC_V_IVW_SE_MF2 = 868,
- PseudoSF_VC_V_IVW_SE_MF4 = 869,
- PseudoSF_VC_V_IVW_SE_MF8 = 870,
- PseudoSF_VC_V_IV_M1 = 871,
- PseudoSF_VC_V_IV_M2 = 872,
- PseudoSF_VC_V_IV_M4 = 873,
- PseudoSF_VC_V_IV_M8 = 874,
- PseudoSF_VC_V_IV_MF2 = 875,
- PseudoSF_VC_V_IV_MF4 = 876,
- PseudoSF_VC_V_IV_MF8 = 877,
- PseudoSF_VC_V_IV_SE_M1 = 878,
- PseudoSF_VC_V_IV_SE_M2 = 879,
- PseudoSF_VC_V_IV_SE_M4 = 880,
- PseudoSF_VC_V_IV_SE_M8 = 881,
- PseudoSF_VC_V_IV_SE_MF2 = 882,
- PseudoSF_VC_V_IV_SE_MF4 = 883,
- PseudoSF_VC_V_IV_SE_MF8 = 884,
- PseudoSF_VC_V_I_M1 = 885,
- PseudoSF_VC_V_I_M2 = 886,
- PseudoSF_VC_V_I_M4 = 887,
- PseudoSF_VC_V_I_M8 = 888,
- PseudoSF_VC_V_I_MF2 = 889,
- PseudoSF_VC_V_I_MF4 = 890,
- PseudoSF_VC_V_I_MF8 = 891,
- PseudoSF_VC_V_I_SE_M1 = 892,
- PseudoSF_VC_V_I_SE_M2 = 893,
- PseudoSF_VC_V_I_SE_M4 = 894,
- PseudoSF_VC_V_I_SE_M8 = 895,
- PseudoSF_VC_V_I_SE_MF2 = 896,
- PseudoSF_VC_V_I_SE_MF4 = 897,
- PseudoSF_VC_V_I_SE_MF8 = 898,
- PseudoSF_VC_V_VVV_M1 = 899,
- PseudoSF_VC_V_VVV_M2 = 900,
- PseudoSF_VC_V_VVV_M4 = 901,
- PseudoSF_VC_V_VVV_M8 = 902,
- PseudoSF_VC_V_VVV_MF2 = 903,
- PseudoSF_VC_V_VVV_MF4 = 904,
- PseudoSF_VC_V_VVV_MF8 = 905,
- PseudoSF_VC_V_VVV_SE_M1 = 906,
- PseudoSF_VC_V_VVV_SE_M2 = 907,
- PseudoSF_VC_V_VVV_SE_M4 = 908,
- PseudoSF_VC_V_VVV_SE_M8 = 909,
- PseudoSF_VC_V_VVV_SE_MF2 = 910,
- PseudoSF_VC_V_VVV_SE_MF4 = 911,
- PseudoSF_VC_V_VVV_SE_MF8 = 912,
- PseudoSF_VC_V_VVW_M1 = 913,
- PseudoSF_VC_V_VVW_M2 = 914,
- PseudoSF_VC_V_VVW_M4 = 915,
- PseudoSF_VC_V_VVW_MF2 = 916,
- PseudoSF_VC_V_VVW_MF4 = 917,
- PseudoSF_VC_V_VVW_MF8 = 918,
- PseudoSF_VC_V_VVW_SE_M1 = 919,
- PseudoSF_VC_V_VVW_SE_M2 = 920,
- PseudoSF_VC_V_VVW_SE_M4 = 921,
- PseudoSF_VC_V_VVW_SE_MF2 = 922,
- PseudoSF_VC_V_VVW_SE_MF4 = 923,
- PseudoSF_VC_V_VVW_SE_MF8 = 924,
- PseudoSF_VC_V_VV_M1 = 925,
- PseudoSF_VC_V_VV_M2 = 926,
- PseudoSF_VC_V_VV_M4 = 927,
- PseudoSF_VC_V_VV_M8 = 928,
- PseudoSF_VC_V_VV_MF2 = 929,
- PseudoSF_VC_V_VV_MF4 = 930,
- PseudoSF_VC_V_VV_MF8 = 931,
- PseudoSF_VC_V_VV_SE_M1 = 932,
- PseudoSF_VC_V_VV_SE_M2 = 933,
- PseudoSF_VC_V_VV_SE_M4 = 934,
- PseudoSF_VC_V_VV_SE_M8 = 935,
- PseudoSF_VC_V_VV_SE_MF2 = 936,
- PseudoSF_VC_V_VV_SE_MF4 = 937,
- PseudoSF_VC_V_VV_SE_MF8 = 938,
- PseudoSF_VC_V_XVV_M1 = 939,
- PseudoSF_VC_V_XVV_M2 = 940,
- PseudoSF_VC_V_XVV_M4 = 941,
- PseudoSF_VC_V_XVV_M8 = 942,
- PseudoSF_VC_V_XVV_MF2 = 943,
- PseudoSF_VC_V_XVV_MF4 = 944,
- PseudoSF_VC_V_XVV_MF8 = 945,
- PseudoSF_VC_V_XVV_SE_M1 = 946,
- PseudoSF_VC_V_XVV_SE_M2 = 947,
- PseudoSF_VC_V_XVV_SE_M4 = 948,
- PseudoSF_VC_V_XVV_SE_M8 = 949,
- PseudoSF_VC_V_XVV_SE_MF2 = 950,
- PseudoSF_VC_V_XVV_SE_MF4 = 951,
- PseudoSF_VC_V_XVV_SE_MF8 = 952,
- PseudoSF_VC_V_XVW_M1 = 953,
- PseudoSF_VC_V_XVW_M2 = 954,
- PseudoSF_VC_V_XVW_M4 = 955,
- PseudoSF_VC_V_XVW_MF2 = 956,
- PseudoSF_VC_V_XVW_MF4 = 957,
- PseudoSF_VC_V_XVW_MF8 = 958,
- PseudoSF_VC_V_XVW_SE_M1 = 959,
- PseudoSF_VC_V_XVW_SE_M2 = 960,
- PseudoSF_VC_V_XVW_SE_M4 = 961,
- PseudoSF_VC_V_XVW_SE_MF2 = 962,
- PseudoSF_VC_V_XVW_SE_MF4 = 963,
- PseudoSF_VC_V_XVW_SE_MF8 = 964,
- PseudoSF_VC_V_XV_M1 = 965,
- PseudoSF_VC_V_XV_M2 = 966,
- PseudoSF_VC_V_XV_M4 = 967,
- PseudoSF_VC_V_XV_M8 = 968,
- PseudoSF_VC_V_XV_MF2 = 969,
- PseudoSF_VC_V_XV_MF4 = 970,
- PseudoSF_VC_V_XV_MF8 = 971,
- PseudoSF_VC_V_XV_SE_M1 = 972,
- PseudoSF_VC_V_XV_SE_M2 = 973,
- PseudoSF_VC_V_XV_SE_M4 = 974,
- PseudoSF_VC_V_XV_SE_M8 = 975,
- PseudoSF_VC_V_XV_SE_MF2 = 976,
- PseudoSF_VC_V_XV_SE_MF4 = 977,
- PseudoSF_VC_V_XV_SE_MF8 = 978,
- PseudoSF_VC_V_X_M1 = 979,
- PseudoSF_VC_V_X_M2 = 980,
- PseudoSF_VC_V_X_M4 = 981,
- PseudoSF_VC_V_X_M8 = 982,
- PseudoSF_VC_V_X_MF2 = 983,
- PseudoSF_VC_V_X_MF4 = 984,
- PseudoSF_VC_V_X_MF8 = 985,
- PseudoSF_VC_V_X_SE_M1 = 986,
- PseudoSF_VC_V_X_SE_M2 = 987,
- PseudoSF_VC_V_X_SE_M4 = 988,
- PseudoSF_VC_V_X_SE_M8 = 989,
- PseudoSF_VC_V_X_SE_MF2 = 990,
- PseudoSF_VC_V_X_SE_MF4 = 991,
- PseudoSF_VC_V_X_SE_MF8 = 992,
- PseudoSF_VC_XVV_SE_M1 = 993,
- PseudoSF_VC_XVV_SE_M2 = 994,
- PseudoSF_VC_XVV_SE_M4 = 995,
- PseudoSF_VC_XVV_SE_M8 = 996,
- PseudoSF_VC_XVV_SE_MF2 = 997,
- PseudoSF_VC_XVV_SE_MF4 = 998,
- PseudoSF_VC_XVV_SE_MF8 = 999,
- PseudoSF_VC_XVW_SE_M1 = 1000,
- PseudoSF_VC_XVW_SE_M2 = 1001,
- PseudoSF_VC_XVW_SE_M4 = 1002,
- PseudoSF_VC_XVW_SE_MF2 = 1003,
- PseudoSF_VC_XVW_SE_MF4 = 1004,
- PseudoSF_VC_XVW_SE_MF8 = 1005,
- PseudoSF_VC_XV_SE_M1 = 1006,
- PseudoSF_VC_XV_SE_M2 = 1007,
- PseudoSF_VC_XV_SE_M4 = 1008,
- PseudoSF_VC_XV_SE_M8 = 1009,
- PseudoSF_VC_XV_SE_MF2 = 1010,
- PseudoSF_VC_XV_SE_MF4 = 1011,
- PseudoSF_VC_XV_SE_MF8 = 1012,
- PseudoSF_VC_X_SE_M1 = 1013,
- PseudoSF_VC_X_SE_M2 = 1014,
- PseudoSF_VC_X_SE_M4 = 1015,
- PseudoSF_VC_X_SE_M8 = 1016,
- PseudoSF_VC_X_SE_MF2 = 1017,
- PseudoSF_VC_X_SE_MF4 = 1018,
- PseudoSF_VC_X_SE_MF8 = 1019,
- PseudoSF_VFNRCLIP_XU_F_QF_M1 = 1020,
- PseudoSF_VFNRCLIP_XU_F_QF_M1_MASK = 1021,
- PseudoSF_VFNRCLIP_XU_F_QF_M2 = 1022,
- PseudoSF_VFNRCLIP_XU_F_QF_M2_MASK = 1023,
- PseudoSF_VFNRCLIP_XU_F_QF_MF2 = 1024,
- PseudoSF_VFNRCLIP_XU_F_QF_MF2_MASK = 1025,
- PseudoSF_VFNRCLIP_XU_F_QF_MF4 = 1026,
- PseudoSF_VFNRCLIP_XU_F_QF_MF4_MASK = 1027,
- PseudoSF_VFNRCLIP_XU_F_QF_MF8 = 1028,
- PseudoSF_VFNRCLIP_XU_F_QF_MF8_MASK = 1029,
- PseudoSF_VFNRCLIP_X_F_QF_M1 = 1030,
- PseudoSF_VFNRCLIP_X_F_QF_M1_MASK = 1031,
- PseudoSF_VFNRCLIP_X_F_QF_M2 = 1032,
- PseudoSF_VFNRCLIP_X_F_QF_M2_MASK = 1033,
- PseudoSF_VFNRCLIP_X_F_QF_MF2 = 1034,
- PseudoSF_VFNRCLIP_X_F_QF_MF2_MASK = 1035,
- PseudoSF_VFNRCLIP_X_F_QF_MF4 = 1036,
- PseudoSF_VFNRCLIP_X_F_QF_MF4_MASK = 1037,
- PseudoSF_VFNRCLIP_X_F_QF_MF8 = 1038,
- PseudoSF_VFNRCLIP_X_F_QF_MF8_MASK = 1039,
- PseudoSF_VFWMACC_4x4x4_M1 = 1040,
- PseudoSF_VFWMACC_4x4x4_M2 = 1041,
- PseudoSF_VFWMACC_4x4x4_M4 = 1042,
- PseudoSF_VFWMACC_4x4x4_MF2 = 1043,
- PseudoSF_VFWMACC_4x4x4_MF4 = 1044,
- PseudoSF_VQMACCSU_2x8x2_M1 = 1045,
- PseudoSF_VQMACCSU_2x8x2_M2 = 1046,
- PseudoSF_VQMACCSU_2x8x2_M4 = 1047,
- PseudoSF_VQMACCSU_2x8x2_M8 = 1048,
- PseudoSF_VQMACCSU_4x8x4_M1 = 1049,
- PseudoSF_VQMACCSU_4x8x4_M2 = 1050,
- PseudoSF_VQMACCSU_4x8x4_M4 = 1051,
- PseudoSF_VQMACCSU_4x8x4_MF2 = 1052,
- PseudoSF_VQMACCUS_2x8x2_M1 = 1053,
- PseudoSF_VQMACCUS_2x8x2_M2 = 1054,
- PseudoSF_VQMACCUS_2x8x2_M4 = 1055,
- PseudoSF_VQMACCUS_2x8x2_M8 = 1056,
- PseudoSF_VQMACCUS_4x8x4_M1 = 1057,
- PseudoSF_VQMACCUS_4x8x4_M2 = 1058,
- PseudoSF_VQMACCUS_4x8x4_M4 = 1059,
- PseudoSF_VQMACCUS_4x8x4_MF2 = 1060,
- PseudoSF_VQMACCU_2x8x2_M1 = 1061,
- PseudoSF_VQMACCU_2x8x2_M2 = 1062,
- PseudoSF_VQMACCU_2x8x2_M4 = 1063,
- PseudoSF_VQMACCU_2x8x2_M8 = 1064,
- PseudoSF_VQMACCU_4x8x4_M1 = 1065,
- PseudoSF_VQMACCU_4x8x4_M2 = 1066,
- PseudoSF_VQMACCU_4x8x4_M4 = 1067,
- PseudoSF_VQMACCU_4x8x4_MF2 = 1068,
- PseudoSF_VQMACC_2x8x2_M1 = 1069,
- PseudoSF_VQMACC_2x8x2_M2 = 1070,
- PseudoSF_VQMACC_2x8x2_M4 = 1071,
- PseudoSF_VQMACC_2x8x2_M8 = 1072,
- PseudoSF_VQMACC_4x8x4_M1 = 1073,
- PseudoSF_VQMACC_4x8x4_M2 = 1074,
- PseudoSF_VQMACC_4x8x4_M4 = 1075,
- PseudoSF_VQMACC_4x8x4_MF2 = 1076,
- PseudoSH = 1077,
- PseudoSW = 1078,
- PseudoTAIL = 1079,
- PseudoTAILIndirect = 1080,
- PseudoTAILIndirectNonX7 = 1081,
- PseudoTAILIndirectX7 = 1082,
- PseudoTH_VMAQASU_VV_M1 = 1083,
- PseudoTH_VMAQASU_VV_M1_MASK = 1084,
- PseudoTH_VMAQASU_VV_M2 = 1085,
- PseudoTH_VMAQASU_VV_M2_MASK = 1086,
- PseudoTH_VMAQASU_VV_M4 = 1087,
- PseudoTH_VMAQASU_VV_M4_MASK = 1088,
- PseudoTH_VMAQASU_VV_M8 = 1089,
- PseudoTH_VMAQASU_VV_M8_MASK = 1090,
- PseudoTH_VMAQASU_VV_MF2 = 1091,
- PseudoTH_VMAQASU_VV_MF2_MASK = 1092,
- PseudoTH_VMAQASU_VX_M1 = 1093,
- PseudoTH_VMAQASU_VX_M1_MASK = 1094,
- PseudoTH_VMAQASU_VX_M2 = 1095,
- PseudoTH_VMAQASU_VX_M2_MASK = 1096,
- PseudoTH_VMAQASU_VX_M4 = 1097,
- PseudoTH_VMAQASU_VX_M4_MASK = 1098,
- PseudoTH_VMAQASU_VX_M8 = 1099,
- PseudoTH_VMAQASU_VX_M8_MASK = 1100,
- PseudoTH_VMAQASU_VX_MF2 = 1101,
- PseudoTH_VMAQASU_VX_MF2_MASK = 1102,
- PseudoTH_VMAQAUS_VX_M1 = 1103,
- PseudoTH_VMAQAUS_VX_M1_MASK = 1104,
- PseudoTH_VMAQAUS_VX_M2 = 1105,
- PseudoTH_VMAQAUS_VX_M2_MASK = 1106,
- PseudoTH_VMAQAUS_VX_M4 = 1107,
- PseudoTH_VMAQAUS_VX_M4_MASK = 1108,
- PseudoTH_VMAQAUS_VX_M8 = 1109,
- PseudoTH_VMAQAUS_VX_M8_MASK = 1110,
- PseudoTH_VMAQAUS_VX_MF2 = 1111,
- PseudoTH_VMAQAUS_VX_MF2_MASK = 1112,
- PseudoTH_VMAQAU_VV_M1 = 1113,
- PseudoTH_VMAQAU_VV_M1_MASK = 1114,
- PseudoTH_VMAQAU_VV_M2 = 1115,
- PseudoTH_VMAQAU_VV_M2_MASK = 1116,
- PseudoTH_VMAQAU_VV_M4 = 1117,
- PseudoTH_VMAQAU_VV_M4_MASK = 1118,
- PseudoTH_VMAQAU_VV_M8 = 1119,
- PseudoTH_VMAQAU_VV_M8_MASK = 1120,
- PseudoTH_VMAQAU_VV_MF2 = 1121,
- PseudoTH_VMAQAU_VV_MF2_MASK = 1122,
- PseudoTH_VMAQAU_VX_M1 = 1123,
- PseudoTH_VMAQAU_VX_M1_MASK = 1124,
- PseudoTH_VMAQAU_VX_M2 = 1125,
- PseudoTH_VMAQAU_VX_M2_MASK = 1126,
- PseudoTH_VMAQAU_VX_M4 = 1127,
- PseudoTH_VMAQAU_VX_M4_MASK = 1128,
- PseudoTH_VMAQAU_VX_M8 = 1129,
- PseudoTH_VMAQAU_VX_M8_MASK = 1130,
- PseudoTH_VMAQAU_VX_MF2 = 1131,
- PseudoTH_VMAQAU_VX_MF2_MASK = 1132,
- PseudoTH_VMAQA_VV_M1 = 1133,
- PseudoTH_VMAQA_VV_M1_MASK = 1134,
- PseudoTH_VMAQA_VV_M2 = 1135,
- PseudoTH_VMAQA_VV_M2_MASK = 1136,
- PseudoTH_VMAQA_VV_M4 = 1137,
- PseudoTH_VMAQA_VV_M4_MASK = 1138,
- PseudoTH_VMAQA_VV_M8 = 1139,
- PseudoTH_VMAQA_VV_M8_MASK = 1140,
- PseudoTH_VMAQA_VV_MF2 = 1141,
- PseudoTH_VMAQA_VV_MF2_MASK = 1142,
- PseudoTH_VMAQA_VX_M1 = 1143,
- PseudoTH_VMAQA_VX_M1_MASK = 1144,
- PseudoTH_VMAQA_VX_M2 = 1145,
- PseudoTH_VMAQA_VX_M2_MASK = 1146,
- PseudoTH_VMAQA_VX_M4 = 1147,
- PseudoTH_VMAQA_VX_M4_MASK = 1148,
- PseudoTH_VMAQA_VX_M8 = 1149,
- PseudoTH_VMAQA_VX_M8_MASK = 1150,
- PseudoTH_VMAQA_VX_MF2 = 1151,
- PseudoTH_VMAQA_VX_MF2_MASK = 1152,
- PseudoTLSDESCCall = 1153,
- PseudoVAADDU_VV_M1 = 1154,
- PseudoVAADDU_VV_M1_MASK = 1155,
- PseudoVAADDU_VV_M2 = 1156,
- PseudoVAADDU_VV_M2_MASK = 1157,
- PseudoVAADDU_VV_M4 = 1158,
- PseudoVAADDU_VV_M4_MASK = 1159,
- PseudoVAADDU_VV_M8 = 1160,
- PseudoVAADDU_VV_M8_MASK = 1161,
- PseudoVAADDU_VV_MF2 = 1162,
- PseudoVAADDU_VV_MF2_MASK = 1163,
- PseudoVAADDU_VV_MF4 = 1164,
- PseudoVAADDU_VV_MF4_MASK = 1165,
- PseudoVAADDU_VV_MF8 = 1166,
- PseudoVAADDU_VV_MF8_MASK = 1167,
- PseudoVAADDU_VX_M1 = 1168,
- PseudoVAADDU_VX_M1_MASK = 1169,
- PseudoVAADDU_VX_M2 = 1170,
- PseudoVAADDU_VX_M2_MASK = 1171,
- PseudoVAADDU_VX_M4 = 1172,
- PseudoVAADDU_VX_M4_MASK = 1173,
- PseudoVAADDU_VX_M8 = 1174,
- PseudoVAADDU_VX_M8_MASK = 1175,
- PseudoVAADDU_VX_MF2 = 1176,
- PseudoVAADDU_VX_MF2_MASK = 1177,
- PseudoVAADDU_VX_MF4 = 1178,
- PseudoVAADDU_VX_MF4_MASK = 1179,
- PseudoVAADDU_VX_MF8 = 1180,
- PseudoVAADDU_VX_MF8_MASK = 1181,
- PseudoVAADD_VV_M1 = 1182,
- PseudoVAADD_VV_M1_MASK = 1183,
- PseudoVAADD_VV_M2 = 1184,
- PseudoVAADD_VV_M2_MASK = 1185,
- PseudoVAADD_VV_M4 = 1186,
- PseudoVAADD_VV_M4_MASK = 1187,
- PseudoVAADD_VV_M8 = 1188,
- PseudoVAADD_VV_M8_MASK = 1189,
- PseudoVAADD_VV_MF2 = 1190,
- PseudoVAADD_VV_MF2_MASK = 1191,
- PseudoVAADD_VV_MF4 = 1192,
- PseudoVAADD_VV_MF4_MASK = 1193,
- PseudoVAADD_VV_MF8 = 1194,
- PseudoVAADD_VV_MF8_MASK = 1195,
- PseudoVAADD_VX_M1 = 1196,
- PseudoVAADD_VX_M1_MASK = 1197,
- PseudoVAADD_VX_M2 = 1198,
- PseudoVAADD_VX_M2_MASK = 1199,
- PseudoVAADD_VX_M4 = 1200,
- PseudoVAADD_VX_M4_MASK = 1201,
- PseudoVAADD_VX_M8 = 1202,
- PseudoVAADD_VX_M8_MASK = 1203,
- PseudoVAADD_VX_MF2 = 1204,
- PseudoVAADD_VX_MF2_MASK = 1205,
- PseudoVAADD_VX_MF4 = 1206,
- PseudoVAADD_VX_MF4_MASK = 1207,
- PseudoVAADD_VX_MF8 = 1208,
- PseudoVAADD_VX_MF8_MASK = 1209,
- PseudoVADC_VIM_M1 = 1210,
- PseudoVADC_VIM_M2 = 1211,
- PseudoVADC_VIM_M4 = 1212,
- PseudoVADC_VIM_M8 = 1213,
- PseudoVADC_VIM_MF2 = 1214,
- PseudoVADC_VIM_MF4 = 1215,
- PseudoVADC_VIM_MF8 = 1216,
- PseudoVADC_VVM_M1 = 1217,
- PseudoVADC_VVM_M2 = 1218,
- PseudoVADC_VVM_M4 = 1219,
- PseudoVADC_VVM_M8 = 1220,
- PseudoVADC_VVM_MF2 = 1221,
- PseudoVADC_VVM_MF4 = 1222,
- PseudoVADC_VVM_MF8 = 1223,
- PseudoVADC_VXM_M1 = 1224,
- PseudoVADC_VXM_M2 = 1225,
- PseudoVADC_VXM_M4 = 1226,
- PseudoVADC_VXM_M8 = 1227,
- PseudoVADC_VXM_MF2 = 1228,
- PseudoVADC_VXM_MF4 = 1229,
- PseudoVADC_VXM_MF8 = 1230,
- PseudoVADD_VI_M1 = 1231,
- PseudoVADD_VI_M1_MASK = 1232,
- PseudoVADD_VI_M2 = 1233,
- PseudoVADD_VI_M2_MASK = 1234,
- PseudoVADD_VI_M4 = 1235,
- PseudoVADD_VI_M4_MASK = 1236,
- PseudoVADD_VI_M8 = 1237,
- PseudoVADD_VI_M8_MASK = 1238,
- PseudoVADD_VI_MF2 = 1239,
- PseudoVADD_VI_MF2_MASK = 1240,
- PseudoVADD_VI_MF4 = 1241,
- PseudoVADD_VI_MF4_MASK = 1242,
- PseudoVADD_VI_MF8 = 1243,
- PseudoVADD_VI_MF8_MASK = 1244,
- PseudoVADD_VV_M1 = 1245,
- PseudoVADD_VV_M1_MASK = 1246,
- PseudoVADD_VV_M2 = 1247,
- PseudoVADD_VV_M2_MASK = 1248,
- PseudoVADD_VV_M4 = 1249,
- PseudoVADD_VV_M4_MASK = 1250,
- PseudoVADD_VV_M8 = 1251,
- PseudoVADD_VV_M8_MASK = 1252,
- PseudoVADD_VV_MF2 = 1253,
- PseudoVADD_VV_MF2_MASK = 1254,
- PseudoVADD_VV_MF4 = 1255,
- PseudoVADD_VV_MF4_MASK = 1256,
- PseudoVADD_VV_MF8 = 1257,
- PseudoVADD_VV_MF8_MASK = 1258,
- PseudoVADD_VX_M1 = 1259,
- PseudoVADD_VX_M1_MASK = 1260,
- PseudoVADD_VX_M2 = 1261,
- PseudoVADD_VX_M2_MASK = 1262,
- PseudoVADD_VX_M4 = 1263,
- PseudoVADD_VX_M4_MASK = 1264,
- PseudoVADD_VX_M8 = 1265,
- PseudoVADD_VX_M8_MASK = 1266,
- PseudoVADD_VX_MF2 = 1267,
- PseudoVADD_VX_MF2_MASK = 1268,
- PseudoVADD_VX_MF4 = 1269,
- PseudoVADD_VX_MF4_MASK = 1270,
- PseudoVADD_VX_MF8 = 1271,
- PseudoVADD_VX_MF8_MASK = 1272,
- PseudoVAESDF_VS_M1_M1 = 1273,
- PseudoVAESDF_VS_M1_MF2 = 1274,
- PseudoVAESDF_VS_M1_MF4 = 1275,
- PseudoVAESDF_VS_M1_MF8 = 1276,
- PseudoVAESDF_VS_M2_M1 = 1277,
- PseudoVAESDF_VS_M2_M2 = 1278,
- PseudoVAESDF_VS_M2_MF2 = 1279,
- PseudoVAESDF_VS_M2_MF4 = 1280,
- PseudoVAESDF_VS_M2_MF8 = 1281,
- PseudoVAESDF_VS_M4_M1 = 1282,
- PseudoVAESDF_VS_M4_M2 = 1283,
- PseudoVAESDF_VS_M4_M4 = 1284,
- PseudoVAESDF_VS_M4_MF2 = 1285,
- PseudoVAESDF_VS_M4_MF4 = 1286,
- PseudoVAESDF_VS_M4_MF8 = 1287,
- PseudoVAESDF_VS_M8_M1 = 1288,
- PseudoVAESDF_VS_M8_M2 = 1289,
- PseudoVAESDF_VS_M8_M4 = 1290,
- PseudoVAESDF_VS_M8_MF2 = 1291,
- PseudoVAESDF_VS_M8_MF4 = 1292,
- PseudoVAESDF_VS_M8_MF8 = 1293,
- PseudoVAESDF_VS_MF2_MF2 = 1294,
- PseudoVAESDF_VS_MF2_MF4 = 1295,
- PseudoVAESDF_VS_MF2_MF8 = 1296,
- PseudoVAESDF_VV_M1 = 1297,
- PseudoVAESDF_VV_M2 = 1298,
- PseudoVAESDF_VV_M4 = 1299,
- PseudoVAESDF_VV_M8 = 1300,
- PseudoVAESDF_VV_MF2 = 1301,
- PseudoVAESDM_VS_M1_M1 = 1302,
- PseudoVAESDM_VS_M1_MF2 = 1303,
- PseudoVAESDM_VS_M1_MF4 = 1304,
- PseudoVAESDM_VS_M1_MF8 = 1305,
- PseudoVAESDM_VS_M2_M1 = 1306,
- PseudoVAESDM_VS_M2_M2 = 1307,
- PseudoVAESDM_VS_M2_MF2 = 1308,
- PseudoVAESDM_VS_M2_MF4 = 1309,
- PseudoVAESDM_VS_M2_MF8 = 1310,
- PseudoVAESDM_VS_M4_M1 = 1311,
- PseudoVAESDM_VS_M4_M2 = 1312,
- PseudoVAESDM_VS_M4_M4 = 1313,
- PseudoVAESDM_VS_M4_MF2 = 1314,
- PseudoVAESDM_VS_M4_MF4 = 1315,
- PseudoVAESDM_VS_M4_MF8 = 1316,
- PseudoVAESDM_VS_M8_M1 = 1317,
- PseudoVAESDM_VS_M8_M2 = 1318,
- PseudoVAESDM_VS_M8_M4 = 1319,
- PseudoVAESDM_VS_M8_MF2 = 1320,
- PseudoVAESDM_VS_M8_MF4 = 1321,
- PseudoVAESDM_VS_M8_MF8 = 1322,
- PseudoVAESDM_VS_MF2_MF2 = 1323,
- PseudoVAESDM_VS_MF2_MF4 = 1324,
- PseudoVAESDM_VS_MF2_MF8 = 1325,
- PseudoVAESDM_VV_M1 = 1326,
- PseudoVAESDM_VV_M2 = 1327,
- PseudoVAESDM_VV_M4 = 1328,
- PseudoVAESDM_VV_M8 = 1329,
- PseudoVAESDM_VV_MF2 = 1330,
- PseudoVAESEF_VS_M1_M1 = 1331,
- PseudoVAESEF_VS_M1_MF2 = 1332,
- PseudoVAESEF_VS_M1_MF4 = 1333,
- PseudoVAESEF_VS_M1_MF8 = 1334,
- PseudoVAESEF_VS_M2_M1 = 1335,
- PseudoVAESEF_VS_M2_M2 = 1336,
- PseudoVAESEF_VS_M2_MF2 = 1337,
- PseudoVAESEF_VS_M2_MF4 = 1338,
- PseudoVAESEF_VS_M2_MF8 = 1339,
- PseudoVAESEF_VS_M4_M1 = 1340,
- PseudoVAESEF_VS_M4_M2 = 1341,
- PseudoVAESEF_VS_M4_M4 = 1342,
- PseudoVAESEF_VS_M4_MF2 = 1343,
- PseudoVAESEF_VS_M4_MF4 = 1344,
- PseudoVAESEF_VS_M4_MF8 = 1345,
- PseudoVAESEF_VS_M8_M1 = 1346,
- PseudoVAESEF_VS_M8_M2 = 1347,
- PseudoVAESEF_VS_M8_M4 = 1348,
- PseudoVAESEF_VS_M8_MF2 = 1349,
- PseudoVAESEF_VS_M8_MF4 = 1350,
- PseudoVAESEF_VS_M8_MF8 = 1351,
- PseudoVAESEF_VS_MF2_MF2 = 1352,
- PseudoVAESEF_VS_MF2_MF4 = 1353,
- PseudoVAESEF_VS_MF2_MF8 = 1354,
- PseudoVAESEF_VV_M1 = 1355,
- PseudoVAESEF_VV_M2 = 1356,
- PseudoVAESEF_VV_M4 = 1357,
- PseudoVAESEF_VV_M8 = 1358,
- PseudoVAESEF_VV_MF2 = 1359,
- PseudoVAESEM_VS_M1_M1 = 1360,
- PseudoVAESEM_VS_M1_MF2 = 1361,
- PseudoVAESEM_VS_M1_MF4 = 1362,
- PseudoVAESEM_VS_M1_MF8 = 1363,
- PseudoVAESEM_VS_M2_M1 = 1364,
- PseudoVAESEM_VS_M2_M2 = 1365,
- PseudoVAESEM_VS_M2_MF2 = 1366,
- PseudoVAESEM_VS_M2_MF4 = 1367,
- PseudoVAESEM_VS_M2_MF8 = 1368,
- PseudoVAESEM_VS_M4_M1 = 1369,
- PseudoVAESEM_VS_M4_M2 = 1370,
- PseudoVAESEM_VS_M4_M4 = 1371,
- PseudoVAESEM_VS_M4_MF2 = 1372,
- PseudoVAESEM_VS_M4_MF4 = 1373,
- PseudoVAESEM_VS_M4_MF8 = 1374,
- PseudoVAESEM_VS_M8_M1 = 1375,
- PseudoVAESEM_VS_M8_M2 = 1376,
- PseudoVAESEM_VS_M8_M4 = 1377,
- PseudoVAESEM_VS_M8_MF2 = 1378,
- PseudoVAESEM_VS_M8_MF4 = 1379,
- PseudoVAESEM_VS_M8_MF8 = 1380,
- PseudoVAESEM_VS_MF2_MF2 = 1381,
- PseudoVAESEM_VS_MF2_MF4 = 1382,
- PseudoVAESEM_VS_MF2_MF8 = 1383,
- PseudoVAESEM_VV_M1 = 1384,
- PseudoVAESEM_VV_M2 = 1385,
- PseudoVAESEM_VV_M4 = 1386,
- PseudoVAESEM_VV_M8 = 1387,
- PseudoVAESEM_VV_MF2 = 1388,
- PseudoVAESKF1_VI_M1 = 1389,
- PseudoVAESKF1_VI_M2 = 1390,
- PseudoVAESKF1_VI_M4 = 1391,
- PseudoVAESKF1_VI_M8 = 1392,
- PseudoVAESKF1_VI_MF2 = 1393,
- PseudoVAESKF2_VI_M1 = 1394,
- PseudoVAESKF2_VI_M2 = 1395,
- PseudoVAESKF2_VI_M4 = 1396,
- PseudoVAESKF2_VI_M8 = 1397,
- PseudoVAESKF2_VI_MF2 = 1398,
- PseudoVAESZ_VS_M1_M1 = 1399,
- PseudoVAESZ_VS_M1_MF2 = 1400,
- PseudoVAESZ_VS_M1_MF4 = 1401,
- PseudoVAESZ_VS_M1_MF8 = 1402,
- PseudoVAESZ_VS_M2_M1 = 1403,
- PseudoVAESZ_VS_M2_M2 = 1404,
- PseudoVAESZ_VS_M2_MF2 = 1405,
- PseudoVAESZ_VS_M2_MF4 = 1406,
- PseudoVAESZ_VS_M2_MF8 = 1407,
- PseudoVAESZ_VS_M4_M1 = 1408,
- PseudoVAESZ_VS_M4_M2 = 1409,
- PseudoVAESZ_VS_M4_M4 = 1410,
- PseudoVAESZ_VS_M4_MF2 = 1411,
- PseudoVAESZ_VS_M4_MF4 = 1412,
- PseudoVAESZ_VS_M4_MF8 = 1413,
- PseudoVAESZ_VS_M8_M1 = 1414,
- PseudoVAESZ_VS_M8_M2 = 1415,
- PseudoVAESZ_VS_M8_M4 = 1416,
- PseudoVAESZ_VS_M8_MF2 = 1417,
- PseudoVAESZ_VS_M8_MF4 = 1418,
- PseudoVAESZ_VS_M8_MF8 = 1419,
- PseudoVAESZ_VS_MF2_MF2 = 1420,
- PseudoVAESZ_VS_MF2_MF4 = 1421,
- PseudoVAESZ_VS_MF2_MF8 = 1422,
- PseudoVANDN_VV_M1 = 1423,
- PseudoVANDN_VV_M1_MASK = 1424,
- PseudoVANDN_VV_M2 = 1425,
- PseudoVANDN_VV_M2_MASK = 1426,
- PseudoVANDN_VV_M4 = 1427,
- PseudoVANDN_VV_M4_MASK = 1428,
- PseudoVANDN_VV_M8 = 1429,
- PseudoVANDN_VV_M8_MASK = 1430,
- PseudoVANDN_VV_MF2 = 1431,
- PseudoVANDN_VV_MF2_MASK = 1432,
- PseudoVANDN_VV_MF4 = 1433,
- PseudoVANDN_VV_MF4_MASK = 1434,
- PseudoVANDN_VV_MF8 = 1435,
- PseudoVANDN_VV_MF8_MASK = 1436,
- PseudoVANDN_VX_M1 = 1437,
- PseudoVANDN_VX_M1_MASK = 1438,
- PseudoVANDN_VX_M2 = 1439,
- PseudoVANDN_VX_M2_MASK = 1440,
- PseudoVANDN_VX_M4 = 1441,
- PseudoVANDN_VX_M4_MASK = 1442,
- PseudoVANDN_VX_M8 = 1443,
- PseudoVANDN_VX_M8_MASK = 1444,
- PseudoVANDN_VX_MF2 = 1445,
- PseudoVANDN_VX_MF2_MASK = 1446,
- PseudoVANDN_VX_MF4 = 1447,
- PseudoVANDN_VX_MF4_MASK = 1448,
- PseudoVANDN_VX_MF8 = 1449,
- PseudoVANDN_VX_MF8_MASK = 1450,
- PseudoVAND_VI_M1 = 1451,
- PseudoVAND_VI_M1_MASK = 1452,
- PseudoVAND_VI_M2 = 1453,
- PseudoVAND_VI_M2_MASK = 1454,
- PseudoVAND_VI_M4 = 1455,
- PseudoVAND_VI_M4_MASK = 1456,
- PseudoVAND_VI_M8 = 1457,
- PseudoVAND_VI_M8_MASK = 1458,
- PseudoVAND_VI_MF2 = 1459,
- PseudoVAND_VI_MF2_MASK = 1460,
- PseudoVAND_VI_MF4 = 1461,
- PseudoVAND_VI_MF4_MASK = 1462,
- PseudoVAND_VI_MF8 = 1463,
- PseudoVAND_VI_MF8_MASK = 1464,
- PseudoVAND_VV_M1 = 1465,
- PseudoVAND_VV_M1_MASK = 1466,
- PseudoVAND_VV_M2 = 1467,
- PseudoVAND_VV_M2_MASK = 1468,
- PseudoVAND_VV_M4 = 1469,
- PseudoVAND_VV_M4_MASK = 1470,
- PseudoVAND_VV_M8 = 1471,
- PseudoVAND_VV_M8_MASK = 1472,
- PseudoVAND_VV_MF2 = 1473,
- PseudoVAND_VV_MF2_MASK = 1474,
- PseudoVAND_VV_MF4 = 1475,
- PseudoVAND_VV_MF4_MASK = 1476,
- PseudoVAND_VV_MF8 = 1477,
- PseudoVAND_VV_MF8_MASK = 1478,
- PseudoVAND_VX_M1 = 1479,
- PseudoVAND_VX_M1_MASK = 1480,
- PseudoVAND_VX_M2 = 1481,
- PseudoVAND_VX_M2_MASK = 1482,
- PseudoVAND_VX_M4 = 1483,
- PseudoVAND_VX_M4_MASK = 1484,
- PseudoVAND_VX_M8 = 1485,
- PseudoVAND_VX_M8_MASK = 1486,
- PseudoVAND_VX_MF2 = 1487,
- PseudoVAND_VX_MF2_MASK = 1488,
- PseudoVAND_VX_MF4 = 1489,
- PseudoVAND_VX_MF4_MASK = 1490,
- PseudoVAND_VX_MF8 = 1491,
- PseudoVAND_VX_MF8_MASK = 1492,
- PseudoVASUBU_VV_M1 = 1493,
- PseudoVASUBU_VV_M1_MASK = 1494,
- PseudoVASUBU_VV_M2 = 1495,
- PseudoVASUBU_VV_M2_MASK = 1496,
- PseudoVASUBU_VV_M4 = 1497,
- PseudoVASUBU_VV_M4_MASK = 1498,
- PseudoVASUBU_VV_M8 = 1499,
- PseudoVASUBU_VV_M8_MASK = 1500,
- PseudoVASUBU_VV_MF2 = 1501,
- PseudoVASUBU_VV_MF2_MASK = 1502,
- PseudoVASUBU_VV_MF4 = 1503,
- PseudoVASUBU_VV_MF4_MASK = 1504,
- PseudoVASUBU_VV_MF8 = 1505,
- PseudoVASUBU_VV_MF8_MASK = 1506,
- PseudoVASUBU_VX_M1 = 1507,
- PseudoVASUBU_VX_M1_MASK = 1508,
- PseudoVASUBU_VX_M2 = 1509,
- PseudoVASUBU_VX_M2_MASK = 1510,
- PseudoVASUBU_VX_M4 = 1511,
- PseudoVASUBU_VX_M4_MASK = 1512,
- PseudoVASUBU_VX_M8 = 1513,
- PseudoVASUBU_VX_M8_MASK = 1514,
- PseudoVASUBU_VX_MF2 = 1515,
- PseudoVASUBU_VX_MF2_MASK = 1516,
- PseudoVASUBU_VX_MF4 = 1517,
- PseudoVASUBU_VX_MF4_MASK = 1518,
- PseudoVASUBU_VX_MF8 = 1519,
- PseudoVASUBU_VX_MF8_MASK = 1520,
- PseudoVASUB_VV_M1 = 1521,
- PseudoVASUB_VV_M1_MASK = 1522,
- PseudoVASUB_VV_M2 = 1523,
- PseudoVASUB_VV_M2_MASK = 1524,
- PseudoVASUB_VV_M4 = 1525,
- PseudoVASUB_VV_M4_MASK = 1526,
- PseudoVASUB_VV_M8 = 1527,
- PseudoVASUB_VV_M8_MASK = 1528,
- PseudoVASUB_VV_MF2 = 1529,
- PseudoVASUB_VV_MF2_MASK = 1530,
- PseudoVASUB_VV_MF4 = 1531,
- PseudoVASUB_VV_MF4_MASK = 1532,
- PseudoVASUB_VV_MF8 = 1533,
- PseudoVASUB_VV_MF8_MASK = 1534,
- PseudoVASUB_VX_M1 = 1535,
- PseudoVASUB_VX_M1_MASK = 1536,
- PseudoVASUB_VX_M2 = 1537,
- PseudoVASUB_VX_M2_MASK = 1538,
- PseudoVASUB_VX_M4 = 1539,
- PseudoVASUB_VX_M4_MASK = 1540,
- PseudoVASUB_VX_M8 = 1541,
- PseudoVASUB_VX_M8_MASK = 1542,
- PseudoVASUB_VX_MF2 = 1543,
- PseudoVASUB_VX_MF2_MASK = 1544,
- PseudoVASUB_VX_MF4 = 1545,
- PseudoVASUB_VX_MF4_MASK = 1546,
- PseudoVASUB_VX_MF8 = 1547,
- PseudoVASUB_VX_MF8_MASK = 1548,
- PseudoVBREV8_V_M1 = 1549,
- PseudoVBREV8_V_M1_MASK = 1550,
- PseudoVBREV8_V_M2 = 1551,
- PseudoVBREV8_V_M2_MASK = 1552,
- PseudoVBREV8_V_M4 = 1553,
- PseudoVBREV8_V_M4_MASK = 1554,
- PseudoVBREV8_V_M8 = 1555,
- PseudoVBREV8_V_M8_MASK = 1556,
- PseudoVBREV8_V_MF2 = 1557,
- PseudoVBREV8_V_MF2_MASK = 1558,
- PseudoVBREV8_V_MF4 = 1559,
- PseudoVBREV8_V_MF4_MASK = 1560,
- PseudoVBREV8_V_MF8 = 1561,
- PseudoVBREV8_V_MF8_MASK = 1562,
- PseudoVBREV_V_M1 = 1563,
- PseudoVBREV_V_M1_MASK = 1564,
- PseudoVBREV_V_M2 = 1565,
- PseudoVBREV_V_M2_MASK = 1566,
- PseudoVBREV_V_M4 = 1567,
- PseudoVBREV_V_M4_MASK = 1568,
- PseudoVBREV_V_M8 = 1569,
- PseudoVBREV_V_M8_MASK = 1570,
- PseudoVBREV_V_MF2 = 1571,
- PseudoVBREV_V_MF2_MASK = 1572,
- PseudoVBREV_V_MF4 = 1573,
- PseudoVBREV_V_MF4_MASK = 1574,
- PseudoVBREV_V_MF8 = 1575,
- PseudoVBREV_V_MF8_MASK = 1576,
- PseudoVCLMULH_VV_M1 = 1577,
- PseudoVCLMULH_VV_M1_MASK = 1578,
- PseudoVCLMULH_VV_M2 = 1579,
- PseudoVCLMULH_VV_M2_MASK = 1580,
- PseudoVCLMULH_VV_M4 = 1581,
- PseudoVCLMULH_VV_M4_MASK = 1582,
- PseudoVCLMULH_VV_M8 = 1583,
- PseudoVCLMULH_VV_M8_MASK = 1584,
- PseudoVCLMULH_VV_MF2 = 1585,
- PseudoVCLMULH_VV_MF2_MASK = 1586,
- PseudoVCLMULH_VV_MF4 = 1587,
- PseudoVCLMULH_VV_MF4_MASK = 1588,
- PseudoVCLMULH_VV_MF8 = 1589,
- PseudoVCLMULH_VV_MF8_MASK = 1590,
- PseudoVCLMULH_VX_M1 = 1591,
- PseudoVCLMULH_VX_M1_MASK = 1592,
- PseudoVCLMULH_VX_M2 = 1593,
- PseudoVCLMULH_VX_M2_MASK = 1594,
- PseudoVCLMULH_VX_M4 = 1595,
- PseudoVCLMULH_VX_M4_MASK = 1596,
- PseudoVCLMULH_VX_M8 = 1597,
- PseudoVCLMULH_VX_M8_MASK = 1598,
- PseudoVCLMULH_VX_MF2 = 1599,
- PseudoVCLMULH_VX_MF2_MASK = 1600,
- PseudoVCLMULH_VX_MF4 = 1601,
- PseudoVCLMULH_VX_MF4_MASK = 1602,
- PseudoVCLMULH_VX_MF8 = 1603,
- PseudoVCLMULH_VX_MF8_MASK = 1604,
- PseudoVCLMUL_VV_M1 = 1605,
- PseudoVCLMUL_VV_M1_MASK = 1606,
- PseudoVCLMUL_VV_M2 = 1607,
- PseudoVCLMUL_VV_M2_MASK = 1608,
- PseudoVCLMUL_VV_M4 = 1609,
- PseudoVCLMUL_VV_M4_MASK = 1610,
- PseudoVCLMUL_VV_M8 = 1611,
- PseudoVCLMUL_VV_M8_MASK = 1612,
- PseudoVCLMUL_VV_MF2 = 1613,
- PseudoVCLMUL_VV_MF2_MASK = 1614,
- PseudoVCLMUL_VV_MF4 = 1615,
- PseudoVCLMUL_VV_MF4_MASK = 1616,
- PseudoVCLMUL_VV_MF8 = 1617,
- PseudoVCLMUL_VV_MF8_MASK = 1618,
- PseudoVCLMUL_VX_M1 = 1619,
- PseudoVCLMUL_VX_M1_MASK = 1620,
- PseudoVCLMUL_VX_M2 = 1621,
- PseudoVCLMUL_VX_M2_MASK = 1622,
- PseudoVCLMUL_VX_M4 = 1623,
- PseudoVCLMUL_VX_M4_MASK = 1624,
- PseudoVCLMUL_VX_M8 = 1625,
- PseudoVCLMUL_VX_M8_MASK = 1626,
- PseudoVCLMUL_VX_MF2 = 1627,
- PseudoVCLMUL_VX_MF2_MASK = 1628,
- PseudoVCLMUL_VX_MF4 = 1629,
- PseudoVCLMUL_VX_MF4_MASK = 1630,
- PseudoVCLMUL_VX_MF8 = 1631,
- PseudoVCLMUL_VX_MF8_MASK = 1632,
- PseudoVCLZ_V_M1 = 1633,
- PseudoVCLZ_V_M1_MASK = 1634,
- PseudoVCLZ_V_M2 = 1635,
- PseudoVCLZ_V_M2_MASK = 1636,
- PseudoVCLZ_V_M4 = 1637,
- PseudoVCLZ_V_M4_MASK = 1638,
- PseudoVCLZ_V_M8 = 1639,
- PseudoVCLZ_V_M8_MASK = 1640,
- PseudoVCLZ_V_MF2 = 1641,
- PseudoVCLZ_V_MF2_MASK = 1642,
- PseudoVCLZ_V_MF4 = 1643,
- PseudoVCLZ_V_MF4_MASK = 1644,
- PseudoVCLZ_V_MF8 = 1645,
- PseudoVCLZ_V_MF8_MASK = 1646,
- PseudoVCOMPRESS_VM_M1_E16 = 1647,
- PseudoVCOMPRESS_VM_M1_E32 = 1648,
- PseudoVCOMPRESS_VM_M1_E64 = 1649,
- PseudoVCOMPRESS_VM_M1_E8 = 1650,
- PseudoVCOMPRESS_VM_M2_E16 = 1651,
- PseudoVCOMPRESS_VM_M2_E32 = 1652,
- PseudoVCOMPRESS_VM_M2_E64 = 1653,
- PseudoVCOMPRESS_VM_M2_E8 = 1654,
- PseudoVCOMPRESS_VM_M4_E16 = 1655,
- PseudoVCOMPRESS_VM_M4_E32 = 1656,
- PseudoVCOMPRESS_VM_M4_E64 = 1657,
- PseudoVCOMPRESS_VM_M4_E8 = 1658,
- PseudoVCOMPRESS_VM_M8_E16 = 1659,
- PseudoVCOMPRESS_VM_M8_E32 = 1660,
- PseudoVCOMPRESS_VM_M8_E64 = 1661,
- PseudoVCOMPRESS_VM_M8_E8 = 1662,
- PseudoVCOMPRESS_VM_MF2_E16 = 1663,
- PseudoVCOMPRESS_VM_MF2_E32 = 1664,
- PseudoVCOMPRESS_VM_MF2_E8 = 1665,
- PseudoVCOMPRESS_VM_MF4_E16 = 1666,
- PseudoVCOMPRESS_VM_MF4_E8 = 1667,
- PseudoVCOMPRESS_VM_MF8_E8 = 1668,
- PseudoVCPOP_M_B1 = 1669,
- PseudoVCPOP_M_B16 = 1670,
- PseudoVCPOP_M_B16_MASK = 1671,
- PseudoVCPOP_M_B1_MASK = 1672,
- PseudoVCPOP_M_B2 = 1673,
- PseudoVCPOP_M_B2_MASK = 1674,
- PseudoVCPOP_M_B32 = 1675,
- PseudoVCPOP_M_B32_MASK = 1676,
- PseudoVCPOP_M_B4 = 1677,
- PseudoVCPOP_M_B4_MASK = 1678,
- PseudoVCPOP_M_B64 = 1679,
- PseudoVCPOP_M_B64_MASK = 1680,
- PseudoVCPOP_M_B8 = 1681,
- PseudoVCPOP_M_B8_MASK = 1682,
- PseudoVCPOP_V_M1 = 1683,
- PseudoVCPOP_V_M1_MASK = 1684,
- PseudoVCPOP_V_M2 = 1685,
- PseudoVCPOP_V_M2_MASK = 1686,
- PseudoVCPOP_V_M4 = 1687,
- PseudoVCPOP_V_M4_MASK = 1688,
- PseudoVCPOP_V_M8 = 1689,
- PseudoVCPOP_V_M8_MASK = 1690,
- PseudoVCPOP_V_MF2 = 1691,
- PseudoVCPOP_V_MF2_MASK = 1692,
- PseudoVCPOP_V_MF4 = 1693,
- PseudoVCPOP_V_MF4_MASK = 1694,
- PseudoVCPOP_V_MF8 = 1695,
- PseudoVCPOP_V_MF8_MASK = 1696,
- PseudoVCTZ_V_M1 = 1697,
- PseudoVCTZ_V_M1_MASK = 1698,
- PseudoVCTZ_V_M2 = 1699,
- PseudoVCTZ_V_M2_MASK = 1700,
- PseudoVCTZ_V_M4 = 1701,
- PseudoVCTZ_V_M4_MASK = 1702,
- PseudoVCTZ_V_M8 = 1703,
- PseudoVCTZ_V_M8_MASK = 1704,
- PseudoVCTZ_V_MF2 = 1705,
- PseudoVCTZ_V_MF2_MASK = 1706,
- PseudoVCTZ_V_MF4 = 1707,
- PseudoVCTZ_V_MF4_MASK = 1708,
- PseudoVCTZ_V_MF8 = 1709,
- PseudoVCTZ_V_MF8_MASK = 1710,
- PseudoVDIVU_VV_M1_E16 = 1711,
- PseudoVDIVU_VV_M1_E16_MASK = 1712,
- PseudoVDIVU_VV_M1_E32 = 1713,
- PseudoVDIVU_VV_M1_E32_MASK = 1714,
- PseudoVDIVU_VV_M1_E64 = 1715,
- PseudoVDIVU_VV_M1_E64_MASK = 1716,
- PseudoVDIVU_VV_M1_E8 = 1717,
- PseudoVDIVU_VV_M1_E8_MASK = 1718,
- PseudoVDIVU_VV_M2_E16 = 1719,
- PseudoVDIVU_VV_M2_E16_MASK = 1720,
- PseudoVDIVU_VV_M2_E32 = 1721,
- PseudoVDIVU_VV_M2_E32_MASK = 1722,
- PseudoVDIVU_VV_M2_E64 = 1723,
- PseudoVDIVU_VV_M2_E64_MASK = 1724,
- PseudoVDIVU_VV_M2_E8 = 1725,
- PseudoVDIVU_VV_M2_E8_MASK = 1726,
- PseudoVDIVU_VV_M4_E16 = 1727,
- PseudoVDIVU_VV_M4_E16_MASK = 1728,
- PseudoVDIVU_VV_M4_E32 = 1729,
- PseudoVDIVU_VV_M4_E32_MASK = 1730,
- PseudoVDIVU_VV_M4_E64 = 1731,
- PseudoVDIVU_VV_M4_E64_MASK = 1732,
- PseudoVDIVU_VV_M4_E8 = 1733,
- PseudoVDIVU_VV_M4_E8_MASK = 1734,
- PseudoVDIVU_VV_M8_E16 = 1735,
- PseudoVDIVU_VV_M8_E16_MASK = 1736,
- PseudoVDIVU_VV_M8_E32 = 1737,
- PseudoVDIVU_VV_M8_E32_MASK = 1738,
- PseudoVDIVU_VV_M8_E64 = 1739,
- PseudoVDIVU_VV_M8_E64_MASK = 1740,
- PseudoVDIVU_VV_M8_E8 = 1741,
- PseudoVDIVU_VV_M8_E8_MASK = 1742,
- PseudoVDIVU_VV_MF2_E16 = 1743,
- PseudoVDIVU_VV_MF2_E16_MASK = 1744,
- PseudoVDIVU_VV_MF2_E32 = 1745,
- PseudoVDIVU_VV_MF2_E32_MASK = 1746,
- PseudoVDIVU_VV_MF2_E8 = 1747,
- PseudoVDIVU_VV_MF2_E8_MASK = 1748,
- PseudoVDIVU_VV_MF4_E16 = 1749,
- PseudoVDIVU_VV_MF4_E16_MASK = 1750,
- PseudoVDIVU_VV_MF4_E8 = 1751,
- PseudoVDIVU_VV_MF4_E8_MASK = 1752,
- PseudoVDIVU_VV_MF8_E8 = 1753,
- PseudoVDIVU_VV_MF8_E8_MASK = 1754,
- PseudoVDIVU_VX_M1_E16 = 1755,
- PseudoVDIVU_VX_M1_E16_MASK = 1756,
- PseudoVDIVU_VX_M1_E32 = 1757,
- PseudoVDIVU_VX_M1_E32_MASK = 1758,
- PseudoVDIVU_VX_M1_E64 = 1759,
- PseudoVDIVU_VX_M1_E64_MASK = 1760,
- PseudoVDIVU_VX_M1_E8 = 1761,
- PseudoVDIVU_VX_M1_E8_MASK = 1762,
- PseudoVDIVU_VX_M2_E16 = 1763,
- PseudoVDIVU_VX_M2_E16_MASK = 1764,
- PseudoVDIVU_VX_M2_E32 = 1765,
- PseudoVDIVU_VX_M2_E32_MASK = 1766,
- PseudoVDIVU_VX_M2_E64 = 1767,
- PseudoVDIVU_VX_M2_E64_MASK = 1768,
- PseudoVDIVU_VX_M2_E8 = 1769,
- PseudoVDIVU_VX_M2_E8_MASK = 1770,
- PseudoVDIVU_VX_M4_E16 = 1771,
- PseudoVDIVU_VX_M4_E16_MASK = 1772,
- PseudoVDIVU_VX_M4_E32 = 1773,
- PseudoVDIVU_VX_M4_E32_MASK = 1774,
- PseudoVDIVU_VX_M4_E64 = 1775,
- PseudoVDIVU_VX_M4_E64_MASK = 1776,
- PseudoVDIVU_VX_M4_E8 = 1777,
- PseudoVDIVU_VX_M4_E8_MASK = 1778,
- PseudoVDIVU_VX_M8_E16 = 1779,
- PseudoVDIVU_VX_M8_E16_MASK = 1780,
- PseudoVDIVU_VX_M8_E32 = 1781,
- PseudoVDIVU_VX_M8_E32_MASK = 1782,
- PseudoVDIVU_VX_M8_E64 = 1783,
- PseudoVDIVU_VX_M8_E64_MASK = 1784,
- PseudoVDIVU_VX_M8_E8 = 1785,
- PseudoVDIVU_VX_M8_E8_MASK = 1786,
- PseudoVDIVU_VX_MF2_E16 = 1787,
- PseudoVDIVU_VX_MF2_E16_MASK = 1788,
- PseudoVDIVU_VX_MF2_E32 = 1789,
- PseudoVDIVU_VX_MF2_E32_MASK = 1790,
- PseudoVDIVU_VX_MF2_E8 = 1791,
- PseudoVDIVU_VX_MF2_E8_MASK = 1792,
- PseudoVDIVU_VX_MF4_E16 = 1793,
- PseudoVDIVU_VX_MF4_E16_MASK = 1794,
- PseudoVDIVU_VX_MF4_E8 = 1795,
- PseudoVDIVU_VX_MF4_E8_MASK = 1796,
- PseudoVDIVU_VX_MF8_E8 = 1797,
- PseudoVDIVU_VX_MF8_E8_MASK = 1798,
- PseudoVDIV_VV_M1_E16 = 1799,
- PseudoVDIV_VV_M1_E16_MASK = 1800,
- PseudoVDIV_VV_M1_E32 = 1801,
- PseudoVDIV_VV_M1_E32_MASK = 1802,
- PseudoVDIV_VV_M1_E64 = 1803,
- PseudoVDIV_VV_M1_E64_MASK = 1804,
- PseudoVDIV_VV_M1_E8 = 1805,
- PseudoVDIV_VV_M1_E8_MASK = 1806,
- PseudoVDIV_VV_M2_E16 = 1807,
- PseudoVDIV_VV_M2_E16_MASK = 1808,
- PseudoVDIV_VV_M2_E32 = 1809,
- PseudoVDIV_VV_M2_E32_MASK = 1810,
- PseudoVDIV_VV_M2_E64 = 1811,
- PseudoVDIV_VV_M2_E64_MASK = 1812,
- PseudoVDIV_VV_M2_E8 = 1813,
- PseudoVDIV_VV_M2_E8_MASK = 1814,
- PseudoVDIV_VV_M4_E16 = 1815,
- PseudoVDIV_VV_M4_E16_MASK = 1816,
- PseudoVDIV_VV_M4_E32 = 1817,
- PseudoVDIV_VV_M4_E32_MASK = 1818,
- PseudoVDIV_VV_M4_E64 = 1819,
- PseudoVDIV_VV_M4_E64_MASK = 1820,
- PseudoVDIV_VV_M4_E8 = 1821,
- PseudoVDIV_VV_M4_E8_MASK = 1822,
- PseudoVDIV_VV_M8_E16 = 1823,
- PseudoVDIV_VV_M8_E16_MASK = 1824,
- PseudoVDIV_VV_M8_E32 = 1825,
- PseudoVDIV_VV_M8_E32_MASK = 1826,
- PseudoVDIV_VV_M8_E64 = 1827,
- PseudoVDIV_VV_M8_E64_MASK = 1828,
- PseudoVDIV_VV_M8_E8 = 1829,
- PseudoVDIV_VV_M8_E8_MASK = 1830,
- PseudoVDIV_VV_MF2_E16 = 1831,
- PseudoVDIV_VV_MF2_E16_MASK = 1832,
- PseudoVDIV_VV_MF2_E32 = 1833,
- PseudoVDIV_VV_MF2_E32_MASK = 1834,
- PseudoVDIV_VV_MF2_E8 = 1835,
- PseudoVDIV_VV_MF2_E8_MASK = 1836,
- PseudoVDIV_VV_MF4_E16 = 1837,
- PseudoVDIV_VV_MF4_E16_MASK = 1838,
- PseudoVDIV_VV_MF4_E8 = 1839,
- PseudoVDIV_VV_MF4_E8_MASK = 1840,
- PseudoVDIV_VV_MF8_E8 = 1841,
- PseudoVDIV_VV_MF8_E8_MASK = 1842,
- PseudoVDIV_VX_M1_E16 = 1843,
- PseudoVDIV_VX_M1_E16_MASK = 1844,
- PseudoVDIV_VX_M1_E32 = 1845,
- PseudoVDIV_VX_M1_E32_MASK = 1846,
- PseudoVDIV_VX_M1_E64 = 1847,
- PseudoVDIV_VX_M1_E64_MASK = 1848,
- PseudoVDIV_VX_M1_E8 = 1849,
- PseudoVDIV_VX_M1_E8_MASK = 1850,
- PseudoVDIV_VX_M2_E16 = 1851,
- PseudoVDIV_VX_M2_E16_MASK = 1852,
- PseudoVDIV_VX_M2_E32 = 1853,
- PseudoVDIV_VX_M2_E32_MASK = 1854,
- PseudoVDIV_VX_M2_E64 = 1855,
- PseudoVDIV_VX_M2_E64_MASK = 1856,
- PseudoVDIV_VX_M2_E8 = 1857,
- PseudoVDIV_VX_M2_E8_MASK = 1858,
- PseudoVDIV_VX_M4_E16 = 1859,
- PseudoVDIV_VX_M4_E16_MASK = 1860,
- PseudoVDIV_VX_M4_E32 = 1861,
- PseudoVDIV_VX_M4_E32_MASK = 1862,
- PseudoVDIV_VX_M4_E64 = 1863,
- PseudoVDIV_VX_M4_E64_MASK = 1864,
- PseudoVDIV_VX_M4_E8 = 1865,
- PseudoVDIV_VX_M4_E8_MASK = 1866,
- PseudoVDIV_VX_M8_E16 = 1867,
- PseudoVDIV_VX_M8_E16_MASK = 1868,
- PseudoVDIV_VX_M8_E32 = 1869,
- PseudoVDIV_VX_M8_E32_MASK = 1870,
- PseudoVDIV_VX_M8_E64 = 1871,
- PseudoVDIV_VX_M8_E64_MASK = 1872,
- PseudoVDIV_VX_M8_E8 = 1873,
- PseudoVDIV_VX_M8_E8_MASK = 1874,
- PseudoVDIV_VX_MF2_E16 = 1875,
- PseudoVDIV_VX_MF2_E16_MASK = 1876,
- PseudoVDIV_VX_MF2_E32 = 1877,
- PseudoVDIV_VX_MF2_E32_MASK = 1878,
- PseudoVDIV_VX_MF2_E8 = 1879,
- PseudoVDIV_VX_MF2_E8_MASK = 1880,
- PseudoVDIV_VX_MF4_E16 = 1881,
- PseudoVDIV_VX_MF4_E16_MASK = 1882,
- PseudoVDIV_VX_MF4_E8 = 1883,
- PseudoVDIV_VX_MF4_E8_MASK = 1884,
- PseudoVDIV_VX_MF8_E8 = 1885,
- PseudoVDIV_VX_MF8_E8_MASK = 1886,
- PseudoVFADD_VFPR16_M1_E16 = 1887,
- PseudoVFADD_VFPR16_M1_E16_MASK = 1888,
- PseudoVFADD_VFPR16_M2_E16 = 1889,
- PseudoVFADD_VFPR16_M2_E16_MASK = 1890,
- PseudoVFADD_VFPR16_M4_E16 = 1891,
- PseudoVFADD_VFPR16_M4_E16_MASK = 1892,
- PseudoVFADD_VFPR16_M8_E16 = 1893,
- PseudoVFADD_VFPR16_M8_E16_MASK = 1894,
- PseudoVFADD_VFPR16_MF2_E16 = 1895,
- PseudoVFADD_VFPR16_MF2_E16_MASK = 1896,
- PseudoVFADD_VFPR16_MF4_E16 = 1897,
- PseudoVFADD_VFPR16_MF4_E16_MASK = 1898,
- PseudoVFADD_VFPR32_M1_E32 = 1899,
- PseudoVFADD_VFPR32_M1_E32_MASK = 1900,
- PseudoVFADD_VFPR32_M2_E32 = 1901,
- PseudoVFADD_VFPR32_M2_E32_MASK = 1902,
- PseudoVFADD_VFPR32_M4_E32 = 1903,
- PseudoVFADD_VFPR32_M4_E32_MASK = 1904,
- PseudoVFADD_VFPR32_M8_E32 = 1905,
- PseudoVFADD_VFPR32_M8_E32_MASK = 1906,
- PseudoVFADD_VFPR32_MF2_E32 = 1907,
- PseudoVFADD_VFPR32_MF2_E32_MASK = 1908,
- PseudoVFADD_VFPR64_M1_E64 = 1909,
- PseudoVFADD_VFPR64_M1_E64_MASK = 1910,
- PseudoVFADD_VFPR64_M2_E64 = 1911,
- PseudoVFADD_VFPR64_M2_E64_MASK = 1912,
- PseudoVFADD_VFPR64_M4_E64 = 1913,
- PseudoVFADD_VFPR64_M4_E64_MASK = 1914,
- PseudoVFADD_VFPR64_M8_E64 = 1915,
- PseudoVFADD_VFPR64_M8_E64_MASK = 1916,
- PseudoVFADD_VV_M1_E16 = 1917,
- PseudoVFADD_VV_M1_E16_MASK = 1918,
- PseudoVFADD_VV_M1_E32 = 1919,
- PseudoVFADD_VV_M1_E32_MASK = 1920,
- PseudoVFADD_VV_M1_E64 = 1921,
- PseudoVFADD_VV_M1_E64_MASK = 1922,
- PseudoVFADD_VV_M2_E16 = 1923,
- PseudoVFADD_VV_M2_E16_MASK = 1924,
- PseudoVFADD_VV_M2_E32 = 1925,
- PseudoVFADD_VV_M2_E32_MASK = 1926,
- PseudoVFADD_VV_M2_E64 = 1927,
- PseudoVFADD_VV_M2_E64_MASK = 1928,
- PseudoVFADD_VV_M4_E16 = 1929,
- PseudoVFADD_VV_M4_E16_MASK = 1930,
- PseudoVFADD_VV_M4_E32 = 1931,
- PseudoVFADD_VV_M4_E32_MASK = 1932,
- PseudoVFADD_VV_M4_E64 = 1933,
- PseudoVFADD_VV_M4_E64_MASK = 1934,
- PseudoVFADD_VV_M8_E16 = 1935,
- PseudoVFADD_VV_M8_E16_MASK = 1936,
- PseudoVFADD_VV_M8_E32 = 1937,
- PseudoVFADD_VV_M8_E32_MASK = 1938,
- PseudoVFADD_VV_M8_E64 = 1939,
- PseudoVFADD_VV_M8_E64_MASK = 1940,
- PseudoVFADD_VV_MF2_E16 = 1941,
- PseudoVFADD_VV_MF2_E16_MASK = 1942,
- PseudoVFADD_VV_MF2_E32 = 1943,
- PseudoVFADD_VV_MF2_E32_MASK = 1944,
- PseudoVFADD_VV_MF4_E16 = 1945,
- PseudoVFADD_VV_MF4_E16_MASK = 1946,
- PseudoVFCLASS_V_M1 = 1947,
- PseudoVFCLASS_V_M1_MASK = 1948,
- PseudoVFCLASS_V_M2 = 1949,
- PseudoVFCLASS_V_M2_MASK = 1950,
- PseudoVFCLASS_V_M4 = 1951,
- PseudoVFCLASS_V_M4_MASK = 1952,
- PseudoVFCLASS_V_M8 = 1953,
- PseudoVFCLASS_V_M8_MASK = 1954,
- PseudoVFCLASS_V_MF2 = 1955,
- PseudoVFCLASS_V_MF2_MASK = 1956,
- PseudoVFCLASS_V_MF4 = 1957,
- PseudoVFCLASS_V_MF4_MASK = 1958,
- PseudoVFCVT_F_XU_V_M1_E16 = 1959,
- PseudoVFCVT_F_XU_V_M1_E16_MASK = 1960,
- PseudoVFCVT_F_XU_V_M1_E32 = 1961,
- PseudoVFCVT_F_XU_V_M1_E32_MASK = 1962,
- PseudoVFCVT_F_XU_V_M1_E64 = 1963,
- PseudoVFCVT_F_XU_V_M1_E64_MASK = 1964,
- PseudoVFCVT_F_XU_V_M2_E16 = 1965,
- PseudoVFCVT_F_XU_V_M2_E16_MASK = 1966,
- PseudoVFCVT_F_XU_V_M2_E32 = 1967,
- PseudoVFCVT_F_XU_V_M2_E32_MASK = 1968,
- PseudoVFCVT_F_XU_V_M2_E64 = 1969,
- PseudoVFCVT_F_XU_V_M2_E64_MASK = 1970,
- PseudoVFCVT_F_XU_V_M4_E16 = 1971,
- PseudoVFCVT_F_XU_V_M4_E16_MASK = 1972,
- PseudoVFCVT_F_XU_V_M4_E32 = 1973,
- PseudoVFCVT_F_XU_V_M4_E32_MASK = 1974,
- PseudoVFCVT_F_XU_V_M4_E64 = 1975,
- PseudoVFCVT_F_XU_V_M4_E64_MASK = 1976,
- PseudoVFCVT_F_XU_V_M8_E16 = 1977,
- PseudoVFCVT_F_XU_V_M8_E16_MASK = 1978,
- PseudoVFCVT_F_XU_V_M8_E32 = 1979,
- PseudoVFCVT_F_XU_V_M8_E32_MASK = 1980,
- PseudoVFCVT_F_XU_V_M8_E64 = 1981,
- PseudoVFCVT_F_XU_V_M8_E64_MASK = 1982,
- PseudoVFCVT_F_XU_V_MF2_E16 = 1983,
- PseudoVFCVT_F_XU_V_MF2_E16_MASK = 1984,
- PseudoVFCVT_F_XU_V_MF2_E32 = 1985,
- PseudoVFCVT_F_XU_V_MF2_E32_MASK = 1986,
- PseudoVFCVT_F_XU_V_MF4_E16 = 1987,
- PseudoVFCVT_F_XU_V_MF4_E16_MASK = 1988,
- PseudoVFCVT_F_X_V_M1_E16 = 1989,
- PseudoVFCVT_F_X_V_M1_E16_MASK = 1990,
- PseudoVFCVT_F_X_V_M1_E32 = 1991,
- PseudoVFCVT_F_X_V_M1_E32_MASK = 1992,
- PseudoVFCVT_F_X_V_M1_E64 = 1993,
- PseudoVFCVT_F_X_V_M1_E64_MASK = 1994,
- PseudoVFCVT_F_X_V_M2_E16 = 1995,
- PseudoVFCVT_F_X_V_M2_E16_MASK = 1996,
- PseudoVFCVT_F_X_V_M2_E32 = 1997,
- PseudoVFCVT_F_X_V_M2_E32_MASK = 1998,
- PseudoVFCVT_F_X_V_M2_E64 = 1999,
- PseudoVFCVT_F_X_V_M2_E64_MASK = 2000,
- PseudoVFCVT_F_X_V_M4_E16 = 2001,
- PseudoVFCVT_F_X_V_M4_E16_MASK = 2002,
- PseudoVFCVT_F_X_V_M4_E32 = 2003,
- PseudoVFCVT_F_X_V_M4_E32_MASK = 2004,
- PseudoVFCVT_F_X_V_M4_E64 = 2005,
- PseudoVFCVT_F_X_V_M4_E64_MASK = 2006,
- PseudoVFCVT_F_X_V_M8_E16 = 2007,
- PseudoVFCVT_F_X_V_M8_E16_MASK = 2008,
- PseudoVFCVT_F_X_V_M8_E32 = 2009,
- PseudoVFCVT_F_X_V_M8_E32_MASK = 2010,
- PseudoVFCVT_F_X_V_M8_E64 = 2011,
- PseudoVFCVT_F_X_V_M8_E64_MASK = 2012,
- PseudoVFCVT_F_X_V_MF2_E16 = 2013,
- PseudoVFCVT_F_X_V_MF2_E16_MASK = 2014,
- PseudoVFCVT_F_X_V_MF2_E32 = 2015,
- PseudoVFCVT_F_X_V_MF2_E32_MASK = 2016,
- PseudoVFCVT_F_X_V_MF4_E16 = 2017,
- PseudoVFCVT_F_X_V_MF4_E16_MASK = 2018,
- PseudoVFCVT_RTZ_XU_F_V_M1 = 2019,
- PseudoVFCVT_RTZ_XU_F_V_M1_MASK = 2020,
- PseudoVFCVT_RTZ_XU_F_V_M2 = 2021,
- PseudoVFCVT_RTZ_XU_F_V_M2_MASK = 2022,
- PseudoVFCVT_RTZ_XU_F_V_M4 = 2023,
- PseudoVFCVT_RTZ_XU_F_V_M4_MASK = 2024,
- PseudoVFCVT_RTZ_XU_F_V_M8 = 2025,
- PseudoVFCVT_RTZ_XU_F_V_M8_MASK = 2026,
- PseudoVFCVT_RTZ_XU_F_V_MF2 = 2027,
- PseudoVFCVT_RTZ_XU_F_V_MF2_MASK = 2028,
- PseudoVFCVT_RTZ_XU_F_V_MF4 = 2029,
- PseudoVFCVT_RTZ_XU_F_V_MF4_MASK = 2030,
- PseudoVFCVT_RTZ_X_F_V_M1 = 2031,
- PseudoVFCVT_RTZ_X_F_V_M1_MASK = 2032,
- PseudoVFCVT_RTZ_X_F_V_M2 = 2033,
- PseudoVFCVT_RTZ_X_F_V_M2_MASK = 2034,
- PseudoVFCVT_RTZ_X_F_V_M4 = 2035,
- PseudoVFCVT_RTZ_X_F_V_M4_MASK = 2036,
- PseudoVFCVT_RTZ_X_F_V_M8 = 2037,
- PseudoVFCVT_RTZ_X_F_V_M8_MASK = 2038,
- PseudoVFCVT_RTZ_X_F_V_MF2 = 2039,
- PseudoVFCVT_RTZ_X_F_V_MF2_MASK = 2040,
- PseudoVFCVT_RTZ_X_F_V_MF4 = 2041,
- PseudoVFCVT_RTZ_X_F_V_MF4_MASK = 2042,
- PseudoVFCVT_XU_F_V_M1 = 2043,
- PseudoVFCVT_XU_F_V_M1_MASK = 2044,
- PseudoVFCVT_XU_F_V_M2 = 2045,
- PseudoVFCVT_XU_F_V_M2_MASK = 2046,
- PseudoVFCVT_XU_F_V_M4 = 2047,
- PseudoVFCVT_XU_F_V_M4_MASK = 2048,
- PseudoVFCVT_XU_F_V_M8 = 2049,
- PseudoVFCVT_XU_F_V_M8_MASK = 2050,
- PseudoVFCVT_XU_F_V_MF2 = 2051,
- PseudoVFCVT_XU_F_V_MF2_MASK = 2052,
- PseudoVFCVT_XU_F_V_MF4 = 2053,
- PseudoVFCVT_XU_F_V_MF4_MASK = 2054,
- PseudoVFCVT_X_F_V_M1 = 2055,
- PseudoVFCVT_X_F_V_M1_MASK = 2056,
- PseudoVFCVT_X_F_V_M2 = 2057,
- PseudoVFCVT_X_F_V_M2_MASK = 2058,
- PseudoVFCVT_X_F_V_M4 = 2059,
- PseudoVFCVT_X_F_V_M4_MASK = 2060,
- PseudoVFCVT_X_F_V_M8 = 2061,
- PseudoVFCVT_X_F_V_M8_MASK = 2062,
- PseudoVFCVT_X_F_V_MF2 = 2063,
- PseudoVFCVT_X_F_V_MF2_MASK = 2064,
- PseudoVFCVT_X_F_V_MF4 = 2065,
- PseudoVFCVT_X_F_V_MF4_MASK = 2066,
- PseudoVFDIV_VFPR16_M1_E16 = 2067,
- PseudoVFDIV_VFPR16_M1_E16_MASK = 2068,
- PseudoVFDIV_VFPR16_M2_E16 = 2069,
- PseudoVFDIV_VFPR16_M2_E16_MASK = 2070,
- PseudoVFDIV_VFPR16_M4_E16 = 2071,
- PseudoVFDIV_VFPR16_M4_E16_MASK = 2072,
- PseudoVFDIV_VFPR16_M8_E16 = 2073,
- PseudoVFDIV_VFPR16_M8_E16_MASK = 2074,
- PseudoVFDIV_VFPR16_MF2_E16 = 2075,
- PseudoVFDIV_VFPR16_MF2_E16_MASK = 2076,
- PseudoVFDIV_VFPR16_MF4_E16 = 2077,
- PseudoVFDIV_VFPR16_MF4_E16_MASK = 2078,
- PseudoVFDIV_VFPR32_M1_E32 = 2079,
- PseudoVFDIV_VFPR32_M1_E32_MASK = 2080,
- PseudoVFDIV_VFPR32_M2_E32 = 2081,
- PseudoVFDIV_VFPR32_M2_E32_MASK = 2082,
- PseudoVFDIV_VFPR32_M4_E32 = 2083,
- PseudoVFDIV_VFPR32_M4_E32_MASK = 2084,
- PseudoVFDIV_VFPR32_M8_E32 = 2085,
- PseudoVFDIV_VFPR32_M8_E32_MASK = 2086,
- PseudoVFDIV_VFPR32_MF2_E32 = 2087,
- PseudoVFDIV_VFPR32_MF2_E32_MASK = 2088,
- PseudoVFDIV_VFPR64_M1_E64 = 2089,
- PseudoVFDIV_VFPR64_M1_E64_MASK = 2090,
- PseudoVFDIV_VFPR64_M2_E64 = 2091,
- PseudoVFDIV_VFPR64_M2_E64_MASK = 2092,
- PseudoVFDIV_VFPR64_M4_E64 = 2093,
- PseudoVFDIV_VFPR64_M4_E64_MASK = 2094,
- PseudoVFDIV_VFPR64_M8_E64 = 2095,
- PseudoVFDIV_VFPR64_M8_E64_MASK = 2096,
- PseudoVFDIV_VV_M1_E16 = 2097,
- PseudoVFDIV_VV_M1_E16_MASK = 2098,
- PseudoVFDIV_VV_M1_E32 = 2099,
- PseudoVFDIV_VV_M1_E32_MASK = 2100,
- PseudoVFDIV_VV_M1_E64 = 2101,
- PseudoVFDIV_VV_M1_E64_MASK = 2102,
- PseudoVFDIV_VV_M2_E16 = 2103,
- PseudoVFDIV_VV_M2_E16_MASK = 2104,
- PseudoVFDIV_VV_M2_E32 = 2105,
- PseudoVFDIV_VV_M2_E32_MASK = 2106,
- PseudoVFDIV_VV_M2_E64 = 2107,
- PseudoVFDIV_VV_M2_E64_MASK = 2108,
- PseudoVFDIV_VV_M4_E16 = 2109,
- PseudoVFDIV_VV_M4_E16_MASK = 2110,
- PseudoVFDIV_VV_M4_E32 = 2111,
- PseudoVFDIV_VV_M4_E32_MASK = 2112,
- PseudoVFDIV_VV_M4_E64 = 2113,
- PseudoVFDIV_VV_M4_E64_MASK = 2114,
- PseudoVFDIV_VV_M8_E16 = 2115,
- PseudoVFDIV_VV_M8_E16_MASK = 2116,
- PseudoVFDIV_VV_M8_E32 = 2117,
- PseudoVFDIV_VV_M8_E32_MASK = 2118,
- PseudoVFDIV_VV_M8_E64 = 2119,
- PseudoVFDIV_VV_M8_E64_MASK = 2120,
- PseudoVFDIV_VV_MF2_E16 = 2121,
- PseudoVFDIV_VV_MF2_E16_MASK = 2122,
- PseudoVFDIV_VV_MF2_E32 = 2123,
- PseudoVFDIV_VV_MF2_E32_MASK = 2124,
- PseudoVFDIV_VV_MF4_E16 = 2125,
- PseudoVFDIV_VV_MF4_E16_MASK = 2126,
- PseudoVFIRST_M_B1 = 2127,
- PseudoVFIRST_M_B16 = 2128,
- PseudoVFIRST_M_B16_MASK = 2129,
- PseudoVFIRST_M_B1_MASK = 2130,
- PseudoVFIRST_M_B2 = 2131,
- PseudoVFIRST_M_B2_MASK = 2132,
- PseudoVFIRST_M_B32 = 2133,
- PseudoVFIRST_M_B32_MASK = 2134,
- PseudoVFIRST_M_B4 = 2135,
- PseudoVFIRST_M_B4_MASK = 2136,
- PseudoVFIRST_M_B64 = 2137,
- PseudoVFIRST_M_B64_MASK = 2138,
- PseudoVFIRST_M_B8 = 2139,
- PseudoVFIRST_M_B8_MASK = 2140,
- PseudoVFMACC_VFPR16_M1_E16 = 2141,
- PseudoVFMACC_VFPR16_M1_E16_MASK = 2142,
- PseudoVFMACC_VFPR16_M2_E16 = 2143,
- PseudoVFMACC_VFPR16_M2_E16_MASK = 2144,
- PseudoVFMACC_VFPR16_M4_E16 = 2145,
- PseudoVFMACC_VFPR16_M4_E16_MASK = 2146,
- PseudoVFMACC_VFPR16_M8_E16 = 2147,
- PseudoVFMACC_VFPR16_M8_E16_MASK = 2148,
- PseudoVFMACC_VFPR16_MF2_E16 = 2149,
- PseudoVFMACC_VFPR16_MF2_E16_MASK = 2150,
- PseudoVFMACC_VFPR16_MF4_E16 = 2151,
- PseudoVFMACC_VFPR16_MF4_E16_MASK = 2152,
- PseudoVFMACC_VFPR32_M1_E32 = 2153,
- PseudoVFMACC_VFPR32_M1_E32_MASK = 2154,
- PseudoVFMACC_VFPR32_M2_E32 = 2155,
- PseudoVFMACC_VFPR32_M2_E32_MASK = 2156,
- PseudoVFMACC_VFPR32_M4_E32 = 2157,
- PseudoVFMACC_VFPR32_M4_E32_MASK = 2158,
- PseudoVFMACC_VFPR32_M8_E32 = 2159,
- PseudoVFMACC_VFPR32_M8_E32_MASK = 2160,
- PseudoVFMACC_VFPR32_MF2_E32 = 2161,
- PseudoVFMACC_VFPR32_MF2_E32_MASK = 2162,
- PseudoVFMACC_VFPR64_M1_E64 = 2163,
- PseudoVFMACC_VFPR64_M1_E64_MASK = 2164,
- PseudoVFMACC_VFPR64_M2_E64 = 2165,
- PseudoVFMACC_VFPR64_M2_E64_MASK = 2166,
- PseudoVFMACC_VFPR64_M4_E64 = 2167,
- PseudoVFMACC_VFPR64_M4_E64_MASK = 2168,
- PseudoVFMACC_VFPR64_M8_E64 = 2169,
- PseudoVFMACC_VFPR64_M8_E64_MASK = 2170,
- PseudoVFMACC_VV_M1_E16 = 2171,
- PseudoVFMACC_VV_M1_E16_MASK = 2172,
- PseudoVFMACC_VV_M1_E32 = 2173,
- PseudoVFMACC_VV_M1_E32_MASK = 2174,
- PseudoVFMACC_VV_M1_E64 = 2175,
- PseudoVFMACC_VV_M1_E64_MASK = 2176,
- PseudoVFMACC_VV_M2_E16 = 2177,
- PseudoVFMACC_VV_M2_E16_MASK = 2178,
- PseudoVFMACC_VV_M2_E32 = 2179,
- PseudoVFMACC_VV_M2_E32_MASK = 2180,
- PseudoVFMACC_VV_M2_E64 = 2181,
- PseudoVFMACC_VV_M2_E64_MASK = 2182,
- PseudoVFMACC_VV_M4_E16 = 2183,
- PseudoVFMACC_VV_M4_E16_MASK = 2184,
- PseudoVFMACC_VV_M4_E32 = 2185,
- PseudoVFMACC_VV_M4_E32_MASK = 2186,
- PseudoVFMACC_VV_M4_E64 = 2187,
- PseudoVFMACC_VV_M4_E64_MASK = 2188,
- PseudoVFMACC_VV_M8_E16 = 2189,
- PseudoVFMACC_VV_M8_E16_MASK = 2190,
- PseudoVFMACC_VV_M8_E32 = 2191,
- PseudoVFMACC_VV_M8_E32_MASK = 2192,
- PseudoVFMACC_VV_M8_E64 = 2193,
- PseudoVFMACC_VV_M8_E64_MASK = 2194,
- PseudoVFMACC_VV_MF2_E16 = 2195,
- PseudoVFMACC_VV_MF2_E16_MASK = 2196,
- PseudoVFMACC_VV_MF2_E32 = 2197,
- PseudoVFMACC_VV_MF2_E32_MASK = 2198,
- PseudoVFMACC_VV_MF4_E16 = 2199,
- PseudoVFMACC_VV_MF4_E16_MASK = 2200,
- PseudoVFMADD_VFPR16_M1_E16 = 2201,
- PseudoVFMADD_VFPR16_M1_E16_MASK = 2202,
- PseudoVFMADD_VFPR16_M2_E16 = 2203,
- PseudoVFMADD_VFPR16_M2_E16_MASK = 2204,
- PseudoVFMADD_VFPR16_M4_E16 = 2205,
- PseudoVFMADD_VFPR16_M4_E16_MASK = 2206,
- PseudoVFMADD_VFPR16_M8_E16 = 2207,
- PseudoVFMADD_VFPR16_M8_E16_MASK = 2208,
- PseudoVFMADD_VFPR16_MF2_E16 = 2209,
- PseudoVFMADD_VFPR16_MF2_E16_MASK = 2210,
- PseudoVFMADD_VFPR16_MF4_E16 = 2211,
- PseudoVFMADD_VFPR16_MF4_E16_MASK = 2212,
- PseudoVFMADD_VFPR32_M1_E32 = 2213,
- PseudoVFMADD_VFPR32_M1_E32_MASK = 2214,
- PseudoVFMADD_VFPR32_M2_E32 = 2215,
- PseudoVFMADD_VFPR32_M2_E32_MASK = 2216,
- PseudoVFMADD_VFPR32_M4_E32 = 2217,
- PseudoVFMADD_VFPR32_M4_E32_MASK = 2218,
- PseudoVFMADD_VFPR32_M8_E32 = 2219,
- PseudoVFMADD_VFPR32_M8_E32_MASK = 2220,
- PseudoVFMADD_VFPR32_MF2_E32 = 2221,
- PseudoVFMADD_VFPR32_MF2_E32_MASK = 2222,
- PseudoVFMADD_VFPR64_M1_E64 = 2223,
- PseudoVFMADD_VFPR64_M1_E64_MASK = 2224,
- PseudoVFMADD_VFPR64_M2_E64 = 2225,
- PseudoVFMADD_VFPR64_M2_E64_MASK = 2226,
- PseudoVFMADD_VFPR64_M4_E64 = 2227,
- PseudoVFMADD_VFPR64_M4_E64_MASK = 2228,
- PseudoVFMADD_VFPR64_M8_E64 = 2229,
- PseudoVFMADD_VFPR64_M8_E64_MASK = 2230,
- PseudoVFMADD_VV_M1_E16 = 2231,
- PseudoVFMADD_VV_M1_E16_MASK = 2232,
- PseudoVFMADD_VV_M1_E32 = 2233,
- PseudoVFMADD_VV_M1_E32_MASK = 2234,
- PseudoVFMADD_VV_M1_E64 = 2235,
- PseudoVFMADD_VV_M1_E64_MASK = 2236,
- PseudoVFMADD_VV_M2_E16 = 2237,
- PseudoVFMADD_VV_M2_E16_MASK = 2238,
- PseudoVFMADD_VV_M2_E32 = 2239,
- PseudoVFMADD_VV_M2_E32_MASK = 2240,
- PseudoVFMADD_VV_M2_E64 = 2241,
- PseudoVFMADD_VV_M2_E64_MASK = 2242,
- PseudoVFMADD_VV_M4_E16 = 2243,
- PseudoVFMADD_VV_M4_E16_MASK = 2244,
- PseudoVFMADD_VV_M4_E32 = 2245,
- PseudoVFMADD_VV_M4_E32_MASK = 2246,
- PseudoVFMADD_VV_M4_E64 = 2247,
- PseudoVFMADD_VV_M4_E64_MASK = 2248,
- PseudoVFMADD_VV_M8_E16 = 2249,
- PseudoVFMADD_VV_M8_E16_MASK = 2250,
- PseudoVFMADD_VV_M8_E32 = 2251,
- PseudoVFMADD_VV_M8_E32_MASK = 2252,
- PseudoVFMADD_VV_M8_E64 = 2253,
- PseudoVFMADD_VV_M8_E64_MASK = 2254,
- PseudoVFMADD_VV_MF2_E16 = 2255,
- PseudoVFMADD_VV_MF2_E16_MASK = 2256,
- PseudoVFMADD_VV_MF2_E32 = 2257,
- PseudoVFMADD_VV_MF2_E32_MASK = 2258,
- PseudoVFMADD_VV_MF4_E16 = 2259,
- PseudoVFMADD_VV_MF4_E16_MASK = 2260,
- PseudoVFMAX_VFPR16_M1_E16 = 2261,
- PseudoVFMAX_VFPR16_M1_E16_MASK = 2262,
- PseudoVFMAX_VFPR16_M2_E16 = 2263,
- PseudoVFMAX_VFPR16_M2_E16_MASK = 2264,
- PseudoVFMAX_VFPR16_M4_E16 = 2265,
- PseudoVFMAX_VFPR16_M4_E16_MASK = 2266,
- PseudoVFMAX_VFPR16_M8_E16 = 2267,
- PseudoVFMAX_VFPR16_M8_E16_MASK = 2268,
- PseudoVFMAX_VFPR16_MF2_E16 = 2269,
- PseudoVFMAX_VFPR16_MF2_E16_MASK = 2270,
- PseudoVFMAX_VFPR16_MF4_E16 = 2271,
- PseudoVFMAX_VFPR16_MF4_E16_MASK = 2272,
- PseudoVFMAX_VFPR32_M1_E32 = 2273,
- PseudoVFMAX_VFPR32_M1_E32_MASK = 2274,
- PseudoVFMAX_VFPR32_M2_E32 = 2275,
- PseudoVFMAX_VFPR32_M2_E32_MASK = 2276,
- PseudoVFMAX_VFPR32_M4_E32 = 2277,
- PseudoVFMAX_VFPR32_M4_E32_MASK = 2278,
- PseudoVFMAX_VFPR32_M8_E32 = 2279,
- PseudoVFMAX_VFPR32_M8_E32_MASK = 2280,
- PseudoVFMAX_VFPR32_MF2_E32 = 2281,
- PseudoVFMAX_VFPR32_MF2_E32_MASK = 2282,
- PseudoVFMAX_VFPR64_M1_E64 = 2283,
- PseudoVFMAX_VFPR64_M1_E64_MASK = 2284,
- PseudoVFMAX_VFPR64_M2_E64 = 2285,
- PseudoVFMAX_VFPR64_M2_E64_MASK = 2286,
- PseudoVFMAX_VFPR64_M4_E64 = 2287,
- PseudoVFMAX_VFPR64_M4_E64_MASK = 2288,
- PseudoVFMAX_VFPR64_M8_E64 = 2289,
- PseudoVFMAX_VFPR64_M8_E64_MASK = 2290,
- PseudoVFMAX_VV_M1_E16 = 2291,
- PseudoVFMAX_VV_M1_E16_MASK = 2292,
- PseudoVFMAX_VV_M1_E32 = 2293,
- PseudoVFMAX_VV_M1_E32_MASK = 2294,
- PseudoVFMAX_VV_M1_E64 = 2295,
- PseudoVFMAX_VV_M1_E64_MASK = 2296,
- PseudoVFMAX_VV_M2_E16 = 2297,
- PseudoVFMAX_VV_M2_E16_MASK = 2298,
- PseudoVFMAX_VV_M2_E32 = 2299,
- PseudoVFMAX_VV_M2_E32_MASK = 2300,
- PseudoVFMAX_VV_M2_E64 = 2301,
- PseudoVFMAX_VV_M2_E64_MASK = 2302,
- PseudoVFMAX_VV_M4_E16 = 2303,
- PseudoVFMAX_VV_M4_E16_MASK = 2304,
- PseudoVFMAX_VV_M4_E32 = 2305,
- PseudoVFMAX_VV_M4_E32_MASK = 2306,
- PseudoVFMAX_VV_M4_E64 = 2307,
- PseudoVFMAX_VV_M4_E64_MASK = 2308,
- PseudoVFMAX_VV_M8_E16 = 2309,
- PseudoVFMAX_VV_M8_E16_MASK = 2310,
- PseudoVFMAX_VV_M8_E32 = 2311,
- PseudoVFMAX_VV_M8_E32_MASK = 2312,
- PseudoVFMAX_VV_M8_E64 = 2313,
- PseudoVFMAX_VV_M8_E64_MASK = 2314,
- PseudoVFMAX_VV_MF2_E16 = 2315,
- PseudoVFMAX_VV_MF2_E16_MASK = 2316,
- PseudoVFMAX_VV_MF2_E32 = 2317,
- PseudoVFMAX_VV_MF2_E32_MASK = 2318,
- PseudoVFMAX_VV_MF4_E16 = 2319,
- PseudoVFMAX_VV_MF4_E16_MASK = 2320,
- PseudoVFMERGE_VFPR16M_M1 = 2321,
- PseudoVFMERGE_VFPR16M_M2 = 2322,
- PseudoVFMERGE_VFPR16M_M4 = 2323,
- PseudoVFMERGE_VFPR16M_M8 = 2324,
- PseudoVFMERGE_VFPR16M_MF2 = 2325,
- PseudoVFMERGE_VFPR16M_MF4 = 2326,
- PseudoVFMERGE_VFPR32M_M1 = 2327,
- PseudoVFMERGE_VFPR32M_M2 = 2328,
- PseudoVFMERGE_VFPR32M_M4 = 2329,
- PseudoVFMERGE_VFPR32M_M8 = 2330,
- PseudoVFMERGE_VFPR32M_MF2 = 2331,
- PseudoVFMERGE_VFPR64M_M1 = 2332,
- PseudoVFMERGE_VFPR64M_M2 = 2333,
- PseudoVFMERGE_VFPR64M_M4 = 2334,
- PseudoVFMERGE_VFPR64M_M8 = 2335,
- PseudoVFMIN_VFPR16_M1_E16 = 2336,
- PseudoVFMIN_VFPR16_M1_E16_MASK = 2337,
- PseudoVFMIN_VFPR16_M2_E16 = 2338,
- PseudoVFMIN_VFPR16_M2_E16_MASK = 2339,
- PseudoVFMIN_VFPR16_M4_E16 = 2340,
- PseudoVFMIN_VFPR16_M4_E16_MASK = 2341,
- PseudoVFMIN_VFPR16_M8_E16 = 2342,
- PseudoVFMIN_VFPR16_M8_E16_MASK = 2343,
- PseudoVFMIN_VFPR16_MF2_E16 = 2344,
- PseudoVFMIN_VFPR16_MF2_E16_MASK = 2345,
- PseudoVFMIN_VFPR16_MF4_E16 = 2346,
- PseudoVFMIN_VFPR16_MF4_E16_MASK = 2347,
- PseudoVFMIN_VFPR32_M1_E32 = 2348,
- PseudoVFMIN_VFPR32_M1_E32_MASK = 2349,
- PseudoVFMIN_VFPR32_M2_E32 = 2350,
- PseudoVFMIN_VFPR32_M2_E32_MASK = 2351,
- PseudoVFMIN_VFPR32_M4_E32 = 2352,
- PseudoVFMIN_VFPR32_M4_E32_MASK = 2353,
- PseudoVFMIN_VFPR32_M8_E32 = 2354,
- PseudoVFMIN_VFPR32_M8_E32_MASK = 2355,
- PseudoVFMIN_VFPR32_MF2_E32 = 2356,
- PseudoVFMIN_VFPR32_MF2_E32_MASK = 2357,
- PseudoVFMIN_VFPR64_M1_E64 = 2358,
- PseudoVFMIN_VFPR64_M1_E64_MASK = 2359,
- PseudoVFMIN_VFPR64_M2_E64 = 2360,
- PseudoVFMIN_VFPR64_M2_E64_MASK = 2361,
- PseudoVFMIN_VFPR64_M4_E64 = 2362,
- PseudoVFMIN_VFPR64_M4_E64_MASK = 2363,
- PseudoVFMIN_VFPR64_M8_E64 = 2364,
- PseudoVFMIN_VFPR64_M8_E64_MASK = 2365,
- PseudoVFMIN_VV_M1_E16 = 2366,
- PseudoVFMIN_VV_M1_E16_MASK = 2367,
- PseudoVFMIN_VV_M1_E32 = 2368,
- PseudoVFMIN_VV_M1_E32_MASK = 2369,
- PseudoVFMIN_VV_M1_E64 = 2370,
- PseudoVFMIN_VV_M1_E64_MASK = 2371,
- PseudoVFMIN_VV_M2_E16 = 2372,
- PseudoVFMIN_VV_M2_E16_MASK = 2373,
- PseudoVFMIN_VV_M2_E32 = 2374,
- PseudoVFMIN_VV_M2_E32_MASK = 2375,
- PseudoVFMIN_VV_M2_E64 = 2376,
- PseudoVFMIN_VV_M2_E64_MASK = 2377,
- PseudoVFMIN_VV_M4_E16 = 2378,
- PseudoVFMIN_VV_M4_E16_MASK = 2379,
- PseudoVFMIN_VV_M4_E32 = 2380,
- PseudoVFMIN_VV_M4_E32_MASK = 2381,
- PseudoVFMIN_VV_M4_E64 = 2382,
- PseudoVFMIN_VV_M4_E64_MASK = 2383,
- PseudoVFMIN_VV_M8_E16 = 2384,
- PseudoVFMIN_VV_M8_E16_MASK = 2385,
- PseudoVFMIN_VV_M8_E32 = 2386,
- PseudoVFMIN_VV_M8_E32_MASK = 2387,
- PseudoVFMIN_VV_M8_E64 = 2388,
- PseudoVFMIN_VV_M8_E64_MASK = 2389,
- PseudoVFMIN_VV_MF2_E16 = 2390,
- PseudoVFMIN_VV_MF2_E16_MASK = 2391,
- PseudoVFMIN_VV_MF2_E32 = 2392,
- PseudoVFMIN_VV_MF2_E32_MASK = 2393,
- PseudoVFMIN_VV_MF4_E16 = 2394,
- PseudoVFMIN_VV_MF4_E16_MASK = 2395,
- PseudoVFMSAC_VFPR16_M1_E16 = 2396,
- PseudoVFMSAC_VFPR16_M1_E16_MASK = 2397,
- PseudoVFMSAC_VFPR16_M2_E16 = 2398,
- PseudoVFMSAC_VFPR16_M2_E16_MASK = 2399,
- PseudoVFMSAC_VFPR16_M4_E16 = 2400,
- PseudoVFMSAC_VFPR16_M4_E16_MASK = 2401,
- PseudoVFMSAC_VFPR16_M8_E16 = 2402,
- PseudoVFMSAC_VFPR16_M8_E16_MASK = 2403,
- PseudoVFMSAC_VFPR16_MF2_E16 = 2404,
- PseudoVFMSAC_VFPR16_MF2_E16_MASK = 2405,
- PseudoVFMSAC_VFPR16_MF4_E16 = 2406,
- PseudoVFMSAC_VFPR16_MF4_E16_MASK = 2407,
- PseudoVFMSAC_VFPR32_M1_E32 = 2408,
- PseudoVFMSAC_VFPR32_M1_E32_MASK = 2409,
- PseudoVFMSAC_VFPR32_M2_E32 = 2410,
- PseudoVFMSAC_VFPR32_M2_E32_MASK = 2411,
- PseudoVFMSAC_VFPR32_M4_E32 = 2412,
- PseudoVFMSAC_VFPR32_M4_E32_MASK = 2413,
- PseudoVFMSAC_VFPR32_M8_E32 = 2414,
- PseudoVFMSAC_VFPR32_M8_E32_MASK = 2415,
- PseudoVFMSAC_VFPR32_MF2_E32 = 2416,
- PseudoVFMSAC_VFPR32_MF2_E32_MASK = 2417,
- PseudoVFMSAC_VFPR64_M1_E64 = 2418,
- PseudoVFMSAC_VFPR64_M1_E64_MASK = 2419,
- PseudoVFMSAC_VFPR64_M2_E64 = 2420,
- PseudoVFMSAC_VFPR64_M2_E64_MASK = 2421,
- PseudoVFMSAC_VFPR64_M4_E64 = 2422,
- PseudoVFMSAC_VFPR64_M4_E64_MASK = 2423,
- PseudoVFMSAC_VFPR64_M8_E64 = 2424,
- PseudoVFMSAC_VFPR64_M8_E64_MASK = 2425,
- PseudoVFMSAC_VV_M1_E16 = 2426,
- PseudoVFMSAC_VV_M1_E16_MASK = 2427,
- PseudoVFMSAC_VV_M1_E32 = 2428,
- PseudoVFMSAC_VV_M1_E32_MASK = 2429,
- PseudoVFMSAC_VV_M1_E64 = 2430,
- PseudoVFMSAC_VV_M1_E64_MASK = 2431,
- PseudoVFMSAC_VV_M2_E16 = 2432,
- PseudoVFMSAC_VV_M2_E16_MASK = 2433,
- PseudoVFMSAC_VV_M2_E32 = 2434,
- PseudoVFMSAC_VV_M2_E32_MASK = 2435,
- PseudoVFMSAC_VV_M2_E64 = 2436,
- PseudoVFMSAC_VV_M2_E64_MASK = 2437,
- PseudoVFMSAC_VV_M4_E16 = 2438,
- PseudoVFMSAC_VV_M4_E16_MASK = 2439,
- PseudoVFMSAC_VV_M4_E32 = 2440,
- PseudoVFMSAC_VV_M4_E32_MASK = 2441,
- PseudoVFMSAC_VV_M4_E64 = 2442,
- PseudoVFMSAC_VV_M4_E64_MASK = 2443,
- PseudoVFMSAC_VV_M8_E16 = 2444,
- PseudoVFMSAC_VV_M8_E16_MASK = 2445,
- PseudoVFMSAC_VV_M8_E32 = 2446,
- PseudoVFMSAC_VV_M8_E32_MASK = 2447,
- PseudoVFMSAC_VV_M8_E64 = 2448,
- PseudoVFMSAC_VV_M8_E64_MASK = 2449,
- PseudoVFMSAC_VV_MF2_E16 = 2450,
- PseudoVFMSAC_VV_MF2_E16_MASK = 2451,
- PseudoVFMSAC_VV_MF2_E32 = 2452,
- PseudoVFMSAC_VV_MF2_E32_MASK = 2453,
- PseudoVFMSAC_VV_MF4_E16 = 2454,
- PseudoVFMSAC_VV_MF4_E16_MASK = 2455,
- PseudoVFMSUB_VFPR16_M1_E16 = 2456,
- PseudoVFMSUB_VFPR16_M1_E16_MASK = 2457,
- PseudoVFMSUB_VFPR16_M2_E16 = 2458,
- PseudoVFMSUB_VFPR16_M2_E16_MASK = 2459,
- PseudoVFMSUB_VFPR16_M4_E16 = 2460,
- PseudoVFMSUB_VFPR16_M4_E16_MASK = 2461,
- PseudoVFMSUB_VFPR16_M8_E16 = 2462,
- PseudoVFMSUB_VFPR16_M8_E16_MASK = 2463,
- PseudoVFMSUB_VFPR16_MF2_E16 = 2464,
- PseudoVFMSUB_VFPR16_MF2_E16_MASK = 2465,
- PseudoVFMSUB_VFPR16_MF4_E16 = 2466,
- PseudoVFMSUB_VFPR16_MF4_E16_MASK = 2467,
- PseudoVFMSUB_VFPR32_M1_E32 = 2468,
- PseudoVFMSUB_VFPR32_M1_E32_MASK = 2469,
- PseudoVFMSUB_VFPR32_M2_E32 = 2470,
- PseudoVFMSUB_VFPR32_M2_E32_MASK = 2471,
- PseudoVFMSUB_VFPR32_M4_E32 = 2472,
- PseudoVFMSUB_VFPR32_M4_E32_MASK = 2473,
- PseudoVFMSUB_VFPR32_M8_E32 = 2474,
- PseudoVFMSUB_VFPR32_M8_E32_MASK = 2475,
- PseudoVFMSUB_VFPR32_MF2_E32 = 2476,
- PseudoVFMSUB_VFPR32_MF2_E32_MASK = 2477,
- PseudoVFMSUB_VFPR64_M1_E64 = 2478,
- PseudoVFMSUB_VFPR64_M1_E64_MASK = 2479,
- PseudoVFMSUB_VFPR64_M2_E64 = 2480,
- PseudoVFMSUB_VFPR64_M2_E64_MASK = 2481,
- PseudoVFMSUB_VFPR64_M4_E64 = 2482,
- PseudoVFMSUB_VFPR64_M4_E64_MASK = 2483,
- PseudoVFMSUB_VFPR64_M8_E64 = 2484,
- PseudoVFMSUB_VFPR64_M8_E64_MASK = 2485,
- PseudoVFMSUB_VV_M1_E16 = 2486,
- PseudoVFMSUB_VV_M1_E16_MASK = 2487,
- PseudoVFMSUB_VV_M1_E32 = 2488,
- PseudoVFMSUB_VV_M1_E32_MASK = 2489,
- PseudoVFMSUB_VV_M1_E64 = 2490,
- PseudoVFMSUB_VV_M1_E64_MASK = 2491,
- PseudoVFMSUB_VV_M2_E16 = 2492,
- PseudoVFMSUB_VV_M2_E16_MASK = 2493,
- PseudoVFMSUB_VV_M2_E32 = 2494,
- PseudoVFMSUB_VV_M2_E32_MASK = 2495,
- PseudoVFMSUB_VV_M2_E64 = 2496,
- PseudoVFMSUB_VV_M2_E64_MASK = 2497,
- PseudoVFMSUB_VV_M4_E16 = 2498,
- PseudoVFMSUB_VV_M4_E16_MASK = 2499,
- PseudoVFMSUB_VV_M4_E32 = 2500,
- PseudoVFMSUB_VV_M4_E32_MASK = 2501,
- PseudoVFMSUB_VV_M4_E64 = 2502,
- PseudoVFMSUB_VV_M4_E64_MASK = 2503,
- PseudoVFMSUB_VV_M8_E16 = 2504,
- PseudoVFMSUB_VV_M8_E16_MASK = 2505,
- PseudoVFMSUB_VV_M8_E32 = 2506,
- PseudoVFMSUB_VV_M8_E32_MASK = 2507,
- PseudoVFMSUB_VV_M8_E64 = 2508,
- PseudoVFMSUB_VV_M8_E64_MASK = 2509,
- PseudoVFMSUB_VV_MF2_E16 = 2510,
- PseudoVFMSUB_VV_MF2_E16_MASK = 2511,
- PseudoVFMSUB_VV_MF2_E32 = 2512,
- PseudoVFMSUB_VV_MF2_E32_MASK = 2513,
- PseudoVFMSUB_VV_MF4_E16 = 2514,
- PseudoVFMSUB_VV_MF4_E16_MASK = 2515,
- PseudoVFMUL_VFPR16_M1_E16 = 2516,
- PseudoVFMUL_VFPR16_M1_E16_MASK = 2517,
- PseudoVFMUL_VFPR16_M2_E16 = 2518,
- PseudoVFMUL_VFPR16_M2_E16_MASK = 2519,
- PseudoVFMUL_VFPR16_M4_E16 = 2520,
- PseudoVFMUL_VFPR16_M4_E16_MASK = 2521,
- PseudoVFMUL_VFPR16_M8_E16 = 2522,
- PseudoVFMUL_VFPR16_M8_E16_MASK = 2523,
- PseudoVFMUL_VFPR16_MF2_E16 = 2524,
- PseudoVFMUL_VFPR16_MF2_E16_MASK = 2525,
- PseudoVFMUL_VFPR16_MF4_E16 = 2526,
- PseudoVFMUL_VFPR16_MF4_E16_MASK = 2527,
- PseudoVFMUL_VFPR32_M1_E32 = 2528,
- PseudoVFMUL_VFPR32_M1_E32_MASK = 2529,
- PseudoVFMUL_VFPR32_M2_E32 = 2530,
- PseudoVFMUL_VFPR32_M2_E32_MASK = 2531,
- PseudoVFMUL_VFPR32_M4_E32 = 2532,
- PseudoVFMUL_VFPR32_M4_E32_MASK = 2533,
- PseudoVFMUL_VFPR32_M8_E32 = 2534,
- PseudoVFMUL_VFPR32_M8_E32_MASK = 2535,
- PseudoVFMUL_VFPR32_MF2_E32 = 2536,
- PseudoVFMUL_VFPR32_MF2_E32_MASK = 2537,
- PseudoVFMUL_VFPR64_M1_E64 = 2538,
- PseudoVFMUL_VFPR64_M1_E64_MASK = 2539,
- PseudoVFMUL_VFPR64_M2_E64 = 2540,
- PseudoVFMUL_VFPR64_M2_E64_MASK = 2541,
- PseudoVFMUL_VFPR64_M4_E64 = 2542,
- PseudoVFMUL_VFPR64_M4_E64_MASK = 2543,
- PseudoVFMUL_VFPR64_M8_E64 = 2544,
- PseudoVFMUL_VFPR64_M8_E64_MASK = 2545,
- PseudoVFMUL_VV_M1_E16 = 2546,
- PseudoVFMUL_VV_M1_E16_MASK = 2547,
- PseudoVFMUL_VV_M1_E32 = 2548,
- PseudoVFMUL_VV_M1_E32_MASK = 2549,
- PseudoVFMUL_VV_M1_E64 = 2550,
- PseudoVFMUL_VV_M1_E64_MASK = 2551,
- PseudoVFMUL_VV_M2_E16 = 2552,
- PseudoVFMUL_VV_M2_E16_MASK = 2553,
- PseudoVFMUL_VV_M2_E32 = 2554,
- PseudoVFMUL_VV_M2_E32_MASK = 2555,
- PseudoVFMUL_VV_M2_E64 = 2556,
- PseudoVFMUL_VV_M2_E64_MASK = 2557,
- PseudoVFMUL_VV_M4_E16 = 2558,
- PseudoVFMUL_VV_M4_E16_MASK = 2559,
- PseudoVFMUL_VV_M4_E32 = 2560,
- PseudoVFMUL_VV_M4_E32_MASK = 2561,
- PseudoVFMUL_VV_M4_E64 = 2562,
- PseudoVFMUL_VV_M4_E64_MASK = 2563,
- PseudoVFMUL_VV_M8_E16 = 2564,
- PseudoVFMUL_VV_M8_E16_MASK = 2565,
- PseudoVFMUL_VV_M8_E32 = 2566,
- PseudoVFMUL_VV_M8_E32_MASK = 2567,
- PseudoVFMUL_VV_M8_E64 = 2568,
- PseudoVFMUL_VV_M8_E64_MASK = 2569,
- PseudoVFMUL_VV_MF2_E16 = 2570,
- PseudoVFMUL_VV_MF2_E16_MASK = 2571,
- PseudoVFMUL_VV_MF2_E32 = 2572,
- PseudoVFMUL_VV_MF2_E32_MASK = 2573,
- PseudoVFMUL_VV_MF4_E16 = 2574,
- PseudoVFMUL_VV_MF4_E16_MASK = 2575,
- PseudoVFMV_FPR16_S = 2576,
- PseudoVFMV_FPR32_S = 2577,
- PseudoVFMV_FPR64_S = 2578,
- PseudoVFMV_S_FPR16 = 2579,
- PseudoVFMV_S_FPR32 = 2580,
- PseudoVFMV_S_FPR64 = 2581,
- PseudoVFMV_V_FPR16_M1 = 2582,
- PseudoVFMV_V_FPR16_M2 = 2583,
- PseudoVFMV_V_FPR16_M4 = 2584,
- PseudoVFMV_V_FPR16_M8 = 2585,
- PseudoVFMV_V_FPR16_MF2 = 2586,
- PseudoVFMV_V_FPR16_MF4 = 2587,
- PseudoVFMV_V_FPR32_M1 = 2588,
- PseudoVFMV_V_FPR32_M2 = 2589,
- PseudoVFMV_V_FPR32_M4 = 2590,
- PseudoVFMV_V_FPR32_M8 = 2591,
- PseudoVFMV_V_FPR32_MF2 = 2592,
- PseudoVFMV_V_FPR64_M1 = 2593,
- PseudoVFMV_V_FPR64_M2 = 2594,
- PseudoVFMV_V_FPR64_M4 = 2595,
- PseudoVFMV_V_FPR64_M8 = 2596,
- PseudoVFNCVTBF16_F_F_W_M1_E16 = 2597,
- PseudoVFNCVTBF16_F_F_W_M1_E16_MASK = 2598,
- PseudoVFNCVTBF16_F_F_W_M1_E32 = 2599,
- PseudoVFNCVTBF16_F_F_W_M1_E32_MASK = 2600,
- PseudoVFNCVTBF16_F_F_W_M2_E16 = 2601,
- PseudoVFNCVTBF16_F_F_W_M2_E16_MASK = 2602,
- PseudoVFNCVTBF16_F_F_W_M2_E32 = 2603,
- PseudoVFNCVTBF16_F_F_W_M2_E32_MASK = 2604,
- PseudoVFNCVTBF16_F_F_W_M4_E16 = 2605,
- PseudoVFNCVTBF16_F_F_W_M4_E16_MASK = 2606,
- PseudoVFNCVTBF16_F_F_W_M4_E32 = 2607,
- PseudoVFNCVTBF16_F_F_W_M4_E32_MASK = 2608,
- PseudoVFNCVTBF16_F_F_W_MF2_E16 = 2609,
- PseudoVFNCVTBF16_F_F_W_MF2_E16_MASK = 2610,
- PseudoVFNCVTBF16_F_F_W_MF2_E32 = 2611,
- PseudoVFNCVTBF16_F_F_W_MF2_E32_MASK = 2612,
- PseudoVFNCVTBF16_F_F_W_MF4_E16 = 2613,
- PseudoVFNCVTBF16_F_F_W_MF4_E16_MASK = 2614,
- PseudoVFNCVT_F_F_W_M1_E16 = 2615,
- PseudoVFNCVT_F_F_W_M1_E16_MASK = 2616,
- PseudoVFNCVT_F_F_W_M1_E32 = 2617,
- PseudoVFNCVT_F_F_W_M1_E32_MASK = 2618,
- PseudoVFNCVT_F_F_W_M2_E16 = 2619,
- PseudoVFNCVT_F_F_W_M2_E16_MASK = 2620,
- PseudoVFNCVT_F_F_W_M2_E32 = 2621,
- PseudoVFNCVT_F_F_W_M2_E32_MASK = 2622,
- PseudoVFNCVT_F_F_W_M4_E16 = 2623,
- PseudoVFNCVT_F_F_W_M4_E16_MASK = 2624,
- PseudoVFNCVT_F_F_W_M4_E32 = 2625,
- PseudoVFNCVT_F_F_W_M4_E32_MASK = 2626,
- PseudoVFNCVT_F_F_W_MF2_E16 = 2627,
- PseudoVFNCVT_F_F_W_MF2_E16_MASK = 2628,
- PseudoVFNCVT_F_F_W_MF2_E32 = 2629,
- PseudoVFNCVT_F_F_W_MF2_E32_MASK = 2630,
- PseudoVFNCVT_F_F_W_MF4_E16 = 2631,
- PseudoVFNCVT_F_F_W_MF4_E16_MASK = 2632,
- PseudoVFNCVT_F_XU_W_M1_E16 = 2633,
- PseudoVFNCVT_F_XU_W_M1_E16_MASK = 2634,
- PseudoVFNCVT_F_XU_W_M1_E32 = 2635,
- PseudoVFNCVT_F_XU_W_M1_E32_MASK = 2636,
- PseudoVFNCVT_F_XU_W_M2_E16 = 2637,
- PseudoVFNCVT_F_XU_W_M2_E16_MASK = 2638,
- PseudoVFNCVT_F_XU_W_M2_E32 = 2639,
- PseudoVFNCVT_F_XU_W_M2_E32_MASK = 2640,
- PseudoVFNCVT_F_XU_W_M4_E16 = 2641,
- PseudoVFNCVT_F_XU_W_M4_E16_MASK = 2642,
- PseudoVFNCVT_F_XU_W_M4_E32 = 2643,
- PseudoVFNCVT_F_XU_W_M4_E32_MASK = 2644,
- PseudoVFNCVT_F_XU_W_MF2_E16 = 2645,
- PseudoVFNCVT_F_XU_W_MF2_E16_MASK = 2646,
- PseudoVFNCVT_F_XU_W_MF2_E32 = 2647,
- PseudoVFNCVT_F_XU_W_MF2_E32_MASK = 2648,
- PseudoVFNCVT_F_XU_W_MF4_E16 = 2649,
- PseudoVFNCVT_F_XU_W_MF4_E16_MASK = 2650,
- PseudoVFNCVT_F_X_W_M1_E16 = 2651,
- PseudoVFNCVT_F_X_W_M1_E16_MASK = 2652,
- PseudoVFNCVT_F_X_W_M1_E32 = 2653,
- PseudoVFNCVT_F_X_W_M1_E32_MASK = 2654,
- PseudoVFNCVT_F_X_W_M2_E16 = 2655,
- PseudoVFNCVT_F_X_W_M2_E16_MASK = 2656,
- PseudoVFNCVT_F_X_W_M2_E32 = 2657,
- PseudoVFNCVT_F_X_W_M2_E32_MASK = 2658,
- PseudoVFNCVT_F_X_W_M4_E16 = 2659,
- PseudoVFNCVT_F_X_W_M4_E16_MASK = 2660,
- PseudoVFNCVT_F_X_W_M4_E32 = 2661,
- PseudoVFNCVT_F_X_W_M4_E32_MASK = 2662,
- PseudoVFNCVT_F_X_W_MF2_E16 = 2663,
- PseudoVFNCVT_F_X_W_MF2_E16_MASK = 2664,
- PseudoVFNCVT_F_X_W_MF2_E32 = 2665,
- PseudoVFNCVT_F_X_W_MF2_E32_MASK = 2666,
- PseudoVFNCVT_F_X_W_MF4_E16 = 2667,
- PseudoVFNCVT_F_X_W_MF4_E16_MASK = 2668,
- PseudoVFNCVT_ROD_F_F_W_M1_E16 = 2669,
- PseudoVFNCVT_ROD_F_F_W_M1_E16_MASK = 2670,
- PseudoVFNCVT_ROD_F_F_W_M1_E32 = 2671,
- PseudoVFNCVT_ROD_F_F_W_M1_E32_MASK = 2672,
- PseudoVFNCVT_ROD_F_F_W_M2_E16 = 2673,
- PseudoVFNCVT_ROD_F_F_W_M2_E16_MASK = 2674,
- PseudoVFNCVT_ROD_F_F_W_M2_E32 = 2675,
- PseudoVFNCVT_ROD_F_F_W_M2_E32_MASK = 2676,
- PseudoVFNCVT_ROD_F_F_W_M4_E16 = 2677,
- PseudoVFNCVT_ROD_F_F_W_M4_E16_MASK = 2678,
- PseudoVFNCVT_ROD_F_F_W_M4_E32 = 2679,
- PseudoVFNCVT_ROD_F_F_W_M4_E32_MASK = 2680,
- PseudoVFNCVT_ROD_F_F_W_MF2_E16 = 2681,
- PseudoVFNCVT_ROD_F_F_W_MF2_E16_MASK = 2682,
- PseudoVFNCVT_ROD_F_F_W_MF2_E32 = 2683,
- PseudoVFNCVT_ROD_F_F_W_MF2_E32_MASK = 2684,
- PseudoVFNCVT_ROD_F_F_W_MF4_E16 = 2685,
- PseudoVFNCVT_ROD_F_F_W_MF4_E16_MASK = 2686,
- PseudoVFNCVT_RTZ_XU_F_W_M1 = 2687,
- PseudoVFNCVT_RTZ_XU_F_W_M1_MASK = 2688,
- PseudoVFNCVT_RTZ_XU_F_W_M2 = 2689,
- PseudoVFNCVT_RTZ_XU_F_W_M2_MASK = 2690,
- PseudoVFNCVT_RTZ_XU_F_W_M4 = 2691,
- PseudoVFNCVT_RTZ_XU_F_W_M4_MASK = 2692,
- PseudoVFNCVT_RTZ_XU_F_W_MF2 = 2693,
- PseudoVFNCVT_RTZ_XU_F_W_MF2_MASK = 2694,
- PseudoVFNCVT_RTZ_XU_F_W_MF4 = 2695,
- PseudoVFNCVT_RTZ_XU_F_W_MF4_MASK = 2696,
- PseudoVFNCVT_RTZ_XU_F_W_MF8 = 2697,
- PseudoVFNCVT_RTZ_XU_F_W_MF8_MASK = 2698,
- PseudoVFNCVT_RTZ_X_F_W_M1 = 2699,
- PseudoVFNCVT_RTZ_X_F_W_M1_MASK = 2700,
- PseudoVFNCVT_RTZ_X_F_W_M2 = 2701,
- PseudoVFNCVT_RTZ_X_F_W_M2_MASK = 2702,
- PseudoVFNCVT_RTZ_X_F_W_M4 = 2703,
- PseudoVFNCVT_RTZ_X_F_W_M4_MASK = 2704,
- PseudoVFNCVT_RTZ_X_F_W_MF2 = 2705,
- PseudoVFNCVT_RTZ_X_F_W_MF2_MASK = 2706,
- PseudoVFNCVT_RTZ_X_F_W_MF4 = 2707,
- PseudoVFNCVT_RTZ_X_F_W_MF4_MASK = 2708,
- PseudoVFNCVT_RTZ_X_F_W_MF8 = 2709,
- PseudoVFNCVT_RTZ_X_F_W_MF8_MASK = 2710,
- PseudoVFNCVT_XU_F_W_M1 = 2711,
- PseudoVFNCVT_XU_F_W_M1_MASK = 2712,
- PseudoVFNCVT_XU_F_W_M2 = 2713,
- PseudoVFNCVT_XU_F_W_M2_MASK = 2714,
- PseudoVFNCVT_XU_F_W_M4 = 2715,
- PseudoVFNCVT_XU_F_W_M4_MASK = 2716,
- PseudoVFNCVT_XU_F_W_MF2 = 2717,
- PseudoVFNCVT_XU_F_W_MF2_MASK = 2718,
- PseudoVFNCVT_XU_F_W_MF4 = 2719,
- PseudoVFNCVT_XU_F_W_MF4_MASK = 2720,
- PseudoVFNCVT_XU_F_W_MF8 = 2721,
- PseudoVFNCVT_XU_F_W_MF8_MASK = 2722,
- PseudoVFNCVT_X_F_W_M1 = 2723,
- PseudoVFNCVT_X_F_W_M1_MASK = 2724,
- PseudoVFNCVT_X_F_W_M2 = 2725,
- PseudoVFNCVT_X_F_W_M2_MASK = 2726,
- PseudoVFNCVT_X_F_W_M4 = 2727,
- PseudoVFNCVT_X_F_W_M4_MASK = 2728,
- PseudoVFNCVT_X_F_W_MF2 = 2729,
- PseudoVFNCVT_X_F_W_MF2_MASK = 2730,
- PseudoVFNCVT_X_F_W_MF4 = 2731,
- PseudoVFNCVT_X_F_W_MF4_MASK = 2732,
- PseudoVFNCVT_X_F_W_MF8 = 2733,
- PseudoVFNCVT_X_F_W_MF8_MASK = 2734,
- PseudoVFNMACC_VFPR16_M1_E16 = 2735,
- PseudoVFNMACC_VFPR16_M1_E16_MASK = 2736,
- PseudoVFNMACC_VFPR16_M2_E16 = 2737,
- PseudoVFNMACC_VFPR16_M2_E16_MASK = 2738,
- PseudoVFNMACC_VFPR16_M4_E16 = 2739,
- PseudoVFNMACC_VFPR16_M4_E16_MASK = 2740,
- PseudoVFNMACC_VFPR16_M8_E16 = 2741,
- PseudoVFNMACC_VFPR16_M8_E16_MASK = 2742,
- PseudoVFNMACC_VFPR16_MF2_E16 = 2743,
- PseudoVFNMACC_VFPR16_MF2_E16_MASK = 2744,
- PseudoVFNMACC_VFPR16_MF4_E16 = 2745,
- PseudoVFNMACC_VFPR16_MF4_E16_MASK = 2746,
- PseudoVFNMACC_VFPR32_M1_E32 = 2747,
- PseudoVFNMACC_VFPR32_M1_E32_MASK = 2748,
- PseudoVFNMACC_VFPR32_M2_E32 = 2749,
- PseudoVFNMACC_VFPR32_M2_E32_MASK = 2750,
- PseudoVFNMACC_VFPR32_M4_E32 = 2751,
- PseudoVFNMACC_VFPR32_M4_E32_MASK = 2752,
- PseudoVFNMACC_VFPR32_M8_E32 = 2753,
- PseudoVFNMACC_VFPR32_M8_E32_MASK = 2754,
- PseudoVFNMACC_VFPR32_MF2_E32 = 2755,
- PseudoVFNMACC_VFPR32_MF2_E32_MASK = 2756,
- PseudoVFNMACC_VFPR64_M1_E64 = 2757,
- PseudoVFNMACC_VFPR64_M1_E64_MASK = 2758,
- PseudoVFNMACC_VFPR64_M2_E64 = 2759,
- PseudoVFNMACC_VFPR64_M2_E64_MASK = 2760,
- PseudoVFNMACC_VFPR64_M4_E64 = 2761,
- PseudoVFNMACC_VFPR64_M4_E64_MASK = 2762,
- PseudoVFNMACC_VFPR64_M8_E64 = 2763,
- PseudoVFNMACC_VFPR64_M8_E64_MASK = 2764,
- PseudoVFNMACC_VV_M1_E16 = 2765,
- PseudoVFNMACC_VV_M1_E16_MASK = 2766,
- PseudoVFNMACC_VV_M1_E32 = 2767,
- PseudoVFNMACC_VV_M1_E32_MASK = 2768,
- PseudoVFNMACC_VV_M1_E64 = 2769,
- PseudoVFNMACC_VV_M1_E64_MASK = 2770,
- PseudoVFNMACC_VV_M2_E16 = 2771,
- PseudoVFNMACC_VV_M2_E16_MASK = 2772,
- PseudoVFNMACC_VV_M2_E32 = 2773,
- PseudoVFNMACC_VV_M2_E32_MASK = 2774,
- PseudoVFNMACC_VV_M2_E64 = 2775,
- PseudoVFNMACC_VV_M2_E64_MASK = 2776,
- PseudoVFNMACC_VV_M4_E16 = 2777,
- PseudoVFNMACC_VV_M4_E16_MASK = 2778,
- PseudoVFNMACC_VV_M4_E32 = 2779,
- PseudoVFNMACC_VV_M4_E32_MASK = 2780,
- PseudoVFNMACC_VV_M4_E64 = 2781,
- PseudoVFNMACC_VV_M4_E64_MASK = 2782,
- PseudoVFNMACC_VV_M8_E16 = 2783,
- PseudoVFNMACC_VV_M8_E16_MASK = 2784,
- PseudoVFNMACC_VV_M8_E32 = 2785,
- PseudoVFNMACC_VV_M8_E32_MASK = 2786,
- PseudoVFNMACC_VV_M8_E64 = 2787,
- PseudoVFNMACC_VV_M8_E64_MASK = 2788,
- PseudoVFNMACC_VV_MF2_E16 = 2789,
- PseudoVFNMACC_VV_MF2_E16_MASK = 2790,
- PseudoVFNMACC_VV_MF2_E32 = 2791,
- PseudoVFNMACC_VV_MF2_E32_MASK = 2792,
- PseudoVFNMACC_VV_MF4_E16 = 2793,
- PseudoVFNMACC_VV_MF4_E16_MASK = 2794,
- PseudoVFNMADD_VFPR16_M1_E16 = 2795,
- PseudoVFNMADD_VFPR16_M1_E16_MASK = 2796,
- PseudoVFNMADD_VFPR16_M2_E16 = 2797,
- PseudoVFNMADD_VFPR16_M2_E16_MASK = 2798,
- PseudoVFNMADD_VFPR16_M4_E16 = 2799,
- PseudoVFNMADD_VFPR16_M4_E16_MASK = 2800,
- PseudoVFNMADD_VFPR16_M8_E16 = 2801,
- PseudoVFNMADD_VFPR16_M8_E16_MASK = 2802,
- PseudoVFNMADD_VFPR16_MF2_E16 = 2803,
- PseudoVFNMADD_VFPR16_MF2_E16_MASK = 2804,
- PseudoVFNMADD_VFPR16_MF4_E16 = 2805,
- PseudoVFNMADD_VFPR16_MF4_E16_MASK = 2806,
- PseudoVFNMADD_VFPR32_M1_E32 = 2807,
- PseudoVFNMADD_VFPR32_M1_E32_MASK = 2808,
- PseudoVFNMADD_VFPR32_M2_E32 = 2809,
- PseudoVFNMADD_VFPR32_M2_E32_MASK = 2810,
- PseudoVFNMADD_VFPR32_M4_E32 = 2811,
- PseudoVFNMADD_VFPR32_M4_E32_MASK = 2812,
- PseudoVFNMADD_VFPR32_M8_E32 = 2813,
- PseudoVFNMADD_VFPR32_M8_E32_MASK = 2814,
- PseudoVFNMADD_VFPR32_MF2_E32 = 2815,
- PseudoVFNMADD_VFPR32_MF2_E32_MASK = 2816,
- PseudoVFNMADD_VFPR64_M1_E64 = 2817,
- PseudoVFNMADD_VFPR64_M1_E64_MASK = 2818,
- PseudoVFNMADD_VFPR64_M2_E64 = 2819,
- PseudoVFNMADD_VFPR64_M2_E64_MASK = 2820,
- PseudoVFNMADD_VFPR64_M4_E64 = 2821,
- PseudoVFNMADD_VFPR64_M4_E64_MASK = 2822,
- PseudoVFNMADD_VFPR64_M8_E64 = 2823,
- PseudoVFNMADD_VFPR64_M8_E64_MASK = 2824,
- PseudoVFNMADD_VV_M1_E16 = 2825,
- PseudoVFNMADD_VV_M1_E16_MASK = 2826,
- PseudoVFNMADD_VV_M1_E32 = 2827,
- PseudoVFNMADD_VV_M1_E32_MASK = 2828,
- PseudoVFNMADD_VV_M1_E64 = 2829,
- PseudoVFNMADD_VV_M1_E64_MASK = 2830,
- PseudoVFNMADD_VV_M2_E16 = 2831,
- PseudoVFNMADD_VV_M2_E16_MASK = 2832,
- PseudoVFNMADD_VV_M2_E32 = 2833,
- PseudoVFNMADD_VV_M2_E32_MASK = 2834,
- PseudoVFNMADD_VV_M2_E64 = 2835,
- PseudoVFNMADD_VV_M2_E64_MASK = 2836,
- PseudoVFNMADD_VV_M4_E16 = 2837,
- PseudoVFNMADD_VV_M4_E16_MASK = 2838,
- PseudoVFNMADD_VV_M4_E32 = 2839,
- PseudoVFNMADD_VV_M4_E32_MASK = 2840,
- PseudoVFNMADD_VV_M4_E64 = 2841,
- PseudoVFNMADD_VV_M4_E64_MASK = 2842,
- PseudoVFNMADD_VV_M8_E16 = 2843,
- PseudoVFNMADD_VV_M8_E16_MASK = 2844,
- PseudoVFNMADD_VV_M8_E32 = 2845,
- PseudoVFNMADD_VV_M8_E32_MASK = 2846,
- PseudoVFNMADD_VV_M8_E64 = 2847,
- PseudoVFNMADD_VV_M8_E64_MASK = 2848,
- PseudoVFNMADD_VV_MF2_E16 = 2849,
- PseudoVFNMADD_VV_MF2_E16_MASK = 2850,
- PseudoVFNMADD_VV_MF2_E32 = 2851,
- PseudoVFNMADD_VV_MF2_E32_MASK = 2852,
- PseudoVFNMADD_VV_MF4_E16 = 2853,
- PseudoVFNMADD_VV_MF4_E16_MASK = 2854,
- PseudoVFNMSAC_VFPR16_M1_E16 = 2855,
- PseudoVFNMSAC_VFPR16_M1_E16_MASK = 2856,
- PseudoVFNMSAC_VFPR16_M2_E16 = 2857,
- PseudoVFNMSAC_VFPR16_M2_E16_MASK = 2858,
- PseudoVFNMSAC_VFPR16_M4_E16 = 2859,
- PseudoVFNMSAC_VFPR16_M4_E16_MASK = 2860,
- PseudoVFNMSAC_VFPR16_M8_E16 = 2861,
- PseudoVFNMSAC_VFPR16_M8_E16_MASK = 2862,
- PseudoVFNMSAC_VFPR16_MF2_E16 = 2863,
- PseudoVFNMSAC_VFPR16_MF2_E16_MASK = 2864,
- PseudoVFNMSAC_VFPR16_MF4_E16 = 2865,
- PseudoVFNMSAC_VFPR16_MF4_E16_MASK = 2866,
- PseudoVFNMSAC_VFPR32_M1_E32 = 2867,
- PseudoVFNMSAC_VFPR32_M1_E32_MASK = 2868,
- PseudoVFNMSAC_VFPR32_M2_E32 = 2869,
- PseudoVFNMSAC_VFPR32_M2_E32_MASK = 2870,
- PseudoVFNMSAC_VFPR32_M4_E32 = 2871,
- PseudoVFNMSAC_VFPR32_M4_E32_MASK = 2872,
- PseudoVFNMSAC_VFPR32_M8_E32 = 2873,
- PseudoVFNMSAC_VFPR32_M8_E32_MASK = 2874,
- PseudoVFNMSAC_VFPR32_MF2_E32 = 2875,
- PseudoVFNMSAC_VFPR32_MF2_E32_MASK = 2876,
- PseudoVFNMSAC_VFPR64_M1_E64 = 2877,
- PseudoVFNMSAC_VFPR64_M1_E64_MASK = 2878,
- PseudoVFNMSAC_VFPR64_M2_E64 = 2879,
- PseudoVFNMSAC_VFPR64_M2_E64_MASK = 2880,
- PseudoVFNMSAC_VFPR64_M4_E64 = 2881,
- PseudoVFNMSAC_VFPR64_M4_E64_MASK = 2882,
- PseudoVFNMSAC_VFPR64_M8_E64 = 2883,
- PseudoVFNMSAC_VFPR64_M8_E64_MASK = 2884,
- PseudoVFNMSAC_VV_M1_E16 = 2885,
- PseudoVFNMSAC_VV_M1_E16_MASK = 2886,
- PseudoVFNMSAC_VV_M1_E32 = 2887,
- PseudoVFNMSAC_VV_M1_E32_MASK = 2888,
- PseudoVFNMSAC_VV_M1_E64 = 2889,
- PseudoVFNMSAC_VV_M1_E64_MASK = 2890,
- PseudoVFNMSAC_VV_M2_E16 = 2891,
- PseudoVFNMSAC_VV_M2_E16_MASK = 2892,
- PseudoVFNMSAC_VV_M2_E32 = 2893,
- PseudoVFNMSAC_VV_M2_E32_MASK = 2894,
- PseudoVFNMSAC_VV_M2_E64 = 2895,
- PseudoVFNMSAC_VV_M2_E64_MASK = 2896,
- PseudoVFNMSAC_VV_M4_E16 = 2897,
- PseudoVFNMSAC_VV_M4_E16_MASK = 2898,
- PseudoVFNMSAC_VV_M4_E32 = 2899,
- PseudoVFNMSAC_VV_M4_E32_MASK = 2900,
- PseudoVFNMSAC_VV_M4_E64 = 2901,
- PseudoVFNMSAC_VV_M4_E64_MASK = 2902,
- PseudoVFNMSAC_VV_M8_E16 = 2903,
- PseudoVFNMSAC_VV_M8_E16_MASK = 2904,
- PseudoVFNMSAC_VV_M8_E32 = 2905,
- PseudoVFNMSAC_VV_M8_E32_MASK = 2906,
- PseudoVFNMSAC_VV_M8_E64 = 2907,
- PseudoVFNMSAC_VV_M8_E64_MASK = 2908,
- PseudoVFNMSAC_VV_MF2_E16 = 2909,
- PseudoVFNMSAC_VV_MF2_E16_MASK = 2910,
- PseudoVFNMSAC_VV_MF2_E32 = 2911,
- PseudoVFNMSAC_VV_MF2_E32_MASK = 2912,
- PseudoVFNMSAC_VV_MF4_E16 = 2913,
- PseudoVFNMSAC_VV_MF4_E16_MASK = 2914,
- PseudoVFNMSUB_VFPR16_M1_E16 = 2915,
- PseudoVFNMSUB_VFPR16_M1_E16_MASK = 2916,
- PseudoVFNMSUB_VFPR16_M2_E16 = 2917,
- PseudoVFNMSUB_VFPR16_M2_E16_MASK = 2918,
- PseudoVFNMSUB_VFPR16_M4_E16 = 2919,
- PseudoVFNMSUB_VFPR16_M4_E16_MASK = 2920,
- PseudoVFNMSUB_VFPR16_M8_E16 = 2921,
- PseudoVFNMSUB_VFPR16_M8_E16_MASK = 2922,
- PseudoVFNMSUB_VFPR16_MF2_E16 = 2923,
- PseudoVFNMSUB_VFPR16_MF2_E16_MASK = 2924,
- PseudoVFNMSUB_VFPR16_MF4_E16 = 2925,
- PseudoVFNMSUB_VFPR16_MF4_E16_MASK = 2926,
- PseudoVFNMSUB_VFPR32_M1_E32 = 2927,
- PseudoVFNMSUB_VFPR32_M1_E32_MASK = 2928,
- PseudoVFNMSUB_VFPR32_M2_E32 = 2929,
- PseudoVFNMSUB_VFPR32_M2_E32_MASK = 2930,
- PseudoVFNMSUB_VFPR32_M4_E32 = 2931,
- PseudoVFNMSUB_VFPR32_M4_E32_MASK = 2932,
- PseudoVFNMSUB_VFPR32_M8_E32 = 2933,
- PseudoVFNMSUB_VFPR32_M8_E32_MASK = 2934,
- PseudoVFNMSUB_VFPR32_MF2_E32 = 2935,
- PseudoVFNMSUB_VFPR32_MF2_E32_MASK = 2936,
- PseudoVFNMSUB_VFPR64_M1_E64 = 2937,
- PseudoVFNMSUB_VFPR64_M1_E64_MASK = 2938,
- PseudoVFNMSUB_VFPR64_M2_E64 = 2939,
- PseudoVFNMSUB_VFPR64_M2_E64_MASK = 2940,
- PseudoVFNMSUB_VFPR64_M4_E64 = 2941,
- PseudoVFNMSUB_VFPR64_M4_E64_MASK = 2942,
- PseudoVFNMSUB_VFPR64_M8_E64 = 2943,
- PseudoVFNMSUB_VFPR64_M8_E64_MASK = 2944,
- PseudoVFNMSUB_VV_M1_E16 = 2945,
- PseudoVFNMSUB_VV_M1_E16_MASK = 2946,
- PseudoVFNMSUB_VV_M1_E32 = 2947,
- PseudoVFNMSUB_VV_M1_E32_MASK = 2948,
- PseudoVFNMSUB_VV_M1_E64 = 2949,
- PseudoVFNMSUB_VV_M1_E64_MASK = 2950,
- PseudoVFNMSUB_VV_M2_E16 = 2951,
- PseudoVFNMSUB_VV_M2_E16_MASK = 2952,
- PseudoVFNMSUB_VV_M2_E32 = 2953,
- PseudoVFNMSUB_VV_M2_E32_MASK = 2954,
- PseudoVFNMSUB_VV_M2_E64 = 2955,
- PseudoVFNMSUB_VV_M2_E64_MASK = 2956,
- PseudoVFNMSUB_VV_M4_E16 = 2957,
- PseudoVFNMSUB_VV_M4_E16_MASK = 2958,
- PseudoVFNMSUB_VV_M4_E32 = 2959,
- PseudoVFNMSUB_VV_M4_E32_MASK = 2960,
- PseudoVFNMSUB_VV_M4_E64 = 2961,
- PseudoVFNMSUB_VV_M4_E64_MASK = 2962,
- PseudoVFNMSUB_VV_M8_E16 = 2963,
- PseudoVFNMSUB_VV_M8_E16_MASK = 2964,
- PseudoVFNMSUB_VV_M8_E32 = 2965,
- PseudoVFNMSUB_VV_M8_E32_MASK = 2966,
- PseudoVFNMSUB_VV_M8_E64 = 2967,
- PseudoVFNMSUB_VV_M8_E64_MASK = 2968,
- PseudoVFNMSUB_VV_MF2_E16 = 2969,
- PseudoVFNMSUB_VV_MF2_E16_MASK = 2970,
- PseudoVFNMSUB_VV_MF2_E32 = 2971,
- PseudoVFNMSUB_VV_MF2_E32_MASK = 2972,
- PseudoVFNMSUB_VV_MF4_E16 = 2973,
- PseudoVFNMSUB_VV_MF4_E16_MASK = 2974,
- PseudoVFRDIV_VFPR16_M1_E16 = 2975,
- PseudoVFRDIV_VFPR16_M1_E16_MASK = 2976,
- PseudoVFRDIV_VFPR16_M2_E16 = 2977,
- PseudoVFRDIV_VFPR16_M2_E16_MASK = 2978,
- PseudoVFRDIV_VFPR16_M4_E16 = 2979,
- PseudoVFRDIV_VFPR16_M4_E16_MASK = 2980,
- PseudoVFRDIV_VFPR16_M8_E16 = 2981,
- PseudoVFRDIV_VFPR16_M8_E16_MASK = 2982,
- PseudoVFRDIV_VFPR16_MF2_E16 = 2983,
- PseudoVFRDIV_VFPR16_MF2_E16_MASK = 2984,
- PseudoVFRDIV_VFPR16_MF4_E16 = 2985,
- PseudoVFRDIV_VFPR16_MF4_E16_MASK = 2986,
- PseudoVFRDIV_VFPR32_M1_E32 = 2987,
- PseudoVFRDIV_VFPR32_M1_E32_MASK = 2988,
- PseudoVFRDIV_VFPR32_M2_E32 = 2989,
- PseudoVFRDIV_VFPR32_M2_E32_MASK = 2990,
- PseudoVFRDIV_VFPR32_M4_E32 = 2991,
- PseudoVFRDIV_VFPR32_M4_E32_MASK = 2992,
- PseudoVFRDIV_VFPR32_M8_E32 = 2993,
- PseudoVFRDIV_VFPR32_M8_E32_MASK = 2994,
- PseudoVFRDIV_VFPR32_MF2_E32 = 2995,
- PseudoVFRDIV_VFPR32_MF2_E32_MASK = 2996,
- PseudoVFRDIV_VFPR64_M1_E64 = 2997,
- PseudoVFRDIV_VFPR64_M1_E64_MASK = 2998,
- PseudoVFRDIV_VFPR64_M2_E64 = 2999,
- PseudoVFRDIV_VFPR64_M2_E64_MASK = 3000,
- PseudoVFRDIV_VFPR64_M4_E64 = 3001,
- PseudoVFRDIV_VFPR64_M4_E64_MASK = 3002,
- PseudoVFRDIV_VFPR64_M8_E64 = 3003,
- PseudoVFRDIV_VFPR64_M8_E64_MASK = 3004,
- PseudoVFREC7_V_M1_E16 = 3005,
- PseudoVFREC7_V_M1_E16_MASK = 3006,
- PseudoVFREC7_V_M1_E32 = 3007,
- PseudoVFREC7_V_M1_E32_MASK = 3008,
- PseudoVFREC7_V_M1_E64 = 3009,
- PseudoVFREC7_V_M1_E64_MASK = 3010,
- PseudoVFREC7_V_M2_E16 = 3011,
- PseudoVFREC7_V_M2_E16_MASK = 3012,
- PseudoVFREC7_V_M2_E32 = 3013,
- PseudoVFREC7_V_M2_E32_MASK = 3014,
- PseudoVFREC7_V_M2_E64 = 3015,
- PseudoVFREC7_V_M2_E64_MASK = 3016,
- PseudoVFREC7_V_M4_E16 = 3017,
- PseudoVFREC7_V_M4_E16_MASK = 3018,
- PseudoVFREC7_V_M4_E32 = 3019,
- PseudoVFREC7_V_M4_E32_MASK = 3020,
- PseudoVFREC7_V_M4_E64 = 3021,
- PseudoVFREC7_V_M4_E64_MASK = 3022,
- PseudoVFREC7_V_M8_E16 = 3023,
- PseudoVFREC7_V_M8_E16_MASK = 3024,
- PseudoVFREC7_V_M8_E32 = 3025,
- PseudoVFREC7_V_M8_E32_MASK = 3026,
- PseudoVFREC7_V_M8_E64 = 3027,
- PseudoVFREC7_V_M8_E64_MASK = 3028,
- PseudoVFREC7_V_MF2_E16 = 3029,
- PseudoVFREC7_V_MF2_E16_MASK = 3030,
- PseudoVFREC7_V_MF2_E32 = 3031,
- PseudoVFREC7_V_MF2_E32_MASK = 3032,
- PseudoVFREC7_V_MF4_E16 = 3033,
- PseudoVFREC7_V_MF4_E16_MASK = 3034,
- PseudoVFREDMAX_VS_M1_E16 = 3035,
- PseudoVFREDMAX_VS_M1_E16_MASK = 3036,
- PseudoVFREDMAX_VS_M1_E32 = 3037,
- PseudoVFREDMAX_VS_M1_E32_MASK = 3038,
- PseudoVFREDMAX_VS_M1_E64 = 3039,
- PseudoVFREDMAX_VS_M1_E64_MASK = 3040,
- PseudoVFREDMAX_VS_M2_E16 = 3041,
- PseudoVFREDMAX_VS_M2_E16_MASK = 3042,
- PseudoVFREDMAX_VS_M2_E32 = 3043,
- PseudoVFREDMAX_VS_M2_E32_MASK = 3044,
- PseudoVFREDMAX_VS_M2_E64 = 3045,
- PseudoVFREDMAX_VS_M2_E64_MASK = 3046,
- PseudoVFREDMAX_VS_M4_E16 = 3047,
- PseudoVFREDMAX_VS_M4_E16_MASK = 3048,
- PseudoVFREDMAX_VS_M4_E32 = 3049,
- PseudoVFREDMAX_VS_M4_E32_MASK = 3050,
- PseudoVFREDMAX_VS_M4_E64 = 3051,
- PseudoVFREDMAX_VS_M4_E64_MASK = 3052,
- PseudoVFREDMAX_VS_M8_E16 = 3053,
- PseudoVFREDMAX_VS_M8_E16_MASK = 3054,
- PseudoVFREDMAX_VS_M8_E32 = 3055,
- PseudoVFREDMAX_VS_M8_E32_MASK = 3056,
- PseudoVFREDMAX_VS_M8_E64 = 3057,
- PseudoVFREDMAX_VS_M8_E64_MASK = 3058,
- PseudoVFREDMAX_VS_MF2_E16 = 3059,
- PseudoVFREDMAX_VS_MF2_E16_MASK = 3060,
- PseudoVFREDMAX_VS_MF2_E32 = 3061,
- PseudoVFREDMAX_VS_MF2_E32_MASK = 3062,
- PseudoVFREDMAX_VS_MF4_E16 = 3063,
- PseudoVFREDMAX_VS_MF4_E16_MASK = 3064,
- PseudoVFREDMIN_VS_M1_E16 = 3065,
- PseudoVFREDMIN_VS_M1_E16_MASK = 3066,
- PseudoVFREDMIN_VS_M1_E32 = 3067,
- PseudoVFREDMIN_VS_M1_E32_MASK = 3068,
- PseudoVFREDMIN_VS_M1_E64 = 3069,
- PseudoVFREDMIN_VS_M1_E64_MASK = 3070,
- PseudoVFREDMIN_VS_M2_E16 = 3071,
- PseudoVFREDMIN_VS_M2_E16_MASK = 3072,
- PseudoVFREDMIN_VS_M2_E32 = 3073,
- PseudoVFREDMIN_VS_M2_E32_MASK = 3074,
- PseudoVFREDMIN_VS_M2_E64 = 3075,
- PseudoVFREDMIN_VS_M2_E64_MASK = 3076,
- PseudoVFREDMIN_VS_M4_E16 = 3077,
- PseudoVFREDMIN_VS_M4_E16_MASK = 3078,
- PseudoVFREDMIN_VS_M4_E32 = 3079,
- PseudoVFREDMIN_VS_M4_E32_MASK = 3080,
- PseudoVFREDMIN_VS_M4_E64 = 3081,
- PseudoVFREDMIN_VS_M4_E64_MASK = 3082,
- PseudoVFREDMIN_VS_M8_E16 = 3083,
- PseudoVFREDMIN_VS_M8_E16_MASK = 3084,
- PseudoVFREDMIN_VS_M8_E32 = 3085,
- PseudoVFREDMIN_VS_M8_E32_MASK = 3086,
- PseudoVFREDMIN_VS_M8_E64 = 3087,
- PseudoVFREDMIN_VS_M8_E64_MASK = 3088,
- PseudoVFREDMIN_VS_MF2_E16 = 3089,
- PseudoVFREDMIN_VS_MF2_E16_MASK = 3090,
- PseudoVFREDMIN_VS_MF2_E32 = 3091,
- PseudoVFREDMIN_VS_MF2_E32_MASK = 3092,
- PseudoVFREDMIN_VS_MF4_E16 = 3093,
- PseudoVFREDMIN_VS_MF4_E16_MASK = 3094,
- PseudoVFREDOSUM_VS_M1_E16 = 3095,
- PseudoVFREDOSUM_VS_M1_E16_MASK = 3096,
- PseudoVFREDOSUM_VS_M1_E32 = 3097,
- PseudoVFREDOSUM_VS_M1_E32_MASK = 3098,
- PseudoVFREDOSUM_VS_M1_E64 = 3099,
- PseudoVFREDOSUM_VS_M1_E64_MASK = 3100,
- PseudoVFREDOSUM_VS_M2_E16 = 3101,
- PseudoVFREDOSUM_VS_M2_E16_MASK = 3102,
- PseudoVFREDOSUM_VS_M2_E32 = 3103,
- PseudoVFREDOSUM_VS_M2_E32_MASK = 3104,
- PseudoVFREDOSUM_VS_M2_E64 = 3105,
- PseudoVFREDOSUM_VS_M2_E64_MASK = 3106,
- PseudoVFREDOSUM_VS_M4_E16 = 3107,
- PseudoVFREDOSUM_VS_M4_E16_MASK = 3108,
- PseudoVFREDOSUM_VS_M4_E32 = 3109,
- PseudoVFREDOSUM_VS_M4_E32_MASK = 3110,
- PseudoVFREDOSUM_VS_M4_E64 = 3111,
- PseudoVFREDOSUM_VS_M4_E64_MASK = 3112,
- PseudoVFREDOSUM_VS_M8_E16 = 3113,
- PseudoVFREDOSUM_VS_M8_E16_MASK = 3114,
- PseudoVFREDOSUM_VS_M8_E32 = 3115,
- PseudoVFREDOSUM_VS_M8_E32_MASK = 3116,
- PseudoVFREDOSUM_VS_M8_E64 = 3117,
- PseudoVFREDOSUM_VS_M8_E64_MASK = 3118,
- PseudoVFREDOSUM_VS_MF2_E16 = 3119,
- PseudoVFREDOSUM_VS_MF2_E16_MASK = 3120,
- PseudoVFREDOSUM_VS_MF2_E32 = 3121,
- PseudoVFREDOSUM_VS_MF2_E32_MASK = 3122,
- PseudoVFREDOSUM_VS_MF4_E16 = 3123,
- PseudoVFREDOSUM_VS_MF4_E16_MASK = 3124,
- PseudoVFREDUSUM_VS_M1_E16 = 3125,
- PseudoVFREDUSUM_VS_M1_E16_MASK = 3126,
- PseudoVFREDUSUM_VS_M1_E32 = 3127,
- PseudoVFREDUSUM_VS_M1_E32_MASK = 3128,
- PseudoVFREDUSUM_VS_M1_E64 = 3129,
- PseudoVFREDUSUM_VS_M1_E64_MASK = 3130,
- PseudoVFREDUSUM_VS_M2_E16 = 3131,
- PseudoVFREDUSUM_VS_M2_E16_MASK = 3132,
- PseudoVFREDUSUM_VS_M2_E32 = 3133,
- PseudoVFREDUSUM_VS_M2_E32_MASK = 3134,
- PseudoVFREDUSUM_VS_M2_E64 = 3135,
- PseudoVFREDUSUM_VS_M2_E64_MASK = 3136,
- PseudoVFREDUSUM_VS_M4_E16 = 3137,
- PseudoVFREDUSUM_VS_M4_E16_MASK = 3138,
- PseudoVFREDUSUM_VS_M4_E32 = 3139,
- PseudoVFREDUSUM_VS_M4_E32_MASK = 3140,
- PseudoVFREDUSUM_VS_M4_E64 = 3141,
- PseudoVFREDUSUM_VS_M4_E64_MASK = 3142,
- PseudoVFREDUSUM_VS_M8_E16 = 3143,
- PseudoVFREDUSUM_VS_M8_E16_MASK = 3144,
- PseudoVFREDUSUM_VS_M8_E32 = 3145,
- PseudoVFREDUSUM_VS_M8_E32_MASK = 3146,
- PseudoVFREDUSUM_VS_M8_E64 = 3147,
- PseudoVFREDUSUM_VS_M8_E64_MASK = 3148,
- PseudoVFREDUSUM_VS_MF2_E16 = 3149,
- PseudoVFREDUSUM_VS_MF2_E16_MASK = 3150,
- PseudoVFREDUSUM_VS_MF2_E32 = 3151,
- PseudoVFREDUSUM_VS_MF2_E32_MASK = 3152,
- PseudoVFREDUSUM_VS_MF4_E16 = 3153,
- PseudoVFREDUSUM_VS_MF4_E16_MASK = 3154,
- PseudoVFROUND_NOEXCEPT_V_M1_MASK = 3155,
- PseudoVFROUND_NOEXCEPT_V_M2_MASK = 3156,
- PseudoVFROUND_NOEXCEPT_V_M4_MASK = 3157,
- PseudoVFROUND_NOEXCEPT_V_M8_MASK = 3158,
- PseudoVFROUND_NOEXCEPT_V_MF2_MASK = 3159,
- PseudoVFROUND_NOEXCEPT_V_MF4_MASK = 3160,
- PseudoVFRSQRT7_V_M1_E16 = 3161,
- PseudoVFRSQRT7_V_M1_E16_MASK = 3162,
- PseudoVFRSQRT7_V_M1_E32 = 3163,
- PseudoVFRSQRT7_V_M1_E32_MASK = 3164,
- PseudoVFRSQRT7_V_M1_E64 = 3165,
- PseudoVFRSQRT7_V_M1_E64_MASK = 3166,
- PseudoVFRSQRT7_V_M2_E16 = 3167,
- PseudoVFRSQRT7_V_M2_E16_MASK = 3168,
- PseudoVFRSQRT7_V_M2_E32 = 3169,
- PseudoVFRSQRT7_V_M2_E32_MASK = 3170,
- PseudoVFRSQRT7_V_M2_E64 = 3171,
- PseudoVFRSQRT7_V_M2_E64_MASK = 3172,
- PseudoVFRSQRT7_V_M4_E16 = 3173,
- PseudoVFRSQRT7_V_M4_E16_MASK = 3174,
- PseudoVFRSQRT7_V_M4_E32 = 3175,
- PseudoVFRSQRT7_V_M4_E32_MASK = 3176,
- PseudoVFRSQRT7_V_M4_E64 = 3177,
- PseudoVFRSQRT7_V_M4_E64_MASK = 3178,
- PseudoVFRSQRT7_V_M8_E16 = 3179,
- PseudoVFRSQRT7_V_M8_E16_MASK = 3180,
- PseudoVFRSQRT7_V_M8_E32 = 3181,
- PseudoVFRSQRT7_V_M8_E32_MASK = 3182,
- PseudoVFRSQRT7_V_M8_E64 = 3183,
- PseudoVFRSQRT7_V_M8_E64_MASK = 3184,
- PseudoVFRSQRT7_V_MF2_E16 = 3185,
- PseudoVFRSQRT7_V_MF2_E16_MASK = 3186,
- PseudoVFRSQRT7_V_MF2_E32 = 3187,
- PseudoVFRSQRT7_V_MF2_E32_MASK = 3188,
- PseudoVFRSQRT7_V_MF4_E16 = 3189,
- PseudoVFRSQRT7_V_MF4_E16_MASK = 3190,
- PseudoVFRSUB_VFPR16_M1_E16 = 3191,
- PseudoVFRSUB_VFPR16_M1_E16_MASK = 3192,
- PseudoVFRSUB_VFPR16_M2_E16 = 3193,
- PseudoVFRSUB_VFPR16_M2_E16_MASK = 3194,
- PseudoVFRSUB_VFPR16_M4_E16 = 3195,
- PseudoVFRSUB_VFPR16_M4_E16_MASK = 3196,
- PseudoVFRSUB_VFPR16_M8_E16 = 3197,
- PseudoVFRSUB_VFPR16_M8_E16_MASK = 3198,
- PseudoVFRSUB_VFPR16_MF2_E16 = 3199,
- PseudoVFRSUB_VFPR16_MF2_E16_MASK = 3200,
- PseudoVFRSUB_VFPR16_MF4_E16 = 3201,
- PseudoVFRSUB_VFPR16_MF4_E16_MASK = 3202,
- PseudoVFRSUB_VFPR32_M1_E32 = 3203,
- PseudoVFRSUB_VFPR32_M1_E32_MASK = 3204,
- PseudoVFRSUB_VFPR32_M2_E32 = 3205,
- PseudoVFRSUB_VFPR32_M2_E32_MASK = 3206,
- PseudoVFRSUB_VFPR32_M4_E32 = 3207,
- PseudoVFRSUB_VFPR32_M4_E32_MASK = 3208,
- PseudoVFRSUB_VFPR32_M8_E32 = 3209,
- PseudoVFRSUB_VFPR32_M8_E32_MASK = 3210,
- PseudoVFRSUB_VFPR32_MF2_E32 = 3211,
- PseudoVFRSUB_VFPR32_MF2_E32_MASK = 3212,
- PseudoVFRSUB_VFPR64_M1_E64 = 3213,
- PseudoVFRSUB_VFPR64_M1_E64_MASK = 3214,
- PseudoVFRSUB_VFPR64_M2_E64 = 3215,
- PseudoVFRSUB_VFPR64_M2_E64_MASK = 3216,
- PseudoVFRSUB_VFPR64_M4_E64 = 3217,
- PseudoVFRSUB_VFPR64_M4_E64_MASK = 3218,
- PseudoVFRSUB_VFPR64_M8_E64 = 3219,
- PseudoVFRSUB_VFPR64_M8_E64_MASK = 3220,
- PseudoVFSGNJN_VFPR16_M1_E16 = 3221,
- PseudoVFSGNJN_VFPR16_M1_E16_MASK = 3222,
- PseudoVFSGNJN_VFPR16_M2_E16 = 3223,
- PseudoVFSGNJN_VFPR16_M2_E16_MASK = 3224,
- PseudoVFSGNJN_VFPR16_M4_E16 = 3225,
- PseudoVFSGNJN_VFPR16_M4_E16_MASK = 3226,
- PseudoVFSGNJN_VFPR16_M8_E16 = 3227,
- PseudoVFSGNJN_VFPR16_M8_E16_MASK = 3228,
- PseudoVFSGNJN_VFPR16_MF2_E16 = 3229,
- PseudoVFSGNJN_VFPR16_MF2_E16_MASK = 3230,
- PseudoVFSGNJN_VFPR16_MF4_E16 = 3231,
- PseudoVFSGNJN_VFPR16_MF4_E16_MASK = 3232,
- PseudoVFSGNJN_VFPR32_M1_E32 = 3233,
- PseudoVFSGNJN_VFPR32_M1_E32_MASK = 3234,
- PseudoVFSGNJN_VFPR32_M2_E32 = 3235,
- PseudoVFSGNJN_VFPR32_M2_E32_MASK = 3236,
- PseudoVFSGNJN_VFPR32_M4_E32 = 3237,
- PseudoVFSGNJN_VFPR32_M4_E32_MASK = 3238,
- PseudoVFSGNJN_VFPR32_M8_E32 = 3239,
- PseudoVFSGNJN_VFPR32_M8_E32_MASK = 3240,
- PseudoVFSGNJN_VFPR32_MF2_E32 = 3241,
- PseudoVFSGNJN_VFPR32_MF2_E32_MASK = 3242,
- PseudoVFSGNJN_VFPR64_M1_E64 = 3243,
- PseudoVFSGNJN_VFPR64_M1_E64_MASK = 3244,
- PseudoVFSGNJN_VFPR64_M2_E64 = 3245,
- PseudoVFSGNJN_VFPR64_M2_E64_MASK = 3246,
- PseudoVFSGNJN_VFPR64_M4_E64 = 3247,
- PseudoVFSGNJN_VFPR64_M4_E64_MASK = 3248,
- PseudoVFSGNJN_VFPR64_M8_E64 = 3249,
- PseudoVFSGNJN_VFPR64_M8_E64_MASK = 3250,
- PseudoVFSGNJN_VV_M1_E16 = 3251,
- PseudoVFSGNJN_VV_M1_E16_MASK = 3252,
- PseudoVFSGNJN_VV_M1_E32 = 3253,
- PseudoVFSGNJN_VV_M1_E32_MASK = 3254,
- PseudoVFSGNJN_VV_M1_E64 = 3255,
- PseudoVFSGNJN_VV_M1_E64_MASK = 3256,
- PseudoVFSGNJN_VV_M2_E16 = 3257,
- PseudoVFSGNJN_VV_M2_E16_MASK = 3258,
- PseudoVFSGNJN_VV_M2_E32 = 3259,
- PseudoVFSGNJN_VV_M2_E32_MASK = 3260,
- PseudoVFSGNJN_VV_M2_E64 = 3261,
- PseudoVFSGNJN_VV_M2_E64_MASK = 3262,
- PseudoVFSGNJN_VV_M4_E16 = 3263,
- PseudoVFSGNJN_VV_M4_E16_MASK = 3264,
- PseudoVFSGNJN_VV_M4_E32 = 3265,
- PseudoVFSGNJN_VV_M4_E32_MASK = 3266,
- PseudoVFSGNJN_VV_M4_E64 = 3267,
- PseudoVFSGNJN_VV_M4_E64_MASK = 3268,
- PseudoVFSGNJN_VV_M8_E16 = 3269,
- PseudoVFSGNJN_VV_M8_E16_MASK = 3270,
- PseudoVFSGNJN_VV_M8_E32 = 3271,
- PseudoVFSGNJN_VV_M8_E32_MASK = 3272,
- PseudoVFSGNJN_VV_M8_E64 = 3273,
- PseudoVFSGNJN_VV_M8_E64_MASK = 3274,
- PseudoVFSGNJN_VV_MF2_E16 = 3275,
- PseudoVFSGNJN_VV_MF2_E16_MASK = 3276,
- PseudoVFSGNJN_VV_MF2_E32 = 3277,
- PseudoVFSGNJN_VV_MF2_E32_MASK = 3278,
- PseudoVFSGNJN_VV_MF4_E16 = 3279,
- PseudoVFSGNJN_VV_MF4_E16_MASK = 3280,
- PseudoVFSGNJX_VFPR16_M1_E16 = 3281,
- PseudoVFSGNJX_VFPR16_M1_E16_MASK = 3282,
- PseudoVFSGNJX_VFPR16_M2_E16 = 3283,
- PseudoVFSGNJX_VFPR16_M2_E16_MASK = 3284,
- PseudoVFSGNJX_VFPR16_M4_E16 = 3285,
- PseudoVFSGNJX_VFPR16_M4_E16_MASK = 3286,
- PseudoVFSGNJX_VFPR16_M8_E16 = 3287,
- PseudoVFSGNJX_VFPR16_M8_E16_MASK = 3288,
- PseudoVFSGNJX_VFPR16_MF2_E16 = 3289,
- PseudoVFSGNJX_VFPR16_MF2_E16_MASK = 3290,
- PseudoVFSGNJX_VFPR16_MF4_E16 = 3291,
- PseudoVFSGNJX_VFPR16_MF4_E16_MASK = 3292,
- PseudoVFSGNJX_VFPR32_M1_E32 = 3293,
- PseudoVFSGNJX_VFPR32_M1_E32_MASK = 3294,
- PseudoVFSGNJX_VFPR32_M2_E32 = 3295,
- PseudoVFSGNJX_VFPR32_M2_E32_MASK = 3296,
- PseudoVFSGNJX_VFPR32_M4_E32 = 3297,
- PseudoVFSGNJX_VFPR32_M4_E32_MASK = 3298,
- PseudoVFSGNJX_VFPR32_M8_E32 = 3299,
- PseudoVFSGNJX_VFPR32_M8_E32_MASK = 3300,
- PseudoVFSGNJX_VFPR32_MF2_E32 = 3301,
- PseudoVFSGNJX_VFPR32_MF2_E32_MASK = 3302,
- PseudoVFSGNJX_VFPR64_M1_E64 = 3303,
- PseudoVFSGNJX_VFPR64_M1_E64_MASK = 3304,
- PseudoVFSGNJX_VFPR64_M2_E64 = 3305,
- PseudoVFSGNJX_VFPR64_M2_E64_MASK = 3306,
- PseudoVFSGNJX_VFPR64_M4_E64 = 3307,
- PseudoVFSGNJX_VFPR64_M4_E64_MASK = 3308,
- PseudoVFSGNJX_VFPR64_M8_E64 = 3309,
- PseudoVFSGNJX_VFPR64_M8_E64_MASK = 3310,
- PseudoVFSGNJX_VV_M1_E16 = 3311,
- PseudoVFSGNJX_VV_M1_E16_MASK = 3312,
- PseudoVFSGNJX_VV_M1_E32 = 3313,
- PseudoVFSGNJX_VV_M1_E32_MASK = 3314,
- PseudoVFSGNJX_VV_M1_E64 = 3315,
- PseudoVFSGNJX_VV_M1_E64_MASK = 3316,
- PseudoVFSGNJX_VV_M2_E16 = 3317,
- PseudoVFSGNJX_VV_M2_E16_MASK = 3318,
- PseudoVFSGNJX_VV_M2_E32 = 3319,
- PseudoVFSGNJX_VV_M2_E32_MASK = 3320,
- PseudoVFSGNJX_VV_M2_E64 = 3321,
- PseudoVFSGNJX_VV_M2_E64_MASK = 3322,
- PseudoVFSGNJX_VV_M4_E16 = 3323,
- PseudoVFSGNJX_VV_M4_E16_MASK = 3324,
- PseudoVFSGNJX_VV_M4_E32 = 3325,
- PseudoVFSGNJX_VV_M4_E32_MASK = 3326,
- PseudoVFSGNJX_VV_M4_E64 = 3327,
- PseudoVFSGNJX_VV_M4_E64_MASK = 3328,
- PseudoVFSGNJX_VV_M8_E16 = 3329,
- PseudoVFSGNJX_VV_M8_E16_MASK = 3330,
- PseudoVFSGNJX_VV_M8_E32 = 3331,
- PseudoVFSGNJX_VV_M8_E32_MASK = 3332,
- PseudoVFSGNJX_VV_M8_E64 = 3333,
- PseudoVFSGNJX_VV_M8_E64_MASK = 3334,
- PseudoVFSGNJX_VV_MF2_E16 = 3335,
- PseudoVFSGNJX_VV_MF2_E16_MASK = 3336,
- PseudoVFSGNJX_VV_MF2_E32 = 3337,
- PseudoVFSGNJX_VV_MF2_E32_MASK = 3338,
- PseudoVFSGNJX_VV_MF4_E16 = 3339,
- PseudoVFSGNJX_VV_MF4_E16_MASK = 3340,
- PseudoVFSGNJ_VFPR16_M1_E16 = 3341,
- PseudoVFSGNJ_VFPR16_M1_E16_MASK = 3342,
- PseudoVFSGNJ_VFPR16_M2_E16 = 3343,
- PseudoVFSGNJ_VFPR16_M2_E16_MASK = 3344,
- PseudoVFSGNJ_VFPR16_M4_E16 = 3345,
- PseudoVFSGNJ_VFPR16_M4_E16_MASK = 3346,
- PseudoVFSGNJ_VFPR16_M8_E16 = 3347,
- PseudoVFSGNJ_VFPR16_M8_E16_MASK = 3348,
- PseudoVFSGNJ_VFPR16_MF2_E16 = 3349,
- PseudoVFSGNJ_VFPR16_MF2_E16_MASK = 3350,
- PseudoVFSGNJ_VFPR16_MF4_E16 = 3351,
- PseudoVFSGNJ_VFPR16_MF4_E16_MASK = 3352,
- PseudoVFSGNJ_VFPR32_M1_E32 = 3353,
- PseudoVFSGNJ_VFPR32_M1_E32_MASK = 3354,
- PseudoVFSGNJ_VFPR32_M2_E32 = 3355,
- PseudoVFSGNJ_VFPR32_M2_E32_MASK = 3356,
- PseudoVFSGNJ_VFPR32_M4_E32 = 3357,
- PseudoVFSGNJ_VFPR32_M4_E32_MASK = 3358,
- PseudoVFSGNJ_VFPR32_M8_E32 = 3359,
- PseudoVFSGNJ_VFPR32_M8_E32_MASK = 3360,
- PseudoVFSGNJ_VFPR32_MF2_E32 = 3361,
- PseudoVFSGNJ_VFPR32_MF2_E32_MASK = 3362,
- PseudoVFSGNJ_VFPR64_M1_E64 = 3363,
- PseudoVFSGNJ_VFPR64_M1_E64_MASK = 3364,
- PseudoVFSGNJ_VFPR64_M2_E64 = 3365,
- PseudoVFSGNJ_VFPR64_M2_E64_MASK = 3366,
- PseudoVFSGNJ_VFPR64_M4_E64 = 3367,
- PseudoVFSGNJ_VFPR64_M4_E64_MASK = 3368,
- PseudoVFSGNJ_VFPR64_M8_E64 = 3369,
- PseudoVFSGNJ_VFPR64_M8_E64_MASK = 3370,
- PseudoVFSGNJ_VV_M1_E16 = 3371,
- PseudoVFSGNJ_VV_M1_E16_MASK = 3372,
- PseudoVFSGNJ_VV_M1_E32 = 3373,
- PseudoVFSGNJ_VV_M1_E32_MASK = 3374,
- PseudoVFSGNJ_VV_M1_E64 = 3375,
- PseudoVFSGNJ_VV_M1_E64_MASK = 3376,
- PseudoVFSGNJ_VV_M2_E16 = 3377,
- PseudoVFSGNJ_VV_M2_E16_MASK = 3378,
- PseudoVFSGNJ_VV_M2_E32 = 3379,
- PseudoVFSGNJ_VV_M2_E32_MASK = 3380,
- PseudoVFSGNJ_VV_M2_E64 = 3381,
- PseudoVFSGNJ_VV_M2_E64_MASK = 3382,
- PseudoVFSGNJ_VV_M4_E16 = 3383,
- PseudoVFSGNJ_VV_M4_E16_MASK = 3384,
- PseudoVFSGNJ_VV_M4_E32 = 3385,
- PseudoVFSGNJ_VV_M4_E32_MASK = 3386,
- PseudoVFSGNJ_VV_M4_E64 = 3387,
- PseudoVFSGNJ_VV_M4_E64_MASK = 3388,
- PseudoVFSGNJ_VV_M8_E16 = 3389,
- PseudoVFSGNJ_VV_M8_E16_MASK = 3390,
- PseudoVFSGNJ_VV_M8_E32 = 3391,
- PseudoVFSGNJ_VV_M8_E32_MASK = 3392,
- PseudoVFSGNJ_VV_M8_E64 = 3393,
- PseudoVFSGNJ_VV_M8_E64_MASK = 3394,
- PseudoVFSGNJ_VV_MF2_E16 = 3395,
- PseudoVFSGNJ_VV_MF2_E16_MASK = 3396,
- PseudoVFSGNJ_VV_MF2_E32 = 3397,
- PseudoVFSGNJ_VV_MF2_E32_MASK = 3398,
- PseudoVFSGNJ_VV_MF4_E16 = 3399,
- PseudoVFSGNJ_VV_MF4_E16_MASK = 3400,
- PseudoVFSLIDE1DOWN_VFPR16_M1 = 3401,
- PseudoVFSLIDE1DOWN_VFPR16_M1_MASK = 3402,
- PseudoVFSLIDE1DOWN_VFPR16_M2 = 3403,
- PseudoVFSLIDE1DOWN_VFPR16_M2_MASK = 3404,
- PseudoVFSLIDE1DOWN_VFPR16_M4 = 3405,
- PseudoVFSLIDE1DOWN_VFPR16_M4_MASK = 3406,
- PseudoVFSLIDE1DOWN_VFPR16_M8 = 3407,
- PseudoVFSLIDE1DOWN_VFPR16_M8_MASK = 3408,
- PseudoVFSLIDE1DOWN_VFPR16_MF2 = 3409,
- PseudoVFSLIDE1DOWN_VFPR16_MF2_MASK = 3410,
- PseudoVFSLIDE1DOWN_VFPR16_MF4 = 3411,
- PseudoVFSLIDE1DOWN_VFPR16_MF4_MASK = 3412,
- PseudoVFSLIDE1DOWN_VFPR32_M1 = 3413,
- PseudoVFSLIDE1DOWN_VFPR32_M1_MASK = 3414,
- PseudoVFSLIDE1DOWN_VFPR32_M2 = 3415,
- PseudoVFSLIDE1DOWN_VFPR32_M2_MASK = 3416,
- PseudoVFSLIDE1DOWN_VFPR32_M4 = 3417,
- PseudoVFSLIDE1DOWN_VFPR32_M4_MASK = 3418,
- PseudoVFSLIDE1DOWN_VFPR32_M8 = 3419,
- PseudoVFSLIDE1DOWN_VFPR32_M8_MASK = 3420,
- PseudoVFSLIDE1DOWN_VFPR32_MF2 = 3421,
- PseudoVFSLIDE1DOWN_VFPR32_MF2_MASK = 3422,
- PseudoVFSLIDE1DOWN_VFPR64_M1 = 3423,
- PseudoVFSLIDE1DOWN_VFPR64_M1_MASK = 3424,
- PseudoVFSLIDE1DOWN_VFPR64_M2 = 3425,
- PseudoVFSLIDE1DOWN_VFPR64_M2_MASK = 3426,
- PseudoVFSLIDE1DOWN_VFPR64_M4 = 3427,
- PseudoVFSLIDE1DOWN_VFPR64_M4_MASK = 3428,
- PseudoVFSLIDE1DOWN_VFPR64_M8 = 3429,
- PseudoVFSLIDE1DOWN_VFPR64_M8_MASK = 3430,
- PseudoVFSLIDE1UP_VFPR16_M1 = 3431,
- PseudoVFSLIDE1UP_VFPR16_M1_MASK = 3432,
- PseudoVFSLIDE1UP_VFPR16_M2 = 3433,
- PseudoVFSLIDE1UP_VFPR16_M2_MASK = 3434,
- PseudoVFSLIDE1UP_VFPR16_M4 = 3435,
- PseudoVFSLIDE1UP_VFPR16_M4_MASK = 3436,
- PseudoVFSLIDE1UP_VFPR16_M8 = 3437,
- PseudoVFSLIDE1UP_VFPR16_M8_MASK = 3438,
- PseudoVFSLIDE1UP_VFPR16_MF2 = 3439,
- PseudoVFSLIDE1UP_VFPR16_MF2_MASK = 3440,
- PseudoVFSLIDE1UP_VFPR16_MF4 = 3441,
- PseudoVFSLIDE1UP_VFPR16_MF4_MASK = 3442,
- PseudoVFSLIDE1UP_VFPR32_M1 = 3443,
- PseudoVFSLIDE1UP_VFPR32_M1_MASK = 3444,
- PseudoVFSLIDE1UP_VFPR32_M2 = 3445,
- PseudoVFSLIDE1UP_VFPR32_M2_MASK = 3446,
- PseudoVFSLIDE1UP_VFPR32_M4 = 3447,
- PseudoVFSLIDE1UP_VFPR32_M4_MASK = 3448,
- PseudoVFSLIDE1UP_VFPR32_M8 = 3449,
- PseudoVFSLIDE1UP_VFPR32_M8_MASK = 3450,
- PseudoVFSLIDE1UP_VFPR32_MF2 = 3451,
- PseudoVFSLIDE1UP_VFPR32_MF2_MASK = 3452,
- PseudoVFSLIDE1UP_VFPR64_M1 = 3453,
- PseudoVFSLIDE1UP_VFPR64_M1_MASK = 3454,
- PseudoVFSLIDE1UP_VFPR64_M2 = 3455,
- PseudoVFSLIDE1UP_VFPR64_M2_MASK = 3456,
- PseudoVFSLIDE1UP_VFPR64_M4 = 3457,
- PseudoVFSLIDE1UP_VFPR64_M4_MASK = 3458,
- PseudoVFSLIDE1UP_VFPR64_M8 = 3459,
- PseudoVFSLIDE1UP_VFPR64_M8_MASK = 3460,
- PseudoVFSQRT_V_M1_E16 = 3461,
- PseudoVFSQRT_V_M1_E16_MASK = 3462,
- PseudoVFSQRT_V_M1_E32 = 3463,
- PseudoVFSQRT_V_M1_E32_MASK = 3464,
- PseudoVFSQRT_V_M1_E64 = 3465,
- PseudoVFSQRT_V_M1_E64_MASK = 3466,
- PseudoVFSQRT_V_M2_E16 = 3467,
- PseudoVFSQRT_V_M2_E16_MASK = 3468,
- PseudoVFSQRT_V_M2_E32 = 3469,
- PseudoVFSQRT_V_M2_E32_MASK = 3470,
- PseudoVFSQRT_V_M2_E64 = 3471,
- PseudoVFSQRT_V_M2_E64_MASK = 3472,
- PseudoVFSQRT_V_M4_E16 = 3473,
- PseudoVFSQRT_V_M4_E16_MASK = 3474,
- PseudoVFSQRT_V_M4_E32 = 3475,
- PseudoVFSQRT_V_M4_E32_MASK = 3476,
- PseudoVFSQRT_V_M4_E64 = 3477,
- PseudoVFSQRT_V_M4_E64_MASK = 3478,
- PseudoVFSQRT_V_M8_E16 = 3479,
- PseudoVFSQRT_V_M8_E16_MASK = 3480,
- PseudoVFSQRT_V_M8_E32 = 3481,
- PseudoVFSQRT_V_M8_E32_MASK = 3482,
- PseudoVFSQRT_V_M8_E64 = 3483,
- PseudoVFSQRT_V_M8_E64_MASK = 3484,
- PseudoVFSQRT_V_MF2_E16 = 3485,
- PseudoVFSQRT_V_MF2_E16_MASK = 3486,
- PseudoVFSQRT_V_MF2_E32 = 3487,
- PseudoVFSQRT_V_MF2_E32_MASK = 3488,
- PseudoVFSQRT_V_MF4_E16 = 3489,
- PseudoVFSQRT_V_MF4_E16_MASK = 3490,
- PseudoVFSUB_VFPR16_M1_E16 = 3491,
- PseudoVFSUB_VFPR16_M1_E16_MASK = 3492,
- PseudoVFSUB_VFPR16_M2_E16 = 3493,
- PseudoVFSUB_VFPR16_M2_E16_MASK = 3494,
- PseudoVFSUB_VFPR16_M4_E16 = 3495,
- PseudoVFSUB_VFPR16_M4_E16_MASK = 3496,
- PseudoVFSUB_VFPR16_M8_E16 = 3497,
- PseudoVFSUB_VFPR16_M8_E16_MASK = 3498,
- PseudoVFSUB_VFPR16_MF2_E16 = 3499,
- PseudoVFSUB_VFPR16_MF2_E16_MASK = 3500,
- PseudoVFSUB_VFPR16_MF4_E16 = 3501,
- PseudoVFSUB_VFPR16_MF4_E16_MASK = 3502,
- PseudoVFSUB_VFPR32_M1_E32 = 3503,
- PseudoVFSUB_VFPR32_M1_E32_MASK = 3504,
- PseudoVFSUB_VFPR32_M2_E32 = 3505,
- PseudoVFSUB_VFPR32_M2_E32_MASK = 3506,
- PseudoVFSUB_VFPR32_M4_E32 = 3507,
- PseudoVFSUB_VFPR32_M4_E32_MASK = 3508,
- PseudoVFSUB_VFPR32_M8_E32 = 3509,
- PseudoVFSUB_VFPR32_M8_E32_MASK = 3510,
- PseudoVFSUB_VFPR32_MF2_E32 = 3511,
- PseudoVFSUB_VFPR32_MF2_E32_MASK = 3512,
- PseudoVFSUB_VFPR64_M1_E64 = 3513,
- PseudoVFSUB_VFPR64_M1_E64_MASK = 3514,
- PseudoVFSUB_VFPR64_M2_E64 = 3515,
- PseudoVFSUB_VFPR64_M2_E64_MASK = 3516,
- PseudoVFSUB_VFPR64_M4_E64 = 3517,
- PseudoVFSUB_VFPR64_M4_E64_MASK = 3518,
- PseudoVFSUB_VFPR64_M8_E64 = 3519,
- PseudoVFSUB_VFPR64_M8_E64_MASK = 3520,
- PseudoVFSUB_VV_M1_E16 = 3521,
- PseudoVFSUB_VV_M1_E16_MASK = 3522,
- PseudoVFSUB_VV_M1_E32 = 3523,
- PseudoVFSUB_VV_M1_E32_MASK = 3524,
- PseudoVFSUB_VV_M1_E64 = 3525,
- PseudoVFSUB_VV_M1_E64_MASK = 3526,
- PseudoVFSUB_VV_M2_E16 = 3527,
- PseudoVFSUB_VV_M2_E16_MASK = 3528,
- PseudoVFSUB_VV_M2_E32 = 3529,
- PseudoVFSUB_VV_M2_E32_MASK = 3530,
- PseudoVFSUB_VV_M2_E64 = 3531,
- PseudoVFSUB_VV_M2_E64_MASK = 3532,
- PseudoVFSUB_VV_M4_E16 = 3533,
- PseudoVFSUB_VV_M4_E16_MASK = 3534,
- PseudoVFSUB_VV_M4_E32 = 3535,
- PseudoVFSUB_VV_M4_E32_MASK = 3536,
- PseudoVFSUB_VV_M4_E64 = 3537,
- PseudoVFSUB_VV_M4_E64_MASK = 3538,
- PseudoVFSUB_VV_M8_E16 = 3539,
- PseudoVFSUB_VV_M8_E16_MASK = 3540,
- PseudoVFSUB_VV_M8_E32 = 3541,
- PseudoVFSUB_VV_M8_E32_MASK = 3542,
- PseudoVFSUB_VV_M8_E64 = 3543,
- PseudoVFSUB_VV_M8_E64_MASK = 3544,
- PseudoVFSUB_VV_MF2_E16 = 3545,
- PseudoVFSUB_VV_MF2_E16_MASK = 3546,
- PseudoVFSUB_VV_MF2_E32 = 3547,
- PseudoVFSUB_VV_MF2_E32_MASK = 3548,
- PseudoVFSUB_VV_MF4_E16 = 3549,
- PseudoVFSUB_VV_MF4_E16_MASK = 3550,
- PseudoVFWADD_VFPR16_M1_E16 = 3551,
- PseudoVFWADD_VFPR16_M1_E16_MASK = 3552,
- PseudoVFWADD_VFPR16_M2_E16 = 3553,
- PseudoVFWADD_VFPR16_M2_E16_MASK = 3554,
- PseudoVFWADD_VFPR16_M4_E16 = 3555,
- PseudoVFWADD_VFPR16_M4_E16_MASK = 3556,
- PseudoVFWADD_VFPR16_MF2_E16 = 3557,
- PseudoVFWADD_VFPR16_MF2_E16_MASK = 3558,
- PseudoVFWADD_VFPR16_MF4_E16 = 3559,
- PseudoVFWADD_VFPR16_MF4_E16_MASK = 3560,
- PseudoVFWADD_VFPR32_M1_E32 = 3561,
- PseudoVFWADD_VFPR32_M1_E32_MASK = 3562,
- PseudoVFWADD_VFPR32_M2_E32 = 3563,
- PseudoVFWADD_VFPR32_M2_E32_MASK = 3564,
- PseudoVFWADD_VFPR32_M4_E32 = 3565,
- PseudoVFWADD_VFPR32_M4_E32_MASK = 3566,
- PseudoVFWADD_VFPR32_MF2_E32 = 3567,
- PseudoVFWADD_VFPR32_MF2_E32_MASK = 3568,
- PseudoVFWADD_VV_M1_E16 = 3569,
- PseudoVFWADD_VV_M1_E16_MASK = 3570,
- PseudoVFWADD_VV_M1_E32 = 3571,
- PseudoVFWADD_VV_M1_E32_MASK = 3572,
- PseudoVFWADD_VV_M2_E16 = 3573,
- PseudoVFWADD_VV_M2_E16_MASK = 3574,
- PseudoVFWADD_VV_M2_E32 = 3575,
- PseudoVFWADD_VV_M2_E32_MASK = 3576,
- PseudoVFWADD_VV_M4_E16 = 3577,
- PseudoVFWADD_VV_M4_E16_MASK = 3578,
- PseudoVFWADD_VV_M4_E32 = 3579,
- PseudoVFWADD_VV_M4_E32_MASK = 3580,
- PseudoVFWADD_VV_MF2_E16 = 3581,
- PseudoVFWADD_VV_MF2_E16_MASK = 3582,
- PseudoVFWADD_VV_MF2_E32 = 3583,
- PseudoVFWADD_VV_MF2_E32_MASK = 3584,
- PseudoVFWADD_VV_MF4_E16 = 3585,
- PseudoVFWADD_VV_MF4_E16_MASK = 3586,
- PseudoVFWADD_WFPR16_M1_E16 = 3587,
- PseudoVFWADD_WFPR16_M1_E16_MASK = 3588,
- PseudoVFWADD_WFPR16_M2_E16 = 3589,
- PseudoVFWADD_WFPR16_M2_E16_MASK = 3590,
- PseudoVFWADD_WFPR16_M4_E16 = 3591,
- PseudoVFWADD_WFPR16_M4_E16_MASK = 3592,
- PseudoVFWADD_WFPR16_MF2_E16 = 3593,
- PseudoVFWADD_WFPR16_MF2_E16_MASK = 3594,
- PseudoVFWADD_WFPR16_MF4_E16 = 3595,
- PseudoVFWADD_WFPR16_MF4_E16_MASK = 3596,
- PseudoVFWADD_WFPR32_M1_E32 = 3597,
- PseudoVFWADD_WFPR32_M1_E32_MASK = 3598,
- PseudoVFWADD_WFPR32_M2_E32 = 3599,
- PseudoVFWADD_WFPR32_M2_E32_MASK = 3600,
- PseudoVFWADD_WFPR32_M4_E32 = 3601,
- PseudoVFWADD_WFPR32_M4_E32_MASK = 3602,
- PseudoVFWADD_WFPR32_MF2_E32 = 3603,
- PseudoVFWADD_WFPR32_MF2_E32_MASK = 3604,
- PseudoVFWADD_WV_M1_E16 = 3605,
- PseudoVFWADD_WV_M1_E16_MASK = 3606,
- PseudoVFWADD_WV_M1_E16_MASK_TIED = 3607,
- PseudoVFWADD_WV_M1_E16_TIED = 3608,
- PseudoVFWADD_WV_M1_E32 = 3609,
- PseudoVFWADD_WV_M1_E32_MASK = 3610,
- PseudoVFWADD_WV_M1_E32_MASK_TIED = 3611,
- PseudoVFWADD_WV_M1_E32_TIED = 3612,
- PseudoVFWADD_WV_M2_E16 = 3613,
- PseudoVFWADD_WV_M2_E16_MASK = 3614,
- PseudoVFWADD_WV_M2_E16_MASK_TIED = 3615,
- PseudoVFWADD_WV_M2_E16_TIED = 3616,
- PseudoVFWADD_WV_M2_E32 = 3617,
- PseudoVFWADD_WV_M2_E32_MASK = 3618,
- PseudoVFWADD_WV_M2_E32_MASK_TIED = 3619,
- PseudoVFWADD_WV_M2_E32_TIED = 3620,
- PseudoVFWADD_WV_M4_E16 = 3621,
- PseudoVFWADD_WV_M4_E16_MASK = 3622,
- PseudoVFWADD_WV_M4_E16_MASK_TIED = 3623,
- PseudoVFWADD_WV_M4_E16_TIED = 3624,
- PseudoVFWADD_WV_M4_E32 = 3625,
- PseudoVFWADD_WV_M4_E32_MASK = 3626,
- PseudoVFWADD_WV_M4_E32_MASK_TIED = 3627,
- PseudoVFWADD_WV_M4_E32_TIED = 3628,
- PseudoVFWADD_WV_MF2_E16 = 3629,
- PseudoVFWADD_WV_MF2_E16_MASK = 3630,
- PseudoVFWADD_WV_MF2_E16_MASK_TIED = 3631,
- PseudoVFWADD_WV_MF2_E16_TIED = 3632,
- PseudoVFWADD_WV_MF2_E32 = 3633,
- PseudoVFWADD_WV_MF2_E32_MASK = 3634,
- PseudoVFWADD_WV_MF2_E32_MASK_TIED = 3635,
- PseudoVFWADD_WV_MF2_E32_TIED = 3636,
- PseudoVFWADD_WV_MF4_E16 = 3637,
- PseudoVFWADD_WV_MF4_E16_MASK = 3638,
- PseudoVFWADD_WV_MF4_E16_MASK_TIED = 3639,
- PseudoVFWADD_WV_MF4_E16_TIED = 3640,
- PseudoVFWCVTBF16_F_F_V_M1_E16 = 3641,
- PseudoVFWCVTBF16_F_F_V_M1_E16_MASK = 3642,
- PseudoVFWCVTBF16_F_F_V_M1_E32 = 3643,
- PseudoVFWCVTBF16_F_F_V_M1_E32_MASK = 3644,
- PseudoVFWCVTBF16_F_F_V_M2_E16 = 3645,
- PseudoVFWCVTBF16_F_F_V_M2_E16_MASK = 3646,
- PseudoVFWCVTBF16_F_F_V_M2_E32 = 3647,
- PseudoVFWCVTBF16_F_F_V_M2_E32_MASK = 3648,
- PseudoVFWCVTBF16_F_F_V_M4_E16 = 3649,
- PseudoVFWCVTBF16_F_F_V_M4_E16_MASK = 3650,
- PseudoVFWCVTBF16_F_F_V_M4_E32 = 3651,
- PseudoVFWCVTBF16_F_F_V_M4_E32_MASK = 3652,
- PseudoVFWCVTBF16_F_F_V_MF2_E16 = 3653,
- PseudoVFWCVTBF16_F_F_V_MF2_E16_MASK = 3654,
- PseudoVFWCVTBF16_F_F_V_MF2_E32 = 3655,
- PseudoVFWCVTBF16_F_F_V_MF2_E32_MASK = 3656,
- PseudoVFWCVTBF16_F_F_V_MF4_E16 = 3657,
- PseudoVFWCVTBF16_F_F_V_MF4_E16_MASK = 3658,
- PseudoVFWCVT_F_F_V_M1_E16 = 3659,
- PseudoVFWCVT_F_F_V_M1_E16_MASK = 3660,
- PseudoVFWCVT_F_F_V_M1_E32 = 3661,
- PseudoVFWCVT_F_F_V_M1_E32_MASK = 3662,
- PseudoVFWCVT_F_F_V_M2_E16 = 3663,
- PseudoVFWCVT_F_F_V_M2_E16_MASK = 3664,
- PseudoVFWCVT_F_F_V_M2_E32 = 3665,
- PseudoVFWCVT_F_F_V_M2_E32_MASK = 3666,
- PseudoVFWCVT_F_F_V_M4_E16 = 3667,
- PseudoVFWCVT_F_F_V_M4_E16_MASK = 3668,
- PseudoVFWCVT_F_F_V_M4_E32 = 3669,
- PseudoVFWCVT_F_F_V_M4_E32_MASK = 3670,
- PseudoVFWCVT_F_F_V_MF2_E16 = 3671,
- PseudoVFWCVT_F_F_V_MF2_E16_MASK = 3672,
- PseudoVFWCVT_F_F_V_MF2_E32 = 3673,
- PseudoVFWCVT_F_F_V_MF2_E32_MASK = 3674,
- PseudoVFWCVT_F_F_V_MF4_E16 = 3675,
- PseudoVFWCVT_F_F_V_MF4_E16_MASK = 3676,
- PseudoVFWCVT_F_XU_V_M1_E16 = 3677,
- PseudoVFWCVT_F_XU_V_M1_E16_MASK = 3678,
- PseudoVFWCVT_F_XU_V_M1_E32 = 3679,
- PseudoVFWCVT_F_XU_V_M1_E32_MASK = 3680,
- PseudoVFWCVT_F_XU_V_M1_E8 = 3681,
- PseudoVFWCVT_F_XU_V_M1_E8_MASK = 3682,
- PseudoVFWCVT_F_XU_V_M2_E16 = 3683,
- PseudoVFWCVT_F_XU_V_M2_E16_MASK = 3684,
- PseudoVFWCVT_F_XU_V_M2_E32 = 3685,
- PseudoVFWCVT_F_XU_V_M2_E32_MASK = 3686,
- PseudoVFWCVT_F_XU_V_M2_E8 = 3687,
- PseudoVFWCVT_F_XU_V_M2_E8_MASK = 3688,
- PseudoVFWCVT_F_XU_V_M4_E16 = 3689,
- PseudoVFWCVT_F_XU_V_M4_E16_MASK = 3690,
- PseudoVFWCVT_F_XU_V_M4_E32 = 3691,
- PseudoVFWCVT_F_XU_V_M4_E32_MASK = 3692,
- PseudoVFWCVT_F_XU_V_M4_E8 = 3693,
- PseudoVFWCVT_F_XU_V_M4_E8_MASK = 3694,
- PseudoVFWCVT_F_XU_V_MF2_E16 = 3695,
- PseudoVFWCVT_F_XU_V_MF2_E16_MASK = 3696,
- PseudoVFWCVT_F_XU_V_MF2_E32 = 3697,
- PseudoVFWCVT_F_XU_V_MF2_E32_MASK = 3698,
- PseudoVFWCVT_F_XU_V_MF2_E8 = 3699,
- PseudoVFWCVT_F_XU_V_MF2_E8_MASK = 3700,
- PseudoVFWCVT_F_XU_V_MF4_E16 = 3701,
- PseudoVFWCVT_F_XU_V_MF4_E16_MASK = 3702,
- PseudoVFWCVT_F_XU_V_MF4_E8 = 3703,
- PseudoVFWCVT_F_XU_V_MF4_E8_MASK = 3704,
- PseudoVFWCVT_F_XU_V_MF8_E8 = 3705,
- PseudoVFWCVT_F_XU_V_MF8_E8_MASK = 3706,
- PseudoVFWCVT_F_X_V_M1_E16 = 3707,
- PseudoVFWCVT_F_X_V_M1_E16_MASK = 3708,
- PseudoVFWCVT_F_X_V_M1_E32 = 3709,
- PseudoVFWCVT_F_X_V_M1_E32_MASK = 3710,
- PseudoVFWCVT_F_X_V_M1_E8 = 3711,
- PseudoVFWCVT_F_X_V_M1_E8_MASK = 3712,
- PseudoVFWCVT_F_X_V_M2_E16 = 3713,
- PseudoVFWCVT_F_X_V_M2_E16_MASK = 3714,
- PseudoVFWCVT_F_X_V_M2_E32 = 3715,
- PseudoVFWCVT_F_X_V_M2_E32_MASK = 3716,
- PseudoVFWCVT_F_X_V_M2_E8 = 3717,
- PseudoVFWCVT_F_X_V_M2_E8_MASK = 3718,
- PseudoVFWCVT_F_X_V_M4_E16 = 3719,
- PseudoVFWCVT_F_X_V_M4_E16_MASK = 3720,
- PseudoVFWCVT_F_X_V_M4_E32 = 3721,
- PseudoVFWCVT_F_X_V_M4_E32_MASK = 3722,
- PseudoVFWCVT_F_X_V_M4_E8 = 3723,
- PseudoVFWCVT_F_X_V_M4_E8_MASK = 3724,
- PseudoVFWCVT_F_X_V_MF2_E16 = 3725,
- PseudoVFWCVT_F_X_V_MF2_E16_MASK = 3726,
- PseudoVFWCVT_F_X_V_MF2_E32 = 3727,
- PseudoVFWCVT_F_X_V_MF2_E32_MASK = 3728,
- PseudoVFWCVT_F_X_V_MF2_E8 = 3729,
- PseudoVFWCVT_F_X_V_MF2_E8_MASK = 3730,
- PseudoVFWCVT_F_X_V_MF4_E16 = 3731,
- PseudoVFWCVT_F_X_V_MF4_E16_MASK = 3732,
- PseudoVFWCVT_F_X_V_MF4_E8 = 3733,
- PseudoVFWCVT_F_X_V_MF4_E8_MASK = 3734,
- PseudoVFWCVT_F_X_V_MF8_E8 = 3735,
- PseudoVFWCVT_F_X_V_MF8_E8_MASK = 3736,
- PseudoVFWCVT_RTZ_XU_F_V_M1 = 3737,
- PseudoVFWCVT_RTZ_XU_F_V_M1_MASK = 3738,
- PseudoVFWCVT_RTZ_XU_F_V_M2 = 3739,
- PseudoVFWCVT_RTZ_XU_F_V_M2_MASK = 3740,
- PseudoVFWCVT_RTZ_XU_F_V_M4 = 3741,
- PseudoVFWCVT_RTZ_XU_F_V_M4_MASK = 3742,
- PseudoVFWCVT_RTZ_XU_F_V_MF2 = 3743,
- PseudoVFWCVT_RTZ_XU_F_V_MF2_MASK = 3744,
- PseudoVFWCVT_RTZ_XU_F_V_MF4 = 3745,
- PseudoVFWCVT_RTZ_XU_F_V_MF4_MASK = 3746,
- PseudoVFWCVT_RTZ_X_F_V_M1 = 3747,
- PseudoVFWCVT_RTZ_X_F_V_M1_MASK = 3748,
- PseudoVFWCVT_RTZ_X_F_V_M2 = 3749,
- PseudoVFWCVT_RTZ_X_F_V_M2_MASK = 3750,
- PseudoVFWCVT_RTZ_X_F_V_M4 = 3751,
- PseudoVFWCVT_RTZ_X_F_V_M4_MASK = 3752,
- PseudoVFWCVT_RTZ_X_F_V_MF2 = 3753,
- PseudoVFWCVT_RTZ_X_F_V_MF2_MASK = 3754,
- PseudoVFWCVT_RTZ_X_F_V_MF4 = 3755,
- PseudoVFWCVT_RTZ_X_F_V_MF4_MASK = 3756,
- PseudoVFWCVT_XU_F_V_M1 = 3757,
- PseudoVFWCVT_XU_F_V_M1_MASK = 3758,
- PseudoVFWCVT_XU_F_V_M2 = 3759,
- PseudoVFWCVT_XU_F_V_M2_MASK = 3760,
- PseudoVFWCVT_XU_F_V_M4 = 3761,
- PseudoVFWCVT_XU_F_V_M4_MASK = 3762,
- PseudoVFWCVT_XU_F_V_MF2 = 3763,
- PseudoVFWCVT_XU_F_V_MF2_MASK = 3764,
- PseudoVFWCVT_XU_F_V_MF4 = 3765,
- PseudoVFWCVT_XU_F_V_MF4_MASK = 3766,
- PseudoVFWCVT_X_F_V_M1 = 3767,
- PseudoVFWCVT_X_F_V_M1_MASK = 3768,
- PseudoVFWCVT_X_F_V_M2 = 3769,
- PseudoVFWCVT_X_F_V_M2_MASK = 3770,
- PseudoVFWCVT_X_F_V_M4 = 3771,
- PseudoVFWCVT_X_F_V_M4_MASK = 3772,
- PseudoVFWCVT_X_F_V_MF2 = 3773,
- PseudoVFWCVT_X_F_V_MF2_MASK = 3774,
- PseudoVFWCVT_X_F_V_MF4 = 3775,
- PseudoVFWCVT_X_F_V_MF4_MASK = 3776,
- PseudoVFWMACCBF16_VFPR16_M1_E16 = 3777,
- PseudoVFWMACCBF16_VFPR16_M1_E16_MASK = 3778,
- PseudoVFWMACCBF16_VFPR16_M2_E16 = 3779,
- PseudoVFWMACCBF16_VFPR16_M2_E16_MASK = 3780,
- PseudoVFWMACCBF16_VFPR16_M4_E16 = 3781,
- PseudoVFWMACCBF16_VFPR16_M4_E16_MASK = 3782,
- PseudoVFWMACCBF16_VFPR16_MF2_E16 = 3783,
- PseudoVFWMACCBF16_VFPR16_MF2_E16_MASK = 3784,
- PseudoVFWMACCBF16_VFPR16_MF4_E16 = 3785,
- PseudoVFWMACCBF16_VFPR16_MF4_E16_MASK = 3786,
- PseudoVFWMACCBF16_VV_M1_E16 = 3787,
- PseudoVFWMACCBF16_VV_M1_E16_MASK = 3788,
- PseudoVFWMACCBF16_VV_M1_E32 = 3789,
- PseudoVFWMACCBF16_VV_M1_E32_MASK = 3790,
- PseudoVFWMACCBF16_VV_M2_E16 = 3791,
- PseudoVFWMACCBF16_VV_M2_E16_MASK = 3792,
- PseudoVFWMACCBF16_VV_M2_E32 = 3793,
- PseudoVFWMACCBF16_VV_M2_E32_MASK = 3794,
- PseudoVFWMACCBF16_VV_M4_E16 = 3795,
- PseudoVFWMACCBF16_VV_M4_E16_MASK = 3796,
- PseudoVFWMACCBF16_VV_M4_E32 = 3797,
- PseudoVFWMACCBF16_VV_M4_E32_MASK = 3798,
- PseudoVFWMACCBF16_VV_MF2_E16 = 3799,
- PseudoVFWMACCBF16_VV_MF2_E16_MASK = 3800,
- PseudoVFWMACCBF16_VV_MF2_E32 = 3801,
- PseudoVFWMACCBF16_VV_MF2_E32_MASK = 3802,
- PseudoVFWMACCBF16_VV_MF4_E16 = 3803,
- PseudoVFWMACCBF16_VV_MF4_E16_MASK = 3804,
- PseudoVFWMACC_VFPR16_M1_E16 = 3805,
- PseudoVFWMACC_VFPR16_M1_E16_MASK = 3806,
- PseudoVFWMACC_VFPR16_M2_E16 = 3807,
- PseudoVFWMACC_VFPR16_M2_E16_MASK = 3808,
- PseudoVFWMACC_VFPR16_M4_E16 = 3809,
- PseudoVFWMACC_VFPR16_M4_E16_MASK = 3810,
- PseudoVFWMACC_VFPR16_MF2_E16 = 3811,
- PseudoVFWMACC_VFPR16_MF2_E16_MASK = 3812,
- PseudoVFWMACC_VFPR16_MF4_E16 = 3813,
- PseudoVFWMACC_VFPR16_MF4_E16_MASK = 3814,
- PseudoVFWMACC_VFPR32_M1_E32 = 3815,
- PseudoVFWMACC_VFPR32_M1_E32_MASK = 3816,
- PseudoVFWMACC_VFPR32_M2_E32 = 3817,
- PseudoVFWMACC_VFPR32_M2_E32_MASK = 3818,
- PseudoVFWMACC_VFPR32_M4_E32 = 3819,
- PseudoVFWMACC_VFPR32_M4_E32_MASK = 3820,
- PseudoVFWMACC_VFPR32_MF2_E32 = 3821,
- PseudoVFWMACC_VFPR32_MF2_E32_MASK = 3822,
- PseudoVFWMACC_VV_M1_E16 = 3823,
- PseudoVFWMACC_VV_M1_E16_MASK = 3824,
- PseudoVFWMACC_VV_M1_E32 = 3825,
- PseudoVFWMACC_VV_M1_E32_MASK = 3826,
- PseudoVFWMACC_VV_M2_E16 = 3827,
- PseudoVFWMACC_VV_M2_E16_MASK = 3828,
- PseudoVFWMACC_VV_M2_E32 = 3829,
- PseudoVFWMACC_VV_M2_E32_MASK = 3830,
- PseudoVFWMACC_VV_M4_E16 = 3831,
- PseudoVFWMACC_VV_M4_E16_MASK = 3832,
- PseudoVFWMACC_VV_M4_E32 = 3833,
- PseudoVFWMACC_VV_M4_E32_MASK = 3834,
- PseudoVFWMACC_VV_MF2_E16 = 3835,
- PseudoVFWMACC_VV_MF2_E16_MASK = 3836,
- PseudoVFWMACC_VV_MF2_E32 = 3837,
- PseudoVFWMACC_VV_MF2_E32_MASK = 3838,
- PseudoVFWMACC_VV_MF4_E16 = 3839,
- PseudoVFWMACC_VV_MF4_E16_MASK = 3840,
- PseudoVFWMSAC_VFPR16_M1_E16 = 3841,
- PseudoVFWMSAC_VFPR16_M1_E16_MASK = 3842,
- PseudoVFWMSAC_VFPR16_M2_E16 = 3843,
- PseudoVFWMSAC_VFPR16_M2_E16_MASK = 3844,
- PseudoVFWMSAC_VFPR16_M4_E16 = 3845,
- PseudoVFWMSAC_VFPR16_M4_E16_MASK = 3846,
- PseudoVFWMSAC_VFPR16_MF2_E16 = 3847,
- PseudoVFWMSAC_VFPR16_MF2_E16_MASK = 3848,
- PseudoVFWMSAC_VFPR16_MF4_E16 = 3849,
- PseudoVFWMSAC_VFPR16_MF4_E16_MASK = 3850,
- PseudoVFWMSAC_VFPR32_M1_E32 = 3851,
- PseudoVFWMSAC_VFPR32_M1_E32_MASK = 3852,
- PseudoVFWMSAC_VFPR32_M2_E32 = 3853,
- PseudoVFWMSAC_VFPR32_M2_E32_MASK = 3854,
- PseudoVFWMSAC_VFPR32_M4_E32 = 3855,
- PseudoVFWMSAC_VFPR32_M4_E32_MASK = 3856,
- PseudoVFWMSAC_VFPR32_MF2_E32 = 3857,
- PseudoVFWMSAC_VFPR32_MF2_E32_MASK = 3858,
- PseudoVFWMSAC_VV_M1_E16 = 3859,
- PseudoVFWMSAC_VV_M1_E16_MASK = 3860,
- PseudoVFWMSAC_VV_M1_E32 = 3861,
- PseudoVFWMSAC_VV_M1_E32_MASK = 3862,
- PseudoVFWMSAC_VV_M2_E16 = 3863,
- PseudoVFWMSAC_VV_M2_E16_MASK = 3864,
- PseudoVFWMSAC_VV_M2_E32 = 3865,
- PseudoVFWMSAC_VV_M2_E32_MASK = 3866,
- PseudoVFWMSAC_VV_M4_E16 = 3867,
- PseudoVFWMSAC_VV_M4_E16_MASK = 3868,
- PseudoVFWMSAC_VV_M4_E32 = 3869,
- PseudoVFWMSAC_VV_M4_E32_MASK = 3870,
- PseudoVFWMSAC_VV_MF2_E16 = 3871,
- PseudoVFWMSAC_VV_MF2_E16_MASK = 3872,
- PseudoVFWMSAC_VV_MF2_E32 = 3873,
- PseudoVFWMSAC_VV_MF2_E32_MASK = 3874,
- PseudoVFWMSAC_VV_MF4_E16 = 3875,
- PseudoVFWMSAC_VV_MF4_E16_MASK = 3876,
- PseudoVFWMUL_VFPR16_M1_E16 = 3877,
- PseudoVFWMUL_VFPR16_M1_E16_MASK = 3878,
- PseudoVFWMUL_VFPR16_M2_E16 = 3879,
- PseudoVFWMUL_VFPR16_M2_E16_MASK = 3880,
- PseudoVFWMUL_VFPR16_M4_E16 = 3881,
- PseudoVFWMUL_VFPR16_M4_E16_MASK = 3882,
- PseudoVFWMUL_VFPR16_MF2_E16 = 3883,
- PseudoVFWMUL_VFPR16_MF2_E16_MASK = 3884,
- PseudoVFWMUL_VFPR16_MF4_E16 = 3885,
- PseudoVFWMUL_VFPR16_MF4_E16_MASK = 3886,
- PseudoVFWMUL_VFPR32_M1_E32 = 3887,
- PseudoVFWMUL_VFPR32_M1_E32_MASK = 3888,
- PseudoVFWMUL_VFPR32_M2_E32 = 3889,
- PseudoVFWMUL_VFPR32_M2_E32_MASK = 3890,
- PseudoVFWMUL_VFPR32_M4_E32 = 3891,
- PseudoVFWMUL_VFPR32_M4_E32_MASK = 3892,
- PseudoVFWMUL_VFPR32_MF2_E32 = 3893,
- PseudoVFWMUL_VFPR32_MF2_E32_MASK = 3894,
- PseudoVFWMUL_VV_M1_E16 = 3895,
- PseudoVFWMUL_VV_M1_E16_MASK = 3896,
- PseudoVFWMUL_VV_M1_E32 = 3897,
- PseudoVFWMUL_VV_M1_E32_MASK = 3898,
- PseudoVFWMUL_VV_M2_E16 = 3899,
- PseudoVFWMUL_VV_M2_E16_MASK = 3900,
- PseudoVFWMUL_VV_M2_E32 = 3901,
- PseudoVFWMUL_VV_M2_E32_MASK = 3902,
- PseudoVFWMUL_VV_M4_E16 = 3903,
- PseudoVFWMUL_VV_M4_E16_MASK = 3904,
- PseudoVFWMUL_VV_M4_E32 = 3905,
- PseudoVFWMUL_VV_M4_E32_MASK = 3906,
- PseudoVFWMUL_VV_MF2_E16 = 3907,
- PseudoVFWMUL_VV_MF2_E16_MASK = 3908,
- PseudoVFWMUL_VV_MF2_E32 = 3909,
- PseudoVFWMUL_VV_MF2_E32_MASK = 3910,
- PseudoVFWMUL_VV_MF4_E16 = 3911,
- PseudoVFWMUL_VV_MF4_E16_MASK = 3912,
- PseudoVFWNMACC_VFPR16_M1_E16 = 3913,
- PseudoVFWNMACC_VFPR16_M1_E16_MASK = 3914,
- PseudoVFWNMACC_VFPR16_M2_E16 = 3915,
- PseudoVFWNMACC_VFPR16_M2_E16_MASK = 3916,
- PseudoVFWNMACC_VFPR16_M4_E16 = 3917,
- PseudoVFWNMACC_VFPR16_M4_E16_MASK = 3918,
- PseudoVFWNMACC_VFPR16_MF2_E16 = 3919,
- PseudoVFWNMACC_VFPR16_MF2_E16_MASK = 3920,
- PseudoVFWNMACC_VFPR16_MF4_E16 = 3921,
- PseudoVFWNMACC_VFPR16_MF4_E16_MASK = 3922,
- PseudoVFWNMACC_VFPR32_M1_E32 = 3923,
- PseudoVFWNMACC_VFPR32_M1_E32_MASK = 3924,
- PseudoVFWNMACC_VFPR32_M2_E32 = 3925,
- PseudoVFWNMACC_VFPR32_M2_E32_MASK = 3926,
- PseudoVFWNMACC_VFPR32_M4_E32 = 3927,
- PseudoVFWNMACC_VFPR32_M4_E32_MASK = 3928,
- PseudoVFWNMACC_VFPR32_MF2_E32 = 3929,
- PseudoVFWNMACC_VFPR32_MF2_E32_MASK = 3930,
- PseudoVFWNMACC_VV_M1_E16 = 3931,
- PseudoVFWNMACC_VV_M1_E16_MASK = 3932,
- PseudoVFWNMACC_VV_M1_E32 = 3933,
- PseudoVFWNMACC_VV_M1_E32_MASK = 3934,
- PseudoVFWNMACC_VV_M2_E16 = 3935,
- PseudoVFWNMACC_VV_M2_E16_MASK = 3936,
- PseudoVFWNMACC_VV_M2_E32 = 3937,
- PseudoVFWNMACC_VV_M2_E32_MASK = 3938,
- PseudoVFWNMACC_VV_M4_E16 = 3939,
- PseudoVFWNMACC_VV_M4_E16_MASK = 3940,
- PseudoVFWNMACC_VV_M4_E32 = 3941,
- PseudoVFWNMACC_VV_M4_E32_MASK = 3942,
- PseudoVFWNMACC_VV_MF2_E16 = 3943,
- PseudoVFWNMACC_VV_MF2_E16_MASK = 3944,
- PseudoVFWNMACC_VV_MF2_E32 = 3945,
- PseudoVFWNMACC_VV_MF2_E32_MASK = 3946,
- PseudoVFWNMACC_VV_MF4_E16 = 3947,
- PseudoVFWNMACC_VV_MF4_E16_MASK = 3948,
- PseudoVFWNMSAC_VFPR16_M1_E16 = 3949,
- PseudoVFWNMSAC_VFPR16_M1_E16_MASK = 3950,
- PseudoVFWNMSAC_VFPR16_M2_E16 = 3951,
- PseudoVFWNMSAC_VFPR16_M2_E16_MASK = 3952,
- PseudoVFWNMSAC_VFPR16_M4_E16 = 3953,
- PseudoVFWNMSAC_VFPR16_M4_E16_MASK = 3954,
- PseudoVFWNMSAC_VFPR16_MF2_E16 = 3955,
- PseudoVFWNMSAC_VFPR16_MF2_E16_MASK = 3956,
- PseudoVFWNMSAC_VFPR16_MF4_E16 = 3957,
- PseudoVFWNMSAC_VFPR16_MF4_E16_MASK = 3958,
- PseudoVFWNMSAC_VFPR32_M1_E32 = 3959,
- PseudoVFWNMSAC_VFPR32_M1_E32_MASK = 3960,
- PseudoVFWNMSAC_VFPR32_M2_E32 = 3961,
- PseudoVFWNMSAC_VFPR32_M2_E32_MASK = 3962,
- PseudoVFWNMSAC_VFPR32_M4_E32 = 3963,
- PseudoVFWNMSAC_VFPR32_M4_E32_MASK = 3964,
- PseudoVFWNMSAC_VFPR32_MF2_E32 = 3965,
- PseudoVFWNMSAC_VFPR32_MF2_E32_MASK = 3966,
- PseudoVFWNMSAC_VV_M1_E16 = 3967,
- PseudoVFWNMSAC_VV_M1_E16_MASK = 3968,
- PseudoVFWNMSAC_VV_M1_E32 = 3969,
- PseudoVFWNMSAC_VV_M1_E32_MASK = 3970,
- PseudoVFWNMSAC_VV_M2_E16 = 3971,
- PseudoVFWNMSAC_VV_M2_E16_MASK = 3972,
- PseudoVFWNMSAC_VV_M2_E32 = 3973,
- PseudoVFWNMSAC_VV_M2_E32_MASK = 3974,
- PseudoVFWNMSAC_VV_M4_E16 = 3975,
- PseudoVFWNMSAC_VV_M4_E16_MASK = 3976,
- PseudoVFWNMSAC_VV_M4_E32 = 3977,
- PseudoVFWNMSAC_VV_M4_E32_MASK = 3978,
- PseudoVFWNMSAC_VV_MF2_E16 = 3979,
- PseudoVFWNMSAC_VV_MF2_E16_MASK = 3980,
- PseudoVFWNMSAC_VV_MF2_E32 = 3981,
- PseudoVFWNMSAC_VV_MF2_E32_MASK = 3982,
- PseudoVFWNMSAC_VV_MF4_E16 = 3983,
- PseudoVFWNMSAC_VV_MF4_E16_MASK = 3984,
- PseudoVFWREDOSUM_VS_M1_E16 = 3985,
- PseudoVFWREDOSUM_VS_M1_E16_MASK = 3986,
- PseudoVFWREDOSUM_VS_M1_E32 = 3987,
- PseudoVFWREDOSUM_VS_M1_E32_MASK = 3988,
- PseudoVFWREDOSUM_VS_M2_E16 = 3989,
- PseudoVFWREDOSUM_VS_M2_E16_MASK = 3990,
- PseudoVFWREDOSUM_VS_M2_E32 = 3991,
- PseudoVFWREDOSUM_VS_M2_E32_MASK = 3992,
- PseudoVFWREDOSUM_VS_M4_E16 = 3993,
- PseudoVFWREDOSUM_VS_M4_E16_MASK = 3994,
- PseudoVFWREDOSUM_VS_M4_E32 = 3995,
- PseudoVFWREDOSUM_VS_M4_E32_MASK = 3996,
- PseudoVFWREDOSUM_VS_M8_E16 = 3997,
- PseudoVFWREDOSUM_VS_M8_E16_MASK = 3998,
- PseudoVFWREDOSUM_VS_M8_E32 = 3999,
- PseudoVFWREDOSUM_VS_M8_E32_MASK = 4000,
- PseudoVFWREDOSUM_VS_MF2_E16 = 4001,
- PseudoVFWREDOSUM_VS_MF2_E16_MASK = 4002,
- PseudoVFWREDOSUM_VS_MF2_E32 = 4003,
- PseudoVFWREDOSUM_VS_MF2_E32_MASK = 4004,
- PseudoVFWREDOSUM_VS_MF4_E16 = 4005,
- PseudoVFWREDOSUM_VS_MF4_E16_MASK = 4006,
- PseudoVFWREDUSUM_VS_M1_E16 = 4007,
- PseudoVFWREDUSUM_VS_M1_E16_MASK = 4008,
- PseudoVFWREDUSUM_VS_M1_E32 = 4009,
- PseudoVFWREDUSUM_VS_M1_E32_MASK = 4010,
- PseudoVFWREDUSUM_VS_M2_E16 = 4011,
- PseudoVFWREDUSUM_VS_M2_E16_MASK = 4012,
- PseudoVFWREDUSUM_VS_M2_E32 = 4013,
- PseudoVFWREDUSUM_VS_M2_E32_MASK = 4014,
- PseudoVFWREDUSUM_VS_M4_E16 = 4015,
- PseudoVFWREDUSUM_VS_M4_E16_MASK = 4016,
- PseudoVFWREDUSUM_VS_M4_E32 = 4017,
- PseudoVFWREDUSUM_VS_M4_E32_MASK = 4018,
- PseudoVFWREDUSUM_VS_M8_E16 = 4019,
- PseudoVFWREDUSUM_VS_M8_E16_MASK = 4020,
- PseudoVFWREDUSUM_VS_M8_E32 = 4021,
- PseudoVFWREDUSUM_VS_M8_E32_MASK = 4022,
- PseudoVFWREDUSUM_VS_MF2_E16 = 4023,
- PseudoVFWREDUSUM_VS_MF2_E16_MASK = 4024,
- PseudoVFWREDUSUM_VS_MF2_E32 = 4025,
- PseudoVFWREDUSUM_VS_MF2_E32_MASK = 4026,
- PseudoVFWREDUSUM_VS_MF4_E16 = 4027,
- PseudoVFWREDUSUM_VS_MF4_E16_MASK = 4028,
- PseudoVFWSUB_VFPR16_M1_E16 = 4029,
- PseudoVFWSUB_VFPR16_M1_E16_MASK = 4030,
- PseudoVFWSUB_VFPR16_M2_E16 = 4031,
- PseudoVFWSUB_VFPR16_M2_E16_MASK = 4032,
- PseudoVFWSUB_VFPR16_M4_E16 = 4033,
- PseudoVFWSUB_VFPR16_M4_E16_MASK = 4034,
- PseudoVFWSUB_VFPR16_MF2_E16 = 4035,
- PseudoVFWSUB_VFPR16_MF2_E16_MASK = 4036,
- PseudoVFWSUB_VFPR16_MF4_E16 = 4037,
- PseudoVFWSUB_VFPR16_MF4_E16_MASK = 4038,
- PseudoVFWSUB_VFPR32_M1_E32 = 4039,
- PseudoVFWSUB_VFPR32_M1_E32_MASK = 4040,
- PseudoVFWSUB_VFPR32_M2_E32 = 4041,
- PseudoVFWSUB_VFPR32_M2_E32_MASK = 4042,
- PseudoVFWSUB_VFPR32_M4_E32 = 4043,
- PseudoVFWSUB_VFPR32_M4_E32_MASK = 4044,
- PseudoVFWSUB_VFPR32_MF2_E32 = 4045,
- PseudoVFWSUB_VFPR32_MF2_E32_MASK = 4046,
- PseudoVFWSUB_VV_M1_E16 = 4047,
- PseudoVFWSUB_VV_M1_E16_MASK = 4048,
- PseudoVFWSUB_VV_M1_E32 = 4049,
- PseudoVFWSUB_VV_M1_E32_MASK = 4050,
- PseudoVFWSUB_VV_M2_E16 = 4051,
- PseudoVFWSUB_VV_M2_E16_MASK = 4052,
- PseudoVFWSUB_VV_M2_E32 = 4053,
- PseudoVFWSUB_VV_M2_E32_MASK = 4054,
- PseudoVFWSUB_VV_M4_E16 = 4055,
- PseudoVFWSUB_VV_M4_E16_MASK = 4056,
- PseudoVFWSUB_VV_M4_E32 = 4057,
- PseudoVFWSUB_VV_M4_E32_MASK = 4058,
- PseudoVFWSUB_VV_MF2_E16 = 4059,
- PseudoVFWSUB_VV_MF2_E16_MASK = 4060,
- PseudoVFWSUB_VV_MF2_E32 = 4061,
- PseudoVFWSUB_VV_MF2_E32_MASK = 4062,
- PseudoVFWSUB_VV_MF4_E16 = 4063,
- PseudoVFWSUB_VV_MF4_E16_MASK = 4064,
- PseudoVFWSUB_WFPR16_M1_E16 = 4065,
- PseudoVFWSUB_WFPR16_M1_E16_MASK = 4066,
- PseudoVFWSUB_WFPR16_M2_E16 = 4067,
- PseudoVFWSUB_WFPR16_M2_E16_MASK = 4068,
- PseudoVFWSUB_WFPR16_M4_E16 = 4069,
- PseudoVFWSUB_WFPR16_M4_E16_MASK = 4070,
- PseudoVFWSUB_WFPR16_MF2_E16 = 4071,
- PseudoVFWSUB_WFPR16_MF2_E16_MASK = 4072,
- PseudoVFWSUB_WFPR16_MF4_E16 = 4073,
- PseudoVFWSUB_WFPR16_MF4_E16_MASK = 4074,
- PseudoVFWSUB_WFPR32_M1_E32 = 4075,
- PseudoVFWSUB_WFPR32_M1_E32_MASK = 4076,
- PseudoVFWSUB_WFPR32_M2_E32 = 4077,
- PseudoVFWSUB_WFPR32_M2_E32_MASK = 4078,
- PseudoVFWSUB_WFPR32_M4_E32 = 4079,
- PseudoVFWSUB_WFPR32_M4_E32_MASK = 4080,
- PseudoVFWSUB_WFPR32_MF2_E32 = 4081,
- PseudoVFWSUB_WFPR32_MF2_E32_MASK = 4082,
- PseudoVFWSUB_WV_M1_E16 = 4083,
- PseudoVFWSUB_WV_M1_E16_MASK = 4084,
- PseudoVFWSUB_WV_M1_E16_MASK_TIED = 4085,
- PseudoVFWSUB_WV_M1_E16_TIED = 4086,
- PseudoVFWSUB_WV_M1_E32 = 4087,
- PseudoVFWSUB_WV_M1_E32_MASK = 4088,
- PseudoVFWSUB_WV_M1_E32_MASK_TIED = 4089,
- PseudoVFWSUB_WV_M1_E32_TIED = 4090,
- PseudoVFWSUB_WV_M2_E16 = 4091,
- PseudoVFWSUB_WV_M2_E16_MASK = 4092,
- PseudoVFWSUB_WV_M2_E16_MASK_TIED = 4093,
- PseudoVFWSUB_WV_M2_E16_TIED = 4094,
- PseudoVFWSUB_WV_M2_E32 = 4095,
- PseudoVFWSUB_WV_M2_E32_MASK = 4096,
- PseudoVFWSUB_WV_M2_E32_MASK_TIED = 4097,
- PseudoVFWSUB_WV_M2_E32_TIED = 4098,
- PseudoVFWSUB_WV_M4_E16 = 4099,
- PseudoVFWSUB_WV_M4_E16_MASK = 4100,
- PseudoVFWSUB_WV_M4_E16_MASK_TIED = 4101,
- PseudoVFWSUB_WV_M4_E16_TIED = 4102,
- PseudoVFWSUB_WV_M4_E32 = 4103,
- PseudoVFWSUB_WV_M4_E32_MASK = 4104,
- PseudoVFWSUB_WV_M4_E32_MASK_TIED = 4105,
- PseudoVFWSUB_WV_M4_E32_TIED = 4106,
- PseudoVFWSUB_WV_MF2_E16 = 4107,
- PseudoVFWSUB_WV_MF2_E16_MASK = 4108,
- PseudoVFWSUB_WV_MF2_E16_MASK_TIED = 4109,
- PseudoVFWSUB_WV_MF2_E16_TIED = 4110,
- PseudoVFWSUB_WV_MF2_E32 = 4111,
- PseudoVFWSUB_WV_MF2_E32_MASK = 4112,
- PseudoVFWSUB_WV_MF2_E32_MASK_TIED = 4113,
- PseudoVFWSUB_WV_MF2_E32_TIED = 4114,
- PseudoVFWSUB_WV_MF4_E16 = 4115,
- PseudoVFWSUB_WV_MF4_E16_MASK = 4116,
- PseudoVFWSUB_WV_MF4_E16_MASK_TIED = 4117,
- PseudoVFWSUB_WV_MF4_E16_TIED = 4118,
- PseudoVGHSH_VV_M1 = 4119,
- PseudoVGHSH_VV_M2 = 4120,
- PseudoVGHSH_VV_M4 = 4121,
- PseudoVGHSH_VV_M8 = 4122,
- PseudoVGHSH_VV_MF2 = 4123,
- PseudoVGMUL_VV_M1 = 4124,
- PseudoVGMUL_VV_M2 = 4125,
- PseudoVGMUL_VV_M4 = 4126,
- PseudoVGMUL_VV_M8 = 4127,
- PseudoVGMUL_VV_MF2 = 4128,
- PseudoVID_V_M1 = 4129,
- PseudoVID_V_M1_MASK = 4130,
- PseudoVID_V_M2 = 4131,
- PseudoVID_V_M2_MASK = 4132,
- PseudoVID_V_M4 = 4133,
- PseudoVID_V_M4_MASK = 4134,
- PseudoVID_V_M8 = 4135,
- PseudoVID_V_M8_MASK = 4136,
- PseudoVID_V_MF2 = 4137,
- PseudoVID_V_MF2_MASK = 4138,
- PseudoVID_V_MF4 = 4139,
- PseudoVID_V_MF4_MASK = 4140,
- PseudoVID_V_MF8 = 4141,
- PseudoVID_V_MF8_MASK = 4142,
- PseudoVIOTA_M_M1 = 4143,
- PseudoVIOTA_M_M1_MASK = 4144,
- PseudoVIOTA_M_M2 = 4145,
- PseudoVIOTA_M_M2_MASK = 4146,
- PseudoVIOTA_M_M4 = 4147,
- PseudoVIOTA_M_M4_MASK = 4148,
- PseudoVIOTA_M_M8 = 4149,
- PseudoVIOTA_M_M8_MASK = 4150,
- PseudoVIOTA_M_MF2 = 4151,
- PseudoVIOTA_M_MF2_MASK = 4152,
- PseudoVIOTA_M_MF4 = 4153,
- PseudoVIOTA_M_MF4_MASK = 4154,
- PseudoVIOTA_M_MF8 = 4155,
- PseudoVIOTA_M_MF8_MASK = 4156,
- PseudoVLE16FF_V_M1 = 4157,
- PseudoVLE16FF_V_M1_MASK = 4158,
- PseudoVLE16FF_V_M2 = 4159,
- PseudoVLE16FF_V_M2_MASK = 4160,
- PseudoVLE16FF_V_M4 = 4161,
- PseudoVLE16FF_V_M4_MASK = 4162,
- PseudoVLE16FF_V_M8 = 4163,
- PseudoVLE16FF_V_M8_MASK = 4164,
- PseudoVLE16FF_V_MF2 = 4165,
- PseudoVLE16FF_V_MF2_MASK = 4166,
- PseudoVLE16FF_V_MF4 = 4167,
- PseudoVLE16FF_V_MF4_MASK = 4168,
- PseudoVLE16_V_M1 = 4169,
- PseudoVLE16_V_M1_MASK = 4170,
- PseudoVLE16_V_M2 = 4171,
- PseudoVLE16_V_M2_MASK = 4172,
- PseudoVLE16_V_M4 = 4173,
- PseudoVLE16_V_M4_MASK = 4174,
- PseudoVLE16_V_M8 = 4175,
- PseudoVLE16_V_M8_MASK = 4176,
- PseudoVLE16_V_MF2 = 4177,
- PseudoVLE16_V_MF2_MASK = 4178,
- PseudoVLE16_V_MF4 = 4179,
- PseudoVLE16_V_MF4_MASK = 4180,
- PseudoVLE32FF_V_M1 = 4181,
- PseudoVLE32FF_V_M1_MASK = 4182,
- PseudoVLE32FF_V_M2 = 4183,
- PseudoVLE32FF_V_M2_MASK = 4184,
- PseudoVLE32FF_V_M4 = 4185,
- PseudoVLE32FF_V_M4_MASK = 4186,
- PseudoVLE32FF_V_M8 = 4187,
- PseudoVLE32FF_V_M8_MASK = 4188,
- PseudoVLE32FF_V_MF2 = 4189,
- PseudoVLE32FF_V_MF2_MASK = 4190,
- PseudoVLE32_V_M1 = 4191,
- PseudoVLE32_V_M1_MASK = 4192,
- PseudoVLE32_V_M2 = 4193,
- PseudoVLE32_V_M2_MASK = 4194,
- PseudoVLE32_V_M4 = 4195,
- PseudoVLE32_V_M4_MASK = 4196,
- PseudoVLE32_V_M8 = 4197,
- PseudoVLE32_V_M8_MASK = 4198,
- PseudoVLE32_V_MF2 = 4199,
- PseudoVLE32_V_MF2_MASK = 4200,
- PseudoVLE64FF_V_M1 = 4201,
- PseudoVLE64FF_V_M1_MASK = 4202,
- PseudoVLE64FF_V_M2 = 4203,
- PseudoVLE64FF_V_M2_MASK = 4204,
- PseudoVLE64FF_V_M4 = 4205,
- PseudoVLE64FF_V_M4_MASK = 4206,
- PseudoVLE64FF_V_M8 = 4207,
- PseudoVLE64FF_V_M8_MASK = 4208,
- PseudoVLE64_V_M1 = 4209,
- PseudoVLE64_V_M1_MASK = 4210,
- PseudoVLE64_V_M2 = 4211,
- PseudoVLE64_V_M2_MASK = 4212,
- PseudoVLE64_V_M4 = 4213,
- PseudoVLE64_V_M4_MASK = 4214,
- PseudoVLE64_V_M8 = 4215,
- PseudoVLE64_V_M8_MASK = 4216,
- PseudoVLE8FF_V_M1 = 4217,
- PseudoVLE8FF_V_M1_MASK = 4218,
- PseudoVLE8FF_V_M2 = 4219,
- PseudoVLE8FF_V_M2_MASK = 4220,
- PseudoVLE8FF_V_M4 = 4221,
- PseudoVLE8FF_V_M4_MASK = 4222,
- PseudoVLE8FF_V_M8 = 4223,
- PseudoVLE8FF_V_M8_MASK = 4224,
- PseudoVLE8FF_V_MF2 = 4225,
- PseudoVLE8FF_V_MF2_MASK = 4226,
- PseudoVLE8FF_V_MF4 = 4227,
- PseudoVLE8FF_V_MF4_MASK = 4228,
- PseudoVLE8FF_V_MF8 = 4229,
- PseudoVLE8FF_V_MF8_MASK = 4230,
- PseudoVLE8_V_M1 = 4231,
- PseudoVLE8_V_M1_MASK = 4232,
- PseudoVLE8_V_M2 = 4233,
- PseudoVLE8_V_M2_MASK = 4234,
- PseudoVLE8_V_M4 = 4235,
- PseudoVLE8_V_M4_MASK = 4236,
- PseudoVLE8_V_M8 = 4237,
- PseudoVLE8_V_M8_MASK = 4238,
- PseudoVLE8_V_MF2 = 4239,
- PseudoVLE8_V_MF2_MASK = 4240,
- PseudoVLE8_V_MF4 = 4241,
- PseudoVLE8_V_MF4_MASK = 4242,
- PseudoVLE8_V_MF8 = 4243,
- PseudoVLE8_V_MF8_MASK = 4244,
- PseudoVLM_V_B1 = 4245,
- PseudoVLM_V_B16 = 4246,
- PseudoVLM_V_B2 = 4247,
- PseudoVLM_V_B32 = 4248,
- PseudoVLM_V_B4 = 4249,
- PseudoVLM_V_B64 = 4250,
- PseudoVLM_V_B8 = 4251,
- PseudoVLOXEI16_V_M1_M1 = 4252,
- PseudoVLOXEI16_V_M1_M1_MASK = 4253,
- PseudoVLOXEI16_V_M1_M2 = 4254,
- PseudoVLOXEI16_V_M1_M2_MASK = 4255,
- PseudoVLOXEI16_V_M1_M4 = 4256,
- PseudoVLOXEI16_V_M1_M4_MASK = 4257,
- PseudoVLOXEI16_V_M1_MF2 = 4258,
- PseudoVLOXEI16_V_M1_MF2_MASK = 4259,
- PseudoVLOXEI16_V_M2_M1 = 4260,
- PseudoVLOXEI16_V_M2_M1_MASK = 4261,
- PseudoVLOXEI16_V_M2_M2 = 4262,
- PseudoVLOXEI16_V_M2_M2_MASK = 4263,
- PseudoVLOXEI16_V_M2_M4 = 4264,
- PseudoVLOXEI16_V_M2_M4_MASK = 4265,
- PseudoVLOXEI16_V_M2_M8 = 4266,
- PseudoVLOXEI16_V_M2_M8_MASK = 4267,
- PseudoVLOXEI16_V_M4_M2 = 4268,
- PseudoVLOXEI16_V_M4_M2_MASK = 4269,
- PseudoVLOXEI16_V_M4_M4 = 4270,
- PseudoVLOXEI16_V_M4_M4_MASK = 4271,
- PseudoVLOXEI16_V_M4_M8 = 4272,
- PseudoVLOXEI16_V_M4_M8_MASK = 4273,
- PseudoVLOXEI16_V_M8_M4 = 4274,
- PseudoVLOXEI16_V_M8_M4_MASK = 4275,
- PseudoVLOXEI16_V_M8_M8 = 4276,
- PseudoVLOXEI16_V_M8_M8_MASK = 4277,
- PseudoVLOXEI16_V_MF2_M1 = 4278,
- PseudoVLOXEI16_V_MF2_M1_MASK = 4279,
- PseudoVLOXEI16_V_MF2_M2 = 4280,
- PseudoVLOXEI16_V_MF2_M2_MASK = 4281,
- PseudoVLOXEI16_V_MF2_MF2 = 4282,
- PseudoVLOXEI16_V_MF2_MF2_MASK = 4283,
- PseudoVLOXEI16_V_MF2_MF4 = 4284,
- PseudoVLOXEI16_V_MF2_MF4_MASK = 4285,
- PseudoVLOXEI16_V_MF4_M1 = 4286,
- PseudoVLOXEI16_V_MF4_M1_MASK = 4287,
- PseudoVLOXEI16_V_MF4_MF2 = 4288,
- PseudoVLOXEI16_V_MF4_MF2_MASK = 4289,
- PseudoVLOXEI16_V_MF4_MF4 = 4290,
- PseudoVLOXEI16_V_MF4_MF4_MASK = 4291,
- PseudoVLOXEI16_V_MF4_MF8 = 4292,
- PseudoVLOXEI16_V_MF4_MF8_MASK = 4293,
- PseudoVLOXEI32_V_M1_M1 = 4294,
- PseudoVLOXEI32_V_M1_M1_MASK = 4295,
- PseudoVLOXEI32_V_M1_M2 = 4296,
- PseudoVLOXEI32_V_M1_M2_MASK = 4297,
- PseudoVLOXEI32_V_M1_MF2 = 4298,
- PseudoVLOXEI32_V_M1_MF2_MASK = 4299,
- PseudoVLOXEI32_V_M1_MF4 = 4300,
- PseudoVLOXEI32_V_M1_MF4_MASK = 4301,
- PseudoVLOXEI32_V_M2_M1 = 4302,
- PseudoVLOXEI32_V_M2_M1_MASK = 4303,
- PseudoVLOXEI32_V_M2_M2 = 4304,
- PseudoVLOXEI32_V_M2_M2_MASK = 4305,
- PseudoVLOXEI32_V_M2_M4 = 4306,
- PseudoVLOXEI32_V_M2_M4_MASK = 4307,
- PseudoVLOXEI32_V_M2_MF2 = 4308,
- PseudoVLOXEI32_V_M2_MF2_MASK = 4309,
- PseudoVLOXEI32_V_M4_M1 = 4310,
- PseudoVLOXEI32_V_M4_M1_MASK = 4311,
- PseudoVLOXEI32_V_M4_M2 = 4312,
- PseudoVLOXEI32_V_M4_M2_MASK = 4313,
- PseudoVLOXEI32_V_M4_M4 = 4314,
- PseudoVLOXEI32_V_M4_M4_MASK = 4315,
- PseudoVLOXEI32_V_M4_M8 = 4316,
- PseudoVLOXEI32_V_M4_M8_MASK = 4317,
- PseudoVLOXEI32_V_M8_M2 = 4318,
- PseudoVLOXEI32_V_M8_M2_MASK = 4319,
- PseudoVLOXEI32_V_M8_M4 = 4320,
- PseudoVLOXEI32_V_M8_M4_MASK = 4321,
- PseudoVLOXEI32_V_M8_M8 = 4322,
- PseudoVLOXEI32_V_M8_M8_MASK = 4323,
- PseudoVLOXEI32_V_MF2_M1 = 4324,
- PseudoVLOXEI32_V_MF2_M1_MASK = 4325,
- PseudoVLOXEI32_V_MF2_MF2 = 4326,
- PseudoVLOXEI32_V_MF2_MF2_MASK = 4327,
- PseudoVLOXEI32_V_MF2_MF4 = 4328,
- PseudoVLOXEI32_V_MF2_MF4_MASK = 4329,
- PseudoVLOXEI32_V_MF2_MF8 = 4330,
- PseudoVLOXEI32_V_MF2_MF8_MASK = 4331,
- PseudoVLOXEI64_V_M1_M1 = 4332,
- PseudoVLOXEI64_V_M1_M1_MASK = 4333,
- PseudoVLOXEI64_V_M1_MF2 = 4334,
- PseudoVLOXEI64_V_M1_MF2_MASK = 4335,
- PseudoVLOXEI64_V_M1_MF4 = 4336,
- PseudoVLOXEI64_V_M1_MF4_MASK = 4337,
- PseudoVLOXEI64_V_M1_MF8 = 4338,
- PseudoVLOXEI64_V_M1_MF8_MASK = 4339,
- PseudoVLOXEI64_V_M2_M1 = 4340,
- PseudoVLOXEI64_V_M2_M1_MASK = 4341,
- PseudoVLOXEI64_V_M2_M2 = 4342,
- PseudoVLOXEI64_V_M2_M2_MASK = 4343,
- PseudoVLOXEI64_V_M2_MF2 = 4344,
- PseudoVLOXEI64_V_M2_MF2_MASK = 4345,
- PseudoVLOXEI64_V_M2_MF4 = 4346,
- PseudoVLOXEI64_V_M2_MF4_MASK = 4347,
- PseudoVLOXEI64_V_M4_M1 = 4348,
- PseudoVLOXEI64_V_M4_M1_MASK = 4349,
- PseudoVLOXEI64_V_M4_M2 = 4350,
- PseudoVLOXEI64_V_M4_M2_MASK = 4351,
- PseudoVLOXEI64_V_M4_M4 = 4352,
- PseudoVLOXEI64_V_M4_M4_MASK = 4353,
- PseudoVLOXEI64_V_M4_MF2 = 4354,
- PseudoVLOXEI64_V_M4_MF2_MASK = 4355,
- PseudoVLOXEI64_V_M8_M1 = 4356,
- PseudoVLOXEI64_V_M8_M1_MASK = 4357,
- PseudoVLOXEI64_V_M8_M2 = 4358,
- PseudoVLOXEI64_V_M8_M2_MASK = 4359,
- PseudoVLOXEI64_V_M8_M4 = 4360,
- PseudoVLOXEI64_V_M8_M4_MASK = 4361,
- PseudoVLOXEI64_V_M8_M8 = 4362,
- PseudoVLOXEI64_V_M8_M8_MASK = 4363,
- PseudoVLOXEI8_V_M1_M1 = 4364,
- PseudoVLOXEI8_V_M1_M1_MASK = 4365,
- PseudoVLOXEI8_V_M1_M2 = 4366,
- PseudoVLOXEI8_V_M1_M2_MASK = 4367,
- PseudoVLOXEI8_V_M1_M4 = 4368,
- PseudoVLOXEI8_V_M1_M4_MASK = 4369,
- PseudoVLOXEI8_V_M1_M8 = 4370,
- PseudoVLOXEI8_V_M1_M8_MASK = 4371,
- PseudoVLOXEI8_V_M2_M2 = 4372,
- PseudoVLOXEI8_V_M2_M2_MASK = 4373,
- PseudoVLOXEI8_V_M2_M4 = 4374,
- PseudoVLOXEI8_V_M2_M4_MASK = 4375,
- PseudoVLOXEI8_V_M2_M8 = 4376,
- PseudoVLOXEI8_V_M2_M8_MASK = 4377,
- PseudoVLOXEI8_V_M4_M4 = 4378,
- PseudoVLOXEI8_V_M4_M4_MASK = 4379,
- PseudoVLOXEI8_V_M4_M8 = 4380,
- PseudoVLOXEI8_V_M4_M8_MASK = 4381,
- PseudoVLOXEI8_V_M8_M8 = 4382,
- PseudoVLOXEI8_V_M8_M8_MASK = 4383,
- PseudoVLOXEI8_V_MF2_M1 = 4384,
- PseudoVLOXEI8_V_MF2_M1_MASK = 4385,
- PseudoVLOXEI8_V_MF2_M2 = 4386,
- PseudoVLOXEI8_V_MF2_M2_MASK = 4387,
- PseudoVLOXEI8_V_MF2_M4 = 4388,
- PseudoVLOXEI8_V_MF2_M4_MASK = 4389,
- PseudoVLOXEI8_V_MF2_MF2 = 4390,
- PseudoVLOXEI8_V_MF2_MF2_MASK = 4391,
- PseudoVLOXEI8_V_MF4_M1 = 4392,
- PseudoVLOXEI8_V_MF4_M1_MASK = 4393,
- PseudoVLOXEI8_V_MF4_M2 = 4394,
- PseudoVLOXEI8_V_MF4_M2_MASK = 4395,
- PseudoVLOXEI8_V_MF4_MF2 = 4396,
- PseudoVLOXEI8_V_MF4_MF2_MASK = 4397,
- PseudoVLOXEI8_V_MF4_MF4 = 4398,
- PseudoVLOXEI8_V_MF4_MF4_MASK = 4399,
- PseudoVLOXEI8_V_MF8_M1 = 4400,
- PseudoVLOXEI8_V_MF8_M1_MASK = 4401,
- PseudoVLOXEI8_V_MF8_MF2 = 4402,
- PseudoVLOXEI8_V_MF8_MF2_MASK = 4403,
- PseudoVLOXEI8_V_MF8_MF4 = 4404,
- PseudoVLOXEI8_V_MF8_MF4_MASK = 4405,
- PseudoVLOXEI8_V_MF8_MF8 = 4406,
- PseudoVLOXEI8_V_MF8_MF8_MASK = 4407,
- PseudoVLOXSEG2EI16_V_M1_M1 = 4408,
- PseudoVLOXSEG2EI16_V_M1_M1_MASK = 4409,
- PseudoVLOXSEG2EI16_V_M1_M2 = 4410,
- PseudoVLOXSEG2EI16_V_M1_M2_MASK = 4411,
- PseudoVLOXSEG2EI16_V_M1_M4 = 4412,
- PseudoVLOXSEG2EI16_V_M1_M4_MASK = 4413,
- PseudoVLOXSEG2EI16_V_M1_MF2 = 4414,
- PseudoVLOXSEG2EI16_V_M1_MF2_MASK = 4415,
- PseudoVLOXSEG2EI16_V_M2_M1 = 4416,
- PseudoVLOXSEG2EI16_V_M2_M1_MASK = 4417,
- PseudoVLOXSEG2EI16_V_M2_M2 = 4418,
- PseudoVLOXSEG2EI16_V_M2_M2_MASK = 4419,
- PseudoVLOXSEG2EI16_V_M2_M4 = 4420,
- PseudoVLOXSEG2EI16_V_M2_M4_MASK = 4421,
- PseudoVLOXSEG2EI16_V_M4_M2 = 4422,
- PseudoVLOXSEG2EI16_V_M4_M2_MASK = 4423,
- PseudoVLOXSEG2EI16_V_M4_M4 = 4424,
- PseudoVLOXSEG2EI16_V_M4_M4_MASK = 4425,
- PseudoVLOXSEG2EI16_V_M8_M4 = 4426,
- PseudoVLOXSEG2EI16_V_M8_M4_MASK = 4427,
- PseudoVLOXSEG2EI16_V_MF2_M1 = 4428,
- PseudoVLOXSEG2EI16_V_MF2_M1_MASK = 4429,
- PseudoVLOXSEG2EI16_V_MF2_M2 = 4430,
- PseudoVLOXSEG2EI16_V_MF2_M2_MASK = 4431,
- PseudoVLOXSEG2EI16_V_MF2_MF2 = 4432,
- PseudoVLOXSEG2EI16_V_MF2_MF2_MASK = 4433,
- PseudoVLOXSEG2EI16_V_MF2_MF4 = 4434,
- PseudoVLOXSEG2EI16_V_MF2_MF4_MASK = 4435,
- PseudoVLOXSEG2EI16_V_MF4_M1 = 4436,
- PseudoVLOXSEG2EI16_V_MF4_M1_MASK = 4437,
- PseudoVLOXSEG2EI16_V_MF4_MF2 = 4438,
- PseudoVLOXSEG2EI16_V_MF4_MF2_MASK = 4439,
- PseudoVLOXSEG2EI16_V_MF4_MF4 = 4440,
- PseudoVLOXSEG2EI16_V_MF4_MF4_MASK = 4441,
- PseudoVLOXSEG2EI16_V_MF4_MF8 = 4442,
- PseudoVLOXSEG2EI16_V_MF4_MF8_MASK = 4443,
- PseudoVLOXSEG2EI32_V_M1_M1 = 4444,
- PseudoVLOXSEG2EI32_V_M1_M1_MASK = 4445,
- PseudoVLOXSEG2EI32_V_M1_M2 = 4446,
- PseudoVLOXSEG2EI32_V_M1_M2_MASK = 4447,
- PseudoVLOXSEG2EI32_V_M1_MF2 = 4448,
- PseudoVLOXSEG2EI32_V_M1_MF2_MASK = 4449,
- PseudoVLOXSEG2EI32_V_M1_MF4 = 4450,
- PseudoVLOXSEG2EI32_V_M1_MF4_MASK = 4451,
- PseudoVLOXSEG2EI32_V_M2_M1 = 4452,
- PseudoVLOXSEG2EI32_V_M2_M1_MASK = 4453,
- PseudoVLOXSEG2EI32_V_M2_M2 = 4454,
- PseudoVLOXSEG2EI32_V_M2_M2_MASK = 4455,
- PseudoVLOXSEG2EI32_V_M2_M4 = 4456,
- PseudoVLOXSEG2EI32_V_M2_M4_MASK = 4457,
- PseudoVLOXSEG2EI32_V_M2_MF2 = 4458,
- PseudoVLOXSEG2EI32_V_M2_MF2_MASK = 4459,
- PseudoVLOXSEG2EI32_V_M4_M1 = 4460,
- PseudoVLOXSEG2EI32_V_M4_M1_MASK = 4461,
- PseudoVLOXSEG2EI32_V_M4_M2 = 4462,
- PseudoVLOXSEG2EI32_V_M4_M2_MASK = 4463,
- PseudoVLOXSEG2EI32_V_M4_M4 = 4464,
- PseudoVLOXSEG2EI32_V_M4_M4_MASK = 4465,
- PseudoVLOXSEG2EI32_V_M8_M2 = 4466,
- PseudoVLOXSEG2EI32_V_M8_M2_MASK = 4467,
- PseudoVLOXSEG2EI32_V_M8_M4 = 4468,
- PseudoVLOXSEG2EI32_V_M8_M4_MASK = 4469,
- PseudoVLOXSEG2EI32_V_MF2_M1 = 4470,
- PseudoVLOXSEG2EI32_V_MF2_M1_MASK = 4471,
- PseudoVLOXSEG2EI32_V_MF2_MF2 = 4472,
- PseudoVLOXSEG2EI32_V_MF2_MF2_MASK = 4473,
- PseudoVLOXSEG2EI32_V_MF2_MF4 = 4474,
- PseudoVLOXSEG2EI32_V_MF2_MF4_MASK = 4475,
- PseudoVLOXSEG2EI32_V_MF2_MF8 = 4476,
- PseudoVLOXSEG2EI32_V_MF2_MF8_MASK = 4477,
- PseudoVLOXSEG2EI64_V_M1_M1 = 4478,
- PseudoVLOXSEG2EI64_V_M1_M1_MASK = 4479,
- PseudoVLOXSEG2EI64_V_M1_MF2 = 4480,
- PseudoVLOXSEG2EI64_V_M1_MF2_MASK = 4481,
- PseudoVLOXSEG2EI64_V_M1_MF4 = 4482,
- PseudoVLOXSEG2EI64_V_M1_MF4_MASK = 4483,
- PseudoVLOXSEG2EI64_V_M1_MF8 = 4484,
- PseudoVLOXSEG2EI64_V_M1_MF8_MASK = 4485,
- PseudoVLOXSEG2EI64_V_M2_M1 = 4486,
- PseudoVLOXSEG2EI64_V_M2_M1_MASK = 4487,
- PseudoVLOXSEG2EI64_V_M2_M2 = 4488,
- PseudoVLOXSEG2EI64_V_M2_M2_MASK = 4489,
- PseudoVLOXSEG2EI64_V_M2_MF2 = 4490,
- PseudoVLOXSEG2EI64_V_M2_MF2_MASK = 4491,
- PseudoVLOXSEG2EI64_V_M2_MF4 = 4492,
- PseudoVLOXSEG2EI64_V_M2_MF4_MASK = 4493,
- PseudoVLOXSEG2EI64_V_M4_M1 = 4494,
- PseudoVLOXSEG2EI64_V_M4_M1_MASK = 4495,
- PseudoVLOXSEG2EI64_V_M4_M2 = 4496,
- PseudoVLOXSEG2EI64_V_M4_M2_MASK = 4497,
- PseudoVLOXSEG2EI64_V_M4_M4 = 4498,
- PseudoVLOXSEG2EI64_V_M4_M4_MASK = 4499,
- PseudoVLOXSEG2EI64_V_M4_MF2 = 4500,
- PseudoVLOXSEG2EI64_V_M4_MF2_MASK = 4501,
- PseudoVLOXSEG2EI64_V_M8_M1 = 4502,
- PseudoVLOXSEG2EI64_V_M8_M1_MASK = 4503,
- PseudoVLOXSEG2EI64_V_M8_M2 = 4504,
- PseudoVLOXSEG2EI64_V_M8_M2_MASK = 4505,
- PseudoVLOXSEG2EI64_V_M8_M4 = 4506,
- PseudoVLOXSEG2EI64_V_M8_M4_MASK = 4507,
- PseudoVLOXSEG2EI8_V_M1_M1 = 4508,
- PseudoVLOXSEG2EI8_V_M1_M1_MASK = 4509,
- PseudoVLOXSEG2EI8_V_M1_M2 = 4510,
- PseudoVLOXSEG2EI8_V_M1_M2_MASK = 4511,
- PseudoVLOXSEG2EI8_V_M1_M4 = 4512,
- PseudoVLOXSEG2EI8_V_M1_M4_MASK = 4513,
- PseudoVLOXSEG2EI8_V_M2_M2 = 4514,
- PseudoVLOXSEG2EI8_V_M2_M2_MASK = 4515,
- PseudoVLOXSEG2EI8_V_M2_M4 = 4516,
- PseudoVLOXSEG2EI8_V_M2_M4_MASK = 4517,
- PseudoVLOXSEG2EI8_V_M4_M4 = 4518,
- PseudoVLOXSEG2EI8_V_M4_M4_MASK = 4519,
- PseudoVLOXSEG2EI8_V_MF2_M1 = 4520,
- PseudoVLOXSEG2EI8_V_MF2_M1_MASK = 4521,
- PseudoVLOXSEG2EI8_V_MF2_M2 = 4522,
- PseudoVLOXSEG2EI8_V_MF2_M2_MASK = 4523,
- PseudoVLOXSEG2EI8_V_MF2_M4 = 4524,
- PseudoVLOXSEG2EI8_V_MF2_M4_MASK = 4525,
- PseudoVLOXSEG2EI8_V_MF2_MF2 = 4526,
- PseudoVLOXSEG2EI8_V_MF2_MF2_MASK = 4527,
- PseudoVLOXSEG2EI8_V_MF4_M1 = 4528,
- PseudoVLOXSEG2EI8_V_MF4_M1_MASK = 4529,
- PseudoVLOXSEG2EI8_V_MF4_M2 = 4530,
- PseudoVLOXSEG2EI8_V_MF4_M2_MASK = 4531,
- PseudoVLOXSEG2EI8_V_MF4_MF2 = 4532,
- PseudoVLOXSEG2EI8_V_MF4_MF2_MASK = 4533,
- PseudoVLOXSEG2EI8_V_MF4_MF4 = 4534,
- PseudoVLOXSEG2EI8_V_MF4_MF4_MASK = 4535,
- PseudoVLOXSEG2EI8_V_MF8_M1 = 4536,
- PseudoVLOXSEG2EI8_V_MF8_M1_MASK = 4537,
- PseudoVLOXSEG2EI8_V_MF8_MF2 = 4538,
- PseudoVLOXSEG2EI8_V_MF8_MF2_MASK = 4539,
- PseudoVLOXSEG2EI8_V_MF8_MF4 = 4540,
- PseudoVLOXSEG2EI8_V_MF8_MF4_MASK = 4541,
- PseudoVLOXSEG2EI8_V_MF8_MF8 = 4542,
- PseudoVLOXSEG2EI8_V_MF8_MF8_MASK = 4543,
- PseudoVLOXSEG3EI16_V_M1_M1 = 4544,
- PseudoVLOXSEG3EI16_V_M1_M1_MASK = 4545,
- PseudoVLOXSEG3EI16_V_M1_M2 = 4546,
- PseudoVLOXSEG3EI16_V_M1_M2_MASK = 4547,
- PseudoVLOXSEG3EI16_V_M1_MF2 = 4548,
- PseudoVLOXSEG3EI16_V_M1_MF2_MASK = 4549,
- PseudoVLOXSEG3EI16_V_M2_M1 = 4550,
- PseudoVLOXSEG3EI16_V_M2_M1_MASK = 4551,
- PseudoVLOXSEG3EI16_V_M2_M2 = 4552,
- PseudoVLOXSEG3EI16_V_M2_M2_MASK = 4553,
- PseudoVLOXSEG3EI16_V_M4_M2 = 4554,
- PseudoVLOXSEG3EI16_V_M4_M2_MASK = 4555,
- PseudoVLOXSEG3EI16_V_MF2_M1 = 4556,
- PseudoVLOXSEG3EI16_V_MF2_M1_MASK = 4557,
- PseudoVLOXSEG3EI16_V_MF2_M2 = 4558,
- PseudoVLOXSEG3EI16_V_MF2_M2_MASK = 4559,
- PseudoVLOXSEG3EI16_V_MF2_MF2 = 4560,
- PseudoVLOXSEG3EI16_V_MF2_MF2_MASK = 4561,
- PseudoVLOXSEG3EI16_V_MF2_MF4 = 4562,
- PseudoVLOXSEG3EI16_V_MF2_MF4_MASK = 4563,
- PseudoVLOXSEG3EI16_V_MF4_M1 = 4564,
- PseudoVLOXSEG3EI16_V_MF4_M1_MASK = 4565,
- PseudoVLOXSEG3EI16_V_MF4_MF2 = 4566,
- PseudoVLOXSEG3EI16_V_MF4_MF2_MASK = 4567,
- PseudoVLOXSEG3EI16_V_MF4_MF4 = 4568,
- PseudoVLOXSEG3EI16_V_MF4_MF4_MASK = 4569,
- PseudoVLOXSEG3EI16_V_MF4_MF8 = 4570,
- PseudoVLOXSEG3EI16_V_MF4_MF8_MASK = 4571,
- PseudoVLOXSEG3EI32_V_M1_M1 = 4572,
- PseudoVLOXSEG3EI32_V_M1_M1_MASK = 4573,
- PseudoVLOXSEG3EI32_V_M1_M2 = 4574,
- PseudoVLOXSEG3EI32_V_M1_M2_MASK = 4575,
- PseudoVLOXSEG3EI32_V_M1_MF2 = 4576,
- PseudoVLOXSEG3EI32_V_M1_MF2_MASK = 4577,
- PseudoVLOXSEG3EI32_V_M1_MF4 = 4578,
- PseudoVLOXSEG3EI32_V_M1_MF4_MASK = 4579,
- PseudoVLOXSEG3EI32_V_M2_M1 = 4580,
- PseudoVLOXSEG3EI32_V_M2_M1_MASK = 4581,
- PseudoVLOXSEG3EI32_V_M2_M2 = 4582,
- PseudoVLOXSEG3EI32_V_M2_M2_MASK = 4583,
- PseudoVLOXSEG3EI32_V_M2_MF2 = 4584,
- PseudoVLOXSEG3EI32_V_M2_MF2_MASK = 4585,
- PseudoVLOXSEG3EI32_V_M4_M1 = 4586,
- PseudoVLOXSEG3EI32_V_M4_M1_MASK = 4587,
- PseudoVLOXSEG3EI32_V_M4_M2 = 4588,
- PseudoVLOXSEG3EI32_V_M4_M2_MASK = 4589,
- PseudoVLOXSEG3EI32_V_M8_M2 = 4590,
- PseudoVLOXSEG3EI32_V_M8_M2_MASK = 4591,
- PseudoVLOXSEG3EI32_V_MF2_M1 = 4592,
- PseudoVLOXSEG3EI32_V_MF2_M1_MASK = 4593,
- PseudoVLOXSEG3EI32_V_MF2_MF2 = 4594,
- PseudoVLOXSEG3EI32_V_MF2_MF2_MASK = 4595,
- PseudoVLOXSEG3EI32_V_MF2_MF4 = 4596,
- PseudoVLOXSEG3EI32_V_MF2_MF4_MASK = 4597,
- PseudoVLOXSEG3EI32_V_MF2_MF8 = 4598,
- PseudoVLOXSEG3EI32_V_MF2_MF8_MASK = 4599,
- PseudoVLOXSEG3EI64_V_M1_M1 = 4600,
- PseudoVLOXSEG3EI64_V_M1_M1_MASK = 4601,
- PseudoVLOXSEG3EI64_V_M1_MF2 = 4602,
- PseudoVLOXSEG3EI64_V_M1_MF2_MASK = 4603,
- PseudoVLOXSEG3EI64_V_M1_MF4 = 4604,
- PseudoVLOXSEG3EI64_V_M1_MF4_MASK = 4605,
- PseudoVLOXSEG3EI64_V_M1_MF8 = 4606,
- PseudoVLOXSEG3EI64_V_M1_MF8_MASK = 4607,
- PseudoVLOXSEG3EI64_V_M2_M1 = 4608,
- PseudoVLOXSEG3EI64_V_M2_M1_MASK = 4609,
- PseudoVLOXSEG3EI64_V_M2_M2 = 4610,
- PseudoVLOXSEG3EI64_V_M2_M2_MASK = 4611,
- PseudoVLOXSEG3EI64_V_M2_MF2 = 4612,
- PseudoVLOXSEG3EI64_V_M2_MF2_MASK = 4613,
- PseudoVLOXSEG3EI64_V_M2_MF4 = 4614,
- PseudoVLOXSEG3EI64_V_M2_MF4_MASK = 4615,
- PseudoVLOXSEG3EI64_V_M4_M1 = 4616,
- PseudoVLOXSEG3EI64_V_M4_M1_MASK = 4617,
- PseudoVLOXSEG3EI64_V_M4_M2 = 4618,
- PseudoVLOXSEG3EI64_V_M4_M2_MASK = 4619,
- PseudoVLOXSEG3EI64_V_M4_MF2 = 4620,
- PseudoVLOXSEG3EI64_V_M4_MF2_MASK = 4621,
- PseudoVLOXSEG3EI64_V_M8_M1 = 4622,
- PseudoVLOXSEG3EI64_V_M8_M1_MASK = 4623,
- PseudoVLOXSEG3EI64_V_M8_M2 = 4624,
- PseudoVLOXSEG3EI64_V_M8_M2_MASK = 4625,
- PseudoVLOXSEG3EI8_V_M1_M1 = 4626,
- PseudoVLOXSEG3EI8_V_M1_M1_MASK = 4627,
- PseudoVLOXSEG3EI8_V_M1_M2 = 4628,
- PseudoVLOXSEG3EI8_V_M1_M2_MASK = 4629,
- PseudoVLOXSEG3EI8_V_M2_M2 = 4630,
- PseudoVLOXSEG3EI8_V_M2_M2_MASK = 4631,
- PseudoVLOXSEG3EI8_V_MF2_M1 = 4632,
- PseudoVLOXSEG3EI8_V_MF2_M1_MASK = 4633,
- PseudoVLOXSEG3EI8_V_MF2_M2 = 4634,
- PseudoVLOXSEG3EI8_V_MF2_M2_MASK = 4635,
- PseudoVLOXSEG3EI8_V_MF2_MF2 = 4636,
- PseudoVLOXSEG3EI8_V_MF2_MF2_MASK = 4637,
- PseudoVLOXSEG3EI8_V_MF4_M1 = 4638,
- PseudoVLOXSEG3EI8_V_MF4_M1_MASK = 4639,
- PseudoVLOXSEG3EI8_V_MF4_M2 = 4640,
- PseudoVLOXSEG3EI8_V_MF4_M2_MASK = 4641,
- PseudoVLOXSEG3EI8_V_MF4_MF2 = 4642,
- PseudoVLOXSEG3EI8_V_MF4_MF2_MASK = 4643,
- PseudoVLOXSEG3EI8_V_MF4_MF4 = 4644,
- PseudoVLOXSEG3EI8_V_MF4_MF4_MASK = 4645,
- PseudoVLOXSEG3EI8_V_MF8_M1 = 4646,
- PseudoVLOXSEG3EI8_V_MF8_M1_MASK = 4647,
- PseudoVLOXSEG3EI8_V_MF8_MF2 = 4648,
- PseudoVLOXSEG3EI8_V_MF8_MF2_MASK = 4649,
- PseudoVLOXSEG3EI8_V_MF8_MF4 = 4650,
- PseudoVLOXSEG3EI8_V_MF8_MF4_MASK = 4651,
- PseudoVLOXSEG3EI8_V_MF8_MF8 = 4652,
- PseudoVLOXSEG3EI8_V_MF8_MF8_MASK = 4653,
- PseudoVLOXSEG4EI16_V_M1_M1 = 4654,
- PseudoVLOXSEG4EI16_V_M1_M1_MASK = 4655,
- PseudoVLOXSEG4EI16_V_M1_M2 = 4656,
- PseudoVLOXSEG4EI16_V_M1_M2_MASK = 4657,
- PseudoVLOXSEG4EI16_V_M1_MF2 = 4658,
- PseudoVLOXSEG4EI16_V_M1_MF2_MASK = 4659,
- PseudoVLOXSEG4EI16_V_M2_M1 = 4660,
- PseudoVLOXSEG4EI16_V_M2_M1_MASK = 4661,
- PseudoVLOXSEG4EI16_V_M2_M2 = 4662,
- PseudoVLOXSEG4EI16_V_M2_M2_MASK = 4663,
- PseudoVLOXSEG4EI16_V_M4_M2 = 4664,
- PseudoVLOXSEG4EI16_V_M4_M2_MASK = 4665,
- PseudoVLOXSEG4EI16_V_MF2_M1 = 4666,
- PseudoVLOXSEG4EI16_V_MF2_M1_MASK = 4667,
- PseudoVLOXSEG4EI16_V_MF2_M2 = 4668,
- PseudoVLOXSEG4EI16_V_MF2_M2_MASK = 4669,
- PseudoVLOXSEG4EI16_V_MF2_MF2 = 4670,
- PseudoVLOXSEG4EI16_V_MF2_MF2_MASK = 4671,
- PseudoVLOXSEG4EI16_V_MF2_MF4 = 4672,
- PseudoVLOXSEG4EI16_V_MF2_MF4_MASK = 4673,
- PseudoVLOXSEG4EI16_V_MF4_M1 = 4674,
- PseudoVLOXSEG4EI16_V_MF4_M1_MASK = 4675,
- PseudoVLOXSEG4EI16_V_MF4_MF2 = 4676,
- PseudoVLOXSEG4EI16_V_MF4_MF2_MASK = 4677,
- PseudoVLOXSEG4EI16_V_MF4_MF4 = 4678,
- PseudoVLOXSEG4EI16_V_MF4_MF4_MASK = 4679,
- PseudoVLOXSEG4EI16_V_MF4_MF8 = 4680,
- PseudoVLOXSEG4EI16_V_MF4_MF8_MASK = 4681,
- PseudoVLOXSEG4EI32_V_M1_M1 = 4682,
- PseudoVLOXSEG4EI32_V_M1_M1_MASK = 4683,
- PseudoVLOXSEG4EI32_V_M1_M2 = 4684,
- PseudoVLOXSEG4EI32_V_M1_M2_MASK = 4685,
- PseudoVLOXSEG4EI32_V_M1_MF2 = 4686,
- PseudoVLOXSEG4EI32_V_M1_MF2_MASK = 4687,
- PseudoVLOXSEG4EI32_V_M1_MF4 = 4688,
- PseudoVLOXSEG4EI32_V_M1_MF4_MASK = 4689,
- PseudoVLOXSEG4EI32_V_M2_M1 = 4690,
- PseudoVLOXSEG4EI32_V_M2_M1_MASK = 4691,
- PseudoVLOXSEG4EI32_V_M2_M2 = 4692,
- PseudoVLOXSEG4EI32_V_M2_M2_MASK = 4693,
- PseudoVLOXSEG4EI32_V_M2_MF2 = 4694,
- PseudoVLOXSEG4EI32_V_M2_MF2_MASK = 4695,
- PseudoVLOXSEG4EI32_V_M4_M1 = 4696,
- PseudoVLOXSEG4EI32_V_M4_M1_MASK = 4697,
- PseudoVLOXSEG4EI32_V_M4_M2 = 4698,
- PseudoVLOXSEG4EI32_V_M4_M2_MASK = 4699,
- PseudoVLOXSEG4EI32_V_M8_M2 = 4700,
- PseudoVLOXSEG4EI32_V_M8_M2_MASK = 4701,
- PseudoVLOXSEG4EI32_V_MF2_M1 = 4702,
- PseudoVLOXSEG4EI32_V_MF2_M1_MASK = 4703,
- PseudoVLOXSEG4EI32_V_MF2_MF2 = 4704,
- PseudoVLOXSEG4EI32_V_MF2_MF2_MASK = 4705,
- PseudoVLOXSEG4EI32_V_MF2_MF4 = 4706,
- PseudoVLOXSEG4EI32_V_MF2_MF4_MASK = 4707,
- PseudoVLOXSEG4EI32_V_MF2_MF8 = 4708,
- PseudoVLOXSEG4EI32_V_MF2_MF8_MASK = 4709,
- PseudoVLOXSEG4EI64_V_M1_M1 = 4710,
- PseudoVLOXSEG4EI64_V_M1_M1_MASK = 4711,
- PseudoVLOXSEG4EI64_V_M1_MF2 = 4712,
- PseudoVLOXSEG4EI64_V_M1_MF2_MASK = 4713,
- PseudoVLOXSEG4EI64_V_M1_MF4 = 4714,
- PseudoVLOXSEG4EI64_V_M1_MF4_MASK = 4715,
- PseudoVLOXSEG4EI64_V_M1_MF8 = 4716,
- PseudoVLOXSEG4EI64_V_M1_MF8_MASK = 4717,
- PseudoVLOXSEG4EI64_V_M2_M1 = 4718,
- PseudoVLOXSEG4EI64_V_M2_M1_MASK = 4719,
- PseudoVLOXSEG4EI64_V_M2_M2 = 4720,
- PseudoVLOXSEG4EI64_V_M2_M2_MASK = 4721,
- PseudoVLOXSEG4EI64_V_M2_MF2 = 4722,
- PseudoVLOXSEG4EI64_V_M2_MF2_MASK = 4723,
- PseudoVLOXSEG4EI64_V_M2_MF4 = 4724,
- PseudoVLOXSEG4EI64_V_M2_MF4_MASK = 4725,
- PseudoVLOXSEG4EI64_V_M4_M1 = 4726,
- PseudoVLOXSEG4EI64_V_M4_M1_MASK = 4727,
- PseudoVLOXSEG4EI64_V_M4_M2 = 4728,
- PseudoVLOXSEG4EI64_V_M4_M2_MASK = 4729,
- PseudoVLOXSEG4EI64_V_M4_MF2 = 4730,
- PseudoVLOXSEG4EI64_V_M4_MF2_MASK = 4731,
- PseudoVLOXSEG4EI64_V_M8_M1 = 4732,
- PseudoVLOXSEG4EI64_V_M8_M1_MASK = 4733,
- PseudoVLOXSEG4EI64_V_M8_M2 = 4734,
- PseudoVLOXSEG4EI64_V_M8_M2_MASK = 4735,
- PseudoVLOXSEG4EI8_V_M1_M1 = 4736,
- PseudoVLOXSEG4EI8_V_M1_M1_MASK = 4737,
- PseudoVLOXSEG4EI8_V_M1_M2 = 4738,
- PseudoVLOXSEG4EI8_V_M1_M2_MASK = 4739,
- PseudoVLOXSEG4EI8_V_M2_M2 = 4740,
- PseudoVLOXSEG4EI8_V_M2_M2_MASK = 4741,
- PseudoVLOXSEG4EI8_V_MF2_M1 = 4742,
- PseudoVLOXSEG4EI8_V_MF2_M1_MASK = 4743,
- PseudoVLOXSEG4EI8_V_MF2_M2 = 4744,
- PseudoVLOXSEG4EI8_V_MF2_M2_MASK = 4745,
- PseudoVLOXSEG4EI8_V_MF2_MF2 = 4746,
- PseudoVLOXSEG4EI8_V_MF2_MF2_MASK = 4747,
- PseudoVLOXSEG4EI8_V_MF4_M1 = 4748,
- PseudoVLOXSEG4EI8_V_MF4_M1_MASK = 4749,
- PseudoVLOXSEG4EI8_V_MF4_M2 = 4750,
- PseudoVLOXSEG4EI8_V_MF4_M2_MASK = 4751,
- PseudoVLOXSEG4EI8_V_MF4_MF2 = 4752,
- PseudoVLOXSEG4EI8_V_MF4_MF2_MASK = 4753,
- PseudoVLOXSEG4EI8_V_MF4_MF4 = 4754,
- PseudoVLOXSEG4EI8_V_MF4_MF4_MASK = 4755,
- PseudoVLOXSEG4EI8_V_MF8_M1 = 4756,
- PseudoVLOXSEG4EI8_V_MF8_M1_MASK = 4757,
- PseudoVLOXSEG4EI8_V_MF8_MF2 = 4758,
- PseudoVLOXSEG4EI8_V_MF8_MF2_MASK = 4759,
- PseudoVLOXSEG4EI8_V_MF8_MF4 = 4760,
- PseudoVLOXSEG4EI8_V_MF8_MF4_MASK = 4761,
- PseudoVLOXSEG4EI8_V_MF8_MF8 = 4762,
- PseudoVLOXSEG4EI8_V_MF8_MF8_MASK = 4763,
- PseudoVLOXSEG5EI16_V_M1_M1 = 4764,
- PseudoVLOXSEG5EI16_V_M1_M1_MASK = 4765,
- PseudoVLOXSEG5EI16_V_M1_MF2 = 4766,
- PseudoVLOXSEG5EI16_V_M1_MF2_MASK = 4767,
- PseudoVLOXSEG5EI16_V_M2_M1 = 4768,
- PseudoVLOXSEG5EI16_V_M2_M1_MASK = 4769,
- PseudoVLOXSEG5EI16_V_MF2_M1 = 4770,
- PseudoVLOXSEG5EI16_V_MF2_M1_MASK = 4771,
- PseudoVLOXSEG5EI16_V_MF2_MF2 = 4772,
- PseudoVLOXSEG5EI16_V_MF2_MF2_MASK = 4773,
- PseudoVLOXSEG5EI16_V_MF2_MF4 = 4774,
- PseudoVLOXSEG5EI16_V_MF2_MF4_MASK = 4775,
- PseudoVLOXSEG5EI16_V_MF4_M1 = 4776,
- PseudoVLOXSEG5EI16_V_MF4_M1_MASK = 4777,
- PseudoVLOXSEG5EI16_V_MF4_MF2 = 4778,
- PseudoVLOXSEG5EI16_V_MF4_MF2_MASK = 4779,
- PseudoVLOXSEG5EI16_V_MF4_MF4 = 4780,
- PseudoVLOXSEG5EI16_V_MF4_MF4_MASK = 4781,
- PseudoVLOXSEG5EI16_V_MF4_MF8 = 4782,
- PseudoVLOXSEG5EI16_V_MF4_MF8_MASK = 4783,
- PseudoVLOXSEG5EI32_V_M1_M1 = 4784,
- PseudoVLOXSEG5EI32_V_M1_M1_MASK = 4785,
- PseudoVLOXSEG5EI32_V_M1_MF2 = 4786,
- PseudoVLOXSEG5EI32_V_M1_MF2_MASK = 4787,
- PseudoVLOXSEG5EI32_V_M1_MF4 = 4788,
- PseudoVLOXSEG5EI32_V_M1_MF4_MASK = 4789,
- PseudoVLOXSEG5EI32_V_M2_M1 = 4790,
- PseudoVLOXSEG5EI32_V_M2_M1_MASK = 4791,
- PseudoVLOXSEG5EI32_V_M2_MF2 = 4792,
- PseudoVLOXSEG5EI32_V_M2_MF2_MASK = 4793,
- PseudoVLOXSEG5EI32_V_M4_M1 = 4794,
- PseudoVLOXSEG5EI32_V_M4_M1_MASK = 4795,
- PseudoVLOXSEG5EI32_V_MF2_M1 = 4796,
- PseudoVLOXSEG5EI32_V_MF2_M1_MASK = 4797,
- PseudoVLOXSEG5EI32_V_MF2_MF2 = 4798,
- PseudoVLOXSEG5EI32_V_MF2_MF2_MASK = 4799,
- PseudoVLOXSEG5EI32_V_MF2_MF4 = 4800,
- PseudoVLOXSEG5EI32_V_MF2_MF4_MASK = 4801,
- PseudoVLOXSEG5EI32_V_MF2_MF8 = 4802,
- PseudoVLOXSEG5EI32_V_MF2_MF8_MASK = 4803,
- PseudoVLOXSEG5EI64_V_M1_M1 = 4804,
- PseudoVLOXSEG5EI64_V_M1_M1_MASK = 4805,
- PseudoVLOXSEG5EI64_V_M1_MF2 = 4806,
- PseudoVLOXSEG5EI64_V_M1_MF2_MASK = 4807,
- PseudoVLOXSEG5EI64_V_M1_MF4 = 4808,
- PseudoVLOXSEG5EI64_V_M1_MF4_MASK = 4809,
- PseudoVLOXSEG5EI64_V_M1_MF8 = 4810,
- PseudoVLOXSEG5EI64_V_M1_MF8_MASK = 4811,
- PseudoVLOXSEG5EI64_V_M2_M1 = 4812,
- PseudoVLOXSEG5EI64_V_M2_M1_MASK = 4813,
- PseudoVLOXSEG5EI64_V_M2_MF2 = 4814,
- PseudoVLOXSEG5EI64_V_M2_MF2_MASK = 4815,
- PseudoVLOXSEG5EI64_V_M2_MF4 = 4816,
- PseudoVLOXSEG5EI64_V_M2_MF4_MASK = 4817,
- PseudoVLOXSEG5EI64_V_M4_M1 = 4818,
- PseudoVLOXSEG5EI64_V_M4_M1_MASK = 4819,
- PseudoVLOXSEG5EI64_V_M4_MF2 = 4820,
- PseudoVLOXSEG5EI64_V_M4_MF2_MASK = 4821,
- PseudoVLOXSEG5EI64_V_M8_M1 = 4822,
- PseudoVLOXSEG5EI64_V_M8_M1_MASK = 4823,
- PseudoVLOXSEG5EI8_V_M1_M1 = 4824,
- PseudoVLOXSEG5EI8_V_M1_M1_MASK = 4825,
- PseudoVLOXSEG5EI8_V_MF2_M1 = 4826,
- PseudoVLOXSEG5EI8_V_MF2_M1_MASK = 4827,
- PseudoVLOXSEG5EI8_V_MF2_MF2 = 4828,
- PseudoVLOXSEG5EI8_V_MF2_MF2_MASK = 4829,
- PseudoVLOXSEG5EI8_V_MF4_M1 = 4830,
- PseudoVLOXSEG5EI8_V_MF4_M1_MASK = 4831,
- PseudoVLOXSEG5EI8_V_MF4_MF2 = 4832,
- PseudoVLOXSEG5EI8_V_MF4_MF2_MASK = 4833,
- PseudoVLOXSEG5EI8_V_MF4_MF4 = 4834,
- PseudoVLOXSEG5EI8_V_MF4_MF4_MASK = 4835,
- PseudoVLOXSEG5EI8_V_MF8_M1 = 4836,
- PseudoVLOXSEG5EI8_V_MF8_M1_MASK = 4837,
- PseudoVLOXSEG5EI8_V_MF8_MF2 = 4838,
- PseudoVLOXSEG5EI8_V_MF8_MF2_MASK = 4839,
- PseudoVLOXSEG5EI8_V_MF8_MF4 = 4840,
- PseudoVLOXSEG5EI8_V_MF8_MF4_MASK = 4841,
- PseudoVLOXSEG5EI8_V_MF8_MF8 = 4842,
- PseudoVLOXSEG5EI8_V_MF8_MF8_MASK = 4843,
- PseudoVLOXSEG6EI16_V_M1_M1 = 4844,
- PseudoVLOXSEG6EI16_V_M1_M1_MASK = 4845,
- PseudoVLOXSEG6EI16_V_M1_MF2 = 4846,
- PseudoVLOXSEG6EI16_V_M1_MF2_MASK = 4847,
- PseudoVLOXSEG6EI16_V_M2_M1 = 4848,
- PseudoVLOXSEG6EI16_V_M2_M1_MASK = 4849,
- PseudoVLOXSEG6EI16_V_MF2_M1 = 4850,
- PseudoVLOXSEG6EI16_V_MF2_M1_MASK = 4851,
- PseudoVLOXSEG6EI16_V_MF2_MF2 = 4852,
- PseudoVLOXSEG6EI16_V_MF2_MF2_MASK = 4853,
- PseudoVLOXSEG6EI16_V_MF2_MF4 = 4854,
- PseudoVLOXSEG6EI16_V_MF2_MF4_MASK = 4855,
- PseudoVLOXSEG6EI16_V_MF4_M1 = 4856,
- PseudoVLOXSEG6EI16_V_MF4_M1_MASK = 4857,
- PseudoVLOXSEG6EI16_V_MF4_MF2 = 4858,
- PseudoVLOXSEG6EI16_V_MF4_MF2_MASK = 4859,
- PseudoVLOXSEG6EI16_V_MF4_MF4 = 4860,
- PseudoVLOXSEG6EI16_V_MF4_MF4_MASK = 4861,
- PseudoVLOXSEG6EI16_V_MF4_MF8 = 4862,
- PseudoVLOXSEG6EI16_V_MF4_MF8_MASK = 4863,
- PseudoVLOXSEG6EI32_V_M1_M1 = 4864,
- PseudoVLOXSEG6EI32_V_M1_M1_MASK = 4865,
- PseudoVLOXSEG6EI32_V_M1_MF2 = 4866,
- PseudoVLOXSEG6EI32_V_M1_MF2_MASK = 4867,
- PseudoVLOXSEG6EI32_V_M1_MF4 = 4868,
- PseudoVLOXSEG6EI32_V_M1_MF4_MASK = 4869,
- PseudoVLOXSEG6EI32_V_M2_M1 = 4870,
- PseudoVLOXSEG6EI32_V_M2_M1_MASK = 4871,
- PseudoVLOXSEG6EI32_V_M2_MF2 = 4872,
- PseudoVLOXSEG6EI32_V_M2_MF2_MASK = 4873,
- PseudoVLOXSEG6EI32_V_M4_M1 = 4874,
- PseudoVLOXSEG6EI32_V_M4_M1_MASK = 4875,
- PseudoVLOXSEG6EI32_V_MF2_M1 = 4876,
- PseudoVLOXSEG6EI32_V_MF2_M1_MASK = 4877,
- PseudoVLOXSEG6EI32_V_MF2_MF2 = 4878,
- PseudoVLOXSEG6EI32_V_MF2_MF2_MASK = 4879,
- PseudoVLOXSEG6EI32_V_MF2_MF4 = 4880,
- PseudoVLOXSEG6EI32_V_MF2_MF4_MASK = 4881,
- PseudoVLOXSEG6EI32_V_MF2_MF8 = 4882,
- PseudoVLOXSEG6EI32_V_MF2_MF8_MASK = 4883,
- PseudoVLOXSEG6EI64_V_M1_M1 = 4884,
- PseudoVLOXSEG6EI64_V_M1_M1_MASK = 4885,
- PseudoVLOXSEG6EI64_V_M1_MF2 = 4886,
- PseudoVLOXSEG6EI64_V_M1_MF2_MASK = 4887,
- PseudoVLOXSEG6EI64_V_M1_MF4 = 4888,
- PseudoVLOXSEG6EI64_V_M1_MF4_MASK = 4889,
- PseudoVLOXSEG6EI64_V_M1_MF8 = 4890,
- PseudoVLOXSEG6EI64_V_M1_MF8_MASK = 4891,
- PseudoVLOXSEG6EI64_V_M2_M1 = 4892,
- PseudoVLOXSEG6EI64_V_M2_M1_MASK = 4893,
- PseudoVLOXSEG6EI64_V_M2_MF2 = 4894,
- PseudoVLOXSEG6EI64_V_M2_MF2_MASK = 4895,
- PseudoVLOXSEG6EI64_V_M2_MF4 = 4896,
- PseudoVLOXSEG6EI64_V_M2_MF4_MASK = 4897,
- PseudoVLOXSEG6EI64_V_M4_M1 = 4898,
- PseudoVLOXSEG6EI64_V_M4_M1_MASK = 4899,
- PseudoVLOXSEG6EI64_V_M4_MF2 = 4900,
- PseudoVLOXSEG6EI64_V_M4_MF2_MASK = 4901,
- PseudoVLOXSEG6EI64_V_M8_M1 = 4902,
- PseudoVLOXSEG6EI64_V_M8_M1_MASK = 4903,
- PseudoVLOXSEG6EI8_V_M1_M1 = 4904,
- PseudoVLOXSEG6EI8_V_M1_M1_MASK = 4905,
- PseudoVLOXSEG6EI8_V_MF2_M1 = 4906,
- PseudoVLOXSEG6EI8_V_MF2_M1_MASK = 4907,
- PseudoVLOXSEG6EI8_V_MF2_MF2 = 4908,
- PseudoVLOXSEG6EI8_V_MF2_MF2_MASK = 4909,
- PseudoVLOXSEG6EI8_V_MF4_M1 = 4910,
- PseudoVLOXSEG6EI8_V_MF4_M1_MASK = 4911,
- PseudoVLOXSEG6EI8_V_MF4_MF2 = 4912,
- PseudoVLOXSEG6EI8_V_MF4_MF2_MASK = 4913,
- PseudoVLOXSEG6EI8_V_MF4_MF4 = 4914,
- PseudoVLOXSEG6EI8_V_MF4_MF4_MASK = 4915,
- PseudoVLOXSEG6EI8_V_MF8_M1 = 4916,
- PseudoVLOXSEG6EI8_V_MF8_M1_MASK = 4917,
- PseudoVLOXSEG6EI8_V_MF8_MF2 = 4918,
- PseudoVLOXSEG6EI8_V_MF8_MF2_MASK = 4919,
- PseudoVLOXSEG6EI8_V_MF8_MF4 = 4920,
- PseudoVLOXSEG6EI8_V_MF8_MF4_MASK = 4921,
- PseudoVLOXSEG6EI8_V_MF8_MF8 = 4922,
- PseudoVLOXSEG6EI8_V_MF8_MF8_MASK = 4923,
- PseudoVLOXSEG7EI16_V_M1_M1 = 4924,
- PseudoVLOXSEG7EI16_V_M1_M1_MASK = 4925,
- PseudoVLOXSEG7EI16_V_M1_MF2 = 4926,
- PseudoVLOXSEG7EI16_V_M1_MF2_MASK = 4927,
- PseudoVLOXSEG7EI16_V_M2_M1 = 4928,
- PseudoVLOXSEG7EI16_V_M2_M1_MASK = 4929,
- PseudoVLOXSEG7EI16_V_MF2_M1 = 4930,
- PseudoVLOXSEG7EI16_V_MF2_M1_MASK = 4931,
- PseudoVLOXSEG7EI16_V_MF2_MF2 = 4932,
- PseudoVLOXSEG7EI16_V_MF2_MF2_MASK = 4933,
- PseudoVLOXSEG7EI16_V_MF2_MF4 = 4934,
- PseudoVLOXSEG7EI16_V_MF2_MF4_MASK = 4935,
- PseudoVLOXSEG7EI16_V_MF4_M1 = 4936,
- PseudoVLOXSEG7EI16_V_MF4_M1_MASK = 4937,
- PseudoVLOXSEG7EI16_V_MF4_MF2 = 4938,
- PseudoVLOXSEG7EI16_V_MF4_MF2_MASK = 4939,
- PseudoVLOXSEG7EI16_V_MF4_MF4 = 4940,
- PseudoVLOXSEG7EI16_V_MF4_MF4_MASK = 4941,
- PseudoVLOXSEG7EI16_V_MF4_MF8 = 4942,
- PseudoVLOXSEG7EI16_V_MF4_MF8_MASK = 4943,
- PseudoVLOXSEG7EI32_V_M1_M1 = 4944,
- PseudoVLOXSEG7EI32_V_M1_M1_MASK = 4945,
- PseudoVLOXSEG7EI32_V_M1_MF2 = 4946,
- PseudoVLOXSEG7EI32_V_M1_MF2_MASK = 4947,
- PseudoVLOXSEG7EI32_V_M1_MF4 = 4948,
- PseudoVLOXSEG7EI32_V_M1_MF4_MASK = 4949,
- PseudoVLOXSEG7EI32_V_M2_M1 = 4950,
- PseudoVLOXSEG7EI32_V_M2_M1_MASK = 4951,
- PseudoVLOXSEG7EI32_V_M2_MF2 = 4952,
- PseudoVLOXSEG7EI32_V_M2_MF2_MASK = 4953,
- PseudoVLOXSEG7EI32_V_M4_M1 = 4954,
- PseudoVLOXSEG7EI32_V_M4_M1_MASK = 4955,
- PseudoVLOXSEG7EI32_V_MF2_M1 = 4956,
- PseudoVLOXSEG7EI32_V_MF2_M1_MASK = 4957,
- PseudoVLOXSEG7EI32_V_MF2_MF2 = 4958,
- PseudoVLOXSEG7EI32_V_MF2_MF2_MASK = 4959,
- PseudoVLOXSEG7EI32_V_MF2_MF4 = 4960,
- PseudoVLOXSEG7EI32_V_MF2_MF4_MASK = 4961,
- PseudoVLOXSEG7EI32_V_MF2_MF8 = 4962,
- PseudoVLOXSEG7EI32_V_MF2_MF8_MASK = 4963,
- PseudoVLOXSEG7EI64_V_M1_M1 = 4964,
- PseudoVLOXSEG7EI64_V_M1_M1_MASK = 4965,
- PseudoVLOXSEG7EI64_V_M1_MF2 = 4966,
- PseudoVLOXSEG7EI64_V_M1_MF2_MASK = 4967,
- PseudoVLOXSEG7EI64_V_M1_MF4 = 4968,
- PseudoVLOXSEG7EI64_V_M1_MF4_MASK = 4969,
- PseudoVLOXSEG7EI64_V_M1_MF8 = 4970,
- PseudoVLOXSEG7EI64_V_M1_MF8_MASK = 4971,
- PseudoVLOXSEG7EI64_V_M2_M1 = 4972,
- PseudoVLOXSEG7EI64_V_M2_M1_MASK = 4973,
- PseudoVLOXSEG7EI64_V_M2_MF2 = 4974,
- PseudoVLOXSEG7EI64_V_M2_MF2_MASK = 4975,
- PseudoVLOXSEG7EI64_V_M2_MF4 = 4976,
- PseudoVLOXSEG7EI64_V_M2_MF4_MASK = 4977,
- PseudoVLOXSEG7EI64_V_M4_M1 = 4978,
- PseudoVLOXSEG7EI64_V_M4_M1_MASK = 4979,
- PseudoVLOXSEG7EI64_V_M4_MF2 = 4980,
- PseudoVLOXSEG7EI64_V_M4_MF2_MASK = 4981,
- PseudoVLOXSEG7EI64_V_M8_M1 = 4982,
- PseudoVLOXSEG7EI64_V_M8_M1_MASK = 4983,
- PseudoVLOXSEG7EI8_V_M1_M1 = 4984,
- PseudoVLOXSEG7EI8_V_M1_M1_MASK = 4985,
- PseudoVLOXSEG7EI8_V_MF2_M1 = 4986,
- PseudoVLOXSEG7EI8_V_MF2_M1_MASK = 4987,
- PseudoVLOXSEG7EI8_V_MF2_MF2 = 4988,
- PseudoVLOXSEG7EI8_V_MF2_MF2_MASK = 4989,
- PseudoVLOXSEG7EI8_V_MF4_M1 = 4990,
- PseudoVLOXSEG7EI8_V_MF4_M1_MASK = 4991,
- PseudoVLOXSEG7EI8_V_MF4_MF2 = 4992,
- PseudoVLOXSEG7EI8_V_MF4_MF2_MASK = 4993,
- PseudoVLOXSEG7EI8_V_MF4_MF4 = 4994,
- PseudoVLOXSEG7EI8_V_MF4_MF4_MASK = 4995,
- PseudoVLOXSEG7EI8_V_MF8_M1 = 4996,
- PseudoVLOXSEG7EI8_V_MF8_M1_MASK = 4997,
- PseudoVLOXSEG7EI8_V_MF8_MF2 = 4998,
- PseudoVLOXSEG7EI8_V_MF8_MF2_MASK = 4999,
- PseudoVLOXSEG7EI8_V_MF8_MF4 = 5000,
- PseudoVLOXSEG7EI8_V_MF8_MF4_MASK = 5001,
- PseudoVLOXSEG7EI8_V_MF8_MF8 = 5002,
- PseudoVLOXSEG7EI8_V_MF8_MF8_MASK = 5003,
- PseudoVLOXSEG8EI16_V_M1_M1 = 5004,
- PseudoVLOXSEG8EI16_V_M1_M1_MASK = 5005,
- PseudoVLOXSEG8EI16_V_M1_MF2 = 5006,
- PseudoVLOXSEG8EI16_V_M1_MF2_MASK = 5007,
- PseudoVLOXSEG8EI16_V_M2_M1 = 5008,
- PseudoVLOXSEG8EI16_V_M2_M1_MASK = 5009,
- PseudoVLOXSEG8EI16_V_MF2_M1 = 5010,
- PseudoVLOXSEG8EI16_V_MF2_M1_MASK = 5011,
- PseudoVLOXSEG8EI16_V_MF2_MF2 = 5012,
- PseudoVLOXSEG8EI16_V_MF2_MF2_MASK = 5013,
- PseudoVLOXSEG8EI16_V_MF2_MF4 = 5014,
- PseudoVLOXSEG8EI16_V_MF2_MF4_MASK = 5015,
- PseudoVLOXSEG8EI16_V_MF4_M1 = 5016,
- PseudoVLOXSEG8EI16_V_MF4_M1_MASK = 5017,
- PseudoVLOXSEG8EI16_V_MF4_MF2 = 5018,
- PseudoVLOXSEG8EI16_V_MF4_MF2_MASK = 5019,
- PseudoVLOXSEG8EI16_V_MF4_MF4 = 5020,
- PseudoVLOXSEG8EI16_V_MF4_MF4_MASK = 5021,
- PseudoVLOXSEG8EI16_V_MF4_MF8 = 5022,
- PseudoVLOXSEG8EI16_V_MF4_MF8_MASK = 5023,
- PseudoVLOXSEG8EI32_V_M1_M1 = 5024,
- PseudoVLOXSEG8EI32_V_M1_M1_MASK = 5025,
- PseudoVLOXSEG8EI32_V_M1_MF2 = 5026,
- PseudoVLOXSEG8EI32_V_M1_MF2_MASK = 5027,
- PseudoVLOXSEG8EI32_V_M1_MF4 = 5028,
- PseudoVLOXSEG8EI32_V_M1_MF4_MASK = 5029,
- PseudoVLOXSEG8EI32_V_M2_M1 = 5030,
- PseudoVLOXSEG8EI32_V_M2_M1_MASK = 5031,
- PseudoVLOXSEG8EI32_V_M2_MF2 = 5032,
- PseudoVLOXSEG8EI32_V_M2_MF2_MASK = 5033,
- PseudoVLOXSEG8EI32_V_M4_M1 = 5034,
- PseudoVLOXSEG8EI32_V_M4_M1_MASK = 5035,
- PseudoVLOXSEG8EI32_V_MF2_M1 = 5036,
- PseudoVLOXSEG8EI32_V_MF2_M1_MASK = 5037,
- PseudoVLOXSEG8EI32_V_MF2_MF2 = 5038,
- PseudoVLOXSEG8EI32_V_MF2_MF2_MASK = 5039,
- PseudoVLOXSEG8EI32_V_MF2_MF4 = 5040,
- PseudoVLOXSEG8EI32_V_MF2_MF4_MASK = 5041,
- PseudoVLOXSEG8EI32_V_MF2_MF8 = 5042,
- PseudoVLOXSEG8EI32_V_MF2_MF8_MASK = 5043,
- PseudoVLOXSEG8EI64_V_M1_M1 = 5044,
- PseudoVLOXSEG8EI64_V_M1_M1_MASK = 5045,
- PseudoVLOXSEG8EI64_V_M1_MF2 = 5046,
- PseudoVLOXSEG8EI64_V_M1_MF2_MASK = 5047,
- PseudoVLOXSEG8EI64_V_M1_MF4 = 5048,
- PseudoVLOXSEG8EI64_V_M1_MF4_MASK = 5049,
- PseudoVLOXSEG8EI64_V_M1_MF8 = 5050,
- PseudoVLOXSEG8EI64_V_M1_MF8_MASK = 5051,
- PseudoVLOXSEG8EI64_V_M2_M1 = 5052,
- PseudoVLOXSEG8EI64_V_M2_M1_MASK = 5053,
- PseudoVLOXSEG8EI64_V_M2_MF2 = 5054,
- PseudoVLOXSEG8EI64_V_M2_MF2_MASK = 5055,
- PseudoVLOXSEG8EI64_V_M2_MF4 = 5056,
- PseudoVLOXSEG8EI64_V_M2_MF4_MASK = 5057,
- PseudoVLOXSEG8EI64_V_M4_M1 = 5058,
- PseudoVLOXSEG8EI64_V_M4_M1_MASK = 5059,
- PseudoVLOXSEG8EI64_V_M4_MF2 = 5060,
- PseudoVLOXSEG8EI64_V_M4_MF2_MASK = 5061,
- PseudoVLOXSEG8EI64_V_M8_M1 = 5062,
- PseudoVLOXSEG8EI64_V_M8_M1_MASK = 5063,
- PseudoVLOXSEG8EI8_V_M1_M1 = 5064,
- PseudoVLOXSEG8EI8_V_M1_M1_MASK = 5065,
- PseudoVLOXSEG8EI8_V_MF2_M1 = 5066,
- PseudoVLOXSEG8EI8_V_MF2_M1_MASK = 5067,
- PseudoVLOXSEG8EI8_V_MF2_MF2 = 5068,
- PseudoVLOXSEG8EI8_V_MF2_MF2_MASK = 5069,
- PseudoVLOXSEG8EI8_V_MF4_M1 = 5070,
- PseudoVLOXSEG8EI8_V_MF4_M1_MASK = 5071,
- PseudoVLOXSEG8EI8_V_MF4_MF2 = 5072,
- PseudoVLOXSEG8EI8_V_MF4_MF2_MASK = 5073,
- PseudoVLOXSEG8EI8_V_MF4_MF4 = 5074,
- PseudoVLOXSEG8EI8_V_MF4_MF4_MASK = 5075,
- PseudoVLOXSEG8EI8_V_MF8_M1 = 5076,
- PseudoVLOXSEG8EI8_V_MF8_M1_MASK = 5077,
- PseudoVLOXSEG8EI8_V_MF8_MF2 = 5078,
- PseudoVLOXSEG8EI8_V_MF8_MF2_MASK = 5079,
- PseudoVLOXSEG8EI8_V_MF8_MF4 = 5080,
- PseudoVLOXSEG8EI8_V_MF8_MF4_MASK = 5081,
- PseudoVLOXSEG8EI8_V_MF8_MF8 = 5082,
- PseudoVLOXSEG8EI8_V_MF8_MF8_MASK = 5083,
- PseudoVLSE16_V_M1 = 5084,
- PseudoVLSE16_V_M1_MASK = 5085,
- PseudoVLSE16_V_M2 = 5086,
- PseudoVLSE16_V_M2_MASK = 5087,
- PseudoVLSE16_V_M4 = 5088,
- PseudoVLSE16_V_M4_MASK = 5089,
- PseudoVLSE16_V_M8 = 5090,
- PseudoVLSE16_V_M8_MASK = 5091,
- PseudoVLSE16_V_MF2 = 5092,
- PseudoVLSE16_V_MF2_MASK = 5093,
- PseudoVLSE16_V_MF4 = 5094,
- PseudoVLSE16_V_MF4_MASK = 5095,
- PseudoVLSE32_V_M1 = 5096,
- PseudoVLSE32_V_M1_MASK = 5097,
- PseudoVLSE32_V_M2 = 5098,
- PseudoVLSE32_V_M2_MASK = 5099,
- PseudoVLSE32_V_M4 = 5100,
- PseudoVLSE32_V_M4_MASK = 5101,
- PseudoVLSE32_V_M8 = 5102,
- PseudoVLSE32_V_M8_MASK = 5103,
- PseudoVLSE32_V_MF2 = 5104,
- PseudoVLSE32_V_MF2_MASK = 5105,
- PseudoVLSE64_V_M1 = 5106,
- PseudoVLSE64_V_M1_MASK = 5107,
- PseudoVLSE64_V_M2 = 5108,
- PseudoVLSE64_V_M2_MASK = 5109,
- PseudoVLSE64_V_M4 = 5110,
- PseudoVLSE64_V_M4_MASK = 5111,
- PseudoVLSE64_V_M8 = 5112,
- PseudoVLSE64_V_M8_MASK = 5113,
- PseudoVLSE8_V_M1 = 5114,
- PseudoVLSE8_V_M1_MASK = 5115,
- PseudoVLSE8_V_M2 = 5116,
- PseudoVLSE8_V_M2_MASK = 5117,
- PseudoVLSE8_V_M4 = 5118,
- PseudoVLSE8_V_M4_MASK = 5119,
- PseudoVLSE8_V_M8 = 5120,
- PseudoVLSE8_V_M8_MASK = 5121,
- PseudoVLSE8_V_MF2 = 5122,
- PseudoVLSE8_V_MF2_MASK = 5123,
- PseudoVLSE8_V_MF4 = 5124,
- PseudoVLSE8_V_MF4_MASK = 5125,
- PseudoVLSE8_V_MF8 = 5126,
- PseudoVLSE8_V_MF8_MASK = 5127,
- PseudoVLSEG2E16FF_V_M1 = 5128,
- PseudoVLSEG2E16FF_V_M1_MASK = 5129,
- PseudoVLSEG2E16FF_V_M2 = 5130,
- PseudoVLSEG2E16FF_V_M2_MASK = 5131,
- PseudoVLSEG2E16FF_V_M4 = 5132,
- PseudoVLSEG2E16FF_V_M4_MASK = 5133,
- PseudoVLSEG2E16FF_V_MF2 = 5134,
- PseudoVLSEG2E16FF_V_MF2_MASK = 5135,
- PseudoVLSEG2E16FF_V_MF4 = 5136,
- PseudoVLSEG2E16FF_V_MF4_MASK = 5137,
- PseudoVLSEG2E16_V_M1 = 5138,
- PseudoVLSEG2E16_V_M1_MASK = 5139,
- PseudoVLSEG2E16_V_M2 = 5140,
- PseudoVLSEG2E16_V_M2_MASK = 5141,
- PseudoVLSEG2E16_V_M4 = 5142,
- PseudoVLSEG2E16_V_M4_MASK = 5143,
- PseudoVLSEG2E16_V_MF2 = 5144,
- PseudoVLSEG2E16_V_MF2_MASK = 5145,
- PseudoVLSEG2E16_V_MF4 = 5146,
- PseudoVLSEG2E16_V_MF4_MASK = 5147,
- PseudoVLSEG2E32FF_V_M1 = 5148,
- PseudoVLSEG2E32FF_V_M1_MASK = 5149,
- PseudoVLSEG2E32FF_V_M2 = 5150,
- PseudoVLSEG2E32FF_V_M2_MASK = 5151,
- PseudoVLSEG2E32FF_V_M4 = 5152,
- PseudoVLSEG2E32FF_V_M4_MASK = 5153,
- PseudoVLSEG2E32FF_V_MF2 = 5154,
- PseudoVLSEG2E32FF_V_MF2_MASK = 5155,
- PseudoVLSEG2E32_V_M1 = 5156,
- PseudoVLSEG2E32_V_M1_MASK = 5157,
- PseudoVLSEG2E32_V_M2 = 5158,
- PseudoVLSEG2E32_V_M2_MASK = 5159,
- PseudoVLSEG2E32_V_M4 = 5160,
- PseudoVLSEG2E32_V_M4_MASK = 5161,
- PseudoVLSEG2E32_V_MF2 = 5162,
- PseudoVLSEG2E32_V_MF2_MASK = 5163,
- PseudoVLSEG2E64FF_V_M1 = 5164,
- PseudoVLSEG2E64FF_V_M1_MASK = 5165,
- PseudoVLSEG2E64FF_V_M2 = 5166,
- PseudoVLSEG2E64FF_V_M2_MASK = 5167,
- PseudoVLSEG2E64FF_V_M4 = 5168,
- PseudoVLSEG2E64FF_V_M4_MASK = 5169,
- PseudoVLSEG2E64_V_M1 = 5170,
- PseudoVLSEG2E64_V_M1_MASK = 5171,
- PseudoVLSEG2E64_V_M2 = 5172,
- PseudoVLSEG2E64_V_M2_MASK = 5173,
- PseudoVLSEG2E64_V_M4 = 5174,
- PseudoVLSEG2E64_V_M4_MASK = 5175,
- PseudoVLSEG2E8FF_V_M1 = 5176,
- PseudoVLSEG2E8FF_V_M1_MASK = 5177,
- PseudoVLSEG2E8FF_V_M2 = 5178,
- PseudoVLSEG2E8FF_V_M2_MASK = 5179,
- PseudoVLSEG2E8FF_V_M4 = 5180,
- PseudoVLSEG2E8FF_V_M4_MASK = 5181,
- PseudoVLSEG2E8FF_V_MF2 = 5182,
- PseudoVLSEG2E8FF_V_MF2_MASK = 5183,
- PseudoVLSEG2E8FF_V_MF4 = 5184,
- PseudoVLSEG2E8FF_V_MF4_MASK = 5185,
- PseudoVLSEG2E8FF_V_MF8 = 5186,
- PseudoVLSEG2E8FF_V_MF8_MASK = 5187,
- PseudoVLSEG2E8_V_M1 = 5188,
- PseudoVLSEG2E8_V_M1_MASK = 5189,
- PseudoVLSEG2E8_V_M2 = 5190,
- PseudoVLSEG2E8_V_M2_MASK = 5191,
- PseudoVLSEG2E8_V_M4 = 5192,
- PseudoVLSEG2E8_V_M4_MASK = 5193,
- PseudoVLSEG2E8_V_MF2 = 5194,
- PseudoVLSEG2E8_V_MF2_MASK = 5195,
- PseudoVLSEG2E8_V_MF4 = 5196,
- PseudoVLSEG2E8_V_MF4_MASK = 5197,
- PseudoVLSEG2E8_V_MF8 = 5198,
- PseudoVLSEG2E8_V_MF8_MASK = 5199,
- PseudoVLSEG3E16FF_V_M1 = 5200,
- PseudoVLSEG3E16FF_V_M1_MASK = 5201,
- PseudoVLSEG3E16FF_V_M2 = 5202,
- PseudoVLSEG3E16FF_V_M2_MASK = 5203,
- PseudoVLSEG3E16FF_V_MF2 = 5204,
- PseudoVLSEG3E16FF_V_MF2_MASK = 5205,
- PseudoVLSEG3E16FF_V_MF4 = 5206,
- PseudoVLSEG3E16FF_V_MF4_MASK = 5207,
- PseudoVLSEG3E16_V_M1 = 5208,
- PseudoVLSEG3E16_V_M1_MASK = 5209,
- PseudoVLSEG3E16_V_M2 = 5210,
- PseudoVLSEG3E16_V_M2_MASK = 5211,
- PseudoVLSEG3E16_V_MF2 = 5212,
- PseudoVLSEG3E16_V_MF2_MASK = 5213,
- PseudoVLSEG3E16_V_MF4 = 5214,
- PseudoVLSEG3E16_V_MF4_MASK = 5215,
- PseudoVLSEG3E32FF_V_M1 = 5216,
- PseudoVLSEG3E32FF_V_M1_MASK = 5217,
- PseudoVLSEG3E32FF_V_M2 = 5218,
- PseudoVLSEG3E32FF_V_M2_MASK = 5219,
- PseudoVLSEG3E32FF_V_MF2 = 5220,
- PseudoVLSEG3E32FF_V_MF2_MASK = 5221,
- PseudoVLSEG3E32_V_M1 = 5222,
- PseudoVLSEG3E32_V_M1_MASK = 5223,
- PseudoVLSEG3E32_V_M2 = 5224,
- PseudoVLSEG3E32_V_M2_MASK = 5225,
- PseudoVLSEG3E32_V_MF2 = 5226,
- PseudoVLSEG3E32_V_MF2_MASK = 5227,
- PseudoVLSEG3E64FF_V_M1 = 5228,
- PseudoVLSEG3E64FF_V_M1_MASK = 5229,
- PseudoVLSEG3E64FF_V_M2 = 5230,
- PseudoVLSEG3E64FF_V_M2_MASK = 5231,
- PseudoVLSEG3E64_V_M1 = 5232,
- PseudoVLSEG3E64_V_M1_MASK = 5233,
- PseudoVLSEG3E64_V_M2 = 5234,
- PseudoVLSEG3E64_V_M2_MASK = 5235,
- PseudoVLSEG3E8FF_V_M1 = 5236,
- PseudoVLSEG3E8FF_V_M1_MASK = 5237,
- PseudoVLSEG3E8FF_V_M2 = 5238,
- PseudoVLSEG3E8FF_V_M2_MASK = 5239,
- PseudoVLSEG3E8FF_V_MF2 = 5240,
- PseudoVLSEG3E8FF_V_MF2_MASK = 5241,
- PseudoVLSEG3E8FF_V_MF4 = 5242,
- PseudoVLSEG3E8FF_V_MF4_MASK = 5243,
- PseudoVLSEG3E8FF_V_MF8 = 5244,
- PseudoVLSEG3E8FF_V_MF8_MASK = 5245,
- PseudoVLSEG3E8_V_M1 = 5246,
- PseudoVLSEG3E8_V_M1_MASK = 5247,
- PseudoVLSEG3E8_V_M2 = 5248,
- PseudoVLSEG3E8_V_M2_MASK = 5249,
- PseudoVLSEG3E8_V_MF2 = 5250,
- PseudoVLSEG3E8_V_MF2_MASK = 5251,
- PseudoVLSEG3E8_V_MF4 = 5252,
- PseudoVLSEG3E8_V_MF4_MASK = 5253,
- PseudoVLSEG3E8_V_MF8 = 5254,
- PseudoVLSEG3E8_V_MF8_MASK = 5255,
- PseudoVLSEG4E16FF_V_M1 = 5256,
- PseudoVLSEG4E16FF_V_M1_MASK = 5257,
- PseudoVLSEG4E16FF_V_M2 = 5258,
- PseudoVLSEG4E16FF_V_M2_MASK = 5259,
- PseudoVLSEG4E16FF_V_MF2 = 5260,
- PseudoVLSEG4E16FF_V_MF2_MASK = 5261,
- PseudoVLSEG4E16FF_V_MF4 = 5262,
- PseudoVLSEG4E16FF_V_MF4_MASK = 5263,
- PseudoVLSEG4E16_V_M1 = 5264,
- PseudoVLSEG4E16_V_M1_MASK = 5265,
- PseudoVLSEG4E16_V_M2 = 5266,
- PseudoVLSEG4E16_V_M2_MASK = 5267,
- PseudoVLSEG4E16_V_MF2 = 5268,
- PseudoVLSEG4E16_V_MF2_MASK = 5269,
- PseudoVLSEG4E16_V_MF4 = 5270,
- PseudoVLSEG4E16_V_MF4_MASK = 5271,
- PseudoVLSEG4E32FF_V_M1 = 5272,
- PseudoVLSEG4E32FF_V_M1_MASK = 5273,
- PseudoVLSEG4E32FF_V_M2 = 5274,
- PseudoVLSEG4E32FF_V_M2_MASK = 5275,
- PseudoVLSEG4E32FF_V_MF2 = 5276,
- PseudoVLSEG4E32FF_V_MF2_MASK = 5277,
- PseudoVLSEG4E32_V_M1 = 5278,
- PseudoVLSEG4E32_V_M1_MASK = 5279,
- PseudoVLSEG4E32_V_M2 = 5280,
- PseudoVLSEG4E32_V_M2_MASK = 5281,
- PseudoVLSEG4E32_V_MF2 = 5282,
- PseudoVLSEG4E32_V_MF2_MASK = 5283,
- PseudoVLSEG4E64FF_V_M1 = 5284,
- PseudoVLSEG4E64FF_V_M1_MASK = 5285,
- PseudoVLSEG4E64FF_V_M2 = 5286,
- PseudoVLSEG4E64FF_V_M2_MASK = 5287,
- PseudoVLSEG4E64_V_M1 = 5288,
- PseudoVLSEG4E64_V_M1_MASK = 5289,
- PseudoVLSEG4E64_V_M2 = 5290,
- PseudoVLSEG4E64_V_M2_MASK = 5291,
- PseudoVLSEG4E8FF_V_M1 = 5292,
- PseudoVLSEG4E8FF_V_M1_MASK = 5293,
- PseudoVLSEG4E8FF_V_M2 = 5294,
- PseudoVLSEG4E8FF_V_M2_MASK = 5295,
- PseudoVLSEG4E8FF_V_MF2 = 5296,
- PseudoVLSEG4E8FF_V_MF2_MASK = 5297,
- PseudoVLSEG4E8FF_V_MF4 = 5298,
- PseudoVLSEG4E8FF_V_MF4_MASK = 5299,
- PseudoVLSEG4E8FF_V_MF8 = 5300,
- PseudoVLSEG4E8FF_V_MF8_MASK = 5301,
- PseudoVLSEG4E8_V_M1 = 5302,
- PseudoVLSEG4E8_V_M1_MASK = 5303,
- PseudoVLSEG4E8_V_M2 = 5304,
- PseudoVLSEG4E8_V_M2_MASK = 5305,
- PseudoVLSEG4E8_V_MF2 = 5306,
- PseudoVLSEG4E8_V_MF2_MASK = 5307,
- PseudoVLSEG4E8_V_MF4 = 5308,
- PseudoVLSEG4E8_V_MF4_MASK = 5309,
- PseudoVLSEG4E8_V_MF8 = 5310,
- PseudoVLSEG4E8_V_MF8_MASK = 5311,
- PseudoVLSEG5E16FF_V_M1 = 5312,
- PseudoVLSEG5E16FF_V_M1_MASK = 5313,
- PseudoVLSEG5E16FF_V_MF2 = 5314,
- PseudoVLSEG5E16FF_V_MF2_MASK = 5315,
- PseudoVLSEG5E16FF_V_MF4 = 5316,
- PseudoVLSEG5E16FF_V_MF4_MASK = 5317,
- PseudoVLSEG5E16_V_M1 = 5318,
- PseudoVLSEG5E16_V_M1_MASK = 5319,
- PseudoVLSEG5E16_V_MF2 = 5320,
- PseudoVLSEG5E16_V_MF2_MASK = 5321,
- PseudoVLSEG5E16_V_MF4 = 5322,
- PseudoVLSEG5E16_V_MF4_MASK = 5323,
- PseudoVLSEG5E32FF_V_M1 = 5324,
- PseudoVLSEG5E32FF_V_M1_MASK = 5325,
- PseudoVLSEG5E32FF_V_MF2 = 5326,
- PseudoVLSEG5E32FF_V_MF2_MASK = 5327,
- PseudoVLSEG5E32_V_M1 = 5328,
- PseudoVLSEG5E32_V_M1_MASK = 5329,
- PseudoVLSEG5E32_V_MF2 = 5330,
- PseudoVLSEG5E32_V_MF2_MASK = 5331,
- PseudoVLSEG5E64FF_V_M1 = 5332,
- PseudoVLSEG5E64FF_V_M1_MASK = 5333,
- PseudoVLSEG5E64_V_M1 = 5334,
- PseudoVLSEG5E64_V_M1_MASK = 5335,
- PseudoVLSEG5E8FF_V_M1 = 5336,
- PseudoVLSEG5E8FF_V_M1_MASK = 5337,
- PseudoVLSEG5E8FF_V_MF2 = 5338,
- PseudoVLSEG5E8FF_V_MF2_MASK = 5339,
- PseudoVLSEG5E8FF_V_MF4 = 5340,
- PseudoVLSEG5E8FF_V_MF4_MASK = 5341,
- PseudoVLSEG5E8FF_V_MF8 = 5342,
- PseudoVLSEG5E8FF_V_MF8_MASK = 5343,
- PseudoVLSEG5E8_V_M1 = 5344,
- PseudoVLSEG5E8_V_M1_MASK = 5345,
- PseudoVLSEG5E8_V_MF2 = 5346,
- PseudoVLSEG5E8_V_MF2_MASK = 5347,
- PseudoVLSEG5E8_V_MF4 = 5348,
- PseudoVLSEG5E8_V_MF4_MASK = 5349,
- PseudoVLSEG5E8_V_MF8 = 5350,
- PseudoVLSEG5E8_V_MF8_MASK = 5351,
- PseudoVLSEG6E16FF_V_M1 = 5352,
- PseudoVLSEG6E16FF_V_M1_MASK = 5353,
- PseudoVLSEG6E16FF_V_MF2 = 5354,
- PseudoVLSEG6E16FF_V_MF2_MASK = 5355,
- PseudoVLSEG6E16FF_V_MF4 = 5356,
- PseudoVLSEG6E16FF_V_MF4_MASK = 5357,
- PseudoVLSEG6E16_V_M1 = 5358,
- PseudoVLSEG6E16_V_M1_MASK = 5359,
- PseudoVLSEG6E16_V_MF2 = 5360,
- PseudoVLSEG6E16_V_MF2_MASK = 5361,
- PseudoVLSEG6E16_V_MF4 = 5362,
- PseudoVLSEG6E16_V_MF4_MASK = 5363,
- PseudoVLSEG6E32FF_V_M1 = 5364,
- PseudoVLSEG6E32FF_V_M1_MASK = 5365,
- PseudoVLSEG6E32FF_V_MF2 = 5366,
- PseudoVLSEG6E32FF_V_MF2_MASK = 5367,
- PseudoVLSEG6E32_V_M1 = 5368,
- PseudoVLSEG6E32_V_M1_MASK = 5369,
- PseudoVLSEG6E32_V_MF2 = 5370,
- PseudoVLSEG6E32_V_MF2_MASK = 5371,
- PseudoVLSEG6E64FF_V_M1 = 5372,
- PseudoVLSEG6E64FF_V_M1_MASK = 5373,
- PseudoVLSEG6E64_V_M1 = 5374,
- PseudoVLSEG6E64_V_M1_MASK = 5375,
- PseudoVLSEG6E8FF_V_M1 = 5376,
- PseudoVLSEG6E8FF_V_M1_MASK = 5377,
- PseudoVLSEG6E8FF_V_MF2 = 5378,
- PseudoVLSEG6E8FF_V_MF2_MASK = 5379,
- PseudoVLSEG6E8FF_V_MF4 = 5380,
- PseudoVLSEG6E8FF_V_MF4_MASK = 5381,
- PseudoVLSEG6E8FF_V_MF8 = 5382,
- PseudoVLSEG6E8FF_V_MF8_MASK = 5383,
- PseudoVLSEG6E8_V_M1 = 5384,
- PseudoVLSEG6E8_V_M1_MASK = 5385,
- PseudoVLSEG6E8_V_MF2 = 5386,
- PseudoVLSEG6E8_V_MF2_MASK = 5387,
- PseudoVLSEG6E8_V_MF4 = 5388,
- PseudoVLSEG6E8_V_MF4_MASK = 5389,
- PseudoVLSEG6E8_V_MF8 = 5390,
- PseudoVLSEG6E8_V_MF8_MASK = 5391,
- PseudoVLSEG7E16FF_V_M1 = 5392,
- PseudoVLSEG7E16FF_V_M1_MASK = 5393,
- PseudoVLSEG7E16FF_V_MF2 = 5394,
- PseudoVLSEG7E16FF_V_MF2_MASK = 5395,
- PseudoVLSEG7E16FF_V_MF4 = 5396,
- PseudoVLSEG7E16FF_V_MF4_MASK = 5397,
- PseudoVLSEG7E16_V_M1 = 5398,
- PseudoVLSEG7E16_V_M1_MASK = 5399,
- PseudoVLSEG7E16_V_MF2 = 5400,
- PseudoVLSEG7E16_V_MF2_MASK = 5401,
- PseudoVLSEG7E16_V_MF4 = 5402,
- PseudoVLSEG7E16_V_MF4_MASK = 5403,
- PseudoVLSEG7E32FF_V_M1 = 5404,
- PseudoVLSEG7E32FF_V_M1_MASK = 5405,
- PseudoVLSEG7E32FF_V_MF2 = 5406,
- PseudoVLSEG7E32FF_V_MF2_MASK = 5407,
- PseudoVLSEG7E32_V_M1 = 5408,
- PseudoVLSEG7E32_V_M1_MASK = 5409,
- PseudoVLSEG7E32_V_MF2 = 5410,
- PseudoVLSEG7E32_V_MF2_MASK = 5411,
- PseudoVLSEG7E64FF_V_M1 = 5412,
- PseudoVLSEG7E64FF_V_M1_MASK = 5413,
- PseudoVLSEG7E64_V_M1 = 5414,
- PseudoVLSEG7E64_V_M1_MASK = 5415,
- PseudoVLSEG7E8FF_V_M1 = 5416,
- PseudoVLSEG7E8FF_V_M1_MASK = 5417,
- PseudoVLSEG7E8FF_V_MF2 = 5418,
- PseudoVLSEG7E8FF_V_MF2_MASK = 5419,
- PseudoVLSEG7E8FF_V_MF4 = 5420,
- PseudoVLSEG7E8FF_V_MF4_MASK = 5421,
- PseudoVLSEG7E8FF_V_MF8 = 5422,
- PseudoVLSEG7E8FF_V_MF8_MASK = 5423,
- PseudoVLSEG7E8_V_M1 = 5424,
- PseudoVLSEG7E8_V_M1_MASK = 5425,
- PseudoVLSEG7E8_V_MF2 = 5426,
- PseudoVLSEG7E8_V_MF2_MASK = 5427,
- PseudoVLSEG7E8_V_MF4 = 5428,
- PseudoVLSEG7E8_V_MF4_MASK = 5429,
- PseudoVLSEG7E8_V_MF8 = 5430,
- PseudoVLSEG7E8_V_MF8_MASK = 5431,
- PseudoVLSEG8E16FF_V_M1 = 5432,
- PseudoVLSEG8E16FF_V_M1_MASK = 5433,
- PseudoVLSEG8E16FF_V_MF2 = 5434,
- PseudoVLSEG8E16FF_V_MF2_MASK = 5435,
- PseudoVLSEG8E16FF_V_MF4 = 5436,
- PseudoVLSEG8E16FF_V_MF4_MASK = 5437,
- PseudoVLSEG8E16_V_M1 = 5438,
- PseudoVLSEG8E16_V_M1_MASK = 5439,
- PseudoVLSEG8E16_V_MF2 = 5440,
- PseudoVLSEG8E16_V_MF2_MASK = 5441,
- PseudoVLSEG8E16_V_MF4 = 5442,
- PseudoVLSEG8E16_V_MF4_MASK = 5443,
- PseudoVLSEG8E32FF_V_M1 = 5444,
- PseudoVLSEG8E32FF_V_M1_MASK = 5445,
- PseudoVLSEG8E32FF_V_MF2 = 5446,
- PseudoVLSEG8E32FF_V_MF2_MASK = 5447,
- PseudoVLSEG8E32_V_M1 = 5448,
- PseudoVLSEG8E32_V_M1_MASK = 5449,
- PseudoVLSEG8E32_V_MF2 = 5450,
- PseudoVLSEG8E32_V_MF2_MASK = 5451,
- PseudoVLSEG8E64FF_V_M1 = 5452,
- PseudoVLSEG8E64FF_V_M1_MASK = 5453,
- PseudoVLSEG8E64_V_M1 = 5454,
- PseudoVLSEG8E64_V_M1_MASK = 5455,
- PseudoVLSEG8E8FF_V_M1 = 5456,
- PseudoVLSEG8E8FF_V_M1_MASK = 5457,
- PseudoVLSEG8E8FF_V_MF2 = 5458,
- PseudoVLSEG8E8FF_V_MF2_MASK = 5459,
- PseudoVLSEG8E8FF_V_MF4 = 5460,
- PseudoVLSEG8E8FF_V_MF4_MASK = 5461,
- PseudoVLSEG8E8FF_V_MF8 = 5462,
- PseudoVLSEG8E8FF_V_MF8_MASK = 5463,
- PseudoVLSEG8E8_V_M1 = 5464,
- PseudoVLSEG8E8_V_M1_MASK = 5465,
- PseudoVLSEG8E8_V_MF2 = 5466,
- PseudoVLSEG8E8_V_MF2_MASK = 5467,
- PseudoVLSEG8E8_V_MF4 = 5468,
- PseudoVLSEG8E8_V_MF4_MASK = 5469,
- PseudoVLSEG8E8_V_MF8 = 5470,
- PseudoVLSEG8E8_V_MF8_MASK = 5471,
- PseudoVLSSEG2E16_V_M1 = 5472,
- PseudoVLSSEG2E16_V_M1_MASK = 5473,
- PseudoVLSSEG2E16_V_M2 = 5474,
- PseudoVLSSEG2E16_V_M2_MASK = 5475,
- PseudoVLSSEG2E16_V_M4 = 5476,
- PseudoVLSSEG2E16_V_M4_MASK = 5477,
- PseudoVLSSEG2E16_V_MF2 = 5478,
- PseudoVLSSEG2E16_V_MF2_MASK = 5479,
- PseudoVLSSEG2E16_V_MF4 = 5480,
- PseudoVLSSEG2E16_V_MF4_MASK = 5481,
- PseudoVLSSEG2E32_V_M1 = 5482,
- PseudoVLSSEG2E32_V_M1_MASK = 5483,
- PseudoVLSSEG2E32_V_M2 = 5484,
- PseudoVLSSEG2E32_V_M2_MASK = 5485,
- PseudoVLSSEG2E32_V_M4 = 5486,
- PseudoVLSSEG2E32_V_M4_MASK = 5487,
- PseudoVLSSEG2E32_V_MF2 = 5488,
- PseudoVLSSEG2E32_V_MF2_MASK = 5489,
- PseudoVLSSEG2E64_V_M1 = 5490,
- PseudoVLSSEG2E64_V_M1_MASK = 5491,
- PseudoVLSSEG2E64_V_M2 = 5492,
- PseudoVLSSEG2E64_V_M2_MASK = 5493,
- PseudoVLSSEG2E64_V_M4 = 5494,
- PseudoVLSSEG2E64_V_M4_MASK = 5495,
- PseudoVLSSEG2E8_V_M1 = 5496,
- PseudoVLSSEG2E8_V_M1_MASK = 5497,
- PseudoVLSSEG2E8_V_M2 = 5498,
- PseudoVLSSEG2E8_V_M2_MASK = 5499,
- PseudoVLSSEG2E8_V_M4 = 5500,
- PseudoVLSSEG2E8_V_M4_MASK = 5501,
- PseudoVLSSEG2E8_V_MF2 = 5502,
- PseudoVLSSEG2E8_V_MF2_MASK = 5503,
- PseudoVLSSEG2E8_V_MF4 = 5504,
- PseudoVLSSEG2E8_V_MF4_MASK = 5505,
- PseudoVLSSEG2E8_V_MF8 = 5506,
- PseudoVLSSEG2E8_V_MF8_MASK = 5507,
- PseudoVLSSEG3E16_V_M1 = 5508,
- PseudoVLSSEG3E16_V_M1_MASK = 5509,
- PseudoVLSSEG3E16_V_M2 = 5510,
- PseudoVLSSEG3E16_V_M2_MASK = 5511,
- PseudoVLSSEG3E16_V_MF2 = 5512,
- PseudoVLSSEG3E16_V_MF2_MASK = 5513,
- PseudoVLSSEG3E16_V_MF4 = 5514,
- PseudoVLSSEG3E16_V_MF4_MASK = 5515,
- PseudoVLSSEG3E32_V_M1 = 5516,
- PseudoVLSSEG3E32_V_M1_MASK = 5517,
- PseudoVLSSEG3E32_V_M2 = 5518,
- PseudoVLSSEG3E32_V_M2_MASK = 5519,
- PseudoVLSSEG3E32_V_MF2 = 5520,
- PseudoVLSSEG3E32_V_MF2_MASK = 5521,
- PseudoVLSSEG3E64_V_M1 = 5522,
- PseudoVLSSEG3E64_V_M1_MASK = 5523,
- PseudoVLSSEG3E64_V_M2 = 5524,
- PseudoVLSSEG3E64_V_M2_MASK = 5525,
- PseudoVLSSEG3E8_V_M1 = 5526,
- PseudoVLSSEG3E8_V_M1_MASK = 5527,
- PseudoVLSSEG3E8_V_M2 = 5528,
- PseudoVLSSEG3E8_V_M2_MASK = 5529,
- PseudoVLSSEG3E8_V_MF2 = 5530,
- PseudoVLSSEG3E8_V_MF2_MASK = 5531,
- PseudoVLSSEG3E8_V_MF4 = 5532,
- PseudoVLSSEG3E8_V_MF4_MASK = 5533,
- PseudoVLSSEG3E8_V_MF8 = 5534,
- PseudoVLSSEG3E8_V_MF8_MASK = 5535,
- PseudoVLSSEG4E16_V_M1 = 5536,
- PseudoVLSSEG4E16_V_M1_MASK = 5537,
- PseudoVLSSEG4E16_V_M2 = 5538,
- PseudoVLSSEG4E16_V_M2_MASK = 5539,
- PseudoVLSSEG4E16_V_MF2 = 5540,
- PseudoVLSSEG4E16_V_MF2_MASK = 5541,
- PseudoVLSSEG4E16_V_MF4 = 5542,
- PseudoVLSSEG4E16_V_MF4_MASK = 5543,
- PseudoVLSSEG4E32_V_M1 = 5544,
- PseudoVLSSEG4E32_V_M1_MASK = 5545,
- PseudoVLSSEG4E32_V_M2 = 5546,
- PseudoVLSSEG4E32_V_M2_MASK = 5547,
- PseudoVLSSEG4E32_V_MF2 = 5548,
- PseudoVLSSEG4E32_V_MF2_MASK = 5549,
- PseudoVLSSEG4E64_V_M1 = 5550,
- PseudoVLSSEG4E64_V_M1_MASK = 5551,
- PseudoVLSSEG4E64_V_M2 = 5552,
- PseudoVLSSEG4E64_V_M2_MASK = 5553,
- PseudoVLSSEG4E8_V_M1 = 5554,
- PseudoVLSSEG4E8_V_M1_MASK = 5555,
- PseudoVLSSEG4E8_V_M2 = 5556,
- PseudoVLSSEG4E8_V_M2_MASK = 5557,
- PseudoVLSSEG4E8_V_MF2 = 5558,
- PseudoVLSSEG4E8_V_MF2_MASK = 5559,
- PseudoVLSSEG4E8_V_MF4 = 5560,
- PseudoVLSSEG4E8_V_MF4_MASK = 5561,
- PseudoVLSSEG4E8_V_MF8 = 5562,
- PseudoVLSSEG4E8_V_MF8_MASK = 5563,
- PseudoVLSSEG5E16_V_M1 = 5564,
- PseudoVLSSEG5E16_V_M1_MASK = 5565,
- PseudoVLSSEG5E16_V_MF2 = 5566,
- PseudoVLSSEG5E16_V_MF2_MASK = 5567,
- PseudoVLSSEG5E16_V_MF4 = 5568,
- PseudoVLSSEG5E16_V_MF4_MASK = 5569,
- PseudoVLSSEG5E32_V_M1 = 5570,
- PseudoVLSSEG5E32_V_M1_MASK = 5571,
- PseudoVLSSEG5E32_V_MF2 = 5572,
- PseudoVLSSEG5E32_V_MF2_MASK = 5573,
- PseudoVLSSEG5E64_V_M1 = 5574,
- PseudoVLSSEG5E64_V_M1_MASK = 5575,
- PseudoVLSSEG5E8_V_M1 = 5576,
- PseudoVLSSEG5E8_V_M1_MASK = 5577,
- PseudoVLSSEG5E8_V_MF2 = 5578,
- PseudoVLSSEG5E8_V_MF2_MASK = 5579,
- PseudoVLSSEG5E8_V_MF4 = 5580,
- PseudoVLSSEG5E8_V_MF4_MASK = 5581,
- PseudoVLSSEG5E8_V_MF8 = 5582,
- PseudoVLSSEG5E8_V_MF8_MASK = 5583,
- PseudoVLSSEG6E16_V_M1 = 5584,
- PseudoVLSSEG6E16_V_M1_MASK = 5585,
- PseudoVLSSEG6E16_V_MF2 = 5586,
- PseudoVLSSEG6E16_V_MF2_MASK = 5587,
- PseudoVLSSEG6E16_V_MF4 = 5588,
- PseudoVLSSEG6E16_V_MF4_MASK = 5589,
- PseudoVLSSEG6E32_V_M1 = 5590,
- PseudoVLSSEG6E32_V_M1_MASK = 5591,
- PseudoVLSSEG6E32_V_MF2 = 5592,
- PseudoVLSSEG6E32_V_MF2_MASK = 5593,
- PseudoVLSSEG6E64_V_M1 = 5594,
- PseudoVLSSEG6E64_V_M1_MASK = 5595,
- PseudoVLSSEG6E8_V_M1 = 5596,
- PseudoVLSSEG6E8_V_M1_MASK = 5597,
- PseudoVLSSEG6E8_V_MF2 = 5598,
- PseudoVLSSEG6E8_V_MF2_MASK = 5599,
- PseudoVLSSEG6E8_V_MF4 = 5600,
- PseudoVLSSEG6E8_V_MF4_MASK = 5601,
- PseudoVLSSEG6E8_V_MF8 = 5602,
- PseudoVLSSEG6E8_V_MF8_MASK = 5603,
- PseudoVLSSEG7E16_V_M1 = 5604,
- PseudoVLSSEG7E16_V_M1_MASK = 5605,
- PseudoVLSSEG7E16_V_MF2 = 5606,
- PseudoVLSSEG7E16_V_MF2_MASK = 5607,
- PseudoVLSSEG7E16_V_MF4 = 5608,
- PseudoVLSSEG7E16_V_MF4_MASK = 5609,
- PseudoVLSSEG7E32_V_M1 = 5610,
- PseudoVLSSEG7E32_V_M1_MASK = 5611,
- PseudoVLSSEG7E32_V_MF2 = 5612,
- PseudoVLSSEG7E32_V_MF2_MASK = 5613,
- PseudoVLSSEG7E64_V_M1 = 5614,
- PseudoVLSSEG7E64_V_M1_MASK = 5615,
- PseudoVLSSEG7E8_V_M1 = 5616,
- PseudoVLSSEG7E8_V_M1_MASK = 5617,
- PseudoVLSSEG7E8_V_MF2 = 5618,
- PseudoVLSSEG7E8_V_MF2_MASK = 5619,
- PseudoVLSSEG7E8_V_MF4 = 5620,
- PseudoVLSSEG7E8_V_MF4_MASK = 5621,
- PseudoVLSSEG7E8_V_MF8 = 5622,
- PseudoVLSSEG7E8_V_MF8_MASK = 5623,
- PseudoVLSSEG8E16_V_M1 = 5624,
- PseudoVLSSEG8E16_V_M1_MASK = 5625,
- PseudoVLSSEG8E16_V_MF2 = 5626,
- PseudoVLSSEG8E16_V_MF2_MASK = 5627,
- PseudoVLSSEG8E16_V_MF4 = 5628,
- PseudoVLSSEG8E16_V_MF4_MASK = 5629,
- PseudoVLSSEG8E32_V_M1 = 5630,
- PseudoVLSSEG8E32_V_M1_MASK = 5631,
- PseudoVLSSEG8E32_V_MF2 = 5632,
- PseudoVLSSEG8E32_V_MF2_MASK = 5633,
- PseudoVLSSEG8E64_V_M1 = 5634,
- PseudoVLSSEG8E64_V_M1_MASK = 5635,
- PseudoVLSSEG8E8_V_M1 = 5636,
- PseudoVLSSEG8E8_V_M1_MASK = 5637,
- PseudoVLSSEG8E8_V_MF2 = 5638,
- PseudoVLSSEG8E8_V_MF2_MASK = 5639,
- PseudoVLSSEG8E8_V_MF4 = 5640,
- PseudoVLSSEG8E8_V_MF4_MASK = 5641,
- PseudoVLSSEG8E8_V_MF8 = 5642,
- PseudoVLSSEG8E8_V_MF8_MASK = 5643,
- PseudoVLUXEI16_V_M1_M1 = 5644,
- PseudoVLUXEI16_V_M1_M1_MASK = 5645,
- PseudoVLUXEI16_V_M1_M2 = 5646,
- PseudoVLUXEI16_V_M1_M2_MASK = 5647,
- PseudoVLUXEI16_V_M1_M4 = 5648,
- PseudoVLUXEI16_V_M1_M4_MASK = 5649,
- PseudoVLUXEI16_V_M1_MF2 = 5650,
- PseudoVLUXEI16_V_M1_MF2_MASK = 5651,
- PseudoVLUXEI16_V_M2_M1 = 5652,
- PseudoVLUXEI16_V_M2_M1_MASK = 5653,
- PseudoVLUXEI16_V_M2_M2 = 5654,
- PseudoVLUXEI16_V_M2_M2_MASK = 5655,
- PseudoVLUXEI16_V_M2_M4 = 5656,
- PseudoVLUXEI16_V_M2_M4_MASK = 5657,
- PseudoVLUXEI16_V_M2_M8 = 5658,
- PseudoVLUXEI16_V_M2_M8_MASK = 5659,
- PseudoVLUXEI16_V_M4_M2 = 5660,
- PseudoVLUXEI16_V_M4_M2_MASK = 5661,
- PseudoVLUXEI16_V_M4_M4 = 5662,
- PseudoVLUXEI16_V_M4_M4_MASK = 5663,
- PseudoVLUXEI16_V_M4_M8 = 5664,
- PseudoVLUXEI16_V_M4_M8_MASK = 5665,
- PseudoVLUXEI16_V_M8_M4 = 5666,
- PseudoVLUXEI16_V_M8_M4_MASK = 5667,
- PseudoVLUXEI16_V_M8_M8 = 5668,
- PseudoVLUXEI16_V_M8_M8_MASK = 5669,
- PseudoVLUXEI16_V_MF2_M1 = 5670,
- PseudoVLUXEI16_V_MF2_M1_MASK = 5671,
- PseudoVLUXEI16_V_MF2_M2 = 5672,
- PseudoVLUXEI16_V_MF2_M2_MASK = 5673,
- PseudoVLUXEI16_V_MF2_MF2 = 5674,
- PseudoVLUXEI16_V_MF2_MF2_MASK = 5675,
- PseudoVLUXEI16_V_MF2_MF4 = 5676,
- PseudoVLUXEI16_V_MF2_MF4_MASK = 5677,
- PseudoVLUXEI16_V_MF4_M1 = 5678,
- PseudoVLUXEI16_V_MF4_M1_MASK = 5679,
- PseudoVLUXEI16_V_MF4_MF2 = 5680,
- PseudoVLUXEI16_V_MF4_MF2_MASK = 5681,
- PseudoVLUXEI16_V_MF4_MF4 = 5682,
- PseudoVLUXEI16_V_MF4_MF4_MASK = 5683,
- PseudoVLUXEI16_V_MF4_MF8 = 5684,
- PseudoVLUXEI16_V_MF4_MF8_MASK = 5685,
- PseudoVLUXEI32_V_M1_M1 = 5686,
- PseudoVLUXEI32_V_M1_M1_MASK = 5687,
- PseudoVLUXEI32_V_M1_M2 = 5688,
- PseudoVLUXEI32_V_M1_M2_MASK = 5689,
- PseudoVLUXEI32_V_M1_MF2 = 5690,
- PseudoVLUXEI32_V_M1_MF2_MASK = 5691,
- PseudoVLUXEI32_V_M1_MF4 = 5692,
- PseudoVLUXEI32_V_M1_MF4_MASK = 5693,
- PseudoVLUXEI32_V_M2_M1 = 5694,
- PseudoVLUXEI32_V_M2_M1_MASK = 5695,
- PseudoVLUXEI32_V_M2_M2 = 5696,
- PseudoVLUXEI32_V_M2_M2_MASK = 5697,
- PseudoVLUXEI32_V_M2_M4 = 5698,
- PseudoVLUXEI32_V_M2_M4_MASK = 5699,
- PseudoVLUXEI32_V_M2_MF2 = 5700,
- PseudoVLUXEI32_V_M2_MF2_MASK = 5701,
- PseudoVLUXEI32_V_M4_M1 = 5702,
- PseudoVLUXEI32_V_M4_M1_MASK = 5703,
- PseudoVLUXEI32_V_M4_M2 = 5704,
- PseudoVLUXEI32_V_M4_M2_MASK = 5705,
- PseudoVLUXEI32_V_M4_M4 = 5706,
- PseudoVLUXEI32_V_M4_M4_MASK = 5707,
- PseudoVLUXEI32_V_M4_M8 = 5708,
- PseudoVLUXEI32_V_M4_M8_MASK = 5709,
- PseudoVLUXEI32_V_M8_M2 = 5710,
- PseudoVLUXEI32_V_M8_M2_MASK = 5711,
- PseudoVLUXEI32_V_M8_M4 = 5712,
- PseudoVLUXEI32_V_M8_M4_MASK = 5713,
- PseudoVLUXEI32_V_M8_M8 = 5714,
- PseudoVLUXEI32_V_M8_M8_MASK = 5715,
- PseudoVLUXEI32_V_MF2_M1 = 5716,
- PseudoVLUXEI32_V_MF2_M1_MASK = 5717,
- PseudoVLUXEI32_V_MF2_MF2 = 5718,
- PseudoVLUXEI32_V_MF2_MF2_MASK = 5719,
- PseudoVLUXEI32_V_MF2_MF4 = 5720,
- PseudoVLUXEI32_V_MF2_MF4_MASK = 5721,
- PseudoVLUXEI32_V_MF2_MF8 = 5722,
- PseudoVLUXEI32_V_MF2_MF8_MASK = 5723,
- PseudoVLUXEI64_V_M1_M1 = 5724,
- PseudoVLUXEI64_V_M1_M1_MASK = 5725,
- PseudoVLUXEI64_V_M1_MF2 = 5726,
- PseudoVLUXEI64_V_M1_MF2_MASK = 5727,
- PseudoVLUXEI64_V_M1_MF4 = 5728,
- PseudoVLUXEI64_V_M1_MF4_MASK = 5729,
- PseudoVLUXEI64_V_M1_MF8 = 5730,
- PseudoVLUXEI64_V_M1_MF8_MASK = 5731,
- PseudoVLUXEI64_V_M2_M1 = 5732,
- PseudoVLUXEI64_V_M2_M1_MASK = 5733,
- PseudoVLUXEI64_V_M2_M2 = 5734,
- PseudoVLUXEI64_V_M2_M2_MASK = 5735,
- PseudoVLUXEI64_V_M2_MF2 = 5736,
- PseudoVLUXEI64_V_M2_MF2_MASK = 5737,
- PseudoVLUXEI64_V_M2_MF4 = 5738,
- PseudoVLUXEI64_V_M2_MF4_MASK = 5739,
- PseudoVLUXEI64_V_M4_M1 = 5740,
- PseudoVLUXEI64_V_M4_M1_MASK = 5741,
- PseudoVLUXEI64_V_M4_M2 = 5742,
- PseudoVLUXEI64_V_M4_M2_MASK = 5743,
- PseudoVLUXEI64_V_M4_M4 = 5744,
- PseudoVLUXEI64_V_M4_M4_MASK = 5745,
- PseudoVLUXEI64_V_M4_MF2 = 5746,
- PseudoVLUXEI64_V_M4_MF2_MASK = 5747,
- PseudoVLUXEI64_V_M8_M1 = 5748,
- PseudoVLUXEI64_V_M8_M1_MASK = 5749,
- PseudoVLUXEI64_V_M8_M2 = 5750,
- PseudoVLUXEI64_V_M8_M2_MASK = 5751,
- PseudoVLUXEI64_V_M8_M4 = 5752,
- PseudoVLUXEI64_V_M8_M4_MASK = 5753,
- PseudoVLUXEI64_V_M8_M8 = 5754,
- PseudoVLUXEI64_V_M8_M8_MASK = 5755,
- PseudoVLUXEI8_V_M1_M1 = 5756,
- PseudoVLUXEI8_V_M1_M1_MASK = 5757,
- PseudoVLUXEI8_V_M1_M2 = 5758,
- PseudoVLUXEI8_V_M1_M2_MASK = 5759,
- PseudoVLUXEI8_V_M1_M4 = 5760,
- PseudoVLUXEI8_V_M1_M4_MASK = 5761,
- PseudoVLUXEI8_V_M1_M8 = 5762,
- PseudoVLUXEI8_V_M1_M8_MASK = 5763,
- PseudoVLUXEI8_V_M2_M2 = 5764,
- PseudoVLUXEI8_V_M2_M2_MASK = 5765,
- PseudoVLUXEI8_V_M2_M4 = 5766,
- PseudoVLUXEI8_V_M2_M4_MASK = 5767,
- PseudoVLUXEI8_V_M2_M8 = 5768,
- PseudoVLUXEI8_V_M2_M8_MASK = 5769,
- PseudoVLUXEI8_V_M4_M4 = 5770,
- PseudoVLUXEI8_V_M4_M4_MASK = 5771,
- PseudoVLUXEI8_V_M4_M8 = 5772,
- PseudoVLUXEI8_V_M4_M8_MASK = 5773,
- PseudoVLUXEI8_V_M8_M8 = 5774,
- PseudoVLUXEI8_V_M8_M8_MASK = 5775,
- PseudoVLUXEI8_V_MF2_M1 = 5776,
- PseudoVLUXEI8_V_MF2_M1_MASK = 5777,
- PseudoVLUXEI8_V_MF2_M2 = 5778,
- PseudoVLUXEI8_V_MF2_M2_MASK = 5779,
- PseudoVLUXEI8_V_MF2_M4 = 5780,
- PseudoVLUXEI8_V_MF2_M4_MASK = 5781,
- PseudoVLUXEI8_V_MF2_MF2 = 5782,
- PseudoVLUXEI8_V_MF2_MF2_MASK = 5783,
- PseudoVLUXEI8_V_MF4_M1 = 5784,
- PseudoVLUXEI8_V_MF4_M1_MASK = 5785,
- PseudoVLUXEI8_V_MF4_M2 = 5786,
- PseudoVLUXEI8_V_MF4_M2_MASK = 5787,
- PseudoVLUXEI8_V_MF4_MF2 = 5788,
- PseudoVLUXEI8_V_MF4_MF2_MASK = 5789,
- PseudoVLUXEI8_V_MF4_MF4 = 5790,
- PseudoVLUXEI8_V_MF4_MF4_MASK = 5791,
- PseudoVLUXEI8_V_MF8_M1 = 5792,
- PseudoVLUXEI8_V_MF8_M1_MASK = 5793,
- PseudoVLUXEI8_V_MF8_MF2 = 5794,
- PseudoVLUXEI8_V_MF8_MF2_MASK = 5795,
- PseudoVLUXEI8_V_MF8_MF4 = 5796,
- PseudoVLUXEI8_V_MF8_MF4_MASK = 5797,
- PseudoVLUXEI8_V_MF8_MF8 = 5798,
- PseudoVLUXEI8_V_MF8_MF8_MASK = 5799,
- PseudoVLUXSEG2EI16_V_M1_M1 = 5800,
- PseudoVLUXSEG2EI16_V_M1_M1_MASK = 5801,
- PseudoVLUXSEG2EI16_V_M1_M2 = 5802,
- PseudoVLUXSEG2EI16_V_M1_M2_MASK = 5803,
- PseudoVLUXSEG2EI16_V_M1_M4 = 5804,
- PseudoVLUXSEG2EI16_V_M1_M4_MASK = 5805,
- PseudoVLUXSEG2EI16_V_M1_MF2 = 5806,
- PseudoVLUXSEG2EI16_V_M1_MF2_MASK = 5807,
- PseudoVLUXSEG2EI16_V_M2_M1 = 5808,
- PseudoVLUXSEG2EI16_V_M2_M1_MASK = 5809,
- PseudoVLUXSEG2EI16_V_M2_M2 = 5810,
- PseudoVLUXSEG2EI16_V_M2_M2_MASK = 5811,
- PseudoVLUXSEG2EI16_V_M2_M4 = 5812,
- PseudoVLUXSEG2EI16_V_M2_M4_MASK = 5813,
- PseudoVLUXSEG2EI16_V_M4_M2 = 5814,
- PseudoVLUXSEG2EI16_V_M4_M2_MASK = 5815,
- PseudoVLUXSEG2EI16_V_M4_M4 = 5816,
- PseudoVLUXSEG2EI16_V_M4_M4_MASK = 5817,
- PseudoVLUXSEG2EI16_V_M8_M4 = 5818,
- PseudoVLUXSEG2EI16_V_M8_M4_MASK = 5819,
- PseudoVLUXSEG2EI16_V_MF2_M1 = 5820,
- PseudoVLUXSEG2EI16_V_MF2_M1_MASK = 5821,
- PseudoVLUXSEG2EI16_V_MF2_M2 = 5822,
- PseudoVLUXSEG2EI16_V_MF2_M2_MASK = 5823,
- PseudoVLUXSEG2EI16_V_MF2_MF2 = 5824,
- PseudoVLUXSEG2EI16_V_MF2_MF2_MASK = 5825,
- PseudoVLUXSEG2EI16_V_MF2_MF4 = 5826,
- PseudoVLUXSEG2EI16_V_MF2_MF4_MASK = 5827,
- PseudoVLUXSEG2EI16_V_MF4_M1 = 5828,
- PseudoVLUXSEG2EI16_V_MF4_M1_MASK = 5829,
- PseudoVLUXSEG2EI16_V_MF4_MF2 = 5830,
- PseudoVLUXSEG2EI16_V_MF4_MF2_MASK = 5831,
- PseudoVLUXSEG2EI16_V_MF4_MF4 = 5832,
- PseudoVLUXSEG2EI16_V_MF4_MF4_MASK = 5833,
- PseudoVLUXSEG2EI16_V_MF4_MF8 = 5834,
- PseudoVLUXSEG2EI16_V_MF4_MF8_MASK = 5835,
- PseudoVLUXSEG2EI32_V_M1_M1 = 5836,
- PseudoVLUXSEG2EI32_V_M1_M1_MASK = 5837,
- PseudoVLUXSEG2EI32_V_M1_M2 = 5838,
- PseudoVLUXSEG2EI32_V_M1_M2_MASK = 5839,
- PseudoVLUXSEG2EI32_V_M1_MF2 = 5840,
- PseudoVLUXSEG2EI32_V_M1_MF2_MASK = 5841,
- PseudoVLUXSEG2EI32_V_M1_MF4 = 5842,
- PseudoVLUXSEG2EI32_V_M1_MF4_MASK = 5843,
- PseudoVLUXSEG2EI32_V_M2_M1 = 5844,
- PseudoVLUXSEG2EI32_V_M2_M1_MASK = 5845,
- PseudoVLUXSEG2EI32_V_M2_M2 = 5846,
- PseudoVLUXSEG2EI32_V_M2_M2_MASK = 5847,
- PseudoVLUXSEG2EI32_V_M2_M4 = 5848,
- PseudoVLUXSEG2EI32_V_M2_M4_MASK = 5849,
- PseudoVLUXSEG2EI32_V_M2_MF2 = 5850,
- PseudoVLUXSEG2EI32_V_M2_MF2_MASK = 5851,
- PseudoVLUXSEG2EI32_V_M4_M1 = 5852,
- PseudoVLUXSEG2EI32_V_M4_M1_MASK = 5853,
- PseudoVLUXSEG2EI32_V_M4_M2 = 5854,
- PseudoVLUXSEG2EI32_V_M4_M2_MASK = 5855,
- PseudoVLUXSEG2EI32_V_M4_M4 = 5856,
- PseudoVLUXSEG2EI32_V_M4_M4_MASK = 5857,
- PseudoVLUXSEG2EI32_V_M8_M2 = 5858,
- PseudoVLUXSEG2EI32_V_M8_M2_MASK = 5859,
- PseudoVLUXSEG2EI32_V_M8_M4 = 5860,
- PseudoVLUXSEG2EI32_V_M8_M4_MASK = 5861,
- PseudoVLUXSEG2EI32_V_MF2_M1 = 5862,
- PseudoVLUXSEG2EI32_V_MF2_M1_MASK = 5863,
- PseudoVLUXSEG2EI32_V_MF2_MF2 = 5864,
- PseudoVLUXSEG2EI32_V_MF2_MF2_MASK = 5865,
- PseudoVLUXSEG2EI32_V_MF2_MF4 = 5866,
- PseudoVLUXSEG2EI32_V_MF2_MF4_MASK = 5867,
- PseudoVLUXSEG2EI32_V_MF2_MF8 = 5868,
- PseudoVLUXSEG2EI32_V_MF2_MF8_MASK = 5869,
- PseudoVLUXSEG2EI64_V_M1_M1 = 5870,
- PseudoVLUXSEG2EI64_V_M1_M1_MASK = 5871,
- PseudoVLUXSEG2EI64_V_M1_MF2 = 5872,
- PseudoVLUXSEG2EI64_V_M1_MF2_MASK = 5873,
- PseudoVLUXSEG2EI64_V_M1_MF4 = 5874,
- PseudoVLUXSEG2EI64_V_M1_MF4_MASK = 5875,
- PseudoVLUXSEG2EI64_V_M1_MF8 = 5876,
- PseudoVLUXSEG2EI64_V_M1_MF8_MASK = 5877,
- PseudoVLUXSEG2EI64_V_M2_M1 = 5878,
- PseudoVLUXSEG2EI64_V_M2_M1_MASK = 5879,
- PseudoVLUXSEG2EI64_V_M2_M2 = 5880,
- PseudoVLUXSEG2EI64_V_M2_M2_MASK = 5881,
- PseudoVLUXSEG2EI64_V_M2_MF2 = 5882,
- PseudoVLUXSEG2EI64_V_M2_MF2_MASK = 5883,
- PseudoVLUXSEG2EI64_V_M2_MF4 = 5884,
- PseudoVLUXSEG2EI64_V_M2_MF4_MASK = 5885,
- PseudoVLUXSEG2EI64_V_M4_M1 = 5886,
- PseudoVLUXSEG2EI64_V_M4_M1_MASK = 5887,
- PseudoVLUXSEG2EI64_V_M4_M2 = 5888,
- PseudoVLUXSEG2EI64_V_M4_M2_MASK = 5889,
- PseudoVLUXSEG2EI64_V_M4_M4 = 5890,
- PseudoVLUXSEG2EI64_V_M4_M4_MASK = 5891,
- PseudoVLUXSEG2EI64_V_M4_MF2 = 5892,
- PseudoVLUXSEG2EI64_V_M4_MF2_MASK = 5893,
- PseudoVLUXSEG2EI64_V_M8_M1 = 5894,
- PseudoVLUXSEG2EI64_V_M8_M1_MASK = 5895,
- PseudoVLUXSEG2EI64_V_M8_M2 = 5896,
- PseudoVLUXSEG2EI64_V_M8_M2_MASK = 5897,
- PseudoVLUXSEG2EI64_V_M8_M4 = 5898,
- PseudoVLUXSEG2EI64_V_M8_M4_MASK = 5899,
- PseudoVLUXSEG2EI8_V_M1_M1 = 5900,
- PseudoVLUXSEG2EI8_V_M1_M1_MASK = 5901,
- PseudoVLUXSEG2EI8_V_M1_M2 = 5902,
- PseudoVLUXSEG2EI8_V_M1_M2_MASK = 5903,
- PseudoVLUXSEG2EI8_V_M1_M4 = 5904,
- PseudoVLUXSEG2EI8_V_M1_M4_MASK = 5905,
- PseudoVLUXSEG2EI8_V_M2_M2 = 5906,
- PseudoVLUXSEG2EI8_V_M2_M2_MASK = 5907,
- PseudoVLUXSEG2EI8_V_M2_M4 = 5908,
- PseudoVLUXSEG2EI8_V_M2_M4_MASK = 5909,
- PseudoVLUXSEG2EI8_V_M4_M4 = 5910,
- PseudoVLUXSEG2EI8_V_M4_M4_MASK = 5911,
- PseudoVLUXSEG2EI8_V_MF2_M1 = 5912,
- PseudoVLUXSEG2EI8_V_MF2_M1_MASK = 5913,
- PseudoVLUXSEG2EI8_V_MF2_M2 = 5914,
- PseudoVLUXSEG2EI8_V_MF2_M2_MASK = 5915,
- PseudoVLUXSEG2EI8_V_MF2_M4 = 5916,
- PseudoVLUXSEG2EI8_V_MF2_M4_MASK = 5917,
- PseudoVLUXSEG2EI8_V_MF2_MF2 = 5918,
- PseudoVLUXSEG2EI8_V_MF2_MF2_MASK = 5919,
- PseudoVLUXSEG2EI8_V_MF4_M1 = 5920,
- PseudoVLUXSEG2EI8_V_MF4_M1_MASK = 5921,
- PseudoVLUXSEG2EI8_V_MF4_M2 = 5922,
- PseudoVLUXSEG2EI8_V_MF4_M2_MASK = 5923,
- PseudoVLUXSEG2EI8_V_MF4_MF2 = 5924,
- PseudoVLUXSEG2EI8_V_MF4_MF2_MASK = 5925,
- PseudoVLUXSEG2EI8_V_MF4_MF4 = 5926,
- PseudoVLUXSEG2EI8_V_MF4_MF4_MASK = 5927,
- PseudoVLUXSEG2EI8_V_MF8_M1 = 5928,
- PseudoVLUXSEG2EI8_V_MF8_M1_MASK = 5929,
- PseudoVLUXSEG2EI8_V_MF8_MF2 = 5930,
- PseudoVLUXSEG2EI8_V_MF8_MF2_MASK = 5931,
- PseudoVLUXSEG2EI8_V_MF8_MF4 = 5932,
- PseudoVLUXSEG2EI8_V_MF8_MF4_MASK = 5933,
- PseudoVLUXSEG2EI8_V_MF8_MF8 = 5934,
- PseudoVLUXSEG2EI8_V_MF8_MF8_MASK = 5935,
- PseudoVLUXSEG3EI16_V_M1_M1 = 5936,
- PseudoVLUXSEG3EI16_V_M1_M1_MASK = 5937,
- PseudoVLUXSEG3EI16_V_M1_M2 = 5938,
- PseudoVLUXSEG3EI16_V_M1_M2_MASK = 5939,
- PseudoVLUXSEG3EI16_V_M1_MF2 = 5940,
- PseudoVLUXSEG3EI16_V_M1_MF2_MASK = 5941,
- PseudoVLUXSEG3EI16_V_M2_M1 = 5942,
- PseudoVLUXSEG3EI16_V_M2_M1_MASK = 5943,
- PseudoVLUXSEG3EI16_V_M2_M2 = 5944,
- PseudoVLUXSEG3EI16_V_M2_M2_MASK = 5945,
- PseudoVLUXSEG3EI16_V_M4_M2 = 5946,
- PseudoVLUXSEG3EI16_V_M4_M2_MASK = 5947,
- PseudoVLUXSEG3EI16_V_MF2_M1 = 5948,
- PseudoVLUXSEG3EI16_V_MF2_M1_MASK = 5949,
- PseudoVLUXSEG3EI16_V_MF2_M2 = 5950,
- PseudoVLUXSEG3EI16_V_MF2_M2_MASK = 5951,
- PseudoVLUXSEG3EI16_V_MF2_MF2 = 5952,
- PseudoVLUXSEG3EI16_V_MF2_MF2_MASK = 5953,
- PseudoVLUXSEG3EI16_V_MF2_MF4 = 5954,
- PseudoVLUXSEG3EI16_V_MF2_MF4_MASK = 5955,
- PseudoVLUXSEG3EI16_V_MF4_M1 = 5956,
- PseudoVLUXSEG3EI16_V_MF4_M1_MASK = 5957,
- PseudoVLUXSEG3EI16_V_MF4_MF2 = 5958,
- PseudoVLUXSEG3EI16_V_MF4_MF2_MASK = 5959,
- PseudoVLUXSEG3EI16_V_MF4_MF4 = 5960,
- PseudoVLUXSEG3EI16_V_MF4_MF4_MASK = 5961,
- PseudoVLUXSEG3EI16_V_MF4_MF8 = 5962,
- PseudoVLUXSEG3EI16_V_MF4_MF8_MASK = 5963,
- PseudoVLUXSEG3EI32_V_M1_M1 = 5964,
- PseudoVLUXSEG3EI32_V_M1_M1_MASK = 5965,
- PseudoVLUXSEG3EI32_V_M1_M2 = 5966,
- PseudoVLUXSEG3EI32_V_M1_M2_MASK = 5967,
- PseudoVLUXSEG3EI32_V_M1_MF2 = 5968,
- PseudoVLUXSEG3EI32_V_M1_MF2_MASK = 5969,
- PseudoVLUXSEG3EI32_V_M1_MF4 = 5970,
- PseudoVLUXSEG3EI32_V_M1_MF4_MASK = 5971,
- PseudoVLUXSEG3EI32_V_M2_M1 = 5972,
- PseudoVLUXSEG3EI32_V_M2_M1_MASK = 5973,
- PseudoVLUXSEG3EI32_V_M2_M2 = 5974,
- PseudoVLUXSEG3EI32_V_M2_M2_MASK = 5975,
- PseudoVLUXSEG3EI32_V_M2_MF2 = 5976,
- PseudoVLUXSEG3EI32_V_M2_MF2_MASK = 5977,
- PseudoVLUXSEG3EI32_V_M4_M1 = 5978,
- PseudoVLUXSEG3EI32_V_M4_M1_MASK = 5979,
- PseudoVLUXSEG3EI32_V_M4_M2 = 5980,
- PseudoVLUXSEG3EI32_V_M4_M2_MASK = 5981,
- PseudoVLUXSEG3EI32_V_M8_M2 = 5982,
- PseudoVLUXSEG3EI32_V_M8_M2_MASK = 5983,
- PseudoVLUXSEG3EI32_V_MF2_M1 = 5984,
- PseudoVLUXSEG3EI32_V_MF2_M1_MASK = 5985,
- PseudoVLUXSEG3EI32_V_MF2_MF2 = 5986,
- PseudoVLUXSEG3EI32_V_MF2_MF2_MASK = 5987,
- PseudoVLUXSEG3EI32_V_MF2_MF4 = 5988,
- PseudoVLUXSEG3EI32_V_MF2_MF4_MASK = 5989,
- PseudoVLUXSEG3EI32_V_MF2_MF8 = 5990,
- PseudoVLUXSEG3EI32_V_MF2_MF8_MASK = 5991,
- PseudoVLUXSEG3EI64_V_M1_M1 = 5992,
- PseudoVLUXSEG3EI64_V_M1_M1_MASK = 5993,
- PseudoVLUXSEG3EI64_V_M1_MF2 = 5994,
- PseudoVLUXSEG3EI64_V_M1_MF2_MASK = 5995,
- PseudoVLUXSEG3EI64_V_M1_MF4 = 5996,
- PseudoVLUXSEG3EI64_V_M1_MF4_MASK = 5997,
- PseudoVLUXSEG3EI64_V_M1_MF8 = 5998,
- PseudoVLUXSEG3EI64_V_M1_MF8_MASK = 5999,
- PseudoVLUXSEG3EI64_V_M2_M1 = 6000,
- PseudoVLUXSEG3EI64_V_M2_M1_MASK = 6001,
- PseudoVLUXSEG3EI64_V_M2_M2 = 6002,
- PseudoVLUXSEG3EI64_V_M2_M2_MASK = 6003,
- PseudoVLUXSEG3EI64_V_M2_MF2 = 6004,
- PseudoVLUXSEG3EI64_V_M2_MF2_MASK = 6005,
- PseudoVLUXSEG3EI64_V_M2_MF4 = 6006,
- PseudoVLUXSEG3EI64_V_M2_MF4_MASK = 6007,
- PseudoVLUXSEG3EI64_V_M4_M1 = 6008,
- PseudoVLUXSEG3EI64_V_M4_M1_MASK = 6009,
- PseudoVLUXSEG3EI64_V_M4_M2 = 6010,
- PseudoVLUXSEG3EI64_V_M4_M2_MASK = 6011,
- PseudoVLUXSEG3EI64_V_M4_MF2 = 6012,
- PseudoVLUXSEG3EI64_V_M4_MF2_MASK = 6013,
- PseudoVLUXSEG3EI64_V_M8_M1 = 6014,
- PseudoVLUXSEG3EI64_V_M8_M1_MASK = 6015,
- PseudoVLUXSEG3EI64_V_M8_M2 = 6016,
- PseudoVLUXSEG3EI64_V_M8_M2_MASK = 6017,
- PseudoVLUXSEG3EI8_V_M1_M1 = 6018,
- PseudoVLUXSEG3EI8_V_M1_M1_MASK = 6019,
- PseudoVLUXSEG3EI8_V_M1_M2 = 6020,
- PseudoVLUXSEG3EI8_V_M1_M2_MASK = 6021,
- PseudoVLUXSEG3EI8_V_M2_M2 = 6022,
- PseudoVLUXSEG3EI8_V_M2_M2_MASK = 6023,
- PseudoVLUXSEG3EI8_V_MF2_M1 = 6024,
- PseudoVLUXSEG3EI8_V_MF2_M1_MASK = 6025,
- PseudoVLUXSEG3EI8_V_MF2_M2 = 6026,
- PseudoVLUXSEG3EI8_V_MF2_M2_MASK = 6027,
- PseudoVLUXSEG3EI8_V_MF2_MF2 = 6028,
- PseudoVLUXSEG3EI8_V_MF2_MF2_MASK = 6029,
- PseudoVLUXSEG3EI8_V_MF4_M1 = 6030,
- PseudoVLUXSEG3EI8_V_MF4_M1_MASK = 6031,
- PseudoVLUXSEG3EI8_V_MF4_M2 = 6032,
- PseudoVLUXSEG3EI8_V_MF4_M2_MASK = 6033,
- PseudoVLUXSEG3EI8_V_MF4_MF2 = 6034,
- PseudoVLUXSEG3EI8_V_MF4_MF2_MASK = 6035,
- PseudoVLUXSEG3EI8_V_MF4_MF4 = 6036,
- PseudoVLUXSEG3EI8_V_MF4_MF4_MASK = 6037,
- PseudoVLUXSEG3EI8_V_MF8_M1 = 6038,
- PseudoVLUXSEG3EI8_V_MF8_M1_MASK = 6039,
- PseudoVLUXSEG3EI8_V_MF8_MF2 = 6040,
- PseudoVLUXSEG3EI8_V_MF8_MF2_MASK = 6041,
- PseudoVLUXSEG3EI8_V_MF8_MF4 = 6042,
- PseudoVLUXSEG3EI8_V_MF8_MF4_MASK = 6043,
- PseudoVLUXSEG3EI8_V_MF8_MF8 = 6044,
- PseudoVLUXSEG3EI8_V_MF8_MF8_MASK = 6045,
- PseudoVLUXSEG4EI16_V_M1_M1 = 6046,
- PseudoVLUXSEG4EI16_V_M1_M1_MASK = 6047,
- PseudoVLUXSEG4EI16_V_M1_M2 = 6048,
- PseudoVLUXSEG4EI16_V_M1_M2_MASK = 6049,
- PseudoVLUXSEG4EI16_V_M1_MF2 = 6050,
- PseudoVLUXSEG4EI16_V_M1_MF2_MASK = 6051,
- PseudoVLUXSEG4EI16_V_M2_M1 = 6052,
- PseudoVLUXSEG4EI16_V_M2_M1_MASK = 6053,
- PseudoVLUXSEG4EI16_V_M2_M2 = 6054,
- PseudoVLUXSEG4EI16_V_M2_M2_MASK = 6055,
- PseudoVLUXSEG4EI16_V_M4_M2 = 6056,
- PseudoVLUXSEG4EI16_V_M4_M2_MASK = 6057,
- PseudoVLUXSEG4EI16_V_MF2_M1 = 6058,
- PseudoVLUXSEG4EI16_V_MF2_M1_MASK = 6059,
- PseudoVLUXSEG4EI16_V_MF2_M2 = 6060,
- PseudoVLUXSEG4EI16_V_MF2_M2_MASK = 6061,
- PseudoVLUXSEG4EI16_V_MF2_MF2 = 6062,
- PseudoVLUXSEG4EI16_V_MF2_MF2_MASK = 6063,
- PseudoVLUXSEG4EI16_V_MF2_MF4 = 6064,
- PseudoVLUXSEG4EI16_V_MF2_MF4_MASK = 6065,
- PseudoVLUXSEG4EI16_V_MF4_M1 = 6066,
- PseudoVLUXSEG4EI16_V_MF4_M1_MASK = 6067,
- PseudoVLUXSEG4EI16_V_MF4_MF2 = 6068,
- PseudoVLUXSEG4EI16_V_MF4_MF2_MASK = 6069,
- PseudoVLUXSEG4EI16_V_MF4_MF4 = 6070,
- PseudoVLUXSEG4EI16_V_MF4_MF4_MASK = 6071,
- PseudoVLUXSEG4EI16_V_MF4_MF8 = 6072,
- PseudoVLUXSEG4EI16_V_MF4_MF8_MASK = 6073,
- PseudoVLUXSEG4EI32_V_M1_M1 = 6074,
- PseudoVLUXSEG4EI32_V_M1_M1_MASK = 6075,
- PseudoVLUXSEG4EI32_V_M1_M2 = 6076,
- PseudoVLUXSEG4EI32_V_M1_M2_MASK = 6077,
- PseudoVLUXSEG4EI32_V_M1_MF2 = 6078,
- PseudoVLUXSEG4EI32_V_M1_MF2_MASK = 6079,
- PseudoVLUXSEG4EI32_V_M1_MF4 = 6080,
- PseudoVLUXSEG4EI32_V_M1_MF4_MASK = 6081,
- PseudoVLUXSEG4EI32_V_M2_M1 = 6082,
- PseudoVLUXSEG4EI32_V_M2_M1_MASK = 6083,
- PseudoVLUXSEG4EI32_V_M2_M2 = 6084,
- PseudoVLUXSEG4EI32_V_M2_M2_MASK = 6085,
- PseudoVLUXSEG4EI32_V_M2_MF2 = 6086,
- PseudoVLUXSEG4EI32_V_M2_MF2_MASK = 6087,
- PseudoVLUXSEG4EI32_V_M4_M1 = 6088,
- PseudoVLUXSEG4EI32_V_M4_M1_MASK = 6089,
- PseudoVLUXSEG4EI32_V_M4_M2 = 6090,
- PseudoVLUXSEG4EI32_V_M4_M2_MASK = 6091,
- PseudoVLUXSEG4EI32_V_M8_M2 = 6092,
- PseudoVLUXSEG4EI32_V_M8_M2_MASK = 6093,
- PseudoVLUXSEG4EI32_V_MF2_M1 = 6094,
- PseudoVLUXSEG4EI32_V_MF2_M1_MASK = 6095,
- PseudoVLUXSEG4EI32_V_MF2_MF2 = 6096,
- PseudoVLUXSEG4EI32_V_MF2_MF2_MASK = 6097,
- PseudoVLUXSEG4EI32_V_MF2_MF4 = 6098,
- PseudoVLUXSEG4EI32_V_MF2_MF4_MASK = 6099,
- PseudoVLUXSEG4EI32_V_MF2_MF8 = 6100,
- PseudoVLUXSEG4EI32_V_MF2_MF8_MASK = 6101,
- PseudoVLUXSEG4EI64_V_M1_M1 = 6102,
- PseudoVLUXSEG4EI64_V_M1_M1_MASK = 6103,
- PseudoVLUXSEG4EI64_V_M1_MF2 = 6104,
- PseudoVLUXSEG4EI64_V_M1_MF2_MASK = 6105,
- PseudoVLUXSEG4EI64_V_M1_MF4 = 6106,
- PseudoVLUXSEG4EI64_V_M1_MF4_MASK = 6107,
- PseudoVLUXSEG4EI64_V_M1_MF8 = 6108,
- PseudoVLUXSEG4EI64_V_M1_MF8_MASK = 6109,
- PseudoVLUXSEG4EI64_V_M2_M1 = 6110,
- PseudoVLUXSEG4EI64_V_M2_M1_MASK = 6111,
- PseudoVLUXSEG4EI64_V_M2_M2 = 6112,
- PseudoVLUXSEG4EI64_V_M2_M2_MASK = 6113,
- PseudoVLUXSEG4EI64_V_M2_MF2 = 6114,
- PseudoVLUXSEG4EI64_V_M2_MF2_MASK = 6115,
- PseudoVLUXSEG4EI64_V_M2_MF4 = 6116,
- PseudoVLUXSEG4EI64_V_M2_MF4_MASK = 6117,
- PseudoVLUXSEG4EI64_V_M4_M1 = 6118,
- PseudoVLUXSEG4EI64_V_M4_M1_MASK = 6119,
- PseudoVLUXSEG4EI64_V_M4_M2 = 6120,
- PseudoVLUXSEG4EI64_V_M4_M2_MASK = 6121,
- PseudoVLUXSEG4EI64_V_M4_MF2 = 6122,
- PseudoVLUXSEG4EI64_V_M4_MF2_MASK = 6123,
- PseudoVLUXSEG4EI64_V_M8_M1 = 6124,
- PseudoVLUXSEG4EI64_V_M8_M1_MASK = 6125,
- PseudoVLUXSEG4EI64_V_M8_M2 = 6126,
- PseudoVLUXSEG4EI64_V_M8_M2_MASK = 6127,
- PseudoVLUXSEG4EI8_V_M1_M1 = 6128,
- PseudoVLUXSEG4EI8_V_M1_M1_MASK = 6129,
- PseudoVLUXSEG4EI8_V_M1_M2 = 6130,
- PseudoVLUXSEG4EI8_V_M1_M2_MASK = 6131,
- PseudoVLUXSEG4EI8_V_M2_M2 = 6132,
- PseudoVLUXSEG4EI8_V_M2_M2_MASK = 6133,
- PseudoVLUXSEG4EI8_V_MF2_M1 = 6134,
- PseudoVLUXSEG4EI8_V_MF2_M1_MASK = 6135,
- PseudoVLUXSEG4EI8_V_MF2_M2 = 6136,
- PseudoVLUXSEG4EI8_V_MF2_M2_MASK = 6137,
- PseudoVLUXSEG4EI8_V_MF2_MF2 = 6138,
- PseudoVLUXSEG4EI8_V_MF2_MF2_MASK = 6139,
- PseudoVLUXSEG4EI8_V_MF4_M1 = 6140,
- PseudoVLUXSEG4EI8_V_MF4_M1_MASK = 6141,
- PseudoVLUXSEG4EI8_V_MF4_M2 = 6142,
- PseudoVLUXSEG4EI8_V_MF4_M2_MASK = 6143,
- PseudoVLUXSEG4EI8_V_MF4_MF2 = 6144,
- PseudoVLUXSEG4EI8_V_MF4_MF2_MASK = 6145,
- PseudoVLUXSEG4EI8_V_MF4_MF4 = 6146,
- PseudoVLUXSEG4EI8_V_MF4_MF4_MASK = 6147,
- PseudoVLUXSEG4EI8_V_MF8_M1 = 6148,
- PseudoVLUXSEG4EI8_V_MF8_M1_MASK = 6149,
- PseudoVLUXSEG4EI8_V_MF8_MF2 = 6150,
- PseudoVLUXSEG4EI8_V_MF8_MF2_MASK = 6151,
- PseudoVLUXSEG4EI8_V_MF8_MF4 = 6152,
- PseudoVLUXSEG4EI8_V_MF8_MF4_MASK = 6153,
- PseudoVLUXSEG4EI8_V_MF8_MF8 = 6154,
- PseudoVLUXSEG4EI8_V_MF8_MF8_MASK = 6155,
- PseudoVLUXSEG5EI16_V_M1_M1 = 6156,
- PseudoVLUXSEG5EI16_V_M1_M1_MASK = 6157,
- PseudoVLUXSEG5EI16_V_M1_MF2 = 6158,
- PseudoVLUXSEG5EI16_V_M1_MF2_MASK = 6159,
- PseudoVLUXSEG5EI16_V_M2_M1 = 6160,
- PseudoVLUXSEG5EI16_V_M2_M1_MASK = 6161,
- PseudoVLUXSEG5EI16_V_MF2_M1 = 6162,
- PseudoVLUXSEG5EI16_V_MF2_M1_MASK = 6163,
- PseudoVLUXSEG5EI16_V_MF2_MF2 = 6164,
- PseudoVLUXSEG5EI16_V_MF2_MF2_MASK = 6165,
- PseudoVLUXSEG5EI16_V_MF2_MF4 = 6166,
- PseudoVLUXSEG5EI16_V_MF2_MF4_MASK = 6167,
- PseudoVLUXSEG5EI16_V_MF4_M1 = 6168,
- PseudoVLUXSEG5EI16_V_MF4_M1_MASK = 6169,
- PseudoVLUXSEG5EI16_V_MF4_MF2 = 6170,
- PseudoVLUXSEG5EI16_V_MF4_MF2_MASK = 6171,
- PseudoVLUXSEG5EI16_V_MF4_MF4 = 6172,
- PseudoVLUXSEG5EI16_V_MF4_MF4_MASK = 6173,
- PseudoVLUXSEG5EI16_V_MF4_MF8 = 6174,
- PseudoVLUXSEG5EI16_V_MF4_MF8_MASK = 6175,
- PseudoVLUXSEG5EI32_V_M1_M1 = 6176,
- PseudoVLUXSEG5EI32_V_M1_M1_MASK = 6177,
- PseudoVLUXSEG5EI32_V_M1_MF2 = 6178,
- PseudoVLUXSEG5EI32_V_M1_MF2_MASK = 6179,
- PseudoVLUXSEG5EI32_V_M1_MF4 = 6180,
- PseudoVLUXSEG5EI32_V_M1_MF4_MASK = 6181,
- PseudoVLUXSEG5EI32_V_M2_M1 = 6182,
- PseudoVLUXSEG5EI32_V_M2_M1_MASK = 6183,
- PseudoVLUXSEG5EI32_V_M2_MF2 = 6184,
- PseudoVLUXSEG5EI32_V_M2_MF2_MASK = 6185,
- PseudoVLUXSEG5EI32_V_M4_M1 = 6186,
- PseudoVLUXSEG5EI32_V_M4_M1_MASK = 6187,
- PseudoVLUXSEG5EI32_V_MF2_M1 = 6188,
- PseudoVLUXSEG5EI32_V_MF2_M1_MASK = 6189,
- PseudoVLUXSEG5EI32_V_MF2_MF2 = 6190,
- PseudoVLUXSEG5EI32_V_MF2_MF2_MASK = 6191,
- PseudoVLUXSEG5EI32_V_MF2_MF4 = 6192,
- PseudoVLUXSEG5EI32_V_MF2_MF4_MASK = 6193,
- PseudoVLUXSEG5EI32_V_MF2_MF8 = 6194,
- PseudoVLUXSEG5EI32_V_MF2_MF8_MASK = 6195,
- PseudoVLUXSEG5EI64_V_M1_M1 = 6196,
- PseudoVLUXSEG5EI64_V_M1_M1_MASK = 6197,
- PseudoVLUXSEG5EI64_V_M1_MF2 = 6198,
- PseudoVLUXSEG5EI64_V_M1_MF2_MASK = 6199,
- PseudoVLUXSEG5EI64_V_M1_MF4 = 6200,
- PseudoVLUXSEG5EI64_V_M1_MF4_MASK = 6201,
- PseudoVLUXSEG5EI64_V_M1_MF8 = 6202,
- PseudoVLUXSEG5EI64_V_M1_MF8_MASK = 6203,
- PseudoVLUXSEG5EI64_V_M2_M1 = 6204,
- PseudoVLUXSEG5EI64_V_M2_M1_MASK = 6205,
- PseudoVLUXSEG5EI64_V_M2_MF2 = 6206,
- PseudoVLUXSEG5EI64_V_M2_MF2_MASK = 6207,
- PseudoVLUXSEG5EI64_V_M2_MF4 = 6208,
- PseudoVLUXSEG5EI64_V_M2_MF4_MASK = 6209,
- PseudoVLUXSEG5EI64_V_M4_M1 = 6210,
- PseudoVLUXSEG5EI64_V_M4_M1_MASK = 6211,
- PseudoVLUXSEG5EI64_V_M4_MF2 = 6212,
- PseudoVLUXSEG5EI64_V_M4_MF2_MASK = 6213,
- PseudoVLUXSEG5EI64_V_M8_M1 = 6214,
- PseudoVLUXSEG5EI64_V_M8_M1_MASK = 6215,
- PseudoVLUXSEG5EI8_V_M1_M1 = 6216,
- PseudoVLUXSEG5EI8_V_M1_M1_MASK = 6217,
- PseudoVLUXSEG5EI8_V_MF2_M1 = 6218,
- PseudoVLUXSEG5EI8_V_MF2_M1_MASK = 6219,
- PseudoVLUXSEG5EI8_V_MF2_MF2 = 6220,
- PseudoVLUXSEG5EI8_V_MF2_MF2_MASK = 6221,
- PseudoVLUXSEG5EI8_V_MF4_M1 = 6222,
- PseudoVLUXSEG5EI8_V_MF4_M1_MASK = 6223,
- PseudoVLUXSEG5EI8_V_MF4_MF2 = 6224,
- PseudoVLUXSEG5EI8_V_MF4_MF2_MASK = 6225,
- PseudoVLUXSEG5EI8_V_MF4_MF4 = 6226,
- PseudoVLUXSEG5EI8_V_MF4_MF4_MASK = 6227,
- PseudoVLUXSEG5EI8_V_MF8_M1 = 6228,
- PseudoVLUXSEG5EI8_V_MF8_M1_MASK = 6229,
- PseudoVLUXSEG5EI8_V_MF8_MF2 = 6230,
- PseudoVLUXSEG5EI8_V_MF8_MF2_MASK = 6231,
- PseudoVLUXSEG5EI8_V_MF8_MF4 = 6232,
- PseudoVLUXSEG5EI8_V_MF8_MF4_MASK = 6233,
- PseudoVLUXSEG5EI8_V_MF8_MF8 = 6234,
- PseudoVLUXSEG5EI8_V_MF8_MF8_MASK = 6235,
- PseudoVLUXSEG6EI16_V_M1_M1 = 6236,
- PseudoVLUXSEG6EI16_V_M1_M1_MASK = 6237,
- PseudoVLUXSEG6EI16_V_M1_MF2 = 6238,
- PseudoVLUXSEG6EI16_V_M1_MF2_MASK = 6239,
- PseudoVLUXSEG6EI16_V_M2_M1 = 6240,
- PseudoVLUXSEG6EI16_V_M2_M1_MASK = 6241,
- PseudoVLUXSEG6EI16_V_MF2_M1 = 6242,
- PseudoVLUXSEG6EI16_V_MF2_M1_MASK = 6243,
- PseudoVLUXSEG6EI16_V_MF2_MF2 = 6244,
- PseudoVLUXSEG6EI16_V_MF2_MF2_MASK = 6245,
- PseudoVLUXSEG6EI16_V_MF2_MF4 = 6246,
- PseudoVLUXSEG6EI16_V_MF2_MF4_MASK = 6247,
- PseudoVLUXSEG6EI16_V_MF4_M1 = 6248,
- PseudoVLUXSEG6EI16_V_MF4_M1_MASK = 6249,
- PseudoVLUXSEG6EI16_V_MF4_MF2 = 6250,
- PseudoVLUXSEG6EI16_V_MF4_MF2_MASK = 6251,
- PseudoVLUXSEG6EI16_V_MF4_MF4 = 6252,
- PseudoVLUXSEG6EI16_V_MF4_MF4_MASK = 6253,
- PseudoVLUXSEG6EI16_V_MF4_MF8 = 6254,
- PseudoVLUXSEG6EI16_V_MF4_MF8_MASK = 6255,
- PseudoVLUXSEG6EI32_V_M1_M1 = 6256,
- PseudoVLUXSEG6EI32_V_M1_M1_MASK = 6257,
- PseudoVLUXSEG6EI32_V_M1_MF2 = 6258,
- PseudoVLUXSEG6EI32_V_M1_MF2_MASK = 6259,
- PseudoVLUXSEG6EI32_V_M1_MF4 = 6260,
- PseudoVLUXSEG6EI32_V_M1_MF4_MASK = 6261,
- PseudoVLUXSEG6EI32_V_M2_M1 = 6262,
- PseudoVLUXSEG6EI32_V_M2_M1_MASK = 6263,
- PseudoVLUXSEG6EI32_V_M2_MF2 = 6264,
- PseudoVLUXSEG6EI32_V_M2_MF2_MASK = 6265,
- PseudoVLUXSEG6EI32_V_M4_M1 = 6266,
- PseudoVLUXSEG6EI32_V_M4_M1_MASK = 6267,
- PseudoVLUXSEG6EI32_V_MF2_M1 = 6268,
- PseudoVLUXSEG6EI32_V_MF2_M1_MASK = 6269,
- PseudoVLUXSEG6EI32_V_MF2_MF2 = 6270,
- PseudoVLUXSEG6EI32_V_MF2_MF2_MASK = 6271,
- PseudoVLUXSEG6EI32_V_MF2_MF4 = 6272,
- PseudoVLUXSEG6EI32_V_MF2_MF4_MASK = 6273,
- PseudoVLUXSEG6EI32_V_MF2_MF8 = 6274,
- PseudoVLUXSEG6EI32_V_MF2_MF8_MASK = 6275,
- PseudoVLUXSEG6EI64_V_M1_M1 = 6276,
- PseudoVLUXSEG6EI64_V_M1_M1_MASK = 6277,
- PseudoVLUXSEG6EI64_V_M1_MF2 = 6278,
- PseudoVLUXSEG6EI64_V_M1_MF2_MASK = 6279,
- PseudoVLUXSEG6EI64_V_M1_MF4 = 6280,
- PseudoVLUXSEG6EI64_V_M1_MF4_MASK = 6281,
- PseudoVLUXSEG6EI64_V_M1_MF8 = 6282,
- PseudoVLUXSEG6EI64_V_M1_MF8_MASK = 6283,
- PseudoVLUXSEG6EI64_V_M2_M1 = 6284,
- PseudoVLUXSEG6EI64_V_M2_M1_MASK = 6285,
- PseudoVLUXSEG6EI64_V_M2_MF2 = 6286,
- PseudoVLUXSEG6EI64_V_M2_MF2_MASK = 6287,
- PseudoVLUXSEG6EI64_V_M2_MF4 = 6288,
- PseudoVLUXSEG6EI64_V_M2_MF4_MASK = 6289,
- PseudoVLUXSEG6EI64_V_M4_M1 = 6290,
- PseudoVLUXSEG6EI64_V_M4_M1_MASK = 6291,
- PseudoVLUXSEG6EI64_V_M4_MF2 = 6292,
- PseudoVLUXSEG6EI64_V_M4_MF2_MASK = 6293,
- PseudoVLUXSEG6EI64_V_M8_M1 = 6294,
- PseudoVLUXSEG6EI64_V_M8_M1_MASK = 6295,
- PseudoVLUXSEG6EI8_V_M1_M1 = 6296,
- PseudoVLUXSEG6EI8_V_M1_M1_MASK = 6297,
- PseudoVLUXSEG6EI8_V_MF2_M1 = 6298,
- PseudoVLUXSEG6EI8_V_MF2_M1_MASK = 6299,
- PseudoVLUXSEG6EI8_V_MF2_MF2 = 6300,
- PseudoVLUXSEG6EI8_V_MF2_MF2_MASK = 6301,
- PseudoVLUXSEG6EI8_V_MF4_M1 = 6302,
- PseudoVLUXSEG6EI8_V_MF4_M1_MASK = 6303,
- PseudoVLUXSEG6EI8_V_MF4_MF2 = 6304,
- PseudoVLUXSEG6EI8_V_MF4_MF2_MASK = 6305,
- PseudoVLUXSEG6EI8_V_MF4_MF4 = 6306,
- PseudoVLUXSEG6EI8_V_MF4_MF4_MASK = 6307,
- PseudoVLUXSEG6EI8_V_MF8_M1 = 6308,
- PseudoVLUXSEG6EI8_V_MF8_M1_MASK = 6309,
- PseudoVLUXSEG6EI8_V_MF8_MF2 = 6310,
- PseudoVLUXSEG6EI8_V_MF8_MF2_MASK = 6311,
- PseudoVLUXSEG6EI8_V_MF8_MF4 = 6312,
- PseudoVLUXSEG6EI8_V_MF8_MF4_MASK = 6313,
- PseudoVLUXSEG6EI8_V_MF8_MF8 = 6314,
- PseudoVLUXSEG6EI8_V_MF8_MF8_MASK = 6315,
- PseudoVLUXSEG7EI16_V_M1_M1 = 6316,
- PseudoVLUXSEG7EI16_V_M1_M1_MASK = 6317,
- PseudoVLUXSEG7EI16_V_M1_MF2 = 6318,
- PseudoVLUXSEG7EI16_V_M1_MF2_MASK = 6319,
- PseudoVLUXSEG7EI16_V_M2_M1 = 6320,
- PseudoVLUXSEG7EI16_V_M2_M1_MASK = 6321,
- PseudoVLUXSEG7EI16_V_MF2_M1 = 6322,
- PseudoVLUXSEG7EI16_V_MF2_M1_MASK = 6323,
- PseudoVLUXSEG7EI16_V_MF2_MF2 = 6324,
- PseudoVLUXSEG7EI16_V_MF2_MF2_MASK = 6325,
- PseudoVLUXSEG7EI16_V_MF2_MF4 = 6326,
- PseudoVLUXSEG7EI16_V_MF2_MF4_MASK = 6327,
- PseudoVLUXSEG7EI16_V_MF4_M1 = 6328,
- PseudoVLUXSEG7EI16_V_MF4_M1_MASK = 6329,
- PseudoVLUXSEG7EI16_V_MF4_MF2 = 6330,
- PseudoVLUXSEG7EI16_V_MF4_MF2_MASK = 6331,
- PseudoVLUXSEG7EI16_V_MF4_MF4 = 6332,
- PseudoVLUXSEG7EI16_V_MF4_MF4_MASK = 6333,
- PseudoVLUXSEG7EI16_V_MF4_MF8 = 6334,
- PseudoVLUXSEG7EI16_V_MF4_MF8_MASK = 6335,
- PseudoVLUXSEG7EI32_V_M1_M1 = 6336,
- PseudoVLUXSEG7EI32_V_M1_M1_MASK = 6337,
- PseudoVLUXSEG7EI32_V_M1_MF2 = 6338,
- PseudoVLUXSEG7EI32_V_M1_MF2_MASK = 6339,
- PseudoVLUXSEG7EI32_V_M1_MF4 = 6340,
- PseudoVLUXSEG7EI32_V_M1_MF4_MASK = 6341,
- PseudoVLUXSEG7EI32_V_M2_M1 = 6342,
- PseudoVLUXSEG7EI32_V_M2_M1_MASK = 6343,
- PseudoVLUXSEG7EI32_V_M2_MF2 = 6344,
- PseudoVLUXSEG7EI32_V_M2_MF2_MASK = 6345,
- PseudoVLUXSEG7EI32_V_M4_M1 = 6346,
- PseudoVLUXSEG7EI32_V_M4_M1_MASK = 6347,
- PseudoVLUXSEG7EI32_V_MF2_M1 = 6348,
- PseudoVLUXSEG7EI32_V_MF2_M1_MASK = 6349,
- PseudoVLUXSEG7EI32_V_MF2_MF2 = 6350,
- PseudoVLUXSEG7EI32_V_MF2_MF2_MASK = 6351,
- PseudoVLUXSEG7EI32_V_MF2_MF4 = 6352,
- PseudoVLUXSEG7EI32_V_MF2_MF4_MASK = 6353,
- PseudoVLUXSEG7EI32_V_MF2_MF8 = 6354,
- PseudoVLUXSEG7EI32_V_MF2_MF8_MASK = 6355,
- PseudoVLUXSEG7EI64_V_M1_M1 = 6356,
- PseudoVLUXSEG7EI64_V_M1_M1_MASK = 6357,
- PseudoVLUXSEG7EI64_V_M1_MF2 = 6358,
- PseudoVLUXSEG7EI64_V_M1_MF2_MASK = 6359,
- PseudoVLUXSEG7EI64_V_M1_MF4 = 6360,
- PseudoVLUXSEG7EI64_V_M1_MF4_MASK = 6361,
- PseudoVLUXSEG7EI64_V_M1_MF8 = 6362,
- PseudoVLUXSEG7EI64_V_M1_MF8_MASK = 6363,
- PseudoVLUXSEG7EI64_V_M2_M1 = 6364,
- PseudoVLUXSEG7EI64_V_M2_M1_MASK = 6365,
- PseudoVLUXSEG7EI64_V_M2_MF2 = 6366,
- PseudoVLUXSEG7EI64_V_M2_MF2_MASK = 6367,
- PseudoVLUXSEG7EI64_V_M2_MF4 = 6368,
- PseudoVLUXSEG7EI64_V_M2_MF4_MASK = 6369,
- PseudoVLUXSEG7EI64_V_M4_M1 = 6370,
- PseudoVLUXSEG7EI64_V_M4_M1_MASK = 6371,
- PseudoVLUXSEG7EI64_V_M4_MF2 = 6372,
- PseudoVLUXSEG7EI64_V_M4_MF2_MASK = 6373,
- PseudoVLUXSEG7EI64_V_M8_M1 = 6374,
- PseudoVLUXSEG7EI64_V_M8_M1_MASK = 6375,
- PseudoVLUXSEG7EI8_V_M1_M1 = 6376,
- PseudoVLUXSEG7EI8_V_M1_M1_MASK = 6377,
- PseudoVLUXSEG7EI8_V_MF2_M1 = 6378,
- PseudoVLUXSEG7EI8_V_MF2_M1_MASK = 6379,
- PseudoVLUXSEG7EI8_V_MF2_MF2 = 6380,
- PseudoVLUXSEG7EI8_V_MF2_MF2_MASK = 6381,
- PseudoVLUXSEG7EI8_V_MF4_M1 = 6382,
- PseudoVLUXSEG7EI8_V_MF4_M1_MASK = 6383,
- PseudoVLUXSEG7EI8_V_MF4_MF2 = 6384,
- PseudoVLUXSEG7EI8_V_MF4_MF2_MASK = 6385,
- PseudoVLUXSEG7EI8_V_MF4_MF4 = 6386,
- PseudoVLUXSEG7EI8_V_MF4_MF4_MASK = 6387,
- PseudoVLUXSEG7EI8_V_MF8_M1 = 6388,
- PseudoVLUXSEG7EI8_V_MF8_M1_MASK = 6389,
- PseudoVLUXSEG7EI8_V_MF8_MF2 = 6390,
- PseudoVLUXSEG7EI8_V_MF8_MF2_MASK = 6391,
- PseudoVLUXSEG7EI8_V_MF8_MF4 = 6392,
- PseudoVLUXSEG7EI8_V_MF8_MF4_MASK = 6393,
- PseudoVLUXSEG7EI8_V_MF8_MF8 = 6394,
- PseudoVLUXSEG7EI8_V_MF8_MF8_MASK = 6395,
- PseudoVLUXSEG8EI16_V_M1_M1 = 6396,
- PseudoVLUXSEG8EI16_V_M1_M1_MASK = 6397,
- PseudoVLUXSEG8EI16_V_M1_MF2 = 6398,
- PseudoVLUXSEG8EI16_V_M1_MF2_MASK = 6399,
- PseudoVLUXSEG8EI16_V_M2_M1 = 6400,
- PseudoVLUXSEG8EI16_V_M2_M1_MASK = 6401,
- PseudoVLUXSEG8EI16_V_MF2_M1 = 6402,
- PseudoVLUXSEG8EI16_V_MF2_M1_MASK = 6403,
- PseudoVLUXSEG8EI16_V_MF2_MF2 = 6404,
- PseudoVLUXSEG8EI16_V_MF2_MF2_MASK = 6405,
- PseudoVLUXSEG8EI16_V_MF2_MF4 = 6406,
- PseudoVLUXSEG8EI16_V_MF2_MF4_MASK = 6407,
- PseudoVLUXSEG8EI16_V_MF4_M1 = 6408,
- PseudoVLUXSEG8EI16_V_MF4_M1_MASK = 6409,
- PseudoVLUXSEG8EI16_V_MF4_MF2 = 6410,
- PseudoVLUXSEG8EI16_V_MF4_MF2_MASK = 6411,
- PseudoVLUXSEG8EI16_V_MF4_MF4 = 6412,
- PseudoVLUXSEG8EI16_V_MF4_MF4_MASK = 6413,
- PseudoVLUXSEG8EI16_V_MF4_MF8 = 6414,
- PseudoVLUXSEG8EI16_V_MF4_MF8_MASK = 6415,
- PseudoVLUXSEG8EI32_V_M1_M1 = 6416,
- PseudoVLUXSEG8EI32_V_M1_M1_MASK = 6417,
- PseudoVLUXSEG8EI32_V_M1_MF2 = 6418,
- PseudoVLUXSEG8EI32_V_M1_MF2_MASK = 6419,
- PseudoVLUXSEG8EI32_V_M1_MF4 = 6420,
- PseudoVLUXSEG8EI32_V_M1_MF4_MASK = 6421,
- PseudoVLUXSEG8EI32_V_M2_M1 = 6422,
- PseudoVLUXSEG8EI32_V_M2_M1_MASK = 6423,
- PseudoVLUXSEG8EI32_V_M2_MF2 = 6424,
- PseudoVLUXSEG8EI32_V_M2_MF2_MASK = 6425,
- PseudoVLUXSEG8EI32_V_M4_M1 = 6426,
- PseudoVLUXSEG8EI32_V_M4_M1_MASK = 6427,
- PseudoVLUXSEG8EI32_V_MF2_M1 = 6428,
- PseudoVLUXSEG8EI32_V_MF2_M1_MASK = 6429,
- PseudoVLUXSEG8EI32_V_MF2_MF2 = 6430,
- PseudoVLUXSEG8EI32_V_MF2_MF2_MASK = 6431,
- PseudoVLUXSEG8EI32_V_MF2_MF4 = 6432,
- PseudoVLUXSEG8EI32_V_MF2_MF4_MASK = 6433,
- PseudoVLUXSEG8EI32_V_MF2_MF8 = 6434,
- PseudoVLUXSEG8EI32_V_MF2_MF8_MASK = 6435,
- PseudoVLUXSEG8EI64_V_M1_M1 = 6436,
- PseudoVLUXSEG8EI64_V_M1_M1_MASK = 6437,
- PseudoVLUXSEG8EI64_V_M1_MF2 = 6438,
- PseudoVLUXSEG8EI64_V_M1_MF2_MASK = 6439,
- PseudoVLUXSEG8EI64_V_M1_MF4 = 6440,
- PseudoVLUXSEG8EI64_V_M1_MF4_MASK = 6441,
- PseudoVLUXSEG8EI64_V_M1_MF8 = 6442,
- PseudoVLUXSEG8EI64_V_M1_MF8_MASK = 6443,
- PseudoVLUXSEG8EI64_V_M2_M1 = 6444,
- PseudoVLUXSEG8EI64_V_M2_M1_MASK = 6445,
- PseudoVLUXSEG8EI64_V_M2_MF2 = 6446,
- PseudoVLUXSEG8EI64_V_M2_MF2_MASK = 6447,
- PseudoVLUXSEG8EI64_V_M2_MF4 = 6448,
- PseudoVLUXSEG8EI64_V_M2_MF4_MASK = 6449,
- PseudoVLUXSEG8EI64_V_M4_M1 = 6450,
- PseudoVLUXSEG8EI64_V_M4_M1_MASK = 6451,
- PseudoVLUXSEG8EI64_V_M4_MF2 = 6452,
- PseudoVLUXSEG8EI64_V_M4_MF2_MASK = 6453,
- PseudoVLUXSEG8EI64_V_M8_M1 = 6454,
- PseudoVLUXSEG8EI64_V_M8_M1_MASK = 6455,
- PseudoVLUXSEG8EI8_V_M1_M1 = 6456,
- PseudoVLUXSEG8EI8_V_M1_M1_MASK = 6457,
- PseudoVLUXSEG8EI8_V_MF2_M1 = 6458,
- PseudoVLUXSEG8EI8_V_MF2_M1_MASK = 6459,
- PseudoVLUXSEG8EI8_V_MF2_MF2 = 6460,
- PseudoVLUXSEG8EI8_V_MF2_MF2_MASK = 6461,
- PseudoVLUXSEG8EI8_V_MF4_M1 = 6462,
- PseudoVLUXSEG8EI8_V_MF4_M1_MASK = 6463,
- PseudoVLUXSEG8EI8_V_MF4_MF2 = 6464,
- PseudoVLUXSEG8EI8_V_MF4_MF2_MASK = 6465,
- PseudoVLUXSEG8EI8_V_MF4_MF4 = 6466,
- PseudoVLUXSEG8EI8_V_MF4_MF4_MASK = 6467,
- PseudoVLUXSEG8EI8_V_MF8_M1 = 6468,
- PseudoVLUXSEG8EI8_V_MF8_M1_MASK = 6469,
- PseudoVLUXSEG8EI8_V_MF8_MF2 = 6470,
- PseudoVLUXSEG8EI8_V_MF8_MF2_MASK = 6471,
- PseudoVLUXSEG8EI8_V_MF8_MF4 = 6472,
- PseudoVLUXSEG8EI8_V_MF8_MF4_MASK = 6473,
- PseudoVLUXSEG8EI8_V_MF8_MF8 = 6474,
- PseudoVLUXSEG8EI8_V_MF8_MF8_MASK = 6475,
- PseudoVMACC_VV_M1 = 6476,
- PseudoVMACC_VV_M1_MASK = 6477,
- PseudoVMACC_VV_M2 = 6478,
- PseudoVMACC_VV_M2_MASK = 6479,
- PseudoVMACC_VV_M4 = 6480,
- PseudoVMACC_VV_M4_MASK = 6481,
- PseudoVMACC_VV_M8 = 6482,
- PseudoVMACC_VV_M8_MASK = 6483,
- PseudoVMACC_VV_MF2 = 6484,
- PseudoVMACC_VV_MF2_MASK = 6485,
- PseudoVMACC_VV_MF4 = 6486,
- PseudoVMACC_VV_MF4_MASK = 6487,
- PseudoVMACC_VV_MF8 = 6488,
- PseudoVMACC_VV_MF8_MASK = 6489,
- PseudoVMACC_VX_M1 = 6490,
- PseudoVMACC_VX_M1_MASK = 6491,
- PseudoVMACC_VX_M2 = 6492,
- PseudoVMACC_VX_M2_MASK = 6493,
- PseudoVMACC_VX_M4 = 6494,
- PseudoVMACC_VX_M4_MASK = 6495,
- PseudoVMACC_VX_M8 = 6496,
- PseudoVMACC_VX_M8_MASK = 6497,
- PseudoVMACC_VX_MF2 = 6498,
- PseudoVMACC_VX_MF2_MASK = 6499,
- PseudoVMACC_VX_MF4 = 6500,
- PseudoVMACC_VX_MF4_MASK = 6501,
- PseudoVMACC_VX_MF8 = 6502,
- PseudoVMACC_VX_MF8_MASK = 6503,
- PseudoVMADC_VIM_M1 = 6504,
- PseudoVMADC_VIM_M2 = 6505,
- PseudoVMADC_VIM_M4 = 6506,
- PseudoVMADC_VIM_M8 = 6507,
- PseudoVMADC_VIM_MF2 = 6508,
- PseudoVMADC_VIM_MF4 = 6509,
- PseudoVMADC_VIM_MF8 = 6510,
- PseudoVMADC_VI_M1 = 6511,
- PseudoVMADC_VI_M2 = 6512,
- PseudoVMADC_VI_M4 = 6513,
- PseudoVMADC_VI_M8 = 6514,
- PseudoVMADC_VI_MF2 = 6515,
- PseudoVMADC_VI_MF4 = 6516,
- PseudoVMADC_VI_MF8 = 6517,
- PseudoVMADC_VVM_M1 = 6518,
- PseudoVMADC_VVM_M2 = 6519,
- PseudoVMADC_VVM_M4 = 6520,
- PseudoVMADC_VVM_M8 = 6521,
- PseudoVMADC_VVM_MF2 = 6522,
- PseudoVMADC_VVM_MF4 = 6523,
- PseudoVMADC_VVM_MF8 = 6524,
- PseudoVMADC_VV_M1 = 6525,
- PseudoVMADC_VV_M2 = 6526,
- PseudoVMADC_VV_M4 = 6527,
- PseudoVMADC_VV_M8 = 6528,
- PseudoVMADC_VV_MF2 = 6529,
- PseudoVMADC_VV_MF4 = 6530,
- PseudoVMADC_VV_MF8 = 6531,
- PseudoVMADC_VXM_M1 = 6532,
- PseudoVMADC_VXM_M2 = 6533,
- PseudoVMADC_VXM_M4 = 6534,
- PseudoVMADC_VXM_M8 = 6535,
- PseudoVMADC_VXM_MF2 = 6536,
- PseudoVMADC_VXM_MF4 = 6537,
- PseudoVMADC_VXM_MF8 = 6538,
- PseudoVMADC_VX_M1 = 6539,
- PseudoVMADC_VX_M2 = 6540,
- PseudoVMADC_VX_M4 = 6541,
- PseudoVMADC_VX_M8 = 6542,
- PseudoVMADC_VX_MF2 = 6543,
- PseudoVMADC_VX_MF4 = 6544,
- PseudoVMADC_VX_MF8 = 6545,
- PseudoVMADD_VV_M1 = 6546,
- PseudoVMADD_VV_M1_MASK = 6547,
- PseudoVMADD_VV_M2 = 6548,
- PseudoVMADD_VV_M2_MASK = 6549,
- PseudoVMADD_VV_M4 = 6550,
- PseudoVMADD_VV_M4_MASK = 6551,
- PseudoVMADD_VV_M8 = 6552,
- PseudoVMADD_VV_M8_MASK = 6553,
- PseudoVMADD_VV_MF2 = 6554,
- PseudoVMADD_VV_MF2_MASK = 6555,
- PseudoVMADD_VV_MF4 = 6556,
- PseudoVMADD_VV_MF4_MASK = 6557,
- PseudoVMADD_VV_MF8 = 6558,
- PseudoVMADD_VV_MF8_MASK = 6559,
- PseudoVMADD_VX_M1 = 6560,
- PseudoVMADD_VX_M1_MASK = 6561,
- PseudoVMADD_VX_M2 = 6562,
- PseudoVMADD_VX_M2_MASK = 6563,
- PseudoVMADD_VX_M4 = 6564,
- PseudoVMADD_VX_M4_MASK = 6565,
- PseudoVMADD_VX_M8 = 6566,
- PseudoVMADD_VX_M8_MASK = 6567,
- PseudoVMADD_VX_MF2 = 6568,
- PseudoVMADD_VX_MF2_MASK = 6569,
- PseudoVMADD_VX_MF4 = 6570,
- PseudoVMADD_VX_MF4_MASK = 6571,
- PseudoVMADD_VX_MF8 = 6572,
- PseudoVMADD_VX_MF8_MASK = 6573,
- PseudoVMANDN_MM_B1 = 6574,
- PseudoVMANDN_MM_B16 = 6575,
- PseudoVMANDN_MM_B2 = 6576,
- PseudoVMANDN_MM_B32 = 6577,
- PseudoVMANDN_MM_B4 = 6578,
- PseudoVMANDN_MM_B64 = 6579,
- PseudoVMANDN_MM_B8 = 6580,
- PseudoVMAND_MM_B1 = 6581,
- PseudoVMAND_MM_B16 = 6582,
- PseudoVMAND_MM_B2 = 6583,
- PseudoVMAND_MM_B32 = 6584,
- PseudoVMAND_MM_B4 = 6585,
- PseudoVMAND_MM_B64 = 6586,
- PseudoVMAND_MM_B8 = 6587,
- PseudoVMAXU_VV_M1 = 6588,
- PseudoVMAXU_VV_M1_MASK = 6589,
- PseudoVMAXU_VV_M2 = 6590,
- PseudoVMAXU_VV_M2_MASK = 6591,
- PseudoVMAXU_VV_M4 = 6592,
- PseudoVMAXU_VV_M4_MASK = 6593,
- PseudoVMAXU_VV_M8 = 6594,
- PseudoVMAXU_VV_M8_MASK = 6595,
- PseudoVMAXU_VV_MF2 = 6596,
- PseudoVMAXU_VV_MF2_MASK = 6597,
- PseudoVMAXU_VV_MF4 = 6598,
- PseudoVMAXU_VV_MF4_MASK = 6599,
- PseudoVMAXU_VV_MF8 = 6600,
- PseudoVMAXU_VV_MF8_MASK = 6601,
- PseudoVMAXU_VX_M1 = 6602,
- PseudoVMAXU_VX_M1_MASK = 6603,
- PseudoVMAXU_VX_M2 = 6604,
- PseudoVMAXU_VX_M2_MASK = 6605,
- PseudoVMAXU_VX_M4 = 6606,
- PseudoVMAXU_VX_M4_MASK = 6607,
- PseudoVMAXU_VX_M8 = 6608,
- PseudoVMAXU_VX_M8_MASK = 6609,
- PseudoVMAXU_VX_MF2 = 6610,
- PseudoVMAXU_VX_MF2_MASK = 6611,
- PseudoVMAXU_VX_MF4 = 6612,
- PseudoVMAXU_VX_MF4_MASK = 6613,
- PseudoVMAXU_VX_MF8 = 6614,
- PseudoVMAXU_VX_MF8_MASK = 6615,
- PseudoVMAX_VV_M1 = 6616,
- PseudoVMAX_VV_M1_MASK = 6617,
- PseudoVMAX_VV_M2 = 6618,
- PseudoVMAX_VV_M2_MASK = 6619,
- PseudoVMAX_VV_M4 = 6620,
- PseudoVMAX_VV_M4_MASK = 6621,
- PseudoVMAX_VV_M8 = 6622,
- PseudoVMAX_VV_M8_MASK = 6623,
- PseudoVMAX_VV_MF2 = 6624,
- PseudoVMAX_VV_MF2_MASK = 6625,
- PseudoVMAX_VV_MF4 = 6626,
- PseudoVMAX_VV_MF4_MASK = 6627,
- PseudoVMAX_VV_MF8 = 6628,
- PseudoVMAX_VV_MF8_MASK = 6629,
- PseudoVMAX_VX_M1 = 6630,
- PseudoVMAX_VX_M1_MASK = 6631,
- PseudoVMAX_VX_M2 = 6632,
- PseudoVMAX_VX_M2_MASK = 6633,
- PseudoVMAX_VX_M4 = 6634,
- PseudoVMAX_VX_M4_MASK = 6635,
- PseudoVMAX_VX_M8 = 6636,
- PseudoVMAX_VX_M8_MASK = 6637,
- PseudoVMAX_VX_MF2 = 6638,
- PseudoVMAX_VX_MF2_MASK = 6639,
- PseudoVMAX_VX_MF4 = 6640,
- PseudoVMAX_VX_MF4_MASK = 6641,
- PseudoVMAX_VX_MF8 = 6642,
- PseudoVMAX_VX_MF8_MASK = 6643,
- PseudoVMCLR_M_B1 = 6644,
- PseudoVMCLR_M_B16 = 6645,
- PseudoVMCLR_M_B2 = 6646,
- PseudoVMCLR_M_B32 = 6647,
- PseudoVMCLR_M_B4 = 6648,
- PseudoVMCLR_M_B64 = 6649,
- PseudoVMCLR_M_B8 = 6650,
- PseudoVMERGE_VIM_M1 = 6651,
- PseudoVMERGE_VIM_M2 = 6652,
- PseudoVMERGE_VIM_M4 = 6653,
- PseudoVMERGE_VIM_M8 = 6654,
- PseudoVMERGE_VIM_MF2 = 6655,
- PseudoVMERGE_VIM_MF4 = 6656,
- PseudoVMERGE_VIM_MF8 = 6657,
- PseudoVMERGE_VVM_M1 = 6658,
- PseudoVMERGE_VVM_M2 = 6659,
- PseudoVMERGE_VVM_M4 = 6660,
- PseudoVMERGE_VVM_M8 = 6661,
- PseudoVMERGE_VVM_MF2 = 6662,
- PseudoVMERGE_VVM_MF4 = 6663,
- PseudoVMERGE_VVM_MF8 = 6664,
- PseudoVMERGE_VXM_M1 = 6665,
- PseudoVMERGE_VXM_M2 = 6666,
- PseudoVMERGE_VXM_M4 = 6667,
- PseudoVMERGE_VXM_M8 = 6668,
- PseudoVMERGE_VXM_MF2 = 6669,
- PseudoVMERGE_VXM_MF4 = 6670,
- PseudoVMERGE_VXM_MF8 = 6671,
- PseudoVMFEQ_VFPR16_M1 = 6672,
- PseudoVMFEQ_VFPR16_M1_MASK = 6673,
- PseudoVMFEQ_VFPR16_M2 = 6674,
- PseudoVMFEQ_VFPR16_M2_MASK = 6675,
- PseudoVMFEQ_VFPR16_M4 = 6676,
- PseudoVMFEQ_VFPR16_M4_MASK = 6677,
- PseudoVMFEQ_VFPR16_M8 = 6678,
- PseudoVMFEQ_VFPR16_M8_MASK = 6679,
- PseudoVMFEQ_VFPR16_MF2 = 6680,
- PseudoVMFEQ_VFPR16_MF2_MASK = 6681,
- PseudoVMFEQ_VFPR16_MF4 = 6682,
- PseudoVMFEQ_VFPR16_MF4_MASK = 6683,
- PseudoVMFEQ_VFPR32_M1 = 6684,
- PseudoVMFEQ_VFPR32_M1_MASK = 6685,
- PseudoVMFEQ_VFPR32_M2 = 6686,
- PseudoVMFEQ_VFPR32_M2_MASK = 6687,
- PseudoVMFEQ_VFPR32_M4 = 6688,
- PseudoVMFEQ_VFPR32_M4_MASK = 6689,
- PseudoVMFEQ_VFPR32_M8 = 6690,
- PseudoVMFEQ_VFPR32_M8_MASK = 6691,
- PseudoVMFEQ_VFPR32_MF2 = 6692,
- PseudoVMFEQ_VFPR32_MF2_MASK = 6693,
- PseudoVMFEQ_VFPR64_M1 = 6694,
- PseudoVMFEQ_VFPR64_M1_MASK = 6695,
- PseudoVMFEQ_VFPR64_M2 = 6696,
- PseudoVMFEQ_VFPR64_M2_MASK = 6697,
- PseudoVMFEQ_VFPR64_M4 = 6698,
- PseudoVMFEQ_VFPR64_M4_MASK = 6699,
- PseudoVMFEQ_VFPR64_M8 = 6700,
- PseudoVMFEQ_VFPR64_M8_MASK = 6701,
- PseudoVMFEQ_VV_M1 = 6702,
- PseudoVMFEQ_VV_M1_MASK = 6703,
- PseudoVMFEQ_VV_M2 = 6704,
- PseudoVMFEQ_VV_M2_MASK = 6705,
- PseudoVMFEQ_VV_M4 = 6706,
- PseudoVMFEQ_VV_M4_MASK = 6707,
- PseudoVMFEQ_VV_M8 = 6708,
- PseudoVMFEQ_VV_M8_MASK = 6709,
- PseudoVMFEQ_VV_MF2 = 6710,
- PseudoVMFEQ_VV_MF2_MASK = 6711,
- PseudoVMFEQ_VV_MF4 = 6712,
- PseudoVMFEQ_VV_MF4_MASK = 6713,
- PseudoVMFGE_VFPR16_M1 = 6714,
- PseudoVMFGE_VFPR16_M1_MASK = 6715,
- PseudoVMFGE_VFPR16_M2 = 6716,
- PseudoVMFGE_VFPR16_M2_MASK = 6717,
- PseudoVMFGE_VFPR16_M4 = 6718,
- PseudoVMFGE_VFPR16_M4_MASK = 6719,
- PseudoVMFGE_VFPR16_M8 = 6720,
- PseudoVMFGE_VFPR16_M8_MASK = 6721,
- PseudoVMFGE_VFPR16_MF2 = 6722,
- PseudoVMFGE_VFPR16_MF2_MASK = 6723,
- PseudoVMFGE_VFPR16_MF4 = 6724,
- PseudoVMFGE_VFPR16_MF4_MASK = 6725,
- PseudoVMFGE_VFPR32_M1 = 6726,
- PseudoVMFGE_VFPR32_M1_MASK = 6727,
- PseudoVMFGE_VFPR32_M2 = 6728,
- PseudoVMFGE_VFPR32_M2_MASK = 6729,
- PseudoVMFGE_VFPR32_M4 = 6730,
- PseudoVMFGE_VFPR32_M4_MASK = 6731,
- PseudoVMFGE_VFPR32_M8 = 6732,
- PseudoVMFGE_VFPR32_M8_MASK = 6733,
- PseudoVMFGE_VFPR32_MF2 = 6734,
- PseudoVMFGE_VFPR32_MF2_MASK = 6735,
- PseudoVMFGE_VFPR64_M1 = 6736,
- PseudoVMFGE_VFPR64_M1_MASK = 6737,
- PseudoVMFGE_VFPR64_M2 = 6738,
- PseudoVMFGE_VFPR64_M2_MASK = 6739,
- PseudoVMFGE_VFPR64_M4 = 6740,
- PseudoVMFGE_VFPR64_M4_MASK = 6741,
- PseudoVMFGE_VFPR64_M8 = 6742,
- PseudoVMFGE_VFPR64_M8_MASK = 6743,
- PseudoVMFGT_VFPR16_M1 = 6744,
- PseudoVMFGT_VFPR16_M1_MASK = 6745,
- PseudoVMFGT_VFPR16_M2 = 6746,
- PseudoVMFGT_VFPR16_M2_MASK = 6747,
- PseudoVMFGT_VFPR16_M4 = 6748,
- PseudoVMFGT_VFPR16_M4_MASK = 6749,
- PseudoVMFGT_VFPR16_M8 = 6750,
- PseudoVMFGT_VFPR16_M8_MASK = 6751,
- PseudoVMFGT_VFPR16_MF2 = 6752,
- PseudoVMFGT_VFPR16_MF2_MASK = 6753,
- PseudoVMFGT_VFPR16_MF4 = 6754,
- PseudoVMFGT_VFPR16_MF4_MASK = 6755,
- PseudoVMFGT_VFPR32_M1 = 6756,
- PseudoVMFGT_VFPR32_M1_MASK = 6757,
- PseudoVMFGT_VFPR32_M2 = 6758,
- PseudoVMFGT_VFPR32_M2_MASK = 6759,
- PseudoVMFGT_VFPR32_M4 = 6760,
- PseudoVMFGT_VFPR32_M4_MASK = 6761,
- PseudoVMFGT_VFPR32_M8 = 6762,
- PseudoVMFGT_VFPR32_M8_MASK = 6763,
- PseudoVMFGT_VFPR32_MF2 = 6764,
- PseudoVMFGT_VFPR32_MF2_MASK = 6765,
- PseudoVMFGT_VFPR64_M1 = 6766,
- PseudoVMFGT_VFPR64_M1_MASK = 6767,
- PseudoVMFGT_VFPR64_M2 = 6768,
- PseudoVMFGT_VFPR64_M2_MASK = 6769,
- PseudoVMFGT_VFPR64_M4 = 6770,
- PseudoVMFGT_VFPR64_M4_MASK = 6771,
- PseudoVMFGT_VFPR64_M8 = 6772,
- PseudoVMFGT_VFPR64_M8_MASK = 6773,
- PseudoVMFLE_VFPR16_M1 = 6774,
- PseudoVMFLE_VFPR16_M1_MASK = 6775,
- PseudoVMFLE_VFPR16_M2 = 6776,
- PseudoVMFLE_VFPR16_M2_MASK = 6777,
- PseudoVMFLE_VFPR16_M4 = 6778,
- PseudoVMFLE_VFPR16_M4_MASK = 6779,
- PseudoVMFLE_VFPR16_M8 = 6780,
- PseudoVMFLE_VFPR16_M8_MASK = 6781,
- PseudoVMFLE_VFPR16_MF2 = 6782,
- PseudoVMFLE_VFPR16_MF2_MASK = 6783,
- PseudoVMFLE_VFPR16_MF4 = 6784,
- PseudoVMFLE_VFPR16_MF4_MASK = 6785,
- PseudoVMFLE_VFPR32_M1 = 6786,
- PseudoVMFLE_VFPR32_M1_MASK = 6787,
- PseudoVMFLE_VFPR32_M2 = 6788,
- PseudoVMFLE_VFPR32_M2_MASK = 6789,
- PseudoVMFLE_VFPR32_M4 = 6790,
- PseudoVMFLE_VFPR32_M4_MASK = 6791,
- PseudoVMFLE_VFPR32_M8 = 6792,
- PseudoVMFLE_VFPR32_M8_MASK = 6793,
- PseudoVMFLE_VFPR32_MF2 = 6794,
- PseudoVMFLE_VFPR32_MF2_MASK = 6795,
- PseudoVMFLE_VFPR64_M1 = 6796,
- PseudoVMFLE_VFPR64_M1_MASK = 6797,
- PseudoVMFLE_VFPR64_M2 = 6798,
- PseudoVMFLE_VFPR64_M2_MASK = 6799,
- PseudoVMFLE_VFPR64_M4 = 6800,
- PseudoVMFLE_VFPR64_M4_MASK = 6801,
- PseudoVMFLE_VFPR64_M8 = 6802,
- PseudoVMFLE_VFPR64_M8_MASK = 6803,
- PseudoVMFLE_VV_M1 = 6804,
- PseudoVMFLE_VV_M1_MASK = 6805,
- PseudoVMFLE_VV_M2 = 6806,
- PseudoVMFLE_VV_M2_MASK = 6807,
- PseudoVMFLE_VV_M4 = 6808,
- PseudoVMFLE_VV_M4_MASK = 6809,
- PseudoVMFLE_VV_M8 = 6810,
- PseudoVMFLE_VV_M8_MASK = 6811,
- PseudoVMFLE_VV_MF2 = 6812,
- PseudoVMFLE_VV_MF2_MASK = 6813,
- PseudoVMFLE_VV_MF4 = 6814,
- PseudoVMFLE_VV_MF4_MASK = 6815,
- PseudoVMFLT_VFPR16_M1 = 6816,
- PseudoVMFLT_VFPR16_M1_MASK = 6817,
- PseudoVMFLT_VFPR16_M2 = 6818,
- PseudoVMFLT_VFPR16_M2_MASK = 6819,
- PseudoVMFLT_VFPR16_M4 = 6820,
- PseudoVMFLT_VFPR16_M4_MASK = 6821,
- PseudoVMFLT_VFPR16_M8 = 6822,
- PseudoVMFLT_VFPR16_M8_MASK = 6823,
- PseudoVMFLT_VFPR16_MF2 = 6824,
- PseudoVMFLT_VFPR16_MF2_MASK = 6825,
- PseudoVMFLT_VFPR16_MF4 = 6826,
- PseudoVMFLT_VFPR16_MF4_MASK = 6827,
- PseudoVMFLT_VFPR32_M1 = 6828,
- PseudoVMFLT_VFPR32_M1_MASK = 6829,
- PseudoVMFLT_VFPR32_M2 = 6830,
- PseudoVMFLT_VFPR32_M2_MASK = 6831,
- PseudoVMFLT_VFPR32_M4 = 6832,
- PseudoVMFLT_VFPR32_M4_MASK = 6833,
- PseudoVMFLT_VFPR32_M8 = 6834,
- PseudoVMFLT_VFPR32_M8_MASK = 6835,
- PseudoVMFLT_VFPR32_MF2 = 6836,
- PseudoVMFLT_VFPR32_MF2_MASK = 6837,
- PseudoVMFLT_VFPR64_M1 = 6838,
- PseudoVMFLT_VFPR64_M1_MASK = 6839,
- PseudoVMFLT_VFPR64_M2 = 6840,
- PseudoVMFLT_VFPR64_M2_MASK = 6841,
- PseudoVMFLT_VFPR64_M4 = 6842,
- PseudoVMFLT_VFPR64_M4_MASK = 6843,
- PseudoVMFLT_VFPR64_M8 = 6844,
- PseudoVMFLT_VFPR64_M8_MASK = 6845,
- PseudoVMFLT_VV_M1 = 6846,
- PseudoVMFLT_VV_M1_MASK = 6847,
- PseudoVMFLT_VV_M2 = 6848,
- PseudoVMFLT_VV_M2_MASK = 6849,
- PseudoVMFLT_VV_M4 = 6850,
- PseudoVMFLT_VV_M4_MASK = 6851,
- PseudoVMFLT_VV_M8 = 6852,
- PseudoVMFLT_VV_M8_MASK = 6853,
- PseudoVMFLT_VV_MF2 = 6854,
- PseudoVMFLT_VV_MF2_MASK = 6855,
- PseudoVMFLT_VV_MF4 = 6856,
- PseudoVMFLT_VV_MF4_MASK = 6857,
- PseudoVMFNE_VFPR16_M1 = 6858,
- PseudoVMFNE_VFPR16_M1_MASK = 6859,
- PseudoVMFNE_VFPR16_M2 = 6860,
- PseudoVMFNE_VFPR16_M2_MASK = 6861,
- PseudoVMFNE_VFPR16_M4 = 6862,
- PseudoVMFNE_VFPR16_M4_MASK = 6863,
- PseudoVMFNE_VFPR16_M8 = 6864,
- PseudoVMFNE_VFPR16_M8_MASK = 6865,
- PseudoVMFNE_VFPR16_MF2 = 6866,
- PseudoVMFNE_VFPR16_MF2_MASK = 6867,
- PseudoVMFNE_VFPR16_MF4 = 6868,
- PseudoVMFNE_VFPR16_MF4_MASK = 6869,
- PseudoVMFNE_VFPR32_M1 = 6870,
- PseudoVMFNE_VFPR32_M1_MASK = 6871,
- PseudoVMFNE_VFPR32_M2 = 6872,
- PseudoVMFNE_VFPR32_M2_MASK = 6873,
- PseudoVMFNE_VFPR32_M4 = 6874,
- PseudoVMFNE_VFPR32_M4_MASK = 6875,
- PseudoVMFNE_VFPR32_M8 = 6876,
- PseudoVMFNE_VFPR32_M8_MASK = 6877,
- PseudoVMFNE_VFPR32_MF2 = 6878,
- PseudoVMFNE_VFPR32_MF2_MASK = 6879,
- PseudoVMFNE_VFPR64_M1 = 6880,
- PseudoVMFNE_VFPR64_M1_MASK = 6881,
- PseudoVMFNE_VFPR64_M2 = 6882,
- PseudoVMFNE_VFPR64_M2_MASK = 6883,
- PseudoVMFNE_VFPR64_M4 = 6884,
- PseudoVMFNE_VFPR64_M4_MASK = 6885,
- PseudoVMFNE_VFPR64_M8 = 6886,
- PseudoVMFNE_VFPR64_M8_MASK = 6887,
- PseudoVMFNE_VV_M1 = 6888,
- PseudoVMFNE_VV_M1_MASK = 6889,
- PseudoVMFNE_VV_M2 = 6890,
- PseudoVMFNE_VV_M2_MASK = 6891,
- PseudoVMFNE_VV_M4 = 6892,
- PseudoVMFNE_VV_M4_MASK = 6893,
- PseudoVMFNE_VV_M8 = 6894,
- PseudoVMFNE_VV_M8_MASK = 6895,
- PseudoVMFNE_VV_MF2 = 6896,
- PseudoVMFNE_VV_MF2_MASK = 6897,
- PseudoVMFNE_VV_MF4 = 6898,
- PseudoVMFNE_VV_MF4_MASK = 6899,
- PseudoVMINU_VV_M1 = 6900,
- PseudoVMINU_VV_M1_MASK = 6901,
- PseudoVMINU_VV_M2 = 6902,
- PseudoVMINU_VV_M2_MASK = 6903,
- PseudoVMINU_VV_M4 = 6904,
- PseudoVMINU_VV_M4_MASK = 6905,
- PseudoVMINU_VV_M8 = 6906,
- PseudoVMINU_VV_M8_MASK = 6907,
- PseudoVMINU_VV_MF2 = 6908,
- PseudoVMINU_VV_MF2_MASK = 6909,
- PseudoVMINU_VV_MF4 = 6910,
- PseudoVMINU_VV_MF4_MASK = 6911,
- PseudoVMINU_VV_MF8 = 6912,
- PseudoVMINU_VV_MF8_MASK = 6913,
- PseudoVMINU_VX_M1 = 6914,
- PseudoVMINU_VX_M1_MASK = 6915,
- PseudoVMINU_VX_M2 = 6916,
- PseudoVMINU_VX_M2_MASK = 6917,
- PseudoVMINU_VX_M4 = 6918,
- PseudoVMINU_VX_M4_MASK = 6919,
- PseudoVMINU_VX_M8 = 6920,
- PseudoVMINU_VX_M8_MASK = 6921,
- PseudoVMINU_VX_MF2 = 6922,
- PseudoVMINU_VX_MF2_MASK = 6923,
- PseudoVMINU_VX_MF4 = 6924,
- PseudoVMINU_VX_MF4_MASK = 6925,
- PseudoVMINU_VX_MF8 = 6926,
- PseudoVMINU_VX_MF8_MASK = 6927,
- PseudoVMIN_VV_M1 = 6928,
- PseudoVMIN_VV_M1_MASK = 6929,
- PseudoVMIN_VV_M2 = 6930,
- PseudoVMIN_VV_M2_MASK = 6931,
- PseudoVMIN_VV_M4 = 6932,
- PseudoVMIN_VV_M4_MASK = 6933,
- PseudoVMIN_VV_M8 = 6934,
- PseudoVMIN_VV_M8_MASK = 6935,
- PseudoVMIN_VV_MF2 = 6936,
- PseudoVMIN_VV_MF2_MASK = 6937,
- PseudoVMIN_VV_MF4 = 6938,
- PseudoVMIN_VV_MF4_MASK = 6939,
- PseudoVMIN_VV_MF8 = 6940,
- PseudoVMIN_VV_MF8_MASK = 6941,
- PseudoVMIN_VX_M1 = 6942,
- PseudoVMIN_VX_M1_MASK = 6943,
- PseudoVMIN_VX_M2 = 6944,
- PseudoVMIN_VX_M2_MASK = 6945,
- PseudoVMIN_VX_M4 = 6946,
- PseudoVMIN_VX_M4_MASK = 6947,
- PseudoVMIN_VX_M8 = 6948,
- PseudoVMIN_VX_M8_MASK = 6949,
- PseudoVMIN_VX_MF2 = 6950,
- PseudoVMIN_VX_MF2_MASK = 6951,
- PseudoVMIN_VX_MF4 = 6952,
- PseudoVMIN_VX_MF4_MASK = 6953,
- PseudoVMIN_VX_MF8 = 6954,
- PseudoVMIN_VX_MF8_MASK = 6955,
- PseudoVMNAND_MM_B1 = 6956,
- PseudoVMNAND_MM_B16 = 6957,
- PseudoVMNAND_MM_B2 = 6958,
- PseudoVMNAND_MM_B32 = 6959,
- PseudoVMNAND_MM_B4 = 6960,
- PseudoVMNAND_MM_B64 = 6961,
- PseudoVMNAND_MM_B8 = 6962,
- PseudoVMNOR_MM_B1 = 6963,
- PseudoVMNOR_MM_B16 = 6964,
- PseudoVMNOR_MM_B2 = 6965,
- PseudoVMNOR_MM_B32 = 6966,
- PseudoVMNOR_MM_B4 = 6967,
- PseudoVMNOR_MM_B64 = 6968,
- PseudoVMNOR_MM_B8 = 6969,
- PseudoVMORN_MM_B1 = 6970,
- PseudoVMORN_MM_B16 = 6971,
- PseudoVMORN_MM_B2 = 6972,
- PseudoVMORN_MM_B32 = 6973,
- PseudoVMORN_MM_B4 = 6974,
- PseudoVMORN_MM_B64 = 6975,
- PseudoVMORN_MM_B8 = 6976,
- PseudoVMOR_MM_B1 = 6977,
- PseudoVMOR_MM_B16 = 6978,
- PseudoVMOR_MM_B2 = 6979,
- PseudoVMOR_MM_B32 = 6980,
- PseudoVMOR_MM_B4 = 6981,
- PseudoVMOR_MM_B64 = 6982,
- PseudoVMOR_MM_B8 = 6983,
- PseudoVMSBC_VVM_M1 = 6984,
- PseudoVMSBC_VVM_M2 = 6985,
- PseudoVMSBC_VVM_M4 = 6986,
- PseudoVMSBC_VVM_M8 = 6987,
- PseudoVMSBC_VVM_MF2 = 6988,
- PseudoVMSBC_VVM_MF4 = 6989,
- PseudoVMSBC_VVM_MF8 = 6990,
- PseudoVMSBC_VV_M1 = 6991,
- PseudoVMSBC_VV_M2 = 6992,
- PseudoVMSBC_VV_M4 = 6993,
- PseudoVMSBC_VV_M8 = 6994,
- PseudoVMSBC_VV_MF2 = 6995,
- PseudoVMSBC_VV_MF4 = 6996,
- PseudoVMSBC_VV_MF8 = 6997,
- PseudoVMSBC_VXM_M1 = 6998,
- PseudoVMSBC_VXM_M2 = 6999,
- PseudoVMSBC_VXM_M4 = 7000,
- PseudoVMSBC_VXM_M8 = 7001,
- PseudoVMSBC_VXM_MF2 = 7002,
- PseudoVMSBC_VXM_MF4 = 7003,
- PseudoVMSBC_VXM_MF8 = 7004,
- PseudoVMSBC_VX_M1 = 7005,
- PseudoVMSBC_VX_M2 = 7006,
- PseudoVMSBC_VX_M4 = 7007,
- PseudoVMSBC_VX_M8 = 7008,
- PseudoVMSBC_VX_MF2 = 7009,
- PseudoVMSBC_VX_MF4 = 7010,
- PseudoVMSBC_VX_MF8 = 7011,
- PseudoVMSBF_M_B1 = 7012,
- PseudoVMSBF_M_B16 = 7013,
- PseudoVMSBF_M_B16_MASK = 7014,
- PseudoVMSBF_M_B1_MASK = 7015,
- PseudoVMSBF_M_B2 = 7016,
- PseudoVMSBF_M_B2_MASK = 7017,
- PseudoVMSBF_M_B32 = 7018,
- PseudoVMSBF_M_B32_MASK = 7019,
- PseudoVMSBF_M_B4 = 7020,
- PseudoVMSBF_M_B4_MASK = 7021,
- PseudoVMSBF_M_B64 = 7022,
- PseudoVMSBF_M_B64_MASK = 7023,
- PseudoVMSBF_M_B8 = 7024,
- PseudoVMSBF_M_B8_MASK = 7025,
- PseudoVMSEQ_VI_M1 = 7026,
- PseudoVMSEQ_VI_M1_MASK = 7027,
- PseudoVMSEQ_VI_M2 = 7028,
- PseudoVMSEQ_VI_M2_MASK = 7029,
- PseudoVMSEQ_VI_M4 = 7030,
- PseudoVMSEQ_VI_M4_MASK = 7031,
- PseudoVMSEQ_VI_M8 = 7032,
- PseudoVMSEQ_VI_M8_MASK = 7033,
- PseudoVMSEQ_VI_MF2 = 7034,
- PseudoVMSEQ_VI_MF2_MASK = 7035,
- PseudoVMSEQ_VI_MF4 = 7036,
- PseudoVMSEQ_VI_MF4_MASK = 7037,
- PseudoVMSEQ_VI_MF8 = 7038,
- PseudoVMSEQ_VI_MF8_MASK = 7039,
- PseudoVMSEQ_VV_M1 = 7040,
- PseudoVMSEQ_VV_M1_MASK = 7041,
- PseudoVMSEQ_VV_M2 = 7042,
- PseudoVMSEQ_VV_M2_MASK = 7043,
- PseudoVMSEQ_VV_M4 = 7044,
- PseudoVMSEQ_VV_M4_MASK = 7045,
- PseudoVMSEQ_VV_M8 = 7046,
- PseudoVMSEQ_VV_M8_MASK = 7047,
- PseudoVMSEQ_VV_MF2 = 7048,
- PseudoVMSEQ_VV_MF2_MASK = 7049,
- PseudoVMSEQ_VV_MF4 = 7050,
- PseudoVMSEQ_VV_MF4_MASK = 7051,
- PseudoVMSEQ_VV_MF8 = 7052,
- PseudoVMSEQ_VV_MF8_MASK = 7053,
- PseudoVMSEQ_VX_M1 = 7054,
- PseudoVMSEQ_VX_M1_MASK = 7055,
- PseudoVMSEQ_VX_M2 = 7056,
- PseudoVMSEQ_VX_M2_MASK = 7057,
- PseudoVMSEQ_VX_M4 = 7058,
- PseudoVMSEQ_VX_M4_MASK = 7059,
- PseudoVMSEQ_VX_M8 = 7060,
- PseudoVMSEQ_VX_M8_MASK = 7061,
- PseudoVMSEQ_VX_MF2 = 7062,
- PseudoVMSEQ_VX_MF2_MASK = 7063,
- PseudoVMSEQ_VX_MF4 = 7064,
- PseudoVMSEQ_VX_MF4_MASK = 7065,
- PseudoVMSEQ_VX_MF8 = 7066,
- PseudoVMSEQ_VX_MF8_MASK = 7067,
- PseudoVMSET_M_B1 = 7068,
- PseudoVMSET_M_B16 = 7069,
- PseudoVMSET_M_B2 = 7070,
- PseudoVMSET_M_B32 = 7071,
- PseudoVMSET_M_B4 = 7072,
- PseudoVMSET_M_B64 = 7073,
- PseudoVMSET_M_B8 = 7074,
- PseudoVMSGEU_VI = 7075,
- PseudoVMSGEU_VX = 7076,
- PseudoVMSGEU_VX_M = 7077,
- PseudoVMSGEU_VX_M_T = 7078,
- PseudoVMSGE_VI = 7079,
- PseudoVMSGE_VX = 7080,
- PseudoVMSGE_VX_M = 7081,
- PseudoVMSGE_VX_M_T = 7082,
- PseudoVMSGTU_VI_M1 = 7083,
- PseudoVMSGTU_VI_M1_MASK = 7084,
- PseudoVMSGTU_VI_M2 = 7085,
- PseudoVMSGTU_VI_M2_MASK = 7086,
- PseudoVMSGTU_VI_M4 = 7087,
- PseudoVMSGTU_VI_M4_MASK = 7088,
- PseudoVMSGTU_VI_M8 = 7089,
- PseudoVMSGTU_VI_M8_MASK = 7090,
- PseudoVMSGTU_VI_MF2 = 7091,
- PseudoVMSGTU_VI_MF2_MASK = 7092,
- PseudoVMSGTU_VI_MF4 = 7093,
- PseudoVMSGTU_VI_MF4_MASK = 7094,
- PseudoVMSGTU_VI_MF8 = 7095,
- PseudoVMSGTU_VI_MF8_MASK = 7096,
- PseudoVMSGTU_VX_M1 = 7097,
- PseudoVMSGTU_VX_M1_MASK = 7098,
- PseudoVMSGTU_VX_M2 = 7099,
- PseudoVMSGTU_VX_M2_MASK = 7100,
- PseudoVMSGTU_VX_M4 = 7101,
- PseudoVMSGTU_VX_M4_MASK = 7102,
- PseudoVMSGTU_VX_M8 = 7103,
- PseudoVMSGTU_VX_M8_MASK = 7104,
- PseudoVMSGTU_VX_MF2 = 7105,
- PseudoVMSGTU_VX_MF2_MASK = 7106,
- PseudoVMSGTU_VX_MF4 = 7107,
- PseudoVMSGTU_VX_MF4_MASK = 7108,
- PseudoVMSGTU_VX_MF8 = 7109,
- PseudoVMSGTU_VX_MF8_MASK = 7110,
- PseudoVMSGT_VI_M1 = 7111,
- PseudoVMSGT_VI_M1_MASK = 7112,
- PseudoVMSGT_VI_M2 = 7113,
- PseudoVMSGT_VI_M2_MASK = 7114,
- PseudoVMSGT_VI_M4 = 7115,
- PseudoVMSGT_VI_M4_MASK = 7116,
- PseudoVMSGT_VI_M8 = 7117,
- PseudoVMSGT_VI_M8_MASK = 7118,
- PseudoVMSGT_VI_MF2 = 7119,
- PseudoVMSGT_VI_MF2_MASK = 7120,
- PseudoVMSGT_VI_MF4 = 7121,
- PseudoVMSGT_VI_MF4_MASK = 7122,
- PseudoVMSGT_VI_MF8 = 7123,
- PseudoVMSGT_VI_MF8_MASK = 7124,
- PseudoVMSGT_VX_M1 = 7125,
- PseudoVMSGT_VX_M1_MASK = 7126,
- PseudoVMSGT_VX_M2 = 7127,
- PseudoVMSGT_VX_M2_MASK = 7128,
- PseudoVMSGT_VX_M4 = 7129,
- PseudoVMSGT_VX_M4_MASK = 7130,
- PseudoVMSGT_VX_M8 = 7131,
- PseudoVMSGT_VX_M8_MASK = 7132,
- PseudoVMSGT_VX_MF2 = 7133,
- PseudoVMSGT_VX_MF2_MASK = 7134,
- PseudoVMSGT_VX_MF4 = 7135,
- PseudoVMSGT_VX_MF4_MASK = 7136,
- PseudoVMSGT_VX_MF8 = 7137,
- PseudoVMSGT_VX_MF8_MASK = 7138,
- PseudoVMSIF_M_B1 = 7139,
- PseudoVMSIF_M_B16 = 7140,
- PseudoVMSIF_M_B16_MASK = 7141,
- PseudoVMSIF_M_B1_MASK = 7142,
- PseudoVMSIF_M_B2 = 7143,
- PseudoVMSIF_M_B2_MASK = 7144,
- PseudoVMSIF_M_B32 = 7145,
- PseudoVMSIF_M_B32_MASK = 7146,
- PseudoVMSIF_M_B4 = 7147,
- PseudoVMSIF_M_B4_MASK = 7148,
- PseudoVMSIF_M_B64 = 7149,
- PseudoVMSIF_M_B64_MASK = 7150,
- PseudoVMSIF_M_B8 = 7151,
- PseudoVMSIF_M_B8_MASK = 7152,
- PseudoVMSLEU_VI_M1 = 7153,
- PseudoVMSLEU_VI_M1_MASK = 7154,
- PseudoVMSLEU_VI_M2 = 7155,
- PseudoVMSLEU_VI_M2_MASK = 7156,
- PseudoVMSLEU_VI_M4 = 7157,
- PseudoVMSLEU_VI_M4_MASK = 7158,
- PseudoVMSLEU_VI_M8 = 7159,
- PseudoVMSLEU_VI_M8_MASK = 7160,
- PseudoVMSLEU_VI_MF2 = 7161,
- PseudoVMSLEU_VI_MF2_MASK = 7162,
- PseudoVMSLEU_VI_MF4 = 7163,
- PseudoVMSLEU_VI_MF4_MASK = 7164,
- PseudoVMSLEU_VI_MF8 = 7165,
- PseudoVMSLEU_VI_MF8_MASK = 7166,
- PseudoVMSLEU_VV_M1 = 7167,
- PseudoVMSLEU_VV_M1_MASK = 7168,
- PseudoVMSLEU_VV_M2 = 7169,
- PseudoVMSLEU_VV_M2_MASK = 7170,
- PseudoVMSLEU_VV_M4 = 7171,
- PseudoVMSLEU_VV_M4_MASK = 7172,
- PseudoVMSLEU_VV_M8 = 7173,
- PseudoVMSLEU_VV_M8_MASK = 7174,
- PseudoVMSLEU_VV_MF2 = 7175,
- PseudoVMSLEU_VV_MF2_MASK = 7176,
- PseudoVMSLEU_VV_MF4 = 7177,
- PseudoVMSLEU_VV_MF4_MASK = 7178,
- PseudoVMSLEU_VV_MF8 = 7179,
- PseudoVMSLEU_VV_MF8_MASK = 7180,
- PseudoVMSLEU_VX_M1 = 7181,
- PseudoVMSLEU_VX_M1_MASK = 7182,
- PseudoVMSLEU_VX_M2 = 7183,
- PseudoVMSLEU_VX_M2_MASK = 7184,
- PseudoVMSLEU_VX_M4 = 7185,
- PseudoVMSLEU_VX_M4_MASK = 7186,
- PseudoVMSLEU_VX_M8 = 7187,
- PseudoVMSLEU_VX_M8_MASK = 7188,
- PseudoVMSLEU_VX_MF2 = 7189,
- PseudoVMSLEU_VX_MF2_MASK = 7190,
- PseudoVMSLEU_VX_MF4 = 7191,
- PseudoVMSLEU_VX_MF4_MASK = 7192,
- PseudoVMSLEU_VX_MF8 = 7193,
- PseudoVMSLEU_VX_MF8_MASK = 7194,
- PseudoVMSLE_VI_M1 = 7195,
- PseudoVMSLE_VI_M1_MASK = 7196,
- PseudoVMSLE_VI_M2 = 7197,
- PseudoVMSLE_VI_M2_MASK = 7198,
- PseudoVMSLE_VI_M4 = 7199,
- PseudoVMSLE_VI_M4_MASK = 7200,
- PseudoVMSLE_VI_M8 = 7201,
- PseudoVMSLE_VI_M8_MASK = 7202,
- PseudoVMSLE_VI_MF2 = 7203,
- PseudoVMSLE_VI_MF2_MASK = 7204,
- PseudoVMSLE_VI_MF4 = 7205,
- PseudoVMSLE_VI_MF4_MASK = 7206,
- PseudoVMSLE_VI_MF8 = 7207,
- PseudoVMSLE_VI_MF8_MASK = 7208,
- PseudoVMSLE_VV_M1 = 7209,
- PseudoVMSLE_VV_M1_MASK = 7210,
- PseudoVMSLE_VV_M2 = 7211,
- PseudoVMSLE_VV_M2_MASK = 7212,
- PseudoVMSLE_VV_M4 = 7213,
- PseudoVMSLE_VV_M4_MASK = 7214,
- PseudoVMSLE_VV_M8 = 7215,
- PseudoVMSLE_VV_M8_MASK = 7216,
- PseudoVMSLE_VV_MF2 = 7217,
- PseudoVMSLE_VV_MF2_MASK = 7218,
- PseudoVMSLE_VV_MF4 = 7219,
- PseudoVMSLE_VV_MF4_MASK = 7220,
- PseudoVMSLE_VV_MF8 = 7221,
- PseudoVMSLE_VV_MF8_MASK = 7222,
- PseudoVMSLE_VX_M1 = 7223,
- PseudoVMSLE_VX_M1_MASK = 7224,
- PseudoVMSLE_VX_M2 = 7225,
- PseudoVMSLE_VX_M2_MASK = 7226,
- PseudoVMSLE_VX_M4 = 7227,
- PseudoVMSLE_VX_M4_MASK = 7228,
- PseudoVMSLE_VX_M8 = 7229,
- PseudoVMSLE_VX_M8_MASK = 7230,
- PseudoVMSLE_VX_MF2 = 7231,
- PseudoVMSLE_VX_MF2_MASK = 7232,
- PseudoVMSLE_VX_MF4 = 7233,
- PseudoVMSLE_VX_MF4_MASK = 7234,
- PseudoVMSLE_VX_MF8 = 7235,
- PseudoVMSLE_VX_MF8_MASK = 7236,
- PseudoVMSLTU_VI = 7237,
- PseudoVMSLTU_VV_M1 = 7238,
- PseudoVMSLTU_VV_M1_MASK = 7239,
- PseudoVMSLTU_VV_M2 = 7240,
- PseudoVMSLTU_VV_M2_MASK = 7241,
- PseudoVMSLTU_VV_M4 = 7242,
- PseudoVMSLTU_VV_M4_MASK = 7243,
- PseudoVMSLTU_VV_M8 = 7244,
- PseudoVMSLTU_VV_M8_MASK = 7245,
- PseudoVMSLTU_VV_MF2 = 7246,
- PseudoVMSLTU_VV_MF2_MASK = 7247,
- PseudoVMSLTU_VV_MF4 = 7248,
- PseudoVMSLTU_VV_MF4_MASK = 7249,
- PseudoVMSLTU_VV_MF8 = 7250,
- PseudoVMSLTU_VV_MF8_MASK = 7251,
- PseudoVMSLTU_VX_M1 = 7252,
- PseudoVMSLTU_VX_M1_MASK = 7253,
- PseudoVMSLTU_VX_M2 = 7254,
- PseudoVMSLTU_VX_M2_MASK = 7255,
- PseudoVMSLTU_VX_M4 = 7256,
- PseudoVMSLTU_VX_M4_MASK = 7257,
- PseudoVMSLTU_VX_M8 = 7258,
- PseudoVMSLTU_VX_M8_MASK = 7259,
- PseudoVMSLTU_VX_MF2 = 7260,
- PseudoVMSLTU_VX_MF2_MASK = 7261,
- PseudoVMSLTU_VX_MF4 = 7262,
- PseudoVMSLTU_VX_MF4_MASK = 7263,
- PseudoVMSLTU_VX_MF8 = 7264,
- PseudoVMSLTU_VX_MF8_MASK = 7265,
- PseudoVMSLT_VI = 7266,
- PseudoVMSLT_VV_M1 = 7267,
- PseudoVMSLT_VV_M1_MASK = 7268,
- PseudoVMSLT_VV_M2 = 7269,
- PseudoVMSLT_VV_M2_MASK = 7270,
- PseudoVMSLT_VV_M4 = 7271,
- PseudoVMSLT_VV_M4_MASK = 7272,
- PseudoVMSLT_VV_M8 = 7273,
- PseudoVMSLT_VV_M8_MASK = 7274,
- PseudoVMSLT_VV_MF2 = 7275,
- PseudoVMSLT_VV_MF2_MASK = 7276,
- PseudoVMSLT_VV_MF4 = 7277,
- PseudoVMSLT_VV_MF4_MASK = 7278,
- PseudoVMSLT_VV_MF8 = 7279,
- PseudoVMSLT_VV_MF8_MASK = 7280,
- PseudoVMSLT_VX_M1 = 7281,
- PseudoVMSLT_VX_M1_MASK = 7282,
- PseudoVMSLT_VX_M2 = 7283,
- PseudoVMSLT_VX_M2_MASK = 7284,
- PseudoVMSLT_VX_M4 = 7285,
- PseudoVMSLT_VX_M4_MASK = 7286,
- PseudoVMSLT_VX_M8 = 7287,
- PseudoVMSLT_VX_M8_MASK = 7288,
- PseudoVMSLT_VX_MF2 = 7289,
- PseudoVMSLT_VX_MF2_MASK = 7290,
- PseudoVMSLT_VX_MF4 = 7291,
- PseudoVMSLT_VX_MF4_MASK = 7292,
- PseudoVMSLT_VX_MF8 = 7293,
- PseudoVMSLT_VX_MF8_MASK = 7294,
- PseudoVMSNE_VI_M1 = 7295,
- PseudoVMSNE_VI_M1_MASK = 7296,
- PseudoVMSNE_VI_M2 = 7297,
- PseudoVMSNE_VI_M2_MASK = 7298,
- PseudoVMSNE_VI_M4 = 7299,
- PseudoVMSNE_VI_M4_MASK = 7300,
- PseudoVMSNE_VI_M8 = 7301,
- PseudoVMSNE_VI_M8_MASK = 7302,
- PseudoVMSNE_VI_MF2 = 7303,
- PseudoVMSNE_VI_MF2_MASK = 7304,
- PseudoVMSNE_VI_MF4 = 7305,
- PseudoVMSNE_VI_MF4_MASK = 7306,
- PseudoVMSNE_VI_MF8 = 7307,
- PseudoVMSNE_VI_MF8_MASK = 7308,
- PseudoVMSNE_VV_M1 = 7309,
- PseudoVMSNE_VV_M1_MASK = 7310,
- PseudoVMSNE_VV_M2 = 7311,
- PseudoVMSNE_VV_M2_MASK = 7312,
- PseudoVMSNE_VV_M4 = 7313,
- PseudoVMSNE_VV_M4_MASK = 7314,
- PseudoVMSNE_VV_M8 = 7315,
- PseudoVMSNE_VV_M8_MASK = 7316,
- PseudoVMSNE_VV_MF2 = 7317,
- PseudoVMSNE_VV_MF2_MASK = 7318,
- PseudoVMSNE_VV_MF4 = 7319,
- PseudoVMSNE_VV_MF4_MASK = 7320,
- PseudoVMSNE_VV_MF8 = 7321,
- PseudoVMSNE_VV_MF8_MASK = 7322,
- PseudoVMSNE_VX_M1 = 7323,
- PseudoVMSNE_VX_M1_MASK = 7324,
- PseudoVMSNE_VX_M2 = 7325,
- PseudoVMSNE_VX_M2_MASK = 7326,
- PseudoVMSNE_VX_M4 = 7327,
- PseudoVMSNE_VX_M4_MASK = 7328,
- PseudoVMSNE_VX_M8 = 7329,
- PseudoVMSNE_VX_M8_MASK = 7330,
- PseudoVMSNE_VX_MF2 = 7331,
- PseudoVMSNE_VX_MF2_MASK = 7332,
- PseudoVMSNE_VX_MF4 = 7333,
- PseudoVMSNE_VX_MF4_MASK = 7334,
- PseudoVMSNE_VX_MF8 = 7335,
- PseudoVMSNE_VX_MF8_MASK = 7336,
- PseudoVMSOF_M_B1 = 7337,
- PseudoVMSOF_M_B16 = 7338,
- PseudoVMSOF_M_B16_MASK = 7339,
- PseudoVMSOF_M_B1_MASK = 7340,
- PseudoVMSOF_M_B2 = 7341,
- PseudoVMSOF_M_B2_MASK = 7342,
- PseudoVMSOF_M_B32 = 7343,
- PseudoVMSOF_M_B32_MASK = 7344,
- PseudoVMSOF_M_B4 = 7345,
- PseudoVMSOF_M_B4_MASK = 7346,
- PseudoVMSOF_M_B64 = 7347,
- PseudoVMSOF_M_B64_MASK = 7348,
- PseudoVMSOF_M_B8 = 7349,
- PseudoVMSOF_M_B8_MASK = 7350,
- PseudoVMULHSU_VV_M1 = 7351,
- PseudoVMULHSU_VV_M1_MASK = 7352,
- PseudoVMULHSU_VV_M2 = 7353,
- PseudoVMULHSU_VV_M2_MASK = 7354,
- PseudoVMULHSU_VV_M4 = 7355,
- PseudoVMULHSU_VV_M4_MASK = 7356,
- PseudoVMULHSU_VV_M8 = 7357,
- PseudoVMULHSU_VV_M8_MASK = 7358,
- PseudoVMULHSU_VV_MF2 = 7359,
- PseudoVMULHSU_VV_MF2_MASK = 7360,
- PseudoVMULHSU_VV_MF4 = 7361,
- PseudoVMULHSU_VV_MF4_MASK = 7362,
- PseudoVMULHSU_VV_MF8 = 7363,
- PseudoVMULHSU_VV_MF8_MASK = 7364,
- PseudoVMULHSU_VX_M1 = 7365,
- PseudoVMULHSU_VX_M1_MASK = 7366,
- PseudoVMULHSU_VX_M2 = 7367,
- PseudoVMULHSU_VX_M2_MASK = 7368,
- PseudoVMULHSU_VX_M4 = 7369,
- PseudoVMULHSU_VX_M4_MASK = 7370,
- PseudoVMULHSU_VX_M8 = 7371,
- PseudoVMULHSU_VX_M8_MASK = 7372,
- PseudoVMULHSU_VX_MF2 = 7373,
- PseudoVMULHSU_VX_MF2_MASK = 7374,
- PseudoVMULHSU_VX_MF4 = 7375,
- PseudoVMULHSU_VX_MF4_MASK = 7376,
- PseudoVMULHSU_VX_MF8 = 7377,
- PseudoVMULHSU_VX_MF8_MASK = 7378,
- PseudoVMULHU_VV_M1 = 7379,
- PseudoVMULHU_VV_M1_MASK = 7380,
- PseudoVMULHU_VV_M2 = 7381,
- PseudoVMULHU_VV_M2_MASK = 7382,
- PseudoVMULHU_VV_M4 = 7383,
- PseudoVMULHU_VV_M4_MASK = 7384,
- PseudoVMULHU_VV_M8 = 7385,
- PseudoVMULHU_VV_M8_MASK = 7386,
- PseudoVMULHU_VV_MF2 = 7387,
- PseudoVMULHU_VV_MF2_MASK = 7388,
- PseudoVMULHU_VV_MF4 = 7389,
- PseudoVMULHU_VV_MF4_MASK = 7390,
- PseudoVMULHU_VV_MF8 = 7391,
- PseudoVMULHU_VV_MF8_MASK = 7392,
- PseudoVMULHU_VX_M1 = 7393,
- PseudoVMULHU_VX_M1_MASK = 7394,
- PseudoVMULHU_VX_M2 = 7395,
- PseudoVMULHU_VX_M2_MASK = 7396,
- PseudoVMULHU_VX_M4 = 7397,
- PseudoVMULHU_VX_M4_MASK = 7398,
- PseudoVMULHU_VX_M8 = 7399,
- PseudoVMULHU_VX_M8_MASK = 7400,
- PseudoVMULHU_VX_MF2 = 7401,
- PseudoVMULHU_VX_MF2_MASK = 7402,
- PseudoVMULHU_VX_MF4 = 7403,
- PseudoVMULHU_VX_MF4_MASK = 7404,
- PseudoVMULHU_VX_MF8 = 7405,
- PseudoVMULHU_VX_MF8_MASK = 7406,
- PseudoVMULH_VV_M1 = 7407,
- PseudoVMULH_VV_M1_MASK = 7408,
- PseudoVMULH_VV_M2 = 7409,
- PseudoVMULH_VV_M2_MASK = 7410,
- PseudoVMULH_VV_M4 = 7411,
- PseudoVMULH_VV_M4_MASK = 7412,
- PseudoVMULH_VV_M8 = 7413,
- PseudoVMULH_VV_M8_MASK = 7414,
- PseudoVMULH_VV_MF2 = 7415,
- PseudoVMULH_VV_MF2_MASK = 7416,
- PseudoVMULH_VV_MF4 = 7417,
- PseudoVMULH_VV_MF4_MASK = 7418,
- PseudoVMULH_VV_MF8 = 7419,
- PseudoVMULH_VV_MF8_MASK = 7420,
- PseudoVMULH_VX_M1 = 7421,
- PseudoVMULH_VX_M1_MASK = 7422,
- PseudoVMULH_VX_M2 = 7423,
- PseudoVMULH_VX_M2_MASK = 7424,
- PseudoVMULH_VX_M4 = 7425,
- PseudoVMULH_VX_M4_MASK = 7426,
- PseudoVMULH_VX_M8 = 7427,
- PseudoVMULH_VX_M8_MASK = 7428,
- PseudoVMULH_VX_MF2 = 7429,
- PseudoVMULH_VX_MF2_MASK = 7430,
- PseudoVMULH_VX_MF4 = 7431,
- PseudoVMULH_VX_MF4_MASK = 7432,
- PseudoVMULH_VX_MF8 = 7433,
- PseudoVMULH_VX_MF8_MASK = 7434,
- PseudoVMUL_VV_M1 = 7435,
- PseudoVMUL_VV_M1_MASK = 7436,
- PseudoVMUL_VV_M2 = 7437,
- PseudoVMUL_VV_M2_MASK = 7438,
- PseudoVMUL_VV_M4 = 7439,
- PseudoVMUL_VV_M4_MASK = 7440,
- PseudoVMUL_VV_M8 = 7441,
- PseudoVMUL_VV_M8_MASK = 7442,
- PseudoVMUL_VV_MF2 = 7443,
- PseudoVMUL_VV_MF2_MASK = 7444,
- PseudoVMUL_VV_MF4 = 7445,
- PseudoVMUL_VV_MF4_MASK = 7446,
- PseudoVMUL_VV_MF8 = 7447,
- PseudoVMUL_VV_MF8_MASK = 7448,
- PseudoVMUL_VX_M1 = 7449,
- PseudoVMUL_VX_M1_MASK = 7450,
- PseudoVMUL_VX_M2 = 7451,
- PseudoVMUL_VX_M2_MASK = 7452,
- PseudoVMUL_VX_M4 = 7453,
- PseudoVMUL_VX_M4_MASK = 7454,
- PseudoVMUL_VX_M8 = 7455,
- PseudoVMUL_VX_M8_MASK = 7456,
- PseudoVMUL_VX_MF2 = 7457,
- PseudoVMUL_VX_MF2_MASK = 7458,
- PseudoVMUL_VX_MF4 = 7459,
- PseudoVMUL_VX_MF4_MASK = 7460,
- PseudoVMUL_VX_MF8 = 7461,
- PseudoVMUL_VX_MF8_MASK = 7462,
- PseudoVMV_S_X = 7463,
- PseudoVMV_V_I_M1 = 7464,
- PseudoVMV_V_I_M2 = 7465,
- PseudoVMV_V_I_M4 = 7466,
- PseudoVMV_V_I_M8 = 7467,
- PseudoVMV_V_I_MF2 = 7468,
- PseudoVMV_V_I_MF4 = 7469,
- PseudoVMV_V_I_MF8 = 7470,
- PseudoVMV_V_V_M1 = 7471,
- PseudoVMV_V_V_M2 = 7472,
- PseudoVMV_V_V_M4 = 7473,
- PseudoVMV_V_V_M8 = 7474,
- PseudoVMV_V_V_MF2 = 7475,
- PseudoVMV_V_V_MF4 = 7476,
- PseudoVMV_V_V_MF8 = 7477,
- PseudoVMV_V_X_M1 = 7478,
- PseudoVMV_V_X_M2 = 7479,
- PseudoVMV_V_X_M4 = 7480,
- PseudoVMV_V_X_M8 = 7481,
- PseudoVMV_V_X_MF2 = 7482,
- PseudoVMV_V_X_MF4 = 7483,
- PseudoVMV_V_X_MF8 = 7484,
- PseudoVMV_X_S = 7485,
- PseudoVMXNOR_MM_B1 = 7486,
- PseudoVMXNOR_MM_B16 = 7487,
- PseudoVMXNOR_MM_B2 = 7488,
- PseudoVMXNOR_MM_B32 = 7489,
- PseudoVMXNOR_MM_B4 = 7490,
- PseudoVMXNOR_MM_B64 = 7491,
- PseudoVMXNOR_MM_B8 = 7492,
- PseudoVMXOR_MM_B1 = 7493,
- PseudoVMXOR_MM_B16 = 7494,
- PseudoVMXOR_MM_B2 = 7495,
- PseudoVMXOR_MM_B32 = 7496,
- PseudoVMXOR_MM_B4 = 7497,
- PseudoVMXOR_MM_B64 = 7498,
- PseudoVMXOR_MM_B8 = 7499,
- PseudoVNCLIPU_WI_M1 = 7500,
- PseudoVNCLIPU_WI_M1_MASK = 7501,
- PseudoVNCLIPU_WI_M2 = 7502,
- PseudoVNCLIPU_WI_M2_MASK = 7503,
- PseudoVNCLIPU_WI_M4 = 7504,
- PseudoVNCLIPU_WI_M4_MASK = 7505,
- PseudoVNCLIPU_WI_MF2 = 7506,
- PseudoVNCLIPU_WI_MF2_MASK = 7507,
- PseudoVNCLIPU_WI_MF4 = 7508,
- PseudoVNCLIPU_WI_MF4_MASK = 7509,
- PseudoVNCLIPU_WI_MF8 = 7510,
- PseudoVNCLIPU_WI_MF8_MASK = 7511,
- PseudoVNCLIPU_WV_M1 = 7512,
- PseudoVNCLIPU_WV_M1_MASK = 7513,
- PseudoVNCLIPU_WV_M2 = 7514,
- PseudoVNCLIPU_WV_M2_MASK = 7515,
- PseudoVNCLIPU_WV_M4 = 7516,
- PseudoVNCLIPU_WV_M4_MASK = 7517,
- PseudoVNCLIPU_WV_MF2 = 7518,
- PseudoVNCLIPU_WV_MF2_MASK = 7519,
- PseudoVNCLIPU_WV_MF4 = 7520,
- PseudoVNCLIPU_WV_MF4_MASK = 7521,
- PseudoVNCLIPU_WV_MF8 = 7522,
- PseudoVNCLIPU_WV_MF8_MASK = 7523,
- PseudoVNCLIPU_WX_M1 = 7524,
- PseudoVNCLIPU_WX_M1_MASK = 7525,
- PseudoVNCLIPU_WX_M2 = 7526,
- PseudoVNCLIPU_WX_M2_MASK = 7527,
- PseudoVNCLIPU_WX_M4 = 7528,
- PseudoVNCLIPU_WX_M4_MASK = 7529,
- PseudoVNCLIPU_WX_MF2 = 7530,
- PseudoVNCLIPU_WX_MF2_MASK = 7531,
- PseudoVNCLIPU_WX_MF4 = 7532,
- PseudoVNCLIPU_WX_MF4_MASK = 7533,
- PseudoVNCLIPU_WX_MF8 = 7534,
- PseudoVNCLIPU_WX_MF8_MASK = 7535,
- PseudoVNCLIP_WI_M1 = 7536,
- PseudoVNCLIP_WI_M1_MASK = 7537,
- PseudoVNCLIP_WI_M2 = 7538,
- PseudoVNCLIP_WI_M2_MASK = 7539,
- PseudoVNCLIP_WI_M4 = 7540,
- PseudoVNCLIP_WI_M4_MASK = 7541,
- PseudoVNCLIP_WI_MF2 = 7542,
- PseudoVNCLIP_WI_MF2_MASK = 7543,
- PseudoVNCLIP_WI_MF4 = 7544,
- PseudoVNCLIP_WI_MF4_MASK = 7545,
- PseudoVNCLIP_WI_MF8 = 7546,
- PseudoVNCLIP_WI_MF8_MASK = 7547,
- PseudoVNCLIP_WV_M1 = 7548,
- PseudoVNCLIP_WV_M1_MASK = 7549,
- PseudoVNCLIP_WV_M2 = 7550,
- PseudoVNCLIP_WV_M2_MASK = 7551,
- PseudoVNCLIP_WV_M4 = 7552,
- PseudoVNCLIP_WV_M4_MASK = 7553,
- PseudoVNCLIP_WV_MF2 = 7554,
- PseudoVNCLIP_WV_MF2_MASK = 7555,
- PseudoVNCLIP_WV_MF4 = 7556,
- PseudoVNCLIP_WV_MF4_MASK = 7557,
- PseudoVNCLIP_WV_MF8 = 7558,
- PseudoVNCLIP_WV_MF8_MASK = 7559,
- PseudoVNCLIP_WX_M1 = 7560,
- PseudoVNCLIP_WX_M1_MASK = 7561,
- PseudoVNCLIP_WX_M2 = 7562,
- PseudoVNCLIP_WX_M2_MASK = 7563,
- PseudoVNCLIP_WX_M4 = 7564,
- PseudoVNCLIP_WX_M4_MASK = 7565,
- PseudoVNCLIP_WX_MF2 = 7566,
- PseudoVNCLIP_WX_MF2_MASK = 7567,
- PseudoVNCLIP_WX_MF4 = 7568,
- PseudoVNCLIP_WX_MF4_MASK = 7569,
- PseudoVNCLIP_WX_MF8 = 7570,
- PseudoVNCLIP_WX_MF8_MASK = 7571,
- PseudoVNMSAC_VV_M1 = 7572,
- PseudoVNMSAC_VV_M1_MASK = 7573,
- PseudoVNMSAC_VV_M2 = 7574,
- PseudoVNMSAC_VV_M2_MASK = 7575,
- PseudoVNMSAC_VV_M4 = 7576,
- PseudoVNMSAC_VV_M4_MASK = 7577,
- PseudoVNMSAC_VV_M8 = 7578,
- PseudoVNMSAC_VV_M8_MASK = 7579,
- PseudoVNMSAC_VV_MF2 = 7580,
- PseudoVNMSAC_VV_MF2_MASK = 7581,
- PseudoVNMSAC_VV_MF4 = 7582,
- PseudoVNMSAC_VV_MF4_MASK = 7583,
- PseudoVNMSAC_VV_MF8 = 7584,
- PseudoVNMSAC_VV_MF8_MASK = 7585,
- PseudoVNMSAC_VX_M1 = 7586,
- PseudoVNMSAC_VX_M1_MASK = 7587,
- PseudoVNMSAC_VX_M2 = 7588,
- PseudoVNMSAC_VX_M2_MASK = 7589,
- PseudoVNMSAC_VX_M4 = 7590,
- PseudoVNMSAC_VX_M4_MASK = 7591,
- PseudoVNMSAC_VX_M8 = 7592,
- PseudoVNMSAC_VX_M8_MASK = 7593,
- PseudoVNMSAC_VX_MF2 = 7594,
- PseudoVNMSAC_VX_MF2_MASK = 7595,
- PseudoVNMSAC_VX_MF4 = 7596,
- PseudoVNMSAC_VX_MF4_MASK = 7597,
- PseudoVNMSAC_VX_MF8 = 7598,
- PseudoVNMSAC_VX_MF8_MASK = 7599,
- PseudoVNMSUB_VV_M1 = 7600,
- PseudoVNMSUB_VV_M1_MASK = 7601,
- PseudoVNMSUB_VV_M2 = 7602,
- PseudoVNMSUB_VV_M2_MASK = 7603,
- PseudoVNMSUB_VV_M4 = 7604,
- PseudoVNMSUB_VV_M4_MASK = 7605,
- PseudoVNMSUB_VV_M8 = 7606,
- PseudoVNMSUB_VV_M8_MASK = 7607,
- PseudoVNMSUB_VV_MF2 = 7608,
- PseudoVNMSUB_VV_MF2_MASK = 7609,
- PseudoVNMSUB_VV_MF4 = 7610,
- PseudoVNMSUB_VV_MF4_MASK = 7611,
- PseudoVNMSUB_VV_MF8 = 7612,
- PseudoVNMSUB_VV_MF8_MASK = 7613,
- PseudoVNMSUB_VX_M1 = 7614,
- PseudoVNMSUB_VX_M1_MASK = 7615,
- PseudoVNMSUB_VX_M2 = 7616,
- PseudoVNMSUB_VX_M2_MASK = 7617,
- PseudoVNMSUB_VX_M4 = 7618,
- PseudoVNMSUB_VX_M4_MASK = 7619,
- PseudoVNMSUB_VX_M8 = 7620,
- PseudoVNMSUB_VX_M8_MASK = 7621,
- PseudoVNMSUB_VX_MF2 = 7622,
- PseudoVNMSUB_VX_MF2_MASK = 7623,
- PseudoVNMSUB_VX_MF4 = 7624,
- PseudoVNMSUB_VX_MF4_MASK = 7625,
- PseudoVNMSUB_VX_MF8 = 7626,
- PseudoVNMSUB_VX_MF8_MASK = 7627,
- PseudoVNSRA_WI_M1 = 7628,
- PseudoVNSRA_WI_M1_MASK = 7629,
- PseudoVNSRA_WI_M2 = 7630,
- PseudoVNSRA_WI_M2_MASK = 7631,
- PseudoVNSRA_WI_M4 = 7632,
- PseudoVNSRA_WI_M4_MASK = 7633,
- PseudoVNSRA_WI_MF2 = 7634,
- PseudoVNSRA_WI_MF2_MASK = 7635,
- PseudoVNSRA_WI_MF4 = 7636,
- PseudoVNSRA_WI_MF4_MASK = 7637,
- PseudoVNSRA_WI_MF8 = 7638,
- PseudoVNSRA_WI_MF8_MASK = 7639,
- PseudoVNSRA_WV_M1 = 7640,
- PseudoVNSRA_WV_M1_MASK = 7641,
- PseudoVNSRA_WV_M2 = 7642,
- PseudoVNSRA_WV_M2_MASK = 7643,
- PseudoVNSRA_WV_M4 = 7644,
- PseudoVNSRA_WV_M4_MASK = 7645,
- PseudoVNSRA_WV_MF2 = 7646,
- PseudoVNSRA_WV_MF2_MASK = 7647,
- PseudoVNSRA_WV_MF4 = 7648,
- PseudoVNSRA_WV_MF4_MASK = 7649,
- PseudoVNSRA_WV_MF8 = 7650,
- PseudoVNSRA_WV_MF8_MASK = 7651,
- PseudoVNSRA_WX_M1 = 7652,
- PseudoVNSRA_WX_M1_MASK = 7653,
- PseudoVNSRA_WX_M2 = 7654,
- PseudoVNSRA_WX_M2_MASK = 7655,
- PseudoVNSRA_WX_M4 = 7656,
- PseudoVNSRA_WX_M4_MASK = 7657,
- PseudoVNSRA_WX_MF2 = 7658,
- PseudoVNSRA_WX_MF2_MASK = 7659,
- PseudoVNSRA_WX_MF4 = 7660,
- PseudoVNSRA_WX_MF4_MASK = 7661,
- PseudoVNSRA_WX_MF8 = 7662,
- PseudoVNSRA_WX_MF8_MASK = 7663,
- PseudoVNSRL_WI_M1 = 7664,
- PseudoVNSRL_WI_M1_MASK = 7665,
- PseudoVNSRL_WI_M2 = 7666,
- PseudoVNSRL_WI_M2_MASK = 7667,
- PseudoVNSRL_WI_M4 = 7668,
- PseudoVNSRL_WI_M4_MASK = 7669,
- PseudoVNSRL_WI_MF2 = 7670,
- PseudoVNSRL_WI_MF2_MASK = 7671,
- PseudoVNSRL_WI_MF4 = 7672,
- PseudoVNSRL_WI_MF4_MASK = 7673,
- PseudoVNSRL_WI_MF8 = 7674,
- PseudoVNSRL_WI_MF8_MASK = 7675,
- PseudoVNSRL_WV_M1 = 7676,
- PseudoVNSRL_WV_M1_MASK = 7677,
- PseudoVNSRL_WV_M2 = 7678,
- PseudoVNSRL_WV_M2_MASK = 7679,
- PseudoVNSRL_WV_M4 = 7680,
- PseudoVNSRL_WV_M4_MASK = 7681,
- PseudoVNSRL_WV_MF2 = 7682,
- PseudoVNSRL_WV_MF2_MASK = 7683,
- PseudoVNSRL_WV_MF4 = 7684,
- PseudoVNSRL_WV_MF4_MASK = 7685,
- PseudoVNSRL_WV_MF8 = 7686,
- PseudoVNSRL_WV_MF8_MASK = 7687,
- PseudoVNSRL_WX_M1 = 7688,
- PseudoVNSRL_WX_M1_MASK = 7689,
- PseudoVNSRL_WX_M2 = 7690,
- PseudoVNSRL_WX_M2_MASK = 7691,
- PseudoVNSRL_WX_M4 = 7692,
- PseudoVNSRL_WX_M4_MASK = 7693,
- PseudoVNSRL_WX_MF2 = 7694,
- PseudoVNSRL_WX_MF2_MASK = 7695,
- PseudoVNSRL_WX_MF4 = 7696,
- PseudoVNSRL_WX_MF4_MASK = 7697,
- PseudoVNSRL_WX_MF8 = 7698,
- PseudoVNSRL_WX_MF8_MASK = 7699,
- PseudoVOR_VI_M1 = 7700,
- PseudoVOR_VI_M1_MASK = 7701,
- PseudoVOR_VI_M2 = 7702,
- PseudoVOR_VI_M2_MASK = 7703,
- PseudoVOR_VI_M4 = 7704,
- PseudoVOR_VI_M4_MASK = 7705,
- PseudoVOR_VI_M8 = 7706,
- PseudoVOR_VI_M8_MASK = 7707,
- PseudoVOR_VI_MF2 = 7708,
- PseudoVOR_VI_MF2_MASK = 7709,
- PseudoVOR_VI_MF4 = 7710,
- PseudoVOR_VI_MF4_MASK = 7711,
- PseudoVOR_VI_MF8 = 7712,
- PseudoVOR_VI_MF8_MASK = 7713,
- PseudoVOR_VV_M1 = 7714,
- PseudoVOR_VV_M1_MASK = 7715,
- PseudoVOR_VV_M2 = 7716,
- PseudoVOR_VV_M2_MASK = 7717,
- PseudoVOR_VV_M4 = 7718,
- PseudoVOR_VV_M4_MASK = 7719,
- PseudoVOR_VV_M8 = 7720,
- PseudoVOR_VV_M8_MASK = 7721,
- PseudoVOR_VV_MF2 = 7722,
- PseudoVOR_VV_MF2_MASK = 7723,
- PseudoVOR_VV_MF4 = 7724,
- PseudoVOR_VV_MF4_MASK = 7725,
- PseudoVOR_VV_MF8 = 7726,
- PseudoVOR_VV_MF8_MASK = 7727,
- PseudoVOR_VX_M1 = 7728,
- PseudoVOR_VX_M1_MASK = 7729,
- PseudoVOR_VX_M2 = 7730,
- PseudoVOR_VX_M2_MASK = 7731,
- PseudoVOR_VX_M4 = 7732,
- PseudoVOR_VX_M4_MASK = 7733,
- PseudoVOR_VX_M8 = 7734,
- PseudoVOR_VX_M8_MASK = 7735,
- PseudoVOR_VX_MF2 = 7736,
- PseudoVOR_VX_MF2_MASK = 7737,
- PseudoVOR_VX_MF4 = 7738,
- PseudoVOR_VX_MF4_MASK = 7739,
- PseudoVOR_VX_MF8 = 7740,
- PseudoVOR_VX_MF8_MASK = 7741,
- PseudoVQDOTSU_VV_M1 = 7742,
- PseudoVQDOTSU_VV_M1_MASK = 7743,
- PseudoVQDOTSU_VV_M2 = 7744,
- PseudoVQDOTSU_VV_M2_MASK = 7745,
- PseudoVQDOTSU_VV_M4 = 7746,
- PseudoVQDOTSU_VV_M4_MASK = 7747,
- PseudoVQDOTSU_VV_M8 = 7748,
- PseudoVQDOTSU_VV_M8_MASK = 7749,
- PseudoVQDOTSU_VV_MF2 = 7750,
- PseudoVQDOTSU_VV_MF2_MASK = 7751,
- PseudoVQDOTSU_VX_M1 = 7752,
- PseudoVQDOTSU_VX_M1_MASK = 7753,
- PseudoVQDOTSU_VX_M2 = 7754,
- PseudoVQDOTSU_VX_M2_MASK = 7755,
- PseudoVQDOTSU_VX_M4 = 7756,
- PseudoVQDOTSU_VX_M4_MASK = 7757,
- PseudoVQDOTSU_VX_M8 = 7758,
- PseudoVQDOTSU_VX_M8_MASK = 7759,
- PseudoVQDOTSU_VX_MF2 = 7760,
- PseudoVQDOTSU_VX_MF2_MASK = 7761,
- PseudoVQDOTU_VV_M1 = 7762,
- PseudoVQDOTU_VV_M1_MASK = 7763,
- PseudoVQDOTU_VV_M2 = 7764,
- PseudoVQDOTU_VV_M2_MASK = 7765,
- PseudoVQDOTU_VV_M4 = 7766,
- PseudoVQDOTU_VV_M4_MASK = 7767,
- PseudoVQDOTU_VV_M8 = 7768,
- PseudoVQDOTU_VV_M8_MASK = 7769,
- PseudoVQDOTU_VV_MF2 = 7770,
- PseudoVQDOTU_VV_MF2_MASK = 7771,
- PseudoVQDOTU_VX_M1 = 7772,
- PseudoVQDOTU_VX_M1_MASK = 7773,
- PseudoVQDOTU_VX_M2 = 7774,
- PseudoVQDOTU_VX_M2_MASK = 7775,
- PseudoVQDOTU_VX_M4 = 7776,
- PseudoVQDOTU_VX_M4_MASK = 7777,
- PseudoVQDOTU_VX_M8 = 7778,
- PseudoVQDOTU_VX_M8_MASK = 7779,
- PseudoVQDOTU_VX_MF2 = 7780,
- PseudoVQDOTU_VX_MF2_MASK = 7781,
- PseudoVQDOT_VV_M1 = 7782,
- PseudoVQDOT_VV_M1_MASK = 7783,
- PseudoVQDOT_VV_M2 = 7784,
- PseudoVQDOT_VV_M2_MASK = 7785,
- PseudoVQDOT_VV_M4 = 7786,
- PseudoVQDOT_VV_M4_MASK = 7787,
- PseudoVQDOT_VV_M8 = 7788,
- PseudoVQDOT_VV_M8_MASK = 7789,
- PseudoVQDOT_VV_MF2 = 7790,
- PseudoVQDOT_VV_MF2_MASK = 7791,
- PseudoVQDOT_VX_M1 = 7792,
- PseudoVQDOT_VX_M1_MASK = 7793,
- PseudoVQDOT_VX_M2 = 7794,
- PseudoVQDOT_VX_M2_MASK = 7795,
- PseudoVQDOT_VX_M4 = 7796,
- PseudoVQDOT_VX_M4_MASK = 7797,
- PseudoVQDOT_VX_M8 = 7798,
- PseudoVQDOT_VX_M8_MASK = 7799,
- PseudoVQDOT_VX_MF2 = 7800,
- PseudoVQDOT_VX_MF2_MASK = 7801,
- PseudoVREDAND_VS_M1_E16 = 7802,
- PseudoVREDAND_VS_M1_E16_MASK = 7803,
- PseudoVREDAND_VS_M1_E32 = 7804,
- PseudoVREDAND_VS_M1_E32_MASK = 7805,
- PseudoVREDAND_VS_M1_E64 = 7806,
- PseudoVREDAND_VS_M1_E64_MASK = 7807,
- PseudoVREDAND_VS_M1_E8 = 7808,
- PseudoVREDAND_VS_M1_E8_MASK = 7809,
- PseudoVREDAND_VS_M2_E16 = 7810,
- PseudoVREDAND_VS_M2_E16_MASK = 7811,
- PseudoVREDAND_VS_M2_E32 = 7812,
- PseudoVREDAND_VS_M2_E32_MASK = 7813,
- PseudoVREDAND_VS_M2_E64 = 7814,
- PseudoVREDAND_VS_M2_E64_MASK = 7815,
- PseudoVREDAND_VS_M2_E8 = 7816,
- PseudoVREDAND_VS_M2_E8_MASK = 7817,
- PseudoVREDAND_VS_M4_E16 = 7818,
- PseudoVREDAND_VS_M4_E16_MASK = 7819,
- PseudoVREDAND_VS_M4_E32 = 7820,
- PseudoVREDAND_VS_M4_E32_MASK = 7821,
- PseudoVREDAND_VS_M4_E64 = 7822,
- PseudoVREDAND_VS_M4_E64_MASK = 7823,
- PseudoVREDAND_VS_M4_E8 = 7824,
- PseudoVREDAND_VS_M4_E8_MASK = 7825,
- PseudoVREDAND_VS_M8_E16 = 7826,
- PseudoVREDAND_VS_M8_E16_MASK = 7827,
- PseudoVREDAND_VS_M8_E32 = 7828,
- PseudoVREDAND_VS_M8_E32_MASK = 7829,
- PseudoVREDAND_VS_M8_E64 = 7830,
- PseudoVREDAND_VS_M8_E64_MASK = 7831,
- PseudoVREDAND_VS_M8_E8 = 7832,
- PseudoVREDAND_VS_M8_E8_MASK = 7833,
- PseudoVREDAND_VS_MF2_E16 = 7834,
- PseudoVREDAND_VS_MF2_E16_MASK = 7835,
- PseudoVREDAND_VS_MF2_E32 = 7836,
- PseudoVREDAND_VS_MF2_E32_MASK = 7837,
- PseudoVREDAND_VS_MF2_E8 = 7838,
- PseudoVREDAND_VS_MF2_E8_MASK = 7839,
- PseudoVREDAND_VS_MF4_E16 = 7840,
- PseudoVREDAND_VS_MF4_E16_MASK = 7841,
- PseudoVREDAND_VS_MF4_E8 = 7842,
- PseudoVREDAND_VS_MF4_E8_MASK = 7843,
- PseudoVREDAND_VS_MF8_E8 = 7844,
- PseudoVREDAND_VS_MF8_E8_MASK = 7845,
- PseudoVREDMAXU_VS_M1_E16 = 7846,
- PseudoVREDMAXU_VS_M1_E16_MASK = 7847,
- PseudoVREDMAXU_VS_M1_E32 = 7848,
- PseudoVREDMAXU_VS_M1_E32_MASK = 7849,
- PseudoVREDMAXU_VS_M1_E64 = 7850,
- PseudoVREDMAXU_VS_M1_E64_MASK = 7851,
- PseudoVREDMAXU_VS_M1_E8 = 7852,
- PseudoVREDMAXU_VS_M1_E8_MASK = 7853,
- PseudoVREDMAXU_VS_M2_E16 = 7854,
- PseudoVREDMAXU_VS_M2_E16_MASK = 7855,
- PseudoVREDMAXU_VS_M2_E32 = 7856,
- PseudoVREDMAXU_VS_M2_E32_MASK = 7857,
- PseudoVREDMAXU_VS_M2_E64 = 7858,
- PseudoVREDMAXU_VS_M2_E64_MASK = 7859,
- PseudoVREDMAXU_VS_M2_E8 = 7860,
- PseudoVREDMAXU_VS_M2_E8_MASK = 7861,
- PseudoVREDMAXU_VS_M4_E16 = 7862,
- PseudoVREDMAXU_VS_M4_E16_MASK = 7863,
- PseudoVREDMAXU_VS_M4_E32 = 7864,
- PseudoVREDMAXU_VS_M4_E32_MASK = 7865,
- PseudoVREDMAXU_VS_M4_E64 = 7866,
- PseudoVREDMAXU_VS_M4_E64_MASK = 7867,
- PseudoVREDMAXU_VS_M4_E8 = 7868,
- PseudoVREDMAXU_VS_M4_E8_MASK = 7869,
- PseudoVREDMAXU_VS_M8_E16 = 7870,
- PseudoVREDMAXU_VS_M8_E16_MASK = 7871,
- PseudoVREDMAXU_VS_M8_E32 = 7872,
- PseudoVREDMAXU_VS_M8_E32_MASK = 7873,
- PseudoVREDMAXU_VS_M8_E64 = 7874,
- PseudoVREDMAXU_VS_M8_E64_MASK = 7875,
- PseudoVREDMAXU_VS_M8_E8 = 7876,
- PseudoVREDMAXU_VS_M8_E8_MASK = 7877,
- PseudoVREDMAXU_VS_MF2_E16 = 7878,
- PseudoVREDMAXU_VS_MF2_E16_MASK = 7879,
- PseudoVREDMAXU_VS_MF2_E32 = 7880,
- PseudoVREDMAXU_VS_MF2_E32_MASK = 7881,
- PseudoVREDMAXU_VS_MF2_E8 = 7882,
- PseudoVREDMAXU_VS_MF2_E8_MASK = 7883,
- PseudoVREDMAXU_VS_MF4_E16 = 7884,
- PseudoVREDMAXU_VS_MF4_E16_MASK = 7885,
- PseudoVREDMAXU_VS_MF4_E8 = 7886,
- PseudoVREDMAXU_VS_MF4_E8_MASK = 7887,
- PseudoVREDMAXU_VS_MF8_E8 = 7888,
- PseudoVREDMAXU_VS_MF8_E8_MASK = 7889,
- PseudoVREDMAX_VS_M1_E16 = 7890,
- PseudoVREDMAX_VS_M1_E16_MASK = 7891,
- PseudoVREDMAX_VS_M1_E32 = 7892,
- PseudoVREDMAX_VS_M1_E32_MASK = 7893,
- PseudoVREDMAX_VS_M1_E64 = 7894,
- PseudoVREDMAX_VS_M1_E64_MASK = 7895,
- PseudoVREDMAX_VS_M1_E8 = 7896,
- PseudoVREDMAX_VS_M1_E8_MASK = 7897,
- PseudoVREDMAX_VS_M2_E16 = 7898,
- PseudoVREDMAX_VS_M2_E16_MASK = 7899,
- PseudoVREDMAX_VS_M2_E32 = 7900,
- PseudoVREDMAX_VS_M2_E32_MASK = 7901,
- PseudoVREDMAX_VS_M2_E64 = 7902,
- PseudoVREDMAX_VS_M2_E64_MASK = 7903,
- PseudoVREDMAX_VS_M2_E8 = 7904,
- PseudoVREDMAX_VS_M2_E8_MASK = 7905,
- PseudoVREDMAX_VS_M4_E16 = 7906,
- PseudoVREDMAX_VS_M4_E16_MASK = 7907,
- PseudoVREDMAX_VS_M4_E32 = 7908,
- PseudoVREDMAX_VS_M4_E32_MASK = 7909,
- PseudoVREDMAX_VS_M4_E64 = 7910,
- PseudoVREDMAX_VS_M4_E64_MASK = 7911,
- PseudoVREDMAX_VS_M4_E8 = 7912,
- PseudoVREDMAX_VS_M4_E8_MASK = 7913,
- PseudoVREDMAX_VS_M8_E16 = 7914,
- PseudoVREDMAX_VS_M8_E16_MASK = 7915,
- PseudoVREDMAX_VS_M8_E32 = 7916,
- PseudoVREDMAX_VS_M8_E32_MASK = 7917,
- PseudoVREDMAX_VS_M8_E64 = 7918,
- PseudoVREDMAX_VS_M8_E64_MASK = 7919,
- PseudoVREDMAX_VS_M8_E8 = 7920,
- PseudoVREDMAX_VS_M8_E8_MASK = 7921,
- PseudoVREDMAX_VS_MF2_E16 = 7922,
- PseudoVREDMAX_VS_MF2_E16_MASK = 7923,
- PseudoVREDMAX_VS_MF2_E32 = 7924,
- PseudoVREDMAX_VS_MF2_E32_MASK = 7925,
- PseudoVREDMAX_VS_MF2_E8 = 7926,
- PseudoVREDMAX_VS_MF2_E8_MASK = 7927,
- PseudoVREDMAX_VS_MF4_E16 = 7928,
- PseudoVREDMAX_VS_MF4_E16_MASK = 7929,
- PseudoVREDMAX_VS_MF4_E8 = 7930,
- PseudoVREDMAX_VS_MF4_E8_MASK = 7931,
- PseudoVREDMAX_VS_MF8_E8 = 7932,
- PseudoVREDMAX_VS_MF8_E8_MASK = 7933,
- PseudoVREDMINU_VS_M1_E16 = 7934,
- PseudoVREDMINU_VS_M1_E16_MASK = 7935,
- PseudoVREDMINU_VS_M1_E32 = 7936,
- PseudoVREDMINU_VS_M1_E32_MASK = 7937,
- PseudoVREDMINU_VS_M1_E64 = 7938,
- PseudoVREDMINU_VS_M1_E64_MASK = 7939,
- PseudoVREDMINU_VS_M1_E8 = 7940,
- PseudoVREDMINU_VS_M1_E8_MASK = 7941,
- PseudoVREDMINU_VS_M2_E16 = 7942,
- PseudoVREDMINU_VS_M2_E16_MASK = 7943,
- PseudoVREDMINU_VS_M2_E32 = 7944,
- PseudoVREDMINU_VS_M2_E32_MASK = 7945,
- PseudoVREDMINU_VS_M2_E64 = 7946,
- PseudoVREDMINU_VS_M2_E64_MASK = 7947,
- PseudoVREDMINU_VS_M2_E8 = 7948,
- PseudoVREDMINU_VS_M2_E8_MASK = 7949,
- PseudoVREDMINU_VS_M4_E16 = 7950,
- PseudoVREDMINU_VS_M4_E16_MASK = 7951,
- PseudoVREDMINU_VS_M4_E32 = 7952,
- PseudoVREDMINU_VS_M4_E32_MASK = 7953,
- PseudoVREDMINU_VS_M4_E64 = 7954,
- PseudoVREDMINU_VS_M4_E64_MASK = 7955,
- PseudoVREDMINU_VS_M4_E8 = 7956,
- PseudoVREDMINU_VS_M4_E8_MASK = 7957,
- PseudoVREDMINU_VS_M8_E16 = 7958,
- PseudoVREDMINU_VS_M8_E16_MASK = 7959,
- PseudoVREDMINU_VS_M8_E32 = 7960,
- PseudoVREDMINU_VS_M8_E32_MASK = 7961,
- PseudoVREDMINU_VS_M8_E64 = 7962,
- PseudoVREDMINU_VS_M8_E64_MASK = 7963,
- PseudoVREDMINU_VS_M8_E8 = 7964,
- PseudoVREDMINU_VS_M8_E8_MASK = 7965,
- PseudoVREDMINU_VS_MF2_E16 = 7966,
- PseudoVREDMINU_VS_MF2_E16_MASK = 7967,
- PseudoVREDMINU_VS_MF2_E32 = 7968,
- PseudoVREDMINU_VS_MF2_E32_MASK = 7969,
- PseudoVREDMINU_VS_MF2_E8 = 7970,
- PseudoVREDMINU_VS_MF2_E8_MASK = 7971,
- PseudoVREDMINU_VS_MF4_E16 = 7972,
- PseudoVREDMINU_VS_MF4_E16_MASK = 7973,
- PseudoVREDMINU_VS_MF4_E8 = 7974,
- PseudoVREDMINU_VS_MF4_E8_MASK = 7975,
- PseudoVREDMINU_VS_MF8_E8 = 7976,
- PseudoVREDMINU_VS_MF8_E8_MASK = 7977,
- PseudoVREDMIN_VS_M1_E16 = 7978,
- PseudoVREDMIN_VS_M1_E16_MASK = 7979,
- PseudoVREDMIN_VS_M1_E32 = 7980,
- PseudoVREDMIN_VS_M1_E32_MASK = 7981,
- PseudoVREDMIN_VS_M1_E64 = 7982,
- PseudoVREDMIN_VS_M1_E64_MASK = 7983,
- PseudoVREDMIN_VS_M1_E8 = 7984,
- PseudoVREDMIN_VS_M1_E8_MASK = 7985,
- PseudoVREDMIN_VS_M2_E16 = 7986,
- PseudoVREDMIN_VS_M2_E16_MASK = 7987,
- PseudoVREDMIN_VS_M2_E32 = 7988,
- PseudoVREDMIN_VS_M2_E32_MASK = 7989,
- PseudoVREDMIN_VS_M2_E64 = 7990,
- PseudoVREDMIN_VS_M2_E64_MASK = 7991,
- PseudoVREDMIN_VS_M2_E8 = 7992,
- PseudoVREDMIN_VS_M2_E8_MASK = 7993,
- PseudoVREDMIN_VS_M4_E16 = 7994,
- PseudoVREDMIN_VS_M4_E16_MASK = 7995,
- PseudoVREDMIN_VS_M4_E32 = 7996,
- PseudoVREDMIN_VS_M4_E32_MASK = 7997,
- PseudoVREDMIN_VS_M4_E64 = 7998,
- PseudoVREDMIN_VS_M4_E64_MASK = 7999,
- PseudoVREDMIN_VS_M4_E8 = 8000,
- PseudoVREDMIN_VS_M4_E8_MASK = 8001,
- PseudoVREDMIN_VS_M8_E16 = 8002,
- PseudoVREDMIN_VS_M8_E16_MASK = 8003,
- PseudoVREDMIN_VS_M8_E32 = 8004,
- PseudoVREDMIN_VS_M8_E32_MASK = 8005,
- PseudoVREDMIN_VS_M8_E64 = 8006,
- PseudoVREDMIN_VS_M8_E64_MASK = 8007,
- PseudoVREDMIN_VS_M8_E8 = 8008,
- PseudoVREDMIN_VS_M8_E8_MASK = 8009,
- PseudoVREDMIN_VS_MF2_E16 = 8010,
- PseudoVREDMIN_VS_MF2_E16_MASK = 8011,
- PseudoVREDMIN_VS_MF2_E32 = 8012,
- PseudoVREDMIN_VS_MF2_E32_MASK = 8013,
- PseudoVREDMIN_VS_MF2_E8 = 8014,
- PseudoVREDMIN_VS_MF2_E8_MASK = 8015,
- PseudoVREDMIN_VS_MF4_E16 = 8016,
- PseudoVREDMIN_VS_MF4_E16_MASK = 8017,
- PseudoVREDMIN_VS_MF4_E8 = 8018,
- PseudoVREDMIN_VS_MF4_E8_MASK = 8019,
- PseudoVREDMIN_VS_MF8_E8 = 8020,
- PseudoVREDMIN_VS_MF8_E8_MASK = 8021,
- PseudoVREDOR_VS_M1_E16 = 8022,
- PseudoVREDOR_VS_M1_E16_MASK = 8023,
- PseudoVREDOR_VS_M1_E32 = 8024,
- PseudoVREDOR_VS_M1_E32_MASK = 8025,
- PseudoVREDOR_VS_M1_E64 = 8026,
- PseudoVREDOR_VS_M1_E64_MASK = 8027,
- PseudoVREDOR_VS_M1_E8 = 8028,
- PseudoVREDOR_VS_M1_E8_MASK = 8029,
- PseudoVREDOR_VS_M2_E16 = 8030,
- PseudoVREDOR_VS_M2_E16_MASK = 8031,
- PseudoVREDOR_VS_M2_E32 = 8032,
- PseudoVREDOR_VS_M2_E32_MASK = 8033,
- PseudoVREDOR_VS_M2_E64 = 8034,
- PseudoVREDOR_VS_M2_E64_MASK = 8035,
- PseudoVREDOR_VS_M2_E8 = 8036,
- PseudoVREDOR_VS_M2_E8_MASK = 8037,
- PseudoVREDOR_VS_M4_E16 = 8038,
- PseudoVREDOR_VS_M4_E16_MASK = 8039,
- PseudoVREDOR_VS_M4_E32 = 8040,
- PseudoVREDOR_VS_M4_E32_MASK = 8041,
- PseudoVREDOR_VS_M4_E64 = 8042,
- PseudoVREDOR_VS_M4_E64_MASK = 8043,
- PseudoVREDOR_VS_M4_E8 = 8044,
- PseudoVREDOR_VS_M4_E8_MASK = 8045,
- PseudoVREDOR_VS_M8_E16 = 8046,
- PseudoVREDOR_VS_M8_E16_MASK = 8047,
- PseudoVREDOR_VS_M8_E32 = 8048,
- PseudoVREDOR_VS_M8_E32_MASK = 8049,
- PseudoVREDOR_VS_M8_E64 = 8050,
- PseudoVREDOR_VS_M8_E64_MASK = 8051,
- PseudoVREDOR_VS_M8_E8 = 8052,
- PseudoVREDOR_VS_M8_E8_MASK = 8053,
- PseudoVREDOR_VS_MF2_E16 = 8054,
- PseudoVREDOR_VS_MF2_E16_MASK = 8055,
- PseudoVREDOR_VS_MF2_E32 = 8056,
- PseudoVREDOR_VS_MF2_E32_MASK = 8057,
- PseudoVREDOR_VS_MF2_E8 = 8058,
- PseudoVREDOR_VS_MF2_E8_MASK = 8059,
- PseudoVREDOR_VS_MF4_E16 = 8060,
- PseudoVREDOR_VS_MF4_E16_MASK = 8061,
- PseudoVREDOR_VS_MF4_E8 = 8062,
- PseudoVREDOR_VS_MF4_E8_MASK = 8063,
- PseudoVREDOR_VS_MF8_E8 = 8064,
- PseudoVREDOR_VS_MF8_E8_MASK = 8065,
- PseudoVREDSUM_VS_M1_E16 = 8066,
- PseudoVREDSUM_VS_M1_E16_MASK = 8067,
- PseudoVREDSUM_VS_M1_E32 = 8068,
- PseudoVREDSUM_VS_M1_E32_MASK = 8069,
- PseudoVREDSUM_VS_M1_E64 = 8070,
- PseudoVREDSUM_VS_M1_E64_MASK = 8071,
- PseudoVREDSUM_VS_M1_E8 = 8072,
- PseudoVREDSUM_VS_M1_E8_MASK = 8073,
- PseudoVREDSUM_VS_M2_E16 = 8074,
- PseudoVREDSUM_VS_M2_E16_MASK = 8075,
- PseudoVREDSUM_VS_M2_E32 = 8076,
- PseudoVREDSUM_VS_M2_E32_MASK = 8077,
- PseudoVREDSUM_VS_M2_E64 = 8078,
- PseudoVREDSUM_VS_M2_E64_MASK = 8079,
- PseudoVREDSUM_VS_M2_E8 = 8080,
- PseudoVREDSUM_VS_M2_E8_MASK = 8081,
- PseudoVREDSUM_VS_M4_E16 = 8082,
- PseudoVREDSUM_VS_M4_E16_MASK = 8083,
- PseudoVREDSUM_VS_M4_E32 = 8084,
- PseudoVREDSUM_VS_M4_E32_MASK = 8085,
- PseudoVREDSUM_VS_M4_E64 = 8086,
- PseudoVREDSUM_VS_M4_E64_MASK = 8087,
- PseudoVREDSUM_VS_M4_E8 = 8088,
- PseudoVREDSUM_VS_M4_E8_MASK = 8089,
- PseudoVREDSUM_VS_M8_E16 = 8090,
- PseudoVREDSUM_VS_M8_E16_MASK = 8091,
- PseudoVREDSUM_VS_M8_E32 = 8092,
- PseudoVREDSUM_VS_M8_E32_MASK = 8093,
- PseudoVREDSUM_VS_M8_E64 = 8094,
- PseudoVREDSUM_VS_M8_E64_MASK = 8095,
- PseudoVREDSUM_VS_M8_E8 = 8096,
- PseudoVREDSUM_VS_M8_E8_MASK = 8097,
- PseudoVREDSUM_VS_MF2_E16 = 8098,
- PseudoVREDSUM_VS_MF2_E16_MASK = 8099,
- PseudoVREDSUM_VS_MF2_E32 = 8100,
- PseudoVREDSUM_VS_MF2_E32_MASK = 8101,
- PseudoVREDSUM_VS_MF2_E8 = 8102,
- PseudoVREDSUM_VS_MF2_E8_MASK = 8103,
- PseudoVREDSUM_VS_MF4_E16 = 8104,
- PseudoVREDSUM_VS_MF4_E16_MASK = 8105,
- PseudoVREDSUM_VS_MF4_E8 = 8106,
- PseudoVREDSUM_VS_MF4_E8_MASK = 8107,
- PseudoVREDSUM_VS_MF8_E8 = 8108,
- PseudoVREDSUM_VS_MF8_E8_MASK = 8109,
- PseudoVREDXOR_VS_M1_E16 = 8110,
- PseudoVREDXOR_VS_M1_E16_MASK = 8111,
- PseudoVREDXOR_VS_M1_E32 = 8112,
- PseudoVREDXOR_VS_M1_E32_MASK = 8113,
- PseudoVREDXOR_VS_M1_E64 = 8114,
- PseudoVREDXOR_VS_M1_E64_MASK = 8115,
- PseudoVREDXOR_VS_M1_E8 = 8116,
- PseudoVREDXOR_VS_M1_E8_MASK = 8117,
- PseudoVREDXOR_VS_M2_E16 = 8118,
- PseudoVREDXOR_VS_M2_E16_MASK = 8119,
- PseudoVREDXOR_VS_M2_E32 = 8120,
- PseudoVREDXOR_VS_M2_E32_MASK = 8121,
- PseudoVREDXOR_VS_M2_E64 = 8122,
- PseudoVREDXOR_VS_M2_E64_MASK = 8123,
- PseudoVREDXOR_VS_M2_E8 = 8124,
- PseudoVREDXOR_VS_M2_E8_MASK = 8125,
- PseudoVREDXOR_VS_M4_E16 = 8126,
- PseudoVREDXOR_VS_M4_E16_MASK = 8127,
- PseudoVREDXOR_VS_M4_E32 = 8128,
- PseudoVREDXOR_VS_M4_E32_MASK = 8129,
- PseudoVREDXOR_VS_M4_E64 = 8130,
- PseudoVREDXOR_VS_M4_E64_MASK = 8131,
- PseudoVREDXOR_VS_M4_E8 = 8132,
- PseudoVREDXOR_VS_M4_E8_MASK = 8133,
- PseudoVREDXOR_VS_M8_E16 = 8134,
- PseudoVREDXOR_VS_M8_E16_MASK = 8135,
- PseudoVREDXOR_VS_M8_E32 = 8136,
- PseudoVREDXOR_VS_M8_E32_MASK = 8137,
- PseudoVREDXOR_VS_M8_E64 = 8138,
- PseudoVREDXOR_VS_M8_E64_MASK = 8139,
- PseudoVREDXOR_VS_M8_E8 = 8140,
- PseudoVREDXOR_VS_M8_E8_MASK = 8141,
- PseudoVREDXOR_VS_MF2_E16 = 8142,
- PseudoVREDXOR_VS_MF2_E16_MASK = 8143,
- PseudoVREDXOR_VS_MF2_E32 = 8144,
- PseudoVREDXOR_VS_MF2_E32_MASK = 8145,
- PseudoVREDXOR_VS_MF2_E8 = 8146,
- PseudoVREDXOR_VS_MF2_E8_MASK = 8147,
- PseudoVREDXOR_VS_MF4_E16 = 8148,
- PseudoVREDXOR_VS_MF4_E16_MASK = 8149,
- PseudoVREDXOR_VS_MF4_E8 = 8150,
- PseudoVREDXOR_VS_MF4_E8_MASK = 8151,
- PseudoVREDXOR_VS_MF8_E8 = 8152,
- PseudoVREDXOR_VS_MF8_E8_MASK = 8153,
- PseudoVRELOAD2_M1 = 8154,
- PseudoVRELOAD2_M2 = 8155,
- PseudoVRELOAD2_M4 = 8156,
- PseudoVRELOAD2_MF2 = 8157,
- PseudoVRELOAD2_MF4 = 8158,
- PseudoVRELOAD2_MF8 = 8159,
- PseudoVRELOAD3_M1 = 8160,
- PseudoVRELOAD3_M2 = 8161,
- PseudoVRELOAD3_MF2 = 8162,
- PseudoVRELOAD3_MF4 = 8163,
- PseudoVRELOAD3_MF8 = 8164,
- PseudoVRELOAD4_M1 = 8165,
- PseudoVRELOAD4_M2 = 8166,
- PseudoVRELOAD4_MF2 = 8167,
- PseudoVRELOAD4_MF4 = 8168,
- PseudoVRELOAD4_MF8 = 8169,
- PseudoVRELOAD5_M1 = 8170,
- PseudoVRELOAD5_MF2 = 8171,
- PseudoVRELOAD5_MF4 = 8172,
- PseudoVRELOAD5_MF8 = 8173,
- PseudoVRELOAD6_M1 = 8174,
- PseudoVRELOAD6_MF2 = 8175,
- PseudoVRELOAD6_MF4 = 8176,
- PseudoVRELOAD6_MF8 = 8177,
- PseudoVRELOAD7_M1 = 8178,
- PseudoVRELOAD7_MF2 = 8179,
- PseudoVRELOAD7_MF4 = 8180,
- PseudoVRELOAD7_MF8 = 8181,
- PseudoVRELOAD8_M1 = 8182,
- PseudoVRELOAD8_MF2 = 8183,
- PseudoVRELOAD8_MF4 = 8184,
- PseudoVRELOAD8_MF8 = 8185,
- PseudoVREMU_VV_M1_E16 = 8186,
- PseudoVREMU_VV_M1_E16_MASK = 8187,
- PseudoVREMU_VV_M1_E32 = 8188,
- PseudoVREMU_VV_M1_E32_MASK = 8189,
- PseudoVREMU_VV_M1_E64 = 8190,
- PseudoVREMU_VV_M1_E64_MASK = 8191,
- PseudoVREMU_VV_M1_E8 = 8192,
- PseudoVREMU_VV_M1_E8_MASK = 8193,
- PseudoVREMU_VV_M2_E16 = 8194,
- PseudoVREMU_VV_M2_E16_MASK = 8195,
- PseudoVREMU_VV_M2_E32 = 8196,
- PseudoVREMU_VV_M2_E32_MASK = 8197,
- PseudoVREMU_VV_M2_E64 = 8198,
- PseudoVREMU_VV_M2_E64_MASK = 8199,
- PseudoVREMU_VV_M2_E8 = 8200,
- PseudoVREMU_VV_M2_E8_MASK = 8201,
- PseudoVREMU_VV_M4_E16 = 8202,
- PseudoVREMU_VV_M4_E16_MASK = 8203,
- PseudoVREMU_VV_M4_E32 = 8204,
- PseudoVREMU_VV_M4_E32_MASK = 8205,
- PseudoVREMU_VV_M4_E64 = 8206,
- PseudoVREMU_VV_M4_E64_MASK = 8207,
- PseudoVREMU_VV_M4_E8 = 8208,
- PseudoVREMU_VV_M4_E8_MASK = 8209,
- PseudoVREMU_VV_M8_E16 = 8210,
- PseudoVREMU_VV_M8_E16_MASK = 8211,
- PseudoVREMU_VV_M8_E32 = 8212,
- PseudoVREMU_VV_M8_E32_MASK = 8213,
- PseudoVREMU_VV_M8_E64 = 8214,
- PseudoVREMU_VV_M8_E64_MASK = 8215,
- PseudoVREMU_VV_M8_E8 = 8216,
- PseudoVREMU_VV_M8_E8_MASK = 8217,
- PseudoVREMU_VV_MF2_E16 = 8218,
- PseudoVREMU_VV_MF2_E16_MASK = 8219,
- PseudoVREMU_VV_MF2_E32 = 8220,
- PseudoVREMU_VV_MF2_E32_MASK = 8221,
- PseudoVREMU_VV_MF2_E8 = 8222,
- PseudoVREMU_VV_MF2_E8_MASK = 8223,
- PseudoVREMU_VV_MF4_E16 = 8224,
- PseudoVREMU_VV_MF4_E16_MASK = 8225,
- PseudoVREMU_VV_MF4_E8 = 8226,
- PseudoVREMU_VV_MF4_E8_MASK = 8227,
- PseudoVREMU_VV_MF8_E8 = 8228,
- PseudoVREMU_VV_MF8_E8_MASK = 8229,
- PseudoVREMU_VX_M1_E16 = 8230,
- PseudoVREMU_VX_M1_E16_MASK = 8231,
- PseudoVREMU_VX_M1_E32 = 8232,
- PseudoVREMU_VX_M1_E32_MASK = 8233,
- PseudoVREMU_VX_M1_E64 = 8234,
- PseudoVREMU_VX_M1_E64_MASK = 8235,
- PseudoVREMU_VX_M1_E8 = 8236,
- PseudoVREMU_VX_M1_E8_MASK = 8237,
- PseudoVREMU_VX_M2_E16 = 8238,
- PseudoVREMU_VX_M2_E16_MASK = 8239,
- PseudoVREMU_VX_M2_E32 = 8240,
- PseudoVREMU_VX_M2_E32_MASK = 8241,
- PseudoVREMU_VX_M2_E64 = 8242,
- PseudoVREMU_VX_M2_E64_MASK = 8243,
- PseudoVREMU_VX_M2_E8 = 8244,
- PseudoVREMU_VX_M2_E8_MASK = 8245,
- PseudoVREMU_VX_M4_E16 = 8246,
- PseudoVREMU_VX_M4_E16_MASK = 8247,
- PseudoVREMU_VX_M4_E32 = 8248,
- PseudoVREMU_VX_M4_E32_MASK = 8249,
- PseudoVREMU_VX_M4_E64 = 8250,
- PseudoVREMU_VX_M4_E64_MASK = 8251,
- PseudoVREMU_VX_M4_E8 = 8252,
- PseudoVREMU_VX_M4_E8_MASK = 8253,
- PseudoVREMU_VX_M8_E16 = 8254,
- PseudoVREMU_VX_M8_E16_MASK = 8255,
- PseudoVREMU_VX_M8_E32 = 8256,
- PseudoVREMU_VX_M8_E32_MASK = 8257,
- PseudoVREMU_VX_M8_E64 = 8258,
- PseudoVREMU_VX_M8_E64_MASK = 8259,
- PseudoVREMU_VX_M8_E8 = 8260,
- PseudoVREMU_VX_M8_E8_MASK = 8261,
- PseudoVREMU_VX_MF2_E16 = 8262,
- PseudoVREMU_VX_MF2_E16_MASK = 8263,
- PseudoVREMU_VX_MF2_E32 = 8264,
- PseudoVREMU_VX_MF2_E32_MASK = 8265,
- PseudoVREMU_VX_MF2_E8 = 8266,
- PseudoVREMU_VX_MF2_E8_MASK = 8267,
- PseudoVREMU_VX_MF4_E16 = 8268,
- PseudoVREMU_VX_MF4_E16_MASK = 8269,
- PseudoVREMU_VX_MF4_E8 = 8270,
- PseudoVREMU_VX_MF4_E8_MASK = 8271,
- PseudoVREMU_VX_MF8_E8 = 8272,
- PseudoVREMU_VX_MF8_E8_MASK = 8273,
- PseudoVREM_VV_M1_E16 = 8274,
- PseudoVREM_VV_M1_E16_MASK = 8275,
- PseudoVREM_VV_M1_E32 = 8276,
- PseudoVREM_VV_M1_E32_MASK = 8277,
- PseudoVREM_VV_M1_E64 = 8278,
- PseudoVREM_VV_M1_E64_MASK = 8279,
- PseudoVREM_VV_M1_E8 = 8280,
- PseudoVREM_VV_M1_E8_MASK = 8281,
- PseudoVREM_VV_M2_E16 = 8282,
- PseudoVREM_VV_M2_E16_MASK = 8283,
- PseudoVREM_VV_M2_E32 = 8284,
- PseudoVREM_VV_M2_E32_MASK = 8285,
- PseudoVREM_VV_M2_E64 = 8286,
- PseudoVREM_VV_M2_E64_MASK = 8287,
- PseudoVREM_VV_M2_E8 = 8288,
- PseudoVREM_VV_M2_E8_MASK = 8289,
- PseudoVREM_VV_M4_E16 = 8290,
- PseudoVREM_VV_M4_E16_MASK = 8291,
- PseudoVREM_VV_M4_E32 = 8292,
- PseudoVREM_VV_M4_E32_MASK = 8293,
- PseudoVREM_VV_M4_E64 = 8294,
- PseudoVREM_VV_M4_E64_MASK = 8295,
- PseudoVREM_VV_M4_E8 = 8296,
- PseudoVREM_VV_M4_E8_MASK = 8297,
- PseudoVREM_VV_M8_E16 = 8298,
- PseudoVREM_VV_M8_E16_MASK = 8299,
- PseudoVREM_VV_M8_E32 = 8300,
- PseudoVREM_VV_M8_E32_MASK = 8301,
- PseudoVREM_VV_M8_E64 = 8302,
- PseudoVREM_VV_M8_E64_MASK = 8303,
- PseudoVREM_VV_M8_E8 = 8304,
- PseudoVREM_VV_M8_E8_MASK = 8305,
- PseudoVREM_VV_MF2_E16 = 8306,
- PseudoVREM_VV_MF2_E16_MASK = 8307,
- PseudoVREM_VV_MF2_E32 = 8308,
- PseudoVREM_VV_MF2_E32_MASK = 8309,
- PseudoVREM_VV_MF2_E8 = 8310,
- PseudoVREM_VV_MF2_E8_MASK = 8311,
- PseudoVREM_VV_MF4_E16 = 8312,
- PseudoVREM_VV_MF4_E16_MASK = 8313,
- PseudoVREM_VV_MF4_E8 = 8314,
- PseudoVREM_VV_MF4_E8_MASK = 8315,
- PseudoVREM_VV_MF8_E8 = 8316,
- PseudoVREM_VV_MF8_E8_MASK = 8317,
- PseudoVREM_VX_M1_E16 = 8318,
- PseudoVREM_VX_M1_E16_MASK = 8319,
- PseudoVREM_VX_M1_E32 = 8320,
- PseudoVREM_VX_M1_E32_MASK = 8321,
- PseudoVREM_VX_M1_E64 = 8322,
- PseudoVREM_VX_M1_E64_MASK = 8323,
- PseudoVREM_VX_M1_E8 = 8324,
- PseudoVREM_VX_M1_E8_MASK = 8325,
- PseudoVREM_VX_M2_E16 = 8326,
- PseudoVREM_VX_M2_E16_MASK = 8327,
- PseudoVREM_VX_M2_E32 = 8328,
- PseudoVREM_VX_M2_E32_MASK = 8329,
- PseudoVREM_VX_M2_E64 = 8330,
- PseudoVREM_VX_M2_E64_MASK = 8331,
- PseudoVREM_VX_M2_E8 = 8332,
- PseudoVREM_VX_M2_E8_MASK = 8333,
- PseudoVREM_VX_M4_E16 = 8334,
- PseudoVREM_VX_M4_E16_MASK = 8335,
- PseudoVREM_VX_M4_E32 = 8336,
- PseudoVREM_VX_M4_E32_MASK = 8337,
- PseudoVREM_VX_M4_E64 = 8338,
- PseudoVREM_VX_M4_E64_MASK = 8339,
- PseudoVREM_VX_M4_E8 = 8340,
- PseudoVREM_VX_M4_E8_MASK = 8341,
- PseudoVREM_VX_M8_E16 = 8342,
- PseudoVREM_VX_M8_E16_MASK = 8343,
- PseudoVREM_VX_M8_E32 = 8344,
- PseudoVREM_VX_M8_E32_MASK = 8345,
- PseudoVREM_VX_M8_E64 = 8346,
- PseudoVREM_VX_M8_E64_MASK = 8347,
- PseudoVREM_VX_M8_E8 = 8348,
- PseudoVREM_VX_M8_E8_MASK = 8349,
- PseudoVREM_VX_MF2_E16 = 8350,
- PseudoVREM_VX_MF2_E16_MASK = 8351,
- PseudoVREM_VX_MF2_E32 = 8352,
- PseudoVREM_VX_MF2_E32_MASK = 8353,
- PseudoVREM_VX_MF2_E8 = 8354,
- PseudoVREM_VX_MF2_E8_MASK = 8355,
- PseudoVREM_VX_MF4_E16 = 8356,
- PseudoVREM_VX_MF4_E16_MASK = 8357,
- PseudoVREM_VX_MF4_E8 = 8358,
- PseudoVREM_VX_MF4_E8_MASK = 8359,
- PseudoVREM_VX_MF8_E8 = 8360,
- PseudoVREM_VX_MF8_E8_MASK = 8361,
- PseudoVREV8_V_M1 = 8362,
- PseudoVREV8_V_M1_MASK = 8363,
- PseudoVREV8_V_M2 = 8364,
- PseudoVREV8_V_M2_MASK = 8365,
- PseudoVREV8_V_M4 = 8366,
- PseudoVREV8_V_M4_MASK = 8367,
- PseudoVREV8_V_M8 = 8368,
- PseudoVREV8_V_M8_MASK = 8369,
- PseudoVREV8_V_MF2 = 8370,
- PseudoVREV8_V_MF2_MASK = 8371,
- PseudoVREV8_V_MF4 = 8372,
- PseudoVREV8_V_MF4_MASK = 8373,
- PseudoVREV8_V_MF8 = 8374,
- PseudoVREV8_V_MF8_MASK = 8375,
- PseudoVRGATHEREI16_VV_M1_E16_M1 = 8376,
- PseudoVRGATHEREI16_VV_M1_E16_M1_MASK = 8377,
- PseudoVRGATHEREI16_VV_M1_E16_M2 = 8378,
- PseudoVRGATHEREI16_VV_M1_E16_M2_MASK = 8379,
- PseudoVRGATHEREI16_VV_M1_E16_MF2 = 8380,
- PseudoVRGATHEREI16_VV_M1_E16_MF2_MASK = 8381,
- PseudoVRGATHEREI16_VV_M1_E16_MF4 = 8382,
- PseudoVRGATHEREI16_VV_M1_E16_MF4_MASK = 8383,
- PseudoVRGATHEREI16_VV_M1_E32_M1 = 8384,
- PseudoVRGATHEREI16_VV_M1_E32_M1_MASK = 8385,
- PseudoVRGATHEREI16_VV_M1_E32_M2 = 8386,
- PseudoVRGATHEREI16_VV_M1_E32_M2_MASK = 8387,
- PseudoVRGATHEREI16_VV_M1_E32_MF2 = 8388,
- PseudoVRGATHEREI16_VV_M1_E32_MF2_MASK = 8389,
- PseudoVRGATHEREI16_VV_M1_E32_MF4 = 8390,
- PseudoVRGATHEREI16_VV_M1_E32_MF4_MASK = 8391,
- PseudoVRGATHEREI16_VV_M1_E64_M1 = 8392,
- PseudoVRGATHEREI16_VV_M1_E64_M1_MASK = 8393,
- PseudoVRGATHEREI16_VV_M1_E64_M2 = 8394,
- PseudoVRGATHEREI16_VV_M1_E64_M2_MASK = 8395,
- PseudoVRGATHEREI16_VV_M1_E64_MF2 = 8396,
- PseudoVRGATHEREI16_VV_M1_E64_MF2_MASK = 8397,
- PseudoVRGATHEREI16_VV_M1_E64_MF4 = 8398,
- PseudoVRGATHEREI16_VV_M1_E64_MF4_MASK = 8399,
- PseudoVRGATHEREI16_VV_M1_E8_M1 = 8400,
- PseudoVRGATHEREI16_VV_M1_E8_M1_MASK = 8401,
- PseudoVRGATHEREI16_VV_M1_E8_M2 = 8402,
- PseudoVRGATHEREI16_VV_M1_E8_M2_MASK = 8403,
- PseudoVRGATHEREI16_VV_M1_E8_MF2 = 8404,
- PseudoVRGATHEREI16_VV_M1_E8_MF2_MASK = 8405,
- PseudoVRGATHEREI16_VV_M1_E8_MF4 = 8406,
- PseudoVRGATHEREI16_VV_M1_E8_MF4_MASK = 8407,
- PseudoVRGATHEREI16_VV_M2_E16_M1 = 8408,
- PseudoVRGATHEREI16_VV_M2_E16_M1_MASK = 8409,
- PseudoVRGATHEREI16_VV_M2_E16_M2 = 8410,
- PseudoVRGATHEREI16_VV_M2_E16_M2_MASK = 8411,
- PseudoVRGATHEREI16_VV_M2_E16_M4 = 8412,
- PseudoVRGATHEREI16_VV_M2_E16_M4_MASK = 8413,
- PseudoVRGATHEREI16_VV_M2_E16_MF2 = 8414,
- PseudoVRGATHEREI16_VV_M2_E16_MF2_MASK = 8415,
- PseudoVRGATHEREI16_VV_M2_E32_M1 = 8416,
- PseudoVRGATHEREI16_VV_M2_E32_M1_MASK = 8417,
- PseudoVRGATHEREI16_VV_M2_E32_M2 = 8418,
- PseudoVRGATHEREI16_VV_M2_E32_M2_MASK = 8419,
- PseudoVRGATHEREI16_VV_M2_E32_M4 = 8420,
- PseudoVRGATHEREI16_VV_M2_E32_M4_MASK = 8421,
- PseudoVRGATHEREI16_VV_M2_E32_MF2 = 8422,
- PseudoVRGATHEREI16_VV_M2_E32_MF2_MASK = 8423,
- PseudoVRGATHEREI16_VV_M2_E64_M1 = 8424,
- PseudoVRGATHEREI16_VV_M2_E64_M1_MASK = 8425,
- PseudoVRGATHEREI16_VV_M2_E64_M2 = 8426,
- PseudoVRGATHEREI16_VV_M2_E64_M2_MASK = 8427,
- PseudoVRGATHEREI16_VV_M2_E64_M4 = 8428,
- PseudoVRGATHEREI16_VV_M2_E64_M4_MASK = 8429,
- PseudoVRGATHEREI16_VV_M2_E64_MF2 = 8430,
- PseudoVRGATHEREI16_VV_M2_E64_MF2_MASK = 8431,
- PseudoVRGATHEREI16_VV_M2_E8_M1 = 8432,
- PseudoVRGATHEREI16_VV_M2_E8_M1_MASK = 8433,
- PseudoVRGATHEREI16_VV_M2_E8_M2 = 8434,
- PseudoVRGATHEREI16_VV_M2_E8_M2_MASK = 8435,
- PseudoVRGATHEREI16_VV_M2_E8_M4 = 8436,
- PseudoVRGATHEREI16_VV_M2_E8_M4_MASK = 8437,
- PseudoVRGATHEREI16_VV_M2_E8_MF2 = 8438,
- PseudoVRGATHEREI16_VV_M2_E8_MF2_MASK = 8439,
- PseudoVRGATHEREI16_VV_M4_E16_M1 = 8440,
- PseudoVRGATHEREI16_VV_M4_E16_M1_MASK = 8441,
- PseudoVRGATHEREI16_VV_M4_E16_M2 = 8442,
- PseudoVRGATHEREI16_VV_M4_E16_M2_MASK = 8443,
- PseudoVRGATHEREI16_VV_M4_E16_M4 = 8444,
- PseudoVRGATHEREI16_VV_M4_E16_M4_MASK = 8445,
- PseudoVRGATHEREI16_VV_M4_E16_M8 = 8446,
- PseudoVRGATHEREI16_VV_M4_E16_M8_MASK = 8447,
- PseudoVRGATHEREI16_VV_M4_E32_M1 = 8448,
- PseudoVRGATHEREI16_VV_M4_E32_M1_MASK = 8449,
- PseudoVRGATHEREI16_VV_M4_E32_M2 = 8450,
- PseudoVRGATHEREI16_VV_M4_E32_M2_MASK = 8451,
- PseudoVRGATHEREI16_VV_M4_E32_M4 = 8452,
- PseudoVRGATHEREI16_VV_M4_E32_M4_MASK = 8453,
- PseudoVRGATHEREI16_VV_M4_E32_M8 = 8454,
- PseudoVRGATHEREI16_VV_M4_E32_M8_MASK = 8455,
- PseudoVRGATHEREI16_VV_M4_E64_M1 = 8456,
- PseudoVRGATHEREI16_VV_M4_E64_M1_MASK = 8457,
- PseudoVRGATHEREI16_VV_M4_E64_M2 = 8458,
- PseudoVRGATHEREI16_VV_M4_E64_M2_MASK = 8459,
- PseudoVRGATHEREI16_VV_M4_E64_M4 = 8460,
- PseudoVRGATHEREI16_VV_M4_E64_M4_MASK = 8461,
- PseudoVRGATHEREI16_VV_M4_E64_M8 = 8462,
- PseudoVRGATHEREI16_VV_M4_E64_M8_MASK = 8463,
- PseudoVRGATHEREI16_VV_M4_E8_M1 = 8464,
- PseudoVRGATHEREI16_VV_M4_E8_M1_MASK = 8465,
- PseudoVRGATHEREI16_VV_M4_E8_M2 = 8466,
- PseudoVRGATHEREI16_VV_M4_E8_M2_MASK = 8467,
- PseudoVRGATHEREI16_VV_M4_E8_M4 = 8468,
- PseudoVRGATHEREI16_VV_M4_E8_M4_MASK = 8469,
- PseudoVRGATHEREI16_VV_M4_E8_M8 = 8470,
- PseudoVRGATHEREI16_VV_M4_E8_M8_MASK = 8471,
- PseudoVRGATHEREI16_VV_M8_E16_M2 = 8472,
- PseudoVRGATHEREI16_VV_M8_E16_M2_MASK = 8473,
- PseudoVRGATHEREI16_VV_M8_E16_M4 = 8474,
- PseudoVRGATHEREI16_VV_M8_E16_M4_MASK = 8475,
- PseudoVRGATHEREI16_VV_M8_E16_M8 = 8476,
- PseudoVRGATHEREI16_VV_M8_E16_M8_MASK = 8477,
- PseudoVRGATHEREI16_VV_M8_E32_M2 = 8478,
- PseudoVRGATHEREI16_VV_M8_E32_M2_MASK = 8479,
- PseudoVRGATHEREI16_VV_M8_E32_M4 = 8480,
- PseudoVRGATHEREI16_VV_M8_E32_M4_MASK = 8481,
- PseudoVRGATHEREI16_VV_M8_E32_M8 = 8482,
- PseudoVRGATHEREI16_VV_M8_E32_M8_MASK = 8483,
- PseudoVRGATHEREI16_VV_M8_E64_M2 = 8484,
- PseudoVRGATHEREI16_VV_M8_E64_M2_MASK = 8485,
- PseudoVRGATHEREI16_VV_M8_E64_M4 = 8486,
- PseudoVRGATHEREI16_VV_M8_E64_M4_MASK = 8487,
- PseudoVRGATHEREI16_VV_M8_E64_M8 = 8488,
- PseudoVRGATHEREI16_VV_M8_E64_M8_MASK = 8489,
- PseudoVRGATHEREI16_VV_M8_E8_M2 = 8490,
- PseudoVRGATHEREI16_VV_M8_E8_M2_MASK = 8491,
- PseudoVRGATHEREI16_VV_M8_E8_M4 = 8492,
- PseudoVRGATHEREI16_VV_M8_E8_M4_MASK = 8493,
- PseudoVRGATHEREI16_VV_M8_E8_M8 = 8494,
- PseudoVRGATHEREI16_VV_M8_E8_M8_MASK = 8495,
- PseudoVRGATHEREI16_VV_MF2_E16_M1 = 8496,
- PseudoVRGATHEREI16_VV_MF2_E16_M1_MASK = 8497,
- PseudoVRGATHEREI16_VV_MF2_E16_MF2 = 8498,
- PseudoVRGATHEREI16_VV_MF2_E16_MF2_MASK = 8499,
- PseudoVRGATHEREI16_VV_MF2_E16_MF4 = 8500,
- PseudoVRGATHEREI16_VV_MF2_E16_MF4_MASK = 8501,
- PseudoVRGATHEREI16_VV_MF2_E16_MF8 = 8502,
- PseudoVRGATHEREI16_VV_MF2_E16_MF8_MASK = 8503,
- PseudoVRGATHEREI16_VV_MF2_E32_M1 = 8504,
- PseudoVRGATHEREI16_VV_MF2_E32_M1_MASK = 8505,
- PseudoVRGATHEREI16_VV_MF2_E32_MF2 = 8506,
- PseudoVRGATHEREI16_VV_MF2_E32_MF2_MASK = 8507,
- PseudoVRGATHEREI16_VV_MF2_E32_MF4 = 8508,
- PseudoVRGATHEREI16_VV_MF2_E32_MF4_MASK = 8509,
- PseudoVRGATHEREI16_VV_MF2_E32_MF8 = 8510,
- PseudoVRGATHEREI16_VV_MF2_E32_MF8_MASK = 8511,
- PseudoVRGATHEREI16_VV_MF2_E8_M1 = 8512,
- PseudoVRGATHEREI16_VV_MF2_E8_M1_MASK = 8513,
- PseudoVRGATHEREI16_VV_MF2_E8_MF2 = 8514,
- PseudoVRGATHEREI16_VV_MF2_E8_MF2_MASK = 8515,
- PseudoVRGATHEREI16_VV_MF2_E8_MF4 = 8516,
- PseudoVRGATHEREI16_VV_MF2_E8_MF4_MASK = 8517,
- PseudoVRGATHEREI16_VV_MF2_E8_MF8 = 8518,
- PseudoVRGATHEREI16_VV_MF2_E8_MF8_MASK = 8519,
- PseudoVRGATHEREI16_VV_MF4_E16_MF2 = 8520,
- PseudoVRGATHEREI16_VV_MF4_E16_MF2_MASK = 8521,
- PseudoVRGATHEREI16_VV_MF4_E16_MF4 = 8522,
- PseudoVRGATHEREI16_VV_MF4_E16_MF4_MASK = 8523,
- PseudoVRGATHEREI16_VV_MF4_E16_MF8 = 8524,
- PseudoVRGATHEREI16_VV_MF4_E16_MF8_MASK = 8525,
- PseudoVRGATHEREI16_VV_MF4_E8_MF2 = 8526,
- PseudoVRGATHEREI16_VV_MF4_E8_MF2_MASK = 8527,
- PseudoVRGATHEREI16_VV_MF4_E8_MF4 = 8528,
- PseudoVRGATHEREI16_VV_MF4_E8_MF4_MASK = 8529,
- PseudoVRGATHEREI16_VV_MF4_E8_MF8 = 8530,
- PseudoVRGATHEREI16_VV_MF4_E8_MF8_MASK = 8531,
- PseudoVRGATHEREI16_VV_MF8_E8_MF4 = 8532,
- PseudoVRGATHEREI16_VV_MF8_E8_MF4_MASK = 8533,
- PseudoVRGATHEREI16_VV_MF8_E8_MF8 = 8534,
- PseudoVRGATHEREI16_VV_MF8_E8_MF8_MASK = 8535,
- PseudoVRGATHER_VI_M1 = 8536,
- PseudoVRGATHER_VI_M1_MASK = 8537,
- PseudoVRGATHER_VI_M2 = 8538,
- PseudoVRGATHER_VI_M2_MASK = 8539,
- PseudoVRGATHER_VI_M4 = 8540,
- PseudoVRGATHER_VI_M4_MASK = 8541,
- PseudoVRGATHER_VI_M8 = 8542,
- PseudoVRGATHER_VI_M8_MASK = 8543,
- PseudoVRGATHER_VI_MF2 = 8544,
- PseudoVRGATHER_VI_MF2_MASK = 8545,
- PseudoVRGATHER_VI_MF4 = 8546,
- PseudoVRGATHER_VI_MF4_MASK = 8547,
- PseudoVRGATHER_VI_MF8 = 8548,
- PseudoVRGATHER_VI_MF8_MASK = 8549,
- PseudoVRGATHER_VV_M1_E16 = 8550,
- PseudoVRGATHER_VV_M1_E16_MASK = 8551,
- PseudoVRGATHER_VV_M1_E32 = 8552,
- PseudoVRGATHER_VV_M1_E32_MASK = 8553,
- PseudoVRGATHER_VV_M1_E64 = 8554,
- PseudoVRGATHER_VV_M1_E64_MASK = 8555,
- PseudoVRGATHER_VV_M1_E8 = 8556,
- PseudoVRGATHER_VV_M1_E8_MASK = 8557,
- PseudoVRGATHER_VV_M2_E16 = 8558,
- PseudoVRGATHER_VV_M2_E16_MASK = 8559,
- PseudoVRGATHER_VV_M2_E32 = 8560,
- PseudoVRGATHER_VV_M2_E32_MASK = 8561,
- PseudoVRGATHER_VV_M2_E64 = 8562,
- PseudoVRGATHER_VV_M2_E64_MASK = 8563,
- PseudoVRGATHER_VV_M2_E8 = 8564,
- PseudoVRGATHER_VV_M2_E8_MASK = 8565,
- PseudoVRGATHER_VV_M4_E16 = 8566,
- PseudoVRGATHER_VV_M4_E16_MASK = 8567,
- PseudoVRGATHER_VV_M4_E32 = 8568,
- PseudoVRGATHER_VV_M4_E32_MASK = 8569,
- PseudoVRGATHER_VV_M4_E64 = 8570,
- PseudoVRGATHER_VV_M4_E64_MASK = 8571,
- PseudoVRGATHER_VV_M4_E8 = 8572,
- PseudoVRGATHER_VV_M4_E8_MASK = 8573,
- PseudoVRGATHER_VV_M8_E16 = 8574,
- PseudoVRGATHER_VV_M8_E16_MASK = 8575,
- PseudoVRGATHER_VV_M8_E32 = 8576,
- PseudoVRGATHER_VV_M8_E32_MASK = 8577,
- PseudoVRGATHER_VV_M8_E64 = 8578,
- PseudoVRGATHER_VV_M8_E64_MASK = 8579,
- PseudoVRGATHER_VV_M8_E8 = 8580,
- PseudoVRGATHER_VV_M8_E8_MASK = 8581,
- PseudoVRGATHER_VV_MF2_E16 = 8582,
- PseudoVRGATHER_VV_MF2_E16_MASK = 8583,
- PseudoVRGATHER_VV_MF2_E32 = 8584,
- PseudoVRGATHER_VV_MF2_E32_MASK = 8585,
- PseudoVRGATHER_VV_MF2_E8 = 8586,
- PseudoVRGATHER_VV_MF2_E8_MASK = 8587,
- PseudoVRGATHER_VV_MF4_E16 = 8588,
- PseudoVRGATHER_VV_MF4_E16_MASK = 8589,
- PseudoVRGATHER_VV_MF4_E8 = 8590,
- PseudoVRGATHER_VV_MF4_E8_MASK = 8591,
- PseudoVRGATHER_VV_MF8_E8 = 8592,
- PseudoVRGATHER_VV_MF8_E8_MASK = 8593,
- PseudoVRGATHER_VX_M1 = 8594,
- PseudoVRGATHER_VX_M1_MASK = 8595,
- PseudoVRGATHER_VX_M2 = 8596,
- PseudoVRGATHER_VX_M2_MASK = 8597,
- PseudoVRGATHER_VX_M4 = 8598,
- PseudoVRGATHER_VX_M4_MASK = 8599,
- PseudoVRGATHER_VX_M8 = 8600,
- PseudoVRGATHER_VX_M8_MASK = 8601,
- PseudoVRGATHER_VX_MF2 = 8602,
- PseudoVRGATHER_VX_MF2_MASK = 8603,
- PseudoVRGATHER_VX_MF4 = 8604,
- PseudoVRGATHER_VX_MF4_MASK = 8605,
- PseudoVRGATHER_VX_MF8 = 8606,
- PseudoVRGATHER_VX_MF8_MASK = 8607,
- PseudoVROL_VV_M1 = 8608,
- PseudoVROL_VV_M1_MASK = 8609,
- PseudoVROL_VV_M2 = 8610,
- PseudoVROL_VV_M2_MASK = 8611,
- PseudoVROL_VV_M4 = 8612,
- PseudoVROL_VV_M4_MASK = 8613,
- PseudoVROL_VV_M8 = 8614,
- PseudoVROL_VV_M8_MASK = 8615,
- PseudoVROL_VV_MF2 = 8616,
- PseudoVROL_VV_MF2_MASK = 8617,
- PseudoVROL_VV_MF4 = 8618,
- PseudoVROL_VV_MF4_MASK = 8619,
- PseudoVROL_VV_MF8 = 8620,
- PseudoVROL_VV_MF8_MASK = 8621,
- PseudoVROL_VX_M1 = 8622,
- PseudoVROL_VX_M1_MASK = 8623,
- PseudoVROL_VX_M2 = 8624,
- PseudoVROL_VX_M2_MASK = 8625,
- PseudoVROL_VX_M4 = 8626,
- PseudoVROL_VX_M4_MASK = 8627,
- PseudoVROL_VX_M8 = 8628,
- PseudoVROL_VX_M8_MASK = 8629,
- PseudoVROL_VX_MF2 = 8630,
- PseudoVROL_VX_MF2_MASK = 8631,
- PseudoVROL_VX_MF4 = 8632,
- PseudoVROL_VX_MF4_MASK = 8633,
- PseudoVROL_VX_MF8 = 8634,
- PseudoVROL_VX_MF8_MASK = 8635,
- PseudoVROR_VI_M1 = 8636,
- PseudoVROR_VI_M1_MASK = 8637,
- PseudoVROR_VI_M2 = 8638,
- PseudoVROR_VI_M2_MASK = 8639,
- PseudoVROR_VI_M4 = 8640,
- PseudoVROR_VI_M4_MASK = 8641,
- PseudoVROR_VI_M8 = 8642,
- PseudoVROR_VI_M8_MASK = 8643,
- PseudoVROR_VI_MF2 = 8644,
- PseudoVROR_VI_MF2_MASK = 8645,
- PseudoVROR_VI_MF4 = 8646,
- PseudoVROR_VI_MF4_MASK = 8647,
- PseudoVROR_VI_MF8 = 8648,
- PseudoVROR_VI_MF8_MASK = 8649,
- PseudoVROR_VV_M1 = 8650,
- PseudoVROR_VV_M1_MASK = 8651,
- PseudoVROR_VV_M2 = 8652,
- PseudoVROR_VV_M2_MASK = 8653,
- PseudoVROR_VV_M4 = 8654,
- PseudoVROR_VV_M4_MASK = 8655,
- PseudoVROR_VV_M8 = 8656,
- PseudoVROR_VV_M8_MASK = 8657,
- PseudoVROR_VV_MF2 = 8658,
- PseudoVROR_VV_MF2_MASK = 8659,
- PseudoVROR_VV_MF4 = 8660,
- PseudoVROR_VV_MF4_MASK = 8661,
- PseudoVROR_VV_MF8 = 8662,
- PseudoVROR_VV_MF8_MASK = 8663,
- PseudoVROR_VX_M1 = 8664,
- PseudoVROR_VX_M1_MASK = 8665,
- PseudoVROR_VX_M2 = 8666,
- PseudoVROR_VX_M2_MASK = 8667,
- PseudoVROR_VX_M4 = 8668,
- PseudoVROR_VX_M4_MASK = 8669,
- PseudoVROR_VX_M8 = 8670,
- PseudoVROR_VX_M8_MASK = 8671,
- PseudoVROR_VX_MF2 = 8672,
- PseudoVROR_VX_MF2_MASK = 8673,
- PseudoVROR_VX_MF4 = 8674,
- PseudoVROR_VX_MF4_MASK = 8675,
- PseudoVROR_VX_MF8 = 8676,
- PseudoVROR_VX_MF8_MASK = 8677,
- PseudoVRSUB_VI_M1 = 8678,
- PseudoVRSUB_VI_M1_MASK = 8679,
- PseudoVRSUB_VI_M2 = 8680,
- PseudoVRSUB_VI_M2_MASK = 8681,
- PseudoVRSUB_VI_M4 = 8682,
- PseudoVRSUB_VI_M4_MASK = 8683,
- PseudoVRSUB_VI_M8 = 8684,
- PseudoVRSUB_VI_M8_MASK = 8685,
- PseudoVRSUB_VI_MF2 = 8686,
- PseudoVRSUB_VI_MF2_MASK = 8687,
- PseudoVRSUB_VI_MF4 = 8688,
- PseudoVRSUB_VI_MF4_MASK = 8689,
- PseudoVRSUB_VI_MF8 = 8690,
- PseudoVRSUB_VI_MF8_MASK = 8691,
- PseudoVRSUB_VX_M1 = 8692,
- PseudoVRSUB_VX_M1_MASK = 8693,
- PseudoVRSUB_VX_M2 = 8694,
- PseudoVRSUB_VX_M2_MASK = 8695,
- PseudoVRSUB_VX_M4 = 8696,
- PseudoVRSUB_VX_M4_MASK = 8697,
- PseudoVRSUB_VX_M8 = 8698,
- PseudoVRSUB_VX_M8_MASK = 8699,
- PseudoVRSUB_VX_MF2 = 8700,
- PseudoVRSUB_VX_MF2_MASK = 8701,
- PseudoVRSUB_VX_MF4 = 8702,
- PseudoVRSUB_VX_MF4_MASK = 8703,
- PseudoVRSUB_VX_MF8 = 8704,
- PseudoVRSUB_VX_MF8_MASK = 8705,
- PseudoVSADDU_VI_M1 = 8706,
- PseudoVSADDU_VI_M1_MASK = 8707,
- PseudoVSADDU_VI_M2 = 8708,
- PseudoVSADDU_VI_M2_MASK = 8709,
- PseudoVSADDU_VI_M4 = 8710,
- PseudoVSADDU_VI_M4_MASK = 8711,
- PseudoVSADDU_VI_M8 = 8712,
- PseudoVSADDU_VI_M8_MASK = 8713,
- PseudoVSADDU_VI_MF2 = 8714,
- PseudoVSADDU_VI_MF2_MASK = 8715,
- PseudoVSADDU_VI_MF4 = 8716,
- PseudoVSADDU_VI_MF4_MASK = 8717,
- PseudoVSADDU_VI_MF8 = 8718,
- PseudoVSADDU_VI_MF8_MASK = 8719,
- PseudoVSADDU_VV_M1 = 8720,
- PseudoVSADDU_VV_M1_MASK = 8721,
- PseudoVSADDU_VV_M2 = 8722,
- PseudoVSADDU_VV_M2_MASK = 8723,
- PseudoVSADDU_VV_M4 = 8724,
- PseudoVSADDU_VV_M4_MASK = 8725,
- PseudoVSADDU_VV_M8 = 8726,
- PseudoVSADDU_VV_M8_MASK = 8727,
- PseudoVSADDU_VV_MF2 = 8728,
- PseudoVSADDU_VV_MF2_MASK = 8729,
- PseudoVSADDU_VV_MF4 = 8730,
- PseudoVSADDU_VV_MF4_MASK = 8731,
- PseudoVSADDU_VV_MF8 = 8732,
- PseudoVSADDU_VV_MF8_MASK = 8733,
- PseudoVSADDU_VX_M1 = 8734,
- PseudoVSADDU_VX_M1_MASK = 8735,
- PseudoVSADDU_VX_M2 = 8736,
- PseudoVSADDU_VX_M2_MASK = 8737,
- PseudoVSADDU_VX_M4 = 8738,
- PseudoVSADDU_VX_M4_MASK = 8739,
- PseudoVSADDU_VX_M8 = 8740,
- PseudoVSADDU_VX_M8_MASK = 8741,
- PseudoVSADDU_VX_MF2 = 8742,
- PseudoVSADDU_VX_MF2_MASK = 8743,
- PseudoVSADDU_VX_MF4 = 8744,
- PseudoVSADDU_VX_MF4_MASK = 8745,
- PseudoVSADDU_VX_MF8 = 8746,
- PseudoVSADDU_VX_MF8_MASK = 8747,
- PseudoVSADD_VI_M1 = 8748,
- PseudoVSADD_VI_M1_MASK = 8749,
- PseudoVSADD_VI_M2 = 8750,
- PseudoVSADD_VI_M2_MASK = 8751,
- PseudoVSADD_VI_M4 = 8752,
- PseudoVSADD_VI_M4_MASK = 8753,
- PseudoVSADD_VI_M8 = 8754,
- PseudoVSADD_VI_M8_MASK = 8755,
- PseudoVSADD_VI_MF2 = 8756,
- PseudoVSADD_VI_MF2_MASK = 8757,
- PseudoVSADD_VI_MF4 = 8758,
- PseudoVSADD_VI_MF4_MASK = 8759,
- PseudoVSADD_VI_MF8 = 8760,
- PseudoVSADD_VI_MF8_MASK = 8761,
- PseudoVSADD_VV_M1 = 8762,
- PseudoVSADD_VV_M1_MASK = 8763,
- PseudoVSADD_VV_M2 = 8764,
- PseudoVSADD_VV_M2_MASK = 8765,
- PseudoVSADD_VV_M4 = 8766,
- PseudoVSADD_VV_M4_MASK = 8767,
- PseudoVSADD_VV_M8 = 8768,
- PseudoVSADD_VV_M8_MASK = 8769,
- PseudoVSADD_VV_MF2 = 8770,
- PseudoVSADD_VV_MF2_MASK = 8771,
- PseudoVSADD_VV_MF4 = 8772,
- PseudoVSADD_VV_MF4_MASK = 8773,
- PseudoVSADD_VV_MF8 = 8774,
- PseudoVSADD_VV_MF8_MASK = 8775,
- PseudoVSADD_VX_M1 = 8776,
- PseudoVSADD_VX_M1_MASK = 8777,
- PseudoVSADD_VX_M2 = 8778,
- PseudoVSADD_VX_M2_MASK = 8779,
- PseudoVSADD_VX_M4 = 8780,
- PseudoVSADD_VX_M4_MASK = 8781,
- PseudoVSADD_VX_M8 = 8782,
- PseudoVSADD_VX_M8_MASK = 8783,
- PseudoVSADD_VX_MF2 = 8784,
- PseudoVSADD_VX_MF2_MASK = 8785,
- PseudoVSADD_VX_MF4 = 8786,
- PseudoVSADD_VX_MF4_MASK = 8787,
- PseudoVSADD_VX_MF8 = 8788,
- PseudoVSADD_VX_MF8_MASK = 8789,
- PseudoVSBC_VVM_M1 = 8790,
- PseudoVSBC_VVM_M2 = 8791,
- PseudoVSBC_VVM_M4 = 8792,
- PseudoVSBC_VVM_M8 = 8793,
- PseudoVSBC_VVM_MF2 = 8794,
- PseudoVSBC_VVM_MF4 = 8795,
- PseudoVSBC_VVM_MF8 = 8796,
- PseudoVSBC_VXM_M1 = 8797,
- PseudoVSBC_VXM_M2 = 8798,
- PseudoVSBC_VXM_M4 = 8799,
- PseudoVSBC_VXM_M8 = 8800,
- PseudoVSBC_VXM_MF2 = 8801,
- PseudoVSBC_VXM_MF4 = 8802,
- PseudoVSBC_VXM_MF8 = 8803,
- PseudoVSE16_V_M1 = 8804,
- PseudoVSE16_V_M1_MASK = 8805,
- PseudoVSE16_V_M2 = 8806,
- PseudoVSE16_V_M2_MASK = 8807,
- PseudoVSE16_V_M4 = 8808,
- PseudoVSE16_V_M4_MASK = 8809,
- PseudoVSE16_V_M8 = 8810,
- PseudoVSE16_V_M8_MASK = 8811,
- PseudoVSE16_V_MF2 = 8812,
- PseudoVSE16_V_MF2_MASK = 8813,
- PseudoVSE16_V_MF4 = 8814,
- PseudoVSE16_V_MF4_MASK = 8815,
- PseudoVSE32_V_M1 = 8816,
- PseudoVSE32_V_M1_MASK = 8817,
- PseudoVSE32_V_M2 = 8818,
- PseudoVSE32_V_M2_MASK = 8819,
- PseudoVSE32_V_M4 = 8820,
- PseudoVSE32_V_M4_MASK = 8821,
- PseudoVSE32_V_M8 = 8822,
- PseudoVSE32_V_M8_MASK = 8823,
- PseudoVSE32_V_MF2 = 8824,
- PseudoVSE32_V_MF2_MASK = 8825,
- PseudoVSE64_V_M1 = 8826,
- PseudoVSE64_V_M1_MASK = 8827,
- PseudoVSE64_V_M2 = 8828,
- PseudoVSE64_V_M2_MASK = 8829,
- PseudoVSE64_V_M4 = 8830,
- PseudoVSE64_V_M4_MASK = 8831,
- PseudoVSE64_V_M8 = 8832,
- PseudoVSE64_V_M8_MASK = 8833,
- PseudoVSE8_V_M1 = 8834,
- PseudoVSE8_V_M1_MASK = 8835,
- PseudoVSE8_V_M2 = 8836,
- PseudoVSE8_V_M2_MASK = 8837,
- PseudoVSE8_V_M4 = 8838,
- PseudoVSE8_V_M4_MASK = 8839,
- PseudoVSE8_V_M8 = 8840,
- PseudoVSE8_V_M8_MASK = 8841,
- PseudoVSE8_V_MF2 = 8842,
- PseudoVSE8_V_MF2_MASK = 8843,
- PseudoVSE8_V_MF4 = 8844,
- PseudoVSE8_V_MF4_MASK = 8845,
- PseudoVSE8_V_MF8 = 8846,
- PseudoVSE8_V_MF8_MASK = 8847,
- PseudoVSETIVLI = 8848,
- PseudoVSETVLI = 8849,
- PseudoVSETVLIX0 = 8850,
- PseudoVSETVLIX0X0 = 8851,
- PseudoVSEXT_VF2_M1 = 8852,
- PseudoVSEXT_VF2_M1_MASK = 8853,
- PseudoVSEXT_VF2_M2 = 8854,
- PseudoVSEXT_VF2_M2_MASK = 8855,
- PseudoVSEXT_VF2_M4 = 8856,
- PseudoVSEXT_VF2_M4_MASK = 8857,
- PseudoVSEXT_VF2_M8 = 8858,
- PseudoVSEXT_VF2_M8_MASK = 8859,
- PseudoVSEXT_VF2_MF2 = 8860,
- PseudoVSEXT_VF2_MF2_MASK = 8861,
- PseudoVSEXT_VF2_MF4 = 8862,
- PseudoVSEXT_VF2_MF4_MASK = 8863,
- PseudoVSEXT_VF4_M1 = 8864,
- PseudoVSEXT_VF4_M1_MASK = 8865,
- PseudoVSEXT_VF4_M2 = 8866,
- PseudoVSEXT_VF4_M2_MASK = 8867,
- PseudoVSEXT_VF4_M4 = 8868,
- PseudoVSEXT_VF4_M4_MASK = 8869,
- PseudoVSEXT_VF4_M8 = 8870,
- PseudoVSEXT_VF4_M8_MASK = 8871,
- PseudoVSEXT_VF4_MF2 = 8872,
- PseudoVSEXT_VF4_MF2_MASK = 8873,
- PseudoVSEXT_VF8_M1 = 8874,
- PseudoVSEXT_VF8_M1_MASK = 8875,
- PseudoVSEXT_VF8_M2 = 8876,
- PseudoVSEXT_VF8_M2_MASK = 8877,
- PseudoVSEXT_VF8_M4 = 8878,
- PseudoVSEXT_VF8_M4_MASK = 8879,
- PseudoVSEXT_VF8_M8 = 8880,
- PseudoVSEXT_VF8_M8_MASK = 8881,
- PseudoVSHA2CH_VV_M1 = 8882,
- PseudoVSHA2CH_VV_M2 = 8883,
- PseudoVSHA2CH_VV_M4 = 8884,
- PseudoVSHA2CH_VV_M8 = 8885,
- PseudoVSHA2CH_VV_MF2 = 8886,
- PseudoVSHA2CL_VV_M1 = 8887,
- PseudoVSHA2CL_VV_M2 = 8888,
- PseudoVSHA2CL_VV_M4 = 8889,
- PseudoVSHA2CL_VV_M8 = 8890,
- PseudoVSHA2CL_VV_MF2 = 8891,
- PseudoVSHA2MS_VV_M1_E32 = 8892,
- PseudoVSHA2MS_VV_M1_E64 = 8893,
- PseudoVSHA2MS_VV_M2_E32 = 8894,
- PseudoVSHA2MS_VV_M2_E64 = 8895,
- PseudoVSHA2MS_VV_M4_E32 = 8896,
- PseudoVSHA2MS_VV_M4_E64 = 8897,
- PseudoVSHA2MS_VV_M8_E32 = 8898,
- PseudoVSHA2MS_VV_M8_E64 = 8899,
- PseudoVSHA2MS_VV_MF2_E32 = 8900,
- PseudoVSLIDE1DOWN_VX_M1 = 8901,
- PseudoVSLIDE1DOWN_VX_M1_MASK = 8902,
- PseudoVSLIDE1DOWN_VX_M2 = 8903,
- PseudoVSLIDE1DOWN_VX_M2_MASK = 8904,
- PseudoVSLIDE1DOWN_VX_M4 = 8905,
- PseudoVSLIDE1DOWN_VX_M4_MASK = 8906,
- PseudoVSLIDE1DOWN_VX_M8 = 8907,
- PseudoVSLIDE1DOWN_VX_M8_MASK = 8908,
- PseudoVSLIDE1DOWN_VX_MF2 = 8909,
- PseudoVSLIDE1DOWN_VX_MF2_MASK = 8910,
- PseudoVSLIDE1DOWN_VX_MF4 = 8911,
- PseudoVSLIDE1DOWN_VX_MF4_MASK = 8912,
- PseudoVSLIDE1DOWN_VX_MF8 = 8913,
- PseudoVSLIDE1DOWN_VX_MF8_MASK = 8914,
- PseudoVSLIDE1UP_VX_M1 = 8915,
- PseudoVSLIDE1UP_VX_M1_MASK = 8916,
- PseudoVSLIDE1UP_VX_M2 = 8917,
- PseudoVSLIDE1UP_VX_M2_MASK = 8918,
- PseudoVSLIDE1UP_VX_M4 = 8919,
- PseudoVSLIDE1UP_VX_M4_MASK = 8920,
- PseudoVSLIDE1UP_VX_M8 = 8921,
- PseudoVSLIDE1UP_VX_M8_MASK = 8922,
- PseudoVSLIDE1UP_VX_MF2 = 8923,
- PseudoVSLIDE1UP_VX_MF2_MASK = 8924,
- PseudoVSLIDE1UP_VX_MF4 = 8925,
- PseudoVSLIDE1UP_VX_MF4_MASK = 8926,
- PseudoVSLIDE1UP_VX_MF8 = 8927,
- PseudoVSLIDE1UP_VX_MF8_MASK = 8928,
- PseudoVSLIDEDOWN_VI_M1 = 8929,
- PseudoVSLIDEDOWN_VI_M1_MASK = 8930,
- PseudoVSLIDEDOWN_VI_M2 = 8931,
- PseudoVSLIDEDOWN_VI_M2_MASK = 8932,
- PseudoVSLIDEDOWN_VI_M4 = 8933,
- PseudoVSLIDEDOWN_VI_M4_MASK = 8934,
- PseudoVSLIDEDOWN_VI_M8 = 8935,
- PseudoVSLIDEDOWN_VI_M8_MASK = 8936,
- PseudoVSLIDEDOWN_VI_MF2 = 8937,
- PseudoVSLIDEDOWN_VI_MF2_MASK = 8938,
- PseudoVSLIDEDOWN_VI_MF4 = 8939,
- PseudoVSLIDEDOWN_VI_MF4_MASK = 8940,
- PseudoVSLIDEDOWN_VI_MF8 = 8941,
- PseudoVSLIDEDOWN_VI_MF8_MASK = 8942,
- PseudoVSLIDEDOWN_VX_M1 = 8943,
- PseudoVSLIDEDOWN_VX_M1_MASK = 8944,
- PseudoVSLIDEDOWN_VX_M2 = 8945,
- PseudoVSLIDEDOWN_VX_M2_MASK = 8946,
- PseudoVSLIDEDOWN_VX_M4 = 8947,
- PseudoVSLIDEDOWN_VX_M4_MASK = 8948,
- PseudoVSLIDEDOWN_VX_M8 = 8949,
- PseudoVSLIDEDOWN_VX_M8_MASK = 8950,
- PseudoVSLIDEDOWN_VX_MF2 = 8951,
- PseudoVSLIDEDOWN_VX_MF2_MASK = 8952,
- PseudoVSLIDEDOWN_VX_MF4 = 8953,
- PseudoVSLIDEDOWN_VX_MF4_MASK = 8954,
- PseudoVSLIDEDOWN_VX_MF8 = 8955,
- PseudoVSLIDEDOWN_VX_MF8_MASK = 8956,
- PseudoVSLIDEUP_VI_M1 = 8957,
- PseudoVSLIDEUP_VI_M1_MASK = 8958,
- PseudoVSLIDEUP_VI_M2 = 8959,
- PseudoVSLIDEUP_VI_M2_MASK = 8960,
- PseudoVSLIDEUP_VI_M4 = 8961,
- PseudoVSLIDEUP_VI_M4_MASK = 8962,
- PseudoVSLIDEUP_VI_M8 = 8963,
- PseudoVSLIDEUP_VI_M8_MASK = 8964,
- PseudoVSLIDEUP_VI_MF2 = 8965,
- PseudoVSLIDEUP_VI_MF2_MASK = 8966,
- PseudoVSLIDEUP_VI_MF4 = 8967,
- PseudoVSLIDEUP_VI_MF4_MASK = 8968,
- PseudoVSLIDEUP_VI_MF8 = 8969,
- PseudoVSLIDEUP_VI_MF8_MASK = 8970,
- PseudoVSLIDEUP_VX_M1 = 8971,
- PseudoVSLIDEUP_VX_M1_MASK = 8972,
- PseudoVSLIDEUP_VX_M2 = 8973,
- PseudoVSLIDEUP_VX_M2_MASK = 8974,
- PseudoVSLIDEUP_VX_M4 = 8975,
- PseudoVSLIDEUP_VX_M4_MASK = 8976,
- PseudoVSLIDEUP_VX_M8 = 8977,
- PseudoVSLIDEUP_VX_M8_MASK = 8978,
- PseudoVSLIDEUP_VX_MF2 = 8979,
- PseudoVSLIDEUP_VX_MF2_MASK = 8980,
- PseudoVSLIDEUP_VX_MF4 = 8981,
- PseudoVSLIDEUP_VX_MF4_MASK = 8982,
- PseudoVSLIDEUP_VX_MF8 = 8983,
- PseudoVSLIDEUP_VX_MF8_MASK = 8984,
- PseudoVSLL_VI_M1 = 8985,
- PseudoVSLL_VI_M1_MASK = 8986,
- PseudoVSLL_VI_M2 = 8987,
- PseudoVSLL_VI_M2_MASK = 8988,
- PseudoVSLL_VI_M4 = 8989,
- PseudoVSLL_VI_M4_MASK = 8990,
- PseudoVSLL_VI_M8 = 8991,
- PseudoVSLL_VI_M8_MASK = 8992,
- PseudoVSLL_VI_MF2 = 8993,
- PseudoVSLL_VI_MF2_MASK = 8994,
- PseudoVSLL_VI_MF4 = 8995,
- PseudoVSLL_VI_MF4_MASK = 8996,
- PseudoVSLL_VI_MF8 = 8997,
- PseudoVSLL_VI_MF8_MASK = 8998,
- PseudoVSLL_VV_M1 = 8999,
- PseudoVSLL_VV_M1_MASK = 9000,
- PseudoVSLL_VV_M2 = 9001,
- PseudoVSLL_VV_M2_MASK = 9002,
- PseudoVSLL_VV_M4 = 9003,
- PseudoVSLL_VV_M4_MASK = 9004,
- PseudoVSLL_VV_M8 = 9005,
- PseudoVSLL_VV_M8_MASK = 9006,
- PseudoVSLL_VV_MF2 = 9007,
- PseudoVSLL_VV_MF2_MASK = 9008,
- PseudoVSLL_VV_MF4 = 9009,
- PseudoVSLL_VV_MF4_MASK = 9010,
- PseudoVSLL_VV_MF8 = 9011,
- PseudoVSLL_VV_MF8_MASK = 9012,
- PseudoVSLL_VX_M1 = 9013,
- PseudoVSLL_VX_M1_MASK = 9014,
- PseudoVSLL_VX_M2 = 9015,
- PseudoVSLL_VX_M2_MASK = 9016,
- PseudoVSLL_VX_M4 = 9017,
- PseudoVSLL_VX_M4_MASK = 9018,
- PseudoVSLL_VX_M8 = 9019,
- PseudoVSLL_VX_M8_MASK = 9020,
- PseudoVSLL_VX_MF2 = 9021,
- PseudoVSLL_VX_MF2_MASK = 9022,
- PseudoVSLL_VX_MF4 = 9023,
- PseudoVSLL_VX_MF4_MASK = 9024,
- PseudoVSLL_VX_MF8 = 9025,
- PseudoVSLL_VX_MF8_MASK = 9026,
- PseudoVSM3C_VI_M1 = 9027,
- PseudoVSM3C_VI_M2 = 9028,
- PseudoVSM3C_VI_M4 = 9029,
- PseudoVSM3C_VI_M8 = 9030,
- PseudoVSM3C_VI_MF2 = 9031,
- PseudoVSM3ME_VV_M1 = 9032,
- PseudoVSM3ME_VV_M2 = 9033,
- PseudoVSM3ME_VV_M4 = 9034,
- PseudoVSM3ME_VV_M8 = 9035,
- PseudoVSM3ME_VV_MF2 = 9036,
- PseudoVSM4K_VI_M1 = 9037,
- PseudoVSM4K_VI_M2 = 9038,
- PseudoVSM4K_VI_M4 = 9039,
- PseudoVSM4K_VI_M8 = 9040,
- PseudoVSM4K_VI_MF2 = 9041,
- PseudoVSM4R_VS_M1_M1 = 9042,
- PseudoVSM4R_VS_M1_MF2 = 9043,
- PseudoVSM4R_VS_M1_MF4 = 9044,
- PseudoVSM4R_VS_M1_MF8 = 9045,
- PseudoVSM4R_VS_M2_M1 = 9046,
- PseudoVSM4R_VS_M2_M2 = 9047,
- PseudoVSM4R_VS_M2_MF2 = 9048,
- PseudoVSM4R_VS_M2_MF4 = 9049,
- PseudoVSM4R_VS_M2_MF8 = 9050,
- PseudoVSM4R_VS_M4_M1 = 9051,
- PseudoVSM4R_VS_M4_M2 = 9052,
- PseudoVSM4R_VS_M4_M4 = 9053,
- PseudoVSM4R_VS_M4_MF2 = 9054,
- PseudoVSM4R_VS_M4_MF4 = 9055,
- PseudoVSM4R_VS_M4_MF8 = 9056,
- PseudoVSM4R_VS_M8_M1 = 9057,
- PseudoVSM4R_VS_M8_M2 = 9058,
- PseudoVSM4R_VS_M8_M4 = 9059,
- PseudoVSM4R_VS_M8_MF2 = 9060,
- PseudoVSM4R_VS_M8_MF4 = 9061,
- PseudoVSM4R_VS_M8_MF8 = 9062,
- PseudoVSM4R_VS_MF2_MF2 = 9063,
- PseudoVSM4R_VS_MF2_MF4 = 9064,
- PseudoVSM4R_VS_MF2_MF8 = 9065,
- PseudoVSM4R_VV_M1 = 9066,
- PseudoVSM4R_VV_M2 = 9067,
- PseudoVSM4R_VV_M4 = 9068,
- PseudoVSM4R_VV_M8 = 9069,
- PseudoVSM4R_VV_MF2 = 9070,
- PseudoVSMUL_VV_M1 = 9071,
- PseudoVSMUL_VV_M1_MASK = 9072,
- PseudoVSMUL_VV_M2 = 9073,
- PseudoVSMUL_VV_M2_MASK = 9074,
- PseudoVSMUL_VV_M4 = 9075,
- PseudoVSMUL_VV_M4_MASK = 9076,
- PseudoVSMUL_VV_M8 = 9077,
- PseudoVSMUL_VV_M8_MASK = 9078,
- PseudoVSMUL_VV_MF2 = 9079,
- PseudoVSMUL_VV_MF2_MASK = 9080,
- PseudoVSMUL_VV_MF4 = 9081,
- PseudoVSMUL_VV_MF4_MASK = 9082,
- PseudoVSMUL_VV_MF8 = 9083,
- PseudoVSMUL_VV_MF8_MASK = 9084,
- PseudoVSMUL_VX_M1 = 9085,
- PseudoVSMUL_VX_M1_MASK = 9086,
- PseudoVSMUL_VX_M2 = 9087,
- PseudoVSMUL_VX_M2_MASK = 9088,
- PseudoVSMUL_VX_M4 = 9089,
- PseudoVSMUL_VX_M4_MASK = 9090,
- PseudoVSMUL_VX_M8 = 9091,
- PseudoVSMUL_VX_M8_MASK = 9092,
- PseudoVSMUL_VX_MF2 = 9093,
- PseudoVSMUL_VX_MF2_MASK = 9094,
- PseudoVSMUL_VX_MF4 = 9095,
- PseudoVSMUL_VX_MF4_MASK = 9096,
- PseudoVSMUL_VX_MF8 = 9097,
- PseudoVSMUL_VX_MF8_MASK = 9098,
- PseudoVSM_V_B1 = 9099,
- PseudoVSM_V_B16 = 9100,
- PseudoVSM_V_B2 = 9101,
- PseudoVSM_V_B32 = 9102,
- PseudoVSM_V_B4 = 9103,
- PseudoVSM_V_B64 = 9104,
- PseudoVSM_V_B8 = 9105,
- PseudoVSOXEI16_V_M1_M1 = 9106,
- PseudoVSOXEI16_V_M1_M1_MASK = 9107,
- PseudoVSOXEI16_V_M1_M2 = 9108,
- PseudoVSOXEI16_V_M1_M2_MASK = 9109,
- PseudoVSOXEI16_V_M1_M4 = 9110,
- PseudoVSOXEI16_V_M1_M4_MASK = 9111,
- PseudoVSOXEI16_V_M1_MF2 = 9112,
- PseudoVSOXEI16_V_M1_MF2_MASK = 9113,
- PseudoVSOXEI16_V_M2_M1 = 9114,
- PseudoVSOXEI16_V_M2_M1_MASK = 9115,
- PseudoVSOXEI16_V_M2_M2 = 9116,
- PseudoVSOXEI16_V_M2_M2_MASK = 9117,
- PseudoVSOXEI16_V_M2_M4 = 9118,
- PseudoVSOXEI16_V_M2_M4_MASK = 9119,
- PseudoVSOXEI16_V_M2_M8 = 9120,
- PseudoVSOXEI16_V_M2_M8_MASK = 9121,
- PseudoVSOXEI16_V_M4_M2 = 9122,
- PseudoVSOXEI16_V_M4_M2_MASK = 9123,
- PseudoVSOXEI16_V_M4_M4 = 9124,
- PseudoVSOXEI16_V_M4_M4_MASK = 9125,
- PseudoVSOXEI16_V_M4_M8 = 9126,
- PseudoVSOXEI16_V_M4_M8_MASK = 9127,
- PseudoVSOXEI16_V_M8_M4 = 9128,
- PseudoVSOXEI16_V_M8_M4_MASK = 9129,
- PseudoVSOXEI16_V_M8_M8 = 9130,
- PseudoVSOXEI16_V_M8_M8_MASK = 9131,
- PseudoVSOXEI16_V_MF2_M1 = 9132,
- PseudoVSOXEI16_V_MF2_M1_MASK = 9133,
- PseudoVSOXEI16_V_MF2_M2 = 9134,
- PseudoVSOXEI16_V_MF2_M2_MASK = 9135,
- PseudoVSOXEI16_V_MF2_MF2 = 9136,
- PseudoVSOXEI16_V_MF2_MF2_MASK = 9137,
- PseudoVSOXEI16_V_MF2_MF4 = 9138,
- PseudoVSOXEI16_V_MF2_MF4_MASK = 9139,
- PseudoVSOXEI16_V_MF4_M1 = 9140,
- PseudoVSOXEI16_V_MF4_M1_MASK = 9141,
- PseudoVSOXEI16_V_MF4_MF2 = 9142,
- PseudoVSOXEI16_V_MF4_MF2_MASK = 9143,
- PseudoVSOXEI16_V_MF4_MF4 = 9144,
- PseudoVSOXEI16_V_MF4_MF4_MASK = 9145,
- PseudoVSOXEI16_V_MF4_MF8 = 9146,
- PseudoVSOXEI16_V_MF4_MF8_MASK = 9147,
- PseudoVSOXEI32_V_M1_M1 = 9148,
- PseudoVSOXEI32_V_M1_M1_MASK = 9149,
- PseudoVSOXEI32_V_M1_M2 = 9150,
- PseudoVSOXEI32_V_M1_M2_MASK = 9151,
- PseudoVSOXEI32_V_M1_MF2 = 9152,
- PseudoVSOXEI32_V_M1_MF2_MASK = 9153,
- PseudoVSOXEI32_V_M1_MF4 = 9154,
- PseudoVSOXEI32_V_M1_MF4_MASK = 9155,
- PseudoVSOXEI32_V_M2_M1 = 9156,
- PseudoVSOXEI32_V_M2_M1_MASK = 9157,
- PseudoVSOXEI32_V_M2_M2 = 9158,
- PseudoVSOXEI32_V_M2_M2_MASK = 9159,
- PseudoVSOXEI32_V_M2_M4 = 9160,
- PseudoVSOXEI32_V_M2_M4_MASK = 9161,
- PseudoVSOXEI32_V_M2_MF2 = 9162,
- PseudoVSOXEI32_V_M2_MF2_MASK = 9163,
- PseudoVSOXEI32_V_M4_M1 = 9164,
- PseudoVSOXEI32_V_M4_M1_MASK = 9165,
- PseudoVSOXEI32_V_M4_M2 = 9166,
- PseudoVSOXEI32_V_M4_M2_MASK = 9167,
- PseudoVSOXEI32_V_M4_M4 = 9168,
- PseudoVSOXEI32_V_M4_M4_MASK = 9169,
- PseudoVSOXEI32_V_M4_M8 = 9170,
- PseudoVSOXEI32_V_M4_M8_MASK = 9171,
- PseudoVSOXEI32_V_M8_M2 = 9172,
- PseudoVSOXEI32_V_M8_M2_MASK = 9173,
- PseudoVSOXEI32_V_M8_M4 = 9174,
- PseudoVSOXEI32_V_M8_M4_MASK = 9175,
- PseudoVSOXEI32_V_M8_M8 = 9176,
- PseudoVSOXEI32_V_M8_M8_MASK = 9177,
- PseudoVSOXEI32_V_MF2_M1 = 9178,
- PseudoVSOXEI32_V_MF2_M1_MASK = 9179,
- PseudoVSOXEI32_V_MF2_MF2 = 9180,
- PseudoVSOXEI32_V_MF2_MF2_MASK = 9181,
- PseudoVSOXEI32_V_MF2_MF4 = 9182,
- PseudoVSOXEI32_V_MF2_MF4_MASK = 9183,
- PseudoVSOXEI32_V_MF2_MF8 = 9184,
- PseudoVSOXEI32_V_MF2_MF8_MASK = 9185,
- PseudoVSOXEI64_V_M1_M1 = 9186,
- PseudoVSOXEI64_V_M1_M1_MASK = 9187,
- PseudoVSOXEI64_V_M1_MF2 = 9188,
- PseudoVSOXEI64_V_M1_MF2_MASK = 9189,
- PseudoVSOXEI64_V_M1_MF4 = 9190,
- PseudoVSOXEI64_V_M1_MF4_MASK = 9191,
- PseudoVSOXEI64_V_M1_MF8 = 9192,
- PseudoVSOXEI64_V_M1_MF8_MASK = 9193,
- PseudoVSOXEI64_V_M2_M1 = 9194,
- PseudoVSOXEI64_V_M2_M1_MASK = 9195,
- PseudoVSOXEI64_V_M2_M2 = 9196,
- PseudoVSOXEI64_V_M2_M2_MASK = 9197,
- PseudoVSOXEI64_V_M2_MF2 = 9198,
- PseudoVSOXEI64_V_M2_MF2_MASK = 9199,
- PseudoVSOXEI64_V_M2_MF4 = 9200,
- PseudoVSOXEI64_V_M2_MF4_MASK = 9201,
- PseudoVSOXEI64_V_M4_M1 = 9202,
- PseudoVSOXEI64_V_M4_M1_MASK = 9203,
- PseudoVSOXEI64_V_M4_M2 = 9204,
- PseudoVSOXEI64_V_M4_M2_MASK = 9205,
- PseudoVSOXEI64_V_M4_M4 = 9206,
- PseudoVSOXEI64_V_M4_M4_MASK = 9207,
- PseudoVSOXEI64_V_M4_MF2 = 9208,
- PseudoVSOXEI64_V_M4_MF2_MASK = 9209,
- PseudoVSOXEI64_V_M8_M1 = 9210,
- PseudoVSOXEI64_V_M8_M1_MASK = 9211,
- PseudoVSOXEI64_V_M8_M2 = 9212,
- PseudoVSOXEI64_V_M8_M2_MASK = 9213,
- PseudoVSOXEI64_V_M8_M4 = 9214,
- PseudoVSOXEI64_V_M8_M4_MASK = 9215,
- PseudoVSOXEI64_V_M8_M8 = 9216,
- PseudoVSOXEI64_V_M8_M8_MASK = 9217,
- PseudoVSOXEI8_V_M1_M1 = 9218,
- PseudoVSOXEI8_V_M1_M1_MASK = 9219,
- PseudoVSOXEI8_V_M1_M2 = 9220,
- PseudoVSOXEI8_V_M1_M2_MASK = 9221,
- PseudoVSOXEI8_V_M1_M4 = 9222,
- PseudoVSOXEI8_V_M1_M4_MASK = 9223,
- PseudoVSOXEI8_V_M1_M8 = 9224,
- PseudoVSOXEI8_V_M1_M8_MASK = 9225,
- PseudoVSOXEI8_V_M2_M2 = 9226,
- PseudoVSOXEI8_V_M2_M2_MASK = 9227,
- PseudoVSOXEI8_V_M2_M4 = 9228,
- PseudoVSOXEI8_V_M2_M4_MASK = 9229,
- PseudoVSOXEI8_V_M2_M8 = 9230,
- PseudoVSOXEI8_V_M2_M8_MASK = 9231,
- PseudoVSOXEI8_V_M4_M4 = 9232,
- PseudoVSOXEI8_V_M4_M4_MASK = 9233,
- PseudoVSOXEI8_V_M4_M8 = 9234,
- PseudoVSOXEI8_V_M4_M8_MASK = 9235,
- PseudoVSOXEI8_V_M8_M8 = 9236,
- PseudoVSOXEI8_V_M8_M8_MASK = 9237,
- PseudoVSOXEI8_V_MF2_M1 = 9238,
- PseudoVSOXEI8_V_MF2_M1_MASK = 9239,
- PseudoVSOXEI8_V_MF2_M2 = 9240,
- PseudoVSOXEI8_V_MF2_M2_MASK = 9241,
- PseudoVSOXEI8_V_MF2_M4 = 9242,
- PseudoVSOXEI8_V_MF2_M4_MASK = 9243,
- PseudoVSOXEI8_V_MF2_MF2 = 9244,
- PseudoVSOXEI8_V_MF2_MF2_MASK = 9245,
- PseudoVSOXEI8_V_MF4_M1 = 9246,
- PseudoVSOXEI8_V_MF4_M1_MASK = 9247,
- PseudoVSOXEI8_V_MF4_M2 = 9248,
- PseudoVSOXEI8_V_MF4_M2_MASK = 9249,
- PseudoVSOXEI8_V_MF4_MF2 = 9250,
- PseudoVSOXEI8_V_MF4_MF2_MASK = 9251,
- PseudoVSOXEI8_V_MF4_MF4 = 9252,
- PseudoVSOXEI8_V_MF4_MF4_MASK = 9253,
- PseudoVSOXEI8_V_MF8_M1 = 9254,
- PseudoVSOXEI8_V_MF8_M1_MASK = 9255,
- PseudoVSOXEI8_V_MF8_MF2 = 9256,
- PseudoVSOXEI8_V_MF8_MF2_MASK = 9257,
- PseudoVSOXEI8_V_MF8_MF4 = 9258,
- PseudoVSOXEI8_V_MF8_MF4_MASK = 9259,
- PseudoVSOXEI8_V_MF8_MF8 = 9260,
- PseudoVSOXEI8_V_MF8_MF8_MASK = 9261,
- PseudoVSOXSEG2EI16_V_M1_M1 = 9262,
- PseudoVSOXSEG2EI16_V_M1_M1_MASK = 9263,
- PseudoVSOXSEG2EI16_V_M1_M2 = 9264,
- PseudoVSOXSEG2EI16_V_M1_M2_MASK = 9265,
- PseudoVSOXSEG2EI16_V_M1_M4 = 9266,
- PseudoVSOXSEG2EI16_V_M1_M4_MASK = 9267,
- PseudoVSOXSEG2EI16_V_M1_MF2 = 9268,
- PseudoVSOXSEG2EI16_V_M1_MF2_MASK = 9269,
- PseudoVSOXSEG2EI16_V_M2_M1 = 9270,
- PseudoVSOXSEG2EI16_V_M2_M1_MASK = 9271,
- PseudoVSOXSEG2EI16_V_M2_M2 = 9272,
- PseudoVSOXSEG2EI16_V_M2_M2_MASK = 9273,
- PseudoVSOXSEG2EI16_V_M2_M4 = 9274,
- PseudoVSOXSEG2EI16_V_M2_M4_MASK = 9275,
- PseudoVSOXSEG2EI16_V_M4_M2 = 9276,
- PseudoVSOXSEG2EI16_V_M4_M2_MASK = 9277,
- PseudoVSOXSEG2EI16_V_M4_M4 = 9278,
- PseudoVSOXSEG2EI16_V_M4_M4_MASK = 9279,
- PseudoVSOXSEG2EI16_V_M8_M4 = 9280,
- PseudoVSOXSEG2EI16_V_M8_M4_MASK = 9281,
- PseudoVSOXSEG2EI16_V_MF2_M1 = 9282,
- PseudoVSOXSEG2EI16_V_MF2_M1_MASK = 9283,
- PseudoVSOXSEG2EI16_V_MF2_M2 = 9284,
- PseudoVSOXSEG2EI16_V_MF2_M2_MASK = 9285,
- PseudoVSOXSEG2EI16_V_MF2_MF2 = 9286,
- PseudoVSOXSEG2EI16_V_MF2_MF2_MASK = 9287,
- PseudoVSOXSEG2EI16_V_MF2_MF4 = 9288,
- PseudoVSOXSEG2EI16_V_MF2_MF4_MASK = 9289,
- PseudoVSOXSEG2EI16_V_MF4_M1 = 9290,
- PseudoVSOXSEG2EI16_V_MF4_M1_MASK = 9291,
- PseudoVSOXSEG2EI16_V_MF4_MF2 = 9292,
- PseudoVSOXSEG2EI16_V_MF4_MF2_MASK = 9293,
- PseudoVSOXSEG2EI16_V_MF4_MF4 = 9294,
- PseudoVSOXSEG2EI16_V_MF4_MF4_MASK = 9295,
- PseudoVSOXSEG2EI16_V_MF4_MF8 = 9296,
- PseudoVSOXSEG2EI16_V_MF4_MF8_MASK = 9297,
- PseudoVSOXSEG2EI32_V_M1_M1 = 9298,
- PseudoVSOXSEG2EI32_V_M1_M1_MASK = 9299,
- PseudoVSOXSEG2EI32_V_M1_M2 = 9300,
- PseudoVSOXSEG2EI32_V_M1_M2_MASK = 9301,
- PseudoVSOXSEG2EI32_V_M1_MF2 = 9302,
- PseudoVSOXSEG2EI32_V_M1_MF2_MASK = 9303,
- PseudoVSOXSEG2EI32_V_M1_MF4 = 9304,
- PseudoVSOXSEG2EI32_V_M1_MF4_MASK = 9305,
- PseudoVSOXSEG2EI32_V_M2_M1 = 9306,
- PseudoVSOXSEG2EI32_V_M2_M1_MASK = 9307,
- PseudoVSOXSEG2EI32_V_M2_M2 = 9308,
- PseudoVSOXSEG2EI32_V_M2_M2_MASK = 9309,
- PseudoVSOXSEG2EI32_V_M2_M4 = 9310,
- PseudoVSOXSEG2EI32_V_M2_M4_MASK = 9311,
- PseudoVSOXSEG2EI32_V_M2_MF2 = 9312,
- PseudoVSOXSEG2EI32_V_M2_MF2_MASK = 9313,
- PseudoVSOXSEG2EI32_V_M4_M1 = 9314,
- PseudoVSOXSEG2EI32_V_M4_M1_MASK = 9315,
- PseudoVSOXSEG2EI32_V_M4_M2 = 9316,
- PseudoVSOXSEG2EI32_V_M4_M2_MASK = 9317,
- PseudoVSOXSEG2EI32_V_M4_M4 = 9318,
- PseudoVSOXSEG2EI32_V_M4_M4_MASK = 9319,
- PseudoVSOXSEG2EI32_V_M8_M2 = 9320,
- PseudoVSOXSEG2EI32_V_M8_M2_MASK = 9321,
- PseudoVSOXSEG2EI32_V_M8_M4 = 9322,
- PseudoVSOXSEG2EI32_V_M8_M4_MASK = 9323,
- PseudoVSOXSEG2EI32_V_MF2_M1 = 9324,
- PseudoVSOXSEG2EI32_V_MF2_M1_MASK = 9325,
- PseudoVSOXSEG2EI32_V_MF2_MF2 = 9326,
- PseudoVSOXSEG2EI32_V_MF2_MF2_MASK = 9327,
- PseudoVSOXSEG2EI32_V_MF2_MF4 = 9328,
- PseudoVSOXSEG2EI32_V_MF2_MF4_MASK = 9329,
- PseudoVSOXSEG2EI32_V_MF2_MF8 = 9330,
- PseudoVSOXSEG2EI32_V_MF2_MF8_MASK = 9331,
- PseudoVSOXSEG2EI64_V_M1_M1 = 9332,
- PseudoVSOXSEG2EI64_V_M1_M1_MASK = 9333,
- PseudoVSOXSEG2EI64_V_M1_MF2 = 9334,
- PseudoVSOXSEG2EI64_V_M1_MF2_MASK = 9335,
- PseudoVSOXSEG2EI64_V_M1_MF4 = 9336,
- PseudoVSOXSEG2EI64_V_M1_MF4_MASK = 9337,
- PseudoVSOXSEG2EI64_V_M1_MF8 = 9338,
- PseudoVSOXSEG2EI64_V_M1_MF8_MASK = 9339,
- PseudoVSOXSEG2EI64_V_M2_M1 = 9340,
- PseudoVSOXSEG2EI64_V_M2_M1_MASK = 9341,
- PseudoVSOXSEG2EI64_V_M2_M2 = 9342,
- PseudoVSOXSEG2EI64_V_M2_M2_MASK = 9343,
- PseudoVSOXSEG2EI64_V_M2_MF2 = 9344,
- PseudoVSOXSEG2EI64_V_M2_MF2_MASK = 9345,
- PseudoVSOXSEG2EI64_V_M2_MF4 = 9346,
- PseudoVSOXSEG2EI64_V_M2_MF4_MASK = 9347,
- PseudoVSOXSEG2EI64_V_M4_M1 = 9348,
- PseudoVSOXSEG2EI64_V_M4_M1_MASK = 9349,
- PseudoVSOXSEG2EI64_V_M4_M2 = 9350,
- PseudoVSOXSEG2EI64_V_M4_M2_MASK = 9351,
- PseudoVSOXSEG2EI64_V_M4_M4 = 9352,
- PseudoVSOXSEG2EI64_V_M4_M4_MASK = 9353,
- PseudoVSOXSEG2EI64_V_M4_MF2 = 9354,
- PseudoVSOXSEG2EI64_V_M4_MF2_MASK = 9355,
- PseudoVSOXSEG2EI64_V_M8_M1 = 9356,
- PseudoVSOXSEG2EI64_V_M8_M1_MASK = 9357,
- PseudoVSOXSEG2EI64_V_M8_M2 = 9358,
- PseudoVSOXSEG2EI64_V_M8_M2_MASK = 9359,
- PseudoVSOXSEG2EI64_V_M8_M4 = 9360,
- PseudoVSOXSEG2EI64_V_M8_M4_MASK = 9361,
- PseudoVSOXSEG2EI8_V_M1_M1 = 9362,
- PseudoVSOXSEG2EI8_V_M1_M1_MASK = 9363,
- PseudoVSOXSEG2EI8_V_M1_M2 = 9364,
- PseudoVSOXSEG2EI8_V_M1_M2_MASK = 9365,
- PseudoVSOXSEG2EI8_V_M1_M4 = 9366,
- PseudoVSOXSEG2EI8_V_M1_M4_MASK = 9367,
- PseudoVSOXSEG2EI8_V_M2_M2 = 9368,
- PseudoVSOXSEG2EI8_V_M2_M2_MASK = 9369,
- PseudoVSOXSEG2EI8_V_M2_M4 = 9370,
- PseudoVSOXSEG2EI8_V_M2_M4_MASK = 9371,
- PseudoVSOXSEG2EI8_V_M4_M4 = 9372,
- PseudoVSOXSEG2EI8_V_M4_M4_MASK = 9373,
- PseudoVSOXSEG2EI8_V_MF2_M1 = 9374,
- PseudoVSOXSEG2EI8_V_MF2_M1_MASK = 9375,
- PseudoVSOXSEG2EI8_V_MF2_M2 = 9376,
- PseudoVSOXSEG2EI8_V_MF2_M2_MASK = 9377,
- PseudoVSOXSEG2EI8_V_MF2_M4 = 9378,
- PseudoVSOXSEG2EI8_V_MF2_M4_MASK = 9379,
- PseudoVSOXSEG2EI8_V_MF2_MF2 = 9380,
- PseudoVSOXSEG2EI8_V_MF2_MF2_MASK = 9381,
- PseudoVSOXSEG2EI8_V_MF4_M1 = 9382,
- PseudoVSOXSEG2EI8_V_MF4_M1_MASK = 9383,
- PseudoVSOXSEG2EI8_V_MF4_M2 = 9384,
- PseudoVSOXSEG2EI8_V_MF4_M2_MASK = 9385,
- PseudoVSOXSEG2EI8_V_MF4_MF2 = 9386,
- PseudoVSOXSEG2EI8_V_MF4_MF2_MASK = 9387,
- PseudoVSOXSEG2EI8_V_MF4_MF4 = 9388,
- PseudoVSOXSEG2EI8_V_MF4_MF4_MASK = 9389,
- PseudoVSOXSEG2EI8_V_MF8_M1 = 9390,
- PseudoVSOXSEG2EI8_V_MF8_M1_MASK = 9391,
- PseudoVSOXSEG2EI8_V_MF8_MF2 = 9392,
- PseudoVSOXSEG2EI8_V_MF8_MF2_MASK = 9393,
- PseudoVSOXSEG2EI8_V_MF8_MF4 = 9394,
- PseudoVSOXSEG2EI8_V_MF8_MF4_MASK = 9395,
- PseudoVSOXSEG2EI8_V_MF8_MF8 = 9396,
- PseudoVSOXSEG2EI8_V_MF8_MF8_MASK = 9397,
- PseudoVSOXSEG3EI16_V_M1_M1 = 9398,
- PseudoVSOXSEG3EI16_V_M1_M1_MASK = 9399,
- PseudoVSOXSEG3EI16_V_M1_M2 = 9400,
- PseudoVSOXSEG3EI16_V_M1_M2_MASK = 9401,
- PseudoVSOXSEG3EI16_V_M1_MF2 = 9402,
- PseudoVSOXSEG3EI16_V_M1_MF2_MASK = 9403,
- PseudoVSOXSEG3EI16_V_M2_M1 = 9404,
- PseudoVSOXSEG3EI16_V_M2_M1_MASK = 9405,
- PseudoVSOXSEG3EI16_V_M2_M2 = 9406,
- PseudoVSOXSEG3EI16_V_M2_M2_MASK = 9407,
- PseudoVSOXSEG3EI16_V_M4_M2 = 9408,
- PseudoVSOXSEG3EI16_V_M4_M2_MASK = 9409,
- PseudoVSOXSEG3EI16_V_MF2_M1 = 9410,
- PseudoVSOXSEG3EI16_V_MF2_M1_MASK = 9411,
- PseudoVSOXSEG3EI16_V_MF2_M2 = 9412,
- PseudoVSOXSEG3EI16_V_MF2_M2_MASK = 9413,
- PseudoVSOXSEG3EI16_V_MF2_MF2 = 9414,
- PseudoVSOXSEG3EI16_V_MF2_MF2_MASK = 9415,
- PseudoVSOXSEG3EI16_V_MF2_MF4 = 9416,
- PseudoVSOXSEG3EI16_V_MF2_MF4_MASK = 9417,
- PseudoVSOXSEG3EI16_V_MF4_M1 = 9418,
- PseudoVSOXSEG3EI16_V_MF4_M1_MASK = 9419,
- PseudoVSOXSEG3EI16_V_MF4_MF2 = 9420,
- PseudoVSOXSEG3EI16_V_MF4_MF2_MASK = 9421,
- PseudoVSOXSEG3EI16_V_MF4_MF4 = 9422,
- PseudoVSOXSEG3EI16_V_MF4_MF4_MASK = 9423,
- PseudoVSOXSEG3EI16_V_MF4_MF8 = 9424,
- PseudoVSOXSEG3EI16_V_MF4_MF8_MASK = 9425,
- PseudoVSOXSEG3EI32_V_M1_M1 = 9426,
- PseudoVSOXSEG3EI32_V_M1_M1_MASK = 9427,
- PseudoVSOXSEG3EI32_V_M1_M2 = 9428,
- PseudoVSOXSEG3EI32_V_M1_M2_MASK = 9429,
- PseudoVSOXSEG3EI32_V_M1_MF2 = 9430,
- PseudoVSOXSEG3EI32_V_M1_MF2_MASK = 9431,
- PseudoVSOXSEG3EI32_V_M1_MF4 = 9432,
- PseudoVSOXSEG3EI32_V_M1_MF4_MASK = 9433,
- PseudoVSOXSEG3EI32_V_M2_M1 = 9434,
- PseudoVSOXSEG3EI32_V_M2_M1_MASK = 9435,
- PseudoVSOXSEG3EI32_V_M2_M2 = 9436,
- PseudoVSOXSEG3EI32_V_M2_M2_MASK = 9437,
- PseudoVSOXSEG3EI32_V_M2_MF2 = 9438,
- PseudoVSOXSEG3EI32_V_M2_MF2_MASK = 9439,
- PseudoVSOXSEG3EI32_V_M4_M1 = 9440,
- PseudoVSOXSEG3EI32_V_M4_M1_MASK = 9441,
- PseudoVSOXSEG3EI32_V_M4_M2 = 9442,
- PseudoVSOXSEG3EI32_V_M4_M2_MASK = 9443,
- PseudoVSOXSEG3EI32_V_M8_M2 = 9444,
- PseudoVSOXSEG3EI32_V_M8_M2_MASK = 9445,
- PseudoVSOXSEG3EI32_V_MF2_M1 = 9446,
- PseudoVSOXSEG3EI32_V_MF2_M1_MASK = 9447,
- PseudoVSOXSEG3EI32_V_MF2_MF2 = 9448,
- PseudoVSOXSEG3EI32_V_MF2_MF2_MASK = 9449,
- PseudoVSOXSEG3EI32_V_MF2_MF4 = 9450,
- PseudoVSOXSEG3EI32_V_MF2_MF4_MASK = 9451,
- PseudoVSOXSEG3EI32_V_MF2_MF8 = 9452,
- PseudoVSOXSEG3EI32_V_MF2_MF8_MASK = 9453,
- PseudoVSOXSEG3EI64_V_M1_M1 = 9454,
- PseudoVSOXSEG3EI64_V_M1_M1_MASK = 9455,
- PseudoVSOXSEG3EI64_V_M1_MF2 = 9456,
- PseudoVSOXSEG3EI64_V_M1_MF2_MASK = 9457,
- PseudoVSOXSEG3EI64_V_M1_MF4 = 9458,
- PseudoVSOXSEG3EI64_V_M1_MF4_MASK = 9459,
- PseudoVSOXSEG3EI64_V_M1_MF8 = 9460,
- PseudoVSOXSEG3EI64_V_M1_MF8_MASK = 9461,
- PseudoVSOXSEG3EI64_V_M2_M1 = 9462,
- PseudoVSOXSEG3EI64_V_M2_M1_MASK = 9463,
- PseudoVSOXSEG3EI64_V_M2_M2 = 9464,
- PseudoVSOXSEG3EI64_V_M2_M2_MASK = 9465,
- PseudoVSOXSEG3EI64_V_M2_MF2 = 9466,
- PseudoVSOXSEG3EI64_V_M2_MF2_MASK = 9467,
- PseudoVSOXSEG3EI64_V_M2_MF4 = 9468,
- PseudoVSOXSEG3EI64_V_M2_MF4_MASK = 9469,
- PseudoVSOXSEG3EI64_V_M4_M1 = 9470,
- PseudoVSOXSEG3EI64_V_M4_M1_MASK = 9471,
- PseudoVSOXSEG3EI64_V_M4_M2 = 9472,
- PseudoVSOXSEG3EI64_V_M4_M2_MASK = 9473,
- PseudoVSOXSEG3EI64_V_M4_MF2 = 9474,
- PseudoVSOXSEG3EI64_V_M4_MF2_MASK = 9475,
- PseudoVSOXSEG3EI64_V_M8_M1 = 9476,
- PseudoVSOXSEG3EI64_V_M8_M1_MASK = 9477,
- PseudoVSOXSEG3EI64_V_M8_M2 = 9478,
- PseudoVSOXSEG3EI64_V_M8_M2_MASK = 9479,
- PseudoVSOXSEG3EI8_V_M1_M1 = 9480,
- PseudoVSOXSEG3EI8_V_M1_M1_MASK = 9481,
- PseudoVSOXSEG3EI8_V_M1_M2 = 9482,
- PseudoVSOXSEG3EI8_V_M1_M2_MASK = 9483,
- PseudoVSOXSEG3EI8_V_M2_M2 = 9484,
- PseudoVSOXSEG3EI8_V_M2_M2_MASK = 9485,
- PseudoVSOXSEG3EI8_V_MF2_M1 = 9486,
- PseudoVSOXSEG3EI8_V_MF2_M1_MASK = 9487,
- PseudoVSOXSEG3EI8_V_MF2_M2 = 9488,
- PseudoVSOXSEG3EI8_V_MF2_M2_MASK = 9489,
- PseudoVSOXSEG3EI8_V_MF2_MF2 = 9490,
- PseudoVSOXSEG3EI8_V_MF2_MF2_MASK = 9491,
- PseudoVSOXSEG3EI8_V_MF4_M1 = 9492,
- PseudoVSOXSEG3EI8_V_MF4_M1_MASK = 9493,
- PseudoVSOXSEG3EI8_V_MF4_M2 = 9494,
- PseudoVSOXSEG3EI8_V_MF4_M2_MASK = 9495,
- PseudoVSOXSEG3EI8_V_MF4_MF2 = 9496,
- PseudoVSOXSEG3EI8_V_MF4_MF2_MASK = 9497,
- PseudoVSOXSEG3EI8_V_MF4_MF4 = 9498,
- PseudoVSOXSEG3EI8_V_MF4_MF4_MASK = 9499,
- PseudoVSOXSEG3EI8_V_MF8_M1 = 9500,
- PseudoVSOXSEG3EI8_V_MF8_M1_MASK = 9501,
- PseudoVSOXSEG3EI8_V_MF8_MF2 = 9502,
- PseudoVSOXSEG3EI8_V_MF8_MF2_MASK = 9503,
- PseudoVSOXSEG3EI8_V_MF8_MF4 = 9504,
- PseudoVSOXSEG3EI8_V_MF8_MF4_MASK = 9505,
- PseudoVSOXSEG3EI8_V_MF8_MF8 = 9506,
- PseudoVSOXSEG3EI8_V_MF8_MF8_MASK = 9507,
- PseudoVSOXSEG4EI16_V_M1_M1 = 9508,
- PseudoVSOXSEG4EI16_V_M1_M1_MASK = 9509,
- PseudoVSOXSEG4EI16_V_M1_M2 = 9510,
- PseudoVSOXSEG4EI16_V_M1_M2_MASK = 9511,
- PseudoVSOXSEG4EI16_V_M1_MF2 = 9512,
- PseudoVSOXSEG4EI16_V_M1_MF2_MASK = 9513,
- PseudoVSOXSEG4EI16_V_M2_M1 = 9514,
- PseudoVSOXSEG4EI16_V_M2_M1_MASK = 9515,
- PseudoVSOXSEG4EI16_V_M2_M2 = 9516,
- PseudoVSOXSEG4EI16_V_M2_M2_MASK = 9517,
- PseudoVSOXSEG4EI16_V_M4_M2 = 9518,
- PseudoVSOXSEG4EI16_V_M4_M2_MASK = 9519,
- PseudoVSOXSEG4EI16_V_MF2_M1 = 9520,
- PseudoVSOXSEG4EI16_V_MF2_M1_MASK = 9521,
- PseudoVSOXSEG4EI16_V_MF2_M2 = 9522,
- PseudoVSOXSEG4EI16_V_MF2_M2_MASK = 9523,
- PseudoVSOXSEG4EI16_V_MF2_MF2 = 9524,
- PseudoVSOXSEG4EI16_V_MF2_MF2_MASK = 9525,
- PseudoVSOXSEG4EI16_V_MF2_MF4 = 9526,
- PseudoVSOXSEG4EI16_V_MF2_MF4_MASK = 9527,
- PseudoVSOXSEG4EI16_V_MF4_M1 = 9528,
- PseudoVSOXSEG4EI16_V_MF4_M1_MASK = 9529,
- PseudoVSOXSEG4EI16_V_MF4_MF2 = 9530,
- PseudoVSOXSEG4EI16_V_MF4_MF2_MASK = 9531,
- PseudoVSOXSEG4EI16_V_MF4_MF4 = 9532,
- PseudoVSOXSEG4EI16_V_MF4_MF4_MASK = 9533,
- PseudoVSOXSEG4EI16_V_MF4_MF8 = 9534,
- PseudoVSOXSEG4EI16_V_MF4_MF8_MASK = 9535,
- PseudoVSOXSEG4EI32_V_M1_M1 = 9536,
- PseudoVSOXSEG4EI32_V_M1_M1_MASK = 9537,
- PseudoVSOXSEG4EI32_V_M1_M2 = 9538,
- PseudoVSOXSEG4EI32_V_M1_M2_MASK = 9539,
- PseudoVSOXSEG4EI32_V_M1_MF2 = 9540,
- PseudoVSOXSEG4EI32_V_M1_MF2_MASK = 9541,
- PseudoVSOXSEG4EI32_V_M1_MF4 = 9542,
- PseudoVSOXSEG4EI32_V_M1_MF4_MASK = 9543,
- PseudoVSOXSEG4EI32_V_M2_M1 = 9544,
- PseudoVSOXSEG4EI32_V_M2_M1_MASK = 9545,
- PseudoVSOXSEG4EI32_V_M2_M2 = 9546,
- PseudoVSOXSEG4EI32_V_M2_M2_MASK = 9547,
- PseudoVSOXSEG4EI32_V_M2_MF2 = 9548,
- PseudoVSOXSEG4EI32_V_M2_MF2_MASK = 9549,
- PseudoVSOXSEG4EI32_V_M4_M1 = 9550,
- PseudoVSOXSEG4EI32_V_M4_M1_MASK = 9551,
- PseudoVSOXSEG4EI32_V_M4_M2 = 9552,
- PseudoVSOXSEG4EI32_V_M4_M2_MASK = 9553,
- PseudoVSOXSEG4EI32_V_M8_M2 = 9554,
- PseudoVSOXSEG4EI32_V_M8_M2_MASK = 9555,
- PseudoVSOXSEG4EI32_V_MF2_M1 = 9556,
- PseudoVSOXSEG4EI32_V_MF2_M1_MASK = 9557,
- PseudoVSOXSEG4EI32_V_MF2_MF2 = 9558,
- PseudoVSOXSEG4EI32_V_MF2_MF2_MASK = 9559,
- PseudoVSOXSEG4EI32_V_MF2_MF4 = 9560,
- PseudoVSOXSEG4EI32_V_MF2_MF4_MASK = 9561,
- PseudoVSOXSEG4EI32_V_MF2_MF8 = 9562,
- PseudoVSOXSEG4EI32_V_MF2_MF8_MASK = 9563,
- PseudoVSOXSEG4EI64_V_M1_M1 = 9564,
- PseudoVSOXSEG4EI64_V_M1_M1_MASK = 9565,
- PseudoVSOXSEG4EI64_V_M1_MF2 = 9566,
- PseudoVSOXSEG4EI64_V_M1_MF2_MASK = 9567,
- PseudoVSOXSEG4EI64_V_M1_MF4 = 9568,
- PseudoVSOXSEG4EI64_V_M1_MF4_MASK = 9569,
- PseudoVSOXSEG4EI64_V_M1_MF8 = 9570,
- PseudoVSOXSEG4EI64_V_M1_MF8_MASK = 9571,
- PseudoVSOXSEG4EI64_V_M2_M1 = 9572,
- PseudoVSOXSEG4EI64_V_M2_M1_MASK = 9573,
- PseudoVSOXSEG4EI64_V_M2_M2 = 9574,
- PseudoVSOXSEG4EI64_V_M2_M2_MASK = 9575,
- PseudoVSOXSEG4EI64_V_M2_MF2 = 9576,
- PseudoVSOXSEG4EI64_V_M2_MF2_MASK = 9577,
- PseudoVSOXSEG4EI64_V_M2_MF4 = 9578,
- PseudoVSOXSEG4EI64_V_M2_MF4_MASK = 9579,
- PseudoVSOXSEG4EI64_V_M4_M1 = 9580,
- PseudoVSOXSEG4EI64_V_M4_M1_MASK = 9581,
- PseudoVSOXSEG4EI64_V_M4_M2 = 9582,
- PseudoVSOXSEG4EI64_V_M4_M2_MASK = 9583,
- PseudoVSOXSEG4EI64_V_M4_MF2 = 9584,
- PseudoVSOXSEG4EI64_V_M4_MF2_MASK = 9585,
- PseudoVSOXSEG4EI64_V_M8_M1 = 9586,
- PseudoVSOXSEG4EI64_V_M8_M1_MASK = 9587,
- PseudoVSOXSEG4EI64_V_M8_M2 = 9588,
- PseudoVSOXSEG4EI64_V_M8_M2_MASK = 9589,
- PseudoVSOXSEG4EI8_V_M1_M1 = 9590,
- PseudoVSOXSEG4EI8_V_M1_M1_MASK = 9591,
- PseudoVSOXSEG4EI8_V_M1_M2 = 9592,
- PseudoVSOXSEG4EI8_V_M1_M2_MASK = 9593,
- PseudoVSOXSEG4EI8_V_M2_M2 = 9594,
- PseudoVSOXSEG4EI8_V_M2_M2_MASK = 9595,
- PseudoVSOXSEG4EI8_V_MF2_M1 = 9596,
- PseudoVSOXSEG4EI8_V_MF2_M1_MASK = 9597,
- PseudoVSOXSEG4EI8_V_MF2_M2 = 9598,
- PseudoVSOXSEG4EI8_V_MF2_M2_MASK = 9599,
- PseudoVSOXSEG4EI8_V_MF2_MF2 = 9600,
- PseudoVSOXSEG4EI8_V_MF2_MF2_MASK = 9601,
- PseudoVSOXSEG4EI8_V_MF4_M1 = 9602,
- PseudoVSOXSEG4EI8_V_MF4_M1_MASK = 9603,
- PseudoVSOXSEG4EI8_V_MF4_M2 = 9604,
- PseudoVSOXSEG4EI8_V_MF4_M2_MASK = 9605,
- PseudoVSOXSEG4EI8_V_MF4_MF2 = 9606,
- PseudoVSOXSEG4EI8_V_MF4_MF2_MASK = 9607,
- PseudoVSOXSEG4EI8_V_MF4_MF4 = 9608,
- PseudoVSOXSEG4EI8_V_MF4_MF4_MASK = 9609,
- PseudoVSOXSEG4EI8_V_MF8_M1 = 9610,
- PseudoVSOXSEG4EI8_V_MF8_M1_MASK = 9611,
- PseudoVSOXSEG4EI8_V_MF8_MF2 = 9612,
- PseudoVSOXSEG4EI8_V_MF8_MF2_MASK = 9613,
- PseudoVSOXSEG4EI8_V_MF8_MF4 = 9614,
- PseudoVSOXSEG4EI8_V_MF8_MF4_MASK = 9615,
- PseudoVSOXSEG4EI8_V_MF8_MF8 = 9616,
- PseudoVSOXSEG4EI8_V_MF8_MF8_MASK = 9617,
- PseudoVSOXSEG5EI16_V_M1_M1 = 9618,
- PseudoVSOXSEG5EI16_V_M1_M1_MASK = 9619,
- PseudoVSOXSEG5EI16_V_M1_MF2 = 9620,
- PseudoVSOXSEG5EI16_V_M1_MF2_MASK = 9621,
- PseudoVSOXSEG5EI16_V_M2_M1 = 9622,
- PseudoVSOXSEG5EI16_V_M2_M1_MASK = 9623,
- PseudoVSOXSEG5EI16_V_MF2_M1 = 9624,
- PseudoVSOXSEG5EI16_V_MF2_M1_MASK = 9625,
- PseudoVSOXSEG5EI16_V_MF2_MF2 = 9626,
- PseudoVSOXSEG5EI16_V_MF2_MF2_MASK = 9627,
- PseudoVSOXSEG5EI16_V_MF2_MF4 = 9628,
- PseudoVSOXSEG5EI16_V_MF2_MF4_MASK = 9629,
- PseudoVSOXSEG5EI16_V_MF4_M1 = 9630,
- PseudoVSOXSEG5EI16_V_MF4_M1_MASK = 9631,
- PseudoVSOXSEG5EI16_V_MF4_MF2 = 9632,
- PseudoVSOXSEG5EI16_V_MF4_MF2_MASK = 9633,
- PseudoVSOXSEG5EI16_V_MF4_MF4 = 9634,
- PseudoVSOXSEG5EI16_V_MF4_MF4_MASK = 9635,
- PseudoVSOXSEG5EI16_V_MF4_MF8 = 9636,
- PseudoVSOXSEG5EI16_V_MF4_MF8_MASK = 9637,
- PseudoVSOXSEG5EI32_V_M1_M1 = 9638,
- PseudoVSOXSEG5EI32_V_M1_M1_MASK = 9639,
- PseudoVSOXSEG5EI32_V_M1_MF2 = 9640,
- PseudoVSOXSEG5EI32_V_M1_MF2_MASK = 9641,
- PseudoVSOXSEG5EI32_V_M1_MF4 = 9642,
- PseudoVSOXSEG5EI32_V_M1_MF4_MASK = 9643,
- PseudoVSOXSEG5EI32_V_M2_M1 = 9644,
- PseudoVSOXSEG5EI32_V_M2_M1_MASK = 9645,
- PseudoVSOXSEG5EI32_V_M2_MF2 = 9646,
- PseudoVSOXSEG5EI32_V_M2_MF2_MASK = 9647,
- PseudoVSOXSEG5EI32_V_M4_M1 = 9648,
- PseudoVSOXSEG5EI32_V_M4_M1_MASK = 9649,
- PseudoVSOXSEG5EI32_V_MF2_M1 = 9650,
- PseudoVSOXSEG5EI32_V_MF2_M1_MASK = 9651,
- PseudoVSOXSEG5EI32_V_MF2_MF2 = 9652,
- PseudoVSOXSEG5EI32_V_MF2_MF2_MASK = 9653,
- PseudoVSOXSEG5EI32_V_MF2_MF4 = 9654,
- PseudoVSOXSEG5EI32_V_MF2_MF4_MASK = 9655,
- PseudoVSOXSEG5EI32_V_MF2_MF8 = 9656,
- PseudoVSOXSEG5EI32_V_MF2_MF8_MASK = 9657,
- PseudoVSOXSEG5EI64_V_M1_M1 = 9658,
- PseudoVSOXSEG5EI64_V_M1_M1_MASK = 9659,
- PseudoVSOXSEG5EI64_V_M1_MF2 = 9660,
- PseudoVSOXSEG5EI64_V_M1_MF2_MASK = 9661,
- PseudoVSOXSEG5EI64_V_M1_MF4 = 9662,
- PseudoVSOXSEG5EI64_V_M1_MF4_MASK = 9663,
- PseudoVSOXSEG5EI64_V_M1_MF8 = 9664,
- PseudoVSOXSEG5EI64_V_M1_MF8_MASK = 9665,
- PseudoVSOXSEG5EI64_V_M2_M1 = 9666,
- PseudoVSOXSEG5EI64_V_M2_M1_MASK = 9667,
- PseudoVSOXSEG5EI64_V_M2_MF2 = 9668,
- PseudoVSOXSEG5EI64_V_M2_MF2_MASK = 9669,
- PseudoVSOXSEG5EI64_V_M2_MF4 = 9670,
- PseudoVSOXSEG5EI64_V_M2_MF4_MASK = 9671,
- PseudoVSOXSEG5EI64_V_M4_M1 = 9672,
- PseudoVSOXSEG5EI64_V_M4_M1_MASK = 9673,
- PseudoVSOXSEG5EI64_V_M4_MF2 = 9674,
- PseudoVSOXSEG5EI64_V_M4_MF2_MASK = 9675,
- PseudoVSOXSEG5EI64_V_M8_M1 = 9676,
- PseudoVSOXSEG5EI64_V_M8_M1_MASK = 9677,
- PseudoVSOXSEG5EI8_V_M1_M1 = 9678,
- PseudoVSOXSEG5EI8_V_M1_M1_MASK = 9679,
- PseudoVSOXSEG5EI8_V_MF2_M1 = 9680,
- PseudoVSOXSEG5EI8_V_MF2_M1_MASK = 9681,
- PseudoVSOXSEG5EI8_V_MF2_MF2 = 9682,
- PseudoVSOXSEG5EI8_V_MF2_MF2_MASK = 9683,
- PseudoVSOXSEG5EI8_V_MF4_M1 = 9684,
- PseudoVSOXSEG5EI8_V_MF4_M1_MASK = 9685,
- PseudoVSOXSEG5EI8_V_MF4_MF2 = 9686,
- PseudoVSOXSEG5EI8_V_MF4_MF2_MASK = 9687,
- PseudoVSOXSEG5EI8_V_MF4_MF4 = 9688,
- PseudoVSOXSEG5EI8_V_MF4_MF4_MASK = 9689,
- PseudoVSOXSEG5EI8_V_MF8_M1 = 9690,
- PseudoVSOXSEG5EI8_V_MF8_M1_MASK = 9691,
- PseudoVSOXSEG5EI8_V_MF8_MF2 = 9692,
- PseudoVSOXSEG5EI8_V_MF8_MF2_MASK = 9693,
- PseudoVSOXSEG5EI8_V_MF8_MF4 = 9694,
- PseudoVSOXSEG5EI8_V_MF8_MF4_MASK = 9695,
- PseudoVSOXSEG5EI8_V_MF8_MF8 = 9696,
- PseudoVSOXSEG5EI8_V_MF8_MF8_MASK = 9697,
- PseudoVSOXSEG6EI16_V_M1_M1 = 9698,
- PseudoVSOXSEG6EI16_V_M1_M1_MASK = 9699,
- PseudoVSOXSEG6EI16_V_M1_MF2 = 9700,
- PseudoVSOXSEG6EI16_V_M1_MF2_MASK = 9701,
- PseudoVSOXSEG6EI16_V_M2_M1 = 9702,
- PseudoVSOXSEG6EI16_V_M2_M1_MASK = 9703,
- PseudoVSOXSEG6EI16_V_MF2_M1 = 9704,
- PseudoVSOXSEG6EI16_V_MF2_M1_MASK = 9705,
- PseudoVSOXSEG6EI16_V_MF2_MF2 = 9706,
- PseudoVSOXSEG6EI16_V_MF2_MF2_MASK = 9707,
- PseudoVSOXSEG6EI16_V_MF2_MF4 = 9708,
- PseudoVSOXSEG6EI16_V_MF2_MF4_MASK = 9709,
- PseudoVSOXSEG6EI16_V_MF4_M1 = 9710,
- PseudoVSOXSEG6EI16_V_MF4_M1_MASK = 9711,
- PseudoVSOXSEG6EI16_V_MF4_MF2 = 9712,
- PseudoVSOXSEG6EI16_V_MF4_MF2_MASK = 9713,
- PseudoVSOXSEG6EI16_V_MF4_MF4 = 9714,
- PseudoVSOXSEG6EI16_V_MF4_MF4_MASK = 9715,
- PseudoVSOXSEG6EI16_V_MF4_MF8 = 9716,
- PseudoVSOXSEG6EI16_V_MF4_MF8_MASK = 9717,
- PseudoVSOXSEG6EI32_V_M1_M1 = 9718,
- PseudoVSOXSEG6EI32_V_M1_M1_MASK = 9719,
- PseudoVSOXSEG6EI32_V_M1_MF2 = 9720,
- PseudoVSOXSEG6EI32_V_M1_MF2_MASK = 9721,
- PseudoVSOXSEG6EI32_V_M1_MF4 = 9722,
- PseudoVSOXSEG6EI32_V_M1_MF4_MASK = 9723,
- PseudoVSOXSEG6EI32_V_M2_M1 = 9724,
- PseudoVSOXSEG6EI32_V_M2_M1_MASK = 9725,
- PseudoVSOXSEG6EI32_V_M2_MF2 = 9726,
- PseudoVSOXSEG6EI32_V_M2_MF2_MASK = 9727,
- PseudoVSOXSEG6EI32_V_M4_M1 = 9728,
- PseudoVSOXSEG6EI32_V_M4_M1_MASK = 9729,
- PseudoVSOXSEG6EI32_V_MF2_M1 = 9730,
- PseudoVSOXSEG6EI32_V_MF2_M1_MASK = 9731,
- PseudoVSOXSEG6EI32_V_MF2_MF2 = 9732,
- PseudoVSOXSEG6EI32_V_MF2_MF2_MASK = 9733,
- PseudoVSOXSEG6EI32_V_MF2_MF4 = 9734,
- PseudoVSOXSEG6EI32_V_MF2_MF4_MASK = 9735,
- PseudoVSOXSEG6EI32_V_MF2_MF8 = 9736,
- PseudoVSOXSEG6EI32_V_MF2_MF8_MASK = 9737,
- PseudoVSOXSEG6EI64_V_M1_M1 = 9738,
- PseudoVSOXSEG6EI64_V_M1_M1_MASK = 9739,
- PseudoVSOXSEG6EI64_V_M1_MF2 = 9740,
- PseudoVSOXSEG6EI64_V_M1_MF2_MASK = 9741,
- PseudoVSOXSEG6EI64_V_M1_MF4 = 9742,
- PseudoVSOXSEG6EI64_V_M1_MF4_MASK = 9743,
- PseudoVSOXSEG6EI64_V_M1_MF8 = 9744,
- PseudoVSOXSEG6EI64_V_M1_MF8_MASK = 9745,
- PseudoVSOXSEG6EI64_V_M2_M1 = 9746,
- PseudoVSOXSEG6EI64_V_M2_M1_MASK = 9747,
- PseudoVSOXSEG6EI64_V_M2_MF2 = 9748,
- PseudoVSOXSEG6EI64_V_M2_MF2_MASK = 9749,
- PseudoVSOXSEG6EI64_V_M2_MF4 = 9750,
- PseudoVSOXSEG6EI64_V_M2_MF4_MASK = 9751,
- PseudoVSOXSEG6EI64_V_M4_M1 = 9752,
- PseudoVSOXSEG6EI64_V_M4_M1_MASK = 9753,
- PseudoVSOXSEG6EI64_V_M4_MF2 = 9754,
- PseudoVSOXSEG6EI64_V_M4_MF2_MASK = 9755,
- PseudoVSOXSEG6EI64_V_M8_M1 = 9756,
- PseudoVSOXSEG6EI64_V_M8_M1_MASK = 9757,
- PseudoVSOXSEG6EI8_V_M1_M1 = 9758,
- PseudoVSOXSEG6EI8_V_M1_M1_MASK = 9759,
- PseudoVSOXSEG6EI8_V_MF2_M1 = 9760,
- PseudoVSOXSEG6EI8_V_MF2_M1_MASK = 9761,
- PseudoVSOXSEG6EI8_V_MF2_MF2 = 9762,
- PseudoVSOXSEG6EI8_V_MF2_MF2_MASK = 9763,
- PseudoVSOXSEG6EI8_V_MF4_M1 = 9764,
- PseudoVSOXSEG6EI8_V_MF4_M1_MASK = 9765,
- PseudoVSOXSEG6EI8_V_MF4_MF2 = 9766,
- PseudoVSOXSEG6EI8_V_MF4_MF2_MASK = 9767,
- PseudoVSOXSEG6EI8_V_MF4_MF4 = 9768,
- PseudoVSOXSEG6EI8_V_MF4_MF4_MASK = 9769,
- PseudoVSOXSEG6EI8_V_MF8_M1 = 9770,
- PseudoVSOXSEG6EI8_V_MF8_M1_MASK = 9771,
- PseudoVSOXSEG6EI8_V_MF8_MF2 = 9772,
- PseudoVSOXSEG6EI8_V_MF8_MF2_MASK = 9773,
- PseudoVSOXSEG6EI8_V_MF8_MF4 = 9774,
- PseudoVSOXSEG6EI8_V_MF8_MF4_MASK = 9775,
- PseudoVSOXSEG6EI8_V_MF8_MF8 = 9776,
- PseudoVSOXSEG6EI8_V_MF8_MF8_MASK = 9777,
- PseudoVSOXSEG7EI16_V_M1_M1 = 9778,
- PseudoVSOXSEG7EI16_V_M1_M1_MASK = 9779,
- PseudoVSOXSEG7EI16_V_M1_MF2 = 9780,
- PseudoVSOXSEG7EI16_V_M1_MF2_MASK = 9781,
- PseudoVSOXSEG7EI16_V_M2_M1 = 9782,
- PseudoVSOXSEG7EI16_V_M2_M1_MASK = 9783,
- PseudoVSOXSEG7EI16_V_MF2_M1 = 9784,
- PseudoVSOXSEG7EI16_V_MF2_M1_MASK = 9785,
- PseudoVSOXSEG7EI16_V_MF2_MF2 = 9786,
- PseudoVSOXSEG7EI16_V_MF2_MF2_MASK = 9787,
- PseudoVSOXSEG7EI16_V_MF2_MF4 = 9788,
- PseudoVSOXSEG7EI16_V_MF2_MF4_MASK = 9789,
- PseudoVSOXSEG7EI16_V_MF4_M1 = 9790,
- PseudoVSOXSEG7EI16_V_MF4_M1_MASK = 9791,
- PseudoVSOXSEG7EI16_V_MF4_MF2 = 9792,
- PseudoVSOXSEG7EI16_V_MF4_MF2_MASK = 9793,
- PseudoVSOXSEG7EI16_V_MF4_MF4 = 9794,
- PseudoVSOXSEG7EI16_V_MF4_MF4_MASK = 9795,
- PseudoVSOXSEG7EI16_V_MF4_MF8 = 9796,
- PseudoVSOXSEG7EI16_V_MF4_MF8_MASK = 9797,
- PseudoVSOXSEG7EI32_V_M1_M1 = 9798,
- PseudoVSOXSEG7EI32_V_M1_M1_MASK = 9799,
- PseudoVSOXSEG7EI32_V_M1_MF2 = 9800,
- PseudoVSOXSEG7EI32_V_M1_MF2_MASK = 9801,
- PseudoVSOXSEG7EI32_V_M1_MF4 = 9802,
- PseudoVSOXSEG7EI32_V_M1_MF4_MASK = 9803,
- PseudoVSOXSEG7EI32_V_M2_M1 = 9804,
- PseudoVSOXSEG7EI32_V_M2_M1_MASK = 9805,
- PseudoVSOXSEG7EI32_V_M2_MF2 = 9806,
- PseudoVSOXSEG7EI32_V_M2_MF2_MASK = 9807,
- PseudoVSOXSEG7EI32_V_M4_M1 = 9808,
- PseudoVSOXSEG7EI32_V_M4_M1_MASK = 9809,
- PseudoVSOXSEG7EI32_V_MF2_M1 = 9810,
- PseudoVSOXSEG7EI32_V_MF2_M1_MASK = 9811,
- PseudoVSOXSEG7EI32_V_MF2_MF2 = 9812,
- PseudoVSOXSEG7EI32_V_MF2_MF2_MASK = 9813,
- PseudoVSOXSEG7EI32_V_MF2_MF4 = 9814,
- PseudoVSOXSEG7EI32_V_MF2_MF4_MASK = 9815,
- PseudoVSOXSEG7EI32_V_MF2_MF8 = 9816,
- PseudoVSOXSEG7EI32_V_MF2_MF8_MASK = 9817,
- PseudoVSOXSEG7EI64_V_M1_M1 = 9818,
- PseudoVSOXSEG7EI64_V_M1_M1_MASK = 9819,
- PseudoVSOXSEG7EI64_V_M1_MF2 = 9820,
- PseudoVSOXSEG7EI64_V_M1_MF2_MASK = 9821,
- PseudoVSOXSEG7EI64_V_M1_MF4 = 9822,
- PseudoVSOXSEG7EI64_V_M1_MF4_MASK = 9823,
- PseudoVSOXSEG7EI64_V_M1_MF8 = 9824,
- PseudoVSOXSEG7EI64_V_M1_MF8_MASK = 9825,
- PseudoVSOXSEG7EI64_V_M2_M1 = 9826,
- PseudoVSOXSEG7EI64_V_M2_M1_MASK = 9827,
- PseudoVSOXSEG7EI64_V_M2_MF2 = 9828,
- PseudoVSOXSEG7EI64_V_M2_MF2_MASK = 9829,
- PseudoVSOXSEG7EI64_V_M2_MF4 = 9830,
- PseudoVSOXSEG7EI64_V_M2_MF4_MASK = 9831,
- PseudoVSOXSEG7EI64_V_M4_M1 = 9832,
- PseudoVSOXSEG7EI64_V_M4_M1_MASK = 9833,
- PseudoVSOXSEG7EI64_V_M4_MF2 = 9834,
- PseudoVSOXSEG7EI64_V_M4_MF2_MASK = 9835,
- PseudoVSOXSEG7EI64_V_M8_M1 = 9836,
- PseudoVSOXSEG7EI64_V_M8_M1_MASK = 9837,
- PseudoVSOXSEG7EI8_V_M1_M1 = 9838,
- PseudoVSOXSEG7EI8_V_M1_M1_MASK = 9839,
- PseudoVSOXSEG7EI8_V_MF2_M1 = 9840,
- PseudoVSOXSEG7EI8_V_MF2_M1_MASK = 9841,
- PseudoVSOXSEG7EI8_V_MF2_MF2 = 9842,
- PseudoVSOXSEG7EI8_V_MF2_MF2_MASK = 9843,
- PseudoVSOXSEG7EI8_V_MF4_M1 = 9844,
- PseudoVSOXSEG7EI8_V_MF4_M1_MASK = 9845,
- PseudoVSOXSEG7EI8_V_MF4_MF2 = 9846,
- PseudoVSOXSEG7EI8_V_MF4_MF2_MASK = 9847,
- PseudoVSOXSEG7EI8_V_MF4_MF4 = 9848,
- PseudoVSOXSEG7EI8_V_MF4_MF4_MASK = 9849,
- PseudoVSOXSEG7EI8_V_MF8_M1 = 9850,
- PseudoVSOXSEG7EI8_V_MF8_M1_MASK = 9851,
- PseudoVSOXSEG7EI8_V_MF8_MF2 = 9852,
- PseudoVSOXSEG7EI8_V_MF8_MF2_MASK = 9853,
- PseudoVSOXSEG7EI8_V_MF8_MF4 = 9854,
- PseudoVSOXSEG7EI8_V_MF8_MF4_MASK = 9855,
- PseudoVSOXSEG7EI8_V_MF8_MF8 = 9856,
- PseudoVSOXSEG7EI8_V_MF8_MF8_MASK = 9857,
- PseudoVSOXSEG8EI16_V_M1_M1 = 9858,
- PseudoVSOXSEG8EI16_V_M1_M1_MASK = 9859,
- PseudoVSOXSEG8EI16_V_M1_MF2 = 9860,
- PseudoVSOXSEG8EI16_V_M1_MF2_MASK = 9861,
- PseudoVSOXSEG8EI16_V_M2_M1 = 9862,
- PseudoVSOXSEG8EI16_V_M2_M1_MASK = 9863,
- PseudoVSOXSEG8EI16_V_MF2_M1 = 9864,
- PseudoVSOXSEG8EI16_V_MF2_M1_MASK = 9865,
- PseudoVSOXSEG8EI16_V_MF2_MF2 = 9866,
- PseudoVSOXSEG8EI16_V_MF2_MF2_MASK = 9867,
- PseudoVSOXSEG8EI16_V_MF2_MF4 = 9868,
- PseudoVSOXSEG8EI16_V_MF2_MF4_MASK = 9869,
- PseudoVSOXSEG8EI16_V_MF4_M1 = 9870,
- PseudoVSOXSEG8EI16_V_MF4_M1_MASK = 9871,
- PseudoVSOXSEG8EI16_V_MF4_MF2 = 9872,
- PseudoVSOXSEG8EI16_V_MF4_MF2_MASK = 9873,
- PseudoVSOXSEG8EI16_V_MF4_MF4 = 9874,
- PseudoVSOXSEG8EI16_V_MF4_MF4_MASK = 9875,
- PseudoVSOXSEG8EI16_V_MF4_MF8 = 9876,
- PseudoVSOXSEG8EI16_V_MF4_MF8_MASK = 9877,
- PseudoVSOXSEG8EI32_V_M1_M1 = 9878,
- PseudoVSOXSEG8EI32_V_M1_M1_MASK = 9879,
- PseudoVSOXSEG8EI32_V_M1_MF2 = 9880,
- PseudoVSOXSEG8EI32_V_M1_MF2_MASK = 9881,
- PseudoVSOXSEG8EI32_V_M1_MF4 = 9882,
- PseudoVSOXSEG8EI32_V_M1_MF4_MASK = 9883,
- PseudoVSOXSEG8EI32_V_M2_M1 = 9884,
- PseudoVSOXSEG8EI32_V_M2_M1_MASK = 9885,
- PseudoVSOXSEG8EI32_V_M2_MF2 = 9886,
- PseudoVSOXSEG8EI32_V_M2_MF2_MASK = 9887,
- PseudoVSOXSEG8EI32_V_M4_M1 = 9888,
- PseudoVSOXSEG8EI32_V_M4_M1_MASK = 9889,
- PseudoVSOXSEG8EI32_V_MF2_M1 = 9890,
- PseudoVSOXSEG8EI32_V_MF2_M1_MASK = 9891,
- PseudoVSOXSEG8EI32_V_MF2_MF2 = 9892,
- PseudoVSOXSEG8EI32_V_MF2_MF2_MASK = 9893,
- PseudoVSOXSEG8EI32_V_MF2_MF4 = 9894,
- PseudoVSOXSEG8EI32_V_MF2_MF4_MASK = 9895,
- PseudoVSOXSEG8EI32_V_MF2_MF8 = 9896,
- PseudoVSOXSEG8EI32_V_MF2_MF8_MASK = 9897,
- PseudoVSOXSEG8EI64_V_M1_M1 = 9898,
- PseudoVSOXSEG8EI64_V_M1_M1_MASK = 9899,
- PseudoVSOXSEG8EI64_V_M1_MF2 = 9900,
- PseudoVSOXSEG8EI64_V_M1_MF2_MASK = 9901,
- PseudoVSOXSEG8EI64_V_M1_MF4 = 9902,
- PseudoVSOXSEG8EI64_V_M1_MF4_MASK = 9903,
- PseudoVSOXSEG8EI64_V_M1_MF8 = 9904,
- PseudoVSOXSEG8EI64_V_M1_MF8_MASK = 9905,
- PseudoVSOXSEG8EI64_V_M2_M1 = 9906,
- PseudoVSOXSEG8EI64_V_M2_M1_MASK = 9907,
- PseudoVSOXSEG8EI64_V_M2_MF2 = 9908,
- PseudoVSOXSEG8EI64_V_M2_MF2_MASK = 9909,
- PseudoVSOXSEG8EI64_V_M2_MF4 = 9910,
- PseudoVSOXSEG8EI64_V_M2_MF4_MASK = 9911,
- PseudoVSOXSEG8EI64_V_M4_M1 = 9912,
- PseudoVSOXSEG8EI64_V_M4_M1_MASK = 9913,
- PseudoVSOXSEG8EI64_V_M4_MF2 = 9914,
- PseudoVSOXSEG8EI64_V_M4_MF2_MASK = 9915,
- PseudoVSOXSEG8EI64_V_M8_M1 = 9916,
- PseudoVSOXSEG8EI64_V_M8_M1_MASK = 9917,
- PseudoVSOXSEG8EI8_V_M1_M1 = 9918,
- PseudoVSOXSEG8EI8_V_M1_M1_MASK = 9919,
- PseudoVSOXSEG8EI8_V_MF2_M1 = 9920,
- PseudoVSOXSEG8EI8_V_MF2_M1_MASK = 9921,
- PseudoVSOXSEG8EI8_V_MF2_MF2 = 9922,
- PseudoVSOXSEG8EI8_V_MF2_MF2_MASK = 9923,
- PseudoVSOXSEG8EI8_V_MF4_M1 = 9924,
- PseudoVSOXSEG8EI8_V_MF4_M1_MASK = 9925,
- PseudoVSOXSEG8EI8_V_MF4_MF2 = 9926,
- PseudoVSOXSEG8EI8_V_MF4_MF2_MASK = 9927,
- PseudoVSOXSEG8EI8_V_MF4_MF4 = 9928,
- PseudoVSOXSEG8EI8_V_MF4_MF4_MASK = 9929,
- PseudoVSOXSEG8EI8_V_MF8_M1 = 9930,
- PseudoVSOXSEG8EI8_V_MF8_M1_MASK = 9931,
- PseudoVSOXSEG8EI8_V_MF8_MF2 = 9932,
- PseudoVSOXSEG8EI8_V_MF8_MF2_MASK = 9933,
- PseudoVSOXSEG8EI8_V_MF8_MF4 = 9934,
- PseudoVSOXSEG8EI8_V_MF8_MF4_MASK = 9935,
- PseudoVSOXSEG8EI8_V_MF8_MF8 = 9936,
- PseudoVSOXSEG8EI8_V_MF8_MF8_MASK = 9937,
- PseudoVSPILL2_M1 = 9938,
- PseudoVSPILL2_M2 = 9939,
- PseudoVSPILL2_M4 = 9940,
- PseudoVSPILL2_MF2 = 9941,
- PseudoVSPILL2_MF4 = 9942,
- PseudoVSPILL2_MF8 = 9943,
- PseudoVSPILL3_M1 = 9944,
- PseudoVSPILL3_M2 = 9945,
- PseudoVSPILL3_MF2 = 9946,
- PseudoVSPILL3_MF4 = 9947,
- PseudoVSPILL3_MF8 = 9948,
- PseudoVSPILL4_M1 = 9949,
- PseudoVSPILL4_M2 = 9950,
- PseudoVSPILL4_MF2 = 9951,
- PseudoVSPILL4_MF4 = 9952,
- PseudoVSPILL4_MF8 = 9953,
- PseudoVSPILL5_M1 = 9954,
- PseudoVSPILL5_MF2 = 9955,
- PseudoVSPILL5_MF4 = 9956,
- PseudoVSPILL5_MF8 = 9957,
- PseudoVSPILL6_M1 = 9958,
- PseudoVSPILL6_MF2 = 9959,
- PseudoVSPILL6_MF4 = 9960,
- PseudoVSPILL6_MF8 = 9961,
- PseudoVSPILL7_M1 = 9962,
- PseudoVSPILL7_MF2 = 9963,
- PseudoVSPILL7_MF4 = 9964,
- PseudoVSPILL7_MF8 = 9965,
- PseudoVSPILL8_M1 = 9966,
- PseudoVSPILL8_MF2 = 9967,
- PseudoVSPILL8_MF4 = 9968,
- PseudoVSPILL8_MF8 = 9969,
- PseudoVSRA_VI_M1 = 9970,
- PseudoVSRA_VI_M1_MASK = 9971,
- PseudoVSRA_VI_M2 = 9972,
- PseudoVSRA_VI_M2_MASK = 9973,
- PseudoVSRA_VI_M4 = 9974,
- PseudoVSRA_VI_M4_MASK = 9975,
- PseudoVSRA_VI_M8 = 9976,
- PseudoVSRA_VI_M8_MASK = 9977,
- PseudoVSRA_VI_MF2 = 9978,
- PseudoVSRA_VI_MF2_MASK = 9979,
- PseudoVSRA_VI_MF4 = 9980,
- PseudoVSRA_VI_MF4_MASK = 9981,
- PseudoVSRA_VI_MF8 = 9982,
- PseudoVSRA_VI_MF8_MASK = 9983,
- PseudoVSRA_VV_M1 = 9984,
- PseudoVSRA_VV_M1_MASK = 9985,
- PseudoVSRA_VV_M2 = 9986,
- PseudoVSRA_VV_M2_MASK = 9987,
- PseudoVSRA_VV_M4 = 9988,
- PseudoVSRA_VV_M4_MASK = 9989,
- PseudoVSRA_VV_M8 = 9990,
- PseudoVSRA_VV_M8_MASK = 9991,
- PseudoVSRA_VV_MF2 = 9992,
- PseudoVSRA_VV_MF2_MASK = 9993,
- PseudoVSRA_VV_MF4 = 9994,
- PseudoVSRA_VV_MF4_MASK = 9995,
- PseudoVSRA_VV_MF8 = 9996,
- PseudoVSRA_VV_MF8_MASK = 9997,
- PseudoVSRA_VX_M1 = 9998,
- PseudoVSRA_VX_M1_MASK = 9999,
- PseudoVSRA_VX_M2 = 10000,
- PseudoVSRA_VX_M2_MASK = 10001,
- PseudoVSRA_VX_M4 = 10002,
- PseudoVSRA_VX_M4_MASK = 10003,
- PseudoVSRA_VX_M8 = 10004,
- PseudoVSRA_VX_M8_MASK = 10005,
- PseudoVSRA_VX_MF2 = 10006,
- PseudoVSRA_VX_MF2_MASK = 10007,
- PseudoVSRA_VX_MF4 = 10008,
- PseudoVSRA_VX_MF4_MASK = 10009,
- PseudoVSRA_VX_MF8 = 10010,
- PseudoVSRA_VX_MF8_MASK = 10011,
- PseudoVSRL_VI_M1 = 10012,
- PseudoVSRL_VI_M1_MASK = 10013,
- PseudoVSRL_VI_M2 = 10014,
- PseudoVSRL_VI_M2_MASK = 10015,
- PseudoVSRL_VI_M4 = 10016,
- PseudoVSRL_VI_M4_MASK = 10017,
- PseudoVSRL_VI_M8 = 10018,
- PseudoVSRL_VI_M8_MASK = 10019,
- PseudoVSRL_VI_MF2 = 10020,
- PseudoVSRL_VI_MF2_MASK = 10021,
- PseudoVSRL_VI_MF4 = 10022,
- PseudoVSRL_VI_MF4_MASK = 10023,
- PseudoVSRL_VI_MF8 = 10024,
- PseudoVSRL_VI_MF8_MASK = 10025,
- PseudoVSRL_VV_M1 = 10026,
- PseudoVSRL_VV_M1_MASK = 10027,
- PseudoVSRL_VV_M2 = 10028,
- PseudoVSRL_VV_M2_MASK = 10029,
- PseudoVSRL_VV_M4 = 10030,
- PseudoVSRL_VV_M4_MASK = 10031,
- PseudoVSRL_VV_M8 = 10032,
- PseudoVSRL_VV_M8_MASK = 10033,
- PseudoVSRL_VV_MF2 = 10034,
- PseudoVSRL_VV_MF2_MASK = 10035,
- PseudoVSRL_VV_MF4 = 10036,
- PseudoVSRL_VV_MF4_MASK = 10037,
- PseudoVSRL_VV_MF8 = 10038,
- PseudoVSRL_VV_MF8_MASK = 10039,
- PseudoVSRL_VX_M1 = 10040,
- PseudoVSRL_VX_M1_MASK = 10041,
- PseudoVSRL_VX_M2 = 10042,
- PseudoVSRL_VX_M2_MASK = 10043,
- PseudoVSRL_VX_M4 = 10044,
- PseudoVSRL_VX_M4_MASK = 10045,
- PseudoVSRL_VX_M8 = 10046,
- PseudoVSRL_VX_M8_MASK = 10047,
- PseudoVSRL_VX_MF2 = 10048,
- PseudoVSRL_VX_MF2_MASK = 10049,
- PseudoVSRL_VX_MF4 = 10050,
- PseudoVSRL_VX_MF4_MASK = 10051,
- PseudoVSRL_VX_MF8 = 10052,
- PseudoVSRL_VX_MF8_MASK = 10053,
- PseudoVSSE16_V_M1 = 10054,
- PseudoVSSE16_V_M1_MASK = 10055,
- PseudoVSSE16_V_M2 = 10056,
- PseudoVSSE16_V_M2_MASK = 10057,
- PseudoVSSE16_V_M4 = 10058,
- PseudoVSSE16_V_M4_MASK = 10059,
- PseudoVSSE16_V_M8 = 10060,
- PseudoVSSE16_V_M8_MASK = 10061,
- PseudoVSSE16_V_MF2 = 10062,
- PseudoVSSE16_V_MF2_MASK = 10063,
- PseudoVSSE16_V_MF4 = 10064,
- PseudoVSSE16_V_MF4_MASK = 10065,
- PseudoVSSE32_V_M1 = 10066,
- PseudoVSSE32_V_M1_MASK = 10067,
- PseudoVSSE32_V_M2 = 10068,
- PseudoVSSE32_V_M2_MASK = 10069,
- PseudoVSSE32_V_M4 = 10070,
- PseudoVSSE32_V_M4_MASK = 10071,
- PseudoVSSE32_V_M8 = 10072,
- PseudoVSSE32_V_M8_MASK = 10073,
- PseudoVSSE32_V_MF2 = 10074,
- PseudoVSSE32_V_MF2_MASK = 10075,
- PseudoVSSE64_V_M1 = 10076,
- PseudoVSSE64_V_M1_MASK = 10077,
- PseudoVSSE64_V_M2 = 10078,
- PseudoVSSE64_V_M2_MASK = 10079,
- PseudoVSSE64_V_M4 = 10080,
- PseudoVSSE64_V_M4_MASK = 10081,
- PseudoVSSE64_V_M8 = 10082,
- PseudoVSSE64_V_M8_MASK = 10083,
- PseudoVSSE8_V_M1 = 10084,
- PseudoVSSE8_V_M1_MASK = 10085,
- PseudoVSSE8_V_M2 = 10086,
- PseudoVSSE8_V_M2_MASK = 10087,
- PseudoVSSE8_V_M4 = 10088,
- PseudoVSSE8_V_M4_MASK = 10089,
- PseudoVSSE8_V_M8 = 10090,
- PseudoVSSE8_V_M8_MASK = 10091,
- PseudoVSSE8_V_MF2 = 10092,
- PseudoVSSE8_V_MF2_MASK = 10093,
- PseudoVSSE8_V_MF4 = 10094,
- PseudoVSSE8_V_MF4_MASK = 10095,
- PseudoVSSE8_V_MF8 = 10096,
- PseudoVSSE8_V_MF8_MASK = 10097,
- PseudoVSSEG2E16_V_M1 = 10098,
- PseudoVSSEG2E16_V_M1_MASK = 10099,
- PseudoVSSEG2E16_V_M2 = 10100,
- PseudoVSSEG2E16_V_M2_MASK = 10101,
- PseudoVSSEG2E16_V_M4 = 10102,
- PseudoVSSEG2E16_V_M4_MASK = 10103,
- PseudoVSSEG2E16_V_MF2 = 10104,
- PseudoVSSEG2E16_V_MF2_MASK = 10105,
- PseudoVSSEG2E16_V_MF4 = 10106,
- PseudoVSSEG2E16_V_MF4_MASK = 10107,
- PseudoVSSEG2E32_V_M1 = 10108,
- PseudoVSSEG2E32_V_M1_MASK = 10109,
- PseudoVSSEG2E32_V_M2 = 10110,
- PseudoVSSEG2E32_V_M2_MASK = 10111,
- PseudoVSSEG2E32_V_M4 = 10112,
- PseudoVSSEG2E32_V_M4_MASK = 10113,
- PseudoVSSEG2E32_V_MF2 = 10114,
- PseudoVSSEG2E32_V_MF2_MASK = 10115,
- PseudoVSSEG2E64_V_M1 = 10116,
- PseudoVSSEG2E64_V_M1_MASK = 10117,
- PseudoVSSEG2E64_V_M2 = 10118,
- PseudoVSSEG2E64_V_M2_MASK = 10119,
- PseudoVSSEG2E64_V_M4 = 10120,
- PseudoVSSEG2E64_V_M4_MASK = 10121,
- PseudoVSSEG2E8_V_M1 = 10122,
- PseudoVSSEG2E8_V_M1_MASK = 10123,
- PseudoVSSEG2E8_V_M2 = 10124,
- PseudoVSSEG2E8_V_M2_MASK = 10125,
- PseudoVSSEG2E8_V_M4 = 10126,
- PseudoVSSEG2E8_V_M4_MASK = 10127,
- PseudoVSSEG2E8_V_MF2 = 10128,
- PseudoVSSEG2E8_V_MF2_MASK = 10129,
- PseudoVSSEG2E8_V_MF4 = 10130,
- PseudoVSSEG2E8_V_MF4_MASK = 10131,
- PseudoVSSEG2E8_V_MF8 = 10132,
- PseudoVSSEG2E8_V_MF8_MASK = 10133,
- PseudoVSSEG3E16_V_M1 = 10134,
- PseudoVSSEG3E16_V_M1_MASK = 10135,
- PseudoVSSEG3E16_V_M2 = 10136,
- PseudoVSSEG3E16_V_M2_MASK = 10137,
- PseudoVSSEG3E16_V_MF2 = 10138,
- PseudoVSSEG3E16_V_MF2_MASK = 10139,
- PseudoVSSEG3E16_V_MF4 = 10140,
- PseudoVSSEG3E16_V_MF4_MASK = 10141,
- PseudoVSSEG3E32_V_M1 = 10142,
- PseudoVSSEG3E32_V_M1_MASK = 10143,
- PseudoVSSEG3E32_V_M2 = 10144,
- PseudoVSSEG3E32_V_M2_MASK = 10145,
- PseudoVSSEG3E32_V_MF2 = 10146,
- PseudoVSSEG3E32_V_MF2_MASK = 10147,
- PseudoVSSEG3E64_V_M1 = 10148,
- PseudoVSSEG3E64_V_M1_MASK = 10149,
- PseudoVSSEG3E64_V_M2 = 10150,
- PseudoVSSEG3E64_V_M2_MASK = 10151,
- PseudoVSSEG3E8_V_M1 = 10152,
- PseudoVSSEG3E8_V_M1_MASK = 10153,
- PseudoVSSEG3E8_V_M2 = 10154,
- PseudoVSSEG3E8_V_M2_MASK = 10155,
- PseudoVSSEG3E8_V_MF2 = 10156,
- PseudoVSSEG3E8_V_MF2_MASK = 10157,
- PseudoVSSEG3E8_V_MF4 = 10158,
- PseudoVSSEG3E8_V_MF4_MASK = 10159,
- PseudoVSSEG3E8_V_MF8 = 10160,
- PseudoVSSEG3E8_V_MF8_MASK = 10161,
- PseudoVSSEG4E16_V_M1 = 10162,
- PseudoVSSEG4E16_V_M1_MASK = 10163,
- PseudoVSSEG4E16_V_M2 = 10164,
- PseudoVSSEG4E16_V_M2_MASK = 10165,
- PseudoVSSEG4E16_V_MF2 = 10166,
- PseudoVSSEG4E16_V_MF2_MASK = 10167,
- PseudoVSSEG4E16_V_MF4 = 10168,
- PseudoVSSEG4E16_V_MF4_MASK = 10169,
- PseudoVSSEG4E32_V_M1 = 10170,
- PseudoVSSEG4E32_V_M1_MASK = 10171,
- PseudoVSSEG4E32_V_M2 = 10172,
- PseudoVSSEG4E32_V_M2_MASK = 10173,
- PseudoVSSEG4E32_V_MF2 = 10174,
- PseudoVSSEG4E32_V_MF2_MASK = 10175,
- PseudoVSSEG4E64_V_M1 = 10176,
- PseudoVSSEG4E64_V_M1_MASK = 10177,
- PseudoVSSEG4E64_V_M2 = 10178,
- PseudoVSSEG4E64_V_M2_MASK = 10179,
- PseudoVSSEG4E8_V_M1 = 10180,
- PseudoVSSEG4E8_V_M1_MASK = 10181,
- PseudoVSSEG4E8_V_M2 = 10182,
- PseudoVSSEG4E8_V_M2_MASK = 10183,
- PseudoVSSEG4E8_V_MF2 = 10184,
- PseudoVSSEG4E8_V_MF2_MASK = 10185,
- PseudoVSSEG4E8_V_MF4 = 10186,
- PseudoVSSEG4E8_V_MF4_MASK = 10187,
- PseudoVSSEG4E8_V_MF8 = 10188,
- PseudoVSSEG4E8_V_MF8_MASK = 10189,
- PseudoVSSEG5E16_V_M1 = 10190,
- PseudoVSSEG5E16_V_M1_MASK = 10191,
- PseudoVSSEG5E16_V_MF2 = 10192,
- PseudoVSSEG5E16_V_MF2_MASK = 10193,
- PseudoVSSEG5E16_V_MF4 = 10194,
- PseudoVSSEG5E16_V_MF4_MASK = 10195,
- PseudoVSSEG5E32_V_M1 = 10196,
- PseudoVSSEG5E32_V_M1_MASK = 10197,
- PseudoVSSEG5E32_V_MF2 = 10198,
- PseudoVSSEG5E32_V_MF2_MASK = 10199,
- PseudoVSSEG5E64_V_M1 = 10200,
- PseudoVSSEG5E64_V_M1_MASK = 10201,
- PseudoVSSEG5E8_V_M1 = 10202,
- PseudoVSSEG5E8_V_M1_MASK = 10203,
- PseudoVSSEG5E8_V_MF2 = 10204,
- PseudoVSSEG5E8_V_MF2_MASK = 10205,
- PseudoVSSEG5E8_V_MF4 = 10206,
- PseudoVSSEG5E8_V_MF4_MASK = 10207,
- PseudoVSSEG5E8_V_MF8 = 10208,
- PseudoVSSEG5E8_V_MF8_MASK = 10209,
- PseudoVSSEG6E16_V_M1 = 10210,
- PseudoVSSEG6E16_V_M1_MASK = 10211,
- PseudoVSSEG6E16_V_MF2 = 10212,
- PseudoVSSEG6E16_V_MF2_MASK = 10213,
- PseudoVSSEG6E16_V_MF4 = 10214,
- PseudoVSSEG6E16_V_MF4_MASK = 10215,
- PseudoVSSEG6E32_V_M1 = 10216,
- PseudoVSSEG6E32_V_M1_MASK = 10217,
- PseudoVSSEG6E32_V_MF2 = 10218,
- PseudoVSSEG6E32_V_MF2_MASK = 10219,
- PseudoVSSEG6E64_V_M1 = 10220,
- PseudoVSSEG6E64_V_M1_MASK = 10221,
- PseudoVSSEG6E8_V_M1 = 10222,
- PseudoVSSEG6E8_V_M1_MASK = 10223,
- PseudoVSSEG6E8_V_MF2 = 10224,
- PseudoVSSEG6E8_V_MF2_MASK = 10225,
- PseudoVSSEG6E8_V_MF4 = 10226,
- PseudoVSSEG6E8_V_MF4_MASK = 10227,
- PseudoVSSEG6E8_V_MF8 = 10228,
- PseudoVSSEG6E8_V_MF8_MASK = 10229,
- PseudoVSSEG7E16_V_M1 = 10230,
- PseudoVSSEG7E16_V_M1_MASK = 10231,
- PseudoVSSEG7E16_V_MF2 = 10232,
- PseudoVSSEG7E16_V_MF2_MASK = 10233,
- PseudoVSSEG7E16_V_MF4 = 10234,
- PseudoVSSEG7E16_V_MF4_MASK = 10235,
- PseudoVSSEG7E32_V_M1 = 10236,
- PseudoVSSEG7E32_V_M1_MASK = 10237,
- PseudoVSSEG7E32_V_MF2 = 10238,
- PseudoVSSEG7E32_V_MF2_MASK = 10239,
- PseudoVSSEG7E64_V_M1 = 10240,
- PseudoVSSEG7E64_V_M1_MASK = 10241,
- PseudoVSSEG7E8_V_M1 = 10242,
- PseudoVSSEG7E8_V_M1_MASK = 10243,
- PseudoVSSEG7E8_V_MF2 = 10244,
- PseudoVSSEG7E8_V_MF2_MASK = 10245,
- PseudoVSSEG7E8_V_MF4 = 10246,
- PseudoVSSEG7E8_V_MF4_MASK = 10247,
- PseudoVSSEG7E8_V_MF8 = 10248,
- PseudoVSSEG7E8_V_MF8_MASK = 10249,
- PseudoVSSEG8E16_V_M1 = 10250,
- PseudoVSSEG8E16_V_M1_MASK = 10251,
- PseudoVSSEG8E16_V_MF2 = 10252,
- PseudoVSSEG8E16_V_MF2_MASK = 10253,
- PseudoVSSEG8E16_V_MF4 = 10254,
- PseudoVSSEG8E16_V_MF4_MASK = 10255,
- PseudoVSSEG8E32_V_M1 = 10256,
- PseudoVSSEG8E32_V_M1_MASK = 10257,
- PseudoVSSEG8E32_V_MF2 = 10258,
- PseudoVSSEG8E32_V_MF2_MASK = 10259,
- PseudoVSSEG8E64_V_M1 = 10260,
- PseudoVSSEG8E64_V_M1_MASK = 10261,
- PseudoVSSEG8E8_V_M1 = 10262,
- PseudoVSSEG8E8_V_M1_MASK = 10263,
- PseudoVSSEG8E8_V_MF2 = 10264,
- PseudoVSSEG8E8_V_MF2_MASK = 10265,
- PseudoVSSEG8E8_V_MF4 = 10266,
- PseudoVSSEG8E8_V_MF4_MASK = 10267,
- PseudoVSSEG8E8_V_MF8 = 10268,
- PseudoVSSEG8E8_V_MF8_MASK = 10269,
- PseudoVSSRA_VI_M1 = 10270,
- PseudoVSSRA_VI_M1_MASK = 10271,
- PseudoVSSRA_VI_M2 = 10272,
- PseudoVSSRA_VI_M2_MASK = 10273,
- PseudoVSSRA_VI_M4 = 10274,
- PseudoVSSRA_VI_M4_MASK = 10275,
- PseudoVSSRA_VI_M8 = 10276,
- PseudoVSSRA_VI_M8_MASK = 10277,
- PseudoVSSRA_VI_MF2 = 10278,
- PseudoVSSRA_VI_MF2_MASK = 10279,
- PseudoVSSRA_VI_MF4 = 10280,
- PseudoVSSRA_VI_MF4_MASK = 10281,
- PseudoVSSRA_VI_MF8 = 10282,
- PseudoVSSRA_VI_MF8_MASK = 10283,
- PseudoVSSRA_VV_M1 = 10284,
- PseudoVSSRA_VV_M1_MASK = 10285,
- PseudoVSSRA_VV_M2 = 10286,
- PseudoVSSRA_VV_M2_MASK = 10287,
- PseudoVSSRA_VV_M4 = 10288,
- PseudoVSSRA_VV_M4_MASK = 10289,
- PseudoVSSRA_VV_M8 = 10290,
- PseudoVSSRA_VV_M8_MASK = 10291,
- PseudoVSSRA_VV_MF2 = 10292,
- PseudoVSSRA_VV_MF2_MASK = 10293,
- PseudoVSSRA_VV_MF4 = 10294,
- PseudoVSSRA_VV_MF4_MASK = 10295,
- PseudoVSSRA_VV_MF8 = 10296,
- PseudoVSSRA_VV_MF8_MASK = 10297,
- PseudoVSSRA_VX_M1 = 10298,
- PseudoVSSRA_VX_M1_MASK = 10299,
- PseudoVSSRA_VX_M2 = 10300,
- PseudoVSSRA_VX_M2_MASK = 10301,
- PseudoVSSRA_VX_M4 = 10302,
- PseudoVSSRA_VX_M4_MASK = 10303,
- PseudoVSSRA_VX_M8 = 10304,
- PseudoVSSRA_VX_M8_MASK = 10305,
- PseudoVSSRA_VX_MF2 = 10306,
- PseudoVSSRA_VX_MF2_MASK = 10307,
- PseudoVSSRA_VX_MF4 = 10308,
- PseudoVSSRA_VX_MF4_MASK = 10309,
- PseudoVSSRA_VX_MF8 = 10310,
- PseudoVSSRA_VX_MF8_MASK = 10311,
- PseudoVSSRL_VI_M1 = 10312,
- PseudoVSSRL_VI_M1_MASK = 10313,
- PseudoVSSRL_VI_M2 = 10314,
- PseudoVSSRL_VI_M2_MASK = 10315,
- PseudoVSSRL_VI_M4 = 10316,
- PseudoVSSRL_VI_M4_MASK = 10317,
- PseudoVSSRL_VI_M8 = 10318,
- PseudoVSSRL_VI_M8_MASK = 10319,
- PseudoVSSRL_VI_MF2 = 10320,
- PseudoVSSRL_VI_MF2_MASK = 10321,
- PseudoVSSRL_VI_MF4 = 10322,
- PseudoVSSRL_VI_MF4_MASK = 10323,
- PseudoVSSRL_VI_MF8 = 10324,
- PseudoVSSRL_VI_MF8_MASK = 10325,
- PseudoVSSRL_VV_M1 = 10326,
- PseudoVSSRL_VV_M1_MASK = 10327,
- PseudoVSSRL_VV_M2 = 10328,
- PseudoVSSRL_VV_M2_MASK = 10329,
- PseudoVSSRL_VV_M4 = 10330,
- PseudoVSSRL_VV_M4_MASK = 10331,
- PseudoVSSRL_VV_M8 = 10332,
- PseudoVSSRL_VV_M8_MASK = 10333,
- PseudoVSSRL_VV_MF2 = 10334,
- PseudoVSSRL_VV_MF2_MASK = 10335,
- PseudoVSSRL_VV_MF4 = 10336,
- PseudoVSSRL_VV_MF4_MASK = 10337,
- PseudoVSSRL_VV_MF8 = 10338,
- PseudoVSSRL_VV_MF8_MASK = 10339,
- PseudoVSSRL_VX_M1 = 10340,
- PseudoVSSRL_VX_M1_MASK = 10341,
- PseudoVSSRL_VX_M2 = 10342,
- PseudoVSSRL_VX_M2_MASK = 10343,
- PseudoVSSRL_VX_M4 = 10344,
- PseudoVSSRL_VX_M4_MASK = 10345,
- PseudoVSSRL_VX_M8 = 10346,
- PseudoVSSRL_VX_M8_MASK = 10347,
- PseudoVSSRL_VX_MF2 = 10348,
- PseudoVSSRL_VX_MF2_MASK = 10349,
- PseudoVSSRL_VX_MF4 = 10350,
- PseudoVSSRL_VX_MF4_MASK = 10351,
- PseudoVSSRL_VX_MF8 = 10352,
- PseudoVSSRL_VX_MF8_MASK = 10353,
- PseudoVSSSEG2E16_V_M1 = 10354,
- PseudoVSSSEG2E16_V_M1_MASK = 10355,
- PseudoVSSSEG2E16_V_M2 = 10356,
- PseudoVSSSEG2E16_V_M2_MASK = 10357,
- PseudoVSSSEG2E16_V_M4 = 10358,
- PseudoVSSSEG2E16_V_M4_MASK = 10359,
- PseudoVSSSEG2E16_V_MF2 = 10360,
- PseudoVSSSEG2E16_V_MF2_MASK = 10361,
- PseudoVSSSEG2E16_V_MF4 = 10362,
- PseudoVSSSEG2E16_V_MF4_MASK = 10363,
- PseudoVSSSEG2E32_V_M1 = 10364,
- PseudoVSSSEG2E32_V_M1_MASK = 10365,
- PseudoVSSSEG2E32_V_M2 = 10366,
- PseudoVSSSEG2E32_V_M2_MASK = 10367,
- PseudoVSSSEG2E32_V_M4 = 10368,
- PseudoVSSSEG2E32_V_M4_MASK = 10369,
- PseudoVSSSEG2E32_V_MF2 = 10370,
- PseudoVSSSEG2E32_V_MF2_MASK = 10371,
- PseudoVSSSEG2E64_V_M1 = 10372,
- PseudoVSSSEG2E64_V_M1_MASK = 10373,
- PseudoVSSSEG2E64_V_M2 = 10374,
- PseudoVSSSEG2E64_V_M2_MASK = 10375,
- PseudoVSSSEG2E64_V_M4 = 10376,
- PseudoVSSSEG2E64_V_M4_MASK = 10377,
- PseudoVSSSEG2E8_V_M1 = 10378,
- PseudoVSSSEG2E8_V_M1_MASK = 10379,
- PseudoVSSSEG2E8_V_M2 = 10380,
- PseudoVSSSEG2E8_V_M2_MASK = 10381,
- PseudoVSSSEG2E8_V_M4 = 10382,
- PseudoVSSSEG2E8_V_M4_MASK = 10383,
- PseudoVSSSEG2E8_V_MF2 = 10384,
- PseudoVSSSEG2E8_V_MF2_MASK = 10385,
- PseudoVSSSEG2E8_V_MF4 = 10386,
- PseudoVSSSEG2E8_V_MF4_MASK = 10387,
- PseudoVSSSEG2E8_V_MF8 = 10388,
- PseudoVSSSEG2E8_V_MF8_MASK = 10389,
- PseudoVSSSEG3E16_V_M1 = 10390,
- PseudoVSSSEG3E16_V_M1_MASK = 10391,
- PseudoVSSSEG3E16_V_M2 = 10392,
- PseudoVSSSEG3E16_V_M2_MASK = 10393,
- PseudoVSSSEG3E16_V_MF2 = 10394,
- PseudoVSSSEG3E16_V_MF2_MASK = 10395,
- PseudoVSSSEG3E16_V_MF4 = 10396,
- PseudoVSSSEG3E16_V_MF4_MASK = 10397,
- PseudoVSSSEG3E32_V_M1 = 10398,
- PseudoVSSSEG3E32_V_M1_MASK = 10399,
- PseudoVSSSEG3E32_V_M2 = 10400,
- PseudoVSSSEG3E32_V_M2_MASK = 10401,
- PseudoVSSSEG3E32_V_MF2 = 10402,
- PseudoVSSSEG3E32_V_MF2_MASK = 10403,
- PseudoVSSSEG3E64_V_M1 = 10404,
- PseudoVSSSEG3E64_V_M1_MASK = 10405,
- PseudoVSSSEG3E64_V_M2 = 10406,
- PseudoVSSSEG3E64_V_M2_MASK = 10407,
- PseudoVSSSEG3E8_V_M1 = 10408,
- PseudoVSSSEG3E8_V_M1_MASK = 10409,
- PseudoVSSSEG3E8_V_M2 = 10410,
- PseudoVSSSEG3E8_V_M2_MASK = 10411,
- PseudoVSSSEG3E8_V_MF2 = 10412,
- PseudoVSSSEG3E8_V_MF2_MASK = 10413,
- PseudoVSSSEG3E8_V_MF4 = 10414,
- PseudoVSSSEG3E8_V_MF4_MASK = 10415,
- PseudoVSSSEG3E8_V_MF8 = 10416,
- PseudoVSSSEG3E8_V_MF8_MASK = 10417,
- PseudoVSSSEG4E16_V_M1 = 10418,
- PseudoVSSSEG4E16_V_M1_MASK = 10419,
- PseudoVSSSEG4E16_V_M2 = 10420,
- PseudoVSSSEG4E16_V_M2_MASK = 10421,
- PseudoVSSSEG4E16_V_MF2 = 10422,
- PseudoVSSSEG4E16_V_MF2_MASK = 10423,
- PseudoVSSSEG4E16_V_MF4 = 10424,
- PseudoVSSSEG4E16_V_MF4_MASK = 10425,
- PseudoVSSSEG4E32_V_M1 = 10426,
- PseudoVSSSEG4E32_V_M1_MASK = 10427,
- PseudoVSSSEG4E32_V_M2 = 10428,
- PseudoVSSSEG4E32_V_M2_MASK = 10429,
- PseudoVSSSEG4E32_V_MF2 = 10430,
- PseudoVSSSEG4E32_V_MF2_MASK = 10431,
- PseudoVSSSEG4E64_V_M1 = 10432,
- PseudoVSSSEG4E64_V_M1_MASK = 10433,
- PseudoVSSSEG4E64_V_M2 = 10434,
- PseudoVSSSEG4E64_V_M2_MASK = 10435,
- PseudoVSSSEG4E8_V_M1 = 10436,
- PseudoVSSSEG4E8_V_M1_MASK = 10437,
- PseudoVSSSEG4E8_V_M2 = 10438,
- PseudoVSSSEG4E8_V_M2_MASK = 10439,
- PseudoVSSSEG4E8_V_MF2 = 10440,
- PseudoVSSSEG4E8_V_MF2_MASK = 10441,
- PseudoVSSSEG4E8_V_MF4 = 10442,
- PseudoVSSSEG4E8_V_MF4_MASK = 10443,
- PseudoVSSSEG4E8_V_MF8 = 10444,
- PseudoVSSSEG4E8_V_MF8_MASK = 10445,
- PseudoVSSSEG5E16_V_M1 = 10446,
- PseudoVSSSEG5E16_V_M1_MASK = 10447,
- PseudoVSSSEG5E16_V_MF2 = 10448,
- PseudoVSSSEG5E16_V_MF2_MASK = 10449,
- PseudoVSSSEG5E16_V_MF4 = 10450,
- PseudoVSSSEG5E16_V_MF4_MASK = 10451,
- PseudoVSSSEG5E32_V_M1 = 10452,
- PseudoVSSSEG5E32_V_M1_MASK = 10453,
- PseudoVSSSEG5E32_V_MF2 = 10454,
- PseudoVSSSEG5E32_V_MF2_MASK = 10455,
- PseudoVSSSEG5E64_V_M1 = 10456,
- PseudoVSSSEG5E64_V_M1_MASK = 10457,
- PseudoVSSSEG5E8_V_M1 = 10458,
- PseudoVSSSEG5E8_V_M1_MASK = 10459,
- PseudoVSSSEG5E8_V_MF2 = 10460,
- PseudoVSSSEG5E8_V_MF2_MASK = 10461,
- PseudoVSSSEG5E8_V_MF4 = 10462,
- PseudoVSSSEG5E8_V_MF4_MASK = 10463,
- PseudoVSSSEG5E8_V_MF8 = 10464,
- PseudoVSSSEG5E8_V_MF8_MASK = 10465,
- PseudoVSSSEG6E16_V_M1 = 10466,
- PseudoVSSSEG6E16_V_M1_MASK = 10467,
- PseudoVSSSEG6E16_V_MF2 = 10468,
- PseudoVSSSEG6E16_V_MF2_MASK = 10469,
- PseudoVSSSEG6E16_V_MF4 = 10470,
- PseudoVSSSEG6E16_V_MF4_MASK = 10471,
- PseudoVSSSEG6E32_V_M1 = 10472,
- PseudoVSSSEG6E32_V_M1_MASK = 10473,
- PseudoVSSSEG6E32_V_MF2 = 10474,
- PseudoVSSSEG6E32_V_MF2_MASK = 10475,
- PseudoVSSSEG6E64_V_M1 = 10476,
- PseudoVSSSEG6E64_V_M1_MASK = 10477,
- PseudoVSSSEG6E8_V_M1 = 10478,
- PseudoVSSSEG6E8_V_M1_MASK = 10479,
- PseudoVSSSEG6E8_V_MF2 = 10480,
- PseudoVSSSEG6E8_V_MF2_MASK = 10481,
- PseudoVSSSEG6E8_V_MF4 = 10482,
- PseudoVSSSEG6E8_V_MF4_MASK = 10483,
- PseudoVSSSEG6E8_V_MF8 = 10484,
- PseudoVSSSEG6E8_V_MF8_MASK = 10485,
- PseudoVSSSEG7E16_V_M1 = 10486,
- PseudoVSSSEG7E16_V_M1_MASK = 10487,
- PseudoVSSSEG7E16_V_MF2 = 10488,
- PseudoVSSSEG7E16_V_MF2_MASK = 10489,
- PseudoVSSSEG7E16_V_MF4 = 10490,
- PseudoVSSSEG7E16_V_MF4_MASK = 10491,
- PseudoVSSSEG7E32_V_M1 = 10492,
- PseudoVSSSEG7E32_V_M1_MASK = 10493,
- PseudoVSSSEG7E32_V_MF2 = 10494,
- PseudoVSSSEG7E32_V_MF2_MASK = 10495,
- PseudoVSSSEG7E64_V_M1 = 10496,
- PseudoVSSSEG7E64_V_M1_MASK = 10497,
- PseudoVSSSEG7E8_V_M1 = 10498,
- PseudoVSSSEG7E8_V_M1_MASK = 10499,
- PseudoVSSSEG7E8_V_MF2 = 10500,
- PseudoVSSSEG7E8_V_MF2_MASK = 10501,
- PseudoVSSSEG7E8_V_MF4 = 10502,
- PseudoVSSSEG7E8_V_MF4_MASK = 10503,
- PseudoVSSSEG7E8_V_MF8 = 10504,
- PseudoVSSSEG7E8_V_MF8_MASK = 10505,
- PseudoVSSSEG8E16_V_M1 = 10506,
- PseudoVSSSEG8E16_V_M1_MASK = 10507,
- PseudoVSSSEG8E16_V_MF2 = 10508,
- PseudoVSSSEG8E16_V_MF2_MASK = 10509,
- PseudoVSSSEG8E16_V_MF4 = 10510,
- PseudoVSSSEG8E16_V_MF4_MASK = 10511,
- PseudoVSSSEG8E32_V_M1 = 10512,
- PseudoVSSSEG8E32_V_M1_MASK = 10513,
- PseudoVSSSEG8E32_V_MF2 = 10514,
- PseudoVSSSEG8E32_V_MF2_MASK = 10515,
- PseudoVSSSEG8E64_V_M1 = 10516,
- PseudoVSSSEG8E64_V_M1_MASK = 10517,
- PseudoVSSSEG8E8_V_M1 = 10518,
- PseudoVSSSEG8E8_V_M1_MASK = 10519,
- PseudoVSSSEG8E8_V_MF2 = 10520,
- PseudoVSSSEG8E8_V_MF2_MASK = 10521,
- PseudoVSSSEG8E8_V_MF4 = 10522,
- PseudoVSSSEG8E8_V_MF4_MASK = 10523,
- PseudoVSSSEG8E8_V_MF8 = 10524,
- PseudoVSSSEG8E8_V_MF8_MASK = 10525,
- PseudoVSSUBU_VV_M1 = 10526,
- PseudoVSSUBU_VV_M1_MASK = 10527,
- PseudoVSSUBU_VV_M2 = 10528,
- PseudoVSSUBU_VV_M2_MASK = 10529,
- PseudoVSSUBU_VV_M4 = 10530,
- PseudoVSSUBU_VV_M4_MASK = 10531,
- PseudoVSSUBU_VV_M8 = 10532,
- PseudoVSSUBU_VV_M8_MASK = 10533,
- PseudoVSSUBU_VV_MF2 = 10534,
- PseudoVSSUBU_VV_MF2_MASK = 10535,
- PseudoVSSUBU_VV_MF4 = 10536,
- PseudoVSSUBU_VV_MF4_MASK = 10537,
- PseudoVSSUBU_VV_MF8 = 10538,
- PseudoVSSUBU_VV_MF8_MASK = 10539,
- PseudoVSSUBU_VX_M1 = 10540,
- PseudoVSSUBU_VX_M1_MASK = 10541,
- PseudoVSSUBU_VX_M2 = 10542,
- PseudoVSSUBU_VX_M2_MASK = 10543,
- PseudoVSSUBU_VX_M4 = 10544,
- PseudoVSSUBU_VX_M4_MASK = 10545,
- PseudoVSSUBU_VX_M8 = 10546,
- PseudoVSSUBU_VX_M8_MASK = 10547,
- PseudoVSSUBU_VX_MF2 = 10548,
- PseudoVSSUBU_VX_MF2_MASK = 10549,
- PseudoVSSUBU_VX_MF4 = 10550,
- PseudoVSSUBU_VX_MF4_MASK = 10551,
- PseudoVSSUBU_VX_MF8 = 10552,
- PseudoVSSUBU_VX_MF8_MASK = 10553,
- PseudoVSSUB_VV_M1 = 10554,
- PseudoVSSUB_VV_M1_MASK = 10555,
- PseudoVSSUB_VV_M2 = 10556,
- PseudoVSSUB_VV_M2_MASK = 10557,
- PseudoVSSUB_VV_M4 = 10558,
- PseudoVSSUB_VV_M4_MASK = 10559,
- PseudoVSSUB_VV_M8 = 10560,
- PseudoVSSUB_VV_M8_MASK = 10561,
- PseudoVSSUB_VV_MF2 = 10562,
- PseudoVSSUB_VV_MF2_MASK = 10563,
- PseudoVSSUB_VV_MF4 = 10564,
- PseudoVSSUB_VV_MF4_MASK = 10565,
- PseudoVSSUB_VV_MF8 = 10566,
- PseudoVSSUB_VV_MF8_MASK = 10567,
- PseudoVSSUB_VX_M1 = 10568,
- PseudoVSSUB_VX_M1_MASK = 10569,
- PseudoVSSUB_VX_M2 = 10570,
- PseudoVSSUB_VX_M2_MASK = 10571,
- PseudoVSSUB_VX_M4 = 10572,
- PseudoVSSUB_VX_M4_MASK = 10573,
- PseudoVSSUB_VX_M8 = 10574,
- PseudoVSSUB_VX_M8_MASK = 10575,
- PseudoVSSUB_VX_MF2 = 10576,
- PseudoVSSUB_VX_MF2_MASK = 10577,
- PseudoVSSUB_VX_MF4 = 10578,
- PseudoVSSUB_VX_MF4_MASK = 10579,
- PseudoVSSUB_VX_MF8 = 10580,
- PseudoVSSUB_VX_MF8_MASK = 10581,
- PseudoVSUB_VV_M1 = 10582,
- PseudoVSUB_VV_M1_MASK = 10583,
- PseudoVSUB_VV_M2 = 10584,
- PseudoVSUB_VV_M2_MASK = 10585,
- PseudoVSUB_VV_M4 = 10586,
- PseudoVSUB_VV_M4_MASK = 10587,
- PseudoVSUB_VV_M8 = 10588,
- PseudoVSUB_VV_M8_MASK = 10589,
- PseudoVSUB_VV_MF2 = 10590,
- PseudoVSUB_VV_MF2_MASK = 10591,
- PseudoVSUB_VV_MF4 = 10592,
- PseudoVSUB_VV_MF4_MASK = 10593,
- PseudoVSUB_VV_MF8 = 10594,
- PseudoVSUB_VV_MF8_MASK = 10595,
- PseudoVSUB_VX_M1 = 10596,
- PseudoVSUB_VX_M1_MASK = 10597,
- PseudoVSUB_VX_M2 = 10598,
- PseudoVSUB_VX_M2_MASK = 10599,
- PseudoVSUB_VX_M4 = 10600,
- PseudoVSUB_VX_M4_MASK = 10601,
- PseudoVSUB_VX_M8 = 10602,
- PseudoVSUB_VX_M8_MASK = 10603,
- PseudoVSUB_VX_MF2 = 10604,
- PseudoVSUB_VX_MF2_MASK = 10605,
- PseudoVSUB_VX_MF4 = 10606,
- PseudoVSUB_VX_MF4_MASK = 10607,
- PseudoVSUB_VX_MF8 = 10608,
- PseudoVSUB_VX_MF8_MASK = 10609,
- PseudoVSUXEI16_V_M1_M1 = 10610,
- PseudoVSUXEI16_V_M1_M1_MASK = 10611,
- PseudoVSUXEI16_V_M1_M2 = 10612,
- PseudoVSUXEI16_V_M1_M2_MASK = 10613,
- PseudoVSUXEI16_V_M1_M4 = 10614,
- PseudoVSUXEI16_V_M1_M4_MASK = 10615,
- PseudoVSUXEI16_V_M1_MF2 = 10616,
- PseudoVSUXEI16_V_M1_MF2_MASK = 10617,
- PseudoVSUXEI16_V_M2_M1 = 10618,
- PseudoVSUXEI16_V_M2_M1_MASK = 10619,
- PseudoVSUXEI16_V_M2_M2 = 10620,
- PseudoVSUXEI16_V_M2_M2_MASK = 10621,
- PseudoVSUXEI16_V_M2_M4 = 10622,
- PseudoVSUXEI16_V_M2_M4_MASK = 10623,
- PseudoVSUXEI16_V_M2_M8 = 10624,
- PseudoVSUXEI16_V_M2_M8_MASK = 10625,
- PseudoVSUXEI16_V_M4_M2 = 10626,
- PseudoVSUXEI16_V_M4_M2_MASK = 10627,
- PseudoVSUXEI16_V_M4_M4 = 10628,
- PseudoVSUXEI16_V_M4_M4_MASK = 10629,
- PseudoVSUXEI16_V_M4_M8 = 10630,
- PseudoVSUXEI16_V_M4_M8_MASK = 10631,
- PseudoVSUXEI16_V_M8_M4 = 10632,
- PseudoVSUXEI16_V_M8_M4_MASK = 10633,
- PseudoVSUXEI16_V_M8_M8 = 10634,
- PseudoVSUXEI16_V_M8_M8_MASK = 10635,
- PseudoVSUXEI16_V_MF2_M1 = 10636,
- PseudoVSUXEI16_V_MF2_M1_MASK = 10637,
- PseudoVSUXEI16_V_MF2_M2 = 10638,
- PseudoVSUXEI16_V_MF2_M2_MASK = 10639,
- PseudoVSUXEI16_V_MF2_MF2 = 10640,
- PseudoVSUXEI16_V_MF2_MF2_MASK = 10641,
- PseudoVSUXEI16_V_MF2_MF4 = 10642,
- PseudoVSUXEI16_V_MF2_MF4_MASK = 10643,
- PseudoVSUXEI16_V_MF4_M1 = 10644,
- PseudoVSUXEI16_V_MF4_M1_MASK = 10645,
- PseudoVSUXEI16_V_MF4_MF2 = 10646,
- PseudoVSUXEI16_V_MF4_MF2_MASK = 10647,
- PseudoVSUXEI16_V_MF4_MF4 = 10648,
- PseudoVSUXEI16_V_MF4_MF4_MASK = 10649,
- PseudoVSUXEI16_V_MF4_MF8 = 10650,
- PseudoVSUXEI16_V_MF4_MF8_MASK = 10651,
- PseudoVSUXEI32_V_M1_M1 = 10652,
- PseudoVSUXEI32_V_M1_M1_MASK = 10653,
- PseudoVSUXEI32_V_M1_M2 = 10654,
- PseudoVSUXEI32_V_M1_M2_MASK = 10655,
- PseudoVSUXEI32_V_M1_MF2 = 10656,
- PseudoVSUXEI32_V_M1_MF2_MASK = 10657,
- PseudoVSUXEI32_V_M1_MF4 = 10658,
- PseudoVSUXEI32_V_M1_MF4_MASK = 10659,
- PseudoVSUXEI32_V_M2_M1 = 10660,
- PseudoVSUXEI32_V_M2_M1_MASK = 10661,
- PseudoVSUXEI32_V_M2_M2 = 10662,
- PseudoVSUXEI32_V_M2_M2_MASK = 10663,
- PseudoVSUXEI32_V_M2_M4 = 10664,
- PseudoVSUXEI32_V_M2_M4_MASK = 10665,
- PseudoVSUXEI32_V_M2_MF2 = 10666,
- PseudoVSUXEI32_V_M2_MF2_MASK = 10667,
- PseudoVSUXEI32_V_M4_M1 = 10668,
- PseudoVSUXEI32_V_M4_M1_MASK = 10669,
- PseudoVSUXEI32_V_M4_M2 = 10670,
- PseudoVSUXEI32_V_M4_M2_MASK = 10671,
- PseudoVSUXEI32_V_M4_M4 = 10672,
- PseudoVSUXEI32_V_M4_M4_MASK = 10673,
- PseudoVSUXEI32_V_M4_M8 = 10674,
- PseudoVSUXEI32_V_M4_M8_MASK = 10675,
- PseudoVSUXEI32_V_M8_M2 = 10676,
- PseudoVSUXEI32_V_M8_M2_MASK = 10677,
- PseudoVSUXEI32_V_M8_M4 = 10678,
- PseudoVSUXEI32_V_M8_M4_MASK = 10679,
- PseudoVSUXEI32_V_M8_M8 = 10680,
- PseudoVSUXEI32_V_M8_M8_MASK = 10681,
- PseudoVSUXEI32_V_MF2_M1 = 10682,
- PseudoVSUXEI32_V_MF2_M1_MASK = 10683,
- PseudoVSUXEI32_V_MF2_MF2 = 10684,
- PseudoVSUXEI32_V_MF2_MF2_MASK = 10685,
- PseudoVSUXEI32_V_MF2_MF4 = 10686,
- PseudoVSUXEI32_V_MF2_MF4_MASK = 10687,
- PseudoVSUXEI32_V_MF2_MF8 = 10688,
- PseudoVSUXEI32_V_MF2_MF8_MASK = 10689,
- PseudoVSUXEI64_V_M1_M1 = 10690,
- PseudoVSUXEI64_V_M1_M1_MASK = 10691,
- PseudoVSUXEI64_V_M1_MF2 = 10692,
- PseudoVSUXEI64_V_M1_MF2_MASK = 10693,
- PseudoVSUXEI64_V_M1_MF4 = 10694,
- PseudoVSUXEI64_V_M1_MF4_MASK = 10695,
- PseudoVSUXEI64_V_M1_MF8 = 10696,
- PseudoVSUXEI64_V_M1_MF8_MASK = 10697,
- PseudoVSUXEI64_V_M2_M1 = 10698,
- PseudoVSUXEI64_V_M2_M1_MASK = 10699,
- PseudoVSUXEI64_V_M2_M2 = 10700,
- PseudoVSUXEI64_V_M2_M2_MASK = 10701,
- PseudoVSUXEI64_V_M2_MF2 = 10702,
- PseudoVSUXEI64_V_M2_MF2_MASK = 10703,
- PseudoVSUXEI64_V_M2_MF4 = 10704,
- PseudoVSUXEI64_V_M2_MF4_MASK = 10705,
- PseudoVSUXEI64_V_M4_M1 = 10706,
- PseudoVSUXEI64_V_M4_M1_MASK = 10707,
- PseudoVSUXEI64_V_M4_M2 = 10708,
- PseudoVSUXEI64_V_M4_M2_MASK = 10709,
- PseudoVSUXEI64_V_M4_M4 = 10710,
- PseudoVSUXEI64_V_M4_M4_MASK = 10711,
- PseudoVSUXEI64_V_M4_MF2 = 10712,
- PseudoVSUXEI64_V_M4_MF2_MASK = 10713,
- PseudoVSUXEI64_V_M8_M1 = 10714,
- PseudoVSUXEI64_V_M8_M1_MASK = 10715,
- PseudoVSUXEI64_V_M8_M2 = 10716,
- PseudoVSUXEI64_V_M8_M2_MASK = 10717,
- PseudoVSUXEI64_V_M8_M4 = 10718,
- PseudoVSUXEI64_V_M8_M4_MASK = 10719,
- PseudoVSUXEI64_V_M8_M8 = 10720,
- PseudoVSUXEI64_V_M8_M8_MASK = 10721,
- PseudoVSUXEI8_V_M1_M1 = 10722,
- PseudoVSUXEI8_V_M1_M1_MASK = 10723,
- PseudoVSUXEI8_V_M1_M2 = 10724,
- PseudoVSUXEI8_V_M1_M2_MASK = 10725,
- PseudoVSUXEI8_V_M1_M4 = 10726,
- PseudoVSUXEI8_V_M1_M4_MASK = 10727,
- PseudoVSUXEI8_V_M1_M8 = 10728,
- PseudoVSUXEI8_V_M1_M8_MASK = 10729,
- PseudoVSUXEI8_V_M2_M2 = 10730,
- PseudoVSUXEI8_V_M2_M2_MASK = 10731,
- PseudoVSUXEI8_V_M2_M4 = 10732,
- PseudoVSUXEI8_V_M2_M4_MASK = 10733,
- PseudoVSUXEI8_V_M2_M8 = 10734,
- PseudoVSUXEI8_V_M2_M8_MASK = 10735,
- PseudoVSUXEI8_V_M4_M4 = 10736,
- PseudoVSUXEI8_V_M4_M4_MASK = 10737,
- PseudoVSUXEI8_V_M4_M8 = 10738,
- PseudoVSUXEI8_V_M4_M8_MASK = 10739,
- PseudoVSUXEI8_V_M8_M8 = 10740,
- PseudoVSUXEI8_V_M8_M8_MASK = 10741,
- PseudoVSUXEI8_V_MF2_M1 = 10742,
- PseudoVSUXEI8_V_MF2_M1_MASK = 10743,
- PseudoVSUXEI8_V_MF2_M2 = 10744,
- PseudoVSUXEI8_V_MF2_M2_MASK = 10745,
- PseudoVSUXEI8_V_MF2_M4 = 10746,
- PseudoVSUXEI8_V_MF2_M4_MASK = 10747,
- PseudoVSUXEI8_V_MF2_MF2 = 10748,
- PseudoVSUXEI8_V_MF2_MF2_MASK = 10749,
- PseudoVSUXEI8_V_MF4_M1 = 10750,
- PseudoVSUXEI8_V_MF4_M1_MASK = 10751,
- PseudoVSUXEI8_V_MF4_M2 = 10752,
- PseudoVSUXEI8_V_MF4_M2_MASK = 10753,
- PseudoVSUXEI8_V_MF4_MF2 = 10754,
- PseudoVSUXEI8_V_MF4_MF2_MASK = 10755,
- PseudoVSUXEI8_V_MF4_MF4 = 10756,
- PseudoVSUXEI8_V_MF4_MF4_MASK = 10757,
- PseudoVSUXEI8_V_MF8_M1 = 10758,
- PseudoVSUXEI8_V_MF8_M1_MASK = 10759,
- PseudoVSUXEI8_V_MF8_MF2 = 10760,
- PseudoVSUXEI8_V_MF8_MF2_MASK = 10761,
- PseudoVSUXEI8_V_MF8_MF4 = 10762,
- PseudoVSUXEI8_V_MF8_MF4_MASK = 10763,
- PseudoVSUXEI8_V_MF8_MF8 = 10764,
- PseudoVSUXEI8_V_MF8_MF8_MASK = 10765,
- PseudoVSUXSEG2EI16_V_M1_M1 = 10766,
- PseudoVSUXSEG2EI16_V_M1_M1_MASK = 10767,
- PseudoVSUXSEG2EI16_V_M1_M2 = 10768,
- PseudoVSUXSEG2EI16_V_M1_M2_MASK = 10769,
- PseudoVSUXSEG2EI16_V_M1_M4 = 10770,
- PseudoVSUXSEG2EI16_V_M1_M4_MASK = 10771,
- PseudoVSUXSEG2EI16_V_M1_MF2 = 10772,
- PseudoVSUXSEG2EI16_V_M1_MF2_MASK = 10773,
- PseudoVSUXSEG2EI16_V_M2_M1 = 10774,
- PseudoVSUXSEG2EI16_V_M2_M1_MASK = 10775,
- PseudoVSUXSEG2EI16_V_M2_M2 = 10776,
- PseudoVSUXSEG2EI16_V_M2_M2_MASK = 10777,
- PseudoVSUXSEG2EI16_V_M2_M4 = 10778,
- PseudoVSUXSEG2EI16_V_M2_M4_MASK = 10779,
- PseudoVSUXSEG2EI16_V_M4_M2 = 10780,
- PseudoVSUXSEG2EI16_V_M4_M2_MASK = 10781,
- PseudoVSUXSEG2EI16_V_M4_M4 = 10782,
- PseudoVSUXSEG2EI16_V_M4_M4_MASK = 10783,
- PseudoVSUXSEG2EI16_V_M8_M4 = 10784,
- PseudoVSUXSEG2EI16_V_M8_M4_MASK = 10785,
- PseudoVSUXSEG2EI16_V_MF2_M1 = 10786,
- PseudoVSUXSEG2EI16_V_MF2_M1_MASK = 10787,
- PseudoVSUXSEG2EI16_V_MF2_M2 = 10788,
- PseudoVSUXSEG2EI16_V_MF2_M2_MASK = 10789,
- PseudoVSUXSEG2EI16_V_MF2_MF2 = 10790,
- PseudoVSUXSEG2EI16_V_MF2_MF2_MASK = 10791,
- PseudoVSUXSEG2EI16_V_MF2_MF4 = 10792,
- PseudoVSUXSEG2EI16_V_MF2_MF4_MASK = 10793,
- PseudoVSUXSEG2EI16_V_MF4_M1 = 10794,
- PseudoVSUXSEG2EI16_V_MF4_M1_MASK = 10795,
- PseudoVSUXSEG2EI16_V_MF4_MF2 = 10796,
- PseudoVSUXSEG2EI16_V_MF4_MF2_MASK = 10797,
- PseudoVSUXSEG2EI16_V_MF4_MF4 = 10798,
- PseudoVSUXSEG2EI16_V_MF4_MF4_MASK = 10799,
- PseudoVSUXSEG2EI16_V_MF4_MF8 = 10800,
- PseudoVSUXSEG2EI16_V_MF4_MF8_MASK = 10801,
- PseudoVSUXSEG2EI32_V_M1_M1 = 10802,
- PseudoVSUXSEG2EI32_V_M1_M1_MASK = 10803,
- PseudoVSUXSEG2EI32_V_M1_M2 = 10804,
- PseudoVSUXSEG2EI32_V_M1_M2_MASK = 10805,
- PseudoVSUXSEG2EI32_V_M1_MF2 = 10806,
- PseudoVSUXSEG2EI32_V_M1_MF2_MASK = 10807,
- PseudoVSUXSEG2EI32_V_M1_MF4 = 10808,
- PseudoVSUXSEG2EI32_V_M1_MF4_MASK = 10809,
- PseudoVSUXSEG2EI32_V_M2_M1 = 10810,
- PseudoVSUXSEG2EI32_V_M2_M1_MASK = 10811,
- PseudoVSUXSEG2EI32_V_M2_M2 = 10812,
- PseudoVSUXSEG2EI32_V_M2_M2_MASK = 10813,
- PseudoVSUXSEG2EI32_V_M2_M4 = 10814,
- PseudoVSUXSEG2EI32_V_M2_M4_MASK = 10815,
- PseudoVSUXSEG2EI32_V_M2_MF2 = 10816,
- PseudoVSUXSEG2EI32_V_M2_MF2_MASK = 10817,
- PseudoVSUXSEG2EI32_V_M4_M1 = 10818,
- PseudoVSUXSEG2EI32_V_M4_M1_MASK = 10819,
- PseudoVSUXSEG2EI32_V_M4_M2 = 10820,
- PseudoVSUXSEG2EI32_V_M4_M2_MASK = 10821,
- PseudoVSUXSEG2EI32_V_M4_M4 = 10822,
- PseudoVSUXSEG2EI32_V_M4_M4_MASK = 10823,
- PseudoVSUXSEG2EI32_V_M8_M2 = 10824,
- PseudoVSUXSEG2EI32_V_M8_M2_MASK = 10825,
- PseudoVSUXSEG2EI32_V_M8_M4 = 10826,
- PseudoVSUXSEG2EI32_V_M8_M4_MASK = 10827,
- PseudoVSUXSEG2EI32_V_MF2_M1 = 10828,
- PseudoVSUXSEG2EI32_V_MF2_M1_MASK = 10829,
- PseudoVSUXSEG2EI32_V_MF2_MF2 = 10830,
- PseudoVSUXSEG2EI32_V_MF2_MF2_MASK = 10831,
- PseudoVSUXSEG2EI32_V_MF2_MF4 = 10832,
- PseudoVSUXSEG2EI32_V_MF2_MF4_MASK = 10833,
- PseudoVSUXSEG2EI32_V_MF2_MF8 = 10834,
- PseudoVSUXSEG2EI32_V_MF2_MF8_MASK = 10835,
- PseudoVSUXSEG2EI64_V_M1_M1 = 10836,
- PseudoVSUXSEG2EI64_V_M1_M1_MASK = 10837,
- PseudoVSUXSEG2EI64_V_M1_MF2 = 10838,
- PseudoVSUXSEG2EI64_V_M1_MF2_MASK = 10839,
- PseudoVSUXSEG2EI64_V_M1_MF4 = 10840,
- PseudoVSUXSEG2EI64_V_M1_MF4_MASK = 10841,
- PseudoVSUXSEG2EI64_V_M1_MF8 = 10842,
- PseudoVSUXSEG2EI64_V_M1_MF8_MASK = 10843,
- PseudoVSUXSEG2EI64_V_M2_M1 = 10844,
- PseudoVSUXSEG2EI64_V_M2_M1_MASK = 10845,
- PseudoVSUXSEG2EI64_V_M2_M2 = 10846,
- PseudoVSUXSEG2EI64_V_M2_M2_MASK = 10847,
- PseudoVSUXSEG2EI64_V_M2_MF2 = 10848,
- PseudoVSUXSEG2EI64_V_M2_MF2_MASK = 10849,
- PseudoVSUXSEG2EI64_V_M2_MF4 = 10850,
- PseudoVSUXSEG2EI64_V_M2_MF4_MASK = 10851,
- PseudoVSUXSEG2EI64_V_M4_M1 = 10852,
- PseudoVSUXSEG2EI64_V_M4_M1_MASK = 10853,
- PseudoVSUXSEG2EI64_V_M4_M2 = 10854,
- PseudoVSUXSEG2EI64_V_M4_M2_MASK = 10855,
- PseudoVSUXSEG2EI64_V_M4_M4 = 10856,
- PseudoVSUXSEG2EI64_V_M4_M4_MASK = 10857,
- PseudoVSUXSEG2EI64_V_M4_MF2 = 10858,
- PseudoVSUXSEG2EI64_V_M4_MF2_MASK = 10859,
- PseudoVSUXSEG2EI64_V_M8_M1 = 10860,
- PseudoVSUXSEG2EI64_V_M8_M1_MASK = 10861,
- PseudoVSUXSEG2EI64_V_M8_M2 = 10862,
- PseudoVSUXSEG2EI64_V_M8_M2_MASK = 10863,
- PseudoVSUXSEG2EI64_V_M8_M4 = 10864,
- PseudoVSUXSEG2EI64_V_M8_M4_MASK = 10865,
- PseudoVSUXSEG2EI8_V_M1_M1 = 10866,
- PseudoVSUXSEG2EI8_V_M1_M1_MASK = 10867,
- PseudoVSUXSEG2EI8_V_M1_M2 = 10868,
- PseudoVSUXSEG2EI8_V_M1_M2_MASK = 10869,
- PseudoVSUXSEG2EI8_V_M1_M4 = 10870,
- PseudoVSUXSEG2EI8_V_M1_M4_MASK = 10871,
- PseudoVSUXSEG2EI8_V_M2_M2 = 10872,
- PseudoVSUXSEG2EI8_V_M2_M2_MASK = 10873,
- PseudoVSUXSEG2EI8_V_M2_M4 = 10874,
- PseudoVSUXSEG2EI8_V_M2_M4_MASK = 10875,
- PseudoVSUXSEG2EI8_V_M4_M4 = 10876,
- PseudoVSUXSEG2EI8_V_M4_M4_MASK = 10877,
- PseudoVSUXSEG2EI8_V_MF2_M1 = 10878,
- PseudoVSUXSEG2EI8_V_MF2_M1_MASK = 10879,
- PseudoVSUXSEG2EI8_V_MF2_M2 = 10880,
- PseudoVSUXSEG2EI8_V_MF2_M2_MASK = 10881,
- PseudoVSUXSEG2EI8_V_MF2_M4 = 10882,
- PseudoVSUXSEG2EI8_V_MF2_M4_MASK = 10883,
- PseudoVSUXSEG2EI8_V_MF2_MF2 = 10884,
- PseudoVSUXSEG2EI8_V_MF2_MF2_MASK = 10885,
- PseudoVSUXSEG2EI8_V_MF4_M1 = 10886,
- PseudoVSUXSEG2EI8_V_MF4_M1_MASK = 10887,
- PseudoVSUXSEG2EI8_V_MF4_M2 = 10888,
- PseudoVSUXSEG2EI8_V_MF4_M2_MASK = 10889,
- PseudoVSUXSEG2EI8_V_MF4_MF2 = 10890,
- PseudoVSUXSEG2EI8_V_MF4_MF2_MASK = 10891,
- PseudoVSUXSEG2EI8_V_MF4_MF4 = 10892,
- PseudoVSUXSEG2EI8_V_MF4_MF4_MASK = 10893,
- PseudoVSUXSEG2EI8_V_MF8_M1 = 10894,
- PseudoVSUXSEG2EI8_V_MF8_M1_MASK = 10895,
- PseudoVSUXSEG2EI8_V_MF8_MF2 = 10896,
- PseudoVSUXSEG2EI8_V_MF8_MF2_MASK = 10897,
- PseudoVSUXSEG2EI8_V_MF8_MF4 = 10898,
- PseudoVSUXSEG2EI8_V_MF8_MF4_MASK = 10899,
- PseudoVSUXSEG2EI8_V_MF8_MF8 = 10900,
- PseudoVSUXSEG2EI8_V_MF8_MF8_MASK = 10901,
- PseudoVSUXSEG3EI16_V_M1_M1 = 10902,
- PseudoVSUXSEG3EI16_V_M1_M1_MASK = 10903,
- PseudoVSUXSEG3EI16_V_M1_M2 = 10904,
- PseudoVSUXSEG3EI16_V_M1_M2_MASK = 10905,
- PseudoVSUXSEG3EI16_V_M1_MF2 = 10906,
- PseudoVSUXSEG3EI16_V_M1_MF2_MASK = 10907,
- PseudoVSUXSEG3EI16_V_M2_M1 = 10908,
- PseudoVSUXSEG3EI16_V_M2_M1_MASK = 10909,
- PseudoVSUXSEG3EI16_V_M2_M2 = 10910,
- PseudoVSUXSEG3EI16_V_M2_M2_MASK = 10911,
- PseudoVSUXSEG3EI16_V_M4_M2 = 10912,
- PseudoVSUXSEG3EI16_V_M4_M2_MASK = 10913,
- PseudoVSUXSEG3EI16_V_MF2_M1 = 10914,
- PseudoVSUXSEG3EI16_V_MF2_M1_MASK = 10915,
- PseudoVSUXSEG3EI16_V_MF2_M2 = 10916,
- PseudoVSUXSEG3EI16_V_MF2_M2_MASK = 10917,
- PseudoVSUXSEG3EI16_V_MF2_MF2 = 10918,
- PseudoVSUXSEG3EI16_V_MF2_MF2_MASK = 10919,
- PseudoVSUXSEG3EI16_V_MF2_MF4 = 10920,
- PseudoVSUXSEG3EI16_V_MF2_MF4_MASK = 10921,
- PseudoVSUXSEG3EI16_V_MF4_M1 = 10922,
- PseudoVSUXSEG3EI16_V_MF4_M1_MASK = 10923,
- PseudoVSUXSEG3EI16_V_MF4_MF2 = 10924,
- PseudoVSUXSEG3EI16_V_MF4_MF2_MASK = 10925,
- PseudoVSUXSEG3EI16_V_MF4_MF4 = 10926,
- PseudoVSUXSEG3EI16_V_MF4_MF4_MASK = 10927,
- PseudoVSUXSEG3EI16_V_MF4_MF8 = 10928,
- PseudoVSUXSEG3EI16_V_MF4_MF8_MASK = 10929,
- PseudoVSUXSEG3EI32_V_M1_M1 = 10930,
- PseudoVSUXSEG3EI32_V_M1_M1_MASK = 10931,
- PseudoVSUXSEG3EI32_V_M1_M2 = 10932,
- PseudoVSUXSEG3EI32_V_M1_M2_MASK = 10933,
- PseudoVSUXSEG3EI32_V_M1_MF2 = 10934,
- PseudoVSUXSEG3EI32_V_M1_MF2_MASK = 10935,
- PseudoVSUXSEG3EI32_V_M1_MF4 = 10936,
- PseudoVSUXSEG3EI32_V_M1_MF4_MASK = 10937,
- PseudoVSUXSEG3EI32_V_M2_M1 = 10938,
- PseudoVSUXSEG3EI32_V_M2_M1_MASK = 10939,
- PseudoVSUXSEG3EI32_V_M2_M2 = 10940,
- PseudoVSUXSEG3EI32_V_M2_M2_MASK = 10941,
- PseudoVSUXSEG3EI32_V_M2_MF2 = 10942,
- PseudoVSUXSEG3EI32_V_M2_MF2_MASK = 10943,
- PseudoVSUXSEG3EI32_V_M4_M1 = 10944,
- PseudoVSUXSEG3EI32_V_M4_M1_MASK = 10945,
- PseudoVSUXSEG3EI32_V_M4_M2 = 10946,
- PseudoVSUXSEG3EI32_V_M4_M2_MASK = 10947,
- PseudoVSUXSEG3EI32_V_M8_M2 = 10948,
- PseudoVSUXSEG3EI32_V_M8_M2_MASK = 10949,
- PseudoVSUXSEG3EI32_V_MF2_M1 = 10950,
- PseudoVSUXSEG3EI32_V_MF2_M1_MASK = 10951,
- PseudoVSUXSEG3EI32_V_MF2_MF2 = 10952,
- PseudoVSUXSEG3EI32_V_MF2_MF2_MASK = 10953,
- PseudoVSUXSEG3EI32_V_MF2_MF4 = 10954,
- PseudoVSUXSEG3EI32_V_MF2_MF4_MASK = 10955,
- PseudoVSUXSEG3EI32_V_MF2_MF8 = 10956,
- PseudoVSUXSEG3EI32_V_MF2_MF8_MASK = 10957,
- PseudoVSUXSEG3EI64_V_M1_M1 = 10958,
- PseudoVSUXSEG3EI64_V_M1_M1_MASK = 10959,
- PseudoVSUXSEG3EI64_V_M1_MF2 = 10960,
- PseudoVSUXSEG3EI64_V_M1_MF2_MASK = 10961,
- PseudoVSUXSEG3EI64_V_M1_MF4 = 10962,
- PseudoVSUXSEG3EI64_V_M1_MF4_MASK = 10963,
- PseudoVSUXSEG3EI64_V_M1_MF8 = 10964,
- PseudoVSUXSEG3EI64_V_M1_MF8_MASK = 10965,
- PseudoVSUXSEG3EI64_V_M2_M1 = 10966,
- PseudoVSUXSEG3EI64_V_M2_M1_MASK = 10967,
- PseudoVSUXSEG3EI64_V_M2_M2 = 10968,
- PseudoVSUXSEG3EI64_V_M2_M2_MASK = 10969,
- PseudoVSUXSEG3EI64_V_M2_MF2 = 10970,
- PseudoVSUXSEG3EI64_V_M2_MF2_MASK = 10971,
- PseudoVSUXSEG3EI64_V_M2_MF4 = 10972,
- PseudoVSUXSEG3EI64_V_M2_MF4_MASK = 10973,
- PseudoVSUXSEG3EI64_V_M4_M1 = 10974,
- PseudoVSUXSEG3EI64_V_M4_M1_MASK = 10975,
- PseudoVSUXSEG3EI64_V_M4_M2 = 10976,
- PseudoVSUXSEG3EI64_V_M4_M2_MASK = 10977,
- PseudoVSUXSEG3EI64_V_M4_MF2 = 10978,
- PseudoVSUXSEG3EI64_V_M4_MF2_MASK = 10979,
- PseudoVSUXSEG3EI64_V_M8_M1 = 10980,
- PseudoVSUXSEG3EI64_V_M8_M1_MASK = 10981,
- PseudoVSUXSEG3EI64_V_M8_M2 = 10982,
- PseudoVSUXSEG3EI64_V_M8_M2_MASK = 10983,
- PseudoVSUXSEG3EI8_V_M1_M1 = 10984,
- PseudoVSUXSEG3EI8_V_M1_M1_MASK = 10985,
- PseudoVSUXSEG3EI8_V_M1_M2 = 10986,
- PseudoVSUXSEG3EI8_V_M1_M2_MASK = 10987,
- PseudoVSUXSEG3EI8_V_M2_M2 = 10988,
- PseudoVSUXSEG3EI8_V_M2_M2_MASK = 10989,
- PseudoVSUXSEG3EI8_V_MF2_M1 = 10990,
- PseudoVSUXSEG3EI8_V_MF2_M1_MASK = 10991,
- PseudoVSUXSEG3EI8_V_MF2_M2 = 10992,
- PseudoVSUXSEG3EI8_V_MF2_M2_MASK = 10993,
- PseudoVSUXSEG3EI8_V_MF2_MF2 = 10994,
- PseudoVSUXSEG3EI8_V_MF2_MF2_MASK = 10995,
- PseudoVSUXSEG3EI8_V_MF4_M1 = 10996,
- PseudoVSUXSEG3EI8_V_MF4_M1_MASK = 10997,
- PseudoVSUXSEG3EI8_V_MF4_M2 = 10998,
- PseudoVSUXSEG3EI8_V_MF4_M2_MASK = 10999,
- PseudoVSUXSEG3EI8_V_MF4_MF2 = 11000,
- PseudoVSUXSEG3EI8_V_MF4_MF2_MASK = 11001,
- PseudoVSUXSEG3EI8_V_MF4_MF4 = 11002,
- PseudoVSUXSEG3EI8_V_MF4_MF4_MASK = 11003,
- PseudoVSUXSEG3EI8_V_MF8_M1 = 11004,
- PseudoVSUXSEG3EI8_V_MF8_M1_MASK = 11005,
- PseudoVSUXSEG3EI8_V_MF8_MF2 = 11006,
- PseudoVSUXSEG3EI8_V_MF8_MF2_MASK = 11007,
- PseudoVSUXSEG3EI8_V_MF8_MF4 = 11008,
- PseudoVSUXSEG3EI8_V_MF8_MF4_MASK = 11009,
- PseudoVSUXSEG3EI8_V_MF8_MF8 = 11010,
- PseudoVSUXSEG3EI8_V_MF8_MF8_MASK = 11011,
- PseudoVSUXSEG4EI16_V_M1_M1 = 11012,
- PseudoVSUXSEG4EI16_V_M1_M1_MASK = 11013,
- PseudoVSUXSEG4EI16_V_M1_M2 = 11014,
- PseudoVSUXSEG4EI16_V_M1_M2_MASK = 11015,
- PseudoVSUXSEG4EI16_V_M1_MF2 = 11016,
- PseudoVSUXSEG4EI16_V_M1_MF2_MASK = 11017,
- PseudoVSUXSEG4EI16_V_M2_M1 = 11018,
- PseudoVSUXSEG4EI16_V_M2_M1_MASK = 11019,
- PseudoVSUXSEG4EI16_V_M2_M2 = 11020,
- PseudoVSUXSEG4EI16_V_M2_M2_MASK = 11021,
- PseudoVSUXSEG4EI16_V_M4_M2 = 11022,
- PseudoVSUXSEG4EI16_V_M4_M2_MASK = 11023,
- PseudoVSUXSEG4EI16_V_MF2_M1 = 11024,
- PseudoVSUXSEG4EI16_V_MF2_M1_MASK = 11025,
- PseudoVSUXSEG4EI16_V_MF2_M2 = 11026,
- PseudoVSUXSEG4EI16_V_MF2_M2_MASK = 11027,
- PseudoVSUXSEG4EI16_V_MF2_MF2 = 11028,
- PseudoVSUXSEG4EI16_V_MF2_MF2_MASK = 11029,
- PseudoVSUXSEG4EI16_V_MF2_MF4 = 11030,
- PseudoVSUXSEG4EI16_V_MF2_MF4_MASK = 11031,
- PseudoVSUXSEG4EI16_V_MF4_M1 = 11032,
- PseudoVSUXSEG4EI16_V_MF4_M1_MASK = 11033,
- PseudoVSUXSEG4EI16_V_MF4_MF2 = 11034,
- PseudoVSUXSEG4EI16_V_MF4_MF2_MASK = 11035,
- PseudoVSUXSEG4EI16_V_MF4_MF4 = 11036,
- PseudoVSUXSEG4EI16_V_MF4_MF4_MASK = 11037,
- PseudoVSUXSEG4EI16_V_MF4_MF8 = 11038,
- PseudoVSUXSEG4EI16_V_MF4_MF8_MASK = 11039,
- PseudoVSUXSEG4EI32_V_M1_M1 = 11040,
- PseudoVSUXSEG4EI32_V_M1_M1_MASK = 11041,
- PseudoVSUXSEG4EI32_V_M1_M2 = 11042,
- PseudoVSUXSEG4EI32_V_M1_M2_MASK = 11043,
- PseudoVSUXSEG4EI32_V_M1_MF2 = 11044,
- PseudoVSUXSEG4EI32_V_M1_MF2_MASK = 11045,
- PseudoVSUXSEG4EI32_V_M1_MF4 = 11046,
- PseudoVSUXSEG4EI32_V_M1_MF4_MASK = 11047,
- PseudoVSUXSEG4EI32_V_M2_M1 = 11048,
- PseudoVSUXSEG4EI32_V_M2_M1_MASK = 11049,
- PseudoVSUXSEG4EI32_V_M2_M2 = 11050,
- PseudoVSUXSEG4EI32_V_M2_M2_MASK = 11051,
- PseudoVSUXSEG4EI32_V_M2_MF2 = 11052,
- PseudoVSUXSEG4EI32_V_M2_MF2_MASK = 11053,
- PseudoVSUXSEG4EI32_V_M4_M1 = 11054,
- PseudoVSUXSEG4EI32_V_M4_M1_MASK = 11055,
- PseudoVSUXSEG4EI32_V_M4_M2 = 11056,
- PseudoVSUXSEG4EI32_V_M4_M2_MASK = 11057,
- PseudoVSUXSEG4EI32_V_M8_M2 = 11058,
- PseudoVSUXSEG4EI32_V_M8_M2_MASK = 11059,
- PseudoVSUXSEG4EI32_V_MF2_M1 = 11060,
- PseudoVSUXSEG4EI32_V_MF2_M1_MASK = 11061,
- PseudoVSUXSEG4EI32_V_MF2_MF2 = 11062,
- PseudoVSUXSEG4EI32_V_MF2_MF2_MASK = 11063,
- PseudoVSUXSEG4EI32_V_MF2_MF4 = 11064,
- PseudoVSUXSEG4EI32_V_MF2_MF4_MASK = 11065,
- PseudoVSUXSEG4EI32_V_MF2_MF8 = 11066,
- PseudoVSUXSEG4EI32_V_MF2_MF8_MASK = 11067,
- PseudoVSUXSEG4EI64_V_M1_M1 = 11068,
- PseudoVSUXSEG4EI64_V_M1_M1_MASK = 11069,
- PseudoVSUXSEG4EI64_V_M1_MF2 = 11070,
- PseudoVSUXSEG4EI64_V_M1_MF2_MASK = 11071,
- PseudoVSUXSEG4EI64_V_M1_MF4 = 11072,
- PseudoVSUXSEG4EI64_V_M1_MF4_MASK = 11073,
- PseudoVSUXSEG4EI64_V_M1_MF8 = 11074,
- PseudoVSUXSEG4EI64_V_M1_MF8_MASK = 11075,
- PseudoVSUXSEG4EI64_V_M2_M1 = 11076,
- PseudoVSUXSEG4EI64_V_M2_M1_MASK = 11077,
- PseudoVSUXSEG4EI64_V_M2_M2 = 11078,
- PseudoVSUXSEG4EI64_V_M2_M2_MASK = 11079,
- PseudoVSUXSEG4EI64_V_M2_MF2 = 11080,
- PseudoVSUXSEG4EI64_V_M2_MF2_MASK = 11081,
- PseudoVSUXSEG4EI64_V_M2_MF4 = 11082,
- PseudoVSUXSEG4EI64_V_M2_MF4_MASK = 11083,
- PseudoVSUXSEG4EI64_V_M4_M1 = 11084,
- PseudoVSUXSEG4EI64_V_M4_M1_MASK = 11085,
- PseudoVSUXSEG4EI64_V_M4_M2 = 11086,
- PseudoVSUXSEG4EI64_V_M4_M2_MASK = 11087,
- PseudoVSUXSEG4EI64_V_M4_MF2 = 11088,
- PseudoVSUXSEG4EI64_V_M4_MF2_MASK = 11089,
- PseudoVSUXSEG4EI64_V_M8_M1 = 11090,
- PseudoVSUXSEG4EI64_V_M8_M1_MASK = 11091,
- PseudoVSUXSEG4EI64_V_M8_M2 = 11092,
- PseudoVSUXSEG4EI64_V_M8_M2_MASK = 11093,
- PseudoVSUXSEG4EI8_V_M1_M1 = 11094,
- PseudoVSUXSEG4EI8_V_M1_M1_MASK = 11095,
- PseudoVSUXSEG4EI8_V_M1_M2 = 11096,
- PseudoVSUXSEG4EI8_V_M1_M2_MASK = 11097,
- PseudoVSUXSEG4EI8_V_M2_M2 = 11098,
- PseudoVSUXSEG4EI8_V_M2_M2_MASK = 11099,
- PseudoVSUXSEG4EI8_V_MF2_M1 = 11100,
- PseudoVSUXSEG4EI8_V_MF2_M1_MASK = 11101,
- PseudoVSUXSEG4EI8_V_MF2_M2 = 11102,
- PseudoVSUXSEG4EI8_V_MF2_M2_MASK = 11103,
- PseudoVSUXSEG4EI8_V_MF2_MF2 = 11104,
- PseudoVSUXSEG4EI8_V_MF2_MF2_MASK = 11105,
- PseudoVSUXSEG4EI8_V_MF4_M1 = 11106,
- PseudoVSUXSEG4EI8_V_MF4_M1_MASK = 11107,
- PseudoVSUXSEG4EI8_V_MF4_M2 = 11108,
- PseudoVSUXSEG4EI8_V_MF4_M2_MASK = 11109,
- PseudoVSUXSEG4EI8_V_MF4_MF2 = 11110,
- PseudoVSUXSEG4EI8_V_MF4_MF2_MASK = 11111,
- PseudoVSUXSEG4EI8_V_MF4_MF4 = 11112,
- PseudoVSUXSEG4EI8_V_MF4_MF4_MASK = 11113,
- PseudoVSUXSEG4EI8_V_MF8_M1 = 11114,
- PseudoVSUXSEG4EI8_V_MF8_M1_MASK = 11115,
- PseudoVSUXSEG4EI8_V_MF8_MF2 = 11116,
- PseudoVSUXSEG4EI8_V_MF8_MF2_MASK = 11117,
- PseudoVSUXSEG4EI8_V_MF8_MF4 = 11118,
- PseudoVSUXSEG4EI8_V_MF8_MF4_MASK = 11119,
- PseudoVSUXSEG4EI8_V_MF8_MF8 = 11120,
- PseudoVSUXSEG4EI8_V_MF8_MF8_MASK = 11121,
- PseudoVSUXSEG5EI16_V_M1_M1 = 11122,
- PseudoVSUXSEG5EI16_V_M1_M1_MASK = 11123,
- PseudoVSUXSEG5EI16_V_M1_MF2 = 11124,
- PseudoVSUXSEG5EI16_V_M1_MF2_MASK = 11125,
- PseudoVSUXSEG5EI16_V_M2_M1 = 11126,
- PseudoVSUXSEG5EI16_V_M2_M1_MASK = 11127,
- PseudoVSUXSEG5EI16_V_MF2_M1 = 11128,
- PseudoVSUXSEG5EI16_V_MF2_M1_MASK = 11129,
- PseudoVSUXSEG5EI16_V_MF2_MF2 = 11130,
- PseudoVSUXSEG5EI16_V_MF2_MF2_MASK = 11131,
- PseudoVSUXSEG5EI16_V_MF2_MF4 = 11132,
- PseudoVSUXSEG5EI16_V_MF2_MF4_MASK = 11133,
- PseudoVSUXSEG5EI16_V_MF4_M1 = 11134,
- PseudoVSUXSEG5EI16_V_MF4_M1_MASK = 11135,
- PseudoVSUXSEG5EI16_V_MF4_MF2 = 11136,
- PseudoVSUXSEG5EI16_V_MF4_MF2_MASK = 11137,
- PseudoVSUXSEG5EI16_V_MF4_MF4 = 11138,
- PseudoVSUXSEG5EI16_V_MF4_MF4_MASK = 11139,
- PseudoVSUXSEG5EI16_V_MF4_MF8 = 11140,
- PseudoVSUXSEG5EI16_V_MF4_MF8_MASK = 11141,
- PseudoVSUXSEG5EI32_V_M1_M1 = 11142,
- PseudoVSUXSEG5EI32_V_M1_M1_MASK = 11143,
- PseudoVSUXSEG5EI32_V_M1_MF2 = 11144,
- PseudoVSUXSEG5EI32_V_M1_MF2_MASK = 11145,
- PseudoVSUXSEG5EI32_V_M1_MF4 = 11146,
- PseudoVSUXSEG5EI32_V_M1_MF4_MASK = 11147,
- PseudoVSUXSEG5EI32_V_M2_M1 = 11148,
- PseudoVSUXSEG5EI32_V_M2_M1_MASK = 11149,
- PseudoVSUXSEG5EI32_V_M2_MF2 = 11150,
- PseudoVSUXSEG5EI32_V_M2_MF2_MASK = 11151,
- PseudoVSUXSEG5EI32_V_M4_M1 = 11152,
- PseudoVSUXSEG5EI32_V_M4_M1_MASK = 11153,
- PseudoVSUXSEG5EI32_V_MF2_M1 = 11154,
- PseudoVSUXSEG5EI32_V_MF2_M1_MASK = 11155,
- PseudoVSUXSEG5EI32_V_MF2_MF2 = 11156,
- PseudoVSUXSEG5EI32_V_MF2_MF2_MASK = 11157,
- PseudoVSUXSEG5EI32_V_MF2_MF4 = 11158,
- PseudoVSUXSEG5EI32_V_MF2_MF4_MASK = 11159,
- PseudoVSUXSEG5EI32_V_MF2_MF8 = 11160,
- PseudoVSUXSEG5EI32_V_MF2_MF8_MASK = 11161,
- PseudoVSUXSEG5EI64_V_M1_M1 = 11162,
- PseudoVSUXSEG5EI64_V_M1_M1_MASK = 11163,
- PseudoVSUXSEG5EI64_V_M1_MF2 = 11164,
- PseudoVSUXSEG5EI64_V_M1_MF2_MASK = 11165,
- PseudoVSUXSEG5EI64_V_M1_MF4 = 11166,
- PseudoVSUXSEG5EI64_V_M1_MF4_MASK = 11167,
- PseudoVSUXSEG5EI64_V_M1_MF8 = 11168,
- PseudoVSUXSEG5EI64_V_M1_MF8_MASK = 11169,
- PseudoVSUXSEG5EI64_V_M2_M1 = 11170,
- PseudoVSUXSEG5EI64_V_M2_M1_MASK = 11171,
- PseudoVSUXSEG5EI64_V_M2_MF2 = 11172,
- PseudoVSUXSEG5EI64_V_M2_MF2_MASK = 11173,
- PseudoVSUXSEG5EI64_V_M2_MF4 = 11174,
- PseudoVSUXSEG5EI64_V_M2_MF4_MASK = 11175,
- PseudoVSUXSEG5EI64_V_M4_M1 = 11176,
- PseudoVSUXSEG5EI64_V_M4_M1_MASK = 11177,
- PseudoVSUXSEG5EI64_V_M4_MF2 = 11178,
- PseudoVSUXSEG5EI64_V_M4_MF2_MASK = 11179,
- PseudoVSUXSEG5EI64_V_M8_M1 = 11180,
- PseudoVSUXSEG5EI64_V_M8_M1_MASK = 11181,
- PseudoVSUXSEG5EI8_V_M1_M1 = 11182,
- PseudoVSUXSEG5EI8_V_M1_M1_MASK = 11183,
- PseudoVSUXSEG5EI8_V_MF2_M1 = 11184,
- PseudoVSUXSEG5EI8_V_MF2_M1_MASK = 11185,
- PseudoVSUXSEG5EI8_V_MF2_MF2 = 11186,
- PseudoVSUXSEG5EI8_V_MF2_MF2_MASK = 11187,
- PseudoVSUXSEG5EI8_V_MF4_M1 = 11188,
- PseudoVSUXSEG5EI8_V_MF4_M1_MASK = 11189,
- PseudoVSUXSEG5EI8_V_MF4_MF2 = 11190,
- PseudoVSUXSEG5EI8_V_MF4_MF2_MASK = 11191,
- PseudoVSUXSEG5EI8_V_MF4_MF4 = 11192,
- PseudoVSUXSEG5EI8_V_MF4_MF4_MASK = 11193,
- PseudoVSUXSEG5EI8_V_MF8_M1 = 11194,
- PseudoVSUXSEG5EI8_V_MF8_M1_MASK = 11195,
- PseudoVSUXSEG5EI8_V_MF8_MF2 = 11196,
- PseudoVSUXSEG5EI8_V_MF8_MF2_MASK = 11197,
- PseudoVSUXSEG5EI8_V_MF8_MF4 = 11198,
- PseudoVSUXSEG5EI8_V_MF8_MF4_MASK = 11199,
- PseudoVSUXSEG5EI8_V_MF8_MF8 = 11200,
- PseudoVSUXSEG5EI8_V_MF8_MF8_MASK = 11201,
- PseudoVSUXSEG6EI16_V_M1_M1 = 11202,
- PseudoVSUXSEG6EI16_V_M1_M1_MASK = 11203,
- PseudoVSUXSEG6EI16_V_M1_MF2 = 11204,
- PseudoVSUXSEG6EI16_V_M1_MF2_MASK = 11205,
- PseudoVSUXSEG6EI16_V_M2_M1 = 11206,
- PseudoVSUXSEG6EI16_V_M2_M1_MASK = 11207,
- PseudoVSUXSEG6EI16_V_MF2_M1 = 11208,
- PseudoVSUXSEG6EI16_V_MF2_M1_MASK = 11209,
- PseudoVSUXSEG6EI16_V_MF2_MF2 = 11210,
- PseudoVSUXSEG6EI16_V_MF2_MF2_MASK = 11211,
- PseudoVSUXSEG6EI16_V_MF2_MF4 = 11212,
- PseudoVSUXSEG6EI16_V_MF2_MF4_MASK = 11213,
- PseudoVSUXSEG6EI16_V_MF4_M1 = 11214,
- PseudoVSUXSEG6EI16_V_MF4_M1_MASK = 11215,
- PseudoVSUXSEG6EI16_V_MF4_MF2 = 11216,
- PseudoVSUXSEG6EI16_V_MF4_MF2_MASK = 11217,
- PseudoVSUXSEG6EI16_V_MF4_MF4 = 11218,
- PseudoVSUXSEG6EI16_V_MF4_MF4_MASK = 11219,
- PseudoVSUXSEG6EI16_V_MF4_MF8 = 11220,
- PseudoVSUXSEG6EI16_V_MF4_MF8_MASK = 11221,
- PseudoVSUXSEG6EI32_V_M1_M1 = 11222,
- PseudoVSUXSEG6EI32_V_M1_M1_MASK = 11223,
- PseudoVSUXSEG6EI32_V_M1_MF2 = 11224,
- PseudoVSUXSEG6EI32_V_M1_MF2_MASK = 11225,
- PseudoVSUXSEG6EI32_V_M1_MF4 = 11226,
- PseudoVSUXSEG6EI32_V_M1_MF4_MASK = 11227,
- PseudoVSUXSEG6EI32_V_M2_M1 = 11228,
- PseudoVSUXSEG6EI32_V_M2_M1_MASK = 11229,
- PseudoVSUXSEG6EI32_V_M2_MF2 = 11230,
- PseudoVSUXSEG6EI32_V_M2_MF2_MASK = 11231,
- PseudoVSUXSEG6EI32_V_M4_M1 = 11232,
- PseudoVSUXSEG6EI32_V_M4_M1_MASK = 11233,
- PseudoVSUXSEG6EI32_V_MF2_M1 = 11234,
- PseudoVSUXSEG6EI32_V_MF2_M1_MASK = 11235,
- PseudoVSUXSEG6EI32_V_MF2_MF2 = 11236,
- PseudoVSUXSEG6EI32_V_MF2_MF2_MASK = 11237,
- PseudoVSUXSEG6EI32_V_MF2_MF4 = 11238,
- PseudoVSUXSEG6EI32_V_MF2_MF4_MASK = 11239,
- PseudoVSUXSEG6EI32_V_MF2_MF8 = 11240,
- PseudoVSUXSEG6EI32_V_MF2_MF8_MASK = 11241,
- PseudoVSUXSEG6EI64_V_M1_M1 = 11242,
- PseudoVSUXSEG6EI64_V_M1_M1_MASK = 11243,
- PseudoVSUXSEG6EI64_V_M1_MF2 = 11244,
- PseudoVSUXSEG6EI64_V_M1_MF2_MASK = 11245,
- PseudoVSUXSEG6EI64_V_M1_MF4 = 11246,
- PseudoVSUXSEG6EI64_V_M1_MF4_MASK = 11247,
- PseudoVSUXSEG6EI64_V_M1_MF8 = 11248,
- PseudoVSUXSEG6EI64_V_M1_MF8_MASK = 11249,
- PseudoVSUXSEG6EI64_V_M2_M1 = 11250,
- PseudoVSUXSEG6EI64_V_M2_M1_MASK = 11251,
- PseudoVSUXSEG6EI64_V_M2_MF2 = 11252,
- PseudoVSUXSEG6EI64_V_M2_MF2_MASK = 11253,
- PseudoVSUXSEG6EI64_V_M2_MF4 = 11254,
- PseudoVSUXSEG6EI64_V_M2_MF4_MASK = 11255,
- PseudoVSUXSEG6EI64_V_M4_M1 = 11256,
- PseudoVSUXSEG6EI64_V_M4_M1_MASK = 11257,
- PseudoVSUXSEG6EI64_V_M4_MF2 = 11258,
- PseudoVSUXSEG6EI64_V_M4_MF2_MASK = 11259,
- PseudoVSUXSEG6EI64_V_M8_M1 = 11260,
- PseudoVSUXSEG6EI64_V_M8_M1_MASK = 11261,
- PseudoVSUXSEG6EI8_V_M1_M1 = 11262,
- PseudoVSUXSEG6EI8_V_M1_M1_MASK = 11263,
- PseudoVSUXSEG6EI8_V_MF2_M1 = 11264,
- PseudoVSUXSEG6EI8_V_MF2_M1_MASK = 11265,
- PseudoVSUXSEG6EI8_V_MF2_MF2 = 11266,
- PseudoVSUXSEG6EI8_V_MF2_MF2_MASK = 11267,
- PseudoVSUXSEG6EI8_V_MF4_M1 = 11268,
- PseudoVSUXSEG6EI8_V_MF4_M1_MASK = 11269,
- PseudoVSUXSEG6EI8_V_MF4_MF2 = 11270,
- PseudoVSUXSEG6EI8_V_MF4_MF2_MASK = 11271,
- PseudoVSUXSEG6EI8_V_MF4_MF4 = 11272,
- PseudoVSUXSEG6EI8_V_MF4_MF4_MASK = 11273,
- PseudoVSUXSEG6EI8_V_MF8_M1 = 11274,
- PseudoVSUXSEG6EI8_V_MF8_M1_MASK = 11275,
- PseudoVSUXSEG6EI8_V_MF8_MF2 = 11276,
- PseudoVSUXSEG6EI8_V_MF8_MF2_MASK = 11277,
- PseudoVSUXSEG6EI8_V_MF8_MF4 = 11278,
- PseudoVSUXSEG6EI8_V_MF8_MF4_MASK = 11279,
- PseudoVSUXSEG6EI8_V_MF8_MF8 = 11280,
- PseudoVSUXSEG6EI8_V_MF8_MF8_MASK = 11281,
- PseudoVSUXSEG7EI16_V_M1_M1 = 11282,
- PseudoVSUXSEG7EI16_V_M1_M1_MASK = 11283,
- PseudoVSUXSEG7EI16_V_M1_MF2 = 11284,
- PseudoVSUXSEG7EI16_V_M1_MF2_MASK = 11285,
- PseudoVSUXSEG7EI16_V_M2_M1 = 11286,
- PseudoVSUXSEG7EI16_V_M2_M1_MASK = 11287,
- PseudoVSUXSEG7EI16_V_MF2_M1 = 11288,
- PseudoVSUXSEG7EI16_V_MF2_M1_MASK = 11289,
- PseudoVSUXSEG7EI16_V_MF2_MF2 = 11290,
- PseudoVSUXSEG7EI16_V_MF2_MF2_MASK = 11291,
- PseudoVSUXSEG7EI16_V_MF2_MF4 = 11292,
- PseudoVSUXSEG7EI16_V_MF2_MF4_MASK = 11293,
- PseudoVSUXSEG7EI16_V_MF4_M1 = 11294,
- PseudoVSUXSEG7EI16_V_MF4_M1_MASK = 11295,
- PseudoVSUXSEG7EI16_V_MF4_MF2 = 11296,
- PseudoVSUXSEG7EI16_V_MF4_MF2_MASK = 11297,
- PseudoVSUXSEG7EI16_V_MF4_MF4 = 11298,
- PseudoVSUXSEG7EI16_V_MF4_MF4_MASK = 11299,
- PseudoVSUXSEG7EI16_V_MF4_MF8 = 11300,
- PseudoVSUXSEG7EI16_V_MF4_MF8_MASK = 11301,
- PseudoVSUXSEG7EI32_V_M1_M1 = 11302,
- PseudoVSUXSEG7EI32_V_M1_M1_MASK = 11303,
- PseudoVSUXSEG7EI32_V_M1_MF2 = 11304,
- PseudoVSUXSEG7EI32_V_M1_MF2_MASK = 11305,
- PseudoVSUXSEG7EI32_V_M1_MF4 = 11306,
- PseudoVSUXSEG7EI32_V_M1_MF4_MASK = 11307,
- PseudoVSUXSEG7EI32_V_M2_M1 = 11308,
- PseudoVSUXSEG7EI32_V_M2_M1_MASK = 11309,
- PseudoVSUXSEG7EI32_V_M2_MF2 = 11310,
- PseudoVSUXSEG7EI32_V_M2_MF2_MASK = 11311,
- PseudoVSUXSEG7EI32_V_M4_M1 = 11312,
- PseudoVSUXSEG7EI32_V_M4_M1_MASK = 11313,
- PseudoVSUXSEG7EI32_V_MF2_M1 = 11314,
- PseudoVSUXSEG7EI32_V_MF2_M1_MASK = 11315,
- PseudoVSUXSEG7EI32_V_MF2_MF2 = 11316,
- PseudoVSUXSEG7EI32_V_MF2_MF2_MASK = 11317,
- PseudoVSUXSEG7EI32_V_MF2_MF4 = 11318,
- PseudoVSUXSEG7EI32_V_MF2_MF4_MASK = 11319,
- PseudoVSUXSEG7EI32_V_MF2_MF8 = 11320,
- PseudoVSUXSEG7EI32_V_MF2_MF8_MASK = 11321,
- PseudoVSUXSEG7EI64_V_M1_M1 = 11322,
- PseudoVSUXSEG7EI64_V_M1_M1_MASK = 11323,
- PseudoVSUXSEG7EI64_V_M1_MF2 = 11324,
- PseudoVSUXSEG7EI64_V_M1_MF2_MASK = 11325,
- PseudoVSUXSEG7EI64_V_M1_MF4 = 11326,
- PseudoVSUXSEG7EI64_V_M1_MF4_MASK = 11327,
- PseudoVSUXSEG7EI64_V_M1_MF8 = 11328,
- PseudoVSUXSEG7EI64_V_M1_MF8_MASK = 11329,
- PseudoVSUXSEG7EI64_V_M2_M1 = 11330,
- PseudoVSUXSEG7EI64_V_M2_M1_MASK = 11331,
- PseudoVSUXSEG7EI64_V_M2_MF2 = 11332,
- PseudoVSUXSEG7EI64_V_M2_MF2_MASK = 11333,
- PseudoVSUXSEG7EI64_V_M2_MF4 = 11334,
- PseudoVSUXSEG7EI64_V_M2_MF4_MASK = 11335,
- PseudoVSUXSEG7EI64_V_M4_M1 = 11336,
- PseudoVSUXSEG7EI64_V_M4_M1_MASK = 11337,
- PseudoVSUXSEG7EI64_V_M4_MF2 = 11338,
- PseudoVSUXSEG7EI64_V_M4_MF2_MASK = 11339,
- PseudoVSUXSEG7EI64_V_M8_M1 = 11340,
- PseudoVSUXSEG7EI64_V_M8_M1_MASK = 11341,
- PseudoVSUXSEG7EI8_V_M1_M1 = 11342,
- PseudoVSUXSEG7EI8_V_M1_M1_MASK = 11343,
- PseudoVSUXSEG7EI8_V_MF2_M1 = 11344,
- PseudoVSUXSEG7EI8_V_MF2_M1_MASK = 11345,
- PseudoVSUXSEG7EI8_V_MF2_MF2 = 11346,
- PseudoVSUXSEG7EI8_V_MF2_MF2_MASK = 11347,
- PseudoVSUXSEG7EI8_V_MF4_M1 = 11348,
- PseudoVSUXSEG7EI8_V_MF4_M1_MASK = 11349,
- PseudoVSUXSEG7EI8_V_MF4_MF2 = 11350,
- PseudoVSUXSEG7EI8_V_MF4_MF2_MASK = 11351,
- PseudoVSUXSEG7EI8_V_MF4_MF4 = 11352,
- PseudoVSUXSEG7EI8_V_MF4_MF4_MASK = 11353,
- PseudoVSUXSEG7EI8_V_MF8_M1 = 11354,
- PseudoVSUXSEG7EI8_V_MF8_M1_MASK = 11355,
- PseudoVSUXSEG7EI8_V_MF8_MF2 = 11356,
- PseudoVSUXSEG7EI8_V_MF8_MF2_MASK = 11357,
- PseudoVSUXSEG7EI8_V_MF8_MF4 = 11358,
- PseudoVSUXSEG7EI8_V_MF8_MF4_MASK = 11359,
- PseudoVSUXSEG7EI8_V_MF8_MF8 = 11360,
- PseudoVSUXSEG7EI8_V_MF8_MF8_MASK = 11361,
- PseudoVSUXSEG8EI16_V_M1_M1 = 11362,
- PseudoVSUXSEG8EI16_V_M1_M1_MASK = 11363,
- PseudoVSUXSEG8EI16_V_M1_MF2 = 11364,
- PseudoVSUXSEG8EI16_V_M1_MF2_MASK = 11365,
- PseudoVSUXSEG8EI16_V_M2_M1 = 11366,
- PseudoVSUXSEG8EI16_V_M2_M1_MASK = 11367,
- PseudoVSUXSEG8EI16_V_MF2_M1 = 11368,
- PseudoVSUXSEG8EI16_V_MF2_M1_MASK = 11369,
- PseudoVSUXSEG8EI16_V_MF2_MF2 = 11370,
- PseudoVSUXSEG8EI16_V_MF2_MF2_MASK = 11371,
- PseudoVSUXSEG8EI16_V_MF2_MF4 = 11372,
- PseudoVSUXSEG8EI16_V_MF2_MF4_MASK = 11373,
- PseudoVSUXSEG8EI16_V_MF4_M1 = 11374,
- PseudoVSUXSEG8EI16_V_MF4_M1_MASK = 11375,
- PseudoVSUXSEG8EI16_V_MF4_MF2 = 11376,
- PseudoVSUXSEG8EI16_V_MF4_MF2_MASK = 11377,
- PseudoVSUXSEG8EI16_V_MF4_MF4 = 11378,
- PseudoVSUXSEG8EI16_V_MF4_MF4_MASK = 11379,
- PseudoVSUXSEG8EI16_V_MF4_MF8 = 11380,
- PseudoVSUXSEG8EI16_V_MF4_MF8_MASK = 11381,
- PseudoVSUXSEG8EI32_V_M1_M1 = 11382,
- PseudoVSUXSEG8EI32_V_M1_M1_MASK = 11383,
- PseudoVSUXSEG8EI32_V_M1_MF2 = 11384,
- PseudoVSUXSEG8EI32_V_M1_MF2_MASK = 11385,
- PseudoVSUXSEG8EI32_V_M1_MF4 = 11386,
- PseudoVSUXSEG8EI32_V_M1_MF4_MASK = 11387,
- PseudoVSUXSEG8EI32_V_M2_M1 = 11388,
- PseudoVSUXSEG8EI32_V_M2_M1_MASK = 11389,
- PseudoVSUXSEG8EI32_V_M2_MF2 = 11390,
- PseudoVSUXSEG8EI32_V_M2_MF2_MASK = 11391,
- PseudoVSUXSEG8EI32_V_M4_M1 = 11392,
- PseudoVSUXSEG8EI32_V_M4_M1_MASK = 11393,
- PseudoVSUXSEG8EI32_V_MF2_M1 = 11394,
- PseudoVSUXSEG8EI32_V_MF2_M1_MASK = 11395,
- PseudoVSUXSEG8EI32_V_MF2_MF2 = 11396,
- PseudoVSUXSEG8EI32_V_MF2_MF2_MASK = 11397,
- PseudoVSUXSEG8EI32_V_MF2_MF4 = 11398,
- PseudoVSUXSEG8EI32_V_MF2_MF4_MASK = 11399,
- PseudoVSUXSEG8EI32_V_MF2_MF8 = 11400,
- PseudoVSUXSEG8EI32_V_MF2_MF8_MASK = 11401,
- PseudoVSUXSEG8EI64_V_M1_M1 = 11402,
- PseudoVSUXSEG8EI64_V_M1_M1_MASK = 11403,
- PseudoVSUXSEG8EI64_V_M1_MF2 = 11404,
- PseudoVSUXSEG8EI64_V_M1_MF2_MASK = 11405,
- PseudoVSUXSEG8EI64_V_M1_MF4 = 11406,
- PseudoVSUXSEG8EI64_V_M1_MF4_MASK = 11407,
- PseudoVSUXSEG8EI64_V_M1_MF8 = 11408,
- PseudoVSUXSEG8EI64_V_M1_MF8_MASK = 11409,
- PseudoVSUXSEG8EI64_V_M2_M1 = 11410,
- PseudoVSUXSEG8EI64_V_M2_M1_MASK = 11411,
- PseudoVSUXSEG8EI64_V_M2_MF2 = 11412,
- PseudoVSUXSEG8EI64_V_M2_MF2_MASK = 11413,
- PseudoVSUXSEG8EI64_V_M2_MF4 = 11414,
- PseudoVSUXSEG8EI64_V_M2_MF4_MASK = 11415,
- PseudoVSUXSEG8EI64_V_M4_M1 = 11416,
- PseudoVSUXSEG8EI64_V_M4_M1_MASK = 11417,
- PseudoVSUXSEG8EI64_V_M4_MF2 = 11418,
- PseudoVSUXSEG8EI64_V_M4_MF2_MASK = 11419,
- PseudoVSUXSEG8EI64_V_M8_M1 = 11420,
- PseudoVSUXSEG8EI64_V_M8_M1_MASK = 11421,
- PseudoVSUXSEG8EI8_V_M1_M1 = 11422,
- PseudoVSUXSEG8EI8_V_M1_M1_MASK = 11423,
- PseudoVSUXSEG8EI8_V_MF2_M1 = 11424,
- PseudoVSUXSEG8EI8_V_MF2_M1_MASK = 11425,
- PseudoVSUXSEG8EI8_V_MF2_MF2 = 11426,
- PseudoVSUXSEG8EI8_V_MF2_MF2_MASK = 11427,
- PseudoVSUXSEG8EI8_V_MF4_M1 = 11428,
- PseudoVSUXSEG8EI8_V_MF4_M1_MASK = 11429,
- PseudoVSUXSEG8EI8_V_MF4_MF2 = 11430,
- PseudoVSUXSEG8EI8_V_MF4_MF2_MASK = 11431,
- PseudoVSUXSEG8EI8_V_MF4_MF4 = 11432,
- PseudoVSUXSEG8EI8_V_MF4_MF4_MASK = 11433,
- PseudoVSUXSEG8EI8_V_MF8_M1 = 11434,
- PseudoVSUXSEG8EI8_V_MF8_M1_MASK = 11435,
- PseudoVSUXSEG8EI8_V_MF8_MF2 = 11436,
- PseudoVSUXSEG8EI8_V_MF8_MF2_MASK = 11437,
- PseudoVSUXSEG8EI8_V_MF8_MF4 = 11438,
- PseudoVSUXSEG8EI8_V_MF8_MF4_MASK = 11439,
- PseudoVSUXSEG8EI8_V_MF8_MF8 = 11440,
- PseudoVSUXSEG8EI8_V_MF8_MF8_MASK = 11441,
- PseudoVWADDU_VV_M1 = 11442,
- PseudoVWADDU_VV_M1_MASK = 11443,
- PseudoVWADDU_VV_M2 = 11444,
- PseudoVWADDU_VV_M2_MASK = 11445,
- PseudoVWADDU_VV_M4 = 11446,
- PseudoVWADDU_VV_M4_MASK = 11447,
- PseudoVWADDU_VV_MF2 = 11448,
- PseudoVWADDU_VV_MF2_MASK = 11449,
- PseudoVWADDU_VV_MF4 = 11450,
- PseudoVWADDU_VV_MF4_MASK = 11451,
- PseudoVWADDU_VV_MF8 = 11452,
- PseudoVWADDU_VV_MF8_MASK = 11453,
- PseudoVWADDU_VX_M1 = 11454,
- PseudoVWADDU_VX_M1_MASK = 11455,
- PseudoVWADDU_VX_M2 = 11456,
- PseudoVWADDU_VX_M2_MASK = 11457,
- PseudoVWADDU_VX_M4 = 11458,
- PseudoVWADDU_VX_M4_MASK = 11459,
- PseudoVWADDU_VX_MF2 = 11460,
- PseudoVWADDU_VX_MF2_MASK = 11461,
- PseudoVWADDU_VX_MF4 = 11462,
- PseudoVWADDU_VX_MF4_MASK = 11463,
- PseudoVWADDU_VX_MF8 = 11464,
- PseudoVWADDU_VX_MF8_MASK = 11465,
- PseudoVWADDU_WV_M1 = 11466,
- PseudoVWADDU_WV_M1_MASK = 11467,
- PseudoVWADDU_WV_M1_MASK_TIED = 11468,
- PseudoVWADDU_WV_M1_TIED = 11469,
- PseudoVWADDU_WV_M2 = 11470,
- PseudoVWADDU_WV_M2_MASK = 11471,
- PseudoVWADDU_WV_M2_MASK_TIED = 11472,
- PseudoVWADDU_WV_M2_TIED = 11473,
- PseudoVWADDU_WV_M4 = 11474,
- PseudoVWADDU_WV_M4_MASK = 11475,
- PseudoVWADDU_WV_M4_MASK_TIED = 11476,
- PseudoVWADDU_WV_M4_TIED = 11477,
- PseudoVWADDU_WV_MF2 = 11478,
- PseudoVWADDU_WV_MF2_MASK = 11479,
- PseudoVWADDU_WV_MF2_MASK_TIED = 11480,
- PseudoVWADDU_WV_MF2_TIED = 11481,
- PseudoVWADDU_WV_MF4 = 11482,
- PseudoVWADDU_WV_MF4_MASK = 11483,
- PseudoVWADDU_WV_MF4_MASK_TIED = 11484,
- PseudoVWADDU_WV_MF4_TIED = 11485,
- PseudoVWADDU_WV_MF8 = 11486,
- PseudoVWADDU_WV_MF8_MASK = 11487,
- PseudoVWADDU_WV_MF8_MASK_TIED = 11488,
- PseudoVWADDU_WV_MF8_TIED = 11489,
- PseudoVWADDU_WX_M1 = 11490,
- PseudoVWADDU_WX_M1_MASK = 11491,
- PseudoVWADDU_WX_M2 = 11492,
- PseudoVWADDU_WX_M2_MASK = 11493,
- PseudoVWADDU_WX_M4 = 11494,
- PseudoVWADDU_WX_M4_MASK = 11495,
- PseudoVWADDU_WX_MF2 = 11496,
- PseudoVWADDU_WX_MF2_MASK = 11497,
- PseudoVWADDU_WX_MF4 = 11498,
- PseudoVWADDU_WX_MF4_MASK = 11499,
- PseudoVWADDU_WX_MF8 = 11500,
- PseudoVWADDU_WX_MF8_MASK = 11501,
- PseudoVWADD_VV_M1 = 11502,
- PseudoVWADD_VV_M1_MASK = 11503,
- PseudoVWADD_VV_M2 = 11504,
- PseudoVWADD_VV_M2_MASK = 11505,
- PseudoVWADD_VV_M4 = 11506,
- PseudoVWADD_VV_M4_MASK = 11507,
- PseudoVWADD_VV_MF2 = 11508,
- PseudoVWADD_VV_MF2_MASK = 11509,
- PseudoVWADD_VV_MF4 = 11510,
- PseudoVWADD_VV_MF4_MASK = 11511,
- PseudoVWADD_VV_MF8 = 11512,
- PseudoVWADD_VV_MF8_MASK = 11513,
- PseudoVWADD_VX_M1 = 11514,
- PseudoVWADD_VX_M1_MASK = 11515,
- PseudoVWADD_VX_M2 = 11516,
- PseudoVWADD_VX_M2_MASK = 11517,
- PseudoVWADD_VX_M4 = 11518,
- PseudoVWADD_VX_M4_MASK = 11519,
- PseudoVWADD_VX_MF2 = 11520,
- PseudoVWADD_VX_MF2_MASK = 11521,
- PseudoVWADD_VX_MF4 = 11522,
- PseudoVWADD_VX_MF4_MASK = 11523,
- PseudoVWADD_VX_MF8 = 11524,
- PseudoVWADD_VX_MF8_MASK = 11525,
- PseudoVWADD_WV_M1 = 11526,
- PseudoVWADD_WV_M1_MASK = 11527,
- PseudoVWADD_WV_M1_MASK_TIED = 11528,
- PseudoVWADD_WV_M1_TIED = 11529,
- PseudoVWADD_WV_M2 = 11530,
- PseudoVWADD_WV_M2_MASK = 11531,
- PseudoVWADD_WV_M2_MASK_TIED = 11532,
- PseudoVWADD_WV_M2_TIED = 11533,
- PseudoVWADD_WV_M4 = 11534,
- PseudoVWADD_WV_M4_MASK = 11535,
- PseudoVWADD_WV_M4_MASK_TIED = 11536,
- PseudoVWADD_WV_M4_TIED = 11537,
- PseudoVWADD_WV_MF2 = 11538,
- PseudoVWADD_WV_MF2_MASK = 11539,
- PseudoVWADD_WV_MF2_MASK_TIED = 11540,
- PseudoVWADD_WV_MF2_TIED = 11541,
- PseudoVWADD_WV_MF4 = 11542,
- PseudoVWADD_WV_MF4_MASK = 11543,
- PseudoVWADD_WV_MF4_MASK_TIED = 11544,
- PseudoVWADD_WV_MF4_TIED = 11545,
- PseudoVWADD_WV_MF8 = 11546,
- PseudoVWADD_WV_MF8_MASK = 11547,
- PseudoVWADD_WV_MF8_MASK_TIED = 11548,
- PseudoVWADD_WV_MF8_TIED = 11549,
- PseudoVWADD_WX_M1 = 11550,
- PseudoVWADD_WX_M1_MASK = 11551,
- PseudoVWADD_WX_M2 = 11552,
- PseudoVWADD_WX_M2_MASK = 11553,
- PseudoVWADD_WX_M4 = 11554,
- PseudoVWADD_WX_M4_MASK = 11555,
- PseudoVWADD_WX_MF2 = 11556,
- PseudoVWADD_WX_MF2_MASK = 11557,
- PseudoVWADD_WX_MF4 = 11558,
- PseudoVWADD_WX_MF4_MASK = 11559,
- PseudoVWADD_WX_MF8 = 11560,
- PseudoVWADD_WX_MF8_MASK = 11561,
- PseudoVWMACCSU_VV_M1 = 11562,
- PseudoVWMACCSU_VV_M1_MASK = 11563,
- PseudoVWMACCSU_VV_M2 = 11564,
- PseudoVWMACCSU_VV_M2_MASK = 11565,
- PseudoVWMACCSU_VV_M4 = 11566,
- PseudoVWMACCSU_VV_M4_MASK = 11567,
- PseudoVWMACCSU_VV_MF2 = 11568,
- PseudoVWMACCSU_VV_MF2_MASK = 11569,
- PseudoVWMACCSU_VV_MF4 = 11570,
- PseudoVWMACCSU_VV_MF4_MASK = 11571,
- PseudoVWMACCSU_VV_MF8 = 11572,
- PseudoVWMACCSU_VV_MF8_MASK = 11573,
- PseudoVWMACCSU_VX_M1 = 11574,
- PseudoVWMACCSU_VX_M1_MASK = 11575,
- PseudoVWMACCSU_VX_M2 = 11576,
- PseudoVWMACCSU_VX_M2_MASK = 11577,
- PseudoVWMACCSU_VX_M4 = 11578,
- PseudoVWMACCSU_VX_M4_MASK = 11579,
- PseudoVWMACCSU_VX_MF2 = 11580,
- PseudoVWMACCSU_VX_MF2_MASK = 11581,
- PseudoVWMACCSU_VX_MF4 = 11582,
- PseudoVWMACCSU_VX_MF4_MASK = 11583,
- PseudoVWMACCSU_VX_MF8 = 11584,
- PseudoVWMACCSU_VX_MF8_MASK = 11585,
- PseudoVWMACCUS_VX_M1 = 11586,
- PseudoVWMACCUS_VX_M1_MASK = 11587,
- PseudoVWMACCUS_VX_M2 = 11588,
- PseudoVWMACCUS_VX_M2_MASK = 11589,
- PseudoVWMACCUS_VX_M4 = 11590,
- PseudoVWMACCUS_VX_M4_MASK = 11591,
- PseudoVWMACCUS_VX_MF2 = 11592,
- PseudoVWMACCUS_VX_MF2_MASK = 11593,
- PseudoVWMACCUS_VX_MF4 = 11594,
- PseudoVWMACCUS_VX_MF4_MASK = 11595,
- PseudoVWMACCUS_VX_MF8 = 11596,
- PseudoVWMACCUS_VX_MF8_MASK = 11597,
- PseudoVWMACCU_VV_M1 = 11598,
- PseudoVWMACCU_VV_M1_MASK = 11599,
- PseudoVWMACCU_VV_M2 = 11600,
- PseudoVWMACCU_VV_M2_MASK = 11601,
- PseudoVWMACCU_VV_M4 = 11602,
- PseudoVWMACCU_VV_M4_MASK = 11603,
- PseudoVWMACCU_VV_MF2 = 11604,
- PseudoVWMACCU_VV_MF2_MASK = 11605,
- PseudoVWMACCU_VV_MF4 = 11606,
- PseudoVWMACCU_VV_MF4_MASK = 11607,
- PseudoVWMACCU_VV_MF8 = 11608,
- PseudoVWMACCU_VV_MF8_MASK = 11609,
- PseudoVWMACCU_VX_M1 = 11610,
- PseudoVWMACCU_VX_M1_MASK = 11611,
- PseudoVWMACCU_VX_M2 = 11612,
- PseudoVWMACCU_VX_M2_MASK = 11613,
- PseudoVWMACCU_VX_M4 = 11614,
- PseudoVWMACCU_VX_M4_MASK = 11615,
- PseudoVWMACCU_VX_MF2 = 11616,
- PseudoVWMACCU_VX_MF2_MASK = 11617,
- PseudoVWMACCU_VX_MF4 = 11618,
- PseudoVWMACCU_VX_MF4_MASK = 11619,
- PseudoVWMACCU_VX_MF8 = 11620,
- PseudoVWMACCU_VX_MF8_MASK = 11621,
- PseudoVWMACC_VV_M1 = 11622,
- PseudoVWMACC_VV_M1_MASK = 11623,
- PseudoVWMACC_VV_M2 = 11624,
- PseudoVWMACC_VV_M2_MASK = 11625,
- PseudoVWMACC_VV_M4 = 11626,
- PseudoVWMACC_VV_M4_MASK = 11627,
- PseudoVWMACC_VV_MF2 = 11628,
- PseudoVWMACC_VV_MF2_MASK = 11629,
- PseudoVWMACC_VV_MF4 = 11630,
- PseudoVWMACC_VV_MF4_MASK = 11631,
- PseudoVWMACC_VV_MF8 = 11632,
- PseudoVWMACC_VV_MF8_MASK = 11633,
- PseudoVWMACC_VX_M1 = 11634,
- PseudoVWMACC_VX_M1_MASK = 11635,
- PseudoVWMACC_VX_M2 = 11636,
- PseudoVWMACC_VX_M2_MASK = 11637,
- PseudoVWMACC_VX_M4 = 11638,
- PseudoVWMACC_VX_M4_MASK = 11639,
- PseudoVWMACC_VX_MF2 = 11640,
- PseudoVWMACC_VX_MF2_MASK = 11641,
- PseudoVWMACC_VX_MF4 = 11642,
- PseudoVWMACC_VX_MF4_MASK = 11643,
- PseudoVWMACC_VX_MF8 = 11644,
- PseudoVWMACC_VX_MF8_MASK = 11645,
- PseudoVWMULSU_VV_M1 = 11646,
- PseudoVWMULSU_VV_M1_MASK = 11647,
- PseudoVWMULSU_VV_M2 = 11648,
- PseudoVWMULSU_VV_M2_MASK = 11649,
- PseudoVWMULSU_VV_M4 = 11650,
- PseudoVWMULSU_VV_M4_MASK = 11651,
- PseudoVWMULSU_VV_MF2 = 11652,
- PseudoVWMULSU_VV_MF2_MASK = 11653,
- PseudoVWMULSU_VV_MF4 = 11654,
- PseudoVWMULSU_VV_MF4_MASK = 11655,
- PseudoVWMULSU_VV_MF8 = 11656,
- PseudoVWMULSU_VV_MF8_MASK = 11657,
- PseudoVWMULSU_VX_M1 = 11658,
- PseudoVWMULSU_VX_M1_MASK = 11659,
- PseudoVWMULSU_VX_M2 = 11660,
- PseudoVWMULSU_VX_M2_MASK = 11661,
- PseudoVWMULSU_VX_M4 = 11662,
- PseudoVWMULSU_VX_M4_MASK = 11663,
- PseudoVWMULSU_VX_MF2 = 11664,
- PseudoVWMULSU_VX_MF2_MASK = 11665,
- PseudoVWMULSU_VX_MF4 = 11666,
- PseudoVWMULSU_VX_MF4_MASK = 11667,
- PseudoVWMULSU_VX_MF8 = 11668,
- PseudoVWMULSU_VX_MF8_MASK = 11669,
- PseudoVWMULU_VV_M1 = 11670,
- PseudoVWMULU_VV_M1_MASK = 11671,
- PseudoVWMULU_VV_M2 = 11672,
- PseudoVWMULU_VV_M2_MASK = 11673,
- PseudoVWMULU_VV_M4 = 11674,
- PseudoVWMULU_VV_M4_MASK = 11675,
- PseudoVWMULU_VV_MF2 = 11676,
- PseudoVWMULU_VV_MF2_MASK = 11677,
- PseudoVWMULU_VV_MF4 = 11678,
- PseudoVWMULU_VV_MF4_MASK = 11679,
- PseudoVWMULU_VV_MF8 = 11680,
- PseudoVWMULU_VV_MF8_MASK = 11681,
- PseudoVWMULU_VX_M1 = 11682,
- PseudoVWMULU_VX_M1_MASK = 11683,
- PseudoVWMULU_VX_M2 = 11684,
- PseudoVWMULU_VX_M2_MASK = 11685,
- PseudoVWMULU_VX_M4 = 11686,
- PseudoVWMULU_VX_M4_MASK = 11687,
- PseudoVWMULU_VX_MF2 = 11688,
- PseudoVWMULU_VX_MF2_MASK = 11689,
- PseudoVWMULU_VX_MF4 = 11690,
- PseudoVWMULU_VX_MF4_MASK = 11691,
- PseudoVWMULU_VX_MF8 = 11692,
- PseudoVWMULU_VX_MF8_MASK = 11693,
- PseudoVWMUL_VV_M1 = 11694,
- PseudoVWMUL_VV_M1_MASK = 11695,
- PseudoVWMUL_VV_M2 = 11696,
- PseudoVWMUL_VV_M2_MASK = 11697,
- PseudoVWMUL_VV_M4 = 11698,
- PseudoVWMUL_VV_M4_MASK = 11699,
- PseudoVWMUL_VV_MF2 = 11700,
- PseudoVWMUL_VV_MF2_MASK = 11701,
- PseudoVWMUL_VV_MF4 = 11702,
- PseudoVWMUL_VV_MF4_MASK = 11703,
- PseudoVWMUL_VV_MF8 = 11704,
- PseudoVWMUL_VV_MF8_MASK = 11705,
- PseudoVWMUL_VX_M1 = 11706,
- PseudoVWMUL_VX_M1_MASK = 11707,
- PseudoVWMUL_VX_M2 = 11708,
- PseudoVWMUL_VX_M2_MASK = 11709,
- PseudoVWMUL_VX_M4 = 11710,
- PseudoVWMUL_VX_M4_MASK = 11711,
- PseudoVWMUL_VX_MF2 = 11712,
- PseudoVWMUL_VX_MF2_MASK = 11713,
- PseudoVWMUL_VX_MF4 = 11714,
- PseudoVWMUL_VX_MF4_MASK = 11715,
- PseudoVWMUL_VX_MF8 = 11716,
- PseudoVWMUL_VX_MF8_MASK = 11717,
- PseudoVWREDSUMU_VS_M1_E16 = 11718,
- PseudoVWREDSUMU_VS_M1_E16_MASK = 11719,
- PseudoVWREDSUMU_VS_M1_E32 = 11720,
- PseudoVWREDSUMU_VS_M1_E32_MASK = 11721,
- PseudoVWREDSUMU_VS_M1_E8 = 11722,
- PseudoVWREDSUMU_VS_M1_E8_MASK = 11723,
- PseudoVWREDSUMU_VS_M2_E16 = 11724,
- PseudoVWREDSUMU_VS_M2_E16_MASK = 11725,
- PseudoVWREDSUMU_VS_M2_E32 = 11726,
- PseudoVWREDSUMU_VS_M2_E32_MASK = 11727,
- PseudoVWREDSUMU_VS_M2_E8 = 11728,
- PseudoVWREDSUMU_VS_M2_E8_MASK = 11729,
- PseudoVWREDSUMU_VS_M4_E16 = 11730,
- PseudoVWREDSUMU_VS_M4_E16_MASK = 11731,
- PseudoVWREDSUMU_VS_M4_E32 = 11732,
- PseudoVWREDSUMU_VS_M4_E32_MASK = 11733,
- PseudoVWREDSUMU_VS_M4_E8 = 11734,
- PseudoVWREDSUMU_VS_M4_E8_MASK = 11735,
- PseudoVWREDSUMU_VS_M8_E16 = 11736,
- PseudoVWREDSUMU_VS_M8_E16_MASK = 11737,
- PseudoVWREDSUMU_VS_M8_E32 = 11738,
- PseudoVWREDSUMU_VS_M8_E32_MASK = 11739,
- PseudoVWREDSUMU_VS_M8_E8 = 11740,
- PseudoVWREDSUMU_VS_M8_E8_MASK = 11741,
- PseudoVWREDSUMU_VS_MF2_E16 = 11742,
- PseudoVWREDSUMU_VS_MF2_E16_MASK = 11743,
- PseudoVWREDSUMU_VS_MF2_E32 = 11744,
- PseudoVWREDSUMU_VS_MF2_E32_MASK = 11745,
- PseudoVWREDSUMU_VS_MF2_E8 = 11746,
- PseudoVWREDSUMU_VS_MF2_E8_MASK = 11747,
- PseudoVWREDSUMU_VS_MF4_E16 = 11748,
- PseudoVWREDSUMU_VS_MF4_E16_MASK = 11749,
- PseudoVWREDSUMU_VS_MF4_E8 = 11750,
- PseudoVWREDSUMU_VS_MF4_E8_MASK = 11751,
- PseudoVWREDSUMU_VS_MF8_E8 = 11752,
- PseudoVWREDSUMU_VS_MF8_E8_MASK = 11753,
- PseudoVWREDSUM_VS_M1_E16 = 11754,
- PseudoVWREDSUM_VS_M1_E16_MASK = 11755,
- PseudoVWREDSUM_VS_M1_E32 = 11756,
- PseudoVWREDSUM_VS_M1_E32_MASK = 11757,
- PseudoVWREDSUM_VS_M1_E8 = 11758,
- PseudoVWREDSUM_VS_M1_E8_MASK = 11759,
- PseudoVWREDSUM_VS_M2_E16 = 11760,
- PseudoVWREDSUM_VS_M2_E16_MASK = 11761,
- PseudoVWREDSUM_VS_M2_E32 = 11762,
- PseudoVWREDSUM_VS_M2_E32_MASK = 11763,
- PseudoVWREDSUM_VS_M2_E8 = 11764,
- PseudoVWREDSUM_VS_M2_E8_MASK = 11765,
- PseudoVWREDSUM_VS_M4_E16 = 11766,
- PseudoVWREDSUM_VS_M4_E16_MASK = 11767,
- PseudoVWREDSUM_VS_M4_E32 = 11768,
- PseudoVWREDSUM_VS_M4_E32_MASK = 11769,
- PseudoVWREDSUM_VS_M4_E8 = 11770,
- PseudoVWREDSUM_VS_M4_E8_MASK = 11771,
- PseudoVWREDSUM_VS_M8_E16 = 11772,
- PseudoVWREDSUM_VS_M8_E16_MASK = 11773,
- PseudoVWREDSUM_VS_M8_E32 = 11774,
- PseudoVWREDSUM_VS_M8_E32_MASK = 11775,
- PseudoVWREDSUM_VS_M8_E8 = 11776,
- PseudoVWREDSUM_VS_M8_E8_MASK = 11777,
- PseudoVWREDSUM_VS_MF2_E16 = 11778,
- PseudoVWREDSUM_VS_MF2_E16_MASK = 11779,
- PseudoVWREDSUM_VS_MF2_E32 = 11780,
- PseudoVWREDSUM_VS_MF2_E32_MASK = 11781,
- PseudoVWREDSUM_VS_MF2_E8 = 11782,
- PseudoVWREDSUM_VS_MF2_E8_MASK = 11783,
- PseudoVWREDSUM_VS_MF4_E16 = 11784,
- PseudoVWREDSUM_VS_MF4_E16_MASK = 11785,
- PseudoVWREDSUM_VS_MF4_E8 = 11786,
- PseudoVWREDSUM_VS_MF4_E8_MASK = 11787,
- PseudoVWREDSUM_VS_MF8_E8 = 11788,
- PseudoVWREDSUM_VS_MF8_E8_MASK = 11789,
- PseudoVWSLL_VI_M1 = 11790,
- PseudoVWSLL_VI_M1_MASK = 11791,
- PseudoVWSLL_VI_M2 = 11792,
- PseudoVWSLL_VI_M2_MASK = 11793,
- PseudoVWSLL_VI_M4 = 11794,
- PseudoVWSLL_VI_M4_MASK = 11795,
- PseudoVWSLL_VI_MF2 = 11796,
- PseudoVWSLL_VI_MF2_MASK = 11797,
- PseudoVWSLL_VI_MF4 = 11798,
- PseudoVWSLL_VI_MF4_MASK = 11799,
- PseudoVWSLL_VI_MF8 = 11800,
- PseudoVWSLL_VI_MF8_MASK = 11801,
- PseudoVWSLL_VV_M1 = 11802,
- PseudoVWSLL_VV_M1_MASK = 11803,
- PseudoVWSLL_VV_M2 = 11804,
- PseudoVWSLL_VV_M2_MASK = 11805,
- PseudoVWSLL_VV_M4 = 11806,
- PseudoVWSLL_VV_M4_MASK = 11807,
- PseudoVWSLL_VV_MF2 = 11808,
- PseudoVWSLL_VV_MF2_MASK = 11809,
- PseudoVWSLL_VV_MF4 = 11810,
- PseudoVWSLL_VV_MF4_MASK = 11811,
- PseudoVWSLL_VV_MF8 = 11812,
- PseudoVWSLL_VV_MF8_MASK = 11813,
- PseudoVWSLL_VX_M1 = 11814,
- PseudoVWSLL_VX_M1_MASK = 11815,
- PseudoVWSLL_VX_M2 = 11816,
- PseudoVWSLL_VX_M2_MASK = 11817,
- PseudoVWSLL_VX_M4 = 11818,
- PseudoVWSLL_VX_M4_MASK = 11819,
- PseudoVWSLL_VX_MF2 = 11820,
- PseudoVWSLL_VX_MF2_MASK = 11821,
- PseudoVWSLL_VX_MF4 = 11822,
- PseudoVWSLL_VX_MF4_MASK = 11823,
- PseudoVWSLL_VX_MF8 = 11824,
- PseudoVWSLL_VX_MF8_MASK = 11825,
- PseudoVWSUBU_VV_M1 = 11826,
- PseudoVWSUBU_VV_M1_MASK = 11827,
- PseudoVWSUBU_VV_M2 = 11828,
- PseudoVWSUBU_VV_M2_MASK = 11829,
- PseudoVWSUBU_VV_M4 = 11830,
- PseudoVWSUBU_VV_M4_MASK = 11831,
- PseudoVWSUBU_VV_MF2 = 11832,
- PseudoVWSUBU_VV_MF2_MASK = 11833,
- PseudoVWSUBU_VV_MF4 = 11834,
- PseudoVWSUBU_VV_MF4_MASK = 11835,
- PseudoVWSUBU_VV_MF8 = 11836,
- PseudoVWSUBU_VV_MF8_MASK = 11837,
- PseudoVWSUBU_VX_M1 = 11838,
- PseudoVWSUBU_VX_M1_MASK = 11839,
- PseudoVWSUBU_VX_M2 = 11840,
- PseudoVWSUBU_VX_M2_MASK = 11841,
- PseudoVWSUBU_VX_M4 = 11842,
- PseudoVWSUBU_VX_M4_MASK = 11843,
- PseudoVWSUBU_VX_MF2 = 11844,
- PseudoVWSUBU_VX_MF2_MASK = 11845,
- PseudoVWSUBU_VX_MF4 = 11846,
- PseudoVWSUBU_VX_MF4_MASK = 11847,
- PseudoVWSUBU_VX_MF8 = 11848,
- PseudoVWSUBU_VX_MF8_MASK = 11849,
- PseudoVWSUBU_WV_M1 = 11850,
- PseudoVWSUBU_WV_M1_MASK = 11851,
- PseudoVWSUBU_WV_M1_MASK_TIED = 11852,
- PseudoVWSUBU_WV_M1_TIED = 11853,
- PseudoVWSUBU_WV_M2 = 11854,
- PseudoVWSUBU_WV_M2_MASK = 11855,
- PseudoVWSUBU_WV_M2_MASK_TIED = 11856,
- PseudoVWSUBU_WV_M2_TIED = 11857,
- PseudoVWSUBU_WV_M4 = 11858,
- PseudoVWSUBU_WV_M4_MASK = 11859,
- PseudoVWSUBU_WV_M4_MASK_TIED = 11860,
- PseudoVWSUBU_WV_M4_TIED = 11861,
- PseudoVWSUBU_WV_MF2 = 11862,
- PseudoVWSUBU_WV_MF2_MASK = 11863,
- PseudoVWSUBU_WV_MF2_MASK_TIED = 11864,
- PseudoVWSUBU_WV_MF2_TIED = 11865,
- PseudoVWSUBU_WV_MF4 = 11866,
- PseudoVWSUBU_WV_MF4_MASK = 11867,
- PseudoVWSUBU_WV_MF4_MASK_TIED = 11868,
- PseudoVWSUBU_WV_MF4_TIED = 11869,
- PseudoVWSUBU_WV_MF8 = 11870,
- PseudoVWSUBU_WV_MF8_MASK = 11871,
- PseudoVWSUBU_WV_MF8_MASK_TIED = 11872,
- PseudoVWSUBU_WV_MF8_TIED = 11873,
- PseudoVWSUBU_WX_M1 = 11874,
- PseudoVWSUBU_WX_M1_MASK = 11875,
- PseudoVWSUBU_WX_M2 = 11876,
- PseudoVWSUBU_WX_M2_MASK = 11877,
- PseudoVWSUBU_WX_M4 = 11878,
- PseudoVWSUBU_WX_M4_MASK = 11879,
- PseudoVWSUBU_WX_MF2 = 11880,
- PseudoVWSUBU_WX_MF2_MASK = 11881,
- PseudoVWSUBU_WX_MF4 = 11882,
- PseudoVWSUBU_WX_MF4_MASK = 11883,
- PseudoVWSUBU_WX_MF8 = 11884,
- PseudoVWSUBU_WX_MF8_MASK = 11885,
- PseudoVWSUB_VV_M1 = 11886,
- PseudoVWSUB_VV_M1_MASK = 11887,
- PseudoVWSUB_VV_M2 = 11888,
- PseudoVWSUB_VV_M2_MASK = 11889,
- PseudoVWSUB_VV_M4 = 11890,
- PseudoVWSUB_VV_M4_MASK = 11891,
- PseudoVWSUB_VV_MF2 = 11892,
- PseudoVWSUB_VV_MF2_MASK = 11893,
- PseudoVWSUB_VV_MF4 = 11894,
- PseudoVWSUB_VV_MF4_MASK = 11895,
- PseudoVWSUB_VV_MF8 = 11896,
- PseudoVWSUB_VV_MF8_MASK = 11897,
- PseudoVWSUB_VX_M1 = 11898,
- PseudoVWSUB_VX_M1_MASK = 11899,
- PseudoVWSUB_VX_M2 = 11900,
- PseudoVWSUB_VX_M2_MASK = 11901,
- PseudoVWSUB_VX_M4 = 11902,
- PseudoVWSUB_VX_M4_MASK = 11903,
- PseudoVWSUB_VX_MF2 = 11904,
- PseudoVWSUB_VX_MF2_MASK = 11905,
- PseudoVWSUB_VX_MF4 = 11906,
- PseudoVWSUB_VX_MF4_MASK = 11907,
- PseudoVWSUB_VX_MF8 = 11908,
- PseudoVWSUB_VX_MF8_MASK = 11909,
- PseudoVWSUB_WV_M1 = 11910,
- PseudoVWSUB_WV_M1_MASK = 11911,
- PseudoVWSUB_WV_M1_MASK_TIED = 11912,
- PseudoVWSUB_WV_M1_TIED = 11913,
- PseudoVWSUB_WV_M2 = 11914,
- PseudoVWSUB_WV_M2_MASK = 11915,
- PseudoVWSUB_WV_M2_MASK_TIED = 11916,
- PseudoVWSUB_WV_M2_TIED = 11917,
- PseudoVWSUB_WV_M4 = 11918,
- PseudoVWSUB_WV_M4_MASK = 11919,
- PseudoVWSUB_WV_M4_MASK_TIED = 11920,
- PseudoVWSUB_WV_M4_TIED = 11921,
- PseudoVWSUB_WV_MF2 = 11922,
- PseudoVWSUB_WV_MF2_MASK = 11923,
- PseudoVWSUB_WV_MF2_MASK_TIED = 11924,
- PseudoVWSUB_WV_MF2_TIED = 11925,
- PseudoVWSUB_WV_MF4 = 11926,
- PseudoVWSUB_WV_MF4_MASK = 11927,
- PseudoVWSUB_WV_MF4_MASK_TIED = 11928,
- PseudoVWSUB_WV_MF4_TIED = 11929,
- PseudoVWSUB_WV_MF8 = 11930,
- PseudoVWSUB_WV_MF8_MASK = 11931,
- PseudoVWSUB_WV_MF8_MASK_TIED = 11932,
- PseudoVWSUB_WV_MF8_TIED = 11933,
- PseudoVWSUB_WX_M1 = 11934,
- PseudoVWSUB_WX_M1_MASK = 11935,
- PseudoVWSUB_WX_M2 = 11936,
- PseudoVWSUB_WX_M2_MASK = 11937,
- PseudoVWSUB_WX_M4 = 11938,
- PseudoVWSUB_WX_M4_MASK = 11939,
- PseudoVWSUB_WX_MF2 = 11940,
- PseudoVWSUB_WX_MF2_MASK = 11941,
- PseudoVWSUB_WX_MF4 = 11942,
- PseudoVWSUB_WX_MF4_MASK = 11943,
- PseudoVWSUB_WX_MF8 = 11944,
- PseudoVWSUB_WX_MF8_MASK = 11945,
- PseudoVXOR_VI_M1 = 11946,
- PseudoVXOR_VI_M1_MASK = 11947,
- PseudoVXOR_VI_M2 = 11948,
- PseudoVXOR_VI_M2_MASK = 11949,
- PseudoVXOR_VI_M4 = 11950,
- PseudoVXOR_VI_M4_MASK = 11951,
- PseudoVXOR_VI_M8 = 11952,
- PseudoVXOR_VI_M8_MASK = 11953,
- PseudoVXOR_VI_MF2 = 11954,
- PseudoVXOR_VI_MF2_MASK = 11955,
- PseudoVXOR_VI_MF4 = 11956,
- PseudoVXOR_VI_MF4_MASK = 11957,
- PseudoVXOR_VI_MF8 = 11958,
- PseudoVXOR_VI_MF8_MASK = 11959,
- PseudoVXOR_VV_M1 = 11960,
- PseudoVXOR_VV_M1_MASK = 11961,
- PseudoVXOR_VV_M2 = 11962,
- PseudoVXOR_VV_M2_MASK = 11963,
- PseudoVXOR_VV_M4 = 11964,
- PseudoVXOR_VV_M4_MASK = 11965,
- PseudoVXOR_VV_M8 = 11966,
- PseudoVXOR_VV_M8_MASK = 11967,
- PseudoVXOR_VV_MF2 = 11968,
- PseudoVXOR_VV_MF2_MASK = 11969,
- PseudoVXOR_VV_MF4 = 11970,
- PseudoVXOR_VV_MF4_MASK = 11971,
- PseudoVXOR_VV_MF8 = 11972,
- PseudoVXOR_VV_MF8_MASK = 11973,
- PseudoVXOR_VX_M1 = 11974,
- PseudoVXOR_VX_M1_MASK = 11975,
- PseudoVXOR_VX_M2 = 11976,
- PseudoVXOR_VX_M2_MASK = 11977,
- PseudoVXOR_VX_M4 = 11978,
- PseudoVXOR_VX_M4_MASK = 11979,
- PseudoVXOR_VX_M8 = 11980,
- PseudoVXOR_VX_M8_MASK = 11981,
- PseudoVXOR_VX_MF2 = 11982,
- PseudoVXOR_VX_MF2_MASK = 11983,
- PseudoVXOR_VX_MF4 = 11984,
- PseudoVXOR_VX_MF4_MASK = 11985,
- PseudoVXOR_VX_MF8 = 11986,
- PseudoVXOR_VX_MF8_MASK = 11987,
- PseudoVZEXT_VF2_M1 = 11988,
- PseudoVZEXT_VF2_M1_MASK = 11989,
- PseudoVZEXT_VF2_M2 = 11990,
- PseudoVZEXT_VF2_M2_MASK = 11991,
- PseudoVZEXT_VF2_M4 = 11992,
- PseudoVZEXT_VF2_M4_MASK = 11993,
- PseudoVZEXT_VF2_M8 = 11994,
- PseudoVZEXT_VF2_M8_MASK = 11995,
- PseudoVZEXT_VF2_MF2 = 11996,
- PseudoVZEXT_VF2_MF2_MASK = 11997,
- PseudoVZEXT_VF2_MF4 = 11998,
- PseudoVZEXT_VF2_MF4_MASK = 11999,
- PseudoVZEXT_VF4_M1 = 12000,
- PseudoVZEXT_VF4_M1_MASK = 12001,
- PseudoVZEXT_VF4_M2 = 12002,
- PseudoVZEXT_VF4_M2_MASK = 12003,
- PseudoVZEXT_VF4_M4 = 12004,
- PseudoVZEXT_VF4_M4_MASK = 12005,
- PseudoVZEXT_VF4_M8 = 12006,
- PseudoVZEXT_VF4_M8_MASK = 12007,
- PseudoVZEXT_VF4_MF2 = 12008,
- PseudoVZEXT_VF4_MF2_MASK = 12009,
- PseudoVZEXT_VF8_M1 = 12010,
- PseudoVZEXT_VF8_M1_MASK = 12011,
- PseudoVZEXT_VF8_M2 = 12012,
- PseudoVZEXT_VF8_M2_MASK = 12013,
- PseudoVZEXT_VF8_M4 = 12014,
- PseudoVZEXT_VF8_M4_MASK = 12015,
- PseudoVZEXT_VF8_M8 = 12016,
- PseudoVZEXT_VF8_M8_MASK = 12017,
- PseudoZEXT_H = 12018,
- PseudoZEXT_W = 12019,
- ReadCounterWide = 12020,
- ReadFCSR = 12021,
- ReadFFLAGS = 12022,
- ReadFRM = 12023,
- Select_FPR16INX_Using_CC_GPR = 12024,
- Select_FPR16_Using_CC_GPR = 12025,
- Select_FPR32INX_Using_CC_GPR = 12026,
- Select_FPR32_Using_CC_GPR = 12027,
- Select_FPR64IN32X_Using_CC_GPR = 12028,
- Select_FPR64INX_Using_CC_GPR = 12029,
- Select_FPR64_Using_CC_GPR = 12030,
- Select_GPRNoX0_Using_CC_SImm16NonZero_QC = 12031,
- Select_GPRNoX0_Using_CC_SImm5NonZero_QC = 12032,
- Select_GPRNoX0_Using_CC_UImm16NonZero_QC = 12033,
- Select_GPRNoX0_Using_CC_UImm5NonZero_QC = 12034,
- Select_GPR_Using_CC_GPR = 12035,
- Select_GPR_Using_CC_SImm5_CV = 12036,
- Select_GPR_Using_CC_UImm7_NDS = 12037,
- Select_GPR_Using_CC_UImmLog2XLen_NDS = 12038,
- SplitF64Pseudo = 12039,
- SwapFRMImm = 12040,
- WriteFCSR = 12041,
- WriteFCSRImm = 12042,
- WriteFFLAGS = 12043,
- WriteFRM = 12044,
- WriteFRMImm = 12045,
- WriteVXRMImm = 12046,
- ABS = 12047,
- ABSW = 12048,
- ADD = 12049,
- ADDI = 12050,
- ADDIW = 12051,
- ADDW = 12052,
- ADD_UW = 12053,
- AES32DSI = 12054,
- AES32DSMI = 12055,
- AES32ESI = 12056,
- AES32ESMI = 12057,
- AES64DS = 12058,
- AES64DSM = 12059,
- AES64ES = 12060,
- AES64ESM = 12061,
- AES64IM = 12062,
- AES64KS1I = 12063,
- AES64KS2 = 12064,
- AMOADD_B = 12065,
- AMOADD_B_AQ = 12066,
- AMOADD_B_AQ_RL = 12067,
- AMOADD_B_RL = 12068,
- AMOADD_D = 12069,
- AMOADD_D_AQ = 12070,
- AMOADD_D_AQ_RL = 12071,
- AMOADD_D_RL = 12072,
- AMOADD_H = 12073,
- AMOADD_H_AQ = 12074,
- AMOADD_H_AQ_RL = 12075,
- AMOADD_H_RL = 12076,
- AMOADD_W = 12077,
- AMOADD_W_AQ = 12078,
- AMOADD_W_AQ_RL = 12079,
- AMOADD_W_RL = 12080,
- AMOAND_B = 12081,
- AMOAND_B_AQ = 12082,
- AMOAND_B_AQ_RL = 12083,
- AMOAND_B_RL = 12084,
- AMOAND_D = 12085,
- AMOAND_D_AQ = 12086,
- AMOAND_D_AQ_RL = 12087,
- AMOAND_D_RL = 12088,
- AMOAND_H = 12089,
- AMOAND_H_AQ = 12090,
- AMOAND_H_AQ_RL = 12091,
- AMOAND_H_RL = 12092,
- AMOAND_W = 12093,
- AMOAND_W_AQ = 12094,
- AMOAND_W_AQ_RL = 12095,
- AMOAND_W_RL = 12096,
- AMOCAS_B = 12097,
- AMOCAS_B_AQ = 12098,
- AMOCAS_B_AQ_RL = 12099,
- AMOCAS_B_RL = 12100,
- AMOCAS_D_RV32 = 12101,
- AMOCAS_D_RV32_AQ = 12102,
- AMOCAS_D_RV32_AQ_RL = 12103,
- AMOCAS_D_RV32_RL = 12104,
- AMOCAS_D_RV64 = 12105,
- AMOCAS_D_RV64_AQ = 12106,
- AMOCAS_D_RV64_AQ_RL = 12107,
- AMOCAS_D_RV64_RL = 12108,
- AMOCAS_H = 12109,
- AMOCAS_H_AQ = 12110,
- AMOCAS_H_AQ_RL = 12111,
- AMOCAS_H_RL = 12112,
- AMOCAS_Q = 12113,
- AMOCAS_Q_AQ = 12114,
- AMOCAS_Q_AQ_RL = 12115,
- AMOCAS_Q_RL = 12116,
- AMOCAS_W = 12117,
- AMOCAS_W_AQ = 12118,
- AMOCAS_W_AQ_RL = 12119,
- AMOCAS_W_RL = 12120,
- AMOMAXU_B = 12121,
- AMOMAXU_B_AQ = 12122,
- AMOMAXU_B_AQ_RL = 12123,
- AMOMAXU_B_RL = 12124,
- AMOMAXU_D = 12125,
- AMOMAXU_D_AQ = 12126,
- AMOMAXU_D_AQ_RL = 12127,
- AMOMAXU_D_RL = 12128,
- AMOMAXU_H = 12129,
- AMOMAXU_H_AQ = 12130,
- AMOMAXU_H_AQ_RL = 12131,
- AMOMAXU_H_RL = 12132,
- AMOMAXU_W = 12133,
- AMOMAXU_W_AQ = 12134,
- AMOMAXU_W_AQ_RL = 12135,
- AMOMAXU_W_RL = 12136,
- AMOMAX_B = 12137,
- AMOMAX_B_AQ = 12138,
- AMOMAX_B_AQ_RL = 12139,
- AMOMAX_B_RL = 12140,
- AMOMAX_D = 12141,
- AMOMAX_D_AQ = 12142,
- AMOMAX_D_AQ_RL = 12143,
- AMOMAX_D_RL = 12144,
- AMOMAX_H = 12145,
- AMOMAX_H_AQ = 12146,
- AMOMAX_H_AQ_RL = 12147,
- AMOMAX_H_RL = 12148,
- AMOMAX_W = 12149,
- AMOMAX_W_AQ = 12150,
- AMOMAX_W_AQ_RL = 12151,
- AMOMAX_W_RL = 12152,
- AMOMINU_B = 12153,
- AMOMINU_B_AQ = 12154,
- AMOMINU_B_AQ_RL = 12155,
- AMOMINU_B_RL = 12156,
- AMOMINU_D = 12157,
- AMOMINU_D_AQ = 12158,
- AMOMINU_D_AQ_RL = 12159,
- AMOMINU_D_RL = 12160,
- AMOMINU_H = 12161,
- AMOMINU_H_AQ = 12162,
- AMOMINU_H_AQ_RL = 12163,
- AMOMINU_H_RL = 12164,
- AMOMINU_W = 12165,
- AMOMINU_W_AQ = 12166,
- AMOMINU_W_AQ_RL = 12167,
- AMOMINU_W_RL = 12168,
- AMOMIN_B = 12169,
- AMOMIN_B_AQ = 12170,
- AMOMIN_B_AQ_RL = 12171,
- AMOMIN_B_RL = 12172,
- AMOMIN_D = 12173,
- AMOMIN_D_AQ = 12174,
- AMOMIN_D_AQ_RL = 12175,
- AMOMIN_D_RL = 12176,
- AMOMIN_H = 12177,
- AMOMIN_H_AQ = 12178,
- AMOMIN_H_AQ_RL = 12179,
- AMOMIN_H_RL = 12180,
- AMOMIN_W = 12181,
- AMOMIN_W_AQ = 12182,
- AMOMIN_W_AQ_RL = 12183,
- AMOMIN_W_RL = 12184,
- AMOOR_B = 12185,
- AMOOR_B_AQ = 12186,
- AMOOR_B_AQ_RL = 12187,
- AMOOR_B_RL = 12188,
- AMOOR_D = 12189,
- AMOOR_D_AQ = 12190,
- AMOOR_D_AQ_RL = 12191,
- AMOOR_D_RL = 12192,
- AMOOR_H = 12193,
- AMOOR_H_AQ = 12194,
- AMOOR_H_AQ_RL = 12195,
- AMOOR_H_RL = 12196,
- AMOOR_W = 12197,
- AMOOR_W_AQ = 12198,
- AMOOR_W_AQ_RL = 12199,
- AMOOR_W_RL = 12200,
- AMOSWAP_B = 12201,
- AMOSWAP_B_AQ = 12202,
- AMOSWAP_B_AQ_RL = 12203,
- AMOSWAP_B_RL = 12204,
- AMOSWAP_D = 12205,
- AMOSWAP_D_AQ = 12206,
- AMOSWAP_D_AQ_RL = 12207,
- AMOSWAP_D_RL = 12208,
- AMOSWAP_H = 12209,
- AMOSWAP_H_AQ = 12210,
- AMOSWAP_H_AQ_RL = 12211,
- AMOSWAP_H_RL = 12212,
- AMOSWAP_W = 12213,
- AMOSWAP_W_AQ = 12214,
- AMOSWAP_W_AQ_RL = 12215,
- AMOSWAP_W_RL = 12216,
- AMOXOR_B = 12217,
- AMOXOR_B_AQ = 12218,
- AMOXOR_B_AQ_RL = 12219,
- AMOXOR_B_RL = 12220,
- AMOXOR_D = 12221,
- AMOXOR_D_AQ = 12222,
- AMOXOR_D_AQ_RL = 12223,
- AMOXOR_D_RL = 12224,
- AMOXOR_H = 12225,
- AMOXOR_H_AQ = 12226,
- AMOXOR_H_AQ_RL = 12227,
- AMOXOR_H_RL = 12228,
- AMOXOR_W = 12229,
- AMOXOR_W_AQ = 12230,
- AMOXOR_W_AQ_RL = 12231,
- AMOXOR_W_RL = 12232,
- AND = 12233,
- ANDI = 12234,
- ANDN = 12235,
- AUIPC = 12236,
- BCLR = 12237,
- BCLRI = 12238,
- BEQ = 12239,
- BEXT = 12240,
- BEXTI = 12241,
- BGE = 12242,
- BGEU = 12243,
- BINV = 12244,
- BINVI = 12245,
- BLT = 12246,
- BLTU = 12247,
- BNE = 12248,
- BREV8 = 12249,
- BSET = 12250,
- BSETI = 12251,
- CBO_CLEAN = 12252,
- CBO_FLUSH = 12253,
- CBO_INVAL = 12254,
- CBO_ZERO = 12255,
- CLMUL = 12256,
- CLMULH = 12257,
- CLMULR = 12258,
- CLS = 12259,
- CLSW = 12260,
- CLZ = 12261,
- CLZW = 12262,
- CM_JALT = 12263,
- CM_JT = 12264,
- CM_MVA01S = 12265,
- CM_MVSA01 = 12266,
- CM_POP = 12267,
- CM_POPRET = 12268,
- CM_POPRETZ = 12269,
- CM_PUSH = 12270,
- CPOP = 12271,
- CPOPW = 12272,
- CSRRC = 12273,
- CSRRCI = 12274,
- CSRRS = 12275,
- CSRRSI = 12276,
- CSRRW = 12277,
- CSRRWI = 12278,
- CTZ = 12279,
- CTZW = 12280,
- CV_ABS = 12281,
- CV_ABS_B = 12282,
- CV_ABS_H = 12283,
- CV_ADDN = 12284,
- CV_ADDNR = 12285,
- CV_ADDRN = 12286,
- CV_ADDRNR = 12287,
- CV_ADDUN = 12288,
- CV_ADDUNR = 12289,
- CV_ADDURN = 12290,
- CV_ADDURNR = 12291,
- CV_ADD_B = 12292,
- CV_ADD_DIV2 = 12293,
- CV_ADD_DIV4 = 12294,
- CV_ADD_DIV8 = 12295,
- CV_ADD_H = 12296,
- CV_ADD_SCI_B = 12297,
- CV_ADD_SCI_H = 12298,
- CV_ADD_SC_B = 12299,
- CV_ADD_SC_H = 12300,
- CV_AND_B = 12301,
- CV_AND_H = 12302,
- CV_AND_SCI_B = 12303,
- CV_AND_SCI_H = 12304,
- CV_AND_SC_B = 12305,
- CV_AND_SC_H = 12306,
- CV_AVGU_B = 12307,
- CV_AVGU_H = 12308,
- CV_AVGU_SCI_B = 12309,
- CV_AVGU_SCI_H = 12310,
- CV_AVGU_SC_B = 12311,
- CV_AVGU_SC_H = 12312,
- CV_AVG_B = 12313,
- CV_AVG_H = 12314,
- CV_AVG_SCI_B = 12315,
- CV_AVG_SCI_H = 12316,
- CV_AVG_SC_B = 12317,
- CV_AVG_SC_H = 12318,
- CV_BCLR = 12319,
- CV_BCLRR = 12320,
- CV_BEQIMM = 12321,
- CV_BITREV = 12322,
- CV_BNEIMM = 12323,
- CV_BSET = 12324,
- CV_BSETR = 12325,
- CV_CLB = 12326,
- CV_CLIP = 12327,
- CV_CLIPR = 12328,
- CV_CLIPU = 12329,
- CV_CLIPUR = 12330,
- CV_CMPEQ_B = 12331,
- CV_CMPEQ_H = 12332,
- CV_CMPEQ_SCI_B = 12333,
- CV_CMPEQ_SCI_H = 12334,
- CV_CMPEQ_SC_B = 12335,
- CV_CMPEQ_SC_H = 12336,
- CV_CMPGEU_B = 12337,
- CV_CMPGEU_H = 12338,
- CV_CMPGEU_SCI_B = 12339,
- CV_CMPGEU_SCI_H = 12340,
- CV_CMPGEU_SC_B = 12341,
- CV_CMPGEU_SC_H = 12342,
- CV_CMPGE_B = 12343,
- CV_CMPGE_H = 12344,
- CV_CMPGE_SCI_B = 12345,
- CV_CMPGE_SCI_H = 12346,
- CV_CMPGE_SC_B = 12347,
- CV_CMPGE_SC_H = 12348,
- CV_CMPGTU_B = 12349,
- CV_CMPGTU_H = 12350,
- CV_CMPGTU_SCI_B = 12351,
- CV_CMPGTU_SCI_H = 12352,
- CV_CMPGTU_SC_B = 12353,
- CV_CMPGTU_SC_H = 12354,
- CV_CMPGT_B = 12355,
- CV_CMPGT_H = 12356,
- CV_CMPGT_SCI_B = 12357,
- CV_CMPGT_SCI_H = 12358,
- CV_CMPGT_SC_B = 12359,
- CV_CMPGT_SC_H = 12360,
- CV_CMPLEU_B = 12361,
- CV_CMPLEU_H = 12362,
- CV_CMPLEU_SCI_B = 12363,
- CV_CMPLEU_SCI_H = 12364,
- CV_CMPLEU_SC_B = 12365,
- CV_CMPLEU_SC_H = 12366,
- CV_CMPLE_B = 12367,
- CV_CMPLE_H = 12368,
- CV_CMPLE_SCI_B = 12369,
- CV_CMPLE_SCI_H = 12370,
- CV_CMPLE_SC_B = 12371,
- CV_CMPLE_SC_H = 12372,
- CV_CMPLTU_B = 12373,
- CV_CMPLTU_H = 12374,
- CV_CMPLTU_SCI_B = 12375,
- CV_CMPLTU_SCI_H = 12376,
- CV_CMPLTU_SC_B = 12377,
- CV_CMPLTU_SC_H = 12378,
- CV_CMPLT_B = 12379,
- CV_CMPLT_H = 12380,
- CV_CMPLT_SCI_B = 12381,
- CV_CMPLT_SCI_H = 12382,
- CV_CMPLT_SC_B = 12383,
- CV_CMPLT_SC_H = 12384,
- CV_CMPNE_B = 12385,
- CV_CMPNE_H = 12386,
- CV_CMPNE_SCI_B = 12387,
- CV_CMPNE_SCI_H = 12388,
- CV_CMPNE_SC_B = 12389,
- CV_CMPNE_SC_H = 12390,
- CV_CNT = 12391,
- CV_CPLXCONJ = 12392,
- CV_CPLXMUL_I = 12393,
- CV_CPLXMUL_I_DIV2 = 12394,
- CV_CPLXMUL_I_DIV4 = 12395,
- CV_CPLXMUL_I_DIV8 = 12396,
- CV_CPLXMUL_R = 12397,
- CV_CPLXMUL_R_DIV2 = 12398,
- CV_CPLXMUL_R_DIV4 = 12399,
- CV_CPLXMUL_R_DIV8 = 12400,
- CV_DOTSP_B = 12401,
- CV_DOTSP_H = 12402,
- CV_DOTSP_SCI_B = 12403,
- CV_DOTSP_SCI_H = 12404,
- CV_DOTSP_SC_B = 12405,
- CV_DOTSP_SC_H = 12406,
- CV_DOTUP_B = 12407,
- CV_DOTUP_H = 12408,
- CV_DOTUP_SCI_B = 12409,
- CV_DOTUP_SCI_H = 12410,
- CV_DOTUP_SC_B = 12411,
- CV_DOTUP_SC_H = 12412,
- CV_DOTUSP_B = 12413,
- CV_DOTUSP_H = 12414,
- CV_DOTUSP_SCI_B = 12415,
- CV_DOTUSP_SCI_H = 12416,
- CV_DOTUSP_SC_B = 12417,
- CV_DOTUSP_SC_H = 12418,
- CV_ELW = 12419,
- CV_EXTBS = 12420,
- CV_EXTBZ = 12421,
- CV_EXTHS = 12422,
- CV_EXTHZ = 12423,
- CV_EXTRACT = 12424,
- CV_EXTRACTR = 12425,
- CV_EXTRACTU = 12426,
- CV_EXTRACTUR = 12427,
- CV_EXTRACTU_B = 12428,
- CV_EXTRACTU_H = 12429,
- CV_EXTRACT_B = 12430,
- CV_EXTRACT_H = 12431,
- CV_FF1 = 12432,
- CV_FL1 = 12433,
- CV_INSERT = 12434,
- CV_INSERTR = 12435,
- CV_INSERT_B = 12436,
- CV_INSERT_H = 12437,
- CV_LBU_ri_inc = 12438,
- CV_LBU_rr = 12439,
- CV_LBU_rr_inc = 12440,
- CV_LB_ri_inc = 12441,
- CV_LB_rr = 12442,
- CV_LB_rr_inc = 12443,
- CV_LHU_ri_inc = 12444,
- CV_LHU_rr = 12445,
- CV_LHU_rr_inc = 12446,
- CV_LH_ri_inc = 12447,
- CV_LH_rr = 12448,
- CV_LH_rr_inc = 12449,
- CV_LW_ri_inc = 12450,
- CV_LW_rr = 12451,
- CV_LW_rr_inc = 12452,
- CV_MAC = 12453,
- CV_MACHHSN = 12454,
- CV_MACHHSRN = 12455,
- CV_MACHHUN = 12456,
- CV_MACHHURN = 12457,
- CV_MACSN = 12458,
- CV_MACSRN = 12459,
- CV_MACUN = 12460,
- CV_MACURN = 12461,
- CV_MAX = 12462,
- CV_MAXU = 12463,
- CV_MAXU_B = 12464,
- CV_MAXU_H = 12465,
- CV_MAXU_SCI_B = 12466,
- CV_MAXU_SCI_H = 12467,
- CV_MAXU_SC_B = 12468,
- CV_MAXU_SC_H = 12469,
- CV_MAX_B = 12470,
- CV_MAX_H = 12471,
- CV_MAX_SCI_B = 12472,
- CV_MAX_SCI_H = 12473,
- CV_MAX_SC_B = 12474,
- CV_MAX_SC_H = 12475,
- CV_MIN = 12476,
- CV_MINU = 12477,
- CV_MINU_B = 12478,
- CV_MINU_H = 12479,
- CV_MINU_SCI_B = 12480,
- CV_MINU_SCI_H = 12481,
- CV_MINU_SC_B = 12482,
- CV_MINU_SC_H = 12483,
- CV_MIN_B = 12484,
- CV_MIN_H = 12485,
- CV_MIN_SCI_B = 12486,
- CV_MIN_SCI_H = 12487,
- CV_MIN_SC_B = 12488,
- CV_MIN_SC_H = 12489,
- CV_MSU = 12490,
- CV_MULHHSN = 12491,
- CV_MULHHSRN = 12492,
- CV_MULHHUN = 12493,
- CV_MULHHURN = 12494,
- CV_MULSN = 12495,
- CV_MULSRN = 12496,
- CV_MULUN = 12497,
- CV_MULURN = 12498,
- CV_OR_B = 12499,
- CV_OR_H = 12500,
- CV_OR_SCI_B = 12501,
- CV_OR_SCI_H = 12502,
- CV_OR_SC_B = 12503,
- CV_OR_SC_H = 12504,
- CV_PACK = 12505,
- CV_PACKHI_B = 12506,
- CV_PACKLO_B = 12507,
- CV_PACK_H = 12508,
- CV_ROR = 12509,
- CV_SB_ri_inc = 12510,
- CV_SB_rr = 12511,
- CV_SB_rr_inc = 12512,
- CV_SDOTSP_B = 12513,
- CV_SDOTSP_H = 12514,
- CV_SDOTSP_SCI_B = 12515,
- CV_SDOTSP_SCI_H = 12516,
- CV_SDOTSP_SC_B = 12517,
- CV_SDOTSP_SC_H = 12518,
- CV_SDOTUP_B = 12519,
- CV_SDOTUP_H = 12520,
- CV_SDOTUP_SCI_B = 12521,
- CV_SDOTUP_SCI_H = 12522,
- CV_SDOTUP_SC_B = 12523,
- CV_SDOTUP_SC_H = 12524,
- CV_SDOTUSP_B = 12525,
- CV_SDOTUSP_H = 12526,
- CV_SDOTUSP_SCI_B = 12527,
- CV_SDOTUSP_SCI_H = 12528,
- CV_SDOTUSP_SC_B = 12529,
- CV_SDOTUSP_SC_H = 12530,
- CV_SHUFFLE2_B = 12531,
- CV_SHUFFLE2_H = 12532,
- CV_SHUFFLEI0_SCI_B = 12533,
- CV_SHUFFLEI1_SCI_B = 12534,
- CV_SHUFFLEI2_SCI_B = 12535,
- CV_SHUFFLEI3_SCI_B = 12536,
- CV_SHUFFLE_B = 12537,
- CV_SHUFFLE_H = 12538,
- CV_SHUFFLE_SCI_H = 12539,
- CV_SH_ri_inc = 12540,
- CV_SH_rr = 12541,
- CV_SH_rr_inc = 12542,
- CV_SLE = 12543,
- CV_SLEU = 12544,
- CV_SLL_B = 12545,
- CV_SLL_H = 12546,
- CV_SLL_SCI_B = 12547,
- CV_SLL_SCI_H = 12548,
- CV_SLL_SC_B = 12549,
- CV_SLL_SC_H = 12550,
- CV_SRA_B = 12551,
- CV_SRA_H = 12552,
- CV_SRA_SCI_B = 12553,
- CV_SRA_SCI_H = 12554,
- CV_SRA_SC_B = 12555,
- CV_SRA_SC_H = 12556,
- CV_SRL_B = 12557,
- CV_SRL_H = 12558,
- CV_SRL_SCI_B = 12559,
- CV_SRL_SCI_H = 12560,
- CV_SRL_SC_B = 12561,
- CV_SRL_SC_H = 12562,
- CV_SUBN = 12563,
- CV_SUBNR = 12564,
- CV_SUBRN = 12565,
- CV_SUBRNR = 12566,
- CV_SUBROTMJ = 12567,
- CV_SUBROTMJ_DIV2 = 12568,
- CV_SUBROTMJ_DIV4 = 12569,
- CV_SUBROTMJ_DIV8 = 12570,
- CV_SUBUN = 12571,
- CV_SUBUNR = 12572,
- CV_SUBURN = 12573,
- CV_SUBURNR = 12574,
- CV_SUB_B = 12575,
- CV_SUB_DIV2 = 12576,
- CV_SUB_DIV4 = 12577,
- CV_SUB_DIV8 = 12578,
- CV_SUB_H = 12579,
- CV_SUB_SCI_B = 12580,
- CV_SUB_SCI_H = 12581,
- CV_SUB_SC_B = 12582,
- CV_SUB_SC_H = 12583,
- CV_SW_ri_inc = 12584,
- CV_SW_rr = 12585,
- CV_SW_rr_inc = 12586,
- CV_XOR_B = 12587,
- CV_XOR_H = 12588,
- CV_XOR_SCI_B = 12589,
- CV_XOR_SCI_H = 12590,
- CV_XOR_SC_B = 12591,
- CV_XOR_SC_H = 12592,
- CZERO_EQZ = 12593,
- CZERO_NEZ = 12594,
- C_ADD = 12595,
- C_ADDI = 12596,
- C_ADDI16SP = 12597,
- C_ADDI4SPN = 12598,
- C_ADDIW = 12599,
- C_ADDI_HINT_IMM_ZERO = 12600,
- C_ADDW = 12601,
- C_ADD_HINT = 12602,
- C_AND = 12603,
- C_ANDI = 12604,
- C_BEQZ = 12605,
- C_BNEZ = 12606,
- C_EBREAK = 12607,
- C_FLD = 12608,
- C_FLDSP = 12609,
- C_FLW = 12610,
- C_FLWSP = 12611,
- C_FSD = 12612,
- C_FSDSP = 12613,
- C_FSW = 12614,
- C_FSWSP = 12615,
- C_J = 12616,
- C_JAL = 12617,
- C_JALR = 12618,
- C_JR = 12619,
- C_LBU = 12620,
- C_LD = 12621,
- C_LDSP = 12622,
- C_LDSP_RV32 = 12623,
- C_LD_RV32 = 12624,
- C_LH = 12625,
- C_LHU = 12626,
- C_LH_INX = 12627,
- C_LI = 12628,
- C_LI_HINT = 12629,
- C_LUI = 12630,
- C_LUI_HINT = 12631,
- C_LW = 12632,
- C_LWSP = 12633,
- C_LWSP_INX = 12634,
- C_LW_INX = 12635,
- C_MOP1 = 12636,
- C_MOP11 = 12637,
- C_MOP13 = 12638,
- C_MOP15 = 12639,
- C_MOP3 = 12640,
- C_MOP5 = 12641,
- C_MOP7 = 12642,
- C_MOP9 = 12643,
- C_MUL = 12644,
- C_MV = 12645,
- C_MV_HINT = 12646,
- C_NOP = 12647,
- C_NOP_HINT = 12648,
- C_NOT = 12649,
- C_OR = 12650,
- C_SB = 12651,
- C_SD = 12652,
- C_SDSP = 12653,
- C_SDSP_RV32 = 12654,
- C_SD_RV32 = 12655,
- C_SEXT_B = 12656,
- C_SEXT_H = 12657,
- C_SH = 12658,
- C_SH_INX = 12659,
- C_SLLI = 12660,
- C_SLLI64_HINT = 12661,
- C_SLLI_HINT = 12662,
- C_SRAI = 12663,
- C_SRAI64_HINT = 12664,
- C_SRLI = 12665,
- C_SRLI64_HINT = 12666,
- C_SSPOPCHK = 12667,
- C_SSPUSH = 12668,
- C_SUB = 12669,
- C_SUBW = 12670,
- C_SW = 12671,
- C_SWSP = 12672,
- C_SWSP_INX = 12673,
- C_SW_INX = 12674,
- C_UNIMP = 12675,
- C_XOR = 12676,
- C_ZEXT_B = 12677,
- C_ZEXT_H = 12678,
- C_ZEXT_W = 12679,
- DIV = 12680,
- DIVU = 12681,
- DIVUW = 12682,
- DIVW = 12683,
- DRET = 12684,
- EBREAK = 12685,
- ECALL = 12686,
- FADD_D = 12687,
- FADD_D_IN32X = 12688,
- FADD_D_INX = 12689,
- FADD_H = 12690,
- FADD_H_INX = 12691,
- FADD_Q = 12692,
- FADD_S = 12693,
- FADD_S_INX = 12694,
- FCLASS_D = 12695,
- FCLASS_D_IN32X = 12696,
- FCLASS_D_INX = 12697,
- FCLASS_H = 12698,
- FCLASS_H_INX = 12699,
- FCLASS_Q = 12700,
- FCLASS_S = 12701,
- FCLASS_S_INX = 12702,
- FCVTMOD_W_D = 12703,
- FCVT_BF16_S = 12704,
- FCVT_D_H = 12705,
- FCVT_D_H_IN32X = 12706,
- FCVT_D_H_INX = 12707,
- FCVT_D_L = 12708,
- FCVT_D_LU = 12709,
- FCVT_D_LU_INX = 12710,
- FCVT_D_L_INX = 12711,
- FCVT_D_Q = 12712,
- FCVT_D_S = 12713,
- FCVT_D_S_IN32X = 12714,
- FCVT_D_S_INX = 12715,
- FCVT_D_W = 12716,
- FCVT_D_WU = 12717,
- FCVT_D_WU_IN32X = 12718,
- FCVT_D_WU_INX = 12719,
- FCVT_D_W_IN32X = 12720,
- FCVT_D_W_INX = 12721,
- FCVT_H_D = 12722,
- FCVT_H_D_IN32X = 12723,
- FCVT_H_D_INX = 12724,
- FCVT_H_L = 12725,
- FCVT_H_LU = 12726,
- FCVT_H_LU_INX = 12727,
- FCVT_H_L_INX = 12728,
- FCVT_H_S = 12729,
- FCVT_H_S_INX = 12730,
- FCVT_H_W = 12731,
- FCVT_H_WU = 12732,
- FCVT_H_WU_INX = 12733,
- FCVT_H_W_INX = 12734,
- FCVT_LU_D = 12735,
- FCVT_LU_D_INX = 12736,
- FCVT_LU_H = 12737,
- FCVT_LU_H_INX = 12738,
- FCVT_LU_Q = 12739,
- FCVT_LU_S = 12740,
- FCVT_LU_S_INX = 12741,
- FCVT_L_D = 12742,
- FCVT_L_D_INX = 12743,
- FCVT_L_H = 12744,
- FCVT_L_H_INX = 12745,
- FCVT_L_Q = 12746,
- FCVT_L_S = 12747,
- FCVT_L_S_INX = 12748,
- FCVT_Q_D = 12749,
- FCVT_Q_L = 12750,
- FCVT_Q_LU = 12751,
- FCVT_Q_S = 12752,
- FCVT_Q_W = 12753,
- FCVT_Q_WU = 12754,
- FCVT_S_BF16 = 12755,
- FCVT_S_D = 12756,
- FCVT_S_D_IN32X = 12757,
- FCVT_S_D_INX = 12758,
- FCVT_S_H = 12759,
- FCVT_S_H_INX = 12760,
- FCVT_S_L = 12761,
- FCVT_S_LU = 12762,
- FCVT_S_LU_INX = 12763,
- FCVT_S_L_INX = 12764,
- FCVT_S_Q = 12765,
- FCVT_S_W = 12766,
- FCVT_S_WU = 12767,
- FCVT_S_WU_INX = 12768,
- FCVT_S_W_INX = 12769,
- FCVT_WU_D = 12770,
- FCVT_WU_D_IN32X = 12771,
- FCVT_WU_D_INX = 12772,
- FCVT_WU_H = 12773,
- FCVT_WU_H_INX = 12774,
- FCVT_WU_Q = 12775,
- FCVT_WU_S = 12776,
- FCVT_WU_S_INX = 12777,
- FCVT_W_D = 12778,
- FCVT_W_D_IN32X = 12779,
- FCVT_W_D_INX = 12780,
- FCVT_W_H = 12781,
- FCVT_W_H_INX = 12782,
- FCVT_W_Q = 12783,
- FCVT_W_S = 12784,
- FCVT_W_S_INX = 12785,
- FDIV_D = 12786,
- FDIV_D_IN32X = 12787,
- FDIV_D_INX = 12788,
- FDIV_H = 12789,
- FDIV_H_INX = 12790,
- FDIV_Q = 12791,
- FDIV_S = 12792,
- FDIV_S_INX = 12793,
- FENCE = 12794,
- FENCE_I = 12795,
- FENCE_TSO = 12796,
- FEQ_D = 12797,
- FEQ_D_IN32X = 12798,
- FEQ_D_INX = 12799,
- FEQ_H = 12800,
- FEQ_H_INX = 12801,
- FEQ_Q = 12802,
- FEQ_S = 12803,
- FEQ_S_INX = 12804,
- FLD = 12805,
- FLEQ_D = 12806,
- FLEQ_H = 12807,
- FLEQ_Q = 12808,
- FLEQ_S = 12809,
- FLE_D = 12810,
- FLE_D_IN32X = 12811,
- FLE_D_INX = 12812,
- FLE_H = 12813,
- FLE_H_INX = 12814,
- FLE_Q = 12815,
- FLE_S = 12816,
- FLE_S_INX = 12817,
- FLH = 12818,
- FLI_D = 12819,
- FLI_H = 12820,
- FLI_Q = 12821,
- FLI_S = 12822,
- FLQ = 12823,
- FLTQ_D = 12824,
- FLTQ_H = 12825,
- FLTQ_Q = 12826,
- FLTQ_S = 12827,
- FLT_D = 12828,
- FLT_D_IN32X = 12829,
- FLT_D_INX = 12830,
- FLT_H = 12831,
- FLT_H_INX = 12832,
- FLT_Q = 12833,
- FLT_S = 12834,
- FLT_S_INX = 12835,
- FLW = 12836,
- FMADD_D = 12837,
- FMADD_D_IN32X = 12838,
- FMADD_D_INX = 12839,
- FMADD_H = 12840,
- FMADD_H_INX = 12841,
- FMADD_Q = 12842,
- FMADD_S = 12843,
- FMADD_S_INX = 12844,
- FMAXM_D = 12845,
- FMAXM_H = 12846,
- FMAXM_Q = 12847,
- FMAXM_S = 12848,
- FMAX_D = 12849,
- FMAX_D_IN32X = 12850,
- FMAX_D_INX = 12851,
- FMAX_H = 12852,
- FMAX_H_INX = 12853,
- FMAX_Q = 12854,
- FMAX_S = 12855,
- FMAX_S_INX = 12856,
- FMINM_D = 12857,
- FMINM_H = 12858,
- FMINM_Q = 12859,
- FMINM_S = 12860,
- FMIN_D = 12861,
- FMIN_D_IN32X = 12862,
- FMIN_D_INX = 12863,
- FMIN_H = 12864,
- FMIN_H_INX = 12865,
- FMIN_Q = 12866,
- FMIN_S = 12867,
- FMIN_S_INX = 12868,
- FMSUB_D = 12869,
- FMSUB_D_IN32X = 12870,
- FMSUB_D_INX = 12871,
- FMSUB_H = 12872,
- FMSUB_H_INX = 12873,
- FMSUB_Q = 12874,
- FMSUB_S = 12875,
- FMSUB_S_INX = 12876,
- FMUL_D = 12877,
- FMUL_D_IN32X = 12878,
- FMUL_D_INX = 12879,
- FMUL_H = 12880,
- FMUL_H_INX = 12881,
- FMUL_Q = 12882,
- FMUL_S = 12883,
- FMUL_S_INX = 12884,
- FMVH_X_D = 12885,
- FMVH_X_Q = 12886,
- FMVP_D_X = 12887,
- FMVP_Q_X = 12888,
- FMV_D_X = 12889,
- FMV_H_X = 12890,
- FMV_W_X = 12891,
- FMV_X_D = 12892,
- FMV_X_H = 12893,
- FMV_X_W = 12894,
- FMV_X_W_FPR64 = 12895,
- FNMADD_D = 12896,
- FNMADD_D_IN32X = 12897,
- FNMADD_D_INX = 12898,
- FNMADD_H = 12899,
- FNMADD_H_INX = 12900,
- FNMADD_Q = 12901,
- FNMADD_S = 12902,
- FNMADD_S_INX = 12903,
- FNMSUB_D = 12904,
- FNMSUB_D_IN32X = 12905,
- FNMSUB_D_INX = 12906,
- FNMSUB_H = 12907,
- FNMSUB_H_INX = 12908,
- FNMSUB_Q = 12909,
- FNMSUB_S = 12910,
- FNMSUB_S_INX = 12911,
- FROUNDNX_D = 12912,
- FROUNDNX_H = 12913,
- FROUNDNX_Q = 12914,
- FROUNDNX_S = 12915,
- FROUND_D = 12916,
- FROUND_H = 12917,
- FROUND_Q = 12918,
- FROUND_S = 12919,
- FSD = 12920,
- FSGNJN_D = 12921,
- FSGNJN_D_IN32X = 12922,
- FSGNJN_D_INX = 12923,
- FSGNJN_H = 12924,
- FSGNJN_H_INX = 12925,
- FSGNJN_Q = 12926,
- FSGNJN_S = 12927,
- FSGNJN_S_INX = 12928,
- FSGNJX_D = 12929,
- FSGNJX_D_IN32X = 12930,
- FSGNJX_D_INX = 12931,
- FSGNJX_H = 12932,
- FSGNJX_H_INX = 12933,
- FSGNJX_Q = 12934,
- FSGNJX_S = 12935,
- FSGNJX_S_INX = 12936,
- FSGNJ_D = 12937,
- FSGNJ_D_IN32X = 12938,
- FSGNJ_D_INX = 12939,
- FSGNJ_H = 12940,
- FSGNJ_H_INX = 12941,
- FSGNJ_Q = 12942,
- FSGNJ_S = 12943,
- FSGNJ_S_INX = 12944,
- FSH = 12945,
- FSQ = 12946,
- FSQRT_D = 12947,
- FSQRT_D_IN32X = 12948,
- FSQRT_D_INX = 12949,
- FSQRT_H = 12950,
- FSQRT_H_INX = 12951,
- FSQRT_Q = 12952,
- FSQRT_S = 12953,
- FSQRT_S_INX = 12954,
- FSUB_D = 12955,
- FSUB_D_IN32X = 12956,
- FSUB_D_INX = 12957,
- FSUB_H = 12958,
- FSUB_H_INX = 12959,
- FSUB_Q = 12960,
- FSUB_S = 12961,
- FSUB_S_INX = 12962,
- FSW = 12963,
- HFENCE_GVMA = 12964,
- HFENCE_VVMA = 12965,
- HINVAL_GVMA = 12966,
- HINVAL_VVMA = 12967,
- HLVX_HU = 12968,
- HLVX_WU = 12969,
- HLV_B = 12970,
- HLV_BU = 12971,
- HLV_D = 12972,
- HLV_H = 12973,
- HLV_HU = 12974,
- HLV_W = 12975,
- HLV_WU = 12976,
- HSV_B = 12977,
- HSV_D = 12978,
- HSV_H = 12979,
- HSV_W = 12980,
- Insn16 = 12981,
- Insn32 = 12982,
- Insn48 = 12983,
- Insn64 = 12984,
- InsnB = 12985,
- InsnCA = 12986,
- InsnCB = 12987,
- InsnCI = 12988,
- InsnCIW = 12989,
- InsnCJ = 12990,
- InsnCL = 12991,
- InsnCR = 12992,
- InsnCS = 12993,
- InsnCSS = 12994,
- InsnI = 12995,
- InsnI_Mem = 12996,
- InsnJ = 12997,
- InsnQC_EAI = 12998,
- InsnQC_EB = 12999,
- InsnQC_EI = 13000,
- InsnQC_EI_Mem = 13001,
- InsnQC_EJ = 13002,
- InsnQC_ES = 13003,
- InsnR = 13004,
- InsnR4 = 13005,
- InsnS = 13006,
- InsnU = 13007,
- JAL = 13008,
- JALR = 13009,
- LB = 13010,
- LBU = 13011,
- LB_AQ = 13012,
- LB_AQ_RL = 13013,
- LD = 13014,
- LD_AQ = 13015,
- LD_AQ_RL = 13016,
- LD_RV32 = 13017,
- LH = 13018,
- LHU = 13019,
- LH_AQ = 13020,
- LH_AQ_RL = 13021,
- LH_INX = 13022,
- LR_D = 13023,
- LR_D_AQ = 13024,
- LR_D_AQ_RL = 13025,
- LR_D_RL = 13026,
- LR_W = 13027,
- LR_W_AQ = 13028,
- LR_W_AQ_RL = 13029,
- LR_W_RL = 13030,
- LUI = 13031,
- LW = 13032,
- LWU = 13033,
- LW_AQ = 13034,
- LW_AQ_RL = 13035,
- LW_INX = 13036,
- MAX = 13037,
- MAXU = 13038,
- MIN = 13039,
- MINU = 13040,
- MIPS_CCMOV = 13041,
- MIPS_LDP = 13042,
- MIPS_LWP = 13043,
- MIPS_PREFETCH = 13044,
- MIPS_SDP = 13045,
- MIPS_SWP = 13046,
- MNRET = 13047,
- MOPR0 = 13048,
- MOPR1 = 13049,
- MOPR10 = 13050,
- MOPR11 = 13051,
- MOPR12 = 13052,
- MOPR13 = 13053,
- MOPR14 = 13054,
- MOPR15 = 13055,
- MOPR16 = 13056,
- MOPR17 = 13057,
- MOPR18 = 13058,
- MOPR19 = 13059,
- MOPR2 = 13060,
- MOPR20 = 13061,
- MOPR21 = 13062,
- MOPR22 = 13063,
- MOPR23 = 13064,
- MOPR24 = 13065,
- MOPR25 = 13066,
- MOPR26 = 13067,
- MOPR27 = 13068,
- MOPR28 = 13069,
- MOPR29 = 13070,
- MOPR3 = 13071,
- MOPR30 = 13072,
- MOPR31 = 13073,
- MOPR4 = 13074,
- MOPR5 = 13075,
- MOPR6 = 13076,
- MOPR7 = 13077,
- MOPR8 = 13078,
- MOPR9 = 13079,
- MOPRR0 = 13080,
- MOPRR1 = 13081,
- MOPRR2 = 13082,
- MOPRR3 = 13083,
- MOPRR4 = 13084,
- MOPRR5 = 13085,
- MOPRR6 = 13086,
- MOPRR7 = 13087,
- MRET = 13088,
- MUL = 13089,
- MULH = 13090,
- MULHSU = 13091,
- MULHU = 13092,
- MULW = 13093,
- NDS_ADDIGP = 13094,
- NDS_BBC = 13095,
- NDS_BBS = 13096,
- NDS_BEQC = 13097,
- NDS_BFOS = 13098,
- NDS_BFOZ = 13099,
- NDS_BNEC = 13100,
- NDS_FCVT_BF16_S = 13101,
- NDS_FCVT_S_BF16 = 13102,
- NDS_FFB = 13103,
- NDS_FFMISM = 13104,
- NDS_FFZMISM = 13105,
- NDS_FLMISM = 13106,
- NDS_LBGP = 13107,
- NDS_LBUGP = 13108,
- NDS_LDGP = 13109,
- NDS_LEA_B_ZE = 13110,
- NDS_LEA_D = 13111,
- NDS_LEA_D_ZE = 13112,
- NDS_LEA_H = 13113,
- NDS_LEA_H_ZE = 13114,
- NDS_LEA_W = 13115,
- NDS_LEA_W_ZE = 13116,
- NDS_LHGP = 13117,
- NDS_LHUGP = 13118,
- NDS_LWGP = 13119,
- NDS_LWUGP = 13120,
- NDS_SBGP = 13121,
- NDS_SDGP = 13122,
- NDS_SHGP = 13123,
- NDS_SWGP = 13124,
- NDS_VD4DOTSU_VV = 13125,
- NDS_VD4DOTS_VV = 13126,
- NDS_VD4DOTU_VV = 13127,
- NDS_VFNCVT_BF16_S = 13128,
- NDS_VFPMADB_VF = 13129,
- NDS_VFPMADT_VF = 13130,
- NDS_VFWCVT_S_BF16 = 13131,
- NDS_VLN8_V = 13132,
- NDS_VLNU8_V = 13133,
- OR = 13134,
- ORC_B = 13135,
- ORI = 13136,
- ORN = 13137,
- PACK = 13138,
- PACKH = 13139,
- PACKW = 13140,
- PLI_B = 13141,
- PLI_H = 13142,
- PLI_W = 13143,
- PLUI_H = 13144,
- PLUI_W = 13145,
- PREFETCH_I = 13146,
- PREFETCH_R = 13147,
- PREFETCH_W = 13148,
- PSABS_B = 13149,
- PSABS_H = 13150,
- PSEXT_H_B = 13151,
- PSEXT_W_B = 13152,
- PSEXT_W_H = 13153,
- PSLLI_B = 13154,
- PSLLI_H = 13155,
- PSLLI_W = 13156,
- PSSLAI_H = 13157,
- PSSLAI_W = 13158,
- QC_ADDSAT = 13159,
- QC_ADDUSAT = 13160,
- QC_BEQI = 13161,
- QC_BGEI = 13162,
- QC_BGEUI = 13163,
- QC_BLTI = 13164,
- QC_BLTUI = 13165,
- QC_BNEI = 13166,
- QC_BREV32 = 13167,
- QC_CLO = 13168,
- QC_CLRINTI = 13169,
- QC_CM_MVA01S = 13170,
- QC_CM_MVSA01 = 13171,
- QC_CM_POP = 13172,
- QC_CM_POPRET = 13173,
- QC_CM_POPRETZ = 13174,
- QC_CM_PUSH = 13175,
- QC_CM_PUSHFP = 13176,
- QC_COMPRESS2 = 13177,
- QC_COMPRESS3 = 13178,
- QC_CSRRWR = 13179,
- QC_CSRRWRI = 13180,
- QC_CTO = 13181,
- QC_C_BEXTI = 13182,
- QC_C_BSETI = 13183,
- QC_C_CLRINT = 13184,
- QC_C_DELAY = 13185,
- QC_C_DI = 13186,
- QC_C_DIR = 13187,
- QC_C_EI = 13188,
- QC_C_EIR = 13189,
- QC_C_EXTU = 13190,
- QC_C_MIENTER = 13191,
- QC_C_MIENTER_NEST = 13192,
- QC_C_MILEAVERET = 13193,
- QC_C_MNRET = 13194,
- QC_C_MRET = 13195,
- QC_C_MULIADD = 13196,
- QC_C_MVEQZ = 13197,
- QC_C_PTRACE = 13198,
- QC_C_SETINT = 13199,
- QC_C_SYNC = 13200,
- QC_C_SYNCR = 13201,
- QC_C_SYNCWF = 13202,
- QC_C_SYNCWL = 13203,
- QC_EXPAND2 = 13204,
- QC_EXPAND3 = 13205,
- QC_EXT = 13206,
- QC_EXTD = 13207,
- QC_EXTDPR = 13208,
- QC_EXTDPRH = 13209,
- QC_EXTDR = 13210,
- QC_EXTDU = 13211,
- QC_EXTDUPR = 13212,
- QC_EXTDUPRH = 13213,
- QC_EXTDUR = 13214,
- QC_EXTU = 13215,
- QC_E_ADDAI = 13216,
- QC_E_ADDI = 13217,
- QC_E_ANDAI = 13218,
- QC_E_ANDI = 13219,
- QC_E_BEQI = 13220,
- QC_E_BGEI = 13221,
- QC_E_BGEUI = 13222,
- QC_E_BLTI = 13223,
- QC_E_BLTUI = 13224,
- QC_E_BNEI = 13225,
- QC_E_J = 13226,
- QC_E_JAL = 13227,
- QC_E_LB = 13228,
- QC_E_LBU = 13229,
- QC_E_LH = 13230,
- QC_E_LHU = 13231,
- QC_E_LI = 13232,
- QC_E_LW = 13233,
- QC_E_ORAI = 13234,
- QC_E_ORI = 13235,
- QC_E_SB = 13236,
- QC_E_SH = 13237,
- QC_E_SW = 13238,
- QC_E_XORAI = 13239,
- QC_E_XORI = 13240,
- QC_INSB = 13241,
- QC_INSBH = 13242,
- QC_INSBHR = 13243,
- QC_INSBI = 13244,
- QC_INSBPR = 13245,
- QC_INSBPRH = 13246,
- QC_INSBR = 13247,
- QC_INSBRI = 13248,
- QC_INW = 13249,
- QC_LI = 13250,
- QC_LIEQ = 13251,
- QC_LIEQI = 13252,
- QC_LIGE = 13253,
- QC_LIGEI = 13254,
- QC_LIGEU = 13255,
- QC_LIGEUI = 13256,
- QC_LILT = 13257,
- QC_LILTI = 13258,
- QC_LILTU = 13259,
- QC_LILTUI = 13260,
- QC_LINE = 13261,
- QC_LINEI = 13262,
- QC_LRB = 13263,
- QC_LRBU = 13264,
- QC_LRH = 13265,
- QC_LRHU = 13266,
- QC_LRW = 13267,
- QC_LWM = 13268,
- QC_LWMI = 13269,
- QC_MULIADD = 13270,
- QC_MVEQ = 13271,
- QC_MVEQI = 13272,
- QC_MVGE = 13273,
- QC_MVGEI = 13274,
- QC_MVGEU = 13275,
- QC_MVGEUI = 13276,
- QC_MVLT = 13277,
- QC_MVLTI = 13278,
- QC_MVLTU = 13279,
- QC_MVLTUI = 13280,
- QC_MVNE = 13281,
- QC_MVNEI = 13282,
- QC_NORM = 13283,
- QC_NORMEU = 13284,
- QC_NORMU = 13285,
- QC_OUTW = 13286,
- QC_PCOREDUMP = 13287,
- QC_PEXIT = 13288,
- QC_PPREG = 13289,
- QC_PPREGS = 13290,
- QC_PPUTC = 13291,
- QC_PPUTCI = 13292,
- QC_PPUTS = 13293,
- QC_PSYSCALL = 13294,
- QC_PSYSCALLI = 13295,
- QC_SELECTEQI = 13296,
- QC_SELECTIEQ = 13297,
- QC_SELECTIEQI = 13298,
- QC_SELECTIIEQ = 13299,
- QC_SELECTIINE = 13300,
- QC_SELECTINE = 13301,
- QC_SELECTINEI = 13302,
- QC_SELECTNEI = 13303,
- QC_SETINTI = 13304,
- QC_SETWM = 13305,
- QC_SETWMI = 13306,
- QC_SHLADD = 13307,
- QC_SHLSAT = 13308,
- QC_SHLUSAT = 13309,
- QC_SRB = 13310,
- QC_SRH = 13311,
- QC_SRW = 13312,
- QC_SUBSAT = 13313,
- QC_SUBUSAT = 13314,
- QC_SWM = 13315,
- QC_SWMI = 13316,
- QC_SYNC = 13317,
- QC_SYNCR = 13318,
- QC_SYNCWF = 13319,
- QC_SYNCWL = 13320,
- QC_WRAP = 13321,
- QC_WRAPI = 13322,
- QK_C_LBU = 13323,
- QK_C_LBUSP = 13324,
- QK_C_LHU = 13325,
- QK_C_LHUSP = 13326,
- QK_C_SB = 13327,
- QK_C_SBSP = 13328,
- QK_C_SH = 13329,
- QK_C_SHSP = 13330,
- REM = 13331,
- REMU = 13332,
- REMUW = 13333,
- REMW = 13334,
- REV16 = 13335,
- REV8_RV32 = 13336,
- REV8_RV64 = 13337,
- REV_RV32 = 13338,
- REV_RV64 = 13339,
- RI_VEXTRACT = 13340,
- RI_VINSERT = 13341,
- RI_VUNZIP2A_VV = 13342,
- RI_VUNZIP2B_VV = 13343,
- RI_VZERO = 13344,
- RI_VZIP2A_VV = 13345,
- RI_VZIP2B_VV = 13346,
- RI_VZIPEVEN_VV = 13347,
- RI_VZIPODD_VV = 13348,
- ROL = 13349,
- ROLW = 13350,
- ROR = 13351,
- RORI = 13352,
- RORIW = 13353,
- RORW = 13354,
- SB = 13355,
- SB_AQ_RL = 13356,
- SB_RL = 13357,
- SCTRCLR = 13358,
- SC_D = 13359,
- SC_D_AQ = 13360,
- SC_D_AQ_RL = 13361,
- SC_D_RL = 13362,
- SC_W = 13363,
- SC_W_AQ = 13364,
- SC_W_AQ_RL = 13365,
- SC_W_RL = 13366,
- SD = 13367,
- SD_AQ_RL = 13368,
- SD_RL = 13369,
- SD_RV32 = 13370,
- SEXT_B = 13371,
- SEXT_H = 13372,
- SFENCE_INVAL_IR = 13373,
- SFENCE_VMA = 13374,
- SFENCE_W_INVAL = 13375,
- SF_CDISCARD_D_L1 = 13376,
- SF_CEASE = 13377,
- SF_CFLUSH_D_L1 = 13378,
- SF_MM_E4M3_E4M3 = 13379,
- SF_MM_E4M3_E5M2 = 13380,
- SF_MM_E5M2_E4M3 = 13381,
- SF_MM_E5M2_E5M2 = 13382,
- SF_MM_F_F = 13383,
- SF_MM_S_S = 13384,
- SF_MM_S_U = 13385,
- SF_MM_U_S = 13386,
- SF_MM_U_U = 13387,
- SF_VC_FV = 13388,
- SF_VC_FVV = 13389,
- SF_VC_FVW = 13390,
- SF_VC_I = 13391,
- SF_VC_IV = 13392,
- SF_VC_IVV = 13393,
- SF_VC_IVW = 13394,
- SF_VC_VV = 13395,
- SF_VC_VVV = 13396,
- SF_VC_VVW = 13397,
- SF_VC_V_FV = 13398,
- SF_VC_V_FVV = 13399,
- SF_VC_V_FVW = 13400,
- SF_VC_V_I = 13401,
- SF_VC_V_IV = 13402,
- SF_VC_V_IVV = 13403,
- SF_VC_V_IVW = 13404,
- SF_VC_V_VV = 13405,
- SF_VC_V_VVV = 13406,
- SF_VC_V_VVW = 13407,
- SF_VC_V_X = 13408,
- SF_VC_V_XV = 13409,
- SF_VC_V_XVV = 13410,
- SF_VC_V_XVW = 13411,
- SF_VC_X = 13412,
- SF_VC_XV = 13413,
- SF_VC_XVV = 13414,
- SF_VC_XVW = 13415,
- SF_VFNRCLIP_XU_F_QF = 13416,
- SF_VFNRCLIP_X_F_QF = 13417,
- SF_VFWMACC_4x4x4 = 13418,
- SF_VLTE16 = 13419,
- SF_VLTE32 = 13420,
- SF_VLTE64 = 13421,
- SF_VLTE8 = 13422,
- SF_VQMACCSU_2x8x2 = 13423,
- SF_VQMACCSU_4x8x4 = 13424,
- SF_VQMACCUS_2x8x2 = 13425,
- SF_VQMACCUS_4x8x4 = 13426,
- SF_VQMACCU_2x8x2 = 13427,
- SF_VQMACCU_4x8x4 = 13428,
- SF_VQMACC_2x8x2 = 13429,
- SF_VQMACC_4x8x4 = 13430,
- SF_VSETTK = 13431,
- SF_VSETTM = 13432,
- SF_VSETTN = 13433,
- SF_VSTE16 = 13434,
- SF_VSTE32 = 13435,
- SF_VSTE64 = 13436,
- SF_VSTE8 = 13437,
- SF_VTDISCARD = 13438,
- SF_VTMV_T_V = 13439,
- SF_VTMV_V_T = 13440,
- SF_VTZERO_T = 13441,
- SH = 13442,
- SH1ADD = 13443,
- SH1ADD_UW = 13444,
- SH2ADD = 13445,
- SH2ADD_UW = 13446,
- SH3ADD = 13447,
- SH3ADD_UW = 13448,
- SHA256SIG0 = 13449,
- SHA256SIG1 = 13450,
- SHA256SUM0 = 13451,
- SHA256SUM1 = 13452,
- SHA512SIG0 = 13453,
- SHA512SIG0H = 13454,
- SHA512SIG0L = 13455,
- SHA512SIG1 = 13456,
- SHA512SIG1H = 13457,
- SHA512SIG1L = 13458,
- SHA512SUM0 = 13459,
- SHA512SUM0R = 13460,
- SHA512SUM1 = 13461,
- SHA512SUM1R = 13462,
- SH_AQ_RL = 13463,
- SH_INX = 13464,
- SH_RL = 13465,
- SINVAL_VMA = 13466,
- SLL = 13467,
- SLLI = 13468,
- SLLIW = 13469,
- SLLI_UW = 13470,
- SLLW = 13471,
- SLT = 13472,
- SLTI = 13473,
- SLTIU = 13474,
- SLTU = 13475,
- SM3P0 = 13476,
- SM3P1 = 13477,
- SM4ED = 13478,
- SM4KS = 13479,
- SRA = 13480,
- SRAI = 13481,
- SRAIW = 13482,
- SRAW = 13483,
- SRET = 13484,
- SRL = 13485,
- SRLI = 13486,
- SRLIW = 13487,
- SRLW = 13488,
- SSAMOSWAP_D = 13489,
- SSAMOSWAP_D_AQ = 13490,
- SSAMOSWAP_D_AQ_RL = 13491,
- SSAMOSWAP_D_RL = 13492,
- SSAMOSWAP_W = 13493,
- SSAMOSWAP_W_AQ = 13494,
- SSAMOSWAP_W_AQ_RL = 13495,
- SSAMOSWAP_W_RL = 13496,
- SSLAI = 13497,
- SSPOPCHK = 13498,
- SSPUSH = 13499,
- SSRDP = 13500,
- SUB = 13501,
- SUBW = 13502,
- SW = 13503,
- SW_AQ_RL = 13504,
- SW_INX = 13505,
- SW_RL = 13506,
- TH_ADDSL = 13507,
- TH_DCACHE_CALL = 13508,
- TH_DCACHE_CIALL = 13509,
- TH_DCACHE_CIPA = 13510,
- TH_DCACHE_CISW = 13511,
- TH_DCACHE_CIVA = 13512,
- TH_DCACHE_CPA = 13513,
- TH_DCACHE_CPAL1 = 13514,
- TH_DCACHE_CSW = 13515,
- TH_DCACHE_CVA = 13516,
- TH_DCACHE_CVAL1 = 13517,
- TH_DCACHE_IALL = 13518,
- TH_DCACHE_IPA = 13519,
- TH_DCACHE_ISW = 13520,
- TH_DCACHE_IVA = 13521,
- TH_EXT = 13522,
- TH_EXTU = 13523,
- TH_FF0 = 13524,
- TH_FF1 = 13525,
- TH_FLRD = 13526,
- TH_FLRW = 13527,
- TH_FLURD = 13528,
- TH_FLURW = 13529,
- TH_FSRD = 13530,
- TH_FSRW = 13531,
- TH_FSURD = 13532,
- TH_FSURW = 13533,
- TH_ICACHE_IALL = 13534,
- TH_ICACHE_IALLS = 13535,
- TH_ICACHE_IPA = 13536,
- TH_ICACHE_IVA = 13537,
- TH_L2CACHE_CALL = 13538,
- TH_L2CACHE_CIALL = 13539,
- TH_L2CACHE_IALL = 13540,
- TH_LBIA = 13541,
- TH_LBIB = 13542,
- TH_LBUIA = 13543,
- TH_LBUIB = 13544,
- TH_LDD = 13545,
- TH_LDIA = 13546,
- TH_LDIB = 13547,
- TH_LHIA = 13548,
- TH_LHIB = 13549,
- TH_LHUIA = 13550,
- TH_LHUIB = 13551,
- TH_LRB = 13552,
- TH_LRBU = 13553,
- TH_LRD = 13554,
- TH_LRH = 13555,
- TH_LRHU = 13556,
- TH_LRW = 13557,
- TH_LRWU = 13558,
- TH_LURB = 13559,
- TH_LURBU = 13560,
- TH_LURD = 13561,
- TH_LURH = 13562,
- TH_LURHU = 13563,
- TH_LURW = 13564,
- TH_LURWU = 13565,
- TH_LWD = 13566,
- TH_LWIA = 13567,
- TH_LWIB = 13568,
- TH_LWUD = 13569,
- TH_LWUIA = 13570,
- TH_LWUIB = 13571,
- TH_MULA = 13572,
- TH_MULAH = 13573,
- TH_MULAW = 13574,
- TH_MULS = 13575,
- TH_MULSH = 13576,
- TH_MULSW = 13577,
- TH_MVEQZ = 13578,
- TH_MVNEZ = 13579,
- TH_REV = 13580,
- TH_REVW = 13581,
- TH_SBIA = 13582,
- TH_SBIB = 13583,
- TH_SDD = 13584,
- TH_SDIA = 13585,
- TH_SDIB = 13586,
- TH_SFENCE_VMAS = 13587,
- TH_SHIA = 13588,
- TH_SHIB = 13589,
- TH_SRB = 13590,
- TH_SRD = 13591,
- TH_SRH = 13592,
- TH_SRRI = 13593,
- TH_SRRIW = 13594,
- TH_SRW = 13595,
- TH_SURB = 13596,
- TH_SURD = 13597,
- TH_SURH = 13598,
- TH_SURW = 13599,
- TH_SWD = 13600,
- TH_SWIA = 13601,
- TH_SWIB = 13602,
- TH_SYNC = 13603,
- TH_SYNC_I = 13604,
- TH_SYNC_IS = 13605,
- TH_SYNC_S = 13606,
- TH_TST = 13607,
- TH_TSTNBZ = 13608,
- TH_VMAQASU_VV = 13609,
- TH_VMAQASU_VX = 13610,
- TH_VMAQAUS_VX = 13611,
- TH_VMAQAU_VV = 13612,
- TH_VMAQAU_VX = 13613,
- TH_VMAQA_VV = 13614,
- TH_VMAQA_VX = 13615,
- UNIMP = 13616,
- UNZIP_RV32 = 13617,
- VAADDU_VV = 13618,
- VAADDU_VX = 13619,
- VAADD_VV = 13620,
- VAADD_VX = 13621,
- VADC_VIM = 13622,
- VADC_VVM = 13623,
- VADC_VXM = 13624,
- VADD_VI = 13625,
- VADD_VV = 13626,
- VADD_VX = 13627,
- VAESDF_VS = 13628,
- VAESDF_VV = 13629,
- VAESDM_VS = 13630,
- VAESDM_VV = 13631,
- VAESEF_VS = 13632,
- VAESEF_VV = 13633,
- VAESEM_VS = 13634,
- VAESEM_VV = 13635,
- VAESKF1_VI = 13636,
- VAESKF2_VI = 13637,
- VAESZ_VS = 13638,
- VANDN_VV = 13639,
- VANDN_VX = 13640,
- VAND_VI = 13641,
- VAND_VV = 13642,
- VAND_VX = 13643,
- VASUBU_VV = 13644,
- VASUBU_VX = 13645,
- VASUB_VV = 13646,
- VASUB_VX = 13647,
- VBREV8_V = 13648,
- VBREV_V = 13649,
- VCLMULH_VV = 13650,
- VCLMULH_VX = 13651,
- VCLMUL_VV = 13652,
- VCLMUL_VX = 13653,
- VCLZ_V = 13654,
- VCOMPRESS_VM = 13655,
- VCPOP_M = 13656,
- VCPOP_V = 13657,
- VCTZ_V = 13658,
- VDIVU_VV = 13659,
- VDIVU_VX = 13660,
- VDIV_VV = 13661,
- VDIV_VX = 13662,
- VFADD_VF = 13663,
- VFADD_VV = 13664,
- VFCLASS_V = 13665,
- VFCVT_F_XU_V = 13666,
- VFCVT_F_X_V = 13667,
- VFCVT_RTZ_XU_F_V = 13668,
- VFCVT_RTZ_X_F_V = 13669,
- VFCVT_XU_F_V = 13670,
- VFCVT_X_F_V = 13671,
- VFDIV_VF = 13672,
- VFDIV_VV = 13673,
- VFIRST_M = 13674,
- VFMACC_VF = 13675,
- VFMACC_VV = 13676,
- VFMADD_VF = 13677,
- VFMADD_VV = 13678,
- VFMAX_VF = 13679,
- VFMAX_VV = 13680,
- VFMERGE_VFM = 13681,
- VFMIN_VF = 13682,
- VFMIN_VV = 13683,
- VFMSAC_VF = 13684,
- VFMSAC_VV = 13685,
- VFMSUB_VF = 13686,
- VFMSUB_VV = 13687,
- VFMUL_VF = 13688,
- VFMUL_VV = 13689,
- VFMV_F_S = 13690,
- VFMV_S_F = 13691,
- VFMV_V_F = 13692,
- VFNCVTBF16_F_F_W = 13693,
- VFNCVT_F_F_W = 13694,
- VFNCVT_F_XU_W = 13695,
- VFNCVT_F_X_W = 13696,
- VFNCVT_ROD_F_F_W = 13697,
- VFNCVT_RTZ_XU_F_W = 13698,
- VFNCVT_RTZ_X_F_W = 13699,
- VFNCVT_XU_F_W = 13700,
- VFNCVT_X_F_W = 13701,
- VFNMACC_VF = 13702,
- VFNMACC_VV = 13703,
- VFNMADD_VF = 13704,
- VFNMADD_VV = 13705,
- VFNMSAC_VF = 13706,
- VFNMSAC_VV = 13707,
- VFNMSUB_VF = 13708,
- VFNMSUB_VV = 13709,
- VFRDIV_VF = 13710,
- VFREC7_V = 13711,
- VFREDMAX_VS = 13712,
- VFREDMIN_VS = 13713,
- VFREDOSUM_VS = 13714,
- VFREDUSUM_VS = 13715,
- VFRSQRT7_V = 13716,
- VFRSUB_VF = 13717,
- VFSGNJN_VF = 13718,
- VFSGNJN_VV = 13719,
- VFSGNJX_VF = 13720,
- VFSGNJX_VV = 13721,
- VFSGNJ_VF = 13722,
- VFSGNJ_VV = 13723,
- VFSLIDE1DOWN_VF = 13724,
- VFSLIDE1UP_VF = 13725,
- VFSQRT_V = 13726,
- VFSUB_VF = 13727,
- VFSUB_VV = 13728,
- VFWADD_VF = 13729,
- VFWADD_VV = 13730,
- VFWADD_WF = 13731,
- VFWADD_WV = 13732,
- VFWCVTBF16_F_F_V = 13733,
- VFWCVT_F_F_V = 13734,
- VFWCVT_F_XU_V = 13735,
- VFWCVT_F_X_V = 13736,
- VFWCVT_RTZ_XU_F_V = 13737,
- VFWCVT_RTZ_X_F_V = 13738,
- VFWCVT_XU_F_V = 13739,
- VFWCVT_X_F_V = 13740,
- VFWMACCBF16_VF = 13741,
- VFWMACCBF16_VV = 13742,
- VFWMACC_VF = 13743,
- VFWMACC_VV = 13744,
- VFWMSAC_VF = 13745,
- VFWMSAC_VV = 13746,
- VFWMUL_VF = 13747,
- VFWMUL_VV = 13748,
- VFWNMACC_VF = 13749,
- VFWNMACC_VV = 13750,
- VFWNMSAC_VF = 13751,
- VFWNMSAC_VV = 13752,
- VFWREDOSUM_VS = 13753,
- VFWREDUSUM_VS = 13754,
- VFWSUB_VF = 13755,
- VFWSUB_VV = 13756,
- VFWSUB_WF = 13757,
- VFWSUB_WV = 13758,
- VGHSH_VS = 13759,
- VGHSH_VV = 13760,
- VGMUL_VS = 13761,
- VGMUL_VV = 13762,
- VID_V = 13763,
- VIOTA_M = 13764,
- VL1RE16_V = 13765,
- VL1RE32_V = 13766,
- VL1RE64_V = 13767,
- VL1RE8_V = 13768,
- VL2RE16_V = 13769,
- VL2RE32_V = 13770,
- VL2RE64_V = 13771,
- VL2RE8_V = 13772,
- VL4RE16_V = 13773,
- VL4RE32_V = 13774,
- VL4RE64_V = 13775,
- VL4RE8_V = 13776,
- VL8RE16_V = 13777,
- VL8RE32_V = 13778,
- VL8RE64_V = 13779,
- VL8RE8_V = 13780,
- VLE16FF_V = 13781,
- VLE16_V = 13782,
- VLE32FF_V = 13783,
- VLE32_V = 13784,
- VLE64FF_V = 13785,
- VLE64_V = 13786,
- VLE8FF_V = 13787,
- VLE8_V = 13788,
- VLM_V = 13789,
- VLOXEI16_V = 13790,
- VLOXEI32_V = 13791,
- VLOXEI64_V = 13792,
- VLOXEI8_V = 13793,
- VLOXSEG2EI16_V = 13794,
- VLOXSEG2EI32_V = 13795,
- VLOXSEG2EI64_V = 13796,
- VLOXSEG2EI8_V = 13797,
- VLOXSEG3EI16_V = 13798,
- VLOXSEG3EI32_V = 13799,
- VLOXSEG3EI64_V = 13800,
- VLOXSEG3EI8_V = 13801,
- VLOXSEG4EI16_V = 13802,
- VLOXSEG4EI32_V = 13803,
- VLOXSEG4EI64_V = 13804,
- VLOXSEG4EI8_V = 13805,
- VLOXSEG5EI16_V = 13806,
- VLOXSEG5EI32_V = 13807,
- VLOXSEG5EI64_V = 13808,
- VLOXSEG5EI8_V = 13809,
- VLOXSEG6EI16_V = 13810,
- VLOXSEG6EI32_V = 13811,
- VLOXSEG6EI64_V = 13812,
- VLOXSEG6EI8_V = 13813,
- VLOXSEG7EI16_V = 13814,
- VLOXSEG7EI32_V = 13815,
- VLOXSEG7EI64_V = 13816,
- VLOXSEG7EI8_V = 13817,
- VLOXSEG8EI16_V = 13818,
- VLOXSEG8EI32_V = 13819,
- VLOXSEG8EI64_V = 13820,
- VLOXSEG8EI8_V = 13821,
- VLSE16_V = 13822,
- VLSE32_V = 13823,
- VLSE64_V = 13824,
- VLSE8_V = 13825,
- VLSEG2E16FF_V = 13826,
- VLSEG2E16_V = 13827,
- VLSEG2E32FF_V = 13828,
- VLSEG2E32_V = 13829,
- VLSEG2E64FF_V = 13830,
- VLSEG2E64_V = 13831,
- VLSEG2E8FF_V = 13832,
- VLSEG2E8_V = 13833,
- VLSEG3E16FF_V = 13834,
- VLSEG3E16_V = 13835,
- VLSEG3E32FF_V = 13836,
- VLSEG3E32_V = 13837,
- VLSEG3E64FF_V = 13838,
- VLSEG3E64_V = 13839,
- VLSEG3E8FF_V = 13840,
- VLSEG3E8_V = 13841,
- VLSEG4E16FF_V = 13842,
- VLSEG4E16_V = 13843,
- VLSEG4E32FF_V = 13844,
- VLSEG4E32_V = 13845,
- VLSEG4E64FF_V = 13846,
- VLSEG4E64_V = 13847,
- VLSEG4E8FF_V = 13848,
- VLSEG4E8_V = 13849,
- VLSEG5E16FF_V = 13850,
- VLSEG5E16_V = 13851,
- VLSEG5E32FF_V = 13852,
- VLSEG5E32_V = 13853,
- VLSEG5E64FF_V = 13854,
- VLSEG5E64_V = 13855,
- VLSEG5E8FF_V = 13856,
- VLSEG5E8_V = 13857,
- VLSEG6E16FF_V = 13858,
- VLSEG6E16_V = 13859,
- VLSEG6E32FF_V = 13860,
- VLSEG6E32_V = 13861,
- VLSEG6E64FF_V = 13862,
- VLSEG6E64_V = 13863,
- VLSEG6E8FF_V = 13864,
- VLSEG6E8_V = 13865,
- VLSEG7E16FF_V = 13866,
- VLSEG7E16_V = 13867,
- VLSEG7E32FF_V = 13868,
- VLSEG7E32_V = 13869,
- VLSEG7E64FF_V = 13870,
- VLSEG7E64_V = 13871,
- VLSEG7E8FF_V = 13872,
- VLSEG7E8_V = 13873,
- VLSEG8E16FF_V = 13874,
- VLSEG8E16_V = 13875,
- VLSEG8E32FF_V = 13876,
- VLSEG8E32_V = 13877,
- VLSEG8E64FF_V = 13878,
- VLSEG8E64_V = 13879,
- VLSEG8E8FF_V = 13880,
- VLSEG8E8_V = 13881,
- VLSSEG2E16_V = 13882,
- VLSSEG2E32_V = 13883,
- VLSSEG2E64_V = 13884,
- VLSSEG2E8_V = 13885,
- VLSSEG3E16_V = 13886,
- VLSSEG3E32_V = 13887,
- VLSSEG3E64_V = 13888,
- VLSSEG3E8_V = 13889,
- VLSSEG4E16_V = 13890,
- VLSSEG4E32_V = 13891,
- VLSSEG4E64_V = 13892,
- VLSSEG4E8_V = 13893,
- VLSSEG5E16_V = 13894,
- VLSSEG5E32_V = 13895,
- VLSSEG5E64_V = 13896,
- VLSSEG5E8_V = 13897,
- VLSSEG6E16_V = 13898,
- VLSSEG6E32_V = 13899,
- VLSSEG6E64_V = 13900,
- VLSSEG6E8_V = 13901,
- VLSSEG7E16_V = 13902,
- VLSSEG7E32_V = 13903,
- VLSSEG7E64_V = 13904,
- VLSSEG7E8_V = 13905,
- VLSSEG8E16_V = 13906,
- VLSSEG8E32_V = 13907,
- VLSSEG8E64_V = 13908,
- VLSSEG8E8_V = 13909,
- VLUXEI16_V = 13910,
- VLUXEI32_V = 13911,
- VLUXEI64_V = 13912,
- VLUXEI8_V = 13913,
- VLUXSEG2EI16_V = 13914,
- VLUXSEG2EI32_V = 13915,
- VLUXSEG2EI64_V = 13916,
- VLUXSEG2EI8_V = 13917,
- VLUXSEG3EI16_V = 13918,
- VLUXSEG3EI32_V = 13919,
- VLUXSEG3EI64_V = 13920,
- VLUXSEG3EI8_V = 13921,
- VLUXSEG4EI16_V = 13922,
- VLUXSEG4EI32_V = 13923,
- VLUXSEG4EI64_V = 13924,
- VLUXSEG4EI8_V = 13925,
- VLUXSEG5EI16_V = 13926,
- VLUXSEG5EI32_V = 13927,
- VLUXSEG5EI64_V = 13928,
- VLUXSEG5EI8_V = 13929,
- VLUXSEG6EI16_V = 13930,
- VLUXSEG6EI32_V = 13931,
- VLUXSEG6EI64_V = 13932,
- VLUXSEG6EI8_V = 13933,
- VLUXSEG7EI16_V = 13934,
- VLUXSEG7EI32_V = 13935,
- VLUXSEG7EI64_V = 13936,
- VLUXSEG7EI8_V = 13937,
- VLUXSEG8EI16_V = 13938,
- VLUXSEG8EI32_V = 13939,
- VLUXSEG8EI64_V = 13940,
- VLUXSEG8EI8_V = 13941,
- VMACC_VV = 13942,
- VMACC_VX = 13943,
- VMADC_VI = 13944,
- VMADC_VIM = 13945,
- VMADC_VV = 13946,
- VMADC_VVM = 13947,
- VMADC_VX = 13948,
- VMADC_VXM = 13949,
- VMADD_VV = 13950,
- VMADD_VX = 13951,
- VMANDN_MM = 13952,
- VMAND_MM = 13953,
- VMAXU_VV = 13954,
- VMAXU_VX = 13955,
- VMAX_VV = 13956,
- VMAX_VX = 13957,
- VMERGE_VIM = 13958,
- VMERGE_VVM = 13959,
- VMERGE_VXM = 13960,
- VMFEQ_VF = 13961,
- VMFEQ_VV = 13962,
- VMFGE_VF = 13963,
- VMFGT_VF = 13964,
- VMFLE_VF = 13965,
- VMFLE_VV = 13966,
- VMFLT_VF = 13967,
- VMFLT_VV = 13968,
- VMFNE_VF = 13969,
- VMFNE_VV = 13970,
- VMINU_VV = 13971,
- VMINU_VX = 13972,
- VMIN_VV = 13973,
- VMIN_VX = 13974,
- VMNAND_MM = 13975,
- VMNOR_MM = 13976,
- VMORN_MM = 13977,
- VMOR_MM = 13978,
- VMSBC_VV = 13979,
- VMSBC_VVM = 13980,
- VMSBC_VX = 13981,
- VMSBC_VXM = 13982,
- VMSBF_M = 13983,
- VMSEQ_VI = 13984,
- VMSEQ_VV = 13985,
- VMSEQ_VX = 13986,
- VMSGTU_VI = 13987,
- VMSGTU_VX = 13988,
- VMSGT_VI = 13989,
- VMSGT_VX = 13990,
- VMSIF_M = 13991,
- VMSLEU_VI = 13992,
- VMSLEU_VV = 13993,
- VMSLEU_VX = 13994,
- VMSLE_VI = 13995,
- VMSLE_VV = 13996,
- VMSLE_VX = 13997,
- VMSLTU_VV = 13998,
- VMSLTU_VX = 13999,
- VMSLT_VV = 14000,
- VMSLT_VX = 14001,
- VMSNE_VI = 14002,
- VMSNE_VV = 14003,
- VMSNE_VX = 14004,
- VMSOF_M = 14005,
- VMULHSU_VV = 14006,
- VMULHSU_VX = 14007,
- VMULHU_VV = 14008,
- VMULHU_VX = 14009,
- VMULH_VV = 14010,
- VMULH_VX = 14011,
- VMUL_VV = 14012,
- VMUL_VX = 14013,
- VMV1R_V = 14014,
- VMV2R_V = 14015,
- VMV4R_V = 14016,
- VMV8R_V = 14017,
- VMV_S_X = 14018,
- VMV_V_I = 14019,
- VMV_V_V = 14020,
- VMV_V_X = 14021,
- VMV_X_S = 14022,
- VMXNOR_MM = 14023,
- VMXOR_MM = 14024,
- VNCLIPU_WI = 14025,
- VNCLIPU_WV = 14026,
- VNCLIPU_WX = 14027,
- VNCLIP_WI = 14028,
- VNCLIP_WV = 14029,
- VNCLIP_WX = 14030,
- VNMSAC_VV = 14031,
- VNMSAC_VX = 14032,
- VNMSUB_VV = 14033,
- VNMSUB_VX = 14034,
- VNSRA_WI = 14035,
- VNSRA_WV = 14036,
- VNSRA_WX = 14037,
- VNSRL_WI = 14038,
- VNSRL_WV = 14039,
- VNSRL_WX = 14040,
- VOR_VI = 14041,
- VOR_VV = 14042,
- VOR_VX = 14043,
- VQDOTSU_VV = 14044,
- VQDOTSU_VX = 14045,
- VQDOTUS_VX = 14046,
- VQDOTU_VV = 14047,
- VQDOTU_VX = 14048,
- VQDOT_VV = 14049,
- VQDOT_VX = 14050,
- VREDAND_VS = 14051,
- VREDMAXU_VS = 14052,
- VREDMAX_VS = 14053,
- VREDMINU_VS = 14054,
- VREDMIN_VS = 14055,
- VREDOR_VS = 14056,
- VREDSUM_VS = 14057,
- VREDXOR_VS = 14058,
- VREMU_VV = 14059,
- VREMU_VX = 14060,
- VREM_VV = 14061,
- VREM_VX = 14062,
- VREV8_V = 14063,
- VRGATHEREI16_VV = 14064,
- VRGATHER_VI = 14065,
- VRGATHER_VV = 14066,
- VRGATHER_VX = 14067,
- VROL_VV = 14068,
- VROL_VX = 14069,
- VROR_VI = 14070,
- VROR_VV = 14071,
- VROR_VX = 14072,
- VRSUB_VI = 14073,
- VRSUB_VX = 14074,
- VS1R_V = 14075,
- VS2R_V = 14076,
- VS4R_V = 14077,
- VS8R_V = 14078,
- VSADDU_VI = 14079,
- VSADDU_VV = 14080,
- VSADDU_VX = 14081,
- VSADD_VI = 14082,
- VSADD_VV = 14083,
- VSADD_VX = 14084,
- VSBC_VVM = 14085,
- VSBC_VXM = 14086,
- VSE16_V = 14087,
- VSE32_V = 14088,
- VSE64_V = 14089,
- VSE8_V = 14090,
- VSETIVLI = 14091,
- VSETVL = 14092,
- VSETVLI = 14093,
- VSEXT_VF2 = 14094,
- VSEXT_VF4 = 14095,
- VSEXT_VF8 = 14096,
- VSHA2CH_VV = 14097,
- VSHA2CL_VV = 14098,
- VSHA2MS_VV = 14099,
- VSLIDE1DOWN_VX = 14100,
- VSLIDE1UP_VX = 14101,
- VSLIDEDOWN_VI = 14102,
- VSLIDEDOWN_VX = 14103,
- VSLIDEUP_VI = 14104,
- VSLIDEUP_VX = 14105,
- VSLL_VI = 14106,
- VSLL_VV = 14107,
- VSLL_VX = 14108,
- VSM3C_VI = 14109,
- VSM3ME_VV = 14110,
- VSM4K_VI = 14111,
- VSM4R_VS = 14112,
- VSM4R_VV = 14113,
- VSMUL_VV = 14114,
- VSMUL_VX = 14115,
- VSM_V = 14116,
- VSOXEI16_V = 14117,
- VSOXEI32_V = 14118,
- VSOXEI64_V = 14119,
- VSOXEI8_V = 14120,
- VSOXSEG2EI16_V = 14121,
- VSOXSEG2EI32_V = 14122,
- VSOXSEG2EI64_V = 14123,
- VSOXSEG2EI8_V = 14124,
- VSOXSEG3EI16_V = 14125,
- VSOXSEG3EI32_V = 14126,
- VSOXSEG3EI64_V = 14127,
- VSOXSEG3EI8_V = 14128,
- VSOXSEG4EI16_V = 14129,
- VSOXSEG4EI32_V = 14130,
- VSOXSEG4EI64_V = 14131,
- VSOXSEG4EI8_V = 14132,
- VSOXSEG5EI16_V = 14133,
- VSOXSEG5EI32_V = 14134,
- VSOXSEG5EI64_V = 14135,
- VSOXSEG5EI8_V = 14136,
- VSOXSEG6EI16_V = 14137,
- VSOXSEG6EI32_V = 14138,
- VSOXSEG6EI64_V = 14139,
- VSOXSEG6EI8_V = 14140,
- VSOXSEG7EI16_V = 14141,
- VSOXSEG7EI32_V = 14142,
- VSOXSEG7EI64_V = 14143,
- VSOXSEG7EI8_V = 14144,
- VSOXSEG8EI16_V = 14145,
- VSOXSEG8EI32_V = 14146,
- VSOXSEG8EI64_V = 14147,
- VSOXSEG8EI8_V = 14148,
- VSRA_VI = 14149,
- VSRA_VV = 14150,
- VSRA_VX = 14151,
- VSRL_VI = 14152,
- VSRL_VV = 14153,
- VSRL_VX = 14154,
- VSSE16_V = 14155,
- VSSE32_V = 14156,
- VSSE64_V = 14157,
- VSSE8_V = 14158,
- VSSEG2E16_V = 14159,
- VSSEG2E32_V = 14160,
- VSSEG2E64_V = 14161,
- VSSEG2E8_V = 14162,
- VSSEG3E16_V = 14163,
- VSSEG3E32_V = 14164,
- VSSEG3E64_V = 14165,
- VSSEG3E8_V = 14166,
- VSSEG4E16_V = 14167,
- VSSEG4E32_V = 14168,
- VSSEG4E64_V = 14169,
- VSSEG4E8_V = 14170,
- VSSEG5E16_V = 14171,
- VSSEG5E32_V = 14172,
- VSSEG5E64_V = 14173,
- VSSEG5E8_V = 14174,
- VSSEG6E16_V = 14175,
- VSSEG6E32_V = 14176,
- VSSEG6E64_V = 14177,
- VSSEG6E8_V = 14178,
- VSSEG7E16_V = 14179,
- VSSEG7E32_V = 14180,
- VSSEG7E64_V = 14181,
- VSSEG7E8_V = 14182,
- VSSEG8E16_V = 14183,
- VSSEG8E32_V = 14184,
- VSSEG8E64_V = 14185,
- VSSEG8E8_V = 14186,
- VSSRA_VI = 14187,
- VSSRA_VV = 14188,
- VSSRA_VX = 14189,
- VSSRL_VI = 14190,
- VSSRL_VV = 14191,
- VSSRL_VX = 14192,
- VSSSEG2E16_V = 14193,
- VSSSEG2E32_V = 14194,
- VSSSEG2E64_V = 14195,
- VSSSEG2E8_V = 14196,
- VSSSEG3E16_V = 14197,
- VSSSEG3E32_V = 14198,
- VSSSEG3E64_V = 14199,
- VSSSEG3E8_V = 14200,
- VSSSEG4E16_V = 14201,
- VSSSEG4E32_V = 14202,
- VSSSEG4E64_V = 14203,
- VSSSEG4E8_V = 14204,
- VSSSEG5E16_V = 14205,
- VSSSEG5E32_V = 14206,
- VSSSEG5E64_V = 14207,
- VSSSEG5E8_V = 14208,
- VSSSEG6E16_V = 14209,
- VSSSEG6E32_V = 14210,
- VSSSEG6E64_V = 14211,
- VSSSEG6E8_V = 14212,
- VSSSEG7E16_V = 14213,
- VSSSEG7E32_V = 14214,
- VSSSEG7E64_V = 14215,
- VSSSEG7E8_V = 14216,
- VSSSEG8E16_V = 14217,
- VSSSEG8E32_V = 14218,
- VSSSEG8E64_V = 14219,
- VSSSEG8E8_V = 14220,
- VSSUBU_VV = 14221,
- VSSUBU_VX = 14222,
- VSSUB_VV = 14223,
- VSSUB_VX = 14224,
- VSUB_VV = 14225,
- VSUB_VX = 14226,
- VSUXEI16_V = 14227,
- VSUXEI32_V = 14228,
- VSUXEI64_V = 14229,
- VSUXEI8_V = 14230,
- VSUXSEG2EI16_V = 14231,
- VSUXSEG2EI32_V = 14232,
- VSUXSEG2EI64_V = 14233,
- VSUXSEG2EI8_V = 14234,
- VSUXSEG3EI16_V = 14235,
- VSUXSEG3EI32_V = 14236,
- VSUXSEG3EI64_V = 14237,
- VSUXSEG3EI8_V = 14238,
- VSUXSEG4EI16_V = 14239,
- VSUXSEG4EI32_V = 14240,
- VSUXSEG4EI64_V = 14241,
- VSUXSEG4EI8_V = 14242,
- VSUXSEG5EI16_V = 14243,
- VSUXSEG5EI32_V = 14244,
- VSUXSEG5EI64_V = 14245,
- VSUXSEG5EI8_V = 14246,
- VSUXSEG6EI16_V = 14247,
- VSUXSEG6EI32_V = 14248,
- VSUXSEG6EI64_V = 14249,
- VSUXSEG6EI8_V = 14250,
- VSUXSEG7EI16_V = 14251,
- VSUXSEG7EI32_V = 14252,
- VSUXSEG7EI64_V = 14253,
- VSUXSEG7EI8_V = 14254,
- VSUXSEG8EI16_V = 14255,
- VSUXSEG8EI32_V = 14256,
- VSUXSEG8EI64_V = 14257,
- VSUXSEG8EI8_V = 14258,
- VT_MASKC = 14259,
- VT_MASKCN = 14260,
- VWADDU_VV = 14261,
- VWADDU_VX = 14262,
- VWADDU_WV = 14263,
- VWADDU_WX = 14264,
- VWADD_VV = 14265,
- VWADD_VX = 14266,
- VWADD_WV = 14267,
- VWADD_WX = 14268,
- VWMACCSU_VV = 14269,
- VWMACCSU_VX = 14270,
- VWMACCUS_VX = 14271,
- VWMACCU_VV = 14272,
- VWMACCU_VX = 14273,
- VWMACC_VV = 14274,
- VWMACC_VX = 14275,
- VWMULSU_VV = 14276,
- VWMULSU_VX = 14277,
- VWMULU_VV = 14278,
- VWMULU_VX = 14279,
- VWMUL_VV = 14280,
- VWMUL_VX = 14281,
- VWREDSUMU_VS = 14282,
- VWREDSUM_VS = 14283,
- VWSLL_VI = 14284,
- VWSLL_VV = 14285,
- VWSLL_VX = 14286,
- VWSUBU_VV = 14287,
- VWSUBU_VX = 14288,
- VWSUBU_WV = 14289,
- VWSUBU_WX = 14290,
- VWSUB_VV = 14291,
- VWSUB_VX = 14292,
- VWSUB_WV = 14293,
- VWSUB_WX = 14294,
- VXOR_VI = 14295,
- VXOR_VV = 14296,
- VXOR_VX = 14297,
- VZEXT_VF2 = 14298,
- VZEXT_VF4 = 14299,
- VZEXT_VF8 = 14300,
- WFI = 14301,
- WRS_NTO = 14302,
- WRS_STO = 14303,
- XNOR = 14304,
- XOR = 14305,
- XORI = 14306,
- XPERM4 = 14307,
- XPERM8 = 14308,
- ZEXT_H_RV32 = 14309,
- ZEXT_H_RV64 = 14310,
- ZIP_RV32 = 14311,
- INSTRUCTION_LIST_END = 14312,
+ COPY_LANEMASK = 21,
+ BUNDLE = 22,
+ LIFETIME_START = 23,
+ LIFETIME_END = 24,
+ PSEUDO_PROBE = 25,
+ ARITH_FENCE = 26,
+ STACKMAP = 27,
+ FENTRY_CALL = 28,
+ PATCHPOINT = 29,
+ LOAD_STACK_GUARD = 30,
+ PREALLOCATED_SETUP = 31,
+ PREALLOCATED_ARG = 32,
+ STATEPOINT = 33,
+ LOCAL_ESCAPE = 34,
+ FAULTING_OP = 35,
+ PATCHABLE_OP = 36,
+ PATCHABLE_FUNCTION_ENTER = 37,
+ PATCHABLE_RET = 38,
+ PATCHABLE_FUNCTION_EXIT = 39,
+ PATCHABLE_TAIL_CALL = 40,
+ PATCHABLE_EVENT_CALL = 41,
+ PATCHABLE_TYPED_EVENT_CALL = 42,
+ ICALL_BRANCH_FUNNEL = 43,
+ FAKE_USE = 44,
+ MEMBARRIER = 45,
+ JUMP_TABLE_DEBUG_INFO = 46,
+ RELOC_NONE = 47,
+ CONVERGENCECTRL_ENTRY = 48,
+ CONVERGENCECTRL_ANCHOR = 49,
+ CONVERGENCECTRL_LOOP = 50,
+ CONVERGENCECTRL_GLUE = 51,
+ G_ASSERT_SEXT = 52,
+ G_ASSERT_ZEXT = 53,
+ G_ASSERT_ALIGN = 54,
+ G_ADD = 55,
+ G_SUB = 56,
+ G_MUL = 57,
+ G_SDIV = 58,
+ G_UDIV = 59,
+ G_SREM = 60,
+ G_UREM = 61,
+ G_SDIVREM = 62,
+ G_UDIVREM = 63,
+ G_AND = 64,
+ G_OR = 65,
+ G_XOR = 66,
+ G_ABDS = 67,
+ G_ABDU = 68,
+ G_UAVGFLOOR = 69,
+ G_UAVGCEIL = 70,
+ G_SAVGFLOOR = 71,
+ G_SAVGCEIL = 72,
+ G_IMPLICIT_DEF = 73,
+ G_PHI = 74,
+ G_FRAME_INDEX = 75,
+ G_GLOBAL_VALUE = 76,
+ G_PTRAUTH_GLOBAL_VALUE = 77,
+ G_CONSTANT_POOL = 78,
+ G_EXTRACT = 79,
+ G_UNMERGE_VALUES = 80,
+ G_INSERT = 81,
+ G_MERGE_VALUES = 82,
+ G_BUILD_VECTOR = 83,
+ G_BUILD_VECTOR_TRUNC = 84,
+ G_CONCAT_VECTORS = 85,
+ G_PTRTOINT = 86,
+ G_INTTOPTR = 87,
+ G_BITCAST = 88,
+ G_FREEZE = 89,
+ G_CONSTANT_FOLD_BARRIER = 90,
+ G_INTRINSIC_FPTRUNC_ROUND = 91,
+ G_INTRINSIC_TRUNC = 92,
+ G_INTRINSIC_ROUND = 93,
+ G_INTRINSIC_LRINT = 94,
+ G_INTRINSIC_LLRINT = 95,
+ G_INTRINSIC_ROUNDEVEN = 96,
+ G_READCYCLECOUNTER = 97,
+ G_READSTEADYCOUNTER = 98,
+ G_LOAD = 99,
+ G_SEXTLOAD = 100,
+ G_ZEXTLOAD = 101,
+ G_INDEXED_LOAD = 102,
+ G_INDEXED_SEXTLOAD = 103,
+ G_INDEXED_ZEXTLOAD = 104,
+ G_STORE = 105,
+ G_INDEXED_STORE = 106,
+ G_ATOMIC_CMPXCHG_WITH_SUCCESS = 107,
+ G_ATOMIC_CMPXCHG = 108,
+ G_ATOMICRMW_XCHG = 109,
+ G_ATOMICRMW_ADD = 110,
+ G_ATOMICRMW_SUB = 111,
+ G_ATOMICRMW_AND = 112,
+ G_ATOMICRMW_NAND = 113,
+ G_ATOMICRMW_OR = 114,
+ G_ATOMICRMW_XOR = 115,
+ G_ATOMICRMW_MAX = 116,
+ G_ATOMICRMW_MIN = 117,
+ G_ATOMICRMW_UMAX = 118,
+ G_ATOMICRMW_UMIN = 119,
+ G_ATOMICRMW_FADD = 120,
+ G_ATOMICRMW_FSUB = 121,
+ G_ATOMICRMW_FMAX = 122,
+ G_ATOMICRMW_FMIN = 123,
+ G_ATOMICRMW_FMAXIMUM = 124,
+ G_ATOMICRMW_FMINIMUM = 125,
+ G_ATOMICRMW_UINC_WRAP = 126,
+ G_ATOMICRMW_UDEC_WRAP = 127,
+ G_ATOMICRMW_USUB_COND = 128,
+ G_ATOMICRMW_USUB_SAT = 129,
+ G_FENCE = 130,
+ G_PREFETCH = 131,
+ G_BRCOND = 132,
+ G_BRINDIRECT = 133,
+ G_INVOKE_REGION_START = 134,
+ G_INTRINSIC = 135,
+ G_INTRINSIC_W_SIDE_EFFECTS = 136,
+ G_INTRINSIC_CONVERGENT = 137,
+ G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 138,
+ G_ANYEXT = 139,
+ G_TRUNC = 140,
+ G_TRUNC_SSAT_S = 141,
+ G_TRUNC_SSAT_U = 142,
+ G_TRUNC_USAT_U = 143,
+ G_CONSTANT = 144,
+ G_FCONSTANT = 145,
+ G_VASTART = 146,
+ G_VAARG = 147,
+ G_SEXT = 148,
+ G_SEXT_INREG = 149,
+ G_ZEXT = 150,
+ G_SHL = 151,
+ G_LSHR = 152,
+ G_ASHR = 153,
+ G_FSHL = 154,
+ G_FSHR = 155,
+ G_ROTR = 156,
+ G_ROTL = 157,
+ G_ICMP = 158,
+ G_FCMP = 159,
+ G_SCMP = 160,
+ G_UCMP = 161,
+ G_SELECT = 162,
+ G_UADDO = 163,
+ G_UADDE = 164,
+ G_USUBO = 165,
+ G_USUBE = 166,
+ G_SADDO = 167,
+ G_SADDE = 168,
+ G_SSUBO = 169,
+ G_SSUBE = 170,
+ G_UMULO = 171,
+ G_SMULO = 172,
+ G_UMULH = 173,
+ G_SMULH = 174,
+ G_UADDSAT = 175,
+ G_SADDSAT = 176,
+ G_USUBSAT = 177,
+ G_SSUBSAT = 178,
+ G_USHLSAT = 179,
+ G_SSHLSAT = 180,
+ G_SMULFIX = 181,
+ G_UMULFIX = 182,
+ G_SMULFIXSAT = 183,
+ G_UMULFIXSAT = 184,
+ G_SDIVFIX = 185,
+ G_UDIVFIX = 186,
+ G_SDIVFIXSAT = 187,
+ G_UDIVFIXSAT = 188,
+ G_FADD = 189,
+ G_FSUB = 190,
+ G_FMUL = 191,
+ G_FMA = 192,
+ G_FMAD = 193,
+ G_FDIV = 194,
+ G_FREM = 195,
+ G_FMODF = 196,
+ G_FPOW = 197,
+ G_FPOWI = 198,
+ G_FEXP = 199,
+ G_FEXP2 = 200,
+ G_FEXP10 = 201,
+ G_FLOG = 202,
+ G_FLOG2 = 203,
+ G_FLOG10 = 204,
+ G_FLDEXP = 205,
+ G_FFREXP = 206,
+ G_FNEG = 207,
+ G_FPEXT = 208,
+ G_FPTRUNC = 209,
+ G_FPTOSI = 210,
+ G_FPTOUI = 211,
+ G_SITOFP = 212,
+ G_UITOFP = 213,
+ G_FPTOSI_SAT = 214,
+ G_FPTOUI_SAT = 215,
+ G_FABS = 216,
+ G_FCOPYSIGN = 217,
+ G_IS_FPCLASS = 218,
+ G_FCANONICALIZE = 219,
+ G_FMINNUM = 220,
+ G_FMAXNUM = 221,
+ G_FMINNUM_IEEE = 222,
+ G_FMAXNUM_IEEE = 223,
+ G_FMINIMUM = 224,
+ G_FMAXIMUM = 225,
+ G_FMINIMUMNUM = 226,
+ G_FMAXIMUMNUM = 227,
+ G_GET_FPENV = 228,
+ G_SET_FPENV = 229,
+ G_RESET_FPENV = 230,
+ G_GET_FPMODE = 231,
+ G_SET_FPMODE = 232,
+ G_RESET_FPMODE = 233,
+ G_GET_ROUNDING = 234,
+ G_SET_ROUNDING = 235,
+ G_PTR_ADD = 236,
+ G_PTRMASK = 237,
+ G_SMIN = 238,
+ G_SMAX = 239,
+ G_UMIN = 240,
+ G_UMAX = 241,
+ G_ABS = 242,
+ G_LROUND = 243,
+ G_LLROUND = 244,
+ G_BR = 245,
+ G_BRJT = 246,
+ G_VSCALE = 247,
+ G_INSERT_SUBVECTOR = 248,
+ G_EXTRACT_SUBVECTOR = 249,
+ G_INSERT_VECTOR_ELT = 250,
+ G_EXTRACT_VECTOR_ELT = 251,
+ G_SHUFFLE_VECTOR = 252,
+ G_SPLAT_VECTOR = 253,
+ G_STEP_VECTOR = 254,
+ G_VECTOR_COMPRESS = 255,
+ G_CTTZ = 256,
+ G_CTTZ_ZERO_UNDEF = 257,
+ G_CTLZ = 258,
+ G_CTLZ_ZERO_UNDEF = 259,
+ G_CTPOP = 260,
+ G_BSWAP = 261,
+ G_BITREVERSE = 262,
+ G_FCEIL = 263,
+ G_FCOS = 264,
+ G_FSIN = 265,
+ G_FSINCOS = 266,
+ G_FTAN = 267,
+ G_FACOS = 268,
+ G_FASIN = 269,
+ G_FATAN = 270,
+ G_FATAN2 = 271,
+ G_FCOSH = 272,
+ G_FSINH = 273,
+ G_FTANH = 274,
+ G_FSQRT = 275,
+ G_FFLOOR = 276,
+ G_FRINT = 277,
+ G_FNEARBYINT = 278,
+ G_ADDRSPACE_CAST = 279,
+ G_BLOCK_ADDR = 280,
+ G_JUMP_TABLE = 281,
+ G_DYN_STACKALLOC = 282,
+ G_STACKSAVE = 283,
+ G_STACKRESTORE = 284,
+ G_STRICT_FADD = 285,
+ G_STRICT_FSUB = 286,
+ G_STRICT_FMUL = 287,
+ G_STRICT_FDIV = 288,
+ G_STRICT_FREM = 289,
+ G_STRICT_FMA = 290,
+ G_STRICT_FSQRT = 291,
+ G_STRICT_FLDEXP = 292,
+ G_READ_REGISTER = 293,
+ G_WRITE_REGISTER = 294,
+ G_MEMCPY = 295,
+ G_MEMCPY_INLINE = 296,
+ G_MEMMOVE = 297,
+ G_MEMSET = 298,
+ G_BZERO = 299,
+ G_TRAP = 300,
+ G_DEBUGTRAP = 301,
+ G_UBSANTRAP = 302,
+ G_VECREDUCE_SEQ_FADD = 303,
+ G_VECREDUCE_SEQ_FMUL = 304,
+ G_VECREDUCE_FADD = 305,
+ G_VECREDUCE_FMUL = 306,
+ G_VECREDUCE_FMAX = 307,
+ G_VECREDUCE_FMIN = 308,
+ G_VECREDUCE_FMAXIMUM = 309,
+ G_VECREDUCE_FMINIMUM = 310,
+ G_VECREDUCE_ADD = 311,
+ G_VECREDUCE_MUL = 312,
+ G_VECREDUCE_AND = 313,
+ G_VECREDUCE_OR = 314,
+ G_VECREDUCE_XOR = 315,
+ G_VECREDUCE_SMAX = 316,
+ G_VECREDUCE_SMIN = 317,
+ G_VECREDUCE_UMAX = 318,
+ G_VECREDUCE_UMIN = 319,
+ G_SBFX = 320,
+ G_UBFX = 321,
+ ADJCALLSTACKDOWN = 322,
+ ADJCALLSTACKUP = 323,
+ BuildPairF64Pseudo = 324,
+ ClearFCSR = 325,
+ ClearFCSRImm = 326,
+ G_CLZW = 327,
+ G_CTZW = 328,
+ G_DIVUW = 329,
+ G_DIVW = 330,
+ G_FCLASS = 331,
+ G_FCVT_WU_RV64 = 332,
+ G_FCVT_W_RV64 = 333,
+ G_READ_VLENB = 334,
+ G_REMUW = 335,
+ G_ROLW = 336,
+ G_RORW = 337,
+ G_SLLW = 338,
+ G_SPLAT_VECTOR_SPLIT_I64_VL = 339,
+ G_SRAW = 340,
+ G_SRLW = 341,
+ G_VMCLR_VL = 342,
+ G_VMSET_VL = 343,
+ G_VMV_V_V_VL = 344,
+ G_VSLIDEDOWN_VL = 345,
+ G_VSLIDEUP_VL = 346,
+ HWASAN_CHECK_MEMACCESS_SHORTGRANULES = 347,
+ KCFI_CHECK = 348,
+ PROBED_STACKALLOC = 349,
+ PROBED_STACKALLOC_DYN = 350,
+ PROBED_STACKALLOC_RVV = 351,
+ PseudoAddTPRel = 352,
+ PseudoAtomicLoadAdd32 = 353,
+ PseudoAtomicLoadAdd64 = 354,
+ PseudoAtomicLoadAnd32 = 355,
+ PseudoAtomicLoadAnd64 = 356,
+ PseudoAtomicLoadMax32 = 357,
+ PseudoAtomicLoadMax64 = 358,
+ PseudoAtomicLoadMin32 = 359,
+ PseudoAtomicLoadMin64 = 360,
+ PseudoAtomicLoadNand32 = 361,
+ PseudoAtomicLoadNand64 = 362,
+ PseudoAtomicLoadOr32 = 363,
+ PseudoAtomicLoadOr64 = 364,
+ PseudoAtomicLoadSub32 = 365,
+ PseudoAtomicLoadSub64 = 366,
+ PseudoAtomicLoadUMax32 = 367,
+ PseudoAtomicLoadUMax64 = 368,
+ PseudoAtomicLoadUMin32 = 369,
+ PseudoAtomicLoadUMin64 = 370,
+ PseudoAtomicLoadXor32 = 371,
+ PseudoAtomicLoadXor64 = 372,
+ PseudoAtomicSwap32 = 373,
+ PseudoAtomicSwap64 = 374,
+ PseudoBR = 375,
+ PseudoBRIND = 376,
+ PseudoBRINDNonX7 = 377,
+ PseudoBRINDX7 = 378,
+ PseudoCALL = 379,
+ PseudoCALLIndirect = 380,
+ PseudoCALLIndirectNonX7 = 381,
+ PseudoCALLIndirectX7 = 382,
+ PseudoCALLReg = 383,
+ PseudoCCADD = 384,
+ PseudoCCADDI = 385,
+ PseudoCCADDIW = 386,
+ PseudoCCADDW = 387,
+ PseudoCCAND = 388,
+ PseudoCCANDI = 389,
+ PseudoCCANDN = 390,
+ PseudoCCLB = 391,
+ PseudoCCLBU = 392,
+ PseudoCCLD = 393,
+ PseudoCCLH = 394,
+ PseudoCCLHU = 395,
+ PseudoCCLUI = 396,
+ PseudoCCLW = 397,
+ PseudoCCLWU = 398,
+ PseudoCCMAX = 399,
+ PseudoCCMAXU = 400,
+ PseudoCCMIN = 401,
+ PseudoCCMINU = 402,
+ PseudoCCMOVGPR = 403,
+ PseudoCCMOVGPRNoX0 = 404,
+ PseudoCCMUL = 405,
+ PseudoCCNDS_BFOS = 406,
+ PseudoCCNDS_BFOZ = 407,
+ PseudoCCOR = 408,
+ PseudoCCORI = 409,
+ PseudoCCORN = 410,
+ PseudoCCQC_E_LB = 411,
+ PseudoCCQC_E_LBU = 412,
+ PseudoCCQC_E_LH = 413,
+ PseudoCCQC_E_LHU = 414,
+ PseudoCCQC_E_LI = 415,
+ PseudoCCQC_E_LW = 416,
+ PseudoCCQC_LI = 417,
+ PseudoCCSLL = 418,
+ PseudoCCSLLI = 419,
+ PseudoCCSLLIW = 420,
+ PseudoCCSLLW = 421,
+ PseudoCCSRA = 422,
+ PseudoCCSRAI = 423,
+ PseudoCCSRAIW = 424,
+ PseudoCCSRAW = 425,
+ PseudoCCSRL = 426,
+ PseudoCCSRLI = 427,
+ PseudoCCSRLIW = 428,
+ PseudoCCSRLW = 429,
+ PseudoCCSUB = 430,
+ PseudoCCSUBW = 431,
+ PseudoCCXNOR = 432,
+ PseudoCCXOR = 433,
+ PseudoCCXORI = 434,
+ PseudoCV_ELW = 435,
+ PseudoC_ADDI_NOP = 436,
+ PseudoCmpXchg32 = 437,
+ PseudoCmpXchg64 = 438,
+ PseudoFLD = 439,
+ PseudoFLH = 440,
+ PseudoFLQ = 441,
+ PseudoFLW = 442,
+ PseudoFROUND_D = 443,
+ PseudoFROUND_D_IN32X = 444,
+ PseudoFROUND_D_INX = 445,
+ PseudoFROUND_H = 446,
+ PseudoFROUND_H_INX = 447,
+ PseudoFROUND_S = 448,
+ PseudoFROUND_S_INX = 449,
+ PseudoFSD = 450,
+ PseudoFSH = 451,
+ PseudoFSQ = 452,
+ PseudoFSW = 453,
+ PseudoJump = 454,
+ PseudoLA = 455,
+ PseudoLAImm = 456,
+ PseudoLA_TLSDESC = 457,
+ PseudoLA_TLS_GD = 458,
+ PseudoLA_TLS_IE = 459,
+ PseudoLB = 460,
+ PseudoLBU = 461,
+ PseudoLD = 462,
+ PseudoLD_RV32 = 463,
+ PseudoLD_RV32_OPT = 464,
+ PseudoLGA = 465,
+ PseudoLH = 466,
+ PseudoLHU = 467,
+ PseudoLI = 468,
+ PseudoLLA = 469,
+ PseudoLLAImm = 470,
+ PseudoLW = 471,
+ PseudoLWU = 472,
+ PseudoLongBEQ = 473,
+ PseudoLongBEQI = 474,
+ PseudoLongBGE = 475,
+ PseudoLongBGEU = 476,
+ PseudoLongBLT = 477,
+ PseudoLongBLTU = 478,
+ PseudoLongBNE = 479,
+ PseudoLongBNEI = 480,
+ PseudoLongQC_BEQI = 481,
+ PseudoLongQC_BGEI = 482,
+ PseudoLongQC_BGEUI = 483,
+ PseudoLongQC_BLTI = 484,
+ PseudoLongQC_BLTUI = 485,
+ PseudoLongQC_BNEI = 486,
+ PseudoLongQC_E_BEQI = 487,
+ PseudoLongQC_E_BGEI = 488,
+ PseudoLongQC_E_BGEUI = 489,
+ PseudoLongQC_E_BLTI = 490,
+ PseudoLongQC_E_BLTUI = 491,
+ PseudoLongQC_E_BNEI = 492,
+ PseudoMOP_C_SSPUSH = 493,
+ PseudoMOP_SSPOPCHK = 494,
+ PseudoMOP_SSPUSH = 495,
+ PseudoMV_FPR16INX = 496,
+ PseudoMV_FPR32INX = 497,
+ PseudoMaskedAtomicLoadAdd32 = 498,
+ PseudoMaskedAtomicLoadMax32 = 499,
+ PseudoMaskedAtomicLoadMin32 = 500,
+ PseudoMaskedAtomicLoadNand32 = 501,
+ PseudoMaskedAtomicLoadSub32 = 502,
+ PseudoMaskedAtomicLoadUMax32 = 503,
+ PseudoMaskedAtomicLoadUMin32 = 504,
+ PseudoMaskedAtomicSwap32 = 505,
+ PseudoMaskedCmpXchg32 = 506,
+ PseudoMovAddr = 507,
+ PseudoMovImm = 508,
+ PseudoNDS_VD4DOTSU_VV_M1 = 509,
+ PseudoNDS_VD4DOTSU_VV_M1_MASK = 510,
+ PseudoNDS_VD4DOTSU_VV_M2 = 511,
+ PseudoNDS_VD4DOTSU_VV_M2_MASK = 512,
+ PseudoNDS_VD4DOTSU_VV_M4 = 513,
+ PseudoNDS_VD4DOTSU_VV_M4_MASK = 514,
+ PseudoNDS_VD4DOTSU_VV_M8 = 515,
+ PseudoNDS_VD4DOTSU_VV_M8_MASK = 516,
+ PseudoNDS_VD4DOTSU_VV_MF2 = 517,
+ PseudoNDS_VD4DOTSU_VV_MF2_MASK = 518,
+ PseudoNDS_VD4DOTS_VV_M1 = 519,
+ PseudoNDS_VD4DOTS_VV_M1_MASK = 520,
+ PseudoNDS_VD4DOTS_VV_M2 = 521,
+ PseudoNDS_VD4DOTS_VV_M2_MASK = 522,
+ PseudoNDS_VD4DOTS_VV_M4 = 523,
+ PseudoNDS_VD4DOTS_VV_M4_MASK = 524,
+ PseudoNDS_VD4DOTS_VV_M8 = 525,
+ PseudoNDS_VD4DOTS_VV_M8_MASK = 526,
+ PseudoNDS_VD4DOTS_VV_MF2 = 527,
+ PseudoNDS_VD4DOTS_VV_MF2_MASK = 528,
+ PseudoNDS_VD4DOTU_VV_M1 = 529,
+ PseudoNDS_VD4DOTU_VV_M1_MASK = 530,
+ PseudoNDS_VD4DOTU_VV_M2 = 531,
+ PseudoNDS_VD4DOTU_VV_M2_MASK = 532,
+ PseudoNDS_VD4DOTU_VV_M4 = 533,
+ PseudoNDS_VD4DOTU_VV_M4_MASK = 534,
+ PseudoNDS_VD4DOTU_VV_M8 = 535,
+ PseudoNDS_VD4DOTU_VV_M8_MASK = 536,
+ PseudoNDS_VD4DOTU_VV_MF2 = 537,
+ PseudoNDS_VD4DOTU_VV_MF2_MASK = 538,
+ PseudoNDS_VFNCVT_BF16_S_M1 = 539,
+ PseudoNDS_VFNCVT_BF16_S_M2 = 540,
+ PseudoNDS_VFNCVT_BF16_S_M4 = 541,
+ PseudoNDS_VFNCVT_BF16_S_MF2 = 542,
+ PseudoNDS_VFNCVT_BF16_S_MF4 = 543,
+ PseudoNDS_VFPMADB_VFPR16_M1 = 544,
+ PseudoNDS_VFPMADB_VFPR16_M1_MASK = 545,
+ PseudoNDS_VFPMADB_VFPR16_M2 = 546,
+ PseudoNDS_VFPMADB_VFPR16_M2_MASK = 547,
+ PseudoNDS_VFPMADB_VFPR16_M4 = 548,
+ PseudoNDS_VFPMADB_VFPR16_M4_MASK = 549,
+ PseudoNDS_VFPMADB_VFPR16_M8 = 550,
+ PseudoNDS_VFPMADB_VFPR16_M8_MASK = 551,
+ PseudoNDS_VFPMADB_VFPR16_MF2 = 552,
+ PseudoNDS_VFPMADB_VFPR16_MF2_MASK = 553,
+ PseudoNDS_VFPMADB_VFPR16_MF4 = 554,
+ PseudoNDS_VFPMADB_VFPR16_MF4_MASK = 555,
+ PseudoNDS_VFPMADT_VFPR16_M1 = 556,
+ PseudoNDS_VFPMADT_VFPR16_M1_MASK = 557,
+ PseudoNDS_VFPMADT_VFPR16_M2 = 558,
+ PseudoNDS_VFPMADT_VFPR16_M2_MASK = 559,
+ PseudoNDS_VFPMADT_VFPR16_M4 = 560,
+ PseudoNDS_VFPMADT_VFPR16_M4_MASK = 561,
+ PseudoNDS_VFPMADT_VFPR16_M8 = 562,
+ PseudoNDS_VFPMADT_VFPR16_M8_MASK = 563,
+ PseudoNDS_VFPMADT_VFPR16_MF2 = 564,
+ PseudoNDS_VFPMADT_VFPR16_MF2_MASK = 565,
+ PseudoNDS_VFPMADT_VFPR16_MF4 = 566,
+ PseudoNDS_VFPMADT_VFPR16_MF4_MASK = 567,
+ PseudoNDS_VFWCVT_S_BF16_M1 = 568,
+ PseudoNDS_VFWCVT_S_BF16_M2 = 569,
+ PseudoNDS_VFWCVT_S_BF16_M4 = 570,
+ PseudoNDS_VFWCVT_S_BF16_MF2 = 571,
+ PseudoNDS_VFWCVT_S_BF16_MF4 = 572,
+ PseudoNDS_VLN8_V_M1 = 573,
+ PseudoNDS_VLN8_V_M1_MASK = 574,
+ PseudoNDS_VLN8_V_M2 = 575,
+ PseudoNDS_VLN8_V_M2_MASK = 576,
+ PseudoNDS_VLN8_V_M4 = 577,
+ PseudoNDS_VLN8_V_M4_MASK = 578,
+ PseudoNDS_VLN8_V_M8 = 579,
+ PseudoNDS_VLN8_V_M8_MASK = 580,
+ PseudoNDS_VLN8_V_MF2 = 581,
+ PseudoNDS_VLN8_V_MF2_MASK = 582,
+ PseudoNDS_VLN8_V_MF4 = 583,
+ PseudoNDS_VLN8_V_MF4_MASK = 584,
+ PseudoNDS_VLN8_V_MF8 = 585,
+ PseudoNDS_VLN8_V_MF8_MASK = 586,
+ PseudoNDS_VLNU8_V_M1 = 587,
+ PseudoNDS_VLNU8_V_M1_MASK = 588,
+ PseudoNDS_VLNU8_V_M2 = 589,
+ PseudoNDS_VLNU8_V_M2_MASK = 590,
+ PseudoNDS_VLNU8_V_M4 = 591,
+ PseudoNDS_VLNU8_V_M4_MASK = 592,
+ PseudoNDS_VLNU8_V_M8 = 593,
+ PseudoNDS_VLNU8_V_M8_MASK = 594,
+ PseudoNDS_VLNU8_V_MF2 = 595,
+ PseudoNDS_VLNU8_V_MF2_MASK = 596,
+ PseudoNDS_VLNU8_V_MF4 = 597,
+ PseudoNDS_VLNU8_V_MF4_MASK = 598,
+ PseudoNDS_VLNU8_V_MF8 = 599,
+ PseudoNDS_VLNU8_V_MF8_MASK = 600,
+ PseudoQC_E_LB = 601,
+ PseudoQC_E_LBU = 602,
+ PseudoQC_E_LH = 603,
+ PseudoQC_E_LHU = 604,
+ PseudoQC_E_LW = 605,
+ PseudoQC_E_SB = 606,
+ PseudoQC_E_SH = 607,
+ PseudoQC_E_SW = 608,
+ PseudoQuietFLE_D = 609,
+ PseudoQuietFLE_D_IN32X = 610,
+ PseudoQuietFLE_D_INX = 611,
+ PseudoQuietFLE_H = 612,
+ PseudoQuietFLE_H_INX = 613,
+ PseudoQuietFLE_S = 614,
+ PseudoQuietFLE_S_INX = 615,
+ PseudoQuietFLT_D = 616,
+ PseudoQuietFLT_D_IN32X = 617,
+ PseudoQuietFLT_D_INX = 618,
+ PseudoQuietFLT_H = 619,
+ PseudoQuietFLT_H_INX = 620,
+ PseudoQuietFLT_S = 621,
+ PseudoQuietFLT_S_INX = 622,
+ PseudoRET = 623,
+ PseudoRI_VEXTRACT_M1 = 624,
+ PseudoRI_VEXTRACT_M2 = 625,
+ PseudoRI_VEXTRACT_M4 = 626,
+ PseudoRI_VEXTRACT_M8 = 627,
+ PseudoRI_VEXTRACT_MF2 = 628,
+ PseudoRI_VEXTRACT_MF4 = 629,
+ PseudoRI_VEXTRACT_MF8 = 630,
+ PseudoRI_VINSERT_M1 = 631,
+ PseudoRI_VINSERT_M2 = 632,
+ PseudoRI_VINSERT_M4 = 633,
+ PseudoRI_VINSERT_M8 = 634,
+ PseudoRI_VINSERT_MF2 = 635,
+ PseudoRI_VINSERT_MF4 = 636,
+ PseudoRI_VINSERT_MF8 = 637,
+ PseudoRI_VUNZIP2A_VV_M1 = 638,
+ PseudoRI_VUNZIP2A_VV_M1_MASK = 639,
+ PseudoRI_VUNZIP2A_VV_M2 = 640,
+ PseudoRI_VUNZIP2A_VV_M2_MASK = 641,
+ PseudoRI_VUNZIP2A_VV_M4 = 642,
+ PseudoRI_VUNZIP2A_VV_M4_MASK = 643,
+ PseudoRI_VUNZIP2A_VV_M8 = 644,
+ PseudoRI_VUNZIP2A_VV_M8_MASK = 645,
+ PseudoRI_VUNZIP2A_VV_MF2 = 646,
+ PseudoRI_VUNZIP2A_VV_MF2_MASK = 647,
+ PseudoRI_VUNZIP2A_VV_MF4 = 648,
+ PseudoRI_VUNZIP2A_VV_MF4_MASK = 649,
+ PseudoRI_VUNZIP2A_VV_MF8 = 650,
+ PseudoRI_VUNZIP2A_VV_MF8_MASK = 651,
+ PseudoRI_VUNZIP2B_VV_M1 = 652,
+ PseudoRI_VUNZIP2B_VV_M1_MASK = 653,
+ PseudoRI_VUNZIP2B_VV_M2 = 654,
+ PseudoRI_VUNZIP2B_VV_M2_MASK = 655,
+ PseudoRI_VUNZIP2B_VV_M4 = 656,
+ PseudoRI_VUNZIP2B_VV_M4_MASK = 657,
+ PseudoRI_VUNZIP2B_VV_M8 = 658,
+ PseudoRI_VUNZIP2B_VV_M8_MASK = 659,
+ PseudoRI_VUNZIP2B_VV_MF2 = 660,
+ PseudoRI_VUNZIP2B_VV_MF2_MASK = 661,
+ PseudoRI_VUNZIP2B_VV_MF4 = 662,
+ PseudoRI_VUNZIP2B_VV_MF4_MASK = 663,
+ PseudoRI_VUNZIP2B_VV_MF8 = 664,
+ PseudoRI_VUNZIP2B_VV_MF8_MASK = 665,
+ PseudoRI_VZIP2A_VV_M1 = 666,
+ PseudoRI_VZIP2A_VV_M1_MASK = 667,
+ PseudoRI_VZIP2A_VV_M2 = 668,
+ PseudoRI_VZIP2A_VV_M2_MASK = 669,
+ PseudoRI_VZIP2A_VV_M4 = 670,
+ PseudoRI_VZIP2A_VV_M4_MASK = 671,
+ PseudoRI_VZIP2A_VV_M8 = 672,
+ PseudoRI_VZIP2A_VV_M8_MASK = 673,
+ PseudoRI_VZIP2A_VV_MF2 = 674,
+ PseudoRI_VZIP2A_VV_MF2_MASK = 675,
+ PseudoRI_VZIP2A_VV_MF4 = 676,
+ PseudoRI_VZIP2A_VV_MF4_MASK = 677,
+ PseudoRI_VZIP2A_VV_MF8 = 678,
+ PseudoRI_VZIP2A_VV_MF8_MASK = 679,
+ PseudoRI_VZIP2B_VV_M1 = 680,
+ PseudoRI_VZIP2B_VV_M1_MASK = 681,
+ PseudoRI_VZIP2B_VV_M2 = 682,
+ PseudoRI_VZIP2B_VV_M2_MASK = 683,
+ PseudoRI_VZIP2B_VV_M4 = 684,
+ PseudoRI_VZIP2B_VV_M4_MASK = 685,
+ PseudoRI_VZIP2B_VV_M8 = 686,
+ PseudoRI_VZIP2B_VV_M8_MASK = 687,
+ PseudoRI_VZIP2B_VV_MF2 = 688,
+ PseudoRI_VZIP2B_VV_MF2_MASK = 689,
+ PseudoRI_VZIP2B_VV_MF4 = 690,
+ PseudoRI_VZIP2B_VV_MF4_MASK = 691,
+ PseudoRI_VZIP2B_VV_MF8 = 692,
+ PseudoRI_VZIP2B_VV_MF8_MASK = 693,
+ PseudoRI_VZIPEVEN_VV_M1 = 694,
+ PseudoRI_VZIPEVEN_VV_M1_MASK = 695,
+ PseudoRI_VZIPEVEN_VV_M2 = 696,
+ PseudoRI_VZIPEVEN_VV_M2_MASK = 697,
+ PseudoRI_VZIPEVEN_VV_M4 = 698,
+ PseudoRI_VZIPEVEN_VV_M4_MASK = 699,
+ PseudoRI_VZIPEVEN_VV_M8 = 700,
+ PseudoRI_VZIPEVEN_VV_M8_MASK = 701,
+ PseudoRI_VZIPEVEN_VV_MF2 = 702,
+ PseudoRI_VZIPEVEN_VV_MF2_MASK = 703,
+ PseudoRI_VZIPEVEN_VV_MF4 = 704,
+ PseudoRI_VZIPEVEN_VV_MF4_MASK = 705,
+ PseudoRI_VZIPEVEN_VV_MF8 = 706,
+ PseudoRI_VZIPEVEN_VV_MF8_MASK = 707,
+ PseudoRI_VZIPODD_VV_M1 = 708,
+ PseudoRI_VZIPODD_VV_M1_MASK = 709,
+ PseudoRI_VZIPODD_VV_M2 = 710,
+ PseudoRI_VZIPODD_VV_M2_MASK = 711,
+ PseudoRI_VZIPODD_VV_M4 = 712,
+ PseudoRI_VZIPODD_VV_M4_MASK = 713,
+ PseudoRI_VZIPODD_VV_M8 = 714,
+ PseudoRI_VZIPODD_VV_M8_MASK = 715,
+ PseudoRI_VZIPODD_VV_MF2 = 716,
+ PseudoRI_VZIPODD_VV_MF2_MASK = 717,
+ PseudoRI_VZIPODD_VV_MF4 = 718,
+ PseudoRI_VZIPODD_VV_MF4_MASK = 719,
+ PseudoRI_VZIPODD_VV_MF8 = 720,
+ PseudoRI_VZIPODD_VV_MF8_MASK = 721,
+ PseudoRV32ZdinxLD = 722,
+ PseudoRV32ZdinxSD = 723,
+ PseudoReadVL = 724,
+ PseudoReadVLENB = 725,
+ PseudoReadVLENBViaVSETVLIX0 = 726,
+ PseudoSB = 727,
+ PseudoSD = 728,
+ PseudoSD_RV32 = 729,
+ PseudoSD_RV32_OPT = 730,
+ PseudoSEXT_B = 731,
+ PseudoSEXT_H = 732,
+ PseudoSF_MM_E4M3_E4M3 = 733,
+ PseudoSF_MM_E4M3_E5M2 = 734,
+ PseudoSF_MM_E5M2_E4M3 = 735,
+ PseudoSF_MM_E5M2_E5M2 = 736,
+ PseudoSF_MM_F_F = 737,
+ PseudoSF_MM_F_F_ALT = 738,
+ PseudoSF_MM_S_S = 739,
+ PseudoSF_MM_S_U = 740,
+ PseudoSF_MM_U_S = 741,
+ PseudoSF_MM_U_U = 742,
+ PseudoSF_VC_FPR16VV_SE_M1 = 743,
+ PseudoSF_VC_FPR16VV_SE_M2 = 744,
+ PseudoSF_VC_FPR16VV_SE_M4 = 745,
+ PseudoSF_VC_FPR16VV_SE_M8 = 746,
+ PseudoSF_VC_FPR16VV_SE_MF2 = 747,
+ PseudoSF_VC_FPR16VV_SE_MF4 = 748,
+ PseudoSF_VC_FPR16VW_SE_M1 = 749,
+ PseudoSF_VC_FPR16VW_SE_M2 = 750,
+ PseudoSF_VC_FPR16VW_SE_M4 = 751,
+ PseudoSF_VC_FPR16VW_SE_M8 = 752,
+ PseudoSF_VC_FPR16VW_SE_MF2 = 753,
+ PseudoSF_VC_FPR16VW_SE_MF4 = 754,
+ PseudoSF_VC_FPR16V_SE_M1 = 755,
+ PseudoSF_VC_FPR16V_SE_M2 = 756,
+ PseudoSF_VC_FPR16V_SE_M4 = 757,
+ PseudoSF_VC_FPR16V_SE_M8 = 758,
+ PseudoSF_VC_FPR16V_SE_MF2 = 759,
+ PseudoSF_VC_FPR16V_SE_MF4 = 760,
+ PseudoSF_VC_FPR32VV_SE_M1 = 761,
+ PseudoSF_VC_FPR32VV_SE_M2 = 762,
+ PseudoSF_VC_FPR32VV_SE_M4 = 763,
+ PseudoSF_VC_FPR32VV_SE_M8 = 764,
+ PseudoSF_VC_FPR32VV_SE_MF2 = 765,
+ PseudoSF_VC_FPR32VW_SE_M1 = 766,
+ PseudoSF_VC_FPR32VW_SE_M2 = 767,
+ PseudoSF_VC_FPR32VW_SE_M4 = 768,
+ PseudoSF_VC_FPR32VW_SE_M8 = 769,
+ PseudoSF_VC_FPR32VW_SE_MF2 = 770,
+ PseudoSF_VC_FPR32V_SE_M1 = 771,
+ PseudoSF_VC_FPR32V_SE_M2 = 772,
+ PseudoSF_VC_FPR32V_SE_M4 = 773,
+ PseudoSF_VC_FPR32V_SE_M8 = 774,
+ PseudoSF_VC_FPR32V_SE_MF2 = 775,
+ PseudoSF_VC_FPR64VV_SE_M1 = 776,
+ PseudoSF_VC_FPR64VV_SE_M2 = 777,
+ PseudoSF_VC_FPR64VV_SE_M4 = 778,
+ PseudoSF_VC_FPR64VV_SE_M8 = 779,
+ PseudoSF_VC_FPR64V_SE_M1 = 780,
+ PseudoSF_VC_FPR64V_SE_M2 = 781,
+ PseudoSF_VC_FPR64V_SE_M4 = 782,
+ PseudoSF_VC_FPR64V_SE_M8 = 783,
+ PseudoSF_VC_IVV_SE_M1 = 784,
+ PseudoSF_VC_IVV_SE_M2 = 785,
+ PseudoSF_VC_IVV_SE_M4 = 786,
+ PseudoSF_VC_IVV_SE_M8 = 787,
+ PseudoSF_VC_IVV_SE_MF2 = 788,
+ PseudoSF_VC_IVV_SE_MF4 = 789,
+ PseudoSF_VC_IVV_SE_MF8 = 790,
+ PseudoSF_VC_IVW_SE_M1 = 791,
+ PseudoSF_VC_IVW_SE_M2 = 792,
+ PseudoSF_VC_IVW_SE_M4 = 793,
+ PseudoSF_VC_IVW_SE_MF2 = 794,
+ PseudoSF_VC_IVW_SE_MF4 = 795,
+ PseudoSF_VC_IVW_SE_MF8 = 796,
+ PseudoSF_VC_IV_SE_M1 = 797,
+ PseudoSF_VC_IV_SE_M2 = 798,
+ PseudoSF_VC_IV_SE_M4 = 799,
+ PseudoSF_VC_IV_SE_M8 = 800,
+ PseudoSF_VC_IV_SE_MF2 = 801,
+ PseudoSF_VC_IV_SE_MF4 = 802,
+ PseudoSF_VC_IV_SE_MF8 = 803,
+ PseudoSF_VC_I_SE_M1 = 804,
+ PseudoSF_VC_I_SE_M2 = 805,
+ PseudoSF_VC_I_SE_M4 = 806,
+ PseudoSF_VC_I_SE_M8 = 807,
+ PseudoSF_VC_I_SE_MF2 = 808,
+ PseudoSF_VC_I_SE_MF4 = 809,
+ PseudoSF_VC_I_SE_MF8 = 810,
+ PseudoSF_VC_VVV_SE_M1 = 811,
+ PseudoSF_VC_VVV_SE_M2 = 812,
+ PseudoSF_VC_VVV_SE_M4 = 813,
+ PseudoSF_VC_VVV_SE_M8 = 814,
+ PseudoSF_VC_VVV_SE_MF2 = 815,
+ PseudoSF_VC_VVV_SE_MF4 = 816,
+ PseudoSF_VC_VVV_SE_MF8 = 817,
+ PseudoSF_VC_VVW_SE_M1 = 818,
+ PseudoSF_VC_VVW_SE_M2 = 819,
+ PseudoSF_VC_VVW_SE_M4 = 820,
+ PseudoSF_VC_VVW_SE_MF2 = 821,
+ PseudoSF_VC_VVW_SE_MF4 = 822,
+ PseudoSF_VC_VVW_SE_MF8 = 823,
+ PseudoSF_VC_VV_SE_M1 = 824,
+ PseudoSF_VC_VV_SE_M2 = 825,
+ PseudoSF_VC_VV_SE_M4 = 826,
+ PseudoSF_VC_VV_SE_M8 = 827,
+ PseudoSF_VC_VV_SE_MF2 = 828,
+ PseudoSF_VC_VV_SE_MF4 = 829,
+ PseudoSF_VC_VV_SE_MF8 = 830,
+ PseudoSF_VC_V_FPR16VV_M1 = 831,
+ PseudoSF_VC_V_FPR16VV_M2 = 832,
+ PseudoSF_VC_V_FPR16VV_M4 = 833,
+ PseudoSF_VC_V_FPR16VV_M8 = 834,
+ PseudoSF_VC_V_FPR16VV_MF2 = 835,
+ PseudoSF_VC_V_FPR16VV_MF4 = 836,
+ PseudoSF_VC_V_FPR16VV_SE_M1 = 837,
+ PseudoSF_VC_V_FPR16VV_SE_M2 = 838,
+ PseudoSF_VC_V_FPR16VV_SE_M4 = 839,
+ PseudoSF_VC_V_FPR16VV_SE_M8 = 840,
+ PseudoSF_VC_V_FPR16VV_SE_MF2 = 841,
+ PseudoSF_VC_V_FPR16VV_SE_MF4 = 842,
+ PseudoSF_VC_V_FPR16VW_M1 = 843,
+ PseudoSF_VC_V_FPR16VW_M2 = 844,
+ PseudoSF_VC_V_FPR16VW_M4 = 845,
+ PseudoSF_VC_V_FPR16VW_M8 = 846,
+ PseudoSF_VC_V_FPR16VW_MF2 = 847,
+ PseudoSF_VC_V_FPR16VW_MF4 = 848,
+ PseudoSF_VC_V_FPR16VW_SE_M1 = 849,
+ PseudoSF_VC_V_FPR16VW_SE_M2 = 850,
+ PseudoSF_VC_V_FPR16VW_SE_M4 = 851,
+ PseudoSF_VC_V_FPR16VW_SE_M8 = 852,
+ PseudoSF_VC_V_FPR16VW_SE_MF2 = 853,
+ PseudoSF_VC_V_FPR16VW_SE_MF4 = 854,
+ PseudoSF_VC_V_FPR16V_M1 = 855,
+ PseudoSF_VC_V_FPR16V_M2 = 856,
+ PseudoSF_VC_V_FPR16V_M4 = 857,
+ PseudoSF_VC_V_FPR16V_M8 = 858,
+ PseudoSF_VC_V_FPR16V_MF2 = 859,
+ PseudoSF_VC_V_FPR16V_MF4 = 860,
+ PseudoSF_VC_V_FPR16V_SE_M1 = 861,
+ PseudoSF_VC_V_FPR16V_SE_M2 = 862,
+ PseudoSF_VC_V_FPR16V_SE_M4 = 863,
+ PseudoSF_VC_V_FPR16V_SE_M8 = 864,
+ PseudoSF_VC_V_FPR16V_SE_MF2 = 865,
+ PseudoSF_VC_V_FPR16V_SE_MF4 = 866,
+ PseudoSF_VC_V_FPR32VV_M1 = 867,
+ PseudoSF_VC_V_FPR32VV_M2 = 868,
+ PseudoSF_VC_V_FPR32VV_M4 = 869,
+ PseudoSF_VC_V_FPR32VV_M8 = 870,
+ PseudoSF_VC_V_FPR32VV_MF2 = 871,
+ PseudoSF_VC_V_FPR32VV_SE_M1 = 872,
+ PseudoSF_VC_V_FPR32VV_SE_M2 = 873,
+ PseudoSF_VC_V_FPR32VV_SE_M4 = 874,
+ PseudoSF_VC_V_FPR32VV_SE_M8 = 875,
+ PseudoSF_VC_V_FPR32VV_SE_MF2 = 876,
+ PseudoSF_VC_V_FPR32VW_M1 = 877,
+ PseudoSF_VC_V_FPR32VW_M2 = 878,
+ PseudoSF_VC_V_FPR32VW_M4 = 879,
+ PseudoSF_VC_V_FPR32VW_M8 = 880,
+ PseudoSF_VC_V_FPR32VW_MF2 = 881,
+ PseudoSF_VC_V_FPR32VW_SE_M1 = 882,
+ PseudoSF_VC_V_FPR32VW_SE_M2 = 883,
+ PseudoSF_VC_V_FPR32VW_SE_M4 = 884,
+ PseudoSF_VC_V_FPR32VW_SE_M8 = 885,
+ PseudoSF_VC_V_FPR32VW_SE_MF2 = 886,
+ PseudoSF_VC_V_FPR32V_M1 = 887,
+ PseudoSF_VC_V_FPR32V_M2 = 888,
+ PseudoSF_VC_V_FPR32V_M4 = 889,
+ PseudoSF_VC_V_FPR32V_M8 = 890,
+ PseudoSF_VC_V_FPR32V_MF2 = 891,
+ PseudoSF_VC_V_FPR32V_SE_M1 = 892,
+ PseudoSF_VC_V_FPR32V_SE_M2 = 893,
+ PseudoSF_VC_V_FPR32V_SE_M4 = 894,
+ PseudoSF_VC_V_FPR32V_SE_M8 = 895,
+ PseudoSF_VC_V_FPR32V_SE_MF2 = 896,
+ PseudoSF_VC_V_FPR64VV_M1 = 897,
+ PseudoSF_VC_V_FPR64VV_M2 = 898,
+ PseudoSF_VC_V_FPR64VV_M4 = 899,
+ PseudoSF_VC_V_FPR64VV_M8 = 900,
+ PseudoSF_VC_V_FPR64VV_SE_M1 = 901,
+ PseudoSF_VC_V_FPR64VV_SE_M2 = 902,
+ PseudoSF_VC_V_FPR64VV_SE_M4 = 903,
+ PseudoSF_VC_V_FPR64VV_SE_M8 = 904,
+ PseudoSF_VC_V_FPR64V_M1 = 905,
+ PseudoSF_VC_V_FPR64V_M2 = 906,
+ PseudoSF_VC_V_FPR64V_M4 = 907,
+ PseudoSF_VC_V_FPR64V_M8 = 908,
+ PseudoSF_VC_V_FPR64V_SE_M1 = 909,
+ PseudoSF_VC_V_FPR64V_SE_M2 = 910,
+ PseudoSF_VC_V_FPR64V_SE_M4 = 911,
+ PseudoSF_VC_V_FPR64V_SE_M8 = 912,
+ PseudoSF_VC_V_IVV_M1 = 913,
+ PseudoSF_VC_V_IVV_M2 = 914,
+ PseudoSF_VC_V_IVV_M4 = 915,
+ PseudoSF_VC_V_IVV_M8 = 916,
+ PseudoSF_VC_V_IVV_MF2 = 917,
+ PseudoSF_VC_V_IVV_MF4 = 918,
+ PseudoSF_VC_V_IVV_MF8 = 919,
+ PseudoSF_VC_V_IVV_SE_M1 = 920,
+ PseudoSF_VC_V_IVV_SE_M2 = 921,
+ PseudoSF_VC_V_IVV_SE_M4 = 922,
+ PseudoSF_VC_V_IVV_SE_M8 = 923,
+ PseudoSF_VC_V_IVV_SE_MF2 = 924,
+ PseudoSF_VC_V_IVV_SE_MF4 = 925,
+ PseudoSF_VC_V_IVV_SE_MF8 = 926,
+ PseudoSF_VC_V_IVW_M1 = 927,
+ PseudoSF_VC_V_IVW_M2 = 928,
+ PseudoSF_VC_V_IVW_M4 = 929,
+ PseudoSF_VC_V_IVW_MF2 = 930,
+ PseudoSF_VC_V_IVW_MF4 = 931,
+ PseudoSF_VC_V_IVW_MF8 = 932,
+ PseudoSF_VC_V_IVW_SE_M1 = 933,
+ PseudoSF_VC_V_IVW_SE_M2 = 934,
+ PseudoSF_VC_V_IVW_SE_M4 = 935,
+ PseudoSF_VC_V_IVW_SE_MF2 = 936,
+ PseudoSF_VC_V_IVW_SE_MF4 = 937,
+ PseudoSF_VC_V_IVW_SE_MF8 = 938,
+ PseudoSF_VC_V_IV_M1 = 939,
+ PseudoSF_VC_V_IV_M2 = 940,
+ PseudoSF_VC_V_IV_M4 = 941,
+ PseudoSF_VC_V_IV_M8 = 942,
+ PseudoSF_VC_V_IV_MF2 = 943,
+ PseudoSF_VC_V_IV_MF4 = 944,
+ PseudoSF_VC_V_IV_MF8 = 945,
+ PseudoSF_VC_V_IV_SE_M1 = 946,
+ PseudoSF_VC_V_IV_SE_M2 = 947,
+ PseudoSF_VC_V_IV_SE_M4 = 948,
+ PseudoSF_VC_V_IV_SE_M8 = 949,
+ PseudoSF_VC_V_IV_SE_MF2 = 950,
+ PseudoSF_VC_V_IV_SE_MF4 = 951,
+ PseudoSF_VC_V_IV_SE_MF8 = 952,
+ PseudoSF_VC_V_I_M1 = 953,
+ PseudoSF_VC_V_I_M2 = 954,
+ PseudoSF_VC_V_I_M4 = 955,
+ PseudoSF_VC_V_I_M8 = 956,
+ PseudoSF_VC_V_I_MF2 = 957,
+ PseudoSF_VC_V_I_MF4 = 958,
+ PseudoSF_VC_V_I_MF8 = 959,
+ PseudoSF_VC_V_I_SE_M1 = 960,
+ PseudoSF_VC_V_I_SE_M2 = 961,
+ PseudoSF_VC_V_I_SE_M4 = 962,
+ PseudoSF_VC_V_I_SE_M8 = 963,
+ PseudoSF_VC_V_I_SE_MF2 = 964,
+ PseudoSF_VC_V_I_SE_MF4 = 965,
+ PseudoSF_VC_V_I_SE_MF8 = 966,
+ PseudoSF_VC_V_VVV_M1 = 967,
+ PseudoSF_VC_V_VVV_M2 = 968,
+ PseudoSF_VC_V_VVV_M4 = 969,
+ PseudoSF_VC_V_VVV_M8 = 970,
+ PseudoSF_VC_V_VVV_MF2 = 971,
+ PseudoSF_VC_V_VVV_MF4 = 972,
+ PseudoSF_VC_V_VVV_MF8 = 973,
+ PseudoSF_VC_V_VVV_SE_M1 = 974,
+ PseudoSF_VC_V_VVV_SE_M2 = 975,
+ PseudoSF_VC_V_VVV_SE_M4 = 976,
+ PseudoSF_VC_V_VVV_SE_M8 = 977,
+ PseudoSF_VC_V_VVV_SE_MF2 = 978,
+ PseudoSF_VC_V_VVV_SE_MF4 = 979,
+ PseudoSF_VC_V_VVV_SE_MF8 = 980,
+ PseudoSF_VC_V_VVW_M1 = 981,
+ PseudoSF_VC_V_VVW_M2 = 982,
+ PseudoSF_VC_V_VVW_M4 = 983,
+ PseudoSF_VC_V_VVW_MF2 = 984,
+ PseudoSF_VC_V_VVW_MF4 = 985,
+ PseudoSF_VC_V_VVW_MF8 = 986,
+ PseudoSF_VC_V_VVW_SE_M1 = 987,
+ PseudoSF_VC_V_VVW_SE_M2 = 988,
+ PseudoSF_VC_V_VVW_SE_M4 = 989,
+ PseudoSF_VC_V_VVW_SE_MF2 = 990,
+ PseudoSF_VC_V_VVW_SE_MF4 = 991,
+ PseudoSF_VC_V_VVW_SE_MF8 = 992,
+ PseudoSF_VC_V_VV_M1 = 993,
+ PseudoSF_VC_V_VV_M2 = 994,
+ PseudoSF_VC_V_VV_M4 = 995,
+ PseudoSF_VC_V_VV_M8 = 996,
+ PseudoSF_VC_V_VV_MF2 = 997,
+ PseudoSF_VC_V_VV_MF4 = 998,
+ PseudoSF_VC_V_VV_MF8 = 999,
+ PseudoSF_VC_V_VV_SE_M1 = 1000,
+ PseudoSF_VC_V_VV_SE_M2 = 1001,
+ PseudoSF_VC_V_VV_SE_M4 = 1002,
+ PseudoSF_VC_V_VV_SE_M8 = 1003,
+ PseudoSF_VC_V_VV_SE_MF2 = 1004,
+ PseudoSF_VC_V_VV_SE_MF4 = 1005,
+ PseudoSF_VC_V_VV_SE_MF8 = 1006,
+ PseudoSF_VC_V_XVV_M1 = 1007,
+ PseudoSF_VC_V_XVV_M2 = 1008,
+ PseudoSF_VC_V_XVV_M4 = 1009,
+ PseudoSF_VC_V_XVV_M8 = 1010,
+ PseudoSF_VC_V_XVV_MF2 = 1011,
+ PseudoSF_VC_V_XVV_MF4 = 1012,
+ PseudoSF_VC_V_XVV_MF8 = 1013,
+ PseudoSF_VC_V_XVV_SE_M1 = 1014,
+ PseudoSF_VC_V_XVV_SE_M2 = 1015,
+ PseudoSF_VC_V_XVV_SE_M4 = 1016,
+ PseudoSF_VC_V_XVV_SE_M8 = 1017,
+ PseudoSF_VC_V_XVV_SE_MF2 = 1018,
+ PseudoSF_VC_V_XVV_SE_MF4 = 1019,
+ PseudoSF_VC_V_XVV_SE_MF8 = 1020,
+ PseudoSF_VC_V_XVW_M1 = 1021,
+ PseudoSF_VC_V_XVW_M2 = 1022,
+ PseudoSF_VC_V_XVW_M4 = 1023,
+ PseudoSF_VC_V_XVW_MF2 = 1024,
+ PseudoSF_VC_V_XVW_MF4 = 1025,
+ PseudoSF_VC_V_XVW_MF8 = 1026,
+ PseudoSF_VC_V_XVW_SE_M1 = 1027,
+ PseudoSF_VC_V_XVW_SE_M2 = 1028,
+ PseudoSF_VC_V_XVW_SE_M4 = 1029,
+ PseudoSF_VC_V_XVW_SE_MF2 = 1030,
+ PseudoSF_VC_V_XVW_SE_MF4 = 1031,
+ PseudoSF_VC_V_XVW_SE_MF8 = 1032,
+ PseudoSF_VC_V_XV_M1 = 1033,
+ PseudoSF_VC_V_XV_M2 = 1034,
+ PseudoSF_VC_V_XV_M4 = 1035,
+ PseudoSF_VC_V_XV_M8 = 1036,
+ PseudoSF_VC_V_XV_MF2 = 1037,
+ PseudoSF_VC_V_XV_MF4 = 1038,
+ PseudoSF_VC_V_XV_MF8 = 1039,
+ PseudoSF_VC_V_XV_SE_M1 = 1040,
+ PseudoSF_VC_V_XV_SE_M2 = 1041,
+ PseudoSF_VC_V_XV_SE_M4 = 1042,
+ PseudoSF_VC_V_XV_SE_M8 = 1043,
+ PseudoSF_VC_V_XV_SE_MF2 = 1044,
+ PseudoSF_VC_V_XV_SE_MF4 = 1045,
+ PseudoSF_VC_V_XV_SE_MF8 = 1046,
+ PseudoSF_VC_V_X_M1 = 1047,
+ PseudoSF_VC_V_X_M2 = 1048,
+ PseudoSF_VC_V_X_M4 = 1049,
+ PseudoSF_VC_V_X_M8 = 1050,
+ PseudoSF_VC_V_X_MF2 = 1051,
+ PseudoSF_VC_V_X_MF4 = 1052,
+ PseudoSF_VC_V_X_MF8 = 1053,
+ PseudoSF_VC_V_X_SE_M1 = 1054,
+ PseudoSF_VC_V_X_SE_M2 = 1055,
+ PseudoSF_VC_V_X_SE_M4 = 1056,
+ PseudoSF_VC_V_X_SE_M8 = 1057,
+ PseudoSF_VC_V_X_SE_MF2 = 1058,
+ PseudoSF_VC_V_X_SE_MF4 = 1059,
+ PseudoSF_VC_V_X_SE_MF8 = 1060,
+ PseudoSF_VC_XVV_SE_M1 = 1061,
+ PseudoSF_VC_XVV_SE_M2 = 1062,
+ PseudoSF_VC_XVV_SE_M4 = 1063,
+ PseudoSF_VC_XVV_SE_M8 = 1064,
+ PseudoSF_VC_XVV_SE_MF2 = 1065,
+ PseudoSF_VC_XVV_SE_MF4 = 1066,
+ PseudoSF_VC_XVV_SE_MF8 = 1067,
+ PseudoSF_VC_XVW_SE_M1 = 1068,
+ PseudoSF_VC_XVW_SE_M2 = 1069,
+ PseudoSF_VC_XVW_SE_M4 = 1070,
+ PseudoSF_VC_XVW_SE_MF2 = 1071,
+ PseudoSF_VC_XVW_SE_MF4 = 1072,
+ PseudoSF_VC_XVW_SE_MF8 = 1073,
+ PseudoSF_VC_XV_SE_M1 = 1074,
+ PseudoSF_VC_XV_SE_M2 = 1075,
+ PseudoSF_VC_XV_SE_M4 = 1076,
+ PseudoSF_VC_XV_SE_M8 = 1077,
+ PseudoSF_VC_XV_SE_MF2 = 1078,
+ PseudoSF_VC_XV_SE_MF4 = 1079,
+ PseudoSF_VC_XV_SE_MF8 = 1080,
+ PseudoSF_VC_X_SE_M1 = 1081,
+ PseudoSF_VC_X_SE_M2 = 1082,
+ PseudoSF_VC_X_SE_M4 = 1083,
+ PseudoSF_VC_X_SE_M8 = 1084,
+ PseudoSF_VC_X_SE_MF2 = 1085,
+ PseudoSF_VC_X_SE_MF4 = 1086,
+ PseudoSF_VC_X_SE_MF8 = 1087,
+ PseudoSF_VFEXPA_V_M1_E16 = 1088,
+ PseudoSF_VFEXPA_V_M1_E16_MASK = 1089,
+ PseudoSF_VFEXPA_V_M1_E32 = 1090,
+ PseudoSF_VFEXPA_V_M1_E32_MASK = 1091,
+ PseudoSF_VFEXPA_V_M1_E64 = 1092,
+ PseudoSF_VFEXPA_V_M1_E64_MASK = 1093,
+ PseudoSF_VFEXPA_V_M2_E16 = 1094,
+ PseudoSF_VFEXPA_V_M2_E16_MASK = 1095,
+ PseudoSF_VFEXPA_V_M2_E32 = 1096,
+ PseudoSF_VFEXPA_V_M2_E32_MASK = 1097,
+ PseudoSF_VFEXPA_V_M2_E64 = 1098,
+ PseudoSF_VFEXPA_V_M2_E64_MASK = 1099,
+ PseudoSF_VFEXPA_V_M4_E16 = 1100,
+ PseudoSF_VFEXPA_V_M4_E16_MASK = 1101,
+ PseudoSF_VFEXPA_V_M4_E32 = 1102,
+ PseudoSF_VFEXPA_V_M4_E32_MASK = 1103,
+ PseudoSF_VFEXPA_V_M4_E64 = 1104,
+ PseudoSF_VFEXPA_V_M4_E64_MASK = 1105,
+ PseudoSF_VFEXPA_V_M8_E16 = 1106,
+ PseudoSF_VFEXPA_V_M8_E16_MASK = 1107,
+ PseudoSF_VFEXPA_V_M8_E32 = 1108,
+ PseudoSF_VFEXPA_V_M8_E32_MASK = 1109,
+ PseudoSF_VFEXPA_V_M8_E64 = 1110,
+ PseudoSF_VFEXPA_V_M8_E64_MASK = 1111,
+ PseudoSF_VFEXPA_V_MF2_E16 = 1112,
+ PseudoSF_VFEXPA_V_MF2_E16_MASK = 1113,
+ PseudoSF_VFEXPA_V_MF2_E32 = 1114,
+ PseudoSF_VFEXPA_V_MF2_E32_MASK = 1115,
+ PseudoSF_VFEXPA_V_MF4_E16 = 1116,
+ PseudoSF_VFEXPA_V_MF4_E16_MASK = 1117,
+ PseudoSF_VFEXP_ALT_V_M1_E16 = 1118,
+ PseudoSF_VFEXP_ALT_V_M1_E16_MASK = 1119,
+ PseudoSF_VFEXP_ALT_V_M2_E16 = 1120,
+ PseudoSF_VFEXP_ALT_V_M2_E16_MASK = 1121,
+ PseudoSF_VFEXP_ALT_V_M4_E16 = 1122,
+ PseudoSF_VFEXP_ALT_V_M4_E16_MASK = 1123,
+ PseudoSF_VFEXP_ALT_V_M8_E16 = 1124,
+ PseudoSF_VFEXP_ALT_V_M8_E16_MASK = 1125,
+ PseudoSF_VFEXP_ALT_V_MF2_E16 = 1126,
+ PseudoSF_VFEXP_ALT_V_MF2_E16_MASK = 1127,
+ PseudoSF_VFEXP_ALT_V_MF4_E16 = 1128,
+ PseudoSF_VFEXP_ALT_V_MF4_E16_MASK = 1129,
+ PseudoSF_VFEXP_V_M1_E16 = 1130,
+ PseudoSF_VFEXP_V_M1_E16_MASK = 1131,
+ PseudoSF_VFEXP_V_M1_E32 = 1132,
+ PseudoSF_VFEXP_V_M1_E32_MASK = 1133,
+ PseudoSF_VFEXP_V_M2_E16 = 1134,
+ PseudoSF_VFEXP_V_M2_E16_MASK = 1135,
+ PseudoSF_VFEXP_V_M2_E32 = 1136,
+ PseudoSF_VFEXP_V_M2_E32_MASK = 1137,
+ PseudoSF_VFEXP_V_M4_E16 = 1138,
+ PseudoSF_VFEXP_V_M4_E16_MASK = 1139,
+ PseudoSF_VFEXP_V_M4_E32 = 1140,
+ PseudoSF_VFEXP_V_M4_E32_MASK = 1141,
+ PseudoSF_VFEXP_V_M8_E16 = 1142,
+ PseudoSF_VFEXP_V_M8_E16_MASK = 1143,
+ PseudoSF_VFEXP_V_M8_E32 = 1144,
+ PseudoSF_VFEXP_V_M8_E32_MASK = 1145,
+ PseudoSF_VFEXP_V_MF2_E16 = 1146,
+ PseudoSF_VFEXP_V_MF2_E16_MASK = 1147,
+ PseudoSF_VFEXP_V_MF2_E32 = 1148,
+ PseudoSF_VFEXP_V_MF2_E32_MASK = 1149,
+ PseudoSF_VFEXP_V_MF4_E16 = 1150,
+ PseudoSF_VFEXP_V_MF4_E16_MASK = 1151,
+ PseudoSF_VFNRCLIP_XU_F_QF_M1 = 1152,
+ PseudoSF_VFNRCLIP_XU_F_QF_M1_MASK = 1153,
+ PseudoSF_VFNRCLIP_XU_F_QF_M2 = 1154,
+ PseudoSF_VFNRCLIP_XU_F_QF_M2_MASK = 1155,
+ PseudoSF_VFNRCLIP_XU_F_QF_MF2 = 1156,
+ PseudoSF_VFNRCLIP_XU_F_QF_MF2_MASK = 1157,
+ PseudoSF_VFNRCLIP_XU_F_QF_MF4 = 1158,
+ PseudoSF_VFNRCLIP_XU_F_QF_MF4_MASK = 1159,
+ PseudoSF_VFNRCLIP_XU_F_QF_MF8 = 1160,
+ PseudoSF_VFNRCLIP_XU_F_QF_MF8_MASK = 1161,
+ PseudoSF_VFNRCLIP_X_F_QF_M1 = 1162,
+ PseudoSF_VFNRCLIP_X_F_QF_M1_MASK = 1163,
+ PseudoSF_VFNRCLIP_X_F_QF_M2 = 1164,
+ PseudoSF_VFNRCLIP_X_F_QF_M2_MASK = 1165,
+ PseudoSF_VFNRCLIP_X_F_QF_MF2 = 1166,
+ PseudoSF_VFNRCLIP_X_F_QF_MF2_MASK = 1167,
+ PseudoSF_VFNRCLIP_X_F_QF_MF4 = 1168,
+ PseudoSF_VFNRCLIP_X_F_QF_MF4_MASK = 1169,
+ PseudoSF_VFNRCLIP_X_F_QF_MF8 = 1170,
+ PseudoSF_VFNRCLIP_X_F_QF_MF8_MASK = 1171,
+ PseudoSF_VFWMACC_4x4x4_M1 = 1172,
+ PseudoSF_VFWMACC_4x4x4_M2 = 1173,
+ PseudoSF_VFWMACC_4x4x4_M4 = 1174,
+ PseudoSF_VFWMACC_4x4x4_MF2 = 1175,
+ PseudoSF_VFWMACC_4x4x4_MF4 = 1176,
+ PseudoSF_VLTE16 = 1177,
+ PseudoSF_VLTE32 = 1178,
+ PseudoSF_VLTE64 = 1179,
+ PseudoSF_VLTE8 = 1180,
+ PseudoSF_VQMACCSU_2x8x2_M1 = 1181,
+ PseudoSF_VQMACCSU_2x8x2_M2 = 1182,
+ PseudoSF_VQMACCSU_2x8x2_M4 = 1183,
+ PseudoSF_VQMACCSU_2x8x2_M8 = 1184,
+ PseudoSF_VQMACCSU_4x8x4_M1 = 1185,
+ PseudoSF_VQMACCSU_4x8x4_M2 = 1186,
+ PseudoSF_VQMACCSU_4x8x4_M4 = 1187,
+ PseudoSF_VQMACCSU_4x8x4_MF2 = 1188,
+ PseudoSF_VQMACCUS_2x8x2_M1 = 1189,
+ PseudoSF_VQMACCUS_2x8x2_M2 = 1190,
+ PseudoSF_VQMACCUS_2x8x2_M4 = 1191,
+ PseudoSF_VQMACCUS_2x8x2_M8 = 1192,
+ PseudoSF_VQMACCUS_4x8x4_M1 = 1193,
+ PseudoSF_VQMACCUS_4x8x4_M2 = 1194,
+ PseudoSF_VQMACCUS_4x8x4_M4 = 1195,
+ PseudoSF_VQMACCUS_4x8x4_MF2 = 1196,
+ PseudoSF_VQMACCU_2x8x2_M1 = 1197,
+ PseudoSF_VQMACCU_2x8x2_M2 = 1198,
+ PseudoSF_VQMACCU_2x8x2_M4 = 1199,
+ PseudoSF_VQMACCU_2x8x2_M8 = 1200,
+ PseudoSF_VQMACCU_4x8x4_M1 = 1201,
+ PseudoSF_VQMACCU_4x8x4_M2 = 1202,
+ PseudoSF_VQMACCU_4x8x4_M4 = 1203,
+ PseudoSF_VQMACCU_4x8x4_MF2 = 1204,
+ PseudoSF_VQMACC_2x8x2_M1 = 1205,
+ PseudoSF_VQMACC_2x8x2_M2 = 1206,
+ PseudoSF_VQMACC_2x8x2_M4 = 1207,
+ PseudoSF_VQMACC_2x8x2_M8 = 1208,
+ PseudoSF_VQMACC_4x8x4_M1 = 1209,
+ PseudoSF_VQMACC_4x8x4_M2 = 1210,
+ PseudoSF_VQMACC_4x8x4_M4 = 1211,
+ PseudoSF_VQMACC_4x8x4_MF2 = 1212,
+ PseudoSF_VSETTK = 1213,
+ PseudoSF_VSETTM = 1214,
+ PseudoSF_VSETTNT = 1215,
+ PseudoSF_VSETTNTX0 = 1216,
+ PseudoSF_VSETTNTX0X0 = 1217,
+ PseudoSF_VSTE16 = 1218,
+ PseudoSF_VSTE32 = 1219,
+ PseudoSF_VSTE64 = 1220,
+ PseudoSF_VSTE8 = 1221,
+ PseudoSF_VTDISCARD = 1222,
+ PseudoSF_VTMV_T_V = 1223,
+ PseudoSF_VTMV_V_T = 1224,
+ PseudoSF_VTZERO_T = 1225,
+ PseudoSH = 1226,
+ PseudoSW = 1227,
+ PseudoTAIL = 1228,
+ PseudoTAILIndirect = 1229,
+ PseudoTAILIndirectNonX7 = 1230,
+ PseudoTAILIndirectX7 = 1231,
+ PseudoTH_VMAQASU_VV_M1 = 1232,
+ PseudoTH_VMAQASU_VV_M1_MASK = 1233,
+ PseudoTH_VMAQASU_VV_M2 = 1234,
+ PseudoTH_VMAQASU_VV_M2_MASK = 1235,
+ PseudoTH_VMAQASU_VV_M4 = 1236,
+ PseudoTH_VMAQASU_VV_M4_MASK = 1237,
+ PseudoTH_VMAQASU_VV_M8 = 1238,
+ PseudoTH_VMAQASU_VV_M8_MASK = 1239,
+ PseudoTH_VMAQASU_VV_MF2 = 1240,
+ PseudoTH_VMAQASU_VV_MF2_MASK = 1241,
+ PseudoTH_VMAQASU_VX_M1 = 1242,
+ PseudoTH_VMAQASU_VX_M1_MASK = 1243,
+ PseudoTH_VMAQASU_VX_M2 = 1244,
+ PseudoTH_VMAQASU_VX_M2_MASK = 1245,
+ PseudoTH_VMAQASU_VX_M4 = 1246,
+ PseudoTH_VMAQASU_VX_M4_MASK = 1247,
+ PseudoTH_VMAQASU_VX_M8 = 1248,
+ PseudoTH_VMAQASU_VX_M8_MASK = 1249,
+ PseudoTH_VMAQASU_VX_MF2 = 1250,
+ PseudoTH_VMAQASU_VX_MF2_MASK = 1251,
+ PseudoTH_VMAQAUS_VX_M1 = 1252,
+ PseudoTH_VMAQAUS_VX_M1_MASK = 1253,
+ PseudoTH_VMAQAUS_VX_M2 = 1254,
+ PseudoTH_VMAQAUS_VX_M2_MASK = 1255,
+ PseudoTH_VMAQAUS_VX_M4 = 1256,
+ PseudoTH_VMAQAUS_VX_M4_MASK = 1257,
+ PseudoTH_VMAQAUS_VX_M8 = 1258,
+ PseudoTH_VMAQAUS_VX_M8_MASK = 1259,
+ PseudoTH_VMAQAUS_VX_MF2 = 1260,
+ PseudoTH_VMAQAUS_VX_MF2_MASK = 1261,
+ PseudoTH_VMAQAU_VV_M1 = 1262,
+ PseudoTH_VMAQAU_VV_M1_MASK = 1263,
+ PseudoTH_VMAQAU_VV_M2 = 1264,
+ PseudoTH_VMAQAU_VV_M2_MASK = 1265,
+ PseudoTH_VMAQAU_VV_M4 = 1266,
+ PseudoTH_VMAQAU_VV_M4_MASK = 1267,
+ PseudoTH_VMAQAU_VV_M8 = 1268,
+ PseudoTH_VMAQAU_VV_M8_MASK = 1269,
+ PseudoTH_VMAQAU_VV_MF2 = 1270,
+ PseudoTH_VMAQAU_VV_MF2_MASK = 1271,
+ PseudoTH_VMAQAU_VX_M1 = 1272,
+ PseudoTH_VMAQAU_VX_M1_MASK = 1273,
+ PseudoTH_VMAQAU_VX_M2 = 1274,
+ PseudoTH_VMAQAU_VX_M2_MASK = 1275,
+ PseudoTH_VMAQAU_VX_M4 = 1276,
+ PseudoTH_VMAQAU_VX_M4_MASK = 1277,
+ PseudoTH_VMAQAU_VX_M8 = 1278,
+ PseudoTH_VMAQAU_VX_M8_MASK = 1279,
+ PseudoTH_VMAQAU_VX_MF2 = 1280,
+ PseudoTH_VMAQAU_VX_MF2_MASK = 1281,
+ PseudoTH_VMAQA_VV_M1 = 1282,
+ PseudoTH_VMAQA_VV_M1_MASK = 1283,
+ PseudoTH_VMAQA_VV_M2 = 1284,
+ PseudoTH_VMAQA_VV_M2_MASK = 1285,
+ PseudoTH_VMAQA_VV_M4 = 1286,
+ PseudoTH_VMAQA_VV_M4_MASK = 1287,
+ PseudoTH_VMAQA_VV_M8 = 1288,
+ PseudoTH_VMAQA_VV_M8_MASK = 1289,
+ PseudoTH_VMAQA_VV_MF2 = 1290,
+ PseudoTH_VMAQA_VV_MF2_MASK = 1291,
+ PseudoTH_VMAQA_VX_M1 = 1292,
+ PseudoTH_VMAQA_VX_M1_MASK = 1293,
+ PseudoTH_VMAQA_VX_M2 = 1294,
+ PseudoTH_VMAQA_VX_M2_MASK = 1295,
+ PseudoTH_VMAQA_VX_M4 = 1296,
+ PseudoTH_VMAQA_VX_M4_MASK = 1297,
+ PseudoTH_VMAQA_VX_M8 = 1298,
+ PseudoTH_VMAQA_VX_M8_MASK = 1299,
+ PseudoTH_VMAQA_VX_MF2 = 1300,
+ PseudoTH_VMAQA_VX_MF2_MASK = 1301,
+ PseudoTLSDESCCall = 1302,
+ PseudoVAADDU_VV_M1 = 1303,
+ PseudoVAADDU_VV_M1_MASK = 1304,
+ PseudoVAADDU_VV_M2 = 1305,
+ PseudoVAADDU_VV_M2_MASK = 1306,
+ PseudoVAADDU_VV_M4 = 1307,
+ PseudoVAADDU_VV_M4_MASK = 1308,
+ PseudoVAADDU_VV_M8 = 1309,
+ PseudoVAADDU_VV_M8_MASK = 1310,
+ PseudoVAADDU_VV_MF2 = 1311,
+ PseudoVAADDU_VV_MF2_MASK = 1312,
+ PseudoVAADDU_VV_MF4 = 1313,
+ PseudoVAADDU_VV_MF4_MASK = 1314,
+ PseudoVAADDU_VV_MF8 = 1315,
+ PseudoVAADDU_VV_MF8_MASK = 1316,
+ PseudoVAADDU_VX_M1 = 1317,
+ PseudoVAADDU_VX_M1_MASK = 1318,
+ PseudoVAADDU_VX_M2 = 1319,
+ PseudoVAADDU_VX_M2_MASK = 1320,
+ PseudoVAADDU_VX_M4 = 1321,
+ PseudoVAADDU_VX_M4_MASK = 1322,
+ PseudoVAADDU_VX_M8 = 1323,
+ PseudoVAADDU_VX_M8_MASK = 1324,
+ PseudoVAADDU_VX_MF2 = 1325,
+ PseudoVAADDU_VX_MF2_MASK = 1326,
+ PseudoVAADDU_VX_MF4 = 1327,
+ PseudoVAADDU_VX_MF4_MASK = 1328,
+ PseudoVAADDU_VX_MF8 = 1329,
+ PseudoVAADDU_VX_MF8_MASK = 1330,
+ PseudoVAADD_VV_M1 = 1331,
+ PseudoVAADD_VV_M1_MASK = 1332,
+ PseudoVAADD_VV_M2 = 1333,
+ PseudoVAADD_VV_M2_MASK = 1334,
+ PseudoVAADD_VV_M4 = 1335,
+ PseudoVAADD_VV_M4_MASK = 1336,
+ PseudoVAADD_VV_M8 = 1337,
+ PseudoVAADD_VV_M8_MASK = 1338,
+ PseudoVAADD_VV_MF2 = 1339,
+ PseudoVAADD_VV_MF2_MASK = 1340,
+ PseudoVAADD_VV_MF4 = 1341,
+ PseudoVAADD_VV_MF4_MASK = 1342,
+ PseudoVAADD_VV_MF8 = 1343,
+ PseudoVAADD_VV_MF8_MASK = 1344,
+ PseudoVAADD_VX_M1 = 1345,
+ PseudoVAADD_VX_M1_MASK = 1346,
+ PseudoVAADD_VX_M2 = 1347,
+ PseudoVAADD_VX_M2_MASK = 1348,
+ PseudoVAADD_VX_M4 = 1349,
+ PseudoVAADD_VX_M4_MASK = 1350,
+ PseudoVAADD_VX_M8 = 1351,
+ PseudoVAADD_VX_M8_MASK = 1352,
+ PseudoVAADD_VX_MF2 = 1353,
+ PseudoVAADD_VX_MF2_MASK = 1354,
+ PseudoVAADD_VX_MF4 = 1355,
+ PseudoVAADD_VX_MF4_MASK = 1356,
+ PseudoVAADD_VX_MF8 = 1357,
+ PseudoVAADD_VX_MF8_MASK = 1358,
+ PseudoVADC_VIM_M1 = 1359,
+ PseudoVADC_VIM_M2 = 1360,
+ PseudoVADC_VIM_M4 = 1361,
+ PseudoVADC_VIM_M8 = 1362,
+ PseudoVADC_VIM_MF2 = 1363,
+ PseudoVADC_VIM_MF4 = 1364,
+ PseudoVADC_VIM_MF8 = 1365,
+ PseudoVADC_VVM_M1 = 1366,
+ PseudoVADC_VVM_M2 = 1367,
+ PseudoVADC_VVM_M4 = 1368,
+ PseudoVADC_VVM_M8 = 1369,
+ PseudoVADC_VVM_MF2 = 1370,
+ PseudoVADC_VVM_MF4 = 1371,
+ PseudoVADC_VVM_MF8 = 1372,
+ PseudoVADC_VXM_M1 = 1373,
+ PseudoVADC_VXM_M2 = 1374,
+ PseudoVADC_VXM_M4 = 1375,
+ PseudoVADC_VXM_M8 = 1376,
+ PseudoVADC_VXM_MF2 = 1377,
+ PseudoVADC_VXM_MF4 = 1378,
+ PseudoVADC_VXM_MF8 = 1379,
+ PseudoVADD_VI_M1 = 1380,
+ PseudoVADD_VI_M1_MASK = 1381,
+ PseudoVADD_VI_M2 = 1382,
+ PseudoVADD_VI_M2_MASK = 1383,
+ PseudoVADD_VI_M4 = 1384,
+ PseudoVADD_VI_M4_MASK = 1385,
+ PseudoVADD_VI_M8 = 1386,
+ PseudoVADD_VI_M8_MASK = 1387,
+ PseudoVADD_VI_MF2 = 1388,
+ PseudoVADD_VI_MF2_MASK = 1389,
+ PseudoVADD_VI_MF4 = 1390,
+ PseudoVADD_VI_MF4_MASK = 1391,
+ PseudoVADD_VI_MF8 = 1392,
+ PseudoVADD_VI_MF8_MASK = 1393,
+ PseudoVADD_VV_M1 = 1394,
+ PseudoVADD_VV_M1_MASK = 1395,
+ PseudoVADD_VV_M2 = 1396,
+ PseudoVADD_VV_M2_MASK = 1397,
+ PseudoVADD_VV_M4 = 1398,
+ PseudoVADD_VV_M4_MASK = 1399,
+ PseudoVADD_VV_M8 = 1400,
+ PseudoVADD_VV_M8_MASK = 1401,
+ PseudoVADD_VV_MF2 = 1402,
+ PseudoVADD_VV_MF2_MASK = 1403,
+ PseudoVADD_VV_MF4 = 1404,
+ PseudoVADD_VV_MF4_MASK = 1405,
+ PseudoVADD_VV_MF8 = 1406,
+ PseudoVADD_VV_MF8_MASK = 1407,
+ PseudoVADD_VX_M1 = 1408,
+ PseudoVADD_VX_M1_MASK = 1409,
+ PseudoVADD_VX_M2 = 1410,
+ PseudoVADD_VX_M2_MASK = 1411,
+ PseudoVADD_VX_M4 = 1412,
+ PseudoVADD_VX_M4_MASK = 1413,
+ PseudoVADD_VX_M8 = 1414,
+ PseudoVADD_VX_M8_MASK = 1415,
+ PseudoVADD_VX_MF2 = 1416,
+ PseudoVADD_VX_MF2_MASK = 1417,
+ PseudoVADD_VX_MF4 = 1418,
+ PseudoVADD_VX_MF4_MASK = 1419,
+ PseudoVADD_VX_MF8 = 1420,
+ PseudoVADD_VX_MF8_MASK = 1421,
+ PseudoVAESDF_VS_M1_M1 = 1422,
+ PseudoVAESDF_VS_M1_MF2 = 1423,
+ PseudoVAESDF_VS_M1_MF4 = 1424,
+ PseudoVAESDF_VS_M1_MF8 = 1425,
+ PseudoVAESDF_VS_M2_M1 = 1426,
+ PseudoVAESDF_VS_M2_M2 = 1427,
+ PseudoVAESDF_VS_M2_MF2 = 1428,
+ PseudoVAESDF_VS_M2_MF4 = 1429,
+ PseudoVAESDF_VS_M2_MF8 = 1430,
+ PseudoVAESDF_VS_M4_M1 = 1431,
+ PseudoVAESDF_VS_M4_M2 = 1432,
+ PseudoVAESDF_VS_M4_M4 = 1433,
+ PseudoVAESDF_VS_M4_MF2 = 1434,
+ PseudoVAESDF_VS_M4_MF4 = 1435,
+ PseudoVAESDF_VS_M4_MF8 = 1436,
+ PseudoVAESDF_VS_M8_M1 = 1437,
+ PseudoVAESDF_VS_M8_M2 = 1438,
+ PseudoVAESDF_VS_M8_M4 = 1439,
+ PseudoVAESDF_VS_M8_MF2 = 1440,
+ PseudoVAESDF_VS_M8_MF4 = 1441,
+ PseudoVAESDF_VS_M8_MF8 = 1442,
+ PseudoVAESDF_VS_MF2_MF2 = 1443,
+ PseudoVAESDF_VS_MF2_MF4 = 1444,
+ PseudoVAESDF_VS_MF2_MF8 = 1445,
+ PseudoVAESDF_VV_M1 = 1446,
+ PseudoVAESDF_VV_M2 = 1447,
+ PseudoVAESDF_VV_M4 = 1448,
+ PseudoVAESDF_VV_M8 = 1449,
+ PseudoVAESDF_VV_MF2 = 1450,
+ PseudoVAESDM_VS_M1_M1 = 1451,
+ PseudoVAESDM_VS_M1_MF2 = 1452,
+ PseudoVAESDM_VS_M1_MF4 = 1453,
+ PseudoVAESDM_VS_M1_MF8 = 1454,
+ PseudoVAESDM_VS_M2_M1 = 1455,
+ PseudoVAESDM_VS_M2_M2 = 1456,
+ PseudoVAESDM_VS_M2_MF2 = 1457,
+ PseudoVAESDM_VS_M2_MF4 = 1458,
+ PseudoVAESDM_VS_M2_MF8 = 1459,
+ PseudoVAESDM_VS_M4_M1 = 1460,
+ PseudoVAESDM_VS_M4_M2 = 1461,
+ PseudoVAESDM_VS_M4_M4 = 1462,
+ PseudoVAESDM_VS_M4_MF2 = 1463,
+ PseudoVAESDM_VS_M4_MF4 = 1464,
+ PseudoVAESDM_VS_M4_MF8 = 1465,
+ PseudoVAESDM_VS_M8_M1 = 1466,
+ PseudoVAESDM_VS_M8_M2 = 1467,
+ PseudoVAESDM_VS_M8_M4 = 1468,
+ PseudoVAESDM_VS_M8_MF2 = 1469,
+ PseudoVAESDM_VS_M8_MF4 = 1470,
+ PseudoVAESDM_VS_M8_MF8 = 1471,
+ PseudoVAESDM_VS_MF2_MF2 = 1472,
+ PseudoVAESDM_VS_MF2_MF4 = 1473,
+ PseudoVAESDM_VS_MF2_MF8 = 1474,
+ PseudoVAESDM_VV_M1 = 1475,
+ PseudoVAESDM_VV_M2 = 1476,
+ PseudoVAESDM_VV_M4 = 1477,
+ PseudoVAESDM_VV_M8 = 1478,
+ PseudoVAESDM_VV_MF2 = 1479,
+ PseudoVAESEF_VS_M1_M1 = 1480,
+ PseudoVAESEF_VS_M1_MF2 = 1481,
+ PseudoVAESEF_VS_M1_MF4 = 1482,
+ PseudoVAESEF_VS_M1_MF8 = 1483,
+ PseudoVAESEF_VS_M2_M1 = 1484,
+ PseudoVAESEF_VS_M2_M2 = 1485,
+ PseudoVAESEF_VS_M2_MF2 = 1486,
+ PseudoVAESEF_VS_M2_MF4 = 1487,
+ PseudoVAESEF_VS_M2_MF8 = 1488,
+ PseudoVAESEF_VS_M4_M1 = 1489,
+ PseudoVAESEF_VS_M4_M2 = 1490,
+ PseudoVAESEF_VS_M4_M4 = 1491,
+ PseudoVAESEF_VS_M4_MF2 = 1492,
+ PseudoVAESEF_VS_M4_MF4 = 1493,
+ PseudoVAESEF_VS_M4_MF8 = 1494,
+ PseudoVAESEF_VS_M8_M1 = 1495,
+ PseudoVAESEF_VS_M8_M2 = 1496,
+ PseudoVAESEF_VS_M8_M4 = 1497,
+ PseudoVAESEF_VS_M8_MF2 = 1498,
+ PseudoVAESEF_VS_M8_MF4 = 1499,
+ PseudoVAESEF_VS_M8_MF8 = 1500,
+ PseudoVAESEF_VS_MF2_MF2 = 1501,
+ PseudoVAESEF_VS_MF2_MF4 = 1502,
+ PseudoVAESEF_VS_MF2_MF8 = 1503,
+ PseudoVAESEF_VV_M1 = 1504,
+ PseudoVAESEF_VV_M2 = 1505,
+ PseudoVAESEF_VV_M4 = 1506,
+ PseudoVAESEF_VV_M8 = 1507,
+ PseudoVAESEF_VV_MF2 = 1508,
+ PseudoVAESEM_VS_M1_M1 = 1509,
+ PseudoVAESEM_VS_M1_MF2 = 1510,
+ PseudoVAESEM_VS_M1_MF4 = 1511,
+ PseudoVAESEM_VS_M1_MF8 = 1512,
+ PseudoVAESEM_VS_M2_M1 = 1513,
+ PseudoVAESEM_VS_M2_M2 = 1514,
+ PseudoVAESEM_VS_M2_MF2 = 1515,
+ PseudoVAESEM_VS_M2_MF4 = 1516,
+ PseudoVAESEM_VS_M2_MF8 = 1517,
+ PseudoVAESEM_VS_M4_M1 = 1518,
+ PseudoVAESEM_VS_M4_M2 = 1519,
+ PseudoVAESEM_VS_M4_M4 = 1520,
+ PseudoVAESEM_VS_M4_MF2 = 1521,
+ PseudoVAESEM_VS_M4_MF4 = 1522,
+ PseudoVAESEM_VS_M4_MF8 = 1523,
+ PseudoVAESEM_VS_M8_M1 = 1524,
+ PseudoVAESEM_VS_M8_M2 = 1525,
+ PseudoVAESEM_VS_M8_M4 = 1526,
+ PseudoVAESEM_VS_M8_MF2 = 1527,
+ PseudoVAESEM_VS_M8_MF4 = 1528,
+ PseudoVAESEM_VS_M8_MF8 = 1529,
+ PseudoVAESEM_VS_MF2_MF2 = 1530,
+ PseudoVAESEM_VS_MF2_MF4 = 1531,
+ PseudoVAESEM_VS_MF2_MF8 = 1532,
+ PseudoVAESEM_VV_M1 = 1533,
+ PseudoVAESEM_VV_M2 = 1534,
+ PseudoVAESEM_VV_M4 = 1535,
+ PseudoVAESEM_VV_M8 = 1536,
+ PseudoVAESEM_VV_MF2 = 1537,
+ PseudoVAESKF1_VI_M1 = 1538,
+ PseudoVAESKF1_VI_M2 = 1539,
+ PseudoVAESKF1_VI_M4 = 1540,
+ PseudoVAESKF1_VI_M8 = 1541,
+ PseudoVAESKF1_VI_MF2 = 1542,
+ PseudoVAESKF2_VI_M1 = 1543,
+ PseudoVAESKF2_VI_M2 = 1544,
+ PseudoVAESKF2_VI_M4 = 1545,
+ PseudoVAESKF2_VI_M8 = 1546,
+ PseudoVAESKF2_VI_MF2 = 1547,
+ PseudoVAESZ_VS_M1_M1 = 1548,
+ PseudoVAESZ_VS_M1_MF2 = 1549,
+ PseudoVAESZ_VS_M1_MF4 = 1550,
+ PseudoVAESZ_VS_M1_MF8 = 1551,
+ PseudoVAESZ_VS_M2_M1 = 1552,
+ PseudoVAESZ_VS_M2_M2 = 1553,
+ PseudoVAESZ_VS_M2_MF2 = 1554,
+ PseudoVAESZ_VS_M2_MF4 = 1555,
+ PseudoVAESZ_VS_M2_MF8 = 1556,
+ PseudoVAESZ_VS_M4_M1 = 1557,
+ PseudoVAESZ_VS_M4_M2 = 1558,
+ PseudoVAESZ_VS_M4_M4 = 1559,
+ PseudoVAESZ_VS_M4_MF2 = 1560,
+ PseudoVAESZ_VS_M4_MF4 = 1561,
+ PseudoVAESZ_VS_M4_MF8 = 1562,
+ PseudoVAESZ_VS_M8_M1 = 1563,
+ PseudoVAESZ_VS_M8_M2 = 1564,
+ PseudoVAESZ_VS_M8_M4 = 1565,
+ PseudoVAESZ_VS_M8_MF2 = 1566,
+ PseudoVAESZ_VS_M8_MF4 = 1567,
+ PseudoVAESZ_VS_M8_MF8 = 1568,
+ PseudoVAESZ_VS_MF2_MF2 = 1569,
+ PseudoVAESZ_VS_MF2_MF4 = 1570,
+ PseudoVAESZ_VS_MF2_MF8 = 1571,
+ PseudoVANDN_VV_M1 = 1572,
+ PseudoVANDN_VV_M1_MASK = 1573,
+ PseudoVANDN_VV_M2 = 1574,
+ PseudoVANDN_VV_M2_MASK = 1575,
+ PseudoVANDN_VV_M4 = 1576,
+ PseudoVANDN_VV_M4_MASK = 1577,
+ PseudoVANDN_VV_M8 = 1578,
+ PseudoVANDN_VV_M8_MASK = 1579,
+ PseudoVANDN_VV_MF2 = 1580,
+ PseudoVANDN_VV_MF2_MASK = 1581,
+ PseudoVANDN_VV_MF4 = 1582,
+ PseudoVANDN_VV_MF4_MASK = 1583,
+ PseudoVANDN_VV_MF8 = 1584,
+ PseudoVANDN_VV_MF8_MASK = 1585,
+ PseudoVANDN_VX_M1 = 1586,
+ PseudoVANDN_VX_M1_MASK = 1587,
+ PseudoVANDN_VX_M2 = 1588,
+ PseudoVANDN_VX_M2_MASK = 1589,
+ PseudoVANDN_VX_M4 = 1590,
+ PseudoVANDN_VX_M4_MASK = 1591,
+ PseudoVANDN_VX_M8 = 1592,
+ PseudoVANDN_VX_M8_MASK = 1593,
+ PseudoVANDN_VX_MF2 = 1594,
+ PseudoVANDN_VX_MF2_MASK = 1595,
+ PseudoVANDN_VX_MF4 = 1596,
+ PseudoVANDN_VX_MF4_MASK = 1597,
+ PseudoVANDN_VX_MF8 = 1598,
+ PseudoVANDN_VX_MF8_MASK = 1599,
+ PseudoVAND_VI_M1 = 1600,
+ PseudoVAND_VI_M1_MASK = 1601,
+ PseudoVAND_VI_M2 = 1602,
+ PseudoVAND_VI_M2_MASK = 1603,
+ PseudoVAND_VI_M4 = 1604,
+ PseudoVAND_VI_M4_MASK = 1605,
+ PseudoVAND_VI_M8 = 1606,
+ PseudoVAND_VI_M8_MASK = 1607,
+ PseudoVAND_VI_MF2 = 1608,
+ PseudoVAND_VI_MF2_MASK = 1609,
+ PseudoVAND_VI_MF4 = 1610,
+ PseudoVAND_VI_MF4_MASK = 1611,
+ PseudoVAND_VI_MF8 = 1612,
+ PseudoVAND_VI_MF8_MASK = 1613,
+ PseudoVAND_VV_M1 = 1614,
+ PseudoVAND_VV_M1_MASK = 1615,
+ PseudoVAND_VV_M2 = 1616,
+ PseudoVAND_VV_M2_MASK = 1617,
+ PseudoVAND_VV_M4 = 1618,
+ PseudoVAND_VV_M4_MASK = 1619,
+ PseudoVAND_VV_M8 = 1620,
+ PseudoVAND_VV_M8_MASK = 1621,
+ PseudoVAND_VV_MF2 = 1622,
+ PseudoVAND_VV_MF2_MASK = 1623,
+ PseudoVAND_VV_MF4 = 1624,
+ PseudoVAND_VV_MF4_MASK = 1625,
+ PseudoVAND_VV_MF8 = 1626,
+ PseudoVAND_VV_MF8_MASK = 1627,
+ PseudoVAND_VX_M1 = 1628,
+ PseudoVAND_VX_M1_MASK = 1629,
+ PseudoVAND_VX_M2 = 1630,
+ PseudoVAND_VX_M2_MASK = 1631,
+ PseudoVAND_VX_M4 = 1632,
+ PseudoVAND_VX_M4_MASK = 1633,
+ PseudoVAND_VX_M8 = 1634,
+ PseudoVAND_VX_M8_MASK = 1635,
+ PseudoVAND_VX_MF2 = 1636,
+ PseudoVAND_VX_MF2_MASK = 1637,
+ PseudoVAND_VX_MF4 = 1638,
+ PseudoVAND_VX_MF4_MASK = 1639,
+ PseudoVAND_VX_MF8 = 1640,
+ PseudoVAND_VX_MF8_MASK = 1641,
+ PseudoVASUBU_VV_M1 = 1642,
+ PseudoVASUBU_VV_M1_MASK = 1643,
+ PseudoVASUBU_VV_M2 = 1644,
+ PseudoVASUBU_VV_M2_MASK = 1645,
+ PseudoVASUBU_VV_M4 = 1646,
+ PseudoVASUBU_VV_M4_MASK = 1647,
+ PseudoVASUBU_VV_M8 = 1648,
+ PseudoVASUBU_VV_M8_MASK = 1649,
+ PseudoVASUBU_VV_MF2 = 1650,
+ PseudoVASUBU_VV_MF2_MASK = 1651,
+ PseudoVASUBU_VV_MF4 = 1652,
+ PseudoVASUBU_VV_MF4_MASK = 1653,
+ PseudoVASUBU_VV_MF8 = 1654,
+ PseudoVASUBU_VV_MF8_MASK = 1655,
+ PseudoVASUBU_VX_M1 = 1656,
+ PseudoVASUBU_VX_M1_MASK = 1657,
+ PseudoVASUBU_VX_M2 = 1658,
+ PseudoVASUBU_VX_M2_MASK = 1659,
+ PseudoVASUBU_VX_M4 = 1660,
+ PseudoVASUBU_VX_M4_MASK = 1661,
+ PseudoVASUBU_VX_M8 = 1662,
+ PseudoVASUBU_VX_M8_MASK = 1663,
+ PseudoVASUBU_VX_MF2 = 1664,
+ PseudoVASUBU_VX_MF2_MASK = 1665,
+ PseudoVASUBU_VX_MF4 = 1666,
+ PseudoVASUBU_VX_MF4_MASK = 1667,
+ PseudoVASUBU_VX_MF8 = 1668,
+ PseudoVASUBU_VX_MF8_MASK = 1669,
+ PseudoVASUB_VV_M1 = 1670,
+ PseudoVASUB_VV_M1_MASK = 1671,
+ PseudoVASUB_VV_M2 = 1672,
+ PseudoVASUB_VV_M2_MASK = 1673,
+ PseudoVASUB_VV_M4 = 1674,
+ PseudoVASUB_VV_M4_MASK = 1675,
+ PseudoVASUB_VV_M8 = 1676,
+ PseudoVASUB_VV_M8_MASK = 1677,
+ PseudoVASUB_VV_MF2 = 1678,
+ PseudoVASUB_VV_MF2_MASK = 1679,
+ PseudoVASUB_VV_MF4 = 1680,
+ PseudoVASUB_VV_MF4_MASK = 1681,
+ PseudoVASUB_VV_MF8 = 1682,
+ PseudoVASUB_VV_MF8_MASK = 1683,
+ PseudoVASUB_VX_M1 = 1684,
+ PseudoVASUB_VX_M1_MASK = 1685,
+ PseudoVASUB_VX_M2 = 1686,
+ PseudoVASUB_VX_M2_MASK = 1687,
+ PseudoVASUB_VX_M4 = 1688,
+ PseudoVASUB_VX_M4_MASK = 1689,
+ PseudoVASUB_VX_M8 = 1690,
+ PseudoVASUB_VX_M8_MASK = 1691,
+ PseudoVASUB_VX_MF2 = 1692,
+ PseudoVASUB_VX_MF2_MASK = 1693,
+ PseudoVASUB_VX_MF4 = 1694,
+ PseudoVASUB_VX_MF4_MASK = 1695,
+ PseudoVASUB_VX_MF8 = 1696,
+ PseudoVASUB_VX_MF8_MASK = 1697,
+ PseudoVBREV8_V_M1 = 1698,
+ PseudoVBREV8_V_M1_MASK = 1699,
+ PseudoVBREV8_V_M2 = 1700,
+ PseudoVBREV8_V_M2_MASK = 1701,
+ PseudoVBREV8_V_M4 = 1702,
+ PseudoVBREV8_V_M4_MASK = 1703,
+ PseudoVBREV8_V_M8 = 1704,
+ PseudoVBREV8_V_M8_MASK = 1705,
+ PseudoVBREV8_V_MF2 = 1706,
+ PseudoVBREV8_V_MF2_MASK = 1707,
+ PseudoVBREV8_V_MF4 = 1708,
+ PseudoVBREV8_V_MF4_MASK = 1709,
+ PseudoVBREV8_V_MF8 = 1710,
+ PseudoVBREV8_V_MF8_MASK = 1711,
+ PseudoVBREV_V_M1 = 1712,
+ PseudoVBREV_V_M1_MASK = 1713,
+ PseudoVBREV_V_M2 = 1714,
+ PseudoVBREV_V_M2_MASK = 1715,
+ PseudoVBREV_V_M4 = 1716,
+ PseudoVBREV_V_M4_MASK = 1717,
+ PseudoVBREV_V_M8 = 1718,
+ PseudoVBREV_V_M8_MASK = 1719,
+ PseudoVBREV_V_MF2 = 1720,
+ PseudoVBREV_V_MF2_MASK = 1721,
+ PseudoVBREV_V_MF4 = 1722,
+ PseudoVBREV_V_MF4_MASK = 1723,
+ PseudoVBREV_V_MF8 = 1724,
+ PseudoVBREV_V_MF8_MASK = 1725,
+ PseudoVCLMULH_VV_M1 = 1726,
+ PseudoVCLMULH_VV_M1_MASK = 1727,
+ PseudoVCLMULH_VV_M2 = 1728,
+ PseudoVCLMULH_VV_M2_MASK = 1729,
+ PseudoVCLMULH_VV_M4 = 1730,
+ PseudoVCLMULH_VV_M4_MASK = 1731,
+ PseudoVCLMULH_VV_M8 = 1732,
+ PseudoVCLMULH_VV_M8_MASK = 1733,
+ PseudoVCLMULH_VV_MF2 = 1734,
+ PseudoVCLMULH_VV_MF2_MASK = 1735,
+ PseudoVCLMULH_VV_MF4 = 1736,
+ PseudoVCLMULH_VV_MF4_MASK = 1737,
+ PseudoVCLMULH_VV_MF8 = 1738,
+ PseudoVCLMULH_VV_MF8_MASK = 1739,
+ PseudoVCLMULH_VX_M1 = 1740,
+ PseudoVCLMULH_VX_M1_MASK = 1741,
+ PseudoVCLMULH_VX_M2 = 1742,
+ PseudoVCLMULH_VX_M2_MASK = 1743,
+ PseudoVCLMULH_VX_M4 = 1744,
+ PseudoVCLMULH_VX_M4_MASK = 1745,
+ PseudoVCLMULH_VX_M8 = 1746,
+ PseudoVCLMULH_VX_M8_MASK = 1747,
+ PseudoVCLMULH_VX_MF2 = 1748,
+ PseudoVCLMULH_VX_MF2_MASK = 1749,
+ PseudoVCLMULH_VX_MF4 = 1750,
+ PseudoVCLMULH_VX_MF4_MASK = 1751,
+ PseudoVCLMULH_VX_MF8 = 1752,
+ PseudoVCLMULH_VX_MF8_MASK = 1753,
+ PseudoVCLMUL_VV_M1 = 1754,
+ PseudoVCLMUL_VV_M1_MASK = 1755,
+ PseudoVCLMUL_VV_M2 = 1756,
+ PseudoVCLMUL_VV_M2_MASK = 1757,
+ PseudoVCLMUL_VV_M4 = 1758,
+ PseudoVCLMUL_VV_M4_MASK = 1759,
+ PseudoVCLMUL_VV_M8 = 1760,
+ PseudoVCLMUL_VV_M8_MASK = 1761,
+ PseudoVCLMUL_VV_MF2 = 1762,
+ PseudoVCLMUL_VV_MF2_MASK = 1763,
+ PseudoVCLMUL_VV_MF4 = 1764,
+ PseudoVCLMUL_VV_MF4_MASK = 1765,
+ PseudoVCLMUL_VV_MF8 = 1766,
+ PseudoVCLMUL_VV_MF8_MASK = 1767,
+ PseudoVCLMUL_VX_M1 = 1768,
+ PseudoVCLMUL_VX_M1_MASK = 1769,
+ PseudoVCLMUL_VX_M2 = 1770,
+ PseudoVCLMUL_VX_M2_MASK = 1771,
+ PseudoVCLMUL_VX_M4 = 1772,
+ PseudoVCLMUL_VX_M4_MASK = 1773,
+ PseudoVCLMUL_VX_M8 = 1774,
+ PseudoVCLMUL_VX_M8_MASK = 1775,
+ PseudoVCLMUL_VX_MF2 = 1776,
+ PseudoVCLMUL_VX_MF2_MASK = 1777,
+ PseudoVCLMUL_VX_MF4 = 1778,
+ PseudoVCLMUL_VX_MF4_MASK = 1779,
+ PseudoVCLMUL_VX_MF8 = 1780,
+ PseudoVCLMUL_VX_MF8_MASK = 1781,
+ PseudoVCLZ_V_M1 = 1782,
+ PseudoVCLZ_V_M1_MASK = 1783,
+ PseudoVCLZ_V_M2 = 1784,
+ PseudoVCLZ_V_M2_MASK = 1785,
+ PseudoVCLZ_V_M4 = 1786,
+ PseudoVCLZ_V_M4_MASK = 1787,
+ PseudoVCLZ_V_M8 = 1788,
+ PseudoVCLZ_V_M8_MASK = 1789,
+ PseudoVCLZ_V_MF2 = 1790,
+ PseudoVCLZ_V_MF2_MASK = 1791,
+ PseudoVCLZ_V_MF4 = 1792,
+ PseudoVCLZ_V_MF4_MASK = 1793,
+ PseudoVCLZ_V_MF8 = 1794,
+ PseudoVCLZ_V_MF8_MASK = 1795,
+ PseudoVCOMPRESS_VM_M1_E16 = 1796,
+ PseudoVCOMPRESS_VM_M1_E32 = 1797,
+ PseudoVCOMPRESS_VM_M1_E64 = 1798,
+ PseudoVCOMPRESS_VM_M1_E8 = 1799,
+ PseudoVCOMPRESS_VM_M2_E16 = 1800,
+ PseudoVCOMPRESS_VM_M2_E32 = 1801,
+ PseudoVCOMPRESS_VM_M2_E64 = 1802,
+ PseudoVCOMPRESS_VM_M2_E8 = 1803,
+ PseudoVCOMPRESS_VM_M4_E16 = 1804,
+ PseudoVCOMPRESS_VM_M4_E32 = 1805,
+ PseudoVCOMPRESS_VM_M4_E64 = 1806,
+ PseudoVCOMPRESS_VM_M4_E8 = 1807,
+ PseudoVCOMPRESS_VM_M8_E16 = 1808,
+ PseudoVCOMPRESS_VM_M8_E32 = 1809,
+ PseudoVCOMPRESS_VM_M8_E64 = 1810,
+ PseudoVCOMPRESS_VM_M8_E8 = 1811,
+ PseudoVCOMPRESS_VM_MF2_E16 = 1812,
+ PseudoVCOMPRESS_VM_MF2_E32 = 1813,
+ PseudoVCOMPRESS_VM_MF2_E8 = 1814,
+ PseudoVCOMPRESS_VM_MF4_E16 = 1815,
+ PseudoVCOMPRESS_VM_MF4_E8 = 1816,
+ PseudoVCOMPRESS_VM_MF8_E8 = 1817,
+ PseudoVCPOP_M_B1 = 1818,
+ PseudoVCPOP_M_B16 = 1819,
+ PseudoVCPOP_M_B16_MASK = 1820,
+ PseudoVCPOP_M_B1_MASK = 1821,
+ PseudoVCPOP_M_B2 = 1822,
+ PseudoVCPOP_M_B2_MASK = 1823,
+ PseudoVCPOP_M_B32 = 1824,
+ PseudoVCPOP_M_B32_MASK = 1825,
+ PseudoVCPOP_M_B4 = 1826,
+ PseudoVCPOP_M_B4_MASK = 1827,
+ PseudoVCPOP_M_B64 = 1828,
+ PseudoVCPOP_M_B64_MASK = 1829,
+ PseudoVCPOP_M_B8 = 1830,
+ PseudoVCPOP_M_B8_MASK = 1831,
+ PseudoVCPOP_V_M1 = 1832,
+ PseudoVCPOP_V_M1_MASK = 1833,
+ PseudoVCPOP_V_M2 = 1834,
+ PseudoVCPOP_V_M2_MASK = 1835,
+ PseudoVCPOP_V_M4 = 1836,
+ PseudoVCPOP_V_M4_MASK = 1837,
+ PseudoVCPOP_V_M8 = 1838,
+ PseudoVCPOP_V_M8_MASK = 1839,
+ PseudoVCPOP_V_MF2 = 1840,
+ PseudoVCPOP_V_MF2_MASK = 1841,
+ PseudoVCPOP_V_MF4 = 1842,
+ PseudoVCPOP_V_MF4_MASK = 1843,
+ PseudoVCPOP_V_MF8 = 1844,
+ PseudoVCPOP_V_MF8_MASK = 1845,
+ PseudoVCTZ_V_M1 = 1846,
+ PseudoVCTZ_V_M1_MASK = 1847,
+ PseudoVCTZ_V_M2 = 1848,
+ PseudoVCTZ_V_M2_MASK = 1849,
+ PseudoVCTZ_V_M4 = 1850,
+ PseudoVCTZ_V_M4_MASK = 1851,
+ PseudoVCTZ_V_M8 = 1852,
+ PseudoVCTZ_V_M8_MASK = 1853,
+ PseudoVCTZ_V_MF2 = 1854,
+ PseudoVCTZ_V_MF2_MASK = 1855,
+ PseudoVCTZ_V_MF4 = 1856,
+ PseudoVCTZ_V_MF4_MASK = 1857,
+ PseudoVCTZ_V_MF8 = 1858,
+ PseudoVCTZ_V_MF8_MASK = 1859,
+ PseudoVDIVU_VV_M1_E16 = 1860,
+ PseudoVDIVU_VV_M1_E16_MASK = 1861,
+ PseudoVDIVU_VV_M1_E32 = 1862,
+ PseudoVDIVU_VV_M1_E32_MASK = 1863,
+ PseudoVDIVU_VV_M1_E64 = 1864,
+ PseudoVDIVU_VV_M1_E64_MASK = 1865,
+ PseudoVDIVU_VV_M1_E8 = 1866,
+ PseudoVDIVU_VV_M1_E8_MASK = 1867,
+ PseudoVDIVU_VV_M2_E16 = 1868,
+ PseudoVDIVU_VV_M2_E16_MASK = 1869,
+ PseudoVDIVU_VV_M2_E32 = 1870,
+ PseudoVDIVU_VV_M2_E32_MASK = 1871,
+ PseudoVDIVU_VV_M2_E64 = 1872,
+ PseudoVDIVU_VV_M2_E64_MASK = 1873,
+ PseudoVDIVU_VV_M2_E8 = 1874,
+ PseudoVDIVU_VV_M2_E8_MASK = 1875,
+ PseudoVDIVU_VV_M4_E16 = 1876,
+ PseudoVDIVU_VV_M4_E16_MASK = 1877,
+ PseudoVDIVU_VV_M4_E32 = 1878,
+ PseudoVDIVU_VV_M4_E32_MASK = 1879,
+ PseudoVDIVU_VV_M4_E64 = 1880,
+ PseudoVDIVU_VV_M4_E64_MASK = 1881,
+ PseudoVDIVU_VV_M4_E8 = 1882,
+ PseudoVDIVU_VV_M4_E8_MASK = 1883,
+ PseudoVDIVU_VV_M8_E16 = 1884,
+ PseudoVDIVU_VV_M8_E16_MASK = 1885,
+ PseudoVDIVU_VV_M8_E32 = 1886,
+ PseudoVDIVU_VV_M8_E32_MASK = 1887,
+ PseudoVDIVU_VV_M8_E64 = 1888,
+ PseudoVDIVU_VV_M8_E64_MASK = 1889,
+ PseudoVDIVU_VV_M8_E8 = 1890,
+ PseudoVDIVU_VV_M8_E8_MASK = 1891,
+ PseudoVDIVU_VV_MF2_E16 = 1892,
+ PseudoVDIVU_VV_MF2_E16_MASK = 1893,
+ PseudoVDIVU_VV_MF2_E32 = 1894,
+ PseudoVDIVU_VV_MF2_E32_MASK = 1895,
+ PseudoVDIVU_VV_MF2_E8 = 1896,
+ PseudoVDIVU_VV_MF2_E8_MASK = 1897,
+ PseudoVDIVU_VV_MF4_E16 = 1898,
+ PseudoVDIVU_VV_MF4_E16_MASK = 1899,
+ PseudoVDIVU_VV_MF4_E8 = 1900,
+ PseudoVDIVU_VV_MF4_E8_MASK = 1901,
+ PseudoVDIVU_VV_MF8_E8 = 1902,
+ PseudoVDIVU_VV_MF8_E8_MASK = 1903,
+ PseudoVDIVU_VX_M1_E16 = 1904,
+ PseudoVDIVU_VX_M1_E16_MASK = 1905,
+ PseudoVDIVU_VX_M1_E32 = 1906,
+ PseudoVDIVU_VX_M1_E32_MASK = 1907,
+ PseudoVDIVU_VX_M1_E64 = 1908,
+ PseudoVDIVU_VX_M1_E64_MASK = 1909,
+ PseudoVDIVU_VX_M1_E8 = 1910,
+ PseudoVDIVU_VX_M1_E8_MASK = 1911,
+ PseudoVDIVU_VX_M2_E16 = 1912,
+ PseudoVDIVU_VX_M2_E16_MASK = 1913,
+ PseudoVDIVU_VX_M2_E32 = 1914,
+ PseudoVDIVU_VX_M2_E32_MASK = 1915,
+ PseudoVDIVU_VX_M2_E64 = 1916,
+ PseudoVDIVU_VX_M2_E64_MASK = 1917,
+ PseudoVDIVU_VX_M2_E8 = 1918,
+ PseudoVDIVU_VX_M2_E8_MASK = 1919,
+ PseudoVDIVU_VX_M4_E16 = 1920,
+ PseudoVDIVU_VX_M4_E16_MASK = 1921,
+ PseudoVDIVU_VX_M4_E32 = 1922,
+ PseudoVDIVU_VX_M4_E32_MASK = 1923,
+ PseudoVDIVU_VX_M4_E64 = 1924,
+ PseudoVDIVU_VX_M4_E64_MASK = 1925,
+ PseudoVDIVU_VX_M4_E8 = 1926,
+ PseudoVDIVU_VX_M4_E8_MASK = 1927,
+ PseudoVDIVU_VX_M8_E16 = 1928,
+ PseudoVDIVU_VX_M8_E16_MASK = 1929,
+ PseudoVDIVU_VX_M8_E32 = 1930,
+ PseudoVDIVU_VX_M8_E32_MASK = 1931,
+ PseudoVDIVU_VX_M8_E64 = 1932,
+ PseudoVDIVU_VX_M8_E64_MASK = 1933,
+ PseudoVDIVU_VX_M8_E8 = 1934,
+ PseudoVDIVU_VX_M8_E8_MASK = 1935,
+ PseudoVDIVU_VX_MF2_E16 = 1936,
+ PseudoVDIVU_VX_MF2_E16_MASK = 1937,
+ PseudoVDIVU_VX_MF2_E32 = 1938,
+ PseudoVDIVU_VX_MF2_E32_MASK = 1939,
+ PseudoVDIVU_VX_MF2_E8 = 1940,
+ PseudoVDIVU_VX_MF2_E8_MASK = 1941,
+ PseudoVDIVU_VX_MF4_E16 = 1942,
+ PseudoVDIVU_VX_MF4_E16_MASK = 1943,
+ PseudoVDIVU_VX_MF4_E8 = 1944,
+ PseudoVDIVU_VX_MF4_E8_MASK = 1945,
+ PseudoVDIVU_VX_MF8_E8 = 1946,
+ PseudoVDIVU_VX_MF8_E8_MASK = 1947,
+ PseudoVDIV_VV_M1_E16 = 1948,
+ PseudoVDIV_VV_M1_E16_MASK = 1949,
+ PseudoVDIV_VV_M1_E32 = 1950,
+ PseudoVDIV_VV_M1_E32_MASK = 1951,
+ PseudoVDIV_VV_M1_E64 = 1952,
+ PseudoVDIV_VV_M1_E64_MASK = 1953,
+ PseudoVDIV_VV_M1_E8 = 1954,
+ PseudoVDIV_VV_M1_E8_MASK = 1955,
+ PseudoVDIV_VV_M2_E16 = 1956,
+ PseudoVDIV_VV_M2_E16_MASK = 1957,
+ PseudoVDIV_VV_M2_E32 = 1958,
+ PseudoVDIV_VV_M2_E32_MASK = 1959,
+ PseudoVDIV_VV_M2_E64 = 1960,
+ PseudoVDIV_VV_M2_E64_MASK = 1961,
+ PseudoVDIV_VV_M2_E8 = 1962,
+ PseudoVDIV_VV_M2_E8_MASK = 1963,
+ PseudoVDIV_VV_M4_E16 = 1964,
+ PseudoVDIV_VV_M4_E16_MASK = 1965,
+ PseudoVDIV_VV_M4_E32 = 1966,
+ PseudoVDIV_VV_M4_E32_MASK = 1967,
+ PseudoVDIV_VV_M4_E64 = 1968,
+ PseudoVDIV_VV_M4_E64_MASK = 1969,
+ PseudoVDIV_VV_M4_E8 = 1970,
+ PseudoVDIV_VV_M4_E8_MASK = 1971,
+ PseudoVDIV_VV_M8_E16 = 1972,
+ PseudoVDIV_VV_M8_E16_MASK = 1973,
+ PseudoVDIV_VV_M8_E32 = 1974,
+ PseudoVDIV_VV_M8_E32_MASK = 1975,
+ PseudoVDIV_VV_M8_E64 = 1976,
+ PseudoVDIV_VV_M8_E64_MASK = 1977,
+ PseudoVDIV_VV_M8_E8 = 1978,
+ PseudoVDIV_VV_M8_E8_MASK = 1979,
+ PseudoVDIV_VV_MF2_E16 = 1980,
+ PseudoVDIV_VV_MF2_E16_MASK = 1981,
+ PseudoVDIV_VV_MF2_E32 = 1982,
+ PseudoVDIV_VV_MF2_E32_MASK = 1983,
+ PseudoVDIV_VV_MF2_E8 = 1984,
+ PseudoVDIV_VV_MF2_E8_MASK = 1985,
+ PseudoVDIV_VV_MF4_E16 = 1986,
+ PseudoVDIV_VV_MF4_E16_MASK = 1987,
+ PseudoVDIV_VV_MF4_E8 = 1988,
+ PseudoVDIV_VV_MF4_E8_MASK = 1989,
+ PseudoVDIV_VV_MF8_E8 = 1990,
+ PseudoVDIV_VV_MF8_E8_MASK = 1991,
+ PseudoVDIV_VX_M1_E16 = 1992,
+ PseudoVDIV_VX_M1_E16_MASK = 1993,
+ PseudoVDIV_VX_M1_E32 = 1994,
+ PseudoVDIV_VX_M1_E32_MASK = 1995,
+ PseudoVDIV_VX_M1_E64 = 1996,
+ PseudoVDIV_VX_M1_E64_MASK = 1997,
+ PseudoVDIV_VX_M1_E8 = 1998,
+ PseudoVDIV_VX_M1_E8_MASK = 1999,
+ PseudoVDIV_VX_M2_E16 = 2000,
+ PseudoVDIV_VX_M2_E16_MASK = 2001,
+ PseudoVDIV_VX_M2_E32 = 2002,
+ PseudoVDIV_VX_M2_E32_MASK = 2003,
+ PseudoVDIV_VX_M2_E64 = 2004,
+ PseudoVDIV_VX_M2_E64_MASK = 2005,
+ PseudoVDIV_VX_M2_E8 = 2006,
+ PseudoVDIV_VX_M2_E8_MASK = 2007,
+ PseudoVDIV_VX_M4_E16 = 2008,
+ PseudoVDIV_VX_M4_E16_MASK = 2009,
+ PseudoVDIV_VX_M4_E32 = 2010,
+ PseudoVDIV_VX_M4_E32_MASK = 2011,
+ PseudoVDIV_VX_M4_E64 = 2012,
+ PseudoVDIV_VX_M4_E64_MASK = 2013,
+ PseudoVDIV_VX_M4_E8 = 2014,
+ PseudoVDIV_VX_M4_E8_MASK = 2015,
+ PseudoVDIV_VX_M8_E16 = 2016,
+ PseudoVDIV_VX_M8_E16_MASK = 2017,
+ PseudoVDIV_VX_M8_E32 = 2018,
+ PseudoVDIV_VX_M8_E32_MASK = 2019,
+ PseudoVDIV_VX_M8_E64 = 2020,
+ PseudoVDIV_VX_M8_E64_MASK = 2021,
+ PseudoVDIV_VX_M8_E8 = 2022,
+ PseudoVDIV_VX_M8_E8_MASK = 2023,
+ PseudoVDIV_VX_MF2_E16 = 2024,
+ PseudoVDIV_VX_MF2_E16_MASK = 2025,
+ PseudoVDIV_VX_MF2_E32 = 2026,
+ PseudoVDIV_VX_MF2_E32_MASK = 2027,
+ PseudoVDIV_VX_MF2_E8 = 2028,
+ PseudoVDIV_VX_MF2_E8_MASK = 2029,
+ PseudoVDIV_VX_MF4_E16 = 2030,
+ PseudoVDIV_VX_MF4_E16_MASK = 2031,
+ PseudoVDIV_VX_MF4_E8 = 2032,
+ PseudoVDIV_VX_MF4_E8_MASK = 2033,
+ PseudoVDIV_VX_MF8_E8 = 2034,
+ PseudoVDIV_VX_MF8_E8_MASK = 2035,
+ PseudoVFADD_ALT_VFPR16_M1_E16 = 2036,
+ PseudoVFADD_ALT_VFPR16_M1_E16_MASK = 2037,
+ PseudoVFADD_ALT_VFPR16_M2_E16 = 2038,
+ PseudoVFADD_ALT_VFPR16_M2_E16_MASK = 2039,
+ PseudoVFADD_ALT_VFPR16_M4_E16 = 2040,
+ PseudoVFADD_ALT_VFPR16_M4_E16_MASK = 2041,
+ PseudoVFADD_ALT_VFPR16_M8_E16 = 2042,
+ PseudoVFADD_ALT_VFPR16_M8_E16_MASK = 2043,
+ PseudoVFADD_ALT_VFPR16_MF2_E16 = 2044,
+ PseudoVFADD_ALT_VFPR16_MF2_E16_MASK = 2045,
+ PseudoVFADD_ALT_VFPR16_MF4_E16 = 2046,
+ PseudoVFADD_ALT_VFPR16_MF4_E16_MASK = 2047,
+ PseudoVFADD_ALT_VV_M1_E16 = 2048,
+ PseudoVFADD_ALT_VV_M1_E16_MASK = 2049,
+ PseudoVFADD_ALT_VV_M2_E16 = 2050,
+ PseudoVFADD_ALT_VV_M2_E16_MASK = 2051,
+ PseudoVFADD_ALT_VV_M4_E16 = 2052,
+ PseudoVFADD_ALT_VV_M4_E16_MASK = 2053,
+ PseudoVFADD_ALT_VV_M8_E16 = 2054,
+ PseudoVFADD_ALT_VV_M8_E16_MASK = 2055,
+ PseudoVFADD_ALT_VV_MF2_E16 = 2056,
+ PseudoVFADD_ALT_VV_MF2_E16_MASK = 2057,
+ PseudoVFADD_ALT_VV_MF4_E16 = 2058,
+ PseudoVFADD_ALT_VV_MF4_E16_MASK = 2059,
+ PseudoVFADD_VFPR16_M1_E16 = 2060,
+ PseudoVFADD_VFPR16_M1_E16_MASK = 2061,
+ PseudoVFADD_VFPR16_M2_E16 = 2062,
+ PseudoVFADD_VFPR16_M2_E16_MASK = 2063,
+ PseudoVFADD_VFPR16_M4_E16 = 2064,
+ PseudoVFADD_VFPR16_M4_E16_MASK = 2065,
+ PseudoVFADD_VFPR16_M8_E16 = 2066,
+ PseudoVFADD_VFPR16_M8_E16_MASK = 2067,
+ PseudoVFADD_VFPR16_MF2_E16 = 2068,
+ PseudoVFADD_VFPR16_MF2_E16_MASK = 2069,
+ PseudoVFADD_VFPR16_MF4_E16 = 2070,
+ PseudoVFADD_VFPR16_MF4_E16_MASK = 2071,
+ PseudoVFADD_VFPR32_M1_E32 = 2072,
+ PseudoVFADD_VFPR32_M1_E32_MASK = 2073,
+ PseudoVFADD_VFPR32_M2_E32 = 2074,
+ PseudoVFADD_VFPR32_M2_E32_MASK = 2075,
+ PseudoVFADD_VFPR32_M4_E32 = 2076,
+ PseudoVFADD_VFPR32_M4_E32_MASK = 2077,
+ PseudoVFADD_VFPR32_M8_E32 = 2078,
+ PseudoVFADD_VFPR32_M8_E32_MASK = 2079,
+ PseudoVFADD_VFPR32_MF2_E32 = 2080,
+ PseudoVFADD_VFPR32_MF2_E32_MASK = 2081,
+ PseudoVFADD_VFPR64_M1_E64 = 2082,
+ PseudoVFADD_VFPR64_M1_E64_MASK = 2083,
+ PseudoVFADD_VFPR64_M2_E64 = 2084,
+ PseudoVFADD_VFPR64_M2_E64_MASK = 2085,
+ PseudoVFADD_VFPR64_M4_E64 = 2086,
+ PseudoVFADD_VFPR64_M4_E64_MASK = 2087,
+ PseudoVFADD_VFPR64_M8_E64 = 2088,
+ PseudoVFADD_VFPR64_M8_E64_MASK = 2089,
+ PseudoVFADD_VV_M1_E16 = 2090,
+ PseudoVFADD_VV_M1_E16_MASK = 2091,
+ PseudoVFADD_VV_M1_E32 = 2092,
+ PseudoVFADD_VV_M1_E32_MASK = 2093,
+ PseudoVFADD_VV_M1_E64 = 2094,
+ PseudoVFADD_VV_M1_E64_MASK = 2095,
+ PseudoVFADD_VV_M2_E16 = 2096,
+ PseudoVFADD_VV_M2_E16_MASK = 2097,
+ PseudoVFADD_VV_M2_E32 = 2098,
+ PseudoVFADD_VV_M2_E32_MASK = 2099,
+ PseudoVFADD_VV_M2_E64 = 2100,
+ PseudoVFADD_VV_M2_E64_MASK = 2101,
+ PseudoVFADD_VV_M4_E16 = 2102,
+ PseudoVFADD_VV_M4_E16_MASK = 2103,
+ PseudoVFADD_VV_M4_E32 = 2104,
+ PseudoVFADD_VV_M4_E32_MASK = 2105,
+ PseudoVFADD_VV_M4_E64 = 2106,
+ PseudoVFADD_VV_M4_E64_MASK = 2107,
+ PseudoVFADD_VV_M8_E16 = 2108,
+ PseudoVFADD_VV_M8_E16_MASK = 2109,
+ PseudoVFADD_VV_M8_E32 = 2110,
+ PseudoVFADD_VV_M8_E32_MASK = 2111,
+ PseudoVFADD_VV_M8_E64 = 2112,
+ PseudoVFADD_VV_M8_E64_MASK = 2113,
+ PseudoVFADD_VV_MF2_E16 = 2114,
+ PseudoVFADD_VV_MF2_E16_MASK = 2115,
+ PseudoVFADD_VV_MF2_E32 = 2116,
+ PseudoVFADD_VV_MF2_E32_MASK = 2117,
+ PseudoVFADD_VV_MF4_E16 = 2118,
+ PseudoVFADD_VV_MF4_E16_MASK = 2119,
+ PseudoVFCLASS_ALT_V_M1 = 2120,
+ PseudoVFCLASS_ALT_V_M1_MASK = 2121,
+ PseudoVFCLASS_ALT_V_M2 = 2122,
+ PseudoVFCLASS_ALT_V_M2_MASK = 2123,
+ PseudoVFCLASS_ALT_V_M4 = 2124,
+ PseudoVFCLASS_ALT_V_M4_MASK = 2125,
+ PseudoVFCLASS_ALT_V_M8 = 2126,
+ PseudoVFCLASS_ALT_V_M8_MASK = 2127,
+ PseudoVFCLASS_ALT_V_MF2 = 2128,
+ PseudoVFCLASS_ALT_V_MF2_MASK = 2129,
+ PseudoVFCLASS_ALT_V_MF4 = 2130,
+ PseudoVFCLASS_ALT_V_MF4_MASK = 2131,
+ PseudoVFCLASS_V_M1 = 2132,
+ PseudoVFCLASS_V_M1_MASK = 2133,
+ PseudoVFCLASS_V_M2 = 2134,
+ PseudoVFCLASS_V_M2_MASK = 2135,
+ PseudoVFCLASS_V_M4 = 2136,
+ PseudoVFCLASS_V_M4_MASK = 2137,
+ PseudoVFCLASS_V_M8 = 2138,
+ PseudoVFCLASS_V_M8_MASK = 2139,
+ PseudoVFCLASS_V_MF2 = 2140,
+ PseudoVFCLASS_V_MF2_MASK = 2141,
+ PseudoVFCLASS_V_MF4 = 2142,
+ PseudoVFCLASS_V_MF4_MASK = 2143,
+ PseudoVFCVT_F_XU_V_M1_E16 = 2144,
+ PseudoVFCVT_F_XU_V_M1_E16_MASK = 2145,
+ PseudoVFCVT_F_XU_V_M1_E32 = 2146,
+ PseudoVFCVT_F_XU_V_M1_E32_MASK = 2147,
+ PseudoVFCVT_F_XU_V_M1_E64 = 2148,
+ PseudoVFCVT_F_XU_V_M1_E64_MASK = 2149,
+ PseudoVFCVT_F_XU_V_M2_E16 = 2150,
+ PseudoVFCVT_F_XU_V_M2_E16_MASK = 2151,
+ PseudoVFCVT_F_XU_V_M2_E32 = 2152,
+ PseudoVFCVT_F_XU_V_M2_E32_MASK = 2153,
+ PseudoVFCVT_F_XU_V_M2_E64 = 2154,
+ PseudoVFCVT_F_XU_V_M2_E64_MASK = 2155,
+ PseudoVFCVT_F_XU_V_M4_E16 = 2156,
+ PseudoVFCVT_F_XU_V_M4_E16_MASK = 2157,
+ PseudoVFCVT_F_XU_V_M4_E32 = 2158,
+ PseudoVFCVT_F_XU_V_M4_E32_MASK = 2159,
+ PseudoVFCVT_F_XU_V_M4_E64 = 2160,
+ PseudoVFCVT_F_XU_V_M4_E64_MASK = 2161,
+ PseudoVFCVT_F_XU_V_M8_E16 = 2162,
+ PseudoVFCVT_F_XU_V_M8_E16_MASK = 2163,
+ PseudoVFCVT_F_XU_V_M8_E32 = 2164,
+ PseudoVFCVT_F_XU_V_M8_E32_MASK = 2165,
+ PseudoVFCVT_F_XU_V_M8_E64 = 2166,
+ PseudoVFCVT_F_XU_V_M8_E64_MASK = 2167,
+ PseudoVFCVT_F_XU_V_MF2_E16 = 2168,
+ PseudoVFCVT_F_XU_V_MF2_E16_MASK = 2169,
+ PseudoVFCVT_F_XU_V_MF2_E32 = 2170,
+ PseudoVFCVT_F_XU_V_MF2_E32_MASK = 2171,
+ PseudoVFCVT_F_XU_V_MF4_E16 = 2172,
+ PseudoVFCVT_F_XU_V_MF4_E16_MASK = 2173,
+ PseudoVFCVT_F_X_V_M1_E16 = 2174,
+ PseudoVFCVT_F_X_V_M1_E16_MASK = 2175,
+ PseudoVFCVT_F_X_V_M1_E32 = 2176,
+ PseudoVFCVT_F_X_V_M1_E32_MASK = 2177,
+ PseudoVFCVT_F_X_V_M1_E64 = 2178,
+ PseudoVFCVT_F_X_V_M1_E64_MASK = 2179,
+ PseudoVFCVT_F_X_V_M2_E16 = 2180,
+ PseudoVFCVT_F_X_V_M2_E16_MASK = 2181,
+ PseudoVFCVT_F_X_V_M2_E32 = 2182,
+ PseudoVFCVT_F_X_V_M2_E32_MASK = 2183,
+ PseudoVFCVT_F_X_V_M2_E64 = 2184,
+ PseudoVFCVT_F_X_V_M2_E64_MASK = 2185,
+ PseudoVFCVT_F_X_V_M4_E16 = 2186,
+ PseudoVFCVT_F_X_V_M4_E16_MASK = 2187,
+ PseudoVFCVT_F_X_V_M4_E32 = 2188,
+ PseudoVFCVT_F_X_V_M4_E32_MASK = 2189,
+ PseudoVFCVT_F_X_V_M4_E64 = 2190,
+ PseudoVFCVT_F_X_V_M4_E64_MASK = 2191,
+ PseudoVFCVT_F_X_V_M8_E16 = 2192,
+ PseudoVFCVT_F_X_V_M8_E16_MASK = 2193,
+ PseudoVFCVT_F_X_V_M8_E32 = 2194,
+ PseudoVFCVT_F_X_V_M8_E32_MASK = 2195,
+ PseudoVFCVT_F_X_V_M8_E64 = 2196,
+ PseudoVFCVT_F_X_V_M8_E64_MASK = 2197,
+ PseudoVFCVT_F_X_V_MF2_E16 = 2198,
+ PseudoVFCVT_F_X_V_MF2_E16_MASK = 2199,
+ PseudoVFCVT_F_X_V_MF2_E32 = 2200,
+ PseudoVFCVT_F_X_V_MF2_E32_MASK = 2201,
+ PseudoVFCVT_F_X_V_MF4_E16 = 2202,
+ PseudoVFCVT_F_X_V_MF4_E16_MASK = 2203,
+ PseudoVFCVT_RTZ_XU_F_V_M1 = 2204,
+ PseudoVFCVT_RTZ_XU_F_V_M1_MASK = 2205,
+ PseudoVFCVT_RTZ_XU_F_V_M2 = 2206,
+ PseudoVFCVT_RTZ_XU_F_V_M2_MASK = 2207,
+ PseudoVFCVT_RTZ_XU_F_V_M4 = 2208,
+ PseudoVFCVT_RTZ_XU_F_V_M4_MASK = 2209,
+ PseudoVFCVT_RTZ_XU_F_V_M8 = 2210,
+ PseudoVFCVT_RTZ_XU_F_V_M8_MASK = 2211,
+ PseudoVFCVT_RTZ_XU_F_V_MF2 = 2212,
+ PseudoVFCVT_RTZ_XU_F_V_MF2_MASK = 2213,
+ PseudoVFCVT_RTZ_XU_F_V_MF4 = 2214,
+ PseudoVFCVT_RTZ_XU_F_V_MF4_MASK = 2215,
+ PseudoVFCVT_RTZ_X_F_V_M1 = 2216,
+ PseudoVFCVT_RTZ_X_F_V_M1_MASK = 2217,
+ PseudoVFCVT_RTZ_X_F_V_M2 = 2218,
+ PseudoVFCVT_RTZ_X_F_V_M2_MASK = 2219,
+ PseudoVFCVT_RTZ_X_F_V_M4 = 2220,
+ PseudoVFCVT_RTZ_X_F_V_M4_MASK = 2221,
+ PseudoVFCVT_RTZ_X_F_V_M8 = 2222,
+ PseudoVFCVT_RTZ_X_F_V_M8_MASK = 2223,
+ PseudoVFCVT_RTZ_X_F_V_MF2 = 2224,
+ PseudoVFCVT_RTZ_X_F_V_MF2_MASK = 2225,
+ PseudoVFCVT_RTZ_X_F_V_MF4 = 2226,
+ PseudoVFCVT_RTZ_X_F_V_MF4_MASK = 2227,
+ PseudoVFCVT_XU_F_V_M1 = 2228,
+ PseudoVFCVT_XU_F_V_M1_MASK = 2229,
+ PseudoVFCVT_XU_F_V_M2 = 2230,
+ PseudoVFCVT_XU_F_V_M2_MASK = 2231,
+ PseudoVFCVT_XU_F_V_M4 = 2232,
+ PseudoVFCVT_XU_F_V_M4_MASK = 2233,
+ PseudoVFCVT_XU_F_V_M8 = 2234,
+ PseudoVFCVT_XU_F_V_M8_MASK = 2235,
+ PseudoVFCVT_XU_F_V_MF2 = 2236,
+ PseudoVFCVT_XU_F_V_MF2_MASK = 2237,
+ PseudoVFCVT_XU_F_V_MF4 = 2238,
+ PseudoVFCVT_XU_F_V_MF4_MASK = 2239,
+ PseudoVFCVT_X_F_V_M1 = 2240,
+ PseudoVFCVT_X_F_V_M1_MASK = 2241,
+ PseudoVFCVT_X_F_V_M2 = 2242,
+ PseudoVFCVT_X_F_V_M2_MASK = 2243,
+ PseudoVFCVT_X_F_V_M4 = 2244,
+ PseudoVFCVT_X_F_V_M4_MASK = 2245,
+ PseudoVFCVT_X_F_V_M8 = 2246,
+ PseudoVFCVT_X_F_V_M8_MASK = 2247,
+ PseudoVFCVT_X_F_V_MF2 = 2248,
+ PseudoVFCVT_X_F_V_MF2_MASK = 2249,
+ PseudoVFCVT_X_F_V_MF4 = 2250,
+ PseudoVFCVT_X_F_V_MF4_MASK = 2251,
+ PseudoVFDIV_VFPR16_M1_E16 = 2252,
+ PseudoVFDIV_VFPR16_M1_E16_MASK = 2253,
+ PseudoVFDIV_VFPR16_M2_E16 = 2254,
+ PseudoVFDIV_VFPR16_M2_E16_MASK = 2255,
+ PseudoVFDIV_VFPR16_M4_E16 = 2256,
+ PseudoVFDIV_VFPR16_M4_E16_MASK = 2257,
+ PseudoVFDIV_VFPR16_M8_E16 = 2258,
+ PseudoVFDIV_VFPR16_M8_E16_MASK = 2259,
+ PseudoVFDIV_VFPR16_MF2_E16 = 2260,
+ PseudoVFDIV_VFPR16_MF2_E16_MASK = 2261,
+ PseudoVFDIV_VFPR16_MF4_E16 = 2262,
+ PseudoVFDIV_VFPR16_MF4_E16_MASK = 2263,
+ PseudoVFDIV_VFPR32_M1_E32 = 2264,
+ PseudoVFDIV_VFPR32_M1_E32_MASK = 2265,
+ PseudoVFDIV_VFPR32_M2_E32 = 2266,
+ PseudoVFDIV_VFPR32_M2_E32_MASK = 2267,
+ PseudoVFDIV_VFPR32_M4_E32 = 2268,
+ PseudoVFDIV_VFPR32_M4_E32_MASK = 2269,
+ PseudoVFDIV_VFPR32_M8_E32 = 2270,
+ PseudoVFDIV_VFPR32_M8_E32_MASK = 2271,
+ PseudoVFDIV_VFPR32_MF2_E32 = 2272,
+ PseudoVFDIV_VFPR32_MF2_E32_MASK = 2273,
+ PseudoVFDIV_VFPR64_M1_E64 = 2274,
+ PseudoVFDIV_VFPR64_M1_E64_MASK = 2275,
+ PseudoVFDIV_VFPR64_M2_E64 = 2276,
+ PseudoVFDIV_VFPR64_M2_E64_MASK = 2277,
+ PseudoVFDIV_VFPR64_M4_E64 = 2278,
+ PseudoVFDIV_VFPR64_M4_E64_MASK = 2279,
+ PseudoVFDIV_VFPR64_M8_E64 = 2280,
+ PseudoVFDIV_VFPR64_M8_E64_MASK = 2281,
+ PseudoVFDIV_VV_M1_E16 = 2282,
+ PseudoVFDIV_VV_M1_E16_MASK = 2283,
+ PseudoVFDIV_VV_M1_E32 = 2284,
+ PseudoVFDIV_VV_M1_E32_MASK = 2285,
+ PseudoVFDIV_VV_M1_E64 = 2286,
+ PseudoVFDIV_VV_M1_E64_MASK = 2287,
+ PseudoVFDIV_VV_M2_E16 = 2288,
+ PseudoVFDIV_VV_M2_E16_MASK = 2289,
+ PseudoVFDIV_VV_M2_E32 = 2290,
+ PseudoVFDIV_VV_M2_E32_MASK = 2291,
+ PseudoVFDIV_VV_M2_E64 = 2292,
+ PseudoVFDIV_VV_M2_E64_MASK = 2293,
+ PseudoVFDIV_VV_M4_E16 = 2294,
+ PseudoVFDIV_VV_M4_E16_MASK = 2295,
+ PseudoVFDIV_VV_M4_E32 = 2296,
+ PseudoVFDIV_VV_M4_E32_MASK = 2297,
+ PseudoVFDIV_VV_M4_E64 = 2298,
+ PseudoVFDIV_VV_M4_E64_MASK = 2299,
+ PseudoVFDIV_VV_M8_E16 = 2300,
+ PseudoVFDIV_VV_M8_E16_MASK = 2301,
+ PseudoVFDIV_VV_M8_E32 = 2302,
+ PseudoVFDIV_VV_M8_E32_MASK = 2303,
+ PseudoVFDIV_VV_M8_E64 = 2304,
+ PseudoVFDIV_VV_M8_E64_MASK = 2305,
+ PseudoVFDIV_VV_MF2_E16 = 2306,
+ PseudoVFDIV_VV_MF2_E16_MASK = 2307,
+ PseudoVFDIV_VV_MF2_E32 = 2308,
+ PseudoVFDIV_VV_MF2_E32_MASK = 2309,
+ PseudoVFDIV_VV_MF4_E16 = 2310,
+ PseudoVFDIV_VV_MF4_E16_MASK = 2311,
+ PseudoVFIRST_M_B1 = 2312,
+ PseudoVFIRST_M_B16 = 2313,
+ PseudoVFIRST_M_B16_MASK = 2314,
+ PseudoVFIRST_M_B1_MASK = 2315,
+ PseudoVFIRST_M_B2 = 2316,
+ PseudoVFIRST_M_B2_MASK = 2317,
+ PseudoVFIRST_M_B32 = 2318,
+ PseudoVFIRST_M_B32_MASK = 2319,
+ PseudoVFIRST_M_B4 = 2320,
+ PseudoVFIRST_M_B4_MASK = 2321,
+ PseudoVFIRST_M_B64 = 2322,
+ PseudoVFIRST_M_B64_MASK = 2323,
+ PseudoVFIRST_M_B8 = 2324,
+ PseudoVFIRST_M_B8_MASK = 2325,
+ PseudoVFMACC_ALT_VFPR16_M1_E16 = 2326,
+ PseudoVFMACC_ALT_VFPR16_M1_E16_MASK = 2327,
+ PseudoVFMACC_ALT_VFPR16_M2_E16 = 2328,
+ PseudoVFMACC_ALT_VFPR16_M2_E16_MASK = 2329,
+ PseudoVFMACC_ALT_VFPR16_M4_E16 = 2330,
+ PseudoVFMACC_ALT_VFPR16_M4_E16_MASK = 2331,
+ PseudoVFMACC_ALT_VFPR16_M8_E16 = 2332,
+ PseudoVFMACC_ALT_VFPR16_M8_E16_MASK = 2333,
+ PseudoVFMACC_ALT_VFPR16_MF2_E16 = 2334,
+ PseudoVFMACC_ALT_VFPR16_MF2_E16_MASK = 2335,
+ PseudoVFMACC_ALT_VFPR16_MF4_E16 = 2336,
+ PseudoVFMACC_ALT_VFPR16_MF4_E16_MASK = 2337,
+ PseudoVFMACC_ALT_VV_M1_E16 = 2338,
+ PseudoVFMACC_ALT_VV_M1_E16_MASK = 2339,
+ PseudoVFMACC_ALT_VV_M2_E16 = 2340,
+ PseudoVFMACC_ALT_VV_M2_E16_MASK = 2341,
+ PseudoVFMACC_ALT_VV_M4_E16 = 2342,
+ PseudoVFMACC_ALT_VV_M4_E16_MASK = 2343,
+ PseudoVFMACC_ALT_VV_M8_E16 = 2344,
+ PseudoVFMACC_ALT_VV_M8_E16_MASK = 2345,
+ PseudoVFMACC_ALT_VV_MF2_E16 = 2346,
+ PseudoVFMACC_ALT_VV_MF2_E16_MASK = 2347,
+ PseudoVFMACC_ALT_VV_MF4_E16 = 2348,
+ PseudoVFMACC_ALT_VV_MF4_E16_MASK = 2349,
+ PseudoVFMACC_VFPR16_M1_E16 = 2350,
+ PseudoVFMACC_VFPR16_M1_E16_MASK = 2351,
+ PseudoVFMACC_VFPR16_M2_E16 = 2352,
+ PseudoVFMACC_VFPR16_M2_E16_MASK = 2353,
+ PseudoVFMACC_VFPR16_M4_E16 = 2354,
+ PseudoVFMACC_VFPR16_M4_E16_MASK = 2355,
+ PseudoVFMACC_VFPR16_M8_E16 = 2356,
+ PseudoVFMACC_VFPR16_M8_E16_MASK = 2357,
+ PseudoVFMACC_VFPR16_MF2_E16 = 2358,
+ PseudoVFMACC_VFPR16_MF2_E16_MASK = 2359,
+ PseudoVFMACC_VFPR16_MF4_E16 = 2360,
+ PseudoVFMACC_VFPR16_MF4_E16_MASK = 2361,
+ PseudoVFMACC_VFPR32_M1_E32 = 2362,
+ PseudoVFMACC_VFPR32_M1_E32_MASK = 2363,
+ PseudoVFMACC_VFPR32_M2_E32 = 2364,
+ PseudoVFMACC_VFPR32_M2_E32_MASK = 2365,
+ PseudoVFMACC_VFPR32_M4_E32 = 2366,
+ PseudoVFMACC_VFPR32_M4_E32_MASK = 2367,
+ PseudoVFMACC_VFPR32_M8_E32 = 2368,
+ PseudoVFMACC_VFPR32_M8_E32_MASK = 2369,
+ PseudoVFMACC_VFPR32_MF2_E32 = 2370,
+ PseudoVFMACC_VFPR32_MF2_E32_MASK = 2371,
+ PseudoVFMACC_VFPR64_M1_E64 = 2372,
+ PseudoVFMACC_VFPR64_M1_E64_MASK = 2373,
+ PseudoVFMACC_VFPR64_M2_E64 = 2374,
+ PseudoVFMACC_VFPR64_M2_E64_MASK = 2375,
+ PseudoVFMACC_VFPR64_M4_E64 = 2376,
+ PseudoVFMACC_VFPR64_M4_E64_MASK = 2377,
+ PseudoVFMACC_VFPR64_M8_E64 = 2378,
+ PseudoVFMACC_VFPR64_M8_E64_MASK = 2379,
+ PseudoVFMACC_VV_M1_E16 = 2380,
+ PseudoVFMACC_VV_M1_E16_MASK = 2381,
+ PseudoVFMACC_VV_M1_E32 = 2382,
+ PseudoVFMACC_VV_M1_E32_MASK = 2383,
+ PseudoVFMACC_VV_M1_E64 = 2384,
+ PseudoVFMACC_VV_M1_E64_MASK = 2385,
+ PseudoVFMACC_VV_M2_E16 = 2386,
+ PseudoVFMACC_VV_M2_E16_MASK = 2387,
+ PseudoVFMACC_VV_M2_E32 = 2388,
+ PseudoVFMACC_VV_M2_E32_MASK = 2389,
+ PseudoVFMACC_VV_M2_E64 = 2390,
+ PseudoVFMACC_VV_M2_E64_MASK = 2391,
+ PseudoVFMACC_VV_M4_E16 = 2392,
+ PseudoVFMACC_VV_M4_E16_MASK = 2393,
+ PseudoVFMACC_VV_M4_E32 = 2394,
+ PseudoVFMACC_VV_M4_E32_MASK = 2395,
+ PseudoVFMACC_VV_M4_E64 = 2396,
+ PseudoVFMACC_VV_M4_E64_MASK = 2397,
+ PseudoVFMACC_VV_M8_E16 = 2398,
+ PseudoVFMACC_VV_M8_E16_MASK = 2399,
+ PseudoVFMACC_VV_M8_E32 = 2400,
+ PseudoVFMACC_VV_M8_E32_MASK = 2401,
+ PseudoVFMACC_VV_M8_E64 = 2402,
+ PseudoVFMACC_VV_M8_E64_MASK = 2403,
+ PseudoVFMACC_VV_MF2_E16 = 2404,
+ PseudoVFMACC_VV_MF2_E16_MASK = 2405,
+ PseudoVFMACC_VV_MF2_E32 = 2406,
+ PseudoVFMACC_VV_MF2_E32_MASK = 2407,
+ PseudoVFMACC_VV_MF4_E16 = 2408,
+ PseudoVFMACC_VV_MF4_E16_MASK = 2409,
+ PseudoVFMADD_ALT_VFPR16_M1_E16 = 2410,
+ PseudoVFMADD_ALT_VFPR16_M1_E16_MASK = 2411,
+ PseudoVFMADD_ALT_VFPR16_M2_E16 = 2412,
+ PseudoVFMADD_ALT_VFPR16_M2_E16_MASK = 2413,
+ PseudoVFMADD_ALT_VFPR16_M4_E16 = 2414,
+ PseudoVFMADD_ALT_VFPR16_M4_E16_MASK = 2415,
+ PseudoVFMADD_ALT_VFPR16_M8_E16 = 2416,
+ PseudoVFMADD_ALT_VFPR16_M8_E16_MASK = 2417,
+ PseudoVFMADD_ALT_VFPR16_MF2_E16 = 2418,
+ PseudoVFMADD_ALT_VFPR16_MF2_E16_MASK = 2419,
+ PseudoVFMADD_ALT_VFPR16_MF4_E16 = 2420,
+ PseudoVFMADD_ALT_VFPR16_MF4_E16_MASK = 2421,
+ PseudoVFMADD_ALT_VV_M1_E16 = 2422,
+ PseudoVFMADD_ALT_VV_M1_E16_MASK = 2423,
+ PseudoVFMADD_ALT_VV_M2_E16 = 2424,
+ PseudoVFMADD_ALT_VV_M2_E16_MASK = 2425,
+ PseudoVFMADD_ALT_VV_M4_E16 = 2426,
+ PseudoVFMADD_ALT_VV_M4_E16_MASK = 2427,
+ PseudoVFMADD_ALT_VV_M8_E16 = 2428,
+ PseudoVFMADD_ALT_VV_M8_E16_MASK = 2429,
+ PseudoVFMADD_ALT_VV_MF2_E16 = 2430,
+ PseudoVFMADD_ALT_VV_MF2_E16_MASK = 2431,
+ PseudoVFMADD_ALT_VV_MF4_E16 = 2432,
+ PseudoVFMADD_ALT_VV_MF4_E16_MASK = 2433,
+ PseudoVFMADD_VFPR16_M1_E16 = 2434,
+ PseudoVFMADD_VFPR16_M1_E16_MASK = 2435,
+ PseudoVFMADD_VFPR16_M2_E16 = 2436,
+ PseudoVFMADD_VFPR16_M2_E16_MASK = 2437,
+ PseudoVFMADD_VFPR16_M4_E16 = 2438,
+ PseudoVFMADD_VFPR16_M4_E16_MASK = 2439,
+ PseudoVFMADD_VFPR16_M8_E16 = 2440,
+ PseudoVFMADD_VFPR16_M8_E16_MASK = 2441,
+ PseudoVFMADD_VFPR16_MF2_E16 = 2442,
+ PseudoVFMADD_VFPR16_MF2_E16_MASK = 2443,
+ PseudoVFMADD_VFPR16_MF4_E16 = 2444,
+ PseudoVFMADD_VFPR16_MF4_E16_MASK = 2445,
+ PseudoVFMADD_VFPR32_M1_E32 = 2446,
+ PseudoVFMADD_VFPR32_M1_E32_MASK = 2447,
+ PseudoVFMADD_VFPR32_M2_E32 = 2448,
+ PseudoVFMADD_VFPR32_M2_E32_MASK = 2449,
+ PseudoVFMADD_VFPR32_M4_E32 = 2450,
+ PseudoVFMADD_VFPR32_M4_E32_MASK = 2451,
+ PseudoVFMADD_VFPR32_M8_E32 = 2452,
+ PseudoVFMADD_VFPR32_M8_E32_MASK = 2453,
+ PseudoVFMADD_VFPR32_MF2_E32 = 2454,
+ PseudoVFMADD_VFPR32_MF2_E32_MASK = 2455,
+ PseudoVFMADD_VFPR64_M1_E64 = 2456,
+ PseudoVFMADD_VFPR64_M1_E64_MASK = 2457,
+ PseudoVFMADD_VFPR64_M2_E64 = 2458,
+ PseudoVFMADD_VFPR64_M2_E64_MASK = 2459,
+ PseudoVFMADD_VFPR64_M4_E64 = 2460,
+ PseudoVFMADD_VFPR64_M4_E64_MASK = 2461,
+ PseudoVFMADD_VFPR64_M8_E64 = 2462,
+ PseudoVFMADD_VFPR64_M8_E64_MASK = 2463,
+ PseudoVFMADD_VV_M1_E16 = 2464,
+ PseudoVFMADD_VV_M1_E16_MASK = 2465,
+ PseudoVFMADD_VV_M1_E32 = 2466,
+ PseudoVFMADD_VV_M1_E32_MASK = 2467,
+ PseudoVFMADD_VV_M1_E64 = 2468,
+ PseudoVFMADD_VV_M1_E64_MASK = 2469,
+ PseudoVFMADD_VV_M2_E16 = 2470,
+ PseudoVFMADD_VV_M2_E16_MASK = 2471,
+ PseudoVFMADD_VV_M2_E32 = 2472,
+ PseudoVFMADD_VV_M2_E32_MASK = 2473,
+ PseudoVFMADD_VV_M2_E64 = 2474,
+ PseudoVFMADD_VV_M2_E64_MASK = 2475,
+ PseudoVFMADD_VV_M4_E16 = 2476,
+ PseudoVFMADD_VV_M4_E16_MASK = 2477,
+ PseudoVFMADD_VV_M4_E32 = 2478,
+ PseudoVFMADD_VV_M4_E32_MASK = 2479,
+ PseudoVFMADD_VV_M4_E64 = 2480,
+ PseudoVFMADD_VV_M4_E64_MASK = 2481,
+ PseudoVFMADD_VV_M8_E16 = 2482,
+ PseudoVFMADD_VV_M8_E16_MASK = 2483,
+ PseudoVFMADD_VV_M8_E32 = 2484,
+ PseudoVFMADD_VV_M8_E32_MASK = 2485,
+ PseudoVFMADD_VV_M8_E64 = 2486,
+ PseudoVFMADD_VV_M8_E64_MASK = 2487,
+ PseudoVFMADD_VV_MF2_E16 = 2488,
+ PseudoVFMADD_VV_MF2_E16_MASK = 2489,
+ PseudoVFMADD_VV_MF2_E32 = 2490,
+ PseudoVFMADD_VV_MF2_E32_MASK = 2491,
+ PseudoVFMADD_VV_MF4_E16 = 2492,
+ PseudoVFMADD_VV_MF4_E16_MASK = 2493,
+ PseudoVFMAX_ALT_VFPR16_M1_E16 = 2494,
+ PseudoVFMAX_ALT_VFPR16_M1_E16_MASK = 2495,
+ PseudoVFMAX_ALT_VFPR16_M2_E16 = 2496,
+ PseudoVFMAX_ALT_VFPR16_M2_E16_MASK = 2497,
+ PseudoVFMAX_ALT_VFPR16_M4_E16 = 2498,
+ PseudoVFMAX_ALT_VFPR16_M4_E16_MASK = 2499,
+ PseudoVFMAX_ALT_VFPR16_M8_E16 = 2500,
+ PseudoVFMAX_ALT_VFPR16_M8_E16_MASK = 2501,
+ PseudoVFMAX_ALT_VFPR16_MF2_E16 = 2502,
+ PseudoVFMAX_ALT_VFPR16_MF2_E16_MASK = 2503,
+ PseudoVFMAX_ALT_VFPR16_MF4_E16 = 2504,
+ PseudoVFMAX_ALT_VFPR16_MF4_E16_MASK = 2505,
+ PseudoVFMAX_ALT_VV_M1_E16 = 2506,
+ PseudoVFMAX_ALT_VV_M1_E16_MASK = 2507,
+ PseudoVFMAX_ALT_VV_M2_E16 = 2508,
+ PseudoVFMAX_ALT_VV_M2_E16_MASK = 2509,
+ PseudoVFMAX_ALT_VV_M4_E16 = 2510,
+ PseudoVFMAX_ALT_VV_M4_E16_MASK = 2511,
+ PseudoVFMAX_ALT_VV_M8_E16 = 2512,
+ PseudoVFMAX_ALT_VV_M8_E16_MASK = 2513,
+ PseudoVFMAX_ALT_VV_MF2_E16 = 2514,
+ PseudoVFMAX_ALT_VV_MF2_E16_MASK = 2515,
+ PseudoVFMAX_ALT_VV_MF4_E16 = 2516,
+ PseudoVFMAX_ALT_VV_MF4_E16_MASK = 2517,
+ PseudoVFMAX_VFPR16_M1_E16 = 2518,
+ PseudoVFMAX_VFPR16_M1_E16_MASK = 2519,
+ PseudoVFMAX_VFPR16_M2_E16 = 2520,
+ PseudoVFMAX_VFPR16_M2_E16_MASK = 2521,
+ PseudoVFMAX_VFPR16_M4_E16 = 2522,
+ PseudoVFMAX_VFPR16_M4_E16_MASK = 2523,
+ PseudoVFMAX_VFPR16_M8_E16 = 2524,
+ PseudoVFMAX_VFPR16_M8_E16_MASK = 2525,
+ PseudoVFMAX_VFPR16_MF2_E16 = 2526,
+ PseudoVFMAX_VFPR16_MF2_E16_MASK = 2527,
+ PseudoVFMAX_VFPR16_MF4_E16 = 2528,
+ PseudoVFMAX_VFPR16_MF4_E16_MASK = 2529,
+ PseudoVFMAX_VFPR32_M1_E32 = 2530,
+ PseudoVFMAX_VFPR32_M1_E32_MASK = 2531,
+ PseudoVFMAX_VFPR32_M2_E32 = 2532,
+ PseudoVFMAX_VFPR32_M2_E32_MASK = 2533,
+ PseudoVFMAX_VFPR32_M4_E32 = 2534,
+ PseudoVFMAX_VFPR32_M4_E32_MASK = 2535,
+ PseudoVFMAX_VFPR32_M8_E32 = 2536,
+ PseudoVFMAX_VFPR32_M8_E32_MASK = 2537,
+ PseudoVFMAX_VFPR32_MF2_E32 = 2538,
+ PseudoVFMAX_VFPR32_MF2_E32_MASK = 2539,
+ PseudoVFMAX_VFPR64_M1_E64 = 2540,
+ PseudoVFMAX_VFPR64_M1_E64_MASK = 2541,
+ PseudoVFMAX_VFPR64_M2_E64 = 2542,
+ PseudoVFMAX_VFPR64_M2_E64_MASK = 2543,
+ PseudoVFMAX_VFPR64_M4_E64 = 2544,
+ PseudoVFMAX_VFPR64_M4_E64_MASK = 2545,
+ PseudoVFMAX_VFPR64_M8_E64 = 2546,
+ PseudoVFMAX_VFPR64_M8_E64_MASK = 2547,
+ PseudoVFMAX_VV_M1_E16 = 2548,
+ PseudoVFMAX_VV_M1_E16_MASK = 2549,
+ PseudoVFMAX_VV_M1_E32 = 2550,
+ PseudoVFMAX_VV_M1_E32_MASK = 2551,
+ PseudoVFMAX_VV_M1_E64 = 2552,
+ PseudoVFMAX_VV_M1_E64_MASK = 2553,
+ PseudoVFMAX_VV_M2_E16 = 2554,
+ PseudoVFMAX_VV_M2_E16_MASK = 2555,
+ PseudoVFMAX_VV_M2_E32 = 2556,
+ PseudoVFMAX_VV_M2_E32_MASK = 2557,
+ PseudoVFMAX_VV_M2_E64 = 2558,
+ PseudoVFMAX_VV_M2_E64_MASK = 2559,
+ PseudoVFMAX_VV_M4_E16 = 2560,
+ PseudoVFMAX_VV_M4_E16_MASK = 2561,
+ PseudoVFMAX_VV_M4_E32 = 2562,
+ PseudoVFMAX_VV_M4_E32_MASK = 2563,
+ PseudoVFMAX_VV_M4_E64 = 2564,
+ PseudoVFMAX_VV_M4_E64_MASK = 2565,
+ PseudoVFMAX_VV_M8_E16 = 2566,
+ PseudoVFMAX_VV_M8_E16_MASK = 2567,
+ PseudoVFMAX_VV_M8_E32 = 2568,
+ PseudoVFMAX_VV_M8_E32_MASK = 2569,
+ PseudoVFMAX_VV_M8_E64 = 2570,
+ PseudoVFMAX_VV_M8_E64_MASK = 2571,
+ PseudoVFMAX_VV_MF2_E16 = 2572,
+ PseudoVFMAX_VV_MF2_E16_MASK = 2573,
+ PseudoVFMAX_VV_MF2_E32 = 2574,
+ PseudoVFMAX_VV_MF2_E32_MASK = 2575,
+ PseudoVFMAX_VV_MF4_E16 = 2576,
+ PseudoVFMAX_VV_MF4_E16_MASK = 2577,
+ PseudoVFMERGE_ALT_VFPR16M_M1 = 2578,
+ PseudoVFMERGE_ALT_VFPR16M_M2 = 2579,
+ PseudoVFMERGE_ALT_VFPR16M_M4 = 2580,
+ PseudoVFMERGE_ALT_VFPR16M_M8 = 2581,
+ PseudoVFMERGE_ALT_VFPR16M_MF2 = 2582,
+ PseudoVFMERGE_ALT_VFPR16M_MF4 = 2583,
+ PseudoVFMERGE_ALT_VFPR32M_M1 = 2584,
+ PseudoVFMERGE_ALT_VFPR32M_M2 = 2585,
+ PseudoVFMERGE_ALT_VFPR32M_M4 = 2586,
+ PseudoVFMERGE_ALT_VFPR32M_M8 = 2587,
+ PseudoVFMERGE_ALT_VFPR32M_MF2 = 2588,
+ PseudoVFMERGE_ALT_VFPR64M_M1 = 2589,
+ PseudoVFMERGE_ALT_VFPR64M_M2 = 2590,
+ PseudoVFMERGE_ALT_VFPR64M_M4 = 2591,
+ PseudoVFMERGE_ALT_VFPR64M_M8 = 2592,
+ PseudoVFMERGE_VFPR16M_M1 = 2593,
+ PseudoVFMERGE_VFPR16M_M2 = 2594,
+ PseudoVFMERGE_VFPR16M_M4 = 2595,
+ PseudoVFMERGE_VFPR16M_M8 = 2596,
+ PseudoVFMERGE_VFPR16M_MF2 = 2597,
+ PseudoVFMERGE_VFPR16M_MF4 = 2598,
+ PseudoVFMERGE_VFPR32M_M1 = 2599,
+ PseudoVFMERGE_VFPR32M_M2 = 2600,
+ PseudoVFMERGE_VFPR32M_M4 = 2601,
+ PseudoVFMERGE_VFPR32M_M8 = 2602,
+ PseudoVFMERGE_VFPR32M_MF2 = 2603,
+ PseudoVFMERGE_VFPR64M_M1 = 2604,
+ PseudoVFMERGE_VFPR64M_M2 = 2605,
+ PseudoVFMERGE_VFPR64M_M4 = 2606,
+ PseudoVFMERGE_VFPR64M_M8 = 2607,
+ PseudoVFMIN_ALT_VFPR16_M1_E16 = 2608,
+ PseudoVFMIN_ALT_VFPR16_M1_E16_MASK = 2609,
+ PseudoVFMIN_ALT_VFPR16_M2_E16 = 2610,
+ PseudoVFMIN_ALT_VFPR16_M2_E16_MASK = 2611,
+ PseudoVFMIN_ALT_VFPR16_M4_E16 = 2612,
+ PseudoVFMIN_ALT_VFPR16_M4_E16_MASK = 2613,
+ PseudoVFMIN_ALT_VFPR16_M8_E16 = 2614,
+ PseudoVFMIN_ALT_VFPR16_M8_E16_MASK = 2615,
+ PseudoVFMIN_ALT_VFPR16_MF2_E16 = 2616,
+ PseudoVFMIN_ALT_VFPR16_MF2_E16_MASK = 2617,
+ PseudoVFMIN_ALT_VFPR16_MF4_E16 = 2618,
+ PseudoVFMIN_ALT_VFPR16_MF4_E16_MASK = 2619,
+ PseudoVFMIN_ALT_VV_M1_E16 = 2620,
+ PseudoVFMIN_ALT_VV_M1_E16_MASK = 2621,
+ PseudoVFMIN_ALT_VV_M2_E16 = 2622,
+ PseudoVFMIN_ALT_VV_M2_E16_MASK = 2623,
+ PseudoVFMIN_ALT_VV_M4_E16 = 2624,
+ PseudoVFMIN_ALT_VV_M4_E16_MASK = 2625,
+ PseudoVFMIN_ALT_VV_M8_E16 = 2626,
+ PseudoVFMIN_ALT_VV_M8_E16_MASK = 2627,
+ PseudoVFMIN_ALT_VV_MF2_E16 = 2628,
+ PseudoVFMIN_ALT_VV_MF2_E16_MASK = 2629,
+ PseudoVFMIN_ALT_VV_MF4_E16 = 2630,
+ PseudoVFMIN_ALT_VV_MF4_E16_MASK = 2631,
+ PseudoVFMIN_VFPR16_M1_E16 = 2632,
+ PseudoVFMIN_VFPR16_M1_E16_MASK = 2633,
+ PseudoVFMIN_VFPR16_M2_E16 = 2634,
+ PseudoVFMIN_VFPR16_M2_E16_MASK = 2635,
+ PseudoVFMIN_VFPR16_M4_E16 = 2636,
+ PseudoVFMIN_VFPR16_M4_E16_MASK = 2637,
+ PseudoVFMIN_VFPR16_M8_E16 = 2638,
+ PseudoVFMIN_VFPR16_M8_E16_MASK = 2639,
+ PseudoVFMIN_VFPR16_MF2_E16 = 2640,
+ PseudoVFMIN_VFPR16_MF2_E16_MASK = 2641,
+ PseudoVFMIN_VFPR16_MF4_E16 = 2642,
+ PseudoVFMIN_VFPR16_MF4_E16_MASK = 2643,
+ PseudoVFMIN_VFPR32_M1_E32 = 2644,
+ PseudoVFMIN_VFPR32_M1_E32_MASK = 2645,
+ PseudoVFMIN_VFPR32_M2_E32 = 2646,
+ PseudoVFMIN_VFPR32_M2_E32_MASK = 2647,
+ PseudoVFMIN_VFPR32_M4_E32 = 2648,
+ PseudoVFMIN_VFPR32_M4_E32_MASK = 2649,
+ PseudoVFMIN_VFPR32_M8_E32 = 2650,
+ PseudoVFMIN_VFPR32_M8_E32_MASK = 2651,
+ PseudoVFMIN_VFPR32_MF2_E32 = 2652,
+ PseudoVFMIN_VFPR32_MF2_E32_MASK = 2653,
+ PseudoVFMIN_VFPR64_M1_E64 = 2654,
+ PseudoVFMIN_VFPR64_M1_E64_MASK = 2655,
+ PseudoVFMIN_VFPR64_M2_E64 = 2656,
+ PseudoVFMIN_VFPR64_M2_E64_MASK = 2657,
+ PseudoVFMIN_VFPR64_M4_E64 = 2658,
+ PseudoVFMIN_VFPR64_M4_E64_MASK = 2659,
+ PseudoVFMIN_VFPR64_M8_E64 = 2660,
+ PseudoVFMIN_VFPR64_M8_E64_MASK = 2661,
+ PseudoVFMIN_VV_M1_E16 = 2662,
+ PseudoVFMIN_VV_M1_E16_MASK = 2663,
+ PseudoVFMIN_VV_M1_E32 = 2664,
+ PseudoVFMIN_VV_M1_E32_MASK = 2665,
+ PseudoVFMIN_VV_M1_E64 = 2666,
+ PseudoVFMIN_VV_M1_E64_MASK = 2667,
+ PseudoVFMIN_VV_M2_E16 = 2668,
+ PseudoVFMIN_VV_M2_E16_MASK = 2669,
+ PseudoVFMIN_VV_M2_E32 = 2670,
+ PseudoVFMIN_VV_M2_E32_MASK = 2671,
+ PseudoVFMIN_VV_M2_E64 = 2672,
+ PseudoVFMIN_VV_M2_E64_MASK = 2673,
+ PseudoVFMIN_VV_M4_E16 = 2674,
+ PseudoVFMIN_VV_M4_E16_MASK = 2675,
+ PseudoVFMIN_VV_M4_E32 = 2676,
+ PseudoVFMIN_VV_M4_E32_MASK = 2677,
+ PseudoVFMIN_VV_M4_E64 = 2678,
+ PseudoVFMIN_VV_M4_E64_MASK = 2679,
+ PseudoVFMIN_VV_M8_E16 = 2680,
+ PseudoVFMIN_VV_M8_E16_MASK = 2681,
+ PseudoVFMIN_VV_M8_E32 = 2682,
+ PseudoVFMIN_VV_M8_E32_MASK = 2683,
+ PseudoVFMIN_VV_M8_E64 = 2684,
+ PseudoVFMIN_VV_M8_E64_MASK = 2685,
+ PseudoVFMIN_VV_MF2_E16 = 2686,
+ PseudoVFMIN_VV_MF2_E16_MASK = 2687,
+ PseudoVFMIN_VV_MF2_E32 = 2688,
+ PseudoVFMIN_VV_MF2_E32_MASK = 2689,
+ PseudoVFMIN_VV_MF4_E16 = 2690,
+ PseudoVFMIN_VV_MF4_E16_MASK = 2691,
+ PseudoVFMSAC_ALT_VFPR16_M1_E16 = 2692,
+ PseudoVFMSAC_ALT_VFPR16_M1_E16_MASK = 2693,
+ PseudoVFMSAC_ALT_VFPR16_M2_E16 = 2694,
+ PseudoVFMSAC_ALT_VFPR16_M2_E16_MASK = 2695,
+ PseudoVFMSAC_ALT_VFPR16_M4_E16 = 2696,
+ PseudoVFMSAC_ALT_VFPR16_M4_E16_MASK = 2697,
+ PseudoVFMSAC_ALT_VFPR16_M8_E16 = 2698,
+ PseudoVFMSAC_ALT_VFPR16_M8_E16_MASK = 2699,
+ PseudoVFMSAC_ALT_VFPR16_MF2_E16 = 2700,
+ PseudoVFMSAC_ALT_VFPR16_MF2_E16_MASK = 2701,
+ PseudoVFMSAC_ALT_VFPR16_MF4_E16 = 2702,
+ PseudoVFMSAC_ALT_VFPR16_MF4_E16_MASK = 2703,
+ PseudoVFMSAC_ALT_VV_M1_E16 = 2704,
+ PseudoVFMSAC_ALT_VV_M1_E16_MASK = 2705,
+ PseudoVFMSAC_ALT_VV_M2_E16 = 2706,
+ PseudoVFMSAC_ALT_VV_M2_E16_MASK = 2707,
+ PseudoVFMSAC_ALT_VV_M4_E16 = 2708,
+ PseudoVFMSAC_ALT_VV_M4_E16_MASK = 2709,
+ PseudoVFMSAC_ALT_VV_M8_E16 = 2710,
+ PseudoVFMSAC_ALT_VV_M8_E16_MASK = 2711,
+ PseudoVFMSAC_ALT_VV_MF2_E16 = 2712,
+ PseudoVFMSAC_ALT_VV_MF2_E16_MASK = 2713,
+ PseudoVFMSAC_ALT_VV_MF4_E16 = 2714,
+ PseudoVFMSAC_ALT_VV_MF4_E16_MASK = 2715,
+ PseudoVFMSAC_VFPR16_M1_E16 = 2716,
+ PseudoVFMSAC_VFPR16_M1_E16_MASK = 2717,
+ PseudoVFMSAC_VFPR16_M2_E16 = 2718,
+ PseudoVFMSAC_VFPR16_M2_E16_MASK = 2719,
+ PseudoVFMSAC_VFPR16_M4_E16 = 2720,
+ PseudoVFMSAC_VFPR16_M4_E16_MASK = 2721,
+ PseudoVFMSAC_VFPR16_M8_E16 = 2722,
+ PseudoVFMSAC_VFPR16_M8_E16_MASK = 2723,
+ PseudoVFMSAC_VFPR16_MF2_E16 = 2724,
+ PseudoVFMSAC_VFPR16_MF2_E16_MASK = 2725,
+ PseudoVFMSAC_VFPR16_MF4_E16 = 2726,
+ PseudoVFMSAC_VFPR16_MF4_E16_MASK = 2727,
+ PseudoVFMSAC_VFPR32_M1_E32 = 2728,
+ PseudoVFMSAC_VFPR32_M1_E32_MASK = 2729,
+ PseudoVFMSAC_VFPR32_M2_E32 = 2730,
+ PseudoVFMSAC_VFPR32_M2_E32_MASK = 2731,
+ PseudoVFMSAC_VFPR32_M4_E32 = 2732,
+ PseudoVFMSAC_VFPR32_M4_E32_MASK = 2733,
+ PseudoVFMSAC_VFPR32_M8_E32 = 2734,
+ PseudoVFMSAC_VFPR32_M8_E32_MASK = 2735,
+ PseudoVFMSAC_VFPR32_MF2_E32 = 2736,
+ PseudoVFMSAC_VFPR32_MF2_E32_MASK = 2737,
+ PseudoVFMSAC_VFPR64_M1_E64 = 2738,
+ PseudoVFMSAC_VFPR64_M1_E64_MASK = 2739,
+ PseudoVFMSAC_VFPR64_M2_E64 = 2740,
+ PseudoVFMSAC_VFPR64_M2_E64_MASK = 2741,
+ PseudoVFMSAC_VFPR64_M4_E64 = 2742,
+ PseudoVFMSAC_VFPR64_M4_E64_MASK = 2743,
+ PseudoVFMSAC_VFPR64_M8_E64 = 2744,
+ PseudoVFMSAC_VFPR64_M8_E64_MASK = 2745,
+ PseudoVFMSAC_VV_M1_E16 = 2746,
+ PseudoVFMSAC_VV_M1_E16_MASK = 2747,
+ PseudoVFMSAC_VV_M1_E32 = 2748,
+ PseudoVFMSAC_VV_M1_E32_MASK = 2749,
+ PseudoVFMSAC_VV_M1_E64 = 2750,
+ PseudoVFMSAC_VV_M1_E64_MASK = 2751,
+ PseudoVFMSAC_VV_M2_E16 = 2752,
+ PseudoVFMSAC_VV_M2_E16_MASK = 2753,
+ PseudoVFMSAC_VV_M2_E32 = 2754,
+ PseudoVFMSAC_VV_M2_E32_MASK = 2755,
+ PseudoVFMSAC_VV_M2_E64 = 2756,
+ PseudoVFMSAC_VV_M2_E64_MASK = 2757,
+ PseudoVFMSAC_VV_M4_E16 = 2758,
+ PseudoVFMSAC_VV_M4_E16_MASK = 2759,
+ PseudoVFMSAC_VV_M4_E32 = 2760,
+ PseudoVFMSAC_VV_M4_E32_MASK = 2761,
+ PseudoVFMSAC_VV_M4_E64 = 2762,
+ PseudoVFMSAC_VV_M4_E64_MASK = 2763,
+ PseudoVFMSAC_VV_M8_E16 = 2764,
+ PseudoVFMSAC_VV_M8_E16_MASK = 2765,
+ PseudoVFMSAC_VV_M8_E32 = 2766,
+ PseudoVFMSAC_VV_M8_E32_MASK = 2767,
+ PseudoVFMSAC_VV_M8_E64 = 2768,
+ PseudoVFMSAC_VV_M8_E64_MASK = 2769,
+ PseudoVFMSAC_VV_MF2_E16 = 2770,
+ PseudoVFMSAC_VV_MF2_E16_MASK = 2771,
+ PseudoVFMSAC_VV_MF2_E32 = 2772,
+ PseudoVFMSAC_VV_MF2_E32_MASK = 2773,
+ PseudoVFMSAC_VV_MF4_E16 = 2774,
+ PseudoVFMSAC_VV_MF4_E16_MASK = 2775,
+ PseudoVFMSUB_ALT_VFPR16_M1_E16 = 2776,
+ PseudoVFMSUB_ALT_VFPR16_M1_E16_MASK = 2777,
+ PseudoVFMSUB_ALT_VFPR16_M2_E16 = 2778,
+ PseudoVFMSUB_ALT_VFPR16_M2_E16_MASK = 2779,
+ PseudoVFMSUB_ALT_VFPR16_M4_E16 = 2780,
+ PseudoVFMSUB_ALT_VFPR16_M4_E16_MASK = 2781,
+ PseudoVFMSUB_ALT_VFPR16_M8_E16 = 2782,
+ PseudoVFMSUB_ALT_VFPR16_M8_E16_MASK = 2783,
+ PseudoVFMSUB_ALT_VFPR16_MF2_E16 = 2784,
+ PseudoVFMSUB_ALT_VFPR16_MF2_E16_MASK = 2785,
+ PseudoVFMSUB_ALT_VFPR16_MF4_E16 = 2786,
+ PseudoVFMSUB_ALT_VFPR16_MF4_E16_MASK = 2787,
+ PseudoVFMSUB_ALT_VV_M1_E16 = 2788,
+ PseudoVFMSUB_ALT_VV_M1_E16_MASK = 2789,
+ PseudoVFMSUB_ALT_VV_M2_E16 = 2790,
+ PseudoVFMSUB_ALT_VV_M2_E16_MASK = 2791,
+ PseudoVFMSUB_ALT_VV_M4_E16 = 2792,
+ PseudoVFMSUB_ALT_VV_M4_E16_MASK = 2793,
+ PseudoVFMSUB_ALT_VV_M8_E16 = 2794,
+ PseudoVFMSUB_ALT_VV_M8_E16_MASK = 2795,
+ PseudoVFMSUB_ALT_VV_MF2_E16 = 2796,
+ PseudoVFMSUB_ALT_VV_MF2_E16_MASK = 2797,
+ PseudoVFMSUB_ALT_VV_MF4_E16 = 2798,
+ PseudoVFMSUB_ALT_VV_MF4_E16_MASK = 2799,
+ PseudoVFMSUB_VFPR16_M1_E16 = 2800,
+ PseudoVFMSUB_VFPR16_M1_E16_MASK = 2801,
+ PseudoVFMSUB_VFPR16_M2_E16 = 2802,
+ PseudoVFMSUB_VFPR16_M2_E16_MASK = 2803,
+ PseudoVFMSUB_VFPR16_M4_E16 = 2804,
+ PseudoVFMSUB_VFPR16_M4_E16_MASK = 2805,
+ PseudoVFMSUB_VFPR16_M8_E16 = 2806,
+ PseudoVFMSUB_VFPR16_M8_E16_MASK = 2807,
+ PseudoVFMSUB_VFPR16_MF2_E16 = 2808,
+ PseudoVFMSUB_VFPR16_MF2_E16_MASK = 2809,
+ PseudoVFMSUB_VFPR16_MF4_E16 = 2810,
+ PseudoVFMSUB_VFPR16_MF4_E16_MASK = 2811,
+ PseudoVFMSUB_VFPR32_M1_E32 = 2812,
+ PseudoVFMSUB_VFPR32_M1_E32_MASK = 2813,
+ PseudoVFMSUB_VFPR32_M2_E32 = 2814,
+ PseudoVFMSUB_VFPR32_M2_E32_MASK = 2815,
+ PseudoVFMSUB_VFPR32_M4_E32 = 2816,
+ PseudoVFMSUB_VFPR32_M4_E32_MASK = 2817,
+ PseudoVFMSUB_VFPR32_M8_E32 = 2818,
+ PseudoVFMSUB_VFPR32_M8_E32_MASK = 2819,
+ PseudoVFMSUB_VFPR32_MF2_E32 = 2820,
+ PseudoVFMSUB_VFPR32_MF2_E32_MASK = 2821,
+ PseudoVFMSUB_VFPR64_M1_E64 = 2822,
+ PseudoVFMSUB_VFPR64_M1_E64_MASK = 2823,
+ PseudoVFMSUB_VFPR64_M2_E64 = 2824,
+ PseudoVFMSUB_VFPR64_M2_E64_MASK = 2825,
+ PseudoVFMSUB_VFPR64_M4_E64 = 2826,
+ PseudoVFMSUB_VFPR64_M4_E64_MASK = 2827,
+ PseudoVFMSUB_VFPR64_M8_E64 = 2828,
+ PseudoVFMSUB_VFPR64_M8_E64_MASK = 2829,
+ PseudoVFMSUB_VV_M1_E16 = 2830,
+ PseudoVFMSUB_VV_M1_E16_MASK = 2831,
+ PseudoVFMSUB_VV_M1_E32 = 2832,
+ PseudoVFMSUB_VV_M1_E32_MASK = 2833,
+ PseudoVFMSUB_VV_M1_E64 = 2834,
+ PseudoVFMSUB_VV_M1_E64_MASK = 2835,
+ PseudoVFMSUB_VV_M2_E16 = 2836,
+ PseudoVFMSUB_VV_M2_E16_MASK = 2837,
+ PseudoVFMSUB_VV_M2_E32 = 2838,
+ PseudoVFMSUB_VV_M2_E32_MASK = 2839,
+ PseudoVFMSUB_VV_M2_E64 = 2840,
+ PseudoVFMSUB_VV_M2_E64_MASK = 2841,
+ PseudoVFMSUB_VV_M4_E16 = 2842,
+ PseudoVFMSUB_VV_M4_E16_MASK = 2843,
+ PseudoVFMSUB_VV_M4_E32 = 2844,
+ PseudoVFMSUB_VV_M4_E32_MASK = 2845,
+ PseudoVFMSUB_VV_M4_E64 = 2846,
+ PseudoVFMSUB_VV_M4_E64_MASK = 2847,
+ PseudoVFMSUB_VV_M8_E16 = 2848,
+ PseudoVFMSUB_VV_M8_E16_MASK = 2849,
+ PseudoVFMSUB_VV_M8_E32 = 2850,
+ PseudoVFMSUB_VV_M8_E32_MASK = 2851,
+ PseudoVFMSUB_VV_M8_E64 = 2852,
+ PseudoVFMSUB_VV_M8_E64_MASK = 2853,
+ PseudoVFMSUB_VV_MF2_E16 = 2854,
+ PseudoVFMSUB_VV_MF2_E16_MASK = 2855,
+ PseudoVFMSUB_VV_MF2_E32 = 2856,
+ PseudoVFMSUB_VV_MF2_E32_MASK = 2857,
+ PseudoVFMSUB_VV_MF4_E16 = 2858,
+ PseudoVFMSUB_VV_MF4_E16_MASK = 2859,
+ PseudoVFMUL_ALT_VFPR16_M1_E16 = 2860,
+ PseudoVFMUL_ALT_VFPR16_M1_E16_MASK = 2861,
+ PseudoVFMUL_ALT_VFPR16_M2_E16 = 2862,
+ PseudoVFMUL_ALT_VFPR16_M2_E16_MASK = 2863,
+ PseudoVFMUL_ALT_VFPR16_M4_E16 = 2864,
+ PseudoVFMUL_ALT_VFPR16_M4_E16_MASK = 2865,
+ PseudoVFMUL_ALT_VFPR16_M8_E16 = 2866,
+ PseudoVFMUL_ALT_VFPR16_M8_E16_MASK = 2867,
+ PseudoVFMUL_ALT_VFPR16_MF2_E16 = 2868,
+ PseudoVFMUL_ALT_VFPR16_MF2_E16_MASK = 2869,
+ PseudoVFMUL_ALT_VFPR16_MF4_E16 = 2870,
+ PseudoVFMUL_ALT_VFPR16_MF4_E16_MASK = 2871,
+ PseudoVFMUL_ALT_VV_M1_E16 = 2872,
+ PseudoVFMUL_ALT_VV_M1_E16_MASK = 2873,
+ PseudoVFMUL_ALT_VV_M2_E16 = 2874,
+ PseudoVFMUL_ALT_VV_M2_E16_MASK = 2875,
+ PseudoVFMUL_ALT_VV_M4_E16 = 2876,
+ PseudoVFMUL_ALT_VV_M4_E16_MASK = 2877,
+ PseudoVFMUL_ALT_VV_M8_E16 = 2878,
+ PseudoVFMUL_ALT_VV_M8_E16_MASK = 2879,
+ PseudoVFMUL_ALT_VV_MF2_E16 = 2880,
+ PseudoVFMUL_ALT_VV_MF2_E16_MASK = 2881,
+ PseudoVFMUL_ALT_VV_MF4_E16 = 2882,
+ PseudoVFMUL_ALT_VV_MF4_E16_MASK = 2883,
+ PseudoVFMUL_VFPR16_M1_E16 = 2884,
+ PseudoVFMUL_VFPR16_M1_E16_MASK = 2885,
+ PseudoVFMUL_VFPR16_M2_E16 = 2886,
+ PseudoVFMUL_VFPR16_M2_E16_MASK = 2887,
+ PseudoVFMUL_VFPR16_M4_E16 = 2888,
+ PseudoVFMUL_VFPR16_M4_E16_MASK = 2889,
+ PseudoVFMUL_VFPR16_M8_E16 = 2890,
+ PseudoVFMUL_VFPR16_M8_E16_MASK = 2891,
+ PseudoVFMUL_VFPR16_MF2_E16 = 2892,
+ PseudoVFMUL_VFPR16_MF2_E16_MASK = 2893,
+ PseudoVFMUL_VFPR16_MF4_E16 = 2894,
+ PseudoVFMUL_VFPR16_MF4_E16_MASK = 2895,
+ PseudoVFMUL_VFPR32_M1_E32 = 2896,
+ PseudoVFMUL_VFPR32_M1_E32_MASK = 2897,
+ PseudoVFMUL_VFPR32_M2_E32 = 2898,
+ PseudoVFMUL_VFPR32_M2_E32_MASK = 2899,
+ PseudoVFMUL_VFPR32_M4_E32 = 2900,
+ PseudoVFMUL_VFPR32_M4_E32_MASK = 2901,
+ PseudoVFMUL_VFPR32_M8_E32 = 2902,
+ PseudoVFMUL_VFPR32_M8_E32_MASK = 2903,
+ PseudoVFMUL_VFPR32_MF2_E32 = 2904,
+ PseudoVFMUL_VFPR32_MF2_E32_MASK = 2905,
+ PseudoVFMUL_VFPR64_M1_E64 = 2906,
+ PseudoVFMUL_VFPR64_M1_E64_MASK = 2907,
+ PseudoVFMUL_VFPR64_M2_E64 = 2908,
+ PseudoVFMUL_VFPR64_M2_E64_MASK = 2909,
+ PseudoVFMUL_VFPR64_M4_E64 = 2910,
+ PseudoVFMUL_VFPR64_M4_E64_MASK = 2911,
+ PseudoVFMUL_VFPR64_M8_E64 = 2912,
+ PseudoVFMUL_VFPR64_M8_E64_MASK = 2913,
+ PseudoVFMUL_VV_M1_E16 = 2914,
+ PseudoVFMUL_VV_M1_E16_MASK = 2915,
+ PseudoVFMUL_VV_M1_E32 = 2916,
+ PseudoVFMUL_VV_M1_E32_MASK = 2917,
+ PseudoVFMUL_VV_M1_E64 = 2918,
+ PseudoVFMUL_VV_M1_E64_MASK = 2919,
+ PseudoVFMUL_VV_M2_E16 = 2920,
+ PseudoVFMUL_VV_M2_E16_MASK = 2921,
+ PseudoVFMUL_VV_M2_E32 = 2922,
+ PseudoVFMUL_VV_M2_E32_MASK = 2923,
+ PseudoVFMUL_VV_M2_E64 = 2924,
+ PseudoVFMUL_VV_M2_E64_MASK = 2925,
+ PseudoVFMUL_VV_M4_E16 = 2926,
+ PseudoVFMUL_VV_M4_E16_MASK = 2927,
+ PseudoVFMUL_VV_M4_E32 = 2928,
+ PseudoVFMUL_VV_M4_E32_MASK = 2929,
+ PseudoVFMUL_VV_M4_E64 = 2930,
+ PseudoVFMUL_VV_M4_E64_MASK = 2931,
+ PseudoVFMUL_VV_M8_E16 = 2932,
+ PseudoVFMUL_VV_M8_E16_MASK = 2933,
+ PseudoVFMUL_VV_M8_E32 = 2934,
+ PseudoVFMUL_VV_M8_E32_MASK = 2935,
+ PseudoVFMUL_VV_M8_E64 = 2936,
+ PseudoVFMUL_VV_M8_E64_MASK = 2937,
+ PseudoVFMUL_VV_MF2_E16 = 2938,
+ PseudoVFMUL_VV_MF2_E16_MASK = 2939,
+ PseudoVFMUL_VV_MF2_E32 = 2940,
+ PseudoVFMUL_VV_MF2_E32_MASK = 2941,
+ PseudoVFMUL_VV_MF4_E16 = 2942,
+ PseudoVFMUL_VV_MF4_E16_MASK = 2943,
+ PseudoVFMV_FPR16_S = 2944,
+ PseudoVFMV_FPR16_S_ALT = 2945,
+ PseudoVFMV_FPR32_S = 2946,
+ PseudoVFMV_FPR64_S = 2947,
+ PseudoVFMV_S_FPR16 = 2948,
+ PseudoVFMV_S_FPR16_ALT = 2949,
+ PseudoVFMV_S_FPR32 = 2950,
+ PseudoVFMV_S_FPR64 = 2951,
+ PseudoVFMV_V_ALT_FPR16_M1 = 2952,
+ PseudoVFMV_V_ALT_FPR16_M2 = 2953,
+ PseudoVFMV_V_ALT_FPR16_M4 = 2954,
+ PseudoVFMV_V_ALT_FPR16_M8 = 2955,
+ PseudoVFMV_V_ALT_FPR16_MF2 = 2956,
+ PseudoVFMV_V_ALT_FPR16_MF4 = 2957,
+ PseudoVFMV_V_ALT_FPR32_M1 = 2958,
+ PseudoVFMV_V_ALT_FPR32_M2 = 2959,
+ PseudoVFMV_V_ALT_FPR32_M4 = 2960,
+ PseudoVFMV_V_ALT_FPR32_M8 = 2961,
+ PseudoVFMV_V_ALT_FPR32_MF2 = 2962,
+ PseudoVFMV_V_ALT_FPR64_M1 = 2963,
+ PseudoVFMV_V_ALT_FPR64_M2 = 2964,
+ PseudoVFMV_V_ALT_FPR64_M4 = 2965,
+ PseudoVFMV_V_ALT_FPR64_M8 = 2966,
+ PseudoVFMV_V_FPR16_M1 = 2967,
+ PseudoVFMV_V_FPR16_M2 = 2968,
+ PseudoVFMV_V_FPR16_M4 = 2969,
+ PseudoVFMV_V_FPR16_M8 = 2970,
+ PseudoVFMV_V_FPR16_MF2 = 2971,
+ PseudoVFMV_V_FPR16_MF4 = 2972,
+ PseudoVFMV_V_FPR32_M1 = 2973,
+ PseudoVFMV_V_FPR32_M2 = 2974,
+ PseudoVFMV_V_FPR32_M4 = 2975,
+ PseudoVFMV_V_FPR32_M8 = 2976,
+ PseudoVFMV_V_FPR32_MF2 = 2977,
+ PseudoVFMV_V_FPR64_M1 = 2978,
+ PseudoVFMV_V_FPR64_M2 = 2979,
+ PseudoVFMV_V_FPR64_M4 = 2980,
+ PseudoVFMV_V_FPR64_M8 = 2981,
+ PseudoVFNCVTBF16_F_F_ALT_W_M1_E8 = 2982,
+ PseudoVFNCVTBF16_F_F_ALT_W_M1_E8_MASK = 2983,
+ PseudoVFNCVTBF16_F_F_ALT_W_M2_E8 = 2984,
+ PseudoVFNCVTBF16_F_F_ALT_W_M2_E8_MASK = 2985,
+ PseudoVFNCVTBF16_F_F_ALT_W_M4_E8 = 2986,
+ PseudoVFNCVTBF16_F_F_ALT_W_M4_E8_MASK = 2987,
+ PseudoVFNCVTBF16_F_F_ALT_W_MF2_E8 = 2988,
+ PseudoVFNCVTBF16_F_F_ALT_W_MF2_E8_MASK = 2989,
+ PseudoVFNCVTBF16_F_F_ALT_W_MF4_E8 = 2990,
+ PseudoVFNCVTBF16_F_F_ALT_W_MF4_E8_MASK = 2991,
+ PseudoVFNCVTBF16_F_F_ALT_W_MF8_E8 = 2992,
+ PseudoVFNCVTBF16_F_F_ALT_W_MF8_E8_MASK = 2993,
+ PseudoVFNCVTBF16_F_F_W_M1_E16 = 2994,
+ PseudoVFNCVTBF16_F_F_W_M1_E16_MASK = 2995,
+ PseudoVFNCVTBF16_F_F_W_M1_E32 = 2996,
+ PseudoVFNCVTBF16_F_F_W_M1_E32_MASK = 2997,
+ PseudoVFNCVTBF16_F_F_W_M1_E8 = 2998,
+ PseudoVFNCVTBF16_F_F_W_M1_E8_MASK = 2999,
+ PseudoVFNCVTBF16_F_F_W_M2_E16 = 3000,
+ PseudoVFNCVTBF16_F_F_W_M2_E16_MASK = 3001,
+ PseudoVFNCVTBF16_F_F_W_M2_E32 = 3002,
+ PseudoVFNCVTBF16_F_F_W_M2_E32_MASK = 3003,
+ PseudoVFNCVTBF16_F_F_W_M2_E8 = 3004,
+ PseudoVFNCVTBF16_F_F_W_M2_E8_MASK = 3005,
+ PseudoVFNCVTBF16_F_F_W_M4_E16 = 3006,
+ PseudoVFNCVTBF16_F_F_W_M4_E16_MASK = 3007,
+ PseudoVFNCVTBF16_F_F_W_M4_E32 = 3008,
+ PseudoVFNCVTBF16_F_F_W_M4_E32_MASK = 3009,
+ PseudoVFNCVTBF16_F_F_W_M4_E8 = 3010,
+ PseudoVFNCVTBF16_F_F_W_M4_E8_MASK = 3011,
+ PseudoVFNCVTBF16_F_F_W_MF2_E16 = 3012,
+ PseudoVFNCVTBF16_F_F_W_MF2_E16_MASK = 3013,
+ PseudoVFNCVTBF16_F_F_W_MF2_E32 = 3014,
+ PseudoVFNCVTBF16_F_F_W_MF2_E32_MASK = 3015,
+ PseudoVFNCVTBF16_F_F_W_MF2_E8 = 3016,
+ PseudoVFNCVTBF16_F_F_W_MF2_E8_MASK = 3017,
+ PseudoVFNCVTBF16_F_F_W_MF4_E16 = 3018,
+ PseudoVFNCVTBF16_F_F_W_MF4_E16_MASK = 3019,
+ PseudoVFNCVTBF16_F_F_W_MF4_E8 = 3020,
+ PseudoVFNCVTBF16_F_F_W_MF4_E8_MASK = 3021,
+ PseudoVFNCVTBF16_F_F_W_MF8_E8 = 3022,
+ PseudoVFNCVTBF16_F_F_W_MF8_E8_MASK = 3023,
+ PseudoVFNCVTBF16_SAT_F_F_ALT_W_M1_E8 = 3024,
+ PseudoVFNCVTBF16_SAT_F_F_ALT_W_M1_E8_MASK = 3025,
+ PseudoVFNCVTBF16_SAT_F_F_ALT_W_M2_E8 = 3026,
+ PseudoVFNCVTBF16_SAT_F_F_ALT_W_M2_E8_MASK = 3027,
+ PseudoVFNCVTBF16_SAT_F_F_ALT_W_M4_E8 = 3028,
+ PseudoVFNCVTBF16_SAT_F_F_ALT_W_M4_E8_MASK = 3029,
+ PseudoVFNCVTBF16_SAT_F_F_ALT_W_MF2_E8 = 3030,
+ PseudoVFNCVTBF16_SAT_F_F_ALT_W_MF2_E8_MASK = 3031,
+ PseudoVFNCVTBF16_SAT_F_F_ALT_W_MF4_E8 = 3032,
+ PseudoVFNCVTBF16_SAT_F_F_ALT_W_MF4_E8_MASK = 3033,
+ PseudoVFNCVTBF16_SAT_F_F_ALT_W_MF8_E8 = 3034,
+ PseudoVFNCVTBF16_SAT_F_F_ALT_W_MF8_E8_MASK = 3035,
+ PseudoVFNCVTBF16_SAT_F_F_W_M1_E8 = 3036,
+ PseudoVFNCVTBF16_SAT_F_F_W_M1_E8_MASK = 3037,
+ PseudoVFNCVTBF16_SAT_F_F_W_M2_E8 = 3038,
+ PseudoVFNCVTBF16_SAT_F_F_W_M2_E8_MASK = 3039,
+ PseudoVFNCVTBF16_SAT_F_F_W_M4_E8 = 3040,
+ PseudoVFNCVTBF16_SAT_F_F_W_M4_E8_MASK = 3041,
+ PseudoVFNCVTBF16_SAT_F_F_W_MF2_E8 = 3042,
+ PseudoVFNCVTBF16_SAT_F_F_W_MF2_E8_MASK = 3043,
+ PseudoVFNCVTBF16_SAT_F_F_W_MF4_E8 = 3044,
+ PseudoVFNCVTBF16_SAT_F_F_W_MF4_E8_MASK = 3045,
+ PseudoVFNCVTBF16_SAT_F_F_W_MF8_E8 = 3046,
+ PseudoVFNCVTBF16_SAT_F_F_W_MF8_E8_MASK = 3047,
+ PseudoVFNCVT_F_F_ALT_Q_M1_E8 = 3048,
+ PseudoVFNCVT_F_F_ALT_Q_M1_E8_MASK = 3049,
+ PseudoVFNCVT_F_F_ALT_Q_M2_E8 = 3050,
+ PseudoVFNCVT_F_F_ALT_Q_M2_E8_MASK = 3051,
+ PseudoVFNCVT_F_F_ALT_Q_MF2_E8 = 3052,
+ PseudoVFNCVT_F_F_ALT_Q_MF2_E8_MASK = 3053,
+ PseudoVFNCVT_F_F_ALT_Q_MF4_E8 = 3054,
+ PseudoVFNCVT_F_F_ALT_Q_MF4_E8_MASK = 3055,
+ PseudoVFNCVT_F_F_ALT_Q_MF8_E8 = 3056,
+ PseudoVFNCVT_F_F_ALT_Q_MF8_E8_MASK = 3057,
+ PseudoVFNCVT_F_F_ALT_W_M1_E16 = 3058,
+ PseudoVFNCVT_F_F_ALT_W_M1_E16_MASK = 3059,
+ PseudoVFNCVT_F_F_ALT_W_M2_E16 = 3060,
+ PseudoVFNCVT_F_F_ALT_W_M2_E16_MASK = 3061,
+ PseudoVFNCVT_F_F_ALT_W_M4_E16 = 3062,
+ PseudoVFNCVT_F_F_ALT_W_M4_E16_MASK = 3063,
+ PseudoVFNCVT_F_F_ALT_W_MF2_E16 = 3064,
+ PseudoVFNCVT_F_F_ALT_W_MF2_E16_MASK = 3065,
+ PseudoVFNCVT_F_F_ALT_W_MF4_E16 = 3066,
+ PseudoVFNCVT_F_F_ALT_W_MF4_E16_MASK = 3067,
+ PseudoVFNCVT_F_F_Q_M1_E8 = 3068,
+ PseudoVFNCVT_F_F_Q_M1_E8_MASK = 3069,
+ PseudoVFNCVT_F_F_Q_M2_E8 = 3070,
+ PseudoVFNCVT_F_F_Q_M2_E8_MASK = 3071,
+ PseudoVFNCVT_F_F_Q_MF2_E8 = 3072,
+ PseudoVFNCVT_F_F_Q_MF2_E8_MASK = 3073,
+ PseudoVFNCVT_F_F_Q_MF4_E8 = 3074,
+ PseudoVFNCVT_F_F_Q_MF4_E8_MASK = 3075,
+ PseudoVFNCVT_F_F_Q_MF8_E8 = 3076,
+ PseudoVFNCVT_F_F_Q_MF8_E8_MASK = 3077,
+ PseudoVFNCVT_F_F_W_M1_E16 = 3078,
+ PseudoVFNCVT_F_F_W_M1_E16_MASK = 3079,
+ PseudoVFNCVT_F_F_W_M1_E32 = 3080,
+ PseudoVFNCVT_F_F_W_M1_E32_MASK = 3081,
+ PseudoVFNCVT_F_F_W_M2_E16 = 3082,
+ PseudoVFNCVT_F_F_W_M2_E16_MASK = 3083,
+ PseudoVFNCVT_F_F_W_M2_E32 = 3084,
+ PseudoVFNCVT_F_F_W_M2_E32_MASK = 3085,
+ PseudoVFNCVT_F_F_W_M4_E16 = 3086,
+ PseudoVFNCVT_F_F_W_M4_E16_MASK = 3087,
+ PseudoVFNCVT_F_F_W_M4_E32 = 3088,
+ PseudoVFNCVT_F_F_W_M4_E32_MASK = 3089,
+ PseudoVFNCVT_F_F_W_MF2_E16 = 3090,
+ PseudoVFNCVT_F_F_W_MF2_E16_MASK = 3091,
+ PseudoVFNCVT_F_F_W_MF2_E32 = 3092,
+ PseudoVFNCVT_F_F_W_MF2_E32_MASK = 3093,
+ PseudoVFNCVT_F_F_W_MF4_E16 = 3094,
+ PseudoVFNCVT_F_F_W_MF4_E16_MASK = 3095,
+ PseudoVFNCVT_F_XU_W_M1_E16 = 3096,
+ PseudoVFNCVT_F_XU_W_M1_E16_MASK = 3097,
+ PseudoVFNCVT_F_XU_W_M1_E32 = 3098,
+ PseudoVFNCVT_F_XU_W_M1_E32_MASK = 3099,
+ PseudoVFNCVT_F_XU_W_M2_E16 = 3100,
+ PseudoVFNCVT_F_XU_W_M2_E16_MASK = 3101,
+ PseudoVFNCVT_F_XU_W_M2_E32 = 3102,
+ PseudoVFNCVT_F_XU_W_M2_E32_MASK = 3103,
+ PseudoVFNCVT_F_XU_W_M4_E16 = 3104,
+ PseudoVFNCVT_F_XU_W_M4_E16_MASK = 3105,
+ PseudoVFNCVT_F_XU_W_M4_E32 = 3106,
+ PseudoVFNCVT_F_XU_W_M4_E32_MASK = 3107,
+ PseudoVFNCVT_F_XU_W_MF2_E16 = 3108,
+ PseudoVFNCVT_F_XU_W_MF2_E16_MASK = 3109,
+ PseudoVFNCVT_F_XU_W_MF2_E32 = 3110,
+ PseudoVFNCVT_F_XU_W_MF2_E32_MASK = 3111,
+ PseudoVFNCVT_F_XU_W_MF4_E16 = 3112,
+ PseudoVFNCVT_F_XU_W_MF4_E16_MASK = 3113,
+ PseudoVFNCVT_F_X_W_M1_E16 = 3114,
+ PseudoVFNCVT_F_X_W_M1_E16_MASK = 3115,
+ PseudoVFNCVT_F_X_W_M1_E32 = 3116,
+ PseudoVFNCVT_F_X_W_M1_E32_MASK = 3117,
+ PseudoVFNCVT_F_X_W_M2_E16 = 3118,
+ PseudoVFNCVT_F_X_W_M2_E16_MASK = 3119,
+ PseudoVFNCVT_F_X_W_M2_E32 = 3120,
+ PseudoVFNCVT_F_X_W_M2_E32_MASK = 3121,
+ PseudoVFNCVT_F_X_W_M4_E16 = 3122,
+ PseudoVFNCVT_F_X_W_M4_E16_MASK = 3123,
+ PseudoVFNCVT_F_X_W_M4_E32 = 3124,
+ PseudoVFNCVT_F_X_W_M4_E32_MASK = 3125,
+ PseudoVFNCVT_F_X_W_MF2_E16 = 3126,
+ PseudoVFNCVT_F_X_W_MF2_E16_MASK = 3127,
+ PseudoVFNCVT_F_X_W_MF2_E32 = 3128,
+ PseudoVFNCVT_F_X_W_MF2_E32_MASK = 3129,
+ PseudoVFNCVT_F_X_W_MF4_E16 = 3130,
+ PseudoVFNCVT_F_X_W_MF4_E16_MASK = 3131,
+ PseudoVFNCVT_ROD_F_F_ALT_W_M1_E16 = 3132,
+ PseudoVFNCVT_ROD_F_F_ALT_W_M1_E16_MASK = 3133,
+ PseudoVFNCVT_ROD_F_F_ALT_W_M2_E16 = 3134,
+ PseudoVFNCVT_ROD_F_F_ALT_W_M2_E16_MASK = 3135,
+ PseudoVFNCVT_ROD_F_F_ALT_W_M4_E16 = 3136,
+ PseudoVFNCVT_ROD_F_F_ALT_W_M4_E16_MASK = 3137,
+ PseudoVFNCVT_ROD_F_F_ALT_W_MF2_E16 = 3138,
+ PseudoVFNCVT_ROD_F_F_ALT_W_MF2_E16_MASK = 3139,
+ PseudoVFNCVT_ROD_F_F_ALT_W_MF4_E16 = 3140,
+ PseudoVFNCVT_ROD_F_F_ALT_W_MF4_E16_MASK = 3141,
+ PseudoVFNCVT_ROD_F_F_W_M1_E16 = 3142,
+ PseudoVFNCVT_ROD_F_F_W_M1_E16_MASK = 3143,
+ PseudoVFNCVT_ROD_F_F_W_M1_E32 = 3144,
+ PseudoVFNCVT_ROD_F_F_W_M1_E32_MASK = 3145,
+ PseudoVFNCVT_ROD_F_F_W_M2_E16 = 3146,
+ PseudoVFNCVT_ROD_F_F_W_M2_E16_MASK = 3147,
+ PseudoVFNCVT_ROD_F_F_W_M2_E32 = 3148,
+ PseudoVFNCVT_ROD_F_F_W_M2_E32_MASK = 3149,
+ PseudoVFNCVT_ROD_F_F_W_M4_E16 = 3150,
+ PseudoVFNCVT_ROD_F_F_W_M4_E16_MASK = 3151,
+ PseudoVFNCVT_ROD_F_F_W_M4_E32 = 3152,
+ PseudoVFNCVT_ROD_F_F_W_M4_E32_MASK = 3153,
+ PseudoVFNCVT_ROD_F_F_W_MF2_E16 = 3154,
+ PseudoVFNCVT_ROD_F_F_W_MF2_E16_MASK = 3155,
+ PseudoVFNCVT_ROD_F_F_W_MF2_E32 = 3156,
+ PseudoVFNCVT_ROD_F_F_W_MF2_E32_MASK = 3157,
+ PseudoVFNCVT_ROD_F_F_W_MF4_E16 = 3158,
+ PseudoVFNCVT_ROD_F_F_W_MF4_E16_MASK = 3159,
+ PseudoVFNCVT_RTZ_XU_F_ALT_W_M1 = 3160,
+ PseudoVFNCVT_RTZ_XU_F_ALT_W_M1_MASK = 3161,
+ PseudoVFNCVT_RTZ_XU_F_ALT_W_M2 = 3162,
+ PseudoVFNCVT_RTZ_XU_F_ALT_W_M2_MASK = 3163,
+ PseudoVFNCVT_RTZ_XU_F_ALT_W_M4 = 3164,
+ PseudoVFNCVT_RTZ_XU_F_ALT_W_M4_MASK = 3165,
+ PseudoVFNCVT_RTZ_XU_F_ALT_W_MF2 = 3166,
+ PseudoVFNCVT_RTZ_XU_F_ALT_W_MF2_MASK = 3167,
+ PseudoVFNCVT_RTZ_XU_F_ALT_W_MF4 = 3168,
+ PseudoVFNCVT_RTZ_XU_F_ALT_W_MF4_MASK = 3169,
+ PseudoVFNCVT_RTZ_XU_F_ALT_W_MF8 = 3170,
+ PseudoVFNCVT_RTZ_XU_F_ALT_W_MF8_MASK = 3171,
+ PseudoVFNCVT_RTZ_XU_F_W_M1 = 3172,
+ PseudoVFNCVT_RTZ_XU_F_W_M1_MASK = 3173,
+ PseudoVFNCVT_RTZ_XU_F_W_M2 = 3174,
+ PseudoVFNCVT_RTZ_XU_F_W_M2_MASK = 3175,
+ PseudoVFNCVT_RTZ_XU_F_W_M4 = 3176,
+ PseudoVFNCVT_RTZ_XU_F_W_M4_MASK = 3177,
+ PseudoVFNCVT_RTZ_XU_F_W_MF2 = 3178,
+ PseudoVFNCVT_RTZ_XU_F_W_MF2_MASK = 3179,
+ PseudoVFNCVT_RTZ_XU_F_W_MF4 = 3180,
+ PseudoVFNCVT_RTZ_XU_F_W_MF4_MASK = 3181,
+ PseudoVFNCVT_RTZ_XU_F_W_MF8 = 3182,
+ PseudoVFNCVT_RTZ_XU_F_W_MF8_MASK = 3183,
+ PseudoVFNCVT_RTZ_X_F_ALT_W_M1 = 3184,
+ PseudoVFNCVT_RTZ_X_F_ALT_W_M1_MASK = 3185,
+ PseudoVFNCVT_RTZ_X_F_ALT_W_M2 = 3186,
+ PseudoVFNCVT_RTZ_X_F_ALT_W_M2_MASK = 3187,
+ PseudoVFNCVT_RTZ_X_F_ALT_W_M4 = 3188,
+ PseudoVFNCVT_RTZ_X_F_ALT_W_M4_MASK = 3189,
+ PseudoVFNCVT_RTZ_X_F_ALT_W_MF2 = 3190,
+ PseudoVFNCVT_RTZ_X_F_ALT_W_MF2_MASK = 3191,
+ PseudoVFNCVT_RTZ_X_F_ALT_W_MF4 = 3192,
+ PseudoVFNCVT_RTZ_X_F_ALT_W_MF4_MASK = 3193,
+ PseudoVFNCVT_RTZ_X_F_ALT_W_MF8 = 3194,
+ PseudoVFNCVT_RTZ_X_F_ALT_W_MF8_MASK = 3195,
+ PseudoVFNCVT_RTZ_X_F_W_M1 = 3196,
+ PseudoVFNCVT_RTZ_X_F_W_M1_MASK = 3197,
+ PseudoVFNCVT_RTZ_X_F_W_M2 = 3198,
+ PseudoVFNCVT_RTZ_X_F_W_M2_MASK = 3199,
+ PseudoVFNCVT_RTZ_X_F_W_M4 = 3200,
+ PseudoVFNCVT_RTZ_X_F_W_M4_MASK = 3201,
+ PseudoVFNCVT_RTZ_X_F_W_MF2 = 3202,
+ PseudoVFNCVT_RTZ_X_F_W_MF2_MASK = 3203,
+ PseudoVFNCVT_RTZ_X_F_W_MF4 = 3204,
+ PseudoVFNCVT_RTZ_X_F_W_MF4_MASK = 3205,
+ PseudoVFNCVT_RTZ_X_F_W_MF8 = 3206,
+ PseudoVFNCVT_RTZ_X_F_W_MF8_MASK = 3207,
+ PseudoVFNCVT_SAT_F_F_ALT_Q_M1_E8 = 3208,
+ PseudoVFNCVT_SAT_F_F_ALT_Q_M1_E8_MASK = 3209,
+ PseudoVFNCVT_SAT_F_F_ALT_Q_M2_E8 = 3210,
+ PseudoVFNCVT_SAT_F_F_ALT_Q_M2_E8_MASK = 3211,
+ PseudoVFNCVT_SAT_F_F_ALT_Q_MF2_E8 = 3212,
+ PseudoVFNCVT_SAT_F_F_ALT_Q_MF2_E8_MASK = 3213,
+ PseudoVFNCVT_SAT_F_F_ALT_Q_MF4_E8 = 3214,
+ PseudoVFNCVT_SAT_F_F_ALT_Q_MF4_E8_MASK = 3215,
+ PseudoVFNCVT_SAT_F_F_ALT_Q_MF8_E8 = 3216,
+ PseudoVFNCVT_SAT_F_F_ALT_Q_MF8_E8_MASK = 3217,
+ PseudoVFNCVT_SAT_F_F_Q_M1_E8 = 3218,
+ PseudoVFNCVT_SAT_F_F_Q_M1_E8_MASK = 3219,
+ PseudoVFNCVT_SAT_F_F_Q_M2_E8 = 3220,
+ PseudoVFNCVT_SAT_F_F_Q_M2_E8_MASK = 3221,
+ PseudoVFNCVT_SAT_F_F_Q_MF2_E8 = 3222,
+ PseudoVFNCVT_SAT_F_F_Q_MF2_E8_MASK = 3223,
+ PseudoVFNCVT_SAT_F_F_Q_MF4_E8 = 3224,
+ PseudoVFNCVT_SAT_F_F_Q_MF4_E8_MASK = 3225,
+ PseudoVFNCVT_SAT_F_F_Q_MF8_E8 = 3226,
+ PseudoVFNCVT_SAT_F_F_Q_MF8_E8_MASK = 3227,
+ PseudoVFNCVT_XU_F_ALT_W_M1 = 3228,
+ PseudoVFNCVT_XU_F_ALT_W_M1_MASK = 3229,
+ PseudoVFNCVT_XU_F_ALT_W_M2 = 3230,
+ PseudoVFNCVT_XU_F_ALT_W_M2_MASK = 3231,
+ PseudoVFNCVT_XU_F_ALT_W_M4 = 3232,
+ PseudoVFNCVT_XU_F_ALT_W_M4_MASK = 3233,
+ PseudoVFNCVT_XU_F_ALT_W_MF2 = 3234,
+ PseudoVFNCVT_XU_F_ALT_W_MF2_MASK = 3235,
+ PseudoVFNCVT_XU_F_ALT_W_MF4 = 3236,
+ PseudoVFNCVT_XU_F_ALT_W_MF4_MASK = 3237,
+ PseudoVFNCVT_XU_F_ALT_W_MF8 = 3238,
+ PseudoVFNCVT_XU_F_ALT_W_MF8_MASK = 3239,
+ PseudoVFNCVT_XU_F_W_M1 = 3240,
+ PseudoVFNCVT_XU_F_W_M1_MASK = 3241,
+ PseudoVFNCVT_XU_F_W_M2 = 3242,
+ PseudoVFNCVT_XU_F_W_M2_MASK = 3243,
+ PseudoVFNCVT_XU_F_W_M4 = 3244,
+ PseudoVFNCVT_XU_F_W_M4_MASK = 3245,
+ PseudoVFNCVT_XU_F_W_MF2 = 3246,
+ PseudoVFNCVT_XU_F_W_MF2_MASK = 3247,
+ PseudoVFNCVT_XU_F_W_MF4 = 3248,
+ PseudoVFNCVT_XU_F_W_MF4_MASK = 3249,
+ PseudoVFNCVT_XU_F_W_MF8 = 3250,
+ PseudoVFNCVT_XU_F_W_MF8_MASK = 3251,
+ PseudoVFNCVT_X_F_ALT_W_M1 = 3252,
+ PseudoVFNCVT_X_F_ALT_W_M1_MASK = 3253,
+ PseudoVFNCVT_X_F_ALT_W_M2 = 3254,
+ PseudoVFNCVT_X_F_ALT_W_M2_MASK = 3255,
+ PseudoVFNCVT_X_F_ALT_W_M4 = 3256,
+ PseudoVFNCVT_X_F_ALT_W_M4_MASK = 3257,
+ PseudoVFNCVT_X_F_ALT_W_MF2 = 3258,
+ PseudoVFNCVT_X_F_ALT_W_MF2_MASK = 3259,
+ PseudoVFNCVT_X_F_ALT_W_MF4 = 3260,
+ PseudoVFNCVT_X_F_ALT_W_MF4_MASK = 3261,
+ PseudoVFNCVT_X_F_ALT_W_MF8 = 3262,
+ PseudoVFNCVT_X_F_ALT_W_MF8_MASK = 3263,
+ PseudoVFNCVT_X_F_W_M1 = 3264,
+ PseudoVFNCVT_X_F_W_M1_MASK = 3265,
+ PseudoVFNCVT_X_F_W_M2 = 3266,
+ PseudoVFNCVT_X_F_W_M2_MASK = 3267,
+ PseudoVFNCVT_X_F_W_M4 = 3268,
+ PseudoVFNCVT_X_F_W_M4_MASK = 3269,
+ PseudoVFNCVT_X_F_W_MF2 = 3270,
+ PseudoVFNCVT_X_F_W_MF2_MASK = 3271,
+ PseudoVFNCVT_X_F_W_MF4 = 3272,
+ PseudoVFNCVT_X_F_W_MF4_MASK = 3273,
+ PseudoVFNCVT_X_F_W_MF8 = 3274,
+ PseudoVFNCVT_X_F_W_MF8_MASK = 3275,
+ PseudoVFNMACC_ALT_VFPR16_M1_E16 = 3276,
+ PseudoVFNMACC_ALT_VFPR16_M1_E16_MASK = 3277,
+ PseudoVFNMACC_ALT_VFPR16_M2_E16 = 3278,
+ PseudoVFNMACC_ALT_VFPR16_M2_E16_MASK = 3279,
+ PseudoVFNMACC_ALT_VFPR16_M4_E16 = 3280,
+ PseudoVFNMACC_ALT_VFPR16_M4_E16_MASK = 3281,
+ PseudoVFNMACC_ALT_VFPR16_M8_E16 = 3282,
+ PseudoVFNMACC_ALT_VFPR16_M8_E16_MASK = 3283,
+ PseudoVFNMACC_ALT_VFPR16_MF2_E16 = 3284,
+ PseudoVFNMACC_ALT_VFPR16_MF2_E16_MASK = 3285,
+ PseudoVFNMACC_ALT_VFPR16_MF4_E16 = 3286,
+ PseudoVFNMACC_ALT_VFPR16_MF4_E16_MASK = 3287,
+ PseudoVFNMACC_ALT_VV_M1_E16 = 3288,
+ PseudoVFNMACC_ALT_VV_M1_E16_MASK = 3289,
+ PseudoVFNMACC_ALT_VV_M2_E16 = 3290,
+ PseudoVFNMACC_ALT_VV_M2_E16_MASK = 3291,
+ PseudoVFNMACC_ALT_VV_M4_E16 = 3292,
+ PseudoVFNMACC_ALT_VV_M4_E16_MASK = 3293,
+ PseudoVFNMACC_ALT_VV_M8_E16 = 3294,
+ PseudoVFNMACC_ALT_VV_M8_E16_MASK = 3295,
+ PseudoVFNMACC_ALT_VV_MF2_E16 = 3296,
+ PseudoVFNMACC_ALT_VV_MF2_E16_MASK = 3297,
+ PseudoVFNMACC_ALT_VV_MF4_E16 = 3298,
+ PseudoVFNMACC_ALT_VV_MF4_E16_MASK = 3299,
+ PseudoVFNMACC_VFPR16_M1_E16 = 3300,
+ PseudoVFNMACC_VFPR16_M1_E16_MASK = 3301,
+ PseudoVFNMACC_VFPR16_M2_E16 = 3302,
+ PseudoVFNMACC_VFPR16_M2_E16_MASK = 3303,
+ PseudoVFNMACC_VFPR16_M4_E16 = 3304,
+ PseudoVFNMACC_VFPR16_M4_E16_MASK = 3305,
+ PseudoVFNMACC_VFPR16_M8_E16 = 3306,
+ PseudoVFNMACC_VFPR16_M8_E16_MASK = 3307,
+ PseudoVFNMACC_VFPR16_MF2_E16 = 3308,
+ PseudoVFNMACC_VFPR16_MF2_E16_MASK = 3309,
+ PseudoVFNMACC_VFPR16_MF4_E16 = 3310,
+ PseudoVFNMACC_VFPR16_MF4_E16_MASK = 3311,
+ PseudoVFNMACC_VFPR32_M1_E32 = 3312,
+ PseudoVFNMACC_VFPR32_M1_E32_MASK = 3313,
+ PseudoVFNMACC_VFPR32_M2_E32 = 3314,
+ PseudoVFNMACC_VFPR32_M2_E32_MASK = 3315,
+ PseudoVFNMACC_VFPR32_M4_E32 = 3316,
+ PseudoVFNMACC_VFPR32_M4_E32_MASK = 3317,
+ PseudoVFNMACC_VFPR32_M8_E32 = 3318,
+ PseudoVFNMACC_VFPR32_M8_E32_MASK = 3319,
+ PseudoVFNMACC_VFPR32_MF2_E32 = 3320,
+ PseudoVFNMACC_VFPR32_MF2_E32_MASK = 3321,
+ PseudoVFNMACC_VFPR64_M1_E64 = 3322,
+ PseudoVFNMACC_VFPR64_M1_E64_MASK = 3323,
+ PseudoVFNMACC_VFPR64_M2_E64 = 3324,
+ PseudoVFNMACC_VFPR64_M2_E64_MASK = 3325,
+ PseudoVFNMACC_VFPR64_M4_E64 = 3326,
+ PseudoVFNMACC_VFPR64_M4_E64_MASK = 3327,
+ PseudoVFNMACC_VFPR64_M8_E64 = 3328,
+ PseudoVFNMACC_VFPR64_M8_E64_MASK = 3329,
+ PseudoVFNMACC_VV_M1_E16 = 3330,
+ PseudoVFNMACC_VV_M1_E16_MASK = 3331,
+ PseudoVFNMACC_VV_M1_E32 = 3332,
+ PseudoVFNMACC_VV_M1_E32_MASK = 3333,
+ PseudoVFNMACC_VV_M1_E64 = 3334,
+ PseudoVFNMACC_VV_M1_E64_MASK = 3335,
+ PseudoVFNMACC_VV_M2_E16 = 3336,
+ PseudoVFNMACC_VV_M2_E16_MASK = 3337,
+ PseudoVFNMACC_VV_M2_E32 = 3338,
+ PseudoVFNMACC_VV_M2_E32_MASK = 3339,
+ PseudoVFNMACC_VV_M2_E64 = 3340,
+ PseudoVFNMACC_VV_M2_E64_MASK = 3341,
+ PseudoVFNMACC_VV_M4_E16 = 3342,
+ PseudoVFNMACC_VV_M4_E16_MASK = 3343,
+ PseudoVFNMACC_VV_M4_E32 = 3344,
+ PseudoVFNMACC_VV_M4_E32_MASK = 3345,
+ PseudoVFNMACC_VV_M4_E64 = 3346,
+ PseudoVFNMACC_VV_M4_E64_MASK = 3347,
+ PseudoVFNMACC_VV_M8_E16 = 3348,
+ PseudoVFNMACC_VV_M8_E16_MASK = 3349,
+ PseudoVFNMACC_VV_M8_E32 = 3350,
+ PseudoVFNMACC_VV_M8_E32_MASK = 3351,
+ PseudoVFNMACC_VV_M8_E64 = 3352,
+ PseudoVFNMACC_VV_M8_E64_MASK = 3353,
+ PseudoVFNMACC_VV_MF2_E16 = 3354,
+ PseudoVFNMACC_VV_MF2_E16_MASK = 3355,
+ PseudoVFNMACC_VV_MF2_E32 = 3356,
+ PseudoVFNMACC_VV_MF2_E32_MASK = 3357,
+ PseudoVFNMACC_VV_MF4_E16 = 3358,
+ PseudoVFNMACC_VV_MF4_E16_MASK = 3359,
+ PseudoVFNMADD_ALT_VFPR16_M1_E16 = 3360,
+ PseudoVFNMADD_ALT_VFPR16_M1_E16_MASK = 3361,
+ PseudoVFNMADD_ALT_VFPR16_M2_E16 = 3362,
+ PseudoVFNMADD_ALT_VFPR16_M2_E16_MASK = 3363,
+ PseudoVFNMADD_ALT_VFPR16_M4_E16 = 3364,
+ PseudoVFNMADD_ALT_VFPR16_M4_E16_MASK = 3365,
+ PseudoVFNMADD_ALT_VFPR16_M8_E16 = 3366,
+ PseudoVFNMADD_ALT_VFPR16_M8_E16_MASK = 3367,
+ PseudoVFNMADD_ALT_VFPR16_MF2_E16 = 3368,
+ PseudoVFNMADD_ALT_VFPR16_MF2_E16_MASK = 3369,
+ PseudoVFNMADD_ALT_VFPR16_MF4_E16 = 3370,
+ PseudoVFNMADD_ALT_VFPR16_MF4_E16_MASK = 3371,
+ PseudoVFNMADD_ALT_VV_M1_E16 = 3372,
+ PseudoVFNMADD_ALT_VV_M1_E16_MASK = 3373,
+ PseudoVFNMADD_ALT_VV_M2_E16 = 3374,
+ PseudoVFNMADD_ALT_VV_M2_E16_MASK = 3375,
+ PseudoVFNMADD_ALT_VV_M4_E16 = 3376,
+ PseudoVFNMADD_ALT_VV_M4_E16_MASK = 3377,
+ PseudoVFNMADD_ALT_VV_M8_E16 = 3378,
+ PseudoVFNMADD_ALT_VV_M8_E16_MASK = 3379,
+ PseudoVFNMADD_ALT_VV_MF2_E16 = 3380,
+ PseudoVFNMADD_ALT_VV_MF2_E16_MASK = 3381,
+ PseudoVFNMADD_ALT_VV_MF4_E16 = 3382,
+ PseudoVFNMADD_ALT_VV_MF4_E16_MASK = 3383,
+ PseudoVFNMADD_VFPR16_M1_E16 = 3384,
+ PseudoVFNMADD_VFPR16_M1_E16_MASK = 3385,
+ PseudoVFNMADD_VFPR16_M2_E16 = 3386,
+ PseudoVFNMADD_VFPR16_M2_E16_MASK = 3387,
+ PseudoVFNMADD_VFPR16_M4_E16 = 3388,
+ PseudoVFNMADD_VFPR16_M4_E16_MASK = 3389,
+ PseudoVFNMADD_VFPR16_M8_E16 = 3390,
+ PseudoVFNMADD_VFPR16_M8_E16_MASK = 3391,
+ PseudoVFNMADD_VFPR16_MF2_E16 = 3392,
+ PseudoVFNMADD_VFPR16_MF2_E16_MASK = 3393,
+ PseudoVFNMADD_VFPR16_MF4_E16 = 3394,
+ PseudoVFNMADD_VFPR16_MF4_E16_MASK = 3395,
+ PseudoVFNMADD_VFPR32_M1_E32 = 3396,
+ PseudoVFNMADD_VFPR32_M1_E32_MASK = 3397,
+ PseudoVFNMADD_VFPR32_M2_E32 = 3398,
+ PseudoVFNMADD_VFPR32_M2_E32_MASK = 3399,
+ PseudoVFNMADD_VFPR32_M4_E32 = 3400,
+ PseudoVFNMADD_VFPR32_M4_E32_MASK = 3401,
+ PseudoVFNMADD_VFPR32_M8_E32 = 3402,
+ PseudoVFNMADD_VFPR32_M8_E32_MASK = 3403,
+ PseudoVFNMADD_VFPR32_MF2_E32 = 3404,
+ PseudoVFNMADD_VFPR32_MF2_E32_MASK = 3405,
+ PseudoVFNMADD_VFPR64_M1_E64 = 3406,
+ PseudoVFNMADD_VFPR64_M1_E64_MASK = 3407,
+ PseudoVFNMADD_VFPR64_M2_E64 = 3408,
+ PseudoVFNMADD_VFPR64_M2_E64_MASK = 3409,
+ PseudoVFNMADD_VFPR64_M4_E64 = 3410,
+ PseudoVFNMADD_VFPR64_M4_E64_MASK = 3411,
+ PseudoVFNMADD_VFPR64_M8_E64 = 3412,
+ PseudoVFNMADD_VFPR64_M8_E64_MASK = 3413,
+ PseudoVFNMADD_VV_M1_E16 = 3414,
+ PseudoVFNMADD_VV_M1_E16_MASK = 3415,
+ PseudoVFNMADD_VV_M1_E32 = 3416,
+ PseudoVFNMADD_VV_M1_E32_MASK = 3417,
+ PseudoVFNMADD_VV_M1_E64 = 3418,
+ PseudoVFNMADD_VV_M1_E64_MASK = 3419,
+ PseudoVFNMADD_VV_M2_E16 = 3420,
+ PseudoVFNMADD_VV_M2_E16_MASK = 3421,
+ PseudoVFNMADD_VV_M2_E32 = 3422,
+ PseudoVFNMADD_VV_M2_E32_MASK = 3423,
+ PseudoVFNMADD_VV_M2_E64 = 3424,
+ PseudoVFNMADD_VV_M2_E64_MASK = 3425,
+ PseudoVFNMADD_VV_M4_E16 = 3426,
+ PseudoVFNMADD_VV_M4_E16_MASK = 3427,
+ PseudoVFNMADD_VV_M4_E32 = 3428,
+ PseudoVFNMADD_VV_M4_E32_MASK = 3429,
+ PseudoVFNMADD_VV_M4_E64 = 3430,
+ PseudoVFNMADD_VV_M4_E64_MASK = 3431,
+ PseudoVFNMADD_VV_M8_E16 = 3432,
+ PseudoVFNMADD_VV_M8_E16_MASK = 3433,
+ PseudoVFNMADD_VV_M8_E32 = 3434,
+ PseudoVFNMADD_VV_M8_E32_MASK = 3435,
+ PseudoVFNMADD_VV_M8_E64 = 3436,
+ PseudoVFNMADD_VV_M8_E64_MASK = 3437,
+ PseudoVFNMADD_VV_MF2_E16 = 3438,
+ PseudoVFNMADD_VV_MF2_E16_MASK = 3439,
+ PseudoVFNMADD_VV_MF2_E32 = 3440,
+ PseudoVFNMADD_VV_MF2_E32_MASK = 3441,
+ PseudoVFNMADD_VV_MF4_E16 = 3442,
+ PseudoVFNMADD_VV_MF4_E16_MASK = 3443,
+ PseudoVFNMSAC_ALT_VFPR16_M1_E16 = 3444,
+ PseudoVFNMSAC_ALT_VFPR16_M1_E16_MASK = 3445,
+ PseudoVFNMSAC_ALT_VFPR16_M2_E16 = 3446,
+ PseudoVFNMSAC_ALT_VFPR16_M2_E16_MASK = 3447,
+ PseudoVFNMSAC_ALT_VFPR16_M4_E16 = 3448,
+ PseudoVFNMSAC_ALT_VFPR16_M4_E16_MASK = 3449,
+ PseudoVFNMSAC_ALT_VFPR16_M8_E16 = 3450,
+ PseudoVFNMSAC_ALT_VFPR16_M8_E16_MASK = 3451,
+ PseudoVFNMSAC_ALT_VFPR16_MF2_E16 = 3452,
+ PseudoVFNMSAC_ALT_VFPR16_MF2_E16_MASK = 3453,
+ PseudoVFNMSAC_ALT_VFPR16_MF4_E16 = 3454,
+ PseudoVFNMSAC_ALT_VFPR16_MF4_E16_MASK = 3455,
+ PseudoVFNMSAC_ALT_VV_M1_E16 = 3456,
+ PseudoVFNMSAC_ALT_VV_M1_E16_MASK = 3457,
+ PseudoVFNMSAC_ALT_VV_M2_E16 = 3458,
+ PseudoVFNMSAC_ALT_VV_M2_E16_MASK = 3459,
+ PseudoVFNMSAC_ALT_VV_M4_E16 = 3460,
+ PseudoVFNMSAC_ALT_VV_M4_E16_MASK = 3461,
+ PseudoVFNMSAC_ALT_VV_M8_E16 = 3462,
+ PseudoVFNMSAC_ALT_VV_M8_E16_MASK = 3463,
+ PseudoVFNMSAC_ALT_VV_MF2_E16 = 3464,
+ PseudoVFNMSAC_ALT_VV_MF2_E16_MASK = 3465,
+ PseudoVFNMSAC_ALT_VV_MF4_E16 = 3466,
+ PseudoVFNMSAC_ALT_VV_MF4_E16_MASK = 3467,
+ PseudoVFNMSAC_VFPR16_M1_E16 = 3468,
+ PseudoVFNMSAC_VFPR16_M1_E16_MASK = 3469,
+ PseudoVFNMSAC_VFPR16_M2_E16 = 3470,
+ PseudoVFNMSAC_VFPR16_M2_E16_MASK = 3471,
+ PseudoVFNMSAC_VFPR16_M4_E16 = 3472,
+ PseudoVFNMSAC_VFPR16_M4_E16_MASK = 3473,
+ PseudoVFNMSAC_VFPR16_M8_E16 = 3474,
+ PseudoVFNMSAC_VFPR16_M8_E16_MASK = 3475,
+ PseudoVFNMSAC_VFPR16_MF2_E16 = 3476,
+ PseudoVFNMSAC_VFPR16_MF2_E16_MASK = 3477,
+ PseudoVFNMSAC_VFPR16_MF4_E16 = 3478,
+ PseudoVFNMSAC_VFPR16_MF4_E16_MASK = 3479,
+ PseudoVFNMSAC_VFPR32_M1_E32 = 3480,
+ PseudoVFNMSAC_VFPR32_M1_E32_MASK = 3481,
+ PseudoVFNMSAC_VFPR32_M2_E32 = 3482,
+ PseudoVFNMSAC_VFPR32_M2_E32_MASK = 3483,
+ PseudoVFNMSAC_VFPR32_M4_E32 = 3484,
+ PseudoVFNMSAC_VFPR32_M4_E32_MASK = 3485,
+ PseudoVFNMSAC_VFPR32_M8_E32 = 3486,
+ PseudoVFNMSAC_VFPR32_M8_E32_MASK = 3487,
+ PseudoVFNMSAC_VFPR32_MF2_E32 = 3488,
+ PseudoVFNMSAC_VFPR32_MF2_E32_MASK = 3489,
+ PseudoVFNMSAC_VFPR64_M1_E64 = 3490,
+ PseudoVFNMSAC_VFPR64_M1_E64_MASK = 3491,
+ PseudoVFNMSAC_VFPR64_M2_E64 = 3492,
+ PseudoVFNMSAC_VFPR64_M2_E64_MASK = 3493,
+ PseudoVFNMSAC_VFPR64_M4_E64 = 3494,
+ PseudoVFNMSAC_VFPR64_M4_E64_MASK = 3495,
+ PseudoVFNMSAC_VFPR64_M8_E64 = 3496,
+ PseudoVFNMSAC_VFPR64_M8_E64_MASK = 3497,
+ PseudoVFNMSAC_VV_M1_E16 = 3498,
+ PseudoVFNMSAC_VV_M1_E16_MASK = 3499,
+ PseudoVFNMSAC_VV_M1_E32 = 3500,
+ PseudoVFNMSAC_VV_M1_E32_MASK = 3501,
+ PseudoVFNMSAC_VV_M1_E64 = 3502,
+ PseudoVFNMSAC_VV_M1_E64_MASK = 3503,
+ PseudoVFNMSAC_VV_M2_E16 = 3504,
+ PseudoVFNMSAC_VV_M2_E16_MASK = 3505,
+ PseudoVFNMSAC_VV_M2_E32 = 3506,
+ PseudoVFNMSAC_VV_M2_E32_MASK = 3507,
+ PseudoVFNMSAC_VV_M2_E64 = 3508,
+ PseudoVFNMSAC_VV_M2_E64_MASK = 3509,
+ PseudoVFNMSAC_VV_M4_E16 = 3510,
+ PseudoVFNMSAC_VV_M4_E16_MASK = 3511,
+ PseudoVFNMSAC_VV_M4_E32 = 3512,
+ PseudoVFNMSAC_VV_M4_E32_MASK = 3513,
+ PseudoVFNMSAC_VV_M4_E64 = 3514,
+ PseudoVFNMSAC_VV_M4_E64_MASK = 3515,
+ PseudoVFNMSAC_VV_M8_E16 = 3516,
+ PseudoVFNMSAC_VV_M8_E16_MASK = 3517,
+ PseudoVFNMSAC_VV_M8_E32 = 3518,
+ PseudoVFNMSAC_VV_M8_E32_MASK = 3519,
+ PseudoVFNMSAC_VV_M8_E64 = 3520,
+ PseudoVFNMSAC_VV_M8_E64_MASK = 3521,
+ PseudoVFNMSAC_VV_MF2_E16 = 3522,
+ PseudoVFNMSAC_VV_MF2_E16_MASK = 3523,
+ PseudoVFNMSAC_VV_MF2_E32 = 3524,
+ PseudoVFNMSAC_VV_MF2_E32_MASK = 3525,
+ PseudoVFNMSAC_VV_MF4_E16 = 3526,
+ PseudoVFNMSAC_VV_MF4_E16_MASK = 3527,
+ PseudoVFNMSUB_ALT_VFPR16_M1_E16 = 3528,
+ PseudoVFNMSUB_ALT_VFPR16_M1_E16_MASK = 3529,
+ PseudoVFNMSUB_ALT_VFPR16_M2_E16 = 3530,
+ PseudoVFNMSUB_ALT_VFPR16_M2_E16_MASK = 3531,
+ PseudoVFNMSUB_ALT_VFPR16_M4_E16 = 3532,
+ PseudoVFNMSUB_ALT_VFPR16_M4_E16_MASK = 3533,
+ PseudoVFNMSUB_ALT_VFPR16_M8_E16 = 3534,
+ PseudoVFNMSUB_ALT_VFPR16_M8_E16_MASK = 3535,
+ PseudoVFNMSUB_ALT_VFPR16_MF2_E16 = 3536,
+ PseudoVFNMSUB_ALT_VFPR16_MF2_E16_MASK = 3537,
+ PseudoVFNMSUB_ALT_VFPR16_MF4_E16 = 3538,
+ PseudoVFNMSUB_ALT_VFPR16_MF4_E16_MASK = 3539,
+ PseudoVFNMSUB_ALT_VV_M1_E16 = 3540,
+ PseudoVFNMSUB_ALT_VV_M1_E16_MASK = 3541,
+ PseudoVFNMSUB_ALT_VV_M2_E16 = 3542,
+ PseudoVFNMSUB_ALT_VV_M2_E16_MASK = 3543,
+ PseudoVFNMSUB_ALT_VV_M4_E16 = 3544,
+ PseudoVFNMSUB_ALT_VV_M4_E16_MASK = 3545,
+ PseudoVFNMSUB_ALT_VV_M8_E16 = 3546,
+ PseudoVFNMSUB_ALT_VV_M8_E16_MASK = 3547,
+ PseudoVFNMSUB_ALT_VV_MF2_E16 = 3548,
+ PseudoVFNMSUB_ALT_VV_MF2_E16_MASK = 3549,
+ PseudoVFNMSUB_ALT_VV_MF4_E16 = 3550,
+ PseudoVFNMSUB_ALT_VV_MF4_E16_MASK = 3551,
+ PseudoVFNMSUB_VFPR16_M1_E16 = 3552,
+ PseudoVFNMSUB_VFPR16_M1_E16_MASK = 3553,
+ PseudoVFNMSUB_VFPR16_M2_E16 = 3554,
+ PseudoVFNMSUB_VFPR16_M2_E16_MASK = 3555,
+ PseudoVFNMSUB_VFPR16_M4_E16 = 3556,
+ PseudoVFNMSUB_VFPR16_M4_E16_MASK = 3557,
+ PseudoVFNMSUB_VFPR16_M8_E16 = 3558,
+ PseudoVFNMSUB_VFPR16_M8_E16_MASK = 3559,
+ PseudoVFNMSUB_VFPR16_MF2_E16 = 3560,
+ PseudoVFNMSUB_VFPR16_MF2_E16_MASK = 3561,
+ PseudoVFNMSUB_VFPR16_MF4_E16 = 3562,
+ PseudoVFNMSUB_VFPR16_MF4_E16_MASK = 3563,
+ PseudoVFNMSUB_VFPR32_M1_E32 = 3564,
+ PseudoVFNMSUB_VFPR32_M1_E32_MASK = 3565,
+ PseudoVFNMSUB_VFPR32_M2_E32 = 3566,
+ PseudoVFNMSUB_VFPR32_M2_E32_MASK = 3567,
+ PseudoVFNMSUB_VFPR32_M4_E32 = 3568,
+ PseudoVFNMSUB_VFPR32_M4_E32_MASK = 3569,
+ PseudoVFNMSUB_VFPR32_M8_E32 = 3570,
+ PseudoVFNMSUB_VFPR32_M8_E32_MASK = 3571,
+ PseudoVFNMSUB_VFPR32_MF2_E32 = 3572,
+ PseudoVFNMSUB_VFPR32_MF2_E32_MASK = 3573,
+ PseudoVFNMSUB_VFPR64_M1_E64 = 3574,
+ PseudoVFNMSUB_VFPR64_M1_E64_MASK = 3575,
+ PseudoVFNMSUB_VFPR64_M2_E64 = 3576,
+ PseudoVFNMSUB_VFPR64_M2_E64_MASK = 3577,
+ PseudoVFNMSUB_VFPR64_M4_E64 = 3578,
+ PseudoVFNMSUB_VFPR64_M4_E64_MASK = 3579,
+ PseudoVFNMSUB_VFPR64_M8_E64 = 3580,
+ PseudoVFNMSUB_VFPR64_M8_E64_MASK = 3581,
+ PseudoVFNMSUB_VV_M1_E16 = 3582,
+ PseudoVFNMSUB_VV_M1_E16_MASK = 3583,
+ PseudoVFNMSUB_VV_M1_E32 = 3584,
+ PseudoVFNMSUB_VV_M1_E32_MASK = 3585,
+ PseudoVFNMSUB_VV_M1_E64 = 3586,
+ PseudoVFNMSUB_VV_M1_E64_MASK = 3587,
+ PseudoVFNMSUB_VV_M2_E16 = 3588,
+ PseudoVFNMSUB_VV_M2_E16_MASK = 3589,
+ PseudoVFNMSUB_VV_M2_E32 = 3590,
+ PseudoVFNMSUB_VV_M2_E32_MASK = 3591,
+ PseudoVFNMSUB_VV_M2_E64 = 3592,
+ PseudoVFNMSUB_VV_M2_E64_MASK = 3593,
+ PseudoVFNMSUB_VV_M4_E16 = 3594,
+ PseudoVFNMSUB_VV_M4_E16_MASK = 3595,
+ PseudoVFNMSUB_VV_M4_E32 = 3596,
+ PseudoVFNMSUB_VV_M4_E32_MASK = 3597,
+ PseudoVFNMSUB_VV_M4_E64 = 3598,
+ PseudoVFNMSUB_VV_M4_E64_MASK = 3599,
+ PseudoVFNMSUB_VV_M8_E16 = 3600,
+ PseudoVFNMSUB_VV_M8_E16_MASK = 3601,
+ PseudoVFNMSUB_VV_M8_E32 = 3602,
+ PseudoVFNMSUB_VV_M8_E32_MASK = 3603,
+ PseudoVFNMSUB_VV_M8_E64 = 3604,
+ PseudoVFNMSUB_VV_M8_E64_MASK = 3605,
+ PseudoVFNMSUB_VV_MF2_E16 = 3606,
+ PseudoVFNMSUB_VV_MF2_E16_MASK = 3607,
+ PseudoVFNMSUB_VV_MF2_E32 = 3608,
+ PseudoVFNMSUB_VV_MF2_E32_MASK = 3609,
+ PseudoVFNMSUB_VV_MF4_E16 = 3610,
+ PseudoVFNMSUB_VV_MF4_E16_MASK = 3611,
+ PseudoVFRDIV_VFPR16_M1_E16 = 3612,
+ PseudoVFRDIV_VFPR16_M1_E16_MASK = 3613,
+ PseudoVFRDIV_VFPR16_M2_E16 = 3614,
+ PseudoVFRDIV_VFPR16_M2_E16_MASK = 3615,
+ PseudoVFRDIV_VFPR16_M4_E16 = 3616,
+ PseudoVFRDIV_VFPR16_M4_E16_MASK = 3617,
+ PseudoVFRDIV_VFPR16_M8_E16 = 3618,
+ PseudoVFRDIV_VFPR16_M8_E16_MASK = 3619,
+ PseudoVFRDIV_VFPR16_MF2_E16 = 3620,
+ PseudoVFRDIV_VFPR16_MF2_E16_MASK = 3621,
+ PseudoVFRDIV_VFPR16_MF4_E16 = 3622,
+ PseudoVFRDIV_VFPR16_MF4_E16_MASK = 3623,
+ PseudoVFRDIV_VFPR32_M1_E32 = 3624,
+ PseudoVFRDIV_VFPR32_M1_E32_MASK = 3625,
+ PseudoVFRDIV_VFPR32_M2_E32 = 3626,
+ PseudoVFRDIV_VFPR32_M2_E32_MASK = 3627,
+ PseudoVFRDIV_VFPR32_M4_E32 = 3628,
+ PseudoVFRDIV_VFPR32_M4_E32_MASK = 3629,
+ PseudoVFRDIV_VFPR32_M8_E32 = 3630,
+ PseudoVFRDIV_VFPR32_M8_E32_MASK = 3631,
+ PseudoVFRDIV_VFPR32_MF2_E32 = 3632,
+ PseudoVFRDIV_VFPR32_MF2_E32_MASK = 3633,
+ PseudoVFRDIV_VFPR64_M1_E64 = 3634,
+ PseudoVFRDIV_VFPR64_M1_E64_MASK = 3635,
+ PseudoVFRDIV_VFPR64_M2_E64 = 3636,
+ PseudoVFRDIV_VFPR64_M2_E64_MASK = 3637,
+ PseudoVFRDIV_VFPR64_M4_E64 = 3638,
+ PseudoVFRDIV_VFPR64_M4_E64_MASK = 3639,
+ PseudoVFRDIV_VFPR64_M8_E64 = 3640,
+ PseudoVFRDIV_VFPR64_M8_E64_MASK = 3641,
+ PseudoVFREC7_ALT_V_M1_E16 = 3642,
+ PseudoVFREC7_ALT_V_M1_E16_MASK = 3643,
+ PseudoVFREC7_ALT_V_M2_E16 = 3644,
+ PseudoVFREC7_ALT_V_M2_E16_MASK = 3645,
+ PseudoVFREC7_ALT_V_M4_E16 = 3646,
+ PseudoVFREC7_ALT_V_M4_E16_MASK = 3647,
+ PseudoVFREC7_ALT_V_M8_E16 = 3648,
+ PseudoVFREC7_ALT_V_M8_E16_MASK = 3649,
+ PseudoVFREC7_ALT_V_MF2_E16 = 3650,
+ PseudoVFREC7_ALT_V_MF2_E16_MASK = 3651,
+ PseudoVFREC7_ALT_V_MF4_E16 = 3652,
+ PseudoVFREC7_ALT_V_MF4_E16_MASK = 3653,
+ PseudoVFREC7_V_M1_E16 = 3654,
+ PseudoVFREC7_V_M1_E16_MASK = 3655,
+ PseudoVFREC7_V_M1_E32 = 3656,
+ PseudoVFREC7_V_M1_E32_MASK = 3657,
+ PseudoVFREC7_V_M1_E64 = 3658,
+ PseudoVFREC7_V_M1_E64_MASK = 3659,
+ PseudoVFREC7_V_M2_E16 = 3660,
+ PseudoVFREC7_V_M2_E16_MASK = 3661,
+ PseudoVFREC7_V_M2_E32 = 3662,
+ PseudoVFREC7_V_M2_E32_MASK = 3663,
+ PseudoVFREC7_V_M2_E64 = 3664,
+ PseudoVFREC7_V_M2_E64_MASK = 3665,
+ PseudoVFREC7_V_M4_E16 = 3666,
+ PseudoVFREC7_V_M4_E16_MASK = 3667,
+ PseudoVFREC7_V_M4_E32 = 3668,
+ PseudoVFREC7_V_M4_E32_MASK = 3669,
+ PseudoVFREC7_V_M4_E64 = 3670,
+ PseudoVFREC7_V_M4_E64_MASK = 3671,
+ PseudoVFREC7_V_M8_E16 = 3672,
+ PseudoVFREC7_V_M8_E16_MASK = 3673,
+ PseudoVFREC7_V_M8_E32 = 3674,
+ PseudoVFREC7_V_M8_E32_MASK = 3675,
+ PseudoVFREC7_V_M8_E64 = 3676,
+ PseudoVFREC7_V_M8_E64_MASK = 3677,
+ PseudoVFREC7_V_MF2_E16 = 3678,
+ PseudoVFREC7_V_MF2_E16_MASK = 3679,
+ PseudoVFREC7_V_MF2_E32 = 3680,
+ PseudoVFREC7_V_MF2_E32_MASK = 3681,
+ PseudoVFREC7_V_MF4_E16 = 3682,
+ PseudoVFREC7_V_MF4_E16_MASK = 3683,
+ PseudoVFREDMAX_VS_M1_E16 = 3684,
+ PseudoVFREDMAX_VS_M1_E16_MASK = 3685,
+ PseudoVFREDMAX_VS_M1_E32 = 3686,
+ PseudoVFREDMAX_VS_M1_E32_MASK = 3687,
+ PseudoVFREDMAX_VS_M1_E64 = 3688,
+ PseudoVFREDMAX_VS_M1_E64_MASK = 3689,
+ PseudoVFREDMAX_VS_M2_E16 = 3690,
+ PseudoVFREDMAX_VS_M2_E16_MASK = 3691,
+ PseudoVFREDMAX_VS_M2_E32 = 3692,
+ PseudoVFREDMAX_VS_M2_E32_MASK = 3693,
+ PseudoVFREDMAX_VS_M2_E64 = 3694,
+ PseudoVFREDMAX_VS_M2_E64_MASK = 3695,
+ PseudoVFREDMAX_VS_M4_E16 = 3696,
+ PseudoVFREDMAX_VS_M4_E16_MASK = 3697,
+ PseudoVFREDMAX_VS_M4_E32 = 3698,
+ PseudoVFREDMAX_VS_M4_E32_MASK = 3699,
+ PseudoVFREDMAX_VS_M4_E64 = 3700,
+ PseudoVFREDMAX_VS_M4_E64_MASK = 3701,
+ PseudoVFREDMAX_VS_M8_E16 = 3702,
+ PseudoVFREDMAX_VS_M8_E16_MASK = 3703,
+ PseudoVFREDMAX_VS_M8_E32 = 3704,
+ PseudoVFREDMAX_VS_M8_E32_MASK = 3705,
+ PseudoVFREDMAX_VS_M8_E64 = 3706,
+ PseudoVFREDMAX_VS_M8_E64_MASK = 3707,
+ PseudoVFREDMAX_VS_MF2_E16 = 3708,
+ PseudoVFREDMAX_VS_MF2_E16_MASK = 3709,
+ PseudoVFREDMAX_VS_MF2_E32 = 3710,
+ PseudoVFREDMAX_VS_MF2_E32_MASK = 3711,
+ PseudoVFREDMAX_VS_MF4_E16 = 3712,
+ PseudoVFREDMAX_VS_MF4_E16_MASK = 3713,
+ PseudoVFREDMIN_VS_M1_E16 = 3714,
+ PseudoVFREDMIN_VS_M1_E16_MASK = 3715,
+ PseudoVFREDMIN_VS_M1_E32 = 3716,
+ PseudoVFREDMIN_VS_M1_E32_MASK = 3717,
+ PseudoVFREDMIN_VS_M1_E64 = 3718,
+ PseudoVFREDMIN_VS_M1_E64_MASK = 3719,
+ PseudoVFREDMIN_VS_M2_E16 = 3720,
+ PseudoVFREDMIN_VS_M2_E16_MASK = 3721,
+ PseudoVFREDMIN_VS_M2_E32 = 3722,
+ PseudoVFREDMIN_VS_M2_E32_MASK = 3723,
+ PseudoVFREDMIN_VS_M2_E64 = 3724,
+ PseudoVFREDMIN_VS_M2_E64_MASK = 3725,
+ PseudoVFREDMIN_VS_M4_E16 = 3726,
+ PseudoVFREDMIN_VS_M4_E16_MASK = 3727,
+ PseudoVFREDMIN_VS_M4_E32 = 3728,
+ PseudoVFREDMIN_VS_M4_E32_MASK = 3729,
+ PseudoVFREDMIN_VS_M4_E64 = 3730,
+ PseudoVFREDMIN_VS_M4_E64_MASK = 3731,
+ PseudoVFREDMIN_VS_M8_E16 = 3732,
+ PseudoVFREDMIN_VS_M8_E16_MASK = 3733,
+ PseudoVFREDMIN_VS_M8_E32 = 3734,
+ PseudoVFREDMIN_VS_M8_E32_MASK = 3735,
+ PseudoVFREDMIN_VS_M8_E64 = 3736,
+ PseudoVFREDMIN_VS_M8_E64_MASK = 3737,
+ PseudoVFREDMIN_VS_MF2_E16 = 3738,
+ PseudoVFREDMIN_VS_MF2_E16_MASK = 3739,
+ PseudoVFREDMIN_VS_MF2_E32 = 3740,
+ PseudoVFREDMIN_VS_MF2_E32_MASK = 3741,
+ PseudoVFREDMIN_VS_MF4_E16 = 3742,
+ PseudoVFREDMIN_VS_MF4_E16_MASK = 3743,
+ PseudoVFREDOSUM_VS_M1_E16 = 3744,
+ PseudoVFREDOSUM_VS_M1_E16_MASK = 3745,
+ PseudoVFREDOSUM_VS_M1_E32 = 3746,
+ PseudoVFREDOSUM_VS_M1_E32_MASK = 3747,
+ PseudoVFREDOSUM_VS_M1_E64 = 3748,
+ PseudoVFREDOSUM_VS_M1_E64_MASK = 3749,
+ PseudoVFREDOSUM_VS_M2_E16 = 3750,
+ PseudoVFREDOSUM_VS_M2_E16_MASK = 3751,
+ PseudoVFREDOSUM_VS_M2_E32 = 3752,
+ PseudoVFREDOSUM_VS_M2_E32_MASK = 3753,
+ PseudoVFREDOSUM_VS_M2_E64 = 3754,
+ PseudoVFREDOSUM_VS_M2_E64_MASK = 3755,
+ PseudoVFREDOSUM_VS_M4_E16 = 3756,
+ PseudoVFREDOSUM_VS_M4_E16_MASK = 3757,
+ PseudoVFREDOSUM_VS_M4_E32 = 3758,
+ PseudoVFREDOSUM_VS_M4_E32_MASK = 3759,
+ PseudoVFREDOSUM_VS_M4_E64 = 3760,
+ PseudoVFREDOSUM_VS_M4_E64_MASK = 3761,
+ PseudoVFREDOSUM_VS_M8_E16 = 3762,
+ PseudoVFREDOSUM_VS_M8_E16_MASK = 3763,
+ PseudoVFREDOSUM_VS_M8_E32 = 3764,
+ PseudoVFREDOSUM_VS_M8_E32_MASK = 3765,
+ PseudoVFREDOSUM_VS_M8_E64 = 3766,
+ PseudoVFREDOSUM_VS_M8_E64_MASK = 3767,
+ PseudoVFREDOSUM_VS_MF2_E16 = 3768,
+ PseudoVFREDOSUM_VS_MF2_E16_MASK = 3769,
+ PseudoVFREDOSUM_VS_MF2_E32 = 3770,
+ PseudoVFREDOSUM_VS_MF2_E32_MASK = 3771,
+ PseudoVFREDOSUM_VS_MF4_E16 = 3772,
+ PseudoVFREDOSUM_VS_MF4_E16_MASK = 3773,
+ PseudoVFREDUSUM_VS_M1_E16 = 3774,
+ PseudoVFREDUSUM_VS_M1_E16_MASK = 3775,
+ PseudoVFREDUSUM_VS_M1_E32 = 3776,
+ PseudoVFREDUSUM_VS_M1_E32_MASK = 3777,
+ PseudoVFREDUSUM_VS_M1_E64 = 3778,
+ PseudoVFREDUSUM_VS_M1_E64_MASK = 3779,
+ PseudoVFREDUSUM_VS_M2_E16 = 3780,
+ PseudoVFREDUSUM_VS_M2_E16_MASK = 3781,
+ PseudoVFREDUSUM_VS_M2_E32 = 3782,
+ PseudoVFREDUSUM_VS_M2_E32_MASK = 3783,
+ PseudoVFREDUSUM_VS_M2_E64 = 3784,
+ PseudoVFREDUSUM_VS_M2_E64_MASK = 3785,
+ PseudoVFREDUSUM_VS_M4_E16 = 3786,
+ PseudoVFREDUSUM_VS_M4_E16_MASK = 3787,
+ PseudoVFREDUSUM_VS_M4_E32 = 3788,
+ PseudoVFREDUSUM_VS_M4_E32_MASK = 3789,
+ PseudoVFREDUSUM_VS_M4_E64 = 3790,
+ PseudoVFREDUSUM_VS_M4_E64_MASK = 3791,
+ PseudoVFREDUSUM_VS_M8_E16 = 3792,
+ PseudoVFREDUSUM_VS_M8_E16_MASK = 3793,
+ PseudoVFREDUSUM_VS_M8_E32 = 3794,
+ PseudoVFREDUSUM_VS_M8_E32_MASK = 3795,
+ PseudoVFREDUSUM_VS_M8_E64 = 3796,
+ PseudoVFREDUSUM_VS_M8_E64_MASK = 3797,
+ PseudoVFREDUSUM_VS_MF2_E16 = 3798,
+ PseudoVFREDUSUM_VS_MF2_E16_MASK = 3799,
+ PseudoVFREDUSUM_VS_MF2_E32 = 3800,
+ PseudoVFREDUSUM_VS_MF2_E32_MASK = 3801,
+ PseudoVFREDUSUM_VS_MF4_E16 = 3802,
+ PseudoVFREDUSUM_VS_MF4_E16_MASK = 3803,
+ PseudoVFROUND_NOEXCEPT_V_M1_MASK = 3804,
+ PseudoVFROUND_NOEXCEPT_V_M2_MASK = 3805,
+ PseudoVFROUND_NOEXCEPT_V_M4_MASK = 3806,
+ PseudoVFROUND_NOEXCEPT_V_M8_MASK = 3807,
+ PseudoVFROUND_NOEXCEPT_V_MF2_MASK = 3808,
+ PseudoVFROUND_NOEXCEPT_V_MF4_MASK = 3809,
+ PseudoVFRSQRT7_ALT_V_M1_E16 = 3810,
+ PseudoVFRSQRT7_ALT_V_M1_E16_MASK = 3811,
+ PseudoVFRSQRT7_ALT_V_M2_E16 = 3812,
+ PseudoVFRSQRT7_ALT_V_M2_E16_MASK = 3813,
+ PseudoVFRSQRT7_ALT_V_M4_E16 = 3814,
+ PseudoVFRSQRT7_ALT_V_M4_E16_MASK = 3815,
+ PseudoVFRSQRT7_ALT_V_M8_E16 = 3816,
+ PseudoVFRSQRT7_ALT_V_M8_E16_MASK = 3817,
+ PseudoVFRSQRT7_ALT_V_MF2_E16 = 3818,
+ PseudoVFRSQRT7_ALT_V_MF2_E16_MASK = 3819,
+ PseudoVFRSQRT7_ALT_V_MF4_E16 = 3820,
+ PseudoVFRSQRT7_ALT_V_MF4_E16_MASK = 3821,
+ PseudoVFRSQRT7_V_M1_E16 = 3822,
+ PseudoVFRSQRT7_V_M1_E16_MASK = 3823,
+ PseudoVFRSQRT7_V_M1_E32 = 3824,
+ PseudoVFRSQRT7_V_M1_E32_MASK = 3825,
+ PseudoVFRSQRT7_V_M1_E64 = 3826,
+ PseudoVFRSQRT7_V_M1_E64_MASK = 3827,
+ PseudoVFRSQRT7_V_M2_E16 = 3828,
+ PseudoVFRSQRT7_V_M2_E16_MASK = 3829,
+ PseudoVFRSQRT7_V_M2_E32 = 3830,
+ PseudoVFRSQRT7_V_M2_E32_MASK = 3831,
+ PseudoVFRSQRT7_V_M2_E64 = 3832,
+ PseudoVFRSQRT7_V_M2_E64_MASK = 3833,
+ PseudoVFRSQRT7_V_M4_E16 = 3834,
+ PseudoVFRSQRT7_V_M4_E16_MASK = 3835,
+ PseudoVFRSQRT7_V_M4_E32 = 3836,
+ PseudoVFRSQRT7_V_M4_E32_MASK = 3837,
+ PseudoVFRSQRT7_V_M4_E64 = 3838,
+ PseudoVFRSQRT7_V_M4_E64_MASK = 3839,
+ PseudoVFRSQRT7_V_M8_E16 = 3840,
+ PseudoVFRSQRT7_V_M8_E16_MASK = 3841,
+ PseudoVFRSQRT7_V_M8_E32 = 3842,
+ PseudoVFRSQRT7_V_M8_E32_MASK = 3843,
+ PseudoVFRSQRT7_V_M8_E64 = 3844,
+ PseudoVFRSQRT7_V_M8_E64_MASK = 3845,
+ PseudoVFRSQRT7_V_MF2_E16 = 3846,
+ PseudoVFRSQRT7_V_MF2_E16_MASK = 3847,
+ PseudoVFRSQRT7_V_MF2_E32 = 3848,
+ PseudoVFRSQRT7_V_MF2_E32_MASK = 3849,
+ PseudoVFRSQRT7_V_MF4_E16 = 3850,
+ PseudoVFRSQRT7_V_MF4_E16_MASK = 3851,
+ PseudoVFRSUB_ALT_VFPR16_M1_E16 = 3852,
+ PseudoVFRSUB_ALT_VFPR16_M1_E16_MASK = 3853,
+ PseudoVFRSUB_ALT_VFPR16_M2_E16 = 3854,
+ PseudoVFRSUB_ALT_VFPR16_M2_E16_MASK = 3855,
+ PseudoVFRSUB_ALT_VFPR16_M4_E16 = 3856,
+ PseudoVFRSUB_ALT_VFPR16_M4_E16_MASK = 3857,
+ PseudoVFRSUB_ALT_VFPR16_M8_E16 = 3858,
+ PseudoVFRSUB_ALT_VFPR16_M8_E16_MASK = 3859,
+ PseudoVFRSUB_ALT_VFPR16_MF2_E16 = 3860,
+ PseudoVFRSUB_ALT_VFPR16_MF2_E16_MASK = 3861,
+ PseudoVFRSUB_ALT_VFPR16_MF4_E16 = 3862,
+ PseudoVFRSUB_ALT_VFPR16_MF4_E16_MASK = 3863,
+ PseudoVFRSUB_VFPR16_M1_E16 = 3864,
+ PseudoVFRSUB_VFPR16_M1_E16_MASK = 3865,
+ PseudoVFRSUB_VFPR16_M2_E16 = 3866,
+ PseudoVFRSUB_VFPR16_M2_E16_MASK = 3867,
+ PseudoVFRSUB_VFPR16_M4_E16 = 3868,
+ PseudoVFRSUB_VFPR16_M4_E16_MASK = 3869,
+ PseudoVFRSUB_VFPR16_M8_E16 = 3870,
+ PseudoVFRSUB_VFPR16_M8_E16_MASK = 3871,
+ PseudoVFRSUB_VFPR16_MF2_E16 = 3872,
+ PseudoVFRSUB_VFPR16_MF2_E16_MASK = 3873,
+ PseudoVFRSUB_VFPR16_MF4_E16 = 3874,
+ PseudoVFRSUB_VFPR16_MF4_E16_MASK = 3875,
+ PseudoVFRSUB_VFPR32_M1_E32 = 3876,
+ PseudoVFRSUB_VFPR32_M1_E32_MASK = 3877,
+ PseudoVFRSUB_VFPR32_M2_E32 = 3878,
+ PseudoVFRSUB_VFPR32_M2_E32_MASK = 3879,
+ PseudoVFRSUB_VFPR32_M4_E32 = 3880,
+ PseudoVFRSUB_VFPR32_M4_E32_MASK = 3881,
+ PseudoVFRSUB_VFPR32_M8_E32 = 3882,
+ PseudoVFRSUB_VFPR32_M8_E32_MASK = 3883,
+ PseudoVFRSUB_VFPR32_MF2_E32 = 3884,
+ PseudoVFRSUB_VFPR32_MF2_E32_MASK = 3885,
+ PseudoVFRSUB_VFPR64_M1_E64 = 3886,
+ PseudoVFRSUB_VFPR64_M1_E64_MASK = 3887,
+ PseudoVFRSUB_VFPR64_M2_E64 = 3888,
+ PseudoVFRSUB_VFPR64_M2_E64_MASK = 3889,
+ PseudoVFRSUB_VFPR64_M4_E64 = 3890,
+ PseudoVFRSUB_VFPR64_M4_E64_MASK = 3891,
+ PseudoVFRSUB_VFPR64_M8_E64 = 3892,
+ PseudoVFRSUB_VFPR64_M8_E64_MASK = 3893,
+ PseudoVFSGNJN_ALT_VFPR16_M1_E16 = 3894,
+ PseudoVFSGNJN_ALT_VFPR16_M1_E16_MASK = 3895,
+ PseudoVFSGNJN_ALT_VFPR16_M2_E16 = 3896,
+ PseudoVFSGNJN_ALT_VFPR16_M2_E16_MASK = 3897,
+ PseudoVFSGNJN_ALT_VFPR16_M4_E16 = 3898,
+ PseudoVFSGNJN_ALT_VFPR16_M4_E16_MASK = 3899,
+ PseudoVFSGNJN_ALT_VFPR16_M8_E16 = 3900,
+ PseudoVFSGNJN_ALT_VFPR16_M8_E16_MASK = 3901,
+ PseudoVFSGNJN_ALT_VFPR16_MF2_E16 = 3902,
+ PseudoVFSGNJN_ALT_VFPR16_MF2_E16_MASK = 3903,
+ PseudoVFSGNJN_ALT_VFPR16_MF4_E16 = 3904,
+ PseudoVFSGNJN_ALT_VFPR16_MF4_E16_MASK = 3905,
+ PseudoVFSGNJN_ALT_VV_M1_E16 = 3906,
+ PseudoVFSGNJN_ALT_VV_M1_E16_MASK = 3907,
+ PseudoVFSGNJN_ALT_VV_M2_E16 = 3908,
+ PseudoVFSGNJN_ALT_VV_M2_E16_MASK = 3909,
+ PseudoVFSGNJN_ALT_VV_M4_E16 = 3910,
+ PseudoVFSGNJN_ALT_VV_M4_E16_MASK = 3911,
+ PseudoVFSGNJN_ALT_VV_M8_E16 = 3912,
+ PseudoVFSGNJN_ALT_VV_M8_E16_MASK = 3913,
+ PseudoVFSGNJN_ALT_VV_MF2_E16 = 3914,
+ PseudoVFSGNJN_ALT_VV_MF2_E16_MASK = 3915,
+ PseudoVFSGNJN_ALT_VV_MF4_E16 = 3916,
+ PseudoVFSGNJN_ALT_VV_MF4_E16_MASK = 3917,
+ PseudoVFSGNJN_VFPR16_M1_E16 = 3918,
+ PseudoVFSGNJN_VFPR16_M1_E16_MASK = 3919,
+ PseudoVFSGNJN_VFPR16_M2_E16 = 3920,
+ PseudoVFSGNJN_VFPR16_M2_E16_MASK = 3921,
+ PseudoVFSGNJN_VFPR16_M4_E16 = 3922,
+ PseudoVFSGNJN_VFPR16_M4_E16_MASK = 3923,
+ PseudoVFSGNJN_VFPR16_M8_E16 = 3924,
+ PseudoVFSGNJN_VFPR16_M8_E16_MASK = 3925,
+ PseudoVFSGNJN_VFPR16_MF2_E16 = 3926,
+ PseudoVFSGNJN_VFPR16_MF2_E16_MASK = 3927,
+ PseudoVFSGNJN_VFPR16_MF4_E16 = 3928,
+ PseudoVFSGNJN_VFPR16_MF4_E16_MASK = 3929,
+ PseudoVFSGNJN_VFPR32_M1_E32 = 3930,
+ PseudoVFSGNJN_VFPR32_M1_E32_MASK = 3931,
+ PseudoVFSGNJN_VFPR32_M2_E32 = 3932,
+ PseudoVFSGNJN_VFPR32_M2_E32_MASK = 3933,
+ PseudoVFSGNJN_VFPR32_M4_E32 = 3934,
+ PseudoVFSGNJN_VFPR32_M4_E32_MASK = 3935,
+ PseudoVFSGNJN_VFPR32_M8_E32 = 3936,
+ PseudoVFSGNJN_VFPR32_M8_E32_MASK = 3937,
+ PseudoVFSGNJN_VFPR32_MF2_E32 = 3938,
+ PseudoVFSGNJN_VFPR32_MF2_E32_MASK = 3939,
+ PseudoVFSGNJN_VFPR64_M1_E64 = 3940,
+ PseudoVFSGNJN_VFPR64_M1_E64_MASK = 3941,
+ PseudoVFSGNJN_VFPR64_M2_E64 = 3942,
+ PseudoVFSGNJN_VFPR64_M2_E64_MASK = 3943,
+ PseudoVFSGNJN_VFPR64_M4_E64 = 3944,
+ PseudoVFSGNJN_VFPR64_M4_E64_MASK = 3945,
+ PseudoVFSGNJN_VFPR64_M8_E64 = 3946,
+ PseudoVFSGNJN_VFPR64_M8_E64_MASK = 3947,
+ PseudoVFSGNJN_VV_M1_E16 = 3948,
+ PseudoVFSGNJN_VV_M1_E16_MASK = 3949,
+ PseudoVFSGNJN_VV_M1_E32 = 3950,
+ PseudoVFSGNJN_VV_M1_E32_MASK = 3951,
+ PseudoVFSGNJN_VV_M1_E64 = 3952,
+ PseudoVFSGNJN_VV_M1_E64_MASK = 3953,
+ PseudoVFSGNJN_VV_M2_E16 = 3954,
+ PseudoVFSGNJN_VV_M2_E16_MASK = 3955,
+ PseudoVFSGNJN_VV_M2_E32 = 3956,
+ PseudoVFSGNJN_VV_M2_E32_MASK = 3957,
+ PseudoVFSGNJN_VV_M2_E64 = 3958,
+ PseudoVFSGNJN_VV_M2_E64_MASK = 3959,
+ PseudoVFSGNJN_VV_M4_E16 = 3960,
+ PseudoVFSGNJN_VV_M4_E16_MASK = 3961,
+ PseudoVFSGNJN_VV_M4_E32 = 3962,
+ PseudoVFSGNJN_VV_M4_E32_MASK = 3963,
+ PseudoVFSGNJN_VV_M4_E64 = 3964,
+ PseudoVFSGNJN_VV_M4_E64_MASK = 3965,
+ PseudoVFSGNJN_VV_M8_E16 = 3966,
+ PseudoVFSGNJN_VV_M8_E16_MASK = 3967,
+ PseudoVFSGNJN_VV_M8_E32 = 3968,
+ PseudoVFSGNJN_VV_M8_E32_MASK = 3969,
+ PseudoVFSGNJN_VV_M8_E64 = 3970,
+ PseudoVFSGNJN_VV_M8_E64_MASK = 3971,
+ PseudoVFSGNJN_VV_MF2_E16 = 3972,
+ PseudoVFSGNJN_VV_MF2_E16_MASK = 3973,
+ PseudoVFSGNJN_VV_MF2_E32 = 3974,
+ PseudoVFSGNJN_VV_MF2_E32_MASK = 3975,
+ PseudoVFSGNJN_VV_MF4_E16 = 3976,
+ PseudoVFSGNJN_VV_MF4_E16_MASK = 3977,
+ PseudoVFSGNJX_ALT_VFPR16_M1_E16 = 3978,
+ PseudoVFSGNJX_ALT_VFPR16_M1_E16_MASK = 3979,
+ PseudoVFSGNJX_ALT_VFPR16_M2_E16 = 3980,
+ PseudoVFSGNJX_ALT_VFPR16_M2_E16_MASK = 3981,
+ PseudoVFSGNJX_ALT_VFPR16_M4_E16 = 3982,
+ PseudoVFSGNJX_ALT_VFPR16_M4_E16_MASK = 3983,
+ PseudoVFSGNJX_ALT_VFPR16_M8_E16 = 3984,
+ PseudoVFSGNJX_ALT_VFPR16_M8_E16_MASK = 3985,
+ PseudoVFSGNJX_ALT_VFPR16_MF2_E16 = 3986,
+ PseudoVFSGNJX_ALT_VFPR16_MF2_E16_MASK = 3987,
+ PseudoVFSGNJX_ALT_VFPR16_MF4_E16 = 3988,
+ PseudoVFSGNJX_ALT_VFPR16_MF4_E16_MASK = 3989,
+ PseudoVFSGNJX_ALT_VV_M1_E16 = 3990,
+ PseudoVFSGNJX_ALT_VV_M1_E16_MASK = 3991,
+ PseudoVFSGNJX_ALT_VV_M2_E16 = 3992,
+ PseudoVFSGNJX_ALT_VV_M2_E16_MASK = 3993,
+ PseudoVFSGNJX_ALT_VV_M4_E16 = 3994,
+ PseudoVFSGNJX_ALT_VV_M4_E16_MASK = 3995,
+ PseudoVFSGNJX_ALT_VV_M8_E16 = 3996,
+ PseudoVFSGNJX_ALT_VV_M8_E16_MASK = 3997,
+ PseudoVFSGNJX_ALT_VV_MF2_E16 = 3998,
+ PseudoVFSGNJX_ALT_VV_MF2_E16_MASK = 3999,
+ PseudoVFSGNJX_ALT_VV_MF4_E16 = 4000,
+ PseudoVFSGNJX_ALT_VV_MF4_E16_MASK = 4001,
+ PseudoVFSGNJX_VFPR16_M1_E16 = 4002,
+ PseudoVFSGNJX_VFPR16_M1_E16_MASK = 4003,
+ PseudoVFSGNJX_VFPR16_M2_E16 = 4004,
+ PseudoVFSGNJX_VFPR16_M2_E16_MASK = 4005,
+ PseudoVFSGNJX_VFPR16_M4_E16 = 4006,
+ PseudoVFSGNJX_VFPR16_M4_E16_MASK = 4007,
+ PseudoVFSGNJX_VFPR16_M8_E16 = 4008,
+ PseudoVFSGNJX_VFPR16_M8_E16_MASK = 4009,
+ PseudoVFSGNJX_VFPR16_MF2_E16 = 4010,
+ PseudoVFSGNJX_VFPR16_MF2_E16_MASK = 4011,
+ PseudoVFSGNJX_VFPR16_MF4_E16 = 4012,
+ PseudoVFSGNJX_VFPR16_MF4_E16_MASK = 4013,
+ PseudoVFSGNJX_VFPR32_M1_E32 = 4014,
+ PseudoVFSGNJX_VFPR32_M1_E32_MASK = 4015,
+ PseudoVFSGNJX_VFPR32_M2_E32 = 4016,
+ PseudoVFSGNJX_VFPR32_M2_E32_MASK = 4017,
+ PseudoVFSGNJX_VFPR32_M4_E32 = 4018,
+ PseudoVFSGNJX_VFPR32_M4_E32_MASK = 4019,
+ PseudoVFSGNJX_VFPR32_M8_E32 = 4020,
+ PseudoVFSGNJX_VFPR32_M8_E32_MASK = 4021,
+ PseudoVFSGNJX_VFPR32_MF2_E32 = 4022,
+ PseudoVFSGNJX_VFPR32_MF2_E32_MASK = 4023,
+ PseudoVFSGNJX_VFPR64_M1_E64 = 4024,
+ PseudoVFSGNJX_VFPR64_M1_E64_MASK = 4025,
+ PseudoVFSGNJX_VFPR64_M2_E64 = 4026,
+ PseudoVFSGNJX_VFPR64_M2_E64_MASK = 4027,
+ PseudoVFSGNJX_VFPR64_M4_E64 = 4028,
+ PseudoVFSGNJX_VFPR64_M4_E64_MASK = 4029,
+ PseudoVFSGNJX_VFPR64_M8_E64 = 4030,
+ PseudoVFSGNJX_VFPR64_M8_E64_MASK = 4031,
+ PseudoVFSGNJX_VV_M1_E16 = 4032,
+ PseudoVFSGNJX_VV_M1_E16_MASK = 4033,
+ PseudoVFSGNJX_VV_M1_E32 = 4034,
+ PseudoVFSGNJX_VV_M1_E32_MASK = 4035,
+ PseudoVFSGNJX_VV_M1_E64 = 4036,
+ PseudoVFSGNJX_VV_M1_E64_MASK = 4037,
+ PseudoVFSGNJX_VV_M2_E16 = 4038,
+ PseudoVFSGNJX_VV_M2_E16_MASK = 4039,
+ PseudoVFSGNJX_VV_M2_E32 = 4040,
+ PseudoVFSGNJX_VV_M2_E32_MASK = 4041,
+ PseudoVFSGNJX_VV_M2_E64 = 4042,
+ PseudoVFSGNJX_VV_M2_E64_MASK = 4043,
+ PseudoVFSGNJX_VV_M4_E16 = 4044,
+ PseudoVFSGNJX_VV_M4_E16_MASK = 4045,
+ PseudoVFSGNJX_VV_M4_E32 = 4046,
+ PseudoVFSGNJX_VV_M4_E32_MASK = 4047,
+ PseudoVFSGNJX_VV_M4_E64 = 4048,
+ PseudoVFSGNJX_VV_M4_E64_MASK = 4049,
+ PseudoVFSGNJX_VV_M8_E16 = 4050,
+ PseudoVFSGNJX_VV_M8_E16_MASK = 4051,
+ PseudoVFSGNJX_VV_M8_E32 = 4052,
+ PseudoVFSGNJX_VV_M8_E32_MASK = 4053,
+ PseudoVFSGNJX_VV_M8_E64 = 4054,
+ PseudoVFSGNJX_VV_M8_E64_MASK = 4055,
+ PseudoVFSGNJX_VV_MF2_E16 = 4056,
+ PseudoVFSGNJX_VV_MF2_E16_MASK = 4057,
+ PseudoVFSGNJX_VV_MF2_E32 = 4058,
+ PseudoVFSGNJX_VV_MF2_E32_MASK = 4059,
+ PseudoVFSGNJX_VV_MF4_E16 = 4060,
+ PseudoVFSGNJX_VV_MF4_E16_MASK = 4061,
+ PseudoVFSGNJ_ALT_VFPR16_M1_E16 = 4062,
+ PseudoVFSGNJ_ALT_VFPR16_M1_E16_MASK = 4063,
+ PseudoVFSGNJ_ALT_VFPR16_M2_E16 = 4064,
+ PseudoVFSGNJ_ALT_VFPR16_M2_E16_MASK = 4065,
+ PseudoVFSGNJ_ALT_VFPR16_M4_E16 = 4066,
+ PseudoVFSGNJ_ALT_VFPR16_M4_E16_MASK = 4067,
+ PseudoVFSGNJ_ALT_VFPR16_M8_E16 = 4068,
+ PseudoVFSGNJ_ALT_VFPR16_M8_E16_MASK = 4069,
+ PseudoVFSGNJ_ALT_VFPR16_MF2_E16 = 4070,
+ PseudoVFSGNJ_ALT_VFPR16_MF2_E16_MASK = 4071,
+ PseudoVFSGNJ_ALT_VFPR16_MF4_E16 = 4072,
+ PseudoVFSGNJ_ALT_VFPR16_MF4_E16_MASK = 4073,
+ PseudoVFSGNJ_ALT_VV_M1_E16 = 4074,
+ PseudoVFSGNJ_ALT_VV_M1_E16_MASK = 4075,
+ PseudoVFSGNJ_ALT_VV_M2_E16 = 4076,
+ PseudoVFSGNJ_ALT_VV_M2_E16_MASK = 4077,
+ PseudoVFSGNJ_ALT_VV_M4_E16 = 4078,
+ PseudoVFSGNJ_ALT_VV_M4_E16_MASK = 4079,
+ PseudoVFSGNJ_ALT_VV_M8_E16 = 4080,
+ PseudoVFSGNJ_ALT_VV_M8_E16_MASK = 4081,
+ PseudoVFSGNJ_ALT_VV_MF2_E16 = 4082,
+ PseudoVFSGNJ_ALT_VV_MF2_E16_MASK = 4083,
+ PseudoVFSGNJ_ALT_VV_MF4_E16 = 4084,
+ PseudoVFSGNJ_ALT_VV_MF4_E16_MASK = 4085,
+ PseudoVFSGNJ_VFPR16_M1_E16 = 4086,
+ PseudoVFSGNJ_VFPR16_M1_E16_MASK = 4087,
+ PseudoVFSGNJ_VFPR16_M2_E16 = 4088,
+ PseudoVFSGNJ_VFPR16_M2_E16_MASK = 4089,
+ PseudoVFSGNJ_VFPR16_M4_E16 = 4090,
+ PseudoVFSGNJ_VFPR16_M4_E16_MASK = 4091,
+ PseudoVFSGNJ_VFPR16_M8_E16 = 4092,
+ PseudoVFSGNJ_VFPR16_M8_E16_MASK = 4093,
+ PseudoVFSGNJ_VFPR16_MF2_E16 = 4094,
+ PseudoVFSGNJ_VFPR16_MF2_E16_MASK = 4095,
+ PseudoVFSGNJ_VFPR16_MF4_E16 = 4096,
+ PseudoVFSGNJ_VFPR16_MF4_E16_MASK = 4097,
+ PseudoVFSGNJ_VFPR32_M1_E32 = 4098,
+ PseudoVFSGNJ_VFPR32_M1_E32_MASK = 4099,
+ PseudoVFSGNJ_VFPR32_M2_E32 = 4100,
+ PseudoVFSGNJ_VFPR32_M2_E32_MASK = 4101,
+ PseudoVFSGNJ_VFPR32_M4_E32 = 4102,
+ PseudoVFSGNJ_VFPR32_M4_E32_MASK = 4103,
+ PseudoVFSGNJ_VFPR32_M8_E32 = 4104,
+ PseudoVFSGNJ_VFPR32_M8_E32_MASK = 4105,
+ PseudoVFSGNJ_VFPR32_MF2_E32 = 4106,
+ PseudoVFSGNJ_VFPR32_MF2_E32_MASK = 4107,
+ PseudoVFSGNJ_VFPR64_M1_E64 = 4108,
+ PseudoVFSGNJ_VFPR64_M1_E64_MASK = 4109,
+ PseudoVFSGNJ_VFPR64_M2_E64 = 4110,
+ PseudoVFSGNJ_VFPR64_M2_E64_MASK = 4111,
+ PseudoVFSGNJ_VFPR64_M4_E64 = 4112,
+ PseudoVFSGNJ_VFPR64_M4_E64_MASK = 4113,
+ PseudoVFSGNJ_VFPR64_M8_E64 = 4114,
+ PseudoVFSGNJ_VFPR64_M8_E64_MASK = 4115,
+ PseudoVFSGNJ_VV_M1_E16 = 4116,
+ PseudoVFSGNJ_VV_M1_E16_MASK = 4117,
+ PseudoVFSGNJ_VV_M1_E32 = 4118,
+ PseudoVFSGNJ_VV_M1_E32_MASK = 4119,
+ PseudoVFSGNJ_VV_M1_E64 = 4120,
+ PseudoVFSGNJ_VV_M1_E64_MASK = 4121,
+ PseudoVFSGNJ_VV_M2_E16 = 4122,
+ PseudoVFSGNJ_VV_M2_E16_MASK = 4123,
+ PseudoVFSGNJ_VV_M2_E32 = 4124,
+ PseudoVFSGNJ_VV_M2_E32_MASK = 4125,
+ PseudoVFSGNJ_VV_M2_E64 = 4126,
+ PseudoVFSGNJ_VV_M2_E64_MASK = 4127,
+ PseudoVFSGNJ_VV_M4_E16 = 4128,
+ PseudoVFSGNJ_VV_M4_E16_MASK = 4129,
+ PseudoVFSGNJ_VV_M4_E32 = 4130,
+ PseudoVFSGNJ_VV_M4_E32_MASK = 4131,
+ PseudoVFSGNJ_VV_M4_E64 = 4132,
+ PseudoVFSGNJ_VV_M4_E64_MASK = 4133,
+ PseudoVFSGNJ_VV_M8_E16 = 4134,
+ PseudoVFSGNJ_VV_M8_E16_MASK = 4135,
+ PseudoVFSGNJ_VV_M8_E32 = 4136,
+ PseudoVFSGNJ_VV_M8_E32_MASK = 4137,
+ PseudoVFSGNJ_VV_M8_E64 = 4138,
+ PseudoVFSGNJ_VV_M8_E64_MASK = 4139,
+ PseudoVFSGNJ_VV_MF2_E16 = 4140,
+ PseudoVFSGNJ_VV_MF2_E16_MASK = 4141,
+ PseudoVFSGNJ_VV_MF2_E32 = 4142,
+ PseudoVFSGNJ_VV_MF2_E32_MASK = 4143,
+ PseudoVFSGNJ_VV_MF4_E16 = 4144,
+ PseudoVFSGNJ_VV_MF4_E16_MASK = 4145,
+ PseudoVFSLIDE1DOWN_ALT_VFPR16_M1 = 4146,
+ PseudoVFSLIDE1DOWN_ALT_VFPR16_M1_MASK = 4147,
+ PseudoVFSLIDE1DOWN_ALT_VFPR16_M2 = 4148,
+ PseudoVFSLIDE1DOWN_ALT_VFPR16_M2_MASK = 4149,
+ PseudoVFSLIDE1DOWN_ALT_VFPR16_M4 = 4150,
+ PseudoVFSLIDE1DOWN_ALT_VFPR16_M4_MASK = 4151,
+ PseudoVFSLIDE1DOWN_ALT_VFPR16_M8 = 4152,
+ PseudoVFSLIDE1DOWN_ALT_VFPR16_M8_MASK = 4153,
+ PseudoVFSLIDE1DOWN_ALT_VFPR16_MF2 = 4154,
+ PseudoVFSLIDE1DOWN_ALT_VFPR16_MF2_MASK = 4155,
+ PseudoVFSLIDE1DOWN_ALT_VFPR16_MF4 = 4156,
+ PseudoVFSLIDE1DOWN_ALT_VFPR16_MF4_MASK = 4157,
+ PseudoVFSLIDE1DOWN_ALT_VFPR32_M1 = 4158,
+ PseudoVFSLIDE1DOWN_ALT_VFPR32_M1_MASK = 4159,
+ PseudoVFSLIDE1DOWN_ALT_VFPR32_M2 = 4160,
+ PseudoVFSLIDE1DOWN_ALT_VFPR32_M2_MASK = 4161,
+ PseudoVFSLIDE1DOWN_ALT_VFPR32_M4 = 4162,
+ PseudoVFSLIDE1DOWN_ALT_VFPR32_M4_MASK = 4163,
+ PseudoVFSLIDE1DOWN_ALT_VFPR32_M8 = 4164,
+ PseudoVFSLIDE1DOWN_ALT_VFPR32_M8_MASK = 4165,
+ PseudoVFSLIDE1DOWN_ALT_VFPR32_MF2 = 4166,
+ PseudoVFSLIDE1DOWN_ALT_VFPR32_MF2_MASK = 4167,
+ PseudoVFSLIDE1DOWN_ALT_VFPR64_M1 = 4168,
+ PseudoVFSLIDE1DOWN_ALT_VFPR64_M1_MASK = 4169,
+ PseudoVFSLIDE1DOWN_ALT_VFPR64_M2 = 4170,
+ PseudoVFSLIDE1DOWN_ALT_VFPR64_M2_MASK = 4171,
+ PseudoVFSLIDE1DOWN_ALT_VFPR64_M4 = 4172,
+ PseudoVFSLIDE1DOWN_ALT_VFPR64_M4_MASK = 4173,
+ PseudoVFSLIDE1DOWN_ALT_VFPR64_M8 = 4174,
+ PseudoVFSLIDE1DOWN_ALT_VFPR64_M8_MASK = 4175,
+ PseudoVFSLIDE1DOWN_VFPR16_M1 = 4176,
+ PseudoVFSLIDE1DOWN_VFPR16_M1_MASK = 4177,
+ PseudoVFSLIDE1DOWN_VFPR16_M2 = 4178,
+ PseudoVFSLIDE1DOWN_VFPR16_M2_MASK = 4179,
+ PseudoVFSLIDE1DOWN_VFPR16_M4 = 4180,
+ PseudoVFSLIDE1DOWN_VFPR16_M4_MASK = 4181,
+ PseudoVFSLIDE1DOWN_VFPR16_M8 = 4182,
+ PseudoVFSLIDE1DOWN_VFPR16_M8_MASK = 4183,
+ PseudoVFSLIDE1DOWN_VFPR16_MF2 = 4184,
+ PseudoVFSLIDE1DOWN_VFPR16_MF2_MASK = 4185,
+ PseudoVFSLIDE1DOWN_VFPR16_MF4 = 4186,
+ PseudoVFSLIDE1DOWN_VFPR16_MF4_MASK = 4187,
+ PseudoVFSLIDE1DOWN_VFPR32_M1 = 4188,
+ PseudoVFSLIDE1DOWN_VFPR32_M1_MASK = 4189,
+ PseudoVFSLIDE1DOWN_VFPR32_M2 = 4190,
+ PseudoVFSLIDE1DOWN_VFPR32_M2_MASK = 4191,
+ PseudoVFSLIDE1DOWN_VFPR32_M4 = 4192,
+ PseudoVFSLIDE1DOWN_VFPR32_M4_MASK = 4193,
+ PseudoVFSLIDE1DOWN_VFPR32_M8 = 4194,
+ PseudoVFSLIDE1DOWN_VFPR32_M8_MASK = 4195,
+ PseudoVFSLIDE1DOWN_VFPR32_MF2 = 4196,
+ PseudoVFSLIDE1DOWN_VFPR32_MF2_MASK = 4197,
+ PseudoVFSLIDE1DOWN_VFPR64_M1 = 4198,
+ PseudoVFSLIDE1DOWN_VFPR64_M1_MASK = 4199,
+ PseudoVFSLIDE1DOWN_VFPR64_M2 = 4200,
+ PseudoVFSLIDE1DOWN_VFPR64_M2_MASK = 4201,
+ PseudoVFSLIDE1DOWN_VFPR64_M4 = 4202,
+ PseudoVFSLIDE1DOWN_VFPR64_M4_MASK = 4203,
+ PseudoVFSLIDE1DOWN_VFPR64_M8 = 4204,
+ PseudoVFSLIDE1DOWN_VFPR64_M8_MASK = 4205,
+ PseudoVFSLIDE1UP_ALT_VFPR16_M1 = 4206,
+ PseudoVFSLIDE1UP_ALT_VFPR16_M1_MASK = 4207,
+ PseudoVFSLIDE1UP_ALT_VFPR16_M2 = 4208,
+ PseudoVFSLIDE1UP_ALT_VFPR16_M2_MASK = 4209,
+ PseudoVFSLIDE1UP_ALT_VFPR16_M4 = 4210,
+ PseudoVFSLIDE1UP_ALT_VFPR16_M4_MASK = 4211,
+ PseudoVFSLIDE1UP_ALT_VFPR16_M8 = 4212,
+ PseudoVFSLIDE1UP_ALT_VFPR16_M8_MASK = 4213,
+ PseudoVFSLIDE1UP_ALT_VFPR16_MF2 = 4214,
+ PseudoVFSLIDE1UP_ALT_VFPR16_MF2_MASK = 4215,
+ PseudoVFSLIDE1UP_ALT_VFPR16_MF4 = 4216,
+ PseudoVFSLIDE1UP_ALT_VFPR16_MF4_MASK = 4217,
+ PseudoVFSLIDE1UP_ALT_VFPR32_M1 = 4218,
+ PseudoVFSLIDE1UP_ALT_VFPR32_M1_MASK = 4219,
+ PseudoVFSLIDE1UP_ALT_VFPR32_M2 = 4220,
+ PseudoVFSLIDE1UP_ALT_VFPR32_M2_MASK = 4221,
+ PseudoVFSLIDE1UP_ALT_VFPR32_M4 = 4222,
+ PseudoVFSLIDE1UP_ALT_VFPR32_M4_MASK = 4223,
+ PseudoVFSLIDE1UP_ALT_VFPR32_M8 = 4224,
+ PseudoVFSLIDE1UP_ALT_VFPR32_M8_MASK = 4225,
+ PseudoVFSLIDE1UP_ALT_VFPR32_MF2 = 4226,
+ PseudoVFSLIDE1UP_ALT_VFPR32_MF2_MASK = 4227,
+ PseudoVFSLIDE1UP_ALT_VFPR64_M1 = 4228,
+ PseudoVFSLIDE1UP_ALT_VFPR64_M1_MASK = 4229,
+ PseudoVFSLIDE1UP_ALT_VFPR64_M2 = 4230,
+ PseudoVFSLIDE1UP_ALT_VFPR64_M2_MASK = 4231,
+ PseudoVFSLIDE1UP_ALT_VFPR64_M4 = 4232,
+ PseudoVFSLIDE1UP_ALT_VFPR64_M4_MASK = 4233,
+ PseudoVFSLIDE1UP_ALT_VFPR64_M8 = 4234,
+ PseudoVFSLIDE1UP_ALT_VFPR64_M8_MASK = 4235,
+ PseudoVFSLIDE1UP_VFPR16_M1 = 4236,
+ PseudoVFSLIDE1UP_VFPR16_M1_MASK = 4237,
+ PseudoVFSLIDE1UP_VFPR16_M2 = 4238,
+ PseudoVFSLIDE1UP_VFPR16_M2_MASK = 4239,
+ PseudoVFSLIDE1UP_VFPR16_M4 = 4240,
+ PseudoVFSLIDE1UP_VFPR16_M4_MASK = 4241,
+ PseudoVFSLIDE1UP_VFPR16_M8 = 4242,
+ PseudoVFSLIDE1UP_VFPR16_M8_MASK = 4243,
+ PseudoVFSLIDE1UP_VFPR16_MF2 = 4244,
+ PseudoVFSLIDE1UP_VFPR16_MF2_MASK = 4245,
+ PseudoVFSLIDE1UP_VFPR16_MF4 = 4246,
+ PseudoVFSLIDE1UP_VFPR16_MF4_MASK = 4247,
+ PseudoVFSLIDE1UP_VFPR32_M1 = 4248,
+ PseudoVFSLIDE1UP_VFPR32_M1_MASK = 4249,
+ PseudoVFSLIDE1UP_VFPR32_M2 = 4250,
+ PseudoVFSLIDE1UP_VFPR32_M2_MASK = 4251,
+ PseudoVFSLIDE1UP_VFPR32_M4 = 4252,
+ PseudoVFSLIDE1UP_VFPR32_M4_MASK = 4253,
+ PseudoVFSLIDE1UP_VFPR32_M8 = 4254,
+ PseudoVFSLIDE1UP_VFPR32_M8_MASK = 4255,
+ PseudoVFSLIDE1UP_VFPR32_MF2 = 4256,
+ PseudoVFSLIDE1UP_VFPR32_MF2_MASK = 4257,
+ PseudoVFSLIDE1UP_VFPR64_M1 = 4258,
+ PseudoVFSLIDE1UP_VFPR64_M1_MASK = 4259,
+ PseudoVFSLIDE1UP_VFPR64_M2 = 4260,
+ PseudoVFSLIDE1UP_VFPR64_M2_MASK = 4261,
+ PseudoVFSLIDE1UP_VFPR64_M4 = 4262,
+ PseudoVFSLIDE1UP_VFPR64_M4_MASK = 4263,
+ PseudoVFSLIDE1UP_VFPR64_M8 = 4264,
+ PseudoVFSLIDE1UP_VFPR64_M8_MASK = 4265,
+ PseudoVFSQRT_V_M1_E16 = 4266,
+ PseudoVFSQRT_V_M1_E16_MASK = 4267,
+ PseudoVFSQRT_V_M1_E32 = 4268,
+ PseudoVFSQRT_V_M1_E32_MASK = 4269,
+ PseudoVFSQRT_V_M1_E64 = 4270,
+ PseudoVFSQRT_V_M1_E64_MASK = 4271,
+ PseudoVFSQRT_V_M2_E16 = 4272,
+ PseudoVFSQRT_V_M2_E16_MASK = 4273,
+ PseudoVFSQRT_V_M2_E32 = 4274,
+ PseudoVFSQRT_V_M2_E32_MASK = 4275,
+ PseudoVFSQRT_V_M2_E64 = 4276,
+ PseudoVFSQRT_V_M2_E64_MASK = 4277,
+ PseudoVFSQRT_V_M4_E16 = 4278,
+ PseudoVFSQRT_V_M4_E16_MASK = 4279,
+ PseudoVFSQRT_V_M4_E32 = 4280,
+ PseudoVFSQRT_V_M4_E32_MASK = 4281,
+ PseudoVFSQRT_V_M4_E64 = 4282,
+ PseudoVFSQRT_V_M4_E64_MASK = 4283,
+ PseudoVFSQRT_V_M8_E16 = 4284,
+ PseudoVFSQRT_V_M8_E16_MASK = 4285,
+ PseudoVFSQRT_V_M8_E32 = 4286,
+ PseudoVFSQRT_V_M8_E32_MASK = 4287,
+ PseudoVFSQRT_V_M8_E64 = 4288,
+ PseudoVFSQRT_V_M8_E64_MASK = 4289,
+ PseudoVFSQRT_V_MF2_E16 = 4290,
+ PseudoVFSQRT_V_MF2_E16_MASK = 4291,
+ PseudoVFSQRT_V_MF2_E32 = 4292,
+ PseudoVFSQRT_V_MF2_E32_MASK = 4293,
+ PseudoVFSQRT_V_MF4_E16 = 4294,
+ PseudoVFSQRT_V_MF4_E16_MASK = 4295,
+ PseudoVFSUB_ALT_VFPR16_M1_E16 = 4296,
+ PseudoVFSUB_ALT_VFPR16_M1_E16_MASK = 4297,
+ PseudoVFSUB_ALT_VFPR16_M2_E16 = 4298,
+ PseudoVFSUB_ALT_VFPR16_M2_E16_MASK = 4299,
+ PseudoVFSUB_ALT_VFPR16_M4_E16 = 4300,
+ PseudoVFSUB_ALT_VFPR16_M4_E16_MASK = 4301,
+ PseudoVFSUB_ALT_VFPR16_M8_E16 = 4302,
+ PseudoVFSUB_ALT_VFPR16_M8_E16_MASK = 4303,
+ PseudoVFSUB_ALT_VFPR16_MF2_E16 = 4304,
+ PseudoVFSUB_ALT_VFPR16_MF2_E16_MASK = 4305,
+ PseudoVFSUB_ALT_VFPR16_MF4_E16 = 4306,
+ PseudoVFSUB_ALT_VFPR16_MF4_E16_MASK = 4307,
+ PseudoVFSUB_ALT_VV_M1_E16 = 4308,
+ PseudoVFSUB_ALT_VV_M1_E16_MASK = 4309,
+ PseudoVFSUB_ALT_VV_M2_E16 = 4310,
+ PseudoVFSUB_ALT_VV_M2_E16_MASK = 4311,
+ PseudoVFSUB_ALT_VV_M4_E16 = 4312,
+ PseudoVFSUB_ALT_VV_M4_E16_MASK = 4313,
+ PseudoVFSUB_ALT_VV_M8_E16 = 4314,
+ PseudoVFSUB_ALT_VV_M8_E16_MASK = 4315,
+ PseudoVFSUB_ALT_VV_MF2_E16 = 4316,
+ PseudoVFSUB_ALT_VV_MF2_E16_MASK = 4317,
+ PseudoVFSUB_ALT_VV_MF4_E16 = 4318,
+ PseudoVFSUB_ALT_VV_MF4_E16_MASK = 4319,
+ PseudoVFSUB_VFPR16_M1_E16 = 4320,
+ PseudoVFSUB_VFPR16_M1_E16_MASK = 4321,
+ PseudoVFSUB_VFPR16_M2_E16 = 4322,
+ PseudoVFSUB_VFPR16_M2_E16_MASK = 4323,
+ PseudoVFSUB_VFPR16_M4_E16 = 4324,
+ PseudoVFSUB_VFPR16_M4_E16_MASK = 4325,
+ PseudoVFSUB_VFPR16_M8_E16 = 4326,
+ PseudoVFSUB_VFPR16_M8_E16_MASK = 4327,
+ PseudoVFSUB_VFPR16_MF2_E16 = 4328,
+ PseudoVFSUB_VFPR16_MF2_E16_MASK = 4329,
+ PseudoVFSUB_VFPR16_MF4_E16 = 4330,
+ PseudoVFSUB_VFPR16_MF4_E16_MASK = 4331,
+ PseudoVFSUB_VFPR32_M1_E32 = 4332,
+ PseudoVFSUB_VFPR32_M1_E32_MASK = 4333,
+ PseudoVFSUB_VFPR32_M2_E32 = 4334,
+ PseudoVFSUB_VFPR32_M2_E32_MASK = 4335,
+ PseudoVFSUB_VFPR32_M4_E32 = 4336,
+ PseudoVFSUB_VFPR32_M4_E32_MASK = 4337,
+ PseudoVFSUB_VFPR32_M8_E32 = 4338,
+ PseudoVFSUB_VFPR32_M8_E32_MASK = 4339,
+ PseudoVFSUB_VFPR32_MF2_E32 = 4340,
+ PseudoVFSUB_VFPR32_MF2_E32_MASK = 4341,
+ PseudoVFSUB_VFPR64_M1_E64 = 4342,
+ PseudoVFSUB_VFPR64_M1_E64_MASK = 4343,
+ PseudoVFSUB_VFPR64_M2_E64 = 4344,
+ PseudoVFSUB_VFPR64_M2_E64_MASK = 4345,
+ PseudoVFSUB_VFPR64_M4_E64 = 4346,
+ PseudoVFSUB_VFPR64_M4_E64_MASK = 4347,
+ PseudoVFSUB_VFPR64_M8_E64 = 4348,
+ PseudoVFSUB_VFPR64_M8_E64_MASK = 4349,
+ PseudoVFSUB_VV_M1_E16 = 4350,
+ PseudoVFSUB_VV_M1_E16_MASK = 4351,
+ PseudoVFSUB_VV_M1_E32 = 4352,
+ PseudoVFSUB_VV_M1_E32_MASK = 4353,
+ PseudoVFSUB_VV_M1_E64 = 4354,
+ PseudoVFSUB_VV_M1_E64_MASK = 4355,
+ PseudoVFSUB_VV_M2_E16 = 4356,
+ PseudoVFSUB_VV_M2_E16_MASK = 4357,
+ PseudoVFSUB_VV_M2_E32 = 4358,
+ PseudoVFSUB_VV_M2_E32_MASK = 4359,
+ PseudoVFSUB_VV_M2_E64 = 4360,
+ PseudoVFSUB_VV_M2_E64_MASK = 4361,
+ PseudoVFSUB_VV_M4_E16 = 4362,
+ PseudoVFSUB_VV_M4_E16_MASK = 4363,
+ PseudoVFSUB_VV_M4_E32 = 4364,
+ PseudoVFSUB_VV_M4_E32_MASK = 4365,
+ PseudoVFSUB_VV_M4_E64 = 4366,
+ PseudoVFSUB_VV_M4_E64_MASK = 4367,
+ PseudoVFSUB_VV_M8_E16 = 4368,
+ PseudoVFSUB_VV_M8_E16_MASK = 4369,
+ PseudoVFSUB_VV_M8_E32 = 4370,
+ PseudoVFSUB_VV_M8_E32_MASK = 4371,
+ PseudoVFSUB_VV_M8_E64 = 4372,
+ PseudoVFSUB_VV_M8_E64_MASK = 4373,
+ PseudoVFSUB_VV_MF2_E16 = 4374,
+ PseudoVFSUB_VV_MF2_E16_MASK = 4375,
+ PseudoVFSUB_VV_MF2_E32 = 4376,
+ PseudoVFSUB_VV_MF2_E32_MASK = 4377,
+ PseudoVFSUB_VV_MF4_E16 = 4378,
+ PseudoVFSUB_VV_MF4_E16_MASK = 4379,
+ PseudoVFWADD_ALT_VFPR16_M1_E16 = 4380,
+ PseudoVFWADD_ALT_VFPR16_M1_E16_MASK = 4381,
+ PseudoVFWADD_ALT_VFPR16_M2_E16 = 4382,
+ PseudoVFWADD_ALT_VFPR16_M2_E16_MASK = 4383,
+ PseudoVFWADD_ALT_VFPR16_M4_E16 = 4384,
+ PseudoVFWADD_ALT_VFPR16_M4_E16_MASK = 4385,
+ PseudoVFWADD_ALT_VFPR16_MF2_E16 = 4386,
+ PseudoVFWADD_ALT_VFPR16_MF2_E16_MASK = 4387,
+ PseudoVFWADD_ALT_VFPR16_MF4_E16 = 4388,
+ PseudoVFWADD_ALT_VFPR16_MF4_E16_MASK = 4389,
+ PseudoVFWADD_ALT_VV_M1_E16 = 4390,
+ PseudoVFWADD_ALT_VV_M1_E16_MASK = 4391,
+ PseudoVFWADD_ALT_VV_M2_E16 = 4392,
+ PseudoVFWADD_ALT_VV_M2_E16_MASK = 4393,
+ PseudoVFWADD_ALT_VV_M4_E16 = 4394,
+ PseudoVFWADD_ALT_VV_M4_E16_MASK = 4395,
+ PseudoVFWADD_ALT_VV_MF2_E16 = 4396,
+ PseudoVFWADD_ALT_VV_MF2_E16_MASK = 4397,
+ PseudoVFWADD_ALT_VV_MF4_E16 = 4398,
+ PseudoVFWADD_ALT_VV_MF4_E16_MASK = 4399,
+ PseudoVFWADD_ALT_WFPR16_M1_E16 = 4400,
+ PseudoVFWADD_ALT_WFPR16_M1_E16_MASK = 4401,
+ PseudoVFWADD_ALT_WFPR16_M2_E16 = 4402,
+ PseudoVFWADD_ALT_WFPR16_M2_E16_MASK = 4403,
+ PseudoVFWADD_ALT_WFPR16_M4_E16 = 4404,
+ PseudoVFWADD_ALT_WFPR16_M4_E16_MASK = 4405,
+ PseudoVFWADD_ALT_WFPR16_MF2_E16 = 4406,
+ PseudoVFWADD_ALT_WFPR16_MF2_E16_MASK = 4407,
+ PseudoVFWADD_ALT_WFPR16_MF4_E16 = 4408,
+ PseudoVFWADD_ALT_WFPR16_MF4_E16_MASK = 4409,
+ PseudoVFWADD_ALT_WV_M1_E16 = 4410,
+ PseudoVFWADD_ALT_WV_M1_E16_MASK = 4411,
+ PseudoVFWADD_ALT_WV_M1_E16_MASK_TIED = 4412,
+ PseudoVFWADD_ALT_WV_M1_E16_TIED = 4413,
+ PseudoVFWADD_ALT_WV_M2_E16 = 4414,
+ PseudoVFWADD_ALT_WV_M2_E16_MASK = 4415,
+ PseudoVFWADD_ALT_WV_M2_E16_MASK_TIED = 4416,
+ PseudoVFWADD_ALT_WV_M2_E16_TIED = 4417,
+ PseudoVFWADD_ALT_WV_M4_E16 = 4418,
+ PseudoVFWADD_ALT_WV_M4_E16_MASK = 4419,
+ PseudoVFWADD_ALT_WV_M4_E16_MASK_TIED = 4420,
+ PseudoVFWADD_ALT_WV_M4_E16_TIED = 4421,
+ PseudoVFWADD_ALT_WV_MF2_E16 = 4422,
+ PseudoVFWADD_ALT_WV_MF2_E16_MASK = 4423,
+ PseudoVFWADD_ALT_WV_MF2_E16_MASK_TIED = 4424,
+ PseudoVFWADD_ALT_WV_MF2_E16_TIED = 4425,
+ PseudoVFWADD_ALT_WV_MF4_E16 = 4426,
+ PseudoVFWADD_ALT_WV_MF4_E16_MASK = 4427,
+ PseudoVFWADD_ALT_WV_MF4_E16_MASK_TIED = 4428,
+ PseudoVFWADD_ALT_WV_MF4_E16_TIED = 4429,
+ PseudoVFWADD_VFPR16_M1_E16 = 4430,
+ PseudoVFWADD_VFPR16_M1_E16_MASK = 4431,
+ PseudoVFWADD_VFPR16_M2_E16 = 4432,
+ PseudoVFWADD_VFPR16_M2_E16_MASK = 4433,
+ PseudoVFWADD_VFPR16_M4_E16 = 4434,
+ PseudoVFWADD_VFPR16_M4_E16_MASK = 4435,
+ PseudoVFWADD_VFPR16_MF2_E16 = 4436,
+ PseudoVFWADD_VFPR16_MF2_E16_MASK = 4437,
+ PseudoVFWADD_VFPR16_MF4_E16 = 4438,
+ PseudoVFWADD_VFPR16_MF4_E16_MASK = 4439,
+ PseudoVFWADD_VFPR32_M1_E32 = 4440,
+ PseudoVFWADD_VFPR32_M1_E32_MASK = 4441,
+ PseudoVFWADD_VFPR32_M2_E32 = 4442,
+ PseudoVFWADD_VFPR32_M2_E32_MASK = 4443,
+ PseudoVFWADD_VFPR32_M4_E32 = 4444,
+ PseudoVFWADD_VFPR32_M4_E32_MASK = 4445,
+ PseudoVFWADD_VFPR32_MF2_E32 = 4446,
+ PseudoVFWADD_VFPR32_MF2_E32_MASK = 4447,
+ PseudoVFWADD_VV_M1_E16 = 4448,
+ PseudoVFWADD_VV_M1_E16_MASK = 4449,
+ PseudoVFWADD_VV_M1_E32 = 4450,
+ PseudoVFWADD_VV_M1_E32_MASK = 4451,
+ PseudoVFWADD_VV_M2_E16 = 4452,
+ PseudoVFWADD_VV_M2_E16_MASK = 4453,
+ PseudoVFWADD_VV_M2_E32 = 4454,
+ PseudoVFWADD_VV_M2_E32_MASK = 4455,
+ PseudoVFWADD_VV_M4_E16 = 4456,
+ PseudoVFWADD_VV_M4_E16_MASK = 4457,
+ PseudoVFWADD_VV_M4_E32 = 4458,
+ PseudoVFWADD_VV_M4_E32_MASK = 4459,
+ PseudoVFWADD_VV_MF2_E16 = 4460,
+ PseudoVFWADD_VV_MF2_E16_MASK = 4461,
+ PseudoVFWADD_VV_MF2_E32 = 4462,
+ PseudoVFWADD_VV_MF2_E32_MASK = 4463,
+ PseudoVFWADD_VV_MF4_E16 = 4464,
+ PseudoVFWADD_VV_MF4_E16_MASK = 4465,
+ PseudoVFWADD_WFPR16_M1_E16 = 4466,
+ PseudoVFWADD_WFPR16_M1_E16_MASK = 4467,
+ PseudoVFWADD_WFPR16_M2_E16 = 4468,
+ PseudoVFWADD_WFPR16_M2_E16_MASK = 4469,
+ PseudoVFWADD_WFPR16_M4_E16 = 4470,
+ PseudoVFWADD_WFPR16_M4_E16_MASK = 4471,
+ PseudoVFWADD_WFPR16_MF2_E16 = 4472,
+ PseudoVFWADD_WFPR16_MF2_E16_MASK = 4473,
+ PseudoVFWADD_WFPR16_MF4_E16 = 4474,
+ PseudoVFWADD_WFPR16_MF4_E16_MASK = 4475,
+ PseudoVFWADD_WFPR32_M1_E32 = 4476,
+ PseudoVFWADD_WFPR32_M1_E32_MASK = 4477,
+ PseudoVFWADD_WFPR32_M2_E32 = 4478,
+ PseudoVFWADD_WFPR32_M2_E32_MASK = 4479,
+ PseudoVFWADD_WFPR32_M4_E32 = 4480,
+ PseudoVFWADD_WFPR32_M4_E32_MASK = 4481,
+ PseudoVFWADD_WFPR32_MF2_E32 = 4482,
+ PseudoVFWADD_WFPR32_MF2_E32_MASK = 4483,
+ PseudoVFWADD_WV_M1_E16 = 4484,
+ PseudoVFWADD_WV_M1_E16_MASK = 4485,
+ PseudoVFWADD_WV_M1_E16_MASK_TIED = 4486,
+ PseudoVFWADD_WV_M1_E16_TIED = 4487,
+ PseudoVFWADD_WV_M1_E32 = 4488,
+ PseudoVFWADD_WV_M1_E32_MASK = 4489,
+ PseudoVFWADD_WV_M1_E32_MASK_TIED = 4490,
+ PseudoVFWADD_WV_M1_E32_TIED = 4491,
+ PseudoVFWADD_WV_M2_E16 = 4492,
+ PseudoVFWADD_WV_M2_E16_MASK = 4493,
+ PseudoVFWADD_WV_M2_E16_MASK_TIED = 4494,
+ PseudoVFWADD_WV_M2_E16_TIED = 4495,
+ PseudoVFWADD_WV_M2_E32 = 4496,
+ PseudoVFWADD_WV_M2_E32_MASK = 4497,
+ PseudoVFWADD_WV_M2_E32_MASK_TIED = 4498,
+ PseudoVFWADD_WV_M2_E32_TIED = 4499,
+ PseudoVFWADD_WV_M4_E16 = 4500,
+ PseudoVFWADD_WV_M4_E16_MASK = 4501,
+ PseudoVFWADD_WV_M4_E16_MASK_TIED = 4502,
+ PseudoVFWADD_WV_M4_E16_TIED = 4503,
+ PseudoVFWADD_WV_M4_E32 = 4504,
+ PseudoVFWADD_WV_M4_E32_MASK = 4505,
+ PseudoVFWADD_WV_M4_E32_MASK_TIED = 4506,
+ PseudoVFWADD_WV_M4_E32_TIED = 4507,
+ PseudoVFWADD_WV_MF2_E16 = 4508,
+ PseudoVFWADD_WV_MF2_E16_MASK = 4509,
+ PseudoVFWADD_WV_MF2_E16_MASK_TIED = 4510,
+ PseudoVFWADD_WV_MF2_E16_TIED = 4511,
+ PseudoVFWADD_WV_MF2_E32 = 4512,
+ PseudoVFWADD_WV_MF2_E32_MASK = 4513,
+ PseudoVFWADD_WV_MF2_E32_MASK_TIED = 4514,
+ PseudoVFWADD_WV_MF2_E32_TIED = 4515,
+ PseudoVFWADD_WV_MF4_E16 = 4516,
+ PseudoVFWADD_WV_MF4_E16_MASK = 4517,
+ PseudoVFWADD_WV_MF4_E16_MASK_TIED = 4518,
+ PseudoVFWADD_WV_MF4_E16_TIED = 4519,
+ PseudoVFWCVTBF16_F_F_ALT_V_M1_E8 = 4520,
+ PseudoVFWCVTBF16_F_F_ALT_V_M1_E8_MASK = 4521,
+ PseudoVFWCVTBF16_F_F_ALT_V_M2_E8 = 4522,
+ PseudoVFWCVTBF16_F_F_ALT_V_M2_E8_MASK = 4523,
+ PseudoVFWCVTBF16_F_F_ALT_V_M4_E8 = 4524,
+ PseudoVFWCVTBF16_F_F_ALT_V_M4_E8_MASK = 4525,
+ PseudoVFWCVTBF16_F_F_ALT_V_MF2_E8 = 4526,
+ PseudoVFWCVTBF16_F_F_ALT_V_MF2_E8_MASK = 4527,
+ PseudoVFWCVTBF16_F_F_ALT_V_MF4_E8 = 4528,
+ PseudoVFWCVTBF16_F_F_ALT_V_MF4_E8_MASK = 4529,
+ PseudoVFWCVTBF16_F_F_ALT_V_MF8_E8 = 4530,
+ PseudoVFWCVTBF16_F_F_ALT_V_MF8_E8_MASK = 4531,
+ PseudoVFWCVTBF16_F_F_V_M1_E16 = 4532,
+ PseudoVFWCVTBF16_F_F_V_M1_E16_MASK = 4533,
+ PseudoVFWCVTBF16_F_F_V_M1_E32 = 4534,
+ PseudoVFWCVTBF16_F_F_V_M1_E32_MASK = 4535,
+ PseudoVFWCVTBF16_F_F_V_M1_E8 = 4536,
+ PseudoVFWCVTBF16_F_F_V_M1_E8_MASK = 4537,
+ PseudoVFWCVTBF16_F_F_V_M2_E16 = 4538,
+ PseudoVFWCVTBF16_F_F_V_M2_E16_MASK = 4539,
+ PseudoVFWCVTBF16_F_F_V_M2_E32 = 4540,
+ PseudoVFWCVTBF16_F_F_V_M2_E32_MASK = 4541,
+ PseudoVFWCVTBF16_F_F_V_M2_E8 = 4542,
+ PseudoVFWCVTBF16_F_F_V_M2_E8_MASK = 4543,
+ PseudoVFWCVTBF16_F_F_V_M4_E16 = 4544,
+ PseudoVFWCVTBF16_F_F_V_M4_E16_MASK = 4545,
+ PseudoVFWCVTBF16_F_F_V_M4_E32 = 4546,
+ PseudoVFWCVTBF16_F_F_V_M4_E32_MASK = 4547,
+ PseudoVFWCVTBF16_F_F_V_M4_E8 = 4548,
+ PseudoVFWCVTBF16_F_F_V_M4_E8_MASK = 4549,
+ PseudoVFWCVTBF16_F_F_V_MF2_E16 = 4550,
+ PseudoVFWCVTBF16_F_F_V_MF2_E16_MASK = 4551,
+ PseudoVFWCVTBF16_F_F_V_MF2_E32 = 4552,
+ PseudoVFWCVTBF16_F_F_V_MF2_E32_MASK = 4553,
+ PseudoVFWCVTBF16_F_F_V_MF2_E8 = 4554,
+ PseudoVFWCVTBF16_F_F_V_MF2_E8_MASK = 4555,
+ PseudoVFWCVTBF16_F_F_V_MF4_E16 = 4556,
+ PseudoVFWCVTBF16_F_F_V_MF4_E16_MASK = 4557,
+ PseudoVFWCVTBF16_F_F_V_MF4_E8 = 4558,
+ PseudoVFWCVTBF16_F_F_V_MF4_E8_MASK = 4559,
+ PseudoVFWCVTBF16_F_F_V_MF8_E8 = 4560,
+ PseudoVFWCVTBF16_F_F_V_MF8_E8_MASK = 4561,
+ PseudoVFWCVT_F_F_ALT_V_M1_E16 = 4562,
+ PseudoVFWCVT_F_F_ALT_V_M1_E16_MASK = 4563,
+ PseudoVFWCVT_F_F_ALT_V_M2_E16 = 4564,
+ PseudoVFWCVT_F_F_ALT_V_M2_E16_MASK = 4565,
+ PseudoVFWCVT_F_F_ALT_V_M4_E16 = 4566,
+ PseudoVFWCVT_F_F_ALT_V_M4_E16_MASK = 4567,
+ PseudoVFWCVT_F_F_ALT_V_MF2_E16 = 4568,
+ PseudoVFWCVT_F_F_ALT_V_MF2_E16_MASK = 4569,
+ PseudoVFWCVT_F_F_ALT_V_MF4_E16 = 4570,
+ PseudoVFWCVT_F_F_ALT_V_MF4_E16_MASK = 4571,
+ PseudoVFWCVT_F_F_V_M1_E16 = 4572,
+ PseudoVFWCVT_F_F_V_M1_E16_MASK = 4573,
+ PseudoVFWCVT_F_F_V_M1_E32 = 4574,
+ PseudoVFWCVT_F_F_V_M1_E32_MASK = 4575,
+ PseudoVFWCVT_F_F_V_M2_E16 = 4576,
+ PseudoVFWCVT_F_F_V_M2_E16_MASK = 4577,
+ PseudoVFWCVT_F_F_V_M2_E32 = 4578,
+ PseudoVFWCVT_F_F_V_M2_E32_MASK = 4579,
+ PseudoVFWCVT_F_F_V_M4_E16 = 4580,
+ PseudoVFWCVT_F_F_V_M4_E16_MASK = 4581,
+ PseudoVFWCVT_F_F_V_M4_E32 = 4582,
+ PseudoVFWCVT_F_F_V_M4_E32_MASK = 4583,
+ PseudoVFWCVT_F_F_V_MF2_E16 = 4584,
+ PseudoVFWCVT_F_F_V_MF2_E16_MASK = 4585,
+ PseudoVFWCVT_F_F_V_MF2_E32 = 4586,
+ PseudoVFWCVT_F_F_V_MF2_E32_MASK = 4587,
+ PseudoVFWCVT_F_F_V_MF4_E16 = 4588,
+ PseudoVFWCVT_F_F_V_MF4_E16_MASK = 4589,
+ PseudoVFWCVT_F_XU_ALT_V_M1_E8 = 4590,
+ PseudoVFWCVT_F_XU_ALT_V_M1_E8_MASK = 4591,
+ PseudoVFWCVT_F_XU_ALT_V_M2_E8 = 4592,
+ PseudoVFWCVT_F_XU_ALT_V_M2_E8_MASK = 4593,
+ PseudoVFWCVT_F_XU_ALT_V_M4_E8 = 4594,
+ PseudoVFWCVT_F_XU_ALT_V_M4_E8_MASK = 4595,
+ PseudoVFWCVT_F_XU_ALT_V_MF2_E8 = 4596,
+ PseudoVFWCVT_F_XU_ALT_V_MF2_E8_MASK = 4597,
+ PseudoVFWCVT_F_XU_ALT_V_MF4_E8 = 4598,
+ PseudoVFWCVT_F_XU_ALT_V_MF4_E8_MASK = 4599,
+ PseudoVFWCVT_F_XU_ALT_V_MF8_E8 = 4600,
+ PseudoVFWCVT_F_XU_ALT_V_MF8_E8_MASK = 4601,
+ PseudoVFWCVT_F_XU_V_M1_E16 = 4602,
+ PseudoVFWCVT_F_XU_V_M1_E16_MASK = 4603,
+ PseudoVFWCVT_F_XU_V_M1_E32 = 4604,
+ PseudoVFWCVT_F_XU_V_M1_E32_MASK = 4605,
+ PseudoVFWCVT_F_XU_V_M1_E8 = 4606,
+ PseudoVFWCVT_F_XU_V_M1_E8_MASK = 4607,
+ PseudoVFWCVT_F_XU_V_M2_E16 = 4608,
+ PseudoVFWCVT_F_XU_V_M2_E16_MASK = 4609,
+ PseudoVFWCVT_F_XU_V_M2_E32 = 4610,
+ PseudoVFWCVT_F_XU_V_M2_E32_MASK = 4611,
+ PseudoVFWCVT_F_XU_V_M2_E8 = 4612,
+ PseudoVFWCVT_F_XU_V_M2_E8_MASK = 4613,
+ PseudoVFWCVT_F_XU_V_M4_E16 = 4614,
+ PseudoVFWCVT_F_XU_V_M4_E16_MASK = 4615,
+ PseudoVFWCVT_F_XU_V_M4_E32 = 4616,
+ PseudoVFWCVT_F_XU_V_M4_E32_MASK = 4617,
+ PseudoVFWCVT_F_XU_V_M4_E8 = 4618,
+ PseudoVFWCVT_F_XU_V_M4_E8_MASK = 4619,
+ PseudoVFWCVT_F_XU_V_MF2_E16 = 4620,
+ PseudoVFWCVT_F_XU_V_MF2_E16_MASK = 4621,
+ PseudoVFWCVT_F_XU_V_MF2_E32 = 4622,
+ PseudoVFWCVT_F_XU_V_MF2_E32_MASK = 4623,
+ PseudoVFWCVT_F_XU_V_MF2_E8 = 4624,
+ PseudoVFWCVT_F_XU_V_MF2_E8_MASK = 4625,
+ PseudoVFWCVT_F_XU_V_MF4_E16 = 4626,
+ PseudoVFWCVT_F_XU_V_MF4_E16_MASK = 4627,
+ PseudoVFWCVT_F_XU_V_MF4_E8 = 4628,
+ PseudoVFWCVT_F_XU_V_MF4_E8_MASK = 4629,
+ PseudoVFWCVT_F_XU_V_MF8_E8 = 4630,
+ PseudoVFWCVT_F_XU_V_MF8_E8_MASK = 4631,
+ PseudoVFWCVT_F_X_ALT_V_M1_E8 = 4632,
+ PseudoVFWCVT_F_X_ALT_V_M1_E8_MASK = 4633,
+ PseudoVFWCVT_F_X_ALT_V_M2_E8 = 4634,
+ PseudoVFWCVT_F_X_ALT_V_M2_E8_MASK = 4635,
+ PseudoVFWCVT_F_X_ALT_V_M4_E8 = 4636,
+ PseudoVFWCVT_F_X_ALT_V_M4_E8_MASK = 4637,
+ PseudoVFWCVT_F_X_ALT_V_MF2_E8 = 4638,
+ PseudoVFWCVT_F_X_ALT_V_MF2_E8_MASK = 4639,
+ PseudoVFWCVT_F_X_ALT_V_MF4_E8 = 4640,
+ PseudoVFWCVT_F_X_ALT_V_MF4_E8_MASK = 4641,
+ PseudoVFWCVT_F_X_ALT_V_MF8_E8 = 4642,
+ PseudoVFWCVT_F_X_ALT_V_MF8_E8_MASK = 4643,
+ PseudoVFWCVT_F_X_V_M1_E16 = 4644,
+ PseudoVFWCVT_F_X_V_M1_E16_MASK = 4645,
+ PseudoVFWCVT_F_X_V_M1_E32 = 4646,
+ PseudoVFWCVT_F_X_V_M1_E32_MASK = 4647,
+ PseudoVFWCVT_F_X_V_M1_E8 = 4648,
+ PseudoVFWCVT_F_X_V_M1_E8_MASK = 4649,
+ PseudoVFWCVT_F_X_V_M2_E16 = 4650,
+ PseudoVFWCVT_F_X_V_M2_E16_MASK = 4651,
+ PseudoVFWCVT_F_X_V_M2_E32 = 4652,
+ PseudoVFWCVT_F_X_V_M2_E32_MASK = 4653,
+ PseudoVFWCVT_F_X_V_M2_E8 = 4654,
+ PseudoVFWCVT_F_X_V_M2_E8_MASK = 4655,
+ PseudoVFWCVT_F_X_V_M4_E16 = 4656,
+ PseudoVFWCVT_F_X_V_M4_E16_MASK = 4657,
+ PseudoVFWCVT_F_X_V_M4_E32 = 4658,
+ PseudoVFWCVT_F_X_V_M4_E32_MASK = 4659,
+ PseudoVFWCVT_F_X_V_M4_E8 = 4660,
+ PseudoVFWCVT_F_X_V_M4_E8_MASK = 4661,
+ PseudoVFWCVT_F_X_V_MF2_E16 = 4662,
+ PseudoVFWCVT_F_X_V_MF2_E16_MASK = 4663,
+ PseudoVFWCVT_F_X_V_MF2_E32 = 4664,
+ PseudoVFWCVT_F_X_V_MF2_E32_MASK = 4665,
+ PseudoVFWCVT_F_X_V_MF2_E8 = 4666,
+ PseudoVFWCVT_F_X_V_MF2_E8_MASK = 4667,
+ PseudoVFWCVT_F_X_V_MF4_E16 = 4668,
+ PseudoVFWCVT_F_X_V_MF4_E16_MASK = 4669,
+ PseudoVFWCVT_F_X_V_MF4_E8 = 4670,
+ PseudoVFWCVT_F_X_V_MF4_E8_MASK = 4671,
+ PseudoVFWCVT_F_X_V_MF8_E8 = 4672,
+ PseudoVFWCVT_F_X_V_MF8_E8_MASK = 4673,
+ PseudoVFWCVT_RTZ_XU_F_V_M1 = 4674,
+ PseudoVFWCVT_RTZ_XU_F_V_M1_MASK = 4675,
+ PseudoVFWCVT_RTZ_XU_F_V_M2 = 4676,
+ PseudoVFWCVT_RTZ_XU_F_V_M2_MASK = 4677,
+ PseudoVFWCVT_RTZ_XU_F_V_M4 = 4678,
+ PseudoVFWCVT_RTZ_XU_F_V_M4_MASK = 4679,
+ PseudoVFWCVT_RTZ_XU_F_V_MF2 = 4680,
+ PseudoVFWCVT_RTZ_XU_F_V_MF2_MASK = 4681,
+ PseudoVFWCVT_RTZ_XU_F_V_MF4 = 4682,
+ PseudoVFWCVT_RTZ_XU_F_V_MF4_MASK = 4683,
+ PseudoVFWCVT_RTZ_X_F_V_M1 = 4684,
+ PseudoVFWCVT_RTZ_X_F_V_M1_MASK = 4685,
+ PseudoVFWCVT_RTZ_X_F_V_M2 = 4686,
+ PseudoVFWCVT_RTZ_X_F_V_M2_MASK = 4687,
+ PseudoVFWCVT_RTZ_X_F_V_M4 = 4688,
+ PseudoVFWCVT_RTZ_X_F_V_M4_MASK = 4689,
+ PseudoVFWCVT_RTZ_X_F_V_MF2 = 4690,
+ PseudoVFWCVT_RTZ_X_F_V_MF2_MASK = 4691,
+ PseudoVFWCVT_RTZ_X_F_V_MF4 = 4692,
+ PseudoVFWCVT_RTZ_X_F_V_MF4_MASK = 4693,
+ PseudoVFWCVT_XU_F_V_M1 = 4694,
+ PseudoVFWCVT_XU_F_V_M1_MASK = 4695,
+ PseudoVFWCVT_XU_F_V_M2 = 4696,
+ PseudoVFWCVT_XU_F_V_M2_MASK = 4697,
+ PseudoVFWCVT_XU_F_V_M4 = 4698,
+ PseudoVFWCVT_XU_F_V_M4_MASK = 4699,
+ PseudoVFWCVT_XU_F_V_MF2 = 4700,
+ PseudoVFWCVT_XU_F_V_MF2_MASK = 4701,
+ PseudoVFWCVT_XU_F_V_MF4 = 4702,
+ PseudoVFWCVT_XU_F_V_MF4_MASK = 4703,
+ PseudoVFWCVT_X_F_V_M1 = 4704,
+ PseudoVFWCVT_X_F_V_M1_MASK = 4705,
+ PseudoVFWCVT_X_F_V_M2 = 4706,
+ PseudoVFWCVT_X_F_V_M2_MASK = 4707,
+ PseudoVFWCVT_X_F_V_M4 = 4708,
+ PseudoVFWCVT_X_F_V_M4_MASK = 4709,
+ PseudoVFWCVT_X_F_V_MF2 = 4710,
+ PseudoVFWCVT_X_F_V_MF2_MASK = 4711,
+ PseudoVFWCVT_X_F_V_MF4 = 4712,
+ PseudoVFWCVT_X_F_V_MF4_MASK = 4713,
+ PseudoVFWMACCBF16_VFPR16_M1_E16 = 4714,
+ PseudoVFWMACCBF16_VFPR16_M1_E16_MASK = 4715,
+ PseudoVFWMACCBF16_VFPR16_M2_E16 = 4716,
+ PseudoVFWMACCBF16_VFPR16_M2_E16_MASK = 4717,
+ PseudoVFWMACCBF16_VFPR16_M4_E16 = 4718,
+ PseudoVFWMACCBF16_VFPR16_M4_E16_MASK = 4719,
+ PseudoVFWMACCBF16_VFPR16_MF2_E16 = 4720,
+ PseudoVFWMACCBF16_VFPR16_MF2_E16_MASK = 4721,
+ PseudoVFWMACCBF16_VFPR16_MF4_E16 = 4722,
+ PseudoVFWMACCBF16_VFPR16_MF4_E16_MASK = 4723,
+ PseudoVFWMACCBF16_VV_M1_E16 = 4724,
+ PseudoVFWMACCBF16_VV_M1_E16_MASK = 4725,
+ PseudoVFWMACCBF16_VV_M1_E32 = 4726,
+ PseudoVFWMACCBF16_VV_M1_E32_MASK = 4727,
+ PseudoVFWMACCBF16_VV_M2_E16 = 4728,
+ PseudoVFWMACCBF16_VV_M2_E16_MASK = 4729,
+ PseudoVFWMACCBF16_VV_M2_E32 = 4730,
+ PseudoVFWMACCBF16_VV_M2_E32_MASK = 4731,
+ PseudoVFWMACCBF16_VV_M4_E16 = 4732,
+ PseudoVFWMACCBF16_VV_M4_E16_MASK = 4733,
+ PseudoVFWMACCBF16_VV_M4_E32 = 4734,
+ PseudoVFWMACCBF16_VV_M4_E32_MASK = 4735,
+ PseudoVFWMACCBF16_VV_MF2_E16 = 4736,
+ PseudoVFWMACCBF16_VV_MF2_E16_MASK = 4737,
+ PseudoVFWMACCBF16_VV_MF2_E32 = 4738,
+ PseudoVFWMACCBF16_VV_MF2_E32_MASK = 4739,
+ PseudoVFWMACCBF16_VV_MF4_E16 = 4740,
+ PseudoVFWMACCBF16_VV_MF4_E16_MASK = 4741,
+ PseudoVFWMACC_ALT_VFPR16_M1_E16 = 4742,
+ PseudoVFWMACC_ALT_VFPR16_M1_E16_MASK = 4743,
+ PseudoVFWMACC_ALT_VFPR16_M2_E16 = 4744,
+ PseudoVFWMACC_ALT_VFPR16_M2_E16_MASK = 4745,
+ PseudoVFWMACC_ALT_VFPR16_M4_E16 = 4746,
+ PseudoVFWMACC_ALT_VFPR16_M4_E16_MASK = 4747,
+ PseudoVFWMACC_ALT_VFPR16_MF2_E16 = 4748,
+ PseudoVFWMACC_ALT_VFPR16_MF2_E16_MASK = 4749,
+ PseudoVFWMACC_ALT_VFPR16_MF4_E16 = 4750,
+ PseudoVFWMACC_ALT_VFPR16_MF4_E16_MASK = 4751,
+ PseudoVFWMACC_ALT_VV_M1_E16 = 4752,
+ PseudoVFWMACC_ALT_VV_M1_E16_MASK = 4753,
+ PseudoVFWMACC_ALT_VV_M2_E16 = 4754,
+ PseudoVFWMACC_ALT_VV_M2_E16_MASK = 4755,
+ PseudoVFWMACC_ALT_VV_M4_E16 = 4756,
+ PseudoVFWMACC_ALT_VV_M4_E16_MASK = 4757,
+ PseudoVFWMACC_ALT_VV_MF2_E16 = 4758,
+ PseudoVFWMACC_ALT_VV_MF2_E16_MASK = 4759,
+ PseudoVFWMACC_ALT_VV_MF4_E16 = 4760,
+ PseudoVFWMACC_ALT_VV_MF4_E16_MASK = 4761,
+ PseudoVFWMACC_VFPR16_M1_E16 = 4762,
+ PseudoVFWMACC_VFPR16_M1_E16_MASK = 4763,
+ PseudoVFWMACC_VFPR16_M2_E16 = 4764,
+ PseudoVFWMACC_VFPR16_M2_E16_MASK = 4765,
+ PseudoVFWMACC_VFPR16_M4_E16 = 4766,
+ PseudoVFWMACC_VFPR16_M4_E16_MASK = 4767,
+ PseudoVFWMACC_VFPR16_MF2_E16 = 4768,
+ PseudoVFWMACC_VFPR16_MF2_E16_MASK = 4769,
+ PseudoVFWMACC_VFPR16_MF4_E16 = 4770,
+ PseudoVFWMACC_VFPR16_MF4_E16_MASK = 4771,
+ PseudoVFWMACC_VFPR32_M1_E32 = 4772,
+ PseudoVFWMACC_VFPR32_M1_E32_MASK = 4773,
+ PseudoVFWMACC_VFPR32_M2_E32 = 4774,
+ PseudoVFWMACC_VFPR32_M2_E32_MASK = 4775,
+ PseudoVFWMACC_VFPR32_M4_E32 = 4776,
+ PseudoVFWMACC_VFPR32_M4_E32_MASK = 4777,
+ PseudoVFWMACC_VFPR32_MF2_E32 = 4778,
+ PseudoVFWMACC_VFPR32_MF2_E32_MASK = 4779,
+ PseudoVFWMACC_VV_M1_E16 = 4780,
+ PseudoVFWMACC_VV_M1_E16_MASK = 4781,
+ PseudoVFWMACC_VV_M1_E32 = 4782,
+ PseudoVFWMACC_VV_M1_E32_MASK = 4783,
+ PseudoVFWMACC_VV_M2_E16 = 4784,
+ PseudoVFWMACC_VV_M2_E16_MASK = 4785,
+ PseudoVFWMACC_VV_M2_E32 = 4786,
+ PseudoVFWMACC_VV_M2_E32_MASK = 4787,
+ PseudoVFWMACC_VV_M4_E16 = 4788,
+ PseudoVFWMACC_VV_M4_E16_MASK = 4789,
+ PseudoVFWMACC_VV_M4_E32 = 4790,
+ PseudoVFWMACC_VV_M4_E32_MASK = 4791,
+ PseudoVFWMACC_VV_MF2_E16 = 4792,
+ PseudoVFWMACC_VV_MF2_E16_MASK = 4793,
+ PseudoVFWMACC_VV_MF2_E32 = 4794,
+ PseudoVFWMACC_VV_MF2_E32_MASK = 4795,
+ PseudoVFWMACC_VV_MF4_E16 = 4796,
+ PseudoVFWMACC_VV_MF4_E16_MASK = 4797,
+ PseudoVFWMSAC_ALT_VFPR16_M1_E16 = 4798,
+ PseudoVFWMSAC_ALT_VFPR16_M1_E16_MASK = 4799,
+ PseudoVFWMSAC_ALT_VFPR16_M2_E16 = 4800,
+ PseudoVFWMSAC_ALT_VFPR16_M2_E16_MASK = 4801,
+ PseudoVFWMSAC_ALT_VFPR16_M4_E16 = 4802,
+ PseudoVFWMSAC_ALT_VFPR16_M4_E16_MASK = 4803,
+ PseudoVFWMSAC_ALT_VFPR16_MF2_E16 = 4804,
+ PseudoVFWMSAC_ALT_VFPR16_MF2_E16_MASK = 4805,
+ PseudoVFWMSAC_ALT_VFPR16_MF4_E16 = 4806,
+ PseudoVFWMSAC_ALT_VFPR16_MF4_E16_MASK = 4807,
+ PseudoVFWMSAC_ALT_VV_M1_E16 = 4808,
+ PseudoVFWMSAC_ALT_VV_M1_E16_MASK = 4809,
+ PseudoVFWMSAC_ALT_VV_M2_E16 = 4810,
+ PseudoVFWMSAC_ALT_VV_M2_E16_MASK = 4811,
+ PseudoVFWMSAC_ALT_VV_M4_E16 = 4812,
+ PseudoVFWMSAC_ALT_VV_M4_E16_MASK = 4813,
+ PseudoVFWMSAC_ALT_VV_MF2_E16 = 4814,
+ PseudoVFWMSAC_ALT_VV_MF2_E16_MASK = 4815,
+ PseudoVFWMSAC_ALT_VV_MF4_E16 = 4816,
+ PseudoVFWMSAC_ALT_VV_MF4_E16_MASK = 4817,
+ PseudoVFWMSAC_VFPR16_M1_E16 = 4818,
+ PseudoVFWMSAC_VFPR16_M1_E16_MASK = 4819,
+ PseudoVFWMSAC_VFPR16_M2_E16 = 4820,
+ PseudoVFWMSAC_VFPR16_M2_E16_MASK = 4821,
+ PseudoVFWMSAC_VFPR16_M4_E16 = 4822,
+ PseudoVFWMSAC_VFPR16_M4_E16_MASK = 4823,
+ PseudoVFWMSAC_VFPR16_MF2_E16 = 4824,
+ PseudoVFWMSAC_VFPR16_MF2_E16_MASK = 4825,
+ PseudoVFWMSAC_VFPR16_MF4_E16 = 4826,
+ PseudoVFWMSAC_VFPR16_MF4_E16_MASK = 4827,
+ PseudoVFWMSAC_VFPR32_M1_E32 = 4828,
+ PseudoVFWMSAC_VFPR32_M1_E32_MASK = 4829,
+ PseudoVFWMSAC_VFPR32_M2_E32 = 4830,
+ PseudoVFWMSAC_VFPR32_M2_E32_MASK = 4831,
+ PseudoVFWMSAC_VFPR32_M4_E32 = 4832,
+ PseudoVFWMSAC_VFPR32_M4_E32_MASK = 4833,
+ PseudoVFWMSAC_VFPR32_MF2_E32 = 4834,
+ PseudoVFWMSAC_VFPR32_MF2_E32_MASK = 4835,
+ PseudoVFWMSAC_VV_M1_E16 = 4836,
+ PseudoVFWMSAC_VV_M1_E16_MASK = 4837,
+ PseudoVFWMSAC_VV_M1_E32 = 4838,
+ PseudoVFWMSAC_VV_M1_E32_MASK = 4839,
+ PseudoVFWMSAC_VV_M2_E16 = 4840,
+ PseudoVFWMSAC_VV_M2_E16_MASK = 4841,
+ PseudoVFWMSAC_VV_M2_E32 = 4842,
+ PseudoVFWMSAC_VV_M2_E32_MASK = 4843,
+ PseudoVFWMSAC_VV_M4_E16 = 4844,
+ PseudoVFWMSAC_VV_M4_E16_MASK = 4845,
+ PseudoVFWMSAC_VV_M4_E32 = 4846,
+ PseudoVFWMSAC_VV_M4_E32_MASK = 4847,
+ PseudoVFWMSAC_VV_MF2_E16 = 4848,
+ PseudoVFWMSAC_VV_MF2_E16_MASK = 4849,
+ PseudoVFWMSAC_VV_MF2_E32 = 4850,
+ PseudoVFWMSAC_VV_MF2_E32_MASK = 4851,
+ PseudoVFWMSAC_VV_MF4_E16 = 4852,
+ PseudoVFWMSAC_VV_MF4_E16_MASK = 4853,
+ PseudoVFWMUL_ALT_VFPR16_M1_E16 = 4854,
+ PseudoVFWMUL_ALT_VFPR16_M1_E16_MASK = 4855,
+ PseudoVFWMUL_ALT_VFPR16_M2_E16 = 4856,
+ PseudoVFWMUL_ALT_VFPR16_M2_E16_MASK = 4857,
+ PseudoVFWMUL_ALT_VFPR16_M4_E16 = 4858,
+ PseudoVFWMUL_ALT_VFPR16_M4_E16_MASK = 4859,
+ PseudoVFWMUL_ALT_VFPR16_MF2_E16 = 4860,
+ PseudoVFWMUL_ALT_VFPR16_MF2_E16_MASK = 4861,
+ PseudoVFWMUL_ALT_VFPR16_MF4_E16 = 4862,
+ PseudoVFWMUL_ALT_VFPR16_MF4_E16_MASK = 4863,
+ PseudoVFWMUL_ALT_VV_M1_E16 = 4864,
+ PseudoVFWMUL_ALT_VV_M1_E16_MASK = 4865,
+ PseudoVFWMUL_ALT_VV_M2_E16 = 4866,
+ PseudoVFWMUL_ALT_VV_M2_E16_MASK = 4867,
+ PseudoVFWMUL_ALT_VV_M4_E16 = 4868,
+ PseudoVFWMUL_ALT_VV_M4_E16_MASK = 4869,
+ PseudoVFWMUL_ALT_VV_MF2_E16 = 4870,
+ PseudoVFWMUL_ALT_VV_MF2_E16_MASK = 4871,
+ PseudoVFWMUL_ALT_VV_MF4_E16 = 4872,
+ PseudoVFWMUL_ALT_VV_MF4_E16_MASK = 4873,
+ PseudoVFWMUL_VFPR16_M1_E16 = 4874,
+ PseudoVFWMUL_VFPR16_M1_E16_MASK = 4875,
+ PseudoVFWMUL_VFPR16_M2_E16 = 4876,
+ PseudoVFWMUL_VFPR16_M2_E16_MASK = 4877,
+ PseudoVFWMUL_VFPR16_M4_E16 = 4878,
+ PseudoVFWMUL_VFPR16_M4_E16_MASK = 4879,
+ PseudoVFWMUL_VFPR16_MF2_E16 = 4880,
+ PseudoVFWMUL_VFPR16_MF2_E16_MASK = 4881,
+ PseudoVFWMUL_VFPR16_MF4_E16 = 4882,
+ PseudoVFWMUL_VFPR16_MF4_E16_MASK = 4883,
+ PseudoVFWMUL_VFPR32_M1_E32 = 4884,
+ PseudoVFWMUL_VFPR32_M1_E32_MASK = 4885,
+ PseudoVFWMUL_VFPR32_M2_E32 = 4886,
+ PseudoVFWMUL_VFPR32_M2_E32_MASK = 4887,
+ PseudoVFWMUL_VFPR32_M4_E32 = 4888,
+ PseudoVFWMUL_VFPR32_M4_E32_MASK = 4889,
+ PseudoVFWMUL_VFPR32_MF2_E32 = 4890,
+ PseudoVFWMUL_VFPR32_MF2_E32_MASK = 4891,
+ PseudoVFWMUL_VV_M1_E16 = 4892,
+ PseudoVFWMUL_VV_M1_E16_MASK = 4893,
+ PseudoVFWMUL_VV_M1_E32 = 4894,
+ PseudoVFWMUL_VV_M1_E32_MASK = 4895,
+ PseudoVFWMUL_VV_M2_E16 = 4896,
+ PseudoVFWMUL_VV_M2_E16_MASK = 4897,
+ PseudoVFWMUL_VV_M2_E32 = 4898,
+ PseudoVFWMUL_VV_M2_E32_MASK = 4899,
+ PseudoVFWMUL_VV_M4_E16 = 4900,
+ PseudoVFWMUL_VV_M4_E16_MASK = 4901,
+ PseudoVFWMUL_VV_M4_E32 = 4902,
+ PseudoVFWMUL_VV_M4_E32_MASK = 4903,
+ PseudoVFWMUL_VV_MF2_E16 = 4904,
+ PseudoVFWMUL_VV_MF2_E16_MASK = 4905,
+ PseudoVFWMUL_VV_MF2_E32 = 4906,
+ PseudoVFWMUL_VV_MF2_E32_MASK = 4907,
+ PseudoVFWMUL_VV_MF4_E16 = 4908,
+ PseudoVFWMUL_VV_MF4_E16_MASK = 4909,
+ PseudoVFWNMACC_ALT_VFPR16_M1_E16 = 4910,
+ PseudoVFWNMACC_ALT_VFPR16_M1_E16_MASK = 4911,
+ PseudoVFWNMACC_ALT_VFPR16_M2_E16 = 4912,
+ PseudoVFWNMACC_ALT_VFPR16_M2_E16_MASK = 4913,
+ PseudoVFWNMACC_ALT_VFPR16_M4_E16 = 4914,
+ PseudoVFWNMACC_ALT_VFPR16_M4_E16_MASK = 4915,
+ PseudoVFWNMACC_ALT_VFPR16_MF2_E16 = 4916,
+ PseudoVFWNMACC_ALT_VFPR16_MF2_E16_MASK = 4917,
+ PseudoVFWNMACC_ALT_VFPR16_MF4_E16 = 4918,
+ PseudoVFWNMACC_ALT_VFPR16_MF4_E16_MASK = 4919,
+ PseudoVFWNMACC_ALT_VV_M1_E16 = 4920,
+ PseudoVFWNMACC_ALT_VV_M1_E16_MASK = 4921,
+ PseudoVFWNMACC_ALT_VV_M2_E16 = 4922,
+ PseudoVFWNMACC_ALT_VV_M2_E16_MASK = 4923,
+ PseudoVFWNMACC_ALT_VV_M4_E16 = 4924,
+ PseudoVFWNMACC_ALT_VV_M4_E16_MASK = 4925,
+ PseudoVFWNMACC_ALT_VV_MF2_E16 = 4926,
+ PseudoVFWNMACC_ALT_VV_MF2_E16_MASK = 4927,
+ PseudoVFWNMACC_ALT_VV_MF4_E16 = 4928,
+ PseudoVFWNMACC_ALT_VV_MF4_E16_MASK = 4929,
+ PseudoVFWNMACC_VFPR16_M1_E16 = 4930,
+ PseudoVFWNMACC_VFPR16_M1_E16_MASK = 4931,
+ PseudoVFWNMACC_VFPR16_M2_E16 = 4932,
+ PseudoVFWNMACC_VFPR16_M2_E16_MASK = 4933,
+ PseudoVFWNMACC_VFPR16_M4_E16 = 4934,
+ PseudoVFWNMACC_VFPR16_M4_E16_MASK = 4935,
+ PseudoVFWNMACC_VFPR16_MF2_E16 = 4936,
+ PseudoVFWNMACC_VFPR16_MF2_E16_MASK = 4937,
+ PseudoVFWNMACC_VFPR16_MF4_E16 = 4938,
+ PseudoVFWNMACC_VFPR16_MF4_E16_MASK = 4939,
+ PseudoVFWNMACC_VFPR32_M1_E32 = 4940,
+ PseudoVFWNMACC_VFPR32_M1_E32_MASK = 4941,
+ PseudoVFWNMACC_VFPR32_M2_E32 = 4942,
+ PseudoVFWNMACC_VFPR32_M2_E32_MASK = 4943,
+ PseudoVFWNMACC_VFPR32_M4_E32 = 4944,
+ PseudoVFWNMACC_VFPR32_M4_E32_MASK = 4945,
+ PseudoVFWNMACC_VFPR32_MF2_E32 = 4946,
+ PseudoVFWNMACC_VFPR32_MF2_E32_MASK = 4947,
+ PseudoVFWNMACC_VV_M1_E16 = 4948,
+ PseudoVFWNMACC_VV_M1_E16_MASK = 4949,
+ PseudoVFWNMACC_VV_M1_E32 = 4950,
+ PseudoVFWNMACC_VV_M1_E32_MASK = 4951,
+ PseudoVFWNMACC_VV_M2_E16 = 4952,
+ PseudoVFWNMACC_VV_M2_E16_MASK = 4953,
+ PseudoVFWNMACC_VV_M2_E32 = 4954,
+ PseudoVFWNMACC_VV_M2_E32_MASK = 4955,
+ PseudoVFWNMACC_VV_M4_E16 = 4956,
+ PseudoVFWNMACC_VV_M4_E16_MASK = 4957,
+ PseudoVFWNMACC_VV_M4_E32 = 4958,
+ PseudoVFWNMACC_VV_M4_E32_MASK = 4959,
+ PseudoVFWNMACC_VV_MF2_E16 = 4960,
+ PseudoVFWNMACC_VV_MF2_E16_MASK = 4961,
+ PseudoVFWNMACC_VV_MF2_E32 = 4962,
+ PseudoVFWNMACC_VV_MF2_E32_MASK = 4963,
+ PseudoVFWNMACC_VV_MF4_E16 = 4964,
+ PseudoVFWNMACC_VV_MF4_E16_MASK = 4965,
+ PseudoVFWNMSAC_ALT_VFPR16_M1_E16 = 4966,
+ PseudoVFWNMSAC_ALT_VFPR16_M1_E16_MASK = 4967,
+ PseudoVFWNMSAC_ALT_VFPR16_M2_E16 = 4968,
+ PseudoVFWNMSAC_ALT_VFPR16_M2_E16_MASK = 4969,
+ PseudoVFWNMSAC_ALT_VFPR16_M4_E16 = 4970,
+ PseudoVFWNMSAC_ALT_VFPR16_M4_E16_MASK = 4971,
+ PseudoVFWNMSAC_ALT_VFPR16_MF2_E16 = 4972,
+ PseudoVFWNMSAC_ALT_VFPR16_MF2_E16_MASK = 4973,
+ PseudoVFWNMSAC_ALT_VFPR16_MF4_E16 = 4974,
+ PseudoVFWNMSAC_ALT_VFPR16_MF4_E16_MASK = 4975,
+ PseudoVFWNMSAC_ALT_VV_M1_E16 = 4976,
+ PseudoVFWNMSAC_ALT_VV_M1_E16_MASK = 4977,
+ PseudoVFWNMSAC_ALT_VV_M2_E16 = 4978,
+ PseudoVFWNMSAC_ALT_VV_M2_E16_MASK = 4979,
+ PseudoVFWNMSAC_ALT_VV_M4_E16 = 4980,
+ PseudoVFWNMSAC_ALT_VV_M4_E16_MASK = 4981,
+ PseudoVFWNMSAC_ALT_VV_MF2_E16 = 4982,
+ PseudoVFWNMSAC_ALT_VV_MF2_E16_MASK = 4983,
+ PseudoVFWNMSAC_ALT_VV_MF4_E16 = 4984,
+ PseudoVFWNMSAC_ALT_VV_MF4_E16_MASK = 4985,
+ PseudoVFWNMSAC_VFPR16_M1_E16 = 4986,
+ PseudoVFWNMSAC_VFPR16_M1_E16_MASK = 4987,
+ PseudoVFWNMSAC_VFPR16_M2_E16 = 4988,
+ PseudoVFWNMSAC_VFPR16_M2_E16_MASK = 4989,
+ PseudoVFWNMSAC_VFPR16_M4_E16 = 4990,
+ PseudoVFWNMSAC_VFPR16_M4_E16_MASK = 4991,
+ PseudoVFWNMSAC_VFPR16_MF2_E16 = 4992,
+ PseudoVFWNMSAC_VFPR16_MF2_E16_MASK = 4993,
+ PseudoVFWNMSAC_VFPR16_MF4_E16 = 4994,
+ PseudoVFWNMSAC_VFPR16_MF4_E16_MASK = 4995,
+ PseudoVFWNMSAC_VFPR32_M1_E32 = 4996,
+ PseudoVFWNMSAC_VFPR32_M1_E32_MASK = 4997,
+ PseudoVFWNMSAC_VFPR32_M2_E32 = 4998,
+ PseudoVFWNMSAC_VFPR32_M2_E32_MASK = 4999,
+ PseudoVFWNMSAC_VFPR32_M4_E32 = 5000,
+ PseudoVFWNMSAC_VFPR32_M4_E32_MASK = 5001,
+ PseudoVFWNMSAC_VFPR32_MF2_E32 = 5002,
+ PseudoVFWNMSAC_VFPR32_MF2_E32_MASK = 5003,
+ PseudoVFWNMSAC_VV_M1_E16 = 5004,
+ PseudoVFWNMSAC_VV_M1_E16_MASK = 5005,
+ PseudoVFWNMSAC_VV_M1_E32 = 5006,
+ PseudoVFWNMSAC_VV_M1_E32_MASK = 5007,
+ PseudoVFWNMSAC_VV_M2_E16 = 5008,
+ PseudoVFWNMSAC_VV_M2_E16_MASK = 5009,
+ PseudoVFWNMSAC_VV_M2_E32 = 5010,
+ PseudoVFWNMSAC_VV_M2_E32_MASK = 5011,
+ PseudoVFWNMSAC_VV_M4_E16 = 5012,
+ PseudoVFWNMSAC_VV_M4_E16_MASK = 5013,
+ PseudoVFWNMSAC_VV_M4_E32 = 5014,
+ PseudoVFWNMSAC_VV_M4_E32_MASK = 5015,
+ PseudoVFWNMSAC_VV_MF2_E16 = 5016,
+ PseudoVFWNMSAC_VV_MF2_E16_MASK = 5017,
+ PseudoVFWNMSAC_VV_MF2_E32 = 5018,
+ PseudoVFWNMSAC_VV_MF2_E32_MASK = 5019,
+ PseudoVFWNMSAC_VV_MF4_E16 = 5020,
+ PseudoVFWNMSAC_VV_MF4_E16_MASK = 5021,
+ PseudoVFWREDOSUM_VS_M1_E16 = 5022,
+ PseudoVFWREDOSUM_VS_M1_E16_MASK = 5023,
+ PseudoVFWREDOSUM_VS_M1_E32 = 5024,
+ PseudoVFWREDOSUM_VS_M1_E32_MASK = 5025,
+ PseudoVFWREDOSUM_VS_M2_E16 = 5026,
+ PseudoVFWREDOSUM_VS_M2_E16_MASK = 5027,
+ PseudoVFWREDOSUM_VS_M2_E32 = 5028,
+ PseudoVFWREDOSUM_VS_M2_E32_MASK = 5029,
+ PseudoVFWREDOSUM_VS_M4_E16 = 5030,
+ PseudoVFWREDOSUM_VS_M4_E16_MASK = 5031,
+ PseudoVFWREDOSUM_VS_M4_E32 = 5032,
+ PseudoVFWREDOSUM_VS_M4_E32_MASK = 5033,
+ PseudoVFWREDOSUM_VS_M8_E16 = 5034,
+ PseudoVFWREDOSUM_VS_M8_E16_MASK = 5035,
+ PseudoVFWREDOSUM_VS_M8_E32 = 5036,
+ PseudoVFWREDOSUM_VS_M8_E32_MASK = 5037,
+ PseudoVFWREDOSUM_VS_MF2_E16 = 5038,
+ PseudoVFWREDOSUM_VS_MF2_E16_MASK = 5039,
+ PseudoVFWREDOSUM_VS_MF2_E32 = 5040,
+ PseudoVFWREDOSUM_VS_MF2_E32_MASK = 5041,
+ PseudoVFWREDOSUM_VS_MF4_E16 = 5042,
+ PseudoVFWREDOSUM_VS_MF4_E16_MASK = 5043,
+ PseudoVFWREDUSUM_VS_M1_E16 = 5044,
+ PseudoVFWREDUSUM_VS_M1_E16_MASK = 5045,
+ PseudoVFWREDUSUM_VS_M1_E32 = 5046,
+ PseudoVFWREDUSUM_VS_M1_E32_MASK = 5047,
+ PseudoVFWREDUSUM_VS_M2_E16 = 5048,
+ PseudoVFWREDUSUM_VS_M2_E16_MASK = 5049,
+ PseudoVFWREDUSUM_VS_M2_E32 = 5050,
+ PseudoVFWREDUSUM_VS_M2_E32_MASK = 5051,
+ PseudoVFWREDUSUM_VS_M4_E16 = 5052,
+ PseudoVFWREDUSUM_VS_M4_E16_MASK = 5053,
+ PseudoVFWREDUSUM_VS_M4_E32 = 5054,
+ PseudoVFWREDUSUM_VS_M4_E32_MASK = 5055,
+ PseudoVFWREDUSUM_VS_M8_E16 = 5056,
+ PseudoVFWREDUSUM_VS_M8_E16_MASK = 5057,
+ PseudoVFWREDUSUM_VS_M8_E32 = 5058,
+ PseudoVFWREDUSUM_VS_M8_E32_MASK = 5059,
+ PseudoVFWREDUSUM_VS_MF2_E16 = 5060,
+ PseudoVFWREDUSUM_VS_MF2_E16_MASK = 5061,
+ PseudoVFWREDUSUM_VS_MF2_E32 = 5062,
+ PseudoVFWREDUSUM_VS_MF2_E32_MASK = 5063,
+ PseudoVFWREDUSUM_VS_MF4_E16 = 5064,
+ PseudoVFWREDUSUM_VS_MF4_E16_MASK = 5065,
+ PseudoVFWSUB_ALT_VFPR16_M1_E16 = 5066,
+ PseudoVFWSUB_ALT_VFPR16_M1_E16_MASK = 5067,
+ PseudoVFWSUB_ALT_VFPR16_M2_E16 = 5068,
+ PseudoVFWSUB_ALT_VFPR16_M2_E16_MASK = 5069,
+ PseudoVFWSUB_ALT_VFPR16_M4_E16 = 5070,
+ PseudoVFWSUB_ALT_VFPR16_M4_E16_MASK = 5071,
+ PseudoVFWSUB_ALT_VFPR16_MF2_E16 = 5072,
+ PseudoVFWSUB_ALT_VFPR16_MF2_E16_MASK = 5073,
+ PseudoVFWSUB_ALT_VFPR16_MF4_E16 = 5074,
+ PseudoVFWSUB_ALT_VFPR16_MF4_E16_MASK = 5075,
+ PseudoVFWSUB_ALT_VV_M1_E16 = 5076,
+ PseudoVFWSUB_ALT_VV_M1_E16_MASK = 5077,
+ PseudoVFWSUB_ALT_VV_M2_E16 = 5078,
+ PseudoVFWSUB_ALT_VV_M2_E16_MASK = 5079,
+ PseudoVFWSUB_ALT_VV_M4_E16 = 5080,
+ PseudoVFWSUB_ALT_VV_M4_E16_MASK = 5081,
+ PseudoVFWSUB_ALT_VV_MF2_E16 = 5082,
+ PseudoVFWSUB_ALT_VV_MF2_E16_MASK = 5083,
+ PseudoVFWSUB_ALT_VV_MF4_E16 = 5084,
+ PseudoVFWSUB_ALT_VV_MF4_E16_MASK = 5085,
+ PseudoVFWSUB_ALT_WFPR16_M1_E16 = 5086,
+ PseudoVFWSUB_ALT_WFPR16_M1_E16_MASK = 5087,
+ PseudoVFWSUB_ALT_WFPR16_M2_E16 = 5088,
+ PseudoVFWSUB_ALT_WFPR16_M2_E16_MASK = 5089,
+ PseudoVFWSUB_ALT_WFPR16_M4_E16 = 5090,
+ PseudoVFWSUB_ALT_WFPR16_M4_E16_MASK = 5091,
+ PseudoVFWSUB_ALT_WFPR16_MF2_E16 = 5092,
+ PseudoVFWSUB_ALT_WFPR16_MF2_E16_MASK = 5093,
+ PseudoVFWSUB_ALT_WFPR16_MF4_E16 = 5094,
+ PseudoVFWSUB_ALT_WFPR16_MF4_E16_MASK = 5095,
+ PseudoVFWSUB_ALT_WV_M1_E16 = 5096,
+ PseudoVFWSUB_ALT_WV_M1_E16_MASK = 5097,
+ PseudoVFWSUB_ALT_WV_M1_E16_MASK_TIED = 5098,
+ PseudoVFWSUB_ALT_WV_M1_E16_TIED = 5099,
+ PseudoVFWSUB_ALT_WV_M2_E16 = 5100,
+ PseudoVFWSUB_ALT_WV_M2_E16_MASK = 5101,
+ PseudoVFWSUB_ALT_WV_M2_E16_MASK_TIED = 5102,
+ PseudoVFWSUB_ALT_WV_M2_E16_TIED = 5103,
+ PseudoVFWSUB_ALT_WV_M4_E16 = 5104,
+ PseudoVFWSUB_ALT_WV_M4_E16_MASK = 5105,
+ PseudoVFWSUB_ALT_WV_M4_E16_MASK_TIED = 5106,
+ PseudoVFWSUB_ALT_WV_M4_E16_TIED = 5107,
+ PseudoVFWSUB_ALT_WV_MF2_E16 = 5108,
+ PseudoVFWSUB_ALT_WV_MF2_E16_MASK = 5109,
+ PseudoVFWSUB_ALT_WV_MF2_E16_MASK_TIED = 5110,
+ PseudoVFWSUB_ALT_WV_MF2_E16_TIED = 5111,
+ PseudoVFWSUB_ALT_WV_MF4_E16 = 5112,
+ PseudoVFWSUB_ALT_WV_MF4_E16_MASK = 5113,
+ PseudoVFWSUB_ALT_WV_MF4_E16_MASK_TIED = 5114,
+ PseudoVFWSUB_ALT_WV_MF4_E16_TIED = 5115,
+ PseudoVFWSUB_VFPR16_M1_E16 = 5116,
+ PseudoVFWSUB_VFPR16_M1_E16_MASK = 5117,
+ PseudoVFWSUB_VFPR16_M2_E16 = 5118,
+ PseudoVFWSUB_VFPR16_M2_E16_MASK = 5119,
+ PseudoVFWSUB_VFPR16_M4_E16 = 5120,
+ PseudoVFWSUB_VFPR16_M4_E16_MASK = 5121,
+ PseudoVFWSUB_VFPR16_MF2_E16 = 5122,
+ PseudoVFWSUB_VFPR16_MF2_E16_MASK = 5123,
+ PseudoVFWSUB_VFPR16_MF4_E16 = 5124,
+ PseudoVFWSUB_VFPR16_MF4_E16_MASK = 5125,
+ PseudoVFWSUB_VFPR32_M1_E32 = 5126,
+ PseudoVFWSUB_VFPR32_M1_E32_MASK = 5127,
+ PseudoVFWSUB_VFPR32_M2_E32 = 5128,
+ PseudoVFWSUB_VFPR32_M2_E32_MASK = 5129,
+ PseudoVFWSUB_VFPR32_M4_E32 = 5130,
+ PseudoVFWSUB_VFPR32_M4_E32_MASK = 5131,
+ PseudoVFWSUB_VFPR32_MF2_E32 = 5132,
+ PseudoVFWSUB_VFPR32_MF2_E32_MASK = 5133,
+ PseudoVFWSUB_VV_M1_E16 = 5134,
+ PseudoVFWSUB_VV_M1_E16_MASK = 5135,
+ PseudoVFWSUB_VV_M1_E32 = 5136,
+ PseudoVFWSUB_VV_M1_E32_MASK = 5137,
+ PseudoVFWSUB_VV_M2_E16 = 5138,
+ PseudoVFWSUB_VV_M2_E16_MASK = 5139,
+ PseudoVFWSUB_VV_M2_E32 = 5140,
+ PseudoVFWSUB_VV_M2_E32_MASK = 5141,
+ PseudoVFWSUB_VV_M4_E16 = 5142,
+ PseudoVFWSUB_VV_M4_E16_MASK = 5143,
+ PseudoVFWSUB_VV_M4_E32 = 5144,
+ PseudoVFWSUB_VV_M4_E32_MASK = 5145,
+ PseudoVFWSUB_VV_MF2_E16 = 5146,
+ PseudoVFWSUB_VV_MF2_E16_MASK = 5147,
+ PseudoVFWSUB_VV_MF2_E32 = 5148,
+ PseudoVFWSUB_VV_MF2_E32_MASK = 5149,
+ PseudoVFWSUB_VV_MF4_E16 = 5150,
+ PseudoVFWSUB_VV_MF4_E16_MASK = 5151,
+ PseudoVFWSUB_WFPR16_M1_E16 = 5152,
+ PseudoVFWSUB_WFPR16_M1_E16_MASK = 5153,
+ PseudoVFWSUB_WFPR16_M2_E16 = 5154,
+ PseudoVFWSUB_WFPR16_M2_E16_MASK = 5155,
+ PseudoVFWSUB_WFPR16_M4_E16 = 5156,
+ PseudoVFWSUB_WFPR16_M4_E16_MASK = 5157,
+ PseudoVFWSUB_WFPR16_MF2_E16 = 5158,
+ PseudoVFWSUB_WFPR16_MF2_E16_MASK = 5159,
+ PseudoVFWSUB_WFPR16_MF4_E16 = 5160,
+ PseudoVFWSUB_WFPR16_MF4_E16_MASK = 5161,
+ PseudoVFWSUB_WFPR32_M1_E32 = 5162,
+ PseudoVFWSUB_WFPR32_M1_E32_MASK = 5163,
+ PseudoVFWSUB_WFPR32_M2_E32 = 5164,
+ PseudoVFWSUB_WFPR32_M2_E32_MASK = 5165,
+ PseudoVFWSUB_WFPR32_M4_E32 = 5166,
+ PseudoVFWSUB_WFPR32_M4_E32_MASK = 5167,
+ PseudoVFWSUB_WFPR32_MF2_E32 = 5168,
+ PseudoVFWSUB_WFPR32_MF2_E32_MASK = 5169,
+ PseudoVFWSUB_WV_M1_E16 = 5170,
+ PseudoVFWSUB_WV_M1_E16_MASK = 5171,
+ PseudoVFWSUB_WV_M1_E16_MASK_TIED = 5172,
+ PseudoVFWSUB_WV_M1_E16_TIED = 5173,
+ PseudoVFWSUB_WV_M1_E32 = 5174,
+ PseudoVFWSUB_WV_M1_E32_MASK = 5175,
+ PseudoVFWSUB_WV_M1_E32_MASK_TIED = 5176,
+ PseudoVFWSUB_WV_M1_E32_TIED = 5177,
+ PseudoVFWSUB_WV_M2_E16 = 5178,
+ PseudoVFWSUB_WV_M2_E16_MASK = 5179,
+ PseudoVFWSUB_WV_M2_E16_MASK_TIED = 5180,
+ PseudoVFWSUB_WV_M2_E16_TIED = 5181,
+ PseudoVFWSUB_WV_M2_E32 = 5182,
+ PseudoVFWSUB_WV_M2_E32_MASK = 5183,
+ PseudoVFWSUB_WV_M2_E32_MASK_TIED = 5184,
+ PseudoVFWSUB_WV_M2_E32_TIED = 5185,
+ PseudoVFWSUB_WV_M4_E16 = 5186,
+ PseudoVFWSUB_WV_M4_E16_MASK = 5187,
+ PseudoVFWSUB_WV_M4_E16_MASK_TIED = 5188,
+ PseudoVFWSUB_WV_M4_E16_TIED = 5189,
+ PseudoVFWSUB_WV_M4_E32 = 5190,
+ PseudoVFWSUB_WV_M4_E32_MASK = 5191,
+ PseudoVFWSUB_WV_M4_E32_MASK_TIED = 5192,
+ PseudoVFWSUB_WV_M4_E32_TIED = 5193,
+ PseudoVFWSUB_WV_MF2_E16 = 5194,
+ PseudoVFWSUB_WV_MF2_E16_MASK = 5195,
+ PseudoVFWSUB_WV_MF2_E16_MASK_TIED = 5196,
+ PseudoVFWSUB_WV_MF2_E16_TIED = 5197,
+ PseudoVFWSUB_WV_MF2_E32 = 5198,
+ PseudoVFWSUB_WV_MF2_E32_MASK = 5199,
+ PseudoVFWSUB_WV_MF2_E32_MASK_TIED = 5200,
+ PseudoVFWSUB_WV_MF2_E32_TIED = 5201,
+ PseudoVFWSUB_WV_MF4_E16 = 5202,
+ PseudoVFWSUB_WV_MF4_E16_MASK = 5203,
+ PseudoVFWSUB_WV_MF4_E16_MASK_TIED = 5204,
+ PseudoVFWSUB_WV_MF4_E16_TIED = 5205,
+ PseudoVGHSH_VV_M1 = 5206,
+ PseudoVGHSH_VV_M2 = 5207,
+ PseudoVGHSH_VV_M4 = 5208,
+ PseudoVGHSH_VV_M8 = 5209,
+ PseudoVGHSH_VV_MF2 = 5210,
+ PseudoVGMUL_VV_M1 = 5211,
+ PseudoVGMUL_VV_M2 = 5212,
+ PseudoVGMUL_VV_M4 = 5213,
+ PseudoVGMUL_VV_M8 = 5214,
+ PseudoVGMUL_VV_MF2 = 5215,
+ PseudoVID_V_M1 = 5216,
+ PseudoVID_V_M1_MASK = 5217,
+ PseudoVID_V_M2 = 5218,
+ PseudoVID_V_M2_MASK = 5219,
+ PseudoVID_V_M4 = 5220,
+ PseudoVID_V_M4_MASK = 5221,
+ PseudoVID_V_M8 = 5222,
+ PseudoVID_V_M8_MASK = 5223,
+ PseudoVID_V_MF2 = 5224,
+ PseudoVID_V_MF2_MASK = 5225,
+ PseudoVID_V_MF4 = 5226,
+ PseudoVID_V_MF4_MASK = 5227,
+ PseudoVID_V_MF8 = 5228,
+ PseudoVID_V_MF8_MASK = 5229,
+ PseudoVIOTA_M_M1 = 5230,
+ PseudoVIOTA_M_M1_MASK = 5231,
+ PseudoVIOTA_M_M2 = 5232,
+ PseudoVIOTA_M_M2_MASK = 5233,
+ PseudoVIOTA_M_M4 = 5234,
+ PseudoVIOTA_M_M4_MASK = 5235,
+ PseudoVIOTA_M_M8 = 5236,
+ PseudoVIOTA_M_M8_MASK = 5237,
+ PseudoVIOTA_M_MF2 = 5238,
+ PseudoVIOTA_M_MF2_MASK = 5239,
+ PseudoVIOTA_M_MF4 = 5240,
+ PseudoVIOTA_M_MF4_MASK = 5241,
+ PseudoVIOTA_M_MF8 = 5242,
+ PseudoVIOTA_M_MF8_MASK = 5243,
+ PseudoVLE16FF_V_M1 = 5244,
+ PseudoVLE16FF_V_M1_MASK = 5245,
+ PseudoVLE16FF_V_M2 = 5246,
+ PseudoVLE16FF_V_M2_MASK = 5247,
+ PseudoVLE16FF_V_M4 = 5248,
+ PseudoVLE16FF_V_M4_MASK = 5249,
+ PseudoVLE16FF_V_M8 = 5250,
+ PseudoVLE16FF_V_M8_MASK = 5251,
+ PseudoVLE16FF_V_MF2 = 5252,
+ PseudoVLE16FF_V_MF2_MASK = 5253,
+ PseudoVLE16FF_V_MF4 = 5254,
+ PseudoVLE16FF_V_MF4_MASK = 5255,
+ PseudoVLE16_V_M1 = 5256,
+ PseudoVLE16_V_M1_MASK = 5257,
+ PseudoVLE16_V_M2 = 5258,
+ PseudoVLE16_V_M2_MASK = 5259,
+ PseudoVLE16_V_M4 = 5260,
+ PseudoVLE16_V_M4_MASK = 5261,
+ PseudoVLE16_V_M8 = 5262,
+ PseudoVLE16_V_M8_MASK = 5263,
+ PseudoVLE16_V_MF2 = 5264,
+ PseudoVLE16_V_MF2_MASK = 5265,
+ PseudoVLE16_V_MF4 = 5266,
+ PseudoVLE16_V_MF4_MASK = 5267,
+ PseudoVLE32FF_V_M1 = 5268,
+ PseudoVLE32FF_V_M1_MASK = 5269,
+ PseudoVLE32FF_V_M2 = 5270,
+ PseudoVLE32FF_V_M2_MASK = 5271,
+ PseudoVLE32FF_V_M4 = 5272,
+ PseudoVLE32FF_V_M4_MASK = 5273,
+ PseudoVLE32FF_V_M8 = 5274,
+ PseudoVLE32FF_V_M8_MASK = 5275,
+ PseudoVLE32FF_V_MF2 = 5276,
+ PseudoVLE32FF_V_MF2_MASK = 5277,
+ PseudoVLE32_V_M1 = 5278,
+ PseudoVLE32_V_M1_MASK = 5279,
+ PseudoVLE32_V_M2 = 5280,
+ PseudoVLE32_V_M2_MASK = 5281,
+ PseudoVLE32_V_M4 = 5282,
+ PseudoVLE32_V_M4_MASK = 5283,
+ PseudoVLE32_V_M8 = 5284,
+ PseudoVLE32_V_M8_MASK = 5285,
+ PseudoVLE32_V_MF2 = 5286,
+ PseudoVLE32_V_MF2_MASK = 5287,
+ PseudoVLE64FF_V_M1 = 5288,
+ PseudoVLE64FF_V_M1_MASK = 5289,
+ PseudoVLE64FF_V_M2 = 5290,
+ PseudoVLE64FF_V_M2_MASK = 5291,
+ PseudoVLE64FF_V_M4 = 5292,
+ PseudoVLE64FF_V_M4_MASK = 5293,
+ PseudoVLE64FF_V_M8 = 5294,
+ PseudoVLE64FF_V_M8_MASK = 5295,
+ PseudoVLE64_V_M1 = 5296,
+ PseudoVLE64_V_M1_MASK = 5297,
+ PseudoVLE64_V_M2 = 5298,
+ PseudoVLE64_V_M2_MASK = 5299,
+ PseudoVLE64_V_M4 = 5300,
+ PseudoVLE64_V_M4_MASK = 5301,
+ PseudoVLE64_V_M8 = 5302,
+ PseudoVLE64_V_M8_MASK = 5303,
+ PseudoVLE8FF_V_M1 = 5304,
+ PseudoVLE8FF_V_M1_MASK = 5305,
+ PseudoVLE8FF_V_M2 = 5306,
+ PseudoVLE8FF_V_M2_MASK = 5307,
+ PseudoVLE8FF_V_M4 = 5308,
+ PseudoVLE8FF_V_M4_MASK = 5309,
+ PseudoVLE8FF_V_M8 = 5310,
+ PseudoVLE8FF_V_M8_MASK = 5311,
+ PseudoVLE8FF_V_MF2 = 5312,
+ PseudoVLE8FF_V_MF2_MASK = 5313,
+ PseudoVLE8FF_V_MF4 = 5314,
+ PseudoVLE8FF_V_MF4_MASK = 5315,
+ PseudoVLE8FF_V_MF8 = 5316,
+ PseudoVLE8FF_V_MF8_MASK = 5317,
+ PseudoVLE8_V_M1 = 5318,
+ PseudoVLE8_V_M1_MASK = 5319,
+ PseudoVLE8_V_M2 = 5320,
+ PseudoVLE8_V_M2_MASK = 5321,
+ PseudoVLE8_V_M4 = 5322,
+ PseudoVLE8_V_M4_MASK = 5323,
+ PseudoVLE8_V_M8 = 5324,
+ PseudoVLE8_V_M8_MASK = 5325,
+ PseudoVLE8_V_MF2 = 5326,
+ PseudoVLE8_V_MF2_MASK = 5327,
+ PseudoVLE8_V_MF4 = 5328,
+ PseudoVLE8_V_MF4_MASK = 5329,
+ PseudoVLE8_V_MF8 = 5330,
+ PseudoVLE8_V_MF8_MASK = 5331,
+ PseudoVLM_V_B1 = 5332,
+ PseudoVLM_V_B16 = 5333,
+ PseudoVLM_V_B2 = 5334,
+ PseudoVLM_V_B32 = 5335,
+ PseudoVLM_V_B4 = 5336,
+ PseudoVLM_V_B64 = 5337,
+ PseudoVLM_V_B8 = 5338,
+ PseudoVLOXEI16_V_M1_M1 = 5339,
+ PseudoVLOXEI16_V_M1_M1_MASK = 5340,
+ PseudoVLOXEI16_V_M1_M2 = 5341,
+ PseudoVLOXEI16_V_M1_M2_MASK = 5342,
+ PseudoVLOXEI16_V_M1_M4 = 5343,
+ PseudoVLOXEI16_V_M1_M4_MASK = 5344,
+ PseudoVLOXEI16_V_M1_MF2 = 5345,
+ PseudoVLOXEI16_V_M1_MF2_MASK = 5346,
+ PseudoVLOXEI16_V_M2_M1 = 5347,
+ PseudoVLOXEI16_V_M2_M1_MASK = 5348,
+ PseudoVLOXEI16_V_M2_M2 = 5349,
+ PseudoVLOXEI16_V_M2_M2_MASK = 5350,
+ PseudoVLOXEI16_V_M2_M4 = 5351,
+ PseudoVLOXEI16_V_M2_M4_MASK = 5352,
+ PseudoVLOXEI16_V_M2_M8 = 5353,
+ PseudoVLOXEI16_V_M2_M8_MASK = 5354,
+ PseudoVLOXEI16_V_M4_M2 = 5355,
+ PseudoVLOXEI16_V_M4_M2_MASK = 5356,
+ PseudoVLOXEI16_V_M4_M4 = 5357,
+ PseudoVLOXEI16_V_M4_M4_MASK = 5358,
+ PseudoVLOXEI16_V_M4_M8 = 5359,
+ PseudoVLOXEI16_V_M4_M8_MASK = 5360,
+ PseudoVLOXEI16_V_M8_M4 = 5361,
+ PseudoVLOXEI16_V_M8_M4_MASK = 5362,
+ PseudoVLOXEI16_V_M8_M8 = 5363,
+ PseudoVLOXEI16_V_M8_M8_MASK = 5364,
+ PseudoVLOXEI16_V_MF2_M1 = 5365,
+ PseudoVLOXEI16_V_MF2_M1_MASK = 5366,
+ PseudoVLOXEI16_V_MF2_M2 = 5367,
+ PseudoVLOXEI16_V_MF2_M2_MASK = 5368,
+ PseudoVLOXEI16_V_MF2_MF2 = 5369,
+ PseudoVLOXEI16_V_MF2_MF2_MASK = 5370,
+ PseudoVLOXEI16_V_MF2_MF4 = 5371,
+ PseudoVLOXEI16_V_MF2_MF4_MASK = 5372,
+ PseudoVLOXEI16_V_MF4_M1 = 5373,
+ PseudoVLOXEI16_V_MF4_M1_MASK = 5374,
+ PseudoVLOXEI16_V_MF4_MF2 = 5375,
+ PseudoVLOXEI16_V_MF4_MF2_MASK = 5376,
+ PseudoVLOXEI16_V_MF4_MF4 = 5377,
+ PseudoVLOXEI16_V_MF4_MF4_MASK = 5378,
+ PseudoVLOXEI16_V_MF4_MF8 = 5379,
+ PseudoVLOXEI16_V_MF4_MF8_MASK = 5380,
+ PseudoVLOXEI32_V_M1_M1 = 5381,
+ PseudoVLOXEI32_V_M1_M1_MASK = 5382,
+ PseudoVLOXEI32_V_M1_M2 = 5383,
+ PseudoVLOXEI32_V_M1_M2_MASK = 5384,
+ PseudoVLOXEI32_V_M1_MF2 = 5385,
+ PseudoVLOXEI32_V_M1_MF2_MASK = 5386,
+ PseudoVLOXEI32_V_M1_MF4 = 5387,
+ PseudoVLOXEI32_V_M1_MF4_MASK = 5388,
+ PseudoVLOXEI32_V_M2_M1 = 5389,
+ PseudoVLOXEI32_V_M2_M1_MASK = 5390,
+ PseudoVLOXEI32_V_M2_M2 = 5391,
+ PseudoVLOXEI32_V_M2_M2_MASK = 5392,
+ PseudoVLOXEI32_V_M2_M4 = 5393,
+ PseudoVLOXEI32_V_M2_M4_MASK = 5394,
+ PseudoVLOXEI32_V_M2_MF2 = 5395,
+ PseudoVLOXEI32_V_M2_MF2_MASK = 5396,
+ PseudoVLOXEI32_V_M4_M1 = 5397,
+ PseudoVLOXEI32_V_M4_M1_MASK = 5398,
+ PseudoVLOXEI32_V_M4_M2 = 5399,
+ PseudoVLOXEI32_V_M4_M2_MASK = 5400,
+ PseudoVLOXEI32_V_M4_M4 = 5401,
+ PseudoVLOXEI32_V_M4_M4_MASK = 5402,
+ PseudoVLOXEI32_V_M4_M8 = 5403,
+ PseudoVLOXEI32_V_M4_M8_MASK = 5404,
+ PseudoVLOXEI32_V_M8_M2 = 5405,
+ PseudoVLOXEI32_V_M8_M2_MASK = 5406,
+ PseudoVLOXEI32_V_M8_M4 = 5407,
+ PseudoVLOXEI32_V_M8_M4_MASK = 5408,
+ PseudoVLOXEI32_V_M8_M8 = 5409,
+ PseudoVLOXEI32_V_M8_M8_MASK = 5410,
+ PseudoVLOXEI32_V_MF2_M1 = 5411,
+ PseudoVLOXEI32_V_MF2_M1_MASK = 5412,
+ PseudoVLOXEI32_V_MF2_MF2 = 5413,
+ PseudoVLOXEI32_V_MF2_MF2_MASK = 5414,
+ PseudoVLOXEI32_V_MF2_MF4 = 5415,
+ PseudoVLOXEI32_V_MF2_MF4_MASK = 5416,
+ PseudoVLOXEI32_V_MF2_MF8 = 5417,
+ PseudoVLOXEI32_V_MF2_MF8_MASK = 5418,
+ PseudoVLOXEI64_V_M1_M1 = 5419,
+ PseudoVLOXEI64_V_M1_M1_MASK = 5420,
+ PseudoVLOXEI64_V_M1_MF2 = 5421,
+ PseudoVLOXEI64_V_M1_MF2_MASK = 5422,
+ PseudoVLOXEI64_V_M1_MF4 = 5423,
+ PseudoVLOXEI64_V_M1_MF4_MASK = 5424,
+ PseudoVLOXEI64_V_M1_MF8 = 5425,
+ PseudoVLOXEI64_V_M1_MF8_MASK = 5426,
+ PseudoVLOXEI64_V_M2_M1 = 5427,
+ PseudoVLOXEI64_V_M2_M1_MASK = 5428,
+ PseudoVLOXEI64_V_M2_M2 = 5429,
+ PseudoVLOXEI64_V_M2_M2_MASK = 5430,
+ PseudoVLOXEI64_V_M2_MF2 = 5431,
+ PseudoVLOXEI64_V_M2_MF2_MASK = 5432,
+ PseudoVLOXEI64_V_M2_MF4 = 5433,
+ PseudoVLOXEI64_V_M2_MF4_MASK = 5434,
+ PseudoVLOXEI64_V_M4_M1 = 5435,
+ PseudoVLOXEI64_V_M4_M1_MASK = 5436,
+ PseudoVLOXEI64_V_M4_M2 = 5437,
+ PseudoVLOXEI64_V_M4_M2_MASK = 5438,
+ PseudoVLOXEI64_V_M4_M4 = 5439,
+ PseudoVLOXEI64_V_M4_M4_MASK = 5440,
+ PseudoVLOXEI64_V_M4_MF2 = 5441,
+ PseudoVLOXEI64_V_M4_MF2_MASK = 5442,
+ PseudoVLOXEI64_V_M8_M1 = 5443,
+ PseudoVLOXEI64_V_M8_M1_MASK = 5444,
+ PseudoVLOXEI64_V_M8_M2 = 5445,
+ PseudoVLOXEI64_V_M8_M2_MASK = 5446,
+ PseudoVLOXEI64_V_M8_M4 = 5447,
+ PseudoVLOXEI64_V_M8_M4_MASK = 5448,
+ PseudoVLOXEI64_V_M8_M8 = 5449,
+ PseudoVLOXEI64_V_M8_M8_MASK = 5450,
+ PseudoVLOXEI8_V_M1_M1 = 5451,
+ PseudoVLOXEI8_V_M1_M1_MASK = 5452,
+ PseudoVLOXEI8_V_M1_M2 = 5453,
+ PseudoVLOXEI8_V_M1_M2_MASK = 5454,
+ PseudoVLOXEI8_V_M1_M4 = 5455,
+ PseudoVLOXEI8_V_M1_M4_MASK = 5456,
+ PseudoVLOXEI8_V_M1_M8 = 5457,
+ PseudoVLOXEI8_V_M1_M8_MASK = 5458,
+ PseudoVLOXEI8_V_M2_M2 = 5459,
+ PseudoVLOXEI8_V_M2_M2_MASK = 5460,
+ PseudoVLOXEI8_V_M2_M4 = 5461,
+ PseudoVLOXEI8_V_M2_M4_MASK = 5462,
+ PseudoVLOXEI8_V_M2_M8 = 5463,
+ PseudoVLOXEI8_V_M2_M8_MASK = 5464,
+ PseudoVLOXEI8_V_M4_M4 = 5465,
+ PseudoVLOXEI8_V_M4_M4_MASK = 5466,
+ PseudoVLOXEI8_V_M4_M8 = 5467,
+ PseudoVLOXEI8_V_M4_M8_MASK = 5468,
+ PseudoVLOXEI8_V_M8_M8 = 5469,
+ PseudoVLOXEI8_V_M8_M8_MASK = 5470,
+ PseudoVLOXEI8_V_MF2_M1 = 5471,
+ PseudoVLOXEI8_V_MF2_M1_MASK = 5472,
+ PseudoVLOXEI8_V_MF2_M2 = 5473,
+ PseudoVLOXEI8_V_MF2_M2_MASK = 5474,
+ PseudoVLOXEI8_V_MF2_M4 = 5475,
+ PseudoVLOXEI8_V_MF2_M4_MASK = 5476,
+ PseudoVLOXEI8_V_MF2_MF2 = 5477,
+ PseudoVLOXEI8_V_MF2_MF2_MASK = 5478,
+ PseudoVLOXEI8_V_MF4_M1 = 5479,
+ PseudoVLOXEI8_V_MF4_M1_MASK = 5480,
+ PseudoVLOXEI8_V_MF4_M2 = 5481,
+ PseudoVLOXEI8_V_MF4_M2_MASK = 5482,
+ PseudoVLOXEI8_V_MF4_MF2 = 5483,
+ PseudoVLOXEI8_V_MF4_MF2_MASK = 5484,
+ PseudoVLOXEI8_V_MF4_MF4 = 5485,
+ PseudoVLOXEI8_V_MF4_MF4_MASK = 5486,
+ PseudoVLOXEI8_V_MF8_M1 = 5487,
+ PseudoVLOXEI8_V_MF8_M1_MASK = 5488,
+ PseudoVLOXEI8_V_MF8_MF2 = 5489,
+ PseudoVLOXEI8_V_MF8_MF2_MASK = 5490,
+ PseudoVLOXEI8_V_MF8_MF4 = 5491,
+ PseudoVLOXEI8_V_MF8_MF4_MASK = 5492,
+ PseudoVLOXEI8_V_MF8_MF8 = 5493,
+ PseudoVLOXEI8_V_MF8_MF8_MASK = 5494,
+ PseudoVLOXSEG2EI16_V_M1_M1 = 5495,
+ PseudoVLOXSEG2EI16_V_M1_M1_MASK = 5496,
+ PseudoVLOXSEG2EI16_V_M1_M2 = 5497,
+ PseudoVLOXSEG2EI16_V_M1_M2_MASK = 5498,
+ PseudoVLOXSEG2EI16_V_M1_M4 = 5499,
+ PseudoVLOXSEG2EI16_V_M1_M4_MASK = 5500,
+ PseudoVLOXSEG2EI16_V_M1_MF2 = 5501,
+ PseudoVLOXSEG2EI16_V_M1_MF2_MASK = 5502,
+ PseudoVLOXSEG2EI16_V_M2_M1 = 5503,
+ PseudoVLOXSEG2EI16_V_M2_M1_MASK = 5504,
+ PseudoVLOXSEG2EI16_V_M2_M2 = 5505,
+ PseudoVLOXSEG2EI16_V_M2_M2_MASK = 5506,
+ PseudoVLOXSEG2EI16_V_M2_M4 = 5507,
+ PseudoVLOXSEG2EI16_V_M2_M4_MASK = 5508,
+ PseudoVLOXSEG2EI16_V_M4_M2 = 5509,
+ PseudoVLOXSEG2EI16_V_M4_M2_MASK = 5510,
+ PseudoVLOXSEG2EI16_V_M4_M4 = 5511,
+ PseudoVLOXSEG2EI16_V_M4_M4_MASK = 5512,
+ PseudoVLOXSEG2EI16_V_M8_M4 = 5513,
+ PseudoVLOXSEG2EI16_V_M8_M4_MASK = 5514,
+ PseudoVLOXSEG2EI16_V_MF2_M1 = 5515,
+ PseudoVLOXSEG2EI16_V_MF2_M1_MASK = 5516,
+ PseudoVLOXSEG2EI16_V_MF2_M2 = 5517,
+ PseudoVLOXSEG2EI16_V_MF2_M2_MASK = 5518,
+ PseudoVLOXSEG2EI16_V_MF2_MF2 = 5519,
+ PseudoVLOXSEG2EI16_V_MF2_MF2_MASK = 5520,
+ PseudoVLOXSEG2EI16_V_MF2_MF4 = 5521,
+ PseudoVLOXSEG2EI16_V_MF2_MF4_MASK = 5522,
+ PseudoVLOXSEG2EI16_V_MF4_M1 = 5523,
+ PseudoVLOXSEG2EI16_V_MF4_M1_MASK = 5524,
+ PseudoVLOXSEG2EI16_V_MF4_MF2 = 5525,
+ PseudoVLOXSEG2EI16_V_MF4_MF2_MASK = 5526,
+ PseudoVLOXSEG2EI16_V_MF4_MF4 = 5527,
+ PseudoVLOXSEG2EI16_V_MF4_MF4_MASK = 5528,
+ PseudoVLOXSEG2EI16_V_MF4_MF8 = 5529,
+ PseudoVLOXSEG2EI16_V_MF4_MF8_MASK = 5530,
+ PseudoVLOXSEG2EI32_V_M1_M1 = 5531,
+ PseudoVLOXSEG2EI32_V_M1_M1_MASK = 5532,
+ PseudoVLOXSEG2EI32_V_M1_M2 = 5533,
+ PseudoVLOXSEG2EI32_V_M1_M2_MASK = 5534,
+ PseudoVLOXSEG2EI32_V_M1_MF2 = 5535,
+ PseudoVLOXSEG2EI32_V_M1_MF2_MASK = 5536,
+ PseudoVLOXSEG2EI32_V_M1_MF4 = 5537,
+ PseudoVLOXSEG2EI32_V_M1_MF4_MASK = 5538,
+ PseudoVLOXSEG2EI32_V_M2_M1 = 5539,
+ PseudoVLOXSEG2EI32_V_M2_M1_MASK = 5540,
+ PseudoVLOXSEG2EI32_V_M2_M2 = 5541,
+ PseudoVLOXSEG2EI32_V_M2_M2_MASK = 5542,
+ PseudoVLOXSEG2EI32_V_M2_M4 = 5543,
+ PseudoVLOXSEG2EI32_V_M2_M4_MASK = 5544,
+ PseudoVLOXSEG2EI32_V_M2_MF2 = 5545,
+ PseudoVLOXSEG2EI32_V_M2_MF2_MASK = 5546,
+ PseudoVLOXSEG2EI32_V_M4_M1 = 5547,
+ PseudoVLOXSEG2EI32_V_M4_M1_MASK = 5548,
+ PseudoVLOXSEG2EI32_V_M4_M2 = 5549,
+ PseudoVLOXSEG2EI32_V_M4_M2_MASK = 5550,
+ PseudoVLOXSEG2EI32_V_M4_M4 = 5551,
+ PseudoVLOXSEG2EI32_V_M4_M4_MASK = 5552,
+ PseudoVLOXSEG2EI32_V_M8_M2 = 5553,
+ PseudoVLOXSEG2EI32_V_M8_M2_MASK = 5554,
+ PseudoVLOXSEG2EI32_V_M8_M4 = 5555,
+ PseudoVLOXSEG2EI32_V_M8_M4_MASK = 5556,
+ PseudoVLOXSEG2EI32_V_MF2_M1 = 5557,
+ PseudoVLOXSEG2EI32_V_MF2_M1_MASK = 5558,
+ PseudoVLOXSEG2EI32_V_MF2_MF2 = 5559,
+ PseudoVLOXSEG2EI32_V_MF2_MF2_MASK = 5560,
+ PseudoVLOXSEG2EI32_V_MF2_MF4 = 5561,
+ PseudoVLOXSEG2EI32_V_MF2_MF4_MASK = 5562,
+ PseudoVLOXSEG2EI32_V_MF2_MF8 = 5563,
+ PseudoVLOXSEG2EI32_V_MF2_MF8_MASK = 5564,
+ PseudoVLOXSEG2EI64_V_M1_M1 = 5565,
+ PseudoVLOXSEG2EI64_V_M1_M1_MASK = 5566,
+ PseudoVLOXSEG2EI64_V_M1_MF2 = 5567,
+ PseudoVLOXSEG2EI64_V_M1_MF2_MASK = 5568,
+ PseudoVLOXSEG2EI64_V_M1_MF4 = 5569,
+ PseudoVLOXSEG2EI64_V_M1_MF4_MASK = 5570,
+ PseudoVLOXSEG2EI64_V_M1_MF8 = 5571,
+ PseudoVLOXSEG2EI64_V_M1_MF8_MASK = 5572,
+ PseudoVLOXSEG2EI64_V_M2_M1 = 5573,
+ PseudoVLOXSEG2EI64_V_M2_M1_MASK = 5574,
+ PseudoVLOXSEG2EI64_V_M2_M2 = 5575,
+ PseudoVLOXSEG2EI64_V_M2_M2_MASK = 5576,
+ PseudoVLOXSEG2EI64_V_M2_MF2 = 5577,
+ PseudoVLOXSEG2EI64_V_M2_MF2_MASK = 5578,
+ PseudoVLOXSEG2EI64_V_M2_MF4 = 5579,
+ PseudoVLOXSEG2EI64_V_M2_MF4_MASK = 5580,
+ PseudoVLOXSEG2EI64_V_M4_M1 = 5581,
+ PseudoVLOXSEG2EI64_V_M4_M1_MASK = 5582,
+ PseudoVLOXSEG2EI64_V_M4_M2 = 5583,
+ PseudoVLOXSEG2EI64_V_M4_M2_MASK = 5584,
+ PseudoVLOXSEG2EI64_V_M4_M4 = 5585,
+ PseudoVLOXSEG2EI64_V_M4_M4_MASK = 5586,
+ PseudoVLOXSEG2EI64_V_M4_MF2 = 5587,
+ PseudoVLOXSEG2EI64_V_M4_MF2_MASK = 5588,
+ PseudoVLOXSEG2EI64_V_M8_M1 = 5589,
+ PseudoVLOXSEG2EI64_V_M8_M1_MASK = 5590,
+ PseudoVLOXSEG2EI64_V_M8_M2 = 5591,
+ PseudoVLOXSEG2EI64_V_M8_M2_MASK = 5592,
+ PseudoVLOXSEG2EI64_V_M8_M4 = 5593,
+ PseudoVLOXSEG2EI64_V_M8_M4_MASK = 5594,
+ PseudoVLOXSEG2EI8_V_M1_M1 = 5595,
+ PseudoVLOXSEG2EI8_V_M1_M1_MASK = 5596,
+ PseudoVLOXSEG2EI8_V_M1_M2 = 5597,
+ PseudoVLOXSEG2EI8_V_M1_M2_MASK = 5598,
+ PseudoVLOXSEG2EI8_V_M1_M4 = 5599,
+ PseudoVLOXSEG2EI8_V_M1_M4_MASK = 5600,
+ PseudoVLOXSEG2EI8_V_M2_M2 = 5601,
+ PseudoVLOXSEG2EI8_V_M2_M2_MASK = 5602,
+ PseudoVLOXSEG2EI8_V_M2_M4 = 5603,
+ PseudoVLOXSEG2EI8_V_M2_M4_MASK = 5604,
+ PseudoVLOXSEG2EI8_V_M4_M4 = 5605,
+ PseudoVLOXSEG2EI8_V_M4_M4_MASK = 5606,
+ PseudoVLOXSEG2EI8_V_MF2_M1 = 5607,
+ PseudoVLOXSEG2EI8_V_MF2_M1_MASK = 5608,
+ PseudoVLOXSEG2EI8_V_MF2_M2 = 5609,
+ PseudoVLOXSEG2EI8_V_MF2_M2_MASK = 5610,
+ PseudoVLOXSEG2EI8_V_MF2_M4 = 5611,
+ PseudoVLOXSEG2EI8_V_MF2_M4_MASK = 5612,
+ PseudoVLOXSEG2EI8_V_MF2_MF2 = 5613,
+ PseudoVLOXSEG2EI8_V_MF2_MF2_MASK = 5614,
+ PseudoVLOXSEG2EI8_V_MF4_M1 = 5615,
+ PseudoVLOXSEG2EI8_V_MF4_M1_MASK = 5616,
+ PseudoVLOXSEG2EI8_V_MF4_M2 = 5617,
+ PseudoVLOXSEG2EI8_V_MF4_M2_MASK = 5618,
+ PseudoVLOXSEG2EI8_V_MF4_MF2 = 5619,
+ PseudoVLOXSEG2EI8_V_MF4_MF2_MASK = 5620,
+ PseudoVLOXSEG2EI8_V_MF4_MF4 = 5621,
+ PseudoVLOXSEG2EI8_V_MF4_MF4_MASK = 5622,
+ PseudoVLOXSEG2EI8_V_MF8_M1 = 5623,
+ PseudoVLOXSEG2EI8_V_MF8_M1_MASK = 5624,
+ PseudoVLOXSEG2EI8_V_MF8_MF2 = 5625,
+ PseudoVLOXSEG2EI8_V_MF8_MF2_MASK = 5626,
+ PseudoVLOXSEG2EI8_V_MF8_MF4 = 5627,
+ PseudoVLOXSEG2EI8_V_MF8_MF4_MASK = 5628,
+ PseudoVLOXSEG2EI8_V_MF8_MF8 = 5629,
+ PseudoVLOXSEG2EI8_V_MF8_MF8_MASK = 5630,
+ PseudoVLOXSEG3EI16_V_M1_M1 = 5631,
+ PseudoVLOXSEG3EI16_V_M1_M1_MASK = 5632,
+ PseudoVLOXSEG3EI16_V_M1_M2 = 5633,
+ PseudoVLOXSEG3EI16_V_M1_M2_MASK = 5634,
+ PseudoVLOXSEG3EI16_V_M1_MF2 = 5635,
+ PseudoVLOXSEG3EI16_V_M1_MF2_MASK = 5636,
+ PseudoVLOXSEG3EI16_V_M2_M1 = 5637,
+ PseudoVLOXSEG3EI16_V_M2_M1_MASK = 5638,
+ PseudoVLOXSEG3EI16_V_M2_M2 = 5639,
+ PseudoVLOXSEG3EI16_V_M2_M2_MASK = 5640,
+ PseudoVLOXSEG3EI16_V_M4_M2 = 5641,
+ PseudoVLOXSEG3EI16_V_M4_M2_MASK = 5642,
+ PseudoVLOXSEG3EI16_V_MF2_M1 = 5643,
+ PseudoVLOXSEG3EI16_V_MF2_M1_MASK = 5644,
+ PseudoVLOXSEG3EI16_V_MF2_M2 = 5645,
+ PseudoVLOXSEG3EI16_V_MF2_M2_MASK = 5646,
+ PseudoVLOXSEG3EI16_V_MF2_MF2 = 5647,
+ PseudoVLOXSEG3EI16_V_MF2_MF2_MASK = 5648,
+ PseudoVLOXSEG3EI16_V_MF2_MF4 = 5649,
+ PseudoVLOXSEG3EI16_V_MF2_MF4_MASK = 5650,
+ PseudoVLOXSEG3EI16_V_MF4_M1 = 5651,
+ PseudoVLOXSEG3EI16_V_MF4_M1_MASK = 5652,
+ PseudoVLOXSEG3EI16_V_MF4_MF2 = 5653,
+ PseudoVLOXSEG3EI16_V_MF4_MF2_MASK = 5654,
+ PseudoVLOXSEG3EI16_V_MF4_MF4 = 5655,
+ PseudoVLOXSEG3EI16_V_MF4_MF4_MASK = 5656,
+ PseudoVLOXSEG3EI16_V_MF4_MF8 = 5657,
+ PseudoVLOXSEG3EI16_V_MF4_MF8_MASK = 5658,
+ PseudoVLOXSEG3EI32_V_M1_M1 = 5659,
+ PseudoVLOXSEG3EI32_V_M1_M1_MASK = 5660,
+ PseudoVLOXSEG3EI32_V_M1_M2 = 5661,
+ PseudoVLOXSEG3EI32_V_M1_M2_MASK = 5662,
+ PseudoVLOXSEG3EI32_V_M1_MF2 = 5663,
+ PseudoVLOXSEG3EI32_V_M1_MF2_MASK = 5664,
+ PseudoVLOXSEG3EI32_V_M1_MF4 = 5665,
+ PseudoVLOXSEG3EI32_V_M1_MF4_MASK = 5666,
+ PseudoVLOXSEG3EI32_V_M2_M1 = 5667,
+ PseudoVLOXSEG3EI32_V_M2_M1_MASK = 5668,
+ PseudoVLOXSEG3EI32_V_M2_M2 = 5669,
+ PseudoVLOXSEG3EI32_V_M2_M2_MASK = 5670,
+ PseudoVLOXSEG3EI32_V_M2_MF2 = 5671,
+ PseudoVLOXSEG3EI32_V_M2_MF2_MASK = 5672,
+ PseudoVLOXSEG3EI32_V_M4_M1 = 5673,
+ PseudoVLOXSEG3EI32_V_M4_M1_MASK = 5674,
+ PseudoVLOXSEG3EI32_V_M4_M2 = 5675,
+ PseudoVLOXSEG3EI32_V_M4_M2_MASK = 5676,
+ PseudoVLOXSEG3EI32_V_M8_M2 = 5677,
+ PseudoVLOXSEG3EI32_V_M8_M2_MASK = 5678,
+ PseudoVLOXSEG3EI32_V_MF2_M1 = 5679,
+ PseudoVLOXSEG3EI32_V_MF2_M1_MASK = 5680,
+ PseudoVLOXSEG3EI32_V_MF2_MF2 = 5681,
+ PseudoVLOXSEG3EI32_V_MF2_MF2_MASK = 5682,
+ PseudoVLOXSEG3EI32_V_MF2_MF4 = 5683,
+ PseudoVLOXSEG3EI32_V_MF2_MF4_MASK = 5684,
+ PseudoVLOXSEG3EI32_V_MF2_MF8 = 5685,
+ PseudoVLOXSEG3EI32_V_MF2_MF8_MASK = 5686,
+ PseudoVLOXSEG3EI64_V_M1_M1 = 5687,
+ PseudoVLOXSEG3EI64_V_M1_M1_MASK = 5688,
+ PseudoVLOXSEG3EI64_V_M1_MF2 = 5689,
+ PseudoVLOXSEG3EI64_V_M1_MF2_MASK = 5690,
+ PseudoVLOXSEG3EI64_V_M1_MF4 = 5691,
+ PseudoVLOXSEG3EI64_V_M1_MF4_MASK = 5692,
+ PseudoVLOXSEG3EI64_V_M1_MF8 = 5693,
+ PseudoVLOXSEG3EI64_V_M1_MF8_MASK = 5694,
+ PseudoVLOXSEG3EI64_V_M2_M1 = 5695,
+ PseudoVLOXSEG3EI64_V_M2_M1_MASK = 5696,
+ PseudoVLOXSEG3EI64_V_M2_M2 = 5697,
+ PseudoVLOXSEG3EI64_V_M2_M2_MASK = 5698,
+ PseudoVLOXSEG3EI64_V_M2_MF2 = 5699,
+ PseudoVLOXSEG3EI64_V_M2_MF2_MASK = 5700,
+ PseudoVLOXSEG3EI64_V_M2_MF4 = 5701,
+ PseudoVLOXSEG3EI64_V_M2_MF4_MASK = 5702,
+ PseudoVLOXSEG3EI64_V_M4_M1 = 5703,
+ PseudoVLOXSEG3EI64_V_M4_M1_MASK = 5704,
+ PseudoVLOXSEG3EI64_V_M4_M2 = 5705,
+ PseudoVLOXSEG3EI64_V_M4_M2_MASK = 5706,
+ PseudoVLOXSEG3EI64_V_M4_MF2 = 5707,
+ PseudoVLOXSEG3EI64_V_M4_MF2_MASK = 5708,
+ PseudoVLOXSEG3EI64_V_M8_M1 = 5709,
+ PseudoVLOXSEG3EI64_V_M8_M1_MASK = 5710,
+ PseudoVLOXSEG3EI64_V_M8_M2 = 5711,
+ PseudoVLOXSEG3EI64_V_M8_M2_MASK = 5712,
+ PseudoVLOXSEG3EI8_V_M1_M1 = 5713,
+ PseudoVLOXSEG3EI8_V_M1_M1_MASK = 5714,
+ PseudoVLOXSEG3EI8_V_M1_M2 = 5715,
+ PseudoVLOXSEG3EI8_V_M1_M2_MASK = 5716,
+ PseudoVLOXSEG3EI8_V_M2_M2 = 5717,
+ PseudoVLOXSEG3EI8_V_M2_M2_MASK = 5718,
+ PseudoVLOXSEG3EI8_V_MF2_M1 = 5719,
+ PseudoVLOXSEG3EI8_V_MF2_M1_MASK = 5720,
+ PseudoVLOXSEG3EI8_V_MF2_M2 = 5721,
+ PseudoVLOXSEG3EI8_V_MF2_M2_MASK = 5722,
+ PseudoVLOXSEG3EI8_V_MF2_MF2 = 5723,
+ PseudoVLOXSEG3EI8_V_MF2_MF2_MASK = 5724,
+ PseudoVLOXSEG3EI8_V_MF4_M1 = 5725,
+ PseudoVLOXSEG3EI8_V_MF4_M1_MASK = 5726,
+ PseudoVLOXSEG3EI8_V_MF4_M2 = 5727,
+ PseudoVLOXSEG3EI8_V_MF4_M2_MASK = 5728,
+ PseudoVLOXSEG3EI8_V_MF4_MF2 = 5729,
+ PseudoVLOXSEG3EI8_V_MF4_MF2_MASK = 5730,
+ PseudoVLOXSEG3EI8_V_MF4_MF4 = 5731,
+ PseudoVLOXSEG3EI8_V_MF4_MF4_MASK = 5732,
+ PseudoVLOXSEG3EI8_V_MF8_M1 = 5733,
+ PseudoVLOXSEG3EI8_V_MF8_M1_MASK = 5734,
+ PseudoVLOXSEG3EI8_V_MF8_MF2 = 5735,
+ PseudoVLOXSEG3EI8_V_MF8_MF2_MASK = 5736,
+ PseudoVLOXSEG3EI8_V_MF8_MF4 = 5737,
+ PseudoVLOXSEG3EI8_V_MF8_MF4_MASK = 5738,
+ PseudoVLOXSEG3EI8_V_MF8_MF8 = 5739,
+ PseudoVLOXSEG3EI8_V_MF8_MF8_MASK = 5740,
+ PseudoVLOXSEG4EI16_V_M1_M1 = 5741,
+ PseudoVLOXSEG4EI16_V_M1_M1_MASK = 5742,
+ PseudoVLOXSEG4EI16_V_M1_M2 = 5743,
+ PseudoVLOXSEG4EI16_V_M1_M2_MASK = 5744,
+ PseudoVLOXSEG4EI16_V_M1_MF2 = 5745,
+ PseudoVLOXSEG4EI16_V_M1_MF2_MASK = 5746,
+ PseudoVLOXSEG4EI16_V_M2_M1 = 5747,
+ PseudoVLOXSEG4EI16_V_M2_M1_MASK = 5748,
+ PseudoVLOXSEG4EI16_V_M2_M2 = 5749,
+ PseudoVLOXSEG4EI16_V_M2_M2_MASK = 5750,
+ PseudoVLOXSEG4EI16_V_M4_M2 = 5751,
+ PseudoVLOXSEG4EI16_V_M4_M2_MASK = 5752,
+ PseudoVLOXSEG4EI16_V_MF2_M1 = 5753,
+ PseudoVLOXSEG4EI16_V_MF2_M1_MASK = 5754,
+ PseudoVLOXSEG4EI16_V_MF2_M2 = 5755,
+ PseudoVLOXSEG4EI16_V_MF2_M2_MASK = 5756,
+ PseudoVLOXSEG4EI16_V_MF2_MF2 = 5757,
+ PseudoVLOXSEG4EI16_V_MF2_MF2_MASK = 5758,
+ PseudoVLOXSEG4EI16_V_MF2_MF4 = 5759,
+ PseudoVLOXSEG4EI16_V_MF2_MF4_MASK = 5760,
+ PseudoVLOXSEG4EI16_V_MF4_M1 = 5761,
+ PseudoVLOXSEG4EI16_V_MF4_M1_MASK = 5762,
+ PseudoVLOXSEG4EI16_V_MF4_MF2 = 5763,
+ PseudoVLOXSEG4EI16_V_MF4_MF2_MASK = 5764,
+ PseudoVLOXSEG4EI16_V_MF4_MF4 = 5765,
+ PseudoVLOXSEG4EI16_V_MF4_MF4_MASK = 5766,
+ PseudoVLOXSEG4EI16_V_MF4_MF8 = 5767,
+ PseudoVLOXSEG4EI16_V_MF4_MF8_MASK = 5768,
+ PseudoVLOXSEG4EI32_V_M1_M1 = 5769,
+ PseudoVLOXSEG4EI32_V_M1_M1_MASK = 5770,
+ PseudoVLOXSEG4EI32_V_M1_M2 = 5771,
+ PseudoVLOXSEG4EI32_V_M1_M2_MASK = 5772,
+ PseudoVLOXSEG4EI32_V_M1_MF2 = 5773,
+ PseudoVLOXSEG4EI32_V_M1_MF2_MASK = 5774,
+ PseudoVLOXSEG4EI32_V_M1_MF4 = 5775,
+ PseudoVLOXSEG4EI32_V_M1_MF4_MASK = 5776,
+ PseudoVLOXSEG4EI32_V_M2_M1 = 5777,
+ PseudoVLOXSEG4EI32_V_M2_M1_MASK = 5778,
+ PseudoVLOXSEG4EI32_V_M2_M2 = 5779,
+ PseudoVLOXSEG4EI32_V_M2_M2_MASK = 5780,
+ PseudoVLOXSEG4EI32_V_M2_MF2 = 5781,
+ PseudoVLOXSEG4EI32_V_M2_MF2_MASK = 5782,
+ PseudoVLOXSEG4EI32_V_M4_M1 = 5783,
+ PseudoVLOXSEG4EI32_V_M4_M1_MASK = 5784,
+ PseudoVLOXSEG4EI32_V_M4_M2 = 5785,
+ PseudoVLOXSEG4EI32_V_M4_M2_MASK = 5786,
+ PseudoVLOXSEG4EI32_V_M8_M2 = 5787,
+ PseudoVLOXSEG4EI32_V_M8_M2_MASK = 5788,
+ PseudoVLOXSEG4EI32_V_MF2_M1 = 5789,
+ PseudoVLOXSEG4EI32_V_MF2_M1_MASK = 5790,
+ PseudoVLOXSEG4EI32_V_MF2_MF2 = 5791,
+ PseudoVLOXSEG4EI32_V_MF2_MF2_MASK = 5792,
+ PseudoVLOXSEG4EI32_V_MF2_MF4 = 5793,
+ PseudoVLOXSEG4EI32_V_MF2_MF4_MASK = 5794,
+ PseudoVLOXSEG4EI32_V_MF2_MF8 = 5795,
+ PseudoVLOXSEG4EI32_V_MF2_MF8_MASK = 5796,
+ PseudoVLOXSEG4EI64_V_M1_M1 = 5797,
+ PseudoVLOXSEG4EI64_V_M1_M1_MASK = 5798,
+ PseudoVLOXSEG4EI64_V_M1_MF2 = 5799,
+ PseudoVLOXSEG4EI64_V_M1_MF2_MASK = 5800,
+ PseudoVLOXSEG4EI64_V_M1_MF4 = 5801,
+ PseudoVLOXSEG4EI64_V_M1_MF4_MASK = 5802,
+ PseudoVLOXSEG4EI64_V_M1_MF8 = 5803,
+ PseudoVLOXSEG4EI64_V_M1_MF8_MASK = 5804,
+ PseudoVLOXSEG4EI64_V_M2_M1 = 5805,
+ PseudoVLOXSEG4EI64_V_M2_M1_MASK = 5806,
+ PseudoVLOXSEG4EI64_V_M2_M2 = 5807,
+ PseudoVLOXSEG4EI64_V_M2_M2_MASK = 5808,
+ PseudoVLOXSEG4EI64_V_M2_MF2 = 5809,
+ PseudoVLOXSEG4EI64_V_M2_MF2_MASK = 5810,
+ PseudoVLOXSEG4EI64_V_M2_MF4 = 5811,
+ PseudoVLOXSEG4EI64_V_M2_MF4_MASK = 5812,
+ PseudoVLOXSEG4EI64_V_M4_M1 = 5813,
+ PseudoVLOXSEG4EI64_V_M4_M1_MASK = 5814,
+ PseudoVLOXSEG4EI64_V_M4_M2 = 5815,
+ PseudoVLOXSEG4EI64_V_M4_M2_MASK = 5816,
+ PseudoVLOXSEG4EI64_V_M4_MF2 = 5817,
+ PseudoVLOXSEG4EI64_V_M4_MF2_MASK = 5818,
+ PseudoVLOXSEG4EI64_V_M8_M1 = 5819,
+ PseudoVLOXSEG4EI64_V_M8_M1_MASK = 5820,
+ PseudoVLOXSEG4EI64_V_M8_M2 = 5821,
+ PseudoVLOXSEG4EI64_V_M8_M2_MASK = 5822,
+ PseudoVLOXSEG4EI8_V_M1_M1 = 5823,
+ PseudoVLOXSEG4EI8_V_M1_M1_MASK = 5824,
+ PseudoVLOXSEG4EI8_V_M1_M2 = 5825,
+ PseudoVLOXSEG4EI8_V_M1_M2_MASK = 5826,
+ PseudoVLOXSEG4EI8_V_M2_M2 = 5827,
+ PseudoVLOXSEG4EI8_V_M2_M2_MASK = 5828,
+ PseudoVLOXSEG4EI8_V_MF2_M1 = 5829,
+ PseudoVLOXSEG4EI8_V_MF2_M1_MASK = 5830,
+ PseudoVLOXSEG4EI8_V_MF2_M2 = 5831,
+ PseudoVLOXSEG4EI8_V_MF2_M2_MASK = 5832,
+ PseudoVLOXSEG4EI8_V_MF2_MF2 = 5833,
+ PseudoVLOXSEG4EI8_V_MF2_MF2_MASK = 5834,
+ PseudoVLOXSEG4EI8_V_MF4_M1 = 5835,
+ PseudoVLOXSEG4EI8_V_MF4_M1_MASK = 5836,
+ PseudoVLOXSEG4EI8_V_MF4_M2 = 5837,
+ PseudoVLOXSEG4EI8_V_MF4_M2_MASK = 5838,
+ PseudoVLOXSEG4EI8_V_MF4_MF2 = 5839,
+ PseudoVLOXSEG4EI8_V_MF4_MF2_MASK = 5840,
+ PseudoVLOXSEG4EI8_V_MF4_MF4 = 5841,
+ PseudoVLOXSEG4EI8_V_MF4_MF4_MASK = 5842,
+ PseudoVLOXSEG4EI8_V_MF8_M1 = 5843,
+ PseudoVLOXSEG4EI8_V_MF8_M1_MASK = 5844,
+ PseudoVLOXSEG4EI8_V_MF8_MF2 = 5845,
+ PseudoVLOXSEG4EI8_V_MF8_MF2_MASK = 5846,
+ PseudoVLOXSEG4EI8_V_MF8_MF4 = 5847,
+ PseudoVLOXSEG4EI8_V_MF8_MF4_MASK = 5848,
+ PseudoVLOXSEG4EI8_V_MF8_MF8 = 5849,
+ PseudoVLOXSEG4EI8_V_MF8_MF8_MASK = 5850,
+ PseudoVLOXSEG5EI16_V_M1_M1 = 5851,
+ PseudoVLOXSEG5EI16_V_M1_M1_MASK = 5852,
+ PseudoVLOXSEG5EI16_V_M1_MF2 = 5853,
+ PseudoVLOXSEG5EI16_V_M1_MF2_MASK = 5854,
+ PseudoVLOXSEG5EI16_V_M2_M1 = 5855,
+ PseudoVLOXSEG5EI16_V_M2_M1_MASK = 5856,
+ PseudoVLOXSEG5EI16_V_MF2_M1 = 5857,
+ PseudoVLOXSEG5EI16_V_MF2_M1_MASK = 5858,
+ PseudoVLOXSEG5EI16_V_MF2_MF2 = 5859,
+ PseudoVLOXSEG5EI16_V_MF2_MF2_MASK = 5860,
+ PseudoVLOXSEG5EI16_V_MF2_MF4 = 5861,
+ PseudoVLOXSEG5EI16_V_MF2_MF4_MASK = 5862,
+ PseudoVLOXSEG5EI16_V_MF4_M1 = 5863,
+ PseudoVLOXSEG5EI16_V_MF4_M1_MASK = 5864,
+ PseudoVLOXSEG5EI16_V_MF4_MF2 = 5865,
+ PseudoVLOXSEG5EI16_V_MF4_MF2_MASK = 5866,
+ PseudoVLOXSEG5EI16_V_MF4_MF4 = 5867,
+ PseudoVLOXSEG5EI16_V_MF4_MF4_MASK = 5868,
+ PseudoVLOXSEG5EI16_V_MF4_MF8 = 5869,
+ PseudoVLOXSEG5EI16_V_MF4_MF8_MASK = 5870,
+ PseudoVLOXSEG5EI32_V_M1_M1 = 5871,
+ PseudoVLOXSEG5EI32_V_M1_M1_MASK = 5872,
+ PseudoVLOXSEG5EI32_V_M1_MF2 = 5873,
+ PseudoVLOXSEG5EI32_V_M1_MF2_MASK = 5874,
+ PseudoVLOXSEG5EI32_V_M1_MF4 = 5875,
+ PseudoVLOXSEG5EI32_V_M1_MF4_MASK = 5876,
+ PseudoVLOXSEG5EI32_V_M2_M1 = 5877,
+ PseudoVLOXSEG5EI32_V_M2_M1_MASK = 5878,
+ PseudoVLOXSEG5EI32_V_M2_MF2 = 5879,
+ PseudoVLOXSEG5EI32_V_M2_MF2_MASK = 5880,
+ PseudoVLOXSEG5EI32_V_M4_M1 = 5881,
+ PseudoVLOXSEG5EI32_V_M4_M1_MASK = 5882,
+ PseudoVLOXSEG5EI32_V_MF2_M1 = 5883,
+ PseudoVLOXSEG5EI32_V_MF2_M1_MASK = 5884,
+ PseudoVLOXSEG5EI32_V_MF2_MF2 = 5885,
+ PseudoVLOXSEG5EI32_V_MF2_MF2_MASK = 5886,
+ PseudoVLOXSEG5EI32_V_MF2_MF4 = 5887,
+ PseudoVLOXSEG5EI32_V_MF2_MF4_MASK = 5888,
+ PseudoVLOXSEG5EI32_V_MF2_MF8 = 5889,
+ PseudoVLOXSEG5EI32_V_MF2_MF8_MASK = 5890,
+ PseudoVLOXSEG5EI64_V_M1_M1 = 5891,
+ PseudoVLOXSEG5EI64_V_M1_M1_MASK = 5892,
+ PseudoVLOXSEG5EI64_V_M1_MF2 = 5893,
+ PseudoVLOXSEG5EI64_V_M1_MF2_MASK = 5894,
+ PseudoVLOXSEG5EI64_V_M1_MF4 = 5895,
+ PseudoVLOXSEG5EI64_V_M1_MF4_MASK = 5896,
+ PseudoVLOXSEG5EI64_V_M1_MF8 = 5897,
+ PseudoVLOXSEG5EI64_V_M1_MF8_MASK = 5898,
+ PseudoVLOXSEG5EI64_V_M2_M1 = 5899,
+ PseudoVLOXSEG5EI64_V_M2_M1_MASK = 5900,
+ PseudoVLOXSEG5EI64_V_M2_MF2 = 5901,
+ PseudoVLOXSEG5EI64_V_M2_MF2_MASK = 5902,
+ PseudoVLOXSEG5EI64_V_M2_MF4 = 5903,
+ PseudoVLOXSEG5EI64_V_M2_MF4_MASK = 5904,
+ PseudoVLOXSEG5EI64_V_M4_M1 = 5905,
+ PseudoVLOXSEG5EI64_V_M4_M1_MASK = 5906,
+ PseudoVLOXSEG5EI64_V_M4_MF2 = 5907,
+ PseudoVLOXSEG5EI64_V_M4_MF2_MASK = 5908,
+ PseudoVLOXSEG5EI64_V_M8_M1 = 5909,
+ PseudoVLOXSEG5EI64_V_M8_M1_MASK = 5910,
+ PseudoVLOXSEG5EI8_V_M1_M1 = 5911,
+ PseudoVLOXSEG5EI8_V_M1_M1_MASK = 5912,
+ PseudoVLOXSEG5EI8_V_MF2_M1 = 5913,
+ PseudoVLOXSEG5EI8_V_MF2_M1_MASK = 5914,
+ PseudoVLOXSEG5EI8_V_MF2_MF2 = 5915,
+ PseudoVLOXSEG5EI8_V_MF2_MF2_MASK = 5916,
+ PseudoVLOXSEG5EI8_V_MF4_M1 = 5917,
+ PseudoVLOXSEG5EI8_V_MF4_M1_MASK = 5918,
+ PseudoVLOXSEG5EI8_V_MF4_MF2 = 5919,
+ PseudoVLOXSEG5EI8_V_MF4_MF2_MASK = 5920,
+ PseudoVLOXSEG5EI8_V_MF4_MF4 = 5921,
+ PseudoVLOXSEG5EI8_V_MF4_MF4_MASK = 5922,
+ PseudoVLOXSEG5EI8_V_MF8_M1 = 5923,
+ PseudoVLOXSEG5EI8_V_MF8_M1_MASK = 5924,
+ PseudoVLOXSEG5EI8_V_MF8_MF2 = 5925,
+ PseudoVLOXSEG5EI8_V_MF8_MF2_MASK = 5926,
+ PseudoVLOXSEG5EI8_V_MF8_MF4 = 5927,
+ PseudoVLOXSEG5EI8_V_MF8_MF4_MASK = 5928,
+ PseudoVLOXSEG5EI8_V_MF8_MF8 = 5929,
+ PseudoVLOXSEG5EI8_V_MF8_MF8_MASK = 5930,
+ PseudoVLOXSEG6EI16_V_M1_M1 = 5931,
+ PseudoVLOXSEG6EI16_V_M1_M1_MASK = 5932,
+ PseudoVLOXSEG6EI16_V_M1_MF2 = 5933,
+ PseudoVLOXSEG6EI16_V_M1_MF2_MASK = 5934,
+ PseudoVLOXSEG6EI16_V_M2_M1 = 5935,
+ PseudoVLOXSEG6EI16_V_M2_M1_MASK = 5936,
+ PseudoVLOXSEG6EI16_V_MF2_M1 = 5937,
+ PseudoVLOXSEG6EI16_V_MF2_M1_MASK = 5938,
+ PseudoVLOXSEG6EI16_V_MF2_MF2 = 5939,
+ PseudoVLOXSEG6EI16_V_MF2_MF2_MASK = 5940,
+ PseudoVLOXSEG6EI16_V_MF2_MF4 = 5941,
+ PseudoVLOXSEG6EI16_V_MF2_MF4_MASK = 5942,
+ PseudoVLOXSEG6EI16_V_MF4_M1 = 5943,
+ PseudoVLOXSEG6EI16_V_MF4_M1_MASK = 5944,
+ PseudoVLOXSEG6EI16_V_MF4_MF2 = 5945,
+ PseudoVLOXSEG6EI16_V_MF4_MF2_MASK = 5946,
+ PseudoVLOXSEG6EI16_V_MF4_MF4 = 5947,
+ PseudoVLOXSEG6EI16_V_MF4_MF4_MASK = 5948,
+ PseudoVLOXSEG6EI16_V_MF4_MF8 = 5949,
+ PseudoVLOXSEG6EI16_V_MF4_MF8_MASK = 5950,
+ PseudoVLOXSEG6EI32_V_M1_M1 = 5951,
+ PseudoVLOXSEG6EI32_V_M1_M1_MASK = 5952,
+ PseudoVLOXSEG6EI32_V_M1_MF2 = 5953,
+ PseudoVLOXSEG6EI32_V_M1_MF2_MASK = 5954,
+ PseudoVLOXSEG6EI32_V_M1_MF4 = 5955,
+ PseudoVLOXSEG6EI32_V_M1_MF4_MASK = 5956,
+ PseudoVLOXSEG6EI32_V_M2_M1 = 5957,
+ PseudoVLOXSEG6EI32_V_M2_M1_MASK = 5958,
+ PseudoVLOXSEG6EI32_V_M2_MF2 = 5959,
+ PseudoVLOXSEG6EI32_V_M2_MF2_MASK = 5960,
+ PseudoVLOXSEG6EI32_V_M4_M1 = 5961,
+ PseudoVLOXSEG6EI32_V_M4_M1_MASK = 5962,
+ PseudoVLOXSEG6EI32_V_MF2_M1 = 5963,
+ PseudoVLOXSEG6EI32_V_MF2_M1_MASK = 5964,
+ PseudoVLOXSEG6EI32_V_MF2_MF2 = 5965,
+ PseudoVLOXSEG6EI32_V_MF2_MF2_MASK = 5966,
+ PseudoVLOXSEG6EI32_V_MF2_MF4 = 5967,
+ PseudoVLOXSEG6EI32_V_MF2_MF4_MASK = 5968,
+ PseudoVLOXSEG6EI32_V_MF2_MF8 = 5969,
+ PseudoVLOXSEG6EI32_V_MF2_MF8_MASK = 5970,
+ PseudoVLOXSEG6EI64_V_M1_M1 = 5971,
+ PseudoVLOXSEG6EI64_V_M1_M1_MASK = 5972,
+ PseudoVLOXSEG6EI64_V_M1_MF2 = 5973,
+ PseudoVLOXSEG6EI64_V_M1_MF2_MASK = 5974,
+ PseudoVLOXSEG6EI64_V_M1_MF4 = 5975,
+ PseudoVLOXSEG6EI64_V_M1_MF4_MASK = 5976,
+ PseudoVLOXSEG6EI64_V_M1_MF8 = 5977,
+ PseudoVLOXSEG6EI64_V_M1_MF8_MASK = 5978,
+ PseudoVLOXSEG6EI64_V_M2_M1 = 5979,
+ PseudoVLOXSEG6EI64_V_M2_M1_MASK = 5980,
+ PseudoVLOXSEG6EI64_V_M2_MF2 = 5981,
+ PseudoVLOXSEG6EI64_V_M2_MF2_MASK = 5982,
+ PseudoVLOXSEG6EI64_V_M2_MF4 = 5983,
+ PseudoVLOXSEG6EI64_V_M2_MF4_MASK = 5984,
+ PseudoVLOXSEG6EI64_V_M4_M1 = 5985,
+ PseudoVLOXSEG6EI64_V_M4_M1_MASK = 5986,
+ PseudoVLOXSEG6EI64_V_M4_MF2 = 5987,
+ PseudoVLOXSEG6EI64_V_M4_MF2_MASK = 5988,
+ PseudoVLOXSEG6EI64_V_M8_M1 = 5989,
+ PseudoVLOXSEG6EI64_V_M8_M1_MASK = 5990,
+ PseudoVLOXSEG6EI8_V_M1_M1 = 5991,
+ PseudoVLOXSEG6EI8_V_M1_M1_MASK = 5992,
+ PseudoVLOXSEG6EI8_V_MF2_M1 = 5993,
+ PseudoVLOXSEG6EI8_V_MF2_M1_MASK = 5994,
+ PseudoVLOXSEG6EI8_V_MF2_MF2 = 5995,
+ PseudoVLOXSEG6EI8_V_MF2_MF2_MASK = 5996,
+ PseudoVLOXSEG6EI8_V_MF4_M1 = 5997,
+ PseudoVLOXSEG6EI8_V_MF4_M1_MASK = 5998,
+ PseudoVLOXSEG6EI8_V_MF4_MF2 = 5999,
+ PseudoVLOXSEG6EI8_V_MF4_MF2_MASK = 6000,
+ PseudoVLOXSEG6EI8_V_MF4_MF4 = 6001,
+ PseudoVLOXSEG6EI8_V_MF4_MF4_MASK = 6002,
+ PseudoVLOXSEG6EI8_V_MF8_M1 = 6003,
+ PseudoVLOXSEG6EI8_V_MF8_M1_MASK = 6004,
+ PseudoVLOXSEG6EI8_V_MF8_MF2 = 6005,
+ PseudoVLOXSEG6EI8_V_MF8_MF2_MASK = 6006,
+ PseudoVLOXSEG6EI8_V_MF8_MF4 = 6007,
+ PseudoVLOXSEG6EI8_V_MF8_MF4_MASK = 6008,
+ PseudoVLOXSEG6EI8_V_MF8_MF8 = 6009,
+ PseudoVLOXSEG6EI8_V_MF8_MF8_MASK = 6010,
+ PseudoVLOXSEG7EI16_V_M1_M1 = 6011,
+ PseudoVLOXSEG7EI16_V_M1_M1_MASK = 6012,
+ PseudoVLOXSEG7EI16_V_M1_MF2 = 6013,
+ PseudoVLOXSEG7EI16_V_M1_MF2_MASK = 6014,
+ PseudoVLOXSEG7EI16_V_M2_M1 = 6015,
+ PseudoVLOXSEG7EI16_V_M2_M1_MASK = 6016,
+ PseudoVLOXSEG7EI16_V_MF2_M1 = 6017,
+ PseudoVLOXSEG7EI16_V_MF2_M1_MASK = 6018,
+ PseudoVLOXSEG7EI16_V_MF2_MF2 = 6019,
+ PseudoVLOXSEG7EI16_V_MF2_MF2_MASK = 6020,
+ PseudoVLOXSEG7EI16_V_MF2_MF4 = 6021,
+ PseudoVLOXSEG7EI16_V_MF2_MF4_MASK = 6022,
+ PseudoVLOXSEG7EI16_V_MF4_M1 = 6023,
+ PseudoVLOXSEG7EI16_V_MF4_M1_MASK = 6024,
+ PseudoVLOXSEG7EI16_V_MF4_MF2 = 6025,
+ PseudoVLOXSEG7EI16_V_MF4_MF2_MASK = 6026,
+ PseudoVLOXSEG7EI16_V_MF4_MF4 = 6027,
+ PseudoVLOXSEG7EI16_V_MF4_MF4_MASK = 6028,
+ PseudoVLOXSEG7EI16_V_MF4_MF8 = 6029,
+ PseudoVLOXSEG7EI16_V_MF4_MF8_MASK = 6030,
+ PseudoVLOXSEG7EI32_V_M1_M1 = 6031,
+ PseudoVLOXSEG7EI32_V_M1_M1_MASK = 6032,
+ PseudoVLOXSEG7EI32_V_M1_MF2 = 6033,
+ PseudoVLOXSEG7EI32_V_M1_MF2_MASK = 6034,
+ PseudoVLOXSEG7EI32_V_M1_MF4 = 6035,
+ PseudoVLOXSEG7EI32_V_M1_MF4_MASK = 6036,
+ PseudoVLOXSEG7EI32_V_M2_M1 = 6037,
+ PseudoVLOXSEG7EI32_V_M2_M1_MASK = 6038,
+ PseudoVLOXSEG7EI32_V_M2_MF2 = 6039,
+ PseudoVLOXSEG7EI32_V_M2_MF2_MASK = 6040,
+ PseudoVLOXSEG7EI32_V_M4_M1 = 6041,
+ PseudoVLOXSEG7EI32_V_M4_M1_MASK = 6042,
+ PseudoVLOXSEG7EI32_V_MF2_M1 = 6043,
+ PseudoVLOXSEG7EI32_V_MF2_M1_MASK = 6044,
+ PseudoVLOXSEG7EI32_V_MF2_MF2 = 6045,
+ PseudoVLOXSEG7EI32_V_MF2_MF2_MASK = 6046,
+ PseudoVLOXSEG7EI32_V_MF2_MF4 = 6047,
+ PseudoVLOXSEG7EI32_V_MF2_MF4_MASK = 6048,
+ PseudoVLOXSEG7EI32_V_MF2_MF8 = 6049,
+ PseudoVLOXSEG7EI32_V_MF2_MF8_MASK = 6050,
+ PseudoVLOXSEG7EI64_V_M1_M1 = 6051,
+ PseudoVLOXSEG7EI64_V_M1_M1_MASK = 6052,
+ PseudoVLOXSEG7EI64_V_M1_MF2 = 6053,
+ PseudoVLOXSEG7EI64_V_M1_MF2_MASK = 6054,
+ PseudoVLOXSEG7EI64_V_M1_MF4 = 6055,
+ PseudoVLOXSEG7EI64_V_M1_MF4_MASK = 6056,
+ PseudoVLOXSEG7EI64_V_M1_MF8 = 6057,
+ PseudoVLOXSEG7EI64_V_M1_MF8_MASK = 6058,
+ PseudoVLOXSEG7EI64_V_M2_M1 = 6059,
+ PseudoVLOXSEG7EI64_V_M2_M1_MASK = 6060,
+ PseudoVLOXSEG7EI64_V_M2_MF2 = 6061,
+ PseudoVLOXSEG7EI64_V_M2_MF2_MASK = 6062,
+ PseudoVLOXSEG7EI64_V_M2_MF4 = 6063,
+ PseudoVLOXSEG7EI64_V_M2_MF4_MASK = 6064,
+ PseudoVLOXSEG7EI64_V_M4_M1 = 6065,
+ PseudoVLOXSEG7EI64_V_M4_M1_MASK = 6066,
+ PseudoVLOXSEG7EI64_V_M4_MF2 = 6067,
+ PseudoVLOXSEG7EI64_V_M4_MF2_MASK = 6068,
+ PseudoVLOXSEG7EI64_V_M8_M1 = 6069,
+ PseudoVLOXSEG7EI64_V_M8_M1_MASK = 6070,
+ PseudoVLOXSEG7EI8_V_M1_M1 = 6071,
+ PseudoVLOXSEG7EI8_V_M1_M1_MASK = 6072,
+ PseudoVLOXSEG7EI8_V_MF2_M1 = 6073,
+ PseudoVLOXSEG7EI8_V_MF2_M1_MASK = 6074,
+ PseudoVLOXSEG7EI8_V_MF2_MF2 = 6075,
+ PseudoVLOXSEG7EI8_V_MF2_MF2_MASK = 6076,
+ PseudoVLOXSEG7EI8_V_MF4_M1 = 6077,
+ PseudoVLOXSEG7EI8_V_MF4_M1_MASK = 6078,
+ PseudoVLOXSEG7EI8_V_MF4_MF2 = 6079,
+ PseudoVLOXSEG7EI8_V_MF4_MF2_MASK = 6080,
+ PseudoVLOXSEG7EI8_V_MF4_MF4 = 6081,
+ PseudoVLOXSEG7EI8_V_MF4_MF4_MASK = 6082,
+ PseudoVLOXSEG7EI8_V_MF8_M1 = 6083,
+ PseudoVLOXSEG7EI8_V_MF8_M1_MASK = 6084,
+ PseudoVLOXSEG7EI8_V_MF8_MF2 = 6085,
+ PseudoVLOXSEG7EI8_V_MF8_MF2_MASK = 6086,
+ PseudoVLOXSEG7EI8_V_MF8_MF4 = 6087,
+ PseudoVLOXSEG7EI8_V_MF8_MF4_MASK = 6088,
+ PseudoVLOXSEG7EI8_V_MF8_MF8 = 6089,
+ PseudoVLOXSEG7EI8_V_MF8_MF8_MASK = 6090,
+ PseudoVLOXSEG8EI16_V_M1_M1 = 6091,
+ PseudoVLOXSEG8EI16_V_M1_M1_MASK = 6092,
+ PseudoVLOXSEG8EI16_V_M1_MF2 = 6093,
+ PseudoVLOXSEG8EI16_V_M1_MF2_MASK = 6094,
+ PseudoVLOXSEG8EI16_V_M2_M1 = 6095,
+ PseudoVLOXSEG8EI16_V_M2_M1_MASK = 6096,
+ PseudoVLOXSEG8EI16_V_MF2_M1 = 6097,
+ PseudoVLOXSEG8EI16_V_MF2_M1_MASK = 6098,
+ PseudoVLOXSEG8EI16_V_MF2_MF2 = 6099,
+ PseudoVLOXSEG8EI16_V_MF2_MF2_MASK = 6100,
+ PseudoVLOXSEG8EI16_V_MF2_MF4 = 6101,
+ PseudoVLOXSEG8EI16_V_MF2_MF4_MASK = 6102,
+ PseudoVLOXSEG8EI16_V_MF4_M1 = 6103,
+ PseudoVLOXSEG8EI16_V_MF4_M1_MASK = 6104,
+ PseudoVLOXSEG8EI16_V_MF4_MF2 = 6105,
+ PseudoVLOXSEG8EI16_V_MF4_MF2_MASK = 6106,
+ PseudoVLOXSEG8EI16_V_MF4_MF4 = 6107,
+ PseudoVLOXSEG8EI16_V_MF4_MF4_MASK = 6108,
+ PseudoVLOXSEG8EI16_V_MF4_MF8 = 6109,
+ PseudoVLOXSEG8EI16_V_MF4_MF8_MASK = 6110,
+ PseudoVLOXSEG8EI32_V_M1_M1 = 6111,
+ PseudoVLOXSEG8EI32_V_M1_M1_MASK = 6112,
+ PseudoVLOXSEG8EI32_V_M1_MF2 = 6113,
+ PseudoVLOXSEG8EI32_V_M1_MF2_MASK = 6114,
+ PseudoVLOXSEG8EI32_V_M1_MF4 = 6115,
+ PseudoVLOXSEG8EI32_V_M1_MF4_MASK = 6116,
+ PseudoVLOXSEG8EI32_V_M2_M1 = 6117,
+ PseudoVLOXSEG8EI32_V_M2_M1_MASK = 6118,
+ PseudoVLOXSEG8EI32_V_M2_MF2 = 6119,
+ PseudoVLOXSEG8EI32_V_M2_MF2_MASK = 6120,
+ PseudoVLOXSEG8EI32_V_M4_M1 = 6121,
+ PseudoVLOXSEG8EI32_V_M4_M1_MASK = 6122,
+ PseudoVLOXSEG8EI32_V_MF2_M1 = 6123,
+ PseudoVLOXSEG8EI32_V_MF2_M1_MASK = 6124,
+ PseudoVLOXSEG8EI32_V_MF2_MF2 = 6125,
+ PseudoVLOXSEG8EI32_V_MF2_MF2_MASK = 6126,
+ PseudoVLOXSEG8EI32_V_MF2_MF4 = 6127,
+ PseudoVLOXSEG8EI32_V_MF2_MF4_MASK = 6128,
+ PseudoVLOXSEG8EI32_V_MF2_MF8 = 6129,
+ PseudoVLOXSEG8EI32_V_MF2_MF8_MASK = 6130,
+ PseudoVLOXSEG8EI64_V_M1_M1 = 6131,
+ PseudoVLOXSEG8EI64_V_M1_M1_MASK = 6132,
+ PseudoVLOXSEG8EI64_V_M1_MF2 = 6133,
+ PseudoVLOXSEG8EI64_V_M1_MF2_MASK = 6134,
+ PseudoVLOXSEG8EI64_V_M1_MF4 = 6135,
+ PseudoVLOXSEG8EI64_V_M1_MF4_MASK = 6136,
+ PseudoVLOXSEG8EI64_V_M1_MF8 = 6137,
+ PseudoVLOXSEG8EI64_V_M1_MF8_MASK = 6138,
+ PseudoVLOXSEG8EI64_V_M2_M1 = 6139,
+ PseudoVLOXSEG8EI64_V_M2_M1_MASK = 6140,
+ PseudoVLOXSEG8EI64_V_M2_MF2 = 6141,
+ PseudoVLOXSEG8EI64_V_M2_MF2_MASK = 6142,
+ PseudoVLOXSEG8EI64_V_M2_MF4 = 6143,
+ PseudoVLOXSEG8EI64_V_M2_MF4_MASK = 6144,
+ PseudoVLOXSEG8EI64_V_M4_M1 = 6145,
+ PseudoVLOXSEG8EI64_V_M4_M1_MASK = 6146,
+ PseudoVLOXSEG8EI64_V_M4_MF2 = 6147,
+ PseudoVLOXSEG8EI64_V_M4_MF2_MASK = 6148,
+ PseudoVLOXSEG8EI64_V_M8_M1 = 6149,
+ PseudoVLOXSEG8EI64_V_M8_M1_MASK = 6150,
+ PseudoVLOXSEG8EI8_V_M1_M1 = 6151,
+ PseudoVLOXSEG8EI8_V_M1_M1_MASK = 6152,
+ PseudoVLOXSEG8EI8_V_MF2_M1 = 6153,
+ PseudoVLOXSEG8EI8_V_MF2_M1_MASK = 6154,
+ PseudoVLOXSEG8EI8_V_MF2_MF2 = 6155,
+ PseudoVLOXSEG8EI8_V_MF2_MF2_MASK = 6156,
+ PseudoVLOXSEG8EI8_V_MF4_M1 = 6157,
+ PseudoVLOXSEG8EI8_V_MF4_M1_MASK = 6158,
+ PseudoVLOXSEG8EI8_V_MF4_MF2 = 6159,
+ PseudoVLOXSEG8EI8_V_MF4_MF2_MASK = 6160,
+ PseudoVLOXSEG8EI8_V_MF4_MF4 = 6161,
+ PseudoVLOXSEG8EI8_V_MF4_MF4_MASK = 6162,
+ PseudoVLOXSEG8EI8_V_MF8_M1 = 6163,
+ PseudoVLOXSEG8EI8_V_MF8_M1_MASK = 6164,
+ PseudoVLOXSEG8EI8_V_MF8_MF2 = 6165,
+ PseudoVLOXSEG8EI8_V_MF8_MF2_MASK = 6166,
+ PseudoVLOXSEG8EI8_V_MF8_MF4 = 6167,
+ PseudoVLOXSEG8EI8_V_MF8_MF4_MASK = 6168,
+ PseudoVLOXSEG8EI8_V_MF8_MF8 = 6169,
+ PseudoVLOXSEG8EI8_V_MF8_MF8_MASK = 6170,
+ PseudoVLSE16_V_M1 = 6171,
+ PseudoVLSE16_V_M1_MASK = 6172,
+ PseudoVLSE16_V_M2 = 6173,
+ PseudoVLSE16_V_M2_MASK = 6174,
+ PseudoVLSE16_V_M4 = 6175,
+ PseudoVLSE16_V_M4_MASK = 6176,
+ PseudoVLSE16_V_M8 = 6177,
+ PseudoVLSE16_V_M8_MASK = 6178,
+ PseudoVLSE16_V_MF2 = 6179,
+ PseudoVLSE16_V_MF2_MASK = 6180,
+ PseudoVLSE16_V_MF4 = 6181,
+ PseudoVLSE16_V_MF4_MASK = 6182,
+ PseudoVLSE32_V_M1 = 6183,
+ PseudoVLSE32_V_M1_MASK = 6184,
+ PseudoVLSE32_V_M2 = 6185,
+ PseudoVLSE32_V_M2_MASK = 6186,
+ PseudoVLSE32_V_M4 = 6187,
+ PseudoVLSE32_V_M4_MASK = 6188,
+ PseudoVLSE32_V_M8 = 6189,
+ PseudoVLSE32_V_M8_MASK = 6190,
+ PseudoVLSE32_V_MF2 = 6191,
+ PseudoVLSE32_V_MF2_MASK = 6192,
+ PseudoVLSE64_V_M1 = 6193,
+ PseudoVLSE64_V_M1_MASK = 6194,
+ PseudoVLSE64_V_M2 = 6195,
+ PseudoVLSE64_V_M2_MASK = 6196,
+ PseudoVLSE64_V_M4 = 6197,
+ PseudoVLSE64_V_M4_MASK = 6198,
+ PseudoVLSE64_V_M8 = 6199,
+ PseudoVLSE64_V_M8_MASK = 6200,
+ PseudoVLSE8_V_M1 = 6201,
+ PseudoVLSE8_V_M1_MASK = 6202,
+ PseudoVLSE8_V_M2 = 6203,
+ PseudoVLSE8_V_M2_MASK = 6204,
+ PseudoVLSE8_V_M4 = 6205,
+ PseudoVLSE8_V_M4_MASK = 6206,
+ PseudoVLSE8_V_M8 = 6207,
+ PseudoVLSE8_V_M8_MASK = 6208,
+ PseudoVLSE8_V_MF2 = 6209,
+ PseudoVLSE8_V_MF2_MASK = 6210,
+ PseudoVLSE8_V_MF4 = 6211,
+ PseudoVLSE8_V_MF4_MASK = 6212,
+ PseudoVLSE8_V_MF8 = 6213,
+ PseudoVLSE8_V_MF8_MASK = 6214,
+ PseudoVLSEG2E16FF_V_M1 = 6215,
+ PseudoVLSEG2E16FF_V_M1_MASK = 6216,
+ PseudoVLSEG2E16FF_V_M2 = 6217,
+ PseudoVLSEG2E16FF_V_M2_MASK = 6218,
+ PseudoVLSEG2E16FF_V_M4 = 6219,
+ PseudoVLSEG2E16FF_V_M4_MASK = 6220,
+ PseudoVLSEG2E16FF_V_MF2 = 6221,
+ PseudoVLSEG2E16FF_V_MF2_MASK = 6222,
+ PseudoVLSEG2E16FF_V_MF4 = 6223,
+ PseudoVLSEG2E16FF_V_MF4_MASK = 6224,
+ PseudoVLSEG2E16_V_M1 = 6225,
+ PseudoVLSEG2E16_V_M1_MASK = 6226,
+ PseudoVLSEG2E16_V_M2 = 6227,
+ PseudoVLSEG2E16_V_M2_MASK = 6228,
+ PseudoVLSEG2E16_V_M4 = 6229,
+ PseudoVLSEG2E16_V_M4_MASK = 6230,
+ PseudoVLSEG2E16_V_MF2 = 6231,
+ PseudoVLSEG2E16_V_MF2_MASK = 6232,
+ PseudoVLSEG2E16_V_MF4 = 6233,
+ PseudoVLSEG2E16_V_MF4_MASK = 6234,
+ PseudoVLSEG2E32FF_V_M1 = 6235,
+ PseudoVLSEG2E32FF_V_M1_MASK = 6236,
+ PseudoVLSEG2E32FF_V_M2 = 6237,
+ PseudoVLSEG2E32FF_V_M2_MASK = 6238,
+ PseudoVLSEG2E32FF_V_M4 = 6239,
+ PseudoVLSEG2E32FF_V_M4_MASK = 6240,
+ PseudoVLSEG2E32FF_V_MF2 = 6241,
+ PseudoVLSEG2E32FF_V_MF2_MASK = 6242,
+ PseudoVLSEG2E32_V_M1 = 6243,
+ PseudoVLSEG2E32_V_M1_MASK = 6244,
+ PseudoVLSEG2E32_V_M2 = 6245,
+ PseudoVLSEG2E32_V_M2_MASK = 6246,
+ PseudoVLSEG2E32_V_M4 = 6247,
+ PseudoVLSEG2E32_V_M4_MASK = 6248,
+ PseudoVLSEG2E32_V_MF2 = 6249,
+ PseudoVLSEG2E32_V_MF2_MASK = 6250,
+ PseudoVLSEG2E64FF_V_M1 = 6251,
+ PseudoVLSEG2E64FF_V_M1_MASK = 6252,
+ PseudoVLSEG2E64FF_V_M2 = 6253,
+ PseudoVLSEG2E64FF_V_M2_MASK = 6254,
+ PseudoVLSEG2E64FF_V_M4 = 6255,
+ PseudoVLSEG2E64FF_V_M4_MASK = 6256,
+ PseudoVLSEG2E64_V_M1 = 6257,
+ PseudoVLSEG2E64_V_M1_MASK = 6258,
+ PseudoVLSEG2E64_V_M2 = 6259,
+ PseudoVLSEG2E64_V_M2_MASK = 6260,
+ PseudoVLSEG2E64_V_M4 = 6261,
+ PseudoVLSEG2E64_V_M4_MASK = 6262,
+ PseudoVLSEG2E8FF_V_M1 = 6263,
+ PseudoVLSEG2E8FF_V_M1_MASK = 6264,
+ PseudoVLSEG2E8FF_V_M2 = 6265,
+ PseudoVLSEG2E8FF_V_M2_MASK = 6266,
+ PseudoVLSEG2E8FF_V_M4 = 6267,
+ PseudoVLSEG2E8FF_V_M4_MASK = 6268,
+ PseudoVLSEG2E8FF_V_MF2 = 6269,
+ PseudoVLSEG2E8FF_V_MF2_MASK = 6270,
+ PseudoVLSEG2E8FF_V_MF4 = 6271,
+ PseudoVLSEG2E8FF_V_MF4_MASK = 6272,
+ PseudoVLSEG2E8FF_V_MF8 = 6273,
+ PseudoVLSEG2E8FF_V_MF8_MASK = 6274,
+ PseudoVLSEG2E8_V_M1 = 6275,
+ PseudoVLSEG2E8_V_M1_MASK = 6276,
+ PseudoVLSEG2E8_V_M2 = 6277,
+ PseudoVLSEG2E8_V_M2_MASK = 6278,
+ PseudoVLSEG2E8_V_M4 = 6279,
+ PseudoVLSEG2E8_V_M4_MASK = 6280,
+ PseudoVLSEG2E8_V_MF2 = 6281,
+ PseudoVLSEG2E8_V_MF2_MASK = 6282,
+ PseudoVLSEG2E8_V_MF4 = 6283,
+ PseudoVLSEG2E8_V_MF4_MASK = 6284,
+ PseudoVLSEG2E8_V_MF8 = 6285,
+ PseudoVLSEG2E8_V_MF8_MASK = 6286,
+ PseudoVLSEG3E16FF_V_M1 = 6287,
+ PseudoVLSEG3E16FF_V_M1_MASK = 6288,
+ PseudoVLSEG3E16FF_V_M2 = 6289,
+ PseudoVLSEG3E16FF_V_M2_MASK = 6290,
+ PseudoVLSEG3E16FF_V_MF2 = 6291,
+ PseudoVLSEG3E16FF_V_MF2_MASK = 6292,
+ PseudoVLSEG3E16FF_V_MF4 = 6293,
+ PseudoVLSEG3E16FF_V_MF4_MASK = 6294,
+ PseudoVLSEG3E16_V_M1 = 6295,
+ PseudoVLSEG3E16_V_M1_MASK = 6296,
+ PseudoVLSEG3E16_V_M2 = 6297,
+ PseudoVLSEG3E16_V_M2_MASK = 6298,
+ PseudoVLSEG3E16_V_MF2 = 6299,
+ PseudoVLSEG3E16_V_MF2_MASK = 6300,
+ PseudoVLSEG3E16_V_MF4 = 6301,
+ PseudoVLSEG3E16_V_MF4_MASK = 6302,
+ PseudoVLSEG3E32FF_V_M1 = 6303,
+ PseudoVLSEG3E32FF_V_M1_MASK = 6304,
+ PseudoVLSEG3E32FF_V_M2 = 6305,
+ PseudoVLSEG3E32FF_V_M2_MASK = 6306,
+ PseudoVLSEG3E32FF_V_MF2 = 6307,
+ PseudoVLSEG3E32FF_V_MF2_MASK = 6308,
+ PseudoVLSEG3E32_V_M1 = 6309,
+ PseudoVLSEG3E32_V_M1_MASK = 6310,
+ PseudoVLSEG3E32_V_M2 = 6311,
+ PseudoVLSEG3E32_V_M2_MASK = 6312,
+ PseudoVLSEG3E32_V_MF2 = 6313,
+ PseudoVLSEG3E32_V_MF2_MASK = 6314,
+ PseudoVLSEG3E64FF_V_M1 = 6315,
+ PseudoVLSEG3E64FF_V_M1_MASK = 6316,
+ PseudoVLSEG3E64FF_V_M2 = 6317,
+ PseudoVLSEG3E64FF_V_M2_MASK = 6318,
+ PseudoVLSEG3E64_V_M1 = 6319,
+ PseudoVLSEG3E64_V_M1_MASK = 6320,
+ PseudoVLSEG3E64_V_M2 = 6321,
+ PseudoVLSEG3E64_V_M2_MASK = 6322,
+ PseudoVLSEG3E8FF_V_M1 = 6323,
+ PseudoVLSEG3E8FF_V_M1_MASK = 6324,
+ PseudoVLSEG3E8FF_V_M2 = 6325,
+ PseudoVLSEG3E8FF_V_M2_MASK = 6326,
+ PseudoVLSEG3E8FF_V_MF2 = 6327,
+ PseudoVLSEG3E8FF_V_MF2_MASK = 6328,
+ PseudoVLSEG3E8FF_V_MF4 = 6329,
+ PseudoVLSEG3E8FF_V_MF4_MASK = 6330,
+ PseudoVLSEG3E8FF_V_MF8 = 6331,
+ PseudoVLSEG3E8FF_V_MF8_MASK = 6332,
+ PseudoVLSEG3E8_V_M1 = 6333,
+ PseudoVLSEG3E8_V_M1_MASK = 6334,
+ PseudoVLSEG3E8_V_M2 = 6335,
+ PseudoVLSEG3E8_V_M2_MASK = 6336,
+ PseudoVLSEG3E8_V_MF2 = 6337,
+ PseudoVLSEG3E8_V_MF2_MASK = 6338,
+ PseudoVLSEG3E8_V_MF4 = 6339,
+ PseudoVLSEG3E8_V_MF4_MASK = 6340,
+ PseudoVLSEG3E8_V_MF8 = 6341,
+ PseudoVLSEG3E8_V_MF8_MASK = 6342,
+ PseudoVLSEG4E16FF_V_M1 = 6343,
+ PseudoVLSEG4E16FF_V_M1_MASK = 6344,
+ PseudoVLSEG4E16FF_V_M2 = 6345,
+ PseudoVLSEG4E16FF_V_M2_MASK = 6346,
+ PseudoVLSEG4E16FF_V_MF2 = 6347,
+ PseudoVLSEG4E16FF_V_MF2_MASK = 6348,
+ PseudoVLSEG4E16FF_V_MF4 = 6349,
+ PseudoVLSEG4E16FF_V_MF4_MASK = 6350,
+ PseudoVLSEG4E16_V_M1 = 6351,
+ PseudoVLSEG4E16_V_M1_MASK = 6352,
+ PseudoVLSEG4E16_V_M2 = 6353,
+ PseudoVLSEG4E16_V_M2_MASK = 6354,
+ PseudoVLSEG4E16_V_MF2 = 6355,
+ PseudoVLSEG4E16_V_MF2_MASK = 6356,
+ PseudoVLSEG4E16_V_MF4 = 6357,
+ PseudoVLSEG4E16_V_MF4_MASK = 6358,
+ PseudoVLSEG4E32FF_V_M1 = 6359,
+ PseudoVLSEG4E32FF_V_M1_MASK = 6360,
+ PseudoVLSEG4E32FF_V_M2 = 6361,
+ PseudoVLSEG4E32FF_V_M2_MASK = 6362,
+ PseudoVLSEG4E32FF_V_MF2 = 6363,
+ PseudoVLSEG4E32FF_V_MF2_MASK = 6364,
+ PseudoVLSEG4E32_V_M1 = 6365,
+ PseudoVLSEG4E32_V_M1_MASK = 6366,
+ PseudoVLSEG4E32_V_M2 = 6367,
+ PseudoVLSEG4E32_V_M2_MASK = 6368,
+ PseudoVLSEG4E32_V_MF2 = 6369,
+ PseudoVLSEG4E32_V_MF2_MASK = 6370,
+ PseudoVLSEG4E64FF_V_M1 = 6371,
+ PseudoVLSEG4E64FF_V_M1_MASK = 6372,
+ PseudoVLSEG4E64FF_V_M2 = 6373,
+ PseudoVLSEG4E64FF_V_M2_MASK = 6374,
+ PseudoVLSEG4E64_V_M1 = 6375,
+ PseudoVLSEG4E64_V_M1_MASK = 6376,
+ PseudoVLSEG4E64_V_M2 = 6377,
+ PseudoVLSEG4E64_V_M2_MASK = 6378,
+ PseudoVLSEG4E8FF_V_M1 = 6379,
+ PseudoVLSEG4E8FF_V_M1_MASK = 6380,
+ PseudoVLSEG4E8FF_V_M2 = 6381,
+ PseudoVLSEG4E8FF_V_M2_MASK = 6382,
+ PseudoVLSEG4E8FF_V_MF2 = 6383,
+ PseudoVLSEG4E8FF_V_MF2_MASK = 6384,
+ PseudoVLSEG4E8FF_V_MF4 = 6385,
+ PseudoVLSEG4E8FF_V_MF4_MASK = 6386,
+ PseudoVLSEG4E8FF_V_MF8 = 6387,
+ PseudoVLSEG4E8FF_V_MF8_MASK = 6388,
+ PseudoVLSEG4E8_V_M1 = 6389,
+ PseudoVLSEG4E8_V_M1_MASK = 6390,
+ PseudoVLSEG4E8_V_M2 = 6391,
+ PseudoVLSEG4E8_V_M2_MASK = 6392,
+ PseudoVLSEG4E8_V_MF2 = 6393,
+ PseudoVLSEG4E8_V_MF2_MASK = 6394,
+ PseudoVLSEG4E8_V_MF4 = 6395,
+ PseudoVLSEG4E8_V_MF4_MASK = 6396,
+ PseudoVLSEG4E8_V_MF8 = 6397,
+ PseudoVLSEG4E8_V_MF8_MASK = 6398,
+ PseudoVLSEG5E16FF_V_M1 = 6399,
+ PseudoVLSEG5E16FF_V_M1_MASK = 6400,
+ PseudoVLSEG5E16FF_V_MF2 = 6401,
+ PseudoVLSEG5E16FF_V_MF2_MASK = 6402,
+ PseudoVLSEG5E16FF_V_MF4 = 6403,
+ PseudoVLSEG5E16FF_V_MF4_MASK = 6404,
+ PseudoVLSEG5E16_V_M1 = 6405,
+ PseudoVLSEG5E16_V_M1_MASK = 6406,
+ PseudoVLSEG5E16_V_MF2 = 6407,
+ PseudoVLSEG5E16_V_MF2_MASK = 6408,
+ PseudoVLSEG5E16_V_MF4 = 6409,
+ PseudoVLSEG5E16_V_MF4_MASK = 6410,
+ PseudoVLSEG5E32FF_V_M1 = 6411,
+ PseudoVLSEG5E32FF_V_M1_MASK = 6412,
+ PseudoVLSEG5E32FF_V_MF2 = 6413,
+ PseudoVLSEG5E32FF_V_MF2_MASK = 6414,
+ PseudoVLSEG5E32_V_M1 = 6415,
+ PseudoVLSEG5E32_V_M1_MASK = 6416,
+ PseudoVLSEG5E32_V_MF2 = 6417,
+ PseudoVLSEG5E32_V_MF2_MASK = 6418,
+ PseudoVLSEG5E64FF_V_M1 = 6419,
+ PseudoVLSEG5E64FF_V_M1_MASK = 6420,
+ PseudoVLSEG5E64_V_M1 = 6421,
+ PseudoVLSEG5E64_V_M1_MASK = 6422,
+ PseudoVLSEG5E8FF_V_M1 = 6423,
+ PseudoVLSEG5E8FF_V_M1_MASK = 6424,
+ PseudoVLSEG5E8FF_V_MF2 = 6425,
+ PseudoVLSEG5E8FF_V_MF2_MASK = 6426,
+ PseudoVLSEG5E8FF_V_MF4 = 6427,
+ PseudoVLSEG5E8FF_V_MF4_MASK = 6428,
+ PseudoVLSEG5E8FF_V_MF8 = 6429,
+ PseudoVLSEG5E8FF_V_MF8_MASK = 6430,
+ PseudoVLSEG5E8_V_M1 = 6431,
+ PseudoVLSEG5E8_V_M1_MASK = 6432,
+ PseudoVLSEG5E8_V_MF2 = 6433,
+ PseudoVLSEG5E8_V_MF2_MASK = 6434,
+ PseudoVLSEG5E8_V_MF4 = 6435,
+ PseudoVLSEG5E8_V_MF4_MASK = 6436,
+ PseudoVLSEG5E8_V_MF8 = 6437,
+ PseudoVLSEG5E8_V_MF8_MASK = 6438,
+ PseudoVLSEG6E16FF_V_M1 = 6439,
+ PseudoVLSEG6E16FF_V_M1_MASK = 6440,
+ PseudoVLSEG6E16FF_V_MF2 = 6441,
+ PseudoVLSEG6E16FF_V_MF2_MASK = 6442,
+ PseudoVLSEG6E16FF_V_MF4 = 6443,
+ PseudoVLSEG6E16FF_V_MF4_MASK = 6444,
+ PseudoVLSEG6E16_V_M1 = 6445,
+ PseudoVLSEG6E16_V_M1_MASK = 6446,
+ PseudoVLSEG6E16_V_MF2 = 6447,
+ PseudoVLSEG6E16_V_MF2_MASK = 6448,
+ PseudoVLSEG6E16_V_MF4 = 6449,
+ PseudoVLSEG6E16_V_MF4_MASK = 6450,
+ PseudoVLSEG6E32FF_V_M1 = 6451,
+ PseudoVLSEG6E32FF_V_M1_MASK = 6452,
+ PseudoVLSEG6E32FF_V_MF2 = 6453,
+ PseudoVLSEG6E32FF_V_MF2_MASK = 6454,
+ PseudoVLSEG6E32_V_M1 = 6455,
+ PseudoVLSEG6E32_V_M1_MASK = 6456,
+ PseudoVLSEG6E32_V_MF2 = 6457,
+ PseudoVLSEG6E32_V_MF2_MASK = 6458,
+ PseudoVLSEG6E64FF_V_M1 = 6459,
+ PseudoVLSEG6E64FF_V_M1_MASK = 6460,
+ PseudoVLSEG6E64_V_M1 = 6461,
+ PseudoVLSEG6E64_V_M1_MASK = 6462,
+ PseudoVLSEG6E8FF_V_M1 = 6463,
+ PseudoVLSEG6E8FF_V_M1_MASK = 6464,
+ PseudoVLSEG6E8FF_V_MF2 = 6465,
+ PseudoVLSEG6E8FF_V_MF2_MASK = 6466,
+ PseudoVLSEG6E8FF_V_MF4 = 6467,
+ PseudoVLSEG6E8FF_V_MF4_MASK = 6468,
+ PseudoVLSEG6E8FF_V_MF8 = 6469,
+ PseudoVLSEG6E8FF_V_MF8_MASK = 6470,
+ PseudoVLSEG6E8_V_M1 = 6471,
+ PseudoVLSEG6E8_V_M1_MASK = 6472,
+ PseudoVLSEG6E8_V_MF2 = 6473,
+ PseudoVLSEG6E8_V_MF2_MASK = 6474,
+ PseudoVLSEG6E8_V_MF4 = 6475,
+ PseudoVLSEG6E8_V_MF4_MASK = 6476,
+ PseudoVLSEG6E8_V_MF8 = 6477,
+ PseudoVLSEG6E8_V_MF8_MASK = 6478,
+ PseudoVLSEG7E16FF_V_M1 = 6479,
+ PseudoVLSEG7E16FF_V_M1_MASK = 6480,
+ PseudoVLSEG7E16FF_V_MF2 = 6481,
+ PseudoVLSEG7E16FF_V_MF2_MASK = 6482,
+ PseudoVLSEG7E16FF_V_MF4 = 6483,
+ PseudoVLSEG7E16FF_V_MF4_MASK = 6484,
+ PseudoVLSEG7E16_V_M1 = 6485,
+ PseudoVLSEG7E16_V_M1_MASK = 6486,
+ PseudoVLSEG7E16_V_MF2 = 6487,
+ PseudoVLSEG7E16_V_MF2_MASK = 6488,
+ PseudoVLSEG7E16_V_MF4 = 6489,
+ PseudoVLSEG7E16_V_MF4_MASK = 6490,
+ PseudoVLSEG7E32FF_V_M1 = 6491,
+ PseudoVLSEG7E32FF_V_M1_MASK = 6492,
+ PseudoVLSEG7E32FF_V_MF2 = 6493,
+ PseudoVLSEG7E32FF_V_MF2_MASK = 6494,
+ PseudoVLSEG7E32_V_M1 = 6495,
+ PseudoVLSEG7E32_V_M1_MASK = 6496,
+ PseudoVLSEG7E32_V_MF2 = 6497,
+ PseudoVLSEG7E32_V_MF2_MASK = 6498,
+ PseudoVLSEG7E64FF_V_M1 = 6499,
+ PseudoVLSEG7E64FF_V_M1_MASK = 6500,
+ PseudoVLSEG7E64_V_M1 = 6501,
+ PseudoVLSEG7E64_V_M1_MASK = 6502,
+ PseudoVLSEG7E8FF_V_M1 = 6503,
+ PseudoVLSEG7E8FF_V_M1_MASK = 6504,
+ PseudoVLSEG7E8FF_V_MF2 = 6505,
+ PseudoVLSEG7E8FF_V_MF2_MASK = 6506,
+ PseudoVLSEG7E8FF_V_MF4 = 6507,
+ PseudoVLSEG7E8FF_V_MF4_MASK = 6508,
+ PseudoVLSEG7E8FF_V_MF8 = 6509,
+ PseudoVLSEG7E8FF_V_MF8_MASK = 6510,
+ PseudoVLSEG7E8_V_M1 = 6511,
+ PseudoVLSEG7E8_V_M1_MASK = 6512,
+ PseudoVLSEG7E8_V_MF2 = 6513,
+ PseudoVLSEG7E8_V_MF2_MASK = 6514,
+ PseudoVLSEG7E8_V_MF4 = 6515,
+ PseudoVLSEG7E8_V_MF4_MASK = 6516,
+ PseudoVLSEG7E8_V_MF8 = 6517,
+ PseudoVLSEG7E8_V_MF8_MASK = 6518,
+ PseudoVLSEG8E16FF_V_M1 = 6519,
+ PseudoVLSEG8E16FF_V_M1_MASK = 6520,
+ PseudoVLSEG8E16FF_V_MF2 = 6521,
+ PseudoVLSEG8E16FF_V_MF2_MASK = 6522,
+ PseudoVLSEG8E16FF_V_MF4 = 6523,
+ PseudoVLSEG8E16FF_V_MF4_MASK = 6524,
+ PseudoVLSEG8E16_V_M1 = 6525,
+ PseudoVLSEG8E16_V_M1_MASK = 6526,
+ PseudoVLSEG8E16_V_MF2 = 6527,
+ PseudoVLSEG8E16_V_MF2_MASK = 6528,
+ PseudoVLSEG8E16_V_MF4 = 6529,
+ PseudoVLSEG8E16_V_MF4_MASK = 6530,
+ PseudoVLSEG8E32FF_V_M1 = 6531,
+ PseudoVLSEG8E32FF_V_M1_MASK = 6532,
+ PseudoVLSEG8E32FF_V_MF2 = 6533,
+ PseudoVLSEG8E32FF_V_MF2_MASK = 6534,
+ PseudoVLSEG8E32_V_M1 = 6535,
+ PseudoVLSEG8E32_V_M1_MASK = 6536,
+ PseudoVLSEG8E32_V_MF2 = 6537,
+ PseudoVLSEG8E32_V_MF2_MASK = 6538,
+ PseudoVLSEG8E64FF_V_M1 = 6539,
+ PseudoVLSEG8E64FF_V_M1_MASK = 6540,
+ PseudoVLSEG8E64_V_M1 = 6541,
+ PseudoVLSEG8E64_V_M1_MASK = 6542,
+ PseudoVLSEG8E8FF_V_M1 = 6543,
+ PseudoVLSEG8E8FF_V_M1_MASK = 6544,
+ PseudoVLSEG8E8FF_V_MF2 = 6545,
+ PseudoVLSEG8E8FF_V_MF2_MASK = 6546,
+ PseudoVLSEG8E8FF_V_MF4 = 6547,
+ PseudoVLSEG8E8FF_V_MF4_MASK = 6548,
+ PseudoVLSEG8E8FF_V_MF8 = 6549,
+ PseudoVLSEG8E8FF_V_MF8_MASK = 6550,
+ PseudoVLSEG8E8_V_M1 = 6551,
+ PseudoVLSEG8E8_V_M1_MASK = 6552,
+ PseudoVLSEG8E8_V_MF2 = 6553,
+ PseudoVLSEG8E8_V_MF2_MASK = 6554,
+ PseudoVLSEG8E8_V_MF4 = 6555,
+ PseudoVLSEG8E8_V_MF4_MASK = 6556,
+ PseudoVLSEG8E8_V_MF8 = 6557,
+ PseudoVLSEG8E8_V_MF8_MASK = 6558,
+ PseudoVLSSEG2E16_V_M1 = 6559,
+ PseudoVLSSEG2E16_V_M1_MASK = 6560,
+ PseudoVLSSEG2E16_V_M2 = 6561,
+ PseudoVLSSEG2E16_V_M2_MASK = 6562,
+ PseudoVLSSEG2E16_V_M4 = 6563,
+ PseudoVLSSEG2E16_V_M4_MASK = 6564,
+ PseudoVLSSEG2E16_V_MF2 = 6565,
+ PseudoVLSSEG2E16_V_MF2_MASK = 6566,
+ PseudoVLSSEG2E16_V_MF4 = 6567,
+ PseudoVLSSEG2E16_V_MF4_MASK = 6568,
+ PseudoVLSSEG2E32_V_M1 = 6569,
+ PseudoVLSSEG2E32_V_M1_MASK = 6570,
+ PseudoVLSSEG2E32_V_M2 = 6571,
+ PseudoVLSSEG2E32_V_M2_MASK = 6572,
+ PseudoVLSSEG2E32_V_M4 = 6573,
+ PseudoVLSSEG2E32_V_M4_MASK = 6574,
+ PseudoVLSSEG2E32_V_MF2 = 6575,
+ PseudoVLSSEG2E32_V_MF2_MASK = 6576,
+ PseudoVLSSEG2E64_V_M1 = 6577,
+ PseudoVLSSEG2E64_V_M1_MASK = 6578,
+ PseudoVLSSEG2E64_V_M2 = 6579,
+ PseudoVLSSEG2E64_V_M2_MASK = 6580,
+ PseudoVLSSEG2E64_V_M4 = 6581,
+ PseudoVLSSEG2E64_V_M4_MASK = 6582,
+ PseudoVLSSEG2E8_V_M1 = 6583,
+ PseudoVLSSEG2E8_V_M1_MASK = 6584,
+ PseudoVLSSEG2E8_V_M2 = 6585,
+ PseudoVLSSEG2E8_V_M2_MASK = 6586,
+ PseudoVLSSEG2E8_V_M4 = 6587,
+ PseudoVLSSEG2E8_V_M4_MASK = 6588,
+ PseudoVLSSEG2E8_V_MF2 = 6589,
+ PseudoVLSSEG2E8_V_MF2_MASK = 6590,
+ PseudoVLSSEG2E8_V_MF4 = 6591,
+ PseudoVLSSEG2E8_V_MF4_MASK = 6592,
+ PseudoVLSSEG2E8_V_MF8 = 6593,
+ PseudoVLSSEG2E8_V_MF8_MASK = 6594,
+ PseudoVLSSEG3E16_V_M1 = 6595,
+ PseudoVLSSEG3E16_V_M1_MASK = 6596,
+ PseudoVLSSEG3E16_V_M2 = 6597,
+ PseudoVLSSEG3E16_V_M2_MASK = 6598,
+ PseudoVLSSEG3E16_V_MF2 = 6599,
+ PseudoVLSSEG3E16_V_MF2_MASK = 6600,
+ PseudoVLSSEG3E16_V_MF4 = 6601,
+ PseudoVLSSEG3E16_V_MF4_MASK = 6602,
+ PseudoVLSSEG3E32_V_M1 = 6603,
+ PseudoVLSSEG3E32_V_M1_MASK = 6604,
+ PseudoVLSSEG3E32_V_M2 = 6605,
+ PseudoVLSSEG3E32_V_M2_MASK = 6606,
+ PseudoVLSSEG3E32_V_MF2 = 6607,
+ PseudoVLSSEG3E32_V_MF2_MASK = 6608,
+ PseudoVLSSEG3E64_V_M1 = 6609,
+ PseudoVLSSEG3E64_V_M1_MASK = 6610,
+ PseudoVLSSEG3E64_V_M2 = 6611,
+ PseudoVLSSEG3E64_V_M2_MASK = 6612,
+ PseudoVLSSEG3E8_V_M1 = 6613,
+ PseudoVLSSEG3E8_V_M1_MASK = 6614,
+ PseudoVLSSEG3E8_V_M2 = 6615,
+ PseudoVLSSEG3E8_V_M2_MASK = 6616,
+ PseudoVLSSEG3E8_V_MF2 = 6617,
+ PseudoVLSSEG3E8_V_MF2_MASK = 6618,
+ PseudoVLSSEG3E8_V_MF4 = 6619,
+ PseudoVLSSEG3E8_V_MF4_MASK = 6620,
+ PseudoVLSSEG3E8_V_MF8 = 6621,
+ PseudoVLSSEG3E8_V_MF8_MASK = 6622,
+ PseudoVLSSEG4E16_V_M1 = 6623,
+ PseudoVLSSEG4E16_V_M1_MASK = 6624,
+ PseudoVLSSEG4E16_V_M2 = 6625,
+ PseudoVLSSEG4E16_V_M2_MASK = 6626,
+ PseudoVLSSEG4E16_V_MF2 = 6627,
+ PseudoVLSSEG4E16_V_MF2_MASK = 6628,
+ PseudoVLSSEG4E16_V_MF4 = 6629,
+ PseudoVLSSEG4E16_V_MF4_MASK = 6630,
+ PseudoVLSSEG4E32_V_M1 = 6631,
+ PseudoVLSSEG4E32_V_M1_MASK = 6632,
+ PseudoVLSSEG4E32_V_M2 = 6633,
+ PseudoVLSSEG4E32_V_M2_MASK = 6634,
+ PseudoVLSSEG4E32_V_MF2 = 6635,
+ PseudoVLSSEG4E32_V_MF2_MASK = 6636,
+ PseudoVLSSEG4E64_V_M1 = 6637,
+ PseudoVLSSEG4E64_V_M1_MASK = 6638,
+ PseudoVLSSEG4E64_V_M2 = 6639,
+ PseudoVLSSEG4E64_V_M2_MASK = 6640,
+ PseudoVLSSEG4E8_V_M1 = 6641,
+ PseudoVLSSEG4E8_V_M1_MASK = 6642,
+ PseudoVLSSEG4E8_V_M2 = 6643,
+ PseudoVLSSEG4E8_V_M2_MASK = 6644,
+ PseudoVLSSEG4E8_V_MF2 = 6645,
+ PseudoVLSSEG4E8_V_MF2_MASK = 6646,
+ PseudoVLSSEG4E8_V_MF4 = 6647,
+ PseudoVLSSEG4E8_V_MF4_MASK = 6648,
+ PseudoVLSSEG4E8_V_MF8 = 6649,
+ PseudoVLSSEG4E8_V_MF8_MASK = 6650,
+ PseudoVLSSEG5E16_V_M1 = 6651,
+ PseudoVLSSEG5E16_V_M1_MASK = 6652,
+ PseudoVLSSEG5E16_V_MF2 = 6653,
+ PseudoVLSSEG5E16_V_MF2_MASK = 6654,
+ PseudoVLSSEG5E16_V_MF4 = 6655,
+ PseudoVLSSEG5E16_V_MF4_MASK = 6656,
+ PseudoVLSSEG5E32_V_M1 = 6657,
+ PseudoVLSSEG5E32_V_M1_MASK = 6658,
+ PseudoVLSSEG5E32_V_MF2 = 6659,
+ PseudoVLSSEG5E32_V_MF2_MASK = 6660,
+ PseudoVLSSEG5E64_V_M1 = 6661,
+ PseudoVLSSEG5E64_V_M1_MASK = 6662,
+ PseudoVLSSEG5E8_V_M1 = 6663,
+ PseudoVLSSEG5E8_V_M1_MASK = 6664,
+ PseudoVLSSEG5E8_V_MF2 = 6665,
+ PseudoVLSSEG5E8_V_MF2_MASK = 6666,
+ PseudoVLSSEG5E8_V_MF4 = 6667,
+ PseudoVLSSEG5E8_V_MF4_MASK = 6668,
+ PseudoVLSSEG5E8_V_MF8 = 6669,
+ PseudoVLSSEG5E8_V_MF8_MASK = 6670,
+ PseudoVLSSEG6E16_V_M1 = 6671,
+ PseudoVLSSEG6E16_V_M1_MASK = 6672,
+ PseudoVLSSEG6E16_V_MF2 = 6673,
+ PseudoVLSSEG6E16_V_MF2_MASK = 6674,
+ PseudoVLSSEG6E16_V_MF4 = 6675,
+ PseudoVLSSEG6E16_V_MF4_MASK = 6676,
+ PseudoVLSSEG6E32_V_M1 = 6677,
+ PseudoVLSSEG6E32_V_M1_MASK = 6678,
+ PseudoVLSSEG6E32_V_MF2 = 6679,
+ PseudoVLSSEG6E32_V_MF2_MASK = 6680,
+ PseudoVLSSEG6E64_V_M1 = 6681,
+ PseudoVLSSEG6E64_V_M1_MASK = 6682,
+ PseudoVLSSEG6E8_V_M1 = 6683,
+ PseudoVLSSEG6E8_V_M1_MASK = 6684,
+ PseudoVLSSEG6E8_V_MF2 = 6685,
+ PseudoVLSSEG6E8_V_MF2_MASK = 6686,
+ PseudoVLSSEG6E8_V_MF4 = 6687,
+ PseudoVLSSEG6E8_V_MF4_MASK = 6688,
+ PseudoVLSSEG6E8_V_MF8 = 6689,
+ PseudoVLSSEG6E8_V_MF8_MASK = 6690,
+ PseudoVLSSEG7E16_V_M1 = 6691,
+ PseudoVLSSEG7E16_V_M1_MASK = 6692,
+ PseudoVLSSEG7E16_V_MF2 = 6693,
+ PseudoVLSSEG7E16_V_MF2_MASK = 6694,
+ PseudoVLSSEG7E16_V_MF4 = 6695,
+ PseudoVLSSEG7E16_V_MF4_MASK = 6696,
+ PseudoVLSSEG7E32_V_M1 = 6697,
+ PseudoVLSSEG7E32_V_M1_MASK = 6698,
+ PseudoVLSSEG7E32_V_MF2 = 6699,
+ PseudoVLSSEG7E32_V_MF2_MASK = 6700,
+ PseudoVLSSEG7E64_V_M1 = 6701,
+ PseudoVLSSEG7E64_V_M1_MASK = 6702,
+ PseudoVLSSEG7E8_V_M1 = 6703,
+ PseudoVLSSEG7E8_V_M1_MASK = 6704,
+ PseudoVLSSEG7E8_V_MF2 = 6705,
+ PseudoVLSSEG7E8_V_MF2_MASK = 6706,
+ PseudoVLSSEG7E8_V_MF4 = 6707,
+ PseudoVLSSEG7E8_V_MF4_MASK = 6708,
+ PseudoVLSSEG7E8_V_MF8 = 6709,
+ PseudoVLSSEG7E8_V_MF8_MASK = 6710,
+ PseudoVLSSEG8E16_V_M1 = 6711,
+ PseudoVLSSEG8E16_V_M1_MASK = 6712,
+ PseudoVLSSEG8E16_V_MF2 = 6713,
+ PseudoVLSSEG8E16_V_MF2_MASK = 6714,
+ PseudoVLSSEG8E16_V_MF4 = 6715,
+ PseudoVLSSEG8E16_V_MF4_MASK = 6716,
+ PseudoVLSSEG8E32_V_M1 = 6717,
+ PseudoVLSSEG8E32_V_M1_MASK = 6718,
+ PseudoVLSSEG8E32_V_MF2 = 6719,
+ PseudoVLSSEG8E32_V_MF2_MASK = 6720,
+ PseudoVLSSEG8E64_V_M1 = 6721,
+ PseudoVLSSEG8E64_V_M1_MASK = 6722,
+ PseudoVLSSEG8E8_V_M1 = 6723,
+ PseudoVLSSEG8E8_V_M1_MASK = 6724,
+ PseudoVLSSEG8E8_V_MF2 = 6725,
+ PseudoVLSSEG8E8_V_MF2_MASK = 6726,
+ PseudoVLSSEG8E8_V_MF4 = 6727,
+ PseudoVLSSEG8E8_V_MF4_MASK = 6728,
+ PseudoVLSSEG8E8_V_MF8 = 6729,
+ PseudoVLSSEG8E8_V_MF8_MASK = 6730,
+ PseudoVLUXEI16_V_M1_M1 = 6731,
+ PseudoVLUXEI16_V_M1_M1_MASK = 6732,
+ PseudoVLUXEI16_V_M1_M2 = 6733,
+ PseudoVLUXEI16_V_M1_M2_MASK = 6734,
+ PseudoVLUXEI16_V_M1_M4 = 6735,
+ PseudoVLUXEI16_V_M1_M4_MASK = 6736,
+ PseudoVLUXEI16_V_M1_MF2 = 6737,
+ PseudoVLUXEI16_V_M1_MF2_MASK = 6738,
+ PseudoVLUXEI16_V_M2_M1 = 6739,
+ PseudoVLUXEI16_V_M2_M1_MASK = 6740,
+ PseudoVLUXEI16_V_M2_M2 = 6741,
+ PseudoVLUXEI16_V_M2_M2_MASK = 6742,
+ PseudoVLUXEI16_V_M2_M4 = 6743,
+ PseudoVLUXEI16_V_M2_M4_MASK = 6744,
+ PseudoVLUXEI16_V_M2_M8 = 6745,
+ PseudoVLUXEI16_V_M2_M8_MASK = 6746,
+ PseudoVLUXEI16_V_M4_M2 = 6747,
+ PseudoVLUXEI16_V_M4_M2_MASK = 6748,
+ PseudoVLUXEI16_V_M4_M4 = 6749,
+ PseudoVLUXEI16_V_M4_M4_MASK = 6750,
+ PseudoVLUXEI16_V_M4_M8 = 6751,
+ PseudoVLUXEI16_V_M4_M8_MASK = 6752,
+ PseudoVLUXEI16_V_M8_M4 = 6753,
+ PseudoVLUXEI16_V_M8_M4_MASK = 6754,
+ PseudoVLUXEI16_V_M8_M8 = 6755,
+ PseudoVLUXEI16_V_M8_M8_MASK = 6756,
+ PseudoVLUXEI16_V_MF2_M1 = 6757,
+ PseudoVLUXEI16_V_MF2_M1_MASK = 6758,
+ PseudoVLUXEI16_V_MF2_M2 = 6759,
+ PseudoVLUXEI16_V_MF2_M2_MASK = 6760,
+ PseudoVLUXEI16_V_MF2_MF2 = 6761,
+ PseudoVLUXEI16_V_MF2_MF2_MASK = 6762,
+ PseudoVLUXEI16_V_MF2_MF4 = 6763,
+ PseudoVLUXEI16_V_MF2_MF4_MASK = 6764,
+ PseudoVLUXEI16_V_MF4_M1 = 6765,
+ PseudoVLUXEI16_V_MF4_M1_MASK = 6766,
+ PseudoVLUXEI16_V_MF4_MF2 = 6767,
+ PseudoVLUXEI16_V_MF4_MF2_MASK = 6768,
+ PseudoVLUXEI16_V_MF4_MF4 = 6769,
+ PseudoVLUXEI16_V_MF4_MF4_MASK = 6770,
+ PseudoVLUXEI16_V_MF4_MF8 = 6771,
+ PseudoVLUXEI16_V_MF4_MF8_MASK = 6772,
+ PseudoVLUXEI32_V_M1_M1 = 6773,
+ PseudoVLUXEI32_V_M1_M1_MASK = 6774,
+ PseudoVLUXEI32_V_M1_M2 = 6775,
+ PseudoVLUXEI32_V_M1_M2_MASK = 6776,
+ PseudoVLUXEI32_V_M1_MF2 = 6777,
+ PseudoVLUXEI32_V_M1_MF2_MASK = 6778,
+ PseudoVLUXEI32_V_M1_MF4 = 6779,
+ PseudoVLUXEI32_V_M1_MF4_MASK = 6780,
+ PseudoVLUXEI32_V_M2_M1 = 6781,
+ PseudoVLUXEI32_V_M2_M1_MASK = 6782,
+ PseudoVLUXEI32_V_M2_M2 = 6783,
+ PseudoVLUXEI32_V_M2_M2_MASK = 6784,
+ PseudoVLUXEI32_V_M2_M4 = 6785,
+ PseudoVLUXEI32_V_M2_M4_MASK = 6786,
+ PseudoVLUXEI32_V_M2_MF2 = 6787,
+ PseudoVLUXEI32_V_M2_MF2_MASK = 6788,
+ PseudoVLUXEI32_V_M4_M1 = 6789,
+ PseudoVLUXEI32_V_M4_M1_MASK = 6790,
+ PseudoVLUXEI32_V_M4_M2 = 6791,
+ PseudoVLUXEI32_V_M4_M2_MASK = 6792,
+ PseudoVLUXEI32_V_M4_M4 = 6793,
+ PseudoVLUXEI32_V_M4_M4_MASK = 6794,
+ PseudoVLUXEI32_V_M4_M8 = 6795,
+ PseudoVLUXEI32_V_M4_M8_MASK = 6796,
+ PseudoVLUXEI32_V_M8_M2 = 6797,
+ PseudoVLUXEI32_V_M8_M2_MASK = 6798,
+ PseudoVLUXEI32_V_M8_M4 = 6799,
+ PseudoVLUXEI32_V_M8_M4_MASK = 6800,
+ PseudoVLUXEI32_V_M8_M8 = 6801,
+ PseudoVLUXEI32_V_M8_M8_MASK = 6802,
+ PseudoVLUXEI32_V_MF2_M1 = 6803,
+ PseudoVLUXEI32_V_MF2_M1_MASK = 6804,
+ PseudoVLUXEI32_V_MF2_MF2 = 6805,
+ PseudoVLUXEI32_V_MF2_MF2_MASK = 6806,
+ PseudoVLUXEI32_V_MF2_MF4 = 6807,
+ PseudoVLUXEI32_V_MF2_MF4_MASK = 6808,
+ PseudoVLUXEI32_V_MF2_MF8 = 6809,
+ PseudoVLUXEI32_V_MF2_MF8_MASK = 6810,
+ PseudoVLUXEI64_V_M1_M1 = 6811,
+ PseudoVLUXEI64_V_M1_M1_MASK = 6812,
+ PseudoVLUXEI64_V_M1_MF2 = 6813,
+ PseudoVLUXEI64_V_M1_MF2_MASK = 6814,
+ PseudoVLUXEI64_V_M1_MF4 = 6815,
+ PseudoVLUXEI64_V_M1_MF4_MASK = 6816,
+ PseudoVLUXEI64_V_M1_MF8 = 6817,
+ PseudoVLUXEI64_V_M1_MF8_MASK = 6818,
+ PseudoVLUXEI64_V_M2_M1 = 6819,
+ PseudoVLUXEI64_V_M2_M1_MASK = 6820,
+ PseudoVLUXEI64_V_M2_M2 = 6821,
+ PseudoVLUXEI64_V_M2_M2_MASK = 6822,
+ PseudoVLUXEI64_V_M2_MF2 = 6823,
+ PseudoVLUXEI64_V_M2_MF2_MASK = 6824,
+ PseudoVLUXEI64_V_M2_MF4 = 6825,
+ PseudoVLUXEI64_V_M2_MF4_MASK = 6826,
+ PseudoVLUXEI64_V_M4_M1 = 6827,
+ PseudoVLUXEI64_V_M4_M1_MASK = 6828,
+ PseudoVLUXEI64_V_M4_M2 = 6829,
+ PseudoVLUXEI64_V_M4_M2_MASK = 6830,
+ PseudoVLUXEI64_V_M4_M4 = 6831,
+ PseudoVLUXEI64_V_M4_M4_MASK = 6832,
+ PseudoVLUXEI64_V_M4_MF2 = 6833,
+ PseudoVLUXEI64_V_M4_MF2_MASK = 6834,
+ PseudoVLUXEI64_V_M8_M1 = 6835,
+ PseudoVLUXEI64_V_M8_M1_MASK = 6836,
+ PseudoVLUXEI64_V_M8_M2 = 6837,
+ PseudoVLUXEI64_V_M8_M2_MASK = 6838,
+ PseudoVLUXEI64_V_M8_M4 = 6839,
+ PseudoVLUXEI64_V_M8_M4_MASK = 6840,
+ PseudoVLUXEI64_V_M8_M8 = 6841,
+ PseudoVLUXEI64_V_M8_M8_MASK = 6842,
+ PseudoVLUXEI8_V_M1_M1 = 6843,
+ PseudoVLUXEI8_V_M1_M1_MASK = 6844,
+ PseudoVLUXEI8_V_M1_M2 = 6845,
+ PseudoVLUXEI8_V_M1_M2_MASK = 6846,
+ PseudoVLUXEI8_V_M1_M4 = 6847,
+ PseudoVLUXEI8_V_M1_M4_MASK = 6848,
+ PseudoVLUXEI8_V_M1_M8 = 6849,
+ PseudoVLUXEI8_V_M1_M8_MASK = 6850,
+ PseudoVLUXEI8_V_M2_M2 = 6851,
+ PseudoVLUXEI8_V_M2_M2_MASK = 6852,
+ PseudoVLUXEI8_V_M2_M4 = 6853,
+ PseudoVLUXEI8_V_M2_M4_MASK = 6854,
+ PseudoVLUXEI8_V_M2_M8 = 6855,
+ PseudoVLUXEI8_V_M2_M8_MASK = 6856,
+ PseudoVLUXEI8_V_M4_M4 = 6857,
+ PseudoVLUXEI8_V_M4_M4_MASK = 6858,
+ PseudoVLUXEI8_V_M4_M8 = 6859,
+ PseudoVLUXEI8_V_M4_M8_MASK = 6860,
+ PseudoVLUXEI8_V_M8_M8 = 6861,
+ PseudoVLUXEI8_V_M8_M8_MASK = 6862,
+ PseudoVLUXEI8_V_MF2_M1 = 6863,
+ PseudoVLUXEI8_V_MF2_M1_MASK = 6864,
+ PseudoVLUXEI8_V_MF2_M2 = 6865,
+ PseudoVLUXEI8_V_MF2_M2_MASK = 6866,
+ PseudoVLUXEI8_V_MF2_M4 = 6867,
+ PseudoVLUXEI8_V_MF2_M4_MASK = 6868,
+ PseudoVLUXEI8_V_MF2_MF2 = 6869,
+ PseudoVLUXEI8_V_MF2_MF2_MASK = 6870,
+ PseudoVLUXEI8_V_MF4_M1 = 6871,
+ PseudoVLUXEI8_V_MF4_M1_MASK = 6872,
+ PseudoVLUXEI8_V_MF4_M2 = 6873,
+ PseudoVLUXEI8_V_MF4_M2_MASK = 6874,
+ PseudoVLUXEI8_V_MF4_MF2 = 6875,
+ PseudoVLUXEI8_V_MF4_MF2_MASK = 6876,
+ PseudoVLUXEI8_V_MF4_MF4 = 6877,
+ PseudoVLUXEI8_V_MF4_MF4_MASK = 6878,
+ PseudoVLUXEI8_V_MF8_M1 = 6879,
+ PseudoVLUXEI8_V_MF8_M1_MASK = 6880,
+ PseudoVLUXEI8_V_MF8_MF2 = 6881,
+ PseudoVLUXEI8_V_MF8_MF2_MASK = 6882,
+ PseudoVLUXEI8_V_MF8_MF4 = 6883,
+ PseudoVLUXEI8_V_MF8_MF4_MASK = 6884,
+ PseudoVLUXEI8_V_MF8_MF8 = 6885,
+ PseudoVLUXEI8_V_MF8_MF8_MASK = 6886,
+ PseudoVLUXSEG2EI16_V_M1_M1 = 6887,
+ PseudoVLUXSEG2EI16_V_M1_M1_MASK = 6888,
+ PseudoVLUXSEG2EI16_V_M1_M2 = 6889,
+ PseudoVLUXSEG2EI16_V_M1_M2_MASK = 6890,
+ PseudoVLUXSEG2EI16_V_M1_M4 = 6891,
+ PseudoVLUXSEG2EI16_V_M1_M4_MASK = 6892,
+ PseudoVLUXSEG2EI16_V_M1_MF2 = 6893,
+ PseudoVLUXSEG2EI16_V_M1_MF2_MASK = 6894,
+ PseudoVLUXSEG2EI16_V_M2_M1 = 6895,
+ PseudoVLUXSEG2EI16_V_M2_M1_MASK = 6896,
+ PseudoVLUXSEG2EI16_V_M2_M2 = 6897,
+ PseudoVLUXSEG2EI16_V_M2_M2_MASK = 6898,
+ PseudoVLUXSEG2EI16_V_M2_M4 = 6899,
+ PseudoVLUXSEG2EI16_V_M2_M4_MASK = 6900,
+ PseudoVLUXSEG2EI16_V_M4_M2 = 6901,
+ PseudoVLUXSEG2EI16_V_M4_M2_MASK = 6902,
+ PseudoVLUXSEG2EI16_V_M4_M4 = 6903,
+ PseudoVLUXSEG2EI16_V_M4_M4_MASK = 6904,
+ PseudoVLUXSEG2EI16_V_M8_M4 = 6905,
+ PseudoVLUXSEG2EI16_V_M8_M4_MASK = 6906,
+ PseudoVLUXSEG2EI16_V_MF2_M1 = 6907,
+ PseudoVLUXSEG2EI16_V_MF2_M1_MASK = 6908,
+ PseudoVLUXSEG2EI16_V_MF2_M2 = 6909,
+ PseudoVLUXSEG2EI16_V_MF2_M2_MASK = 6910,
+ PseudoVLUXSEG2EI16_V_MF2_MF2 = 6911,
+ PseudoVLUXSEG2EI16_V_MF2_MF2_MASK = 6912,
+ PseudoVLUXSEG2EI16_V_MF2_MF4 = 6913,
+ PseudoVLUXSEG2EI16_V_MF2_MF4_MASK = 6914,
+ PseudoVLUXSEG2EI16_V_MF4_M1 = 6915,
+ PseudoVLUXSEG2EI16_V_MF4_M1_MASK = 6916,
+ PseudoVLUXSEG2EI16_V_MF4_MF2 = 6917,
+ PseudoVLUXSEG2EI16_V_MF4_MF2_MASK = 6918,
+ PseudoVLUXSEG2EI16_V_MF4_MF4 = 6919,
+ PseudoVLUXSEG2EI16_V_MF4_MF4_MASK = 6920,
+ PseudoVLUXSEG2EI16_V_MF4_MF8 = 6921,
+ PseudoVLUXSEG2EI16_V_MF4_MF8_MASK = 6922,
+ PseudoVLUXSEG2EI32_V_M1_M1 = 6923,
+ PseudoVLUXSEG2EI32_V_M1_M1_MASK = 6924,
+ PseudoVLUXSEG2EI32_V_M1_M2 = 6925,
+ PseudoVLUXSEG2EI32_V_M1_M2_MASK = 6926,
+ PseudoVLUXSEG2EI32_V_M1_MF2 = 6927,
+ PseudoVLUXSEG2EI32_V_M1_MF2_MASK = 6928,
+ PseudoVLUXSEG2EI32_V_M1_MF4 = 6929,
+ PseudoVLUXSEG2EI32_V_M1_MF4_MASK = 6930,
+ PseudoVLUXSEG2EI32_V_M2_M1 = 6931,
+ PseudoVLUXSEG2EI32_V_M2_M1_MASK = 6932,
+ PseudoVLUXSEG2EI32_V_M2_M2 = 6933,
+ PseudoVLUXSEG2EI32_V_M2_M2_MASK = 6934,
+ PseudoVLUXSEG2EI32_V_M2_M4 = 6935,
+ PseudoVLUXSEG2EI32_V_M2_M4_MASK = 6936,
+ PseudoVLUXSEG2EI32_V_M2_MF2 = 6937,
+ PseudoVLUXSEG2EI32_V_M2_MF2_MASK = 6938,
+ PseudoVLUXSEG2EI32_V_M4_M1 = 6939,
+ PseudoVLUXSEG2EI32_V_M4_M1_MASK = 6940,
+ PseudoVLUXSEG2EI32_V_M4_M2 = 6941,
+ PseudoVLUXSEG2EI32_V_M4_M2_MASK = 6942,
+ PseudoVLUXSEG2EI32_V_M4_M4 = 6943,
+ PseudoVLUXSEG2EI32_V_M4_M4_MASK = 6944,
+ PseudoVLUXSEG2EI32_V_M8_M2 = 6945,
+ PseudoVLUXSEG2EI32_V_M8_M2_MASK = 6946,
+ PseudoVLUXSEG2EI32_V_M8_M4 = 6947,
+ PseudoVLUXSEG2EI32_V_M8_M4_MASK = 6948,
+ PseudoVLUXSEG2EI32_V_MF2_M1 = 6949,
+ PseudoVLUXSEG2EI32_V_MF2_M1_MASK = 6950,
+ PseudoVLUXSEG2EI32_V_MF2_MF2 = 6951,
+ PseudoVLUXSEG2EI32_V_MF2_MF2_MASK = 6952,
+ PseudoVLUXSEG2EI32_V_MF2_MF4 = 6953,
+ PseudoVLUXSEG2EI32_V_MF2_MF4_MASK = 6954,
+ PseudoVLUXSEG2EI32_V_MF2_MF8 = 6955,
+ PseudoVLUXSEG2EI32_V_MF2_MF8_MASK = 6956,
+ PseudoVLUXSEG2EI64_V_M1_M1 = 6957,
+ PseudoVLUXSEG2EI64_V_M1_M1_MASK = 6958,
+ PseudoVLUXSEG2EI64_V_M1_MF2 = 6959,
+ PseudoVLUXSEG2EI64_V_M1_MF2_MASK = 6960,
+ PseudoVLUXSEG2EI64_V_M1_MF4 = 6961,
+ PseudoVLUXSEG2EI64_V_M1_MF4_MASK = 6962,
+ PseudoVLUXSEG2EI64_V_M1_MF8 = 6963,
+ PseudoVLUXSEG2EI64_V_M1_MF8_MASK = 6964,
+ PseudoVLUXSEG2EI64_V_M2_M1 = 6965,
+ PseudoVLUXSEG2EI64_V_M2_M1_MASK = 6966,
+ PseudoVLUXSEG2EI64_V_M2_M2 = 6967,
+ PseudoVLUXSEG2EI64_V_M2_M2_MASK = 6968,
+ PseudoVLUXSEG2EI64_V_M2_MF2 = 6969,
+ PseudoVLUXSEG2EI64_V_M2_MF2_MASK = 6970,
+ PseudoVLUXSEG2EI64_V_M2_MF4 = 6971,
+ PseudoVLUXSEG2EI64_V_M2_MF4_MASK = 6972,
+ PseudoVLUXSEG2EI64_V_M4_M1 = 6973,
+ PseudoVLUXSEG2EI64_V_M4_M1_MASK = 6974,
+ PseudoVLUXSEG2EI64_V_M4_M2 = 6975,
+ PseudoVLUXSEG2EI64_V_M4_M2_MASK = 6976,
+ PseudoVLUXSEG2EI64_V_M4_M4 = 6977,
+ PseudoVLUXSEG2EI64_V_M4_M4_MASK = 6978,
+ PseudoVLUXSEG2EI64_V_M4_MF2 = 6979,
+ PseudoVLUXSEG2EI64_V_M4_MF2_MASK = 6980,
+ PseudoVLUXSEG2EI64_V_M8_M1 = 6981,
+ PseudoVLUXSEG2EI64_V_M8_M1_MASK = 6982,
+ PseudoVLUXSEG2EI64_V_M8_M2 = 6983,
+ PseudoVLUXSEG2EI64_V_M8_M2_MASK = 6984,
+ PseudoVLUXSEG2EI64_V_M8_M4 = 6985,
+ PseudoVLUXSEG2EI64_V_M8_M4_MASK = 6986,
+ PseudoVLUXSEG2EI8_V_M1_M1 = 6987,
+ PseudoVLUXSEG2EI8_V_M1_M1_MASK = 6988,
+ PseudoVLUXSEG2EI8_V_M1_M2 = 6989,
+ PseudoVLUXSEG2EI8_V_M1_M2_MASK = 6990,
+ PseudoVLUXSEG2EI8_V_M1_M4 = 6991,
+ PseudoVLUXSEG2EI8_V_M1_M4_MASK = 6992,
+ PseudoVLUXSEG2EI8_V_M2_M2 = 6993,
+ PseudoVLUXSEG2EI8_V_M2_M2_MASK = 6994,
+ PseudoVLUXSEG2EI8_V_M2_M4 = 6995,
+ PseudoVLUXSEG2EI8_V_M2_M4_MASK = 6996,
+ PseudoVLUXSEG2EI8_V_M4_M4 = 6997,
+ PseudoVLUXSEG2EI8_V_M4_M4_MASK = 6998,
+ PseudoVLUXSEG2EI8_V_MF2_M1 = 6999,
+ PseudoVLUXSEG2EI8_V_MF2_M1_MASK = 7000,
+ PseudoVLUXSEG2EI8_V_MF2_M2 = 7001,
+ PseudoVLUXSEG2EI8_V_MF2_M2_MASK = 7002,
+ PseudoVLUXSEG2EI8_V_MF2_M4 = 7003,
+ PseudoVLUXSEG2EI8_V_MF2_M4_MASK = 7004,
+ PseudoVLUXSEG2EI8_V_MF2_MF2 = 7005,
+ PseudoVLUXSEG2EI8_V_MF2_MF2_MASK = 7006,
+ PseudoVLUXSEG2EI8_V_MF4_M1 = 7007,
+ PseudoVLUXSEG2EI8_V_MF4_M1_MASK = 7008,
+ PseudoVLUXSEG2EI8_V_MF4_M2 = 7009,
+ PseudoVLUXSEG2EI8_V_MF4_M2_MASK = 7010,
+ PseudoVLUXSEG2EI8_V_MF4_MF2 = 7011,
+ PseudoVLUXSEG2EI8_V_MF4_MF2_MASK = 7012,
+ PseudoVLUXSEG2EI8_V_MF4_MF4 = 7013,
+ PseudoVLUXSEG2EI8_V_MF4_MF4_MASK = 7014,
+ PseudoVLUXSEG2EI8_V_MF8_M1 = 7015,
+ PseudoVLUXSEG2EI8_V_MF8_M1_MASK = 7016,
+ PseudoVLUXSEG2EI8_V_MF8_MF2 = 7017,
+ PseudoVLUXSEG2EI8_V_MF8_MF2_MASK = 7018,
+ PseudoVLUXSEG2EI8_V_MF8_MF4 = 7019,
+ PseudoVLUXSEG2EI8_V_MF8_MF4_MASK = 7020,
+ PseudoVLUXSEG2EI8_V_MF8_MF8 = 7021,
+ PseudoVLUXSEG2EI8_V_MF8_MF8_MASK = 7022,
+ PseudoVLUXSEG3EI16_V_M1_M1 = 7023,
+ PseudoVLUXSEG3EI16_V_M1_M1_MASK = 7024,
+ PseudoVLUXSEG3EI16_V_M1_M2 = 7025,
+ PseudoVLUXSEG3EI16_V_M1_M2_MASK = 7026,
+ PseudoVLUXSEG3EI16_V_M1_MF2 = 7027,
+ PseudoVLUXSEG3EI16_V_M1_MF2_MASK = 7028,
+ PseudoVLUXSEG3EI16_V_M2_M1 = 7029,
+ PseudoVLUXSEG3EI16_V_M2_M1_MASK = 7030,
+ PseudoVLUXSEG3EI16_V_M2_M2 = 7031,
+ PseudoVLUXSEG3EI16_V_M2_M2_MASK = 7032,
+ PseudoVLUXSEG3EI16_V_M4_M2 = 7033,
+ PseudoVLUXSEG3EI16_V_M4_M2_MASK = 7034,
+ PseudoVLUXSEG3EI16_V_MF2_M1 = 7035,
+ PseudoVLUXSEG3EI16_V_MF2_M1_MASK = 7036,
+ PseudoVLUXSEG3EI16_V_MF2_M2 = 7037,
+ PseudoVLUXSEG3EI16_V_MF2_M2_MASK = 7038,
+ PseudoVLUXSEG3EI16_V_MF2_MF2 = 7039,
+ PseudoVLUXSEG3EI16_V_MF2_MF2_MASK = 7040,
+ PseudoVLUXSEG3EI16_V_MF2_MF4 = 7041,
+ PseudoVLUXSEG3EI16_V_MF2_MF4_MASK = 7042,
+ PseudoVLUXSEG3EI16_V_MF4_M1 = 7043,
+ PseudoVLUXSEG3EI16_V_MF4_M1_MASK = 7044,
+ PseudoVLUXSEG3EI16_V_MF4_MF2 = 7045,
+ PseudoVLUXSEG3EI16_V_MF4_MF2_MASK = 7046,
+ PseudoVLUXSEG3EI16_V_MF4_MF4 = 7047,
+ PseudoVLUXSEG3EI16_V_MF4_MF4_MASK = 7048,
+ PseudoVLUXSEG3EI16_V_MF4_MF8 = 7049,
+ PseudoVLUXSEG3EI16_V_MF4_MF8_MASK = 7050,
+ PseudoVLUXSEG3EI32_V_M1_M1 = 7051,
+ PseudoVLUXSEG3EI32_V_M1_M1_MASK = 7052,
+ PseudoVLUXSEG3EI32_V_M1_M2 = 7053,
+ PseudoVLUXSEG3EI32_V_M1_M2_MASK = 7054,
+ PseudoVLUXSEG3EI32_V_M1_MF2 = 7055,
+ PseudoVLUXSEG3EI32_V_M1_MF2_MASK = 7056,
+ PseudoVLUXSEG3EI32_V_M1_MF4 = 7057,
+ PseudoVLUXSEG3EI32_V_M1_MF4_MASK = 7058,
+ PseudoVLUXSEG3EI32_V_M2_M1 = 7059,
+ PseudoVLUXSEG3EI32_V_M2_M1_MASK = 7060,
+ PseudoVLUXSEG3EI32_V_M2_M2 = 7061,
+ PseudoVLUXSEG3EI32_V_M2_M2_MASK = 7062,
+ PseudoVLUXSEG3EI32_V_M2_MF2 = 7063,
+ PseudoVLUXSEG3EI32_V_M2_MF2_MASK = 7064,
+ PseudoVLUXSEG3EI32_V_M4_M1 = 7065,
+ PseudoVLUXSEG3EI32_V_M4_M1_MASK = 7066,
+ PseudoVLUXSEG3EI32_V_M4_M2 = 7067,
+ PseudoVLUXSEG3EI32_V_M4_M2_MASK = 7068,
+ PseudoVLUXSEG3EI32_V_M8_M2 = 7069,
+ PseudoVLUXSEG3EI32_V_M8_M2_MASK = 7070,
+ PseudoVLUXSEG3EI32_V_MF2_M1 = 7071,
+ PseudoVLUXSEG3EI32_V_MF2_M1_MASK = 7072,
+ PseudoVLUXSEG3EI32_V_MF2_MF2 = 7073,
+ PseudoVLUXSEG3EI32_V_MF2_MF2_MASK = 7074,
+ PseudoVLUXSEG3EI32_V_MF2_MF4 = 7075,
+ PseudoVLUXSEG3EI32_V_MF2_MF4_MASK = 7076,
+ PseudoVLUXSEG3EI32_V_MF2_MF8 = 7077,
+ PseudoVLUXSEG3EI32_V_MF2_MF8_MASK = 7078,
+ PseudoVLUXSEG3EI64_V_M1_M1 = 7079,
+ PseudoVLUXSEG3EI64_V_M1_M1_MASK = 7080,
+ PseudoVLUXSEG3EI64_V_M1_MF2 = 7081,
+ PseudoVLUXSEG3EI64_V_M1_MF2_MASK = 7082,
+ PseudoVLUXSEG3EI64_V_M1_MF4 = 7083,
+ PseudoVLUXSEG3EI64_V_M1_MF4_MASK = 7084,
+ PseudoVLUXSEG3EI64_V_M1_MF8 = 7085,
+ PseudoVLUXSEG3EI64_V_M1_MF8_MASK = 7086,
+ PseudoVLUXSEG3EI64_V_M2_M1 = 7087,
+ PseudoVLUXSEG3EI64_V_M2_M1_MASK = 7088,
+ PseudoVLUXSEG3EI64_V_M2_M2 = 7089,
+ PseudoVLUXSEG3EI64_V_M2_M2_MASK = 7090,
+ PseudoVLUXSEG3EI64_V_M2_MF2 = 7091,
+ PseudoVLUXSEG3EI64_V_M2_MF2_MASK = 7092,
+ PseudoVLUXSEG3EI64_V_M2_MF4 = 7093,
+ PseudoVLUXSEG3EI64_V_M2_MF4_MASK = 7094,
+ PseudoVLUXSEG3EI64_V_M4_M1 = 7095,
+ PseudoVLUXSEG3EI64_V_M4_M1_MASK = 7096,
+ PseudoVLUXSEG3EI64_V_M4_M2 = 7097,
+ PseudoVLUXSEG3EI64_V_M4_M2_MASK = 7098,
+ PseudoVLUXSEG3EI64_V_M4_MF2 = 7099,
+ PseudoVLUXSEG3EI64_V_M4_MF2_MASK = 7100,
+ PseudoVLUXSEG3EI64_V_M8_M1 = 7101,
+ PseudoVLUXSEG3EI64_V_M8_M1_MASK = 7102,
+ PseudoVLUXSEG3EI64_V_M8_M2 = 7103,
+ PseudoVLUXSEG3EI64_V_M8_M2_MASK = 7104,
+ PseudoVLUXSEG3EI8_V_M1_M1 = 7105,
+ PseudoVLUXSEG3EI8_V_M1_M1_MASK = 7106,
+ PseudoVLUXSEG3EI8_V_M1_M2 = 7107,
+ PseudoVLUXSEG3EI8_V_M1_M2_MASK = 7108,
+ PseudoVLUXSEG3EI8_V_M2_M2 = 7109,
+ PseudoVLUXSEG3EI8_V_M2_M2_MASK = 7110,
+ PseudoVLUXSEG3EI8_V_MF2_M1 = 7111,
+ PseudoVLUXSEG3EI8_V_MF2_M1_MASK = 7112,
+ PseudoVLUXSEG3EI8_V_MF2_M2 = 7113,
+ PseudoVLUXSEG3EI8_V_MF2_M2_MASK = 7114,
+ PseudoVLUXSEG3EI8_V_MF2_MF2 = 7115,
+ PseudoVLUXSEG3EI8_V_MF2_MF2_MASK = 7116,
+ PseudoVLUXSEG3EI8_V_MF4_M1 = 7117,
+ PseudoVLUXSEG3EI8_V_MF4_M1_MASK = 7118,
+ PseudoVLUXSEG3EI8_V_MF4_M2 = 7119,
+ PseudoVLUXSEG3EI8_V_MF4_M2_MASK = 7120,
+ PseudoVLUXSEG3EI8_V_MF4_MF2 = 7121,
+ PseudoVLUXSEG3EI8_V_MF4_MF2_MASK = 7122,
+ PseudoVLUXSEG3EI8_V_MF4_MF4 = 7123,
+ PseudoVLUXSEG3EI8_V_MF4_MF4_MASK = 7124,
+ PseudoVLUXSEG3EI8_V_MF8_M1 = 7125,
+ PseudoVLUXSEG3EI8_V_MF8_M1_MASK = 7126,
+ PseudoVLUXSEG3EI8_V_MF8_MF2 = 7127,
+ PseudoVLUXSEG3EI8_V_MF8_MF2_MASK = 7128,
+ PseudoVLUXSEG3EI8_V_MF8_MF4 = 7129,
+ PseudoVLUXSEG3EI8_V_MF8_MF4_MASK = 7130,
+ PseudoVLUXSEG3EI8_V_MF8_MF8 = 7131,
+ PseudoVLUXSEG3EI8_V_MF8_MF8_MASK = 7132,
+ PseudoVLUXSEG4EI16_V_M1_M1 = 7133,
+ PseudoVLUXSEG4EI16_V_M1_M1_MASK = 7134,
+ PseudoVLUXSEG4EI16_V_M1_M2 = 7135,
+ PseudoVLUXSEG4EI16_V_M1_M2_MASK = 7136,
+ PseudoVLUXSEG4EI16_V_M1_MF2 = 7137,
+ PseudoVLUXSEG4EI16_V_M1_MF2_MASK = 7138,
+ PseudoVLUXSEG4EI16_V_M2_M1 = 7139,
+ PseudoVLUXSEG4EI16_V_M2_M1_MASK = 7140,
+ PseudoVLUXSEG4EI16_V_M2_M2 = 7141,
+ PseudoVLUXSEG4EI16_V_M2_M2_MASK = 7142,
+ PseudoVLUXSEG4EI16_V_M4_M2 = 7143,
+ PseudoVLUXSEG4EI16_V_M4_M2_MASK = 7144,
+ PseudoVLUXSEG4EI16_V_MF2_M1 = 7145,
+ PseudoVLUXSEG4EI16_V_MF2_M1_MASK = 7146,
+ PseudoVLUXSEG4EI16_V_MF2_M2 = 7147,
+ PseudoVLUXSEG4EI16_V_MF2_M2_MASK = 7148,
+ PseudoVLUXSEG4EI16_V_MF2_MF2 = 7149,
+ PseudoVLUXSEG4EI16_V_MF2_MF2_MASK = 7150,
+ PseudoVLUXSEG4EI16_V_MF2_MF4 = 7151,
+ PseudoVLUXSEG4EI16_V_MF2_MF4_MASK = 7152,
+ PseudoVLUXSEG4EI16_V_MF4_M1 = 7153,
+ PseudoVLUXSEG4EI16_V_MF4_M1_MASK = 7154,
+ PseudoVLUXSEG4EI16_V_MF4_MF2 = 7155,
+ PseudoVLUXSEG4EI16_V_MF4_MF2_MASK = 7156,
+ PseudoVLUXSEG4EI16_V_MF4_MF4 = 7157,
+ PseudoVLUXSEG4EI16_V_MF4_MF4_MASK = 7158,
+ PseudoVLUXSEG4EI16_V_MF4_MF8 = 7159,
+ PseudoVLUXSEG4EI16_V_MF4_MF8_MASK = 7160,
+ PseudoVLUXSEG4EI32_V_M1_M1 = 7161,
+ PseudoVLUXSEG4EI32_V_M1_M1_MASK = 7162,
+ PseudoVLUXSEG4EI32_V_M1_M2 = 7163,
+ PseudoVLUXSEG4EI32_V_M1_M2_MASK = 7164,
+ PseudoVLUXSEG4EI32_V_M1_MF2 = 7165,
+ PseudoVLUXSEG4EI32_V_M1_MF2_MASK = 7166,
+ PseudoVLUXSEG4EI32_V_M1_MF4 = 7167,
+ PseudoVLUXSEG4EI32_V_M1_MF4_MASK = 7168,
+ PseudoVLUXSEG4EI32_V_M2_M1 = 7169,
+ PseudoVLUXSEG4EI32_V_M2_M1_MASK = 7170,
+ PseudoVLUXSEG4EI32_V_M2_M2 = 7171,
+ PseudoVLUXSEG4EI32_V_M2_M2_MASK = 7172,
+ PseudoVLUXSEG4EI32_V_M2_MF2 = 7173,
+ PseudoVLUXSEG4EI32_V_M2_MF2_MASK = 7174,
+ PseudoVLUXSEG4EI32_V_M4_M1 = 7175,
+ PseudoVLUXSEG4EI32_V_M4_M1_MASK = 7176,
+ PseudoVLUXSEG4EI32_V_M4_M2 = 7177,
+ PseudoVLUXSEG4EI32_V_M4_M2_MASK = 7178,
+ PseudoVLUXSEG4EI32_V_M8_M2 = 7179,
+ PseudoVLUXSEG4EI32_V_M8_M2_MASK = 7180,
+ PseudoVLUXSEG4EI32_V_MF2_M1 = 7181,
+ PseudoVLUXSEG4EI32_V_MF2_M1_MASK = 7182,
+ PseudoVLUXSEG4EI32_V_MF2_MF2 = 7183,
+ PseudoVLUXSEG4EI32_V_MF2_MF2_MASK = 7184,
+ PseudoVLUXSEG4EI32_V_MF2_MF4 = 7185,
+ PseudoVLUXSEG4EI32_V_MF2_MF4_MASK = 7186,
+ PseudoVLUXSEG4EI32_V_MF2_MF8 = 7187,
+ PseudoVLUXSEG4EI32_V_MF2_MF8_MASK = 7188,
+ PseudoVLUXSEG4EI64_V_M1_M1 = 7189,
+ PseudoVLUXSEG4EI64_V_M1_M1_MASK = 7190,
+ PseudoVLUXSEG4EI64_V_M1_MF2 = 7191,
+ PseudoVLUXSEG4EI64_V_M1_MF2_MASK = 7192,
+ PseudoVLUXSEG4EI64_V_M1_MF4 = 7193,
+ PseudoVLUXSEG4EI64_V_M1_MF4_MASK = 7194,
+ PseudoVLUXSEG4EI64_V_M1_MF8 = 7195,
+ PseudoVLUXSEG4EI64_V_M1_MF8_MASK = 7196,
+ PseudoVLUXSEG4EI64_V_M2_M1 = 7197,
+ PseudoVLUXSEG4EI64_V_M2_M1_MASK = 7198,
+ PseudoVLUXSEG4EI64_V_M2_M2 = 7199,
+ PseudoVLUXSEG4EI64_V_M2_M2_MASK = 7200,
+ PseudoVLUXSEG4EI64_V_M2_MF2 = 7201,
+ PseudoVLUXSEG4EI64_V_M2_MF2_MASK = 7202,
+ PseudoVLUXSEG4EI64_V_M2_MF4 = 7203,
+ PseudoVLUXSEG4EI64_V_M2_MF4_MASK = 7204,
+ PseudoVLUXSEG4EI64_V_M4_M1 = 7205,
+ PseudoVLUXSEG4EI64_V_M4_M1_MASK = 7206,
+ PseudoVLUXSEG4EI64_V_M4_M2 = 7207,
+ PseudoVLUXSEG4EI64_V_M4_M2_MASK = 7208,
+ PseudoVLUXSEG4EI64_V_M4_MF2 = 7209,
+ PseudoVLUXSEG4EI64_V_M4_MF2_MASK = 7210,
+ PseudoVLUXSEG4EI64_V_M8_M1 = 7211,
+ PseudoVLUXSEG4EI64_V_M8_M1_MASK = 7212,
+ PseudoVLUXSEG4EI64_V_M8_M2 = 7213,
+ PseudoVLUXSEG4EI64_V_M8_M2_MASK = 7214,
+ PseudoVLUXSEG4EI8_V_M1_M1 = 7215,
+ PseudoVLUXSEG4EI8_V_M1_M1_MASK = 7216,
+ PseudoVLUXSEG4EI8_V_M1_M2 = 7217,
+ PseudoVLUXSEG4EI8_V_M1_M2_MASK = 7218,
+ PseudoVLUXSEG4EI8_V_M2_M2 = 7219,
+ PseudoVLUXSEG4EI8_V_M2_M2_MASK = 7220,
+ PseudoVLUXSEG4EI8_V_MF2_M1 = 7221,
+ PseudoVLUXSEG4EI8_V_MF2_M1_MASK = 7222,
+ PseudoVLUXSEG4EI8_V_MF2_M2 = 7223,
+ PseudoVLUXSEG4EI8_V_MF2_M2_MASK = 7224,
+ PseudoVLUXSEG4EI8_V_MF2_MF2 = 7225,
+ PseudoVLUXSEG4EI8_V_MF2_MF2_MASK = 7226,
+ PseudoVLUXSEG4EI8_V_MF4_M1 = 7227,
+ PseudoVLUXSEG4EI8_V_MF4_M1_MASK = 7228,
+ PseudoVLUXSEG4EI8_V_MF4_M2 = 7229,
+ PseudoVLUXSEG4EI8_V_MF4_M2_MASK = 7230,
+ PseudoVLUXSEG4EI8_V_MF4_MF2 = 7231,
+ PseudoVLUXSEG4EI8_V_MF4_MF2_MASK = 7232,
+ PseudoVLUXSEG4EI8_V_MF4_MF4 = 7233,
+ PseudoVLUXSEG4EI8_V_MF4_MF4_MASK = 7234,
+ PseudoVLUXSEG4EI8_V_MF8_M1 = 7235,
+ PseudoVLUXSEG4EI8_V_MF8_M1_MASK = 7236,
+ PseudoVLUXSEG4EI8_V_MF8_MF2 = 7237,
+ PseudoVLUXSEG4EI8_V_MF8_MF2_MASK = 7238,
+ PseudoVLUXSEG4EI8_V_MF8_MF4 = 7239,
+ PseudoVLUXSEG4EI8_V_MF8_MF4_MASK = 7240,
+ PseudoVLUXSEG4EI8_V_MF8_MF8 = 7241,
+ PseudoVLUXSEG4EI8_V_MF8_MF8_MASK = 7242,
+ PseudoVLUXSEG5EI16_V_M1_M1 = 7243,
+ PseudoVLUXSEG5EI16_V_M1_M1_MASK = 7244,
+ PseudoVLUXSEG5EI16_V_M1_MF2 = 7245,
+ PseudoVLUXSEG5EI16_V_M1_MF2_MASK = 7246,
+ PseudoVLUXSEG5EI16_V_M2_M1 = 7247,
+ PseudoVLUXSEG5EI16_V_M2_M1_MASK = 7248,
+ PseudoVLUXSEG5EI16_V_MF2_M1 = 7249,
+ PseudoVLUXSEG5EI16_V_MF2_M1_MASK = 7250,
+ PseudoVLUXSEG5EI16_V_MF2_MF2 = 7251,
+ PseudoVLUXSEG5EI16_V_MF2_MF2_MASK = 7252,
+ PseudoVLUXSEG5EI16_V_MF2_MF4 = 7253,
+ PseudoVLUXSEG5EI16_V_MF2_MF4_MASK = 7254,
+ PseudoVLUXSEG5EI16_V_MF4_M1 = 7255,
+ PseudoVLUXSEG5EI16_V_MF4_M1_MASK = 7256,
+ PseudoVLUXSEG5EI16_V_MF4_MF2 = 7257,
+ PseudoVLUXSEG5EI16_V_MF4_MF2_MASK = 7258,
+ PseudoVLUXSEG5EI16_V_MF4_MF4 = 7259,
+ PseudoVLUXSEG5EI16_V_MF4_MF4_MASK = 7260,
+ PseudoVLUXSEG5EI16_V_MF4_MF8 = 7261,
+ PseudoVLUXSEG5EI16_V_MF4_MF8_MASK = 7262,
+ PseudoVLUXSEG5EI32_V_M1_M1 = 7263,
+ PseudoVLUXSEG5EI32_V_M1_M1_MASK = 7264,
+ PseudoVLUXSEG5EI32_V_M1_MF2 = 7265,
+ PseudoVLUXSEG5EI32_V_M1_MF2_MASK = 7266,
+ PseudoVLUXSEG5EI32_V_M1_MF4 = 7267,
+ PseudoVLUXSEG5EI32_V_M1_MF4_MASK = 7268,
+ PseudoVLUXSEG5EI32_V_M2_M1 = 7269,
+ PseudoVLUXSEG5EI32_V_M2_M1_MASK = 7270,
+ PseudoVLUXSEG5EI32_V_M2_MF2 = 7271,
+ PseudoVLUXSEG5EI32_V_M2_MF2_MASK = 7272,
+ PseudoVLUXSEG5EI32_V_M4_M1 = 7273,
+ PseudoVLUXSEG5EI32_V_M4_M1_MASK = 7274,
+ PseudoVLUXSEG5EI32_V_MF2_M1 = 7275,
+ PseudoVLUXSEG5EI32_V_MF2_M1_MASK = 7276,
+ PseudoVLUXSEG5EI32_V_MF2_MF2 = 7277,
+ PseudoVLUXSEG5EI32_V_MF2_MF2_MASK = 7278,
+ PseudoVLUXSEG5EI32_V_MF2_MF4 = 7279,
+ PseudoVLUXSEG5EI32_V_MF2_MF4_MASK = 7280,
+ PseudoVLUXSEG5EI32_V_MF2_MF8 = 7281,
+ PseudoVLUXSEG5EI32_V_MF2_MF8_MASK = 7282,
+ PseudoVLUXSEG5EI64_V_M1_M1 = 7283,
+ PseudoVLUXSEG5EI64_V_M1_M1_MASK = 7284,
+ PseudoVLUXSEG5EI64_V_M1_MF2 = 7285,
+ PseudoVLUXSEG5EI64_V_M1_MF2_MASK = 7286,
+ PseudoVLUXSEG5EI64_V_M1_MF4 = 7287,
+ PseudoVLUXSEG5EI64_V_M1_MF4_MASK = 7288,
+ PseudoVLUXSEG5EI64_V_M1_MF8 = 7289,
+ PseudoVLUXSEG5EI64_V_M1_MF8_MASK = 7290,
+ PseudoVLUXSEG5EI64_V_M2_M1 = 7291,
+ PseudoVLUXSEG5EI64_V_M2_M1_MASK = 7292,
+ PseudoVLUXSEG5EI64_V_M2_MF2 = 7293,
+ PseudoVLUXSEG5EI64_V_M2_MF2_MASK = 7294,
+ PseudoVLUXSEG5EI64_V_M2_MF4 = 7295,
+ PseudoVLUXSEG5EI64_V_M2_MF4_MASK = 7296,
+ PseudoVLUXSEG5EI64_V_M4_M1 = 7297,
+ PseudoVLUXSEG5EI64_V_M4_M1_MASK = 7298,
+ PseudoVLUXSEG5EI64_V_M4_MF2 = 7299,
+ PseudoVLUXSEG5EI64_V_M4_MF2_MASK = 7300,
+ PseudoVLUXSEG5EI64_V_M8_M1 = 7301,
+ PseudoVLUXSEG5EI64_V_M8_M1_MASK = 7302,
+ PseudoVLUXSEG5EI8_V_M1_M1 = 7303,
+ PseudoVLUXSEG5EI8_V_M1_M1_MASK = 7304,
+ PseudoVLUXSEG5EI8_V_MF2_M1 = 7305,
+ PseudoVLUXSEG5EI8_V_MF2_M1_MASK = 7306,
+ PseudoVLUXSEG5EI8_V_MF2_MF2 = 7307,
+ PseudoVLUXSEG5EI8_V_MF2_MF2_MASK = 7308,
+ PseudoVLUXSEG5EI8_V_MF4_M1 = 7309,
+ PseudoVLUXSEG5EI8_V_MF4_M1_MASK = 7310,
+ PseudoVLUXSEG5EI8_V_MF4_MF2 = 7311,
+ PseudoVLUXSEG5EI8_V_MF4_MF2_MASK = 7312,
+ PseudoVLUXSEG5EI8_V_MF4_MF4 = 7313,
+ PseudoVLUXSEG5EI8_V_MF4_MF4_MASK = 7314,
+ PseudoVLUXSEG5EI8_V_MF8_M1 = 7315,
+ PseudoVLUXSEG5EI8_V_MF8_M1_MASK = 7316,
+ PseudoVLUXSEG5EI8_V_MF8_MF2 = 7317,
+ PseudoVLUXSEG5EI8_V_MF8_MF2_MASK = 7318,
+ PseudoVLUXSEG5EI8_V_MF8_MF4 = 7319,
+ PseudoVLUXSEG5EI8_V_MF8_MF4_MASK = 7320,
+ PseudoVLUXSEG5EI8_V_MF8_MF8 = 7321,
+ PseudoVLUXSEG5EI8_V_MF8_MF8_MASK = 7322,
+ PseudoVLUXSEG6EI16_V_M1_M1 = 7323,
+ PseudoVLUXSEG6EI16_V_M1_M1_MASK = 7324,
+ PseudoVLUXSEG6EI16_V_M1_MF2 = 7325,
+ PseudoVLUXSEG6EI16_V_M1_MF2_MASK = 7326,
+ PseudoVLUXSEG6EI16_V_M2_M1 = 7327,
+ PseudoVLUXSEG6EI16_V_M2_M1_MASK = 7328,
+ PseudoVLUXSEG6EI16_V_MF2_M1 = 7329,
+ PseudoVLUXSEG6EI16_V_MF2_M1_MASK = 7330,
+ PseudoVLUXSEG6EI16_V_MF2_MF2 = 7331,
+ PseudoVLUXSEG6EI16_V_MF2_MF2_MASK = 7332,
+ PseudoVLUXSEG6EI16_V_MF2_MF4 = 7333,
+ PseudoVLUXSEG6EI16_V_MF2_MF4_MASK = 7334,
+ PseudoVLUXSEG6EI16_V_MF4_M1 = 7335,
+ PseudoVLUXSEG6EI16_V_MF4_M1_MASK = 7336,
+ PseudoVLUXSEG6EI16_V_MF4_MF2 = 7337,
+ PseudoVLUXSEG6EI16_V_MF4_MF2_MASK = 7338,
+ PseudoVLUXSEG6EI16_V_MF4_MF4 = 7339,
+ PseudoVLUXSEG6EI16_V_MF4_MF4_MASK = 7340,
+ PseudoVLUXSEG6EI16_V_MF4_MF8 = 7341,
+ PseudoVLUXSEG6EI16_V_MF4_MF8_MASK = 7342,
+ PseudoVLUXSEG6EI32_V_M1_M1 = 7343,
+ PseudoVLUXSEG6EI32_V_M1_M1_MASK = 7344,
+ PseudoVLUXSEG6EI32_V_M1_MF2 = 7345,
+ PseudoVLUXSEG6EI32_V_M1_MF2_MASK = 7346,
+ PseudoVLUXSEG6EI32_V_M1_MF4 = 7347,
+ PseudoVLUXSEG6EI32_V_M1_MF4_MASK = 7348,
+ PseudoVLUXSEG6EI32_V_M2_M1 = 7349,
+ PseudoVLUXSEG6EI32_V_M2_M1_MASK = 7350,
+ PseudoVLUXSEG6EI32_V_M2_MF2 = 7351,
+ PseudoVLUXSEG6EI32_V_M2_MF2_MASK = 7352,
+ PseudoVLUXSEG6EI32_V_M4_M1 = 7353,
+ PseudoVLUXSEG6EI32_V_M4_M1_MASK = 7354,
+ PseudoVLUXSEG6EI32_V_MF2_M1 = 7355,
+ PseudoVLUXSEG6EI32_V_MF2_M1_MASK = 7356,
+ PseudoVLUXSEG6EI32_V_MF2_MF2 = 7357,
+ PseudoVLUXSEG6EI32_V_MF2_MF2_MASK = 7358,
+ PseudoVLUXSEG6EI32_V_MF2_MF4 = 7359,
+ PseudoVLUXSEG6EI32_V_MF2_MF4_MASK = 7360,
+ PseudoVLUXSEG6EI32_V_MF2_MF8 = 7361,
+ PseudoVLUXSEG6EI32_V_MF2_MF8_MASK = 7362,
+ PseudoVLUXSEG6EI64_V_M1_M1 = 7363,
+ PseudoVLUXSEG6EI64_V_M1_M1_MASK = 7364,
+ PseudoVLUXSEG6EI64_V_M1_MF2 = 7365,
+ PseudoVLUXSEG6EI64_V_M1_MF2_MASK = 7366,
+ PseudoVLUXSEG6EI64_V_M1_MF4 = 7367,
+ PseudoVLUXSEG6EI64_V_M1_MF4_MASK = 7368,
+ PseudoVLUXSEG6EI64_V_M1_MF8 = 7369,
+ PseudoVLUXSEG6EI64_V_M1_MF8_MASK = 7370,
+ PseudoVLUXSEG6EI64_V_M2_M1 = 7371,
+ PseudoVLUXSEG6EI64_V_M2_M1_MASK = 7372,
+ PseudoVLUXSEG6EI64_V_M2_MF2 = 7373,
+ PseudoVLUXSEG6EI64_V_M2_MF2_MASK = 7374,
+ PseudoVLUXSEG6EI64_V_M2_MF4 = 7375,
+ PseudoVLUXSEG6EI64_V_M2_MF4_MASK = 7376,
+ PseudoVLUXSEG6EI64_V_M4_M1 = 7377,
+ PseudoVLUXSEG6EI64_V_M4_M1_MASK = 7378,
+ PseudoVLUXSEG6EI64_V_M4_MF2 = 7379,
+ PseudoVLUXSEG6EI64_V_M4_MF2_MASK = 7380,
+ PseudoVLUXSEG6EI64_V_M8_M1 = 7381,
+ PseudoVLUXSEG6EI64_V_M8_M1_MASK = 7382,
+ PseudoVLUXSEG6EI8_V_M1_M1 = 7383,
+ PseudoVLUXSEG6EI8_V_M1_M1_MASK = 7384,
+ PseudoVLUXSEG6EI8_V_MF2_M1 = 7385,
+ PseudoVLUXSEG6EI8_V_MF2_M1_MASK = 7386,
+ PseudoVLUXSEG6EI8_V_MF2_MF2 = 7387,
+ PseudoVLUXSEG6EI8_V_MF2_MF2_MASK = 7388,
+ PseudoVLUXSEG6EI8_V_MF4_M1 = 7389,
+ PseudoVLUXSEG6EI8_V_MF4_M1_MASK = 7390,
+ PseudoVLUXSEG6EI8_V_MF4_MF2 = 7391,
+ PseudoVLUXSEG6EI8_V_MF4_MF2_MASK = 7392,
+ PseudoVLUXSEG6EI8_V_MF4_MF4 = 7393,
+ PseudoVLUXSEG6EI8_V_MF4_MF4_MASK = 7394,
+ PseudoVLUXSEG6EI8_V_MF8_M1 = 7395,
+ PseudoVLUXSEG6EI8_V_MF8_M1_MASK = 7396,
+ PseudoVLUXSEG6EI8_V_MF8_MF2 = 7397,
+ PseudoVLUXSEG6EI8_V_MF8_MF2_MASK = 7398,
+ PseudoVLUXSEG6EI8_V_MF8_MF4 = 7399,
+ PseudoVLUXSEG6EI8_V_MF8_MF4_MASK = 7400,
+ PseudoVLUXSEG6EI8_V_MF8_MF8 = 7401,
+ PseudoVLUXSEG6EI8_V_MF8_MF8_MASK = 7402,
+ PseudoVLUXSEG7EI16_V_M1_M1 = 7403,
+ PseudoVLUXSEG7EI16_V_M1_M1_MASK = 7404,
+ PseudoVLUXSEG7EI16_V_M1_MF2 = 7405,
+ PseudoVLUXSEG7EI16_V_M1_MF2_MASK = 7406,
+ PseudoVLUXSEG7EI16_V_M2_M1 = 7407,
+ PseudoVLUXSEG7EI16_V_M2_M1_MASK = 7408,
+ PseudoVLUXSEG7EI16_V_MF2_M1 = 7409,
+ PseudoVLUXSEG7EI16_V_MF2_M1_MASK = 7410,
+ PseudoVLUXSEG7EI16_V_MF2_MF2 = 7411,
+ PseudoVLUXSEG7EI16_V_MF2_MF2_MASK = 7412,
+ PseudoVLUXSEG7EI16_V_MF2_MF4 = 7413,
+ PseudoVLUXSEG7EI16_V_MF2_MF4_MASK = 7414,
+ PseudoVLUXSEG7EI16_V_MF4_M1 = 7415,
+ PseudoVLUXSEG7EI16_V_MF4_M1_MASK = 7416,
+ PseudoVLUXSEG7EI16_V_MF4_MF2 = 7417,
+ PseudoVLUXSEG7EI16_V_MF4_MF2_MASK = 7418,
+ PseudoVLUXSEG7EI16_V_MF4_MF4 = 7419,
+ PseudoVLUXSEG7EI16_V_MF4_MF4_MASK = 7420,
+ PseudoVLUXSEG7EI16_V_MF4_MF8 = 7421,
+ PseudoVLUXSEG7EI16_V_MF4_MF8_MASK = 7422,
+ PseudoVLUXSEG7EI32_V_M1_M1 = 7423,
+ PseudoVLUXSEG7EI32_V_M1_M1_MASK = 7424,
+ PseudoVLUXSEG7EI32_V_M1_MF2 = 7425,
+ PseudoVLUXSEG7EI32_V_M1_MF2_MASK = 7426,
+ PseudoVLUXSEG7EI32_V_M1_MF4 = 7427,
+ PseudoVLUXSEG7EI32_V_M1_MF4_MASK = 7428,
+ PseudoVLUXSEG7EI32_V_M2_M1 = 7429,
+ PseudoVLUXSEG7EI32_V_M2_M1_MASK = 7430,
+ PseudoVLUXSEG7EI32_V_M2_MF2 = 7431,
+ PseudoVLUXSEG7EI32_V_M2_MF2_MASK = 7432,
+ PseudoVLUXSEG7EI32_V_M4_M1 = 7433,
+ PseudoVLUXSEG7EI32_V_M4_M1_MASK = 7434,
+ PseudoVLUXSEG7EI32_V_MF2_M1 = 7435,
+ PseudoVLUXSEG7EI32_V_MF2_M1_MASK = 7436,
+ PseudoVLUXSEG7EI32_V_MF2_MF2 = 7437,
+ PseudoVLUXSEG7EI32_V_MF2_MF2_MASK = 7438,
+ PseudoVLUXSEG7EI32_V_MF2_MF4 = 7439,
+ PseudoVLUXSEG7EI32_V_MF2_MF4_MASK = 7440,
+ PseudoVLUXSEG7EI32_V_MF2_MF8 = 7441,
+ PseudoVLUXSEG7EI32_V_MF2_MF8_MASK = 7442,
+ PseudoVLUXSEG7EI64_V_M1_M1 = 7443,
+ PseudoVLUXSEG7EI64_V_M1_M1_MASK = 7444,
+ PseudoVLUXSEG7EI64_V_M1_MF2 = 7445,
+ PseudoVLUXSEG7EI64_V_M1_MF2_MASK = 7446,
+ PseudoVLUXSEG7EI64_V_M1_MF4 = 7447,
+ PseudoVLUXSEG7EI64_V_M1_MF4_MASK = 7448,
+ PseudoVLUXSEG7EI64_V_M1_MF8 = 7449,
+ PseudoVLUXSEG7EI64_V_M1_MF8_MASK = 7450,
+ PseudoVLUXSEG7EI64_V_M2_M1 = 7451,
+ PseudoVLUXSEG7EI64_V_M2_M1_MASK = 7452,
+ PseudoVLUXSEG7EI64_V_M2_MF2 = 7453,
+ PseudoVLUXSEG7EI64_V_M2_MF2_MASK = 7454,
+ PseudoVLUXSEG7EI64_V_M2_MF4 = 7455,
+ PseudoVLUXSEG7EI64_V_M2_MF4_MASK = 7456,
+ PseudoVLUXSEG7EI64_V_M4_M1 = 7457,
+ PseudoVLUXSEG7EI64_V_M4_M1_MASK = 7458,
+ PseudoVLUXSEG7EI64_V_M4_MF2 = 7459,
+ PseudoVLUXSEG7EI64_V_M4_MF2_MASK = 7460,
+ PseudoVLUXSEG7EI64_V_M8_M1 = 7461,
+ PseudoVLUXSEG7EI64_V_M8_M1_MASK = 7462,
+ PseudoVLUXSEG7EI8_V_M1_M1 = 7463,
+ PseudoVLUXSEG7EI8_V_M1_M1_MASK = 7464,
+ PseudoVLUXSEG7EI8_V_MF2_M1 = 7465,
+ PseudoVLUXSEG7EI8_V_MF2_M1_MASK = 7466,
+ PseudoVLUXSEG7EI8_V_MF2_MF2 = 7467,
+ PseudoVLUXSEG7EI8_V_MF2_MF2_MASK = 7468,
+ PseudoVLUXSEG7EI8_V_MF4_M1 = 7469,
+ PseudoVLUXSEG7EI8_V_MF4_M1_MASK = 7470,
+ PseudoVLUXSEG7EI8_V_MF4_MF2 = 7471,
+ PseudoVLUXSEG7EI8_V_MF4_MF2_MASK = 7472,
+ PseudoVLUXSEG7EI8_V_MF4_MF4 = 7473,
+ PseudoVLUXSEG7EI8_V_MF4_MF4_MASK = 7474,
+ PseudoVLUXSEG7EI8_V_MF8_M1 = 7475,
+ PseudoVLUXSEG7EI8_V_MF8_M1_MASK = 7476,
+ PseudoVLUXSEG7EI8_V_MF8_MF2 = 7477,
+ PseudoVLUXSEG7EI8_V_MF8_MF2_MASK = 7478,
+ PseudoVLUXSEG7EI8_V_MF8_MF4 = 7479,
+ PseudoVLUXSEG7EI8_V_MF8_MF4_MASK = 7480,
+ PseudoVLUXSEG7EI8_V_MF8_MF8 = 7481,
+ PseudoVLUXSEG7EI8_V_MF8_MF8_MASK = 7482,
+ PseudoVLUXSEG8EI16_V_M1_M1 = 7483,
+ PseudoVLUXSEG8EI16_V_M1_M1_MASK = 7484,
+ PseudoVLUXSEG8EI16_V_M1_MF2 = 7485,
+ PseudoVLUXSEG8EI16_V_M1_MF2_MASK = 7486,
+ PseudoVLUXSEG8EI16_V_M2_M1 = 7487,
+ PseudoVLUXSEG8EI16_V_M2_M1_MASK = 7488,
+ PseudoVLUXSEG8EI16_V_MF2_M1 = 7489,
+ PseudoVLUXSEG8EI16_V_MF2_M1_MASK = 7490,
+ PseudoVLUXSEG8EI16_V_MF2_MF2 = 7491,
+ PseudoVLUXSEG8EI16_V_MF2_MF2_MASK = 7492,
+ PseudoVLUXSEG8EI16_V_MF2_MF4 = 7493,
+ PseudoVLUXSEG8EI16_V_MF2_MF4_MASK = 7494,
+ PseudoVLUXSEG8EI16_V_MF4_M1 = 7495,
+ PseudoVLUXSEG8EI16_V_MF4_M1_MASK = 7496,
+ PseudoVLUXSEG8EI16_V_MF4_MF2 = 7497,
+ PseudoVLUXSEG8EI16_V_MF4_MF2_MASK = 7498,
+ PseudoVLUXSEG8EI16_V_MF4_MF4 = 7499,
+ PseudoVLUXSEG8EI16_V_MF4_MF4_MASK = 7500,
+ PseudoVLUXSEG8EI16_V_MF4_MF8 = 7501,
+ PseudoVLUXSEG8EI16_V_MF4_MF8_MASK = 7502,
+ PseudoVLUXSEG8EI32_V_M1_M1 = 7503,
+ PseudoVLUXSEG8EI32_V_M1_M1_MASK = 7504,
+ PseudoVLUXSEG8EI32_V_M1_MF2 = 7505,
+ PseudoVLUXSEG8EI32_V_M1_MF2_MASK = 7506,
+ PseudoVLUXSEG8EI32_V_M1_MF4 = 7507,
+ PseudoVLUXSEG8EI32_V_M1_MF4_MASK = 7508,
+ PseudoVLUXSEG8EI32_V_M2_M1 = 7509,
+ PseudoVLUXSEG8EI32_V_M2_M1_MASK = 7510,
+ PseudoVLUXSEG8EI32_V_M2_MF2 = 7511,
+ PseudoVLUXSEG8EI32_V_M2_MF2_MASK = 7512,
+ PseudoVLUXSEG8EI32_V_M4_M1 = 7513,
+ PseudoVLUXSEG8EI32_V_M4_M1_MASK = 7514,
+ PseudoVLUXSEG8EI32_V_MF2_M1 = 7515,
+ PseudoVLUXSEG8EI32_V_MF2_M1_MASK = 7516,
+ PseudoVLUXSEG8EI32_V_MF2_MF2 = 7517,
+ PseudoVLUXSEG8EI32_V_MF2_MF2_MASK = 7518,
+ PseudoVLUXSEG8EI32_V_MF2_MF4 = 7519,
+ PseudoVLUXSEG8EI32_V_MF2_MF4_MASK = 7520,
+ PseudoVLUXSEG8EI32_V_MF2_MF8 = 7521,
+ PseudoVLUXSEG8EI32_V_MF2_MF8_MASK = 7522,
+ PseudoVLUXSEG8EI64_V_M1_M1 = 7523,
+ PseudoVLUXSEG8EI64_V_M1_M1_MASK = 7524,
+ PseudoVLUXSEG8EI64_V_M1_MF2 = 7525,
+ PseudoVLUXSEG8EI64_V_M1_MF2_MASK = 7526,
+ PseudoVLUXSEG8EI64_V_M1_MF4 = 7527,
+ PseudoVLUXSEG8EI64_V_M1_MF4_MASK = 7528,
+ PseudoVLUXSEG8EI64_V_M1_MF8 = 7529,
+ PseudoVLUXSEG8EI64_V_M1_MF8_MASK = 7530,
+ PseudoVLUXSEG8EI64_V_M2_M1 = 7531,
+ PseudoVLUXSEG8EI64_V_M2_M1_MASK = 7532,
+ PseudoVLUXSEG8EI64_V_M2_MF2 = 7533,
+ PseudoVLUXSEG8EI64_V_M2_MF2_MASK = 7534,
+ PseudoVLUXSEG8EI64_V_M2_MF4 = 7535,
+ PseudoVLUXSEG8EI64_V_M2_MF4_MASK = 7536,
+ PseudoVLUXSEG8EI64_V_M4_M1 = 7537,
+ PseudoVLUXSEG8EI64_V_M4_M1_MASK = 7538,
+ PseudoVLUXSEG8EI64_V_M4_MF2 = 7539,
+ PseudoVLUXSEG8EI64_V_M4_MF2_MASK = 7540,
+ PseudoVLUXSEG8EI64_V_M8_M1 = 7541,
+ PseudoVLUXSEG8EI64_V_M8_M1_MASK = 7542,
+ PseudoVLUXSEG8EI8_V_M1_M1 = 7543,
+ PseudoVLUXSEG8EI8_V_M1_M1_MASK = 7544,
+ PseudoVLUXSEG8EI8_V_MF2_M1 = 7545,
+ PseudoVLUXSEG8EI8_V_MF2_M1_MASK = 7546,
+ PseudoVLUXSEG8EI8_V_MF2_MF2 = 7547,
+ PseudoVLUXSEG8EI8_V_MF2_MF2_MASK = 7548,
+ PseudoVLUXSEG8EI8_V_MF4_M1 = 7549,
+ PseudoVLUXSEG8EI8_V_MF4_M1_MASK = 7550,
+ PseudoVLUXSEG8EI8_V_MF4_MF2 = 7551,
+ PseudoVLUXSEG8EI8_V_MF4_MF2_MASK = 7552,
+ PseudoVLUXSEG8EI8_V_MF4_MF4 = 7553,
+ PseudoVLUXSEG8EI8_V_MF4_MF4_MASK = 7554,
+ PseudoVLUXSEG8EI8_V_MF8_M1 = 7555,
+ PseudoVLUXSEG8EI8_V_MF8_M1_MASK = 7556,
+ PseudoVLUXSEG8EI8_V_MF8_MF2 = 7557,
+ PseudoVLUXSEG8EI8_V_MF8_MF2_MASK = 7558,
+ PseudoVLUXSEG8EI8_V_MF8_MF4 = 7559,
+ PseudoVLUXSEG8EI8_V_MF8_MF4_MASK = 7560,
+ PseudoVLUXSEG8EI8_V_MF8_MF8 = 7561,
+ PseudoVLUXSEG8EI8_V_MF8_MF8_MASK = 7562,
+ PseudoVMACC_VV_M1 = 7563,
+ PseudoVMACC_VV_M1_MASK = 7564,
+ PseudoVMACC_VV_M2 = 7565,
+ PseudoVMACC_VV_M2_MASK = 7566,
+ PseudoVMACC_VV_M4 = 7567,
+ PseudoVMACC_VV_M4_MASK = 7568,
+ PseudoVMACC_VV_M8 = 7569,
+ PseudoVMACC_VV_M8_MASK = 7570,
+ PseudoVMACC_VV_MF2 = 7571,
+ PseudoVMACC_VV_MF2_MASK = 7572,
+ PseudoVMACC_VV_MF4 = 7573,
+ PseudoVMACC_VV_MF4_MASK = 7574,
+ PseudoVMACC_VV_MF8 = 7575,
+ PseudoVMACC_VV_MF8_MASK = 7576,
+ PseudoVMACC_VX_M1 = 7577,
+ PseudoVMACC_VX_M1_MASK = 7578,
+ PseudoVMACC_VX_M2 = 7579,
+ PseudoVMACC_VX_M2_MASK = 7580,
+ PseudoVMACC_VX_M4 = 7581,
+ PseudoVMACC_VX_M4_MASK = 7582,
+ PseudoVMACC_VX_M8 = 7583,
+ PseudoVMACC_VX_M8_MASK = 7584,
+ PseudoVMACC_VX_MF2 = 7585,
+ PseudoVMACC_VX_MF2_MASK = 7586,
+ PseudoVMACC_VX_MF4 = 7587,
+ PseudoVMACC_VX_MF4_MASK = 7588,
+ PseudoVMACC_VX_MF8 = 7589,
+ PseudoVMACC_VX_MF8_MASK = 7590,
+ PseudoVMADC_VIM_M1 = 7591,
+ PseudoVMADC_VIM_M2 = 7592,
+ PseudoVMADC_VIM_M4 = 7593,
+ PseudoVMADC_VIM_M8 = 7594,
+ PseudoVMADC_VIM_MF2 = 7595,
+ PseudoVMADC_VIM_MF4 = 7596,
+ PseudoVMADC_VIM_MF8 = 7597,
+ PseudoVMADC_VI_M1 = 7598,
+ PseudoVMADC_VI_M2 = 7599,
+ PseudoVMADC_VI_M4 = 7600,
+ PseudoVMADC_VI_M8 = 7601,
+ PseudoVMADC_VI_MF2 = 7602,
+ PseudoVMADC_VI_MF4 = 7603,
+ PseudoVMADC_VI_MF8 = 7604,
+ PseudoVMADC_VVM_M1 = 7605,
+ PseudoVMADC_VVM_M2 = 7606,
+ PseudoVMADC_VVM_M4 = 7607,
+ PseudoVMADC_VVM_M8 = 7608,
+ PseudoVMADC_VVM_MF2 = 7609,
+ PseudoVMADC_VVM_MF4 = 7610,
+ PseudoVMADC_VVM_MF8 = 7611,
+ PseudoVMADC_VV_M1 = 7612,
+ PseudoVMADC_VV_M2 = 7613,
+ PseudoVMADC_VV_M4 = 7614,
+ PseudoVMADC_VV_M8 = 7615,
+ PseudoVMADC_VV_MF2 = 7616,
+ PseudoVMADC_VV_MF4 = 7617,
+ PseudoVMADC_VV_MF8 = 7618,
+ PseudoVMADC_VXM_M1 = 7619,
+ PseudoVMADC_VXM_M2 = 7620,
+ PseudoVMADC_VXM_M4 = 7621,
+ PseudoVMADC_VXM_M8 = 7622,
+ PseudoVMADC_VXM_MF2 = 7623,
+ PseudoVMADC_VXM_MF4 = 7624,
+ PseudoVMADC_VXM_MF8 = 7625,
+ PseudoVMADC_VX_M1 = 7626,
+ PseudoVMADC_VX_M2 = 7627,
+ PseudoVMADC_VX_M4 = 7628,
+ PseudoVMADC_VX_M8 = 7629,
+ PseudoVMADC_VX_MF2 = 7630,
+ PseudoVMADC_VX_MF4 = 7631,
+ PseudoVMADC_VX_MF8 = 7632,
+ PseudoVMADD_VV_M1 = 7633,
+ PseudoVMADD_VV_M1_MASK = 7634,
+ PseudoVMADD_VV_M2 = 7635,
+ PseudoVMADD_VV_M2_MASK = 7636,
+ PseudoVMADD_VV_M4 = 7637,
+ PseudoVMADD_VV_M4_MASK = 7638,
+ PseudoVMADD_VV_M8 = 7639,
+ PseudoVMADD_VV_M8_MASK = 7640,
+ PseudoVMADD_VV_MF2 = 7641,
+ PseudoVMADD_VV_MF2_MASK = 7642,
+ PseudoVMADD_VV_MF4 = 7643,
+ PseudoVMADD_VV_MF4_MASK = 7644,
+ PseudoVMADD_VV_MF8 = 7645,
+ PseudoVMADD_VV_MF8_MASK = 7646,
+ PseudoVMADD_VX_M1 = 7647,
+ PseudoVMADD_VX_M1_MASK = 7648,
+ PseudoVMADD_VX_M2 = 7649,
+ PseudoVMADD_VX_M2_MASK = 7650,
+ PseudoVMADD_VX_M4 = 7651,
+ PseudoVMADD_VX_M4_MASK = 7652,
+ PseudoVMADD_VX_M8 = 7653,
+ PseudoVMADD_VX_M8_MASK = 7654,
+ PseudoVMADD_VX_MF2 = 7655,
+ PseudoVMADD_VX_MF2_MASK = 7656,
+ PseudoVMADD_VX_MF4 = 7657,
+ PseudoVMADD_VX_MF4_MASK = 7658,
+ PseudoVMADD_VX_MF8 = 7659,
+ PseudoVMADD_VX_MF8_MASK = 7660,
+ PseudoVMANDN_MM_B1 = 7661,
+ PseudoVMANDN_MM_B16 = 7662,
+ PseudoVMANDN_MM_B2 = 7663,
+ PseudoVMANDN_MM_B32 = 7664,
+ PseudoVMANDN_MM_B4 = 7665,
+ PseudoVMANDN_MM_B64 = 7666,
+ PseudoVMANDN_MM_B8 = 7667,
+ PseudoVMAND_MM_B1 = 7668,
+ PseudoVMAND_MM_B16 = 7669,
+ PseudoVMAND_MM_B2 = 7670,
+ PseudoVMAND_MM_B32 = 7671,
+ PseudoVMAND_MM_B4 = 7672,
+ PseudoVMAND_MM_B64 = 7673,
+ PseudoVMAND_MM_B8 = 7674,
+ PseudoVMAXU_VV_M1 = 7675,
+ PseudoVMAXU_VV_M1_MASK = 7676,
+ PseudoVMAXU_VV_M2 = 7677,
+ PseudoVMAXU_VV_M2_MASK = 7678,
+ PseudoVMAXU_VV_M4 = 7679,
+ PseudoVMAXU_VV_M4_MASK = 7680,
+ PseudoVMAXU_VV_M8 = 7681,
+ PseudoVMAXU_VV_M8_MASK = 7682,
+ PseudoVMAXU_VV_MF2 = 7683,
+ PseudoVMAXU_VV_MF2_MASK = 7684,
+ PseudoVMAXU_VV_MF4 = 7685,
+ PseudoVMAXU_VV_MF4_MASK = 7686,
+ PseudoVMAXU_VV_MF8 = 7687,
+ PseudoVMAXU_VV_MF8_MASK = 7688,
+ PseudoVMAXU_VX_M1 = 7689,
+ PseudoVMAXU_VX_M1_MASK = 7690,
+ PseudoVMAXU_VX_M2 = 7691,
+ PseudoVMAXU_VX_M2_MASK = 7692,
+ PseudoVMAXU_VX_M4 = 7693,
+ PseudoVMAXU_VX_M4_MASK = 7694,
+ PseudoVMAXU_VX_M8 = 7695,
+ PseudoVMAXU_VX_M8_MASK = 7696,
+ PseudoVMAXU_VX_MF2 = 7697,
+ PseudoVMAXU_VX_MF2_MASK = 7698,
+ PseudoVMAXU_VX_MF4 = 7699,
+ PseudoVMAXU_VX_MF4_MASK = 7700,
+ PseudoVMAXU_VX_MF8 = 7701,
+ PseudoVMAXU_VX_MF8_MASK = 7702,
+ PseudoVMAX_VV_M1 = 7703,
+ PseudoVMAX_VV_M1_MASK = 7704,
+ PseudoVMAX_VV_M2 = 7705,
+ PseudoVMAX_VV_M2_MASK = 7706,
+ PseudoVMAX_VV_M4 = 7707,
+ PseudoVMAX_VV_M4_MASK = 7708,
+ PseudoVMAX_VV_M8 = 7709,
+ PseudoVMAX_VV_M8_MASK = 7710,
+ PseudoVMAX_VV_MF2 = 7711,
+ PseudoVMAX_VV_MF2_MASK = 7712,
+ PseudoVMAX_VV_MF4 = 7713,
+ PseudoVMAX_VV_MF4_MASK = 7714,
+ PseudoVMAX_VV_MF8 = 7715,
+ PseudoVMAX_VV_MF8_MASK = 7716,
+ PseudoVMAX_VX_M1 = 7717,
+ PseudoVMAX_VX_M1_MASK = 7718,
+ PseudoVMAX_VX_M2 = 7719,
+ PseudoVMAX_VX_M2_MASK = 7720,
+ PseudoVMAX_VX_M4 = 7721,
+ PseudoVMAX_VX_M4_MASK = 7722,
+ PseudoVMAX_VX_M8 = 7723,
+ PseudoVMAX_VX_M8_MASK = 7724,
+ PseudoVMAX_VX_MF2 = 7725,
+ PseudoVMAX_VX_MF2_MASK = 7726,
+ PseudoVMAX_VX_MF4 = 7727,
+ PseudoVMAX_VX_MF4_MASK = 7728,
+ PseudoVMAX_VX_MF8 = 7729,
+ PseudoVMAX_VX_MF8_MASK = 7730,
+ PseudoVMCLR_M_B1 = 7731,
+ PseudoVMCLR_M_B16 = 7732,
+ PseudoVMCLR_M_B2 = 7733,
+ PseudoVMCLR_M_B32 = 7734,
+ PseudoVMCLR_M_B4 = 7735,
+ PseudoVMCLR_M_B64 = 7736,
+ PseudoVMCLR_M_B8 = 7737,
+ PseudoVMERGE_VIM_M1 = 7738,
+ PseudoVMERGE_VIM_M2 = 7739,
+ PseudoVMERGE_VIM_M4 = 7740,
+ PseudoVMERGE_VIM_M8 = 7741,
+ PseudoVMERGE_VIM_MF2 = 7742,
+ PseudoVMERGE_VIM_MF4 = 7743,
+ PseudoVMERGE_VIM_MF8 = 7744,
+ PseudoVMERGE_VVM_M1 = 7745,
+ PseudoVMERGE_VVM_M2 = 7746,
+ PseudoVMERGE_VVM_M4 = 7747,
+ PseudoVMERGE_VVM_M8 = 7748,
+ PseudoVMERGE_VVM_MF2 = 7749,
+ PseudoVMERGE_VVM_MF4 = 7750,
+ PseudoVMERGE_VVM_MF8 = 7751,
+ PseudoVMERGE_VXM_M1 = 7752,
+ PseudoVMERGE_VXM_M2 = 7753,
+ PseudoVMERGE_VXM_M4 = 7754,
+ PseudoVMERGE_VXM_M8 = 7755,
+ PseudoVMERGE_VXM_MF2 = 7756,
+ PseudoVMERGE_VXM_MF4 = 7757,
+ PseudoVMERGE_VXM_MF8 = 7758,
+ PseudoVMFEQ_ALT_VFPR16_M1 = 7759,
+ PseudoVMFEQ_ALT_VFPR16_M1_MASK = 7760,
+ PseudoVMFEQ_ALT_VFPR16_M2 = 7761,
+ PseudoVMFEQ_ALT_VFPR16_M2_MASK = 7762,
+ PseudoVMFEQ_ALT_VFPR16_M4 = 7763,
+ PseudoVMFEQ_ALT_VFPR16_M4_MASK = 7764,
+ PseudoVMFEQ_ALT_VFPR16_M8 = 7765,
+ PseudoVMFEQ_ALT_VFPR16_M8_MASK = 7766,
+ PseudoVMFEQ_ALT_VFPR16_MF2 = 7767,
+ PseudoVMFEQ_ALT_VFPR16_MF2_MASK = 7768,
+ PseudoVMFEQ_ALT_VFPR16_MF4 = 7769,
+ PseudoVMFEQ_ALT_VFPR16_MF4_MASK = 7770,
+ PseudoVMFEQ_ALT_VFPR32_M1 = 7771,
+ PseudoVMFEQ_ALT_VFPR32_M1_MASK = 7772,
+ PseudoVMFEQ_ALT_VFPR32_M2 = 7773,
+ PseudoVMFEQ_ALT_VFPR32_M2_MASK = 7774,
+ PseudoVMFEQ_ALT_VFPR32_M4 = 7775,
+ PseudoVMFEQ_ALT_VFPR32_M4_MASK = 7776,
+ PseudoVMFEQ_ALT_VFPR32_M8 = 7777,
+ PseudoVMFEQ_ALT_VFPR32_M8_MASK = 7778,
+ PseudoVMFEQ_ALT_VFPR32_MF2 = 7779,
+ PseudoVMFEQ_ALT_VFPR32_MF2_MASK = 7780,
+ PseudoVMFEQ_ALT_VFPR64_M1 = 7781,
+ PseudoVMFEQ_ALT_VFPR64_M1_MASK = 7782,
+ PseudoVMFEQ_ALT_VFPR64_M2 = 7783,
+ PseudoVMFEQ_ALT_VFPR64_M2_MASK = 7784,
+ PseudoVMFEQ_ALT_VFPR64_M4 = 7785,
+ PseudoVMFEQ_ALT_VFPR64_M4_MASK = 7786,
+ PseudoVMFEQ_ALT_VFPR64_M8 = 7787,
+ PseudoVMFEQ_ALT_VFPR64_M8_MASK = 7788,
+ PseudoVMFEQ_ALT_VV_M1 = 7789,
+ PseudoVMFEQ_ALT_VV_M1_MASK = 7790,
+ PseudoVMFEQ_ALT_VV_M2 = 7791,
+ PseudoVMFEQ_ALT_VV_M2_MASK = 7792,
+ PseudoVMFEQ_ALT_VV_M4 = 7793,
+ PseudoVMFEQ_ALT_VV_M4_MASK = 7794,
+ PseudoVMFEQ_ALT_VV_M8 = 7795,
+ PseudoVMFEQ_ALT_VV_M8_MASK = 7796,
+ PseudoVMFEQ_ALT_VV_MF2 = 7797,
+ PseudoVMFEQ_ALT_VV_MF2_MASK = 7798,
+ PseudoVMFEQ_ALT_VV_MF4 = 7799,
+ PseudoVMFEQ_ALT_VV_MF4_MASK = 7800,
+ PseudoVMFEQ_VFPR16_M1 = 7801,
+ PseudoVMFEQ_VFPR16_M1_MASK = 7802,
+ PseudoVMFEQ_VFPR16_M2 = 7803,
+ PseudoVMFEQ_VFPR16_M2_MASK = 7804,
+ PseudoVMFEQ_VFPR16_M4 = 7805,
+ PseudoVMFEQ_VFPR16_M4_MASK = 7806,
+ PseudoVMFEQ_VFPR16_M8 = 7807,
+ PseudoVMFEQ_VFPR16_M8_MASK = 7808,
+ PseudoVMFEQ_VFPR16_MF2 = 7809,
+ PseudoVMFEQ_VFPR16_MF2_MASK = 7810,
+ PseudoVMFEQ_VFPR16_MF4 = 7811,
+ PseudoVMFEQ_VFPR16_MF4_MASK = 7812,
+ PseudoVMFEQ_VFPR32_M1 = 7813,
+ PseudoVMFEQ_VFPR32_M1_MASK = 7814,
+ PseudoVMFEQ_VFPR32_M2 = 7815,
+ PseudoVMFEQ_VFPR32_M2_MASK = 7816,
+ PseudoVMFEQ_VFPR32_M4 = 7817,
+ PseudoVMFEQ_VFPR32_M4_MASK = 7818,
+ PseudoVMFEQ_VFPR32_M8 = 7819,
+ PseudoVMFEQ_VFPR32_M8_MASK = 7820,
+ PseudoVMFEQ_VFPR32_MF2 = 7821,
+ PseudoVMFEQ_VFPR32_MF2_MASK = 7822,
+ PseudoVMFEQ_VFPR64_M1 = 7823,
+ PseudoVMFEQ_VFPR64_M1_MASK = 7824,
+ PseudoVMFEQ_VFPR64_M2 = 7825,
+ PseudoVMFEQ_VFPR64_M2_MASK = 7826,
+ PseudoVMFEQ_VFPR64_M4 = 7827,
+ PseudoVMFEQ_VFPR64_M4_MASK = 7828,
+ PseudoVMFEQ_VFPR64_M8 = 7829,
+ PseudoVMFEQ_VFPR64_M8_MASK = 7830,
+ PseudoVMFEQ_VV_M1 = 7831,
+ PseudoVMFEQ_VV_M1_MASK = 7832,
+ PseudoVMFEQ_VV_M2 = 7833,
+ PseudoVMFEQ_VV_M2_MASK = 7834,
+ PseudoVMFEQ_VV_M4 = 7835,
+ PseudoVMFEQ_VV_M4_MASK = 7836,
+ PseudoVMFEQ_VV_M8 = 7837,
+ PseudoVMFEQ_VV_M8_MASK = 7838,
+ PseudoVMFEQ_VV_MF2 = 7839,
+ PseudoVMFEQ_VV_MF2_MASK = 7840,
+ PseudoVMFEQ_VV_MF4 = 7841,
+ PseudoVMFEQ_VV_MF4_MASK = 7842,
+ PseudoVMFGE_ALT_VFPR16_M1 = 7843,
+ PseudoVMFGE_ALT_VFPR16_M1_MASK = 7844,
+ PseudoVMFGE_ALT_VFPR16_M2 = 7845,
+ PseudoVMFGE_ALT_VFPR16_M2_MASK = 7846,
+ PseudoVMFGE_ALT_VFPR16_M4 = 7847,
+ PseudoVMFGE_ALT_VFPR16_M4_MASK = 7848,
+ PseudoVMFGE_ALT_VFPR16_M8 = 7849,
+ PseudoVMFGE_ALT_VFPR16_M8_MASK = 7850,
+ PseudoVMFGE_ALT_VFPR16_MF2 = 7851,
+ PseudoVMFGE_ALT_VFPR16_MF2_MASK = 7852,
+ PseudoVMFGE_ALT_VFPR16_MF4 = 7853,
+ PseudoVMFGE_ALT_VFPR16_MF4_MASK = 7854,
+ PseudoVMFGE_ALT_VFPR32_M1 = 7855,
+ PseudoVMFGE_ALT_VFPR32_M1_MASK = 7856,
+ PseudoVMFGE_ALT_VFPR32_M2 = 7857,
+ PseudoVMFGE_ALT_VFPR32_M2_MASK = 7858,
+ PseudoVMFGE_ALT_VFPR32_M4 = 7859,
+ PseudoVMFGE_ALT_VFPR32_M4_MASK = 7860,
+ PseudoVMFGE_ALT_VFPR32_M8 = 7861,
+ PseudoVMFGE_ALT_VFPR32_M8_MASK = 7862,
+ PseudoVMFGE_ALT_VFPR32_MF2 = 7863,
+ PseudoVMFGE_ALT_VFPR32_MF2_MASK = 7864,
+ PseudoVMFGE_ALT_VFPR64_M1 = 7865,
+ PseudoVMFGE_ALT_VFPR64_M1_MASK = 7866,
+ PseudoVMFGE_ALT_VFPR64_M2 = 7867,
+ PseudoVMFGE_ALT_VFPR64_M2_MASK = 7868,
+ PseudoVMFGE_ALT_VFPR64_M4 = 7869,
+ PseudoVMFGE_ALT_VFPR64_M4_MASK = 7870,
+ PseudoVMFGE_ALT_VFPR64_M8 = 7871,
+ PseudoVMFGE_ALT_VFPR64_M8_MASK = 7872,
+ PseudoVMFGE_VFPR16_M1 = 7873,
+ PseudoVMFGE_VFPR16_M1_MASK = 7874,
+ PseudoVMFGE_VFPR16_M2 = 7875,
+ PseudoVMFGE_VFPR16_M2_MASK = 7876,
+ PseudoVMFGE_VFPR16_M4 = 7877,
+ PseudoVMFGE_VFPR16_M4_MASK = 7878,
+ PseudoVMFGE_VFPR16_M8 = 7879,
+ PseudoVMFGE_VFPR16_M8_MASK = 7880,
+ PseudoVMFGE_VFPR16_MF2 = 7881,
+ PseudoVMFGE_VFPR16_MF2_MASK = 7882,
+ PseudoVMFGE_VFPR16_MF4 = 7883,
+ PseudoVMFGE_VFPR16_MF4_MASK = 7884,
+ PseudoVMFGE_VFPR32_M1 = 7885,
+ PseudoVMFGE_VFPR32_M1_MASK = 7886,
+ PseudoVMFGE_VFPR32_M2 = 7887,
+ PseudoVMFGE_VFPR32_M2_MASK = 7888,
+ PseudoVMFGE_VFPR32_M4 = 7889,
+ PseudoVMFGE_VFPR32_M4_MASK = 7890,
+ PseudoVMFGE_VFPR32_M8 = 7891,
+ PseudoVMFGE_VFPR32_M8_MASK = 7892,
+ PseudoVMFGE_VFPR32_MF2 = 7893,
+ PseudoVMFGE_VFPR32_MF2_MASK = 7894,
+ PseudoVMFGE_VFPR64_M1 = 7895,
+ PseudoVMFGE_VFPR64_M1_MASK = 7896,
+ PseudoVMFGE_VFPR64_M2 = 7897,
+ PseudoVMFGE_VFPR64_M2_MASK = 7898,
+ PseudoVMFGE_VFPR64_M4 = 7899,
+ PseudoVMFGE_VFPR64_M4_MASK = 7900,
+ PseudoVMFGE_VFPR64_M8 = 7901,
+ PseudoVMFGE_VFPR64_M8_MASK = 7902,
+ PseudoVMFGT_ALT_VFPR16_M1 = 7903,
+ PseudoVMFGT_ALT_VFPR16_M1_MASK = 7904,
+ PseudoVMFGT_ALT_VFPR16_M2 = 7905,
+ PseudoVMFGT_ALT_VFPR16_M2_MASK = 7906,
+ PseudoVMFGT_ALT_VFPR16_M4 = 7907,
+ PseudoVMFGT_ALT_VFPR16_M4_MASK = 7908,
+ PseudoVMFGT_ALT_VFPR16_M8 = 7909,
+ PseudoVMFGT_ALT_VFPR16_M8_MASK = 7910,
+ PseudoVMFGT_ALT_VFPR16_MF2 = 7911,
+ PseudoVMFGT_ALT_VFPR16_MF2_MASK = 7912,
+ PseudoVMFGT_ALT_VFPR16_MF4 = 7913,
+ PseudoVMFGT_ALT_VFPR16_MF4_MASK = 7914,
+ PseudoVMFGT_ALT_VFPR32_M1 = 7915,
+ PseudoVMFGT_ALT_VFPR32_M1_MASK = 7916,
+ PseudoVMFGT_ALT_VFPR32_M2 = 7917,
+ PseudoVMFGT_ALT_VFPR32_M2_MASK = 7918,
+ PseudoVMFGT_ALT_VFPR32_M4 = 7919,
+ PseudoVMFGT_ALT_VFPR32_M4_MASK = 7920,
+ PseudoVMFGT_ALT_VFPR32_M8 = 7921,
+ PseudoVMFGT_ALT_VFPR32_M8_MASK = 7922,
+ PseudoVMFGT_ALT_VFPR32_MF2 = 7923,
+ PseudoVMFGT_ALT_VFPR32_MF2_MASK = 7924,
+ PseudoVMFGT_ALT_VFPR64_M1 = 7925,
+ PseudoVMFGT_ALT_VFPR64_M1_MASK = 7926,
+ PseudoVMFGT_ALT_VFPR64_M2 = 7927,
+ PseudoVMFGT_ALT_VFPR64_M2_MASK = 7928,
+ PseudoVMFGT_ALT_VFPR64_M4 = 7929,
+ PseudoVMFGT_ALT_VFPR64_M4_MASK = 7930,
+ PseudoVMFGT_ALT_VFPR64_M8 = 7931,
+ PseudoVMFGT_ALT_VFPR64_M8_MASK = 7932,
+ PseudoVMFGT_VFPR16_M1 = 7933,
+ PseudoVMFGT_VFPR16_M1_MASK = 7934,
+ PseudoVMFGT_VFPR16_M2 = 7935,
+ PseudoVMFGT_VFPR16_M2_MASK = 7936,
+ PseudoVMFGT_VFPR16_M4 = 7937,
+ PseudoVMFGT_VFPR16_M4_MASK = 7938,
+ PseudoVMFGT_VFPR16_M8 = 7939,
+ PseudoVMFGT_VFPR16_M8_MASK = 7940,
+ PseudoVMFGT_VFPR16_MF2 = 7941,
+ PseudoVMFGT_VFPR16_MF2_MASK = 7942,
+ PseudoVMFGT_VFPR16_MF4 = 7943,
+ PseudoVMFGT_VFPR16_MF4_MASK = 7944,
+ PseudoVMFGT_VFPR32_M1 = 7945,
+ PseudoVMFGT_VFPR32_M1_MASK = 7946,
+ PseudoVMFGT_VFPR32_M2 = 7947,
+ PseudoVMFGT_VFPR32_M2_MASK = 7948,
+ PseudoVMFGT_VFPR32_M4 = 7949,
+ PseudoVMFGT_VFPR32_M4_MASK = 7950,
+ PseudoVMFGT_VFPR32_M8 = 7951,
+ PseudoVMFGT_VFPR32_M8_MASK = 7952,
+ PseudoVMFGT_VFPR32_MF2 = 7953,
+ PseudoVMFGT_VFPR32_MF2_MASK = 7954,
+ PseudoVMFGT_VFPR64_M1 = 7955,
+ PseudoVMFGT_VFPR64_M1_MASK = 7956,
+ PseudoVMFGT_VFPR64_M2 = 7957,
+ PseudoVMFGT_VFPR64_M2_MASK = 7958,
+ PseudoVMFGT_VFPR64_M4 = 7959,
+ PseudoVMFGT_VFPR64_M4_MASK = 7960,
+ PseudoVMFGT_VFPR64_M8 = 7961,
+ PseudoVMFGT_VFPR64_M8_MASK = 7962,
+ PseudoVMFLE_ALT_VFPR16_M1 = 7963,
+ PseudoVMFLE_ALT_VFPR16_M1_MASK = 7964,
+ PseudoVMFLE_ALT_VFPR16_M2 = 7965,
+ PseudoVMFLE_ALT_VFPR16_M2_MASK = 7966,
+ PseudoVMFLE_ALT_VFPR16_M4 = 7967,
+ PseudoVMFLE_ALT_VFPR16_M4_MASK = 7968,
+ PseudoVMFLE_ALT_VFPR16_M8 = 7969,
+ PseudoVMFLE_ALT_VFPR16_M8_MASK = 7970,
+ PseudoVMFLE_ALT_VFPR16_MF2 = 7971,
+ PseudoVMFLE_ALT_VFPR16_MF2_MASK = 7972,
+ PseudoVMFLE_ALT_VFPR16_MF4 = 7973,
+ PseudoVMFLE_ALT_VFPR16_MF4_MASK = 7974,
+ PseudoVMFLE_ALT_VFPR32_M1 = 7975,
+ PseudoVMFLE_ALT_VFPR32_M1_MASK = 7976,
+ PseudoVMFLE_ALT_VFPR32_M2 = 7977,
+ PseudoVMFLE_ALT_VFPR32_M2_MASK = 7978,
+ PseudoVMFLE_ALT_VFPR32_M4 = 7979,
+ PseudoVMFLE_ALT_VFPR32_M4_MASK = 7980,
+ PseudoVMFLE_ALT_VFPR32_M8 = 7981,
+ PseudoVMFLE_ALT_VFPR32_M8_MASK = 7982,
+ PseudoVMFLE_ALT_VFPR32_MF2 = 7983,
+ PseudoVMFLE_ALT_VFPR32_MF2_MASK = 7984,
+ PseudoVMFLE_ALT_VFPR64_M1 = 7985,
+ PseudoVMFLE_ALT_VFPR64_M1_MASK = 7986,
+ PseudoVMFLE_ALT_VFPR64_M2 = 7987,
+ PseudoVMFLE_ALT_VFPR64_M2_MASK = 7988,
+ PseudoVMFLE_ALT_VFPR64_M4 = 7989,
+ PseudoVMFLE_ALT_VFPR64_M4_MASK = 7990,
+ PseudoVMFLE_ALT_VFPR64_M8 = 7991,
+ PseudoVMFLE_ALT_VFPR64_M8_MASK = 7992,
+ PseudoVMFLE_ALT_VV_M1 = 7993,
+ PseudoVMFLE_ALT_VV_M1_MASK = 7994,
+ PseudoVMFLE_ALT_VV_M2 = 7995,
+ PseudoVMFLE_ALT_VV_M2_MASK = 7996,
+ PseudoVMFLE_ALT_VV_M4 = 7997,
+ PseudoVMFLE_ALT_VV_M4_MASK = 7998,
+ PseudoVMFLE_ALT_VV_M8 = 7999,
+ PseudoVMFLE_ALT_VV_M8_MASK = 8000,
+ PseudoVMFLE_ALT_VV_MF2 = 8001,
+ PseudoVMFLE_ALT_VV_MF2_MASK = 8002,
+ PseudoVMFLE_ALT_VV_MF4 = 8003,
+ PseudoVMFLE_ALT_VV_MF4_MASK = 8004,
+ PseudoVMFLE_VFPR16_M1 = 8005,
+ PseudoVMFLE_VFPR16_M1_MASK = 8006,
+ PseudoVMFLE_VFPR16_M2 = 8007,
+ PseudoVMFLE_VFPR16_M2_MASK = 8008,
+ PseudoVMFLE_VFPR16_M4 = 8009,
+ PseudoVMFLE_VFPR16_M4_MASK = 8010,
+ PseudoVMFLE_VFPR16_M8 = 8011,
+ PseudoVMFLE_VFPR16_M8_MASK = 8012,
+ PseudoVMFLE_VFPR16_MF2 = 8013,
+ PseudoVMFLE_VFPR16_MF2_MASK = 8014,
+ PseudoVMFLE_VFPR16_MF4 = 8015,
+ PseudoVMFLE_VFPR16_MF4_MASK = 8016,
+ PseudoVMFLE_VFPR32_M1 = 8017,
+ PseudoVMFLE_VFPR32_M1_MASK = 8018,
+ PseudoVMFLE_VFPR32_M2 = 8019,
+ PseudoVMFLE_VFPR32_M2_MASK = 8020,
+ PseudoVMFLE_VFPR32_M4 = 8021,
+ PseudoVMFLE_VFPR32_M4_MASK = 8022,
+ PseudoVMFLE_VFPR32_M8 = 8023,
+ PseudoVMFLE_VFPR32_M8_MASK = 8024,
+ PseudoVMFLE_VFPR32_MF2 = 8025,
+ PseudoVMFLE_VFPR32_MF2_MASK = 8026,
+ PseudoVMFLE_VFPR64_M1 = 8027,
+ PseudoVMFLE_VFPR64_M1_MASK = 8028,
+ PseudoVMFLE_VFPR64_M2 = 8029,
+ PseudoVMFLE_VFPR64_M2_MASK = 8030,
+ PseudoVMFLE_VFPR64_M4 = 8031,
+ PseudoVMFLE_VFPR64_M4_MASK = 8032,
+ PseudoVMFLE_VFPR64_M8 = 8033,
+ PseudoVMFLE_VFPR64_M8_MASK = 8034,
+ PseudoVMFLE_VV_M1 = 8035,
+ PseudoVMFLE_VV_M1_MASK = 8036,
+ PseudoVMFLE_VV_M2 = 8037,
+ PseudoVMFLE_VV_M2_MASK = 8038,
+ PseudoVMFLE_VV_M4 = 8039,
+ PseudoVMFLE_VV_M4_MASK = 8040,
+ PseudoVMFLE_VV_M8 = 8041,
+ PseudoVMFLE_VV_M8_MASK = 8042,
+ PseudoVMFLE_VV_MF2 = 8043,
+ PseudoVMFLE_VV_MF2_MASK = 8044,
+ PseudoVMFLE_VV_MF4 = 8045,
+ PseudoVMFLE_VV_MF4_MASK = 8046,
+ PseudoVMFLT_ALT_VFPR16_M1 = 8047,
+ PseudoVMFLT_ALT_VFPR16_M1_MASK = 8048,
+ PseudoVMFLT_ALT_VFPR16_M2 = 8049,
+ PseudoVMFLT_ALT_VFPR16_M2_MASK = 8050,
+ PseudoVMFLT_ALT_VFPR16_M4 = 8051,
+ PseudoVMFLT_ALT_VFPR16_M4_MASK = 8052,
+ PseudoVMFLT_ALT_VFPR16_M8 = 8053,
+ PseudoVMFLT_ALT_VFPR16_M8_MASK = 8054,
+ PseudoVMFLT_ALT_VFPR16_MF2 = 8055,
+ PseudoVMFLT_ALT_VFPR16_MF2_MASK = 8056,
+ PseudoVMFLT_ALT_VFPR16_MF4 = 8057,
+ PseudoVMFLT_ALT_VFPR16_MF4_MASK = 8058,
+ PseudoVMFLT_ALT_VFPR32_M1 = 8059,
+ PseudoVMFLT_ALT_VFPR32_M1_MASK = 8060,
+ PseudoVMFLT_ALT_VFPR32_M2 = 8061,
+ PseudoVMFLT_ALT_VFPR32_M2_MASK = 8062,
+ PseudoVMFLT_ALT_VFPR32_M4 = 8063,
+ PseudoVMFLT_ALT_VFPR32_M4_MASK = 8064,
+ PseudoVMFLT_ALT_VFPR32_M8 = 8065,
+ PseudoVMFLT_ALT_VFPR32_M8_MASK = 8066,
+ PseudoVMFLT_ALT_VFPR32_MF2 = 8067,
+ PseudoVMFLT_ALT_VFPR32_MF2_MASK = 8068,
+ PseudoVMFLT_ALT_VFPR64_M1 = 8069,
+ PseudoVMFLT_ALT_VFPR64_M1_MASK = 8070,
+ PseudoVMFLT_ALT_VFPR64_M2 = 8071,
+ PseudoVMFLT_ALT_VFPR64_M2_MASK = 8072,
+ PseudoVMFLT_ALT_VFPR64_M4 = 8073,
+ PseudoVMFLT_ALT_VFPR64_M4_MASK = 8074,
+ PseudoVMFLT_ALT_VFPR64_M8 = 8075,
+ PseudoVMFLT_ALT_VFPR64_M8_MASK = 8076,
+ PseudoVMFLT_ALT_VV_M1 = 8077,
+ PseudoVMFLT_ALT_VV_M1_MASK = 8078,
+ PseudoVMFLT_ALT_VV_M2 = 8079,
+ PseudoVMFLT_ALT_VV_M2_MASK = 8080,
+ PseudoVMFLT_ALT_VV_M4 = 8081,
+ PseudoVMFLT_ALT_VV_M4_MASK = 8082,
+ PseudoVMFLT_ALT_VV_M8 = 8083,
+ PseudoVMFLT_ALT_VV_M8_MASK = 8084,
+ PseudoVMFLT_ALT_VV_MF2 = 8085,
+ PseudoVMFLT_ALT_VV_MF2_MASK = 8086,
+ PseudoVMFLT_ALT_VV_MF4 = 8087,
+ PseudoVMFLT_ALT_VV_MF4_MASK = 8088,
+ PseudoVMFLT_VFPR16_M1 = 8089,
+ PseudoVMFLT_VFPR16_M1_MASK = 8090,
+ PseudoVMFLT_VFPR16_M2 = 8091,
+ PseudoVMFLT_VFPR16_M2_MASK = 8092,
+ PseudoVMFLT_VFPR16_M4 = 8093,
+ PseudoVMFLT_VFPR16_M4_MASK = 8094,
+ PseudoVMFLT_VFPR16_M8 = 8095,
+ PseudoVMFLT_VFPR16_M8_MASK = 8096,
+ PseudoVMFLT_VFPR16_MF2 = 8097,
+ PseudoVMFLT_VFPR16_MF2_MASK = 8098,
+ PseudoVMFLT_VFPR16_MF4 = 8099,
+ PseudoVMFLT_VFPR16_MF4_MASK = 8100,
+ PseudoVMFLT_VFPR32_M1 = 8101,
+ PseudoVMFLT_VFPR32_M1_MASK = 8102,
+ PseudoVMFLT_VFPR32_M2 = 8103,
+ PseudoVMFLT_VFPR32_M2_MASK = 8104,
+ PseudoVMFLT_VFPR32_M4 = 8105,
+ PseudoVMFLT_VFPR32_M4_MASK = 8106,
+ PseudoVMFLT_VFPR32_M8 = 8107,
+ PseudoVMFLT_VFPR32_M8_MASK = 8108,
+ PseudoVMFLT_VFPR32_MF2 = 8109,
+ PseudoVMFLT_VFPR32_MF2_MASK = 8110,
+ PseudoVMFLT_VFPR64_M1 = 8111,
+ PseudoVMFLT_VFPR64_M1_MASK = 8112,
+ PseudoVMFLT_VFPR64_M2 = 8113,
+ PseudoVMFLT_VFPR64_M2_MASK = 8114,
+ PseudoVMFLT_VFPR64_M4 = 8115,
+ PseudoVMFLT_VFPR64_M4_MASK = 8116,
+ PseudoVMFLT_VFPR64_M8 = 8117,
+ PseudoVMFLT_VFPR64_M8_MASK = 8118,
+ PseudoVMFLT_VV_M1 = 8119,
+ PseudoVMFLT_VV_M1_MASK = 8120,
+ PseudoVMFLT_VV_M2 = 8121,
+ PseudoVMFLT_VV_M2_MASK = 8122,
+ PseudoVMFLT_VV_M4 = 8123,
+ PseudoVMFLT_VV_M4_MASK = 8124,
+ PseudoVMFLT_VV_M8 = 8125,
+ PseudoVMFLT_VV_M8_MASK = 8126,
+ PseudoVMFLT_VV_MF2 = 8127,
+ PseudoVMFLT_VV_MF2_MASK = 8128,
+ PseudoVMFLT_VV_MF4 = 8129,
+ PseudoVMFLT_VV_MF4_MASK = 8130,
+ PseudoVMFNE_ALT_VFPR16_M1 = 8131,
+ PseudoVMFNE_ALT_VFPR16_M1_MASK = 8132,
+ PseudoVMFNE_ALT_VFPR16_M2 = 8133,
+ PseudoVMFNE_ALT_VFPR16_M2_MASK = 8134,
+ PseudoVMFNE_ALT_VFPR16_M4 = 8135,
+ PseudoVMFNE_ALT_VFPR16_M4_MASK = 8136,
+ PseudoVMFNE_ALT_VFPR16_M8 = 8137,
+ PseudoVMFNE_ALT_VFPR16_M8_MASK = 8138,
+ PseudoVMFNE_ALT_VFPR16_MF2 = 8139,
+ PseudoVMFNE_ALT_VFPR16_MF2_MASK = 8140,
+ PseudoVMFNE_ALT_VFPR16_MF4 = 8141,
+ PseudoVMFNE_ALT_VFPR16_MF4_MASK = 8142,
+ PseudoVMFNE_ALT_VFPR32_M1 = 8143,
+ PseudoVMFNE_ALT_VFPR32_M1_MASK = 8144,
+ PseudoVMFNE_ALT_VFPR32_M2 = 8145,
+ PseudoVMFNE_ALT_VFPR32_M2_MASK = 8146,
+ PseudoVMFNE_ALT_VFPR32_M4 = 8147,
+ PseudoVMFNE_ALT_VFPR32_M4_MASK = 8148,
+ PseudoVMFNE_ALT_VFPR32_M8 = 8149,
+ PseudoVMFNE_ALT_VFPR32_M8_MASK = 8150,
+ PseudoVMFNE_ALT_VFPR32_MF2 = 8151,
+ PseudoVMFNE_ALT_VFPR32_MF2_MASK = 8152,
+ PseudoVMFNE_ALT_VFPR64_M1 = 8153,
+ PseudoVMFNE_ALT_VFPR64_M1_MASK = 8154,
+ PseudoVMFNE_ALT_VFPR64_M2 = 8155,
+ PseudoVMFNE_ALT_VFPR64_M2_MASK = 8156,
+ PseudoVMFNE_ALT_VFPR64_M4 = 8157,
+ PseudoVMFNE_ALT_VFPR64_M4_MASK = 8158,
+ PseudoVMFNE_ALT_VFPR64_M8 = 8159,
+ PseudoVMFNE_ALT_VFPR64_M8_MASK = 8160,
+ PseudoVMFNE_ALT_VV_M1 = 8161,
+ PseudoVMFNE_ALT_VV_M1_MASK = 8162,
+ PseudoVMFNE_ALT_VV_M2 = 8163,
+ PseudoVMFNE_ALT_VV_M2_MASK = 8164,
+ PseudoVMFNE_ALT_VV_M4 = 8165,
+ PseudoVMFNE_ALT_VV_M4_MASK = 8166,
+ PseudoVMFNE_ALT_VV_M8 = 8167,
+ PseudoVMFNE_ALT_VV_M8_MASK = 8168,
+ PseudoVMFNE_ALT_VV_MF2 = 8169,
+ PseudoVMFNE_ALT_VV_MF2_MASK = 8170,
+ PseudoVMFNE_ALT_VV_MF4 = 8171,
+ PseudoVMFNE_ALT_VV_MF4_MASK = 8172,
+ PseudoVMFNE_VFPR16_M1 = 8173,
+ PseudoVMFNE_VFPR16_M1_MASK = 8174,
+ PseudoVMFNE_VFPR16_M2 = 8175,
+ PseudoVMFNE_VFPR16_M2_MASK = 8176,
+ PseudoVMFNE_VFPR16_M4 = 8177,
+ PseudoVMFNE_VFPR16_M4_MASK = 8178,
+ PseudoVMFNE_VFPR16_M8 = 8179,
+ PseudoVMFNE_VFPR16_M8_MASK = 8180,
+ PseudoVMFNE_VFPR16_MF2 = 8181,
+ PseudoVMFNE_VFPR16_MF2_MASK = 8182,
+ PseudoVMFNE_VFPR16_MF4 = 8183,
+ PseudoVMFNE_VFPR16_MF4_MASK = 8184,
+ PseudoVMFNE_VFPR32_M1 = 8185,
+ PseudoVMFNE_VFPR32_M1_MASK = 8186,
+ PseudoVMFNE_VFPR32_M2 = 8187,
+ PseudoVMFNE_VFPR32_M2_MASK = 8188,
+ PseudoVMFNE_VFPR32_M4 = 8189,
+ PseudoVMFNE_VFPR32_M4_MASK = 8190,
+ PseudoVMFNE_VFPR32_M8 = 8191,
+ PseudoVMFNE_VFPR32_M8_MASK = 8192,
+ PseudoVMFNE_VFPR32_MF2 = 8193,
+ PseudoVMFNE_VFPR32_MF2_MASK = 8194,
+ PseudoVMFNE_VFPR64_M1 = 8195,
+ PseudoVMFNE_VFPR64_M1_MASK = 8196,
+ PseudoVMFNE_VFPR64_M2 = 8197,
+ PseudoVMFNE_VFPR64_M2_MASK = 8198,
+ PseudoVMFNE_VFPR64_M4 = 8199,
+ PseudoVMFNE_VFPR64_M4_MASK = 8200,
+ PseudoVMFNE_VFPR64_M8 = 8201,
+ PseudoVMFNE_VFPR64_M8_MASK = 8202,
+ PseudoVMFNE_VV_M1 = 8203,
+ PseudoVMFNE_VV_M1_MASK = 8204,
+ PseudoVMFNE_VV_M2 = 8205,
+ PseudoVMFNE_VV_M2_MASK = 8206,
+ PseudoVMFNE_VV_M4 = 8207,
+ PseudoVMFNE_VV_M4_MASK = 8208,
+ PseudoVMFNE_VV_M8 = 8209,
+ PseudoVMFNE_VV_M8_MASK = 8210,
+ PseudoVMFNE_VV_MF2 = 8211,
+ PseudoVMFNE_VV_MF2_MASK = 8212,
+ PseudoVMFNE_VV_MF4 = 8213,
+ PseudoVMFNE_VV_MF4_MASK = 8214,
+ PseudoVMINU_VV_M1 = 8215,
+ PseudoVMINU_VV_M1_MASK = 8216,
+ PseudoVMINU_VV_M2 = 8217,
+ PseudoVMINU_VV_M2_MASK = 8218,
+ PseudoVMINU_VV_M4 = 8219,
+ PseudoVMINU_VV_M4_MASK = 8220,
+ PseudoVMINU_VV_M8 = 8221,
+ PseudoVMINU_VV_M8_MASK = 8222,
+ PseudoVMINU_VV_MF2 = 8223,
+ PseudoVMINU_VV_MF2_MASK = 8224,
+ PseudoVMINU_VV_MF4 = 8225,
+ PseudoVMINU_VV_MF4_MASK = 8226,
+ PseudoVMINU_VV_MF8 = 8227,
+ PseudoVMINU_VV_MF8_MASK = 8228,
+ PseudoVMINU_VX_M1 = 8229,
+ PseudoVMINU_VX_M1_MASK = 8230,
+ PseudoVMINU_VX_M2 = 8231,
+ PseudoVMINU_VX_M2_MASK = 8232,
+ PseudoVMINU_VX_M4 = 8233,
+ PseudoVMINU_VX_M4_MASK = 8234,
+ PseudoVMINU_VX_M8 = 8235,
+ PseudoVMINU_VX_M8_MASK = 8236,
+ PseudoVMINU_VX_MF2 = 8237,
+ PseudoVMINU_VX_MF2_MASK = 8238,
+ PseudoVMINU_VX_MF4 = 8239,
+ PseudoVMINU_VX_MF4_MASK = 8240,
+ PseudoVMINU_VX_MF8 = 8241,
+ PseudoVMINU_VX_MF8_MASK = 8242,
+ PseudoVMIN_VV_M1 = 8243,
+ PseudoVMIN_VV_M1_MASK = 8244,
+ PseudoVMIN_VV_M2 = 8245,
+ PseudoVMIN_VV_M2_MASK = 8246,
+ PseudoVMIN_VV_M4 = 8247,
+ PseudoVMIN_VV_M4_MASK = 8248,
+ PseudoVMIN_VV_M8 = 8249,
+ PseudoVMIN_VV_M8_MASK = 8250,
+ PseudoVMIN_VV_MF2 = 8251,
+ PseudoVMIN_VV_MF2_MASK = 8252,
+ PseudoVMIN_VV_MF4 = 8253,
+ PseudoVMIN_VV_MF4_MASK = 8254,
+ PseudoVMIN_VV_MF8 = 8255,
+ PseudoVMIN_VV_MF8_MASK = 8256,
+ PseudoVMIN_VX_M1 = 8257,
+ PseudoVMIN_VX_M1_MASK = 8258,
+ PseudoVMIN_VX_M2 = 8259,
+ PseudoVMIN_VX_M2_MASK = 8260,
+ PseudoVMIN_VX_M4 = 8261,
+ PseudoVMIN_VX_M4_MASK = 8262,
+ PseudoVMIN_VX_M8 = 8263,
+ PseudoVMIN_VX_M8_MASK = 8264,
+ PseudoVMIN_VX_MF2 = 8265,
+ PseudoVMIN_VX_MF2_MASK = 8266,
+ PseudoVMIN_VX_MF4 = 8267,
+ PseudoVMIN_VX_MF4_MASK = 8268,
+ PseudoVMIN_VX_MF8 = 8269,
+ PseudoVMIN_VX_MF8_MASK = 8270,
+ PseudoVMNAND_MM_B1 = 8271,
+ PseudoVMNAND_MM_B16 = 8272,
+ PseudoVMNAND_MM_B2 = 8273,
+ PseudoVMNAND_MM_B32 = 8274,
+ PseudoVMNAND_MM_B4 = 8275,
+ PseudoVMNAND_MM_B64 = 8276,
+ PseudoVMNAND_MM_B8 = 8277,
+ PseudoVMNOR_MM_B1 = 8278,
+ PseudoVMNOR_MM_B16 = 8279,
+ PseudoVMNOR_MM_B2 = 8280,
+ PseudoVMNOR_MM_B32 = 8281,
+ PseudoVMNOR_MM_B4 = 8282,
+ PseudoVMNOR_MM_B64 = 8283,
+ PseudoVMNOR_MM_B8 = 8284,
+ PseudoVMORN_MM_B1 = 8285,
+ PseudoVMORN_MM_B16 = 8286,
+ PseudoVMORN_MM_B2 = 8287,
+ PseudoVMORN_MM_B32 = 8288,
+ PseudoVMORN_MM_B4 = 8289,
+ PseudoVMORN_MM_B64 = 8290,
+ PseudoVMORN_MM_B8 = 8291,
+ PseudoVMOR_MM_B1 = 8292,
+ PseudoVMOR_MM_B16 = 8293,
+ PseudoVMOR_MM_B2 = 8294,
+ PseudoVMOR_MM_B32 = 8295,
+ PseudoVMOR_MM_B4 = 8296,
+ PseudoVMOR_MM_B64 = 8297,
+ PseudoVMOR_MM_B8 = 8298,
+ PseudoVMSBC_VVM_M1 = 8299,
+ PseudoVMSBC_VVM_M2 = 8300,
+ PseudoVMSBC_VVM_M4 = 8301,
+ PseudoVMSBC_VVM_M8 = 8302,
+ PseudoVMSBC_VVM_MF2 = 8303,
+ PseudoVMSBC_VVM_MF4 = 8304,
+ PseudoVMSBC_VVM_MF8 = 8305,
+ PseudoVMSBC_VV_M1 = 8306,
+ PseudoVMSBC_VV_M2 = 8307,
+ PseudoVMSBC_VV_M4 = 8308,
+ PseudoVMSBC_VV_M8 = 8309,
+ PseudoVMSBC_VV_MF2 = 8310,
+ PseudoVMSBC_VV_MF4 = 8311,
+ PseudoVMSBC_VV_MF8 = 8312,
+ PseudoVMSBC_VXM_M1 = 8313,
+ PseudoVMSBC_VXM_M2 = 8314,
+ PseudoVMSBC_VXM_M4 = 8315,
+ PseudoVMSBC_VXM_M8 = 8316,
+ PseudoVMSBC_VXM_MF2 = 8317,
+ PseudoVMSBC_VXM_MF4 = 8318,
+ PseudoVMSBC_VXM_MF8 = 8319,
+ PseudoVMSBC_VX_M1 = 8320,
+ PseudoVMSBC_VX_M2 = 8321,
+ PseudoVMSBC_VX_M4 = 8322,
+ PseudoVMSBC_VX_M8 = 8323,
+ PseudoVMSBC_VX_MF2 = 8324,
+ PseudoVMSBC_VX_MF4 = 8325,
+ PseudoVMSBC_VX_MF8 = 8326,
+ PseudoVMSBF_M_B1 = 8327,
+ PseudoVMSBF_M_B16 = 8328,
+ PseudoVMSBF_M_B16_MASK = 8329,
+ PseudoVMSBF_M_B1_MASK = 8330,
+ PseudoVMSBF_M_B2 = 8331,
+ PseudoVMSBF_M_B2_MASK = 8332,
+ PseudoVMSBF_M_B32 = 8333,
+ PseudoVMSBF_M_B32_MASK = 8334,
+ PseudoVMSBF_M_B4 = 8335,
+ PseudoVMSBF_M_B4_MASK = 8336,
+ PseudoVMSBF_M_B64 = 8337,
+ PseudoVMSBF_M_B64_MASK = 8338,
+ PseudoVMSBF_M_B8 = 8339,
+ PseudoVMSBF_M_B8_MASK = 8340,
+ PseudoVMSEQ_VI_M1 = 8341,
+ PseudoVMSEQ_VI_M1_MASK = 8342,
+ PseudoVMSEQ_VI_M2 = 8343,
+ PseudoVMSEQ_VI_M2_MASK = 8344,
+ PseudoVMSEQ_VI_M4 = 8345,
+ PseudoVMSEQ_VI_M4_MASK = 8346,
+ PseudoVMSEQ_VI_M8 = 8347,
+ PseudoVMSEQ_VI_M8_MASK = 8348,
+ PseudoVMSEQ_VI_MF2 = 8349,
+ PseudoVMSEQ_VI_MF2_MASK = 8350,
+ PseudoVMSEQ_VI_MF4 = 8351,
+ PseudoVMSEQ_VI_MF4_MASK = 8352,
+ PseudoVMSEQ_VI_MF8 = 8353,
+ PseudoVMSEQ_VI_MF8_MASK = 8354,
+ PseudoVMSEQ_VV_M1 = 8355,
+ PseudoVMSEQ_VV_M1_MASK = 8356,
+ PseudoVMSEQ_VV_M2 = 8357,
+ PseudoVMSEQ_VV_M2_MASK = 8358,
+ PseudoVMSEQ_VV_M4 = 8359,
+ PseudoVMSEQ_VV_M4_MASK = 8360,
+ PseudoVMSEQ_VV_M8 = 8361,
+ PseudoVMSEQ_VV_M8_MASK = 8362,
+ PseudoVMSEQ_VV_MF2 = 8363,
+ PseudoVMSEQ_VV_MF2_MASK = 8364,
+ PseudoVMSEQ_VV_MF4 = 8365,
+ PseudoVMSEQ_VV_MF4_MASK = 8366,
+ PseudoVMSEQ_VV_MF8 = 8367,
+ PseudoVMSEQ_VV_MF8_MASK = 8368,
+ PseudoVMSEQ_VX_M1 = 8369,
+ PseudoVMSEQ_VX_M1_MASK = 8370,
+ PseudoVMSEQ_VX_M2 = 8371,
+ PseudoVMSEQ_VX_M2_MASK = 8372,
+ PseudoVMSEQ_VX_M4 = 8373,
+ PseudoVMSEQ_VX_M4_MASK = 8374,
+ PseudoVMSEQ_VX_M8 = 8375,
+ PseudoVMSEQ_VX_M8_MASK = 8376,
+ PseudoVMSEQ_VX_MF2 = 8377,
+ PseudoVMSEQ_VX_MF2_MASK = 8378,
+ PseudoVMSEQ_VX_MF4 = 8379,
+ PseudoVMSEQ_VX_MF4_MASK = 8380,
+ PseudoVMSEQ_VX_MF8 = 8381,
+ PseudoVMSEQ_VX_MF8_MASK = 8382,
+ PseudoVMSET_M_B1 = 8383,
+ PseudoVMSET_M_B16 = 8384,
+ PseudoVMSET_M_B2 = 8385,
+ PseudoVMSET_M_B32 = 8386,
+ PseudoVMSET_M_B4 = 8387,
+ PseudoVMSET_M_B64 = 8388,
+ PseudoVMSET_M_B8 = 8389,
+ PseudoVMSGEU_VI = 8390,
+ PseudoVMSGEU_VX = 8391,
+ PseudoVMSGEU_VX_M = 8392,
+ PseudoVMSGEU_VX_M_T = 8393,
+ PseudoVMSGE_VI = 8394,
+ PseudoVMSGE_VX = 8395,
+ PseudoVMSGE_VX_M = 8396,
+ PseudoVMSGE_VX_M_T = 8397,
+ PseudoVMSGTU_VI_M1 = 8398,
+ PseudoVMSGTU_VI_M1_MASK = 8399,
+ PseudoVMSGTU_VI_M2 = 8400,
+ PseudoVMSGTU_VI_M2_MASK = 8401,
+ PseudoVMSGTU_VI_M4 = 8402,
+ PseudoVMSGTU_VI_M4_MASK = 8403,
+ PseudoVMSGTU_VI_M8 = 8404,
+ PseudoVMSGTU_VI_M8_MASK = 8405,
+ PseudoVMSGTU_VI_MF2 = 8406,
+ PseudoVMSGTU_VI_MF2_MASK = 8407,
+ PseudoVMSGTU_VI_MF4 = 8408,
+ PseudoVMSGTU_VI_MF4_MASK = 8409,
+ PseudoVMSGTU_VI_MF8 = 8410,
+ PseudoVMSGTU_VI_MF8_MASK = 8411,
+ PseudoVMSGTU_VX_M1 = 8412,
+ PseudoVMSGTU_VX_M1_MASK = 8413,
+ PseudoVMSGTU_VX_M2 = 8414,
+ PseudoVMSGTU_VX_M2_MASK = 8415,
+ PseudoVMSGTU_VX_M4 = 8416,
+ PseudoVMSGTU_VX_M4_MASK = 8417,
+ PseudoVMSGTU_VX_M8 = 8418,
+ PseudoVMSGTU_VX_M8_MASK = 8419,
+ PseudoVMSGTU_VX_MF2 = 8420,
+ PseudoVMSGTU_VX_MF2_MASK = 8421,
+ PseudoVMSGTU_VX_MF4 = 8422,
+ PseudoVMSGTU_VX_MF4_MASK = 8423,
+ PseudoVMSGTU_VX_MF8 = 8424,
+ PseudoVMSGTU_VX_MF8_MASK = 8425,
+ PseudoVMSGT_VI_M1 = 8426,
+ PseudoVMSGT_VI_M1_MASK = 8427,
+ PseudoVMSGT_VI_M2 = 8428,
+ PseudoVMSGT_VI_M2_MASK = 8429,
+ PseudoVMSGT_VI_M4 = 8430,
+ PseudoVMSGT_VI_M4_MASK = 8431,
+ PseudoVMSGT_VI_M8 = 8432,
+ PseudoVMSGT_VI_M8_MASK = 8433,
+ PseudoVMSGT_VI_MF2 = 8434,
+ PseudoVMSGT_VI_MF2_MASK = 8435,
+ PseudoVMSGT_VI_MF4 = 8436,
+ PseudoVMSGT_VI_MF4_MASK = 8437,
+ PseudoVMSGT_VI_MF8 = 8438,
+ PseudoVMSGT_VI_MF8_MASK = 8439,
+ PseudoVMSGT_VX_M1 = 8440,
+ PseudoVMSGT_VX_M1_MASK = 8441,
+ PseudoVMSGT_VX_M2 = 8442,
+ PseudoVMSGT_VX_M2_MASK = 8443,
+ PseudoVMSGT_VX_M4 = 8444,
+ PseudoVMSGT_VX_M4_MASK = 8445,
+ PseudoVMSGT_VX_M8 = 8446,
+ PseudoVMSGT_VX_M8_MASK = 8447,
+ PseudoVMSGT_VX_MF2 = 8448,
+ PseudoVMSGT_VX_MF2_MASK = 8449,
+ PseudoVMSGT_VX_MF4 = 8450,
+ PseudoVMSGT_VX_MF4_MASK = 8451,
+ PseudoVMSGT_VX_MF8 = 8452,
+ PseudoVMSGT_VX_MF8_MASK = 8453,
+ PseudoVMSIF_M_B1 = 8454,
+ PseudoVMSIF_M_B16 = 8455,
+ PseudoVMSIF_M_B16_MASK = 8456,
+ PseudoVMSIF_M_B1_MASK = 8457,
+ PseudoVMSIF_M_B2 = 8458,
+ PseudoVMSIF_M_B2_MASK = 8459,
+ PseudoVMSIF_M_B32 = 8460,
+ PseudoVMSIF_M_B32_MASK = 8461,
+ PseudoVMSIF_M_B4 = 8462,
+ PseudoVMSIF_M_B4_MASK = 8463,
+ PseudoVMSIF_M_B64 = 8464,
+ PseudoVMSIF_M_B64_MASK = 8465,
+ PseudoVMSIF_M_B8 = 8466,
+ PseudoVMSIF_M_B8_MASK = 8467,
+ PseudoVMSLEU_VI_M1 = 8468,
+ PseudoVMSLEU_VI_M1_MASK = 8469,
+ PseudoVMSLEU_VI_M2 = 8470,
+ PseudoVMSLEU_VI_M2_MASK = 8471,
+ PseudoVMSLEU_VI_M4 = 8472,
+ PseudoVMSLEU_VI_M4_MASK = 8473,
+ PseudoVMSLEU_VI_M8 = 8474,
+ PseudoVMSLEU_VI_M8_MASK = 8475,
+ PseudoVMSLEU_VI_MF2 = 8476,
+ PseudoVMSLEU_VI_MF2_MASK = 8477,
+ PseudoVMSLEU_VI_MF4 = 8478,
+ PseudoVMSLEU_VI_MF4_MASK = 8479,
+ PseudoVMSLEU_VI_MF8 = 8480,
+ PseudoVMSLEU_VI_MF8_MASK = 8481,
+ PseudoVMSLEU_VV_M1 = 8482,
+ PseudoVMSLEU_VV_M1_MASK = 8483,
+ PseudoVMSLEU_VV_M2 = 8484,
+ PseudoVMSLEU_VV_M2_MASK = 8485,
+ PseudoVMSLEU_VV_M4 = 8486,
+ PseudoVMSLEU_VV_M4_MASK = 8487,
+ PseudoVMSLEU_VV_M8 = 8488,
+ PseudoVMSLEU_VV_M8_MASK = 8489,
+ PseudoVMSLEU_VV_MF2 = 8490,
+ PseudoVMSLEU_VV_MF2_MASK = 8491,
+ PseudoVMSLEU_VV_MF4 = 8492,
+ PseudoVMSLEU_VV_MF4_MASK = 8493,
+ PseudoVMSLEU_VV_MF8 = 8494,
+ PseudoVMSLEU_VV_MF8_MASK = 8495,
+ PseudoVMSLEU_VX_M1 = 8496,
+ PseudoVMSLEU_VX_M1_MASK = 8497,
+ PseudoVMSLEU_VX_M2 = 8498,
+ PseudoVMSLEU_VX_M2_MASK = 8499,
+ PseudoVMSLEU_VX_M4 = 8500,
+ PseudoVMSLEU_VX_M4_MASK = 8501,
+ PseudoVMSLEU_VX_M8 = 8502,
+ PseudoVMSLEU_VX_M8_MASK = 8503,
+ PseudoVMSLEU_VX_MF2 = 8504,
+ PseudoVMSLEU_VX_MF2_MASK = 8505,
+ PseudoVMSLEU_VX_MF4 = 8506,
+ PseudoVMSLEU_VX_MF4_MASK = 8507,
+ PseudoVMSLEU_VX_MF8 = 8508,
+ PseudoVMSLEU_VX_MF8_MASK = 8509,
+ PseudoVMSLE_VI_M1 = 8510,
+ PseudoVMSLE_VI_M1_MASK = 8511,
+ PseudoVMSLE_VI_M2 = 8512,
+ PseudoVMSLE_VI_M2_MASK = 8513,
+ PseudoVMSLE_VI_M4 = 8514,
+ PseudoVMSLE_VI_M4_MASK = 8515,
+ PseudoVMSLE_VI_M8 = 8516,
+ PseudoVMSLE_VI_M8_MASK = 8517,
+ PseudoVMSLE_VI_MF2 = 8518,
+ PseudoVMSLE_VI_MF2_MASK = 8519,
+ PseudoVMSLE_VI_MF4 = 8520,
+ PseudoVMSLE_VI_MF4_MASK = 8521,
+ PseudoVMSLE_VI_MF8 = 8522,
+ PseudoVMSLE_VI_MF8_MASK = 8523,
+ PseudoVMSLE_VV_M1 = 8524,
+ PseudoVMSLE_VV_M1_MASK = 8525,
+ PseudoVMSLE_VV_M2 = 8526,
+ PseudoVMSLE_VV_M2_MASK = 8527,
+ PseudoVMSLE_VV_M4 = 8528,
+ PseudoVMSLE_VV_M4_MASK = 8529,
+ PseudoVMSLE_VV_M8 = 8530,
+ PseudoVMSLE_VV_M8_MASK = 8531,
+ PseudoVMSLE_VV_MF2 = 8532,
+ PseudoVMSLE_VV_MF2_MASK = 8533,
+ PseudoVMSLE_VV_MF4 = 8534,
+ PseudoVMSLE_VV_MF4_MASK = 8535,
+ PseudoVMSLE_VV_MF8 = 8536,
+ PseudoVMSLE_VV_MF8_MASK = 8537,
+ PseudoVMSLE_VX_M1 = 8538,
+ PseudoVMSLE_VX_M1_MASK = 8539,
+ PseudoVMSLE_VX_M2 = 8540,
+ PseudoVMSLE_VX_M2_MASK = 8541,
+ PseudoVMSLE_VX_M4 = 8542,
+ PseudoVMSLE_VX_M4_MASK = 8543,
+ PseudoVMSLE_VX_M8 = 8544,
+ PseudoVMSLE_VX_M8_MASK = 8545,
+ PseudoVMSLE_VX_MF2 = 8546,
+ PseudoVMSLE_VX_MF2_MASK = 8547,
+ PseudoVMSLE_VX_MF4 = 8548,
+ PseudoVMSLE_VX_MF4_MASK = 8549,
+ PseudoVMSLE_VX_MF8 = 8550,
+ PseudoVMSLE_VX_MF8_MASK = 8551,
+ PseudoVMSLTU_VI = 8552,
+ PseudoVMSLTU_VV_M1 = 8553,
+ PseudoVMSLTU_VV_M1_MASK = 8554,
+ PseudoVMSLTU_VV_M2 = 8555,
+ PseudoVMSLTU_VV_M2_MASK = 8556,
+ PseudoVMSLTU_VV_M4 = 8557,
+ PseudoVMSLTU_VV_M4_MASK = 8558,
+ PseudoVMSLTU_VV_M8 = 8559,
+ PseudoVMSLTU_VV_M8_MASK = 8560,
+ PseudoVMSLTU_VV_MF2 = 8561,
+ PseudoVMSLTU_VV_MF2_MASK = 8562,
+ PseudoVMSLTU_VV_MF4 = 8563,
+ PseudoVMSLTU_VV_MF4_MASK = 8564,
+ PseudoVMSLTU_VV_MF8 = 8565,
+ PseudoVMSLTU_VV_MF8_MASK = 8566,
+ PseudoVMSLTU_VX_M1 = 8567,
+ PseudoVMSLTU_VX_M1_MASK = 8568,
+ PseudoVMSLTU_VX_M2 = 8569,
+ PseudoVMSLTU_VX_M2_MASK = 8570,
+ PseudoVMSLTU_VX_M4 = 8571,
+ PseudoVMSLTU_VX_M4_MASK = 8572,
+ PseudoVMSLTU_VX_M8 = 8573,
+ PseudoVMSLTU_VX_M8_MASK = 8574,
+ PseudoVMSLTU_VX_MF2 = 8575,
+ PseudoVMSLTU_VX_MF2_MASK = 8576,
+ PseudoVMSLTU_VX_MF4 = 8577,
+ PseudoVMSLTU_VX_MF4_MASK = 8578,
+ PseudoVMSLTU_VX_MF8 = 8579,
+ PseudoVMSLTU_VX_MF8_MASK = 8580,
+ PseudoVMSLT_VI = 8581,
+ PseudoVMSLT_VV_M1 = 8582,
+ PseudoVMSLT_VV_M1_MASK = 8583,
+ PseudoVMSLT_VV_M2 = 8584,
+ PseudoVMSLT_VV_M2_MASK = 8585,
+ PseudoVMSLT_VV_M4 = 8586,
+ PseudoVMSLT_VV_M4_MASK = 8587,
+ PseudoVMSLT_VV_M8 = 8588,
+ PseudoVMSLT_VV_M8_MASK = 8589,
+ PseudoVMSLT_VV_MF2 = 8590,
+ PseudoVMSLT_VV_MF2_MASK = 8591,
+ PseudoVMSLT_VV_MF4 = 8592,
+ PseudoVMSLT_VV_MF4_MASK = 8593,
+ PseudoVMSLT_VV_MF8 = 8594,
+ PseudoVMSLT_VV_MF8_MASK = 8595,
+ PseudoVMSLT_VX_M1 = 8596,
+ PseudoVMSLT_VX_M1_MASK = 8597,
+ PseudoVMSLT_VX_M2 = 8598,
+ PseudoVMSLT_VX_M2_MASK = 8599,
+ PseudoVMSLT_VX_M4 = 8600,
+ PseudoVMSLT_VX_M4_MASK = 8601,
+ PseudoVMSLT_VX_M8 = 8602,
+ PseudoVMSLT_VX_M8_MASK = 8603,
+ PseudoVMSLT_VX_MF2 = 8604,
+ PseudoVMSLT_VX_MF2_MASK = 8605,
+ PseudoVMSLT_VX_MF4 = 8606,
+ PseudoVMSLT_VX_MF4_MASK = 8607,
+ PseudoVMSLT_VX_MF8 = 8608,
+ PseudoVMSLT_VX_MF8_MASK = 8609,
+ PseudoVMSNE_VI_M1 = 8610,
+ PseudoVMSNE_VI_M1_MASK = 8611,
+ PseudoVMSNE_VI_M2 = 8612,
+ PseudoVMSNE_VI_M2_MASK = 8613,
+ PseudoVMSNE_VI_M4 = 8614,
+ PseudoVMSNE_VI_M4_MASK = 8615,
+ PseudoVMSNE_VI_M8 = 8616,
+ PseudoVMSNE_VI_M8_MASK = 8617,
+ PseudoVMSNE_VI_MF2 = 8618,
+ PseudoVMSNE_VI_MF2_MASK = 8619,
+ PseudoVMSNE_VI_MF4 = 8620,
+ PseudoVMSNE_VI_MF4_MASK = 8621,
+ PseudoVMSNE_VI_MF8 = 8622,
+ PseudoVMSNE_VI_MF8_MASK = 8623,
+ PseudoVMSNE_VV_M1 = 8624,
+ PseudoVMSNE_VV_M1_MASK = 8625,
+ PseudoVMSNE_VV_M2 = 8626,
+ PseudoVMSNE_VV_M2_MASK = 8627,
+ PseudoVMSNE_VV_M4 = 8628,
+ PseudoVMSNE_VV_M4_MASK = 8629,
+ PseudoVMSNE_VV_M8 = 8630,
+ PseudoVMSNE_VV_M8_MASK = 8631,
+ PseudoVMSNE_VV_MF2 = 8632,
+ PseudoVMSNE_VV_MF2_MASK = 8633,
+ PseudoVMSNE_VV_MF4 = 8634,
+ PseudoVMSNE_VV_MF4_MASK = 8635,
+ PseudoVMSNE_VV_MF8 = 8636,
+ PseudoVMSNE_VV_MF8_MASK = 8637,
+ PseudoVMSNE_VX_M1 = 8638,
+ PseudoVMSNE_VX_M1_MASK = 8639,
+ PseudoVMSNE_VX_M2 = 8640,
+ PseudoVMSNE_VX_M2_MASK = 8641,
+ PseudoVMSNE_VX_M4 = 8642,
+ PseudoVMSNE_VX_M4_MASK = 8643,
+ PseudoVMSNE_VX_M8 = 8644,
+ PseudoVMSNE_VX_M8_MASK = 8645,
+ PseudoVMSNE_VX_MF2 = 8646,
+ PseudoVMSNE_VX_MF2_MASK = 8647,
+ PseudoVMSNE_VX_MF4 = 8648,
+ PseudoVMSNE_VX_MF4_MASK = 8649,
+ PseudoVMSNE_VX_MF8 = 8650,
+ PseudoVMSNE_VX_MF8_MASK = 8651,
+ PseudoVMSOF_M_B1 = 8652,
+ PseudoVMSOF_M_B16 = 8653,
+ PseudoVMSOF_M_B16_MASK = 8654,
+ PseudoVMSOF_M_B1_MASK = 8655,
+ PseudoVMSOF_M_B2 = 8656,
+ PseudoVMSOF_M_B2_MASK = 8657,
+ PseudoVMSOF_M_B32 = 8658,
+ PseudoVMSOF_M_B32_MASK = 8659,
+ PseudoVMSOF_M_B4 = 8660,
+ PseudoVMSOF_M_B4_MASK = 8661,
+ PseudoVMSOF_M_B64 = 8662,
+ PseudoVMSOF_M_B64_MASK = 8663,
+ PseudoVMSOF_M_B8 = 8664,
+ PseudoVMSOF_M_B8_MASK = 8665,
+ PseudoVMULHSU_VV_M1 = 8666,
+ PseudoVMULHSU_VV_M1_MASK = 8667,
+ PseudoVMULHSU_VV_M2 = 8668,
+ PseudoVMULHSU_VV_M2_MASK = 8669,
+ PseudoVMULHSU_VV_M4 = 8670,
+ PseudoVMULHSU_VV_M4_MASK = 8671,
+ PseudoVMULHSU_VV_M8 = 8672,
+ PseudoVMULHSU_VV_M8_MASK = 8673,
+ PseudoVMULHSU_VV_MF2 = 8674,
+ PseudoVMULHSU_VV_MF2_MASK = 8675,
+ PseudoVMULHSU_VV_MF4 = 8676,
+ PseudoVMULHSU_VV_MF4_MASK = 8677,
+ PseudoVMULHSU_VV_MF8 = 8678,
+ PseudoVMULHSU_VV_MF8_MASK = 8679,
+ PseudoVMULHSU_VX_M1 = 8680,
+ PseudoVMULHSU_VX_M1_MASK = 8681,
+ PseudoVMULHSU_VX_M2 = 8682,
+ PseudoVMULHSU_VX_M2_MASK = 8683,
+ PseudoVMULHSU_VX_M4 = 8684,
+ PseudoVMULHSU_VX_M4_MASK = 8685,
+ PseudoVMULHSU_VX_M8 = 8686,
+ PseudoVMULHSU_VX_M8_MASK = 8687,
+ PseudoVMULHSU_VX_MF2 = 8688,
+ PseudoVMULHSU_VX_MF2_MASK = 8689,
+ PseudoVMULHSU_VX_MF4 = 8690,
+ PseudoVMULHSU_VX_MF4_MASK = 8691,
+ PseudoVMULHSU_VX_MF8 = 8692,
+ PseudoVMULHSU_VX_MF8_MASK = 8693,
+ PseudoVMULHU_VV_M1 = 8694,
+ PseudoVMULHU_VV_M1_MASK = 8695,
+ PseudoVMULHU_VV_M2 = 8696,
+ PseudoVMULHU_VV_M2_MASK = 8697,
+ PseudoVMULHU_VV_M4 = 8698,
+ PseudoVMULHU_VV_M4_MASK = 8699,
+ PseudoVMULHU_VV_M8 = 8700,
+ PseudoVMULHU_VV_M8_MASK = 8701,
+ PseudoVMULHU_VV_MF2 = 8702,
+ PseudoVMULHU_VV_MF2_MASK = 8703,
+ PseudoVMULHU_VV_MF4 = 8704,
+ PseudoVMULHU_VV_MF4_MASK = 8705,
+ PseudoVMULHU_VV_MF8 = 8706,
+ PseudoVMULHU_VV_MF8_MASK = 8707,
+ PseudoVMULHU_VX_M1 = 8708,
+ PseudoVMULHU_VX_M1_MASK = 8709,
+ PseudoVMULHU_VX_M2 = 8710,
+ PseudoVMULHU_VX_M2_MASK = 8711,
+ PseudoVMULHU_VX_M4 = 8712,
+ PseudoVMULHU_VX_M4_MASK = 8713,
+ PseudoVMULHU_VX_M8 = 8714,
+ PseudoVMULHU_VX_M8_MASK = 8715,
+ PseudoVMULHU_VX_MF2 = 8716,
+ PseudoVMULHU_VX_MF2_MASK = 8717,
+ PseudoVMULHU_VX_MF4 = 8718,
+ PseudoVMULHU_VX_MF4_MASK = 8719,
+ PseudoVMULHU_VX_MF8 = 8720,
+ PseudoVMULHU_VX_MF8_MASK = 8721,
+ PseudoVMULH_VV_M1 = 8722,
+ PseudoVMULH_VV_M1_MASK = 8723,
+ PseudoVMULH_VV_M2 = 8724,
+ PseudoVMULH_VV_M2_MASK = 8725,
+ PseudoVMULH_VV_M4 = 8726,
+ PseudoVMULH_VV_M4_MASK = 8727,
+ PseudoVMULH_VV_M8 = 8728,
+ PseudoVMULH_VV_M8_MASK = 8729,
+ PseudoVMULH_VV_MF2 = 8730,
+ PseudoVMULH_VV_MF2_MASK = 8731,
+ PseudoVMULH_VV_MF4 = 8732,
+ PseudoVMULH_VV_MF4_MASK = 8733,
+ PseudoVMULH_VV_MF8 = 8734,
+ PseudoVMULH_VV_MF8_MASK = 8735,
+ PseudoVMULH_VX_M1 = 8736,
+ PseudoVMULH_VX_M1_MASK = 8737,
+ PseudoVMULH_VX_M2 = 8738,
+ PseudoVMULH_VX_M2_MASK = 8739,
+ PseudoVMULH_VX_M4 = 8740,
+ PseudoVMULH_VX_M4_MASK = 8741,
+ PseudoVMULH_VX_M8 = 8742,
+ PseudoVMULH_VX_M8_MASK = 8743,
+ PseudoVMULH_VX_MF2 = 8744,
+ PseudoVMULH_VX_MF2_MASK = 8745,
+ PseudoVMULH_VX_MF4 = 8746,
+ PseudoVMULH_VX_MF4_MASK = 8747,
+ PseudoVMULH_VX_MF8 = 8748,
+ PseudoVMULH_VX_MF8_MASK = 8749,
+ PseudoVMUL_VV_M1 = 8750,
+ PseudoVMUL_VV_M1_MASK = 8751,
+ PseudoVMUL_VV_M2 = 8752,
+ PseudoVMUL_VV_M2_MASK = 8753,
+ PseudoVMUL_VV_M4 = 8754,
+ PseudoVMUL_VV_M4_MASK = 8755,
+ PseudoVMUL_VV_M8 = 8756,
+ PseudoVMUL_VV_M8_MASK = 8757,
+ PseudoVMUL_VV_MF2 = 8758,
+ PseudoVMUL_VV_MF2_MASK = 8759,
+ PseudoVMUL_VV_MF4 = 8760,
+ PseudoVMUL_VV_MF4_MASK = 8761,
+ PseudoVMUL_VV_MF8 = 8762,
+ PseudoVMUL_VV_MF8_MASK = 8763,
+ PseudoVMUL_VX_M1 = 8764,
+ PseudoVMUL_VX_M1_MASK = 8765,
+ PseudoVMUL_VX_M2 = 8766,
+ PseudoVMUL_VX_M2_MASK = 8767,
+ PseudoVMUL_VX_M4 = 8768,
+ PseudoVMUL_VX_M4_MASK = 8769,
+ PseudoVMUL_VX_M8 = 8770,
+ PseudoVMUL_VX_M8_MASK = 8771,
+ PseudoVMUL_VX_MF2 = 8772,
+ PseudoVMUL_VX_MF2_MASK = 8773,
+ PseudoVMUL_VX_MF4 = 8774,
+ PseudoVMUL_VX_MF4_MASK = 8775,
+ PseudoVMUL_VX_MF8 = 8776,
+ PseudoVMUL_VX_MF8_MASK = 8777,
+ PseudoVMV_S_X = 8778,
+ PseudoVMV_V_I_M1 = 8779,
+ PseudoVMV_V_I_M2 = 8780,
+ PseudoVMV_V_I_M4 = 8781,
+ PseudoVMV_V_I_M8 = 8782,
+ PseudoVMV_V_I_MF2 = 8783,
+ PseudoVMV_V_I_MF4 = 8784,
+ PseudoVMV_V_I_MF8 = 8785,
+ PseudoVMV_V_V_M1 = 8786,
+ PseudoVMV_V_V_M2 = 8787,
+ PseudoVMV_V_V_M4 = 8788,
+ PseudoVMV_V_V_M8 = 8789,
+ PseudoVMV_V_V_MF2 = 8790,
+ PseudoVMV_V_V_MF4 = 8791,
+ PseudoVMV_V_V_MF8 = 8792,
+ PseudoVMV_V_X_M1 = 8793,
+ PseudoVMV_V_X_M2 = 8794,
+ PseudoVMV_V_X_M4 = 8795,
+ PseudoVMV_V_X_M8 = 8796,
+ PseudoVMV_V_X_MF2 = 8797,
+ PseudoVMV_V_X_MF4 = 8798,
+ PseudoVMV_V_X_MF8 = 8799,
+ PseudoVMV_X_S = 8800,
+ PseudoVMXNOR_MM_B1 = 8801,
+ PseudoVMXNOR_MM_B16 = 8802,
+ PseudoVMXNOR_MM_B2 = 8803,
+ PseudoVMXNOR_MM_B32 = 8804,
+ PseudoVMXNOR_MM_B4 = 8805,
+ PseudoVMXNOR_MM_B64 = 8806,
+ PseudoVMXNOR_MM_B8 = 8807,
+ PseudoVMXOR_MM_B1 = 8808,
+ PseudoVMXOR_MM_B16 = 8809,
+ PseudoVMXOR_MM_B2 = 8810,
+ PseudoVMXOR_MM_B32 = 8811,
+ PseudoVMXOR_MM_B4 = 8812,
+ PseudoVMXOR_MM_B64 = 8813,
+ PseudoVMXOR_MM_B8 = 8814,
+ PseudoVNCLIPU_WI_M1 = 8815,
+ PseudoVNCLIPU_WI_M1_MASK = 8816,
+ PseudoVNCLIPU_WI_M2 = 8817,
+ PseudoVNCLIPU_WI_M2_MASK = 8818,
+ PseudoVNCLIPU_WI_M4 = 8819,
+ PseudoVNCLIPU_WI_M4_MASK = 8820,
+ PseudoVNCLIPU_WI_MF2 = 8821,
+ PseudoVNCLIPU_WI_MF2_MASK = 8822,
+ PseudoVNCLIPU_WI_MF4 = 8823,
+ PseudoVNCLIPU_WI_MF4_MASK = 8824,
+ PseudoVNCLIPU_WI_MF8 = 8825,
+ PseudoVNCLIPU_WI_MF8_MASK = 8826,
+ PseudoVNCLIPU_WV_M1 = 8827,
+ PseudoVNCLIPU_WV_M1_MASK = 8828,
+ PseudoVNCLIPU_WV_M2 = 8829,
+ PseudoVNCLIPU_WV_M2_MASK = 8830,
+ PseudoVNCLIPU_WV_M4 = 8831,
+ PseudoVNCLIPU_WV_M4_MASK = 8832,
+ PseudoVNCLIPU_WV_MF2 = 8833,
+ PseudoVNCLIPU_WV_MF2_MASK = 8834,
+ PseudoVNCLIPU_WV_MF4 = 8835,
+ PseudoVNCLIPU_WV_MF4_MASK = 8836,
+ PseudoVNCLIPU_WV_MF8 = 8837,
+ PseudoVNCLIPU_WV_MF8_MASK = 8838,
+ PseudoVNCLIPU_WX_M1 = 8839,
+ PseudoVNCLIPU_WX_M1_MASK = 8840,
+ PseudoVNCLIPU_WX_M2 = 8841,
+ PseudoVNCLIPU_WX_M2_MASK = 8842,
+ PseudoVNCLIPU_WX_M4 = 8843,
+ PseudoVNCLIPU_WX_M4_MASK = 8844,
+ PseudoVNCLIPU_WX_MF2 = 8845,
+ PseudoVNCLIPU_WX_MF2_MASK = 8846,
+ PseudoVNCLIPU_WX_MF4 = 8847,
+ PseudoVNCLIPU_WX_MF4_MASK = 8848,
+ PseudoVNCLIPU_WX_MF8 = 8849,
+ PseudoVNCLIPU_WX_MF8_MASK = 8850,
+ PseudoVNCLIP_WI_M1 = 8851,
+ PseudoVNCLIP_WI_M1_MASK = 8852,
+ PseudoVNCLIP_WI_M2 = 8853,
+ PseudoVNCLIP_WI_M2_MASK = 8854,
+ PseudoVNCLIP_WI_M4 = 8855,
+ PseudoVNCLIP_WI_M4_MASK = 8856,
+ PseudoVNCLIP_WI_MF2 = 8857,
+ PseudoVNCLIP_WI_MF2_MASK = 8858,
+ PseudoVNCLIP_WI_MF4 = 8859,
+ PseudoVNCLIP_WI_MF4_MASK = 8860,
+ PseudoVNCLIP_WI_MF8 = 8861,
+ PseudoVNCLIP_WI_MF8_MASK = 8862,
+ PseudoVNCLIP_WV_M1 = 8863,
+ PseudoVNCLIP_WV_M1_MASK = 8864,
+ PseudoVNCLIP_WV_M2 = 8865,
+ PseudoVNCLIP_WV_M2_MASK = 8866,
+ PseudoVNCLIP_WV_M4 = 8867,
+ PseudoVNCLIP_WV_M4_MASK = 8868,
+ PseudoVNCLIP_WV_MF2 = 8869,
+ PseudoVNCLIP_WV_MF2_MASK = 8870,
+ PseudoVNCLIP_WV_MF4 = 8871,
+ PseudoVNCLIP_WV_MF4_MASK = 8872,
+ PseudoVNCLIP_WV_MF8 = 8873,
+ PseudoVNCLIP_WV_MF8_MASK = 8874,
+ PseudoVNCLIP_WX_M1 = 8875,
+ PseudoVNCLIP_WX_M1_MASK = 8876,
+ PseudoVNCLIP_WX_M2 = 8877,
+ PseudoVNCLIP_WX_M2_MASK = 8878,
+ PseudoVNCLIP_WX_M4 = 8879,
+ PseudoVNCLIP_WX_M4_MASK = 8880,
+ PseudoVNCLIP_WX_MF2 = 8881,
+ PseudoVNCLIP_WX_MF2_MASK = 8882,
+ PseudoVNCLIP_WX_MF4 = 8883,
+ PseudoVNCLIP_WX_MF4_MASK = 8884,
+ PseudoVNCLIP_WX_MF8 = 8885,
+ PseudoVNCLIP_WX_MF8_MASK = 8886,
+ PseudoVNMSAC_VV_M1 = 8887,
+ PseudoVNMSAC_VV_M1_MASK = 8888,
+ PseudoVNMSAC_VV_M2 = 8889,
+ PseudoVNMSAC_VV_M2_MASK = 8890,
+ PseudoVNMSAC_VV_M4 = 8891,
+ PseudoVNMSAC_VV_M4_MASK = 8892,
+ PseudoVNMSAC_VV_M8 = 8893,
+ PseudoVNMSAC_VV_M8_MASK = 8894,
+ PseudoVNMSAC_VV_MF2 = 8895,
+ PseudoVNMSAC_VV_MF2_MASK = 8896,
+ PseudoVNMSAC_VV_MF4 = 8897,
+ PseudoVNMSAC_VV_MF4_MASK = 8898,
+ PseudoVNMSAC_VV_MF8 = 8899,
+ PseudoVNMSAC_VV_MF8_MASK = 8900,
+ PseudoVNMSAC_VX_M1 = 8901,
+ PseudoVNMSAC_VX_M1_MASK = 8902,
+ PseudoVNMSAC_VX_M2 = 8903,
+ PseudoVNMSAC_VX_M2_MASK = 8904,
+ PseudoVNMSAC_VX_M4 = 8905,
+ PseudoVNMSAC_VX_M4_MASK = 8906,
+ PseudoVNMSAC_VX_M8 = 8907,
+ PseudoVNMSAC_VX_M8_MASK = 8908,
+ PseudoVNMSAC_VX_MF2 = 8909,
+ PseudoVNMSAC_VX_MF2_MASK = 8910,
+ PseudoVNMSAC_VX_MF4 = 8911,
+ PseudoVNMSAC_VX_MF4_MASK = 8912,
+ PseudoVNMSAC_VX_MF8 = 8913,
+ PseudoVNMSAC_VX_MF8_MASK = 8914,
+ PseudoVNMSUB_VV_M1 = 8915,
+ PseudoVNMSUB_VV_M1_MASK = 8916,
+ PseudoVNMSUB_VV_M2 = 8917,
+ PseudoVNMSUB_VV_M2_MASK = 8918,
+ PseudoVNMSUB_VV_M4 = 8919,
+ PseudoVNMSUB_VV_M4_MASK = 8920,
+ PseudoVNMSUB_VV_M8 = 8921,
+ PseudoVNMSUB_VV_M8_MASK = 8922,
+ PseudoVNMSUB_VV_MF2 = 8923,
+ PseudoVNMSUB_VV_MF2_MASK = 8924,
+ PseudoVNMSUB_VV_MF4 = 8925,
+ PseudoVNMSUB_VV_MF4_MASK = 8926,
+ PseudoVNMSUB_VV_MF8 = 8927,
+ PseudoVNMSUB_VV_MF8_MASK = 8928,
+ PseudoVNMSUB_VX_M1 = 8929,
+ PseudoVNMSUB_VX_M1_MASK = 8930,
+ PseudoVNMSUB_VX_M2 = 8931,
+ PseudoVNMSUB_VX_M2_MASK = 8932,
+ PseudoVNMSUB_VX_M4 = 8933,
+ PseudoVNMSUB_VX_M4_MASK = 8934,
+ PseudoVNMSUB_VX_M8 = 8935,
+ PseudoVNMSUB_VX_M8_MASK = 8936,
+ PseudoVNMSUB_VX_MF2 = 8937,
+ PseudoVNMSUB_VX_MF2_MASK = 8938,
+ PseudoVNMSUB_VX_MF4 = 8939,
+ PseudoVNMSUB_VX_MF4_MASK = 8940,
+ PseudoVNMSUB_VX_MF8 = 8941,
+ PseudoVNMSUB_VX_MF8_MASK = 8942,
+ PseudoVNSRA_WI_M1 = 8943,
+ PseudoVNSRA_WI_M1_MASK = 8944,
+ PseudoVNSRA_WI_M2 = 8945,
+ PseudoVNSRA_WI_M2_MASK = 8946,
+ PseudoVNSRA_WI_M4 = 8947,
+ PseudoVNSRA_WI_M4_MASK = 8948,
+ PseudoVNSRA_WI_MF2 = 8949,
+ PseudoVNSRA_WI_MF2_MASK = 8950,
+ PseudoVNSRA_WI_MF4 = 8951,
+ PseudoVNSRA_WI_MF4_MASK = 8952,
+ PseudoVNSRA_WI_MF8 = 8953,
+ PseudoVNSRA_WI_MF8_MASK = 8954,
+ PseudoVNSRA_WV_M1 = 8955,
+ PseudoVNSRA_WV_M1_MASK = 8956,
+ PseudoVNSRA_WV_M2 = 8957,
+ PseudoVNSRA_WV_M2_MASK = 8958,
+ PseudoVNSRA_WV_M4 = 8959,
+ PseudoVNSRA_WV_M4_MASK = 8960,
+ PseudoVNSRA_WV_MF2 = 8961,
+ PseudoVNSRA_WV_MF2_MASK = 8962,
+ PseudoVNSRA_WV_MF4 = 8963,
+ PseudoVNSRA_WV_MF4_MASK = 8964,
+ PseudoVNSRA_WV_MF8 = 8965,
+ PseudoVNSRA_WV_MF8_MASK = 8966,
+ PseudoVNSRA_WX_M1 = 8967,
+ PseudoVNSRA_WX_M1_MASK = 8968,
+ PseudoVNSRA_WX_M2 = 8969,
+ PseudoVNSRA_WX_M2_MASK = 8970,
+ PseudoVNSRA_WX_M4 = 8971,
+ PseudoVNSRA_WX_M4_MASK = 8972,
+ PseudoVNSRA_WX_MF2 = 8973,
+ PseudoVNSRA_WX_MF2_MASK = 8974,
+ PseudoVNSRA_WX_MF4 = 8975,
+ PseudoVNSRA_WX_MF4_MASK = 8976,
+ PseudoVNSRA_WX_MF8 = 8977,
+ PseudoVNSRA_WX_MF8_MASK = 8978,
+ PseudoVNSRL_WI_M1 = 8979,
+ PseudoVNSRL_WI_M1_MASK = 8980,
+ PseudoVNSRL_WI_M2 = 8981,
+ PseudoVNSRL_WI_M2_MASK = 8982,
+ PseudoVNSRL_WI_M4 = 8983,
+ PseudoVNSRL_WI_M4_MASK = 8984,
+ PseudoVNSRL_WI_MF2 = 8985,
+ PseudoVNSRL_WI_MF2_MASK = 8986,
+ PseudoVNSRL_WI_MF4 = 8987,
+ PseudoVNSRL_WI_MF4_MASK = 8988,
+ PseudoVNSRL_WI_MF8 = 8989,
+ PseudoVNSRL_WI_MF8_MASK = 8990,
+ PseudoVNSRL_WV_M1 = 8991,
+ PseudoVNSRL_WV_M1_MASK = 8992,
+ PseudoVNSRL_WV_M2 = 8993,
+ PseudoVNSRL_WV_M2_MASK = 8994,
+ PseudoVNSRL_WV_M4 = 8995,
+ PseudoVNSRL_WV_M4_MASK = 8996,
+ PseudoVNSRL_WV_MF2 = 8997,
+ PseudoVNSRL_WV_MF2_MASK = 8998,
+ PseudoVNSRL_WV_MF4 = 8999,
+ PseudoVNSRL_WV_MF4_MASK = 9000,
+ PseudoVNSRL_WV_MF8 = 9001,
+ PseudoVNSRL_WV_MF8_MASK = 9002,
+ PseudoVNSRL_WX_M1 = 9003,
+ PseudoVNSRL_WX_M1_MASK = 9004,
+ PseudoVNSRL_WX_M2 = 9005,
+ PseudoVNSRL_WX_M2_MASK = 9006,
+ PseudoVNSRL_WX_M4 = 9007,
+ PseudoVNSRL_WX_M4_MASK = 9008,
+ PseudoVNSRL_WX_MF2 = 9009,
+ PseudoVNSRL_WX_MF2_MASK = 9010,
+ PseudoVNSRL_WX_MF4 = 9011,
+ PseudoVNSRL_WX_MF4_MASK = 9012,
+ PseudoVNSRL_WX_MF8 = 9013,
+ PseudoVNSRL_WX_MF8_MASK = 9014,
+ PseudoVOR_VI_M1 = 9015,
+ PseudoVOR_VI_M1_MASK = 9016,
+ PseudoVOR_VI_M2 = 9017,
+ PseudoVOR_VI_M2_MASK = 9018,
+ PseudoVOR_VI_M4 = 9019,
+ PseudoVOR_VI_M4_MASK = 9020,
+ PseudoVOR_VI_M8 = 9021,
+ PseudoVOR_VI_M8_MASK = 9022,
+ PseudoVOR_VI_MF2 = 9023,
+ PseudoVOR_VI_MF2_MASK = 9024,
+ PseudoVOR_VI_MF4 = 9025,
+ PseudoVOR_VI_MF4_MASK = 9026,
+ PseudoVOR_VI_MF8 = 9027,
+ PseudoVOR_VI_MF8_MASK = 9028,
+ PseudoVOR_VV_M1 = 9029,
+ PseudoVOR_VV_M1_MASK = 9030,
+ PseudoVOR_VV_M2 = 9031,
+ PseudoVOR_VV_M2_MASK = 9032,
+ PseudoVOR_VV_M4 = 9033,
+ PseudoVOR_VV_M4_MASK = 9034,
+ PseudoVOR_VV_M8 = 9035,
+ PseudoVOR_VV_M8_MASK = 9036,
+ PseudoVOR_VV_MF2 = 9037,
+ PseudoVOR_VV_MF2_MASK = 9038,
+ PseudoVOR_VV_MF4 = 9039,
+ PseudoVOR_VV_MF4_MASK = 9040,
+ PseudoVOR_VV_MF8 = 9041,
+ PseudoVOR_VV_MF8_MASK = 9042,
+ PseudoVOR_VX_M1 = 9043,
+ PseudoVOR_VX_M1_MASK = 9044,
+ PseudoVOR_VX_M2 = 9045,
+ PseudoVOR_VX_M2_MASK = 9046,
+ PseudoVOR_VX_M4 = 9047,
+ PseudoVOR_VX_M4_MASK = 9048,
+ PseudoVOR_VX_M8 = 9049,
+ PseudoVOR_VX_M8_MASK = 9050,
+ PseudoVOR_VX_MF2 = 9051,
+ PseudoVOR_VX_MF2_MASK = 9052,
+ PseudoVOR_VX_MF4 = 9053,
+ PseudoVOR_VX_MF4_MASK = 9054,
+ PseudoVOR_VX_MF8 = 9055,
+ PseudoVOR_VX_MF8_MASK = 9056,
+ PseudoVQDOTSU_VV_M1 = 9057,
+ PseudoVQDOTSU_VV_M1_MASK = 9058,
+ PseudoVQDOTSU_VV_M2 = 9059,
+ PseudoVQDOTSU_VV_M2_MASK = 9060,
+ PseudoVQDOTSU_VV_M4 = 9061,
+ PseudoVQDOTSU_VV_M4_MASK = 9062,
+ PseudoVQDOTSU_VV_M8 = 9063,
+ PseudoVQDOTSU_VV_M8_MASK = 9064,
+ PseudoVQDOTSU_VV_MF2 = 9065,
+ PseudoVQDOTSU_VV_MF2_MASK = 9066,
+ PseudoVQDOTSU_VX_M1 = 9067,
+ PseudoVQDOTSU_VX_M1_MASK = 9068,
+ PseudoVQDOTSU_VX_M2 = 9069,
+ PseudoVQDOTSU_VX_M2_MASK = 9070,
+ PseudoVQDOTSU_VX_M4 = 9071,
+ PseudoVQDOTSU_VX_M4_MASK = 9072,
+ PseudoVQDOTSU_VX_M8 = 9073,
+ PseudoVQDOTSU_VX_M8_MASK = 9074,
+ PseudoVQDOTSU_VX_MF2 = 9075,
+ PseudoVQDOTSU_VX_MF2_MASK = 9076,
+ PseudoVQDOTUS_VX_M1 = 9077,
+ PseudoVQDOTUS_VX_M1_MASK = 9078,
+ PseudoVQDOTUS_VX_M2 = 9079,
+ PseudoVQDOTUS_VX_M2_MASK = 9080,
+ PseudoVQDOTUS_VX_M4 = 9081,
+ PseudoVQDOTUS_VX_M4_MASK = 9082,
+ PseudoVQDOTUS_VX_M8 = 9083,
+ PseudoVQDOTUS_VX_M8_MASK = 9084,
+ PseudoVQDOTUS_VX_MF2 = 9085,
+ PseudoVQDOTUS_VX_MF2_MASK = 9086,
+ PseudoVQDOTU_VV_M1 = 9087,
+ PseudoVQDOTU_VV_M1_MASK = 9088,
+ PseudoVQDOTU_VV_M2 = 9089,
+ PseudoVQDOTU_VV_M2_MASK = 9090,
+ PseudoVQDOTU_VV_M4 = 9091,
+ PseudoVQDOTU_VV_M4_MASK = 9092,
+ PseudoVQDOTU_VV_M8 = 9093,
+ PseudoVQDOTU_VV_M8_MASK = 9094,
+ PseudoVQDOTU_VV_MF2 = 9095,
+ PseudoVQDOTU_VV_MF2_MASK = 9096,
+ PseudoVQDOTU_VX_M1 = 9097,
+ PseudoVQDOTU_VX_M1_MASK = 9098,
+ PseudoVQDOTU_VX_M2 = 9099,
+ PseudoVQDOTU_VX_M2_MASK = 9100,
+ PseudoVQDOTU_VX_M4 = 9101,
+ PseudoVQDOTU_VX_M4_MASK = 9102,
+ PseudoVQDOTU_VX_M8 = 9103,
+ PseudoVQDOTU_VX_M8_MASK = 9104,
+ PseudoVQDOTU_VX_MF2 = 9105,
+ PseudoVQDOTU_VX_MF2_MASK = 9106,
+ PseudoVQDOT_VV_M1 = 9107,
+ PseudoVQDOT_VV_M1_MASK = 9108,
+ PseudoVQDOT_VV_M2 = 9109,
+ PseudoVQDOT_VV_M2_MASK = 9110,
+ PseudoVQDOT_VV_M4 = 9111,
+ PseudoVQDOT_VV_M4_MASK = 9112,
+ PseudoVQDOT_VV_M8 = 9113,
+ PseudoVQDOT_VV_M8_MASK = 9114,
+ PseudoVQDOT_VV_MF2 = 9115,
+ PseudoVQDOT_VV_MF2_MASK = 9116,
+ PseudoVQDOT_VX_M1 = 9117,
+ PseudoVQDOT_VX_M1_MASK = 9118,
+ PseudoVQDOT_VX_M2 = 9119,
+ PseudoVQDOT_VX_M2_MASK = 9120,
+ PseudoVQDOT_VX_M4 = 9121,
+ PseudoVQDOT_VX_M4_MASK = 9122,
+ PseudoVQDOT_VX_M8 = 9123,
+ PseudoVQDOT_VX_M8_MASK = 9124,
+ PseudoVQDOT_VX_MF2 = 9125,
+ PseudoVQDOT_VX_MF2_MASK = 9126,
+ PseudoVREDAND_VS_M1_E16 = 9127,
+ PseudoVREDAND_VS_M1_E16_MASK = 9128,
+ PseudoVREDAND_VS_M1_E32 = 9129,
+ PseudoVREDAND_VS_M1_E32_MASK = 9130,
+ PseudoVREDAND_VS_M1_E64 = 9131,
+ PseudoVREDAND_VS_M1_E64_MASK = 9132,
+ PseudoVREDAND_VS_M1_E8 = 9133,
+ PseudoVREDAND_VS_M1_E8_MASK = 9134,
+ PseudoVREDAND_VS_M2_E16 = 9135,
+ PseudoVREDAND_VS_M2_E16_MASK = 9136,
+ PseudoVREDAND_VS_M2_E32 = 9137,
+ PseudoVREDAND_VS_M2_E32_MASK = 9138,
+ PseudoVREDAND_VS_M2_E64 = 9139,
+ PseudoVREDAND_VS_M2_E64_MASK = 9140,
+ PseudoVREDAND_VS_M2_E8 = 9141,
+ PseudoVREDAND_VS_M2_E8_MASK = 9142,
+ PseudoVREDAND_VS_M4_E16 = 9143,
+ PseudoVREDAND_VS_M4_E16_MASK = 9144,
+ PseudoVREDAND_VS_M4_E32 = 9145,
+ PseudoVREDAND_VS_M4_E32_MASK = 9146,
+ PseudoVREDAND_VS_M4_E64 = 9147,
+ PseudoVREDAND_VS_M4_E64_MASK = 9148,
+ PseudoVREDAND_VS_M4_E8 = 9149,
+ PseudoVREDAND_VS_M4_E8_MASK = 9150,
+ PseudoVREDAND_VS_M8_E16 = 9151,
+ PseudoVREDAND_VS_M8_E16_MASK = 9152,
+ PseudoVREDAND_VS_M8_E32 = 9153,
+ PseudoVREDAND_VS_M8_E32_MASK = 9154,
+ PseudoVREDAND_VS_M8_E64 = 9155,
+ PseudoVREDAND_VS_M8_E64_MASK = 9156,
+ PseudoVREDAND_VS_M8_E8 = 9157,
+ PseudoVREDAND_VS_M8_E8_MASK = 9158,
+ PseudoVREDAND_VS_MF2_E16 = 9159,
+ PseudoVREDAND_VS_MF2_E16_MASK = 9160,
+ PseudoVREDAND_VS_MF2_E32 = 9161,
+ PseudoVREDAND_VS_MF2_E32_MASK = 9162,
+ PseudoVREDAND_VS_MF2_E8 = 9163,
+ PseudoVREDAND_VS_MF2_E8_MASK = 9164,
+ PseudoVREDAND_VS_MF4_E16 = 9165,
+ PseudoVREDAND_VS_MF4_E16_MASK = 9166,
+ PseudoVREDAND_VS_MF4_E8 = 9167,
+ PseudoVREDAND_VS_MF4_E8_MASK = 9168,
+ PseudoVREDAND_VS_MF8_E8 = 9169,
+ PseudoVREDAND_VS_MF8_E8_MASK = 9170,
+ PseudoVREDMAXU_VS_M1_E16 = 9171,
+ PseudoVREDMAXU_VS_M1_E16_MASK = 9172,
+ PseudoVREDMAXU_VS_M1_E32 = 9173,
+ PseudoVREDMAXU_VS_M1_E32_MASK = 9174,
+ PseudoVREDMAXU_VS_M1_E64 = 9175,
+ PseudoVREDMAXU_VS_M1_E64_MASK = 9176,
+ PseudoVREDMAXU_VS_M1_E8 = 9177,
+ PseudoVREDMAXU_VS_M1_E8_MASK = 9178,
+ PseudoVREDMAXU_VS_M2_E16 = 9179,
+ PseudoVREDMAXU_VS_M2_E16_MASK = 9180,
+ PseudoVREDMAXU_VS_M2_E32 = 9181,
+ PseudoVREDMAXU_VS_M2_E32_MASK = 9182,
+ PseudoVREDMAXU_VS_M2_E64 = 9183,
+ PseudoVREDMAXU_VS_M2_E64_MASK = 9184,
+ PseudoVREDMAXU_VS_M2_E8 = 9185,
+ PseudoVREDMAXU_VS_M2_E8_MASK = 9186,
+ PseudoVREDMAXU_VS_M4_E16 = 9187,
+ PseudoVREDMAXU_VS_M4_E16_MASK = 9188,
+ PseudoVREDMAXU_VS_M4_E32 = 9189,
+ PseudoVREDMAXU_VS_M4_E32_MASK = 9190,
+ PseudoVREDMAXU_VS_M4_E64 = 9191,
+ PseudoVREDMAXU_VS_M4_E64_MASK = 9192,
+ PseudoVREDMAXU_VS_M4_E8 = 9193,
+ PseudoVREDMAXU_VS_M4_E8_MASK = 9194,
+ PseudoVREDMAXU_VS_M8_E16 = 9195,
+ PseudoVREDMAXU_VS_M8_E16_MASK = 9196,
+ PseudoVREDMAXU_VS_M8_E32 = 9197,
+ PseudoVREDMAXU_VS_M8_E32_MASK = 9198,
+ PseudoVREDMAXU_VS_M8_E64 = 9199,
+ PseudoVREDMAXU_VS_M8_E64_MASK = 9200,
+ PseudoVREDMAXU_VS_M8_E8 = 9201,
+ PseudoVREDMAXU_VS_M8_E8_MASK = 9202,
+ PseudoVREDMAXU_VS_MF2_E16 = 9203,
+ PseudoVREDMAXU_VS_MF2_E16_MASK = 9204,
+ PseudoVREDMAXU_VS_MF2_E32 = 9205,
+ PseudoVREDMAXU_VS_MF2_E32_MASK = 9206,
+ PseudoVREDMAXU_VS_MF2_E8 = 9207,
+ PseudoVREDMAXU_VS_MF2_E8_MASK = 9208,
+ PseudoVREDMAXU_VS_MF4_E16 = 9209,
+ PseudoVREDMAXU_VS_MF4_E16_MASK = 9210,
+ PseudoVREDMAXU_VS_MF4_E8 = 9211,
+ PseudoVREDMAXU_VS_MF4_E8_MASK = 9212,
+ PseudoVREDMAXU_VS_MF8_E8 = 9213,
+ PseudoVREDMAXU_VS_MF8_E8_MASK = 9214,
+ PseudoVREDMAX_VS_M1_E16 = 9215,
+ PseudoVREDMAX_VS_M1_E16_MASK = 9216,
+ PseudoVREDMAX_VS_M1_E32 = 9217,
+ PseudoVREDMAX_VS_M1_E32_MASK = 9218,
+ PseudoVREDMAX_VS_M1_E64 = 9219,
+ PseudoVREDMAX_VS_M1_E64_MASK = 9220,
+ PseudoVREDMAX_VS_M1_E8 = 9221,
+ PseudoVREDMAX_VS_M1_E8_MASK = 9222,
+ PseudoVREDMAX_VS_M2_E16 = 9223,
+ PseudoVREDMAX_VS_M2_E16_MASK = 9224,
+ PseudoVREDMAX_VS_M2_E32 = 9225,
+ PseudoVREDMAX_VS_M2_E32_MASK = 9226,
+ PseudoVREDMAX_VS_M2_E64 = 9227,
+ PseudoVREDMAX_VS_M2_E64_MASK = 9228,
+ PseudoVREDMAX_VS_M2_E8 = 9229,
+ PseudoVREDMAX_VS_M2_E8_MASK = 9230,
+ PseudoVREDMAX_VS_M4_E16 = 9231,
+ PseudoVREDMAX_VS_M4_E16_MASK = 9232,
+ PseudoVREDMAX_VS_M4_E32 = 9233,
+ PseudoVREDMAX_VS_M4_E32_MASK = 9234,
+ PseudoVREDMAX_VS_M4_E64 = 9235,
+ PseudoVREDMAX_VS_M4_E64_MASK = 9236,
+ PseudoVREDMAX_VS_M4_E8 = 9237,
+ PseudoVREDMAX_VS_M4_E8_MASK = 9238,
+ PseudoVREDMAX_VS_M8_E16 = 9239,
+ PseudoVREDMAX_VS_M8_E16_MASK = 9240,
+ PseudoVREDMAX_VS_M8_E32 = 9241,
+ PseudoVREDMAX_VS_M8_E32_MASK = 9242,
+ PseudoVREDMAX_VS_M8_E64 = 9243,
+ PseudoVREDMAX_VS_M8_E64_MASK = 9244,
+ PseudoVREDMAX_VS_M8_E8 = 9245,
+ PseudoVREDMAX_VS_M8_E8_MASK = 9246,
+ PseudoVREDMAX_VS_MF2_E16 = 9247,
+ PseudoVREDMAX_VS_MF2_E16_MASK = 9248,
+ PseudoVREDMAX_VS_MF2_E32 = 9249,
+ PseudoVREDMAX_VS_MF2_E32_MASK = 9250,
+ PseudoVREDMAX_VS_MF2_E8 = 9251,
+ PseudoVREDMAX_VS_MF2_E8_MASK = 9252,
+ PseudoVREDMAX_VS_MF4_E16 = 9253,
+ PseudoVREDMAX_VS_MF4_E16_MASK = 9254,
+ PseudoVREDMAX_VS_MF4_E8 = 9255,
+ PseudoVREDMAX_VS_MF4_E8_MASK = 9256,
+ PseudoVREDMAX_VS_MF8_E8 = 9257,
+ PseudoVREDMAX_VS_MF8_E8_MASK = 9258,
+ PseudoVREDMINU_VS_M1_E16 = 9259,
+ PseudoVREDMINU_VS_M1_E16_MASK = 9260,
+ PseudoVREDMINU_VS_M1_E32 = 9261,
+ PseudoVREDMINU_VS_M1_E32_MASK = 9262,
+ PseudoVREDMINU_VS_M1_E64 = 9263,
+ PseudoVREDMINU_VS_M1_E64_MASK = 9264,
+ PseudoVREDMINU_VS_M1_E8 = 9265,
+ PseudoVREDMINU_VS_M1_E8_MASK = 9266,
+ PseudoVREDMINU_VS_M2_E16 = 9267,
+ PseudoVREDMINU_VS_M2_E16_MASK = 9268,
+ PseudoVREDMINU_VS_M2_E32 = 9269,
+ PseudoVREDMINU_VS_M2_E32_MASK = 9270,
+ PseudoVREDMINU_VS_M2_E64 = 9271,
+ PseudoVREDMINU_VS_M2_E64_MASK = 9272,
+ PseudoVREDMINU_VS_M2_E8 = 9273,
+ PseudoVREDMINU_VS_M2_E8_MASK = 9274,
+ PseudoVREDMINU_VS_M4_E16 = 9275,
+ PseudoVREDMINU_VS_M4_E16_MASK = 9276,
+ PseudoVREDMINU_VS_M4_E32 = 9277,
+ PseudoVREDMINU_VS_M4_E32_MASK = 9278,
+ PseudoVREDMINU_VS_M4_E64 = 9279,
+ PseudoVREDMINU_VS_M4_E64_MASK = 9280,
+ PseudoVREDMINU_VS_M4_E8 = 9281,
+ PseudoVREDMINU_VS_M4_E8_MASK = 9282,
+ PseudoVREDMINU_VS_M8_E16 = 9283,
+ PseudoVREDMINU_VS_M8_E16_MASK = 9284,
+ PseudoVREDMINU_VS_M8_E32 = 9285,
+ PseudoVREDMINU_VS_M8_E32_MASK = 9286,
+ PseudoVREDMINU_VS_M8_E64 = 9287,
+ PseudoVREDMINU_VS_M8_E64_MASK = 9288,
+ PseudoVREDMINU_VS_M8_E8 = 9289,
+ PseudoVREDMINU_VS_M8_E8_MASK = 9290,
+ PseudoVREDMINU_VS_MF2_E16 = 9291,
+ PseudoVREDMINU_VS_MF2_E16_MASK = 9292,
+ PseudoVREDMINU_VS_MF2_E32 = 9293,
+ PseudoVREDMINU_VS_MF2_E32_MASK = 9294,
+ PseudoVREDMINU_VS_MF2_E8 = 9295,
+ PseudoVREDMINU_VS_MF2_E8_MASK = 9296,
+ PseudoVREDMINU_VS_MF4_E16 = 9297,
+ PseudoVREDMINU_VS_MF4_E16_MASK = 9298,
+ PseudoVREDMINU_VS_MF4_E8 = 9299,
+ PseudoVREDMINU_VS_MF4_E8_MASK = 9300,
+ PseudoVREDMINU_VS_MF8_E8 = 9301,
+ PseudoVREDMINU_VS_MF8_E8_MASK = 9302,
+ PseudoVREDMIN_VS_M1_E16 = 9303,
+ PseudoVREDMIN_VS_M1_E16_MASK = 9304,
+ PseudoVREDMIN_VS_M1_E32 = 9305,
+ PseudoVREDMIN_VS_M1_E32_MASK = 9306,
+ PseudoVREDMIN_VS_M1_E64 = 9307,
+ PseudoVREDMIN_VS_M1_E64_MASK = 9308,
+ PseudoVREDMIN_VS_M1_E8 = 9309,
+ PseudoVREDMIN_VS_M1_E8_MASK = 9310,
+ PseudoVREDMIN_VS_M2_E16 = 9311,
+ PseudoVREDMIN_VS_M2_E16_MASK = 9312,
+ PseudoVREDMIN_VS_M2_E32 = 9313,
+ PseudoVREDMIN_VS_M2_E32_MASK = 9314,
+ PseudoVREDMIN_VS_M2_E64 = 9315,
+ PseudoVREDMIN_VS_M2_E64_MASK = 9316,
+ PseudoVREDMIN_VS_M2_E8 = 9317,
+ PseudoVREDMIN_VS_M2_E8_MASK = 9318,
+ PseudoVREDMIN_VS_M4_E16 = 9319,
+ PseudoVREDMIN_VS_M4_E16_MASK = 9320,
+ PseudoVREDMIN_VS_M4_E32 = 9321,
+ PseudoVREDMIN_VS_M4_E32_MASK = 9322,
+ PseudoVREDMIN_VS_M4_E64 = 9323,
+ PseudoVREDMIN_VS_M4_E64_MASK = 9324,
+ PseudoVREDMIN_VS_M4_E8 = 9325,
+ PseudoVREDMIN_VS_M4_E8_MASK = 9326,
+ PseudoVREDMIN_VS_M8_E16 = 9327,
+ PseudoVREDMIN_VS_M8_E16_MASK = 9328,
+ PseudoVREDMIN_VS_M8_E32 = 9329,
+ PseudoVREDMIN_VS_M8_E32_MASK = 9330,
+ PseudoVREDMIN_VS_M8_E64 = 9331,
+ PseudoVREDMIN_VS_M8_E64_MASK = 9332,
+ PseudoVREDMIN_VS_M8_E8 = 9333,
+ PseudoVREDMIN_VS_M8_E8_MASK = 9334,
+ PseudoVREDMIN_VS_MF2_E16 = 9335,
+ PseudoVREDMIN_VS_MF2_E16_MASK = 9336,
+ PseudoVREDMIN_VS_MF2_E32 = 9337,
+ PseudoVREDMIN_VS_MF2_E32_MASK = 9338,
+ PseudoVREDMIN_VS_MF2_E8 = 9339,
+ PseudoVREDMIN_VS_MF2_E8_MASK = 9340,
+ PseudoVREDMIN_VS_MF4_E16 = 9341,
+ PseudoVREDMIN_VS_MF4_E16_MASK = 9342,
+ PseudoVREDMIN_VS_MF4_E8 = 9343,
+ PseudoVREDMIN_VS_MF4_E8_MASK = 9344,
+ PseudoVREDMIN_VS_MF8_E8 = 9345,
+ PseudoVREDMIN_VS_MF8_E8_MASK = 9346,
+ PseudoVREDOR_VS_M1_E16 = 9347,
+ PseudoVREDOR_VS_M1_E16_MASK = 9348,
+ PseudoVREDOR_VS_M1_E32 = 9349,
+ PseudoVREDOR_VS_M1_E32_MASK = 9350,
+ PseudoVREDOR_VS_M1_E64 = 9351,
+ PseudoVREDOR_VS_M1_E64_MASK = 9352,
+ PseudoVREDOR_VS_M1_E8 = 9353,
+ PseudoVREDOR_VS_M1_E8_MASK = 9354,
+ PseudoVREDOR_VS_M2_E16 = 9355,
+ PseudoVREDOR_VS_M2_E16_MASK = 9356,
+ PseudoVREDOR_VS_M2_E32 = 9357,
+ PseudoVREDOR_VS_M2_E32_MASK = 9358,
+ PseudoVREDOR_VS_M2_E64 = 9359,
+ PseudoVREDOR_VS_M2_E64_MASK = 9360,
+ PseudoVREDOR_VS_M2_E8 = 9361,
+ PseudoVREDOR_VS_M2_E8_MASK = 9362,
+ PseudoVREDOR_VS_M4_E16 = 9363,
+ PseudoVREDOR_VS_M4_E16_MASK = 9364,
+ PseudoVREDOR_VS_M4_E32 = 9365,
+ PseudoVREDOR_VS_M4_E32_MASK = 9366,
+ PseudoVREDOR_VS_M4_E64 = 9367,
+ PseudoVREDOR_VS_M4_E64_MASK = 9368,
+ PseudoVREDOR_VS_M4_E8 = 9369,
+ PseudoVREDOR_VS_M4_E8_MASK = 9370,
+ PseudoVREDOR_VS_M8_E16 = 9371,
+ PseudoVREDOR_VS_M8_E16_MASK = 9372,
+ PseudoVREDOR_VS_M8_E32 = 9373,
+ PseudoVREDOR_VS_M8_E32_MASK = 9374,
+ PseudoVREDOR_VS_M8_E64 = 9375,
+ PseudoVREDOR_VS_M8_E64_MASK = 9376,
+ PseudoVREDOR_VS_M8_E8 = 9377,
+ PseudoVREDOR_VS_M8_E8_MASK = 9378,
+ PseudoVREDOR_VS_MF2_E16 = 9379,
+ PseudoVREDOR_VS_MF2_E16_MASK = 9380,
+ PseudoVREDOR_VS_MF2_E32 = 9381,
+ PseudoVREDOR_VS_MF2_E32_MASK = 9382,
+ PseudoVREDOR_VS_MF2_E8 = 9383,
+ PseudoVREDOR_VS_MF2_E8_MASK = 9384,
+ PseudoVREDOR_VS_MF4_E16 = 9385,
+ PseudoVREDOR_VS_MF4_E16_MASK = 9386,
+ PseudoVREDOR_VS_MF4_E8 = 9387,
+ PseudoVREDOR_VS_MF4_E8_MASK = 9388,
+ PseudoVREDOR_VS_MF8_E8 = 9389,
+ PseudoVREDOR_VS_MF8_E8_MASK = 9390,
+ PseudoVREDSUM_VS_M1_E16 = 9391,
+ PseudoVREDSUM_VS_M1_E16_MASK = 9392,
+ PseudoVREDSUM_VS_M1_E32 = 9393,
+ PseudoVREDSUM_VS_M1_E32_MASK = 9394,
+ PseudoVREDSUM_VS_M1_E64 = 9395,
+ PseudoVREDSUM_VS_M1_E64_MASK = 9396,
+ PseudoVREDSUM_VS_M1_E8 = 9397,
+ PseudoVREDSUM_VS_M1_E8_MASK = 9398,
+ PseudoVREDSUM_VS_M2_E16 = 9399,
+ PseudoVREDSUM_VS_M2_E16_MASK = 9400,
+ PseudoVREDSUM_VS_M2_E32 = 9401,
+ PseudoVREDSUM_VS_M2_E32_MASK = 9402,
+ PseudoVREDSUM_VS_M2_E64 = 9403,
+ PseudoVREDSUM_VS_M2_E64_MASK = 9404,
+ PseudoVREDSUM_VS_M2_E8 = 9405,
+ PseudoVREDSUM_VS_M2_E8_MASK = 9406,
+ PseudoVREDSUM_VS_M4_E16 = 9407,
+ PseudoVREDSUM_VS_M4_E16_MASK = 9408,
+ PseudoVREDSUM_VS_M4_E32 = 9409,
+ PseudoVREDSUM_VS_M4_E32_MASK = 9410,
+ PseudoVREDSUM_VS_M4_E64 = 9411,
+ PseudoVREDSUM_VS_M4_E64_MASK = 9412,
+ PseudoVREDSUM_VS_M4_E8 = 9413,
+ PseudoVREDSUM_VS_M4_E8_MASK = 9414,
+ PseudoVREDSUM_VS_M8_E16 = 9415,
+ PseudoVREDSUM_VS_M8_E16_MASK = 9416,
+ PseudoVREDSUM_VS_M8_E32 = 9417,
+ PseudoVREDSUM_VS_M8_E32_MASK = 9418,
+ PseudoVREDSUM_VS_M8_E64 = 9419,
+ PseudoVREDSUM_VS_M8_E64_MASK = 9420,
+ PseudoVREDSUM_VS_M8_E8 = 9421,
+ PseudoVREDSUM_VS_M8_E8_MASK = 9422,
+ PseudoVREDSUM_VS_MF2_E16 = 9423,
+ PseudoVREDSUM_VS_MF2_E16_MASK = 9424,
+ PseudoVREDSUM_VS_MF2_E32 = 9425,
+ PseudoVREDSUM_VS_MF2_E32_MASK = 9426,
+ PseudoVREDSUM_VS_MF2_E8 = 9427,
+ PseudoVREDSUM_VS_MF2_E8_MASK = 9428,
+ PseudoVREDSUM_VS_MF4_E16 = 9429,
+ PseudoVREDSUM_VS_MF4_E16_MASK = 9430,
+ PseudoVREDSUM_VS_MF4_E8 = 9431,
+ PseudoVREDSUM_VS_MF4_E8_MASK = 9432,
+ PseudoVREDSUM_VS_MF8_E8 = 9433,
+ PseudoVREDSUM_VS_MF8_E8_MASK = 9434,
+ PseudoVREDXOR_VS_M1_E16 = 9435,
+ PseudoVREDXOR_VS_M1_E16_MASK = 9436,
+ PseudoVREDXOR_VS_M1_E32 = 9437,
+ PseudoVREDXOR_VS_M1_E32_MASK = 9438,
+ PseudoVREDXOR_VS_M1_E64 = 9439,
+ PseudoVREDXOR_VS_M1_E64_MASK = 9440,
+ PseudoVREDXOR_VS_M1_E8 = 9441,
+ PseudoVREDXOR_VS_M1_E8_MASK = 9442,
+ PseudoVREDXOR_VS_M2_E16 = 9443,
+ PseudoVREDXOR_VS_M2_E16_MASK = 9444,
+ PseudoVREDXOR_VS_M2_E32 = 9445,
+ PseudoVREDXOR_VS_M2_E32_MASK = 9446,
+ PseudoVREDXOR_VS_M2_E64 = 9447,
+ PseudoVREDXOR_VS_M2_E64_MASK = 9448,
+ PseudoVREDXOR_VS_M2_E8 = 9449,
+ PseudoVREDXOR_VS_M2_E8_MASK = 9450,
+ PseudoVREDXOR_VS_M4_E16 = 9451,
+ PseudoVREDXOR_VS_M4_E16_MASK = 9452,
+ PseudoVREDXOR_VS_M4_E32 = 9453,
+ PseudoVREDXOR_VS_M4_E32_MASK = 9454,
+ PseudoVREDXOR_VS_M4_E64 = 9455,
+ PseudoVREDXOR_VS_M4_E64_MASK = 9456,
+ PseudoVREDXOR_VS_M4_E8 = 9457,
+ PseudoVREDXOR_VS_M4_E8_MASK = 9458,
+ PseudoVREDXOR_VS_M8_E16 = 9459,
+ PseudoVREDXOR_VS_M8_E16_MASK = 9460,
+ PseudoVREDXOR_VS_M8_E32 = 9461,
+ PseudoVREDXOR_VS_M8_E32_MASK = 9462,
+ PseudoVREDXOR_VS_M8_E64 = 9463,
+ PseudoVREDXOR_VS_M8_E64_MASK = 9464,
+ PseudoVREDXOR_VS_M8_E8 = 9465,
+ PseudoVREDXOR_VS_M8_E8_MASK = 9466,
+ PseudoVREDXOR_VS_MF2_E16 = 9467,
+ PseudoVREDXOR_VS_MF2_E16_MASK = 9468,
+ PseudoVREDXOR_VS_MF2_E32 = 9469,
+ PseudoVREDXOR_VS_MF2_E32_MASK = 9470,
+ PseudoVREDXOR_VS_MF2_E8 = 9471,
+ PseudoVREDXOR_VS_MF2_E8_MASK = 9472,
+ PseudoVREDXOR_VS_MF4_E16 = 9473,
+ PseudoVREDXOR_VS_MF4_E16_MASK = 9474,
+ PseudoVREDXOR_VS_MF4_E8 = 9475,
+ PseudoVREDXOR_VS_MF4_E8_MASK = 9476,
+ PseudoVREDXOR_VS_MF8_E8 = 9477,
+ PseudoVREDXOR_VS_MF8_E8_MASK = 9478,
+ PseudoVRELOAD2_M1 = 9479,
+ PseudoVRELOAD2_M2 = 9480,
+ PseudoVRELOAD2_M4 = 9481,
+ PseudoVRELOAD2_MF2 = 9482,
+ PseudoVRELOAD2_MF4 = 9483,
+ PseudoVRELOAD2_MF8 = 9484,
+ PseudoVRELOAD3_M1 = 9485,
+ PseudoVRELOAD3_M2 = 9486,
+ PseudoVRELOAD3_MF2 = 9487,
+ PseudoVRELOAD3_MF4 = 9488,
+ PseudoVRELOAD3_MF8 = 9489,
+ PseudoVRELOAD4_M1 = 9490,
+ PseudoVRELOAD4_M2 = 9491,
+ PseudoVRELOAD4_MF2 = 9492,
+ PseudoVRELOAD4_MF4 = 9493,
+ PseudoVRELOAD4_MF8 = 9494,
+ PseudoVRELOAD5_M1 = 9495,
+ PseudoVRELOAD5_MF2 = 9496,
+ PseudoVRELOAD5_MF4 = 9497,
+ PseudoVRELOAD5_MF8 = 9498,
+ PseudoVRELOAD6_M1 = 9499,
+ PseudoVRELOAD6_MF2 = 9500,
+ PseudoVRELOAD6_MF4 = 9501,
+ PseudoVRELOAD6_MF8 = 9502,
+ PseudoVRELOAD7_M1 = 9503,
+ PseudoVRELOAD7_MF2 = 9504,
+ PseudoVRELOAD7_MF4 = 9505,
+ PseudoVRELOAD7_MF8 = 9506,
+ PseudoVRELOAD8_M1 = 9507,
+ PseudoVRELOAD8_MF2 = 9508,
+ PseudoVRELOAD8_MF4 = 9509,
+ PseudoVRELOAD8_MF8 = 9510,
+ PseudoVREMU_VV_M1_E16 = 9511,
+ PseudoVREMU_VV_M1_E16_MASK = 9512,
+ PseudoVREMU_VV_M1_E32 = 9513,
+ PseudoVREMU_VV_M1_E32_MASK = 9514,
+ PseudoVREMU_VV_M1_E64 = 9515,
+ PseudoVREMU_VV_M1_E64_MASK = 9516,
+ PseudoVREMU_VV_M1_E8 = 9517,
+ PseudoVREMU_VV_M1_E8_MASK = 9518,
+ PseudoVREMU_VV_M2_E16 = 9519,
+ PseudoVREMU_VV_M2_E16_MASK = 9520,
+ PseudoVREMU_VV_M2_E32 = 9521,
+ PseudoVREMU_VV_M2_E32_MASK = 9522,
+ PseudoVREMU_VV_M2_E64 = 9523,
+ PseudoVREMU_VV_M2_E64_MASK = 9524,
+ PseudoVREMU_VV_M2_E8 = 9525,
+ PseudoVREMU_VV_M2_E8_MASK = 9526,
+ PseudoVREMU_VV_M4_E16 = 9527,
+ PseudoVREMU_VV_M4_E16_MASK = 9528,
+ PseudoVREMU_VV_M4_E32 = 9529,
+ PseudoVREMU_VV_M4_E32_MASK = 9530,
+ PseudoVREMU_VV_M4_E64 = 9531,
+ PseudoVREMU_VV_M4_E64_MASK = 9532,
+ PseudoVREMU_VV_M4_E8 = 9533,
+ PseudoVREMU_VV_M4_E8_MASK = 9534,
+ PseudoVREMU_VV_M8_E16 = 9535,
+ PseudoVREMU_VV_M8_E16_MASK = 9536,
+ PseudoVREMU_VV_M8_E32 = 9537,
+ PseudoVREMU_VV_M8_E32_MASK = 9538,
+ PseudoVREMU_VV_M8_E64 = 9539,
+ PseudoVREMU_VV_M8_E64_MASK = 9540,
+ PseudoVREMU_VV_M8_E8 = 9541,
+ PseudoVREMU_VV_M8_E8_MASK = 9542,
+ PseudoVREMU_VV_MF2_E16 = 9543,
+ PseudoVREMU_VV_MF2_E16_MASK = 9544,
+ PseudoVREMU_VV_MF2_E32 = 9545,
+ PseudoVREMU_VV_MF2_E32_MASK = 9546,
+ PseudoVREMU_VV_MF2_E8 = 9547,
+ PseudoVREMU_VV_MF2_E8_MASK = 9548,
+ PseudoVREMU_VV_MF4_E16 = 9549,
+ PseudoVREMU_VV_MF4_E16_MASK = 9550,
+ PseudoVREMU_VV_MF4_E8 = 9551,
+ PseudoVREMU_VV_MF4_E8_MASK = 9552,
+ PseudoVREMU_VV_MF8_E8 = 9553,
+ PseudoVREMU_VV_MF8_E8_MASK = 9554,
+ PseudoVREMU_VX_M1_E16 = 9555,
+ PseudoVREMU_VX_M1_E16_MASK = 9556,
+ PseudoVREMU_VX_M1_E32 = 9557,
+ PseudoVREMU_VX_M1_E32_MASK = 9558,
+ PseudoVREMU_VX_M1_E64 = 9559,
+ PseudoVREMU_VX_M1_E64_MASK = 9560,
+ PseudoVREMU_VX_M1_E8 = 9561,
+ PseudoVREMU_VX_M1_E8_MASK = 9562,
+ PseudoVREMU_VX_M2_E16 = 9563,
+ PseudoVREMU_VX_M2_E16_MASK = 9564,
+ PseudoVREMU_VX_M2_E32 = 9565,
+ PseudoVREMU_VX_M2_E32_MASK = 9566,
+ PseudoVREMU_VX_M2_E64 = 9567,
+ PseudoVREMU_VX_M2_E64_MASK = 9568,
+ PseudoVREMU_VX_M2_E8 = 9569,
+ PseudoVREMU_VX_M2_E8_MASK = 9570,
+ PseudoVREMU_VX_M4_E16 = 9571,
+ PseudoVREMU_VX_M4_E16_MASK = 9572,
+ PseudoVREMU_VX_M4_E32 = 9573,
+ PseudoVREMU_VX_M4_E32_MASK = 9574,
+ PseudoVREMU_VX_M4_E64 = 9575,
+ PseudoVREMU_VX_M4_E64_MASK = 9576,
+ PseudoVREMU_VX_M4_E8 = 9577,
+ PseudoVREMU_VX_M4_E8_MASK = 9578,
+ PseudoVREMU_VX_M8_E16 = 9579,
+ PseudoVREMU_VX_M8_E16_MASK = 9580,
+ PseudoVREMU_VX_M8_E32 = 9581,
+ PseudoVREMU_VX_M8_E32_MASK = 9582,
+ PseudoVREMU_VX_M8_E64 = 9583,
+ PseudoVREMU_VX_M8_E64_MASK = 9584,
+ PseudoVREMU_VX_M8_E8 = 9585,
+ PseudoVREMU_VX_M8_E8_MASK = 9586,
+ PseudoVREMU_VX_MF2_E16 = 9587,
+ PseudoVREMU_VX_MF2_E16_MASK = 9588,
+ PseudoVREMU_VX_MF2_E32 = 9589,
+ PseudoVREMU_VX_MF2_E32_MASK = 9590,
+ PseudoVREMU_VX_MF2_E8 = 9591,
+ PseudoVREMU_VX_MF2_E8_MASK = 9592,
+ PseudoVREMU_VX_MF4_E16 = 9593,
+ PseudoVREMU_VX_MF4_E16_MASK = 9594,
+ PseudoVREMU_VX_MF4_E8 = 9595,
+ PseudoVREMU_VX_MF4_E8_MASK = 9596,
+ PseudoVREMU_VX_MF8_E8 = 9597,
+ PseudoVREMU_VX_MF8_E8_MASK = 9598,
+ PseudoVREM_VV_M1_E16 = 9599,
+ PseudoVREM_VV_M1_E16_MASK = 9600,
+ PseudoVREM_VV_M1_E32 = 9601,
+ PseudoVREM_VV_M1_E32_MASK = 9602,
+ PseudoVREM_VV_M1_E64 = 9603,
+ PseudoVREM_VV_M1_E64_MASK = 9604,
+ PseudoVREM_VV_M1_E8 = 9605,
+ PseudoVREM_VV_M1_E8_MASK = 9606,
+ PseudoVREM_VV_M2_E16 = 9607,
+ PseudoVREM_VV_M2_E16_MASK = 9608,
+ PseudoVREM_VV_M2_E32 = 9609,
+ PseudoVREM_VV_M2_E32_MASK = 9610,
+ PseudoVREM_VV_M2_E64 = 9611,
+ PseudoVREM_VV_M2_E64_MASK = 9612,
+ PseudoVREM_VV_M2_E8 = 9613,
+ PseudoVREM_VV_M2_E8_MASK = 9614,
+ PseudoVREM_VV_M4_E16 = 9615,
+ PseudoVREM_VV_M4_E16_MASK = 9616,
+ PseudoVREM_VV_M4_E32 = 9617,
+ PseudoVREM_VV_M4_E32_MASK = 9618,
+ PseudoVREM_VV_M4_E64 = 9619,
+ PseudoVREM_VV_M4_E64_MASK = 9620,
+ PseudoVREM_VV_M4_E8 = 9621,
+ PseudoVREM_VV_M4_E8_MASK = 9622,
+ PseudoVREM_VV_M8_E16 = 9623,
+ PseudoVREM_VV_M8_E16_MASK = 9624,
+ PseudoVREM_VV_M8_E32 = 9625,
+ PseudoVREM_VV_M8_E32_MASK = 9626,
+ PseudoVREM_VV_M8_E64 = 9627,
+ PseudoVREM_VV_M8_E64_MASK = 9628,
+ PseudoVREM_VV_M8_E8 = 9629,
+ PseudoVREM_VV_M8_E8_MASK = 9630,
+ PseudoVREM_VV_MF2_E16 = 9631,
+ PseudoVREM_VV_MF2_E16_MASK = 9632,
+ PseudoVREM_VV_MF2_E32 = 9633,
+ PseudoVREM_VV_MF2_E32_MASK = 9634,
+ PseudoVREM_VV_MF2_E8 = 9635,
+ PseudoVREM_VV_MF2_E8_MASK = 9636,
+ PseudoVREM_VV_MF4_E16 = 9637,
+ PseudoVREM_VV_MF4_E16_MASK = 9638,
+ PseudoVREM_VV_MF4_E8 = 9639,
+ PseudoVREM_VV_MF4_E8_MASK = 9640,
+ PseudoVREM_VV_MF8_E8 = 9641,
+ PseudoVREM_VV_MF8_E8_MASK = 9642,
+ PseudoVREM_VX_M1_E16 = 9643,
+ PseudoVREM_VX_M1_E16_MASK = 9644,
+ PseudoVREM_VX_M1_E32 = 9645,
+ PseudoVREM_VX_M1_E32_MASK = 9646,
+ PseudoVREM_VX_M1_E64 = 9647,
+ PseudoVREM_VX_M1_E64_MASK = 9648,
+ PseudoVREM_VX_M1_E8 = 9649,
+ PseudoVREM_VX_M1_E8_MASK = 9650,
+ PseudoVREM_VX_M2_E16 = 9651,
+ PseudoVREM_VX_M2_E16_MASK = 9652,
+ PseudoVREM_VX_M2_E32 = 9653,
+ PseudoVREM_VX_M2_E32_MASK = 9654,
+ PseudoVREM_VX_M2_E64 = 9655,
+ PseudoVREM_VX_M2_E64_MASK = 9656,
+ PseudoVREM_VX_M2_E8 = 9657,
+ PseudoVREM_VX_M2_E8_MASK = 9658,
+ PseudoVREM_VX_M4_E16 = 9659,
+ PseudoVREM_VX_M4_E16_MASK = 9660,
+ PseudoVREM_VX_M4_E32 = 9661,
+ PseudoVREM_VX_M4_E32_MASK = 9662,
+ PseudoVREM_VX_M4_E64 = 9663,
+ PseudoVREM_VX_M4_E64_MASK = 9664,
+ PseudoVREM_VX_M4_E8 = 9665,
+ PseudoVREM_VX_M4_E8_MASK = 9666,
+ PseudoVREM_VX_M8_E16 = 9667,
+ PseudoVREM_VX_M8_E16_MASK = 9668,
+ PseudoVREM_VX_M8_E32 = 9669,
+ PseudoVREM_VX_M8_E32_MASK = 9670,
+ PseudoVREM_VX_M8_E64 = 9671,
+ PseudoVREM_VX_M8_E64_MASK = 9672,
+ PseudoVREM_VX_M8_E8 = 9673,
+ PseudoVREM_VX_M8_E8_MASK = 9674,
+ PseudoVREM_VX_MF2_E16 = 9675,
+ PseudoVREM_VX_MF2_E16_MASK = 9676,
+ PseudoVREM_VX_MF2_E32 = 9677,
+ PseudoVREM_VX_MF2_E32_MASK = 9678,
+ PseudoVREM_VX_MF2_E8 = 9679,
+ PseudoVREM_VX_MF2_E8_MASK = 9680,
+ PseudoVREM_VX_MF4_E16 = 9681,
+ PseudoVREM_VX_MF4_E16_MASK = 9682,
+ PseudoVREM_VX_MF4_E8 = 9683,
+ PseudoVREM_VX_MF4_E8_MASK = 9684,
+ PseudoVREM_VX_MF8_E8 = 9685,
+ PseudoVREM_VX_MF8_E8_MASK = 9686,
+ PseudoVREV8_V_M1 = 9687,
+ PseudoVREV8_V_M1_MASK = 9688,
+ PseudoVREV8_V_M2 = 9689,
+ PseudoVREV8_V_M2_MASK = 9690,
+ PseudoVREV8_V_M4 = 9691,
+ PseudoVREV8_V_M4_MASK = 9692,
+ PseudoVREV8_V_M8 = 9693,
+ PseudoVREV8_V_M8_MASK = 9694,
+ PseudoVREV8_V_MF2 = 9695,
+ PseudoVREV8_V_MF2_MASK = 9696,
+ PseudoVREV8_V_MF4 = 9697,
+ PseudoVREV8_V_MF4_MASK = 9698,
+ PseudoVREV8_V_MF8 = 9699,
+ PseudoVREV8_V_MF8_MASK = 9700,
+ PseudoVRGATHEREI16_VV_M1_E16_M1 = 9701,
+ PseudoVRGATHEREI16_VV_M1_E16_M1_MASK = 9702,
+ PseudoVRGATHEREI16_VV_M1_E16_M2 = 9703,
+ PseudoVRGATHEREI16_VV_M1_E16_M2_MASK = 9704,
+ PseudoVRGATHEREI16_VV_M1_E16_MF2 = 9705,
+ PseudoVRGATHEREI16_VV_M1_E16_MF2_MASK = 9706,
+ PseudoVRGATHEREI16_VV_M1_E16_MF4 = 9707,
+ PseudoVRGATHEREI16_VV_M1_E16_MF4_MASK = 9708,
+ PseudoVRGATHEREI16_VV_M1_E32_M1 = 9709,
+ PseudoVRGATHEREI16_VV_M1_E32_M1_MASK = 9710,
+ PseudoVRGATHEREI16_VV_M1_E32_M2 = 9711,
+ PseudoVRGATHEREI16_VV_M1_E32_M2_MASK = 9712,
+ PseudoVRGATHEREI16_VV_M1_E32_MF2 = 9713,
+ PseudoVRGATHEREI16_VV_M1_E32_MF2_MASK = 9714,
+ PseudoVRGATHEREI16_VV_M1_E32_MF4 = 9715,
+ PseudoVRGATHEREI16_VV_M1_E32_MF4_MASK = 9716,
+ PseudoVRGATHEREI16_VV_M1_E64_M1 = 9717,
+ PseudoVRGATHEREI16_VV_M1_E64_M1_MASK = 9718,
+ PseudoVRGATHEREI16_VV_M1_E64_M2 = 9719,
+ PseudoVRGATHEREI16_VV_M1_E64_M2_MASK = 9720,
+ PseudoVRGATHEREI16_VV_M1_E64_MF2 = 9721,
+ PseudoVRGATHEREI16_VV_M1_E64_MF2_MASK = 9722,
+ PseudoVRGATHEREI16_VV_M1_E64_MF4 = 9723,
+ PseudoVRGATHEREI16_VV_M1_E64_MF4_MASK = 9724,
+ PseudoVRGATHEREI16_VV_M1_E8_M1 = 9725,
+ PseudoVRGATHEREI16_VV_M1_E8_M1_MASK = 9726,
+ PseudoVRGATHEREI16_VV_M1_E8_M2 = 9727,
+ PseudoVRGATHEREI16_VV_M1_E8_M2_MASK = 9728,
+ PseudoVRGATHEREI16_VV_M1_E8_MF2 = 9729,
+ PseudoVRGATHEREI16_VV_M1_E8_MF2_MASK = 9730,
+ PseudoVRGATHEREI16_VV_M1_E8_MF4 = 9731,
+ PseudoVRGATHEREI16_VV_M1_E8_MF4_MASK = 9732,
+ PseudoVRGATHEREI16_VV_M2_E16_M1 = 9733,
+ PseudoVRGATHEREI16_VV_M2_E16_M1_MASK = 9734,
+ PseudoVRGATHEREI16_VV_M2_E16_M2 = 9735,
+ PseudoVRGATHEREI16_VV_M2_E16_M2_MASK = 9736,
+ PseudoVRGATHEREI16_VV_M2_E16_M4 = 9737,
+ PseudoVRGATHEREI16_VV_M2_E16_M4_MASK = 9738,
+ PseudoVRGATHEREI16_VV_M2_E16_MF2 = 9739,
+ PseudoVRGATHEREI16_VV_M2_E16_MF2_MASK = 9740,
+ PseudoVRGATHEREI16_VV_M2_E32_M1 = 9741,
+ PseudoVRGATHEREI16_VV_M2_E32_M1_MASK = 9742,
+ PseudoVRGATHEREI16_VV_M2_E32_M2 = 9743,
+ PseudoVRGATHEREI16_VV_M2_E32_M2_MASK = 9744,
+ PseudoVRGATHEREI16_VV_M2_E32_M4 = 9745,
+ PseudoVRGATHEREI16_VV_M2_E32_M4_MASK = 9746,
+ PseudoVRGATHEREI16_VV_M2_E32_MF2 = 9747,
+ PseudoVRGATHEREI16_VV_M2_E32_MF2_MASK = 9748,
+ PseudoVRGATHEREI16_VV_M2_E64_M1 = 9749,
+ PseudoVRGATHEREI16_VV_M2_E64_M1_MASK = 9750,
+ PseudoVRGATHEREI16_VV_M2_E64_M2 = 9751,
+ PseudoVRGATHEREI16_VV_M2_E64_M2_MASK = 9752,
+ PseudoVRGATHEREI16_VV_M2_E64_M4 = 9753,
+ PseudoVRGATHEREI16_VV_M2_E64_M4_MASK = 9754,
+ PseudoVRGATHEREI16_VV_M2_E64_MF2 = 9755,
+ PseudoVRGATHEREI16_VV_M2_E64_MF2_MASK = 9756,
+ PseudoVRGATHEREI16_VV_M2_E8_M1 = 9757,
+ PseudoVRGATHEREI16_VV_M2_E8_M1_MASK = 9758,
+ PseudoVRGATHEREI16_VV_M2_E8_M2 = 9759,
+ PseudoVRGATHEREI16_VV_M2_E8_M2_MASK = 9760,
+ PseudoVRGATHEREI16_VV_M2_E8_M4 = 9761,
+ PseudoVRGATHEREI16_VV_M2_E8_M4_MASK = 9762,
+ PseudoVRGATHEREI16_VV_M2_E8_MF2 = 9763,
+ PseudoVRGATHEREI16_VV_M2_E8_MF2_MASK = 9764,
+ PseudoVRGATHEREI16_VV_M4_E16_M1 = 9765,
+ PseudoVRGATHEREI16_VV_M4_E16_M1_MASK = 9766,
+ PseudoVRGATHEREI16_VV_M4_E16_M2 = 9767,
+ PseudoVRGATHEREI16_VV_M4_E16_M2_MASK = 9768,
+ PseudoVRGATHEREI16_VV_M4_E16_M4 = 9769,
+ PseudoVRGATHEREI16_VV_M4_E16_M4_MASK = 9770,
+ PseudoVRGATHEREI16_VV_M4_E16_M8 = 9771,
+ PseudoVRGATHEREI16_VV_M4_E16_M8_MASK = 9772,
+ PseudoVRGATHEREI16_VV_M4_E32_M1 = 9773,
+ PseudoVRGATHEREI16_VV_M4_E32_M1_MASK = 9774,
+ PseudoVRGATHEREI16_VV_M4_E32_M2 = 9775,
+ PseudoVRGATHEREI16_VV_M4_E32_M2_MASK = 9776,
+ PseudoVRGATHEREI16_VV_M4_E32_M4 = 9777,
+ PseudoVRGATHEREI16_VV_M4_E32_M4_MASK = 9778,
+ PseudoVRGATHEREI16_VV_M4_E32_M8 = 9779,
+ PseudoVRGATHEREI16_VV_M4_E32_M8_MASK = 9780,
+ PseudoVRGATHEREI16_VV_M4_E64_M1 = 9781,
+ PseudoVRGATHEREI16_VV_M4_E64_M1_MASK = 9782,
+ PseudoVRGATHEREI16_VV_M4_E64_M2 = 9783,
+ PseudoVRGATHEREI16_VV_M4_E64_M2_MASK = 9784,
+ PseudoVRGATHEREI16_VV_M4_E64_M4 = 9785,
+ PseudoVRGATHEREI16_VV_M4_E64_M4_MASK = 9786,
+ PseudoVRGATHEREI16_VV_M4_E64_M8 = 9787,
+ PseudoVRGATHEREI16_VV_M4_E64_M8_MASK = 9788,
+ PseudoVRGATHEREI16_VV_M4_E8_M1 = 9789,
+ PseudoVRGATHEREI16_VV_M4_E8_M1_MASK = 9790,
+ PseudoVRGATHEREI16_VV_M4_E8_M2 = 9791,
+ PseudoVRGATHEREI16_VV_M4_E8_M2_MASK = 9792,
+ PseudoVRGATHEREI16_VV_M4_E8_M4 = 9793,
+ PseudoVRGATHEREI16_VV_M4_E8_M4_MASK = 9794,
+ PseudoVRGATHEREI16_VV_M4_E8_M8 = 9795,
+ PseudoVRGATHEREI16_VV_M4_E8_M8_MASK = 9796,
+ PseudoVRGATHEREI16_VV_M8_E16_M2 = 9797,
+ PseudoVRGATHEREI16_VV_M8_E16_M2_MASK = 9798,
+ PseudoVRGATHEREI16_VV_M8_E16_M4 = 9799,
+ PseudoVRGATHEREI16_VV_M8_E16_M4_MASK = 9800,
+ PseudoVRGATHEREI16_VV_M8_E16_M8 = 9801,
+ PseudoVRGATHEREI16_VV_M8_E16_M8_MASK = 9802,
+ PseudoVRGATHEREI16_VV_M8_E32_M2 = 9803,
+ PseudoVRGATHEREI16_VV_M8_E32_M2_MASK = 9804,
+ PseudoVRGATHEREI16_VV_M8_E32_M4 = 9805,
+ PseudoVRGATHEREI16_VV_M8_E32_M4_MASK = 9806,
+ PseudoVRGATHEREI16_VV_M8_E32_M8 = 9807,
+ PseudoVRGATHEREI16_VV_M8_E32_M8_MASK = 9808,
+ PseudoVRGATHEREI16_VV_M8_E64_M2 = 9809,
+ PseudoVRGATHEREI16_VV_M8_E64_M2_MASK = 9810,
+ PseudoVRGATHEREI16_VV_M8_E64_M4 = 9811,
+ PseudoVRGATHEREI16_VV_M8_E64_M4_MASK = 9812,
+ PseudoVRGATHEREI16_VV_M8_E64_M8 = 9813,
+ PseudoVRGATHEREI16_VV_M8_E64_M8_MASK = 9814,
+ PseudoVRGATHEREI16_VV_M8_E8_M2 = 9815,
+ PseudoVRGATHEREI16_VV_M8_E8_M2_MASK = 9816,
+ PseudoVRGATHEREI16_VV_M8_E8_M4 = 9817,
+ PseudoVRGATHEREI16_VV_M8_E8_M4_MASK = 9818,
+ PseudoVRGATHEREI16_VV_M8_E8_M8 = 9819,
+ PseudoVRGATHEREI16_VV_M8_E8_M8_MASK = 9820,
+ PseudoVRGATHEREI16_VV_MF2_E16_M1 = 9821,
+ PseudoVRGATHEREI16_VV_MF2_E16_M1_MASK = 9822,
+ PseudoVRGATHEREI16_VV_MF2_E16_MF2 = 9823,
+ PseudoVRGATHEREI16_VV_MF2_E16_MF2_MASK = 9824,
+ PseudoVRGATHEREI16_VV_MF2_E16_MF4 = 9825,
+ PseudoVRGATHEREI16_VV_MF2_E16_MF4_MASK = 9826,
+ PseudoVRGATHEREI16_VV_MF2_E16_MF8 = 9827,
+ PseudoVRGATHEREI16_VV_MF2_E16_MF8_MASK = 9828,
+ PseudoVRGATHEREI16_VV_MF2_E32_M1 = 9829,
+ PseudoVRGATHEREI16_VV_MF2_E32_M1_MASK = 9830,
+ PseudoVRGATHEREI16_VV_MF2_E32_MF2 = 9831,
+ PseudoVRGATHEREI16_VV_MF2_E32_MF2_MASK = 9832,
+ PseudoVRGATHEREI16_VV_MF2_E32_MF4 = 9833,
+ PseudoVRGATHEREI16_VV_MF2_E32_MF4_MASK = 9834,
+ PseudoVRGATHEREI16_VV_MF2_E32_MF8 = 9835,
+ PseudoVRGATHEREI16_VV_MF2_E32_MF8_MASK = 9836,
+ PseudoVRGATHEREI16_VV_MF2_E8_M1 = 9837,
+ PseudoVRGATHEREI16_VV_MF2_E8_M1_MASK = 9838,
+ PseudoVRGATHEREI16_VV_MF2_E8_MF2 = 9839,
+ PseudoVRGATHEREI16_VV_MF2_E8_MF2_MASK = 9840,
+ PseudoVRGATHEREI16_VV_MF2_E8_MF4 = 9841,
+ PseudoVRGATHEREI16_VV_MF2_E8_MF4_MASK = 9842,
+ PseudoVRGATHEREI16_VV_MF2_E8_MF8 = 9843,
+ PseudoVRGATHEREI16_VV_MF2_E8_MF8_MASK = 9844,
+ PseudoVRGATHEREI16_VV_MF4_E16_MF2 = 9845,
+ PseudoVRGATHEREI16_VV_MF4_E16_MF2_MASK = 9846,
+ PseudoVRGATHEREI16_VV_MF4_E16_MF4 = 9847,
+ PseudoVRGATHEREI16_VV_MF4_E16_MF4_MASK = 9848,
+ PseudoVRGATHEREI16_VV_MF4_E16_MF8 = 9849,
+ PseudoVRGATHEREI16_VV_MF4_E16_MF8_MASK = 9850,
+ PseudoVRGATHEREI16_VV_MF4_E8_MF2 = 9851,
+ PseudoVRGATHEREI16_VV_MF4_E8_MF2_MASK = 9852,
+ PseudoVRGATHEREI16_VV_MF4_E8_MF4 = 9853,
+ PseudoVRGATHEREI16_VV_MF4_E8_MF4_MASK = 9854,
+ PseudoVRGATHEREI16_VV_MF4_E8_MF8 = 9855,
+ PseudoVRGATHEREI16_VV_MF4_E8_MF8_MASK = 9856,
+ PseudoVRGATHEREI16_VV_MF8_E8_MF4 = 9857,
+ PseudoVRGATHEREI16_VV_MF8_E8_MF4_MASK = 9858,
+ PseudoVRGATHEREI16_VV_MF8_E8_MF8 = 9859,
+ PseudoVRGATHEREI16_VV_MF8_E8_MF8_MASK = 9860,
+ PseudoVRGATHER_VI_M1 = 9861,
+ PseudoVRGATHER_VI_M1_MASK = 9862,
+ PseudoVRGATHER_VI_M2 = 9863,
+ PseudoVRGATHER_VI_M2_MASK = 9864,
+ PseudoVRGATHER_VI_M4 = 9865,
+ PseudoVRGATHER_VI_M4_MASK = 9866,
+ PseudoVRGATHER_VI_M8 = 9867,
+ PseudoVRGATHER_VI_M8_MASK = 9868,
+ PseudoVRGATHER_VI_MF2 = 9869,
+ PseudoVRGATHER_VI_MF2_MASK = 9870,
+ PseudoVRGATHER_VI_MF4 = 9871,
+ PseudoVRGATHER_VI_MF4_MASK = 9872,
+ PseudoVRGATHER_VI_MF8 = 9873,
+ PseudoVRGATHER_VI_MF8_MASK = 9874,
+ PseudoVRGATHER_VV_M1_E16 = 9875,
+ PseudoVRGATHER_VV_M1_E16_MASK = 9876,
+ PseudoVRGATHER_VV_M1_E32 = 9877,
+ PseudoVRGATHER_VV_M1_E32_MASK = 9878,
+ PseudoVRGATHER_VV_M1_E64 = 9879,
+ PseudoVRGATHER_VV_M1_E64_MASK = 9880,
+ PseudoVRGATHER_VV_M1_E8 = 9881,
+ PseudoVRGATHER_VV_M1_E8_MASK = 9882,
+ PseudoVRGATHER_VV_M2_E16 = 9883,
+ PseudoVRGATHER_VV_M2_E16_MASK = 9884,
+ PseudoVRGATHER_VV_M2_E32 = 9885,
+ PseudoVRGATHER_VV_M2_E32_MASK = 9886,
+ PseudoVRGATHER_VV_M2_E64 = 9887,
+ PseudoVRGATHER_VV_M2_E64_MASK = 9888,
+ PseudoVRGATHER_VV_M2_E8 = 9889,
+ PseudoVRGATHER_VV_M2_E8_MASK = 9890,
+ PseudoVRGATHER_VV_M4_E16 = 9891,
+ PseudoVRGATHER_VV_M4_E16_MASK = 9892,
+ PseudoVRGATHER_VV_M4_E32 = 9893,
+ PseudoVRGATHER_VV_M4_E32_MASK = 9894,
+ PseudoVRGATHER_VV_M4_E64 = 9895,
+ PseudoVRGATHER_VV_M4_E64_MASK = 9896,
+ PseudoVRGATHER_VV_M4_E8 = 9897,
+ PseudoVRGATHER_VV_M4_E8_MASK = 9898,
+ PseudoVRGATHER_VV_M8_E16 = 9899,
+ PseudoVRGATHER_VV_M8_E16_MASK = 9900,
+ PseudoVRGATHER_VV_M8_E32 = 9901,
+ PseudoVRGATHER_VV_M8_E32_MASK = 9902,
+ PseudoVRGATHER_VV_M8_E64 = 9903,
+ PseudoVRGATHER_VV_M8_E64_MASK = 9904,
+ PseudoVRGATHER_VV_M8_E8 = 9905,
+ PseudoVRGATHER_VV_M8_E8_MASK = 9906,
+ PseudoVRGATHER_VV_MF2_E16 = 9907,
+ PseudoVRGATHER_VV_MF2_E16_MASK = 9908,
+ PseudoVRGATHER_VV_MF2_E32 = 9909,
+ PseudoVRGATHER_VV_MF2_E32_MASK = 9910,
+ PseudoVRGATHER_VV_MF2_E8 = 9911,
+ PseudoVRGATHER_VV_MF2_E8_MASK = 9912,
+ PseudoVRGATHER_VV_MF4_E16 = 9913,
+ PseudoVRGATHER_VV_MF4_E16_MASK = 9914,
+ PseudoVRGATHER_VV_MF4_E8 = 9915,
+ PseudoVRGATHER_VV_MF4_E8_MASK = 9916,
+ PseudoVRGATHER_VV_MF8_E8 = 9917,
+ PseudoVRGATHER_VV_MF8_E8_MASK = 9918,
+ PseudoVRGATHER_VX_M1 = 9919,
+ PseudoVRGATHER_VX_M1_MASK = 9920,
+ PseudoVRGATHER_VX_M2 = 9921,
+ PseudoVRGATHER_VX_M2_MASK = 9922,
+ PseudoVRGATHER_VX_M4 = 9923,
+ PseudoVRGATHER_VX_M4_MASK = 9924,
+ PseudoVRGATHER_VX_M8 = 9925,
+ PseudoVRGATHER_VX_M8_MASK = 9926,
+ PseudoVRGATHER_VX_MF2 = 9927,
+ PseudoVRGATHER_VX_MF2_MASK = 9928,
+ PseudoVRGATHER_VX_MF4 = 9929,
+ PseudoVRGATHER_VX_MF4_MASK = 9930,
+ PseudoVRGATHER_VX_MF8 = 9931,
+ PseudoVRGATHER_VX_MF8_MASK = 9932,
+ PseudoVROL_VV_M1 = 9933,
+ PseudoVROL_VV_M1_MASK = 9934,
+ PseudoVROL_VV_M2 = 9935,
+ PseudoVROL_VV_M2_MASK = 9936,
+ PseudoVROL_VV_M4 = 9937,
+ PseudoVROL_VV_M4_MASK = 9938,
+ PseudoVROL_VV_M8 = 9939,
+ PseudoVROL_VV_M8_MASK = 9940,
+ PseudoVROL_VV_MF2 = 9941,
+ PseudoVROL_VV_MF2_MASK = 9942,
+ PseudoVROL_VV_MF4 = 9943,
+ PseudoVROL_VV_MF4_MASK = 9944,
+ PseudoVROL_VV_MF8 = 9945,
+ PseudoVROL_VV_MF8_MASK = 9946,
+ PseudoVROL_VX_M1 = 9947,
+ PseudoVROL_VX_M1_MASK = 9948,
+ PseudoVROL_VX_M2 = 9949,
+ PseudoVROL_VX_M2_MASK = 9950,
+ PseudoVROL_VX_M4 = 9951,
+ PseudoVROL_VX_M4_MASK = 9952,
+ PseudoVROL_VX_M8 = 9953,
+ PseudoVROL_VX_M8_MASK = 9954,
+ PseudoVROL_VX_MF2 = 9955,
+ PseudoVROL_VX_MF2_MASK = 9956,
+ PseudoVROL_VX_MF4 = 9957,
+ PseudoVROL_VX_MF4_MASK = 9958,
+ PseudoVROL_VX_MF8 = 9959,
+ PseudoVROL_VX_MF8_MASK = 9960,
+ PseudoVROR_VI_M1 = 9961,
+ PseudoVROR_VI_M1_MASK = 9962,
+ PseudoVROR_VI_M2 = 9963,
+ PseudoVROR_VI_M2_MASK = 9964,
+ PseudoVROR_VI_M4 = 9965,
+ PseudoVROR_VI_M4_MASK = 9966,
+ PseudoVROR_VI_M8 = 9967,
+ PseudoVROR_VI_M8_MASK = 9968,
+ PseudoVROR_VI_MF2 = 9969,
+ PseudoVROR_VI_MF2_MASK = 9970,
+ PseudoVROR_VI_MF4 = 9971,
+ PseudoVROR_VI_MF4_MASK = 9972,
+ PseudoVROR_VI_MF8 = 9973,
+ PseudoVROR_VI_MF8_MASK = 9974,
+ PseudoVROR_VV_M1 = 9975,
+ PseudoVROR_VV_M1_MASK = 9976,
+ PseudoVROR_VV_M2 = 9977,
+ PseudoVROR_VV_M2_MASK = 9978,
+ PseudoVROR_VV_M4 = 9979,
+ PseudoVROR_VV_M4_MASK = 9980,
+ PseudoVROR_VV_M8 = 9981,
+ PseudoVROR_VV_M8_MASK = 9982,
+ PseudoVROR_VV_MF2 = 9983,
+ PseudoVROR_VV_MF2_MASK = 9984,
+ PseudoVROR_VV_MF4 = 9985,
+ PseudoVROR_VV_MF4_MASK = 9986,
+ PseudoVROR_VV_MF8 = 9987,
+ PseudoVROR_VV_MF8_MASK = 9988,
+ PseudoVROR_VX_M1 = 9989,
+ PseudoVROR_VX_M1_MASK = 9990,
+ PseudoVROR_VX_M2 = 9991,
+ PseudoVROR_VX_M2_MASK = 9992,
+ PseudoVROR_VX_M4 = 9993,
+ PseudoVROR_VX_M4_MASK = 9994,
+ PseudoVROR_VX_M8 = 9995,
+ PseudoVROR_VX_M8_MASK = 9996,
+ PseudoVROR_VX_MF2 = 9997,
+ PseudoVROR_VX_MF2_MASK = 9998,
+ PseudoVROR_VX_MF4 = 9999,
+ PseudoVROR_VX_MF4_MASK = 10000,
+ PseudoVROR_VX_MF8 = 10001,
+ PseudoVROR_VX_MF8_MASK = 10002,
+ PseudoVRSUB_VI_M1 = 10003,
+ PseudoVRSUB_VI_M1_MASK = 10004,
+ PseudoVRSUB_VI_M2 = 10005,
+ PseudoVRSUB_VI_M2_MASK = 10006,
+ PseudoVRSUB_VI_M4 = 10007,
+ PseudoVRSUB_VI_M4_MASK = 10008,
+ PseudoVRSUB_VI_M8 = 10009,
+ PseudoVRSUB_VI_M8_MASK = 10010,
+ PseudoVRSUB_VI_MF2 = 10011,
+ PseudoVRSUB_VI_MF2_MASK = 10012,
+ PseudoVRSUB_VI_MF4 = 10013,
+ PseudoVRSUB_VI_MF4_MASK = 10014,
+ PseudoVRSUB_VI_MF8 = 10015,
+ PseudoVRSUB_VI_MF8_MASK = 10016,
+ PseudoVRSUB_VX_M1 = 10017,
+ PseudoVRSUB_VX_M1_MASK = 10018,
+ PseudoVRSUB_VX_M2 = 10019,
+ PseudoVRSUB_VX_M2_MASK = 10020,
+ PseudoVRSUB_VX_M4 = 10021,
+ PseudoVRSUB_VX_M4_MASK = 10022,
+ PseudoVRSUB_VX_M8 = 10023,
+ PseudoVRSUB_VX_M8_MASK = 10024,
+ PseudoVRSUB_VX_MF2 = 10025,
+ PseudoVRSUB_VX_MF2_MASK = 10026,
+ PseudoVRSUB_VX_MF4 = 10027,
+ PseudoVRSUB_VX_MF4_MASK = 10028,
+ PseudoVRSUB_VX_MF8 = 10029,
+ PseudoVRSUB_VX_MF8_MASK = 10030,
+ PseudoVSADDU_VI_M1 = 10031,
+ PseudoVSADDU_VI_M1_MASK = 10032,
+ PseudoVSADDU_VI_M2 = 10033,
+ PseudoVSADDU_VI_M2_MASK = 10034,
+ PseudoVSADDU_VI_M4 = 10035,
+ PseudoVSADDU_VI_M4_MASK = 10036,
+ PseudoVSADDU_VI_M8 = 10037,
+ PseudoVSADDU_VI_M8_MASK = 10038,
+ PseudoVSADDU_VI_MF2 = 10039,
+ PseudoVSADDU_VI_MF2_MASK = 10040,
+ PseudoVSADDU_VI_MF4 = 10041,
+ PseudoVSADDU_VI_MF4_MASK = 10042,
+ PseudoVSADDU_VI_MF8 = 10043,
+ PseudoVSADDU_VI_MF8_MASK = 10044,
+ PseudoVSADDU_VV_M1 = 10045,
+ PseudoVSADDU_VV_M1_MASK = 10046,
+ PseudoVSADDU_VV_M2 = 10047,
+ PseudoVSADDU_VV_M2_MASK = 10048,
+ PseudoVSADDU_VV_M4 = 10049,
+ PseudoVSADDU_VV_M4_MASK = 10050,
+ PseudoVSADDU_VV_M8 = 10051,
+ PseudoVSADDU_VV_M8_MASK = 10052,
+ PseudoVSADDU_VV_MF2 = 10053,
+ PseudoVSADDU_VV_MF2_MASK = 10054,
+ PseudoVSADDU_VV_MF4 = 10055,
+ PseudoVSADDU_VV_MF4_MASK = 10056,
+ PseudoVSADDU_VV_MF8 = 10057,
+ PseudoVSADDU_VV_MF8_MASK = 10058,
+ PseudoVSADDU_VX_M1 = 10059,
+ PseudoVSADDU_VX_M1_MASK = 10060,
+ PseudoVSADDU_VX_M2 = 10061,
+ PseudoVSADDU_VX_M2_MASK = 10062,
+ PseudoVSADDU_VX_M4 = 10063,
+ PseudoVSADDU_VX_M4_MASK = 10064,
+ PseudoVSADDU_VX_M8 = 10065,
+ PseudoVSADDU_VX_M8_MASK = 10066,
+ PseudoVSADDU_VX_MF2 = 10067,
+ PseudoVSADDU_VX_MF2_MASK = 10068,
+ PseudoVSADDU_VX_MF4 = 10069,
+ PseudoVSADDU_VX_MF4_MASK = 10070,
+ PseudoVSADDU_VX_MF8 = 10071,
+ PseudoVSADDU_VX_MF8_MASK = 10072,
+ PseudoVSADD_VI_M1 = 10073,
+ PseudoVSADD_VI_M1_MASK = 10074,
+ PseudoVSADD_VI_M2 = 10075,
+ PseudoVSADD_VI_M2_MASK = 10076,
+ PseudoVSADD_VI_M4 = 10077,
+ PseudoVSADD_VI_M4_MASK = 10078,
+ PseudoVSADD_VI_M8 = 10079,
+ PseudoVSADD_VI_M8_MASK = 10080,
+ PseudoVSADD_VI_MF2 = 10081,
+ PseudoVSADD_VI_MF2_MASK = 10082,
+ PseudoVSADD_VI_MF4 = 10083,
+ PseudoVSADD_VI_MF4_MASK = 10084,
+ PseudoVSADD_VI_MF8 = 10085,
+ PseudoVSADD_VI_MF8_MASK = 10086,
+ PseudoVSADD_VV_M1 = 10087,
+ PseudoVSADD_VV_M1_MASK = 10088,
+ PseudoVSADD_VV_M2 = 10089,
+ PseudoVSADD_VV_M2_MASK = 10090,
+ PseudoVSADD_VV_M4 = 10091,
+ PseudoVSADD_VV_M4_MASK = 10092,
+ PseudoVSADD_VV_M8 = 10093,
+ PseudoVSADD_VV_M8_MASK = 10094,
+ PseudoVSADD_VV_MF2 = 10095,
+ PseudoVSADD_VV_MF2_MASK = 10096,
+ PseudoVSADD_VV_MF4 = 10097,
+ PseudoVSADD_VV_MF4_MASK = 10098,
+ PseudoVSADD_VV_MF8 = 10099,
+ PseudoVSADD_VV_MF8_MASK = 10100,
+ PseudoVSADD_VX_M1 = 10101,
+ PseudoVSADD_VX_M1_MASK = 10102,
+ PseudoVSADD_VX_M2 = 10103,
+ PseudoVSADD_VX_M2_MASK = 10104,
+ PseudoVSADD_VX_M4 = 10105,
+ PseudoVSADD_VX_M4_MASK = 10106,
+ PseudoVSADD_VX_M8 = 10107,
+ PseudoVSADD_VX_M8_MASK = 10108,
+ PseudoVSADD_VX_MF2 = 10109,
+ PseudoVSADD_VX_MF2_MASK = 10110,
+ PseudoVSADD_VX_MF4 = 10111,
+ PseudoVSADD_VX_MF4_MASK = 10112,
+ PseudoVSADD_VX_MF8 = 10113,
+ PseudoVSADD_VX_MF8_MASK = 10114,
+ PseudoVSBC_VVM_M1 = 10115,
+ PseudoVSBC_VVM_M2 = 10116,
+ PseudoVSBC_VVM_M4 = 10117,
+ PseudoVSBC_VVM_M8 = 10118,
+ PseudoVSBC_VVM_MF2 = 10119,
+ PseudoVSBC_VVM_MF4 = 10120,
+ PseudoVSBC_VVM_MF8 = 10121,
+ PseudoVSBC_VXM_M1 = 10122,
+ PseudoVSBC_VXM_M2 = 10123,
+ PseudoVSBC_VXM_M4 = 10124,
+ PseudoVSBC_VXM_M8 = 10125,
+ PseudoVSBC_VXM_MF2 = 10126,
+ PseudoVSBC_VXM_MF4 = 10127,
+ PseudoVSBC_VXM_MF8 = 10128,
+ PseudoVSE16_V_M1 = 10129,
+ PseudoVSE16_V_M1_MASK = 10130,
+ PseudoVSE16_V_M2 = 10131,
+ PseudoVSE16_V_M2_MASK = 10132,
+ PseudoVSE16_V_M4 = 10133,
+ PseudoVSE16_V_M4_MASK = 10134,
+ PseudoVSE16_V_M8 = 10135,
+ PseudoVSE16_V_M8_MASK = 10136,
+ PseudoVSE16_V_MF2 = 10137,
+ PseudoVSE16_V_MF2_MASK = 10138,
+ PseudoVSE16_V_MF4 = 10139,
+ PseudoVSE16_V_MF4_MASK = 10140,
+ PseudoVSE32_V_M1 = 10141,
+ PseudoVSE32_V_M1_MASK = 10142,
+ PseudoVSE32_V_M2 = 10143,
+ PseudoVSE32_V_M2_MASK = 10144,
+ PseudoVSE32_V_M4 = 10145,
+ PseudoVSE32_V_M4_MASK = 10146,
+ PseudoVSE32_V_M8 = 10147,
+ PseudoVSE32_V_M8_MASK = 10148,
+ PseudoVSE32_V_MF2 = 10149,
+ PseudoVSE32_V_MF2_MASK = 10150,
+ PseudoVSE64_V_M1 = 10151,
+ PseudoVSE64_V_M1_MASK = 10152,
+ PseudoVSE64_V_M2 = 10153,
+ PseudoVSE64_V_M2_MASK = 10154,
+ PseudoVSE64_V_M4 = 10155,
+ PseudoVSE64_V_M4_MASK = 10156,
+ PseudoVSE64_V_M8 = 10157,
+ PseudoVSE64_V_M8_MASK = 10158,
+ PseudoVSE8_V_M1 = 10159,
+ PseudoVSE8_V_M1_MASK = 10160,
+ PseudoVSE8_V_M2 = 10161,
+ PseudoVSE8_V_M2_MASK = 10162,
+ PseudoVSE8_V_M4 = 10163,
+ PseudoVSE8_V_M4_MASK = 10164,
+ PseudoVSE8_V_M8 = 10165,
+ PseudoVSE8_V_M8_MASK = 10166,
+ PseudoVSE8_V_MF2 = 10167,
+ PseudoVSE8_V_MF2_MASK = 10168,
+ PseudoVSE8_V_MF4 = 10169,
+ PseudoVSE8_V_MF4_MASK = 10170,
+ PseudoVSE8_V_MF8 = 10171,
+ PseudoVSE8_V_MF8_MASK = 10172,
+ PseudoVSETIVLI = 10173,
+ PseudoVSETVLI = 10174,
+ PseudoVSETVLIX0 = 10175,
+ PseudoVSETVLIX0X0 = 10176,
+ PseudoVSEXT_VF2_M1 = 10177,
+ PseudoVSEXT_VF2_M1_MASK = 10178,
+ PseudoVSEXT_VF2_M2 = 10179,
+ PseudoVSEXT_VF2_M2_MASK = 10180,
+ PseudoVSEXT_VF2_M4 = 10181,
+ PseudoVSEXT_VF2_M4_MASK = 10182,
+ PseudoVSEXT_VF2_M8 = 10183,
+ PseudoVSEXT_VF2_M8_MASK = 10184,
+ PseudoVSEXT_VF2_MF2 = 10185,
+ PseudoVSEXT_VF2_MF2_MASK = 10186,
+ PseudoVSEXT_VF2_MF4 = 10187,
+ PseudoVSEXT_VF2_MF4_MASK = 10188,
+ PseudoVSEXT_VF4_M1 = 10189,
+ PseudoVSEXT_VF4_M1_MASK = 10190,
+ PseudoVSEXT_VF4_M2 = 10191,
+ PseudoVSEXT_VF4_M2_MASK = 10192,
+ PseudoVSEXT_VF4_M4 = 10193,
+ PseudoVSEXT_VF4_M4_MASK = 10194,
+ PseudoVSEXT_VF4_M8 = 10195,
+ PseudoVSEXT_VF4_M8_MASK = 10196,
+ PseudoVSEXT_VF4_MF2 = 10197,
+ PseudoVSEXT_VF4_MF2_MASK = 10198,
+ PseudoVSEXT_VF8_M1 = 10199,
+ PseudoVSEXT_VF8_M1_MASK = 10200,
+ PseudoVSEXT_VF8_M2 = 10201,
+ PseudoVSEXT_VF8_M2_MASK = 10202,
+ PseudoVSEXT_VF8_M4 = 10203,
+ PseudoVSEXT_VF8_M4_MASK = 10204,
+ PseudoVSEXT_VF8_M8 = 10205,
+ PseudoVSEXT_VF8_M8_MASK = 10206,
+ PseudoVSHA2CH_VV_M1 = 10207,
+ PseudoVSHA2CH_VV_M2 = 10208,
+ PseudoVSHA2CH_VV_M4 = 10209,
+ PseudoVSHA2CH_VV_M8 = 10210,
+ PseudoVSHA2CH_VV_MF2 = 10211,
+ PseudoVSHA2CL_VV_M1 = 10212,
+ PseudoVSHA2CL_VV_M2 = 10213,
+ PseudoVSHA2CL_VV_M4 = 10214,
+ PseudoVSHA2CL_VV_M8 = 10215,
+ PseudoVSHA2CL_VV_MF2 = 10216,
+ PseudoVSHA2MS_VV_M1_E32 = 10217,
+ PseudoVSHA2MS_VV_M1_E64 = 10218,
+ PseudoVSHA2MS_VV_M2_E32 = 10219,
+ PseudoVSHA2MS_VV_M2_E64 = 10220,
+ PseudoVSHA2MS_VV_M4_E32 = 10221,
+ PseudoVSHA2MS_VV_M4_E64 = 10222,
+ PseudoVSHA2MS_VV_M8_E32 = 10223,
+ PseudoVSHA2MS_VV_M8_E64 = 10224,
+ PseudoVSHA2MS_VV_MF2_E32 = 10225,
+ PseudoVSLIDE1DOWN_VX_M1 = 10226,
+ PseudoVSLIDE1DOWN_VX_M1_MASK = 10227,
+ PseudoVSLIDE1DOWN_VX_M2 = 10228,
+ PseudoVSLIDE1DOWN_VX_M2_MASK = 10229,
+ PseudoVSLIDE1DOWN_VX_M4 = 10230,
+ PseudoVSLIDE1DOWN_VX_M4_MASK = 10231,
+ PseudoVSLIDE1DOWN_VX_M8 = 10232,
+ PseudoVSLIDE1DOWN_VX_M8_MASK = 10233,
+ PseudoVSLIDE1DOWN_VX_MF2 = 10234,
+ PseudoVSLIDE1DOWN_VX_MF2_MASK = 10235,
+ PseudoVSLIDE1DOWN_VX_MF4 = 10236,
+ PseudoVSLIDE1DOWN_VX_MF4_MASK = 10237,
+ PseudoVSLIDE1DOWN_VX_MF8 = 10238,
+ PseudoVSLIDE1DOWN_VX_MF8_MASK = 10239,
+ PseudoVSLIDE1UP_VX_M1 = 10240,
+ PseudoVSLIDE1UP_VX_M1_MASK = 10241,
+ PseudoVSLIDE1UP_VX_M2 = 10242,
+ PseudoVSLIDE1UP_VX_M2_MASK = 10243,
+ PseudoVSLIDE1UP_VX_M4 = 10244,
+ PseudoVSLIDE1UP_VX_M4_MASK = 10245,
+ PseudoVSLIDE1UP_VX_M8 = 10246,
+ PseudoVSLIDE1UP_VX_M8_MASK = 10247,
+ PseudoVSLIDE1UP_VX_MF2 = 10248,
+ PseudoVSLIDE1UP_VX_MF2_MASK = 10249,
+ PseudoVSLIDE1UP_VX_MF4 = 10250,
+ PseudoVSLIDE1UP_VX_MF4_MASK = 10251,
+ PseudoVSLIDE1UP_VX_MF8 = 10252,
+ PseudoVSLIDE1UP_VX_MF8_MASK = 10253,
+ PseudoVSLIDEDOWN_VI_M1 = 10254,
+ PseudoVSLIDEDOWN_VI_M1_MASK = 10255,
+ PseudoVSLIDEDOWN_VI_M2 = 10256,
+ PseudoVSLIDEDOWN_VI_M2_MASK = 10257,
+ PseudoVSLIDEDOWN_VI_M4 = 10258,
+ PseudoVSLIDEDOWN_VI_M4_MASK = 10259,
+ PseudoVSLIDEDOWN_VI_M8 = 10260,
+ PseudoVSLIDEDOWN_VI_M8_MASK = 10261,
+ PseudoVSLIDEDOWN_VI_MF2 = 10262,
+ PseudoVSLIDEDOWN_VI_MF2_MASK = 10263,
+ PseudoVSLIDEDOWN_VI_MF4 = 10264,
+ PseudoVSLIDEDOWN_VI_MF4_MASK = 10265,
+ PseudoVSLIDEDOWN_VI_MF8 = 10266,
+ PseudoVSLIDEDOWN_VI_MF8_MASK = 10267,
+ PseudoVSLIDEDOWN_VX_M1 = 10268,
+ PseudoVSLIDEDOWN_VX_M1_MASK = 10269,
+ PseudoVSLIDEDOWN_VX_M2 = 10270,
+ PseudoVSLIDEDOWN_VX_M2_MASK = 10271,
+ PseudoVSLIDEDOWN_VX_M4 = 10272,
+ PseudoVSLIDEDOWN_VX_M4_MASK = 10273,
+ PseudoVSLIDEDOWN_VX_M8 = 10274,
+ PseudoVSLIDEDOWN_VX_M8_MASK = 10275,
+ PseudoVSLIDEDOWN_VX_MF2 = 10276,
+ PseudoVSLIDEDOWN_VX_MF2_MASK = 10277,
+ PseudoVSLIDEDOWN_VX_MF4 = 10278,
+ PseudoVSLIDEDOWN_VX_MF4_MASK = 10279,
+ PseudoVSLIDEDOWN_VX_MF8 = 10280,
+ PseudoVSLIDEDOWN_VX_MF8_MASK = 10281,
+ PseudoVSLIDEUP_VI_M1 = 10282,
+ PseudoVSLIDEUP_VI_M1_MASK = 10283,
+ PseudoVSLIDEUP_VI_M2 = 10284,
+ PseudoVSLIDEUP_VI_M2_MASK = 10285,
+ PseudoVSLIDEUP_VI_M4 = 10286,
+ PseudoVSLIDEUP_VI_M4_MASK = 10287,
+ PseudoVSLIDEUP_VI_M8 = 10288,
+ PseudoVSLIDEUP_VI_M8_MASK = 10289,
+ PseudoVSLIDEUP_VI_MF2 = 10290,
+ PseudoVSLIDEUP_VI_MF2_MASK = 10291,
+ PseudoVSLIDEUP_VI_MF4 = 10292,
+ PseudoVSLIDEUP_VI_MF4_MASK = 10293,
+ PseudoVSLIDEUP_VI_MF8 = 10294,
+ PseudoVSLIDEUP_VI_MF8_MASK = 10295,
+ PseudoVSLIDEUP_VX_M1 = 10296,
+ PseudoVSLIDEUP_VX_M1_MASK = 10297,
+ PseudoVSLIDEUP_VX_M2 = 10298,
+ PseudoVSLIDEUP_VX_M2_MASK = 10299,
+ PseudoVSLIDEUP_VX_M4 = 10300,
+ PseudoVSLIDEUP_VX_M4_MASK = 10301,
+ PseudoVSLIDEUP_VX_M8 = 10302,
+ PseudoVSLIDEUP_VX_M8_MASK = 10303,
+ PseudoVSLIDEUP_VX_MF2 = 10304,
+ PseudoVSLIDEUP_VX_MF2_MASK = 10305,
+ PseudoVSLIDEUP_VX_MF4 = 10306,
+ PseudoVSLIDEUP_VX_MF4_MASK = 10307,
+ PseudoVSLIDEUP_VX_MF8 = 10308,
+ PseudoVSLIDEUP_VX_MF8_MASK = 10309,
+ PseudoVSLL_VI_M1 = 10310,
+ PseudoVSLL_VI_M1_MASK = 10311,
+ PseudoVSLL_VI_M2 = 10312,
+ PseudoVSLL_VI_M2_MASK = 10313,
+ PseudoVSLL_VI_M4 = 10314,
+ PseudoVSLL_VI_M4_MASK = 10315,
+ PseudoVSLL_VI_M8 = 10316,
+ PseudoVSLL_VI_M8_MASK = 10317,
+ PseudoVSLL_VI_MF2 = 10318,
+ PseudoVSLL_VI_MF2_MASK = 10319,
+ PseudoVSLL_VI_MF4 = 10320,
+ PseudoVSLL_VI_MF4_MASK = 10321,
+ PseudoVSLL_VI_MF8 = 10322,
+ PseudoVSLL_VI_MF8_MASK = 10323,
+ PseudoVSLL_VV_M1 = 10324,
+ PseudoVSLL_VV_M1_MASK = 10325,
+ PseudoVSLL_VV_M2 = 10326,
+ PseudoVSLL_VV_M2_MASK = 10327,
+ PseudoVSLL_VV_M4 = 10328,
+ PseudoVSLL_VV_M4_MASK = 10329,
+ PseudoVSLL_VV_M8 = 10330,
+ PseudoVSLL_VV_M8_MASK = 10331,
+ PseudoVSLL_VV_MF2 = 10332,
+ PseudoVSLL_VV_MF2_MASK = 10333,
+ PseudoVSLL_VV_MF4 = 10334,
+ PseudoVSLL_VV_MF4_MASK = 10335,
+ PseudoVSLL_VV_MF8 = 10336,
+ PseudoVSLL_VV_MF8_MASK = 10337,
+ PseudoVSLL_VX_M1 = 10338,
+ PseudoVSLL_VX_M1_MASK = 10339,
+ PseudoVSLL_VX_M2 = 10340,
+ PseudoVSLL_VX_M2_MASK = 10341,
+ PseudoVSLL_VX_M4 = 10342,
+ PseudoVSLL_VX_M4_MASK = 10343,
+ PseudoVSLL_VX_M8 = 10344,
+ PseudoVSLL_VX_M8_MASK = 10345,
+ PseudoVSLL_VX_MF2 = 10346,
+ PseudoVSLL_VX_MF2_MASK = 10347,
+ PseudoVSLL_VX_MF4 = 10348,
+ PseudoVSLL_VX_MF4_MASK = 10349,
+ PseudoVSLL_VX_MF8 = 10350,
+ PseudoVSLL_VX_MF8_MASK = 10351,
+ PseudoVSM3C_VI_M1 = 10352,
+ PseudoVSM3C_VI_M2 = 10353,
+ PseudoVSM3C_VI_M4 = 10354,
+ PseudoVSM3C_VI_M8 = 10355,
+ PseudoVSM3C_VI_MF2 = 10356,
+ PseudoVSM3ME_VV_M1 = 10357,
+ PseudoVSM3ME_VV_M2 = 10358,
+ PseudoVSM3ME_VV_M4 = 10359,
+ PseudoVSM3ME_VV_M8 = 10360,
+ PseudoVSM3ME_VV_MF2 = 10361,
+ PseudoVSM4K_VI_M1 = 10362,
+ PseudoVSM4K_VI_M2 = 10363,
+ PseudoVSM4K_VI_M4 = 10364,
+ PseudoVSM4K_VI_M8 = 10365,
+ PseudoVSM4K_VI_MF2 = 10366,
+ PseudoVSM4R_VS_M1_M1 = 10367,
+ PseudoVSM4R_VS_M1_MF2 = 10368,
+ PseudoVSM4R_VS_M1_MF4 = 10369,
+ PseudoVSM4R_VS_M1_MF8 = 10370,
+ PseudoVSM4R_VS_M2_M1 = 10371,
+ PseudoVSM4R_VS_M2_M2 = 10372,
+ PseudoVSM4R_VS_M2_MF2 = 10373,
+ PseudoVSM4R_VS_M2_MF4 = 10374,
+ PseudoVSM4R_VS_M2_MF8 = 10375,
+ PseudoVSM4R_VS_M4_M1 = 10376,
+ PseudoVSM4R_VS_M4_M2 = 10377,
+ PseudoVSM4R_VS_M4_M4 = 10378,
+ PseudoVSM4R_VS_M4_MF2 = 10379,
+ PseudoVSM4R_VS_M4_MF4 = 10380,
+ PseudoVSM4R_VS_M4_MF8 = 10381,
+ PseudoVSM4R_VS_M8_M1 = 10382,
+ PseudoVSM4R_VS_M8_M2 = 10383,
+ PseudoVSM4R_VS_M8_M4 = 10384,
+ PseudoVSM4R_VS_M8_MF2 = 10385,
+ PseudoVSM4R_VS_M8_MF4 = 10386,
+ PseudoVSM4R_VS_M8_MF8 = 10387,
+ PseudoVSM4R_VS_MF2_MF2 = 10388,
+ PseudoVSM4R_VS_MF2_MF4 = 10389,
+ PseudoVSM4R_VS_MF2_MF8 = 10390,
+ PseudoVSM4R_VV_M1 = 10391,
+ PseudoVSM4R_VV_M2 = 10392,
+ PseudoVSM4R_VV_M4 = 10393,
+ PseudoVSM4R_VV_M8 = 10394,
+ PseudoVSM4R_VV_MF2 = 10395,
+ PseudoVSMUL_VV_M1 = 10396,
+ PseudoVSMUL_VV_M1_MASK = 10397,
+ PseudoVSMUL_VV_M2 = 10398,
+ PseudoVSMUL_VV_M2_MASK = 10399,
+ PseudoVSMUL_VV_M4 = 10400,
+ PseudoVSMUL_VV_M4_MASK = 10401,
+ PseudoVSMUL_VV_M8 = 10402,
+ PseudoVSMUL_VV_M8_MASK = 10403,
+ PseudoVSMUL_VV_MF2 = 10404,
+ PseudoVSMUL_VV_MF2_MASK = 10405,
+ PseudoVSMUL_VV_MF4 = 10406,
+ PseudoVSMUL_VV_MF4_MASK = 10407,
+ PseudoVSMUL_VV_MF8 = 10408,
+ PseudoVSMUL_VV_MF8_MASK = 10409,
+ PseudoVSMUL_VX_M1 = 10410,
+ PseudoVSMUL_VX_M1_MASK = 10411,
+ PseudoVSMUL_VX_M2 = 10412,
+ PseudoVSMUL_VX_M2_MASK = 10413,
+ PseudoVSMUL_VX_M4 = 10414,
+ PseudoVSMUL_VX_M4_MASK = 10415,
+ PseudoVSMUL_VX_M8 = 10416,
+ PseudoVSMUL_VX_M8_MASK = 10417,
+ PseudoVSMUL_VX_MF2 = 10418,
+ PseudoVSMUL_VX_MF2_MASK = 10419,
+ PseudoVSMUL_VX_MF4 = 10420,
+ PseudoVSMUL_VX_MF4_MASK = 10421,
+ PseudoVSMUL_VX_MF8 = 10422,
+ PseudoVSMUL_VX_MF8_MASK = 10423,
+ PseudoVSM_V_B1 = 10424,
+ PseudoVSM_V_B16 = 10425,
+ PseudoVSM_V_B2 = 10426,
+ PseudoVSM_V_B32 = 10427,
+ PseudoVSM_V_B4 = 10428,
+ PseudoVSM_V_B64 = 10429,
+ PseudoVSM_V_B8 = 10430,
+ PseudoVSOXEI16_V_M1_M1 = 10431,
+ PseudoVSOXEI16_V_M1_M1_MASK = 10432,
+ PseudoVSOXEI16_V_M1_M2 = 10433,
+ PseudoVSOXEI16_V_M1_M2_MASK = 10434,
+ PseudoVSOXEI16_V_M1_M4 = 10435,
+ PseudoVSOXEI16_V_M1_M4_MASK = 10436,
+ PseudoVSOXEI16_V_M1_MF2 = 10437,
+ PseudoVSOXEI16_V_M1_MF2_MASK = 10438,
+ PseudoVSOXEI16_V_M2_M1 = 10439,
+ PseudoVSOXEI16_V_M2_M1_MASK = 10440,
+ PseudoVSOXEI16_V_M2_M2 = 10441,
+ PseudoVSOXEI16_V_M2_M2_MASK = 10442,
+ PseudoVSOXEI16_V_M2_M4 = 10443,
+ PseudoVSOXEI16_V_M2_M4_MASK = 10444,
+ PseudoVSOXEI16_V_M2_M8 = 10445,
+ PseudoVSOXEI16_V_M2_M8_MASK = 10446,
+ PseudoVSOXEI16_V_M4_M2 = 10447,
+ PseudoVSOXEI16_V_M4_M2_MASK = 10448,
+ PseudoVSOXEI16_V_M4_M4 = 10449,
+ PseudoVSOXEI16_V_M4_M4_MASK = 10450,
+ PseudoVSOXEI16_V_M4_M8 = 10451,
+ PseudoVSOXEI16_V_M4_M8_MASK = 10452,
+ PseudoVSOXEI16_V_M8_M4 = 10453,
+ PseudoVSOXEI16_V_M8_M4_MASK = 10454,
+ PseudoVSOXEI16_V_M8_M8 = 10455,
+ PseudoVSOXEI16_V_M8_M8_MASK = 10456,
+ PseudoVSOXEI16_V_MF2_M1 = 10457,
+ PseudoVSOXEI16_V_MF2_M1_MASK = 10458,
+ PseudoVSOXEI16_V_MF2_M2 = 10459,
+ PseudoVSOXEI16_V_MF2_M2_MASK = 10460,
+ PseudoVSOXEI16_V_MF2_MF2 = 10461,
+ PseudoVSOXEI16_V_MF2_MF2_MASK = 10462,
+ PseudoVSOXEI16_V_MF2_MF4 = 10463,
+ PseudoVSOXEI16_V_MF2_MF4_MASK = 10464,
+ PseudoVSOXEI16_V_MF4_M1 = 10465,
+ PseudoVSOXEI16_V_MF4_M1_MASK = 10466,
+ PseudoVSOXEI16_V_MF4_MF2 = 10467,
+ PseudoVSOXEI16_V_MF4_MF2_MASK = 10468,
+ PseudoVSOXEI16_V_MF4_MF4 = 10469,
+ PseudoVSOXEI16_V_MF4_MF4_MASK = 10470,
+ PseudoVSOXEI16_V_MF4_MF8 = 10471,
+ PseudoVSOXEI16_V_MF4_MF8_MASK = 10472,
+ PseudoVSOXEI32_V_M1_M1 = 10473,
+ PseudoVSOXEI32_V_M1_M1_MASK = 10474,
+ PseudoVSOXEI32_V_M1_M2 = 10475,
+ PseudoVSOXEI32_V_M1_M2_MASK = 10476,
+ PseudoVSOXEI32_V_M1_MF2 = 10477,
+ PseudoVSOXEI32_V_M1_MF2_MASK = 10478,
+ PseudoVSOXEI32_V_M1_MF4 = 10479,
+ PseudoVSOXEI32_V_M1_MF4_MASK = 10480,
+ PseudoVSOXEI32_V_M2_M1 = 10481,
+ PseudoVSOXEI32_V_M2_M1_MASK = 10482,
+ PseudoVSOXEI32_V_M2_M2 = 10483,
+ PseudoVSOXEI32_V_M2_M2_MASK = 10484,
+ PseudoVSOXEI32_V_M2_M4 = 10485,
+ PseudoVSOXEI32_V_M2_M4_MASK = 10486,
+ PseudoVSOXEI32_V_M2_MF2 = 10487,
+ PseudoVSOXEI32_V_M2_MF2_MASK = 10488,
+ PseudoVSOXEI32_V_M4_M1 = 10489,
+ PseudoVSOXEI32_V_M4_M1_MASK = 10490,
+ PseudoVSOXEI32_V_M4_M2 = 10491,
+ PseudoVSOXEI32_V_M4_M2_MASK = 10492,
+ PseudoVSOXEI32_V_M4_M4 = 10493,
+ PseudoVSOXEI32_V_M4_M4_MASK = 10494,
+ PseudoVSOXEI32_V_M4_M8 = 10495,
+ PseudoVSOXEI32_V_M4_M8_MASK = 10496,
+ PseudoVSOXEI32_V_M8_M2 = 10497,
+ PseudoVSOXEI32_V_M8_M2_MASK = 10498,
+ PseudoVSOXEI32_V_M8_M4 = 10499,
+ PseudoVSOXEI32_V_M8_M4_MASK = 10500,
+ PseudoVSOXEI32_V_M8_M8 = 10501,
+ PseudoVSOXEI32_V_M8_M8_MASK = 10502,
+ PseudoVSOXEI32_V_MF2_M1 = 10503,
+ PseudoVSOXEI32_V_MF2_M1_MASK = 10504,
+ PseudoVSOXEI32_V_MF2_MF2 = 10505,
+ PseudoVSOXEI32_V_MF2_MF2_MASK = 10506,
+ PseudoVSOXEI32_V_MF2_MF4 = 10507,
+ PseudoVSOXEI32_V_MF2_MF4_MASK = 10508,
+ PseudoVSOXEI32_V_MF2_MF8 = 10509,
+ PseudoVSOXEI32_V_MF2_MF8_MASK = 10510,
+ PseudoVSOXEI64_V_M1_M1 = 10511,
+ PseudoVSOXEI64_V_M1_M1_MASK = 10512,
+ PseudoVSOXEI64_V_M1_MF2 = 10513,
+ PseudoVSOXEI64_V_M1_MF2_MASK = 10514,
+ PseudoVSOXEI64_V_M1_MF4 = 10515,
+ PseudoVSOXEI64_V_M1_MF4_MASK = 10516,
+ PseudoVSOXEI64_V_M1_MF8 = 10517,
+ PseudoVSOXEI64_V_M1_MF8_MASK = 10518,
+ PseudoVSOXEI64_V_M2_M1 = 10519,
+ PseudoVSOXEI64_V_M2_M1_MASK = 10520,
+ PseudoVSOXEI64_V_M2_M2 = 10521,
+ PseudoVSOXEI64_V_M2_M2_MASK = 10522,
+ PseudoVSOXEI64_V_M2_MF2 = 10523,
+ PseudoVSOXEI64_V_M2_MF2_MASK = 10524,
+ PseudoVSOXEI64_V_M2_MF4 = 10525,
+ PseudoVSOXEI64_V_M2_MF4_MASK = 10526,
+ PseudoVSOXEI64_V_M4_M1 = 10527,
+ PseudoVSOXEI64_V_M4_M1_MASK = 10528,
+ PseudoVSOXEI64_V_M4_M2 = 10529,
+ PseudoVSOXEI64_V_M4_M2_MASK = 10530,
+ PseudoVSOXEI64_V_M4_M4 = 10531,
+ PseudoVSOXEI64_V_M4_M4_MASK = 10532,
+ PseudoVSOXEI64_V_M4_MF2 = 10533,
+ PseudoVSOXEI64_V_M4_MF2_MASK = 10534,
+ PseudoVSOXEI64_V_M8_M1 = 10535,
+ PseudoVSOXEI64_V_M8_M1_MASK = 10536,
+ PseudoVSOXEI64_V_M8_M2 = 10537,
+ PseudoVSOXEI64_V_M8_M2_MASK = 10538,
+ PseudoVSOXEI64_V_M8_M4 = 10539,
+ PseudoVSOXEI64_V_M8_M4_MASK = 10540,
+ PseudoVSOXEI64_V_M8_M8 = 10541,
+ PseudoVSOXEI64_V_M8_M8_MASK = 10542,
+ PseudoVSOXEI8_V_M1_M1 = 10543,
+ PseudoVSOXEI8_V_M1_M1_MASK = 10544,
+ PseudoVSOXEI8_V_M1_M2 = 10545,
+ PseudoVSOXEI8_V_M1_M2_MASK = 10546,
+ PseudoVSOXEI8_V_M1_M4 = 10547,
+ PseudoVSOXEI8_V_M1_M4_MASK = 10548,
+ PseudoVSOXEI8_V_M1_M8 = 10549,
+ PseudoVSOXEI8_V_M1_M8_MASK = 10550,
+ PseudoVSOXEI8_V_M2_M2 = 10551,
+ PseudoVSOXEI8_V_M2_M2_MASK = 10552,
+ PseudoVSOXEI8_V_M2_M4 = 10553,
+ PseudoVSOXEI8_V_M2_M4_MASK = 10554,
+ PseudoVSOXEI8_V_M2_M8 = 10555,
+ PseudoVSOXEI8_V_M2_M8_MASK = 10556,
+ PseudoVSOXEI8_V_M4_M4 = 10557,
+ PseudoVSOXEI8_V_M4_M4_MASK = 10558,
+ PseudoVSOXEI8_V_M4_M8 = 10559,
+ PseudoVSOXEI8_V_M4_M8_MASK = 10560,
+ PseudoVSOXEI8_V_M8_M8 = 10561,
+ PseudoVSOXEI8_V_M8_M8_MASK = 10562,
+ PseudoVSOXEI8_V_MF2_M1 = 10563,
+ PseudoVSOXEI8_V_MF2_M1_MASK = 10564,
+ PseudoVSOXEI8_V_MF2_M2 = 10565,
+ PseudoVSOXEI8_V_MF2_M2_MASK = 10566,
+ PseudoVSOXEI8_V_MF2_M4 = 10567,
+ PseudoVSOXEI8_V_MF2_M4_MASK = 10568,
+ PseudoVSOXEI8_V_MF2_MF2 = 10569,
+ PseudoVSOXEI8_V_MF2_MF2_MASK = 10570,
+ PseudoVSOXEI8_V_MF4_M1 = 10571,
+ PseudoVSOXEI8_V_MF4_M1_MASK = 10572,
+ PseudoVSOXEI8_V_MF4_M2 = 10573,
+ PseudoVSOXEI8_V_MF4_M2_MASK = 10574,
+ PseudoVSOXEI8_V_MF4_MF2 = 10575,
+ PseudoVSOXEI8_V_MF4_MF2_MASK = 10576,
+ PseudoVSOXEI8_V_MF4_MF4 = 10577,
+ PseudoVSOXEI8_V_MF4_MF4_MASK = 10578,
+ PseudoVSOXEI8_V_MF8_M1 = 10579,
+ PseudoVSOXEI8_V_MF8_M1_MASK = 10580,
+ PseudoVSOXEI8_V_MF8_MF2 = 10581,
+ PseudoVSOXEI8_V_MF8_MF2_MASK = 10582,
+ PseudoVSOXEI8_V_MF8_MF4 = 10583,
+ PseudoVSOXEI8_V_MF8_MF4_MASK = 10584,
+ PseudoVSOXEI8_V_MF8_MF8 = 10585,
+ PseudoVSOXEI8_V_MF8_MF8_MASK = 10586,
+ PseudoVSOXSEG2EI16_V_M1_M1 = 10587,
+ PseudoVSOXSEG2EI16_V_M1_M1_MASK = 10588,
+ PseudoVSOXSEG2EI16_V_M1_M2 = 10589,
+ PseudoVSOXSEG2EI16_V_M1_M2_MASK = 10590,
+ PseudoVSOXSEG2EI16_V_M1_M4 = 10591,
+ PseudoVSOXSEG2EI16_V_M1_M4_MASK = 10592,
+ PseudoVSOXSEG2EI16_V_M1_MF2 = 10593,
+ PseudoVSOXSEG2EI16_V_M1_MF2_MASK = 10594,
+ PseudoVSOXSEG2EI16_V_M2_M1 = 10595,
+ PseudoVSOXSEG2EI16_V_M2_M1_MASK = 10596,
+ PseudoVSOXSEG2EI16_V_M2_M2 = 10597,
+ PseudoVSOXSEG2EI16_V_M2_M2_MASK = 10598,
+ PseudoVSOXSEG2EI16_V_M2_M4 = 10599,
+ PseudoVSOXSEG2EI16_V_M2_M4_MASK = 10600,
+ PseudoVSOXSEG2EI16_V_M4_M2 = 10601,
+ PseudoVSOXSEG2EI16_V_M4_M2_MASK = 10602,
+ PseudoVSOXSEG2EI16_V_M4_M4 = 10603,
+ PseudoVSOXSEG2EI16_V_M4_M4_MASK = 10604,
+ PseudoVSOXSEG2EI16_V_M8_M4 = 10605,
+ PseudoVSOXSEG2EI16_V_M8_M4_MASK = 10606,
+ PseudoVSOXSEG2EI16_V_MF2_M1 = 10607,
+ PseudoVSOXSEG2EI16_V_MF2_M1_MASK = 10608,
+ PseudoVSOXSEG2EI16_V_MF2_M2 = 10609,
+ PseudoVSOXSEG2EI16_V_MF2_M2_MASK = 10610,
+ PseudoVSOXSEG2EI16_V_MF2_MF2 = 10611,
+ PseudoVSOXSEG2EI16_V_MF2_MF2_MASK = 10612,
+ PseudoVSOXSEG2EI16_V_MF2_MF4 = 10613,
+ PseudoVSOXSEG2EI16_V_MF2_MF4_MASK = 10614,
+ PseudoVSOXSEG2EI16_V_MF4_M1 = 10615,
+ PseudoVSOXSEG2EI16_V_MF4_M1_MASK = 10616,
+ PseudoVSOXSEG2EI16_V_MF4_MF2 = 10617,
+ PseudoVSOXSEG2EI16_V_MF4_MF2_MASK = 10618,
+ PseudoVSOXSEG2EI16_V_MF4_MF4 = 10619,
+ PseudoVSOXSEG2EI16_V_MF4_MF4_MASK = 10620,
+ PseudoVSOXSEG2EI16_V_MF4_MF8 = 10621,
+ PseudoVSOXSEG2EI16_V_MF4_MF8_MASK = 10622,
+ PseudoVSOXSEG2EI32_V_M1_M1 = 10623,
+ PseudoVSOXSEG2EI32_V_M1_M1_MASK = 10624,
+ PseudoVSOXSEG2EI32_V_M1_M2 = 10625,
+ PseudoVSOXSEG2EI32_V_M1_M2_MASK = 10626,
+ PseudoVSOXSEG2EI32_V_M1_MF2 = 10627,
+ PseudoVSOXSEG2EI32_V_M1_MF2_MASK = 10628,
+ PseudoVSOXSEG2EI32_V_M1_MF4 = 10629,
+ PseudoVSOXSEG2EI32_V_M1_MF4_MASK = 10630,
+ PseudoVSOXSEG2EI32_V_M2_M1 = 10631,
+ PseudoVSOXSEG2EI32_V_M2_M1_MASK = 10632,
+ PseudoVSOXSEG2EI32_V_M2_M2 = 10633,
+ PseudoVSOXSEG2EI32_V_M2_M2_MASK = 10634,
+ PseudoVSOXSEG2EI32_V_M2_M4 = 10635,
+ PseudoVSOXSEG2EI32_V_M2_M4_MASK = 10636,
+ PseudoVSOXSEG2EI32_V_M2_MF2 = 10637,
+ PseudoVSOXSEG2EI32_V_M2_MF2_MASK = 10638,
+ PseudoVSOXSEG2EI32_V_M4_M1 = 10639,
+ PseudoVSOXSEG2EI32_V_M4_M1_MASK = 10640,
+ PseudoVSOXSEG2EI32_V_M4_M2 = 10641,
+ PseudoVSOXSEG2EI32_V_M4_M2_MASK = 10642,
+ PseudoVSOXSEG2EI32_V_M4_M4 = 10643,
+ PseudoVSOXSEG2EI32_V_M4_M4_MASK = 10644,
+ PseudoVSOXSEG2EI32_V_M8_M2 = 10645,
+ PseudoVSOXSEG2EI32_V_M8_M2_MASK = 10646,
+ PseudoVSOXSEG2EI32_V_M8_M4 = 10647,
+ PseudoVSOXSEG2EI32_V_M8_M4_MASK = 10648,
+ PseudoVSOXSEG2EI32_V_MF2_M1 = 10649,
+ PseudoVSOXSEG2EI32_V_MF2_M1_MASK = 10650,
+ PseudoVSOXSEG2EI32_V_MF2_MF2 = 10651,
+ PseudoVSOXSEG2EI32_V_MF2_MF2_MASK = 10652,
+ PseudoVSOXSEG2EI32_V_MF2_MF4 = 10653,
+ PseudoVSOXSEG2EI32_V_MF2_MF4_MASK = 10654,
+ PseudoVSOXSEG2EI32_V_MF2_MF8 = 10655,
+ PseudoVSOXSEG2EI32_V_MF2_MF8_MASK = 10656,
+ PseudoVSOXSEG2EI64_V_M1_M1 = 10657,
+ PseudoVSOXSEG2EI64_V_M1_M1_MASK = 10658,
+ PseudoVSOXSEG2EI64_V_M1_MF2 = 10659,
+ PseudoVSOXSEG2EI64_V_M1_MF2_MASK = 10660,
+ PseudoVSOXSEG2EI64_V_M1_MF4 = 10661,
+ PseudoVSOXSEG2EI64_V_M1_MF4_MASK = 10662,
+ PseudoVSOXSEG2EI64_V_M1_MF8 = 10663,
+ PseudoVSOXSEG2EI64_V_M1_MF8_MASK = 10664,
+ PseudoVSOXSEG2EI64_V_M2_M1 = 10665,
+ PseudoVSOXSEG2EI64_V_M2_M1_MASK = 10666,
+ PseudoVSOXSEG2EI64_V_M2_M2 = 10667,
+ PseudoVSOXSEG2EI64_V_M2_M2_MASK = 10668,
+ PseudoVSOXSEG2EI64_V_M2_MF2 = 10669,
+ PseudoVSOXSEG2EI64_V_M2_MF2_MASK = 10670,
+ PseudoVSOXSEG2EI64_V_M2_MF4 = 10671,
+ PseudoVSOXSEG2EI64_V_M2_MF4_MASK = 10672,
+ PseudoVSOXSEG2EI64_V_M4_M1 = 10673,
+ PseudoVSOXSEG2EI64_V_M4_M1_MASK = 10674,
+ PseudoVSOXSEG2EI64_V_M4_M2 = 10675,
+ PseudoVSOXSEG2EI64_V_M4_M2_MASK = 10676,
+ PseudoVSOXSEG2EI64_V_M4_M4 = 10677,
+ PseudoVSOXSEG2EI64_V_M4_M4_MASK = 10678,
+ PseudoVSOXSEG2EI64_V_M4_MF2 = 10679,
+ PseudoVSOXSEG2EI64_V_M4_MF2_MASK = 10680,
+ PseudoVSOXSEG2EI64_V_M8_M1 = 10681,
+ PseudoVSOXSEG2EI64_V_M8_M1_MASK = 10682,
+ PseudoVSOXSEG2EI64_V_M8_M2 = 10683,
+ PseudoVSOXSEG2EI64_V_M8_M2_MASK = 10684,
+ PseudoVSOXSEG2EI64_V_M8_M4 = 10685,
+ PseudoVSOXSEG2EI64_V_M8_M4_MASK = 10686,
+ PseudoVSOXSEG2EI8_V_M1_M1 = 10687,
+ PseudoVSOXSEG2EI8_V_M1_M1_MASK = 10688,
+ PseudoVSOXSEG2EI8_V_M1_M2 = 10689,
+ PseudoVSOXSEG2EI8_V_M1_M2_MASK = 10690,
+ PseudoVSOXSEG2EI8_V_M1_M4 = 10691,
+ PseudoVSOXSEG2EI8_V_M1_M4_MASK = 10692,
+ PseudoVSOXSEG2EI8_V_M2_M2 = 10693,
+ PseudoVSOXSEG2EI8_V_M2_M2_MASK = 10694,
+ PseudoVSOXSEG2EI8_V_M2_M4 = 10695,
+ PseudoVSOXSEG2EI8_V_M2_M4_MASK = 10696,
+ PseudoVSOXSEG2EI8_V_M4_M4 = 10697,
+ PseudoVSOXSEG2EI8_V_M4_M4_MASK = 10698,
+ PseudoVSOXSEG2EI8_V_MF2_M1 = 10699,
+ PseudoVSOXSEG2EI8_V_MF2_M1_MASK = 10700,
+ PseudoVSOXSEG2EI8_V_MF2_M2 = 10701,
+ PseudoVSOXSEG2EI8_V_MF2_M2_MASK = 10702,
+ PseudoVSOXSEG2EI8_V_MF2_M4 = 10703,
+ PseudoVSOXSEG2EI8_V_MF2_M4_MASK = 10704,
+ PseudoVSOXSEG2EI8_V_MF2_MF2 = 10705,
+ PseudoVSOXSEG2EI8_V_MF2_MF2_MASK = 10706,
+ PseudoVSOXSEG2EI8_V_MF4_M1 = 10707,
+ PseudoVSOXSEG2EI8_V_MF4_M1_MASK = 10708,
+ PseudoVSOXSEG2EI8_V_MF4_M2 = 10709,
+ PseudoVSOXSEG2EI8_V_MF4_M2_MASK = 10710,
+ PseudoVSOXSEG2EI8_V_MF4_MF2 = 10711,
+ PseudoVSOXSEG2EI8_V_MF4_MF2_MASK = 10712,
+ PseudoVSOXSEG2EI8_V_MF4_MF4 = 10713,
+ PseudoVSOXSEG2EI8_V_MF4_MF4_MASK = 10714,
+ PseudoVSOXSEG2EI8_V_MF8_M1 = 10715,
+ PseudoVSOXSEG2EI8_V_MF8_M1_MASK = 10716,
+ PseudoVSOXSEG2EI8_V_MF8_MF2 = 10717,
+ PseudoVSOXSEG2EI8_V_MF8_MF2_MASK = 10718,
+ PseudoVSOXSEG2EI8_V_MF8_MF4 = 10719,
+ PseudoVSOXSEG2EI8_V_MF8_MF4_MASK = 10720,
+ PseudoVSOXSEG2EI8_V_MF8_MF8 = 10721,
+ PseudoVSOXSEG2EI8_V_MF8_MF8_MASK = 10722,
+ PseudoVSOXSEG3EI16_V_M1_M1 = 10723,
+ PseudoVSOXSEG3EI16_V_M1_M1_MASK = 10724,
+ PseudoVSOXSEG3EI16_V_M1_M2 = 10725,
+ PseudoVSOXSEG3EI16_V_M1_M2_MASK = 10726,
+ PseudoVSOXSEG3EI16_V_M1_MF2 = 10727,
+ PseudoVSOXSEG3EI16_V_M1_MF2_MASK = 10728,
+ PseudoVSOXSEG3EI16_V_M2_M1 = 10729,
+ PseudoVSOXSEG3EI16_V_M2_M1_MASK = 10730,
+ PseudoVSOXSEG3EI16_V_M2_M2 = 10731,
+ PseudoVSOXSEG3EI16_V_M2_M2_MASK = 10732,
+ PseudoVSOXSEG3EI16_V_M4_M2 = 10733,
+ PseudoVSOXSEG3EI16_V_M4_M2_MASK = 10734,
+ PseudoVSOXSEG3EI16_V_MF2_M1 = 10735,
+ PseudoVSOXSEG3EI16_V_MF2_M1_MASK = 10736,
+ PseudoVSOXSEG3EI16_V_MF2_M2 = 10737,
+ PseudoVSOXSEG3EI16_V_MF2_M2_MASK = 10738,
+ PseudoVSOXSEG3EI16_V_MF2_MF2 = 10739,
+ PseudoVSOXSEG3EI16_V_MF2_MF2_MASK = 10740,
+ PseudoVSOXSEG3EI16_V_MF2_MF4 = 10741,
+ PseudoVSOXSEG3EI16_V_MF2_MF4_MASK = 10742,
+ PseudoVSOXSEG3EI16_V_MF4_M1 = 10743,
+ PseudoVSOXSEG3EI16_V_MF4_M1_MASK = 10744,
+ PseudoVSOXSEG3EI16_V_MF4_MF2 = 10745,
+ PseudoVSOXSEG3EI16_V_MF4_MF2_MASK = 10746,
+ PseudoVSOXSEG3EI16_V_MF4_MF4 = 10747,
+ PseudoVSOXSEG3EI16_V_MF4_MF4_MASK = 10748,
+ PseudoVSOXSEG3EI16_V_MF4_MF8 = 10749,
+ PseudoVSOXSEG3EI16_V_MF4_MF8_MASK = 10750,
+ PseudoVSOXSEG3EI32_V_M1_M1 = 10751,
+ PseudoVSOXSEG3EI32_V_M1_M1_MASK = 10752,
+ PseudoVSOXSEG3EI32_V_M1_M2 = 10753,
+ PseudoVSOXSEG3EI32_V_M1_M2_MASK = 10754,
+ PseudoVSOXSEG3EI32_V_M1_MF2 = 10755,
+ PseudoVSOXSEG3EI32_V_M1_MF2_MASK = 10756,
+ PseudoVSOXSEG3EI32_V_M1_MF4 = 10757,
+ PseudoVSOXSEG3EI32_V_M1_MF4_MASK = 10758,
+ PseudoVSOXSEG3EI32_V_M2_M1 = 10759,
+ PseudoVSOXSEG3EI32_V_M2_M1_MASK = 10760,
+ PseudoVSOXSEG3EI32_V_M2_M2 = 10761,
+ PseudoVSOXSEG3EI32_V_M2_M2_MASK = 10762,
+ PseudoVSOXSEG3EI32_V_M2_MF2 = 10763,
+ PseudoVSOXSEG3EI32_V_M2_MF2_MASK = 10764,
+ PseudoVSOXSEG3EI32_V_M4_M1 = 10765,
+ PseudoVSOXSEG3EI32_V_M4_M1_MASK = 10766,
+ PseudoVSOXSEG3EI32_V_M4_M2 = 10767,
+ PseudoVSOXSEG3EI32_V_M4_M2_MASK = 10768,
+ PseudoVSOXSEG3EI32_V_M8_M2 = 10769,
+ PseudoVSOXSEG3EI32_V_M8_M2_MASK = 10770,
+ PseudoVSOXSEG3EI32_V_MF2_M1 = 10771,
+ PseudoVSOXSEG3EI32_V_MF2_M1_MASK = 10772,
+ PseudoVSOXSEG3EI32_V_MF2_MF2 = 10773,
+ PseudoVSOXSEG3EI32_V_MF2_MF2_MASK = 10774,
+ PseudoVSOXSEG3EI32_V_MF2_MF4 = 10775,
+ PseudoVSOXSEG3EI32_V_MF2_MF4_MASK = 10776,
+ PseudoVSOXSEG3EI32_V_MF2_MF8 = 10777,
+ PseudoVSOXSEG3EI32_V_MF2_MF8_MASK = 10778,
+ PseudoVSOXSEG3EI64_V_M1_M1 = 10779,
+ PseudoVSOXSEG3EI64_V_M1_M1_MASK = 10780,
+ PseudoVSOXSEG3EI64_V_M1_MF2 = 10781,
+ PseudoVSOXSEG3EI64_V_M1_MF2_MASK = 10782,
+ PseudoVSOXSEG3EI64_V_M1_MF4 = 10783,
+ PseudoVSOXSEG3EI64_V_M1_MF4_MASK = 10784,
+ PseudoVSOXSEG3EI64_V_M1_MF8 = 10785,
+ PseudoVSOXSEG3EI64_V_M1_MF8_MASK = 10786,
+ PseudoVSOXSEG3EI64_V_M2_M1 = 10787,
+ PseudoVSOXSEG3EI64_V_M2_M1_MASK = 10788,
+ PseudoVSOXSEG3EI64_V_M2_M2 = 10789,
+ PseudoVSOXSEG3EI64_V_M2_M2_MASK = 10790,
+ PseudoVSOXSEG3EI64_V_M2_MF2 = 10791,
+ PseudoVSOXSEG3EI64_V_M2_MF2_MASK = 10792,
+ PseudoVSOXSEG3EI64_V_M2_MF4 = 10793,
+ PseudoVSOXSEG3EI64_V_M2_MF4_MASK = 10794,
+ PseudoVSOXSEG3EI64_V_M4_M1 = 10795,
+ PseudoVSOXSEG3EI64_V_M4_M1_MASK = 10796,
+ PseudoVSOXSEG3EI64_V_M4_M2 = 10797,
+ PseudoVSOXSEG3EI64_V_M4_M2_MASK = 10798,
+ PseudoVSOXSEG3EI64_V_M4_MF2 = 10799,
+ PseudoVSOXSEG3EI64_V_M4_MF2_MASK = 10800,
+ PseudoVSOXSEG3EI64_V_M8_M1 = 10801,
+ PseudoVSOXSEG3EI64_V_M8_M1_MASK = 10802,
+ PseudoVSOXSEG3EI64_V_M8_M2 = 10803,
+ PseudoVSOXSEG3EI64_V_M8_M2_MASK = 10804,
+ PseudoVSOXSEG3EI8_V_M1_M1 = 10805,
+ PseudoVSOXSEG3EI8_V_M1_M1_MASK = 10806,
+ PseudoVSOXSEG3EI8_V_M1_M2 = 10807,
+ PseudoVSOXSEG3EI8_V_M1_M2_MASK = 10808,
+ PseudoVSOXSEG3EI8_V_M2_M2 = 10809,
+ PseudoVSOXSEG3EI8_V_M2_M2_MASK = 10810,
+ PseudoVSOXSEG3EI8_V_MF2_M1 = 10811,
+ PseudoVSOXSEG3EI8_V_MF2_M1_MASK = 10812,
+ PseudoVSOXSEG3EI8_V_MF2_M2 = 10813,
+ PseudoVSOXSEG3EI8_V_MF2_M2_MASK = 10814,
+ PseudoVSOXSEG3EI8_V_MF2_MF2 = 10815,
+ PseudoVSOXSEG3EI8_V_MF2_MF2_MASK = 10816,
+ PseudoVSOXSEG3EI8_V_MF4_M1 = 10817,
+ PseudoVSOXSEG3EI8_V_MF4_M1_MASK = 10818,
+ PseudoVSOXSEG3EI8_V_MF4_M2 = 10819,
+ PseudoVSOXSEG3EI8_V_MF4_M2_MASK = 10820,
+ PseudoVSOXSEG3EI8_V_MF4_MF2 = 10821,
+ PseudoVSOXSEG3EI8_V_MF4_MF2_MASK = 10822,
+ PseudoVSOXSEG3EI8_V_MF4_MF4 = 10823,
+ PseudoVSOXSEG3EI8_V_MF4_MF4_MASK = 10824,
+ PseudoVSOXSEG3EI8_V_MF8_M1 = 10825,
+ PseudoVSOXSEG3EI8_V_MF8_M1_MASK = 10826,
+ PseudoVSOXSEG3EI8_V_MF8_MF2 = 10827,
+ PseudoVSOXSEG3EI8_V_MF8_MF2_MASK = 10828,
+ PseudoVSOXSEG3EI8_V_MF8_MF4 = 10829,
+ PseudoVSOXSEG3EI8_V_MF8_MF4_MASK = 10830,
+ PseudoVSOXSEG3EI8_V_MF8_MF8 = 10831,
+ PseudoVSOXSEG3EI8_V_MF8_MF8_MASK = 10832,
+ PseudoVSOXSEG4EI16_V_M1_M1 = 10833,
+ PseudoVSOXSEG4EI16_V_M1_M1_MASK = 10834,
+ PseudoVSOXSEG4EI16_V_M1_M2 = 10835,
+ PseudoVSOXSEG4EI16_V_M1_M2_MASK = 10836,
+ PseudoVSOXSEG4EI16_V_M1_MF2 = 10837,
+ PseudoVSOXSEG4EI16_V_M1_MF2_MASK = 10838,
+ PseudoVSOXSEG4EI16_V_M2_M1 = 10839,
+ PseudoVSOXSEG4EI16_V_M2_M1_MASK = 10840,
+ PseudoVSOXSEG4EI16_V_M2_M2 = 10841,
+ PseudoVSOXSEG4EI16_V_M2_M2_MASK = 10842,
+ PseudoVSOXSEG4EI16_V_M4_M2 = 10843,
+ PseudoVSOXSEG4EI16_V_M4_M2_MASK = 10844,
+ PseudoVSOXSEG4EI16_V_MF2_M1 = 10845,
+ PseudoVSOXSEG4EI16_V_MF2_M1_MASK = 10846,
+ PseudoVSOXSEG4EI16_V_MF2_M2 = 10847,
+ PseudoVSOXSEG4EI16_V_MF2_M2_MASK = 10848,
+ PseudoVSOXSEG4EI16_V_MF2_MF2 = 10849,
+ PseudoVSOXSEG4EI16_V_MF2_MF2_MASK = 10850,
+ PseudoVSOXSEG4EI16_V_MF2_MF4 = 10851,
+ PseudoVSOXSEG4EI16_V_MF2_MF4_MASK = 10852,
+ PseudoVSOXSEG4EI16_V_MF4_M1 = 10853,
+ PseudoVSOXSEG4EI16_V_MF4_M1_MASK = 10854,
+ PseudoVSOXSEG4EI16_V_MF4_MF2 = 10855,
+ PseudoVSOXSEG4EI16_V_MF4_MF2_MASK = 10856,
+ PseudoVSOXSEG4EI16_V_MF4_MF4 = 10857,
+ PseudoVSOXSEG4EI16_V_MF4_MF4_MASK = 10858,
+ PseudoVSOXSEG4EI16_V_MF4_MF8 = 10859,
+ PseudoVSOXSEG4EI16_V_MF4_MF8_MASK = 10860,
+ PseudoVSOXSEG4EI32_V_M1_M1 = 10861,
+ PseudoVSOXSEG4EI32_V_M1_M1_MASK = 10862,
+ PseudoVSOXSEG4EI32_V_M1_M2 = 10863,
+ PseudoVSOXSEG4EI32_V_M1_M2_MASK = 10864,
+ PseudoVSOXSEG4EI32_V_M1_MF2 = 10865,
+ PseudoVSOXSEG4EI32_V_M1_MF2_MASK = 10866,
+ PseudoVSOXSEG4EI32_V_M1_MF4 = 10867,
+ PseudoVSOXSEG4EI32_V_M1_MF4_MASK = 10868,
+ PseudoVSOXSEG4EI32_V_M2_M1 = 10869,
+ PseudoVSOXSEG4EI32_V_M2_M1_MASK = 10870,
+ PseudoVSOXSEG4EI32_V_M2_M2 = 10871,
+ PseudoVSOXSEG4EI32_V_M2_M2_MASK = 10872,
+ PseudoVSOXSEG4EI32_V_M2_MF2 = 10873,
+ PseudoVSOXSEG4EI32_V_M2_MF2_MASK = 10874,
+ PseudoVSOXSEG4EI32_V_M4_M1 = 10875,
+ PseudoVSOXSEG4EI32_V_M4_M1_MASK = 10876,
+ PseudoVSOXSEG4EI32_V_M4_M2 = 10877,
+ PseudoVSOXSEG4EI32_V_M4_M2_MASK = 10878,
+ PseudoVSOXSEG4EI32_V_M8_M2 = 10879,
+ PseudoVSOXSEG4EI32_V_M8_M2_MASK = 10880,
+ PseudoVSOXSEG4EI32_V_MF2_M1 = 10881,
+ PseudoVSOXSEG4EI32_V_MF2_M1_MASK = 10882,
+ PseudoVSOXSEG4EI32_V_MF2_MF2 = 10883,
+ PseudoVSOXSEG4EI32_V_MF2_MF2_MASK = 10884,
+ PseudoVSOXSEG4EI32_V_MF2_MF4 = 10885,
+ PseudoVSOXSEG4EI32_V_MF2_MF4_MASK = 10886,
+ PseudoVSOXSEG4EI32_V_MF2_MF8 = 10887,
+ PseudoVSOXSEG4EI32_V_MF2_MF8_MASK = 10888,
+ PseudoVSOXSEG4EI64_V_M1_M1 = 10889,
+ PseudoVSOXSEG4EI64_V_M1_M1_MASK = 10890,
+ PseudoVSOXSEG4EI64_V_M1_MF2 = 10891,
+ PseudoVSOXSEG4EI64_V_M1_MF2_MASK = 10892,
+ PseudoVSOXSEG4EI64_V_M1_MF4 = 10893,
+ PseudoVSOXSEG4EI64_V_M1_MF4_MASK = 10894,
+ PseudoVSOXSEG4EI64_V_M1_MF8 = 10895,
+ PseudoVSOXSEG4EI64_V_M1_MF8_MASK = 10896,
+ PseudoVSOXSEG4EI64_V_M2_M1 = 10897,
+ PseudoVSOXSEG4EI64_V_M2_M1_MASK = 10898,
+ PseudoVSOXSEG4EI64_V_M2_M2 = 10899,
+ PseudoVSOXSEG4EI64_V_M2_M2_MASK = 10900,
+ PseudoVSOXSEG4EI64_V_M2_MF2 = 10901,
+ PseudoVSOXSEG4EI64_V_M2_MF2_MASK = 10902,
+ PseudoVSOXSEG4EI64_V_M2_MF4 = 10903,
+ PseudoVSOXSEG4EI64_V_M2_MF4_MASK = 10904,
+ PseudoVSOXSEG4EI64_V_M4_M1 = 10905,
+ PseudoVSOXSEG4EI64_V_M4_M1_MASK = 10906,
+ PseudoVSOXSEG4EI64_V_M4_M2 = 10907,
+ PseudoVSOXSEG4EI64_V_M4_M2_MASK = 10908,
+ PseudoVSOXSEG4EI64_V_M4_MF2 = 10909,
+ PseudoVSOXSEG4EI64_V_M4_MF2_MASK = 10910,
+ PseudoVSOXSEG4EI64_V_M8_M1 = 10911,
+ PseudoVSOXSEG4EI64_V_M8_M1_MASK = 10912,
+ PseudoVSOXSEG4EI64_V_M8_M2 = 10913,
+ PseudoVSOXSEG4EI64_V_M8_M2_MASK = 10914,
+ PseudoVSOXSEG4EI8_V_M1_M1 = 10915,
+ PseudoVSOXSEG4EI8_V_M1_M1_MASK = 10916,
+ PseudoVSOXSEG4EI8_V_M1_M2 = 10917,
+ PseudoVSOXSEG4EI8_V_M1_M2_MASK = 10918,
+ PseudoVSOXSEG4EI8_V_M2_M2 = 10919,
+ PseudoVSOXSEG4EI8_V_M2_M2_MASK = 10920,
+ PseudoVSOXSEG4EI8_V_MF2_M1 = 10921,
+ PseudoVSOXSEG4EI8_V_MF2_M1_MASK = 10922,
+ PseudoVSOXSEG4EI8_V_MF2_M2 = 10923,
+ PseudoVSOXSEG4EI8_V_MF2_M2_MASK = 10924,
+ PseudoVSOXSEG4EI8_V_MF2_MF2 = 10925,
+ PseudoVSOXSEG4EI8_V_MF2_MF2_MASK = 10926,
+ PseudoVSOXSEG4EI8_V_MF4_M1 = 10927,
+ PseudoVSOXSEG4EI8_V_MF4_M1_MASK = 10928,
+ PseudoVSOXSEG4EI8_V_MF4_M2 = 10929,
+ PseudoVSOXSEG4EI8_V_MF4_M2_MASK = 10930,
+ PseudoVSOXSEG4EI8_V_MF4_MF2 = 10931,
+ PseudoVSOXSEG4EI8_V_MF4_MF2_MASK = 10932,
+ PseudoVSOXSEG4EI8_V_MF4_MF4 = 10933,
+ PseudoVSOXSEG4EI8_V_MF4_MF4_MASK = 10934,
+ PseudoVSOXSEG4EI8_V_MF8_M1 = 10935,
+ PseudoVSOXSEG4EI8_V_MF8_M1_MASK = 10936,
+ PseudoVSOXSEG4EI8_V_MF8_MF2 = 10937,
+ PseudoVSOXSEG4EI8_V_MF8_MF2_MASK = 10938,
+ PseudoVSOXSEG4EI8_V_MF8_MF4 = 10939,
+ PseudoVSOXSEG4EI8_V_MF8_MF4_MASK = 10940,
+ PseudoVSOXSEG4EI8_V_MF8_MF8 = 10941,
+ PseudoVSOXSEG4EI8_V_MF8_MF8_MASK = 10942,
+ PseudoVSOXSEG5EI16_V_M1_M1 = 10943,
+ PseudoVSOXSEG5EI16_V_M1_M1_MASK = 10944,
+ PseudoVSOXSEG5EI16_V_M1_MF2 = 10945,
+ PseudoVSOXSEG5EI16_V_M1_MF2_MASK = 10946,
+ PseudoVSOXSEG5EI16_V_M2_M1 = 10947,
+ PseudoVSOXSEG5EI16_V_M2_M1_MASK = 10948,
+ PseudoVSOXSEG5EI16_V_MF2_M1 = 10949,
+ PseudoVSOXSEG5EI16_V_MF2_M1_MASK = 10950,
+ PseudoVSOXSEG5EI16_V_MF2_MF2 = 10951,
+ PseudoVSOXSEG5EI16_V_MF2_MF2_MASK = 10952,
+ PseudoVSOXSEG5EI16_V_MF2_MF4 = 10953,
+ PseudoVSOXSEG5EI16_V_MF2_MF4_MASK = 10954,
+ PseudoVSOXSEG5EI16_V_MF4_M1 = 10955,
+ PseudoVSOXSEG5EI16_V_MF4_M1_MASK = 10956,
+ PseudoVSOXSEG5EI16_V_MF4_MF2 = 10957,
+ PseudoVSOXSEG5EI16_V_MF4_MF2_MASK = 10958,
+ PseudoVSOXSEG5EI16_V_MF4_MF4 = 10959,
+ PseudoVSOXSEG5EI16_V_MF4_MF4_MASK = 10960,
+ PseudoVSOXSEG5EI16_V_MF4_MF8 = 10961,
+ PseudoVSOXSEG5EI16_V_MF4_MF8_MASK = 10962,
+ PseudoVSOXSEG5EI32_V_M1_M1 = 10963,
+ PseudoVSOXSEG5EI32_V_M1_M1_MASK = 10964,
+ PseudoVSOXSEG5EI32_V_M1_MF2 = 10965,
+ PseudoVSOXSEG5EI32_V_M1_MF2_MASK = 10966,
+ PseudoVSOXSEG5EI32_V_M1_MF4 = 10967,
+ PseudoVSOXSEG5EI32_V_M1_MF4_MASK = 10968,
+ PseudoVSOXSEG5EI32_V_M2_M1 = 10969,
+ PseudoVSOXSEG5EI32_V_M2_M1_MASK = 10970,
+ PseudoVSOXSEG5EI32_V_M2_MF2 = 10971,
+ PseudoVSOXSEG5EI32_V_M2_MF2_MASK = 10972,
+ PseudoVSOXSEG5EI32_V_M4_M1 = 10973,
+ PseudoVSOXSEG5EI32_V_M4_M1_MASK = 10974,
+ PseudoVSOXSEG5EI32_V_MF2_M1 = 10975,
+ PseudoVSOXSEG5EI32_V_MF2_M1_MASK = 10976,
+ PseudoVSOXSEG5EI32_V_MF2_MF2 = 10977,
+ PseudoVSOXSEG5EI32_V_MF2_MF2_MASK = 10978,
+ PseudoVSOXSEG5EI32_V_MF2_MF4 = 10979,
+ PseudoVSOXSEG5EI32_V_MF2_MF4_MASK = 10980,
+ PseudoVSOXSEG5EI32_V_MF2_MF8 = 10981,
+ PseudoVSOXSEG5EI32_V_MF2_MF8_MASK = 10982,
+ PseudoVSOXSEG5EI64_V_M1_M1 = 10983,
+ PseudoVSOXSEG5EI64_V_M1_M1_MASK = 10984,
+ PseudoVSOXSEG5EI64_V_M1_MF2 = 10985,
+ PseudoVSOXSEG5EI64_V_M1_MF2_MASK = 10986,
+ PseudoVSOXSEG5EI64_V_M1_MF4 = 10987,
+ PseudoVSOXSEG5EI64_V_M1_MF4_MASK = 10988,
+ PseudoVSOXSEG5EI64_V_M1_MF8 = 10989,
+ PseudoVSOXSEG5EI64_V_M1_MF8_MASK = 10990,
+ PseudoVSOXSEG5EI64_V_M2_M1 = 10991,
+ PseudoVSOXSEG5EI64_V_M2_M1_MASK = 10992,
+ PseudoVSOXSEG5EI64_V_M2_MF2 = 10993,
+ PseudoVSOXSEG5EI64_V_M2_MF2_MASK = 10994,
+ PseudoVSOXSEG5EI64_V_M2_MF4 = 10995,
+ PseudoVSOXSEG5EI64_V_M2_MF4_MASK = 10996,
+ PseudoVSOXSEG5EI64_V_M4_M1 = 10997,
+ PseudoVSOXSEG5EI64_V_M4_M1_MASK = 10998,
+ PseudoVSOXSEG5EI64_V_M4_MF2 = 10999,
+ PseudoVSOXSEG5EI64_V_M4_MF2_MASK = 11000,
+ PseudoVSOXSEG5EI64_V_M8_M1 = 11001,
+ PseudoVSOXSEG5EI64_V_M8_M1_MASK = 11002,
+ PseudoVSOXSEG5EI8_V_M1_M1 = 11003,
+ PseudoVSOXSEG5EI8_V_M1_M1_MASK = 11004,
+ PseudoVSOXSEG5EI8_V_MF2_M1 = 11005,
+ PseudoVSOXSEG5EI8_V_MF2_M1_MASK = 11006,
+ PseudoVSOXSEG5EI8_V_MF2_MF2 = 11007,
+ PseudoVSOXSEG5EI8_V_MF2_MF2_MASK = 11008,
+ PseudoVSOXSEG5EI8_V_MF4_M1 = 11009,
+ PseudoVSOXSEG5EI8_V_MF4_M1_MASK = 11010,
+ PseudoVSOXSEG5EI8_V_MF4_MF2 = 11011,
+ PseudoVSOXSEG5EI8_V_MF4_MF2_MASK = 11012,
+ PseudoVSOXSEG5EI8_V_MF4_MF4 = 11013,
+ PseudoVSOXSEG5EI8_V_MF4_MF4_MASK = 11014,
+ PseudoVSOXSEG5EI8_V_MF8_M1 = 11015,
+ PseudoVSOXSEG5EI8_V_MF8_M1_MASK = 11016,
+ PseudoVSOXSEG5EI8_V_MF8_MF2 = 11017,
+ PseudoVSOXSEG5EI8_V_MF8_MF2_MASK = 11018,
+ PseudoVSOXSEG5EI8_V_MF8_MF4 = 11019,
+ PseudoVSOXSEG5EI8_V_MF8_MF4_MASK = 11020,
+ PseudoVSOXSEG5EI8_V_MF8_MF8 = 11021,
+ PseudoVSOXSEG5EI8_V_MF8_MF8_MASK = 11022,
+ PseudoVSOXSEG6EI16_V_M1_M1 = 11023,
+ PseudoVSOXSEG6EI16_V_M1_M1_MASK = 11024,
+ PseudoVSOXSEG6EI16_V_M1_MF2 = 11025,
+ PseudoVSOXSEG6EI16_V_M1_MF2_MASK = 11026,
+ PseudoVSOXSEG6EI16_V_M2_M1 = 11027,
+ PseudoVSOXSEG6EI16_V_M2_M1_MASK = 11028,
+ PseudoVSOXSEG6EI16_V_MF2_M1 = 11029,
+ PseudoVSOXSEG6EI16_V_MF2_M1_MASK = 11030,
+ PseudoVSOXSEG6EI16_V_MF2_MF2 = 11031,
+ PseudoVSOXSEG6EI16_V_MF2_MF2_MASK = 11032,
+ PseudoVSOXSEG6EI16_V_MF2_MF4 = 11033,
+ PseudoVSOXSEG6EI16_V_MF2_MF4_MASK = 11034,
+ PseudoVSOXSEG6EI16_V_MF4_M1 = 11035,
+ PseudoVSOXSEG6EI16_V_MF4_M1_MASK = 11036,
+ PseudoVSOXSEG6EI16_V_MF4_MF2 = 11037,
+ PseudoVSOXSEG6EI16_V_MF4_MF2_MASK = 11038,
+ PseudoVSOXSEG6EI16_V_MF4_MF4 = 11039,
+ PseudoVSOXSEG6EI16_V_MF4_MF4_MASK = 11040,
+ PseudoVSOXSEG6EI16_V_MF4_MF8 = 11041,
+ PseudoVSOXSEG6EI16_V_MF4_MF8_MASK = 11042,
+ PseudoVSOXSEG6EI32_V_M1_M1 = 11043,
+ PseudoVSOXSEG6EI32_V_M1_M1_MASK = 11044,
+ PseudoVSOXSEG6EI32_V_M1_MF2 = 11045,
+ PseudoVSOXSEG6EI32_V_M1_MF2_MASK = 11046,
+ PseudoVSOXSEG6EI32_V_M1_MF4 = 11047,
+ PseudoVSOXSEG6EI32_V_M1_MF4_MASK = 11048,
+ PseudoVSOXSEG6EI32_V_M2_M1 = 11049,
+ PseudoVSOXSEG6EI32_V_M2_M1_MASK = 11050,
+ PseudoVSOXSEG6EI32_V_M2_MF2 = 11051,
+ PseudoVSOXSEG6EI32_V_M2_MF2_MASK = 11052,
+ PseudoVSOXSEG6EI32_V_M4_M1 = 11053,
+ PseudoVSOXSEG6EI32_V_M4_M1_MASK = 11054,
+ PseudoVSOXSEG6EI32_V_MF2_M1 = 11055,
+ PseudoVSOXSEG6EI32_V_MF2_M1_MASK = 11056,
+ PseudoVSOXSEG6EI32_V_MF2_MF2 = 11057,
+ PseudoVSOXSEG6EI32_V_MF2_MF2_MASK = 11058,
+ PseudoVSOXSEG6EI32_V_MF2_MF4 = 11059,
+ PseudoVSOXSEG6EI32_V_MF2_MF4_MASK = 11060,
+ PseudoVSOXSEG6EI32_V_MF2_MF8 = 11061,
+ PseudoVSOXSEG6EI32_V_MF2_MF8_MASK = 11062,
+ PseudoVSOXSEG6EI64_V_M1_M1 = 11063,
+ PseudoVSOXSEG6EI64_V_M1_M1_MASK = 11064,
+ PseudoVSOXSEG6EI64_V_M1_MF2 = 11065,
+ PseudoVSOXSEG6EI64_V_M1_MF2_MASK = 11066,
+ PseudoVSOXSEG6EI64_V_M1_MF4 = 11067,
+ PseudoVSOXSEG6EI64_V_M1_MF4_MASK = 11068,
+ PseudoVSOXSEG6EI64_V_M1_MF8 = 11069,
+ PseudoVSOXSEG6EI64_V_M1_MF8_MASK = 11070,
+ PseudoVSOXSEG6EI64_V_M2_M1 = 11071,
+ PseudoVSOXSEG6EI64_V_M2_M1_MASK = 11072,
+ PseudoVSOXSEG6EI64_V_M2_MF2 = 11073,
+ PseudoVSOXSEG6EI64_V_M2_MF2_MASK = 11074,
+ PseudoVSOXSEG6EI64_V_M2_MF4 = 11075,
+ PseudoVSOXSEG6EI64_V_M2_MF4_MASK = 11076,
+ PseudoVSOXSEG6EI64_V_M4_M1 = 11077,
+ PseudoVSOXSEG6EI64_V_M4_M1_MASK = 11078,
+ PseudoVSOXSEG6EI64_V_M4_MF2 = 11079,
+ PseudoVSOXSEG6EI64_V_M4_MF2_MASK = 11080,
+ PseudoVSOXSEG6EI64_V_M8_M1 = 11081,
+ PseudoVSOXSEG6EI64_V_M8_M1_MASK = 11082,
+ PseudoVSOXSEG6EI8_V_M1_M1 = 11083,
+ PseudoVSOXSEG6EI8_V_M1_M1_MASK = 11084,
+ PseudoVSOXSEG6EI8_V_MF2_M1 = 11085,
+ PseudoVSOXSEG6EI8_V_MF2_M1_MASK = 11086,
+ PseudoVSOXSEG6EI8_V_MF2_MF2 = 11087,
+ PseudoVSOXSEG6EI8_V_MF2_MF2_MASK = 11088,
+ PseudoVSOXSEG6EI8_V_MF4_M1 = 11089,
+ PseudoVSOXSEG6EI8_V_MF4_M1_MASK = 11090,
+ PseudoVSOXSEG6EI8_V_MF4_MF2 = 11091,
+ PseudoVSOXSEG6EI8_V_MF4_MF2_MASK = 11092,
+ PseudoVSOXSEG6EI8_V_MF4_MF4 = 11093,
+ PseudoVSOXSEG6EI8_V_MF4_MF4_MASK = 11094,
+ PseudoVSOXSEG6EI8_V_MF8_M1 = 11095,
+ PseudoVSOXSEG6EI8_V_MF8_M1_MASK = 11096,
+ PseudoVSOXSEG6EI8_V_MF8_MF2 = 11097,
+ PseudoVSOXSEG6EI8_V_MF8_MF2_MASK = 11098,
+ PseudoVSOXSEG6EI8_V_MF8_MF4 = 11099,
+ PseudoVSOXSEG6EI8_V_MF8_MF4_MASK = 11100,
+ PseudoVSOXSEG6EI8_V_MF8_MF8 = 11101,
+ PseudoVSOXSEG6EI8_V_MF8_MF8_MASK = 11102,
+ PseudoVSOXSEG7EI16_V_M1_M1 = 11103,
+ PseudoVSOXSEG7EI16_V_M1_M1_MASK = 11104,
+ PseudoVSOXSEG7EI16_V_M1_MF2 = 11105,
+ PseudoVSOXSEG7EI16_V_M1_MF2_MASK = 11106,
+ PseudoVSOXSEG7EI16_V_M2_M1 = 11107,
+ PseudoVSOXSEG7EI16_V_M2_M1_MASK = 11108,
+ PseudoVSOXSEG7EI16_V_MF2_M1 = 11109,
+ PseudoVSOXSEG7EI16_V_MF2_M1_MASK = 11110,
+ PseudoVSOXSEG7EI16_V_MF2_MF2 = 11111,
+ PseudoVSOXSEG7EI16_V_MF2_MF2_MASK = 11112,
+ PseudoVSOXSEG7EI16_V_MF2_MF4 = 11113,
+ PseudoVSOXSEG7EI16_V_MF2_MF4_MASK = 11114,
+ PseudoVSOXSEG7EI16_V_MF4_M1 = 11115,
+ PseudoVSOXSEG7EI16_V_MF4_M1_MASK = 11116,
+ PseudoVSOXSEG7EI16_V_MF4_MF2 = 11117,
+ PseudoVSOXSEG7EI16_V_MF4_MF2_MASK = 11118,
+ PseudoVSOXSEG7EI16_V_MF4_MF4 = 11119,
+ PseudoVSOXSEG7EI16_V_MF4_MF4_MASK = 11120,
+ PseudoVSOXSEG7EI16_V_MF4_MF8 = 11121,
+ PseudoVSOXSEG7EI16_V_MF4_MF8_MASK = 11122,
+ PseudoVSOXSEG7EI32_V_M1_M1 = 11123,
+ PseudoVSOXSEG7EI32_V_M1_M1_MASK = 11124,
+ PseudoVSOXSEG7EI32_V_M1_MF2 = 11125,
+ PseudoVSOXSEG7EI32_V_M1_MF2_MASK = 11126,
+ PseudoVSOXSEG7EI32_V_M1_MF4 = 11127,
+ PseudoVSOXSEG7EI32_V_M1_MF4_MASK = 11128,
+ PseudoVSOXSEG7EI32_V_M2_M1 = 11129,
+ PseudoVSOXSEG7EI32_V_M2_M1_MASK = 11130,
+ PseudoVSOXSEG7EI32_V_M2_MF2 = 11131,
+ PseudoVSOXSEG7EI32_V_M2_MF2_MASK = 11132,
+ PseudoVSOXSEG7EI32_V_M4_M1 = 11133,
+ PseudoVSOXSEG7EI32_V_M4_M1_MASK = 11134,
+ PseudoVSOXSEG7EI32_V_MF2_M1 = 11135,
+ PseudoVSOXSEG7EI32_V_MF2_M1_MASK = 11136,
+ PseudoVSOXSEG7EI32_V_MF2_MF2 = 11137,
+ PseudoVSOXSEG7EI32_V_MF2_MF2_MASK = 11138,
+ PseudoVSOXSEG7EI32_V_MF2_MF4 = 11139,
+ PseudoVSOXSEG7EI32_V_MF2_MF4_MASK = 11140,
+ PseudoVSOXSEG7EI32_V_MF2_MF8 = 11141,
+ PseudoVSOXSEG7EI32_V_MF2_MF8_MASK = 11142,
+ PseudoVSOXSEG7EI64_V_M1_M1 = 11143,
+ PseudoVSOXSEG7EI64_V_M1_M1_MASK = 11144,
+ PseudoVSOXSEG7EI64_V_M1_MF2 = 11145,
+ PseudoVSOXSEG7EI64_V_M1_MF2_MASK = 11146,
+ PseudoVSOXSEG7EI64_V_M1_MF4 = 11147,
+ PseudoVSOXSEG7EI64_V_M1_MF4_MASK = 11148,
+ PseudoVSOXSEG7EI64_V_M1_MF8 = 11149,
+ PseudoVSOXSEG7EI64_V_M1_MF8_MASK = 11150,
+ PseudoVSOXSEG7EI64_V_M2_M1 = 11151,
+ PseudoVSOXSEG7EI64_V_M2_M1_MASK = 11152,
+ PseudoVSOXSEG7EI64_V_M2_MF2 = 11153,
+ PseudoVSOXSEG7EI64_V_M2_MF2_MASK = 11154,
+ PseudoVSOXSEG7EI64_V_M2_MF4 = 11155,
+ PseudoVSOXSEG7EI64_V_M2_MF4_MASK = 11156,
+ PseudoVSOXSEG7EI64_V_M4_M1 = 11157,
+ PseudoVSOXSEG7EI64_V_M4_M1_MASK = 11158,
+ PseudoVSOXSEG7EI64_V_M4_MF2 = 11159,
+ PseudoVSOXSEG7EI64_V_M4_MF2_MASK = 11160,
+ PseudoVSOXSEG7EI64_V_M8_M1 = 11161,
+ PseudoVSOXSEG7EI64_V_M8_M1_MASK = 11162,
+ PseudoVSOXSEG7EI8_V_M1_M1 = 11163,
+ PseudoVSOXSEG7EI8_V_M1_M1_MASK = 11164,
+ PseudoVSOXSEG7EI8_V_MF2_M1 = 11165,
+ PseudoVSOXSEG7EI8_V_MF2_M1_MASK = 11166,
+ PseudoVSOXSEG7EI8_V_MF2_MF2 = 11167,
+ PseudoVSOXSEG7EI8_V_MF2_MF2_MASK = 11168,
+ PseudoVSOXSEG7EI8_V_MF4_M1 = 11169,
+ PseudoVSOXSEG7EI8_V_MF4_M1_MASK = 11170,
+ PseudoVSOXSEG7EI8_V_MF4_MF2 = 11171,
+ PseudoVSOXSEG7EI8_V_MF4_MF2_MASK = 11172,
+ PseudoVSOXSEG7EI8_V_MF4_MF4 = 11173,
+ PseudoVSOXSEG7EI8_V_MF4_MF4_MASK = 11174,
+ PseudoVSOXSEG7EI8_V_MF8_M1 = 11175,
+ PseudoVSOXSEG7EI8_V_MF8_M1_MASK = 11176,
+ PseudoVSOXSEG7EI8_V_MF8_MF2 = 11177,
+ PseudoVSOXSEG7EI8_V_MF8_MF2_MASK = 11178,
+ PseudoVSOXSEG7EI8_V_MF8_MF4 = 11179,
+ PseudoVSOXSEG7EI8_V_MF8_MF4_MASK = 11180,
+ PseudoVSOXSEG7EI8_V_MF8_MF8 = 11181,
+ PseudoVSOXSEG7EI8_V_MF8_MF8_MASK = 11182,
+ PseudoVSOXSEG8EI16_V_M1_M1 = 11183,
+ PseudoVSOXSEG8EI16_V_M1_M1_MASK = 11184,
+ PseudoVSOXSEG8EI16_V_M1_MF2 = 11185,
+ PseudoVSOXSEG8EI16_V_M1_MF2_MASK = 11186,
+ PseudoVSOXSEG8EI16_V_M2_M1 = 11187,
+ PseudoVSOXSEG8EI16_V_M2_M1_MASK = 11188,
+ PseudoVSOXSEG8EI16_V_MF2_M1 = 11189,
+ PseudoVSOXSEG8EI16_V_MF2_M1_MASK = 11190,
+ PseudoVSOXSEG8EI16_V_MF2_MF2 = 11191,
+ PseudoVSOXSEG8EI16_V_MF2_MF2_MASK = 11192,
+ PseudoVSOXSEG8EI16_V_MF2_MF4 = 11193,
+ PseudoVSOXSEG8EI16_V_MF2_MF4_MASK = 11194,
+ PseudoVSOXSEG8EI16_V_MF4_M1 = 11195,
+ PseudoVSOXSEG8EI16_V_MF4_M1_MASK = 11196,
+ PseudoVSOXSEG8EI16_V_MF4_MF2 = 11197,
+ PseudoVSOXSEG8EI16_V_MF4_MF2_MASK = 11198,
+ PseudoVSOXSEG8EI16_V_MF4_MF4 = 11199,
+ PseudoVSOXSEG8EI16_V_MF4_MF4_MASK = 11200,
+ PseudoVSOXSEG8EI16_V_MF4_MF8 = 11201,
+ PseudoVSOXSEG8EI16_V_MF4_MF8_MASK = 11202,
+ PseudoVSOXSEG8EI32_V_M1_M1 = 11203,
+ PseudoVSOXSEG8EI32_V_M1_M1_MASK = 11204,
+ PseudoVSOXSEG8EI32_V_M1_MF2 = 11205,
+ PseudoVSOXSEG8EI32_V_M1_MF2_MASK = 11206,
+ PseudoVSOXSEG8EI32_V_M1_MF4 = 11207,
+ PseudoVSOXSEG8EI32_V_M1_MF4_MASK = 11208,
+ PseudoVSOXSEG8EI32_V_M2_M1 = 11209,
+ PseudoVSOXSEG8EI32_V_M2_M1_MASK = 11210,
+ PseudoVSOXSEG8EI32_V_M2_MF2 = 11211,
+ PseudoVSOXSEG8EI32_V_M2_MF2_MASK = 11212,
+ PseudoVSOXSEG8EI32_V_M4_M1 = 11213,
+ PseudoVSOXSEG8EI32_V_M4_M1_MASK = 11214,
+ PseudoVSOXSEG8EI32_V_MF2_M1 = 11215,
+ PseudoVSOXSEG8EI32_V_MF2_M1_MASK = 11216,
+ PseudoVSOXSEG8EI32_V_MF2_MF2 = 11217,
+ PseudoVSOXSEG8EI32_V_MF2_MF2_MASK = 11218,
+ PseudoVSOXSEG8EI32_V_MF2_MF4 = 11219,
+ PseudoVSOXSEG8EI32_V_MF2_MF4_MASK = 11220,
+ PseudoVSOXSEG8EI32_V_MF2_MF8 = 11221,
+ PseudoVSOXSEG8EI32_V_MF2_MF8_MASK = 11222,
+ PseudoVSOXSEG8EI64_V_M1_M1 = 11223,
+ PseudoVSOXSEG8EI64_V_M1_M1_MASK = 11224,
+ PseudoVSOXSEG8EI64_V_M1_MF2 = 11225,
+ PseudoVSOXSEG8EI64_V_M1_MF2_MASK = 11226,
+ PseudoVSOXSEG8EI64_V_M1_MF4 = 11227,
+ PseudoVSOXSEG8EI64_V_M1_MF4_MASK = 11228,
+ PseudoVSOXSEG8EI64_V_M1_MF8 = 11229,
+ PseudoVSOXSEG8EI64_V_M1_MF8_MASK = 11230,
+ PseudoVSOXSEG8EI64_V_M2_M1 = 11231,
+ PseudoVSOXSEG8EI64_V_M2_M1_MASK = 11232,
+ PseudoVSOXSEG8EI64_V_M2_MF2 = 11233,
+ PseudoVSOXSEG8EI64_V_M2_MF2_MASK = 11234,
+ PseudoVSOXSEG8EI64_V_M2_MF4 = 11235,
+ PseudoVSOXSEG8EI64_V_M2_MF4_MASK = 11236,
+ PseudoVSOXSEG8EI64_V_M4_M1 = 11237,
+ PseudoVSOXSEG8EI64_V_M4_M1_MASK = 11238,
+ PseudoVSOXSEG8EI64_V_M4_MF2 = 11239,
+ PseudoVSOXSEG8EI64_V_M4_MF2_MASK = 11240,
+ PseudoVSOXSEG8EI64_V_M8_M1 = 11241,
+ PseudoVSOXSEG8EI64_V_M8_M1_MASK = 11242,
+ PseudoVSOXSEG8EI8_V_M1_M1 = 11243,
+ PseudoVSOXSEG8EI8_V_M1_M1_MASK = 11244,
+ PseudoVSOXSEG8EI8_V_MF2_M1 = 11245,
+ PseudoVSOXSEG8EI8_V_MF2_M1_MASK = 11246,
+ PseudoVSOXSEG8EI8_V_MF2_MF2 = 11247,
+ PseudoVSOXSEG8EI8_V_MF2_MF2_MASK = 11248,
+ PseudoVSOXSEG8EI8_V_MF4_M1 = 11249,
+ PseudoVSOXSEG8EI8_V_MF4_M1_MASK = 11250,
+ PseudoVSOXSEG8EI8_V_MF4_MF2 = 11251,
+ PseudoVSOXSEG8EI8_V_MF4_MF2_MASK = 11252,
+ PseudoVSOXSEG8EI8_V_MF4_MF4 = 11253,
+ PseudoVSOXSEG8EI8_V_MF4_MF4_MASK = 11254,
+ PseudoVSOXSEG8EI8_V_MF8_M1 = 11255,
+ PseudoVSOXSEG8EI8_V_MF8_M1_MASK = 11256,
+ PseudoVSOXSEG8EI8_V_MF8_MF2 = 11257,
+ PseudoVSOXSEG8EI8_V_MF8_MF2_MASK = 11258,
+ PseudoVSOXSEG8EI8_V_MF8_MF4 = 11259,
+ PseudoVSOXSEG8EI8_V_MF8_MF4_MASK = 11260,
+ PseudoVSOXSEG8EI8_V_MF8_MF8 = 11261,
+ PseudoVSOXSEG8EI8_V_MF8_MF8_MASK = 11262,
+ PseudoVSPILL2_M1 = 11263,
+ PseudoVSPILL2_M2 = 11264,
+ PseudoVSPILL2_M4 = 11265,
+ PseudoVSPILL2_MF2 = 11266,
+ PseudoVSPILL2_MF4 = 11267,
+ PseudoVSPILL2_MF8 = 11268,
+ PseudoVSPILL3_M1 = 11269,
+ PseudoVSPILL3_M2 = 11270,
+ PseudoVSPILL3_MF2 = 11271,
+ PseudoVSPILL3_MF4 = 11272,
+ PseudoVSPILL3_MF8 = 11273,
+ PseudoVSPILL4_M1 = 11274,
+ PseudoVSPILL4_M2 = 11275,
+ PseudoVSPILL4_MF2 = 11276,
+ PseudoVSPILL4_MF4 = 11277,
+ PseudoVSPILL4_MF8 = 11278,
+ PseudoVSPILL5_M1 = 11279,
+ PseudoVSPILL5_MF2 = 11280,
+ PseudoVSPILL5_MF4 = 11281,
+ PseudoVSPILL5_MF8 = 11282,
+ PseudoVSPILL6_M1 = 11283,
+ PseudoVSPILL6_MF2 = 11284,
+ PseudoVSPILL6_MF4 = 11285,
+ PseudoVSPILL6_MF8 = 11286,
+ PseudoVSPILL7_M1 = 11287,
+ PseudoVSPILL7_MF2 = 11288,
+ PseudoVSPILL7_MF4 = 11289,
+ PseudoVSPILL7_MF8 = 11290,
+ PseudoVSPILL8_M1 = 11291,
+ PseudoVSPILL8_MF2 = 11292,
+ PseudoVSPILL8_MF4 = 11293,
+ PseudoVSPILL8_MF8 = 11294,
+ PseudoVSRA_VI_M1 = 11295,
+ PseudoVSRA_VI_M1_MASK = 11296,
+ PseudoVSRA_VI_M2 = 11297,
+ PseudoVSRA_VI_M2_MASK = 11298,
+ PseudoVSRA_VI_M4 = 11299,
+ PseudoVSRA_VI_M4_MASK = 11300,
+ PseudoVSRA_VI_M8 = 11301,
+ PseudoVSRA_VI_M8_MASK = 11302,
+ PseudoVSRA_VI_MF2 = 11303,
+ PseudoVSRA_VI_MF2_MASK = 11304,
+ PseudoVSRA_VI_MF4 = 11305,
+ PseudoVSRA_VI_MF4_MASK = 11306,
+ PseudoVSRA_VI_MF8 = 11307,
+ PseudoVSRA_VI_MF8_MASK = 11308,
+ PseudoVSRA_VV_M1 = 11309,
+ PseudoVSRA_VV_M1_MASK = 11310,
+ PseudoVSRA_VV_M2 = 11311,
+ PseudoVSRA_VV_M2_MASK = 11312,
+ PseudoVSRA_VV_M4 = 11313,
+ PseudoVSRA_VV_M4_MASK = 11314,
+ PseudoVSRA_VV_M8 = 11315,
+ PseudoVSRA_VV_M8_MASK = 11316,
+ PseudoVSRA_VV_MF2 = 11317,
+ PseudoVSRA_VV_MF2_MASK = 11318,
+ PseudoVSRA_VV_MF4 = 11319,
+ PseudoVSRA_VV_MF4_MASK = 11320,
+ PseudoVSRA_VV_MF8 = 11321,
+ PseudoVSRA_VV_MF8_MASK = 11322,
+ PseudoVSRA_VX_M1 = 11323,
+ PseudoVSRA_VX_M1_MASK = 11324,
+ PseudoVSRA_VX_M2 = 11325,
+ PseudoVSRA_VX_M2_MASK = 11326,
+ PseudoVSRA_VX_M4 = 11327,
+ PseudoVSRA_VX_M4_MASK = 11328,
+ PseudoVSRA_VX_M8 = 11329,
+ PseudoVSRA_VX_M8_MASK = 11330,
+ PseudoVSRA_VX_MF2 = 11331,
+ PseudoVSRA_VX_MF2_MASK = 11332,
+ PseudoVSRA_VX_MF4 = 11333,
+ PseudoVSRA_VX_MF4_MASK = 11334,
+ PseudoVSRA_VX_MF8 = 11335,
+ PseudoVSRA_VX_MF8_MASK = 11336,
+ PseudoVSRL_VI_M1 = 11337,
+ PseudoVSRL_VI_M1_MASK = 11338,
+ PseudoVSRL_VI_M2 = 11339,
+ PseudoVSRL_VI_M2_MASK = 11340,
+ PseudoVSRL_VI_M4 = 11341,
+ PseudoVSRL_VI_M4_MASK = 11342,
+ PseudoVSRL_VI_M8 = 11343,
+ PseudoVSRL_VI_M8_MASK = 11344,
+ PseudoVSRL_VI_MF2 = 11345,
+ PseudoVSRL_VI_MF2_MASK = 11346,
+ PseudoVSRL_VI_MF4 = 11347,
+ PseudoVSRL_VI_MF4_MASK = 11348,
+ PseudoVSRL_VI_MF8 = 11349,
+ PseudoVSRL_VI_MF8_MASK = 11350,
+ PseudoVSRL_VV_M1 = 11351,
+ PseudoVSRL_VV_M1_MASK = 11352,
+ PseudoVSRL_VV_M2 = 11353,
+ PseudoVSRL_VV_M2_MASK = 11354,
+ PseudoVSRL_VV_M4 = 11355,
+ PseudoVSRL_VV_M4_MASK = 11356,
+ PseudoVSRL_VV_M8 = 11357,
+ PseudoVSRL_VV_M8_MASK = 11358,
+ PseudoVSRL_VV_MF2 = 11359,
+ PseudoVSRL_VV_MF2_MASK = 11360,
+ PseudoVSRL_VV_MF4 = 11361,
+ PseudoVSRL_VV_MF4_MASK = 11362,
+ PseudoVSRL_VV_MF8 = 11363,
+ PseudoVSRL_VV_MF8_MASK = 11364,
+ PseudoVSRL_VX_M1 = 11365,
+ PseudoVSRL_VX_M1_MASK = 11366,
+ PseudoVSRL_VX_M2 = 11367,
+ PseudoVSRL_VX_M2_MASK = 11368,
+ PseudoVSRL_VX_M4 = 11369,
+ PseudoVSRL_VX_M4_MASK = 11370,
+ PseudoVSRL_VX_M8 = 11371,
+ PseudoVSRL_VX_M8_MASK = 11372,
+ PseudoVSRL_VX_MF2 = 11373,
+ PseudoVSRL_VX_MF2_MASK = 11374,
+ PseudoVSRL_VX_MF4 = 11375,
+ PseudoVSRL_VX_MF4_MASK = 11376,
+ PseudoVSRL_VX_MF8 = 11377,
+ PseudoVSRL_VX_MF8_MASK = 11378,
+ PseudoVSSE16_V_M1 = 11379,
+ PseudoVSSE16_V_M1_MASK = 11380,
+ PseudoVSSE16_V_M2 = 11381,
+ PseudoVSSE16_V_M2_MASK = 11382,
+ PseudoVSSE16_V_M4 = 11383,
+ PseudoVSSE16_V_M4_MASK = 11384,
+ PseudoVSSE16_V_M8 = 11385,
+ PseudoVSSE16_V_M8_MASK = 11386,
+ PseudoVSSE16_V_MF2 = 11387,
+ PseudoVSSE16_V_MF2_MASK = 11388,
+ PseudoVSSE16_V_MF4 = 11389,
+ PseudoVSSE16_V_MF4_MASK = 11390,
+ PseudoVSSE32_V_M1 = 11391,
+ PseudoVSSE32_V_M1_MASK = 11392,
+ PseudoVSSE32_V_M2 = 11393,
+ PseudoVSSE32_V_M2_MASK = 11394,
+ PseudoVSSE32_V_M4 = 11395,
+ PseudoVSSE32_V_M4_MASK = 11396,
+ PseudoVSSE32_V_M8 = 11397,
+ PseudoVSSE32_V_M8_MASK = 11398,
+ PseudoVSSE32_V_MF2 = 11399,
+ PseudoVSSE32_V_MF2_MASK = 11400,
+ PseudoVSSE64_V_M1 = 11401,
+ PseudoVSSE64_V_M1_MASK = 11402,
+ PseudoVSSE64_V_M2 = 11403,
+ PseudoVSSE64_V_M2_MASK = 11404,
+ PseudoVSSE64_V_M4 = 11405,
+ PseudoVSSE64_V_M4_MASK = 11406,
+ PseudoVSSE64_V_M8 = 11407,
+ PseudoVSSE64_V_M8_MASK = 11408,
+ PseudoVSSE8_V_M1 = 11409,
+ PseudoVSSE8_V_M1_MASK = 11410,
+ PseudoVSSE8_V_M2 = 11411,
+ PseudoVSSE8_V_M2_MASK = 11412,
+ PseudoVSSE8_V_M4 = 11413,
+ PseudoVSSE8_V_M4_MASK = 11414,
+ PseudoVSSE8_V_M8 = 11415,
+ PseudoVSSE8_V_M8_MASK = 11416,
+ PseudoVSSE8_V_MF2 = 11417,
+ PseudoVSSE8_V_MF2_MASK = 11418,
+ PseudoVSSE8_V_MF4 = 11419,
+ PseudoVSSE8_V_MF4_MASK = 11420,
+ PseudoVSSE8_V_MF8 = 11421,
+ PseudoVSSE8_V_MF8_MASK = 11422,
+ PseudoVSSEG2E16_V_M1 = 11423,
+ PseudoVSSEG2E16_V_M1_MASK = 11424,
+ PseudoVSSEG2E16_V_M2 = 11425,
+ PseudoVSSEG2E16_V_M2_MASK = 11426,
+ PseudoVSSEG2E16_V_M4 = 11427,
+ PseudoVSSEG2E16_V_M4_MASK = 11428,
+ PseudoVSSEG2E16_V_MF2 = 11429,
+ PseudoVSSEG2E16_V_MF2_MASK = 11430,
+ PseudoVSSEG2E16_V_MF4 = 11431,
+ PseudoVSSEG2E16_V_MF4_MASK = 11432,
+ PseudoVSSEG2E32_V_M1 = 11433,
+ PseudoVSSEG2E32_V_M1_MASK = 11434,
+ PseudoVSSEG2E32_V_M2 = 11435,
+ PseudoVSSEG2E32_V_M2_MASK = 11436,
+ PseudoVSSEG2E32_V_M4 = 11437,
+ PseudoVSSEG2E32_V_M4_MASK = 11438,
+ PseudoVSSEG2E32_V_MF2 = 11439,
+ PseudoVSSEG2E32_V_MF2_MASK = 11440,
+ PseudoVSSEG2E64_V_M1 = 11441,
+ PseudoVSSEG2E64_V_M1_MASK = 11442,
+ PseudoVSSEG2E64_V_M2 = 11443,
+ PseudoVSSEG2E64_V_M2_MASK = 11444,
+ PseudoVSSEG2E64_V_M4 = 11445,
+ PseudoVSSEG2E64_V_M4_MASK = 11446,
+ PseudoVSSEG2E8_V_M1 = 11447,
+ PseudoVSSEG2E8_V_M1_MASK = 11448,
+ PseudoVSSEG2E8_V_M2 = 11449,
+ PseudoVSSEG2E8_V_M2_MASK = 11450,
+ PseudoVSSEG2E8_V_M4 = 11451,
+ PseudoVSSEG2E8_V_M4_MASK = 11452,
+ PseudoVSSEG2E8_V_MF2 = 11453,
+ PseudoVSSEG2E8_V_MF2_MASK = 11454,
+ PseudoVSSEG2E8_V_MF4 = 11455,
+ PseudoVSSEG2E8_V_MF4_MASK = 11456,
+ PseudoVSSEG2E8_V_MF8 = 11457,
+ PseudoVSSEG2E8_V_MF8_MASK = 11458,
+ PseudoVSSEG3E16_V_M1 = 11459,
+ PseudoVSSEG3E16_V_M1_MASK = 11460,
+ PseudoVSSEG3E16_V_M2 = 11461,
+ PseudoVSSEG3E16_V_M2_MASK = 11462,
+ PseudoVSSEG3E16_V_MF2 = 11463,
+ PseudoVSSEG3E16_V_MF2_MASK = 11464,
+ PseudoVSSEG3E16_V_MF4 = 11465,
+ PseudoVSSEG3E16_V_MF4_MASK = 11466,
+ PseudoVSSEG3E32_V_M1 = 11467,
+ PseudoVSSEG3E32_V_M1_MASK = 11468,
+ PseudoVSSEG3E32_V_M2 = 11469,
+ PseudoVSSEG3E32_V_M2_MASK = 11470,
+ PseudoVSSEG3E32_V_MF2 = 11471,
+ PseudoVSSEG3E32_V_MF2_MASK = 11472,
+ PseudoVSSEG3E64_V_M1 = 11473,
+ PseudoVSSEG3E64_V_M1_MASK = 11474,
+ PseudoVSSEG3E64_V_M2 = 11475,
+ PseudoVSSEG3E64_V_M2_MASK = 11476,
+ PseudoVSSEG3E8_V_M1 = 11477,
+ PseudoVSSEG3E8_V_M1_MASK = 11478,
+ PseudoVSSEG3E8_V_M2 = 11479,
+ PseudoVSSEG3E8_V_M2_MASK = 11480,
+ PseudoVSSEG3E8_V_MF2 = 11481,
+ PseudoVSSEG3E8_V_MF2_MASK = 11482,
+ PseudoVSSEG3E8_V_MF4 = 11483,
+ PseudoVSSEG3E8_V_MF4_MASK = 11484,
+ PseudoVSSEG3E8_V_MF8 = 11485,
+ PseudoVSSEG3E8_V_MF8_MASK = 11486,
+ PseudoVSSEG4E16_V_M1 = 11487,
+ PseudoVSSEG4E16_V_M1_MASK = 11488,
+ PseudoVSSEG4E16_V_M2 = 11489,
+ PseudoVSSEG4E16_V_M2_MASK = 11490,
+ PseudoVSSEG4E16_V_MF2 = 11491,
+ PseudoVSSEG4E16_V_MF2_MASK = 11492,
+ PseudoVSSEG4E16_V_MF4 = 11493,
+ PseudoVSSEG4E16_V_MF4_MASK = 11494,
+ PseudoVSSEG4E32_V_M1 = 11495,
+ PseudoVSSEG4E32_V_M1_MASK = 11496,
+ PseudoVSSEG4E32_V_M2 = 11497,
+ PseudoVSSEG4E32_V_M2_MASK = 11498,
+ PseudoVSSEG4E32_V_MF2 = 11499,
+ PseudoVSSEG4E32_V_MF2_MASK = 11500,
+ PseudoVSSEG4E64_V_M1 = 11501,
+ PseudoVSSEG4E64_V_M1_MASK = 11502,
+ PseudoVSSEG4E64_V_M2 = 11503,
+ PseudoVSSEG4E64_V_M2_MASK = 11504,
+ PseudoVSSEG4E8_V_M1 = 11505,
+ PseudoVSSEG4E8_V_M1_MASK = 11506,
+ PseudoVSSEG4E8_V_M2 = 11507,
+ PseudoVSSEG4E8_V_M2_MASK = 11508,
+ PseudoVSSEG4E8_V_MF2 = 11509,
+ PseudoVSSEG4E8_V_MF2_MASK = 11510,
+ PseudoVSSEG4E8_V_MF4 = 11511,
+ PseudoVSSEG4E8_V_MF4_MASK = 11512,
+ PseudoVSSEG4E8_V_MF8 = 11513,
+ PseudoVSSEG4E8_V_MF8_MASK = 11514,
+ PseudoVSSEG5E16_V_M1 = 11515,
+ PseudoVSSEG5E16_V_M1_MASK = 11516,
+ PseudoVSSEG5E16_V_MF2 = 11517,
+ PseudoVSSEG5E16_V_MF2_MASK = 11518,
+ PseudoVSSEG5E16_V_MF4 = 11519,
+ PseudoVSSEG5E16_V_MF4_MASK = 11520,
+ PseudoVSSEG5E32_V_M1 = 11521,
+ PseudoVSSEG5E32_V_M1_MASK = 11522,
+ PseudoVSSEG5E32_V_MF2 = 11523,
+ PseudoVSSEG5E32_V_MF2_MASK = 11524,
+ PseudoVSSEG5E64_V_M1 = 11525,
+ PseudoVSSEG5E64_V_M1_MASK = 11526,
+ PseudoVSSEG5E8_V_M1 = 11527,
+ PseudoVSSEG5E8_V_M1_MASK = 11528,
+ PseudoVSSEG5E8_V_MF2 = 11529,
+ PseudoVSSEG5E8_V_MF2_MASK = 11530,
+ PseudoVSSEG5E8_V_MF4 = 11531,
+ PseudoVSSEG5E8_V_MF4_MASK = 11532,
+ PseudoVSSEG5E8_V_MF8 = 11533,
+ PseudoVSSEG5E8_V_MF8_MASK = 11534,
+ PseudoVSSEG6E16_V_M1 = 11535,
+ PseudoVSSEG6E16_V_M1_MASK = 11536,
+ PseudoVSSEG6E16_V_MF2 = 11537,
+ PseudoVSSEG6E16_V_MF2_MASK = 11538,
+ PseudoVSSEG6E16_V_MF4 = 11539,
+ PseudoVSSEG6E16_V_MF4_MASK = 11540,
+ PseudoVSSEG6E32_V_M1 = 11541,
+ PseudoVSSEG6E32_V_M1_MASK = 11542,
+ PseudoVSSEG6E32_V_MF2 = 11543,
+ PseudoVSSEG6E32_V_MF2_MASK = 11544,
+ PseudoVSSEG6E64_V_M1 = 11545,
+ PseudoVSSEG6E64_V_M1_MASK = 11546,
+ PseudoVSSEG6E8_V_M1 = 11547,
+ PseudoVSSEG6E8_V_M1_MASK = 11548,
+ PseudoVSSEG6E8_V_MF2 = 11549,
+ PseudoVSSEG6E8_V_MF2_MASK = 11550,
+ PseudoVSSEG6E8_V_MF4 = 11551,
+ PseudoVSSEG6E8_V_MF4_MASK = 11552,
+ PseudoVSSEG6E8_V_MF8 = 11553,
+ PseudoVSSEG6E8_V_MF8_MASK = 11554,
+ PseudoVSSEG7E16_V_M1 = 11555,
+ PseudoVSSEG7E16_V_M1_MASK = 11556,
+ PseudoVSSEG7E16_V_MF2 = 11557,
+ PseudoVSSEG7E16_V_MF2_MASK = 11558,
+ PseudoVSSEG7E16_V_MF4 = 11559,
+ PseudoVSSEG7E16_V_MF4_MASK = 11560,
+ PseudoVSSEG7E32_V_M1 = 11561,
+ PseudoVSSEG7E32_V_M1_MASK = 11562,
+ PseudoVSSEG7E32_V_MF2 = 11563,
+ PseudoVSSEG7E32_V_MF2_MASK = 11564,
+ PseudoVSSEG7E64_V_M1 = 11565,
+ PseudoVSSEG7E64_V_M1_MASK = 11566,
+ PseudoVSSEG7E8_V_M1 = 11567,
+ PseudoVSSEG7E8_V_M1_MASK = 11568,
+ PseudoVSSEG7E8_V_MF2 = 11569,
+ PseudoVSSEG7E8_V_MF2_MASK = 11570,
+ PseudoVSSEG7E8_V_MF4 = 11571,
+ PseudoVSSEG7E8_V_MF4_MASK = 11572,
+ PseudoVSSEG7E8_V_MF8 = 11573,
+ PseudoVSSEG7E8_V_MF8_MASK = 11574,
+ PseudoVSSEG8E16_V_M1 = 11575,
+ PseudoVSSEG8E16_V_M1_MASK = 11576,
+ PseudoVSSEG8E16_V_MF2 = 11577,
+ PseudoVSSEG8E16_V_MF2_MASK = 11578,
+ PseudoVSSEG8E16_V_MF4 = 11579,
+ PseudoVSSEG8E16_V_MF4_MASK = 11580,
+ PseudoVSSEG8E32_V_M1 = 11581,
+ PseudoVSSEG8E32_V_M1_MASK = 11582,
+ PseudoVSSEG8E32_V_MF2 = 11583,
+ PseudoVSSEG8E32_V_MF2_MASK = 11584,
+ PseudoVSSEG8E64_V_M1 = 11585,
+ PseudoVSSEG8E64_V_M1_MASK = 11586,
+ PseudoVSSEG8E8_V_M1 = 11587,
+ PseudoVSSEG8E8_V_M1_MASK = 11588,
+ PseudoVSSEG8E8_V_MF2 = 11589,
+ PseudoVSSEG8E8_V_MF2_MASK = 11590,
+ PseudoVSSEG8E8_V_MF4 = 11591,
+ PseudoVSSEG8E8_V_MF4_MASK = 11592,
+ PseudoVSSEG8E8_V_MF8 = 11593,
+ PseudoVSSEG8E8_V_MF8_MASK = 11594,
+ PseudoVSSRA_VI_M1 = 11595,
+ PseudoVSSRA_VI_M1_MASK = 11596,
+ PseudoVSSRA_VI_M2 = 11597,
+ PseudoVSSRA_VI_M2_MASK = 11598,
+ PseudoVSSRA_VI_M4 = 11599,
+ PseudoVSSRA_VI_M4_MASK = 11600,
+ PseudoVSSRA_VI_M8 = 11601,
+ PseudoVSSRA_VI_M8_MASK = 11602,
+ PseudoVSSRA_VI_MF2 = 11603,
+ PseudoVSSRA_VI_MF2_MASK = 11604,
+ PseudoVSSRA_VI_MF4 = 11605,
+ PseudoVSSRA_VI_MF4_MASK = 11606,
+ PseudoVSSRA_VI_MF8 = 11607,
+ PseudoVSSRA_VI_MF8_MASK = 11608,
+ PseudoVSSRA_VV_M1 = 11609,
+ PseudoVSSRA_VV_M1_MASK = 11610,
+ PseudoVSSRA_VV_M2 = 11611,
+ PseudoVSSRA_VV_M2_MASK = 11612,
+ PseudoVSSRA_VV_M4 = 11613,
+ PseudoVSSRA_VV_M4_MASK = 11614,
+ PseudoVSSRA_VV_M8 = 11615,
+ PseudoVSSRA_VV_M8_MASK = 11616,
+ PseudoVSSRA_VV_MF2 = 11617,
+ PseudoVSSRA_VV_MF2_MASK = 11618,
+ PseudoVSSRA_VV_MF4 = 11619,
+ PseudoVSSRA_VV_MF4_MASK = 11620,
+ PseudoVSSRA_VV_MF8 = 11621,
+ PseudoVSSRA_VV_MF8_MASK = 11622,
+ PseudoVSSRA_VX_M1 = 11623,
+ PseudoVSSRA_VX_M1_MASK = 11624,
+ PseudoVSSRA_VX_M2 = 11625,
+ PseudoVSSRA_VX_M2_MASK = 11626,
+ PseudoVSSRA_VX_M4 = 11627,
+ PseudoVSSRA_VX_M4_MASK = 11628,
+ PseudoVSSRA_VX_M8 = 11629,
+ PseudoVSSRA_VX_M8_MASK = 11630,
+ PseudoVSSRA_VX_MF2 = 11631,
+ PseudoVSSRA_VX_MF2_MASK = 11632,
+ PseudoVSSRA_VX_MF4 = 11633,
+ PseudoVSSRA_VX_MF4_MASK = 11634,
+ PseudoVSSRA_VX_MF8 = 11635,
+ PseudoVSSRA_VX_MF8_MASK = 11636,
+ PseudoVSSRL_VI_M1 = 11637,
+ PseudoVSSRL_VI_M1_MASK = 11638,
+ PseudoVSSRL_VI_M2 = 11639,
+ PseudoVSSRL_VI_M2_MASK = 11640,
+ PseudoVSSRL_VI_M4 = 11641,
+ PseudoVSSRL_VI_M4_MASK = 11642,
+ PseudoVSSRL_VI_M8 = 11643,
+ PseudoVSSRL_VI_M8_MASK = 11644,
+ PseudoVSSRL_VI_MF2 = 11645,
+ PseudoVSSRL_VI_MF2_MASK = 11646,
+ PseudoVSSRL_VI_MF4 = 11647,
+ PseudoVSSRL_VI_MF4_MASK = 11648,
+ PseudoVSSRL_VI_MF8 = 11649,
+ PseudoVSSRL_VI_MF8_MASK = 11650,
+ PseudoVSSRL_VV_M1 = 11651,
+ PseudoVSSRL_VV_M1_MASK = 11652,
+ PseudoVSSRL_VV_M2 = 11653,
+ PseudoVSSRL_VV_M2_MASK = 11654,
+ PseudoVSSRL_VV_M4 = 11655,
+ PseudoVSSRL_VV_M4_MASK = 11656,
+ PseudoVSSRL_VV_M8 = 11657,
+ PseudoVSSRL_VV_M8_MASK = 11658,
+ PseudoVSSRL_VV_MF2 = 11659,
+ PseudoVSSRL_VV_MF2_MASK = 11660,
+ PseudoVSSRL_VV_MF4 = 11661,
+ PseudoVSSRL_VV_MF4_MASK = 11662,
+ PseudoVSSRL_VV_MF8 = 11663,
+ PseudoVSSRL_VV_MF8_MASK = 11664,
+ PseudoVSSRL_VX_M1 = 11665,
+ PseudoVSSRL_VX_M1_MASK = 11666,
+ PseudoVSSRL_VX_M2 = 11667,
+ PseudoVSSRL_VX_M2_MASK = 11668,
+ PseudoVSSRL_VX_M4 = 11669,
+ PseudoVSSRL_VX_M4_MASK = 11670,
+ PseudoVSSRL_VX_M8 = 11671,
+ PseudoVSSRL_VX_M8_MASK = 11672,
+ PseudoVSSRL_VX_MF2 = 11673,
+ PseudoVSSRL_VX_MF2_MASK = 11674,
+ PseudoVSSRL_VX_MF4 = 11675,
+ PseudoVSSRL_VX_MF4_MASK = 11676,
+ PseudoVSSRL_VX_MF8 = 11677,
+ PseudoVSSRL_VX_MF8_MASK = 11678,
+ PseudoVSSSEG2E16_V_M1 = 11679,
+ PseudoVSSSEG2E16_V_M1_MASK = 11680,
+ PseudoVSSSEG2E16_V_M2 = 11681,
+ PseudoVSSSEG2E16_V_M2_MASK = 11682,
+ PseudoVSSSEG2E16_V_M4 = 11683,
+ PseudoVSSSEG2E16_V_M4_MASK = 11684,
+ PseudoVSSSEG2E16_V_MF2 = 11685,
+ PseudoVSSSEG2E16_V_MF2_MASK = 11686,
+ PseudoVSSSEG2E16_V_MF4 = 11687,
+ PseudoVSSSEG2E16_V_MF4_MASK = 11688,
+ PseudoVSSSEG2E32_V_M1 = 11689,
+ PseudoVSSSEG2E32_V_M1_MASK = 11690,
+ PseudoVSSSEG2E32_V_M2 = 11691,
+ PseudoVSSSEG2E32_V_M2_MASK = 11692,
+ PseudoVSSSEG2E32_V_M4 = 11693,
+ PseudoVSSSEG2E32_V_M4_MASK = 11694,
+ PseudoVSSSEG2E32_V_MF2 = 11695,
+ PseudoVSSSEG2E32_V_MF2_MASK = 11696,
+ PseudoVSSSEG2E64_V_M1 = 11697,
+ PseudoVSSSEG2E64_V_M1_MASK = 11698,
+ PseudoVSSSEG2E64_V_M2 = 11699,
+ PseudoVSSSEG2E64_V_M2_MASK = 11700,
+ PseudoVSSSEG2E64_V_M4 = 11701,
+ PseudoVSSSEG2E64_V_M4_MASK = 11702,
+ PseudoVSSSEG2E8_V_M1 = 11703,
+ PseudoVSSSEG2E8_V_M1_MASK = 11704,
+ PseudoVSSSEG2E8_V_M2 = 11705,
+ PseudoVSSSEG2E8_V_M2_MASK = 11706,
+ PseudoVSSSEG2E8_V_M4 = 11707,
+ PseudoVSSSEG2E8_V_M4_MASK = 11708,
+ PseudoVSSSEG2E8_V_MF2 = 11709,
+ PseudoVSSSEG2E8_V_MF2_MASK = 11710,
+ PseudoVSSSEG2E8_V_MF4 = 11711,
+ PseudoVSSSEG2E8_V_MF4_MASK = 11712,
+ PseudoVSSSEG2E8_V_MF8 = 11713,
+ PseudoVSSSEG2E8_V_MF8_MASK = 11714,
+ PseudoVSSSEG3E16_V_M1 = 11715,
+ PseudoVSSSEG3E16_V_M1_MASK = 11716,
+ PseudoVSSSEG3E16_V_M2 = 11717,
+ PseudoVSSSEG3E16_V_M2_MASK = 11718,
+ PseudoVSSSEG3E16_V_MF2 = 11719,
+ PseudoVSSSEG3E16_V_MF2_MASK = 11720,
+ PseudoVSSSEG3E16_V_MF4 = 11721,
+ PseudoVSSSEG3E16_V_MF4_MASK = 11722,
+ PseudoVSSSEG3E32_V_M1 = 11723,
+ PseudoVSSSEG3E32_V_M1_MASK = 11724,
+ PseudoVSSSEG3E32_V_M2 = 11725,
+ PseudoVSSSEG3E32_V_M2_MASK = 11726,
+ PseudoVSSSEG3E32_V_MF2 = 11727,
+ PseudoVSSSEG3E32_V_MF2_MASK = 11728,
+ PseudoVSSSEG3E64_V_M1 = 11729,
+ PseudoVSSSEG3E64_V_M1_MASK = 11730,
+ PseudoVSSSEG3E64_V_M2 = 11731,
+ PseudoVSSSEG3E64_V_M2_MASK = 11732,
+ PseudoVSSSEG3E8_V_M1 = 11733,
+ PseudoVSSSEG3E8_V_M1_MASK = 11734,
+ PseudoVSSSEG3E8_V_M2 = 11735,
+ PseudoVSSSEG3E8_V_M2_MASK = 11736,
+ PseudoVSSSEG3E8_V_MF2 = 11737,
+ PseudoVSSSEG3E8_V_MF2_MASK = 11738,
+ PseudoVSSSEG3E8_V_MF4 = 11739,
+ PseudoVSSSEG3E8_V_MF4_MASK = 11740,
+ PseudoVSSSEG3E8_V_MF8 = 11741,
+ PseudoVSSSEG3E8_V_MF8_MASK = 11742,
+ PseudoVSSSEG4E16_V_M1 = 11743,
+ PseudoVSSSEG4E16_V_M1_MASK = 11744,
+ PseudoVSSSEG4E16_V_M2 = 11745,
+ PseudoVSSSEG4E16_V_M2_MASK = 11746,
+ PseudoVSSSEG4E16_V_MF2 = 11747,
+ PseudoVSSSEG4E16_V_MF2_MASK = 11748,
+ PseudoVSSSEG4E16_V_MF4 = 11749,
+ PseudoVSSSEG4E16_V_MF4_MASK = 11750,
+ PseudoVSSSEG4E32_V_M1 = 11751,
+ PseudoVSSSEG4E32_V_M1_MASK = 11752,
+ PseudoVSSSEG4E32_V_M2 = 11753,
+ PseudoVSSSEG4E32_V_M2_MASK = 11754,
+ PseudoVSSSEG4E32_V_MF2 = 11755,
+ PseudoVSSSEG4E32_V_MF2_MASK = 11756,
+ PseudoVSSSEG4E64_V_M1 = 11757,
+ PseudoVSSSEG4E64_V_M1_MASK = 11758,
+ PseudoVSSSEG4E64_V_M2 = 11759,
+ PseudoVSSSEG4E64_V_M2_MASK = 11760,
+ PseudoVSSSEG4E8_V_M1 = 11761,
+ PseudoVSSSEG4E8_V_M1_MASK = 11762,
+ PseudoVSSSEG4E8_V_M2 = 11763,
+ PseudoVSSSEG4E8_V_M2_MASK = 11764,
+ PseudoVSSSEG4E8_V_MF2 = 11765,
+ PseudoVSSSEG4E8_V_MF2_MASK = 11766,
+ PseudoVSSSEG4E8_V_MF4 = 11767,
+ PseudoVSSSEG4E8_V_MF4_MASK = 11768,
+ PseudoVSSSEG4E8_V_MF8 = 11769,
+ PseudoVSSSEG4E8_V_MF8_MASK = 11770,
+ PseudoVSSSEG5E16_V_M1 = 11771,
+ PseudoVSSSEG5E16_V_M1_MASK = 11772,
+ PseudoVSSSEG5E16_V_MF2 = 11773,
+ PseudoVSSSEG5E16_V_MF2_MASK = 11774,
+ PseudoVSSSEG5E16_V_MF4 = 11775,
+ PseudoVSSSEG5E16_V_MF4_MASK = 11776,
+ PseudoVSSSEG5E32_V_M1 = 11777,
+ PseudoVSSSEG5E32_V_M1_MASK = 11778,
+ PseudoVSSSEG5E32_V_MF2 = 11779,
+ PseudoVSSSEG5E32_V_MF2_MASK = 11780,
+ PseudoVSSSEG5E64_V_M1 = 11781,
+ PseudoVSSSEG5E64_V_M1_MASK = 11782,
+ PseudoVSSSEG5E8_V_M1 = 11783,
+ PseudoVSSSEG5E8_V_M1_MASK = 11784,
+ PseudoVSSSEG5E8_V_MF2 = 11785,
+ PseudoVSSSEG5E8_V_MF2_MASK = 11786,
+ PseudoVSSSEG5E8_V_MF4 = 11787,
+ PseudoVSSSEG5E8_V_MF4_MASK = 11788,
+ PseudoVSSSEG5E8_V_MF8 = 11789,
+ PseudoVSSSEG5E8_V_MF8_MASK = 11790,
+ PseudoVSSSEG6E16_V_M1 = 11791,
+ PseudoVSSSEG6E16_V_M1_MASK = 11792,
+ PseudoVSSSEG6E16_V_MF2 = 11793,
+ PseudoVSSSEG6E16_V_MF2_MASK = 11794,
+ PseudoVSSSEG6E16_V_MF4 = 11795,
+ PseudoVSSSEG6E16_V_MF4_MASK = 11796,
+ PseudoVSSSEG6E32_V_M1 = 11797,
+ PseudoVSSSEG6E32_V_M1_MASK = 11798,
+ PseudoVSSSEG6E32_V_MF2 = 11799,
+ PseudoVSSSEG6E32_V_MF2_MASK = 11800,
+ PseudoVSSSEG6E64_V_M1 = 11801,
+ PseudoVSSSEG6E64_V_M1_MASK = 11802,
+ PseudoVSSSEG6E8_V_M1 = 11803,
+ PseudoVSSSEG6E8_V_M1_MASK = 11804,
+ PseudoVSSSEG6E8_V_MF2 = 11805,
+ PseudoVSSSEG6E8_V_MF2_MASK = 11806,
+ PseudoVSSSEG6E8_V_MF4 = 11807,
+ PseudoVSSSEG6E8_V_MF4_MASK = 11808,
+ PseudoVSSSEG6E8_V_MF8 = 11809,
+ PseudoVSSSEG6E8_V_MF8_MASK = 11810,
+ PseudoVSSSEG7E16_V_M1 = 11811,
+ PseudoVSSSEG7E16_V_M1_MASK = 11812,
+ PseudoVSSSEG7E16_V_MF2 = 11813,
+ PseudoVSSSEG7E16_V_MF2_MASK = 11814,
+ PseudoVSSSEG7E16_V_MF4 = 11815,
+ PseudoVSSSEG7E16_V_MF4_MASK = 11816,
+ PseudoVSSSEG7E32_V_M1 = 11817,
+ PseudoVSSSEG7E32_V_M1_MASK = 11818,
+ PseudoVSSSEG7E32_V_MF2 = 11819,
+ PseudoVSSSEG7E32_V_MF2_MASK = 11820,
+ PseudoVSSSEG7E64_V_M1 = 11821,
+ PseudoVSSSEG7E64_V_M1_MASK = 11822,
+ PseudoVSSSEG7E8_V_M1 = 11823,
+ PseudoVSSSEG7E8_V_M1_MASK = 11824,
+ PseudoVSSSEG7E8_V_MF2 = 11825,
+ PseudoVSSSEG7E8_V_MF2_MASK = 11826,
+ PseudoVSSSEG7E8_V_MF4 = 11827,
+ PseudoVSSSEG7E8_V_MF4_MASK = 11828,
+ PseudoVSSSEG7E8_V_MF8 = 11829,
+ PseudoVSSSEG7E8_V_MF8_MASK = 11830,
+ PseudoVSSSEG8E16_V_M1 = 11831,
+ PseudoVSSSEG8E16_V_M1_MASK = 11832,
+ PseudoVSSSEG8E16_V_MF2 = 11833,
+ PseudoVSSSEG8E16_V_MF2_MASK = 11834,
+ PseudoVSSSEG8E16_V_MF4 = 11835,
+ PseudoVSSSEG8E16_V_MF4_MASK = 11836,
+ PseudoVSSSEG8E32_V_M1 = 11837,
+ PseudoVSSSEG8E32_V_M1_MASK = 11838,
+ PseudoVSSSEG8E32_V_MF2 = 11839,
+ PseudoVSSSEG8E32_V_MF2_MASK = 11840,
+ PseudoVSSSEG8E64_V_M1 = 11841,
+ PseudoVSSSEG8E64_V_M1_MASK = 11842,
+ PseudoVSSSEG8E8_V_M1 = 11843,
+ PseudoVSSSEG8E8_V_M1_MASK = 11844,
+ PseudoVSSSEG8E8_V_MF2 = 11845,
+ PseudoVSSSEG8E8_V_MF2_MASK = 11846,
+ PseudoVSSSEG8E8_V_MF4 = 11847,
+ PseudoVSSSEG8E8_V_MF4_MASK = 11848,
+ PseudoVSSSEG8E8_V_MF8 = 11849,
+ PseudoVSSSEG8E8_V_MF8_MASK = 11850,
+ PseudoVSSUBU_VV_M1 = 11851,
+ PseudoVSSUBU_VV_M1_MASK = 11852,
+ PseudoVSSUBU_VV_M2 = 11853,
+ PseudoVSSUBU_VV_M2_MASK = 11854,
+ PseudoVSSUBU_VV_M4 = 11855,
+ PseudoVSSUBU_VV_M4_MASK = 11856,
+ PseudoVSSUBU_VV_M8 = 11857,
+ PseudoVSSUBU_VV_M8_MASK = 11858,
+ PseudoVSSUBU_VV_MF2 = 11859,
+ PseudoVSSUBU_VV_MF2_MASK = 11860,
+ PseudoVSSUBU_VV_MF4 = 11861,
+ PseudoVSSUBU_VV_MF4_MASK = 11862,
+ PseudoVSSUBU_VV_MF8 = 11863,
+ PseudoVSSUBU_VV_MF8_MASK = 11864,
+ PseudoVSSUBU_VX_M1 = 11865,
+ PseudoVSSUBU_VX_M1_MASK = 11866,
+ PseudoVSSUBU_VX_M2 = 11867,
+ PseudoVSSUBU_VX_M2_MASK = 11868,
+ PseudoVSSUBU_VX_M4 = 11869,
+ PseudoVSSUBU_VX_M4_MASK = 11870,
+ PseudoVSSUBU_VX_M8 = 11871,
+ PseudoVSSUBU_VX_M8_MASK = 11872,
+ PseudoVSSUBU_VX_MF2 = 11873,
+ PseudoVSSUBU_VX_MF2_MASK = 11874,
+ PseudoVSSUBU_VX_MF4 = 11875,
+ PseudoVSSUBU_VX_MF4_MASK = 11876,
+ PseudoVSSUBU_VX_MF8 = 11877,
+ PseudoVSSUBU_VX_MF8_MASK = 11878,
+ PseudoVSSUB_VV_M1 = 11879,
+ PseudoVSSUB_VV_M1_MASK = 11880,
+ PseudoVSSUB_VV_M2 = 11881,
+ PseudoVSSUB_VV_M2_MASK = 11882,
+ PseudoVSSUB_VV_M4 = 11883,
+ PseudoVSSUB_VV_M4_MASK = 11884,
+ PseudoVSSUB_VV_M8 = 11885,
+ PseudoVSSUB_VV_M8_MASK = 11886,
+ PseudoVSSUB_VV_MF2 = 11887,
+ PseudoVSSUB_VV_MF2_MASK = 11888,
+ PseudoVSSUB_VV_MF4 = 11889,
+ PseudoVSSUB_VV_MF4_MASK = 11890,
+ PseudoVSSUB_VV_MF8 = 11891,
+ PseudoVSSUB_VV_MF8_MASK = 11892,
+ PseudoVSSUB_VX_M1 = 11893,
+ PseudoVSSUB_VX_M1_MASK = 11894,
+ PseudoVSSUB_VX_M2 = 11895,
+ PseudoVSSUB_VX_M2_MASK = 11896,
+ PseudoVSSUB_VX_M4 = 11897,
+ PseudoVSSUB_VX_M4_MASK = 11898,
+ PseudoVSSUB_VX_M8 = 11899,
+ PseudoVSSUB_VX_M8_MASK = 11900,
+ PseudoVSSUB_VX_MF2 = 11901,
+ PseudoVSSUB_VX_MF2_MASK = 11902,
+ PseudoVSSUB_VX_MF4 = 11903,
+ PseudoVSSUB_VX_MF4_MASK = 11904,
+ PseudoVSSUB_VX_MF8 = 11905,
+ PseudoVSSUB_VX_MF8_MASK = 11906,
+ PseudoVSUB_VV_M1 = 11907,
+ PseudoVSUB_VV_M1_MASK = 11908,
+ PseudoVSUB_VV_M2 = 11909,
+ PseudoVSUB_VV_M2_MASK = 11910,
+ PseudoVSUB_VV_M4 = 11911,
+ PseudoVSUB_VV_M4_MASK = 11912,
+ PseudoVSUB_VV_M8 = 11913,
+ PseudoVSUB_VV_M8_MASK = 11914,
+ PseudoVSUB_VV_MF2 = 11915,
+ PseudoVSUB_VV_MF2_MASK = 11916,
+ PseudoVSUB_VV_MF4 = 11917,
+ PseudoVSUB_VV_MF4_MASK = 11918,
+ PseudoVSUB_VV_MF8 = 11919,
+ PseudoVSUB_VV_MF8_MASK = 11920,
+ PseudoVSUB_VX_M1 = 11921,
+ PseudoVSUB_VX_M1_MASK = 11922,
+ PseudoVSUB_VX_M2 = 11923,
+ PseudoVSUB_VX_M2_MASK = 11924,
+ PseudoVSUB_VX_M4 = 11925,
+ PseudoVSUB_VX_M4_MASK = 11926,
+ PseudoVSUB_VX_M8 = 11927,
+ PseudoVSUB_VX_M8_MASK = 11928,
+ PseudoVSUB_VX_MF2 = 11929,
+ PseudoVSUB_VX_MF2_MASK = 11930,
+ PseudoVSUB_VX_MF4 = 11931,
+ PseudoVSUB_VX_MF4_MASK = 11932,
+ PseudoVSUB_VX_MF8 = 11933,
+ PseudoVSUB_VX_MF8_MASK = 11934,
+ PseudoVSUXEI16_V_M1_M1 = 11935,
+ PseudoVSUXEI16_V_M1_M1_MASK = 11936,
+ PseudoVSUXEI16_V_M1_M2 = 11937,
+ PseudoVSUXEI16_V_M1_M2_MASK = 11938,
+ PseudoVSUXEI16_V_M1_M4 = 11939,
+ PseudoVSUXEI16_V_M1_M4_MASK = 11940,
+ PseudoVSUXEI16_V_M1_MF2 = 11941,
+ PseudoVSUXEI16_V_M1_MF2_MASK = 11942,
+ PseudoVSUXEI16_V_M2_M1 = 11943,
+ PseudoVSUXEI16_V_M2_M1_MASK = 11944,
+ PseudoVSUXEI16_V_M2_M2 = 11945,
+ PseudoVSUXEI16_V_M2_M2_MASK = 11946,
+ PseudoVSUXEI16_V_M2_M4 = 11947,
+ PseudoVSUXEI16_V_M2_M4_MASK = 11948,
+ PseudoVSUXEI16_V_M2_M8 = 11949,
+ PseudoVSUXEI16_V_M2_M8_MASK = 11950,
+ PseudoVSUXEI16_V_M4_M2 = 11951,
+ PseudoVSUXEI16_V_M4_M2_MASK = 11952,
+ PseudoVSUXEI16_V_M4_M4 = 11953,
+ PseudoVSUXEI16_V_M4_M4_MASK = 11954,
+ PseudoVSUXEI16_V_M4_M8 = 11955,
+ PseudoVSUXEI16_V_M4_M8_MASK = 11956,
+ PseudoVSUXEI16_V_M8_M4 = 11957,
+ PseudoVSUXEI16_V_M8_M4_MASK = 11958,
+ PseudoVSUXEI16_V_M8_M8 = 11959,
+ PseudoVSUXEI16_V_M8_M8_MASK = 11960,
+ PseudoVSUXEI16_V_MF2_M1 = 11961,
+ PseudoVSUXEI16_V_MF2_M1_MASK = 11962,
+ PseudoVSUXEI16_V_MF2_M2 = 11963,
+ PseudoVSUXEI16_V_MF2_M2_MASK = 11964,
+ PseudoVSUXEI16_V_MF2_MF2 = 11965,
+ PseudoVSUXEI16_V_MF2_MF2_MASK = 11966,
+ PseudoVSUXEI16_V_MF2_MF4 = 11967,
+ PseudoVSUXEI16_V_MF2_MF4_MASK = 11968,
+ PseudoVSUXEI16_V_MF4_M1 = 11969,
+ PseudoVSUXEI16_V_MF4_M1_MASK = 11970,
+ PseudoVSUXEI16_V_MF4_MF2 = 11971,
+ PseudoVSUXEI16_V_MF4_MF2_MASK = 11972,
+ PseudoVSUXEI16_V_MF4_MF4 = 11973,
+ PseudoVSUXEI16_V_MF4_MF4_MASK = 11974,
+ PseudoVSUXEI16_V_MF4_MF8 = 11975,
+ PseudoVSUXEI16_V_MF4_MF8_MASK = 11976,
+ PseudoVSUXEI32_V_M1_M1 = 11977,
+ PseudoVSUXEI32_V_M1_M1_MASK = 11978,
+ PseudoVSUXEI32_V_M1_M2 = 11979,
+ PseudoVSUXEI32_V_M1_M2_MASK = 11980,
+ PseudoVSUXEI32_V_M1_MF2 = 11981,
+ PseudoVSUXEI32_V_M1_MF2_MASK = 11982,
+ PseudoVSUXEI32_V_M1_MF4 = 11983,
+ PseudoVSUXEI32_V_M1_MF4_MASK = 11984,
+ PseudoVSUXEI32_V_M2_M1 = 11985,
+ PseudoVSUXEI32_V_M2_M1_MASK = 11986,
+ PseudoVSUXEI32_V_M2_M2 = 11987,
+ PseudoVSUXEI32_V_M2_M2_MASK = 11988,
+ PseudoVSUXEI32_V_M2_M4 = 11989,
+ PseudoVSUXEI32_V_M2_M4_MASK = 11990,
+ PseudoVSUXEI32_V_M2_MF2 = 11991,
+ PseudoVSUXEI32_V_M2_MF2_MASK = 11992,
+ PseudoVSUXEI32_V_M4_M1 = 11993,
+ PseudoVSUXEI32_V_M4_M1_MASK = 11994,
+ PseudoVSUXEI32_V_M4_M2 = 11995,
+ PseudoVSUXEI32_V_M4_M2_MASK = 11996,
+ PseudoVSUXEI32_V_M4_M4 = 11997,
+ PseudoVSUXEI32_V_M4_M4_MASK = 11998,
+ PseudoVSUXEI32_V_M4_M8 = 11999,
+ PseudoVSUXEI32_V_M4_M8_MASK = 12000,
+ PseudoVSUXEI32_V_M8_M2 = 12001,
+ PseudoVSUXEI32_V_M8_M2_MASK = 12002,
+ PseudoVSUXEI32_V_M8_M4 = 12003,
+ PseudoVSUXEI32_V_M8_M4_MASK = 12004,
+ PseudoVSUXEI32_V_M8_M8 = 12005,
+ PseudoVSUXEI32_V_M8_M8_MASK = 12006,
+ PseudoVSUXEI32_V_MF2_M1 = 12007,
+ PseudoVSUXEI32_V_MF2_M1_MASK = 12008,
+ PseudoVSUXEI32_V_MF2_MF2 = 12009,
+ PseudoVSUXEI32_V_MF2_MF2_MASK = 12010,
+ PseudoVSUXEI32_V_MF2_MF4 = 12011,
+ PseudoVSUXEI32_V_MF2_MF4_MASK = 12012,
+ PseudoVSUXEI32_V_MF2_MF8 = 12013,
+ PseudoVSUXEI32_V_MF2_MF8_MASK = 12014,
+ PseudoVSUXEI64_V_M1_M1 = 12015,
+ PseudoVSUXEI64_V_M1_M1_MASK = 12016,
+ PseudoVSUXEI64_V_M1_MF2 = 12017,
+ PseudoVSUXEI64_V_M1_MF2_MASK = 12018,
+ PseudoVSUXEI64_V_M1_MF4 = 12019,
+ PseudoVSUXEI64_V_M1_MF4_MASK = 12020,
+ PseudoVSUXEI64_V_M1_MF8 = 12021,
+ PseudoVSUXEI64_V_M1_MF8_MASK = 12022,
+ PseudoVSUXEI64_V_M2_M1 = 12023,
+ PseudoVSUXEI64_V_M2_M1_MASK = 12024,
+ PseudoVSUXEI64_V_M2_M2 = 12025,
+ PseudoVSUXEI64_V_M2_M2_MASK = 12026,
+ PseudoVSUXEI64_V_M2_MF2 = 12027,
+ PseudoVSUXEI64_V_M2_MF2_MASK = 12028,
+ PseudoVSUXEI64_V_M2_MF4 = 12029,
+ PseudoVSUXEI64_V_M2_MF4_MASK = 12030,
+ PseudoVSUXEI64_V_M4_M1 = 12031,
+ PseudoVSUXEI64_V_M4_M1_MASK = 12032,
+ PseudoVSUXEI64_V_M4_M2 = 12033,
+ PseudoVSUXEI64_V_M4_M2_MASK = 12034,
+ PseudoVSUXEI64_V_M4_M4 = 12035,
+ PseudoVSUXEI64_V_M4_M4_MASK = 12036,
+ PseudoVSUXEI64_V_M4_MF2 = 12037,
+ PseudoVSUXEI64_V_M4_MF2_MASK = 12038,
+ PseudoVSUXEI64_V_M8_M1 = 12039,
+ PseudoVSUXEI64_V_M8_M1_MASK = 12040,
+ PseudoVSUXEI64_V_M8_M2 = 12041,
+ PseudoVSUXEI64_V_M8_M2_MASK = 12042,
+ PseudoVSUXEI64_V_M8_M4 = 12043,
+ PseudoVSUXEI64_V_M8_M4_MASK = 12044,
+ PseudoVSUXEI64_V_M8_M8 = 12045,
+ PseudoVSUXEI64_V_M8_M8_MASK = 12046,
+ PseudoVSUXEI8_V_M1_M1 = 12047,
+ PseudoVSUXEI8_V_M1_M1_MASK = 12048,
+ PseudoVSUXEI8_V_M1_M2 = 12049,
+ PseudoVSUXEI8_V_M1_M2_MASK = 12050,
+ PseudoVSUXEI8_V_M1_M4 = 12051,
+ PseudoVSUXEI8_V_M1_M4_MASK = 12052,
+ PseudoVSUXEI8_V_M1_M8 = 12053,
+ PseudoVSUXEI8_V_M1_M8_MASK = 12054,
+ PseudoVSUXEI8_V_M2_M2 = 12055,
+ PseudoVSUXEI8_V_M2_M2_MASK = 12056,
+ PseudoVSUXEI8_V_M2_M4 = 12057,
+ PseudoVSUXEI8_V_M2_M4_MASK = 12058,
+ PseudoVSUXEI8_V_M2_M8 = 12059,
+ PseudoVSUXEI8_V_M2_M8_MASK = 12060,
+ PseudoVSUXEI8_V_M4_M4 = 12061,
+ PseudoVSUXEI8_V_M4_M4_MASK = 12062,
+ PseudoVSUXEI8_V_M4_M8 = 12063,
+ PseudoVSUXEI8_V_M4_M8_MASK = 12064,
+ PseudoVSUXEI8_V_M8_M8 = 12065,
+ PseudoVSUXEI8_V_M8_M8_MASK = 12066,
+ PseudoVSUXEI8_V_MF2_M1 = 12067,
+ PseudoVSUXEI8_V_MF2_M1_MASK = 12068,
+ PseudoVSUXEI8_V_MF2_M2 = 12069,
+ PseudoVSUXEI8_V_MF2_M2_MASK = 12070,
+ PseudoVSUXEI8_V_MF2_M4 = 12071,
+ PseudoVSUXEI8_V_MF2_M4_MASK = 12072,
+ PseudoVSUXEI8_V_MF2_MF2 = 12073,
+ PseudoVSUXEI8_V_MF2_MF2_MASK = 12074,
+ PseudoVSUXEI8_V_MF4_M1 = 12075,
+ PseudoVSUXEI8_V_MF4_M1_MASK = 12076,
+ PseudoVSUXEI8_V_MF4_M2 = 12077,
+ PseudoVSUXEI8_V_MF4_M2_MASK = 12078,
+ PseudoVSUXEI8_V_MF4_MF2 = 12079,
+ PseudoVSUXEI8_V_MF4_MF2_MASK = 12080,
+ PseudoVSUXEI8_V_MF4_MF4 = 12081,
+ PseudoVSUXEI8_V_MF4_MF4_MASK = 12082,
+ PseudoVSUXEI8_V_MF8_M1 = 12083,
+ PseudoVSUXEI8_V_MF8_M1_MASK = 12084,
+ PseudoVSUXEI8_V_MF8_MF2 = 12085,
+ PseudoVSUXEI8_V_MF8_MF2_MASK = 12086,
+ PseudoVSUXEI8_V_MF8_MF4 = 12087,
+ PseudoVSUXEI8_V_MF8_MF4_MASK = 12088,
+ PseudoVSUXEI8_V_MF8_MF8 = 12089,
+ PseudoVSUXEI8_V_MF8_MF8_MASK = 12090,
+ PseudoVSUXSEG2EI16_V_M1_M1 = 12091,
+ PseudoVSUXSEG2EI16_V_M1_M1_MASK = 12092,
+ PseudoVSUXSEG2EI16_V_M1_M2 = 12093,
+ PseudoVSUXSEG2EI16_V_M1_M2_MASK = 12094,
+ PseudoVSUXSEG2EI16_V_M1_M4 = 12095,
+ PseudoVSUXSEG2EI16_V_M1_M4_MASK = 12096,
+ PseudoVSUXSEG2EI16_V_M1_MF2 = 12097,
+ PseudoVSUXSEG2EI16_V_M1_MF2_MASK = 12098,
+ PseudoVSUXSEG2EI16_V_M2_M1 = 12099,
+ PseudoVSUXSEG2EI16_V_M2_M1_MASK = 12100,
+ PseudoVSUXSEG2EI16_V_M2_M2 = 12101,
+ PseudoVSUXSEG2EI16_V_M2_M2_MASK = 12102,
+ PseudoVSUXSEG2EI16_V_M2_M4 = 12103,
+ PseudoVSUXSEG2EI16_V_M2_M4_MASK = 12104,
+ PseudoVSUXSEG2EI16_V_M4_M2 = 12105,
+ PseudoVSUXSEG2EI16_V_M4_M2_MASK = 12106,
+ PseudoVSUXSEG2EI16_V_M4_M4 = 12107,
+ PseudoVSUXSEG2EI16_V_M4_M4_MASK = 12108,
+ PseudoVSUXSEG2EI16_V_M8_M4 = 12109,
+ PseudoVSUXSEG2EI16_V_M8_M4_MASK = 12110,
+ PseudoVSUXSEG2EI16_V_MF2_M1 = 12111,
+ PseudoVSUXSEG2EI16_V_MF2_M1_MASK = 12112,
+ PseudoVSUXSEG2EI16_V_MF2_M2 = 12113,
+ PseudoVSUXSEG2EI16_V_MF2_M2_MASK = 12114,
+ PseudoVSUXSEG2EI16_V_MF2_MF2 = 12115,
+ PseudoVSUXSEG2EI16_V_MF2_MF2_MASK = 12116,
+ PseudoVSUXSEG2EI16_V_MF2_MF4 = 12117,
+ PseudoVSUXSEG2EI16_V_MF2_MF4_MASK = 12118,
+ PseudoVSUXSEG2EI16_V_MF4_M1 = 12119,
+ PseudoVSUXSEG2EI16_V_MF4_M1_MASK = 12120,
+ PseudoVSUXSEG2EI16_V_MF4_MF2 = 12121,
+ PseudoVSUXSEG2EI16_V_MF4_MF2_MASK = 12122,
+ PseudoVSUXSEG2EI16_V_MF4_MF4 = 12123,
+ PseudoVSUXSEG2EI16_V_MF4_MF4_MASK = 12124,
+ PseudoVSUXSEG2EI16_V_MF4_MF8 = 12125,
+ PseudoVSUXSEG2EI16_V_MF4_MF8_MASK = 12126,
+ PseudoVSUXSEG2EI32_V_M1_M1 = 12127,
+ PseudoVSUXSEG2EI32_V_M1_M1_MASK = 12128,
+ PseudoVSUXSEG2EI32_V_M1_M2 = 12129,
+ PseudoVSUXSEG2EI32_V_M1_M2_MASK = 12130,
+ PseudoVSUXSEG2EI32_V_M1_MF2 = 12131,
+ PseudoVSUXSEG2EI32_V_M1_MF2_MASK = 12132,
+ PseudoVSUXSEG2EI32_V_M1_MF4 = 12133,
+ PseudoVSUXSEG2EI32_V_M1_MF4_MASK = 12134,
+ PseudoVSUXSEG2EI32_V_M2_M1 = 12135,
+ PseudoVSUXSEG2EI32_V_M2_M1_MASK = 12136,
+ PseudoVSUXSEG2EI32_V_M2_M2 = 12137,
+ PseudoVSUXSEG2EI32_V_M2_M2_MASK = 12138,
+ PseudoVSUXSEG2EI32_V_M2_M4 = 12139,
+ PseudoVSUXSEG2EI32_V_M2_M4_MASK = 12140,
+ PseudoVSUXSEG2EI32_V_M2_MF2 = 12141,
+ PseudoVSUXSEG2EI32_V_M2_MF2_MASK = 12142,
+ PseudoVSUXSEG2EI32_V_M4_M1 = 12143,
+ PseudoVSUXSEG2EI32_V_M4_M1_MASK = 12144,
+ PseudoVSUXSEG2EI32_V_M4_M2 = 12145,
+ PseudoVSUXSEG2EI32_V_M4_M2_MASK = 12146,
+ PseudoVSUXSEG2EI32_V_M4_M4 = 12147,
+ PseudoVSUXSEG2EI32_V_M4_M4_MASK = 12148,
+ PseudoVSUXSEG2EI32_V_M8_M2 = 12149,
+ PseudoVSUXSEG2EI32_V_M8_M2_MASK = 12150,
+ PseudoVSUXSEG2EI32_V_M8_M4 = 12151,
+ PseudoVSUXSEG2EI32_V_M8_M4_MASK = 12152,
+ PseudoVSUXSEG2EI32_V_MF2_M1 = 12153,
+ PseudoVSUXSEG2EI32_V_MF2_M1_MASK = 12154,
+ PseudoVSUXSEG2EI32_V_MF2_MF2 = 12155,
+ PseudoVSUXSEG2EI32_V_MF2_MF2_MASK = 12156,
+ PseudoVSUXSEG2EI32_V_MF2_MF4 = 12157,
+ PseudoVSUXSEG2EI32_V_MF2_MF4_MASK = 12158,
+ PseudoVSUXSEG2EI32_V_MF2_MF8 = 12159,
+ PseudoVSUXSEG2EI32_V_MF2_MF8_MASK = 12160,
+ PseudoVSUXSEG2EI64_V_M1_M1 = 12161,
+ PseudoVSUXSEG2EI64_V_M1_M1_MASK = 12162,
+ PseudoVSUXSEG2EI64_V_M1_MF2 = 12163,
+ PseudoVSUXSEG2EI64_V_M1_MF2_MASK = 12164,
+ PseudoVSUXSEG2EI64_V_M1_MF4 = 12165,
+ PseudoVSUXSEG2EI64_V_M1_MF4_MASK = 12166,
+ PseudoVSUXSEG2EI64_V_M1_MF8 = 12167,
+ PseudoVSUXSEG2EI64_V_M1_MF8_MASK = 12168,
+ PseudoVSUXSEG2EI64_V_M2_M1 = 12169,
+ PseudoVSUXSEG2EI64_V_M2_M1_MASK = 12170,
+ PseudoVSUXSEG2EI64_V_M2_M2 = 12171,
+ PseudoVSUXSEG2EI64_V_M2_M2_MASK = 12172,
+ PseudoVSUXSEG2EI64_V_M2_MF2 = 12173,
+ PseudoVSUXSEG2EI64_V_M2_MF2_MASK = 12174,
+ PseudoVSUXSEG2EI64_V_M2_MF4 = 12175,
+ PseudoVSUXSEG2EI64_V_M2_MF4_MASK = 12176,
+ PseudoVSUXSEG2EI64_V_M4_M1 = 12177,
+ PseudoVSUXSEG2EI64_V_M4_M1_MASK = 12178,
+ PseudoVSUXSEG2EI64_V_M4_M2 = 12179,
+ PseudoVSUXSEG2EI64_V_M4_M2_MASK = 12180,
+ PseudoVSUXSEG2EI64_V_M4_M4 = 12181,
+ PseudoVSUXSEG2EI64_V_M4_M4_MASK = 12182,
+ PseudoVSUXSEG2EI64_V_M4_MF2 = 12183,
+ PseudoVSUXSEG2EI64_V_M4_MF2_MASK = 12184,
+ PseudoVSUXSEG2EI64_V_M8_M1 = 12185,
+ PseudoVSUXSEG2EI64_V_M8_M1_MASK = 12186,
+ PseudoVSUXSEG2EI64_V_M8_M2 = 12187,
+ PseudoVSUXSEG2EI64_V_M8_M2_MASK = 12188,
+ PseudoVSUXSEG2EI64_V_M8_M4 = 12189,
+ PseudoVSUXSEG2EI64_V_M8_M4_MASK = 12190,
+ PseudoVSUXSEG2EI8_V_M1_M1 = 12191,
+ PseudoVSUXSEG2EI8_V_M1_M1_MASK = 12192,
+ PseudoVSUXSEG2EI8_V_M1_M2 = 12193,
+ PseudoVSUXSEG2EI8_V_M1_M2_MASK = 12194,
+ PseudoVSUXSEG2EI8_V_M1_M4 = 12195,
+ PseudoVSUXSEG2EI8_V_M1_M4_MASK = 12196,
+ PseudoVSUXSEG2EI8_V_M2_M2 = 12197,
+ PseudoVSUXSEG2EI8_V_M2_M2_MASK = 12198,
+ PseudoVSUXSEG2EI8_V_M2_M4 = 12199,
+ PseudoVSUXSEG2EI8_V_M2_M4_MASK = 12200,
+ PseudoVSUXSEG2EI8_V_M4_M4 = 12201,
+ PseudoVSUXSEG2EI8_V_M4_M4_MASK = 12202,
+ PseudoVSUXSEG2EI8_V_MF2_M1 = 12203,
+ PseudoVSUXSEG2EI8_V_MF2_M1_MASK = 12204,
+ PseudoVSUXSEG2EI8_V_MF2_M2 = 12205,
+ PseudoVSUXSEG2EI8_V_MF2_M2_MASK = 12206,
+ PseudoVSUXSEG2EI8_V_MF2_M4 = 12207,
+ PseudoVSUXSEG2EI8_V_MF2_M4_MASK = 12208,
+ PseudoVSUXSEG2EI8_V_MF2_MF2 = 12209,
+ PseudoVSUXSEG2EI8_V_MF2_MF2_MASK = 12210,
+ PseudoVSUXSEG2EI8_V_MF4_M1 = 12211,
+ PseudoVSUXSEG2EI8_V_MF4_M1_MASK = 12212,
+ PseudoVSUXSEG2EI8_V_MF4_M2 = 12213,
+ PseudoVSUXSEG2EI8_V_MF4_M2_MASK = 12214,
+ PseudoVSUXSEG2EI8_V_MF4_MF2 = 12215,
+ PseudoVSUXSEG2EI8_V_MF4_MF2_MASK = 12216,
+ PseudoVSUXSEG2EI8_V_MF4_MF4 = 12217,
+ PseudoVSUXSEG2EI8_V_MF4_MF4_MASK = 12218,
+ PseudoVSUXSEG2EI8_V_MF8_M1 = 12219,
+ PseudoVSUXSEG2EI8_V_MF8_M1_MASK = 12220,
+ PseudoVSUXSEG2EI8_V_MF8_MF2 = 12221,
+ PseudoVSUXSEG2EI8_V_MF8_MF2_MASK = 12222,
+ PseudoVSUXSEG2EI8_V_MF8_MF4 = 12223,
+ PseudoVSUXSEG2EI8_V_MF8_MF4_MASK = 12224,
+ PseudoVSUXSEG2EI8_V_MF8_MF8 = 12225,
+ PseudoVSUXSEG2EI8_V_MF8_MF8_MASK = 12226,
+ PseudoVSUXSEG3EI16_V_M1_M1 = 12227,
+ PseudoVSUXSEG3EI16_V_M1_M1_MASK = 12228,
+ PseudoVSUXSEG3EI16_V_M1_M2 = 12229,
+ PseudoVSUXSEG3EI16_V_M1_M2_MASK = 12230,
+ PseudoVSUXSEG3EI16_V_M1_MF2 = 12231,
+ PseudoVSUXSEG3EI16_V_M1_MF2_MASK = 12232,
+ PseudoVSUXSEG3EI16_V_M2_M1 = 12233,
+ PseudoVSUXSEG3EI16_V_M2_M1_MASK = 12234,
+ PseudoVSUXSEG3EI16_V_M2_M2 = 12235,
+ PseudoVSUXSEG3EI16_V_M2_M2_MASK = 12236,
+ PseudoVSUXSEG3EI16_V_M4_M2 = 12237,
+ PseudoVSUXSEG3EI16_V_M4_M2_MASK = 12238,
+ PseudoVSUXSEG3EI16_V_MF2_M1 = 12239,
+ PseudoVSUXSEG3EI16_V_MF2_M1_MASK = 12240,
+ PseudoVSUXSEG3EI16_V_MF2_M2 = 12241,
+ PseudoVSUXSEG3EI16_V_MF2_M2_MASK = 12242,
+ PseudoVSUXSEG3EI16_V_MF2_MF2 = 12243,
+ PseudoVSUXSEG3EI16_V_MF2_MF2_MASK = 12244,
+ PseudoVSUXSEG3EI16_V_MF2_MF4 = 12245,
+ PseudoVSUXSEG3EI16_V_MF2_MF4_MASK = 12246,
+ PseudoVSUXSEG3EI16_V_MF4_M1 = 12247,
+ PseudoVSUXSEG3EI16_V_MF4_M1_MASK = 12248,
+ PseudoVSUXSEG3EI16_V_MF4_MF2 = 12249,
+ PseudoVSUXSEG3EI16_V_MF4_MF2_MASK = 12250,
+ PseudoVSUXSEG3EI16_V_MF4_MF4 = 12251,
+ PseudoVSUXSEG3EI16_V_MF4_MF4_MASK = 12252,
+ PseudoVSUXSEG3EI16_V_MF4_MF8 = 12253,
+ PseudoVSUXSEG3EI16_V_MF4_MF8_MASK = 12254,
+ PseudoVSUXSEG3EI32_V_M1_M1 = 12255,
+ PseudoVSUXSEG3EI32_V_M1_M1_MASK = 12256,
+ PseudoVSUXSEG3EI32_V_M1_M2 = 12257,
+ PseudoVSUXSEG3EI32_V_M1_M2_MASK = 12258,
+ PseudoVSUXSEG3EI32_V_M1_MF2 = 12259,
+ PseudoVSUXSEG3EI32_V_M1_MF2_MASK = 12260,
+ PseudoVSUXSEG3EI32_V_M1_MF4 = 12261,
+ PseudoVSUXSEG3EI32_V_M1_MF4_MASK = 12262,
+ PseudoVSUXSEG3EI32_V_M2_M1 = 12263,
+ PseudoVSUXSEG3EI32_V_M2_M1_MASK = 12264,
+ PseudoVSUXSEG3EI32_V_M2_M2 = 12265,
+ PseudoVSUXSEG3EI32_V_M2_M2_MASK = 12266,
+ PseudoVSUXSEG3EI32_V_M2_MF2 = 12267,
+ PseudoVSUXSEG3EI32_V_M2_MF2_MASK = 12268,
+ PseudoVSUXSEG3EI32_V_M4_M1 = 12269,
+ PseudoVSUXSEG3EI32_V_M4_M1_MASK = 12270,
+ PseudoVSUXSEG3EI32_V_M4_M2 = 12271,
+ PseudoVSUXSEG3EI32_V_M4_M2_MASK = 12272,
+ PseudoVSUXSEG3EI32_V_M8_M2 = 12273,
+ PseudoVSUXSEG3EI32_V_M8_M2_MASK = 12274,
+ PseudoVSUXSEG3EI32_V_MF2_M1 = 12275,
+ PseudoVSUXSEG3EI32_V_MF2_M1_MASK = 12276,
+ PseudoVSUXSEG3EI32_V_MF2_MF2 = 12277,
+ PseudoVSUXSEG3EI32_V_MF2_MF2_MASK = 12278,
+ PseudoVSUXSEG3EI32_V_MF2_MF4 = 12279,
+ PseudoVSUXSEG3EI32_V_MF2_MF4_MASK = 12280,
+ PseudoVSUXSEG3EI32_V_MF2_MF8 = 12281,
+ PseudoVSUXSEG3EI32_V_MF2_MF8_MASK = 12282,
+ PseudoVSUXSEG3EI64_V_M1_M1 = 12283,
+ PseudoVSUXSEG3EI64_V_M1_M1_MASK = 12284,
+ PseudoVSUXSEG3EI64_V_M1_MF2 = 12285,
+ PseudoVSUXSEG3EI64_V_M1_MF2_MASK = 12286,
+ PseudoVSUXSEG3EI64_V_M1_MF4 = 12287,
+ PseudoVSUXSEG3EI64_V_M1_MF4_MASK = 12288,
+ PseudoVSUXSEG3EI64_V_M1_MF8 = 12289,
+ PseudoVSUXSEG3EI64_V_M1_MF8_MASK = 12290,
+ PseudoVSUXSEG3EI64_V_M2_M1 = 12291,
+ PseudoVSUXSEG3EI64_V_M2_M1_MASK = 12292,
+ PseudoVSUXSEG3EI64_V_M2_M2 = 12293,
+ PseudoVSUXSEG3EI64_V_M2_M2_MASK = 12294,
+ PseudoVSUXSEG3EI64_V_M2_MF2 = 12295,
+ PseudoVSUXSEG3EI64_V_M2_MF2_MASK = 12296,
+ PseudoVSUXSEG3EI64_V_M2_MF4 = 12297,
+ PseudoVSUXSEG3EI64_V_M2_MF4_MASK = 12298,
+ PseudoVSUXSEG3EI64_V_M4_M1 = 12299,
+ PseudoVSUXSEG3EI64_V_M4_M1_MASK = 12300,
+ PseudoVSUXSEG3EI64_V_M4_M2 = 12301,
+ PseudoVSUXSEG3EI64_V_M4_M2_MASK = 12302,
+ PseudoVSUXSEG3EI64_V_M4_MF2 = 12303,
+ PseudoVSUXSEG3EI64_V_M4_MF2_MASK = 12304,
+ PseudoVSUXSEG3EI64_V_M8_M1 = 12305,
+ PseudoVSUXSEG3EI64_V_M8_M1_MASK = 12306,
+ PseudoVSUXSEG3EI64_V_M8_M2 = 12307,
+ PseudoVSUXSEG3EI64_V_M8_M2_MASK = 12308,
+ PseudoVSUXSEG3EI8_V_M1_M1 = 12309,
+ PseudoVSUXSEG3EI8_V_M1_M1_MASK = 12310,
+ PseudoVSUXSEG3EI8_V_M1_M2 = 12311,
+ PseudoVSUXSEG3EI8_V_M1_M2_MASK = 12312,
+ PseudoVSUXSEG3EI8_V_M2_M2 = 12313,
+ PseudoVSUXSEG3EI8_V_M2_M2_MASK = 12314,
+ PseudoVSUXSEG3EI8_V_MF2_M1 = 12315,
+ PseudoVSUXSEG3EI8_V_MF2_M1_MASK = 12316,
+ PseudoVSUXSEG3EI8_V_MF2_M2 = 12317,
+ PseudoVSUXSEG3EI8_V_MF2_M2_MASK = 12318,
+ PseudoVSUXSEG3EI8_V_MF2_MF2 = 12319,
+ PseudoVSUXSEG3EI8_V_MF2_MF2_MASK = 12320,
+ PseudoVSUXSEG3EI8_V_MF4_M1 = 12321,
+ PseudoVSUXSEG3EI8_V_MF4_M1_MASK = 12322,
+ PseudoVSUXSEG3EI8_V_MF4_M2 = 12323,
+ PseudoVSUXSEG3EI8_V_MF4_M2_MASK = 12324,
+ PseudoVSUXSEG3EI8_V_MF4_MF2 = 12325,
+ PseudoVSUXSEG3EI8_V_MF4_MF2_MASK = 12326,
+ PseudoVSUXSEG3EI8_V_MF4_MF4 = 12327,
+ PseudoVSUXSEG3EI8_V_MF4_MF4_MASK = 12328,
+ PseudoVSUXSEG3EI8_V_MF8_M1 = 12329,
+ PseudoVSUXSEG3EI8_V_MF8_M1_MASK = 12330,
+ PseudoVSUXSEG3EI8_V_MF8_MF2 = 12331,
+ PseudoVSUXSEG3EI8_V_MF8_MF2_MASK = 12332,
+ PseudoVSUXSEG3EI8_V_MF8_MF4 = 12333,
+ PseudoVSUXSEG3EI8_V_MF8_MF4_MASK = 12334,
+ PseudoVSUXSEG3EI8_V_MF8_MF8 = 12335,
+ PseudoVSUXSEG3EI8_V_MF8_MF8_MASK = 12336,
+ PseudoVSUXSEG4EI16_V_M1_M1 = 12337,
+ PseudoVSUXSEG4EI16_V_M1_M1_MASK = 12338,
+ PseudoVSUXSEG4EI16_V_M1_M2 = 12339,
+ PseudoVSUXSEG4EI16_V_M1_M2_MASK = 12340,
+ PseudoVSUXSEG4EI16_V_M1_MF2 = 12341,
+ PseudoVSUXSEG4EI16_V_M1_MF2_MASK = 12342,
+ PseudoVSUXSEG4EI16_V_M2_M1 = 12343,
+ PseudoVSUXSEG4EI16_V_M2_M1_MASK = 12344,
+ PseudoVSUXSEG4EI16_V_M2_M2 = 12345,
+ PseudoVSUXSEG4EI16_V_M2_M2_MASK = 12346,
+ PseudoVSUXSEG4EI16_V_M4_M2 = 12347,
+ PseudoVSUXSEG4EI16_V_M4_M2_MASK = 12348,
+ PseudoVSUXSEG4EI16_V_MF2_M1 = 12349,
+ PseudoVSUXSEG4EI16_V_MF2_M1_MASK = 12350,
+ PseudoVSUXSEG4EI16_V_MF2_M2 = 12351,
+ PseudoVSUXSEG4EI16_V_MF2_M2_MASK = 12352,
+ PseudoVSUXSEG4EI16_V_MF2_MF2 = 12353,
+ PseudoVSUXSEG4EI16_V_MF2_MF2_MASK = 12354,
+ PseudoVSUXSEG4EI16_V_MF2_MF4 = 12355,
+ PseudoVSUXSEG4EI16_V_MF2_MF4_MASK = 12356,
+ PseudoVSUXSEG4EI16_V_MF4_M1 = 12357,
+ PseudoVSUXSEG4EI16_V_MF4_M1_MASK = 12358,
+ PseudoVSUXSEG4EI16_V_MF4_MF2 = 12359,
+ PseudoVSUXSEG4EI16_V_MF4_MF2_MASK = 12360,
+ PseudoVSUXSEG4EI16_V_MF4_MF4 = 12361,
+ PseudoVSUXSEG4EI16_V_MF4_MF4_MASK = 12362,
+ PseudoVSUXSEG4EI16_V_MF4_MF8 = 12363,
+ PseudoVSUXSEG4EI16_V_MF4_MF8_MASK = 12364,
+ PseudoVSUXSEG4EI32_V_M1_M1 = 12365,
+ PseudoVSUXSEG4EI32_V_M1_M1_MASK = 12366,
+ PseudoVSUXSEG4EI32_V_M1_M2 = 12367,
+ PseudoVSUXSEG4EI32_V_M1_M2_MASK = 12368,
+ PseudoVSUXSEG4EI32_V_M1_MF2 = 12369,
+ PseudoVSUXSEG4EI32_V_M1_MF2_MASK = 12370,
+ PseudoVSUXSEG4EI32_V_M1_MF4 = 12371,
+ PseudoVSUXSEG4EI32_V_M1_MF4_MASK = 12372,
+ PseudoVSUXSEG4EI32_V_M2_M1 = 12373,
+ PseudoVSUXSEG4EI32_V_M2_M1_MASK = 12374,
+ PseudoVSUXSEG4EI32_V_M2_M2 = 12375,
+ PseudoVSUXSEG4EI32_V_M2_M2_MASK = 12376,
+ PseudoVSUXSEG4EI32_V_M2_MF2 = 12377,
+ PseudoVSUXSEG4EI32_V_M2_MF2_MASK = 12378,
+ PseudoVSUXSEG4EI32_V_M4_M1 = 12379,
+ PseudoVSUXSEG4EI32_V_M4_M1_MASK = 12380,
+ PseudoVSUXSEG4EI32_V_M4_M2 = 12381,
+ PseudoVSUXSEG4EI32_V_M4_M2_MASK = 12382,
+ PseudoVSUXSEG4EI32_V_M8_M2 = 12383,
+ PseudoVSUXSEG4EI32_V_M8_M2_MASK = 12384,
+ PseudoVSUXSEG4EI32_V_MF2_M1 = 12385,
+ PseudoVSUXSEG4EI32_V_MF2_M1_MASK = 12386,
+ PseudoVSUXSEG4EI32_V_MF2_MF2 = 12387,
+ PseudoVSUXSEG4EI32_V_MF2_MF2_MASK = 12388,
+ PseudoVSUXSEG4EI32_V_MF2_MF4 = 12389,
+ PseudoVSUXSEG4EI32_V_MF2_MF4_MASK = 12390,
+ PseudoVSUXSEG4EI32_V_MF2_MF8 = 12391,
+ PseudoVSUXSEG4EI32_V_MF2_MF8_MASK = 12392,
+ PseudoVSUXSEG4EI64_V_M1_M1 = 12393,
+ PseudoVSUXSEG4EI64_V_M1_M1_MASK = 12394,
+ PseudoVSUXSEG4EI64_V_M1_MF2 = 12395,
+ PseudoVSUXSEG4EI64_V_M1_MF2_MASK = 12396,
+ PseudoVSUXSEG4EI64_V_M1_MF4 = 12397,
+ PseudoVSUXSEG4EI64_V_M1_MF4_MASK = 12398,
+ PseudoVSUXSEG4EI64_V_M1_MF8 = 12399,
+ PseudoVSUXSEG4EI64_V_M1_MF8_MASK = 12400,
+ PseudoVSUXSEG4EI64_V_M2_M1 = 12401,
+ PseudoVSUXSEG4EI64_V_M2_M1_MASK = 12402,
+ PseudoVSUXSEG4EI64_V_M2_M2 = 12403,
+ PseudoVSUXSEG4EI64_V_M2_M2_MASK = 12404,
+ PseudoVSUXSEG4EI64_V_M2_MF2 = 12405,
+ PseudoVSUXSEG4EI64_V_M2_MF2_MASK = 12406,
+ PseudoVSUXSEG4EI64_V_M2_MF4 = 12407,
+ PseudoVSUXSEG4EI64_V_M2_MF4_MASK = 12408,
+ PseudoVSUXSEG4EI64_V_M4_M1 = 12409,
+ PseudoVSUXSEG4EI64_V_M4_M1_MASK = 12410,
+ PseudoVSUXSEG4EI64_V_M4_M2 = 12411,
+ PseudoVSUXSEG4EI64_V_M4_M2_MASK = 12412,
+ PseudoVSUXSEG4EI64_V_M4_MF2 = 12413,
+ PseudoVSUXSEG4EI64_V_M4_MF2_MASK = 12414,
+ PseudoVSUXSEG4EI64_V_M8_M1 = 12415,
+ PseudoVSUXSEG4EI64_V_M8_M1_MASK = 12416,
+ PseudoVSUXSEG4EI64_V_M8_M2 = 12417,
+ PseudoVSUXSEG4EI64_V_M8_M2_MASK = 12418,
+ PseudoVSUXSEG4EI8_V_M1_M1 = 12419,
+ PseudoVSUXSEG4EI8_V_M1_M1_MASK = 12420,
+ PseudoVSUXSEG4EI8_V_M1_M2 = 12421,
+ PseudoVSUXSEG4EI8_V_M1_M2_MASK = 12422,
+ PseudoVSUXSEG4EI8_V_M2_M2 = 12423,
+ PseudoVSUXSEG4EI8_V_M2_M2_MASK = 12424,
+ PseudoVSUXSEG4EI8_V_MF2_M1 = 12425,
+ PseudoVSUXSEG4EI8_V_MF2_M1_MASK = 12426,
+ PseudoVSUXSEG4EI8_V_MF2_M2 = 12427,
+ PseudoVSUXSEG4EI8_V_MF2_M2_MASK = 12428,
+ PseudoVSUXSEG4EI8_V_MF2_MF2 = 12429,
+ PseudoVSUXSEG4EI8_V_MF2_MF2_MASK = 12430,
+ PseudoVSUXSEG4EI8_V_MF4_M1 = 12431,
+ PseudoVSUXSEG4EI8_V_MF4_M1_MASK = 12432,
+ PseudoVSUXSEG4EI8_V_MF4_M2 = 12433,
+ PseudoVSUXSEG4EI8_V_MF4_M2_MASK = 12434,
+ PseudoVSUXSEG4EI8_V_MF4_MF2 = 12435,
+ PseudoVSUXSEG4EI8_V_MF4_MF2_MASK = 12436,
+ PseudoVSUXSEG4EI8_V_MF4_MF4 = 12437,
+ PseudoVSUXSEG4EI8_V_MF4_MF4_MASK = 12438,
+ PseudoVSUXSEG4EI8_V_MF8_M1 = 12439,
+ PseudoVSUXSEG4EI8_V_MF8_M1_MASK = 12440,
+ PseudoVSUXSEG4EI8_V_MF8_MF2 = 12441,
+ PseudoVSUXSEG4EI8_V_MF8_MF2_MASK = 12442,
+ PseudoVSUXSEG4EI8_V_MF8_MF4 = 12443,
+ PseudoVSUXSEG4EI8_V_MF8_MF4_MASK = 12444,
+ PseudoVSUXSEG4EI8_V_MF8_MF8 = 12445,
+ PseudoVSUXSEG4EI8_V_MF8_MF8_MASK = 12446,
+ PseudoVSUXSEG5EI16_V_M1_M1 = 12447,
+ PseudoVSUXSEG5EI16_V_M1_M1_MASK = 12448,
+ PseudoVSUXSEG5EI16_V_M1_MF2 = 12449,
+ PseudoVSUXSEG5EI16_V_M1_MF2_MASK = 12450,
+ PseudoVSUXSEG5EI16_V_M2_M1 = 12451,
+ PseudoVSUXSEG5EI16_V_M2_M1_MASK = 12452,
+ PseudoVSUXSEG5EI16_V_MF2_M1 = 12453,
+ PseudoVSUXSEG5EI16_V_MF2_M1_MASK = 12454,
+ PseudoVSUXSEG5EI16_V_MF2_MF2 = 12455,
+ PseudoVSUXSEG5EI16_V_MF2_MF2_MASK = 12456,
+ PseudoVSUXSEG5EI16_V_MF2_MF4 = 12457,
+ PseudoVSUXSEG5EI16_V_MF2_MF4_MASK = 12458,
+ PseudoVSUXSEG5EI16_V_MF4_M1 = 12459,
+ PseudoVSUXSEG5EI16_V_MF4_M1_MASK = 12460,
+ PseudoVSUXSEG5EI16_V_MF4_MF2 = 12461,
+ PseudoVSUXSEG5EI16_V_MF4_MF2_MASK = 12462,
+ PseudoVSUXSEG5EI16_V_MF4_MF4 = 12463,
+ PseudoVSUXSEG5EI16_V_MF4_MF4_MASK = 12464,
+ PseudoVSUXSEG5EI16_V_MF4_MF8 = 12465,
+ PseudoVSUXSEG5EI16_V_MF4_MF8_MASK = 12466,
+ PseudoVSUXSEG5EI32_V_M1_M1 = 12467,
+ PseudoVSUXSEG5EI32_V_M1_M1_MASK = 12468,
+ PseudoVSUXSEG5EI32_V_M1_MF2 = 12469,
+ PseudoVSUXSEG5EI32_V_M1_MF2_MASK = 12470,
+ PseudoVSUXSEG5EI32_V_M1_MF4 = 12471,
+ PseudoVSUXSEG5EI32_V_M1_MF4_MASK = 12472,
+ PseudoVSUXSEG5EI32_V_M2_M1 = 12473,
+ PseudoVSUXSEG5EI32_V_M2_M1_MASK = 12474,
+ PseudoVSUXSEG5EI32_V_M2_MF2 = 12475,
+ PseudoVSUXSEG5EI32_V_M2_MF2_MASK = 12476,
+ PseudoVSUXSEG5EI32_V_M4_M1 = 12477,
+ PseudoVSUXSEG5EI32_V_M4_M1_MASK = 12478,
+ PseudoVSUXSEG5EI32_V_MF2_M1 = 12479,
+ PseudoVSUXSEG5EI32_V_MF2_M1_MASK = 12480,
+ PseudoVSUXSEG5EI32_V_MF2_MF2 = 12481,
+ PseudoVSUXSEG5EI32_V_MF2_MF2_MASK = 12482,
+ PseudoVSUXSEG5EI32_V_MF2_MF4 = 12483,
+ PseudoVSUXSEG5EI32_V_MF2_MF4_MASK = 12484,
+ PseudoVSUXSEG5EI32_V_MF2_MF8 = 12485,
+ PseudoVSUXSEG5EI32_V_MF2_MF8_MASK = 12486,
+ PseudoVSUXSEG5EI64_V_M1_M1 = 12487,
+ PseudoVSUXSEG5EI64_V_M1_M1_MASK = 12488,
+ PseudoVSUXSEG5EI64_V_M1_MF2 = 12489,
+ PseudoVSUXSEG5EI64_V_M1_MF2_MASK = 12490,
+ PseudoVSUXSEG5EI64_V_M1_MF4 = 12491,
+ PseudoVSUXSEG5EI64_V_M1_MF4_MASK = 12492,
+ PseudoVSUXSEG5EI64_V_M1_MF8 = 12493,
+ PseudoVSUXSEG5EI64_V_M1_MF8_MASK = 12494,
+ PseudoVSUXSEG5EI64_V_M2_M1 = 12495,
+ PseudoVSUXSEG5EI64_V_M2_M1_MASK = 12496,
+ PseudoVSUXSEG5EI64_V_M2_MF2 = 12497,
+ PseudoVSUXSEG5EI64_V_M2_MF2_MASK = 12498,
+ PseudoVSUXSEG5EI64_V_M2_MF4 = 12499,
+ PseudoVSUXSEG5EI64_V_M2_MF4_MASK = 12500,
+ PseudoVSUXSEG5EI64_V_M4_M1 = 12501,
+ PseudoVSUXSEG5EI64_V_M4_M1_MASK = 12502,
+ PseudoVSUXSEG5EI64_V_M4_MF2 = 12503,
+ PseudoVSUXSEG5EI64_V_M4_MF2_MASK = 12504,
+ PseudoVSUXSEG5EI64_V_M8_M1 = 12505,
+ PseudoVSUXSEG5EI64_V_M8_M1_MASK = 12506,
+ PseudoVSUXSEG5EI8_V_M1_M1 = 12507,
+ PseudoVSUXSEG5EI8_V_M1_M1_MASK = 12508,
+ PseudoVSUXSEG5EI8_V_MF2_M1 = 12509,
+ PseudoVSUXSEG5EI8_V_MF2_M1_MASK = 12510,
+ PseudoVSUXSEG5EI8_V_MF2_MF2 = 12511,
+ PseudoVSUXSEG5EI8_V_MF2_MF2_MASK = 12512,
+ PseudoVSUXSEG5EI8_V_MF4_M1 = 12513,
+ PseudoVSUXSEG5EI8_V_MF4_M1_MASK = 12514,
+ PseudoVSUXSEG5EI8_V_MF4_MF2 = 12515,
+ PseudoVSUXSEG5EI8_V_MF4_MF2_MASK = 12516,
+ PseudoVSUXSEG5EI8_V_MF4_MF4 = 12517,
+ PseudoVSUXSEG5EI8_V_MF4_MF4_MASK = 12518,
+ PseudoVSUXSEG5EI8_V_MF8_M1 = 12519,
+ PseudoVSUXSEG5EI8_V_MF8_M1_MASK = 12520,
+ PseudoVSUXSEG5EI8_V_MF8_MF2 = 12521,
+ PseudoVSUXSEG5EI8_V_MF8_MF2_MASK = 12522,
+ PseudoVSUXSEG5EI8_V_MF8_MF4 = 12523,
+ PseudoVSUXSEG5EI8_V_MF8_MF4_MASK = 12524,
+ PseudoVSUXSEG5EI8_V_MF8_MF8 = 12525,
+ PseudoVSUXSEG5EI8_V_MF8_MF8_MASK = 12526,
+ PseudoVSUXSEG6EI16_V_M1_M1 = 12527,
+ PseudoVSUXSEG6EI16_V_M1_M1_MASK = 12528,
+ PseudoVSUXSEG6EI16_V_M1_MF2 = 12529,
+ PseudoVSUXSEG6EI16_V_M1_MF2_MASK = 12530,
+ PseudoVSUXSEG6EI16_V_M2_M1 = 12531,
+ PseudoVSUXSEG6EI16_V_M2_M1_MASK = 12532,
+ PseudoVSUXSEG6EI16_V_MF2_M1 = 12533,
+ PseudoVSUXSEG6EI16_V_MF2_M1_MASK = 12534,
+ PseudoVSUXSEG6EI16_V_MF2_MF2 = 12535,
+ PseudoVSUXSEG6EI16_V_MF2_MF2_MASK = 12536,
+ PseudoVSUXSEG6EI16_V_MF2_MF4 = 12537,
+ PseudoVSUXSEG6EI16_V_MF2_MF4_MASK = 12538,
+ PseudoVSUXSEG6EI16_V_MF4_M1 = 12539,
+ PseudoVSUXSEG6EI16_V_MF4_M1_MASK = 12540,
+ PseudoVSUXSEG6EI16_V_MF4_MF2 = 12541,
+ PseudoVSUXSEG6EI16_V_MF4_MF2_MASK = 12542,
+ PseudoVSUXSEG6EI16_V_MF4_MF4 = 12543,
+ PseudoVSUXSEG6EI16_V_MF4_MF4_MASK = 12544,
+ PseudoVSUXSEG6EI16_V_MF4_MF8 = 12545,
+ PseudoVSUXSEG6EI16_V_MF4_MF8_MASK = 12546,
+ PseudoVSUXSEG6EI32_V_M1_M1 = 12547,
+ PseudoVSUXSEG6EI32_V_M1_M1_MASK = 12548,
+ PseudoVSUXSEG6EI32_V_M1_MF2 = 12549,
+ PseudoVSUXSEG6EI32_V_M1_MF2_MASK = 12550,
+ PseudoVSUXSEG6EI32_V_M1_MF4 = 12551,
+ PseudoVSUXSEG6EI32_V_M1_MF4_MASK = 12552,
+ PseudoVSUXSEG6EI32_V_M2_M1 = 12553,
+ PseudoVSUXSEG6EI32_V_M2_M1_MASK = 12554,
+ PseudoVSUXSEG6EI32_V_M2_MF2 = 12555,
+ PseudoVSUXSEG6EI32_V_M2_MF2_MASK = 12556,
+ PseudoVSUXSEG6EI32_V_M4_M1 = 12557,
+ PseudoVSUXSEG6EI32_V_M4_M1_MASK = 12558,
+ PseudoVSUXSEG6EI32_V_MF2_M1 = 12559,
+ PseudoVSUXSEG6EI32_V_MF2_M1_MASK = 12560,
+ PseudoVSUXSEG6EI32_V_MF2_MF2 = 12561,
+ PseudoVSUXSEG6EI32_V_MF2_MF2_MASK = 12562,
+ PseudoVSUXSEG6EI32_V_MF2_MF4 = 12563,
+ PseudoVSUXSEG6EI32_V_MF2_MF4_MASK = 12564,
+ PseudoVSUXSEG6EI32_V_MF2_MF8 = 12565,
+ PseudoVSUXSEG6EI32_V_MF2_MF8_MASK = 12566,
+ PseudoVSUXSEG6EI64_V_M1_M1 = 12567,
+ PseudoVSUXSEG6EI64_V_M1_M1_MASK = 12568,
+ PseudoVSUXSEG6EI64_V_M1_MF2 = 12569,
+ PseudoVSUXSEG6EI64_V_M1_MF2_MASK = 12570,
+ PseudoVSUXSEG6EI64_V_M1_MF4 = 12571,
+ PseudoVSUXSEG6EI64_V_M1_MF4_MASK = 12572,
+ PseudoVSUXSEG6EI64_V_M1_MF8 = 12573,
+ PseudoVSUXSEG6EI64_V_M1_MF8_MASK = 12574,
+ PseudoVSUXSEG6EI64_V_M2_M1 = 12575,
+ PseudoVSUXSEG6EI64_V_M2_M1_MASK = 12576,
+ PseudoVSUXSEG6EI64_V_M2_MF2 = 12577,
+ PseudoVSUXSEG6EI64_V_M2_MF2_MASK = 12578,
+ PseudoVSUXSEG6EI64_V_M2_MF4 = 12579,
+ PseudoVSUXSEG6EI64_V_M2_MF4_MASK = 12580,
+ PseudoVSUXSEG6EI64_V_M4_M1 = 12581,
+ PseudoVSUXSEG6EI64_V_M4_M1_MASK = 12582,
+ PseudoVSUXSEG6EI64_V_M4_MF2 = 12583,
+ PseudoVSUXSEG6EI64_V_M4_MF2_MASK = 12584,
+ PseudoVSUXSEG6EI64_V_M8_M1 = 12585,
+ PseudoVSUXSEG6EI64_V_M8_M1_MASK = 12586,
+ PseudoVSUXSEG6EI8_V_M1_M1 = 12587,
+ PseudoVSUXSEG6EI8_V_M1_M1_MASK = 12588,
+ PseudoVSUXSEG6EI8_V_MF2_M1 = 12589,
+ PseudoVSUXSEG6EI8_V_MF2_M1_MASK = 12590,
+ PseudoVSUXSEG6EI8_V_MF2_MF2 = 12591,
+ PseudoVSUXSEG6EI8_V_MF2_MF2_MASK = 12592,
+ PseudoVSUXSEG6EI8_V_MF4_M1 = 12593,
+ PseudoVSUXSEG6EI8_V_MF4_M1_MASK = 12594,
+ PseudoVSUXSEG6EI8_V_MF4_MF2 = 12595,
+ PseudoVSUXSEG6EI8_V_MF4_MF2_MASK = 12596,
+ PseudoVSUXSEG6EI8_V_MF4_MF4 = 12597,
+ PseudoVSUXSEG6EI8_V_MF4_MF4_MASK = 12598,
+ PseudoVSUXSEG6EI8_V_MF8_M1 = 12599,
+ PseudoVSUXSEG6EI8_V_MF8_M1_MASK = 12600,
+ PseudoVSUXSEG6EI8_V_MF8_MF2 = 12601,
+ PseudoVSUXSEG6EI8_V_MF8_MF2_MASK = 12602,
+ PseudoVSUXSEG6EI8_V_MF8_MF4 = 12603,
+ PseudoVSUXSEG6EI8_V_MF8_MF4_MASK = 12604,
+ PseudoVSUXSEG6EI8_V_MF8_MF8 = 12605,
+ PseudoVSUXSEG6EI8_V_MF8_MF8_MASK = 12606,
+ PseudoVSUXSEG7EI16_V_M1_M1 = 12607,
+ PseudoVSUXSEG7EI16_V_M1_M1_MASK = 12608,
+ PseudoVSUXSEG7EI16_V_M1_MF2 = 12609,
+ PseudoVSUXSEG7EI16_V_M1_MF2_MASK = 12610,
+ PseudoVSUXSEG7EI16_V_M2_M1 = 12611,
+ PseudoVSUXSEG7EI16_V_M2_M1_MASK = 12612,
+ PseudoVSUXSEG7EI16_V_MF2_M1 = 12613,
+ PseudoVSUXSEG7EI16_V_MF2_M1_MASK = 12614,
+ PseudoVSUXSEG7EI16_V_MF2_MF2 = 12615,
+ PseudoVSUXSEG7EI16_V_MF2_MF2_MASK = 12616,
+ PseudoVSUXSEG7EI16_V_MF2_MF4 = 12617,
+ PseudoVSUXSEG7EI16_V_MF2_MF4_MASK = 12618,
+ PseudoVSUXSEG7EI16_V_MF4_M1 = 12619,
+ PseudoVSUXSEG7EI16_V_MF4_M1_MASK = 12620,
+ PseudoVSUXSEG7EI16_V_MF4_MF2 = 12621,
+ PseudoVSUXSEG7EI16_V_MF4_MF2_MASK = 12622,
+ PseudoVSUXSEG7EI16_V_MF4_MF4 = 12623,
+ PseudoVSUXSEG7EI16_V_MF4_MF4_MASK = 12624,
+ PseudoVSUXSEG7EI16_V_MF4_MF8 = 12625,
+ PseudoVSUXSEG7EI16_V_MF4_MF8_MASK = 12626,
+ PseudoVSUXSEG7EI32_V_M1_M1 = 12627,
+ PseudoVSUXSEG7EI32_V_M1_M1_MASK = 12628,
+ PseudoVSUXSEG7EI32_V_M1_MF2 = 12629,
+ PseudoVSUXSEG7EI32_V_M1_MF2_MASK = 12630,
+ PseudoVSUXSEG7EI32_V_M1_MF4 = 12631,
+ PseudoVSUXSEG7EI32_V_M1_MF4_MASK = 12632,
+ PseudoVSUXSEG7EI32_V_M2_M1 = 12633,
+ PseudoVSUXSEG7EI32_V_M2_M1_MASK = 12634,
+ PseudoVSUXSEG7EI32_V_M2_MF2 = 12635,
+ PseudoVSUXSEG7EI32_V_M2_MF2_MASK = 12636,
+ PseudoVSUXSEG7EI32_V_M4_M1 = 12637,
+ PseudoVSUXSEG7EI32_V_M4_M1_MASK = 12638,
+ PseudoVSUXSEG7EI32_V_MF2_M1 = 12639,
+ PseudoVSUXSEG7EI32_V_MF2_M1_MASK = 12640,
+ PseudoVSUXSEG7EI32_V_MF2_MF2 = 12641,
+ PseudoVSUXSEG7EI32_V_MF2_MF2_MASK = 12642,
+ PseudoVSUXSEG7EI32_V_MF2_MF4 = 12643,
+ PseudoVSUXSEG7EI32_V_MF2_MF4_MASK = 12644,
+ PseudoVSUXSEG7EI32_V_MF2_MF8 = 12645,
+ PseudoVSUXSEG7EI32_V_MF2_MF8_MASK = 12646,
+ PseudoVSUXSEG7EI64_V_M1_M1 = 12647,
+ PseudoVSUXSEG7EI64_V_M1_M1_MASK = 12648,
+ PseudoVSUXSEG7EI64_V_M1_MF2 = 12649,
+ PseudoVSUXSEG7EI64_V_M1_MF2_MASK = 12650,
+ PseudoVSUXSEG7EI64_V_M1_MF4 = 12651,
+ PseudoVSUXSEG7EI64_V_M1_MF4_MASK = 12652,
+ PseudoVSUXSEG7EI64_V_M1_MF8 = 12653,
+ PseudoVSUXSEG7EI64_V_M1_MF8_MASK = 12654,
+ PseudoVSUXSEG7EI64_V_M2_M1 = 12655,
+ PseudoVSUXSEG7EI64_V_M2_M1_MASK = 12656,
+ PseudoVSUXSEG7EI64_V_M2_MF2 = 12657,
+ PseudoVSUXSEG7EI64_V_M2_MF2_MASK = 12658,
+ PseudoVSUXSEG7EI64_V_M2_MF4 = 12659,
+ PseudoVSUXSEG7EI64_V_M2_MF4_MASK = 12660,
+ PseudoVSUXSEG7EI64_V_M4_M1 = 12661,
+ PseudoVSUXSEG7EI64_V_M4_M1_MASK = 12662,
+ PseudoVSUXSEG7EI64_V_M4_MF2 = 12663,
+ PseudoVSUXSEG7EI64_V_M4_MF2_MASK = 12664,
+ PseudoVSUXSEG7EI64_V_M8_M1 = 12665,
+ PseudoVSUXSEG7EI64_V_M8_M1_MASK = 12666,
+ PseudoVSUXSEG7EI8_V_M1_M1 = 12667,
+ PseudoVSUXSEG7EI8_V_M1_M1_MASK = 12668,
+ PseudoVSUXSEG7EI8_V_MF2_M1 = 12669,
+ PseudoVSUXSEG7EI8_V_MF2_M1_MASK = 12670,
+ PseudoVSUXSEG7EI8_V_MF2_MF2 = 12671,
+ PseudoVSUXSEG7EI8_V_MF2_MF2_MASK = 12672,
+ PseudoVSUXSEG7EI8_V_MF4_M1 = 12673,
+ PseudoVSUXSEG7EI8_V_MF4_M1_MASK = 12674,
+ PseudoVSUXSEG7EI8_V_MF4_MF2 = 12675,
+ PseudoVSUXSEG7EI8_V_MF4_MF2_MASK = 12676,
+ PseudoVSUXSEG7EI8_V_MF4_MF4 = 12677,
+ PseudoVSUXSEG7EI8_V_MF4_MF4_MASK = 12678,
+ PseudoVSUXSEG7EI8_V_MF8_M1 = 12679,
+ PseudoVSUXSEG7EI8_V_MF8_M1_MASK = 12680,
+ PseudoVSUXSEG7EI8_V_MF8_MF2 = 12681,
+ PseudoVSUXSEG7EI8_V_MF8_MF2_MASK = 12682,
+ PseudoVSUXSEG7EI8_V_MF8_MF4 = 12683,
+ PseudoVSUXSEG7EI8_V_MF8_MF4_MASK = 12684,
+ PseudoVSUXSEG7EI8_V_MF8_MF8 = 12685,
+ PseudoVSUXSEG7EI8_V_MF8_MF8_MASK = 12686,
+ PseudoVSUXSEG8EI16_V_M1_M1 = 12687,
+ PseudoVSUXSEG8EI16_V_M1_M1_MASK = 12688,
+ PseudoVSUXSEG8EI16_V_M1_MF2 = 12689,
+ PseudoVSUXSEG8EI16_V_M1_MF2_MASK = 12690,
+ PseudoVSUXSEG8EI16_V_M2_M1 = 12691,
+ PseudoVSUXSEG8EI16_V_M2_M1_MASK = 12692,
+ PseudoVSUXSEG8EI16_V_MF2_M1 = 12693,
+ PseudoVSUXSEG8EI16_V_MF2_M1_MASK = 12694,
+ PseudoVSUXSEG8EI16_V_MF2_MF2 = 12695,
+ PseudoVSUXSEG8EI16_V_MF2_MF2_MASK = 12696,
+ PseudoVSUXSEG8EI16_V_MF2_MF4 = 12697,
+ PseudoVSUXSEG8EI16_V_MF2_MF4_MASK = 12698,
+ PseudoVSUXSEG8EI16_V_MF4_M1 = 12699,
+ PseudoVSUXSEG8EI16_V_MF4_M1_MASK = 12700,
+ PseudoVSUXSEG8EI16_V_MF4_MF2 = 12701,
+ PseudoVSUXSEG8EI16_V_MF4_MF2_MASK = 12702,
+ PseudoVSUXSEG8EI16_V_MF4_MF4 = 12703,
+ PseudoVSUXSEG8EI16_V_MF4_MF4_MASK = 12704,
+ PseudoVSUXSEG8EI16_V_MF4_MF8 = 12705,
+ PseudoVSUXSEG8EI16_V_MF4_MF8_MASK = 12706,
+ PseudoVSUXSEG8EI32_V_M1_M1 = 12707,
+ PseudoVSUXSEG8EI32_V_M1_M1_MASK = 12708,
+ PseudoVSUXSEG8EI32_V_M1_MF2 = 12709,
+ PseudoVSUXSEG8EI32_V_M1_MF2_MASK = 12710,
+ PseudoVSUXSEG8EI32_V_M1_MF4 = 12711,
+ PseudoVSUXSEG8EI32_V_M1_MF4_MASK = 12712,
+ PseudoVSUXSEG8EI32_V_M2_M1 = 12713,
+ PseudoVSUXSEG8EI32_V_M2_M1_MASK = 12714,
+ PseudoVSUXSEG8EI32_V_M2_MF2 = 12715,
+ PseudoVSUXSEG8EI32_V_M2_MF2_MASK = 12716,
+ PseudoVSUXSEG8EI32_V_M4_M1 = 12717,
+ PseudoVSUXSEG8EI32_V_M4_M1_MASK = 12718,
+ PseudoVSUXSEG8EI32_V_MF2_M1 = 12719,
+ PseudoVSUXSEG8EI32_V_MF2_M1_MASK = 12720,
+ PseudoVSUXSEG8EI32_V_MF2_MF2 = 12721,
+ PseudoVSUXSEG8EI32_V_MF2_MF2_MASK = 12722,
+ PseudoVSUXSEG8EI32_V_MF2_MF4 = 12723,
+ PseudoVSUXSEG8EI32_V_MF2_MF4_MASK = 12724,
+ PseudoVSUXSEG8EI32_V_MF2_MF8 = 12725,
+ PseudoVSUXSEG8EI32_V_MF2_MF8_MASK = 12726,
+ PseudoVSUXSEG8EI64_V_M1_M1 = 12727,
+ PseudoVSUXSEG8EI64_V_M1_M1_MASK = 12728,
+ PseudoVSUXSEG8EI64_V_M1_MF2 = 12729,
+ PseudoVSUXSEG8EI64_V_M1_MF2_MASK = 12730,
+ PseudoVSUXSEG8EI64_V_M1_MF4 = 12731,
+ PseudoVSUXSEG8EI64_V_M1_MF4_MASK = 12732,
+ PseudoVSUXSEG8EI64_V_M1_MF8 = 12733,
+ PseudoVSUXSEG8EI64_V_M1_MF8_MASK = 12734,
+ PseudoVSUXSEG8EI64_V_M2_M1 = 12735,
+ PseudoVSUXSEG8EI64_V_M2_M1_MASK = 12736,
+ PseudoVSUXSEG8EI64_V_M2_MF2 = 12737,
+ PseudoVSUXSEG8EI64_V_M2_MF2_MASK = 12738,
+ PseudoVSUXSEG8EI64_V_M2_MF4 = 12739,
+ PseudoVSUXSEG8EI64_V_M2_MF4_MASK = 12740,
+ PseudoVSUXSEG8EI64_V_M4_M1 = 12741,
+ PseudoVSUXSEG8EI64_V_M4_M1_MASK = 12742,
+ PseudoVSUXSEG8EI64_V_M4_MF2 = 12743,
+ PseudoVSUXSEG8EI64_V_M4_MF2_MASK = 12744,
+ PseudoVSUXSEG8EI64_V_M8_M1 = 12745,
+ PseudoVSUXSEG8EI64_V_M8_M1_MASK = 12746,
+ PseudoVSUXSEG8EI8_V_M1_M1 = 12747,
+ PseudoVSUXSEG8EI8_V_M1_M1_MASK = 12748,
+ PseudoVSUXSEG8EI8_V_MF2_M1 = 12749,
+ PseudoVSUXSEG8EI8_V_MF2_M1_MASK = 12750,
+ PseudoVSUXSEG8EI8_V_MF2_MF2 = 12751,
+ PseudoVSUXSEG8EI8_V_MF2_MF2_MASK = 12752,
+ PseudoVSUXSEG8EI8_V_MF4_M1 = 12753,
+ PseudoVSUXSEG8EI8_V_MF4_M1_MASK = 12754,
+ PseudoVSUXSEG8EI8_V_MF4_MF2 = 12755,
+ PseudoVSUXSEG8EI8_V_MF4_MF2_MASK = 12756,
+ PseudoVSUXSEG8EI8_V_MF4_MF4 = 12757,
+ PseudoVSUXSEG8EI8_V_MF4_MF4_MASK = 12758,
+ PseudoVSUXSEG8EI8_V_MF8_M1 = 12759,
+ PseudoVSUXSEG8EI8_V_MF8_M1_MASK = 12760,
+ PseudoVSUXSEG8EI8_V_MF8_MF2 = 12761,
+ PseudoVSUXSEG8EI8_V_MF8_MF2_MASK = 12762,
+ PseudoVSUXSEG8EI8_V_MF8_MF4 = 12763,
+ PseudoVSUXSEG8EI8_V_MF8_MF4_MASK = 12764,
+ PseudoVSUXSEG8EI8_V_MF8_MF8 = 12765,
+ PseudoVSUXSEG8EI8_V_MF8_MF8_MASK = 12766,
+ PseudoVWADDU_VV_M1 = 12767,
+ PseudoVWADDU_VV_M1_MASK = 12768,
+ PseudoVWADDU_VV_M2 = 12769,
+ PseudoVWADDU_VV_M2_MASK = 12770,
+ PseudoVWADDU_VV_M4 = 12771,
+ PseudoVWADDU_VV_M4_MASK = 12772,
+ PseudoVWADDU_VV_MF2 = 12773,
+ PseudoVWADDU_VV_MF2_MASK = 12774,
+ PseudoVWADDU_VV_MF4 = 12775,
+ PseudoVWADDU_VV_MF4_MASK = 12776,
+ PseudoVWADDU_VV_MF8 = 12777,
+ PseudoVWADDU_VV_MF8_MASK = 12778,
+ PseudoVWADDU_VX_M1 = 12779,
+ PseudoVWADDU_VX_M1_MASK = 12780,
+ PseudoVWADDU_VX_M2 = 12781,
+ PseudoVWADDU_VX_M2_MASK = 12782,
+ PseudoVWADDU_VX_M4 = 12783,
+ PseudoVWADDU_VX_M4_MASK = 12784,
+ PseudoVWADDU_VX_MF2 = 12785,
+ PseudoVWADDU_VX_MF2_MASK = 12786,
+ PseudoVWADDU_VX_MF4 = 12787,
+ PseudoVWADDU_VX_MF4_MASK = 12788,
+ PseudoVWADDU_VX_MF8 = 12789,
+ PseudoVWADDU_VX_MF8_MASK = 12790,
+ PseudoVWADDU_WV_M1 = 12791,
+ PseudoVWADDU_WV_M1_MASK = 12792,
+ PseudoVWADDU_WV_M1_MASK_TIED = 12793,
+ PseudoVWADDU_WV_M1_TIED = 12794,
+ PseudoVWADDU_WV_M2 = 12795,
+ PseudoVWADDU_WV_M2_MASK = 12796,
+ PseudoVWADDU_WV_M2_MASK_TIED = 12797,
+ PseudoVWADDU_WV_M2_TIED = 12798,
+ PseudoVWADDU_WV_M4 = 12799,
+ PseudoVWADDU_WV_M4_MASK = 12800,
+ PseudoVWADDU_WV_M4_MASK_TIED = 12801,
+ PseudoVWADDU_WV_M4_TIED = 12802,
+ PseudoVWADDU_WV_MF2 = 12803,
+ PseudoVWADDU_WV_MF2_MASK = 12804,
+ PseudoVWADDU_WV_MF2_MASK_TIED = 12805,
+ PseudoVWADDU_WV_MF2_TIED = 12806,
+ PseudoVWADDU_WV_MF4 = 12807,
+ PseudoVWADDU_WV_MF4_MASK = 12808,
+ PseudoVWADDU_WV_MF4_MASK_TIED = 12809,
+ PseudoVWADDU_WV_MF4_TIED = 12810,
+ PseudoVWADDU_WV_MF8 = 12811,
+ PseudoVWADDU_WV_MF8_MASK = 12812,
+ PseudoVWADDU_WV_MF8_MASK_TIED = 12813,
+ PseudoVWADDU_WV_MF8_TIED = 12814,
+ PseudoVWADDU_WX_M1 = 12815,
+ PseudoVWADDU_WX_M1_MASK = 12816,
+ PseudoVWADDU_WX_M2 = 12817,
+ PseudoVWADDU_WX_M2_MASK = 12818,
+ PseudoVWADDU_WX_M4 = 12819,
+ PseudoVWADDU_WX_M4_MASK = 12820,
+ PseudoVWADDU_WX_MF2 = 12821,
+ PseudoVWADDU_WX_MF2_MASK = 12822,
+ PseudoVWADDU_WX_MF4 = 12823,
+ PseudoVWADDU_WX_MF4_MASK = 12824,
+ PseudoVWADDU_WX_MF8 = 12825,
+ PseudoVWADDU_WX_MF8_MASK = 12826,
+ PseudoVWADD_VV_M1 = 12827,
+ PseudoVWADD_VV_M1_MASK = 12828,
+ PseudoVWADD_VV_M2 = 12829,
+ PseudoVWADD_VV_M2_MASK = 12830,
+ PseudoVWADD_VV_M4 = 12831,
+ PseudoVWADD_VV_M4_MASK = 12832,
+ PseudoVWADD_VV_MF2 = 12833,
+ PseudoVWADD_VV_MF2_MASK = 12834,
+ PseudoVWADD_VV_MF4 = 12835,
+ PseudoVWADD_VV_MF4_MASK = 12836,
+ PseudoVWADD_VV_MF8 = 12837,
+ PseudoVWADD_VV_MF8_MASK = 12838,
+ PseudoVWADD_VX_M1 = 12839,
+ PseudoVWADD_VX_M1_MASK = 12840,
+ PseudoVWADD_VX_M2 = 12841,
+ PseudoVWADD_VX_M2_MASK = 12842,
+ PseudoVWADD_VX_M4 = 12843,
+ PseudoVWADD_VX_M4_MASK = 12844,
+ PseudoVWADD_VX_MF2 = 12845,
+ PseudoVWADD_VX_MF2_MASK = 12846,
+ PseudoVWADD_VX_MF4 = 12847,
+ PseudoVWADD_VX_MF4_MASK = 12848,
+ PseudoVWADD_VX_MF8 = 12849,
+ PseudoVWADD_VX_MF8_MASK = 12850,
+ PseudoVWADD_WV_M1 = 12851,
+ PseudoVWADD_WV_M1_MASK = 12852,
+ PseudoVWADD_WV_M1_MASK_TIED = 12853,
+ PseudoVWADD_WV_M1_TIED = 12854,
+ PseudoVWADD_WV_M2 = 12855,
+ PseudoVWADD_WV_M2_MASK = 12856,
+ PseudoVWADD_WV_M2_MASK_TIED = 12857,
+ PseudoVWADD_WV_M2_TIED = 12858,
+ PseudoVWADD_WV_M4 = 12859,
+ PseudoVWADD_WV_M4_MASK = 12860,
+ PseudoVWADD_WV_M4_MASK_TIED = 12861,
+ PseudoVWADD_WV_M4_TIED = 12862,
+ PseudoVWADD_WV_MF2 = 12863,
+ PseudoVWADD_WV_MF2_MASK = 12864,
+ PseudoVWADD_WV_MF2_MASK_TIED = 12865,
+ PseudoVWADD_WV_MF2_TIED = 12866,
+ PseudoVWADD_WV_MF4 = 12867,
+ PseudoVWADD_WV_MF4_MASK = 12868,
+ PseudoVWADD_WV_MF4_MASK_TIED = 12869,
+ PseudoVWADD_WV_MF4_TIED = 12870,
+ PseudoVWADD_WV_MF8 = 12871,
+ PseudoVWADD_WV_MF8_MASK = 12872,
+ PseudoVWADD_WV_MF8_MASK_TIED = 12873,
+ PseudoVWADD_WV_MF8_TIED = 12874,
+ PseudoVWADD_WX_M1 = 12875,
+ PseudoVWADD_WX_M1_MASK = 12876,
+ PseudoVWADD_WX_M2 = 12877,
+ PseudoVWADD_WX_M2_MASK = 12878,
+ PseudoVWADD_WX_M4 = 12879,
+ PseudoVWADD_WX_M4_MASK = 12880,
+ PseudoVWADD_WX_MF2 = 12881,
+ PseudoVWADD_WX_MF2_MASK = 12882,
+ PseudoVWADD_WX_MF4 = 12883,
+ PseudoVWADD_WX_MF4_MASK = 12884,
+ PseudoVWADD_WX_MF8 = 12885,
+ PseudoVWADD_WX_MF8_MASK = 12886,
+ PseudoVWMACCSU_VV_M1 = 12887,
+ PseudoVWMACCSU_VV_M1_MASK = 12888,
+ PseudoVWMACCSU_VV_M2 = 12889,
+ PseudoVWMACCSU_VV_M2_MASK = 12890,
+ PseudoVWMACCSU_VV_M4 = 12891,
+ PseudoVWMACCSU_VV_M4_MASK = 12892,
+ PseudoVWMACCSU_VV_MF2 = 12893,
+ PseudoVWMACCSU_VV_MF2_MASK = 12894,
+ PseudoVWMACCSU_VV_MF4 = 12895,
+ PseudoVWMACCSU_VV_MF4_MASK = 12896,
+ PseudoVWMACCSU_VV_MF8 = 12897,
+ PseudoVWMACCSU_VV_MF8_MASK = 12898,
+ PseudoVWMACCSU_VX_M1 = 12899,
+ PseudoVWMACCSU_VX_M1_MASK = 12900,
+ PseudoVWMACCSU_VX_M2 = 12901,
+ PseudoVWMACCSU_VX_M2_MASK = 12902,
+ PseudoVWMACCSU_VX_M4 = 12903,
+ PseudoVWMACCSU_VX_M4_MASK = 12904,
+ PseudoVWMACCSU_VX_MF2 = 12905,
+ PseudoVWMACCSU_VX_MF2_MASK = 12906,
+ PseudoVWMACCSU_VX_MF4 = 12907,
+ PseudoVWMACCSU_VX_MF4_MASK = 12908,
+ PseudoVWMACCSU_VX_MF8 = 12909,
+ PseudoVWMACCSU_VX_MF8_MASK = 12910,
+ PseudoVWMACCUS_VX_M1 = 12911,
+ PseudoVWMACCUS_VX_M1_MASK = 12912,
+ PseudoVWMACCUS_VX_M2 = 12913,
+ PseudoVWMACCUS_VX_M2_MASK = 12914,
+ PseudoVWMACCUS_VX_M4 = 12915,
+ PseudoVWMACCUS_VX_M4_MASK = 12916,
+ PseudoVWMACCUS_VX_MF2 = 12917,
+ PseudoVWMACCUS_VX_MF2_MASK = 12918,
+ PseudoVWMACCUS_VX_MF4 = 12919,
+ PseudoVWMACCUS_VX_MF4_MASK = 12920,
+ PseudoVWMACCUS_VX_MF8 = 12921,
+ PseudoVWMACCUS_VX_MF8_MASK = 12922,
+ PseudoVWMACCU_VV_M1 = 12923,
+ PseudoVWMACCU_VV_M1_MASK = 12924,
+ PseudoVWMACCU_VV_M2 = 12925,
+ PseudoVWMACCU_VV_M2_MASK = 12926,
+ PseudoVWMACCU_VV_M4 = 12927,
+ PseudoVWMACCU_VV_M4_MASK = 12928,
+ PseudoVWMACCU_VV_MF2 = 12929,
+ PseudoVWMACCU_VV_MF2_MASK = 12930,
+ PseudoVWMACCU_VV_MF4 = 12931,
+ PseudoVWMACCU_VV_MF4_MASK = 12932,
+ PseudoVWMACCU_VV_MF8 = 12933,
+ PseudoVWMACCU_VV_MF8_MASK = 12934,
+ PseudoVWMACCU_VX_M1 = 12935,
+ PseudoVWMACCU_VX_M1_MASK = 12936,
+ PseudoVWMACCU_VX_M2 = 12937,
+ PseudoVWMACCU_VX_M2_MASK = 12938,
+ PseudoVWMACCU_VX_M4 = 12939,
+ PseudoVWMACCU_VX_M4_MASK = 12940,
+ PseudoVWMACCU_VX_MF2 = 12941,
+ PseudoVWMACCU_VX_MF2_MASK = 12942,
+ PseudoVWMACCU_VX_MF4 = 12943,
+ PseudoVWMACCU_VX_MF4_MASK = 12944,
+ PseudoVWMACCU_VX_MF8 = 12945,
+ PseudoVWMACCU_VX_MF8_MASK = 12946,
+ PseudoVWMACC_VV_M1 = 12947,
+ PseudoVWMACC_VV_M1_MASK = 12948,
+ PseudoVWMACC_VV_M2 = 12949,
+ PseudoVWMACC_VV_M2_MASK = 12950,
+ PseudoVWMACC_VV_M4 = 12951,
+ PseudoVWMACC_VV_M4_MASK = 12952,
+ PseudoVWMACC_VV_MF2 = 12953,
+ PseudoVWMACC_VV_MF2_MASK = 12954,
+ PseudoVWMACC_VV_MF4 = 12955,
+ PseudoVWMACC_VV_MF4_MASK = 12956,
+ PseudoVWMACC_VV_MF8 = 12957,
+ PseudoVWMACC_VV_MF8_MASK = 12958,
+ PseudoVWMACC_VX_M1 = 12959,
+ PseudoVWMACC_VX_M1_MASK = 12960,
+ PseudoVWMACC_VX_M2 = 12961,
+ PseudoVWMACC_VX_M2_MASK = 12962,
+ PseudoVWMACC_VX_M4 = 12963,
+ PseudoVWMACC_VX_M4_MASK = 12964,
+ PseudoVWMACC_VX_MF2 = 12965,
+ PseudoVWMACC_VX_MF2_MASK = 12966,
+ PseudoVWMACC_VX_MF4 = 12967,
+ PseudoVWMACC_VX_MF4_MASK = 12968,
+ PseudoVWMACC_VX_MF8 = 12969,
+ PseudoVWMACC_VX_MF8_MASK = 12970,
+ PseudoVWMULSU_VV_M1 = 12971,
+ PseudoVWMULSU_VV_M1_MASK = 12972,
+ PseudoVWMULSU_VV_M2 = 12973,
+ PseudoVWMULSU_VV_M2_MASK = 12974,
+ PseudoVWMULSU_VV_M4 = 12975,
+ PseudoVWMULSU_VV_M4_MASK = 12976,
+ PseudoVWMULSU_VV_MF2 = 12977,
+ PseudoVWMULSU_VV_MF2_MASK = 12978,
+ PseudoVWMULSU_VV_MF4 = 12979,
+ PseudoVWMULSU_VV_MF4_MASK = 12980,
+ PseudoVWMULSU_VV_MF8 = 12981,
+ PseudoVWMULSU_VV_MF8_MASK = 12982,
+ PseudoVWMULSU_VX_M1 = 12983,
+ PseudoVWMULSU_VX_M1_MASK = 12984,
+ PseudoVWMULSU_VX_M2 = 12985,
+ PseudoVWMULSU_VX_M2_MASK = 12986,
+ PseudoVWMULSU_VX_M4 = 12987,
+ PseudoVWMULSU_VX_M4_MASK = 12988,
+ PseudoVWMULSU_VX_MF2 = 12989,
+ PseudoVWMULSU_VX_MF2_MASK = 12990,
+ PseudoVWMULSU_VX_MF4 = 12991,
+ PseudoVWMULSU_VX_MF4_MASK = 12992,
+ PseudoVWMULSU_VX_MF8 = 12993,
+ PseudoVWMULSU_VX_MF8_MASK = 12994,
+ PseudoVWMULU_VV_M1 = 12995,
+ PseudoVWMULU_VV_M1_MASK = 12996,
+ PseudoVWMULU_VV_M2 = 12997,
+ PseudoVWMULU_VV_M2_MASK = 12998,
+ PseudoVWMULU_VV_M4 = 12999,
+ PseudoVWMULU_VV_M4_MASK = 13000,
+ PseudoVWMULU_VV_MF2 = 13001,
+ PseudoVWMULU_VV_MF2_MASK = 13002,
+ PseudoVWMULU_VV_MF4 = 13003,
+ PseudoVWMULU_VV_MF4_MASK = 13004,
+ PseudoVWMULU_VV_MF8 = 13005,
+ PseudoVWMULU_VV_MF8_MASK = 13006,
+ PseudoVWMULU_VX_M1 = 13007,
+ PseudoVWMULU_VX_M1_MASK = 13008,
+ PseudoVWMULU_VX_M2 = 13009,
+ PseudoVWMULU_VX_M2_MASK = 13010,
+ PseudoVWMULU_VX_M4 = 13011,
+ PseudoVWMULU_VX_M4_MASK = 13012,
+ PseudoVWMULU_VX_MF2 = 13013,
+ PseudoVWMULU_VX_MF2_MASK = 13014,
+ PseudoVWMULU_VX_MF4 = 13015,
+ PseudoVWMULU_VX_MF4_MASK = 13016,
+ PseudoVWMULU_VX_MF8 = 13017,
+ PseudoVWMULU_VX_MF8_MASK = 13018,
+ PseudoVWMUL_VV_M1 = 13019,
+ PseudoVWMUL_VV_M1_MASK = 13020,
+ PseudoVWMUL_VV_M2 = 13021,
+ PseudoVWMUL_VV_M2_MASK = 13022,
+ PseudoVWMUL_VV_M4 = 13023,
+ PseudoVWMUL_VV_M4_MASK = 13024,
+ PseudoVWMUL_VV_MF2 = 13025,
+ PseudoVWMUL_VV_MF2_MASK = 13026,
+ PseudoVWMUL_VV_MF4 = 13027,
+ PseudoVWMUL_VV_MF4_MASK = 13028,
+ PseudoVWMUL_VV_MF8 = 13029,
+ PseudoVWMUL_VV_MF8_MASK = 13030,
+ PseudoVWMUL_VX_M1 = 13031,
+ PseudoVWMUL_VX_M1_MASK = 13032,
+ PseudoVWMUL_VX_M2 = 13033,
+ PseudoVWMUL_VX_M2_MASK = 13034,
+ PseudoVWMUL_VX_M4 = 13035,
+ PseudoVWMUL_VX_M4_MASK = 13036,
+ PseudoVWMUL_VX_MF2 = 13037,
+ PseudoVWMUL_VX_MF2_MASK = 13038,
+ PseudoVWMUL_VX_MF4 = 13039,
+ PseudoVWMUL_VX_MF4_MASK = 13040,
+ PseudoVWMUL_VX_MF8 = 13041,
+ PseudoVWMUL_VX_MF8_MASK = 13042,
+ PseudoVWREDSUMU_VS_M1_E16 = 13043,
+ PseudoVWREDSUMU_VS_M1_E16_MASK = 13044,
+ PseudoVWREDSUMU_VS_M1_E32 = 13045,
+ PseudoVWREDSUMU_VS_M1_E32_MASK = 13046,
+ PseudoVWREDSUMU_VS_M1_E8 = 13047,
+ PseudoVWREDSUMU_VS_M1_E8_MASK = 13048,
+ PseudoVWREDSUMU_VS_M2_E16 = 13049,
+ PseudoVWREDSUMU_VS_M2_E16_MASK = 13050,
+ PseudoVWREDSUMU_VS_M2_E32 = 13051,
+ PseudoVWREDSUMU_VS_M2_E32_MASK = 13052,
+ PseudoVWREDSUMU_VS_M2_E8 = 13053,
+ PseudoVWREDSUMU_VS_M2_E8_MASK = 13054,
+ PseudoVWREDSUMU_VS_M4_E16 = 13055,
+ PseudoVWREDSUMU_VS_M4_E16_MASK = 13056,
+ PseudoVWREDSUMU_VS_M4_E32 = 13057,
+ PseudoVWREDSUMU_VS_M4_E32_MASK = 13058,
+ PseudoVWREDSUMU_VS_M4_E8 = 13059,
+ PseudoVWREDSUMU_VS_M4_E8_MASK = 13060,
+ PseudoVWREDSUMU_VS_M8_E16 = 13061,
+ PseudoVWREDSUMU_VS_M8_E16_MASK = 13062,
+ PseudoVWREDSUMU_VS_M8_E32 = 13063,
+ PseudoVWREDSUMU_VS_M8_E32_MASK = 13064,
+ PseudoVWREDSUMU_VS_M8_E8 = 13065,
+ PseudoVWREDSUMU_VS_M8_E8_MASK = 13066,
+ PseudoVWREDSUMU_VS_MF2_E16 = 13067,
+ PseudoVWREDSUMU_VS_MF2_E16_MASK = 13068,
+ PseudoVWREDSUMU_VS_MF2_E32 = 13069,
+ PseudoVWREDSUMU_VS_MF2_E32_MASK = 13070,
+ PseudoVWREDSUMU_VS_MF2_E8 = 13071,
+ PseudoVWREDSUMU_VS_MF2_E8_MASK = 13072,
+ PseudoVWREDSUMU_VS_MF4_E16 = 13073,
+ PseudoVWREDSUMU_VS_MF4_E16_MASK = 13074,
+ PseudoVWREDSUMU_VS_MF4_E8 = 13075,
+ PseudoVWREDSUMU_VS_MF4_E8_MASK = 13076,
+ PseudoVWREDSUMU_VS_MF8_E8 = 13077,
+ PseudoVWREDSUMU_VS_MF8_E8_MASK = 13078,
+ PseudoVWREDSUM_VS_M1_E16 = 13079,
+ PseudoVWREDSUM_VS_M1_E16_MASK = 13080,
+ PseudoVWREDSUM_VS_M1_E32 = 13081,
+ PseudoVWREDSUM_VS_M1_E32_MASK = 13082,
+ PseudoVWREDSUM_VS_M1_E8 = 13083,
+ PseudoVWREDSUM_VS_M1_E8_MASK = 13084,
+ PseudoVWREDSUM_VS_M2_E16 = 13085,
+ PseudoVWREDSUM_VS_M2_E16_MASK = 13086,
+ PseudoVWREDSUM_VS_M2_E32 = 13087,
+ PseudoVWREDSUM_VS_M2_E32_MASK = 13088,
+ PseudoVWREDSUM_VS_M2_E8 = 13089,
+ PseudoVWREDSUM_VS_M2_E8_MASK = 13090,
+ PseudoVWREDSUM_VS_M4_E16 = 13091,
+ PseudoVWREDSUM_VS_M4_E16_MASK = 13092,
+ PseudoVWREDSUM_VS_M4_E32 = 13093,
+ PseudoVWREDSUM_VS_M4_E32_MASK = 13094,
+ PseudoVWREDSUM_VS_M4_E8 = 13095,
+ PseudoVWREDSUM_VS_M4_E8_MASK = 13096,
+ PseudoVWREDSUM_VS_M8_E16 = 13097,
+ PseudoVWREDSUM_VS_M8_E16_MASK = 13098,
+ PseudoVWREDSUM_VS_M8_E32 = 13099,
+ PseudoVWREDSUM_VS_M8_E32_MASK = 13100,
+ PseudoVWREDSUM_VS_M8_E8 = 13101,
+ PseudoVWREDSUM_VS_M8_E8_MASK = 13102,
+ PseudoVWREDSUM_VS_MF2_E16 = 13103,
+ PseudoVWREDSUM_VS_MF2_E16_MASK = 13104,
+ PseudoVWREDSUM_VS_MF2_E32 = 13105,
+ PseudoVWREDSUM_VS_MF2_E32_MASK = 13106,
+ PseudoVWREDSUM_VS_MF2_E8 = 13107,
+ PseudoVWREDSUM_VS_MF2_E8_MASK = 13108,
+ PseudoVWREDSUM_VS_MF4_E16 = 13109,
+ PseudoVWREDSUM_VS_MF4_E16_MASK = 13110,
+ PseudoVWREDSUM_VS_MF4_E8 = 13111,
+ PseudoVWREDSUM_VS_MF4_E8_MASK = 13112,
+ PseudoVWREDSUM_VS_MF8_E8 = 13113,
+ PseudoVWREDSUM_VS_MF8_E8_MASK = 13114,
+ PseudoVWSLL_VI_M1 = 13115,
+ PseudoVWSLL_VI_M1_MASK = 13116,
+ PseudoVWSLL_VI_M2 = 13117,
+ PseudoVWSLL_VI_M2_MASK = 13118,
+ PseudoVWSLL_VI_M4 = 13119,
+ PseudoVWSLL_VI_M4_MASK = 13120,
+ PseudoVWSLL_VI_MF2 = 13121,
+ PseudoVWSLL_VI_MF2_MASK = 13122,
+ PseudoVWSLL_VI_MF4 = 13123,
+ PseudoVWSLL_VI_MF4_MASK = 13124,
+ PseudoVWSLL_VI_MF8 = 13125,
+ PseudoVWSLL_VI_MF8_MASK = 13126,
+ PseudoVWSLL_VV_M1 = 13127,
+ PseudoVWSLL_VV_M1_MASK = 13128,
+ PseudoVWSLL_VV_M2 = 13129,
+ PseudoVWSLL_VV_M2_MASK = 13130,
+ PseudoVWSLL_VV_M4 = 13131,
+ PseudoVWSLL_VV_M4_MASK = 13132,
+ PseudoVWSLL_VV_MF2 = 13133,
+ PseudoVWSLL_VV_MF2_MASK = 13134,
+ PseudoVWSLL_VV_MF4 = 13135,
+ PseudoVWSLL_VV_MF4_MASK = 13136,
+ PseudoVWSLL_VV_MF8 = 13137,
+ PseudoVWSLL_VV_MF8_MASK = 13138,
+ PseudoVWSLL_VX_M1 = 13139,
+ PseudoVWSLL_VX_M1_MASK = 13140,
+ PseudoVWSLL_VX_M2 = 13141,
+ PseudoVWSLL_VX_M2_MASK = 13142,
+ PseudoVWSLL_VX_M4 = 13143,
+ PseudoVWSLL_VX_M4_MASK = 13144,
+ PseudoVWSLL_VX_MF2 = 13145,
+ PseudoVWSLL_VX_MF2_MASK = 13146,
+ PseudoVWSLL_VX_MF4 = 13147,
+ PseudoVWSLL_VX_MF4_MASK = 13148,
+ PseudoVWSLL_VX_MF8 = 13149,
+ PseudoVWSLL_VX_MF8_MASK = 13150,
+ PseudoVWSUBU_VV_M1 = 13151,
+ PseudoVWSUBU_VV_M1_MASK = 13152,
+ PseudoVWSUBU_VV_M2 = 13153,
+ PseudoVWSUBU_VV_M2_MASK = 13154,
+ PseudoVWSUBU_VV_M4 = 13155,
+ PseudoVWSUBU_VV_M4_MASK = 13156,
+ PseudoVWSUBU_VV_MF2 = 13157,
+ PseudoVWSUBU_VV_MF2_MASK = 13158,
+ PseudoVWSUBU_VV_MF4 = 13159,
+ PseudoVWSUBU_VV_MF4_MASK = 13160,
+ PseudoVWSUBU_VV_MF8 = 13161,
+ PseudoVWSUBU_VV_MF8_MASK = 13162,
+ PseudoVWSUBU_VX_M1 = 13163,
+ PseudoVWSUBU_VX_M1_MASK = 13164,
+ PseudoVWSUBU_VX_M2 = 13165,
+ PseudoVWSUBU_VX_M2_MASK = 13166,
+ PseudoVWSUBU_VX_M4 = 13167,
+ PseudoVWSUBU_VX_M4_MASK = 13168,
+ PseudoVWSUBU_VX_MF2 = 13169,
+ PseudoVWSUBU_VX_MF2_MASK = 13170,
+ PseudoVWSUBU_VX_MF4 = 13171,
+ PseudoVWSUBU_VX_MF4_MASK = 13172,
+ PseudoVWSUBU_VX_MF8 = 13173,
+ PseudoVWSUBU_VX_MF8_MASK = 13174,
+ PseudoVWSUBU_WV_M1 = 13175,
+ PseudoVWSUBU_WV_M1_MASK = 13176,
+ PseudoVWSUBU_WV_M1_MASK_TIED = 13177,
+ PseudoVWSUBU_WV_M1_TIED = 13178,
+ PseudoVWSUBU_WV_M2 = 13179,
+ PseudoVWSUBU_WV_M2_MASK = 13180,
+ PseudoVWSUBU_WV_M2_MASK_TIED = 13181,
+ PseudoVWSUBU_WV_M2_TIED = 13182,
+ PseudoVWSUBU_WV_M4 = 13183,
+ PseudoVWSUBU_WV_M4_MASK = 13184,
+ PseudoVWSUBU_WV_M4_MASK_TIED = 13185,
+ PseudoVWSUBU_WV_M4_TIED = 13186,
+ PseudoVWSUBU_WV_MF2 = 13187,
+ PseudoVWSUBU_WV_MF2_MASK = 13188,
+ PseudoVWSUBU_WV_MF2_MASK_TIED = 13189,
+ PseudoVWSUBU_WV_MF2_TIED = 13190,
+ PseudoVWSUBU_WV_MF4 = 13191,
+ PseudoVWSUBU_WV_MF4_MASK = 13192,
+ PseudoVWSUBU_WV_MF4_MASK_TIED = 13193,
+ PseudoVWSUBU_WV_MF4_TIED = 13194,
+ PseudoVWSUBU_WV_MF8 = 13195,
+ PseudoVWSUBU_WV_MF8_MASK = 13196,
+ PseudoVWSUBU_WV_MF8_MASK_TIED = 13197,
+ PseudoVWSUBU_WV_MF8_TIED = 13198,
+ PseudoVWSUBU_WX_M1 = 13199,
+ PseudoVWSUBU_WX_M1_MASK = 13200,
+ PseudoVWSUBU_WX_M2 = 13201,
+ PseudoVWSUBU_WX_M2_MASK = 13202,
+ PseudoVWSUBU_WX_M4 = 13203,
+ PseudoVWSUBU_WX_M4_MASK = 13204,
+ PseudoVWSUBU_WX_MF2 = 13205,
+ PseudoVWSUBU_WX_MF2_MASK = 13206,
+ PseudoVWSUBU_WX_MF4 = 13207,
+ PseudoVWSUBU_WX_MF4_MASK = 13208,
+ PseudoVWSUBU_WX_MF8 = 13209,
+ PseudoVWSUBU_WX_MF8_MASK = 13210,
+ PseudoVWSUB_VV_M1 = 13211,
+ PseudoVWSUB_VV_M1_MASK = 13212,
+ PseudoVWSUB_VV_M2 = 13213,
+ PseudoVWSUB_VV_M2_MASK = 13214,
+ PseudoVWSUB_VV_M4 = 13215,
+ PseudoVWSUB_VV_M4_MASK = 13216,
+ PseudoVWSUB_VV_MF2 = 13217,
+ PseudoVWSUB_VV_MF2_MASK = 13218,
+ PseudoVWSUB_VV_MF4 = 13219,
+ PseudoVWSUB_VV_MF4_MASK = 13220,
+ PseudoVWSUB_VV_MF8 = 13221,
+ PseudoVWSUB_VV_MF8_MASK = 13222,
+ PseudoVWSUB_VX_M1 = 13223,
+ PseudoVWSUB_VX_M1_MASK = 13224,
+ PseudoVWSUB_VX_M2 = 13225,
+ PseudoVWSUB_VX_M2_MASK = 13226,
+ PseudoVWSUB_VX_M4 = 13227,
+ PseudoVWSUB_VX_M4_MASK = 13228,
+ PseudoVWSUB_VX_MF2 = 13229,
+ PseudoVWSUB_VX_MF2_MASK = 13230,
+ PseudoVWSUB_VX_MF4 = 13231,
+ PseudoVWSUB_VX_MF4_MASK = 13232,
+ PseudoVWSUB_VX_MF8 = 13233,
+ PseudoVWSUB_VX_MF8_MASK = 13234,
+ PseudoVWSUB_WV_M1 = 13235,
+ PseudoVWSUB_WV_M1_MASK = 13236,
+ PseudoVWSUB_WV_M1_MASK_TIED = 13237,
+ PseudoVWSUB_WV_M1_TIED = 13238,
+ PseudoVWSUB_WV_M2 = 13239,
+ PseudoVWSUB_WV_M2_MASK = 13240,
+ PseudoVWSUB_WV_M2_MASK_TIED = 13241,
+ PseudoVWSUB_WV_M2_TIED = 13242,
+ PseudoVWSUB_WV_M4 = 13243,
+ PseudoVWSUB_WV_M4_MASK = 13244,
+ PseudoVWSUB_WV_M4_MASK_TIED = 13245,
+ PseudoVWSUB_WV_M4_TIED = 13246,
+ PseudoVWSUB_WV_MF2 = 13247,
+ PseudoVWSUB_WV_MF2_MASK = 13248,
+ PseudoVWSUB_WV_MF2_MASK_TIED = 13249,
+ PseudoVWSUB_WV_MF2_TIED = 13250,
+ PseudoVWSUB_WV_MF4 = 13251,
+ PseudoVWSUB_WV_MF4_MASK = 13252,
+ PseudoVWSUB_WV_MF4_MASK_TIED = 13253,
+ PseudoVWSUB_WV_MF4_TIED = 13254,
+ PseudoVWSUB_WV_MF8 = 13255,
+ PseudoVWSUB_WV_MF8_MASK = 13256,
+ PseudoVWSUB_WV_MF8_MASK_TIED = 13257,
+ PseudoVWSUB_WV_MF8_TIED = 13258,
+ PseudoVWSUB_WX_M1 = 13259,
+ PseudoVWSUB_WX_M1_MASK = 13260,
+ PseudoVWSUB_WX_M2 = 13261,
+ PseudoVWSUB_WX_M2_MASK = 13262,
+ PseudoVWSUB_WX_M4 = 13263,
+ PseudoVWSUB_WX_M4_MASK = 13264,
+ PseudoVWSUB_WX_MF2 = 13265,
+ PseudoVWSUB_WX_MF2_MASK = 13266,
+ PseudoVWSUB_WX_MF4 = 13267,
+ PseudoVWSUB_WX_MF4_MASK = 13268,
+ PseudoVWSUB_WX_MF8 = 13269,
+ PseudoVWSUB_WX_MF8_MASK = 13270,
+ PseudoVXOR_VI_M1 = 13271,
+ PseudoVXOR_VI_M1_MASK = 13272,
+ PseudoVXOR_VI_M2 = 13273,
+ PseudoVXOR_VI_M2_MASK = 13274,
+ PseudoVXOR_VI_M4 = 13275,
+ PseudoVXOR_VI_M4_MASK = 13276,
+ PseudoVXOR_VI_M8 = 13277,
+ PseudoVXOR_VI_M8_MASK = 13278,
+ PseudoVXOR_VI_MF2 = 13279,
+ PseudoVXOR_VI_MF2_MASK = 13280,
+ PseudoVXOR_VI_MF4 = 13281,
+ PseudoVXOR_VI_MF4_MASK = 13282,
+ PseudoVXOR_VI_MF8 = 13283,
+ PseudoVXOR_VI_MF8_MASK = 13284,
+ PseudoVXOR_VV_M1 = 13285,
+ PseudoVXOR_VV_M1_MASK = 13286,
+ PseudoVXOR_VV_M2 = 13287,
+ PseudoVXOR_VV_M2_MASK = 13288,
+ PseudoVXOR_VV_M4 = 13289,
+ PseudoVXOR_VV_M4_MASK = 13290,
+ PseudoVXOR_VV_M8 = 13291,
+ PseudoVXOR_VV_M8_MASK = 13292,
+ PseudoVXOR_VV_MF2 = 13293,
+ PseudoVXOR_VV_MF2_MASK = 13294,
+ PseudoVXOR_VV_MF4 = 13295,
+ PseudoVXOR_VV_MF4_MASK = 13296,
+ PseudoVXOR_VV_MF8 = 13297,
+ PseudoVXOR_VV_MF8_MASK = 13298,
+ PseudoVXOR_VX_M1 = 13299,
+ PseudoVXOR_VX_M1_MASK = 13300,
+ PseudoVXOR_VX_M2 = 13301,
+ PseudoVXOR_VX_M2_MASK = 13302,
+ PseudoVXOR_VX_M4 = 13303,
+ PseudoVXOR_VX_M4_MASK = 13304,
+ PseudoVXOR_VX_M8 = 13305,
+ PseudoVXOR_VX_M8_MASK = 13306,
+ PseudoVXOR_VX_MF2 = 13307,
+ PseudoVXOR_VX_MF2_MASK = 13308,
+ PseudoVXOR_VX_MF4 = 13309,
+ PseudoVXOR_VX_MF4_MASK = 13310,
+ PseudoVXOR_VX_MF8 = 13311,
+ PseudoVXOR_VX_MF8_MASK = 13312,
+ PseudoVZEXT_VF2_M1 = 13313,
+ PseudoVZEXT_VF2_M1_MASK = 13314,
+ PseudoVZEXT_VF2_M2 = 13315,
+ PseudoVZEXT_VF2_M2_MASK = 13316,
+ PseudoVZEXT_VF2_M4 = 13317,
+ PseudoVZEXT_VF2_M4_MASK = 13318,
+ PseudoVZEXT_VF2_M8 = 13319,
+ PseudoVZEXT_VF2_M8_MASK = 13320,
+ PseudoVZEXT_VF2_MF2 = 13321,
+ PseudoVZEXT_VF2_MF2_MASK = 13322,
+ PseudoVZEXT_VF2_MF4 = 13323,
+ PseudoVZEXT_VF2_MF4_MASK = 13324,
+ PseudoVZEXT_VF4_M1 = 13325,
+ PseudoVZEXT_VF4_M1_MASK = 13326,
+ PseudoVZEXT_VF4_M2 = 13327,
+ PseudoVZEXT_VF4_M2_MASK = 13328,
+ PseudoVZEXT_VF4_M4 = 13329,
+ PseudoVZEXT_VF4_M4_MASK = 13330,
+ PseudoVZEXT_VF4_M8 = 13331,
+ PseudoVZEXT_VF4_M8_MASK = 13332,
+ PseudoVZEXT_VF4_MF2 = 13333,
+ PseudoVZEXT_VF4_MF2_MASK = 13334,
+ PseudoVZEXT_VF8_M1 = 13335,
+ PseudoVZEXT_VF8_M1_MASK = 13336,
+ PseudoVZEXT_VF8_M2 = 13337,
+ PseudoVZEXT_VF8_M2_MASK = 13338,
+ PseudoVZEXT_VF8_M4 = 13339,
+ PseudoVZEXT_VF8_M4_MASK = 13340,
+ PseudoVZEXT_VF8_M8 = 13341,
+ PseudoVZEXT_VF8_M8_MASK = 13342,
+ PseudoZEXT_H = 13343,
+ PseudoZEXT_W = 13344,
+ ReadCounterWide = 13345,
+ ReadFCSR = 13346,
+ ReadFFLAGS = 13347,
+ ReadFRM = 13348,
+ Select_FPR16INX_Using_CC_GPR = 13349,
+ Select_FPR16_Using_CC_GPR = 13350,
+ Select_FPR32INX_Using_CC_GPR = 13351,
+ Select_FPR32_Using_CC_GPR = 13352,
+ Select_FPR64IN32X_Using_CC_GPR = 13353,
+ Select_FPR64INX_Using_CC_GPR = 13354,
+ Select_FPR64_Using_CC_GPR = 13355,
+ Select_GPRNoX0_Using_CC_SImm16NonZero_QC = 13356,
+ Select_GPRNoX0_Using_CC_SImm5NonZero_QC = 13357,
+ Select_GPRNoX0_Using_CC_UImm16NonZero_QC = 13358,
+ Select_GPRNoX0_Using_CC_UImm5NonZero_QC = 13359,
+ Select_GPR_Using_CC_GPR = 13360,
+ Select_GPR_Using_CC_Imm5_Zibi = 13361,
+ Select_GPR_Using_CC_SImm5_CV = 13362,
+ Select_GPR_Using_CC_UImm7_NDS = 13363,
+ Select_GPR_Using_CC_UImmLog2XLen_NDS = 13364,
+ SetFCSR = 13365,
+ SetFCSRImm = 13366,
+ SplitF64Pseudo = 13367,
+ SwapFRMImm = 13368,
+ WriteFCSR = 13369,
+ WriteFCSRImm = 13370,
+ WriteFFLAGS = 13371,
+ WriteFRM = 13372,
+ WriteFRMImm = 13373,
+ WriteVXRMImm = 13374,
+ AADD = 13375,
+ AADDU = 13376,
+ ABS = 13377,
+ ABSW = 13378,
+ ADD = 13379,
+ ADDD = 13380,
+ ADDI = 13381,
+ ADDIW = 13382,
+ ADDW = 13383,
+ ADD_UW = 13384,
+ AES32DSI = 13385,
+ AES32DSMI = 13386,
+ AES32ESI = 13387,
+ AES32ESMI = 13388,
+ AES64DS = 13389,
+ AES64DSM = 13390,
+ AES64ES = 13391,
+ AES64ESM = 13392,
+ AES64IM = 13393,
+ AES64KS1I = 13394,
+ AES64KS2 = 13395,
+ AMOADD_B = 13396,
+ AMOADD_B_AQ = 13397,
+ AMOADD_B_AQRL = 13398,
+ AMOADD_B_RL = 13399,
+ AMOADD_D = 13400,
+ AMOADD_D_AQ = 13401,
+ AMOADD_D_AQRL = 13402,
+ AMOADD_D_RL = 13403,
+ AMOADD_H = 13404,
+ AMOADD_H_AQ = 13405,
+ AMOADD_H_AQRL = 13406,
+ AMOADD_H_RL = 13407,
+ AMOADD_W = 13408,
+ AMOADD_W_AQ = 13409,
+ AMOADD_W_AQRL = 13410,
+ AMOADD_W_RL = 13411,
+ AMOAND_B = 13412,
+ AMOAND_B_AQ = 13413,
+ AMOAND_B_AQRL = 13414,
+ AMOAND_B_RL = 13415,
+ AMOAND_D = 13416,
+ AMOAND_D_AQ = 13417,
+ AMOAND_D_AQRL = 13418,
+ AMOAND_D_RL = 13419,
+ AMOAND_H = 13420,
+ AMOAND_H_AQ = 13421,
+ AMOAND_H_AQRL = 13422,
+ AMOAND_H_RL = 13423,
+ AMOAND_W = 13424,
+ AMOAND_W_AQ = 13425,
+ AMOAND_W_AQRL = 13426,
+ AMOAND_W_RL = 13427,
+ AMOCAS_B = 13428,
+ AMOCAS_B_AQ = 13429,
+ AMOCAS_B_AQRL = 13430,
+ AMOCAS_B_RL = 13431,
+ AMOCAS_D_RV32 = 13432,
+ AMOCAS_D_RV32_AQ = 13433,
+ AMOCAS_D_RV32_AQRL = 13434,
+ AMOCAS_D_RV32_RL = 13435,
+ AMOCAS_D_RV64 = 13436,
+ AMOCAS_D_RV64_AQ = 13437,
+ AMOCAS_D_RV64_AQRL = 13438,
+ AMOCAS_D_RV64_RL = 13439,
+ AMOCAS_H = 13440,
+ AMOCAS_H_AQ = 13441,
+ AMOCAS_H_AQRL = 13442,
+ AMOCAS_H_RL = 13443,
+ AMOCAS_Q = 13444,
+ AMOCAS_Q_AQ = 13445,
+ AMOCAS_Q_AQRL = 13446,
+ AMOCAS_Q_RL = 13447,
+ AMOCAS_W = 13448,
+ AMOCAS_W_AQ = 13449,
+ AMOCAS_W_AQRL = 13450,
+ AMOCAS_W_RL = 13451,
+ AMOMAXU_B = 13452,
+ AMOMAXU_B_AQ = 13453,
+ AMOMAXU_B_AQRL = 13454,
+ AMOMAXU_B_RL = 13455,
+ AMOMAXU_D = 13456,
+ AMOMAXU_D_AQ = 13457,
+ AMOMAXU_D_AQRL = 13458,
+ AMOMAXU_D_RL = 13459,
+ AMOMAXU_H = 13460,
+ AMOMAXU_H_AQ = 13461,
+ AMOMAXU_H_AQRL = 13462,
+ AMOMAXU_H_RL = 13463,
+ AMOMAXU_W = 13464,
+ AMOMAXU_W_AQ = 13465,
+ AMOMAXU_W_AQRL = 13466,
+ AMOMAXU_W_RL = 13467,
+ AMOMAX_B = 13468,
+ AMOMAX_B_AQ = 13469,
+ AMOMAX_B_AQRL = 13470,
+ AMOMAX_B_RL = 13471,
+ AMOMAX_D = 13472,
+ AMOMAX_D_AQ = 13473,
+ AMOMAX_D_AQRL = 13474,
+ AMOMAX_D_RL = 13475,
+ AMOMAX_H = 13476,
+ AMOMAX_H_AQ = 13477,
+ AMOMAX_H_AQRL = 13478,
+ AMOMAX_H_RL = 13479,
+ AMOMAX_W = 13480,
+ AMOMAX_W_AQ = 13481,
+ AMOMAX_W_AQRL = 13482,
+ AMOMAX_W_RL = 13483,
+ AMOMINU_B = 13484,
+ AMOMINU_B_AQ = 13485,
+ AMOMINU_B_AQRL = 13486,
+ AMOMINU_B_RL = 13487,
+ AMOMINU_D = 13488,
+ AMOMINU_D_AQ = 13489,
+ AMOMINU_D_AQRL = 13490,
+ AMOMINU_D_RL = 13491,
+ AMOMINU_H = 13492,
+ AMOMINU_H_AQ = 13493,
+ AMOMINU_H_AQRL = 13494,
+ AMOMINU_H_RL = 13495,
+ AMOMINU_W = 13496,
+ AMOMINU_W_AQ = 13497,
+ AMOMINU_W_AQRL = 13498,
+ AMOMINU_W_RL = 13499,
+ AMOMIN_B = 13500,
+ AMOMIN_B_AQ = 13501,
+ AMOMIN_B_AQRL = 13502,
+ AMOMIN_B_RL = 13503,
+ AMOMIN_D = 13504,
+ AMOMIN_D_AQ = 13505,
+ AMOMIN_D_AQRL = 13506,
+ AMOMIN_D_RL = 13507,
+ AMOMIN_H = 13508,
+ AMOMIN_H_AQ = 13509,
+ AMOMIN_H_AQRL = 13510,
+ AMOMIN_H_RL = 13511,
+ AMOMIN_W = 13512,
+ AMOMIN_W_AQ = 13513,
+ AMOMIN_W_AQRL = 13514,
+ AMOMIN_W_RL = 13515,
+ AMOOR_B = 13516,
+ AMOOR_B_AQ = 13517,
+ AMOOR_B_AQRL = 13518,
+ AMOOR_B_RL = 13519,
+ AMOOR_D = 13520,
+ AMOOR_D_AQ = 13521,
+ AMOOR_D_AQRL = 13522,
+ AMOOR_D_RL = 13523,
+ AMOOR_H = 13524,
+ AMOOR_H_AQ = 13525,
+ AMOOR_H_AQRL = 13526,
+ AMOOR_H_RL = 13527,
+ AMOOR_W = 13528,
+ AMOOR_W_AQ = 13529,
+ AMOOR_W_AQRL = 13530,
+ AMOOR_W_RL = 13531,
+ AMOSWAP_B = 13532,
+ AMOSWAP_B_AQ = 13533,
+ AMOSWAP_B_AQRL = 13534,
+ AMOSWAP_B_RL = 13535,
+ AMOSWAP_D = 13536,
+ AMOSWAP_D_AQ = 13537,
+ AMOSWAP_D_AQRL = 13538,
+ AMOSWAP_D_RL = 13539,
+ AMOSWAP_H = 13540,
+ AMOSWAP_H_AQ = 13541,
+ AMOSWAP_H_AQRL = 13542,
+ AMOSWAP_H_RL = 13543,
+ AMOSWAP_W = 13544,
+ AMOSWAP_W_AQ = 13545,
+ AMOSWAP_W_AQRL = 13546,
+ AMOSWAP_W_RL = 13547,
+ AMOXOR_B = 13548,
+ AMOXOR_B_AQ = 13549,
+ AMOXOR_B_AQRL = 13550,
+ AMOXOR_B_RL = 13551,
+ AMOXOR_D = 13552,
+ AMOXOR_D_AQ = 13553,
+ AMOXOR_D_AQRL = 13554,
+ AMOXOR_D_RL = 13555,
+ AMOXOR_H = 13556,
+ AMOXOR_H_AQ = 13557,
+ AMOXOR_H_AQRL = 13558,
+ AMOXOR_H_RL = 13559,
+ AMOXOR_W = 13560,
+ AMOXOR_W_AQ = 13561,
+ AMOXOR_W_AQRL = 13562,
+ AMOXOR_W_RL = 13563,
+ AND = 13564,
+ ANDI = 13565,
+ ANDN = 13566,
+ ASUB = 13567,
+ ASUBU = 13568,
+ AUIPC = 13569,
+ BCLR = 13570,
+ BCLRI = 13571,
+ BEQ = 13572,
+ BEQI = 13573,
+ BEXT = 13574,
+ BEXTI = 13575,
+ BGE = 13576,
+ BGEU = 13577,
+ BINV = 13578,
+ BINVI = 13579,
+ BLT = 13580,
+ BLTU = 13581,
+ BNE = 13582,
+ BNEI = 13583,
+ BREV8 = 13584,
+ BSET = 13585,
+ BSETI = 13586,
+ CBO_CLEAN = 13587,
+ CBO_FLUSH = 13588,
+ CBO_INVAL = 13589,
+ CBO_ZERO = 13590,
+ CLMUL = 13591,
+ CLMULH = 13592,
+ CLMULR = 13593,
+ CLS = 13594,
+ CLSW = 13595,
+ CLZ = 13596,
+ CLZW = 13597,
+ CM_JALT = 13598,
+ CM_JT = 13599,
+ CM_MVA01S = 13600,
+ CM_MVSA01 = 13601,
+ CM_POP = 13602,
+ CM_POPRET = 13603,
+ CM_POPRETZ = 13604,
+ CM_PUSH = 13605,
+ CPOP = 13606,
+ CPOPW = 13607,
+ CSRRC = 13608,
+ CSRRCI = 13609,
+ CSRRS = 13610,
+ CSRRSI = 13611,
+ CSRRW = 13612,
+ CSRRWI = 13613,
+ CTZ = 13614,
+ CTZW = 13615,
+ CV_ABS = 13616,
+ CV_ABS_B = 13617,
+ CV_ABS_H = 13618,
+ CV_ADDN = 13619,
+ CV_ADDNR = 13620,
+ CV_ADDRN = 13621,
+ CV_ADDRNR = 13622,
+ CV_ADDUN = 13623,
+ CV_ADDUNR = 13624,
+ CV_ADDURN = 13625,
+ CV_ADDURNR = 13626,
+ CV_ADD_B = 13627,
+ CV_ADD_DIV2 = 13628,
+ CV_ADD_DIV4 = 13629,
+ CV_ADD_DIV8 = 13630,
+ CV_ADD_H = 13631,
+ CV_ADD_SCI_B = 13632,
+ CV_ADD_SCI_H = 13633,
+ CV_ADD_SC_B = 13634,
+ CV_ADD_SC_H = 13635,
+ CV_AND_B = 13636,
+ CV_AND_H = 13637,
+ CV_AND_SCI_B = 13638,
+ CV_AND_SCI_H = 13639,
+ CV_AND_SC_B = 13640,
+ CV_AND_SC_H = 13641,
+ CV_AVGU_B = 13642,
+ CV_AVGU_H = 13643,
+ CV_AVGU_SCI_B = 13644,
+ CV_AVGU_SCI_H = 13645,
+ CV_AVGU_SC_B = 13646,
+ CV_AVGU_SC_H = 13647,
+ CV_AVG_B = 13648,
+ CV_AVG_H = 13649,
+ CV_AVG_SCI_B = 13650,
+ CV_AVG_SCI_H = 13651,
+ CV_AVG_SC_B = 13652,
+ CV_AVG_SC_H = 13653,
+ CV_BCLR = 13654,
+ CV_BCLRR = 13655,
+ CV_BEQIMM = 13656,
+ CV_BITREV = 13657,
+ CV_BNEIMM = 13658,
+ CV_BSET = 13659,
+ CV_BSETR = 13660,
+ CV_CLB = 13661,
+ CV_CLIP = 13662,
+ CV_CLIPR = 13663,
+ CV_CLIPU = 13664,
+ CV_CLIPUR = 13665,
+ CV_CMPEQ_B = 13666,
+ CV_CMPEQ_H = 13667,
+ CV_CMPEQ_SCI_B = 13668,
+ CV_CMPEQ_SCI_H = 13669,
+ CV_CMPEQ_SC_B = 13670,
+ CV_CMPEQ_SC_H = 13671,
+ CV_CMPGEU_B = 13672,
+ CV_CMPGEU_H = 13673,
+ CV_CMPGEU_SCI_B = 13674,
+ CV_CMPGEU_SCI_H = 13675,
+ CV_CMPGEU_SC_B = 13676,
+ CV_CMPGEU_SC_H = 13677,
+ CV_CMPGE_B = 13678,
+ CV_CMPGE_H = 13679,
+ CV_CMPGE_SCI_B = 13680,
+ CV_CMPGE_SCI_H = 13681,
+ CV_CMPGE_SC_B = 13682,
+ CV_CMPGE_SC_H = 13683,
+ CV_CMPGTU_B = 13684,
+ CV_CMPGTU_H = 13685,
+ CV_CMPGTU_SCI_B = 13686,
+ CV_CMPGTU_SCI_H = 13687,
+ CV_CMPGTU_SC_B = 13688,
+ CV_CMPGTU_SC_H = 13689,
+ CV_CMPGT_B = 13690,
+ CV_CMPGT_H = 13691,
+ CV_CMPGT_SCI_B = 13692,
+ CV_CMPGT_SCI_H = 13693,
+ CV_CMPGT_SC_B = 13694,
+ CV_CMPGT_SC_H = 13695,
+ CV_CMPLEU_B = 13696,
+ CV_CMPLEU_H = 13697,
+ CV_CMPLEU_SCI_B = 13698,
+ CV_CMPLEU_SCI_H = 13699,
+ CV_CMPLEU_SC_B = 13700,
+ CV_CMPLEU_SC_H = 13701,
+ CV_CMPLE_B = 13702,
+ CV_CMPLE_H = 13703,
+ CV_CMPLE_SCI_B = 13704,
+ CV_CMPLE_SCI_H = 13705,
+ CV_CMPLE_SC_B = 13706,
+ CV_CMPLE_SC_H = 13707,
+ CV_CMPLTU_B = 13708,
+ CV_CMPLTU_H = 13709,
+ CV_CMPLTU_SCI_B = 13710,
+ CV_CMPLTU_SCI_H = 13711,
+ CV_CMPLTU_SC_B = 13712,
+ CV_CMPLTU_SC_H = 13713,
+ CV_CMPLT_B = 13714,
+ CV_CMPLT_H = 13715,
+ CV_CMPLT_SCI_B = 13716,
+ CV_CMPLT_SCI_H = 13717,
+ CV_CMPLT_SC_B = 13718,
+ CV_CMPLT_SC_H = 13719,
+ CV_CMPNE_B = 13720,
+ CV_CMPNE_H = 13721,
+ CV_CMPNE_SCI_B = 13722,
+ CV_CMPNE_SCI_H = 13723,
+ CV_CMPNE_SC_B = 13724,
+ CV_CMPNE_SC_H = 13725,
+ CV_CNT = 13726,
+ CV_CPLXCONJ = 13727,
+ CV_CPLXMUL_I = 13728,
+ CV_CPLXMUL_I_DIV2 = 13729,
+ CV_CPLXMUL_I_DIV4 = 13730,
+ CV_CPLXMUL_I_DIV8 = 13731,
+ CV_CPLXMUL_R = 13732,
+ CV_CPLXMUL_R_DIV2 = 13733,
+ CV_CPLXMUL_R_DIV4 = 13734,
+ CV_CPLXMUL_R_DIV8 = 13735,
+ CV_DOTSP_B = 13736,
+ CV_DOTSP_H = 13737,
+ CV_DOTSP_SCI_B = 13738,
+ CV_DOTSP_SCI_H = 13739,
+ CV_DOTSP_SC_B = 13740,
+ CV_DOTSP_SC_H = 13741,
+ CV_DOTUP_B = 13742,
+ CV_DOTUP_H = 13743,
+ CV_DOTUP_SCI_B = 13744,
+ CV_DOTUP_SCI_H = 13745,
+ CV_DOTUP_SC_B = 13746,
+ CV_DOTUP_SC_H = 13747,
+ CV_DOTUSP_B = 13748,
+ CV_DOTUSP_H = 13749,
+ CV_DOTUSP_SCI_B = 13750,
+ CV_DOTUSP_SCI_H = 13751,
+ CV_DOTUSP_SC_B = 13752,
+ CV_DOTUSP_SC_H = 13753,
+ CV_ELW = 13754,
+ CV_EXTBS = 13755,
+ CV_EXTBZ = 13756,
+ CV_EXTHS = 13757,
+ CV_EXTHZ = 13758,
+ CV_EXTRACT = 13759,
+ CV_EXTRACTR = 13760,
+ CV_EXTRACTU = 13761,
+ CV_EXTRACTUR = 13762,
+ CV_EXTRACTU_B = 13763,
+ CV_EXTRACTU_H = 13764,
+ CV_EXTRACT_B = 13765,
+ CV_EXTRACT_H = 13766,
+ CV_FF1 = 13767,
+ CV_FL1 = 13768,
+ CV_INSERT = 13769,
+ CV_INSERTR = 13770,
+ CV_INSERT_B = 13771,
+ CV_INSERT_H = 13772,
+ CV_LBU_ri_inc = 13773,
+ CV_LBU_rr = 13774,
+ CV_LBU_rr_inc = 13775,
+ CV_LB_ri_inc = 13776,
+ CV_LB_rr = 13777,
+ CV_LB_rr_inc = 13778,
+ CV_LHU_ri_inc = 13779,
+ CV_LHU_rr = 13780,
+ CV_LHU_rr_inc = 13781,
+ CV_LH_ri_inc = 13782,
+ CV_LH_rr = 13783,
+ CV_LH_rr_inc = 13784,
+ CV_LW_ri_inc = 13785,
+ CV_LW_rr = 13786,
+ CV_LW_rr_inc = 13787,
+ CV_MAC = 13788,
+ CV_MACHHSN = 13789,
+ CV_MACHHSRN = 13790,
+ CV_MACHHUN = 13791,
+ CV_MACHHURN = 13792,
+ CV_MACSN = 13793,
+ CV_MACSRN = 13794,
+ CV_MACUN = 13795,
+ CV_MACURN = 13796,
+ CV_MAX = 13797,
+ CV_MAXU = 13798,
+ CV_MAXU_B = 13799,
+ CV_MAXU_H = 13800,
+ CV_MAXU_SCI_B = 13801,
+ CV_MAXU_SCI_H = 13802,
+ CV_MAXU_SC_B = 13803,
+ CV_MAXU_SC_H = 13804,
+ CV_MAX_B = 13805,
+ CV_MAX_H = 13806,
+ CV_MAX_SCI_B = 13807,
+ CV_MAX_SCI_H = 13808,
+ CV_MAX_SC_B = 13809,
+ CV_MAX_SC_H = 13810,
+ CV_MIN = 13811,
+ CV_MINU = 13812,
+ CV_MINU_B = 13813,
+ CV_MINU_H = 13814,
+ CV_MINU_SCI_B = 13815,
+ CV_MINU_SCI_H = 13816,
+ CV_MINU_SC_B = 13817,
+ CV_MINU_SC_H = 13818,
+ CV_MIN_B = 13819,
+ CV_MIN_H = 13820,
+ CV_MIN_SCI_B = 13821,
+ CV_MIN_SCI_H = 13822,
+ CV_MIN_SC_B = 13823,
+ CV_MIN_SC_H = 13824,
+ CV_MSU = 13825,
+ CV_MULHHSN = 13826,
+ CV_MULHHSRN = 13827,
+ CV_MULHHUN = 13828,
+ CV_MULHHURN = 13829,
+ CV_MULSN = 13830,
+ CV_MULSRN = 13831,
+ CV_MULUN = 13832,
+ CV_MULURN = 13833,
+ CV_OR_B = 13834,
+ CV_OR_H = 13835,
+ CV_OR_SCI_B = 13836,
+ CV_OR_SCI_H = 13837,
+ CV_OR_SC_B = 13838,
+ CV_OR_SC_H = 13839,
+ CV_PACK = 13840,
+ CV_PACKHI_B = 13841,
+ CV_PACKLO_B = 13842,
+ CV_PACK_H = 13843,
+ CV_ROR = 13844,
+ CV_SB_ri_inc = 13845,
+ CV_SB_rr = 13846,
+ CV_SB_rr_inc = 13847,
+ CV_SDOTSP_B = 13848,
+ CV_SDOTSP_H = 13849,
+ CV_SDOTSP_SCI_B = 13850,
+ CV_SDOTSP_SCI_H = 13851,
+ CV_SDOTSP_SC_B = 13852,
+ CV_SDOTSP_SC_H = 13853,
+ CV_SDOTUP_B = 13854,
+ CV_SDOTUP_H = 13855,
+ CV_SDOTUP_SCI_B = 13856,
+ CV_SDOTUP_SCI_H = 13857,
+ CV_SDOTUP_SC_B = 13858,
+ CV_SDOTUP_SC_H = 13859,
+ CV_SDOTUSP_B = 13860,
+ CV_SDOTUSP_H = 13861,
+ CV_SDOTUSP_SCI_B = 13862,
+ CV_SDOTUSP_SCI_H = 13863,
+ CV_SDOTUSP_SC_B = 13864,
+ CV_SDOTUSP_SC_H = 13865,
+ CV_SHUFFLE2_B = 13866,
+ CV_SHUFFLE2_H = 13867,
+ CV_SHUFFLEI0_SCI_B = 13868,
+ CV_SHUFFLEI1_SCI_B = 13869,
+ CV_SHUFFLEI2_SCI_B = 13870,
+ CV_SHUFFLEI3_SCI_B = 13871,
+ CV_SHUFFLE_B = 13872,
+ CV_SHUFFLE_H = 13873,
+ CV_SHUFFLE_SCI_H = 13874,
+ CV_SH_ri_inc = 13875,
+ CV_SH_rr = 13876,
+ CV_SH_rr_inc = 13877,
+ CV_SLE = 13878,
+ CV_SLEU = 13879,
+ CV_SLL_B = 13880,
+ CV_SLL_H = 13881,
+ CV_SLL_SCI_B = 13882,
+ CV_SLL_SCI_H = 13883,
+ CV_SLL_SC_B = 13884,
+ CV_SLL_SC_H = 13885,
+ CV_SRA_B = 13886,
+ CV_SRA_H = 13887,
+ CV_SRA_SCI_B = 13888,
+ CV_SRA_SCI_H = 13889,
+ CV_SRA_SC_B = 13890,
+ CV_SRA_SC_H = 13891,
+ CV_SRL_B = 13892,
+ CV_SRL_H = 13893,
+ CV_SRL_SCI_B = 13894,
+ CV_SRL_SCI_H = 13895,
+ CV_SRL_SC_B = 13896,
+ CV_SRL_SC_H = 13897,
+ CV_SUBN = 13898,
+ CV_SUBNR = 13899,
+ CV_SUBRN = 13900,
+ CV_SUBRNR = 13901,
+ CV_SUBROTMJ = 13902,
+ CV_SUBROTMJ_DIV2 = 13903,
+ CV_SUBROTMJ_DIV4 = 13904,
+ CV_SUBROTMJ_DIV8 = 13905,
+ CV_SUBUN = 13906,
+ CV_SUBUNR = 13907,
+ CV_SUBURN = 13908,
+ CV_SUBURNR = 13909,
+ CV_SUB_B = 13910,
+ CV_SUB_DIV2 = 13911,
+ CV_SUB_DIV4 = 13912,
+ CV_SUB_DIV8 = 13913,
+ CV_SUB_H = 13914,
+ CV_SUB_SCI_B = 13915,
+ CV_SUB_SCI_H = 13916,
+ CV_SUB_SC_B = 13917,
+ CV_SUB_SC_H = 13918,
+ CV_SW_ri_inc = 13919,
+ CV_SW_rr = 13920,
+ CV_SW_rr_inc = 13921,
+ CV_XOR_B = 13922,
+ CV_XOR_H = 13923,
+ CV_XOR_SCI_B = 13924,
+ CV_XOR_SCI_H = 13925,
+ CV_XOR_SC_B = 13926,
+ CV_XOR_SC_H = 13927,
+ CZERO_EQZ = 13928,
+ CZERO_NEZ = 13929,
+ C_ADD = 13930,
+ C_ADDI = 13931,
+ C_ADDI16SP = 13932,
+ C_ADDI4SPN = 13933,
+ C_ADDIW = 13934,
+ C_ADDW = 13935,
+ C_AND = 13936,
+ C_ANDI = 13937,
+ C_BEQZ = 13938,
+ C_BNEZ = 13939,
+ C_EBREAK = 13940,
+ C_FLD = 13941,
+ C_FLDSP = 13942,
+ C_FLW = 13943,
+ C_FLWSP = 13944,
+ C_FSD = 13945,
+ C_FSDSP = 13946,
+ C_FSW = 13947,
+ C_FSWSP = 13948,
+ C_J = 13949,
+ C_JAL = 13950,
+ C_JALR = 13951,
+ C_JR = 13952,
+ C_LBU = 13953,
+ C_LD = 13954,
+ C_LDSP = 13955,
+ C_LDSP_RV32 = 13956,
+ C_LD_RV32 = 13957,
+ C_LH = 13958,
+ C_LHU = 13959,
+ C_LH_INX = 13960,
+ C_LI = 13961,
+ C_LUI = 13962,
+ C_LW = 13963,
+ C_LWSP = 13964,
+ C_LWSP_INX = 13965,
+ C_LW_INX = 13966,
+ C_MOP_1 = 13967,
+ C_MOP_11 = 13968,
+ C_MOP_13 = 13969,
+ C_MOP_15 = 13970,
+ C_MOP_3 = 13971,
+ C_MOP_5 = 13972,
+ C_MOP_7 = 13973,
+ C_MOP_9 = 13974,
+ C_MUL = 13975,
+ C_MV = 13976,
+ C_NOP = 13977,
+ C_NOP_HINT = 13978,
+ C_NOT = 13979,
+ C_OR = 13980,
+ C_SB = 13981,
+ C_SD = 13982,
+ C_SDSP = 13983,
+ C_SDSP_RV32 = 13984,
+ C_SD_RV32 = 13985,
+ C_SEXT_B = 13986,
+ C_SEXT_H = 13987,
+ C_SH = 13988,
+ C_SH_INX = 13989,
+ C_SLLI = 13990,
+ C_SRAI = 13991,
+ C_SRLI = 13992,
+ C_SSPOPCHK = 13993,
+ C_SSPUSH = 13994,
+ C_SUB = 13995,
+ C_SUBW = 13996,
+ C_SW = 13997,
+ C_SWSP = 13998,
+ C_SWSP_INX = 13999,
+ C_SW_INX = 14000,
+ C_UNIMP = 14001,
+ C_XOR = 14002,
+ C_ZEXT_B = 14003,
+ C_ZEXT_H = 14004,
+ C_ZEXT_W = 14005,
+ DIV = 14006,
+ DIVU = 14007,
+ DIVUW = 14008,
+ DIVW = 14009,
+ DRET = 14010,
+ EBREAK = 14011,
+ ECALL = 14012,
+ FADD_D = 14013,
+ FADD_D_IN32X = 14014,
+ FADD_D_INX = 14015,
+ FADD_H = 14016,
+ FADD_H_INX = 14017,
+ FADD_Q = 14018,
+ FADD_S = 14019,
+ FADD_S_INX = 14020,
+ FCLASS_D = 14021,
+ FCLASS_D_IN32X = 14022,
+ FCLASS_D_INX = 14023,
+ FCLASS_H = 14024,
+ FCLASS_H_INX = 14025,
+ FCLASS_Q = 14026,
+ FCLASS_S = 14027,
+ FCLASS_S_INX = 14028,
+ FCVTMOD_W_D = 14029,
+ FCVT_BF16_S = 14030,
+ FCVT_D_H = 14031,
+ FCVT_D_H_IN32X = 14032,
+ FCVT_D_H_INX = 14033,
+ FCVT_D_L = 14034,
+ FCVT_D_LU = 14035,
+ FCVT_D_LU_INX = 14036,
+ FCVT_D_L_INX = 14037,
+ FCVT_D_Q = 14038,
+ FCVT_D_S = 14039,
+ FCVT_D_S_IN32X = 14040,
+ FCVT_D_S_INX = 14041,
+ FCVT_D_W = 14042,
+ FCVT_D_WU = 14043,
+ FCVT_D_WU_IN32X = 14044,
+ FCVT_D_WU_INX = 14045,
+ FCVT_D_W_IN32X = 14046,
+ FCVT_D_W_INX = 14047,
+ FCVT_H_D = 14048,
+ FCVT_H_D_IN32X = 14049,
+ FCVT_H_D_INX = 14050,
+ FCVT_H_L = 14051,
+ FCVT_H_LU = 14052,
+ FCVT_H_LU_INX = 14053,
+ FCVT_H_L_INX = 14054,
+ FCVT_H_S = 14055,
+ FCVT_H_S_INX = 14056,
+ FCVT_H_W = 14057,
+ FCVT_H_WU = 14058,
+ FCVT_H_WU_INX = 14059,
+ FCVT_H_W_INX = 14060,
+ FCVT_LU_D = 14061,
+ FCVT_LU_D_INX = 14062,
+ FCVT_LU_H = 14063,
+ FCVT_LU_H_INX = 14064,
+ FCVT_LU_Q = 14065,
+ FCVT_LU_S = 14066,
+ FCVT_LU_S_INX = 14067,
+ FCVT_L_D = 14068,
+ FCVT_L_D_INX = 14069,
+ FCVT_L_H = 14070,
+ FCVT_L_H_INX = 14071,
+ FCVT_L_Q = 14072,
+ FCVT_L_S = 14073,
+ FCVT_L_S_INX = 14074,
+ FCVT_Q_D = 14075,
+ FCVT_Q_L = 14076,
+ FCVT_Q_LU = 14077,
+ FCVT_Q_S = 14078,
+ FCVT_Q_W = 14079,
+ FCVT_Q_WU = 14080,
+ FCVT_S_BF16 = 14081,
+ FCVT_S_D = 14082,
+ FCVT_S_D_IN32X = 14083,
+ FCVT_S_D_INX = 14084,
+ FCVT_S_H = 14085,
+ FCVT_S_H_INX = 14086,
+ FCVT_S_L = 14087,
+ FCVT_S_LU = 14088,
+ FCVT_S_LU_INX = 14089,
+ FCVT_S_L_INX = 14090,
+ FCVT_S_Q = 14091,
+ FCVT_S_W = 14092,
+ FCVT_S_WU = 14093,
+ FCVT_S_WU_INX = 14094,
+ FCVT_S_W_INX = 14095,
+ FCVT_WU_D = 14096,
+ FCVT_WU_D_IN32X = 14097,
+ FCVT_WU_D_INX = 14098,
+ FCVT_WU_H = 14099,
+ FCVT_WU_H_INX = 14100,
+ FCVT_WU_Q = 14101,
+ FCVT_WU_S = 14102,
+ FCVT_WU_S_INX = 14103,
+ FCVT_W_D = 14104,
+ FCVT_W_D_IN32X = 14105,
+ FCVT_W_D_INX = 14106,
+ FCVT_W_H = 14107,
+ FCVT_W_H_INX = 14108,
+ FCVT_W_Q = 14109,
+ FCVT_W_S = 14110,
+ FCVT_W_S_INX = 14111,
+ FDIV_D = 14112,
+ FDIV_D_IN32X = 14113,
+ FDIV_D_INX = 14114,
+ FDIV_H = 14115,
+ FDIV_H_INX = 14116,
+ FDIV_Q = 14117,
+ FDIV_S = 14118,
+ FDIV_S_INX = 14119,
+ FENCE = 14120,
+ FENCE_I = 14121,
+ FENCE_TSO = 14122,
+ FEQ_D = 14123,
+ FEQ_D_IN32X = 14124,
+ FEQ_D_INX = 14125,
+ FEQ_H = 14126,
+ FEQ_H_INX = 14127,
+ FEQ_Q = 14128,
+ FEQ_S = 14129,
+ FEQ_S_INX = 14130,
+ FLD = 14131,
+ FLEQ_D = 14132,
+ FLEQ_H = 14133,
+ FLEQ_Q = 14134,
+ FLEQ_S = 14135,
+ FLE_D = 14136,
+ FLE_D_IN32X = 14137,
+ FLE_D_INX = 14138,
+ FLE_H = 14139,
+ FLE_H_INX = 14140,
+ FLE_Q = 14141,
+ FLE_S = 14142,
+ FLE_S_INX = 14143,
+ FLH = 14144,
+ FLI_D = 14145,
+ FLI_H = 14146,
+ FLI_Q = 14147,
+ FLI_S = 14148,
+ FLQ = 14149,
+ FLTQ_D = 14150,
+ FLTQ_H = 14151,
+ FLTQ_Q = 14152,
+ FLTQ_S = 14153,
+ FLT_D = 14154,
+ FLT_D_IN32X = 14155,
+ FLT_D_INX = 14156,
+ FLT_H = 14157,
+ FLT_H_INX = 14158,
+ FLT_Q = 14159,
+ FLT_S = 14160,
+ FLT_S_INX = 14161,
+ FLW = 14162,
+ FMADD_D = 14163,
+ FMADD_D_IN32X = 14164,
+ FMADD_D_INX = 14165,
+ FMADD_H = 14166,
+ FMADD_H_INX = 14167,
+ FMADD_Q = 14168,
+ FMADD_S = 14169,
+ FMADD_S_INX = 14170,
+ FMAXM_D = 14171,
+ FMAXM_H = 14172,
+ FMAXM_Q = 14173,
+ FMAXM_S = 14174,
+ FMAX_D = 14175,
+ FMAX_D_IN32X = 14176,
+ FMAX_D_INX = 14177,
+ FMAX_H = 14178,
+ FMAX_H_INX = 14179,
+ FMAX_Q = 14180,
+ FMAX_S = 14181,
+ FMAX_S_INX = 14182,
+ FMINM_D = 14183,
+ FMINM_H = 14184,
+ FMINM_Q = 14185,
+ FMINM_S = 14186,
+ FMIN_D = 14187,
+ FMIN_D_IN32X = 14188,
+ FMIN_D_INX = 14189,
+ FMIN_H = 14190,
+ FMIN_H_INX = 14191,
+ FMIN_Q = 14192,
+ FMIN_S = 14193,
+ FMIN_S_INX = 14194,
+ FMSUB_D = 14195,
+ FMSUB_D_IN32X = 14196,
+ FMSUB_D_INX = 14197,
+ FMSUB_H = 14198,
+ FMSUB_H_INX = 14199,
+ FMSUB_Q = 14200,
+ FMSUB_S = 14201,
+ FMSUB_S_INX = 14202,
+ FMUL_D = 14203,
+ FMUL_D_IN32X = 14204,
+ FMUL_D_INX = 14205,
+ FMUL_H = 14206,
+ FMUL_H_INX = 14207,
+ FMUL_Q = 14208,
+ FMUL_S = 14209,
+ FMUL_S_INX = 14210,
+ FMVH_X_D = 14211,
+ FMVH_X_Q = 14212,
+ FMVP_D_X = 14213,
+ FMVP_Q_X = 14214,
+ FMV_D_X = 14215,
+ FMV_H_X = 14216,
+ FMV_W_X = 14217,
+ FMV_X_D = 14218,
+ FMV_X_H = 14219,
+ FMV_X_W = 14220,
+ FMV_X_W_FPR64 = 14221,
+ FNMADD_D = 14222,
+ FNMADD_D_IN32X = 14223,
+ FNMADD_D_INX = 14224,
+ FNMADD_H = 14225,
+ FNMADD_H_INX = 14226,
+ FNMADD_Q = 14227,
+ FNMADD_S = 14228,
+ FNMADD_S_INX = 14229,
+ FNMSUB_D = 14230,
+ FNMSUB_D_IN32X = 14231,
+ FNMSUB_D_INX = 14232,
+ FNMSUB_H = 14233,
+ FNMSUB_H_INX = 14234,
+ FNMSUB_Q = 14235,
+ FNMSUB_S = 14236,
+ FNMSUB_S_INX = 14237,
+ FROUNDNX_D = 14238,
+ FROUNDNX_H = 14239,
+ FROUNDNX_Q = 14240,
+ FROUNDNX_S = 14241,
+ FROUND_D = 14242,
+ FROUND_H = 14243,
+ FROUND_Q = 14244,
+ FROUND_S = 14245,
+ FSD = 14246,
+ FSGNJN_D = 14247,
+ FSGNJN_D_IN32X = 14248,
+ FSGNJN_D_INX = 14249,
+ FSGNJN_H = 14250,
+ FSGNJN_H_INX = 14251,
+ FSGNJN_Q = 14252,
+ FSGNJN_S = 14253,
+ FSGNJN_S_INX = 14254,
+ FSGNJX_D = 14255,
+ FSGNJX_D_IN32X = 14256,
+ FSGNJX_D_INX = 14257,
+ FSGNJX_H = 14258,
+ FSGNJX_H_INX = 14259,
+ FSGNJX_Q = 14260,
+ FSGNJX_S = 14261,
+ FSGNJX_S_INX = 14262,
+ FSGNJ_D = 14263,
+ FSGNJ_D_IN32X = 14264,
+ FSGNJ_D_INX = 14265,
+ FSGNJ_H = 14266,
+ FSGNJ_H_INX = 14267,
+ FSGNJ_Q = 14268,
+ FSGNJ_S = 14269,
+ FSGNJ_S_INX = 14270,
+ FSH = 14271,
+ FSQ = 14272,
+ FSQRT_D = 14273,
+ FSQRT_D_IN32X = 14274,
+ FSQRT_D_INX = 14275,
+ FSQRT_H = 14276,
+ FSQRT_H_INX = 14277,
+ FSQRT_Q = 14278,
+ FSQRT_S = 14279,
+ FSQRT_S_INX = 14280,
+ FSUB_D = 14281,
+ FSUB_D_IN32X = 14282,
+ FSUB_D_INX = 14283,
+ FSUB_H = 14284,
+ FSUB_H_INX = 14285,
+ FSUB_Q = 14286,
+ FSUB_S = 14287,
+ FSUB_S_INX = 14288,
+ FSW = 14289,
+ HFENCE_GVMA = 14290,
+ HFENCE_VVMA = 14291,
+ HINVAL_GVMA = 14292,
+ HINVAL_VVMA = 14293,
+ HLVX_HU = 14294,
+ HLVX_WU = 14295,
+ HLV_B = 14296,
+ HLV_BU = 14297,
+ HLV_D = 14298,
+ HLV_H = 14299,
+ HLV_HU = 14300,
+ HLV_W = 14301,
+ HLV_WU = 14302,
+ HSV_B = 14303,
+ HSV_D = 14304,
+ HSV_H = 14305,
+ HSV_W = 14306,
+ Insn16 = 14307,
+ Insn32 = 14308,
+ Insn48 = 14309,
+ Insn64 = 14310,
+ InsnB = 14311,
+ InsnCA = 14312,
+ InsnCB = 14313,
+ InsnCI = 14314,
+ InsnCIW = 14315,
+ InsnCJ = 14316,
+ InsnCL = 14317,
+ InsnCR = 14318,
+ InsnCS = 14319,
+ InsnCSS = 14320,
+ InsnI = 14321,
+ InsnI_Mem = 14322,
+ InsnJ = 14323,
+ InsnQC_EAI = 14324,
+ InsnQC_EB = 14325,
+ InsnQC_EI = 14326,
+ InsnQC_EI_Mem = 14327,
+ InsnQC_EJ = 14328,
+ InsnQC_ES = 14329,
+ InsnR = 14330,
+ InsnR4 = 14331,
+ InsnS = 14332,
+ InsnU = 14333,
+ JAL = 14334,
+ JALR = 14335,
+ LB = 14336,
+ LBU = 14337,
+ LB_AQ = 14338,
+ LB_AQRL = 14339,
+ LD = 14340,
+ LD_AQ = 14341,
+ LD_AQRL = 14342,
+ LD_RV32 = 14343,
+ LH = 14344,
+ LHU = 14345,
+ LH_AQ = 14346,
+ LH_AQRL = 14347,
+ LH_INX = 14348,
+ LR_D = 14349,
+ LR_D_AQ = 14350,
+ LR_D_AQRL = 14351,
+ LR_D_RL = 14352,
+ LR_W = 14353,
+ LR_W_AQ = 14354,
+ LR_W_AQRL = 14355,
+ LR_W_RL = 14356,
+ LUI = 14357,
+ LW = 14358,
+ LWU = 14359,
+ LW_AQ = 14360,
+ LW_AQRL = 14361,
+ LW_INX = 14362,
+ MACCSU_H00 = 14363,
+ MACCSU_H11 = 14364,
+ MACCSU_W00 = 14365,
+ MACCSU_W11 = 14366,
+ MACCU_H00 = 14367,
+ MACCU_H01 = 14368,
+ MACCU_H11 = 14369,
+ MACCU_W00 = 14370,
+ MACCU_W01 = 14371,
+ MACCU_W11 = 14372,
+ MACC_H00 = 14373,
+ MACC_H01 = 14374,
+ MACC_H11 = 14375,
+ MACC_W00 = 14376,
+ MACC_W01 = 14377,
+ MACC_W11 = 14378,
+ MAX = 14379,
+ MAXU = 14380,
+ MERGE = 14381,
+ MHACC = 14382,
+ MHACCSU = 14383,
+ MHACCSU_H0 = 14384,
+ MHACCSU_H1 = 14385,
+ MHACCU = 14386,
+ MHACC_H0 = 14387,
+ MHACC_H1 = 14388,
+ MHRACC = 14389,
+ MHRACCSU = 14390,
+ MHRACCU = 14391,
+ MIN = 14392,
+ MINU = 14393,
+ MIPS_CCMOV = 14394,
+ MIPS_EHB = 14395,
+ MIPS_IHB = 14396,
+ MIPS_LDP = 14397,
+ MIPS_LWP = 14398,
+ MIPS_PAUSE = 14399,
+ MIPS_PREF = 14400,
+ MIPS_SDP = 14401,
+ MIPS_SWP = 14402,
+ MNRET = 14403,
+ MOP_RR_0 = 14404,
+ MOP_RR_1 = 14405,
+ MOP_RR_2 = 14406,
+ MOP_RR_3 = 14407,
+ MOP_RR_4 = 14408,
+ MOP_RR_5 = 14409,
+ MOP_RR_6 = 14410,
+ MOP_RR_7 = 14411,
+ MOP_R_0 = 14412,
+ MOP_R_1 = 14413,
+ MOP_R_10 = 14414,
+ MOP_R_11 = 14415,
+ MOP_R_12 = 14416,
+ MOP_R_13 = 14417,
+ MOP_R_14 = 14418,
+ MOP_R_15 = 14419,
+ MOP_R_16 = 14420,
+ MOP_R_17 = 14421,
+ MOP_R_18 = 14422,
+ MOP_R_19 = 14423,
+ MOP_R_2 = 14424,
+ MOP_R_20 = 14425,
+ MOP_R_21 = 14426,
+ MOP_R_22 = 14427,
+ MOP_R_23 = 14428,
+ MOP_R_24 = 14429,
+ MOP_R_25 = 14430,
+ MOP_R_26 = 14431,
+ MOP_R_27 = 14432,
+ MOP_R_28 = 14433,
+ MOP_R_29 = 14434,
+ MOP_R_3 = 14435,
+ MOP_R_30 = 14436,
+ MOP_R_31 = 14437,
+ MOP_R_4 = 14438,
+ MOP_R_5 = 14439,
+ MOP_R_6 = 14440,
+ MOP_R_7 = 14441,
+ MOP_R_8 = 14442,
+ MOP_R_9 = 14443,
+ MQACC_H00 = 14444,
+ MQACC_H01 = 14445,
+ MQACC_H11 = 14446,
+ MQACC_W00 = 14447,
+ MQACC_W01 = 14448,
+ MQACC_W11 = 14449,
+ MQRACC_H00 = 14450,
+ MQRACC_H01 = 14451,
+ MQRACC_H11 = 14452,
+ MQRACC_W00 = 14453,
+ MQRACC_W01 = 14454,
+ MQRACC_W11 = 14455,
+ MRET = 14456,
+ MSEQ = 14457,
+ MSLT = 14458,
+ MSLTU = 14459,
+ MUL = 14460,
+ MULH = 14461,
+ MULHR = 14462,
+ MULHRSU = 14463,
+ MULHRU = 14464,
+ MULHSU = 14465,
+ MULHSU_H0 = 14466,
+ MULHSU_H1 = 14467,
+ MULHU = 14468,
+ MULH_H0 = 14469,
+ MULH_H1 = 14470,
+ MULQ = 14471,
+ MULQR = 14472,
+ MULSU_H00 = 14473,
+ MULSU_H11 = 14474,
+ MULSU_W00 = 14475,
+ MULSU_W11 = 14476,
+ MULU_H00 = 14477,
+ MULU_H01 = 14478,
+ MULU_H11 = 14479,
+ MULU_W00 = 14480,
+ MULU_W01 = 14481,
+ MULU_W11 = 14482,
+ MULW = 14483,
+ MUL_H00 = 14484,
+ MUL_H01 = 14485,
+ MUL_H11 = 14486,
+ MUL_W00 = 14487,
+ MUL_W01 = 14488,
+ MUL_W11 = 14489,
+ MVM = 14490,
+ MVMN = 14491,
+ NCLIP = 14492,
+ NCLIPI = 14493,
+ NCLIPIU = 14494,
+ NCLIPR = 14495,
+ NCLIPRI = 14496,
+ NCLIPRIU = 14497,
+ NCLIPRU = 14498,
+ NCLIPU = 14499,
+ NDS_ADDIGP = 14500,
+ NDS_BBC = 14501,
+ NDS_BBS = 14502,
+ NDS_BEQC = 14503,
+ NDS_BFOS = 14504,
+ NDS_BFOZ = 14505,
+ NDS_BNEC = 14506,
+ NDS_FCVT_BF16_S = 14507,
+ NDS_FCVT_S_BF16 = 14508,
+ NDS_FFB = 14509,
+ NDS_FFMISM = 14510,
+ NDS_FFZMISM = 14511,
+ NDS_FLMISM = 14512,
+ NDS_FMV_BF16_X = 14513,
+ NDS_FMV_X_BF16 = 14514,
+ NDS_LBGP = 14515,
+ NDS_LBUGP = 14516,
+ NDS_LDGP = 14517,
+ NDS_LEA_B_ZE = 14518,
+ NDS_LEA_D = 14519,
+ NDS_LEA_D_ZE = 14520,
+ NDS_LEA_H = 14521,
+ NDS_LEA_H_ZE = 14522,
+ NDS_LEA_W = 14523,
+ NDS_LEA_W_ZE = 14524,
+ NDS_LHGP = 14525,
+ NDS_LHUGP = 14526,
+ NDS_LWGP = 14527,
+ NDS_LWUGP = 14528,
+ NDS_SBGP = 14529,
+ NDS_SDGP = 14530,
+ NDS_SHGP = 14531,
+ NDS_SWGP = 14532,
+ NDS_VD4DOTSU_VV = 14533,
+ NDS_VD4DOTS_VV = 14534,
+ NDS_VD4DOTU_VV = 14535,
+ NDS_VFNCVT_BF16_S = 14536,
+ NDS_VFPMADB_VF = 14537,
+ NDS_VFPMADT_VF = 14538,
+ NDS_VFWCVT_F_B = 14539,
+ NDS_VFWCVT_F_BU = 14540,
+ NDS_VFWCVT_F_N = 14541,
+ NDS_VFWCVT_F_NU = 14542,
+ NDS_VFWCVT_S_BF16 = 14543,
+ NDS_VLE4_V = 14544,
+ NDS_VLN8_V = 14545,
+ NDS_VLNU8_V = 14546,
+ NSARI = 14547,
+ NSRA = 14548,
+ NSRAI = 14549,
+ NSRAR = 14550,
+ NSRL = 14551,
+ NSRLI = 14552,
+ OR = 14553,
+ ORC_B = 14554,
+ ORI = 14555,
+ ORN = 14556,
+ PAADDU_B = 14557,
+ PAADDU_DB = 14558,
+ PAADDU_DH = 14559,
+ PAADDU_DW = 14560,
+ PAADDU_H = 14561,
+ PAADDU_W = 14562,
+ PAADD_B = 14563,
+ PAADD_DB = 14564,
+ PAADD_DH = 14565,
+ PAADD_DW = 14566,
+ PAADD_H = 14567,
+ PAADD_W = 14568,
+ PAAS_HX = 14569,
+ PAAS_WX = 14570,
+ PAAX_DHX = 14571,
+ PABDSUMAU_B = 14572,
+ PABDSUMU_B = 14573,
+ PABDU_B = 14574,
+ PABDU_DB = 14575,
+ PABDU_DH = 14576,
+ PABDU_H = 14577,
+ PABD_B = 14578,
+ PABD_DB = 14579,
+ PABD_DH = 14580,
+ PABD_H = 14581,
+ PACK = 14582,
+ PACKH = 14583,
+ PACKW = 14584,
+ PADD_B = 14585,
+ PADD_BS = 14586,
+ PADD_DB = 14587,
+ PADD_DBS = 14588,
+ PADD_DH = 14589,
+ PADD_DHS = 14590,
+ PADD_DW = 14591,
+ PADD_DWS = 14592,
+ PADD_H = 14593,
+ PADD_HS = 14594,
+ PADD_W = 14595,
+ PADD_WS = 14596,
+ PASA_DHX = 14597,
+ PASA_HX = 14598,
+ PASA_WX = 14599,
+ PASUBU_B = 14600,
+ PASUBU_DB = 14601,
+ PASUBU_DH = 14602,
+ PASUBU_DW = 14603,
+ PASUBU_H = 14604,
+ PASUBU_W = 14605,
+ PASUB_B = 14606,
+ PASUB_DB = 14607,
+ PASUB_DH = 14608,
+ PASUB_DW = 14609,
+ PASUB_H = 14610,
+ PASUB_W = 14611,
+ PAS_DHX = 14612,
+ PAS_HX = 14613,
+ PAS_WX = 14614,
+ PLI_B = 14615,
+ PLI_DB = 14616,
+ PLI_DH = 14617,
+ PLI_H = 14618,
+ PLI_W = 14619,
+ PLUI_DH = 14620,
+ PLUI_H = 14621,
+ PLUI_W = 14622,
+ PM2ADDASU_H = 14623,
+ PM2ADDASU_W = 14624,
+ PM2ADDAU_H = 14625,
+ PM2ADDAU_W = 14626,
+ PM2ADDA_H = 14627,
+ PM2ADDA_HX = 14628,
+ PM2ADDA_W = 14629,
+ PM2ADDA_WX = 14630,
+ PM2ADDSU_H = 14631,
+ PM2ADDSU_W = 14632,
+ PM2ADDU_H = 14633,
+ PM2ADDU_W = 14634,
+ PM2ADD_H = 14635,
+ PM2ADD_HX = 14636,
+ PM2ADD_W = 14637,
+ PM2ADD_WX = 14638,
+ PM2SADD_H = 14639,
+ PM2SADD_HX = 14640,
+ PM2SUBA_H = 14641,
+ PM2SUBA_HX = 14642,
+ PM2SUBA_W = 14643,
+ PM2SUBA_WX = 14644,
+ PM2SUB_H = 14645,
+ PM2SUB_HX = 14646,
+ PM2SUB_W = 14647,
+ PM2SUB_WX = 14648,
+ PM2WADDASU_H = 14649,
+ PM2WADDAU_H = 14650,
+ PM2WADDA_H = 14651,
+ PM2WADDA_HX = 14652,
+ PM2WADDSU_H = 14653,
+ PM2WADDU_H = 14654,
+ PM2WADD_H = 14655,
+ PM2WADD_HX = 14656,
+ PM2WSUBA_H = 14657,
+ PM2WSUBA_HX = 14658,
+ PM2WSUB_H = 14659,
+ PM2WSUB_HX = 14660,
+ PM4ADDASU_B = 14661,
+ PM4ADDASU_H = 14662,
+ PM4ADDAU_B = 14663,
+ PM4ADDAU_H = 14664,
+ PM4ADDA_B = 14665,
+ PM4ADDA_H = 14666,
+ PM4ADDSU_B = 14667,
+ PM4ADDSU_H = 14668,
+ PM4ADDU_B = 14669,
+ PM4ADDU_H = 14670,
+ PM4ADD_B = 14671,
+ PM4ADD_H = 14672,
+ PMACCSU_W_H00 = 14673,
+ PMACCSU_W_H11 = 14674,
+ PMACCU_W_H00 = 14675,
+ PMACCU_W_H01 = 14676,
+ PMACCU_W_H11 = 14677,
+ PMACC_W_H00 = 14678,
+ PMACC_W_H01 = 14679,
+ PMACC_W_H11 = 14680,
+ PMAXU_B = 14681,
+ PMAXU_DB = 14682,
+ PMAXU_DH = 14683,
+ PMAXU_DW = 14684,
+ PMAXU_H = 14685,
+ PMAXU_W = 14686,
+ PMAX_B = 14687,
+ PMAX_DB = 14688,
+ PMAX_DH = 14689,
+ PMAX_DW = 14690,
+ PMAX_H = 14691,
+ PMAX_W = 14692,
+ PMHACCSU_H = 14693,
+ PMHACCSU_H_B0 = 14694,
+ PMHACCSU_H_B1 = 14695,
+ PMHACCSU_W = 14696,
+ PMHACCSU_W_H0 = 14697,
+ PMHACCSU_W_H1 = 14698,
+ PMHACCU_H = 14699,
+ PMHACCU_W = 14700,
+ PMHACC_H = 14701,
+ PMHACC_H_B0 = 14702,
+ PMHACC_H_B1 = 14703,
+ PMHACC_W = 14704,
+ PMHACC_W_H0 = 14705,
+ PMHACC_W_H1 = 14706,
+ PMHRACCSU_H = 14707,
+ PMHRACCSU_W = 14708,
+ PMHRACCU_H = 14709,
+ PMHRACCU_W = 14710,
+ PMHRACC_H = 14711,
+ PMHRACC_W = 14712,
+ PMINU_B = 14713,
+ PMINU_DB = 14714,
+ PMINU_DH = 14715,
+ PMINU_DW = 14716,
+ PMINU_H = 14717,
+ PMINU_W = 14718,
+ PMIN_B = 14719,
+ PMIN_DB = 14720,
+ PMIN_DH = 14721,
+ PMIN_DW = 14722,
+ PMIN_H = 14723,
+ PMIN_W = 14724,
+ PMQ2ADDA_H = 14725,
+ PMQ2ADDA_W = 14726,
+ PMQ2ADD_H = 14727,
+ PMQ2ADD_W = 14728,
+ PMQACC_W_H00 = 14729,
+ PMQACC_W_H01 = 14730,
+ PMQACC_W_H11 = 14731,
+ PMQR2ADDA_H = 14732,
+ PMQR2ADDA_W = 14733,
+ PMQR2ADD_H = 14734,
+ PMQR2ADD_W = 14735,
+ PMQRACC_W_H00 = 14736,
+ PMQRACC_W_H01 = 14737,
+ PMQRACC_W_H11 = 14738,
+ PMQRWACC = 14739,
+ PMQRWACC_H = 14740,
+ PMQWACC = 14741,
+ PMQWACC_H = 14742,
+ PMSEQ_B = 14743,
+ PMSEQ_DB = 14744,
+ PMSEQ_DH = 14745,
+ PMSEQ_DW = 14746,
+ PMSEQ_H = 14747,
+ PMSEQ_W = 14748,
+ PMSLTU_B = 14749,
+ PMSLTU_DB = 14750,
+ PMSLTU_DH = 14751,
+ PMSLTU_DW = 14752,
+ PMSLTU_H = 14753,
+ PMSLTU_W = 14754,
+ PMSLT_B = 14755,
+ PMSLT_DB = 14756,
+ PMSLT_DH = 14757,
+ PMSLT_DW = 14758,
+ PMSLT_H = 14759,
+ PMSLT_W = 14760,
+ PMULHRSU_H = 14761,
+ PMULHRSU_W = 14762,
+ PMULHRU_H = 14763,
+ PMULHRU_W = 14764,
+ PMULHR_H = 14765,
+ PMULHR_W = 14766,
+ PMULHSU_H = 14767,
+ PMULHSU_H_B0 = 14768,
+ PMULHSU_H_B1 = 14769,
+ PMULHSU_W = 14770,
+ PMULHSU_W_H0 = 14771,
+ PMULHSU_W_H1 = 14772,
+ PMULHU_H = 14773,
+ PMULHU_W = 14774,
+ PMULH_H = 14775,
+ PMULH_H_B0 = 14776,
+ PMULH_H_B1 = 14777,
+ PMULH_W = 14778,
+ PMULH_W_H0 = 14779,
+ PMULH_W_H1 = 14780,
+ PMULQR_H = 14781,
+ PMULQR_W = 14782,
+ PMULQ_H = 14783,
+ PMULQ_W = 14784,
+ PMULSU_H_B00 = 14785,
+ PMULSU_H_B11 = 14786,
+ PMULSU_W_H00 = 14787,
+ PMULSU_W_H11 = 14788,
+ PMULU_H_B00 = 14789,
+ PMULU_H_B01 = 14790,
+ PMULU_H_B11 = 14791,
+ PMULU_W_H00 = 14792,
+ PMULU_W_H01 = 14793,
+ PMULU_W_H11 = 14794,
+ PMUL_H_B00 = 14795,
+ PMUL_H_B01 = 14796,
+ PMUL_H_B11 = 14797,
+ PMUL_W_H00 = 14798,
+ PMUL_W_H01 = 14799,
+ PMUL_W_H11 = 14800,
+ PNCLIPIU_B = 14801,
+ PNCLIPIU_H = 14802,
+ PNCLIPI_B = 14803,
+ PNCLIPI_H = 14804,
+ PNCLIPRIU_B = 14805,
+ PNCLIPRIU_H = 14806,
+ PNCLIPRI_B = 14807,
+ PNCLIPRI_H = 14808,
+ PNCLIPRU_BS = 14809,
+ PNCLIPRU_HS = 14810,
+ PNCLIPR_BS = 14811,
+ PNCLIPR_HS = 14812,
+ PNCLIPU_BS = 14813,
+ PNCLIPU_HS = 14814,
+ PNCLIP_BS = 14815,
+ PNCLIP_HS = 14816,
+ PNSARI_B = 14817,
+ PNSARI_H = 14818,
+ PNSRAI_B = 14819,
+ PNSRAI_H = 14820,
+ PNSRAR_BS = 14821,
+ PNSRAR_HS = 14822,
+ PNSRA_BS = 14823,
+ PNSRA_HS = 14824,
+ PNSRLI_B = 14825,
+ PNSRLI_H = 14826,
+ PNSRL_BS = 14827,
+ PNSRL_HS = 14828,
+ PPAIREO_B = 14829,
+ PPAIREO_DB = 14830,
+ PPAIREO_DH = 14831,
+ PPAIREO_H = 14832,
+ PPAIREO_W = 14833,
+ PPAIRE_B = 14834,
+ PPAIRE_DB = 14835,
+ PPAIRE_DH = 14836,
+ PPAIRE_H = 14837,
+ PPAIROE_B = 14838,
+ PPAIROE_DB = 14839,
+ PPAIROE_DH = 14840,
+ PPAIROE_H = 14841,
+ PPAIROE_W = 14842,
+ PPAIRO_B = 14843,
+ PPAIRO_DB = 14844,
+ PPAIRO_DH = 14845,
+ PPAIRO_H = 14846,
+ PPAIRO_W = 14847,
+ PREDSUMU_BS = 14848,
+ PREDSUMU_DBS = 14849,
+ PREDSUMU_DHS = 14850,
+ PREDSUMU_HS = 14851,
+ PREDSUMU_WS = 14852,
+ PREDSUM_BS = 14853,
+ PREDSUM_DBS = 14854,
+ PREDSUM_DHS = 14855,
+ PREDSUM_HS = 14856,
+ PREDSUM_WS = 14857,
+ PREFETCH_I = 14858,
+ PREFETCH_R = 14859,
+ PREFETCH_W = 14860,
+ PSABS_B = 14861,
+ PSABS_DB = 14862,
+ PSABS_DH = 14863,
+ PSABS_H = 14864,
+ PSADDU_B = 14865,
+ PSADDU_DB = 14866,
+ PSADDU_DH = 14867,
+ PSADDU_DW = 14868,
+ PSADDU_H = 14869,
+ PSADDU_W = 14870,
+ PSADD_B = 14871,
+ PSADD_DB = 14872,
+ PSADD_DH = 14873,
+ PSADD_DW = 14874,
+ PSADD_H = 14875,
+ PSADD_W = 14876,
+ PSAS_DHX = 14877,
+ PSAS_HX = 14878,
+ PSAS_WX = 14879,
+ PSATI_DH = 14880,
+ PSATI_DW = 14881,
+ PSATI_H = 14882,
+ PSATI_W = 14883,
+ PSA_DHX = 14884,
+ PSA_HX = 14885,
+ PSA_WX = 14886,
+ PSEXT_DH_B = 14887,
+ PSEXT_DW_B = 14888,
+ PSEXT_DW_H = 14889,
+ PSEXT_H_B = 14890,
+ PSEXT_W_B = 14891,
+ PSEXT_W_H = 14892,
+ PSH1ADD_DH = 14893,
+ PSH1ADD_DW = 14894,
+ PSH1ADD_H = 14895,
+ PSH1ADD_W = 14896,
+ PSLLI_B = 14897,
+ PSLLI_DB = 14898,
+ PSLLI_DH = 14899,
+ PSLLI_DW = 14900,
+ PSLLI_H = 14901,
+ PSLLI_W = 14902,
+ PSLL_BS = 14903,
+ PSLL_DBS = 14904,
+ PSLL_DHS = 14905,
+ PSLL_DWS = 14906,
+ PSLL_HS = 14907,
+ PSLL_WS = 14908,
+ PSRAI_B = 14909,
+ PSRAI_DB = 14910,
+ PSRAI_DH = 14911,
+ PSRAI_DW = 14912,
+ PSRAI_H = 14913,
+ PSRAI_W = 14914,
+ PSRARI_DH = 14915,
+ PSRARI_DW = 14916,
+ PSRARI_H = 14917,
+ PSRARI_W = 14918,
+ PSRA_BS = 14919,
+ PSRA_DBS = 14920,
+ PSRA_DHS = 14921,
+ PSRA_DWS = 14922,
+ PSRA_HS = 14923,
+ PSRA_WS = 14924,
+ PSRLI_B = 14925,
+ PSRLI_DB = 14926,
+ PSRLI_DH = 14927,
+ PSRLI_DW = 14928,
+ PSRLI_H = 14929,
+ PSRLI_W = 14930,
+ PSRL_BS = 14931,
+ PSRL_DBS = 14932,
+ PSRL_DHS = 14933,
+ PSRL_DWS = 14934,
+ PSRL_HS = 14935,
+ PSRL_WS = 14936,
+ PSSA_DHX = 14937,
+ PSSA_HX = 14938,
+ PSSA_WX = 14939,
+ PSSH1SADD_DH = 14940,
+ PSSH1SADD_DW = 14941,
+ PSSH1SADD_H = 14942,
+ PSSH1SADD_W = 14943,
+ PSSHAR_DHS = 14944,
+ PSSHAR_DWS = 14945,
+ PSSHAR_HS = 14946,
+ PSSHAR_WS = 14947,
+ PSSHA_DHS = 14948,
+ PSSHA_DWS = 14949,
+ PSSHA_HS = 14950,
+ PSSHA_WS = 14951,
+ PSSLAI_DH = 14952,
+ PSSLAI_DW = 14953,
+ PSSLAI_H = 14954,
+ PSSLAI_W = 14955,
+ PSSUBU_B = 14956,
+ PSSUBU_DB = 14957,
+ PSSUBU_DH = 14958,
+ PSSUBU_DW = 14959,
+ PSSUBU_H = 14960,
+ PSSUBU_W = 14961,
+ PSSUB_B = 14962,
+ PSSUB_DB = 14963,
+ PSSUB_DH = 14964,
+ PSSUB_DW = 14965,
+ PSSUB_H = 14966,
+ PSSUB_W = 14967,
+ PSUB_B = 14968,
+ PSUB_DB = 14969,
+ PSUB_DH = 14970,
+ PSUB_DW = 14971,
+ PSUB_H = 14972,
+ PSUB_W = 14973,
+ PUSATI_DH = 14974,
+ PUSATI_DW = 14975,
+ PUSATI_H = 14976,
+ PUSATI_W = 14977,
+ PWADDAU_B = 14978,
+ PWADDAU_H = 14979,
+ PWADDA_B = 14980,
+ PWADDA_H = 14981,
+ PWADDU_B = 14982,
+ PWADDU_H = 14983,
+ PWADD_B = 14984,
+ PWADD_H = 14985,
+ PWMACCSU_H = 14986,
+ PWMACCU_H = 14987,
+ PWMACC_H = 14988,
+ PWMULSU_B = 14989,
+ PWMULSU_H = 14990,
+ PWMULU_B = 14991,
+ PWMULU_H = 14992,
+ PWMUL_B = 14993,
+ PWMUL_H = 14994,
+ PWSLAI_B = 14995,
+ PWSLAI_H = 14996,
+ PWSLA_BS = 14997,
+ PWSLA_HS = 14998,
+ PWSLLI_B = 14999,
+ PWSLLI_H = 15000,
+ PWSLL_BS = 15001,
+ PWSLL_HS = 15002,
+ PWSUBAU_B = 15003,
+ PWSUBAU_H = 15004,
+ PWSUBA_B = 15005,
+ PWSUBA_H = 15006,
+ PWSUBU_B = 15007,
+ PWSUBU_H = 15008,
+ PWSUB_B = 15009,
+ PWSUB_H = 15010,
+ QC_ADDSAT = 15011,
+ QC_ADDUSAT = 15012,
+ QC_BEQI = 15013,
+ QC_BGEI = 15014,
+ QC_BGEUI = 15015,
+ QC_BLTI = 15016,
+ QC_BLTUI = 15017,
+ QC_BNEI = 15018,
+ QC_BREV32 = 15019,
+ QC_CLO = 15020,
+ QC_CLRINTI = 15021,
+ QC_CM_MVA01S = 15022,
+ QC_CM_MVSA01 = 15023,
+ QC_CM_POP = 15024,
+ QC_CM_POPRET = 15025,
+ QC_CM_POPRETZ = 15026,
+ QC_CM_PUSH = 15027,
+ QC_CM_PUSHFP = 15028,
+ QC_COMPRESS2 = 15029,
+ QC_COMPRESS3 = 15030,
+ QC_CSRRWR = 15031,
+ QC_CSRRWRI = 15032,
+ QC_CTO = 15033,
+ QC_C_BEXTI = 15034,
+ QC_C_BSETI = 15035,
+ QC_C_CLRINT = 15036,
+ QC_C_DI = 15037,
+ QC_C_DIR = 15038,
+ QC_C_EI = 15039,
+ QC_C_EIR = 15040,
+ QC_C_EXTU = 15041,
+ QC_C_MIENTER = 15042,
+ QC_C_MIENTER_NEST = 15043,
+ QC_C_MILEAVERET = 15044,
+ QC_C_MNRET = 15045,
+ QC_C_MRET = 15046,
+ QC_C_MULIADD = 15047,
+ QC_C_MVEQZ = 15048,
+ QC_C_SETINT = 15049,
+ QC_C_SYNC = 15050,
+ QC_C_SYNCR = 15051,
+ QC_C_SYNCWF = 15052,
+ QC_C_SYNCWL = 15053,
+ QC_EXPAND2 = 15054,
+ QC_EXPAND3 = 15055,
+ QC_EXT = 15056,
+ QC_EXTD = 15057,
+ QC_EXTDPR = 15058,
+ QC_EXTDPRH = 15059,
+ QC_EXTDR = 15060,
+ QC_EXTDU = 15061,
+ QC_EXTDUPR = 15062,
+ QC_EXTDUPRH = 15063,
+ QC_EXTDUR = 15064,
+ QC_EXTU = 15065,
+ QC_E_ADDAI = 15066,
+ QC_E_ADDI = 15067,
+ QC_E_ANDAI = 15068,
+ QC_E_ANDI = 15069,
+ QC_E_BEQI = 15070,
+ QC_E_BGEI = 15071,
+ QC_E_BGEUI = 15072,
+ QC_E_BLTI = 15073,
+ QC_E_BLTUI = 15074,
+ QC_E_BNEI = 15075,
+ QC_E_J = 15076,
+ QC_E_JAL = 15077,
+ QC_E_LB = 15078,
+ QC_E_LBU = 15079,
+ QC_E_LH = 15080,
+ QC_E_LHU = 15081,
+ QC_E_LI = 15082,
+ QC_E_LW = 15083,
+ QC_E_ORAI = 15084,
+ QC_E_ORI = 15085,
+ QC_E_SB = 15086,
+ QC_E_SH = 15087,
+ QC_E_SW = 15088,
+ QC_E_XORAI = 15089,
+ QC_E_XORI = 15090,
+ QC_INSB = 15091,
+ QC_INSBH = 15092,
+ QC_INSBHR = 15093,
+ QC_INSBI = 15094,
+ QC_INSBPR = 15095,
+ QC_INSBPRH = 15096,
+ QC_INSBR = 15097,
+ QC_INSBRI = 15098,
+ QC_INW = 15099,
+ QC_LI = 15100,
+ QC_LIEQ = 15101,
+ QC_LIEQI = 15102,
+ QC_LIGE = 15103,
+ QC_LIGEI = 15104,
+ QC_LIGEU = 15105,
+ QC_LIGEUI = 15106,
+ QC_LILT = 15107,
+ QC_LILTI = 15108,
+ QC_LILTU = 15109,
+ QC_LILTUI = 15110,
+ QC_LINE = 15111,
+ QC_LINEI = 15112,
+ QC_LRB = 15113,
+ QC_LRBU = 15114,
+ QC_LRH = 15115,
+ QC_LRHU = 15116,
+ QC_LRW = 15117,
+ QC_LWM = 15118,
+ QC_LWMI = 15119,
+ QC_MULIADD = 15120,
+ QC_MVEQ = 15121,
+ QC_MVEQI = 15122,
+ QC_MVGE = 15123,
+ QC_MVGEI = 15124,
+ QC_MVGEU = 15125,
+ QC_MVGEUI = 15126,
+ QC_MVLT = 15127,
+ QC_MVLTI = 15128,
+ QC_MVLTU = 15129,
+ QC_MVLTUI = 15130,
+ QC_MVNE = 15131,
+ QC_MVNEI = 15132,
+ QC_NORM = 15133,
+ QC_NORMEU = 15134,
+ QC_NORMU = 15135,
+ QC_OUTW = 15136,
+ QC_PPUTCI = 15137,
+ QC_SELECTEQI = 15138,
+ QC_SELECTIEQ = 15139,
+ QC_SELECTIEQI = 15140,
+ QC_SELECTIIEQ = 15141,
+ QC_SELECTIINE = 15142,
+ QC_SELECTINE = 15143,
+ QC_SELECTINEI = 15144,
+ QC_SELECTNEI = 15145,
+ QC_SETINTI = 15146,
+ QC_SETWM = 15147,
+ QC_SETWMI = 15148,
+ QC_SHLADD = 15149,
+ QC_SHLSAT = 15150,
+ QC_SHLUSAT = 15151,
+ QC_SRB = 15152,
+ QC_SRH = 15153,
+ QC_SRW = 15154,
+ QC_SUBSAT = 15155,
+ QC_SUBUSAT = 15156,
+ QC_SWM = 15157,
+ QC_SWMI = 15158,
+ QC_SYNC = 15159,
+ QC_SYNCR = 15160,
+ QC_SYNCWF = 15161,
+ QC_SYNCWL = 15162,
+ QC_WRAP = 15163,
+ QC_WRAPI = 15164,
+ QK_C_LBU = 15165,
+ QK_C_LBUSP = 15166,
+ QK_C_LHU = 15167,
+ QK_C_LHUSP = 15168,
+ QK_C_SB = 15169,
+ QK_C_SBSP = 15170,
+ QK_C_SH = 15171,
+ QK_C_SHSP = 15172,
+ REM = 15173,
+ REMU = 15174,
+ REMUW = 15175,
+ REMW = 15176,
+ REV16 = 15177,
+ REV8_RV32 = 15178,
+ REV8_RV64 = 15179,
+ REV_RV32 = 15180,
+ REV_RV64 = 15181,
+ RI_VEXTRACT = 15182,
+ RI_VINSERT = 15183,
+ RI_VUNZIP2A_VV = 15184,
+ RI_VUNZIP2B_VV = 15185,
+ RI_VZERO = 15186,
+ RI_VZIP2A_VV = 15187,
+ RI_VZIP2B_VV = 15188,
+ RI_VZIPEVEN_VV = 15189,
+ RI_VZIPODD_VV = 15190,
+ ROL = 15191,
+ ROLW = 15192,
+ ROR = 15193,
+ RORI = 15194,
+ RORIW = 15195,
+ RORW = 15196,
+ SADD = 15197,
+ SADDU = 15198,
+ SATI_RV32 = 15199,
+ SATI_RV64 = 15200,
+ SB = 15201,
+ SB_AQRL = 15202,
+ SB_RL = 15203,
+ SCTRCLR = 15204,
+ SC_D = 15205,
+ SC_D_AQ = 15206,
+ SC_D_AQRL = 15207,
+ SC_D_RL = 15208,
+ SC_W = 15209,
+ SC_W_AQ = 15210,
+ SC_W_AQRL = 15211,
+ SC_W_RL = 15212,
+ SD = 15213,
+ SD_AQRL = 15214,
+ SD_RL = 15215,
+ SD_RV32 = 15216,
+ SEXT_B = 15217,
+ SEXT_H = 15218,
+ SFENCE_INVAL_IR = 15219,
+ SFENCE_VMA = 15220,
+ SFENCE_W_INVAL = 15221,
+ SF_CDISCARD_D_L1 = 15222,
+ SF_CEASE = 15223,
+ SF_CFLUSH_D_L1 = 15224,
+ SF_MM_E4M3_E4M3 = 15225,
+ SF_MM_E4M3_E5M2 = 15226,
+ SF_MM_E5M2_E4M3 = 15227,
+ SF_MM_E5M2_E5M2 = 15228,
+ SF_MM_F_F = 15229,
+ SF_MM_S_S = 15230,
+ SF_MM_S_U = 15231,
+ SF_MM_U_S = 15232,
+ SF_MM_U_U = 15233,
+ SF_VC_FV = 15234,
+ SF_VC_FVV = 15235,
+ SF_VC_FVW = 15236,
+ SF_VC_I = 15237,
+ SF_VC_IV = 15238,
+ SF_VC_IVV = 15239,
+ SF_VC_IVW = 15240,
+ SF_VC_VV = 15241,
+ SF_VC_VVV = 15242,
+ SF_VC_VVW = 15243,
+ SF_VC_V_FV = 15244,
+ SF_VC_V_FVV = 15245,
+ SF_VC_V_FVW = 15246,
+ SF_VC_V_I = 15247,
+ SF_VC_V_IV = 15248,
+ SF_VC_V_IVV = 15249,
+ SF_VC_V_IVW = 15250,
+ SF_VC_V_VV = 15251,
+ SF_VC_V_VVV = 15252,
+ SF_VC_V_VVW = 15253,
+ SF_VC_V_X = 15254,
+ SF_VC_V_XV = 15255,
+ SF_VC_V_XVV = 15256,
+ SF_VC_V_XVW = 15257,
+ SF_VC_X = 15258,
+ SF_VC_XV = 15259,
+ SF_VC_XVV = 15260,
+ SF_VC_XVW = 15261,
+ SF_VFEXPA_V = 15262,
+ SF_VFEXP_V = 15263,
+ SF_VFNRCLIP_XU_F_QF = 15264,
+ SF_VFNRCLIP_X_F_QF = 15265,
+ SF_VFWMACC_4x4x4 = 15266,
+ SF_VLTE16 = 15267,
+ SF_VLTE32 = 15268,
+ SF_VLTE64 = 15269,
+ SF_VLTE8 = 15270,
+ SF_VQMACCSU_2x8x2 = 15271,
+ SF_VQMACCSU_4x8x4 = 15272,
+ SF_VQMACCUS_2x8x2 = 15273,
+ SF_VQMACCUS_4x8x4 = 15274,
+ SF_VQMACCU_2x8x2 = 15275,
+ SF_VQMACCU_4x8x4 = 15276,
+ SF_VQMACC_2x8x2 = 15277,
+ SF_VQMACC_4x8x4 = 15278,
+ SF_VSETTK = 15279,
+ SF_VSETTM = 15280,
+ SF_VSETTN = 15281,
+ SF_VSTE16 = 15282,
+ SF_VSTE32 = 15283,
+ SF_VSTE64 = 15284,
+ SF_VSTE8 = 15285,
+ SF_VTDISCARD = 15286,
+ SF_VTMV_T_V = 15287,
+ SF_VTMV_V_T = 15288,
+ SF_VTZERO_T = 15289,
+ SH = 15290,
+ SH1ADD = 15291,
+ SH1ADD_UW = 15292,
+ SH2ADD = 15293,
+ SH2ADD_UW = 15294,
+ SH3ADD = 15295,
+ SH3ADD_UW = 15296,
+ SHA = 15297,
+ SHA256SIG0 = 15298,
+ SHA256SIG1 = 15299,
+ SHA256SUM0 = 15300,
+ SHA256SUM1 = 15301,
+ SHA512SIG0 = 15302,
+ SHA512SIG0H = 15303,
+ SHA512SIG0L = 15304,
+ SHA512SIG1 = 15305,
+ SHA512SIG1H = 15306,
+ SHA512SIG1L = 15307,
+ SHA512SUM0 = 15308,
+ SHA512SUM0R = 15309,
+ SHA512SUM1 = 15310,
+ SHA512SUM1R = 15311,
+ SHAR = 15312,
+ SH_AQRL = 15313,
+ SH_INX = 15314,
+ SH_RL = 15315,
+ SINVAL_VMA = 15316,
+ SLL = 15317,
+ SLLI = 15318,
+ SLLIW = 15319,
+ SLLI_UW = 15320,
+ SLLW = 15321,
+ SLT = 15322,
+ SLTI = 15323,
+ SLTIU = 15324,
+ SLTU = 15325,
+ SLX = 15326,
+ SM3P0 = 15327,
+ SM3P1 = 15328,
+ SM4ED = 15329,
+ SM4KS = 15330,
+ SMT_VMADOT = 15331,
+ SMT_VMADOT1 = 15332,
+ SMT_VMADOT1SU = 15333,
+ SMT_VMADOT1U = 15334,
+ SMT_VMADOT1US = 15335,
+ SMT_VMADOT2 = 15336,
+ SMT_VMADOT2SU = 15337,
+ SMT_VMADOT2U = 15338,
+ SMT_VMADOT2US = 15339,
+ SMT_VMADOT3 = 15340,
+ SMT_VMADOT3SU = 15341,
+ SMT_VMADOT3U = 15342,
+ SMT_VMADOT3US = 15343,
+ SMT_VMADOTSU = 15344,
+ SMT_VMADOTU = 15345,
+ SMT_VMADOTUS = 15346,
+ SRA = 15347,
+ SRAI = 15348,
+ SRAIW = 15349,
+ SRARI_RV32 = 15350,
+ SRARI_RV64 = 15351,
+ SRAW = 15352,
+ SRET = 15353,
+ SRL = 15354,
+ SRLI = 15355,
+ SRLIW = 15356,
+ SRLW = 15357,
+ SRX = 15358,
+ SSAMOSWAP_D = 15359,
+ SSAMOSWAP_D_AQ = 15360,
+ SSAMOSWAP_D_AQRL = 15361,
+ SSAMOSWAP_D_RL = 15362,
+ SSAMOSWAP_W = 15363,
+ SSAMOSWAP_W_AQ = 15364,
+ SSAMOSWAP_W_AQRL = 15365,
+ SSAMOSWAP_W_RL = 15366,
+ SSH1SADD = 15367,
+ SSHA = 15368,
+ SSHAR = 15369,
+ SSLAI = 15370,
+ SSPOPCHK = 15371,
+ SSPUSH = 15372,
+ SSRDP = 15373,
+ SSUB = 15374,
+ SSUBU = 15375,
+ SUB = 15376,
+ SUBD = 15377,
+ SUBW = 15378,
+ SW = 15379,
+ SW_AQRL = 15380,
+ SW_INX = 15381,
+ SW_RL = 15382,
+ TH_ADDSL = 15383,
+ TH_DCACHE_CALL = 15384,
+ TH_DCACHE_CIALL = 15385,
+ TH_DCACHE_CIPA = 15386,
+ TH_DCACHE_CISW = 15387,
+ TH_DCACHE_CIVA = 15388,
+ TH_DCACHE_CPA = 15389,
+ TH_DCACHE_CPAL1 = 15390,
+ TH_DCACHE_CSW = 15391,
+ TH_DCACHE_CVA = 15392,
+ TH_DCACHE_CVAL1 = 15393,
+ TH_DCACHE_IALL = 15394,
+ TH_DCACHE_IPA = 15395,
+ TH_DCACHE_ISW = 15396,
+ TH_DCACHE_IVA = 15397,
+ TH_EXT = 15398,
+ TH_EXTU = 15399,
+ TH_FF0 = 15400,
+ TH_FF1 = 15401,
+ TH_FLRD = 15402,
+ TH_FLRW = 15403,
+ TH_FLURD = 15404,
+ TH_FLURW = 15405,
+ TH_FSRD = 15406,
+ TH_FSRW = 15407,
+ TH_FSURD = 15408,
+ TH_FSURW = 15409,
+ TH_ICACHE_IALL = 15410,
+ TH_ICACHE_IALLS = 15411,
+ TH_ICACHE_IPA = 15412,
+ TH_ICACHE_IVA = 15413,
+ TH_L2CACHE_CALL = 15414,
+ TH_L2CACHE_CIALL = 15415,
+ TH_L2CACHE_IALL = 15416,
+ TH_LBIA = 15417,
+ TH_LBIB = 15418,
+ TH_LBUIA = 15419,
+ TH_LBUIB = 15420,
+ TH_LDD = 15421,
+ TH_LDIA = 15422,
+ TH_LDIB = 15423,
+ TH_LHIA = 15424,
+ TH_LHIB = 15425,
+ TH_LHUIA = 15426,
+ TH_LHUIB = 15427,
+ TH_LRB = 15428,
+ TH_LRBU = 15429,
+ TH_LRD = 15430,
+ TH_LRH = 15431,
+ TH_LRHU = 15432,
+ TH_LRW = 15433,
+ TH_LRWU = 15434,
+ TH_LURB = 15435,
+ TH_LURBU = 15436,
+ TH_LURD = 15437,
+ TH_LURH = 15438,
+ TH_LURHU = 15439,
+ TH_LURW = 15440,
+ TH_LURWU = 15441,
+ TH_LWD = 15442,
+ TH_LWIA = 15443,
+ TH_LWIB = 15444,
+ TH_LWUD = 15445,
+ TH_LWUIA = 15446,
+ TH_LWUIB = 15447,
+ TH_MULA = 15448,
+ TH_MULAH = 15449,
+ TH_MULAW = 15450,
+ TH_MULS = 15451,
+ TH_MULSH = 15452,
+ TH_MULSW = 15453,
+ TH_MVEQZ = 15454,
+ TH_MVNEZ = 15455,
+ TH_REV = 15456,
+ TH_REVW = 15457,
+ TH_SBIA = 15458,
+ TH_SBIB = 15459,
+ TH_SDD = 15460,
+ TH_SDIA = 15461,
+ TH_SDIB = 15462,
+ TH_SFENCE_VMAS = 15463,
+ TH_SHIA = 15464,
+ TH_SHIB = 15465,
+ TH_SRB = 15466,
+ TH_SRD = 15467,
+ TH_SRH = 15468,
+ TH_SRRI = 15469,
+ TH_SRRIW = 15470,
+ TH_SRW = 15471,
+ TH_SURB = 15472,
+ TH_SURD = 15473,
+ TH_SURH = 15474,
+ TH_SURW = 15475,
+ TH_SWD = 15476,
+ TH_SWIA = 15477,
+ TH_SWIB = 15478,
+ TH_SYNC = 15479,
+ TH_SYNC_I = 15480,
+ TH_SYNC_IS = 15481,
+ TH_SYNC_S = 15482,
+ TH_TST = 15483,
+ TH_TSTNBZ = 15484,
+ TH_VMAQASU_VV = 15485,
+ TH_VMAQASU_VX = 15486,
+ TH_VMAQAUS_VX = 15487,
+ TH_VMAQAU_VV = 15488,
+ TH_VMAQAU_VX = 15489,
+ TH_VMAQA_VV = 15490,
+ TH_VMAQA_VX = 15491,
+ UNIMP = 15492,
+ UNZIP16HP = 15493,
+ UNZIP16P = 15494,
+ UNZIP8HP = 15495,
+ UNZIP8P = 15496,
+ UNZIP_RV32 = 15497,
+ USATI_RV32 = 15498,
+ USATI_RV64 = 15499,
+ VAADDU_VV = 15500,
+ VAADDU_VX = 15501,
+ VAADD_VV = 15502,
+ VAADD_VX = 15503,
+ VADC_VIM = 15504,
+ VADC_VVM = 15505,
+ VADC_VXM = 15506,
+ VADD_VI = 15507,
+ VADD_VV = 15508,
+ VADD_VX = 15509,
+ VAESDF_VS = 15510,
+ VAESDF_VV = 15511,
+ VAESDM_VS = 15512,
+ VAESDM_VV = 15513,
+ VAESEF_VS = 15514,
+ VAESEF_VV = 15515,
+ VAESEM_VS = 15516,
+ VAESEM_VV = 15517,
+ VAESKF1_VI = 15518,
+ VAESKF2_VI = 15519,
+ VAESZ_VS = 15520,
+ VANDN_VV = 15521,
+ VANDN_VX = 15522,
+ VAND_VI = 15523,
+ VAND_VV = 15524,
+ VAND_VX = 15525,
+ VASUBU_VV = 15526,
+ VASUBU_VX = 15527,
+ VASUB_VV = 15528,
+ VASUB_VX = 15529,
+ VBREV8_V = 15530,
+ VBREV_V = 15531,
+ VCLMULH_VV = 15532,
+ VCLMULH_VX = 15533,
+ VCLMUL_VV = 15534,
+ VCLMUL_VX = 15535,
+ VCLZ_V = 15536,
+ VCOMPRESS_VM = 15537,
+ VCPOP_M = 15538,
+ VCPOP_V = 15539,
+ VCTZ_V = 15540,
+ VDIVU_VV = 15541,
+ VDIVU_VX = 15542,
+ VDIV_VV = 15543,
+ VDIV_VX = 15544,
+ VFADD_VF = 15545,
+ VFADD_VV = 15546,
+ VFCLASS_V = 15547,
+ VFCVT_F_XU_V = 15548,
+ VFCVT_F_X_V = 15549,
+ VFCVT_RTZ_XU_F_V = 15550,
+ VFCVT_RTZ_X_F_V = 15551,
+ VFCVT_XU_F_V = 15552,
+ VFCVT_X_F_V = 15553,
+ VFDIV_VF = 15554,
+ VFDIV_VV = 15555,
+ VFIRST_M = 15556,
+ VFMACC_VF = 15557,
+ VFMACC_VV = 15558,
+ VFMADD_VF = 15559,
+ VFMADD_VV = 15560,
+ VFMAX_VF = 15561,
+ VFMAX_VV = 15562,
+ VFMERGE_VFM = 15563,
+ VFMIN_VF = 15564,
+ VFMIN_VV = 15565,
+ VFMSAC_VF = 15566,
+ VFMSAC_VV = 15567,
+ VFMSUB_VF = 15568,
+ VFMSUB_VV = 15569,
+ VFMUL_VF = 15570,
+ VFMUL_VV = 15571,
+ VFMV_F_S = 15572,
+ VFMV_S_F = 15573,
+ VFMV_V_F = 15574,
+ VFNCVTBF16_F_F_W = 15575,
+ VFNCVTBF16_SAT_F_F_W = 15576,
+ VFNCVT_F_F_Q = 15577,
+ VFNCVT_F_F_W = 15578,
+ VFNCVT_F_XU_W = 15579,
+ VFNCVT_F_X_W = 15580,
+ VFNCVT_ROD_F_F_W = 15581,
+ VFNCVT_RTZ_XU_F_W = 15582,
+ VFNCVT_RTZ_X_F_W = 15583,
+ VFNCVT_SAT_F_F_Q = 15584,
+ VFNCVT_XU_F_W = 15585,
+ VFNCVT_X_F_W = 15586,
+ VFNMACC_VF = 15587,
+ VFNMACC_VV = 15588,
+ VFNMADD_VF = 15589,
+ VFNMADD_VV = 15590,
+ VFNMSAC_VF = 15591,
+ VFNMSAC_VV = 15592,
+ VFNMSUB_VF = 15593,
+ VFNMSUB_VV = 15594,
+ VFRDIV_VF = 15595,
+ VFREC7_V = 15596,
+ VFREDMAX_VS = 15597,
+ VFREDMIN_VS = 15598,
+ VFREDOSUM_VS = 15599,
+ VFREDUSUM_VS = 15600,
+ VFRSQRT7_V = 15601,
+ VFRSUB_VF = 15602,
+ VFSGNJN_VF = 15603,
+ VFSGNJN_VV = 15604,
+ VFSGNJX_VF = 15605,
+ VFSGNJX_VV = 15606,
+ VFSGNJ_VF = 15607,
+ VFSGNJ_VV = 15608,
+ VFSLIDE1DOWN_VF = 15609,
+ VFSLIDE1UP_VF = 15610,
+ VFSQRT_V = 15611,
+ VFSUB_VF = 15612,
+ VFSUB_VV = 15613,
+ VFWADD_VF = 15614,
+ VFWADD_VV = 15615,
+ VFWADD_WF = 15616,
+ VFWADD_WV = 15617,
+ VFWCVTBF16_F_F_V = 15618,
+ VFWCVT_F_F_V = 15619,
+ VFWCVT_F_XU_V = 15620,
+ VFWCVT_F_X_V = 15621,
+ VFWCVT_RTZ_XU_F_V = 15622,
+ VFWCVT_RTZ_X_F_V = 15623,
+ VFWCVT_XU_F_V = 15624,
+ VFWCVT_X_F_V = 15625,
+ VFWMACCBF16_VF = 15626,
+ VFWMACCBF16_VV = 15627,
+ VFWMACC_VF = 15628,
+ VFWMACC_VV = 15629,
+ VFWMSAC_VF = 15630,
+ VFWMSAC_VV = 15631,
+ VFWMUL_VF = 15632,
+ VFWMUL_VV = 15633,
+ VFWNMACC_VF = 15634,
+ VFWNMACC_VV = 15635,
+ VFWNMSAC_VF = 15636,
+ VFWNMSAC_VV = 15637,
+ VFWREDOSUM_VS = 15638,
+ VFWREDUSUM_VS = 15639,
+ VFWSUB_VF = 15640,
+ VFWSUB_VV = 15641,
+ VFWSUB_WF = 15642,
+ VFWSUB_WV = 15643,
+ VGHSH_VS = 15644,
+ VGHSH_VV = 15645,
+ VGMUL_VS = 15646,
+ VGMUL_VV = 15647,
+ VID_V = 15648,
+ VIOTA_M = 15649,
+ VL1RE16_V = 15650,
+ VL1RE32_V = 15651,
+ VL1RE64_V = 15652,
+ VL1RE8_V = 15653,
+ VL2RE16_V = 15654,
+ VL2RE32_V = 15655,
+ VL2RE64_V = 15656,
+ VL2RE8_V = 15657,
+ VL4RE16_V = 15658,
+ VL4RE32_V = 15659,
+ VL4RE64_V = 15660,
+ VL4RE8_V = 15661,
+ VL8RE16_V = 15662,
+ VL8RE32_V = 15663,
+ VL8RE64_V = 15664,
+ VL8RE8_V = 15665,
+ VLE16FF_V = 15666,
+ VLE16_V = 15667,
+ VLE32FF_V = 15668,
+ VLE32_V = 15669,
+ VLE64FF_V = 15670,
+ VLE64_V = 15671,
+ VLE8FF_V = 15672,
+ VLE8_V = 15673,
+ VLM_V = 15674,
+ VLOXEI16_V = 15675,
+ VLOXEI32_V = 15676,
+ VLOXEI64_V = 15677,
+ VLOXEI8_V = 15678,
+ VLOXSEG2EI16_V = 15679,
+ VLOXSEG2EI32_V = 15680,
+ VLOXSEG2EI64_V = 15681,
+ VLOXSEG2EI8_V = 15682,
+ VLOXSEG3EI16_V = 15683,
+ VLOXSEG3EI32_V = 15684,
+ VLOXSEG3EI64_V = 15685,
+ VLOXSEG3EI8_V = 15686,
+ VLOXSEG4EI16_V = 15687,
+ VLOXSEG4EI32_V = 15688,
+ VLOXSEG4EI64_V = 15689,
+ VLOXSEG4EI8_V = 15690,
+ VLOXSEG5EI16_V = 15691,
+ VLOXSEG5EI32_V = 15692,
+ VLOXSEG5EI64_V = 15693,
+ VLOXSEG5EI8_V = 15694,
+ VLOXSEG6EI16_V = 15695,
+ VLOXSEG6EI32_V = 15696,
+ VLOXSEG6EI64_V = 15697,
+ VLOXSEG6EI8_V = 15698,
+ VLOXSEG7EI16_V = 15699,
+ VLOXSEG7EI32_V = 15700,
+ VLOXSEG7EI64_V = 15701,
+ VLOXSEG7EI8_V = 15702,
+ VLOXSEG8EI16_V = 15703,
+ VLOXSEG8EI32_V = 15704,
+ VLOXSEG8EI64_V = 15705,
+ VLOXSEG8EI8_V = 15706,
+ VLSE16_V = 15707,
+ VLSE32_V = 15708,
+ VLSE64_V = 15709,
+ VLSE8_V = 15710,
+ VLSEG2E16FF_V = 15711,
+ VLSEG2E16_V = 15712,
+ VLSEG2E32FF_V = 15713,
+ VLSEG2E32_V = 15714,
+ VLSEG2E64FF_V = 15715,
+ VLSEG2E64_V = 15716,
+ VLSEG2E8FF_V = 15717,
+ VLSEG2E8_V = 15718,
+ VLSEG3E16FF_V = 15719,
+ VLSEG3E16_V = 15720,
+ VLSEG3E32FF_V = 15721,
+ VLSEG3E32_V = 15722,
+ VLSEG3E64FF_V = 15723,
+ VLSEG3E64_V = 15724,
+ VLSEG3E8FF_V = 15725,
+ VLSEG3E8_V = 15726,
+ VLSEG4E16FF_V = 15727,
+ VLSEG4E16_V = 15728,
+ VLSEG4E32FF_V = 15729,
+ VLSEG4E32_V = 15730,
+ VLSEG4E64FF_V = 15731,
+ VLSEG4E64_V = 15732,
+ VLSEG4E8FF_V = 15733,
+ VLSEG4E8_V = 15734,
+ VLSEG5E16FF_V = 15735,
+ VLSEG5E16_V = 15736,
+ VLSEG5E32FF_V = 15737,
+ VLSEG5E32_V = 15738,
+ VLSEG5E64FF_V = 15739,
+ VLSEG5E64_V = 15740,
+ VLSEG5E8FF_V = 15741,
+ VLSEG5E8_V = 15742,
+ VLSEG6E16FF_V = 15743,
+ VLSEG6E16_V = 15744,
+ VLSEG6E32FF_V = 15745,
+ VLSEG6E32_V = 15746,
+ VLSEG6E64FF_V = 15747,
+ VLSEG6E64_V = 15748,
+ VLSEG6E8FF_V = 15749,
+ VLSEG6E8_V = 15750,
+ VLSEG7E16FF_V = 15751,
+ VLSEG7E16_V = 15752,
+ VLSEG7E32FF_V = 15753,
+ VLSEG7E32_V = 15754,
+ VLSEG7E64FF_V = 15755,
+ VLSEG7E64_V = 15756,
+ VLSEG7E8FF_V = 15757,
+ VLSEG7E8_V = 15758,
+ VLSEG8E16FF_V = 15759,
+ VLSEG8E16_V = 15760,
+ VLSEG8E32FF_V = 15761,
+ VLSEG8E32_V = 15762,
+ VLSEG8E64FF_V = 15763,
+ VLSEG8E64_V = 15764,
+ VLSEG8E8FF_V = 15765,
+ VLSEG8E8_V = 15766,
+ VLSSEG2E16_V = 15767,
+ VLSSEG2E32_V = 15768,
+ VLSSEG2E64_V = 15769,
+ VLSSEG2E8_V = 15770,
+ VLSSEG3E16_V = 15771,
+ VLSSEG3E32_V = 15772,
+ VLSSEG3E64_V = 15773,
+ VLSSEG3E8_V = 15774,
+ VLSSEG4E16_V = 15775,
+ VLSSEG4E32_V = 15776,
+ VLSSEG4E64_V = 15777,
+ VLSSEG4E8_V = 15778,
+ VLSSEG5E16_V = 15779,
+ VLSSEG5E32_V = 15780,
+ VLSSEG5E64_V = 15781,
+ VLSSEG5E8_V = 15782,
+ VLSSEG6E16_V = 15783,
+ VLSSEG6E32_V = 15784,
+ VLSSEG6E64_V = 15785,
+ VLSSEG6E8_V = 15786,
+ VLSSEG7E16_V = 15787,
+ VLSSEG7E32_V = 15788,
+ VLSSEG7E64_V = 15789,
+ VLSSEG7E8_V = 15790,
+ VLSSEG8E16_V = 15791,
+ VLSSEG8E32_V = 15792,
+ VLSSEG8E64_V = 15793,
+ VLSSEG8E8_V = 15794,
+ VLUXEI16_V = 15795,
+ VLUXEI32_V = 15796,
+ VLUXEI64_V = 15797,
+ VLUXEI8_V = 15798,
+ VLUXSEG2EI16_V = 15799,
+ VLUXSEG2EI32_V = 15800,
+ VLUXSEG2EI64_V = 15801,
+ VLUXSEG2EI8_V = 15802,
+ VLUXSEG3EI16_V = 15803,
+ VLUXSEG3EI32_V = 15804,
+ VLUXSEG3EI64_V = 15805,
+ VLUXSEG3EI8_V = 15806,
+ VLUXSEG4EI16_V = 15807,
+ VLUXSEG4EI32_V = 15808,
+ VLUXSEG4EI64_V = 15809,
+ VLUXSEG4EI8_V = 15810,
+ VLUXSEG5EI16_V = 15811,
+ VLUXSEG5EI32_V = 15812,
+ VLUXSEG5EI64_V = 15813,
+ VLUXSEG5EI8_V = 15814,
+ VLUXSEG6EI16_V = 15815,
+ VLUXSEG6EI32_V = 15816,
+ VLUXSEG6EI64_V = 15817,
+ VLUXSEG6EI8_V = 15818,
+ VLUXSEG7EI16_V = 15819,
+ VLUXSEG7EI32_V = 15820,
+ VLUXSEG7EI64_V = 15821,
+ VLUXSEG7EI8_V = 15822,
+ VLUXSEG8EI16_V = 15823,
+ VLUXSEG8EI32_V = 15824,
+ VLUXSEG8EI64_V = 15825,
+ VLUXSEG8EI8_V = 15826,
+ VMACC_VV = 15827,
+ VMACC_VX = 15828,
+ VMADC_VI = 15829,
+ VMADC_VIM = 15830,
+ VMADC_VV = 15831,
+ VMADC_VVM = 15832,
+ VMADC_VX = 15833,
+ VMADC_VXM = 15834,
+ VMADD_VV = 15835,
+ VMADD_VX = 15836,
+ VMANDN_MM = 15837,
+ VMAND_MM = 15838,
+ VMAXU_VV = 15839,
+ VMAXU_VX = 15840,
+ VMAX_VV = 15841,
+ VMAX_VX = 15842,
+ VMERGE_VIM = 15843,
+ VMERGE_VVM = 15844,
+ VMERGE_VXM = 15845,
+ VMFEQ_VF = 15846,
+ VMFEQ_VV = 15847,
+ VMFGE_VF = 15848,
+ VMFGT_VF = 15849,
+ VMFLE_VF = 15850,
+ VMFLE_VV = 15851,
+ VMFLT_VF = 15852,
+ VMFLT_VV = 15853,
+ VMFNE_VF = 15854,
+ VMFNE_VV = 15855,
+ VMINU_VV = 15856,
+ VMINU_VX = 15857,
+ VMIN_VV = 15858,
+ VMIN_VX = 15859,
+ VMNAND_MM = 15860,
+ VMNOR_MM = 15861,
+ VMORN_MM = 15862,
+ VMOR_MM = 15863,
+ VMSBC_VV = 15864,
+ VMSBC_VVM = 15865,
+ VMSBC_VX = 15866,
+ VMSBC_VXM = 15867,
+ VMSBF_M = 15868,
+ VMSEQ_VI = 15869,
+ VMSEQ_VV = 15870,
+ VMSEQ_VX = 15871,
+ VMSGTU_VI = 15872,
+ VMSGTU_VX = 15873,
+ VMSGT_VI = 15874,
+ VMSGT_VX = 15875,
+ VMSIF_M = 15876,
+ VMSLEU_VI = 15877,
+ VMSLEU_VV = 15878,
+ VMSLEU_VX = 15879,
+ VMSLE_VI = 15880,
+ VMSLE_VV = 15881,
+ VMSLE_VX = 15882,
+ VMSLTU_VV = 15883,
+ VMSLTU_VX = 15884,
+ VMSLT_VV = 15885,
+ VMSLT_VX = 15886,
+ VMSNE_VI = 15887,
+ VMSNE_VV = 15888,
+ VMSNE_VX = 15889,
+ VMSOF_M = 15890,
+ VMULHSU_VV = 15891,
+ VMULHSU_VX = 15892,
+ VMULHU_VV = 15893,
+ VMULHU_VX = 15894,
+ VMULH_VV = 15895,
+ VMULH_VX = 15896,
+ VMUL_VV = 15897,
+ VMUL_VX = 15898,
+ VMV1R_V = 15899,
+ VMV2R_V = 15900,
+ VMV4R_V = 15901,
+ VMV8R_V = 15902,
+ VMV_S_X = 15903,
+ VMV_V_I = 15904,
+ VMV_V_V = 15905,
+ VMV_V_X = 15906,
+ VMV_X_S = 15907,
+ VMXNOR_MM = 15908,
+ VMXOR_MM = 15909,
+ VNCLIPU_WI = 15910,
+ VNCLIPU_WV = 15911,
+ VNCLIPU_WX = 15912,
+ VNCLIP_WI = 15913,
+ VNCLIP_WV = 15914,
+ VNCLIP_WX = 15915,
+ VNMSAC_VV = 15916,
+ VNMSAC_VX = 15917,
+ VNMSUB_VV = 15918,
+ VNMSUB_VX = 15919,
+ VNSRA_WI = 15920,
+ VNSRA_WV = 15921,
+ VNSRA_WX = 15922,
+ VNSRL_WI = 15923,
+ VNSRL_WV = 15924,
+ VNSRL_WX = 15925,
+ VOR_VI = 15926,
+ VOR_VV = 15927,
+ VOR_VX = 15928,
+ VQDOTSU_VV = 15929,
+ VQDOTSU_VX = 15930,
+ VQDOTUS_VX = 15931,
+ VQDOTU_VV = 15932,
+ VQDOTU_VX = 15933,
+ VQDOT_VV = 15934,
+ VQDOT_VX = 15935,
+ VREDAND_VS = 15936,
+ VREDMAXU_VS = 15937,
+ VREDMAX_VS = 15938,
+ VREDMINU_VS = 15939,
+ VREDMIN_VS = 15940,
+ VREDOR_VS = 15941,
+ VREDSUM_VS = 15942,
+ VREDXOR_VS = 15943,
+ VREMU_VV = 15944,
+ VREMU_VX = 15945,
+ VREM_VV = 15946,
+ VREM_VX = 15947,
+ VREV8_V = 15948,
+ VRGATHEREI16_VV = 15949,
+ VRGATHER_VI = 15950,
+ VRGATHER_VV = 15951,
+ VRGATHER_VX = 15952,
+ VROL_VV = 15953,
+ VROL_VX = 15954,
+ VROR_VI = 15955,
+ VROR_VV = 15956,
+ VROR_VX = 15957,
+ VRSUB_VI = 15958,
+ VRSUB_VX = 15959,
+ VS1R_V = 15960,
+ VS2R_V = 15961,
+ VS4R_V = 15962,
+ VS8R_V = 15963,
+ VSADDU_VI = 15964,
+ VSADDU_VV = 15965,
+ VSADDU_VX = 15966,
+ VSADD_VI = 15967,
+ VSADD_VV = 15968,
+ VSADD_VX = 15969,
+ VSBC_VVM = 15970,
+ VSBC_VXM = 15971,
+ VSE16_V = 15972,
+ VSE32_V = 15973,
+ VSE64_V = 15974,
+ VSE8_V = 15975,
+ VSETIVLI = 15976,
+ VSETVL = 15977,
+ VSETVLI = 15978,
+ VSEXT_VF2 = 15979,
+ VSEXT_VF4 = 15980,
+ VSEXT_VF8 = 15981,
+ VSHA2CH_VV = 15982,
+ VSHA2CL_VV = 15983,
+ VSHA2MS_VV = 15984,
+ VSLIDE1DOWN_VX = 15985,
+ VSLIDE1UP_VX = 15986,
+ VSLIDEDOWN_VI = 15987,
+ VSLIDEDOWN_VX = 15988,
+ VSLIDEUP_VI = 15989,
+ VSLIDEUP_VX = 15990,
+ VSLL_VI = 15991,
+ VSLL_VV = 15992,
+ VSLL_VX = 15993,
+ VSM3C_VI = 15994,
+ VSM3ME_VV = 15995,
+ VSM4K_VI = 15996,
+ VSM4R_VS = 15997,
+ VSM4R_VV = 15998,
+ VSMUL_VV = 15999,
+ VSMUL_VX = 16000,
+ VSM_V = 16001,
+ VSOXEI16_V = 16002,
+ VSOXEI32_V = 16003,
+ VSOXEI64_V = 16004,
+ VSOXEI8_V = 16005,
+ VSOXSEG2EI16_V = 16006,
+ VSOXSEG2EI32_V = 16007,
+ VSOXSEG2EI64_V = 16008,
+ VSOXSEG2EI8_V = 16009,
+ VSOXSEG3EI16_V = 16010,
+ VSOXSEG3EI32_V = 16011,
+ VSOXSEG3EI64_V = 16012,
+ VSOXSEG3EI8_V = 16013,
+ VSOXSEG4EI16_V = 16014,
+ VSOXSEG4EI32_V = 16015,
+ VSOXSEG4EI64_V = 16016,
+ VSOXSEG4EI8_V = 16017,
+ VSOXSEG5EI16_V = 16018,
+ VSOXSEG5EI32_V = 16019,
+ VSOXSEG5EI64_V = 16020,
+ VSOXSEG5EI8_V = 16021,
+ VSOXSEG6EI16_V = 16022,
+ VSOXSEG6EI32_V = 16023,
+ VSOXSEG6EI64_V = 16024,
+ VSOXSEG6EI8_V = 16025,
+ VSOXSEG7EI16_V = 16026,
+ VSOXSEG7EI32_V = 16027,
+ VSOXSEG7EI64_V = 16028,
+ VSOXSEG7EI8_V = 16029,
+ VSOXSEG8EI16_V = 16030,
+ VSOXSEG8EI32_V = 16031,
+ VSOXSEG8EI64_V = 16032,
+ VSOXSEG8EI8_V = 16033,
+ VSRA_VI = 16034,
+ VSRA_VV = 16035,
+ VSRA_VX = 16036,
+ VSRL_VI = 16037,
+ VSRL_VV = 16038,
+ VSRL_VX = 16039,
+ VSSE16_V = 16040,
+ VSSE32_V = 16041,
+ VSSE64_V = 16042,
+ VSSE8_V = 16043,
+ VSSEG2E16_V = 16044,
+ VSSEG2E32_V = 16045,
+ VSSEG2E64_V = 16046,
+ VSSEG2E8_V = 16047,
+ VSSEG3E16_V = 16048,
+ VSSEG3E32_V = 16049,
+ VSSEG3E64_V = 16050,
+ VSSEG3E8_V = 16051,
+ VSSEG4E16_V = 16052,
+ VSSEG4E32_V = 16053,
+ VSSEG4E64_V = 16054,
+ VSSEG4E8_V = 16055,
+ VSSEG5E16_V = 16056,
+ VSSEG5E32_V = 16057,
+ VSSEG5E64_V = 16058,
+ VSSEG5E8_V = 16059,
+ VSSEG6E16_V = 16060,
+ VSSEG6E32_V = 16061,
+ VSSEG6E64_V = 16062,
+ VSSEG6E8_V = 16063,
+ VSSEG7E16_V = 16064,
+ VSSEG7E32_V = 16065,
+ VSSEG7E64_V = 16066,
+ VSSEG7E8_V = 16067,
+ VSSEG8E16_V = 16068,
+ VSSEG8E32_V = 16069,
+ VSSEG8E64_V = 16070,
+ VSSEG8E8_V = 16071,
+ VSSRA_VI = 16072,
+ VSSRA_VV = 16073,
+ VSSRA_VX = 16074,
+ VSSRL_VI = 16075,
+ VSSRL_VV = 16076,
+ VSSRL_VX = 16077,
+ VSSSEG2E16_V = 16078,
+ VSSSEG2E32_V = 16079,
+ VSSSEG2E64_V = 16080,
+ VSSSEG2E8_V = 16081,
+ VSSSEG3E16_V = 16082,
+ VSSSEG3E32_V = 16083,
+ VSSSEG3E64_V = 16084,
+ VSSSEG3E8_V = 16085,
+ VSSSEG4E16_V = 16086,
+ VSSSEG4E32_V = 16087,
+ VSSSEG4E64_V = 16088,
+ VSSSEG4E8_V = 16089,
+ VSSSEG5E16_V = 16090,
+ VSSSEG5E32_V = 16091,
+ VSSSEG5E64_V = 16092,
+ VSSSEG5E8_V = 16093,
+ VSSSEG6E16_V = 16094,
+ VSSSEG6E32_V = 16095,
+ VSSSEG6E64_V = 16096,
+ VSSSEG6E8_V = 16097,
+ VSSSEG7E16_V = 16098,
+ VSSSEG7E32_V = 16099,
+ VSSSEG7E64_V = 16100,
+ VSSSEG7E8_V = 16101,
+ VSSSEG8E16_V = 16102,
+ VSSSEG8E32_V = 16103,
+ VSSSEG8E64_V = 16104,
+ VSSSEG8E8_V = 16105,
+ VSSUBU_VV = 16106,
+ VSSUBU_VX = 16107,
+ VSSUB_VV = 16108,
+ VSSUB_VX = 16109,
+ VSUB_VV = 16110,
+ VSUB_VX = 16111,
+ VSUXEI16_V = 16112,
+ VSUXEI32_V = 16113,
+ VSUXEI64_V = 16114,
+ VSUXEI8_V = 16115,
+ VSUXSEG2EI16_V = 16116,
+ VSUXSEG2EI32_V = 16117,
+ VSUXSEG2EI64_V = 16118,
+ VSUXSEG2EI8_V = 16119,
+ VSUXSEG3EI16_V = 16120,
+ VSUXSEG3EI32_V = 16121,
+ VSUXSEG3EI64_V = 16122,
+ VSUXSEG3EI8_V = 16123,
+ VSUXSEG4EI16_V = 16124,
+ VSUXSEG4EI32_V = 16125,
+ VSUXSEG4EI64_V = 16126,
+ VSUXSEG4EI8_V = 16127,
+ VSUXSEG5EI16_V = 16128,
+ VSUXSEG5EI32_V = 16129,
+ VSUXSEG5EI64_V = 16130,
+ VSUXSEG5EI8_V = 16131,
+ VSUXSEG6EI16_V = 16132,
+ VSUXSEG6EI32_V = 16133,
+ VSUXSEG6EI64_V = 16134,
+ VSUXSEG6EI8_V = 16135,
+ VSUXSEG7EI16_V = 16136,
+ VSUXSEG7EI32_V = 16137,
+ VSUXSEG7EI64_V = 16138,
+ VSUXSEG7EI8_V = 16139,
+ VSUXSEG8EI16_V = 16140,
+ VSUXSEG8EI32_V = 16141,
+ VSUXSEG8EI64_V = 16142,
+ VSUXSEG8EI8_V = 16143,
+ VT_MASKC = 16144,
+ VT_MASKCN = 16145,
+ VWADDU_VV = 16146,
+ VWADDU_VX = 16147,
+ VWADDU_WV = 16148,
+ VWADDU_WX = 16149,
+ VWADD_VV = 16150,
+ VWADD_VX = 16151,
+ VWADD_WV = 16152,
+ VWADD_WX = 16153,
+ VWMACCSU_VV = 16154,
+ VWMACCSU_VX = 16155,
+ VWMACCUS_VX = 16156,
+ VWMACCU_VV = 16157,
+ VWMACCU_VX = 16158,
+ VWMACC_VV = 16159,
+ VWMACC_VX = 16160,
+ VWMULSU_VV = 16161,
+ VWMULSU_VX = 16162,
+ VWMULU_VV = 16163,
+ VWMULU_VX = 16164,
+ VWMUL_VV = 16165,
+ VWMUL_VX = 16166,
+ VWREDSUMU_VS = 16167,
+ VWREDSUM_VS = 16168,
+ VWSLL_VI = 16169,
+ VWSLL_VV = 16170,
+ VWSLL_VX = 16171,
+ VWSUBU_VV = 16172,
+ VWSUBU_VX = 16173,
+ VWSUBU_WV = 16174,
+ VWSUBU_WX = 16175,
+ VWSUB_VV = 16176,
+ VWSUB_VX = 16177,
+ VWSUB_WV = 16178,
+ VWSUB_WX = 16179,
+ VXOR_VI = 16180,
+ VXOR_VV = 16181,
+ VXOR_VX = 16182,
+ VZEXT_VF2 = 16183,
+ VZEXT_VF4 = 16184,
+ VZEXT_VF8 = 16185,
+ WADD = 16186,
+ WADDA = 16187,
+ WADDAU = 16188,
+ WADDU = 16189,
+ WFI = 16190,
+ WMACC = 16191,
+ WMACCSU = 16192,
+ WMACCU = 16193,
+ WMUL = 16194,
+ WMULSU = 16195,
+ WMULU = 16196,
+ WRS_NTO = 16197,
+ WRS_STO = 16198,
+ WSLA = 16199,
+ WSLAI = 16200,
+ WSLL = 16201,
+ WSLLI = 16202,
+ WSUB = 16203,
+ WSUBA = 16204,
+ WSUBAU = 16205,
+ WSUBU = 16206,
+ WZIP16P = 16207,
+ WZIP8P = 16208,
+ XNOR = 16209,
+ XOR = 16210,
+ XORI = 16211,
+ XPERM4 = 16212,
+ XPERM8 = 16213,
+ ZEXT_H_RV32 = 16214,
+ ZEXT_H_RV64 = 16215,
+ ZIP16HP = 16216,
+ ZIP16P = 16217,
+ ZIP8HP = 16218,
+ ZIP8P = 16219,
+ ZIP_RV32 = 16220,
+ INSTRUCTION_LIST_END = 16221,
};
}
}
diff --git a/deps/LIEF/include/LIEF/asm/riscv/operands.hpp b/deps/LIEF/include/LIEF/asm/riscv/operands.hpp
new file mode 100644
index 00000000000..9b47b0ee044
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/riscv/operands.hpp
@@ -0,0 +1,22 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ASM_RISCV_OPERANDS_H
+#define LIEF_ASM_RISCV_OPERANDS_H
+#include <LIEF/asm/riscv/operands/Register.hpp>
+#include <LIEF/asm/riscv/operands/Immediate.hpp>
+#include <LIEF/asm/riscv/operands/PCRelative.hpp>
+#include <LIEF/asm/riscv/operands/Memory.hpp>
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/riscv/operands/Immediate.hpp b/deps/LIEF/include/LIEF/asm/riscv/operands/Immediate.hpp
new file mode 100644
index 00000000000..2ebb3b08bbf
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/riscv/operands/Immediate.hpp
@@ -0,0 +1,49 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ASM_RISCV_OPERAND_IMM_H
+#define LIEF_ASM_RISCV_OPERAND_IMM_H
+#include "LIEF/asm/riscv/Operand.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace riscv {
+/// Namespace that wraps the different RISC-V operands
+namespace operands {
+
+
+/// This class represents an immediate operand (i.e. a constant)
+///
+/// For instance:
+///
+/// ```text
+/// addi a0, a1, 8
+/// |
+/// +---> Immediate(8)
+/// ```
+class LIEF_API Immediate : public Operand {
+ public:
+ using Operand::Operand;
+
+ /// The constant value wrapped by this operand
+ int64_t value() const;
+
+ static bool classof(const Operand* op);
+ ~Immediate() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/riscv/operands/Memory.hpp b/deps/LIEF/include/LIEF/asm/riscv/operands/Memory.hpp
new file mode 100644
index 00000000000..fed67c19950
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/riscv/operands/Memory.hpp
@@ -0,0 +1,57 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ASM_RISCV_OPERAND_MEMORY_H
+#define LIEF_ASM_RISCV_OPERAND_MEMORY_H
+#include <cstdint>
+
+#include "LIEF/asm/riscv/Operand.hpp"
+#include "LIEF/asm/riscv/registers.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace riscv {
+namespace operands {
+
+/// This class represents a memory operand.
+///
+/// ```text
+/// lw a0, 8(sp)
+/// | |
+/// | +----> Base: sp
+/// |
+/// +-------> Displacement: 8
+/// ```
+class LIEF_API Memory : public Operand {
+ public:
+ using Operand::Operand;
+
+ /// The base register.
+ ///
+ /// For `lw a0, 8(sp)` it would return `sp`.
+ REG base() const;
+
+ /// The displacement value.
+ ///
+ /// For `lw a0, 8(sp)` it would return `8`.
+ int64_t displacement() const;
+
+ static bool classof(const Operand* op);
+ ~Memory() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/riscv/operands/PCRelative.hpp b/deps/LIEF/include/LIEF/asm/riscv/operands/PCRelative.hpp
new file mode 100644
index 00000000000..4241beea419
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/riscv/operands/PCRelative.hpp
@@ -0,0 +1,47 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ASM_RISCV_OPERAND_PCREL_H
+#define LIEF_ASM_RISCV_OPERAND_PCREL_H
+#include "LIEF/asm/riscv/Operand.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace riscv {
+namespace operands {
+
+/// This class represents a PC-relative operand.
+///
+/// ```text
+/// auipc a0, 0x1
+/// |
+/// v
+/// PC Relative operand
+/// ```
+class LIEF_API PCRelative : public Operand {
+ public:
+ using Operand::Operand;
+
+ /// The effective value that is relative to the current `pc` register
+ int64_t value() const;
+
+ static bool classof(const Operand* op);
+
+ ~PCRelative() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/riscv/operands/Register.hpp b/deps/LIEF/include/LIEF/asm/riscv/operands/Register.hpp
new file mode 100644
index 00000000000..3120af575a2
--- /dev/null
+++ b/deps/LIEF/include/LIEF/asm/riscv/operands/Register.hpp
@@ -0,0 +1,70 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_ASM_RISCV_OPERAND_REG_H
+#define LIEF_ASM_RISCV_OPERAND_REG_H
+
+#include "LIEF/asm/riscv/Operand.hpp"
+#include "LIEF/asm/riscv/registers.hpp"
+
+namespace LIEF {
+namespace assembly {
+namespace riscv {
+namespace operands {
+
+/// This class represents a register operand.
+///
+/// RISC-V exposes two kinds of registers: regular registers (GPR, FPR,
+/// vector, ...) and control and status registers (CSR / system registers).
+///
+/// ```text
+/// csrr a0, mstatus
+/// | |
+/// +------+ +-------+
+/// | |
+/// v v
+/// REG SYSREG
+/// ```
+class LIEF_API Register : public Operand {
+ public:
+ using Operand::Operand;
+
+ struct reg_t {
+ /// Enum type used to discriminate the anonymous union
+ enum class TYPE {
+ NONE = 0,
+ /// The union holds a sysreg attribute
+ SYSREG,
+ /// The union holds the reg attribute
+ REG,
+ };
+
+ union {
+ REG reg = REG::NoRegister;
+ SYSREG sysreg;
+ };
+ TYPE type = TYPE::NONE;
+ };
+
+ /// The effective register as either: a REG or a SYSREG
+ reg_t value() const;
+
+ static bool classof(const Operand* op);
+ ~Register() override = default;
+};
+}
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/asm/riscv/registers.hpp b/deps/LIEF/include/LIEF/asm/riscv/registers.hpp
index fa9df4e811f..377b74fdf0e 100644
--- a/deps/LIEF/include/LIEF/asm/riscv/registers.hpp
+++ b/deps/LIEF/include/LIEF/asm/riscv/registers.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,7 +18,9 @@ namespace LIEF {
namespace assembly {
namespace riscv {
enum class REG;
+enum class SYSREG;
const char* get_register_name(REG r);
+const char* get_register_name(SYSREG r);
enum class REG {
NoRegister = 0,
@@ -597,6 +599,522 @@ enum class REG {
NUM_TARGET_REGS = 573,
};
+enum class SYSREG {
+ fflags = 1,
+ frm = 2,
+ fcsr = 3,
+ vstart = 8,
+ vxsat = 9,
+ vxrm = 10,
+ vcsr = 15,
+ ssp = 17,
+ seed = 21,
+ jvt = 23,
+ sstatus = 256,
+ sie = 260,
+ stvec = 261,
+ scounteren = 262,
+ sf_stvt = 263,
+ senvcfg = 266,
+ sstateen0 = 268,
+ sstateen1 = 269,
+ sstateen2 = 270,
+ sstateen3 = 271,
+ sieh = 276,
+ scountinhibit = 288,
+ sscratch = 320,
+ sepc = 321,
+ scause = 322,
+ sbadaddr = 323,
+ sip = 324,
+ sf_snxti = 325,
+ sf_sintstatus = 326,
+ sf_sscratchcsw = 328,
+ sf_sscratchcswl = 329,
+ stimecmp = 333,
+ sctrctl = 334,
+ sctrstatus = 335,
+ siselect = 336,
+ sireg = 337,
+ sireg2 = 338,
+ sireg3 = 339,
+ siph = 340,
+ sireg4 = 341,
+ sireg5 = 342,
+ sireg6 = 343,
+ stopei = 348,
+ stimecmph = 349,
+ sctrdepth = 351,
+ satp = 384,
+ srmcfg = 385,
+ vsstatus = 512,
+ vsie = 516,
+ vstvec = 517,
+ vsieh = 532,
+ vsscratch = 576,
+ vsepc = 577,
+ vscause = 578,
+ vstval = 579,
+ vsip = 580,
+ vstimecmp = 589,
+ vsctrctl = 590,
+ vsiselect = 592,
+ vsireg = 593,
+ vsireg2 = 594,
+ vsireg3 = 595,
+ vsiph = 596,
+ vsireg4 = 597,
+ vsireg5 = 598,
+ vsireg6 = 599,
+ vstopei = 604,
+ vstimecmph = 605,
+ vsatp = 640,
+ mstatus = 768,
+ misa = 769,
+ medeleg = 770,
+ mideleg = 771,
+ mie = 772,
+ mtvec = 773,
+ mcounteren = 774,
+ sf_mtvt = 775,
+ mvien = 776,
+ mvip = 777,
+ menvcfg = 778,
+ mstateen0 = 780,
+ mstateen1 = 781,
+ mstateen2 = 782,
+ mstateen3 = 783,
+ mstatush = 784,
+ medelegh = 786,
+ midelegh = 787,
+ mieh = 788,
+ mvienh = 792,
+ mviph = 793,
+ menvcfgh = 794,
+ mstateen0h = 796,
+ mstateen1h = 797,
+ mstateen2h = 798,
+ mstateen3h = 799,
+ mcountinhibit = 800,
+ mcyclecfg = 801,
+ minstretcfg = 802,
+ mhpmevent3 = 803,
+ mhpmevent4 = 804,
+ mhpmevent5 = 805,
+ mhpmevent6 = 806,
+ mhpmevent7 = 807,
+ mhpmevent8 = 808,
+ mhpmevent9 = 809,
+ mhpmevent10 = 810,
+ mhpmevent11 = 811,
+ mhpmevent12 = 812,
+ mhpmevent13 = 813,
+ mhpmevent14 = 814,
+ mhpmevent15 = 815,
+ mhpmevent16 = 816,
+ mhpmevent17 = 817,
+ mhpmevent18 = 818,
+ mhpmevent19 = 819,
+ mhpmevent20 = 820,
+ mhpmevent21 = 821,
+ mhpmevent22 = 822,
+ mhpmevent23 = 823,
+ mhpmevent24 = 824,
+ mhpmevent25 = 825,
+ mhpmevent26 = 826,
+ mhpmevent27 = 827,
+ mhpmevent28 = 828,
+ mhpmevent29 = 829,
+ mhpmevent30 = 830,
+ mhpmevent31 = 831,
+ mscratch = 832,
+ mepc = 833,
+ mcause = 834,
+ mbadaddr = 835,
+ mip = 836,
+ sf_mnxti = 837,
+ sf_mintstatus = 838,
+ sf_mscratchcsw = 840,
+ sf_mscratchcswl = 841,
+ mtinst = 842,
+ mtval2 = 843,
+ mctrctl = 846,
+ miselect = 848,
+ mireg = 849,
+ mireg2 = 850,
+ mireg3 = 851,
+ miph = 852,
+ mireg4 = 853,
+ mireg5 = 854,
+ mireg6 = 855,
+ mtopei = 860,
+ pmpcfg0 = 928,
+ pmpcfg1 = 929,
+ pmpcfg2 = 930,
+ pmpcfg3 = 931,
+ pmpcfg4 = 932,
+ pmpcfg5 = 933,
+ pmpcfg6 = 934,
+ pmpcfg7 = 935,
+ pmpcfg8 = 936,
+ pmpcfg9 = 937,
+ pmpcfg10 = 938,
+ pmpcfg11 = 939,
+ pmpcfg12 = 940,
+ pmpcfg13 = 941,
+ pmpcfg14 = 942,
+ pmpcfg15 = 943,
+ pmpaddr0 = 944,
+ pmpaddr1 = 945,
+ pmpaddr2 = 946,
+ pmpaddr3 = 947,
+ pmpaddr4 = 948,
+ pmpaddr5 = 949,
+ pmpaddr6 = 950,
+ pmpaddr7 = 951,
+ pmpaddr8 = 952,
+ pmpaddr9 = 953,
+ pmpaddr10 = 954,
+ pmpaddr11 = 955,
+ pmpaddr12 = 956,
+ pmpaddr13 = 957,
+ pmpaddr14 = 958,
+ pmpaddr15 = 959,
+ pmpaddr16 = 960,
+ pmpaddr17 = 961,
+ pmpaddr18 = 962,
+ pmpaddr19 = 963,
+ pmpaddr20 = 964,
+ pmpaddr21 = 965,
+ pmpaddr22 = 966,
+ pmpaddr23 = 967,
+ pmpaddr24 = 968,
+ pmpaddr25 = 969,
+ pmpaddr26 = 970,
+ pmpaddr27 = 971,
+ pmpaddr28 = 972,
+ pmpaddr29 = 973,
+ pmpaddr30 = 974,
+ pmpaddr31 = 975,
+ pmpaddr32 = 976,
+ pmpaddr33 = 977,
+ pmpaddr34 = 978,
+ pmpaddr35 = 979,
+ pmpaddr36 = 980,
+ pmpaddr37 = 981,
+ pmpaddr38 = 982,
+ pmpaddr39 = 983,
+ pmpaddr40 = 984,
+ pmpaddr41 = 985,
+ pmpaddr42 = 986,
+ pmpaddr43 = 987,
+ pmpaddr44 = 988,
+ pmpaddr45 = 989,
+ pmpaddr46 = 990,
+ pmpaddr47 = 991,
+ pmpaddr48 = 992,
+ pmpaddr49 = 993,
+ pmpaddr50 = 994,
+ pmpaddr51 = 995,
+ pmpaddr52 = 996,
+ pmpaddr53 = 997,
+ pmpaddr54 = 998,
+ pmpaddr55 = 999,
+ pmpaddr56 = 1000,
+ pmpaddr57 = 1001,
+ pmpaddr58 = 1002,
+ pmpaddr59 = 1003,
+ pmpaddr60 = 1004,
+ pmpaddr61 = 1005,
+ pmpaddr62 = 1006,
+ pmpaddr63 = 1007,
+ scontext = 1448,
+ hstatus = 1536,
+ hedeleg = 1538,
+ hideleg = 1539,
+ hie = 1540,
+ htimedelta = 1541,
+ hcounteren = 1542,
+ hgeie = 1543,
+ hvien = 1544,
+ hvictl = 1545,
+ henvcfg = 1546,
+ hstateen0 = 1548,
+ hstateen1 = 1549,
+ hstateen2 = 1550,
+ hstateen3 = 1551,
+ hedelegh = 1554,
+ hidelegh = 1555,
+ htimedeltah = 1557,
+ hvienh = 1560,
+ henvcfgh = 1562,
+ hstateen0h = 1564,
+ hstateen1h = 1565,
+ hstateen2h = 1566,
+ hstateen3h = 1567,
+ htval = 1603,
+ hip = 1604,
+ hvip = 1605,
+ hviprio1 = 1606,
+ hviprio2 = 1607,
+ htinst = 1610,
+ hviph = 1621,
+ hviprio1h = 1622,
+ hviprio2h = 1623,
+ hgatp = 1664,
+ hcontext = 1704,
+ mcyclecfgh = 1825,
+ minstretcfgh = 1826,
+ mhpmevent3h = 1827,
+ mhpmevent4h = 1828,
+ mhpmevent5h = 1829,
+ mhpmevent6h = 1830,
+ mhpmevent7h = 1831,
+ mhpmevent8h = 1832,
+ mhpmevent9h = 1833,
+ mhpmevent10h = 1834,
+ mhpmevent11h = 1835,
+ mhpmevent12h = 1836,
+ mhpmevent13h = 1837,
+ mhpmevent14h = 1838,
+ mhpmevent15h = 1839,
+ mhpmevent16h = 1840,
+ mhpmevent17h = 1841,
+ mhpmevent18h = 1842,
+ mhpmevent19h = 1843,
+ mhpmevent20h = 1844,
+ mhpmevent21h = 1845,
+ mhpmevent22h = 1846,
+ mhpmevent23h = 1847,
+ mhpmevent24h = 1848,
+ mhpmevent25h = 1849,
+ mhpmevent26h = 1850,
+ mhpmevent27h = 1851,
+ mhpmevent28h = 1852,
+ mhpmevent29h = 1853,
+ mhpmevent30h = 1854,
+ mhpmevent31h = 1855,
+ mnscratch = 1856,
+ mnepc = 1857,
+ mncause = 1858,
+ mnstatus = 1860,
+ mseccfg = 1863,
+ mseccfgh = 1879,
+ tselect = 1952,
+ etrigger = 1953,
+ tdata2 = 1954,
+ tdata3 = 1955,
+ tinfo = 1956,
+ tcontrol = 1957,
+ mcontext = 1960,
+ mscontext = 1962,
+ dcsr = 1968,
+ dpc = 1969,
+ dscratch = 1970,
+ dscratch1 = 1971,
+ qc_mmcr = 1984,
+ qc_mntvec = 1987,
+ qc_mstktopaddr = 1988,
+ qc_mstkbottomaddr = 1989,
+ qc_mthreadptr = 1992,
+ qc_mcause = 1993,
+ qc_mwpstartaddr0 = 2000,
+ qc_mwpstartaddr1 = 2001,
+ qc_mwpstartaddr2 = 2002,
+ qc_mwpstartaddr3 = 2003,
+ qc_mwpendaddr0 = 2004,
+ qc_mwpendaddr1 = 2005,
+ qc_mwpendaddr2 = 2006,
+ qc_mwpendaddr3 = 2007,
+ qc_mclicip0 = 2032,
+ qc_mclicip1 = 2033,
+ qc_mclicip2 = 2034,
+ qc_mclicip3 = 2035,
+ qc_mclicip4 = 2036,
+ qc_mclicip5 = 2037,
+ qc_mclicip6 = 2038,
+ qc_mclicip7 = 2039,
+ qc_mclicie0 = 2040,
+ qc_mclicie1 = 2041,
+ qc_mclicie2 = 2042,
+ qc_mclicie3 = 2043,
+ qc_mclicie4 = 2044,
+ qc_mclicie5 = 2045,
+ qc_mclicie6 = 2046,
+ qc_mclicie7 = 2047,
+ mcycle = 2816,
+ minstret = 2818,
+ mhpmcounter3 = 2819,
+ mhpmcounter4 = 2820,
+ mhpmcounter5 = 2821,
+ mhpmcounter6 = 2822,
+ mhpmcounter7 = 2823,
+ mhpmcounter8 = 2824,
+ mhpmcounter9 = 2825,
+ mhpmcounter10 = 2826,
+ mhpmcounter11 = 2827,
+ mhpmcounter12 = 2828,
+ mhpmcounter13 = 2829,
+ mhpmcounter14 = 2830,
+ mhpmcounter15 = 2831,
+ mhpmcounter16 = 2832,
+ mhpmcounter17 = 2833,
+ mhpmcounter18 = 2834,
+ mhpmcounter19 = 2835,
+ mhpmcounter20 = 2836,
+ mhpmcounter21 = 2837,
+ mhpmcounter22 = 2838,
+ mhpmcounter23 = 2839,
+ mhpmcounter24 = 2840,
+ mhpmcounter25 = 2841,
+ mhpmcounter26 = 2842,
+ mhpmcounter27 = 2843,
+ mhpmcounter28 = 2844,
+ mhpmcounter29 = 2845,
+ mhpmcounter30 = 2846,
+ mhpmcounter31 = 2847,
+ mcycleh = 2944,
+ minstreth = 2946,
+ mhpmcounter3h = 2947,
+ mhpmcounter4h = 2948,
+ mhpmcounter5h = 2949,
+ mhpmcounter6h = 2950,
+ mhpmcounter7h = 2951,
+ mhpmcounter8h = 2952,
+ mhpmcounter9h = 2953,
+ mhpmcounter10h = 2954,
+ mhpmcounter11h = 2955,
+ mhpmcounter12h = 2956,
+ mhpmcounter13h = 2957,
+ mhpmcounter14h = 2958,
+ mhpmcounter15h = 2959,
+ mhpmcounter16h = 2960,
+ mhpmcounter17h = 2961,
+ mhpmcounter18h = 2962,
+ mhpmcounter19h = 2963,
+ mhpmcounter20h = 2964,
+ mhpmcounter21h = 2965,
+ mhpmcounter22h = 2966,
+ mhpmcounter23h = 2967,
+ mhpmcounter24h = 2968,
+ mhpmcounter25h = 2969,
+ mhpmcounter26h = 2970,
+ mhpmcounter27h = 2971,
+ mhpmcounter28h = 2972,
+ mhpmcounter29h = 2973,
+ mhpmcounter30h = 2974,
+ mhpmcounter31h = 2975,
+ qc_mclicilvl00 = 3008,
+ qc_mclicilvl01 = 3009,
+ qc_mclicilvl02 = 3010,
+ qc_mclicilvl03 = 3011,
+ qc_mclicilvl04 = 3012,
+ qc_mclicilvl05 = 3013,
+ qc_mclicilvl06 = 3014,
+ qc_mclicilvl07 = 3015,
+ qc_mclicilvl08 = 3016,
+ qc_mclicilvl09 = 3017,
+ qc_mclicilvl10 = 3018,
+ qc_mclicilvl11 = 3019,
+ qc_mclicilvl12 = 3020,
+ qc_mclicilvl13 = 3021,
+ qc_mclicilvl14 = 3022,
+ qc_mclicilvl15 = 3023,
+ qc_mclicilvl16 = 3024,
+ qc_mclicilvl17 = 3025,
+ qc_mclicilvl18 = 3026,
+ qc_mclicilvl19 = 3027,
+ qc_mclicilvl20 = 3028,
+ qc_mclicilvl21 = 3029,
+ qc_mclicilvl22 = 3030,
+ qc_mclicilvl23 = 3031,
+ qc_mclicilvl24 = 3032,
+ qc_mclicilvl25 = 3033,
+ qc_mclicilvl26 = 3034,
+ qc_mclicilvl27 = 3035,
+ qc_mclicilvl28 = 3036,
+ qc_mclicilvl29 = 3037,
+ qc_mclicilvl30 = 3038,
+ qc_mclicilvl31 = 3039,
+ cycle = 3072,
+ time = 3073,
+ instret = 3074,
+ hpmcounter3 = 3075,
+ hpmcounter4 = 3076,
+ hpmcounter5 = 3077,
+ hpmcounter6 = 3078,
+ hpmcounter7 = 3079,
+ hpmcounter8 = 3080,
+ hpmcounter9 = 3081,
+ hpmcounter10 = 3082,
+ hpmcounter11 = 3083,
+ hpmcounter12 = 3084,
+ hpmcounter13 = 3085,
+ hpmcounter14 = 3086,
+ hpmcounter15 = 3087,
+ hpmcounter16 = 3088,
+ hpmcounter17 = 3089,
+ hpmcounter18 = 3090,
+ hpmcounter19 = 3091,
+ hpmcounter20 = 3092,
+ hpmcounter21 = 3093,
+ hpmcounter22 = 3094,
+ hpmcounter23 = 3095,
+ hpmcounter24 = 3096,
+ hpmcounter25 = 3097,
+ hpmcounter26 = 3098,
+ hpmcounter27 = 3099,
+ hpmcounter28 = 3100,
+ hpmcounter29 = 3101,
+ hpmcounter30 = 3102,
+ hpmcounter31 = 3103,
+ vl = 3104,
+ vtype = 3105,
+ vlenb = 3106,
+ cycleh = 3200,
+ timeh = 3201,
+ instreth = 3202,
+ hpmcounter3h = 3203,
+ hpmcounter4h = 3204,
+ hpmcounter5h = 3205,
+ hpmcounter6h = 3206,
+ hpmcounter7h = 3207,
+ hpmcounter8h = 3208,
+ hpmcounter9h = 3209,
+ hpmcounter10h = 3210,
+ hpmcounter11h = 3211,
+ hpmcounter12h = 3212,
+ hpmcounter13h = 3213,
+ hpmcounter14h = 3214,
+ hpmcounter15h = 3215,
+ hpmcounter16h = 3216,
+ hpmcounter17h = 3217,
+ hpmcounter18h = 3218,
+ hpmcounter19h = 3219,
+ hpmcounter20h = 3220,
+ hpmcounter21h = 3221,
+ hpmcounter22h = 3222,
+ hpmcounter23h = 3223,
+ hpmcounter24h = 3224,
+ hpmcounter25h = 3225,
+ hpmcounter26h = 3226,
+ hpmcounter27h = 3227,
+ hpmcounter28h = 3228,
+ hpmcounter29h = 3229,
+ hpmcounter30h = 3230,
+ hpmcounter31h = 3231,
+ scountovf = 3488,
+ stopi = 3504,
+ hgeip = 3602,
+ vstopi = 3760,
+ mvendorid = 3857,
+ marchid = 3858,
+ mimpid = 3859,
+ mhartid = 3860,
+ mconfigptr = 3861,
+ mtopi = 4016,
+ NUM_TARGET_SYSREGS = 513,
+};
}
}
}
diff --git a/deps/LIEF/include/LIEF/asm/x86.hpp b/deps/LIEF/include/LIEF/asm/x86.hpp
index 66ee6ad862f..f08ac5b17eb 100644
--- a/deps/LIEF/include/LIEF/asm/x86.hpp
+++ b/deps/LIEF/include/LIEF/asm/x86.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/x86/Instruction.hpp b/deps/LIEF/include/LIEF/asm/x86/Instruction.hpp
index ee61b9d4369..7eb8532fe73 100644
--- a/deps/LIEF/include/LIEF/asm/x86/Instruction.hpp
+++ b/deps/LIEF/include/LIEF/asm/x86/Instruction.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
#ifndef LIEF_ASM_X86_INST_H
#define LIEF_ASM_X86_INST_H
#include "LIEF/visibility.h"
+#include "LIEF/compiler_attributes.hpp"
#include "LIEF/asm/Instruction.hpp"
#include "LIEF/asm/x86/opcodes.hpp"
@@ -37,7 +38,7 @@ class LIEF_API Instruction : public assembly::Instruction {
OPCODE opcode() const;
/// Iterator over the operands of the current instruction
- operands_it operands() const;
+ operands_it operands() const LIEF_LIFETIMEBOUND;
/// True if `inst` is an **effective** instance of x86::Instruction
static bool classof(const assembly::Instruction* inst);
diff --git a/deps/LIEF/include/LIEF/asm/x86/Operand.hpp b/deps/LIEF/include/LIEF/asm/x86/Operand.hpp
index e7d73c16f2f..d07015e472a 100644
--- a/deps/LIEF/include/LIEF/asm/x86/Operand.hpp
+++ b/deps/LIEF/include/LIEF/asm/x86/Operand.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
#define LIEF_ASM_X86_OPERAND_H
#include "LIEF/visibility.h"
#include "LIEF/iterators.hpp"
+#include "LIEF/compiler_attributes.hpp"
#include <memory>
#include <string>
@@ -35,14 +36,13 @@ class OperandIt;
/// This class represents an operand for an x86/x86-64 instruction
class LIEF_API Operand {
public:
-
- /// **Forward** iterator that outputs x86 Operand as `std::unique_ptr`
- class Iterator final :
- public iterator_facade_base<Iterator, std::forward_iterator_tag, std::unique_ptr<Operand>,
- std::ptrdiff_t, Operand*, std::unique_ptr<Operand>>
- {
+ /// **Forward** iterator that lazily disassembles x86 Operand.
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::forward_iterator_tag, Operand,
+ std::ptrdiff_t, const Operand*, const Operand&> {
public:
using implementation = details::OperandIt;
+ using iterator_facade_base::operator++;
LIEF_API Iterator();
@@ -55,7 +55,8 @@ class LIEF_API Operand {
LIEF_API ~Iterator();
- LIEF_API Iterator& operator++();
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator++() LIEF_LIFETIMEBOUND;
friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
@@ -63,10 +64,20 @@ class LIEF_API Operand {
return !(LHS == RHS);
}
- LIEF_API std::unique_ptr<Operand> operator*() const;
+ LIEF_API const Operand& operator*() const LIEF_LIFETIMEBOUND;
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const Operand* operator->() const LIEF_LIFETIMEBOUND;
+
+ /// Transfer ownership of the operand at the current position to the
+ /// caller. Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<Operand> yield();
private:
+ void load() const;
+
std::unique_ptr<details::OperandIt> impl_;
+ mutable std::unique_ptr<Operand> cached_;
};
/// Pretty representation of the operand
@@ -81,7 +92,7 @@ class LIEF_API Operand {
/// }
/// ```
template<class T>
- const T* as() const {
+ const T* as() const LIEF_LIFETIMEBOUND {
static_assert(std::is_base_of<Operand, T>::value,
"Require Operand inheritance");
if (T::classof(this)) {
@@ -92,18 +103,18 @@ class LIEF_API Operand {
virtual ~Operand();
- /// \private
+ /// @private
static LIEF_LOCAL std::unique_ptr<Operand>
- create(std::unique_ptr<details::Operand> impl);
+ create(std::unique_ptr<details::Operand> impl);
- /// \private
- LIEF_LOCAL const details::Operand& impl() const {
+ /// @private
+ LIEF_LOCAL const details::Operand& impl() const LIEF_LIFETIMEBOUND {
assert(impl_ != nullptr);
return *impl_;
}
- /// \private
- LIEF_LOCAL details::Operand& impl() {
+ /// @private
+ LIEF_LOCAL details::Operand& impl() LIEF_LIFETIMEBOUND {
assert(impl_ != nullptr);
return *impl_;
}
diff --git a/deps/LIEF/include/LIEF/asm/x86/opcodes.hpp b/deps/LIEF/include/LIEF/asm/x86/opcodes.hpp
index 361ec8c0cf4..d801c684d63 100644
--- a/deps/LIEF/include/LIEF/asm/x86/opcodes.hpp
+++ b/deps/LIEF/include/LIEF/asm/x86/opcodes.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
#ifndef LIEF_ASM_X86_OPCODE_H
#define LIEF_ASM_X86_OPCODE_H
-/* Generated from LLVM: 21.1.0 */
+/* Generated from LLVM: 22.1.8 */
namespace LIEF {
namespace assembly {
@@ -42,22321 +42,22281 @@ enum class OPCODE {
DBG_LABEL = 18,
REG_SEQUENCE = 19,
COPY = 20,
- BUNDLE = 21,
- LIFETIME_START = 22,
- LIFETIME_END = 23,
- PSEUDO_PROBE = 24,
- ARITH_FENCE = 25,
- STACKMAP = 26,
- FENTRY_CALL = 27,
- PATCHPOINT = 28,
- LOAD_STACK_GUARD = 29,
- PREALLOCATED_SETUP = 30,
- PREALLOCATED_ARG = 31,
- STATEPOINT = 32,
- LOCAL_ESCAPE = 33,
- FAULTING_OP = 34,
- PATCHABLE_OP = 35,
- PATCHABLE_FUNCTION_ENTER = 36,
- PATCHABLE_RET = 37,
- PATCHABLE_FUNCTION_EXIT = 38,
- PATCHABLE_TAIL_CALL = 39,
- PATCHABLE_EVENT_CALL = 40,
- PATCHABLE_TYPED_EVENT_CALL = 41,
- ICALL_BRANCH_FUNNEL = 42,
- FAKE_USE = 43,
- MEMBARRIER = 44,
- JUMP_TABLE_DEBUG_INFO = 45,
- CONVERGENCECTRL_ENTRY = 46,
- CONVERGENCECTRL_ANCHOR = 47,
- CONVERGENCECTRL_LOOP = 48,
- CONVERGENCECTRL_GLUE = 49,
- G_ASSERT_SEXT = 50,
- G_ASSERT_ZEXT = 51,
- G_ASSERT_ALIGN = 52,
- G_ADD = 53,
- G_SUB = 54,
- G_MUL = 55,
- G_SDIV = 56,
- G_UDIV = 57,
- G_SREM = 58,
- G_UREM = 59,
- G_SDIVREM = 60,
- G_UDIVREM = 61,
- G_AND = 62,
- G_OR = 63,
- G_XOR = 64,
- G_ABDS = 65,
- G_ABDU = 66,
- G_IMPLICIT_DEF = 67,
- G_PHI = 68,
- G_FRAME_INDEX = 69,
- G_GLOBAL_VALUE = 70,
- G_PTRAUTH_GLOBAL_VALUE = 71,
- G_CONSTANT_POOL = 72,
- G_EXTRACT = 73,
- G_UNMERGE_VALUES = 74,
- G_INSERT = 75,
- G_MERGE_VALUES = 76,
- G_BUILD_VECTOR = 77,
- G_BUILD_VECTOR_TRUNC = 78,
- G_CONCAT_VECTORS = 79,
- G_PTRTOINT = 80,
- G_INTTOPTR = 81,
- G_BITCAST = 82,
- G_FREEZE = 83,
- G_CONSTANT_FOLD_BARRIER = 84,
- G_INTRINSIC_FPTRUNC_ROUND = 85,
- G_INTRINSIC_TRUNC = 86,
- G_INTRINSIC_ROUND = 87,
- G_INTRINSIC_LRINT = 88,
- G_INTRINSIC_LLRINT = 89,
- G_INTRINSIC_ROUNDEVEN = 90,
- G_READCYCLECOUNTER = 91,
- G_READSTEADYCOUNTER = 92,
- G_LOAD = 93,
- G_SEXTLOAD = 94,
- G_ZEXTLOAD = 95,
- G_INDEXED_LOAD = 96,
- G_INDEXED_SEXTLOAD = 97,
- G_INDEXED_ZEXTLOAD = 98,
- G_STORE = 99,
- G_INDEXED_STORE = 100,
- G_ATOMIC_CMPXCHG_WITH_SUCCESS = 101,
- G_ATOMIC_CMPXCHG = 102,
- G_ATOMICRMW_XCHG = 103,
- G_ATOMICRMW_ADD = 104,
- G_ATOMICRMW_SUB = 105,
- G_ATOMICRMW_AND = 106,
- G_ATOMICRMW_NAND = 107,
- G_ATOMICRMW_OR = 108,
- G_ATOMICRMW_XOR = 109,
- G_ATOMICRMW_MAX = 110,
- G_ATOMICRMW_MIN = 111,
- G_ATOMICRMW_UMAX = 112,
- G_ATOMICRMW_UMIN = 113,
- G_ATOMICRMW_FADD = 114,
- G_ATOMICRMW_FSUB = 115,
- G_ATOMICRMW_FMAX = 116,
- G_ATOMICRMW_FMIN = 117,
- G_ATOMICRMW_FMAXIMUM = 118,
- G_ATOMICRMW_FMINIMUM = 119,
- G_ATOMICRMW_UINC_WRAP = 120,
- G_ATOMICRMW_UDEC_WRAP = 121,
- G_ATOMICRMW_USUB_COND = 122,
- G_ATOMICRMW_USUB_SAT = 123,
- G_FENCE = 124,
- G_PREFETCH = 125,
- G_BRCOND = 126,
- G_BRINDIRECT = 127,
- G_INVOKE_REGION_START = 128,
- G_INTRINSIC = 129,
- G_INTRINSIC_W_SIDE_EFFECTS = 130,
- G_INTRINSIC_CONVERGENT = 131,
- G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 132,
- G_ANYEXT = 133,
- G_TRUNC = 134,
- G_TRUNC_SSAT_S = 135,
- G_TRUNC_SSAT_U = 136,
- G_TRUNC_USAT_U = 137,
- G_CONSTANT = 138,
- G_FCONSTANT = 139,
- G_VASTART = 140,
- G_VAARG = 141,
- G_SEXT = 142,
- G_SEXT_INREG = 143,
- G_ZEXT = 144,
- G_SHL = 145,
- G_LSHR = 146,
- G_ASHR = 147,
- G_FSHL = 148,
- G_FSHR = 149,
- G_ROTR = 150,
- G_ROTL = 151,
- G_ICMP = 152,
- G_FCMP = 153,
- G_SCMP = 154,
- G_UCMP = 155,
- G_SELECT = 156,
- G_UADDO = 157,
- G_UADDE = 158,
- G_USUBO = 159,
- G_USUBE = 160,
- G_SADDO = 161,
- G_SADDE = 162,
- G_SSUBO = 163,
- G_SSUBE = 164,
- G_UMULO = 165,
- G_SMULO = 166,
- G_UMULH = 167,
- G_SMULH = 168,
- G_UADDSAT = 169,
- G_SADDSAT = 170,
- G_USUBSAT = 171,
- G_SSUBSAT = 172,
- G_USHLSAT = 173,
- G_SSHLSAT = 174,
- G_SMULFIX = 175,
- G_UMULFIX = 176,
- G_SMULFIXSAT = 177,
- G_UMULFIXSAT = 178,
- G_SDIVFIX = 179,
- G_UDIVFIX = 180,
- G_SDIVFIXSAT = 181,
- G_UDIVFIXSAT = 182,
- G_FADD = 183,
- G_FSUB = 184,
- G_FMUL = 185,
- G_FMA = 186,
- G_FMAD = 187,
- G_FDIV = 188,
- G_FREM = 189,
- G_FPOW = 190,
- G_FPOWI = 191,
- G_FEXP = 192,
- G_FEXP2 = 193,
- G_FEXP10 = 194,
- G_FLOG = 195,
- G_FLOG2 = 196,
- G_FLOG10 = 197,
- G_FLDEXP = 198,
- G_FFREXP = 199,
- G_FNEG = 200,
- G_FPEXT = 201,
- G_FPTRUNC = 202,
- G_FPTOSI = 203,
- G_FPTOUI = 204,
- G_SITOFP = 205,
- G_UITOFP = 206,
- G_FPTOSI_SAT = 207,
- G_FPTOUI_SAT = 208,
- G_FABS = 209,
- G_FCOPYSIGN = 210,
- G_IS_FPCLASS = 211,
- G_FCANONICALIZE = 212,
- G_FMINNUM = 213,
- G_FMAXNUM = 214,
- G_FMINNUM_IEEE = 215,
- G_FMAXNUM_IEEE = 216,
- G_FMINIMUM = 217,
- G_FMAXIMUM = 218,
- G_FMINIMUMNUM = 219,
- G_FMAXIMUMNUM = 220,
- G_GET_FPENV = 221,
- G_SET_FPENV = 222,
- G_RESET_FPENV = 223,
- G_GET_FPMODE = 224,
- G_SET_FPMODE = 225,
- G_RESET_FPMODE = 226,
- G_GET_ROUNDING = 227,
- G_PTR_ADD = 228,
- G_PTRMASK = 229,
- G_SMIN = 230,
- G_SMAX = 231,
- G_UMIN = 232,
- G_UMAX = 233,
- G_ABS = 234,
- G_LROUND = 235,
- G_LLROUND = 236,
- G_BR = 237,
- G_BRJT = 238,
- G_VSCALE = 239,
- G_INSERT_SUBVECTOR = 240,
- G_EXTRACT_SUBVECTOR = 241,
- G_INSERT_VECTOR_ELT = 242,
- G_EXTRACT_VECTOR_ELT = 243,
- G_SHUFFLE_VECTOR = 244,
- G_SPLAT_VECTOR = 245,
- G_STEP_VECTOR = 246,
- G_VECTOR_COMPRESS = 247,
- G_CTTZ = 248,
- G_CTTZ_ZERO_UNDEF = 249,
- G_CTLZ = 250,
- G_CTLZ_ZERO_UNDEF = 251,
- G_CTPOP = 252,
- G_BSWAP = 253,
- G_BITREVERSE = 254,
- G_FCEIL = 255,
- G_FCOS = 256,
- G_FSIN = 257,
- G_FSINCOS = 258,
- G_FTAN = 259,
- G_FACOS = 260,
- G_FASIN = 261,
- G_FATAN = 262,
- G_FATAN2 = 263,
- G_FCOSH = 264,
- G_FSINH = 265,
- G_FTANH = 266,
- G_FSQRT = 267,
- G_FFLOOR = 268,
- G_FRINT = 269,
- G_FNEARBYINT = 270,
- G_ADDRSPACE_CAST = 271,
- G_BLOCK_ADDR = 272,
- G_JUMP_TABLE = 273,
- G_DYN_STACKALLOC = 274,
- G_STACKSAVE = 275,
- G_STACKRESTORE = 276,
- G_STRICT_FADD = 277,
- G_STRICT_FSUB = 278,
- G_STRICT_FMUL = 279,
- G_STRICT_FDIV = 280,
- G_STRICT_FREM = 281,
- G_STRICT_FMA = 282,
- G_STRICT_FSQRT = 283,
- G_STRICT_FLDEXP = 284,
- G_READ_REGISTER = 285,
- G_WRITE_REGISTER = 286,
- G_MEMCPY = 287,
- G_MEMCPY_INLINE = 288,
- G_MEMMOVE = 289,
- G_MEMSET = 290,
- G_BZERO = 291,
- G_TRAP = 292,
- G_DEBUGTRAP = 293,
- G_UBSANTRAP = 294,
- G_VECREDUCE_SEQ_FADD = 295,
- G_VECREDUCE_SEQ_FMUL = 296,
- G_VECREDUCE_FADD = 297,
- G_VECREDUCE_FMUL = 298,
- G_VECREDUCE_FMAX = 299,
- G_VECREDUCE_FMIN = 300,
- G_VECREDUCE_FMAXIMUM = 301,
- G_VECREDUCE_FMINIMUM = 302,
- G_VECREDUCE_ADD = 303,
- G_VECREDUCE_MUL = 304,
- G_VECREDUCE_AND = 305,
- G_VECREDUCE_OR = 306,
- G_VECREDUCE_XOR = 307,
- G_VECREDUCE_SMAX = 308,
- G_VECREDUCE_SMIN = 309,
- G_VECREDUCE_UMAX = 310,
- G_VECREDUCE_UMIN = 311,
- G_SBFX = 312,
- G_UBFX = 313,
- ADD16ri_DB = 314,
- ADD16rr_DB = 315,
- ADD32ri_DB = 316,
- ADD32rr_DB = 317,
- ADD64ri32_DB = 318,
- ADD64rr_DB = 319,
- ADD8ri_DB = 320,
- ADD8rr_DB = 321,
- AVX1_SETALLONES = 322,
- AVX2_SETALLONES = 323,
- AVX512_128_SET0 = 324,
- AVX512_256_SET0 = 325,
- AVX512_512_SET0 = 326,
- AVX512_512_SETALLONES = 327,
- AVX512_512_SEXT_MASK_32 = 328,
- AVX512_512_SEXT_MASK_64 = 329,
- AVX512_FsFLD0F128 = 330,
- AVX512_FsFLD0SD = 331,
- AVX512_FsFLD0SH = 332,
- AVX512_FsFLD0SS = 333,
- AVX_SET0 = 334,
- CALL64m_RVMARKER = 335,
- CALL64pcrel32_RVMARKER = 336,
- CALL64r_ImpCall = 337,
- CALL64r_RVMARKER = 338,
- FsFLD0F128 = 339,
- FsFLD0SD = 340,
- FsFLD0SH = 341,
- FsFLD0SS = 342,
- G_FILD = 343,
- G_FIST = 344,
- G_FNSTCW16 = 345,
- INDIRECT_THUNK_CALL32 = 346,
- INDIRECT_THUNK_CALL64 = 347,
- INDIRECT_THUNK_TCRETURN32 = 348,
- INDIRECT_THUNK_TCRETURN64 = 349,
- KSET0D = 350,
- KSET0Q = 351,
- KSET0W = 352,
- KSET1D = 353,
- KSET1Q = 354,
- KSET1W = 355,
- LCMPXCHG16B_NO_RBX = 356,
- LCMPXCHG16B_SAVE_RBX = 357,
- MMX_SET0 = 358,
- MORESTACK_RET = 359,
- MORESTACK_RET_RESTORE_R10 = 360,
- MOV32ImmSExti8 = 361,
- MOV32r0 = 362,
- MOV32r1 = 363,
- MOV32r_1 = 364,
- MOV32ri64 = 365,
- MOV64ImmSExti8 = 366,
- MWAITX = 367,
- MWAITX_SAVE_RBX = 368,
- PLDTILECFGV = 369,
- PLEA32r = 370,
- PLEA64r = 371,
- PT2RPNTLVWZ0RST1V = 372,
- PT2RPNTLVWZ0RSV = 373,
- PT2RPNTLVWZ0T1V = 374,
- PT2RPNTLVWZ0V = 375,
- PT2RPNTLVWZ1RST1V = 376,
- PT2RPNTLVWZ1RSV = 377,
- PT2RPNTLVWZ1T1V = 378,
- PT2RPNTLVWZ1V = 379,
- PTDPBF16PSV = 380,
- PTDPBSSDV = 381,
- PTDPBSUDV = 382,
- PTDPBUSDV = 383,
- PTDPBUUDV = 384,
- PTDPFP16PSV = 385,
- PTILELOADDRST1V = 386,
- PTILELOADDRSV = 387,
- PTILELOADDT1V = 388,
- PTILELOADDV = 389,
- PTILEPAIRLOAD = 390,
- PTILEPAIRSTORE = 391,
- PTILESTOREDV = 392,
- PTILEZEROV = 393,
- RDFLAGS32 = 394,
- RDFLAGS64 = 395,
- SEH_BeginEpilogue = 396,
- SEH_EndEpilogue = 397,
- SEH_EndPrologue = 398,
- SEH_PushFrame = 399,
- SEH_PushReg = 400,
- SEH_SaveReg = 401,
- SEH_SaveXMM = 402,
- SEH_SetFrame = 403,
- SEH_StackAlign = 404,
- SEH_StackAlloc = 405,
- SEH_UnwindV2Start = 406,
- SEH_UnwindVersion = 407,
- SETB_C32r = 408,
- SETB_C64r = 409,
- SHLDROT32ri = 410,
- SHLDROT64ri = 411,
- SHRDROT32ri = 412,
- SHRDROT64ri = 413,
- VMOVAPSZ128mr_NOVLX = 414,
- VMOVAPSZ128rm_NOVLX = 415,
- VMOVAPSZ256mr_NOVLX = 416,
- VMOVAPSZ256rm_NOVLX = 417,
- VMOVUPSZ128mr_NOVLX = 418,
- VMOVUPSZ128rm_NOVLX = 419,
- VMOVUPSZ256mr_NOVLX = 420,
- VMOVUPSZ256rm_NOVLX = 421,
- V_SET0 = 422,
- V_SETALLONES = 423,
- WRFLAGS32 = 424,
- WRFLAGS64 = 425,
- XABORT_DEF = 426,
- XOR32_FP = 427,
- XOR64_FP = 428,
- AAA = 429,
- AAD8i8 = 430,
- AADD32mr = 431,
- AADD32mr_EVEX = 432,
- AADD64mr = 433,
- AADD64mr_EVEX = 434,
- AAM8i8 = 435,
- AAND32mr = 436,
- AAND32mr_EVEX = 437,
- AAND64mr = 438,
- AAND64mr_EVEX = 439,
- AAS = 440,
- ABS_F = 441,
- ABS_Fp32 = 442,
- ABS_Fp64 = 443,
- ABS_Fp80 = 444,
- ADC16i16 = 445,
- ADC16mi = 446,
- ADC16mi8 = 447,
- ADC16mi8_EVEX = 448,
- ADC16mi8_ND = 449,
- ADC16mi_EVEX = 450,
- ADC16mi_ND = 451,
- ADC16mr = 452,
- ADC16mr_EVEX = 453,
- ADC16mr_ND = 454,
- ADC16ri = 455,
- ADC16ri8 = 456,
- ADC16ri8_EVEX = 457,
- ADC16ri8_ND = 458,
- ADC16ri_EVEX = 459,
- ADC16ri_ND = 460,
- ADC16rm = 461,
- ADC16rm_EVEX = 462,
- ADC16rm_ND = 463,
- ADC16rr = 464,
- ADC16rr_EVEX = 465,
- ADC16rr_EVEX_REV = 466,
- ADC16rr_ND = 467,
- ADC16rr_ND_REV = 468,
- ADC16rr_REV = 469,
- ADC32i32 = 470,
- ADC32mi = 471,
- ADC32mi8 = 472,
- ADC32mi8_EVEX = 473,
- ADC32mi8_ND = 474,
- ADC32mi_EVEX = 475,
- ADC32mi_ND = 476,
- ADC32mr = 477,
- ADC32mr_EVEX = 478,
- ADC32mr_ND = 479,
- ADC32ri = 480,
- ADC32ri8 = 481,
- ADC32ri8_EVEX = 482,
- ADC32ri8_ND = 483,
- ADC32ri_EVEX = 484,
- ADC32ri_ND = 485,
- ADC32rm = 486,
- ADC32rm_EVEX = 487,
- ADC32rm_ND = 488,
- ADC32rr = 489,
- ADC32rr_EVEX = 490,
- ADC32rr_EVEX_REV = 491,
- ADC32rr_ND = 492,
- ADC32rr_ND_REV = 493,
- ADC32rr_REV = 494,
- ADC64i32 = 495,
- ADC64mi32 = 496,
- ADC64mi32_EVEX = 497,
- ADC64mi32_ND = 498,
- ADC64mi8 = 499,
- ADC64mi8_EVEX = 500,
- ADC64mi8_ND = 501,
- ADC64mr = 502,
- ADC64mr_EVEX = 503,
- ADC64mr_ND = 504,
- ADC64ri32 = 505,
- ADC64ri32_EVEX = 506,
- ADC64ri32_ND = 507,
- ADC64ri8 = 508,
- ADC64ri8_EVEX = 509,
- ADC64ri8_ND = 510,
- ADC64rm = 511,
- ADC64rm_EVEX = 512,
- ADC64rm_ND = 513,
- ADC64rr = 514,
- ADC64rr_EVEX = 515,
- ADC64rr_EVEX_REV = 516,
- ADC64rr_ND = 517,
- ADC64rr_ND_REV = 518,
- ADC64rr_REV = 519,
- ADC8i8 = 520,
- ADC8mi = 521,
- ADC8mi8 = 522,
- ADC8mi_EVEX = 523,
- ADC8mi_ND = 524,
- ADC8mr = 525,
- ADC8mr_EVEX = 526,
- ADC8mr_ND = 527,
- ADC8ri = 528,
- ADC8ri8 = 529,
- ADC8ri_EVEX = 530,
- ADC8ri_ND = 531,
- ADC8rm = 532,
- ADC8rm_EVEX = 533,
- ADC8rm_ND = 534,
- ADC8rr = 535,
- ADC8rr_EVEX = 536,
- ADC8rr_EVEX_REV = 537,
- ADC8rr_ND = 538,
- ADC8rr_ND_REV = 539,
- ADC8rr_REV = 540,
- ADCX32rm = 541,
- ADCX32rm_EVEX = 542,
- ADCX32rm_ND = 543,
- ADCX32rr = 544,
- ADCX32rr_EVEX = 545,
- ADCX32rr_ND = 546,
- ADCX64rm = 547,
- ADCX64rm_EVEX = 548,
- ADCX64rm_ND = 549,
- ADCX64rr = 550,
- ADCX64rr_EVEX = 551,
- ADCX64rr_ND = 552,
- ADD16i16 = 553,
- ADD16mi = 554,
- ADD16mi8 = 555,
- ADD16mi8_EVEX = 556,
- ADD16mi8_ND = 557,
- ADD16mi8_NF = 558,
- ADD16mi8_NF_ND = 559,
- ADD16mi_EVEX = 560,
- ADD16mi_ND = 561,
- ADD16mi_NF = 562,
- ADD16mi_NF_ND = 563,
- ADD16mr = 564,
- ADD16mr_EVEX = 565,
- ADD16mr_ND = 566,
- ADD16mr_NF = 567,
- ADD16mr_NF_ND = 568,
- ADD16ri = 569,
- ADD16ri8 = 570,
- ADD16ri8_EVEX = 571,
- ADD16ri8_ND = 572,
- ADD16ri8_NF = 573,
- ADD16ri8_NF_ND = 574,
- ADD16ri_EVEX = 575,
- ADD16ri_ND = 576,
- ADD16ri_NF = 577,
- ADD16ri_NF_ND = 578,
- ADD16rm = 579,
- ADD16rm_EVEX = 580,
- ADD16rm_ND = 581,
- ADD16rm_NF = 582,
- ADD16rm_NF_ND = 583,
- ADD16rr = 584,
- ADD16rr_EVEX = 585,
- ADD16rr_EVEX_REV = 586,
- ADD16rr_ND = 587,
- ADD16rr_ND_REV = 588,
- ADD16rr_NF = 589,
- ADD16rr_NF_ND = 590,
- ADD16rr_NF_ND_REV = 591,
- ADD16rr_NF_REV = 592,
- ADD16rr_REV = 593,
- ADD32i32 = 594,
- ADD32mi = 595,
- ADD32mi8 = 596,
- ADD32mi8_EVEX = 597,
- ADD32mi8_ND = 598,
- ADD32mi8_NF = 599,
- ADD32mi8_NF_ND = 600,
- ADD32mi_EVEX = 601,
- ADD32mi_ND = 602,
- ADD32mi_NF = 603,
- ADD32mi_NF_ND = 604,
- ADD32mr = 605,
- ADD32mr_EVEX = 606,
- ADD32mr_ND = 607,
- ADD32mr_NF = 608,
- ADD32mr_NF_ND = 609,
- ADD32ri = 610,
- ADD32ri8 = 611,
- ADD32ri8_EVEX = 612,
- ADD32ri8_ND = 613,
- ADD32ri8_NF = 614,
- ADD32ri8_NF_ND = 615,
- ADD32ri_EVEX = 616,
- ADD32ri_ND = 617,
- ADD32ri_NF = 618,
- ADD32ri_NF_ND = 619,
- ADD32rm = 620,
- ADD32rm_EVEX = 621,
- ADD32rm_ND = 622,
- ADD32rm_NF = 623,
- ADD32rm_NF_ND = 624,
- ADD32rr = 625,
- ADD32rr_EVEX = 626,
- ADD32rr_EVEX_REV = 627,
- ADD32rr_ND = 628,
- ADD32rr_ND_REV = 629,
- ADD32rr_NF = 630,
- ADD32rr_NF_ND = 631,
- ADD32rr_NF_ND_REV = 632,
- ADD32rr_NF_REV = 633,
- ADD32rr_REV = 634,
- ADD64i32 = 635,
- ADD64mi32 = 636,
- ADD64mi32_EVEX = 637,
- ADD64mi32_ND = 638,
- ADD64mi32_NF = 639,
- ADD64mi32_NF_ND = 640,
- ADD64mi8 = 641,
- ADD64mi8_EVEX = 642,
- ADD64mi8_ND = 643,
- ADD64mi8_NF = 644,
- ADD64mi8_NF_ND = 645,
- ADD64mr = 646,
- ADD64mr_EVEX = 647,
- ADD64mr_ND = 648,
- ADD64mr_NF = 649,
- ADD64mr_NF_ND = 650,
- ADD64ri32 = 651,
- ADD64ri32_EVEX = 652,
- ADD64ri32_ND = 653,
- ADD64ri32_NF = 654,
- ADD64ri32_NF_ND = 655,
- ADD64ri8 = 656,
- ADD64ri8_EVEX = 657,
- ADD64ri8_ND = 658,
- ADD64ri8_NF = 659,
- ADD64ri8_NF_ND = 660,
- ADD64rm = 661,
- ADD64rm_EVEX = 662,
- ADD64rm_ND = 663,
- ADD64rm_NF = 664,
- ADD64rm_NF_ND = 665,
- ADD64rr = 666,
- ADD64rr_EVEX = 667,
- ADD64rr_EVEX_REV = 668,
- ADD64rr_ND = 669,
- ADD64rr_ND_REV = 670,
- ADD64rr_NF = 671,
- ADD64rr_NF_ND = 672,
- ADD64rr_NF_ND_REV = 673,
- ADD64rr_NF_REV = 674,
- ADD64rr_REV = 675,
- ADD8i8 = 676,
- ADD8mi = 677,
- ADD8mi8 = 678,
- ADD8mi_EVEX = 679,
- ADD8mi_ND = 680,
- ADD8mi_NF = 681,
- ADD8mi_NF_ND = 682,
- ADD8mr = 683,
- ADD8mr_EVEX = 684,
- ADD8mr_ND = 685,
- ADD8mr_NF = 686,
- ADD8mr_NF_ND = 687,
- ADD8ri = 688,
- ADD8ri8 = 689,
- ADD8ri_EVEX = 690,
- ADD8ri_ND = 691,
- ADD8ri_NF = 692,
- ADD8ri_NF_ND = 693,
- ADD8rm = 694,
- ADD8rm_EVEX = 695,
- ADD8rm_ND = 696,
- ADD8rm_NF = 697,
- ADD8rm_NF_ND = 698,
- ADD8rr = 699,
- ADD8rr_EVEX = 700,
- ADD8rr_EVEX_REV = 701,
- ADD8rr_ND = 702,
- ADD8rr_ND_REV = 703,
- ADD8rr_NF = 704,
- ADD8rr_NF_ND = 705,
- ADD8rr_NF_ND_REV = 706,
- ADD8rr_NF_REV = 707,
- ADD8rr_REV = 708,
- ADDPDrm = 709,
- ADDPDrr = 710,
- ADDPSrm = 711,
- ADDPSrr = 712,
- ADDR16_PREFIX = 713,
- ADDR32_PREFIX = 714,
- ADDSDrm = 715,
- ADDSDrm_Int = 716,
- ADDSDrr = 717,
- ADDSDrr_Int = 718,
- ADDSSrm = 719,
- ADDSSrm_Int = 720,
- ADDSSrr = 721,
- ADDSSrr_Int = 722,
- ADDSUBPDrm = 723,
- ADDSUBPDrr = 724,
- ADDSUBPSrm = 725,
- ADDSUBPSrr = 726,
- ADD_F32m = 727,
- ADD_F64m = 728,
- ADD_FI16m = 729,
- ADD_FI32m = 730,
- ADD_FPrST0 = 731,
- ADD_FST0r = 732,
- ADD_Fp32 = 733,
- ADD_Fp32m = 734,
- ADD_Fp64 = 735,
- ADD_Fp64m = 736,
- ADD_Fp64m32 = 737,
- ADD_Fp80 = 738,
- ADD_Fp80m32 = 739,
- ADD_Fp80m64 = 740,
- ADD_FpI16m32 = 741,
- ADD_FpI16m64 = 742,
- ADD_FpI16m80 = 743,
- ADD_FpI32m32 = 744,
- ADD_FpI32m64 = 745,
- ADD_FpI32m80 = 746,
- ADD_FrST0 = 747,
- ADJCALLSTACKDOWN32 = 748,
- ADJCALLSTACKDOWN64 = 749,
- ADJCALLSTACKUP32 = 750,
- ADJCALLSTACKUP64 = 751,
- ADOX32rm = 752,
- ADOX32rm_EVEX = 753,
- ADOX32rm_ND = 754,
- ADOX32rr = 755,
- ADOX32rr_EVEX = 756,
- ADOX32rr_ND = 757,
- ADOX64rm = 758,
- ADOX64rm_EVEX = 759,
- ADOX64rm_ND = 760,
- ADOX64rr = 761,
- ADOX64rr_EVEX = 762,
- ADOX64rr_ND = 763,
- AESDEC128KL = 764,
- AESDEC256KL = 765,
- AESDECLASTrm = 766,
- AESDECLASTrr = 767,
- AESDECWIDE128KL = 768,
- AESDECWIDE256KL = 769,
- AESDECrm = 770,
- AESDECrr = 771,
- AESENC128KL = 772,
- AESENC256KL = 773,
- AESENCLASTrm = 774,
- AESENCLASTrr = 775,
- AESENCWIDE128KL = 776,
- AESENCWIDE256KL = 777,
- AESENCrm = 778,
- AESENCrr = 779,
- AESIMCrm = 780,
- AESIMCrr = 781,
- AESKEYGENASSIST128rm = 782,
- AESKEYGENASSIST128rr = 783,
- AND16i16 = 784,
- AND16mi = 785,
- AND16mi8 = 786,
- AND16mi8_EVEX = 787,
- AND16mi8_ND = 788,
- AND16mi8_NF = 789,
- AND16mi8_NF_ND = 790,
- AND16mi_EVEX = 791,
- AND16mi_ND = 792,
- AND16mi_NF = 793,
- AND16mi_NF_ND = 794,
- AND16mr = 795,
- AND16mr_EVEX = 796,
- AND16mr_ND = 797,
- AND16mr_NF = 798,
- AND16mr_NF_ND = 799,
- AND16ri = 800,
- AND16ri8 = 801,
- AND16ri8_EVEX = 802,
- AND16ri8_ND = 803,
- AND16ri8_NF = 804,
- AND16ri8_NF_ND = 805,
- AND16ri_EVEX = 806,
- AND16ri_ND = 807,
- AND16ri_NF = 808,
- AND16ri_NF_ND = 809,
- AND16rm = 810,
- AND16rm_EVEX = 811,
- AND16rm_ND = 812,
- AND16rm_NF = 813,
- AND16rm_NF_ND = 814,
- AND16rr = 815,
- AND16rr_EVEX = 816,
- AND16rr_EVEX_REV = 817,
- AND16rr_ND = 818,
- AND16rr_ND_REV = 819,
- AND16rr_NF = 820,
- AND16rr_NF_ND = 821,
- AND16rr_NF_ND_REV = 822,
- AND16rr_NF_REV = 823,
- AND16rr_REV = 824,
- AND32i32 = 825,
- AND32mi = 826,
- AND32mi8 = 827,
- AND32mi8_EVEX = 828,
- AND32mi8_ND = 829,
- AND32mi8_NF = 830,
- AND32mi8_NF_ND = 831,
- AND32mi_EVEX = 832,
- AND32mi_ND = 833,
- AND32mi_NF = 834,
- AND32mi_NF_ND = 835,
- AND32mr = 836,
- AND32mr_EVEX = 837,
- AND32mr_ND = 838,
- AND32mr_NF = 839,
- AND32mr_NF_ND = 840,
- AND32ri = 841,
- AND32ri8 = 842,
- AND32ri8_EVEX = 843,
- AND32ri8_ND = 844,
- AND32ri8_NF = 845,
- AND32ri8_NF_ND = 846,
- AND32ri_EVEX = 847,
- AND32ri_ND = 848,
- AND32ri_NF = 849,
- AND32ri_NF_ND = 850,
- AND32rm = 851,
- AND32rm_EVEX = 852,
- AND32rm_ND = 853,
- AND32rm_NF = 854,
- AND32rm_NF_ND = 855,
- AND32rr = 856,
- AND32rr_EVEX = 857,
- AND32rr_EVEX_REV = 858,
- AND32rr_ND = 859,
- AND32rr_ND_REV = 860,
- AND32rr_NF = 861,
- AND32rr_NF_ND = 862,
- AND32rr_NF_ND_REV = 863,
- AND32rr_NF_REV = 864,
- AND32rr_REV = 865,
- AND64i32 = 866,
- AND64mi32 = 867,
- AND64mi32_EVEX = 868,
- AND64mi32_ND = 869,
- AND64mi32_NF = 870,
- AND64mi32_NF_ND = 871,
- AND64mi8 = 872,
- AND64mi8_EVEX = 873,
- AND64mi8_ND = 874,
- AND64mi8_NF = 875,
- AND64mi8_NF_ND = 876,
- AND64mr = 877,
- AND64mr_EVEX = 878,
- AND64mr_ND = 879,
- AND64mr_NF = 880,
- AND64mr_NF_ND = 881,
- AND64ri32 = 882,
- AND64ri32_EVEX = 883,
- AND64ri32_ND = 884,
- AND64ri32_NF = 885,
- AND64ri32_NF_ND = 886,
- AND64ri8 = 887,
- AND64ri8_EVEX = 888,
- AND64ri8_ND = 889,
- AND64ri8_NF = 890,
- AND64ri8_NF_ND = 891,
- AND64rm = 892,
- AND64rm_EVEX = 893,
- AND64rm_ND = 894,
- AND64rm_NF = 895,
- AND64rm_NF_ND = 896,
- AND64rr = 897,
- AND64rr_EVEX = 898,
- AND64rr_EVEX_REV = 899,
- AND64rr_ND = 900,
- AND64rr_ND_REV = 901,
- AND64rr_NF = 902,
- AND64rr_NF_ND = 903,
- AND64rr_NF_ND_REV = 904,
- AND64rr_NF_REV = 905,
- AND64rr_REV = 906,
- AND8i8 = 907,
- AND8mi = 908,
- AND8mi8 = 909,
- AND8mi_EVEX = 910,
- AND8mi_ND = 911,
- AND8mi_NF = 912,
- AND8mi_NF_ND = 913,
- AND8mr = 914,
- AND8mr_EVEX = 915,
- AND8mr_ND = 916,
- AND8mr_NF = 917,
- AND8mr_NF_ND = 918,
- AND8ri = 919,
- AND8ri8 = 920,
- AND8ri_EVEX = 921,
- AND8ri_ND = 922,
- AND8ri_NF = 923,
- AND8ri_NF_ND = 924,
- AND8rm = 925,
- AND8rm_EVEX = 926,
- AND8rm_ND = 927,
- AND8rm_NF = 928,
- AND8rm_NF_ND = 929,
- AND8rr = 930,
- AND8rr_EVEX = 931,
- AND8rr_EVEX_REV = 932,
- AND8rr_ND = 933,
- AND8rr_ND_REV = 934,
- AND8rr_NF = 935,
- AND8rr_NF_ND = 936,
- AND8rr_NF_ND_REV = 937,
- AND8rr_NF_REV = 938,
- AND8rr_REV = 939,
- ANDN32rm = 940,
- ANDN32rm_EVEX = 941,
- ANDN32rm_NF = 942,
- ANDN32rr = 943,
- ANDN32rr_EVEX = 944,
- ANDN32rr_NF = 945,
- ANDN64rm = 946,
- ANDN64rm_EVEX = 947,
- ANDN64rm_NF = 948,
- ANDN64rr = 949,
- ANDN64rr_EVEX = 950,
- ANDN64rr_NF = 951,
- ANDNPDrm = 952,
- ANDNPDrr = 953,
- ANDNPSrm = 954,
- ANDNPSrr = 955,
- ANDPDrm = 956,
- ANDPDrr = 957,
- ANDPSrm = 958,
- ANDPSrr = 959,
- AOR32mr = 960,
- AOR32mr_EVEX = 961,
- AOR64mr = 962,
- AOR64mr_EVEX = 963,
- ARPL16mr = 964,
- ARPL16rr = 965,
- ASAN_CHECK_MEMACCESS = 966,
- AXOR32mr = 967,
- AXOR32mr_EVEX = 968,
- AXOR64mr = 969,
- AXOR64mr_EVEX = 970,
- BEXTR32rm = 971,
- BEXTR32rm_EVEX = 972,
- BEXTR32rm_NF = 973,
- BEXTR32rr = 974,
- BEXTR32rr_EVEX = 975,
- BEXTR32rr_NF = 976,
- BEXTR64rm = 977,
- BEXTR64rm_EVEX = 978,
- BEXTR64rm_NF = 979,
- BEXTR64rr = 980,
- BEXTR64rr_EVEX = 981,
- BEXTR64rr_NF = 982,
- BEXTRI32mi = 983,
- BEXTRI32ri = 984,
- BEXTRI64mi = 985,
- BEXTRI64ri = 986,
- BLCFILL32rm = 987,
- BLCFILL32rr = 988,
- BLCFILL64rm = 989,
- BLCFILL64rr = 990,
- BLCI32rm = 991,
- BLCI32rr = 992,
- BLCI64rm = 993,
- BLCI64rr = 994,
- BLCIC32rm = 995,
- BLCIC32rr = 996,
- BLCIC64rm = 997,
- BLCIC64rr = 998,
- BLCMSK32rm = 999,
- BLCMSK32rr = 1000,
- BLCMSK64rm = 1001,
- BLCMSK64rr = 1002,
- BLCS32rm = 1003,
- BLCS32rr = 1004,
- BLCS64rm = 1005,
- BLCS64rr = 1006,
- BLENDPDrmi = 1007,
- BLENDPDrri = 1008,
- BLENDPSrmi = 1009,
- BLENDPSrri = 1010,
- BLENDVPDrm0 = 1011,
- BLENDVPDrr0 = 1012,
- BLENDVPSrm0 = 1013,
- BLENDVPSrr0 = 1014,
- BLSFILL32rm = 1015,
- BLSFILL32rr = 1016,
- BLSFILL64rm = 1017,
- BLSFILL64rr = 1018,
- BLSI32rm = 1019,
- BLSI32rm_EVEX = 1020,
- BLSI32rm_NF = 1021,
- BLSI32rr = 1022,
- BLSI32rr_EVEX = 1023,
- BLSI32rr_NF = 1024,
- BLSI64rm = 1025,
- BLSI64rm_EVEX = 1026,
- BLSI64rm_NF = 1027,
- BLSI64rr = 1028,
- BLSI64rr_EVEX = 1029,
- BLSI64rr_NF = 1030,
- BLSIC32rm = 1031,
- BLSIC32rr = 1032,
- BLSIC64rm = 1033,
- BLSIC64rr = 1034,
- BLSMSK32rm = 1035,
- BLSMSK32rm_EVEX = 1036,
- BLSMSK32rm_NF = 1037,
- BLSMSK32rr = 1038,
- BLSMSK32rr_EVEX = 1039,
- BLSMSK32rr_NF = 1040,
- BLSMSK64rm = 1041,
- BLSMSK64rm_EVEX = 1042,
- BLSMSK64rm_NF = 1043,
- BLSMSK64rr = 1044,
- BLSMSK64rr_EVEX = 1045,
- BLSMSK64rr_NF = 1046,
- BLSR32rm = 1047,
- BLSR32rm_EVEX = 1048,
- BLSR32rm_NF = 1049,
- BLSR32rr = 1050,
- BLSR32rr_EVEX = 1051,
- BLSR32rr_NF = 1052,
- BLSR64rm = 1053,
- BLSR64rm_EVEX = 1054,
- BLSR64rm_NF = 1055,
- BLSR64rr = 1056,
- BLSR64rr_EVEX = 1057,
- BLSR64rr_NF = 1058,
- BOUNDS16rm = 1059,
- BOUNDS32rm = 1060,
- BSF16rm = 1061,
- BSF16rr = 1062,
- BSF32rm = 1063,
- BSF32rr = 1064,
- BSF64rm = 1065,
- BSF64rr = 1066,
- BSR16rm = 1067,
- BSR16rr = 1068,
- BSR32rm = 1069,
- BSR32rr = 1070,
- BSR64rm = 1071,
- BSR64rr = 1072,
- BSWAP16r_BAD = 1073,
- BSWAP32r = 1074,
- BSWAP64r = 1075,
- BT16mi8 = 1076,
- BT16mr = 1077,
- BT16ri8 = 1078,
- BT16rr = 1079,
- BT32mi8 = 1080,
- BT32mr = 1081,
- BT32ri8 = 1082,
- BT32rr = 1083,
- BT64mi8 = 1084,
- BT64mr = 1085,
- BT64ri8 = 1086,
- BT64rr = 1087,
- BTC16mi8 = 1088,
- BTC16mr = 1089,
- BTC16ri8 = 1090,
- BTC16rr = 1091,
- BTC32mi8 = 1092,
- BTC32mr = 1093,
- BTC32ri8 = 1094,
- BTC32rr = 1095,
- BTC64mi8 = 1096,
- BTC64mr = 1097,
- BTC64ri8 = 1098,
- BTC64rr = 1099,
- BTR16mi8 = 1100,
- BTR16mr = 1101,
- BTR16ri8 = 1102,
- BTR16rr = 1103,
- BTR32mi8 = 1104,
- BTR32mr = 1105,
- BTR32ri8 = 1106,
- BTR32rr = 1107,
- BTR64mi8 = 1108,
- BTR64mr = 1109,
- BTR64ri8 = 1110,
- BTR64rr = 1111,
- BTS16mi8 = 1112,
- BTS16mr = 1113,
- BTS16ri8 = 1114,
- BTS16rr = 1115,
- BTS32mi8 = 1116,
- BTS32mr = 1117,
- BTS32ri8 = 1118,
- BTS32rr = 1119,
- BTS64mi8 = 1120,
- BTS64mr = 1121,
- BTS64ri8 = 1122,
- BTS64rr = 1123,
- BZHI32rm = 1124,
- BZHI32rm_EVEX = 1125,
- BZHI32rm_NF = 1126,
- BZHI32rr = 1127,
- BZHI32rr_EVEX = 1128,
- BZHI32rr_NF = 1129,
- BZHI64rm = 1130,
- BZHI64rm_EVEX = 1131,
- BZHI64rm_NF = 1132,
- BZHI64rr = 1133,
- BZHI64rr_EVEX = 1134,
- BZHI64rr_NF = 1135,
- CALL16m = 1136,
- CALL16m_NT = 1137,
- CALL16r = 1138,
- CALL16r_NT = 1139,
- CALL32m = 1140,
- CALL32m_NT = 1141,
- CALL32r = 1142,
- CALL32r_NT = 1143,
- CALL64m = 1144,
- CALL64m_NT = 1145,
- CALL64pcrel32 = 1146,
- CALL64r = 1147,
- CALL64r_NT = 1148,
- CALLpcrel16 = 1149,
- CALLpcrel32 = 1150,
- CATCHRET = 1151,
- CBW = 1152,
- CCMP16mi = 1153,
- CCMP16mi8 = 1154,
- CCMP16mr = 1155,
- CCMP16ri = 1156,
- CCMP16ri8 = 1157,
- CCMP16rm = 1158,
- CCMP16rr = 1159,
- CCMP16rr_REV = 1160,
- CCMP32mi = 1161,
- CCMP32mi8 = 1162,
- CCMP32mr = 1163,
- CCMP32ri = 1164,
- CCMP32ri8 = 1165,
- CCMP32rm = 1166,
- CCMP32rr = 1167,
- CCMP32rr_REV = 1168,
- CCMP64mi32 = 1169,
- CCMP64mi8 = 1170,
- CCMP64mr = 1171,
- CCMP64ri32 = 1172,
- CCMP64ri8 = 1173,
- CCMP64rm = 1174,
- CCMP64rr = 1175,
- CCMP64rr_REV = 1176,
- CCMP8mi = 1177,
- CCMP8mr = 1178,
- CCMP8ri = 1179,
- CCMP8rm = 1180,
- CCMP8rr = 1181,
- CCMP8rr_REV = 1182,
- CDQ = 1183,
- CDQE = 1184,
- CFCMOV16mr = 1185,
- CFCMOV16rm = 1186,
- CFCMOV16rm_ND = 1187,
- CFCMOV16rr = 1188,
- CFCMOV16rr_ND = 1189,
- CFCMOV16rr_REV = 1190,
- CFCMOV32mr = 1191,
- CFCMOV32rm = 1192,
- CFCMOV32rm_ND = 1193,
- CFCMOV32rr = 1194,
- CFCMOV32rr_ND = 1195,
- CFCMOV32rr_REV = 1196,
- CFCMOV64mr = 1197,
- CFCMOV64rm = 1198,
- CFCMOV64rm_ND = 1199,
- CFCMOV64rr = 1200,
- CFCMOV64rr_ND = 1201,
- CFCMOV64rr_REV = 1202,
- CHS_F = 1203,
- CHS_Fp32 = 1204,
- CHS_Fp64 = 1205,
- CHS_Fp80 = 1206,
- CLAC = 1207,
- CLC = 1208,
- CLD = 1209,
- CLDEMOTE = 1210,
- CLEANUPRET = 1211,
- CLFLUSH = 1212,
- CLFLUSHOPT = 1213,
- CLGI = 1214,
- CLI = 1215,
- CLRSSBSY = 1216,
- CLTS = 1217,
- CLUI = 1218,
- CLWB = 1219,
- CLZERO32r = 1220,
- CLZERO64r = 1221,
- CMC = 1222,
- CMOV16rm = 1223,
- CMOV16rm_ND = 1224,
- CMOV16rr = 1225,
- CMOV16rr_ND = 1226,
- CMOV32rm = 1227,
- CMOV32rm_ND = 1228,
- CMOV32rr = 1229,
- CMOV32rr_ND = 1230,
- CMOV64rm = 1231,
- CMOV64rm_ND = 1232,
- CMOV64rr = 1233,
- CMOV64rr_ND = 1234,
- CMOVBE_F = 1235,
- CMOVBE_Fp32 = 1236,
- CMOVBE_Fp64 = 1237,
- CMOVBE_Fp80 = 1238,
- CMOVB_F = 1239,
- CMOVB_Fp32 = 1240,
- CMOVB_Fp64 = 1241,
- CMOVB_Fp80 = 1242,
- CMOVE_F = 1243,
- CMOVE_Fp32 = 1244,
- CMOVE_Fp64 = 1245,
- CMOVE_Fp80 = 1246,
- CMOVNBE_F = 1247,
- CMOVNBE_Fp32 = 1248,
- CMOVNBE_Fp64 = 1249,
- CMOVNBE_Fp80 = 1250,
- CMOVNB_F = 1251,
- CMOVNB_Fp32 = 1252,
- CMOVNB_Fp64 = 1253,
- CMOVNB_Fp80 = 1254,
- CMOVNE_F = 1255,
- CMOVNE_Fp32 = 1256,
- CMOVNE_Fp64 = 1257,
- CMOVNE_Fp80 = 1258,
- CMOVNP_F = 1259,
- CMOVNP_Fp32 = 1260,
- CMOVNP_Fp64 = 1261,
- CMOVNP_Fp80 = 1262,
- CMOVP_F = 1263,
- CMOVP_Fp32 = 1264,
- CMOVP_Fp64 = 1265,
- CMOVP_Fp80 = 1266,
- CMOV_FR16 = 1267,
- CMOV_FR16X = 1268,
- CMOV_FR32 = 1269,
- CMOV_FR32X = 1270,
- CMOV_FR64 = 1271,
- CMOV_FR64X = 1272,
- CMOV_GR16 = 1273,
- CMOV_GR32 = 1274,
- CMOV_GR8 = 1275,
- CMOV_RFP32 = 1276,
- CMOV_RFP64 = 1277,
- CMOV_RFP80 = 1278,
- CMOV_VK1 = 1279,
- CMOV_VK16 = 1280,
- CMOV_VK2 = 1281,
- CMOV_VK32 = 1282,
- CMOV_VK4 = 1283,
- CMOV_VK64 = 1284,
- CMOV_VK8 = 1285,
- CMOV_VR128 = 1286,
- CMOV_VR128X = 1287,
- CMOV_VR256 = 1288,
- CMOV_VR256X = 1289,
- CMOV_VR512 = 1290,
- CMOV_VR64 = 1291,
- CMP16i16 = 1292,
- CMP16mi = 1293,
- CMP16mi8 = 1294,
- CMP16mr = 1295,
- CMP16ri = 1296,
- CMP16ri8 = 1297,
- CMP16rm = 1298,
- CMP16rr = 1299,
- CMP16rr_REV = 1300,
- CMP32i32 = 1301,
- CMP32mi = 1302,
- CMP32mi8 = 1303,
- CMP32mr = 1304,
- CMP32ri = 1305,
- CMP32ri8 = 1306,
- CMP32rm = 1307,
- CMP32rr = 1308,
- CMP32rr_REV = 1309,
- CMP64i32 = 1310,
- CMP64mi32 = 1311,
- CMP64mi8 = 1312,
- CMP64mr = 1313,
- CMP64ri32 = 1314,
- CMP64ri8 = 1315,
- CMP64rm = 1316,
- CMP64rr = 1317,
- CMP64rr_REV = 1318,
- CMP8i8 = 1319,
- CMP8mi = 1320,
- CMP8mi8 = 1321,
- CMP8mr = 1322,
- CMP8ri = 1323,
- CMP8ri8 = 1324,
- CMP8rm = 1325,
- CMP8rr = 1326,
- CMP8rr_REV = 1327,
- CMPCCXADDmr32 = 1328,
- CMPCCXADDmr32_EVEX = 1329,
- CMPCCXADDmr64 = 1330,
- CMPCCXADDmr64_EVEX = 1331,
- CMPPDrmi = 1332,
- CMPPDrri = 1333,
- CMPPSrmi = 1334,
- CMPPSrri = 1335,
- CMPSB = 1336,
- CMPSDrmi = 1337,
- CMPSDrmi_Int = 1338,
- CMPSDrri = 1339,
- CMPSDrri_Int = 1340,
- CMPSL = 1341,
- CMPSQ = 1342,
- CMPSSrmi = 1343,
- CMPSSrmi_Int = 1344,
- CMPSSrri = 1345,
- CMPSSrri_Int = 1346,
- CMPSW = 1347,
- CMPXCHG16B = 1348,
- CMPXCHG16rm = 1349,
- CMPXCHG16rr = 1350,
- CMPXCHG32rm = 1351,
- CMPXCHG32rr = 1352,
- CMPXCHG64rm = 1353,
- CMPXCHG64rr = 1354,
- CMPXCHG8B = 1355,
- CMPXCHG8rm = 1356,
- CMPXCHG8rr = 1357,
- COMISDrm = 1358,
- COMISDrm_Int = 1359,
- COMISDrr = 1360,
- COMISDrr_Int = 1361,
- COMISSrm = 1362,
- COMISSrm_Int = 1363,
- COMISSrr = 1364,
- COMISSrr_Int = 1365,
- COMP_FST0r = 1366,
- COM_FIPr = 1367,
- COM_FIr = 1368,
- COM_FST0r = 1369,
- COM_FpIr32 = 1370,
- COM_FpIr64 = 1371,
- COM_FpIr80 = 1372,
- COM_Fpr32 = 1373,
- COM_Fpr64 = 1374,
- COM_Fpr80 = 1375,
- CPUID = 1376,
- CQO = 1377,
- CRC32r32m16 = 1378,
- CRC32r32m16_EVEX = 1379,
- CRC32r32m32 = 1380,
- CRC32r32m32_EVEX = 1381,
- CRC32r32m8 = 1382,
- CRC32r32m8_EVEX = 1383,
- CRC32r32r16 = 1384,
- CRC32r32r16_EVEX = 1385,
- CRC32r32r32 = 1386,
- CRC32r32r32_EVEX = 1387,
- CRC32r32r8 = 1388,
- CRC32r32r8_EVEX = 1389,
- CRC32r64m64 = 1390,
- CRC32r64m64_EVEX = 1391,
- CRC32r64m8 = 1392,
- CRC32r64m8_EVEX = 1393,
- CRC32r64r64 = 1394,
- CRC32r64r64_EVEX = 1395,
- CRC32r64r8 = 1396,
- CRC32r64r8_EVEX = 1397,
- CS_PREFIX = 1398,
- CTEST16mi = 1399,
- CTEST16mr = 1400,
- CTEST16ri = 1401,
- CTEST16rr = 1402,
- CTEST32mi = 1403,
- CTEST32mr = 1404,
- CTEST32ri = 1405,
- CTEST32rr = 1406,
- CTEST64mi32 = 1407,
- CTEST64mr = 1408,
- CTEST64ri32 = 1409,
- CTEST64rr = 1410,
- CTEST8mi = 1411,
- CTEST8mr = 1412,
- CTEST8ri = 1413,
- CTEST8rr = 1414,
- CVTDQ2PDrm = 1415,
- CVTDQ2PDrr = 1416,
- CVTDQ2PSrm = 1417,
- CVTDQ2PSrr = 1418,
- CVTPD2DQrm = 1419,
- CVTPD2DQrr = 1420,
- CVTPD2PSrm = 1421,
- CVTPD2PSrr = 1422,
- CVTPS2DQrm = 1423,
- CVTPS2DQrr = 1424,
- CVTPS2PDrm = 1425,
- CVTPS2PDrr = 1426,
- CVTSD2SI64rm = 1427,
- CVTSD2SI64rm_Int = 1428,
- CVTSD2SI64rr = 1429,
- CVTSD2SI64rr_Int = 1430,
- CVTSD2SIrm = 1431,
- CVTSD2SIrm_Int = 1432,
- CVTSD2SIrr = 1433,
- CVTSD2SIrr_Int = 1434,
- CVTSD2SSrm = 1435,
- CVTSD2SSrm_Int = 1436,
- CVTSD2SSrr = 1437,
- CVTSD2SSrr_Int = 1438,
- CVTSI2SDrm = 1439,
- CVTSI2SDrm_Int = 1440,
- CVTSI2SDrr = 1441,
- CVTSI2SDrr_Int = 1442,
- CVTSI2SSrm = 1443,
- CVTSI2SSrm_Int = 1444,
- CVTSI2SSrr = 1445,
- CVTSI2SSrr_Int = 1446,
- CVTSI642SDrm = 1447,
- CVTSI642SDrm_Int = 1448,
- CVTSI642SDrr = 1449,
- CVTSI642SDrr_Int = 1450,
- CVTSI642SSrm = 1451,
- CVTSI642SSrm_Int = 1452,
- CVTSI642SSrr = 1453,
- CVTSI642SSrr_Int = 1454,
- CVTSS2SDrm = 1455,
- CVTSS2SDrm_Int = 1456,
- CVTSS2SDrr = 1457,
- CVTSS2SDrr_Int = 1458,
- CVTSS2SI64rm = 1459,
- CVTSS2SI64rm_Int = 1460,
- CVTSS2SI64rr = 1461,
- CVTSS2SI64rr_Int = 1462,
- CVTSS2SIrm = 1463,
- CVTSS2SIrm_Int = 1464,
- CVTSS2SIrr = 1465,
- CVTSS2SIrr_Int = 1466,
- CVTTPD2DQrm = 1467,
- CVTTPD2DQrr = 1468,
- CVTTPS2DQrm = 1469,
- CVTTPS2DQrr = 1470,
- CVTTSD2SI64rm = 1471,
- CVTTSD2SI64rm_Int = 1472,
- CVTTSD2SI64rr = 1473,
- CVTTSD2SI64rr_Int = 1474,
- CVTTSD2SIrm = 1475,
- CVTTSD2SIrm_Int = 1476,
- CVTTSD2SIrr = 1477,
- CVTTSD2SIrr_Int = 1478,
- CVTTSS2SI64rm = 1479,
- CVTTSS2SI64rm_Int = 1480,
- CVTTSS2SI64rr = 1481,
- CVTTSS2SI64rr_Int = 1482,
- CVTTSS2SIrm = 1483,
- CVTTSS2SIrm_Int = 1484,
- CVTTSS2SIrr = 1485,
- CVTTSS2SIrr_Int = 1486,
- CWD = 1487,
- CWDE = 1488,
- DAA = 1489,
- DAS = 1490,
- DATA16_PREFIX = 1491,
- DEC16m = 1492,
- DEC16m_EVEX = 1493,
- DEC16m_ND = 1494,
- DEC16m_NF = 1495,
- DEC16m_NF_ND = 1496,
- DEC16r = 1497,
- DEC16r_EVEX = 1498,
- DEC16r_ND = 1499,
- DEC16r_NF = 1500,
- DEC16r_NF_ND = 1501,
- DEC16r_alt = 1502,
- DEC32m = 1503,
- DEC32m_EVEX = 1504,
- DEC32m_ND = 1505,
- DEC32m_NF = 1506,
- DEC32m_NF_ND = 1507,
- DEC32r = 1508,
- DEC32r_EVEX = 1509,
- DEC32r_ND = 1510,
- DEC32r_NF = 1511,
- DEC32r_NF_ND = 1512,
- DEC32r_alt = 1513,
- DEC64m = 1514,
- DEC64m_EVEX = 1515,
- DEC64m_ND = 1516,
- DEC64m_NF = 1517,
- DEC64m_NF_ND = 1518,
- DEC64r = 1519,
- DEC64r_EVEX = 1520,
- DEC64r_ND = 1521,
- DEC64r_NF = 1522,
- DEC64r_NF_ND = 1523,
- DEC8m = 1524,
- DEC8m_EVEX = 1525,
- DEC8m_ND = 1526,
- DEC8m_NF = 1527,
- DEC8m_NF_ND = 1528,
- DEC8r = 1529,
- DEC8r_EVEX = 1530,
- DEC8r_ND = 1531,
- DEC8r_NF = 1532,
- DEC8r_NF_ND = 1533,
- DIV16m = 1534,
- DIV16m_EVEX = 1535,
- DIV16m_NF = 1536,
- DIV16r = 1537,
- DIV16r_EVEX = 1538,
- DIV16r_NF = 1539,
- DIV32m = 1540,
- DIV32m_EVEX = 1541,
- DIV32m_NF = 1542,
- DIV32r = 1543,
- DIV32r_EVEX = 1544,
- DIV32r_NF = 1545,
- DIV64m = 1546,
- DIV64m_EVEX = 1547,
- DIV64m_NF = 1548,
- DIV64r = 1549,
- DIV64r_EVEX = 1550,
- DIV64r_NF = 1551,
- DIV8m = 1552,
- DIV8m_EVEX = 1553,
- DIV8m_NF = 1554,
- DIV8r = 1555,
- DIV8r_EVEX = 1556,
- DIV8r_NF = 1557,
- DIVPDrm = 1558,
- DIVPDrr = 1559,
- DIVPSrm = 1560,
- DIVPSrr = 1561,
- DIVR_F32m = 1562,
- DIVR_F64m = 1563,
- DIVR_FI16m = 1564,
- DIVR_FI32m = 1565,
- DIVR_FPrST0 = 1566,
- DIVR_FST0r = 1567,
- DIVR_Fp32m = 1568,
- DIVR_Fp64m = 1569,
- DIVR_Fp64m32 = 1570,
- DIVR_Fp80m32 = 1571,
- DIVR_Fp80m64 = 1572,
- DIVR_FpI16m32 = 1573,
- DIVR_FpI16m64 = 1574,
- DIVR_FpI16m80 = 1575,
- DIVR_FpI32m32 = 1576,
- DIVR_FpI32m64 = 1577,
- DIVR_FpI32m80 = 1578,
- DIVR_FrST0 = 1579,
- DIVSDrm = 1580,
- DIVSDrm_Int = 1581,
- DIVSDrr = 1582,
- DIVSDrr_Int = 1583,
- DIVSSrm = 1584,
- DIVSSrm_Int = 1585,
- DIVSSrr = 1586,
- DIVSSrr_Int = 1587,
- DIV_F32m = 1588,
- DIV_F64m = 1589,
- DIV_FI16m = 1590,
- DIV_FI32m = 1591,
- DIV_FPrST0 = 1592,
- DIV_FST0r = 1593,
- DIV_Fp32 = 1594,
- DIV_Fp32m = 1595,
- DIV_Fp64 = 1596,
- DIV_Fp64m = 1597,
- DIV_Fp64m32 = 1598,
- DIV_Fp80 = 1599,
- DIV_Fp80m32 = 1600,
- DIV_Fp80m64 = 1601,
- DIV_FpI16m32 = 1602,
- DIV_FpI16m64 = 1603,
- DIV_FpI16m80 = 1604,
- DIV_FpI32m32 = 1605,
- DIV_FpI32m64 = 1606,
- DIV_FpI32m80 = 1607,
- DIV_FrST0 = 1608,
- DPPDrmi = 1609,
- DPPDrri = 1610,
- DPPSrmi = 1611,
- DPPSrri = 1612,
- DS_PREFIX = 1613,
- DYN_ALLOCA_32 = 1614,
- DYN_ALLOCA_64 = 1615,
- EH_RETURN = 1616,
- EH_RETURN64 = 1617,
- EH_SjLj_LongJmp32 = 1618,
- EH_SjLj_LongJmp64 = 1619,
- EH_SjLj_SetJmp32 = 1620,
- EH_SjLj_SetJmp64 = 1621,
- EH_SjLj_Setup = 1622,
- ENCLS = 1623,
- ENCLU = 1624,
- ENCLV = 1625,
- ENCODEKEY128 = 1626,
- ENCODEKEY256 = 1627,
- ENDBR32 = 1628,
- ENDBR64 = 1629,
- ENQCMD16 = 1630,
- ENQCMD32 = 1631,
- ENQCMD32_EVEX = 1632,
- ENQCMD64 = 1633,
- ENQCMD64_EVEX = 1634,
- ENQCMDS16 = 1635,
- ENQCMDS32 = 1636,
- ENQCMDS32_EVEX = 1637,
- ENQCMDS64 = 1638,
- ENQCMDS64_EVEX = 1639,
- ENTER = 1640,
- ERETS = 1641,
- ERETU = 1642,
- ES_PREFIX = 1643,
- EXTRACTPSmri = 1644,
- EXTRACTPSrri = 1645,
- EXTRQ = 1646,
- EXTRQI = 1647,
- F2XM1 = 1648,
- FARCALL16i = 1649,
- FARCALL16m = 1650,
- FARCALL32i = 1651,
- FARCALL32m = 1652,
- FARCALL64m = 1653,
- FARJMP16i = 1654,
- FARJMP16m = 1655,
- FARJMP32i = 1656,
- FARJMP32m = 1657,
- FARJMP64m = 1658,
- FBLDm = 1659,
- FBSTPm = 1660,
- FCOM32m = 1661,
- FCOM64m = 1662,
- FCOMP32m = 1663,
- FCOMP64m = 1664,
- FCOMPP = 1665,
- FCOS = 1666,
- FDECSTP = 1667,
- FEMMS = 1668,
- FFREE = 1669,
- FFREEP = 1670,
- FICOM16m = 1671,
- FICOM32m = 1672,
- FICOMP16m = 1673,
- FICOMP32m = 1674,
- FINCSTP = 1675,
- FLDCW16m = 1676,
- FLDENVm = 1677,
- FLDL2E = 1678,
- FLDL2T = 1679,
- FLDLG2 = 1680,
- FLDLN2 = 1681,
- FLDPI = 1682,
- FNCLEX = 1683,
- FNINIT = 1684,
- FNOP = 1685,
- FNSTCW16m = 1686,
- FNSTSW16r = 1687,
- FNSTSWm = 1688,
- FP32_TO_INT16_IN_MEM = 1689,
- FP32_TO_INT32_IN_MEM = 1690,
- FP32_TO_INT64_IN_MEM = 1691,
- FP64_TO_INT16_IN_MEM = 1692,
- FP64_TO_INT32_IN_MEM = 1693,
- FP64_TO_INT64_IN_MEM = 1694,
- FP80_ADDm32 = 1695,
- FP80_ADDr = 1696,
- FP80_TO_INT16_IN_MEM = 1697,
- FP80_TO_INT32_IN_MEM = 1698,
- FP80_TO_INT64_IN_MEM = 1699,
- FPATAN = 1700,
- FPREM = 1701,
- FPREM1 = 1702,
- FPTAN = 1703,
- FRNDINT = 1704,
- FRSTORm = 1705,
- FSAVEm = 1706,
- FSCALE = 1707,
- FSIN = 1708,
- FSINCOS = 1709,
- FSTENVm = 1710,
- FS_PREFIX = 1711,
- FXRSTOR = 1712,
- FXRSTOR64 = 1713,
- FXSAVE = 1714,
- FXSAVE64 = 1715,
- FXTRACT = 1716,
- FYL2X = 1717,
- FYL2XP1 = 1718,
- GETSEC = 1719,
- GF2P8AFFINEINVQBrmi = 1720,
- GF2P8AFFINEINVQBrri = 1721,
- GF2P8AFFINEQBrmi = 1722,
- GF2P8AFFINEQBrri = 1723,
- GF2P8MULBrm = 1724,
- GF2P8MULBrr = 1725,
- GS_PREFIX = 1726,
- HADDPDrm = 1727,
- HADDPDrr = 1728,
- HADDPSrm = 1729,
- HADDPSrr = 1730,
- HLT = 1731,
- HRESET = 1732,
- HSUBPDrm = 1733,
- HSUBPDrr = 1734,
- HSUBPSrm = 1735,
- HSUBPSrr = 1736,
- IDIV16m = 1737,
- IDIV16m_EVEX = 1738,
- IDIV16m_NF = 1739,
- IDIV16r = 1740,
- IDIV16r_EVEX = 1741,
- IDIV16r_NF = 1742,
- IDIV32m = 1743,
- IDIV32m_EVEX = 1744,
- IDIV32m_NF = 1745,
- IDIV32r = 1746,
- IDIV32r_EVEX = 1747,
- IDIV32r_NF = 1748,
- IDIV64m = 1749,
- IDIV64m_EVEX = 1750,
- IDIV64m_NF = 1751,
- IDIV64r = 1752,
- IDIV64r_EVEX = 1753,
- IDIV64r_NF = 1754,
- IDIV8m = 1755,
- IDIV8m_EVEX = 1756,
- IDIV8m_NF = 1757,
- IDIV8r = 1758,
- IDIV8r_EVEX = 1759,
- IDIV8r_NF = 1760,
- ILD_F16m = 1761,
- ILD_F32m = 1762,
- ILD_F64m = 1763,
- ILD_Fp16m32 = 1764,
- ILD_Fp16m64 = 1765,
- ILD_Fp16m80 = 1766,
- ILD_Fp32m32 = 1767,
- ILD_Fp32m64 = 1768,
- ILD_Fp32m80 = 1769,
- ILD_Fp64m32 = 1770,
- ILD_Fp64m64 = 1771,
- ILD_Fp64m80 = 1772,
- IMUL16m = 1773,
- IMUL16m_EVEX = 1774,
- IMUL16m_NF = 1775,
- IMUL16r = 1776,
- IMUL16r_EVEX = 1777,
- IMUL16r_NF = 1778,
- IMUL16rm = 1779,
- IMUL16rm_EVEX = 1780,
- IMUL16rm_ND = 1781,
- IMUL16rm_NF = 1782,
- IMUL16rm_NF_ND = 1783,
- IMUL16rmi = 1784,
- IMUL16rmi8 = 1785,
- IMUL16rmi8_EVEX = 1786,
- IMUL16rmi8_NF = 1787,
- IMUL16rmi_EVEX = 1788,
- IMUL16rmi_NF = 1789,
- IMUL16rr = 1790,
- IMUL16rr_EVEX = 1791,
- IMUL16rr_ND = 1792,
- IMUL16rr_NF = 1793,
- IMUL16rr_NF_ND = 1794,
- IMUL16rri = 1795,
- IMUL16rri8 = 1796,
- IMUL16rri8_EVEX = 1797,
- IMUL16rri8_NF = 1798,
- IMUL16rri_EVEX = 1799,
- IMUL16rri_NF = 1800,
- IMUL32m = 1801,
- IMUL32m_EVEX = 1802,
- IMUL32m_NF = 1803,
- IMUL32r = 1804,
- IMUL32r_EVEX = 1805,
- IMUL32r_NF = 1806,
- IMUL32rm = 1807,
- IMUL32rm_EVEX = 1808,
- IMUL32rm_ND = 1809,
- IMUL32rm_NF = 1810,
- IMUL32rm_NF_ND = 1811,
- IMUL32rmi = 1812,
- IMUL32rmi8 = 1813,
- IMUL32rmi8_EVEX = 1814,
- IMUL32rmi8_NF = 1815,
- IMUL32rmi_EVEX = 1816,
- IMUL32rmi_NF = 1817,
- IMUL32rr = 1818,
- IMUL32rr_EVEX = 1819,
- IMUL32rr_ND = 1820,
- IMUL32rr_NF = 1821,
- IMUL32rr_NF_ND = 1822,
- IMUL32rri = 1823,
- IMUL32rri8 = 1824,
- IMUL32rri8_EVEX = 1825,
- IMUL32rri8_NF = 1826,
- IMUL32rri_EVEX = 1827,
- IMUL32rri_NF = 1828,
- IMUL64m = 1829,
- IMUL64m_EVEX = 1830,
- IMUL64m_NF = 1831,
- IMUL64r = 1832,
- IMUL64r_EVEX = 1833,
- IMUL64r_NF = 1834,
- IMUL64rm = 1835,
- IMUL64rm_EVEX = 1836,
- IMUL64rm_ND = 1837,
- IMUL64rm_NF = 1838,
- IMUL64rm_NF_ND = 1839,
- IMUL64rmi32 = 1840,
- IMUL64rmi32_EVEX = 1841,
- IMUL64rmi32_NF = 1842,
- IMUL64rmi8 = 1843,
- IMUL64rmi8_EVEX = 1844,
- IMUL64rmi8_NF = 1845,
- IMUL64rr = 1846,
- IMUL64rr_EVEX = 1847,
- IMUL64rr_ND = 1848,
- IMUL64rr_NF = 1849,
- IMUL64rr_NF_ND = 1850,
- IMUL64rri32 = 1851,
- IMUL64rri32_EVEX = 1852,
- IMUL64rri32_NF = 1853,
- IMUL64rri8 = 1854,
- IMUL64rri8_EVEX = 1855,
- IMUL64rri8_NF = 1856,
- IMUL8m = 1857,
- IMUL8m_EVEX = 1858,
- IMUL8m_NF = 1859,
- IMUL8r = 1860,
- IMUL8r_EVEX = 1861,
- IMUL8r_NF = 1862,
- IMULZU16rmi = 1863,
- IMULZU16rmi8 = 1864,
- IMULZU16rri = 1865,
- IMULZU16rri8 = 1866,
- IMULZU32rmi = 1867,
- IMULZU32rmi8 = 1868,
- IMULZU32rri = 1869,
- IMULZU32rri8 = 1870,
- IMULZU64rmi32 = 1871,
- IMULZU64rmi8 = 1872,
- IMULZU64rri32 = 1873,
- IMULZU64rri8 = 1874,
- IN16ri = 1875,
- IN16rr = 1876,
- IN32ri = 1877,
- IN32rr = 1878,
- IN8ri = 1879,
- IN8rr = 1880,
- INC16m = 1881,
- INC16m_EVEX = 1882,
- INC16m_ND = 1883,
- INC16m_NF = 1884,
- INC16m_NF_ND = 1885,
- INC16r = 1886,
- INC16r_EVEX = 1887,
- INC16r_ND = 1888,
- INC16r_NF = 1889,
- INC16r_NF_ND = 1890,
- INC16r_alt = 1891,
- INC32m = 1892,
- INC32m_EVEX = 1893,
- INC32m_ND = 1894,
- INC32m_NF = 1895,
- INC32m_NF_ND = 1896,
- INC32r = 1897,
- INC32r_EVEX = 1898,
- INC32r_ND = 1899,
- INC32r_NF = 1900,
- INC32r_NF_ND = 1901,
- INC32r_alt = 1902,
- INC64m = 1903,
- INC64m_EVEX = 1904,
- INC64m_ND = 1905,
- INC64m_NF = 1906,
- INC64m_NF_ND = 1907,
- INC64r = 1908,
- INC64r_EVEX = 1909,
- INC64r_ND = 1910,
- INC64r_NF = 1911,
- INC64r_NF_ND = 1912,
- INC8m = 1913,
- INC8m_EVEX = 1914,
- INC8m_ND = 1915,
- INC8m_NF = 1916,
- INC8m_NF_ND = 1917,
- INC8r = 1918,
- INC8r_EVEX = 1919,
- INC8r_ND = 1920,
- INC8r_NF = 1921,
- INC8r_NF_ND = 1922,
- INCSSPD = 1923,
- INCSSPQ = 1924,
- INSB = 1925,
- INSERTPSrmi = 1926,
- INSERTPSrri = 1927,
- INSERTQ = 1928,
- INSERTQI = 1929,
- INSL = 1930,
- INSW = 1931,
- INT = 1932,
- INT3 = 1933,
- INTO = 1934,
- INVD = 1935,
- INVEPT32 = 1936,
- INVEPT64 = 1937,
- INVEPT64_EVEX = 1938,
- INVLPG = 1939,
- INVLPGA32 = 1940,
- INVLPGA64 = 1941,
- INVLPGB32 = 1942,
- INVLPGB64 = 1943,
- INVPCID32 = 1944,
- INVPCID64 = 1945,
- INVPCID64_EVEX = 1946,
- INVVPID32 = 1947,
- INVVPID64 = 1948,
- INVVPID64_EVEX = 1949,
- IRET = 1950,
- IRET16 = 1951,
- IRET32 = 1952,
- IRET64 = 1953,
- ISTT_FP16m = 1954,
- ISTT_FP32m = 1955,
- ISTT_FP64m = 1956,
- ISTT_Fp16m32 = 1957,
- ISTT_Fp16m64 = 1958,
- ISTT_Fp16m80 = 1959,
- ISTT_Fp32m32 = 1960,
- ISTT_Fp32m64 = 1961,
- ISTT_Fp32m80 = 1962,
- ISTT_Fp64m32 = 1963,
- ISTT_Fp64m64 = 1964,
- ISTT_Fp64m80 = 1965,
- IST_F16m = 1966,
- IST_F32m = 1967,
- IST_FP16m = 1968,
- IST_FP32m = 1969,
- IST_FP64m = 1970,
- IST_Fp16m32 = 1971,
- IST_Fp16m64 = 1972,
- IST_Fp16m80 = 1973,
- IST_Fp32m32 = 1974,
- IST_Fp32m64 = 1975,
- IST_Fp32m80 = 1976,
- IST_Fp64m32 = 1977,
- IST_Fp64m64 = 1978,
- IST_Fp64m80 = 1979,
- Int_eh_sjlj_setup_dispatch = 1980,
- JCC_1 = 1981,
- JCC_2 = 1982,
- JCC_4 = 1983,
- JCXZ = 1984,
- JECXZ = 1985,
- JMP16m = 1986,
- JMP16m_NT = 1987,
- JMP16r = 1988,
- JMP16r_NT = 1989,
- JMP32m = 1990,
- JMP32m_NT = 1991,
- JMP32r = 1992,
- JMP32r_NT = 1993,
- JMP64m = 1994,
- JMP64m_NT = 1995,
- JMP64m_REX = 1996,
- JMP64r = 1997,
- JMP64r_NT = 1998,
- JMP64r_REX = 1999,
- JMPABS64i = 2000,
- JMP_1 = 2001,
- JMP_2 = 2002,
- JMP_4 = 2003,
- JRCXZ = 2004,
- KADDBkk = 2005,
- KADDDkk = 2006,
- KADDQkk = 2007,
- KADDWkk = 2008,
- KANDBkk = 2009,
- KANDDkk = 2010,
- KANDNBkk = 2011,
- KANDNDkk = 2012,
- KANDNQkk = 2013,
- KANDNWkk = 2014,
- KANDQkk = 2015,
- KANDWkk = 2016,
- KCFI_CHECK = 2017,
- KMOVBkk = 2018,
- KMOVBkk_EVEX = 2019,
- KMOVBkm = 2020,
- KMOVBkm_EVEX = 2021,
- KMOVBkr = 2022,
- KMOVBkr_EVEX = 2023,
- KMOVBmk = 2024,
- KMOVBmk_EVEX = 2025,
- KMOVBrk = 2026,
- KMOVBrk_EVEX = 2027,
- KMOVDkk = 2028,
- KMOVDkk_EVEX = 2029,
- KMOVDkm = 2030,
- KMOVDkm_EVEX = 2031,
- KMOVDkr = 2032,
- KMOVDkr_EVEX = 2033,
- KMOVDmk = 2034,
- KMOVDmk_EVEX = 2035,
- KMOVDrk = 2036,
- KMOVDrk_EVEX = 2037,
- KMOVQkk = 2038,
- KMOVQkk_EVEX = 2039,
- KMOVQkm = 2040,
- KMOVQkm_EVEX = 2041,
- KMOVQkr = 2042,
- KMOVQkr_EVEX = 2043,
- KMOVQmk = 2044,
- KMOVQmk_EVEX = 2045,
- KMOVQrk = 2046,
- KMOVQrk_EVEX = 2047,
- KMOVWkk = 2048,
- KMOVWkk_EVEX = 2049,
- KMOVWkm = 2050,
- KMOVWkm_EVEX = 2051,
- KMOVWkr = 2052,
- KMOVWkr_EVEX = 2053,
- KMOVWmk = 2054,
- KMOVWmk_EVEX = 2055,
- KMOVWrk = 2056,
- KMOVWrk_EVEX = 2057,
- KNOTBkk = 2058,
- KNOTDkk = 2059,
- KNOTQkk = 2060,
- KNOTWkk = 2061,
- KORBkk = 2062,
- KORDkk = 2063,
- KORQkk = 2064,
- KORTESTBkk = 2065,
- KORTESTDkk = 2066,
- KORTESTQkk = 2067,
- KORTESTWkk = 2068,
- KORWkk = 2069,
- KSHIFTLBki = 2070,
- KSHIFTLDki = 2071,
- KSHIFTLQki = 2072,
- KSHIFTLWki = 2073,
- KSHIFTRBki = 2074,
- KSHIFTRDki = 2075,
- KSHIFTRQki = 2076,
- KSHIFTRWki = 2077,
- KTESTBkk = 2078,
- KTESTDkk = 2079,
- KTESTQkk = 2080,
- KTESTWkk = 2081,
- KUNPCKBWkk = 2082,
- KUNPCKDQkk = 2083,
- KUNPCKWDkk = 2084,
- KXNORBkk = 2085,
- KXNORDkk = 2086,
- KXNORQkk = 2087,
- KXNORWkk = 2088,
- KXORBkk = 2089,
- KXORDkk = 2090,
- KXORQkk = 2091,
- KXORWkk = 2092,
- LAHF = 2093,
- LAR16rm = 2094,
- LAR16rr = 2095,
- LAR32rm = 2096,
- LAR32rr = 2097,
- LAR64rm = 2098,
- LAR64rr = 2099,
- LCMPXCHG16 = 2100,
- LCMPXCHG16B = 2101,
- LCMPXCHG32 = 2102,
- LCMPXCHG64 = 2103,
- LCMPXCHG8 = 2104,
- LCMPXCHG8B = 2105,
- LDDQUrm = 2106,
- LDMXCSR = 2107,
- LDS16rm = 2108,
- LDS32rm = 2109,
- LDTILECFG = 2110,
- LDTILECFG_EVEX = 2111,
- LD_F0 = 2112,
- LD_F1 = 2113,
- LD_F32m = 2114,
- LD_F64m = 2115,
- LD_F80m = 2116,
- LD_Fp032 = 2117,
- LD_Fp064 = 2118,
- LD_Fp080 = 2119,
- LD_Fp132 = 2120,
- LD_Fp164 = 2121,
- LD_Fp180 = 2122,
- LD_Fp32m = 2123,
- LD_Fp32m64 = 2124,
- LD_Fp32m80 = 2125,
- LD_Fp64m = 2126,
- LD_Fp64m80 = 2127,
- LD_Fp80m = 2128,
- LD_Frr = 2129,
- LEA16r = 2130,
- LEA32r = 2131,
- LEA64_16r = 2132,
- LEA64_32r = 2133,
- LEA64_8r = 2134,
- LEA64r = 2135,
- LEAVE = 2136,
- LEAVE64 = 2137,
- LES16rm = 2138,
- LES32rm = 2139,
- LFENCE = 2140,
- LFS16rm = 2141,
- LFS32rm = 2142,
- LFS64rm = 2143,
- LGDT16m = 2144,
- LGDT32m = 2145,
- LGDT64m = 2146,
- LGS16rm = 2147,
- LGS32rm = 2148,
- LGS64rm = 2149,
- LIDT16m = 2150,
- LIDT32m = 2151,
- LIDT64m = 2152,
- LKGS16m = 2153,
- LKGS16r = 2154,
- LLDT16m = 2155,
- LLDT16r = 2156,
- LLWPCB = 2157,
- LLWPCB64 = 2158,
- LMSW16m = 2159,
- LMSW16r = 2160,
- LOADIWKEY = 2161,
- LOCK_ADD16mi = 2162,
- LOCK_ADD16mi8 = 2163,
- LOCK_ADD16mr = 2164,
- LOCK_ADD32mi = 2165,
- LOCK_ADD32mi8 = 2166,
- LOCK_ADD32mr = 2167,
- LOCK_ADD64mi32 = 2168,
- LOCK_ADD64mi8 = 2169,
- LOCK_ADD64mr = 2170,
- LOCK_ADD8mi = 2171,
- LOCK_ADD8mr = 2172,
- LOCK_AND16mi = 2173,
- LOCK_AND16mi8 = 2174,
- LOCK_AND16mr = 2175,
- LOCK_AND32mi = 2176,
- LOCK_AND32mi8 = 2177,
- LOCK_AND32mr = 2178,
- LOCK_AND64mi32 = 2179,
- LOCK_AND64mi8 = 2180,
- LOCK_AND64mr = 2181,
- LOCK_AND8mi = 2182,
- LOCK_AND8mr = 2183,
- LOCK_BTC16m = 2184,
- LOCK_BTC32m = 2185,
- LOCK_BTC64m = 2186,
- LOCK_BTC_RM16rm = 2187,
- LOCK_BTC_RM32rm = 2188,
- LOCK_BTC_RM64rm = 2189,
- LOCK_BTR16m = 2190,
- LOCK_BTR32m = 2191,
- LOCK_BTR64m = 2192,
- LOCK_BTR_RM16rm = 2193,
- LOCK_BTR_RM32rm = 2194,
- LOCK_BTR_RM64rm = 2195,
- LOCK_BTS16m = 2196,
- LOCK_BTS32m = 2197,
- LOCK_BTS64m = 2198,
- LOCK_BTS_RM16rm = 2199,
- LOCK_BTS_RM32rm = 2200,
- LOCK_BTS_RM64rm = 2201,
- LOCK_DEC16m = 2202,
- LOCK_DEC32m = 2203,
- LOCK_DEC64m = 2204,
- LOCK_DEC8m = 2205,
- LOCK_INC16m = 2206,
- LOCK_INC32m = 2207,
- LOCK_INC64m = 2208,
- LOCK_INC8m = 2209,
- LOCK_OR16mi = 2210,
- LOCK_OR16mi8 = 2211,
- LOCK_OR16mr = 2212,
- LOCK_OR32mi = 2213,
- LOCK_OR32mi8 = 2214,
- LOCK_OR32mr = 2215,
- LOCK_OR64mi32 = 2216,
- LOCK_OR64mi8 = 2217,
- LOCK_OR64mr = 2218,
- LOCK_OR8mi = 2219,
- LOCK_OR8mr = 2220,
- LOCK_PREFIX = 2221,
- LOCK_SUB16mi = 2222,
- LOCK_SUB16mi8 = 2223,
- LOCK_SUB16mr = 2224,
- LOCK_SUB32mi = 2225,
- LOCK_SUB32mi8 = 2226,
- LOCK_SUB32mr = 2227,
- LOCK_SUB64mi32 = 2228,
- LOCK_SUB64mi8 = 2229,
- LOCK_SUB64mr = 2230,
- LOCK_SUB8mi = 2231,
- LOCK_SUB8mr = 2232,
- LOCK_XOR16mi = 2233,
- LOCK_XOR16mi8 = 2234,
- LOCK_XOR16mr = 2235,
- LOCK_XOR32mi = 2236,
- LOCK_XOR32mi8 = 2237,
- LOCK_XOR32mr = 2238,
- LOCK_XOR64mi32 = 2239,
- LOCK_XOR64mi8 = 2240,
- LOCK_XOR64mr = 2241,
- LOCK_XOR8mi = 2242,
- LOCK_XOR8mr = 2243,
- LODSB = 2244,
- LODSL = 2245,
- LODSQ = 2246,
- LODSW = 2247,
- LOOP = 2248,
- LOOPE = 2249,
- LOOPNE = 2250,
- LRET16 = 2251,
- LRET32 = 2252,
- LRET64 = 2253,
- LRETI16 = 2254,
- LRETI32 = 2255,
- LRETI64 = 2256,
- LSL16rm = 2257,
- LSL16rr = 2258,
- LSL32rm = 2259,
- LSL32rr = 2260,
- LSL64rm = 2261,
- LSL64rr = 2262,
- LSS16rm = 2263,
- LSS32rm = 2264,
- LSS64rm = 2265,
- LTRm = 2266,
- LTRr = 2267,
- LWPINS32rmi = 2268,
- LWPINS32rri = 2269,
- LWPINS64rmi = 2270,
- LWPINS64rri = 2271,
- LWPVAL32rmi = 2272,
- LWPVAL32rri = 2273,
- LWPVAL64rmi = 2274,
- LWPVAL64rri = 2275,
- LXADD16 = 2276,
- LXADD32 = 2277,
- LXADD64 = 2278,
- LXADD8 = 2279,
- LZCNT16rm = 2280,
- LZCNT16rm_EVEX = 2281,
- LZCNT16rm_NF = 2282,
- LZCNT16rr = 2283,
- LZCNT16rr_EVEX = 2284,
- LZCNT16rr_NF = 2285,
- LZCNT32rm = 2286,
- LZCNT32rm_EVEX = 2287,
- LZCNT32rm_NF = 2288,
- LZCNT32rr = 2289,
- LZCNT32rr_EVEX = 2290,
- LZCNT32rr_NF = 2291,
- LZCNT64rm = 2292,
- LZCNT64rm_EVEX = 2293,
- LZCNT64rm_NF = 2294,
- LZCNT64rr = 2295,
- LZCNT64rr_EVEX = 2296,
- LZCNT64rr_NF = 2297,
- MASKMOVDQU = 2298,
- MASKMOVDQU64 = 2299,
- MASKPAIR16LOAD = 2300,
- MASKPAIR16STORE = 2301,
- MAXCPDrm = 2302,
- MAXCPDrr = 2303,
- MAXCPSrm = 2304,
- MAXCPSrr = 2305,
- MAXCSDrm = 2306,
- MAXCSDrr = 2307,
- MAXCSSrm = 2308,
- MAXCSSrr = 2309,
- MAXPDrm = 2310,
- MAXPDrr = 2311,
- MAXPSrm = 2312,
- MAXPSrr = 2313,
- MAXSDrm = 2314,
- MAXSDrm_Int = 2315,
- MAXSDrr = 2316,
- MAXSDrr_Int = 2317,
- MAXSSrm = 2318,
- MAXSSrm_Int = 2319,
- MAXSSrr = 2320,
- MAXSSrr_Int = 2321,
- MFENCE = 2322,
- MINCPDrm = 2323,
- MINCPDrr = 2324,
- MINCPSrm = 2325,
- MINCPSrr = 2326,
- MINCSDrm = 2327,
- MINCSDrr = 2328,
- MINCSSrm = 2329,
- MINCSSrr = 2330,
- MINPDrm = 2331,
- MINPDrr = 2332,
- MINPSrm = 2333,
- MINPSrr = 2334,
- MINSDrm = 2335,
- MINSDrm_Int = 2336,
- MINSDrr = 2337,
- MINSDrr_Int = 2338,
- MINSSrm = 2339,
- MINSSrm_Int = 2340,
- MINSSrr = 2341,
- MINSSrr_Int = 2342,
- MMX_CVTPD2PIrm = 2343,
- MMX_CVTPD2PIrr = 2344,
- MMX_CVTPI2PDrm = 2345,
- MMX_CVTPI2PDrr = 2346,
- MMX_CVTPI2PSrm = 2347,
- MMX_CVTPI2PSrr = 2348,
- MMX_CVTPS2PIrm = 2349,
- MMX_CVTPS2PIrr = 2350,
- MMX_CVTTPD2PIrm = 2351,
- MMX_CVTTPD2PIrr = 2352,
- MMX_CVTTPS2PIrm = 2353,
- MMX_CVTTPS2PIrr = 2354,
- MMX_EMMS = 2355,
- MMX_MASKMOVQ = 2356,
- MMX_MASKMOVQ64 = 2357,
- MMX_MOVD64from64mr = 2358,
- MMX_MOVD64from64rr = 2359,
- MMX_MOVD64grr = 2360,
- MMX_MOVD64mr = 2361,
- MMX_MOVD64rm = 2362,
- MMX_MOVD64rr = 2363,
- MMX_MOVD64to64rm = 2364,
- MMX_MOVD64to64rr = 2365,
- MMX_MOVDQ2Qrr = 2366,
- MMX_MOVFR642Qrr = 2367,
- MMX_MOVNTQmr = 2368,
- MMX_MOVQ2DQrr = 2369,
- MMX_MOVQ2FR64rr = 2370,
- MMX_MOVQ64mr = 2371,
- MMX_MOVQ64rm = 2372,
- MMX_MOVQ64rr = 2373,
- MMX_MOVQ64rr_REV = 2374,
- MMX_PABSBrm = 2375,
- MMX_PABSBrr = 2376,
- MMX_PABSDrm = 2377,
- MMX_PABSDrr = 2378,
- MMX_PABSWrm = 2379,
- MMX_PABSWrr = 2380,
- MMX_PACKSSDWrm = 2381,
- MMX_PACKSSDWrr = 2382,
- MMX_PACKSSWBrm = 2383,
- MMX_PACKSSWBrr = 2384,
- MMX_PACKUSWBrm = 2385,
- MMX_PACKUSWBrr = 2386,
- MMX_PADDBrm = 2387,
- MMX_PADDBrr = 2388,
- MMX_PADDDrm = 2389,
- MMX_PADDDrr = 2390,
- MMX_PADDQrm = 2391,
- MMX_PADDQrr = 2392,
- MMX_PADDSBrm = 2393,
- MMX_PADDSBrr = 2394,
- MMX_PADDSWrm = 2395,
- MMX_PADDSWrr = 2396,
- MMX_PADDUSBrm = 2397,
- MMX_PADDUSBrr = 2398,
- MMX_PADDUSWrm = 2399,
- MMX_PADDUSWrr = 2400,
- MMX_PADDWrm = 2401,
- MMX_PADDWrr = 2402,
- MMX_PALIGNRrmi = 2403,
- MMX_PALIGNRrri = 2404,
- MMX_PANDNrm = 2405,
- MMX_PANDNrr = 2406,
- MMX_PANDrm = 2407,
- MMX_PANDrr = 2408,
- MMX_PAVGBrm = 2409,
- MMX_PAVGBrr = 2410,
- MMX_PAVGWrm = 2411,
- MMX_PAVGWrr = 2412,
- MMX_PCMPEQBrm = 2413,
- MMX_PCMPEQBrr = 2414,
- MMX_PCMPEQDrm = 2415,
- MMX_PCMPEQDrr = 2416,
- MMX_PCMPEQWrm = 2417,
- MMX_PCMPEQWrr = 2418,
- MMX_PCMPGTBrm = 2419,
- MMX_PCMPGTBrr = 2420,
- MMX_PCMPGTDrm = 2421,
- MMX_PCMPGTDrr = 2422,
- MMX_PCMPGTWrm = 2423,
- MMX_PCMPGTWrr = 2424,
- MMX_PEXTRWrri = 2425,
- MMX_PHADDDrm = 2426,
- MMX_PHADDDrr = 2427,
- MMX_PHADDSWrm = 2428,
- MMX_PHADDSWrr = 2429,
- MMX_PHADDWrm = 2430,
- MMX_PHADDWrr = 2431,
- MMX_PHSUBDrm = 2432,
- MMX_PHSUBDrr = 2433,
- MMX_PHSUBSWrm = 2434,
- MMX_PHSUBSWrr = 2435,
- MMX_PHSUBWrm = 2436,
- MMX_PHSUBWrr = 2437,
- MMX_PINSRWrmi = 2438,
- MMX_PINSRWrri = 2439,
- MMX_PMADDUBSWrm = 2440,
- MMX_PMADDUBSWrr = 2441,
- MMX_PMADDWDrm = 2442,
- MMX_PMADDWDrr = 2443,
- MMX_PMAXSWrm = 2444,
- MMX_PMAXSWrr = 2445,
- MMX_PMAXUBrm = 2446,
- MMX_PMAXUBrr = 2447,
- MMX_PMINSWrm = 2448,
- MMX_PMINSWrr = 2449,
- MMX_PMINUBrm = 2450,
- MMX_PMINUBrr = 2451,
- MMX_PMOVMSKBrr = 2452,
- MMX_PMULHRSWrm = 2453,
- MMX_PMULHRSWrr = 2454,
- MMX_PMULHUWrm = 2455,
- MMX_PMULHUWrr = 2456,
- MMX_PMULHWrm = 2457,
- MMX_PMULHWrr = 2458,
- MMX_PMULLWrm = 2459,
- MMX_PMULLWrr = 2460,
- MMX_PMULUDQrm = 2461,
- MMX_PMULUDQrr = 2462,
- MMX_PORrm = 2463,
- MMX_PORrr = 2464,
- MMX_PSADBWrm = 2465,
- MMX_PSADBWrr = 2466,
- MMX_PSHUFBrm = 2467,
- MMX_PSHUFBrr = 2468,
- MMX_PSHUFWmi = 2469,
- MMX_PSHUFWri = 2470,
- MMX_PSIGNBrm = 2471,
- MMX_PSIGNBrr = 2472,
- MMX_PSIGNDrm = 2473,
- MMX_PSIGNDrr = 2474,
- MMX_PSIGNWrm = 2475,
- MMX_PSIGNWrr = 2476,
- MMX_PSLLDri = 2477,
- MMX_PSLLDrm = 2478,
- MMX_PSLLDrr = 2479,
- MMX_PSLLQri = 2480,
- MMX_PSLLQrm = 2481,
- MMX_PSLLQrr = 2482,
- MMX_PSLLWri = 2483,
- MMX_PSLLWrm = 2484,
- MMX_PSLLWrr = 2485,
- MMX_PSRADri = 2486,
- MMX_PSRADrm = 2487,
- MMX_PSRADrr = 2488,
- MMX_PSRAWri = 2489,
- MMX_PSRAWrm = 2490,
- MMX_PSRAWrr = 2491,
- MMX_PSRLDri = 2492,
- MMX_PSRLDrm = 2493,
- MMX_PSRLDrr = 2494,
- MMX_PSRLQri = 2495,
- MMX_PSRLQrm = 2496,
- MMX_PSRLQrr = 2497,
- MMX_PSRLWri = 2498,
- MMX_PSRLWrm = 2499,
- MMX_PSRLWrr = 2500,
- MMX_PSUBBrm = 2501,
- MMX_PSUBBrr = 2502,
- MMX_PSUBDrm = 2503,
- MMX_PSUBDrr = 2504,
- MMX_PSUBQrm = 2505,
- MMX_PSUBQrr = 2506,
- MMX_PSUBSBrm = 2507,
- MMX_PSUBSBrr = 2508,
- MMX_PSUBSWrm = 2509,
- MMX_PSUBSWrr = 2510,
- MMX_PSUBUSBrm = 2511,
- MMX_PSUBUSBrr = 2512,
- MMX_PSUBUSWrm = 2513,
- MMX_PSUBUSWrr = 2514,
- MMX_PSUBWrm = 2515,
- MMX_PSUBWrr = 2516,
- MMX_PUNPCKHBWrm = 2517,
- MMX_PUNPCKHBWrr = 2518,
- MMX_PUNPCKHDQrm = 2519,
- MMX_PUNPCKHDQrr = 2520,
- MMX_PUNPCKHWDrm = 2521,
- MMX_PUNPCKHWDrr = 2522,
- MMX_PUNPCKLBWrm = 2523,
- MMX_PUNPCKLBWrr = 2524,
- MMX_PUNPCKLDQrm = 2525,
- MMX_PUNPCKLDQrr = 2526,
- MMX_PUNPCKLWDrm = 2527,
- MMX_PUNPCKLWDrr = 2528,
- MMX_PXORrm = 2529,
- MMX_PXORrr = 2530,
- MONITOR32rrr = 2531,
- MONITOR64rrr = 2532,
- MONITORX32rrr = 2533,
- MONITORX64rrr = 2534,
- MONTMUL = 2535,
- MOV16ao16 = 2536,
- MOV16ao32 = 2537,
- MOV16ao64 = 2538,
- MOV16mi = 2539,
- MOV16mr = 2540,
- MOV16ms = 2541,
- MOV16o16a = 2542,
- MOV16o32a = 2543,
- MOV16o64a = 2544,
- MOV16ri = 2545,
- MOV16ri_alt = 2546,
- MOV16rm = 2547,
- MOV16rr = 2548,
- MOV16rr_REV = 2549,
- MOV16rs = 2550,
- MOV16sm = 2551,
- MOV16sr = 2552,
- MOV32ao16 = 2553,
- MOV32ao32 = 2554,
- MOV32ao64 = 2555,
- MOV32cr = 2556,
- MOV32dr = 2557,
- MOV32mi = 2558,
- MOV32mr = 2559,
- MOV32o16a = 2560,
- MOV32o32a = 2561,
- MOV32o64a = 2562,
- MOV32rc = 2563,
- MOV32rd = 2564,
- MOV32ri = 2565,
- MOV32ri_alt = 2566,
- MOV32rm = 2567,
- MOV32rr = 2568,
- MOV32rr_REV = 2569,
- MOV32rs = 2570,
- MOV32sr = 2571,
- MOV64ao32 = 2572,
- MOV64ao64 = 2573,
- MOV64cr = 2574,
- MOV64dr = 2575,
- MOV64mi32 = 2576,
- MOV64mr = 2577,
- MOV64o32a = 2578,
- MOV64o64a = 2579,
- MOV64rc = 2580,
- MOV64rd = 2581,
- MOV64ri = 2582,
- MOV64ri32 = 2583,
- MOV64rm = 2584,
- MOV64rr = 2585,
- MOV64rr_REV = 2586,
- MOV64rs = 2587,
- MOV64sr = 2588,
- MOV64toPQIrm = 2589,
- MOV64toPQIrr = 2590,
- MOV64toSDrr = 2591,
- MOV8ao16 = 2592,
- MOV8ao32 = 2593,
- MOV8ao64 = 2594,
- MOV8mi = 2595,
- MOV8mr = 2596,
- MOV8mr_NOREX = 2597,
- MOV8o16a = 2598,
- MOV8o32a = 2599,
- MOV8o64a = 2600,
- MOV8ri = 2601,
- MOV8ri_alt = 2602,
- MOV8rm = 2603,
- MOV8rm_NOREX = 2604,
- MOV8rr = 2605,
- MOV8rr_NOREX = 2606,
- MOV8rr_REV = 2607,
- MOVAPDmr = 2608,
- MOVAPDrm = 2609,
- MOVAPDrr = 2610,
- MOVAPDrr_REV = 2611,
- MOVAPSmr = 2612,
- MOVAPSrm = 2613,
- MOVAPSrr = 2614,
- MOVAPSrr_REV = 2615,
- MOVBE16mr = 2616,
- MOVBE16mr_EVEX = 2617,
- MOVBE16rm = 2618,
- MOVBE16rm_EVEX = 2619,
- MOVBE16rr = 2620,
- MOVBE16rr_REV = 2621,
- MOVBE32mr = 2622,
- MOVBE32mr_EVEX = 2623,
- MOVBE32rm = 2624,
- MOVBE32rm_EVEX = 2625,
- MOVBE32rr = 2626,
- MOVBE32rr_REV = 2627,
- MOVBE64mr = 2628,
- MOVBE64mr_EVEX = 2629,
- MOVBE64rm = 2630,
- MOVBE64rm_EVEX = 2631,
- MOVBE64rr = 2632,
- MOVBE64rr_REV = 2633,
- MOVDDUPrm = 2634,
- MOVDDUPrr = 2635,
- MOVDI2PDIrm = 2636,
- MOVDI2PDIrr = 2637,
- MOVDI2SSrr = 2638,
- MOVDIR64B16 = 2639,
- MOVDIR64B32 = 2640,
- MOVDIR64B32_EVEX = 2641,
- MOVDIR64B64 = 2642,
- MOVDIR64B64_EVEX = 2643,
- MOVDIRI32 = 2644,
- MOVDIRI32_EVEX = 2645,
- MOVDIRI64 = 2646,
- MOVDIRI64_EVEX = 2647,
- MOVDQAmr = 2648,
- MOVDQArm = 2649,
- MOVDQArr = 2650,
- MOVDQArr_REV = 2651,
- MOVDQUmr = 2652,
- MOVDQUrm = 2653,
- MOVDQUrr = 2654,
- MOVDQUrr_REV = 2655,
- MOVHLPSrr = 2656,
- MOVHPDmr = 2657,
- MOVHPDrm = 2658,
- MOVHPSmr = 2659,
- MOVHPSrm = 2660,
- MOVLHPSrr = 2661,
- MOVLPDmr = 2662,
- MOVLPDrm = 2663,
- MOVLPSmr = 2664,
- MOVLPSrm = 2665,
- MOVMSKPDrr = 2666,
- MOVMSKPSrr = 2667,
- MOVNTDQArm = 2668,
- MOVNTDQmr = 2669,
- MOVNTI_64mr = 2670,
- MOVNTImr = 2671,
- MOVNTPDmr = 2672,
- MOVNTPSmr = 2673,
- MOVNTSD = 2674,
- MOVNTSS = 2675,
- MOVPC32r = 2676,
- MOVPDI2DImr = 2677,
- MOVPDI2DIrr = 2678,
- MOVPQI2QImr = 2679,
- MOVPQI2QIrr = 2680,
- MOVPQIto64mr = 2681,
- MOVPQIto64rr = 2682,
- MOVQI2PQIrm = 2683,
- MOVRS16rm = 2684,
- MOVRS16rm_EVEX = 2685,
- MOVRS32rm = 2686,
- MOVRS32rm_EVEX = 2687,
- MOVRS64rm = 2688,
- MOVRS64rm_EVEX = 2689,
- MOVRS8rm = 2690,
- MOVRS8rm_EVEX = 2691,
- MOVSB = 2692,
- MOVSDmr = 2693,
- MOVSDrm = 2694,
- MOVSDrm_alt = 2695,
- MOVSDrr = 2696,
- MOVSDrr_REV = 2697,
- MOVSDto64rr = 2698,
- MOVSHDUPrm = 2699,
- MOVSHDUPrr = 2700,
- MOVSL = 2701,
- MOVSLDUPrm = 2702,
- MOVSLDUPrr = 2703,
- MOVSQ = 2704,
- MOVSS2DIrr = 2705,
- MOVSSmr = 2706,
- MOVSSrm = 2707,
- MOVSSrm_alt = 2708,
- MOVSSrr = 2709,
- MOVSSrr_REV = 2710,
- MOVSW = 2711,
- MOVSX16rm16 = 2712,
- MOVSX16rm32 = 2713,
- MOVSX16rm8 = 2714,
- MOVSX16rr16 = 2715,
- MOVSX16rr32 = 2716,
- MOVSX16rr8 = 2717,
- MOVSX32rm16 = 2718,
- MOVSX32rm32 = 2719,
- MOVSX32rm8 = 2720,
- MOVSX32rm8_NOREX = 2721,
- MOVSX32rr16 = 2722,
- MOVSX32rr32 = 2723,
- MOVSX32rr8 = 2724,
- MOVSX32rr8_NOREX = 2725,
- MOVSX64rm16 = 2726,
- MOVSX64rm32 = 2727,
- MOVSX64rm8 = 2728,
- MOVSX64rr16 = 2729,
- MOVSX64rr32 = 2730,
- MOVSX64rr8 = 2731,
- MOVUPDmr = 2732,
- MOVUPDrm = 2733,
- MOVUPDrr = 2734,
- MOVUPDrr_REV = 2735,
- MOVUPSmr = 2736,
- MOVUPSrm = 2737,
- MOVUPSrr = 2738,
- MOVUPSrr_REV = 2739,
- MOVZPQILo2PQIrr = 2740,
- MOVZX16rm16 = 2741,
- MOVZX16rm8 = 2742,
- MOVZX16rr16 = 2743,
- MOVZX16rr8 = 2744,
- MOVZX32rm16 = 2745,
- MOVZX32rm8 = 2746,
- MOVZX32rm8_NOREX = 2747,
- MOVZX32rr16 = 2748,
- MOVZX32rr8 = 2749,
- MOVZX32rr8_NOREX = 2750,
- MOVZX64rm16 = 2751,
- MOVZX64rm8 = 2752,
- MOVZX64rr16 = 2753,
- MOVZX64rr8 = 2754,
- MPSADBWrmi = 2755,
- MPSADBWrri = 2756,
- MUL16m = 2757,
- MUL16m_EVEX = 2758,
- MUL16m_NF = 2759,
- MUL16r = 2760,
- MUL16r_EVEX = 2761,
- MUL16r_NF = 2762,
- MUL32m = 2763,
- MUL32m_EVEX = 2764,
- MUL32m_NF = 2765,
- MUL32r = 2766,
- MUL32r_EVEX = 2767,
- MUL32r_NF = 2768,
- MUL64m = 2769,
- MUL64m_EVEX = 2770,
- MUL64m_NF = 2771,
- MUL64r = 2772,
- MUL64r_EVEX = 2773,
- MUL64r_NF = 2774,
- MUL8m = 2775,
- MUL8m_EVEX = 2776,
- MUL8m_NF = 2777,
- MUL8r = 2778,
- MUL8r_EVEX = 2779,
- MUL8r_NF = 2780,
- MULPDrm = 2781,
- MULPDrr = 2782,
- MULPSrm = 2783,
- MULPSrr = 2784,
- MULSDrm = 2785,
- MULSDrm_Int = 2786,
- MULSDrr = 2787,
- MULSDrr_Int = 2788,
- MULSSrm = 2789,
- MULSSrm_Int = 2790,
- MULSSrr = 2791,
- MULSSrr_Int = 2792,
- MULX32Hrm = 2793,
- MULX32Hrr = 2794,
- MULX32rm = 2795,
- MULX32rm_EVEX = 2796,
- MULX32rr = 2797,
- MULX32rr_EVEX = 2798,
- MULX64Hrm = 2799,
- MULX64Hrr = 2800,
- MULX64rm = 2801,
- MULX64rm_EVEX = 2802,
- MULX64rr = 2803,
- MULX64rr_EVEX = 2804,
- MUL_F32m = 2805,
- MUL_F64m = 2806,
- MUL_FI16m = 2807,
- MUL_FI32m = 2808,
- MUL_FPrST0 = 2809,
- MUL_FST0r = 2810,
- MUL_Fp32 = 2811,
- MUL_Fp32m = 2812,
- MUL_Fp64 = 2813,
- MUL_Fp64m = 2814,
- MUL_Fp64m32 = 2815,
- MUL_Fp80 = 2816,
- MUL_Fp80m32 = 2817,
- MUL_Fp80m64 = 2818,
- MUL_FpI16m32 = 2819,
- MUL_FpI16m64 = 2820,
- MUL_FpI16m80 = 2821,
- MUL_FpI32m32 = 2822,
- MUL_FpI32m64 = 2823,
- MUL_FpI32m80 = 2824,
- MUL_FrST0 = 2825,
- MWAITXrrr = 2826,
- MWAITrr = 2827,
- NEG16m = 2828,
- NEG16m_EVEX = 2829,
- NEG16m_ND = 2830,
- NEG16m_NF = 2831,
- NEG16m_NF_ND = 2832,
- NEG16r = 2833,
- NEG16r_EVEX = 2834,
- NEG16r_ND = 2835,
- NEG16r_NF = 2836,
- NEG16r_NF_ND = 2837,
- NEG32m = 2838,
- NEG32m_EVEX = 2839,
- NEG32m_ND = 2840,
- NEG32m_NF = 2841,
- NEG32m_NF_ND = 2842,
- NEG32r = 2843,
- NEG32r_EVEX = 2844,
- NEG32r_ND = 2845,
- NEG32r_NF = 2846,
- NEG32r_NF_ND = 2847,
- NEG64m = 2848,
- NEG64m_EVEX = 2849,
- NEG64m_ND = 2850,
- NEG64m_NF = 2851,
- NEG64m_NF_ND = 2852,
- NEG64r = 2853,
- NEG64r_EVEX = 2854,
- NEG64r_ND = 2855,
- NEG64r_NF = 2856,
- NEG64r_NF_ND = 2857,
- NEG8m = 2858,
- NEG8m_EVEX = 2859,
- NEG8m_ND = 2860,
- NEG8m_NF = 2861,
- NEG8m_NF_ND = 2862,
- NEG8r = 2863,
- NEG8r_EVEX = 2864,
- NEG8r_ND = 2865,
- NEG8r_NF = 2866,
- NEG8r_NF_ND = 2867,
- NOOP = 2868,
- NOOPL = 2869,
- NOOPLr = 2870,
- NOOPQ = 2871,
- NOOPQr = 2872,
- NOOPW = 2873,
- NOOPWr = 2874,
- NOT16m = 2875,
- NOT16m_EVEX = 2876,
- NOT16m_ND = 2877,
- NOT16r = 2878,
- NOT16r_EVEX = 2879,
- NOT16r_ND = 2880,
- NOT32m = 2881,
- NOT32m_EVEX = 2882,
- NOT32m_ND = 2883,
- NOT32r = 2884,
- NOT32r_EVEX = 2885,
- NOT32r_ND = 2886,
- NOT64m = 2887,
- NOT64m_EVEX = 2888,
- NOT64m_ND = 2889,
- NOT64r = 2890,
- NOT64r_EVEX = 2891,
- NOT64r_ND = 2892,
- NOT8m = 2893,
- NOT8m_EVEX = 2894,
- NOT8m_ND = 2895,
- NOT8r = 2896,
- NOT8r_EVEX = 2897,
- NOT8r_ND = 2898,
- OR16i16 = 2899,
- OR16mi = 2900,
- OR16mi8 = 2901,
- OR16mi8_EVEX = 2902,
- OR16mi8_ND = 2903,
- OR16mi8_NF = 2904,
- OR16mi8_NF_ND = 2905,
- OR16mi_EVEX = 2906,
- OR16mi_ND = 2907,
- OR16mi_NF = 2908,
- OR16mi_NF_ND = 2909,
- OR16mr = 2910,
- OR16mr_EVEX = 2911,
- OR16mr_ND = 2912,
- OR16mr_NF = 2913,
- OR16mr_NF_ND = 2914,
- OR16ri = 2915,
- OR16ri8 = 2916,
- OR16ri8_EVEX = 2917,
- OR16ri8_ND = 2918,
- OR16ri8_NF = 2919,
- OR16ri8_NF_ND = 2920,
- OR16ri_EVEX = 2921,
- OR16ri_ND = 2922,
- OR16ri_NF = 2923,
- OR16ri_NF_ND = 2924,
- OR16rm = 2925,
- OR16rm_EVEX = 2926,
- OR16rm_ND = 2927,
- OR16rm_NF = 2928,
- OR16rm_NF_ND = 2929,
- OR16rr = 2930,
- OR16rr_EVEX = 2931,
- OR16rr_EVEX_REV = 2932,
- OR16rr_ND = 2933,
- OR16rr_ND_REV = 2934,
- OR16rr_NF = 2935,
- OR16rr_NF_ND = 2936,
- OR16rr_NF_ND_REV = 2937,
- OR16rr_NF_REV = 2938,
- OR16rr_REV = 2939,
- OR32i32 = 2940,
- OR32mi = 2941,
- OR32mi8 = 2942,
- OR32mi8Locked = 2943,
- OR32mi8_EVEX = 2944,
- OR32mi8_ND = 2945,
- OR32mi8_NF = 2946,
- OR32mi8_NF_ND = 2947,
- OR32mi_EVEX = 2948,
- OR32mi_ND = 2949,
- OR32mi_NF = 2950,
- OR32mi_NF_ND = 2951,
- OR32mr = 2952,
- OR32mr_EVEX = 2953,
- OR32mr_ND = 2954,
- OR32mr_NF = 2955,
- OR32mr_NF_ND = 2956,
- OR32ri = 2957,
- OR32ri8 = 2958,
- OR32ri8_EVEX = 2959,
- OR32ri8_ND = 2960,
- OR32ri8_NF = 2961,
- OR32ri8_NF_ND = 2962,
- OR32ri_EVEX = 2963,
- OR32ri_ND = 2964,
- OR32ri_NF = 2965,
- OR32ri_NF_ND = 2966,
- OR32rm = 2967,
- OR32rm_EVEX = 2968,
- OR32rm_ND = 2969,
- OR32rm_NF = 2970,
- OR32rm_NF_ND = 2971,
- OR32rr = 2972,
- OR32rr_EVEX = 2973,
- OR32rr_EVEX_REV = 2974,
- OR32rr_ND = 2975,
- OR32rr_ND_REV = 2976,
- OR32rr_NF = 2977,
- OR32rr_NF_ND = 2978,
- OR32rr_NF_ND_REV = 2979,
- OR32rr_NF_REV = 2980,
- OR32rr_REV = 2981,
- OR64i32 = 2982,
- OR64mi32 = 2983,
- OR64mi32_EVEX = 2984,
- OR64mi32_ND = 2985,
- OR64mi32_NF = 2986,
- OR64mi32_NF_ND = 2987,
- OR64mi8 = 2988,
- OR64mi8_EVEX = 2989,
- OR64mi8_ND = 2990,
- OR64mi8_NF = 2991,
- OR64mi8_NF_ND = 2992,
- OR64mr = 2993,
- OR64mr_EVEX = 2994,
- OR64mr_ND = 2995,
- OR64mr_NF = 2996,
- OR64mr_NF_ND = 2997,
- OR64ri32 = 2998,
- OR64ri32_EVEX = 2999,
- OR64ri32_ND = 3000,
- OR64ri32_NF = 3001,
- OR64ri32_NF_ND = 3002,
- OR64ri8 = 3003,
- OR64ri8_EVEX = 3004,
- OR64ri8_ND = 3005,
- OR64ri8_NF = 3006,
- OR64ri8_NF_ND = 3007,
- OR64rm = 3008,
- OR64rm_EVEX = 3009,
- OR64rm_ND = 3010,
- OR64rm_NF = 3011,
- OR64rm_NF_ND = 3012,
- OR64rr = 3013,
- OR64rr_EVEX = 3014,
- OR64rr_EVEX_REV = 3015,
- OR64rr_ND = 3016,
- OR64rr_ND_REV = 3017,
- OR64rr_NF = 3018,
- OR64rr_NF_ND = 3019,
- OR64rr_NF_ND_REV = 3020,
- OR64rr_NF_REV = 3021,
- OR64rr_REV = 3022,
- OR8i8 = 3023,
- OR8mi = 3024,
- OR8mi8 = 3025,
- OR8mi_EVEX = 3026,
- OR8mi_ND = 3027,
- OR8mi_NF = 3028,
- OR8mi_NF_ND = 3029,
- OR8mr = 3030,
- OR8mr_EVEX = 3031,
- OR8mr_ND = 3032,
- OR8mr_NF = 3033,
- OR8mr_NF_ND = 3034,
- OR8ri = 3035,
- OR8ri8 = 3036,
- OR8ri_EVEX = 3037,
- OR8ri_ND = 3038,
- OR8ri_NF = 3039,
- OR8ri_NF_ND = 3040,
- OR8rm = 3041,
- OR8rm_EVEX = 3042,
- OR8rm_ND = 3043,
- OR8rm_NF = 3044,
- OR8rm_NF_ND = 3045,
- OR8rr = 3046,
- OR8rr_EVEX = 3047,
- OR8rr_EVEX_REV = 3048,
- OR8rr_ND = 3049,
- OR8rr_ND_REV = 3050,
- OR8rr_NF = 3051,
- OR8rr_NF_ND = 3052,
- OR8rr_NF_ND_REV = 3053,
- OR8rr_NF_REV = 3054,
- OR8rr_REV = 3055,
- ORPDrm = 3056,
- ORPDrr = 3057,
- ORPSrm = 3058,
- ORPSrr = 3059,
- OUT16ir = 3060,
- OUT16rr = 3061,
- OUT32ir = 3062,
- OUT32rr = 3063,
- OUT8ir = 3064,
- OUT8rr = 3065,
- OUTSB = 3066,
- OUTSL = 3067,
- OUTSW = 3068,
- PABSBrm = 3069,
- PABSBrr = 3070,
- PABSDrm = 3071,
- PABSDrr = 3072,
- PABSWrm = 3073,
- PABSWrr = 3074,
- PACKSSDWrm = 3075,
- PACKSSDWrr = 3076,
- PACKSSWBrm = 3077,
- PACKSSWBrr = 3078,
- PACKUSDWrm = 3079,
- PACKUSDWrr = 3080,
- PACKUSWBrm = 3081,
- PACKUSWBrr = 3082,
- PADDBrm = 3083,
- PADDBrr = 3084,
- PADDDrm = 3085,
- PADDDrr = 3086,
- PADDQrm = 3087,
- PADDQrr = 3088,
- PADDSBrm = 3089,
- PADDSBrr = 3090,
- PADDSWrm = 3091,
- PADDSWrr = 3092,
- PADDUSBrm = 3093,
- PADDUSBrr = 3094,
- PADDUSWrm = 3095,
- PADDUSWrr = 3096,
- PADDWrm = 3097,
- PADDWrr = 3098,
- PALIGNRrmi = 3099,
- PALIGNRrri = 3100,
- PANDNrm = 3101,
- PANDNrr = 3102,
- PANDrm = 3103,
- PANDrr = 3104,
- PAUSE = 3105,
- PAVGBrm = 3106,
- PAVGBrr = 3107,
- PAVGUSBrm = 3108,
- PAVGUSBrr = 3109,
- PAVGWrm = 3110,
- PAVGWrr = 3111,
- PBLENDVBrm0 = 3112,
- PBLENDVBrr0 = 3113,
- PBLENDWrmi = 3114,
- PBLENDWrri = 3115,
- PBNDKB = 3116,
- PCLMULQDQrmi = 3117,
- PCLMULQDQrri = 3118,
- PCMPEQBrm = 3119,
- PCMPEQBrr = 3120,
- PCMPEQDrm = 3121,
- PCMPEQDrr = 3122,
- PCMPEQQrm = 3123,
- PCMPEQQrr = 3124,
- PCMPEQWrm = 3125,
- PCMPEQWrr = 3126,
- PCMPESTRIrmi = 3127,
- PCMPESTRIrri = 3128,
- PCMPESTRMrmi = 3129,
- PCMPESTRMrri = 3130,
- PCMPGTBrm = 3131,
- PCMPGTBrr = 3132,
- PCMPGTDrm = 3133,
- PCMPGTDrr = 3134,
- PCMPGTQrm = 3135,
- PCMPGTQrr = 3136,
- PCMPGTWrm = 3137,
- PCMPGTWrr = 3138,
- PCMPISTRIrmi = 3139,
- PCMPISTRIrri = 3140,
- PCMPISTRMrmi = 3141,
- PCMPISTRMrri = 3142,
- PCONFIG = 3143,
- PDEP32rm = 3144,
- PDEP32rm_EVEX = 3145,
- PDEP32rr = 3146,
- PDEP32rr_EVEX = 3147,
- PDEP64rm = 3148,
- PDEP64rm_EVEX = 3149,
- PDEP64rr = 3150,
- PDEP64rr_EVEX = 3151,
- PEXT32rm = 3152,
- PEXT32rm_EVEX = 3153,
- PEXT32rr = 3154,
- PEXT32rr_EVEX = 3155,
- PEXT64rm = 3156,
- PEXT64rm_EVEX = 3157,
- PEXT64rr = 3158,
- PEXT64rr_EVEX = 3159,
- PEXTRBmri = 3160,
- PEXTRBrri = 3161,
- PEXTRDmri = 3162,
- PEXTRDrri = 3163,
- PEXTRQmri = 3164,
- PEXTRQrri = 3165,
- PEXTRWmri = 3166,
- PEXTRWrri = 3167,
- PEXTRWrri_REV = 3168,
- PF2IDrm = 3169,
- PF2IDrr = 3170,
- PF2IWrm = 3171,
- PF2IWrr = 3172,
- PFACCrm = 3173,
- PFACCrr = 3174,
- PFADDrm = 3175,
- PFADDrr = 3176,
- PFCMPEQrm = 3177,
- PFCMPEQrr = 3178,
- PFCMPGErm = 3179,
- PFCMPGErr = 3180,
- PFCMPGTrm = 3181,
- PFCMPGTrr = 3182,
- PFMAXrm = 3183,
- PFMAXrr = 3184,
- PFMINrm = 3185,
- PFMINrr = 3186,
- PFMULrm = 3187,
- PFMULrr = 3188,
- PFNACCrm = 3189,
- PFNACCrr = 3190,
- PFPNACCrm = 3191,
- PFPNACCrr = 3192,
- PFRCPIT1rm = 3193,
- PFRCPIT1rr = 3194,
- PFRCPIT2rm = 3195,
- PFRCPIT2rr = 3196,
- PFRCPrm = 3197,
- PFRCPrr = 3198,
- PFRSQIT1rm = 3199,
- PFRSQIT1rr = 3200,
- PFRSQRTrm = 3201,
- PFRSQRTrr = 3202,
- PFSUBRrm = 3203,
- PFSUBRrr = 3204,
- PFSUBrm = 3205,
- PFSUBrr = 3206,
- PHADDDrm = 3207,
- PHADDDrr = 3208,
- PHADDSWrm = 3209,
- PHADDSWrr = 3210,
- PHADDWrm = 3211,
- PHADDWrr = 3212,
- PHMINPOSUWrm = 3213,
- PHMINPOSUWrr = 3214,
- PHSUBDrm = 3215,
- PHSUBDrr = 3216,
- PHSUBSWrm = 3217,
- PHSUBSWrr = 3218,
- PHSUBWrm = 3219,
- PHSUBWrr = 3220,
- PI2FDrm = 3221,
- PI2FDrr = 3222,
- PI2FWrm = 3223,
- PI2FWrr = 3224,
- PINSRBrmi = 3225,
- PINSRBrri = 3226,
- PINSRDrmi = 3227,
- PINSRDrri = 3228,
- PINSRQrmi = 3229,
- PINSRQrri = 3230,
- PINSRWrmi = 3231,
- PINSRWrri = 3232,
- PMADDUBSWrm = 3233,
- PMADDUBSWrr = 3234,
- PMADDWDrm = 3235,
- PMADDWDrr = 3236,
- PMAXSBrm = 3237,
- PMAXSBrr = 3238,
- PMAXSDrm = 3239,
- PMAXSDrr = 3240,
- PMAXSWrm = 3241,
- PMAXSWrr = 3242,
- PMAXUBrm = 3243,
- PMAXUBrr = 3244,
- PMAXUDrm = 3245,
- PMAXUDrr = 3246,
- PMAXUWrm = 3247,
- PMAXUWrr = 3248,
- PMINSBrm = 3249,
- PMINSBrr = 3250,
- PMINSDrm = 3251,
- PMINSDrr = 3252,
- PMINSWrm = 3253,
- PMINSWrr = 3254,
- PMINUBrm = 3255,
- PMINUBrr = 3256,
- PMINUDrm = 3257,
- PMINUDrr = 3258,
- PMINUWrm = 3259,
- PMINUWrr = 3260,
- PMOVMSKBrr = 3261,
- PMOVSXBDrm = 3262,
- PMOVSXBDrr = 3263,
- PMOVSXBQrm = 3264,
- PMOVSXBQrr = 3265,
- PMOVSXBWrm = 3266,
- PMOVSXBWrr = 3267,
- PMOVSXDQrm = 3268,
- PMOVSXDQrr = 3269,
- PMOVSXWDrm = 3270,
- PMOVSXWDrr = 3271,
- PMOVSXWQrm = 3272,
- PMOVSXWQrr = 3273,
- PMOVZXBDrm = 3274,
- PMOVZXBDrr = 3275,
- PMOVZXBQrm = 3276,
- PMOVZXBQrr = 3277,
- PMOVZXBWrm = 3278,
- PMOVZXBWrr = 3279,
- PMOVZXDQrm = 3280,
- PMOVZXDQrr = 3281,
- PMOVZXWDrm = 3282,
- PMOVZXWDrr = 3283,
- PMOVZXWQrm = 3284,
- PMOVZXWQrr = 3285,
- PMULDQrm = 3286,
- PMULDQrr = 3287,
- PMULHRSWrm = 3288,
- PMULHRSWrr = 3289,
- PMULHRWrm = 3290,
- PMULHRWrr = 3291,
- PMULHUWrm = 3292,
- PMULHUWrr = 3293,
- PMULHWrm = 3294,
- PMULHWrr = 3295,
- PMULLDrm = 3296,
- PMULLDrr = 3297,
- PMULLWrm = 3298,
- PMULLWrr = 3299,
- PMULUDQrm = 3300,
- PMULUDQrr = 3301,
- POP16r = 3302,
- POP16rmm = 3303,
- POP16rmr = 3304,
- POP2 = 3305,
- POP2P = 3306,
- POP32r = 3307,
- POP32rmm = 3308,
- POP32rmr = 3309,
- POP64r = 3310,
- POP64rmm = 3311,
- POP64rmr = 3312,
- POPA16 = 3313,
- POPA32 = 3314,
- POPCNT16rm = 3315,
- POPCNT16rm_EVEX = 3316,
- POPCNT16rm_NF = 3317,
- POPCNT16rr = 3318,
- POPCNT16rr_EVEX = 3319,
- POPCNT16rr_NF = 3320,
- POPCNT32rm = 3321,
- POPCNT32rm_EVEX = 3322,
- POPCNT32rm_NF = 3323,
- POPCNT32rr = 3324,
- POPCNT32rr_EVEX = 3325,
- POPCNT32rr_NF = 3326,
- POPCNT64rm = 3327,
- POPCNT64rm_EVEX = 3328,
- POPCNT64rm_NF = 3329,
- POPCNT64rr = 3330,
- POPCNT64rr_EVEX = 3331,
- POPCNT64rr_NF = 3332,
- POPDS16 = 3333,
- POPDS32 = 3334,
- POPES16 = 3335,
- POPES32 = 3336,
- POPF16 = 3337,
- POPF32 = 3338,
- POPF64 = 3339,
- POPFS16 = 3340,
- POPFS32 = 3341,
- POPFS64 = 3342,
- POPGS16 = 3343,
- POPGS32 = 3344,
- POPGS64 = 3345,
- POPP64r = 3346,
- POPSS16 = 3347,
- POPSS32 = 3348,
- PORrm = 3349,
- PORrr = 3350,
- PREFETCH = 3351,
- PREFETCHIT0 = 3352,
- PREFETCHIT1 = 3353,
- PREFETCHNTA = 3354,
- PREFETCHRST2 = 3355,
- PREFETCHT0 = 3356,
- PREFETCHT1 = 3357,
- PREFETCHT2 = 3358,
- PREFETCHW = 3359,
- PREFETCHWT1 = 3360,
- PROBED_ALLOCA_32 = 3361,
- PROBED_ALLOCA_64 = 3362,
- PSADBWrm = 3363,
- PSADBWrr = 3364,
- PSHUFBrm = 3365,
- PSHUFBrr = 3366,
- PSHUFDmi = 3367,
- PSHUFDri = 3368,
- PSHUFHWmi = 3369,
- PSHUFHWri = 3370,
- PSHUFLWmi = 3371,
- PSHUFLWri = 3372,
- PSIGNBrm = 3373,
- PSIGNBrr = 3374,
- PSIGNDrm = 3375,
- PSIGNDrr = 3376,
- PSIGNWrm = 3377,
- PSIGNWrr = 3378,
- PSLLDQri = 3379,
- PSLLDri = 3380,
- PSLLDrm = 3381,
- PSLLDrr = 3382,
- PSLLQri = 3383,
- PSLLQrm = 3384,
- PSLLQrr = 3385,
- PSLLWri = 3386,
- PSLLWrm = 3387,
- PSLLWrr = 3388,
- PSMASH = 3389,
- PSRADri = 3390,
- PSRADrm = 3391,
- PSRADrr = 3392,
- PSRAWri = 3393,
- PSRAWrm = 3394,
- PSRAWrr = 3395,
- PSRLDQri = 3396,
- PSRLDri = 3397,
- PSRLDrm = 3398,
- PSRLDrr = 3399,
- PSRLQri = 3400,
- PSRLQrm = 3401,
- PSRLQrr = 3402,
- PSRLWri = 3403,
- PSRLWrm = 3404,
- PSRLWrr = 3405,
- PSUBBrm = 3406,
- PSUBBrr = 3407,
- PSUBDrm = 3408,
- PSUBDrr = 3409,
- PSUBQrm = 3410,
- PSUBQrr = 3411,
- PSUBSBrm = 3412,
- PSUBSBrr = 3413,
- PSUBSWrm = 3414,
- PSUBSWrr = 3415,
- PSUBUSBrm = 3416,
- PSUBUSBrr = 3417,
- PSUBUSWrm = 3418,
- PSUBUSWrr = 3419,
- PSUBWrm = 3420,
- PSUBWrr = 3421,
- PSWAPDrm = 3422,
- PSWAPDrr = 3423,
- PT2RPNTLVWZ0 = 3424,
- PT2RPNTLVWZ0RS = 3425,
- PT2RPNTLVWZ0RST1 = 3426,
- PT2RPNTLVWZ0T1 = 3427,
- PT2RPNTLVWZ1 = 3428,
- PT2RPNTLVWZ1RS = 3429,
- PT2RPNTLVWZ1RST1 = 3430,
- PT2RPNTLVWZ1T1 = 3431,
- PTCMMIMFP16PS = 3432,
- PTCMMIMFP16PSV = 3433,
- PTCMMRLFP16PS = 3434,
- PTCMMRLFP16PSV = 3435,
- PTCONJTCMMIMFP16PS = 3436,
- PTCONJTCMMIMFP16PSV = 3437,
- PTCONJTFP16 = 3438,
- PTCONJTFP16V = 3439,
- PTCVTROWD2PSrre = 3440,
- PTCVTROWD2PSrreV = 3441,
- PTCVTROWD2PSrri = 3442,
- PTCVTROWD2PSrriV = 3443,
- PTCVTROWPS2BF16Hrre = 3444,
- PTCVTROWPS2BF16HrreV = 3445,
- PTCVTROWPS2BF16Hrri = 3446,
- PTCVTROWPS2BF16HrriV = 3447,
- PTCVTROWPS2BF16Lrre = 3448,
- PTCVTROWPS2BF16LrreV = 3449,
- PTCVTROWPS2BF16Lrri = 3450,
- PTCVTROWPS2BF16LrriV = 3451,
- PTCVTROWPS2PHHrre = 3452,
- PTCVTROWPS2PHHrreV = 3453,
- PTCVTROWPS2PHHrri = 3454,
- PTCVTROWPS2PHHrriV = 3455,
- PTCVTROWPS2PHLrre = 3456,
- PTCVTROWPS2PHLrreV = 3457,
- PTCVTROWPS2PHLrri = 3458,
- PTCVTROWPS2PHLrriV = 3459,
- PTDPBF16PS = 3460,
- PTDPBF8PS = 3461,
- PTDPBF8PSV = 3462,
- PTDPBHF8PS = 3463,
- PTDPBHF8PSV = 3464,
- PTDPBSSD = 3465,
- PTDPBSUD = 3466,
- PTDPBUSD = 3467,
- PTDPBUUD = 3468,
- PTDPFP16PS = 3469,
- PTDPHBF8PS = 3470,
- PTDPHBF8PSV = 3471,
- PTDPHF8PS = 3472,
- PTDPHF8PSV = 3473,
- PTESTrm = 3474,
- PTESTrr = 3475,
- PTILELOADD = 3476,
- PTILELOADDRS = 3477,
- PTILELOADDRST1 = 3478,
- PTILELOADDT1 = 3479,
- PTILEMOVROWrre = 3480,
- PTILEMOVROWrreV = 3481,
- PTILEMOVROWrri = 3482,
- PTILEMOVROWrriV = 3483,
- PTILESTORED = 3484,
- PTILEZERO = 3485,
- PTMMULTF32PS = 3486,
- PTMMULTF32PSV = 3487,
- PTTCMMIMFP16PS = 3488,
- PTTCMMIMFP16PSV = 3489,
- PTTCMMRLFP16PS = 3490,
- PTTCMMRLFP16PSV = 3491,
- PTTDPBF16PS = 3492,
- PTTDPBF16PSV = 3493,
- PTTDPFP16PS = 3494,
- PTTDPFP16PSV = 3495,
- PTTMMULTF32PS = 3496,
- PTTMMULTF32PSV = 3497,
- PTTRANSPOSED = 3498,
- PTTRANSPOSEDV = 3499,
- PTWRITE64m = 3500,
- PTWRITE64r = 3501,
- PTWRITEm = 3502,
- PTWRITEr = 3503,
- PUNPCKHBWrm = 3504,
- PUNPCKHBWrr = 3505,
- PUNPCKHDQrm = 3506,
- PUNPCKHDQrr = 3507,
- PUNPCKHQDQrm = 3508,
- PUNPCKHQDQrr = 3509,
- PUNPCKHWDrm = 3510,
- PUNPCKHWDrr = 3511,
- PUNPCKLBWrm = 3512,
- PUNPCKLBWrr = 3513,
- PUNPCKLDQrm = 3514,
- PUNPCKLDQrr = 3515,
- PUNPCKLQDQrm = 3516,
- PUNPCKLQDQrr = 3517,
- PUNPCKLWDrm = 3518,
- PUNPCKLWDrr = 3519,
- PUSH16i = 3520,
- PUSH16i8 = 3521,
- PUSH16r = 3522,
- PUSH16rmm = 3523,
- PUSH16rmr = 3524,
- PUSH2 = 3525,
- PUSH2P = 3526,
- PUSH32i = 3527,
- PUSH32i8 = 3528,
- PUSH32r = 3529,
- PUSH32rmm = 3530,
- PUSH32rmr = 3531,
- PUSH64i32 = 3532,
- PUSH64i8 = 3533,
- PUSH64r = 3534,
- PUSH64rmm = 3535,
- PUSH64rmr = 3536,
- PUSHA16 = 3537,
- PUSHA32 = 3538,
- PUSHCS16 = 3539,
- PUSHCS32 = 3540,
- PUSHDS16 = 3541,
- PUSHDS32 = 3542,
- PUSHES16 = 3543,
- PUSHES32 = 3544,
- PUSHF16 = 3545,
- PUSHF32 = 3546,
- PUSHF64 = 3547,
- PUSHFS16 = 3548,
- PUSHFS32 = 3549,
- PUSHFS64 = 3550,
- PUSHGS16 = 3551,
- PUSHGS32 = 3552,
- PUSHGS64 = 3553,
- PUSHP64r = 3554,
- PUSHSS16 = 3555,
- PUSHSS32 = 3556,
- PVALIDATE32 = 3557,
- PVALIDATE64 = 3558,
- PXORrm = 3559,
- PXORrr = 3560,
- RCL16m1 = 3561,
- RCL16m1_EVEX = 3562,
- RCL16m1_ND = 3563,
- RCL16mCL = 3564,
- RCL16mCL_EVEX = 3565,
- RCL16mCL_ND = 3566,
- RCL16mi = 3567,
- RCL16mi_EVEX = 3568,
- RCL16mi_ND = 3569,
- RCL16r1 = 3570,
- RCL16r1_EVEX = 3571,
- RCL16r1_ND = 3572,
- RCL16rCL = 3573,
- RCL16rCL_EVEX = 3574,
- RCL16rCL_ND = 3575,
- RCL16ri = 3576,
- RCL16ri_EVEX = 3577,
- RCL16ri_ND = 3578,
- RCL32m1 = 3579,
- RCL32m1_EVEX = 3580,
- RCL32m1_ND = 3581,
- RCL32mCL = 3582,
- RCL32mCL_EVEX = 3583,
- RCL32mCL_ND = 3584,
- RCL32mi = 3585,
- RCL32mi_EVEX = 3586,
- RCL32mi_ND = 3587,
- RCL32r1 = 3588,
- RCL32r1_EVEX = 3589,
- RCL32r1_ND = 3590,
- RCL32rCL = 3591,
- RCL32rCL_EVEX = 3592,
- RCL32rCL_ND = 3593,
- RCL32ri = 3594,
- RCL32ri_EVEX = 3595,
- RCL32ri_ND = 3596,
- RCL64m1 = 3597,
- RCL64m1_EVEX = 3598,
- RCL64m1_ND = 3599,
- RCL64mCL = 3600,
- RCL64mCL_EVEX = 3601,
- RCL64mCL_ND = 3602,
- RCL64mi = 3603,
- RCL64mi_EVEX = 3604,
- RCL64mi_ND = 3605,
- RCL64r1 = 3606,
- RCL64r1_EVEX = 3607,
- RCL64r1_ND = 3608,
- RCL64rCL = 3609,
- RCL64rCL_EVEX = 3610,
- RCL64rCL_ND = 3611,
- RCL64ri = 3612,
- RCL64ri_EVEX = 3613,
- RCL64ri_ND = 3614,
- RCL8m1 = 3615,
- RCL8m1_EVEX = 3616,
- RCL8m1_ND = 3617,
- RCL8mCL = 3618,
- RCL8mCL_EVEX = 3619,
- RCL8mCL_ND = 3620,
- RCL8mi = 3621,
- RCL8mi_EVEX = 3622,
- RCL8mi_ND = 3623,
- RCL8r1 = 3624,
- RCL8r1_EVEX = 3625,
- RCL8r1_ND = 3626,
- RCL8rCL = 3627,
- RCL8rCL_EVEX = 3628,
- RCL8rCL_ND = 3629,
- RCL8ri = 3630,
- RCL8ri_EVEX = 3631,
- RCL8ri_ND = 3632,
- RCPPSm = 3633,
- RCPPSr = 3634,
- RCPSSm = 3635,
- RCPSSm_Int = 3636,
- RCPSSr = 3637,
- RCPSSr_Int = 3638,
- RCR16m1 = 3639,
- RCR16m1_EVEX = 3640,
- RCR16m1_ND = 3641,
- RCR16mCL = 3642,
- RCR16mCL_EVEX = 3643,
- RCR16mCL_ND = 3644,
- RCR16mi = 3645,
- RCR16mi_EVEX = 3646,
- RCR16mi_ND = 3647,
- RCR16r1 = 3648,
- RCR16r1_EVEX = 3649,
- RCR16r1_ND = 3650,
- RCR16rCL = 3651,
- RCR16rCL_EVEX = 3652,
- RCR16rCL_ND = 3653,
- RCR16ri = 3654,
- RCR16ri_EVEX = 3655,
- RCR16ri_ND = 3656,
- RCR32m1 = 3657,
- RCR32m1_EVEX = 3658,
- RCR32m1_ND = 3659,
- RCR32mCL = 3660,
- RCR32mCL_EVEX = 3661,
- RCR32mCL_ND = 3662,
- RCR32mi = 3663,
- RCR32mi_EVEX = 3664,
- RCR32mi_ND = 3665,
- RCR32r1 = 3666,
- RCR32r1_EVEX = 3667,
- RCR32r1_ND = 3668,
- RCR32rCL = 3669,
- RCR32rCL_EVEX = 3670,
- RCR32rCL_ND = 3671,
- RCR32ri = 3672,
- RCR32ri_EVEX = 3673,
- RCR32ri_ND = 3674,
- RCR64m1 = 3675,
- RCR64m1_EVEX = 3676,
- RCR64m1_ND = 3677,
- RCR64mCL = 3678,
- RCR64mCL_EVEX = 3679,
- RCR64mCL_ND = 3680,
- RCR64mi = 3681,
- RCR64mi_EVEX = 3682,
- RCR64mi_ND = 3683,
- RCR64r1 = 3684,
- RCR64r1_EVEX = 3685,
- RCR64r1_ND = 3686,
- RCR64rCL = 3687,
- RCR64rCL_EVEX = 3688,
- RCR64rCL_ND = 3689,
- RCR64ri = 3690,
- RCR64ri_EVEX = 3691,
- RCR64ri_ND = 3692,
- RCR8m1 = 3693,
- RCR8m1_EVEX = 3694,
- RCR8m1_ND = 3695,
- RCR8mCL = 3696,
- RCR8mCL_EVEX = 3697,
- RCR8mCL_ND = 3698,
- RCR8mi = 3699,
- RCR8mi_EVEX = 3700,
- RCR8mi_ND = 3701,
- RCR8r1 = 3702,
- RCR8r1_EVEX = 3703,
- RCR8r1_ND = 3704,
- RCR8rCL = 3705,
- RCR8rCL_EVEX = 3706,
- RCR8rCL_ND = 3707,
- RCR8ri = 3708,
- RCR8ri_EVEX = 3709,
- RCR8ri_ND = 3710,
- RDFSBASE = 3711,
- RDFSBASE64 = 3712,
- RDGSBASE = 3713,
- RDGSBASE64 = 3714,
- RDMSR = 3715,
- RDMSRLIST = 3716,
- RDMSRri = 3717,
- RDMSRri_EVEX = 3718,
- RDPID32 = 3719,
- RDPID64 = 3720,
- RDPKRUr = 3721,
- RDPMC = 3722,
- RDPRU = 3723,
- RDRAND16r = 3724,
- RDRAND32r = 3725,
- RDRAND64r = 3726,
- RDSEED16r = 3727,
- RDSEED32r = 3728,
- RDSEED64r = 3729,
- RDSSPD = 3730,
- RDSSPQ = 3731,
- RDTSC = 3732,
- RDTSCP = 3733,
- REPNE_PREFIX = 3734,
- REP_MOVSB_32 = 3735,
- REP_MOVSB_64 = 3736,
- REP_MOVSD_32 = 3737,
- REP_MOVSD_64 = 3738,
- REP_MOVSQ_32 = 3739,
- REP_MOVSQ_64 = 3740,
- REP_MOVSW_32 = 3741,
- REP_MOVSW_64 = 3742,
- REP_PREFIX = 3743,
- REP_STOSB_32 = 3744,
- REP_STOSB_64 = 3745,
- REP_STOSD_32 = 3746,
- REP_STOSD_64 = 3747,
- REP_STOSQ_32 = 3748,
- REP_STOSQ_64 = 3749,
- REP_STOSW_32 = 3750,
- REP_STOSW_64 = 3751,
- RET = 3752,
- RET16 = 3753,
- RET32 = 3754,
- RET64 = 3755,
- RETI16 = 3756,
- RETI32 = 3757,
- RETI64 = 3758,
- REX64_PREFIX = 3759,
- RMPADJUST = 3760,
- RMPQUERY = 3761,
- RMPUPDATE = 3762,
- ROL16m1 = 3763,
- ROL16m1_EVEX = 3764,
- ROL16m1_ND = 3765,
- ROL16m1_NF = 3766,
- ROL16m1_NF_ND = 3767,
- ROL16mCL = 3768,
- ROL16mCL_EVEX = 3769,
- ROL16mCL_ND = 3770,
- ROL16mCL_NF = 3771,
- ROL16mCL_NF_ND = 3772,
- ROL16mi = 3773,
- ROL16mi_EVEX = 3774,
- ROL16mi_ND = 3775,
- ROL16mi_NF = 3776,
- ROL16mi_NF_ND = 3777,
- ROL16r1 = 3778,
- ROL16r1_EVEX = 3779,
- ROL16r1_ND = 3780,
- ROL16r1_NF = 3781,
- ROL16r1_NF_ND = 3782,
- ROL16rCL = 3783,
- ROL16rCL_EVEX = 3784,
- ROL16rCL_ND = 3785,
- ROL16rCL_NF = 3786,
- ROL16rCL_NF_ND = 3787,
- ROL16ri = 3788,
- ROL16ri_EVEX = 3789,
- ROL16ri_ND = 3790,
- ROL16ri_NF = 3791,
- ROL16ri_NF_ND = 3792,
- ROL32m1 = 3793,
- ROL32m1_EVEX = 3794,
- ROL32m1_ND = 3795,
- ROL32m1_NF = 3796,
- ROL32m1_NF_ND = 3797,
- ROL32mCL = 3798,
- ROL32mCL_EVEX = 3799,
- ROL32mCL_ND = 3800,
- ROL32mCL_NF = 3801,
- ROL32mCL_NF_ND = 3802,
- ROL32mi = 3803,
- ROL32mi_EVEX = 3804,
- ROL32mi_ND = 3805,
- ROL32mi_NF = 3806,
- ROL32mi_NF_ND = 3807,
- ROL32r1 = 3808,
- ROL32r1_EVEX = 3809,
- ROL32r1_ND = 3810,
- ROL32r1_NF = 3811,
- ROL32r1_NF_ND = 3812,
- ROL32rCL = 3813,
- ROL32rCL_EVEX = 3814,
- ROL32rCL_ND = 3815,
- ROL32rCL_NF = 3816,
- ROL32rCL_NF_ND = 3817,
- ROL32ri = 3818,
- ROL32ri_EVEX = 3819,
- ROL32ri_ND = 3820,
- ROL32ri_NF = 3821,
- ROL32ri_NF_ND = 3822,
- ROL64m1 = 3823,
- ROL64m1_EVEX = 3824,
- ROL64m1_ND = 3825,
- ROL64m1_NF = 3826,
- ROL64m1_NF_ND = 3827,
- ROL64mCL = 3828,
- ROL64mCL_EVEX = 3829,
- ROL64mCL_ND = 3830,
- ROL64mCL_NF = 3831,
- ROL64mCL_NF_ND = 3832,
- ROL64mi = 3833,
- ROL64mi_EVEX = 3834,
- ROL64mi_ND = 3835,
- ROL64mi_NF = 3836,
- ROL64mi_NF_ND = 3837,
- ROL64r1 = 3838,
- ROL64r1_EVEX = 3839,
- ROL64r1_ND = 3840,
- ROL64r1_NF = 3841,
- ROL64r1_NF_ND = 3842,
- ROL64rCL = 3843,
- ROL64rCL_EVEX = 3844,
- ROL64rCL_ND = 3845,
- ROL64rCL_NF = 3846,
- ROL64rCL_NF_ND = 3847,
- ROL64ri = 3848,
- ROL64ri_EVEX = 3849,
- ROL64ri_ND = 3850,
- ROL64ri_NF = 3851,
- ROL64ri_NF_ND = 3852,
- ROL8m1 = 3853,
- ROL8m1_EVEX = 3854,
- ROL8m1_ND = 3855,
- ROL8m1_NF = 3856,
- ROL8m1_NF_ND = 3857,
- ROL8mCL = 3858,
- ROL8mCL_EVEX = 3859,
- ROL8mCL_ND = 3860,
- ROL8mCL_NF = 3861,
- ROL8mCL_NF_ND = 3862,
- ROL8mi = 3863,
- ROL8mi_EVEX = 3864,
- ROL8mi_ND = 3865,
- ROL8mi_NF = 3866,
- ROL8mi_NF_ND = 3867,
- ROL8r1 = 3868,
- ROL8r1_EVEX = 3869,
- ROL8r1_ND = 3870,
- ROL8r1_NF = 3871,
- ROL8r1_NF_ND = 3872,
- ROL8rCL = 3873,
- ROL8rCL_EVEX = 3874,
- ROL8rCL_ND = 3875,
- ROL8rCL_NF = 3876,
- ROL8rCL_NF_ND = 3877,
- ROL8ri = 3878,
- ROL8ri_EVEX = 3879,
- ROL8ri_ND = 3880,
- ROL8ri_NF = 3881,
- ROL8ri_NF_ND = 3882,
- ROR16m1 = 3883,
- ROR16m1_EVEX = 3884,
- ROR16m1_ND = 3885,
- ROR16m1_NF = 3886,
- ROR16m1_NF_ND = 3887,
- ROR16mCL = 3888,
- ROR16mCL_EVEX = 3889,
- ROR16mCL_ND = 3890,
- ROR16mCL_NF = 3891,
- ROR16mCL_NF_ND = 3892,
- ROR16mi = 3893,
- ROR16mi_EVEX = 3894,
- ROR16mi_ND = 3895,
- ROR16mi_NF = 3896,
- ROR16mi_NF_ND = 3897,
- ROR16r1 = 3898,
- ROR16r1_EVEX = 3899,
- ROR16r1_ND = 3900,
- ROR16r1_NF = 3901,
- ROR16r1_NF_ND = 3902,
- ROR16rCL = 3903,
- ROR16rCL_EVEX = 3904,
- ROR16rCL_ND = 3905,
- ROR16rCL_NF = 3906,
- ROR16rCL_NF_ND = 3907,
- ROR16ri = 3908,
- ROR16ri_EVEX = 3909,
- ROR16ri_ND = 3910,
- ROR16ri_NF = 3911,
- ROR16ri_NF_ND = 3912,
- ROR32m1 = 3913,
- ROR32m1_EVEX = 3914,
- ROR32m1_ND = 3915,
- ROR32m1_NF = 3916,
- ROR32m1_NF_ND = 3917,
- ROR32mCL = 3918,
- ROR32mCL_EVEX = 3919,
- ROR32mCL_ND = 3920,
- ROR32mCL_NF = 3921,
- ROR32mCL_NF_ND = 3922,
- ROR32mi = 3923,
- ROR32mi_EVEX = 3924,
- ROR32mi_ND = 3925,
- ROR32mi_NF = 3926,
- ROR32mi_NF_ND = 3927,
- ROR32r1 = 3928,
- ROR32r1_EVEX = 3929,
- ROR32r1_ND = 3930,
- ROR32r1_NF = 3931,
- ROR32r1_NF_ND = 3932,
- ROR32rCL = 3933,
- ROR32rCL_EVEX = 3934,
- ROR32rCL_ND = 3935,
- ROR32rCL_NF = 3936,
- ROR32rCL_NF_ND = 3937,
- ROR32ri = 3938,
- ROR32ri_EVEX = 3939,
- ROR32ri_ND = 3940,
- ROR32ri_NF = 3941,
- ROR32ri_NF_ND = 3942,
- ROR64m1 = 3943,
- ROR64m1_EVEX = 3944,
- ROR64m1_ND = 3945,
- ROR64m1_NF = 3946,
- ROR64m1_NF_ND = 3947,
- ROR64mCL = 3948,
- ROR64mCL_EVEX = 3949,
- ROR64mCL_ND = 3950,
- ROR64mCL_NF = 3951,
- ROR64mCL_NF_ND = 3952,
- ROR64mi = 3953,
- ROR64mi_EVEX = 3954,
- ROR64mi_ND = 3955,
- ROR64mi_NF = 3956,
- ROR64mi_NF_ND = 3957,
- ROR64r1 = 3958,
- ROR64r1_EVEX = 3959,
- ROR64r1_ND = 3960,
- ROR64r1_NF = 3961,
- ROR64r1_NF_ND = 3962,
- ROR64rCL = 3963,
- ROR64rCL_EVEX = 3964,
- ROR64rCL_ND = 3965,
- ROR64rCL_NF = 3966,
- ROR64rCL_NF_ND = 3967,
- ROR64ri = 3968,
- ROR64ri_EVEX = 3969,
- ROR64ri_ND = 3970,
- ROR64ri_NF = 3971,
- ROR64ri_NF_ND = 3972,
- ROR8m1 = 3973,
- ROR8m1_EVEX = 3974,
- ROR8m1_ND = 3975,
- ROR8m1_NF = 3976,
- ROR8m1_NF_ND = 3977,
- ROR8mCL = 3978,
- ROR8mCL_EVEX = 3979,
- ROR8mCL_ND = 3980,
- ROR8mCL_NF = 3981,
- ROR8mCL_NF_ND = 3982,
- ROR8mi = 3983,
- ROR8mi_EVEX = 3984,
- ROR8mi_ND = 3985,
- ROR8mi_NF = 3986,
- ROR8mi_NF_ND = 3987,
- ROR8r1 = 3988,
- ROR8r1_EVEX = 3989,
- ROR8r1_ND = 3990,
- ROR8r1_NF = 3991,
- ROR8r1_NF_ND = 3992,
- ROR8rCL = 3993,
- ROR8rCL_EVEX = 3994,
- ROR8rCL_ND = 3995,
- ROR8rCL_NF = 3996,
- ROR8rCL_NF_ND = 3997,
- ROR8ri = 3998,
- ROR8ri_EVEX = 3999,
- ROR8ri_ND = 4000,
- ROR8ri_NF = 4001,
- ROR8ri_NF_ND = 4002,
- RORX32mi = 4003,
- RORX32mi_EVEX = 4004,
- RORX32ri = 4005,
- RORX32ri_EVEX = 4006,
- RORX64mi = 4007,
- RORX64mi_EVEX = 4008,
- RORX64ri = 4009,
- RORX64ri_EVEX = 4010,
- ROUNDPDmi = 4011,
- ROUNDPDri = 4012,
- ROUNDPSmi = 4013,
- ROUNDPSri = 4014,
- ROUNDSDmi = 4015,
- ROUNDSDmi_Int = 4016,
- ROUNDSDri = 4017,
- ROUNDSDri_Int = 4018,
- ROUNDSSmi = 4019,
- ROUNDSSmi_Int = 4020,
- ROUNDSSri = 4021,
- ROUNDSSri_Int = 4022,
- RSM = 4023,
- RSQRTPSm = 4024,
- RSQRTPSr = 4025,
- RSQRTSSm = 4026,
- RSQRTSSm_Int = 4027,
- RSQRTSSr = 4028,
- RSQRTSSr_Int = 4029,
- RSTORSSP = 4030,
- SAHF = 4031,
- SALC = 4032,
- SAR16m1 = 4033,
- SAR16m1_EVEX = 4034,
- SAR16m1_ND = 4035,
- SAR16m1_NF = 4036,
- SAR16m1_NF_ND = 4037,
- SAR16mCL = 4038,
- SAR16mCL_EVEX = 4039,
- SAR16mCL_ND = 4040,
- SAR16mCL_NF = 4041,
- SAR16mCL_NF_ND = 4042,
- SAR16mi = 4043,
- SAR16mi_EVEX = 4044,
- SAR16mi_ND = 4045,
- SAR16mi_NF = 4046,
- SAR16mi_NF_ND = 4047,
- SAR16r1 = 4048,
- SAR16r1_EVEX = 4049,
- SAR16r1_ND = 4050,
- SAR16r1_NF = 4051,
- SAR16r1_NF_ND = 4052,
- SAR16rCL = 4053,
- SAR16rCL_EVEX = 4054,
- SAR16rCL_ND = 4055,
- SAR16rCL_NF = 4056,
- SAR16rCL_NF_ND = 4057,
- SAR16ri = 4058,
- SAR16ri_EVEX = 4059,
- SAR16ri_ND = 4060,
- SAR16ri_NF = 4061,
- SAR16ri_NF_ND = 4062,
- SAR32m1 = 4063,
- SAR32m1_EVEX = 4064,
- SAR32m1_ND = 4065,
- SAR32m1_NF = 4066,
- SAR32m1_NF_ND = 4067,
- SAR32mCL = 4068,
- SAR32mCL_EVEX = 4069,
- SAR32mCL_ND = 4070,
- SAR32mCL_NF = 4071,
- SAR32mCL_NF_ND = 4072,
- SAR32mi = 4073,
- SAR32mi_EVEX = 4074,
- SAR32mi_ND = 4075,
- SAR32mi_NF = 4076,
- SAR32mi_NF_ND = 4077,
- SAR32r1 = 4078,
- SAR32r1_EVEX = 4079,
- SAR32r1_ND = 4080,
- SAR32r1_NF = 4081,
- SAR32r1_NF_ND = 4082,
- SAR32rCL = 4083,
- SAR32rCL_EVEX = 4084,
- SAR32rCL_ND = 4085,
- SAR32rCL_NF = 4086,
- SAR32rCL_NF_ND = 4087,
- SAR32ri = 4088,
- SAR32ri_EVEX = 4089,
- SAR32ri_ND = 4090,
- SAR32ri_NF = 4091,
- SAR32ri_NF_ND = 4092,
- SAR64m1 = 4093,
- SAR64m1_EVEX = 4094,
- SAR64m1_ND = 4095,
- SAR64m1_NF = 4096,
- SAR64m1_NF_ND = 4097,
- SAR64mCL = 4098,
- SAR64mCL_EVEX = 4099,
- SAR64mCL_ND = 4100,
- SAR64mCL_NF = 4101,
- SAR64mCL_NF_ND = 4102,
- SAR64mi = 4103,
- SAR64mi_EVEX = 4104,
- SAR64mi_ND = 4105,
- SAR64mi_NF = 4106,
- SAR64mi_NF_ND = 4107,
- SAR64r1 = 4108,
- SAR64r1_EVEX = 4109,
- SAR64r1_ND = 4110,
- SAR64r1_NF = 4111,
- SAR64r1_NF_ND = 4112,
- SAR64rCL = 4113,
- SAR64rCL_EVEX = 4114,
- SAR64rCL_ND = 4115,
- SAR64rCL_NF = 4116,
- SAR64rCL_NF_ND = 4117,
- SAR64ri = 4118,
- SAR64ri_EVEX = 4119,
- SAR64ri_ND = 4120,
- SAR64ri_NF = 4121,
- SAR64ri_NF_ND = 4122,
- SAR8m1 = 4123,
- SAR8m1_EVEX = 4124,
- SAR8m1_ND = 4125,
- SAR8m1_NF = 4126,
- SAR8m1_NF_ND = 4127,
- SAR8mCL = 4128,
- SAR8mCL_EVEX = 4129,
- SAR8mCL_ND = 4130,
- SAR8mCL_NF = 4131,
- SAR8mCL_NF_ND = 4132,
- SAR8mi = 4133,
- SAR8mi_EVEX = 4134,
- SAR8mi_ND = 4135,
- SAR8mi_NF = 4136,
- SAR8mi_NF_ND = 4137,
- SAR8r1 = 4138,
- SAR8r1_EVEX = 4139,
- SAR8r1_ND = 4140,
- SAR8r1_NF = 4141,
- SAR8r1_NF_ND = 4142,
- SAR8rCL = 4143,
- SAR8rCL_EVEX = 4144,
- SAR8rCL_ND = 4145,
- SAR8rCL_NF = 4146,
- SAR8rCL_NF_ND = 4147,
- SAR8ri = 4148,
- SAR8ri_EVEX = 4149,
- SAR8ri_ND = 4150,
- SAR8ri_NF = 4151,
- SAR8ri_NF_ND = 4152,
- SARX32rm = 4153,
- SARX32rm_EVEX = 4154,
- SARX32rr = 4155,
- SARX32rr_EVEX = 4156,
- SARX64rm = 4157,
- SARX64rm_EVEX = 4158,
- SARX64rr = 4159,
- SARX64rr_EVEX = 4160,
- SAVEPREVSSP = 4161,
- SBB16i16 = 4162,
- SBB16mi = 4163,
- SBB16mi8 = 4164,
- SBB16mi8_EVEX = 4165,
- SBB16mi8_ND = 4166,
- SBB16mi_EVEX = 4167,
- SBB16mi_ND = 4168,
- SBB16mr = 4169,
- SBB16mr_EVEX = 4170,
- SBB16mr_ND = 4171,
- SBB16ri = 4172,
- SBB16ri8 = 4173,
- SBB16ri8_EVEX = 4174,
- SBB16ri8_ND = 4175,
- SBB16ri_EVEX = 4176,
- SBB16ri_ND = 4177,
- SBB16rm = 4178,
- SBB16rm_EVEX = 4179,
- SBB16rm_ND = 4180,
- SBB16rr = 4181,
- SBB16rr_EVEX = 4182,
- SBB16rr_EVEX_REV = 4183,
- SBB16rr_ND = 4184,
- SBB16rr_ND_REV = 4185,
- SBB16rr_REV = 4186,
- SBB32i32 = 4187,
- SBB32mi = 4188,
- SBB32mi8 = 4189,
- SBB32mi8_EVEX = 4190,
- SBB32mi8_ND = 4191,
- SBB32mi_EVEX = 4192,
- SBB32mi_ND = 4193,
- SBB32mr = 4194,
- SBB32mr_EVEX = 4195,
- SBB32mr_ND = 4196,
- SBB32ri = 4197,
- SBB32ri8 = 4198,
- SBB32ri8_EVEX = 4199,
- SBB32ri8_ND = 4200,
- SBB32ri_EVEX = 4201,
- SBB32ri_ND = 4202,
- SBB32rm = 4203,
- SBB32rm_EVEX = 4204,
- SBB32rm_ND = 4205,
- SBB32rr = 4206,
- SBB32rr_EVEX = 4207,
- SBB32rr_EVEX_REV = 4208,
- SBB32rr_ND = 4209,
- SBB32rr_ND_REV = 4210,
- SBB32rr_REV = 4211,
- SBB64i32 = 4212,
- SBB64mi32 = 4213,
- SBB64mi32_EVEX = 4214,
- SBB64mi32_ND = 4215,
- SBB64mi8 = 4216,
- SBB64mi8_EVEX = 4217,
- SBB64mi8_ND = 4218,
- SBB64mr = 4219,
- SBB64mr_EVEX = 4220,
- SBB64mr_ND = 4221,
- SBB64ri32 = 4222,
- SBB64ri32_EVEX = 4223,
- SBB64ri32_ND = 4224,
- SBB64ri8 = 4225,
- SBB64ri8_EVEX = 4226,
- SBB64ri8_ND = 4227,
- SBB64rm = 4228,
- SBB64rm_EVEX = 4229,
- SBB64rm_ND = 4230,
- SBB64rr = 4231,
- SBB64rr_EVEX = 4232,
- SBB64rr_EVEX_REV = 4233,
- SBB64rr_ND = 4234,
- SBB64rr_ND_REV = 4235,
- SBB64rr_REV = 4236,
- SBB8i8 = 4237,
- SBB8mi = 4238,
- SBB8mi8 = 4239,
- SBB8mi_EVEX = 4240,
- SBB8mi_ND = 4241,
- SBB8mr = 4242,
- SBB8mr_EVEX = 4243,
- SBB8mr_ND = 4244,
- SBB8ri = 4245,
- SBB8ri8 = 4246,
- SBB8ri_EVEX = 4247,
- SBB8ri_ND = 4248,
- SBB8rm = 4249,
- SBB8rm_EVEX = 4250,
- SBB8rm_ND = 4251,
- SBB8rr = 4252,
- SBB8rr_EVEX = 4253,
- SBB8rr_EVEX_REV = 4254,
- SBB8rr_ND = 4255,
- SBB8rr_ND_REV = 4256,
- SBB8rr_REV = 4257,
- SCASB = 4258,
- SCASL = 4259,
- SCASQ = 4260,
- SCASW = 4261,
- SEAMCALL = 4262,
- SEAMOPS = 4263,
- SEAMRET = 4264,
- SEG_ALLOCA_32 = 4265,
- SEG_ALLOCA_64 = 4266,
- SENDUIPI = 4267,
- SERIALIZE = 4268,
- SETCCm = 4269,
- SETCCm_EVEX = 4270,
- SETCCr = 4271,
- SETCCr_EVEX = 4272,
- SETSSBSY = 4273,
- SETZUCCm = 4274,
- SETZUCCr = 4275,
- SFENCE = 4276,
- SGDT16m = 4277,
- SGDT32m = 4278,
- SGDT64m = 4279,
- SHA1MSG1rm = 4280,
- SHA1MSG1rr = 4281,
- SHA1MSG2rm = 4282,
- SHA1MSG2rr = 4283,
- SHA1NEXTErm = 4284,
- SHA1NEXTErr = 4285,
- SHA1RNDS4rmi = 4286,
- SHA1RNDS4rri = 4287,
- SHA256MSG1rm = 4288,
- SHA256MSG1rr = 4289,
- SHA256MSG2rm = 4290,
- SHA256MSG2rr = 4291,
- SHA256RNDS2rm = 4292,
- SHA256RNDS2rr = 4293,
- SHL16m1 = 4294,
- SHL16m1_EVEX = 4295,
- SHL16m1_ND = 4296,
- SHL16m1_NF = 4297,
- SHL16m1_NF_ND = 4298,
- SHL16mCL = 4299,
- SHL16mCL_EVEX = 4300,
- SHL16mCL_ND = 4301,
- SHL16mCL_NF = 4302,
- SHL16mCL_NF_ND = 4303,
- SHL16mi = 4304,
- SHL16mi_EVEX = 4305,
- SHL16mi_ND = 4306,
- SHL16mi_NF = 4307,
- SHL16mi_NF_ND = 4308,
- SHL16r1 = 4309,
- SHL16r1_EVEX = 4310,
- SHL16r1_ND = 4311,
- SHL16r1_NF = 4312,
- SHL16r1_NF_ND = 4313,
- SHL16rCL = 4314,
- SHL16rCL_EVEX = 4315,
- SHL16rCL_ND = 4316,
- SHL16rCL_NF = 4317,
- SHL16rCL_NF_ND = 4318,
- SHL16ri = 4319,
- SHL16ri_EVEX = 4320,
- SHL16ri_ND = 4321,
- SHL16ri_NF = 4322,
- SHL16ri_NF_ND = 4323,
- SHL32m1 = 4324,
- SHL32m1_EVEX = 4325,
- SHL32m1_ND = 4326,
- SHL32m1_NF = 4327,
- SHL32m1_NF_ND = 4328,
- SHL32mCL = 4329,
- SHL32mCL_EVEX = 4330,
- SHL32mCL_ND = 4331,
- SHL32mCL_NF = 4332,
- SHL32mCL_NF_ND = 4333,
- SHL32mi = 4334,
- SHL32mi_EVEX = 4335,
- SHL32mi_ND = 4336,
- SHL32mi_NF = 4337,
- SHL32mi_NF_ND = 4338,
- SHL32r1 = 4339,
- SHL32r1_EVEX = 4340,
- SHL32r1_ND = 4341,
- SHL32r1_NF = 4342,
- SHL32r1_NF_ND = 4343,
- SHL32rCL = 4344,
- SHL32rCL_EVEX = 4345,
- SHL32rCL_ND = 4346,
- SHL32rCL_NF = 4347,
- SHL32rCL_NF_ND = 4348,
- SHL32ri = 4349,
- SHL32ri_EVEX = 4350,
- SHL32ri_ND = 4351,
- SHL32ri_NF = 4352,
- SHL32ri_NF_ND = 4353,
- SHL64m1 = 4354,
- SHL64m1_EVEX = 4355,
- SHL64m1_ND = 4356,
- SHL64m1_NF = 4357,
- SHL64m1_NF_ND = 4358,
- SHL64mCL = 4359,
- SHL64mCL_EVEX = 4360,
- SHL64mCL_ND = 4361,
- SHL64mCL_NF = 4362,
- SHL64mCL_NF_ND = 4363,
- SHL64mi = 4364,
- SHL64mi_EVEX = 4365,
- SHL64mi_ND = 4366,
- SHL64mi_NF = 4367,
- SHL64mi_NF_ND = 4368,
- SHL64r1 = 4369,
- SHL64r1_EVEX = 4370,
- SHL64r1_ND = 4371,
- SHL64r1_NF = 4372,
- SHL64r1_NF_ND = 4373,
- SHL64rCL = 4374,
- SHL64rCL_EVEX = 4375,
- SHL64rCL_ND = 4376,
- SHL64rCL_NF = 4377,
- SHL64rCL_NF_ND = 4378,
- SHL64ri = 4379,
- SHL64ri_EVEX = 4380,
- SHL64ri_ND = 4381,
- SHL64ri_NF = 4382,
- SHL64ri_NF_ND = 4383,
- SHL8m1 = 4384,
- SHL8m1_EVEX = 4385,
- SHL8m1_ND = 4386,
- SHL8m1_NF = 4387,
- SHL8m1_NF_ND = 4388,
- SHL8mCL = 4389,
- SHL8mCL_EVEX = 4390,
- SHL8mCL_ND = 4391,
- SHL8mCL_NF = 4392,
- SHL8mCL_NF_ND = 4393,
- SHL8mi = 4394,
- SHL8mi_EVEX = 4395,
- SHL8mi_ND = 4396,
- SHL8mi_NF = 4397,
- SHL8mi_NF_ND = 4398,
- SHL8r1 = 4399,
- SHL8r1_EVEX = 4400,
- SHL8r1_ND = 4401,
- SHL8r1_NF = 4402,
- SHL8r1_NF_ND = 4403,
- SHL8rCL = 4404,
- SHL8rCL_EVEX = 4405,
- SHL8rCL_ND = 4406,
- SHL8rCL_NF = 4407,
- SHL8rCL_NF_ND = 4408,
- SHL8ri = 4409,
- SHL8ri_EVEX = 4410,
- SHL8ri_ND = 4411,
- SHL8ri_NF = 4412,
- SHL8ri_NF_ND = 4413,
- SHLD16mrCL = 4414,
- SHLD16mrCL_EVEX = 4415,
- SHLD16mrCL_ND = 4416,
- SHLD16mrCL_NF = 4417,
- SHLD16mrCL_NF_ND = 4418,
- SHLD16mri8 = 4419,
- SHLD16mri8_EVEX = 4420,
- SHLD16mri8_ND = 4421,
- SHLD16mri8_NF = 4422,
- SHLD16mri8_NF_ND = 4423,
- SHLD16rrCL = 4424,
- SHLD16rrCL_EVEX = 4425,
- SHLD16rrCL_ND = 4426,
- SHLD16rrCL_NF = 4427,
- SHLD16rrCL_NF_ND = 4428,
- SHLD16rri8 = 4429,
- SHLD16rri8_EVEX = 4430,
- SHLD16rri8_ND = 4431,
- SHLD16rri8_NF = 4432,
- SHLD16rri8_NF_ND = 4433,
- SHLD32mrCL = 4434,
- SHLD32mrCL_EVEX = 4435,
- SHLD32mrCL_ND = 4436,
- SHLD32mrCL_NF = 4437,
- SHLD32mrCL_NF_ND = 4438,
- SHLD32mri8 = 4439,
- SHLD32mri8_EVEX = 4440,
- SHLD32mri8_ND = 4441,
- SHLD32mri8_NF = 4442,
- SHLD32mri8_NF_ND = 4443,
- SHLD32rrCL = 4444,
- SHLD32rrCL_EVEX = 4445,
- SHLD32rrCL_ND = 4446,
- SHLD32rrCL_NF = 4447,
- SHLD32rrCL_NF_ND = 4448,
- SHLD32rri8 = 4449,
- SHLD32rri8_EVEX = 4450,
- SHLD32rri8_ND = 4451,
- SHLD32rri8_NF = 4452,
- SHLD32rri8_NF_ND = 4453,
- SHLD64mrCL = 4454,
- SHLD64mrCL_EVEX = 4455,
- SHLD64mrCL_ND = 4456,
- SHLD64mrCL_NF = 4457,
- SHLD64mrCL_NF_ND = 4458,
- SHLD64mri8 = 4459,
- SHLD64mri8_EVEX = 4460,
- SHLD64mri8_ND = 4461,
- SHLD64mri8_NF = 4462,
- SHLD64mri8_NF_ND = 4463,
- SHLD64rrCL = 4464,
- SHLD64rrCL_EVEX = 4465,
- SHLD64rrCL_ND = 4466,
- SHLD64rrCL_NF = 4467,
- SHLD64rrCL_NF_ND = 4468,
- SHLD64rri8 = 4469,
- SHLD64rri8_EVEX = 4470,
- SHLD64rri8_ND = 4471,
- SHLD64rri8_NF = 4472,
- SHLD64rri8_NF_ND = 4473,
- SHLX32rm = 4474,
- SHLX32rm_EVEX = 4475,
- SHLX32rr = 4476,
- SHLX32rr_EVEX = 4477,
- SHLX64rm = 4478,
- SHLX64rm_EVEX = 4479,
- SHLX64rr = 4480,
- SHLX64rr_EVEX = 4481,
- SHR16m1 = 4482,
- SHR16m1_EVEX = 4483,
- SHR16m1_ND = 4484,
- SHR16m1_NF = 4485,
- SHR16m1_NF_ND = 4486,
- SHR16mCL = 4487,
- SHR16mCL_EVEX = 4488,
- SHR16mCL_ND = 4489,
- SHR16mCL_NF = 4490,
- SHR16mCL_NF_ND = 4491,
- SHR16mi = 4492,
- SHR16mi_EVEX = 4493,
- SHR16mi_ND = 4494,
- SHR16mi_NF = 4495,
- SHR16mi_NF_ND = 4496,
- SHR16r1 = 4497,
- SHR16r1_EVEX = 4498,
- SHR16r1_ND = 4499,
- SHR16r1_NF = 4500,
- SHR16r1_NF_ND = 4501,
- SHR16rCL = 4502,
- SHR16rCL_EVEX = 4503,
- SHR16rCL_ND = 4504,
- SHR16rCL_NF = 4505,
- SHR16rCL_NF_ND = 4506,
- SHR16ri = 4507,
- SHR16ri_EVEX = 4508,
- SHR16ri_ND = 4509,
- SHR16ri_NF = 4510,
- SHR16ri_NF_ND = 4511,
- SHR32m1 = 4512,
- SHR32m1_EVEX = 4513,
- SHR32m1_ND = 4514,
- SHR32m1_NF = 4515,
- SHR32m1_NF_ND = 4516,
- SHR32mCL = 4517,
- SHR32mCL_EVEX = 4518,
- SHR32mCL_ND = 4519,
- SHR32mCL_NF = 4520,
- SHR32mCL_NF_ND = 4521,
- SHR32mi = 4522,
- SHR32mi_EVEX = 4523,
- SHR32mi_ND = 4524,
- SHR32mi_NF = 4525,
- SHR32mi_NF_ND = 4526,
- SHR32r1 = 4527,
- SHR32r1_EVEX = 4528,
- SHR32r1_ND = 4529,
- SHR32r1_NF = 4530,
- SHR32r1_NF_ND = 4531,
- SHR32rCL = 4532,
- SHR32rCL_EVEX = 4533,
- SHR32rCL_ND = 4534,
- SHR32rCL_NF = 4535,
- SHR32rCL_NF_ND = 4536,
- SHR32ri = 4537,
- SHR32ri_EVEX = 4538,
- SHR32ri_ND = 4539,
- SHR32ri_NF = 4540,
- SHR32ri_NF_ND = 4541,
- SHR64m1 = 4542,
- SHR64m1_EVEX = 4543,
- SHR64m1_ND = 4544,
- SHR64m1_NF = 4545,
- SHR64m1_NF_ND = 4546,
- SHR64mCL = 4547,
- SHR64mCL_EVEX = 4548,
- SHR64mCL_ND = 4549,
- SHR64mCL_NF = 4550,
- SHR64mCL_NF_ND = 4551,
- SHR64mi = 4552,
- SHR64mi_EVEX = 4553,
- SHR64mi_ND = 4554,
- SHR64mi_NF = 4555,
- SHR64mi_NF_ND = 4556,
- SHR64r1 = 4557,
- SHR64r1_EVEX = 4558,
- SHR64r1_ND = 4559,
- SHR64r1_NF = 4560,
- SHR64r1_NF_ND = 4561,
- SHR64rCL = 4562,
- SHR64rCL_EVEX = 4563,
- SHR64rCL_ND = 4564,
- SHR64rCL_NF = 4565,
- SHR64rCL_NF_ND = 4566,
- SHR64ri = 4567,
- SHR64ri_EVEX = 4568,
- SHR64ri_ND = 4569,
- SHR64ri_NF = 4570,
- SHR64ri_NF_ND = 4571,
- SHR8m1 = 4572,
- SHR8m1_EVEX = 4573,
- SHR8m1_ND = 4574,
- SHR8m1_NF = 4575,
- SHR8m1_NF_ND = 4576,
- SHR8mCL = 4577,
- SHR8mCL_EVEX = 4578,
- SHR8mCL_ND = 4579,
- SHR8mCL_NF = 4580,
- SHR8mCL_NF_ND = 4581,
- SHR8mi = 4582,
- SHR8mi_EVEX = 4583,
- SHR8mi_ND = 4584,
- SHR8mi_NF = 4585,
- SHR8mi_NF_ND = 4586,
- SHR8r1 = 4587,
- SHR8r1_EVEX = 4588,
- SHR8r1_ND = 4589,
- SHR8r1_NF = 4590,
- SHR8r1_NF_ND = 4591,
- SHR8rCL = 4592,
- SHR8rCL_EVEX = 4593,
- SHR8rCL_ND = 4594,
- SHR8rCL_NF = 4595,
- SHR8rCL_NF_ND = 4596,
- SHR8ri = 4597,
- SHR8ri_EVEX = 4598,
- SHR8ri_ND = 4599,
- SHR8ri_NF = 4600,
- SHR8ri_NF_ND = 4601,
- SHRD16mrCL = 4602,
- SHRD16mrCL_EVEX = 4603,
- SHRD16mrCL_ND = 4604,
- SHRD16mrCL_NF = 4605,
- SHRD16mrCL_NF_ND = 4606,
- SHRD16mri8 = 4607,
- SHRD16mri8_EVEX = 4608,
- SHRD16mri8_ND = 4609,
- SHRD16mri8_NF = 4610,
- SHRD16mri8_NF_ND = 4611,
- SHRD16rrCL = 4612,
- SHRD16rrCL_EVEX = 4613,
- SHRD16rrCL_ND = 4614,
- SHRD16rrCL_NF = 4615,
- SHRD16rrCL_NF_ND = 4616,
- SHRD16rri8 = 4617,
- SHRD16rri8_EVEX = 4618,
- SHRD16rri8_ND = 4619,
- SHRD16rri8_NF = 4620,
- SHRD16rri8_NF_ND = 4621,
- SHRD32mrCL = 4622,
- SHRD32mrCL_EVEX = 4623,
- SHRD32mrCL_ND = 4624,
- SHRD32mrCL_NF = 4625,
- SHRD32mrCL_NF_ND = 4626,
- SHRD32mri8 = 4627,
- SHRD32mri8_EVEX = 4628,
- SHRD32mri8_ND = 4629,
- SHRD32mri8_NF = 4630,
- SHRD32mri8_NF_ND = 4631,
- SHRD32rrCL = 4632,
- SHRD32rrCL_EVEX = 4633,
- SHRD32rrCL_ND = 4634,
- SHRD32rrCL_NF = 4635,
- SHRD32rrCL_NF_ND = 4636,
- SHRD32rri8 = 4637,
- SHRD32rri8_EVEX = 4638,
- SHRD32rri8_ND = 4639,
- SHRD32rri8_NF = 4640,
- SHRD32rri8_NF_ND = 4641,
- SHRD64mrCL = 4642,
- SHRD64mrCL_EVEX = 4643,
- SHRD64mrCL_ND = 4644,
- SHRD64mrCL_NF = 4645,
- SHRD64mrCL_NF_ND = 4646,
- SHRD64mri8 = 4647,
- SHRD64mri8_EVEX = 4648,
- SHRD64mri8_ND = 4649,
- SHRD64mri8_NF = 4650,
- SHRD64mri8_NF_ND = 4651,
- SHRD64rrCL = 4652,
- SHRD64rrCL_EVEX = 4653,
- SHRD64rrCL_ND = 4654,
- SHRD64rrCL_NF = 4655,
- SHRD64rrCL_NF_ND = 4656,
- SHRD64rri8 = 4657,
- SHRD64rri8_EVEX = 4658,
- SHRD64rri8_ND = 4659,
- SHRD64rri8_NF = 4660,
- SHRD64rri8_NF_ND = 4661,
- SHRX32rm = 4662,
- SHRX32rm_EVEX = 4663,
- SHRX32rr = 4664,
- SHRX32rr_EVEX = 4665,
- SHRX64rm = 4666,
- SHRX64rm_EVEX = 4667,
- SHRX64rr = 4668,
- SHRX64rr_EVEX = 4669,
- SHUFPDrmi = 4670,
- SHUFPDrri = 4671,
- SHUFPSrmi = 4672,
- SHUFPSrri = 4673,
- SIDT16m = 4674,
- SIDT32m = 4675,
- SIDT64m = 4676,
- SKINIT = 4677,
- SLDT16m = 4678,
- SLDT16r = 4679,
- SLDT32r = 4680,
- SLDT64r = 4681,
- SLWPCB = 4682,
- SLWPCB64 = 4683,
- SMSW16m = 4684,
- SMSW16r = 4685,
- SMSW32r = 4686,
- SMSW64r = 4687,
- SQRTPDm = 4688,
- SQRTPDr = 4689,
- SQRTPSm = 4690,
- SQRTPSr = 4691,
- SQRTSDm = 4692,
- SQRTSDm_Int = 4693,
- SQRTSDr = 4694,
- SQRTSDr_Int = 4695,
- SQRTSSm = 4696,
- SQRTSSm_Int = 4697,
- SQRTSSr = 4698,
- SQRTSSr_Int = 4699,
- SQRT_F = 4700,
- SQRT_Fp32 = 4701,
- SQRT_Fp64 = 4702,
- SQRT_Fp80 = 4703,
- SS_PREFIX = 4704,
- STAC = 4705,
- STACKALLOC_W_PROBING = 4706,
- STC = 4707,
- STD = 4708,
- STGI = 4709,
- STI = 4710,
- STMXCSR = 4711,
- STOSB = 4712,
- STOSL = 4713,
- STOSQ = 4714,
- STOSW = 4715,
- STR16r = 4716,
- STR32r = 4717,
- STR64r = 4718,
- STRm = 4719,
- STTILECFG = 4720,
- STTILECFG_EVEX = 4721,
- STUI = 4722,
- ST_F32m = 4723,
- ST_F64m = 4724,
- ST_FP32m = 4725,
- ST_FP64m = 4726,
- ST_FP80m = 4727,
- ST_FPrr = 4728,
- ST_Fp32m = 4729,
- ST_Fp64m = 4730,
- ST_Fp64m32 = 4731,
- ST_Fp80m32 = 4732,
- ST_Fp80m64 = 4733,
- ST_FpP32m = 4734,
- ST_FpP64m = 4735,
- ST_FpP64m32 = 4736,
- ST_FpP80m = 4737,
- ST_FpP80m32 = 4738,
- ST_FpP80m64 = 4739,
- ST_Frr = 4740,
- SUB16i16 = 4741,
- SUB16mi = 4742,
- SUB16mi8 = 4743,
- SUB16mi8_EVEX = 4744,
- SUB16mi8_ND = 4745,
- SUB16mi8_NF = 4746,
- SUB16mi8_NF_ND = 4747,
- SUB16mi_EVEX = 4748,
- SUB16mi_ND = 4749,
- SUB16mi_NF = 4750,
- SUB16mi_NF_ND = 4751,
- SUB16mr = 4752,
- SUB16mr_EVEX = 4753,
- SUB16mr_ND = 4754,
- SUB16mr_NF = 4755,
- SUB16mr_NF_ND = 4756,
- SUB16ri = 4757,
- SUB16ri8 = 4758,
- SUB16ri8_EVEX = 4759,
- SUB16ri8_ND = 4760,
- SUB16ri8_NF = 4761,
- SUB16ri8_NF_ND = 4762,
- SUB16ri_EVEX = 4763,
- SUB16ri_ND = 4764,
- SUB16ri_NF = 4765,
- SUB16ri_NF_ND = 4766,
- SUB16rm = 4767,
- SUB16rm_EVEX = 4768,
- SUB16rm_ND = 4769,
- SUB16rm_NF = 4770,
- SUB16rm_NF_ND = 4771,
- SUB16rr = 4772,
- SUB16rr_EVEX = 4773,
- SUB16rr_EVEX_REV = 4774,
- SUB16rr_ND = 4775,
- SUB16rr_ND_REV = 4776,
- SUB16rr_NF = 4777,
- SUB16rr_NF_ND = 4778,
- SUB16rr_NF_ND_REV = 4779,
- SUB16rr_NF_REV = 4780,
- SUB16rr_REV = 4781,
- SUB32i32 = 4782,
- SUB32mi = 4783,
- SUB32mi8 = 4784,
- SUB32mi8_EVEX = 4785,
- SUB32mi8_ND = 4786,
- SUB32mi8_NF = 4787,
- SUB32mi8_NF_ND = 4788,
- SUB32mi_EVEX = 4789,
- SUB32mi_ND = 4790,
- SUB32mi_NF = 4791,
- SUB32mi_NF_ND = 4792,
- SUB32mr = 4793,
- SUB32mr_EVEX = 4794,
- SUB32mr_ND = 4795,
- SUB32mr_NF = 4796,
- SUB32mr_NF_ND = 4797,
- SUB32ri = 4798,
- SUB32ri8 = 4799,
- SUB32ri8_EVEX = 4800,
- SUB32ri8_ND = 4801,
- SUB32ri8_NF = 4802,
- SUB32ri8_NF_ND = 4803,
- SUB32ri_EVEX = 4804,
- SUB32ri_ND = 4805,
- SUB32ri_NF = 4806,
- SUB32ri_NF_ND = 4807,
- SUB32rm = 4808,
- SUB32rm_EVEX = 4809,
- SUB32rm_ND = 4810,
- SUB32rm_NF = 4811,
- SUB32rm_NF_ND = 4812,
- SUB32rr = 4813,
- SUB32rr_EVEX = 4814,
- SUB32rr_EVEX_REV = 4815,
- SUB32rr_ND = 4816,
- SUB32rr_ND_REV = 4817,
- SUB32rr_NF = 4818,
- SUB32rr_NF_ND = 4819,
- SUB32rr_NF_ND_REV = 4820,
- SUB32rr_NF_REV = 4821,
- SUB32rr_REV = 4822,
- SUB64i32 = 4823,
- SUB64mi32 = 4824,
- SUB64mi32_EVEX = 4825,
- SUB64mi32_ND = 4826,
- SUB64mi32_NF = 4827,
- SUB64mi32_NF_ND = 4828,
- SUB64mi8 = 4829,
- SUB64mi8_EVEX = 4830,
- SUB64mi8_ND = 4831,
- SUB64mi8_NF = 4832,
- SUB64mi8_NF_ND = 4833,
- SUB64mr = 4834,
- SUB64mr_EVEX = 4835,
- SUB64mr_ND = 4836,
- SUB64mr_NF = 4837,
- SUB64mr_NF_ND = 4838,
- SUB64ri32 = 4839,
- SUB64ri32_EVEX = 4840,
- SUB64ri32_ND = 4841,
- SUB64ri32_NF = 4842,
- SUB64ri32_NF_ND = 4843,
- SUB64ri8 = 4844,
- SUB64ri8_EVEX = 4845,
- SUB64ri8_ND = 4846,
- SUB64ri8_NF = 4847,
- SUB64ri8_NF_ND = 4848,
- SUB64rm = 4849,
- SUB64rm_EVEX = 4850,
- SUB64rm_ND = 4851,
- SUB64rm_NF = 4852,
- SUB64rm_NF_ND = 4853,
- SUB64rr = 4854,
- SUB64rr_EVEX = 4855,
- SUB64rr_EVEX_REV = 4856,
- SUB64rr_ND = 4857,
- SUB64rr_ND_REV = 4858,
- SUB64rr_NF = 4859,
- SUB64rr_NF_ND = 4860,
- SUB64rr_NF_ND_REV = 4861,
- SUB64rr_NF_REV = 4862,
- SUB64rr_REV = 4863,
- SUB8i8 = 4864,
- SUB8mi = 4865,
- SUB8mi8 = 4866,
- SUB8mi_EVEX = 4867,
- SUB8mi_ND = 4868,
- SUB8mi_NF = 4869,
- SUB8mi_NF_ND = 4870,
- SUB8mr = 4871,
- SUB8mr_EVEX = 4872,
- SUB8mr_ND = 4873,
- SUB8mr_NF = 4874,
- SUB8mr_NF_ND = 4875,
- SUB8ri = 4876,
- SUB8ri8 = 4877,
- SUB8ri_EVEX = 4878,
- SUB8ri_ND = 4879,
- SUB8ri_NF = 4880,
- SUB8ri_NF_ND = 4881,
- SUB8rm = 4882,
- SUB8rm_EVEX = 4883,
- SUB8rm_ND = 4884,
- SUB8rm_NF = 4885,
- SUB8rm_NF_ND = 4886,
- SUB8rr = 4887,
- SUB8rr_EVEX = 4888,
- SUB8rr_EVEX_REV = 4889,
- SUB8rr_ND = 4890,
- SUB8rr_ND_REV = 4891,
- SUB8rr_NF = 4892,
- SUB8rr_NF_ND = 4893,
- SUB8rr_NF_ND_REV = 4894,
- SUB8rr_NF_REV = 4895,
- SUB8rr_REV = 4896,
- SUBPDrm = 4897,
- SUBPDrr = 4898,
- SUBPSrm = 4899,
- SUBPSrr = 4900,
- SUBR_F32m = 4901,
- SUBR_F64m = 4902,
- SUBR_FI16m = 4903,
- SUBR_FI32m = 4904,
- SUBR_FPrST0 = 4905,
- SUBR_FST0r = 4906,
- SUBR_Fp32m = 4907,
- SUBR_Fp64m = 4908,
- SUBR_Fp64m32 = 4909,
- SUBR_Fp80m32 = 4910,
- SUBR_Fp80m64 = 4911,
- SUBR_FpI16m32 = 4912,
- SUBR_FpI16m64 = 4913,
- SUBR_FpI16m80 = 4914,
- SUBR_FpI32m32 = 4915,
- SUBR_FpI32m64 = 4916,
- SUBR_FpI32m80 = 4917,
- SUBR_FrST0 = 4918,
- SUBSDrm = 4919,
- SUBSDrm_Int = 4920,
- SUBSDrr = 4921,
- SUBSDrr_Int = 4922,
- SUBSSrm = 4923,
- SUBSSrm_Int = 4924,
- SUBSSrr = 4925,
- SUBSSrr_Int = 4926,
- SUB_F32m = 4927,
- SUB_F64m = 4928,
- SUB_FI16m = 4929,
- SUB_FI32m = 4930,
- SUB_FPrST0 = 4931,
- SUB_FST0r = 4932,
- SUB_Fp32 = 4933,
- SUB_Fp32m = 4934,
- SUB_Fp64 = 4935,
- SUB_Fp64m = 4936,
- SUB_Fp64m32 = 4937,
- SUB_Fp80 = 4938,
- SUB_Fp80m32 = 4939,
- SUB_Fp80m64 = 4940,
- SUB_FpI16m32 = 4941,
- SUB_FpI16m64 = 4942,
- SUB_FpI16m80 = 4943,
- SUB_FpI32m32 = 4944,
- SUB_FpI32m64 = 4945,
- SUB_FpI32m80 = 4946,
- SUB_FrST0 = 4947,
- SWAPGS = 4948,
- SYSCALL = 4949,
- SYSENTER = 4950,
- SYSEXIT = 4951,
- SYSEXIT64 = 4952,
- SYSRET = 4953,
- SYSRET64 = 4954,
- T1MSKC32rm = 4955,
- T1MSKC32rr = 4956,
- T1MSKC64rm = 4957,
- T1MSKC64rr = 4958,
- T2RPNTLVWZ0 = 4959,
- T2RPNTLVWZ0RS = 4960,
- T2RPNTLVWZ0RST1 = 4961,
- T2RPNTLVWZ0RST1_EVEX = 4962,
- T2RPNTLVWZ0RS_EVEX = 4963,
- T2RPNTLVWZ0T1 = 4964,
- T2RPNTLVWZ0T1_EVEX = 4965,
- T2RPNTLVWZ0_EVEX = 4966,
- T2RPNTLVWZ1 = 4967,
- T2RPNTLVWZ1RS = 4968,
- T2RPNTLVWZ1RST1 = 4969,
- T2RPNTLVWZ1RST1_EVEX = 4970,
- T2RPNTLVWZ1RS_EVEX = 4971,
- T2RPNTLVWZ1T1 = 4972,
- T2RPNTLVWZ1T1_EVEX = 4973,
- T2RPNTLVWZ1_EVEX = 4974,
- TAILJMPd = 4975,
- TAILJMPd64 = 4976,
- TAILJMPd64_CC = 4977,
- TAILJMPd_CC = 4978,
- TAILJMPm = 4979,
- TAILJMPm64 = 4980,
- TAILJMPm64_REX = 4981,
- TAILJMPr = 4982,
- TAILJMPr64 = 4983,
- TAILJMPr64_REX = 4984,
- TCMMIMFP16PS = 4985,
- TCMMRLFP16PS = 4986,
- TCONJTCMMIMFP16PS = 4987,
- TCONJTFP16 = 4988,
- TCRETURNdi = 4989,
- TCRETURNdi64 = 4990,
- TCRETURNdi64cc = 4991,
- TCRETURNdicc = 4992,
- TCRETURNmi = 4993,
- TCRETURNmi64 = 4994,
- TCRETURNri = 4995,
- TCRETURNri64 = 4996,
- TCRETURNri64_ImpCall = 4997,
- TCVTROWD2PSrre = 4998,
- TCVTROWD2PSrri = 4999,
- TCVTROWPS2BF16Hrre = 5000,
- TCVTROWPS2BF16Hrri = 5001,
- TCVTROWPS2BF16Lrre = 5002,
- TCVTROWPS2BF16Lrri = 5003,
- TCVTROWPS2PHHrre = 5004,
- TCVTROWPS2PHHrri = 5005,
- TCVTROWPS2PHLrre = 5006,
- TCVTROWPS2PHLrri = 5007,
- TDCALL = 5008,
- TDPBF16PS = 5009,
- TDPBF8PS = 5010,
- TDPBHF8PS = 5011,
- TDPBSSD = 5012,
- TDPBSUD = 5013,
- TDPBUSD = 5014,
- TDPBUUD = 5015,
- TDPFP16PS = 5016,
- TDPHBF8PS = 5017,
- TDPHF8PS = 5018,
- TEST16i16 = 5019,
- TEST16mi = 5020,
- TEST16mr = 5021,
- TEST16ri = 5022,
- TEST16rr = 5023,
- TEST32i32 = 5024,
- TEST32mi = 5025,
- TEST32mr = 5026,
- TEST32ri = 5027,
- TEST32rr = 5028,
- TEST64i32 = 5029,
- TEST64mi32 = 5030,
- TEST64mr = 5031,
- TEST64ri32 = 5032,
- TEST64rr = 5033,
- TEST8i8 = 5034,
- TEST8mi = 5035,
- TEST8mr = 5036,
- TEST8ri = 5037,
- TEST8rr = 5038,
- TESTUI = 5039,
- TILELOADD = 5040,
- TILELOADDRS = 5041,
- TILELOADDRST1 = 5042,
- TILELOADDRST1_EVEX = 5043,
- TILELOADDRS_EVEX = 5044,
- TILELOADDT1 = 5045,
- TILELOADDT1_EVEX = 5046,
- TILELOADD_EVEX = 5047,
- TILEMOVROWrre = 5048,
- TILEMOVROWrri = 5049,
- TILERELEASE = 5050,
- TILESTORED = 5051,
- TILESTORED_EVEX = 5052,
- TILEZERO = 5053,
- TLBSYNC = 5054,
- TLSCall_32 = 5055,
- TLSCall_64 = 5056,
- TLS_addr32 = 5057,
- TLS_addr64 = 5058,
- TLS_addrX32 = 5059,
- TLS_base_addr32 = 5060,
- TLS_base_addr64 = 5061,
- TLS_base_addrX32 = 5062,
- TLS_desc32 = 5063,
- TLS_desc64 = 5064,
- TMMULTF32PS = 5065,
- TPAUSE = 5066,
- TRAP = 5067,
- TST_F = 5068,
- TST_Fp32 = 5069,
- TST_Fp64 = 5070,
- TST_Fp80 = 5071,
- TTCMMIMFP16PS = 5072,
- TTCMMRLFP16PS = 5073,
- TTDPBF16PS = 5074,
- TTDPFP16PS = 5075,
- TTMMULTF32PS = 5076,
- TTRANSPOSED = 5077,
- TZCNT16rm = 5078,
- TZCNT16rm_EVEX = 5079,
- TZCNT16rm_NF = 5080,
- TZCNT16rr = 5081,
- TZCNT16rr_EVEX = 5082,
- TZCNT16rr_NF = 5083,
- TZCNT32rm = 5084,
- TZCNT32rm_EVEX = 5085,
- TZCNT32rm_NF = 5086,
- TZCNT32rr = 5087,
- TZCNT32rr_EVEX = 5088,
- TZCNT32rr_NF = 5089,
- TZCNT64rm = 5090,
- TZCNT64rm_EVEX = 5091,
- TZCNT64rm_NF = 5092,
- TZCNT64rr = 5093,
- TZCNT64rr_EVEX = 5094,
- TZCNT64rr_NF = 5095,
- TZMSK32rm = 5096,
- TZMSK32rr = 5097,
- TZMSK64rm = 5098,
- TZMSK64rr = 5099,
- UBSAN_UD1 = 5100,
- UCOMISDrm = 5101,
- UCOMISDrm_Int = 5102,
- UCOMISDrr = 5103,
- UCOMISDrr_Int = 5104,
- UCOMISSrm = 5105,
- UCOMISSrm_Int = 5106,
- UCOMISSrr = 5107,
- UCOMISSrr_Int = 5108,
- UCOM_FIPr = 5109,
- UCOM_FIr = 5110,
- UCOM_FPPr = 5111,
- UCOM_FPr = 5112,
- UCOM_FpIr32 = 5113,
- UCOM_FpIr64 = 5114,
- UCOM_FpIr80 = 5115,
- UCOM_Fpr32 = 5116,
- UCOM_Fpr64 = 5117,
- UCOM_Fpr80 = 5118,
- UCOM_Fr = 5119,
- UD1Lm = 5120,
- UD1Lr = 5121,
- UD1Qm = 5122,
- UD1Qr = 5123,
- UD1Wm = 5124,
- UD1Wr = 5125,
- UIRET = 5126,
- UMONITOR16 = 5127,
- UMONITOR32 = 5128,
- UMONITOR64 = 5129,
- UMWAIT = 5130,
- UNPCKHPDrm = 5131,
- UNPCKHPDrr = 5132,
- UNPCKHPSrm = 5133,
- UNPCKHPSrr = 5134,
- UNPCKLPDrm = 5135,
- UNPCKLPDrr = 5136,
- UNPCKLPSrm = 5137,
- UNPCKLPSrr = 5138,
- URDMSRri = 5139,
- URDMSRri_EVEX = 5140,
- URDMSRrr = 5141,
- URDMSRrr_EVEX = 5142,
- UWRMSRir = 5143,
- UWRMSRir_EVEX = 5144,
- UWRMSRrr = 5145,
- UWRMSRrr_EVEX = 5146,
- V4FMADDPSrm = 5147,
- V4FMADDPSrmk = 5148,
- V4FMADDPSrmkz = 5149,
- V4FMADDSSrm = 5150,
- V4FMADDSSrmk = 5151,
- V4FMADDSSrmkz = 5152,
- V4FNMADDPSrm = 5153,
- V4FNMADDPSrmk = 5154,
- V4FNMADDPSrmkz = 5155,
- V4FNMADDSSrm = 5156,
- V4FNMADDSSrmk = 5157,
- V4FNMADDSSrmkz = 5158,
- VAARG_64 = 5159,
- VAARG_X32 = 5160,
- VADDBF16Z128rm = 5161,
- VADDBF16Z128rmb = 5162,
- VADDBF16Z128rmbk = 5163,
- VADDBF16Z128rmbkz = 5164,
- VADDBF16Z128rmk = 5165,
- VADDBF16Z128rmkz = 5166,
- VADDBF16Z128rr = 5167,
- VADDBF16Z128rrk = 5168,
- VADDBF16Z128rrkz = 5169,
- VADDBF16Z256rm = 5170,
- VADDBF16Z256rmb = 5171,
- VADDBF16Z256rmbk = 5172,
- VADDBF16Z256rmbkz = 5173,
- VADDBF16Z256rmk = 5174,
- VADDBF16Z256rmkz = 5175,
- VADDBF16Z256rr = 5176,
- VADDBF16Z256rrk = 5177,
- VADDBF16Z256rrkz = 5178,
- VADDBF16Zrm = 5179,
- VADDBF16Zrmb = 5180,
- VADDBF16Zrmbk = 5181,
- VADDBF16Zrmbkz = 5182,
- VADDBF16Zrmk = 5183,
- VADDBF16Zrmkz = 5184,
- VADDBF16Zrr = 5185,
- VADDBF16Zrrk = 5186,
- VADDBF16Zrrkz = 5187,
- VADDPDYrm = 5188,
- VADDPDYrr = 5189,
- VADDPDZ128rm = 5190,
- VADDPDZ128rmb = 5191,
- VADDPDZ128rmbk = 5192,
- VADDPDZ128rmbkz = 5193,
- VADDPDZ128rmk = 5194,
- VADDPDZ128rmkz = 5195,
- VADDPDZ128rr = 5196,
- VADDPDZ128rrk = 5197,
- VADDPDZ128rrkz = 5198,
- VADDPDZ256rm = 5199,
- VADDPDZ256rmb = 5200,
- VADDPDZ256rmbk = 5201,
- VADDPDZ256rmbkz = 5202,
- VADDPDZ256rmk = 5203,
- VADDPDZ256rmkz = 5204,
- VADDPDZ256rr = 5205,
- VADDPDZ256rrk = 5206,
- VADDPDZ256rrkz = 5207,
- VADDPDZrm = 5208,
- VADDPDZrmb = 5209,
- VADDPDZrmbk = 5210,
- VADDPDZrmbkz = 5211,
- VADDPDZrmk = 5212,
- VADDPDZrmkz = 5213,
- VADDPDZrr = 5214,
- VADDPDZrrb = 5215,
- VADDPDZrrbk = 5216,
- VADDPDZrrbkz = 5217,
- VADDPDZrrk = 5218,
- VADDPDZrrkz = 5219,
- VADDPDrm = 5220,
- VADDPDrr = 5221,
- VADDPHZ128rm = 5222,
- VADDPHZ128rmb = 5223,
- VADDPHZ128rmbk = 5224,
- VADDPHZ128rmbkz = 5225,
- VADDPHZ128rmk = 5226,
- VADDPHZ128rmkz = 5227,
- VADDPHZ128rr = 5228,
- VADDPHZ128rrk = 5229,
- VADDPHZ128rrkz = 5230,
- VADDPHZ256rm = 5231,
- VADDPHZ256rmb = 5232,
- VADDPHZ256rmbk = 5233,
- VADDPHZ256rmbkz = 5234,
- VADDPHZ256rmk = 5235,
- VADDPHZ256rmkz = 5236,
- VADDPHZ256rr = 5237,
- VADDPHZ256rrk = 5238,
- VADDPHZ256rrkz = 5239,
- VADDPHZrm = 5240,
- VADDPHZrmb = 5241,
- VADDPHZrmbk = 5242,
- VADDPHZrmbkz = 5243,
- VADDPHZrmk = 5244,
- VADDPHZrmkz = 5245,
- VADDPHZrr = 5246,
- VADDPHZrrb = 5247,
- VADDPHZrrbk = 5248,
- VADDPHZrrbkz = 5249,
- VADDPHZrrk = 5250,
- VADDPHZrrkz = 5251,
- VADDPSYrm = 5252,
- VADDPSYrr = 5253,
- VADDPSZ128rm = 5254,
- VADDPSZ128rmb = 5255,
- VADDPSZ128rmbk = 5256,
- VADDPSZ128rmbkz = 5257,
- VADDPSZ128rmk = 5258,
- VADDPSZ128rmkz = 5259,
- VADDPSZ128rr = 5260,
- VADDPSZ128rrk = 5261,
- VADDPSZ128rrkz = 5262,
- VADDPSZ256rm = 5263,
- VADDPSZ256rmb = 5264,
- VADDPSZ256rmbk = 5265,
- VADDPSZ256rmbkz = 5266,
- VADDPSZ256rmk = 5267,
- VADDPSZ256rmkz = 5268,
- VADDPSZ256rr = 5269,
- VADDPSZ256rrk = 5270,
- VADDPSZ256rrkz = 5271,
- VADDPSZrm = 5272,
- VADDPSZrmb = 5273,
- VADDPSZrmbk = 5274,
- VADDPSZrmbkz = 5275,
- VADDPSZrmk = 5276,
- VADDPSZrmkz = 5277,
- VADDPSZrr = 5278,
- VADDPSZrrb = 5279,
- VADDPSZrrbk = 5280,
- VADDPSZrrbkz = 5281,
- VADDPSZrrk = 5282,
- VADDPSZrrkz = 5283,
- VADDPSrm = 5284,
- VADDPSrr = 5285,
- VADDSDZrm = 5286,
- VADDSDZrm_Int = 5287,
- VADDSDZrmk_Int = 5288,
- VADDSDZrmkz_Int = 5289,
- VADDSDZrr = 5290,
- VADDSDZrr_Int = 5291,
- VADDSDZrrb_Int = 5292,
- VADDSDZrrbk_Int = 5293,
- VADDSDZrrbkz_Int = 5294,
- VADDSDZrrk_Int = 5295,
- VADDSDZrrkz_Int = 5296,
- VADDSDrm = 5297,
- VADDSDrm_Int = 5298,
- VADDSDrr = 5299,
- VADDSDrr_Int = 5300,
- VADDSHZrm = 5301,
- VADDSHZrm_Int = 5302,
- VADDSHZrmk_Int = 5303,
- VADDSHZrmkz_Int = 5304,
- VADDSHZrr = 5305,
- VADDSHZrr_Int = 5306,
- VADDSHZrrb_Int = 5307,
- VADDSHZrrbk_Int = 5308,
- VADDSHZrrbkz_Int = 5309,
- VADDSHZrrk_Int = 5310,
- VADDSHZrrkz_Int = 5311,
- VADDSSZrm = 5312,
- VADDSSZrm_Int = 5313,
- VADDSSZrmk_Int = 5314,
- VADDSSZrmkz_Int = 5315,
- VADDSSZrr = 5316,
- VADDSSZrr_Int = 5317,
- VADDSSZrrb_Int = 5318,
- VADDSSZrrbk_Int = 5319,
- VADDSSZrrbkz_Int = 5320,
- VADDSSZrrk_Int = 5321,
- VADDSSZrrkz_Int = 5322,
- VADDSSrm = 5323,
- VADDSSrm_Int = 5324,
- VADDSSrr = 5325,
- VADDSSrr_Int = 5326,
- VADDSUBPDYrm = 5327,
- VADDSUBPDYrr = 5328,
- VADDSUBPDrm = 5329,
- VADDSUBPDrr = 5330,
- VADDSUBPSYrm = 5331,
- VADDSUBPSYrr = 5332,
- VADDSUBPSrm = 5333,
- VADDSUBPSrr = 5334,
- VAESDECLASTYrm = 5335,
- VAESDECLASTYrr = 5336,
- VAESDECLASTZ128rm = 5337,
- VAESDECLASTZ128rr = 5338,
- VAESDECLASTZ256rm = 5339,
- VAESDECLASTZ256rr = 5340,
- VAESDECLASTZrm = 5341,
- VAESDECLASTZrr = 5342,
- VAESDECLASTrm = 5343,
- VAESDECLASTrr = 5344,
- VAESDECYrm = 5345,
- VAESDECYrr = 5346,
- VAESDECZ128rm = 5347,
- VAESDECZ128rr = 5348,
- VAESDECZ256rm = 5349,
- VAESDECZ256rr = 5350,
- VAESDECZrm = 5351,
- VAESDECZrr = 5352,
- VAESDECrm = 5353,
- VAESDECrr = 5354,
- VAESENCLASTYrm = 5355,
- VAESENCLASTYrr = 5356,
- VAESENCLASTZ128rm = 5357,
- VAESENCLASTZ128rr = 5358,
- VAESENCLASTZ256rm = 5359,
- VAESENCLASTZ256rr = 5360,
- VAESENCLASTZrm = 5361,
- VAESENCLASTZrr = 5362,
- VAESENCLASTrm = 5363,
- VAESENCLASTrr = 5364,
- VAESENCYrm = 5365,
- VAESENCYrr = 5366,
- VAESENCZ128rm = 5367,
- VAESENCZ128rr = 5368,
- VAESENCZ256rm = 5369,
- VAESENCZ256rr = 5370,
- VAESENCZrm = 5371,
- VAESENCZrr = 5372,
- VAESENCrm = 5373,
- VAESENCrr = 5374,
- VAESIMCrm = 5375,
- VAESIMCrr = 5376,
- VAESKEYGENASSIST128rm = 5377,
- VAESKEYGENASSIST128rr = 5378,
- VALIGNDZ128rmbi = 5379,
- VALIGNDZ128rmbik = 5380,
- VALIGNDZ128rmbikz = 5381,
- VALIGNDZ128rmi = 5382,
- VALIGNDZ128rmik = 5383,
- VALIGNDZ128rmikz = 5384,
- VALIGNDZ128rri = 5385,
- VALIGNDZ128rrik = 5386,
- VALIGNDZ128rrikz = 5387,
- VALIGNDZ256rmbi = 5388,
- VALIGNDZ256rmbik = 5389,
- VALIGNDZ256rmbikz = 5390,
- VALIGNDZ256rmi = 5391,
- VALIGNDZ256rmik = 5392,
- VALIGNDZ256rmikz = 5393,
- VALIGNDZ256rri = 5394,
- VALIGNDZ256rrik = 5395,
- VALIGNDZ256rrikz = 5396,
- VALIGNDZrmbi = 5397,
- VALIGNDZrmbik = 5398,
- VALIGNDZrmbikz = 5399,
- VALIGNDZrmi = 5400,
- VALIGNDZrmik = 5401,
- VALIGNDZrmikz = 5402,
- VALIGNDZrri = 5403,
- VALIGNDZrrik = 5404,
- VALIGNDZrrikz = 5405,
- VALIGNQZ128rmbi = 5406,
- VALIGNQZ128rmbik = 5407,
- VALIGNQZ128rmbikz = 5408,
- VALIGNQZ128rmi = 5409,
- VALIGNQZ128rmik = 5410,
- VALIGNQZ128rmikz = 5411,
- VALIGNQZ128rri = 5412,
- VALIGNQZ128rrik = 5413,
- VALIGNQZ128rrikz = 5414,
- VALIGNQZ256rmbi = 5415,
- VALIGNQZ256rmbik = 5416,
- VALIGNQZ256rmbikz = 5417,
- VALIGNQZ256rmi = 5418,
- VALIGNQZ256rmik = 5419,
- VALIGNQZ256rmikz = 5420,
- VALIGNQZ256rri = 5421,
- VALIGNQZ256rrik = 5422,
- VALIGNQZ256rrikz = 5423,
- VALIGNQZrmbi = 5424,
- VALIGNQZrmbik = 5425,
- VALIGNQZrmbikz = 5426,
- VALIGNQZrmi = 5427,
- VALIGNQZrmik = 5428,
- VALIGNQZrmikz = 5429,
- VALIGNQZrri = 5430,
- VALIGNQZrrik = 5431,
- VALIGNQZrrikz = 5432,
- VANDNPDYrm = 5433,
- VANDNPDYrr = 5434,
- VANDNPDZ128rm = 5435,
- VANDNPDZ128rmb = 5436,
- VANDNPDZ128rmbk = 5437,
- VANDNPDZ128rmbkz = 5438,
- VANDNPDZ128rmk = 5439,
- VANDNPDZ128rmkz = 5440,
- VANDNPDZ128rr = 5441,
- VANDNPDZ128rrk = 5442,
- VANDNPDZ128rrkz = 5443,
- VANDNPDZ256rm = 5444,
- VANDNPDZ256rmb = 5445,
- VANDNPDZ256rmbk = 5446,
- VANDNPDZ256rmbkz = 5447,
- VANDNPDZ256rmk = 5448,
- VANDNPDZ256rmkz = 5449,
- VANDNPDZ256rr = 5450,
- VANDNPDZ256rrk = 5451,
- VANDNPDZ256rrkz = 5452,
- VANDNPDZrm = 5453,
- VANDNPDZrmb = 5454,
- VANDNPDZrmbk = 5455,
- VANDNPDZrmbkz = 5456,
- VANDNPDZrmk = 5457,
- VANDNPDZrmkz = 5458,
- VANDNPDZrr = 5459,
- VANDNPDZrrk = 5460,
- VANDNPDZrrkz = 5461,
- VANDNPDrm = 5462,
- VANDNPDrr = 5463,
- VANDNPSYrm = 5464,
- VANDNPSYrr = 5465,
- VANDNPSZ128rm = 5466,
- VANDNPSZ128rmb = 5467,
- VANDNPSZ128rmbk = 5468,
- VANDNPSZ128rmbkz = 5469,
- VANDNPSZ128rmk = 5470,
- VANDNPSZ128rmkz = 5471,
- VANDNPSZ128rr = 5472,
- VANDNPSZ128rrk = 5473,
- VANDNPSZ128rrkz = 5474,
- VANDNPSZ256rm = 5475,
- VANDNPSZ256rmb = 5476,
- VANDNPSZ256rmbk = 5477,
- VANDNPSZ256rmbkz = 5478,
- VANDNPSZ256rmk = 5479,
- VANDNPSZ256rmkz = 5480,
- VANDNPSZ256rr = 5481,
- VANDNPSZ256rrk = 5482,
- VANDNPSZ256rrkz = 5483,
- VANDNPSZrm = 5484,
- VANDNPSZrmb = 5485,
- VANDNPSZrmbk = 5486,
- VANDNPSZrmbkz = 5487,
- VANDNPSZrmk = 5488,
- VANDNPSZrmkz = 5489,
- VANDNPSZrr = 5490,
- VANDNPSZrrk = 5491,
- VANDNPSZrrkz = 5492,
- VANDNPSrm = 5493,
- VANDNPSrr = 5494,
- VANDPDYrm = 5495,
- VANDPDYrr = 5496,
- VANDPDZ128rm = 5497,
- VANDPDZ128rmb = 5498,
- VANDPDZ128rmbk = 5499,
- VANDPDZ128rmbkz = 5500,
- VANDPDZ128rmk = 5501,
- VANDPDZ128rmkz = 5502,
- VANDPDZ128rr = 5503,
- VANDPDZ128rrk = 5504,
- VANDPDZ128rrkz = 5505,
- VANDPDZ256rm = 5506,
- VANDPDZ256rmb = 5507,
- VANDPDZ256rmbk = 5508,
- VANDPDZ256rmbkz = 5509,
- VANDPDZ256rmk = 5510,
- VANDPDZ256rmkz = 5511,
- VANDPDZ256rr = 5512,
- VANDPDZ256rrk = 5513,
- VANDPDZ256rrkz = 5514,
- VANDPDZrm = 5515,
- VANDPDZrmb = 5516,
- VANDPDZrmbk = 5517,
- VANDPDZrmbkz = 5518,
- VANDPDZrmk = 5519,
- VANDPDZrmkz = 5520,
- VANDPDZrr = 5521,
- VANDPDZrrk = 5522,
- VANDPDZrrkz = 5523,
- VANDPDrm = 5524,
- VANDPDrr = 5525,
- VANDPSYrm = 5526,
- VANDPSYrr = 5527,
- VANDPSZ128rm = 5528,
- VANDPSZ128rmb = 5529,
- VANDPSZ128rmbk = 5530,
- VANDPSZ128rmbkz = 5531,
- VANDPSZ128rmk = 5532,
- VANDPSZ128rmkz = 5533,
- VANDPSZ128rr = 5534,
- VANDPSZ128rrk = 5535,
- VANDPSZ128rrkz = 5536,
- VANDPSZ256rm = 5537,
- VANDPSZ256rmb = 5538,
- VANDPSZ256rmbk = 5539,
- VANDPSZ256rmbkz = 5540,
- VANDPSZ256rmk = 5541,
- VANDPSZ256rmkz = 5542,
- VANDPSZ256rr = 5543,
- VANDPSZ256rrk = 5544,
- VANDPSZ256rrkz = 5545,
- VANDPSZrm = 5546,
- VANDPSZrmb = 5547,
- VANDPSZrmbk = 5548,
- VANDPSZrmbkz = 5549,
- VANDPSZrmk = 5550,
- VANDPSZrmkz = 5551,
- VANDPSZrr = 5552,
- VANDPSZrrk = 5553,
- VANDPSZrrkz = 5554,
- VANDPSrm = 5555,
- VANDPSrr = 5556,
- VASTART_SAVE_XMM_REGS = 5557,
- VBCSTNEBF162PSYrm = 5558,
- VBCSTNEBF162PSrm = 5559,
- VBCSTNESH2PSYrm = 5560,
- VBCSTNESH2PSrm = 5561,
- VBLENDMPDZ128rm = 5562,
- VBLENDMPDZ128rmb = 5563,
- VBLENDMPDZ128rmbk = 5564,
- VBLENDMPDZ128rmbkz = 5565,
- VBLENDMPDZ128rmk = 5566,
- VBLENDMPDZ128rmkz = 5567,
- VBLENDMPDZ128rr = 5568,
- VBLENDMPDZ128rrk = 5569,
- VBLENDMPDZ128rrkz = 5570,
- VBLENDMPDZ256rm = 5571,
- VBLENDMPDZ256rmb = 5572,
- VBLENDMPDZ256rmbk = 5573,
- VBLENDMPDZ256rmbkz = 5574,
- VBLENDMPDZ256rmk = 5575,
- VBLENDMPDZ256rmkz = 5576,
- VBLENDMPDZ256rr = 5577,
- VBLENDMPDZ256rrk = 5578,
- VBLENDMPDZ256rrkz = 5579,
- VBLENDMPDZrm = 5580,
- VBLENDMPDZrmb = 5581,
- VBLENDMPDZrmbk = 5582,
- VBLENDMPDZrmbkz = 5583,
- VBLENDMPDZrmk = 5584,
- VBLENDMPDZrmkz = 5585,
- VBLENDMPDZrr = 5586,
- VBLENDMPDZrrk = 5587,
- VBLENDMPDZrrkz = 5588,
- VBLENDMPSZ128rm = 5589,
- VBLENDMPSZ128rmb = 5590,
- VBLENDMPSZ128rmbk = 5591,
- VBLENDMPSZ128rmbkz = 5592,
- VBLENDMPSZ128rmk = 5593,
- VBLENDMPSZ128rmkz = 5594,
- VBLENDMPSZ128rr = 5595,
- VBLENDMPSZ128rrk = 5596,
- VBLENDMPSZ128rrkz = 5597,
- VBLENDMPSZ256rm = 5598,
- VBLENDMPSZ256rmb = 5599,
- VBLENDMPSZ256rmbk = 5600,
- VBLENDMPSZ256rmbkz = 5601,
- VBLENDMPSZ256rmk = 5602,
- VBLENDMPSZ256rmkz = 5603,
- VBLENDMPSZ256rr = 5604,
- VBLENDMPSZ256rrk = 5605,
- VBLENDMPSZ256rrkz = 5606,
- VBLENDMPSZrm = 5607,
- VBLENDMPSZrmb = 5608,
- VBLENDMPSZrmbk = 5609,
- VBLENDMPSZrmbkz = 5610,
- VBLENDMPSZrmk = 5611,
- VBLENDMPSZrmkz = 5612,
- VBLENDMPSZrr = 5613,
- VBLENDMPSZrrk = 5614,
- VBLENDMPSZrrkz = 5615,
- VBLENDPDYrmi = 5616,
- VBLENDPDYrri = 5617,
- VBLENDPDrmi = 5618,
- VBLENDPDrri = 5619,
- VBLENDPSYrmi = 5620,
- VBLENDPSYrri = 5621,
- VBLENDPSrmi = 5622,
- VBLENDPSrri = 5623,
- VBLENDVPDYrmr = 5624,
- VBLENDVPDYrrr = 5625,
- VBLENDVPDrmr = 5626,
- VBLENDVPDrrr = 5627,
- VBLENDVPSYrmr = 5628,
- VBLENDVPSYrrr = 5629,
- VBLENDVPSrmr = 5630,
- VBLENDVPSrrr = 5631,
- VBROADCASTF128rm = 5632,
- VBROADCASTF32X2Z256rm = 5633,
- VBROADCASTF32X2Z256rmk = 5634,
- VBROADCASTF32X2Z256rmkz = 5635,
- VBROADCASTF32X2Z256rr = 5636,
- VBROADCASTF32X2Z256rrk = 5637,
- VBROADCASTF32X2Z256rrkz = 5638,
- VBROADCASTF32X2Zrm = 5639,
- VBROADCASTF32X2Zrmk = 5640,
- VBROADCASTF32X2Zrmkz = 5641,
- VBROADCASTF32X2Zrr = 5642,
- VBROADCASTF32X2Zrrk = 5643,
- VBROADCASTF32X2Zrrkz = 5644,
- VBROADCASTF32X4Z256rm = 5645,
- VBROADCASTF32X4Z256rmk = 5646,
- VBROADCASTF32X4Z256rmkz = 5647,
- VBROADCASTF32X4Zrm = 5648,
- VBROADCASTF32X4Zrmk = 5649,
- VBROADCASTF32X4Zrmkz = 5650,
- VBROADCASTF32X8Zrm = 5651,
- VBROADCASTF32X8Zrmk = 5652,
- VBROADCASTF32X8Zrmkz = 5653,
- VBROADCASTF64X2Z256rm = 5654,
- VBROADCASTF64X2Z256rmk = 5655,
- VBROADCASTF64X2Z256rmkz = 5656,
- VBROADCASTF64X2Zrm = 5657,
- VBROADCASTF64X2Zrmk = 5658,
- VBROADCASTF64X2Zrmkz = 5659,
- VBROADCASTF64X4Zrm = 5660,
- VBROADCASTF64X4Zrmk = 5661,
- VBROADCASTF64X4Zrmkz = 5662,
- VBROADCASTI128rm = 5663,
- VBROADCASTI32X2Z128rm = 5664,
- VBROADCASTI32X2Z128rmk = 5665,
- VBROADCASTI32X2Z128rmkz = 5666,
- VBROADCASTI32X2Z128rr = 5667,
- VBROADCASTI32X2Z128rrk = 5668,
- VBROADCASTI32X2Z128rrkz = 5669,
- VBROADCASTI32X2Z256rm = 5670,
- VBROADCASTI32X2Z256rmk = 5671,
- VBROADCASTI32X2Z256rmkz = 5672,
- VBROADCASTI32X2Z256rr = 5673,
- VBROADCASTI32X2Z256rrk = 5674,
- VBROADCASTI32X2Z256rrkz = 5675,
- VBROADCASTI32X2Zrm = 5676,
- VBROADCASTI32X2Zrmk = 5677,
- VBROADCASTI32X2Zrmkz = 5678,
- VBROADCASTI32X2Zrr = 5679,
- VBROADCASTI32X2Zrrk = 5680,
- VBROADCASTI32X2Zrrkz = 5681,
- VBROADCASTI32X4Z256rm = 5682,
- VBROADCASTI32X4Z256rmk = 5683,
- VBROADCASTI32X4Z256rmkz = 5684,
- VBROADCASTI32X4Zrm = 5685,
- VBROADCASTI32X4Zrmk = 5686,
- VBROADCASTI32X4Zrmkz = 5687,
- VBROADCASTI32X8Zrm = 5688,
- VBROADCASTI32X8Zrmk = 5689,
- VBROADCASTI32X8Zrmkz = 5690,
- VBROADCASTI64X2Z256rm = 5691,
- VBROADCASTI64X2Z256rmk = 5692,
- VBROADCASTI64X2Z256rmkz = 5693,
- VBROADCASTI64X2Zrm = 5694,
- VBROADCASTI64X2Zrmk = 5695,
- VBROADCASTI64X2Zrmkz = 5696,
- VBROADCASTI64X4Zrm = 5697,
- VBROADCASTI64X4Zrmk = 5698,
- VBROADCASTI64X4Zrmkz = 5699,
- VBROADCASTSDYrm = 5700,
- VBROADCASTSDYrr = 5701,
- VBROADCASTSDZ256rm = 5702,
- VBROADCASTSDZ256rmk = 5703,
- VBROADCASTSDZ256rmkz = 5704,
- VBROADCASTSDZ256rr = 5705,
- VBROADCASTSDZ256rrk = 5706,
- VBROADCASTSDZ256rrkz = 5707,
- VBROADCASTSDZrm = 5708,
- VBROADCASTSDZrmk = 5709,
- VBROADCASTSDZrmkz = 5710,
- VBROADCASTSDZrr = 5711,
- VBROADCASTSDZrrk = 5712,
- VBROADCASTSDZrrkz = 5713,
- VBROADCASTSSYrm = 5714,
- VBROADCASTSSYrr = 5715,
- VBROADCASTSSZ128rm = 5716,
- VBROADCASTSSZ128rmk = 5717,
- VBROADCASTSSZ128rmkz = 5718,
- VBROADCASTSSZ128rr = 5719,
- VBROADCASTSSZ128rrk = 5720,
- VBROADCASTSSZ128rrkz = 5721,
- VBROADCASTSSZ256rm = 5722,
- VBROADCASTSSZ256rmk = 5723,
- VBROADCASTSSZ256rmkz = 5724,
- VBROADCASTSSZ256rr = 5725,
- VBROADCASTSSZ256rrk = 5726,
- VBROADCASTSSZ256rrkz = 5727,
- VBROADCASTSSZrm = 5728,
- VBROADCASTSSZrmk = 5729,
- VBROADCASTSSZrmkz = 5730,
- VBROADCASTSSZrr = 5731,
- VBROADCASTSSZrrk = 5732,
- VBROADCASTSSZrrkz = 5733,
- VBROADCASTSSrm = 5734,
- VBROADCASTSSrr = 5735,
- VCMPBF16Z128rmbi = 5736,
- VCMPBF16Z128rmbik = 5737,
- VCMPBF16Z128rmi = 5738,
- VCMPBF16Z128rmik = 5739,
- VCMPBF16Z128rri = 5740,
- VCMPBF16Z128rrik = 5741,
- VCMPBF16Z256rmbi = 5742,
- VCMPBF16Z256rmbik = 5743,
- VCMPBF16Z256rmi = 5744,
- VCMPBF16Z256rmik = 5745,
- VCMPBF16Z256rri = 5746,
- VCMPBF16Z256rrik = 5747,
- VCMPBF16Zrmbi = 5748,
- VCMPBF16Zrmbik = 5749,
- VCMPBF16Zrmi = 5750,
- VCMPBF16Zrmik = 5751,
- VCMPBF16Zrri = 5752,
- VCMPBF16Zrrik = 5753,
- VCMPPDYrmi = 5754,
- VCMPPDYrri = 5755,
- VCMPPDZ128rmbi = 5756,
- VCMPPDZ128rmbik = 5757,
- VCMPPDZ128rmi = 5758,
- VCMPPDZ128rmik = 5759,
- VCMPPDZ128rri = 5760,
- VCMPPDZ128rrik = 5761,
- VCMPPDZ256rmbi = 5762,
- VCMPPDZ256rmbik = 5763,
- VCMPPDZ256rmi = 5764,
- VCMPPDZ256rmik = 5765,
- VCMPPDZ256rri = 5766,
- VCMPPDZ256rrik = 5767,
- VCMPPDZrmbi = 5768,
- VCMPPDZrmbik = 5769,
- VCMPPDZrmi = 5770,
- VCMPPDZrmik = 5771,
- VCMPPDZrri = 5772,
- VCMPPDZrrib = 5773,
- VCMPPDZrribk = 5774,
- VCMPPDZrrik = 5775,
- VCMPPDrmi = 5776,
- VCMPPDrri = 5777,
- VCMPPHZ128rmbi = 5778,
- VCMPPHZ128rmbik = 5779,
- VCMPPHZ128rmi = 5780,
- VCMPPHZ128rmik = 5781,
- VCMPPHZ128rri = 5782,
- VCMPPHZ128rrik = 5783,
- VCMPPHZ256rmbi = 5784,
- VCMPPHZ256rmbik = 5785,
- VCMPPHZ256rmi = 5786,
- VCMPPHZ256rmik = 5787,
- VCMPPHZ256rri = 5788,
- VCMPPHZ256rrik = 5789,
- VCMPPHZrmbi = 5790,
- VCMPPHZrmbik = 5791,
- VCMPPHZrmi = 5792,
- VCMPPHZrmik = 5793,
- VCMPPHZrri = 5794,
- VCMPPHZrrib = 5795,
- VCMPPHZrribk = 5796,
- VCMPPHZrrik = 5797,
- VCMPPSYrmi = 5798,
- VCMPPSYrri = 5799,
- VCMPPSZ128rmbi = 5800,
- VCMPPSZ128rmbik = 5801,
- VCMPPSZ128rmi = 5802,
- VCMPPSZ128rmik = 5803,
- VCMPPSZ128rri = 5804,
- VCMPPSZ128rrik = 5805,
- VCMPPSZ256rmbi = 5806,
- VCMPPSZ256rmbik = 5807,
- VCMPPSZ256rmi = 5808,
- VCMPPSZ256rmik = 5809,
- VCMPPSZ256rri = 5810,
- VCMPPSZ256rrik = 5811,
- VCMPPSZrmbi = 5812,
- VCMPPSZrmbik = 5813,
- VCMPPSZrmi = 5814,
- VCMPPSZrmik = 5815,
- VCMPPSZrri = 5816,
- VCMPPSZrrib = 5817,
- VCMPPSZrribk = 5818,
- VCMPPSZrrik = 5819,
- VCMPPSrmi = 5820,
- VCMPPSrri = 5821,
- VCMPSDZrmi = 5822,
- VCMPSDZrmi_Int = 5823,
- VCMPSDZrmik_Int = 5824,
- VCMPSDZrri = 5825,
- VCMPSDZrri_Int = 5826,
- VCMPSDZrrib_Int = 5827,
- VCMPSDZrribk_Int = 5828,
- VCMPSDZrrik_Int = 5829,
- VCMPSDrmi = 5830,
- VCMPSDrmi_Int = 5831,
- VCMPSDrri = 5832,
- VCMPSDrri_Int = 5833,
- VCMPSHZrmi = 5834,
- VCMPSHZrmi_Int = 5835,
- VCMPSHZrmik_Int = 5836,
- VCMPSHZrri = 5837,
- VCMPSHZrri_Int = 5838,
- VCMPSHZrrib_Int = 5839,
- VCMPSHZrribk_Int = 5840,
- VCMPSHZrrik_Int = 5841,
- VCMPSSZrmi = 5842,
- VCMPSSZrmi_Int = 5843,
- VCMPSSZrmik_Int = 5844,
- VCMPSSZrri = 5845,
- VCMPSSZrri_Int = 5846,
- VCMPSSZrrib_Int = 5847,
- VCMPSSZrribk_Int = 5848,
- VCMPSSZrrik_Int = 5849,
- VCMPSSrmi = 5850,
- VCMPSSrmi_Int = 5851,
- VCMPSSrri = 5852,
- VCMPSSrri_Int = 5853,
- VCOMISBF16Zrm = 5854,
- VCOMISBF16Zrm_Int = 5855,
- VCOMISBF16Zrr = 5856,
- VCOMISBF16Zrr_Int = 5857,
- VCOMISDZrm = 5858,
- VCOMISDZrm_Int = 5859,
- VCOMISDZrr = 5860,
- VCOMISDZrr_Int = 5861,
- VCOMISDZrrb = 5862,
- VCOMISDrm = 5863,
- VCOMISDrm_Int = 5864,
- VCOMISDrr = 5865,
- VCOMISDrr_Int = 5866,
- VCOMISHZrm = 5867,
- VCOMISHZrm_Int = 5868,
- VCOMISHZrr = 5869,
- VCOMISHZrr_Int = 5870,
- VCOMISHZrrb = 5871,
- VCOMISSZrm = 5872,
- VCOMISSZrm_Int = 5873,
- VCOMISSZrr = 5874,
- VCOMISSZrr_Int = 5875,
- VCOMISSZrrb = 5876,
- VCOMISSrm = 5877,
- VCOMISSrm_Int = 5878,
- VCOMISSrr = 5879,
- VCOMISSrr_Int = 5880,
- VCOMPRESSPDZ128mr = 5881,
- VCOMPRESSPDZ128mrk = 5882,
- VCOMPRESSPDZ128rr = 5883,
- VCOMPRESSPDZ128rrk = 5884,
- VCOMPRESSPDZ128rrkz = 5885,
- VCOMPRESSPDZ256mr = 5886,
- VCOMPRESSPDZ256mrk = 5887,
- VCOMPRESSPDZ256rr = 5888,
- VCOMPRESSPDZ256rrk = 5889,
- VCOMPRESSPDZ256rrkz = 5890,
- VCOMPRESSPDZmr = 5891,
- VCOMPRESSPDZmrk = 5892,
- VCOMPRESSPDZrr = 5893,
- VCOMPRESSPDZrrk = 5894,
- VCOMPRESSPDZrrkz = 5895,
- VCOMPRESSPSZ128mr = 5896,
- VCOMPRESSPSZ128mrk = 5897,
- VCOMPRESSPSZ128rr = 5898,
- VCOMPRESSPSZ128rrk = 5899,
- VCOMPRESSPSZ128rrkz = 5900,
- VCOMPRESSPSZ256mr = 5901,
- VCOMPRESSPSZ256mrk = 5902,
- VCOMPRESSPSZ256rr = 5903,
- VCOMPRESSPSZ256rrk = 5904,
- VCOMPRESSPSZ256rrkz = 5905,
- VCOMPRESSPSZmr = 5906,
- VCOMPRESSPSZmrk = 5907,
- VCOMPRESSPSZrr = 5908,
- VCOMPRESSPSZrrk = 5909,
- VCOMPRESSPSZrrkz = 5910,
- VCOMXSDZrm_Int = 5911,
- VCOMXSDZrr_Int = 5912,
- VCOMXSDZrrb_Int = 5913,
- VCOMXSHZrm_Int = 5914,
- VCOMXSHZrr_Int = 5915,
- VCOMXSHZrrb_Int = 5916,
- VCOMXSSZrm_Int = 5917,
- VCOMXSSZrr_Int = 5918,
- VCOMXSSZrrb_Int = 5919,
- VCVT2PH2BF8SZ128rm = 5920,
- VCVT2PH2BF8SZ128rmb = 5921,
- VCVT2PH2BF8SZ128rmbk = 5922,
- VCVT2PH2BF8SZ128rmbkz = 5923,
- VCVT2PH2BF8SZ128rmk = 5924,
- VCVT2PH2BF8SZ128rmkz = 5925,
- VCVT2PH2BF8SZ128rr = 5926,
- VCVT2PH2BF8SZ128rrk = 5927,
- VCVT2PH2BF8SZ128rrkz = 5928,
- VCVT2PH2BF8SZ256rm = 5929,
- VCVT2PH2BF8SZ256rmb = 5930,
- VCVT2PH2BF8SZ256rmbk = 5931,
- VCVT2PH2BF8SZ256rmbkz = 5932,
- VCVT2PH2BF8SZ256rmk = 5933,
- VCVT2PH2BF8SZ256rmkz = 5934,
- VCVT2PH2BF8SZ256rr = 5935,
- VCVT2PH2BF8SZ256rrk = 5936,
- VCVT2PH2BF8SZ256rrkz = 5937,
- VCVT2PH2BF8SZrm = 5938,
- VCVT2PH2BF8SZrmb = 5939,
- VCVT2PH2BF8SZrmbk = 5940,
- VCVT2PH2BF8SZrmbkz = 5941,
- VCVT2PH2BF8SZrmk = 5942,
- VCVT2PH2BF8SZrmkz = 5943,
- VCVT2PH2BF8SZrr = 5944,
- VCVT2PH2BF8SZrrk = 5945,
- VCVT2PH2BF8SZrrkz = 5946,
- VCVT2PH2BF8Z128rm = 5947,
- VCVT2PH2BF8Z128rmb = 5948,
- VCVT2PH2BF8Z128rmbk = 5949,
- VCVT2PH2BF8Z128rmbkz = 5950,
- VCVT2PH2BF8Z128rmk = 5951,
- VCVT2PH2BF8Z128rmkz = 5952,
- VCVT2PH2BF8Z128rr = 5953,
- VCVT2PH2BF8Z128rrk = 5954,
- VCVT2PH2BF8Z128rrkz = 5955,
- VCVT2PH2BF8Z256rm = 5956,
- VCVT2PH2BF8Z256rmb = 5957,
- VCVT2PH2BF8Z256rmbk = 5958,
- VCVT2PH2BF8Z256rmbkz = 5959,
- VCVT2PH2BF8Z256rmk = 5960,
- VCVT2PH2BF8Z256rmkz = 5961,
- VCVT2PH2BF8Z256rr = 5962,
- VCVT2PH2BF8Z256rrk = 5963,
- VCVT2PH2BF8Z256rrkz = 5964,
- VCVT2PH2BF8Zrm = 5965,
- VCVT2PH2BF8Zrmb = 5966,
- VCVT2PH2BF8Zrmbk = 5967,
- VCVT2PH2BF8Zrmbkz = 5968,
- VCVT2PH2BF8Zrmk = 5969,
- VCVT2PH2BF8Zrmkz = 5970,
- VCVT2PH2BF8Zrr = 5971,
- VCVT2PH2BF8Zrrk = 5972,
- VCVT2PH2BF8Zrrkz = 5973,
- VCVT2PH2HF8SZ128rm = 5974,
- VCVT2PH2HF8SZ128rmb = 5975,
- VCVT2PH2HF8SZ128rmbk = 5976,
- VCVT2PH2HF8SZ128rmbkz = 5977,
- VCVT2PH2HF8SZ128rmk = 5978,
- VCVT2PH2HF8SZ128rmkz = 5979,
- VCVT2PH2HF8SZ128rr = 5980,
- VCVT2PH2HF8SZ128rrk = 5981,
- VCVT2PH2HF8SZ128rrkz = 5982,
- VCVT2PH2HF8SZ256rm = 5983,
- VCVT2PH2HF8SZ256rmb = 5984,
- VCVT2PH2HF8SZ256rmbk = 5985,
- VCVT2PH2HF8SZ256rmbkz = 5986,
- VCVT2PH2HF8SZ256rmk = 5987,
- VCVT2PH2HF8SZ256rmkz = 5988,
- VCVT2PH2HF8SZ256rr = 5989,
- VCVT2PH2HF8SZ256rrk = 5990,
- VCVT2PH2HF8SZ256rrkz = 5991,
- VCVT2PH2HF8SZrm = 5992,
- VCVT2PH2HF8SZrmb = 5993,
- VCVT2PH2HF8SZrmbk = 5994,
- VCVT2PH2HF8SZrmbkz = 5995,
- VCVT2PH2HF8SZrmk = 5996,
- VCVT2PH2HF8SZrmkz = 5997,
- VCVT2PH2HF8SZrr = 5998,
- VCVT2PH2HF8SZrrk = 5999,
- VCVT2PH2HF8SZrrkz = 6000,
- VCVT2PH2HF8Z128rm = 6001,
- VCVT2PH2HF8Z128rmb = 6002,
- VCVT2PH2HF8Z128rmbk = 6003,
- VCVT2PH2HF8Z128rmbkz = 6004,
- VCVT2PH2HF8Z128rmk = 6005,
- VCVT2PH2HF8Z128rmkz = 6006,
- VCVT2PH2HF8Z128rr = 6007,
- VCVT2PH2HF8Z128rrk = 6008,
- VCVT2PH2HF8Z128rrkz = 6009,
- VCVT2PH2HF8Z256rm = 6010,
- VCVT2PH2HF8Z256rmb = 6011,
- VCVT2PH2HF8Z256rmbk = 6012,
- VCVT2PH2HF8Z256rmbkz = 6013,
- VCVT2PH2HF8Z256rmk = 6014,
- VCVT2PH2HF8Z256rmkz = 6015,
- VCVT2PH2HF8Z256rr = 6016,
- VCVT2PH2HF8Z256rrk = 6017,
- VCVT2PH2HF8Z256rrkz = 6018,
- VCVT2PH2HF8Zrm = 6019,
- VCVT2PH2HF8Zrmb = 6020,
- VCVT2PH2HF8Zrmbk = 6021,
- VCVT2PH2HF8Zrmbkz = 6022,
- VCVT2PH2HF8Zrmk = 6023,
- VCVT2PH2HF8Zrmkz = 6024,
- VCVT2PH2HF8Zrr = 6025,
- VCVT2PH2HF8Zrrk = 6026,
- VCVT2PH2HF8Zrrkz = 6027,
- VCVT2PS2PHXZ128rm = 6028,
- VCVT2PS2PHXZ128rmb = 6029,
- VCVT2PS2PHXZ128rmbk = 6030,
- VCVT2PS2PHXZ128rmbkz = 6031,
- VCVT2PS2PHXZ128rmk = 6032,
- VCVT2PS2PHXZ128rmkz = 6033,
- VCVT2PS2PHXZ128rr = 6034,
- VCVT2PS2PHXZ128rrk = 6035,
- VCVT2PS2PHXZ128rrkz = 6036,
- VCVT2PS2PHXZ256rm = 6037,
- VCVT2PS2PHXZ256rmb = 6038,
- VCVT2PS2PHXZ256rmbk = 6039,
- VCVT2PS2PHXZ256rmbkz = 6040,
- VCVT2PS2PHXZ256rmk = 6041,
- VCVT2PS2PHXZ256rmkz = 6042,
- VCVT2PS2PHXZ256rr = 6043,
- VCVT2PS2PHXZ256rrk = 6044,
- VCVT2PS2PHXZ256rrkz = 6045,
- VCVT2PS2PHXZrm = 6046,
- VCVT2PS2PHXZrmb = 6047,
- VCVT2PS2PHXZrmbk = 6048,
- VCVT2PS2PHXZrmbkz = 6049,
- VCVT2PS2PHXZrmk = 6050,
- VCVT2PS2PHXZrmkz = 6051,
- VCVT2PS2PHXZrr = 6052,
- VCVT2PS2PHXZrrb = 6053,
- VCVT2PS2PHXZrrbk = 6054,
- VCVT2PS2PHXZrrbkz = 6055,
- VCVT2PS2PHXZrrk = 6056,
- VCVT2PS2PHXZrrkz = 6057,
- VCVTBF162IBSZ128rm = 6058,
- VCVTBF162IBSZ128rmb = 6059,
- VCVTBF162IBSZ128rmbk = 6060,
- VCVTBF162IBSZ128rmbkz = 6061,
- VCVTBF162IBSZ128rmk = 6062,
- VCVTBF162IBSZ128rmkz = 6063,
- VCVTBF162IBSZ128rr = 6064,
- VCVTBF162IBSZ128rrk = 6065,
- VCVTBF162IBSZ128rrkz = 6066,
- VCVTBF162IBSZ256rm = 6067,
- VCVTBF162IBSZ256rmb = 6068,
- VCVTBF162IBSZ256rmbk = 6069,
- VCVTBF162IBSZ256rmbkz = 6070,
- VCVTBF162IBSZ256rmk = 6071,
- VCVTBF162IBSZ256rmkz = 6072,
- VCVTBF162IBSZ256rr = 6073,
- VCVTBF162IBSZ256rrk = 6074,
- VCVTBF162IBSZ256rrkz = 6075,
- VCVTBF162IBSZrm = 6076,
- VCVTBF162IBSZrmb = 6077,
- VCVTBF162IBSZrmbk = 6078,
- VCVTBF162IBSZrmbkz = 6079,
- VCVTBF162IBSZrmk = 6080,
- VCVTBF162IBSZrmkz = 6081,
- VCVTBF162IBSZrr = 6082,
- VCVTBF162IBSZrrk = 6083,
- VCVTBF162IBSZrrkz = 6084,
- VCVTBF162IUBSZ128rm = 6085,
- VCVTBF162IUBSZ128rmb = 6086,
- VCVTBF162IUBSZ128rmbk = 6087,
- VCVTBF162IUBSZ128rmbkz = 6088,
- VCVTBF162IUBSZ128rmk = 6089,
- VCVTBF162IUBSZ128rmkz = 6090,
- VCVTBF162IUBSZ128rr = 6091,
- VCVTBF162IUBSZ128rrk = 6092,
- VCVTBF162IUBSZ128rrkz = 6093,
- VCVTBF162IUBSZ256rm = 6094,
- VCVTBF162IUBSZ256rmb = 6095,
- VCVTBF162IUBSZ256rmbk = 6096,
- VCVTBF162IUBSZ256rmbkz = 6097,
- VCVTBF162IUBSZ256rmk = 6098,
- VCVTBF162IUBSZ256rmkz = 6099,
- VCVTBF162IUBSZ256rr = 6100,
- VCVTBF162IUBSZ256rrk = 6101,
- VCVTBF162IUBSZ256rrkz = 6102,
- VCVTBF162IUBSZrm = 6103,
- VCVTBF162IUBSZrmb = 6104,
- VCVTBF162IUBSZrmbk = 6105,
- VCVTBF162IUBSZrmbkz = 6106,
- VCVTBF162IUBSZrmk = 6107,
- VCVTBF162IUBSZrmkz = 6108,
- VCVTBF162IUBSZrr = 6109,
- VCVTBF162IUBSZrrk = 6110,
- VCVTBF162IUBSZrrkz = 6111,
- VCVTBIASPH2BF8SZ128rm = 6112,
- VCVTBIASPH2BF8SZ128rmb = 6113,
- VCVTBIASPH2BF8SZ128rmbk = 6114,
- VCVTBIASPH2BF8SZ128rmbkz = 6115,
- VCVTBIASPH2BF8SZ128rmk = 6116,
- VCVTBIASPH2BF8SZ128rmkz = 6117,
- VCVTBIASPH2BF8SZ128rr = 6118,
- VCVTBIASPH2BF8SZ128rrk = 6119,
- VCVTBIASPH2BF8SZ128rrkz = 6120,
- VCVTBIASPH2BF8SZ256rm = 6121,
- VCVTBIASPH2BF8SZ256rmb = 6122,
- VCVTBIASPH2BF8SZ256rmbk = 6123,
- VCVTBIASPH2BF8SZ256rmbkz = 6124,
- VCVTBIASPH2BF8SZ256rmk = 6125,
- VCVTBIASPH2BF8SZ256rmkz = 6126,
- VCVTBIASPH2BF8SZ256rr = 6127,
- VCVTBIASPH2BF8SZ256rrk = 6128,
- VCVTBIASPH2BF8SZ256rrkz = 6129,
- VCVTBIASPH2BF8SZrm = 6130,
- VCVTBIASPH2BF8SZrmb = 6131,
- VCVTBIASPH2BF8SZrmbk = 6132,
- VCVTBIASPH2BF8SZrmbkz = 6133,
- VCVTBIASPH2BF8SZrmk = 6134,
- VCVTBIASPH2BF8SZrmkz = 6135,
- VCVTBIASPH2BF8SZrr = 6136,
- VCVTBIASPH2BF8SZrrk = 6137,
- VCVTBIASPH2BF8SZrrkz = 6138,
- VCVTBIASPH2BF8Z128rm = 6139,
- VCVTBIASPH2BF8Z128rmb = 6140,
- VCVTBIASPH2BF8Z128rmbk = 6141,
- VCVTBIASPH2BF8Z128rmbkz = 6142,
- VCVTBIASPH2BF8Z128rmk = 6143,
- VCVTBIASPH2BF8Z128rmkz = 6144,
- VCVTBIASPH2BF8Z128rr = 6145,
- VCVTBIASPH2BF8Z128rrk = 6146,
- VCVTBIASPH2BF8Z128rrkz = 6147,
- VCVTBIASPH2BF8Z256rm = 6148,
- VCVTBIASPH2BF8Z256rmb = 6149,
- VCVTBIASPH2BF8Z256rmbk = 6150,
- VCVTBIASPH2BF8Z256rmbkz = 6151,
- VCVTBIASPH2BF8Z256rmk = 6152,
- VCVTBIASPH2BF8Z256rmkz = 6153,
- VCVTBIASPH2BF8Z256rr = 6154,
- VCVTBIASPH2BF8Z256rrk = 6155,
- VCVTBIASPH2BF8Z256rrkz = 6156,
- VCVTBIASPH2BF8Zrm = 6157,
- VCVTBIASPH2BF8Zrmb = 6158,
- VCVTBIASPH2BF8Zrmbk = 6159,
- VCVTBIASPH2BF8Zrmbkz = 6160,
- VCVTBIASPH2BF8Zrmk = 6161,
- VCVTBIASPH2BF8Zrmkz = 6162,
- VCVTBIASPH2BF8Zrr = 6163,
- VCVTBIASPH2BF8Zrrk = 6164,
- VCVTBIASPH2BF8Zrrkz = 6165,
- VCVTBIASPH2HF8SZ128rm = 6166,
- VCVTBIASPH2HF8SZ128rmb = 6167,
- VCVTBIASPH2HF8SZ128rmbk = 6168,
- VCVTBIASPH2HF8SZ128rmbkz = 6169,
- VCVTBIASPH2HF8SZ128rmk = 6170,
- VCVTBIASPH2HF8SZ128rmkz = 6171,
- VCVTBIASPH2HF8SZ128rr = 6172,
- VCVTBIASPH2HF8SZ128rrk = 6173,
- VCVTBIASPH2HF8SZ128rrkz = 6174,
- VCVTBIASPH2HF8SZ256rm = 6175,
- VCVTBIASPH2HF8SZ256rmb = 6176,
- VCVTBIASPH2HF8SZ256rmbk = 6177,
- VCVTBIASPH2HF8SZ256rmbkz = 6178,
- VCVTBIASPH2HF8SZ256rmk = 6179,
- VCVTBIASPH2HF8SZ256rmkz = 6180,
- VCVTBIASPH2HF8SZ256rr = 6181,
- VCVTBIASPH2HF8SZ256rrk = 6182,
- VCVTBIASPH2HF8SZ256rrkz = 6183,
- VCVTBIASPH2HF8SZrm = 6184,
- VCVTBIASPH2HF8SZrmb = 6185,
- VCVTBIASPH2HF8SZrmbk = 6186,
- VCVTBIASPH2HF8SZrmbkz = 6187,
- VCVTBIASPH2HF8SZrmk = 6188,
- VCVTBIASPH2HF8SZrmkz = 6189,
- VCVTBIASPH2HF8SZrr = 6190,
- VCVTBIASPH2HF8SZrrk = 6191,
- VCVTBIASPH2HF8SZrrkz = 6192,
- VCVTBIASPH2HF8Z128rm = 6193,
- VCVTBIASPH2HF8Z128rmb = 6194,
- VCVTBIASPH2HF8Z128rmbk = 6195,
- VCVTBIASPH2HF8Z128rmbkz = 6196,
- VCVTBIASPH2HF8Z128rmk = 6197,
- VCVTBIASPH2HF8Z128rmkz = 6198,
- VCVTBIASPH2HF8Z128rr = 6199,
- VCVTBIASPH2HF8Z128rrk = 6200,
- VCVTBIASPH2HF8Z128rrkz = 6201,
- VCVTBIASPH2HF8Z256rm = 6202,
- VCVTBIASPH2HF8Z256rmb = 6203,
- VCVTBIASPH2HF8Z256rmbk = 6204,
- VCVTBIASPH2HF8Z256rmbkz = 6205,
- VCVTBIASPH2HF8Z256rmk = 6206,
- VCVTBIASPH2HF8Z256rmkz = 6207,
- VCVTBIASPH2HF8Z256rr = 6208,
- VCVTBIASPH2HF8Z256rrk = 6209,
- VCVTBIASPH2HF8Z256rrkz = 6210,
- VCVTBIASPH2HF8Zrm = 6211,
- VCVTBIASPH2HF8Zrmb = 6212,
- VCVTBIASPH2HF8Zrmbk = 6213,
- VCVTBIASPH2HF8Zrmbkz = 6214,
- VCVTBIASPH2HF8Zrmk = 6215,
- VCVTBIASPH2HF8Zrmkz = 6216,
- VCVTBIASPH2HF8Zrr = 6217,
- VCVTBIASPH2HF8Zrrk = 6218,
- VCVTBIASPH2HF8Zrrkz = 6219,
- VCVTDQ2PDYrm = 6220,
- VCVTDQ2PDYrr = 6221,
- VCVTDQ2PDZ128rm = 6222,
- VCVTDQ2PDZ128rmb = 6223,
- VCVTDQ2PDZ128rmbk = 6224,
- VCVTDQ2PDZ128rmbkz = 6225,
- VCVTDQ2PDZ128rmk = 6226,
- VCVTDQ2PDZ128rmkz = 6227,
- VCVTDQ2PDZ128rr = 6228,
- VCVTDQ2PDZ128rrk = 6229,
- VCVTDQ2PDZ128rrkz = 6230,
- VCVTDQ2PDZ256rm = 6231,
- VCVTDQ2PDZ256rmb = 6232,
- VCVTDQ2PDZ256rmbk = 6233,
- VCVTDQ2PDZ256rmbkz = 6234,
- VCVTDQ2PDZ256rmk = 6235,
- VCVTDQ2PDZ256rmkz = 6236,
- VCVTDQ2PDZ256rr = 6237,
- VCVTDQ2PDZ256rrk = 6238,
- VCVTDQ2PDZ256rrkz = 6239,
- VCVTDQ2PDZrm = 6240,
- VCVTDQ2PDZrmb = 6241,
- VCVTDQ2PDZrmbk = 6242,
- VCVTDQ2PDZrmbkz = 6243,
- VCVTDQ2PDZrmk = 6244,
- VCVTDQ2PDZrmkz = 6245,
- VCVTDQ2PDZrr = 6246,
- VCVTDQ2PDZrrk = 6247,
- VCVTDQ2PDZrrkz = 6248,
- VCVTDQ2PDrm = 6249,
- VCVTDQ2PDrr = 6250,
- VCVTDQ2PHZ128rm = 6251,
- VCVTDQ2PHZ128rmb = 6252,
- VCVTDQ2PHZ128rmbk = 6253,
- VCVTDQ2PHZ128rmbkz = 6254,
- VCVTDQ2PHZ128rmk = 6255,
- VCVTDQ2PHZ128rmkz = 6256,
- VCVTDQ2PHZ128rr = 6257,
- VCVTDQ2PHZ128rrk = 6258,
- VCVTDQ2PHZ128rrkz = 6259,
- VCVTDQ2PHZ256rm = 6260,
- VCVTDQ2PHZ256rmb = 6261,
- VCVTDQ2PHZ256rmbk = 6262,
- VCVTDQ2PHZ256rmbkz = 6263,
- VCVTDQ2PHZ256rmk = 6264,
- VCVTDQ2PHZ256rmkz = 6265,
- VCVTDQ2PHZ256rr = 6266,
- VCVTDQ2PHZ256rrk = 6267,
- VCVTDQ2PHZ256rrkz = 6268,
- VCVTDQ2PHZrm = 6269,
- VCVTDQ2PHZrmb = 6270,
- VCVTDQ2PHZrmbk = 6271,
- VCVTDQ2PHZrmbkz = 6272,
- VCVTDQ2PHZrmk = 6273,
- VCVTDQ2PHZrmkz = 6274,
- VCVTDQ2PHZrr = 6275,
- VCVTDQ2PHZrrb = 6276,
- VCVTDQ2PHZrrbk = 6277,
- VCVTDQ2PHZrrbkz = 6278,
- VCVTDQ2PHZrrk = 6279,
- VCVTDQ2PHZrrkz = 6280,
- VCVTDQ2PSYrm = 6281,
- VCVTDQ2PSYrr = 6282,
- VCVTDQ2PSZ128rm = 6283,
- VCVTDQ2PSZ128rmb = 6284,
- VCVTDQ2PSZ128rmbk = 6285,
- VCVTDQ2PSZ128rmbkz = 6286,
- VCVTDQ2PSZ128rmk = 6287,
- VCVTDQ2PSZ128rmkz = 6288,
- VCVTDQ2PSZ128rr = 6289,
- VCVTDQ2PSZ128rrk = 6290,
- VCVTDQ2PSZ128rrkz = 6291,
- VCVTDQ2PSZ256rm = 6292,
- VCVTDQ2PSZ256rmb = 6293,
- VCVTDQ2PSZ256rmbk = 6294,
- VCVTDQ2PSZ256rmbkz = 6295,
- VCVTDQ2PSZ256rmk = 6296,
- VCVTDQ2PSZ256rmkz = 6297,
- VCVTDQ2PSZ256rr = 6298,
- VCVTDQ2PSZ256rrk = 6299,
- VCVTDQ2PSZ256rrkz = 6300,
- VCVTDQ2PSZrm = 6301,
- VCVTDQ2PSZrmb = 6302,
- VCVTDQ2PSZrmbk = 6303,
- VCVTDQ2PSZrmbkz = 6304,
- VCVTDQ2PSZrmk = 6305,
- VCVTDQ2PSZrmkz = 6306,
- VCVTDQ2PSZrr = 6307,
- VCVTDQ2PSZrrb = 6308,
- VCVTDQ2PSZrrbk = 6309,
- VCVTDQ2PSZrrbkz = 6310,
- VCVTDQ2PSZrrk = 6311,
- VCVTDQ2PSZrrkz = 6312,
- VCVTDQ2PSrm = 6313,
- VCVTDQ2PSrr = 6314,
- VCVTHF82PHZ128rm = 6315,
- VCVTHF82PHZ128rmk = 6316,
- VCVTHF82PHZ128rmkz = 6317,
- VCVTHF82PHZ128rr = 6318,
- VCVTHF82PHZ128rrk = 6319,
- VCVTHF82PHZ128rrkz = 6320,
- VCVTHF82PHZ256rm = 6321,
- VCVTHF82PHZ256rmk = 6322,
- VCVTHF82PHZ256rmkz = 6323,
- VCVTHF82PHZ256rr = 6324,
- VCVTHF82PHZ256rrk = 6325,
- VCVTHF82PHZ256rrkz = 6326,
- VCVTHF82PHZrm = 6327,
- VCVTHF82PHZrmk = 6328,
- VCVTHF82PHZrmkz = 6329,
- VCVTHF82PHZrr = 6330,
- VCVTHF82PHZrrk = 6331,
- VCVTHF82PHZrrkz = 6332,
- VCVTNE2PS2BF16Z128rm = 6333,
- VCVTNE2PS2BF16Z128rmb = 6334,
- VCVTNE2PS2BF16Z128rmbk = 6335,
- VCVTNE2PS2BF16Z128rmbkz = 6336,
- VCVTNE2PS2BF16Z128rmk = 6337,
- VCVTNE2PS2BF16Z128rmkz = 6338,
- VCVTNE2PS2BF16Z128rr = 6339,
- VCVTNE2PS2BF16Z128rrk = 6340,
- VCVTNE2PS2BF16Z128rrkz = 6341,
- VCVTNE2PS2BF16Z256rm = 6342,
- VCVTNE2PS2BF16Z256rmb = 6343,
- VCVTNE2PS2BF16Z256rmbk = 6344,
- VCVTNE2PS2BF16Z256rmbkz = 6345,
- VCVTNE2PS2BF16Z256rmk = 6346,
- VCVTNE2PS2BF16Z256rmkz = 6347,
- VCVTNE2PS2BF16Z256rr = 6348,
- VCVTNE2PS2BF16Z256rrk = 6349,
- VCVTNE2PS2BF16Z256rrkz = 6350,
- VCVTNE2PS2BF16Zrm = 6351,
- VCVTNE2PS2BF16Zrmb = 6352,
- VCVTNE2PS2BF16Zrmbk = 6353,
- VCVTNE2PS2BF16Zrmbkz = 6354,
- VCVTNE2PS2BF16Zrmk = 6355,
- VCVTNE2PS2BF16Zrmkz = 6356,
- VCVTNE2PS2BF16Zrr = 6357,
- VCVTNE2PS2BF16Zrrk = 6358,
- VCVTNE2PS2BF16Zrrkz = 6359,
- VCVTNEEBF162PSYrm = 6360,
- VCVTNEEBF162PSrm = 6361,
- VCVTNEEPH2PSYrm = 6362,
- VCVTNEEPH2PSrm = 6363,
- VCVTNEOBF162PSYrm = 6364,
- VCVTNEOBF162PSrm = 6365,
- VCVTNEOPH2PSYrm = 6366,
- VCVTNEOPH2PSrm = 6367,
- VCVTNEPS2BF16Yrm = 6368,
- VCVTNEPS2BF16Yrr = 6369,
- VCVTNEPS2BF16Z128rm = 6370,
- VCVTNEPS2BF16Z128rmb = 6371,
- VCVTNEPS2BF16Z128rmbk = 6372,
- VCVTNEPS2BF16Z128rmbkz = 6373,
- VCVTNEPS2BF16Z128rmk = 6374,
- VCVTNEPS2BF16Z128rmkz = 6375,
- VCVTNEPS2BF16Z128rr = 6376,
- VCVTNEPS2BF16Z128rrk = 6377,
- VCVTNEPS2BF16Z128rrkz = 6378,
- VCVTNEPS2BF16Z256rm = 6379,
- VCVTNEPS2BF16Z256rmb = 6380,
- VCVTNEPS2BF16Z256rmbk = 6381,
- VCVTNEPS2BF16Z256rmbkz = 6382,
- VCVTNEPS2BF16Z256rmk = 6383,
- VCVTNEPS2BF16Z256rmkz = 6384,
- VCVTNEPS2BF16Z256rr = 6385,
- VCVTNEPS2BF16Z256rrk = 6386,
- VCVTNEPS2BF16Z256rrkz = 6387,
- VCVTNEPS2BF16Zrm = 6388,
- VCVTNEPS2BF16Zrmb = 6389,
- VCVTNEPS2BF16Zrmbk = 6390,
- VCVTNEPS2BF16Zrmbkz = 6391,
- VCVTNEPS2BF16Zrmk = 6392,
- VCVTNEPS2BF16Zrmkz = 6393,
- VCVTNEPS2BF16Zrr = 6394,
- VCVTNEPS2BF16Zrrk = 6395,
- VCVTNEPS2BF16Zrrkz = 6396,
- VCVTNEPS2BF16rm = 6397,
- VCVTNEPS2BF16rr = 6398,
- VCVTPD2DQYrm = 6399,
- VCVTPD2DQYrr = 6400,
- VCVTPD2DQZ128rm = 6401,
- VCVTPD2DQZ128rmb = 6402,
- VCVTPD2DQZ128rmbk = 6403,
- VCVTPD2DQZ128rmbkz = 6404,
- VCVTPD2DQZ128rmk = 6405,
- VCVTPD2DQZ128rmkz = 6406,
- VCVTPD2DQZ128rr = 6407,
- VCVTPD2DQZ128rrk = 6408,
- VCVTPD2DQZ128rrkz = 6409,
- VCVTPD2DQZ256rm = 6410,
- VCVTPD2DQZ256rmb = 6411,
- VCVTPD2DQZ256rmbk = 6412,
- VCVTPD2DQZ256rmbkz = 6413,
- VCVTPD2DQZ256rmk = 6414,
- VCVTPD2DQZ256rmkz = 6415,
- VCVTPD2DQZ256rr = 6416,
- VCVTPD2DQZ256rrk = 6417,
- VCVTPD2DQZ256rrkz = 6418,
- VCVTPD2DQZrm = 6419,
- VCVTPD2DQZrmb = 6420,
- VCVTPD2DQZrmbk = 6421,
- VCVTPD2DQZrmbkz = 6422,
- VCVTPD2DQZrmk = 6423,
- VCVTPD2DQZrmkz = 6424,
- VCVTPD2DQZrr = 6425,
- VCVTPD2DQZrrb = 6426,
- VCVTPD2DQZrrbk = 6427,
- VCVTPD2DQZrrbkz = 6428,
- VCVTPD2DQZrrk = 6429,
- VCVTPD2DQZrrkz = 6430,
- VCVTPD2DQrm = 6431,
- VCVTPD2DQrr = 6432,
- VCVTPD2PHZ128rm = 6433,
- VCVTPD2PHZ128rmb = 6434,
- VCVTPD2PHZ128rmbk = 6435,
- VCVTPD2PHZ128rmbkz = 6436,
- VCVTPD2PHZ128rmk = 6437,
- VCVTPD2PHZ128rmkz = 6438,
- VCVTPD2PHZ128rr = 6439,
- VCVTPD2PHZ128rrk = 6440,
- VCVTPD2PHZ128rrkz = 6441,
- VCVTPD2PHZ256rm = 6442,
- VCVTPD2PHZ256rmb = 6443,
- VCVTPD2PHZ256rmbk = 6444,
- VCVTPD2PHZ256rmbkz = 6445,
- VCVTPD2PHZ256rmk = 6446,
- VCVTPD2PHZ256rmkz = 6447,
- VCVTPD2PHZ256rr = 6448,
- VCVTPD2PHZ256rrk = 6449,
- VCVTPD2PHZ256rrkz = 6450,
- VCVTPD2PHZrm = 6451,
- VCVTPD2PHZrmb = 6452,
- VCVTPD2PHZrmbk = 6453,
- VCVTPD2PHZrmbkz = 6454,
- VCVTPD2PHZrmk = 6455,
- VCVTPD2PHZrmkz = 6456,
- VCVTPD2PHZrr = 6457,
- VCVTPD2PHZrrb = 6458,
- VCVTPD2PHZrrbk = 6459,
- VCVTPD2PHZrrbkz = 6460,
- VCVTPD2PHZrrk = 6461,
- VCVTPD2PHZrrkz = 6462,
- VCVTPD2PSYrm = 6463,
- VCVTPD2PSYrr = 6464,
- VCVTPD2PSZ128rm = 6465,
- VCVTPD2PSZ128rmb = 6466,
- VCVTPD2PSZ128rmbk = 6467,
- VCVTPD2PSZ128rmbkz = 6468,
- VCVTPD2PSZ128rmk = 6469,
- VCVTPD2PSZ128rmkz = 6470,
- VCVTPD2PSZ128rr = 6471,
- VCVTPD2PSZ128rrk = 6472,
- VCVTPD2PSZ128rrkz = 6473,
- VCVTPD2PSZ256rm = 6474,
- VCVTPD2PSZ256rmb = 6475,
- VCVTPD2PSZ256rmbk = 6476,
- VCVTPD2PSZ256rmbkz = 6477,
- VCVTPD2PSZ256rmk = 6478,
- VCVTPD2PSZ256rmkz = 6479,
- VCVTPD2PSZ256rr = 6480,
- VCVTPD2PSZ256rrk = 6481,
- VCVTPD2PSZ256rrkz = 6482,
- VCVTPD2PSZrm = 6483,
- VCVTPD2PSZrmb = 6484,
- VCVTPD2PSZrmbk = 6485,
- VCVTPD2PSZrmbkz = 6486,
- VCVTPD2PSZrmk = 6487,
- VCVTPD2PSZrmkz = 6488,
- VCVTPD2PSZrr = 6489,
- VCVTPD2PSZrrb = 6490,
- VCVTPD2PSZrrbk = 6491,
- VCVTPD2PSZrrbkz = 6492,
- VCVTPD2PSZrrk = 6493,
- VCVTPD2PSZrrkz = 6494,
- VCVTPD2PSrm = 6495,
- VCVTPD2PSrr = 6496,
- VCVTPD2QQZ128rm = 6497,
- VCVTPD2QQZ128rmb = 6498,
- VCVTPD2QQZ128rmbk = 6499,
- VCVTPD2QQZ128rmbkz = 6500,
- VCVTPD2QQZ128rmk = 6501,
- VCVTPD2QQZ128rmkz = 6502,
- VCVTPD2QQZ128rr = 6503,
- VCVTPD2QQZ128rrk = 6504,
- VCVTPD2QQZ128rrkz = 6505,
- VCVTPD2QQZ256rm = 6506,
- VCVTPD2QQZ256rmb = 6507,
- VCVTPD2QQZ256rmbk = 6508,
- VCVTPD2QQZ256rmbkz = 6509,
- VCVTPD2QQZ256rmk = 6510,
- VCVTPD2QQZ256rmkz = 6511,
- VCVTPD2QQZ256rr = 6512,
- VCVTPD2QQZ256rrk = 6513,
- VCVTPD2QQZ256rrkz = 6514,
- VCVTPD2QQZrm = 6515,
- VCVTPD2QQZrmb = 6516,
- VCVTPD2QQZrmbk = 6517,
- VCVTPD2QQZrmbkz = 6518,
- VCVTPD2QQZrmk = 6519,
- VCVTPD2QQZrmkz = 6520,
- VCVTPD2QQZrr = 6521,
- VCVTPD2QQZrrb = 6522,
- VCVTPD2QQZrrbk = 6523,
- VCVTPD2QQZrrbkz = 6524,
- VCVTPD2QQZrrk = 6525,
- VCVTPD2QQZrrkz = 6526,
- VCVTPD2UDQZ128rm = 6527,
- VCVTPD2UDQZ128rmb = 6528,
- VCVTPD2UDQZ128rmbk = 6529,
- VCVTPD2UDQZ128rmbkz = 6530,
- VCVTPD2UDQZ128rmk = 6531,
- VCVTPD2UDQZ128rmkz = 6532,
- VCVTPD2UDQZ128rr = 6533,
- VCVTPD2UDQZ128rrk = 6534,
- VCVTPD2UDQZ128rrkz = 6535,
- VCVTPD2UDQZ256rm = 6536,
- VCVTPD2UDQZ256rmb = 6537,
- VCVTPD2UDQZ256rmbk = 6538,
- VCVTPD2UDQZ256rmbkz = 6539,
- VCVTPD2UDQZ256rmk = 6540,
- VCVTPD2UDQZ256rmkz = 6541,
- VCVTPD2UDQZ256rr = 6542,
- VCVTPD2UDQZ256rrk = 6543,
- VCVTPD2UDQZ256rrkz = 6544,
- VCVTPD2UDQZrm = 6545,
- VCVTPD2UDQZrmb = 6546,
- VCVTPD2UDQZrmbk = 6547,
- VCVTPD2UDQZrmbkz = 6548,
- VCVTPD2UDQZrmk = 6549,
- VCVTPD2UDQZrmkz = 6550,
- VCVTPD2UDQZrr = 6551,
- VCVTPD2UDQZrrb = 6552,
- VCVTPD2UDQZrrbk = 6553,
- VCVTPD2UDQZrrbkz = 6554,
- VCVTPD2UDQZrrk = 6555,
- VCVTPD2UDQZrrkz = 6556,
- VCVTPD2UQQZ128rm = 6557,
- VCVTPD2UQQZ128rmb = 6558,
- VCVTPD2UQQZ128rmbk = 6559,
- VCVTPD2UQQZ128rmbkz = 6560,
- VCVTPD2UQQZ128rmk = 6561,
- VCVTPD2UQQZ128rmkz = 6562,
- VCVTPD2UQQZ128rr = 6563,
- VCVTPD2UQQZ128rrk = 6564,
- VCVTPD2UQQZ128rrkz = 6565,
- VCVTPD2UQQZ256rm = 6566,
- VCVTPD2UQQZ256rmb = 6567,
- VCVTPD2UQQZ256rmbk = 6568,
- VCVTPD2UQQZ256rmbkz = 6569,
- VCVTPD2UQQZ256rmk = 6570,
- VCVTPD2UQQZ256rmkz = 6571,
- VCVTPD2UQQZ256rr = 6572,
- VCVTPD2UQQZ256rrk = 6573,
- VCVTPD2UQQZ256rrkz = 6574,
- VCVTPD2UQQZrm = 6575,
- VCVTPD2UQQZrmb = 6576,
- VCVTPD2UQQZrmbk = 6577,
- VCVTPD2UQQZrmbkz = 6578,
- VCVTPD2UQQZrmk = 6579,
- VCVTPD2UQQZrmkz = 6580,
- VCVTPD2UQQZrr = 6581,
- VCVTPD2UQQZrrb = 6582,
- VCVTPD2UQQZrrbk = 6583,
- VCVTPD2UQQZrrbkz = 6584,
- VCVTPD2UQQZrrk = 6585,
- VCVTPD2UQQZrrkz = 6586,
- VCVTPH2BF8SZ128rm = 6587,
- VCVTPH2BF8SZ128rmb = 6588,
- VCVTPH2BF8SZ128rmbk = 6589,
- VCVTPH2BF8SZ128rmbkz = 6590,
- VCVTPH2BF8SZ128rmk = 6591,
- VCVTPH2BF8SZ128rmkz = 6592,
- VCVTPH2BF8SZ128rr = 6593,
- VCVTPH2BF8SZ128rrk = 6594,
- VCVTPH2BF8SZ128rrkz = 6595,
- VCVTPH2BF8SZ256rm = 6596,
- VCVTPH2BF8SZ256rmb = 6597,
- VCVTPH2BF8SZ256rmbk = 6598,
- VCVTPH2BF8SZ256rmbkz = 6599,
- VCVTPH2BF8SZ256rmk = 6600,
- VCVTPH2BF8SZ256rmkz = 6601,
- VCVTPH2BF8SZ256rr = 6602,
- VCVTPH2BF8SZ256rrk = 6603,
- VCVTPH2BF8SZ256rrkz = 6604,
- VCVTPH2BF8SZrm = 6605,
- VCVTPH2BF8SZrmb = 6606,
- VCVTPH2BF8SZrmbk = 6607,
- VCVTPH2BF8SZrmbkz = 6608,
- VCVTPH2BF8SZrmk = 6609,
- VCVTPH2BF8SZrmkz = 6610,
- VCVTPH2BF8SZrr = 6611,
- VCVTPH2BF8SZrrk = 6612,
- VCVTPH2BF8SZrrkz = 6613,
- VCVTPH2BF8Z128rm = 6614,
- VCVTPH2BF8Z128rmb = 6615,
- VCVTPH2BF8Z128rmbk = 6616,
- VCVTPH2BF8Z128rmbkz = 6617,
- VCVTPH2BF8Z128rmk = 6618,
- VCVTPH2BF8Z128rmkz = 6619,
- VCVTPH2BF8Z128rr = 6620,
- VCVTPH2BF8Z128rrk = 6621,
- VCVTPH2BF8Z128rrkz = 6622,
- VCVTPH2BF8Z256rm = 6623,
- VCVTPH2BF8Z256rmb = 6624,
- VCVTPH2BF8Z256rmbk = 6625,
- VCVTPH2BF8Z256rmbkz = 6626,
- VCVTPH2BF8Z256rmk = 6627,
- VCVTPH2BF8Z256rmkz = 6628,
- VCVTPH2BF8Z256rr = 6629,
- VCVTPH2BF8Z256rrk = 6630,
- VCVTPH2BF8Z256rrkz = 6631,
- VCVTPH2BF8Zrm = 6632,
- VCVTPH2BF8Zrmb = 6633,
- VCVTPH2BF8Zrmbk = 6634,
- VCVTPH2BF8Zrmbkz = 6635,
- VCVTPH2BF8Zrmk = 6636,
- VCVTPH2BF8Zrmkz = 6637,
- VCVTPH2BF8Zrr = 6638,
- VCVTPH2BF8Zrrk = 6639,
- VCVTPH2BF8Zrrkz = 6640,
- VCVTPH2DQZ128rm = 6641,
- VCVTPH2DQZ128rmb = 6642,
- VCVTPH2DQZ128rmbk = 6643,
- VCVTPH2DQZ128rmbkz = 6644,
- VCVTPH2DQZ128rmk = 6645,
- VCVTPH2DQZ128rmkz = 6646,
- VCVTPH2DQZ128rr = 6647,
- VCVTPH2DQZ128rrk = 6648,
- VCVTPH2DQZ128rrkz = 6649,
- VCVTPH2DQZ256rm = 6650,
- VCVTPH2DQZ256rmb = 6651,
- VCVTPH2DQZ256rmbk = 6652,
- VCVTPH2DQZ256rmbkz = 6653,
- VCVTPH2DQZ256rmk = 6654,
- VCVTPH2DQZ256rmkz = 6655,
- VCVTPH2DQZ256rr = 6656,
- VCVTPH2DQZ256rrk = 6657,
- VCVTPH2DQZ256rrkz = 6658,
- VCVTPH2DQZrm = 6659,
- VCVTPH2DQZrmb = 6660,
- VCVTPH2DQZrmbk = 6661,
- VCVTPH2DQZrmbkz = 6662,
- VCVTPH2DQZrmk = 6663,
- VCVTPH2DQZrmkz = 6664,
- VCVTPH2DQZrr = 6665,
- VCVTPH2DQZrrb = 6666,
- VCVTPH2DQZrrbk = 6667,
- VCVTPH2DQZrrbkz = 6668,
- VCVTPH2DQZrrk = 6669,
- VCVTPH2DQZrrkz = 6670,
- VCVTPH2HF8SZ128rm = 6671,
- VCVTPH2HF8SZ128rmb = 6672,
- VCVTPH2HF8SZ128rmbk = 6673,
- VCVTPH2HF8SZ128rmbkz = 6674,
- VCVTPH2HF8SZ128rmk = 6675,
- VCVTPH2HF8SZ128rmkz = 6676,
- VCVTPH2HF8SZ128rr = 6677,
- VCVTPH2HF8SZ128rrk = 6678,
- VCVTPH2HF8SZ128rrkz = 6679,
- VCVTPH2HF8SZ256rm = 6680,
- VCVTPH2HF8SZ256rmb = 6681,
- VCVTPH2HF8SZ256rmbk = 6682,
- VCVTPH2HF8SZ256rmbkz = 6683,
- VCVTPH2HF8SZ256rmk = 6684,
- VCVTPH2HF8SZ256rmkz = 6685,
- VCVTPH2HF8SZ256rr = 6686,
- VCVTPH2HF8SZ256rrk = 6687,
- VCVTPH2HF8SZ256rrkz = 6688,
- VCVTPH2HF8SZrm = 6689,
- VCVTPH2HF8SZrmb = 6690,
- VCVTPH2HF8SZrmbk = 6691,
- VCVTPH2HF8SZrmbkz = 6692,
- VCVTPH2HF8SZrmk = 6693,
- VCVTPH2HF8SZrmkz = 6694,
- VCVTPH2HF8SZrr = 6695,
- VCVTPH2HF8SZrrk = 6696,
- VCVTPH2HF8SZrrkz = 6697,
- VCVTPH2HF8Z128rm = 6698,
- VCVTPH2HF8Z128rmb = 6699,
- VCVTPH2HF8Z128rmbk = 6700,
- VCVTPH2HF8Z128rmbkz = 6701,
- VCVTPH2HF8Z128rmk = 6702,
- VCVTPH2HF8Z128rmkz = 6703,
- VCVTPH2HF8Z128rr = 6704,
- VCVTPH2HF8Z128rrk = 6705,
- VCVTPH2HF8Z128rrkz = 6706,
- VCVTPH2HF8Z256rm = 6707,
- VCVTPH2HF8Z256rmb = 6708,
- VCVTPH2HF8Z256rmbk = 6709,
- VCVTPH2HF8Z256rmbkz = 6710,
- VCVTPH2HF8Z256rmk = 6711,
- VCVTPH2HF8Z256rmkz = 6712,
- VCVTPH2HF8Z256rr = 6713,
- VCVTPH2HF8Z256rrk = 6714,
- VCVTPH2HF8Z256rrkz = 6715,
- VCVTPH2HF8Zrm = 6716,
- VCVTPH2HF8Zrmb = 6717,
- VCVTPH2HF8Zrmbk = 6718,
- VCVTPH2HF8Zrmbkz = 6719,
- VCVTPH2HF8Zrmk = 6720,
- VCVTPH2HF8Zrmkz = 6721,
- VCVTPH2HF8Zrr = 6722,
- VCVTPH2HF8Zrrk = 6723,
- VCVTPH2HF8Zrrkz = 6724,
- VCVTPH2IBSZ128rm = 6725,
- VCVTPH2IBSZ128rmb = 6726,
- VCVTPH2IBSZ128rmbk = 6727,
- VCVTPH2IBSZ128rmbkz = 6728,
- VCVTPH2IBSZ128rmk = 6729,
- VCVTPH2IBSZ128rmkz = 6730,
- VCVTPH2IBSZ128rr = 6731,
- VCVTPH2IBSZ128rrk = 6732,
- VCVTPH2IBSZ128rrkz = 6733,
- VCVTPH2IBSZ256rm = 6734,
- VCVTPH2IBSZ256rmb = 6735,
- VCVTPH2IBSZ256rmbk = 6736,
- VCVTPH2IBSZ256rmbkz = 6737,
- VCVTPH2IBSZ256rmk = 6738,
- VCVTPH2IBSZ256rmkz = 6739,
- VCVTPH2IBSZ256rr = 6740,
- VCVTPH2IBSZ256rrk = 6741,
- VCVTPH2IBSZ256rrkz = 6742,
- VCVTPH2IBSZrm = 6743,
- VCVTPH2IBSZrmb = 6744,
- VCVTPH2IBSZrmbk = 6745,
- VCVTPH2IBSZrmbkz = 6746,
- VCVTPH2IBSZrmk = 6747,
- VCVTPH2IBSZrmkz = 6748,
- VCVTPH2IBSZrr = 6749,
- VCVTPH2IBSZrrb = 6750,
- VCVTPH2IBSZrrbk = 6751,
- VCVTPH2IBSZrrbkz = 6752,
- VCVTPH2IBSZrrk = 6753,
- VCVTPH2IBSZrrkz = 6754,
- VCVTPH2IUBSZ128rm = 6755,
- VCVTPH2IUBSZ128rmb = 6756,
- VCVTPH2IUBSZ128rmbk = 6757,
- VCVTPH2IUBSZ128rmbkz = 6758,
- VCVTPH2IUBSZ128rmk = 6759,
- VCVTPH2IUBSZ128rmkz = 6760,
- VCVTPH2IUBSZ128rr = 6761,
- VCVTPH2IUBSZ128rrk = 6762,
- VCVTPH2IUBSZ128rrkz = 6763,
- VCVTPH2IUBSZ256rm = 6764,
- VCVTPH2IUBSZ256rmb = 6765,
- VCVTPH2IUBSZ256rmbk = 6766,
- VCVTPH2IUBSZ256rmbkz = 6767,
- VCVTPH2IUBSZ256rmk = 6768,
- VCVTPH2IUBSZ256rmkz = 6769,
- VCVTPH2IUBSZ256rr = 6770,
- VCVTPH2IUBSZ256rrk = 6771,
- VCVTPH2IUBSZ256rrkz = 6772,
- VCVTPH2IUBSZrm = 6773,
- VCVTPH2IUBSZrmb = 6774,
- VCVTPH2IUBSZrmbk = 6775,
- VCVTPH2IUBSZrmbkz = 6776,
- VCVTPH2IUBSZrmk = 6777,
- VCVTPH2IUBSZrmkz = 6778,
- VCVTPH2IUBSZrr = 6779,
- VCVTPH2IUBSZrrb = 6780,
- VCVTPH2IUBSZrrbk = 6781,
- VCVTPH2IUBSZrrbkz = 6782,
- VCVTPH2IUBSZrrk = 6783,
- VCVTPH2IUBSZrrkz = 6784,
- VCVTPH2PDZ128rm = 6785,
- VCVTPH2PDZ128rmb = 6786,
- VCVTPH2PDZ128rmbk = 6787,
- VCVTPH2PDZ128rmbkz = 6788,
- VCVTPH2PDZ128rmk = 6789,
- VCVTPH2PDZ128rmkz = 6790,
- VCVTPH2PDZ128rr = 6791,
- VCVTPH2PDZ128rrk = 6792,
- VCVTPH2PDZ128rrkz = 6793,
- VCVTPH2PDZ256rm = 6794,
- VCVTPH2PDZ256rmb = 6795,
- VCVTPH2PDZ256rmbk = 6796,
- VCVTPH2PDZ256rmbkz = 6797,
- VCVTPH2PDZ256rmk = 6798,
- VCVTPH2PDZ256rmkz = 6799,
- VCVTPH2PDZ256rr = 6800,
- VCVTPH2PDZ256rrk = 6801,
- VCVTPH2PDZ256rrkz = 6802,
- VCVTPH2PDZrm = 6803,
- VCVTPH2PDZrmb = 6804,
- VCVTPH2PDZrmbk = 6805,
- VCVTPH2PDZrmbkz = 6806,
- VCVTPH2PDZrmk = 6807,
- VCVTPH2PDZrmkz = 6808,
- VCVTPH2PDZrr = 6809,
- VCVTPH2PDZrrb = 6810,
- VCVTPH2PDZrrbk = 6811,
- VCVTPH2PDZrrbkz = 6812,
- VCVTPH2PDZrrk = 6813,
- VCVTPH2PDZrrkz = 6814,
- VCVTPH2PSXZ128rm = 6815,
- VCVTPH2PSXZ128rmb = 6816,
- VCVTPH2PSXZ128rmbk = 6817,
- VCVTPH2PSXZ128rmbkz = 6818,
- VCVTPH2PSXZ128rmk = 6819,
- VCVTPH2PSXZ128rmkz = 6820,
- VCVTPH2PSXZ128rr = 6821,
- VCVTPH2PSXZ128rrk = 6822,
- VCVTPH2PSXZ128rrkz = 6823,
- VCVTPH2PSXZ256rm = 6824,
- VCVTPH2PSXZ256rmb = 6825,
- VCVTPH2PSXZ256rmbk = 6826,
- VCVTPH2PSXZ256rmbkz = 6827,
- VCVTPH2PSXZ256rmk = 6828,
- VCVTPH2PSXZ256rmkz = 6829,
- VCVTPH2PSXZ256rr = 6830,
- VCVTPH2PSXZ256rrk = 6831,
- VCVTPH2PSXZ256rrkz = 6832,
- VCVTPH2PSXZrm = 6833,
- VCVTPH2PSXZrmb = 6834,
- VCVTPH2PSXZrmbk = 6835,
- VCVTPH2PSXZrmbkz = 6836,
- VCVTPH2PSXZrmk = 6837,
- VCVTPH2PSXZrmkz = 6838,
- VCVTPH2PSXZrr = 6839,
- VCVTPH2PSXZrrb = 6840,
- VCVTPH2PSXZrrbk = 6841,
- VCVTPH2PSXZrrbkz = 6842,
- VCVTPH2PSXZrrk = 6843,
- VCVTPH2PSXZrrkz = 6844,
- VCVTPH2PSYrm = 6845,
- VCVTPH2PSYrr = 6846,
- VCVTPH2PSZ128rm = 6847,
- VCVTPH2PSZ128rmk = 6848,
- VCVTPH2PSZ128rmkz = 6849,
- VCVTPH2PSZ128rr = 6850,
- VCVTPH2PSZ128rrk = 6851,
- VCVTPH2PSZ128rrkz = 6852,
- VCVTPH2PSZ256rm = 6853,
- VCVTPH2PSZ256rmk = 6854,
- VCVTPH2PSZ256rmkz = 6855,
- VCVTPH2PSZ256rr = 6856,
- VCVTPH2PSZ256rrk = 6857,
- VCVTPH2PSZ256rrkz = 6858,
- VCVTPH2PSZrm = 6859,
- VCVTPH2PSZrmk = 6860,
- VCVTPH2PSZrmkz = 6861,
- VCVTPH2PSZrr = 6862,
- VCVTPH2PSZrrb = 6863,
- VCVTPH2PSZrrbk = 6864,
- VCVTPH2PSZrrbkz = 6865,
- VCVTPH2PSZrrk = 6866,
- VCVTPH2PSZrrkz = 6867,
- VCVTPH2PSrm = 6868,
- VCVTPH2PSrr = 6869,
- VCVTPH2QQZ128rm = 6870,
- VCVTPH2QQZ128rmb = 6871,
- VCVTPH2QQZ128rmbk = 6872,
- VCVTPH2QQZ128rmbkz = 6873,
- VCVTPH2QQZ128rmk = 6874,
- VCVTPH2QQZ128rmkz = 6875,
- VCVTPH2QQZ128rr = 6876,
- VCVTPH2QQZ128rrk = 6877,
- VCVTPH2QQZ128rrkz = 6878,
- VCVTPH2QQZ256rm = 6879,
- VCVTPH2QQZ256rmb = 6880,
- VCVTPH2QQZ256rmbk = 6881,
- VCVTPH2QQZ256rmbkz = 6882,
- VCVTPH2QQZ256rmk = 6883,
- VCVTPH2QQZ256rmkz = 6884,
- VCVTPH2QQZ256rr = 6885,
- VCVTPH2QQZ256rrk = 6886,
- VCVTPH2QQZ256rrkz = 6887,
- VCVTPH2QQZrm = 6888,
- VCVTPH2QQZrmb = 6889,
- VCVTPH2QQZrmbk = 6890,
- VCVTPH2QQZrmbkz = 6891,
- VCVTPH2QQZrmk = 6892,
- VCVTPH2QQZrmkz = 6893,
- VCVTPH2QQZrr = 6894,
- VCVTPH2QQZrrb = 6895,
- VCVTPH2QQZrrbk = 6896,
- VCVTPH2QQZrrbkz = 6897,
- VCVTPH2QQZrrk = 6898,
- VCVTPH2QQZrrkz = 6899,
- VCVTPH2UDQZ128rm = 6900,
- VCVTPH2UDQZ128rmb = 6901,
- VCVTPH2UDQZ128rmbk = 6902,
- VCVTPH2UDQZ128rmbkz = 6903,
- VCVTPH2UDQZ128rmk = 6904,
- VCVTPH2UDQZ128rmkz = 6905,
- VCVTPH2UDQZ128rr = 6906,
- VCVTPH2UDQZ128rrk = 6907,
- VCVTPH2UDQZ128rrkz = 6908,
- VCVTPH2UDQZ256rm = 6909,
- VCVTPH2UDQZ256rmb = 6910,
- VCVTPH2UDQZ256rmbk = 6911,
- VCVTPH2UDQZ256rmbkz = 6912,
- VCVTPH2UDQZ256rmk = 6913,
- VCVTPH2UDQZ256rmkz = 6914,
- VCVTPH2UDQZ256rr = 6915,
- VCVTPH2UDQZ256rrk = 6916,
- VCVTPH2UDQZ256rrkz = 6917,
- VCVTPH2UDQZrm = 6918,
- VCVTPH2UDQZrmb = 6919,
- VCVTPH2UDQZrmbk = 6920,
- VCVTPH2UDQZrmbkz = 6921,
- VCVTPH2UDQZrmk = 6922,
- VCVTPH2UDQZrmkz = 6923,
- VCVTPH2UDQZrr = 6924,
- VCVTPH2UDQZrrb = 6925,
- VCVTPH2UDQZrrbk = 6926,
- VCVTPH2UDQZrrbkz = 6927,
- VCVTPH2UDQZrrk = 6928,
- VCVTPH2UDQZrrkz = 6929,
- VCVTPH2UQQZ128rm = 6930,
- VCVTPH2UQQZ128rmb = 6931,
- VCVTPH2UQQZ128rmbk = 6932,
- VCVTPH2UQQZ128rmbkz = 6933,
- VCVTPH2UQQZ128rmk = 6934,
- VCVTPH2UQQZ128rmkz = 6935,
- VCVTPH2UQQZ128rr = 6936,
- VCVTPH2UQQZ128rrk = 6937,
- VCVTPH2UQQZ128rrkz = 6938,
- VCVTPH2UQQZ256rm = 6939,
- VCVTPH2UQQZ256rmb = 6940,
- VCVTPH2UQQZ256rmbk = 6941,
- VCVTPH2UQQZ256rmbkz = 6942,
- VCVTPH2UQQZ256rmk = 6943,
- VCVTPH2UQQZ256rmkz = 6944,
- VCVTPH2UQQZ256rr = 6945,
- VCVTPH2UQQZ256rrk = 6946,
- VCVTPH2UQQZ256rrkz = 6947,
- VCVTPH2UQQZrm = 6948,
- VCVTPH2UQQZrmb = 6949,
- VCVTPH2UQQZrmbk = 6950,
- VCVTPH2UQQZrmbkz = 6951,
- VCVTPH2UQQZrmk = 6952,
- VCVTPH2UQQZrmkz = 6953,
- VCVTPH2UQQZrr = 6954,
- VCVTPH2UQQZrrb = 6955,
- VCVTPH2UQQZrrbk = 6956,
- VCVTPH2UQQZrrbkz = 6957,
- VCVTPH2UQQZrrk = 6958,
- VCVTPH2UQQZrrkz = 6959,
- VCVTPH2UWZ128rm = 6960,
- VCVTPH2UWZ128rmb = 6961,
- VCVTPH2UWZ128rmbk = 6962,
- VCVTPH2UWZ128rmbkz = 6963,
- VCVTPH2UWZ128rmk = 6964,
- VCVTPH2UWZ128rmkz = 6965,
- VCVTPH2UWZ128rr = 6966,
- VCVTPH2UWZ128rrk = 6967,
- VCVTPH2UWZ128rrkz = 6968,
- VCVTPH2UWZ256rm = 6969,
- VCVTPH2UWZ256rmb = 6970,
- VCVTPH2UWZ256rmbk = 6971,
- VCVTPH2UWZ256rmbkz = 6972,
- VCVTPH2UWZ256rmk = 6973,
- VCVTPH2UWZ256rmkz = 6974,
- VCVTPH2UWZ256rr = 6975,
- VCVTPH2UWZ256rrk = 6976,
- VCVTPH2UWZ256rrkz = 6977,
- VCVTPH2UWZrm = 6978,
- VCVTPH2UWZrmb = 6979,
- VCVTPH2UWZrmbk = 6980,
- VCVTPH2UWZrmbkz = 6981,
- VCVTPH2UWZrmk = 6982,
- VCVTPH2UWZrmkz = 6983,
- VCVTPH2UWZrr = 6984,
- VCVTPH2UWZrrb = 6985,
- VCVTPH2UWZrrbk = 6986,
- VCVTPH2UWZrrbkz = 6987,
- VCVTPH2UWZrrk = 6988,
- VCVTPH2UWZrrkz = 6989,
- VCVTPH2WZ128rm = 6990,
- VCVTPH2WZ128rmb = 6991,
- VCVTPH2WZ128rmbk = 6992,
- VCVTPH2WZ128rmbkz = 6993,
- VCVTPH2WZ128rmk = 6994,
- VCVTPH2WZ128rmkz = 6995,
- VCVTPH2WZ128rr = 6996,
- VCVTPH2WZ128rrk = 6997,
- VCVTPH2WZ128rrkz = 6998,
- VCVTPH2WZ256rm = 6999,
- VCVTPH2WZ256rmb = 7000,
- VCVTPH2WZ256rmbk = 7001,
- VCVTPH2WZ256rmbkz = 7002,
- VCVTPH2WZ256rmk = 7003,
- VCVTPH2WZ256rmkz = 7004,
- VCVTPH2WZ256rr = 7005,
- VCVTPH2WZ256rrk = 7006,
- VCVTPH2WZ256rrkz = 7007,
- VCVTPH2WZrm = 7008,
- VCVTPH2WZrmb = 7009,
- VCVTPH2WZrmbk = 7010,
- VCVTPH2WZrmbkz = 7011,
- VCVTPH2WZrmk = 7012,
- VCVTPH2WZrmkz = 7013,
- VCVTPH2WZrr = 7014,
- VCVTPH2WZrrb = 7015,
- VCVTPH2WZrrbk = 7016,
- VCVTPH2WZrrbkz = 7017,
- VCVTPH2WZrrk = 7018,
- VCVTPH2WZrrkz = 7019,
- VCVTPS2DQYrm = 7020,
- VCVTPS2DQYrr = 7021,
- VCVTPS2DQZ128rm = 7022,
- VCVTPS2DQZ128rmb = 7023,
- VCVTPS2DQZ128rmbk = 7024,
- VCVTPS2DQZ128rmbkz = 7025,
- VCVTPS2DQZ128rmk = 7026,
- VCVTPS2DQZ128rmkz = 7027,
- VCVTPS2DQZ128rr = 7028,
- VCVTPS2DQZ128rrk = 7029,
- VCVTPS2DQZ128rrkz = 7030,
- VCVTPS2DQZ256rm = 7031,
- VCVTPS2DQZ256rmb = 7032,
- VCVTPS2DQZ256rmbk = 7033,
- VCVTPS2DQZ256rmbkz = 7034,
- VCVTPS2DQZ256rmk = 7035,
- VCVTPS2DQZ256rmkz = 7036,
- VCVTPS2DQZ256rr = 7037,
- VCVTPS2DQZ256rrk = 7038,
- VCVTPS2DQZ256rrkz = 7039,
- VCVTPS2DQZrm = 7040,
- VCVTPS2DQZrmb = 7041,
- VCVTPS2DQZrmbk = 7042,
- VCVTPS2DQZrmbkz = 7043,
- VCVTPS2DQZrmk = 7044,
- VCVTPS2DQZrmkz = 7045,
- VCVTPS2DQZrr = 7046,
- VCVTPS2DQZrrb = 7047,
- VCVTPS2DQZrrbk = 7048,
- VCVTPS2DQZrrbkz = 7049,
- VCVTPS2DQZrrk = 7050,
- VCVTPS2DQZrrkz = 7051,
- VCVTPS2DQrm = 7052,
- VCVTPS2DQrr = 7053,
- VCVTPS2IBSZ128rm = 7054,
- VCVTPS2IBSZ128rmb = 7055,
- VCVTPS2IBSZ128rmbk = 7056,
- VCVTPS2IBSZ128rmbkz = 7057,
- VCVTPS2IBSZ128rmk = 7058,
- VCVTPS2IBSZ128rmkz = 7059,
- VCVTPS2IBSZ128rr = 7060,
- VCVTPS2IBSZ128rrk = 7061,
- VCVTPS2IBSZ128rrkz = 7062,
- VCVTPS2IBSZ256rm = 7063,
- VCVTPS2IBSZ256rmb = 7064,
- VCVTPS2IBSZ256rmbk = 7065,
- VCVTPS2IBSZ256rmbkz = 7066,
- VCVTPS2IBSZ256rmk = 7067,
- VCVTPS2IBSZ256rmkz = 7068,
- VCVTPS2IBSZ256rr = 7069,
- VCVTPS2IBSZ256rrk = 7070,
- VCVTPS2IBSZ256rrkz = 7071,
- VCVTPS2IBSZrm = 7072,
- VCVTPS2IBSZrmb = 7073,
- VCVTPS2IBSZrmbk = 7074,
- VCVTPS2IBSZrmbkz = 7075,
- VCVTPS2IBSZrmk = 7076,
- VCVTPS2IBSZrmkz = 7077,
- VCVTPS2IBSZrr = 7078,
- VCVTPS2IBSZrrb = 7079,
- VCVTPS2IBSZrrbk = 7080,
- VCVTPS2IBSZrrbkz = 7081,
- VCVTPS2IBSZrrk = 7082,
- VCVTPS2IBSZrrkz = 7083,
- VCVTPS2IUBSZ128rm = 7084,
- VCVTPS2IUBSZ128rmb = 7085,
- VCVTPS2IUBSZ128rmbk = 7086,
- VCVTPS2IUBSZ128rmbkz = 7087,
- VCVTPS2IUBSZ128rmk = 7088,
- VCVTPS2IUBSZ128rmkz = 7089,
- VCVTPS2IUBSZ128rr = 7090,
- VCVTPS2IUBSZ128rrk = 7091,
- VCVTPS2IUBSZ128rrkz = 7092,
- VCVTPS2IUBSZ256rm = 7093,
- VCVTPS2IUBSZ256rmb = 7094,
- VCVTPS2IUBSZ256rmbk = 7095,
- VCVTPS2IUBSZ256rmbkz = 7096,
- VCVTPS2IUBSZ256rmk = 7097,
- VCVTPS2IUBSZ256rmkz = 7098,
- VCVTPS2IUBSZ256rr = 7099,
- VCVTPS2IUBSZ256rrk = 7100,
- VCVTPS2IUBSZ256rrkz = 7101,
- VCVTPS2IUBSZrm = 7102,
- VCVTPS2IUBSZrmb = 7103,
- VCVTPS2IUBSZrmbk = 7104,
- VCVTPS2IUBSZrmbkz = 7105,
- VCVTPS2IUBSZrmk = 7106,
- VCVTPS2IUBSZrmkz = 7107,
- VCVTPS2IUBSZrr = 7108,
- VCVTPS2IUBSZrrb = 7109,
- VCVTPS2IUBSZrrbk = 7110,
- VCVTPS2IUBSZrrbkz = 7111,
- VCVTPS2IUBSZrrk = 7112,
- VCVTPS2IUBSZrrkz = 7113,
- VCVTPS2PDYrm = 7114,
- VCVTPS2PDYrr = 7115,
- VCVTPS2PDZ128rm = 7116,
- VCVTPS2PDZ128rmb = 7117,
- VCVTPS2PDZ128rmbk = 7118,
- VCVTPS2PDZ128rmbkz = 7119,
- VCVTPS2PDZ128rmk = 7120,
- VCVTPS2PDZ128rmkz = 7121,
- VCVTPS2PDZ128rr = 7122,
- VCVTPS2PDZ128rrk = 7123,
- VCVTPS2PDZ128rrkz = 7124,
- VCVTPS2PDZ256rm = 7125,
- VCVTPS2PDZ256rmb = 7126,
- VCVTPS2PDZ256rmbk = 7127,
- VCVTPS2PDZ256rmbkz = 7128,
- VCVTPS2PDZ256rmk = 7129,
- VCVTPS2PDZ256rmkz = 7130,
- VCVTPS2PDZ256rr = 7131,
- VCVTPS2PDZ256rrk = 7132,
- VCVTPS2PDZ256rrkz = 7133,
- VCVTPS2PDZrm = 7134,
- VCVTPS2PDZrmb = 7135,
- VCVTPS2PDZrmbk = 7136,
- VCVTPS2PDZrmbkz = 7137,
- VCVTPS2PDZrmk = 7138,
- VCVTPS2PDZrmkz = 7139,
- VCVTPS2PDZrr = 7140,
- VCVTPS2PDZrrb = 7141,
- VCVTPS2PDZrrbk = 7142,
- VCVTPS2PDZrrbkz = 7143,
- VCVTPS2PDZrrk = 7144,
- VCVTPS2PDZrrkz = 7145,
- VCVTPS2PDrm = 7146,
- VCVTPS2PDrr = 7147,
- VCVTPS2PHXZ128rm = 7148,
- VCVTPS2PHXZ128rmb = 7149,
- VCVTPS2PHXZ128rmbk = 7150,
- VCVTPS2PHXZ128rmbkz = 7151,
- VCVTPS2PHXZ128rmk = 7152,
- VCVTPS2PHXZ128rmkz = 7153,
- VCVTPS2PHXZ128rr = 7154,
- VCVTPS2PHXZ128rrk = 7155,
- VCVTPS2PHXZ128rrkz = 7156,
- VCVTPS2PHXZ256rm = 7157,
- VCVTPS2PHXZ256rmb = 7158,
- VCVTPS2PHXZ256rmbk = 7159,
- VCVTPS2PHXZ256rmbkz = 7160,
- VCVTPS2PHXZ256rmk = 7161,
- VCVTPS2PHXZ256rmkz = 7162,
- VCVTPS2PHXZ256rr = 7163,
- VCVTPS2PHXZ256rrk = 7164,
- VCVTPS2PHXZ256rrkz = 7165,
- VCVTPS2PHXZrm = 7166,
- VCVTPS2PHXZrmb = 7167,
- VCVTPS2PHXZrmbk = 7168,
- VCVTPS2PHXZrmbkz = 7169,
- VCVTPS2PHXZrmk = 7170,
- VCVTPS2PHXZrmkz = 7171,
- VCVTPS2PHXZrr = 7172,
- VCVTPS2PHXZrrb = 7173,
- VCVTPS2PHXZrrbk = 7174,
- VCVTPS2PHXZrrbkz = 7175,
- VCVTPS2PHXZrrk = 7176,
- VCVTPS2PHXZrrkz = 7177,
- VCVTPS2PHYmr = 7178,
- VCVTPS2PHYrr = 7179,
- VCVTPS2PHZ128mr = 7180,
- VCVTPS2PHZ128mrk = 7181,
- VCVTPS2PHZ128rr = 7182,
- VCVTPS2PHZ128rrk = 7183,
- VCVTPS2PHZ128rrkz = 7184,
- VCVTPS2PHZ256mr = 7185,
- VCVTPS2PHZ256mrk = 7186,
- VCVTPS2PHZ256rr = 7187,
- VCVTPS2PHZ256rrk = 7188,
- VCVTPS2PHZ256rrkz = 7189,
- VCVTPS2PHZmr = 7190,
- VCVTPS2PHZmrk = 7191,
- VCVTPS2PHZrr = 7192,
- VCVTPS2PHZrrb = 7193,
- VCVTPS2PHZrrbk = 7194,
- VCVTPS2PHZrrbkz = 7195,
- VCVTPS2PHZrrk = 7196,
- VCVTPS2PHZrrkz = 7197,
- VCVTPS2PHmr = 7198,
- VCVTPS2PHrr = 7199,
- VCVTPS2QQZ128rm = 7200,
- VCVTPS2QQZ128rmb = 7201,
- VCVTPS2QQZ128rmbk = 7202,
- VCVTPS2QQZ128rmbkz = 7203,
- VCVTPS2QQZ128rmk = 7204,
- VCVTPS2QQZ128rmkz = 7205,
- VCVTPS2QQZ128rr = 7206,
- VCVTPS2QQZ128rrk = 7207,
- VCVTPS2QQZ128rrkz = 7208,
- VCVTPS2QQZ256rm = 7209,
- VCVTPS2QQZ256rmb = 7210,
- VCVTPS2QQZ256rmbk = 7211,
- VCVTPS2QQZ256rmbkz = 7212,
- VCVTPS2QQZ256rmk = 7213,
- VCVTPS2QQZ256rmkz = 7214,
- VCVTPS2QQZ256rr = 7215,
- VCVTPS2QQZ256rrk = 7216,
- VCVTPS2QQZ256rrkz = 7217,
- VCVTPS2QQZrm = 7218,
- VCVTPS2QQZrmb = 7219,
- VCVTPS2QQZrmbk = 7220,
- VCVTPS2QQZrmbkz = 7221,
- VCVTPS2QQZrmk = 7222,
- VCVTPS2QQZrmkz = 7223,
- VCVTPS2QQZrr = 7224,
- VCVTPS2QQZrrb = 7225,
- VCVTPS2QQZrrbk = 7226,
- VCVTPS2QQZrrbkz = 7227,
- VCVTPS2QQZrrk = 7228,
- VCVTPS2QQZrrkz = 7229,
- VCVTPS2UDQZ128rm = 7230,
- VCVTPS2UDQZ128rmb = 7231,
- VCVTPS2UDQZ128rmbk = 7232,
- VCVTPS2UDQZ128rmbkz = 7233,
- VCVTPS2UDQZ128rmk = 7234,
- VCVTPS2UDQZ128rmkz = 7235,
- VCVTPS2UDQZ128rr = 7236,
- VCVTPS2UDQZ128rrk = 7237,
- VCVTPS2UDQZ128rrkz = 7238,
- VCVTPS2UDQZ256rm = 7239,
- VCVTPS2UDQZ256rmb = 7240,
- VCVTPS2UDQZ256rmbk = 7241,
- VCVTPS2UDQZ256rmbkz = 7242,
- VCVTPS2UDQZ256rmk = 7243,
- VCVTPS2UDQZ256rmkz = 7244,
- VCVTPS2UDQZ256rr = 7245,
- VCVTPS2UDQZ256rrk = 7246,
- VCVTPS2UDQZ256rrkz = 7247,
- VCVTPS2UDQZrm = 7248,
- VCVTPS2UDQZrmb = 7249,
- VCVTPS2UDQZrmbk = 7250,
- VCVTPS2UDQZrmbkz = 7251,
- VCVTPS2UDQZrmk = 7252,
- VCVTPS2UDQZrmkz = 7253,
- VCVTPS2UDQZrr = 7254,
- VCVTPS2UDQZrrb = 7255,
- VCVTPS2UDQZrrbk = 7256,
- VCVTPS2UDQZrrbkz = 7257,
- VCVTPS2UDQZrrk = 7258,
- VCVTPS2UDQZrrkz = 7259,
- VCVTPS2UQQZ128rm = 7260,
- VCVTPS2UQQZ128rmb = 7261,
- VCVTPS2UQQZ128rmbk = 7262,
- VCVTPS2UQQZ128rmbkz = 7263,
- VCVTPS2UQQZ128rmk = 7264,
- VCVTPS2UQQZ128rmkz = 7265,
- VCVTPS2UQQZ128rr = 7266,
- VCVTPS2UQQZ128rrk = 7267,
- VCVTPS2UQQZ128rrkz = 7268,
- VCVTPS2UQQZ256rm = 7269,
- VCVTPS2UQQZ256rmb = 7270,
- VCVTPS2UQQZ256rmbk = 7271,
- VCVTPS2UQQZ256rmbkz = 7272,
- VCVTPS2UQQZ256rmk = 7273,
- VCVTPS2UQQZ256rmkz = 7274,
- VCVTPS2UQQZ256rr = 7275,
- VCVTPS2UQQZ256rrk = 7276,
- VCVTPS2UQQZ256rrkz = 7277,
- VCVTPS2UQQZrm = 7278,
- VCVTPS2UQQZrmb = 7279,
- VCVTPS2UQQZrmbk = 7280,
- VCVTPS2UQQZrmbkz = 7281,
- VCVTPS2UQQZrmk = 7282,
- VCVTPS2UQQZrmkz = 7283,
- VCVTPS2UQQZrr = 7284,
- VCVTPS2UQQZrrb = 7285,
- VCVTPS2UQQZrrbk = 7286,
- VCVTPS2UQQZrrbkz = 7287,
- VCVTPS2UQQZrrk = 7288,
- VCVTPS2UQQZrrkz = 7289,
- VCVTQQ2PDZ128rm = 7290,
- VCVTQQ2PDZ128rmb = 7291,
- VCVTQQ2PDZ128rmbk = 7292,
- VCVTQQ2PDZ128rmbkz = 7293,
- VCVTQQ2PDZ128rmk = 7294,
- VCVTQQ2PDZ128rmkz = 7295,
- VCVTQQ2PDZ128rr = 7296,
- VCVTQQ2PDZ128rrk = 7297,
- VCVTQQ2PDZ128rrkz = 7298,
- VCVTQQ2PDZ256rm = 7299,
- VCVTQQ2PDZ256rmb = 7300,
- VCVTQQ2PDZ256rmbk = 7301,
- VCVTQQ2PDZ256rmbkz = 7302,
- VCVTQQ2PDZ256rmk = 7303,
- VCVTQQ2PDZ256rmkz = 7304,
- VCVTQQ2PDZ256rr = 7305,
- VCVTQQ2PDZ256rrk = 7306,
- VCVTQQ2PDZ256rrkz = 7307,
- VCVTQQ2PDZrm = 7308,
- VCVTQQ2PDZrmb = 7309,
- VCVTQQ2PDZrmbk = 7310,
- VCVTQQ2PDZrmbkz = 7311,
- VCVTQQ2PDZrmk = 7312,
- VCVTQQ2PDZrmkz = 7313,
- VCVTQQ2PDZrr = 7314,
- VCVTQQ2PDZrrb = 7315,
- VCVTQQ2PDZrrbk = 7316,
- VCVTQQ2PDZrrbkz = 7317,
- VCVTQQ2PDZrrk = 7318,
- VCVTQQ2PDZrrkz = 7319,
- VCVTQQ2PHZ128rm = 7320,
- VCVTQQ2PHZ128rmb = 7321,
- VCVTQQ2PHZ128rmbk = 7322,
- VCVTQQ2PHZ128rmbkz = 7323,
- VCVTQQ2PHZ128rmk = 7324,
- VCVTQQ2PHZ128rmkz = 7325,
- VCVTQQ2PHZ128rr = 7326,
- VCVTQQ2PHZ128rrk = 7327,
- VCVTQQ2PHZ128rrkz = 7328,
- VCVTQQ2PHZ256rm = 7329,
- VCVTQQ2PHZ256rmb = 7330,
- VCVTQQ2PHZ256rmbk = 7331,
- VCVTQQ2PHZ256rmbkz = 7332,
- VCVTQQ2PHZ256rmk = 7333,
- VCVTQQ2PHZ256rmkz = 7334,
- VCVTQQ2PHZ256rr = 7335,
- VCVTQQ2PHZ256rrk = 7336,
- VCVTQQ2PHZ256rrkz = 7337,
- VCVTQQ2PHZrm = 7338,
- VCVTQQ2PHZrmb = 7339,
- VCVTQQ2PHZrmbk = 7340,
- VCVTQQ2PHZrmbkz = 7341,
- VCVTQQ2PHZrmk = 7342,
- VCVTQQ2PHZrmkz = 7343,
- VCVTQQ2PHZrr = 7344,
- VCVTQQ2PHZrrb = 7345,
- VCVTQQ2PHZrrbk = 7346,
- VCVTQQ2PHZrrbkz = 7347,
- VCVTQQ2PHZrrk = 7348,
- VCVTQQ2PHZrrkz = 7349,
- VCVTQQ2PSZ128rm = 7350,
- VCVTQQ2PSZ128rmb = 7351,
- VCVTQQ2PSZ128rmbk = 7352,
- VCVTQQ2PSZ128rmbkz = 7353,
- VCVTQQ2PSZ128rmk = 7354,
- VCVTQQ2PSZ128rmkz = 7355,
- VCVTQQ2PSZ128rr = 7356,
- VCVTQQ2PSZ128rrk = 7357,
- VCVTQQ2PSZ128rrkz = 7358,
- VCVTQQ2PSZ256rm = 7359,
- VCVTQQ2PSZ256rmb = 7360,
- VCVTQQ2PSZ256rmbk = 7361,
- VCVTQQ2PSZ256rmbkz = 7362,
- VCVTQQ2PSZ256rmk = 7363,
- VCVTQQ2PSZ256rmkz = 7364,
- VCVTQQ2PSZ256rr = 7365,
- VCVTQQ2PSZ256rrk = 7366,
- VCVTQQ2PSZ256rrkz = 7367,
- VCVTQQ2PSZrm = 7368,
- VCVTQQ2PSZrmb = 7369,
- VCVTQQ2PSZrmbk = 7370,
- VCVTQQ2PSZrmbkz = 7371,
- VCVTQQ2PSZrmk = 7372,
- VCVTQQ2PSZrmkz = 7373,
- VCVTQQ2PSZrr = 7374,
- VCVTQQ2PSZrrb = 7375,
- VCVTQQ2PSZrrbk = 7376,
- VCVTQQ2PSZrrbkz = 7377,
- VCVTQQ2PSZrrk = 7378,
- VCVTQQ2PSZrrkz = 7379,
- VCVTSD2SHZrm = 7380,
- VCVTSD2SHZrm_Int = 7381,
- VCVTSD2SHZrmk_Int = 7382,
- VCVTSD2SHZrmkz_Int = 7383,
- VCVTSD2SHZrr = 7384,
- VCVTSD2SHZrr_Int = 7385,
- VCVTSD2SHZrrb_Int = 7386,
- VCVTSD2SHZrrbk_Int = 7387,
- VCVTSD2SHZrrbkz_Int = 7388,
- VCVTSD2SHZrrk_Int = 7389,
- VCVTSD2SHZrrkz_Int = 7390,
- VCVTSD2SI64Zrm = 7391,
- VCVTSD2SI64Zrm_Int = 7392,
- VCVTSD2SI64Zrr = 7393,
- VCVTSD2SI64Zrr_Int = 7394,
- VCVTSD2SI64Zrrb_Int = 7395,
- VCVTSD2SI64rm = 7396,
- VCVTSD2SI64rm_Int = 7397,
- VCVTSD2SI64rr = 7398,
- VCVTSD2SI64rr_Int = 7399,
- VCVTSD2SIZrm = 7400,
- VCVTSD2SIZrm_Int = 7401,
- VCVTSD2SIZrr = 7402,
- VCVTSD2SIZrr_Int = 7403,
- VCVTSD2SIZrrb_Int = 7404,
- VCVTSD2SIrm = 7405,
- VCVTSD2SIrm_Int = 7406,
- VCVTSD2SIrr = 7407,
- VCVTSD2SIrr_Int = 7408,
- VCVTSD2SSZrm = 7409,
- VCVTSD2SSZrm_Int = 7410,
- VCVTSD2SSZrmk_Int = 7411,
- VCVTSD2SSZrmkz_Int = 7412,
- VCVTSD2SSZrr = 7413,
- VCVTSD2SSZrr_Int = 7414,
- VCVTSD2SSZrrb_Int = 7415,
- VCVTSD2SSZrrbk_Int = 7416,
- VCVTSD2SSZrrbkz_Int = 7417,
- VCVTSD2SSZrrk_Int = 7418,
- VCVTSD2SSZrrkz_Int = 7419,
- VCVTSD2SSrm = 7420,
- VCVTSD2SSrm_Int = 7421,
- VCVTSD2SSrr = 7422,
- VCVTSD2SSrr_Int = 7423,
- VCVTSD2USI64Zrm_Int = 7424,
- VCVTSD2USI64Zrr_Int = 7425,
- VCVTSD2USI64Zrrb_Int = 7426,
- VCVTSD2USIZrm_Int = 7427,
- VCVTSD2USIZrr_Int = 7428,
- VCVTSD2USIZrrb_Int = 7429,
- VCVTSH2SDZrm = 7430,
- VCVTSH2SDZrm_Int = 7431,
- VCVTSH2SDZrmk_Int = 7432,
- VCVTSH2SDZrmkz_Int = 7433,
- VCVTSH2SDZrr = 7434,
- VCVTSH2SDZrr_Int = 7435,
- VCVTSH2SDZrrb_Int = 7436,
- VCVTSH2SDZrrbk_Int = 7437,
- VCVTSH2SDZrrbkz_Int = 7438,
- VCVTSH2SDZrrk_Int = 7439,
- VCVTSH2SDZrrkz_Int = 7440,
- VCVTSH2SI64Zrm_Int = 7441,
- VCVTSH2SI64Zrr_Int = 7442,
- VCVTSH2SI64Zrrb_Int = 7443,
- VCVTSH2SIZrm_Int = 7444,
- VCVTSH2SIZrr_Int = 7445,
- VCVTSH2SIZrrb_Int = 7446,
- VCVTSH2SSZrm = 7447,
- VCVTSH2SSZrm_Int = 7448,
- VCVTSH2SSZrmk_Int = 7449,
- VCVTSH2SSZrmkz_Int = 7450,
- VCVTSH2SSZrr = 7451,
- VCVTSH2SSZrr_Int = 7452,
- VCVTSH2SSZrrb_Int = 7453,
- VCVTSH2SSZrrbk_Int = 7454,
- VCVTSH2SSZrrbkz_Int = 7455,
- VCVTSH2SSZrrk_Int = 7456,
- VCVTSH2SSZrrkz_Int = 7457,
- VCVTSH2USI64Zrm_Int = 7458,
- VCVTSH2USI64Zrr_Int = 7459,
- VCVTSH2USI64Zrrb_Int = 7460,
- VCVTSH2USIZrm_Int = 7461,
- VCVTSH2USIZrr_Int = 7462,
- VCVTSH2USIZrrb_Int = 7463,
- VCVTSI2SDZrm = 7464,
- VCVTSI2SDZrm_Int = 7465,
- VCVTSI2SDZrr = 7466,
- VCVTSI2SDZrr_Int = 7467,
- VCVTSI2SDrm = 7468,
- VCVTSI2SDrm_Int = 7469,
- VCVTSI2SDrr = 7470,
- VCVTSI2SDrr_Int = 7471,
- VCVTSI2SHZrm = 7472,
- VCVTSI2SHZrm_Int = 7473,
- VCVTSI2SHZrr = 7474,
- VCVTSI2SHZrr_Int = 7475,
- VCVTSI2SHZrrb_Int = 7476,
- VCVTSI2SSZrm = 7477,
- VCVTSI2SSZrm_Int = 7478,
- VCVTSI2SSZrr = 7479,
- VCVTSI2SSZrr_Int = 7480,
- VCVTSI2SSZrrb_Int = 7481,
- VCVTSI2SSrm = 7482,
- VCVTSI2SSrm_Int = 7483,
- VCVTSI2SSrr = 7484,
- VCVTSI2SSrr_Int = 7485,
- VCVTSI642SDZrm = 7486,
- VCVTSI642SDZrm_Int = 7487,
- VCVTSI642SDZrr = 7488,
- VCVTSI642SDZrr_Int = 7489,
- VCVTSI642SDZrrb_Int = 7490,
- VCVTSI642SDrm = 7491,
- VCVTSI642SDrm_Int = 7492,
- VCVTSI642SDrr = 7493,
- VCVTSI642SDrr_Int = 7494,
- VCVTSI642SHZrm = 7495,
- VCVTSI642SHZrm_Int = 7496,
- VCVTSI642SHZrr = 7497,
- VCVTSI642SHZrr_Int = 7498,
- VCVTSI642SHZrrb_Int = 7499,
- VCVTSI642SSZrm = 7500,
- VCVTSI642SSZrm_Int = 7501,
- VCVTSI642SSZrr = 7502,
- VCVTSI642SSZrr_Int = 7503,
- VCVTSI642SSZrrb_Int = 7504,
- VCVTSI642SSrm = 7505,
- VCVTSI642SSrm_Int = 7506,
- VCVTSI642SSrr = 7507,
- VCVTSI642SSrr_Int = 7508,
- VCVTSS2SDZrm = 7509,
- VCVTSS2SDZrm_Int = 7510,
- VCVTSS2SDZrmk_Int = 7511,
- VCVTSS2SDZrmkz_Int = 7512,
- VCVTSS2SDZrr = 7513,
- VCVTSS2SDZrr_Int = 7514,
- VCVTSS2SDZrrb_Int = 7515,
- VCVTSS2SDZrrbk_Int = 7516,
- VCVTSS2SDZrrbkz_Int = 7517,
- VCVTSS2SDZrrk_Int = 7518,
- VCVTSS2SDZrrkz_Int = 7519,
- VCVTSS2SDrm = 7520,
- VCVTSS2SDrm_Int = 7521,
- VCVTSS2SDrr = 7522,
- VCVTSS2SDrr_Int = 7523,
- VCVTSS2SHZrm = 7524,
- VCVTSS2SHZrm_Int = 7525,
- VCVTSS2SHZrmk_Int = 7526,
- VCVTSS2SHZrmkz_Int = 7527,
- VCVTSS2SHZrr = 7528,
- VCVTSS2SHZrr_Int = 7529,
- VCVTSS2SHZrrb_Int = 7530,
- VCVTSS2SHZrrbk_Int = 7531,
- VCVTSS2SHZrrbkz_Int = 7532,
- VCVTSS2SHZrrk_Int = 7533,
- VCVTSS2SHZrrkz_Int = 7534,
- VCVTSS2SI64Zrm = 7535,
- VCVTSS2SI64Zrm_Int = 7536,
- VCVTSS2SI64Zrr = 7537,
- VCVTSS2SI64Zrr_Int = 7538,
- VCVTSS2SI64Zrrb_Int = 7539,
- VCVTSS2SI64rm = 7540,
- VCVTSS2SI64rm_Int = 7541,
- VCVTSS2SI64rr = 7542,
- VCVTSS2SI64rr_Int = 7543,
- VCVTSS2SIZrm = 7544,
- VCVTSS2SIZrm_Int = 7545,
- VCVTSS2SIZrr = 7546,
- VCVTSS2SIZrr_Int = 7547,
- VCVTSS2SIZrrb_Int = 7548,
- VCVTSS2SIrm = 7549,
- VCVTSS2SIrm_Int = 7550,
- VCVTSS2SIrr = 7551,
- VCVTSS2SIrr_Int = 7552,
- VCVTSS2USI64Zrm_Int = 7553,
- VCVTSS2USI64Zrr_Int = 7554,
- VCVTSS2USI64Zrrb_Int = 7555,
- VCVTSS2USIZrm_Int = 7556,
- VCVTSS2USIZrr_Int = 7557,
- VCVTSS2USIZrrb_Int = 7558,
- VCVTTBF162IBSZ128rm = 7559,
- VCVTTBF162IBSZ128rmb = 7560,
- VCVTTBF162IBSZ128rmbk = 7561,
- VCVTTBF162IBSZ128rmbkz = 7562,
- VCVTTBF162IBSZ128rmk = 7563,
- VCVTTBF162IBSZ128rmkz = 7564,
- VCVTTBF162IBSZ128rr = 7565,
- VCVTTBF162IBSZ128rrk = 7566,
- VCVTTBF162IBSZ128rrkz = 7567,
- VCVTTBF162IBSZ256rm = 7568,
- VCVTTBF162IBSZ256rmb = 7569,
- VCVTTBF162IBSZ256rmbk = 7570,
- VCVTTBF162IBSZ256rmbkz = 7571,
- VCVTTBF162IBSZ256rmk = 7572,
- VCVTTBF162IBSZ256rmkz = 7573,
- VCVTTBF162IBSZ256rr = 7574,
- VCVTTBF162IBSZ256rrk = 7575,
- VCVTTBF162IBSZ256rrkz = 7576,
- VCVTTBF162IBSZrm = 7577,
- VCVTTBF162IBSZrmb = 7578,
- VCVTTBF162IBSZrmbk = 7579,
- VCVTTBF162IBSZrmbkz = 7580,
- VCVTTBF162IBSZrmk = 7581,
- VCVTTBF162IBSZrmkz = 7582,
- VCVTTBF162IBSZrr = 7583,
- VCVTTBF162IBSZrrk = 7584,
- VCVTTBF162IBSZrrkz = 7585,
- VCVTTBF162IUBSZ128rm = 7586,
- VCVTTBF162IUBSZ128rmb = 7587,
- VCVTTBF162IUBSZ128rmbk = 7588,
- VCVTTBF162IUBSZ128rmbkz = 7589,
- VCVTTBF162IUBSZ128rmk = 7590,
- VCVTTBF162IUBSZ128rmkz = 7591,
- VCVTTBF162IUBSZ128rr = 7592,
- VCVTTBF162IUBSZ128rrk = 7593,
- VCVTTBF162IUBSZ128rrkz = 7594,
- VCVTTBF162IUBSZ256rm = 7595,
- VCVTTBF162IUBSZ256rmb = 7596,
- VCVTTBF162IUBSZ256rmbk = 7597,
- VCVTTBF162IUBSZ256rmbkz = 7598,
- VCVTTBF162IUBSZ256rmk = 7599,
- VCVTTBF162IUBSZ256rmkz = 7600,
- VCVTTBF162IUBSZ256rr = 7601,
- VCVTTBF162IUBSZ256rrk = 7602,
- VCVTTBF162IUBSZ256rrkz = 7603,
- VCVTTBF162IUBSZrm = 7604,
- VCVTTBF162IUBSZrmb = 7605,
- VCVTTBF162IUBSZrmbk = 7606,
- VCVTTBF162IUBSZrmbkz = 7607,
- VCVTTBF162IUBSZrmk = 7608,
- VCVTTBF162IUBSZrmkz = 7609,
- VCVTTBF162IUBSZrr = 7610,
- VCVTTBF162IUBSZrrk = 7611,
- VCVTTBF162IUBSZrrkz = 7612,
- VCVTTPD2DQSZ128rm = 7613,
- VCVTTPD2DQSZ128rmb = 7614,
- VCVTTPD2DQSZ128rmbk = 7615,
- VCVTTPD2DQSZ128rmbkz = 7616,
- VCVTTPD2DQSZ128rmk = 7617,
- VCVTTPD2DQSZ128rmkz = 7618,
- VCVTTPD2DQSZ128rr = 7619,
- VCVTTPD2DQSZ128rrk = 7620,
- VCVTTPD2DQSZ128rrkz = 7621,
- VCVTTPD2DQSZ256rm = 7622,
- VCVTTPD2DQSZ256rmb = 7623,
- VCVTTPD2DQSZ256rmbk = 7624,
- VCVTTPD2DQSZ256rmbkz = 7625,
- VCVTTPD2DQSZ256rmk = 7626,
- VCVTTPD2DQSZ256rmkz = 7627,
- VCVTTPD2DQSZ256rr = 7628,
- VCVTTPD2DQSZ256rrb = 7629,
- VCVTTPD2DQSZ256rrbk = 7630,
- VCVTTPD2DQSZ256rrbkz = 7631,
- VCVTTPD2DQSZ256rrk = 7632,
- VCVTTPD2DQSZ256rrkz = 7633,
- VCVTTPD2DQSZrm = 7634,
- VCVTTPD2DQSZrmb = 7635,
- VCVTTPD2DQSZrmbk = 7636,
- VCVTTPD2DQSZrmbkz = 7637,
- VCVTTPD2DQSZrmk = 7638,
- VCVTTPD2DQSZrmkz = 7639,
- VCVTTPD2DQSZrr = 7640,
- VCVTTPD2DQSZrrb = 7641,
- VCVTTPD2DQSZrrbk = 7642,
- VCVTTPD2DQSZrrbkz = 7643,
- VCVTTPD2DQSZrrk = 7644,
- VCVTTPD2DQSZrrkz = 7645,
- VCVTTPD2DQYrm = 7646,
- VCVTTPD2DQYrr = 7647,
- VCVTTPD2DQZ128rm = 7648,
- VCVTTPD2DQZ128rmb = 7649,
- VCVTTPD2DQZ128rmbk = 7650,
- VCVTTPD2DQZ128rmbkz = 7651,
- VCVTTPD2DQZ128rmk = 7652,
- VCVTTPD2DQZ128rmkz = 7653,
- VCVTTPD2DQZ128rr = 7654,
- VCVTTPD2DQZ128rrk = 7655,
- VCVTTPD2DQZ128rrkz = 7656,
- VCVTTPD2DQZ256rm = 7657,
- VCVTTPD2DQZ256rmb = 7658,
- VCVTTPD2DQZ256rmbk = 7659,
- VCVTTPD2DQZ256rmbkz = 7660,
- VCVTTPD2DQZ256rmk = 7661,
- VCVTTPD2DQZ256rmkz = 7662,
- VCVTTPD2DQZ256rr = 7663,
- VCVTTPD2DQZ256rrk = 7664,
- VCVTTPD2DQZ256rrkz = 7665,
- VCVTTPD2DQZrm = 7666,
- VCVTTPD2DQZrmb = 7667,
- VCVTTPD2DQZrmbk = 7668,
- VCVTTPD2DQZrmbkz = 7669,
- VCVTTPD2DQZrmk = 7670,
- VCVTTPD2DQZrmkz = 7671,
- VCVTTPD2DQZrr = 7672,
- VCVTTPD2DQZrrb = 7673,
- VCVTTPD2DQZrrbk = 7674,
- VCVTTPD2DQZrrbkz = 7675,
- VCVTTPD2DQZrrk = 7676,
- VCVTTPD2DQZrrkz = 7677,
- VCVTTPD2DQrm = 7678,
- VCVTTPD2DQrr = 7679,
- VCVTTPD2QQSZ128rm = 7680,
- VCVTTPD2QQSZ128rmb = 7681,
- VCVTTPD2QQSZ128rmbk = 7682,
- VCVTTPD2QQSZ128rmbkz = 7683,
- VCVTTPD2QQSZ128rmk = 7684,
- VCVTTPD2QQSZ128rmkz = 7685,
- VCVTTPD2QQSZ128rr = 7686,
- VCVTTPD2QQSZ128rrk = 7687,
- VCVTTPD2QQSZ128rrkz = 7688,
- VCVTTPD2QQSZ256rm = 7689,
- VCVTTPD2QQSZ256rmb = 7690,
- VCVTTPD2QQSZ256rmbk = 7691,
- VCVTTPD2QQSZ256rmbkz = 7692,
- VCVTTPD2QQSZ256rmk = 7693,
- VCVTTPD2QQSZ256rmkz = 7694,
- VCVTTPD2QQSZ256rr = 7695,
- VCVTTPD2QQSZ256rrb = 7696,
- VCVTTPD2QQSZ256rrbk = 7697,
- VCVTTPD2QQSZ256rrbkz = 7698,
- VCVTTPD2QQSZ256rrk = 7699,
- VCVTTPD2QQSZ256rrkz = 7700,
- VCVTTPD2QQSZrm = 7701,
- VCVTTPD2QQSZrmb = 7702,
- VCVTTPD2QQSZrmbk = 7703,
- VCVTTPD2QQSZrmbkz = 7704,
- VCVTTPD2QQSZrmk = 7705,
- VCVTTPD2QQSZrmkz = 7706,
- VCVTTPD2QQSZrr = 7707,
- VCVTTPD2QQSZrrb = 7708,
- VCVTTPD2QQSZrrbk = 7709,
- VCVTTPD2QQSZrrbkz = 7710,
- VCVTTPD2QQSZrrk = 7711,
- VCVTTPD2QQSZrrkz = 7712,
- VCVTTPD2QQZ128rm = 7713,
- VCVTTPD2QQZ128rmb = 7714,
- VCVTTPD2QQZ128rmbk = 7715,
- VCVTTPD2QQZ128rmbkz = 7716,
- VCVTTPD2QQZ128rmk = 7717,
- VCVTTPD2QQZ128rmkz = 7718,
- VCVTTPD2QQZ128rr = 7719,
- VCVTTPD2QQZ128rrk = 7720,
- VCVTTPD2QQZ128rrkz = 7721,
- VCVTTPD2QQZ256rm = 7722,
- VCVTTPD2QQZ256rmb = 7723,
- VCVTTPD2QQZ256rmbk = 7724,
- VCVTTPD2QQZ256rmbkz = 7725,
- VCVTTPD2QQZ256rmk = 7726,
- VCVTTPD2QQZ256rmkz = 7727,
- VCVTTPD2QQZ256rr = 7728,
- VCVTTPD2QQZ256rrk = 7729,
- VCVTTPD2QQZ256rrkz = 7730,
- VCVTTPD2QQZrm = 7731,
- VCVTTPD2QQZrmb = 7732,
- VCVTTPD2QQZrmbk = 7733,
- VCVTTPD2QQZrmbkz = 7734,
- VCVTTPD2QQZrmk = 7735,
- VCVTTPD2QQZrmkz = 7736,
- VCVTTPD2QQZrr = 7737,
- VCVTTPD2QQZrrb = 7738,
- VCVTTPD2QQZrrbk = 7739,
- VCVTTPD2QQZrrbkz = 7740,
- VCVTTPD2QQZrrk = 7741,
- VCVTTPD2QQZrrkz = 7742,
- VCVTTPD2UDQSZ128rm = 7743,
- VCVTTPD2UDQSZ128rmb = 7744,
- VCVTTPD2UDQSZ128rmbk = 7745,
- VCVTTPD2UDQSZ128rmbkz = 7746,
- VCVTTPD2UDQSZ128rmk = 7747,
- VCVTTPD2UDQSZ128rmkz = 7748,
- VCVTTPD2UDQSZ128rr = 7749,
- VCVTTPD2UDQSZ128rrk = 7750,
- VCVTTPD2UDQSZ128rrkz = 7751,
- VCVTTPD2UDQSZ256rm = 7752,
- VCVTTPD2UDQSZ256rmb = 7753,
- VCVTTPD2UDQSZ256rmbk = 7754,
- VCVTTPD2UDQSZ256rmbkz = 7755,
- VCVTTPD2UDQSZ256rmk = 7756,
- VCVTTPD2UDQSZ256rmkz = 7757,
- VCVTTPD2UDQSZ256rr = 7758,
- VCVTTPD2UDQSZ256rrb = 7759,
- VCVTTPD2UDQSZ256rrbk = 7760,
- VCVTTPD2UDQSZ256rrbkz = 7761,
- VCVTTPD2UDQSZ256rrk = 7762,
- VCVTTPD2UDQSZ256rrkz = 7763,
- VCVTTPD2UDQSZrm = 7764,
- VCVTTPD2UDQSZrmb = 7765,
- VCVTTPD2UDQSZrmbk = 7766,
- VCVTTPD2UDQSZrmbkz = 7767,
- VCVTTPD2UDQSZrmk = 7768,
- VCVTTPD2UDQSZrmkz = 7769,
- VCVTTPD2UDQSZrr = 7770,
- VCVTTPD2UDQSZrrb = 7771,
- VCVTTPD2UDQSZrrbk = 7772,
- VCVTTPD2UDQSZrrbkz = 7773,
- VCVTTPD2UDQSZrrk = 7774,
- VCVTTPD2UDQSZrrkz = 7775,
- VCVTTPD2UDQZ128rm = 7776,
- VCVTTPD2UDQZ128rmb = 7777,
- VCVTTPD2UDQZ128rmbk = 7778,
- VCVTTPD2UDQZ128rmbkz = 7779,
- VCVTTPD2UDQZ128rmk = 7780,
- VCVTTPD2UDQZ128rmkz = 7781,
- VCVTTPD2UDQZ128rr = 7782,
- VCVTTPD2UDQZ128rrk = 7783,
- VCVTTPD2UDQZ128rrkz = 7784,
- VCVTTPD2UDQZ256rm = 7785,
- VCVTTPD2UDQZ256rmb = 7786,
- VCVTTPD2UDQZ256rmbk = 7787,
- VCVTTPD2UDQZ256rmbkz = 7788,
- VCVTTPD2UDQZ256rmk = 7789,
- VCVTTPD2UDQZ256rmkz = 7790,
- VCVTTPD2UDQZ256rr = 7791,
- VCVTTPD2UDQZ256rrk = 7792,
- VCVTTPD2UDQZ256rrkz = 7793,
- VCVTTPD2UDQZrm = 7794,
- VCVTTPD2UDQZrmb = 7795,
- VCVTTPD2UDQZrmbk = 7796,
- VCVTTPD2UDQZrmbkz = 7797,
- VCVTTPD2UDQZrmk = 7798,
- VCVTTPD2UDQZrmkz = 7799,
- VCVTTPD2UDQZrr = 7800,
- VCVTTPD2UDQZrrb = 7801,
- VCVTTPD2UDQZrrbk = 7802,
- VCVTTPD2UDQZrrbkz = 7803,
- VCVTTPD2UDQZrrk = 7804,
- VCVTTPD2UDQZrrkz = 7805,
- VCVTTPD2UQQSZ128rm = 7806,
- VCVTTPD2UQQSZ128rmb = 7807,
- VCVTTPD2UQQSZ128rmbk = 7808,
- VCVTTPD2UQQSZ128rmbkz = 7809,
- VCVTTPD2UQQSZ128rmk = 7810,
- VCVTTPD2UQQSZ128rmkz = 7811,
- VCVTTPD2UQQSZ128rr = 7812,
- VCVTTPD2UQQSZ128rrk = 7813,
- VCVTTPD2UQQSZ128rrkz = 7814,
- VCVTTPD2UQQSZ256rm = 7815,
- VCVTTPD2UQQSZ256rmb = 7816,
- VCVTTPD2UQQSZ256rmbk = 7817,
- VCVTTPD2UQQSZ256rmbkz = 7818,
- VCVTTPD2UQQSZ256rmk = 7819,
- VCVTTPD2UQQSZ256rmkz = 7820,
- VCVTTPD2UQQSZ256rr = 7821,
- VCVTTPD2UQQSZ256rrb = 7822,
- VCVTTPD2UQQSZ256rrbk = 7823,
- VCVTTPD2UQQSZ256rrbkz = 7824,
- VCVTTPD2UQQSZ256rrk = 7825,
- VCVTTPD2UQQSZ256rrkz = 7826,
- VCVTTPD2UQQSZrm = 7827,
- VCVTTPD2UQQSZrmb = 7828,
- VCVTTPD2UQQSZrmbk = 7829,
- VCVTTPD2UQQSZrmbkz = 7830,
- VCVTTPD2UQQSZrmk = 7831,
- VCVTTPD2UQQSZrmkz = 7832,
- VCVTTPD2UQQSZrr = 7833,
- VCVTTPD2UQQSZrrb = 7834,
- VCVTTPD2UQQSZrrbk = 7835,
- VCVTTPD2UQQSZrrbkz = 7836,
- VCVTTPD2UQQSZrrk = 7837,
- VCVTTPD2UQQSZrrkz = 7838,
- VCVTTPD2UQQZ128rm = 7839,
- VCVTTPD2UQQZ128rmb = 7840,
- VCVTTPD2UQQZ128rmbk = 7841,
- VCVTTPD2UQQZ128rmbkz = 7842,
- VCVTTPD2UQQZ128rmk = 7843,
- VCVTTPD2UQQZ128rmkz = 7844,
- VCVTTPD2UQQZ128rr = 7845,
- VCVTTPD2UQQZ128rrk = 7846,
- VCVTTPD2UQQZ128rrkz = 7847,
- VCVTTPD2UQQZ256rm = 7848,
- VCVTTPD2UQQZ256rmb = 7849,
- VCVTTPD2UQQZ256rmbk = 7850,
- VCVTTPD2UQQZ256rmbkz = 7851,
- VCVTTPD2UQQZ256rmk = 7852,
- VCVTTPD2UQQZ256rmkz = 7853,
- VCVTTPD2UQQZ256rr = 7854,
- VCVTTPD2UQQZ256rrk = 7855,
- VCVTTPD2UQQZ256rrkz = 7856,
- VCVTTPD2UQQZrm = 7857,
- VCVTTPD2UQQZrmb = 7858,
- VCVTTPD2UQQZrmbk = 7859,
- VCVTTPD2UQQZrmbkz = 7860,
- VCVTTPD2UQQZrmk = 7861,
- VCVTTPD2UQQZrmkz = 7862,
- VCVTTPD2UQQZrr = 7863,
- VCVTTPD2UQQZrrb = 7864,
- VCVTTPD2UQQZrrbk = 7865,
- VCVTTPD2UQQZrrbkz = 7866,
- VCVTTPD2UQQZrrk = 7867,
- VCVTTPD2UQQZrrkz = 7868,
- VCVTTPH2DQZ128rm = 7869,
- VCVTTPH2DQZ128rmb = 7870,
- VCVTTPH2DQZ128rmbk = 7871,
- VCVTTPH2DQZ128rmbkz = 7872,
- VCVTTPH2DQZ128rmk = 7873,
- VCVTTPH2DQZ128rmkz = 7874,
- VCVTTPH2DQZ128rr = 7875,
- VCVTTPH2DQZ128rrk = 7876,
- VCVTTPH2DQZ128rrkz = 7877,
- VCVTTPH2DQZ256rm = 7878,
- VCVTTPH2DQZ256rmb = 7879,
- VCVTTPH2DQZ256rmbk = 7880,
- VCVTTPH2DQZ256rmbkz = 7881,
- VCVTTPH2DQZ256rmk = 7882,
- VCVTTPH2DQZ256rmkz = 7883,
- VCVTTPH2DQZ256rr = 7884,
- VCVTTPH2DQZ256rrk = 7885,
- VCVTTPH2DQZ256rrkz = 7886,
- VCVTTPH2DQZrm = 7887,
- VCVTTPH2DQZrmb = 7888,
- VCVTTPH2DQZrmbk = 7889,
- VCVTTPH2DQZrmbkz = 7890,
- VCVTTPH2DQZrmk = 7891,
- VCVTTPH2DQZrmkz = 7892,
- VCVTTPH2DQZrr = 7893,
- VCVTTPH2DQZrrb = 7894,
- VCVTTPH2DQZrrbk = 7895,
- VCVTTPH2DQZrrbkz = 7896,
- VCVTTPH2DQZrrk = 7897,
- VCVTTPH2DQZrrkz = 7898,
- VCVTTPH2IBSZ128rm = 7899,
- VCVTTPH2IBSZ128rmb = 7900,
- VCVTTPH2IBSZ128rmbk = 7901,
- VCVTTPH2IBSZ128rmbkz = 7902,
- VCVTTPH2IBSZ128rmk = 7903,
- VCVTTPH2IBSZ128rmkz = 7904,
- VCVTTPH2IBSZ128rr = 7905,
- VCVTTPH2IBSZ128rrk = 7906,
- VCVTTPH2IBSZ128rrkz = 7907,
- VCVTTPH2IBSZ256rm = 7908,
- VCVTTPH2IBSZ256rmb = 7909,
- VCVTTPH2IBSZ256rmbk = 7910,
- VCVTTPH2IBSZ256rmbkz = 7911,
- VCVTTPH2IBSZ256rmk = 7912,
- VCVTTPH2IBSZ256rmkz = 7913,
- VCVTTPH2IBSZ256rr = 7914,
- VCVTTPH2IBSZ256rrk = 7915,
- VCVTTPH2IBSZ256rrkz = 7916,
- VCVTTPH2IBSZrm = 7917,
- VCVTTPH2IBSZrmb = 7918,
- VCVTTPH2IBSZrmbk = 7919,
- VCVTTPH2IBSZrmbkz = 7920,
- VCVTTPH2IBSZrmk = 7921,
- VCVTTPH2IBSZrmkz = 7922,
- VCVTTPH2IBSZrr = 7923,
- VCVTTPH2IBSZrrb = 7924,
- VCVTTPH2IBSZrrbk = 7925,
- VCVTTPH2IBSZrrbkz = 7926,
- VCVTTPH2IBSZrrk = 7927,
- VCVTTPH2IBSZrrkz = 7928,
- VCVTTPH2IUBSZ128rm = 7929,
- VCVTTPH2IUBSZ128rmb = 7930,
- VCVTTPH2IUBSZ128rmbk = 7931,
- VCVTTPH2IUBSZ128rmbkz = 7932,
- VCVTTPH2IUBSZ128rmk = 7933,
- VCVTTPH2IUBSZ128rmkz = 7934,
- VCVTTPH2IUBSZ128rr = 7935,
- VCVTTPH2IUBSZ128rrk = 7936,
- VCVTTPH2IUBSZ128rrkz = 7937,
- VCVTTPH2IUBSZ256rm = 7938,
- VCVTTPH2IUBSZ256rmb = 7939,
- VCVTTPH2IUBSZ256rmbk = 7940,
- VCVTTPH2IUBSZ256rmbkz = 7941,
- VCVTTPH2IUBSZ256rmk = 7942,
- VCVTTPH2IUBSZ256rmkz = 7943,
- VCVTTPH2IUBSZ256rr = 7944,
- VCVTTPH2IUBSZ256rrk = 7945,
- VCVTTPH2IUBSZ256rrkz = 7946,
- VCVTTPH2IUBSZrm = 7947,
- VCVTTPH2IUBSZrmb = 7948,
- VCVTTPH2IUBSZrmbk = 7949,
- VCVTTPH2IUBSZrmbkz = 7950,
- VCVTTPH2IUBSZrmk = 7951,
- VCVTTPH2IUBSZrmkz = 7952,
- VCVTTPH2IUBSZrr = 7953,
- VCVTTPH2IUBSZrrb = 7954,
- VCVTTPH2IUBSZrrbk = 7955,
- VCVTTPH2IUBSZrrbkz = 7956,
- VCVTTPH2IUBSZrrk = 7957,
- VCVTTPH2IUBSZrrkz = 7958,
- VCVTTPH2QQZ128rm = 7959,
- VCVTTPH2QQZ128rmb = 7960,
- VCVTTPH2QQZ128rmbk = 7961,
- VCVTTPH2QQZ128rmbkz = 7962,
- VCVTTPH2QQZ128rmk = 7963,
- VCVTTPH2QQZ128rmkz = 7964,
- VCVTTPH2QQZ128rr = 7965,
- VCVTTPH2QQZ128rrk = 7966,
- VCVTTPH2QQZ128rrkz = 7967,
- VCVTTPH2QQZ256rm = 7968,
- VCVTTPH2QQZ256rmb = 7969,
- VCVTTPH2QQZ256rmbk = 7970,
- VCVTTPH2QQZ256rmbkz = 7971,
- VCVTTPH2QQZ256rmk = 7972,
- VCVTTPH2QQZ256rmkz = 7973,
- VCVTTPH2QQZ256rr = 7974,
- VCVTTPH2QQZ256rrk = 7975,
- VCVTTPH2QQZ256rrkz = 7976,
- VCVTTPH2QQZrm = 7977,
- VCVTTPH2QQZrmb = 7978,
- VCVTTPH2QQZrmbk = 7979,
- VCVTTPH2QQZrmbkz = 7980,
- VCVTTPH2QQZrmk = 7981,
- VCVTTPH2QQZrmkz = 7982,
- VCVTTPH2QQZrr = 7983,
- VCVTTPH2QQZrrb = 7984,
- VCVTTPH2QQZrrbk = 7985,
- VCVTTPH2QQZrrbkz = 7986,
- VCVTTPH2QQZrrk = 7987,
- VCVTTPH2QQZrrkz = 7988,
- VCVTTPH2UDQZ128rm = 7989,
- VCVTTPH2UDQZ128rmb = 7990,
- VCVTTPH2UDQZ128rmbk = 7991,
- VCVTTPH2UDQZ128rmbkz = 7992,
- VCVTTPH2UDQZ128rmk = 7993,
- VCVTTPH2UDQZ128rmkz = 7994,
- VCVTTPH2UDQZ128rr = 7995,
- VCVTTPH2UDQZ128rrk = 7996,
- VCVTTPH2UDQZ128rrkz = 7997,
- VCVTTPH2UDQZ256rm = 7998,
- VCVTTPH2UDQZ256rmb = 7999,
- VCVTTPH2UDQZ256rmbk = 8000,
- VCVTTPH2UDQZ256rmbkz = 8001,
- VCVTTPH2UDQZ256rmk = 8002,
- VCVTTPH2UDQZ256rmkz = 8003,
- VCVTTPH2UDQZ256rr = 8004,
- VCVTTPH2UDQZ256rrk = 8005,
- VCVTTPH2UDQZ256rrkz = 8006,
- VCVTTPH2UDQZrm = 8007,
- VCVTTPH2UDQZrmb = 8008,
- VCVTTPH2UDQZrmbk = 8009,
- VCVTTPH2UDQZrmbkz = 8010,
- VCVTTPH2UDQZrmk = 8011,
- VCVTTPH2UDQZrmkz = 8012,
- VCVTTPH2UDQZrr = 8013,
- VCVTTPH2UDQZrrb = 8014,
- VCVTTPH2UDQZrrbk = 8015,
- VCVTTPH2UDQZrrbkz = 8016,
- VCVTTPH2UDQZrrk = 8017,
- VCVTTPH2UDQZrrkz = 8018,
- VCVTTPH2UQQZ128rm = 8019,
- VCVTTPH2UQQZ128rmb = 8020,
- VCVTTPH2UQQZ128rmbk = 8021,
- VCVTTPH2UQQZ128rmbkz = 8022,
- VCVTTPH2UQQZ128rmk = 8023,
- VCVTTPH2UQQZ128rmkz = 8024,
- VCVTTPH2UQQZ128rr = 8025,
- VCVTTPH2UQQZ128rrk = 8026,
- VCVTTPH2UQQZ128rrkz = 8027,
- VCVTTPH2UQQZ256rm = 8028,
- VCVTTPH2UQQZ256rmb = 8029,
- VCVTTPH2UQQZ256rmbk = 8030,
- VCVTTPH2UQQZ256rmbkz = 8031,
- VCVTTPH2UQQZ256rmk = 8032,
- VCVTTPH2UQQZ256rmkz = 8033,
- VCVTTPH2UQQZ256rr = 8034,
- VCVTTPH2UQQZ256rrk = 8035,
- VCVTTPH2UQQZ256rrkz = 8036,
- VCVTTPH2UQQZrm = 8037,
- VCVTTPH2UQQZrmb = 8038,
- VCVTTPH2UQQZrmbk = 8039,
- VCVTTPH2UQQZrmbkz = 8040,
- VCVTTPH2UQQZrmk = 8041,
- VCVTTPH2UQQZrmkz = 8042,
- VCVTTPH2UQQZrr = 8043,
- VCVTTPH2UQQZrrb = 8044,
- VCVTTPH2UQQZrrbk = 8045,
- VCVTTPH2UQQZrrbkz = 8046,
- VCVTTPH2UQQZrrk = 8047,
- VCVTTPH2UQQZrrkz = 8048,
- VCVTTPH2UWZ128rm = 8049,
- VCVTTPH2UWZ128rmb = 8050,
- VCVTTPH2UWZ128rmbk = 8051,
- VCVTTPH2UWZ128rmbkz = 8052,
- VCVTTPH2UWZ128rmk = 8053,
- VCVTTPH2UWZ128rmkz = 8054,
- VCVTTPH2UWZ128rr = 8055,
- VCVTTPH2UWZ128rrk = 8056,
- VCVTTPH2UWZ128rrkz = 8057,
- VCVTTPH2UWZ256rm = 8058,
- VCVTTPH2UWZ256rmb = 8059,
- VCVTTPH2UWZ256rmbk = 8060,
- VCVTTPH2UWZ256rmbkz = 8061,
- VCVTTPH2UWZ256rmk = 8062,
- VCVTTPH2UWZ256rmkz = 8063,
- VCVTTPH2UWZ256rr = 8064,
- VCVTTPH2UWZ256rrk = 8065,
- VCVTTPH2UWZ256rrkz = 8066,
- VCVTTPH2UWZrm = 8067,
- VCVTTPH2UWZrmb = 8068,
- VCVTTPH2UWZrmbk = 8069,
- VCVTTPH2UWZrmbkz = 8070,
- VCVTTPH2UWZrmk = 8071,
- VCVTTPH2UWZrmkz = 8072,
- VCVTTPH2UWZrr = 8073,
- VCVTTPH2UWZrrb = 8074,
- VCVTTPH2UWZrrbk = 8075,
- VCVTTPH2UWZrrbkz = 8076,
- VCVTTPH2UWZrrk = 8077,
- VCVTTPH2UWZrrkz = 8078,
- VCVTTPH2WZ128rm = 8079,
- VCVTTPH2WZ128rmb = 8080,
- VCVTTPH2WZ128rmbk = 8081,
- VCVTTPH2WZ128rmbkz = 8082,
- VCVTTPH2WZ128rmk = 8083,
- VCVTTPH2WZ128rmkz = 8084,
- VCVTTPH2WZ128rr = 8085,
- VCVTTPH2WZ128rrk = 8086,
- VCVTTPH2WZ128rrkz = 8087,
- VCVTTPH2WZ256rm = 8088,
- VCVTTPH2WZ256rmb = 8089,
- VCVTTPH2WZ256rmbk = 8090,
- VCVTTPH2WZ256rmbkz = 8091,
- VCVTTPH2WZ256rmk = 8092,
- VCVTTPH2WZ256rmkz = 8093,
- VCVTTPH2WZ256rr = 8094,
- VCVTTPH2WZ256rrk = 8095,
- VCVTTPH2WZ256rrkz = 8096,
- VCVTTPH2WZrm = 8097,
- VCVTTPH2WZrmb = 8098,
- VCVTTPH2WZrmbk = 8099,
- VCVTTPH2WZrmbkz = 8100,
- VCVTTPH2WZrmk = 8101,
- VCVTTPH2WZrmkz = 8102,
- VCVTTPH2WZrr = 8103,
- VCVTTPH2WZrrb = 8104,
- VCVTTPH2WZrrbk = 8105,
- VCVTTPH2WZrrbkz = 8106,
- VCVTTPH2WZrrk = 8107,
- VCVTTPH2WZrrkz = 8108,
- VCVTTPS2DQSZ128rm = 8109,
- VCVTTPS2DQSZ128rmb = 8110,
- VCVTTPS2DQSZ128rmbk = 8111,
- VCVTTPS2DQSZ128rmbkz = 8112,
- VCVTTPS2DQSZ128rmk = 8113,
- VCVTTPS2DQSZ128rmkz = 8114,
- VCVTTPS2DQSZ128rr = 8115,
- VCVTTPS2DQSZ128rrk = 8116,
- VCVTTPS2DQSZ128rrkz = 8117,
- VCVTTPS2DQSZ256rm = 8118,
- VCVTTPS2DQSZ256rmb = 8119,
- VCVTTPS2DQSZ256rmbk = 8120,
- VCVTTPS2DQSZ256rmbkz = 8121,
- VCVTTPS2DQSZ256rmk = 8122,
- VCVTTPS2DQSZ256rmkz = 8123,
- VCVTTPS2DQSZ256rr = 8124,
- VCVTTPS2DQSZ256rrk = 8125,
- VCVTTPS2DQSZ256rrkz = 8126,
- VCVTTPS2DQSZrm = 8127,
- VCVTTPS2DQSZrmb = 8128,
- VCVTTPS2DQSZrmbk = 8129,
- VCVTTPS2DQSZrmbkz = 8130,
- VCVTTPS2DQSZrmk = 8131,
- VCVTTPS2DQSZrmkz = 8132,
- VCVTTPS2DQSZrr = 8133,
- VCVTTPS2DQSZrrb = 8134,
- VCVTTPS2DQSZrrbk = 8135,
- VCVTTPS2DQSZrrbkz = 8136,
- VCVTTPS2DQSZrrk = 8137,
- VCVTTPS2DQSZrrkz = 8138,
- VCVTTPS2DQYrm = 8139,
- VCVTTPS2DQYrr = 8140,
- VCVTTPS2DQZ128rm = 8141,
- VCVTTPS2DQZ128rmb = 8142,
- VCVTTPS2DQZ128rmbk = 8143,
- VCVTTPS2DQZ128rmbkz = 8144,
- VCVTTPS2DQZ128rmk = 8145,
- VCVTTPS2DQZ128rmkz = 8146,
- VCVTTPS2DQZ128rr = 8147,
- VCVTTPS2DQZ128rrk = 8148,
- VCVTTPS2DQZ128rrkz = 8149,
- VCVTTPS2DQZ256rm = 8150,
- VCVTTPS2DQZ256rmb = 8151,
- VCVTTPS2DQZ256rmbk = 8152,
- VCVTTPS2DQZ256rmbkz = 8153,
- VCVTTPS2DQZ256rmk = 8154,
- VCVTTPS2DQZ256rmkz = 8155,
- VCVTTPS2DQZ256rr = 8156,
- VCVTTPS2DQZ256rrk = 8157,
- VCVTTPS2DQZ256rrkz = 8158,
- VCVTTPS2DQZrm = 8159,
- VCVTTPS2DQZrmb = 8160,
- VCVTTPS2DQZrmbk = 8161,
- VCVTTPS2DQZrmbkz = 8162,
- VCVTTPS2DQZrmk = 8163,
- VCVTTPS2DQZrmkz = 8164,
- VCVTTPS2DQZrr = 8165,
- VCVTTPS2DQZrrb = 8166,
- VCVTTPS2DQZrrbk = 8167,
- VCVTTPS2DQZrrbkz = 8168,
- VCVTTPS2DQZrrk = 8169,
- VCVTTPS2DQZrrkz = 8170,
- VCVTTPS2DQrm = 8171,
- VCVTTPS2DQrr = 8172,
- VCVTTPS2IBSZ128rm = 8173,
- VCVTTPS2IBSZ128rmb = 8174,
- VCVTTPS2IBSZ128rmbk = 8175,
- VCVTTPS2IBSZ128rmbkz = 8176,
- VCVTTPS2IBSZ128rmk = 8177,
- VCVTTPS2IBSZ128rmkz = 8178,
- VCVTTPS2IBSZ128rr = 8179,
- VCVTTPS2IBSZ128rrk = 8180,
- VCVTTPS2IBSZ128rrkz = 8181,
- VCVTTPS2IBSZ256rm = 8182,
- VCVTTPS2IBSZ256rmb = 8183,
- VCVTTPS2IBSZ256rmbk = 8184,
- VCVTTPS2IBSZ256rmbkz = 8185,
- VCVTTPS2IBSZ256rmk = 8186,
- VCVTTPS2IBSZ256rmkz = 8187,
- VCVTTPS2IBSZ256rr = 8188,
- VCVTTPS2IBSZ256rrk = 8189,
- VCVTTPS2IBSZ256rrkz = 8190,
- VCVTTPS2IBSZrm = 8191,
- VCVTTPS2IBSZrmb = 8192,
- VCVTTPS2IBSZrmbk = 8193,
- VCVTTPS2IBSZrmbkz = 8194,
- VCVTTPS2IBSZrmk = 8195,
- VCVTTPS2IBSZrmkz = 8196,
- VCVTTPS2IBSZrr = 8197,
- VCVTTPS2IBSZrrb = 8198,
- VCVTTPS2IBSZrrbk = 8199,
- VCVTTPS2IBSZrrbkz = 8200,
- VCVTTPS2IBSZrrk = 8201,
- VCVTTPS2IBSZrrkz = 8202,
- VCVTTPS2IUBSZ128rm = 8203,
- VCVTTPS2IUBSZ128rmb = 8204,
- VCVTTPS2IUBSZ128rmbk = 8205,
- VCVTTPS2IUBSZ128rmbkz = 8206,
- VCVTTPS2IUBSZ128rmk = 8207,
- VCVTTPS2IUBSZ128rmkz = 8208,
- VCVTTPS2IUBSZ128rr = 8209,
- VCVTTPS2IUBSZ128rrk = 8210,
- VCVTTPS2IUBSZ128rrkz = 8211,
- VCVTTPS2IUBSZ256rm = 8212,
- VCVTTPS2IUBSZ256rmb = 8213,
- VCVTTPS2IUBSZ256rmbk = 8214,
- VCVTTPS2IUBSZ256rmbkz = 8215,
- VCVTTPS2IUBSZ256rmk = 8216,
- VCVTTPS2IUBSZ256rmkz = 8217,
- VCVTTPS2IUBSZ256rr = 8218,
- VCVTTPS2IUBSZ256rrk = 8219,
- VCVTTPS2IUBSZ256rrkz = 8220,
- VCVTTPS2IUBSZrm = 8221,
- VCVTTPS2IUBSZrmb = 8222,
- VCVTTPS2IUBSZrmbk = 8223,
- VCVTTPS2IUBSZrmbkz = 8224,
- VCVTTPS2IUBSZrmk = 8225,
- VCVTTPS2IUBSZrmkz = 8226,
- VCVTTPS2IUBSZrr = 8227,
- VCVTTPS2IUBSZrrb = 8228,
- VCVTTPS2IUBSZrrbk = 8229,
- VCVTTPS2IUBSZrrbkz = 8230,
- VCVTTPS2IUBSZrrk = 8231,
- VCVTTPS2IUBSZrrkz = 8232,
- VCVTTPS2QQSZ128rm = 8233,
- VCVTTPS2QQSZ128rmb = 8234,
- VCVTTPS2QQSZ128rmbk = 8235,
- VCVTTPS2QQSZ128rmbkz = 8236,
- VCVTTPS2QQSZ128rmk = 8237,
- VCVTTPS2QQSZ128rmkz = 8238,
- VCVTTPS2QQSZ128rr = 8239,
- VCVTTPS2QQSZ128rrk = 8240,
- VCVTTPS2QQSZ128rrkz = 8241,
- VCVTTPS2QQSZ256rm = 8242,
- VCVTTPS2QQSZ256rmb = 8243,
- VCVTTPS2QQSZ256rmbk = 8244,
- VCVTTPS2QQSZ256rmbkz = 8245,
- VCVTTPS2QQSZ256rmk = 8246,
- VCVTTPS2QQSZ256rmkz = 8247,
- VCVTTPS2QQSZ256rr = 8248,
- VCVTTPS2QQSZ256rrb = 8249,
- VCVTTPS2QQSZ256rrbk = 8250,
- VCVTTPS2QQSZ256rrbkz = 8251,
- VCVTTPS2QQSZ256rrk = 8252,
- VCVTTPS2QQSZ256rrkz = 8253,
- VCVTTPS2QQSZrm = 8254,
- VCVTTPS2QQSZrmb = 8255,
- VCVTTPS2QQSZrmbk = 8256,
- VCVTTPS2QQSZrmbkz = 8257,
- VCVTTPS2QQSZrmk = 8258,
- VCVTTPS2QQSZrmkz = 8259,
- VCVTTPS2QQSZrr = 8260,
- VCVTTPS2QQSZrrb = 8261,
- VCVTTPS2QQSZrrbk = 8262,
- VCVTTPS2QQSZrrbkz = 8263,
- VCVTTPS2QQSZrrk = 8264,
- VCVTTPS2QQSZrrkz = 8265,
- VCVTTPS2QQZ128rm = 8266,
- VCVTTPS2QQZ128rmb = 8267,
- VCVTTPS2QQZ128rmbk = 8268,
- VCVTTPS2QQZ128rmbkz = 8269,
- VCVTTPS2QQZ128rmk = 8270,
- VCVTTPS2QQZ128rmkz = 8271,
- VCVTTPS2QQZ128rr = 8272,
- VCVTTPS2QQZ128rrk = 8273,
- VCVTTPS2QQZ128rrkz = 8274,
- VCVTTPS2QQZ256rm = 8275,
- VCVTTPS2QQZ256rmb = 8276,
- VCVTTPS2QQZ256rmbk = 8277,
- VCVTTPS2QQZ256rmbkz = 8278,
- VCVTTPS2QQZ256rmk = 8279,
- VCVTTPS2QQZ256rmkz = 8280,
- VCVTTPS2QQZ256rr = 8281,
- VCVTTPS2QQZ256rrk = 8282,
- VCVTTPS2QQZ256rrkz = 8283,
- VCVTTPS2QQZrm = 8284,
- VCVTTPS2QQZrmb = 8285,
- VCVTTPS2QQZrmbk = 8286,
- VCVTTPS2QQZrmbkz = 8287,
- VCVTTPS2QQZrmk = 8288,
- VCVTTPS2QQZrmkz = 8289,
- VCVTTPS2QQZrr = 8290,
- VCVTTPS2QQZrrb = 8291,
- VCVTTPS2QQZrrbk = 8292,
- VCVTTPS2QQZrrbkz = 8293,
- VCVTTPS2QQZrrk = 8294,
- VCVTTPS2QQZrrkz = 8295,
- VCVTTPS2UDQSZ128rm = 8296,
- VCVTTPS2UDQSZ128rmb = 8297,
- VCVTTPS2UDQSZ128rmbk = 8298,
- VCVTTPS2UDQSZ128rmbkz = 8299,
- VCVTTPS2UDQSZ128rmk = 8300,
- VCVTTPS2UDQSZ128rmkz = 8301,
- VCVTTPS2UDQSZ128rr = 8302,
- VCVTTPS2UDQSZ128rrk = 8303,
- VCVTTPS2UDQSZ128rrkz = 8304,
- VCVTTPS2UDQSZ256rm = 8305,
- VCVTTPS2UDQSZ256rmb = 8306,
- VCVTTPS2UDQSZ256rmbk = 8307,
- VCVTTPS2UDQSZ256rmbkz = 8308,
- VCVTTPS2UDQSZ256rmk = 8309,
- VCVTTPS2UDQSZ256rmkz = 8310,
- VCVTTPS2UDQSZ256rr = 8311,
- VCVTTPS2UDQSZ256rrk = 8312,
- VCVTTPS2UDQSZ256rrkz = 8313,
- VCVTTPS2UDQSZrm = 8314,
- VCVTTPS2UDQSZrmb = 8315,
- VCVTTPS2UDQSZrmbk = 8316,
- VCVTTPS2UDQSZrmbkz = 8317,
- VCVTTPS2UDQSZrmk = 8318,
- VCVTTPS2UDQSZrmkz = 8319,
- VCVTTPS2UDQSZrr = 8320,
- VCVTTPS2UDQSZrrb = 8321,
- VCVTTPS2UDQSZrrbk = 8322,
- VCVTTPS2UDQSZrrbkz = 8323,
- VCVTTPS2UDQSZrrk = 8324,
- VCVTTPS2UDQSZrrkz = 8325,
- VCVTTPS2UDQZ128rm = 8326,
- VCVTTPS2UDQZ128rmb = 8327,
- VCVTTPS2UDQZ128rmbk = 8328,
- VCVTTPS2UDQZ128rmbkz = 8329,
- VCVTTPS2UDQZ128rmk = 8330,
- VCVTTPS2UDQZ128rmkz = 8331,
- VCVTTPS2UDQZ128rr = 8332,
- VCVTTPS2UDQZ128rrk = 8333,
- VCVTTPS2UDQZ128rrkz = 8334,
- VCVTTPS2UDQZ256rm = 8335,
- VCVTTPS2UDQZ256rmb = 8336,
- VCVTTPS2UDQZ256rmbk = 8337,
- VCVTTPS2UDQZ256rmbkz = 8338,
- VCVTTPS2UDQZ256rmk = 8339,
- VCVTTPS2UDQZ256rmkz = 8340,
- VCVTTPS2UDQZ256rr = 8341,
- VCVTTPS2UDQZ256rrk = 8342,
- VCVTTPS2UDQZ256rrkz = 8343,
- VCVTTPS2UDQZrm = 8344,
- VCVTTPS2UDQZrmb = 8345,
- VCVTTPS2UDQZrmbk = 8346,
- VCVTTPS2UDQZrmbkz = 8347,
- VCVTTPS2UDQZrmk = 8348,
- VCVTTPS2UDQZrmkz = 8349,
- VCVTTPS2UDQZrr = 8350,
- VCVTTPS2UDQZrrb = 8351,
- VCVTTPS2UDQZrrbk = 8352,
- VCVTTPS2UDQZrrbkz = 8353,
- VCVTTPS2UDQZrrk = 8354,
- VCVTTPS2UDQZrrkz = 8355,
- VCVTTPS2UQQSZ128rm = 8356,
- VCVTTPS2UQQSZ128rmb = 8357,
- VCVTTPS2UQQSZ128rmbk = 8358,
- VCVTTPS2UQQSZ128rmbkz = 8359,
- VCVTTPS2UQQSZ128rmk = 8360,
- VCVTTPS2UQQSZ128rmkz = 8361,
- VCVTTPS2UQQSZ128rr = 8362,
- VCVTTPS2UQQSZ128rrk = 8363,
- VCVTTPS2UQQSZ128rrkz = 8364,
- VCVTTPS2UQQSZ256rm = 8365,
- VCVTTPS2UQQSZ256rmb = 8366,
- VCVTTPS2UQQSZ256rmbk = 8367,
- VCVTTPS2UQQSZ256rmbkz = 8368,
- VCVTTPS2UQQSZ256rmk = 8369,
- VCVTTPS2UQQSZ256rmkz = 8370,
- VCVTTPS2UQQSZ256rr = 8371,
- VCVTTPS2UQQSZ256rrb = 8372,
- VCVTTPS2UQQSZ256rrbk = 8373,
- VCVTTPS2UQQSZ256rrbkz = 8374,
- VCVTTPS2UQQSZ256rrk = 8375,
- VCVTTPS2UQQSZ256rrkz = 8376,
- VCVTTPS2UQQSZrm = 8377,
- VCVTTPS2UQQSZrmb = 8378,
- VCVTTPS2UQQSZrmbk = 8379,
- VCVTTPS2UQQSZrmbkz = 8380,
- VCVTTPS2UQQSZrmk = 8381,
- VCVTTPS2UQQSZrmkz = 8382,
- VCVTTPS2UQQSZrr = 8383,
- VCVTTPS2UQQSZrrb = 8384,
- VCVTTPS2UQQSZrrbk = 8385,
- VCVTTPS2UQQSZrrbkz = 8386,
- VCVTTPS2UQQSZrrk = 8387,
- VCVTTPS2UQQSZrrkz = 8388,
- VCVTTPS2UQQZ128rm = 8389,
- VCVTTPS2UQQZ128rmb = 8390,
- VCVTTPS2UQQZ128rmbk = 8391,
- VCVTTPS2UQQZ128rmbkz = 8392,
- VCVTTPS2UQQZ128rmk = 8393,
- VCVTTPS2UQQZ128rmkz = 8394,
- VCVTTPS2UQQZ128rr = 8395,
- VCVTTPS2UQQZ128rrk = 8396,
- VCVTTPS2UQQZ128rrkz = 8397,
- VCVTTPS2UQQZ256rm = 8398,
- VCVTTPS2UQQZ256rmb = 8399,
- VCVTTPS2UQQZ256rmbk = 8400,
- VCVTTPS2UQQZ256rmbkz = 8401,
- VCVTTPS2UQQZ256rmk = 8402,
- VCVTTPS2UQQZ256rmkz = 8403,
- VCVTTPS2UQQZ256rr = 8404,
- VCVTTPS2UQQZ256rrk = 8405,
- VCVTTPS2UQQZ256rrkz = 8406,
- VCVTTPS2UQQZrm = 8407,
- VCVTTPS2UQQZrmb = 8408,
- VCVTTPS2UQQZrmbk = 8409,
- VCVTTPS2UQQZrmbkz = 8410,
- VCVTTPS2UQQZrmk = 8411,
- VCVTTPS2UQQZrmkz = 8412,
- VCVTTPS2UQQZrr = 8413,
- VCVTTPS2UQQZrrb = 8414,
- VCVTTPS2UQQZrrbk = 8415,
- VCVTTPS2UQQZrrbkz = 8416,
- VCVTTPS2UQQZrrk = 8417,
- VCVTTPS2UQQZrrkz = 8418,
- VCVTTSD2SI64Srm = 8419,
- VCVTTSD2SI64Srm_Int = 8420,
- VCVTTSD2SI64Srr = 8421,
- VCVTTSD2SI64Srr_Int = 8422,
- VCVTTSD2SI64Srrb_Int = 8423,
- VCVTTSD2SI64Zrm = 8424,
- VCVTTSD2SI64Zrm_Int = 8425,
- VCVTTSD2SI64Zrr = 8426,
- VCVTTSD2SI64Zrr_Int = 8427,
- VCVTTSD2SI64Zrrb_Int = 8428,
- VCVTTSD2SI64rm = 8429,
- VCVTTSD2SI64rm_Int = 8430,
- VCVTTSD2SI64rr = 8431,
- VCVTTSD2SI64rr_Int = 8432,
- VCVTTSD2SISrm = 8433,
- VCVTTSD2SISrm_Int = 8434,
- VCVTTSD2SISrr = 8435,
- VCVTTSD2SISrr_Int = 8436,
- VCVTTSD2SISrrb_Int = 8437,
- VCVTTSD2SIZrm = 8438,
- VCVTTSD2SIZrm_Int = 8439,
- VCVTTSD2SIZrr = 8440,
- VCVTTSD2SIZrr_Int = 8441,
- VCVTTSD2SIZrrb_Int = 8442,
- VCVTTSD2SIrm = 8443,
- VCVTTSD2SIrm_Int = 8444,
- VCVTTSD2SIrr = 8445,
- VCVTTSD2SIrr_Int = 8446,
- VCVTTSD2USI64Srm = 8447,
- VCVTTSD2USI64Srm_Int = 8448,
- VCVTTSD2USI64Srr = 8449,
- VCVTTSD2USI64Srr_Int = 8450,
- VCVTTSD2USI64Srrb_Int = 8451,
- VCVTTSD2USI64Zrm = 8452,
- VCVTTSD2USI64Zrm_Int = 8453,
- VCVTTSD2USI64Zrr = 8454,
- VCVTTSD2USI64Zrr_Int = 8455,
- VCVTTSD2USI64Zrrb_Int = 8456,
- VCVTTSD2USISrm = 8457,
- VCVTTSD2USISrm_Int = 8458,
- VCVTTSD2USISrr = 8459,
- VCVTTSD2USISrr_Int = 8460,
- VCVTTSD2USISrrb_Int = 8461,
- VCVTTSD2USIZrm = 8462,
- VCVTTSD2USIZrm_Int = 8463,
- VCVTTSD2USIZrr = 8464,
- VCVTTSD2USIZrr_Int = 8465,
- VCVTTSD2USIZrrb_Int = 8466,
- VCVTTSH2SI64Zrm = 8467,
- VCVTTSH2SI64Zrm_Int = 8468,
- VCVTTSH2SI64Zrr = 8469,
- VCVTTSH2SI64Zrr_Int = 8470,
- VCVTTSH2SI64Zrrb_Int = 8471,
- VCVTTSH2SIZrm = 8472,
- VCVTTSH2SIZrm_Int = 8473,
- VCVTTSH2SIZrr = 8474,
- VCVTTSH2SIZrr_Int = 8475,
- VCVTTSH2SIZrrb_Int = 8476,
- VCVTTSH2USI64Zrm = 8477,
- VCVTTSH2USI64Zrm_Int = 8478,
- VCVTTSH2USI64Zrr = 8479,
- VCVTTSH2USI64Zrr_Int = 8480,
- VCVTTSH2USI64Zrrb_Int = 8481,
- VCVTTSH2USIZrm = 8482,
- VCVTTSH2USIZrm_Int = 8483,
- VCVTTSH2USIZrr = 8484,
- VCVTTSH2USIZrr_Int = 8485,
- VCVTTSH2USIZrrb_Int = 8486,
- VCVTTSS2SI64Srm = 8487,
- VCVTTSS2SI64Srm_Int = 8488,
- VCVTTSS2SI64Srr = 8489,
- VCVTTSS2SI64Srr_Int = 8490,
- VCVTTSS2SI64Srrb_Int = 8491,
- VCVTTSS2SI64Zrm = 8492,
- VCVTTSS2SI64Zrm_Int = 8493,
- VCVTTSS2SI64Zrr = 8494,
- VCVTTSS2SI64Zrr_Int = 8495,
- VCVTTSS2SI64Zrrb_Int = 8496,
- VCVTTSS2SI64rm = 8497,
- VCVTTSS2SI64rm_Int = 8498,
- VCVTTSS2SI64rr = 8499,
- VCVTTSS2SI64rr_Int = 8500,
- VCVTTSS2SISrm = 8501,
- VCVTTSS2SISrm_Int = 8502,
- VCVTTSS2SISrr = 8503,
- VCVTTSS2SISrr_Int = 8504,
- VCVTTSS2SISrrb_Int = 8505,
- VCVTTSS2SIZrm = 8506,
- VCVTTSS2SIZrm_Int = 8507,
- VCVTTSS2SIZrr = 8508,
- VCVTTSS2SIZrr_Int = 8509,
- VCVTTSS2SIZrrb_Int = 8510,
- VCVTTSS2SIrm = 8511,
- VCVTTSS2SIrm_Int = 8512,
- VCVTTSS2SIrr = 8513,
- VCVTTSS2SIrr_Int = 8514,
- VCVTTSS2USI64Srm = 8515,
- VCVTTSS2USI64Srm_Int = 8516,
- VCVTTSS2USI64Srr = 8517,
- VCVTTSS2USI64Srr_Int = 8518,
- VCVTTSS2USI64Srrb_Int = 8519,
- VCVTTSS2USI64Zrm = 8520,
- VCVTTSS2USI64Zrm_Int = 8521,
- VCVTTSS2USI64Zrr = 8522,
- VCVTTSS2USI64Zrr_Int = 8523,
- VCVTTSS2USI64Zrrb_Int = 8524,
- VCVTTSS2USISrm = 8525,
- VCVTTSS2USISrm_Int = 8526,
- VCVTTSS2USISrr = 8527,
- VCVTTSS2USISrr_Int = 8528,
- VCVTTSS2USISrrb_Int = 8529,
- VCVTTSS2USIZrm = 8530,
- VCVTTSS2USIZrm_Int = 8531,
- VCVTTSS2USIZrr = 8532,
- VCVTTSS2USIZrr_Int = 8533,
- VCVTTSS2USIZrrb_Int = 8534,
- VCVTUDQ2PDZ128rm = 8535,
- VCVTUDQ2PDZ128rmb = 8536,
- VCVTUDQ2PDZ128rmbk = 8537,
- VCVTUDQ2PDZ128rmbkz = 8538,
- VCVTUDQ2PDZ128rmk = 8539,
- VCVTUDQ2PDZ128rmkz = 8540,
- VCVTUDQ2PDZ128rr = 8541,
- VCVTUDQ2PDZ128rrk = 8542,
- VCVTUDQ2PDZ128rrkz = 8543,
- VCVTUDQ2PDZ256rm = 8544,
- VCVTUDQ2PDZ256rmb = 8545,
- VCVTUDQ2PDZ256rmbk = 8546,
- VCVTUDQ2PDZ256rmbkz = 8547,
- VCVTUDQ2PDZ256rmk = 8548,
- VCVTUDQ2PDZ256rmkz = 8549,
- VCVTUDQ2PDZ256rr = 8550,
- VCVTUDQ2PDZ256rrk = 8551,
- VCVTUDQ2PDZ256rrkz = 8552,
- VCVTUDQ2PDZrm = 8553,
- VCVTUDQ2PDZrmb = 8554,
- VCVTUDQ2PDZrmbk = 8555,
- VCVTUDQ2PDZrmbkz = 8556,
- VCVTUDQ2PDZrmk = 8557,
- VCVTUDQ2PDZrmkz = 8558,
- VCVTUDQ2PDZrr = 8559,
- VCVTUDQ2PDZrrk = 8560,
- VCVTUDQ2PDZrrkz = 8561,
- VCVTUDQ2PHZ128rm = 8562,
- VCVTUDQ2PHZ128rmb = 8563,
- VCVTUDQ2PHZ128rmbk = 8564,
- VCVTUDQ2PHZ128rmbkz = 8565,
- VCVTUDQ2PHZ128rmk = 8566,
- VCVTUDQ2PHZ128rmkz = 8567,
- VCVTUDQ2PHZ128rr = 8568,
- VCVTUDQ2PHZ128rrk = 8569,
- VCVTUDQ2PHZ128rrkz = 8570,
- VCVTUDQ2PHZ256rm = 8571,
- VCVTUDQ2PHZ256rmb = 8572,
- VCVTUDQ2PHZ256rmbk = 8573,
- VCVTUDQ2PHZ256rmbkz = 8574,
- VCVTUDQ2PHZ256rmk = 8575,
- VCVTUDQ2PHZ256rmkz = 8576,
- VCVTUDQ2PHZ256rr = 8577,
- VCVTUDQ2PHZ256rrk = 8578,
- VCVTUDQ2PHZ256rrkz = 8579,
- VCVTUDQ2PHZrm = 8580,
- VCVTUDQ2PHZrmb = 8581,
- VCVTUDQ2PHZrmbk = 8582,
- VCVTUDQ2PHZrmbkz = 8583,
- VCVTUDQ2PHZrmk = 8584,
- VCVTUDQ2PHZrmkz = 8585,
- VCVTUDQ2PHZrr = 8586,
- VCVTUDQ2PHZrrb = 8587,
- VCVTUDQ2PHZrrbk = 8588,
- VCVTUDQ2PHZrrbkz = 8589,
- VCVTUDQ2PHZrrk = 8590,
- VCVTUDQ2PHZrrkz = 8591,
- VCVTUDQ2PSZ128rm = 8592,
- VCVTUDQ2PSZ128rmb = 8593,
- VCVTUDQ2PSZ128rmbk = 8594,
- VCVTUDQ2PSZ128rmbkz = 8595,
- VCVTUDQ2PSZ128rmk = 8596,
- VCVTUDQ2PSZ128rmkz = 8597,
- VCVTUDQ2PSZ128rr = 8598,
- VCVTUDQ2PSZ128rrk = 8599,
- VCVTUDQ2PSZ128rrkz = 8600,
- VCVTUDQ2PSZ256rm = 8601,
- VCVTUDQ2PSZ256rmb = 8602,
- VCVTUDQ2PSZ256rmbk = 8603,
- VCVTUDQ2PSZ256rmbkz = 8604,
- VCVTUDQ2PSZ256rmk = 8605,
- VCVTUDQ2PSZ256rmkz = 8606,
- VCVTUDQ2PSZ256rr = 8607,
- VCVTUDQ2PSZ256rrk = 8608,
- VCVTUDQ2PSZ256rrkz = 8609,
- VCVTUDQ2PSZrm = 8610,
- VCVTUDQ2PSZrmb = 8611,
- VCVTUDQ2PSZrmbk = 8612,
- VCVTUDQ2PSZrmbkz = 8613,
- VCVTUDQ2PSZrmk = 8614,
- VCVTUDQ2PSZrmkz = 8615,
- VCVTUDQ2PSZrr = 8616,
- VCVTUDQ2PSZrrb = 8617,
- VCVTUDQ2PSZrrbk = 8618,
- VCVTUDQ2PSZrrbkz = 8619,
- VCVTUDQ2PSZrrk = 8620,
- VCVTUDQ2PSZrrkz = 8621,
- VCVTUQQ2PDZ128rm = 8622,
- VCVTUQQ2PDZ128rmb = 8623,
- VCVTUQQ2PDZ128rmbk = 8624,
- VCVTUQQ2PDZ128rmbkz = 8625,
- VCVTUQQ2PDZ128rmk = 8626,
- VCVTUQQ2PDZ128rmkz = 8627,
- VCVTUQQ2PDZ128rr = 8628,
- VCVTUQQ2PDZ128rrk = 8629,
- VCVTUQQ2PDZ128rrkz = 8630,
- VCVTUQQ2PDZ256rm = 8631,
- VCVTUQQ2PDZ256rmb = 8632,
- VCVTUQQ2PDZ256rmbk = 8633,
- VCVTUQQ2PDZ256rmbkz = 8634,
- VCVTUQQ2PDZ256rmk = 8635,
- VCVTUQQ2PDZ256rmkz = 8636,
- VCVTUQQ2PDZ256rr = 8637,
- VCVTUQQ2PDZ256rrk = 8638,
- VCVTUQQ2PDZ256rrkz = 8639,
- VCVTUQQ2PDZrm = 8640,
- VCVTUQQ2PDZrmb = 8641,
- VCVTUQQ2PDZrmbk = 8642,
- VCVTUQQ2PDZrmbkz = 8643,
- VCVTUQQ2PDZrmk = 8644,
- VCVTUQQ2PDZrmkz = 8645,
- VCVTUQQ2PDZrr = 8646,
- VCVTUQQ2PDZrrb = 8647,
- VCVTUQQ2PDZrrbk = 8648,
- VCVTUQQ2PDZrrbkz = 8649,
- VCVTUQQ2PDZrrk = 8650,
- VCVTUQQ2PDZrrkz = 8651,
- VCVTUQQ2PHZ128rm = 8652,
- VCVTUQQ2PHZ128rmb = 8653,
- VCVTUQQ2PHZ128rmbk = 8654,
- VCVTUQQ2PHZ128rmbkz = 8655,
- VCVTUQQ2PHZ128rmk = 8656,
- VCVTUQQ2PHZ128rmkz = 8657,
- VCVTUQQ2PHZ128rr = 8658,
- VCVTUQQ2PHZ128rrk = 8659,
- VCVTUQQ2PHZ128rrkz = 8660,
- VCVTUQQ2PHZ256rm = 8661,
- VCVTUQQ2PHZ256rmb = 8662,
- VCVTUQQ2PHZ256rmbk = 8663,
- VCVTUQQ2PHZ256rmbkz = 8664,
- VCVTUQQ2PHZ256rmk = 8665,
- VCVTUQQ2PHZ256rmkz = 8666,
- VCVTUQQ2PHZ256rr = 8667,
- VCVTUQQ2PHZ256rrk = 8668,
- VCVTUQQ2PHZ256rrkz = 8669,
- VCVTUQQ2PHZrm = 8670,
- VCVTUQQ2PHZrmb = 8671,
- VCVTUQQ2PHZrmbk = 8672,
- VCVTUQQ2PHZrmbkz = 8673,
- VCVTUQQ2PHZrmk = 8674,
- VCVTUQQ2PHZrmkz = 8675,
- VCVTUQQ2PHZrr = 8676,
- VCVTUQQ2PHZrrb = 8677,
- VCVTUQQ2PHZrrbk = 8678,
- VCVTUQQ2PHZrrbkz = 8679,
- VCVTUQQ2PHZrrk = 8680,
- VCVTUQQ2PHZrrkz = 8681,
- VCVTUQQ2PSZ128rm = 8682,
- VCVTUQQ2PSZ128rmb = 8683,
- VCVTUQQ2PSZ128rmbk = 8684,
- VCVTUQQ2PSZ128rmbkz = 8685,
- VCVTUQQ2PSZ128rmk = 8686,
- VCVTUQQ2PSZ128rmkz = 8687,
- VCVTUQQ2PSZ128rr = 8688,
- VCVTUQQ2PSZ128rrk = 8689,
- VCVTUQQ2PSZ128rrkz = 8690,
- VCVTUQQ2PSZ256rm = 8691,
- VCVTUQQ2PSZ256rmb = 8692,
- VCVTUQQ2PSZ256rmbk = 8693,
- VCVTUQQ2PSZ256rmbkz = 8694,
- VCVTUQQ2PSZ256rmk = 8695,
- VCVTUQQ2PSZ256rmkz = 8696,
- VCVTUQQ2PSZ256rr = 8697,
- VCVTUQQ2PSZ256rrk = 8698,
- VCVTUQQ2PSZ256rrkz = 8699,
- VCVTUQQ2PSZrm = 8700,
- VCVTUQQ2PSZrmb = 8701,
- VCVTUQQ2PSZrmbk = 8702,
- VCVTUQQ2PSZrmbkz = 8703,
- VCVTUQQ2PSZrmk = 8704,
- VCVTUQQ2PSZrmkz = 8705,
- VCVTUQQ2PSZrr = 8706,
- VCVTUQQ2PSZrrb = 8707,
- VCVTUQQ2PSZrrbk = 8708,
- VCVTUQQ2PSZrrbkz = 8709,
- VCVTUQQ2PSZrrk = 8710,
- VCVTUQQ2PSZrrkz = 8711,
- VCVTUSI2SDZrm = 8712,
- VCVTUSI2SDZrm_Int = 8713,
- VCVTUSI2SDZrr = 8714,
- VCVTUSI2SDZrr_Int = 8715,
- VCVTUSI2SHZrm = 8716,
- VCVTUSI2SHZrm_Int = 8717,
- VCVTUSI2SHZrr = 8718,
- VCVTUSI2SHZrr_Int = 8719,
- VCVTUSI2SHZrrb_Int = 8720,
- VCVTUSI2SSZrm = 8721,
- VCVTUSI2SSZrm_Int = 8722,
- VCVTUSI2SSZrr = 8723,
- VCVTUSI2SSZrr_Int = 8724,
- VCVTUSI2SSZrrb_Int = 8725,
- VCVTUSI642SDZrm = 8726,
- VCVTUSI642SDZrm_Int = 8727,
- VCVTUSI642SDZrr = 8728,
- VCVTUSI642SDZrr_Int = 8729,
- VCVTUSI642SDZrrb_Int = 8730,
- VCVTUSI642SHZrm = 8731,
- VCVTUSI642SHZrm_Int = 8732,
- VCVTUSI642SHZrr = 8733,
- VCVTUSI642SHZrr_Int = 8734,
- VCVTUSI642SHZrrb_Int = 8735,
- VCVTUSI642SSZrm = 8736,
- VCVTUSI642SSZrm_Int = 8737,
- VCVTUSI642SSZrr = 8738,
- VCVTUSI642SSZrr_Int = 8739,
- VCVTUSI642SSZrrb_Int = 8740,
- VCVTUW2PHZ128rm = 8741,
- VCVTUW2PHZ128rmb = 8742,
- VCVTUW2PHZ128rmbk = 8743,
- VCVTUW2PHZ128rmbkz = 8744,
- VCVTUW2PHZ128rmk = 8745,
- VCVTUW2PHZ128rmkz = 8746,
- VCVTUW2PHZ128rr = 8747,
- VCVTUW2PHZ128rrk = 8748,
- VCVTUW2PHZ128rrkz = 8749,
- VCVTUW2PHZ256rm = 8750,
- VCVTUW2PHZ256rmb = 8751,
- VCVTUW2PHZ256rmbk = 8752,
- VCVTUW2PHZ256rmbkz = 8753,
- VCVTUW2PHZ256rmk = 8754,
- VCVTUW2PHZ256rmkz = 8755,
- VCVTUW2PHZ256rr = 8756,
- VCVTUW2PHZ256rrk = 8757,
- VCVTUW2PHZ256rrkz = 8758,
- VCVTUW2PHZrm = 8759,
- VCVTUW2PHZrmb = 8760,
- VCVTUW2PHZrmbk = 8761,
- VCVTUW2PHZrmbkz = 8762,
- VCVTUW2PHZrmk = 8763,
- VCVTUW2PHZrmkz = 8764,
- VCVTUW2PHZrr = 8765,
- VCVTUW2PHZrrb = 8766,
- VCVTUW2PHZrrbk = 8767,
- VCVTUW2PHZrrbkz = 8768,
- VCVTUW2PHZrrk = 8769,
- VCVTUW2PHZrrkz = 8770,
- VCVTW2PHZ128rm = 8771,
- VCVTW2PHZ128rmb = 8772,
- VCVTW2PHZ128rmbk = 8773,
- VCVTW2PHZ128rmbkz = 8774,
- VCVTW2PHZ128rmk = 8775,
- VCVTW2PHZ128rmkz = 8776,
- VCVTW2PHZ128rr = 8777,
- VCVTW2PHZ128rrk = 8778,
- VCVTW2PHZ128rrkz = 8779,
- VCVTW2PHZ256rm = 8780,
- VCVTW2PHZ256rmb = 8781,
- VCVTW2PHZ256rmbk = 8782,
- VCVTW2PHZ256rmbkz = 8783,
- VCVTW2PHZ256rmk = 8784,
- VCVTW2PHZ256rmkz = 8785,
- VCVTW2PHZ256rr = 8786,
- VCVTW2PHZ256rrk = 8787,
- VCVTW2PHZ256rrkz = 8788,
- VCVTW2PHZrm = 8789,
- VCVTW2PHZrmb = 8790,
- VCVTW2PHZrmbk = 8791,
- VCVTW2PHZrmbkz = 8792,
- VCVTW2PHZrmk = 8793,
- VCVTW2PHZrmkz = 8794,
- VCVTW2PHZrr = 8795,
- VCVTW2PHZrrb = 8796,
- VCVTW2PHZrrbk = 8797,
- VCVTW2PHZrrbkz = 8798,
- VCVTW2PHZrrk = 8799,
- VCVTW2PHZrrkz = 8800,
- VDBPSADBWZ128rmi = 8801,
- VDBPSADBWZ128rmik = 8802,
- VDBPSADBWZ128rmikz = 8803,
- VDBPSADBWZ128rri = 8804,
- VDBPSADBWZ128rrik = 8805,
- VDBPSADBWZ128rrikz = 8806,
- VDBPSADBWZ256rmi = 8807,
- VDBPSADBWZ256rmik = 8808,
- VDBPSADBWZ256rmikz = 8809,
- VDBPSADBWZ256rri = 8810,
- VDBPSADBWZ256rrik = 8811,
- VDBPSADBWZ256rrikz = 8812,
- VDBPSADBWZrmi = 8813,
- VDBPSADBWZrmik = 8814,
- VDBPSADBWZrmikz = 8815,
- VDBPSADBWZrri = 8816,
- VDBPSADBWZrrik = 8817,
- VDBPSADBWZrrikz = 8818,
- VDIVBF16Z128rm = 8819,
- VDIVBF16Z128rmb = 8820,
- VDIVBF16Z128rmbk = 8821,
- VDIVBF16Z128rmbkz = 8822,
- VDIVBF16Z128rmk = 8823,
- VDIVBF16Z128rmkz = 8824,
- VDIVBF16Z128rr = 8825,
- VDIVBF16Z128rrk = 8826,
- VDIVBF16Z128rrkz = 8827,
- VDIVBF16Z256rm = 8828,
- VDIVBF16Z256rmb = 8829,
- VDIVBF16Z256rmbk = 8830,
- VDIVBF16Z256rmbkz = 8831,
- VDIVBF16Z256rmk = 8832,
- VDIVBF16Z256rmkz = 8833,
- VDIVBF16Z256rr = 8834,
- VDIVBF16Z256rrk = 8835,
- VDIVBF16Z256rrkz = 8836,
- VDIVBF16Zrm = 8837,
- VDIVBF16Zrmb = 8838,
- VDIVBF16Zrmbk = 8839,
- VDIVBF16Zrmbkz = 8840,
- VDIVBF16Zrmk = 8841,
- VDIVBF16Zrmkz = 8842,
- VDIVBF16Zrr = 8843,
- VDIVBF16Zrrk = 8844,
- VDIVBF16Zrrkz = 8845,
- VDIVPDYrm = 8846,
- VDIVPDYrr = 8847,
- VDIVPDZ128rm = 8848,
- VDIVPDZ128rmb = 8849,
- VDIVPDZ128rmbk = 8850,
- VDIVPDZ128rmbkz = 8851,
- VDIVPDZ128rmk = 8852,
- VDIVPDZ128rmkz = 8853,
- VDIVPDZ128rr = 8854,
- VDIVPDZ128rrk = 8855,
- VDIVPDZ128rrkz = 8856,
- VDIVPDZ256rm = 8857,
- VDIVPDZ256rmb = 8858,
- VDIVPDZ256rmbk = 8859,
- VDIVPDZ256rmbkz = 8860,
- VDIVPDZ256rmk = 8861,
- VDIVPDZ256rmkz = 8862,
- VDIVPDZ256rr = 8863,
- VDIVPDZ256rrk = 8864,
- VDIVPDZ256rrkz = 8865,
- VDIVPDZrm = 8866,
- VDIVPDZrmb = 8867,
- VDIVPDZrmbk = 8868,
- VDIVPDZrmbkz = 8869,
- VDIVPDZrmk = 8870,
- VDIVPDZrmkz = 8871,
- VDIVPDZrr = 8872,
- VDIVPDZrrb = 8873,
- VDIVPDZrrbk = 8874,
- VDIVPDZrrbkz = 8875,
- VDIVPDZrrk = 8876,
- VDIVPDZrrkz = 8877,
- VDIVPDrm = 8878,
- VDIVPDrr = 8879,
- VDIVPHZ128rm = 8880,
- VDIVPHZ128rmb = 8881,
- VDIVPHZ128rmbk = 8882,
- VDIVPHZ128rmbkz = 8883,
- VDIVPHZ128rmk = 8884,
- VDIVPHZ128rmkz = 8885,
- VDIVPHZ128rr = 8886,
- VDIVPHZ128rrk = 8887,
- VDIVPHZ128rrkz = 8888,
- VDIVPHZ256rm = 8889,
- VDIVPHZ256rmb = 8890,
- VDIVPHZ256rmbk = 8891,
- VDIVPHZ256rmbkz = 8892,
- VDIVPHZ256rmk = 8893,
- VDIVPHZ256rmkz = 8894,
- VDIVPHZ256rr = 8895,
- VDIVPHZ256rrk = 8896,
- VDIVPHZ256rrkz = 8897,
- VDIVPHZrm = 8898,
- VDIVPHZrmb = 8899,
- VDIVPHZrmbk = 8900,
- VDIVPHZrmbkz = 8901,
- VDIVPHZrmk = 8902,
- VDIVPHZrmkz = 8903,
- VDIVPHZrr = 8904,
- VDIVPHZrrb = 8905,
- VDIVPHZrrbk = 8906,
- VDIVPHZrrbkz = 8907,
- VDIVPHZrrk = 8908,
- VDIVPHZrrkz = 8909,
- VDIVPSYrm = 8910,
- VDIVPSYrr = 8911,
- VDIVPSZ128rm = 8912,
- VDIVPSZ128rmb = 8913,
- VDIVPSZ128rmbk = 8914,
- VDIVPSZ128rmbkz = 8915,
- VDIVPSZ128rmk = 8916,
- VDIVPSZ128rmkz = 8917,
- VDIVPSZ128rr = 8918,
- VDIVPSZ128rrk = 8919,
- VDIVPSZ128rrkz = 8920,
- VDIVPSZ256rm = 8921,
- VDIVPSZ256rmb = 8922,
- VDIVPSZ256rmbk = 8923,
- VDIVPSZ256rmbkz = 8924,
- VDIVPSZ256rmk = 8925,
- VDIVPSZ256rmkz = 8926,
- VDIVPSZ256rr = 8927,
- VDIVPSZ256rrk = 8928,
- VDIVPSZ256rrkz = 8929,
- VDIVPSZrm = 8930,
- VDIVPSZrmb = 8931,
- VDIVPSZrmbk = 8932,
- VDIVPSZrmbkz = 8933,
- VDIVPSZrmk = 8934,
- VDIVPSZrmkz = 8935,
- VDIVPSZrr = 8936,
- VDIVPSZrrb = 8937,
- VDIVPSZrrbk = 8938,
- VDIVPSZrrbkz = 8939,
- VDIVPSZrrk = 8940,
- VDIVPSZrrkz = 8941,
- VDIVPSrm = 8942,
- VDIVPSrr = 8943,
- VDIVSDZrm = 8944,
- VDIVSDZrm_Int = 8945,
- VDIVSDZrmk_Int = 8946,
- VDIVSDZrmkz_Int = 8947,
- VDIVSDZrr = 8948,
- VDIVSDZrr_Int = 8949,
- VDIVSDZrrb_Int = 8950,
- VDIVSDZrrbk_Int = 8951,
- VDIVSDZrrbkz_Int = 8952,
- VDIVSDZrrk_Int = 8953,
- VDIVSDZrrkz_Int = 8954,
- VDIVSDrm = 8955,
- VDIVSDrm_Int = 8956,
- VDIVSDrr = 8957,
- VDIVSDrr_Int = 8958,
- VDIVSHZrm = 8959,
- VDIVSHZrm_Int = 8960,
- VDIVSHZrmk_Int = 8961,
- VDIVSHZrmkz_Int = 8962,
- VDIVSHZrr = 8963,
- VDIVSHZrr_Int = 8964,
- VDIVSHZrrb_Int = 8965,
- VDIVSHZrrbk_Int = 8966,
- VDIVSHZrrbkz_Int = 8967,
- VDIVSHZrrk_Int = 8968,
- VDIVSHZrrkz_Int = 8969,
- VDIVSSZrm = 8970,
- VDIVSSZrm_Int = 8971,
- VDIVSSZrmk_Int = 8972,
- VDIVSSZrmkz_Int = 8973,
- VDIVSSZrr = 8974,
- VDIVSSZrr_Int = 8975,
- VDIVSSZrrb_Int = 8976,
- VDIVSSZrrbk_Int = 8977,
- VDIVSSZrrbkz_Int = 8978,
- VDIVSSZrrk_Int = 8979,
- VDIVSSZrrkz_Int = 8980,
- VDIVSSrm = 8981,
- VDIVSSrm_Int = 8982,
- VDIVSSrr = 8983,
- VDIVSSrr_Int = 8984,
- VDPBF16PSZ128m = 8985,
- VDPBF16PSZ128mb = 8986,
- VDPBF16PSZ128mbk = 8987,
- VDPBF16PSZ128mbkz = 8988,
- VDPBF16PSZ128mk = 8989,
- VDPBF16PSZ128mkz = 8990,
- VDPBF16PSZ128r = 8991,
- VDPBF16PSZ128rk = 8992,
- VDPBF16PSZ128rkz = 8993,
- VDPBF16PSZ256m = 8994,
- VDPBF16PSZ256mb = 8995,
- VDPBF16PSZ256mbk = 8996,
- VDPBF16PSZ256mbkz = 8997,
- VDPBF16PSZ256mk = 8998,
- VDPBF16PSZ256mkz = 8999,
- VDPBF16PSZ256r = 9000,
- VDPBF16PSZ256rk = 9001,
- VDPBF16PSZ256rkz = 9002,
- VDPBF16PSZm = 9003,
- VDPBF16PSZmb = 9004,
- VDPBF16PSZmbk = 9005,
- VDPBF16PSZmbkz = 9006,
- VDPBF16PSZmk = 9007,
- VDPBF16PSZmkz = 9008,
- VDPBF16PSZr = 9009,
- VDPBF16PSZrk = 9010,
- VDPBF16PSZrkz = 9011,
- VDPPDrmi = 9012,
- VDPPDrri = 9013,
- VDPPHPSZ128m = 9014,
- VDPPHPSZ128mb = 9015,
- VDPPHPSZ128mbk = 9016,
- VDPPHPSZ128mbkz = 9017,
- VDPPHPSZ128mk = 9018,
- VDPPHPSZ128mkz = 9019,
- VDPPHPSZ128r = 9020,
- VDPPHPSZ128rk = 9021,
- VDPPHPSZ128rkz = 9022,
- VDPPHPSZ256m = 9023,
- VDPPHPSZ256mb = 9024,
- VDPPHPSZ256mbk = 9025,
- VDPPHPSZ256mbkz = 9026,
- VDPPHPSZ256mk = 9027,
- VDPPHPSZ256mkz = 9028,
- VDPPHPSZ256r = 9029,
- VDPPHPSZ256rk = 9030,
- VDPPHPSZ256rkz = 9031,
- VDPPHPSZm = 9032,
- VDPPHPSZmb = 9033,
- VDPPHPSZmbk = 9034,
- VDPPHPSZmbkz = 9035,
- VDPPHPSZmk = 9036,
- VDPPHPSZmkz = 9037,
- VDPPHPSZr = 9038,
- VDPPHPSZrk = 9039,
- VDPPHPSZrkz = 9040,
- VDPPSYrmi = 9041,
- VDPPSYrri = 9042,
- VDPPSrmi = 9043,
- VDPPSrri = 9044,
- VERRm = 9045,
- VERRr = 9046,
- VERWm = 9047,
- VERWr = 9048,
- VEXP2PDZm = 9049,
- VEXP2PDZmb = 9050,
- VEXP2PDZmbk = 9051,
- VEXP2PDZmbkz = 9052,
- VEXP2PDZmk = 9053,
- VEXP2PDZmkz = 9054,
- VEXP2PDZr = 9055,
- VEXP2PDZrb = 9056,
- VEXP2PDZrbk = 9057,
- VEXP2PDZrbkz = 9058,
- VEXP2PDZrk = 9059,
- VEXP2PDZrkz = 9060,
- VEXP2PSZm = 9061,
- VEXP2PSZmb = 9062,
- VEXP2PSZmbk = 9063,
- VEXP2PSZmbkz = 9064,
- VEXP2PSZmk = 9065,
- VEXP2PSZmkz = 9066,
- VEXP2PSZr = 9067,
- VEXP2PSZrb = 9068,
- VEXP2PSZrbk = 9069,
- VEXP2PSZrbkz = 9070,
- VEXP2PSZrk = 9071,
- VEXP2PSZrkz = 9072,
- VEXPANDPDZ128rm = 9073,
- VEXPANDPDZ128rmk = 9074,
- VEXPANDPDZ128rmkz = 9075,
- VEXPANDPDZ128rr = 9076,
- VEXPANDPDZ128rrk = 9077,
- VEXPANDPDZ128rrkz = 9078,
- VEXPANDPDZ256rm = 9079,
- VEXPANDPDZ256rmk = 9080,
- VEXPANDPDZ256rmkz = 9081,
- VEXPANDPDZ256rr = 9082,
- VEXPANDPDZ256rrk = 9083,
- VEXPANDPDZ256rrkz = 9084,
- VEXPANDPDZrm = 9085,
- VEXPANDPDZrmk = 9086,
- VEXPANDPDZrmkz = 9087,
- VEXPANDPDZrr = 9088,
- VEXPANDPDZrrk = 9089,
- VEXPANDPDZrrkz = 9090,
- VEXPANDPSZ128rm = 9091,
- VEXPANDPSZ128rmk = 9092,
- VEXPANDPSZ128rmkz = 9093,
- VEXPANDPSZ128rr = 9094,
- VEXPANDPSZ128rrk = 9095,
- VEXPANDPSZ128rrkz = 9096,
- VEXPANDPSZ256rm = 9097,
- VEXPANDPSZ256rmk = 9098,
- VEXPANDPSZ256rmkz = 9099,
- VEXPANDPSZ256rr = 9100,
- VEXPANDPSZ256rrk = 9101,
- VEXPANDPSZ256rrkz = 9102,
- VEXPANDPSZrm = 9103,
- VEXPANDPSZrmk = 9104,
- VEXPANDPSZrmkz = 9105,
- VEXPANDPSZrr = 9106,
- VEXPANDPSZrrk = 9107,
- VEXPANDPSZrrkz = 9108,
- VEXTRACTF128mri = 9109,
- VEXTRACTF128rri = 9110,
- VEXTRACTF32X4Z256mri = 9111,
- VEXTRACTF32X4Z256mrik = 9112,
- VEXTRACTF32X4Z256rri = 9113,
- VEXTRACTF32X4Z256rrik = 9114,
- VEXTRACTF32X4Z256rrikz = 9115,
- VEXTRACTF32X4Zmri = 9116,
- VEXTRACTF32X4Zmrik = 9117,
- VEXTRACTF32X4Zrri = 9118,
- VEXTRACTF32X4Zrrik = 9119,
- VEXTRACTF32X4Zrrikz = 9120,
- VEXTRACTF32X8Zmri = 9121,
- VEXTRACTF32X8Zmrik = 9122,
- VEXTRACTF32X8Zrri = 9123,
- VEXTRACTF32X8Zrrik = 9124,
- VEXTRACTF32X8Zrrikz = 9125,
- VEXTRACTF64X2Z256mri = 9126,
- VEXTRACTF64X2Z256mrik = 9127,
- VEXTRACTF64X2Z256rri = 9128,
- VEXTRACTF64X2Z256rrik = 9129,
- VEXTRACTF64X2Z256rrikz = 9130,
- VEXTRACTF64X2Zmri = 9131,
- VEXTRACTF64X2Zmrik = 9132,
- VEXTRACTF64X2Zrri = 9133,
- VEXTRACTF64X2Zrrik = 9134,
- VEXTRACTF64X2Zrrikz = 9135,
- VEXTRACTF64X4Zmri = 9136,
- VEXTRACTF64X4Zmrik = 9137,
- VEXTRACTF64X4Zrri = 9138,
- VEXTRACTF64X4Zrrik = 9139,
- VEXTRACTF64X4Zrrikz = 9140,
- VEXTRACTI128mri = 9141,
- VEXTRACTI128rri = 9142,
- VEXTRACTI32X4Z256mri = 9143,
- VEXTRACTI32X4Z256mrik = 9144,
- VEXTRACTI32X4Z256rri = 9145,
- VEXTRACTI32X4Z256rrik = 9146,
- VEXTRACTI32X4Z256rrikz = 9147,
- VEXTRACTI32X4Zmri = 9148,
- VEXTRACTI32X4Zmrik = 9149,
- VEXTRACTI32X4Zrri = 9150,
- VEXTRACTI32X4Zrrik = 9151,
- VEXTRACTI32X4Zrrikz = 9152,
- VEXTRACTI32X8Zmri = 9153,
- VEXTRACTI32X8Zmrik = 9154,
- VEXTRACTI32X8Zrri = 9155,
- VEXTRACTI32X8Zrrik = 9156,
- VEXTRACTI32X8Zrrikz = 9157,
- VEXTRACTI64X2Z256mri = 9158,
- VEXTRACTI64X2Z256mrik = 9159,
- VEXTRACTI64X2Z256rri = 9160,
- VEXTRACTI64X2Z256rrik = 9161,
- VEXTRACTI64X2Z256rrikz = 9162,
- VEXTRACTI64X2Zmri = 9163,
- VEXTRACTI64X2Zmrik = 9164,
- VEXTRACTI64X2Zrri = 9165,
- VEXTRACTI64X2Zrrik = 9166,
- VEXTRACTI64X2Zrrikz = 9167,
- VEXTRACTI64X4Zmri = 9168,
- VEXTRACTI64X4Zmrik = 9169,
- VEXTRACTI64X4Zrri = 9170,
- VEXTRACTI64X4Zrrik = 9171,
- VEXTRACTI64X4Zrrikz = 9172,
- VEXTRACTPSZmri = 9173,
- VEXTRACTPSZrri = 9174,
- VEXTRACTPSmri = 9175,
- VEXTRACTPSrri = 9176,
- VFCMADDCPHZ128m = 9177,
- VFCMADDCPHZ128mb = 9178,
- VFCMADDCPHZ128mbk = 9179,
- VFCMADDCPHZ128mbkz = 9180,
- VFCMADDCPHZ128mk = 9181,
- VFCMADDCPHZ128mkz = 9182,
- VFCMADDCPHZ128r = 9183,
- VFCMADDCPHZ128rk = 9184,
- VFCMADDCPHZ128rkz = 9185,
- VFCMADDCPHZ256m = 9186,
- VFCMADDCPHZ256mb = 9187,
- VFCMADDCPHZ256mbk = 9188,
- VFCMADDCPHZ256mbkz = 9189,
- VFCMADDCPHZ256mk = 9190,
- VFCMADDCPHZ256mkz = 9191,
- VFCMADDCPHZ256r = 9192,
- VFCMADDCPHZ256rk = 9193,
- VFCMADDCPHZ256rkz = 9194,
- VFCMADDCPHZm = 9195,
- VFCMADDCPHZmb = 9196,
- VFCMADDCPHZmbk = 9197,
- VFCMADDCPHZmbkz = 9198,
- VFCMADDCPHZmk = 9199,
- VFCMADDCPHZmkz = 9200,
- VFCMADDCPHZr = 9201,
- VFCMADDCPHZrb = 9202,
- VFCMADDCPHZrbk = 9203,
- VFCMADDCPHZrbkz = 9204,
- VFCMADDCPHZrk = 9205,
- VFCMADDCPHZrkz = 9206,
- VFCMADDCSHZm = 9207,
- VFCMADDCSHZmk = 9208,
- VFCMADDCSHZmkz = 9209,
- VFCMADDCSHZr = 9210,
- VFCMADDCSHZrb = 9211,
- VFCMADDCSHZrbk = 9212,
- VFCMADDCSHZrbkz = 9213,
- VFCMADDCSHZrk = 9214,
- VFCMADDCSHZrkz = 9215,
- VFCMULCPHZ128rm = 9216,
- VFCMULCPHZ128rmb = 9217,
- VFCMULCPHZ128rmbk = 9218,
- VFCMULCPHZ128rmbkz = 9219,
- VFCMULCPHZ128rmk = 9220,
- VFCMULCPHZ128rmkz = 9221,
- VFCMULCPHZ128rr = 9222,
- VFCMULCPHZ128rrk = 9223,
- VFCMULCPHZ128rrkz = 9224,
- VFCMULCPHZ256rm = 9225,
- VFCMULCPHZ256rmb = 9226,
- VFCMULCPHZ256rmbk = 9227,
- VFCMULCPHZ256rmbkz = 9228,
- VFCMULCPHZ256rmk = 9229,
- VFCMULCPHZ256rmkz = 9230,
- VFCMULCPHZ256rr = 9231,
- VFCMULCPHZ256rrk = 9232,
- VFCMULCPHZ256rrkz = 9233,
- VFCMULCPHZrm = 9234,
- VFCMULCPHZrmb = 9235,
- VFCMULCPHZrmbk = 9236,
- VFCMULCPHZrmbkz = 9237,
- VFCMULCPHZrmk = 9238,
- VFCMULCPHZrmkz = 9239,
- VFCMULCPHZrr = 9240,
- VFCMULCPHZrrb = 9241,
- VFCMULCPHZrrbk = 9242,
- VFCMULCPHZrrbkz = 9243,
- VFCMULCPHZrrk = 9244,
- VFCMULCPHZrrkz = 9245,
- VFCMULCSHZrm = 9246,
- VFCMULCSHZrmk = 9247,
- VFCMULCSHZrmkz = 9248,
- VFCMULCSHZrr = 9249,
- VFCMULCSHZrrb = 9250,
- VFCMULCSHZrrbk = 9251,
- VFCMULCSHZrrbkz = 9252,
- VFCMULCSHZrrk = 9253,
- VFCMULCSHZrrkz = 9254,
- VFIXUPIMMPDZ128rmbi = 9255,
- VFIXUPIMMPDZ128rmbik = 9256,
- VFIXUPIMMPDZ128rmbikz = 9257,
- VFIXUPIMMPDZ128rmi = 9258,
- VFIXUPIMMPDZ128rmik = 9259,
- VFIXUPIMMPDZ128rmikz = 9260,
- VFIXUPIMMPDZ128rri = 9261,
- VFIXUPIMMPDZ128rrik = 9262,
- VFIXUPIMMPDZ128rrikz = 9263,
- VFIXUPIMMPDZ256rmbi = 9264,
- VFIXUPIMMPDZ256rmbik = 9265,
- VFIXUPIMMPDZ256rmbikz = 9266,
- VFIXUPIMMPDZ256rmi = 9267,
- VFIXUPIMMPDZ256rmik = 9268,
- VFIXUPIMMPDZ256rmikz = 9269,
- VFIXUPIMMPDZ256rri = 9270,
- VFIXUPIMMPDZ256rrik = 9271,
- VFIXUPIMMPDZ256rrikz = 9272,
- VFIXUPIMMPDZrmbi = 9273,
- VFIXUPIMMPDZrmbik = 9274,
- VFIXUPIMMPDZrmbikz = 9275,
- VFIXUPIMMPDZrmi = 9276,
- VFIXUPIMMPDZrmik = 9277,
- VFIXUPIMMPDZrmikz = 9278,
- VFIXUPIMMPDZrri = 9279,
- VFIXUPIMMPDZrrib = 9280,
- VFIXUPIMMPDZrribk = 9281,
- VFIXUPIMMPDZrribkz = 9282,
- VFIXUPIMMPDZrrik = 9283,
- VFIXUPIMMPDZrrikz = 9284,
- VFIXUPIMMPSZ128rmbi = 9285,
- VFIXUPIMMPSZ128rmbik = 9286,
- VFIXUPIMMPSZ128rmbikz = 9287,
- VFIXUPIMMPSZ128rmi = 9288,
- VFIXUPIMMPSZ128rmik = 9289,
- VFIXUPIMMPSZ128rmikz = 9290,
- VFIXUPIMMPSZ128rri = 9291,
- VFIXUPIMMPSZ128rrik = 9292,
- VFIXUPIMMPSZ128rrikz = 9293,
- VFIXUPIMMPSZ256rmbi = 9294,
- VFIXUPIMMPSZ256rmbik = 9295,
- VFIXUPIMMPSZ256rmbikz = 9296,
- VFIXUPIMMPSZ256rmi = 9297,
- VFIXUPIMMPSZ256rmik = 9298,
- VFIXUPIMMPSZ256rmikz = 9299,
- VFIXUPIMMPSZ256rri = 9300,
- VFIXUPIMMPSZ256rrik = 9301,
- VFIXUPIMMPSZ256rrikz = 9302,
- VFIXUPIMMPSZrmbi = 9303,
- VFIXUPIMMPSZrmbik = 9304,
- VFIXUPIMMPSZrmbikz = 9305,
- VFIXUPIMMPSZrmi = 9306,
- VFIXUPIMMPSZrmik = 9307,
- VFIXUPIMMPSZrmikz = 9308,
- VFIXUPIMMPSZrri = 9309,
- VFIXUPIMMPSZrrib = 9310,
- VFIXUPIMMPSZrribk = 9311,
- VFIXUPIMMPSZrribkz = 9312,
- VFIXUPIMMPSZrrik = 9313,
- VFIXUPIMMPSZrrikz = 9314,
- VFIXUPIMMSDZrmi = 9315,
- VFIXUPIMMSDZrmik = 9316,
- VFIXUPIMMSDZrmikz = 9317,
- VFIXUPIMMSDZrri = 9318,
- VFIXUPIMMSDZrrib = 9319,
- VFIXUPIMMSDZrribk = 9320,
- VFIXUPIMMSDZrribkz = 9321,
- VFIXUPIMMSDZrrik = 9322,
- VFIXUPIMMSDZrrikz = 9323,
- VFIXUPIMMSSZrmi = 9324,
- VFIXUPIMMSSZrmik = 9325,
- VFIXUPIMMSSZrmikz = 9326,
- VFIXUPIMMSSZrri = 9327,
- VFIXUPIMMSSZrrib = 9328,
- VFIXUPIMMSSZrribk = 9329,
- VFIXUPIMMSSZrribkz = 9330,
- VFIXUPIMMSSZrrik = 9331,
- VFIXUPIMMSSZrrikz = 9332,
- VFMADD132BF16Z128m = 9333,
- VFMADD132BF16Z128mb = 9334,
- VFMADD132BF16Z128mbk = 9335,
- VFMADD132BF16Z128mbkz = 9336,
- VFMADD132BF16Z128mk = 9337,
- VFMADD132BF16Z128mkz = 9338,
- VFMADD132BF16Z128r = 9339,
- VFMADD132BF16Z128rk = 9340,
- VFMADD132BF16Z128rkz = 9341,
- VFMADD132BF16Z256m = 9342,
- VFMADD132BF16Z256mb = 9343,
- VFMADD132BF16Z256mbk = 9344,
- VFMADD132BF16Z256mbkz = 9345,
- VFMADD132BF16Z256mk = 9346,
- VFMADD132BF16Z256mkz = 9347,
- VFMADD132BF16Z256r = 9348,
- VFMADD132BF16Z256rk = 9349,
- VFMADD132BF16Z256rkz = 9350,
- VFMADD132BF16Zm = 9351,
- VFMADD132BF16Zmb = 9352,
- VFMADD132BF16Zmbk = 9353,
- VFMADD132BF16Zmbkz = 9354,
- VFMADD132BF16Zmk = 9355,
- VFMADD132BF16Zmkz = 9356,
- VFMADD132BF16Zr = 9357,
- VFMADD132BF16Zrk = 9358,
- VFMADD132BF16Zrkz = 9359,
- VFMADD132PDYm = 9360,
- VFMADD132PDYr = 9361,
- VFMADD132PDZ128m = 9362,
- VFMADD132PDZ128mb = 9363,
- VFMADD132PDZ128mbk = 9364,
- VFMADD132PDZ128mbkz = 9365,
- VFMADD132PDZ128mk = 9366,
- VFMADD132PDZ128mkz = 9367,
- VFMADD132PDZ128r = 9368,
- VFMADD132PDZ128rk = 9369,
- VFMADD132PDZ128rkz = 9370,
- VFMADD132PDZ256m = 9371,
- VFMADD132PDZ256mb = 9372,
- VFMADD132PDZ256mbk = 9373,
- VFMADD132PDZ256mbkz = 9374,
- VFMADD132PDZ256mk = 9375,
- VFMADD132PDZ256mkz = 9376,
- VFMADD132PDZ256r = 9377,
- VFMADD132PDZ256rk = 9378,
- VFMADD132PDZ256rkz = 9379,
- VFMADD132PDZm = 9380,
- VFMADD132PDZmb = 9381,
- VFMADD132PDZmbk = 9382,
- VFMADD132PDZmbkz = 9383,
- VFMADD132PDZmk = 9384,
- VFMADD132PDZmkz = 9385,
- VFMADD132PDZr = 9386,
- VFMADD132PDZrb = 9387,
- VFMADD132PDZrbk = 9388,
- VFMADD132PDZrbkz = 9389,
- VFMADD132PDZrk = 9390,
- VFMADD132PDZrkz = 9391,
- VFMADD132PDm = 9392,
- VFMADD132PDr = 9393,
- VFMADD132PHZ128m = 9394,
- VFMADD132PHZ128mb = 9395,
- VFMADD132PHZ128mbk = 9396,
- VFMADD132PHZ128mbkz = 9397,
- VFMADD132PHZ128mk = 9398,
- VFMADD132PHZ128mkz = 9399,
- VFMADD132PHZ128r = 9400,
- VFMADD132PHZ128rk = 9401,
- VFMADD132PHZ128rkz = 9402,
- VFMADD132PHZ256m = 9403,
- VFMADD132PHZ256mb = 9404,
- VFMADD132PHZ256mbk = 9405,
- VFMADD132PHZ256mbkz = 9406,
- VFMADD132PHZ256mk = 9407,
- VFMADD132PHZ256mkz = 9408,
- VFMADD132PHZ256r = 9409,
- VFMADD132PHZ256rk = 9410,
- VFMADD132PHZ256rkz = 9411,
- VFMADD132PHZm = 9412,
- VFMADD132PHZmb = 9413,
- VFMADD132PHZmbk = 9414,
- VFMADD132PHZmbkz = 9415,
- VFMADD132PHZmk = 9416,
- VFMADD132PHZmkz = 9417,
- VFMADD132PHZr = 9418,
- VFMADD132PHZrb = 9419,
- VFMADD132PHZrbk = 9420,
- VFMADD132PHZrbkz = 9421,
- VFMADD132PHZrk = 9422,
- VFMADD132PHZrkz = 9423,
- VFMADD132PSYm = 9424,
- VFMADD132PSYr = 9425,
- VFMADD132PSZ128m = 9426,
- VFMADD132PSZ128mb = 9427,
- VFMADD132PSZ128mbk = 9428,
- VFMADD132PSZ128mbkz = 9429,
- VFMADD132PSZ128mk = 9430,
- VFMADD132PSZ128mkz = 9431,
- VFMADD132PSZ128r = 9432,
- VFMADD132PSZ128rk = 9433,
- VFMADD132PSZ128rkz = 9434,
- VFMADD132PSZ256m = 9435,
- VFMADD132PSZ256mb = 9436,
- VFMADD132PSZ256mbk = 9437,
- VFMADD132PSZ256mbkz = 9438,
- VFMADD132PSZ256mk = 9439,
- VFMADD132PSZ256mkz = 9440,
- VFMADD132PSZ256r = 9441,
- VFMADD132PSZ256rk = 9442,
- VFMADD132PSZ256rkz = 9443,
- VFMADD132PSZm = 9444,
- VFMADD132PSZmb = 9445,
- VFMADD132PSZmbk = 9446,
- VFMADD132PSZmbkz = 9447,
- VFMADD132PSZmk = 9448,
- VFMADD132PSZmkz = 9449,
- VFMADD132PSZr = 9450,
- VFMADD132PSZrb = 9451,
- VFMADD132PSZrbk = 9452,
- VFMADD132PSZrbkz = 9453,
- VFMADD132PSZrk = 9454,
- VFMADD132PSZrkz = 9455,
- VFMADD132PSm = 9456,
- VFMADD132PSr = 9457,
- VFMADD132SDZm = 9458,
- VFMADD132SDZm_Int = 9459,
- VFMADD132SDZmk_Int = 9460,
- VFMADD132SDZmkz_Int = 9461,
- VFMADD132SDZr = 9462,
- VFMADD132SDZr_Int = 9463,
- VFMADD132SDZrb = 9464,
- VFMADD132SDZrb_Int = 9465,
- VFMADD132SDZrbk_Int = 9466,
- VFMADD132SDZrbkz_Int = 9467,
- VFMADD132SDZrk_Int = 9468,
- VFMADD132SDZrkz_Int = 9469,
- VFMADD132SDm = 9470,
- VFMADD132SDm_Int = 9471,
- VFMADD132SDr = 9472,
- VFMADD132SDr_Int = 9473,
- VFMADD132SHZm = 9474,
- VFMADD132SHZm_Int = 9475,
- VFMADD132SHZmk_Int = 9476,
- VFMADD132SHZmkz_Int = 9477,
- VFMADD132SHZr = 9478,
- VFMADD132SHZr_Int = 9479,
- VFMADD132SHZrb = 9480,
- VFMADD132SHZrb_Int = 9481,
- VFMADD132SHZrbk_Int = 9482,
- VFMADD132SHZrbkz_Int = 9483,
- VFMADD132SHZrk_Int = 9484,
- VFMADD132SHZrkz_Int = 9485,
- VFMADD132SSZm = 9486,
- VFMADD132SSZm_Int = 9487,
- VFMADD132SSZmk_Int = 9488,
- VFMADD132SSZmkz_Int = 9489,
- VFMADD132SSZr = 9490,
- VFMADD132SSZr_Int = 9491,
- VFMADD132SSZrb = 9492,
- VFMADD132SSZrb_Int = 9493,
- VFMADD132SSZrbk_Int = 9494,
- VFMADD132SSZrbkz_Int = 9495,
- VFMADD132SSZrk_Int = 9496,
- VFMADD132SSZrkz_Int = 9497,
- VFMADD132SSm = 9498,
- VFMADD132SSm_Int = 9499,
- VFMADD132SSr = 9500,
- VFMADD132SSr_Int = 9501,
- VFMADD213BF16Z128m = 9502,
- VFMADD213BF16Z128mb = 9503,
- VFMADD213BF16Z128mbk = 9504,
- VFMADD213BF16Z128mbkz = 9505,
- VFMADD213BF16Z128mk = 9506,
- VFMADD213BF16Z128mkz = 9507,
- VFMADD213BF16Z128r = 9508,
- VFMADD213BF16Z128rk = 9509,
- VFMADD213BF16Z128rkz = 9510,
- VFMADD213BF16Z256m = 9511,
- VFMADD213BF16Z256mb = 9512,
- VFMADD213BF16Z256mbk = 9513,
- VFMADD213BF16Z256mbkz = 9514,
- VFMADD213BF16Z256mk = 9515,
- VFMADD213BF16Z256mkz = 9516,
- VFMADD213BF16Z256r = 9517,
- VFMADD213BF16Z256rk = 9518,
- VFMADD213BF16Z256rkz = 9519,
- VFMADD213BF16Zm = 9520,
- VFMADD213BF16Zmb = 9521,
- VFMADD213BF16Zmbk = 9522,
- VFMADD213BF16Zmbkz = 9523,
- VFMADD213BF16Zmk = 9524,
- VFMADD213BF16Zmkz = 9525,
- VFMADD213BF16Zr = 9526,
- VFMADD213BF16Zrk = 9527,
- VFMADD213BF16Zrkz = 9528,
- VFMADD213PDYm = 9529,
- VFMADD213PDYr = 9530,
- VFMADD213PDZ128m = 9531,
- VFMADD213PDZ128mb = 9532,
- VFMADD213PDZ128mbk = 9533,
- VFMADD213PDZ128mbkz = 9534,
- VFMADD213PDZ128mk = 9535,
- VFMADD213PDZ128mkz = 9536,
- VFMADD213PDZ128r = 9537,
- VFMADD213PDZ128rk = 9538,
- VFMADD213PDZ128rkz = 9539,
- VFMADD213PDZ256m = 9540,
- VFMADD213PDZ256mb = 9541,
- VFMADD213PDZ256mbk = 9542,
- VFMADD213PDZ256mbkz = 9543,
- VFMADD213PDZ256mk = 9544,
- VFMADD213PDZ256mkz = 9545,
- VFMADD213PDZ256r = 9546,
- VFMADD213PDZ256rk = 9547,
- VFMADD213PDZ256rkz = 9548,
- VFMADD213PDZm = 9549,
- VFMADD213PDZmb = 9550,
- VFMADD213PDZmbk = 9551,
- VFMADD213PDZmbkz = 9552,
- VFMADD213PDZmk = 9553,
- VFMADD213PDZmkz = 9554,
- VFMADD213PDZr = 9555,
- VFMADD213PDZrb = 9556,
- VFMADD213PDZrbk = 9557,
- VFMADD213PDZrbkz = 9558,
- VFMADD213PDZrk = 9559,
- VFMADD213PDZrkz = 9560,
- VFMADD213PDm = 9561,
- VFMADD213PDr = 9562,
- VFMADD213PHZ128m = 9563,
- VFMADD213PHZ128mb = 9564,
- VFMADD213PHZ128mbk = 9565,
- VFMADD213PHZ128mbkz = 9566,
- VFMADD213PHZ128mk = 9567,
- VFMADD213PHZ128mkz = 9568,
- VFMADD213PHZ128r = 9569,
- VFMADD213PHZ128rk = 9570,
- VFMADD213PHZ128rkz = 9571,
- VFMADD213PHZ256m = 9572,
- VFMADD213PHZ256mb = 9573,
- VFMADD213PHZ256mbk = 9574,
- VFMADD213PHZ256mbkz = 9575,
- VFMADD213PHZ256mk = 9576,
- VFMADD213PHZ256mkz = 9577,
- VFMADD213PHZ256r = 9578,
- VFMADD213PHZ256rk = 9579,
- VFMADD213PHZ256rkz = 9580,
- VFMADD213PHZm = 9581,
- VFMADD213PHZmb = 9582,
- VFMADD213PHZmbk = 9583,
- VFMADD213PHZmbkz = 9584,
- VFMADD213PHZmk = 9585,
- VFMADD213PHZmkz = 9586,
- VFMADD213PHZr = 9587,
- VFMADD213PHZrb = 9588,
- VFMADD213PHZrbk = 9589,
- VFMADD213PHZrbkz = 9590,
- VFMADD213PHZrk = 9591,
- VFMADD213PHZrkz = 9592,
- VFMADD213PSYm = 9593,
- VFMADD213PSYr = 9594,
- VFMADD213PSZ128m = 9595,
- VFMADD213PSZ128mb = 9596,
- VFMADD213PSZ128mbk = 9597,
- VFMADD213PSZ128mbkz = 9598,
- VFMADD213PSZ128mk = 9599,
- VFMADD213PSZ128mkz = 9600,
- VFMADD213PSZ128r = 9601,
- VFMADD213PSZ128rk = 9602,
- VFMADD213PSZ128rkz = 9603,
- VFMADD213PSZ256m = 9604,
- VFMADD213PSZ256mb = 9605,
- VFMADD213PSZ256mbk = 9606,
- VFMADD213PSZ256mbkz = 9607,
- VFMADD213PSZ256mk = 9608,
- VFMADD213PSZ256mkz = 9609,
- VFMADD213PSZ256r = 9610,
- VFMADD213PSZ256rk = 9611,
- VFMADD213PSZ256rkz = 9612,
- VFMADD213PSZm = 9613,
- VFMADD213PSZmb = 9614,
- VFMADD213PSZmbk = 9615,
- VFMADD213PSZmbkz = 9616,
- VFMADD213PSZmk = 9617,
- VFMADD213PSZmkz = 9618,
- VFMADD213PSZr = 9619,
- VFMADD213PSZrb = 9620,
- VFMADD213PSZrbk = 9621,
- VFMADD213PSZrbkz = 9622,
- VFMADD213PSZrk = 9623,
- VFMADD213PSZrkz = 9624,
- VFMADD213PSm = 9625,
- VFMADD213PSr = 9626,
- VFMADD213SDZm = 9627,
- VFMADD213SDZm_Int = 9628,
- VFMADD213SDZmk_Int = 9629,
- VFMADD213SDZmkz_Int = 9630,
- VFMADD213SDZr = 9631,
- VFMADD213SDZr_Int = 9632,
- VFMADD213SDZrb = 9633,
- VFMADD213SDZrb_Int = 9634,
- VFMADD213SDZrbk_Int = 9635,
- VFMADD213SDZrbkz_Int = 9636,
- VFMADD213SDZrk_Int = 9637,
- VFMADD213SDZrkz_Int = 9638,
- VFMADD213SDm = 9639,
- VFMADD213SDm_Int = 9640,
- VFMADD213SDr = 9641,
- VFMADD213SDr_Int = 9642,
- VFMADD213SHZm = 9643,
- VFMADD213SHZm_Int = 9644,
- VFMADD213SHZmk_Int = 9645,
- VFMADD213SHZmkz_Int = 9646,
- VFMADD213SHZr = 9647,
- VFMADD213SHZr_Int = 9648,
- VFMADD213SHZrb = 9649,
- VFMADD213SHZrb_Int = 9650,
- VFMADD213SHZrbk_Int = 9651,
- VFMADD213SHZrbkz_Int = 9652,
- VFMADD213SHZrk_Int = 9653,
- VFMADD213SHZrkz_Int = 9654,
- VFMADD213SSZm = 9655,
- VFMADD213SSZm_Int = 9656,
- VFMADD213SSZmk_Int = 9657,
- VFMADD213SSZmkz_Int = 9658,
- VFMADD213SSZr = 9659,
- VFMADD213SSZr_Int = 9660,
- VFMADD213SSZrb = 9661,
- VFMADD213SSZrb_Int = 9662,
- VFMADD213SSZrbk_Int = 9663,
- VFMADD213SSZrbkz_Int = 9664,
- VFMADD213SSZrk_Int = 9665,
- VFMADD213SSZrkz_Int = 9666,
- VFMADD213SSm = 9667,
- VFMADD213SSm_Int = 9668,
- VFMADD213SSr = 9669,
- VFMADD213SSr_Int = 9670,
- VFMADD231BF16Z128m = 9671,
- VFMADD231BF16Z128mb = 9672,
- VFMADD231BF16Z128mbk = 9673,
- VFMADD231BF16Z128mbkz = 9674,
- VFMADD231BF16Z128mk = 9675,
- VFMADD231BF16Z128mkz = 9676,
- VFMADD231BF16Z128r = 9677,
- VFMADD231BF16Z128rk = 9678,
- VFMADD231BF16Z128rkz = 9679,
- VFMADD231BF16Z256m = 9680,
- VFMADD231BF16Z256mb = 9681,
- VFMADD231BF16Z256mbk = 9682,
- VFMADD231BF16Z256mbkz = 9683,
- VFMADD231BF16Z256mk = 9684,
- VFMADD231BF16Z256mkz = 9685,
- VFMADD231BF16Z256r = 9686,
- VFMADD231BF16Z256rk = 9687,
- VFMADD231BF16Z256rkz = 9688,
- VFMADD231BF16Zm = 9689,
- VFMADD231BF16Zmb = 9690,
- VFMADD231BF16Zmbk = 9691,
- VFMADD231BF16Zmbkz = 9692,
- VFMADD231BF16Zmk = 9693,
- VFMADD231BF16Zmkz = 9694,
- VFMADD231BF16Zr = 9695,
- VFMADD231BF16Zrk = 9696,
- VFMADD231BF16Zrkz = 9697,
- VFMADD231PDYm = 9698,
- VFMADD231PDYr = 9699,
- VFMADD231PDZ128m = 9700,
- VFMADD231PDZ128mb = 9701,
- VFMADD231PDZ128mbk = 9702,
- VFMADD231PDZ128mbkz = 9703,
- VFMADD231PDZ128mk = 9704,
- VFMADD231PDZ128mkz = 9705,
- VFMADD231PDZ128r = 9706,
- VFMADD231PDZ128rk = 9707,
- VFMADD231PDZ128rkz = 9708,
- VFMADD231PDZ256m = 9709,
- VFMADD231PDZ256mb = 9710,
- VFMADD231PDZ256mbk = 9711,
- VFMADD231PDZ256mbkz = 9712,
- VFMADD231PDZ256mk = 9713,
- VFMADD231PDZ256mkz = 9714,
- VFMADD231PDZ256r = 9715,
- VFMADD231PDZ256rk = 9716,
- VFMADD231PDZ256rkz = 9717,
- VFMADD231PDZm = 9718,
- VFMADD231PDZmb = 9719,
- VFMADD231PDZmbk = 9720,
- VFMADD231PDZmbkz = 9721,
- VFMADD231PDZmk = 9722,
- VFMADD231PDZmkz = 9723,
- VFMADD231PDZr = 9724,
- VFMADD231PDZrb = 9725,
- VFMADD231PDZrbk = 9726,
- VFMADD231PDZrbkz = 9727,
- VFMADD231PDZrk = 9728,
- VFMADD231PDZrkz = 9729,
- VFMADD231PDm = 9730,
- VFMADD231PDr = 9731,
- VFMADD231PHZ128m = 9732,
- VFMADD231PHZ128mb = 9733,
- VFMADD231PHZ128mbk = 9734,
- VFMADD231PHZ128mbkz = 9735,
- VFMADD231PHZ128mk = 9736,
- VFMADD231PHZ128mkz = 9737,
- VFMADD231PHZ128r = 9738,
- VFMADD231PHZ128rk = 9739,
- VFMADD231PHZ128rkz = 9740,
- VFMADD231PHZ256m = 9741,
- VFMADD231PHZ256mb = 9742,
- VFMADD231PHZ256mbk = 9743,
- VFMADD231PHZ256mbkz = 9744,
- VFMADD231PHZ256mk = 9745,
- VFMADD231PHZ256mkz = 9746,
- VFMADD231PHZ256r = 9747,
- VFMADD231PHZ256rk = 9748,
- VFMADD231PHZ256rkz = 9749,
- VFMADD231PHZm = 9750,
- VFMADD231PHZmb = 9751,
- VFMADD231PHZmbk = 9752,
- VFMADD231PHZmbkz = 9753,
- VFMADD231PHZmk = 9754,
- VFMADD231PHZmkz = 9755,
- VFMADD231PHZr = 9756,
- VFMADD231PHZrb = 9757,
- VFMADD231PHZrbk = 9758,
- VFMADD231PHZrbkz = 9759,
- VFMADD231PHZrk = 9760,
- VFMADD231PHZrkz = 9761,
- VFMADD231PSYm = 9762,
- VFMADD231PSYr = 9763,
- VFMADD231PSZ128m = 9764,
- VFMADD231PSZ128mb = 9765,
- VFMADD231PSZ128mbk = 9766,
- VFMADD231PSZ128mbkz = 9767,
- VFMADD231PSZ128mk = 9768,
- VFMADD231PSZ128mkz = 9769,
- VFMADD231PSZ128r = 9770,
- VFMADD231PSZ128rk = 9771,
- VFMADD231PSZ128rkz = 9772,
- VFMADD231PSZ256m = 9773,
- VFMADD231PSZ256mb = 9774,
- VFMADD231PSZ256mbk = 9775,
- VFMADD231PSZ256mbkz = 9776,
- VFMADD231PSZ256mk = 9777,
- VFMADD231PSZ256mkz = 9778,
- VFMADD231PSZ256r = 9779,
- VFMADD231PSZ256rk = 9780,
- VFMADD231PSZ256rkz = 9781,
- VFMADD231PSZm = 9782,
- VFMADD231PSZmb = 9783,
- VFMADD231PSZmbk = 9784,
- VFMADD231PSZmbkz = 9785,
- VFMADD231PSZmk = 9786,
- VFMADD231PSZmkz = 9787,
- VFMADD231PSZr = 9788,
- VFMADD231PSZrb = 9789,
- VFMADD231PSZrbk = 9790,
- VFMADD231PSZrbkz = 9791,
- VFMADD231PSZrk = 9792,
- VFMADD231PSZrkz = 9793,
- VFMADD231PSm = 9794,
- VFMADD231PSr = 9795,
- VFMADD231SDZm = 9796,
- VFMADD231SDZm_Int = 9797,
- VFMADD231SDZmk_Int = 9798,
- VFMADD231SDZmkz_Int = 9799,
- VFMADD231SDZr = 9800,
- VFMADD231SDZr_Int = 9801,
- VFMADD231SDZrb = 9802,
- VFMADD231SDZrb_Int = 9803,
- VFMADD231SDZrbk_Int = 9804,
- VFMADD231SDZrbkz_Int = 9805,
- VFMADD231SDZrk_Int = 9806,
- VFMADD231SDZrkz_Int = 9807,
- VFMADD231SDm = 9808,
- VFMADD231SDm_Int = 9809,
- VFMADD231SDr = 9810,
- VFMADD231SDr_Int = 9811,
- VFMADD231SHZm = 9812,
- VFMADD231SHZm_Int = 9813,
- VFMADD231SHZmk_Int = 9814,
- VFMADD231SHZmkz_Int = 9815,
- VFMADD231SHZr = 9816,
- VFMADD231SHZr_Int = 9817,
- VFMADD231SHZrb = 9818,
- VFMADD231SHZrb_Int = 9819,
- VFMADD231SHZrbk_Int = 9820,
- VFMADD231SHZrbkz_Int = 9821,
- VFMADD231SHZrk_Int = 9822,
- VFMADD231SHZrkz_Int = 9823,
- VFMADD231SSZm = 9824,
- VFMADD231SSZm_Int = 9825,
- VFMADD231SSZmk_Int = 9826,
- VFMADD231SSZmkz_Int = 9827,
- VFMADD231SSZr = 9828,
- VFMADD231SSZr_Int = 9829,
- VFMADD231SSZrb = 9830,
- VFMADD231SSZrb_Int = 9831,
- VFMADD231SSZrbk_Int = 9832,
- VFMADD231SSZrbkz_Int = 9833,
- VFMADD231SSZrk_Int = 9834,
- VFMADD231SSZrkz_Int = 9835,
- VFMADD231SSm = 9836,
- VFMADD231SSm_Int = 9837,
- VFMADD231SSr = 9838,
- VFMADD231SSr_Int = 9839,
- VFMADDCPHZ128m = 9840,
- VFMADDCPHZ128mb = 9841,
- VFMADDCPHZ128mbk = 9842,
- VFMADDCPHZ128mbkz = 9843,
- VFMADDCPHZ128mk = 9844,
- VFMADDCPHZ128mkz = 9845,
- VFMADDCPHZ128r = 9846,
- VFMADDCPHZ128rk = 9847,
- VFMADDCPHZ128rkz = 9848,
- VFMADDCPHZ256m = 9849,
- VFMADDCPHZ256mb = 9850,
- VFMADDCPHZ256mbk = 9851,
- VFMADDCPHZ256mbkz = 9852,
- VFMADDCPHZ256mk = 9853,
- VFMADDCPHZ256mkz = 9854,
- VFMADDCPHZ256r = 9855,
- VFMADDCPHZ256rk = 9856,
- VFMADDCPHZ256rkz = 9857,
- VFMADDCPHZm = 9858,
- VFMADDCPHZmb = 9859,
- VFMADDCPHZmbk = 9860,
- VFMADDCPHZmbkz = 9861,
- VFMADDCPHZmk = 9862,
- VFMADDCPHZmkz = 9863,
- VFMADDCPHZr = 9864,
- VFMADDCPHZrb = 9865,
- VFMADDCPHZrbk = 9866,
- VFMADDCPHZrbkz = 9867,
- VFMADDCPHZrk = 9868,
- VFMADDCPHZrkz = 9869,
- VFMADDCSHZm = 9870,
- VFMADDCSHZmk = 9871,
- VFMADDCSHZmkz = 9872,
- VFMADDCSHZr = 9873,
- VFMADDCSHZrb = 9874,
- VFMADDCSHZrbk = 9875,
- VFMADDCSHZrbkz = 9876,
- VFMADDCSHZrk = 9877,
- VFMADDCSHZrkz = 9878,
- VFMADDPD4Ymr = 9879,
- VFMADDPD4Yrm = 9880,
- VFMADDPD4Yrr = 9881,
- VFMADDPD4Yrr_REV = 9882,
- VFMADDPD4mr = 9883,
- VFMADDPD4rm = 9884,
- VFMADDPD4rr = 9885,
- VFMADDPD4rr_REV = 9886,
- VFMADDPS4Ymr = 9887,
- VFMADDPS4Yrm = 9888,
- VFMADDPS4Yrr = 9889,
- VFMADDPS4Yrr_REV = 9890,
- VFMADDPS4mr = 9891,
- VFMADDPS4rm = 9892,
- VFMADDPS4rr = 9893,
- VFMADDPS4rr_REV = 9894,
- VFMADDSD4mr = 9895,
- VFMADDSD4mr_Int = 9896,
- VFMADDSD4rm = 9897,
- VFMADDSD4rm_Int = 9898,
- VFMADDSD4rr = 9899,
- VFMADDSD4rr_Int = 9900,
- VFMADDSD4rr_Int_REV = 9901,
- VFMADDSD4rr_REV = 9902,
- VFMADDSS4mr = 9903,
- VFMADDSS4mr_Int = 9904,
- VFMADDSS4rm = 9905,
- VFMADDSS4rm_Int = 9906,
- VFMADDSS4rr = 9907,
- VFMADDSS4rr_Int = 9908,
- VFMADDSS4rr_Int_REV = 9909,
- VFMADDSS4rr_REV = 9910,
- VFMADDSUB132PDYm = 9911,
- VFMADDSUB132PDYr = 9912,
- VFMADDSUB132PDZ128m = 9913,
- VFMADDSUB132PDZ128mb = 9914,
- VFMADDSUB132PDZ128mbk = 9915,
- VFMADDSUB132PDZ128mbkz = 9916,
- VFMADDSUB132PDZ128mk = 9917,
- VFMADDSUB132PDZ128mkz = 9918,
- VFMADDSUB132PDZ128r = 9919,
- VFMADDSUB132PDZ128rk = 9920,
- VFMADDSUB132PDZ128rkz = 9921,
- VFMADDSUB132PDZ256m = 9922,
- VFMADDSUB132PDZ256mb = 9923,
- VFMADDSUB132PDZ256mbk = 9924,
- VFMADDSUB132PDZ256mbkz = 9925,
- VFMADDSUB132PDZ256mk = 9926,
- VFMADDSUB132PDZ256mkz = 9927,
- VFMADDSUB132PDZ256r = 9928,
- VFMADDSUB132PDZ256rk = 9929,
- VFMADDSUB132PDZ256rkz = 9930,
- VFMADDSUB132PDZm = 9931,
- VFMADDSUB132PDZmb = 9932,
- VFMADDSUB132PDZmbk = 9933,
- VFMADDSUB132PDZmbkz = 9934,
- VFMADDSUB132PDZmk = 9935,
- VFMADDSUB132PDZmkz = 9936,
- VFMADDSUB132PDZr = 9937,
- VFMADDSUB132PDZrb = 9938,
- VFMADDSUB132PDZrbk = 9939,
- VFMADDSUB132PDZrbkz = 9940,
- VFMADDSUB132PDZrk = 9941,
- VFMADDSUB132PDZrkz = 9942,
- VFMADDSUB132PDm = 9943,
- VFMADDSUB132PDr = 9944,
- VFMADDSUB132PHZ128m = 9945,
- VFMADDSUB132PHZ128mb = 9946,
- VFMADDSUB132PHZ128mbk = 9947,
- VFMADDSUB132PHZ128mbkz = 9948,
- VFMADDSUB132PHZ128mk = 9949,
- VFMADDSUB132PHZ128mkz = 9950,
- VFMADDSUB132PHZ128r = 9951,
- VFMADDSUB132PHZ128rk = 9952,
- VFMADDSUB132PHZ128rkz = 9953,
- VFMADDSUB132PHZ256m = 9954,
- VFMADDSUB132PHZ256mb = 9955,
- VFMADDSUB132PHZ256mbk = 9956,
- VFMADDSUB132PHZ256mbkz = 9957,
- VFMADDSUB132PHZ256mk = 9958,
- VFMADDSUB132PHZ256mkz = 9959,
- VFMADDSUB132PHZ256r = 9960,
- VFMADDSUB132PHZ256rk = 9961,
- VFMADDSUB132PHZ256rkz = 9962,
- VFMADDSUB132PHZm = 9963,
- VFMADDSUB132PHZmb = 9964,
- VFMADDSUB132PHZmbk = 9965,
- VFMADDSUB132PHZmbkz = 9966,
- VFMADDSUB132PHZmk = 9967,
- VFMADDSUB132PHZmkz = 9968,
- VFMADDSUB132PHZr = 9969,
- VFMADDSUB132PHZrb = 9970,
- VFMADDSUB132PHZrbk = 9971,
- VFMADDSUB132PHZrbkz = 9972,
- VFMADDSUB132PHZrk = 9973,
- VFMADDSUB132PHZrkz = 9974,
- VFMADDSUB132PSYm = 9975,
- VFMADDSUB132PSYr = 9976,
- VFMADDSUB132PSZ128m = 9977,
- VFMADDSUB132PSZ128mb = 9978,
- VFMADDSUB132PSZ128mbk = 9979,
- VFMADDSUB132PSZ128mbkz = 9980,
- VFMADDSUB132PSZ128mk = 9981,
- VFMADDSUB132PSZ128mkz = 9982,
- VFMADDSUB132PSZ128r = 9983,
- VFMADDSUB132PSZ128rk = 9984,
- VFMADDSUB132PSZ128rkz = 9985,
- VFMADDSUB132PSZ256m = 9986,
- VFMADDSUB132PSZ256mb = 9987,
- VFMADDSUB132PSZ256mbk = 9988,
- VFMADDSUB132PSZ256mbkz = 9989,
- VFMADDSUB132PSZ256mk = 9990,
- VFMADDSUB132PSZ256mkz = 9991,
- VFMADDSUB132PSZ256r = 9992,
- VFMADDSUB132PSZ256rk = 9993,
- VFMADDSUB132PSZ256rkz = 9994,
- VFMADDSUB132PSZm = 9995,
- VFMADDSUB132PSZmb = 9996,
- VFMADDSUB132PSZmbk = 9997,
- VFMADDSUB132PSZmbkz = 9998,
- VFMADDSUB132PSZmk = 9999,
- VFMADDSUB132PSZmkz = 10000,
- VFMADDSUB132PSZr = 10001,
- VFMADDSUB132PSZrb = 10002,
- VFMADDSUB132PSZrbk = 10003,
- VFMADDSUB132PSZrbkz = 10004,
- VFMADDSUB132PSZrk = 10005,
- VFMADDSUB132PSZrkz = 10006,
- VFMADDSUB132PSm = 10007,
- VFMADDSUB132PSr = 10008,
- VFMADDSUB213PDYm = 10009,
- VFMADDSUB213PDYr = 10010,
- VFMADDSUB213PDZ128m = 10011,
- VFMADDSUB213PDZ128mb = 10012,
- VFMADDSUB213PDZ128mbk = 10013,
- VFMADDSUB213PDZ128mbkz = 10014,
- VFMADDSUB213PDZ128mk = 10015,
- VFMADDSUB213PDZ128mkz = 10016,
- VFMADDSUB213PDZ128r = 10017,
- VFMADDSUB213PDZ128rk = 10018,
- VFMADDSUB213PDZ128rkz = 10019,
- VFMADDSUB213PDZ256m = 10020,
- VFMADDSUB213PDZ256mb = 10021,
- VFMADDSUB213PDZ256mbk = 10022,
- VFMADDSUB213PDZ256mbkz = 10023,
- VFMADDSUB213PDZ256mk = 10024,
- VFMADDSUB213PDZ256mkz = 10025,
- VFMADDSUB213PDZ256r = 10026,
- VFMADDSUB213PDZ256rk = 10027,
- VFMADDSUB213PDZ256rkz = 10028,
- VFMADDSUB213PDZm = 10029,
- VFMADDSUB213PDZmb = 10030,
- VFMADDSUB213PDZmbk = 10031,
- VFMADDSUB213PDZmbkz = 10032,
- VFMADDSUB213PDZmk = 10033,
- VFMADDSUB213PDZmkz = 10034,
- VFMADDSUB213PDZr = 10035,
- VFMADDSUB213PDZrb = 10036,
- VFMADDSUB213PDZrbk = 10037,
- VFMADDSUB213PDZrbkz = 10038,
- VFMADDSUB213PDZrk = 10039,
- VFMADDSUB213PDZrkz = 10040,
- VFMADDSUB213PDm = 10041,
- VFMADDSUB213PDr = 10042,
- VFMADDSUB213PHZ128m = 10043,
- VFMADDSUB213PHZ128mb = 10044,
- VFMADDSUB213PHZ128mbk = 10045,
- VFMADDSUB213PHZ128mbkz = 10046,
- VFMADDSUB213PHZ128mk = 10047,
- VFMADDSUB213PHZ128mkz = 10048,
- VFMADDSUB213PHZ128r = 10049,
- VFMADDSUB213PHZ128rk = 10050,
- VFMADDSUB213PHZ128rkz = 10051,
- VFMADDSUB213PHZ256m = 10052,
- VFMADDSUB213PHZ256mb = 10053,
- VFMADDSUB213PHZ256mbk = 10054,
- VFMADDSUB213PHZ256mbkz = 10055,
- VFMADDSUB213PHZ256mk = 10056,
- VFMADDSUB213PHZ256mkz = 10057,
- VFMADDSUB213PHZ256r = 10058,
- VFMADDSUB213PHZ256rk = 10059,
- VFMADDSUB213PHZ256rkz = 10060,
- VFMADDSUB213PHZm = 10061,
- VFMADDSUB213PHZmb = 10062,
- VFMADDSUB213PHZmbk = 10063,
- VFMADDSUB213PHZmbkz = 10064,
- VFMADDSUB213PHZmk = 10065,
- VFMADDSUB213PHZmkz = 10066,
- VFMADDSUB213PHZr = 10067,
- VFMADDSUB213PHZrb = 10068,
- VFMADDSUB213PHZrbk = 10069,
- VFMADDSUB213PHZrbkz = 10070,
- VFMADDSUB213PHZrk = 10071,
- VFMADDSUB213PHZrkz = 10072,
- VFMADDSUB213PSYm = 10073,
- VFMADDSUB213PSYr = 10074,
- VFMADDSUB213PSZ128m = 10075,
- VFMADDSUB213PSZ128mb = 10076,
- VFMADDSUB213PSZ128mbk = 10077,
- VFMADDSUB213PSZ128mbkz = 10078,
- VFMADDSUB213PSZ128mk = 10079,
- VFMADDSUB213PSZ128mkz = 10080,
- VFMADDSUB213PSZ128r = 10081,
- VFMADDSUB213PSZ128rk = 10082,
- VFMADDSUB213PSZ128rkz = 10083,
- VFMADDSUB213PSZ256m = 10084,
- VFMADDSUB213PSZ256mb = 10085,
- VFMADDSUB213PSZ256mbk = 10086,
- VFMADDSUB213PSZ256mbkz = 10087,
- VFMADDSUB213PSZ256mk = 10088,
- VFMADDSUB213PSZ256mkz = 10089,
- VFMADDSUB213PSZ256r = 10090,
- VFMADDSUB213PSZ256rk = 10091,
- VFMADDSUB213PSZ256rkz = 10092,
- VFMADDSUB213PSZm = 10093,
- VFMADDSUB213PSZmb = 10094,
- VFMADDSUB213PSZmbk = 10095,
- VFMADDSUB213PSZmbkz = 10096,
- VFMADDSUB213PSZmk = 10097,
- VFMADDSUB213PSZmkz = 10098,
- VFMADDSUB213PSZr = 10099,
- VFMADDSUB213PSZrb = 10100,
- VFMADDSUB213PSZrbk = 10101,
- VFMADDSUB213PSZrbkz = 10102,
- VFMADDSUB213PSZrk = 10103,
- VFMADDSUB213PSZrkz = 10104,
- VFMADDSUB213PSm = 10105,
- VFMADDSUB213PSr = 10106,
- VFMADDSUB231PDYm = 10107,
- VFMADDSUB231PDYr = 10108,
- VFMADDSUB231PDZ128m = 10109,
- VFMADDSUB231PDZ128mb = 10110,
- VFMADDSUB231PDZ128mbk = 10111,
- VFMADDSUB231PDZ128mbkz = 10112,
- VFMADDSUB231PDZ128mk = 10113,
- VFMADDSUB231PDZ128mkz = 10114,
- VFMADDSUB231PDZ128r = 10115,
- VFMADDSUB231PDZ128rk = 10116,
- VFMADDSUB231PDZ128rkz = 10117,
- VFMADDSUB231PDZ256m = 10118,
- VFMADDSUB231PDZ256mb = 10119,
- VFMADDSUB231PDZ256mbk = 10120,
- VFMADDSUB231PDZ256mbkz = 10121,
- VFMADDSUB231PDZ256mk = 10122,
- VFMADDSUB231PDZ256mkz = 10123,
- VFMADDSUB231PDZ256r = 10124,
- VFMADDSUB231PDZ256rk = 10125,
- VFMADDSUB231PDZ256rkz = 10126,
- VFMADDSUB231PDZm = 10127,
- VFMADDSUB231PDZmb = 10128,
- VFMADDSUB231PDZmbk = 10129,
- VFMADDSUB231PDZmbkz = 10130,
- VFMADDSUB231PDZmk = 10131,
- VFMADDSUB231PDZmkz = 10132,
- VFMADDSUB231PDZr = 10133,
- VFMADDSUB231PDZrb = 10134,
- VFMADDSUB231PDZrbk = 10135,
- VFMADDSUB231PDZrbkz = 10136,
- VFMADDSUB231PDZrk = 10137,
- VFMADDSUB231PDZrkz = 10138,
- VFMADDSUB231PDm = 10139,
- VFMADDSUB231PDr = 10140,
- VFMADDSUB231PHZ128m = 10141,
- VFMADDSUB231PHZ128mb = 10142,
- VFMADDSUB231PHZ128mbk = 10143,
- VFMADDSUB231PHZ128mbkz = 10144,
- VFMADDSUB231PHZ128mk = 10145,
- VFMADDSUB231PHZ128mkz = 10146,
- VFMADDSUB231PHZ128r = 10147,
- VFMADDSUB231PHZ128rk = 10148,
- VFMADDSUB231PHZ128rkz = 10149,
- VFMADDSUB231PHZ256m = 10150,
- VFMADDSUB231PHZ256mb = 10151,
- VFMADDSUB231PHZ256mbk = 10152,
- VFMADDSUB231PHZ256mbkz = 10153,
- VFMADDSUB231PHZ256mk = 10154,
- VFMADDSUB231PHZ256mkz = 10155,
- VFMADDSUB231PHZ256r = 10156,
- VFMADDSUB231PHZ256rk = 10157,
- VFMADDSUB231PHZ256rkz = 10158,
- VFMADDSUB231PHZm = 10159,
- VFMADDSUB231PHZmb = 10160,
- VFMADDSUB231PHZmbk = 10161,
- VFMADDSUB231PHZmbkz = 10162,
- VFMADDSUB231PHZmk = 10163,
- VFMADDSUB231PHZmkz = 10164,
- VFMADDSUB231PHZr = 10165,
- VFMADDSUB231PHZrb = 10166,
- VFMADDSUB231PHZrbk = 10167,
- VFMADDSUB231PHZrbkz = 10168,
- VFMADDSUB231PHZrk = 10169,
- VFMADDSUB231PHZrkz = 10170,
- VFMADDSUB231PSYm = 10171,
- VFMADDSUB231PSYr = 10172,
- VFMADDSUB231PSZ128m = 10173,
- VFMADDSUB231PSZ128mb = 10174,
- VFMADDSUB231PSZ128mbk = 10175,
- VFMADDSUB231PSZ128mbkz = 10176,
- VFMADDSUB231PSZ128mk = 10177,
- VFMADDSUB231PSZ128mkz = 10178,
- VFMADDSUB231PSZ128r = 10179,
- VFMADDSUB231PSZ128rk = 10180,
- VFMADDSUB231PSZ128rkz = 10181,
- VFMADDSUB231PSZ256m = 10182,
- VFMADDSUB231PSZ256mb = 10183,
- VFMADDSUB231PSZ256mbk = 10184,
- VFMADDSUB231PSZ256mbkz = 10185,
- VFMADDSUB231PSZ256mk = 10186,
- VFMADDSUB231PSZ256mkz = 10187,
- VFMADDSUB231PSZ256r = 10188,
- VFMADDSUB231PSZ256rk = 10189,
- VFMADDSUB231PSZ256rkz = 10190,
- VFMADDSUB231PSZm = 10191,
- VFMADDSUB231PSZmb = 10192,
- VFMADDSUB231PSZmbk = 10193,
- VFMADDSUB231PSZmbkz = 10194,
- VFMADDSUB231PSZmk = 10195,
- VFMADDSUB231PSZmkz = 10196,
- VFMADDSUB231PSZr = 10197,
- VFMADDSUB231PSZrb = 10198,
- VFMADDSUB231PSZrbk = 10199,
- VFMADDSUB231PSZrbkz = 10200,
- VFMADDSUB231PSZrk = 10201,
- VFMADDSUB231PSZrkz = 10202,
- VFMADDSUB231PSm = 10203,
- VFMADDSUB231PSr = 10204,
- VFMADDSUBPD4Ymr = 10205,
- VFMADDSUBPD4Yrm = 10206,
- VFMADDSUBPD4Yrr = 10207,
- VFMADDSUBPD4Yrr_REV = 10208,
- VFMADDSUBPD4mr = 10209,
- VFMADDSUBPD4rm = 10210,
- VFMADDSUBPD4rr = 10211,
- VFMADDSUBPD4rr_REV = 10212,
- VFMADDSUBPS4Ymr = 10213,
- VFMADDSUBPS4Yrm = 10214,
- VFMADDSUBPS4Yrr = 10215,
- VFMADDSUBPS4Yrr_REV = 10216,
- VFMADDSUBPS4mr = 10217,
- VFMADDSUBPS4rm = 10218,
- VFMADDSUBPS4rr = 10219,
- VFMADDSUBPS4rr_REV = 10220,
- VFMSUB132BF16Z128m = 10221,
- VFMSUB132BF16Z128mb = 10222,
- VFMSUB132BF16Z128mbk = 10223,
- VFMSUB132BF16Z128mbkz = 10224,
- VFMSUB132BF16Z128mk = 10225,
- VFMSUB132BF16Z128mkz = 10226,
- VFMSUB132BF16Z128r = 10227,
- VFMSUB132BF16Z128rk = 10228,
- VFMSUB132BF16Z128rkz = 10229,
- VFMSUB132BF16Z256m = 10230,
- VFMSUB132BF16Z256mb = 10231,
- VFMSUB132BF16Z256mbk = 10232,
- VFMSUB132BF16Z256mbkz = 10233,
- VFMSUB132BF16Z256mk = 10234,
- VFMSUB132BF16Z256mkz = 10235,
- VFMSUB132BF16Z256r = 10236,
- VFMSUB132BF16Z256rk = 10237,
- VFMSUB132BF16Z256rkz = 10238,
- VFMSUB132BF16Zm = 10239,
- VFMSUB132BF16Zmb = 10240,
- VFMSUB132BF16Zmbk = 10241,
- VFMSUB132BF16Zmbkz = 10242,
- VFMSUB132BF16Zmk = 10243,
- VFMSUB132BF16Zmkz = 10244,
- VFMSUB132BF16Zr = 10245,
- VFMSUB132BF16Zrk = 10246,
- VFMSUB132BF16Zrkz = 10247,
- VFMSUB132PDYm = 10248,
- VFMSUB132PDYr = 10249,
- VFMSUB132PDZ128m = 10250,
- VFMSUB132PDZ128mb = 10251,
- VFMSUB132PDZ128mbk = 10252,
- VFMSUB132PDZ128mbkz = 10253,
- VFMSUB132PDZ128mk = 10254,
- VFMSUB132PDZ128mkz = 10255,
- VFMSUB132PDZ128r = 10256,
- VFMSUB132PDZ128rk = 10257,
- VFMSUB132PDZ128rkz = 10258,
- VFMSUB132PDZ256m = 10259,
- VFMSUB132PDZ256mb = 10260,
- VFMSUB132PDZ256mbk = 10261,
- VFMSUB132PDZ256mbkz = 10262,
- VFMSUB132PDZ256mk = 10263,
- VFMSUB132PDZ256mkz = 10264,
- VFMSUB132PDZ256r = 10265,
- VFMSUB132PDZ256rk = 10266,
- VFMSUB132PDZ256rkz = 10267,
- VFMSUB132PDZm = 10268,
- VFMSUB132PDZmb = 10269,
- VFMSUB132PDZmbk = 10270,
- VFMSUB132PDZmbkz = 10271,
- VFMSUB132PDZmk = 10272,
- VFMSUB132PDZmkz = 10273,
- VFMSUB132PDZr = 10274,
- VFMSUB132PDZrb = 10275,
- VFMSUB132PDZrbk = 10276,
- VFMSUB132PDZrbkz = 10277,
- VFMSUB132PDZrk = 10278,
- VFMSUB132PDZrkz = 10279,
- VFMSUB132PDm = 10280,
- VFMSUB132PDr = 10281,
- VFMSUB132PHZ128m = 10282,
- VFMSUB132PHZ128mb = 10283,
- VFMSUB132PHZ128mbk = 10284,
- VFMSUB132PHZ128mbkz = 10285,
- VFMSUB132PHZ128mk = 10286,
- VFMSUB132PHZ128mkz = 10287,
- VFMSUB132PHZ128r = 10288,
- VFMSUB132PHZ128rk = 10289,
- VFMSUB132PHZ128rkz = 10290,
- VFMSUB132PHZ256m = 10291,
- VFMSUB132PHZ256mb = 10292,
- VFMSUB132PHZ256mbk = 10293,
- VFMSUB132PHZ256mbkz = 10294,
- VFMSUB132PHZ256mk = 10295,
- VFMSUB132PHZ256mkz = 10296,
- VFMSUB132PHZ256r = 10297,
- VFMSUB132PHZ256rk = 10298,
- VFMSUB132PHZ256rkz = 10299,
- VFMSUB132PHZm = 10300,
- VFMSUB132PHZmb = 10301,
- VFMSUB132PHZmbk = 10302,
- VFMSUB132PHZmbkz = 10303,
- VFMSUB132PHZmk = 10304,
- VFMSUB132PHZmkz = 10305,
- VFMSUB132PHZr = 10306,
- VFMSUB132PHZrb = 10307,
- VFMSUB132PHZrbk = 10308,
- VFMSUB132PHZrbkz = 10309,
- VFMSUB132PHZrk = 10310,
- VFMSUB132PHZrkz = 10311,
- VFMSUB132PSYm = 10312,
- VFMSUB132PSYr = 10313,
- VFMSUB132PSZ128m = 10314,
- VFMSUB132PSZ128mb = 10315,
- VFMSUB132PSZ128mbk = 10316,
- VFMSUB132PSZ128mbkz = 10317,
- VFMSUB132PSZ128mk = 10318,
- VFMSUB132PSZ128mkz = 10319,
- VFMSUB132PSZ128r = 10320,
- VFMSUB132PSZ128rk = 10321,
- VFMSUB132PSZ128rkz = 10322,
- VFMSUB132PSZ256m = 10323,
- VFMSUB132PSZ256mb = 10324,
- VFMSUB132PSZ256mbk = 10325,
- VFMSUB132PSZ256mbkz = 10326,
- VFMSUB132PSZ256mk = 10327,
- VFMSUB132PSZ256mkz = 10328,
- VFMSUB132PSZ256r = 10329,
- VFMSUB132PSZ256rk = 10330,
- VFMSUB132PSZ256rkz = 10331,
- VFMSUB132PSZm = 10332,
- VFMSUB132PSZmb = 10333,
- VFMSUB132PSZmbk = 10334,
- VFMSUB132PSZmbkz = 10335,
- VFMSUB132PSZmk = 10336,
- VFMSUB132PSZmkz = 10337,
- VFMSUB132PSZr = 10338,
- VFMSUB132PSZrb = 10339,
- VFMSUB132PSZrbk = 10340,
- VFMSUB132PSZrbkz = 10341,
- VFMSUB132PSZrk = 10342,
- VFMSUB132PSZrkz = 10343,
- VFMSUB132PSm = 10344,
- VFMSUB132PSr = 10345,
- VFMSUB132SDZm = 10346,
- VFMSUB132SDZm_Int = 10347,
- VFMSUB132SDZmk_Int = 10348,
- VFMSUB132SDZmkz_Int = 10349,
- VFMSUB132SDZr = 10350,
- VFMSUB132SDZr_Int = 10351,
- VFMSUB132SDZrb = 10352,
- VFMSUB132SDZrb_Int = 10353,
- VFMSUB132SDZrbk_Int = 10354,
- VFMSUB132SDZrbkz_Int = 10355,
- VFMSUB132SDZrk_Int = 10356,
- VFMSUB132SDZrkz_Int = 10357,
- VFMSUB132SDm = 10358,
- VFMSUB132SDm_Int = 10359,
- VFMSUB132SDr = 10360,
- VFMSUB132SDr_Int = 10361,
- VFMSUB132SHZm = 10362,
- VFMSUB132SHZm_Int = 10363,
- VFMSUB132SHZmk_Int = 10364,
- VFMSUB132SHZmkz_Int = 10365,
- VFMSUB132SHZr = 10366,
- VFMSUB132SHZr_Int = 10367,
- VFMSUB132SHZrb = 10368,
- VFMSUB132SHZrb_Int = 10369,
- VFMSUB132SHZrbk_Int = 10370,
- VFMSUB132SHZrbkz_Int = 10371,
- VFMSUB132SHZrk_Int = 10372,
- VFMSUB132SHZrkz_Int = 10373,
- VFMSUB132SSZm = 10374,
- VFMSUB132SSZm_Int = 10375,
- VFMSUB132SSZmk_Int = 10376,
- VFMSUB132SSZmkz_Int = 10377,
- VFMSUB132SSZr = 10378,
- VFMSUB132SSZr_Int = 10379,
- VFMSUB132SSZrb = 10380,
- VFMSUB132SSZrb_Int = 10381,
- VFMSUB132SSZrbk_Int = 10382,
- VFMSUB132SSZrbkz_Int = 10383,
- VFMSUB132SSZrk_Int = 10384,
- VFMSUB132SSZrkz_Int = 10385,
- VFMSUB132SSm = 10386,
- VFMSUB132SSm_Int = 10387,
- VFMSUB132SSr = 10388,
- VFMSUB132SSr_Int = 10389,
- VFMSUB213BF16Z128m = 10390,
- VFMSUB213BF16Z128mb = 10391,
- VFMSUB213BF16Z128mbk = 10392,
- VFMSUB213BF16Z128mbkz = 10393,
- VFMSUB213BF16Z128mk = 10394,
- VFMSUB213BF16Z128mkz = 10395,
- VFMSUB213BF16Z128r = 10396,
- VFMSUB213BF16Z128rk = 10397,
- VFMSUB213BF16Z128rkz = 10398,
- VFMSUB213BF16Z256m = 10399,
- VFMSUB213BF16Z256mb = 10400,
- VFMSUB213BF16Z256mbk = 10401,
- VFMSUB213BF16Z256mbkz = 10402,
- VFMSUB213BF16Z256mk = 10403,
- VFMSUB213BF16Z256mkz = 10404,
- VFMSUB213BF16Z256r = 10405,
- VFMSUB213BF16Z256rk = 10406,
- VFMSUB213BF16Z256rkz = 10407,
- VFMSUB213BF16Zm = 10408,
- VFMSUB213BF16Zmb = 10409,
- VFMSUB213BF16Zmbk = 10410,
- VFMSUB213BF16Zmbkz = 10411,
- VFMSUB213BF16Zmk = 10412,
- VFMSUB213BF16Zmkz = 10413,
- VFMSUB213BF16Zr = 10414,
- VFMSUB213BF16Zrk = 10415,
- VFMSUB213BF16Zrkz = 10416,
- VFMSUB213PDYm = 10417,
- VFMSUB213PDYr = 10418,
- VFMSUB213PDZ128m = 10419,
- VFMSUB213PDZ128mb = 10420,
- VFMSUB213PDZ128mbk = 10421,
- VFMSUB213PDZ128mbkz = 10422,
- VFMSUB213PDZ128mk = 10423,
- VFMSUB213PDZ128mkz = 10424,
- VFMSUB213PDZ128r = 10425,
- VFMSUB213PDZ128rk = 10426,
- VFMSUB213PDZ128rkz = 10427,
- VFMSUB213PDZ256m = 10428,
- VFMSUB213PDZ256mb = 10429,
- VFMSUB213PDZ256mbk = 10430,
- VFMSUB213PDZ256mbkz = 10431,
- VFMSUB213PDZ256mk = 10432,
- VFMSUB213PDZ256mkz = 10433,
- VFMSUB213PDZ256r = 10434,
- VFMSUB213PDZ256rk = 10435,
- VFMSUB213PDZ256rkz = 10436,
- VFMSUB213PDZm = 10437,
- VFMSUB213PDZmb = 10438,
- VFMSUB213PDZmbk = 10439,
- VFMSUB213PDZmbkz = 10440,
- VFMSUB213PDZmk = 10441,
- VFMSUB213PDZmkz = 10442,
- VFMSUB213PDZr = 10443,
- VFMSUB213PDZrb = 10444,
- VFMSUB213PDZrbk = 10445,
- VFMSUB213PDZrbkz = 10446,
- VFMSUB213PDZrk = 10447,
- VFMSUB213PDZrkz = 10448,
- VFMSUB213PDm = 10449,
- VFMSUB213PDr = 10450,
- VFMSUB213PHZ128m = 10451,
- VFMSUB213PHZ128mb = 10452,
- VFMSUB213PHZ128mbk = 10453,
- VFMSUB213PHZ128mbkz = 10454,
- VFMSUB213PHZ128mk = 10455,
- VFMSUB213PHZ128mkz = 10456,
- VFMSUB213PHZ128r = 10457,
- VFMSUB213PHZ128rk = 10458,
- VFMSUB213PHZ128rkz = 10459,
- VFMSUB213PHZ256m = 10460,
- VFMSUB213PHZ256mb = 10461,
- VFMSUB213PHZ256mbk = 10462,
- VFMSUB213PHZ256mbkz = 10463,
- VFMSUB213PHZ256mk = 10464,
- VFMSUB213PHZ256mkz = 10465,
- VFMSUB213PHZ256r = 10466,
- VFMSUB213PHZ256rk = 10467,
- VFMSUB213PHZ256rkz = 10468,
- VFMSUB213PHZm = 10469,
- VFMSUB213PHZmb = 10470,
- VFMSUB213PHZmbk = 10471,
- VFMSUB213PHZmbkz = 10472,
- VFMSUB213PHZmk = 10473,
- VFMSUB213PHZmkz = 10474,
- VFMSUB213PHZr = 10475,
- VFMSUB213PHZrb = 10476,
- VFMSUB213PHZrbk = 10477,
- VFMSUB213PHZrbkz = 10478,
- VFMSUB213PHZrk = 10479,
- VFMSUB213PHZrkz = 10480,
- VFMSUB213PSYm = 10481,
- VFMSUB213PSYr = 10482,
- VFMSUB213PSZ128m = 10483,
- VFMSUB213PSZ128mb = 10484,
- VFMSUB213PSZ128mbk = 10485,
- VFMSUB213PSZ128mbkz = 10486,
- VFMSUB213PSZ128mk = 10487,
- VFMSUB213PSZ128mkz = 10488,
- VFMSUB213PSZ128r = 10489,
- VFMSUB213PSZ128rk = 10490,
- VFMSUB213PSZ128rkz = 10491,
- VFMSUB213PSZ256m = 10492,
- VFMSUB213PSZ256mb = 10493,
- VFMSUB213PSZ256mbk = 10494,
- VFMSUB213PSZ256mbkz = 10495,
- VFMSUB213PSZ256mk = 10496,
- VFMSUB213PSZ256mkz = 10497,
- VFMSUB213PSZ256r = 10498,
- VFMSUB213PSZ256rk = 10499,
- VFMSUB213PSZ256rkz = 10500,
- VFMSUB213PSZm = 10501,
- VFMSUB213PSZmb = 10502,
- VFMSUB213PSZmbk = 10503,
- VFMSUB213PSZmbkz = 10504,
- VFMSUB213PSZmk = 10505,
- VFMSUB213PSZmkz = 10506,
- VFMSUB213PSZr = 10507,
- VFMSUB213PSZrb = 10508,
- VFMSUB213PSZrbk = 10509,
- VFMSUB213PSZrbkz = 10510,
- VFMSUB213PSZrk = 10511,
- VFMSUB213PSZrkz = 10512,
- VFMSUB213PSm = 10513,
- VFMSUB213PSr = 10514,
- VFMSUB213SDZm = 10515,
- VFMSUB213SDZm_Int = 10516,
- VFMSUB213SDZmk_Int = 10517,
- VFMSUB213SDZmkz_Int = 10518,
- VFMSUB213SDZr = 10519,
- VFMSUB213SDZr_Int = 10520,
- VFMSUB213SDZrb = 10521,
- VFMSUB213SDZrb_Int = 10522,
- VFMSUB213SDZrbk_Int = 10523,
- VFMSUB213SDZrbkz_Int = 10524,
- VFMSUB213SDZrk_Int = 10525,
- VFMSUB213SDZrkz_Int = 10526,
- VFMSUB213SDm = 10527,
- VFMSUB213SDm_Int = 10528,
- VFMSUB213SDr = 10529,
- VFMSUB213SDr_Int = 10530,
- VFMSUB213SHZm = 10531,
- VFMSUB213SHZm_Int = 10532,
- VFMSUB213SHZmk_Int = 10533,
- VFMSUB213SHZmkz_Int = 10534,
- VFMSUB213SHZr = 10535,
- VFMSUB213SHZr_Int = 10536,
- VFMSUB213SHZrb = 10537,
- VFMSUB213SHZrb_Int = 10538,
- VFMSUB213SHZrbk_Int = 10539,
- VFMSUB213SHZrbkz_Int = 10540,
- VFMSUB213SHZrk_Int = 10541,
- VFMSUB213SHZrkz_Int = 10542,
- VFMSUB213SSZm = 10543,
- VFMSUB213SSZm_Int = 10544,
- VFMSUB213SSZmk_Int = 10545,
- VFMSUB213SSZmkz_Int = 10546,
- VFMSUB213SSZr = 10547,
- VFMSUB213SSZr_Int = 10548,
- VFMSUB213SSZrb = 10549,
- VFMSUB213SSZrb_Int = 10550,
- VFMSUB213SSZrbk_Int = 10551,
- VFMSUB213SSZrbkz_Int = 10552,
- VFMSUB213SSZrk_Int = 10553,
- VFMSUB213SSZrkz_Int = 10554,
- VFMSUB213SSm = 10555,
- VFMSUB213SSm_Int = 10556,
- VFMSUB213SSr = 10557,
- VFMSUB213SSr_Int = 10558,
- VFMSUB231BF16Z128m = 10559,
- VFMSUB231BF16Z128mb = 10560,
- VFMSUB231BF16Z128mbk = 10561,
- VFMSUB231BF16Z128mbkz = 10562,
- VFMSUB231BF16Z128mk = 10563,
- VFMSUB231BF16Z128mkz = 10564,
- VFMSUB231BF16Z128r = 10565,
- VFMSUB231BF16Z128rk = 10566,
- VFMSUB231BF16Z128rkz = 10567,
- VFMSUB231BF16Z256m = 10568,
- VFMSUB231BF16Z256mb = 10569,
- VFMSUB231BF16Z256mbk = 10570,
- VFMSUB231BF16Z256mbkz = 10571,
- VFMSUB231BF16Z256mk = 10572,
- VFMSUB231BF16Z256mkz = 10573,
- VFMSUB231BF16Z256r = 10574,
- VFMSUB231BF16Z256rk = 10575,
- VFMSUB231BF16Z256rkz = 10576,
- VFMSUB231BF16Zm = 10577,
- VFMSUB231BF16Zmb = 10578,
- VFMSUB231BF16Zmbk = 10579,
- VFMSUB231BF16Zmbkz = 10580,
- VFMSUB231BF16Zmk = 10581,
- VFMSUB231BF16Zmkz = 10582,
- VFMSUB231BF16Zr = 10583,
- VFMSUB231BF16Zrk = 10584,
- VFMSUB231BF16Zrkz = 10585,
- VFMSUB231PDYm = 10586,
- VFMSUB231PDYr = 10587,
- VFMSUB231PDZ128m = 10588,
- VFMSUB231PDZ128mb = 10589,
- VFMSUB231PDZ128mbk = 10590,
- VFMSUB231PDZ128mbkz = 10591,
- VFMSUB231PDZ128mk = 10592,
- VFMSUB231PDZ128mkz = 10593,
- VFMSUB231PDZ128r = 10594,
- VFMSUB231PDZ128rk = 10595,
- VFMSUB231PDZ128rkz = 10596,
- VFMSUB231PDZ256m = 10597,
- VFMSUB231PDZ256mb = 10598,
- VFMSUB231PDZ256mbk = 10599,
- VFMSUB231PDZ256mbkz = 10600,
- VFMSUB231PDZ256mk = 10601,
- VFMSUB231PDZ256mkz = 10602,
- VFMSUB231PDZ256r = 10603,
- VFMSUB231PDZ256rk = 10604,
- VFMSUB231PDZ256rkz = 10605,
- VFMSUB231PDZm = 10606,
- VFMSUB231PDZmb = 10607,
- VFMSUB231PDZmbk = 10608,
- VFMSUB231PDZmbkz = 10609,
- VFMSUB231PDZmk = 10610,
- VFMSUB231PDZmkz = 10611,
- VFMSUB231PDZr = 10612,
- VFMSUB231PDZrb = 10613,
- VFMSUB231PDZrbk = 10614,
- VFMSUB231PDZrbkz = 10615,
- VFMSUB231PDZrk = 10616,
- VFMSUB231PDZrkz = 10617,
- VFMSUB231PDm = 10618,
- VFMSUB231PDr = 10619,
- VFMSUB231PHZ128m = 10620,
- VFMSUB231PHZ128mb = 10621,
- VFMSUB231PHZ128mbk = 10622,
- VFMSUB231PHZ128mbkz = 10623,
- VFMSUB231PHZ128mk = 10624,
- VFMSUB231PHZ128mkz = 10625,
- VFMSUB231PHZ128r = 10626,
- VFMSUB231PHZ128rk = 10627,
- VFMSUB231PHZ128rkz = 10628,
- VFMSUB231PHZ256m = 10629,
- VFMSUB231PHZ256mb = 10630,
- VFMSUB231PHZ256mbk = 10631,
- VFMSUB231PHZ256mbkz = 10632,
- VFMSUB231PHZ256mk = 10633,
- VFMSUB231PHZ256mkz = 10634,
- VFMSUB231PHZ256r = 10635,
- VFMSUB231PHZ256rk = 10636,
- VFMSUB231PHZ256rkz = 10637,
- VFMSUB231PHZm = 10638,
- VFMSUB231PHZmb = 10639,
- VFMSUB231PHZmbk = 10640,
- VFMSUB231PHZmbkz = 10641,
- VFMSUB231PHZmk = 10642,
- VFMSUB231PHZmkz = 10643,
- VFMSUB231PHZr = 10644,
- VFMSUB231PHZrb = 10645,
- VFMSUB231PHZrbk = 10646,
- VFMSUB231PHZrbkz = 10647,
- VFMSUB231PHZrk = 10648,
- VFMSUB231PHZrkz = 10649,
- VFMSUB231PSYm = 10650,
- VFMSUB231PSYr = 10651,
- VFMSUB231PSZ128m = 10652,
- VFMSUB231PSZ128mb = 10653,
- VFMSUB231PSZ128mbk = 10654,
- VFMSUB231PSZ128mbkz = 10655,
- VFMSUB231PSZ128mk = 10656,
- VFMSUB231PSZ128mkz = 10657,
- VFMSUB231PSZ128r = 10658,
- VFMSUB231PSZ128rk = 10659,
- VFMSUB231PSZ128rkz = 10660,
- VFMSUB231PSZ256m = 10661,
- VFMSUB231PSZ256mb = 10662,
- VFMSUB231PSZ256mbk = 10663,
- VFMSUB231PSZ256mbkz = 10664,
- VFMSUB231PSZ256mk = 10665,
- VFMSUB231PSZ256mkz = 10666,
- VFMSUB231PSZ256r = 10667,
- VFMSUB231PSZ256rk = 10668,
- VFMSUB231PSZ256rkz = 10669,
- VFMSUB231PSZm = 10670,
- VFMSUB231PSZmb = 10671,
- VFMSUB231PSZmbk = 10672,
- VFMSUB231PSZmbkz = 10673,
- VFMSUB231PSZmk = 10674,
- VFMSUB231PSZmkz = 10675,
- VFMSUB231PSZr = 10676,
- VFMSUB231PSZrb = 10677,
- VFMSUB231PSZrbk = 10678,
- VFMSUB231PSZrbkz = 10679,
- VFMSUB231PSZrk = 10680,
- VFMSUB231PSZrkz = 10681,
- VFMSUB231PSm = 10682,
- VFMSUB231PSr = 10683,
- VFMSUB231SDZm = 10684,
- VFMSUB231SDZm_Int = 10685,
- VFMSUB231SDZmk_Int = 10686,
- VFMSUB231SDZmkz_Int = 10687,
- VFMSUB231SDZr = 10688,
- VFMSUB231SDZr_Int = 10689,
- VFMSUB231SDZrb = 10690,
- VFMSUB231SDZrb_Int = 10691,
- VFMSUB231SDZrbk_Int = 10692,
- VFMSUB231SDZrbkz_Int = 10693,
- VFMSUB231SDZrk_Int = 10694,
- VFMSUB231SDZrkz_Int = 10695,
- VFMSUB231SDm = 10696,
- VFMSUB231SDm_Int = 10697,
- VFMSUB231SDr = 10698,
- VFMSUB231SDr_Int = 10699,
- VFMSUB231SHZm = 10700,
- VFMSUB231SHZm_Int = 10701,
- VFMSUB231SHZmk_Int = 10702,
- VFMSUB231SHZmkz_Int = 10703,
- VFMSUB231SHZr = 10704,
- VFMSUB231SHZr_Int = 10705,
- VFMSUB231SHZrb = 10706,
- VFMSUB231SHZrb_Int = 10707,
- VFMSUB231SHZrbk_Int = 10708,
- VFMSUB231SHZrbkz_Int = 10709,
- VFMSUB231SHZrk_Int = 10710,
- VFMSUB231SHZrkz_Int = 10711,
- VFMSUB231SSZm = 10712,
- VFMSUB231SSZm_Int = 10713,
- VFMSUB231SSZmk_Int = 10714,
- VFMSUB231SSZmkz_Int = 10715,
- VFMSUB231SSZr = 10716,
- VFMSUB231SSZr_Int = 10717,
- VFMSUB231SSZrb = 10718,
- VFMSUB231SSZrb_Int = 10719,
- VFMSUB231SSZrbk_Int = 10720,
- VFMSUB231SSZrbkz_Int = 10721,
- VFMSUB231SSZrk_Int = 10722,
- VFMSUB231SSZrkz_Int = 10723,
- VFMSUB231SSm = 10724,
- VFMSUB231SSm_Int = 10725,
- VFMSUB231SSr = 10726,
- VFMSUB231SSr_Int = 10727,
- VFMSUBADD132PDYm = 10728,
- VFMSUBADD132PDYr = 10729,
- VFMSUBADD132PDZ128m = 10730,
- VFMSUBADD132PDZ128mb = 10731,
- VFMSUBADD132PDZ128mbk = 10732,
- VFMSUBADD132PDZ128mbkz = 10733,
- VFMSUBADD132PDZ128mk = 10734,
- VFMSUBADD132PDZ128mkz = 10735,
- VFMSUBADD132PDZ128r = 10736,
- VFMSUBADD132PDZ128rk = 10737,
- VFMSUBADD132PDZ128rkz = 10738,
- VFMSUBADD132PDZ256m = 10739,
- VFMSUBADD132PDZ256mb = 10740,
- VFMSUBADD132PDZ256mbk = 10741,
- VFMSUBADD132PDZ256mbkz = 10742,
- VFMSUBADD132PDZ256mk = 10743,
- VFMSUBADD132PDZ256mkz = 10744,
- VFMSUBADD132PDZ256r = 10745,
- VFMSUBADD132PDZ256rk = 10746,
- VFMSUBADD132PDZ256rkz = 10747,
- VFMSUBADD132PDZm = 10748,
- VFMSUBADD132PDZmb = 10749,
- VFMSUBADD132PDZmbk = 10750,
- VFMSUBADD132PDZmbkz = 10751,
- VFMSUBADD132PDZmk = 10752,
- VFMSUBADD132PDZmkz = 10753,
- VFMSUBADD132PDZr = 10754,
- VFMSUBADD132PDZrb = 10755,
- VFMSUBADD132PDZrbk = 10756,
- VFMSUBADD132PDZrbkz = 10757,
- VFMSUBADD132PDZrk = 10758,
- VFMSUBADD132PDZrkz = 10759,
- VFMSUBADD132PDm = 10760,
- VFMSUBADD132PDr = 10761,
- VFMSUBADD132PHZ128m = 10762,
- VFMSUBADD132PHZ128mb = 10763,
- VFMSUBADD132PHZ128mbk = 10764,
- VFMSUBADD132PHZ128mbkz = 10765,
- VFMSUBADD132PHZ128mk = 10766,
- VFMSUBADD132PHZ128mkz = 10767,
- VFMSUBADD132PHZ128r = 10768,
- VFMSUBADD132PHZ128rk = 10769,
- VFMSUBADD132PHZ128rkz = 10770,
- VFMSUBADD132PHZ256m = 10771,
- VFMSUBADD132PHZ256mb = 10772,
- VFMSUBADD132PHZ256mbk = 10773,
- VFMSUBADD132PHZ256mbkz = 10774,
- VFMSUBADD132PHZ256mk = 10775,
- VFMSUBADD132PHZ256mkz = 10776,
- VFMSUBADD132PHZ256r = 10777,
- VFMSUBADD132PHZ256rk = 10778,
- VFMSUBADD132PHZ256rkz = 10779,
- VFMSUBADD132PHZm = 10780,
- VFMSUBADD132PHZmb = 10781,
- VFMSUBADD132PHZmbk = 10782,
- VFMSUBADD132PHZmbkz = 10783,
- VFMSUBADD132PHZmk = 10784,
- VFMSUBADD132PHZmkz = 10785,
- VFMSUBADD132PHZr = 10786,
- VFMSUBADD132PHZrb = 10787,
- VFMSUBADD132PHZrbk = 10788,
- VFMSUBADD132PHZrbkz = 10789,
- VFMSUBADD132PHZrk = 10790,
- VFMSUBADD132PHZrkz = 10791,
- VFMSUBADD132PSYm = 10792,
- VFMSUBADD132PSYr = 10793,
- VFMSUBADD132PSZ128m = 10794,
- VFMSUBADD132PSZ128mb = 10795,
- VFMSUBADD132PSZ128mbk = 10796,
- VFMSUBADD132PSZ128mbkz = 10797,
- VFMSUBADD132PSZ128mk = 10798,
- VFMSUBADD132PSZ128mkz = 10799,
- VFMSUBADD132PSZ128r = 10800,
- VFMSUBADD132PSZ128rk = 10801,
- VFMSUBADD132PSZ128rkz = 10802,
- VFMSUBADD132PSZ256m = 10803,
- VFMSUBADD132PSZ256mb = 10804,
- VFMSUBADD132PSZ256mbk = 10805,
- VFMSUBADD132PSZ256mbkz = 10806,
- VFMSUBADD132PSZ256mk = 10807,
- VFMSUBADD132PSZ256mkz = 10808,
- VFMSUBADD132PSZ256r = 10809,
- VFMSUBADD132PSZ256rk = 10810,
- VFMSUBADD132PSZ256rkz = 10811,
- VFMSUBADD132PSZm = 10812,
- VFMSUBADD132PSZmb = 10813,
- VFMSUBADD132PSZmbk = 10814,
- VFMSUBADD132PSZmbkz = 10815,
- VFMSUBADD132PSZmk = 10816,
- VFMSUBADD132PSZmkz = 10817,
- VFMSUBADD132PSZr = 10818,
- VFMSUBADD132PSZrb = 10819,
- VFMSUBADD132PSZrbk = 10820,
- VFMSUBADD132PSZrbkz = 10821,
- VFMSUBADD132PSZrk = 10822,
- VFMSUBADD132PSZrkz = 10823,
- VFMSUBADD132PSm = 10824,
- VFMSUBADD132PSr = 10825,
- VFMSUBADD213PDYm = 10826,
- VFMSUBADD213PDYr = 10827,
- VFMSUBADD213PDZ128m = 10828,
- VFMSUBADD213PDZ128mb = 10829,
- VFMSUBADD213PDZ128mbk = 10830,
- VFMSUBADD213PDZ128mbkz = 10831,
- VFMSUBADD213PDZ128mk = 10832,
- VFMSUBADD213PDZ128mkz = 10833,
- VFMSUBADD213PDZ128r = 10834,
- VFMSUBADD213PDZ128rk = 10835,
- VFMSUBADD213PDZ128rkz = 10836,
- VFMSUBADD213PDZ256m = 10837,
- VFMSUBADD213PDZ256mb = 10838,
- VFMSUBADD213PDZ256mbk = 10839,
- VFMSUBADD213PDZ256mbkz = 10840,
- VFMSUBADD213PDZ256mk = 10841,
- VFMSUBADD213PDZ256mkz = 10842,
- VFMSUBADD213PDZ256r = 10843,
- VFMSUBADD213PDZ256rk = 10844,
- VFMSUBADD213PDZ256rkz = 10845,
- VFMSUBADD213PDZm = 10846,
- VFMSUBADD213PDZmb = 10847,
- VFMSUBADD213PDZmbk = 10848,
- VFMSUBADD213PDZmbkz = 10849,
- VFMSUBADD213PDZmk = 10850,
- VFMSUBADD213PDZmkz = 10851,
- VFMSUBADD213PDZr = 10852,
- VFMSUBADD213PDZrb = 10853,
- VFMSUBADD213PDZrbk = 10854,
- VFMSUBADD213PDZrbkz = 10855,
- VFMSUBADD213PDZrk = 10856,
- VFMSUBADD213PDZrkz = 10857,
- VFMSUBADD213PDm = 10858,
- VFMSUBADD213PDr = 10859,
- VFMSUBADD213PHZ128m = 10860,
- VFMSUBADD213PHZ128mb = 10861,
- VFMSUBADD213PHZ128mbk = 10862,
- VFMSUBADD213PHZ128mbkz = 10863,
- VFMSUBADD213PHZ128mk = 10864,
- VFMSUBADD213PHZ128mkz = 10865,
- VFMSUBADD213PHZ128r = 10866,
- VFMSUBADD213PHZ128rk = 10867,
- VFMSUBADD213PHZ128rkz = 10868,
- VFMSUBADD213PHZ256m = 10869,
- VFMSUBADD213PHZ256mb = 10870,
- VFMSUBADD213PHZ256mbk = 10871,
- VFMSUBADD213PHZ256mbkz = 10872,
- VFMSUBADD213PHZ256mk = 10873,
- VFMSUBADD213PHZ256mkz = 10874,
- VFMSUBADD213PHZ256r = 10875,
- VFMSUBADD213PHZ256rk = 10876,
- VFMSUBADD213PHZ256rkz = 10877,
- VFMSUBADD213PHZm = 10878,
- VFMSUBADD213PHZmb = 10879,
- VFMSUBADD213PHZmbk = 10880,
- VFMSUBADD213PHZmbkz = 10881,
- VFMSUBADD213PHZmk = 10882,
- VFMSUBADD213PHZmkz = 10883,
- VFMSUBADD213PHZr = 10884,
- VFMSUBADD213PHZrb = 10885,
- VFMSUBADD213PHZrbk = 10886,
- VFMSUBADD213PHZrbkz = 10887,
- VFMSUBADD213PHZrk = 10888,
- VFMSUBADD213PHZrkz = 10889,
- VFMSUBADD213PSYm = 10890,
- VFMSUBADD213PSYr = 10891,
- VFMSUBADD213PSZ128m = 10892,
- VFMSUBADD213PSZ128mb = 10893,
- VFMSUBADD213PSZ128mbk = 10894,
- VFMSUBADD213PSZ128mbkz = 10895,
- VFMSUBADD213PSZ128mk = 10896,
- VFMSUBADD213PSZ128mkz = 10897,
- VFMSUBADD213PSZ128r = 10898,
- VFMSUBADD213PSZ128rk = 10899,
- VFMSUBADD213PSZ128rkz = 10900,
- VFMSUBADD213PSZ256m = 10901,
- VFMSUBADD213PSZ256mb = 10902,
- VFMSUBADD213PSZ256mbk = 10903,
- VFMSUBADD213PSZ256mbkz = 10904,
- VFMSUBADD213PSZ256mk = 10905,
- VFMSUBADD213PSZ256mkz = 10906,
- VFMSUBADD213PSZ256r = 10907,
- VFMSUBADD213PSZ256rk = 10908,
- VFMSUBADD213PSZ256rkz = 10909,
- VFMSUBADD213PSZm = 10910,
- VFMSUBADD213PSZmb = 10911,
- VFMSUBADD213PSZmbk = 10912,
- VFMSUBADD213PSZmbkz = 10913,
- VFMSUBADD213PSZmk = 10914,
- VFMSUBADD213PSZmkz = 10915,
- VFMSUBADD213PSZr = 10916,
- VFMSUBADD213PSZrb = 10917,
- VFMSUBADD213PSZrbk = 10918,
- VFMSUBADD213PSZrbkz = 10919,
- VFMSUBADD213PSZrk = 10920,
- VFMSUBADD213PSZrkz = 10921,
- VFMSUBADD213PSm = 10922,
- VFMSUBADD213PSr = 10923,
- VFMSUBADD231PDYm = 10924,
- VFMSUBADD231PDYr = 10925,
- VFMSUBADD231PDZ128m = 10926,
- VFMSUBADD231PDZ128mb = 10927,
- VFMSUBADD231PDZ128mbk = 10928,
- VFMSUBADD231PDZ128mbkz = 10929,
- VFMSUBADD231PDZ128mk = 10930,
- VFMSUBADD231PDZ128mkz = 10931,
- VFMSUBADD231PDZ128r = 10932,
- VFMSUBADD231PDZ128rk = 10933,
- VFMSUBADD231PDZ128rkz = 10934,
- VFMSUBADD231PDZ256m = 10935,
- VFMSUBADD231PDZ256mb = 10936,
- VFMSUBADD231PDZ256mbk = 10937,
- VFMSUBADD231PDZ256mbkz = 10938,
- VFMSUBADD231PDZ256mk = 10939,
- VFMSUBADD231PDZ256mkz = 10940,
- VFMSUBADD231PDZ256r = 10941,
- VFMSUBADD231PDZ256rk = 10942,
- VFMSUBADD231PDZ256rkz = 10943,
- VFMSUBADD231PDZm = 10944,
- VFMSUBADD231PDZmb = 10945,
- VFMSUBADD231PDZmbk = 10946,
- VFMSUBADD231PDZmbkz = 10947,
- VFMSUBADD231PDZmk = 10948,
- VFMSUBADD231PDZmkz = 10949,
- VFMSUBADD231PDZr = 10950,
- VFMSUBADD231PDZrb = 10951,
- VFMSUBADD231PDZrbk = 10952,
- VFMSUBADD231PDZrbkz = 10953,
- VFMSUBADD231PDZrk = 10954,
- VFMSUBADD231PDZrkz = 10955,
- VFMSUBADD231PDm = 10956,
- VFMSUBADD231PDr = 10957,
- VFMSUBADD231PHZ128m = 10958,
- VFMSUBADD231PHZ128mb = 10959,
- VFMSUBADD231PHZ128mbk = 10960,
- VFMSUBADD231PHZ128mbkz = 10961,
- VFMSUBADD231PHZ128mk = 10962,
- VFMSUBADD231PHZ128mkz = 10963,
- VFMSUBADD231PHZ128r = 10964,
- VFMSUBADD231PHZ128rk = 10965,
- VFMSUBADD231PHZ128rkz = 10966,
- VFMSUBADD231PHZ256m = 10967,
- VFMSUBADD231PHZ256mb = 10968,
- VFMSUBADD231PHZ256mbk = 10969,
- VFMSUBADD231PHZ256mbkz = 10970,
- VFMSUBADD231PHZ256mk = 10971,
- VFMSUBADD231PHZ256mkz = 10972,
- VFMSUBADD231PHZ256r = 10973,
- VFMSUBADD231PHZ256rk = 10974,
- VFMSUBADD231PHZ256rkz = 10975,
- VFMSUBADD231PHZm = 10976,
- VFMSUBADD231PHZmb = 10977,
- VFMSUBADD231PHZmbk = 10978,
- VFMSUBADD231PHZmbkz = 10979,
- VFMSUBADD231PHZmk = 10980,
- VFMSUBADD231PHZmkz = 10981,
- VFMSUBADD231PHZr = 10982,
- VFMSUBADD231PHZrb = 10983,
- VFMSUBADD231PHZrbk = 10984,
- VFMSUBADD231PHZrbkz = 10985,
- VFMSUBADD231PHZrk = 10986,
- VFMSUBADD231PHZrkz = 10987,
- VFMSUBADD231PSYm = 10988,
- VFMSUBADD231PSYr = 10989,
- VFMSUBADD231PSZ128m = 10990,
- VFMSUBADD231PSZ128mb = 10991,
- VFMSUBADD231PSZ128mbk = 10992,
- VFMSUBADD231PSZ128mbkz = 10993,
- VFMSUBADD231PSZ128mk = 10994,
- VFMSUBADD231PSZ128mkz = 10995,
- VFMSUBADD231PSZ128r = 10996,
- VFMSUBADD231PSZ128rk = 10997,
- VFMSUBADD231PSZ128rkz = 10998,
- VFMSUBADD231PSZ256m = 10999,
- VFMSUBADD231PSZ256mb = 11000,
- VFMSUBADD231PSZ256mbk = 11001,
- VFMSUBADD231PSZ256mbkz = 11002,
- VFMSUBADD231PSZ256mk = 11003,
- VFMSUBADD231PSZ256mkz = 11004,
- VFMSUBADD231PSZ256r = 11005,
- VFMSUBADD231PSZ256rk = 11006,
- VFMSUBADD231PSZ256rkz = 11007,
- VFMSUBADD231PSZm = 11008,
- VFMSUBADD231PSZmb = 11009,
- VFMSUBADD231PSZmbk = 11010,
- VFMSUBADD231PSZmbkz = 11011,
- VFMSUBADD231PSZmk = 11012,
- VFMSUBADD231PSZmkz = 11013,
- VFMSUBADD231PSZr = 11014,
- VFMSUBADD231PSZrb = 11015,
- VFMSUBADD231PSZrbk = 11016,
- VFMSUBADD231PSZrbkz = 11017,
- VFMSUBADD231PSZrk = 11018,
- VFMSUBADD231PSZrkz = 11019,
- VFMSUBADD231PSm = 11020,
- VFMSUBADD231PSr = 11021,
- VFMSUBADDPD4Ymr = 11022,
- VFMSUBADDPD4Yrm = 11023,
- VFMSUBADDPD4Yrr = 11024,
- VFMSUBADDPD4Yrr_REV = 11025,
- VFMSUBADDPD4mr = 11026,
- VFMSUBADDPD4rm = 11027,
- VFMSUBADDPD4rr = 11028,
- VFMSUBADDPD4rr_REV = 11029,
- VFMSUBADDPS4Ymr = 11030,
- VFMSUBADDPS4Yrm = 11031,
- VFMSUBADDPS4Yrr = 11032,
- VFMSUBADDPS4Yrr_REV = 11033,
- VFMSUBADDPS4mr = 11034,
- VFMSUBADDPS4rm = 11035,
- VFMSUBADDPS4rr = 11036,
- VFMSUBADDPS4rr_REV = 11037,
- VFMSUBPD4Ymr = 11038,
- VFMSUBPD4Yrm = 11039,
- VFMSUBPD4Yrr = 11040,
- VFMSUBPD4Yrr_REV = 11041,
- VFMSUBPD4mr = 11042,
- VFMSUBPD4rm = 11043,
- VFMSUBPD4rr = 11044,
- VFMSUBPD4rr_REV = 11045,
- VFMSUBPS4Ymr = 11046,
- VFMSUBPS4Yrm = 11047,
- VFMSUBPS4Yrr = 11048,
- VFMSUBPS4Yrr_REV = 11049,
- VFMSUBPS4mr = 11050,
- VFMSUBPS4rm = 11051,
- VFMSUBPS4rr = 11052,
- VFMSUBPS4rr_REV = 11053,
- VFMSUBSD4mr = 11054,
- VFMSUBSD4mr_Int = 11055,
- VFMSUBSD4rm = 11056,
- VFMSUBSD4rm_Int = 11057,
- VFMSUBSD4rr = 11058,
- VFMSUBSD4rr_Int = 11059,
- VFMSUBSD4rr_Int_REV = 11060,
- VFMSUBSD4rr_REV = 11061,
- VFMSUBSS4mr = 11062,
- VFMSUBSS4mr_Int = 11063,
- VFMSUBSS4rm = 11064,
- VFMSUBSS4rm_Int = 11065,
- VFMSUBSS4rr = 11066,
- VFMSUBSS4rr_Int = 11067,
- VFMSUBSS4rr_Int_REV = 11068,
- VFMSUBSS4rr_REV = 11069,
- VFMULCPHZ128rm = 11070,
- VFMULCPHZ128rmb = 11071,
- VFMULCPHZ128rmbk = 11072,
- VFMULCPHZ128rmbkz = 11073,
- VFMULCPHZ128rmk = 11074,
- VFMULCPHZ128rmkz = 11075,
- VFMULCPHZ128rr = 11076,
- VFMULCPHZ128rrk = 11077,
- VFMULCPHZ128rrkz = 11078,
- VFMULCPHZ256rm = 11079,
- VFMULCPHZ256rmb = 11080,
- VFMULCPHZ256rmbk = 11081,
- VFMULCPHZ256rmbkz = 11082,
- VFMULCPHZ256rmk = 11083,
- VFMULCPHZ256rmkz = 11084,
- VFMULCPHZ256rr = 11085,
- VFMULCPHZ256rrk = 11086,
- VFMULCPHZ256rrkz = 11087,
- VFMULCPHZrm = 11088,
- VFMULCPHZrmb = 11089,
- VFMULCPHZrmbk = 11090,
- VFMULCPHZrmbkz = 11091,
- VFMULCPHZrmk = 11092,
- VFMULCPHZrmkz = 11093,
- VFMULCPHZrr = 11094,
- VFMULCPHZrrb = 11095,
- VFMULCPHZrrbk = 11096,
- VFMULCPHZrrbkz = 11097,
- VFMULCPHZrrk = 11098,
- VFMULCPHZrrkz = 11099,
- VFMULCSHZrm = 11100,
- VFMULCSHZrmk = 11101,
- VFMULCSHZrmkz = 11102,
- VFMULCSHZrr = 11103,
- VFMULCSHZrrb = 11104,
- VFMULCSHZrrbk = 11105,
- VFMULCSHZrrbkz = 11106,
- VFMULCSHZrrk = 11107,
- VFMULCSHZrrkz = 11108,
- VFNMADD132BF16Z128m = 11109,
- VFNMADD132BF16Z128mb = 11110,
- VFNMADD132BF16Z128mbk = 11111,
- VFNMADD132BF16Z128mbkz = 11112,
- VFNMADD132BF16Z128mk = 11113,
- VFNMADD132BF16Z128mkz = 11114,
- VFNMADD132BF16Z128r = 11115,
- VFNMADD132BF16Z128rk = 11116,
- VFNMADD132BF16Z128rkz = 11117,
- VFNMADD132BF16Z256m = 11118,
- VFNMADD132BF16Z256mb = 11119,
- VFNMADD132BF16Z256mbk = 11120,
- VFNMADD132BF16Z256mbkz = 11121,
- VFNMADD132BF16Z256mk = 11122,
- VFNMADD132BF16Z256mkz = 11123,
- VFNMADD132BF16Z256r = 11124,
- VFNMADD132BF16Z256rk = 11125,
- VFNMADD132BF16Z256rkz = 11126,
- VFNMADD132BF16Zm = 11127,
- VFNMADD132BF16Zmb = 11128,
- VFNMADD132BF16Zmbk = 11129,
- VFNMADD132BF16Zmbkz = 11130,
- VFNMADD132BF16Zmk = 11131,
- VFNMADD132BF16Zmkz = 11132,
- VFNMADD132BF16Zr = 11133,
- VFNMADD132BF16Zrk = 11134,
- VFNMADD132BF16Zrkz = 11135,
- VFNMADD132PDYm = 11136,
- VFNMADD132PDYr = 11137,
- VFNMADD132PDZ128m = 11138,
- VFNMADD132PDZ128mb = 11139,
- VFNMADD132PDZ128mbk = 11140,
- VFNMADD132PDZ128mbkz = 11141,
- VFNMADD132PDZ128mk = 11142,
- VFNMADD132PDZ128mkz = 11143,
- VFNMADD132PDZ128r = 11144,
- VFNMADD132PDZ128rk = 11145,
- VFNMADD132PDZ128rkz = 11146,
- VFNMADD132PDZ256m = 11147,
- VFNMADD132PDZ256mb = 11148,
- VFNMADD132PDZ256mbk = 11149,
- VFNMADD132PDZ256mbkz = 11150,
- VFNMADD132PDZ256mk = 11151,
- VFNMADD132PDZ256mkz = 11152,
- VFNMADD132PDZ256r = 11153,
- VFNMADD132PDZ256rk = 11154,
- VFNMADD132PDZ256rkz = 11155,
- VFNMADD132PDZm = 11156,
- VFNMADD132PDZmb = 11157,
- VFNMADD132PDZmbk = 11158,
- VFNMADD132PDZmbkz = 11159,
- VFNMADD132PDZmk = 11160,
- VFNMADD132PDZmkz = 11161,
- VFNMADD132PDZr = 11162,
- VFNMADD132PDZrb = 11163,
- VFNMADD132PDZrbk = 11164,
- VFNMADD132PDZrbkz = 11165,
- VFNMADD132PDZrk = 11166,
- VFNMADD132PDZrkz = 11167,
- VFNMADD132PDm = 11168,
- VFNMADD132PDr = 11169,
- VFNMADD132PHZ128m = 11170,
- VFNMADD132PHZ128mb = 11171,
- VFNMADD132PHZ128mbk = 11172,
- VFNMADD132PHZ128mbkz = 11173,
- VFNMADD132PHZ128mk = 11174,
- VFNMADD132PHZ128mkz = 11175,
- VFNMADD132PHZ128r = 11176,
- VFNMADD132PHZ128rk = 11177,
- VFNMADD132PHZ128rkz = 11178,
- VFNMADD132PHZ256m = 11179,
- VFNMADD132PHZ256mb = 11180,
- VFNMADD132PHZ256mbk = 11181,
- VFNMADD132PHZ256mbkz = 11182,
- VFNMADD132PHZ256mk = 11183,
- VFNMADD132PHZ256mkz = 11184,
- VFNMADD132PHZ256r = 11185,
- VFNMADD132PHZ256rk = 11186,
- VFNMADD132PHZ256rkz = 11187,
- VFNMADD132PHZm = 11188,
- VFNMADD132PHZmb = 11189,
- VFNMADD132PHZmbk = 11190,
- VFNMADD132PHZmbkz = 11191,
- VFNMADD132PHZmk = 11192,
- VFNMADD132PHZmkz = 11193,
- VFNMADD132PHZr = 11194,
- VFNMADD132PHZrb = 11195,
- VFNMADD132PHZrbk = 11196,
- VFNMADD132PHZrbkz = 11197,
- VFNMADD132PHZrk = 11198,
- VFNMADD132PHZrkz = 11199,
- VFNMADD132PSYm = 11200,
- VFNMADD132PSYr = 11201,
- VFNMADD132PSZ128m = 11202,
- VFNMADD132PSZ128mb = 11203,
- VFNMADD132PSZ128mbk = 11204,
- VFNMADD132PSZ128mbkz = 11205,
- VFNMADD132PSZ128mk = 11206,
- VFNMADD132PSZ128mkz = 11207,
- VFNMADD132PSZ128r = 11208,
- VFNMADD132PSZ128rk = 11209,
- VFNMADD132PSZ128rkz = 11210,
- VFNMADD132PSZ256m = 11211,
- VFNMADD132PSZ256mb = 11212,
- VFNMADD132PSZ256mbk = 11213,
- VFNMADD132PSZ256mbkz = 11214,
- VFNMADD132PSZ256mk = 11215,
- VFNMADD132PSZ256mkz = 11216,
- VFNMADD132PSZ256r = 11217,
- VFNMADD132PSZ256rk = 11218,
- VFNMADD132PSZ256rkz = 11219,
- VFNMADD132PSZm = 11220,
- VFNMADD132PSZmb = 11221,
- VFNMADD132PSZmbk = 11222,
- VFNMADD132PSZmbkz = 11223,
- VFNMADD132PSZmk = 11224,
- VFNMADD132PSZmkz = 11225,
- VFNMADD132PSZr = 11226,
- VFNMADD132PSZrb = 11227,
- VFNMADD132PSZrbk = 11228,
- VFNMADD132PSZrbkz = 11229,
- VFNMADD132PSZrk = 11230,
- VFNMADD132PSZrkz = 11231,
- VFNMADD132PSm = 11232,
- VFNMADD132PSr = 11233,
- VFNMADD132SDZm = 11234,
- VFNMADD132SDZm_Int = 11235,
- VFNMADD132SDZmk_Int = 11236,
- VFNMADD132SDZmkz_Int = 11237,
- VFNMADD132SDZr = 11238,
- VFNMADD132SDZr_Int = 11239,
- VFNMADD132SDZrb = 11240,
- VFNMADD132SDZrb_Int = 11241,
- VFNMADD132SDZrbk_Int = 11242,
- VFNMADD132SDZrbkz_Int = 11243,
- VFNMADD132SDZrk_Int = 11244,
- VFNMADD132SDZrkz_Int = 11245,
- VFNMADD132SDm = 11246,
- VFNMADD132SDm_Int = 11247,
- VFNMADD132SDr = 11248,
- VFNMADD132SDr_Int = 11249,
- VFNMADD132SHZm = 11250,
- VFNMADD132SHZm_Int = 11251,
- VFNMADD132SHZmk_Int = 11252,
- VFNMADD132SHZmkz_Int = 11253,
- VFNMADD132SHZr = 11254,
- VFNMADD132SHZr_Int = 11255,
- VFNMADD132SHZrb = 11256,
- VFNMADD132SHZrb_Int = 11257,
- VFNMADD132SHZrbk_Int = 11258,
- VFNMADD132SHZrbkz_Int = 11259,
- VFNMADD132SHZrk_Int = 11260,
- VFNMADD132SHZrkz_Int = 11261,
- VFNMADD132SSZm = 11262,
- VFNMADD132SSZm_Int = 11263,
- VFNMADD132SSZmk_Int = 11264,
- VFNMADD132SSZmkz_Int = 11265,
- VFNMADD132SSZr = 11266,
- VFNMADD132SSZr_Int = 11267,
- VFNMADD132SSZrb = 11268,
- VFNMADD132SSZrb_Int = 11269,
- VFNMADD132SSZrbk_Int = 11270,
- VFNMADD132SSZrbkz_Int = 11271,
- VFNMADD132SSZrk_Int = 11272,
- VFNMADD132SSZrkz_Int = 11273,
- VFNMADD132SSm = 11274,
- VFNMADD132SSm_Int = 11275,
- VFNMADD132SSr = 11276,
- VFNMADD132SSr_Int = 11277,
- VFNMADD213BF16Z128m = 11278,
- VFNMADD213BF16Z128mb = 11279,
- VFNMADD213BF16Z128mbk = 11280,
- VFNMADD213BF16Z128mbkz = 11281,
- VFNMADD213BF16Z128mk = 11282,
- VFNMADD213BF16Z128mkz = 11283,
- VFNMADD213BF16Z128r = 11284,
- VFNMADD213BF16Z128rk = 11285,
- VFNMADD213BF16Z128rkz = 11286,
- VFNMADD213BF16Z256m = 11287,
- VFNMADD213BF16Z256mb = 11288,
- VFNMADD213BF16Z256mbk = 11289,
- VFNMADD213BF16Z256mbkz = 11290,
- VFNMADD213BF16Z256mk = 11291,
- VFNMADD213BF16Z256mkz = 11292,
- VFNMADD213BF16Z256r = 11293,
- VFNMADD213BF16Z256rk = 11294,
- VFNMADD213BF16Z256rkz = 11295,
- VFNMADD213BF16Zm = 11296,
- VFNMADD213BF16Zmb = 11297,
- VFNMADD213BF16Zmbk = 11298,
- VFNMADD213BF16Zmbkz = 11299,
- VFNMADD213BF16Zmk = 11300,
- VFNMADD213BF16Zmkz = 11301,
- VFNMADD213BF16Zr = 11302,
- VFNMADD213BF16Zrk = 11303,
- VFNMADD213BF16Zrkz = 11304,
- VFNMADD213PDYm = 11305,
- VFNMADD213PDYr = 11306,
- VFNMADD213PDZ128m = 11307,
- VFNMADD213PDZ128mb = 11308,
- VFNMADD213PDZ128mbk = 11309,
- VFNMADD213PDZ128mbkz = 11310,
- VFNMADD213PDZ128mk = 11311,
- VFNMADD213PDZ128mkz = 11312,
- VFNMADD213PDZ128r = 11313,
- VFNMADD213PDZ128rk = 11314,
- VFNMADD213PDZ128rkz = 11315,
- VFNMADD213PDZ256m = 11316,
- VFNMADD213PDZ256mb = 11317,
- VFNMADD213PDZ256mbk = 11318,
- VFNMADD213PDZ256mbkz = 11319,
- VFNMADD213PDZ256mk = 11320,
- VFNMADD213PDZ256mkz = 11321,
- VFNMADD213PDZ256r = 11322,
- VFNMADD213PDZ256rk = 11323,
- VFNMADD213PDZ256rkz = 11324,
- VFNMADD213PDZm = 11325,
- VFNMADD213PDZmb = 11326,
- VFNMADD213PDZmbk = 11327,
- VFNMADD213PDZmbkz = 11328,
- VFNMADD213PDZmk = 11329,
- VFNMADD213PDZmkz = 11330,
- VFNMADD213PDZr = 11331,
- VFNMADD213PDZrb = 11332,
- VFNMADD213PDZrbk = 11333,
- VFNMADD213PDZrbkz = 11334,
- VFNMADD213PDZrk = 11335,
- VFNMADD213PDZrkz = 11336,
- VFNMADD213PDm = 11337,
- VFNMADD213PDr = 11338,
- VFNMADD213PHZ128m = 11339,
- VFNMADD213PHZ128mb = 11340,
- VFNMADD213PHZ128mbk = 11341,
- VFNMADD213PHZ128mbkz = 11342,
- VFNMADD213PHZ128mk = 11343,
- VFNMADD213PHZ128mkz = 11344,
- VFNMADD213PHZ128r = 11345,
- VFNMADD213PHZ128rk = 11346,
- VFNMADD213PHZ128rkz = 11347,
- VFNMADD213PHZ256m = 11348,
- VFNMADD213PHZ256mb = 11349,
- VFNMADD213PHZ256mbk = 11350,
- VFNMADD213PHZ256mbkz = 11351,
- VFNMADD213PHZ256mk = 11352,
- VFNMADD213PHZ256mkz = 11353,
- VFNMADD213PHZ256r = 11354,
- VFNMADD213PHZ256rk = 11355,
- VFNMADD213PHZ256rkz = 11356,
- VFNMADD213PHZm = 11357,
- VFNMADD213PHZmb = 11358,
- VFNMADD213PHZmbk = 11359,
- VFNMADD213PHZmbkz = 11360,
- VFNMADD213PHZmk = 11361,
- VFNMADD213PHZmkz = 11362,
- VFNMADD213PHZr = 11363,
- VFNMADD213PHZrb = 11364,
- VFNMADD213PHZrbk = 11365,
- VFNMADD213PHZrbkz = 11366,
- VFNMADD213PHZrk = 11367,
- VFNMADD213PHZrkz = 11368,
- VFNMADD213PSYm = 11369,
- VFNMADD213PSYr = 11370,
- VFNMADD213PSZ128m = 11371,
- VFNMADD213PSZ128mb = 11372,
- VFNMADD213PSZ128mbk = 11373,
- VFNMADD213PSZ128mbkz = 11374,
- VFNMADD213PSZ128mk = 11375,
- VFNMADD213PSZ128mkz = 11376,
- VFNMADD213PSZ128r = 11377,
- VFNMADD213PSZ128rk = 11378,
- VFNMADD213PSZ128rkz = 11379,
- VFNMADD213PSZ256m = 11380,
- VFNMADD213PSZ256mb = 11381,
- VFNMADD213PSZ256mbk = 11382,
- VFNMADD213PSZ256mbkz = 11383,
- VFNMADD213PSZ256mk = 11384,
- VFNMADD213PSZ256mkz = 11385,
- VFNMADD213PSZ256r = 11386,
- VFNMADD213PSZ256rk = 11387,
- VFNMADD213PSZ256rkz = 11388,
- VFNMADD213PSZm = 11389,
- VFNMADD213PSZmb = 11390,
- VFNMADD213PSZmbk = 11391,
- VFNMADD213PSZmbkz = 11392,
- VFNMADD213PSZmk = 11393,
- VFNMADD213PSZmkz = 11394,
- VFNMADD213PSZr = 11395,
- VFNMADD213PSZrb = 11396,
- VFNMADD213PSZrbk = 11397,
- VFNMADD213PSZrbkz = 11398,
- VFNMADD213PSZrk = 11399,
- VFNMADD213PSZrkz = 11400,
- VFNMADD213PSm = 11401,
- VFNMADD213PSr = 11402,
- VFNMADD213SDZm = 11403,
- VFNMADD213SDZm_Int = 11404,
- VFNMADD213SDZmk_Int = 11405,
- VFNMADD213SDZmkz_Int = 11406,
- VFNMADD213SDZr = 11407,
- VFNMADD213SDZr_Int = 11408,
- VFNMADD213SDZrb = 11409,
- VFNMADD213SDZrb_Int = 11410,
- VFNMADD213SDZrbk_Int = 11411,
- VFNMADD213SDZrbkz_Int = 11412,
- VFNMADD213SDZrk_Int = 11413,
- VFNMADD213SDZrkz_Int = 11414,
- VFNMADD213SDm = 11415,
- VFNMADD213SDm_Int = 11416,
- VFNMADD213SDr = 11417,
- VFNMADD213SDr_Int = 11418,
- VFNMADD213SHZm = 11419,
- VFNMADD213SHZm_Int = 11420,
- VFNMADD213SHZmk_Int = 11421,
- VFNMADD213SHZmkz_Int = 11422,
- VFNMADD213SHZr = 11423,
- VFNMADD213SHZr_Int = 11424,
- VFNMADD213SHZrb = 11425,
- VFNMADD213SHZrb_Int = 11426,
- VFNMADD213SHZrbk_Int = 11427,
- VFNMADD213SHZrbkz_Int = 11428,
- VFNMADD213SHZrk_Int = 11429,
- VFNMADD213SHZrkz_Int = 11430,
- VFNMADD213SSZm = 11431,
- VFNMADD213SSZm_Int = 11432,
- VFNMADD213SSZmk_Int = 11433,
- VFNMADD213SSZmkz_Int = 11434,
- VFNMADD213SSZr = 11435,
- VFNMADD213SSZr_Int = 11436,
- VFNMADD213SSZrb = 11437,
- VFNMADD213SSZrb_Int = 11438,
- VFNMADD213SSZrbk_Int = 11439,
- VFNMADD213SSZrbkz_Int = 11440,
- VFNMADD213SSZrk_Int = 11441,
- VFNMADD213SSZrkz_Int = 11442,
- VFNMADD213SSm = 11443,
- VFNMADD213SSm_Int = 11444,
- VFNMADD213SSr = 11445,
- VFNMADD213SSr_Int = 11446,
- VFNMADD231BF16Z128m = 11447,
- VFNMADD231BF16Z128mb = 11448,
- VFNMADD231BF16Z128mbk = 11449,
- VFNMADD231BF16Z128mbkz = 11450,
- VFNMADD231BF16Z128mk = 11451,
- VFNMADD231BF16Z128mkz = 11452,
- VFNMADD231BF16Z128r = 11453,
- VFNMADD231BF16Z128rk = 11454,
- VFNMADD231BF16Z128rkz = 11455,
- VFNMADD231BF16Z256m = 11456,
- VFNMADD231BF16Z256mb = 11457,
- VFNMADD231BF16Z256mbk = 11458,
- VFNMADD231BF16Z256mbkz = 11459,
- VFNMADD231BF16Z256mk = 11460,
- VFNMADD231BF16Z256mkz = 11461,
- VFNMADD231BF16Z256r = 11462,
- VFNMADD231BF16Z256rk = 11463,
- VFNMADD231BF16Z256rkz = 11464,
- VFNMADD231BF16Zm = 11465,
- VFNMADD231BF16Zmb = 11466,
- VFNMADD231BF16Zmbk = 11467,
- VFNMADD231BF16Zmbkz = 11468,
- VFNMADD231BF16Zmk = 11469,
- VFNMADD231BF16Zmkz = 11470,
- VFNMADD231BF16Zr = 11471,
- VFNMADD231BF16Zrk = 11472,
- VFNMADD231BF16Zrkz = 11473,
- VFNMADD231PDYm = 11474,
- VFNMADD231PDYr = 11475,
- VFNMADD231PDZ128m = 11476,
- VFNMADD231PDZ128mb = 11477,
- VFNMADD231PDZ128mbk = 11478,
- VFNMADD231PDZ128mbkz = 11479,
- VFNMADD231PDZ128mk = 11480,
- VFNMADD231PDZ128mkz = 11481,
- VFNMADD231PDZ128r = 11482,
- VFNMADD231PDZ128rk = 11483,
- VFNMADD231PDZ128rkz = 11484,
- VFNMADD231PDZ256m = 11485,
- VFNMADD231PDZ256mb = 11486,
- VFNMADD231PDZ256mbk = 11487,
- VFNMADD231PDZ256mbkz = 11488,
- VFNMADD231PDZ256mk = 11489,
- VFNMADD231PDZ256mkz = 11490,
- VFNMADD231PDZ256r = 11491,
- VFNMADD231PDZ256rk = 11492,
- VFNMADD231PDZ256rkz = 11493,
- VFNMADD231PDZm = 11494,
- VFNMADD231PDZmb = 11495,
- VFNMADD231PDZmbk = 11496,
- VFNMADD231PDZmbkz = 11497,
- VFNMADD231PDZmk = 11498,
- VFNMADD231PDZmkz = 11499,
- VFNMADD231PDZr = 11500,
- VFNMADD231PDZrb = 11501,
- VFNMADD231PDZrbk = 11502,
- VFNMADD231PDZrbkz = 11503,
- VFNMADD231PDZrk = 11504,
- VFNMADD231PDZrkz = 11505,
- VFNMADD231PDm = 11506,
- VFNMADD231PDr = 11507,
- VFNMADD231PHZ128m = 11508,
- VFNMADD231PHZ128mb = 11509,
- VFNMADD231PHZ128mbk = 11510,
- VFNMADD231PHZ128mbkz = 11511,
- VFNMADD231PHZ128mk = 11512,
- VFNMADD231PHZ128mkz = 11513,
- VFNMADD231PHZ128r = 11514,
- VFNMADD231PHZ128rk = 11515,
- VFNMADD231PHZ128rkz = 11516,
- VFNMADD231PHZ256m = 11517,
- VFNMADD231PHZ256mb = 11518,
- VFNMADD231PHZ256mbk = 11519,
- VFNMADD231PHZ256mbkz = 11520,
- VFNMADD231PHZ256mk = 11521,
- VFNMADD231PHZ256mkz = 11522,
- VFNMADD231PHZ256r = 11523,
- VFNMADD231PHZ256rk = 11524,
- VFNMADD231PHZ256rkz = 11525,
- VFNMADD231PHZm = 11526,
- VFNMADD231PHZmb = 11527,
- VFNMADD231PHZmbk = 11528,
- VFNMADD231PHZmbkz = 11529,
- VFNMADD231PHZmk = 11530,
- VFNMADD231PHZmkz = 11531,
- VFNMADD231PHZr = 11532,
- VFNMADD231PHZrb = 11533,
- VFNMADD231PHZrbk = 11534,
- VFNMADD231PHZrbkz = 11535,
- VFNMADD231PHZrk = 11536,
- VFNMADD231PHZrkz = 11537,
- VFNMADD231PSYm = 11538,
- VFNMADD231PSYr = 11539,
- VFNMADD231PSZ128m = 11540,
- VFNMADD231PSZ128mb = 11541,
- VFNMADD231PSZ128mbk = 11542,
- VFNMADD231PSZ128mbkz = 11543,
- VFNMADD231PSZ128mk = 11544,
- VFNMADD231PSZ128mkz = 11545,
- VFNMADD231PSZ128r = 11546,
- VFNMADD231PSZ128rk = 11547,
- VFNMADD231PSZ128rkz = 11548,
- VFNMADD231PSZ256m = 11549,
- VFNMADD231PSZ256mb = 11550,
- VFNMADD231PSZ256mbk = 11551,
- VFNMADD231PSZ256mbkz = 11552,
- VFNMADD231PSZ256mk = 11553,
- VFNMADD231PSZ256mkz = 11554,
- VFNMADD231PSZ256r = 11555,
- VFNMADD231PSZ256rk = 11556,
- VFNMADD231PSZ256rkz = 11557,
- VFNMADD231PSZm = 11558,
- VFNMADD231PSZmb = 11559,
- VFNMADD231PSZmbk = 11560,
- VFNMADD231PSZmbkz = 11561,
- VFNMADD231PSZmk = 11562,
- VFNMADD231PSZmkz = 11563,
- VFNMADD231PSZr = 11564,
- VFNMADD231PSZrb = 11565,
- VFNMADD231PSZrbk = 11566,
- VFNMADD231PSZrbkz = 11567,
- VFNMADD231PSZrk = 11568,
- VFNMADD231PSZrkz = 11569,
- VFNMADD231PSm = 11570,
- VFNMADD231PSr = 11571,
- VFNMADD231SDZm = 11572,
- VFNMADD231SDZm_Int = 11573,
- VFNMADD231SDZmk_Int = 11574,
- VFNMADD231SDZmkz_Int = 11575,
- VFNMADD231SDZr = 11576,
- VFNMADD231SDZr_Int = 11577,
- VFNMADD231SDZrb = 11578,
- VFNMADD231SDZrb_Int = 11579,
- VFNMADD231SDZrbk_Int = 11580,
- VFNMADD231SDZrbkz_Int = 11581,
- VFNMADD231SDZrk_Int = 11582,
- VFNMADD231SDZrkz_Int = 11583,
- VFNMADD231SDm = 11584,
- VFNMADD231SDm_Int = 11585,
- VFNMADD231SDr = 11586,
- VFNMADD231SDr_Int = 11587,
- VFNMADD231SHZm = 11588,
- VFNMADD231SHZm_Int = 11589,
- VFNMADD231SHZmk_Int = 11590,
- VFNMADD231SHZmkz_Int = 11591,
- VFNMADD231SHZr = 11592,
- VFNMADD231SHZr_Int = 11593,
- VFNMADD231SHZrb = 11594,
- VFNMADD231SHZrb_Int = 11595,
- VFNMADD231SHZrbk_Int = 11596,
- VFNMADD231SHZrbkz_Int = 11597,
- VFNMADD231SHZrk_Int = 11598,
- VFNMADD231SHZrkz_Int = 11599,
- VFNMADD231SSZm = 11600,
- VFNMADD231SSZm_Int = 11601,
- VFNMADD231SSZmk_Int = 11602,
- VFNMADD231SSZmkz_Int = 11603,
- VFNMADD231SSZr = 11604,
- VFNMADD231SSZr_Int = 11605,
- VFNMADD231SSZrb = 11606,
- VFNMADD231SSZrb_Int = 11607,
- VFNMADD231SSZrbk_Int = 11608,
- VFNMADD231SSZrbkz_Int = 11609,
- VFNMADD231SSZrk_Int = 11610,
- VFNMADD231SSZrkz_Int = 11611,
- VFNMADD231SSm = 11612,
- VFNMADD231SSm_Int = 11613,
- VFNMADD231SSr = 11614,
- VFNMADD231SSr_Int = 11615,
- VFNMADDPD4Ymr = 11616,
- VFNMADDPD4Yrm = 11617,
- VFNMADDPD4Yrr = 11618,
- VFNMADDPD4Yrr_REV = 11619,
- VFNMADDPD4mr = 11620,
- VFNMADDPD4rm = 11621,
- VFNMADDPD4rr = 11622,
- VFNMADDPD4rr_REV = 11623,
- VFNMADDPS4Ymr = 11624,
- VFNMADDPS4Yrm = 11625,
- VFNMADDPS4Yrr = 11626,
- VFNMADDPS4Yrr_REV = 11627,
- VFNMADDPS4mr = 11628,
- VFNMADDPS4rm = 11629,
- VFNMADDPS4rr = 11630,
- VFNMADDPS4rr_REV = 11631,
- VFNMADDSD4mr = 11632,
- VFNMADDSD4mr_Int = 11633,
- VFNMADDSD4rm = 11634,
- VFNMADDSD4rm_Int = 11635,
- VFNMADDSD4rr = 11636,
- VFNMADDSD4rr_Int = 11637,
- VFNMADDSD4rr_Int_REV = 11638,
- VFNMADDSD4rr_REV = 11639,
- VFNMADDSS4mr = 11640,
- VFNMADDSS4mr_Int = 11641,
- VFNMADDSS4rm = 11642,
- VFNMADDSS4rm_Int = 11643,
- VFNMADDSS4rr = 11644,
- VFNMADDSS4rr_Int = 11645,
- VFNMADDSS4rr_Int_REV = 11646,
- VFNMADDSS4rr_REV = 11647,
- VFNMSUB132BF16Z128m = 11648,
- VFNMSUB132BF16Z128mb = 11649,
- VFNMSUB132BF16Z128mbk = 11650,
- VFNMSUB132BF16Z128mbkz = 11651,
- VFNMSUB132BF16Z128mk = 11652,
- VFNMSUB132BF16Z128mkz = 11653,
- VFNMSUB132BF16Z128r = 11654,
- VFNMSUB132BF16Z128rk = 11655,
- VFNMSUB132BF16Z128rkz = 11656,
- VFNMSUB132BF16Z256m = 11657,
- VFNMSUB132BF16Z256mb = 11658,
- VFNMSUB132BF16Z256mbk = 11659,
- VFNMSUB132BF16Z256mbkz = 11660,
- VFNMSUB132BF16Z256mk = 11661,
- VFNMSUB132BF16Z256mkz = 11662,
- VFNMSUB132BF16Z256r = 11663,
- VFNMSUB132BF16Z256rk = 11664,
- VFNMSUB132BF16Z256rkz = 11665,
- VFNMSUB132BF16Zm = 11666,
- VFNMSUB132BF16Zmb = 11667,
- VFNMSUB132BF16Zmbk = 11668,
- VFNMSUB132BF16Zmbkz = 11669,
- VFNMSUB132BF16Zmk = 11670,
- VFNMSUB132BF16Zmkz = 11671,
- VFNMSUB132BF16Zr = 11672,
- VFNMSUB132BF16Zrk = 11673,
- VFNMSUB132BF16Zrkz = 11674,
- VFNMSUB132PDYm = 11675,
- VFNMSUB132PDYr = 11676,
- VFNMSUB132PDZ128m = 11677,
- VFNMSUB132PDZ128mb = 11678,
- VFNMSUB132PDZ128mbk = 11679,
- VFNMSUB132PDZ128mbkz = 11680,
- VFNMSUB132PDZ128mk = 11681,
- VFNMSUB132PDZ128mkz = 11682,
- VFNMSUB132PDZ128r = 11683,
- VFNMSUB132PDZ128rk = 11684,
- VFNMSUB132PDZ128rkz = 11685,
- VFNMSUB132PDZ256m = 11686,
- VFNMSUB132PDZ256mb = 11687,
- VFNMSUB132PDZ256mbk = 11688,
- VFNMSUB132PDZ256mbkz = 11689,
- VFNMSUB132PDZ256mk = 11690,
- VFNMSUB132PDZ256mkz = 11691,
- VFNMSUB132PDZ256r = 11692,
- VFNMSUB132PDZ256rk = 11693,
- VFNMSUB132PDZ256rkz = 11694,
- VFNMSUB132PDZm = 11695,
- VFNMSUB132PDZmb = 11696,
- VFNMSUB132PDZmbk = 11697,
- VFNMSUB132PDZmbkz = 11698,
- VFNMSUB132PDZmk = 11699,
- VFNMSUB132PDZmkz = 11700,
- VFNMSUB132PDZr = 11701,
- VFNMSUB132PDZrb = 11702,
- VFNMSUB132PDZrbk = 11703,
- VFNMSUB132PDZrbkz = 11704,
- VFNMSUB132PDZrk = 11705,
- VFNMSUB132PDZrkz = 11706,
- VFNMSUB132PDm = 11707,
- VFNMSUB132PDr = 11708,
- VFNMSUB132PHZ128m = 11709,
- VFNMSUB132PHZ128mb = 11710,
- VFNMSUB132PHZ128mbk = 11711,
- VFNMSUB132PHZ128mbkz = 11712,
- VFNMSUB132PHZ128mk = 11713,
- VFNMSUB132PHZ128mkz = 11714,
- VFNMSUB132PHZ128r = 11715,
- VFNMSUB132PHZ128rk = 11716,
- VFNMSUB132PHZ128rkz = 11717,
- VFNMSUB132PHZ256m = 11718,
- VFNMSUB132PHZ256mb = 11719,
- VFNMSUB132PHZ256mbk = 11720,
- VFNMSUB132PHZ256mbkz = 11721,
- VFNMSUB132PHZ256mk = 11722,
- VFNMSUB132PHZ256mkz = 11723,
- VFNMSUB132PHZ256r = 11724,
- VFNMSUB132PHZ256rk = 11725,
- VFNMSUB132PHZ256rkz = 11726,
- VFNMSUB132PHZm = 11727,
- VFNMSUB132PHZmb = 11728,
- VFNMSUB132PHZmbk = 11729,
- VFNMSUB132PHZmbkz = 11730,
- VFNMSUB132PHZmk = 11731,
- VFNMSUB132PHZmkz = 11732,
- VFNMSUB132PHZr = 11733,
- VFNMSUB132PHZrb = 11734,
- VFNMSUB132PHZrbk = 11735,
- VFNMSUB132PHZrbkz = 11736,
- VFNMSUB132PHZrk = 11737,
- VFNMSUB132PHZrkz = 11738,
- VFNMSUB132PSYm = 11739,
- VFNMSUB132PSYr = 11740,
- VFNMSUB132PSZ128m = 11741,
- VFNMSUB132PSZ128mb = 11742,
- VFNMSUB132PSZ128mbk = 11743,
- VFNMSUB132PSZ128mbkz = 11744,
- VFNMSUB132PSZ128mk = 11745,
- VFNMSUB132PSZ128mkz = 11746,
- VFNMSUB132PSZ128r = 11747,
- VFNMSUB132PSZ128rk = 11748,
- VFNMSUB132PSZ128rkz = 11749,
- VFNMSUB132PSZ256m = 11750,
- VFNMSUB132PSZ256mb = 11751,
- VFNMSUB132PSZ256mbk = 11752,
- VFNMSUB132PSZ256mbkz = 11753,
- VFNMSUB132PSZ256mk = 11754,
- VFNMSUB132PSZ256mkz = 11755,
- VFNMSUB132PSZ256r = 11756,
- VFNMSUB132PSZ256rk = 11757,
- VFNMSUB132PSZ256rkz = 11758,
- VFNMSUB132PSZm = 11759,
- VFNMSUB132PSZmb = 11760,
- VFNMSUB132PSZmbk = 11761,
- VFNMSUB132PSZmbkz = 11762,
- VFNMSUB132PSZmk = 11763,
- VFNMSUB132PSZmkz = 11764,
- VFNMSUB132PSZr = 11765,
- VFNMSUB132PSZrb = 11766,
- VFNMSUB132PSZrbk = 11767,
- VFNMSUB132PSZrbkz = 11768,
- VFNMSUB132PSZrk = 11769,
- VFNMSUB132PSZrkz = 11770,
- VFNMSUB132PSm = 11771,
- VFNMSUB132PSr = 11772,
- VFNMSUB132SDZm = 11773,
- VFNMSUB132SDZm_Int = 11774,
- VFNMSUB132SDZmk_Int = 11775,
- VFNMSUB132SDZmkz_Int = 11776,
- VFNMSUB132SDZr = 11777,
- VFNMSUB132SDZr_Int = 11778,
- VFNMSUB132SDZrb = 11779,
- VFNMSUB132SDZrb_Int = 11780,
- VFNMSUB132SDZrbk_Int = 11781,
- VFNMSUB132SDZrbkz_Int = 11782,
- VFNMSUB132SDZrk_Int = 11783,
- VFNMSUB132SDZrkz_Int = 11784,
- VFNMSUB132SDm = 11785,
- VFNMSUB132SDm_Int = 11786,
- VFNMSUB132SDr = 11787,
- VFNMSUB132SDr_Int = 11788,
- VFNMSUB132SHZm = 11789,
- VFNMSUB132SHZm_Int = 11790,
- VFNMSUB132SHZmk_Int = 11791,
- VFNMSUB132SHZmkz_Int = 11792,
- VFNMSUB132SHZr = 11793,
- VFNMSUB132SHZr_Int = 11794,
- VFNMSUB132SHZrb = 11795,
- VFNMSUB132SHZrb_Int = 11796,
- VFNMSUB132SHZrbk_Int = 11797,
- VFNMSUB132SHZrbkz_Int = 11798,
- VFNMSUB132SHZrk_Int = 11799,
- VFNMSUB132SHZrkz_Int = 11800,
- VFNMSUB132SSZm = 11801,
- VFNMSUB132SSZm_Int = 11802,
- VFNMSUB132SSZmk_Int = 11803,
- VFNMSUB132SSZmkz_Int = 11804,
- VFNMSUB132SSZr = 11805,
- VFNMSUB132SSZr_Int = 11806,
- VFNMSUB132SSZrb = 11807,
- VFNMSUB132SSZrb_Int = 11808,
- VFNMSUB132SSZrbk_Int = 11809,
- VFNMSUB132SSZrbkz_Int = 11810,
- VFNMSUB132SSZrk_Int = 11811,
- VFNMSUB132SSZrkz_Int = 11812,
- VFNMSUB132SSm = 11813,
- VFNMSUB132SSm_Int = 11814,
- VFNMSUB132SSr = 11815,
- VFNMSUB132SSr_Int = 11816,
- VFNMSUB213BF16Z128m = 11817,
- VFNMSUB213BF16Z128mb = 11818,
- VFNMSUB213BF16Z128mbk = 11819,
- VFNMSUB213BF16Z128mbkz = 11820,
- VFNMSUB213BF16Z128mk = 11821,
- VFNMSUB213BF16Z128mkz = 11822,
- VFNMSUB213BF16Z128r = 11823,
- VFNMSUB213BF16Z128rk = 11824,
- VFNMSUB213BF16Z128rkz = 11825,
- VFNMSUB213BF16Z256m = 11826,
- VFNMSUB213BF16Z256mb = 11827,
- VFNMSUB213BF16Z256mbk = 11828,
- VFNMSUB213BF16Z256mbkz = 11829,
- VFNMSUB213BF16Z256mk = 11830,
- VFNMSUB213BF16Z256mkz = 11831,
- VFNMSUB213BF16Z256r = 11832,
- VFNMSUB213BF16Z256rk = 11833,
- VFNMSUB213BF16Z256rkz = 11834,
- VFNMSUB213BF16Zm = 11835,
- VFNMSUB213BF16Zmb = 11836,
- VFNMSUB213BF16Zmbk = 11837,
- VFNMSUB213BF16Zmbkz = 11838,
- VFNMSUB213BF16Zmk = 11839,
- VFNMSUB213BF16Zmkz = 11840,
- VFNMSUB213BF16Zr = 11841,
- VFNMSUB213BF16Zrk = 11842,
- VFNMSUB213BF16Zrkz = 11843,
- VFNMSUB213PDYm = 11844,
- VFNMSUB213PDYr = 11845,
- VFNMSUB213PDZ128m = 11846,
- VFNMSUB213PDZ128mb = 11847,
- VFNMSUB213PDZ128mbk = 11848,
- VFNMSUB213PDZ128mbkz = 11849,
- VFNMSUB213PDZ128mk = 11850,
- VFNMSUB213PDZ128mkz = 11851,
- VFNMSUB213PDZ128r = 11852,
- VFNMSUB213PDZ128rk = 11853,
- VFNMSUB213PDZ128rkz = 11854,
- VFNMSUB213PDZ256m = 11855,
- VFNMSUB213PDZ256mb = 11856,
- VFNMSUB213PDZ256mbk = 11857,
- VFNMSUB213PDZ256mbkz = 11858,
- VFNMSUB213PDZ256mk = 11859,
- VFNMSUB213PDZ256mkz = 11860,
- VFNMSUB213PDZ256r = 11861,
- VFNMSUB213PDZ256rk = 11862,
- VFNMSUB213PDZ256rkz = 11863,
- VFNMSUB213PDZm = 11864,
- VFNMSUB213PDZmb = 11865,
- VFNMSUB213PDZmbk = 11866,
- VFNMSUB213PDZmbkz = 11867,
- VFNMSUB213PDZmk = 11868,
- VFNMSUB213PDZmkz = 11869,
- VFNMSUB213PDZr = 11870,
- VFNMSUB213PDZrb = 11871,
- VFNMSUB213PDZrbk = 11872,
- VFNMSUB213PDZrbkz = 11873,
- VFNMSUB213PDZrk = 11874,
- VFNMSUB213PDZrkz = 11875,
- VFNMSUB213PDm = 11876,
- VFNMSUB213PDr = 11877,
- VFNMSUB213PHZ128m = 11878,
- VFNMSUB213PHZ128mb = 11879,
- VFNMSUB213PHZ128mbk = 11880,
- VFNMSUB213PHZ128mbkz = 11881,
- VFNMSUB213PHZ128mk = 11882,
- VFNMSUB213PHZ128mkz = 11883,
- VFNMSUB213PHZ128r = 11884,
- VFNMSUB213PHZ128rk = 11885,
- VFNMSUB213PHZ128rkz = 11886,
- VFNMSUB213PHZ256m = 11887,
- VFNMSUB213PHZ256mb = 11888,
- VFNMSUB213PHZ256mbk = 11889,
- VFNMSUB213PHZ256mbkz = 11890,
- VFNMSUB213PHZ256mk = 11891,
- VFNMSUB213PHZ256mkz = 11892,
- VFNMSUB213PHZ256r = 11893,
- VFNMSUB213PHZ256rk = 11894,
- VFNMSUB213PHZ256rkz = 11895,
- VFNMSUB213PHZm = 11896,
- VFNMSUB213PHZmb = 11897,
- VFNMSUB213PHZmbk = 11898,
- VFNMSUB213PHZmbkz = 11899,
- VFNMSUB213PHZmk = 11900,
- VFNMSUB213PHZmkz = 11901,
- VFNMSUB213PHZr = 11902,
- VFNMSUB213PHZrb = 11903,
- VFNMSUB213PHZrbk = 11904,
- VFNMSUB213PHZrbkz = 11905,
- VFNMSUB213PHZrk = 11906,
- VFNMSUB213PHZrkz = 11907,
- VFNMSUB213PSYm = 11908,
- VFNMSUB213PSYr = 11909,
- VFNMSUB213PSZ128m = 11910,
- VFNMSUB213PSZ128mb = 11911,
- VFNMSUB213PSZ128mbk = 11912,
- VFNMSUB213PSZ128mbkz = 11913,
- VFNMSUB213PSZ128mk = 11914,
- VFNMSUB213PSZ128mkz = 11915,
- VFNMSUB213PSZ128r = 11916,
- VFNMSUB213PSZ128rk = 11917,
- VFNMSUB213PSZ128rkz = 11918,
- VFNMSUB213PSZ256m = 11919,
- VFNMSUB213PSZ256mb = 11920,
- VFNMSUB213PSZ256mbk = 11921,
- VFNMSUB213PSZ256mbkz = 11922,
- VFNMSUB213PSZ256mk = 11923,
- VFNMSUB213PSZ256mkz = 11924,
- VFNMSUB213PSZ256r = 11925,
- VFNMSUB213PSZ256rk = 11926,
- VFNMSUB213PSZ256rkz = 11927,
- VFNMSUB213PSZm = 11928,
- VFNMSUB213PSZmb = 11929,
- VFNMSUB213PSZmbk = 11930,
- VFNMSUB213PSZmbkz = 11931,
- VFNMSUB213PSZmk = 11932,
- VFNMSUB213PSZmkz = 11933,
- VFNMSUB213PSZr = 11934,
- VFNMSUB213PSZrb = 11935,
- VFNMSUB213PSZrbk = 11936,
- VFNMSUB213PSZrbkz = 11937,
- VFNMSUB213PSZrk = 11938,
- VFNMSUB213PSZrkz = 11939,
- VFNMSUB213PSm = 11940,
- VFNMSUB213PSr = 11941,
- VFNMSUB213SDZm = 11942,
- VFNMSUB213SDZm_Int = 11943,
- VFNMSUB213SDZmk_Int = 11944,
- VFNMSUB213SDZmkz_Int = 11945,
- VFNMSUB213SDZr = 11946,
- VFNMSUB213SDZr_Int = 11947,
- VFNMSUB213SDZrb = 11948,
- VFNMSUB213SDZrb_Int = 11949,
- VFNMSUB213SDZrbk_Int = 11950,
- VFNMSUB213SDZrbkz_Int = 11951,
- VFNMSUB213SDZrk_Int = 11952,
- VFNMSUB213SDZrkz_Int = 11953,
- VFNMSUB213SDm = 11954,
- VFNMSUB213SDm_Int = 11955,
- VFNMSUB213SDr = 11956,
- VFNMSUB213SDr_Int = 11957,
- VFNMSUB213SHZm = 11958,
- VFNMSUB213SHZm_Int = 11959,
- VFNMSUB213SHZmk_Int = 11960,
- VFNMSUB213SHZmkz_Int = 11961,
- VFNMSUB213SHZr = 11962,
- VFNMSUB213SHZr_Int = 11963,
- VFNMSUB213SHZrb = 11964,
- VFNMSUB213SHZrb_Int = 11965,
- VFNMSUB213SHZrbk_Int = 11966,
- VFNMSUB213SHZrbkz_Int = 11967,
- VFNMSUB213SHZrk_Int = 11968,
- VFNMSUB213SHZrkz_Int = 11969,
- VFNMSUB213SSZm = 11970,
- VFNMSUB213SSZm_Int = 11971,
- VFNMSUB213SSZmk_Int = 11972,
- VFNMSUB213SSZmkz_Int = 11973,
- VFNMSUB213SSZr = 11974,
- VFNMSUB213SSZr_Int = 11975,
- VFNMSUB213SSZrb = 11976,
- VFNMSUB213SSZrb_Int = 11977,
- VFNMSUB213SSZrbk_Int = 11978,
- VFNMSUB213SSZrbkz_Int = 11979,
- VFNMSUB213SSZrk_Int = 11980,
- VFNMSUB213SSZrkz_Int = 11981,
- VFNMSUB213SSm = 11982,
- VFNMSUB213SSm_Int = 11983,
- VFNMSUB213SSr = 11984,
- VFNMSUB213SSr_Int = 11985,
- VFNMSUB231BF16Z128m = 11986,
- VFNMSUB231BF16Z128mb = 11987,
- VFNMSUB231BF16Z128mbk = 11988,
- VFNMSUB231BF16Z128mbkz = 11989,
- VFNMSUB231BF16Z128mk = 11990,
- VFNMSUB231BF16Z128mkz = 11991,
- VFNMSUB231BF16Z128r = 11992,
- VFNMSUB231BF16Z128rk = 11993,
- VFNMSUB231BF16Z128rkz = 11994,
- VFNMSUB231BF16Z256m = 11995,
- VFNMSUB231BF16Z256mb = 11996,
- VFNMSUB231BF16Z256mbk = 11997,
- VFNMSUB231BF16Z256mbkz = 11998,
- VFNMSUB231BF16Z256mk = 11999,
- VFNMSUB231BF16Z256mkz = 12000,
- VFNMSUB231BF16Z256r = 12001,
- VFNMSUB231BF16Z256rk = 12002,
- VFNMSUB231BF16Z256rkz = 12003,
- VFNMSUB231BF16Zm = 12004,
- VFNMSUB231BF16Zmb = 12005,
- VFNMSUB231BF16Zmbk = 12006,
- VFNMSUB231BF16Zmbkz = 12007,
- VFNMSUB231BF16Zmk = 12008,
- VFNMSUB231BF16Zmkz = 12009,
- VFNMSUB231BF16Zr = 12010,
- VFNMSUB231BF16Zrk = 12011,
- VFNMSUB231BF16Zrkz = 12012,
- VFNMSUB231PDYm = 12013,
- VFNMSUB231PDYr = 12014,
- VFNMSUB231PDZ128m = 12015,
- VFNMSUB231PDZ128mb = 12016,
- VFNMSUB231PDZ128mbk = 12017,
- VFNMSUB231PDZ128mbkz = 12018,
- VFNMSUB231PDZ128mk = 12019,
- VFNMSUB231PDZ128mkz = 12020,
- VFNMSUB231PDZ128r = 12021,
- VFNMSUB231PDZ128rk = 12022,
- VFNMSUB231PDZ128rkz = 12023,
- VFNMSUB231PDZ256m = 12024,
- VFNMSUB231PDZ256mb = 12025,
- VFNMSUB231PDZ256mbk = 12026,
- VFNMSUB231PDZ256mbkz = 12027,
- VFNMSUB231PDZ256mk = 12028,
- VFNMSUB231PDZ256mkz = 12029,
- VFNMSUB231PDZ256r = 12030,
- VFNMSUB231PDZ256rk = 12031,
- VFNMSUB231PDZ256rkz = 12032,
- VFNMSUB231PDZm = 12033,
- VFNMSUB231PDZmb = 12034,
- VFNMSUB231PDZmbk = 12035,
- VFNMSUB231PDZmbkz = 12036,
- VFNMSUB231PDZmk = 12037,
- VFNMSUB231PDZmkz = 12038,
- VFNMSUB231PDZr = 12039,
- VFNMSUB231PDZrb = 12040,
- VFNMSUB231PDZrbk = 12041,
- VFNMSUB231PDZrbkz = 12042,
- VFNMSUB231PDZrk = 12043,
- VFNMSUB231PDZrkz = 12044,
- VFNMSUB231PDm = 12045,
- VFNMSUB231PDr = 12046,
- VFNMSUB231PHZ128m = 12047,
- VFNMSUB231PHZ128mb = 12048,
- VFNMSUB231PHZ128mbk = 12049,
- VFNMSUB231PHZ128mbkz = 12050,
- VFNMSUB231PHZ128mk = 12051,
- VFNMSUB231PHZ128mkz = 12052,
- VFNMSUB231PHZ128r = 12053,
- VFNMSUB231PHZ128rk = 12054,
- VFNMSUB231PHZ128rkz = 12055,
- VFNMSUB231PHZ256m = 12056,
- VFNMSUB231PHZ256mb = 12057,
- VFNMSUB231PHZ256mbk = 12058,
- VFNMSUB231PHZ256mbkz = 12059,
- VFNMSUB231PHZ256mk = 12060,
- VFNMSUB231PHZ256mkz = 12061,
- VFNMSUB231PHZ256r = 12062,
- VFNMSUB231PHZ256rk = 12063,
- VFNMSUB231PHZ256rkz = 12064,
- VFNMSUB231PHZm = 12065,
- VFNMSUB231PHZmb = 12066,
- VFNMSUB231PHZmbk = 12067,
- VFNMSUB231PHZmbkz = 12068,
- VFNMSUB231PHZmk = 12069,
- VFNMSUB231PHZmkz = 12070,
- VFNMSUB231PHZr = 12071,
- VFNMSUB231PHZrb = 12072,
- VFNMSUB231PHZrbk = 12073,
- VFNMSUB231PHZrbkz = 12074,
- VFNMSUB231PHZrk = 12075,
- VFNMSUB231PHZrkz = 12076,
- VFNMSUB231PSYm = 12077,
- VFNMSUB231PSYr = 12078,
- VFNMSUB231PSZ128m = 12079,
- VFNMSUB231PSZ128mb = 12080,
- VFNMSUB231PSZ128mbk = 12081,
- VFNMSUB231PSZ128mbkz = 12082,
- VFNMSUB231PSZ128mk = 12083,
- VFNMSUB231PSZ128mkz = 12084,
- VFNMSUB231PSZ128r = 12085,
- VFNMSUB231PSZ128rk = 12086,
- VFNMSUB231PSZ128rkz = 12087,
- VFNMSUB231PSZ256m = 12088,
- VFNMSUB231PSZ256mb = 12089,
- VFNMSUB231PSZ256mbk = 12090,
- VFNMSUB231PSZ256mbkz = 12091,
- VFNMSUB231PSZ256mk = 12092,
- VFNMSUB231PSZ256mkz = 12093,
- VFNMSUB231PSZ256r = 12094,
- VFNMSUB231PSZ256rk = 12095,
- VFNMSUB231PSZ256rkz = 12096,
- VFNMSUB231PSZm = 12097,
- VFNMSUB231PSZmb = 12098,
- VFNMSUB231PSZmbk = 12099,
- VFNMSUB231PSZmbkz = 12100,
- VFNMSUB231PSZmk = 12101,
- VFNMSUB231PSZmkz = 12102,
- VFNMSUB231PSZr = 12103,
- VFNMSUB231PSZrb = 12104,
- VFNMSUB231PSZrbk = 12105,
- VFNMSUB231PSZrbkz = 12106,
- VFNMSUB231PSZrk = 12107,
- VFNMSUB231PSZrkz = 12108,
- VFNMSUB231PSm = 12109,
- VFNMSUB231PSr = 12110,
- VFNMSUB231SDZm = 12111,
- VFNMSUB231SDZm_Int = 12112,
- VFNMSUB231SDZmk_Int = 12113,
- VFNMSUB231SDZmkz_Int = 12114,
- VFNMSUB231SDZr = 12115,
- VFNMSUB231SDZr_Int = 12116,
- VFNMSUB231SDZrb = 12117,
- VFNMSUB231SDZrb_Int = 12118,
- VFNMSUB231SDZrbk_Int = 12119,
- VFNMSUB231SDZrbkz_Int = 12120,
- VFNMSUB231SDZrk_Int = 12121,
- VFNMSUB231SDZrkz_Int = 12122,
- VFNMSUB231SDm = 12123,
- VFNMSUB231SDm_Int = 12124,
- VFNMSUB231SDr = 12125,
- VFNMSUB231SDr_Int = 12126,
- VFNMSUB231SHZm = 12127,
- VFNMSUB231SHZm_Int = 12128,
- VFNMSUB231SHZmk_Int = 12129,
- VFNMSUB231SHZmkz_Int = 12130,
- VFNMSUB231SHZr = 12131,
- VFNMSUB231SHZr_Int = 12132,
- VFNMSUB231SHZrb = 12133,
- VFNMSUB231SHZrb_Int = 12134,
- VFNMSUB231SHZrbk_Int = 12135,
- VFNMSUB231SHZrbkz_Int = 12136,
- VFNMSUB231SHZrk_Int = 12137,
- VFNMSUB231SHZrkz_Int = 12138,
- VFNMSUB231SSZm = 12139,
- VFNMSUB231SSZm_Int = 12140,
- VFNMSUB231SSZmk_Int = 12141,
- VFNMSUB231SSZmkz_Int = 12142,
- VFNMSUB231SSZr = 12143,
- VFNMSUB231SSZr_Int = 12144,
- VFNMSUB231SSZrb = 12145,
- VFNMSUB231SSZrb_Int = 12146,
- VFNMSUB231SSZrbk_Int = 12147,
- VFNMSUB231SSZrbkz_Int = 12148,
- VFNMSUB231SSZrk_Int = 12149,
- VFNMSUB231SSZrkz_Int = 12150,
- VFNMSUB231SSm = 12151,
- VFNMSUB231SSm_Int = 12152,
- VFNMSUB231SSr = 12153,
- VFNMSUB231SSr_Int = 12154,
- VFNMSUBPD4Ymr = 12155,
- VFNMSUBPD4Yrm = 12156,
- VFNMSUBPD4Yrr = 12157,
- VFNMSUBPD4Yrr_REV = 12158,
- VFNMSUBPD4mr = 12159,
- VFNMSUBPD4rm = 12160,
- VFNMSUBPD4rr = 12161,
- VFNMSUBPD4rr_REV = 12162,
- VFNMSUBPS4Ymr = 12163,
- VFNMSUBPS4Yrm = 12164,
- VFNMSUBPS4Yrr = 12165,
- VFNMSUBPS4Yrr_REV = 12166,
- VFNMSUBPS4mr = 12167,
- VFNMSUBPS4rm = 12168,
- VFNMSUBPS4rr = 12169,
- VFNMSUBPS4rr_REV = 12170,
- VFNMSUBSD4mr = 12171,
- VFNMSUBSD4mr_Int = 12172,
- VFNMSUBSD4rm = 12173,
- VFNMSUBSD4rm_Int = 12174,
- VFNMSUBSD4rr = 12175,
- VFNMSUBSD4rr_Int = 12176,
- VFNMSUBSD4rr_Int_REV = 12177,
- VFNMSUBSD4rr_REV = 12178,
- VFNMSUBSS4mr = 12179,
- VFNMSUBSS4mr_Int = 12180,
- VFNMSUBSS4rm = 12181,
- VFNMSUBSS4rm_Int = 12182,
- VFNMSUBSS4rr = 12183,
- VFNMSUBSS4rr_Int = 12184,
- VFNMSUBSS4rr_Int_REV = 12185,
- VFNMSUBSS4rr_REV = 12186,
- VFPCLASSBF16Z128mbi = 12187,
- VFPCLASSBF16Z128mbik = 12188,
- VFPCLASSBF16Z128mi = 12189,
- VFPCLASSBF16Z128mik = 12190,
- VFPCLASSBF16Z128ri = 12191,
- VFPCLASSBF16Z128rik = 12192,
- VFPCLASSBF16Z256mbi = 12193,
- VFPCLASSBF16Z256mbik = 12194,
- VFPCLASSBF16Z256mi = 12195,
- VFPCLASSBF16Z256mik = 12196,
- VFPCLASSBF16Z256ri = 12197,
- VFPCLASSBF16Z256rik = 12198,
- VFPCLASSBF16Zmbi = 12199,
- VFPCLASSBF16Zmbik = 12200,
- VFPCLASSBF16Zmi = 12201,
- VFPCLASSBF16Zmik = 12202,
- VFPCLASSBF16Zri = 12203,
- VFPCLASSBF16Zrik = 12204,
- VFPCLASSPDZ128mbi = 12205,
- VFPCLASSPDZ128mbik = 12206,
- VFPCLASSPDZ128mi = 12207,
- VFPCLASSPDZ128mik = 12208,
- VFPCLASSPDZ128ri = 12209,
- VFPCLASSPDZ128rik = 12210,
- VFPCLASSPDZ256mbi = 12211,
- VFPCLASSPDZ256mbik = 12212,
- VFPCLASSPDZ256mi = 12213,
- VFPCLASSPDZ256mik = 12214,
- VFPCLASSPDZ256ri = 12215,
- VFPCLASSPDZ256rik = 12216,
- VFPCLASSPDZmbi = 12217,
- VFPCLASSPDZmbik = 12218,
- VFPCLASSPDZmi = 12219,
- VFPCLASSPDZmik = 12220,
- VFPCLASSPDZri = 12221,
- VFPCLASSPDZrik = 12222,
- VFPCLASSPHZ128mbi = 12223,
- VFPCLASSPHZ128mbik = 12224,
- VFPCLASSPHZ128mi = 12225,
- VFPCLASSPHZ128mik = 12226,
- VFPCLASSPHZ128ri = 12227,
- VFPCLASSPHZ128rik = 12228,
- VFPCLASSPHZ256mbi = 12229,
- VFPCLASSPHZ256mbik = 12230,
- VFPCLASSPHZ256mi = 12231,
- VFPCLASSPHZ256mik = 12232,
- VFPCLASSPHZ256ri = 12233,
- VFPCLASSPHZ256rik = 12234,
- VFPCLASSPHZmbi = 12235,
- VFPCLASSPHZmbik = 12236,
- VFPCLASSPHZmi = 12237,
- VFPCLASSPHZmik = 12238,
- VFPCLASSPHZri = 12239,
- VFPCLASSPHZrik = 12240,
- VFPCLASSPSZ128mbi = 12241,
- VFPCLASSPSZ128mbik = 12242,
- VFPCLASSPSZ128mi = 12243,
- VFPCLASSPSZ128mik = 12244,
- VFPCLASSPSZ128ri = 12245,
- VFPCLASSPSZ128rik = 12246,
- VFPCLASSPSZ256mbi = 12247,
- VFPCLASSPSZ256mbik = 12248,
- VFPCLASSPSZ256mi = 12249,
- VFPCLASSPSZ256mik = 12250,
- VFPCLASSPSZ256ri = 12251,
- VFPCLASSPSZ256rik = 12252,
- VFPCLASSPSZmbi = 12253,
- VFPCLASSPSZmbik = 12254,
- VFPCLASSPSZmi = 12255,
- VFPCLASSPSZmik = 12256,
- VFPCLASSPSZri = 12257,
- VFPCLASSPSZrik = 12258,
- VFPCLASSSDZmi = 12259,
- VFPCLASSSDZmik = 12260,
- VFPCLASSSDZri = 12261,
- VFPCLASSSDZrik = 12262,
- VFPCLASSSHZmi = 12263,
- VFPCLASSSHZmik = 12264,
- VFPCLASSSHZri = 12265,
- VFPCLASSSHZrik = 12266,
- VFPCLASSSSZmi = 12267,
- VFPCLASSSSZmik = 12268,
- VFPCLASSSSZri = 12269,
- VFPCLASSSSZrik = 12270,
- VFRCZPDYrm = 12271,
- VFRCZPDYrr = 12272,
- VFRCZPDrm = 12273,
- VFRCZPDrr = 12274,
- VFRCZPSYrm = 12275,
- VFRCZPSYrr = 12276,
- VFRCZPSrm = 12277,
- VFRCZPSrr = 12278,
- VFRCZSDrm = 12279,
- VFRCZSDrr = 12280,
- VFRCZSSrm = 12281,
- VFRCZSSrr = 12282,
- VGATHERDPDYrm = 12283,
- VGATHERDPDZ128rm = 12284,
- VGATHERDPDZ256rm = 12285,
- VGATHERDPDZrm = 12286,
- VGATHERDPDrm = 12287,
- VGATHERDPSYrm = 12288,
- VGATHERDPSZ128rm = 12289,
- VGATHERDPSZ256rm = 12290,
- VGATHERDPSZrm = 12291,
- VGATHERDPSrm = 12292,
- VGATHERPF0DPDm = 12293,
- VGATHERPF0DPSm = 12294,
- VGATHERPF0QPDm = 12295,
- VGATHERPF0QPSm = 12296,
- VGATHERPF1DPDm = 12297,
- VGATHERPF1DPSm = 12298,
- VGATHERPF1QPDm = 12299,
- VGATHERPF1QPSm = 12300,
- VGATHERQPDYrm = 12301,
- VGATHERQPDZ128rm = 12302,
- VGATHERQPDZ256rm = 12303,
- VGATHERQPDZrm = 12304,
- VGATHERQPDrm = 12305,
- VGATHERQPSYrm = 12306,
- VGATHERQPSZ128rm = 12307,
- VGATHERQPSZ256rm = 12308,
- VGATHERQPSZrm = 12309,
- VGATHERQPSrm = 12310,
- VGETEXPBF16Z128m = 12311,
- VGETEXPBF16Z128mb = 12312,
- VGETEXPBF16Z128mbk = 12313,
- VGETEXPBF16Z128mbkz = 12314,
- VGETEXPBF16Z128mk = 12315,
- VGETEXPBF16Z128mkz = 12316,
- VGETEXPBF16Z128r = 12317,
- VGETEXPBF16Z128rk = 12318,
- VGETEXPBF16Z128rkz = 12319,
- VGETEXPBF16Z256m = 12320,
- VGETEXPBF16Z256mb = 12321,
- VGETEXPBF16Z256mbk = 12322,
- VGETEXPBF16Z256mbkz = 12323,
- VGETEXPBF16Z256mk = 12324,
- VGETEXPBF16Z256mkz = 12325,
- VGETEXPBF16Z256r = 12326,
- VGETEXPBF16Z256rk = 12327,
- VGETEXPBF16Z256rkz = 12328,
- VGETEXPBF16Zm = 12329,
- VGETEXPBF16Zmb = 12330,
- VGETEXPBF16Zmbk = 12331,
- VGETEXPBF16Zmbkz = 12332,
- VGETEXPBF16Zmk = 12333,
- VGETEXPBF16Zmkz = 12334,
- VGETEXPBF16Zr = 12335,
- VGETEXPBF16Zrk = 12336,
- VGETEXPBF16Zrkz = 12337,
- VGETEXPPDZ128m = 12338,
- VGETEXPPDZ128mb = 12339,
- VGETEXPPDZ128mbk = 12340,
- VGETEXPPDZ128mbkz = 12341,
- VGETEXPPDZ128mk = 12342,
- VGETEXPPDZ128mkz = 12343,
- VGETEXPPDZ128r = 12344,
- VGETEXPPDZ128rk = 12345,
- VGETEXPPDZ128rkz = 12346,
- VGETEXPPDZ256m = 12347,
- VGETEXPPDZ256mb = 12348,
- VGETEXPPDZ256mbk = 12349,
- VGETEXPPDZ256mbkz = 12350,
- VGETEXPPDZ256mk = 12351,
- VGETEXPPDZ256mkz = 12352,
- VGETEXPPDZ256r = 12353,
- VGETEXPPDZ256rk = 12354,
- VGETEXPPDZ256rkz = 12355,
- VGETEXPPDZm = 12356,
- VGETEXPPDZmb = 12357,
- VGETEXPPDZmbk = 12358,
- VGETEXPPDZmbkz = 12359,
- VGETEXPPDZmk = 12360,
- VGETEXPPDZmkz = 12361,
- VGETEXPPDZr = 12362,
- VGETEXPPDZrb = 12363,
- VGETEXPPDZrbk = 12364,
- VGETEXPPDZrbkz = 12365,
- VGETEXPPDZrk = 12366,
- VGETEXPPDZrkz = 12367,
- VGETEXPPHZ128m = 12368,
- VGETEXPPHZ128mb = 12369,
- VGETEXPPHZ128mbk = 12370,
- VGETEXPPHZ128mbkz = 12371,
- VGETEXPPHZ128mk = 12372,
- VGETEXPPHZ128mkz = 12373,
- VGETEXPPHZ128r = 12374,
- VGETEXPPHZ128rk = 12375,
- VGETEXPPHZ128rkz = 12376,
- VGETEXPPHZ256m = 12377,
- VGETEXPPHZ256mb = 12378,
- VGETEXPPHZ256mbk = 12379,
- VGETEXPPHZ256mbkz = 12380,
- VGETEXPPHZ256mk = 12381,
- VGETEXPPHZ256mkz = 12382,
- VGETEXPPHZ256r = 12383,
- VGETEXPPHZ256rk = 12384,
- VGETEXPPHZ256rkz = 12385,
- VGETEXPPHZm = 12386,
- VGETEXPPHZmb = 12387,
- VGETEXPPHZmbk = 12388,
- VGETEXPPHZmbkz = 12389,
- VGETEXPPHZmk = 12390,
- VGETEXPPHZmkz = 12391,
- VGETEXPPHZr = 12392,
- VGETEXPPHZrb = 12393,
- VGETEXPPHZrbk = 12394,
- VGETEXPPHZrbkz = 12395,
- VGETEXPPHZrk = 12396,
- VGETEXPPHZrkz = 12397,
- VGETEXPPSZ128m = 12398,
- VGETEXPPSZ128mb = 12399,
- VGETEXPPSZ128mbk = 12400,
- VGETEXPPSZ128mbkz = 12401,
- VGETEXPPSZ128mk = 12402,
- VGETEXPPSZ128mkz = 12403,
- VGETEXPPSZ128r = 12404,
- VGETEXPPSZ128rk = 12405,
- VGETEXPPSZ128rkz = 12406,
- VGETEXPPSZ256m = 12407,
- VGETEXPPSZ256mb = 12408,
- VGETEXPPSZ256mbk = 12409,
- VGETEXPPSZ256mbkz = 12410,
- VGETEXPPSZ256mk = 12411,
- VGETEXPPSZ256mkz = 12412,
- VGETEXPPSZ256r = 12413,
- VGETEXPPSZ256rk = 12414,
- VGETEXPPSZ256rkz = 12415,
- VGETEXPPSZm = 12416,
- VGETEXPPSZmb = 12417,
- VGETEXPPSZmbk = 12418,
- VGETEXPPSZmbkz = 12419,
- VGETEXPPSZmk = 12420,
- VGETEXPPSZmkz = 12421,
- VGETEXPPSZr = 12422,
- VGETEXPPSZrb = 12423,
- VGETEXPPSZrbk = 12424,
- VGETEXPPSZrbkz = 12425,
- VGETEXPPSZrk = 12426,
- VGETEXPPSZrkz = 12427,
- VGETEXPSDZm = 12428,
- VGETEXPSDZmk = 12429,
- VGETEXPSDZmkz = 12430,
- VGETEXPSDZr = 12431,
- VGETEXPSDZrb = 12432,
- VGETEXPSDZrbk = 12433,
- VGETEXPSDZrbkz = 12434,
- VGETEXPSDZrk = 12435,
- VGETEXPSDZrkz = 12436,
- VGETEXPSHZm = 12437,
- VGETEXPSHZmk = 12438,
- VGETEXPSHZmkz = 12439,
- VGETEXPSHZr = 12440,
- VGETEXPSHZrb = 12441,
- VGETEXPSHZrbk = 12442,
- VGETEXPSHZrbkz = 12443,
- VGETEXPSHZrk = 12444,
- VGETEXPSHZrkz = 12445,
- VGETEXPSSZm = 12446,
- VGETEXPSSZmk = 12447,
- VGETEXPSSZmkz = 12448,
- VGETEXPSSZr = 12449,
- VGETEXPSSZrb = 12450,
- VGETEXPSSZrbk = 12451,
- VGETEXPSSZrbkz = 12452,
- VGETEXPSSZrk = 12453,
- VGETEXPSSZrkz = 12454,
- VGETMANTBF16Z128rmbi = 12455,
- VGETMANTBF16Z128rmbik = 12456,
- VGETMANTBF16Z128rmbikz = 12457,
- VGETMANTBF16Z128rmi = 12458,
- VGETMANTBF16Z128rmik = 12459,
- VGETMANTBF16Z128rmikz = 12460,
- VGETMANTBF16Z128rri = 12461,
- VGETMANTBF16Z128rrik = 12462,
- VGETMANTBF16Z128rrikz = 12463,
- VGETMANTBF16Z256rmbi = 12464,
- VGETMANTBF16Z256rmbik = 12465,
- VGETMANTBF16Z256rmbikz = 12466,
- VGETMANTBF16Z256rmi = 12467,
- VGETMANTBF16Z256rmik = 12468,
- VGETMANTBF16Z256rmikz = 12469,
- VGETMANTBF16Z256rri = 12470,
- VGETMANTBF16Z256rrik = 12471,
- VGETMANTBF16Z256rrikz = 12472,
- VGETMANTBF16Zrmbi = 12473,
- VGETMANTBF16Zrmbik = 12474,
- VGETMANTBF16Zrmbikz = 12475,
- VGETMANTBF16Zrmi = 12476,
- VGETMANTBF16Zrmik = 12477,
- VGETMANTBF16Zrmikz = 12478,
- VGETMANTBF16Zrri = 12479,
- VGETMANTBF16Zrrik = 12480,
- VGETMANTBF16Zrrikz = 12481,
- VGETMANTPDZ128rmbi = 12482,
- VGETMANTPDZ128rmbik = 12483,
- VGETMANTPDZ128rmbikz = 12484,
- VGETMANTPDZ128rmi = 12485,
- VGETMANTPDZ128rmik = 12486,
- VGETMANTPDZ128rmikz = 12487,
- VGETMANTPDZ128rri = 12488,
- VGETMANTPDZ128rrik = 12489,
- VGETMANTPDZ128rrikz = 12490,
- VGETMANTPDZ256rmbi = 12491,
- VGETMANTPDZ256rmbik = 12492,
- VGETMANTPDZ256rmbikz = 12493,
- VGETMANTPDZ256rmi = 12494,
- VGETMANTPDZ256rmik = 12495,
- VGETMANTPDZ256rmikz = 12496,
- VGETMANTPDZ256rri = 12497,
- VGETMANTPDZ256rrik = 12498,
- VGETMANTPDZ256rrikz = 12499,
- VGETMANTPDZrmbi = 12500,
- VGETMANTPDZrmbik = 12501,
- VGETMANTPDZrmbikz = 12502,
- VGETMANTPDZrmi = 12503,
- VGETMANTPDZrmik = 12504,
- VGETMANTPDZrmikz = 12505,
- VGETMANTPDZrri = 12506,
- VGETMANTPDZrrib = 12507,
- VGETMANTPDZrribk = 12508,
- VGETMANTPDZrribkz = 12509,
- VGETMANTPDZrrik = 12510,
- VGETMANTPDZrrikz = 12511,
- VGETMANTPHZ128rmbi = 12512,
- VGETMANTPHZ128rmbik = 12513,
- VGETMANTPHZ128rmbikz = 12514,
- VGETMANTPHZ128rmi = 12515,
- VGETMANTPHZ128rmik = 12516,
- VGETMANTPHZ128rmikz = 12517,
- VGETMANTPHZ128rri = 12518,
- VGETMANTPHZ128rrik = 12519,
- VGETMANTPHZ128rrikz = 12520,
- VGETMANTPHZ256rmbi = 12521,
- VGETMANTPHZ256rmbik = 12522,
- VGETMANTPHZ256rmbikz = 12523,
- VGETMANTPHZ256rmi = 12524,
- VGETMANTPHZ256rmik = 12525,
- VGETMANTPHZ256rmikz = 12526,
- VGETMANTPHZ256rri = 12527,
- VGETMANTPHZ256rrik = 12528,
- VGETMANTPHZ256rrikz = 12529,
- VGETMANTPHZrmbi = 12530,
- VGETMANTPHZrmbik = 12531,
- VGETMANTPHZrmbikz = 12532,
- VGETMANTPHZrmi = 12533,
- VGETMANTPHZrmik = 12534,
- VGETMANTPHZrmikz = 12535,
- VGETMANTPHZrri = 12536,
- VGETMANTPHZrrib = 12537,
- VGETMANTPHZrribk = 12538,
- VGETMANTPHZrribkz = 12539,
- VGETMANTPHZrrik = 12540,
- VGETMANTPHZrrikz = 12541,
- VGETMANTPSZ128rmbi = 12542,
- VGETMANTPSZ128rmbik = 12543,
- VGETMANTPSZ128rmbikz = 12544,
- VGETMANTPSZ128rmi = 12545,
- VGETMANTPSZ128rmik = 12546,
- VGETMANTPSZ128rmikz = 12547,
- VGETMANTPSZ128rri = 12548,
- VGETMANTPSZ128rrik = 12549,
- VGETMANTPSZ128rrikz = 12550,
- VGETMANTPSZ256rmbi = 12551,
- VGETMANTPSZ256rmbik = 12552,
- VGETMANTPSZ256rmbikz = 12553,
- VGETMANTPSZ256rmi = 12554,
- VGETMANTPSZ256rmik = 12555,
- VGETMANTPSZ256rmikz = 12556,
- VGETMANTPSZ256rri = 12557,
- VGETMANTPSZ256rrik = 12558,
- VGETMANTPSZ256rrikz = 12559,
- VGETMANTPSZrmbi = 12560,
- VGETMANTPSZrmbik = 12561,
- VGETMANTPSZrmbikz = 12562,
- VGETMANTPSZrmi = 12563,
- VGETMANTPSZrmik = 12564,
- VGETMANTPSZrmikz = 12565,
- VGETMANTPSZrri = 12566,
- VGETMANTPSZrrib = 12567,
- VGETMANTPSZrribk = 12568,
- VGETMANTPSZrribkz = 12569,
- VGETMANTPSZrrik = 12570,
- VGETMANTPSZrrikz = 12571,
- VGETMANTSDZrmi = 12572,
- VGETMANTSDZrmik = 12573,
- VGETMANTSDZrmikz = 12574,
- VGETMANTSDZrri = 12575,
- VGETMANTSDZrrib = 12576,
- VGETMANTSDZrribk = 12577,
- VGETMANTSDZrribkz = 12578,
- VGETMANTSDZrrik = 12579,
- VGETMANTSDZrrikz = 12580,
- VGETMANTSHZrmi = 12581,
- VGETMANTSHZrmik = 12582,
- VGETMANTSHZrmikz = 12583,
- VGETMANTSHZrri = 12584,
- VGETMANTSHZrrib = 12585,
- VGETMANTSHZrribk = 12586,
- VGETMANTSHZrribkz = 12587,
- VGETMANTSHZrrik = 12588,
- VGETMANTSHZrrikz = 12589,
- VGETMANTSSZrmi = 12590,
- VGETMANTSSZrmik = 12591,
- VGETMANTSSZrmikz = 12592,
- VGETMANTSSZrri = 12593,
- VGETMANTSSZrrib = 12594,
- VGETMANTSSZrribk = 12595,
- VGETMANTSSZrribkz = 12596,
- VGETMANTSSZrrik = 12597,
- VGETMANTSSZrrikz = 12598,
- VGF2P8AFFINEINVQBYrmi = 12599,
- VGF2P8AFFINEINVQBYrri = 12600,
- VGF2P8AFFINEINVQBZ128rmbi = 12601,
- VGF2P8AFFINEINVQBZ128rmbik = 12602,
- VGF2P8AFFINEINVQBZ128rmbikz = 12603,
- VGF2P8AFFINEINVQBZ128rmi = 12604,
- VGF2P8AFFINEINVQBZ128rmik = 12605,
- VGF2P8AFFINEINVQBZ128rmikz = 12606,
- VGF2P8AFFINEINVQBZ128rri = 12607,
- VGF2P8AFFINEINVQBZ128rrik = 12608,
- VGF2P8AFFINEINVQBZ128rrikz = 12609,
- VGF2P8AFFINEINVQBZ256rmbi = 12610,
- VGF2P8AFFINEINVQBZ256rmbik = 12611,
- VGF2P8AFFINEINVQBZ256rmbikz = 12612,
- VGF2P8AFFINEINVQBZ256rmi = 12613,
- VGF2P8AFFINEINVQBZ256rmik = 12614,
- VGF2P8AFFINEINVQBZ256rmikz = 12615,
- VGF2P8AFFINEINVQBZ256rri = 12616,
- VGF2P8AFFINEINVQBZ256rrik = 12617,
- VGF2P8AFFINEINVQBZ256rrikz = 12618,
- VGF2P8AFFINEINVQBZrmbi = 12619,
- VGF2P8AFFINEINVQBZrmbik = 12620,
- VGF2P8AFFINEINVQBZrmbikz = 12621,
- VGF2P8AFFINEINVQBZrmi = 12622,
- VGF2P8AFFINEINVQBZrmik = 12623,
- VGF2P8AFFINEINVQBZrmikz = 12624,
- VGF2P8AFFINEINVQBZrri = 12625,
- VGF2P8AFFINEINVQBZrrik = 12626,
- VGF2P8AFFINEINVQBZrrikz = 12627,
- VGF2P8AFFINEINVQBrmi = 12628,
- VGF2P8AFFINEINVQBrri = 12629,
- VGF2P8AFFINEQBYrmi = 12630,
- VGF2P8AFFINEQBYrri = 12631,
- VGF2P8AFFINEQBZ128rmbi = 12632,
- VGF2P8AFFINEQBZ128rmbik = 12633,
- VGF2P8AFFINEQBZ128rmbikz = 12634,
- VGF2P8AFFINEQBZ128rmi = 12635,
- VGF2P8AFFINEQBZ128rmik = 12636,
- VGF2P8AFFINEQBZ128rmikz = 12637,
- VGF2P8AFFINEQBZ128rri = 12638,
- VGF2P8AFFINEQBZ128rrik = 12639,
- VGF2P8AFFINEQBZ128rrikz = 12640,
- VGF2P8AFFINEQBZ256rmbi = 12641,
- VGF2P8AFFINEQBZ256rmbik = 12642,
- VGF2P8AFFINEQBZ256rmbikz = 12643,
- VGF2P8AFFINEQBZ256rmi = 12644,
- VGF2P8AFFINEQBZ256rmik = 12645,
- VGF2P8AFFINEQBZ256rmikz = 12646,
- VGF2P8AFFINEQBZ256rri = 12647,
- VGF2P8AFFINEQBZ256rrik = 12648,
- VGF2P8AFFINEQBZ256rrikz = 12649,
- VGF2P8AFFINEQBZrmbi = 12650,
- VGF2P8AFFINEQBZrmbik = 12651,
- VGF2P8AFFINEQBZrmbikz = 12652,
- VGF2P8AFFINEQBZrmi = 12653,
- VGF2P8AFFINEQBZrmik = 12654,
- VGF2P8AFFINEQBZrmikz = 12655,
- VGF2P8AFFINEQBZrri = 12656,
- VGF2P8AFFINEQBZrrik = 12657,
- VGF2P8AFFINEQBZrrikz = 12658,
- VGF2P8AFFINEQBrmi = 12659,
- VGF2P8AFFINEQBrri = 12660,
- VGF2P8MULBYrm = 12661,
- VGF2P8MULBYrr = 12662,
- VGF2P8MULBZ128rm = 12663,
- VGF2P8MULBZ128rmk = 12664,
- VGF2P8MULBZ128rmkz = 12665,
- VGF2P8MULBZ128rr = 12666,
- VGF2P8MULBZ128rrk = 12667,
- VGF2P8MULBZ128rrkz = 12668,
- VGF2P8MULBZ256rm = 12669,
- VGF2P8MULBZ256rmk = 12670,
- VGF2P8MULBZ256rmkz = 12671,
- VGF2P8MULBZ256rr = 12672,
- VGF2P8MULBZ256rrk = 12673,
- VGF2P8MULBZ256rrkz = 12674,
- VGF2P8MULBZrm = 12675,
- VGF2P8MULBZrmk = 12676,
- VGF2P8MULBZrmkz = 12677,
- VGF2P8MULBZrr = 12678,
- VGF2P8MULBZrrk = 12679,
- VGF2P8MULBZrrkz = 12680,
- VGF2P8MULBrm = 12681,
- VGF2P8MULBrr = 12682,
- VHADDPDYrm = 12683,
- VHADDPDYrr = 12684,
- VHADDPDrm = 12685,
- VHADDPDrr = 12686,
- VHADDPSYrm = 12687,
- VHADDPSYrr = 12688,
- VHADDPSrm = 12689,
- VHADDPSrr = 12690,
- VHSUBPDYrm = 12691,
- VHSUBPDYrr = 12692,
- VHSUBPDrm = 12693,
- VHSUBPDrr = 12694,
- VHSUBPSYrm = 12695,
- VHSUBPSYrr = 12696,
- VHSUBPSrm = 12697,
- VHSUBPSrr = 12698,
- VINSERTF128rmi = 12699,
- VINSERTF128rri = 12700,
- VINSERTF32X4Z256rmi = 12701,
- VINSERTF32X4Z256rmik = 12702,
- VINSERTF32X4Z256rmikz = 12703,
- VINSERTF32X4Z256rri = 12704,
- VINSERTF32X4Z256rrik = 12705,
- VINSERTF32X4Z256rrikz = 12706,
- VINSERTF32X4Zrmi = 12707,
- VINSERTF32X4Zrmik = 12708,
- VINSERTF32X4Zrmikz = 12709,
- VINSERTF32X4Zrri = 12710,
- VINSERTF32X4Zrrik = 12711,
- VINSERTF32X4Zrrikz = 12712,
- VINSERTF32X8Zrmi = 12713,
- VINSERTF32X8Zrmik = 12714,
- VINSERTF32X8Zrmikz = 12715,
- VINSERTF32X8Zrri = 12716,
- VINSERTF32X8Zrrik = 12717,
- VINSERTF32X8Zrrikz = 12718,
- VINSERTF64X2Z256rmi = 12719,
- VINSERTF64X2Z256rmik = 12720,
- VINSERTF64X2Z256rmikz = 12721,
- VINSERTF64X2Z256rri = 12722,
- VINSERTF64X2Z256rrik = 12723,
- VINSERTF64X2Z256rrikz = 12724,
- VINSERTF64X2Zrmi = 12725,
- VINSERTF64X2Zrmik = 12726,
- VINSERTF64X2Zrmikz = 12727,
- VINSERTF64X2Zrri = 12728,
- VINSERTF64X2Zrrik = 12729,
- VINSERTF64X2Zrrikz = 12730,
- VINSERTF64X4Zrmi = 12731,
- VINSERTF64X4Zrmik = 12732,
- VINSERTF64X4Zrmikz = 12733,
- VINSERTF64X4Zrri = 12734,
- VINSERTF64X4Zrrik = 12735,
- VINSERTF64X4Zrrikz = 12736,
- VINSERTI128rmi = 12737,
- VINSERTI128rri = 12738,
- VINSERTI32X4Z256rmi = 12739,
- VINSERTI32X4Z256rmik = 12740,
- VINSERTI32X4Z256rmikz = 12741,
- VINSERTI32X4Z256rri = 12742,
- VINSERTI32X4Z256rrik = 12743,
- VINSERTI32X4Z256rrikz = 12744,
- VINSERTI32X4Zrmi = 12745,
- VINSERTI32X4Zrmik = 12746,
- VINSERTI32X4Zrmikz = 12747,
- VINSERTI32X4Zrri = 12748,
- VINSERTI32X4Zrrik = 12749,
- VINSERTI32X4Zrrikz = 12750,
- VINSERTI32X8Zrmi = 12751,
- VINSERTI32X8Zrmik = 12752,
- VINSERTI32X8Zrmikz = 12753,
- VINSERTI32X8Zrri = 12754,
- VINSERTI32X8Zrrik = 12755,
- VINSERTI32X8Zrrikz = 12756,
- VINSERTI64X2Z256rmi = 12757,
- VINSERTI64X2Z256rmik = 12758,
- VINSERTI64X2Z256rmikz = 12759,
- VINSERTI64X2Z256rri = 12760,
- VINSERTI64X2Z256rrik = 12761,
- VINSERTI64X2Z256rrikz = 12762,
- VINSERTI64X2Zrmi = 12763,
- VINSERTI64X2Zrmik = 12764,
- VINSERTI64X2Zrmikz = 12765,
- VINSERTI64X2Zrri = 12766,
- VINSERTI64X2Zrrik = 12767,
- VINSERTI64X2Zrrikz = 12768,
- VINSERTI64X4Zrmi = 12769,
- VINSERTI64X4Zrmik = 12770,
- VINSERTI64X4Zrmikz = 12771,
- VINSERTI64X4Zrri = 12772,
- VINSERTI64X4Zrrik = 12773,
- VINSERTI64X4Zrrikz = 12774,
- VINSERTPSZrmi = 12775,
- VINSERTPSZrri = 12776,
- VINSERTPSrmi = 12777,
- VINSERTPSrri = 12778,
- VLDDQUYrm = 12779,
- VLDDQUrm = 12780,
- VLDMXCSR = 12781,
- VMASKMOVDQU = 12782,
- VMASKMOVDQU64 = 12783,
- VMASKMOVPDYmr = 12784,
- VMASKMOVPDYrm = 12785,
- VMASKMOVPDmr = 12786,
- VMASKMOVPDrm = 12787,
- VMASKMOVPSYmr = 12788,
- VMASKMOVPSYrm = 12789,
- VMASKMOVPSmr = 12790,
- VMASKMOVPSrm = 12791,
- VMAXBF16Z128rm = 12792,
- VMAXBF16Z128rmb = 12793,
- VMAXBF16Z128rmbk = 12794,
- VMAXBF16Z128rmbkz = 12795,
- VMAXBF16Z128rmk = 12796,
- VMAXBF16Z128rmkz = 12797,
- VMAXBF16Z128rr = 12798,
- VMAXBF16Z128rrk = 12799,
- VMAXBF16Z128rrkz = 12800,
- VMAXBF16Z256rm = 12801,
- VMAXBF16Z256rmb = 12802,
- VMAXBF16Z256rmbk = 12803,
- VMAXBF16Z256rmbkz = 12804,
- VMAXBF16Z256rmk = 12805,
- VMAXBF16Z256rmkz = 12806,
- VMAXBF16Z256rr = 12807,
- VMAXBF16Z256rrk = 12808,
- VMAXBF16Z256rrkz = 12809,
- VMAXBF16Zrm = 12810,
- VMAXBF16Zrmb = 12811,
- VMAXBF16Zrmbk = 12812,
- VMAXBF16Zrmbkz = 12813,
- VMAXBF16Zrmk = 12814,
- VMAXBF16Zrmkz = 12815,
- VMAXBF16Zrr = 12816,
- VMAXBF16Zrrk = 12817,
- VMAXBF16Zrrkz = 12818,
- VMAXCPDYrm = 12819,
- VMAXCPDYrr = 12820,
- VMAXCPDZ128rm = 12821,
- VMAXCPDZ128rmb = 12822,
- VMAXCPDZ128rmbk = 12823,
- VMAXCPDZ128rmbkz = 12824,
- VMAXCPDZ128rmk = 12825,
- VMAXCPDZ128rmkz = 12826,
- VMAXCPDZ128rr = 12827,
- VMAXCPDZ128rrk = 12828,
- VMAXCPDZ128rrkz = 12829,
- VMAXCPDZ256rm = 12830,
- VMAXCPDZ256rmb = 12831,
- VMAXCPDZ256rmbk = 12832,
- VMAXCPDZ256rmbkz = 12833,
- VMAXCPDZ256rmk = 12834,
- VMAXCPDZ256rmkz = 12835,
- VMAXCPDZ256rr = 12836,
- VMAXCPDZ256rrk = 12837,
- VMAXCPDZ256rrkz = 12838,
- VMAXCPDZrm = 12839,
- VMAXCPDZrmb = 12840,
- VMAXCPDZrmbk = 12841,
- VMAXCPDZrmbkz = 12842,
- VMAXCPDZrmk = 12843,
- VMAXCPDZrmkz = 12844,
- VMAXCPDZrr = 12845,
- VMAXCPDZrrk = 12846,
- VMAXCPDZrrkz = 12847,
- VMAXCPDrm = 12848,
- VMAXCPDrr = 12849,
- VMAXCPHZ128rm = 12850,
- VMAXCPHZ128rmb = 12851,
- VMAXCPHZ128rmbk = 12852,
- VMAXCPHZ128rmbkz = 12853,
- VMAXCPHZ128rmk = 12854,
- VMAXCPHZ128rmkz = 12855,
- VMAXCPHZ128rr = 12856,
- VMAXCPHZ128rrk = 12857,
- VMAXCPHZ128rrkz = 12858,
- VMAXCPHZ256rm = 12859,
- VMAXCPHZ256rmb = 12860,
- VMAXCPHZ256rmbk = 12861,
- VMAXCPHZ256rmbkz = 12862,
- VMAXCPHZ256rmk = 12863,
- VMAXCPHZ256rmkz = 12864,
- VMAXCPHZ256rr = 12865,
- VMAXCPHZ256rrk = 12866,
- VMAXCPHZ256rrkz = 12867,
- VMAXCPHZrm = 12868,
- VMAXCPHZrmb = 12869,
- VMAXCPHZrmbk = 12870,
- VMAXCPHZrmbkz = 12871,
- VMAXCPHZrmk = 12872,
- VMAXCPHZrmkz = 12873,
- VMAXCPHZrr = 12874,
- VMAXCPHZrrk = 12875,
- VMAXCPHZrrkz = 12876,
- VMAXCPSYrm = 12877,
- VMAXCPSYrr = 12878,
- VMAXCPSZ128rm = 12879,
- VMAXCPSZ128rmb = 12880,
- VMAXCPSZ128rmbk = 12881,
- VMAXCPSZ128rmbkz = 12882,
- VMAXCPSZ128rmk = 12883,
- VMAXCPSZ128rmkz = 12884,
- VMAXCPSZ128rr = 12885,
- VMAXCPSZ128rrk = 12886,
- VMAXCPSZ128rrkz = 12887,
- VMAXCPSZ256rm = 12888,
- VMAXCPSZ256rmb = 12889,
- VMAXCPSZ256rmbk = 12890,
- VMAXCPSZ256rmbkz = 12891,
- VMAXCPSZ256rmk = 12892,
- VMAXCPSZ256rmkz = 12893,
- VMAXCPSZ256rr = 12894,
- VMAXCPSZ256rrk = 12895,
- VMAXCPSZ256rrkz = 12896,
- VMAXCPSZrm = 12897,
- VMAXCPSZrmb = 12898,
- VMAXCPSZrmbk = 12899,
- VMAXCPSZrmbkz = 12900,
- VMAXCPSZrmk = 12901,
- VMAXCPSZrmkz = 12902,
- VMAXCPSZrr = 12903,
- VMAXCPSZrrk = 12904,
- VMAXCPSZrrkz = 12905,
- VMAXCPSrm = 12906,
- VMAXCPSrr = 12907,
- VMAXCSDZrm = 12908,
- VMAXCSDZrr = 12909,
- VMAXCSDrm = 12910,
- VMAXCSDrr = 12911,
- VMAXCSHZrm = 12912,
- VMAXCSHZrr = 12913,
- VMAXCSSZrm = 12914,
- VMAXCSSZrr = 12915,
- VMAXCSSrm = 12916,
- VMAXCSSrr = 12917,
- VMAXPDYrm = 12918,
- VMAXPDYrr = 12919,
- VMAXPDZ128rm = 12920,
- VMAXPDZ128rmb = 12921,
- VMAXPDZ128rmbk = 12922,
- VMAXPDZ128rmbkz = 12923,
- VMAXPDZ128rmk = 12924,
- VMAXPDZ128rmkz = 12925,
- VMAXPDZ128rr = 12926,
- VMAXPDZ128rrk = 12927,
- VMAXPDZ128rrkz = 12928,
- VMAXPDZ256rm = 12929,
- VMAXPDZ256rmb = 12930,
- VMAXPDZ256rmbk = 12931,
- VMAXPDZ256rmbkz = 12932,
- VMAXPDZ256rmk = 12933,
- VMAXPDZ256rmkz = 12934,
- VMAXPDZ256rr = 12935,
- VMAXPDZ256rrk = 12936,
- VMAXPDZ256rrkz = 12937,
- VMAXPDZrm = 12938,
- VMAXPDZrmb = 12939,
- VMAXPDZrmbk = 12940,
- VMAXPDZrmbkz = 12941,
- VMAXPDZrmk = 12942,
- VMAXPDZrmkz = 12943,
- VMAXPDZrr = 12944,
- VMAXPDZrrb = 12945,
- VMAXPDZrrbk = 12946,
- VMAXPDZrrbkz = 12947,
- VMAXPDZrrk = 12948,
- VMAXPDZrrkz = 12949,
- VMAXPDrm = 12950,
- VMAXPDrr = 12951,
- VMAXPHZ128rm = 12952,
- VMAXPHZ128rmb = 12953,
- VMAXPHZ128rmbk = 12954,
- VMAXPHZ128rmbkz = 12955,
- VMAXPHZ128rmk = 12956,
- VMAXPHZ128rmkz = 12957,
- VMAXPHZ128rr = 12958,
- VMAXPHZ128rrk = 12959,
- VMAXPHZ128rrkz = 12960,
- VMAXPHZ256rm = 12961,
- VMAXPHZ256rmb = 12962,
- VMAXPHZ256rmbk = 12963,
- VMAXPHZ256rmbkz = 12964,
- VMAXPHZ256rmk = 12965,
- VMAXPHZ256rmkz = 12966,
- VMAXPHZ256rr = 12967,
- VMAXPHZ256rrk = 12968,
- VMAXPHZ256rrkz = 12969,
- VMAXPHZrm = 12970,
- VMAXPHZrmb = 12971,
- VMAXPHZrmbk = 12972,
- VMAXPHZrmbkz = 12973,
- VMAXPHZrmk = 12974,
- VMAXPHZrmkz = 12975,
- VMAXPHZrr = 12976,
- VMAXPHZrrb = 12977,
- VMAXPHZrrbk = 12978,
- VMAXPHZrrbkz = 12979,
- VMAXPHZrrk = 12980,
- VMAXPHZrrkz = 12981,
- VMAXPSYrm = 12982,
- VMAXPSYrr = 12983,
- VMAXPSZ128rm = 12984,
- VMAXPSZ128rmb = 12985,
- VMAXPSZ128rmbk = 12986,
- VMAXPSZ128rmbkz = 12987,
- VMAXPSZ128rmk = 12988,
- VMAXPSZ128rmkz = 12989,
- VMAXPSZ128rr = 12990,
- VMAXPSZ128rrk = 12991,
- VMAXPSZ128rrkz = 12992,
- VMAXPSZ256rm = 12993,
- VMAXPSZ256rmb = 12994,
- VMAXPSZ256rmbk = 12995,
- VMAXPSZ256rmbkz = 12996,
- VMAXPSZ256rmk = 12997,
- VMAXPSZ256rmkz = 12998,
- VMAXPSZ256rr = 12999,
- VMAXPSZ256rrk = 13000,
- VMAXPSZ256rrkz = 13001,
- VMAXPSZrm = 13002,
- VMAXPSZrmb = 13003,
- VMAXPSZrmbk = 13004,
- VMAXPSZrmbkz = 13005,
- VMAXPSZrmk = 13006,
- VMAXPSZrmkz = 13007,
- VMAXPSZrr = 13008,
- VMAXPSZrrb = 13009,
- VMAXPSZrrbk = 13010,
- VMAXPSZrrbkz = 13011,
- VMAXPSZrrk = 13012,
- VMAXPSZrrkz = 13013,
- VMAXPSrm = 13014,
- VMAXPSrr = 13015,
- VMAXSDZrm = 13016,
- VMAXSDZrm_Int = 13017,
- VMAXSDZrmk_Int = 13018,
- VMAXSDZrmkz_Int = 13019,
- VMAXSDZrr = 13020,
- VMAXSDZrr_Int = 13021,
- VMAXSDZrrb_Int = 13022,
- VMAXSDZrrbk_Int = 13023,
- VMAXSDZrrbkz_Int = 13024,
- VMAXSDZrrk_Int = 13025,
- VMAXSDZrrkz_Int = 13026,
- VMAXSDrm = 13027,
- VMAXSDrm_Int = 13028,
- VMAXSDrr = 13029,
- VMAXSDrr_Int = 13030,
- VMAXSHZrm = 13031,
- VMAXSHZrm_Int = 13032,
- VMAXSHZrmk_Int = 13033,
- VMAXSHZrmkz_Int = 13034,
- VMAXSHZrr = 13035,
- VMAXSHZrr_Int = 13036,
- VMAXSHZrrb_Int = 13037,
- VMAXSHZrrbk_Int = 13038,
- VMAXSHZrrbkz_Int = 13039,
- VMAXSHZrrk_Int = 13040,
- VMAXSHZrrkz_Int = 13041,
- VMAXSSZrm = 13042,
- VMAXSSZrm_Int = 13043,
- VMAXSSZrmk_Int = 13044,
- VMAXSSZrmkz_Int = 13045,
- VMAXSSZrr = 13046,
- VMAXSSZrr_Int = 13047,
- VMAXSSZrrb_Int = 13048,
- VMAXSSZrrbk_Int = 13049,
- VMAXSSZrrbkz_Int = 13050,
- VMAXSSZrrk_Int = 13051,
- VMAXSSZrrkz_Int = 13052,
- VMAXSSrm = 13053,
- VMAXSSrm_Int = 13054,
- VMAXSSrr = 13055,
- VMAXSSrr_Int = 13056,
- VMCALL = 13057,
- VMCLEARm = 13058,
- VMFUNC = 13059,
- VMINBF16Z128rm = 13060,
- VMINBF16Z128rmb = 13061,
- VMINBF16Z128rmbk = 13062,
- VMINBF16Z128rmbkz = 13063,
- VMINBF16Z128rmk = 13064,
- VMINBF16Z128rmkz = 13065,
- VMINBF16Z128rr = 13066,
- VMINBF16Z128rrk = 13067,
- VMINBF16Z128rrkz = 13068,
- VMINBF16Z256rm = 13069,
- VMINBF16Z256rmb = 13070,
- VMINBF16Z256rmbk = 13071,
- VMINBF16Z256rmbkz = 13072,
- VMINBF16Z256rmk = 13073,
- VMINBF16Z256rmkz = 13074,
- VMINBF16Z256rr = 13075,
- VMINBF16Z256rrk = 13076,
- VMINBF16Z256rrkz = 13077,
- VMINBF16Zrm = 13078,
- VMINBF16Zrmb = 13079,
- VMINBF16Zrmbk = 13080,
- VMINBF16Zrmbkz = 13081,
- VMINBF16Zrmk = 13082,
- VMINBF16Zrmkz = 13083,
- VMINBF16Zrr = 13084,
- VMINBF16Zrrk = 13085,
- VMINBF16Zrrkz = 13086,
- VMINCPDYrm = 13087,
- VMINCPDYrr = 13088,
- VMINCPDZ128rm = 13089,
- VMINCPDZ128rmb = 13090,
- VMINCPDZ128rmbk = 13091,
- VMINCPDZ128rmbkz = 13092,
- VMINCPDZ128rmk = 13093,
- VMINCPDZ128rmkz = 13094,
- VMINCPDZ128rr = 13095,
- VMINCPDZ128rrk = 13096,
- VMINCPDZ128rrkz = 13097,
- VMINCPDZ256rm = 13098,
- VMINCPDZ256rmb = 13099,
- VMINCPDZ256rmbk = 13100,
- VMINCPDZ256rmbkz = 13101,
- VMINCPDZ256rmk = 13102,
- VMINCPDZ256rmkz = 13103,
- VMINCPDZ256rr = 13104,
- VMINCPDZ256rrk = 13105,
- VMINCPDZ256rrkz = 13106,
- VMINCPDZrm = 13107,
- VMINCPDZrmb = 13108,
- VMINCPDZrmbk = 13109,
- VMINCPDZrmbkz = 13110,
- VMINCPDZrmk = 13111,
- VMINCPDZrmkz = 13112,
- VMINCPDZrr = 13113,
- VMINCPDZrrk = 13114,
- VMINCPDZrrkz = 13115,
- VMINCPDrm = 13116,
- VMINCPDrr = 13117,
- VMINCPHZ128rm = 13118,
- VMINCPHZ128rmb = 13119,
- VMINCPHZ128rmbk = 13120,
- VMINCPHZ128rmbkz = 13121,
- VMINCPHZ128rmk = 13122,
- VMINCPHZ128rmkz = 13123,
- VMINCPHZ128rr = 13124,
- VMINCPHZ128rrk = 13125,
- VMINCPHZ128rrkz = 13126,
- VMINCPHZ256rm = 13127,
- VMINCPHZ256rmb = 13128,
- VMINCPHZ256rmbk = 13129,
- VMINCPHZ256rmbkz = 13130,
- VMINCPHZ256rmk = 13131,
- VMINCPHZ256rmkz = 13132,
- VMINCPHZ256rr = 13133,
- VMINCPHZ256rrk = 13134,
- VMINCPHZ256rrkz = 13135,
- VMINCPHZrm = 13136,
- VMINCPHZrmb = 13137,
- VMINCPHZrmbk = 13138,
- VMINCPHZrmbkz = 13139,
- VMINCPHZrmk = 13140,
- VMINCPHZrmkz = 13141,
- VMINCPHZrr = 13142,
- VMINCPHZrrk = 13143,
- VMINCPHZrrkz = 13144,
- VMINCPSYrm = 13145,
- VMINCPSYrr = 13146,
- VMINCPSZ128rm = 13147,
- VMINCPSZ128rmb = 13148,
- VMINCPSZ128rmbk = 13149,
- VMINCPSZ128rmbkz = 13150,
- VMINCPSZ128rmk = 13151,
- VMINCPSZ128rmkz = 13152,
- VMINCPSZ128rr = 13153,
- VMINCPSZ128rrk = 13154,
- VMINCPSZ128rrkz = 13155,
- VMINCPSZ256rm = 13156,
- VMINCPSZ256rmb = 13157,
- VMINCPSZ256rmbk = 13158,
- VMINCPSZ256rmbkz = 13159,
- VMINCPSZ256rmk = 13160,
- VMINCPSZ256rmkz = 13161,
- VMINCPSZ256rr = 13162,
- VMINCPSZ256rrk = 13163,
- VMINCPSZ256rrkz = 13164,
- VMINCPSZrm = 13165,
- VMINCPSZrmb = 13166,
- VMINCPSZrmbk = 13167,
- VMINCPSZrmbkz = 13168,
- VMINCPSZrmk = 13169,
- VMINCPSZrmkz = 13170,
- VMINCPSZrr = 13171,
- VMINCPSZrrk = 13172,
- VMINCPSZrrkz = 13173,
- VMINCPSrm = 13174,
- VMINCPSrr = 13175,
- VMINCSDZrm = 13176,
- VMINCSDZrr = 13177,
- VMINCSDrm = 13178,
- VMINCSDrr = 13179,
- VMINCSHZrm = 13180,
- VMINCSHZrr = 13181,
- VMINCSSZrm = 13182,
- VMINCSSZrr = 13183,
- VMINCSSrm = 13184,
- VMINCSSrr = 13185,
- VMINMAXBF16Z128rmbi = 13186,
- VMINMAXBF16Z128rmbik = 13187,
- VMINMAXBF16Z128rmbikz = 13188,
- VMINMAXBF16Z128rmi = 13189,
- VMINMAXBF16Z128rmik = 13190,
- VMINMAXBF16Z128rmikz = 13191,
- VMINMAXBF16Z128rri = 13192,
- VMINMAXBF16Z128rrik = 13193,
- VMINMAXBF16Z128rrikz = 13194,
- VMINMAXBF16Z256rmbi = 13195,
- VMINMAXBF16Z256rmbik = 13196,
- VMINMAXBF16Z256rmbikz = 13197,
- VMINMAXBF16Z256rmi = 13198,
- VMINMAXBF16Z256rmik = 13199,
- VMINMAXBF16Z256rmikz = 13200,
- VMINMAXBF16Z256rri = 13201,
- VMINMAXBF16Z256rrik = 13202,
- VMINMAXBF16Z256rrikz = 13203,
- VMINMAXBF16Zrmbi = 13204,
- VMINMAXBF16Zrmbik = 13205,
- VMINMAXBF16Zrmbikz = 13206,
- VMINMAXBF16Zrmi = 13207,
- VMINMAXBF16Zrmik = 13208,
- VMINMAXBF16Zrmikz = 13209,
- VMINMAXBF16Zrri = 13210,
- VMINMAXBF16Zrrik = 13211,
- VMINMAXBF16Zrrikz = 13212,
- VMINMAXPDZ128rmbi = 13213,
- VMINMAXPDZ128rmbik = 13214,
- VMINMAXPDZ128rmbikz = 13215,
- VMINMAXPDZ128rmi = 13216,
- VMINMAXPDZ128rmik = 13217,
- VMINMAXPDZ128rmikz = 13218,
- VMINMAXPDZ128rri = 13219,
- VMINMAXPDZ128rrik = 13220,
- VMINMAXPDZ128rrikz = 13221,
- VMINMAXPDZ256rmbi = 13222,
- VMINMAXPDZ256rmbik = 13223,
- VMINMAXPDZ256rmbikz = 13224,
- VMINMAXPDZ256rmi = 13225,
- VMINMAXPDZ256rmik = 13226,
- VMINMAXPDZ256rmikz = 13227,
- VMINMAXPDZ256rri = 13228,
- VMINMAXPDZ256rrik = 13229,
- VMINMAXPDZ256rrikz = 13230,
- VMINMAXPDZrmbi = 13231,
- VMINMAXPDZrmbik = 13232,
- VMINMAXPDZrmbikz = 13233,
- VMINMAXPDZrmi = 13234,
- VMINMAXPDZrmik = 13235,
- VMINMAXPDZrmikz = 13236,
- VMINMAXPDZrri = 13237,
- VMINMAXPDZrrib = 13238,
- VMINMAXPDZrribk = 13239,
- VMINMAXPDZrribkz = 13240,
- VMINMAXPDZrrik = 13241,
- VMINMAXPDZrrikz = 13242,
- VMINMAXPHZ128rmbi = 13243,
- VMINMAXPHZ128rmbik = 13244,
- VMINMAXPHZ128rmbikz = 13245,
- VMINMAXPHZ128rmi = 13246,
- VMINMAXPHZ128rmik = 13247,
- VMINMAXPHZ128rmikz = 13248,
- VMINMAXPHZ128rri = 13249,
- VMINMAXPHZ128rrik = 13250,
- VMINMAXPHZ128rrikz = 13251,
- VMINMAXPHZ256rmbi = 13252,
- VMINMAXPHZ256rmbik = 13253,
- VMINMAXPHZ256rmbikz = 13254,
- VMINMAXPHZ256rmi = 13255,
- VMINMAXPHZ256rmik = 13256,
- VMINMAXPHZ256rmikz = 13257,
- VMINMAXPHZ256rri = 13258,
- VMINMAXPHZ256rrik = 13259,
- VMINMAXPHZ256rrikz = 13260,
- VMINMAXPHZrmbi = 13261,
- VMINMAXPHZrmbik = 13262,
- VMINMAXPHZrmbikz = 13263,
- VMINMAXPHZrmi = 13264,
- VMINMAXPHZrmik = 13265,
- VMINMAXPHZrmikz = 13266,
- VMINMAXPHZrri = 13267,
- VMINMAXPHZrrib = 13268,
- VMINMAXPHZrribk = 13269,
- VMINMAXPHZrribkz = 13270,
- VMINMAXPHZrrik = 13271,
- VMINMAXPHZrrikz = 13272,
- VMINMAXPSZ128rmbi = 13273,
- VMINMAXPSZ128rmbik = 13274,
- VMINMAXPSZ128rmbikz = 13275,
- VMINMAXPSZ128rmi = 13276,
- VMINMAXPSZ128rmik = 13277,
- VMINMAXPSZ128rmikz = 13278,
- VMINMAXPSZ128rri = 13279,
- VMINMAXPSZ128rrik = 13280,
- VMINMAXPSZ128rrikz = 13281,
- VMINMAXPSZ256rmbi = 13282,
- VMINMAXPSZ256rmbik = 13283,
- VMINMAXPSZ256rmbikz = 13284,
- VMINMAXPSZ256rmi = 13285,
- VMINMAXPSZ256rmik = 13286,
- VMINMAXPSZ256rmikz = 13287,
- VMINMAXPSZ256rri = 13288,
- VMINMAXPSZ256rrik = 13289,
- VMINMAXPSZ256rrikz = 13290,
- VMINMAXPSZrmbi = 13291,
- VMINMAXPSZrmbik = 13292,
- VMINMAXPSZrmbikz = 13293,
- VMINMAXPSZrmi = 13294,
- VMINMAXPSZrmik = 13295,
- VMINMAXPSZrmikz = 13296,
- VMINMAXPSZrri = 13297,
- VMINMAXPSZrrib = 13298,
- VMINMAXPSZrribk = 13299,
- VMINMAXPSZrribkz = 13300,
- VMINMAXPSZrrik = 13301,
- VMINMAXPSZrrikz = 13302,
- VMINMAXSDrmi = 13303,
- VMINMAXSDrmi_Int = 13304,
- VMINMAXSDrmik_Int = 13305,
- VMINMAXSDrmikz_Int = 13306,
- VMINMAXSDrri = 13307,
- VMINMAXSDrri_Int = 13308,
- VMINMAXSDrrib_Int = 13309,
- VMINMAXSDrribk_Int = 13310,
- VMINMAXSDrribkz_Int = 13311,
- VMINMAXSDrrik_Int = 13312,
- VMINMAXSDrrikz_Int = 13313,
- VMINMAXSHrmi = 13314,
- VMINMAXSHrmi_Int = 13315,
- VMINMAXSHrmik_Int = 13316,
- VMINMAXSHrmikz_Int = 13317,
- VMINMAXSHrri = 13318,
- VMINMAXSHrri_Int = 13319,
- VMINMAXSHrrib_Int = 13320,
- VMINMAXSHrribk_Int = 13321,
- VMINMAXSHrribkz_Int = 13322,
- VMINMAXSHrrik_Int = 13323,
- VMINMAXSHrrikz_Int = 13324,
- VMINMAXSSrmi = 13325,
- VMINMAXSSrmi_Int = 13326,
- VMINMAXSSrmik_Int = 13327,
- VMINMAXSSrmikz_Int = 13328,
- VMINMAXSSrri = 13329,
- VMINMAXSSrri_Int = 13330,
- VMINMAXSSrrib_Int = 13331,
- VMINMAXSSrribk_Int = 13332,
- VMINMAXSSrribkz_Int = 13333,
- VMINMAXSSrrik_Int = 13334,
- VMINMAXSSrrikz_Int = 13335,
- VMINPDYrm = 13336,
- VMINPDYrr = 13337,
- VMINPDZ128rm = 13338,
- VMINPDZ128rmb = 13339,
- VMINPDZ128rmbk = 13340,
- VMINPDZ128rmbkz = 13341,
- VMINPDZ128rmk = 13342,
- VMINPDZ128rmkz = 13343,
- VMINPDZ128rr = 13344,
- VMINPDZ128rrk = 13345,
- VMINPDZ128rrkz = 13346,
- VMINPDZ256rm = 13347,
- VMINPDZ256rmb = 13348,
- VMINPDZ256rmbk = 13349,
- VMINPDZ256rmbkz = 13350,
- VMINPDZ256rmk = 13351,
- VMINPDZ256rmkz = 13352,
- VMINPDZ256rr = 13353,
- VMINPDZ256rrk = 13354,
- VMINPDZ256rrkz = 13355,
- VMINPDZrm = 13356,
- VMINPDZrmb = 13357,
- VMINPDZrmbk = 13358,
- VMINPDZrmbkz = 13359,
- VMINPDZrmk = 13360,
- VMINPDZrmkz = 13361,
- VMINPDZrr = 13362,
- VMINPDZrrb = 13363,
- VMINPDZrrbk = 13364,
- VMINPDZrrbkz = 13365,
- VMINPDZrrk = 13366,
- VMINPDZrrkz = 13367,
- VMINPDrm = 13368,
- VMINPDrr = 13369,
- VMINPHZ128rm = 13370,
- VMINPHZ128rmb = 13371,
- VMINPHZ128rmbk = 13372,
- VMINPHZ128rmbkz = 13373,
- VMINPHZ128rmk = 13374,
- VMINPHZ128rmkz = 13375,
- VMINPHZ128rr = 13376,
- VMINPHZ128rrk = 13377,
- VMINPHZ128rrkz = 13378,
- VMINPHZ256rm = 13379,
- VMINPHZ256rmb = 13380,
- VMINPHZ256rmbk = 13381,
- VMINPHZ256rmbkz = 13382,
- VMINPHZ256rmk = 13383,
- VMINPHZ256rmkz = 13384,
- VMINPHZ256rr = 13385,
- VMINPHZ256rrk = 13386,
- VMINPHZ256rrkz = 13387,
- VMINPHZrm = 13388,
- VMINPHZrmb = 13389,
- VMINPHZrmbk = 13390,
- VMINPHZrmbkz = 13391,
- VMINPHZrmk = 13392,
- VMINPHZrmkz = 13393,
- VMINPHZrr = 13394,
- VMINPHZrrb = 13395,
- VMINPHZrrbk = 13396,
- VMINPHZrrbkz = 13397,
- VMINPHZrrk = 13398,
- VMINPHZrrkz = 13399,
- VMINPSYrm = 13400,
- VMINPSYrr = 13401,
- VMINPSZ128rm = 13402,
- VMINPSZ128rmb = 13403,
- VMINPSZ128rmbk = 13404,
- VMINPSZ128rmbkz = 13405,
- VMINPSZ128rmk = 13406,
- VMINPSZ128rmkz = 13407,
- VMINPSZ128rr = 13408,
- VMINPSZ128rrk = 13409,
- VMINPSZ128rrkz = 13410,
- VMINPSZ256rm = 13411,
- VMINPSZ256rmb = 13412,
- VMINPSZ256rmbk = 13413,
- VMINPSZ256rmbkz = 13414,
- VMINPSZ256rmk = 13415,
- VMINPSZ256rmkz = 13416,
- VMINPSZ256rr = 13417,
- VMINPSZ256rrk = 13418,
- VMINPSZ256rrkz = 13419,
- VMINPSZrm = 13420,
- VMINPSZrmb = 13421,
- VMINPSZrmbk = 13422,
- VMINPSZrmbkz = 13423,
- VMINPSZrmk = 13424,
- VMINPSZrmkz = 13425,
- VMINPSZrr = 13426,
- VMINPSZrrb = 13427,
- VMINPSZrrbk = 13428,
- VMINPSZrrbkz = 13429,
- VMINPSZrrk = 13430,
- VMINPSZrrkz = 13431,
- VMINPSrm = 13432,
- VMINPSrr = 13433,
- VMINSDZrm = 13434,
- VMINSDZrm_Int = 13435,
- VMINSDZrmk_Int = 13436,
- VMINSDZrmkz_Int = 13437,
- VMINSDZrr = 13438,
- VMINSDZrr_Int = 13439,
- VMINSDZrrb_Int = 13440,
- VMINSDZrrbk_Int = 13441,
- VMINSDZrrbkz_Int = 13442,
- VMINSDZrrk_Int = 13443,
- VMINSDZrrkz_Int = 13444,
- VMINSDrm = 13445,
- VMINSDrm_Int = 13446,
- VMINSDrr = 13447,
- VMINSDrr_Int = 13448,
- VMINSHZrm = 13449,
- VMINSHZrm_Int = 13450,
- VMINSHZrmk_Int = 13451,
- VMINSHZrmkz_Int = 13452,
- VMINSHZrr = 13453,
- VMINSHZrr_Int = 13454,
- VMINSHZrrb_Int = 13455,
- VMINSHZrrbk_Int = 13456,
- VMINSHZrrbkz_Int = 13457,
- VMINSHZrrk_Int = 13458,
- VMINSHZrrkz_Int = 13459,
- VMINSSZrm = 13460,
- VMINSSZrm_Int = 13461,
- VMINSSZrmk_Int = 13462,
- VMINSSZrmkz_Int = 13463,
- VMINSSZrr = 13464,
- VMINSSZrr_Int = 13465,
- VMINSSZrrb_Int = 13466,
- VMINSSZrrbk_Int = 13467,
- VMINSSZrrbkz_Int = 13468,
- VMINSSZrrk_Int = 13469,
- VMINSSZrrkz_Int = 13470,
- VMINSSrm = 13471,
- VMINSSrm_Int = 13472,
- VMINSSrr = 13473,
- VMINSSrr_Int = 13474,
- VMLAUNCH = 13475,
- VMLOAD32 = 13476,
- VMLOAD64 = 13477,
- VMMCALL = 13478,
- VMOV64toPQIZrm = 13479,
- VMOV64toPQIZrr = 13480,
- VMOV64toPQIrm = 13481,
- VMOV64toPQIrr = 13482,
- VMOV64toSDZrr = 13483,
- VMOV64toSDrr = 13484,
- VMOVAPDYmr = 13485,
- VMOVAPDYrm = 13486,
- VMOVAPDYrr = 13487,
- VMOVAPDYrr_REV = 13488,
- VMOVAPDZ128mr = 13489,
- VMOVAPDZ128mrk = 13490,
- VMOVAPDZ128rm = 13491,
- VMOVAPDZ128rmk = 13492,
- VMOVAPDZ128rmkz = 13493,
- VMOVAPDZ128rr = 13494,
- VMOVAPDZ128rr_REV = 13495,
- VMOVAPDZ128rrk = 13496,
- VMOVAPDZ128rrk_REV = 13497,
- VMOVAPDZ128rrkz = 13498,
- VMOVAPDZ128rrkz_REV = 13499,
- VMOVAPDZ256mr = 13500,
- VMOVAPDZ256mrk = 13501,
- VMOVAPDZ256rm = 13502,
- VMOVAPDZ256rmk = 13503,
- VMOVAPDZ256rmkz = 13504,
- VMOVAPDZ256rr = 13505,
- VMOVAPDZ256rr_REV = 13506,
- VMOVAPDZ256rrk = 13507,
- VMOVAPDZ256rrk_REV = 13508,
- VMOVAPDZ256rrkz = 13509,
- VMOVAPDZ256rrkz_REV = 13510,
- VMOVAPDZmr = 13511,
- VMOVAPDZmrk = 13512,
- VMOVAPDZrm = 13513,
- VMOVAPDZrmk = 13514,
- VMOVAPDZrmkz = 13515,
- VMOVAPDZrr = 13516,
- VMOVAPDZrr_REV = 13517,
- VMOVAPDZrrk = 13518,
- VMOVAPDZrrk_REV = 13519,
- VMOVAPDZrrkz = 13520,
- VMOVAPDZrrkz_REV = 13521,
- VMOVAPDmr = 13522,
- VMOVAPDrm = 13523,
- VMOVAPDrr = 13524,
- VMOVAPDrr_REV = 13525,
- VMOVAPSYmr = 13526,
- VMOVAPSYrm = 13527,
- VMOVAPSYrr = 13528,
- VMOVAPSYrr_REV = 13529,
- VMOVAPSZ128mr = 13530,
- VMOVAPSZ128mrk = 13531,
- VMOVAPSZ128rm = 13532,
- VMOVAPSZ128rmk = 13533,
- VMOVAPSZ128rmkz = 13534,
- VMOVAPSZ128rr = 13535,
- VMOVAPSZ128rr_REV = 13536,
- VMOVAPSZ128rrk = 13537,
- VMOVAPSZ128rrk_REV = 13538,
- VMOVAPSZ128rrkz = 13539,
- VMOVAPSZ128rrkz_REV = 13540,
- VMOVAPSZ256mr = 13541,
- VMOVAPSZ256mrk = 13542,
- VMOVAPSZ256rm = 13543,
- VMOVAPSZ256rmk = 13544,
- VMOVAPSZ256rmkz = 13545,
- VMOVAPSZ256rr = 13546,
- VMOVAPSZ256rr_REV = 13547,
- VMOVAPSZ256rrk = 13548,
- VMOVAPSZ256rrk_REV = 13549,
- VMOVAPSZ256rrkz = 13550,
- VMOVAPSZ256rrkz_REV = 13551,
- VMOVAPSZmr = 13552,
- VMOVAPSZmrk = 13553,
- VMOVAPSZrm = 13554,
- VMOVAPSZrmk = 13555,
- VMOVAPSZrmkz = 13556,
- VMOVAPSZrr = 13557,
- VMOVAPSZrr_REV = 13558,
- VMOVAPSZrrk = 13559,
- VMOVAPSZrrk_REV = 13560,
- VMOVAPSZrrkz = 13561,
- VMOVAPSZrrkz_REV = 13562,
- VMOVAPSmr = 13563,
- VMOVAPSrm = 13564,
- VMOVAPSrr = 13565,
- VMOVAPSrr_REV = 13566,
- VMOVDDUPYrm = 13567,
- VMOVDDUPYrr = 13568,
- VMOVDDUPZ128rm = 13569,
- VMOVDDUPZ128rmk = 13570,
- VMOVDDUPZ128rmkz = 13571,
- VMOVDDUPZ128rr = 13572,
- VMOVDDUPZ128rrk = 13573,
- VMOVDDUPZ128rrkz = 13574,
- VMOVDDUPZ256rm = 13575,
- VMOVDDUPZ256rmk = 13576,
- VMOVDDUPZ256rmkz = 13577,
- VMOVDDUPZ256rr = 13578,
- VMOVDDUPZ256rrk = 13579,
- VMOVDDUPZ256rrkz = 13580,
- VMOVDDUPZrm = 13581,
- VMOVDDUPZrmk = 13582,
- VMOVDDUPZrmkz = 13583,
- VMOVDDUPZrr = 13584,
- VMOVDDUPZrrk = 13585,
- VMOVDDUPZrrkz = 13586,
- VMOVDDUPrm = 13587,
- VMOVDDUPrr = 13588,
- VMOVDI2PDIZrm = 13589,
- VMOVDI2PDIZrr = 13590,
- VMOVDI2PDIrm = 13591,
- VMOVDI2PDIrr = 13592,
- VMOVDI2SSZrr = 13593,
- VMOVDI2SSrr = 13594,
- VMOVDQA32Z128mr = 13595,
- VMOVDQA32Z128mrk = 13596,
- VMOVDQA32Z128rm = 13597,
- VMOVDQA32Z128rmk = 13598,
- VMOVDQA32Z128rmkz = 13599,
- VMOVDQA32Z128rr = 13600,
- VMOVDQA32Z128rr_REV = 13601,
- VMOVDQA32Z128rrk = 13602,
- VMOVDQA32Z128rrk_REV = 13603,
- VMOVDQA32Z128rrkz = 13604,
- VMOVDQA32Z128rrkz_REV = 13605,
- VMOVDQA32Z256mr = 13606,
- VMOVDQA32Z256mrk = 13607,
- VMOVDQA32Z256rm = 13608,
- VMOVDQA32Z256rmk = 13609,
- VMOVDQA32Z256rmkz = 13610,
- VMOVDQA32Z256rr = 13611,
- VMOVDQA32Z256rr_REV = 13612,
- VMOVDQA32Z256rrk = 13613,
- VMOVDQA32Z256rrk_REV = 13614,
- VMOVDQA32Z256rrkz = 13615,
- VMOVDQA32Z256rrkz_REV = 13616,
- VMOVDQA32Zmr = 13617,
- VMOVDQA32Zmrk = 13618,
- VMOVDQA32Zrm = 13619,
- VMOVDQA32Zrmk = 13620,
- VMOVDQA32Zrmkz = 13621,
- VMOVDQA32Zrr = 13622,
- VMOVDQA32Zrr_REV = 13623,
- VMOVDQA32Zrrk = 13624,
- VMOVDQA32Zrrk_REV = 13625,
- VMOVDQA32Zrrkz = 13626,
- VMOVDQA32Zrrkz_REV = 13627,
- VMOVDQA64Z128mr = 13628,
- VMOVDQA64Z128mrk = 13629,
- VMOVDQA64Z128rm = 13630,
- VMOVDQA64Z128rmk = 13631,
- VMOVDQA64Z128rmkz = 13632,
- VMOVDQA64Z128rr = 13633,
- VMOVDQA64Z128rr_REV = 13634,
- VMOVDQA64Z128rrk = 13635,
- VMOVDQA64Z128rrk_REV = 13636,
- VMOVDQA64Z128rrkz = 13637,
- VMOVDQA64Z128rrkz_REV = 13638,
- VMOVDQA64Z256mr = 13639,
- VMOVDQA64Z256mrk = 13640,
- VMOVDQA64Z256rm = 13641,
- VMOVDQA64Z256rmk = 13642,
- VMOVDQA64Z256rmkz = 13643,
- VMOVDQA64Z256rr = 13644,
- VMOVDQA64Z256rr_REV = 13645,
- VMOVDQA64Z256rrk = 13646,
- VMOVDQA64Z256rrk_REV = 13647,
- VMOVDQA64Z256rrkz = 13648,
- VMOVDQA64Z256rrkz_REV = 13649,
- VMOVDQA64Zmr = 13650,
- VMOVDQA64Zmrk = 13651,
- VMOVDQA64Zrm = 13652,
- VMOVDQA64Zrmk = 13653,
- VMOVDQA64Zrmkz = 13654,
- VMOVDQA64Zrr = 13655,
- VMOVDQA64Zrr_REV = 13656,
- VMOVDQA64Zrrk = 13657,
- VMOVDQA64Zrrk_REV = 13658,
- VMOVDQA64Zrrkz = 13659,
- VMOVDQA64Zrrkz_REV = 13660,
- VMOVDQAYmr = 13661,
- VMOVDQAYrm = 13662,
- VMOVDQAYrr = 13663,
- VMOVDQAYrr_REV = 13664,
- VMOVDQAmr = 13665,
- VMOVDQArm = 13666,
- VMOVDQArr = 13667,
- VMOVDQArr_REV = 13668,
- VMOVDQU16Z128mr = 13669,
- VMOVDQU16Z128mrk = 13670,
- VMOVDQU16Z128rm = 13671,
- VMOVDQU16Z128rmk = 13672,
- VMOVDQU16Z128rmkz = 13673,
- VMOVDQU16Z128rr = 13674,
- VMOVDQU16Z128rr_REV = 13675,
- VMOVDQU16Z128rrk = 13676,
- VMOVDQU16Z128rrk_REV = 13677,
- VMOVDQU16Z128rrkz = 13678,
- VMOVDQU16Z128rrkz_REV = 13679,
- VMOVDQU16Z256mr = 13680,
- VMOVDQU16Z256mrk = 13681,
- VMOVDQU16Z256rm = 13682,
- VMOVDQU16Z256rmk = 13683,
- VMOVDQU16Z256rmkz = 13684,
- VMOVDQU16Z256rr = 13685,
- VMOVDQU16Z256rr_REV = 13686,
- VMOVDQU16Z256rrk = 13687,
- VMOVDQU16Z256rrk_REV = 13688,
- VMOVDQU16Z256rrkz = 13689,
- VMOVDQU16Z256rrkz_REV = 13690,
- VMOVDQU16Zmr = 13691,
- VMOVDQU16Zmrk = 13692,
- VMOVDQU16Zrm = 13693,
- VMOVDQU16Zrmk = 13694,
- VMOVDQU16Zrmkz = 13695,
- VMOVDQU16Zrr = 13696,
- VMOVDQU16Zrr_REV = 13697,
- VMOVDQU16Zrrk = 13698,
- VMOVDQU16Zrrk_REV = 13699,
- VMOVDQU16Zrrkz = 13700,
- VMOVDQU16Zrrkz_REV = 13701,
- VMOVDQU32Z128mr = 13702,
- VMOVDQU32Z128mrk = 13703,
- VMOVDQU32Z128rm = 13704,
- VMOVDQU32Z128rmk = 13705,
- VMOVDQU32Z128rmkz = 13706,
- VMOVDQU32Z128rr = 13707,
- VMOVDQU32Z128rr_REV = 13708,
- VMOVDQU32Z128rrk = 13709,
- VMOVDQU32Z128rrk_REV = 13710,
- VMOVDQU32Z128rrkz = 13711,
- VMOVDQU32Z128rrkz_REV = 13712,
- VMOVDQU32Z256mr = 13713,
- VMOVDQU32Z256mrk = 13714,
- VMOVDQU32Z256rm = 13715,
- VMOVDQU32Z256rmk = 13716,
- VMOVDQU32Z256rmkz = 13717,
- VMOVDQU32Z256rr = 13718,
- VMOVDQU32Z256rr_REV = 13719,
- VMOVDQU32Z256rrk = 13720,
- VMOVDQU32Z256rrk_REV = 13721,
- VMOVDQU32Z256rrkz = 13722,
- VMOVDQU32Z256rrkz_REV = 13723,
- VMOVDQU32Zmr = 13724,
- VMOVDQU32Zmrk = 13725,
- VMOVDQU32Zrm = 13726,
- VMOVDQU32Zrmk = 13727,
- VMOVDQU32Zrmkz = 13728,
- VMOVDQU32Zrr = 13729,
- VMOVDQU32Zrr_REV = 13730,
- VMOVDQU32Zrrk = 13731,
- VMOVDQU32Zrrk_REV = 13732,
- VMOVDQU32Zrrkz = 13733,
- VMOVDQU32Zrrkz_REV = 13734,
- VMOVDQU64Z128mr = 13735,
- VMOVDQU64Z128mrk = 13736,
- VMOVDQU64Z128rm = 13737,
- VMOVDQU64Z128rmk = 13738,
- VMOVDQU64Z128rmkz = 13739,
- VMOVDQU64Z128rr = 13740,
- VMOVDQU64Z128rr_REV = 13741,
- VMOVDQU64Z128rrk = 13742,
- VMOVDQU64Z128rrk_REV = 13743,
- VMOVDQU64Z128rrkz = 13744,
- VMOVDQU64Z128rrkz_REV = 13745,
- VMOVDQU64Z256mr = 13746,
- VMOVDQU64Z256mrk = 13747,
- VMOVDQU64Z256rm = 13748,
- VMOVDQU64Z256rmk = 13749,
- VMOVDQU64Z256rmkz = 13750,
- VMOVDQU64Z256rr = 13751,
- VMOVDQU64Z256rr_REV = 13752,
- VMOVDQU64Z256rrk = 13753,
- VMOVDQU64Z256rrk_REV = 13754,
- VMOVDQU64Z256rrkz = 13755,
- VMOVDQU64Z256rrkz_REV = 13756,
- VMOVDQU64Zmr = 13757,
- VMOVDQU64Zmrk = 13758,
- VMOVDQU64Zrm = 13759,
- VMOVDQU64Zrmk = 13760,
- VMOVDQU64Zrmkz = 13761,
- VMOVDQU64Zrr = 13762,
- VMOVDQU64Zrr_REV = 13763,
- VMOVDQU64Zrrk = 13764,
- VMOVDQU64Zrrk_REV = 13765,
- VMOVDQU64Zrrkz = 13766,
- VMOVDQU64Zrrkz_REV = 13767,
- VMOVDQU8Z128mr = 13768,
- VMOVDQU8Z128mrk = 13769,
- VMOVDQU8Z128rm = 13770,
- VMOVDQU8Z128rmk = 13771,
- VMOVDQU8Z128rmkz = 13772,
- VMOVDQU8Z128rr = 13773,
- VMOVDQU8Z128rr_REV = 13774,
- VMOVDQU8Z128rrk = 13775,
- VMOVDQU8Z128rrk_REV = 13776,
- VMOVDQU8Z128rrkz = 13777,
- VMOVDQU8Z128rrkz_REV = 13778,
- VMOVDQU8Z256mr = 13779,
- VMOVDQU8Z256mrk = 13780,
- VMOVDQU8Z256rm = 13781,
- VMOVDQU8Z256rmk = 13782,
- VMOVDQU8Z256rmkz = 13783,
- VMOVDQU8Z256rr = 13784,
- VMOVDQU8Z256rr_REV = 13785,
- VMOVDQU8Z256rrk = 13786,
- VMOVDQU8Z256rrk_REV = 13787,
- VMOVDQU8Z256rrkz = 13788,
- VMOVDQU8Z256rrkz_REV = 13789,
- VMOVDQU8Zmr = 13790,
- VMOVDQU8Zmrk = 13791,
- VMOVDQU8Zrm = 13792,
- VMOVDQU8Zrmk = 13793,
- VMOVDQU8Zrmkz = 13794,
- VMOVDQU8Zrr = 13795,
- VMOVDQU8Zrr_REV = 13796,
- VMOVDQU8Zrrk = 13797,
- VMOVDQU8Zrrk_REV = 13798,
- VMOVDQU8Zrrkz = 13799,
- VMOVDQU8Zrrkz_REV = 13800,
- VMOVDQUYmr = 13801,
- VMOVDQUYrm = 13802,
- VMOVDQUYrr = 13803,
- VMOVDQUYrr_REV = 13804,
- VMOVDQUmr = 13805,
- VMOVDQUrm = 13806,
- VMOVDQUrr = 13807,
- VMOVDQUrr_REV = 13808,
- VMOVHLPSZrr = 13809,
- VMOVHLPSrr = 13810,
- VMOVHPDZ128mr = 13811,
- VMOVHPDZ128rm = 13812,
- VMOVHPDmr = 13813,
- VMOVHPDrm = 13814,
- VMOVHPSZ128mr = 13815,
- VMOVHPSZ128rm = 13816,
- VMOVHPSmr = 13817,
- VMOVHPSrm = 13818,
- VMOVLHPSZrr = 13819,
- VMOVLHPSrr = 13820,
- VMOVLPDZ128mr = 13821,
- VMOVLPDZ128rm = 13822,
- VMOVLPDmr = 13823,
- VMOVLPDrm = 13824,
- VMOVLPSZ128mr = 13825,
- VMOVLPSZ128rm = 13826,
- VMOVLPSmr = 13827,
- VMOVLPSrm = 13828,
- VMOVMSKPDYrr = 13829,
- VMOVMSKPDrr = 13830,
- VMOVMSKPSYrr = 13831,
- VMOVMSKPSrr = 13832,
- VMOVNTDQAYrm = 13833,
- VMOVNTDQAZ128rm = 13834,
- VMOVNTDQAZ256rm = 13835,
- VMOVNTDQAZrm = 13836,
- VMOVNTDQArm = 13837,
- VMOVNTDQYmr = 13838,
- VMOVNTDQZ128mr = 13839,
- VMOVNTDQZ256mr = 13840,
- VMOVNTDQZmr = 13841,
- VMOVNTDQmr = 13842,
- VMOVNTPDYmr = 13843,
- VMOVNTPDZ128mr = 13844,
- VMOVNTPDZ256mr = 13845,
- VMOVNTPDZmr = 13846,
- VMOVNTPDmr = 13847,
- VMOVNTPSYmr = 13848,
- VMOVNTPSZ128mr = 13849,
- VMOVNTPSZ256mr = 13850,
- VMOVNTPSZmr = 13851,
- VMOVNTPSmr = 13852,
- VMOVPDI2DIZmr = 13853,
- VMOVPDI2DIZrr = 13854,
- VMOVPDI2DImr = 13855,
- VMOVPDI2DIrr = 13856,
- VMOVPQI2QIZmr = 13857,
- VMOVPQI2QIZrr = 13858,
- VMOVPQI2QImr = 13859,
- VMOVPQI2QIrr = 13860,
- VMOVPQIto64Zmr = 13861,
- VMOVPQIto64Zrr = 13862,
- VMOVPQIto64mr = 13863,
- VMOVPQIto64rr = 13864,
- VMOVQI2PQIZrm = 13865,
- VMOVQI2PQIrm = 13866,
- VMOVRSBZ128m = 13867,
- VMOVRSBZ128mk = 13868,
- VMOVRSBZ128mkz = 13869,
- VMOVRSBZ256m = 13870,
- VMOVRSBZ256mk = 13871,
- VMOVRSBZ256mkz = 13872,
- VMOVRSBZm = 13873,
- VMOVRSBZmk = 13874,
- VMOVRSBZmkz = 13875,
- VMOVRSDZ128m = 13876,
- VMOVRSDZ128mk = 13877,
- VMOVRSDZ128mkz = 13878,
- VMOVRSDZ256m = 13879,
- VMOVRSDZ256mk = 13880,
- VMOVRSDZ256mkz = 13881,
- VMOVRSDZm = 13882,
- VMOVRSDZmk = 13883,
- VMOVRSDZmkz = 13884,
- VMOVRSQZ128m = 13885,
- VMOVRSQZ128mk = 13886,
- VMOVRSQZ128mkz = 13887,
- VMOVRSQZ256m = 13888,
- VMOVRSQZ256mk = 13889,
- VMOVRSQZ256mkz = 13890,
- VMOVRSQZm = 13891,
- VMOVRSQZmk = 13892,
- VMOVRSQZmkz = 13893,
- VMOVRSWZ128m = 13894,
- VMOVRSWZ128mk = 13895,
- VMOVRSWZ128mkz = 13896,
- VMOVRSWZ256m = 13897,
- VMOVRSWZ256mk = 13898,
- VMOVRSWZ256mkz = 13899,
- VMOVRSWZm = 13900,
- VMOVRSWZmk = 13901,
- VMOVRSWZmkz = 13902,
- VMOVSDZmr = 13903,
- VMOVSDZmrk = 13904,
- VMOVSDZrm = 13905,
- VMOVSDZrm_alt = 13906,
- VMOVSDZrmk = 13907,
- VMOVSDZrmkz = 13908,
- VMOVSDZrr = 13909,
- VMOVSDZrr_REV = 13910,
- VMOVSDZrrk = 13911,
- VMOVSDZrrk_REV = 13912,
- VMOVSDZrrkz = 13913,
- VMOVSDZrrkz_REV = 13914,
- VMOVSDmr = 13915,
- VMOVSDrm = 13916,
- VMOVSDrm_alt = 13917,
- VMOVSDrr = 13918,
- VMOVSDrr_REV = 13919,
- VMOVSDto64Zrr = 13920,
- VMOVSDto64rr = 13921,
- VMOVSH2Wrr = 13922,
- VMOVSHDUPYrm = 13923,
- VMOVSHDUPYrr = 13924,
- VMOVSHDUPZ128rm = 13925,
- VMOVSHDUPZ128rmk = 13926,
- VMOVSHDUPZ128rmkz = 13927,
- VMOVSHDUPZ128rr = 13928,
- VMOVSHDUPZ128rrk = 13929,
- VMOVSHDUPZ128rrkz = 13930,
- VMOVSHDUPZ256rm = 13931,
- VMOVSHDUPZ256rmk = 13932,
- VMOVSHDUPZ256rmkz = 13933,
- VMOVSHDUPZ256rr = 13934,
- VMOVSHDUPZ256rrk = 13935,
- VMOVSHDUPZ256rrkz = 13936,
- VMOVSHDUPZrm = 13937,
- VMOVSHDUPZrmk = 13938,
- VMOVSHDUPZrmkz = 13939,
- VMOVSHDUPZrr = 13940,
- VMOVSHDUPZrrk = 13941,
- VMOVSHDUPZrrkz = 13942,
- VMOVSHDUPrm = 13943,
- VMOVSHDUPrr = 13944,
- VMOVSHZmr = 13945,
- VMOVSHZmrk = 13946,
- VMOVSHZrm = 13947,
- VMOVSHZrm_alt = 13948,
- VMOVSHZrmk = 13949,
- VMOVSHZrmkz = 13950,
- VMOVSHZrr = 13951,
- VMOVSHZrr_REV = 13952,
- VMOVSHZrrk = 13953,
- VMOVSHZrrk_REV = 13954,
- VMOVSHZrrkz = 13955,
- VMOVSHZrrkz_REV = 13956,
- VMOVSHtoW64rr = 13957,
- VMOVSLDUPYrm = 13958,
- VMOVSLDUPYrr = 13959,
- VMOVSLDUPZ128rm = 13960,
- VMOVSLDUPZ128rmk = 13961,
- VMOVSLDUPZ128rmkz = 13962,
- VMOVSLDUPZ128rr = 13963,
- VMOVSLDUPZ128rrk = 13964,
- VMOVSLDUPZ128rrkz = 13965,
- VMOVSLDUPZ256rm = 13966,
- VMOVSLDUPZ256rmk = 13967,
- VMOVSLDUPZ256rmkz = 13968,
- VMOVSLDUPZ256rr = 13969,
- VMOVSLDUPZ256rrk = 13970,
- VMOVSLDUPZ256rrkz = 13971,
- VMOVSLDUPZrm = 13972,
- VMOVSLDUPZrmk = 13973,
- VMOVSLDUPZrmkz = 13974,
- VMOVSLDUPZrr = 13975,
- VMOVSLDUPZrrk = 13976,
- VMOVSLDUPZrrkz = 13977,
- VMOVSLDUPrm = 13978,
- VMOVSLDUPrr = 13979,
- VMOVSS2DIZrr = 13980,
- VMOVSS2DIrr = 13981,
- VMOVSSZmr = 13982,
- VMOVSSZmrk = 13983,
- VMOVSSZrm = 13984,
- VMOVSSZrm_alt = 13985,
- VMOVSSZrmk = 13986,
- VMOVSSZrmkz = 13987,
- VMOVSSZrr = 13988,
- VMOVSSZrr_REV = 13989,
- VMOVSSZrrk = 13990,
- VMOVSSZrrk_REV = 13991,
- VMOVSSZrrkz = 13992,
- VMOVSSZrrkz_REV = 13993,
- VMOVSSmr = 13994,
- VMOVSSrm = 13995,
- VMOVSSrm_alt = 13996,
- VMOVSSrr = 13997,
- VMOVSSrr_REV = 13998,
- VMOVUPDYmr = 13999,
- VMOVUPDYrm = 14000,
- VMOVUPDYrr = 14001,
- VMOVUPDYrr_REV = 14002,
- VMOVUPDZ128mr = 14003,
- VMOVUPDZ128mrk = 14004,
- VMOVUPDZ128rm = 14005,
- VMOVUPDZ128rmk = 14006,
- VMOVUPDZ128rmkz = 14007,
- VMOVUPDZ128rr = 14008,
- VMOVUPDZ128rr_REV = 14009,
- VMOVUPDZ128rrk = 14010,
- VMOVUPDZ128rrk_REV = 14011,
- VMOVUPDZ128rrkz = 14012,
- VMOVUPDZ128rrkz_REV = 14013,
- VMOVUPDZ256mr = 14014,
- VMOVUPDZ256mrk = 14015,
- VMOVUPDZ256rm = 14016,
- VMOVUPDZ256rmk = 14017,
- VMOVUPDZ256rmkz = 14018,
- VMOVUPDZ256rr = 14019,
- VMOVUPDZ256rr_REV = 14020,
- VMOVUPDZ256rrk = 14021,
- VMOVUPDZ256rrk_REV = 14022,
- VMOVUPDZ256rrkz = 14023,
- VMOVUPDZ256rrkz_REV = 14024,
- VMOVUPDZmr = 14025,
- VMOVUPDZmrk = 14026,
- VMOVUPDZrm = 14027,
- VMOVUPDZrmk = 14028,
- VMOVUPDZrmkz = 14029,
- VMOVUPDZrr = 14030,
- VMOVUPDZrr_REV = 14031,
- VMOVUPDZrrk = 14032,
- VMOVUPDZrrk_REV = 14033,
- VMOVUPDZrrkz = 14034,
- VMOVUPDZrrkz_REV = 14035,
- VMOVUPDmr = 14036,
- VMOVUPDrm = 14037,
- VMOVUPDrr = 14038,
- VMOVUPDrr_REV = 14039,
- VMOVUPSYmr = 14040,
- VMOVUPSYrm = 14041,
- VMOVUPSYrr = 14042,
- VMOVUPSYrr_REV = 14043,
- VMOVUPSZ128mr = 14044,
- VMOVUPSZ128mrk = 14045,
- VMOVUPSZ128rm = 14046,
- VMOVUPSZ128rmk = 14047,
- VMOVUPSZ128rmkz = 14048,
- VMOVUPSZ128rr = 14049,
- VMOVUPSZ128rr_REV = 14050,
- VMOVUPSZ128rrk = 14051,
- VMOVUPSZ128rrk_REV = 14052,
- VMOVUPSZ128rrkz = 14053,
- VMOVUPSZ128rrkz_REV = 14054,
- VMOVUPSZ256mr = 14055,
- VMOVUPSZ256mrk = 14056,
- VMOVUPSZ256rm = 14057,
- VMOVUPSZ256rmk = 14058,
- VMOVUPSZ256rmkz = 14059,
- VMOVUPSZ256rr = 14060,
- VMOVUPSZ256rr_REV = 14061,
- VMOVUPSZ256rrk = 14062,
- VMOVUPSZ256rrk_REV = 14063,
- VMOVUPSZ256rrkz = 14064,
- VMOVUPSZ256rrkz_REV = 14065,
- VMOVUPSZmr = 14066,
- VMOVUPSZmrk = 14067,
- VMOVUPSZrm = 14068,
- VMOVUPSZrmk = 14069,
- VMOVUPSZrmkz = 14070,
- VMOVUPSZrr = 14071,
- VMOVUPSZrr_REV = 14072,
- VMOVUPSZrrk = 14073,
- VMOVUPSZrrk_REV = 14074,
- VMOVUPSZrrkz = 14075,
- VMOVUPSZrrkz_REV = 14076,
- VMOVUPSmr = 14077,
- VMOVUPSrm = 14078,
- VMOVUPSrr = 14079,
- VMOVUPSrr_REV = 14080,
- VMOVW2SHrr = 14081,
- VMOVW64toSHrr = 14082,
- VMOVWmr = 14083,
- VMOVWrm = 14084,
- VMOVZPDILo2PDIZmr = 14085,
- VMOVZPDILo2PDIZrm = 14086,
- VMOVZPDILo2PDIZrr = 14087,
- VMOVZPDILo2PDIZrr2 = 14088,
- VMOVZPQILo2PQIZrr = 14089,
- VMOVZPQILo2PQIrr = 14090,
- VMOVZPWILo2PWIZmr = 14091,
- VMOVZPWILo2PWIZrm = 14092,
- VMOVZPWILo2PWIZrr = 14093,
- VMOVZPWILo2PWIZrr2 = 14094,
- VMPSADBWYrmi = 14095,
- VMPSADBWYrri = 14096,
- VMPSADBWZ128rmi = 14097,
- VMPSADBWZ128rmik = 14098,
- VMPSADBWZ128rmikz = 14099,
- VMPSADBWZ128rri = 14100,
- VMPSADBWZ128rrik = 14101,
- VMPSADBWZ128rrikz = 14102,
- VMPSADBWZ256rmi = 14103,
- VMPSADBWZ256rmik = 14104,
- VMPSADBWZ256rmikz = 14105,
- VMPSADBWZ256rri = 14106,
- VMPSADBWZ256rrik = 14107,
- VMPSADBWZ256rrikz = 14108,
- VMPSADBWZrmi = 14109,
- VMPSADBWZrmik = 14110,
- VMPSADBWZrmikz = 14111,
- VMPSADBWZrri = 14112,
- VMPSADBWZrrik = 14113,
- VMPSADBWZrrikz = 14114,
- VMPSADBWrmi = 14115,
- VMPSADBWrri = 14116,
- VMPTRLDm = 14117,
- VMPTRSTm = 14118,
- VMREAD32mr = 14119,
- VMREAD32rr = 14120,
- VMREAD64mr = 14121,
- VMREAD64rr = 14122,
- VMRESUME = 14123,
- VMRUN32 = 14124,
- VMRUN64 = 14125,
- VMSAVE32 = 14126,
- VMSAVE64 = 14127,
- VMULBF16Z128rm = 14128,
- VMULBF16Z128rmb = 14129,
- VMULBF16Z128rmbk = 14130,
- VMULBF16Z128rmbkz = 14131,
- VMULBF16Z128rmk = 14132,
- VMULBF16Z128rmkz = 14133,
- VMULBF16Z128rr = 14134,
- VMULBF16Z128rrk = 14135,
- VMULBF16Z128rrkz = 14136,
- VMULBF16Z256rm = 14137,
- VMULBF16Z256rmb = 14138,
- VMULBF16Z256rmbk = 14139,
- VMULBF16Z256rmbkz = 14140,
- VMULBF16Z256rmk = 14141,
- VMULBF16Z256rmkz = 14142,
- VMULBF16Z256rr = 14143,
- VMULBF16Z256rrk = 14144,
- VMULBF16Z256rrkz = 14145,
- VMULBF16Zrm = 14146,
- VMULBF16Zrmb = 14147,
- VMULBF16Zrmbk = 14148,
- VMULBF16Zrmbkz = 14149,
- VMULBF16Zrmk = 14150,
- VMULBF16Zrmkz = 14151,
- VMULBF16Zrr = 14152,
- VMULBF16Zrrk = 14153,
- VMULBF16Zrrkz = 14154,
- VMULPDYrm = 14155,
- VMULPDYrr = 14156,
- VMULPDZ128rm = 14157,
- VMULPDZ128rmb = 14158,
- VMULPDZ128rmbk = 14159,
- VMULPDZ128rmbkz = 14160,
- VMULPDZ128rmk = 14161,
- VMULPDZ128rmkz = 14162,
- VMULPDZ128rr = 14163,
- VMULPDZ128rrk = 14164,
- VMULPDZ128rrkz = 14165,
- VMULPDZ256rm = 14166,
- VMULPDZ256rmb = 14167,
- VMULPDZ256rmbk = 14168,
- VMULPDZ256rmbkz = 14169,
- VMULPDZ256rmk = 14170,
- VMULPDZ256rmkz = 14171,
- VMULPDZ256rr = 14172,
- VMULPDZ256rrk = 14173,
- VMULPDZ256rrkz = 14174,
- VMULPDZrm = 14175,
- VMULPDZrmb = 14176,
- VMULPDZrmbk = 14177,
- VMULPDZrmbkz = 14178,
- VMULPDZrmk = 14179,
- VMULPDZrmkz = 14180,
- VMULPDZrr = 14181,
- VMULPDZrrb = 14182,
- VMULPDZrrbk = 14183,
- VMULPDZrrbkz = 14184,
- VMULPDZrrk = 14185,
- VMULPDZrrkz = 14186,
- VMULPDrm = 14187,
- VMULPDrr = 14188,
- VMULPHZ128rm = 14189,
- VMULPHZ128rmb = 14190,
- VMULPHZ128rmbk = 14191,
- VMULPHZ128rmbkz = 14192,
- VMULPHZ128rmk = 14193,
- VMULPHZ128rmkz = 14194,
- VMULPHZ128rr = 14195,
- VMULPHZ128rrk = 14196,
- VMULPHZ128rrkz = 14197,
- VMULPHZ256rm = 14198,
- VMULPHZ256rmb = 14199,
- VMULPHZ256rmbk = 14200,
- VMULPHZ256rmbkz = 14201,
- VMULPHZ256rmk = 14202,
- VMULPHZ256rmkz = 14203,
- VMULPHZ256rr = 14204,
- VMULPHZ256rrk = 14205,
- VMULPHZ256rrkz = 14206,
- VMULPHZrm = 14207,
- VMULPHZrmb = 14208,
- VMULPHZrmbk = 14209,
- VMULPHZrmbkz = 14210,
- VMULPHZrmk = 14211,
- VMULPHZrmkz = 14212,
- VMULPHZrr = 14213,
- VMULPHZrrb = 14214,
- VMULPHZrrbk = 14215,
- VMULPHZrrbkz = 14216,
- VMULPHZrrk = 14217,
- VMULPHZrrkz = 14218,
- VMULPSYrm = 14219,
- VMULPSYrr = 14220,
- VMULPSZ128rm = 14221,
- VMULPSZ128rmb = 14222,
- VMULPSZ128rmbk = 14223,
- VMULPSZ128rmbkz = 14224,
- VMULPSZ128rmk = 14225,
- VMULPSZ128rmkz = 14226,
- VMULPSZ128rr = 14227,
- VMULPSZ128rrk = 14228,
- VMULPSZ128rrkz = 14229,
- VMULPSZ256rm = 14230,
- VMULPSZ256rmb = 14231,
- VMULPSZ256rmbk = 14232,
- VMULPSZ256rmbkz = 14233,
- VMULPSZ256rmk = 14234,
- VMULPSZ256rmkz = 14235,
- VMULPSZ256rr = 14236,
- VMULPSZ256rrk = 14237,
- VMULPSZ256rrkz = 14238,
- VMULPSZrm = 14239,
- VMULPSZrmb = 14240,
- VMULPSZrmbk = 14241,
- VMULPSZrmbkz = 14242,
- VMULPSZrmk = 14243,
- VMULPSZrmkz = 14244,
- VMULPSZrr = 14245,
- VMULPSZrrb = 14246,
- VMULPSZrrbk = 14247,
- VMULPSZrrbkz = 14248,
- VMULPSZrrk = 14249,
- VMULPSZrrkz = 14250,
- VMULPSrm = 14251,
- VMULPSrr = 14252,
- VMULSDZrm = 14253,
- VMULSDZrm_Int = 14254,
- VMULSDZrmk_Int = 14255,
- VMULSDZrmkz_Int = 14256,
- VMULSDZrr = 14257,
- VMULSDZrr_Int = 14258,
- VMULSDZrrb_Int = 14259,
- VMULSDZrrbk_Int = 14260,
- VMULSDZrrbkz_Int = 14261,
- VMULSDZrrk_Int = 14262,
- VMULSDZrrkz_Int = 14263,
- VMULSDrm = 14264,
- VMULSDrm_Int = 14265,
- VMULSDrr = 14266,
- VMULSDrr_Int = 14267,
- VMULSHZrm = 14268,
- VMULSHZrm_Int = 14269,
- VMULSHZrmk_Int = 14270,
- VMULSHZrmkz_Int = 14271,
- VMULSHZrr = 14272,
- VMULSHZrr_Int = 14273,
- VMULSHZrrb_Int = 14274,
- VMULSHZrrbk_Int = 14275,
- VMULSHZrrbkz_Int = 14276,
- VMULSHZrrk_Int = 14277,
- VMULSHZrrkz_Int = 14278,
- VMULSSZrm = 14279,
- VMULSSZrm_Int = 14280,
- VMULSSZrmk_Int = 14281,
- VMULSSZrmkz_Int = 14282,
- VMULSSZrr = 14283,
- VMULSSZrr_Int = 14284,
- VMULSSZrrb_Int = 14285,
- VMULSSZrrbk_Int = 14286,
- VMULSSZrrbkz_Int = 14287,
- VMULSSZrrk_Int = 14288,
- VMULSSZrrkz_Int = 14289,
- VMULSSrm = 14290,
- VMULSSrm_Int = 14291,
- VMULSSrr = 14292,
- VMULSSrr_Int = 14293,
- VMWRITE32rm = 14294,
- VMWRITE32rr = 14295,
- VMWRITE64rm = 14296,
- VMWRITE64rr = 14297,
- VMXOFF = 14298,
- VMXON = 14299,
- VORPDYrm = 14300,
- VORPDYrr = 14301,
- VORPDZ128rm = 14302,
- VORPDZ128rmb = 14303,
- VORPDZ128rmbk = 14304,
- VORPDZ128rmbkz = 14305,
- VORPDZ128rmk = 14306,
- VORPDZ128rmkz = 14307,
- VORPDZ128rr = 14308,
- VORPDZ128rrk = 14309,
- VORPDZ128rrkz = 14310,
- VORPDZ256rm = 14311,
- VORPDZ256rmb = 14312,
- VORPDZ256rmbk = 14313,
- VORPDZ256rmbkz = 14314,
- VORPDZ256rmk = 14315,
- VORPDZ256rmkz = 14316,
- VORPDZ256rr = 14317,
- VORPDZ256rrk = 14318,
- VORPDZ256rrkz = 14319,
- VORPDZrm = 14320,
- VORPDZrmb = 14321,
- VORPDZrmbk = 14322,
- VORPDZrmbkz = 14323,
- VORPDZrmk = 14324,
- VORPDZrmkz = 14325,
- VORPDZrr = 14326,
- VORPDZrrk = 14327,
- VORPDZrrkz = 14328,
- VORPDrm = 14329,
- VORPDrr = 14330,
- VORPSYrm = 14331,
- VORPSYrr = 14332,
- VORPSZ128rm = 14333,
- VORPSZ128rmb = 14334,
- VORPSZ128rmbk = 14335,
- VORPSZ128rmbkz = 14336,
- VORPSZ128rmk = 14337,
- VORPSZ128rmkz = 14338,
- VORPSZ128rr = 14339,
- VORPSZ128rrk = 14340,
- VORPSZ128rrkz = 14341,
- VORPSZ256rm = 14342,
- VORPSZ256rmb = 14343,
- VORPSZ256rmbk = 14344,
- VORPSZ256rmbkz = 14345,
- VORPSZ256rmk = 14346,
- VORPSZ256rmkz = 14347,
- VORPSZ256rr = 14348,
- VORPSZ256rrk = 14349,
- VORPSZ256rrkz = 14350,
- VORPSZrm = 14351,
- VORPSZrmb = 14352,
- VORPSZrmbk = 14353,
- VORPSZrmbkz = 14354,
- VORPSZrmk = 14355,
- VORPSZrmkz = 14356,
- VORPSZrr = 14357,
- VORPSZrrk = 14358,
- VORPSZrrkz = 14359,
- VORPSrm = 14360,
- VORPSrr = 14361,
- VP2INTERSECTDZ128rm = 14362,
- VP2INTERSECTDZ128rmb = 14363,
- VP2INTERSECTDZ128rr = 14364,
- VP2INTERSECTDZ256rm = 14365,
- VP2INTERSECTDZ256rmb = 14366,
- VP2INTERSECTDZ256rr = 14367,
- VP2INTERSECTDZrm = 14368,
- VP2INTERSECTDZrmb = 14369,
- VP2INTERSECTDZrr = 14370,
- VP2INTERSECTQZ128rm = 14371,
- VP2INTERSECTQZ128rmb = 14372,
- VP2INTERSECTQZ128rr = 14373,
- VP2INTERSECTQZ256rm = 14374,
- VP2INTERSECTQZ256rmb = 14375,
- VP2INTERSECTQZ256rr = 14376,
- VP2INTERSECTQZrm = 14377,
- VP2INTERSECTQZrmb = 14378,
- VP2INTERSECTQZrr = 14379,
- VP4DPWSSDSrm = 14380,
- VP4DPWSSDSrmk = 14381,
- VP4DPWSSDSrmkz = 14382,
- VP4DPWSSDrm = 14383,
- VP4DPWSSDrmk = 14384,
- VP4DPWSSDrmkz = 14385,
- VPABSBYrm = 14386,
- VPABSBYrr = 14387,
- VPABSBZ128rm = 14388,
- VPABSBZ128rmk = 14389,
- VPABSBZ128rmkz = 14390,
- VPABSBZ128rr = 14391,
- VPABSBZ128rrk = 14392,
- VPABSBZ128rrkz = 14393,
- VPABSBZ256rm = 14394,
- VPABSBZ256rmk = 14395,
- VPABSBZ256rmkz = 14396,
- VPABSBZ256rr = 14397,
- VPABSBZ256rrk = 14398,
- VPABSBZ256rrkz = 14399,
- VPABSBZrm = 14400,
- VPABSBZrmk = 14401,
- VPABSBZrmkz = 14402,
- VPABSBZrr = 14403,
- VPABSBZrrk = 14404,
- VPABSBZrrkz = 14405,
- VPABSBrm = 14406,
- VPABSBrr = 14407,
- VPABSDYrm = 14408,
- VPABSDYrr = 14409,
- VPABSDZ128rm = 14410,
- VPABSDZ128rmb = 14411,
- VPABSDZ128rmbk = 14412,
- VPABSDZ128rmbkz = 14413,
- VPABSDZ128rmk = 14414,
- VPABSDZ128rmkz = 14415,
- VPABSDZ128rr = 14416,
- VPABSDZ128rrk = 14417,
- VPABSDZ128rrkz = 14418,
- VPABSDZ256rm = 14419,
- VPABSDZ256rmb = 14420,
- VPABSDZ256rmbk = 14421,
- VPABSDZ256rmbkz = 14422,
- VPABSDZ256rmk = 14423,
- VPABSDZ256rmkz = 14424,
- VPABSDZ256rr = 14425,
- VPABSDZ256rrk = 14426,
- VPABSDZ256rrkz = 14427,
- VPABSDZrm = 14428,
- VPABSDZrmb = 14429,
- VPABSDZrmbk = 14430,
- VPABSDZrmbkz = 14431,
- VPABSDZrmk = 14432,
- VPABSDZrmkz = 14433,
- VPABSDZrr = 14434,
- VPABSDZrrk = 14435,
- VPABSDZrrkz = 14436,
- VPABSDrm = 14437,
- VPABSDrr = 14438,
- VPABSQZ128rm = 14439,
- VPABSQZ128rmb = 14440,
- VPABSQZ128rmbk = 14441,
- VPABSQZ128rmbkz = 14442,
- VPABSQZ128rmk = 14443,
- VPABSQZ128rmkz = 14444,
- VPABSQZ128rr = 14445,
- VPABSQZ128rrk = 14446,
- VPABSQZ128rrkz = 14447,
- VPABSQZ256rm = 14448,
- VPABSQZ256rmb = 14449,
- VPABSQZ256rmbk = 14450,
- VPABSQZ256rmbkz = 14451,
- VPABSQZ256rmk = 14452,
- VPABSQZ256rmkz = 14453,
- VPABSQZ256rr = 14454,
- VPABSQZ256rrk = 14455,
- VPABSQZ256rrkz = 14456,
- VPABSQZrm = 14457,
- VPABSQZrmb = 14458,
- VPABSQZrmbk = 14459,
- VPABSQZrmbkz = 14460,
- VPABSQZrmk = 14461,
- VPABSQZrmkz = 14462,
- VPABSQZrr = 14463,
- VPABSQZrrk = 14464,
- VPABSQZrrkz = 14465,
- VPABSWYrm = 14466,
- VPABSWYrr = 14467,
- VPABSWZ128rm = 14468,
- VPABSWZ128rmk = 14469,
- VPABSWZ128rmkz = 14470,
- VPABSWZ128rr = 14471,
- VPABSWZ128rrk = 14472,
- VPABSWZ128rrkz = 14473,
- VPABSWZ256rm = 14474,
- VPABSWZ256rmk = 14475,
- VPABSWZ256rmkz = 14476,
- VPABSWZ256rr = 14477,
- VPABSWZ256rrk = 14478,
- VPABSWZ256rrkz = 14479,
- VPABSWZrm = 14480,
- VPABSWZrmk = 14481,
- VPABSWZrmkz = 14482,
- VPABSWZrr = 14483,
- VPABSWZrrk = 14484,
- VPABSWZrrkz = 14485,
- VPABSWrm = 14486,
- VPABSWrr = 14487,
- VPACKSSDWYrm = 14488,
- VPACKSSDWYrr = 14489,
- VPACKSSDWZ128rm = 14490,
- VPACKSSDWZ128rmb = 14491,
- VPACKSSDWZ128rmbk = 14492,
- VPACKSSDWZ128rmbkz = 14493,
- VPACKSSDWZ128rmk = 14494,
- VPACKSSDWZ128rmkz = 14495,
- VPACKSSDWZ128rr = 14496,
- VPACKSSDWZ128rrk = 14497,
- VPACKSSDWZ128rrkz = 14498,
- VPACKSSDWZ256rm = 14499,
- VPACKSSDWZ256rmb = 14500,
- VPACKSSDWZ256rmbk = 14501,
- VPACKSSDWZ256rmbkz = 14502,
- VPACKSSDWZ256rmk = 14503,
- VPACKSSDWZ256rmkz = 14504,
- VPACKSSDWZ256rr = 14505,
- VPACKSSDWZ256rrk = 14506,
- VPACKSSDWZ256rrkz = 14507,
- VPACKSSDWZrm = 14508,
- VPACKSSDWZrmb = 14509,
- VPACKSSDWZrmbk = 14510,
- VPACKSSDWZrmbkz = 14511,
- VPACKSSDWZrmk = 14512,
- VPACKSSDWZrmkz = 14513,
- VPACKSSDWZrr = 14514,
- VPACKSSDWZrrk = 14515,
- VPACKSSDWZrrkz = 14516,
- VPACKSSDWrm = 14517,
- VPACKSSDWrr = 14518,
- VPACKSSWBYrm = 14519,
- VPACKSSWBYrr = 14520,
- VPACKSSWBZ128rm = 14521,
- VPACKSSWBZ128rmk = 14522,
- VPACKSSWBZ128rmkz = 14523,
- VPACKSSWBZ128rr = 14524,
- VPACKSSWBZ128rrk = 14525,
- VPACKSSWBZ128rrkz = 14526,
- VPACKSSWBZ256rm = 14527,
- VPACKSSWBZ256rmk = 14528,
- VPACKSSWBZ256rmkz = 14529,
- VPACKSSWBZ256rr = 14530,
- VPACKSSWBZ256rrk = 14531,
- VPACKSSWBZ256rrkz = 14532,
- VPACKSSWBZrm = 14533,
- VPACKSSWBZrmk = 14534,
- VPACKSSWBZrmkz = 14535,
- VPACKSSWBZrr = 14536,
- VPACKSSWBZrrk = 14537,
- VPACKSSWBZrrkz = 14538,
- VPACKSSWBrm = 14539,
- VPACKSSWBrr = 14540,
- VPACKUSDWYrm = 14541,
- VPACKUSDWYrr = 14542,
- VPACKUSDWZ128rm = 14543,
- VPACKUSDWZ128rmb = 14544,
- VPACKUSDWZ128rmbk = 14545,
- VPACKUSDWZ128rmbkz = 14546,
- VPACKUSDWZ128rmk = 14547,
- VPACKUSDWZ128rmkz = 14548,
- VPACKUSDWZ128rr = 14549,
- VPACKUSDWZ128rrk = 14550,
- VPACKUSDWZ128rrkz = 14551,
- VPACKUSDWZ256rm = 14552,
- VPACKUSDWZ256rmb = 14553,
- VPACKUSDWZ256rmbk = 14554,
- VPACKUSDWZ256rmbkz = 14555,
- VPACKUSDWZ256rmk = 14556,
- VPACKUSDWZ256rmkz = 14557,
- VPACKUSDWZ256rr = 14558,
- VPACKUSDWZ256rrk = 14559,
- VPACKUSDWZ256rrkz = 14560,
- VPACKUSDWZrm = 14561,
- VPACKUSDWZrmb = 14562,
- VPACKUSDWZrmbk = 14563,
- VPACKUSDWZrmbkz = 14564,
- VPACKUSDWZrmk = 14565,
- VPACKUSDWZrmkz = 14566,
- VPACKUSDWZrr = 14567,
- VPACKUSDWZrrk = 14568,
- VPACKUSDWZrrkz = 14569,
- VPACKUSDWrm = 14570,
- VPACKUSDWrr = 14571,
- VPACKUSWBYrm = 14572,
- VPACKUSWBYrr = 14573,
- VPACKUSWBZ128rm = 14574,
- VPACKUSWBZ128rmk = 14575,
- VPACKUSWBZ128rmkz = 14576,
- VPACKUSWBZ128rr = 14577,
- VPACKUSWBZ128rrk = 14578,
- VPACKUSWBZ128rrkz = 14579,
- VPACKUSWBZ256rm = 14580,
- VPACKUSWBZ256rmk = 14581,
- VPACKUSWBZ256rmkz = 14582,
- VPACKUSWBZ256rr = 14583,
- VPACKUSWBZ256rrk = 14584,
- VPACKUSWBZ256rrkz = 14585,
- VPACKUSWBZrm = 14586,
- VPACKUSWBZrmk = 14587,
- VPACKUSWBZrmkz = 14588,
- VPACKUSWBZrr = 14589,
- VPACKUSWBZrrk = 14590,
- VPACKUSWBZrrkz = 14591,
- VPACKUSWBrm = 14592,
- VPACKUSWBrr = 14593,
- VPADDBYrm = 14594,
- VPADDBYrr = 14595,
- VPADDBZ128rm = 14596,
- VPADDBZ128rmk = 14597,
- VPADDBZ128rmkz = 14598,
- VPADDBZ128rr = 14599,
- VPADDBZ128rrk = 14600,
- VPADDBZ128rrkz = 14601,
- VPADDBZ256rm = 14602,
- VPADDBZ256rmk = 14603,
- VPADDBZ256rmkz = 14604,
- VPADDBZ256rr = 14605,
- VPADDBZ256rrk = 14606,
- VPADDBZ256rrkz = 14607,
- VPADDBZrm = 14608,
- VPADDBZrmk = 14609,
- VPADDBZrmkz = 14610,
- VPADDBZrr = 14611,
- VPADDBZrrk = 14612,
- VPADDBZrrkz = 14613,
- VPADDBrm = 14614,
- VPADDBrr = 14615,
- VPADDDYrm = 14616,
- VPADDDYrr = 14617,
- VPADDDZ128rm = 14618,
- VPADDDZ128rmb = 14619,
- VPADDDZ128rmbk = 14620,
- VPADDDZ128rmbkz = 14621,
- VPADDDZ128rmk = 14622,
- VPADDDZ128rmkz = 14623,
- VPADDDZ128rr = 14624,
- VPADDDZ128rrk = 14625,
- VPADDDZ128rrkz = 14626,
- VPADDDZ256rm = 14627,
- VPADDDZ256rmb = 14628,
- VPADDDZ256rmbk = 14629,
- VPADDDZ256rmbkz = 14630,
- VPADDDZ256rmk = 14631,
- VPADDDZ256rmkz = 14632,
- VPADDDZ256rr = 14633,
- VPADDDZ256rrk = 14634,
- VPADDDZ256rrkz = 14635,
- VPADDDZrm = 14636,
- VPADDDZrmb = 14637,
- VPADDDZrmbk = 14638,
- VPADDDZrmbkz = 14639,
- VPADDDZrmk = 14640,
- VPADDDZrmkz = 14641,
- VPADDDZrr = 14642,
- VPADDDZrrk = 14643,
- VPADDDZrrkz = 14644,
- VPADDDrm = 14645,
- VPADDDrr = 14646,
- VPADDQYrm = 14647,
- VPADDQYrr = 14648,
- VPADDQZ128rm = 14649,
- VPADDQZ128rmb = 14650,
- VPADDQZ128rmbk = 14651,
- VPADDQZ128rmbkz = 14652,
- VPADDQZ128rmk = 14653,
- VPADDQZ128rmkz = 14654,
- VPADDQZ128rr = 14655,
- VPADDQZ128rrk = 14656,
- VPADDQZ128rrkz = 14657,
- VPADDQZ256rm = 14658,
- VPADDQZ256rmb = 14659,
- VPADDQZ256rmbk = 14660,
- VPADDQZ256rmbkz = 14661,
- VPADDQZ256rmk = 14662,
- VPADDQZ256rmkz = 14663,
- VPADDQZ256rr = 14664,
- VPADDQZ256rrk = 14665,
- VPADDQZ256rrkz = 14666,
- VPADDQZrm = 14667,
- VPADDQZrmb = 14668,
- VPADDQZrmbk = 14669,
- VPADDQZrmbkz = 14670,
- VPADDQZrmk = 14671,
- VPADDQZrmkz = 14672,
- VPADDQZrr = 14673,
- VPADDQZrrk = 14674,
- VPADDQZrrkz = 14675,
- VPADDQrm = 14676,
- VPADDQrr = 14677,
- VPADDSBYrm = 14678,
- VPADDSBYrr = 14679,
- VPADDSBZ128rm = 14680,
- VPADDSBZ128rmk = 14681,
- VPADDSBZ128rmkz = 14682,
- VPADDSBZ128rr = 14683,
- VPADDSBZ128rrk = 14684,
- VPADDSBZ128rrkz = 14685,
- VPADDSBZ256rm = 14686,
- VPADDSBZ256rmk = 14687,
- VPADDSBZ256rmkz = 14688,
- VPADDSBZ256rr = 14689,
- VPADDSBZ256rrk = 14690,
- VPADDSBZ256rrkz = 14691,
- VPADDSBZrm = 14692,
- VPADDSBZrmk = 14693,
- VPADDSBZrmkz = 14694,
- VPADDSBZrr = 14695,
- VPADDSBZrrk = 14696,
- VPADDSBZrrkz = 14697,
- VPADDSBrm = 14698,
- VPADDSBrr = 14699,
- VPADDSWYrm = 14700,
- VPADDSWYrr = 14701,
- VPADDSWZ128rm = 14702,
- VPADDSWZ128rmk = 14703,
- VPADDSWZ128rmkz = 14704,
- VPADDSWZ128rr = 14705,
- VPADDSWZ128rrk = 14706,
- VPADDSWZ128rrkz = 14707,
- VPADDSWZ256rm = 14708,
- VPADDSWZ256rmk = 14709,
- VPADDSWZ256rmkz = 14710,
- VPADDSWZ256rr = 14711,
- VPADDSWZ256rrk = 14712,
- VPADDSWZ256rrkz = 14713,
- VPADDSWZrm = 14714,
- VPADDSWZrmk = 14715,
- VPADDSWZrmkz = 14716,
- VPADDSWZrr = 14717,
- VPADDSWZrrk = 14718,
- VPADDSWZrrkz = 14719,
- VPADDSWrm = 14720,
- VPADDSWrr = 14721,
- VPADDUSBYrm = 14722,
- VPADDUSBYrr = 14723,
- VPADDUSBZ128rm = 14724,
- VPADDUSBZ128rmk = 14725,
- VPADDUSBZ128rmkz = 14726,
- VPADDUSBZ128rr = 14727,
- VPADDUSBZ128rrk = 14728,
- VPADDUSBZ128rrkz = 14729,
- VPADDUSBZ256rm = 14730,
- VPADDUSBZ256rmk = 14731,
- VPADDUSBZ256rmkz = 14732,
- VPADDUSBZ256rr = 14733,
- VPADDUSBZ256rrk = 14734,
- VPADDUSBZ256rrkz = 14735,
- VPADDUSBZrm = 14736,
- VPADDUSBZrmk = 14737,
- VPADDUSBZrmkz = 14738,
- VPADDUSBZrr = 14739,
- VPADDUSBZrrk = 14740,
- VPADDUSBZrrkz = 14741,
- VPADDUSBrm = 14742,
- VPADDUSBrr = 14743,
- VPADDUSWYrm = 14744,
- VPADDUSWYrr = 14745,
- VPADDUSWZ128rm = 14746,
- VPADDUSWZ128rmk = 14747,
- VPADDUSWZ128rmkz = 14748,
- VPADDUSWZ128rr = 14749,
- VPADDUSWZ128rrk = 14750,
- VPADDUSWZ128rrkz = 14751,
- VPADDUSWZ256rm = 14752,
- VPADDUSWZ256rmk = 14753,
- VPADDUSWZ256rmkz = 14754,
- VPADDUSWZ256rr = 14755,
- VPADDUSWZ256rrk = 14756,
- VPADDUSWZ256rrkz = 14757,
- VPADDUSWZrm = 14758,
- VPADDUSWZrmk = 14759,
- VPADDUSWZrmkz = 14760,
- VPADDUSWZrr = 14761,
- VPADDUSWZrrk = 14762,
- VPADDUSWZrrkz = 14763,
- VPADDUSWrm = 14764,
- VPADDUSWrr = 14765,
- VPADDWYrm = 14766,
- VPADDWYrr = 14767,
- VPADDWZ128rm = 14768,
- VPADDWZ128rmk = 14769,
- VPADDWZ128rmkz = 14770,
- VPADDWZ128rr = 14771,
- VPADDWZ128rrk = 14772,
- VPADDWZ128rrkz = 14773,
- VPADDWZ256rm = 14774,
- VPADDWZ256rmk = 14775,
- VPADDWZ256rmkz = 14776,
- VPADDWZ256rr = 14777,
- VPADDWZ256rrk = 14778,
- VPADDWZ256rrkz = 14779,
- VPADDWZrm = 14780,
- VPADDWZrmk = 14781,
- VPADDWZrmkz = 14782,
- VPADDWZrr = 14783,
- VPADDWZrrk = 14784,
- VPADDWZrrkz = 14785,
- VPADDWrm = 14786,
- VPADDWrr = 14787,
- VPALIGNRYrmi = 14788,
- VPALIGNRYrri = 14789,
- VPALIGNRZ128rmi = 14790,
- VPALIGNRZ128rmik = 14791,
- VPALIGNRZ128rmikz = 14792,
- VPALIGNRZ128rri = 14793,
- VPALIGNRZ128rrik = 14794,
- VPALIGNRZ128rrikz = 14795,
- VPALIGNRZ256rmi = 14796,
- VPALIGNRZ256rmik = 14797,
- VPALIGNRZ256rmikz = 14798,
- VPALIGNRZ256rri = 14799,
- VPALIGNRZ256rrik = 14800,
- VPALIGNRZ256rrikz = 14801,
- VPALIGNRZrmi = 14802,
- VPALIGNRZrmik = 14803,
- VPALIGNRZrmikz = 14804,
- VPALIGNRZrri = 14805,
- VPALIGNRZrrik = 14806,
- VPALIGNRZrrikz = 14807,
- VPALIGNRrmi = 14808,
- VPALIGNRrri = 14809,
- VPANDDZ128rm = 14810,
- VPANDDZ128rmb = 14811,
- VPANDDZ128rmbk = 14812,
- VPANDDZ128rmbkz = 14813,
- VPANDDZ128rmk = 14814,
- VPANDDZ128rmkz = 14815,
- VPANDDZ128rr = 14816,
- VPANDDZ128rrk = 14817,
- VPANDDZ128rrkz = 14818,
- VPANDDZ256rm = 14819,
- VPANDDZ256rmb = 14820,
- VPANDDZ256rmbk = 14821,
- VPANDDZ256rmbkz = 14822,
- VPANDDZ256rmk = 14823,
- VPANDDZ256rmkz = 14824,
- VPANDDZ256rr = 14825,
- VPANDDZ256rrk = 14826,
- VPANDDZ256rrkz = 14827,
- VPANDDZrm = 14828,
- VPANDDZrmb = 14829,
- VPANDDZrmbk = 14830,
- VPANDDZrmbkz = 14831,
- VPANDDZrmk = 14832,
- VPANDDZrmkz = 14833,
- VPANDDZrr = 14834,
- VPANDDZrrk = 14835,
- VPANDDZrrkz = 14836,
- VPANDNDZ128rm = 14837,
- VPANDNDZ128rmb = 14838,
- VPANDNDZ128rmbk = 14839,
- VPANDNDZ128rmbkz = 14840,
- VPANDNDZ128rmk = 14841,
- VPANDNDZ128rmkz = 14842,
- VPANDNDZ128rr = 14843,
- VPANDNDZ128rrk = 14844,
- VPANDNDZ128rrkz = 14845,
- VPANDNDZ256rm = 14846,
- VPANDNDZ256rmb = 14847,
- VPANDNDZ256rmbk = 14848,
- VPANDNDZ256rmbkz = 14849,
- VPANDNDZ256rmk = 14850,
- VPANDNDZ256rmkz = 14851,
- VPANDNDZ256rr = 14852,
- VPANDNDZ256rrk = 14853,
- VPANDNDZ256rrkz = 14854,
- VPANDNDZrm = 14855,
- VPANDNDZrmb = 14856,
- VPANDNDZrmbk = 14857,
- VPANDNDZrmbkz = 14858,
- VPANDNDZrmk = 14859,
- VPANDNDZrmkz = 14860,
- VPANDNDZrr = 14861,
- VPANDNDZrrk = 14862,
- VPANDNDZrrkz = 14863,
- VPANDNQZ128rm = 14864,
- VPANDNQZ128rmb = 14865,
- VPANDNQZ128rmbk = 14866,
- VPANDNQZ128rmbkz = 14867,
- VPANDNQZ128rmk = 14868,
- VPANDNQZ128rmkz = 14869,
- VPANDNQZ128rr = 14870,
- VPANDNQZ128rrk = 14871,
- VPANDNQZ128rrkz = 14872,
- VPANDNQZ256rm = 14873,
- VPANDNQZ256rmb = 14874,
- VPANDNQZ256rmbk = 14875,
- VPANDNQZ256rmbkz = 14876,
- VPANDNQZ256rmk = 14877,
- VPANDNQZ256rmkz = 14878,
- VPANDNQZ256rr = 14879,
- VPANDNQZ256rrk = 14880,
- VPANDNQZ256rrkz = 14881,
- VPANDNQZrm = 14882,
- VPANDNQZrmb = 14883,
- VPANDNQZrmbk = 14884,
- VPANDNQZrmbkz = 14885,
- VPANDNQZrmk = 14886,
- VPANDNQZrmkz = 14887,
- VPANDNQZrr = 14888,
- VPANDNQZrrk = 14889,
- VPANDNQZrrkz = 14890,
- VPANDNYrm = 14891,
- VPANDNYrr = 14892,
- VPANDNrm = 14893,
- VPANDNrr = 14894,
- VPANDQZ128rm = 14895,
- VPANDQZ128rmb = 14896,
- VPANDQZ128rmbk = 14897,
- VPANDQZ128rmbkz = 14898,
- VPANDQZ128rmk = 14899,
- VPANDQZ128rmkz = 14900,
- VPANDQZ128rr = 14901,
- VPANDQZ128rrk = 14902,
- VPANDQZ128rrkz = 14903,
- VPANDQZ256rm = 14904,
- VPANDQZ256rmb = 14905,
- VPANDQZ256rmbk = 14906,
- VPANDQZ256rmbkz = 14907,
- VPANDQZ256rmk = 14908,
- VPANDQZ256rmkz = 14909,
- VPANDQZ256rr = 14910,
- VPANDQZ256rrk = 14911,
- VPANDQZ256rrkz = 14912,
- VPANDQZrm = 14913,
- VPANDQZrmb = 14914,
- VPANDQZrmbk = 14915,
- VPANDQZrmbkz = 14916,
- VPANDQZrmk = 14917,
- VPANDQZrmkz = 14918,
- VPANDQZrr = 14919,
- VPANDQZrrk = 14920,
- VPANDQZrrkz = 14921,
- VPANDYrm = 14922,
- VPANDYrr = 14923,
- VPANDrm = 14924,
- VPANDrr = 14925,
- VPAVGBYrm = 14926,
- VPAVGBYrr = 14927,
- VPAVGBZ128rm = 14928,
- VPAVGBZ128rmk = 14929,
- VPAVGBZ128rmkz = 14930,
- VPAVGBZ128rr = 14931,
- VPAVGBZ128rrk = 14932,
- VPAVGBZ128rrkz = 14933,
- VPAVGBZ256rm = 14934,
- VPAVGBZ256rmk = 14935,
- VPAVGBZ256rmkz = 14936,
- VPAVGBZ256rr = 14937,
- VPAVGBZ256rrk = 14938,
- VPAVGBZ256rrkz = 14939,
- VPAVGBZrm = 14940,
- VPAVGBZrmk = 14941,
- VPAVGBZrmkz = 14942,
- VPAVGBZrr = 14943,
- VPAVGBZrrk = 14944,
- VPAVGBZrrkz = 14945,
- VPAVGBrm = 14946,
- VPAVGBrr = 14947,
- VPAVGWYrm = 14948,
- VPAVGWYrr = 14949,
- VPAVGWZ128rm = 14950,
- VPAVGWZ128rmk = 14951,
- VPAVGWZ128rmkz = 14952,
- VPAVGWZ128rr = 14953,
- VPAVGWZ128rrk = 14954,
- VPAVGWZ128rrkz = 14955,
- VPAVGWZ256rm = 14956,
- VPAVGWZ256rmk = 14957,
- VPAVGWZ256rmkz = 14958,
- VPAVGWZ256rr = 14959,
- VPAVGWZ256rrk = 14960,
- VPAVGWZ256rrkz = 14961,
- VPAVGWZrm = 14962,
- VPAVGWZrmk = 14963,
- VPAVGWZrmkz = 14964,
- VPAVGWZrr = 14965,
- VPAVGWZrrk = 14966,
- VPAVGWZrrkz = 14967,
- VPAVGWrm = 14968,
- VPAVGWrr = 14969,
- VPBLENDDYrmi = 14970,
- VPBLENDDYrri = 14971,
- VPBLENDDrmi = 14972,
- VPBLENDDrri = 14973,
- VPBLENDMBZ128rm = 14974,
- VPBLENDMBZ128rmk = 14975,
- VPBLENDMBZ128rmkz = 14976,
- VPBLENDMBZ128rr = 14977,
- VPBLENDMBZ128rrk = 14978,
- VPBLENDMBZ128rrkz = 14979,
- VPBLENDMBZ256rm = 14980,
- VPBLENDMBZ256rmk = 14981,
- VPBLENDMBZ256rmkz = 14982,
- VPBLENDMBZ256rr = 14983,
- VPBLENDMBZ256rrk = 14984,
- VPBLENDMBZ256rrkz = 14985,
- VPBLENDMBZrm = 14986,
- VPBLENDMBZrmk = 14987,
- VPBLENDMBZrmkz = 14988,
- VPBLENDMBZrr = 14989,
- VPBLENDMBZrrk = 14990,
- VPBLENDMBZrrkz = 14991,
- VPBLENDMDZ128rm = 14992,
- VPBLENDMDZ128rmb = 14993,
- VPBLENDMDZ128rmbk = 14994,
- VPBLENDMDZ128rmbkz = 14995,
- VPBLENDMDZ128rmk = 14996,
- VPBLENDMDZ128rmkz = 14997,
- VPBLENDMDZ128rr = 14998,
- VPBLENDMDZ128rrk = 14999,
- VPBLENDMDZ128rrkz = 15000,
- VPBLENDMDZ256rm = 15001,
- VPBLENDMDZ256rmb = 15002,
- VPBLENDMDZ256rmbk = 15003,
- VPBLENDMDZ256rmbkz = 15004,
- VPBLENDMDZ256rmk = 15005,
- VPBLENDMDZ256rmkz = 15006,
- VPBLENDMDZ256rr = 15007,
- VPBLENDMDZ256rrk = 15008,
- VPBLENDMDZ256rrkz = 15009,
- VPBLENDMDZrm = 15010,
- VPBLENDMDZrmb = 15011,
- VPBLENDMDZrmbk = 15012,
- VPBLENDMDZrmbkz = 15013,
- VPBLENDMDZrmk = 15014,
- VPBLENDMDZrmkz = 15015,
- VPBLENDMDZrr = 15016,
- VPBLENDMDZrrk = 15017,
- VPBLENDMDZrrkz = 15018,
- VPBLENDMQZ128rm = 15019,
- VPBLENDMQZ128rmb = 15020,
- VPBLENDMQZ128rmbk = 15021,
- VPBLENDMQZ128rmbkz = 15022,
- VPBLENDMQZ128rmk = 15023,
- VPBLENDMQZ128rmkz = 15024,
- VPBLENDMQZ128rr = 15025,
- VPBLENDMQZ128rrk = 15026,
- VPBLENDMQZ128rrkz = 15027,
- VPBLENDMQZ256rm = 15028,
- VPBLENDMQZ256rmb = 15029,
- VPBLENDMQZ256rmbk = 15030,
- VPBLENDMQZ256rmbkz = 15031,
- VPBLENDMQZ256rmk = 15032,
- VPBLENDMQZ256rmkz = 15033,
- VPBLENDMQZ256rr = 15034,
- VPBLENDMQZ256rrk = 15035,
- VPBLENDMQZ256rrkz = 15036,
- VPBLENDMQZrm = 15037,
- VPBLENDMQZrmb = 15038,
- VPBLENDMQZrmbk = 15039,
- VPBLENDMQZrmbkz = 15040,
- VPBLENDMQZrmk = 15041,
- VPBLENDMQZrmkz = 15042,
- VPBLENDMQZrr = 15043,
- VPBLENDMQZrrk = 15044,
- VPBLENDMQZrrkz = 15045,
- VPBLENDMWZ128rm = 15046,
- VPBLENDMWZ128rmk = 15047,
- VPBLENDMWZ128rmkz = 15048,
- VPBLENDMWZ128rr = 15049,
- VPBLENDMWZ128rrk = 15050,
- VPBLENDMWZ128rrkz = 15051,
- VPBLENDMWZ256rm = 15052,
- VPBLENDMWZ256rmk = 15053,
- VPBLENDMWZ256rmkz = 15054,
- VPBLENDMWZ256rr = 15055,
- VPBLENDMWZ256rrk = 15056,
- VPBLENDMWZ256rrkz = 15057,
- VPBLENDMWZrm = 15058,
- VPBLENDMWZrmk = 15059,
- VPBLENDMWZrmkz = 15060,
- VPBLENDMWZrr = 15061,
- VPBLENDMWZrrk = 15062,
- VPBLENDMWZrrkz = 15063,
- VPBLENDVBYrmr = 15064,
- VPBLENDVBYrrr = 15065,
- VPBLENDVBrmr = 15066,
- VPBLENDVBrrr = 15067,
- VPBLENDWYrmi = 15068,
- VPBLENDWYrri = 15069,
- VPBLENDWrmi = 15070,
- VPBLENDWrri = 15071,
- VPBROADCASTBYrm = 15072,
- VPBROADCASTBYrr = 15073,
- VPBROADCASTBZ128rm = 15074,
- VPBROADCASTBZ128rmk = 15075,
- VPBROADCASTBZ128rmkz = 15076,
- VPBROADCASTBZ128rr = 15077,
- VPBROADCASTBZ128rrk = 15078,
- VPBROADCASTBZ128rrkz = 15079,
- VPBROADCASTBZ256rm = 15080,
- VPBROADCASTBZ256rmk = 15081,
- VPBROADCASTBZ256rmkz = 15082,
- VPBROADCASTBZ256rr = 15083,
- VPBROADCASTBZ256rrk = 15084,
- VPBROADCASTBZ256rrkz = 15085,
- VPBROADCASTBZrm = 15086,
- VPBROADCASTBZrmk = 15087,
- VPBROADCASTBZrmkz = 15088,
- VPBROADCASTBZrr = 15089,
- VPBROADCASTBZrrk = 15090,
- VPBROADCASTBZrrkz = 15091,
- VPBROADCASTBrZ128rr = 15092,
- VPBROADCASTBrZ128rrk = 15093,
- VPBROADCASTBrZ128rrkz = 15094,
- VPBROADCASTBrZ256rr = 15095,
- VPBROADCASTBrZ256rrk = 15096,
- VPBROADCASTBrZ256rrkz = 15097,
- VPBROADCASTBrZrr = 15098,
- VPBROADCASTBrZrrk = 15099,
- VPBROADCASTBrZrrkz = 15100,
- VPBROADCASTBrm = 15101,
- VPBROADCASTBrr = 15102,
- VPBROADCASTDYrm = 15103,
- VPBROADCASTDYrr = 15104,
- VPBROADCASTDZ128rm = 15105,
- VPBROADCASTDZ128rmk = 15106,
- VPBROADCASTDZ128rmkz = 15107,
- VPBROADCASTDZ128rr = 15108,
- VPBROADCASTDZ128rrk = 15109,
- VPBROADCASTDZ128rrkz = 15110,
- VPBROADCASTDZ256rm = 15111,
- VPBROADCASTDZ256rmk = 15112,
- VPBROADCASTDZ256rmkz = 15113,
- VPBROADCASTDZ256rr = 15114,
- VPBROADCASTDZ256rrk = 15115,
- VPBROADCASTDZ256rrkz = 15116,
- VPBROADCASTDZrm = 15117,
- VPBROADCASTDZrmk = 15118,
- VPBROADCASTDZrmkz = 15119,
- VPBROADCASTDZrr = 15120,
- VPBROADCASTDZrrk = 15121,
- VPBROADCASTDZrrkz = 15122,
- VPBROADCASTDrZ128rr = 15123,
- VPBROADCASTDrZ128rrk = 15124,
- VPBROADCASTDrZ128rrkz = 15125,
- VPBROADCASTDrZ256rr = 15126,
- VPBROADCASTDrZ256rrk = 15127,
- VPBROADCASTDrZ256rrkz = 15128,
- VPBROADCASTDrZrr = 15129,
- VPBROADCASTDrZrrk = 15130,
- VPBROADCASTDrZrrkz = 15131,
- VPBROADCASTDrm = 15132,
- VPBROADCASTDrr = 15133,
- VPBROADCASTMB2QZ128rr = 15134,
- VPBROADCASTMB2QZ256rr = 15135,
- VPBROADCASTMB2QZrr = 15136,
- VPBROADCASTMW2DZ128rr = 15137,
- VPBROADCASTMW2DZ256rr = 15138,
- VPBROADCASTMW2DZrr = 15139,
- VPBROADCASTQYrm = 15140,
- VPBROADCASTQYrr = 15141,
- VPBROADCASTQZ128rm = 15142,
- VPBROADCASTQZ128rmk = 15143,
- VPBROADCASTQZ128rmkz = 15144,
- VPBROADCASTQZ128rr = 15145,
- VPBROADCASTQZ128rrk = 15146,
- VPBROADCASTQZ128rrkz = 15147,
- VPBROADCASTQZ256rm = 15148,
- VPBROADCASTQZ256rmk = 15149,
- VPBROADCASTQZ256rmkz = 15150,
- VPBROADCASTQZ256rr = 15151,
- VPBROADCASTQZ256rrk = 15152,
- VPBROADCASTQZ256rrkz = 15153,
- VPBROADCASTQZrm = 15154,
- VPBROADCASTQZrmk = 15155,
- VPBROADCASTQZrmkz = 15156,
- VPBROADCASTQZrr = 15157,
- VPBROADCASTQZrrk = 15158,
- VPBROADCASTQZrrkz = 15159,
- VPBROADCASTQrZ128rr = 15160,
- VPBROADCASTQrZ128rrk = 15161,
- VPBROADCASTQrZ128rrkz = 15162,
- VPBROADCASTQrZ256rr = 15163,
- VPBROADCASTQrZ256rrk = 15164,
- VPBROADCASTQrZ256rrkz = 15165,
- VPBROADCASTQrZrr = 15166,
- VPBROADCASTQrZrrk = 15167,
- VPBROADCASTQrZrrkz = 15168,
- VPBROADCASTQrm = 15169,
- VPBROADCASTQrr = 15170,
- VPBROADCASTWYrm = 15171,
- VPBROADCASTWYrr = 15172,
- VPBROADCASTWZ128rm = 15173,
- VPBROADCASTWZ128rmk = 15174,
- VPBROADCASTWZ128rmkz = 15175,
- VPBROADCASTWZ128rr = 15176,
- VPBROADCASTWZ128rrk = 15177,
- VPBROADCASTWZ128rrkz = 15178,
- VPBROADCASTWZ256rm = 15179,
- VPBROADCASTWZ256rmk = 15180,
- VPBROADCASTWZ256rmkz = 15181,
- VPBROADCASTWZ256rr = 15182,
- VPBROADCASTWZ256rrk = 15183,
- VPBROADCASTWZ256rrkz = 15184,
- VPBROADCASTWZrm = 15185,
- VPBROADCASTWZrmk = 15186,
- VPBROADCASTWZrmkz = 15187,
- VPBROADCASTWZrr = 15188,
- VPBROADCASTWZrrk = 15189,
- VPBROADCASTWZrrkz = 15190,
- VPBROADCASTWrZ128rr = 15191,
- VPBROADCASTWrZ128rrk = 15192,
- VPBROADCASTWrZ128rrkz = 15193,
- VPBROADCASTWrZ256rr = 15194,
- VPBROADCASTWrZ256rrk = 15195,
- VPBROADCASTWrZ256rrkz = 15196,
- VPBROADCASTWrZrr = 15197,
- VPBROADCASTWrZrrk = 15198,
- VPBROADCASTWrZrrkz = 15199,
- VPBROADCASTWrm = 15200,
- VPBROADCASTWrr = 15201,
- VPCLMULQDQYrmi = 15202,
- VPCLMULQDQYrri = 15203,
- VPCLMULQDQZ128rmi = 15204,
- VPCLMULQDQZ128rri = 15205,
- VPCLMULQDQZ256rmi = 15206,
- VPCLMULQDQZ256rri = 15207,
- VPCLMULQDQZrmi = 15208,
- VPCLMULQDQZrri = 15209,
- VPCLMULQDQrmi = 15210,
- VPCLMULQDQrri = 15211,
- VPCMOVYrmr = 15212,
- VPCMOVYrrm = 15213,
- VPCMOVYrrr = 15214,
- VPCMOVYrrr_REV = 15215,
- VPCMOVrmr = 15216,
- VPCMOVrrm = 15217,
- VPCMOVrrr = 15218,
- VPCMOVrrr_REV = 15219,
- VPCMPBZ128rmi = 15220,
- VPCMPBZ128rmik = 15221,
- VPCMPBZ128rri = 15222,
- VPCMPBZ128rrik = 15223,
- VPCMPBZ256rmi = 15224,
- VPCMPBZ256rmik = 15225,
- VPCMPBZ256rri = 15226,
- VPCMPBZ256rrik = 15227,
- VPCMPBZrmi = 15228,
- VPCMPBZrmik = 15229,
- VPCMPBZrri = 15230,
- VPCMPBZrrik = 15231,
- VPCMPDZ128rmbi = 15232,
- VPCMPDZ128rmbik = 15233,
- VPCMPDZ128rmi = 15234,
- VPCMPDZ128rmik = 15235,
- VPCMPDZ128rri = 15236,
- VPCMPDZ128rrik = 15237,
- VPCMPDZ256rmbi = 15238,
- VPCMPDZ256rmbik = 15239,
- VPCMPDZ256rmi = 15240,
- VPCMPDZ256rmik = 15241,
- VPCMPDZ256rri = 15242,
- VPCMPDZ256rrik = 15243,
- VPCMPDZrmbi = 15244,
- VPCMPDZrmbik = 15245,
- VPCMPDZrmi = 15246,
- VPCMPDZrmik = 15247,
- VPCMPDZrri = 15248,
- VPCMPDZrrik = 15249,
- VPCMPEQBYrm = 15250,
- VPCMPEQBYrr = 15251,
- VPCMPEQBZ128rm = 15252,
- VPCMPEQBZ128rmk = 15253,
- VPCMPEQBZ128rr = 15254,
- VPCMPEQBZ128rrk = 15255,
- VPCMPEQBZ256rm = 15256,
- VPCMPEQBZ256rmk = 15257,
- VPCMPEQBZ256rr = 15258,
- VPCMPEQBZ256rrk = 15259,
- VPCMPEQBZrm = 15260,
- VPCMPEQBZrmk = 15261,
- VPCMPEQBZrr = 15262,
- VPCMPEQBZrrk = 15263,
- VPCMPEQBrm = 15264,
- VPCMPEQBrr = 15265,
- VPCMPEQDYrm = 15266,
- VPCMPEQDYrr = 15267,
- VPCMPEQDZ128rm = 15268,
- VPCMPEQDZ128rmb = 15269,
- VPCMPEQDZ128rmbk = 15270,
- VPCMPEQDZ128rmk = 15271,
- VPCMPEQDZ128rr = 15272,
- VPCMPEQDZ128rrk = 15273,
- VPCMPEQDZ256rm = 15274,
- VPCMPEQDZ256rmb = 15275,
- VPCMPEQDZ256rmbk = 15276,
- VPCMPEQDZ256rmk = 15277,
- VPCMPEQDZ256rr = 15278,
- VPCMPEQDZ256rrk = 15279,
- VPCMPEQDZrm = 15280,
- VPCMPEQDZrmb = 15281,
- VPCMPEQDZrmbk = 15282,
- VPCMPEQDZrmk = 15283,
- VPCMPEQDZrr = 15284,
- VPCMPEQDZrrk = 15285,
- VPCMPEQDrm = 15286,
- VPCMPEQDrr = 15287,
- VPCMPEQQYrm = 15288,
- VPCMPEQQYrr = 15289,
- VPCMPEQQZ128rm = 15290,
- VPCMPEQQZ128rmb = 15291,
- VPCMPEQQZ128rmbk = 15292,
- VPCMPEQQZ128rmk = 15293,
- VPCMPEQQZ128rr = 15294,
- VPCMPEQQZ128rrk = 15295,
- VPCMPEQQZ256rm = 15296,
- VPCMPEQQZ256rmb = 15297,
- VPCMPEQQZ256rmbk = 15298,
- VPCMPEQQZ256rmk = 15299,
- VPCMPEQQZ256rr = 15300,
- VPCMPEQQZ256rrk = 15301,
- VPCMPEQQZrm = 15302,
- VPCMPEQQZrmb = 15303,
- VPCMPEQQZrmbk = 15304,
- VPCMPEQQZrmk = 15305,
- VPCMPEQQZrr = 15306,
- VPCMPEQQZrrk = 15307,
- VPCMPEQQrm = 15308,
- VPCMPEQQrr = 15309,
- VPCMPEQWYrm = 15310,
- VPCMPEQWYrr = 15311,
- VPCMPEQWZ128rm = 15312,
- VPCMPEQWZ128rmk = 15313,
- VPCMPEQWZ128rr = 15314,
- VPCMPEQWZ128rrk = 15315,
- VPCMPEQWZ256rm = 15316,
- VPCMPEQWZ256rmk = 15317,
- VPCMPEQWZ256rr = 15318,
- VPCMPEQWZ256rrk = 15319,
- VPCMPEQWZrm = 15320,
- VPCMPEQWZrmk = 15321,
- VPCMPEQWZrr = 15322,
- VPCMPEQWZrrk = 15323,
- VPCMPEQWrm = 15324,
- VPCMPEQWrr = 15325,
- VPCMPESTRIrmi = 15326,
- VPCMPESTRIrri = 15327,
- VPCMPESTRMrmi = 15328,
- VPCMPESTRMrri = 15329,
- VPCMPGTBYrm = 15330,
- VPCMPGTBYrr = 15331,
- VPCMPGTBZ128rm = 15332,
- VPCMPGTBZ128rmk = 15333,
- VPCMPGTBZ128rr = 15334,
- VPCMPGTBZ128rrk = 15335,
- VPCMPGTBZ256rm = 15336,
- VPCMPGTBZ256rmk = 15337,
- VPCMPGTBZ256rr = 15338,
- VPCMPGTBZ256rrk = 15339,
- VPCMPGTBZrm = 15340,
- VPCMPGTBZrmk = 15341,
- VPCMPGTBZrr = 15342,
- VPCMPGTBZrrk = 15343,
- VPCMPGTBrm = 15344,
- VPCMPGTBrr = 15345,
- VPCMPGTDYrm = 15346,
- VPCMPGTDYrr = 15347,
- VPCMPGTDZ128rm = 15348,
- VPCMPGTDZ128rmb = 15349,
- VPCMPGTDZ128rmbk = 15350,
- VPCMPGTDZ128rmk = 15351,
- VPCMPGTDZ128rr = 15352,
- VPCMPGTDZ128rrk = 15353,
- VPCMPGTDZ256rm = 15354,
- VPCMPGTDZ256rmb = 15355,
- VPCMPGTDZ256rmbk = 15356,
- VPCMPGTDZ256rmk = 15357,
- VPCMPGTDZ256rr = 15358,
- VPCMPGTDZ256rrk = 15359,
- VPCMPGTDZrm = 15360,
- VPCMPGTDZrmb = 15361,
- VPCMPGTDZrmbk = 15362,
- VPCMPGTDZrmk = 15363,
- VPCMPGTDZrr = 15364,
- VPCMPGTDZrrk = 15365,
- VPCMPGTDrm = 15366,
- VPCMPGTDrr = 15367,
- VPCMPGTQYrm = 15368,
- VPCMPGTQYrr = 15369,
- VPCMPGTQZ128rm = 15370,
- VPCMPGTQZ128rmb = 15371,
- VPCMPGTQZ128rmbk = 15372,
- VPCMPGTQZ128rmk = 15373,
- VPCMPGTQZ128rr = 15374,
- VPCMPGTQZ128rrk = 15375,
- VPCMPGTQZ256rm = 15376,
- VPCMPGTQZ256rmb = 15377,
- VPCMPGTQZ256rmbk = 15378,
- VPCMPGTQZ256rmk = 15379,
- VPCMPGTQZ256rr = 15380,
- VPCMPGTQZ256rrk = 15381,
- VPCMPGTQZrm = 15382,
- VPCMPGTQZrmb = 15383,
- VPCMPGTQZrmbk = 15384,
- VPCMPGTQZrmk = 15385,
- VPCMPGTQZrr = 15386,
- VPCMPGTQZrrk = 15387,
- VPCMPGTQrm = 15388,
- VPCMPGTQrr = 15389,
- VPCMPGTWYrm = 15390,
- VPCMPGTWYrr = 15391,
- VPCMPGTWZ128rm = 15392,
- VPCMPGTWZ128rmk = 15393,
- VPCMPGTWZ128rr = 15394,
- VPCMPGTWZ128rrk = 15395,
- VPCMPGTWZ256rm = 15396,
- VPCMPGTWZ256rmk = 15397,
- VPCMPGTWZ256rr = 15398,
- VPCMPGTWZ256rrk = 15399,
- VPCMPGTWZrm = 15400,
- VPCMPGTWZrmk = 15401,
- VPCMPGTWZrr = 15402,
- VPCMPGTWZrrk = 15403,
- VPCMPGTWrm = 15404,
- VPCMPGTWrr = 15405,
- VPCMPISTRIrmi = 15406,
- VPCMPISTRIrri = 15407,
- VPCMPISTRMrmi = 15408,
- VPCMPISTRMrri = 15409,
- VPCMPQZ128rmbi = 15410,
- VPCMPQZ128rmbik = 15411,
- VPCMPQZ128rmi = 15412,
- VPCMPQZ128rmik = 15413,
- VPCMPQZ128rri = 15414,
- VPCMPQZ128rrik = 15415,
- VPCMPQZ256rmbi = 15416,
- VPCMPQZ256rmbik = 15417,
- VPCMPQZ256rmi = 15418,
- VPCMPQZ256rmik = 15419,
- VPCMPQZ256rri = 15420,
- VPCMPQZ256rrik = 15421,
- VPCMPQZrmbi = 15422,
- VPCMPQZrmbik = 15423,
- VPCMPQZrmi = 15424,
- VPCMPQZrmik = 15425,
- VPCMPQZrri = 15426,
- VPCMPQZrrik = 15427,
- VPCMPUBZ128rmi = 15428,
- VPCMPUBZ128rmik = 15429,
- VPCMPUBZ128rri = 15430,
- VPCMPUBZ128rrik = 15431,
- VPCMPUBZ256rmi = 15432,
- VPCMPUBZ256rmik = 15433,
- VPCMPUBZ256rri = 15434,
- VPCMPUBZ256rrik = 15435,
- VPCMPUBZrmi = 15436,
- VPCMPUBZrmik = 15437,
- VPCMPUBZrri = 15438,
- VPCMPUBZrrik = 15439,
- VPCMPUDZ128rmbi = 15440,
- VPCMPUDZ128rmbik = 15441,
- VPCMPUDZ128rmi = 15442,
- VPCMPUDZ128rmik = 15443,
- VPCMPUDZ128rri = 15444,
- VPCMPUDZ128rrik = 15445,
- VPCMPUDZ256rmbi = 15446,
- VPCMPUDZ256rmbik = 15447,
- VPCMPUDZ256rmi = 15448,
- VPCMPUDZ256rmik = 15449,
- VPCMPUDZ256rri = 15450,
- VPCMPUDZ256rrik = 15451,
- VPCMPUDZrmbi = 15452,
- VPCMPUDZrmbik = 15453,
- VPCMPUDZrmi = 15454,
- VPCMPUDZrmik = 15455,
- VPCMPUDZrri = 15456,
- VPCMPUDZrrik = 15457,
- VPCMPUQZ128rmbi = 15458,
- VPCMPUQZ128rmbik = 15459,
- VPCMPUQZ128rmi = 15460,
- VPCMPUQZ128rmik = 15461,
- VPCMPUQZ128rri = 15462,
- VPCMPUQZ128rrik = 15463,
- VPCMPUQZ256rmbi = 15464,
- VPCMPUQZ256rmbik = 15465,
- VPCMPUQZ256rmi = 15466,
- VPCMPUQZ256rmik = 15467,
- VPCMPUQZ256rri = 15468,
- VPCMPUQZ256rrik = 15469,
- VPCMPUQZrmbi = 15470,
- VPCMPUQZrmbik = 15471,
- VPCMPUQZrmi = 15472,
- VPCMPUQZrmik = 15473,
- VPCMPUQZrri = 15474,
- VPCMPUQZrrik = 15475,
- VPCMPUWZ128rmi = 15476,
- VPCMPUWZ128rmik = 15477,
- VPCMPUWZ128rri = 15478,
- VPCMPUWZ128rrik = 15479,
- VPCMPUWZ256rmi = 15480,
- VPCMPUWZ256rmik = 15481,
- VPCMPUWZ256rri = 15482,
- VPCMPUWZ256rrik = 15483,
- VPCMPUWZrmi = 15484,
- VPCMPUWZrmik = 15485,
- VPCMPUWZrri = 15486,
- VPCMPUWZrrik = 15487,
- VPCMPWZ128rmi = 15488,
- VPCMPWZ128rmik = 15489,
- VPCMPWZ128rri = 15490,
- VPCMPWZ128rrik = 15491,
- VPCMPWZ256rmi = 15492,
- VPCMPWZ256rmik = 15493,
- VPCMPWZ256rri = 15494,
- VPCMPWZ256rrik = 15495,
- VPCMPWZrmi = 15496,
- VPCMPWZrmik = 15497,
- VPCMPWZrri = 15498,
- VPCMPWZrrik = 15499,
- VPCOMBmi = 15500,
- VPCOMBri = 15501,
- VPCOMDmi = 15502,
- VPCOMDri = 15503,
- VPCOMPRESSBZ128mr = 15504,
- VPCOMPRESSBZ128mrk = 15505,
- VPCOMPRESSBZ128rr = 15506,
- VPCOMPRESSBZ128rrk = 15507,
- VPCOMPRESSBZ128rrkz = 15508,
- VPCOMPRESSBZ256mr = 15509,
- VPCOMPRESSBZ256mrk = 15510,
- VPCOMPRESSBZ256rr = 15511,
- VPCOMPRESSBZ256rrk = 15512,
- VPCOMPRESSBZ256rrkz = 15513,
- VPCOMPRESSBZmr = 15514,
- VPCOMPRESSBZmrk = 15515,
- VPCOMPRESSBZrr = 15516,
- VPCOMPRESSBZrrk = 15517,
- VPCOMPRESSBZrrkz = 15518,
- VPCOMPRESSDZ128mr = 15519,
- VPCOMPRESSDZ128mrk = 15520,
- VPCOMPRESSDZ128rr = 15521,
- VPCOMPRESSDZ128rrk = 15522,
- VPCOMPRESSDZ128rrkz = 15523,
- VPCOMPRESSDZ256mr = 15524,
- VPCOMPRESSDZ256mrk = 15525,
- VPCOMPRESSDZ256rr = 15526,
- VPCOMPRESSDZ256rrk = 15527,
- VPCOMPRESSDZ256rrkz = 15528,
- VPCOMPRESSDZmr = 15529,
- VPCOMPRESSDZmrk = 15530,
- VPCOMPRESSDZrr = 15531,
- VPCOMPRESSDZrrk = 15532,
- VPCOMPRESSDZrrkz = 15533,
- VPCOMPRESSQZ128mr = 15534,
- VPCOMPRESSQZ128mrk = 15535,
- VPCOMPRESSQZ128rr = 15536,
- VPCOMPRESSQZ128rrk = 15537,
- VPCOMPRESSQZ128rrkz = 15538,
- VPCOMPRESSQZ256mr = 15539,
- VPCOMPRESSQZ256mrk = 15540,
- VPCOMPRESSQZ256rr = 15541,
- VPCOMPRESSQZ256rrk = 15542,
- VPCOMPRESSQZ256rrkz = 15543,
- VPCOMPRESSQZmr = 15544,
- VPCOMPRESSQZmrk = 15545,
- VPCOMPRESSQZrr = 15546,
- VPCOMPRESSQZrrk = 15547,
- VPCOMPRESSQZrrkz = 15548,
- VPCOMPRESSWZ128mr = 15549,
- VPCOMPRESSWZ128mrk = 15550,
- VPCOMPRESSWZ128rr = 15551,
- VPCOMPRESSWZ128rrk = 15552,
- VPCOMPRESSWZ128rrkz = 15553,
- VPCOMPRESSWZ256mr = 15554,
- VPCOMPRESSWZ256mrk = 15555,
- VPCOMPRESSWZ256rr = 15556,
- VPCOMPRESSWZ256rrk = 15557,
- VPCOMPRESSWZ256rrkz = 15558,
- VPCOMPRESSWZmr = 15559,
- VPCOMPRESSWZmrk = 15560,
- VPCOMPRESSWZrr = 15561,
- VPCOMPRESSWZrrk = 15562,
- VPCOMPRESSWZrrkz = 15563,
- VPCOMQmi = 15564,
- VPCOMQri = 15565,
- VPCOMUBmi = 15566,
- VPCOMUBri = 15567,
- VPCOMUDmi = 15568,
- VPCOMUDri = 15569,
- VPCOMUQmi = 15570,
- VPCOMUQri = 15571,
- VPCOMUWmi = 15572,
- VPCOMUWri = 15573,
- VPCOMWmi = 15574,
- VPCOMWri = 15575,
- VPCONFLICTDZ128rm = 15576,
- VPCONFLICTDZ128rmb = 15577,
- VPCONFLICTDZ128rmbk = 15578,
- VPCONFLICTDZ128rmbkz = 15579,
- VPCONFLICTDZ128rmk = 15580,
- VPCONFLICTDZ128rmkz = 15581,
- VPCONFLICTDZ128rr = 15582,
- VPCONFLICTDZ128rrk = 15583,
- VPCONFLICTDZ128rrkz = 15584,
- VPCONFLICTDZ256rm = 15585,
- VPCONFLICTDZ256rmb = 15586,
- VPCONFLICTDZ256rmbk = 15587,
- VPCONFLICTDZ256rmbkz = 15588,
- VPCONFLICTDZ256rmk = 15589,
- VPCONFLICTDZ256rmkz = 15590,
- VPCONFLICTDZ256rr = 15591,
- VPCONFLICTDZ256rrk = 15592,
- VPCONFLICTDZ256rrkz = 15593,
- VPCONFLICTDZrm = 15594,
- VPCONFLICTDZrmb = 15595,
- VPCONFLICTDZrmbk = 15596,
- VPCONFLICTDZrmbkz = 15597,
- VPCONFLICTDZrmk = 15598,
- VPCONFLICTDZrmkz = 15599,
- VPCONFLICTDZrr = 15600,
- VPCONFLICTDZrrk = 15601,
- VPCONFLICTDZrrkz = 15602,
- VPCONFLICTQZ128rm = 15603,
- VPCONFLICTQZ128rmb = 15604,
- VPCONFLICTQZ128rmbk = 15605,
- VPCONFLICTQZ128rmbkz = 15606,
- VPCONFLICTQZ128rmk = 15607,
- VPCONFLICTQZ128rmkz = 15608,
- VPCONFLICTQZ128rr = 15609,
- VPCONFLICTQZ128rrk = 15610,
- VPCONFLICTQZ128rrkz = 15611,
- VPCONFLICTQZ256rm = 15612,
- VPCONFLICTQZ256rmb = 15613,
- VPCONFLICTQZ256rmbk = 15614,
- VPCONFLICTQZ256rmbkz = 15615,
- VPCONFLICTQZ256rmk = 15616,
- VPCONFLICTQZ256rmkz = 15617,
- VPCONFLICTQZ256rr = 15618,
- VPCONFLICTQZ256rrk = 15619,
- VPCONFLICTQZ256rrkz = 15620,
- VPCONFLICTQZrm = 15621,
- VPCONFLICTQZrmb = 15622,
- VPCONFLICTQZrmbk = 15623,
- VPCONFLICTQZrmbkz = 15624,
- VPCONFLICTQZrmk = 15625,
- VPCONFLICTQZrmkz = 15626,
- VPCONFLICTQZrr = 15627,
- VPCONFLICTQZrrk = 15628,
- VPCONFLICTQZrrkz = 15629,
- VPDPBSSDSYrm = 15630,
- VPDPBSSDSYrr = 15631,
- VPDPBSSDSZ128m = 15632,
- VPDPBSSDSZ128mb = 15633,
- VPDPBSSDSZ128mbk = 15634,
- VPDPBSSDSZ128mbkz = 15635,
- VPDPBSSDSZ128mk = 15636,
- VPDPBSSDSZ128mkz = 15637,
- VPDPBSSDSZ128r = 15638,
- VPDPBSSDSZ128rk = 15639,
- VPDPBSSDSZ128rkz = 15640,
- VPDPBSSDSZ256m = 15641,
- VPDPBSSDSZ256mb = 15642,
- VPDPBSSDSZ256mbk = 15643,
- VPDPBSSDSZ256mbkz = 15644,
- VPDPBSSDSZ256mk = 15645,
- VPDPBSSDSZ256mkz = 15646,
- VPDPBSSDSZ256r = 15647,
- VPDPBSSDSZ256rk = 15648,
- VPDPBSSDSZ256rkz = 15649,
- VPDPBSSDSZm = 15650,
- VPDPBSSDSZmb = 15651,
- VPDPBSSDSZmbk = 15652,
- VPDPBSSDSZmbkz = 15653,
- VPDPBSSDSZmk = 15654,
- VPDPBSSDSZmkz = 15655,
- VPDPBSSDSZr = 15656,
- VPDPBSSDSZrk = 15657,
- VPDPBSSDSZrkz = 15658,
- VPDPBSSDSrm = 15659,
- VPDPBSSDSrr = 15660,
- VPDPBSSDYrm = 15661,
- VPDPBSSDYrr = 15662,
- VPDPBSSDZ128m = 15663,
- VPDPBSSDZ128mb = 15664,
- VPDPBSSDZ128mbk = 15665,
- VPDPBSSDZ128mbkz = 15666,
- VPDPBSSDZ128mk = 15667,
- VPDPBSSDZ128mkz = 15668,
- VPDPBSSDZ128r = 15669,
- VPDPBSSDZ128rk = 15670,
- VPDPBSSDZ128rkz = 15671,
- VPDPBSSDZ256m = 15672,
- VPDPBSSDZ256mb = 15673,
- VPDPBSSDZ256mbk = 15674,
- VPDPBSSDZ256mbkz = 15675,
- VPDPBSSDZ256mk = 15676,
- VPDPBSSDZ256mkz = 15677,
- VPDPBSSDZ256r = 15678,
- VPDPBSSDZ256rk = 15679,
- VPDPBSSDZ256rkz = 15680,
- VPDPBSSDZm = 15681,
- VPDPBSSDZmb = 15682,
- VPDPBSSDZmbk = 15683,
- VPDPBSSDZmbkz = 15684,
- VPDPBSSDZmk = 15685,
- VPDPBSSDZmkz = 15686,
- VPDPBSSDZr = 15687,
- VPDPBSSDZrk = 15688,
- VPDPBSSDZrkz = 15689,
- VPDPBSSDrm = 15690,
- VPDPBSSDrr = 15691,
- VPDPBSUDSYrm = 15692,
- VPDPBSUDSYrr = 15693,
- VPDPBSUDSZ128m = 15694,
- VPDPBSUDSZ128mb = 15695,
- VPDPBSUDSZ128mbk = 15696,
- VPDPBSUDSZ128mbkz = 15697,
- VPDPBSUDSZ128mk = 15698,
- VPDPBSUDSZ128mkz = 15699,
- VPDPBSUDSZ128r = 15700,
- VPDPBSUDSZ128rk = 15701,
- VPDPBSUDSZ128rkz = 15702,
- VPDPBSUDSZ256m = 15703,
- VPDPBSUDSZ256mb = 15704,
- VPDPBSUDSZ256mbk = 15705,
- VPDPBSUDSZ256mbkz = 15706,
- VPDPBSUDSZ256mk = 15707,
- VPDPBSUDSZ256mkz = 15708,
- VPDPBSUDSZ256r = 15709,
- VPDPBSUDSZ256rk = 15710,
- VPDPBSUDSZ256rkz = 15711,
- VPDPBSUDSZm = 15712,
- VPDPBSUDSZmb = 15713,
- VPDPBSUDSZmbk = 15714,
- VPDPBSUDSZmbkz = 15715,
- VPDPBSUDSZmk = 15716,
- VPDPBSUDSZmkz = 15717,
- VPDPBSUDSZr = 15718,
- VPDPBSUDSZrk = 15719,
- VPDPBSUDSZrkz = 15720,
- VPDPBSUDSrm = 15721,
- VPDPBSUDSrr = 15722,
- VPDPBSUDYrm = 15723,
- VPDPBSUDYrr = 15724,
- VPDPBSUDZ128m = 15725,
- VPDPBSUDZ128mb = 15726,
- VPDPBSUDZ128mbk = 15727,
- VPDPBSUDZ128mbkz = 15728,
- VPDPBSUDZ128mk = 15729,
- VPDPBSUDZ128mkz = 15730,
- VPDPBSUDZ128r = 15731,
- VPDPBSUDZ128rk = 15732,
- VPDPBSUDZ128rkz = 15733,
- VPDPBSUDZ256m = 15734,
- VPDPBSUDZ256mb = 15735,
- VPDPBSUDZ256mbk = 15736,
- VPDPBSUDZ256mbkz = 15737,
- VPDPBSUDZ256mk = 15738,
- VPDPBSUDZ256mkz = 15739,
- VPDPBSUDZ256r = 15740,
- VPDPBSUDZ256rk = 15741,
- VPDPBSUDZ256rkz = 15742,
- VPDPBSUDZm = 15743,
- VPDPBSUDZmb = 15744,
- VPDPBSUDZmbk = 15745,
- VPDPBSUDZmbkz = 15746,
- VPDPBSUDZmk = 15747,
- VPDPBSUDZmkz = 15748,
- VPDPBSUDZr = 15749,
- VPDPBSUDZrk = 15750,
- VPDPBSUDZrkz = 15751,
- VPDPBSUDrm = 15752,
- VPDPBSUDrr = 15753,
- VPDPBUSDSYrm = 15754,
- VPDPBUSDSYrr = 15755,
- VPDPBUSDSZ128m = 15756,
- VPDPBUSDSZ128mb = 15757,
- VPDPBUSDSZ128mbk = 15758,
- VPDPBUSDSZ128mbkz = 15759,
- VPDPBUSDSZ128mk = 15760,
- VPDPBUSDSZ128mkz = 15761,
- VPDPBUSDSZ128r = 15762,
- VPDPBUSDSZ128rk = 15763,
- VPDPBUSDSZ128rkz = 15764,
- VPDPBUSDSZ256m = 15765,
- VPDPBUSDSZ256mb = 15766,
- VPDPBUSDSZ256mbk = 15767,
- VPDPBUSDSZ256mbkz = 15768,
- VPDPBUSDSZ256mk = 15769,
- VPDPBUSDSZ256mkz = 15770,
- VPDPBUSDSZ256r = 15771,
- VPDPBUSDSZ256rk = 15772,
- VPDPBUSDSZ256rkz = 15773,
- VPDPBUSDSZm = 15774,
- VPDPBUSDSZmb = 15775,
- VPDPBUSDSZmbk = 15776,
- VPDPBUSDSZmbkz = 15777,
- VPDPBUSDSZmk = 15778,
- VPDPBUSDSZmkz = 15779,
- VPDPBUSDSZr = 15780,
- VPDPBUSDSZrk = 15781,
- VPDPBUSDSZrkz = 15782,
- VPDPBUSDSrm = 15783,
- VPDPBUSDSrr = 15784,
- VPDPBUSDYrm = 15785,
- VPDPBUSDYrr = 15786,
- VPDPBUSDZ128m = 15787,
- VPDPBUSDZ128mb = 15788,
- VPDPBUSDZ128mbk = 15789,
- VPDPBUSDZ128mbkz = 15790,
- VPDPBUSDZ128mk = 15791,
- VPDPBUSDZ128mkz = 15792,
- VPDPBUSDZ128r = 15793,
- VPDPBUSDZ128rk = 15794,
- VPDPBUSDZ128rkz = 15795,
- VPDPBUSDZ256m = 15796,
- VPDPBUSDZ256mb = 15797,
- VPDPBUSDZ256mbk = 15798,
- VPDPBUSDZ256mbkz = 15799,
- VPDPBUSDZ256mk = 15800,
- VPDPBUSDZ256mkz = 15801,
- VPDPBUSDZ256r = 15802,
- VPDPBUSDZ256rk = 15803,
- VPDPBUSDZ256rkz = 15804,
- VPDPBUSDZm = 15805,
- VPDPBUSDZmb = 15806,
- VPDPBUSDZmbk = 15807,
- VPDPBUSDZmbkz = 15808,
- VPDPBUSDZmk = 15809,
- VPDPBUSDZmkz = 15810,
- VPDPBUSDZr = 15811,
- VPDPBUSDZrk = 15812,
- VPDPBUSDZrkz = 15813,
- VPDPBUSDrm = 15814,
- VPDPBUSDrr = 15815,
- VPDPBUUDSYrm = 15816,
- VPDPBUUDSYrr = 15817,
- VPDPBUUDSZ128m = 15818,
- VPDPBUUDSZ128mb = 15819,
- VPDPBUUDSZ128mbk = 15820,
- VPDPBUUDSZ128mbkz = 15821,
- VPDPBUUDSZ128mk = 15822,
- VPDPBUUDSZ128mkz = 15823,
- VPDPBUUDSZ128r = 15824,
- VPDPBUUDSZ128rk = 15825,
- VPDPBUUDSZ128rkz = 15826,
- VPDPBUUDSZ256m = 15827,
- VPDPBUUDSZ256mb = 15828,
- VPDPBUUDSZ256mbk = 15829,
- VPDPBUUDSZ256mbkz = 15830,
- VPDPBUUDSZ256mk = 15831,
- VPDPBUUDSZ256mkz = 15832,
- VPDPBUUDSZ256r = 15833,
- VPDPBUUDSZ256rk = 15834,
- VPDPBUUDSZ256rkz = 15835,
- VPDPBUUDSZm = 15836,
- VPDPBUUDSZmb = 15837,
- VPDPBUUDSZmbk = 15838,
- VPDPBUUDSZmbkz = 15839,
- VPDPBUUDSZmk = 15840,
- VPDPBUUDSZmkz = 15841,
- VPDPBUUDSZr = 15842,
- VPDPBUUDSZrk = 15843,
- VPDPBUUDSZrkz = 15844,
- VPDPBUUDSrm = 15845,
- VPDPBUUDSrr = 15846,
- VPDPBUUDYrm = 15847,
- VPDPBUUDYrr = 15848,
- VPDPBUUDZ128m = 15849,
- VPDPBUUDZ128mb = 15850,
- VPDPBUUDZ128mbk = 15851,
- VPDPBUUDZ128mbkz = 15852,
- VPDPBUUDZ128mk = 15853,
- VPDPBUUDZ128mkz = 15854,
- VPDPBUUDZ128r = 15855,
- VPDPBUUDZ128rk = 15856,
- VPDPBUUDZ128rkz = 15857,
- VPDPBUUDZ256m = 15858,
- VPDPBUUDZ256mb = 15859,
- VPDPBUUDZ256mbk = 15860,
- VPDPBUUDZ256mbkz = 15861,
- VPDPBUUDZ256mk = 15862,
- VPDPBUUDZ256mkz = 15863,
- VPDPBUUDZ256r = 15864,
- VPDPBUUDZ256rk = 15865,
- VPDPBUUDZ256rkz = 15866,
- VPDPBUUDZm = 15867,
- VPDPBUUDZmb = 15868,
- VPDPBUUDZmbk = 15869,
- VPDPBUUDZmbkz = 15870,
- VPDPBUUDZmk = 15871,
- VPDPBUUDZmkz = 15872,
- VPDPBUUDZr = 15873,
- VPDPBUUDZrk = 15874,
- VPDPBUUDZrkz = 15875,
- VPDPBUUDrm = 15876,
- VPDPBUUDrr = 15877,
- VPDPWSSDSYrm = 15878,
- VPDPWSSDSYrr = 15879,
- VPDPWSSDSZ128m = 15880,
- VPDPWSSDSZ128mb = 15881,
- VPDPWSSDSZ128mbk = 15882,
- VPDPWSSDSZ128mbkz = 15883,
- VPDPWSSDSZ128mk = 15884,
- VPDPWSSDSZ128mkz = 15885,
- VPDPWSSDSZ128r = 15886,
- VPDPWSSDSZ128rk = 15887,
- VPDPWSSDSZ128rkz = 15888,
- VPDPWSSDSZ256m = 15889,
- VPDPWSSDSZ256mb = 15890,
- VPDPWSSDSZ256mbk = 15891,
- VPDPWSSDSZ256mbkz = 15892,
- VPDPWSSDSZ256mk = 15893,
- VPDPWSSDSZ256mkz = 15894,
- VPDPWSSDSZ256r = 15895,
- VPDPWSSDSZ256rk = 15896,
- VPDPWSSDSZ256rkz = 15897,
- VPDPWSSDSZm = 15898,
- VPDPWSSDSZmb = 15899,
- VPDPWSSDSZmbk = 15900,
- VPDPWSSDSZmbkz = 15901,
- VPDPWSSDSZmk = 15902,
- VPDPWSSDSZmkz = 15903,
- VPDPWSSDSZr = 15904,
- VPDPWSSDSZrk = 15905,
- VPDPWSSDSZrkz = 15906,
- VPDPWSSDSrm = 15907,
- VPDPWSSDSrr = 15908,
- VPDPWSSDYrm = 15909,
- VPDPWSSDYrr = 15910,
- VPDPWSSDZ128m = 15911,
- VPDPWSSDZ128mb = 15912,
- VPDPWSSDZ128mbk = 15913,
- VPDPWSSDZ128mbkz = 15914,
- VPDPWSSDZ128mk = 15915,
- VPDPWSSDZ128mkz = 15916,
- VPDPWSSDZ128r = 15917,
- VPDPWSSDZ128rk = 15918,
- VPDPWSSDZ128rkz = 15919,
- VPDPWSSDZ256m = 15920,
- VPDPWSSDZ256mb = 15921,
- VPDPWSSDZ256mbk = 15922,
- VPDPWSSDZ256mbkz = 15923,
- VPDPWSSDZ256mk = 15924,
- VPDPWSSDZ256mkz = 15925,
- VPDPWSSDZ256r = 15926,
- VPDPWSSDZ256rk = 15927,
- VPDPWSSDZ256rkz = 15928,
- VPDPWSSDZm = 15929,
- VPDPWSSDZmb = 15930,
- VPDPWSSDZmbk = 15931,
- VPDPWSSDZmbkz = 15932,
- VPDPWSSDZmk = 15933,
- VPDPWSSDZmkz = 15934,
- VPDPWSSDZr = 15935,
- VPDPWSSDZrk = 15936,
- VPDPWSSDZrkz = 15937,
- VPDPWSSDrm = 15938,
- VPDPWSSDrr = 15939,
- VPDPWSUDSYrm = 15940,
- VPDPWSUDSYrr = 15941,
- VPDPWSUDSZ128m = 15942,
- VPDPWSUDSZ128mb = 15943,
- VPDPWSUDSZ128mbk = 15944,
- VPDPWSUDSZ128mbkz = 15945,
- VPDPWSUDSZ128mk = 15946,
- VPDPWSUDSZ128mkz = 15947,
- VPDPWSUDSZ128r = 15948,
- VPDPWSUDSZ128rk = 15949,
- VPDPWSUDSZ128rkz = 15950,
- VPDPWSUDSZ256m = 15951,
- VPDPWSUDSZ256mb = 15952,
- VPDPWSUDSZ256mbk = 15953,
- VPDPWSUDSZ256mbkz = 15954,
- VPDPWSUDSZ256mk = 15955,
- VPDPWSUDSZ256mkz = 15956,
- VPDPWSUDSZ256r = 15957,
- VPDPWSUDSZ256rk = 15958,
- VPDPWSUDSZ256rkz = 15959,
- VPDPWSUDSZm = 15960,
- VPDPWSUDSZmb = 15961,
- VPDPWSUDSZmbk = 15962,
- VPDPWSUDSZmbkz = 15963,
- VPDPWSUDSZmk = 15964,
- VPDPWSUDSZmkz = 15965,
- VPDPWSUDSZr = 15966,
- VPDPWSUDSZrk = 15967,
- VPDPWSUDSZrkz = 15968,
- VPDPWSUDSrm = 15969,
- VPDPWSUDSrr = 15970,
- VPDPWSUDYrm = 15971,
- VPDPWSUDYrr = 15972,
- VPDPWSUDZ128m = 15973,
- VPDPWSUDZ128mb = 15974,
- VPDPWSUDZ128mbk = 15975,
- VPDPWSUDZ128mbkz = 15976,
- VPDPWSUDZ128mk = 15977,
- VPDPWSUDZ128mkz = 15978,
- VPDPWSUDZ128r = 15979,
- VPDPWSUDZ128rk = 15980,
- VPDPWSUDZ128rkz = 15981,
- VPDPWSUDZ256m = 15982,
- VPDPWSUDZ256mb = 15983,
- VPDPWSUDZ256mbk = 15984,
- VPDPWSUDZ256mbkz = 15985,
- VPDPWSUDZ256mk = 15986,
- VPDPWSUDZ256mkz = 15987,
- VPDPWSUDZ256r = 15988,
- VPDPWSUDZ256rk = 15989,
- VPDPWSUDZ256rkz = 15990,
- VPDPWSUDZm = 15991,
- VPDPWSUDZmb = 15992,
- VPDPWSUDZmbk = 15993,
- VPDPWSUDZmbkz = 15994,
- VPDPWSUDZmk = 15995,
- VPDPWSUDZmkz = 15996,
- VPDPWSUDZr = 15997,
- VPDPWSUDZrk = 15998,
- VPDPWSUDZrkz = 15999,
- VPDPWSUDrm = 16000,
- VPDPWSUDrr = 16001,
- VPDPWUSDSYrm = 16002,
- VPDPWUSDSYrr = 16003,
- VPDPWUSDSZ128m = 16004,
- VPDPWUSDSZ128mb = 16005,
- VPDPWUSDSZ128mbk = 16006,
- VPDPWUSDSZ128mbkz = 16007,
- VPDPWUSDSZ128mk = 16008,
- VPDPWUSDSZ128mkz = 16009,
- VPDPWUSDSZ128r = 16010,
- VPDPWUSDSZ128rk = 16011,
- VPDPWUSDSZ128rkz = 16012,
- VPDPWUSDSZ256m = 16013,
- VPDPWUSDSZ256mb = 16014,
- VPDPWUSDSZ256mbk = 16015,
- VPDPWUSDSZ256mbkz = 16016,
- VPDPWUSDSZ256mk = 16017,
- VPDPWUSDSZ256mkz = 16018,
- VPDPWUSDSZ256r = 16019,
- VPDPWUSDSZ256rk = 16020,
- VPDPWUSDSZ256rkz = 16021,
- VPDPWUSDSZm = 16022,
- VPDPWUSDSZmb = 16023,
- VPDPWUSDSZmbk = 16024,
- VPDPWUSDSZmbkz = 16025,
- VPDPWUSDSZmk = 16026,
- VPDPWUSDSZmkz = 16027,
- VPDPWUSDSZr = 16028,
- VPDPWUSDSZrk = 16029,
- VPDPWUSDSZrkz = 16030,
- VPDPWUSDSrm = 16031,
- VPDPWUSDSrr = 16032,
- VPDPWUSDYrm = 16033,
- VPDPWUSDYrr = 16034,
- VPDPWUSDZ128m = 16035,
- VPDPWUSDZ128mb = 16036,
- VPDPWUSDZ128mbk = 16037,
- VPDPWUSDZ128mbkz = 16038,
- VPDPWUSDZ128mk = 16039,
- VPDPWUSDZ128mkz = 16040,
- VPDPWUSDZ128r = 16041,
- VPDPWUSDZ128rk = 16042,
- VPDPWUSDZ128rkz = 16043,
- VPDPWUSDZ256m = 16044,
- VPDPWUSDZ256mb = 16045,
- VPDPWUSDZ256mbk = 16046,
- VPDPWUSDZ256mbkz = 16047,
- VPDPWUSDZ256mk = 16048,
- VPDPWUSDZ256mkz = 16049,
- VPDPWUSDZ256r = 16050,
- VPDPWUSDZ256rk = 16051,
- VPDPWUSDZ256rkz = 16052,
- VPDPWUSDZm = 16053,
- VPDPWUSDZmb = 16054,
- VPDPWUSDZmbk = 16055,
- VPDPWUSDZmbkz = 16056,
- VPDPWUSDZmk = 16057,
- VPDPWUSDZmkz = 16058,
- VPDPWUSDZr = 16059,
- VPDPWUSDZrk = 16060,
- VPDPWUSDZrkz = 16061,
- VPDPWUSDrm = 16062,
- VPDPWUSDrr = 16063,
- VPDPWUUDSYrm = 16064,
- VPDPWUUDSYrr = 16065,
- VPDPWUUDSZ128m = 16066,
- VPDPWUUDSZ128mb = 16067,
- VPDPWUUDSZ128mbk = 16068,
- VPDPWUUDSZ128mbkz = 16069,
- VPDPWUUDSZ128mk = 16070,
- VPDPWUUDSZ128mkz = 16071,
- VPDPWUUDSZ128r = 16072,
- VPDPWUUDSZ128rk = 16073,
- VPDPWUUDSZ128rkz = 16074,
- VPDPWUUDSZ256m = 16075,
- VPDPWUUDSZ256mb = 16076,
- VPDPWUUDSZ256mbk = 16077,
- VPDPWUUDSZ256mbkz = 16078,
- VPDPWUUDSZ256mk = 16079,
- VPDPWUUDSZ256mkz = 16080,
- VPDPWUUDSZ256r = 16081,
- VPDPWUUDSZ256rk = 16082,
- VPDPWUUDSZ256rkz = 16083,
- VPDPWUUDSZm = 16084,
- VPDPWUUDSZmb = 16085,
- VPDPWUUDSZmbk = 16086,
- VPDPWUUDSZmbkz = 16087,
- VPDPWUUDSZmk = 16088,
- VPDPWUUDSZmkz = 16089,
- VPDPWUUDSZr = 16090,
- VPDPWUUDSZrk = 16091,
- VPDPWUUDSZrkz = 16092,
- VPDPWUUDSrm = 16093,
- VPDPWUUDSrr = 16094,
- VPDPWUUDYrm = 16095,
- VPDPWUUDYrr = 16096,
- VPDPWUUDZ128m = 16097,
- VPDPWUUDZ128mb = 16098,
- VPDPWUUDZ128mbk = 16099,
- VPDPWUUDZ128mbkz = 16100,
- VPDPWUUDZ128mk = 16101,
- VPDPWUUDZ128mkz = 16102,
- VPDPWUUDZ128r = 16103,
- VPDPWUUDZ128rk = 16104,
- VPDPWUUDZ128rkz = 16105,
- VPDPWUUDZ256m = 16106,
- VPDPWUUDZ256mb = 16107,
- VPDPWUUDZ256mbk = 16108,
- VPDPWUUDZ256mbkz = 16109,
- VPDPWUUDZ256mk = 16110,
- VPDPWUUDZ256mkz = 16111,
- VPDPWUUDZ256r = 16112,
- VPDPWUUDZ256rk = 16113,
- VPDPWUUDZ256rkz = 16114,
- VPDPWUUDZm = 16115,
- VPDPWUUDZmb = 16116,
- VPDPWUUDZmbk = 16117,
- VPDPWUUDZmbkz = 16118,
- VPDPWUUDZmk = 16119,
- VPDPWUUDZmkz = 16120,
- VPDPWUUDZr = 16121,
- VPDPWUUDZrk = 16122,
- VPDPWUUDZrkz = 16123,
- VPDPWUUDrm = 16124,
- VPDPWUUDrr = 16125,
- VPERM2F128rmi = 16126,
- VPERM2F128rri = 16127,
- VPERM2I128rmi = 16128,
- VPERM2I128rri = 16129,
- VPERMBZ128rm = 16130,
- VPERMBZ128rmk = 16131,
- VPERMBZ128rmkz = 16132,
- VPERMBZ128rr = 16133,
- VPERMBZ128rrk = 16134,
- VPERMBZ128rrkz = 16135,
- VPERMBZ256rm = 16136,
- VPERMBZ256rmk = 16137,
- VPERMBZ256rmkz = 16138,
- VPERMBZ256rr = 16139,
- VPERMBZ256rrk = 16140,
- VPERMBZ256rrkz = 16141,
- VPERMBZrm = 16142,
- VPERMBZrmk = 16143,
- VPERMBZrmkz = 16144,
- VPERMBZrr = 16145,
- VPERMBZrrk = 16146,
- VPERMBZrrkz = 16147,
- VPERMDYrm = 16148,
- VPERMDYrr = 16149,
- VPERMDZ256rm = 16150,
- VPERMDZ256rmb = 16151,
- VPERMDZ256rmbk = 16152,
- VPERMDZ256rmbkz = 16153,
- VPERMDZ256rmk = 16154,
- VPERMDZ256rmkz = 16155,
- VPERMDZ256rr = 16156,
- VPERMDZ256rrk = 16157,
- VPERMDZ256rrkz = 16158,
- VPERMDZrm = 16159,
- VPERMDZrmb = 16160,
- VPERMDZrmbk = 16161,
- VPERMDZrmbkz = 16162,
- VPERMDZrmk = 16163,
- VPERMDZrmkz = 16164,
- VPERMDZrr = 16165,
- VPERMDZrrk = 16166,
- VPERMDZrrkz = 16167,
- VPERMI2BZ128rm = 16168,
- VPERMI2BZ128rmk = 16169,
- VPERMI2BZ128rmkz = 16170,
- VPERMI2BZ128rr = 16171,
- VPERMI2BZ128rrk = 16172,
- VPERMI2BZ128rrkz = 16173,
- VPERMI2BZ256rm = 16174,
- VPERMI2BZ256rmk = 16175,
- VPERMI2BZ256rmkz = 16176,
- VPERMI2BZ256rr = 16177,
- VPERMI2BZ256rrk = 16178,
- VPERMI2BZ256rrkz = 16179,
- VPERMI2BZrm = 16180,
- VPERMI2BZrmk = 16181,
- VPERMI2BZrmkz = 16182,
- VPERMI2BZrr = 16183,
- VPERMI2BZrrk = 16184,
- VPERMI2BZrrkz = 16185,
- VPERMI2DZ128rm = 16186,
- VPERMI2DZ128rmb = 16187,
- VPERMI2DZ128rmbk = 16188,
- VPERMI2DZ128rmbkz = 16189,
- VPERMI2DZ128rmk = 16190,
- VPERMI2DZ128rmkz = 16191,
- VPERMI2DZ128rr = 16192,
- VPERMI2DZ128rrk = 16193,
- VPERMI2DZ128rrkz = 16194,
- VPERMI2DZ256rm = 16195,
- VPERMI2DZ256rmb = 16196,
- VPERMI2DZ256rmbk = 16197,
- VPERMI2DZ256rmbkz = 16198,
- VPERMI2DZ256rmk = 16199,
- VPERMI2DZ256rmkz = 16200,
- VPERMI2DZ256rr = 16201,
- VPERMI2DZ256rrk = 16202,
- VPERMI2DZ256rrkz = 16203,
- VPERMI2DZrm = 16204,
- VPERMI2DZrmb = 16205,
- VPERMI2DZrmbk = 16206,
- VPERMI2DZrmbkz = 16207,
- VPERMI2DZrmk = 16208,
- VPERMI2DZrmkz = 16209,
- VPERMI2DZrr = 16210,
- VPERMI2DZrrk = 16211,
- VPERMI2DZrrkz = 16212,
- VPERMI2PDZ128rm = 16213,
- VPERMI2PDZ128rmb = 16214,
- VPERMI2PDZ128rmbk = 16215,
- VPERMI2PDZ128rmbkz = 16216,
- VPERMI2PDZ128rmk = 16217,
- VPERMI2PDZ128rmkz = 16218,
- VPERMI2PDZ128rr = 16219,
- VPERMI2PDZ128rrk = 16220,
- VPERMI2PDZ128rrkz = 16221,
- VPERMI2PDZ256rm = 16222,
- VPERMI2PDZ256rmb = 16223,
- VPERMI2PDZ256rmbk = 16224,
- VPERMI2PDZ256rmbkz = 16225,
- VPERMI2PDZ256rmk = 16226,
- VPERMI2PDZ256rmkz = 16227,
- VPERMI2PDZ256rr = 16228,
- VPERMI2PDZ256rrk = 16229,
- VPERMI2PDZ256rrkz = 16230,
- VPERMI2PDZrm = 16231,
- VPERMI2PDZrmb = 16232,
- VPERMI2PDZrmbk = 16233,
- VPERMI2PDZrmbkz = 16234,
- VPERMI2PDZrmk = 16235,
- VPERMI2PDZrmkz = 16236,
- VPERMI2PDZrr = 16237,
- VPERMI2PDZrrk = 16238,
- VPERMI2PDZrrkz = 16239,
- VPERMI2PSZ128rm = 16240,
- VPERMI2PSZ128rmb = 16241,
- VPERMI2PSZ128rmbk = 16242,
- VPERMI2PSZ128rmbkz = 16243,
- VPERMI2PSZ128rmk = 16244,
- VPERMI2PSZ128rmkz = 16245,
- VPERMI2PSZ128rr = 16246,
- VPERMI2PSZ128rrk = 16247,
- VPERMI2PSZ128rrkz = 16248,
- VPERMI2PSZ256rm = 16249,
- VPERMI2PSZ256rmb = 16250,
- VPERMI2PSZ256rmbk = 16251,
- VPERMI2PSZ256rmbkz = 16252,
- VPERMI2PSZ256rmk = 16253,
- VPERMI2PSZ256rmkz = 16254,
- VPERMI2PSZ256rr = 16255,
- VPERMI2PSZ256rrk = 16256,
- VPERMI2PSZ256rrkz = 16257,
- VPERMI2PSZrm = 16258,
- VPERMI2PSZrmb = 16259,
- VPERMI2PSZrmbk = 16260,
- VPERMI2PSZrmbkz = 16261,
- VPERMI2PSZrmk = 16262,
- VPERMI2PSZrmkz = 16263,
- VPERMI2PSZrr = 16264,
- VPERMI2PSZrrk = 16265,
- VPERMI2PSZrrkz = 16266,
- VPERMI2QZ128rm = 16267,
- VPERMI2QZ128rmb = 16268,
- VPERMI2QZ128rmbk = 16269,
- VPERMI2QZ128rmbkz = 16270,
- VPERMI2QZ128rmk = 16271,
- VPERMI2QZ128rmkz = 16272,
- VPERMI2QZ128rr = 16273,
- VPERMI2QZ128rrk = 16274,
- VPERMI2QZ128rrkz = 16275,
- VPERMI2QZ256rm = 16276,
- VPERMI2QZ256rmb = 16277,
- VPERMI2QZ256rmbk = 16278,
- VPERMI2QZ256rmbkz = 16279,
- VPERMI2QZ256rmk = 16280,
- VPERMI2QZ256rmkz = 16281,
- VPERMI2QZ256rr = 16282,
- VPERMI2QZ256rrk = 16283,
- VPERMI2QZ256rrkz = 16284,
- VPERMI2QZrm = 16285,
- VPERMI2QZrmb = 16286,
- VPERMI2QZrmbk = 16287,
- VPERMI2QZrmbkz = 16288,
- VPERMI2QZrmk = 16289,
- VPERMI2QZrmkz = 16290,
- VPERMI2QZrr = 16291,
- VPERMI2QZrrk = 16292,
- VPERMI2QZrrkz = 16293,
- VPERMI2WZ128rm = 16294,
- VPERMI2WZ128rmk = 16295,
- VPERMI2WZ128rmkz = 16296,
- VPERMI2WZ128rr = 16297,
- VPERMI2WZ128rrk = 16298,
- VPERMI2WZ128rrkz = 16299,
- VPERMI2WZ256rm = 16300,
- VPERMI2WZ256rmk = 16301,
- VPERMI2WZ256rmkz = 16302,
- VPERMI2WZ256rr = 16303,
- VPERMI2WZ256rrk = 16304,
- VPERMI2WZ256rrkz = 16305,
- VPERMI2WZrm = 16306,
- VPERMI2WZrmk = 16307,
- VPERMI2WZrmkz = 16308,
- VPERMI2WZrr = 16309,
- VPERMI2WZrrk = 16310,
- VPERMI2WZrrkz = 16311,
- VPERMIL2PDYmr = 16312,
- VPERMIL2PDYrm = 16313,
- VPERMIL2PDYrr = 16314,
- VPERMIL2PDYrr_REV = 16315,
- VPERMIL2PDmr = 16316,
- VPERMIL2PDrm = 16317,
- VPERMIL2PDrr = 16318,
- VPERMIL2PDrr_REV = 16319,
- VPERMIL2PSYmr = 16320,
- VPERMIL2PSYrm = 16321,
- VPERMIL2PSYrr = 16322,
- VPERMIL2PSYrr_REV = 16323,
- VPERMIL2PSmr = 16324,
- VPERMIL2PSrm = 16325,
- VPERMIL2PSrr = 16326,
- VPERMIL2PSrr_REV = 16327,
- VPERMILPDYmi = 16328,
- VPERMILPDYri = 16329,
- VPERMILPDYrm = 16330,
- VPERMILPDYrr = 16331,
- VPERMILPDZ128mbi = 16332,
- VPERMILPDZ128mbik = 16333,
- VPERMILPDZ128mbikz = 16334,
- VPERMILPDZ128mi = 16335,
- VPERMILPDZ128mik = 16336,
- VPERMILPDZ128mikz = 16337,
- VPERMILPDZ128ri = 16338,
- VPERMILPDZ128rik = 16339,
- VPERMILPDZ128rikz = 16340,
- VPERMILPDZ128rm = 16341,
- VPERMILPDZ128rmb = 16342,
- VPERMILPDZ128rmbk = 16343,
- VPERMILPDZ128rmbkz = 16344,
- VPERMILPDZ128rmk = 16345,
- VPERMILPDZ128rmkz = 16346,
- VPERMILPDZ128rr = 16347,
- VPERMILPDZ128rrk = 16348,
- VPERMILPDZ128rrkz = 16349,
- VPERMILPDZ256mbi = 16350,
- VPERMILPDZ256mbik = 16351,
- VPERMILPDZ256mbikz = 16352,
- VPERMILPDZ256mi = 16353,
- VPERMILPDZ256mik = 16354,
- VPERMILPDZ256mikz = 16355,
- VPERMILPDZ256ri = 16356,
- VPERMILPDZ256rik = 16357,
- VPERMILPDZ256rikz = 16358,
- VPERMILPDZ256rm = 16359,
- VPERMILPDZ256rmb = 16360,
- VPERMILPDZ256rmbk = 16361,
- VPERMILPDZ256rmbkz = 16362,
- VPERMILPDZ256rmk = 16363,
- VPERMILPDZ256rmkz = 16364,
- VPERMILPDZ256rr = 16365,
- VPERMILPDZ256rrk = 16366,
- VPERMILPDZ256rrkz = 16367,
- VPERMILPDZmbi = 16368,
- VPERMILPDZmbik = 16369,
- VPERMILPDZmbikz = 16370,
- VPERMILPDZmi = 16371,
- VPERMILPDZmik = 16372,
- VPERMILPDZmikz = 16373,
- VPERMILPDZri = 16374,
- VPERMILPDZrik = 16375,
- VPERMILPDZrikz = 16376,
- VPERMILPDZrm = 16377,
- VPERMILPDZrmb = 16378,
- VPERMILPDZrmbk = 16379,
- VPERMILPDZrmbkz = 16380,
- VPERMILPDZrmk = 16381,
- VPERMILPDZrmkz = 16382,
- VPERMILPDZrr = 16383,
- VPERMILPDZrrk = 16384,
- VPERMILPDZrrkz = 16385,
- VPERMILPDmi = 16386,
- VPERMILPDri = 16387,
- VPERMILPDrm = 16388,
- VPERMILPDrr = 16389,
- VPERMILPSYmi = 16390,
- VPERMILPSYri = 16391,
- VPERMILPSYrm = 16392,
- VPERMILPSYrr = 16393,
- VPERMILPSZ128mbi = 16394,
- VPERMILPSZ128mbik = 16395,
- VPERMILPSZ128mbikz = 16396,
- VPERMILPSZ128mi = 16397,
- VPERMILPSZ128mik = 16398,
- VPERMILPSZ128mikz = 16399,
- VPERMILPSZ128ri = 16400,
- VPERMILPSZ128rik = 16401,
- VPERMILPSZ128rikz = 16402,
- VPERMILPSZ128rm = 16403,
- VPERMILPSZ128rmb = 16404,
- VPERMILPSZ128rmbk = 16405,
- VPERMILPSZ128rmbkz = 16406,
- VPERMILPSZ128rmk = 16407,
- VPERMILPSZ128rmkz = 16408,
- VPERMILPSZ128rr = 16409,
- VPERMILPSZ128rrk = 16410,
- VPERMILPSZ128rrkz = 16411,
- VPERMILPSZ256mbi = 16412,
- VPERMILPSZ256mbik = 16413,
- VPERMILPSZ256mbikz = 16414,
- VPERMILPSZ256mi = 16415,
- VPERMILPSZ256mik = 16416,
- VPERMILPSZ256mikz = 16417,
- VPERMILPSZ256ri = 16418,
- VPERMILPSZ256rik = 16419,
- VPERMILPSZ256rikz = 16420,
- VPERMILPSZ256rm = 16421,
- VPERMILPSZ256rmb = 16422,
- VPERMILPSZ256rmbk = 16423,
- VPERMILPSZ256rmbkz = 16424,
- VPERMILPSZ256rmk = 16425,
- VPERMILPSZ256rmkz = 16426,
- VPERMILPSZ256rr = 16427,
- VPERMILPSZ256rrk = 16428,
- VPERMILPSZ256rrkz = 16429,
- VPERMILPSZmbi = 16430,
- VPERMILPSZmbik = 16431,
- VPERMILPSZmbikz = 16432,
- VPERMILPSZmi = 16433,
- VPERMILPSZmik = 16434,
- VPERMILPSZmikz = 16435,
- VPERMILPSZri = 16436,
- VPERMILPSZrik = 16437,
- VPERMILPSZrikz = 16438,
- VPERMILPSZrm = 16439,
- VPERMILPSZrmb = 16440,
- VPERMILPSZrmbk = 16441,
- VPERMILPSZrmbkz = 16442,
- VPERMILPSZrmk = 16443,
- VPERMILPSZrmkz = 16444,
- VPERMILPSZrr = 16445,
- VPERMILPSZrrk = 16446,
- VPERMILPSZrrkz = 16447,
- VPERMILPSmi = 16448,
- VPERMILPSri = 16449,
- VPERMILPSrm = 16450,
- VPERMILPSrr = 16451,
- VPERMPDYmi = 16452,
- VPERMPDYri = 16453,
- VPERMPDZ256mbi = 16454,
- VPERMPDZ256mbik = 16455,
- VPERMPDZ256mbikz = 16456,
- VPERMPDZ256mi = 16457,
- VPERMPDZ256mik = 16458,
- VPERMPDZ256mikz = 16459,
- VPERMPDZ256ri = 16460,
- VPERMPDZ256rik = 16461,
- VPERMPDZ256rikz = 16462,
- VPERMPDZ256rm = 16463,
- VPERMPDZ256rmb = 16464,
- VPERMPDZ256rmbk = 16465,
- VPERMPDZ256rmbkz = 16466,
- VPERMPDZ256rmk = 16467,
- VPERMPDZ256rmkz = 16468,
- VPERMPDZ256rr = 16469,
- VPERMPDZ256rrk = 16470,
- VPERMPDZ256rrkz = 16471,
- VPERMPDZmbi = 16472,
- VPERMPDZmbik = 16473,
- VPERMPDZmbikz = 16474,
- VPERMPDZmi = 16475,
- VPERMPDZmik = 16476,
- VPERMPDZmikz = 16477,
- VPERMPDZri = 16478,
- VPERMPDZrik = 16479,
- VPERMPDZrikz = 16480,
- VPERMPDZrm = 16481,
- VPERMPDZrmb = 16482,
- VPERMPDZrmbk = 16483,
- VPERMPDZrmbkz = 16484,
- VPERMPDZrmk = 16485,
- VPERMPDZrmkz = 16486,
- VPERMPDZrr = 16487,
- VPERMPDZrrk = 16488,
- VPERMPDZrrkz = 16489,
- VPERMPSYrm = 16490,
- VPERMPSYrr = 16491,
- VPERMPSZ256rm = 16492,
- VPERMPSZ256rmb = 16493,
- VPERMPSZ256rmbk = 16494,
- VPERMPSZ256rmbkz = 16495,
- VPERMPSZ256rmk = 16496,
- VPERMPSZ256rmkz = 16497,
- VPERMPSZ256rr = 16498,
- VPERMPSZ256rrk = 16499,
- VPERMPSZ256rrkz = 16500,
- VPERMPSZrm = 16501,
- VPERMPSZrmb = 16502,
- VPERMPSZrmbk = 16503,
- VPERMPSZrmbkz = 16504,
- VPERMPSZrmk = 16505,
- VPERMPSZrmkz = 16506,
- VPERMPSZrr = 16507,
- VPERMPSZrrk = 16508,
- VPERMPSZrrkz = 16509,
- VPERMQYmi = 16510,
- VPERMQYri = 16511,
- VPERMQZ256mbi = 16512,
- VPERMQZ256mbik = 16513,
- VPERMQZ256mbikz = 16514,
- VPERMQZ256mi = 16515,
- VPERMQZ256mik = 16516,
- VPERMQZ256mikz = 16517,
- VPERMQZ256ri = 16518,
- VPERMQZ256rik = 16519,
- VPERMQZ256rikz = 16520,
- VPERMQZ256rm = 16521,
- VPERMQZ256rmb = 16522,
- VPERMQZ256rmbk = 16523,
- VPERMQZ256rmbkz = 16524,
- VPERMQZ256rmk = 16525,
- VPERMQZ256rmkz = 16526,
- VPERMQZ256rr = 16527,
- VPERMQZ256rrk = 16528,
- VPERMQZ256rrkz = 16529,
- VPERMQZmbi = 16530,
- VPERMQZmbik = 16531,
- VPERMQZmbikz = 16532,
- VPERMQZmi = 16533,
- VPERMQZmik = 16534,
- VPERMQZmikz = 16535,
- VPERMQZri = 16536,
- VPERMQZrik = 16537,
- VPERMQZrikz = 16538,
- VPERMQZrm = 16539,
- VPERMQZrmb = 16540,
- VPERMQZrmbk = 16541,
- VPERMQZrmbkz = 16542,
- VPERMQZrmk = 16543,
- VPERMQZrmkz = 16544,
- VPERMQZrr = 16545,
- VPERMQZrrk = 16546,
- VPERMQZrrkz = 16547,
- VPERMT2BZ128rm = 16548,
- VPERMT2BZ128rmk = 16549,
- VPERMT2BZ128rmkz = 16550,
- VPERMT2BZ128rr = 16551,
- VPERMT2BZ128rrk = 16552,
- VPERMT2BZ128rrkz = 16553,
- VPERMT2BZ256rm = 16554,
- VPERMT2BZ256rmk = 16555,
- VPERMT2BZ256rmkz = 16556,
- VPERMT2BZ256rr = 16557,
- VPERMT2BZ256rrk = 16558,
- VPERMT2BZ256rrkz = 16559,
- VPERMT2BZrm = 16560,
- VPERMT2BZrmk = 16561,
- VPERMT2BZrmkz = 16562,
- VPERMT2BZrr = 16563,
- VPERMT2BZrrk = 16564,
- VPERMT2BZrrkz = 16565,
- VPERMT2DZ128rm = 16566,
- VPERMT2DZ128rmb = 16567,
- VPERMT2DZ128rmbk = 16568,
- VPERMT2DZ128rmbkz = 16569,
- VPERMT2DZ128rmk = 16570,
- VPERMT2DZ128rmkz = 16571,
- VPERMT2DZ128rr = 16572,
- VPERMT2DZ128rrk = 16573,
- VPERMT2DZ128rrkz = 16574,
- VPERMT2DZ256rm = 16575,
- VPERMT2DZ256rmb = 16576,
- VPERMT2DZ256rmbk = 16577,
- VPERMT2DZ256rmbkz = 16578,
- VPERMT2DZ256rmk = 16579,
- VPERMT2DZ256rmkz = 16580,
- VPERMT2DZ256rr = 16581,
- VPERMT2DZ256rrk = 16582,
- VPERMT2DZ256rrkz = 16583,
- VPERMT2DZrm = 16584,
- VPERMT2DZrmb = 16585,
- VPERMT2DZrmbk = 16586,
- VPERMT2DZrmbkz = 16587,
- VPERMT2DZrmk = 16588,
- VPERMT2DZrmkz = 16589,
- VPERMT2DZrr = 16590,
- VPERMT2DZrrk = 16591,
- VPERMT2DZrrkz = 16592,
- VPERMT2PDZ128rm = 16593,
- VPERMT2PDZ128rmb = 16594,
- VPERMT2PDZ128rmbk = 16595,
- VPERMT2PDZ128rmbkz = 16596,
- VPERMT2PDZ128rmk = 16597,
- VPERMT2PDZ128rmkz = 16598,
- VPERMT2PDZ128rr = 16599,
- VPERMT2PDZ128rrk = 16600,
- VPERMT2PDZ128rrkz = 16601,
- VPERMT2PDZ256rm = 16602,
- VPERMT2PDZ256rmb = 16603,
- VPERMT2PDZ256rmbk = 16604,
- VPERMT2PDZ256rmbkz = 16605,
- VPERMT2PDZ256rmk = 16606,
- VPERMT2PDZ256rmkz = 16607,
- VPERMT2PDZ256rr = 16608,
- VPERMT2PDZ256rrk = 16609,
- VPERMT2PDZ256rrkz = 16610,
- VPERMT2PDZrm = 16611,
- VPERMT2PDZrmb = 16612,
- VPERMT2PDZrmbk = 16613,
- VPERMT2PDZrmbkz = 16614,
- VPERMT2PDZrmk = 16615,
- VPERMT2PDZrmkz = 16616,
- VPERMT2PDZrr = 16617,
- VPERMT2PDZrrk = 16618,
- VPERMT2PDZrrkz = 16619,
- VPERMT2PSZ128rm = 16620,
- VPERMT2PSZ128rmb = 16621,
- VPERMT2PSZ128rmbk = 16622,
- VPERMT2PSZ128rmbkz = 16623,
- VPERMT2PSZ128rmk = 16624,
- VPERMT2PSZ128rmkz = 16625,
- VPERMT2PSZ128rr = 16626,
- VPERMT2PSZ128rrk = 16627,
- VPERMT2PSZ128rrkz = 16628,
- VPERMT2PSZ256rm = 16629,
- VPERMT2PSZ256rmb = 16630,
- VPERMT2PSZ256rmbk = 16631,
- VPERMT2PSZ256rmbkz = 16632,
- VPERMT2PSZ256rmk = 16633,
- VPERMT2PSZ256rmkz = 16634,
- VPERMT2PSZ256rr = 16635,
- VPERMT2PSZ256rrk = 16636,
- VPERMT2PSZ256rrkz = 16637,
- VPERMT2PSZrm = 16638,
- VPERMT2PSZrmb = 16639,
- VPERMT2PSZrmbk = 16640,
- VPERMT2PSZrmbkz = 16641,
- VPERMT2PSZrmk = 16642,
- VPERMT2PSZrmkz = 16643,
- VPERMT2PSZrr = 16644,
- VPERMT2PSZrrk = 16645,
- VPERMT2PSZrrkz = 16646,
- VPERMT2QZ128rm = 16647,
- VPERMT2QZ128rmb = 16648,
- VPERMT2QZ128rmbk = 16649,
- VPERMT2QZ128rmbkz = 16650,
- VPERMT2QZ128rmk = 16651,
- VPERMT2QZ128rmkz = 16652,
- VPERMT2QZ128rr = 16653,
- VPERMT2QZ128rrk = 16654,
- VPERMT2QZ128rrkz = 16655,
- VPERMT2QZ256rm = 16656,
- VPERMT2QZ256rmb = 16657,
- VPERMT2QZ256rmbk = 16658,
- VPERMT2QZ256rmbkz = 16659,
- VPERMT2QZ256rmk = 16660,
- VPERMT2QZ256rmkz = 16661,
- VPERMT2QZ256rr = 16662,
- VPERMT2QZ256rrk = 16663,
- VPERMT2QZ256rrkz = 16664,
- VPERMT2QZrm = 16665,
- VPERMT2QZrmb = 16666,
- VPERMT2QZrmbk = 16667,
- VPERMT2QZrmbkz = 16668,
- VPERMT2QZrmk = 16669,
- VPERMT2QZrmkz = 16670,
- VPERMT2QZrr = 16671,
- VPERMT2QZrrk = 16672,
- VPERMT2QZrrkz = 16673,
- VPERMT2WZ128rm = 16674,
- VPERMT2WZ128rmk = 16675,
- VPERMT2WZ128rmkz = 16676,
- VPERMT2WZ128rr = 16677,
- VPERMT2WZ128rrk = 16678,
- VPERMT2WZ128rrkz = 16679,
- VPERMT2WZ256rm = 16680,
- VPERMT2WZ256rmk = 16681,
- VPERMT2WZ256rmkz = 16682,
- VPERMT2WZ256rr = 16683,
- VPERMT2WZ256rrk = 16684,
- VPERMT2WZ256rrkz = 16685,
- VPERMT2WZrm = 16686,
- VPERMT2WZrmk = 16687,
- VPERMT2WZrmkz = 16688,
- VPERMT2WZrr = 16689,
- VPERMT2WZrrk = 16690,
- VPERMT2WZrrkz = 16691,
- VPERMWZ128rm = 16692,
- VPERMWZ128rmk = 16693,
- VPERMWZ128rmkz = 16694,
- VPERMWZ128rr = 16695,
- VPERMWZ128rrk = 16696,
- VPERMWZ128rrkz = 16697,
- VPERMWZ256rm = 16698,
- VPERMWZ256rmk = 16699,
- VPERMWZ256rmkz = 16700,
- VPERMWZ256rr = 16701,
- VPERMWZ256rrk = 16702,
- VPERMWZ256rrkz = 16703,
- VPERMWZrm = 16704,
- VPERMWZrmk = 16705,
- VPERMWZrmkz = 16706,
- VPERMWZrr = 16707,
- VPERMWZrrk = 16708,
- VPERMWZrrkz = 16709,
- VPEXPANDBZ128rm = 16710,
- VPEXPANDBZ128rmk = 16711,
- VPEXPANDBZ128rmkz = 16712,
- VPEXPANDBZ128rr = 16713,
- VPEXPANDBZ128rrk = 16714,
- VPEXPANDBZ128rrkz = 16715,
- VPEXPANDBZ256rm = 16716,
- VPEXPANDBZ256rmk = 16717,
- VPEXPANDBZ256rmkz = 16718,
- VPEXPANDBZ256rr = 16719,
- VPEXPANDBZ256rrk = 16720,
- VPEXPANDBZ256rrkz = 16721,
- VPEXPANDBZrm = 16722,
- VPEXPANDBZrmk = 16723,
- VPEXPANDBZrmkz = 16724,
- VPEXPANDBZrr = 16725,
- VPEXPANDBZrrk = 16726,
- VPEXPANDBZrrkz = 16727,
- VPEXPANDDZ128rm = 16728,
- VPEXPANDDZ128rmk = 16729,
- VPEXPANDDZ128rmkz = 16730,
- VPEXPANDDZ128rr = 16731,
- VPEXPANDDZ128rrk = 16732,
- VPEXPANDDZ128rrkz = 16733,
- VPEXPANDDZ256rm = 16734,
- VPEXPANDDZ256rmk = 16735,
- VPEXPANDDZ256rmkz = 16736,
- VPEXPANDDZ256rr = 16737,
- VPEXPANDDZ256rrk = 16738,
- VPEXPANDDZ256rrkz = 16739,
- VPEXPANDDZrm = 16740,
- VPEXPANDDZrmk = 16741,
- VPEXPANDDZrmkz = 16742,
- VPEXPANDDZrr = 16743,
- VPEXPANDDZrrk = 16744,
- VPEXPANDDZrrkz = 16745,
- VPEXPANDQZ128rm = 16746,
- VPEXPANDQZ128rmk = 16747,
- VPEXPANDQZ128rmkz = 16748,
- VPEXPANDQZ128rr = 16749,
- VPEXPANDQZ128rrk = 16750,
- VPEXPANDQZ128rrkz = 16751,
- VPEXPANDQZ256rm = 16752,
- VPEXPANDQZ256rmk = 16753,
- VPEXPANDQZ256rmkz = 16754,
- VPEXPANDQZ256rr = 16755,
- VPEXPANDQZ256rrk = 16756,
- VPEXPANDQZ256rrkz = 16757,
- VPEXPANDQZrm = 16758,
- VPEXPANDQZrmk = 16759,
- VPEXPANDQZrmkz = 16760,
- VPEXPANDQZrr = 16761,
- VPEXPANDQZrrk = 16762,
- VPEXPANDQZrrkz = 16763,
- VPEXPANDWZ128rm = 16764,
- VPEXPANDWZ128rmk = 16765,
- VPEXPANDWZ128rmkz = 16766,
- VPEXPANDWZ128rr = 16767,
- VPEXPANDWZ128rrk = 16768,
- VPEXPANDWZ128rrkz = 16769,
- VPEXPANDWZ256rm = 16770,
- VPEXPANDWZ256rmk = 16771,
- VPEXPANDWZ256rmkz = 16772,
- VPEXPANDWZ256rr = 16773,
- VPEXPANDWZ256rrk = 16774,
- VPEXPANDWZ256rrkz = 16775,
- VPEXPANDWZrm = 16776,
- VPEXPANDWZrmk = 16777,
- VPEXPANDWZrmkz = 16778,
- VPEXPANDWZrr = 16779,
- VPEXPANDWZrrk = 16780,
- VPEXPANDWZrrkz = 16781,
- VPEXTRBZmri = 16782,
- VPEXTRBZrri = 16783,
- VPEXTRBmri = 16784,
- VPEXTRBrri = 16785,
- VPEXTRDZmri = 16786,
- VPEXTRDZrri = 16787,
- VPEXTRDmri = 16788,
- VPEXTRDrri = 16789,
- VPEXTRQZmri = 16790,
- VPEXTRQZrri = 16791,
- VPEXTRQmri = 16792,
- VPEXTRQrri = 16793,
- VPEXTRWZmri = 16794,
- VPEXTRWZrri = 16795,
- VPEXTRWZrri_REV = 16796,
- VPEXTRWmri = 16797,
- VPEXTRWrri = 16798,
- VPEXTRWrri_REV = 16799,
- VPGATHERDDYrm = 16800,
- VPGATHERDDZ128rm = 16801,
- VPGATHERDDZ256rm = 16802,
- VPGATHERDDZrm = 16803,
- VPGATHERDDrm = 16804,
- VPGATHERDQYrm = 16805,
- VPGATHERDQZ128rm = 16806,
- VPGATHERDQZ256rm = 16807,
- VPGATHERDQZrm = 16808,
- VPGATHERDQrm = 16809,
- VPGATHERQDYrm = 16810,
- VPGATHERQDZ128rm = 16811,
- VPGATHERQDZ256rm = 16812,
- VPGATHERQDZrm = 16813,
- VPGATHERQDrm = 16814,
- VPGATHERQQYrm = 16815,
- VPGATHERQQZ128rm = 16816,
- VPGATHERQQZ256rm = 16817,
- VPGATHERQQZrm = 16818,
- VPGATHERQQrm = 16819,
- VPHADDBDrm = 16820,
- VPHADDBDrr = 16821,
- VPHADDBQrm = 16822,
- VPHADDBQrr = 16823,
- VPHADDBWrm = 16824,
- VPHADDBWrr = 16825,
- VPHADDDQrm = 16826,
- VPHADDDQrr = 16827,
- VPHADDDYrm = 16828,
- VPHADDDYrr = 16829,
- VPHADDDrm = 16830,
- VPHADDDrr = 16831,
- VPHADDSWYrm = 16832,
- VPHADDSWYrr = 16833,
- VPHADDSWrm = 16834,
- VPHADDSWrr = 16835,
- VPHADDUBDrm = 16836,
- VPHADDUBDrr = 16837,
- VPHADDUBQrm = 16838,
- VPHADDUBQrr = 16839,
- VPHADDUBWrm = 16840,
- VPHADDUBWrr = 16841,
- VPHADDUDQrm = 16842,
- VPHADDUDQrr = 16843,
- VPHADDUWDrm = 16844,
- VPHADDUWDrr = 16845,
- VPHADDUWQrm = 16846,
- VPHADDUWQrr = 16847,
- VPHADDWDrm = 16848,
- VPHADDWDrr = 16849,
- VPHADDWQrm = 16850,
- VPHADDWQrr = 16851,
- VPHADDWYrm = 16852,
- VPHADDWYrr = 16853,
- VPHADDWrm = 16854,
- VPHADDWrr = 16855,
- VPHMINPOSUWrm = 16856,
- VPHMINPOSUWrr = 16857,
- VPHSUBBWrm = 16858,
- VPHSUBBWrr = 16859,
- VPHSUBDQrm = 16860,
- VPHSUBDQrr = 16861,
- VPHSUBDYrm = 16862,
- VPHSUBDYrr = 16863,
- VPHSUBDrm = 16864,
- VPHSUBDrr = 16865,
- VPHSUBSWYrm = 16866,
- VPHSUBSWYrr = 16867,
- VPHSUBSWrm = 16868,
- VPHSUBSWrr = 16869,
- VPHSUBWDrm = 16870,
- VPHSUBWDrr = 16871,
- VPHSUBWYrm = 16872,
- VPHSUBWYrr = 16873,
- VPHSUBWrm = 16874,
- VPHSUBWrr = 16875,
- VPINSRBZrmi = 16876,
- VPINSRBZrri = 16877,
- VPINSRBrmi = 16878,
- VPINSRBrri = 16879,
- VPINSRDZrmi = 16880,
- VPINSRDZrri = 16881,
- VPINSRDrmi = 16882,
- VPINSRDrri = 16883,
- VPINSRQZrmi = 16884,
- VPINSRQZrri = 16885,
- VPINSRQrmi = 16886,
- VPINSRQrri = 16887,
- VPINSRWZrmi = 16888,
- VPINSRWZrri = 16889,
- VPINSRWrmi = 16890,
- VPINSRWrri = 16891,
- VPLZCNTDZ128rm = 16892,
- VPLZCNTDZ128rmb = 16893,
- VPLZCNTDZ128rmbk = 16894,
- VPLZCNTDZ128rmbkz = 16895,
- VPLZCNTDZ128rmk = 16896,
- VPLZCNTDZ128rmkz = 16897,
- VPLZCNTDZ128rr = 16898,
- VPLZCNTDZ128rrk = 16899,
- VPLZCNTDZ128rrkz = 16900,
- VPLZCNTDZ256rm = 16901,
- VPLZCNTDZ256rmb = 16902,
- VPLZCNTDZ256rmbk = 16903,
- VPLZCNTDZ256rmbkz = 16904,
- VPLZCNTDZ256rmk = 16905,
- VPLZCNTDZ256rmkz = 16906,
- VPLZCNTDZ256rr = 16907,
- VPLZCNTDZ256rrk = 16908,
- VPLZCNTDZ256rrkz = 16909,
- VPLZCNTDZrm = 16910,
- VPLZCNTDZrmb = 16911,
- VPLZCNTDZrmbk = 16912,
- VPLZCNTDZrmbkz = 16913,
- VPLZCNTDZrmk = 16914,
- VPLZCNTDZrmkz = 16915,
- VPLZCNTDZrr = 16916,
- VPLZCNTDZrrk = 16917,
- VPLZCNTDZrrkz = 16918,
- VPLZCNTQZ128rm = 16919,
- VPLZCNTQZ128rmb = 16920,
- VPLZCNTQZ128rmbk = 16921,
- VPLZCNTQZ128rmbkz = 16922,
- VPLZCNTQZ128rmk = 16923,
- VPLZCNTQZ128rmkz = 16924,
- VPLZCNTQZ128rr = 16925,
- VPLZCNTQZ128rrk = 16926,
- VPLZCNTQZ128rrkz = 16927,
- VPLZCNTQZ256rm = 16928,
- VPLZCNTQZ256rmb = 16929,
- VPLZCNTQZ256rmbk = 16930,
- VPLZCNTQZ256rmbkz = 16931,
- VPLZCNTQZ256rmk = 16932,
- VPLZCNTQZ256rmkz = 16933,
- VPLZCNTQZ256rr = 16934,
- VPLZCNTQZ256rrk = 16935,
- VPLZCNTQZ256rrkz = 16936,
- VPLZCNTQZrm = 16937,
- VPLZCNTQZrmb = 16938,
- VPLZCNTQZrmbk = 16939,
- VPLZCNTQZrmbkz = 16940,
- VPLZCNTQZrmk = 16941,
- VPLZCNTQZrmkz = 16942,
- VPLZCNTQZrr = 16943,
- VPLZCNTQZrrk = 16944,
- VPLZCNTQZrrkz = 16945,
- VPMACSDDrm = 16946,
- VPMACSDDrr = 16947,
- VPMACSDQHrm = 16948,
- VPMACSDQHrr = 16949,
- VPMACSDQLrm = 16950,
- VPMACSDQLrr = 16951,
- VPMACSSDDrm = 16952,
- VPMACSSDDrr = 16953,
- VPMACSSDQHrm = 16954,
- VPMACSSDQHrr = 16955,
- VPMACSSDQLrm = 16956,
- VPMACSSDQLrr = 16957,
- VPMACSSWDrm = 16958,
- VPMACSSWDrr = 16959,
- VPMACSSWWrm = 16960,
- VPMACSSWWrr = 16961,
- VPMACSWDrm = 16962,
- VPMACSWDrr = 16963,
- VPMACSWWrm = 16964,
- VPMACSWWrr = 16965,
- VPMADCSSWDrm = 16966,
- VPMADCSSWDrr = 16967,
- VPMADCSWDrm = 16968,
- VPMADCSWDrr = 16969,
- VPMADD52HUQYrm = 16970,
- VPMADD52HUQYrr = 16971,
- VPMADD52HUQZ128m = 16972,
- VPMADD52HUQZ128mb = 16973,
- VPMADD52HUQZ128mbk = 16974,
- VPMADD52HUQZ128mbkz = 16975,
- VPMADD52HUQZ128mk = 16976,
- VPMADD52HUQZ128mkz = 16977,
- VPMADD52HUQZ128r = 16978,
- VPMADD52HUQZ128rk = 16979,
- VPMADD52HUQZ128rkz = 16980,
- VPMADD52HUQZ256m = 16981,
- VPMADD52HUQZ256mb = 16982,
- VPMADD52HUQZ256mbk = 16983,
- VPMADD52HUQZ256mbkz = 16984,
- VPMADD52HUQZ256mk = 16985,
- VPMADD52HUQZ256mkz = 16986,
- VPMADD52HUQZ256r = 16987,
- VPMADD52HUQZ256rk = 16988,
- VPMADD52HUQZ256rkz = 16989,
- VPMADD52HUQZm = 16990,
- VPMADD52HUQZmb = 16991,
- VPMADD52HUQZmbk = 16992,
- VPMADD52HUQZmbkz = 16993,
- VPMADD52HUQZmk = 16994,
- VPMADD52HUQZmkz = 16995,
- VPMADD52HUQZr = 16996,
- VPMADD52HUQZrk = 16997,
- VPMADD52HUQZrkz = 16998,
- VPMADD52HUQrm = 16999,
- VPMADD52HUQrr = 17000,
- VPMADD52LUQYrm = 17001,
- VPMADD52LUQYrr = 17002,
- VPMADD52LUQZ128m = 17003,
- VPMADD52LUQZ128mb = 17004,
- VPMADD52LUQZ128mbk = 17005,
- VPMADD52LUQZ128mbkz = 17006,
- VPMADD52LUQZ128mk = 17007,
- VPMADD52LUQZ128mkz = 17008,
- VPMADD52LUQZ128r = 17009,
- VPMADD52LUQZ128rk = 17010,
- VPMADD52LUQZ128rkz = 17011,
- VPMADD52LUQZ256m = 17012,
- VPMADD52LUQZ256mb = 17013,
- VPMADD52LUQZ256mbk = 17014,
- VPMADD52LUQZ256mbkz = 17015,
- VPMADD52LUQZ256mk = 17016,
- VPMADD52LUQZ256mkz = 17017,
- VPMADD52LUQZ256r = 17018,
- VPMADD52LUQZ256rk = 17019,
- VPMADD52LUQZ256rkz = 17020,
- VPMADD52LUQZm = 17021,
- VPMADD52LUQZmb = 17022,
- VPMADD52LUQZmbk = 17023,
- VPMADD52LUQZmbkz = 17024,
- VPMADD52LUQZmk = 17025,
- VPMADD52LUQZmkz = 17026,
- VPMADD52LUQZr = 17027,
- VPMADD52LUQZrk = 17028,
- VPMADD52LUQZrkz = 17029,
- VPMADD52LUQrm = 17030,
- VPMADD52LUQrr = 17031,
- VPMADDUBSWYrm = 17032,
- VPMADDUBSWYrr = 17033,
- VPMADDUBSWZ128rm = 17034,
- VPMADDUBSWZ128rmk = 17035,
- VPMADDUBSWZ128rmkz = 17036,
- VPMADDUBSWZ128rr = 17037,
- VPMADDUBSWZ128rrk = 17038,
- VPMADDUBSWZ128rrkz = 17039,
- VPMADDUBSWZ256rm = 17040,
- VPMADDUBSWZ256rmk = 17041,
- VPMADDUBSWZ256rmkz = 17042,
- VPMADDUBSWZ256rr = 17043,
- VPMADDUBSWZ256rrk = 17044,
- VPMADDUBSWZ256rrkz = 17045,
- VPMADDUBSWZrm = 17046,
- VPMADDUBSWZrmk = 17047,
- VPMADDUBSWZrmkz = 17048,
- VPMADDUBSWZrr = 17049,
- VPMADDUBSWZrrk = 17050,
- VPMADDUBSWZrrkz = 17051,
- VPMADDUBSWrm = 17052,
- VPMADDUBSWrr = 17053,
- VPMADDWDYrm = 17054,
- VPMADDWDYrr = 17055,
- VPMADDWDZ128rm = 17056,
- VPMADDWDZ128rmk = 17057,
- VPMADDWDZ128rmkz = 17058,
- VPMADDWDZ128rr = 17059,
- VPMADDWDZ128rrk = 17060,
- VPMADDWDZ128rrkz = 17061,
- VPMADDWDZ256rm = 17062,
- VPMADDWDZ256rmk = 17063,
- VPMADDWDZ256rmkz = 17064,
- VPMADDWDZ256rr = 17065,
- VPMADDWDZ256rrk = 17066,
- VPMADDWDZ256rrkz = 17067,
- VPMADDWDZrm = 17068,
- VPMADDWDZrmk = 17069,
- VPMADDWDZrmkz = 17070,
- VPMADDWDZrr = 17071,
- VPMADDWDZrrk = 17072,
- VPMADDWDZrrkz = 17073,
- VPMADDWDrm = 17074,
- VPMADDWDrr = 17075,
- VPMASKMOVDYmr = 17076,
- VPMASKMOVDYrm = 17077,
- VPMASKMOVDmr = 17078,
- VPMASKMOVDrm = 17079,
- VPMASKMOVQYmr = 17080,
- VPMASKMOVQYrm = 17081,
- VPMASKMOVQmr = 17082,
- VPMASKMOVQrm = 17083,
- VPMAXSBYrm = 17084,
- VPMAXSBYrr = 17085,
- VPMAXSBZ128rm = 17086,
- VPMAXSBZ128rmk = 17087,
- VPMAXSBZ128rmkz = 17088,
- VPMAXSBZ128rr = 17089,
- VPMAXSBZ128rrk = 17090,
- VPMAXSBZ128rrkz = 17091,
- VPMAXSBZ256rm = 17092,
- VPMAXSBZ256rmk = 17093,
- VPMAXSBZ256rmkz = 17094,
- VPMAXSBZ256rr = 17095,
- VPMAXSBZ256rrk = 17096,
- VPMAXSBZ256rrkz = 17097,
- VPMAXSBZrm = 17098,
- VPMAXSBZrmk = 17099,
- VPMAXSBZrmkz = 17100,
- VPMAXSBZrr = 17101,
- VPMAXSBZrrk = 17102,
- VPMAXSBZrrkz = 17103,
- VPMAXSBrm = 17104,
- VPMAXSBrr = 17105,
- VPMAXSDYrm = 17106,
- VPMAXSDYrr = 17107,
- VPMAXSDZ128rm = 17108,
- VPMAXSDZ128rmb = 17109,
- VPMAXSDZ128rmbk = 17110,
- VPMAXSDZ128rmbkz = 17111,
- VPMAXSDZ128rmk = 17112,
- VPMAXSDZ128rmkz = 17113,
- VPMAXSDZ128rr = 17114,
- VPMAXSDZ128rrk = 17115,
- VPMAXSDZ128rrkz = 17116,
- VPMAXSDZ256rm = 17117,
- VPMAXSDZ256rmb = 17118,
- VPMAXSDZ256rmbk = 17119,
- VPMAXSDZ256rmbkz = 17120,
- VPMAXSDZ256rmk = 17121,
- VPMAXSDZ256rmkz = 17122,
- VPMAXSDZ256rr = 17123,
- VPMAXSDZ256rrk = 17124,
- VPMAXSDZ256rrkz = 17125,
- VPMAXSDZrm = 17126,
- VPMAXSDZrmb = 17127,
- VPMAXSDZrmbk = 17128,
- VPMAXSDZrmbkz = 17129,
- VPMAXSDZrmk = 17130,
- VPMAXSDZrmkz = 17131,
- VPMAXSDZrr = 17132,
- VPMAXSDZrrk = 17133,
- VPMAXSDZrrkz = 17134,
- VPMAXSDrm = 17135,
- VPMAXSDrr = 17136,
- VPMAXSQZ128rm = 17137,
- VPMAXSQZ128rmb = 17138,
- VPMAXSQZ128rmbk = 17139,
- VPMAXSQZ128rmbkz = 17140,
- VPMAXSQZ128rmk = 17141,
- VPMAXSQZ128rmkz = 17142,
- VPMAXSQZ128rr = 17143,
- VPMAXSQZ128rrk = 17144,
- VPMAXSQZ128rrkz = 17145,
- VPMAXSQZ256rm = 17146,
- VPMAXSQZ256rmb = 17147,
- VPMAXSQZ256rmbk = 17148,
- VPMAXSQZ256rmbkz = 17149,
- VPMAXSQZ256rmk = 17150,
- VPMAXSQZ256rmkz = 17151,
- VPMAXSQZ256rr = 17152,
- VPMAXSQZ256rrk = 17153,
- VPMAXSQZ256rrkz = 17154,
- VPMAXSQZrm = 17155,
- VPMAXSQZrmb = 17156,
- VPMAXSQZrmbk = 17157,
- VPMAXSQZrmbkz = 17158,
- VPMAXSQZrmk = 17159,
- VPMAXSQZrmkz = 17160,
- VPMAXSQZrr = 17161,
- VPMAXSQZrrk = 17162,
- VPMAXSQZrrkz = 17163,
- VPMAXSWYrm = 17164,
- VPMAXSWYrr = 17165,
- VPMAXSWZ128rm = 17166,
- VPMAXSWZ128rmk = 17167,
- VPMAXSWZ128rmkz = 17168,
- VPMAXSWZ128rr = 17169,
- VPMAXSWZ128rrk = 17170,
- VPMAXSWZ128rrkz = 17171,
- VPMAXSWZ256rm = 17172,
- VPMAXSWZ256rmk = 17173,
- VPMAXSWZ256rmkz = 17174,
- VPMAXSWZ256rr = 17175,
- VPMAXSWZ256rrk = 17176,
- VPMAXSWZ256rrkz = 17177,
- VPMAXSWZrm = 17178,
- VPMAXSWZrmk = 17179,
- VPMAXSWZrmkz = 17180,
- VPMAXSWZrr = 17181,
- VPMAXSWZrrk = 17182,
- VPMAXSWZrrkz = 17183,
- VPMAXSWrm = 17184,
- VPMAXSWrr = 17185,
- VPMAXUBYrm = 17186,
- VPMAXUBYrr = 17187,
- VPMAXUBZ128rm = 17188,
- VPMAXUBZ128rmk = 17189,
- VPMAXUBZ128rmkz = 17190,
- VPMAXUBZ128rr = 17191,
- VPMAXUBZ128rrk = 17192,
- VPMAXUBZ128rrkz = 17193,
- VPMAXUBZ256rm = 17194,
- VPMAXUBZ256rmk = 17195,
- VPMAXUBZ256rmkz = 17196,
- VPMAXUBZ256rr = 17197,
- VPMAXUBZ256rrk = 17198,
- VPMAXUBZ256rrkz = 17199,
- VPMAXUBZrm = 17200,
- VPMAXUBZrmk = 17201,
- VPMAXUBZrmkz = 17202,
- VPMAXUBZrr = 17203,
- VPMAXUBZrrk = 17204,
- VPMAXUBZrrkz = 17205,
- VPMAXUBrm = 17206,
- VPMAXUBrr = 17207,
- VPMAXUDYrm = 17208,
- VPMAXUDYrr = 17209,
- VPMAXUDZ128rm = 17210,
- VPMAXUDZ128rmb = 17211,
- VPMAXUDZ128rmbk = 17212,
- VPMAXUDZ128rmbkz = 17213,
- VPMAXUDZ128rmk = 17214,
- VPMAXUDZ128rmkz = 17215,
- VPMAXUDZ128rr = 17216,
- VPMAXUDZ128rrk = 17217,
- VPMAXUDZ128rrkz = 17218,
- VPMAXUDZ256rm = 17219,
- VPMAXUDZ256rmb = 17220,
- VPMAXUDZ256rmbk = 17221,
- VPMAXUDZ256rmbkz = 17222,
- VPMAXUDZ256rmk = 17223,
- VPMAXUDZ256rmkz = 17224,
- VPMAXUDZ256rr = 17225,
- VPMAXUDZ256rrk = 17226,
- VPMAXUDZ256rrkz = 17227,
- VPMAXUDZrm = 17228,
- VPMAXUDZrmb = 17229,
- VPMAXUDZrmbk = 17230,
- VPMAXUDZrmbkz = 17231,
- VPMAXUDZrmk = 17232,
- VPMAXUDZrmkz = 17233,
- VPMAXUDZrr = 17234,
- VPMAXUDZrrk = 17235,
- VPMAXUDZrrkz = 17236,
- VPMAXUDrm = 17237,
- VPMAXUDrr = 17238,
- VPMAXUQZ128rm = 17239,
- VPMAXUQZ128rmb = 17240,
- VPMAXUQZ128rmbk = 17241,
- VPMAXUQZ128rmbkz = 17242,
- VPMAXUQZ128rmk = 17243,
- VPMAXUQZ128rmkz = 17244,
- VPMAXUQZ128rr = 17245,
- VPMAXUQZ128rrk = 17246,
- VPMAXUQZ128rrkz = 17247,
- VPMAXUQZ256rm = 17248,
- VPMAXUQZ256rmb = 17249,
- VPMAXUQZ256rmbk = 17250,
- VPMAXUQZ256rmbkz = 17251,
- VPMAXUQZ256rmk = 17252,
- VPMAXUQZ256rmkz = 17253,
- VPMAXUQZ256rr = 17254,
- VPMAXUQZ256rrk = 17255,
- VPMAXUQZ256rrkz = 17256,
- VPMAXUQZrm = 17257,
- VPMAXUQZrmb = 17258,
- VPMAXUQZrmbk = 17259,
- VPMAXUQZrmbkz = 17260,
- VPMAXUQZrmk = 17261,
- VPMAXUQZrmkz = 17262,
- VPMAXUQZrr = 17263,
- VPMAXUQZrrk = 17264,
- VPMAXUQZrrkz = 17265,
- VPMAXUWYrm = 17266,
- VPMAXUWYrr = 17267,
- VPMAXUWZ128rm = 17268,
- VPMAXUWZ128rmk = 17269,
- VPMAXUWZ128rmkz = 17270,
- VPMAXUWZ128rr = 17271,
- VPMAXUWZ128rrk = 17272,
- VPMAXUWZ128rrkz = 17273,
- VPMAXUWZ256rm = 17274,
- VPMAXUWZ256rmk = 17275,
- VPMAXUWZ256rmkz = 17276,
- VPMAXUWZ256rr = 17277,
- VPMAXUWZ256rrk = 17278,
- VPMAXUWZ256rrkz = 17279,
- VPMAXUWZrm = 17280,
- VPMAXUWZrmk = 17281,
- VPMAXUWZrmkz = 17282,
- VPMAXUWZrr = 17283,
- VPMAXUWZrrk = 17284,
- VPMAXUWZrrkz = 17285,
- VPMAXUWrm = 17286,
- VPMAXUWrr = 17287,
- VPMINSBYrm = 17288,
- VPMINSBYrr = 17289,
- VPMINSBZ128rm = 17290,
- VPMINSBZ128rmk = 17291,
- VPMINSBZ128rmkz = 17292,
- VPMINSBZ128rr = 17293,
- VPMINSBZ128rrk = 17294,
- VPMINSBZ128rrkz = 17295,
- VPMINSBZ256rm = 17296,
- VPMINSBZ256rmk = 17297,
- VPMINSBZ256rmkz = 17298,
- VPMINSBZ256rr = 17299,
- VPMINSBZ256rrk = 17300,
- VPMINSBZ256rrkz = 17301,
- VPMINSBZrm = 17302,
- VPMINSBZrmk = 17303,
- VPMINSBZrmkz = 17304,
- VPMINSBZrr = 17305,
- VPMINSBZrrk = 17306,
- VPMINSBZrrkz = 17307,
- VPMINSBrm = 17308,
- VPMINSBrr = 17309,
- VPMINSDYrm = 17310,
- VPMINSDYrr = 17311,
- VPMINSDZ128rm = 17312,
- VPMINSDZ128rmb = 17313,
- VPMINSDZ128rmbk = 17314,
- VPMINSDZ128rmbkz = 17315,
- VPMINSDZ128rmk = 17316,
- VPMINSDZ128rmkz = 17317,
- VPMINSDZ128rr = 17318,
- VPMINSDZ128rrk = 17319,
- VPMINSDZ128rrkz = 17320,
- VPMINSDZ256rm = 17321,
- VPMINSDZ256rmb = 17322,
- VPMINSDZ256rmbk = 17323,
- VPMINSDZ256rmbkz = 17324,
- VPMINSDZ256rmk = 17325,
- VPMINSDZ256rmkz = 17326,
- VPMINSDZ256rr = 17327,
- VPMINSDZ256rrk = 17328,
- VPMINSDZ256rrkz = 17329,
- VPMINSDZrm = 17330,
- VPMINSDZrmb = 17331,
- VPMINSDZrmbk = 17332,
- VPMINSDZrmbkz = 17333,
- VPMINSDZrmk = 17334,
- VPMINSDZrmkz = 17335,
- VPMINSDZrr = 17336,
- VPMINSDZrrk = 17337,
- VPMINSDZrrkz = 17338,
- VPMINSDrm = 17339,
- VPMINSDrr = 17340,
- VPMINSQZ128rm = 17341,
- VPMINSQZ128rmb = 17342,
- VPMINSQZ128rmbk = 17343,
- VPMINSQZ128rmbkz = 17344,
- VPMINSQZ128rmk = 17345,
- VPMINSQZ128rmkz = 17346,
- VPMINSQZ128rr = 17347,
- VPMINSQZ128rrk = 17348,
- VPMINSQZ128rrkz = 17349,
- VPMINSQZ256rm = 17350,
- VPMINSQZ256rmb = 17351,
- VPMINSQZ256rmbk = 17352,
- VPMINSQZ256rmbkz = 17353,
- VPMINSQZ256rmk = 17354,
- VPMINSQZ256rmkz = 17355,
- VPMINSQZ256rr = 17356,
- VPMINSQZ256rrk = 17357,
- VPMINSQZ256rrkz = 17358,
- VPMINSQZrm = 17359,
- VPMINSQZrmb = 17360,
- VPMINSQZrmbk = 17361,
- VPMINSQZrmbkz = 17362,
- VPMINSQZrmk = 17363,
- VPMINSQZrmkz = 17364,
- VPMINSQZrr = 17365,
- VPMINSQZrrk = 17366,
- VPMINSQZrrkz = 17367,
- VPMINSWYrm = 17368,
- VPMINSWYrr = 17369,
- VPMINSWZ128rm = 17370,
- VPMINSWZ128rmk = 17371,
- VPMINSWZ128rmkz = 17372,
- VPMINSWZ128rr = 17373,
- VPMINSWZ128rrk = 17374,
- VPMINSWZ128rrkz = 17375,
- VPMINSWZ256rm = 17376,
- VPMINSWZ256rmk = 17377,
- VPMINSWZ256rmkz = 17378,
- VPMINSWZ256rr = 17379,
- VPMINSWZ256rrk = 17380,
- VPMINSWZ256rrkz = 17381,
- VPMINSWZrm = 17382,
- VPMINSWZrmk = 17383,
- VPMINSWZrmkz = 17384,
- VPMINSWZrr = 17385,
- VPMINSWZrrk = 17386,
- VPMINSWZrrkz = 17387,
- VPMINSWrm = 17388,
- VPMINSWrr = 17389,
- VPMINUBYrm = 17390,
- VPMINUBYrr = 17391,
- VPMINUBZ128rm = 17392,
- VPMINUBZ128rmk = 17393,
- VPMINUBZ128rmkz = 17394,
- VPMINUBZ128rr = 17395,
- VPMINUBZ128rrk = 17396,
- VPMINUBZ128rrkz = 17397,
- VPMINUBZ256rm = 17398,
- VPMINUBZ256rmk = 17399,
- VPMINUBZ256rmkz = 17400,
- VPMINUBZ256rr = 17401,
- VPMINUBZ256rrk = 17402,
- VPMINUBZ256rrkz = 17403,
- VPMINUBZrm = 17404,
- VPMINUBZrmk = 17405,
- VPMINUBZrmkz = 17406,
- VPMINUBZrr = 17407,
- VPMINUBZrrk = 17408,
- VPMINUBZrrkz = 17409,
- VPMINUBrm = 17410,
- VPMINUBrr = 17411,
- VPMINUDYrm = 17412,
- VPMINUDYrr = 17413,
- VPMINUDZ128rm = 17414,
- VPMINUDZ128rmb = 17415,
- VPMINUDZ128rmbk = 17416,
- VPMINUDZ128rmbkz = 17417,
- VPMINUDZ128rmk = 17418,
- VPMINUDZ128rmkz = 17419,
- VPMINUDZ128rr = 17420,
- VPMINUDZ128rrk = 17421,
- VPMINUDZ128rrkz = 17422,
- VPMINUDZ256rm = 17423,
- VPMINUDZ256rmb = 17424,
- VPMINUDZ256rmbk = 17425,
- VPMINUDZ256rmbkz = 17426,
- VPMINUDZ256rmk = 17427,
- VPMINUDZ256rmkz = 17428,
- VPMINUDZ256rr = 17429,
- VPMINUDZ256rrk = 17430,
- VPMINUDZ256rrkz = 17431,
- VPMINUDZrm = 17432,
- VPMINUDZrmb = 17433,
- VPMINUDZrmbk = 17434,
- VPMINUDZrmbkz = 17435,
- VPMINUDZrmk = 17436,
- VPMINUDZrmkz = 17437,
- VPMINUDZrr = 17438,
- VPMINUDZrrk = 17439,
- VPMINUDZrrkz = 17440,
- VPMINUDrm = 17441,
- VPMINUDrr = 17442,
- VPMINUQZ128rm = 17443,
- VPMINUQZ128rmb = 17444,
- VPMINUQZ128rmbk = 17445,
- VPMINUQZ128rmbkz = 17446,
- VPMINUQZ128rmk = 17447,
- VPMINUQZ128rmkz = 17448,
- VPMINUQZ128rr = 17449,
- VPMINUQZ128rrk = 17450,
- VPMINUQZ128rrkz = 17451,
- VPMINUQZ256rm = 17452,
- VPMINUQZ256rmb = 17453,
- VPMINUQZ256rmbk = 17454,
- VPMINUQZ256rmbkz = 17455,
- VPMINUQZ256rmk = 17456,
- VPMINUQZ256rmkz = 17457,
- VPMINUQZ256rr = 17458,
- VPMINUQZ256rrk = 17459,
- VPMINUQZ256rrkz = 17460,
- VPMINUQZrm = 17461,
- VPMINUQZrmb = 17462,
- VPMINUQZrmbk = 17463,
- VPMINUQZrmbkz = 17464,
- VPMINUQZrmk = 17465,
- VPMINUQZrmkz = 17466,
- VPMINUQZrr = 17467,
- VPMINUQZrrk = 17468,
- VPMINUQZrrkz = 17469,
- VPMINUWYrm = 17470,
- VPMINUWYrr = 17471,
- VPMINUWZ128rm = 17472,
- VPMINUWZ128rmk = 17473,
- VPMINUWZ128rmkz = 17474,
- VPMINUWZ128rr = 17475,
- VPMINUWZ128rrk = 17476,
- VPMINUWZ128rrkz = 17477,
- VPMINUWZ256rm = 17478,
- VPMINUWZ256rmk = 17479,
- VPMINUWZ256rmkz = 17480,
- VPMINUWZ256rr = 17481,
- VPMINUWZ256rrk = 17482,
- VPMINUWZ256rrkz = 17483,
- VPMINUWZrm = 17484,
- VPMINUWZrmk = 17485,
- VPMINUWZrmkz = 17486,
- VPMINUWZrr = 17487,
- VPMINUWZrrk = 17488,
- VPMINUWZrrkz = 17489,
- VPMINUWrm = 17490,
- VPMINUWrr = 17491,
- VPMOVB2MZ128kr = 17492,
- VPMOVB2MZ256kr = 17493,
- VPMOVB2MZkr = 17494,
- VPMOVD2MZ128kr = 17495,
- VPMOVD2MZ256kr = 17496,
- VPMOVD2MZkr = 17497,
- VPMOVDBZ128mr = 17498,
- VPMOVDBZ128mrk = 17499,
- VPMOVDBZ128rr = 17500,
- VPMOVDBZ128rrk = 17501,
- VPMOVDBZ128rrkz = 17502,
- VPMOVDBZ256mr = 17503,
- VPMOVDBZ256mrk = 17504,
- VPMOVDBZ256rr = 17505,
- VPMOVDBZ256rrk = 17506,
- VPMOVDBZ256rrkz = 17507,
- VPMOVDBZmr = 17508,
- VPMOVDBZmrk = 17509,
- VPMOVDBZrr = 17510,
- VPMOVDBZrrk = 17511,
- VPMOVDBZrrkz = 17512,
- VPMOVDWZ128mr = 17513,
- VPMOVDWZ128mrk = 17514,
- VPMOVDWZ128rr = 17515,
- VPMOVDWZ128rrk = 17516,
- VPMOVDWZ128rrkz = 17517,
- VPMOVDWZ256mr = 17518,
- VPMOVDWZ256mrk = 17519,
- VPMOVDWZ256rr = 17520,
- VPMOVDWZ256rrk = 17521,
- VPMOVDWZ256rrkz = 17522,
- VPMOVDWZmr = 17523,
- VPMOVDWZmrk = 17524,
- VPMOVDWZrr = 17525,
- VPMOVDWZrrk = 17526,
- VPMOVDWZrrkz = 17527,
- VPMOVM2BZ128rk = 17528,
- VPMOVM2BZ256rk = 17529,
- VPMOVM2BZrk = 17530,
- VPMOVM2DZ128rk = 17531,
- VPMOVM2DZ256rk = 17532,
- VPMOVM2DZrk = 17533,
- VPMOVM2QZ128rk = 17534,
- VPMOVM2QZ256rk = 17535,
- VPMOVM2QZrk = 17536,
- VPMOVM2WZ128rk = 17537,
- VPMOVM2WZ256rk = 17538,
- VPMOVM2WZrk = 17539,
- VPMOVMSKBYrr = 17540,
- VPMOVMSKBrr = 17541,
- VPMOVQ2MZ128kr = 17542,
- VPMOVQ2MZ256kr = 17543,
- VPMOVQ2MZkr = 17544,
- VPMOVQBZ128mr = 17545,
- VPMOVQBZ128mrk = 17546,
- VPMOVQBZ128rr = 17547,
- VPMOVQBZ128rrk = 17548,
- VPMOVQBZ128rrkz = 17549,
- VPMOVQBZ256mr = 17550,
- VPMOVQBZ256mrk = 17551,
- VPMOVQBZ256rr = 17552,
- VPMOVQBZ256rrk = 17553,
- VPMOVQBZ256rrkz = 17554,
- VPMOVQBZmr = 17555,
- VPMOVQBZmrk = 17556,
- VPMOVQBZrr = 17557,
- VPMOVQBZrrk = 17558,
- VPMOVQBZrrkz = 17559,
- VPMOVQDZ128mr = 17560,
- VPMOVQDZ128mrk = 17561,
- VPMOVQDZ128rr = 17562,
- VPMOVQDZ128rrk = 17563,
- VPMOVQDZ128rrkz = 17564,
- VPMOVQDZ256mr = 17565,
- VPMOVQDZ256mrk = 17566,
- VPMOVQDZ256rr = 17567,
- VPMOVQDZ256rrk = 17568,
- VPMOVQDZ256rrkz = 17569,
- VPMOVQDZmr = 17570,
- VPMOVQDZmrk = 17571,
- VPMOVQDZrr = 17572,
- VPMOVQDZrrk = 17573,
- VPMOVQDZrrkz = 17574,
- VPMOVQWZ128mr = 17575,
- VPMOVQWZ128mrk = 17576,
- VPMOVQWZ128rr = 17577,
- VPMOVQWZ128rrk = 17578,
- VPMOVQWZ128rrkz = 17579,
- VPMOVQWZ256mr = 17580,
- VPMOVQWZ256mrk = 17581,
- VPMOVQWZ256rr = 17582,
- VPMOVQWZ256rrk = 17583,
- VPMOVQWZ256rrkz = 17584,
- VPMOVQWZmr = 17585,
- VPMOVQWZmrk = 17586,
- VPMOVQWZrr = 17587,
- VPMOVQWZrrk = 17588,
- VPMOVQWZrrkz = 17589,
- VPMOVSDBZ128mr = 17590,
- VPMOVSDBZ128mrk = 17591,
- VPMOVSDBZ128rr = 17592,
- VPMOVSDBZ128rrk = 17593,
- VPMOVSDBZ128rrkz = 17594,
- VPMOVSDBZ256mr = 17595,
- VPMOVSDBZ256mrk = 17596,
- VPMOVSDBZ256rr = 17597,
- VPMOVSDBZ256rrk = 17598,
- VPMOVSDBZ256rrkz = 17599,
- VPMOVSDBZmr = 17600,
- VPMOVSDBZmrk = 17601,
- VPMOVSDBZrr = 17602,
- VPMOVSDBZrrk = 17603,
- VPMOVSDBZrrkz = 17604,
- VPMOVSDWZ128mr = 17605,
- VPMOVSDWZ128mrk = 17606,
- VPMOVSDWZ128rr = 17607,
- VPMOVSDWZ128rrk = 17608,
- VPMOVSDWZ128rrkz = 17609,
- VPMOVSDWZ256mr = 17610,
- VPMOVSDWZ256mrk = 17611,
- VPMOVSDWZ256rr = 17612,
- VPMOVSDWZ256rrk = 17613,
- VPMOVSDWZ256rrkz = 17614,
- VPMOVSDWZmr = 17615,
- VPMOVSDWZmrk = 17616,
- VPMOVSDWZrr = 17617,
- VPMOVSDWZrrk = 17618,
- VPMOVSDWZrrkz = 17619,
- VPMOVSQBZ128mr = 17620,
- VPMOVSQBZ128mrk = 17621,
- VPMOVSQBZ128rr = 17622,
- VPMOVSQBZ128rrk = 17623,
- VPMOVSQBZ128rrkz = 17624,
- VPMOVSQBZ256mr = 17625,
- VPMOVSQBZ256mrk = 17626,
- VPMOVSQBZ256rr = 17627,
- VPMOVSQBZ256rrk = 17628,
- VPMOVSQBZ256rrkz = 17629,
- VPMOVSQBZmr = 17630,
- VPMOVSQBZmrk = 17631,
- VPMOVSQBZrr = 17632,
- VPMOVSQBZrrk = 17633,
- VPMOVSQBZrrkz = 17634,
- VPMOVSQDZ128mr = 17635,
- VPMOVSQDZ128mrk = 17636,
- VPMOVSQDZ128rr = 17637,
- VPMOVSQDZ128rrk = 17638,
- VPMOVSQDZ128rrkz = 17639,
- VPMOVSQDZ256mr = 17640,
- VPMOVSQDZ256mrk = 17641,
- VPMOVSQDZ256rr = 17642,
- VPMOVSQDZ256rrk = 17643,
- VPMOVSQDZ256rrkz = 17644,
- VPMOVSQDZmr = 17645,
- VPMOVSQDZmrk = 17646,
- VPMOVSQDZrr = 17647,
- VPMOVSQDZrrk = 17648,
- VPMOVSQDZrrkz = 17649,
- VPMOVSQWZ128mr = 17650,
- VPMOVSQWZ128mrk = 17651,
- VPMOVSQWZ128rr = 17652,
- VPMOVSQWZ128rrk = 17653,
- VPMOVSQWZ128rrkz = 17654,
- VPMOVSQWZ256mr = 17655,
- VPMOVSQWZ256mrk = 17656,
- VPMOVSQWZ256rr = 17657,
- VPMOVSQWZ256rrk = 17658,
- VPMOVSQWZ256rrkz = 17659,
- VPMOVSQWZmr = 17660,
- VPMOVSQWZmrk = 17661,
- VPMOVSQWZrr = 17662,
- VPMOVSQWZrrk = 17663,
- VPMOVSQWZrrkz = 17664,
- VPMOVSWBZ128mr = 17665,
- VPMOVSWBZ128mrk = 17666,
- VPMOVSWBZ128rr = 17667,
- VPMOVSWBZ128rrk = 17668,
- VPMOVSWBZ128rrkz = 17669,
- VPMOVSWBZ256mr = 17670,
- VPMOVSWBZ256mrk = 17671,
- VPMOVSWBZ256rr = 17672,
- VPMOVSWBZ256rrk = 17673,
- VPMOVSWBZ256rrkz = 17674,
- VPMOVSWBZmr = 17675,
- VPMOVSWBZmrk = 17676,
- VPMOVSWBZrr = 17677,
- VPMOVSWBZrrk = 17678,
- VPMOVSWBZrrkz = 17679,
- VPMOVSXBDYrm = 17680,
- VPMOVSXBDYrr = 17681,
- VPMOVSXBDZ128rm = 17682,
- VPMOVSXBDZ128rmk = 17683,
- VPMOVSXBDZ128rmkz = 17684,
- VPMOVSXBDZ128rr = 17685,
- VPMOVSXBDZ128rrk = 17686,
- VPMOVSXBDZ128rrkz = 17687,
- VPMOVSXBDZ256rm = 17688,
- VPMOVSXBDZ256rmk = 17689,
- VPMOVSXBDZ256rmkz = 17690,
- VPMOVSXBDZ256rr = 17691,
- VPMOVSXBDZ256rrk = 17692,
- VPMOVSXBDZ256rrkz = 17693,
- VPMOVSXBDZrm = 17694,
- VPMOVSXBDZrmk = 17695,
- VPMOVSXBDZrmkz = 17696,
- VPMOVSXBDZrr = 17697,
- VPMOVSXBDZrrk = 17698,
- VPMOVSXBDZrrkz = 17699,
- VPMOVSXBDrm = 17700,
- VPMOVSXBDrr = 17701,
- VPMOVSXBQYrm = 17702,
- VPMOVSXBQYrr = 17703,
- VPMOVSXBQZ128rm = 17704,
- VPMOVSXBQZ128rmk = 17705,
- VPMOVSXBQZ128rmkz = 17706,
- VPMOVSXBQZ128rr = 17707,
- VPMOVSXBQZ128rrk = 17708,
- VPMOVSXBQZ128rrkz = 17709,
- VPMOVSXBQZ256rm = 17710,
- VPMOVSXBQZ256rmk = 17711,
- VPMOVSXBQZ256rmkz = 17712,
- VPMOVSXBQZ256rr = 17713,
- VPMOVSXBQZ256rrk = 17714,
- VPMOVSXBQZ256rrkz = 17715,
- VPMOVSXBQZrm = 17716,
- VPMOVSXBQZrmk = 17717,
- VPMOVSXBQZrmkz = 17718,
- VPMOVSXBQZrr = 17719,
- VPMOVSXBQZrrk = 17720,
- VPMOVSXBQZrrkz = 17721,
- VPMOVSXBQrm = 17722,
- VPMOVSXBQrr = 17723,
- VPMOVSXBWYrm = 17724,
- VPMOVSXBWYrr = 17725,
- VPMOVSXBWZ128rm = 17726,
- VPMOVSXBWZ128rmk = 17727,
- VPMOVSXBWZ128rmkz = 17728,
- VPMOVSXBWZ128rr = 17729,
- VPMOVSXBWZ128rrk = 17730,
- VPMOVSXBWZ128rrkz = 17731,
- VPMOVSXBWZ256rm = 17732,
- VPMOVSXBWZ256rmk = 17733,
- VPMOVSXBWZ256rmkz = 17734,
- VPMOVSXBWZ256rr = 17735,
- VPMOVSXBWZ256rrk = 17736,
- VPMOVSXBWZ256rrkz = 17737,
- VPMOVSXBWZrm = 17738,
- VPMOVSXBWZrmk = 17739,
- VPMOVSXBWZrmkz = 17740,
- VPMOVSXBWZrr = 17741,
- VPMOVSXBWZrrk = 17742,
- VPMOVSXBWZrrkz = 17743,
- VPMOVSXBWrm = 17744,
- VPMOVSXBWrr = 17745,
- VPMOVSXDQYrm = 17746,
- VPMOVSXDQYrr = 17747,
- VPMOVSXDQZ128rm = 17748,
- VPMOVSXDQZ128rmk = 17749,
- VPMOVSXDQZ128rmkz = 17750,
- VPMOVSXDQZ128rr = 17751,
- VPMOVSXDQZ128rrk = 17752,
- VPMOVSXDQZ128rrkz = 17753,
- VPMOVSXDQZ256rm = 17754,
- VPMOVSXDQZ256rmk = 17755,
- VPMOVSXDQZ256rmkz = 17756,
- VPMOVSXDQZ256rr = 17757,
- VPMOVSXDQZ256rrk = 17758,
- VPMOVSXDQZ256rrkz = 17759,
- VPMOVSXDQZrm = 17760,
- VPMOVSXDQZrmk = 17761,
- VPMOVSXDQZrmkz = 17762,
- VPMOVSXDQZrr = 17763,
- VPMOVSXDQZrrk = 17764,
- VPMOVSXDQZrrkz = 17765,
- VPMOVSXDQrm = 17766,
- VPMOVSXDQrr = 17767,
- VPMOVSXWDYrm = 17768,
- VPMOVSXWDYrr = 17769,
- VPMOVSXWDZ128rm = 17770,
- VPMOVSXWDZ128rmk = 17771,
- VPMOVSXWDZ128rmkz = 17772,
- VPMOVSXWDZ128rr = 17773,
- VPMOVSXWDZ128rrk = 17774,
- VPMOVSXWDZ128rrkz = 17775,
- VPMOVSXWDZ256rm = 17776,
- VPMOVSXWDZ256rmk = 17777,
- VPMOVSXWDZ256rmkz = 17778,
- VPMOVSXWDZ256rr = 17779,
- VPMOVSXWDZ256rrk = 17780,
- VPMOVSXWDZ256rrkz = 17781,
- VPMOVSXWDZrm = 17782,
- VPMOVSXWDZrmk = 17783,
- VPMOVSXWDZrmkz = 17784,
- VPMOVSXWDZrr = 17785,
- VPMOVSXWDZrrk = 17786,
- VPMOVSXWDZrrkz = 17787,
- VPMOVSXWDrm = 17788,
- VPMOVSXWDrr = 17789,
- VPMOVSXWQYrm = 17790,
- VPMOVSXWQYrr = 17791,
- VPMOVSXWQZ128rm = 17792,
- VPMOVSXWQZ128rmk = 17793,
- VPMOVSXWQZ128rmkz = 17794,
- VPMOVSXWQZ128rr = 17795,
- VPMOVSXWQZ128rrk = 17796,
- VPMOVSXWQZ128rrkz = 17797,
- VPMOVSXWQZ256rm = 17798,
- VPMOVSXWQZ256rmk = 17799,
- VPMOVSXWQZ256rmkz = 17800,
- VPMOVSXWQZ256rr = 17801,
- VPMOVSXWQZ256rrk = 17802,
- VPMOVSXWQZ256rrkz = 17803,
- VPMOVSXWQZrm = 17804,
- VPMOVSXWQZrmk = 17805,
- VPMOVSXWQZrmkz = 17806,
- VPMOVSXWQZrr = 17807,
- VPMOVSXWQZrrk = 17808,
- VPMOVSXWQZrrkz = 17809,
- VPMOVSXWQrm = 17810,
- VPMOVSXWQrr = 17811,
- VPMOVUSDBZ128mr = 17812,
- VPMOVUSDBZ128mrk = 17813,
- VPMOVUSDBZ128rr = 17814,
- VPMOVUSDBZ128rrk = 17815,
- VPMOVUSDBZ128rrkz = 17816,
- VPMOVUSDBZ256mr = 17817,
- VPMOVUSDBZ256mrk = 17818,
- VPMOVUSDBZ256rr = 17819,
- VPMOVUSDBZ256rrk = 17820,
- VPMOVUSDBZ256rrkz = 17821,
- VPMOVUSDBZmr = 17822,
- VPMOVUSDBZmrk = 17823,
- VPMOVUSDBZrr = 17824,
- VPMOVUSDBZrrk = 17825,
- VPMOVUSDBZrrkz = 17826,
- VPMOVUSDWZ128mr = 17827,
- VPMOVUSDWZ128mrk = 17828,
- VPMOVUSDWZ128rr = 17829,
- VPMOVUSDWZ128rrk = 17830,
- VPMOVUSDWZ128rrkz = 17831,
- VPMOVUSDWZ256mr = 17832,
- VPMOVUSDWZ256mrk = 17833,
- VPMOVUSDWZ256rr = 17834,
- VPMOVUSDWZ256rrk = 17835,
- VPMOVUSDWZ256rrkz = 17836,
- VPMOVUSDWZmr = 17837,
- VPMOVUSDWZmrk = 17838,
- VPMOVUSDWZrr = 17839,
- VPMOVUSDWZrrk = 17840,
- VPMOVUSDWZrrkz = 17841,
- VPMOVUSQBZ128mr = 17842,
- VPMOVUSQBZ128mrk = 17843,
- VPMOVUSQBZ128rr = 17844,
- VPMOVUSQBZ128rrk = 17845,
- VPMOVUSQBZ128rrkz = 17846,
- VPMOVUSQBZ256mr = 17847,
- VPMOVUSQBZ256mrk = 17848,
- VPMOVUSQBZ256rr = 17849,
- VPMOVUSQBZ256rrk = 17850,
- VPMOVUSQBZ256rrkz = 17851,
- VPMOVUSQBZmr = 17852,
- VPMOVUSQBZmrk = 17853,
- VPMOVUSQBZrr = 17854,
- VPMOVUSQBZrrk = 17855,
- VPMOVUSQBZrrkz = 17856,
- VPMOVUSQDZ128mr = 17857,
- VPMOVUSQDZ128mrk = 17858,
- VPMOVUSQDZ128rr = 17859,
- VPMOVUSQDZ128rrk = 17860,
- VPMOVUSQDZ128rrkz = 17861,
- VPMOVUSQDZ256mr = 17862,
- VPMOVUSQDZ256mrk = 17863,
- VPMOVUSQDZ256rr = 17864,
- VPMOVUSQDZ256rrk = 17865,
- VPMOVUSQDZ256rrkz = 17866,
- VPMOVUSQDZmr = 17867,
- VPMOVUSQDZmrk = 17868,
- VPMOVUSQDZrr = 17869,
- VPMOVUSQDZrrk = 17870,
- VPMOVUSQDZrrkz = 17871,
- VPMOVUSQWZ128mr = 17872,
- VPMOVUSQWZ128mrk = 17873,
- VPMOVUSQWZ128rr = 17874,
- VPMOVUSQWZ128rrk = 17875,
- VPMOVUSQWZ128rrkz = 17876,
- VPMOVUSQWZ256mr = 17877,
- VPMOVUSQWZ256mrk = 17878,
- VPMOVUSQWZ256rr = 17879,
- VPMOVUSQWZ256rrk = 17880,
- VPMOVUSQWZ256rrkz = 17881,
- VPMOVUSQWZmr = 17882,
- VPMOVUSQWZmrk = 17883,
- VPMOVUSQWZrr = 17884,
- VPMOVUSQWZrrk = 17885,
- VPMOVUSQWZrrkz = 17886,
- VPMOVUSWBZ128mr = 17887,
- VPMOVUSWBZ128mrk = 17888,
- VPMOVUSWBZ128rr = 17889,
- VPMOVUSWBZ128rrk = 17890,
- VPMOVUSWBZ128rrkz = 17891,
- VPMOVUSWBZ256mr = 17892,
- VPMOVUSWBZ256mrk = 17893,
- VPMOVUSWBZ256rr = 17894,
- VPMOVUSWBZ256rrk = 17895,
- VPMOVUSWBZ256rrkz = 17896,
- VPMOVUSWBZmr = 17897,
- VPMOVUSWBZmrk = 17898,
- VPMOVUSWBZrr = 17899,
- VPMOVUSWBZrrk = 17900,
- VPMOVUSWBZrrkz = 17901,
- VPMOVW2MZ128kr = 17902,
- VPMOVW2MZ256kr = 17903,
- VPMOVW2MZkr = 17904,
- VPMOVWBZ128mr = 17905,
- VPMOVWBZ128mrk = 17906,
- VPMOVWBZ128rr = 17907,
- VPMOVWBZ128rrk = 17908,
- VPMOVWBZ128rrkz = 17909,
- VPMOVWBZ256mr = 17910,
- VPMOVWBZ256mrk = 17911,
- VPMOVWBZ256rr = 17912,
- VPMOVWBZ256rrk = 17913,
- VPMOVWBZ256rrkz = 17914,
- VPMOVWBZmr = 17915,
- VPMOVWBZmrk = 17916,
- VPMOVWBZrr = 17917,
- VPMOVWBZrrk = 17918,
- VPMOVWBZrrkz = 17919,
- VPMOVZXBDYrm = 17920,
- VPMOVZXBDYrr = 17921,
- VPMOVZXBDZ128rm = 17922,
- VPMOVZXBDZ128rmk = 17923,
- VPMOVZXBDZ128rmkz = 17924,
- VPMOVZXBDZ128rr = 17925,
- VPMOVZXBDZ128rrk = 17926,
- VPMOVZXBDZ128rrkz = 17927,
- VPMOVZXBDZ256rm = 17928,
- VPMOVZXBDZ256rmk = 17929,
- VPMOVZXBDZ256rmkz = 17930,
- VPMOVZXBDZ256rr = 17931,
- VPMOVZXBDZ256rrk = 17932,
- VPMOVZXBDZ256rrkz = 17933,
- VPMOVZXBDZrm = 17934,
- VPMOVZXBDZrmk = 17935,
- VPMOVZXBDZrmkz = 17936,
- VPMOVZXBDZrr = 17937,
- VPMOVZXBDZrrk = 17938,
- VPMOVZXBDZrrkz = 17939,
- VPMOVZXBDrm = 17940,
- VPMOVZXBDrr = 17941,
- VPMOVZXBQYrm = 17942,
- VPMOVZXBQYrr = 17943,
- VPMOVZXBQZ128rm = 17944,
- VPMOVZXBQZ128rmk = 17945,
- VPMOVZXBQZ128rmkz = 17946,
- VPMOVZXBQZ128rr = 17947,
- VPMOVZXBQZ128rrk = 17948,
- VPMOVZXBQZ128rrkz = 17949,
- VPMOVZXBQZ256rm = 17950,
- VPMOVZXBQZ256rmk = 17951,
- VPMOVZXBQZ256rmkz = 17952,
- VPMOVZXBQZ256rr = 17953,
- VPMOVZXBQZ256rrk = 17954,
- VPMOVZXBQZ256rrkz = 17955,
- VPMOVZXBQZrm = 17956,
- VPMOVZXBQZrmk = 17957,
- VPMOVZXBQZrmkz = 17958,
- VPMOVZXBQZrr = 17959,
- VPMOVZXBQZrrk = 17960,
- VPMOVZXBQZrrkz = 17961,
- VPMOVZXBQrm = 17962,
- VPMOVZXBQrr = 17963,
- VPMOVZXBWYrm = 17964,
- VPMOVZXBWYrr = 17965,
- VPMOVZXBWZ128rm = 17966,
- VPMOVZXBWZ128rmk = 17967,
- VPMOVZXBWZ128rmkz = 17968,
- VPMOVZXBWZ128rr = 17969,
- VPMOVZXBWZ128rrk = 17970,
- VPMOVZXBWZ128rrkz = 17971,
- VPMOVZXBWZ256rm = 17972,
- VPMOVZXBWZ256rmk = 17973,
- VPMOVZXBWZ256rmkz = 17974,
- VPMOVZXBWZ256rr = 17975,
- VPMOVZXBWZ256rrk = 17976,
- VPMOVZXBWZ256rrkz = 17977,
- VPMOVZXBWZrm = 17978,
- VPMOVZXBWZrmk = 17979,
- VPMOVZXBWZrmkz = 17980,
- VPMOVZXBWZrr = 17981,
- VPMOVZXBWZrrk = 17982,
- VPMOVZXBWZrrkz = 17983,
- VPMOVZXBWrm = 17984,
- VPMOVZXBWrr = 17985,
- VPMOVZXDQYrm = 17986,
- VPMOVZXDQYrr = 17987,
- VPMOVZXDQZ128rm = 17988,
- VPMOVZXDQZ128rmk = 17989,
- VPMOVZXDQZ128rmkz = 17990,
- VPMOVZXDQZ128rr = 17991,
- VPMOVZXDQZ128rrk = 17992,
- VPMOVZXDQZ128rrkz = 17993,
- VPMOVZXDQZ256rm = 17994,
- VPMOVZXDQZ256rmk = 17995,
- VPMOVZXDQZ256rmkz = 17996,
- VPMOVZXDQZ256rr = 17997,
- VPMOVZXDQZ256rrk = 17998,
- VPMOVZXDQZ256rrkz = 17999,
- VPMOVZXDQZrm = 18000,
- VPMOVZXDQZrmk = 18001,
- VPMOVZXDQZrmkz = 18002,
- VPMOVZXDQZrr = 18003,
- VPMOVZXDQZrrk = 18004,
- VPMOVZXDQZrrkz = 18005,
- VPMOVZXDQrm = 18006,
- VPMOVZXDQrr = 18007,
- VPMOVZXWDYrm = 18008,
- VPMOVZXWDYrr = 18009,
- VPMOVZXWDZ128rm = 18010,
- VPMOVZXWDZ128rmk = 18011,
- VPMOVZXWDZ128rmkz = 18012,
- VPMOVZXWDZ128rr = 18013,
- VPMOVZXWDZ128rrk = 18014,
- VPMOVZXWDZ128rrkz = 18015,
- VPMOVZXWDZ256rm = 18016,
- VPMOVZXWDZ256rmk = 18017,
- VPMOVZXWDZ256rmkz = 18018,
- VPMOVZXWDZ256rr = 18019,
- VPMOVZXWDZ256rrk = 18020,
- VPMOVZXWDZ256rrkz = 18021,
- VPMOVZXWDZrm = 18022,
- VPMOVZXWDZrmk = 18023,
- VPMOVZXWDZrmkz = 18024,
- VPMOVZXWDZrr = 18025,
- VPMOVZXWDZrrk = 18026,
- VPMOVZXWDZrrkz = 18027,
- VPMOVZXWDrm = 18028,
- VPMOVZXWDrr = 18029,
- VPMOVZXWQYrm = 18030,
- VPMOVZXWQYrr = 18031,
- VPMOVZXWQZ128rm = 18032,
- VPMOVZXWQZ128rmk = 18033,
- VPMOVZXWQZ128rmkz = 18034,
- VPMOVZXWQZ128rr = 18035,
- VPMOVZXWQZ128rrk = 18036,
- VPMOVZXWQZ128rrkz = 18037,
- VPMOVZXWQZ256rm = 18038,
- VPMOVZXWQZ256rmk = 18039,
- VPMOVZXWQZ256rmkz = 18040,
- VPMOVZXWQZ256rr = 18041,
- VPMOVZXWQZ256rrk = 18042,
- VPMOVZXWQZ256rrkz = 18043,
- VPMOVZXWQZrm = 18044,
- VPMOVZXWQZrmk = 18045,
- VPMOVZXWQZrmkz = 18046,
- VPMOVZXWQZrr = 18047,
- VPMOVZXWQZrrk = 18048,
- VPMOVZXWQZrrkz = 18049,
- VPMOVZXWQrm = 18050,
- VPMOVZXWQrr = 18051,
- VPMULDQYrm = 18052,
- VPMULDQYrr = 18053,
- VPMULDQZ128rm = 18054,
- VPMULDQZ128rmb = 18055,
- VPMULDQZ128rmbk = 18056,
- VPMULDQZ128rmbkz = 18057,
- VPMULDQZ128rmk = 18058,
- VPMULDQZ128rmkz = 18059,
- VPMULDQZ128rr = 18060,
- VPMULDQZ128rrk = 18061,
- VPMULDQZ128rrkz = 18062,
- VPMULDQZ256rm = 18063,
- VPMULDQZ256rmb = 18064,
- VPMULDQZ256rmbk = 18065,
- VPMULDQZ256rmbkz = 18066,
- VPMULDQZ256rmk = 18067,
- VPMULDQZ256rmkz = 18068,
- VPMULDQZ256rr = 18069,
- VPMULDQZ256rrk = 18070,
- VPMULDQZ256rrkz = 18071,
- VPMULDQZrm = 18072,
- VPMULDQZrmb = 18073,
- VPMULDQZrmbk = 18074,
- VPMULDQZrmbkz = 18075,
- VPMULDQZrmk = 18076,
- VPMULDQZrmkz = 18077,
- VPMULDQZrr = 18078,
- VPMULDQZrrk = 18079,
- VPMULDQZrrkz = 18080,
- VPMULDQrm = 18081,
- VPMULDQrr = 18082,
- VPMULHRSWYrm = 18083,
- VPMULHRSWYrr = 18084,
- VPMULHRSWZ128rm = 18085,
- VPMULHRSWZ128rmk = 18086,
- VPMULHRSWZ128rmkz = 18087,
- VPMULHRSWZ128rr = 18088,
- VPMULHRSWZ128rrk = 18089,
- VPMULHRSWZ128rrkz = 18090,
- VPMULHRSWZ256rm = 18091,
- VPMULHRSWZ256rmk = 18092,
- VPMULHRSWZ256rmkz = 18093,
- VPMULHRSWZ256rr = 18094,
- VPMULHRSWZ256rrk = 18095,
- VPMULHRSWZ256rrkz = 18096,
- VPMULHRSWZrm = 18097,
- VPMULHRSWZrmk = 18098,
- VPMULHRSWZrmkz = 18099,
- VPMULHRSWZrr = 18100,
- VPMULHRSWZrrk = 18101,
- VPMULHRSWZrrkz = 18102,
- VPMULHRSWrm = 18103,
- VPMULHRSWrr = 18104,
- VPMULHUWYrm = 18105,
- VPMULHUWYrr = 18106,
- VPMULHUWZ128rm = 18107,
- VPMULHUWZ128rmk = 18108,
- VPMULHUWZ128rmkz = 18109,
- VPMULHUWZ128rr = 18110,
- VPMULHUWZ128rrk = 18111,
- VPMULHUWZ128rrkz = 18112,
- VPMULHUWZ256rm = 18113,
- VPMULHUWZ256rmk = 18114,
- VPMULHUWZ256rmkz = 18115,
- VPMULHUWZ256rr = 18116,
- VPMULHUWZ256rrk = 18117,
- VPMULHUWZ256rrkz = 18118,
- VPMULHUWZrm = 18119,
- VPMULHUWZrmk = 18120,
- VPMULHUWZrmkz = 18121,
- VPMULHUWZrr = 18122,
- VPMULHUWZrrk = 18123,
- VPMULHUWZrrkz = 18124,
- VPMULHUWrm = 18125,
- VPMULHUWrr = 18126,
- VPMULHWYrm = 18127,
- VPMULHWYrr = 18128,
- VPMULHWZ128rm = 18129,
- VPMULHWZ128rmk = 18130,
- VPMULHWZ128rmkz = 18131,
- VPMULHWZ128rr = 18132,
- VPMULHWZ128rrk = 18133,
- VPMULHWZ128rrkz = 18134,
- VPMULHWZ256rm = 18135,
- VPMULHWZ256rmk = 18136,
- VPMULHWZ256rmkz = 18137,
- VPMULHWZ256rr = 18138,
- VPMULHWZ256rrk = 18139,
- VPMULHWZ256rrkz = 18140,
- VPMULHWZrm = 18141,
- VPMULHWZrmk = 18142,
- VPMULHWZrmkz = 18143,
- VPMULHWZrr = 18144,
- VPMULHWZrrk = 18145,
- VPMULHWZrrkz = 18146,
- VPMULHWrm = 18147,
- VPMULHWrr = 18148,
- VPMULLDYrm = 18149,
- VPMULLDYrr = 18150,
- VPMULLDZ128rm = 18151,
- VPMULLDZ128rmb = 18152,
- VPMULLDZ128rmbk = 18153,
- VPMULLDZ128rmbkz = 18154,
- VPMULLDZ128rmk = 18155,
- VPMULLDZ128rmkz = 18156,
- VPMULLDZ128rr = 18157,
- VPMULLDZ128rrk = 18158,
- VPMULLDZ128rrkz = 18159,
- VPMULLDZ256rm = 18160,
- VPMULLDZ256rmb = 18161,
- VPMULLDZ256rmbk = 18162,
- VPMULLDZ256rmbkz = 18163,
- VPMULLDZ256rmk = 18164,
- VPMULLDZ256rmkz = 18165,
- VPMULLDZ256rr = 18166,
- VPMULLDZ256rrk = 18167,
- VPMULLDZ256rrkz = 18168,
- VPMULLDZrm = 18169,
- VPMULLDZrmb = 18170,
- VPMULLDZrmbk = 18171,
- VPMULLDZrmbkz = 18172,
- VPMULLDZrmk = 18173,
- VPMULLDZrmkz = 18174,
- VPMULLDZrr = 18175,
- VPMULLDZrrk = 18176,
- VPMULLDZrrkz = 18177,
- VPMULLDrm = 18178,
- VPMULLDrr = 18179,
- VPMULLQZ128rm = 18180,
- VPMULLQZ128rmb = 18181,
- VPMULLQZ128rmbk = 18182,
- VPMULLQZ128rmbkz = 18183,
- VPMULLQZ128rmk = 18184,
- VPMULLQZ128rmkz = 18185,
- VPMULLQZ128rr = 18186,
- VPMULLQZ128rrk = 18187,
- VPMULLQZ128rrkz = 18188,
- VPMULLQZ256rm = 18189,
- VPMULLQZ256rmb = 18190,
- VPMULLQZ256rmbk = 18191,
- VPMULLQZ256rmbkz = 18192,
- VPMULLQZ256rmk = 18193,
- VPMULLQZ256rmkz = 18194,
- VPMULLQZ256rr = 18195,
- VPMULLQZ256rrk = 18196,
- VPMULLQZ256rrkz = 18197,
- VPMULLQZrm = 18198,
- VPMULLQZrmb = 18199,
- VPMULLQZrmbk = 18200,
- VPMULLQZrmbkz = 18201,
- VPMULLQZrmk = 18202,
- VPMULLQZrmkz = 18203,
- VPMULLQZrr = 18204,
- VPMULLQZrrk = 18205,
- VPMULLQZrrkz = 18206,
- VPMULLWYrm = 18207,
- VPMULLWYrr = 18208,
- VPMULLWZ128rm = 18209,
- VPMULLWZ128rmk = 18210,
- VPMULLWZ128rmkz = 18211,
- VPMULLWZ128rr = 18212,
- VPMULLWZ128rrk = 18213,
- VPMULLWZ128rrkz = 18214,
- VPMULLWZ256rm = 18215,
- VPMULLWZ256rmk = 18216,
- VPMULLWZ256rmkz = 18217,
- VPMULLWZ256rr = 18218,
- VPMULLWZ256rrk = 18219,
- VPMULLWZ256rrkz = 18220,
- VPMULLWZrm = 18221,
- VPMULLWZrmk = 18222,
- VPMULLWZrmkz = 18223,
- VPMULLWZrr = 18224,
- VPMULLWZrrk = 18225,
- VPMULLWZrrkz = 18226,
- VPMULLWrm = 18227,
- VPMULLWrr = 18228,
- VPMULTISHIFTQBZ128rm = 18229,
- VPMULTISHIFTQBZ128rmb = 18230,
- VPMULTISHIFTQBZ128rmbk = 18231,
- VPMULTISHIFTQBZ128rmbkz = 18232,
- VPMULTISHIFTQBZ128rmk = 18233,
- VPMULTISHIFTQBZ128rmkz = 18234,
- VPMULTISHIFTQBZ128rr = 18235,
- VPMULTISHIFTQBZ128rrk = 18236,
- VPMULTISHIFTQBZ128rrkz = 18237,
- VPMULTISHIFTQBZ256rm = 18238,
- VPMULTISHIFTQBZ256rmb = 18239,
- VPMULTISHIFTQBZ256rmbk = 18240,
- VPMULTISHIFTQBZ256rmbkz = 18241,
- VPMULTISHIFTQBZ256rmk = 18242,
- VPMULTISHIFTQBZ256rmkz = 18243,
- VPMULTISHIFTQBZ256rr = 18244,
- VPMULTISHIFTQBZ256rrk = 18245,
- VPMULTISHIFTQBZ256rrkz = 18246,
- VPMULTISHIFTQBZrm = 18247,
- VPMULTISHIFTQBZrmb = 18248,
- VPMULTISHIFTQBZrmbk = 18249,
- VPMULTISHIFTQBZrmbkz = 18250,
- VPMULTISHIFTQBZrmk = 18251,
- VPMULTISHIFTQBZrmkz = 18252,
- VPMULTISHIFTQBZrr = 18253,
- VPMULTISHIFTQBZrrk = 18254,
- VPMULTISHIFTQBZrrkz = 18255,
- VPMULUDQYrm = 18256,
- VPMULUDQYrr = 18257,
- VPMULUDQZ128rm = 18258,
- VPMULUDQZ128rmb = 18259,
- VPMULUDQZ128rmbk = 18260,
- VPMULUDQZ128rmbkz = 18261,
- VPMULUDQZ128rmk = 18262,
- VPMULUDQZ128rmkz = 18263,
- VPMULUDQZ128rr = 18264,
- VPMULUDQZ128rrk = 18265,
- VPMULUDQZ128rrkz = 18266,
- VPMULUDQZ256rm = 18267,
- VPMULUDQZ256rmb = 18268,
- VPMULUDQZ256rmbk = 18269,
- VPMULUDQZ256rmbkz = 18270,
- VPMULUDQZ256rmk = 18271,
- VPMULUDQZ256rmkz = 18272,
- VPMULUDQZ256rr = 18273,
- VPMULUDQZ256rrk = 18274,
- VPMULUDQZ256rrkz = 18275,
- VPMULUDQZrm = 18276,
- VPMULUDQZrmb = 18277,
- VPMULUDQZrmbk = 18278,
- VPMULUDQZrmbkz = 18279,
- VPMULUDQZrmk = 18280,
- VPMULUDQZrmkz = 18281,
- VPMULUDQZrr = 18282,
- VPMULUDQZrrk = 18283,
- VPMULUDQZrrkz = 18284,
- VPMULUDQrm = 18285,
- VPMULUDQrr = 18286,
- VPOPCNTBZ128rm = 18287,
- VPOPCNTBZ128rmk = 18288,
- VPOPCNTBZ128rmkz = 18289,
- VPOPCNTBZ128rr = 18290,
- VPOPCNTBZ128rrk = 18291,
- VPOPCNTBZ128rrkz = 18292,
- VPOPCNTBZ256rm = 18293,
- VPOPCNTBZ256rmk = 18294,
- VPOPCNTBZ256rmkz = 18295,
- VPOPCNTBZ256rr = 18296,
- VPOPCNTBZ256rrk = 18297,
- VPOPCNTBZ256rrkz = 18298,
- VPOPCNTBZrm = 18299,
- VPOPCNTBZrmk = 18300,
- VPOPCNTBZrmkz = 18301,
- VPOPCNTBZrr = 18302,
- VPOPCNTBZrrk = 18303,
- VPOPCNTBZrrkz = 18304,
- VPOPCNTDZ128rm = 18305,
- VPOPCNTDZ128rmb = 18306,
- VPOPCNTDZ128rmbk = 18307,
- VPOPCNTDZ128rmbkz = 18308,
- VPOPCNTDZ128rmk = 18309,
- VPOPCNTDZ128rmkz = 18310,
- VPOPCNTDZ128rr = 18311,
- VPOPCNTDZ128rrk = 18312,
- VPOPCNTDZ128rrkz = 18313,
- VPOPCNTDZ256rm = 18314,
- VPOPCNTDZ256rmb = 18315,
- VPOPCNTDZ256rmbk = 18316,
- VPOPCNTDZ256rmbkz = 18317,
- VPOPCNTDZ256rmk = 18318,
- VPOPCNTDZ256rmkz = 18319,
- VPOPCNTDZ256rr = 18320,
- VPOPCNTDZ256rrk = 18321,
- VPOPCNTDZ256rrkz = 18322,
- VPOPCNTDZrm = 18323,
- VPOPCNTDZrmb = 18324,
- VPOPCNTDZrmbk = 18325,
- VPOPCNTDZrmbkz = 18326,
- VPOPCNTDZrmk = 18327,
- VPOPCNTDZrmkz = 18328,
- VPOPCNTDZrr = 18329,
- VPOPCNTDZrrk = 18330,
- VPOPCNTDZrrkz = 18331,
- VPOPCNTQZ128rm = 18332,
- VPOPCNTQZ128rmb = 18333,
- VPOPCNTQZ128rmbk = 18334,
- VPOPCNTQZ128rmbkz = 18335,
- VPOPCNTQZ128rmk = 18336,
- VPOPCNTQZ128rmkz = 18337,
- VPOPCNTQZ128rr = 18338,
- VPOPCNTQZ128rrk = 18339,
- VPOPCNTQZ128rrkz = 18340,
- VPOPCNTQZ256rm = 18341,
- VPOPCNTQZ256rmb = 18342,
- VPOPCNTQZ256rmbk = 18343,
- VPOPCNTQZ256rmbkz = 18344,
- VPOPCNTQZ256rmk = 18345,
- VPOPCNTQZ256rmkz = 18346,
- VPOPCNTQZ256rr = 18347,
- VPOPCNTQZ256rrk = 18348,
- VPOPCNTQZ256rrkz = 18349,
- VPOPCNTQZrm = 18350,
- VPOPCNTQZrmb = 18351,
- VPOPCNTQZrmbk = 18352,
- VPOPCNTQZrmbkz = 18353,
- VPOPCNTQZrmk = 18354,
- VPOPCNTQZrmkz = 18355,
- VPOPCNTQZrr = 18356,
- VPOPCNTQZrrk = 18357,
- VPOPCNTQZrrkz = 18358,
- VPOPCNTWZ128rm = 18359,
- VPOPCNTWZ128rmk = 18360,
- VPOPCNTWZ128rmkz = 18361,
- VPOPCNTWZ128rr = 18362,
- VPOPCNTWZ128rrk = 18363,
- VPOPCNTWZ128rrkz = 18364,
- VPOPCNTWZ256rm = 18365,
- VPOPCNTWZ256rmk = 18366,
- VPOPCNTWZ256rmkz = 18367,
- VPOPCNTWZ256rr = 18368,
- VPOPCNTWZ256rrk = 18369,
- VPOPCNTWZ256rrkz = 18370,
- VPOPCNTWZrm = 18371,
- VPOPCNTWZrmk = 18372,
- VPOPCNTWZrmkz = 18373,
- VPOPCNTWZrr = 18374,
- VPOPCNTWZrrk = 18375,
- VPOPCNTWZrrkz = 18376,
- VPORDZ128rm = 18377,
- VPORDZ128rmb = 18378,
- VPORDZ128rmbk = 18379,
- VPORDZ128rmbkz = 18380,
- VPORDZ128rmk = 18381,
- VPORDZ128rmkz = 18382,
- VPORDZ128rr = 18383,
- VPORDZ128rrk = 18384,
- VPORDZ128rrkz = 18385,
- VPORDZ256rm = 18386,
- VPORDZ256rmb = 18387,
- VPORDZ256rmbk = 18388,
- VPORDZ256rmbkz = 18389,
- VPORDZ256rmk = 18390,
- VPORDZ256rmkz = 18391,
- VPORDZ256rr = 18392,
- VPORDZ256rrk = 18393,
- VPORDZ256rrkz = 18394,
- VPORDZrm = 18395,
- VPORDZrmb = 18396,
- VPORDZrmbk = 18397,
- VPORDZrmbkz = 18398,
- VPORDZrmk = 18399,
- VPORDZrmkz = 18400,
- VPORDZrr = 18401,
- VPORDZrrk = 18402,
- VPORDZrrkz = 18403,
- VPORQZ128rm = 18404,
- VPORQZ128rmb = 18405,
- VPORQZ128rmbk = 18406,
- VPORQZ128rmbkz = 18407,
- VPORQZ128rmk = 18408,
- VPORQZ128rmkz = 18409,
- VPORQZ128rr = 18410,
- VPORQZ128rrk = 18411,
- VPORQZ128rrkz = 18412,
- VPORQZ256rm = 18413,
- VPORQZ256rmb = 18414,
- VPORQZ256rmbk = 18415,
- VPORQZ256rmbkz = 18416,
- VPORQZ256rmk = 18417,
- VPORQZ256rmkz = 18418,
- VPORQZ256rr = 18419,
- VPORQZ256rrk = 18420,
- VPORQZ256rrkz = 18421,
- VPORQZrm = 18422,
- VPORQZrmb = 18423,
- VPORQZrmbk = 18424,
- VPORQZrmbkz = 18425,
- VPORQZrmk = 18426,
- VPORQZrmkz = 18427,
- VPORQZrr = 18428,
- VPORQZrrk = 18429,
- VPORQZrrkz = 18430,
- VPORYrm = 18431,
- VPORYrr = 18432,
- VPORrm = 18433,
- VPORrr = 18434,
- VPPERMrmr = 18435,
- VPPERMrrm = 18436,
- VPPERMrrr = 18437,
- VPPERMrrr_REV = 18438,
- VPROLDZ128mbi = 18439,
- VPROLDZ128mbik = 18440,
- VPROLDZ128mbikz = 18441,
- VPROLDZ128mi = 18442,
- VPROLDZ128mik = 18443,
- VPROLDZ128mikz = 18444,
- VPROLDZ128ri = 18445,
- VPROLDZ128rik = 18446,
- VPROLDZ128rikz = 18447,
- VPROLDZ256mbi = 18448,
- VPROLDZ256mbik = 18449,
- VPROLDZ256mbikz = 18450,
- VPROLDZ256mi = 18451,
- VPROLDZ256mik = 18452,
- VPROLDZ256mikz = 18453,
- VPROLDZ256ri = 18454,
- VPROLDZ256rik = 18455,
- VPROLDZ256rikz = 18456,
- VPROLDZmbi = 18457,
- VPROLDZmbik = 18458,
- VPROLDZmbikz = 18459,
- VPROLDZmi = 18460,
- VPROLDZmik = 18461,
- VPROLDZmikz = 18462,
- VPROLDZri = 18463,
- VPROLDZrik = 18464,
- VPROLDZrikz = 18465,
- VPROLQZ128mbi = 18466,
- VPROLQZ128mbik = 18467,
- VPROLQZ128mbikz = 18468,
- VPROLQZ128mi = 18469,
- VPROLQZ128mik = 18470,
- VPROLQZ128mikz = 18471,
- VPROLQZ128ri = 18472,
- VPROLQZ128rik = 18473,
- VPROLQZ128rikz = 18474,
- VPROLQZ256mbi = 18475,
- VPROLQZ256mbik = 18476,
- VPROLQZ256mbikz = 18477,
- VPROLQZ256mi = 18478,
- VPROLQZ256mik = 18479,
- VPROLQZ256mikz = 18480,
- VPROLQZ256ri = 18481,
- VPROLQZ256rik = 18482,
- VPROLQZ256rikz = 18483,
- VPROLQZmbi = 18484,
- VPROLQZmbik = 18485,
- VPROLQZmbikz = 18486,
- VPROLQZmi = 18487,
- VPROLQZmik = 18488,
- VPROLQZmikz = 18489,
- VPROLQZri = 18490,
- VPROLQZrik = 18491,
- VPROLQZrikz = 18492,
- VPROLVDZ128rm = 18493,
- VPROLVDZ128rmb = 18494,
- VPROLVDZ128rmbk = 18495,
- VPROLVDZ128rmbkz = 18496,
- VPROLVDZ128rmk = 18497,
- VPROLVDZ128rmkz = 18498,
- VPROLVDZ128rr = 18499,
- VPROLVDZ128rrk = 18500,
- VPROLVDZ128rrkz = 18501,
- VPROLVDZ256rm = 18502,
- VPROLVDZ256rmb = 18503,
- VPROLVDZ256rmbk = 18504,
- VPROLVDZ256rmbkz = 18505,
- VPROLVDZ256rmk = 18506,
- VPROLVDZ256rmkz = 18507,
- VPROLVDZ256rr = 18508,
- VPROLVDZ256rrk = 18509,
- VPROLVDZ256rrkz = 18510,
- VPROLVDZrm = 18511,
- VPROLVDZrmb = 18512,
- VPROLVDZrmbk = 18513,
- VPROLVDZrmbkz = 18514,
- VPROLVDZrmk = 18515,
- VPROLVDZrmkz = 18516,
- VPROLVDZrr = 18517,
- VPROLVDZrrk = 18518,
- VPROLVDZrrkz = 18519,
- VPROLVQZ128rm = 18520,
- VPROLVQZ128rmb = 18521,
- VPROLVQZ128rmbk = 18522,
- VPROLVQZ128rmbkz = 18523,
- VPROLVQZ128rmk = 18524,
- VPROLVQZ128rmkz = 18525,
- VPROLVQZ128rr = 18526,
- VPROLVQZ128rrk = 18527,
- VPROLVQZ128rrkz = 18528,
- VPROLVQZ256rm = 18529,
- VPROLVQZ256rmb = 18530,
- VPROLVQZ256rmbk = 18531,
- VPROLVQZ256rmbkz = 18532,
- VPROLVQZ256rmk = 18533,
- VPROLVQZ256rmkz = 18534,
- VPROLVQZ256rr = 18535,
- VPROLVQZ256rrk = 18536,
- VPROLVQZ256rrkz = 18537,
- VPROLVQZrm = 18538,
- VPROLVQZrmb = 18539,
- VPROLVQZrmbk = 18540,
- VPROLVQZrmbkz = 18541,
- VPROLVQZrmk = 18542,
- VPROLVQZrmkz = 18543,
- VPROLVQZrr = 18544,
- VPROLVQZrrk = 18545,
- VPROLVQZrrkz = 18546,
- VPRORDZ128mbi = 18547,
- VPRORDZ128mbik = 18548,
- VPRORDZ128mbikz = 18549,
- VPRORDZ128mi = 18550,
- VPRORDZ128mik = 18551,
- VPRORDZ128mikz = 18552,
- VPRORDZ128ri = 18553,
- VPRORDZ128rik = 18554,
- VPRORDZ128rikz = 18555,
- VPRORDZ256mbi = 18556,
- VPRORDZ256mbik = 18557,
- VPRORDZ256mbikz = 18558,
- VPRORDZ256mi = 18559,
- VPRORDZ256mik = 18560,
- VPRORDZ256mikz = 18561,
- VPRORDZ256ri = 18562,
- VPRORDZ256rik = 18563,
- VPRORDZ256rikz = 18564,
- VPRORDZmbi = 18565,
- VPRORDZmbik = 18566,
- VPRORDZmbikz = 18567,
- VPRORDZmi = 18568,
- VPRORDZmik = 18569,
- VPRORDZmikz = 18570,
- VPRORDZri = 18571,
- VPRORDZrik = 18572,
- VPRORDZrikz = 18573,
- VPRORQZ128mbi = 18574,
- VPRORQZ128mbik = 18575,
- VPRORQZ128mbikz = 18576,
- VPRORQZ128mi = 18577,
- VPRORQZ128mik = 18578,
- VPRORQZ128mikz = 18579,
- VPRORQZ128ri = 18580,
- VPRORQZ128rik = 18581,
- VPRORQZ128rikz = 18582,
- VPRORQZ256mbi = 18583,
- VPRORQZ256mbik = 18584,
- VPRORQZ256mbikz = 18585,
- VPRORQZ256mi = 18586,
- VPRORQZ256mik = 18587,
- VPRORQZ256mikz = 18588,
- VPRORQZ256ri = 18589,
- VPRORQZ256rik = 18590,
- VPRORQZ256rikz = 18591,
- VPRORQZmbi = 18592,
- VPRORQZmbik = 18593,
- VPRORQZmbikz = 18594,
- VPRORQZmi = 18595,
- VPRORQZmik = 18596,
- VPRORQZmikz = 18597,
- VPRORQZri = 18598,
- VPRORQZrik = 18599,
- VPRORQZrikz = 18600,
- VPRORVDZ128rm = 18601,
- VPRORVDZ128rmb = 18602,
- VPRORVDZ128rmbk = 18603,
- VPRORVDZ128rmbkz = 18604,
- VPRORVDZ128rmk = 18605,
- VPRORVDZ128rmkz = 18606,
- VPRORVDZ128rr = 18607,
- VPRORVDZ128rrk = 18608,
- VPRORVDZ128rrkz = 18609,
- VPRORVDZ256rm = 18610,
- VPRORVDZ256rmb = 18611,
- VPRORVDZ256rmbk = 18612,
- VPRORVDZ256rmbkz = 18613,
- VPRORVDZ256rmk = 18614,
- VPRORVDZ256rmkz = 18615,
- VPRORVDZ256rr = 18616,
- VPRORVDZ256rrk = 18617,
- VPRORVDZ256rrkz = 18618,
- VPRORVDZrm = 18619,
- VPRORVDZrmb = 18620,
- VPRORVDZrmbk = 18621,
- VPRORVDZrmbkz = 18622,
- VPRORVDZrmk = 18623,
- VPRORVDZrmkz = 18624,
- VPRORVDZrr = 18625,
- VPRORVDZrrk = 18626,
- VPRORVDZrrkz = 18627,
- VPRORVQZ128rm = 18628,
- VPRORVQZ128rmb = 18629,
- VPRORVQZ128rmbk = 18630,
- VPRORVQZ128rmbkz = 18631,
- VPRORVQZ128rmk = 18632,
- VPRORVQZ128rmkz = 18633,
- VPRORVQZ128rr = 18634,
- VPRORVQZ128rrk = 18635,
- VPRORVQZ128rrkz = 18636,
- VPRORVQZ256rm = 18637,
- VPRORVQZ256rmb = 18638,
- VPRORVQZ256rmbk = 18639,
- VPRORVQZ256rmbkz = 18640,
- VPRORVQZ256rmk = 18641,
- VPRORVQZ256rmkz = 18642,
- VPRORVQZ256rr = 18643,
- VPRORVQZ256rrk = 18644,
- VPRORVQZ256rrkz = 18645,
- VPRORVQZrm = 18646,
- VPRORVQZrmb = 18647,
- VPRORVQZrmbk = 18648,
- VPRORVQZrmbkz = 18649,
- VPRORVQZrmk = 18650,
- VPRORVQZrmkz = 18651,
- VPRORVQZrr = 18652,
- VPRORVQZrrk = 18653,
- VPRORVQZrrkz = 18654,
- VPROTBmi = 18655,
- VPROTBmr = 18656,
- VPROTBri = 18657,
- VPROTBrm = 18658,
- VPROTBrr = 18659,
- VPROTBrr_REV = 18660,
- VPROTDmi = 18661,
- VPROTDmr = 18662,
- VPROTDri = 18663,
- VPROTDrm = 18664,
- VPROTDrr = 18665,
- VPROTDrr_REV = 18666,
- VPROTQmi = 18667,
- VPROTQmr = 18668,
- VPROTQri = 18669,
- VPROTQrm = 18670,
- VPROTQrr = 18671,
- VPROTQrr_REV = 18672,
- VPROTWmi = 18673,
- VPROTWmr = 18674,
- VPROTWri = 18675,
- VPROTWrm = 18676,
- VPROTWrr = 18677,
- VPROTWrr_REV = 18678,
- VPSADBWYrm = 18679,
- VPSADBWYrr = 18680,
- VPSADBWZ128rm = 18681,
- VPSADBWZ128rr = 18682,
- VPSADBWZ256rm = 18683,
- VPSADBWZ256rr = 18684,
- VPSADBWZrm = 18685,
- VPSADBWZrr = 18686,
- VPSADBWrm = 18687,
- VPSADBWrr = 18688,
- VPSCATTERDDZ128mr = 18689,
- VPSCATTERDDZ256mr = 18690,
- VPSCATTERDDZmr = 18691,
- VPSCATTERDQZ128mr = 18692,
- VPSCATTERDQZ256mr = 18693,
- VPSCATTERDQZmr = 18694,
- VPSCATTERQDZ128mr = 18695,
- VPSCATTERQDZ256mr = 18696,
- VPSCATTERQDZmr = 18697,
- VPSCATTERQQZ128mr = 18698,
- VPSCATTERQQZ256mr = 18699,
- VPSCATTERQQZmr = 18700,
- VPSHABmr = 18701,
- VPSHABrm = 18702,
- VPSHABrr = 18703,
- VPSHABrr_REV = 18704,
- VPSHADmr = 18705,
- VPSHADrm = 18706,
- VPSHADrr = 18707,
- VPSHADrr_REV = 18708,
- VPSHAQmr = 18709,
- VPSHAQrm = 18710,
- VPSHAQrr = 18711,
- VPSHAQrr_REV = 18712,
- VPSHAWmr = 18713,
- VPSHAWrm = 18714,
- VPSHAWrr = 18715,
- VPSHAWrr_REV = 18716,
- VPSHLBmr = 18717,
- VPSHLBrm = 18718,
- VPSHLBrr = 18719,
- VPSHLBrr_REV = 18720,
- VPSHLDDZ128rmbi = 18721,
- VPSHLDDZ128rmbik = 18722,
- VPSHLDDZ128rmbikz = 18723,
- VPSHLDDZ128rmi = 18724,
- VPSHLDDZ128rmik = 18725,
- VPSHLDDZ128rmikz = 18726,
- VPSHLDDZ128rri = 18727,
- VPSHLDDZ128rrik = 18728,
- VPSHLDDZ128rrikz = 18729,
- VPSHLDDZ256rmbi = 18730,
- VPSHLDDZ256rmbik = 18731,
- VPSHLDDZ256rmbikz = 18732,
- VPSHLDDZ256rmi = 18733,
- VPSHLDDZ256rmik = 18734,
- VPSHLDDZ256rmikz = 18735,
- VPSHLDDZ256rri = 18736,
- VPSHLDDZ256rrik = 18737,
- VPSHLDDZ256rrikz = 18738,
- VPSHLDDZrmbi = 18739,
- VPSHLDDZrmbik = 18740,
- VPSHLDDZrmbikz = 18741,
- VPSHLDDZrmi = 18742,
- VPSHLDDZrmik = 18743,
- VPSHLDDZrmikz = 18744,
- VPSHLDDZrri = 18745,
- VPSHLDDZrrik = 18746,
- VPSHLDDZrrikz = 18747,
- VPSHLDQZ128rmbi = 18748,
- VPSHLDQZ128rmbik = 18749,
- VPSHLDQZ128rmbikz = 18750,
- VPSHLDQZ128rmi = 18751,
- VPSHLDQZ128rmik = 18752,
- VPSHLDQZ128rmikz = 18753,
- VPSHLDQZ128rri = 18754,
- VPSHLDQZ128rrik = 18755,
- VPSHLDQZ128rrikz = 18756,
- VPSHLDQZ256rmbi = 18757,
- VPSHLDQZ256rmbik = 18758,
- VPSHLDQZ256rmbikz = 18759,
- VPSHLDQZ256rmi = 18760,
- VPSHLDQZ256rmik = 18761,
- VPSHLDQZ256rmikz = 18762,
- VPSHLDQZ256rri = 18763,
- VPSHLDQZ256rrik = 18764,
- VPSHLDQZ256rrikz = 18765,
- VPSHLDQZrmbi = 18766,
- VPSHLDQZrmbik = 18767,
- VPSHLDQZrmbikz = 18768,
- VPSHLDQZrmi = 18769,
- VPSHLDQZrmik = 18770,
- VPSHLDQZrmikz = 18771,
- VPSHLDQZrri = 18772,
- VPSHLDQZrrik = 18773,
- VPSHLDQZrrikz = 18774,
- VPSHLDVDZ128m = 18775,
- VPSHLDVDZ128mb = 18776,
- VPSHLDVDZ128mbk = 18777,
- VPSHLDVDZ128mbkz = 18778,
- VPSHLDVDZ128mk = 18779,
- VPSHLDVDZ128mkz = 18780,
- VPSHLDVDZ128r = 18781,
- VPSHLDVDZ128rk = 18782,
- VPSHLDVDZ128rkz = 18783,
- VPSHLDVDZ256m = 18784,
- VPSHLDVDZ256mb = 18785,
- VPSHLDVDZ256mbk = 18786,
- VPSHLDVDZ256mbkz = 18787,
- VPSHLDVDZ256mk = 18788,
- VPSHLDVDZ256mkz = 18789,
- VPSHLDVDZ256r = 18790,
- VPSHLDVDZ256rk = 18791,
- VPSHLDVDZ256rkz = 18792,
- VPSHLDVDZm = 18793,
- VPSHLDVDZmb = 18794,
- VPSHLDVDZmbk = 18795,
- VPSHLDVDZmbkz = 18796,
- VPSHLDVDZmk = 18797,
- VPSHLDVDZmkz = 18798,
- VPSHLDVDZr = 18799,
- VPSHLDVDZrk = 18800,
- VPSHLDVDZrkz = 18801,
- VPSHLDVQZ128m = 18802,
- VPSHLDVQZ128mb = 18803,
- VPSHLDVQZ128mbk = 18804,
- VPSHLDVQZ128mbkz = 18805,
- VPSHLDVQZ128mk = 18806,
- VPSHLDVQZ128mkz = 18807,
- VPSHLDVQZ128r = 18808,
- VPSHLDVQZ128rk = 18809,
- VPSHLDVQZ128rkz = 18810,
- VPSHLDVQZ256m = 18811,
- VPSHLDVQZ256mb = 18812,
- VPSHLDVQZ256mbk = 18813,
- VPSHLDVQZ256mbkz = 18814,
- VPSHLDVQZ256mk = 18815,
- VPSHLDVQZ256mkz = 18816,
- VPSHLDVQZ256r = 18817,
- VPSHLDVQZ256rk = 18818,
- VPSHLDVQZ256rkz = 18819,
- VPSHLDVQZm = 18820,
- VPSHLDVQZmb = 18821,
- VPSHLDVQZmbk = 18822,
- VPSHLDVQZmbkz = 18823,
- VPSHLDVQZmk = 18824,
- VPSHLDVQZmkz = 18825,
- VPSHLDVQZr = 18826,
- VPSHLDVQZrk = 18827,
- VPSHLDVQZrkz = 18828,
- VPSHLDVWZ128m = 18829,
- VPSHLDVWZ128mk = 18830,
- VPSHLDVWZ128mkz = 18831,
- VPSHLDVWZ128r = 18832,
- VPSHLDVWZ128rk = 18833,
- VPSHLDVWZ128rkz = 18834,
- VPSHLDVWZ256m = 18835,
- VPSHLDVWZ256mk = 18836,
- VPSHLDVWZ256mkz = 18837,
- VPSHLDVWZ256r = 18838,
- VPSHLDVWZ256rk = 18839,
- VPSHLDVWZ256rkz = 18840,
- VPSHLDVWZm = 18841,
- VPSHLDVWZmk = 18842,
- VPSHLDVWZmkz = 18843,
- VPSHLDVWZr = 18844,
- VPSHLDVWZrk = 18845,
- VPSHLDVWZrkz = 18846,
- VPSHLDWZ128rmi = 18847,
- VPSHLDWZ128rmik = 18848,
- VPSHLDWZ128rmikz = 18849,
- VPSHLDWZ128rri = 18850,
- VPSHLDWZ128rrik = 18851,
- VPSHLDWZ128rrikz = 18852,
- VPSHLDWZ256rmi = 18853,
- VPSHLDWZ256rmik = 18854,
- VPSHLDWZ256rmikz = 18855,
- VPSHLDWZ256rri = 18856,
- VPSHLDWZ256rrik = 18857,
- VPSHLDWZ256rrikz = 18858,
- VPSHLDWZrmi = 18859,
- VPSHLDWZrmik = 18860,
- VPSHLDWZrmikz = 18861,
- VPSHLDWZrri = 18862,
- VPSHLDWZrrik = 18863,
- VPSHLDWZrrikz = 18864,
- VPSHLDmr = 18865,
- VPSHLDrm = 18866,
- VPSHLDrr = 18867,
- VPSHLDrr_REV = 18868,
- VPSHLQmr = 18869,
- VPSHLQrm = 18870,
- VPSHLQrr = 18871,
- VPSHLQrr_REV = 18872,
- VPSHLWmr = 18873,
- VPSHLWrm = 18874,
- VPSHLWrr = 18875,
- VPSHLWrr_REV = 18876,
- VPSHRDDZ128rmbi = 18877,
- VPSHRDDZ128rmbik = 18878,
- VPSHRDDZ128rmbikz = 18879,
- VPSHRDDZ128rmi = 18880,
- VPSHRDDZ128rmik = 18881,
- VPSHRDDZ128rmikz = 18882,
- VPSHRDDZ128rri = 18883,
- VPSHRDDZ128rrik = 18884,
- VPSHRDDZ128rrikz = 18885,
- VPSHRDDZ256rmbi = 18886,
- VPSHRDDZ256rmbik = 18887,
- VPSHRDDZ256rmbikz = 18888,
- VPSHRDDZ256rmi = 18889,
- VPSHRDDZ256rmik = 18890,
- VPSHRDDZ256rmikz = 18891,
- VPSHRDDZ256rri = 18892,
- VPSHRDDZ256rrik = 18893,
- VPSHRDDZ256rrikz = 18894,
- VPSHRDDZrmbi = 18895,
- VPSHRDDZrmbik = 18896,
- VPSHRDDZrmbikz = 18897,
- VPSHRDDZrmi = 18898,
- VPSHRDDZrmik = 18899,
- VPSHRDDZrmikz = 18900,
- VPSHRDDZrri = 18901,
- VPSHRDDZrrik = 18902,
- VPSHRDDZrrikz = 18903,
- VPSHRDQZ128rmbi = 18904,
- VPSHRDQZ128rmbik = 18905,
- VPSHRDQZ128rmbikz = 18906,
- VPSHRDQZ128rmi = 18907,
- VPSHRDQZ128rmik = 18908,
- VPSHRDQZ128rmikz = 18909,
- VPSHRDQZ128rri = 18910,
- VPSHRDQZ128rrik = 18911,
- VPSHRDQZ128rrikz = 18912,
- VPSHRDQZ256rmbi = 18913,
- VPSHRDQZ256rmbik = 18914,
- VPSHRDQZ256rmbikz = 18915,
- VPSHRDQZ256rmi = 18916,
- VPSHRDQZ256rmik = 18917,
- VPSHRDQZ256rmikz = 18918,
- VPSHRDQZ256rri = 18919,
- VPSHRDQZ256rrik = 18920,
- VPSHRDQZ256rrikz = 18921,
- VPSHRDQZrmbi = 18922,
- VPSHRDQZrmbik = 18923,
- VPSHRDQZrmbikz = 18924,
- VPSHRDQZrmi = 18925,
- VPSHRDQZrmik = 18926,
- VPSHRDQZrmikz = 18927,
- VPSHRDQZrri = 18928,
- VPSHRDQZrrik = 18929,
- VPSHRDQZrrikz = 18930,
- VPSHRDVDZ128m = 18931,
- VPSHRDVDZ128mb = 18932,
- VPSHRDVDZ128mbk = 18933,
- VPSHRDVDZ128mbkz = 18934,
- VPSHRDVDZ128mk = 18935,
- VPSHRDVDZ128mkz = 18936,
- VPSHRDVDZ128r = 18937,
- VPSHRDVDZ128rk = 18938,
- VPSHRDVDZ128rkz = 18939,
- VPSHRDVDZ256m = 18940,
- VPSHRDVDZ256mb = 18941,
- VPSHRDVDZ256mbk = 18942,
- VPSHRDVDZ256mbkz = 18943,
- VPSHRDVDZ256mk = 18944,
- VPSHRDVDZ256mkz = 18945,
- VPSHRDVDZ256r = 18946,
- VPSHRDVDZ256rk = 18947,
- VPSHRDVDZ256rkz = 18948,
- VPSHRDVDZm = 18949,
- VPSHRDVDZmb = 18950,
- VPSHRDVDZmbk = 18951,
- VPSHRDVDZmbkz = 18952,
- VPSHRDVDZmk = 18953,
- VPSHRDVDZmkz = 18954,
- VPSHRDVDZr = 18955,
- VPSHRDVDZrk = 18956,
- VPSHRDVDZrkz = 18957,
- VPSHRDVQZ128m = 18958,
- VPSHRDVQZ128mb = 18959,
- VPSHRDVQZ128mbk = 18960,
- VPSHRDVQZ128mbkz = 18961,
- VPSHRDVQZ128mk = 18962,
- VPSHRDVQZ128mkz = 18963,
- VPSHRDVQZ128r = 18964,
- VPSHRDVQZ128rk = 18965,
- VPSHRDVQZ128rkz = 18966,
- VPSHRDVQZ256m = 18967,
- VPSHRDVQZ256mb = 18968,
- VPSHRDVQZ256mbk = 18969,
- VPSHRDVQZ256mbkz = 18970,
- VPSHRDVQZ256mk = 18971,
- VPSHRDVQZ256mkz = 18972,
- VPSHRDVQZ256r = 18973,
- VPSHRDVQZ256rk = 18974,
- VPSHRDVQZ256rkz = 18975,
- VPSHRDVQZm = 18976,
- VPSHRDVQZmb = 18977,
- VPSHRDVQZmbk = 18978,
- VPSHRDVQZmbkz = 18979,
- VPSHRDVQZmk = 18980,
- VPSHRDVQZmkz = 18981,
- VPSHRDVQZr = 18982,
- VPSHRDVQZrk = 18983,
- VPSHRDVQZrkz = 18984,
- VPSHRDVWZ128m = 18985,
- VPSHRDVWZ128mk = 18986,
- VPSHRDVWZ128mkz = 18987,
- VPSHRDVWZ128r = 18988,
- VPSHRDVWZ128rk = 18989,
- VPSHRDVWZ128rkz = 18990,
- VPSHRDVWZ256m = 18991,
- VPSHRDVWZ256mk = 18992,
- VPSHRDVWZ256mkz = 18993,
- VPSHRDVWZ256r = 18994,
- VPSHRDVWZ256rk = 18995,
- VPSHRDVWZ256rkz = 18996,
- VPSHRDVWZm = 18997,
- VPSHRDVWZmk = 18998,
- VPSHRDVWZmkz = 18999,
- VPSHRDVWZr = 19000,
- VPSHRDVWZrk = 19001,
- VPSHRDVWZrkz = 19002,
- VPSHRDWZ128rmi = 19003,
- VPSHRDWZ128rmik = 19004,
- VPSHRDWZ128rmikz = 19005,
- VPSHRDWZ128rri = 19006,
- VPSHRDWZ128rrik = 19007,
- VPSHRDWZ128rrikz = 19008,
- VPSHRDWZ256rmi = 19009,
- VPSHRDWZ256rmik = 19010,
- VPSHRDWZ256rmikz = 19011,
- VPSHRDWZ256rri = 19012,
- VPSHRDWZ256rrik = 19013,
- VPSHRDWZ256rrikz = 19014,
- VPSHRDWZrmi = 19015,
- VPSHRDWZrmik = 19016,
- VPSHRDWZrmikz = 19017,
- VPSHRDWZrri = 19018,
- VPSHRDWZrrik = 19019,
- VPSHRDWZrrikz = 19020,
- VPSHUFBITQMBZ128rm = 19021,
- VPSHUFBITQMBZ128rmk = 19022,
- VPSHUFBITQMBZ128rr = 19023,
- VPSHUFBITQMBZ128rrk = 19024,
- VPSHUFBITQMBZ256rm = 19025,
- VPSHUFBITQMBZ256rmk = 19026,
- VPSHUFBITQMBZ256rr = 19027,
- VPSHUFBITQMBZ256rrk = 19028,
- VPSHUFBITQMBZrm = 19029,
- VPSHUFBITQMBZrmk = 19030,
- VPSHUFBITQMBZrr = 19031,
- VPSHUFBITQMBZrrk = 19032,
- VPSHUFBYrm = 19033,
- VPSHUFBYrr = 19034,
- VPSHUFBZ128rm = 19035,
- VPSHUFBZ128rmk = 19036,
- VPSHUFBZ128rmkz = 19037,
- VPSHUFBZ128rr = 19038,
- VPSHUFBZ128rrk = 19039,
- VPSHUFBZ128rrkz = 19040,
- VPSHUFBZ256rm = 19041,
- VPSHUFBZ256rmk = 19042,
- VPSHUFBZ256rmkz = 19043,
- VPSHUFBZ256rr = 19044,
- VPSHUFBZ256rrk = 19045,
- VPSHUFBZ256rrkz = 19046,
- VPSHUFBZrm = 19047,
- VPSHUFBZrmk = 19048,
- VPSHUFBZrmkz = 19049,
- VPSHUFBZrr = 19050,
- VPSHUFBZrrk = 19051,
- VPSHUFBZrrkz = 19052,
- VPSHUFBrm = 19053,
- VPSHUFBrr = 19054,
- VPSHUFDYmi = 19055,
- VPSHUFDYri = 19056,
- VPSHUFDZ128mbi = 19057,
- VPSHUFDZ128mbik = 19058,
- VPSHUFDZ128mbikz = 19059,
- VPSHUFDZ128mi = 19060,
- VPSHUFDZ128mik = 19061,
- VPSHUFDZ128mikz = 19062,
- VPSHUFDZ128ri = 19063,
- VPSHUFDZ128rik = 19064,
- VPSHUFDZ128rikz = 19065,
- VPSHUFDZ256mbi = 19066,
- VPSHUFDZ256mbik = 19067,
- VPSHUFDZ256mbikz = 19068,
- VPSHUFDZ256mi = 19069,
- VPSHUFDZ256mik = 19070,
- VPSHUFDZ256mikz = 19071,
- VPSHUFDZ256ri = 19072,
- VPSHUFDZ256rik = 19073,
- VPSHUFDZ256rikz = 19074,
- VPSHUFDZmbi = 19075,
- VPSHUFDZmbik = 19076,
- VPSHUFDZmbikz = 19077,
- VPSHUFDZmi = 19078,
- VPSHUFDZmik = 19079,
- VPSHUFDZmikz = 19080,
- VPSHUFDZri = 19081,
- VPSHUFDZrik = 19082,
- VPSHUFDZrikz = 19083,
- VPSHUFDmi = 19084,
- VPSHUFDri = 19085,
- VPSHUFHWYmi = 19086,
- VPSHUFHWYri = 19087,
- VPSHUFHWZ128mi = 19088,
- VPSHUFHWZ128mik = 19089,
- VPSHUFHWZ128mikz = 19090,
- VPSHUFHWZ128ri = 19091,
- VPSHUFHWZ128rik = 19092,
- VPSHUFHWZ128rikz = 19093,
- VPSHUFHWZ256mi = 19094,
- VPSHUFHWZ256mik = 19095,
- VPSHUFHWZ256mikz = 19096,
- VPSHUFHWZ256ri = 19097,
- VPSHUFHWZ256rik = 19098,
- VPSHUFHWZ256rikz = 19099,
- VPSHUFHWZmi = 19100,
- VPSHUFHWZmik = 19101,
- VPSHUFHWZmikz = 19102,
- VPSHUFHWZri = 19103,
- VPSHUFHWZrik = 19104,
- VPSHUFHWZrikz = 19105,
- VPSHUFHWmi = 19106,
- VPSHUFHWri = 19107,
- VPSHUFLWYmi = 19108,
- VPSHUFLWYri = 19109,
- VPSHUFLWZ128mi = 19110,
- VPSHUFLWZ128mik = 19111,
- VPSHUFLWZ128mikz = 19112,
- VPSHUFLWZ128ri = 19113,
- VPSHUFLWZ128rik = 19114,
- VPSHUFLWZ128rikz = 19115,
- VPSHUFLWZ256mi = 19116,
- VPSHUFLWZ256mik = 19117,
- VPSHUFLWZ256mikz = 19118,
- VPSHUFLWZ256ri = 19119,
- VPSHUFLWZ256rik = 19120,
- VPSHUFLWZ256rikz = 19121,
- VPSHUFLWZmi = 19122,
- VPSHUFLWZmik = 19123,
- VPSHUFLWZmikz = 19124,
- VPSHUFLWZri = 19125,
- VPSHUFLWZrik = 19126,
- VPSHUFLWZrikz = 19127,
- VPSHUFLWmi = 19128,
- VPSHUFLWri = 19129,
- VPSIGNBYrm = 19130,
- VPSIGNBYrr = 19131,
- VPSIGNBrm = 19132,
- VPSIGNBrr = 19133,
- VPSIGNDYrm = 19134,
- VPSIGNDYrr = 19135,
- VPSIGNDrm = 19136,
- VPSIGNDrr = 19137,
- VPSIGNWYrm = 19138,
- VPSIGNWYrr = 19139,
- VPSIGNWrm = 19140,
- VPSIGNWrr = 19141,
- VPSLLDQYri = 19142,
- VPSLLDQZ128mi = 19143,
- VPSLLDQZ128ri = 19144,
- VPSLLDQZ256mi = 19145,
- VPSLLDQZ256ri = 19146,
- VPSLLDQZmi = 19147,
- VPSLLDQZri = 19148,
- VPSLLDQri = 19149,
- VPSLLDYri = 19150,
- VPSLLDYrm = 19151,
- VPSLLDYrr = 19152,
- VPSLLDZ128mbi = 19153,
- VPSLLDZ128mbik = 19154,
- VPSLLDZ128mbikz = 19155,
- VPSLLDZ128mi = 19156,
- VPSLLDZ128mik = 19157,
- VPSLLDZ128mikz = 19158,
- VPSLLDZ128ri = 19159,
- VPSLLDZ128rik = 19160,
- VPSLLDZ128rikz = 19161,
- VPSLLDZ128rm = 19162,
- VPSLLDZ128rmk = 19163,
- VPSLLDZ128rmkz = 19164,
- VPSLLDZ128rr = 19165,
- VPSLLDZ128rrk = 19166,
- VPSLLDZ128rrkz = 19167,
- VPSLLDZ256mbi = 19168,
- VPSLLDZ256mbik = 19169,
- VPSLLDZ256mbikz = 19170,
- VPSLLDZ256mi = 19171,
- VPSLLDZ256mik = 19172,
- VPSLLDZ256mikz = 19173,
- VPSLLDZ256ri = 19174,
- VPSLLDZ256rik = 19175,
- VPSLLDZ256rikz = 19176,
- VPSLLDZ256rm = 19177,
- VPSLLDZ256rmk = 19178,
- VPSLLDZ256rmkz = 19179,
- VPSLLDZ256rr = 19180,
- VPSLLDZ256rrk = 19181,
- VPSLLDZ256rrkz = 19182,
- VPSLLDZmbi = 19183,
- VPSLLDZmbik = 19184,
- VPSLLDZmbikz = 19185,
- VPSLLDZmi = 19186,
- VPSLLDZmik = 19187,
- VPSLLDZmikz = 19188,
- VPSLLDZri = 19189,
- VPSLLDZrik = 19190,
- VPSLLDZrikz = 19191,
- VPSLLDZrm = 19192,
- VPSLLDZrmk = 19193,
- VPSLLDZrmkz = 19194,
- VPSLLDZrr = 19195,
- VPSLLDZrrk = 19196,
- VPSLLDZrrkz = 19197,
- VPSLLDri = 19198,
- VPSLLDrm = 19199,
- VPSLLDrr = 19200,
- VPSLLQYri = 19201,
- VPSLLQYrm = 19202,
- VPSLLQYrr = 19203,
- VPSLLQZ128mbi = 19204,
- VPSLLQZ128mbik = 19205,
- VPSLLQZ128mbikz = 19206,
- VPSLLQZ128mi = 19207,
- VPSLLQZ128mik = 19208,
- VPSLLQZ128mikz = 19209,
- VPSLLQZ128ri = 19210,
- VPSLLQZ128rik = 19211,
- VPSLLQZ128rikz = 19212,
- VPSLLQZ128rm = 19213,
- VPSLLQZ128rmk = 19214,
- VPSLLQZ128rmkz = 19215,
- VPSLLQZ128rr = 19216,
- VPSLLQZ128rrk = 19217,
- VPSLLQZ128rrkz = 19218,
- VPSLLQZ256mbi = 19219,
- VPSLLQZ256mbik = 19220,
- VPSLLQZ256mbikz = 19221,
- VPSLLQZ256mi = 19222,
- VPSLLQZ256mik = 19223,
- VPSLLQZ256mikz = 19224,
- VPSLLQZ256ri = 19225,
- VPSLLQZ256rik = 19226,
- VPSLLQZ256rikz = 19227,
- VPSLLQZ256rm = 19228,
- VPSLLQZ256rmk = 19229,
- VPSLLQZ256rmkz = 19230,
- VPSLLQZ256rr = 19231,
- VPSLLQZ256rrk = 19232,
- VPSLLQZ256rrkz = 19233,
- VPSLLQZmbi = 19234,
- VPSLLQZmbik = 19235,
- VPSLLQZmbikz = 19236,
- VPSLLQZmi = 19237,
- VPSLLQZmik = 19238,
- VPSLLQZmikz = 19239,
- VPSLLQZri = 19240,
- VPSLLQZrik = 19241,
- VPSLLQZrikz = 19242,
- VPSLLQZrm = 19243,
- VPSLLQZrmk = 19244,
- VPSLLQZrmkz = 19245,
- VPSLLQZrr = 19246,
- VPSLLQZrrk = 19247,
- VPSLLQZrrkz = 19248,
- VPSLLQri = 19249,
- VPSLLQrm = 19250,
- VPSLLQrr = 19251,
- VPSLLVDYrm = 19252,
- VPSLLVDYrr = 19253,
- VPSLLVDZ128rm = 19254,
- VPSLLVDZ128rmb = 19255,
- VPSLLVDZ128rmbk = 19256,
- VPSLLVDZ128rmbkz = 19257,
- VPSLLVDZ128rmk = 19258,
- VPSLLVDZ128rmkz = 19259,
- VPSLLVDZ128rr = 19260,
- VPSLLVDZ128rrk = 19261,
- VPSLLVDZ128rrkz = 19262,
- VPSLLVDZ256rm = 19263,
- VPSLLVDZ256rmb = 19264,
- VPSLLVDZ256rmbk = 19265,
- VPSLLVDZ256rmbkz = 19266,
- VPSLLVDZ256rmk = 19267,
- VPSLLVDZ256rmkz = 19268,
- VPSLLVDZ256rr = 19269,
- VPSLLVDZ256rrk = 19270,
- VPSLLVDZ256rrkz = 19271,
- VPSLLVDZrm = 19272,
- VPSLLVDZrmb = 19273,
- VPSLLVDZrmbk = 19274,
- VPSLLVDZrmbkz = 19275,
- VPSLLVDZrmk = 19276,
- VPSLLVDZrmkz = 19277,
- VPSLLVDZrr = 19278,
- VPSLLVDZrrk = 19279,
- VPSLLVDZrrkz = 19280,
- VPSLLVDrm = 19281,
- VPSLLVDrr = 19282,
- VPSLLVQYrm = 19283,
- VPSLLVQYrr = 19284,
- VPSLLVQZ128rm = 19285,
- VPSLLVQZ128rmb = 19286,
- VPSLLVQZ128rmbk = 19287,
- VPSLLVQZ128rmbkz = 19288,
- VPSLLVQZ128rmk = 19289,
- VPSLLVQZ128rmkz = 19290,
- VPSLLVQZ128rr = 19291,
- VPSLLVQZ128rrk = 19292,
- VPSLLVQZ128rrkz = 19293,
- VPSLLVQZ256rm = 19294,
- VPSLLVQZ256rmb = 19295,
- VPSLLVQZ256rmbk = 19296,
- VPSLLVQZ256rmbkz = 19297,
- VPSLLVQZ256rmk = 19298,
- VPSLLVQZ256rmkz = 19299,
- VPSLLVQZ256rr = 19300,
- VPSLLVQZ256rrk = 19301,
- VPSLLVQZ256rrkz = 19302,
- VPSLLVQZrm = 19303,
- VPSLLVQZrmb = 19304,
- VPSLLVQZrmbk = 19305,
- VPSLLVQZrmbkz = 19306,
- VPSLLVQZrmk = 19307,
- VPSLLVQZrmkz = 19308,
- VPSLLVQZrr = 19309,
- VPSLLVQZrrk = 19310,
- VPSLLVQZrrkz = 19311,
- VPSLLVQrm = 19312,
- VPSLLVQrr = 19313,
- VPSLLVWZ128rm = 19314,
- VPSLLVWZ128rmk = 19315,
- VPSLLVWZ128rmkz = 19316,
- VPSLLVWZ128rr = 19317,
- VPSLLVWZ128rrk = 19318,
- VPSLLVWZ128rrkz = 19319,
- VPSLLVWZ256rm = 19320,
- VPSLLVWZ256rmk = 19321,
- VPSLLVWZ256rmkz = 19322,
- VPSLLVWZ256rr = 19323,
- VPSLLVWZ256rrk = 19324,
- VPSLLVWZ256rrkz = 19325,
- VPSLLVWZrm = 19326,
- VPSLLVWZrmk = 19327,
- VPSLLVWZrmkz = 19328,
- VPSLLVWZrr = 19329,
- VPSLLVWZrrk = 19330,
- VPSLLVWZrrkz = 19331,
- VPSLLWYri = 19332,
- VPSLLWYrm = 19333,
- VPSLLWYrr = 19334,
- VPSLLWZ128mi = 19335,
- VPSLLWZ128mik = 19336,
- VPSLLWZ128mikz = 19337,
- VPSLLWZ128ri = 19338,
- VPSLLWZ128rik = 19339,
- VPSLLWZ128rikz = 19340,
- VPSLLWZ128rm = 19341,
- VPSLLWZ128rmk = 19342,
- VPSLLWZ128rmkz = 19343,
- VPSLLWZ128rr = 19344,
- VPSLLWZ128rrk = 19345,
- VPSLLWZ128rrkz = 19346,
- VPSLLWZ256mi = 19347,
- VPSLLWZ256mik = 19348,
- VPSLLWZ256mikz = 19349,
- VPSLLWZ256ri = 19350,
- VPSLLWZ256rik = 19351,
- VPSLLWZ256rikz = 19352,
- VPSLLWZ256rm = 19353,
- VPSLLWZ256rmk = 19354,
- VPSLLWZ256rmkz = 19355,
- VPSLLWZ256rr = 19356,
- VPSLLWZ256rrk = 19357,
- VPSLLWZ256rrkz = 19358,
- VPSLLWZmi = 19359,
- VPSLLWZmik = 19360,
- VPSLLWZmikz = 19361,
- VPSLLWZri = 19362,
- VPSLLWZrik = 19363,
- VPSLLWZrikz = 19364,
- VPSLLWZrm = 19365,
- VPSLLWZrmk = 19366,
- VPSLLWZrmkz = 19367,
- VPSLLWZrr = 19368,
- VPSLLWZrrk = 19369,
- VPSLLWZrrkz = 19370,
- VPSLLWri = 19371,
- VPSLLWrm = 19372,
- VPSLLWrr = 19373,
- VPSRADYri = 19374,
- VPSRADYrm = 19375,
- VPSRADYrr = 19376,
- VPSRADZ128mbi = 19377,
- VPSRADZ128mbik = 19378,
- VPSRADZ128mbikz = 19379,
- VPSRADZ128mi = 19380,
- VPSRADZ128mik = 19381,
- VPSRADZ128mikz = 19382,
- VPSRADZ128ri = 19383,
- VPSRADZ128rik = 19384,
- VPSRADZ128rikz = 19385,
- VPSRADZ128rm = 19386,
- VPSRADZ128rmk = 19387,
- VPSRADZ128rmkz = 19388,
- VPSRADZ128rr = 19389,
- VPSRADZ128rrk = 19390,
- VPSRADZ128rrkz = 19391,
- VPSRADZ256mbi = 19392,
- VPSRADZ256mbik = 19393,
- VPSRADZ256mbikz = 19394,
- VPSRADZ256mi = 19395,
- VPSRADZ256mik = 19396,
- VPSRADZ256mikz = 19397,
- VPSRADZ256ri = 19398,
- VPSRADZ256rik = 19399,
- VPSRADZ256rikz = 19400,
- VPSRADZ256rm = 19401,
- VPSRADZ256rmk = 19402,
- VPSRADZ256rmkz = 19403,
- VPSRADZ256rr = 19404,
- VPSRADZ256rrk = 19405,
- VPSRADZ256rrkz = 19406,
- VPSRADZmbi = 19407,
- VPSRADZmbik = 19408,
- VPSRADZmbikz = 19409,
- VPSRADZmi = 19410,
- VPSRADZmik = 19411,
- VPSRADZmikz = 19412,
- VPSRADZri = 19413,
- VPSRADZrik = 19414,
- VPSRADZrikz = 19415,
- VPSRADZrm = 19416,
- VPSRADZrmk = 19417,
- VPSRADZrmkz = 19418,
- VPSRADZrr = 19419,
- VPSRADZrrk = 19420,
- VPSRADZrrkz = 19421,
- VPSRADri = 19422,
- VPSRADrm = 19423,
- VPSRADrr = 19424,
- VPSRAQZ128mbi = 19425,
- VPSRAQZ128mbik = 19426,
- VPSRAQZ128mbikz = 19427,
- VPSRAQZ128mi = 19428,
- VPSRAQZ128mik = 19429,
- VPSRAQZ128mikz = 19430,
- VPSRAQZ128ri = 19431,
- VPSRAQZ128rik = 19432,
- VPSRAQZ128rikz = 19433,
- VPSRAQZ128rm = 19434,
- VPSRAQZ128rmk = 19435,
- VPSRAQZ128rmkz = 19436,
- VPSRAQZ128rr = 19437,
- VPSRAQZ128rrk = 19438,
- VPSRAQZ128rrkz = 19439,
- VPSRAQZ256mbi = 19440,
- VPSRAQZ256mbik = 19441,
- VPSRAQZ256mbikz = 19442,
- VPSRAQZ256mi = 19443,
- VPSRAQZ256mik = 19444,
- VPSRAQZ256mikz = 19445,
- VPSRAQZ256ri = 19446,
- VPSRAQZ256rik = 19447,
- VPSRAQZ256rikz = 19448,
- VPSRAQZ256rm = 19449,
- VPSRAQZ256rmk = 19450,
- VPSRAQZ256rmkz = 19451,
- VPSRAQZ256rr = 19452,
- VPSRAQZ256rrk = 19453,
- VPSRAQZ256rrkz = 19454,
- VPSRAQZmbi = 19455,
- VPSRAQZmbik = 19456,
- VPSRAQZmbikz = 19457,
- VPSRAQZmi = 19458,
- VPSRAQZmik = 19459,
- VPSRAQZmikz = 19460,
- VPSRAQZri = 19461,
- VPSRAQZrik = 19462,
- VPSRAQZrikz = 19463,
- VPSRAQZrm = 19464,
- VPSRAQZrmk = 19465,
- VPSRAQZrmkz = 19466,
- VPSRAQZrr = 19467,
- VPSRAQZrrk = 19468,
- VPSRAQZrrkz = 19469,
- VPSRAVDYrm = 19470,
- VPSRAVDYrr = 19471,
- VPSRAVDZ128rm = 19472,
- VPSRAVDZ128rmb = 19473,
- VPSRAVDZ128rmbk = 19474,
- VPSRAVDZ128rmbkz = 19475,
- VPSRAVDZ128rmk = 19476,
- VPSRAVDZ128rmkz = 19477,
- VPSRAVDZ128rr = 19478,
- VPSRAVDZ128rrk = 19479,
- VPSRAVDZ128rrkz = 19480,
- VPSRAVDZ256rm = 19481,
- VPSRAVDZ256rmb = 19482,
- VPSRAVDZ256rmbk = 19483,
- VPSRAVDZ256rmbkz = 19484,
- VPSRAVDZ256rmk = 19485,
- VPSRAVDZ256rmkz = 19486,
- VPSRAVDZ256rr = 19487,
- VPSRAVDZ256rrk = 19488,
- VPSRAVDZ256rrkz = 19489,
- VPSRAVDZrm = 19490,
- VPSRAVDZrmb = 19491,
- VPSRAVDZrmbk = 19492,
- VPSRAVDZrmbkz = 19493,
- VPSRAVDZrmk = 19494,
- VPSRAVDZrmkz = 19495,
- VPSRAVDZrr = 19496,
- VPSRAVDZrrk = 19497,
- VPSRAVDZrrkz = 19498,
- VPSRAVDrm = 19499,
- VPSRAVDrr = 19500,
- VPSRAVQZ128rm = 19501,
- VPSRAVQZ128rmb = 19502,
- VPSRAVQZ128rmbk = 19503,
- VPSRAVQZ128rmbkz = 19504,
- VPSRAVQZ128rmk = 19505,
- VPSRAVQZ128rmkz = 19506,
- VPSRAVQZ128rr = 19507,
- VPSRAVQZ128rrk = 19508,
- VPSRAVQZ128rrkz = 19509,
- VPSRAVQZ256rm = 19510,
- VPSRAVQZ256rmb = 19511,
- VPSRAVQZ256rmbk = 19512,
- VPSRAVQZ256rmbkz = 19513,
- VPSRAVQZ256rmk = 19514,
- VPSRAVQZ256rmkz = 19515,
- VPSRAVQZ256rr = 19516,
- VPSRAVQZ256rrk = 19517,
- VPSRAVQZ256rrkz = 19518,
- VPSRAVQZrm = 19519,
- VPSRAVQZrmb = 19520,
- VPSRAVQZrmbk = 19521,
- VPSRAVQZrmbkz = 19522,
- VPSRAVQZrmk = 19523,
- VPSRAVQZrmkz = 19524,
- VPSRAVQZrr = 19525,
- VPSRAVQZrrk = 19526,
- VPSRAVQZrrkz = 19527,
- VPSRAVWZ128rm = 19528,
- VPSRAVWZ128rmk = 19529,
- VPSRAVWZ128rmkz = 19530,
- VPSRAVWZ128rr = 19531,
- VPSRAVWZ128rrk = 19532,
- VPSRAVWZ128rrkz = 19533,
- VPSRAVWZ256rm = 19534,
- VPSRAVWZ256rmk = 19535,
- VPSRAVWZ256rmkz = 19536,
- VPSRAVWZ256rr = 19537,
- VPSRAVWZ256rrk = 19538,
- VPSRAVWZ256rrkz = 19539,
- VPSRAVWZrm = 19540,
- VPSRAVWZrmk = 19541,
- VPSRAVWZrmkz = 19542,
- VPSRAVWZrr = 19543,
- VPSRAVWZrrk = 19544,
- VPSRAVWZrrkz = 19545,
- VPSRAWYri = 19546,
- VPSRAWYrm = 19547,
- VPSRAWYrr = 19548,
- VPSRAWZ128mi = 19549,
- VPSRAWZ128mik = 19550,
- VPSRAWZ128mikz = 19551,
- VPSRAWZ128ri = 19552,
- VPSRAWZ128rik = 19553,
- VPSRAWZ128rikz = 19554,
- VPSRAWZ128rm = 19555,
- VPSRAWZ128rmk = 19556,
- VPSRAWZ128rmkz = 19557,
- VPSRAWZ128rr = 19558,
- VPSRAWZ128rrk = 19559,
- VPSRAWZ128rrkz = 19560,
- VPSRAWZ256mi = 19561,
- VPSRAWZ256mik = 19562,
- VPSRAWZ256mikz = 19563,
- VPSRAWZ256ri = 19564,
- VPSRAWZ256rik = 19565,
- VPSRAWZ256rikz = 19566,
- VPSRAWZ256rm = 19567,
- VPSRAWZ256rmk = 19568,
- VPSRAWZ256rmkz = 19569,
- VPSRAWZ256rr = 19570,
- VPSRAWZ256rrk = 19571,
- VPSRAWZ256rrkz = 19572,
- VPSRAWZmi = 19573,
- VPSRAWZmik = 19574,
- VPSRAWZmikz = 19575,
- VPSRAWZri = 19576,
- VPSRAWZrik = 19577,
- VPSRAWZrikz = 19578,
- VPSRAWZrm = 19579,
- VPSRAWZrmk = 19580,
- VPSRAWZrmkz = 19581,
- VPSRAWZrr = 19582,
- VPSRAWZrrk = 19583,
- VPSRAWZrrkz = 19584,
- VPSRAWri = 19585,
- VPSRAWrm = 19586,
- VPSRAWrr = 19587,
- VPSRLDQYri = 19588,
- VPSRLDQZ128mi = 19589,
- VPSRLDQZ128ri = 19590,
- VPSRLDQZ256mi = 19591,
- VPSRLDQZ256ri = 19592,
- VPSRLDQZmi = 19593,
- VPSRLDQZri = 19594,
- VPSRLDQri = 19595,
- VPSRLDYri = 19596,
- VPSRLDYrm = 19597,
- VPSRLDYrr = 19598,
- VPSRLDZ128mbi = 19599,
- VPSRLDZ128mbik = 19600,
- VPSRLDZ128mbikz = 19601,
- VPSRLDZ128mi = 19602,
- VPSRLDZ128mik = 19603,
- VPSRLDZ128mikz = 19604,
- VPSRLDZ128ri = 19605,
- VPSRLDZ128rik = 19606,
- VPSRLDZ128rikz = 19607,
- VPSRLDZ128rm = 19608,
- VPSRLDZ128rmk = 19609,
- VPSRLDZ128rmkz = 19610,
- VPSRLDZ128rr = 19611,
- VPSRLDZ128rrk = 19612,
- VPSRLDZ128rrkz = 19613,
- VPSRLDZ256mbi = 19614,
- VPSRLDZ256mbik = 19615,
- VPSRLDZ256mbikz = 19616,
- VPSRLDZ256mi = 19617,
- VPSRLDZ256mik = 19618,
- VPSRLDZ256mikz = 19619,
- VPSRLDZ256ri = 19620,
- VPSRLDZ256rik = 19621,
- VPSRLDZ256rikz = 19622,
- VPSRLDZ256rm = 19623,
- VPSRLDZ256rmk = 19624,
- VPSRLDZ256rmkz = 19625,
- VPSRLDZ256rr = 19626,
- VPSRLDZ256rrk = 19627,
- VPSRLDZ256rrkz = 19628,
- VPSRLDZmbi = 19629,
- VPSRLDZmbik = 19630,
- VPSRLDZmbikz = 19631,
- VPSRLDZmi = 19632,
- VPSRLDZmik = 19633,
- VPSRLDZmikz = 19634,
- VPSRLDZri = 19635,
- VPSRLDZrik = 19636,
- VPSRLDZrikz = 19637,
- VPSRLDZrm = 19638,
- VPSRLDZrmk = 19639,
- VPSRLDZrmkz = 19640,
- VPSRLDZrr = 19641,
- VPSRLDZrrk = 19642,
- VPSRLDZrrkz = 19643,
- VPSRLDri = 19644,
- VPSRLDrm = 19645,
- VPSRLDrr = 19646,
- VPSRLQYri = 19647,
- VPSRLQYrm = 19648,
- VPSRLQYrr = 19649,
- VPSRLQZ128mbi = 19650,
- VPSRLQZ128mbik = 19651,
- VPSRLQZ128mbikz = 19652,
- VPSRLQZ128mi = 19653,
- VPSRLQZ128mik = 19654,
- VPSRLQZ128mikz = 19655,
- VPSRLQZ128ri = 19656,
- VPSRLQZ128rik = 19657,
- VPSRLQZ128rikz = 19658,
- VPSRLQZ128rm = 19659,
- VPSRLQZ128rmk = 19660,
- VPSRLQZ128rmkz = 19661,
- VPSRLQZ128rr = 19662,
- VPSRLQZ128rrk = 19663,
- VPSRLQZ128rrkz = 19664,
- VPSRLQZ256mbi = 19665,
- VPSRLQZ256mbik = 19666,
- VPSRLQZ256mbikz = 19667,
- VPSRLQZ256mi = 19668,
- VPSRLQZ256mik = 19669,
- VPSRLQZ256mikz = 19670,
- VPSRLQZ256ri = 19671,
- VPSRLQZ256rik = 19672,
- VPSRLQZ256rikz = 19673,
- VPSRLQZ256rm = 19674,
- VPSRLQZ256rmk = 19675,
- VPSRLQZ256rmkz = 19676,
- VPSRLQZ256rr = 19677,
- VPSRLQZ256rrk = 19678,
- VPSRLQZ256rrkz = 19679,
- VPSRLQZmbi = 19680,
- VPSRLQZmbik = 19681,
- VPSRLQZmbikz = 19682,
- VPSRLQZmi = 19683,
- VPSRLQZmik = 19684,
- VPSRLQZmikz = 19685,
- VPSRLQZri = 19686,
- VPSRLQZrik = 19687,
- VPSRLQZrikz = 19688,
- VPSRLQZrm = 19689,
- VPSRLQZrmk = 19690,
- VPSRLQZrmkz = 19691,
- VPSRLQZrr = 19692,
- VPSRLQZrrk = 19693,
- VPSRLQZrrkz = 19694,
- VPSRLQri = 19695,
- VPSRLQrm = 19696,
- VPSRLQrr = 19697,
- VPSRLVDYrm = 19698,
- VPSRLVDYrr = 19699,
- VPSRLVDZ128rm = 19700,
- VPSRLVDZ128rmb = 19701,
- VPSRLVDZ128rmbk = 19702,
- VPSRLVDZ128rmbkz = 19703,
- VPSRLVDZ128rmk = 19704,
- VPSRLVDZ128rmkz = 19705,
- VPSRLVDZ128rr = 19706,
- VPSRLVDZ128rrk = 19707,
- VPSRLVDZ128rrkz = 19708,
- VPSRLVDZ256rm = 19709,
- VPSRLVDZ256rmb = 19710,
- VPSRLVDZ256rmbk = 19711,
- VPSRLVDZ256rmbkz = 19712,
- VPSRLVDZ256rmk = 19713,
- VPSRLVDZ256rmkz = 19714,
- VPSRLVDZ256rr = 19715,
- VPSRLVDZ256rrk = 19716,
- VPSRLVDZ256rrkz = 19717,
- VPSRLVDZrm = 19718,
- VPSRLVDZrmb = 19719,
- VPSRLVDZrmbk = 19720,
- VPSRLVDZrmbkz = 19721,
- VPSRLVDZrmk = 19722,
- VPSRLVDZrmkz = 19723,
- VPSRLVDZrr = 19724,
- VPSRLVDZrrk = 19725,
- VPSRLVDZrrkz = 19726,
- VPSRLVDrm = 19727,
- VPSRLVDrr = 19728,
- VPSRLVQYrm = 19729,
- VPSRLVQYrr = 19730,
- VPSRLVQZ128rm = 19731,
- VPSRLVQZ128rmb = 19732,
- VPSRLVQZ128rmbk = 19733,
- VPSRLVQZ128rmbkz = 19734,
- VPSRLVQZ128rmk = 19735,
- VPSRLVQZ128rmkz = 19736,
- VPSRLVQZ128rr = 19737,
- VPSRLVQZ128rrk = 19738,
- VPSRLVQZ128rrkz = 19739,
- VPSRLVQZ256rm = 19740,
- VPSRLVQZ256rmb = 19741,
- VPSRLVQZ256rmbk = 19742,
- VPSRLVQZ256rmbkz = 19743,
- VPSRLVQZ256rmk = 19744,
- VPSRLVQZ256rmkz = 19745,
- VPSRLVQZ256rr = 19746,
- VPSRLVQZ256rrk = 19747,
- VPSRLVQZ256rrkz = 19748,
- VPSRLVQZrm = 19749,
- VPSRLVQZrmb = 19750,
- VPSRLVQZrmbk = 19751,
- VPSRLVQZrmbkz = 19752,
- VPSRLVQZrmk = 19753,
- VPSRLVQZrmkz = 19754,
- VPSRLVQZrr = 19755,
- VPSRLVQZrrk = 19756,
- VPSRLVQZrrkz = 19757,
- VPSRLVQrm = 19758,
- VPSRLVQrr = 19759,
- VPSRLVWZ128rm = 19760,
- VPSRLVWZ128rmk = 19761,
- VPSRLVWZ128rmkz = 19762,
- VPSRLVWZ128rr = 19763,
- VPSRLVWZ128rrk = 19764,
- VPSRLVWZ128rrkz = 19765,
- VPSRLVWZ256rm = 19766,
- VPSRLVWZ256rmk = 19767,
- VPSRLVWZ256rmkz = 19768,
- VPSRLVWZ256rr = 19769,
- VPSRLVWZ256rrk = 19770,
- VPSRLVWZ256rrkz = 19771,
- VPSRLVWZrm = 19772,
- VPSRLVWZrmk = 19773,
- VPSRLVWZrmkz = 19774,
- VPSRLVWZrr = 19775,
- VPSRLVWZrrk = 19776,
- VPSRLVWZrrkz = 19777,
- VPSRLWYri = 19778,
- VPSRLWYrm = 19779,
- VPSRLWYrr = 19780,
- VPSRLWZ128mi = 19781,
- VPSRLWZ128mik = 19782,
- VPSRLWZ128mikz = 19783,
- VPSRLWZ128ri = 19784,
- VPSRLWZ128rik = 19785,
- VPSRLWZ128rikz = 19786,
- VPSRLWZ128rm = 19787,
- VPSRLWZ128rmk = 19788,
- VPSRLWZ128rmkz = 19789,
- VPSRLWZ128rr = 19790,
- VPSRLWZ128rrk = 19791,
- VPSRLWZ128rrkz = 19792,
- VPSRLWZ256mi = 19793,
- VPSRLWZ256mik = 19794,
- VPSRLWZ256mikz = 19795,
- VPSRLWZ256ri = 19796,
- VPSRLWZ256rik = 19797,
- VPSRLWZ256rikz = 19798,
- VPSRLWZ256rm = 19799,
- VPSRLWZ256rmk = 19800,
- VPSRLWZ256rmkz = 19801,
- VPSRLWZ256rr = 19802,
- VPSRLWZ256rrk = 19803,
- VPSRLWZ256rrkz = 19804,
- VPSRLWZmi = 19805,
- VPSRLWZmik = 19806,
- VPSRLWZmikz = 19807,
- VPSRLWZri = 19808,
- VPSRLWZrik = 19809,
- VPSRLWZrikz = 19810,
- VPSRLWZrm = 19811,
- VPSRLWZrmk = 19812,
- VPSRLWZrmkz = 19813,
- VPSRLWZrr = 19814,
- VPSRLWZrrk = 19815,
- VPSRLWZrrkz = 19816,
- VPSRLWri = 19817,
- VPSRLWrm = 19818,
- VPSRLWrr = 19819,
- VPSUBBYrm = 19820,
- VPSUBBYrr = 19821,
- VPSUBBZ128rm = 19822,
- VPSUBBZ128rmk = 19823,
- VPSUBBZ128rmkz = 19824,
- VPSUBBZ128rr = 19825,
- VPSUBBZ128rrk = 19826,
- VPSUBBZ128rrkz = 19827,
- VPSUBBZ256rm = 19828,
- VPSUBBZ256rmk = 19829,
- VPSUBBZ256rmkz = 19830,
- VPSUBBZ256rr = 19831,
- VPSUBBZ256rrk = 19832,
- VPSUBBZ256rrkz = 19833,
- VPSUBBZrm = 19834,
- VPSUBBZrmk = 19835,
- VPSUBBZrmkz = 19836,
- VPSUBBZrr = 19837,
- VPSUBBZrrk = 19838,
- VPSUBBZrrkz = 19839,
- VPSUBBrm = 19840,
- VPSUBBrr = 19841,
- VPSUBDYrm = 19842,
- VPSUBDYrr = 19843,
- VPSUBDZ128rm = 19844,
- VPSUBDZ128rmb = 19845,
- VPSUBDZ128rmbk = 19846,
- VPSUBDZ128rmbkz = 19847,
- VPSUBDZ128rmk = 19848,
- VPSUBDZ128rmkz = 19849,
- VPSUBDZ128rr = 19850,
- VPSUBDZ128rrk = 19851,
- VPSUBDZ128rrkz = 19852,
- VPSUBDZ256rm = 19853,
- VPSUBDZ256rmb = 19854,
- VPSUBDZ256rmbk = 19855,
- VPSUBDZ256rmbkz = 19856,
- VPSUBDZ256rmk = 19857,
- VPSUBDZ256rmkz = 19858,
- VPSUBDZ256rr = 19859,
- VPSUBDZ256rrk = 19860,
- VPSUBDZ256rrkz = 19861,
- VPSUBDZrm = 19862,
- VPSUBDZrmb = 19863,
- VPSUBDZrmbk = 19864,
- VPSUBDZrmbkz = 19865,
- VPSUBDZrmk = 19866,
- VPSUBDZrmkz = 19867,
- VPSUBDZrr = 19868,
- VPSUBDZrrk = 19869,
- VPSUBDZrrkz = 19870,
- VPSUBDrm = 19871,
- VPSUBDrr = 19872,
- VPSUBQYrm = 19873,
- VPSUBQYrr = 19874,
- VPSUBQZ128rm = 19875,
- VPSUBQZ128rmb = 19876,
- VPSUBQZ128rmbk = 19877,
- VPSUBQZ128rmbkz = 19878,
- VPSUBQZ128rmk = 19879,
- VPSUBQZ128rmkz = 19880,
- VPSUBQZ128rr = 19881,
- VPSUBQZ128rrk = 19882,
- VPSUBQZ128rrkz = 19883,
- VPSUBQZ256rm = 19884,
- VPSUBQZ256rmb = 19885,
- VPSUBQZ256rmbk = 19886,
- VPSUBQZ256rmbkz = 19887,
- VPSUBQZ256rmk = 19888,
- VPSUBQZ256rmkz = 19889,
- VPSUBQZ256rr = 19890,
- VPSUBQZ256rrk = 19891,
- VPSUBQZ256rrkz = 19892,
- VPSUBQZrm = 19893,
- VPSUBQZrmb = 19894,
- VPSUBQZrmbk = 19895,
- VPSUBQZrmbkz = 19896,
- VPSUBQZrmk = 19897,
- VPSUBQZrmkz = 19898,
- VPSUBQZrr = 19899,
- VPSUBQZrrk = 19900,
- VPSUBQZrrkz = 19901,
- VPSUBQrm = 19902,
- VPSUBQrr = 19903,
- VPSUBSBYrm = 19904,
- VPSUBSBYrr = 19905,
- VPSUBSBZ128rm = 19906,
- VPSUBSBZ128rmk = 19907,
- VPSUBSBZ128rmkz = 19908,
- VPSUBSBZ128rr = 19909,
- VPSUBSBZ128rrk = 19910,
- VPSUBSBZ128rrkz = 19911,
- VPSUBSBZ256rm = 19912,
- VPSUBSBZ256rmk = 19913,
- VPSUBSBZ256rmkz = 19914,
- VPSUBSBZ256rr = 19915,
- VPSUBSBZ256rrk = 19916,
- VPSUBSBZ256rrkz = 19917,
- VPSUBSBZrm = 19918,
- VPSUBSBZrmk = 19919,
- VPSUBSBZrmkz = 19920,
- VPSUBSBZrr = 19921,
- VPSUBSBZrrk = 19922,
- VPSUBSBZrrkz = 19923,
- VPSUBSBrm = 19924,
- VPSUBSBrr = 19925,
- VPSUBSWYrm = 19926,
- VPSUBSWYrr = 19927,
- VPSUBSWZ128rm = 19928,
- VPSUBSWZ128rmk = 19929,
- VPSUBSWZ128rmkz = 19930,
- VPSUBSWZ128rr = 19931,
- VPSUBSWZ128rrk = 19932,
- VPSUBSWZ128rrkz = 19933,
- VPSUBSWZ256rm = 19934,
- VPSUBSWZ256rmk = 19935,
- VPSUBSWZ256rmkz = 19936,
- VPSUBSWZ256rr = 19937,
- VPSUBSWZ256rrk = 19938,
- VPSUBSWZ256rrkz = 19939,
- VPSUBSWZrm = 19940,
- VPSUBSWZrmk = 19941,
- VPSUBSWZrmkz = 19942,
- VPSUBSWZrr = 19943,
- VPSUBSWZrrk = 19944,
- VPSUBSWZrrkz = 19945,
- VPSUBSWrm = 19946,
- VPSUBSWrr = 19947,
- VPSUBUSBYrm = 19948,
- VPSUBUSBYrr = 19949,
- VPSUBUSBZ128rm = 19950,
- VPSUBUSBZ128rmk = 19951,
- VPSUBUSBZ128rmkz = 19952,
- VPSUBUSBZ128rr = 19953,
- VPSUBUSBZ128rrk = 19954,
- VPSUBUSBZ128rrkz = 19955,
- VPSUBUSBZ256rm = 19956,
- VPSUBUSBZ256rmk = 19957,
- VPSUBUSBZ256rmkz = 19958,
- VPSUBUSBZ256rr = 19959,
- VPSUBUSBZ256rrk = 19960,
- VPSUBUSBZ256rrkz = 19961,
- VPSUBUSBZrm = 19962,
- VPSUBUSBZrmk = 19963,
- VPSUBUSBZrmkz = 19964,
- VPSUBUSBZrr = 19965,
- VPSUBUSBZrrk = 19966,
- VPSUBUSBZrrkz = 19967,
- VPSUBUSBrm = 19968,
- VPSUBUSBrr = 19969,
- VPSUBUSWYrm = 19970,
- VPSUBUSWYrr = 19971,
- VPSUBUSWZ128rm = 19972,
- VPSUBUSWZ128rmk = 19973,
- VPSUBUSWZ128rmkz = 19974,
- VPSUBUSWZ128rr = 19975,
- VPSUBUSWZ128rrk = 19976,
- VPSUBUSWZ128rrkz = 19977,
- VPSUBUSWZ256rm = 19978,
- VPSUBUSWZ256rmk = 19979,
- VPSUBUSWZ256rmkz = 19980,
- VPSUBUSWZ256rr = 19981,
- VPSUBUSWZ256rrk = 19982,
- VPSUBUSWZ256rrkz = 19983,
- VPSUBUSWZrm = 19984,
- VPSUBUSWZrmk = 19985,
- VPSUBUSWZrmkz = 19986,
- VPSUBUSWZrr = 19987,
- VPSUBUSWZrrk = 19988,
- VPSUBUSWZrrkz = 19989,
- VPSUBUSWrm = 19990,
- VPSUBUSWrr = 19991,
- VPSUBWYrm = 19992,
- VPSUBWYrr = 19993,
- VPSUBWZ128rm = 19994,
- VPSUBWZ128rmk = 19995,
- VPSUBWZ128rmkz = 19996,
- VPSUBWZ128rr = 19997,
- VPSUBWZ128rrk = 19998,
- VPSUBWZ128rrkz = 19999,
- VPSUBWZ256rm = 20000,
- VPSUBWZ256rmk = 20001,
- VPSUBWZ256rmkz = 20002,
- VPSUBWZ256rr = 20003,
- VPSUBWZ256rrk = 20004,
- VPSUBWZ256rrkz = 20005,
- VPSUBWZrm = 20006,
- VPSUBWZrmk = 20007,
- VPSUBWZrmkz = 20008,
- VPSUBWZrr = 20009,
- VPSUBWZrrk = 20010,
- VPSUBWZrrkz = 20011,
- VPSUBWrm = 20012,
- VPSUBWrr = 20013,
- VPTERNLOGDZ128rmbi = 20014,
- VPTERNLOGDZ128rmbik = 20015,
- VPTERNLOGDZ128rmbikz = 20016,
- VPTERNLOGDZ128rmi = 20017,
- VPTERNLOGDZ128rmik = 20018,
- VPTERNLOGDZ128rmikz = 20019,
- VPTERNLOGDZ128rri = 20020,
- VPTERNLOGDZ128rrik = 20021,
- VPTERNLOGDZ128rrikz = 20022,
- VPTERNLOGDZ256rmbi = 20023,
- VPTERNLOGDZ256rmbik = 20024,
- VPTERNLOGDZ256rmbikz = 20025,
- VPTERNLOGDZ256rmi = 20026,
- VPTERNLOGDZ256rmik = 20027,
- VPTERNLOGDZ256rmikz = 20028,
- VPTERNLOGDZ256rri = 20029,
- VPTERNLOGDZ256rrik = 20030,
- VPTERNLOGDZ256rrikz = 20031,
- VPTERNLOGDZrmbi = 20032,
- VPTERNLOGDZrmbik = 20033,
- VPTERNLOGDZrmbikz = 20034,
- VPTERNLOGDZrmi = 20035,
- VPTERNLOGDZrmik = 20036,
- VPTERNLOGDZrmikz = 20037,
- VPTERNLOGDZrri = 20038,
- VPTERNLOGDZrrik = 20039,
- VPTERNLOGDZrrikz = 20040,
- VPTERNLOGQZ128rmbi = 20041,
- VPTERNLOGQZ128rmbik = 20042,
- VPTERNLOGQZ128rmbikz = 20043,
- VPTERNLOGQZ128rmi = 20044,
- VPTERNLOGQZ128rmik = 20045,
- VPTERNLOGQZ128rmikz = 20046,
- VPTERNLOGQZ128rri = 20047,
- VPTERNLOGQZ128rrik = 20048,
- VPTERNLOGQZ128rrikz = 20049,
- VPTERNLOGQZ256rmbi = 20050,
- VPTERNLOGQZ256rmbik = 20051,
- VPTERNLOGQZ256rmbikz = 20052,
- VPTERNLOGQZ256rmi = 20053,
- VPTERNLOGQZ256rmik = 20054,
- VPTERNLOGQZ256rmikz = 20055,
- VPTERNLOGQZ256rri = 20056,
- VPTERNLOGQZ256rrik = 20057,
- VPTERNLOGQZ256rrikz = 20058,
- VPTERNLOGQZrmbi = 20059,
- VPTERNLOGQZrmbik = 20060,
- VPTERNLOGQZrmbikz = 20061,
- VPTERNLOGQZrmi = 20062,
- VPTERNLOGQZrmik = 20063,
- VPTERNLOGQZrmikz = 20064,
- VPTERNLOGQZrri = 20065,
- VPTERNLOGQZrrik = 20066,
- VPTERNLOGQZrrikz = 20067,
- VPTESTMBZ128rm = 20068,
- VPTESTMBZ128rmk = 20069,
- VPTESTMBZ128rr = 20070,
- VPTESTMBZ128rrk = 20071,
- VPTESTMBZ256rm = 20072,
- VPTESTMBZ256rmk = 20073,
- VPTESTMBZ256rr = 20074,
- VPTESTMBZ256rrk = 20075,
- VPTESTMBZrm = 20076,
- VPTESTMBZrmk = 20077,
- VPTESTMBZrr = 20078,
- VPTESTMBZrrk = 20079,
- VPTESTMDZ128rm = 20080,
- VPTESTMDZ128rmb = 20081,
- VPTESTMDZ128rmbk = 20082,
- VPTESTMDZ128rmk = 20083,
- VPTESTMDZ128rr = 20084,
- VPTESTMDZ128rrk = 20085,
- VPTESTMDZ256rm = 20086,
- VPTESTMDZ256rmb = 20087,
- VPTESTMDZ256rmbk = 20088,
- VPTESTMDZ256rmk = 20089,
- VPTESTMDZ256rr = 20090,
- VPTESTMDZ256rrk = 20091,
- VPTESTMDZrm = 20092,
- VPTESTMDZrmb = 20093,
- VPTESTMDZrmbk = 20094,
- VPTESTMDZrmk = 20095,
- VPTESTMDZrr = 20096,
- VPTESTMDZrrk = 20097,
- VPTESTMQZ128rm = 20098,
- VPTESTMQZ128rmb = 20099,
- VPTESTMQZ128rmbk = 20100,
- VPTESTMQZ128rmk = 20101,
- VPTESTMQZ128rr = 20102,
- VPTESTMQZ128rrk = 20103,
- VPTESTMQZ256rm = 20104,
- VPTESTMQZ256rmb = 20105,
- VPTESTMQZ256rmbk = 20106,
- VPTESTMQZ256rmk = 20107,
- VPTESTMQZ256rr = 20108,
- VPTESTMQZ256rrk = 20109,
- VPTESTMQZrm = 20110,
- VPTESTMQZrmb = 20111,
- VPTESTMQZrmbk = 20112,
- VPTESTMQZrmk = 20113,
- VPTESTMQZrr = 20114,
- VPTESTMQZrrk = 20115,
- VPTESTMWZ128rm = 20116,
- VPTESTMWZ128rmk = 20117,
- VPTESTMWZ128rr = 20118,
- VPTESTMWZ128rrk = 20119,
- VPTESTMWZ256rm = 20120,
- VPTESTMWZ256rmk = 20121,
- VPTESTMWZ256rr = 20122,
- VPTESTMWZ256rrk = 20123,
- VPTESTMWZrm = 20124,
- VPTESTMWZrmk = 20125,
- VPTESTMWZrr = 20126,
- VPTESTMWZrrk = 20127,
- VPTESTNMBZ128rm = 20128,
- VPTESTNMBZ128rmk = 20129,
- VPTESTNMBZ128rr = 20130,
- VPTESTNMBZ128rrk = 20131,
- VPTESTNMBZ256rm = 20132,
- VPTESTNMBZ256rmk = 20133,
- VPTESTNMBZ256rr = 20134,
- VPTESTNMBZ256rrk = 20135,
- VPTESTNMBZrm = 20136,
- VPTESTNMBZrmk = 20137,
- VPTESTNMBZrr = 20138,
- VPTESTNMBZrrk = 20139,
- VPTESTNMDZ128rm = 20140,
- VPTESTNMDZ128rmb = 20141,
- VPTESTNMDZ128rmbk = 20142,
- VPTESTNMDZ128rmk = 20143,
- VPTESTNMDZ128rr = 20144,
- VPTESTNMDZ128rrk = 20145,
- VPTESTNMDZ256rm = 20146,
- VPTESTNMDZ256rmb = 20147,
- VPTESTNMDZ256rmbk = 20148,
- VPTESTNMDZ256rmk = 20149,
- VPTESTNMDZ256rr = 20150,
- VPTESTNMDZ256rrk = 20151,
- VPTESTNMDZrm = 20152,
- VPTESTNMDZrmb = 20153,
- VPTESTNMDZrmbk = 20154,
- VPTESTNMDZrmk = 20155,
- VPTESTNMDZrr = 20156,
- VPTESTNMDZrrk = 20157,
- VPTESTNMQZ128rm = 20158,
- VPTESTNMQZ128rmb = 20159,
- VPTESTNMQZ128rmbk = 20160,
- VPTESTNMQZ128rmk = 20161,
- VPTESTNMQZ128rr = 20162,
- VPTESTNMQZ128rrk = 20163,
- VPTESTNMQZ256rm = 20164,
- VPTESTNMQZ256rmb = 20165,
- VPTESTNMQZ256rmbk = 20166,
- VPTESTNMQZ256rmk = 20167,
- VPTESTNMQZ256rr = 20168,
- VPTESTNMQZ256rrk = 20169,
- VPTESTNMQZrm = 20170,
- VPTESTNMQZrmb = 20171,
- VPTESTNMQZrmbk = 20172,
- VPTESTNMQZrmk = 20173,
- VPTESTNMQZrr = 20174,
- VPTESTNMQZrrk = 20175,
- VPTESTNMWZ128rm = 20176,
- VPTESTNMWZ128rmk = 20177,
- VPTESTNMWZ128rr = 20178,
- VPTESTNMWZ128rrk = 20179,
- VPTESTNMWZ256rm = 20180,
- VPTESTNMWZ256rmk = 20181,
- VPTESTNMWZ256rr = 20182,
- VPTESTNMWZ256rrk = 20183,
- VPTESTNMWZrm = 20184,
- VPTESTNMWZrmk = 20185,
- VPTESTNMWZrr = 20186,
- VPTESTNMWZrrk = 20187,
- VPTESTYrm = 20188,
- VPTESTYrr = 20189,
- VPTESTrm = 20190,
- VPTESTrr = 20191,
- VPUNPCKHBWYrm = 20192,
- VPUNPCKHBWYrr = 20193,
- VPUNPCKHBWZ128rm = 20194,
- VPUNPCKHBWZ128rmk = 20195,
- VPUNPCKHBWZ128rmkz = 20196,
- VPUNPCKHBWZ128rr = 20197,
- VPUNPCKHBWZ128rrk = 20198,
- VPUNPCKHBWZ128rrkz = 20199,
- VPUNPCKHBWZ256rm = 20200,
- VPUNPCKHBWZ256rmk = 20201,
- VPUNPCKHBWZ256rmkz = 20202,
- VPUNPCKHBWZ256rr = 20203,
- VPUNPCKHBWZ256rrk = 20204,
- VPUNPCKHBWZ256rrkz = 20205,
- VPUNPCKHBWZrm = 20206,
- VPUNPCKHBWZrmk = 20207,
- VPUNPCKHBWZrmkz = 20208,
- VPUNPCKHBWZrr = 20209,
- VPUNPCKHBWZrrk = 20210,
- VPUNPCKHBWZrrkz = 20211,
- VPUNPCKHBWrm = 20212,
- VPUNPCKHBWrr = 20213,
- VPUNPCKHDQYrm = 20214,
- VPUNPCKHDQYrr = 20215,
- VPUNPCKHDQZ128rm = 20216,
- VPUNPCKHDQZ128rmb = 20217,
- VPUNPCKHDQZ128rmbk = 20218,
- VPUNPCKHDQZ128rmbkz = 20219,
- VPUNPCKHDQZ128rmk = 20220,
- VPUNPCKHDQZ128rmkz = 20221,
- VPUNPCKHDQZ128rr = 20222,
- VPUNPCKHDQZ128rrk = 20223,
- VPUNPCKHDQZ128rrkz = 20224,
- VPUNPCKHDQZ256rm = 20225,
- VPUNPCKHDQZ256rmb = 20226,
- VPUNPCKHDQZ256rmbk = 20227,
- VPUNPCKHDQZ256rmbkz = 20228,
- VPUNPCKHDQZ256rmk = 20229,
- VPUNPCKHDQZ256rmkz = 20230,
- VPUNPCKHDQZ256rr = 20231,
- VPUNPCKHDQZ256rrk = 20232,
- VPUNPCKHDQZ256rrkz = 20233,
- VPUNPCKHDQZrm = 20234,
- VPUNPCKHDQZrmb = 20235,
- VPUNPCKHDQZrmbk = 20236,
- VPUNPCKHDQZrmbkz = 20237,
- VPUNPCKHDQZrmk = 20238,
- VPUNPCKHDQZrmkz = 20239,
- VPUNPCKHDQZrr = 20240,
- VPUNPCKHDQZrrk = 20241,
- VPUNPCKHDQZrrkz = 20242,
- VPUNPCKHDQrm = 20243,
- VPUNPCKHDQrr = 20244,
- VPUNPCKHQDQYrm = 20245,
- VPUNPCKHQDQYrr = 20246,
- VPUNPCKHQDQZ128rm = 20247,
- VPUNPCKHQDQZ128rmb = 20248,
- VPUNPCKHQDQZ128rmbk = 20249,
- VPUNPCKHQDQZ128rmbkz = 20250,
- VPUNPCKHQDQZ128rmk = 20251,
- VPUNPCKHQDQZ128rmkz = 20252,
- VPUNPCKHQDQZ128rr = 20253,
- VPUNPCKHQDQZ128rrk = 20254,
- VPUNPCKHQDQZ128rrkz = 20255,
- VPUNPCKHQDQZ256rm = 20256,
- VPUNPCKHQDQZ256rmb = 20257,
- VPUNPCKHQDQZ256rmbk = 20258,
- VPUNPCKHQDQZ256rmbkz = 20259,
- VPUNPCKHQDQZ256rmk = 20260,
- VPUNPCKHQDQZ256rmkz = 20261,
- VPUNPCKHQDQZ256rr = 20262,
- VPUNPCKHQDQZ256rrk = 20263,
- VPUNPCKHQDQZ256rrkz = 20264,
- VPUNPCKHQDQZrm = 20265,
- VPUNPCKHQDQZrmb = 20266,
- VPUNPCKHQDQZrmbk = 20267,
- VPUNPCKHQDQZrmbkz = 20268,
- VPUNPCKHQDQZrmk = 20269,
- VPUNPCKHQDQZrmkz = 20270,
- VPUNPCKHQDQZrr = 20271,
- VPUNPCKHQDQZrrk = 20272,
- VPUNPCKHQDQZrrkz = 20273,
- VPUNPCKHQDQrm = 20274,
- VPUNPCKHQDQrr = 20275,
- VPUNPCKHWDYrm = 20276,
- VPUNPCKHWDYrr = 20277,
- VPUNPCKHWDZ128rm = 20278,
- VPUNPCKHWDZ128rmk = 20279,
- VPUNPCKHWDZ128rmkz = 20280,
- VPUNPCKHWDZ128rr = 20281,
- VPUNPCKHWDZ128rrk = 20282,
- VPUNPCKHWDZ128rrkz = 20283,
- VPUNPCKHWDZ256rm = 20284,
- VPUNPCKHWDZ256rmk = 20285,
- VPUNPCKHWDZ256rmkz = 20286,
- VPUNPCKHWDZ256rr = 20287,
- VPUNPCKHWDZ256rrk = 20288,
- VPUNPCKHWDZ256rrkz = 20289,
- VPUNPCKHWDZrm = 20290,
- VPUNPCKHWDZrmk = 20291,
- VPUNPCKHWDZrmkz = 20292,
- VPUNPCKHWDZrr = 20293,
- VPUNPCKHWDZrrk = 20294,
- VPUNPCKHWDZrrkz = 20295,
- VPUNPCKHWDrm = 20296,
- VPUNPCKHWDrr = 20297,
- VPUNPCKLBWYrm = 20298,
- VPUNPCKLBWYrr = 20299,
- VPUNPCKLBWZ128rm = 20300,
- VPUNPCKLBWZ128rmk = 20301,
- VPUNPCKLBWZ128rmkz = 20302,
- VPUNPCKLBWZ128rr = 20303,
- VPUNPCKLBWZ128rrk = 20304,
- VPUNPCKLBWZ128rrkz = 20305,
- VPUNPCKLBWZ256rm = 20306,
- VPUNPCKLBWZ256rmk = 20307,
- VPUNPCKLBWZ256rmkz = 20308,
- VPUNPCKLBWZ256rr = 20309,
- VPUNPCKLBWZ256rrk = 20310,
- VPUNPCKLBWZ256rrkz = 20311,
- VPUNPCKLBWZrm = 20312,
- VPUNPCKLBWZrmk = 20313,
- VPUNPCKLBWZrmkz = 20314,
- VPUNPCKLBWZrr = 20315,
- VPUNPCKLBWZrrk = 20316,
- VPUNPCKLBWZrrkz = 20317,
- VPUNPCKLBWrm = 20318,
- VPUNPCKLBWrr = 20319,
- VPUNPCKLDQYrm = 20320,
- VPUNPCKLDQYrr = 20321,
- VPUNPCKLDQZ128rm = 20322,
- VPUNPCKLDQZ128rmb = 20323,
- VPUNPCKLDQZ128rmbk = 20324,
- VPUNPCKLDQZ128rmbkz = 20325,
- VPUNPCKLDQZ128rmk = 20326,
- VPUNPCKLDQZ128rmkz = 20327,
- VPUNPCKLDQZ128rr = 20328,
- VPUNPCKLDQZ128rrk = 20329,
- VPUNPCKLDQZ128rrkz = 20330,
- VPUNPCKLDQZ256rm = 20331,
- VPUNPCKLDQZ256rmb = 20332,
- VPUNPCKLDQZ256rmbk = 20333,
- VPUNPCKLDQZ256rmbkz = 20334,
- VPUNPCKLDQZ256rmk = 20335,
- VPUNPCKLDQZ256rmkz = 20336,
- VPUNPCKLDQZ256rr = 20337,
- VPUNPCKLDQZ256rrk = 20338,
- VPUNPCKLDQZ256rrkz = 20339,
- VPUNPCKLDQZrm = 20340,
- VPUNPCKLDQZrmb = 20341,
- VPUNPCKLDQZrmbk = 20342,
- VPUNPCKLDQZrmbkz = 20343,
- VPUNPCKLDQZrmk = 20344,
- VPUNPCKLDQZrmkz = 20345,
- VPUNPCKLDQZrr = 20346,
- VPUNPCKLDQZrrk = 20347,
- VPUNPCKLDQZrrkz = 20348,
- VPUNPCKLDQrm = 20349,
- VPUNPCKLDQrr = 20350,
- VPUNPCKLQDQYrm = 20351,
- VPUNPCKLQDQYrr = 20352,
- VPUNPCKLQDQZ128rm = 20353,
- VPUNPCKLQDQZ128rmb = 20354,
- VPUNPCKLQDQZ128rmbk = 20355,
- VPUNPCKLQDQZ128rmbkz = 20356,
- VPUNPCKLQDQZ128rmk = 20357,
- VPUNPCKLQDQZ128rmkz = 20358,
- VPUNPCKLQDQZ128rr = 20359,
- VPUNPCKLQDQZ128rrk = 20360,
- VPUNPCKLQDQZ128rrkz = 20361,
- VPUNPCKLQDQZ256rm = 20362,
- VPUNPCKLQDQZ256rmb = 20363,
- VPUNPCKLQDQZ256rmbk = 20364,
- VPUNPCKLQDQZ256rmbkz = 20365,
- VPUNPCKLQDQZ256rmk = 20366,
- VPUNPCKLQDQZ256rmkz = 20367,
- VPUNPCKLQDQZ256rr = 20368,
- VPUNPCKLQDQZ256rrk = 20369,
- VPUNPCKLQDQZ256rrkz = 20370,
- VPUNPCKLQDQZrm = 20371,
- VPUNPCKLQDQZrmb = 20372,
- VPUNPCKLQDQZrmbk = 20373,
- VPUNPCKLQDQZrmbkz = 20374,
- VPUNPCKLQDQZrmk = 20375,
- VPUNPCKLQDQZrmkz = 20376,
- VPUNPCKLQDQZrr = 20377,
- VPUNPCKLQDQZrrk = 20378,
- VPUNPCKLQDQZrrkz = 20379,
- VPUNPCKLQDQrm = 20380,
- VPUNPCKLQDQrr = 20381,
- VPUNPCKLWDYrm = 20382,
- VPUNPCKLWDYrr = 20383,
- VPUNPCKLWDZ128rm = 20384,
- VPUNPCKLWDZ128rmk = 20385,
- VPUNPCKLWDZ128rmkz = 20386,
- VPUNPCKLWDZ128rr = 20387,
- VPUNPCKLWDZ128rrk = 20388,
- VPUNPCKLWDZ128rrkz = 20389,
- VPUNPCKLWDZ256rm = 20390,
- VPUNPCKLWDZ256rmk = 20391,
- VPUNPCKLWDZ256rmkz = 20392,
- VPUNPCKLWDZ256rr = 20393,
- VPUNPCKLWDZ256rrk = 20394,
- VPUNPCKLWDZ256rrkz = 20395,
- VPUNPCKLWDZrm = 20396,
- VPUNPCKLWDZrmk = 20397,
- VPUNPCKLWDZrmkz = 20398,
- VPUNPCKLWDZrr = 20399,
- VPUNPCKLWDZrrk = 20400,
- VPUNPCKLWDZrrkz = 20401,
- VPUNPCKLWDrm = 20402,
- VPUNPCKLWDrr = 20403,
- VPXORDZ128rm = 20404,
- VPXORDZ128rmb = 20405,
- VPXORDZ128rmbk = 20406,
- VPXORDZ128rmbkz = 20407,
- VPXORDZ128rmk = 20408,
- VPXORDZ128rmkz = 20409,
- VPXORDZ128rr = 20410,
- VPXORDZ128rrk = 20411,
- VPXORDZ128rrkz = 20412,
- VPXORDZ256rm = 20413,
- VPXORDZ256rmb = 20414,
- VPXORDZ256rmbk = 20415,
- VPXORDZ256rmbkz = 20416,
- VPXORDZ256rmk = 20417,
- VPXORDZ256rmkz = 20418,
- VPXORDZ256rr = 20419,
- VPXORDZ256rrk = 20420,
- VPXORDZ256rrkz = 20421,
- VPXORDZrm = 20422,
- VPXORDZrmb = 20423,
- VPXORDZrmbk = 20424,
- VPXORDZrmbkz = 20425,
- VPXORDZrmk = 20426,
- VPXORDZrmkz = 20427,
- VPXORDZrr = 20428,
- VPXORDZrrk = 20429,
- VPXORDZrrkz = 20430,
- VPXORQZ128rm = 20431,
- VPXORQZ128rmb = 20432,
- VPXORQZ128rmbk = 20433,
- VPXORQZ128rmbkz = 20434,
- VPXORQZ128rmk = 20435,
- VPXORQZ128rmkz = 20436,
- VPXORQZ128rr = 20437,
- VPXORQZ128rrk = 20438,
- VPXORQZ128rrkz = 20439,
- VPXORQZ256rm = 20440,
- VPXORQZ256rmb = 20441,
- VPXORQZ256rmbk = 20442,
- VPXORQZ256rmbkz = 20443,
- VPXORQZ256rmk = 20444,
- VPXORQZ256rmkz = 20445,
- VPXORQZ256rr = 20446,
- VPXORQZ256rrk = 20447,
- VPXORQZ256rrkz = 20448,
- VPXORQZrm = 20449,
- VPXORQZrmb = 20450,
- VPXORQZrmbk = 20451,
- VPXORQZrmbkz = 20452,
- VPXORQZrmk = 20453,
- VPXORQZrmkz = 20454,
- VPXORQZrr = 20455,
- VPXORQZrrk = 20456,
- VPXORQZrrkz = 20457,
- VPXORYrm = 20458,
- VPXORYrr = 20459,
- VPXORrm = 20460,
- VPXORrr = 20461,
- VRANGEPDZ128rmbi = 20462,
- VRANGEPDZ128rmbik = 20463,
- VRANGEPDZ128rmbikz = 20464,
- VRANGEPDZ128rmi = 20465,
- VRANGEPDZ128rmik = 20466,
- VRANGEPDZ128rmikz = 20467,
- VRANGEPDZ128rri = 20468,
- VRANGEPDZ128rrik = 20469,
- VRANGEPDZ128rrikz = 20470,
- VRANGEPDZ256rmbi = 20471,
- VRANGEPDZ256rmbik = 20472,
- VRANGEPDZ256rmbikz = 20473,
- VRANGEPDZ256rmi = 20474,
- VRANGEPDZ256rmik = 20475,
- VRANGEPDZ256rmikz = 20476,
- VRANGEPDZ256rri = 20477,
- VRANGEPDZ256rrik = 20478,
- VRANGEPDZ256rrikz = 20479,
- VRANGEPDZrmbi = 20480,
- VRANGEPDZrmbik = 20481,
- VRANGEPDZrmbikz = 20482,
- VRANGEPDZrmi = 20483,
- VRANGEPDZrmik = 20484,
- VRANGEPDZrmikz = 20485,
- VRANGEPDZrri = 20486,
- VRANGEPDZrrib = 20487,
- VRANGEPDZrribk = 20488,
- VRANGEPDZrribkz = 20489,
- VRANGEPDZrrik = 20490,
- VRANGEPDZrrikz = 20491,
- VRANGEPSZ128rmbi = 20492,
- VRANGEPSZ128rmbik = 20493,
- VRANGEPSZ128rmbikz = 20494,
- VRANGEPSZ128rmi = 20495,
- VRANGEPSZ128rmik = 20496,
- VRANGEPSZ128rmikz = 20497,
- VRANGEPSZ128rri = 20498,
- VRANGEPSZ128rrik = 20499,
- VRANGEPSZ128rrikz = 20500,
- VRANGEPSZ256rmbi = 20501,
- VRANGEPSZ256rmbik = 20502,
- VRANGEPSZ256rmbikz = 20503,
- VRANGEPSZ256rmi = 20504,
- VRANGEPSZ256rmik = 20505,
- VRANGEPSZ256rmikz = 20506,
- VRANGEPSZ256rri = 20507,
- VRANGEPSZ256rrik = 20508,
- VRANGEPSZ256rrikz = 20509,
- VRANGEPSZrmbi = 20510,
- VRANGEPSZrmbik = 20511,
- VRANGEPSZrmbikz = 20512,
- VRANGEPSZrmi = 20513,
- VRANGEPSZrmik = 20514,
- VRANGEPSZrmikz = 20515,
- VRANGEPSZrri = 20516,
- VRANGEPSZrrib = 20517,
- VRANGEPSZrribk = 20518,
- VRANGEPSZrribkz = 20519,
- VRANGEPSZrrik = 20520,
- VRANGEPSZrrikz = 20521,
- VRANGESDZrmi = 20522,
- VRANGESDZrmik = 20523,
- VRANGESDZrmikz = 20524,
- VRANGESDZrri = 20525,
- VRANGESDZrrib = 20526,
- VRANGESDZrribk = 20527,
- VRANGESDZrribkz = 20528,
- VRANGESDZrrik = 20529,
- VRANGESDZrrikz = 20530,
- VRANGESSZrmi = 20531,
- VRANGESSZrmik = 20532,
- VRANGESSZrmikz = 20533,
- VRANGESSZrri = 20534,
- VRANGESSZrrib = 20535,
- VRANGESSZrribk = 20536,
- VRANGESSZrribkz = 20537,
- VRANGESSZrrik = 20538,
- VRANGESSZrrikz = 20539,
- VRCP14PDZ128m = 20540,
- VRCP14PDZ128mb = 20541,
- VRCP14PDZ128mbk = 20542,
- VRCP14PDZ128mbkz = 20543,
- VRCP14PDZ128mk = 20544,
- VRCP14PDZ128mkz = 20545,
- VRCP14PDZ128r = 20546,
- VRCP14PDZ128rk = 20547,
- VRCP14PDZ128rkz = 20548,
- VRCP14PDZ256m = 20549,
- VRCP14PDZ256mb = 20550,
- VRCP14PDZ256mbk = 20551,
- VRCP14PDZ256mbkz = 20552,
- VRCP14PDZ256mk = 20553,
- VRCP14PDZ256mkz = 20554,
- VRCP14PDZ256r = 20555,
- VRCP14PDZ256rk = 20556,
- VRCP14PDZ256rkz = 20557,
- VRCP14PDZm = 20558,
- VRCP14PDZmb = 20559,
- VRCP14PDZmbk = 20560,
- VRCP14PDZmbkz = 20561,
- VRCP14PDZmk = 20562,
- VRCP14PDZmkz = 20563,
- VRCP14PDZr = 20564,
- VRCP14PDZrk = 20565,
- VRCP14PDZrkz = 20566,
- VRCP14PSZ128m = 20567,
- VRCP14PSZ128mb = 20568,
- VRCP14PSZ128mbk = 20569,
- VRCP14PSZ128mbkz = 20570,
- VRCP14PSZ128mk = 20571,
- VRCP14PSZ128mkz = 20572,
- VRCP14PSZ128r = 20573,
- VRCP14PSZ128rk = 20574,
- VRCP14PSZ128rkz = 20575,
- VRCP14PSZ256m = 20576,
- VRCP14PSZ256mb = 20577,
- VRCP14PSZ256mbk = 20578,
- VRCP14PSZ256mbkz = 20579,
- VRCP14PSZ256mk = 20580,
- VRCP14PSZ256mkz = 20581,
- VRCP14PSZ256r = 20582,
- VRCP14PSZ256rk = 20583,
- VRCP14PSZ256rkz = 20584,
- VRCP14PSZm = 20585,
- VRCP14PSZmb = 20586,
- VRCP14PSZmbk = 20587,
- VRCP14PSZmbkz = 20588,
- VRCP14PSZmk = 20589,
- VRCP14PSZmkz = 20590,
- VRCP14PSZr = 20591,
- VRCP14PSZrk = 20592,
- VRCP14PSZrkz = 20593,
- VRCP14SDZrm = 20594,
- VRCP14SDZrmk = 20595,
- VRCP14SDZrmkz = 20596,
- VRCP14SDZrr = 20597,
- VRCP14SDZrrk = 20598,
- VRCP14SDZrrkz = 20599,
- VRCP14SSZrm = 20600,
- VRCP14SSZrmk = 20601,
- VRCP14SSZrmkz = 20602,
- VRCP14SSZrr = 20603,
- VRCP14SSZrrk = 20604,
- VRCP14SSZrrkz = 20605,
- VRCP28PDZm = 20606,
- VRCP28PDZmb = 20607,
- VRCP28PDZmbk = 20608,
- VRCP28PDZmbkz = 20609,
- VRCP28PDZmk = 20610,
- VRCP28PDZmkz = 20611,
- VRCP28PDZr = 20612,
- VRCP28PDZrb = 20613,
- VRCP28PDZrbk = 20614,
- VRCP28PDZrbkz = 20615,
- VRCP28PDZrk = 20616,
- VRCP28PDZrkz = 20617,
- VRCP28PSZm = 20618,
- VRCP28PSZmb = 20619,
- VRCP28PSZmbk = 20620,
- VRCP28PSZmbkz = 20621,
- VRCP28PSZmk = 20622,
- VRCP28PSZmkz = 20623,
- VRCP28PSZr = 20624,
- VRCP28PSZrb = 20625,
- VRCP28PSZrbk = 20626,
- VRCP28PSZrbkz = 20627,
- VRCP28PSZrk = 20628,
- VRCP28PSZrkz = 20629,
- VRCP28SDZm = 20630,
- VRCP28SDZmk = 20631,
- VRCP28SDZmkz = 20632,
- VRCP28SDZr = 20633,
- VRCP28SDZrb = 20634,
- VRCP28SDZrbk = 20635,
- VRCP28SDZrbkz = 20636,
- VRCP28SDZrk = 20637,
- VRCP28SDZrkz = 20638,
- VRCP28SSZm = 20639,
- VRCP28SSZmk = 20640,
- VRCP28SSZmkz = 20641,
- VRCP28SSZr = 20642,
- VRCP28SSZrb = 20643,
- VRCP28SSZrbk = 20644,
- VRCP28SSZrbkz = 20645,
- VRCP28SSZrk = 20646,
- VRCP28SSZrkz = 20647,
- VRCPBF16Z128m = 20648,
- VRCPBF16Z128mb = 20649,
- VRCPBF16Z128mbk = 20650,
- VRCPBF16Z128mbkz = 20651,
- VRCPBF16Z128mk = 20652,
- VRCPBF16Z128mkz = 20653,
- VRCPBF16Z128r = 20654,
- VRCPBF16Z128rk = 20655,
- VRCPBF16Z128rkz = 20656,
- VRCPBF16Z256m = 20657,
- VRCPBF16Z256mb = 20658,
- VRCPBF16Z256mbk = 20659,
- VRCPBF16Z256mbkz = 20660,
- VRCPBF16Z256mk = 20661,
- VRCPBF16Z256mkz = 20662,
- VRCPBF16Z256r = 20663,
- VRCPBF16Z256rk = 20664,
- VRCPBF16Z256rkz = 20665,
- VRCPBF16Zm = 20666,
- VRCPBF16Zmb = 20667,
- VRCPBF16Zmbk = 20668,
- VRCPBF16Zmbkz = 20669,
- VRCPBF16Zmk = 20670,
- VRCPBF16Zmkz = 20671,
- VRCPBF16Zr = 20672,
- VRCPBF16Zrk = 20673,
- VRCPBF16Zrkz = 20674,
- VRCPPHZ128m = 20675,
- VRCPPHZ128mb = 20676,
- VRCPPHZ128mbk = 20677,
- VRCPPHZ128mbkz = 20678,
- VRCPPHZ128mk = 20679,
- VRCPPHZ128mkz = 20680,
- VRCPPHZ128r = 20681,
- VRCPPHZ128rk = 20682,
- VRCPPHZ128rkz = 20683,
- VRCPPHZ256m = 20684,
- VRCPPHZ256mb = 20685,
- VRCPPHZ256mbk = 20686,
- VRCPPHZ256mbkz = 20687,
- VRCPPHZ256mk = 20688,
- VRCPPHZ256mkz = 20689,
- VRCPPHZ256r = 20690,
- VRCPPHZ256rk = 20691,
- VRCPPHZ256rkz = 20692,
- VRCPPHZm = 20693,
- VRCPPHZmb = 20694,
- VRCPPHZmbk = 20695,
- VRCPPHZmbkz = 20696,
- VRCPPHZmk = 20697,
- VRCPPHZmkz = 20698,
- VRCPPHZr = 20699,
- VRCPPHZrk = 20700,
- VRCPPHZrkz = 20701,
- VRCPPSYm = 20702,
- VRCPPSYr = 20703,
- VRCPPSm = 20704,
- VRCPPSr = 20705,
- VRCPSHZrm = 20706,
- VRCPSHZrmk = 20707,
- VRCPSHZrmkz = 20708,
- VRCPSHZrr = 20709,
- VRCPSHZrrk = 20710,
- VRCPSHZrrkz = 20711,
- VRCPSSm = 20712,
- VRCPSSm_Int = 20713,
- VRCPSSr = 20714,
- VRCPSSr_Int = 20715,
- VREDUCEBF16Z128rmbi = 20716,
- VREDUCEBF16Z128rmbik = 20717,
- VREDUCEBF16Z128rmbikz = 20718,
- VREDUCEBF16Z128rmi = 20719,
- VREDUCEBF16Z128rmik = 20720,
- VREDUCEBF16Z128rmikz = 20721,
- VREDUCEBF16Z128rri = 20722,
- VREDUCEBF16Z128rrik = 20723,
- VREDUCEBF16Z128rrikz = 20724,
- VREDUCEBF16Z256rmbi = 20725,
- VREDUCEBF16Z256rmbik = 20726,
- VREDUCEBF16Z256rmbikz = 20727,
- VREDUCEBF16Z256rmi = 20728,
- VREDUCEBF16Z256rmik = 20729,
- VREDUCEBF16Z256rmikz = 20730,
- VREDUCEBF16Z256rri = 20731,
- VREDUCEBF16Z256rrik = 20732,
- VREDUCEBF16Z256rrikz = 20733,
- VREDUCEBF16Zrmbi = 20734,
- VREDUCEBF16Zrmbik = 20735,
- VREDUCEBF16Zrmbikz = 20736,
- VREDUCEBF16Zrmi = 20737,
- VREDUCEBF16Zrmik = 20738,
- VREDUCEBF16Zrmikz = 20739,
- VREDUCEBF16Zrri = 20740,
- VREDUCEBF16Zrrik = 20741,
- VREDUCEBF16Zrrikz = 20742,
- VREDUCEPDZ128rmbi = 20743,
- VREDUCEPDZ128rmbik = 20744,
- VREDUCEPDZ128rmbikz = 20745,
- VREDUCEPDZ128rmi = 20746,
- VREDUCEPDZ128rmik = 20747,
- VREDUCEPDZ128rmikz = 20748,
- VREDUCEPDZ128rri = 20749,
- VREDUCEPDZ128rrik = 20750,
- VREDUCEPDZ128rrikz = 20751,
- VREDUCEPDZ256rmbi = 20752,
- VREDUCEPDZ256rmbik = 20753,
- VREDUCEPDZ256rmbikz = 20754,
- VREDUCEPDZ256rmi = 20755,
- VREDUCEPDZ256rmik = 20756,
- VREDUCEPDZ256rmikz = 20757,
- VREDUCEPDZ256rri = 20758,
- VREDUCEPDZ256rrik = 20759,
- VREDUCEPDZ256rrikz = 20760,
- VREDUCEPDZrmbi = 20761,
- VREDUCEPDZrmbik = 20762,
- VREDUCEPDZrmbikz = 20763,
- VREDUCEPDZrmi = 20764,
- VREDUCEPDZrmik = 20765,
- VREDUCEPDZrmikz = 20766,
- VREDUCEPDZrri = 20767,
- VREDUCEPDZrrib = 20768,
- VREDUCEPDZrribk = 20769,
- VREDUCEPDZrribkz = 20770,
- VREDUCEPDZrrik = 20771,
- VREDUCEPDZrrikz = 20772,
- VREDUCEPHZ128rmbi = 20773,
- VREDUCEPHZ128rmbik = 20774,
- VREDUCEPHZ128rmbikz = 20775,
- VREDUCEPHZ128rmi = 20776,
- VREDUCEPHZ128rmik = 20777,
- VREDUCEPHZ128rmikz = 20778,
- VREDUCEPHZ128rri = 20779,
- VREDUCEPHZ128rrik = 20780,
- VREDUCEPHZ128rrikz = 20781,
- VREDUCEPHZ256rmbi = 20782,
- VREDUCEPHZ256rmbik = 20783,
- VREDUCEPHZ256rmbikz = 20784,
- VREDUCEPHZ256rmi = 20785,
- VREDUCEPHZ256rmik = 20786,
- VREDUCEPHZ256rmikz = 20787,
- VREDUCEPHZ256rri = 20788,
- VREDUCEPHZ256rrik = 20789,
- VREDUCEPHZ256rrikz = 20790,
- VREDUCEPHZrmbi = 20791,
- VREDUCEPHZrmbik = 20792,
- VREDUCEPHZrmbikz = 20793,
- VREDUCEPHZrmi = 20794,
- VREDUCEPHZrmik = 20795,
- VREDUCEPHZrmikz = 20796,
- VREDUCEPHZrri = 20797,
- VREDUCEPHZrrib = 20798,
- VREDUCEPHZrribk = 20799,
- VREDUCEPHZrribkz = 20800,
- VREDUCEPHZrrik = 20801,
- VREDUCEPHZrrikz = 20802,
- VREDUCEPSZ128rmbi = 20803,
- VREDUCEPSZ128rmbik = 20804,
- VREDUCEPSZ128rmbikz = 20805,
- VREDUCEPSZ128rmi = 20806,
- VREDUCEPSZ128rmik = 20807,
- VREDUCEPSZ128rmikz = 20808,
- VREDUCEPSZ128rri = 20809,
- VREDUCEPSZ128rrik = 20810,
- VREDUCEPSZ128rrikz = 20811,
- VREDUCEPSZ256rmbi = 20812,
- VREDUCEPSZ256rmbik = 20813,
- VREDUCEPSZ256rmbikz = 20814,
- VREDUCEPSZ256rmi = 20815,
- VREDUCEPSZ256rmik = 20816,
- VREDUCEPSZ256rmikz = 20817,
- VREDUCEPSZ256rri = 20818,
- VREDUCEPSZ256rrik = 20819,
- VREDUCEPSZ256rrikz = 20820,
- VREDUCEPSZrmbi = 20821,
- VREDUCEPSZrmbik = 20822,
- VREDUCEPSZrmbikz = 20823,
- VREDUCEPSZrmi = 20824,
- VREDUCEPSZrmik = 20825,
- VREDUCEPSZrmikz = 20826,
- VREDUCEPSZrri = 20827,
- VREDUCEPSZrrib = 20828,
- VREDUCEPSZrribk = 20829,
- VREDUCEPSZrribkz = 20830,
- VREDUCEPSZrrik = 20831,
- VREDUCEPSZrrikz = 20832,
- VREDUCESDZrmi = 20833,
- VREDUCESDZrmik = 20834,
- VREDUCESDZrmikz = 20835,
- VREDUCESDZrri = 20836,
- VREDUCESDZrrib = 20837,
- VREDUCESDZrribk = 20838,
- VREDUCESDZrribkz = 20839,
- VREDUCESDZrrik = 20840,
- VREDUCESDZrrikz = 20841,
- VREDUCESHZrmi = 20842,
- VREDUCESHZrmik = 20843,
- VREDUCESHZrmikz = 20844,
- VREDUCESHZrri = 20845,
- VREDUCESHZrrib = 20846,
- VREDUCESHZrribk = 20847,
- VREDUCESHZrribkz = 20848,
- VREDUCESHZrrik = 20849,
- VREDUCESHZrrikz = 20850,
- VREDUCESSZrmi = 20851,
- VREDUCESSZrmik = 20852,
- VREDUCESSZrmikz = 20853,
- VREDUCESSZrri = 20854,
- VREDUCESSZrrib = 20855,
- VREDUCESSZrribk = 20856,
- VREDUCESSZrribkz = 20857,
- VREDUCESSZrrik = 20858,
- VREDUCESSZrrikz = 20859,
- VRNDSCALEBF16Z128rmbi = 20860,
- VRNDSCALEBF16Z128rmbik = 20861,
- VRNDSCALEBF16Z128rmbikz = 20862,
- VRNDSCALEBF16Z128rmi = 20863,
- VRNDSCALEBF16Z128rmik = 20864,
- VRNDSCALEBF16Z128rmikz = 20865,
- VRNDSCALEBF16Z128rri = 20866,
- VRNDSCALEBF16Z128rrik = 20867,
- VRNDSCALEBF16Z128rrikz = 20868,
- VRNDSCALEBF16Z256rmbi = 20869,
- VRNDSCALEBF16Z256rmbik = 20870,
- VRNDSCALEBF16Z256rmbikz = 20871,
- VRNDSCALEBF16Z256rmi = 20872,
- VRNDSCALEBF16Z256rmik = 20873,
- VRNDSCALEBF16Z256rmikz = 20874,
- VRNDSCALEBF16Z256rri = 20875,
- VRNDSCALEBF16Z256rrik = 20876,
- VRNDSCALEBF16Z256rrikz = 20877,
- VRNDSCALEBF16Zrmbi = 20878,
- VRNDSCALEBF16Zrmbik = 20879,
- VRNDSCALEBF16Zrmbikz = 20880,
- VRNDSCALEBF16Zrmi = 20881,
- VRNDSCALEBF16Zrmik = 20882,
- VRNDSCALEBF16Zrmikz = 20883,
- VRNDSCALEBF16Zrri = 20884,
- VRNDSCALEBF16Zrrik = 20885,
- VRNDSCALEBF16Zrrikz = 20886,
- VRNDSCALEPDZ128rmbi = 20887,
- VRNDSCALEPDZ128rmbik = 20888,
- VRNDSCALEPDZ128rmbikz = 20889,
- VRNDSCALEPDZ128rmi = 20890,
- VRNDSCALEPDZ128rmik = 20891,
- VRNDSCALEPDZ128rmikz = 20892,
- VRNDSCALEPDZ128rri = 20893,
- VRNDSCALEPDZ128rrik = 20894,
- VRNDSCALEPDZ128rrikz = 20895,
- VRNDSCALEPDZ256rmbi = 20896,
- VRNDSCALEPDZ256rmbik = 20897,
- VRNDSCALEPDZ256rmbikz = 20898,
- VRNDSCALEPDZ256rmi = 20899,
- VRNDSCALEPDZ256rmik = 20900,
- VRNDSCALEPDZ256rmikz = 20901,
- VRNDSCALEPDZ256rri = 20902,
- VRNDSCALEPDZ256rrik = 20903,
- VRNDSCALEPDZ256rrikz = 20904,
- VRNDSCALEPDZrmbi = 20905,
- VRNDSCALEPDZrmbik = 20906,
- VRNDSCALEPDZrmbikz = 20907,
- VRNDSCALEPDZrmi = 20908,
- VRNDSCALEPDZrmik = 20909,
- VRNDSCALEPDZrmikz = 20910,
- VRNDSCALEPDZrri = 20911,
- VRNDSCALEPDZrrib = 20912,
- VRNDSCALEPDZrribk = 20913,
- VRNDSCALEPDZrribkz = 20914,
- VRNDSCALEPDZrrik = 20915,
- VRNDSCALEPDZrrikz = 20916,
- VRNDSCALEPHZ128rmbi = 20917,
- VRNDSCALEPHZ128rmbik = 20918,
- VRNDSCALEPHZ128rmbikz = 20919,
- VRNDSCALEPHZ128rmi = 20920,
- VRNDSCALEPHZ128rmik = 20921,
- VRNDSCALEPHZ128rmikz = 20922,
- VRNDSCALEPHZ128rri = 20923,
- VRNDSCALEPHZ128rrik = 20924,
- VRNDSCALEPHZ128rrikz = 20925,
- VRNDSCALEPHZ256rmbi = 20926,
- VRNDSCALEPHZ256rmbik = 20927,
- VRNDSCALEPHZ256rmbikz = 20928,
- VRNDSCALEPHZ256rmi = 20929,
- VRNDSCALEPHZ256rmik = 20930,
- VRNDSCALEPHZ256rmikz = 20931,
- VRNDSCALEPHZ256rri = 20932,
- VRNDSCALEPHZ256rrik = 20933,
- VRNDSCALEPHZ256rrikz = 20934,
- VRNDSCALEPHZrmbi = 20935,
- VRNDSCALEPHZrmbik = 20936,
- VRNDSCALEPHZrmbikz = 20937,
- VRNDSCALEPHZrmi = 20938,
- VRNDSCALEPHZrmik = 20939,
- VRNDSCALEPHZrmikz = 20940,
- VRNDSCALEPHZrri = 20941,
- VRNDSCALEPHZrrib = 20942,
- VRNDSCALEPHZrribk = 20943,
- VRNDSCALEPHZrribkz = 20944,
- VRNDSCALEPHZrrik = 20945,
- VRNDSCALEPHZrrikz = 20946,
- VRNDSCALEPSZ128rmbi = 20947,
- VRNDSCALEPSZ128rmbik = 20948,
- VRNDSCALEPSZ128rmbikz = 20949,
- VRNDSCALEPSZ128rmi = 20950,
- VRNDSCALEPSZ128rmik = 20951,
- VRNDSCALEPSZ128rmikz = 20952,
- VRNDSCALEPSZ128rri = 20953,
- VRNDSCALEPSZ128rrik = 20954,
- VRNDSCALEPSZ128rrikz = 20955,
- VRNDSCALEPSZ256rmbi = 20956,
- VRNDSCALEPSZ256rmbik = 20957,
- VRNDSCALEPSZ256rmbikz = 20958,
- VRNDSCALEPSZ256rmi = 20959,
- VRNDSCALEPSZ256rmik = 20960,
- VRNDSCALEPSZ256rmikz = 20961,
- VRNDSCALEPSZ256rri = 20962,
- VRNDSCALEPSZ256rrik = 20963,
- VRNDSCALEPSZ256rrikz = 20964,
- VRNDSCALEPSZrmbi = 20965,
- VRNDSCALEPSZrmbik = 20966,
- VRNDSCALEPSZrmbikz = 20967,
- VRNDSCALEPSZrmi = 20968,
- VRNDSCALEPSZrmik = 20969,
- VRNDSCALEPSZrmikz = 20970,
- VRNDSCALEPSZrri = 20971,
- VRNDSCALEPSZrrib = 20972,
- VRNDSCALEPSZrribk = 20973,
- VRNDSCALEPSZrribkz = 20974,
- VRNDSCALEPSZrrik = 20975,
- VRNDSCALEPSZrrikz = 20976,
- VRNDSCALESDZrmi = 20977,
- VRNDSCALESDZrmi_Int = 20978,
- VRNDSCALESDZrmik_Int = 20979,
- VRNDSCALESDZrmikz_Int = 20980,
- VRNDSCALESDZrri = 20981,
- VRNDSCALESDZrri_Int = 20982,
- VRNDSCALESDZrrib_Int = 20983,
- VRNDSCALESDZrribk_Int = 20984,
- VRNDSCALESDZrribkz_Int = 20985,
- VRNDSCALESDZrrik_Int = 20986,
- VRNDSCALESDZrrikz_Int = 20987,
- VRNDSCALESHZrmi = 20988,
- VRNDSCALESHZrmi_Int = 20989,
- VRNDSCALESHZrmik_Int = 20990,
- VRNDSCALESHZrmikz_Int = 20991,
- VRNDSCALESHZrri = 20992,
- VRNDSCALESHZrri_Int = 20993,
- VRNDSCALESHZrrib_Int = 20994,
- VRNDSCALESHZrribk_Int = 20995,
- VRNDSCALESHZrribkz_Int = 20996,
- VRNDSCALESHZrrik_Int = 20997,
- VRNDSCALESHZrrikz_Int = 20998,
- VRNDSCALESSZrmi = 20999,
- VRNDSCALESSZrmi_Int = 21000,
- VRNDSCALESSZrmik_Int = 21001,
- VRNDSCALESSZrmikz_Int = 21002,
- VRNDSCALESSZrri = 21003,
- VRNDSCALESSZrri_Int = 21004,
- VRNDSCALESSZrrib_Int = 21005,
- VRNDSCALESSZrribk_Int = 21006,
- VRNDSCALESSZrribkz_Int = 21007,
- VRNDSCALESSZrrik_Int = 21008,
- VRNDSCALESSZrrikz_Int = 21009,
- VROUNDPDYmi = 21010,
- VROUNDPDYri = 21011,
- VROUNDPDmi = 21012,
- VROUNDPDri = 21013,
- VROUNDPSYmi = 21014,
- VROUNDPSYri = 21015,
- VROUNDPSmi = 21016,
- VROUNDPSri = 21017,
- VROUNDSDmi = 21018,
- VROUNDSDmi_Int = 21019,
- VROUNDSDri = 21020,
- VROUNDSDri_Int = 21021,
- VROUNDSSmi = 21022,
- VROUNDSSmi_Int = 21023,
- VROUNDSSri = 21024,
- VROUNDSSri_Int = 21025,
- VRSQRT14PDZ128m = 21026,
- VRSQRT14PDZ128mb = 21027,
- VRSQRT14PDZ128mbk = 21028,
- VRSQRT14PDZ128mbkz = 21029,
- VRSQRT14PDZ128mk = 21030,
- VRSQRT14PDZ128mkz = 21031,
- VRSQRT14PDZ128r = 21032,
- VRSQRT14PDZ128rk = 21033,
- VRSQRT14PDZ128rkz = 21034,
- VRSQRT14PDZ256m = 21035,
- VRSQRT14PDZ256mb = 21036,
- VRSQRT14PDZ256mbk = 21037,
- VRSQRT14PDZ256mbkz = 21038,
- VRSQRT14PDZ256mk = 21039,
- VRSQRT14PDZ256mkz = 21040,
- VRSQRT14PDZ256r = 21041,
- VRSQRT14PDZ256rk = 21042,
- VRSQRT14PDZ256rkz = 21043,
- VRSQRT14PDZm = 21044,
- VRSQRT14PDZmb = 21045,
- VRSQRT14PDZmbk = 21046,
- VRSQRT14PDZmbkz = 21047,
- VRSQRT14PDZmk = 21048,
- VRSQRT14PDZmkz = 21049,
- VRSQRT14PDZr = 21050,
- VRSQRT14PDZrk = 21051,
- VRSQRT14PDZrkz = 21052,
- VRSQRT14PSZ128m = 21053,
- VRSQRT14PSZ128mb = 21054,
- VRSQRT14PSZ128mbk = 21055,
- VRSQRT14PSZ128mbkz = 21056,
- VRSQRT14PSZ128mk = 21057,
- VRSQRT14PSZ128mkz = 21058,
- VRSQRT14PSZ128r = 21059,
- VRSQRT14PSZ128rk = 21060,
- VRSQRT14PSZ128rkz = 21061,
- VRSQRT14PSZ256m = 21062,
- VRSQRT14PSZ256mb = 21063,
- VRSQRT14PSZ256mbk = 21064,
- VRSQRT14PSZ256mbkz = 21065,
- VRSQRT14PSZ256mk = 21066,
- VRSQRT14PSZ256mkz = 21067,
- VRSQRT14PSZ256r = 21068,
- VRSQRT14PSZ256rk = 21069,
- VRSQRT14PSZ256rkz = 21070,
- VRSQRT14PSZm = 21071,
- VRSQRT14PSZmb = 21072,
- VRSQRT14PSZmbk = 21073,
- VRSQRT14PSZmbkz = 21074,
- VRSQRT14PSZmk = 21075,
- VRSQRT14PSZmkz = 21076,
- VRSQRT14PSZr = 21077,
- VRSQRT14PSZrk = 21078,
- VRSQRT14PSZrkz = 21079,
- VRSQRT14SDZrm = 21080,
- VRSQRT14SDZrmk = 21081,
- VRSQRT14SDZrmkz = 21082,
- VRSQRT14SDZrr = 21083,
- VRSQRT14SDZrrk = 21084,
- VRSQRT14SDZrrkz = 21085,
- VRSQRT14SSZrm = 21086,
- VRSQRT14SSZrmk = 21087,
- VRSQRT14SSZrmkz = 21088,
- VRSQRT14SSZrr = 21089,
- VRSQRT14SSZrrk = 21090,
- VRSQRT14SSZrrkz = 21091,
- VRSQRT28PDZm = 21092,
- VRSQRT28PDZmb = 21093,
- VRSQRT28PDZmbk = 21094,
- VRSQRT28PDZmbkz = 21095,
- VRSQRT28PDZmk = 21096,
- VRSQRT28PDZmkz = 21097,
- VRSQRT28PDZr = 21098,
- VRSQRT28PDZrb = 21099,
- VRSQRT28PDZrbk = 21100,
- VRSQRT28PDZrbkz = 21101,
- VRSQRT28PDZrk = 21102,
- VRSQRT28PDZrkz = 21103,
- VRSQRT28PSZm = 21104,
- VRSQRT28PSZmb = 21105,
- VRSQRT28PSZmbk = 21106,
- VRSQRT28PSZmbkz = 21107,
- VRSQRT28PSZmk = 21108,
- VRSQRT28PSZmkz = 21109,
- VRSQRT28PSZr = 21110,
- VRSQRT28PSZrb = 21111,
- VRSQRT28PSZrbk = 21112,
- VRSQRT28PSZrbkz = 21113,
- VRSQRT28PSZrk = 21114,
- VRSQRT28PSZrkz = 21115,
- VRSQRT28SDZm = 21116,
- VRSQRT28SDZmk = 21117,
- VRSQRT28SDZmkz = 21118,
- VRSQRT28SDZr = 21119,
- VRSQRT28SDZrb = 21120,
- VRSQRT28SDZrbk = 21121,
- VRSQRT28SDZrbkz = 21122,
- VRSQRT28SDZrk = 21123,
- VRSQRT28SDZrkz = 21124,
- VRSQRT28SSZm = 21125,
- VRSQRT28SSZmk = 21126,
- VRSQRT28SSZmkz = 21127,
- VRSQRT28SSZr = 21128,
- VRSQRT28SSZrb = 21129,
- VRSQRT28SSZrbk = 21130,
- VRSQRT28SSZrbkz = 21131,
- VRSQRT28SSZrk = 21132,
- VRSQRT28SSZrkz = 21133,
- VRSQRTBF16Z128m = 21134,
- VRSQRTBF16Z128mb = 21135,
- VRSQRTBF16Z128mbk = 21136,
- VRSQRTBF16Z128mbkz = 21137,
- VRSQRTBF16Z128mk = 21138,
- VRSQRTBF16Z128mkz = 21139,
- VRSQRTBF16Z128r = 21140,
- VRSQRTBF16Z128rk = 21141,
- VRSQRTBF16Z128rkz = 21142,
- VRSQRTBF16Z256m = 21143,
- VRSQRTBF16Z256mb = 21144,
- VRSQRTBF16Z256mbk = 21145,
- VRSQRTBF16Z256mbkz = 21146,
- VRSQRTBF16Z256mk = 21147,
- VRSQRTBF16Z256mkz = 21148,
- VRSQRTBF16Z256r = 21149,
- VRSQRTBF16Z256rk = 21150,
- VRSQRTBF16Z256rkz = 21151,
- VRSQRTBF16Zm = 21152,
- VRSQRTBF16Zmb = 21153,
- VRSQRTBF16Zmbk = 21154,
- VRSQRTBF16Zmbkz = 21155,
- VRSQRTBF16Zmk = 21156,
- VRSQRTBF16Zmkz = 21157,
- VRSQRTBF16Zr = 21158,
- VRSQRTBF16Zrk = 21159,
- VRSQRTBF16Zrkz = 21160,
- VRSQRTPHZ128m = 21161,
- VRSQRTPHZ128mb = 21162,
- VRSQRTPHZ128mbk = 21163,
- VRSQRTPHZ128mbkz = 21164,
- VRSQRTPHZ128mk = 21165,
- VRSQRTPHZ128mkz = 21166,
- VRSQRTPHZ128r = 21167,
- VRSQRTPHZ128rk = 21168,
- VRSQRTPHZ128rkz = 21169,
- VRSQRTPHZ256m = 21170,
- VRSQRTPHZ256mb = 21171,
- VRSQRTPHZ256mbk = 21172,
- VRSQRTPHZ256mbkz = 21173,
- VRSQRTPHZ256mk = 21174,
- VRSQRTPHZ256mkz = 21175,
- VRSQRTPHZ256r = 21176,
- VRSQRTPHZ256rk = 21177,
- VRSQRTPHZ256rkz = 21178,
- VRSQRTPHZm = 21179,
- VRSQRTPHZmb = 21180,
- VRSQRTPHZmbk = 21181,
- VRSQRTPHZmbkz = 21182,
- VRSQRTPHZmk = 21183,
- VRSQRTPHZmkz = 21184,
- VRSQRTPHZr = 21185,
- VRSQRTPHZrk = 21186,
- VRSQRTPHZrkz = 21187,
- VRSQRTPSYm = 21188,
- VRSQRTPSYr = 21189,
- VRSQRTPSm = 21190,
- VRSQRTPSr = 21191,
- VRSQRTSHZrm = 21192,
- VRSQRTSHZrmk = 21193,
- VRSQRTSHZrmkz = 21194,
- VRSQRTSHZrr = 21195,
- VRSQRTSHZrrk = 21196,
- VRSQRTSHZrrkz = 21197,
- VRSQRTSSm = 21198,
- VRSQRTSSm_Int = 21199,
- VRSQRTSSr = 21200,
- VRSQRTSSr_Int = 21201,
- VSCALEFBF16Z128rm = 21202,
- VSCALEFBF16Z128rmb = 21203,
- VSCALEFBF16Z128rmbk = 21204,
- VSCALEFBF16Z128rmbkz = 21205,
- VSCALEFBF16Z128rmk = 21206,
- VSCALEFBF16Z128rmkz = 21207,
- VSCALEFBF16Z128rr = 21208,
- VSCALEFBF16Z128rrk = 21209,
- VSCALEFBF16Z128rrkz = 21210,
- VSCALEFBF16Z256rm = 21211,
- VSCALEFBF16Z256rmb = 21212,
- VSCALEFBF16Z256rmbk = 21213,
- VSCALEFBF16Z256rmbkz = 21214,
- VSCALEFBF16Z256rmk = 21215,
- VSCALEFBF16Z256rmkz = 21216,
- VSCALEFBF16Z256rr = 21217,
- VSCALEFBF16Z256rrk = 21218,
- VSCALEFBF16Z256rrkz = 21219,
- VSCALEFBF16Zrm = 21220,
- VSCALEFBF16Zrmb = 21221,
- VSCALEFBF16Zrmbk = 21222,
- VSCALEFBF16Zrmbkz = 21223,
- VSCALEFBF16Zrmk = 21224,
- VSCALEFBF16Zrmkz = 21225,
- VSCALEFBF16Zrr = 21226,
- VSCALEFBF16Zrrk = 21227,
- VSCALEFBF16Zrrkz = 21228,
- VSCALEFPDZ128rm = 21229,
- VSCALEFPDZ128rmb = 21230,
- VSCALEFPDZ128rmbk = 21231,
- VSCALEFPDZ128rmbkz = 21232,
- VSCALEFPDZ128rmk = 21233,
- VSCALEFPDZ128rmkz = 21234,
- VSCALEFPDZ128rr = 21235,
- VSCALEFPDZ128rrk = 21236,
- VSCALEFPDZ128rrkz = 21237,
- VSCALEFPDZ256rm = 21238,
- VSCALEFPDZ256rmb = 21239,
- VSCALEFPDZ256rmbk = 21240,
- VSCALEFPDZ256rmbkz = 21241,
- VSCALEFPDZ256rmk = 21242,
- VSCALEFPDZ256rmkz = 21243,
- VSCALEFPDZ256rr = 21244,
- VSCALEFPDZ256rrk = 21245,
- VSCALEFPDZ256rrkz = 21246,
- VSCALEFPDZrm = 21247,
- VSCALEFPDZrmb = 21248,
- VSCALEFPDZrmbk = 21249,
- VSCALEFPDZrmbkz = 21250,
- VSCALEFPDZrmk = 21251,
- VSCALEFPDZrmkz = 21252,
- VSCALEFPDZrr = 21253,
- VSCALEFPDZrrb = 21254,
- VSCALEFPDZrrbk = 21255,
- VSCALEFPDZrrbkz = 21256,
- VSCALEFPDZrrk = 21257,
- VSCALEFPDZrrkz = 21258,
- VSCALEFPHZ128rm = 21259,
- VSCALEFPHZ128rmb = 21260,
- VSCALEFPHZ128rmbk = 21261,
- VSCALEFPHZ128rmbkz = 21262,
- VSCALEFPHZ128rmk = 21263,
- VSCALEFPHZ128rmkz = 21264,
- VSCALEFPHZ128rr = 21265,
- VSCALEFPHZ128rrk = 21266,
- VSCALEFPHZ128rrkz = 21267,
- VSCALEFPHZ256rm = 21268,
- VSCALEFPHZ256rmb = 21269,
- VSCALEFPHZ256rmbk = 21270,
- VSCALEFPHZ256rmbkz = 21271,
- VSCALEFPHZ256rmk = 21272,
- VSCALEFPHZ256rmkz = 21273,
- VSCALEFPHZ256rr = 21274,
- VSCALEFPHZ256rrk = 21275,
- VSCALEFPHZ256rrkz = 21276,
- VSCALEFPHZrm = 21277,
- VSCALEFPHZrmb = 21278,
- VSCALEFPHZrmbk = 21279,
- VSCALEFPHZrmbkz = 21280,
- VSCALEFPHZrmk = 21281,
- VSCALEFPHZrmkz = 21282,
- VSCALEFPHZrr = 21283,
- VSCALEFPHZrrb = 21284,
- VSCALEFPHZrrbk = 21285,
- VSCALEFPHZrrbkz = 21286,
- VSCALEFPHZrrk = 21287,
- VSCALEFPHZrrkz = 21288,
- VSCALEFPSZ128rm = 21289,
- VSCALEFPSZ128rmb = 21290,
- VSCALEFPSZ128rmbk = 21291,
- VSCALEFPSZ128rmbkz = 21292,
- VSCALEFPSZ128rmk = 21293,
- VSCALEFPSZ128rmkz = 21294,
- VSCALEFPSZ128rr = 21295,
- VSCALEFPSZ128rrk = 21296,
- VSCALEFPSZ128rrkz = 21297,
- VSCALEFPSZ256rm = 21298,
- VSCALEFPSZ256rmb = 21299,
- VSCALEFPSZ256rmbk = 21300,
- VSCALEFPSZ256rmbkz = 21301,
- VSCALEFPSZ256rmk = 21302,
- VSCALEFPSZ256rmkz = 21303,
- VSCALEFPSZ256rr = 21304,
- VSCALEFPSZ256rrk = 21305,
- VSCALEFPSZ256rrkz = 21306,
- VSCALEFPSZrm = 21307,
- VSCALEFPSZrmb = 21308,
- VSCALEFPSZrmbk = 21309,
- VSCALEFPSZrmbkz = 21310,
- VSCALEFPSZrmk = 21311,
- VSCALEFPSZrmkz = 21312,
- VSCALEFPSZrr = 21313,
- VSCALEFPSZrrb = 21314,
- VSCALEFPSZrrbk = 21315,
- VSCALEFPSZrrbkz = 21316,
- VSCALEFPSZrrk = 21317,
- VSCALEFPSZrrkz = 21318,
- VSCALEFSDZrm = 21319,
- VSCALEFSDZrmk = 21320,
- VSCALEFSDZrmkz = 21321,
- VSCALEFSDZrr = 21322,
- VSCALEFSDZrrb_Int = 21323,
- VSCALEFSDZrrbk_Int = 21324,
- VSCALEFSDZrrbkz_Int = 21325,
- VSCALEFSDZrrk = 21326,
- VSCALEFSDZrrkz = 21327,
- VSCALEFSHZrm = 21328,
- VSCALEFSHZrmk = 21329,
- VSCALEFSHZrmkz = 21330,
- VSCALEFSHZrr = 21331,
- VSCALEFSHZrrb_Int = 21332,
- VSCALEFSHZrrbk_Int = 21333,
- VSCALEFSHZrrbkz_Int = 21334,
- VSCALEFSHZrrk = 21335,
- VSCALEFSHZrrkz = 21336,
- VSCALEFSSZrm = 21337,
- VSCALEFSSZrmk = 21338,
- VSCALEFSSZrmkz = 21339,
- VSCALEFSSZrr = 21340,
- VSCALEFSSZrrb_Int = 21341,
- VSCALEFSSZrrbk_Int = 21342,
- VSCALEFSSZrrbkz_Int = 21343,
- VSCALEFSSZrrk = 21344,
- VSCALEFSSZrrkz = 21345,
- VSCATTERDPDZ128mr = 21346,
- VSCATTERDPDZ256mr = 21347,
- VSCATTERDPDZmr = 21348,
- VSCATTERDPSZ128mr = 21349,
- VSCATTERDPSZ256mr = 21350,
- VSCATTERDPSZmr = 21351,
- VSCATTERPF0DPDm = 21352,
- VSCATTERPF0DPSm = 21353,
- VSCATTERPF0QPDm = 21354,
- VSCATTERPF0QPSm = 21355,
- VSCATTERPF1DPDm = 21356,
- VSCATTERPF1DPSm = 21357,
- VSCATTERPF1QPDm = 21358,
- VSCATTERPF1QPSm = 21359,
- VSCATTERQPDZ128mr = 21360,
- VSCATTERQPDZ256mr = 21361,
- VSCATTERQPDZmr = 21362,
- VSCATTERQPSZ128mr = 21363,
- VSCATTERQPSZ256mr = 21364,
- VSCATTERQPSZmr = 21365,
- VSHA512MSG1rr = 21366,
- VSHA512MSG2rr = 21367,
- VSHA512RNDS2rr = 21368,
- VSHUFF32X4Z256rmbi = 21369,
- VSHUFF32X4Z256rmbik = 21370,
- VSHUFF32X4Z256rmbikz = 21371,
- VSHUFF32X4Z256rmi = 21372,
- VSHUFF32X4Z256rmik = 21373,
- VSHUFF32X4Z256rmikz = 21374,
- VSHUFF32X4Z256rri = 21375,
- VSHUFF32X4Z256rrik = 21376,
- VSHUFF32X4Z256rrikz = 21377,
- VSHUFF32X4Zrmbi = 21378,
- VSHUFF32X4Zrmbik = 21379,
- VSHUFF32X4Zrmbikz = 21380,
- VSHUFF32X4Zrmi = 21381,
- VSHUFF32X4Zrmik = 21382,
- VSHUFF32X4Zrmikz = 21383,
- VSHUFF32X4Zrri = 21384,
- VSHUFF32X4Zrrik = 21385,
- VSHUFF32X4Zrrikz = 21386,
- VSHUFF64X2Z256rmbi = 21387,
- VSHUFF64X2Z256rmbik = 21388,
- VSHUFF64X2Z256rmbikz = 21389,
- VSHUFF64X2Z256rmi = 21390,
- VSHUFF64X2Z256rmik = 21391,
- VSHUFF64X2Z256rmikz = 21392,
- VSHUFF64X2Z256rri = 21393,
- VSHUFF64X2Z256rrik = 21394,
- VSHUFF64X2Z256rrikz = 21395,
- VSHUFF64X2Zrmbi = 21396,
- VSHUFF64X2Zrmbik = 21397,
- VSHUFF64X2Zrmbikz = 21398,
- VSHUFF64X2Zrmi = 21399,
- VSHUFF64X2Zrmik = 21400,
- VSHUFF64X2Zrmikz = 21401,
- VSHUFF64X2Zrri = 21402,
- VSHUFF64X2Zrrik = 21403,
- VSHUFF64X2Zrrikz = 21404,
- VSHUFI32X4Z256rmbi = 21405,
- VSHUFI32X4Z256rmbik = 21406,
- VSHUFI32X4Z256rmbikz = 21407,
- VSHUFI32X4Z256rmi = 21408,
- VSHUFI32X4Z256rmik = 21409,
- VSHUFI32X4Z256rmikz = 21410,
- VSHUFI32X4Z256rri = 21411,
- VSHUFI32X4Z256rrik = 21412,
- VSHUFI32X4Z256rrikz = 21413,
- VSHUFI32X4Zrmbi = 21414,
- VSHUFI32X4Zrmbik = 21415,
- VSHUFI32X4Zrmbikz = 21416,
- VSHUFI32X4Zrmi = 21417,
- VSHUFI32X4Zrmik = 21418,
- VSHUFI32X4Zrmikz = 21419,
- VSHUFI32X4Zrri = 21420,
- VSHUFI32X4Zrrik = 21421,
- VSHUFI32X4Zrrikz = 21422,
- VSHUFI64X2Z256rmbi = 21423,
- VSHUFI64X2Z256rmbik = 21424,
- VSHUFI64X2Z256rmbikz = 21425,
- VSHUFI64X2Z256rmi = 21426,
- VSHUFI64X2Z256rmik = 21427,
- VSHUFI64X2Z256rmikz = 21428,
- VSHUFI64X2Z256rri = 21429,
- VSHUFI64X2Z256rrik = 21430,
- VSHUFI64X2Z256rrikz = 21431,
- VSHUFI64X2Zrmbi = 21432,
- VSHUFI64X2Zrmbik = 21433,
- VSHUFI64X2Zrmbikz = 21434,
- VSHUFI64X2Zrmi = 21435,
- VSHUFI64X2Zrmik = 21436,
- VSHUFI64X2Zrmikz = 21437,
- VSHUFI64X2Zrri = 21438,
- VSHUFI64X2Zrrik = 21439,
- VSHUFI64X2Zrrikz = 21440,
- VSHUFPDYrmi = 21441,
- VSHUFPDYrri = 21442,
- VSHUFPDZ128rmbi = 21443,
- VSHUFPDZ128rmbik = 21444,
- VSHUFPDZ128rmbikz = 21445,
- VSHUFPDZ128rmi = 21446,
- VSHUFPDZ128rmik = 21447,
- VSHUFPDZ128rmikz = 21448,
- VSHUFPDZ128rri = 21449,
- VSHUFPDZ128rrik = 21450,
- VSHUFPDZ128rrikz = 21451,
- VSHUFPDZ256rmbi = 21452,
- VSHUFPDZ256rmbik = 21453,
- VSHUFPDZ256rmbikz = 21454,
- VSHUFPDZ256rmi = 21455,
- VSHUFPDZ256rmik = 21456,
- VSHUFPDZ256rmikz = 21457,
- VSHUFPDZ256rri = 21458,
- VSHUFPDZ256rrik = 21459,
- VSHUFPDZ256rrikz = 21460,
- VSHUFPDZrmbi = 21461,
- VSHUFPDZrmbik = 21462,
- VSHUFPDZrmbikz = 21463,
- VSHUFPDZrmi = 21464,
- VSHUFPDZrmik = 21465,
- VSHUFPDZrmikz = 21466,
- VSHUFPDZrri = 21467,
- VSHUFPDZrrik = 21468,
- VSHUFPDZrrikz = 21469,
- VSHUFPDrmi = 21470,
- VSHUFPDrri = 21471,
- VSHUFPSYrmi = 21472,
- VSHUFPSYrri = 21473,
- VSHUFPSZ128rmbi = 21474,
- VSHUFPSZ128rmbik = 21475,
- VSHUFPSZ128rmbikz = 21476,
- VSHUFPSZ128rmi = 21477,
- VSHUFPSZ128rmik = 21478,
- VSHUFPSZ128rmikz = 21479,
- VSHUFPSZ128rri = 21480,
- VSHUFPSZ128rrik = 21481,
- VSHUFPSZ128rrikz = 21482,
- VSHUFPSZ256rmbi = 21483,
- VSHUFPSZ256rmbik = 21484,
- VSHUFPSZ256rmbikz = 21485,
- VSHUFPSZ256rmi = 21486,
- VSHUFPSZ256rmik = 21487,
- VSHUFPSZ256rmikz = 21488,
- VSHUFPSZ256rri = 21489,
- VSHUFPSZ256rrik = 21490,
- VSHUFPSZ256rrikz = 21491,
- VSHUFPSZrmbi = 21492,
- VSHUFPSZrmbik = 21493,
- VSHUFPSZrmbikz = 21494,
- VSHUFPSZrmi = 21495,
- VSHUFPSZrmik = 21496,
- VSHUFPSZrmikz = 21497,
- VSHUFPSZrri = 21498,
- VSHUFPSZrrik = 21499,
- VSHUFPSZrrikz = 21500,
- VSHUFPSrmi = 21501,
- VSHUFPSrri = 21502,
- VSM3MSG1rm = 21503,
- VSM3MSG1rr = 21504,
- VSM3MSG2rm = 21505,
- VSM3MSG2rr = 21506,
- VSM3RNDS2rmi = 21507,
- VSM3RNDS2rri = 21508,
- VSM4KEY4Yrm = 21509,
- VSM4KEY4Yrr = 21510,
- VSM4KEY4Z128rm = 21511,
- VSM4KEY4Z128rr = 21512,
- VSM4KEY4Z256rm = 21513,
- VSM4KEY4Z256rr = 21514,
- VSM4KEY4Zrm = 21515,
- VSM4KEY4Zrr = 21516,
- VSM4KEY4rm = 21517,
- VSM4KEY4rr = 21518,
- VSM4RNDS4Yrm = 21519,
- VSM4RNDS4Yrr = 21520,
- VSM4RNDS4Z128rm = 21521,
- VSM4RNDS4Z128rr = 21522,
- VSM4RNDS4Z256rm = 21523,
- VSM4RNDS4Z256rr = 21524,
- VSM4RNDS4Zrm = 21525,
- VSM4RNDS4Zrr = 21526,
- VSM4RNDS4rm = 21527,
- VSM4RNDS4rr = 21528,
- VSQRTBF16Z128m = 21529,
- VSQRTBF16Z128mb = 21530,
- VSQRTBF16Z128mbk = 21531,
- VSQRTBF16Z128mbkz = 21532,
- VSQRTBF16Z128mk = 21533,
- VSQRTBF16Z128mkz = 21534,
- VSQRTBF16Z128r = 21535,
- VSQRTBF16Z128rk = 21536,
- VSQRTBF16Z128rkz = 21537,
- VSQRTBF16Z256m = 21538,
- VSQRTBF16Z256mb = 21539,
- VSQRTBF16Z256mbk = 21540,
- VSQRTBF16Z256mbkz = 21541,
- VSQRTBF16Z256mk = 21542,
- VSQRTBF16Z256mkz = 21543,
- VSQRTBF16Z256r = 21544,
- VSQRTBF16Z256rk = 21545,
- VSQRTBF16Z256rkz = 21546,
- VSQRTBF16Zm = 21547,
- VSQRTBF16Zmb = 21548,
- VSQRTBF16Zmbk = 21549,
- VSQRTBF16Zmbkz = 21550,
- VSQRTBF16Zmk = 21551,
- VSQRTBF16Zmkz = 21552,
- VSQRTBF16Zr = 21553,
- VSQRTBF16Zrk = 21554,
- VSQRTBF16Zrkz = 21555,
- VSQRTPDYm = 21556,
- VSQRTPDYr = 21557,
- VSQRTPDZ128m = 21558,
- VSQRTPDZ128mb = 21559,
- VSQRTPDZ128mbk = 21560,
- VSQRTPDZ128mbkz = 21561,
- VSQRTPDZ128mk = 21562,
- VSQRTPDZ128mkz = 21563,
- VSQRTPDZ128r = 21564,
- VSQRTPDZ128rk = 21565,
- VSQRTPDZ128rkz = 21566,
- VSQRTPDZ256m = 21567,
- VSQRTPDZ256mb = 21568,
- VSQRTPDZ256mbk = 21569,
- VSQRTPDZ256mbkz = 21570,
- VSQRTPDZ256mk = 21571,
- VSQRTPDZ256mkz = 21572,
- VSQRTPDZ256r = 21573,
- VSQRTPDZ256rk = 21574,
- VSQRTPDZ256rkz = 21575,
- VSQRTPDZm = 21576,
- VSQRTPDZmb = 21577,
- VSQRTPDZmbk = 21578,
- VSQRTPDZmbkz = 21579,
- VSQRTPDZmk = 21580,
- VSQRTPDZmkz = 21581,
- VSQRTPDZr = 21582,
- VSQRTPDZrb = 21583,
- VSQRTPDZrbk = 21584,
- VSQRTPDZrbkz = 21585,
- VSQRTPDZrk = 21586,
- VSQRTPDZrkz = 21587,
- VSQRTPDm = 21588,
- VSQRTPDr = 21589,
- VSQRTPHZ128m = 21590,
- VSQRTPHZ128mb = 21591,
- VSQRTPHZ128mbk = 21592,
- VSQRTPHZ128mbkz = 21593,
- VSQRTPHZ128mk = 21594,
- VSQRTPHZ128mkz = 21595,
- VSQRTPHZ128r = 21596,
- VSQRTPHZ128rk = 21597,
- VSQRTPHZ128rkz = 21598,
- VSQRTPHZ256m = 21599,
- VSQRTPHZ256mb = 21600,
- VSQRTPHZ256mbk = 21601,
- VSQRTPHZ256mbkz = 21602,
- VSQRTPHZ256mk = 21603,
- VSQRTPHZ256mkz = 21604,
- VSQRTPHZ256r = 21605,
- VSQRTPHZ256rk = 21606,
- VSQRTPHZ256rkz = 21607,
- VSQRTPHZm = 21608,
- VSQRTPHZmb = 21609,
- VSQRTPHZmbk = 21610,
- VSQRTPHZmbkz = 21611,
- VSQRTPHZmk = 21612,
- VSQRTPHZmkz = 21613,
- VSQRTPHZr = 21614,
- VSQRTPHZrb = 21615,
- VSQRTPHZrbk = 21616,
- VSQRTPHZrbkz = 21617,
- VSQRTPHZrk = 21618,
- VSQRTPHZrkz = 21619,
- VSQRTPSYm = 21620,
- VSQRTPSYr = 21621,
- VSQRTPSZ128m = 21622,
- VSQRTPSZ128mb = 21623,
- VSQRTPSZ128mbk = 21624,
- VSQRTPSZ128mbkz = 21625,
- VSQRTPSZ128mk = 21626,
- VSQRTPSZ128mkz = 21627,
- VSQRTPSZ128r = 21628,
- VSQRTPSZ128rk = 21629,
- VSQRTPSZ128rkz = 21630,
- VSQRTPSZ256m = 21631,
- VSQRTPSZ256mb = 21632,
- VSQRTPSZ256mbk = 21633,
- VSQRTPSZ256mbkz = 21634,
- VSQRTPSZ256mk = 21635,
- VSQRTPSZ256mkz = 21636,
- VSQRTPSZ256r = 21637,
- VSQRTPSZ256rk = 21638,
- VSQRTPSZ256rkz = 21639,
- VSQRTPSZm = 21640,
- VSQRTPSZmb = 21641,
- VSQRTPSZmbk = 21642,
- VSQRTPSZmbkz = 21643,
- VSQRTPSZmk = 21644,
- VSQRTPSZmkz = 21645,
- VSQRTPSZr = 21646,
- VSQRTPSZrb = 21647,
- VSQRTPSZrbk = 21648,
- VSQRTPSZrbkz = 21649,
- VSQRTPSZrk = 21650,
- VSQRTPSZrkz = 21651,
- VSQRTPSm = 21652,
- VSQRTPSr = 21653,
- VSQRTSDZm = 21654,
- VSQRTSDZm_Int = 21655,
- VSQRTSDZmk_Int = 21656,
- VSQRTSDZmkz_Int = 21657,
- VSQRTSDZr = 21658,
- VSQRTSDZr_Int = 21659,
- VSQRTSDZrb_Int = 21660,
- VSQRTSDZrbk_Int = 21661,
- VSQRTSDZrbkz_Int = 21662,
- VSQRTSDZrk_Int = 21663,
- VSQRTSDZrkz_Int = 21664,
- VSQRTSDm = 21665,
- VSQRTSDm_Int = 21666,
- VSQRTSDr = 21667,
- VSQRTSDr_Int = 21668,
- VSQRTSHZm = 21669,
- VSQRTSHZm_Int = 21670,
- VSQRTSHZmk_Int = 21671,
- VSQRTSHZmkz_Int = 21672,
- VSQRTSHZr = 21673,
- VSQRTSHZr_Int = 21674,
- VSQRTSHZrb_Int = 21675,
- VSQRTSHZrbk_Int = 21676,
- VSQRTSHZrbkz_Int = 21677,
- VSQRTSHZrk_Int = 21678,
- VSQRTSHZrkz_Int = 21679,
- VSQRTSSZm = 21680,
- VSQRTSSZm_Int = 21681,
- VSQRTSSZmk_Int = 21682,
- VSQRTSSZmkz_Int = 21683,
- VSQRTSSZr = 21684,
- VSQRTSSZr_Int = 21685,
- VSQRTSSZrb_Int = 21686,
- VSQRTSSZrbk_Int = 21687,
- VSQRTSSZrbkz_Int = 21688,
- VSQRTSSZrk_Int = 21689,
- VSQRTSSZrkz_Int = 21690,
- VSQRTSSm = 21691,
- VSQRTSSm_Int = 21692,
- VSQRTSSr = 21693,
- VSQRTSSr_Int = 21694,
- VSTMXCSR = 21695,
- VSUBBF16Z128rm = 21696,
- VSUBBF16Z128rmb = 21697,
- VSUBBF16Z128rmbk = 21698,
- VSUBBF16Z128rmbkz = 21699,
- VSUBBF16Z128rmk = 21700,
- VSUBBF16Z128rmkz = 21701,
- VSUBBF16Z128rr = 21702,
- VSUBBF16Z128rrk = 21703,
- VSUBBF16Z128rrkz = 21704,
- VSUBBF16Z256rm = 21705,
- VSUBBF16Z256rmb = 21706,
- VSUBBF16Z256rmbk = 21707,
- VSUBBF16Z256rmbkz = 21708,
- VSUBBF16Z256rmk = 21709,
- VSUBBF16Z256rmkz = 21710,
- VSUBBF16Z256rr = 21711,
- VSUBBF16Z256rrk = 21712,
- VSUBBF16Z256rrkz = 21713,
- VSUBBF16Zrm = 21714,
- VSUBBF16Zrmb = 21715,
- VSUBBF16Zrmbk = 21716,
- VSUBBF16Zrmbkz = 21717,
- VSUBBF16Zrmk = 21718,
- VSUBBF16Zrmkz = 21719,
- VSUBBF16Zrr = 21720,
- VSUBBF16Zrrk = 21721,
- VSUBBF16Zrrkz = 21722,
- VSUBPDYrm = 21723,
- VSUBPDYrr = 21724,
- VSUBPDZ128rm = 21725,
- VSUBPDZ128rmb = 21726,
- VSUBPDZ128rmbk = 21727,
- VSUBPDZ128rmbkz = 21728,
- VSUBPDZ128rmk = 21729,
- VSUBPDZ128rmkz = 21730,
- VSUBPDZ128rr = 21731,
- VSUBPDZ128rrk = 21732,
- VSUBPDZ128rrkz = 21733,
- VSUBPDZ256rm = 21734,
- VSUBPDZ256rmb = 21735,
- VSUBPDZ256rmbk = 21736,
- VSUBPDZ256rmbkz = 21737,
- VSUBPDZ256rmk = 21738,
- VSUBPDZ256rmkz = 21739,
- VSUBPDZ256rr = 21740,
- VSUBPDZ256rrk = 21741,
- VSUBPDZ256rrkz = 21742,
- VSUBPDZrm = 21743,
- VSUBPDZrmb = 21744,
- VSUBPDZrmbk = 21745,
- VSUBPDZrmbkz = 21746,
- VSUBPDZrmk = 21747,
- VSUBPDZrmkz = 21748,
- VSUBPDZrr = 21749,
- VSUBPDZrrb = 21750,
- VSUBPDZrrbk = 21751,
- VSUBPDZrrbkz = 21752,
- VSUBPDZrrk = 21753,
- VSUBPDZrrkz = 21754,
- VSUBPDrm = 21755,
- VSUBPDrr = 21756,
- VSUBPHZ128rm = 21757,
- VSUBPHZ128rmb = 21758,
- VSUBPHZ128rmbk = 21759,
- VSUBPHZ128rmbkz = 21760,
- VSUBPHZ128rmk = 21761,
- VSUBPHZ128rmkz = 21762,
- VSUBPHZ128rr = 21763,
- VSUBPHZ128rrk = 21764,
- VSUBPHZ128rrkz = 21765,
- VSUBPHZ256rm = 21766,
- VSUBPHZ256rmb = 21767,
- VSUBPHZ256rmbk = 21768,
- VSUBPHZ256rmbkz = 21769,
- VSUBPHZ256rmk = 21770,
- VSUBPHZ256rmkz = 21771,
- VSUBPHZ256rr = 21772,
- VSUBPHZ256rrk = 21773,
- VSUBPHZ256rrkz = 21774,
- VSUBPHZrm = 21775,
- VSUBPHZrmb = 21776,
- VSUBPHZrmbk = 21777,
- VSUBPHZrmbkz = 21778,
- VSUBPHZrmk = 21779,
- VSUBPHZrmkz = 21780,
- VSUBPHZrr = 21781,
- VSUBPHZrrb = 21782,
- VSUBPHZrrbk = 21783,
- VSUBPHZrrbkz = 21784,
- VSUBPHZrrk = 21785,
- VSUBPHZrrkz = 21786,
- VSUBPSYrm = 21787,
- VSUBPSYrr = 21788,
- VSUBPSZ128rm = 21789,
- VSUBPSZ128rmb = 21790,
- VSUBPSZ128rmbk = 21791,
- VSUBPSZ128rmbkz = 21792,
- VSUBPSZ128rmk = 21793,
- VSUBPSZ128rmkz = 21794,
- VSUBPSZ128rr = 21795,
- VSUBPSZ128rrk = 21796,
- VSUBPSZ128rrkz = 21797,
- VSUBPSZ256rm = 21798,
- VSUBPSZ256rmb = 21799,
- VSUBPSZ256rmbk = 21800,
- VSUBPSZ256rmbkz = 21801,
- VSUBPSZ256rmk = 21802,
- VSUBPSZ256rmkz = 21803,
- VSUBPSZ256rr = 21804,
- VSUBPSZ256rrk = 21805,
- VSUBPSZ256rrkz = 21806,
- VSUBPSZrm = 21807,
- VSUBPSZrmb = 21808,
- VSUBPSZrmbk = 21809,
- VSUBPSZrmbkz = 21810,
- VSUBPSZrmk = 21811,
- VSUBPSZrmkz = 21812,
- VSUBPSZrr = 21813,
- VSUBPSZrrb = 21814,
- VSUBPSZrrbk = 21815,
- VSUBPSZrrbkz = 21816,
- VSUBPSZrrk = 21817,
- VSUBPSZrrkz = 21818,
- VSUBPSrm = 21819,
- VSUBPSrr = 21820,
- VSUBSDZrm = 21821,
- VSUBSDZrm_Int = 21822,
- VSUBSDZrmk_Int = 21823,
- VSUBSDZrmkz_Int = 21824,
- VSUBSDZrr = 21825,
- VSUBSDZrr_Int = 21826,
- VSUBSDZrrb_Int = 21827,
- VSUBSDZrrbk_Int = 21828,
- VSUBSDZrrbkz_Int = 21829,
- VSUBSDZrrk_Int = 21830,
- VSUBSDZrrkz_Int = 21831,
- VSUBSDrm = 21832,
- VSUBSDrm_Int = 21833,
- VSUBSDrr = 21834,
- VSUBSDrr_Int = 21835,
- VSUBSHZrm = 21836,
- VSUBSHZrm_Int = 21837,
- VSUBSHZrmk_Int = 21838,
- VSUBSHZrmkz_Int = 21839,
- VSUBSHZrr = 21840,
- VSUBSHZrr_Int = 21841,
- VSUBSHZrrb_Int = 21842,
- VSUBSHZrrbk_Int = 21843,
- VSUBSHZrrbkz_Int = 21844,
- VSUBSHZrrk_Int = 21845,
- VSUBSHZrrkz_Int = 21846,
- VSUBSSZrm = 21847,
- VSUBSSZrm_Int = 21848,
- VSUBSSZrmk_Int = 21849,
- VSUBSSZrmkz_Int = 21850,
- VSUBSSZrr = 21851,
- VSUBSSZrr_Int = 21852,
- VSUBSSZrrb_Int = 21853,
- VSUBSSZrrbk_Int = 21854,
- VSUBSSZrrbkz_Int = 21855,
- VSUBSSZrrk_Int = 21856,
- VSUBSSZrrkz_Int = 21857,
- VSUBSSrm = 21858,
- VSUBSSrm_Int = 21859,
- VSUBSSrr = 21860,
- VSUBSSrr_Int = 21861,
- VTESTPDYrm = 21862,
- VTESTPDYrr = 21863,
- VTESTPDrm = 21864,
- VTESTPDrr = 21865,
- VTESTPSYrm = 21866,
- VTESTPSYrr = 21867,
- VTESTPSrm = 21868,
- VTESTPSrr = 21869,
- VUCOMISDZrm = 21870,
- VUCOMISDZrm_Int = 21871,
- VUCOMISDZrr = 21872,
- VUCOMISDZrr_Int = 21873,
- VUCOMISDZrrb = 21874,
- VUCOMISDrm = 21875,
- VUCOMISDrm_Int = 21876,
- VUCOMISDrr = 21877,
- VUCOMISDrr_Int = 21878,
- VUCOMISHZrm = 21879,
- VUCOMISHZrm_Int = 21880,
- VUCOMISHZrr = 21881,
- VUCOMISHZrr_Int = 21882,
- VUCOMISHZrrb = 21883,
- VUCOMISSZrm = 21884,
- VUCOMISSZrm_Int = 21885,
- VUCOMISSZrr = 21886,
- VUCOMISSZrr_Int = 21887,
- VUCOMISSZrrb = 21888,
- VUCOMISSrm = 21889,
- VUCOMISSrm_Int = 21890,
- VUCOMISSrr = 21891,
- VUCOMISSrr_Int = 21892,
- VUCOMXSDZrm = 21893,
- VUCOMXSDZrm_Int = 21894,
- VUCOMXSDZrr = 21895,
- VUCOMXSDZrr_Int = 21896,
- VUCOMXSDZrrb_Int = 21897,
- VUCOMXSHZrm = 21898,
- VUCOMXSHZrm_Int = 21899,
- VUCOMXSHZrr = 21900,
- VUCOMXSHZrr_Int = 21901,
- VUCOMXSHZrrb_Int = 21902,
- VUCOMXSSZrm = 21903,
- VUCOMXSSZrm_Int = 21904,
- VUCOMXSSZrr = 21905,
- VUCOMXSSZrr_Int = 21906,
- VUCOMXSSZrrb_Int = 21907,
- VUNPCKHPDYrm = 21908,
- VUNPCKHPDYrr = 21909,
- VUNPCKHPDZ128rm = 21910,
- VUNPCKHPDZ128rmb = 21911,
- VUNPCKHPDZ128rmbk = 21912,
- VUNPCKHPDZ128rmbkz = 21913,
- VUNPCKHPDZ128rmk = 21914,
- VUNPCKHPDZ128rmkz = 21915,
- VUNPCKHPDZ128rr = 21916,
- VUNPCKHPDZ128rrk = 21917,
- VUNPCKHPDZ128rrkz = 21918,
- VUNPCKHPDZ256rm = 21919,
- VUNPCKHPDZ256rmb = 21920,
- VUNPCKHPDZ256rmbk = 21921,
- VUNPCKHPDZ256rmbkz = 21922,
- VUNPCKHPDZ256rmk = 21923,
- VUNPCKHPDZ256rmkz = 21924,
- VUNPCKHPDZ256rr = 21925,
- VUNPCKHPDZ256rrk = 21926,
- VUNPCKHPDZ256rrkz = 21927,
- VUNPCKHPDZrm = 21928,
- VUNPCKHPDZrmb = 21929,
- VUNPCKHPDZrmbk = 21930,
- VUNPCKHPDZrmbkz = 21931,
- VUNPCKHPDZrmk = 21932,
- VUNPCKHPDZrmkz = 21933,
- VUNPCKHPDZrr = 21934,
- VUNPCKHPDZrrk = 21935,
- VUNPCKHPDZrrkz = 21936,
- VUNPCKHPDrm = 21937,
- VUNPCKHPDrr = 21938,
- VUNPCKHPSYrm = 21939,
- VUNPCKHPSYrr = 21940,
- VUNPCKHPSZ128rm = 21941,
- VUNPCKHPSZ128rmb = 21942,
- VUNPCKHPSZ128rmbk = 21943,
- VUNPCKHPSZ128rmbkz = 21944,
- VUNPCKHPSZ128rmk = 21945,
- VUNPCKHPSZ128rmkz = 21946,
- VUNPCKHPSZ128rr = 21947,
- VUNPCKHPSZ128rrk = 21948,
- VUNPCKHPSZ128rrkz = 21949,
- VUNPCKHPSZ256rm = 21950,
- VUNPCKHPSZ256rmb = 21951,
- VUNPCKHPSZ256rmbk = 21952,
- VUNPCKHPSZ256rmbkz = 21953,
- VUNPCKHPSZ256rmk = 21954,
- VUNPCKHPSZ256rmkz = 21955,
- VUNPCKHPSZ256rr = 21956,
- VUNPCKHPSZ256rrk = 21957,
- VUNPCKHPSZ256rrkz = 21958,
- VUNPCKHPSZrm = 21959,
- VUNPCKHPSZrmb = 21960,
- VUNPCKHPSZrmbk = 21961,
- VUNPCKHPSZrmbkz = 21962,
- VUNPCKHPSZrmk = 21963,
- VUNPCKHPSZrmkz = 21964,
- VUNPCKHPSZrr = 21965,
- VUNPCKHPSZrrk = 21966,
- VUNPCKHPSZrrkz = 21967,
- VUNPCKHPSrm = 21968,
- VUNPCKHPSrr = 21969,
- VUNPCKLPDYrm = 21970,
- VUNPCKLPDYrr = 21971,
- VUNPCKLPDZ128rm = 21972,
- VUNPCKLPDZ128rmb = 21973,
- VUNPCKLPDZ128rmbk = 21974,
- VUNPCKLPDZ128rmbkz = 21975,
- VUNPCKLPDZ128rmk = 21976,
- VUNPCKLPDZ128rmkz = 21977,
- VUNPCKLPDZ128rr = 21978,
- VUNPCKLPDZ128rrk = 21979,
- VUNPCKLPDZ128rrkz = 21980,
- VUNPCKLPDZ256rm = 21981,
- VUNPCKLPDZ256rmb = 21982,
- VUNPCKLPDZ256rmbk = 21983,
- VUNPCKLPDZ256rmbkz = 21984,
- VUNPCKLPDZ256rmk = 21985,
- VUNPCKLPDZ256rmkz = 21986,
- VUNPCKLPDZ256rr = 21987,
- VUNPCKLPDZ256rrk = 21988,
- VUNPCKLPDZ256rrkz = 21989,
- VUNPCKLPDZrm = 21990,
- VUNPCKLPDZrmb = 21991,
- VUNPCKLPDZrmbk = 21992,
- VUNPCKLPDZrmbkz = 21993,
- VUNPCKLPDZrmk = 21994,
- VUNPCKLPDZrmkz = 21995,
- VUNPCKLPDZrr = 21996,
- VUNPCKLPDZrrk = 21997,
- VUNPCKLPDZrrkz = 21998,
- VUNPCKLPDrm = 21999,
- VUNPCKLPDrr = 22000,
- VUNPCKLPSYrm = 22001,
- VUNPCKLPSYrr = 22002,
- VUNPCKLPSZ128rm = 22003,
- VUNPCKLPSZ128rmb = 22004,
- VUNPCKLPSZ128rmbk = 22005,
- VUNPCKLPSZ128rmbkz = 22006,
- VUNPCKLPSZ128rmk = 22007,
- VUNPCKLPSZ128rmkz = 22008,
- VUNPCKLPSZ128rr = 22009,
- VUNPCKLPSZ128rrk = 22010,
- VUNPCKLPSZ128rrkz = 22011,
- VUNPCKLPSZ256rm = 22012,
- VUNPCKLPSZ256rmb = 22013,
- VUNPCKLPSZ256rmbk = 22014,
- VUNPCKLPSZ256rmbkz = 22015,
- VUNPCKLPSZ256rmk = 22016,
- VUNPCKLPSZ256rmkz = 22017,
- VUNPCKLPSZ256rr = 22018,
- VUNPCKLPSZ256rrk = 22019,
- VUNPCKLPSZ256rrkz = 22020,
- VUNPCKLPSZrm = 22021,
- VUNPCKLPSZrmb = 22022,
- VUNPCKLPSZrmbk = 22023,
- VUNPCKLPSZrmbkz = 22024,
- VUNPCKLPSZrmk = 22025,
- VUNPCKLPSZrmkz = 22026,
- VUNPCKLPSZrr = 22027,
- VUNPCKLPSZrrk = 22028,
- VUNPCKLPSZrrkz = 22029,
- VUNPCKLPSrm = 22030,
- VUNPCKLPSrr = 22031,
- VXORPDYrm = 22032,
- VXORPDYrr = 22033,
- VXORPDZ128rm = 22034,
- VXORPDZ128rmb = 22035,
- VXORPDZ128rmbk = 22036,
- VXORPDZ128rmbkz = 22037,
- VXORPDZ128rmk = 22038,
- VXORPDZ128rmkz = 22039,
- VXORPDZ128rr = 22040,
- VXORPDZ128rrk = 22041,
- VXORPDZ128rrkz = 22042,
- VXORPDZ256rm = 22043,
- VXORPDZ256rmb = 22044,
- VXORPDZ256rmbk = 22045,
- VXORPDZ256rmbkz = 22046,
- VXORPDZ256rmk = 22047,
- VXORPDZ256rmkz = 22048,
- VXORPDZ256rr = 22049,
- VXORPDZ256rrk = 22050,
- VXORPDZ256rrkz = 22051,
- VXORPDZrm = 22052,
- VXORPDZrmb = 22053,
- VXORPDZrmbk = 22054,
- VXORPDZrmbkz = 22055,
- VXORPDZrmk = 22056,
- VXORPDZrmkz = 22057,
- VXORPDZrr = 22058,
- VXORPDZrrk = 22059,
- VXORPDZrrkz = 22060,
- VXORPDrm = 22061,
- VXORPDrr = 22062,
- VXORPSYrm = 22063,
- VXORPSYrr = 22064,
- VXORPSZ128rm = 22065,
- VXORPSZ128rmb = 22066,
- VXORPSZ128rmbk = 22067,
- VXORPSZ128rmbkz = 22068,
- VXORPSZ128rmk = 22069,
- VXORPSZ128rmkz = 22070,
- VXORPSZ128rr = 22071,
- VXORPSZ128rrk = 22072,
- VXORPSZ128rrkz = 22073,
- VXORPSZ256rm = 22074,
- VXORPSZ256rmb = 22075,
- VXORPSZ256rmbk = 22076,
- VXORPSZ256rmbkz = 22077,
- VXORPSZ256rmk = 22078,
- VXORPSZ256rmkz = 22079,
- VXORPSZ256rr = 22080,
- VXORPSZ256rrk = 22081,
- VXORPSZ256rrkz = 22082,
- VXORPSZrm = 22083,
- VXORPSZrmb = 22084,
- VXORPSZrmbk = 22085,
- VXORPSZrmbkz = 22086,
- VXORPSZrmk = 22087,
- VXORPSZrmkz = 22088,
- VXORPSZrr = 22089,
- VXORPSZrrk = 22090,
- VXORPSZrrkz = 22091,
- VXORPSrm = 22092,
- VXORPSrr = 22093,
- VZEROALL = 22094,
- VZEROUPPER = 22095,
- WAIT = 22096,
- WBINVD = 22097,
- WBNOINVD = 22098,
- WRFSBASE = 22099,
- WRFSBASE64 = 22100,
- WRGSBASE = 22101,
- WRGSBASE64 = 22102,
- WRMSR = 22103,
- WRMSRLIST = 22104,
- WRMSRNS = 22105,
- WRMSRNSir = 22106,
- WRMSRNSir_EVEX = 22107,
- WRPKRUr = 22108,
- WRSSD = 22109,
- WRSSD_EVEX = 22110,
- WRSSQ = 22111,
- WRSSQ_EVEX = 22112,
- WRUSSD = 22113,
- WRUSSD_EVEX = 22114,
- WRUSSQ = 22115,
- WRUSSQ_EVEX = 22116,
- XABORT = 22117,
- XACQUIRE_PREFIX = 22118,
- XADD16rm = 22119,
- XADD16rr = 22120,
- XADD32rm = 22121,
- XADD32rr = 22122,
- XADD64rm = 22123,
- XADD64rr = 22124,
- XADD8rm = 22125,
- XADD8rr = 22126,
- XAM_F = 22127,
- XAM_Fp32 = 22128,
- XAM_Fp64 = 22129,
- XAM_Fp80 = 22130,
- XBEGIN = 22131,
- XBEGIN_2 = 22132,
- XBEGIN_4 = 22133,
- XCHG16ar = 22134,
- XCHG16rm = 22135,
- XCHG16rr = 22136,
- XCHG32ar = 22137,
- XCHG32rm = 22138,
- XCHG32rr = 22139,
- XCHG64ar = 22140,
- XCHG64rm = 22141,
- XCHG64rr = 22142,
- XCHG8rm = 22143,
- XCHG8rr = 22144,
- XCH_F = 22145,
- XCRYPTCBC = 22146,
- XCRYPTCFB = 22147,
- XCRYPTCTR = 22148,
- XCRYPTECB = 22149,
- XCRYPTOFB = 22150,
- XEND = 22151,
- XGETBV = 22152,
- XLAT = 22153,
- XOR16i16 = 22154,
- XOR16mi = 22155,
- XOR16mi8 = 22156,
- XOR16mi8_EVEX = 22157,
- XOR16mi8_ND = 22158,
- XOR16mi8_NF = 22159,
- XOR16mi8_NF_ND = 22160,
- XOR16mi_EVEX = 22161,
- XOR16mi_ND = 22162,
- XOR16mi_NF = 22163,
- XOR16mi_NF_ND = 22164,
- XOR16mr = 22165,
- XOR16mr_EVEX = 22166,
- XOR16mr_ND = 22167,
- XOR16mr_NF = 22168,
- XOR16mr_NF_ND = 22169,
- XOR16ri = 22170,
- XOR16ri8 = 22171,
- XOR16ri8_EVEX = 22172,
- XOR16ri8_ND = 22173,
- XOR16ri8_NF = 22174,
- XOR16ri8_NF_ND = 22175,
- XOR16ri_EVEX = 22176,
- XOR16ri_ND = 22177,
- XOR16ri_NF = 22178,
- XOR16ri_NF_ND = 22179,
- XOR16rm = 22180,
- XOR16rm_EVEX = 22181,
- XOR16rm_ND = 22182,
- XOR16rm_NF = 22183,
- XOR16rm_NF_ND = 22184,
- XOR16rr = 22185,
- XOR16rr_EVEX = 22186,
- XOR16rr_EVEX_REV = 22187,
- XOR16rr_ND = 22188,
- XOR16rr_ND_REV = 22189,
- XOR16rr_NF = 22190,
- XOR16rr_NF_ND = 22191,
- XOR16rr_NF_ND_REV = 22192,
- XOR16rr_NF_REV = 22193,
- XOR16rr_REV = 22194,
- XOR32i32 = 22195,
- XOR32mi = 22196,
- XOR32mi8 = 22197,
- XOR32mi8_EVEX = 22198,
- XOR32mi8_ND = 22199,
- XOR32mi8_NF = 22200,
- XOR32mi8_NF_ND = 22201,
- XOR32mi_EVEX = 22202,
- XOR32mi_ND = 22203,
- XOR32mi_NF = 22204,
- XOR32mi_NF_ND = 22205,
- XOR32mr = 22206,
- XOR32mr_EVEX = 22207,
- XOR32mr_ND = 22208,
- XOR32mr_NF = 22209,
- XOR32mr_NF_ND = 22210,
- XOR32ri = 22211,
- XOR32ri8 = 22212,
- XOR32ri8_EVEX = 22213,
- XOR32ri8_ND = 22214,
- XOR32ri8_NF = 22215,
- XOR32ri8_NF_ND = 22216,
- XOR32ri_EVEX = 22217,
- XOR32ri_ND = 22218,
- XOR32ri_NF = 22219,
- XOR32ri_NF_ND = 22220,
- XOR32rm = 22221,
- XOR32rm_EVEX = 22222,
- XOR32rm_ND = 22223,
- XOR32rm_NF = 22224,
- XOR32rm_NF_ND = 22225,
- XOR32rr = 22226,
- XOR32rr_EVEX = 22227,
- XOR32rr_EVEX_REV = 22228,
- XOR32rr_ND = 22229,
- XOR32rr_ND_REV = 22230,
- XOR32rr_NF = 22231,
- XOR32rr_NF_ND = 22232,
- XOR32rr_NF_ND_REV = 22233,
- XOR32rr_NF_REV = 22234,
- XOR32rr_REV = 22235,
- XOR64i32 = 22236,
- XOR64mi32 = 22237,
- XOR64mi32_EVEX = 22238,
- XOR64mi32_ND = 22239,
- XOR64mi32_NF = 22240,
- XOR64mi32_NF_ND = 22241,
- XOR64mi8 = 22242,
- XOR64mi8_EVEX = 22243,
- XOR64mi8_ND = 22244,
- XOR64mi8_NF = 22245,
- XOR64mi8_NF_ND = 22246,
- XOR64mr = 22247,
- XOR64mr_EVEX = 22248,
- XOR64mr_ND = 22249,
- XOR64mr_NF = 22250,
- XOR64mr_NF_ND = 22251,
- XOR64ri32 = 22252,
- XOR64ri32_EVEX = 22253,
- XOR64ri32_ND = 22254,
- XOR64ri32_NF = 22255,
- XOR64ri32_NF_ND = 22256,
- XOR64ri8 = 22257,
- XOR64ri8_EVEX = 22258,
- XOR64ri8_ND = 22259,
- XOR64ri8_NF = 22260,
- XOR64ri8_NF_ND = 22261,
- XOR64rm = 22262,
- XOR64rm_EVEX = 22263,
- XOR64rm_ND = 22264,
- XOR64rm_NF = 22265,
- XOR64rm_NF_ND = 22266,
- XOR64rr = 22267,
- XOR64rr_EVEX = 22268,
- XOR64rr_EVEX_REV = 22269,
- XOR64rr_ND = 22270,
- XOR64rr_ND_REV = 22271,
- XOR64rr_NF = 22272,
- XOR64rr_NF_ND = 22273,
- XOR64rr_NF_ND_REV = 22274,
- XOR64rr_NF_REV = 22275,
- XOR64rr_REV = 22276,
- XOR8i8 = 22277,
- XOR8mi = 22278,
- XOR8mi8 = 22279,
- XOR8mi_EVEX = 22280,
- XOR8mi_ND = 22281,
- XOR8mi_NF = 22282,
- XOR8mi_NF_ND = 22283,
- XOR8mr = 22284,
- XOR8mr_EVEX = 22285,
- XOR8mr_ND = 22286,
- XOR8mr_NF = 22287,
- XOR8mr_NF_ND = 22288,
- XOR8ri = 22289,
- XOR8ri8 = 22290,
- XOR8ri_EVEX = 22291,
- XOR8ri_ND = 22292,
- XOR8ri_NF = 22293,
- XOR8ri_NF_ND = 22294,
- XOR8rm = 22295,
- XOR8rm_EVEX = 22296,
- XOR8rm_ND = 22297,
- XOR8rm_NF = 22298,
- XOR8rm_NF_ND = 22299,
- XOR8rr = 22300,
- XOR8rr_EVEX = 22301,
- XOR8rr_EVEX_REV = 22302,
- XOR8rr_ND = 22303,
- XOR8rr_ND_REV = 22304,
- XOR8rr_NF = 22305,
- XOR8rr_NF_ND = 22306,
- XOR8rr_NF_ND_REV = 22307,
- XOR8rr_NF_REV = 22308,
- XOR8rr_NOREX = 22309,
- XOR8rr_REV = 22310,
- XORPDrm = 22311,
- XORPDrr = 22312,
- XORPSrm = 22313,
- XORPSrr = 22314,
- XRELEASE_PREFIX = 22315,
- XRESLDTRK = 22316,
- XRSTOR = 22317,
- XRSTOR64 = 22318,
- XRSTORS = 22319,
- XRSTORS64 = 22320,
- XSAVE = 22321,
- XSAVE64 = 22322,
- XSAVEC = 22323,
- XSAVEC64 = 22324,
- XSAVEOPT = 22325,
- XSAVEOPT64 = 22326,
- XSAVES = 22327,
- XSAVES64 = 22328,
- XSETBV = 22329,
- XSHA1 = 22330,
- XSHA256 = 22331,
- XSTORE = 22332,
- XSUSLDTRK = 22333,
- XTEST = 22334,
- INSTRUCTION_LIST_END = 22335,
+ COPY_LANEMASK = 21,
+ BUNDLE = 22,
+ LIFETIME_START = 23,
+ LIFETIME_END = 24,
+ PSEUDO_PROBE = 25,
+ ARITH_FENCE = 26,
+ STACKMAP = 27,
+ FENTRY_CALL = 28,
+ PATCHPOINT = 29,
+ LOAD_STACK_GUARD = 30,
+ PREALLOCATED_SETUP = 31,
+ PREALLOCATED_ARG = 32,
+ STATEPOINT = 33,
+ LOCAL_ESCAPE = 34,
+ FAULTING_OP = 35,
+ PATCHABLE_OP = 36,
+ PATCHABLE_FUNCTION_ENTER = 37,
+ PATCHABLE_RET = 38,
+ PATCHABLE_FUNCTION_EXIT = 39,
+ PATCHABLE_TAIL_CALL = 40,
+ PATCHABLE_EVENT_CALL = 41,
+ PATCHABLE_TYPED_EVENT_CALL = 42,
+ ICALL_BRANCH_FUNNEL = 43,
+ FAKE_USE = 44,
+ MEMBARRIER = 45,
+ JUMP_TABLE_DEBUG_INFO = 46,
+ RELOC_NONE = 47,
+ CONVERGENCECTRL_ENTRY = 48,
+ CONVERGENCECTRL_ANCHOR = 49,
+ CONVERGENCECTRL_LOOP = 50,
+ CONVERGENCECTRL_GLUE = 51,
+ G_ASSERT_SEXT = 52,
+ G_ASSERT_ZEXT = 53,
+ G_ASSERT_ALIGN = 54,
+ G_ADD = 55,
+ G_SUB = 56,
+ G_MUL = 57,
+ G_SDIV = 58,
+ G_UDIV = 59,
+ G_SREM = 60,
+ G_UREM = 61,
+ G_SDIVREM = 62,
+ G_UDIVREM = 63,
+ G_AND = 64,
+ G_OR = 65,
+ G_XOR = 66,
+ G_ABDS = 67,
+ G_ABDU = 68,
+ G_UAVGFLOOR = 69,
+ G_UAVGCEIL = 70,
+ G_SAVGFLOOR = 71,
+ G_SAVGCEIL = 72,
+ G_IMPLICIT_DEF = 73,
+ G_PHI = 74,
+ G_FRAME_INDEX = 75,
+ G_GLOBAL_VALUE = 76,
+ G_PTRAUTH_GLOBAL_VALUE = 77,
+ G_CONSTANT_POOL = 78,
+ G_EXTRACT = 79,
+ G_UNMERGE_VALUES = 80,
+ G_INSERT = 81,
+ G_MERGE_VALUES = 82,
+ G_BUILD_VECTOR = 83,
+ G_BUILD_VECTOR_TRUNC = 84,
+ G_CONCAT_VECTORS = 85,
+ G_PTRTOINT = 86,
+ G_INTTOPTR = 87,
+ G_BITCAST = 88,
+ G_FREEZE = 89,
+ G_CONSTANT_FOLD_BARRIER = 90,
+ G_INTRINSIC_FPTRUNC_ROUND = 91,
+ G_INTRINSIC_TRUNC = 92,
+ G_INTRINSIC_ROUND = 93,
+ G_INTRINSIC_LRINT = 94,
+ G_INTRINSIC_LLRINT = 95,
+ G_INTRINSIC_ROUNDEVEN = 96,
+ G_READCYCLECOUNTER = 97,
+ G_READSTEADYCOUNTER = 98,
+ G_LOAD = 99,
+ G_SEXTLOAD = 100,
+ G_ZEXTLOAD = 101,
+ G_INDEXED_LOAD = 102,
+ G_INDEXED_SEXTLOAD = 103,
+ G_INDEXED_ZEXTLOAD = 104,
+ G_STORE = 105,
+ G_INDEXED_STORE = 106,
+ G_ATOMIC_CMPXCHG_WITH_SUCCESS = 107,
+ G_ATOMIC_CMPXCHG = 108,
+ G_ATOMICRMW_XCHG = 109,
+ G_ATOMICRMW_ADD = 110,
+ G_ATOMICRMW_SUB = 111,
+ G_ATOMICRMW_AND = 112,
+ G_ATOMICRMW_NAND = 113,
+ G_ATOMICRMW_OR = 114,
+ G_ATOMICRMW_XOR = 115,
+ G_ATOMICRMW_MAX = 116,
+ G_ATOMICRMW_MIN = 117,
+ G_ATOMICRMW_UMAX = 118,
+ G_ATOMICRMW_UMIN = 119,
+ G_ATOMICRMW_FADD = 120,
+ G_ATOMICRMW_FSUB = 121,
+ G_ATOMICRMW_FMAX = 122,
+ G_ATOMICRMW_FMIN = 123,
+ G_ATOMICRMW_FMAXIMUM = 124,
+ G_ATOMICRMW_FMINIMUM = 125,
+ G_ATOMICRMW_UINC_WRAP = 126,
+ G_ATOMICRMW_UDEC_WRAP = 127,
+ G_ATOMICRMW_USUB_COND = 128,
+ G_ATOMICRMW_USUB_SAT = 129,
+ G_FENCE = 130,
+ G_PREFETCH = 131,
+ G_BRCOND = 132,
+ G_BRINDIRECT = 133,
+ G_INVOKE_REGION_START = 134,
+ G_INTRINSIC = 135,
+ G_INTRINSIC_W_SIDE_EFFECTS = 136,
+ G_INTRINSIC_CONVERGENT = 137,
+ G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 138,
+ G_ANYEXT = 139,
+ G_TRUNC = 140,
+ G_TRUNC_SSAT_S = 141,
+ G_TRUNC_SSAT_U = 142,
+ G_TRUNC_USAT_U = 143,
+ G_CONSTANT = 144,
+ G_FCONSTANT = 145,
+ G_VASTART = 146,
+ G_VAARG = 147,
+ G_SEXT = 148,
+ G_SEXT_INREG = 149,
+ G_ZEXT = 150,
+ G_SHL = 151,
+ G_LSHR = 152,
+ G_ASHR = 153,
+ G_FSHL = 154,
+ G_FSHR = 155,
+ G_ROTR = 156,
+ G_ROTL = 157,
+ G_ICMP = 158,
+ G_FCMP = 159,
+ G_SCMP = 160,
+ G_UCMP = 161,
+ G_SELECT = 162,
+ G_UADDO = 163,
+ G_UADDE = 164,
+ G_USUBO = 165,
+ G_USUBE = 166,
+ G_SADDO = 167,
+ G_SADDE = 168,
+ G_SSUBO = 169,
+ G_SSUBE = 170,
+ G_UMULO = 171,
+ G_SMULO = 172,
+ G_UMULH = 173,
+ G_SMULH = 174,
+ G_UADDSAT = 175,
+ G_SADDSAT = 176,
+ G_USUBSAT = 177,
+ G_SSUBSAT = 178,
+ G_USHLSAT = 179,
+ G_SSHLSAT = 180,
+ G_SMULFIX = 181,
+ G_UMULFIX = 182,
+ G_SMULFIXSAT = 183,
+ G_UMULFIXSAT = 184,
+ G_SDIVFIX = 185,
+ G_UDIVFIX = 186,
+ G_SDIVFIXSAT = 187,
+ G_UDIVFIXSAT = 188,
+ G_FADD = 189,
+ G_FSUB = 190,
+ G_FMUL = 191,
+ G_FMA = 192,
+ G_FMAD = 193,
+ G_FDIV = 194,
+ G_FREM = 195,
+ G_FMODF = 196,
+ G_FPOW = 197,
+ G_FPOWI = 198,
+ G_FEXP = 199,
+ G_FEXP2 = 200,
+ G_FEXP10 = 201,
+ G_FLOG = 202,
+ G_FLOG2 = 203,
+ G_FLOG10 = 204,
+ G_FLDEXP = 205,
+ G_FFREXP = 206,
+ G_FNEG = 207,
+ G_FPEXT = 208,
+ G_FPTRUNC = 209,
+ G_FPTOSI = 210,
+ G_FPTOUI = 211,
+ G_SITOFP = 212,
+ G_UITOFP = 213,
+ G_FPTOSI_SAT = 214,
+ G_FPTOUI_SAT = 215,
+ G_FABS = 216,
+ G_FCOPYSIGN = 217,
+ G_IS_FPCLASS = 218,
+ G_FCANONICALIZE = 219,
+ G_FMINNUM = 220,
+ G_FMAXNUM = 221,
+ G_FMINNUM_IEEE = 222,
+ G_FMAXNUM_IEEE = 223,
+ G_FMINIMUM = 224,
+ G_FMAXIMUM = 225,
+ G_FMINIMUMNUM = 226,
+ G_FMAXIMUMNUM = 227,
+ G_GET_FPENV = 228,
+ G_SET_FPENV = 229,
+ G_RESET_FPENV = 230,
+ G_GET_FPMODE = 231,
+ G_SET_FPMODE = 232,
+ G_RESET_FPMODE = 233,
+ G_GET_ROUNDING = 234,
+ G_SET_ROUNDING = 235,
+ G_PTR_ADD = 236,
+ G_PTRMASK = 237,
+ G_SMIN = 238,
+ G_SMAX = 239,
+ G_UMIN = 240,
+ G_UMAX = 241,
+ G_ABS = 242,
+ G_LROUND = 243,
+ G_LLROUND = 244,
+ G_BR = 245,
+ G_BRJT = 246,
+ G_VSCALE = 247,
+ G_INSERT_SUBVECTOR = 248,
+ G_EXTRACT_SUBVECTOR = 249,
+ G_INSERT_VECTOR_ELT = 250,
+ G_EXTRACT_VECTOR_ELT = 251,
+ G_SHUFFLE_VECTOR = 252,
+ G_SPLAT_VECTOR = 253,
+ G_STEP_VECTOR = 254,
+ G_VECTOR_COMPRESS = 255,
+ G_CTTZ = 256,
+ G_CTTZ_ZERO_UNDEF = 257,
+ G_CTLZ = 258,
+ G_CTLZ_ZERO_UNDEF = 259,
+ G_CTPOP = 260,
+ G_BSWAP = 261,
+ G_BITREVERSE = 262,
+ G_FCEIL = 263,
+ G_FCOS = 264,
+ G_FSIN = 265,
+ G_FSINCOS = 266,
+ G_FTAN = 267,
+ G_FACOS = 268,
+ G_FASIN = 269,
+ G_FATAN = 270,
+ G_FATAN2 = 271,
+ G_FCOSH = 272,
+ G_FSINH = 273,
+ G_FTANH = 274,
+ G_FSQRT = 275,
+ G_FFLOOR = 276,
+ G_FRINT = 277,
+ G_FNEARBYINT = 278,
+ G_ADDRSPACE_CAST = 279,
+ G_BLOCK_ADDR = 280,
+ G_JUMP_TABLE = 281,
+ G_DYN_STACKALLOC = 282,
+ G_STACKSAVE = 283,
+ G_STACKRESTORE = 284,
+ G_STRICT_FADD = 285,
+ G_STRICT_FSUB = 286,
+ G_STRICT_FMUL = 287,
+ G_STRICT_FDIV = 288,
+ G_STRICT_FREM = 289,
+ G_STRICT_FMA = 290,
+ G_STRICT_FSQRT = 291,
+ G_STRICT_FLDEXP = 292,
+ G_READ_REGISTER = 293,
+ G_WRITE_REGISTER = 294,
+ G_MEMCPY = 295,
+ G_MEMCPY_INLINE = 296,
+ G_MEMMOVE = 297,
+ G_MEMSET = 298,
+ G_BZERO = 299,
+ G_TRAP = 300,
+ G_DEBUGTRAP = 301,
+ G_UBSANTRAP = 302,
+ G_VECREDUCE_SEQ_FADD = 303,
+ G_VECREDUCE_SEQ_FMUL = 304,
+ G_VECREDUCE_FADD = 305,
+ G_VECREDUCE_FMUL = 306,
+ G_VECREDUCE_FMAX = 307,
+ G_VECREDUCE_FMIN = 308,
+ G_VECREDUCE_FMAXIMUM = 309,
+ G_VECREDUCE_FMINIMUM = 310,
+ G_VECREDUCE_ADD = 311,
+ G_VECREDUCE_MUL = 312,
+ G_VECREDUCE_AND = 313,
+ G_VECREDUCE_OR = 314,
+ G_VECREDUCE_XOR = 315,
+ G_VECREDUCE_SMAX = 316,
+ G_VECREDUCE_SMIN = 317,
+ G_VECREDUCE_UMAX = 318,
+ G_VECREDUCE_UMIN = 319,
+ G_SBFX = 320,
+ G_UBFX = 321,
+ ADD16ri_DB = 322,
+ ADD16rr_DB = 323,
+ ADD32ri_DB = 324,
+ ADD32rr_DB = 325,
+ ADD64ri32_DB = 326,
+ ADD64rr_DB = 327,
+ ADD8ri_DB = 328,
+ ADD8rr_DB = 329,
+ AVX1_SETALLONES = 330,
+ AVX2_SETALLONES = 331,
+ AVX512_128_SET0 = 332,
+ AVX512_128_SETALLONES = 333,
+ AVX512_256_SET0 = 334,
+ AVX512_256_SETALLONES = 335,
+ AVX512_512_SET0 = 336,
+ AVX512_512_SETALLONES = 337,
+ AVX512_512_SEXT_MASK_32 = 338,
+ AVX512_512_SEXT_MASK_64 = 339,
+ AVX512_FsFLD0F128 = 340,
+ AVX512_FsFLD0SD = 341,
+ AVX512_FsFLD0SH = 342,
+ AVX512_FsFLD0SS = 343,
+ AVX_SET0 = 344,
+ CALL64m_RVMARKER = 345,
+ CALL64pcrel32_RVMARKER = 346,
+ CALL64r_ImpCall = 347,
+ CALL64r_RVMARKER = 348,
+ FsFLD0F128 = 349,
+ FsFLD0SD = 350,
+ FsFLD0SH = 351,
+ FsFLD0SS = 352,
+ G_FILD = 353,
+ G_FIST = 354,
+ G_FLDCW16 = 355,
+ G_FNSTCW16 = 356,
+ INDIRECT_THUNK_CALL32 = 357,
+ INDIRECT_THUNK_CALL64 = 358,
+ INDIRECT_THUNK_TCRETURN32 = 359,
+ INDIRECT_THUNK_TCRETURN64 = 360,
+ KSET0B = 361,
+ KSET0D = 362,
+ KSET0Q = 363,
+ KSET0W = 364,
+ KSET1B = 365,
+ KSET1D = 366,
+ KSET1Q = 367,
+ KSET1W = 368,
+ LCMPXCHG16B_NO_RBX = 369,
+ LCMPXCHG16B_SAVE_RBX = 370,
+ MMX_SET0 = 371,
+ MORESTACK_RET = 372,
+ MORESTACK_RET_RESTORE_R10 = 373,
+ MOV32ImmSExti8 = 374,
+ MOV32r0 = 375,
+ MOV32r1 = 376,
+ MOV32r_1 = 377,
+ MOV32ri64 = 378,
+ MOV64ImmSExti8 = 379,
+ MOVSHPmr = 380,
+ MOVSHPrm = 381,
+ MWAITX = 382,
+ MWAITX_SAVE_RBX = 383,
+ PLDTILECFGV = 384,
+ PLEA32r = 385,
+ PLEA64r = 386,
+ PTDPBF16PSV = 387,
+ PTDPBSSDV = 388,
+ PTDPBSUDV = 389,
+ PTDPBUSDV = 390,
+ PTDPBUUDV = 391,
+ PTDPFP16PSV = 392,
+ PTILELOADDRST1V = 393,
+ PTILELOADDRSV = 394,
+ PTILELOADDT1V = 395,
+ PTILELOADDV = 396,
+ PTILESTOREDV = 397,
+ PTILEZEROV = 398,
+ RDFLAGS32 = 399,
+ RDFLAGS64 = 400,
+ SEH_BeginEpilogue = 401,
+ SEH_EndEpilogue = 402,
+ SEH_EndPrologue = 403,
+ SEH_PushFrame = 404,
+ SEH_PushReg = 405,
+ SEH_SaveReg = 406,
+ SEH_SaveXMM = 407,
+ SEH_SetFrame = 408,
+ SEH_StackAlign = 409,
+ SEH_StackAlloc = 410,
+ SEH_UnwindV2Start = 411,
+ SEH_UnwindVersion = 412,
+ SETB_C32r = 413,
+ SETB_C64r = 414,
+ SHLDROT32ri = 415,
+ SHLDROT64ri = 416,
+ SHRDROT32ri = 417,
+ SHRDROT64ri = 418,
+ VMOVAPSZ128mr_NOVLX = 419,
+ VMOVAPSZ128rm_NOVLX = 420,
+ VMOVAPSZ256mr_NOVLX = 421,
+ VMOVAPSZ256rm_NOVLX = 422,
+ VMOVUPSZ128mr_NOVLX = 423,
+ VMOVUPSZ128rm_NOVLX = 424,
+ VMOVUPSZ256mr_NOVLX = 425,
+ VMOVUPSZ256rm_NOVLX = 426,
+ V_SET0 = 427,
+ V_SETALLONES = 428,
+ WRFLAGS32 = 429,
+ WRFLAGS64 = 430,
+ XABORT_DEF = 431,
+ XOR32_FP = 432,
+ XOR64_FP = 433,
+ AAA = 434,
+ AAD8i8 = 435,
+ AADD32mr = 436,
+ AADD32mr_EVEX = 437,
+ AADD64mr = 438,
+ AADD64mr_EVEX = 439,
+ AAM8i8 = 440,
+ AAND32mr = 441,
+ AAND32mr_EVEX = 442,
+ AAND64mr = 443,
+ AAND64mr_EVEX = 444,
+ AAS = 445,
+ ABS_F = 446,
+ ABS_Fp32 = 447,
+ ABS_Fp64 = 448,
+ ABS_Fp80 = 449,
+ ADC16i16 = 450,
+ ADC16mi = 451,
+ ADC16mi8 = 452,
+ ADC16mi8_EVEX = 453,
+ ADC16mi8_ND = 454,
+ ADC16mi_EVEX = 455,
+ ADC16mi_ND = 456,
+ ADC16mr = 457,
+ ADC16mr_EVEX = 458,
+ ADC16mr_ND = 459,
+ ADC16ri = 460,
+ ADC16ri8 = 461,
+ ADC16ri8_EVEX = 462,
+ ADC16ri8_ND = 463,
+ ADC16ri_EVEX = 464,
+ ADC16ri_ND = 465,
+ ADC16rm = 466,
+ ADC16rm_EVEX = 467,
+ ADC16rm_ND = 468,
+ ADC16rr = 469,
+ ADC16rr_EVEX = 470,
+ ADC16rr_EVEX_REV = 471,
+ ADC16rr_ND = 472,
+ ADC16rr_ND_REV = 473,
+ ADC16rr_REV = 474,
+ ADC32i32 = 475,
+ ADC32mi = 476,
+ ADC32mi8 = 477,
+ ADC32mi8_EVEX = 478,
+ ADC32mi8_ND = 479,
+ ADC32mi_EVEX = 480,
+ ADC32mi_ND = 481,
+ ADC32mr = 482,
+ ADC32mr_EVEX = 483,
+ ADC32mr_ND = 484,
+ ADC32ri = 485,
+ ADC32ri8 = 486,
+ ADC32ri8_EVEX = 487,
+ ADC32ri8_ND = 488,
+ ADC32ri_EVEX = 489,
+ ADC32ri_ND = 490,
+ ADC32rm = 491,
+ ADC32rm_EVEX = 492,
+ ADC32rm_ND = 493,
+ ADC32rr = 494,
+ ADC32rr_EVEX = 495,
+ ADC32rr_EVEX_REV = 496,
+ ADC32rr_ND = 497,
+ ADC32rr_ND_REV = 498,
+ ADC32rr_REV = 499,
+ ADC64i32 = 500,
+ ADC64mi32 = 501,
+ ADC64mi32_EVEX = 502,
+ ADC64mi32_ND = 503,
+ ADC64mi8 = 504,
+ ADC64mi8_EVEX = 505,
+ ADC64mi8_ND = 506,
+ ADC64mr = 507,
+ ADC64mr_EVEX = 508,
+ ADC64mr_ND = 509,
+ ADC64ri32 = 510,
+ ADC64ri32_EVEX = 511,
+ ADC64ri32_ND = 512,
+ ADC64ri8 = 513,
+ ADC64ri8_EVEX = 514,
+ ADC64ri8_ND = 515,
+ ADC64rm = 516,
+ ADC64rm_EVEX = 517,
+ ADC64rm_ND = 518,
+ ADC64rr = 519,
+ ADC64rr_EVEX = 520,
+ ADC64rr_EVEX_REV = 521,
+ ADC64rr_ND = 522,
+ ADC64rr_ND_REV = 523,
+ ADC64rr_REV = 524,
+ ADC8i8 = 525,
+ ADC8mi = 526,
+ ADC8mi8 = 527,
+ ADC8mi_EVEX = 528,
+ ADC8mi_ND = 529,
+ ADC8mr = 530,
+ ADC8mr_EVEX = 531,
+ ADC8mr_ND = 532,
+ ADC8ri = 533,
+ ADC8ri8 = 534,
+ ADC8ri_EVEX = 535,
+ ADC8ri_ND = 536,
+ ADC8rm = 537,
+ ADC8rm_EVEX = 538,
+ ADC8rm_ND = 539,
+ ADC8rr = 540,
+ ADC8rr_EVEX = 541,
+ ADC8rr_EVEX_REV = 542,
+ ADC8rr_ND = 543,
+ ADC8rr_ND_REV = 544,
+ ADC8rr_REV = 545,
+ ADCX32rm = 546,
+ ADCX32rm_EVEX = 547,
+ ADCX32rm_ND = 548,
+ ADCX32rr = 549,
+ ADCX32rr_EVEX = 550,
+ ADCX32rr_ND = 551,
+ ADCX64rm = 552,
+ ADCX64rm_EVEX = 553,
+ ADCX64rm_ND = 554,
+ ADCX64rr = 555,
+ ADCX64rr_EVEX = 556,
+ ADCX64rr_ND = 557,
+ ADD16i16 = 558,
+ ADD16mi = 559,
+ ADD16mi8 = 560,
+ ADD16mi8_EVEX = 561,
+ ADD16mi8_ND = 562,
+ ADD16mi8_NF = 563,
+ ADD16mi8_NF_ND = 564,
+ ADD16mi_EVEX = 565,
+ ADD16mi_ND = 566,
+ ADD16mi_NF = 567,
+ ADD16mi_NF_ND = 568,
+ ADD16mr = 569,
+ ADD16mr_EVEX = 570,
+ ADD16mr_ND = 571,
+ ADD16mr_NF = 572,
+ ADD16mr_NF_ND = 573,
+ ADD16ri = 574,
+ ADD16ri8 = 575,
+ ADD16ri8_EVEX = 576,
+ ADD16ri8_ND = 577,
+ ADD16ri8_NF = 578,
+ ADD16ri8_NF_ND = 579,
+ ADD16ri_EVEX = 580,
+ ADD16ri_ND = 581,
+ ADD16ri_NF = 582,
+ ADD16ri_NF_ND = 583,
+ ADD16rm = 584,
+ ADD16rm_EVEX = 585,
+ ADD16rm_ND = 586,
+ ADD16rm_NF = 587,
+ ADD16rm_NF_ND = 588,
+ ADD16rr = 589,
+ ADD16rr_EVEX = 590,
+ ADD16rr_EVEX_REV = 591,
+ ADD16rr_ND = 592,
+ ADD16rr_ND_REV = 593,
+ ADD16rr_NF = 594,
+ ADD16rr_NF_ND = 595,
+ ADD16rr_NF_ND_REV = 596,
+ ADD16rr_NF_REV = 597,
+ ADD16rr_REV = 598,
+ ADD32i32 = 599,
+ ADD32mi = 600,
+ ADD32mi8 = 601,
+ ADD32mi8_EVEX = 602,
+ ADD32mi8_ND = 603,
+ ADD32mi8_NF = 604,
+ ADD32mi8_NF_ND = 605,
+ ADD32mi_EVEX = 606,
+ ADD32mi_ND = 607,
+ ADD32mi_NF = 608,
+ ADD32mi_NF_ND = 609,
+ ADD32mr = 610,
+ ADD32mr_EVEX = 611,
+ ADD32mr_ND = 612,
+ ADD32mr_NF = 613,
+ ADD32mr_NF_ND = 614,
+ ADD32ri = 615,
+ ADD32ri8 = 616,
+ ADD32ri8_EVEX = 617,
+ ADD32ri8_ND = 618,
+ ADD32ri8_NF = 619,
+ ADD32ri8_NF_ND = 620,
+ ADD32ri_EVEX = 621,
+ ADD32ri_ND = 622,
+ ADD32ri_NF = 623,
+ ADD32ri_NF_ND = 624,
+ ADD32rm = 625,
+ ADD32rm_EVEX = 626,
+ ADD32rm_ND = 627,
+ ADD32rm_NF = 628,
+ ADD32rm_NF_ND = 629,
+ ADD32rr = 630,
+ ADD32rr_EVEX = 631,
+ ADD32rr_EVEX_REV = 632,
+ ADD32rr_ND = 633,
+ ADD32rr_ND_REV = 634,
+ ADD32rr_NF = 635,
+ ADD32rr_NF_ND = 636,
+ ADD32rr_NF_ND_REV = 637,
+ ADD32rr_NF_REV = 638,
+ ADD32rr_REV = 639,
+ ADD64i32 = 640,
+ ADD64mi32 = 641,
+ ADD64mi32_EVEX = 642,
+ ADD64mi32_ND = 643,
+ ADD64mi32_NF = 644,
+ ADD64mi32_NF_ND = 645,
+ ADD64mi8 = 646,
+ ADD64mi8_EVEX = 647,
+ ADD64mi8_ND = 648,
+ ADD64mi8_NF = 649,
+ ADD64mi8_NF_ND = 650,
+ ADD64mr = 651,
+ ADD64mr_EVEX = 652,
+ ADD64mr_ND = 653,
+ ADD64mr_NF = 654,
+ ADD64mr_NF_ND = 655,
+ ADD64ri32 = 656,
+ ADD64ri32_EVEX = 657,
+ ADD64ri32_ND = 658,
+ ADD64ri32_NF = 659,
+ ADD64ri32_NF_ND = 660,
+ ADD64ri8 = 661,
+ ADD64ri8_EVEX = 662,
+ ADD64ri8_ND = 663,
+ ADD64ri8_NF = 664,
+ ADD64ri8_NF_ND = 665,
+ ADD64rm = 666,
+ ADD64rm_EVEX = 667,
+ ADD64rm_ND = 668,
+ ADD64rm_NF = 669,
+ ADD64rm_NF_ND = 670,
+ ADD64rr = 671,
+ ADD64rr_EVEX = 672,
+ ADD64rr_EVEX_REV = 673,
+ ADD64rr_ND = 674,
+ ADD64rr_ND_REV = 675,
+ ADD64rr_NF = 676,
+ ADD64rr_NF_ND = 677,
+ ADD64rr_NF_ND_REV = 678,
+ ADD64rr_NF_REV = 679,
+ ADD64rr_REV = 680,
+ ADD8i8 = 681,
+ ADD8mi = 682,
+ ADD8mi8 = 683,
+ ADD8mi_EVEX = 684,
+ ADD8mi_ND = 685,
+ ADD8mi_NF = 686,
+ ADD8mi_NF_ND = 687,
+ ADD8mr = 688,
+ ADD8mr_EVEX = 689,
+ ADD8mr_ND = 690,
+ ADD8mr_NF = 691,
+ ADD8mr_NF_ND = 692,
+ ADD8ri = 693,
+ ADD8ri8 = 694,
+ ADD8ri_EVEX = 695,
+ ADD8ri_ND = 696,
+ ADD8ri_NF = 697,
+ ADD8ri_NF_ND = 698,
+ ADD8rm = 699,
+ ADD8rm_EVEX = 700,
+ ADD8rm_ND = 701,
+ ADD8rm_NF = 702,
+ ADD8rm_NF_ND = 703,
+ ADD8rr = 704,
+ ADD8rr_EVEX = 705,
+ ADD8rr_EVEX_REV = 706,
+ ADD8rr_ND = 707,
+ ADD8rr_ND_REV = 708,
+ ADD8rr_NF = 709,
+ ADD8rr_NF_ND = 710,
+ ADD8rr_NF_ND_REV = 711,
+ ADD8rr_NF_REV = 712,
+ ADD8rr_REV = 713,
+ ADDPDrm = 714,
+ ADDPDrr = 715,
+ ADDPSrm = 716,
+ ADDPSrr = 717,
+ ADDR16_PREFIX = 718,
+ ADDR32_PREFIX = 719,
+ ADDSDrm = 720,
+ ADDSDrm_Int = 721,
+ ADDSDrr = 722,
+ ADDSDrr_Int = 723,
+ ADDSSrm = 724,
+ ADDSSrm_Int = 725,
+ ADDSSrr = 726,
+ ADDSSrr_Int = 727,
+ ADDSUBPDrm = 728,
+ ADDSUBPDrr = 729,
+ ADDSUBPSrm = 730,
+ ADDSUBPSrr = 731,
+ ADD_F32m = 732,
+ ADD_F64m = 733,
+ ADD_FI16m = 734,
+ ADD_FI32m = 735,
+ ADD_FPrST0 = 736,
+ ADD_FST0r = 737,
+ ADD_Fp32 = 738,
+ ADD_Fp32m = 739,
+ ADD_Fp64 = 740,
+ ADD_Fp64m = 741,
+ ADD_Fp64m32 = 742,
+ ADD_Fp80 = 743,
+ ADD_Fp80m32 = 744,
+ ADD_Fp80m64 = 745,
+ ADD_FpI16m32 = 746,
+ ADD_FpI16m64 = 747,
+ ADD_FpI16m80 = 748,
+ ADD_FpI32m32 = 749,
+ ADD_FpI32m64 = 750,
+ ADD_FpI32m80 = 751,
+ ADD_FrST0 = 752,
+ ADJCALLSTACKDOWN32 = 753,
+ ADJCALLSTACKDOWN64 = 754,
+ ADJCALLSTACKUP32 = 755,
+ ADJCALLSTACKUP64 = 756,
+ ADOX32rm = 757,
+ ADOX32rm_EVEX = 758,
+ ADOX32rm_ND = 759,
+ ADOX32rr = 760,
+ ADOX32rr_EVEX = 761,
+ ADOX32rr_ND = 762,
+ ADOX64rm = 763,
+ ADOX64rm_EVEX = 764,
+ ADOX64rm_ND = 765,
+ ADOX64rr = 766,
+ ADOX64rr_EVEX = 767,
+ ADOX64rr_ND = 768,
+ AESDEC128KL = 769,
+ AESDEC256KL = 770,
+ AESDECLASTrm = 771,
+ AESDECLASTrr = 772,
+ AESDECWIDE128KL = 773,
+ AESDECWIDE256KL = 774,
+ AESDECrm = 775,
+ AESDECrr = 776,
+ AESENC128KL = 777,
+ AESENC256KL = 778,
+ AESENCLASTrm = 779,
+ AESENCLASTrr = 780,
+ AESENCWIDE128KL = 781,
+ AESENCWIDE256KL = 782,
+ AESENCrm = 783,
+ AESENCrr = 784,
+ AESIMCrm = 785,
+ AESIMCrr = 786,
+ AESKEYGENASSISTrmi = 787,
+ AESKEYGENASSISTrri = 788,
+ AND16i16 = 789,
+ AND16mi = 790,
+ AND16mi8 = 791,
+ AND16mi8_EVEX = 792,
+ AND16mi8_ND = 793,
+ AND16mi8_NF = 794,
+ AND16mi8_NF_ND = 795,
+ AND16mi_EVEX = 796,
+ AND16mi_ND = 797,
+ AND16mi_NF = 798,
+ AND16mi_NF_ND = 799,
+ AND16mr = 800,
+ AND16mr_EVEX = 801,
+ AND16mr_ND = 802,
+ AND16mr_NF = 803,
+ AND16mr_NF_ND = 804,
+ AND16ri = 805,
+ AND16ri8 = 806,
+ AND16ri8_EVEX = 807,
+ AND16ri8_ND = 808,
+ AND16ri8_NF = 809,
+ AND16ri8_NF_ND = 810,
+ AND16ri_EVEX = 811,
+ AND16ri_ND = 812,
+ AND16ri_NF = 813,
+ AND16ri_NF_ND = 814,
+ AND16rm = 815,
+ AND16rm_EVEX = 816,
+ AND16rm_ND = 817,
+ AND16rm_NF = 818,
+ AND16rm_NF_ND = 819,
+ AND16rr = 820,
+ AND16rr_EVEX = 821,
+ AND16rr_EVEX_REV = 822,
+ AND16rr_ND = 823,
+ AND16rr_ND_REV = 824,
+ AND16rr_NF = 825,
+ AND16rr_NF_ND = 826,
+ AND16rr_NF_ND_REV = 827,
+ AND16rr_NF_REV = 828,
+ AND16rr_REV = 829,
+ AND32i32 = 830,
+ AND32mi = 831,
+ AND32mi8 = 832,
+ AND32mi8_EVEX = 833,
+ AND32mi8_ND = 834,
+ AND32mi8_NF = 835,
+ AND32mi8_NF_ND = 836,
+ AND32mi_EVEX = 837,
+ AND32mi_ND = 838,
+ AND32mi_NF = 839,
+ AND32mi_NF_ND = 840,
+ AND32mr = 841,
+ AND32mr_EVEX = 842,
+ AND32mr_ND = 843,
+ AND32mr_NF = 844,
+ AND32mr_NF_ND = 845,
+ AND32ri = 846,
+ AND32ri8 = 847,
+ AND32ri8_EVEX = 848,
+ AND32ri8_ND = 849,
+ AND32ri8_NF = 850,
+ AND32ri8_NF_ND = 851,
+ AND32ri_EVEX = 852,
+ AND32ri_ND = 853,
+ AND32ri_NF = 854,
+ AND32ri_NF_ND = 855,
+ AND32rm = 856,
+ AND32rm_EVEX = 857,
+ AND32rm_ND = 858,
+ AND32rm_NF = 859,
+ AND32rm_NF_ND = 860,
+ AND32rr = 861,
+ AND32rr_EVEX = 862,
+ AND32rr_EVEX_REV = 863,
+ AND32rr_ND = 864,
+ AND32rr_ND_REV = 865,
+ AND32rr_NF = 866,
+ AND32rr_NF_ND = 867,
+ AND32rr_NF_ND_REV = 868,
+ AND32rr_NF_REV = 869,
+ AND32rr_REV = 870,
+ AND64i32 = 871,
+ AND64mi32 = 872,
+ AND64mi32_EVEX = 873,
+ AND64mi32_ND = 874,
+ AND64mi32_NF = 875,
+ AND64mi32_NF_ND = 876,
+ AND64mi8 = 877,
+ AND64mi8_EVEX = 878,
+ AND64mi8_ND = 879,
+ AND64mi8_NF = 880,
+ AND64mi8_NF_ND = 881,
+ AND64mr = 882,
+ AND64mr_EVEX = 883,
+ AND64mr_ND = 884,
+ AND64mr_NF = 885,
+ AND64mr_NF_ND = 886,
+ AND64ri32 = 887,
+ AND64ri32_EVEX = 888,
+ AND64ri32_ND = 889,
+ AND64ri32_NF = 890,
+ AND64ri32_NF_ND = 891,
+ AND64ri8 = 892,
+ AND64ri8_EVEX = 893,
+ AND64ri8_ND = 894,
+ AND64ri8_NF = 895,
+ AND64ri8_NF_ND = 896,
+ AND64rm = 897,
+ AND64rm_EVEX = 898,
+ AND64rm_ND = 899,
+ AND64rm_NF = 900,
+ AND64rm_NF_ND = 901,
+ AND64rr = 902,
+ AND64rr_EVEX = 903,
+ AND64rr_EVEX_REV = 904,
+ AND64rr_ND = 905,
+ AND64rr_ND_REV = 906,
+ AND64rr_NF = 907,
+ AND64rr_NF_ND = 908,
+ AND64rr_NF_ND_REV = 909,
+ AND64rr_NF_REV = 910,
+ AND64rr_REV = 911,
+ AND8i8 = 912,
+ AND8mi = 913,
+ AND8mi8 = 914,
+ AND8mi_EVEX = 915,
+ AND8mi_ND = 916,
+ AND8mi_NF = 917,
+ AND8mi_NF_ND = 918,
+ AND8mr = 919,
+ AND8mr_EVEX = 920,
+ AND8mr_ND = 921,
+ AND8mr_NF = 922,
+ AND8mr_NF_ND = 923,
+ AND8ri = 924,
+ AND8ri8 = 925,
+ AND8ri_EVEX = 926,
+ AND8ri_ND = 927,
+ AND8ri_NF = 928,
+ AND8ri_NF_ND = 929,
+ AND8rm = 930,
+ AND8rm_EVEX = 931,
+ AND8rm_ND = 932,
+ AND8rm_NF = 933,
+ AND8rm_NF_ND = 934,
+ AND8rr = 935,
+ AND8rr_EVEX = 936,
+ AND8rr_EVEX_REV = 937,
+ AND8rr_ND = 938,
+ AND8rr_ND_REV = 939,
+ AND8rr_NF = 940,
+ AND8rr_NF_ND = 941,
+ AND8rr_NF_ND_REV = 942,
+ AND8rr_NF_REV = 943,
+ AND8rr_REV = 944,
+ ANDN32rm = 945,
+ ANDN32rm_EVEX = 946,
+ ANDN32rm_NF = 947,
+ ANDN32rr = 948,
+ ANDN32rr_EVEX = 949,
+ ANDN32rr_NF = 950,
+ ANDN64rm = 951,
+ ANDN64rm_EVEX = 952,
+ ANDN64rm_NF = 953,
+ ANDN64rr = 954,
+ ANDN64rr_EVEX = 955,
+ ANDN64rr_NF = 956,
+ ANDNPDrm = 957,
+ ANDNPDrr = 958,
+ ANDNPSrm = 959,
+ ANDNPSrr = 960,
+ ANDPDrm = 961,
+ ANDPDrr = 962,
+ ANDPSrm = 963,
+ ANDPSrr = 964,
+ AOR32mr = 965,
+ AOR32mr_EVEX = 966,
+ AOR64mr = 967,
+ AOR64mr_EVEX = 968,
+ ARPL16mr = 969,
+ ARPL16rr = 970,
+ ASAN_CHECK_MEMACCESS = 971,
+ AXOR32mr = 972,
+ AXOR32mr_EVEX = 973,
+ AXOR64mr = 974,
+ AXOR64mr_EVEX = 975,
+ BEXTR32rm = 976,
+ BEXTR32rm_EVEX = 977,
+ BEXTR32rm_NF = 978,
+ BEXTR32rr = 979,
+ BEXTR32rr_EVEX = 980,
+ BEXTR32rr_NF = 981,
+ BEXTR64rm = 982,
+ BEXTR64rm_EVEX = 983,
+ BEXTR64rm_NF = 984,
+ BEXTR64rr = 985,
+ BEXTR64rr_EVEX = 986,
+ BEXTR64rr_NF = 987,
+ BEXTRI32mi = 988,
+ BEXTRI32ri = 989,
+ BEXTRI64mi = 990,
+ BEXTRI64ri = 991,
+ BLCFILL32rm = 992,
+ BLCFILL32rr = 993,
+ BLCFILL64rm = 994,
+ BLCFILL64rr = 995,
+ BLCI32rm = 996,
+ BLCI32rr = 997,
+ BLCI64rm = 998,
+ BLCI64rr = 999,
+ BLCIC32rm = 1000,
+ BLCIC32rr = 1001,
+ BLCIC64rm = 1002,
+ BLCIC64rr = 1003,
+ BLCMSK32rm = 1004,
+ BLCMSK32rr = 1005,
+ BLCMSK64rm = 1006,
+ BLCMSK64rr = 1007,
+ BLCS32rm = 1008,
+ BLCS32rr = 1009,
+ BLCS64rm = 1010,
+ BLCS64rr = 1011,
+ BLENDPDrmi = 1012,
+ BLENDPDrri = 1013,
+ BLENDPSrmi = 1014,
+ BLENDPSrri = 1015,
+ BLENDVPDrm0 = 1016,
+ BLENDVPDrr0 = 1017,
+ BLENDVPSrm0 = 1018,
+ BLENDVPSrr0 = 1019,
+ BLSFILL32rm = 1020,
+ BLSFILL32rr = 1021,
+ BLSFILL64rm = 1022,
+ BLSFILL64rr = 1023,
+ BLSI32rm = 1024,
+ BLSI32rm_EVEX = 1025,
+ BLSI32rm_NF = 1026,
+ BLSI32rr = 1027,
+ BLSI32rr_EVEX = 1028,
+ BLSI32rr_NF = 1029,
+ BLSI64rm = 1030,
+ BLSI64rm_EVEX = 1031,
+ BLSI64rm_NF = 1032,
+ BLSI64rr = 1033,
+ BLSI64rr_EVEX = 1034,
+ BLSI64rr_NF = 1035,
+ BLSIC32rm = 1036,
+ BLSIC32rr = 1037,
+ BLSIC64rm = 1038,
+ BLSIC64rr = 1039,
+ BLSMSK32rm = 1040,
+ BLSMSK32rm_EVEX = 1041,
+ BLSMSK32rm_NF = 1042,
+ BLSMSK32rr = 1043,
+ BLSMSK32rr_EVEX = 1044,
+ BLSMSK32rr_NF = 1045,
+ BLSMSK64rm = 1046,
+ BLSMSK64rm_EVEX = 1047,
+ BLSMSK64rm_NF = 1048,
+ BLSMSK64rr = 1049,
+ BLSMSK64rr_EVEX = 1050,
+ BLSMSK64rr_NF = 1051,
+ BLSR32rm = 1052,
+ BLSR32rm_EVEX = 1053,
+ BLSR32rm_NF = 1054,
+ BLSR32rr = 1055,
+ BLSR32rr_EVEX = 1056,
+ BLSR32rr_NF = 1057,
+ BLSR64rm = 1058,
+ BLSR64rm_EVEX = 1059,
+ BLSR64rm_NF = 1060,
+ BLSR64rr = 1061,
+ BLSR64rr_EVEX = 1062,
+ BLSR64rr_NF = 1063,
+ BOUNDS16rm = 1064,
+ BOUNDS32rm = 1065,
+ BSF16rm = 1066,
+ BSF16rr = 1067,
+ BSF32rm = 1068,
+ BSF32rr = 1069,
+ BSF64rm = 1070,
+ BSF64rr = 1071,
+ BSR16rm = 1072,
+ BSR16rr = 1073,
+ BSR32rm = 1074,
+ BSR32rr = 1075,
+ BSR64rm = 1076,
+ BSR64rr = 1077,
+ BSWAP16r_BAD = 1078,
+ BSWAP32r = 1079,
+ BSWAP64r = 1080,
+ BT16mi8 = 1081,
+ BT16mr = 1082,
+ BT16ri8 = 1083,
+ BT16rr = 1084,
+ BT32mi8 = 1085,
+ BT32mr = 1086,
+ BT32ri8 = 1087,
+ BT32rr = 1088,
+ BT64mi8 = 1089,
+ BT64mr = 1090,
+ BT64ri8 = 1091,
+ BT64rr = 1092,
+ BTC16mi8 = 1093,
+ BTC16mr = 1094,
+ BTC16ri8 = 1095,
+ BTC16rr = 1096,
+ BTC32mi8 = 1097,
+ BTC32mr = 1098,
+ BTC32ri8 = 1099,
+ BTC32rr = 1100,
+ BTC64mi8 = 1101,
+ BTC64mr = 1102,
+ BTC64ri8 = 1103,
+ BTC64rr = 1104,
+ BTR16mi8 = 1105,
+ BTR16mr = 1106,
+ BTR16ri8 = 1107,
+ BTR16rr = 1108,
+ BTR32mi8 = 1109,
+ BTR32mr = 1110,
+ BTR32ri8 = 1111,
+ BTR32rr = 1112,
+ BTR64mi8 = 1113,
+ BTR64mr = 1114,
+ BTR64ri8 = 1115,
+ BTR64rr = 1116,
+ BTS16mi8 = 1117,
+ BTS16mr = 1118,
+ BTS16ri8 = 1119,
+ BTS16rr = 1120,
+ BTS32mi8 = 1121,
+ BTS32mr = 1122,
+ BTS32ri8 = 1123,
+ BTS32rr = 1124,
+ BTS64mi8 = 1125,
+ BTS64mr = 1126,
+ BTS64ri8 = 1127,
+ BTS64rr = 1128,
+ BZHI32rm = 1129,
+ BZHI32rm_EVEX = 1130,
+ BZHI32rm_NF = 1131,
+ BZHI32rr = 1132,
+ BZHI32rr_EVEX = 1133,
+ BZHI32rr_NF = 1134,
+ BZHI64rm = 1135,
+ BZHI64rm_EVEX = 1136,
+ BZHI64rm_NF = 1137,
+ BZHI64rr = 1138,
+ BZHI64rr_EVEX = 1139,
+ BZHI64rr_NF = 1140,
+ CALL16m = 1141,
+ CALL16m_NT = 1142,
+ CALL16r = 1143,
+ CALL16r_NT = 1144,
+ CALL32m = 1145,
+ CALL32m_NT = 1146,
+ CALL32r = 1147,
+ CALL32r_NT = 1148,
+ CALL64m = 1149,
+ CALL64m_NT = 1150,
+ CALL64pcrel32 = 1151,
+ CALL64r = 1152,
+ CALL64r_NT = 1153,
+ CALLpcrel16 = 1154,
+ CALLpcrel32 = 1155,
+ CATCHRET = 1156,
+ CBW = 1157,
+ CCMP16mi = 1158,
+ CCMP16mi8 = 1159,
+ CCMP16mr = 1160,
+ CCMP16ri = 1161,
+ CCMP16ri8 = 1162,
+ CCMP16rm = 1163,
+ CCMP16rr = 1164,
+ CCMP16rr_REV = 1165,
+ CCMP32mi = 1166,
+ CCMP32mi8 = 1167,
+ CCMP32mr = 1168,
+ CCMP32ri = 1169,
+ CCMP32ri8 = 1170,
+ CCMP32rm = 1171,
+ CCMP32rr = 1172,
+ CCMP32rr_REV = 1173,
+ CCMP64mi32 = 1174,
+ CCMP64mi8 = 1175,
+ CCMP64mr = 1176,
+ CCMP64ri32 = 1177,
+ CCMP64ri8 = 1178,
+ CCMP64rm = 1179,
+ CCMP64rr = 1180,
+ CCMP64rr_REV = 1181,
+ CCMP8mi = 1182,
+ CCMP8mr = 1183,
+ CCMP8ri = 1184,
+ CCMP8rm = 1185,
+ CCMP8rr = 1186,
+ CCMP8rr_REV = 1187,
+ CDQ = 1188,
+ CDQE = 1189,
+ CFCMOV16mr = 1190,
+ CFCMOV16rm = 1191,
+ CFCMOV16rm_ND = 1192,
+ CFCMOV16rr = 1193,
+ CFCMOV16rr_ND = 1194,
+ CFCMOV16rr_REV = 1195,
+ CFCMOV32mr = 1196,
+ CFCMOV32rm = 1197,
+ CFCMOV32rm_ND = 1198,
+ CFCMOV32rr = 1199,
+ CFCMOV32rr_ND = 1200,
+ CFCMOV32rr_REV = 1201,
+ CFCMOV64mr = 1202,
+ CFCMOV64rm = 1203,
+ CFCMOV64rm_ND = 1204,
+ CFCMOV64rr = 1205,
+ CFCMOV64rr_ND = 1206,
+ CFCMOV64rr_REV = 1207,
+ CHS_F = 1208,
+ CHS_Fp32 = 1209,
+ CHS_Fp64 = 1210,
+ CHS_Fp80 = 1211,
+ CLAC = 1212,
+ CLC = 1213,
+ CLD = 1214,
+ CLDEMOTE = 1215,
+ CLEANUPRET = 1216,
+ CLFLUSH = 1217,
+ CLFLUSHOPT = 1218,
+ CLGI = 1219,
+ CLI = 1220,
+ CLRSSBSY = 1221,
+ CLTS = 1222,
+ CLUI = 1223,
+ CLWB = 1224,
+ CLZERO32r = 1225,
+ CLZERO64r = 1226,
+ CMC = 1227,
+ CMOV16rm = 1228,
+ CMOV16rm_ND = 1229,
+ CMOV16rr = 1230,
+ CMOV16rr_ND = 1231,
+ CMOV32rm = 1232,
+ CMOV32rm_ND = 1233,
+ CMOV32rr = 1234,
+ CMOV32rr_ND = 1235,
+ CMOV64rm = 1236,
+ CMOV64rm_ND = 1237,
+ CMOV64rr = 1238,
+ CMOV64rr_ND = 1239,
+ CMOVBE_F = 1240,
+ CMOVBE_Fp32 = 1241,
+ CMOVBE_Fp64 = 1242,
+ CMOVBE_Fp80 = 1243,
+ CMOVB_F = 1244,
+ CMOVB_Fp32 = 1245,
+ CMOVB_Fp64 = 1246,
+ CMOVB_Fp80 = 1247,
+ CMOVE_F = 1248,
+ CMOVE_Fp32 = 1249,
+ CMOVE_Fp64 = 1250,
+ CMOVE_Fp80 = 1251,
+ CMOVNBE_F = 1252,
+ CMOVNBE_Fp32 = 1253,
+ CMOVNBE_Fp64 = 1254,
+ CMOVNBE_Fp80 = 1255,
+ CMOVNB_F = 1256,
+ CMOVNB_Fp32 = 1257,
+ CMOVNB_Fp64 = 1258,
+ CMOVNB_Fp80 = 1259,
+ CMOVNE_F = 1260,
+ CMOVNE_Fp32 = 1261,
+ CMOVNE_Fp64 = 1262,
+ CMOVNE_Fp80 = 1263,
+ CMOVNP_F = 1264,
+ CMOVNP_Fp32 = 1265,
+ CMOVNP_Fp64 = 1266,
+ CMOVNP_Fp80 = 1267,
+ CMOVP_F = 1268,
+ CMOVP_Fp32 = 1269,
+ CMOVP_Fp64 = 1270,
+ CMOVP_Fp80 = 1271,
+ CMOV_FR16 = 1272,
+ CMOV_FR16X = 1273,
+ CMOV_FR32 = 1274,
+ CMOV_FR32X = 1275,
+ CMOV_FR64 = 1276,
+ CMOV_FR64X = 1277,
+ CMOV_GR16 = 1278,
+ CMOV_GR32 = 1279,
+ CMOV_GR8 = 1280,
+ CMOV_RFP32 = 1281,
+ CMOV_RFP64 = 1282,
+ CMOV_RFP80 = 1283,
+ CMOV_VK1 = 1284,
+ CMOV_VK16 = 1285,
+ CMOV_VK2 = 1286,
+ CMOV_VK32 = 1287,
+ CMOV_VK4 = 1288,
+ CMOV_VK64 = 1289,
+ CMOV_VK8 = 1290,
+ CMOV_VR128 = 1291,
+ CMOV_VR128X = 1292,
+ CMOV_VR256 = 1293,
+ CMOV_VR256X = 1294,
+ CMOV_VR512 = 1295,
+ CMOV_VR64 = 1296,
+ CMP16i16 = 1297,
+ CMP16mi = 1298,
+ CMP16mi8 = 1299,
+ CMP16mr = 1300,
+ CMP16ri = 1301,
+ CMP16ri8 = 1302,
+ CMP16rm = 1303,
+ CMP16rr = 1304,
+ CMP16rr_REV = 1305,
+ CMP32i32 = 1306,
+ CMP32mi = 1307,
+ CMP32mi8 = 1308,
+ CMP32mr = 1309,
+ CMP32ri = 1310,
+ CMP32ri8 = 1311,
+ CMP32rm = 1312,
+ CMP32rr = 1313,
+ CMP32rr_REV = 1314,
+ CMP64i32 = 1315,
+ CMP64mi32 = 1316,
+ CMP64mi8 = 1317,
+ CMP64mr = 1318,
+ CMP64ri32 = 1319,
+ CMP64ri8 = 1320,
+ CMP64rm = 1321,
+ CMP64rr = 1322,
+ CMP64rr_REV = 1323,
+ CMP8i8 = 1324,
+ CMP8mi = 1325,
+ CMP8mi8 = 1326,
+ CMP8mr = 1327,
+ CMP8ri = 1328,
+ CMP8ri8 = 1329,
+ CMP8rm = 1330,
+ CMP8rr = 1331,
+ CMP8rr_REV = 1332,
+ CMPCCXADDmr32 = 1333,
+ CMPCCXADDmr32_EVEX = 1334,
+ CMPCCXADDmr64 = 1335,
+ CMPCCXADDmr64_EVEX = 1336,
+ CMPPDrmi = 1337,
+ CMPPDrri = 1338,
+ CMPPSrmi = 1339,
+ CMPPSrri = 1340,
+ CMPSB = 1341,
+ CMPSDrmi = 1342,
+ CMPSDrmi_Int = 1343,
+ CMPSDrri = 1344,
+ CMPSDrri_Int = 1345,
+ CMPSL = 1346,
+ CMPSQ = 1347,
+ CMPSSrmi = 1348,
+ CMPSSrmi_Int = 1349,
+ CMPSSrri = 1350,
+ CMPSSrri_Int = 1351,
+ CMPSW = 1352,
+ CMPXCHG16B = 1353,
+ CMPXCHG16rm = 1354,
+ CMPXCHG16rr = 1355,
+ CMPXCHG32rm = 1356,
+ CMPXCHG32rr = 1357,
+ CMPXCHG64rm = 1358,
+ CMPXCHG64rr = 1359,
+ CMPXCHG8B = 1360,
+ CMPXCHG8rm = 1361,
+ CMPXCHG8rr = 1362,
+ COMISDrm = 1363,
+ COMISDrm_Int = 1364,
+ COMISDrr = 1365,
+ COMISDrr_Int = 1366,
+ COMISSrm = 1367,
+ COMISSrm_Int = 1368,
+ COMISSrr = 1369,
+ COMISSrr_Int = 1370,
+ COMP_FST0r = 1371,
+ COM_FIPr = 1372,
+ COM_FIr = 1373,
+ COM_FST0r = 1374,
+ COM_FpIr32 = 1375,
+ COM_FpIr64 = 1376,
+ COM_FpIr80 = 1377,
+ COM_Fpr32 = 1378,
+ COM_Fpr64 = 1379,
+ COM_Fpr80 = 1380,
+ CPUID = 1381,
+ CQO = 1382,
+ CRC32r32m16 = 1383,
+ CRC32r32m16_EVEX = 1384,
+ CRC32r32m32 = 1385,
+ CRC32r32m32_EVEX = 1386,
+ CRC32r32m8 = 1387,
+ CRC32r32m8_EVEX = 1388,
+ CRC32r32r16 = 1389,
+ CRC32r32r16_EVEX = 1390,
+ CRC32r32r32 = 1391,
+ CRC32r32r32_EVEX = 1392,
+ CRC32r32r8 = 1393,
+ CRC32r32r8_EVEX = 1394,
+ CRC32r64m64 = 1395,
+ CRC32r64m64_EVEX = 1396,
+ CRC32r64m8 = 1397,
+ CRC32r64m8_EVEX = 1398,
+ CRC32r64r64 = 1399,
+ CRC32r64r64_EVEX = 1400,
+ CRC32r64r8 = 1401,
+ CRC32r64r8_EVEX = 1402,
+ CS_PREFIX = 1403,
+ CTEST16mi = 1404,
+ CTEST16mr = 1405,
+ CTEST16ri = 1406,
+ CTEST16rr = 1407,
+ CTEST32mi = 1408,
+ CTEST32mr = 1409,
+ CTEST32ri = 1410,
+ CTEST32rr = 1411,
+ CTEST64mi32 = 1412,
+ CTEST64mr = 1413,
+ CTEST64ri32 = 1414,
+ CTEST64rr = 1415,
+ CTEST8mi = 1416,
+ CTEST8mr = 1417,
+ CTEST8ri = 1418,
+ CTEST8rr = 1419,
+ CVTDQ2PDrm = 1420,
+ CVTDQ2PDrr = 1421,
+ CVTDQ2PSrm = 1422,
+ CVTDQ2PSrr = 1423,
+ CVTPD2DQrm = 1424,
+ CVTPD2DQrr = 1425,
+ CVTPD2PSrm = 1426,
+ CVTPD2PSrr = 1427,
+ CVTPS2DQrm = 1428,
+ CVTPS2DQrr = 1429,
+ CVTPS2PDrm = 1430,
+ CVTPS2PDrr = 1431,
+ CVTSD2SI64rm = 1432,
+ CVTSD2SI64rm_Int = 1433,
+ CVTSD2SI64rr = 1434,
+ CVTSD2SI64rr_Int = 1435,
+ CVTSD2SIrm = 1436,
+ CVTSD2SIrm_Int = 1437,
+ CVTSD2SIrr = 1438,
+ CVTSD2SIrr_Int = 1439,
+ CVTSD2SSrm = 1440,
+ CVTSD2SSrm_Int = 1441,
+ CVTSD2SSrr = 1442,
+ CVTSD2SSrr_Int = 1443,
+ CVTSI2SDrm = 1444,
+ CVTSI2SDrm_Int = 1445,
+ CVTSI2SDrr = 1446,
+ CVTSI2SDrr_Int = 1447,
+ CVTSI2SSrm = 1448,
+ CVTSI2SSrm_Int = 1449,
+ CVTSI2SSrr = 1450,
+ CVTSI2SSrr_Int = 1451,
+ CVTSI642SDrm = 1452,
+ CVTSI642SDrm_Int = 1453,
+ CVTSI642SDrr = 1454,
+ CVTSI642SDrr_Int = 1455,
+ CVTSI642SSrm = 1456,
+ CVTSI642SSrm_Int = 1457,
+ CVTSI642SSrr = 1458,
+ CVTSI642SSrr_Int = 1459,
+ CVTSS2SDrm = 1460,
+ CVTSS2SDrm_Int = 1461,
+ CVTSS2SDrr = 1462,
+ CVTSS2SDrr_Int = 1463,
+ CVTSS2SI64rm = 1464,
+ CVTSS2SI64rm_Int = 1465,
+ CVTSS2SI64rr = 1466,
+ CVTSS2SI64rr_Int = 1467,
+ CVTSS2SIrm = 1468,
+ CVTSS2SIrm_Int = 1469,
+ CVTSS2SIrr = 1470,
+ CVTSS2SIrr_Int = 1471,
+ CVTTPD2DQrm = 1472,
+ CVTTPD2DQrr = 1473,
+ CVTTPS2DQrm = 1474,
+ CVTTPS2DQrr = 1475,
+ CVTTSD2SI64rm = 1476,
+ CVTTSD2SI64rm_Int = 1477,
+ CVTTSD2SI64rr = 1478,
+ CVTTSD2SI64rr_Int = 1479,
+ CVTTSD2SIrm = 1480,
+ CVTTSD2SIrm_Int = 1481,
+ CVTTSD2SIrr = 1482,
+ CVTTSD2SIrr_Int = 1483,
+ CVTTSS2SI64rm = 1484,
+ CVTTSS2SI64rm_Int = 1485,
+ CVTTSS2SI64rr = 1486,
+ CVTTSS2SI64rr_Int = 1487,
+ CVTTSS2SIrm = 1488,
+ CVTTSS2SIrm_Int = 1489,
+ CVTTSS2SIrr = 1490,
+ CVTTSS2SIrr_Int = 1491,
+ CWD = 1492,
+ CWDE = 1493,
+ DAA = 1494,
+ DAS = 1495,
+ DATA16_PREFIX = 1496,
+ DEC16m = 1497,
+ DEC16m_EVEX = 1498,
+ DEC16m_ND = 1499,
+ DEC16m_NF = 1500,
+ DEC16m_NF_ND = 1501,
+ DEC16r = 1502,
+ DEC16r_EVEX = 1503,
+ DEC16r_ND = 1504,
+ DEC16r_NF = 1505,
+ DEC16r_NF_ND = 1506,
+ DEC16r_alt = 1507,
+ DEC32m = 1508,
+ DEC32m_EVEX = 1509,
+ DEC32m_ND = 1510,
+ DEC32m_NF = 1511,
+ DEC32m_NF_ND = 1512,
+ DEC32r = 1513,
+ DEC32r_EVEX = 1514,
+ DEC32r_ND = 1515,
+ DEC32r_NF = 1516,
+ DEC32r_NF_ND = 1517,
+ DEC32r_alt = 1518,
+ DEC64m = 1519,
+ DEC64m_EVEX = 1520,
+ DEC64m_ND = 1521,
+ DEC64m_NF = 1522,
+ DEC64m_NF_ND = 1523,
+ DEC64r = 1524,
+ DEC64r_EVEX = 1525,
+ DEC64r_ND = 1526,
+ DEC64r_NF = 1527,
+ DEC64r_NF_ND = 1528,
+ DEC8m = 1529,
+ DEC8m_EVEX = 1530,
+ DEC8m_ND = 1531,
+ DEC8m_NF = 1532,
+ DEC8m_NF_ND = 1533,
+ DEC8r = 1534,
+ DEC8r_EVEX = 1535,
+ DEC8r_ND = 1536,
+ DEC8r_NF = 1537,
+ DEC8r_NF_ND = 1538,
+ DIV16m = 1539,
+ DIV16m_EVEX = 1540,
+ DIV16m_NF = 1541,
+ DIV16r = 1542,
+ DIV16r_EVEX = 1543,
+ DIV16r_NF = 1544,
+ DIV32m = 1545,
+ DIV32m_EVEX = 1546,
+ DIV32m_NF = 1547,
+ DIV32r = 1548,
+ DIV32r_EVEX = 1549,
+ DIV32r_NF = 1550,
+ DIV64m = 1551,
+ DIV64m_EVEX = 1552,
+ DIV64m_NF = 1553,
+ DIV64r = 1554,
+ DIV64r_EVEX = 1555,
+ DIV64r_NF = 1556,
+ DIV8m = 1557,
+ DIV8m_EVEX = 1558,
+ DIV8m_NF = 1559,
+ DIV8r = 1560,
+ DIV8r_EVEX = 1561,
+ DIV8r_NF = 1562,
+ DIVPDrm = 1563,
+ DIVPDrr = 1564,
+ DIVPSrm = 1565,
+ DIVPSrr = 1566,
+ DIVR_F32m = 1567,
+ DIVR_F64m = 1568,
+ DIVR_FI16m = 1569,
+ DIVR_FI32m = 1570,
+ DIVR_FPrST0 = 1571,
+ DIVR_FST0r = 1572,
+ DIVR_Fp32m = 1573,
+ DIVR_Fp64m = 1574,
+ DIVR_Fp64m32 = 1575,
+ DIVR_Fp80m32 = 1576,
+ DIVR_Fp80m64 = 1577,
+ DIVR_FpI16m32 = 1578,
+ DIVR_FpI16m64 = 1579,
+ DIVR_FpI16m80 = 1580,
+ DIVR_FpI32m32 = 1581,
+ DIVR_FpI32m64 = 1582,
+ DIVR_FpI32m80 = 1583,
+ DIVR_FrST0 = 1584,
+ DIVSDrm = 1585,
+ DIVSDrm_Int = 1586,
+ DIVSDrr = 1587,
+ DIVSDrr_Int = 1588,
+ DIVSSrm = 1589,
+ DIVSSrm_Int = 1590,
+ DIVSSrr = 1591,
+ DIVSSrr_Int = 1592,
+ DIV_F32m = 1593,
+ DIV_F64m = 1594,
+ DIV_FI16m = 1595,
+ DIV_FI32m = 1596,
+ DIV_FPrST0 = 1597,
+ DIV_FST0r = 1598,
+ DIV_Fp32 = 1599,
+ DIV_Fp32m = 1600,
+ DIV_Fp64 = 1601,
+ DIV_Fp64m = 1602,
+ DIV_Fp64m32 = 1603,
+ DIV_Fp80 = 1604,
+ DIV_Fp80m32 = 1605,
+ DIV_Fp80m64 = 1606,
+ DIV_FpI16m32 = 1607,
+ DIV_FpI16m64 = 1608,
+ DIV_FpI16m80 = 1609,
+ DIV_FpI32m32 = 1610,
+ DIV_FpI32m64 = 1611,
+ DIV_FpI32m80 = 1612,
+ DIV_FrST0 = 1613,
+ DPPDrmi = 1614,
+ DPPDrri = 1615,
+ DPPSrmi = 1616,
+ DPPSrri = 1617,
+ DS_PREFIX = 1618,
+ DYN_ALLOCA_32 = 1619,
+ DYN_ALLOCA_64 = 1620,
+ EH_RETURN = 1621,
+ EH_RETURN64 = 1622,
+ EH_SjLj_LongJmp32 = 1623,
+ EH_SjLj_LongJmp64 = 1624,
+ EH_SjLj_SetJmp32 = 1625,
+ EH_SjLj_SetJmp64 = 1626,
+ EH_SjLj_Setup = 1627,
+ ENCLS = 1628,
+ ENCLU = 1629,
+ ENCLV = 1630,
+ ENCODEKEY128 = 1631,
+ ENCODEKEY256 = 1632,
+ ENDBR32 = 1633,
+ ENDBR64 = 1634,
+ ENQCMD16 = 1635,
+ ENQCMD32 = 1636,
+ ENQCMD32_EVEX = 1637,
+ ENQCMD64 = 1638,
+ ENQCMD64_EVEX = 1639,
+ ENQCMDS16 = 1640,
+ ENQCMDS32 = 1641,
+ ENQCMDS32_EVEX = 1642,
+ ENQCMDS64 = 1643,
+ ENQCMDS64_EVEX = 1644,
+ ENTER = 1645,
+ ERETS = 1646,
+ ERETU = 1647,
+ ES_PREFIX = 1648,
+ EXTRACTPSmri = 1649,
+ EXTRACTPSrri = 1650,
+ EXTRQ = 1651,
+ EXTRQI = 1652,
+ F2XM1 = 1653,
+ FARCALL16i = 1654,
+ FARCALL16m = 1655,
+ FARCALL32i = 1656,
+ FARCALL32m = 1657,
+ FARCALL64m = 1658,
+ FARJMP16i = 1659,
+ FARJMP16m = 1660,
+ FARJMP32i = 1661,
+ FARJMP32m = 1662,
+ FARJMP64m = 1663,
+ FBLDm = 1664,
+ FBSTPm = 1665,
+ FCOM32m = 1666,
+ FCOM64m = 1667,
+ FCOMP32m = 1668,
+ FCOMP64m = 1669,
+ FCOMPP = 1670,
+ FCOS = 1671,
+ FDECSTP = 1672,
+ FEMMS = 1673,
+ FFREE = 1674,
+ FFREEP = 1675,
+ FICOM16m = 1676,
+ FICOM32m = 1677,
+ FICOMP16m = 1678,
+ FICOMP32m = 1679,
+ FINCSTP = 1680,
+ FLDCW16m = 1681,
+ FLDENVm = 1682,
+ FLDL2E = 1683,
+ FLDL2T = 1684,
+ FLDLG2 = 1685,
+ FLDLN2 = 1686,
+ FLDPI = 1687,
+ FNCLEX = 1688,
+ FNINIT = 1689,
+ FNOP = 1690,
+ FNSTCW16m = 1691,
+ FNSTSW16r = 1692,
+ FNSTSWm = 1693,
+ FP32_TO_INT16_IN_MEM = 1694,
+ FP32_TO_INT32_IN_MEM = 1695,
+ FP32_TO_INT64_IN_MEM = 1696,
+ FP64_TO_INT16_IN_MEM = 1697,
+ FP64_TO_INT32_IN_MEM = 1698,
+ FP64_TO_INT64_IN_MEM = 1699,
+ FP80_ADDm32 = 1700,
+ FP80_ADDr = 1701,
+ FP80_TO_INT16_IN_MEM = 1702,
+ FP80_TO_INT32_IN_MEM = 1703,
+ FP80_TO_INT64_IN_MEM = 1704,
+ FPATAN = 1705,
+ FPREM = 1706,
+ FPREM1 = 1707,
+ FPTAN = 1708,
+ FRNDINT = 1709,
+ FRSTORm = 1710,
+ FSAVEm = 1711,
+ FSCALE_ = 1712,
+ FSIN = 1713,
+ FSINCOS = 1714,
+ FSTENVm = 1715,
+ FS_PREFIX = 1716,
+ FXRSTOR = 1717,
+ FXRSTOR64 = 1718,
+ FXSAVE = 1719,
+ FXSAVE64 = 1720,
+ FXTRACT = 1721,
+ FYL2X = 1722,
+ FYL2XP1 = 1723,
+ GETSEC = 1724,
+ GF2P8AFFINEINVQBrmi = 1725,
+ GF2P8AFFINEINVQBrri = 1726,
+ GF2P8AFFINEQBrmi = 1727,
+ GF2P8AFFINEQBrri = 1728,
+ GF2P8MULBrm = 1729,
+ GF2P8MULBrr = 1730,
+ GS_PREFIX = 1731,
+ HADDPDrm = 1732,
+ HADDPDrr = 1733,
+ HADDPSrm = 1734,
+ HADDPSrr = 1735,
+ HLT = 1736,
+ HRESET = 1737,
+ HSUBPDrm = 1738,
+ HSUBPDrr = 1739,
+ HSUBPSrm = 1740,
+ HSUBPSrr = 1741,
+ IDIV16m = 1742,
+ IDIV16m_EVEX = 1743,
+ IDIV16m_NF = 1744,
+ IDIV16r = 1745,
+ IDIV16r_EVEX = 1746,
+ IDIV16r_NF = 1747,
+ IDIV32m = 1748,
+ IDIV32m_EVEX = 1749,
+ IDIV32m_NF = 1750,
+ IDIV32r = 1751,
+ IDIV32r_EVEX = 1752,
+ IDIV32r_NF = 1753,
+ IDIV64m = 1754,
+ IDIV64m_EVEX = 1755,
+ IDIV64m_NF = 1756,
+ IDIV64r = 1757,
+ IDIV64r_EVEX = 1758,
+ IDIV64r_NF = 1759,
+ IDIV8m = 1760,
+ IDIV8m_EVEX = 1761,
+ IDIV8m_NF = 1762,
+ IDIV8r = 1763,
+ IDIV8r_EVEX = 1764,
+ IDIV8r_NF = 1765,
+ ILD_F16m = 1766,
+ ILD_F32m = 1767,
+ ILD_F64m = 1768,
+ ILD_Fp16m32 = 1769,
+ ILD_Fp16m64 = 1770,
+ ILD_Fp16m80 = 1771,
+ ILD_Fp32m32 = 1772,
+ ILD_Fp32m64 = 1773,
+ ILD_Fp32m80 = 1774,
+ ILD_Fp64m32 = 1775,
+ ILD_Fp64m64 = 1776,
+ ILD_Fp64m80 = 1777,
+ IMUL16m = 1778,
+ IMUL16m_EVEX = 1779,
+ IMUL16m_NF = 1780,
+ IMUL16r = 1781,
+ IMUL16r_EVEX = 1782,
+ IMUL16r_NF = 1783,
+ IMUL16rm = 1784,
+ IMUL16rm_EVEX = 1785,
+ IMUL16rm_ND = 1786,
+ IMUL16rm_NF = 1787,
+ IMUL16rm_NF_ND = 1788,
+ IMUL16rmi = 1789,
+ IMUL16rmi8 = 1790,
+ IMUL16rmi8_EVEX = 1791,
+ IMUL16rmi8_NF = 1792,
+ IMUL16rmi_EVEX = 1793,
+ IMUL16rmi_NF = 1794,
+ IMUL16rr = 1795,
+ IMUL16rr_EVEX = 1796,
+ IMUL16rr_ND = 1797,
+ IMUL16rr_NF = 1798,
+ IMUL16rr_NF_ND = 1799,
+ IMUL16rri = 1800,
+ IMUL16rri8 = 1801,
+ IMUL16rri8_EVEX = 1802,
+ IMUL16rri8_NF = 1803,
+ IMUL16rri_EVEX = 1804,
+ IMUL16rri_NF = 1805,
+ IMUL32m = 1806,
+ IMUL32m_EVEX = 1807,
+ IMUL32m_NF = 1808,
+ IMUL32r = 1809,
+ IMUL32r_EVEX = 1810,
+ IMUL32r_NF = 1811,
+ IMUL32rm = 1812,
+ IMUL32rm_EVEX = 1813,
+ IMUL32rm_ND = 1814,
+ IMUL32rm_NF = 1815,
+ IMUL32rm_NF_ND = 1816,
+ IMUL32rmi = 1817,
+ IMUL32rmi8 = 1818,
+ IMUL32rmi8_EVEX = 1819,
+ IMUL32rmi8_NF = 1820,
+ IMUL32rmi_EVEX = 1821,
+ IMUL32rmi_NF = 1822,
+ IMUL32rr = 1823,
+ IMUL32rr_EVEX = 1824,
+ IMUL32rr_ND = 1825,
+ IMUL32rr_NF = 1826,
+ IMUL32rr_NF_ND = 1827,
+ IMUL32rri = 1828,
+ IMUL32rri8 = 1829,
+ IMUL32rri8_EVEX = 1830,
+ IMUL32rri8_NF = 1831,
+ IMUL32rri_EVEX = 1832,
+ IMUL32rri_NF = 1833,
+ IMUL64m = 1834,
+ IMUL64m_EVEX = 1835,
+ IMUL64m_NF = 1836,
+ IMUL64r = 1837,
+ IMUL64r_EVEX = 1838,
+ IMUL64r_NF = 1839,
+ IMUL64rm = 1840,
+ IMUL64rm_EVEX = 1841,
+ IMUL64rm_ND = 1842,
+ IMUL64rm_NF = 1843,
+ IMUL64rm_NF_ND = 1844,
+ IMUL64rmi32 = 1845,
+ IMUL64rmi32_EVEX = 1846,
+ IMUL64rmi32_NF = 1847,
+ IMUL64rmi8 = 1848,
+ IMUL64rmi8_EVEX = 1849,
+ IMUL64rmi8_NF = 1850,
+ IMUL64rr = 1851,
+ IMUL64rr_EVEX = 1852,
+ IMUL64rr_ND = 1853,
+ IMUL64rr_NF = 1854,
+ IMUL64rr_NF_ND = 1855,
+ IMUL64rri32 = 1856,
+ IMUL64rri32_EVEX = 1857,
+ IMUL64rri32_NF = 1858,
+ IMUL64rri8 = 1859,
+ IMUL64rri8_EVEX = 1860,
+ IMUL64rri8_NF = 1861,
+ IMUL8m = 1862,
+ IMUL8m_EVEX = 1863,
+ IMUL8m_NF = 1864,
+ IMUL8r = 1865,
+ IMUL8r_EVEX = 1866,
+ IMUL8r_NF = 1867,
+ IMULZU16rmi = 1868,
+ IMULZU16rmi8 = 1869,
+ IMULZU16rri = 1870,
+ IMULZU16rri8 = 1871,
+ IMULZU32rmi = 1872,
+ IMULZU32rmi8 = 1873,
+ IMULZU32rri = 1874,
+ IMULZU32rri8 = 1875,
+ IMULZU64rmi32 = 1876,
+ IMULZU64rmi8 = 1877,
+ IMULZU64rri32 = 1878,
+ IMULZU64rri8 = 1879,
+ IN16ri = 1880,
+ IN16rr = 1881,
+ IN32ri = 1882,
+ IN32rr = 1883,
+ IN8ri = 1884,
+ IN8rr = 1885,
+ INC16m = 1886,
+ INC16m_EVEX = 1887,
+ INC16m_ND = 1888,
+ INC16m_NF = 1889,
+ INC16m_NF_ND = 1890,
+ INC16r = 1891,
+ INC16r_EVEX = 1892,
+ INC16r_ND = 1893,
+ INC16r_NF = 1894,
+ INC16r_NF_ND = 1895,
+ INC16r_alt = 1896,
+ INC32m = 1897,
+ INC32m_EVEX = 1898,
+ INC32m_ND = 1899,
+ INC32m_NF = 1900,
+ INC32m_NF_ND = 1901,
+ INC32r = 1902,
+ INC32r_EVEX = 1903,
+ INC32r_ND = 1904,
+ INC32r_NF = 1905,
+ INC32r_NF_ND = 1906,
+ INC32r_alt = 1907,
+ INC64m = 1908,
+ INC64m_EVEX = 1909,
+ INC64m_ND = 1910,
+ INC64m_NF = 1911,
+ INC64m_NF_ND = 1912,
+ INC64r = 1913,
+ INC64r_EVEX = 1914,
+ INC64r_ND = 1915,
+ INC64r_NF = 1916,
+ INC64r_NF_ND = 1917,
+ INC8m = 1918,
+ INC8m_EVEX = 1919,
+ INC8m_ND = 1920,
+ INC8m_NF = 1921,
+ INC8m_NF_ND = 1922,
+ INC8r = 1923,
+ INC8r_EVEX = 1924,
+ INC8r_ND = 1925,
+ INC8r_NF = 1926,
+ INC8r_NF_ND = 1927,
+ INCSSPD = 1928,
+ INCSSPQ = 1929,
+ INSB = 1930,
+ INSERTPSrmi = 1931,
+ INSERTPSrri = 1932,
+ INSERTQ = 1933,
+ INSERTQI = 1934,
+ INSL = 1935,
+ INSW = 1936,
+ INT = 1937,
+ INT3 = 1938,
+ INTO = 1939,
+ INVD = 1940,
+ INVEPT32 = 1941,
+ INVEPT64 = 1942,
+ INVEPT64_EVEX = 1943,
+ INVLPG = 1944,
+ INVLPGA32 = 1945,
+ INVLPGA64 = 1946,
+ INVLPGB32 = 1947,
+ INVLPGB64 = 1948,
+ INVPCID32 = 1949,
+ INVPCID64 = 1950,
+ INVPCID64_EVEX = 1951,
+ INVVPID32 = 1952,
+ INVVPID64 = 1953,
+ INVVPID64_EVEX = 1954,
+ IRET = 1955,
+ IRET16 = 1956,
+ IRET32 = 1957,
+ IRET64 = 1958,
+ ISTT_FP16m = 1959,
+ ISTT_FP32m = 1960,
+ ISTT_FP64m = 1961,
+ ISTT_Fp16m32 = 1962,
+ ISTT_Fp16m64 = 1963,
+ ISTT_Fp16m80 = 1964,
+ ISTT_Fp32m32 = 1965,
+ ISTT_Fp32m64 = 1966,
+ ISTT_Fp32m80 = 1967,
+ ISTT_Fp64m32 = 1968,
+ ISTT_Fp64m64 = 1969,
+ ISTT_Fp64m80 = 1970,
+ IST_F16m = 1971,
+ IST_F32m = 1972,
+ IST_FP16m = 1973,
+ IST_FP32m = 1974,
+ IST_FP64m = 1975,
+ IST_Fp16m32 = 1976,
+ IST_Fp16m64 = 1977,
+ IST_Fp16m80 = 1978,
+ IST_Fp32m32 = 1979,
+ IST_Fp32m64 = 1980,
+ IST_Fp32m80 = 1981,
+ IST_Fp64m32 = 1982,
+ IST_Fp64m64 = 1983,
+ IST_Fp64m80 = 1984,
+ Int_eh_sjlj_setup_dispatch = 1985,
+ JCC_1 = 1986,
+ JCC_2 = 1987,
+ JCC_4 = 1988,
+ JCXZ = 1989,
+ JECXZ = 1990,
+ JMP16m = 1991,
+ JMP16m_NT = 1992,
+ JMP16r = 1993,
+ JMP16r_NT = 1994,
+ JMP32m = 1995,
+ JMP32m_NT = 1996,
+ JMP32r = 1997,
+ JMP32r_NT = 1998,
+ JMP64m = 1999,
+ JMP64m_NT = 2000,
+ JMP64m_REX = 2001,
+ JMP64r = 2002,
+ JMP64r_NT = 2003,
+ JMP64r_REX = 2004,
+ JMPABS64i = 2005,
+ JMP_1 = 2006,
+ JMP_2 = 2007,
+ JMP_4 = 2008,
+ JRCXZ = 2009,
+ KADDBkk = 2010,
+ KADDDkk = 2011,
+ KADDQkk = 2012,
+ KADDWkk = 2013,
+ KANDBkk = 2014,
+ KANDDkk = 2015,
+ KANDNBkk = 2016,
+ KANDNDkk = 2017,
+ KANDNQkk = 2018,
+ KANDNWkk = 2019,
+ KANDQkk = 2020,
+ KANDWkk = 2021,
+ KCFI_CHECK = 2022,
+ KMOVBkk = 2023,
+ KMOVBkk_EVEX = 2024,
+ KMOVBkm = 2025,
+ KMOVBkm_EVEX = 2026,
+ KMOVBkr = 2027,
+ KMOVBkr_EVEX = 2028,
+ KMOVBmk = 2029,
+ KMOVBmk_EVEX = 2030,
+ KMOVBrk = 2031,
+ KMOVBrk_EVEX = 2032,
+ KMOVDkk = 2033,
+ KMOVDkk_EVEX = 2034,
+ KMOVDkm = 2035,
+ KMOVDkm_EVEX = 2036,
+ KMOVDkr = 2037,
+ KMOVDkr_EVEX = 2038,
+ KMOVDmk = 2039,
+ KMOVDmk_EVEX = 2040,
+ KMOVDrk = 2041,
+ KMOVDrk_EVEX = 2042,
+ KMOVQkk = 2043,
+ KMOVQkk_EVEX = 2044,
+ KMOVQkm = 2045,
+ KMOVQkm_EVEX = 2046,
+ KMOVQkr = 2047,
+ KMOVQkr_EVEX = 2048,
+ KMOVQmk = 2049,
+ KMOVQmk_EVEX = 2050,
+ KMOVQrk = 2051,
+ KMOVQrk_EVEX = 2052,
+ KMOVWkk = 2053,
+ KMOVWkk_EVEX = 2054,
+ KMOVWkm = 2055,
+ KMOVWkm_EVEX = 2056,
+ KMOVWkr = 2057,
+ KMOVWkr_EVEX = 2058,
+ KMOVWmk = 2059,
+ KMOVWmk_EVEX = 2060,
+ KMOVWrk = 2061,
+ KMOVWrk_EVEX = 2062,
+ KNOTBkk = 2063,
+ KNOTDkk = 2064,
+ KNOTQkk = 2065,
+ KNOTWkk = 2066,
+ KORBkk = 2067,
+ KORDkk = 2068,
+ KORQkk = 2069,
+ KORTESTBkk = 2070,
+ KORTESTDkk = 2071,
+ KORTESTQkk = 2072,
+ KORTESTWkk = 2073,
+ KORWkk = 2074,
+ KSHIFTLBki = 2075,
+ KSHIFTLDki = 2076,
+ KSHIFTLQki = 2077,
+ KSHIFTLWki = 2078,
+ KSHIFTRBki = 2079,
+ KSHIFTRDki = 2080,
+ KSHIFTRQki = 2081,
+ KSHIFTRWki = 2082,
+ KTESTBkk = 2083,
+ KTESTDkk = 2084,
+ KTESTQkk = 2085,
+ KTESTWkk = 2086,
+ KUNPCKBWkk = 2087,
+ KUNPCKDQkk = 2088,
+ KUNPCKWDkk = 2089,
+ KXNORBkk = 2090,
+ KXNORDkk = 2091,
+ KXNORQkk = 2092,
+ KXNORWkk = 2093,
+ KXORBkk = 2094,
+ KXORDkk = 2095,
+ KXORQkk = 2096,
+ KXORWkk = 2097,
+ LAHF = 2098,
+ LAR16rm = 2099,
+ LAR16rr = 2100,
+ LAR32rm = 2101,
+ LAR32rr = 2102,
+ LAR64rm = 2103,
+ LAR64rr = 2104,
+ LCMPXCHG16 = 2105,
+ LCMPXCHG16B = 2106,
+ LCMPXCHG32 = 2107,
+ LCMPXCHG64 = 2108,
+ LCMPXCHG8 = 2109,
+ LCMPXCHG8B = 2110,
+ LDDQUrm = 2111,
+ LDMXCSR = 2112,
+ LDS16rm = 2113,
+ LDS32rm = 2114,
+ LDTILECFG = 2115,
+ LDTILECFG_EVEX = 2116,
+ LD_F0 = 2117,
+ LD_F1 = 2118,
+ LD_F32m = 2119,
+ LD_F64m = 2120,
+ LD_F80m = 2121,
+ LD_Fp032 = 2122,
+ LD_Fp064 = 2123,
+ LD_Fp080 = 2124,
+ LD_Fp132 = 2125,
+ LD_Fp164 = 2126,
+ LD_Fp180 = 2127,
+ LD_Fp32m = 2128,
+ LD_Fp32m64 = 2129,
+ LD_Fp32m80 = 2130,
+ LD_Fp64m = 2131,
+ LD_Fp64m80 = 2132,
+ LD_Fp80m = 2133,
+ LD_Frr = 2134,
+ LEA16r = 2135,
+ LEA32r = 2136,
+ LEA64_16r = 2137,
+ LEA64_32r = 2138,
+ LEA64_8r = 2139,
+ LEA64r = 2140,
+ LEAVE = 2141,
+ LEAVE64 = 2142,
+ LES16rm = 2143,
+ LES32rm = 2144,
+ LFENCE = 2145,
+ LFS16rm = 2146,
+ LFS32rm = 2147,
+ LFS64rm = 2148,
+ LGDT16m = 2149,
+ LGDT32m = 2150,
+ LGDT64m = 2151,
+ LGS16rm = 2152,
+ LGS32rm = 2153,
+ LGS64rm = 2154,
+ LIDT16m = 2155,
+ LIDT32m = 2156,
+ LIDT64m = 2157,
+ LKGS16m = 2158,
+ LKGS16r = 2159,
+ LLDT16m = 2160,
+ LLDT16r = 2161,
+ LLWPCB = 2162,
+ LLWPCB64 = 2163,
+ LMSW16m = 2164,
+ LMSW16r = 2165,
+ LOADIWKEY = 2166,
+ LOCK_ADD16mi = 2167,
+ LOCK_ADD16mi8 = 2168,
+ LOCK_ADD16mr = 2169,
+ LOCK_ADD32mi = 2170,
+ LOCK_ADD32mi8 = 2171,
+ LOCK_ADD32mr = 2172,
+ LOCK_ADD64mi32 = 2173,
+ LOCK_ADD64mi8 = 2174,
+ LOCK_ADD64mr = 2175,
+ LOCK_ADD8mi = 2176,
+ LOCK_ADD8mr = 2177,
+ LOCK_AND16mi = 2178,
+ LOCK_AND16mi8 = 2179,
+ LOCK_AND16mr = 2180,
+ LOCK_AND32mi = 2181,
+ LOCK_AND32mi8 = 2182,
+ LOCK_AND32mr = 2183,
+ LOCK_AND64mi32 = 2184,
+ LOCK_AND64mi8 = 2185,
+ LOCK_AND64mr = 2186,
+ LOCK_AND8mi = 2187,
+ LOCK_AND8mr = 2188,
+ LOCK_BTC16m = 2189,
+ LOCK_BTC32m = 2190,
+ LOCK_BTC64m = 2191,
+ LOCK_BTC_RM16rm = 2192,
+ LOCK_BTC_RM32rm = 2193,
+ LOCK_BTC_RM64rm = 2194,
+ LOCK_BTR16m = 2195,
+ LOCK_BTR32m = 2196,
+ LOCK_BTR64m = 2197,
+ LOCK_BTR_RM16rm = 2198,
+ LOCK_BTR_RM32rm = 2199,
+ LOCK_BTR_RM64rm = 2200,
+ LOCK_BTS16m = 2201,
+ LOCK_BTS32m = 2202,
+ LOCK_BTS64m = 2203,
+ LOCK_BTS_RM16rm = 2204,
+ LOCK_BTS_RM32rm = 2205,
+ LOCK_BTS_RM64rm = 2206,
+ LOCK_DEC16m = 2207,
+ LOCK_DEC32m = 2208,
+ LOCK_DEC64m = 2209,
+ LOCK_DEC8m = 2210,
+ LOCK_INC16m = 2211,
+ LOCK_INC32m = 2212,
+ LOCK_INC64m = 2213,
+ LOCK_INC8m = 2214,
+ LOCK_OR16mi = 2215,
+ LOCK_OR16mi8 = 2216,
+ LOCK_OR16mr = 2217,
+ LOCK_OR32mi = 2218,
+ LOCK_OR32mi8 = 2219,
+ LOCK_OR32mr = 2220,
+ LOCK_OR64mi32 = 2221,
+ LOCK_OR64mi8 = 2222,
+ LOCK_OR64mr = 2223,
+ LOCK_OR8mi = 2224,
+ LOCK_OR8mr = 2225,
+ LOCK_PREFIX = 2226,
+ LOCK_SUB16mi = 2227,
+ LOCK_SUB16mi8 = 2228,
+ LOCK_SUB16mr = 2229,
+ LOCK_SUB32mi = 2230,
+ LOCK_SUB32mi8 = 2231,
+ LOCK_SUB32mr = 2232,
+ LOCK_SUB64mi32 = 2233,
+ LOCK_SUB64mi8 = 2234,
+ LOCK_SUB64mr = 2235,
+ LOCK_SUB8mi = 2236,
+ LOCK_SUB8mr = 2237,
+ LOCK_XOR16mi = 2238,
+ LOCK_XOR16mi8 = 2239,
+ LOCK_XOR16mr = 2240,
+ LOCK_XOR32mi = 2241,
+ LOCK_XOR32mi8 = 2242,
+ LOCK_XOR32mr = 2243,
+ LOCK_XOR64mi32 = 2244,
+ LOCK_XOR64mi8 = 2245,
+ LOCK_XOR64mr = 2246,
+ LOCK_XOR8mi = 2247,
+ LOCK_XOR8mr = 2248,
+ LODSB = 2249,
+ LODSL = 2250,
+ LODSQ = 2251,
+ LODSW = 2252,
+ LOOP = 2253,
+ LOOPE = 2254,
+ LOOPNE = 2255,
+ LRET16 = 2256,
+ LRET32 = 2257,
+ LRET64 = 2258,
+ LRETI16 = 2259,
+ LRETI32 = 2260,
+ LRETI64 = 2261,
+ LSL16rm = 2262,
+ LSL16rr = 2263,
+ LSL32rm = 2264,
+ LSL32rr = 2265,
+ LSL64rm = 2266,
+ LSL64rr = 2267,
+ LSS16rm = 2268,
+ LSS32rm = 2269,
+ LSS64rm = 2270,
+ LTRm = 2271,
+ LTRr = 2272,
+ LWPINS32rmi = 2273,
+ LWPINS32rri = 2274,
+ LWPINS64rmi = 2275,
+ LWPINS64rri = 2276,
+ LWPVAL32rmi = 2277,
+ LWPVAL32rri = 2278,
+ LWPVAL64rmi = 2279,
+ LWPVAL64rri = 2280,
+ LXADD16 = 2281,
+ LXADD32 = 2282,
+ LXADD64 = 2283,
+ LXADD8 = 2284,
+ LZCNT16rm = 2285,
+ LZCNT16rm_EVEX = 2286,
+ LZCNT16rm_NF = 2287,
+ LZCNT16rr = 2288,
+ LZCNT16rr_EVEX = 2289,
+ LZCNT16rr_NF = 2290,
+ LZCNT32rm = 2291,
+ LZCNT32rm_EVEX = 2292,
+ LZCNT32rm_NF = 2293,
+ LZCNT32rr = 2294,
+ LZCNT32rr_EVEX = 2295,
+ LZCNT32rr_NF = 2296,
+ LZCNT64rm = 2297,
+ LZCNT64rm_EVEX = 2298,
+ LZCNT64rm_NF = 2299,
+ LZCNT64rr = 2300,
+ LZCNT64rr_EVEX = 2301,
+ LZCNT64rr_NF = 2302,
+ MASKMOVDQU = 2303,
+ MASKMOVDQU64 = 2304,
+ MASKPAIR16LOAD = 2305,
+ MASKPAIR16STORE = 2306,
+ MAXCPDrm = 2307,
+ MAXCPDrr = 2308,
+ MAXCPSrm = 2309,
+ MAXCPSrr = 2310,
+ MAXCSDrm = 2311,
+ MAXCSDrr = 2312,
+ MAXCSSrm = 2313,
+ MAXCSSrr = 2314,
+ MAXPDrm = 2315,
+ MAXPDrr = 2316,
+ MAXPSrm = 2317,
+ MAXPSrr = 2318,
+ MAXSDrm = 2319,
+ MAXSDrm_Int = 2320,
+ MAXSDrr = 2321,
+ MAXSDrr_Int = 2322,
+ MAXSSrm = 2323,
+ MAXSSrm_Int = 2324,
+ MAXSSrr = 2325,
+ MAXSSrr_Int = 2326,
+ MFENCE = 2327,
+ MINCPDrm = 2328,
+ MINCPDrr = 2329,
+ MINCPSrm = 2330,
+ MINCPSrr = 2331,
+ MINCSDrm = 2332,
+ MINCSDrr = 2333,
+ MINCSSrm = 2334,
+ MINCSSrr = 2335,
+ MINPDrm = 2336,
+ MINPDrr = 2337,
+ MINPSrm = 2338,
+ MINPSrr = 2339,
+ MINSDrm = 2340,
+ MINSDrm_Int = 2341,
+ MINSDrr = 2342,
+ MINSDrr_Int = 2343,
+ MINSSrm = 2344,
+ MINSSrm_Int = 2345,
+ MINSSrr = 2346,
+ MINSSrr_Int = 2347,
+ MMX_CVTPD2PIrm = 2348,
+ MMX_CVTPD2PIrr = 2349,
+ MMX_CVTPI2PDrm = 2350,
+ MMX_CVTPI2PDrr = 2351,
+ MMX_CVTPI2PSrm = 2352,
+ MMX_CVTPI2PSrr = 2353,
+ MMX_CVTPS2PIrm = 2354,
+ MMX_CVTPS2PIrr = 2355,
+ MMX_CVTTPD2PIrm = 2356,
+ MMX_CVTTPD2PIrr = 2357,
+ MMX_CVTTPS2PIrm = 2358,
+ MMX_CVTTPS2PIrr = 2359,
+ MMX_EMMS = 2360,
+ MMX_MASKMOVQ = 2361,
+ MMX_MASKMOVQ64 = 2362,
+ MMX_MOVD64from64mr = 2363,
+ MMX_MOVD64from64rr = 2364,
+ MMX_MOVD64grr = 2365,
+ MMX_MOVD64mr = 2366,
+ MMX_MOVD64rm = 2367,
+ MMX_MOVD64rr = 2368,
+ MMX_MOVD64to64rm = 2369,
+ MMX_MOVD64to64rr = 2370,
+ MMX_MOVDQ2Qrr = 2371,
+ MMX_MOVFR642Qrr = 2372,
+ MMX_MOVNTQmr = 2373,
+ MMX_MOVQ2DQrr = 2374,
+ MMX_MOVQ2FR64rr = 2375,
+ MMX_MOVQ64mr = 2376,
+ MMX_MOVQ64rm = 2377,
+ MMX_MOVQ64rr = 2378,
+ MMX_MOVQ64rr_REV = 2379,
+ MMX_PABSBrm = 2380,
+ MMX_PABSBrr = 2381,
+ MMX_PABSDrm = 2382,
+ MMX_PABSDrr = 2383,
+ MMX_PABSWrm = 2384,
+ MMX_PABSWrr = 2385,
+ MMX_PACKSSDWrm = 2386,
+ MMX_PACKSSDWrr = 2387,
+ MMX_PACKSSWBrm = 2388,
+ MMX_PACKSSWBrr = 2389,
+ MMX_PACKUSWBrm = 2390,
+ MMX_PACKUSWBrr = 2391,
+ MMX_PADDBrm = 2392,
+ MMX_PADDBrr = 2393,
+ MMX_PADDDrm = 2394,
+ MMX_PADDDrr = 2395,
+ MMX_PADDQrm = 2396,
+ MMX_PADDQrr = 2397,
+ MMX_PADDSBrm = 2398,
+ MMX_PADDSBrr = 2399,
+ MMX_PADDSWrm = 2400,
+ MMX_PADDSWrr = 2401,
+ MMX_PADDUSBrm = 2402,
+ MMX_PADDUSBrr = 2403,
+ MMX_PADDUSWrm = 2404,
+ MMX_PADDUSWrr = 2405,
+ MMX_PADDWrm = 2406,
+ MMX_PADDWrr = 2407,
+ MMX_PALIGNRrmi = 2408,
+ MMX_PALIGNRrri = 2409,
+ MMX_PANDNrm = 2410,
+ MMX_PANDNrr = 2411,
+ MMX_PANDrm = 2412,
+ MMX_PANDrr = 2413,
+ MMX_PAVGBrm = 2414,
+ MMX_PAVGBrr = 2415,
+ MMX_PAVGWrm = 2416,
+ MMX_PAVGWrr = 2417,
+ MMX_PCMPEQBrm = 2418,
+ MMX_PCMPEQBrr = 2419,
+ MMX_PCMPEQDrm = 2420,
+ MMX_PCMPEQDrr = 2421,
+ MMX_PCMPEQWrm = 2422,
+ MMX_PCMPEQWrr = 2423,
+ MMX_PCMPGTBrm = 2424,
+ MMX_PCMPGTBrr = 2425,
+ MMX_PCMPGTDrm = 2426,
+ MMX_PCMPGTDrr = 2427,
+ MMX_PCMPGTWrm = 2428,
+ MMX_PCMPGTWrr = 2429,
+ MMX_PEXTRWrri = 2430,
+ MMX_PHADDDrm = 2431,
+ MMX_PHADDDrr = 2432,
+ MMX_PHADDSWrm = 2433,
+ MMX_PHADDSWrr = 2434,
+ MMX_PHADDWrm = 2435,
+ MMX_PHADDWrr = 2436,
+ MMX_PHSUBDrm = 2437,
+ MMX_PHSUBDrr = 2438,
+ MMX_PHSUBSWrm = 2439,
+ MMX_PHSUBSWrr = 2440,
+ MMX_PHSUBWrm = 2441,
+ MMX_PHSUBWrr = 2442,
+ MMX_PINSRWrmi = 2443,
+ MMX_PINSRWrri = 2444,
+ MMX_PMADDUBSWrm = 2445,
+ MMX_PMADDUBSWrr = 2446,
+ MMX_PMADDWDrm = 2447,
+ MMX_PMADDWDrr = 2448,
+ MMX_PMAXSWrm = 2449,
+ MMX_PMAXSWrr = 2450,
+ MMX_PMAXUBrm = 2451,
+ MMX_PMAXUBrr = 2452,
+ MMX_PMINSWrm = 2453,
+ MMX_PMINSWrr = 2454,
+ MMX_PMINUBrm = 2455,
+ MMX_PMINUBrr = 2456,
+ MMX_PMOVMSKBrr = 2457,
+ MMX_PMULHRSWrm = 2458,
+ MMX_PMULHRSWrr = 2459,
+ MMX_PMULHUWrm = 2460,
+ MMX_PMULHUWrr = 2461,
+ MMX_PMULHWrm = 2462,
+ MMX_PMULHWrr = 2463,
+ MMX_PMULLWrm = 2464,
+ MMX_PMULLWrr = 2465,
+ MMX_PMULUDQrm = 2466,
+ MMX_PMULUDQrr = 2467,
+ MMX_PORrm = 2468,
+ MMX_PORrr = 2469,
+ MMX_PSADBWrm = 2470,
+ MMX_PSADBWrr = 2471,
+ MMX_PSHUFBrm = 2472,
+ MMX_PSHUFBrr = 2473,
+ MMX_PSHUFWmi = 2474,
+ MMX_PSHUFWri = 2475,
+ MMX_PSIGNBrm = 2476,
+ MMX_PSIGNBrr = 2477,
+ MMX_PSIGNDrm = 2478,
+ MMX_PSIGNDrr = 2479,
+ MMX_PSIGNWrm = 2480,
+ MMX_PSIGNWrr = 2481,
+ MMX_PSLLDri = 2482,
+ MMX_PSLLDrm = 2483,
+ MMX_PSLLDrr = 2484,
+ MMX_PSLLQri = 2485,
+ MMX_PSLLQrm = 2486,
+ MMX_PSLLQrr = 2487,
+ MMX_PSLLWri = 2488,
+ MMX_PSLLWrm = 2489,
+ MMX_PSLLWrr = 2490,
+ MMX_PSRADri = 2491,
+ MMX_PSRADrm = 2492,
+ MMX_PSRADrr = 2493,
+ MMX_PSRAWri = 2494,
+ MMX_PSRAWrm = 2495,
+ MMX_PSRAWrr = 2496,
+ MMX_PSRLDri = 2497,
+ MMX_PSRLDrm = 2498,
+ MMX_PSRLDrr = 2499,
+ MMX_PSRLQri = 2500,
+ MMX_PSRLQrm = 2501,
+ MMX_PSRLQrr = 2502,
+ MMX_PSRLWri = 2503,
+ MMX_PSRLWrm = 2504,
+ MMX_PSRLWrr = 2505,
+ MMX_PSUBBrm = 2506,
+ MMX_PSUBBrr = 2507,
+ MMX_PSUBDrm = 2508,
+ MMX_PSUBDrr = 2509,
+ MMX_PSUBQrm = 2510,
+ MMX_PSUBQrr = 2511,
+ MMX_PSUBSBrm = 2512,
+ MMX_PSUBSBrr = 2513,
+ MMX_PSUBSWrm = 2514,
+ MMX_PSUBSWrr = 2515,
+ MMX_PSUBUSBrm = 2516,
+ MMX_PSUBUSBrr = 2517,
+ MMX_PSUBUSWrm = 2518,
+ MMX_PSUBUSWrr = 2519,
+ MMX_PSUBWrm = 2520,
+ MMX_PSUBWrr = 2521,
+ MMX_PUNPCKHBWrm = 2522,
+ MMX_PUNPCKHBWrr = 2523,
+ MMX_PUNPCKHDQrm = 2524,
+ MMX_PUNPCKHDQrr = 2525,
+ MMX_PUNPCKHWDrm = 2526,
+ MMX_PUNPCKHWDrr = 2527,
+ MMX_PUNPCKLBWrm = 2528,
+ MMX_PUNPCKLBWrr = 2529,
+ MMX_PUNPCKLDQrm = 2530,
+ MMX_PUNPCKLDQrr = 2531,
+ MMX_PUNPCKLWDrm = 2532,
+ MMX_PUNPCKLWDrr = 2533,
+ MMX_PXORrm = 2534,
+ MMX_PXORrr = 2535,
+ MONITOR32rrr = 2536,
+ MONITOR64rrr = 2537,
+ MONITORX32rrr = 2538,
+ MONITORX64rrr = 2539,
+ MONTMUL = 2540,
+ MOV16ao16 = 2541,
+ MOV16ao32 = 2542,
+ MOV16ao64 = 2543,
+ MOV16mi = 2544,
+ MOV16mr = 2545,
+ MOV16ms = 2546,
+ MOV16o16a = 2547,
+ MOV16o32a = 2548,
+ MOV16o64a = 2549,
+ MOV16ri = 2550,
+ MOV16ri_alt = 2551,
+ MOV16rm = 2552,
+ MOV16rr = 2553,
+ MOV16rr_REV = 2554,
+ MOV16rs = 2555,
+ MOV16sm = 2556,
+ MOV16sr = 2557,
+ MOV32ao16 = 2558,
+ MOV32ao32 = 2559,
+ MOV32ao64 = 2560,
+ MOV32cr = 2561,
+ MOV32dr = 2562,
+ MOV32mi = 2563,
+ MOV32mr = 2564,
+ MOV32o16a = 2565,
+ MOV32o32a = 2566,
+ MOV32o64a = 2567,
+ MOV32rc = 2568,
+ MOV32rd = 2569,
+ MOV32ri = 2570,
+ MOV32ri_alt = 2571,
+ MOV32rm = 2572,
+ MOV32rr = 2573,
+ MOV32rr_REV = 2574,
+ MOV32rs = 2575,
+ MOV32sr = 2576,
+ MOV64ao32 = 2577,
+ MOV64ao64 = 2578,
+ MOV64cr = 2579,
+ MOV64dr = 2580,
+ MOV64mi32 = 2581,
+ MOV64mr = 2582,
+ MOV64o32a = 2583,
+ MOV64o64a = 2584,
+ MOV64rc = 2585,
+ MOV64rd = 2586,
+ MOV64ri = 2587,
+ MOV64ri32 = 2588,
+ MOV64rm = 2589,
+ MOV64rr = 2590,
+ MOV64rr_REV = 2591,
+ MOV64rs = 2592,
+ MOV64sr = 2593,
+ MOV64toPQIrm = 2594,
+ MOV64toPQIrr = 2595,
+ MOV64toSDrr = 2596,
+ MOV8ao16 = 2597,
+ MOV8ao32 = 2598,
+ MOV8ao64 = 2599,
+ MOV8mi = 2600,
+ MOV8mr = 2601,
+ MOV8mr_NOREX = 2602,
+ MOV8o16a = 2603,
+ MOV8o32a = 2604,
+ MOV8o64a = 2605,
+ MOV8ri = 2606,
+ MOV8ri_alt = 2607,
+ MOV8rm = 2608,
+ MOV8rm_NOREX = 2609,
+ MOV8rr = 2610,
+ MOV8rr_NOREX = 2611,
+ MOV8rr_REV = 2612,
+ MOVAPDmr = 2613,
+ MOVAPDrm = 2614,
+ MOVAPDrr = 2615,
+ MOVAPDrr_REV = 2616,
+ MOVAPSmr = 2617,
+ MOVAPSrm = 2618,
+ MOVAPSrr = 2619,
+ MOVAPSrr_REV = 2620,
+ MOVBE16mr = 2621,
+ MOVBE16mr_EVEX = 2622,
+ MOVBE16rm = 2623,
+ MOVBE16rm_EVEX = 2624,
+ MOVBE16rr = 2625,
+ MOVBE16rr_REV = 2626,
+ MOVBE32mr = 2627,
+ MOVBE32mr_EVEX = 2628,
+ MOVBE32rm = 2629,
+ MOVBE32rm_EVEX = 2630,
+ MOVBE32rr = 2631,
+ MOVBE32rr_REV = 2632,
+ MOVBE64mr = 2633,
+ MOVBE64mr_EVEX = 2634,
+ MOVBE64rm = 2635,
+ MOVBE64rm_EVEX = 2636,
+ MOVBE64rr = 2637,
+ MOVBE64rr_REV = 2638,
+ MOVDDUPrm = 2639,
+ MOVDDUPrr = 2640,
+ MOVDI2PDIrm = 2641,
+ MOVDI2PDIrr = 2642,
+ MOVDI2SSrr = 2643,
+ MOVDIR64B16 = 2644,
+ MOVDIR64B32 = 2645,
+ MOVDIR64B32_EVEX = 2646,
+ MOVDIR64B64 = 2647,
+ MOVDIR64B64_EVEX = 2648,
+ MOVDIRI32 = 2649,
+ MOVDIRI32_EVEX = 2650,
+ MOVDIRI64 = 2651,
+ MOVDIRI64_EVEX = 2652,
+ MOVDQAmr = 2653,
+ MOVDQArm = 2654,
+ MOVDQArr = 2655,
+ MOVDQArr_REV = 2656,
+ MOVDQUmr = 2657,
+ MOVDQUrm = 2658,
+ MOVDQUrr = 2659,
+ MOVDQUrr_REV = 2660,
+ MOVHLPSrr = 2661,
+ MOVHPDmr = 2662,
+ MOVHPDrm = 2663,
+ MOVHPSmr = 2664,
+ MOVHPSrm = 2665,
+ MOVLHPSrr = 2666,
+ MOVLPDmr = 2667,
+ MOVLPDrm = 2668,
+ MOVLPSmr = 2669,
+ MOVLPSrm = 2670,
+ MOVMSKPDrr = 2671,
+ MOVMSKPSrr = 2672,
+ MOVNTDQArm = 2673,
+ MOVNTDQmr = 2674,
+ MOVNTI_64mr = 2675,
+ MOVNTImr = 2676,
+ MOVNTPDmr = 2677,
+ MOVNTPSmr = 2678,
+ MOVNTSD = 2679,
+ MOVNTSS = 2680,
+ MOVPC32r = 2681,
+ MOVPDI2DImr = 2682,
+ MOVPDI2DIrr = 2683,
+ MOVPQI2QImr = 2684,
+ MOVPQI2QIrr = 2685,
+ MOVPQIto64mr = 2686,
+ MOVPQIto64rr = 2687,
+ MOVQI2PQIrm = 2688,
+ MOVRS16rm = 2689,
+ MOVRS16rm_EVEX = 2690,
+ MOVRS32rm = 2691,
+ MOVRS32rm_EVEX = 2692,
+ MOVRS64rm = 2693,
+ MOVRS64rm_EVEX = 2694,
+ MOVRS8rm = 2695,
+ MOVRS8rm_EVEX = 2696,
+ MOVSB = 2697,
+ MOVSDmr = 2698,
+ MOVSDrm = 2699,
+ MOVSDrm_alt = 2700,
+ MOVSDrr = 2701,
+ MOVSDrr_REV = 2702,
+ MOVSDto64rr = 2703,
+ MOVSHDUPrm = 2704,
+ MOVSHDUPrr = 2705,
+ MOVSL = 2706,
+ MOVSLDUPrm = 2707,
+ MOVSLDUPrr = 2708,
+ MOVSQ = 2709,
+ MOVSS2DIrr = 2710,
+ MOVSSmr = 2711,
+ MOVSSrm = 2712,
+ MOVSSrm_alt = 2713,
+ MOVSSrr = 2714,
+ MOVSSrr_REV = 2715,
+ MOVSW = 2716,
+ MOVSX16rm16 = 2717,
+ MOVSX16rm32 = 2718,
+ MOVSX16rm8 = 2719,
+ MOVSX16rr16 = 2720,
+ MOVSX16rr32 = 2721,
+ MOVSX16rr8 = 2722,
+ MOVSX32rm16 = 2723,
+ MOVSX32rm32 = 2724,
+ MOVSX32rm8 = 2725,
+ MOVSX32rm8_NOREX = 2726,
+ MOVSX32rr16 = 2727,
+ MOVSX32rr32 = 2728,
+ MOVSX32rr8 = 2729,
+ MOVSX32rr8_NOREX = 2730,
+ MOVSX64rm16 = 2731,
+ MOVSX64rm32 = 2732,
+ MOVSX64rm8 = 2733,
+ MOVSX64rr16 = 2734,
+ MOVSX64rr32 = 2735,
+ MOVSX64rr8 = 2736,
+ MOVUPDmr = 2737,
+ MOVUPDrm = 2738,
+ MOVUPDrr = 2739,
+ MOVUPDrr_REV = 2740,
+ MOVUPSmr = 2741,
+ MOVUPSrm = 2742,
+ MOVUPSrr = 2743,
+ MOVUPSrr_REV = 2744,
+ MOVZPQILo2PQIrr = 2745,
+ MOVZX16rm16 = 2746,
+ MOVZX16rm8 = 2747,
+ MOVZX16rr16 = 2748,
+ MOVZX16rr8 = 2749,
+ MOVZX32rm16 = 2750,
+ MOVZX32rm8 = 2751,
+ MOVZX32rm8_NOREX = 2752,
+ MOVZX32rr16 = 2753,
+ MOVZX32rr8 = 2754,
+ MOVZX32rr8_NOREX = 2755,
+ MOVZX64rm16 = 2756,
+ MOVZX64rm8 = 2757,
+ MOVZX64rr16 = 2758,
+ MOVZX64rr8 = 2759,
+ MPSADBWrmi = 2760,
+ MPSADBWrri = 2761,
+ MUL16m = 2762,
+ MUL16m_EVEX = 2763,
+ MUL16m_NF = 2764,
+ MUL16r = 2765,
+ MUL16r_EVEX = 2766,
+ MUL16r_NF = 2767,
+ MUL32m = 2768,
+ MUL32m_EVEX = 2769,
+ MUL32m_NF = 2770,
+ MUL32r = 2771,
+ MUL32r_EVEX = 2772,
+ MUL32r_NF = 2773,
+ MUL64m = 2774,
+ MUL64m_EVEX = 2775,
+ MUL64m_NF = 2776,
+ MUL64r = 2777,
+ MUL64r_EVEX = 2778,
+ MUL64r_NF = 2779,
+ MUL8m = 2780,
+ MUL8m_EVEX = 2781,
+ MUL8m_NF = 2782,
+ MUL8r = 2783,
+ MUL8r_EVEX = 2784,
+ MUL8r_NF = 2785,
+ MULPDrm = 2786,
+ MULPDrr = 2787,
+ MULPSrm = 2788,
+ MULPSrr = 2789,
+ MULSDrm = 2790,
+ MULSDrm_Int = 2791,
+ MULSDrr = 2792,
+ MULSDrr_Int = 2793,
+ MULSSrm = 2794,
+ MULSSrm_Int = 2795,
+ MULSSrr = 2796,
+ MULSSrr_Int = 2797,
+ MULX32Hrm = 2798,
+ MULX32Hrr = 2799,
+ MULX32rm = 2800,
+ MULX32rm_EVEX = 2801,
+ MULX32rr = 2802,
+ MULX32rr_EVEX = 2803,
+ MULX64Hrm = 2804,
+ MULX64Hrr = 2805,
+ MULX64rm = 2806,
+ MULX64rm_EVEX = 2807,
+ MULX64rr = 2808,
+ MULX64rr_EVEX = 2809,
+ MUL_F32m = 2810,
+ MUL_F64m = 2811,
+ MUL_FI16m = 2812,
+ MUL_FI32m = 2813,
+ MUL_FPrST0 = 2814,
+ MUL_FST0r = 2815,
+ MUL_Fp32 = 2816,
+ MUL_Fp32m = 2817,
+ MUL_Fp64 = 2818,
+ MUL_Fp64m = 2819,
+ MUL_Fp64m32 = 2820,
+ MUL_Fp80 = 2821,
+ MUL_Fp80m32 = 2822,
+ MUL_Fp80m64 = 2823,
+ MUL_FpI16m32 = 2824,
+ MUL_FpI16m64 = 2825,
+ MUL_FpI16m80 = 2826,
+ MUL_FpI32m32 = 2827,
+ MUL_FpI32m64 = 2828,
+ MUL_FpI32m80 = 2829,
+ MUL_FrST0 = 2830,
+ MWAITXrrr = 2831,
+ MWAITrr = 2832,
+ NEG16m = 2833,
+ NEG16m_EVEX = 2834,
+ NEG16m_ND = 2835,
+ NEG16m_NF = 2836,
+ NEG16m_NF_ND = 2837,
+ NEG16r = 2838,
+ NEG16r_EVEX = 2839,
+ NEG16r_ND = 2840,
+ NEG16r_NF = 2841,
+ NEG16r_NF_ND = 2842,
+ NEG32m = 2843,
+ NEG32m_EVEX = 2844,
+ NEG32m_ND = 2845,
+ NEG32m_NF = 2846,
+ NEG32m_NF_ND = 2847,
+ NEG32r = 2848,
+ NEG32r_EVEX = 2849,
+ NEG32r_ND = 2850,
+ NEG32r_NF = 2851,
+ NEG32r_NF_ND = 2852,
+ NEG64m = 2853,
+ NEG64m_EVEX = 2854,
+ NEG64m_ND = 2855,
+ NEG64m_NF = 2856,
+ NEG64m_NF_ND = 2857,
+ NEG64r = 2858,
+ NEG64r_EVEX = 2859,
+ NEG64r_ND = 2860,
+ NEG64r_NF = 2861,
+ NEG64r_NF_ND = 2862,
+ NEG8m = 2863,
+ NEG8m_EVEX = 2864,
+ NEG8m_ND = 2865,
+ NEG8m_NF = 2866,
+ NEG8m_NF_ND = 2867,
+ NEG8r = 2868,
+ NEG8r_EVEX = 2869,
+ NEG8r_ND = 2870,
+ NEG8r_NF = 2871,
+ NEG8r_NF_ND = 2872,
+ NOOP = 2873,
+ NOOPL = 2874,
+ NOOPLr = 2875,
+ NOOPQ = 2876,
+ NOOPQr = 2877,
+ NOOPW = 2878,
+ NOOPWr = 2879,
+ NOT16m = 2880,
+ NOT16m_EVEX = 2881,
+ NOT16m_ND = 2882,
+ NOT16r = 2883,
+ NOT16r_EVEX = 2884,
+ NOT16r_ND = 2885,
+ NOT32m = 2886,
+ NOT32m_EVEX = 2887,
+ NOT32m_ND = 2888,
+ NOT32r = 2889,
+ NOT32r_EVEX = 2890,
+ NOT32r_ND = 2891,
+ NOT64m = 2892,
+ NOT64m_EVEX = 2893,
+ NOT64m_ND = 2894,
+ NOT64r = 2895,
+ NOT64r_EVEX = 2896,
+ NOT64r_ND = 2897,
+ NOT8m = 2898,
+ NOT8m_EVEX = 2899,
+ NOT8m_ND = 2900,
+ NOT8r = 2901,
+ NOT8r_EVEX = 2902,
+ NOT8r_ND = 2903,
+ OR16i16 = 2904,
+ OR16mi = 2905,
+ OR16mi8 = 2906,
+ OR16mi8_EVEX = 2907,
+ OR16mi8_ND = 2908,
+ OR16mi8_NF = 2909,
+ OR16mi8_NF_ND = 2910,
+ OR16mi_EVEX = 2911,
+ OR16mi_ND = 2912,
+ OR16mi_NF = 2913,
+ OR16mi_NF_ND = 2914,
+ OR16mr = 2915,
+ OR16mr_EVEX = 2916,
+ OR16mr_ND = 2917,
+ OR16mr_NF = 2918,
+ OR16mr_NF_ND = 2919,
+ OR16ri = 2920,
+ OR16ri8 = 2921,
+ OR16ri8_EVEX = 2922,
+ OR16ri8_ND = 2923,
+ OR16ri8_NF = 2924,
+ OR16ri8_NF_ND = 2925,
+ OR16ri_EVEX = 2926,
+ OR16ri_ND = 2927,
+ OR16ri_NF = 2928,
+ OR16ri_NF_ND = 2929,
+ OR16rm = 2930,
+ OR16rm_EVEX = 2931,
+ OR16rm_ND = 2932,
+ OR16rm_NF = 2933,
+ OR16rm_NF_ND = 2934,
+ OR16rr = 2935,
+ OR16rr_EVEX = 2936,
+ OR16rr_EVEX_REV = 2937,
+ OR16rr_ND = 2938,
+ OR16rr_ND_REV = 2939,
+ OR16rr_NF = 2940,
+ OR16rr_NF_ND = 2941,
+ OR16rr_NF_ND_REV = 2942,
+ OR16rr_NF_REV = 2943,
+ OR16rr_REV = 2944,
+ OR32i32 = 2945,
+ OR32mi = 2946,
+ OR32mi8 = 2947,
+ OR32mi8Locked = 2948,
+ OR32mi8_EVEX = 2949,
+ OR32mi8_ND = 2950,
+ OR32mi8_NF = 2951,
+ OR32mi8_NF_ND = 2952,
+ OR32mi_EVEX = 2953,
+ OR32mi_ND = 2954,
+ OR32mi_NF = 2955,
+ OR32mi_NF_ND = 2956,
+ OR32mr = 2957,
+ OR32mr_EVEX = 2958,
+ OR32mr_ND = 2959,
+ OR32mr_NF = 2960,
+ OR32mr_NF_ND = 2961,
+ OR32ri = 2962,
+ OR32ri8 = 2963,
+ OR32ri8_EVEX = 2964,
+ OR32ri8_ND = 2965,
+ OR32ri8_NF = 2966,
+ OR32ri8_NF_ND = 2967,
+ OR32ri_EVEX = 2968,
+ OR32ri_ND = 2969,
+ OR32ri_NF = 2970,
+ OR32ri_NF_ND = 2971,
+ OR32rm = 2972,
+ OR32rm_EVEX = 2973,
+ OR32rm_ND = 2974,
+ OR32rm_NF = 2975,
+ OR32rm_NF_ND = 2976,
+ OR32rr = 2977,
+ OR32rr_EVEX = 2978,
+ OR32rr_EVEX_REV = 2979,
+ OR32rr_ND = 2980,
+ OR32rr_ND_REV = 2981,
+ OR32rr_NF = 2982,
+ OR32rr_NF_ND = 2983,
+ OR32rr_NF_ND_REV = 2984,
+ OR32rr_NF_REV = 2985,
+ OR32rr_REV = 2986,
+ OR64i32 = 2987,
+ OR64mi32 = 2988,
+ OR64mi32_EVEX = 2989,
+ OR64mi32_ND = 2990,
+ OR64mi32_NF = 2991,
+ OR64mi32_NF_ND = 2992,
+ OR64mi8 = 2993,
+ OR64mi8_EVEX = 2994,
+ OR64mi8_ND = 2995,
+ OR64mi8_NF = 2996,
+ OR64mi8_NF_ND = 2997,
+ OR64mr = 2998,
+ OR64mr_EVEX = 2999,
+ OR64mr_ND = 3000,
+ OR64mr_NF = 3001,
+ OR64mr_NF_ND = 3002,
+ OR64ri32 = 3003,
+ OR64ri32_EVEX = 3004,
+ OR64ri32_ND = 3005,
+ OR64ri32_NF = 3006,
+ OR64ri32_NF_ND = 3007,
+ OR64ri8 = 3008,
+ OR64ri8_EVEX = 3009,
+ OR64ri8_ND = 3010,
+ OR64ri8_NF = 3011,
+ OR64ri8_NF_ND = 3012,
+ OR64rm = 3013,
+ OR64rm_EVEX = 3014,
+ OR64rm_ND = 3015,
+ OR64rm_NF = 3016,
+ OR64rm_NF_ND = 3017,
+ OR64rr = 3018,
+ OR64rr_EVEX = 3019,
+ OR64rr_EVEX_REV = 3020,
+ OR64rr_ND = 3021,
+ OR64rr_ND_REV = 3022,
+ OR64rr_NF = 3023,
+ OR64rr_NF_ND = 3024,
+ OR64rr_NF_ND_REV = 3025,
+ OR64rr_NF_REV = 3026,
+ OR64rr_REV = 3027,
+ OR8i8 = 3028,
+ OR8mi = 3029,
+ OR8mi8 = 3030,
+ OR8mi_EVEX = 3031,
+ OR8mi_ND = 3032,
+ OR8mi_NF = 3033,
+ OR8mi_NF_ND = 3034,
+ OR8mr = 3035,
+ OR8mr_EVEX = 3036,
+ OR8mr_ND = 3037,
+ OR8mr_NF = 3038,
+ OR8mr_NF_ND = 3039,
+ OR8ri = 3040,
+ OR8ri8 = 3041,
+ OR8ri_EVEX = 3042,
+ OR8ri_ND = 3043,
+ OR8ri_NF = 3044,
+ OR8ri_NF_ND = 3045,
+ OR8rm = 3046,
+ OR8rm_EVEX = 3047,
+ OR8rm_ND = 3048,
+ OR8rm_NF = 3049,
+ OR8rm_NF_ND = 3050,
+ OR8rr = 3051,
+ OR8rr_EVEX = 3052,
+ OR8rr_EVEX_REV = 3053,
+ OR8rr_ND = 3054,
+ OR8rr_ND_REV = 3055,
+ OR8rr_NF = 3056,
+ OR8rr_NF_ND = 3057,
+ OR8rr_NF_ND_REV = 3058,
+ OR8rr_NF_REV = 3059,
+ OR8rr_REV = 3060,
+ ORPDrm = 3061,
+ ORPDrr = 3062,
+ ORPSrm = 3063,
+ ORPSrr = 3064,
+ OUT16ir = 3065,
+ OUT16rr = 3066,
+ OUT32ir = 3067,
+ OUT32rr = 3068,
+ OUT8ir = 3069,
+ OUT8rr = 3070,
+ OUTSB = 3071,
+ OUTSL = 3072,
+ OUTSW = 3073,
+ PABSBrm = 3074,
+ PABSBrr = 3075,
+ PABSDrm = 3076,
+ PABSDrr = 3077,
+ PABSWrm = 3078,
+ PABSWrr = 3079,
+ PACKSSDWrm = 3080,
+ PACKSSDWrr = 3081,
+ PACKSSWBrm = 3082,
+ PACKSSWBrr = 3083,
+ PACKUSDWrm = 3084,
+ PACKUSDWrr = 3085,
+ PACKUSWBrm = 3086,
+ PACKUSWBrr = 3087,
+ PADDBrm = 3088,
+ PADDBrr = 3089,
+ PADDDrm = 3090,
+ PADDDrr = 3091,
+ PADDQrm = 3092,
+ PADDQrr = 3093,
+ PADDSBrm = 3094,
+ PADDSBrr = 3095,
+ PADDSWrm = 3096,
+ PADDSWrr = 3097,
+ PADDUSBrm = 3098,
+ PADDUSBrr = 3099,
+ PADDUSWrm = 3100,
+ PADDUSWrr = 3101,
+ PADDWrm = 3102,
+ PADDWrr = 3103,
+ PALIGNRrmi = 3104,
+ PALIGNRrri = 3105,
+ PANDNrm = 3106,
+ PANDNrr = 3107,
+ PANDrm = 3108,
+ PANDrr = 3109,
+ PAUSE = 3110,
+ PAVGBrm = 3111,
+ PAVGBrr = 3112,
+ PAVGUSBrm = 3113,
+ PAVGUSBrr = 3114,
+ PAVGWrm = 3115,
+ PAVGWrr = 3116,
+ PBLENDVBrm0 = 3117,
+ PBLENDVBrr0 = 3118,
+ PBLENDWrmi = 3119,
+ PBLENDWrri = 3120,
+ PBNDKB = 3121,
+ PCLMULQDQrmi = 3122,
+ PCLMULQDQrri = 3123,
+ PCMPEQBrm = 3124,
+ PCMPEQBrr = 3125,
+ PCMPEQDrm = 3126,
+ PCMPEQDrr = 3127,
+ PCMPEQQrm = 3128,
+ PCMPEQQrr = 3129,
+ PCMPEQWrm = 3130,
+ PCMPEQWrr = 3131,
+ PCMPESTRIrmi = 3132,
+ PCMPESTRIrri = 3133,
+ PCMPESTRMrmi = 3134,
+ PCMPESTRMrri = 3135,
+ PCMPGTBrm = 3136,
+ PCMPGTBrr = 3137,
+ PCMPGTDrm = 3138,
+ PCMPGTDrr = 3139,
+ PCMPGTQrm = 3140,
+ PCMPGTQrr = 3141,
+ PCMPGTWrm = 3142,
+ PCMPGTWrr = 3143,
+ PCMPISTRIrmi = 3144,
+ PCMPISTRIrri = 3145,
+ PCMPISTRMrmi = 3146,
+ PCMPISTRMrri = 3147,
+ PCONFIG = 3148,
+ PDEP32rm = 3149,
+ PDEP32rm_EVEX = 3150,
+ PDEP32rr = 3151,
+ PDEP32rr_EVEX = 3152,
+ PDEP64rm = 3153,
+ PDEP64rm_EVEX = 3154,
+ PDEP64rr = 3155,
+ PDEP64rr_EVEX = 3156,
+ PEXT32rm = 3157,
+ PEXT32rm_EVEX = 3158,
+ PEXT32rr = 3159,
+ PEXT32rr_EVEX = 3160,
+ PEXT64rm = 3161,
+ PEXT64rm_EVEX = 3162,
+ PEXT64rr = 3163,
+ PEXT64rr_EVEX = 3164,
+ PEXTRBmri = 3165,
+ PEXTRBrri = 3166,
+ PEXTRDmri = 3167,
+ PEXTRDrri = 3168,
+ PEXTRQmri = 3169,
+ PEXTRQrri = 3170,
+ PEXTRWmri = 3171,
+ PEXTRWrri = 3172,
+ PEXTRWrri_REV = 3173,
+ PF2IDrm = 3174,
+ PF2IDrr = 3175,
+ PF2IWrm = 3176,
+ PF2IWrr = 3177,
+ PFACCrm = 3178,
+ PFACCrr = 3179,
+ PFADDrm = 3180,
+ PFADDrr = 3181,
+ PFCMPEQrm = 3182,
+ PFCMPEQrr = 3183,
+ PFCMPGErm = 3184,
+ PFCMPGErr = 3185,
+ PFCMPGTrm = 3186,
+ PFCMPGTrr = 3187,
+ PFMAXrm = 3188,
+ PFMAXrr = 3189,
+ PFMINrm = 3190,
+ PFMINrr = 3191,
+ PFMULrm = 3192,
+ PFMULrr = 3193,
+ PFNACCrm = 3194,
+ PFNACCrr = 3195,
+ PFPNACCrm = 3196,
+ PFPNACCrr = 3197,
+ PFRCPIT1rm = 3198,
+ PFRCPIT1rr = 3199,
+ PFRCPIT2rm = 3200,
+ PFRCPIT2rr = 3201,
+ PFRCPrm = 3202,
+ PFRCPrr = 3203,
+ PFRSQIT1rm = 3204,
+ PFRSQIT1rr = 3205,
+ PFRSQRTrm = 3206,
+ PFRSQRTrr = 3207,
+ PFSUBRrm = 3208,
+ PFSUBRrr = 3209,
+ PFSUBrm = 3210,
+ PFSUBrr = 3211,
+ PHADDDrm = 3212,
+ PHADDDrr = 3213,
+ PHADDSWrm = 3214,
+ PHADDSWrr = 3215,
+ PHADDWrm = 3216,
+ PHADDWrr = 3217,
+ PHMINPOSUWrm = 3218,
+ PHMINPOSUWrr = 3219,
+ PHSUBDrm = 3220,
+ PHSUBDrr = 3221,
+ PHSUBSWrm = 3222,
+ PHSUBSWrr = 3223,
+ PHSUBWrm = 3224,
+ PHSUBWrr = 3225,
+ PI2FDrm = 3226,
+ PI2FDrr = 3227,
+ PI2FWrm = 3228,
+ PI2FWrr = 3229,
+ PINSRBrmi = 3230,
+ PINSRBrri = 3231,
+ PINSRDrmi = 3232,
+ PINSRDrri = 3233,
+ PINSRQrmi = 3234,
+ PINSRQrri = 3235,
+ PINSRWrmi = 3236,
+ PINSRWrri = 3237,
+ PMADDUBSWrm = 3238,
+ PMADDUBSWrr = 3239,
+ PMADDWDrm = 3240,
+ PMADDWDrr = 3241,
+ PMAXSBrm = 3242,
+ PMAXSBrr = 3243,
+ PMAXSDrm = 3244,
+ PMAXSDrr = 3245,
+ PMAXSWrm = 3246,
+ PMAXSWrr = 3247,
+ PMAXUBrm = 3248,
+ PMAXUBrr = 3249,
+ PMAXUDrm = 3250,
+ PMAXUDrr = 3251,
+ PMAXUWrm = 3252,
+ PMAXUWrr = 3253,
+ PMINSBrm = 3254,
+ PMINSBrr = 3255,
+ PMINSDrm = 3256,
+ PMINSDrr = 3257,
+ PMINSWrm = 3258,
+ PMINSWrr = 3259,
+ PMINUBrm = 3260,
+ PMINUBrr = 3261,
+ PMINUDrm = 3262,
+ PMINUDrr = 3263,
+ PMINUWrm = 3264,
+ PMINUWrr = 3265,
+ PMOVMSKBrr = 3266,
+ PMOVSXBDrm = 3267,
+ PMOVSXBDrr = 3268,
+ PMOVSXBQrm = 3269,
+ PMOVSXBQrr = 3270,
+ PMOVSXBWrm = 3271,
+ PMOVSXBWrr = 3272,
+ PMOVSXDQrm = 3273,
+ PMOVSXDQrr = 3274,
+ PMOVSXWDrm = 3275,
+ PMOVSXWDrr = 3276,
+ PMOVSXWQrm = 3277,
+ PMOVSXWQrr = 3278,
+ PMOVZXBDrm = 3279,
+ PMOVZXBDrr = 3280,
+ PMOVZXBQrm = 3281,
+ PMOVZXBQrr = 3282,
+ PMOVZXBWrm = 3283,
+ PMOVZXBWrr = 3284,
+ PMOVZXDQrm = 3285,
+ PMOVZXDQrr = 3286,
+ PMOVZXWDrm = 3287,
+ PMOVZXWDrr = 3288,
+ PMOVZXWQrm = 3289,
+ PMOVZXWQrr = 3290,
+ PMULDQrm = 3291,
+ PMULDQrr = 3292,
+ PMULHRSWrm = 3293,
+ PMULHRSWrr = 3294,
+ PMULHRWrm = 3295,
+ PMULHRWrr = 3296,
+ PMULHUWrm = 3297,
+ PMULHUWrr = 3298,
+ PMULHWrm = 3299,
+ PMULHWrr = 3300,
+ PMULLDrm = 3301,
+ PMULLDrr = 3302,
+ PMULLWrm = 3303,
+ PMULLWrr = 3304,
+ PMULUDQrm = 3305,
+ PMULUDQrr = 3306,
+ POP16r = 3307,
+ POP16rmm = 3308,
+ POP16rmr = 3309,
+ POP2 = 3310,
+ POP2P = 3311,
+ POP32r = 3312,
+ POP32rmm = 3313,
+ POP32rmr = 3314,
+ POP64r = 3315,
+ POP64rmm = 3316,
+ POP64rmr = 3317,
+ POPA16 = 3318,
+ POPA32 = 3319,
+ POPCNT16rm = 3320,
+ POPCNT16rm_EVEX = 3321,
+ POPCNT16rm_NF = 3322,
+ POPCNT16rr = 3323,
+ POPCNT16rr_EVEX = 3324,
+ POPCNT16rr_NF = 3325,
+ POPCNT32rm = 3326,
+ POPCNT32rm_EVEX = 3327,
+ POPCNT32rm_NF = 3328,
+ POPCNT32rr = 3329,
+ POPCNT32rr_EVEX = 3330,
+ POPCNT32rr_NF = 3331,
+ POPCNT64rm = 3332,
+ POPCNT64rm_EVEX = 3333,
+ POPCNT64rm_NF = 3334,
+ POPCNT64rr = 3335,
+ POPCNT64rr_EVEX = 3336,
+ POPCNT64rr_NF = 3337,
+ POPDS16 = 3338,
+ POPDS32 = 3339,
+ POPES16 = 3340,
+ POPES32 = 3341,
+ POPF16 = 3342,
+ POPF32 = 3343,
+ POPF64 = 3344,
+ POPFS16 = 3345,
+ POPFS32 = 3346,
+ POPFS64 = 3347,
+ POPGS16 = 3348,
+ POPGS32 = 3349,
+ POPGS64 = 3350,
+ POPP64r = 3351,
+ POPSS16 = 3352,
+ POPSS32 = 3353,
+ PORrm = 3354,
+ PORrr = 3355,
+ PREFETCH = 3356,
+ PREFETCHIT0 = 3357,
+ PREFETCHIT1 = 3358,
+ PREFETCHNTA = 3359,
+ PREFETCHRST2 = 3360,
+ PREFETCHT0 = 3361,
+ PREFETCHT1 = 3362,
+ PREFETCHT2 = 3363,
+ PREFETCHW = 3364,
+ PREFETCHWT1 = 3365,
+ PROBED_ALLOCA_32 = 3366,
+ PROBED_ALLOCA_64 = 3367,
+ PSADBWrm = 3368,
+ PSADBWrr = 3369,
+ PSHUFBrm = 3370,
+ PSHUFBrr = 3371,
+ PSHUFDmi = 3372,
+ PSHUFDri = 3373,
+ PSHUFHWmi = 3374,
+ PSHUFHWri = 3375,
+ PSHUFLWmi = 3376,
+ PSHUFLWri = 3377,
+ PSIGNBrm = 3378,
+ PSIGNBrr = 3379,
+ PSIGNDrm = 3380,
+ PSIGNDrr = 3381,
+ PSIGNWrm = 3382,
+ PSIGNWrr = 3383,
+ PSLLDQri = 3384,
+ PSLLDri = 3385,
+ PSLLDrm = 3386,
+ PSLLDrr = 3387,
+ PSLLQri = 3388,
+ PSLLQrm = 3389,
+ PSLLQrr = 3390,
+ PSLLWri = 3391,
+ PSLLWrm = 3392,
+ PSLLWrr = 3393,
+ PSMASH = 3394,
+ PSRADri = 3395,
+ PSRADrm = 3396,
+ PSRADrr = 3397,
+ PSRAWri = 3398,
+ PSRAWrm = 3399,
+ PSRAWrr = 3400,
+ PSRLDQri = 3401,
+ PSRLDri = 3402,
+ PSRLDrm = 3403,
+ PSRLDrr = 3404,
+ PSRLQri = 3405,
+ PSRLQrm = 3406,
+ PSRLQrr = 3407,
+ PSRLWri = 3408,
+ PSRLWrm = 3409,
+ PSRLWrr = 3410,
+ PSUBBrm = 3411,
+ PSUBBrr = 3412,
+ PSUBDrm = 3413,
+ PSUBDrr = 3414,
+ PSUBQrm = 3415,
+ PSUBQrr = 3416,
+ PSUBSBrm = 3417,
+ PSUBSBrr = 3418,
+ PSUBSWrm = 3419,
+ PSUBSWrr = 3420,
+ PSUBUSBrm = 3421,
+ PSUBUSBrr = 3422,
+ PSUBUSWrm = 3423,
+ PSUBUSWrr = 3424,
+ PSUBWrm = 3425,
+ PSUBWrr = 3426,
+ PSWAPDrm = 3427,
+ PSWAPDrr = 3428,
+ PTCMMIMFP16PS = 3429,
+ PTCMMIMFP16PSV = 3430,
+ PTCMMRLFP16PS = 3431,
+ PTCMMRLFP16PSV = 3432,
+ PTCVTROWD2PSrre = 3433,
+ PTCVTROWD2PSrreV = 3434,
+ PTCVTROWD2PSrri = 3435,
+ PTCVTROWD2PSrriV = 3436,
+ PTCVTROWPS2BF16Hrre = 3437,
+ PTCVTROWPS2BF16HrreV = 3438,
+ PTCVTROWPS2BF16Hrri = 3439,
+ PTCVTROWPS2BF16HrriV = 3440,
+ PTCVTROWPS2BF16Lrre = 3441,
+ PTCVTROWPS2BF16LrreV = 3442,
+ PTCVTROWPS2BF16Lrri = 3443,
+ PTCVTROWPS2BF16LrriV = 3444,
+ PTCVTROWPS2PHHrre = 3445,
+ PTCVTROWPS2PHHrreV = 3446,
+ PTCVTROWPS2PHHrri = 3447,
+ PTCVTROWPS2PHHrriV = 3448,
+ PTCVTROWPS2PHLrre = 3449,
+ PTCVTROWPS2PHLrreV = 3450,
+ PTCVTROWPS2PHLrri = 3451,
+ PTCVTROWPS2PHLrriV = 3452,
+ PTDPBF16PS = 3453,
+ PTDPBF8PS = 3454,
+ PTDPBF8PSV = 3455,
+ PTDPBHF8PS = 3456,
+ PTDPBHF8PSV = 3457,
+ PTDPBSSD = 3458,
+ PTDPBSUD = 3459,
+ PTDPBUSD = 3460,
+ PTDPBUUD = 3461,
+ PTDPFP16PS = 3462,
+ PTDPHBF8PS = 3463,
+ PTDPHBF8PSV = 3464,
+ PTDPHF8PS = 3465,
+ PTDPHF8PSV = 3466,
+ PTESTrm = 3467,
+ PTESTrr = 3468,
+ PTILELOADD = 3469,
+ PTILELOADDRS = 3470,
+ PTILELOADDRST1 = 3471,
+ PTILELOADDT1 = 3472,
+ PTILEMOVROWrre = 3473,
+ PTILEMOVROWrreV = 3474,
+ PTILEMOVROWrri = 3475,
+ PTILEMOVROWrriV = 3476,
+ PTILESTORED = 3477,
+ PTILEZERO = 3478,
+ PTMMULTF32PS = 3479,
+ PTMMULTF32PSV = 3480,
+ PTWRITE64m = 3481,
+ PTWRITE64r = 3482,
+ PTWRITEm = 3483,
+ PTWRITEr = 3484,
+ PUNPCKHBWrm = 3485,
+ PUNPCKHBWrr = 3486,
+ PUNPCKHDQrm = 3487,
+ PUNPCKHDQrr = 3488,
+ PUNPCKHQDQrm = 3489,
+ PUNPCKHQDQrr = 3490,
+ PUNPCKHWDrm = 3491,
+ PUNPCKHWDrr = 3492,
+ PUNPCKLBWrm = 3493,
+ PUNPCKLBWrr = 3494,
+ PUNPCKLDQrm = 3495,
+ PUNPCKLDQrr = 3496,
+ PUNPCKLQDQrm = 3497,
+ PUNPCKLQDQrr = 3498,
+ PUNPCKLWDrm = 3499,
+ PUNPCKLWDrr = 3500,
+ PUSH16i = 3501,
+ PUSH16i8 = 3502,
+ PUSH16r = 3503,
+ PUSH16rmm = 3504,
+ PUSH16rmr = 3505,
+ PUSH2 = 3506,
+ PUSH2P = 3507,
+ PUSH32i = 3508,
+ PUSH32i8 = 3509,
+ PUSH32r = 3510,
+ PUSH32rmm = 3511,
+ PUSH32rmr = 3512,
+ PUSH64i32 = 3513,
+ PUSH64i8 = 3514,
+ PUSH64r = 3515,
+ PUSH64rmm = 3516,
+ PUSH64rmr = 3517,
+ PUSHA16 = 3518,
+ PUSHA32 = 3519,
+ PUSHCS16 = 3520,
+ PUSHCS32 = 3521,
+ PUSHDS16 = 3522,
+ PUSHDS32 = 3523,
+ PUSHES16 = 3524,
+ PUSHES32 = 3525,
+ PUSHF16 = 3526,
+ PUSHF32 = 3527,
+ PUSHF64 = 3528,
+ PUSHFS16 = 3529,
+ PUSHFS32 = 3530,
+ PUSHFS64 = 3531,
+ PUSHGS16 = 3532,
+ PUSHGS32 = 3533,
+ PUSHGS64 = 3534,
+ PUSHP64r = 3535,
+ PUSHSS16 = 3536,
+ PUSHSS32 = 3537,
+ PVALIDATE32 = 3538,
+ PVALIDATE64 = 3539,
+ PXORrm = 3540,
+ PXORrr = 3541,
+ RCL16m1 = 3542,
+ RCL16m1_EVEX = 3543,
+ RCL16m1_ND = 3544,
+ RCL16mCL = 3545,
+ RCL16mCL_EVEX = 3546,
+ RCL16mCL_ND = 3547,
+ RCL16mi = 3548,
+ RCL16mi_EVEX = 3549,
+ RCL16mi_ND = 3550,
+ RCL16r1 = 3551,
+ RCL16r1_EVEX = 3552,
+ RCL16r1_ND = 3553,
+ RCL16rCL = 3554,
+ RCL16rCL_EVEX = 3555,
+ RCL16rCL_ND = 3556,
+ RCL16ri = 3557,
+ RCL16ri_EVEX = 3558,
+ RCL16ri_ND = 3559,
+ RCL32m1 = 3560,
+ RCL32m1_EVEX = 3561,
+ RCL32m1_ND = 3562,
+ RCL32mCL = 3563,
+ RCL32mCL_EVEX = 3564,
+ RCL32mCL_ND = 3565,
+ RCL32mi = 3566,
+ RCL32mi_EVEX = 3567,
+ RCL32mi_ND = 3568,
+ RCL32r1 = 3569,
+ RCL32r1_EVEX = 3570,
+ RCL32r1_ND = 3571,
+ RCL32rCL = 3572,
+ RCL32rCL_EVEX = 3573,
+ RCL32rCL_ND = 3574,
+ RCL32ri = 3575,
+ RCL32ri_EVEX = 3576,
+ RCL32ri_ND = 3577,
+ RCL64m1 = 3578,
+ RCL64m1_EVEX = 3579,
+ RCL64m1_ND = 3580,
+ RCL64mCL = 3581,
+ RCL64mCL_EVEX = 3582,
+ RCL64mCL_ND = 3583,
+ RCL64mi = 3584,
+ RCL64mi_EVEX = 3585,
+ RCL64mi_ND = 3586,
+ RCL64r1 = 3587,
+ RCL64r1_EVEX = 3588,
+ RCL64r1_ND = 3589,
+ RCL64rCL = 3590,
+ RCL64rCL_EVEX = 3591,
+ RCL64rCL_ND = 3592,
+ RCL64ri = 3593,
+ RCL64ri_EVEX = 3594,
+ RCL64ri_ND = 3595,
+ RCL8m1 = 3596,
+ RCL8m1_EVEX = 3597,
+ RCL8m1_ND = 3598,
+ RCL8mCL = 3599,
+ RCL8mCL_EVEX = 3600,
+ RCL8mCL_ND = 3601,
+ RCL8mi = 3602,
+ RCL8mi_EVEX = 3603,
+ RCL8mi_ND = 3604,
+ RCL8r1 = 3605,
+ RCL8r1_EVEX = 3606,
+ RCL8r1_ND = 3607,
+ RCL8rCL = 3608,
+ RCL8rCL_EVEX = 3609,
+ RCL8rCL_ND = 3610,
+ RCL8ri = 3611,
+ RCL8ri_EVEX = 3612,
+ RCL8ri_ND = 3613,
+ RCPPSm = 3614,
+ RCPPSr = 3615,
+ RCPSSm = 3616,
+ RCPSSm_Int = 3617,
+ RCPSSr = 3618,
+ RCPSSr_Int = 3619,
+ RCR16m1 = 3620,
+ RCR16m1_EVEX = 3621,
+ RCR16m1_ND = 3622,
+ RCR16mCL = 3623,
+ RCR16mCL_EVEX = 3624,
+ RCR16mCL_ND = 3625,
+ RCR16mi = 3626,
+ RCR16mi_EVEX = 3627,
+ RCR16mi_ND = 3628,
+ RCR16r1 = 3629,
+ RCR16r1_EVEX = 3630,
+ RCR16r1_ND = 3631,
+ RCR16rCL = 3632,
+ RCR16rCL_EVEX = 3633,
+ RCR16rCL_ND = 3634,
+ RCR16ri = 3635,
+ RCR16ri_EVEX = 3636,
+ RCR16ri_ND = 3637,
+ RCR32m1 = 3638,
+ RCR32m1_EVEX = 3639,
+ RCR32m1_ND = 3640,
+ RCR32mCL = 3641,
+ RCR32mCL_EVEX = 3642,
+ RCR32mCL_ND = 3643,
+ RCR32mi = 3644,
+ RCR32mi_EVEX = 3645,
+ RCR32mi_ND = 3646,
+ RCR32r1 = 3647,
+ RCR32r1_EVEX = 3648,
+ RCR32r1_ND = 3649,
+ RCR32rCL = 3650,
+ RCR32rCL_EVEX = 3651,
+ RCR32rCL_ND = 3652,
+ RCR32ri = 3653,
+ RCR32ri_EVEX = 3654,
+ RCR32ri_ND = 3655,
+ RCR64m1 = 3656,
+ RCR64m1_EVEX = 3657,
+ RCR64m1_ND = 3658,
+ RCR64mCL = 3659,
+ RCR64mCL_EVEX = 3660,
+ RCR64mCL_ND = 3661,
+ RCR64mi = 3662,
+ RCR64mi_EVEX = 3663,
+ RCR64mi_ND = 3664,
+ RCR64r1 = 3665,
+ RCR64r1_EVEX = 3666,
+ RCR64r1_ND = 3667,
+ RCR64rCL = 3668,
+ RCR64rCL_EVEX = 3669,
+ RCR64rCL_ND = 3670,
+ RCR64ri = 3671,
+ RCR64ri_EVEX = 3672,
+ RCR64ri_ND = 3673,
+ RCR8m1 = 3674,
+ RCR8m1_EVEX = 3675,
+ RCR8m1_ND = 3676,
+ RCR8mCL = 3677,
+ RCR8mCL_EVEX = 3678,
+ RCR8mCL_ND = 3679,
+ RCR8mi = 3680,
+ RCR8mi_EVEX = 3681,
+ RCR8mi_ND = 3682,
+ RCR8r1 = 3683,
+ RCR8r1_EVEX = 3684,
+ RCR8r1_ND = 3685,
+ RCR8rCL = 3686,
+ RCR8rCL_EVEX = 3687,
+ RCR8rCL_ND = 3688,
+ RCR8ri = 3689,
+ RCR8ri_EVEX = 3690,
+ RCR8ri_ND = 3691,
+ RDFSBASE = 3692,
+ RDFSBASE64 = 3693,
+ RDGSBASE = 3694,
+ RDGSBASE64 = 3695,
+ RDMSR = 3696,
+ RDMSRLIST = 3697,
+ RDMSRri = 3698,
+ RDMSRri_EVEX = 3699,
+ RDPID32 = 3700,
+ RDPID64 = 3701,
+ RDPKRUr = 3702,
+ RDPMC = 3703,
+ RDPRU = 3704,
+ RDRAND16r = 3705,
+ RDRAND32r = 3706,
+ RDRAND64r = 3707,
+ RDSEED16r = 3708,
+ RDSEED32r = 3709,
+ RDSEED64r = 3710,
+ RDSSPD = 3711,
+ RDSSPQ = 3712,
+ RDTSC = 3713,
+ RDTSCP = 3714,
+ REPNE_PREFIX = 3715,
+ REP_MOVSB_32 = 3716,
+ REP_MOVSB_64 = 3717,
+ REP_MOVSD_32 = 3718,
+ REP_MOVSD_64 = 3719,
+ REP_MOVSQ_32 = 3720,
+ REP_MOVSQ_64 = 3721,
+ REP_MOVSW_32 = 3722,
+ REP_MOVSW_64 = 3723,
+ REP_PREFIX = 3724,
+ REP_STOSB_32 = 3725,
+ REP_STOSB_64 = 3726,
+ REP_STOSD_32 = 3727,
+ REP_STOSD_64 = 3728,
+ REP_STOSQ_32 = 3729,
+ REP_STOSQ_64 = 3730,
+ REP_STOSW_32 = 3731,
+ REP_STOSW_64 = 3732,
+ RET = 3733,
+ RET16 = 3734,
+ RET32 = 3735,
+ RET64 = 3736,
+ RETI16 = 3737,
+ RETI32 = 3738,
+ RETI64 = 3739,
+ REX64_PREFIX = 3740,
+ RMPADJUST = 3741,
+ RMPQUERY = 3742,
+ RMPUPDATE = 3743,
+ ROL16m1 = 3744,
+ ROL16m1_EVEX = 3745,
+ ROL16m1_ND = 3746,
+ ROL16m1_NF = 3747,
+ ROL16m1_NF_ND = 3748,
+ ROL16mCL = 3749,
+ ROL16mCL_EVEX = 3750,
+ ROL16mCL_ND = 3751,
+ ROL16mCL_NF = 3752,
+ ROL16mCL_NF_ND = 3753,
+ ROL16mi = 3754,
+ ROL16mi_EVEX = 3755,
+ ROL16mi_ND = 3756,
+ ROL16mi_NF = 3757,
+ ROL16mi_NF_ND = 3758,
+ ROL16r1 = 3759,
+ ROL16r1_EVEX = 3760,
+ ROL16r1_ND = 3761,
+ ROL16r1_NF = 3762,
+ ROL16r1_NF_ND = 3763,
+ ROL16rCL = 3764,
+ ROL16rCL_EVEX = 3765,
+ ROL16rCL_ND = 3766,
+ ROL16rCL_NF = 3767,
+ ROL16rCL_NF_ND = 3768,
+ ROL16ri = 3769,
+ ROL16ri_EVEX = 3770,
+ ROL16ri_ND = 3771,
+ ROL16ri_NF = 3772,
+ ROL16ri_NF_ND = 3773,
+ ROL32m1 = 3774,
+ ROL32m1_EVEX = 3775,
+ ROL32m1_ND = 3776,
+ ROL32m1_NF = 3777,
+ ROL32m1_NF_ND = 3778,
+ ROL32mCL = 3779,
+ ROL32mCL_EVEX = 3780,
+ ROL32mCL_ND = 3781,
+ ROL32mCL_NF = 3782,
+ ROL32mCL_NF_ND = 3783,
+ ROL32mi = 3784,
+ ROL32mi_EVEX = 3785,
+ ROL32mi_ND = 3786,
+ ROL32mi_NF = 3787,
+ ROL32mi_NF_ND = 3788,
+ ROL32r1 = 3789,
+ ROL32r1_EVEX = 3790,
+ ROL32r1_ND = 3791,
+ ROL32r1_NF = 3792,
+ ROL32r1_NF_ND = 3793,
+ ROL32rCL = 3794,
+ ROL32rCL_EVEX = 3795,
+ ROL32rCL_ND = 3796,
+ ROL32rCL_NF = 3797,
+ ROL32rCL_NF_ND = 3798,
+ ROL32ri = 3799,
+ ROL32ri_EVEX = 3800,
+ ROL32ri_ND = 3801,
+ ROL32ri_NF = 3802,
+ ROL32ri_NF_ND = 3803,
+ ROL64m1 = 3804,
+ ROL64m1_EVEX = 3805,
+ ROL64m1_ND = 3806,
+ ROL64m1_NF = 3807,
+ ROL64m1_NF_ND = 3808,
+ ROL64mCL = 3809,
+ ROL64mCL_EVEX = 3810,
+ ROL64mCL_ND = 3811,
+ ROL64mCL_NF = 3812,
+ ROL64mCL_NF_ND = 3813,
+ ROL64mi = 3814,
+ ROL64mi_EVEX = 3815,
+ ROL64mi_ND = 3816,
+ ROL64mi_NF = 3817,
+ ROL64mi_NF_ND = 3818,
+ ROL64r1 = 3819,
+ ROL64r1_EVEX = 3820,
+ ROL64r1_ND = 3821,
+ ROL64r1_NF = 3822,
+ ROL64r1_NF_ND = 3823,
+ ROL64rCL = 3824,
+ ROL64rCL_EVEX = 3825,
+ ROL64rCL_ND = 3826,
+ ROL64rCL_NF = 3827,
+ ROL64rCL_NF_ND = 3828,
+ ROL64ri = 3829,
+ ROL64ri_EVEX = 3830,
+ ROL64ri_ND = 3831,
+ ROL64ri_NF = 3832,
+ ROL64ri_NF_ND = 3833,
+ ROL8m1 = 3834,
+ ROL8m1_EVEX = 3835,
+ ROL8m1_ND = 3836,
+ ROL8m1_NF = 3837,
+ ROL8m1_NF_ND = 3838,
+ ROL8mCL = 3839,
+ ROL8mCL_EVEX = 3840,
+ ROL8mCL_ND = 3841,
+ ROL8mCL_NF = 3842,
+ ROL8mCL_NF_ND = 3843,
+ ROL8mi = 3844,
+ ROL8mi_EVEX = 3845,
+ ROL8mi_ND = 3846,
+ ROL8mi_NF = 3847,
+ ROL8mi_NF_ND = 3848,
+ ROL8r1 = 3849,
+ ROL8r1_EVEX = 3850,
+ ROL8r1_ND = 3851,
+ ROL8r1_NF = 3852,
+ ROL8r1_NF_ND = 3853,
+ ROL8rCL = 3854,
+ ROL8rCL_EVEX = 3855,
+ ROL8rCL_ND = 3856,
+ ROL8rCL_NF = 3857,
+ ROL8rCL_NF_ND = 3858,
+ ROL8ri = 3859,
+ ROL8ri_EVEX = 3860,
+ ROL8ri_ND = 3861,
+ ROL8ri_NF = 3862,
+ ROL8ri_NF_ND = 3863,
+ ROR16m1 = 3864,
+ ROR16m1_EVEX = 3865,
+ ROR16m1_ND = 3866,
+ ROR16m1_NF = 3867,
+ ROR16m1_NF_ND = 3868,
+ ROR16mCL = 3869,
+ ROR16mCL_EVEX = 3870,
+ ROR16mCL_ND = 3871,
+ ROR16mCL_NF = 3872,
+ ROR16mCL_NF_ND = 3873,
+ ROR16mi = 3874,
+ ROR16mi_EVEX = 3875,
+ ROR16mi_ND = 3876,
+ ROR16mi_NF = 3877,
+ ROR16mi_NF_ND = 3878,
+ ROR16r1 = 3879,
+ ROR16r1_EVEX = 3880,
+ ROR16r1_ND = 3881,
+ ROR16r1_NF = 3882,
+ ROR16r1_NF_ND = 3883,
+ ROR16rCL = 3884,
+ ROR16rCL_EVEX = 3885,
+ ROR16rCL_ND = 3886,
+ ROR16rCL_NF = 3887,
+ ROR16rCL_NF_ND = 3888,
+ ROR16ri = 3889,
+ ROR16ri_EVEX = 3890,
+ ROR16ri_ND = 3891,
+ ROR16ri_NF = 3892,
+ ROR16ri_NF_ND = 3893,
+ ROR32m1 = 3894,
+ ROR32m1_EVEX = 3895,
+ ROR32m1_ND = 3896,
+ ROR32m1_NF = 3897,
+ ROR32m1_NF_ND = 3898,
+ ROR32mCL = 3899,
+ ROR32mCL_EVEX = 3900,
+ ROR32mCL_ND = 3901,
+ ROR32mCL_NF = 3902,
+ ROR32mCL_NF_ND = 3903,
+ ROR32mi = 3904,
+ ROR32mi_EVEX = 3905,
+ ROR32mi_ND = 3906,
+ ROR32mi_NF = 3907,
+ ROR32mi_NF_ND = 3908,
+ ROR32r1 = 3909,
+ ROR32r1_EVEX = 3910,
+ ROR32r1_ND = 3911,
+ ROR32r1_NF = 3912,
+ ROR32r1_NF_ND = 3913,
+ ROR32rCL = 3914,
+ ROR32rCL_EVEX = 3915,
+ ROR32rCL_ND = 3916,
+ ROR32rCL_NF = 3917,
+ ROR32rCL_NF_ND = 3918,
+ ROR32ri = 3919,
+ ROR32ri_EVEX = 3920,
+ ROR32ri_ND = 3921,
+ ROR32ri_NF = 3922,
+ ROR32ri_NF_ND = 3923,
+ ROR64m1 = 3924,
+ ROR64m1_EVEX = 3925,
+ ROR64m1_ND = 3926,
+ ROR64m1_NF = 3927,
+ ROR64m1_NF_ND = 3928,
+ ROR64mCL = 3929,
+ ROR64mCL_EVEX = 3930,
+ ROR64mCL_ND = 3931,
+ ROR64mCL_NF = 3932,
+ ROR64mCL_NF_ND = 3933,
+ ROR64mi = 3934,
+ ROR64mi_EVEX = 3935,
+ ROR64mi_ND = 3936,
+ ROR64mi_NF = 3937,
+ ROR64mi_NF_ND = 3938,
+ ROR64r1 = 3939,
+ ROR64r1_EVEX = 3940,
+ ROR64r1_ND = 3941,
+ ROR64r1_NF = 3942,
+ ROR64r1_NF_ND = 3943,
+ ROR64rCL = 3944,
+ ROR64rCL_EVEX = 3945,
+ ROR64rCL_ND = 3946,
+ ROR64rCL_NF = 3947,
+ ROR64rCL_NF_ND = 3948,
+ ROR64ri = 3949,
+ ROR64ri_EVEX = 3950,
+ ROR64ri_ND = 3951,
+ ROR64ri_NF = 3952,
+ ROR64ri_NF_ND = 3953,
+ ROR8m1 = 3954,
+ ROR8m1_EVEX = 3955,
+ ROR8m1_ND = 3956,
+ ROR8m1_NF = 3957,
+ ROR8m1_NF_ND = 3958,
+ ROR8mCL = 3959,
+ ROR8mCL_EVEX = 3960,
+ ROR8mCL_ND = 3961,
+ ROR8mCL_NF = 3962,
+ ROR8mCL_NF_ND = 3963,
+ ROR8mi = 3964,
+ ROR8mi_EVEX = 3965,
+ ROR8mi_ND = 3966,
+ ROR8mi_NF = 3967,
+ ROR8mi_NF_ND = 3968,
+ ROR8r1 = 3969,
+ ROR8r1_EVEX = 3970,
+ ROR8r1_ND = 3971,
+ ROR8r1_NF = 3972,
+ ROR8r1_NF_ND = 3973,
+ ROR8rCL = 3974,
+ ROR8rCL_EVEX = 3975,
+ ROR8rCL_ND = 3976,
+ ROR8rCL_NF = 3977,
+ ROR8rCL_NF_ND = 3978,
+ ROR8ri = 3979,
+ ROR8ri_EVEX = 3980,
+ ROR8ri_ND = 3981,
+ ROR8ri_NF = 3982,
+ ROR8ri_NF_ND = 3983,
+ RORX32mi = 3984,
+ RORX32mi_EVEX = 3985,
+ RORX32ri = 3986,
+ RORX32ri_EVEX = 3987,
+ RORX64mi = 3988,
+ RORX64mi_EVEX = 3989,
+ RORX64ri = 3990,
+ RORX64ri_EVEX = 3991,
+ ROUNDPDmi = 3992,
+ ROUNDPDri = 3993,
+ ROUNDPSmi = 3994,
+ ROUNDPSri = 3995,
+ ROUNDSDmi = 3996,
+ ROUNDSDmi_Int = 3997,
+ ROUNDSDri = 3998,
+ ROUNDSDri_Int = 3999,
+ ROUNDSSmi = 4000,
+ ROUNDSSmi_Int = 4001,
+ ROUNDSSri = 4002,
+ ROUNDSSri_Int = 4003,
+ RSM = 4004,
+ RSQRTPSm = 4005,
+ RSQRTPSr = 4006,
+ RSQRTSSm = 4007,
+ RSQRTSSm_Int = 4008,
+ RSQRTSSr = 4009,
+ RSQRTSSr_Int = 4010,
+ RSTORSSP = 4011,
+ SAHF = 4012,
+ SALC = 4013,
+ SAR16m1 = 4014,
+ SAR16m1_EVEX = 4015,
+ SAR16m1_ND = 4016,
+ SAR16m1_NF = 4017,
+ SAR16m1_NF_ND = 4018,
+ SAR16mCL = 4019,
+ SAR16mCL_EVEX = 4020,
+ SAR16mCL_ND = 4021,
+ SAR16mCL_NF = 4022,
+ SAR16mCL_NF_ND = 4023,
+ SAR16mi = 4024,
+ SAR16mi_EVEX = 4025,
+ SAR16mi_ND = 4026,
+ SAR16mi_NF = 4027,
+ SAR16mi_NF_ND = 4028,
+ SAR16r1 = 4029,
+ SAR16r1_EVEX = 4030,
+ SAR16r1_ND = 4031,
+ SAR16r1_NF = 4032,
+ SAR16r1_NF_ND = 4033,
+ SAR16rCL = 4034,
+ SAR16rCL_EVEX = 4035,
+ SAR16rCL_ND = 4036,
+ SAR16rCL_NF = 4037,
+ SAR16rCL_NF_ND = 4038,
+ SAR16ri = 4039,
+ SAR16ri_EVEX = 4040,
+ SAR16ri_ND = 4041,
+ SAR16ri_NF = 4042,
+ SAR16ri_NF_ND = 4043,
+ SAR32m1 = 4044,
+ SAR32m1_EVEX = 4045,
+ SAR32m1_ND = 4046,
+ SAR32m1_NF = 4047,
+ SAR32m1_NF_ND = 4048,
+ SAR32mCL = 4049,
+ SAR32mCL_EVEX = 4050,
+ SAR32mCL_ND = 4051,
+ SAR32mCL_NF = 4052,
+ SAR32mCL_NF_ND = 4053,
+ SAR32mi = 4054,
+ SAR32mi_EVEX = 4055,
+ SAR32mi_ND = 4056,
+ SAR32mi_NF = 4057,
+ SAR32mi_NF_ND = 4058,
+ SAR32r1 = 4059,
+ SAR32r1_EVEX = 4060,
+ SAR32r1_ND = 4061,
+ SAR32r1_NF = 4062,
+ SAR32r1_NF_ND = 4063,
+ SAR32rCL = 4064,
+ SAR32rCL_EVEX = 4065,
+ SAR32rCL_ND = 4066,
+ SAR32rCL_NF = 4067,
+ SAR32rCL_NF_ND = 4068,
+ SAR32ri = 4069,
+ SAR32ri_EVEX = 4070,
+ SAR32ri_ND = 4071,
+ SAR32ri_NF = 4072,
+ SAR32ri_NF_ND = 4073,
+ SAR64m1 = 4074,
+ SAR64m1_EVEX = 4075,
+ SAR64m1_ND = 4076,
+ SAR64m1_NF = 4077,
+ SAR64m1_NF_ND = 4078,
+ SAR64mCL = 4079,
+ SAR64mCL_EVEX = 4080,
+ SAR64mCL_ND = 4081,
+ SAR64mCL_NF = 4082,
+ SAR64mCL_NF_ND = 4083,
+ SAR64mi = 4084,
+ SAR64mi_EVEX = 4085,
+ SAR64mi_ND = 4086,
+ SAR64mi_NF = 4087,
+ SAR64mi_NF_ND = 4088,
+ SAR64r1 = 4089,
+ SAR64r1_EVEX = 4090,
+ SAR64r1_ND = 4091,
+ SAR64r1_NF = 4092,
+ SAR64r1_NF_ND = 4093,
+ SAR64rCL = 4094,
+ SAR64rCL_EVEX = 4095,
+ SAR64rCL_ND = 4096,
+ SAR64rCL_NF = 4097,
+ SAR64rCL_NF_ND = 4098,
+ SAR64ri = 4099,
+ SAR64ri_EVEX = 4100,
+ SAR64ri_ND = 4101,
+ SAR64ri_NF = 4102,
+ SAR64ri_NF_ND = 4103,
+ SAR8m1 = 4104,
+ SAR8m1_EVEX = 4105,
+ SAR8m1_ND = 4106,
+ SAR8m1_NF = 4107,
+ SAR8m1_NF_ND = 4108,
+ SAR8mCL = 4109,
+ SAR8mCL_EVEX = 4110,
+ SAR8mCL_ND = 4111,
+ SAR8mCL_NF = 4112,
+ SAR8mCL_NF_ND = 4113,
+ SAR8mi = 4114,
+ SAR8mi_EVEX = 4115,
+ SAR8mi_ND = 4116,
+ SAR8mi_NF = 4117,
+ SAR8mi_NF_ND = 4118,
+ SAR8r1 = 4119,
+ SAR8r1_EVEX = 4120,
+ SAR8r1_ND = 4121,
+ SAR8r1_NF = 4122,
+ SAR8r1_NF_ND = 4123,
+ SAR8rCL = 4124,
+ SAR8rCL_EVEX = 4125,
+ SAR8rCL_ND = 4126,
+ SAR8rCL_NF = 4127,
+ SAR8rCL_NF_ND = 4128,
+ SAR8ri = 4129,
+ SAR8ri_EVEX = 4130,
+ SAR8ri_ND = 4131,
+ SAR8ri_NF = 4132,
+ SAR8ri_NF_ND = 4133,
+ SARX32rm = 4134,
+ SARX32rm_EVEX = 4135,
+ SARX32rr = 4136,
+ SARX32rr_EVEX = 4137,
+ SARX64rm = 4138,
+ SARX64rm_EVEX = 4139,
+ SARX64rr = 4140,
+ SARX64rr_EVEX = 4141,
+ SAVEPREVSSP = 4142,
+ SBB16i16 = 4143,
+ SBB16mi = 4144,
+ SBB16mi8 = 4145,
+ SBB16mi8_EVEX = 4146,
+ SBB16mi8_ND = 4147,
+ SBB16mi_EVEX = 4148,
+ SBB16mi_ND = 4149,
+ SBB16mr = 4150,
+ SBB16mr_EVEX = 4151,
+ SBB16mr_ND = 4152,
+ SBB16ri = 4153,
+ SBB16ri8 = 4154,
+ SBB16ri8_EVEX = 4155,
+ SBB16ri8_ND = 4156,
+ SBB16ri_EVEX = 4157,
+ SBB16ri_ND = 4158,
+ SBB16rm = 4159,
+ SBB16rm_EVEX = 4160,
+ SBB16rm_ND = 4161,
+ SBB16rr = 4162,
+ SBB16rr_EVEX = 4163,
+ SBB16rr_EVEX_REV = 4164,
+ SBB16rr_ND = 4165,
+ SBB16rr_ND_REV = 4166,
+ SBB16rr_REV = 4167,
+ SBB32i32 = 4168,
+ SBB32mi = 4169,
+ SBB32mi8 = 4170,
+ SBB32mi8_EVEX = 4171,
+ SBB32mi8_ND = 4172,
+ SBB32mi_EVEX = 4173,
+ SBB32mi_ND = 4174,
+ SBB32mr = 4175,
+ SBB32mr_EVEX = 4176,
+ SBB32mr_ND = 4177,
+ SBB32ri = 4178,
+ SBB32ri8 = 4179,
+ SBB32ri8_EVEX = 4180,
+ SBB32ri8_ND = 4181,
+ SBB32ri_EVEX = 4182,
+ SBB32ri_ND = 4183,
+ SBB32rm = 4184,
+ SBB32rm_EVEX = 4185,
+ SBB32rm_ND = 4186,
+ SBB32rr = 4187,
+ SBB32rr_EVEX = 4188,
+ SBB32rr_EVEX_REV = 4189,
+ SBB32rr_ND = 4190,
+ SBB32rr_ND_REV = 4191,
+ SBB32rr_REV = 4192,
+ SBB64i32 = 4193,
+ SBB64mi32 = 4194,
+ SBB64mi32_EVEX = 4195,
+ SBB64mi32_ND = 4196,
+ SBB64mi8 = 4197,
+ SBB64mi8_EVEX = 4198,
+ SBB64mi8_ND = 4199,
+ SBB64mr = 4200,
+ SBB64mr_EVEX = 4201,
+ SBB64mr_ND = 4202,
+ SBB64ri32 = 4203,
+ SBB64ri32_EVEX = 4204,
+ SBB64ri32_ND = 4205,
+ SBB64ri8 = 4206,
+ SBB64ri8_EVEX = 4207,
+ SBB64ri8_ND = 4208,
+ SBB64rm = 4209,
+ SBB64rm_EVEX = 4210,
+ SBB64rm_ND = 4211,
+ SBB64rr = 4212,
+ SBB64rr_EVEX = 4213,
+ SBB64rr_EVEX_REV = 4214,
+ SBB64rr_ND = 4215,
+ SBB64rr_ND_REV = 4216,
+ SBB64rr_REV = 4217,
+ SBB8i8 = 4218,
+ SBB8mi = 4219,
+ SBB8mi8 = 4220,
+ SBB8mi_EVEX = 4221,
+ SBB8mi_ND = 4222,
+ SBB8mr = 4223,
+ SBB8mr_EVEX = 4224,
+ SBB8mr_ND = 4225,
+ SBB8ri = 4226,
+ SBB8ri8 = 4227,
+ SBB8ri_EVEX = 4228,
+ SBB8ri_ND = 4229,
+ SBB8rm = 4230,
+ SBB8rm_EVEX = 4231,
+ SBB8rm_ND = 4232,
+ SBB8rr = 4233,
+ SBB8rr_EVEX = 4234,
+ SBB8rr_EVEX_REV = 4235,
+ SBB8rr_ND = 4236,
+ SBB8rr_ND_REV = 4237,
+ SBB8rr_REV = 4238,
+ SCASB = 4239,
+ SCASL = 4240,
+ SCASQ = 4241,
+ SCASW = 4242,
+ SEAMCALL = 4243,
+ SEAMOPS = 4244,
+ SEAMRET = 4245,
+ SEG_ALLOCA_32 = 4246,
+ SEG_ALLOCA_64 = 4247,
+ SENDUIPI = 4248,
+ SERIALIZE = 4249,
+ SETCCm = 4250,
+ SETCCm_EVEX = 4251,
+ SETCCr = 4252,
+ SETCCr_EVEX = 4253,
+ SETSSBSY = 4254,
+ SETZUCCm = 4255,
+ SETZUCCr = 4256,
+ SFENCE = 4257,
+ SGDT16m = 4258,
+ SGDT32m = 4259,
+ SGDT64m = 4260,
+ SHA1MSG1rm = 4261,
+ SHA1MSG1rr = 4262,
+ SHA1MSG2rm = 4263,
+ SHA1MSG2rr = 4264,
+ SHA1NEXTErm = 4265,
+ SHA1NEXTErr = 4266,
+ SHA1RNDS4rmi = 4267,
+ SHA1RNDS4rri = 4268,
+ SHA256MSG1rm = 4269,
+ SHA256MSG1rr = 4270,
+ SHA256MSG2rm = 4271,
+ SHA256MSG2rr = 4272,
+ SHA256RNDS2rm = 4273,
+ SHA256RNDS2rr = 4274,
+ SHL16m1 = 4275,
+ SHL16m1_EVEX = 4276,
+ SHL16m1_ND = 4277,
+ SHL16m1_NF = 4278,
+ SHL16m1_NF_ND = 4279,
+ SHL16mCL = 4280,
+ SHL16mCL_EVEX = 4281,
+ SHL16mCL_ND = 4282,
+ SHL16mCL_NF = 4283,
+ SHL16mCL_NF_ND = 4284,
+ SHL16mi = 4285,
+ SHL16mi_EVEX = 4286,
+ SHL16mi_ND = 4287,
+ SHL16mi_NF = 4288,
+ SHL16mi_NF_ND = 4289,
+ SHL16r1 = 4290,
+ SHL16r1_EVEX = 4291,
+ SHL16r1_ND = 4292,
+ SHL16r1_NF = 4293,
+ SHL16r1_NF_ND = 4294,
+ SHL16rCL = 4295,
+ SHL16rCL_EVEX = 4296,
+ SHL16rCL_ND = 4297,
+ SHL16rCL_NF = 4298,
+ SHL16rCL_NF_ND = 4299,
+ SHL16ri = 4300,
+ SHL16ri_EVEX = 4301,
+ SHL16ri_ND = 4302,
+ SHL16ri_NF = 4303,
+ SHL16ri_NF_ND = 4304,
+ SHL32m1 = 4305,
+ SHL32m1_EVEX = 4306,
+ SHL32m1_ND = 4307,
+ SHL32m1_NF = 4308,
+ SHL32m1_NF_ND = 4309,
+ SHL32mCL = 4310,
+ SHL32mCL_EVEX = 4311,
+ SHL32mCL_ND = 4312,
+ SHL32mCL_NF = 4313,
+ SHL32mCL_NF_ND = 4314,
+ SHL32mi = 4315,
+ SHL32mi_EVEX = 4316,
+ SHL32mi_ND = 4317,
+ SHL32mi_NF = 4318,
+ SHL32mi_NF_ND = 4319,
+ SHL32r1 = 4320,
+ SHL32r1_EVEX = 4321,
+ SHL32r1_ND = 4322,
+ SHL32r1_NF = 4323,
+ SHL32r1_NF_ND = 4324,
+ SHL32rCL = 4325,
+ SHL32rCL_EVEX = 4326,
+ SHL32rCL_ND = 4327,
+ SHL32rCL_NF = 4328,
+ SHL32rCL_NF_ND = 4329,
+ SHL32ri = 4330,
+ SHL32ri_EVEX = 4331,
+ SHL32ri_ND = 4332,
+ SHL32ri_NF = 4333,
+ SHL32ri_NF_ND = 4334,
+ SHL64m1 = 4335,
+ SHL64m1_EVEX = 4336,
+ SHL64m1_ND = 4337,
+ SHL64m1_NF = 4338,
+ SHL64m1_NF_ND = 4339,
+ SHL64mCL = 4340,
+ SHL64mCL_EVEX = 4341,
+ SHL64mCL_ND = 4342,
+ SHL64mCL_NF = 4343,
+ SHL64mCL_NF_ND = 4344,
+ SHL64mi = 4345,
+ SHL64mi_EVEX = 4346,
+ SHL64mi_ND = 4347,
+ SHL64mi_NF = 4348,
+ SHL64mi_NF_ND = 4349,
+ SHL64r1 = 4350,
+ SHL64r1_EVEX = 4351,
+ SHL64r1_ND = 4352,
+ SHL64r1_NF = 4353,
+ SHL64r1_NF_ND = 4354,
+ SHL64rCL = 4355,
+ SHL64rCL_EVEX = 4356,
+ SHL64rCL_ND = 4357,
+ SHL64rCL_NF = 4358,
+ SHL64rCL_NF_ND = 4359,
+ SHL64ri = 4360,
+ SHL64ri_EVEX = 4361,
+ SHL64ri_ND = 4362,
+ SHL64ri_NF = 4363,
+ SHL64ri_NF_ND = 4364,
+ SHL8m1 = 4365,
+ SHL8m1_EVEX = 4366,
+ SHL8m1_ND = 4367,
+ SHL8m1_NF = 4368,
+ SHL8m1_NF_ND = 4369,
+ SHL8mCL = 4370,
+ SHL8mCL_EVEX = 4371,
+ SHL8mCL_ND = 4372,
+ SHL8mCL_NF = 4373,
+ SHL8mCL_NF_ND = 4374,
+ SHL8mi = 4375,
+ SHL8mi_EVEX = 4376,
+ SHL8mi_ND = 4377,
+ SHL8mi_NF = 4378,
+ SHL8mi_NF_ND = 4379,
+ SHL8r1 = 4380,
+ SHL8r1_EVEX = 4381,
+ SHL8r1_ND = 4382,
+ SHL8r1_NF = 4383,
+ SHL8r1_NF_ND = 4384,
+ SHL8rCL = 4385,
+ SHL8rCL_EVEX = 4386,
+ SHL8rCL_ND = 4387,
+ SHL8rCL_NF = 4388,
+ SHL8rCL_NF_ND = 4389,
+ SHL8ri = 4390,
+ SHL8ri_EVEX = 4391,
+ SHL8ri_ND = 4392,
+ SHL8ri_NF = 4393,
+ SHL8ri_NF_ND = 4394,
+ SHLD16mrCL = 4395,
+ SHLD16mrCL_EVEX = 4396,
+ SHLD16mrCL_ND = 4397,
+ SHLD16mrCL_NF = 4398,
+ SHLD16mrCL_NF_ND = 4399,
+ SHLD16mri8 = 4400,
+ SHLD16mri8_EVEX = 4401,
+ SHLD16mri8_ND = 4402,
+ SHLD16mri8_NF = 4403,
+ SHLD16mri8_NF_ND = 4404,
+ SHLD16rrCL = 4405,
+ SHLD16rrCL_EVEX = 4406,
+ SHLD16rrCL_ND = 4407,
+ SHLD16rrCL_NF = 4408,
+ SHLD16rrCL_NF_ND = 4409,
+ SHLD16rri8 = 4410,
+ SHLD16rri8_EVEX = 4411,
+ SHLD16rri8_ND = 4412,
+ SHLD16rri8_NF = 4413,
+ SHLD16rri8_NF_ND = 4414,
+ SHLD32mrCL = 4415,
+ SHLD32mrCL_EVEX = 4416,
+ SHLD32mrCL_ND = 4417,
+ SHLD32mrCL_NF = 4418,
+ SHLD32mrCL_NF_ND = 4419,
+ SHLD32mri8 = 4420,
+ SHLD32mri8_EVEX = 4421,
+ SHLD32mri8_ND = 4422,
+ SHLD32mri8_NF = 4423,
+ SHLD32mri8_NF_ND = 4424,
+ SHLD32rrCL = 4425,
+ SHLD32rrCL_EVEX = 4426,
+ SHLD32rrCL_ND = 4427,
+ SHLD32rrCL_NF = 4428,
+ SHLD32rrCL_NF_ND = 4429,
+ SHLD32rri8 = 4430,
+ SHLD32rri8_EVEX = 4431,
+ SHLD32rri8_ND = 4432,
+ SHLD32rri8_NF = 4433,
+ SHLD32rri8_NF_ND = 4434,
+ SHLD64mrCL = 4435,
+ SHLD64mrCL_EVEX = 4436,
+ SHLD64mrCL_ND = 4437,
+ SHLD64mrCL_NF = 4438,
+ SHLD64mrCL_NF_ND = 4439,
+ SHLD64mri8 = 4440,
+ SHLD64mri8_EVEX = 4441,
+ SHLD64mri8_ND = 4442,
+ SHLD64mri8_NF = 4443,
+ SHLD64mri8_NF_ND = 4444,
+ SHLD64rrCL = 4445,
+ SHLD64rrCL_EVEX = 4446,
+ SHLD64rrCL_ND = 4447,
+ SHLD64rrCL_NF = 4448,
+ SHLD64rrCL_NF_ND = 4449,
+ SHLD64rri8 = 4450,
+ SHLD64rri8_EVEX = 4451,
+ SHLD64rri8_ND = 4452,
+ SHLD64rri8_NF = 4453,
+ SHLD64rri8_NF_ND = 4454,
+ SHLX32rm = 4455,
+ SHLX32rm_EVEX = 4456,
+ SHLX32rr = 4457,
+ SHLX32rr_EVEX = 4458,
+ SHLX64rm = 4459,
+ SHLX64rm_EVEX = 4460,
+ SHLX64rr = 4461,
+ SHLX64rr_EVEX = 4462,
+ SHR16m1 = 4463,
+ SHR16m1_EVEX = 4464,
+ SHR16m1_ND = 4465,
+ SHR16m1_NF = 4466,
+ SHR16m1_NF_ND = 4467,
+ SHR16mCL = 4468,
+ SHR16mCL_EVEX = 4469,
+ SHR16mCL_ND = 4470,
+ SHR16mCL_NF = 4471,
+ SHR16mCL_NF_ND = 4472,
+ SHR16mi = 4473,
+ SHR16mi_EVEX = 4474,
+ SHR16mi_ND = 4475,
+ SHR16mi_NF = 4476,
+ SHR16mi_NF_ND = 4477,
+ SHR16r1 = 4478,
+ SHR16r1_EVEX = 4479,
+ SHR16r1_ND = 4480,
+ SHR16r1_NF = 4481,
+ SHR16r1_NF_ND = 4482,
+ SHR16rCL = 4483,
+ SHR16rCL_EVEX = 4484,
+ SHR16rCL_ND = 4485,
+ SHR16rCL_NF = 4486,
+ SHR16rCL_NF_ND = 4487,
+ SHR16ri = 4488,
+ SHR16ri_EVEX = 4489,
+ SHR16ri_ND = 4490,
+ SHR16ri_NF = 4491,
+ SHR16ri_NF_ND = 4492,
+ SHR32m1 = 4493,
+ SHR32m1_EVEX = 4494,
+ SHR32m1_ND = 4495,
+ SHR32m1_NF = 4496,
+ SHR32m1_NF_ND = 4497,
+ SHR32mCL = 4498,
+ SHR32mCL_EVEX = 4499,
+ SHR32mCL_ND = 4500,
+ SHR32mCL_NF = 4501,
+ SHR32mCL_NF_ND = 4502,
+ SHR32mi = 4503,
+ SHR32mi_EVEX = 4504,
+ SHR32mi_ND = 4505,
+ SHR32mi_NF = 4506,
+ SHR32mi_NF_ND = 4507,
+ SHR32r1 = 4508,
+ SHR32r1_EVEX = 4509,
+ SHR32r1_ND = 4510,
+ SHR32r1_NF = 4511,
+ SHR32r1_NF_ND = 4512,
+ SHR32rCL = 4513,
+ SHR32rCL_EVEX = 4514,
+ SHR32rCL_ND = 4515,
+ SHR32rCL_NF = 4516,
+ SHR32rCL_NF_ND = 4517,
+ SHR32ri = 4518,
+ SHR32ri_EVEX = 4519,
+ SHR32ri_ND = 4520,
+ SHR32ri_NF = 4521,
+ SHR32ri_NF_ND = 4522,
+ SHR64m1 = 4523,
+ SHR64m1_EVEX = 4524,
+ SHR64m1_ND = 4525,
+ SHR64m1_NF = 4526,
+ SHR64m1_NF_ND = 4527,
+ SHR64mCL = 4528,
+ SHR64mCL_EVEX = 4529,
+ SHR64mCL_ND = 4530,
+ SHR64mCL_NF = 4531,
+ SHR64mCL_NF_ND = 4532,
+ SHR64mi = 4533,
+ SHR64mi_EVEX = 4534,
+ SHR64mi_ND = 4535,
+ SHR64mi_NF = 4536,
+ SHR64mi_NF_ND = 4537,
+ SHR64r1 = 4538,
+ SHR64r1_EVEX = 4539,
+ SHR64r1_ND = 4540,
+ SHR64r1_NF = 4541,
+ SHR64r1_NF_ND = 4542,
+ SHR64rCL = 4543,
+ SHR64rCL_EVEX = 4544,
+ SHR64rCL_ND = 4545,
+ SHR64rCL_NF = 4546,
+ SHR64rCL_NF_ND = 4547,
+ SHR64ri = 4548,
+ SHR64ri_EVEX = 4549,
+ SHR64ri_ND = 4550,
+ SHR64ri_NF = 4551,
+ SHR64ri_NF_ND = 4552,
+ SHR8m1 = 4553,
+ SHR8m1_EVEX = 4554,
+ SHR8m1_ND = 4555,
+ SHR8m1_NF = 4556,
+ SHR8m1_NF_ND = 4557,
+ SHR8mCL = 4558,
+ SHR8mCL_EVEX = 4559,
+ SHR8mCL_ND = 4560,
+ SHR8mCL_NF = 4561,
+ SHR8mCL_NF_ND = 4562,
+ SHR8mi = 4563,
+ SHR8mi_EVEX = 4564,
+ SHR8mi_ND = 4565,
+ SHR8mi_NF = 4566,
+ SHR8mi_NF_ND = 4567,
+ SHR8r1 = 4568,
+ SHR8r1_EVEX = 4569,
+ SHR8r1_ND = 4570,
+ SHR8r1_NF = 4571,
+ SHR8r1_NF_ND = 4572,
+ SHR8rCL = 4573,
+ SHR8rCL_EVEX = 4574,
+ SHR8rCL_ND = 4575,
+ SHR8rCL_NF = 4576,
+ SHR8rCL_NF_ND = 4577,
+ SHR8ri = 4578,
+ SHR8ri_EVEX = 4579,
+ SHR8ri_ND = 4580,
+ SHR8ri_NF = 4581,
+ SHR8ri_NF_ND = 4582,
+ SHRD16mrCL = 4583,
+ SHRD16mrCL_EVEX = 4584,
+ SHRD16mrCL_ND = 4585,
+ SHRD16mrCL_NF = 4586,
+ SHRD16mrCL_NF_ND = 4587,
+ SHRD16mri8 = 4588,
+ SHRD16mri8_EVEX = 4589,
+ SHRD16mri8_ND = 4590,
+ SHRD16mri8_NF = 4591,
+ SHRD16mri8_NF_ND = 4592,
+ SHRD16rrCL = 4593,
+ SHRD16rrCL_EVEX = 4594,
+ SHRD16rrCL_ND = 4595,
+ SHRD16rrCL_NF = 4596,
+ SHRD16rrCL_NF_ND = 4597,
+ SHRD16rri8 = 4598,
+ SHRD16rri8_EVEX = 4599,
+ SHRD16rri8_ND = 4600,
+ SHRD16rri8_NF = 4601,
+ SHRD16rri8_NF_ND = 4602,
+ SHRD32mrCL = 4603,
+ SHRD32mrCL_EVEX = 4604,
+ SHRD32mrCL_ND = 4605,
+ SHRD32mrCL_NF = 4606,
+ SHRD32mrCL_NF_ND = 4607,
+ SHRD32mri8 = 4608,
+ SHRD32mri8_EVEX = 4609,
+ SHRD32mri8_ND = 4610,
+ SHRD32mri8_NF = 4611,
+ SHRD32mri8_NF_ND = 4612,
+ SHRD32rrCL = 4613,
+ SHRD32rrCL_EVEX = 4614,
+ SHRD32rrCL_ND = 4615,
+ SHRD32rrCL_NF = 4616,
+ SHRD32rrCL_NF_ND = 4617,
+ SHRD32rri8 = 4618,
+ SHRD32rri8_EVEX = 4619,
+ SHRD32rri8_ND = 4620,
+ SHRD32rri8_NF = 4621,
+ SHRD32rri8_NF_ND = 4622,
+ SHRD64mrCL = 4623,
+ SHRD64mrCL_EVEX = 4624,
+ SHRD64mrCL_ND = 4625,
+ SHRD64mrCL_NF = 4626,
+ SHRD64mrCL_NF_ND = 4627,
+ SHRD64mri8 = 4628,
+ SHRD64mri8_EVEX = 4629,
+ SHRD64mri8_ND = 4630,
+ SHRD64mri8_NF = 4631,
+ SHRD64mri8_NF_ND = 4632,
+ SHRD64rrCL = 4633,
+ SHRD64rrCL_EVEX = 4634,
+ SHRD64rrCL_ND = 4635,
+ SHRD64rrCL_NF = 4636,
+ SHRD64rrCL_NF_ND = 4637,
+ SHRD64rri8 = 4638,
+ SHRD64rri8_EVEX = 4639,
+ SHRD64rri8_ND = 4640,
+ SHRD64rri8_NF = 4641,
+ SHRD64rri8_NF_ND = 4642,
+ SHRX32rm = 4643,
+ SHRX32rm_EVEX = 4644,
+ SHRX32rr = 4645,
+ SHRX32rr_EVEX = 4646,
+ SHRX64rm = 4647,
+ SHRX64rm_EVEX = 4648,
+ SHRX64rr = 4649,
+ SHRX64rr_EVEX = 4650,
+ SHUFPDrmi = 4651,
+ SHUFPDrri = 4652,
+ SHUFPSrmi = 4653,
+ SHUFPSrri = 4654,
+ SIDT16m = 4655,
+ SIDT32m = 4656,
+ SIDT64m = 4657,
+ SKINIT = 4658,
+ SLDT16m = 4659,
+ SLDT16r = 4660,
+ SLDT32r = 4661,
+ SLDT64r = 4662,
+ SLWPCB = 4663,
+ SLWPCB64 = 4664,
+ SMSW16m = 4665,
+ SMSW16r = 4666,
+ SMSW32r = 4667,
+ SMSW64r = 4668,
+ SQRTPDm = 4669,
+ SQRTPDr = 4670,
+ SQRTPSm = 4671,
+ SQRTPSr = 4672,
+ SQRTSDm = 4673,
+ SQRTSDm_Int = 4674,
+ SQRTSDr = 4675,
+ SQRTSDr_Int = 4676,
+ SQRTSSm = 4677,
+ SQRTSSm_Int = 4678,
+ SQRTSSr = 4679,
+ SQRTSSr_Int = 4680,
+ SQRT_F = 4681,
+ SQRT_Fp32 = 4682,
+ SQRT_Fp64 = 4683,
+ SQRT_Fp80 = 4684,
+ SS_PREFIX = 4685,
+ STAC = 4686,
+ STACKALLOC_W_PROBING = 4687,
+ STC = 4688,
+ STD = 4689,
+ STGI = 4690,
+ STI = 4691,
+ STMXCSR = 4692,
+ STOSB = 4693,
+ STOSL = 4694,
+ STOSQ = 4695,
+ STOSW = 4696,
+ STR16r = 4697,
+ STR32r = 4698,
+ STR64r = 4699,
+ STRm = 4700,
+ STTILECFG = 4701,
+ STTILECFG_EVEX = 4702,
+ STUI = 4703,
+ ST_F32m = 4704,
+ ST_F64m = 4705,
+ ST_FP32m = 4706,
+ ST_FP64m = 4707,
+ ST_FP80m = 4708,
+ ST_FPrr = 4709,
+ ST_Fp32m = 4710,
+ ST_Fp64m = 4711,
+ ST_Fp64m32 = 4712,
+ ST_Fp80m32 = 4713,
+ ST_Fp80m64 = 4714,
+ ST_FpP32m = 4715,
+ ST_FpP64m = 4716,
+ ST_FpP64m32 = 4717,
+ ST_FpP80m = 4718,
+ ST_FpP80m32 = 4719,
+ ST_FpP80m64 = 4720,
+ ST_Frr = 4721,
+ SUB16i16 = 4722,
+ SUB16mi = 4723,
+ SUB16mi8 = 4724,
+ SUB16mi8_EVEX = 4725,
+ SUB16mi8_ND = 4726,
+ SUB16mi8_NF = 4727,
+ SUB16mi8_NF_ND = 4728,
+ SUB16mi_EVEX = 4729,
+ SUB16mi_ND = 4730,
+ SUB16mi_NF = 4731,
+ SUB16mi_NF_ND = 4732,
+ SUB16mr = 4733,
+ SUB16mr_EVEX = 4734,
+ SUB16mr_ND = 4735,
+ SUB16mr_NF = 4736,
+ SUB16mr_NF_ND = 4737,
+ SUB16ri = 4738,
+ SUB16ri8 = 4739,
+ SUB16ri8_EVEX = 4740,
+ SUB16ri8_ND = 4741,
+ SUB16ri8_NF = 4742,
+ SUB16ri8_NF_ND = 4743,
+ SUB16ri_EVEX = 4744,
+ SUB16ri_ND = 4745,
+ SUB16ri_NF = 4746,
+ SUB16ri_NF_ND = 4747,
+ SUB16rm = 4748,
+ SUB16rm_EVEX = 4749,
+ SUB16rm_ND = 4750,
+ SUB16rm_NF = 4751,
+ SUB16rm_NF_ND = 4752,
+ SUB16rr = 4753,
+ SUB16rr_EVEX = 4754,
+ SUB16rr_EVEX_REV = 4755,
+ SUB16rr_ND = 4756,
+ SUB16rr_ND_REV = 4757,
+ SUB16rr_NF = 4758,
+ SUB16rr_NF_ND = 4759,
+ SUB16rr_NF_ND_REV = 4760,
+ SUB16rr_NF_REV = 4761,
+ SUB16rr_REV = 4762,
+ SUB32i32 = 4763,
+ SUB32mi = 4764,
+ SUB32mi8 = 4765,
+ SUB32mi8_EVEX = 4766,
+ SUB32mi8_ND = 4767,
+ SUB32mi8_NF = 4768,
+ SUB32mi8_NF_ND = 4769,
+ SUB32mi_EVEX = 4770,
+ SUB32mi_ND = 4771,
+ SUB32mi_NF = 4772,
+ SUB32mi_NF_ND = 4773,
+ SUB32mr = 4774,
+ SUB32mr_EVEX = 4775,
+ SUB32mr_ND = 4776,
+ SUB32mr_NF = 4777,
+ SUB32mr_NF_ND = 4778,
+ SUB32ri = 4779,
+ SUB32ri8 = 4780,
+ SUB32ri8_EVEX = 4781,
+ SUB32ri8_ND = 4782,
+ SUB32ri8_NF = 4783,
+ SUB32ri8_NF_ND = 4784,
+ SUB32ri_EVEX = 4785,
+ SUB32ri_ND = 4786,
+ SUB32ri_NF = 4787,
+ SUB32ri_NF_ND = 4788,
+ SUB32rm = 4789,
+ SUB32rm_EVEX = 4790,
+ SUB32rm_ND = 4791,
+ SUB32rm_NF = 4792,
+ SUB32rm_NF_ND = 4793,
+ SUB32rr = 4794,
+ SUB32rr_EVEX = 4795,
+ SUB32rr_EVEX_REV = 4796,
+ SUB32rr_ND = 4797,
+ SUB32rr_ND_REV = 4798,
+ SUB32rr_NF = 4799,
+ SUB32rr_NF_ND = 4800,
+ SUB32rr_NF_ND_REV = 4801,
+ SUB32rr_NF_REV = 4802,
+ SUB32rr_REV = 4803,
+ SUB64i32 = 4804,
+ SUB64mi32 = 4805,
+ SUB64mi32_EVEX = 4806,
+ SUB64mi32_ND = 4807,
+ SUB64mi32_NF = 4808,
+ SUB64mi32_NF_ND = 4809,
+ SUB64mi8 = 4810,
+ SUB64mi8_EVEX = 4811,
+ SUB64mi8_ND = 4812,
+ SUB64mi8_NF = 4813,
+ SUB64mi8_NF_ND = 4814,
+ SUB64mr = 4815,
+ SUB64mr_EVEX = 4816,
+ SUB64mr_ND = 4817,
+ SUB64mr_NF = 4818,
+ SUB64mr_NF_ND = 4819,
+ SUB64ri32 = 4820,
+ SUB64ri32_EVEX = 4821,
+ SUB64ri32_ND = 4822,
+ SUB64ri32_NF = 4823,
+ SUB64ri32_NF_ND = 4824,
+ SUB64ri8 = 4825,
+ SUB64ri8_EVEX = 4826,
+ SUB64ri8_ND = 4827,
+ SUB64ri8_NF = 4828,
+ SUB64ri8_NF_ND = 4829,
+ SUB64rm = 4830,
+ SUB64rm_EVEX = 4831,
+ SUB64rm_ND = 4832,
+ SUB64rm_NF = 4833,
+ SUB64rm_NF_ND = 4834,
+ SUB64rr = 4835,
+ SUB64rr_EVEX = 4836,
+ SUB64rr_EVEX_REV = 4837,
+ SUB64rr_ND = 4838,
+ SUB64rr_ND_REV = 4839,
+ SUB64rr_NF = 4840,
+ SUB64rr_NF_ND = 4841,
+ SUB64rr_NF_ND_REV = 4842,
+ SUB64rr_NF_REV = 4843,
+ SUB64rr_REV = 4844,
+ SUB8i8 = 4845,
+ SUB8mi = 4846,
+ SUB8mi8 = 4847,
+ SUB8mi_EVEX = 4848,
+ SUB8mi_ND = 4849,
+ SUB8mi_NF = 4850,
+ SUB8mi_NF_ND = 4851,
+ SUB8mr = 4852,
+ SUB8mr_EVEX = 4853,
+ SUB8mr_ND = 4854,
+ SUB8mr_NF = 4855,
+ SUB8mr_NF_ND = 4856,
+ SUB8ri = 4857,
+ SUB8ri8 = 4858,
+ SUB8ri_EVEX = 4859,
+ SUB8ri_ND = 4860,
+ SUB8ri_NF = 4861,
+ SUB8ri_NF_ND = 4862,
+ SUB8rm = 4863,
+ SUB8rm_EVEX = 4864,
+ SUB8rm_ND = 4865,
+ SUB8rm_NF = 4866,
+ SUB8rm_NF_ND = 4867,
+ SUB8rr = 4868,
+ SUB8rr_EVEX = 4869,
+ SUB8rr_EVEX_REV = 4870,
+ SUB8rr_ND = 4871,
+ SUB8rr_ND_REV = 4872,
+ SUB8rr_NF = 4873,
+ SUB8rr_NF_ND = 4874,
+ SUB8rr_NF_ND_REV = 4875,
+ SUB8rr_NF_REV = 4876,
+ SUB8rr_REV = 4877,
+ SUBPDrm = 4878,
+ SUBPDrr = 4879,
+ SUBPSrm = 4880,
+ SUBPSrr = 4881,
+ SUBR_F32m = 4882,
+ SUBR_F64m = 4883,
+ SUBR_FI16m = 4884,
+ SUBR_FI32m = 4885,
+ SUBR_FPrST0 = 4886,
+ SUBR_FST0r = 4887,
+ SUBR_Fp32m = 4888,
+ SUBR_Fp64m = 4889,
+ SUBR_Fp64m32 = 4890,
+ SUBR_Fp80m32 = 4891,
+ SUBR_Fp80m64 = 4892,
+ SUBR_FpI16m32 = 4893,
+ SUBR_FpI16m64 = 4894,
+ SUBR_FpI16m80 = 4895,
+ SUBR_FpI32m32 = 4896,
+ SUBR_FpI32m64 = 4897,
+ SUBR_FpI32m80 = 4898,
+ SUBR_FrST0 = 4899,
+ SUBSDrm = 4900,
+ SUBSDrm_Int = 4901,
+ SUBSDrr = 4902,
+ SUBSDrr_Int = 4903,
+ SUBSSrm = 4904,
+ SUBSSrm_Int = 4905,
+ SUBSSrr = 4906,
+ SUBSSrr_Int = 4907,
+ SUB_F32m = 4908,
+ SUB_F64m = 4909,
+ SUB_FI16m = 4910,
+ SUB_FI32m = 4911,
+ SUB_FPrST0 = 4912,
+ SUB_FST0r = 4913,
+ SUB_Fp32 = 4914,
+ SUB_Fp32m = 4915,
+ SUB_Fp64 = 4916,
+ SUB_Fp64m = 4917,
+ SUB_Fp64m32 = 4918,
+ SUB_Fp80 = 4919,
+ SUB_Fp80m32 = 4920,
+ SUB_Fp80m64 = 4921,
+ SUB_FpI16m32 = 4922,
+ SUB_FpI16m64 = 4923,
+ SUB_FpI16m80 = 4924,
+ SUB_FpI32m32 = 4925,
+ SUB_FpI32m64 = 4926,
+ SUB_FpI32m80 = 4927,
+ SUB_FrST0 = 4928,
+ SWAPGS = 4929,
+ SYSCALL = 4930,
+ SYSENTER = 4931,
+ SYSEXIT = 4932,
+ SYSEXIT64 = 4933,
+ SYSRET = 4934,
+ SYSRET64 = 4935,
+ T1MSKC32rm = 4936,
+ T1MSKC32rr = 4937,
+ T1MSKC64rm = 4938,
+ T1MSKC64rr = 4939,
+ TAILJMPd = 4940,
+ TAILJMPd64 = 4941,
+ TAILJMPd64_CC = 4942,
+ TAILJMPd_CC = 4943,
+ TAILJMPm = 4944,
+ TAILJMPm64 = 4945,
+ TAILJMPm64_REX = 4946,
+ TAILJMPr = 4947,
+ TAILJMPr64 = 4948,
+ TAILJMPr64_REX = 4949,
+ TCMMIMFP16PS = 4950,
+ TCMMRLFP16PS = 4951,
+ TCRETURN_HIPE32ri = 4952,
+ TCRETURN_WIN64ri = 4953,
+ TCRETURN_WINmi64 = 4954,
+ TCRETURNdi = 4955,
+ TCRETURNdi64 = 4956,
+ TCRETURNdi64cc = 4957,
+ TCRETURNdicc = 4958,
+ TCRETURNmi = 4959,
+ TCRETURNmi64 = 4960,
+ TCRETURNri = 4961,
+ TCRETURNri64 = 4962,
+ TCRETURNri64_ImpCall = 4963,
+ TCVTROWD2PSrte = 4964,
+ TCVTROWD2PSrti = 4965,
+ TCVTROWPS2BF16Hrte = 4966,
+ TCVTROWPS2BF16Hrti = 4967,
+ TCVTROWPS2BF16Lrte = 4968,
+ TCVTROWPS2BF16Lrti = 4969,
+ TCVTROWPS2PHHrte = 4970,
+ TCVTROWPS2PHHrti = 4971,
+ TCVTROWPS2PHLrte = 4972,
+ TCVTROWPS2PHLrti = 4973,
+ TDCALL = 4974,
+ TDPBF16PS = 4975,
+ TDPBF8PS = 4976,
+ TDPBHF8PS = 4977,
+ TDPBSSD = 4978,
+ TDPBSUD = 4979,
+ TDPBUSD = 4980,
+ TDPBUUD = 4981,
+ TDPFP16PS = 4982,
+ TDPHBF8PS = 4983,
+ TDPHF8PS = 4984,
+ TEST16i16 = 4985,
+ TEST16mi = 4986,
+ TEST16mr = 4987,
+ TEST16ri = 4988,
+ TEST16rr = 4989,
+ TEST32i32 = 4990,
+ TEST32mi = 4991,
+ TEST32mr = 4992,
+ TEST32ri = 4993,
+ TEST32rr = 4994,
+ TEST64i32 = 4995,
+ TEST64mi32 = 4996,
+ TEST64mr = 4997,
+ TEST64ri32 = 4998,
+ TEST64rr = 4999,
+ TEST8i8 = 5000,
+ TEST8mi = 5001,
+ TEST8mr = 5002,
+ TEST8ri = 5003,
+ TEST8rr = 5004,
+ TESTUI = 5005,
+ TILELOADD = 5006,
+ TILELOADDRS = 5007,
+ TILELOADDRST1 = 5008,
+ TILELOADDRST1_EVEX = 5009,
+ TILELOADDRS_EVEX = 5010,
+ TILELOADDT1 = 5011,
+ TILELOADDT1_EVEX = 5012,
+ TILELOADD_EVEX = 5013,
+ TILEMOVROWrte = 5014,
+ TILEMOVROWrti = 5015,
+ TILERELEASE = 5016,
+ TILESTORED = 5017,
+ TILESTORED_EVEX = 5018,
+ TILEZERO = 5019,
+ TLBSYNC = 5020,
+ TLSCall_32 = 5021,
+ TLSCall_64 = 5022,
+ TLS_addr32 = 5023,
+ TLS_addr64 = 5024,
+ TLS_addrX32 = 5025,
+ TLS_base_addr32 = 5026,
+ TLS_base_addr64 = 5027,
+ TLS_base_addrX32 = 5028,
+ TLS_desc32 = 5029,
+ TLS_desc64 = 5030,
+ TMMULTF32PS = 5031,
+ TPAUSE = 5032,
+ TRAP = 5033,
+ TST_F = 5034,
+ TST_Fp32 = 5035,
+ TST_Fp64 = 5036,
+ TST_Fp80 = 5037,
+ TZCNT16rm = 5038,
+ TZCNT16rm_EVEX = 5039,
+ TZCNT16rm_NF = 5040,
+ TZCNT16rr = 5041,
+ TZCNT16rr_EVEX = 5042,
+ TZCNT16rr_NF = 5043,
+ TZCNT32rm = 5044,
+ TZCNT32rm_EVEX = 5045,
+ TZCNT32rm_NF = 5046,
+ TZCNT32rr = 5047,
+ TZCNT32rr_EVEX = 5048,
+ TZCNT32rr_NF = 5049,
+ TZCNT64rm = 5050,
+ TZCNT64rm_EVEX = 5051,
+ TZCNT64rm_NF = 5052,
+ TZCNT64rr = 5053,
+ TZCNT64rr_EVEX = 5054,
+ TZCNT64rr_NF = 5055,
+ TZMSK32rm = 5056,
+ TZMSK32rr = 5057,
+ TZMSK64rm = 5058,
+ TZMSK64rr = 5059,
+ UBSAN_UD1 = 5060,
+ UCOMISDrm = 5061,
+ UCOMISDrm_Int = 5062,
+ UCOMISDrr = 5063,
+ UCOMISDrr_Int = 5064,
+ UCOMISSrm = 5065,
+ UCOMISSrm_Int = 5066,
+ UCOMISSrr = 5067,
+ UCOMISSrr_Int = 5068,
+ UCOM_FIPr = 5069,
+ UCOM_FIr = 5070,
+ UCOM_FPPr = 5071,
+ UCOM_FPr = 5072,
+ UCOM_FpIr32 = 5073,
+ UCOM_FpIr64 = 5074,
+ UCOM_FpIr80 = 5075,
+ UCOM_Fpr32 = 5076,
+ UCOM_Fpr64 = 5077,
+ UCOM_Fpr80 = 5078,
+ UCOM_Fr = 5079,
+ UD1Lm = 5080,
+ UD1Lr = 5081,
+ UD1Qm = 5082,
+ UD1Qr = 5083,
+ UD1Wm = 5084,
+ UD1Wr = 5085,
+ UIRET = 5086,
+ UMONITOR16 = 5087,
+ UMONITOR32 = 5088,
+ UMONITOR64 = 5089,
+ UMWAIT = 5090,
+ UNPCKHPDrm = 5091,
+ UNPCKHPDrr = 5092,
+ UNPCKHPSrm = 5093,
+ UNPCKHPSrr = 5094,
+ UNPCKLPDrm = 5095,
+ UNPCKLPDrr = 5096,
+ UNPCKLPSrm = 5097,
+ UNPCKLPSrr = 5098,
+ URDMSRri = 5099,
+ URDMSRri_EVEX = 5100,
+ URDMSRrr = 5101,
+ URDMSRrr_EVEX = 5102,
+ UWRMSRir = 5103,
+ UWRMSRir_EVEX = 5104,
+ UWRMSRrr = 5105,
+ UWRMSRrr_EVEX = 5106,
+ V4FMADDPSrm = 5107,
+ V4FMADDPSrmk = 5108,
+ V4FMADDPSrmkz = 5109,
+ V4FMADDSSrm = 5110,
+ V4FMADDSSrmk = 5111,
+ V4FMADDSSrmkz = 5112,
+ V4FNMADDPSrm = 5113,
+ V4FNMADDPSrmk = 5114,
+ V4FNMADDPSrmkz = 5115,
+ V4FNMADDSSrm = 5116,
+ V4FNMADDSSrmk = 5117,
+ V4FNMADDSSrmkz = 5118,
+ VAARG_64 = 5119,
+ VAARG_X32 = 5120,
+ VADDBF16Z128rm = 5121,
+ VADDBF16Z128rmb = 5122,
+ VADDBF16Z128rmbk = 5123,
+ VADDBF16Z128rmbkz = 5124,
+ VADDBF16Z128rmk = 5125,
+ VADDBF16Z128rmkz = 5126,
+ VADDBF16Z128rr = 5127,
+ VADDBF16Z128rrk = 5128,
+ VADDBF16Z128rrkz = 5129,
+ VADDBF16Z256rm = 5130,
+ VADDBF16Z256rmb = 5131,
+ VADDBF16Z256rmbk = 5132,
+ VADDBF16Z256rmbkz = 5133,
+ VADDBF16Z256rmk = 5134,
+ VADDBF16Z256rmkz = 5135,
+ VADDBF16Z256rr = 5136,
+ VADDBF16Z256rrk = 5137,
+ VADDBF16Z256rrkz = 5138,
+ VADDBF16Zrm = 5139,
+ VADDBF16Zrmb = 5140,
+ VADDBF16Zrmbk = 5141,
+ VADDBF16Zrmbkz = 5142,
+ VADDBF16Zrmk = 5143,
+ VADDBF16Zrmkz = 5144,
+ VADDBF16Zrr = 5145,
+ VADDBF16Zrrk = 5146,
+ VADDBF16Zrrkz = 5147,
+ VADDPDYrm = 5148,
+ VADDPDYrr = 5149,
+ VADDPDZ128rm = 5150,
+ VADDPDZ128rmb = 5151,
+ VADDPDZ128rmbk = 5152,
+ VADDPDZ128rmbkz = 5153,
+ VADDPDZ128rmk = 5154,
+ VADDPDZ128rmkz = 5155,
+ VADDPDZ128rr = 5156,
+ VADDPDZ128rrk = 5157,
+ VADDPDZ128rrkz = 5158,
+ VADDPDZ256rm = 5159,
+ VADDPDZ256rmb = 5160,
+ VADDPDZ256rmbk = 5161,
+ VADDPDZ256rmbkz = 5162,
+ VADDPDZ256rmk = 5163,
+ VADDPDZ256rmkz = 5164,
+ VADDPDZ256rr = 5165,
+ VADDPDZ256rrk = 5166,
+ VADDPDZ256rrkz = 5167,
+ VADDPDZrm = 5168,
+ VADDPDZrmb = 5169,
+ VADDPDZrmbk = 5170,
+ VADDPDZrmbkz = 5171,
+ VADDPDZrmk = 5172,
+ VADDPDZrmkz = 5173,
+ VADDPDZrr = 5174,
+ VADDPDZrrb = 5175,
+ VADDPDZrrbk = 5176,
+ VADDPDZrrbkz = 5177,
+ VADDPDZrrk = 5178,
+ VADDPDZrrkz = 5179,
+ VADDPDrm = 5180,
+ VADDPDrr = 5181,
+ VADDPHZ128rm = 5182,
+ VADDPHZ128rmb = 5183,
+ VADDPHZ128rmbk = 5184,
+ VADDPHZ128rmbkz = 5185,
+ VADDPHZ128rmk = 5186,
+ VADDPHZ128rmkz = 5187,
+ VADDPHZ128rr = 5188,
+ VADDPHZ128rrk = 5189,
+ VADDPHZ128rrkz = 5190,
+ VADDPHZ256rm = 5191,
+ VADDPHZ256rmb = 5192,
+ VADDPHZ256rmbk = 5193,
+ VADDPHZ256rmbkz = 5194,
+ VADDPHZ256rmk = 5195,
+ VADDPHZ256rmkz = 5196,
+ VADDPHZ256rr = 5197,
+ VADDPHZ256rrk = 5198,
+ VADDPHZ256rrkz = 5199,
+ VADDPHZrm = 5200,
+ VADDPHZrmb = 5201,
+ VADDPHZrmbk = 5202,
+ VADDPHZrmbkz = 5203,
+ VADDPHZrmk = 5204,
+ VADDPHZrmkz = 5205,
+ VADDPHZrr = 5206,
+ VADDPHZrrb = 5207,
+ VADDPHZrrbk = 5208,
+ VADDPHZrrbkz = 5209,
+ VADDPHZrrk = 5210,
+ VADDPHZrrkz = 5211,
+ VADDPSYrm = 5212,
+ VADDPSYrr = 5213,
+ VADDPSZ128rm = 5214,
+ VADDPSZ128rmb = 5215,
+ VADDPSZ128rmbk = 5216,
+ VADDPSZ128rmbkz = 5217,
+ VADDPSZ128rmk = 5218,
+ VADDPSZ128rmkz = 5219,
+ VADDPSZ128rr = 5220,
+ VADDPSZ128rrk = 5221,
+ VADDPSZ128rrkz = 5222,
+ VADDPSZ256rm = 5223,
+ VADDPSZ256rmb = 5224,
+ VADDPSZ256rmbk = 5225,
+ VADDPSZ256rmbkz = 5226,
+ VADDPSZ256rmk = 5227,
+ VADDPSZ256rmkz = 5228,
+ VADDPSZ256rr = 5229,
+ VADDPSZ256rrk = 5230,
+ VADDPSZ256rrkz = 5231,
+ VADDPSZrm = 5232,
+ VADDPSZrmb = 5233,
+ VADDPSZrmbk = 5234,
+ VADDPSZrmbkz = 5235,
+ VADDPSZrmk = 5236,
+ VADDPSZrmkz = 5237,
+ VADDPSZrr = 5238,
+ VADDPSZrrb = 5239,
+ VADDPSZrrbk = 5240,
+ VADDPSZrrbkz = 5241,
+ VADDPSZrrk = 5242,
+ VADDPSZrrkz = 5243,
+ VADDPSrm = 5244,
+ VADDPSrr = 5245,
+ VADDSDZrm = 5246,
+ VADDSDZrm_Int = 5247,
+ VADDSDZrmk_Int = 5248,
+ VADDSDZrmkz_Int = 5249,
+ VADDSDZrr = 5250,
+ VADDSDZrr_Int = 5251,
+ VADDSDZrrb_Int = 5252,
+ VADDSDZrrbk_Int = 5253,
+ VADDSDZrrbkz_Int = 5254,
+ VADDSDZrrk_Int = 5255,
+ VADDSDZrrkz_Int = 5256,
+ VADDSDrm = 5257,
+ VADDSDrm_Int = 5258,
+ VADDSDrr = 5259,
+ VADDSDrr_Int = 5260,
+ VADDSHZrm = 5261,
+ VADDSHZrm_Int = 5262,
+ VADDSHZrmk_Int = 5263,
+ VADDSHZrmkz_Int = 5264,
+ VADDSHZrr = 5265,
+ VADDSHZrr_Int = 5266,
+ VADDSHZrrb_Int = 5267,
+ VADDSHZrrbk_Int = 5268,
+ VADDSHZrrbkz_Int = 5269,
+ VADDSHZrrk_Int = 5270,
+ VADDSHZrrkz_Int = 5271,
+ VADDSSZrm = 5272,
+ VADDSSZrm_Int = 5273,
+ VADDSSZrmk_Int = 5274,
+ VADDSSZrmkz_Int = 5275,
+ VADDSSZrr = 5276,
+ VADDSSZrr_Int = 5277,
+ VADDSSZrrb_Int = 5278,
+ VADDSSZrrbk_Int = 5279,
+ VADDSSZrrbkz_Int = 5280,
+ VADDSSZrrk_Int = 5281,
+ VADDSSZrrkz_Int = 5282,
+ VADDSSrm = 5283,
+ VADDSSrm_Int = 5284,
+ VADDSSrr = 5285,
+ VADDSSrr_Int = 5286,
+ VADDSUBPDYrm = 5287,
+ VADDSUBPDYrr = 5288,
+ VADDSUBPDrm = 5289,
+ VADDSUBPDrr = 5290,
+ VADDSUBPSYrm = 5291,
+ VADDSUBPSYrr = 5292,
+ VADDSUBPSrm = 5293,
+ VADDSUBPSrr = 5294,
+ VAESDECLASTYrm = 5295,
+ VAESDECLASTYrr = 5296,
+ VAESDECLASTZ128rm = 5297,
+ VAESDECLASTZ128rr = 5298,
+ VAESDECLASTZ256rm = 5299,
+ VAESDECLASTZ256rr = 5300,
+ VAESDECLASTZrm = 5301,
+ VAESDECLASTZrr = 5302,
+ VAESDECLASTrm = 5303,
+ VAESDECLASTrr = 5304,
+ VAESDECYrm = 5305,
+ VAESDECYrr = 5306,
+ VAESDECZ128rm = 5307,
+ VAESDECZ128rr = 5308,
+ VAESDECZ256rm = 5309,
+ VAESDECZ256rr = 5310,
+ VAESDECZrm = 5311,
+ VAESDECZrr = 5312,
+ VAESDECrm = 5313,
+ VAESDECrr = 5314,
+ VAESENCLASTYrm = 5315,
+ VAESENCLASTYrr = 5316,
+ VAESENCLASTZ128rm = 5317,
+ VAESENCLASTZ128rr = 5318,
+ VAESENCLASTZ256rm = 5319,
+ VAESENCLASTZ256rr = 5320,
+ VAESENCLASTZrm = 5321,
+ VAESENCLASTZrr = 5322,
+ VAESENCLASTrm = 5323,
+ VAESENCLASTrr = 5324,
+ VAESENCYrm = 5325,
+ VAESENCYrr = 5326,
+ VAESENCZ128rm = 5327,
+ VAESENCZ128rr = 5328,
+ VAESENCZ256rm = 5329,
+ VAESENCZ256rr = 5330,
+ VAESENCZrm = 5331,
+ VAESENCZrr = 5332,
+ VAESENCrm = 5333,
+ VAESENCrr = 5334,
+ VAESIMCrm = 5335,
+ VAESIMCrr = 5336,
+ VAESKEYGENASSISTrmi = 5337,
+ VAESKEYGENASSISTrri = 5338,
+ VALIGNDZ128rmbi = 5339,
+ VALIGNDZ128rmbik = 5340,
+ VALIGNDZ128rmbikz = 5341,
+ VALIGNDZ128rmi = 5342,
+ VALIGNDZ128rmik = 5343,
+ VALIGNDZ128rmikz = 5344,
+ VALIGNDZ128rri = 5345,
+ VALIGNDZ128rrik = 5346,
+ VALIGNDZ128rrikz = 5347,
+ VALIGNDZ256rmbi = 5348,
+ VALIGNDZ256rmbik = 5349,
+ VALIGNDZ256rmbikz = 5350,
+ VALIGNDZ256rmi = 5351,
+ VALIGNDZ256rmik = 5352,
+ VALIGNDZ256rmikz = 5353,
+ VALIGNDZ256rri = 5354,
+ VALIGNDZ256rrik = 5355,
+ VALIGNDZ256rrikz = 5356,
+ VALIGNDZrmbi = 5357,
+ VALIGNDZrmbik = 5358,
+ VALIGNDZrmbikz = 5359,
+ VALIGNDZrmi = 5360,
+ VALIGNDZrmik = 5361,
+ VALIGNDZrmikz = 5362,
+ VALIGNDZrri = 5363,
+ VALIGNDZrrik = 5364,
+ VALIGNDZrrikz = 5365,
+ VALIGNQZ128rmbi = 5366,
+ VALIGNQZ128rmbik = 5367,
+ VALIGNQZ128rmbikz = 5368,
+ VALIGNQZ128rmi = 5369,
+ VALIGNQZ128rmik = 5370,
+ VALIGNQZ128rmikz = 5371,
+ VALIGNQZ128rri = 5372,
+ VALIGNQZ128rrik = 5373,
+ VALIGNQZ128rrikz = 5374,
+ VALIGNQZ256rmbi = 5375,
+ VALIGNQZ256rmbik = 5376,
+ VALIGNQZ256rmbikz = 5377,
+ VALIGNQZ256rmi = 5378,
+ VALIGNQZ256rmik = 5379,
+ VALIGNQZ256rmikz = 5380,
+ VALIGNQZ256rri = 5381,
+ VALIGNQZ256rrik = 5382,
+ VALIGNQZ256rrikz = 5383,
+ VALIGNQZrmbi = 5384,
+ VALIGNQZrmbik = 5385,
+ VALIGNQZrmbikz = 5386,
+ VALIGNQZrmi = 5387,
+ VALIGNQZrmik = 5388,
+ VALIGNQZrmikz = 5389,
+ VALIGNQZrri = 5390,
+ VALIGNQZrrik = 5391,
+ VALIGNQZrrikz = 5392,
+ VANDNPDYrm = 5393,
+ VANDNPDYrr = 5394,
+ VANDNPDZ128rm = 5395,
+ VANDNPDZ128rmb = 5396,
+ VANDNPDZ128rmbk = 5397,
+ VANDNPDZ128rmbkz = 5398,
+ VANDNPDZ128rmk = 5399,
+ VANDNPDZ128rmkz = 5400,
+ VANDNPDZ128rr = 5401,
+ VANDNPDZ128rrk = 5402,
+ VANDNPDZ128rrkz = 5403,
+ VANDNPDZ256rm = 5404,
+ VANDNPDZ256rmb = 5405,
+ VANDNPDZ256rmbk = 5406,
+ VANDNPDZ256rmbkz = 5407,
+ VANDNPDZ256rmk = 5408,
+ VANDNPDZ256rmkz = 5409,
+ VANDNPDZ256rr = 5410,
+ VANDNPDZ256rrk = 5411,
+ VANDNPDZ256rrkz = 5412,
+ VANDNPDZrm = 5413,
+ VANDNPDZrmb = 5414,
+ VANDNPDZrmbk = 5415,
+ VANDNPDZrmbkz = 5416,
+ VANDNPDZrmk = 5417,
+ VANDNPDZrmkz = 5418,
+ VANDNPDZrr = 5419,
+ VANDNPDZrrk = 5420,
+ VANDNPDZrrkz = 5421,
+ VANDNPDrm = 5422,
+ VANDNPDrr = 5423,
+ VANDNPSYrm = 5424,
+ VANDNPSYrr = 5425,
+ VANDNPSZ128rm = 5426,
+ VANDNPSZ128rmb = 5427,
+ VANDNPSZ128rmbk = 5428,
+ VANDNPSZ128rmbkz = 5429,
+ VANDNPSZ128rmk = 5430,
+ VANDNPSZ128rmkz = 5431,
+ VANDNPSZ128rr = 5432,
+ VANDNPSZ128rrk = 5433,
+ VANDNPSZ128rrkz = 5434,
+ VANDNPSZ256rm = 5435,
+ VANDNPSZ256rmb = 5436,
+ VANDNPSZ256rmbk = 5437,
+ VANDNPSZ256rmbkz = 5438,
+ VANDNPSZ256rmk = 5439,
+ VANDNPSZ256rmkz = 5440,
+ VANDNPSZ256rr = 5441,
+ VANDNPSZ256rrk = 5442,
+ VANDNPSZ256rrkz = 5443,
+ VANDNPSZrm = 5444,
+ VANDNPSZrmb = 5445,
+ VANDNPSZrmbk = 5446,
+ VANDNPSZrmbkz = 5447,
+ VANDNPSZrmk = 5448,
+ VANDNPSZrmkz = 5449,
+ VANDNPSZrr = 5450,
+ VANDNPSZrrk = 5451,
+ VANDNPSZrrkz = 5452,
+ VANDNPSrm = 5453,
+ VANDNPSrr = 5454,
+ VANDPDYrm = 5455,
+ VANDPDYrr = 5456,
+ VANDPDZ128rm = 5457,
+ VANDPDZ128rmb = 5458,
+ VANDPDZ128rmbk = 5459,
+ VANDPDZ128rmbkz = 5460,
+ VANDPDZ128rmk = 5461,
+ VANDPDZ128rmkz = 5462,
+ VANDPDZ128rr = 5463,
+ VANDPDZ128rrk = 5464,
+ VANDPDZ128rrkz = 5465,
+ VANDPDZ256rm = 5466,
+ VANDPDZ256rmb = 5467,
+ VANDPDZ256rmbk = 5468,
+ VANDPDZ256rmbkz = 5469,
+ VANDPDZ256rmk = 5470,
+ VANDPDZ256rmkz = 5471,
+ VANDPDZ256rr = 5472,
+ VANDPDZ256rrk = 5473,
+ VANDPDZ256rrkz = 5474,
+ VANDPDZrm = 5475,
+ VANDPDZrmb = 5476,
+ VANDPDZrmbk = 5477,
+ VANDPDZrmbkz = 5478,
+ VANDPDZrmk = 5479,
+ VANDPDZrmkz = 5480,
+ VANDPDZrr = 5481,
+ VANDPDZrrk = 5482,
+ VANDPDZrrkz = 5483,
+ VANDPDrm = 5484,
+ VANDPDrr = 5485,
+ VANDPSYrm = 5486,
+ VANDPSYrr = 5487,
+ VANDPSZ128rm = 5488,
+ VANDPSZ128rmb = 5489,
+ VANDPSZ128rmbk = 5490,
+ VANDPSZ128rmbkz = 5491,
+ VANDPSZ128rmk = 5492,
+ VANDPSZ128rmkz = 5493,
+ VANDPSZ128rr = 5494,
+ VANDPSZ128rrk = 5495,
+ VANDPSZ128rrkz = 5496,
+ VANDPSZ256rm = 5497,
+ VANDPSZ256rmb = 5498,
+ VANDPSZ256rmbk = 5499,
+ VANDPSZ256rmbkz = 5500,
+ VANDPSZ256rmk = 5501,
+ VANDPSZ256rmkz = 5502,
+ VANDPSZ256rr = 5503,
+ VANDPSZ256rrk = 5504,
+ VANDPSZ256rrkz = 5505,
+ VANDPSZrm = 5506,
+ VANDPSZrmb = 5507,
+ VANDPSZrmbk = 5508,
+ VANDPSZrmbkz = 5509,
+ VANDPSZrmk = 5510,
+ VANDPSZrmkz = 5511,
+ VANDPSZrr = 5512,
+ VANDPSZrrk = 5513,
+ VANDPSZrrkz = 5514,
+ VANDPSrm = 5515,
+ VANDPSrr = 5516,
+ VASTART_SAVE_XMM_REGS = 5517,
+ VBCSTNEBF162PSYrm = 5518,
+ VBCSTNEBF162PSrm = 5519,
+ VBCSTNESH2PSYrm = 5520,
+ VBCSTNESH2PSrm = 5521,
+ VBLENDMPDZ128rm = 5522,
+ VBLENDMPDZ128rmb = 5523,
+ VBLENDMPDZ128rmbk = 5524,
+ VBLENDMPDZ128rmbkz = 5525,
+ VBLENDMPDZ128rmk = 5526,
+ VBLENDMPDZ128rmkz = 5527,
+ VBLENDMPDZ128rr = 5528,
+ VBLENDMPDZ128rrk = 5529,
+ VBLENDMPDZ128rrkz = 5530,
+ VBLENDMPDZ256rm = 5531,
+ VBLENDMPDZ256rmb = 5532,
+ VBLENDMPDZ256rmbk = 5533,
+ VBLENDMPDZ256rmbkz = 5534,
+ VBLENDMPDZ256rmk = 5535,
+ VBLENDMPDZ256rmkz = 5536,
+ VBLENDMPDZ256rr = 5537,
+ VBLENDMPDZ256rrk = 5538,
+ VBLENDMPDZ256rrkz = 5539,
+ VBLENDMPDZrm = 5540,
+ VBLENDMPDZrmb = 5541,
+ VBLENDMPDZrmbk = 5542,
+ VBLENDMPDZrmbkz = 5543,
+ VBLENDMPDZrmk = 5544,
+ VBLENDMPDZrmkz = 5545,
+ VBLENDMPDZrr = 5546,
+ VBLENDMPDZrrk = 5547,
+ VBLENDMPDZrrkz = 5548,
+ VBLENDMPSZ128rm = 5549,
+ VBLENDMPSZ128rmb = 5550,
+ VBLENDMPSZ128rmbk = 5551,
+ VBLENDMPSZ128rmbkz = 5552,
+ VBLENDMPSZ128rmk = 5553,
+ VBLENDMPSZ128rmkz = 5554,
+ VBLENDMPSZ128rr = 5555,
+ VBLENDMPSZ128rrk = 5556,
+ VBLENDMPSZ128rrkz = 5557,
+ VBLENDMPSZ256rm = 5558,
+ VBLENDMPSZ256rmb = 5559,
+ VBLENDMPSZ256rmbk = 5560,
+ VBLENDMPSZ256rmbkz = 5561,
+ VBLENDMPSZ256rmk = 5562,
+ VBLENDMPSZ256rmkz = 5563,
+ VBLENDMPSZ256rr = 5564,
+ VBLENDMPSZ256rrk = 5565,
+ VBLENDMPSZ256rrkz = 5566,
+ VBLENDMPSZrm = 5567,
+ VBLENDMPSZrmb = 5568,
+ VBLENDMPSZrmbk = 5569,
+ VBLENDMPSZrmbkz = 5570,
+ VBLENDMPSZrmk = 5571,
+ VBLENDMPSZrmkz = 5572,
+ VBLENDMPSZrr = 5573,
+ VBLENDMPSZrrk = 5574,
+ VBLENDMPSZrrkz = 5575,
+ VBLENDPDYrmi = 5576,
+ VBLENDPDYrri = 5577,
+ VBLENDPDrmi = 5578,
+ VBLENDPDrri = 5579,
+ VBLENDPSYrmi = 5580,
+ VBLENDPSYrri = 5581,
+ VBLENDPSrmi = 5582,
+ VBLENDPSrri = 5583,
+ VBLENDVPDYrmr = 5584,
+ VBLENDVPDYrrr = 5585,
+ VBLENDVPDrmr = 5586,
+ VBLENDVPDrrr = 5587,
+ VBLENDVPSYrmr = 5588,
+ VBLENDVPSYrrr = 5589,
+ VBLENDVPSrmr = 5590,
+ VBLENDVPSrrr = 5591,
+ VBROADCASTF128rm = 5592,
+ VBROADCASTF32X2Z256rm = 5593,
+ VBROADCASTF32X2Z256rmk = 5594,
+ VBROADCASTF32X2Z256rmkz = 5595,
+ VBROADCASTF32X2Z256rr = 5596,
+ VBROADCASTF32X2Z256rrk = 5597,
+ VBROADCASTF32X2Z256rrkz = 5598,
+ VBROADCASTF32X2Zrm = 5599,
+ VBROADCASTF32X2Zrmk = 5600,
+ VBROADCASTF32X2Zrmkz = 5601,
+ VBROADCASTF32X2Zrr = 5602,
+ VBROADCASTF32X2Zrrk = 5603,
+ VBROADCASTF32X2Zrrkz = 5604,
+ VBROADCASTF32X4Z256rm = 5605,
+ VBROADCASTF32X4Z256rmk = 5606,
+ VBROADCASTF32X4Z256rmkz = 5607,
+ VBROADCASTF32X4Zrm = 5608,
+ VBROADCASTF32X4Zrmk = 5609,
+ VBROADCASTF32X4Zrmkz = 5610,
+ VBROADCASTF32X8Zrm = 5611,
+ VBROADCASTF32X8Zrmk = 5612,
+ VBROADCASTF32X8Zrmkz = 5613,
+ VBROADCASTF64X2Z256rm = 5614,
+ VBROADCASTF64X2Z256rmk = 5615,
+ VBROADCASTF64X2Z256rmkz = 5616,
+ VBROADCASTF64X2Zrm = 5617,
+ VBROADCASTF64X2Zrmk = 5618,
+ VBROADCASTF64X2Zrmkz = 5619,
+ VBROADCASTF64X4Zrm = 5620,
+ VBROADCASTF64X4Zrmk = 5621,
+ VBROADCASTF64X4Zrmkz = 5622,
+ VBROADCASTI128rm = 5623,
+ VBROADCASTI32X2Z128rm = 5624,
+ VBROADCASTI32X2Z128rmk = 5625,
+ VBROADCASTI32X2Z128rmkz = 5626,
+ VBROADCASTI32X2Z128rr = 5627,
+ VBROADCASTI32X2Z128rrk = 5628,
+ VBROADCASTI32X2Z128rrkz = 5629,
+ VBROADCASTI32X2Z256rm = 5630,
+ VBROADCASTI32X2Z256rmk = 5631,
+ VBROADCASTI32X2Z256rmkz = 5632,
+ VBROADCASTI32X2Z256rr = 5633,
+ VBROADCASTI32X2Z256rrk = 5634,
+ VBROADCASTI32X2Z256rrkz = 5635,
+ VBROADCASTI32X2Zrm = 5636,
+ VBROADCASTI32X2Zrmk = 5637,
+ VBROADCASTI32X2Zrmkz = 5638,
+ VBROADCASTI32X2Zrr = 5639,
+ VBROADCASTI32X2Zrrk = 5640,
+ VBROADCASTI32X2Zrrkz = 5641,
+ VBROADCASTI32X4Z256rm = 5642,
+ VBROADCASTI32X4Z256rmk = 5643,
+ VBROADCASTI32X4Z256rmkz = 5644,
+ VBROADCASTI32X4Zrm = 5645,
+ VBROADCASTI32X4Zrmk = 5646,
+ VBROADCASTI32X4Zrmkz = 5647,
+ VBROADCASTI32X8Zrm = 5648,
+ VBROADCASTI32X8Zrmk = 5649,
+ VBROADCASTI32X8Zrmkz = 5650,
+ VBROADCASTI64X2Z256rm = 5651,
+ VBROADCASTI64X2Z256rmk = 5652,
+ VBROADCASTI64X2Z256rmkz = 5653,
+ VBROADCASTI64X2Zrm = 5654,
+ VBROADCASTI64X2Zrmk = 5655,
+ VBROADCASTI64X2Zrmkz = 5656,
+ VBROADCASTI64X4Zrm = 5657,
+ VBROADCASTI64X4Zrmk = 5658,
+ VBROADCASTI64X4Zrmkz = 5659,
+ VBROADCASTSDYrm = 5660,
+ VBROADCASTSDYrr = 5661,
+ VBROADCASTSDZ256rm = 5662,
+ VBROADCASTSDZ256rmk = 5663,
+ VBROADCASTSDZ256rmkz = 5664,
+ VBROADCASTSDZ256rr = 5665,
+ VBROADCASTSDZ256rrk = 5666,
+ VBROADCASTSDZ256rrkz = 5667,
+ VBROADCASTSDZrm = 5668,
+ VBROADCASTSDZrmk = 5669,
+ VBROADCASTSDZrmkz = 5670,
+ VBROADCASTSDZrr = 5671,
+ VBROADCASTSDZrrk = 5672,
+ VBROADCASTSDZrrkz = 5673,
+ VBROADCASTSSYrm = 5674,
+ VBROADCASTSSYrr = 5675,
+ VBROADCASTSSZ128rm = 5676,
+ VBROADCASTSSZ128rmk = 5677,
+ VBROADCASTSSZ128rmkz = 5678,
+ VBROADCASTSSZ128rr = 5679,
+ VBROADCASTSSZ128rrk = 5680,
+ VBROADCASTSSZ128rrkz = 5681,
+ VBROADCASTSSZ256rm = 5682,
+ VBROADCASTSSZ256rmk = 5683,
+ VBROADCASTSSZ256rmkz = 5684,
+ VBROADCASTSSZ256rr = 5685,
+ VBROADCASTSSZ256rrk = 5686,
+ VBROADCASTSSZ256rrkz = 5687,
+ VBROADCASTSSZrm = 5688,
+ VBROADCASTSSZrmk = 5689,
+ VBROADCASTSSZrmkz = 5690,
+ VBROADCASTSSZrr = 5691,
+ VBROADCASTSSZrrk = 5692,
+ VBROADCASTSSZrrkz = 5693,
+ VBROADCASTSSrm = 5694,
+ VBROADCASTSSrr = 5695,
+ VCMPBF16Z128rmbi = 5696,
+ VCMPBF16Z128rmbik = 5697,
+ VCMPBF16Z128rmi = 5698,
+ VCMPBF16Z128rmik = 5699,
+ VCMPBF16Z128rri = 5700,
+ VCMPBF16Z128rrik = 5701,
+ VCMPBF16Z256rmbi = 5702,
+ VCMPBF16Z256rmbik = 5703,
+ VCMPBF16Z256rmi = 5704,
+ VCMPBF16Z256rmik = 5705,
+ VCMPBF16Z256rri = 5706,
+ VCMPBF16Z256rrik = 5707,
+ VCMPBF16Zrmbi = 5708,
+ VCMPBF16Zrmbik = 5709,
+ VCMPBF16Zrmi = 5710,
+ VCMPBF16Zrmik = 5711,
+ VCMPBF16Zrri = 5712,
+ VCMPBF16Zrrik = 5713,
+ VCMPPDYrmi = 5714,
+ VCMPPDYrri = 5715,
+ VCMPPDZ128rmbi = 5716,
+ VCMPPDZ128rmbik = 5717,
+ VCMPPDZ128rmi = 5718,
+ VCMPPDZ128rmik = 5719,
+ VCMPPDZ128rri = 5720,
+ VCMPPDZ128rrik = 5721,
+ VCMPPDZ256rmbi = 5722,
+ VCMPPDZ256rmbik = 5723,
+ VCMPPDZ256rmi = 5724,
+ VCMPPDZ256rmik = 5725,
+ VCMPPDZ256rri = 5726,
+ VCMPPDZ256rrik = 5727,
+ VCMPPDZrmbi = 5728,
+ VCMPPDZrmbik = 5729,
+ VCMPPDZrmi = 5730,
+ VCMPPDZrmik = 5731,
+ VCMPPDZrri = 5732,
+ VCMPPDZrrib = 5733,
+ VCMPPDZrribk = 5734,
+ VCMPPDZrrik = 5735,
+ VCMPPDrmi = 5736,
+ VCMPPDrri = 5737,
+ VCMPPHZ128rmbi = 5738,
+ VCMPPHZ128rmbik = 5739,
+ VCMPPHZ128rmi = 5740,
+ VCMPPHZ128rmik = 5741,
+ VCMPPHZ128rri = 5742,
+ VCMPPHZ128rrik = 5743,
+ VCMPPHZ256rmbi = 5744,
+ VCMPPHZ256rmbik = 5745,
+ VCMPPHZ256rmi = 5746,
+ VCMPPHZ256rmik = 5747,
+ VCMPPHZ256rri = 5748,
+ VCMPPHZ256rrik = 5749,
+ VCMPPHZrmbi = 5750,
+ VCMPPHZrmbik = 5751,
+ VCMPPHZrmi = 5752,
+ VCMPPHZrmik = 5753,
+ VCMPPHZrri = 5754,
+ VCMPPHZrrib = 5755,
+ VCMPPHZrribk = 5756,
+ VCMPPHZrrik = 5757,
+ VCMPPSYrmi = 5758,
+ VCMPPSYrri = 5759,
+ VCMPPSZ128rmbi = 5760,
+ VCMPPSZ128rmbik = 5761,
+ VCMPPSZ128rmi = 5762,
+ VCMPPSZ128rmik = 5763,
+ VCMPPSZ128rri = 5764,
+ VCMPPSZ128rrik = 5765,
+ VCMPPSZ256rmbi = 5766,
+ VCMPPSZ256rmbik = 5767,
+ VCMPPSZ256rmi = 5768,
+ VCMPPSZ256rmik = 5769,
+ VCMPPSZ256rri = 5770,
+ VCMPPSZ256rrik = 5771,
+ VCMPPSZrmbi = 5772,
+ VCMPPSZrmbik = 5773,
+ VCMPPSZrmi = 5774,
+ VCMPPSZrmik = 5775,
+ VCMPPSZrri = 5776,
+ VCMPPSZrrib = 5777,
+ VCMPPSZrribk = 5778,
+ VCMPPSZrrik = 5779,
+ VCMPPSrmi = 5780,
+ VCMPPSrri = 5781,
+ VCMPSDZrmi = 5782,
+ VCMPSDZrmi_Int = 5783,
+ VCMPSDZrmik_Int = 5784,
+ VCMPSDZrri = 5785,
+ VCMPSDZrri_Int = 5786,
+ VCMPSDZrrib_Int = 5787,
+ VCMPSDZrribk_Int = 5788,
+ VCMPSDZrrik_Int = 5789,
+ VCMPSDrmi = 5790,
+ VCMPSDrmi_Int = 5791,
+ VCMPSDrri = 5792,
+ VCMPSDrri_Int = 5793,
+ VCMPSHZrmi = 5794,
+ VCMPSHZrmi_Int = 5795,
+ VCMPSHZrmik_Int = 5796,
+ VCMPSHZrri = 5797,
+ VCMPSHZrri_Int = 5798,
+ VCMPSHZrrib_Int = 5799,
+ VCMPSHZrribk_Int = 5800,
+ VCMPSHZrrik_Int = 5801,
+ VCMPSSZrmi = 5802,
+ VCMPSSZrmi_Int = 5803,
+ VCMPSSZrmik_Int = 5804,
+ VCMPSSZrri = 5805,
+ VCMPSSZrri_Int = 5806,
+ VCMPSSZrrib_Int = 5807,
+ VCMPSSZrribk_Int = 5808,
+ VCMPSSZrrik_Int = 5809,
+ VCMPSSrmi = 5810,
+ VCMPSSrmi_Int = 5811,
+ VCMPSSrri = 5812,
+ VCMPSSrri_Int = 5813,
+ VCOMISBF16Zrm = 5814,
+ VCOMISBF16Zrm_Int = 5815,
+ VCOMISBF16Zrr = 5816,
+ VCOMISBF16Zrr_Int = 5817,
+ VCOMISDZrm = 5818,
+ VCOMISDZrm_Int = 5819,
+ VCOMISDZrr = 5820,
+ VCOMISDZrr_Int = 5821,
+ VCOMISDZrrb = 5822,
+ VCOMISDrm = 5823,
+ VCOMISDrm_Int = 5824,
+ VCOMISDrr = 5825,
+ VCOMISDrr_Int = 5826,
+ VCOMISHZrm = 5827,
+ VCOMISHZrm_Int = 5828,
+ VCOMISHZrr = 5829,
+ VCOMISHZrr_Int = 5830,
+ VCOMISHZrrb = 5831,
+ VCOMISSZrm = 5832,
+ VCOMISSZrm_Int = 5833,
+ VCOMISSZrr = 5834,
+ VCOMISSZrr_Int = 5835,
+ VCOMISSZrrb = 5836,
+ VCOMISSrm = 5837,
+ VCOMISSrm_Int = 5838,
+ VCOMISSrr = 5839,
+ VCOMISSrr_Int = 5840,
+ VCOMPRESSPDZ128mr = 5841,
+ VCOMPRESSPDZ128mrk = 5842,
+ VCOMPRESSPDZ128rr = 5843,
+ VCOMPRESSPDZ128rrk = 5844,
+ VCOMPRESSPDZ128rrkz = 5845,
+ VCOMPRESSPDZ256mr = 5846,
+ VCOMPRESSPDZ256mrk = 5847,
+ VCOMPRESSPDZ256rr = 5848,
+ VCOMPRESSPDZ256rrk = 5849,
+ VCOMPRESSPDZ256rrkz = 5850,
+ VCOMPRESSPDZmr = 5851,
+ VCOMPRESSPDZmrk = 5852,
+ VCOMPRESSPDZrr = 5853,
+ VCOMPRESSPDZrrk = 5854,
+ VCOMPRESSPDZrrkz = 5855,
+ VCOMPRESSPSZ128mr = 5856,
+ VCOMPRESSPSZ128mrk = 5857,
+ VCOMPRESSPSZ128rr = 5858,
+ VCOMPRESSPSZ128rrk = 5859,
+ VCOMPRESSPSZ128rrkz = 5860,
+ VCOMPRESSPSZ256mr = 5861,
+ VCOMPRESSPSZ256mrk = 5862,
+ VCOMPRESSPSZ256rr = 5863,
+ VCOMPRESSPSZ256rrk = 5864,
+ VCOMPRESSPSZ256rrkz = 5865,
+ VCOMPRESSPSZmr = 5866,
+ VCOMPRESSPSZmrk = 5867,
+ VCOMPRESSPSZrr = 5868,
+ VCOMPRESSPSZrrk = 5869,
+ VCOMPRESSPSZrrkz = 5870,
+ VCOMXSDZrm_Int = 5871,
+ VCOMXSDZrr_Int = 5872,
+ VCOMXSDZrrb_Int = 5873,
+ VCOMXSHZrm_Int = 5874,
+ VCOMXSHZrr_Int = 5875,
+ VCOMXSHZrrb_Int = 5876,
+ VCOMXSSZrm_Int = 5877,
+ VCOMXSSZrr_Int = 5878,
+ VCOMXSSZrrb_Int = 5879,
+ VCVT2PH2BF8SZ128rm = 5880,
+ VCVT2PH2BF8SZ128rmb = 5881,
+ VCVT2PH2BF8SZ128rmbk = 5882,
+ VCVT2PH2BF8SZ128rmbkz = 5883,
+ VCVT2PH2BF8SZ128rmk = 5884,
+ VCVT2PH2BF8SZ128rmkz = 5885,
+ VCVT2PH2BF8SZ128rr = 5886,
+ VCVT2PH2BF8SZ128rrk = 5887,
+ VCVT2PH2BF8SZ128rrkz = 5888,
+ VCVT2PH2BF8SZ256rm = 5889,
+ VCVT2PH2BF8SZ256rmb = 5890,
+ VCVT2PH2BF8SZ256rmbk = 5891,
+ VCVT2PH2BF8SZ256rmbkz = 5892,
+ VCVT2PH2BF8SZ256rmk = 5893,
+ VCVT2PH2BF8SZ256rmkz = 5894,
+ VCVT2PH2BF8SZ256rr = 5895,
+ VCVT2PH2BF8SZ256rrk = 5896,
+ VCVT2PH2BF8SZ256rrkz = 5897,
+ VCVT2PH2BF8SZrm = 5898,
+ VCVT2PH2BF8SZrmb = 5899,
+ VCVT2PH2BF8SZrmbk = 5900,
+ VCVT2PH2BF8SZrmbkz = 5901,
+ VCVT2PH2BF8SZrmk = 5902,
+ VCVT2PH2BF8SZrmkz = 5903,
+ VCVT2PH2BF8SZrr = 5904,
+ VCVT2PH2BF8SZrrk = 5905,
+ VCVT2PH2BF8SZrrkz = 5906,
+ VCVT2PH2BF8Z128rm = 5907,
+ VCVT2PH2BF8Z128rmb = 5908,
+ VCVT2PH2BF8Z128rmbk = 5909,
+ VCVT2PH2BF8Z128rmbkz = 5910,
+ VCVT2PH2BF8Z128rmk = 5911,
+ VCVT2PH2BF8Z128rmkz = 5912,
+ VCVT2PH2BF8Z128rr = 5913,
+ VCVT2PH2BF8Z128rrk = 5914,
+ VCVT2PH2BF8Z128rrkz = 5915,
+ VCVT2PH2BF8Z256rm = 5916,
+ VCVT2PH2BF8Z256rmb = 5917,
+ VCVT2PH2BF8Z256rmbk = 5918,
+ VCVT2PH2BF8Z256rmbkz = 5919,
+ VCVT2PH2BF8Z256rmk = 5920,
+ VCVT2PH2BF8Z256rmkz = 5921,
+ VCVT2PH2BF8Z256rr = 5922,
+ VCVT2PH2BF8Z256rrk = 5923,
+ VCVT2PH2BF8Z256rrkz = 5924,
+ VCVT2PH2BF8Zrm = 5925,
+ VCVT2PH2BF8Zrmb = 5926,
+ VCVT2PH2BF8Zrmbk = 5927,
+ VCVT2PH2BF8Zrmbkz = 5928,
+ VCVT2PH2BF8Zrmk = 5929,
+ VCVT2PH2BF8Zrmkz = 5930,
+ VCVT2PH2BF8Zrr = 5931,
+ VCVT2PH2BF8Zrrk = 5932,
+ VCVT2PH2BF8Zrrkz = 5933,
+ VCVT2PH2HF8SZ128rm = 5934,
+ VCVT2PH2HF8SZ128rmb = 5935,
+ VCVT2PH2HF8SZ128rmbk = 5936,
+ VCVT2PH2HF8SZ128rmbkz = 5937,
+ VCVT2PH2HF8SZ128rmk = 5938,
+ VCVT2PH2HF8SZ128rmkz = 5939,
+ VCVT2PH2HF8SZ128rr = 5940,
+ VCVT2PH2HF8SZ128rrk = 5941,
+ VCVT2PH2HF8SZ128rrkz = 5942,
+ VCVT2PH2HF8SZ256rm = 5943,
+ VCVT2PH2HF8SZ256rmb = 5944,
+ VCVT2PH2HF8SZ256rmbk = 5945,
+ VCVT2PH2HF8SZ256rmbkz = 5946,
+ VCVT2PH2HF8SZ256rmk = 5947,
+ VCVT2PH2HF8SZ256rmkz = 5948,
+ VCVT2PH2HF8SZ256rr = 5949,
+ VCVT2PH2HF8SZ256rrk = 5950,
+ VCVT2PH2HF8SZ256rrkz = 5951,
+ VCVT2PH2HF8SZrm = 5952,
+ VCVT2PH2HF8SZrmb = 5953,
+ VCVT2PH2HF8SZrmbk = 5954,
+ VCVT2PH2HF8SZrmbkz = 5955,
+ VCVT2PH2HF8SZrmk = 5956,
+ VCVT2PH2HF8SZrmkz = 5957,
+ VCVT2PH2HF8SZrr = 5958,
+ VCVT2PH2HF8SZrrk = 5959,
+ VCVT2PH2HF8SZrrkz = 5960,
+ VCVT2PH2HF8Z128rm = 5961,
+ VCVT2PH2HF8Z128rmb = 5962,
+ VCVT2PH2HF8Z128rmbk = 5963,
+ VCVT2PH2HF8Z128rmbkz = 5964,
+ VCVT2PH2HF8Z128rmk = 5965,
+ VCVT2PH2HF8Z128rmkz = 5966,
+ VCVT2PH2HF8Z128rr = 5967,
+ VCVT2PH2HF8Z128rrk = 5968,
+ VCVT2PH2HF8Z128rrkz = 5969,
+ VCVT2PH2HF8Z256rm = 5970,
+ VCVT2PH2HF8Z256rmb = 5971,
+ VCVT2PH2HF8Z256rmbk = 5972,
+ VCVT2PH2HF8Z256rmbkz = 5973,
+ VCVT2PH2HF8Z256rmk = 5974,
+ VCVT2PH2HF8Z256rmkz = 5975,
+ VCVT2PH2HF8Z256rr = 5976,
+ VCVT2PH2HF8Z256rrk = 5977,
+ VCVT2PH2HF8Z256rrkz = 5978,
+ VCVT2PH2HF8Zrm = 5979,
+ VCVT2PH2HF8Zrmb = 5980,
+ VCVT2PH2HF8Zrmbk = 5981,
+ VCVT2PH2HF8Zrmbkz = 5982,
+ VCVT2PH2HF8Zrmk = 5983,
+ VCVT2PH2HF8Zrmkz = 5984,
+ VCVT2PH2HF8Zrr = 5985,
+ VCVT2PH2HF8Zrrk = 5986,
+ VCVT2PH2HF8Zrrkz = 5987,
+ VCVT2PS2PHXZ128rm = 5988,
+ VCVT2PS2PHXZ128rmb = 5989,
+ VCVT2PS2PHXZ128rmbk = 5990,
+ VCVT2PS2PHXZ128rmbkz = 5991,
+ VCVT2PS2PHXZ128rmk = 5992,
+ VCVT2PS2PHXZ128rmkz = 5993,
+ VCVT2PS2PHXZ128rr = 5994,
+ VCVT2PS2PHXZ128rrk = 5995,
+ VCVT2PS2PHXZ128rrkz = 5996,
+ VCVT2PS2PHXZ256rm = 5997,
+ VCVT2PS2PHXZ256rmb = 5998,
+ VCVT2PS2PHXZ256rmbk = 5999,
+ VCVT2PS2PHXZ256rmbkz = 6000,
+ VCVT2PS2PHXZ256rmk = 6001,
+ VCVT2PS2PHXZ256rmkz = 6002,
+ VCVT2PS2PHXZ256rr = 6003,
+ VCVT2PS2PHXZ256rrk = 6004,
+ VCVT2PS2PHXZ256rrkz = 6005,
+ VCVT2PS2PHXZrm = 6006,
+ VCVT2PS2PHXZrmb = 6007,
+ VCVT2PS2PHXZrmbk = 6008,
+ VCVT2PS2PHXZrmbkz = 6009,
+ VCVT2PS2PHXZrmk = 6010,
+ VCVT2PS2PHXZrmkz = 6011,
+ VCVT2PS2PHXZrr = 6012,
+ VCVT2PS2PHXZrrb = 6013,
+ VCVT2PS2PHXZrrbk = 6014,
+ VCVT2PS2PHXZrrbkz = 6015,
+ VCVT2PS2PHXZrrk = 6016,
+ VCVT2PS2PHXZrrkz = 6017,
+ VCVTBF162IBSZ128rm = 6018,
+ VCVTBF162IBSZ128rmb = 6019,
+ VCVTBF162IBSZ128rmbk = 6020,
+ VCVTBF162IBSZ128rmbkz = 6021,
+ VCVTBF162IBSZ128rmk = 6022,
+ VCVTBF162IBSZ128rmkz = 6023,
+ VCVTBF162IBSZ128rr = 6024,
+ VCVTBF162IBSZ128rrk = 6025,
+ VCVTBF162IBSZ128rrkz = 6026,
+ VCVTBF162IBSZ256rm = 6027,
+ VCVTBF162IBSZ256rmb = 6028,
+ VCVTBF162IBSZ256rmbk = 6029,
+ VCVTBF162IBSZ256rmbkz = 6030,
+ VCVTBF162IBSZ256rmk = 6031,
+ VCVTBF162IBSZ256rmkz = 6032,
+ VCVTBF162IBSZ256rr = 6033,
+ VCVTBF162IBSZ256rrk = 6034,
+ VCVTBF162IBSZ256rrkz = 6035,
+ VCVTBF162IBSZrm = 6036,
+ VCVTBF162IBSZrmb = 6037,
+ VCVTBF162IBSZrmbk = 6038,
+ VCVTBF162IBSZrmbkz = 6039,
+ VCVTBF162IBSZrmk = 6040,
+ VCVTBF162IBSZrmkz = 6041,
+ VCVTBF162IBSZrr = 6042,
+ VCVTBF162IBSZrrk = 6043,
+ VCVTBF162IBSZrrkz = 6044,
+ VCVTBF162IUBSZ128rm = 6045,
+ VCVTBF162IUBSZ128rmb = 6046,
+ VCVTBF162IUBSZ128rmbk = 6047,
+ VCVTBF162IUBSZ128rmbkz = 6048,
+ VCVTBF162IUBSZ128rmk = 6049,
+ VCVTBF162IUBSZ128rmkz = 6050,
+ VCVTBF162IUBSZ128rr = 6051,
+ VCVTBF162IUBSZ128rrk = 6052,
+ VCVTBF162IUBSZ128rrkz = 6053,
+ VCVTBF162IUBSZ256rm = 6054,
+ VCVTBF162IUBSZ256rmb = 6055,
+ VCVTBF162IUBSZ256rmbk = 6056,
+ VCVTBF162IUBSZ256rmbkz = 6057,
+ VCVTBF162IUBSZ256rmk = 6058,
+ VCVTBF162IUBSZ256rmkz = 6059,
+ VCVTBF162IUBSZ256rr = 6060,
+ VCVTBF162IUBSZ256rrk = 6061,
+ VCVTBF162IUBSZ256rrkz = 6062,
+ VCVTBF162IUBSZrm = 6063,
+ VCVTBF162IUBSZrmb = 6064,
+ VCVTBF162IUBSZrmbk = 6065,
+ VCVTBF162IUBSZrmbkz = 6066,
+ VCVTBF162IUBSZrmk = 6067,
+ VCVTBF162IUBSZrmkz = 6068,
+ VCVTBF162IUBSZrr = 6069,
+ VCVTBF162IUBSZrrk = 6070,
+ VCVTBF162IUBSZrrkz = 6071,
+ VCVTBIASPH2BF8SZ128rm = 6072,
+ VCVTBIASPH2BF8SZ128rmb = 6073,
+ VCVTBIASPH2BF8SZ128rmbk = 6074,
+ VCVTBIASPH2BF8SZ128rmbkz = 6075,
+ VCVTBIASPH2BF8SZ128rmk = 6076,
+ VCVTBIASPH2BF8SZ128rmkz = 6077,
+ VCVTBIASPH2BF8SZ128rr = 6078,
+ VCVTBIASPH2BF8SZ128rrk = 6079,
+ VCVTBIASPH2BF8SZ128rrkz = 6080,
+ VCVTBIASPH2BF8SZ256rm = 6081,
+ VCVTBIASPH2BF8SZ256rmb = 6082,
+ VCVTBIASPH2BF8SZ256rmbk = 6083,
+ VCVTBIASPH2BF8SZ256rmbkz = 6084,
+ VCVTBIASPH2BF8SZ256rmk = 6085,
+ VCVTBIASPH2BF8SZ256rmkz = 6086,
+ VCVTBIASPH2BF8SZ256rr = 6087,
+ VCVTBIASPH2BF8SZ256rrk = 6088,
+ VCVTBIASPH2BF8SZ256rrkz = 6089,
+ VCVTBIASPH2BF8SZrm = 6090,
+ VCVTBIASPH2BF8SZrmb = 6091,
+ VCVTBIASPH2BF8SZrmbk = 6092,
+ VCVTBIASPH2BF8SZrmbkz = 6093,
+ VCVTBIASPH2BF8SZrmk = 6094,
+ VCVTBIASPH2BF8SZrmkz = 6095,
+ VCVTBIASPH2BF8SZrr = 6096,
+ VCVTBIASPH2BF8SZrrk = 6097,
+ VCVTBIASPH2BF8SZrrkz = 6098,
+ VCVTBIASPH2BF8Z128rm = 6099,
+ VCVTBIASPH2BF8Z128rmb = 6100,
+ VCVTBIASPH2BF8Z128rmbk = 6101,
+ VCVTBIASPH2BF8Z128rmbkz = 6102,
+ VCVTBIASPH2BF8Z128rmk = 6103,
+ VCVTBIASPH2BF8Z128rmkz = 6104,
+ VCVTBIASPH2BF8Z128rr = 6105,
+ VCVTBIASPH2BF8Z128rrk = 6106,
+ VCVTBIASPH2BF8Z128rrkz = 6107,
+ VCVTBIASPH2BF8Z256rm = 6108,
+ VCVTBIASPH2BF8Z256rmb = 6109,
+ VCVTBIASPH2BF8Z256rmbk = 6110,
+ VCVTBIASPH2BF8Z256rmbkz = 6111,
+ VCVTBIASPH2BF8Z256rmk = 6112,
+ VCVTBIASPH2BF8Z256rmkz = 6113,
+ VCVTBIASPH2BF8Z256rr = 6114,
+ VCVTBIASPH2BF8Z256rrk = 6115,
+ VCVTBIASPH2BF8Z256rrkz = 6116,
+ VCVTBIASPH2BF8Zrm = 6117,
+ VCVTBIASPH2BF8Zrmb = 6118,
+ VCVTBIASPH2BF8Zrmbk = 6119,
+ VCVTBIASPH2BF8Zrmbkz = 6120,
+ VCVTBIASPH2BF8Zrmk = 6121,
+ VCVTBIASPH2BF8Zrmkz = 6122,
+ VCVTBIASPH2BF8Zrr = 6123,
+ VCVTBIASPH2BF8Zrrk = 6124,
+ VCVTBIASPH2BF8Zrrkz = 6125,
+ VCVTBIASPH2HF8SZ128rm = 6126,
+ VCVTBIASPH2HF8SZ128rmb = 6127,
+ VCVTBIASPH2HF8SZ128rmbk = 6128,
+ VCVTBIASPH2HF8SZ128rmbkz = 6129,
+ VCVTBIASPH2HF8SZ128rmk = 6130,
+ VCVTBIASPH2HF8SZ128rmkz = 6131,
+ VCVTBIASPH2HF8SZ128rr = 6132,
+ VCVTBIASPH2HF8SZ128rrk = 6133,
+ VCVTBIASPH2HF8SZ128rrkz = 6134,
+ VCVTBIASPH2HF8SZ256rm = 6135,
+ VCVTBIASPH2HF8SZ256rmb = 6136,
+ VCVTBIASPH2HF8SZ256rmbk = 6137,
+ VCVTBIASPH2HF8SZ256rmbkz = 6138,
+ VCVTBIASPH2HF8SZ256rmk = 6139,
+ VCVTBIASPH2HF8SZ256rmkz = 6140,
+ VCVTBIASPH2HF8SZ256rr = 6141,
+ VCVTBIASPH2HF8SZ256rrk = 6142,
+ VCVTBIASPH2HF8SZ256rrkz = 6143,
+ VCVTBIASPH2HF8SZrm = 6144,
+ VCVTBIASPH2HF8SZrmb = 6145,
+ VCVTBIASPH2HF8SZrmbk = 6146,
+ VCVTBIASPH2HF8SZrmbkz = 6147,
+ VCVTBIASPH2HF8SZrmk = 6148,
+ VCVTBIASPH2HF8SZrmkz = 6149,
+ VCVTBIASPH2HF8SZrr = 6150,
+ VCVTBIASPH2HF8SZrrk = 6151,
+ VCVTBIASPH2HF8SZrrkz = 6152,
+ VCVTBIASPH2HF8Z128rm = 6153,
+ VCVTBIASPH2HF8Z128rmb = 6154,
+ VCVTBIASPH2HF8Z128rmbk = 6155,
+ VCVTBIASPH2HF8Z128rmbkz = 6156,
+ VCVTBIASPH2HF8Z128rmk = 6157,
+ VCVTBIASPH2HF8Z128rmkz = 6158,
+ VCVTBIASPH2HF8Z128rr = 6159,
+ VCVTBIASPH2HF8Z128rrk = 6160,
+ VCVTBIASPH2HF8Z128rrkz = 6161,
+ VCVTBIASPH2HF8Z256rm = 6162,
+ VCVTBIASPH2HF8Z256rmb = 6163,
+ VCVTBIASPH2HF8Z256rmbk = 6164,
+ VCVTBIASPH2HF8Z256rmbkz = 6165,
+ VCVTBIASPH2HF8Z256rmk = 6166,
+ VCVTBIASPH2HF8Z256rmkz = 6167,
+ VCVTBIASPH2HF8Z256rr = 6168,
+ VCVTBIASPH2HF8Z256rrk = 6169,
+ VCVTBIASPH2HF8Z256rrkz = 6170,
+ VCVTBIASPH2HF8Zrm = 6171,
+ VCVTBIASPH2HF8Zrmb = 6172,
+ VCVTBIASPH2HF8Zrmbk = 6173,
+ VCVTBIASPH2HF8Zrmbkz = 6174,
+ VCVTBIASPH2HF8Zrmk = 6175,
+ VCVTBIASPH2HF8Zrmkz = 6176,
+ VCVTBIASPH2HF8Zrr = 6177,
+ VCVTBIASPH2HF8Zrrk = 6178,
+ VCVTBIASPH2HF8Zrrkz = 6179,
+ VCVTDQ2PDYrm = 6180,
+ VCVTDQ2PDYrr = 6181,
+ VCVTDQ2PDZ128rm = 6182,
+ VCVTDQ2PDZ128rmb = 6183,
+ VCVTDQ2PDZ128rmbk = 6184,
+ VCVTDQ2PDZ128rmbkz = 6185,
+ VCVTDQ2PDZ128rmk = 6186,
+ VCVTDQ2PDZ128rmkz = 6187,
+ VCVTDQ2PDZ128rr = 6188,
+ VCVTDQ2PDZ128rrk = 6189,
+ VCVTDQ2PDZ128rrkz = 6190,
+ VCVTDQ2PDZ256rm = 6191,
+ VCVTDQ2PDZ256rmb = 6192,
+ VCVTDQ2PDZ256rmbk = 6193,
+ VCVTDQ2PDZ256rmbkz = 6194,
+ VCVTDQ2PDZ256rmk = 6195,
+ VCVTDQ2PDZ256rmkz = 6196,
+ VCVTDQ2PDZ256rr = 6197,
+ VCVTDQ2PDZ256rrk = 6198,
+ VCVTDQ2PDZ256rrkz = 6199,
+ VCVTDQ2PDZrm = 6200,
+ VCVTDQ2PDZrmb = 6201,
+ VCVTDQ2PDZrmbk = 6202,
+ VCVTDQ2PDZrmbkz = 6203,
+ VCVTDQ2PDZrmk = 6204,
+ VCVTDQ2PDZrmkz = 6205,
+ VCVTDQ2PDZrr = 6206,
+ VCVTDQ2PDZrrk = 6207,
+ VCVTDQ2PDZrrkz = 6208,
+ VCVTDQ2PDrm = 6209,
+ VCVTDQ2PDrr = 6210,
+ VCVTDQ2PHZ128rm = 6211,
+ VCVTDQ2PHZ128rmb = 6212,
+ VCVTDQ2PHZ128rmbk = 6213,
+ VCVTDQ2PHZ128rmbkz = 6214,
+ VCVTDQ2PHZ128rmk = 6215,
+ VCVTDQ2PHZ128rmkz = 6216,
+ VCVTDQ2PHZ128rr = 6217,
+ VCVTDQ2PHZ128rrk = 6218,
+ VCVTDQ2PHZ128rrkz = 6219,
+ VCVTDQ2PHZ256rm = 6220,
+ VCVTDQ2PHZ256rmb = 6221,
+ VCVTDQ2PHZ256rmbk = 6222,
+ VCVTDQ2PHZ256rmbkz = 6223,
+ VCVTDQ2PHZ256rmk = 6224,
+ VCVTDQ2PHZ256rmkz = 6225,
+ VCVTDQ2PHZ256rr = 6226,
+ VCVTDQ2PHZ256rrk = 6227,
+ VCVTDQ2PHZ256rrkz = 6228,
+ VCVTDQ2PHZrm = 6229,
+ VCVTDQ2PHZrmb = 6230,
+ VCVTDQ2PHZrmbk = 6231,
+ VCVTDQ2PHZrmbkz = 6232,
+ VCVTDQ2PHZrmk = 6233,
+ VCVTDQ2PHZrmkz = 6234,
+ VCVTDQ2PHZrr = 6235,
+ VCVTDQ2PHZrrb = 6236,
+ VCVTDQ2PHZrrbk = 6237,
+ VCVTDQ2PHZrrbkz = 6238,
+ VCVTDQ2PHZrrk = 6239,
+ VCVTDQ2PHZrrkz = 6240,
+ VCVTDQ2PSYrm = 6241,
+ VCVTDQ2PSYrr = 6242,
+ VCVTDQ2PSZ128rm = 6243,
+ VCVTDQ2PSZ128rmb = 6244,
+ VCVTDQ2PSZ128rmbk = 6245,
+ VCVTDQ2PSZ128rmbkz = 6246,
+ VCVTDQ2PSZ128rmk = 6247,
+ VCVTDQ2PSZ128rmkz = 6248,
+ VCVTDQ2PSZ128rr = 6249,
+ VCVTDQ2PSZ128rrk = 6250,
+ VCVTDQ2PSZ128rrkz = 6251,
+ VCVTDQ2PSZ256rm = 6252,
+ VCVTDQ2PSZ256rmb = 6253,
+ VCVTDQ2PSZ256rmbk = 6254,
+ VCVTDQ2PSZ256rmbkz = 6255,
+ VCVTDQ2PSZ256rmk = 6256,
+ VCVTDQ2PSZ256rmkz = 6257,
+ VCVTDQ2PSZ256rr = 6258,
+ VCVTDQ2PSZ256rrk = 6259,
+ VCVTDQ2PSZ256rrkz = 6260,
+ VCVTDQ2PSZrm = 6261,
+ VCVTDQ2PSZrmb = 6262,
+ VCVTDQ2PSZrmbk = 6263,
+ VCVTDQ2PSZrmbkz = 6264,
+ VCVTDQ2PSZrmk = 6265,
+ VCVTDQ2PSZrmkz = 6266,
+ VCVTDQ2PSZrr = 6267,
+ VCVTDQ2PSZrrb = 6268,
+ VCVTDQ2PSZrrbk = 6269,
+ VCVTDQ2PSZrrbkz = 6270,
+ VCVTDQ2PSZrrk = 6271,
+ VCVTDQ2PSZrrkz = 6272,
+ VCVTDQ2PSrm = 6273,
+ VCVTDQ2PSrr = 6274,
+ VCVTHF82PHZ128rm = 6275,
+ VCVTHF82PHZ128rmk = 6276,
+ VCVTHF82PHZ128rmkz = 6277,
+ VCVTHF82PHZ128rr = 6278,
+ VCVTHF82PHZ128rrk = 6279,
+ VCVTHF82PHZ128rrkz = 6280,
+ VCVTHF82PHZ256rm = 6281,
+ VCVTHF82PHZ256rmk = 6282,
+ VCVTHF82PHZ256rmkz = 6283,
+ VCVTHF82PHZ256rr = 6284,
+ VCVTHF82PHZ256rrk = 6285,
+ VCVTHF82PHZ256rrkz = 6286,
+ VCVTHF82PHZrm = 6287,
+ VCVTHF82PHZrmk = 6288,
+ VCVTHF82PHZrmkz = 6289,
+ VCVTHF82PHZrr = 6290,
+ VCVTHF82PHZrrk = 6291,
+ VCVTHF82PHZrrkz = 6292,
+ VCVTNE2PS2BF16Z128rm = 6293,
+ VCVTNE2PS2BF16Z128rmb = 6294,
+ VCVTNE2PS2BF16Z128rmbk = 6295,
+ VCVTNE2PS2BF16Z128rmbkz = 6296,
+ VCVTNE2PS2BF16Z128rmk = 6297,
+ VCVTNE2PS2BF16Z128rmkz = 6298,
+ VCVTNE2PS2BF16Z128rr = 6299,
+ VCVTNE2PS2BF16Z128rrk = 6300,
+ VCVTNE2PS2BF16Z128rrkz = 6301,
+ VCVTNE2PS2BF16Z256rm = 6302,
+ VCVTNE2PS2BF16Z256rmb = 6303,
+ VCVTNE2PS2BF16Z256rmbk = 6304,
+ VCVTNE2PS2BF16Z256rmbkz = 6305,
+ VCVTNE2PS2BF16Z256rmk = 6306,
+ VCVTNE2PS2BF16Z256rmkz = 6307,
+ VCVTNE2PS2BF16Z256rr = 6308,
+ VCVTNE2PS2BF16Z256rrk = 6309,
+ VCVTNE2PS2BF16Z256rrkz = 6310,
+ VCVTNE2PS2BF16Zrm = 6311,
+ VCVTNE2PS2BF16Zrmb = 6312,
+ VCVTNE2PS2BF16Zrmbk = 6313,
+ VCVTNE2PS2BF16Zrmbkz = 6314,
+ VCVTNE2PS2BF16Zrmk = 6315,
+ VCVTNE2PS2BF16Zrmkz = 6316,
+ VCVTNE2PS2BF16Zrr = 6317,
+ VCVTNE2PS2BF16Zrrk = 6318,
+ VCVTNE2PS2BF16Zrrkz = 6319,
+ VCVTNEEBF162PSYrm = 6320,
+ VCVTNEEBF162PSrm = 6321,
+ VCVTNEEPH2PSYrm = 6322,
+ VCVTNEEPH2PSrm = 6323,
+ VCVTNEOBF162PSYrm = 6324,
+ VCVTNEOBF162PSrm = 6325,
+ VCVTNEOPH2PSYrm = 6326,
+ VCVTNEOPH2PSrm = 6327,
+ VCVTNEPS2BF16Yrm = 6328,
+ VCVTNEPS2BF16Yrr = 6329,
+ VCVTNEPS2BF16Z128rm = 6330,
+ VCVTNEPS2BF16Z128rmb = 6331,
+ VCVTNEPS2BF16Z128rmbk = 6332,
+ VCVTNEPS2BF16Z128rmbkz = 6333,
+ VCVTNEPS2BF16Z128rmk = 6334,
+ VCVTNEPS2BF16Z128rmkz = 6335,
+ VCVTNEPS2BF16Z128rr = 6336,
+ VCVTNEPS2BF16Z128rrk = 6337,
+ VCVTNEPS2BF16Z128rrkz = 6338,
+ VCVTNEPS2BF16Z256rm = 6339,
+ VCVTNEPS2BF16Z256rmb = 6340,
+ VCVTNEPS2BF16Z256rmbk = 6341,
+ VCVTNEPS2BF16Z256rmbkz = 6342,
+ VCVTNEPS2BF16Z256rmk = 6343,
+ VCVTNEPS2BF16Z256rmkz = 6344,
+ VCVTNEPS2BF16Z256rr = 6345,
+ VCVTNEPS2BF16Z256rrk = 6346,
+ VCVTNEPS2BF16Z256rrkz = 6347,
+ VCVTNEPS2BF16Zrm = 6348,
+ VCVTNEPS2BF16Zrmb = 6349,
+ VCVTNEPS2BF16Zrmbk = 6350,
+ VCVTNEPS2BF16Zrmbkz = 6351,
+ VCVTNEPS2BF16Zrmk = 6352,
+ VCVTNEPS2BF16Zrmkz = 6353,
+ VCVTNEPS2BF16Zrr = 6354,
+ VCVTNEPS2BF16Zrrk = 6355,
+ VCVTNEPS2BF16Zrrkz = 6356,
+ VCVTNEPS2BF16rm = 6357,
+ VCVTNEPS2BF16rr = 6358,
+ VCVTPD2DQYrm = 6359,
+ VCVTPD2DQYrr = 6360,
+ VCVTPD2DQZ128rm = 6361,
+ VCVTPD2DQZ128rmb = 6362,
+ VCVTPD2DQZ128rmbk = 6363,
+ VCVTPD2DQZ128rmbkz = 6364,
+ VCVTPD2DQZ128rmk = 6365,
+ VCVTPD2DQZ128rmkz = 6366,
+ VCVTPD2DQZ128rr = 6367,
+ VCVTPD2DQZ128rrk = 6368,
+ VCVTPD2DQZ128rrkz = 6369,
+ VCVTPD2DQZ256rm = 6370,
+ VCVTPD2DQZ256rmb = 6371,
+ VCVTPD2DQZ256rmbk = 6372,
+ VCVTPD2DQZ256rmbkz = 6373,
+ VCVTPD2DQZ256rmk = 6374,
+ VCVTPD2DQZ256rmkz = 6375,
+ VCVTPD2DQZ256rr = 6376,
+ VCVTPD2DQZ256rrk = 6377,
+ VCVTPD2DQZ256rrkz = 6378,
+ VCVTPD2DQZrm = 6379,
+ VCVTPD2DQZrmb = 6380,
+ VCVTPD2DQZrmbk = 6381,
+ VCVTPD2DQZrmbkz = 6382,
+ VCVTPD2DQZrmk = 6383,
+ VCVTPD2DQZrmkz = 6384,
+ VCVTPD2DQZrr = 6385,
+ VCVTPD2DQZrrb = 6386,
+ VCVTPD2DQZrrbk = 6387,
+ VCVTPD2DQZrrbkz = 6388,
+ VCVTPD2DQZrrk = 6389,
+ VCVTPD2DQZrrkz = 6390,
+ VCVTPD2DQrm = 6391,
+ VCVTPD2DQrr = 6392,
+ VCVTPD2PHZ128rm = 6393,
+ VCVTPD2PHZ128rmb = 6394,
+ VCVTPD2PHZ128rmbk = 6395,
+ VCVTPD2PHZ128rmbkz = 6396,
+ VCVTPD2PHZ128rmk = 6397,
+ VCVTPD2PHZ128rmkz = 6398,
+ VCVTPD2PHZ128rr = 6399,
+ VCVTPD2PHZ128rrk = 6400,
+ VCVTPD2PHZ128rrkz = 6401,
+ VCVTPD2PHZ256rm = 6402,
+ VCVTPD2PHZ256rmb = 6403,
+ VCVTPD2PHZ256rmbk = 6404,
+ VCVTPD2PHZ256rmbkz = 6405,
+ VCVTPD2PHZ256rmk = 6406,
+ VCVTPD2PHZ256rmkz = 6407,
+ VCVTPD2PHZ256rr = 6408,
+ VCVTPD2PHZ256rrk = 6409,
+ VCVTPD2PHZ256rrkz = 6410,
+ VCVTPD2PHZrm = 6411,
+ VCVTPD2PHZrmb = 6412,
+ VCVTPD2PHZrmbk = 6413,
+ VCVTPD2PHZrmbkz = 6414,
+ VCVTPD2PHZrmk = 6415,
+ VCVTPD2PHZrmkz = 6416,
+ VCVTPD2PHZrr = 6417,
+ VCVTPD2PHZrrb = 6418,
+ VCVTPD2PHZrrbk = 6419,
+ VCVTPD2PHZrrbkz = 6420,
+ VCVTPD2PHZrrk = 6421,
+ VCVTPD2PHZrrkz = 6422,
+ VCVTPD2PSYrm = 6423,
+ VCVTPD2PSYrr = 6424,
+ VCVTPD2PSZ128rm = 6425,
+ VCVTPD2PSZ128rmb = 6426,
+ VCVTPD2PSZ128rmbk = 6427,
+ VCVTPD2PSZ128rmbkz = 6428,
+ VCVTPD2PSZ128rmk = 6429,
+ VCVTPD2PSZ128rmkz = 6430,
+ VCVTPD2PSZ128rr = 6431,
+ VCVTPD2PSZ128rrk = 6432,
+ VCVTPD2PSZ128rrkz = 6433,
+ VCVTPD2PSZ256rm = 6434,
+ VCVTPD2PSZ256rmb = 6435,
+ VCVTPD2PSZ256rmbk = 6436,
+ VCVTPD2PSZ256rmbkz = 6437,
+ VCVTPD2PSZ256rmk = 6438,
+ VCVTPD2PSZ256rmkz = 6439,
+ VCVTPD2PSZ256rr = 6440,
+ VCVTPD2PSZ256rrk = 6441,
+ VCVTPD2PSZ256rrkz = 6442,
+ VCVTPD2PSZrm = 6443,
+ VCVTPD2PSZrmb = 6444,
+ VCVTPD2PSZrmbk = 6445,
+ VCVTPD2PSZrmbkz = 6446,
+ VCVTPD2PSZrmk = 6447,
+ VCVTPD2PSZrmkz = 6448,
+ VCVTPD2PSZrr = 6449,
+ VCVTPD2PSZrrb = 6450,
+ VCVTPD2PSZrrbk = 6451,
+ VCVTPD2PSZrrbkz = 6452,
+ VCVTPD2PSZrrk = 6453,
+ VCVTPD2PSZrrkz = 6454,
+ VCVTPD2PSrm = 6455,
+ VCVTPD2PSrr = 6456,
+ VCVTPD2QQZ128rm = 6457,
+ VCVTPD2QQZ128rmb = 6458,
+ VCVTPD2QQZ128rmbk = 6459,
+ VCVTPD2QQZ128rmbkz = 6460,
+ VCVTPD2QQZ128rmk = 6461,
+ VCVTPD2QQZ128rmkz = 6462,
+ VCVTPD2QQZ128rr = 6463,
+ VCVTPD2QQZ128rrk = 6464,
+ VCVTPD2QQZ128rrkz = 6465,
+ VCVTPD2QQZ256rm = 6466,
+ VCVTPD2QQZ256rmb = 6467,
+ VCVTPD2QQZ256rmbk = 6468,
+ VCVTPD2QQZ256rmbkz = 6469,
+ VCVTPD2QQZ256rmk = 6470,
+ VCVTPD2QQZ256rmkz = 6471,
+ VCVTPD2QQZ256rr = 6472,
+ VCVTPD2QQZ256rrk = 6473,
+ VCVTPD2QQZ256rrkz = 6474,
+ VCVTPD2QQZrm = 6475,
+ VCVTPD2QQZrmb = 6476,
+ VCVTPD2QQZrmbk = 6477,
+ VCVTPD2QQZrmbkz = 6478,
+ VCVTPD2QQZrmk = 6479,
+ VCVTPD2QQZrmkz = 6480,
+ VCVTPD2QQZrr = 6481,
+ VCVTPD2QQZrrb = 6482,
+ VCVTPD2QQZrrbk = 6483,
+ VCVTPD2QQZrrbkz = 6484,
+ VCVTPD2QQZrrk = 6485,
+ VCVTPD2QQZrrkz = 6486,
+ VCVTPD2UDQZ128rm = 6487,
+ VCVTPD2UDQZ128rmb = 6488,
+ VCVTPD2UDQZ128rmbk = 6489,
+ VCVTPD2UDQZ128rmbkz = 6490,
+ VCVTPD2UDQZ128rmk = 6491,
+ VCVTPD2UDQZ128rmkz = 6492,
+ VCVTPD2UDQZ128rr = 6493,
+ VCVTPD2UDQZ128rrk = 6494,
+ VCVTPD2UDQZ128rrkz = 6495,
+ VCVTPD2UDQZ256rm = 6496,
+ VCVTPD2UDQZ256rmb = 6497,
+ VCVTPD2UDQZ256rmbk = 6498,
+ VCVTPD2UDQZ256rmbkz = 6499,
+ VCVTPD2UDQZ256rmk = 6500,
+ VCVTPD2UDQZ256rmkz = 6501,
+ VCVTPD2UDQZ256rr = 6502,
+ VCVTPD2UDQZ256rrk = 6503,
+ VCVTPD2UDQZ256rrkz = 6504,
+ VCVTPD2UDQZrm = 6505,
+ VCVTPD2UDQZrmb = 6506,
+ VCVTPD2UDQZrmbk = 6507,
+ VCVTPD2UDQZrmbkz = 6508,
+ VCVTPD2UDQZrmk = 6509,
+ VCVTPD2UDQZrmkz = 6510,
+ VCVTPD2UDQZrr = 6511,
+ VCVTPD2UDQZrrb = 6512,
+ VCVTPD2UDQZrrbk = 6513,
+ VCVTPD2UDQZrrbkz = 6514,
+ VCVTPD2UDQZrrk = 6515,
+ VCVTPD2UDQZrrkz = 6516,
+ VCVTPD2UQQZ128rm = 6517,
+ VCVTPD2UQQZ128rmb = 6518,
+ VCVTPD2UQQZ128rmbk = 6519,
+ VCVTPD2UQQZ128rmbkz = 6520,
+ VCVTPD2UQQZ128rmk = 6521,
+ VCVTPD2UQQZ128rmkz = 6522,
+ VCVTPD2UQQZ128rr = 6523,
+ VCVTPD2UQQZ128rrk = 6524,
+ VCVTPD2UQQZ128rrkz = 6525,
+ VCVTPD2UQQZ256rm = 6526,
+ VCVTPD2UQQZ256rmb = 6527,
+ VCVTPD2UQQZ256rmbk = 6528,
+ VCVTPD2UQQZ256rmbkz = 6529,
+ VCVTPD2UQQZ256rmk = 6530,
+ VCVTPD2UQQZ256rmkz = 6531,
+ VCVTPD2UQQZ256rr = 6532,
+ VCVTPD2UQQZ256rrk = 6533,
+ VCVTPD2UQQZ256rrkz = 6534,
+ VCVTPD2UQQZrm = 6535,
+ VCVTPD2UQQZrmb = 6536,
+ VCVTPD2UQQZrmbk = 6537,
+ VCVTPD2UQQZrmbkz = 6538,
+ VCVTPD2UQQZrmk = 6539,
+ VCVTPD2UQQZrmkz = 6540,
+ VCVTPD2UQQZrr = 6541,
+ VCVTPD2UQQZrrb = 6542,
+ VCVTPD2UQQZrrbk = 6543,
+ VCVTPD2UQQZrrbkz = 6544,
+ VCVTPD2UQQZrrk = 6545,
+ VCVTPD2UQQZrrkz = 6546,
+ VCVTPH2BF8SZ128rm = 6547,
+ VCVTPH2BF8SZ128rmb = 6548,
+ VCVTPH2BF8SZ128rmbk = 6549,
+ VCVTPH2BF8SZ128rmbkz = 6550,
+ VCVTPH2BF8SZ128rmk = 6551,
+ VCVTPH2BF8SZ128rmkz = 6552,
+ VCVTPH2BF8SZ128rr = 6553,
+ VCVTPH2BF8SZ128rrk = 6554,
+ VCVTPH2BF8SZ128rrkz = 6555,
+ VCVTPH2BF8SZ256rm = 6556,
+ VCVTPH2BF8SZ256rmb = 6557,
+ VCVTPH2BF8SZ256rmbk = 6558,
+ VCVTPH2BF8SZ256rmbkz = 6559,
+ VCVTPH2BF8SZ256rmk = 6560,
+ VCVTPH2BF8SZ256rmkz = 6561,
+ VCVTPH2BF8SZ256rr = 6562,
+ VCVTPH2BF8SZ256rrk = 6563,
+ VCVTPH2BF8SZ256rrkz = 6564,
+ VCVTPH2BF8SZrm = 6565,
+ VCVTPH2BF8SZrmb = 6566,
+ VCVTPH2BF8SZrmbk = 6567,
+ VCVTPH2BF8SZrmbkz = 6568,
+ VCVTPH2BF8SZrmk = 6569,
+ VCVTPH2BF8SZrmkz = 6570,
+ VCVTPH2BF8SZrr = 6571,
+ VCVTPH2BF8SZrrk = 6572,
+ VCVTPH2BF8SZrrkz = 6573,
+ VCVTPH2BF8Z128rm = 6574,
+ VCVTPH2BF8Z128rmb = 6575,
+ VCVTPH2BF8Z128rmbk = 6576,
+ VCVTPH2BF8Z128rmbkz = 6577,
+ VCVTPH2BF8Z128rmk = 6578,
+ VCVTPH2BF8Z128rmkz = 6579,
+ VCVTPH2BF8Z128rr = 6580,
+ VCVTPH2BF8Z128rrk = 6581,
+ VCVTPH2BF8Z128rrkz = 6582,
+ VCVTPH2BF8Z256rm = 6583,
+ VCVTPH2BF8Z256rmb = 6584,
+ VCVTPH2BF8Z256rmbk = 6585,
+ VCVTPH2BF8Z256rmbkz = 6586,
+ VCVTPH2BF8Z256rmk = 6587,
+ VCVTPH2BF8Z256rmkz = 6588,
+ VCVTPH2BF8Z256rr = 6589,
+ VCVTPH2BF8Z256rrk = 6590,
+ VCVTPH2BF8Z256rrkz = 6591,
+ VCVTPH2BF8Zrm = 6592,
+ VCVTPH2BF8Zrmb = 6593,
+ VCVTPH2BF8Zrmbk = 6594,
+ VCVTPH2BF8Zrmbkz = 6595,
+ VCVTPH2BF8Zrmk = 6596,
+ VCVTPH2BF8Zrmkz = 6597,
+ VCVTPH2BF8Zrr = 6598,
+ VCVTPH2BF8Zrrk = 6599,
+ VCVTPH2BF8Zrrkz = 6600,
+ VCVTPH2DQZ128rm = 6601,
+ VCVTPH2DQZ128rmb = 6602,
+ VCVTPH2DQZ128rmbk = 6603,
+ VCVTPH2DQZ128rmbkz = 6604,
+ VCVTPH2DQZ128rmk = 6605,
+ VCVTPH2DQZ128rmkz = 6606,
+ VCVTPH2DQZ128rr = 6607,
+ VCVTPH2DQZ128rrk = 6608,
+ VCVTPH2DQZ128rrkz = 6609,
+ VCVTPH2DQZ256rm = 6610,
+ VCVTPH2DQZ256rmb = 6611,
+ VCVTPH2DQZ256rmbk = 6612,
+ VCVTPH2DQZ256rmbkz = 6613,
+ VCVTPH2DQZ256rmk = 6614,
+ VCVTPH2DQZ256rmkz = 6615,
+ VCVTPH2DQZ256rr = 6616,
+ VCVTPH2DQZ256rrk = 6617,
+ VCVTPH2DQZ256rrkz = 6618,
+ VCVTPH2DQZrm = 6619,
+ VCVTPH2DQZrmb = 6620,
+ VCVTPH2DQZrmbk = 6621,
+ VCVTPH2DQZrmbkz = 6622,
+ VCVTPH2DQZrmk = 6623,
+ VCVTPH2DQZrmkz = 6624,
+ VCVTPH2DQZrr = 6625,
+ VCVTPH2DQZrrb = 6626,
+ VCVTPH2DQZrrbk = 6627,
+ VCVTPH2DQZrrbkz = 6628,
+ VCVTPH2DQZrrk = 6629,
+ VCVTPH2DQZrrkz = 6630,
+ VCVTPH2HF8SZ128rm = 6631,
+ VCVTPH2HF8SZ128rmb = 6632,
+ VCVTPH2HF8SZ128rmbk = 6633,
+ VCVTPH2HF8SZ128rmbkz = 6634,
+ VCVTPH2HF8SZ128rmk = 6635,
+ VCVTPH2HF8SZ128rmkz = 6636,
+ VCVTPH2HF8SZ128rr = 6637,
+ VCVTPH2HF8SZ128rrk = 6638,
+ VCVTPH2HF8SZ128rrkz = 6639,
+ VCVTPH2HF8SZ256rm = 6640,
+ VCVTPH2HF8SZ256rmb = 6641,
+ VCVTPH2HF8SZ256rmbk = 6642,
+ VCVTPH2HF8SZ256rmbkz = 6643,
+ VCVTPH2HF8SZ256rmk = 6644,
+ VCVTPH2HF8SZ256rmkz = 6645,
+ VCVTPH2HF8SZ256rr = 6646,
+ VCVTPH2HF8SZ256rrk = 6647,
+ VCVTPH2HF8SZ256rrkz = 6648,
+ VCVTPH2HF8SZrm = 6649,
+ VCVTPH2HF8SZrmb = 6650,
+ VCVTPH2HF8SZrmbk = 6651,
+ VCVTPH2HF8SZrmbkz = 6652,
+ VCVTPH2HF8SZrmk = 6653,
+ VCVTPH2HF8SZrmkz = 6654,
+ VCVTPH2HF8SZrr = 6655,
+ VCVTPH2HF8SZrrk = 6656,
+ VCVTPH2HF8SZrrkz = 6657,
+ VCVTPH2HF8Z128rm = 6658,
+ VCVTPH2HF8Z128rmb = 6659,
+ VCVTPH2HF8Z128rmbk = 6660,
+ VCVTPH2HF8Z128rmbkz = 6661,
+ VCVTPH2HF8Z128rmk = 6662,
+ VCVTPH2HF8Z128rmkz = 6663,
+ VCVTPH2HF8Z128rr = 6664,
+ VCVTPH2HF8Z128rrk = 6665,
+ VCVTPH2HF8Z128rrkz = 6666,
+ VCVTPH2HF8Z256rm = 6667,
+ VCVTPH2HF8Z256rmb = 6668,
+ VCVTPH2HF8Z256rmbk = 6669,
+ VCVTPH2HF8Z256rmbkz = 6670,
+ VCVTPH2HF8Z256rmk = 6671,
+ VCVTPH2HF8Z256rmkz = 6672,
+ VCVTPH2HF8Z256rr = 6673,
+ VCVTPH2HF8Z256rrk = 6674,
+ VCVTPH2HF8Z256rrkz = 6675,
+ VCVTPH2HF8Zrm = 6676,
+ VCVTPH2HF8Zrmb = 6677,
+ VCVTPH2HF8Zrmbk = 6678,
+ VCVTPH2HF8Zrmbkz = 6679,
+ VCVTPH2HF8Zrmk = 6680,
+ VCVTPH2HF8Zrmkz = 6681,
+ VCVTPH2HF8Zrr = 6682,
+ VCVTPH2HF8Zrrk = 6683,
+ VCVTPH2HF8Zrrkz = 6684,
+ VCVTPH2IBSZ128rm = 6685,
+ VCVTPH2IBSZ128rmb = 6686,
+ VCVTPH2IBSZ128rmbk = 6687,
+ VCVTPH2IBSZ128rmbkz = 6688,
+ VCVTPH2IBSZ128rmk = 6689,
+ VCVTPH2IBSZ128rmkz = 6690,
+ VCVTPH2IBSZ128rr = 6691,
+ VCVTPH2IBSZ128rrk = 6692,
+ VCVTPH2IBSZ128rrkz = 6693,
+ VCVTPH2IBSZ256rm = 6694,
+ VCVTPH2IBSZ256rmb = 6695,
+ VCVTPH2IBSZ256rmbk = 6696,
+ VCVTPH2IBSZ256rmbkz = 6697,
+ VCVTPH2IBSZ256rmk = 6698,
+ VCVTPH2IBSZ256rmkz = 6699,
+ VCVTPH2IBSZ256rr = 6700,
+ VCVTPH2IBSZ256rrk = 6701,
+ VCVTPH2IBSZ256rrkz = 6702,
+ VCVTPH2IBSZrm = 6703,
+ VCVTPH2IBSZrmb = 6704,
+ VCVTPH2IBSZrmbk = 6705,
+ VCVTPH2IBSZrmbkz = 6706,
+ VCVTPH2IBSZrmk = 6707,
+ VCVTPH2IBSZrmkz = 6708,
+ VCVTPH2IBSZrr = 6709,
+ VCVTPH2IBSZrrb = 6710,
+ VCVTPH2IBSZrrbk = 6711,
+ VCVTPH2IBSZrrbkz = 6712,
+ VCVTPH2IBSZrrk = 6713,
+ VCVTPH2IBSZrrkz = 6714,
+ VCVTPH2IUBSZ128rm = 6715,
+ VCVTPH2IUBSZ128rmb = 6716,
+ VCVTPH2IUBSZ128rmbk = 6717,
+ VCVTPH2IUBSZ128rmbkz = 6718,
+ VCVTPH2IUBSZ128rmk = 6719,
+ VCVTPH2IUBSZ128rmkz = 6720,
+ VCVTPH2IUBSZ128rr = 6721,
+ VCVTPH2IUBSZ128rrk = 6722,
+ VCVTPH2IUBSZ128rrkz = 6723,
+ VCVTPH2IUBSZ256rm = 6724,
+ VCVTPH2IUBSZ256rmb = 6725,
+ VCVTPH2IUBSZ256rmbk = 6726,
+ VCVTPH2IUBSZ256rmbkz = 6727,
+ VCVTPH2IUBSZ256rmk = 6728,
+ VCVTPH2IUBSZ256rmkz = 6729,
+ VCVTPH2IUBSZ256rr = 6730,
+ VCVTPH2IUBSZ256rrk = 6731,
+ VCVTPH2IUBSZ256rrkz = 6732,
+ VCVTPH2IUBSZrm = 6733,
+ VCVTPH2IUBSZrmb = 6734,
+ VCVTPH2IUBSZrmbk = 6735,
+ VCVTPH2IUBSZrmbkz = 6736,
+ VCVTPH2IUBSZrmk = 6737,
+ VCVTPH2IUBSZrmkz = 6738,
+ VCVTPH2IUBSZrr = 6739,
+ VCVTPH2IUBSZrrb = 6740,
+ VCVTPH2IUBSZrrbk = 6741,
+ VCVTPH2IUBSZrrbkz = 6742,
+ VCVTPH2IUBSZrrk = 6743,
+ VCVTPH2IUBSZrrkz = 6744,
+ VCVTPH2PDZ128rm = 6745,
+ VCVTPH2PDZ128rmb = 6746,
+ VCVTPH2PDZ128rmbk = 6747,
+ VCVTPH2PDZ128rmbkz = 6748,
+ VCVTPH2PDZ128rmk = 6749,
+ VCVTPH2PDZ128rmkz = 6750,
+ VCVTPH2PDZ128rr = 6751,
+ VCVTPH2PDZ128rrk = 6752,
+ VCVTPH2PDZ128rrkz = 6753,
+ VCVTPH2PDZ256rm = 6754,
+ VCVTPH2PDZ256rmb = 6755,
+ VCVTPH2PDZ256rmbk = 6756,
+ VCVTPH2PDZ256rmbkz = 6757,
+ VCVTPH2PDZ256rmk = 6758,
+ VCVTPH2PDZ256rmkz = 6759,
+ VCVTPH2PDZ256rr = 6760,
+ VCVTPH2PDZ256rrk = 6761,
+ VCVTPH2PDZ256rrkz = 6762,
+ VCVTPH2PDZrm = 6763,
+ VCVTPH2PDZrmb = 6764,
+ VCVTPH2PDZrmbk = 6765,
+ VCVTPH2PDZrmbkz = 6766,
+ VCVTPH2PDZrmk = 6767,
+ VCVTPH2PDZrmkz = 6768,
+ VCVTPH2PDZrr = 6769,
+ VCVTPH2PDZrrb = 6770,
+ VCVTPH2PDZrrbk = 6771,
+ VCVTPH2PDZrrbkz = 6772,
+ VCVTPH2PDZrrk = 6773,
+ VCVTPH2PDZrrkz = 6774,
+ VCVTPH2PSXZ128rm = 6775,
+ VCVTPH2PSXZ128rmb = 6776,
+ VCVTPH2PSXZ128rmbk = 6777,
+ VCVTPH2PSXZ128rmbkz = 6778,
+ VCVTPH2PSXZ128rmk = 6779,
+ VCVTPH2PSXZ128rmkz = 6780,
+ VCVTPH2PSXZ128rr = 6781,
+ VCVTPH2PSXZ128rrk = 6782,
+ VCVTPH2PSXZ128rrkz = 6783,
+ VCVTPH2PSXZ256rm = 6784,
+ VCVTPH2PSXZ256rmb = 6785,
+ VCVTPH2PSXZ256rmbk = 6786,
+ VCVTPH2PSXZ256rmbkz = 6787,
+ VCVTPH2PSXZ256rmk = 6788,
+ VCVTPH2PSXZ256rmkz = 6789,
+ VCVTPH2PSXZ256rr = 6790,
+ VCVTPH2PSXZ256rrk = 6791,
+ VCVTPH2PSXZ256rrkz = 6792,
+ VCVTPH2PSXZrm = 6793,
+ VCVTPH2PSXZrmb = 6794,
+ VCVTPH2PSXZrmbk = 6795,
+ VCVTPH2PSXZrmbkz = 6796,
+ VCVTPH2PSXZrmk = 6797,
+ VCVTPH2PSXZrmkz = 6798,
+ VCVTPH2PSXZrr = 6799,
+ VCVTPH2PSXZrrb = 6800,
+ VCVTPH2PSXZrrbk = 6801,
+ VCVTPH2PSXZrrbkz = 6802,
+ VCVTPH2PSXZrrk = 6803,
+ VCVTPH2PSXZrrkz = 6804,
+ VCVTPH2PSYrm = 6805,
+ VCVTPH2PSYrr = 6806,
+ VCVTPH2PSZ128rm = 6807,
+ VCVTPH2PSZ128rmk = 6808,
+ VCVTPH2PSZ128rmkz = 6809,
+ VCVTPH2PSZ128rr = 6810,
+ VCVTPH2PSZ128rrk = 6811,
+ VCVTPH2PSZ128rrkz = 6812,
+ VCVTPH2PSZ256rm = 6813,
+ VCVTPH2PSZ256rmk = 6814,
+ VCVTPH2PSZ256rmkz = 6815,
+ VCVTPH2PSZ256rr = 6816,
+ VCVTPH2PSZ256rrk = 6817,
+ VCVTPH2PSZ256rrkz = 6818,
+ VCVTPH2PSZrm = 6819,
+ VCVTPH2PSZrmk = 6820,
+ VCVTPH2PSZrmkz = 6821,
+ VCVTPH2PSZrr = 6822,
+ VCVTPH2PSZrrb = 6823,
+ VCVTPH2PSZrrbk = 6824,
+ VCVTPH2PSZrrbkz = 6825,
+ VCVTPH2PSZrrk = 6826,
+ VCVTPH2PSZrrkz = 6827,
+ VCVTPH2PSrm = 6828,
+ VCVTPH2PSrr = 6829,
+ VCVTPH2QQZ128rm = 6830,
+ VCVTPH2QQZ128rmb = 6831,
+ VCVTPH2QQZ128rmbk = 6832,
+ VCVTPH2QQZ128rmbkz = 6833,
+ VCVTPH2QQZ128rmk = 6834,
+ VCVTPH2QQZ128rmkz = 6835,
+ VCVTPH2QQZ128rr = 6836,
+ VCVTPH2QQZ128rrk = 6837,
+ VCVTPH2QQZ128rrkz = 6838,
+ VCVTPH2QQZ256rm = 6839,
+ VCVTPH2QQZ256rmb = 6840,
+ VCVTPH2QQZ256rmbk = 6841,
+ VCVTPH2QQZ256rmbkz = 6842,
+ VCVTPH2QQZ256rmk = 6843,
+ VCVTPH2QQZ256rmkz = 6844,
+ VCVTPH2QQZ256rr = 6845,
+ VCVTPH2QQZ256rrk = 6846,
+ VCVTPH2QQZ256rrkz = 6847,
+ VCVTPH2QQZrm = 6848,
+ VCVTPH2QQZrmb = 6849,
+ VCVTPH2QQZrmbk = 6850,
+ VCVTPH2QQZrmbkz = 6851,
+ VCVTPH2QQZrmk = 6852,
+ VCVTPH2QQZrmkz = 6853,
+ VCVTPH2QQZrr = 6854,
+ VCVTPH2QQZrrb = 6855,
+ VCVTPH2QQZrrbk = 6856,
+ VCVTPH2QQZrrbkz = 6857,
+ VCVTPH2QQZrrk = 6858,
+ VCVTPH2QQZrrkz = 6859,
+ VCVTPH2UDQZ128rm = 6860,
+ VCVTPH2UDQZ128rmb = 6861,
+ VCVTPH2UDQZ128rmbk = 6862,
+ VCVTPH2UDQZ128rmbkz = 6863,
+ VCVTPH2UDQZ128rmk = 6864,
+ VCVTPH2UDQZ128rmkz = 6865,
+ VCVTPH2UDQZ128rr = 6866,
+ VCVTPH2UDQZ128rrk = 6867,
+ VCVTPH2UDQZ128rrkz = 6868,
+ VCVTPH2UDQZ256rm = 6869,
+ VCVTPH2UDQZ256rmb = 6870,
+ VCVTPH2UDQZ256rmbk = 6871,
+ VCVTPH2UDQZ256rmbkz = 6872,
+ VCVTPH2UDQZ256rmk = 6873,
+ VCVTPH2UDQZ256rmkz = 6874,
+ VCVTPH2UDQZ256rr = 6875,
+ VCVTPH2UDQZ256rrk = 6876,
+ VCVTPH2UDQZ256rrkz = 6877,
+ VCVTPH2UDQZrm = 6878,
+ VCVTPH2UDQZrmb = 6879,
+ VCVTPH2UDQZrmbk = 6880,
+ VCVTPH2UDQZrmbkz = 6881,
+ VCVTPH2UDQZrmk = 6882,
+ VCVTPH2UDQZrmkz = 6883,
+ VCVTPH2UDQZrr = 6884,
+ VCVTPH2UDQZrrb = 6885,
+ VCVTPH2UDQZrrbk = 6886,
+ VCVTPH2UDQZrrbkz = 6887,
+ VCVTPH2UDQZrrk = 6888,
+ VCVTPH2UDQZrrkz = 6889,
+ VCVTPH2UQQZ128rm = 6890,
+ VCVTPH2UQQZ128rmb = 6891,
+ VCVTPH2UQQZ128rmbk = 6892,
+ VCVTPH2UQQZ128rmbkz = 6893,
+ VCVTPH2UQQZ128rmk = 6894,
+ VCVTPH2UQQZ128rmkz = 6895,
+ VCVTPH2UQQZ128rr = 6896,
+ VCVTPH2UQQZ128rrk = 6897,
+ VCVTPH2UQQZ128rrkz = 6898,
+ VCVTPH2UQQZ256rm = 6899,
+ VCVTPH2UQQZ256rmb = 6900,
+ VCVTPH2UQQZ256rmbk = 6901,
+ VCVTPH2UQQZ256rmbkz = 6902,
+ VCVTPH2UQQZ256rmk = 6903,
+ VCVTPH2UQQZ256rmkz = 6904,
+ VCVTPH2UQQZ256rr = 6905,
+ VCVTPH2UQQZ256rrk = 6906,
+ VCVTPH2UQQZ256rrkz = 6907,
+ VCVTPH2UQQZrm = 6908,
+ VCVTPH2UQQZrmb = 6909,
+ VCVTPH2UQQZrmbk = 6910,
+ VCVTPH2UQQZrmbkz = 6911,
+ VCVTPH2UQQZrmk = 6912,
+ VCVTPH2UQQZrmkz = 6913,
+ VCVTPH2UQQZrr = 6914,
+ VCVTPH2UQQZrrb = 6915,
+ VCVTPH2UQQZrrbk = 6916,
+ VCVTPH2UQQZrrbkz = 6917,
+ VCVTPH2UQQZrrk = 6918,
+ VCVTPH2UQQZrrkz = 6919,
+ VCVTPH2UWZ128rm = 6920,
+ VCVTPH2UWZ128rmb = 6921,
+ VCVTPH2UWZ128rmbk = 6922,
+ VCVTPH2UWZ128rmbkz = 6923,
+ VCVTPH2UWZ128rmk = 6924,
+ VCVTPH2UWZ128rmkz = 6925,
+ VCVTPH2UWZ128rr = 6926,
+ VCVTPH2UWZ128rrk = 6927,
+ VCVTPH2UWZ128rrkz = 6928,
+ VCVTPH2UWZ256rm = 6929,
+ VCVTPH2UWZ256rmb = 6930,
+ VCVTPH2UWZ256rmbk = 6931,
+ VCVTPH2UWZ256rmbkz = 6932,
+ VCVTPH2UWZ256rmk = 6933,
+ VCVTPH2UWZ256rmkz = 6934,
+ VCVTPH2UWZ256rr = 6935,
+ VCVTPH2UWZ256rrk = 6936,
+ VCVTPH2UWZ256rrkz = 6937,
+ VCVTPH2UWZrm = 6938,
+ VCVTPH2UWZrmb = 6939,
+ VCVTPH2UWZrmbk = 6940,
+ VCVTPH2UWZrmbkz = 6941,
+ VCVTPH2UWZrmk = 6942,
+ VCVTPH2UWZrmkz = 6943,
+ VCVTPH2UWZrr = 6944,
+ VCVTPH2UWZrrb = 6945,
+ VCVTPH2UWZrrbk = 6946,
+ VCVTPH2UWZrrbkz = 6947,
+ VCVTPH2UWZrrk = 6948,
+ VCVTPH2UWZrrkz = 6949,
+ VCVTPH2WZ128rm = 6950,
+ VCVTPH2WZ128rmb = 6951,
+ VCVTPH2WZ128rmbk = 6952,
+ VCVTPH2WZ128rmbkz = 6953,
+ VCVTPH2WZ128rmk = 6954,
+ VCVTPH2WZ128rmkz = 6955,
+ VCVTPH2WZ128rr = 6956,
+ VCVTPH2WZ128rrk = 6957,
+ VCVTPH2WZ128rrkz = 6958,
+ VCVTPH2WZ256rm = 6959,
+ VCVTPH2WZ256rmb = 6960,
+ VCVTPH2WZ256rmbk = 6961,
+ VCVTPH2WZ256rmbkz = 6962,
+ VCVTPH2WZ256rmk = 6963,
+ VCVTPH2WZ256rmkz = 6964,
+ VCVTPH2WZ256rr = 6965,
+ VCVTPH2WZ256rrk = 6966,
+ VCVTPH2WZ256rrkz = 6967,
+ VCVTPH2WZrm = 6968,
+ VCVTPH2WZrmb = 6969,
+ VCVTPH2WZrmbk = 6970,
+ VCVTPH2WZrmbkz = 6971,
+ VCVTPH2WZrmk = 6972,
+ VCVTPH2WZrmkz = 6973,
+ VCVTPH2WZrr = 6974,
+ VCVTPH2WZrrb = 6975,
+ VCVTPH2WZrrbk = 6976,
+ VCVTPH2WZrrbkz = 6977,
+ VCVTPH2WZrrk = 6978,
+ VCVTPH2WZrrkz = 6979,
+ VCVTPS2DQYrm = 6980,
+ VCVTPS2DQYrr = 6981,
+ VCVTPS2DQZ128rm = 6982,
+ VCVTPS2DQZ128rmb = 6983,
+ VCVTPS2DQZ128rmbk = 6984,
+ VCVTPS2DQZ128rmbkz = 6985,
+ VCVTPS2DQZ128rmk = 6986,
+ VCVTPS2DQZ128rmkz = 6987,
+ VCVTPS2DQZ128rr = 6988,
+ VCVTPS2DQZ128rrk = 6989,
+ VCVTPS2DQZ128rrkz = 6990,
+ VCVTPS2DQZ256rm = 6991,
+ VCVTPS2DQZ256rmb = 6992,
+ VCVTPS2DQZ256rmbk = 6993,
+ VCVTPS2DQZ256rmbkz = 6994,
+ VCVTPS2DQZ256rmk = 6995,
+ VCVTPS2DQZ256rmkz = 6996,
+ VCVTPS2DQZ256rr = 6997,
+ VCVTPS2DQZ256rrk = 6998,
+ VCVTPS2DQZ256rrkz = 6999,
+ VCVTPS2DQZrm = 7000,
+ VCVTPS2DQZrmb = 7001,
+ VCVTPS2DQZrmbk = 7002,
+ VCVTPS2DQZrmbkz = 7003,
+ VCVTPS2DQZrmk = 7004,
+ VCVTPS2DQZrmkz = 7005,
+ VCVTPS2DQZrr = 7006,
+ VCVTPS2DQZrrb = 7007,
+ VCVTPS2DQZrrbk = 7008,
+ VCVTPS2DQZrrbkz = 7009,
+ VCVTPS2DQZrrk = 7010,
+ VCVTPS2DQZrrkz = 7011,
+ VCVTPS2DQrm = 7012,
+ VCVTPS2DQrr = 7013,
+ VCVTPS2IBSZ128rm = 7014,
+ VCVTPS2IBSZ128rmb = 7015,
+ VCVTPS2IBSZ128rmbk = 7016,
+ VCVTPS2IBSZ128rmbkz = 7017,
+ VCVTPS2IBSZ128rmk = 7018,
+ VCVTPS2IBSZ128rmkz = 7019,
+ VCVTPS2IBSZ128rr = 7020,
+ VCVTPS2IBSZ128rrk = 7021,
+ VCVTPS2IBSZ128rrkz = 7022,
+ VCVTPS2IBSZ256rm = 7023,
+ VCVTPS2IBSZ256rmb = 7024,
+ VCVTPS2IBSZ256rmbk = 7025,
+ VCVTPS2IBSZ256rmbkz = 7026,
+ VCVTPS2IBSZ256rmk = 7027,
+ VCVTPS2IBSZ256rmkz = 7028,
+ VCVTPS2IBSZ256rr = 7029,
+ VCVTPS2IBSZ256rrk = 7030,
+ VCVTPS2IBSZ256rrkz = 7031,
+ VCVTPS2IBSZrm = 7032,
+ VCVTPS2IBSZrmb = 7033,
+ VCVTPS2IBSZrmbk = 7034,
+ VCVTPS2IBSZrmbkz = 7035,
+ VCVTPS2IBSZrmk = 7036,
+ VCVTPS2IBSZrmkz = 7037,
+ VCVTPS2IBSZrr = 7038,
+ VCVTPS2IBSZrrb = 7039,
+ VCVTPS2IBSZrrbk = 7040,
+ VCVTPS2IBSZrrbkz = 7041,
+ VCVTPS2IBSZrrk = 7042,
+ VCVTPS2IBSZrrkz = 7043,
+ VCVTPS2IUBSZ128rm = 7044,
+ VCVTPS2IUBSZ128rmb = 7045,
+ VCVTPS2IUBSZ128rmbk = 7046,
+ VCVTPS2IUBSZ128rmbkz = 7047,
+ VCVTPS2IUBSZ128rmk = 7048,
+ VCVTPS2IUBSZ128rmkz = 7049,
+ VCVTPS2IUBSZ128rr = 7050,
+ VCVTPS2IUBSZ128rrk = 7051,
+ VCVTPS2IUBSZ128rrkz = 7052,
+ VCVTPS2IUBSZ256rm = 7053,
+ VCVTPS2IUBSZ256rmb = 7054,
+ VCVTPS2IUBSZ256rmbk = 7055,
+ VCVTPS2IUBSZ256rmbkz = 7056,
+ VCVTPS2IUBSZ256rmk = 7057,
+ VCVTPS2IUBSZ256rmkz = 7058,
+ VCVTPS2IUBSZ256rr = 7059,
+ VCVTPS2IUBSZ256rrk = 7060,
+ VCVTPS2IUBSZ256rrkz = 7061,
+ VCVTPS2IUBSZrm = 7062,
+ VCVTPS2IUBSZrmb = 7063,
+ VCVTPS2IUBSZrmbk = 7064,
+ VCVTPS2IUBSZrmbkz = 7065,
+ VCVTPS2IUBSZrmk = 7066,
+ VCVTPS2IUBSZrmkz = 7067,
+ VCVTPS2IUBSZrr = 7068,
+ VCVTPS2IUBSZrrb = 7069,
+ VCVTPS2IUBSZrrbk = 7070,
+ VCVTPS2IUBSZrrbkz = 7071,
+ VCVTPS2IUBSZrrk = 7072,
+ VCVTPS2IUBSZrrkz = 7073,
+ VCVTPS2PDYrm = 7074,
+ VCVTPS2PDYrr = 7075,
+ VCVTPS2PDZ128rm = 7076,
+ VCVTPS2PDZ128rmb = 7077,
+ VCVTPS2PDZ128rmbk = 7078,
+ VCVTPS2PDZ128rmbkz = 7079,
+ VCVTPS2PDZ128rmk = 7080,
+ VCVTPS2PDZ128rmkz = 7081,
+ VCVTPS2PDZ128rr = 7082,
+ VCVTPS2PDZ128rrk = 7083,
+ VCVTPS2PDZ128rrkz = 7084,
+ VCVTPS2PDZ256rm = 7085,
+ VCVTPS2PDZ256rmb = 7086,
+ VCVTPS2PDZ256rmbk = 7087,
+ VCVTPS2PDZ256rmbkz = 7088,
+ VCVTPS2PDZ256rmk = 7089,
+ VCVTPS2PDZ256rmkz = 7090,
+ VCVTPS2PDZ256rr = 7091,
+ VCVTPS2PDZ256rrk = 7092,
+ VCVTPS2PDZ256rrkz = 7093,
+ VCVTPS2PDZrm = 7094,
+ VCVTPS2PDZrmb = 7095,
+ VCVTPS2PDZrmbk = 7096,
+ VCVTPS2PDZrmbkz = 7097,
+ VCVTPS2PDZrmk = 7098,
+ VCVTPS2PDZrmkz = 7099,
+ VCVTPS2PDZrr = 7100,
+ VCVTPS2PDZrrb = 7101,
+ VCVTPS2PDZrrbk = 7102,
+ VCVTPS2PDZrrbkz = 7103,
+ VCVTPS2PDZrrk = 7104,
+ VCVTPS2PDZrrkz = 7105,
+ VCVTPS2PDrm = 7106,
+ VCVTPS2PDrr = 7107,
+ VCVTPS2PHXZ128rm = 7108,
+ VCVTPS2PHXZ128rmb = 7109,
+ VCVTPS2PHXZ128rmbk = 7110,
+ VCVTPS2PHXZ128rmbkz = 7111,
+ VCVTPS2PHXZ128rmk = 7112,
+ VCVTPS2PHXZ128rmkz = 7113,
+ VCVTPS2PHXZ128rr = 7114,
+ VCVTPS2PHXZ128rrk = 7115,
+ VCVTPS2PHXZ128rrkz = 7116,
+ VCVTPS2PHXZ256rm = 7117,
+ VCVTPS2PHXZ256rmb = 7118,
+ VCVTPS2PHXZ256rmbk = 7119,
+ VCVTPS2PHXZ256rmbkz = 7120,
+ VCVTPS2PHXZ256rmk = 7121,
+ VCVTPS2PHXZ256rmkz = 7122,
+ VCVTPS2PHXZ256rr = 7123,
+ VCVTPS2PHXZ256rrk = 7124,
+ VCVTPS2PHXZ256rrkz = 7125,
+ VCVTPS2PHXZrm = 7126,
+ VCVTPS2PHXZrmb = 7127,
+ VCVTPS2PHXZrmbk = 7128,
+ VCVTPS2PHXZrmbkz = 7129,
+ VCVTPS2PHXZrmk = 7130,
+ VCVTPS2PHXZrmkz = 7131,
+ VCVTPS2PHXZrr = 7132,
+ VCVTPS2PHXZrrb = 7133,
+ VCVTPS2PHXZrrbk = 7134,
+ VCVTPS2PHXZrrbkz = 7135,
+ VCVTPS2PHXZrrk = 7136,
+ VCVTPS2PHXZrrkz = 7137,
+ VCVTPS2PHYmr = 7138,
+ VCVTPS2PHYrr = 7139,
+ VCVTPS2PHZ128mr = 7140,
+ VCVTPS2PHZ128mrk = 7141,
+ VCVTPS2PHZ128rr = 7142,
+ VCVTPS2PHZ128rrk = 7143,
+ VCVTPS2PHZ128rrkz = 7144,
+ VCVTPS2PHZ256mr = 7145,
+ VCVTPS2PHZ256mrk = 7146,
+ VCVTPS2PHZ256rr = 7147,
+ VCVTPS2PHZ256rrk = 7148,
+ VCVTPS2PHZ256rrkz = 7149,
+ VCVTPS2PHZmr = 7150,
+ VCVTPS2PHZmrk = 7151,
+ VCVTPS2PHZrr = 7152,
+ VCVTPS2PHZrrb = 7153,
+ VCVTPS2PHZrrbk = 7154,
+ VCVTPS2PHZrrbkz = 7155,
+ VCVTPS2PHZrrk = 7156,
+ VCVTPS2PHZrrkz = 7157,
+ VCVTPS2PHmr = 7158,
+ VCVTPS2PHrr = 7159,
+ VCVTPS2QQZ128rm = 7160,
+ VCVTPS2QQZ128rmb = 7161,
+ VCVTPS2QQZ128rmbk = 7162,
+ VCVTPS2QQZ128rmbkz = 7163,
+ VCVTPS2QQZ128rmk = 7164,
+ VCVTPS2QQZ128rmkz = 7165,
+ VCVTPS2QQZ128rr = 7166,
+ VCVTPS2QQZ128rrk = 7167,
+ VCVTPS2QQZ128rrkz = 7168,
+ VCVTPS2QQZ256rm = 7169,
+ VCVTPS2QQZ256rmb = 7170,
+ VCVTPS2QQZ256rmbk = 7171,
+ VCVTPS2QQZ256rmbkz = 7172,
+ VCVTPS2QQZ256rmk = 7173,
+ VCVTPS2QQZ256rmkz = 7174,
+ VCVTPS2QQZ256rr = 7175,
+ VCVTPS2QQZ256rrk = 7176,
+ VCVTPS2QQZ256rrkz = 7177,
+ VCVTPS2QQZrm = 7178,
+ VCVTPS2QQZrmb = 7179,
+ VCVTPS2QQZrmbk = 7180,
+ VCVTPS2QQZrmbkz = 7181,
+ VCVTPS2QQZrmk = 7182,
+ VCVTPS2QQZrmkz = 7183,
+ VCVTPS2QQZrr = 7184,
+ VCVTPS2QQZrrb = 7185,
+ VCVTPS2QQZrrbk = 7186,
+ VCVTPS2QQZrrbkz = 7187,
+ VCVTPS2QQZrrk = 7188,
+ VCVTPS2QQZrrkz = 7189,
+ VCVTPS2UDQZ128rm = 7190,
+ VCVTPS2UDQZ128rmb = 7191,
+ VCVTPS2UDQZ128rmbk = 7192,
+ VCVTPS2UDQZ128rmbkz = 7193,
+ VCVTPS2UDQZ128rmk = 7194,
+ VCVTPS2UDQZ128rmkz = 7195,
+ VCVTPS2UDQZ128rr = 7196,
+ VCVTPS2UDQZ128rrk = 7197,
+ VCVTPS2UDQZ128rrkz = 7198,
+ VCVTPS2UDQZ256rm = 7199,
+ VCVTPS2UDQZ256rmb = 7200,
+ VCVTPS2UDQZ256rmbk = 7201,
+ VCVTPS2UDQZ256rmbkz = 7202,
+ VCVTPS2UDQZ256rmk = 7203,
+ VCVTPS2UDQZ256rmkz = 7204,
+ VCVTPS2UDQZ256rr = 7205,
+ VCVTPS2UDQZ256rrk = 7206,
+ VCVTPS2UDQZ256rrkz = 7207,
+ VCVTPS2UDQZrm = 7208,
+ VCVTPS2UDQZrmb = 7209,
+ VCVTPS2UDQZrmbk = 7210,
+ VCVTPS2UDQZrmbkz = 7211,
+ VCVTPS2UDQZrmk = 7212,
+ VCVTPS2UDQZrmkz = 7213,
+ VCVTPS2UDQZrr = 7214,
+ VCVTPS2UDQZrrb = 7215,
+ VCVTPS2UDQZrrbk = 7216,
+ VCVTPS2UDQZrrbkz = 7217,
+ VCVTPS2UDQZrrk = 7218,
+ VCVTPS2UDQZrrkz = 7219,
+ VCVTPS2UQQZ128rm = 7220,
+ VCVTPS2UQQZ128rmb = 7221,
+ VCVTPS2UQQZ128rmbk = 7222,
+ VCVTPS2UQQZ128rmbkz = 7223,
+ VCVTPS2UQQZ128rmk = 7224,
+ VCVTPS2UQQZ128rmkz = 7225,
+ VCVTPS2UQQZ128rr = 7226,
+ VCVTPS2UQQZ128rrk = 7227,
+ VCVTPS2UQQZ128rrkz = 7228,
+ VCVTPS2UQQZ256rm = 7229,
+ VCVTPS2UQQZ256rmb = 7230,
+ VCVTPS2UQQZ256rmbk = 7231,
+ VCVTPS2UQQZ256rmbkz = 7232,
+ VCVTPS2UQQZ256rmk = 7233,
+ VCVTPS2UQQZ256rmkz = 7234,
+ VCVTPS2UQQZ256rr = 7235,
+ VCVTPS2UQQZ256rrk = 7236,
+ VCVTPS2UQQZ256rrkz = 7237,
+ VCVTPS2UQQZrm = 7238,
+ VCVTPS2UQQZrmb = 7239,
+ VCVTPS2UQQZrmbk = 7240,
+ VCVTPS2UQQZrmbkz = 7241,
+ VCVTPS2UQQZrmk = 7242,
+ VCVTPS2UQQZrmkz = 7243,
+ VCVTPS2UQQZrr = 7244,
+ VCVTPS2UQQZrrb = 7245,
+ VCVTPS2UQQZrrbk = 7246,
+ VCVTPS2UQQZrrbkz = 7247,
+ VCVTPS2UQQZrrk = 7248,
+ VCVTPS2UQQZrrkz = 7249,
+ VCVTQQ2PDZ128rm = 7250,
+ VCVTQQ2PDZ128rmb = 7251,
+ VCVTQQ2PDZ128rmbk = 7252,
+ VCVTQQ2PDZ128rmbkz = 7253,
+ VCVTQQ2PDZ128rmk = 7254,
+ VCVTQQ2PDZ128rmkz = 7255,
+ VCVTQQ2PDZ128rr = 7256,
+ VCVTQQ2PDZ128rrk = 7257,
+ VCVTQQ2PDZ128rrkz = 7258,
+ VCVTQQ2PDZ256rm = 7259,
+ VCVTQQ2PDZ256rmb = 7260,
+ VCVTQQ2PDZ256rmbk = 7261,
+ VCVTQQ2PDZ256rmbkz = 7262,
+ VCVTQQ2PDZ256rmk = 7263,
+ VCVTQQ2PDZ256rmkz = 7264,
+ VCVTQQ2PDZ256rr = 7265,
+ VCVTQQ2PDZ256rrk = 7266,
+ VCVTQQ2PDZ256rrkz = 7267,
+ VCVTQQ2PDZrm = 7268,
+ VCVTQQ2PDZrmb = 7269,
+ VCVTQQ2PDZrmbk = 7270,
+ VCVTQQ2PDZrmbkz = 7271,
+ VCVTQQ2PDZrmk = 7272,
+ VCVTQQ2PDZrmkz = 7273,
+ VCVTQQ2PDZrr = 7274,
+ VCVTQQ2PDZrrb = 7275,
+ VCVTQQ2PDZrrbk = 7276,
+ VCVTQQ2PDZrrbkz = 7277,
+ VCVTQQ2PDZrrk = 7278,
+ VCVTQQ2PDZrrkz = 7279,
+ VCVTQQ2PHZ128rm = 7280,
+ VCVTQQ2PHZ128rmb = 7281,
+ VCVTQQ2PHZ128rmbk = 7282,
+ VCVTQQ2PHZ128rmbkz = 7283,
+ VCVTQQ2PHZ128rmk = 7284,
+ VCVTQQ2PHZ128rmkz = 7285,
+ VCVTQQ2PHZ128rr = 7286,
+ VCVTQQ2PHZ128rrk = 7287,
+ VCVTQQ2PHZ128rrkz = 7288,
+ VCVTQQ2PHZ256rm = 7289,
+ VCVTQQ2PHZ256rmb = 7290,
+ VCVTQQ2PHZ256rmbk = 7291,
+ VCVTQQ2PHZ256rmbkz = 7292,
+ VCVTQQ2PHZ256rmk = 7293,
+ VCVTQQ2PHZ256rmkz = 7294,
+ VCVTQQ2PHZ256rr = 7295,
+ VCVTQQ2PHZ256rrk = 7296,
+ VCVTQQ2PHZ256rrkz = 7297,
+ VCVTQQ2PHZrm = 7298,
+ VCVTQQ2PHZrmb = 7299,
+ VCVTQQ2PHZrmbk = 7300,
+ VCVTQQ2PHZrmbkz = 7301,
+ VCVTQQ2PHZrmk = 7302,
+ VCVTQQ2PHZrmkz = 7303,
+ VCVTQQ2PHZrr = 7304,
+ VCVTQQ2PHZrrb = 7305,
+ VCVTQQ2PHZrrbk = 7306,
+ VCVTQQ2PHZrrbkz = 7307,
+ VCVTQQ2PHZrrk = 7308,
+ VCVTQQ2PHZrrkz = 7309,
+ VCVTQQ2PSZ128rm = 7310,
+ VCVTQQ2PSZ128rmb = 7311,
+ VCVTQQ2PSZ128rmbk = 7312,
+ VCVTQQ2PSZ128rmbkz = 7313,
+ VCVTQQ2PSZ128rmk = 7314,
+ VCVTQQ2PSZ128rmkz = 7315,
+ VCVTQQ2PSZ128rr = 7316,
+ VCVTQQ2PSZ128rrk = 7317,
+ VCVTQQ2PSZ128rrkz = 7318,
+ VCVTQQ2PSZ256rm = 7319,
+ VCVTQQ2PSZ256rmb = 7320,
+ VCVTQQ2PSZ256rmbk = 7321,
+ VCVTQQ2PSZ256rmbkz = 7322,
+ VCVTQQ2PSZ256rmk = 7323,
+ VCVTQQ2PSZ256rmkz = 7324,
+ VCVTQQ2PSZ256rr = 7325,
+ VCVTQQ2PSZ256rrk = 7326,
+ VCVTQQ2PSZ256rrkz = 7327,
+ VCVTQQ2PSZrm = 7328,
+ VCVTQQ2PSZrmb = 7329,
+ VCVTQQ2PSZrmbk = 7330,
+ VCVTQQ2PSZrmbkz = 7331,
+ VCVTQQ2PSZrmk = 7332,
+ VCVTQQ2PSZrmkz = 7333,
+ VCVTQQ2PSZrr = 7334,
+ VCVTQQ2PSZrrb = 7335,
+ VCVTQQ2PSZrrbk = 7336,
+ VCVTQQ2PSZrrbkz = 7337,
+ VCVTQQ2PSZrrk = 7338,
+ VCVTQQ2PSZrrkz = 7339,
+ VCVTSD2SHZrm = 7340,
+ VCVTSD2SHZrm_Int = 7341,
+ VCVTSD2SHZrmk_Int = 7342,
+ VCVTSD2SHZrmkz_Int = 7343,
+ VCVTSD2SHZrr = 7344,
+ VCVTSD2SHZrr_Int = 7345,
+ VCVTSD2SHZrrb_Int = 7346,
+ VCVTSD2SHZrrbk_Int = 7347,
+ VCVTSD2SHZrrbkz_Int = 7348,
+ VCVTSD2SHZrrk_Int = 7349,
+ VCVTSD2SHZrrkz_Int = 7350,
+ VCVTSD2SI64Zrm = 7351,
+ VCVTSD2SI64Zrm_Int = 7352,
+ VCVTSD2SI64Zrr = 7353,
+ VCVTSD2SI64Zrr_Int = 7354,
+ VCVTSD2SI64Zrrb_Int = 7355,
+ VCVTSD2SI64rm = 7356,
+ VCVTSD2SI64rm_Int = 7357,
+ VCVTSD2SI64rr = 7358,
+ VCVTSD2SI64rr_Int = 7359,
+ VCVTSD2SIZrm = 7360,
+ VCVTSD2SIZrm_Int = 7361,
+ VCVTSD2SIZrr = 7362,
+ VCVTSD2SIZrr_Int = 7363,
+ VCVTSD2SIZrrb_Int = 7364,
+ VCVTSD2SIrm = 7365,
+ VCVTSD2SIrm_Int = 7366,
+ VCVTSD2SIrr = 7367,
+ VCVTSD2SIrr_Int = 7368,
+ VCVTSD2SSZrm = 7369,
+ VCVTSD2SSZrm_Int = 7370,
+ VCVTSD2SSZrmk_Int = 7371,
+ VCVTSD2SSZrmkz_Int = 7372,
+ VCVTSD2SSZrr = 7373,
+ VCVTSD2SSZrr_Int = 7374,
+ VCVTSD2SSZrrb_Int = 7375,
+ VCVTSD2SSZrrbk_Int = 7376,
+ VCVTSD2SSZrrbkz_Int = 7377,
+ VCVTSD2SSZrrk_Int = 7378,
+ VCVTSD2SSZrrkz_Int = 7379,
+ VCVTSD2SSrm = 7380,
+ VCVTSD2SSrm_Int = 7381,
+ VCVTSD2SSrr = 7382,
+ VCVTSD2SSrr_Int = 7383,
+ VCVTSD2USI64Zrm_Int = 7384,
+ VCVTSD2USI64Zrr_Int = 7385,
+ VCVTSD2USI64Zrrb_Int = 7386,
+ VCVTSD2USIZrm_Int = 7387,
+ VCVTSD2USIZrr_Int = 7388,
+ VCVTSD2USIZrrb_Int = 7389,
+ VCVTSH2SDZrm = 7390,
+ VCVTSH2SDZrm_Int = 7391,
+ VCVTSH2SDZrmk_Int = 7392,
+ VCVTSH2SDZrmkz_Int = 7393,
+ VCVTSH2SDZrr = 7394,
+ VCVTSH2SDZrr_Int = 7395,
+ VCVTSH2SDZrrb_Int = 7396,
+ VCVTSH2SDZrrbk_Int = 7397,
+ VCVTSH2SDZrrbkz_Int = 7398,
+ VCVTSH2SDZrrk_Int = 7399,
+ VCVTSH2SDZrrkz_Int = 7400,
+ VCVTSH2SI64Zrm_Int = 7401,
+ VCVTSH2SI64Zrr_Int = 7402,
+ VCVTSH2SI64Zrrb_Int = 7403,
+ VCVTSH2SIZrm_Int = 7404,
+ VCVTSH2SIZrr_Int = 7405,
+ VCVTSH2SIZrrb_Int = 7406,
+ VCVTSH2SSZrm = 7407,
+ VCVTSH2SSZrm_Int = 7408,
+ VCVTSH2SSZrmk_Int = 7409,
+ VCVTSH2SSZrmkz_Int = 7410,
+ VCVTSH2SSZrr = 7411,
+ VCVTSH2SSZrr_Int = 7412,
+ VCVTSH2SSZrrb_Int = 7413,
+ VCVTSH2SSZrrbk_Int = 7414,
+ VCVTSH2SSZrrbkz_Int = 7415,
+ VCVTSH2SSZrrk_Int = 7416,
+ VCVTSH2SSZrrkz_Int = 7417,
+ VCVTSH2USI64Zrm_Int = 7418,
+ VCVTSH2USI64Zrr_Int = 7419,
+ VCVTSH2USI64Zrrb_Int = 7420,
+ VCVTSH2USIZrm_Int = 7421,
+ VCVTSH2USIZrr_Int = 7422,
+ VCVTSH2USIZrrb_Int = 7423,
+ VCVTSI2SDZrm = 7424,
+ VCVTSI2SDZrm_Int = 7425,
+ VCVTSI2SDZrr = 7426,
+ VCVTSI2SDZrr_Int = 7427,
+ VCVTSI2SDrm = 7428,
+ VCVTSI2SDrm_Int = 7429,
+ VCVTSI2SDrr = 7430,
+ VCVTSI2SDrr_Int = 7431,
+ VCVTSI2SHZrm = 7432,
+ VCVTSI2SHZrm_Int = 7433,
+ VCVTSI2SHZrr = 7434,
+ VCVTSI2SHZrr_Int = 7435,
+ VCVTSI2SHZrrb_Int = 7436,
+ VCVTSI2SSZrm = 7437,
+ VCVTSI2SSZrm_Int = 7438,
+ VCVTSI2SSZrr = 7439,
+ VCVTSI2SSZrr_Int = 7440,
+ VCVTSI2SSZrrb_Int = 7441,
+ VCVTSI2SSrm = 7442,
+ VCVTSI2SSrm_Int = 7443,
+ VCVTSI2SSrr = 7444,
+ VCVTSI2SSrr_Int = 7445,
+ VCVTSI642SDZrm = 7446,
+ VCVTSI642SDZrm_Int = 7447,
+ VCVTSI642SDZrr = 7448,
+ VCVTSI642SDZrr_Int = 7449,
+ VCVTSI642SDZrrb_Int = 7450,
+ VCVTSI642SDrm = 7451,
+ VCVTSI642SDrm_Int = 7452,
+ VCVTSI642SDrr = 7453,
+ VCVTSI642SDrr_Int = 7454,
+ VCVTSI642SHZrm = 7455,
+ VCVTSI642SHZrm_Int = 7456,
+ VCVTSI642SHZrr = 7457,
+ VCVTSI642SHZrr_Int = 7458,
+ VCVTSI642SHZrrb_Int = 7459,
+ VCVTSI642SSZrm = 7460,
+ VCVTSI642SSZrm_Int = 7461,
+ VCVTSI642SSZrr = 7462,
+ VCVTSI642SSZrr_Int = 7463,
+ VCVTSI642SSZrrb_Int = 7464,
+ VCVTSI642SSrm = 7465,
+ VCVTSI642SSrm_Int = 7466,
+ VCVTSI642SSrr = 7467,
+ VCVTSI642SSrr_Int = 7468,
+ VCVTSS2SDZrm = 7469,
+ VCVTSS2SDZrm_Int = 7470,
+ VCVTSS2SDZrmk_Int = 7471,
+ VCVTSS2SDZrmkz_Int = 7472,
+ VCVTSS2SDZrr = 7473,
+ VCVTSS2SDZrr_Int = 7474,
+ VCVTSS2SDZrrb_Int = 7475,
+ VCVTSS2SDZrrbk_Int = 7476,
+ VCVTSS2SDZrrbkz_Int = 7477,
+ VCVTSS2SDZrrk_Int = 7478,
+ VCVTSS2SDZrrkz_Int = 7479,
+ VCVTSS2SDrm = 7480,
+ VCVTSS2SDrm_Int = 7481,
+ VCVTSS2SDrr = 7482,
+ VCVTSS2SDrr_Int = 7483,
+ VCVTSS2SHZrm = 7484,
+ VCVTSS2SHZrm_Int = 7485,
+ VCVTSS2SHZrmk_Int = 7486,
+ VCVTSS2SHZrmkz_Int = 7487,
+ VCVTSS2SHZrr = 7488,
+ VCVTSS2SHZrr_Int = 7489,
+ VCVTSS2SHZrrb_Int = 7490,
+ VCVTSS2SHZrrbk_Int = 7491,
+ VCVTSS2SHZrrbkz_Int = 7492,
+ VCVTSS2SHZrrk_Int = 7493,
+ VCVTSS2SHZrrkz_Int = 7494,
+ VCVTSS2SI64Zrm = 7495,
+ VCVTSS2SI64Zrm_Int = 7496,
+ VCVTSS2SI64Zrr = 7497,
+ VCVTSS2SI64Zrr_Int = 7498,
+ VCVTSS2SI64Zrrb_Int = 7499,
+ VCVTSS2SI64rm = 7500,
+ VCVTSS2SI64rm_Int = 7501,
+ VCVTSS2SI64rr = 7502,
+ VCVTSS2SI64rr_Int = 7503,
+ VCVTSS2SIZrm = 7504,
+ VCVTSS2SIZrm_Int = 7505,
+ VCVTSS2SIZrr = 7506,
+ VCVTSS2SIZrr_Int = 7507,
+ VCVTSS2SIZrrb_Int = 7508,
+ VCVTSS2SIrm = 7509,
+ VCVTSS2SIrm_Int = 7510,
+ VCVTSS2SIrr = 7511,
+ VCVTSS2SIrr_Int = 7512,
+ VCVTSS2USI64Zrm_Int = 7513,
+ VCVTSS2USI64Zrr_Int = 7514,
+ VCVTSS2USI64Zrrb_Int = 7515,
+ VCVTSS2USIZrm_Int = 7516,
+ VCVTSS2USIZrr_Int = 7517,
+ VCVTSS2USIZrrb_Int = 7518,
+ VCVTTBF162IBSZ128rm = 7519,
+ VCVTTBF162IBSZ128rmb = 7520,
+ VCVTTBF162IBSZ128rmbk = 7521,
+ VCVTTBF162IBSZ128rmbkz = 7522,
+ VCVTTBF162IBSZ128rmk = 7523,
+ VCVTTBF162IBSZ128rmkz = 7524,
+ VCVTTBF162IBSZ128rr = 7525,
+ VCVTTBF162IBSZ128rrk = 7526,
+ VCVTTBF162IBSZ128rrkz = 7527,
+ VCVTTBF162IBSZ256rm = 7528,
+ VCVTTBF162IBSZ256rmb = 7529,
+ VCVTTBF162IBSZ256rmbk = 7530,
+ VCVTTBF162IBSZ256rmbkz = 7531,
+ VCVTTBF162IBSZ256rmk = 7532,
+ VCVTTBF162IBSZ256rmkz = 7533,
+ VCVTTBF162IBSZ256rr = 7534,
+ VCVTTBF162IBSZ256rrk = 7535,
+ VCVTTBF162IBSZ256rrkz = 7536,
+ VCVTTBF162IBSZrm = 7537,
+ VCVTTBF162IBSZrmb = 7538,
+ VCVTTBF162IBSZrmbk = 7539,
+ VCVTTBF162IBSZrmbkz = 7540,
+ VCVTTBF162IBSZrmk = 7541,
+ VCVTTBF162IBSZrmkz = 7542,
+ VCVTTBF162IBSZrr = 7543,
+ VCVTTBF162IBSZrrk = 7544,
+ VCVTTBF162IBSZrrkz = 7545,
+ VCVTTBF162IUBSZ128rm = 7546,
+ VCVTTBF162IUBSZ128rmb = 7547,
+ VCVTTBF162IUBSZ128rmbk = 7548,
+ VCVTTBF162IUBSZ128rmbkz = 7549,
+ VCVTTBF162IUBSZ128rmk = 7550,
+ VCVTTBF162IUBSZ128rmkz = 7551,
+ VCVTTBF162IUBSZ128rr = 7552,
+ VCVTTBF162IUBSZ128rrk = 7553,
+ VCVTTBF162IUBSZ128rrkz = 7554,
+ VCVTTBF162IUBSZ256rm = 7555,
+ VCVTTBF162IUBSZ256rmb = 7556,
+ VCVTTBF162IUBSZ256rmbk = 7557,
+ VCVTTBF162IUBSZ256rmbkz = 7558,
+ VCVTTBF162IUBSZ256rmk = 7559,
+ VCVTTBF162IUBSZ256rmkz = 7560,
+ VCVTTBF162IUBSZ256rr = 7561,
+ VCVTTBF162IUBSZ256rrk = 7562,
+ VCVTTBF162IUBSZ256rrkz = 7563,
+ VCVTTBF162IUBSZrm = 7564,
+ VCVTTBF162IUBSZrmb = 7565,
+ VCVTTBF162IUBSZrmbk = 7566,
+ VCVTTBF162IUBSZrmbkz = 7567,
+ VCVTTBF162IUBSZrmk = 7568,
+ VCVTTBF162IUBSZrmkz = 7569,
+ VCVTTBF162IUBSZrr = 7570,
+ VCVTTBF162IUBSZrrk = 7571,
+ VCVTTBF162IUBSZrrkz = 7572,
+ VCVTTPD2DQSZ128rm = 7573,
+ VCVTTPD2DQSZ128rmb = 7574,
+ VCVTTPD2DQSZ128rmbk = 7575,
+ VCVTTPD2DQSZ128rmbkz = 7576,
+ VCVTTPD2DQSZ128rmk = 7577,
+ VCVTTPD2DQSZ128rmkz = 7578,
+ VCVTTPD2DQSZ128rr = 7579,
+ VCVTTPD2DQSZ128rrk = 7580,
+ VCVTTPD2DQSZ128rrkz = 7581,
+ VCVTTPD2DQSZ256rm = 7582,
+ VCVTTPD2DQSZ256rmb = 7583,
+ VCVTTPD2DQSZ256rmbk = 7584,
+ VCVTTPD2DQSZ256rmbkz = 7585,
+ VCVTTPD2DQSZ256rmk = 7586,
+ VCVTTPD2DQSZ256rmkz = 7587,
+ VCVTTPD2DQSZ256rr = 7588,
+ VCVTTPD2DQSZ256rrb = 7589,
+ VCVTTPD2DQSZ256rrbk = 7590,
+ VCVTTPD2DQSZ256rrbkz = 7591,
+ VCVTTPD2DQSZ256rrk = 7592,
+ VCVTTPD2DQSZ256rrkz = 7593,
+ VCVTTPD2DQSZrm = 7594,
+ VCVTTPD2DQSZrmb = 7595,
+ VCVTTPD2DQSZrmbk = 7596,
+ VCVTTPD2DQSZrmbkz = 7597,
+ VCVTTPD2DQSZrmk = 7598,
+ VCVTTPD2DQSZrmkz = 7599,
+ VCVTTPD2DQSZrr = 7600,
+ VCVTTPD2DQSZrrb = 7601,
+ VCVTTPD2DQSZrrbk = 7602,
+ VCVTTPD2DQSZrrbkz = 7603,
+ VCVTTPD2DQSZrrk = 7604,
+ VCVTTPD2DQSZrrkz = 7605,
+ VCVTTPD2DQYrm = 7606,
+ VCVTTPD2DQYrr = 7607,
+ VCVTTPD2DQZ128rm = 7608,
+ VCVTTPD2DQZ128rmb = 7609,
+ VCVTTPD2DQZ128rmbk = 7610,
+ VCVTTPD2DQZ128rmbkz = 7611,
+ VCVTTPD2DQZ128rmk = 7612,
+ VCVTTPD2DQZ128rmkz = 7613,
+ VCVTTPD2DQZ128rr = 7614,
+ VCVTTPD2DQZ128rrk = 7615,
+ VCVTTPD2DQZ128rrkz = 7616,
+ VCVTTPD2DQZ256rm = 7617,
+ VCVTTPD2DQZ256rmb = 7618,
+ VCVTTPD2DQZ256rmbk = 7619,
+ VCVTTPD2DQZ256rmbkz = 7620,
+ VCVTTPD2DQZ256rmk = 7621,
+ VCVTTPD2DQZ256rmkz = 7622,
+ VCVTTPD2DQZ256rr = 7623,
+ VCVTTPD2DQZ256rrk = 7624,
+ VCVTTPD2DQZ256rrkz = 7625,
+ VCVTTPD2DQZrm = 7626,
+ VCVTTPD2DQZrmb = 7627,
+ VCVTTPD2DQZrmbk = 7628,
+ VCVTTPD2DQZrmbkz = 7629,
+ VCVTTPD2DQZrmk = 7630,
+ VCVTTPD2DQZrmkz = 7631,
+ VCVTTPD2DQZrr = 7632,
+ VCVTTPD2DQZrrb = 7633,
+ VCVTTPD2DQZrrbk = 7634,
+ VCVTTPD2DQZrrbkz = 7635,
+ VCVTTPD2DQZrrk = 7636,
+ VCVTTPD2DQZrrkz = 7637,
+ VCVTTPD2DQrm = 7638,
+ VCVTTPD2DQrr = 7639,
+ VCVTTPD2QQSZ128rm = 7640,
+ VCVTTPD2QQSZ128rmb = 7641,
+ VCVTTPD2QQSZ128rmbk = 7642,
+ VCVTTPD2QQSZ128rmbkz = 7643,
+ VCVTTPD2QQSZ128rmk = 7644,
+ VCVTTPD2QQSZ128rmkz = 7645,
+ VCVTTPD2QQSZ128rr = 7646,
+ VCVTTPD2QQSZ128rrk = 7647,
+ VCVTTPD2QQSZ128rrkz = 7648,
+ VCVTTPD2QQSZ256rm = 7649,
+ VCVTTPD2QQSZ256rmb = 7650,
+ VCVTTPD2QQSZ256rmbk = 7651,
+ VCVTTPD2QQSZ256rmbkz = 7652,
+ VCVTTPD2QQSZ256rmk = 7653,
+ VCVTTPD2QQSZ256rmkz = 7654,
+ VCVTTPD2QQSZ256rr = 7655,
+ VCVTTPD2QQSZ256rrb = 7656,
+ VCVTTPD2QQSZ256rrbk = 7657,
+ VCVTTPD2QQSZ256rrbkz = 7658,
+ VCVTTPD2QQSZ256rrk = 7659,
+ VCVTTPD2QQSZ256rrkz = 7660,
+ VCVTTPD2QQSZrm = 7661,
+ VCVTTPD2QQSZrmb = 7662,
+ VCVTTPD2QQSZrmbk = 7663,
+ VCVTTPD2QQSZrmbkz = 7664,
+ VCVTTPD2QQSZrmk = 7665,
+ VCVTTPD2QQSZrmkz = 7666,
+ VCVTTPD2QQSZrr = 7667,
+ VCVTTPD2QQSZrrb = 7668,
+ VCVTTPD2QQSZrrbk = 7669,
+ VCVTTPD2QQSZrrbkz = 7670,
+ VCVTTPD2QQSZrrk = 7671,
+ VCVTTPD2QQSZrrkz = 7672,
+ VCVTTPD2QQZ128rm = 7673,
+ VCVTTPD2QQZ128rmb = 7674,
+ VCVTTPD2QQZ128rmbk = 7675,
+ VCVTTPD2QQZ128rmbkz = 7676,
+ VCVTTPD2QQZ128rmk = 7677,
+ VCVTTPD2QQZ128rmkz = 7678,
+ VCVTTPD2QQZ128rr = 7679,
+ VCVTTPD2QQZ128rrk = 7680,
+ VCVTTPD2QQZ128rrkz = 7681,
+ VCVTTPD2QQZ256rm = 7682,
+ VCVTTPD2QQZ256rmb = 7683,
+ VCVTTPD2QQZ256rmbk = 7684,
+ VCVTTPD2QQZ256rmbkz = 7685,
+ VCVTTPD2QQZ256rmk = 7686,
+ VCVTTPD2QQZ256rmkz = 7687,
+ VCVTTPD2QQZ256rr = 7688,
+ VCVTTPD2QQZ256rrk = 7689,
+ VCVTTPD2QQZ256rrkz = 7690,
+ VCVTTPD2QQZrm = 7691,
+ VCVTTPD2QQZrmb = 7692,
+ VCVTTPD2QQZrmbk = 7693,
+ VCVTTPD2QQZrmbkz = 7694,
+ VCVTTPD2QQZrmk = 7695,
+ VCVTTPD2QQZrmkz = 7696,
+ VCVTTPD2QQZrr = 7697,
+ VCVTTPD2QQZrrb = 7698,
+ VCVTTPD2QQZrrbk = 7699,
+ VCVTTPD2QQZrrbkz = 7700,
+ VCVTTPD2QQZrrk = 7701,
+ VCVTTPD2QQZrrkz = 7702,
+ VCVTTPD2UDQSZ128rm = 7703,
+ VCVTTPD2UDQSZ128rmb = 7704,
+ VCVTTPD2UDQSZ128rmbk = 7705,
+ VCVTTPD2UDQSZ128rmbkz = 7706,
+ VCVTTPD2UDQSZ128rmk = 7707,
+ VCVTTPD2UDQSZ128rmkz = 7708,
+ VCVTTPD2UDQSZ128rr = 7709,
+ VCVTTPD2UDQSZ128rrk = 7710,
+ VCVTTPD2UDQSZ128rrkz = 7711,
+ VCVTTPD2UDQSZ256rm = 7712,
+ VCVTTPD2UDQSZ256rmb = 7713,
+ VCVTTPD2UDQSZ256rmbk = 7714,
+ VCVTTPD2UDQSZ256rmbkz = 7715,
+ VCVTTPD2UDQSZ256rmk = 7716,
+ VCVTTPD2UDQSZ256rmkz = 7717,
+ VCVTTPD2UDQSZ256rr = 7718,
+ VCVTTPD2UDQSZ256rrb = 7719,
+ VCVTTPD2UDQSZ256rrbk = 7720,
+ VCVTTPD2UDQSZ256rrbkz = 7721,
+ VCVTTPD2UDQSZ256rrk = 7722,
+ VCVTTPD2UDQSZ256rrkz = 7723,
+ VCVTTPD2UDQSZrm = 7724,
+ VCVTTPD2UDQSZrmb = 7725,
+ VCVTTPD2UDQSZrmbk = 7726,
+ VCVTTPD2UDQSZrmbkz = 7727,
+ VCVTTPD2UDQSZrmk = 7728,
+ VCVTTPD2UDQSZrmkz = 7729,
+ VCVTTPD2UDQSZrr = 7730,
+ VCVTTPD2UDQSZrrb = 7731,
+ VCVTTPD2UDQSZrrbk = 7732,
+ VCVTTPD2UDQSZrrbkz = 7733,
+ VCVTTPD2UDQSZrrk = 7734,
+ VCVTTPD2UDQSZrrkz = 7735,
+ VCVTTPD2UDQZ128rm = 7736,
+ VCVTTPD2UDQZ128rmb = 7737,
+ VCVTTPD2UDQZ128rmbk = 7738,
+ VCVTTPD2UDQZ128rmbkz = 7739,
+ VCVTTPD2UDQZ128rmk = 7740,
+ VCVTTPD2UDQZ128rmkz = 7741,
+ VCVTTPD2UDQZ128rr = 7742,
+ VCVTTPD2UDQZ128rrk = 7743,
+ VCVTTPD2UDQZ128rrkz = 7744,
+ VCVTTPD2UDQZ256rm = 7745,
+ VCVTTPD2UDQZ256rmb = 7746,
+ VCVTTPD2UDQZ256rmbk = 7747,
+ VCVTTPD2UDQZ256rmbkz = 7748,
+ VCVTTPD2UDQZ256rmk = 7749,
+ VCVTTPD2UDQZ256rmkz = 7750,
+ VCVTTPD2UDQZ256rr = 7751,
+ VCVTTPD2UDQZ256rrk = 7752,
+ VCVTTPD2UDQZ256rrkz = 7753,
+ VCVTTPD2UDQZrm = 7754,
+ VCVTTPD2UDQZrmb = 7755,
+ VCVTTPD2UDQZrmbk = 7756,
+ VCVTTPD2UDQZrmbkz = 7757,
+ VCVTTPD2UDQZrmk = 7758,
+ VCVTTPD2UDQZrmkz = 7759,
+ VCVTTPD2UDQZrr = 7760,
+ VCVTTPD2UDQZrrb = 7761,
+ VCVTTPD2UDQZrrbk = 7762,
+ VCVTTPD2UDQZrrbkz = 7763,
+ VCVTTPD2UDQZrrk = 7764,
+ VCVTTPD2UDQZrrkz = 7765,
+ VCVTTPD2UQQSZ128rm = 7766,
+ VCVTTPD2UQQSZ128rmb = 7767,
+ VCVTTPD2UQQSZ128rmbk = 7768,
+ VCVTTPD2UQQSZ128rmbkz = 7769,
+ VCVTTPD2UQQSZ128rmk = 7770,
+ VCVTTPD2UQQSZ128rmkz = 7771,
+ VCVTTPD2UQQSZ128rr = 7772,
+ VCVTTPD2UQQSZ128rrk = 7773,
+ VCVTTPD2UQQSZ128rrkz = 7774,
+ VCVTTPD2UQQSZ256rm = 7775,
+ VCVTTPD2UQQSZ256rmb = 7776,
+ VCVTTPD2UQQSZ256rmbk = 7777,
+ VCVTTPD2UQQSZ256rmbkz = 7778,
+ VCVTTPD2UQQSZ256rmk = 7779,
+ VCVTTPD2UQQSZ256rmkz = 7780,
+ VCVTTPD2UQQSZ256rr = 7781,
+ VCVTTPD2UQQSZ256rrb = 7782,
+ VCVTTPD2UQQSZ256rrbk = 7783,
+ VCVTTPD2UQQSZ256rrbkz = 7784,
+ VCVTTPD2UQQSZ256rrk = 7785,
+ VCVTTPD2UQQSZ256rrkz = 7786,
+ VCVTTPD2UQQSZrm = 7787,
+ VCVTTPD2UQQSZrmb = 7788,
+ VCVTTPD2UQQSZrmbk = 7789,
+ VCVTTPD2UQQSZrmbkz = 7790,
+ VCVTTPD2UQQSZrmk = 7791,
+ VCVTTPD2UQQSZrmkz = 7792,
+ VCVTTPD2UQQSZrr = 7793,
+ VCVTTPD2UQQSZrrb = 7794,
+ VCVTTPD2UQQSZrrbk = 7795,
+ VCVTTPD2UQQSZrrbkz = 7796,
+ VCVTTPD2UQQSZrrk = 7797,
+ VCVTTPD2UQQSZrrkz = 7798,
+ VCVTTPD2UQQZ128rm = 7799,
+ VCVTTPD2UQQZ128rmb = 7800,
+ VCVTTPD2UQQZ128rmbk = 7801,
+ VCVTTPD2UQQZ128rmbkz = 7802,
+ VCVTTPD2UQQZ128rmk = 7803,
+ VCVTTPD2UQQZ128rmkz = 7804,
+ VCVTTPD2UQQZ128rr = 7805,
+ VCVTTPD2UQQZ128rrk = 7806,
+ VCVTTPD2UQQZ128rrkz = 7807,
+ VCVTTPD2UQQZ256rm = 7808,
+ VCVTTPD2UQQZ256rmb = 7809,
+ VCVTTPD2UQQZ256rmbk = 7810,
+ VCVTTPD2UQQZ256rmbkz = 7811,
+ VCVTTPD2UQQZ256rmk = 7812,
+ VCVTTPD2UQQZ256rmkz = 7813,
+ VCVTTPD2UQQZ256rr = 7814,
+ VCVTTPD2UQQZ256rrk = 7815,
+ VCVTTPD2UQQZ256rrkz = 7816,
+ VCVTTPD2UQQZrm = 7817,
+ VCVTTPD2UQQZrmb = 7818,
+ VCVTTPD2UQQZrmbk = 7819,
+ VCVTTPD2UQQZrmbkz = 7820,
+ VCVTTPD2UQQZrmk = 7821,
+ VCVTTPD2UQQZrmkz = 7822,
+ VCVTTPD2UQQZrr = 7823,
+ VCVTTPD2UQQZrrb = 7824,
+ VCVTTPD2UQQZrrbk = 7825,
+ VCVTTPD2UQQZrrbkz = 7826,
+ VCVTTPD2UQQZrrk = 7827,
+ VCVTTPD2UQQZrrkz = 7828,
+ VCVTTPH2DQZ128rm = 7829,
+ VCVTTPH2DQZ128rmb = 7830,
+ VCVTTPH2DQZ128rmbk = 7831,
+ VCVTTPH2DQZ128rmbkz = 7832,
+ VCVTTPH2DQZ128rmk = 7833,
+ VCVTTPH2DQZ128rmkz = 7834,
+ VCVTTPH2DQZ128rr = 7835,
+ VCVTTPH2DQZ128rrk = 7836,
+ VCVTTPH2DQZ128rrkz = 7837,
+ VCVTTPH2DQZ256rm = 7838,
+ VCVTTPH2DQZ256rmb = 7839,
+ VCVTTPH2DQZ256rmbk = 7840,
+ VCVTTPH2DQZ256rmbkz = 7841,
+ VCVTTPH2DQZ256rmk = 7842,
+ VCVTTPH2DQZ256rmkz = 7843,
+ VCVTTPH2DQZ256rr = 7844,
+ VCVTTPH2DQZ256rrk = 7845,
+ VCVTTPH2DQZ256rrkz = 7846,
+ VCVTTPH2DQZrm = 7847,
+ VCVTTPH2DQZrmb = 7848,
+ VCVTTPH2DQZrmbk = 7849,
+ VCVTTPH2DQZrmbkz = 7850,
+ VCVTTPH2DQZrmk = 7851,
+ VCVTTPH2DQZrmkz = 7852,
+ VCVTTPH2DQZrr = 7853,
+ VCVTTPH2DQZrrb = 7854,
+ VCVTTPH2DQZrrbk = 7855,
+ VCVTTPH2DQZrrbkz = 7856,
+ VCVTTPH2DQZrrk = 7857,
+ VCVTTPH2DQZrrkz = 7858,
+ VCVTTPH2IBSZ128rm = 7859,
+ VCVTTPH2IBSZ128rmb = 7860,
+ VCVTTPH2IBSZ128rmbk = 7861,
+ VCVTTPH2IBSZ128rmbkz = 7862,
+ VCVTTPH2IBSZ128rmk = 7863,
+ VCVTTPH2IBSZ128rmkz = 7864,
+ VCVTTPH2IBSZ128rr = 7865,
+ VCVTTPH2IBSZ128rrk = 7866,
+ VCVTTPH2IBSZ128rrkz = 7867,
+ VCVTTPH2IBSZ256rm = 7868,
+ VCVTTPH2IBSZ256rmb = 7869,
+ VCVTTPH2IBSZ256rmbk = 7870,
+ VCVTTPH2IBSZ256rmbkz = 7871,
+ VCVTTPH2IBSZ256rmk = 7872,
+ VCVTTPH2IBSZ256rmkz = 7873,
+ VCVTTPH2IBSZ256rr = 7874,
+ VCVTTPH2IBSZ256rrk = 7875,
+ VCVTTPH2IBSZ256rrkz = 7876,
+ VCVTTPH2IBSZrm = 7877,
+ VCVTTPH2IBSZrmb = 7878,
+ VCVTTPH2IBSZrmbk = 7879,
+ VCVTTPH2IBSZrmbkz = 7880,
+ VCVTTPH2IBSZrmk = 7881,
+ VCVTTPH2IBSZrmkz = 7882,
+ VCVTTPH2IBSZrr = 7883,
+ VCVTTPH2IBSZrrb = 7884,
+ VCVTTPH2IBSZrrbk = 7885,
+ VCVTTPH2IBSZrrbkz = 7886,
+ VCVTTPH2IBSZrrk = 7887,
+ VCVTTPH2IBSZrrkz = 7888,
+ VCVTTPH2IUBSZ128rm = 7889,
+ VCVTTPH2IUBSZ128rmb = 7890,
+ VCVTTPH2IUBSZ128rmbk = 7891,
+ VCVTTPH2IUBSZ128rmbkz = 7892,
+ VCVTTPH2IUBSZ128rmk = 7893,
+ VCVTTPH2IUBSZ128rmkz = 7894,
+ VCVTTPH2IUBSZ128rr = 7895,
+ VCVTTPH2IUBSZ128rrk = 7896,
+ VCVTTPH2IUBSZ128rrkz = 7897,
+ VCVTTPH2IUBSZ256rm = 7898,
+ VCVTTPH2IUBSZ256rmb = 7899,
+ VCVTTPH2IUBSZ256rmbk = 7900,
+ VCVTTPH2IUBSZ256rmbkz = 7901,
+ VCVTTPH2IUBSZ256rmk = 7902,
+ VCVTTPH2IUBSZ256rmkz = 7903,
+ VCVTTPH2IUBSZ256rr = 7904,
+ VCVTTPH2IUBSZ256rrk = 7905,
+ VCVTTPH2IUBSZ256rrkz = 7906,
+ VCVTTPH2IUBSZrm = 7907,
+ VCVTTPH2IUBSZrmb = 7908,
+ VCVTTPH2IUBSZrmbk = 7909,
+ VCVTTPH2IUBSZrmbkz = 7910,
+ VCVTTPH2IUBSZrmk = 7911,
+ VCVTTPH2IUBSZrmkz = 7912,
+ VCVTTPH2IUBSZrr = 7913,
+ VCVTTPH2IUBSZrrb = 7914,
+ VCVTTPH2IUBSZrrbk = 7915,
+ VCVTTPH2IUBSZrrbkz = 7916,
+ VCVTTPH2IUBSZrrk = 7917,
+ VCVTTPH2IUBSZrrkz = 7918,
+ VCVTTPH2QQZ128rm = 7919,
+ VCVTTPH2QQZ128rmb = 7920,
+ VCVTTPH2QQZ128rmbk = 7921,
+ VCVTTPH2QQZ128rmbkz = 7922,
+ VCVTTPH2QQZ128rmk = 7923,
+ VCVTTPH2QQZ128rmkz = 7924,
+ VCVTTPH2QQZ128rr = 7925,
+ VCVTTPH2QQZ128rrk = 7926,
+ VCVTTPH2QQZ128rrkz = 7927,
+ VCVTTPH2QQZ256rm = 7928,
+ VCVTTPH2QQZ256rmb = 7929,
+ VCVTTPH2QQZ256rmbk = 7930,
+ VCVTTPH2QQZ256rmbkz = 7931,
+ VCVTTPH2QQZ256rmk = 7932,
+ VCVTTPH2QQZ256rmkz = 7933,
+ VCVTTPH2QQZ256rr = 7934,
+ VCVTTPH2QQZ256rrk = 7935,
+ VCVTTPH2QQZ256rrkz = 7936,
+ VCVTTPH2QQZrm = 7937,
+ VCVTTPH2QQZrmb = 7938,
+ VCVTTPH2QQZrmbk = 7939,
+ VCVTTPH2QQZrmbkz = 7940,
+ VCVTTPH2QQZrmk = 7941,
+ VCVTTPH2QQZrmkz = 7942,
+ VCVTTPH2QQZrr = 7943,
+ VCVTTPH2QQZrrb = 7944,
+ VCVTTPH2QQZrrbk = 7945,
+ VCVTTPH2QQZrrbkz = 7946,
+ VCVTTPH2QQZrrk = 7947,
+ VCVTTPH2QQZrrkz = 7948,
+ VCVTTPH2UDQZ128rm = 7949,
+ VCVTTPH2UDQZ128rmb = 7950,
+ VCVTTPH2UDQZ128rmbk = 7951,
+ VCVTTPH2UDQZ128rmbkz = 7952,
+ VCVTTPH2UDQZ128rmk = 7953,
+ VCVTTPH2UDQZ128rmkz = 7954,
+ VCVTTPH2UDQZ128rr = 7955,
+ VCVTTPH2UDQZ128rrk = 7956,
+ VCVTTPH2UDQZ128rrkz = 7957,
+ VCVTTPH2UDQZ256rm = 7958,
+ VCVTTPH2UDQZ256rmb = 7959,
+ VCVTTPH2UDQZ256rmbk = 7960,
+ VCVTTPH2UDQZ256rmbkz = 7961,
+ VCVTTPH2UDQZ256rmk = 7962,
+ VCVTTPH2UDQZ256rmkz = 7963,
+ VCVTTPH2UDQZ256rr = 7964,
+ VCVTTPH2UDQZ256rrk = 7965,
+ VCVTTPH2UDQZ256rrkz = 7966,
+ VCVTTPH2UDQZrm = 7967,
+ VCVTTPH2UDQZrmb = 7968,
+ VCVTTPH2UDQZrmbk = 7969,
+ VCVTTPH2UDQZrmbkz = 7970,
+ VCVTTPH2UDQZrmk = 7971,
+ VCVTTPH2UDQZrmkz = 7972,
+ VCVTTPH2UDQZrr = 7973,
+ VCVTTPH2UDQZrrb = 7974,
+ VCVTTPH2UDQZrrbk = 7975,
+ VCVTTPH2UDQZrrbkz = 7976,
+ VCVTTPH2UDQZrrk = 7977,
+ VCVTTPH2UDQZrrkz = 7978,
+ VCVTTPH2UQQZ128rm = 7979,
+ VCVTTPH2UQQZ128rmb = 7980,
+ VCVTTPH2UQQZ128rmbk = 7981,
+ VCVTTPH2UQQZ128rmbkz = 7982,
+ VCVTTPH2UQQZ128rmk = 7983,
+ VCVTTPH2UQQZ128rmkz = 7984,
+ VCVTTPH2UQQZ128rr = 7985,
+ VCVTTPH2UQQZ128rrk = 7986,
+ VCVTTPH2UQQZ128rrkz = 7987,
+ VCVTTPH2UQQZ256rm = 7988,
+ VCVTTPH2UQQZ256rmb = 7989,
+ VCVTTPH2UQQZ256rmbk = 7990,
+ VCVTTPH2UQQZ256rmbkz = 7991,
+ VCVTTPH2UQQZ256rmk = 7992,
+ VCVTTPH2UQQZ256rmkz = 7993,
+ VCVTTPH2UQQZ256rr = 7994,
+ VCVTTPH2UQQZ256rrk = 7995,
+ VCVTTPH2UQQZ256rrkz = 7996,
+ VCVTTPH2UQQZrm = 7997,
+ VCVTTPH2UQQZrmb = 7998,
+ VCVTTPH2UQQZrmbk = 7999,
+ VCVTTPH2UQQZrmbkz = 8000,
+ VCVTTPH2UQQZrmk = 8001,
+ VCVTTPH2UQQZrmkz = 8002,
+ VCVTTPH2UQQZrr = 8003,
+ VCVTTPH2UQQZrrb = 8004,
+ VCVTTPH2UQQZrrbk = 8005,
+ VCVTTPH2UQQZrrbkz = 8006,
+ VCVTTPH2UQQZrrk = 8007,
+ VCVTTPH2UQQZrrkz = 8008,
+ VCVTTPH2UWZ128rm = 8009,
+ VCVTTPH2UWZ128rmb = 8010,
+ VCVTTPH2UWZ128rmbk = 8011,
+ VCVTTPH2UWZ128rmbkz = 8012,
+ VCVTTPH2UWZ128rmk = 8013,
+ VCVTTPH2UWZ128rmkz = 8014,
+ VCVTTPH2UWZ128rr = 8015,
+ VCVTTPH2UWZ128rrk = 8016,
+ VCVTTPH2UWZ128rrkz = 8017,
+ VCVTTPH2UWZ256rm = 8018,
+ VCVTTPH2UWZ256rmb = 8019,
+ VCVTTPH2UWZ256rmbk = 8020,
+ VCVTTPH2UWZ256rmbkz = 8021,
+ VCVTTPH2UWZ256rmk = 8022,
+ VCVTTPH2UWZ256rmkz = 8023,
+ VCVTTPH2UWZ256rr = 8024,
+ VCVTTPH2UWZ256rrk = 8025,
+ VCVTTPH2UWZ256rrkz = 8026,
+ VCVTTPH2UWZrm = 8027,
+ VCVTTPH2UWZrmb = 8028,
+ VCVTTPH2UWZrmbk = 8029,
+ VCVTTPH2UWZrmbkz = 8030,
+ VCVTTPH2UWZrmk = 8031,
+ VCVTTPH2UWZrmkz = 8032,
+ VCVTTPH2UWZrr = 8033,
+ VCVTTPH2UWZrrb = 8034,
+ VCVTTPH2UWZrrbk = 8035,
+ VCVTTPH2UWZrrbkz = 8036,
+ VCVTTPH2UWZrrk = 8037,
+ VCVTTPH2UWZrrkz = 8038,
+ VCVTTPH2WZ128rm = 8039,
+ VCVTTPH2WZ128rmb = 8040,
+ VCVTTPH2WZ128rmbk = 8041,
+ VCVTTPH2WZ128rmbkz = 8042,
+ VCVTTPH2WZ128rmk = 8043,
+ VCVTTPH2WZ128rmkz = 8044,
+ VCVTTPH2WZ128rr = 8045,
+ VCVTTPH2WZ128rrk = 8046,
+ VCVTTPH2WZ128rrkz = 8047,
+ VCVTTPH2WZ256rm = 8048,
+ VCVTTPH2WZ256rmb = 8049,
+ VCVTTPH2WZ256rmbk = 8050,
+ VCVTTPH2WZ256rmbkz = 8051,
+ VCVTTPH2WZ256rmk = 8052,
+ VCVTTPH2WZ256rmkz = 8053,
+ VCVTTPH2WZ256rr = 8054,
+ VCVTTPH2WZ256rrk = 8055,
+ VCVTTPH2WZ256rrkz = 8056,
+ VCVTTPH2WZrm = 8057,
+ VCVTTPH2WZrmb = 8058,
+ VCVTTPH2WZrmbk = 8059,
+ VCVTTPH2WZrmbkz = 8060,
+ VCVTTPH2WZrmk = 8061,
+ VCVTTPH2WZrmkz = 8062,
+ VCVTTPH2WZrr = 8063,
+ VCVTTPH2WZrrb = 8064,
+ VCVTTPH2WZrrbk = 8065,
+ VCVTTPH2WZrrbkz = 8066,
+ VCVTTPH2WZrrk = 8067,
+ VCVTTPH2WZrrkz = 8068,
+ VCVTTPS2DQSZ128rm = 8069,
+ VCVTTPS2DQSZ128rmb = 8070,
+ VCVTTPS2DQSZ128rmbk = 8071,
+ VCVTTPS2DQSZ128rmbkz = 8072,
+ VCVTTPS2DQSZ128rmk = 8073,
+ VCVTTPS2DQSZ128rmkz = 8074,
+ VCVTTPS2DQSZ128rr = 8075,
+ VCVTTPS2DQSZ128rrk = 8076,
+ VCVTTPS2DQSZ128rrkz = 8077,
+ VCVTTPS2DQSZ256rm = 8078,
+ VCVTTPS2DQSZ256rmb = 8079,
+ VCVTTPS2DQSZ256rmbk = 8080,
+ VCVTTPS2DQSZ256rmbkz = 8081,
+ VCVTTPS2DQSZ256rmk = 8082,
+ VCVTTPS2DQSZ256rmkz = 8083,
+ VCVTTPS2DQSZ256rr = 8084,
+ VCVTTPS2DQSZ256rrk = 8085,
+ VCVTTPS2DQSZ256rrkz = 8086,
+ VCVTTPS2DQSZrm = 8087,
+ VCVTTPS2DQSZrmb = 8088,
+ VCVTTPS2DQSZrmbk = 8089,
+ VCVTTPS2DQSZrmbkz = 8090,
+ VCVTTPS2DQSZrmk = 8091,
+ VCVTTPS2DQSZrmkz = 8092,
+ VCVTTPS2DQSZrr = 8093,
+ VCVTTPS2DQSZrrb = 8094,
+ VCVTTPS2DQSZrrbk = 8095,
+ VCVTTPS2DQSZrrbkz = 8096,
+ VCVTTPS2DQSZrrk = 8097,
+ VCVTTPS2DQSZrrkz = 8098,
+ VCVTTPS2DQYrm = 8099,
+ VCVTTPS2DQYrr = 8100,
+ VCVTTPS2DQZ128rm = 8101,
+ VCVTTPS2DQZ128rmb = 8102,
+ VCVTTPS2DQZ128rmbk = 8103,
+ VCVTTPS2DQZ128rmbkz = 8104,
+ VCVTTPS2DQZ128rmk = 8105,
+ VCVTTPS2DQZ128rmkz = 8106,
+ VCVTTPS2DQZ128rr = 8107,
+ VCVTTPS2DQZ128rrk = 8108,
+ VCVTTPS2DQZ128rrkz = 8109,
+ VCVTTPS2DQZ256rm = 8110,
+ VCVTTPS2DQZ256rmb = 8111,
+ VCVTTPS2DQZ256rmbk = 8112,
+ VCVTTPS2DQZ256rmbkz = 8113,
+ VCVTTPS2DQZ256rmk = 8114,
+ VCVTTPS2DQZ256rmkz = 8115,
+ VCVTTPS2DQZ256rr = 8116,
+ VCVTTPS2DQZ256rrk = 8117,
+ VCVTTPS2DQZ256rrkz = 8118,
+ VCVTTPS2DQZrm = 8119,
+ VCVTTPS2DQZrmb = 8120,
+ VCVTTPS2DQZrmbk = 8121,
+ VCVTTPS2DQZrmbkz = 8122,
+ VCVTTPS2DQZrmk = 8123,
+ VCVTTPS2DQZrmkz = 8124,
+ VCVTTPS2DQZrr = 8125,
+ VCVTTPS2DQZrrb = 8126,
+ VCVTTPS2DQZrrbk = 8127,
+ VCVTTPS2DQZrrbkz = 8128,
+ VCVTTPS2DQZrrk = 8129,
+ VCVTTPS2DQZrrkz = 8130,
+ VCVTTPS2DQrm = 8131,
+ VCVTTPS2DQrr = 8132,
+ VCVTTPS2IBSZ128rm = 8133,
+ VCVTTPS2IBSZ128rmb = 8134,
+ VCVTTPS2IBSZ128rmbk = 8135,
+ VCVTTPS2IBSZ128rmbkz = 8136,
+ VCVTTPS2IBSZ128rmk = 8137,
+ VCVTTPS2IBSZ128rmkz = 8138,
+ VCVTTPS2IBSZ128rr = 8139,
+ VCVTTPS2IBSZ128rrk = 8140,
+ VCVTTPS2IBSZ128rrkz = 8141,
+ VCVTTPS2IBSZ256rm = 8142,
+ VCVTTPS2IBSZ256rmb = 8143,
+ VCVTTPS2IBSZ256rmbk = 8144,
+ VCVTTPS2IBSZ256rmbkz = 8145,
+ VCVTTPS2IBSZ256rmk = 8146,
+ VCVTTPS2IBSZ256rmkz = 8147,
+ VCVTTPS2IBSZ256rr = 8148,
+ VCVTTPS2IBSZ256rrk = 8149,
+ VCVTTPS2IBSZ256rrkz = 8150,
+ VCVTTPS2IBSZrm = 8151,
+ VCVTTPS2IBSZrmb = 8152,
+ VCVTTPS2IBSZrmbk = 8153,
+ VCVTTPS2IBSZrmbkz = 8154,
+ VCVTTPS2IBSZrmk = 8155,
+ VCVTTPS2IBSZrmkz = 8156,
+ VCVTTPS2IBSZrr = 8157,
+ VCVTTPS2IBSZrrb = 8158,
+ VCVTTPS2IBSZrrbk = 8159,
+ VCVTTPS2IBSZrrbkz = 8160,
+ VCVTTPS2IBSZrrk = 8161,
+ VCVTTPS2IBSZrrkz = 8162,
+ VCVTTPS2IUBSZ128rm = 8163,
+ VCVTTPS2IUBSZ128rmb = 8164,
+ VCVTTPS2IUBSZ128rmbk = 8165,
+ VCVTTPS2IUBSZ128rmbkz = 8166,
+ VCVTTPS2IUBSZ128rmk = 8167,
+ VCVTTPS2IUBSZ128rmkz = 8168,
+ VCVTTPS2IUBSZ128rr = 8169,
+ VCVTTPS2IUBSZ128rrk = 8170,
+ VCVTTPS2IUBSZ128rrkz = 8171,
+ VCVTTPS2IUBSZ256rm = 8172,
+ VCVTTPS2IUBSZ256rmb = 8173,
+ VCVTTPS2IUBSZ256rmbk = 8174,
+ VCVTTPS2IUBSZ256rmbkz = 8175,
+ VCVTTPS2IUBSZ256rmk = 8176,
+ VCVTTPS2IUBSZ256rmkz = 8177,
+ VCVTTPS2IUBSZ256rr = 8178,
+ VCVTTPS2IUBSZ256rrk = 8179,
+ VCVTTPS2IUBSZ256rrkz = 8180,
+ VCVTTPS2IUBSZrm = 8181,
+ VCVTTPS2IUBSZrmb = 8182,
+ VCVTTPS2IUBSZrmbk = 8183,
+ VCVTTPS2IUBSZrmbkz = 8184,
+ VCVTTPS2IUBSZrmk = 8185,
+ VCVTTPS2IUBSZrmkz = 8186,
+ VCVTTPS2IUBSZrr = 8187,
+ VCVTTPS2IUBSZrrb = 8188,
+ VCVTTPS2IUBSZrrbk = 8189,
+ VCVTTPS2IUBSZrrbkz = 8190,
+ VCVTTPS2IUBSZrrk = 8191,
+ VCVTTPS2IUBSZrrkz = 8192,
+ VCVTTPS2QQSZ128rm = 8193,
+ VCVTTPS2QQSZ128rmb = 8194,
+ VCVTTPS2QQSZ128rmbk = 8195,
+ VCVTTPS2QQSZ128rmbkz = 8196,
+ VCVTTPS2QQSZ128rmk = 8197,
+ VCVTTPS2QQSZ128rmkz = 8198,
+ VCVTTPS2QQSZ128rr = 8199,
+ VCVTTPS2QQSZ128rrk = 8200,
+ VCVTTPS2QQSZ128rrkz = 8201,
+ VCVTTPS2QQSZ256rm = 8202,
+ VCVTTPS2QQSZ256rmb = 8203,
+ VCVTTPS2QQSZ256rmbk = 8204,
+ VCVTTPS2QQSZ256rmbkz = 8205,
+ VCVTTPS2QQSZ256rmk = 8206,
+ VCVTTPS2QQSZ256rmkz = 8207,
+ VCVTTPS2QQSZ256rr = 8208,
+ VCVTTPS2QQSZ256rrb = 8209,
+ VCVTTPS2QQSZ256rrbk = 8210,
+ VCVTTPS2QQSZ256rrbkz = 8211,
+ VCVTTPS2QQSZ256rrk = 8212,
+ VCVTTPS2QQSZ256rrkz = 8213,
+ VCVTTPS2QQSZrm = 8214,
+ VCVTTPS2QQSZrmb = 8215,
+ VCVTTPS2QQSZrmbk = 8216,
+ VCVTTPS2QQSZrmbkz = 8217,
+ VCVTTPS2QQSZrmk = 8218,
+ VCVTTPS2QQSZrmkz = 8219,
+ VCVTTPS2QQSZrr = 8220,
+ VCVTTPS2QQSZrrb = 8221,
+ VCVTTPS2QQSZrrbk = 8222,
+ VCVTTPS2QQSZrrbkz = 8223,
+ VCVTTPS2QQSZrrk = 8224,
+ VCVTTPS2QQSZrrkz = 8225,
+ VCVTTPS2QQZ128rm = 8226,
+ VCVTTPS2QQZ128rmb = 8227,
+ VCVTTPS2QQZ128rmbk = 8228,
+ VCVTTPS2QQZ128rmbkz = 8229,
+ VCVTTPS2QQZ128rmk = 8230,
+ VCVTTPS2QQZ128rmkz = 8231,
+ VCVTTPS2QQZ128rr = 8232,
+ VCVTTPS2QQZ128rrk = 8233,
+ VCVTTPS2QQZ128rrkz = 8234,
+ VCVTTPS2QQZ256rm = 8235,
+ VCVTTPS2QQZ256rmb = 8236,
+ VCVTTPS2QQZ256rmbk = 8237,
+ VCVTTPS2QQZ256rmbkz = 8238,
+ VCVTTPS2QQZ256rmk = 8239,
+ VCVTTPS2QQZ256rmkz = 8240,
+ VCVTTPS2QQZ256rr = 8241,
+ VCVTTPS2QQZ256rrk = 8242,
+ VCVTTPS2QQZ256rrkz = 8243,
+ VCVTTPS2QQZrm = 8244,
+ VCVTTPS2QQZrmb = 8245,
+ VCVTTPS2QQZrmbk = 8246,
+ VCVTTPS2QQZrmbkz = 8247,
+ VCVTTPS2QQZrmk = 8248,
+ VCVTTPS2QQZrmkz = 8249,
+ VCVTTPS2QQZrr = 8250,
+ VCVTTPS2QQZrrb = 8251,
+ VCVTTPS2QQZrrbk = 8252,
+ VCVTTPS2QQZrrbkz = 8253,
+ VCVTTPS2QQZrrk = 8254,
+ VCVTTPS2QQZrrkz = 8255,
+ VCVTTPS2UDQSZ128rm = 8256,
+ VCVTTPS2UDQSZ128rmb = 8257,
+ VCVTTPS2UDQSZ128rmbk = 8258,
+ VCVTTPS2UDQSZ128rmbkz = 8259,
+ VCVTTPS2UDQSZ128rmk = 8260,
+ VCVTTPS2UDQSZ128rmkz = 8261,
+ VCVTTPS2UDQSZ128rr = 8262,
+ VCVTTPS2UDQSZ128rrk = 8263,
+ VCVTTPS2UDQSZ128rrkz = 8264,
+ VCVTTPS2UDQSZ256rm = 8265,
+ VCVTTPS2UDQSZ256rmb = 8266,
+ VCVTTPS2UDQSZ256rmbk = 8267,
+ VCVTTPS2UDQSZ256rmbkz = 8268,
+ VCVTTPS2UDQSZ256rmk = 8269,
+ VCVTTPS2UDQSZ256rmkz = 8270,
+ VCVTTPS2UDQSZ256rr = 8271,
+ VCVTTPS2UDQSZ256rrk = 8272,
+ VCVTTPS2UDQSZ256rrkz = 8273,
+ VCVTTPS2UDQSZrm = 8274,
+ VCVTTPS2UDQSZrmb = 8275,
+ VCVTTPS2UDQSZrmbk = 8276,
+ VCVTTPS2UDQSZrmbkz = 8277,
+ VCVTTPS2UDQSZrmk = 8278,
+ VCVTTPS2UDQSZrmkz = 8279,
+ VCVTTPS2UDQSZrr = 8280,
+ VCVTTPS2UDQSZrrb = 8281,
+ VCVTTPS2UDQSZrrbk = 8282,
+ VCVTTPS2UDQSZrrbkz = 8283,
+ VCVTTPS2UDQSZrrk = 8284,
+ VCVTTPS2UDQSZrrkz = 8285,
+ VCVTTPS2UDQZ128rm = 8286,
+ VCVTTPS2UDQZ128rmb = 8287,
+ VCVTTPS2UDQZ128rmbk = 8288,
+ VCVTTPS2UDQZ128rmbkz = 8289,
+ VCVTTPS2UDQZ128rmk = 8290,
+ VCVTTPS2UDQZ128rmkz = 8291,
+ VCVTTPS2UDQZ128rr = 8292,
+ VCVTTPS2UDQZ128rrk = 8293,
+ VCVTTPS2UDQZ128rrkz = 8294,
+ VCVTTPS2UDQZ256rm = 8295,
+ VCVTTPS2UDQZ256rmb = 8296,
+ VCVTTPS2UDQZ256rmbk = 8297,
+ VCVTTPS2UDQZ256rmbkz = 8298,
+ VCVTTPS2UDQZ256rmk = 8299,
+ VCVTTPS2UDQZ256rmkz = 8300,
+ VCVTTPS2UDQZ256rr = 8301,
+ VCVTTPS2UDQZ256rrk = 8302,
+ VCVTTPS2UDQZ256rrkz = 8303,
+ VCVTTPS2UDQZrm = 8304,
+ VCVTTPS2UDQZrmb = 8305,
+ VCVTTPS2UDQZrmbk = 8306,
+ VCVTTPS2UDQZrmbkz = 8307,
+ VCVTTPS2UDQZrmk = 8308,
+ VCVTTPS2UDQZrmkz = 8309,
+ VCVTTPS2UDQZrr = 8310,
+ VCVTTPS2UDQZrrb = 8311,
+ VCVTTPS2UDQZrrbk = 8312,
+ VCVTTPS2UDQZrrbkz = 8313,
+ VCVTTPS2UDQZrrk = 8314,
+ VCVTTPS2UDQZrrkz = 8315,
+ VCVTTPS2UQQSZ128rm = 8316,
+ VCVTTPS2UQQSZ128rmb = 8317,
+ VCVTTPS2UQQSZ128rmbk = 8318,
+ VCVTTPS2UQQSZ128rmbkz = 8319,
+ VCVTTPS2UQQSZ128rmk = 8320,
+ VCVTTPS2UQQSZ128rmkz = 8321,
+ VCVTTPS2UQQSZ128rr = 8322,
+ VCVTTPS2UQQSZ128rrk = 8323,
+ VCVTTPS2UQQSZ128rrkz = 8324,
+ VCVTTPS2UQQSZ256rm = 8325,
+ VCVTTPS2UQQSZ256rmb = 8326,
+ VCVTTPS2UQQSZ256rmbk = 8327,
+ VCVTTPS2UQQSZ256rmbkz = 8328,
+ VCVTTPS2UQQSZ256rmk = 8329,
+ VCVTTPS2UQQSZ256rmkz = 8330,
+ VCVTTPS2UQQSZ256rr = 8331,
+ VCVTTPS2UQQSZ256rrb = 8332,
+ VCVTTPS2UQQSZ256rrbk = 8333,
+ VCVTTPS2UQQSZ256rrbkz = 8334,
+ VCVTTPS2UQQSZ256rrk = 8335,
+ VCVTTPS2UQQSZ256rrkz = 8336,
+ VCVTTPS2UQQSZrm = 8337,
+ VCVTTPS2UQQSZrmb = 8338,
+ VCVTTPS2UQQSZrmbk = 8339,
+ VCVTTPS2UQQSZrmbkz = 8340,
+ VCVTTPS2UQQSZrmk = 8341,
+ VCVTTPS2UQQSZrmkz = 8342,
+ VCVTTPS2UQQSZrr = 8343,
+ VCVTTPS2UQQSZrrb = 8344,
+ VCVTTPS2UQQSZrrbk = 8345,
+ VCVTTPS2UQQSZrrbkz = 8346,
+ VCVTTPS2UQQSZrrk = 8347,
+ VCVTTPS2UQQSZrrkz = 8348,
+ VCVTTPS2UQQZ128rm = 8349,
+ VCVTTPS2UQQZ128rmb = 8350,
+ VCVTTPS2UQQZ128rmbk = 8351,
+ VCVTTPS2UQQZ128rmbkz = 8352,
+ VCVTTPS2UQQZ128rmk = 8353,
+ VCVTTPS2UQQZ128rmkz = 8354,
+ VCVTTPS2UQQZ128rr = 8355,
+ VCVTTPS2UQQZ128rrk = 8356,
+ VCVTTPS2UQQZ128rrkz = 8357,
+ VCVTTPS2UQQZ256rm = 8358,
+ VCVTTPS2UQQZ256rmb = 8359,
+ VCVTTPS2UQQZ256rmbk = 8360,
+ VCVTTPS2UQQZ256rmbkz = 8361,
+ VCVTTPS2UQQZ256rmk = 8362,
+ VCVTTPS2UQQZ256rmkz = 8363,
+ VCVTTPS2UQQZ256rr = 8364,
+ VCVTTPS2UQQZ256rrk = 8365,
+ VCVTTPS2UQQZ256rrkz = 8366,
+ VCVTTPS2UQQZrm = 8367,
+ VCVTTPS2UQQZrmb = 8368,
+ VCVTTPS2UQQZrmbk = 8369,
+ VCVTTPS2UQQZrmbkz = 8370,
+ VCVTTPS2UQQZrmk = 8371,
+ VCVTTPS2UQQZrmkz = 8372,
+ VCVTTPS2UQQZrr = 8373,
+ VCVTTPS2UQQZrrb = 8374,
+ VCVTTPS2UQQZrrbk = 8375,
+ VCVTTPS2UQQZrrbkz = 8376,
+ VCVTTPS2UQQZrrk = 8377,
+ VCVTTPS2UQQZrrkz = 8378,
+ VCVTTSD2SI64Srm = 8379,
+ VCVTTSD2SI64Srm_Int = 8380,
+ VCVTTSD2SI64Srr = 8381,
+ VCVTTSD2SI64Srr_Int = 8382,
+ VCVTTSD2SI64Srrb_Int = 8383,
+ VCVTTSD2SI64Zrm = 8384,
+ VCVTTSD2SI64Zrm_Int = 8385,
+ VCVTTSD2SI64Zrr = 8386,
+ VCVTTSD2SI64Zrr_Int = 8387,
+ VCVTTSD2SI64Zrrb_Int = 8388,
+ VCVTTSD2SI64rm = 8389,
+ VCVTTSD2SI64rm_Int = 8390,
+ VCVTTSD2SI64rr = 8391,
+ VCVTTSD2SI64rr_Int = 8392,
+ VCVTTSD2SISrm = 8393,
+ VCVTTSD2SISrm_Int = 8394,
+ VCVTTSD2SISrr = 8395,
+ VCVTTSD2SISrr_Int = 8396,
+ VCVTTSD2SISrrb_Int = 8397,
+ VCVTTSD2SIZrm = 8398,
+ VCVTTSD2SIZrm_Int = 8399,
+ VCVTTSD2SIZrr = 8400,
+ VCVTTSD2SIZrr_Int = 8401,
+ VCVTTSD2SIZrrb_Int = 8402,
+ VCVTTSD2SIrm = 8403,
+ VCVTTSD2SIrm_Int = 8404,
+ VCVTTSD2SIrr = 8405,
+ VCVTTSD2SIrr_Int = 8406,
+ VCVTTSD2USI64Srm = 8407,
+ VCVTTSD2USI64Srm_Int = 8408,
+ VCVTTSD2USI64Srr = 8409,
+ VCVTTSD2USI64Srr_Int = 8410,
+ VCVTTSD2USI64Srrb_Int = 8411,
+ VCVTTSD2USI64Zrm = 8412,
+ VCVTTSD2USI64Zrm_Int = 8413,
+ VCVTTSD2USI64Zrr = 8414,
+ VCVTTSD2USI64Zrr_Int = 8415,
+ VCVTTSD2USI64Zrrb_Int = 8416,
+ VCVTTSD2USISrm = 8417,
+ VCVTTSD2USISrm_Int = 8418,
+ VCVTTSD2USISrr = 8419,
+ VCVTTSD2USISrr_Int = 8420,
+ VCVTTSD2USISrrb_Int = 8421,
+ VCVTTSD2USIZrm = 8422,
+ VCVTTSD2USIZrm_Int = 8423,
+ VCVTTSD2USIZrr = 8424,
+ VCVTTSD2USIZrr_Int = 8425,
+ VCVTTSD2USIZrrb_Int = 8426,
+ VCVTTSH2SI64Zrm = 8427,
+ VCVTTSH2SI64Zrm_Int = 8428,
+ VCVTTSH2SI64Zrr = 8429,
+ VCVTTSH2SI64Zrr_Int = 8430,
+ VCVTTSH2SI64Zrrb_Int = 8431,
+ VCVTTSH2SIZrm = 8432,
+ VCVTTSH2SIZrm_Int = 8433,
+ VCVTTSH2SIZrr = 8434,
+ VCVTTSH2SIZrr_Int = 8435,
+ VCVTTSH2SIZrrb_Int = 8436,
+ VCVTTSH2USI64Zrm = 8437,
+ VCVTTSH2USI64Zrm_Int = 8438,
+ VCVTTSH2USI64Zrr = 8439,
+ VCVTTSH2USI64Zrr_Int = 8440,
+ VCVTTSH2USI64Zrrb_Int = 8441,
+ VCVTTSH2USIZrm = 8442,
+ VCVTTSH2USIZrm_Int = 8443,
+ VCVTTSH2USIZrr = 8444,
+ VCVTTSH2USIZrr_Int = 8445,
+ VCVTTSH2USIZrrb_Int = 8446,
+ VCVTTSS2SI64Srm = 8447,
+ VCVTTSS2SI64Srm_Int = 8448,
+ VCVTTSS2SI64Srr = 8449,
+ VCVTTSS2SI64Srr_Int = 8450,
+ VCVTTSS2SI64Srrb_Int = 8451,
+ VCVTTSS2SI64Zrm = 8452,
+ VCVTTSS2SI64Zrm_Int = 8453,
+ VCVTTSS2SI64Zrr = 8454,
+ VCVTTSS2SI64Zrr_Int = 8455,
+ VCVTTSS2SI64Zrrb_Int = 8456,
+ VCVTTSS2SI64rm = 8457,
+ VCVTTSS2SI64rm_Int = 8458,
+ VCVTTSS2SI64rr = 8459,
+ VCVTTSS2SI64rr_Int = 8460,
+ VCVTTSS2SISrm = 8461,
+ VCVTTSS2SISrm_Int = 8462,
+ VCVTTSS2SISrr = 8463,
+ VCVTTSS2SISrr_Int = 8464,
+ VCVTTSS2SISrrb_Int = 8465,
+ VCVTTSS2SIZrm = 8466,
+ VCVTTSS2SIZrm_Int = 8467,
+ VCVTTSS2SIZrr = 8468,
+ VCVTTSS2SIZrr_Int = 8469,
+ VCVTTSS2SIZrrb_Int = 8470,
+ VCVTTSS2SIrm = 8471,
+ VCVTTSS2SIrm_Int = 8472,
+ VCVTTSS2SIrr = 8473,
+ VCVTTSS2SIrr_Int = 8474,
+ VCVTTSS2USI64Srm = 8475,
+ VCVTTSS2USI64Srm_Int = 8476,
+ VCVTTSS2USI64Srr = 8477,
+ VCVTTSS2USI64Srr_Int = 8478,
+ VCVTTSS2USI64Srrb_Int = 8479,
+ VCVTTSS2USI64Zrm = 8480,
+ VCVTTSS2USI64Zrm_Int = 8481,
+ VCVTTSS2USI64Zrr = 8482,
+ VCVTTSS2USI64Zrr_Int = 8483,
+ VCVTTSS2USI64Zrrb_Int = 8484,
+ VCVTTSS2USISrm = 8485,
+ VCVTTSS2USISrm_Int = 8486,
+ VCVTTSS2USISrr = 8487,
+ VCVTTSS2USISrr_Int = 8488,
+ VCVTTSS2USISrrb_Int = 8489,
+ VCVTTSS2USIZrm = 8490,
+ VCVTTSS2USIZrm_Int = 8491,
+ VCVTTSS2USIZrr = 8492,
+ VCVTTSS2USIZrr_Int = 8493,
+ VCVTTSS2USIZrrb_Int = 8494,
+ VCVTUDQ2PDZ128rm = 8495,
+ VCVTUDQ2PDZ128rmb = 8496,
+ VCVTUDQ2PDZ128rmbk = 8497,
+ VCVTUDQ2PDZ128rmbkz = 8498,
+ VCVTUDQ2PDZ128rmk = 8499,
+ VCVTUDQ2PDZ128rmkz = 8500,
+ VCVTUDQ2PDZ128rr = 8501,
+ VCVTUDQ2PDZ128rrk = 8502,
+ VCVTUDQ2PDZ128rrkz = 8503,
+ VCVTUDQ2PDZ256rm = 8504,
+ VCVTUDQ2PDZ256rmb = 8505,
+ VCVTUDQ2PDZ256rmbk = 8506,
+ VCVTUDQ2PDZ256rmbkz = 8507,
+ VCVTUDQ2PDZ256rmk = 8508,
+ VCVTUDQ2PDZ256rmkz = 8509,
+ VCVTUDQ2PDZ256rr = 8510,
+ VCVTUDQ2PDZ256rrk = 8511,
+ VCVTUDQ2PDZ256rrkz = 8512,
+ VCVTUDQ2PDZrm = 8513,
+ VCVTUDQ2PDZrmb = 8514,
+ VCVTUDQ2PDZrmbk = 8515,
+ VCVTUDQ2PDZrmbkz = 8516,
+ VCVTUDQ2PDZrmk = 8517,
+ VCVTUDQ2PDZrmkz = 8518,
+ VCVTUDQ2PDZrr = 8519,
+ VCVTUDQ2PDZrrk = 8520,
+ VCVTUDQ2PDZrrkz = 8521,
+ VCVTUDQ2PHZ128rm = 8522,
+ VCVTUDQ2PHZ128rmb = 8523,
+ VCVTUDQ2PHZ128rmbk = 8524,
+ VCVTUDQ2PHZ128rmbkz = 8525,
+ VCVTUDQ2PHZ128rmk = 8526,
+ VCVTUDQ2PHZ128rmkz = 8527,
+ VCVTUDQ2PHZ128rr = 8528,
+ VCVTUDQ2PHZ128rrk = 8529,
+ VCVTUDQ2PHZ128rrkz = 8530,
+ VCVTUDQ2PHZ256rm = 8531,
+ VCVTUDQ2PHZ256rmb = 8532,
+ VCVTUDQ2PHZ256rmbk = 8533,
+ VCVTUDQ2PHZ256rmbkz = 8534,
+ VCVTUDQ2PHZ256rmk = 8535,
+ VCVTUDQ2PHZ256rmkz = 8536,
+ VCVTUDQ2PHZ256rr = 8537,
+ VCVTUDQ2PHZ256rrk = 8538,
+ VCVTUDQ2PHZ256rrkz = 8539,
+ VCVTUDQ2PHZrm = 8540,
+ VCVTUDQ2PHZrmb = 8541,
+ VCVTUDQ2PHZrmbk = 8542,
+ VCVTUDQ2PHZrmbkz = 8543,
+ VCVTUDQ2PHZrmk = 8544,
+ VCVTUDQ2PHZrmkz = 8545,
+ VCVTUDQ2PHZrr = 8546,
+ VCVTUDQ2PHZrrb = 8547,
+ VCVTUDQ2PHZrrbk = 8548,
+ VCVTUDQ2PHZrrbkz = 8549,
+ VCVTUDQ2PHZrrk = 8550,
+ VCVTUDQ2PHZrrkz = 8551,
+ VCVTUDQ2PSZ128rm = 8552,
+ VCVTUDQ2PSZ128rmb = 8553,
+ VCVTUDQ2PSZ128rmbk = 8554,
+ VCVTUDQ2PSZ128rmbkz = 8555,
+ VCVTUDQ2PSZ128rmk = 8556,
+ VCVTUDQ2PSZ128rmkz = 8557,
+ VCVTUDQ2PSZ128rr = 8558,
+ VCVTUDQ2PSZ128rrk = 8559,
+ VCVTUDQ2PSZ128rrkz = 8560,
+ VCVTUDQ2PSZ256rm = 8561,
+ VCVTUDQ2PSZ256rmb = 8562,
+ VCVTUDQ2PSZ256rmbk = 8563,
+ VCVTUDQ2PSZ256rmbkz = 8564,
+ VCVTUDQ2PSZ256rmk = 8565,
+ VCVTUDQ2PSZ256rmkz = 8566,
+ VCVTUDQ2PSZ256rr = 8567,
+ VCVTUDQ2PSZ256rrk = 8568,
+ VCVTUDQ2PSZ256rrkz = 8569,
+ VCVTUDQ2PSZrm = 8570,
+ VCVTUDQ2PSZrmb = 8571,
+ VCVTUDQ2PSZrmbk = 8572,
+ VCVTUDQ2PSZrmbkz = 8573,
+ VCVTUDQ2PSZrmk = 8574,
+ VCVTUDQ2PSZrmkz = 8575,
+ VCVTUDQ2PSZrr = 8576,
+ VCVTUDQ2PSZrrb = 8577,
+ VCVTUDQ2PSZrrbk = 8578,
+ VCVTUDQ2PSZrrbkz = 8579,
+ VCVTUDQ2PSZrrk = 8580,
+ VCVTUDQ2PSZrrkz = 8581,
+ VCVTUQQ2PDZ128rm = 8582,
+ VCVTUQQ2PDZ128rmb = 8583,
+ VCVTUQQ2PDZ128rmbk = 8584,
+ VCVTUQQ2PDZ128rmbkz = 8585,
+ VCVTUQQ2PDZ128rmk = 8586,
+ VCVTUQQ2PDZ128rmkz = 8587,
+ VCVTUQQ2PDZ128rr = 8588,
+ VCVTUQQ2PDZ128rrk = 8589,
+ VCVTUQQ2PDZ128rrkz = 8590,
+ VCVTUQQ2PDZ256rm = 8591,
+ VCVTUQQ2PDZ256rmb = 8592,
+ VCVTUQQ2PDZ256rmbk = 8593,
+ VCVTUQQ2PDZ256rmbkz = 8594,
+ VCVTUQQ2PDZ256rmk = 8595,
+ VCVTUQQ2PDZ256rmkz = 8596,
+ VCVTUQQ2PDZ256rr = 8597,
+ VCVTUQQ2PDZ256rrk = 8598,
+ VCVTUQQ2PDZ256rrkz = 8599,
+ VCVTUQQ2PDZrm = 8600,
+ VCVTUQQ2PDZrmb = 8601,
+ VCVTUQQ2PDZrmbk = 8602,
+ VCVTUQQ2PDZrmbkz = 8603,
+ VCVTUQQ2PDZrmk = 8604,
+ VCVTUQQ2PDZrmkz = 8605,
+ VCVTUQQ2PDZrr = 8606,
+ VCVTUQQ2PDZrrb = 8607,
+ VCVTUQQ2PDZrrbk = 8608,
+ VCVTUQQ2PDZrrbkz = 8609,
+ VCVTUQQ2PDZrrk = 8610,
+ VCVTUQQ2PDZrrkz = 8611,
+ VCVTUQQ2PHZ128rm = 8612,
+ VCVTUQQ2PHZ128rmb = 8613,
+ VCVTUQQ2PHZ128rmbk = 8614,
+ VCVTUQQ2PHZ128rmbkz = 8615,
+ VCVTUQQ2PHZ128rmk = 8616,
+ VCVTUQQ2PHZ128rmkz = 8617,
+ VCVTUQQ2PHZ128rr = 8618,
+ VCVTUQQ2PHZ128rrk = 8619,
+ VCVTUQQ2PHZ128rrkz = 8620,
+ VCVTUQQ2PHZ256rm = 8621,
+ VCVTUQQ2PHZ256rmb = 8622,
+ VCVTUQQ2PHZ256rmbk = 8623,
+ VCVTUQQ2PHZ256rmbkz = 8624,
+ VCVTUQQ2PHZ256rmk = 8625,
+ VCVTUQQ2PHZ256rmkz = 8626,
+ VCVTUQQ2PHZ256rr = 8627,
+ VCVTUQQ2PHZ256rrk = 8628,
+ VCVTUQQ2PHZ256rrkz = 8629,
+ VCVTUQQ2PHZrm = 8630,
+ VCVTUQQ2PHZrmb = 8631,
+ VCVTUQQ2PHZrmbk = 8632,
+ VCVTUQQ2PHZrmbkz = 8633,
+ VCVTUQQ2PHZrmk = 8634,
+ VCVTUQQ2PHZrmkz = 8635,
+ VCVTUQQ2PHZrr = 8636,
+ VCVTUQQ2PHZrrb = 8637,
+ VCVTUQQ2PHZrrbk = 8638,
+ VCVTUQQ2PHZrrbkz = 8639,
+ VCVTUQQ2PHZrrk = 8640,
+ VCVTUQQ2PHZrrkz = 8641,
+ VCVTUQQ2PSZ128rm = 8642,
+ VCVTUQQ2PSZ128rmb = 8643,
+ VCVTUQQ2PSZ128rmbk = 8644,
+ VCVTUQQ2PSZ128rmbkz = 8645,
+ VCVTUQQ2PSZ128rmk = 8646,
+ VCVTUQQ2PSZ128rmkz = 8647,
+ VCVTUQQ2PSZ128rr = 8648,
+ VCVTUQQ2PSZ128rrk = 8649,
+ VCVTUQQ2PSZ128rrkz = 8650,
+ VCVTUQQ2PSZ256rm = 8651,
+ VCVTUQQ2PSZ256rmb = 8652,
+ VCVTUQQ2PSZ256rmbk = 8653,
+ VCVTUQQ2PSZ256rmbkz = 8654,
+ VCVTUQQ2PSZ256rmk = 8655,
+ VCVTUQQ2PSZ256rmkz = 8656,
+ VCVTUQQ2PSZ256rr = 8657,
+ VCVTUQQ2PSZ256rrk = 8658,
+ VCVTUQQ2PSZ256rrkz = 8659,
+ VCVTUQQ2PSZrm = 8660,
+ VCVTUQQ2PSZrmb = 8661,
+ VCVTUQQ2PSZrmbk = 8662,
+ VCVTUQQ2PSZrmbkz = 8663,
+ VCVTUQQ2PSZrmk = 8664,
+ VCVTUQQ2PSZrmkz = 8665,
+ VCVTUQQ2PSZrr = 8666,
+ VCVTUQQ2PSZrrb = 8667,
+ VCVTUQQ2PSZrrbk = 8668,
+ VCVTUQQ2PSZrrbkz = 8669,
+ VCVTUQQ2PSZrrk = 8670,
+ VCVTUQQ2PSZrrkz = 8671,
+ VCVTUSI2SDZrm = 8672,
+ VCVTUSI2SDZrm_Int = 8673,
+ VCVTUSI2SDZrr = 8674,
+ VCVTUSI2SDZrr_Int = 8675,
+ VCVTUSI2SHZrm = 8676,
+ VCVTUSI2SHZrm_Int = 8677,
+ VCVTUSI2SHZrr = 8678,
+ VCVTUSI2SHZrr_Int = 8679,
+ VCVTUSI2SHZrrb_Int = 8680,
+ VCVTUSI2SSZrm = 8681,
+ VCVTUSI2SSZrm_Int = 8682,
+ VCVTUSI2SSZrr = 8683,
+ VCVTUSI2SSZrr_Int = 8684,
+ VCVTUSI2SSZrrb_Int = 8685,
+ VCVTUSI642SDZrm = 8686,
+ VCVTUSI642SDZrm_Int = 8687,
+ VCVTUSI642SDZrr = 8688,
+ VCVTUSI642SDZrr_Int = 8689,
+ VCVTUSI642SDZrrb_Int = 8690,
+ VCVTUSI642SHZrm = 8691,
+ VCVTUSI642SHZrm_Int = 8692,
+ VCVTUSI642SHZrr = 8693,
+ VCVTUSI642SHZrr_Int = 8694,
+ VCVTUSI642SHZrrb_Int = 8695,
+ VCVTUSI642SSZrm = 8696,
+ VCVTUSI642SSZrm_Int = 8697,
+ VCVTUSI642SSZrr = 8698,
+ VCVTUSI642SSZrr_Int = 8699,
+ VCVTUSI642SSZrrb_Int = 8700,
+ VCVTUW2PHZ128rm = 8701,
+ VCVTUW2PHZ128rmb = 8702,
+ VCVTUW2PHZ128rmbk = 8703,
+ VCVTUW2PHZ128rmbkz = 8704,
+ VCVTUW2PHZ128rmk = 8705,
+ VCVTUW2PHZ128rmkz = 8706,
+ VCVTUW2PHZ128rr = 8707,
+ VCVTUW2PHZ128rrk = 8708,
+ VCVTUW2PHZ128rrkz = 8709,
+ VCVTUW2PHZ256rm = 8710,
+ VCVTUW2PHZ256rmb = 8711,
+ VCVTUW2PHZ256rmbk = 8712,
+ VCVTUW2PHZ256rmbkz = 8713,
+ VCVTUW2PHZ256rmk = 8714,
+ VCVTUW2PHZ256rmkz = 8715,
+ VCVTUW2PHZ256rr = 8716,
+ VCVTUW2PHZ256rrk = 8717,
+ VCVTUW2PHZ256rrkz = 8718,
+ VCVTUW2PHZrm = 8719,
+ VCVTUW2PHZrmb = 8720,
+ VCVTUW2PHZrmbk = 8721,
+ VCVTUW2PHZrmbkz = 8722,
+ VCVTUW2PHZrmk = 8723,
+ VCVTUW2PHZrmkz = 8724,
+ VCVTUW2PHZrr = 8725,
+ VCVTUW2PHZrrb = 8726,
+ VCVTUW2PHZrrbk = 8727,
+ VCVTUW2PHZrrbkz = 8728,
+ VCVTUW2PHZrrk = 8729,
+ VCVTUW2PHZrrkz = 8730,
+ VCVTW2PHZ128rm = 8731,
+ VCVTW2PHZ128rmb = 8732,
+ VCVTW2PHZ128rmbk = 8733,
+ VCVTW2PHZ128rmbkz = 8734,
+ VCVTW2PHZ128rmk = 8735,
+ VCVTW2PHZ128rmkz = 8736,
+ VCVTW2PHZ128rr = 8737,
+ VCVTW2PHZ128rrk = 8738,
+ VCVTW2PHZ128rrkz = 8739,
+ VCVTW2PHZ256rm = 8740,
+ VCVTW2PHZ256rmb = 8741,
+ VCVTW2PHZ256rmbk = 8742,
+ VCVTW2PHZ256rmbkz = 8743,
+ VCVTW2PHZ256rmk = 8744,
+ VCVTW2PHZ256rmkz = 8745,
+ VCVTW2PHZ256rr = 8746,
+ VCVTW2PHZ256rrk = 8747,
+ VCVTW2PHZ256rrkz = 8748,
+ VCVTW2PHZrm = 8749,
+ VCVTW2PHZrmb = 8750,
+ VCVTW2PHZrmbk = 8751,
+ VCVTW2PHZrmbkz = 8752,
+ VCVTW2PHZrmk = 8753,
+ VCVTW2PHZrmkz = 8754,
+ VCVTW2PHZrr = 8755,
+ VCVTW2PHZrrb = 8756,
+ VCVTW2PHZrrbk = 8757,
+ VCVTW2PHZrrbkz = 8758,
+ VCVTW2PHZrrk = 8759,
+ VCVTW2PHZrrkz = 8760,
+ VDBPSADBWZ128rmi = 8761,
+ VDBPSADBWZ128rmik = 8762,
+ VDBPSADBWZ128rmikz = 8763,
+ VDBPSADBWZ128rri = 8764,
+ VDBPSADBWZ128rrik = 8765,
+ VDBPSADBWZ128rrikz = 8766,
+ VDBPSADBWZ256rmi = 8767,
+ VDBPSADBWZ256rmik = 8768,
+ VDBPSADBWZ256rmikz = 8769,
+ VDBPSADBWZ256rri = 8770,
+ VDBPSADBWZ256rrik = 8771,
+ VDBPSADBWZ256rrikz = 8772,
+ VDBPSADBWZrmi = 8773,
+ VDBPSADBWZrmik = 8774,
+ VDBPSADBWZrmikz = 8775,
+ VDBPSADBWZrri = 8776,
+ VDBPSADBWZrrik = 8777,
+ VDBPSADBWZrrikz = 8778,
+ VDIVBF16Z128rm = 8779,
+ VDIVBF16Z128rmb = 8780,
+ VDIVBF16Z128rmbk = 8781,
+ VDIVBF16Z128rmbkz = 8782,
+ VDIVBF16Z128rmk = 8783,
+ VDIVBF16Z128rmkz = 8784,
+ VDIVBF16Z128rr = 8785,
+ VDIVBF16Z128rrk = 8786,
+ VDIVBF16Z128rrkz = 8787,
+ VDIVBF16Z256rm = 8788,
+ VDIVBF16Z256rmb = 8789,
+ VDIVBF16Z256rmbk = 8790,
+ VDIVBF16Z256rmbkz = 8791,
+ VDIVBF16Z256rmk = 8792,
+ VDIVBF16Z256rmkz = 8793,
+ VDIVBF16Z256rr = 8794,
+ VDIVBF16Z256rrk = 8795,
+ VDIVBF16Z256rrkz = 8796,
+ VDIVBF16Zrm = 8797,
+ VDIVBF16Zrmb = 8798,
+ VDIVBF16Zrmbk = 8799,
+ VDIVBF16Zrmbkz = 8800,
+ VDIVBF16Zrmk = 8801,
+ VDIVBF16Zrmkz = 8802,
+ VDIVBF16Zrr = 8803,
+ VDIVBF16Zrrk = 8804,
+ VDIVBF16Zrrkz = 8805,
+ VDIVPDYrm = 8806,
+ VDIVPDYrr = 8807,
+ VDIVPDZ128rm = 8808,
+ VDIVPDZ128rmb = 8809,
+ VDIVPDZ128rmbk = 8810,
+ VDIVPDZ128rmbkz = 8811,
+ VDIVPDZ128rmk = 8812,
+ VDIVPDZ128rmkz = 8813,
+ VDIVPDZ128rr = 8814,
+ VDIVPDZ128rrk = 8815,
+ VDIVPDZ128rrkz = 8816,
+ VDIVPDZ256rm = 8817,
+ VDIVPDZ256rmb = 8818,
+ VDIVPDZ256rmbk = 8819,
+ VDIVPDZ256rmbkz = 8820,
+ VDIVPDZ256rmk = 8821,
+ VDIVPDZ256rmkz = 8822,
+ VDIVPDZ256rr = 8823,
+ VDIVPDZ256rrk = 8824,
+ VDIVPDZ256rrkz = 8825,
+ VDIVPDZrm = 8826,
+ VDIVPDZrmb = 8827,
+ VDIVPDZrmbk = 8828,
+ VDIVPDZrmbkz = 8829,
+ VDIVPDZrmk = 8830,
+ VDIVPDZrmkz = 8831,
+ VDIVPDZrr = 8832,
+ VDIVPDZrrb = 8833,
+ VDIVPDZrrbk = 8834,
+ VDIVPDZrrbkz = 8835,
+ VDIVPDZrrk = 8836,
+ VDIVPDZrrkz = 8837,
+ VDIVPDrm = 8838,
+ VDIVPDrr = 8839,
+ VDIVPHZ128rm = 8840,
+ VDIVPHZ128rmb = 8841,
+ VDIVPHZ128rmbk = 8842,
+ VDIVPHZ128rmbkz = 8843,
+ VDIVPHZ128rmk = 8844,
+ VDIVPHZ128rmkz = 8845,
+ VDIVPHZ128rr = 8846,
+ VDIVPHZ128rrk = 8847,
+ VDIVPHZ128rrkz = 8848,
+ VDIVPHZ256rm = 8849,
+ VDIVPHZ256rmb = 8850,
+ VDIVPHZ256rmbk = 8851,
+ VDIVPHZ256rmbkz = 8852,
+ VDIVPHZ256rmk = 8853,
+ VDIVPHZ256rmkz = 8854,
+ VDIVPHZ256rr = 8855,
+ VDIVPHZ256rrk = 8856,
+ VDIVPHZ256rrkz = 8857,
+ VDIVPHZrm = 8858,
+ VDIVPHZrmb = 8859,
+ VDIVPHZrmbk = 8860,
+ VDIVPHZrmbkz = 8861,
+ VDIVPHZrmk = 8862,
+ VDIVPHZrmkz = 8863,
+ VDIVPHZrr = 8864,
+ VDIVPHZrrb = 8865,
+ VDIVPHZrrbk = 8866,
+ VDIVPHZrrbkz = 8867,
+ VDIVPHZrrk = 8868,
+ VDIVPHZrrkz = 8869,
+ VDIVPSYrm = 8870,
+ VDIVPSYrr = 8871,
+ VDIVPSZ128rm = 8872,
+ VDIVPSZ128rmb = 8873,
+ VDIVPSZ128rmbk = 8874,
+ VDIVPSZ128rmbkz = 8875,
+ VDIVPSZ128rmk = 8876,
+ VDIVPSZ128rmkz = 8877,
+ VDIVPSZ128rr = 8878,
+ VDIVPSZ128rrk = 8879,
+ VDIVPSZ128rrkz = 8880,
+ VDIVPSZ256rm = 8881,
+ VDIVPSZ256rmb = 8882,
+ VDIVPSZ256rmbk = 8883,
+ VDIVPSZ256rmbkz = 8884,
+ VDIVPSZ256rmk = 8885,
+ VDIVPSZ256rmkz = 8886,
+ VDIVPSZ256rr = 8887,
+ VDIVPSZ256rrk = 8888,
+ VDIVPSZ256rrkz = 8889,
+ VDIVPSZrm = 8890,
+ VDIVPSZrmb = 8891,
+ VDIVPSZrmbk = 8892,
+ VDIVPSZrmbkz = 8893,
+ VDIVPSZrmk = 8894,
+ VDIVPSZrmkz = 8895,
+ VDIVPSZrr = 8896,
+ VDIVPSZrrb = 8897,
+ VDIVPSZrrbk = 8898,
+ VDIVPSZrrbkz = 8899,
+ VDIVPSZrrk = 8900,
+ VDIVPSZrrkz = 8901,
+ VDIVPSrm = 8902,
+ VDIVPSrr = 8903,
+ VDIVSDZrm = 8904,
+ VDIVSDZrm_Int = 8905,
+ VDIVSDZrmk_Int = 8906,
+ VDIVSDZrmkz_Int = 8907,
+ VDIVSDZrr = 8908,
+ VDIVSDZrr_Int = 8909,
+ VDIVSDZrrb_Int = 8910,
+ VDIVSDZrrbk_Int = 8911,
+ VDIVSDZrrbkz_Int = 8912,
+ VDIVSDZrrk_Int = 8913,
+ VDIVSDZrrkz_Int = 8914,
+ VDIVSDrm = 8915,
+ VDIVSDrm_Int = 8916,
+ VDIVSDrr = 8917,
+ VDIVSDrr_Int = 8918,
+ VDIVSHZrm = 8919,
+ VDIVSHZrm_Int = 8920,
+ VDIVSHZrmk_Int = 8921,
+ VDIVSHZrmkz_Int = 8922,
+ VDIVSHZrr = 8923,
+ VDIVSHZrr_Int = 8924,
+ VDIVSHZrrb_Int = 8925,
+ VDIVSHZrrbk_Int = 8926,
+ VDIVSHZrrbkz_Int = 8927,
+ VDIVSHZrrk_Int = 8928,
+ VDIVSHZrrkz_Int = 8929,
+ VDIVSSZrm = 8930,
+ VDIVSSZrm_Int = 8931,
+ VDIVSSZrmk_Int = 8932,
+ VDIVSSZrmkz_Int = 8933,
+ VDIVSSZrr = 8934,
+ VDIVSSZrr_Int = 8935,
+ VDIVSSZrrb_Int = 8936,
+ VDIVSSZrrbk_Int = 8937,
+ VDIVSSZrrbkz_Int = 8938,
+ VDIVSSZrrk_Int = 8939,
+ VDIVSSZrrkz_Int = 8940,
+ VDIVSSrm = 8941,
+ VDIVSSrm_Int = 8942,
+ VDIVSSrr = 8943,
+ VDIVSSrr_Int = 8944,
+ VDPBF16PSZ128m = 8945,
+ VDPBF16PSZ128mb = 8946,
+ VDPBF16PSZ128mbk = 8947,
+ VDPBF16PSZ128mbkz = 8948,
+ VDPBF16PSZ128mk = 8949,
+ VDPBF16PSZ128mkz = 8950,
+ VDPBF16PSZ128r = 8951,
+ VDPBF16PSZ128rk = 8952,
+ VDPBF16PSZ128rkz = 8953,
+ VDPBF16PSZ256m = 8954,
+ VDPBF16PSZ256mb = 8955,
+ VDPBF16PSZ256mbk = 8956,
+ VDPBF16PSZ256mbkz = 8957,
+ VDPBF16PSZ256mk = 8958,
+ VDPBF16PSZ256mkz = 8959,
+ VDPBF16PSZ256r = 8960,
+ VDPBF16PSZ256rk = 8961,
+ VDPBF16PSZ256rkz = 8962,
+ VDPBF16PSZm = 8963,
+ VDPBF16PSZmb = 8964,
+ VDPBF16PSZmbk = 8965,
+ VDPBF16PSZmbkz = 8966,
+ VDPBF16PSZmk = 8967,
+ VDPBF16PSZmkz = 8968,
+ VDPBF16PSZr = 8969,
+ VDPBF16PSZrk = 8970,
+ VDPBF16PSZrkz = 8971,
+ VDPPDrmi = 8972,
+ VDPPDrri = 8973,
+ VDPPHPSZ128m = 8974,
+ VDPPHPSZ128mb = 8975,
+ VDPPHPSZ128mbk = 8976,
+ VDPPHPSZ128mbkz = 8977,
+ VDPPHPSZ128mk = 8978,
+ VDPPHPSZ128mkz = 8979,
+ VDPPHPSZ128r = 8980,
+ VDPPHPSZ128rk = 8981,
+ VDPPHPSZ128rkz = 8982,
+ VDPPHPSZ256m = 8983,
+ VDPPHPSZ256mb = 8984,
+ VDPPHPSZ256mbk = 8985,
+ VDPPHPSZ256mbkz = 8986,
+ VDPPHPSZ256mk = 8987,
+ VDPPHPSZ256mkz = 8988,
+ VDPPHPSZ256r = 8989,
+ VDPPHPSZ256rk = 8990,
+ VDPPHPSZ256rkz = 8991,
+ VDPPHPSZm = 8992,
+ VDPPHPSZmb = 8993,
+ VDPPHPSZmbk = 8994,
+ VDPPHPSZmbkz = 8995,
+ VDPPHPSZmk = 8996,
+ VDPPHPSZmkz = 8997,
+ VDPPHPSZr = 8998,
+ VDPPHPSZrk = 8999,
+ VDPPHPSZrkz = 9000,
+ VDPPSYrmi = 9001,
+ VDPPSYrri = 9002,
+ VDPPSrmi = 9003,
+ VDPPSrri = 9004,
+ VERRm = 9005,
+ VERRr = 9006,
+ VERWm = 9007,
+ VERWr = 9008,
+ VEXP2PDZm = 9009,
+ VEXP2PDZmb = 9010,
+ VEXP2PDZmbk = 9011,
+ VEXP2PDZmbkz = 9012,
+ VEXP2PDZmk = 9013,
+ VEXP2PDZmkz = 9014,
+ VEXP2PDZr = 9015,
+ VEXP2PDZrb = 9016,
+ VEXP2PDZrbk = 9017,
+ VEXP2PDZrbkz = 9018,
+ VEXP2PDZrk = 9019,
+ VEXP2PDZrkz = 9020,
+ VEXP2PSZm = 9021,
+ VEXP2PSZmb = 9022,
+ VEXP2PSZmbk = 9023,
+ VEXP2PSZmbkz = 9024,
+ VEXP2PSZmk = 9025,
+ VEXP2PSZmkz = 9026,
+ VEXP2PSZr = 9027,
+ VEXP2PSZrb = 9028,
+ VEXP2PSZrbk = 9029,
+ VEXP2PSZrbkz = 9030,
+ VEXP2PSZrk = 9031,
+ VEXP2PSZrkz = 9032,
+ VEXPANDPDZ128rm = 9033,
+ VEXPANDPDZ128rmk = 9034,
+ VEXPANDPDZ128rmkz = 9035,
+ VEXPANDPDZ128rr = 9036,
+ VEXPANDPDZ128rrk = 9037,
+ VEXPANDPDZ128rrkz = 9038,
+ VEXPANDPDZ256rm = 9039,
+ VEXPANDPDZ256rmk = 9040,
+ VEXPANDPDZ256rmkz = 9041,
+ VEXPANDPDZ256rr = 9042,
+ VEXPANDPDZ256rrk = 9043,
+ VEXPANDPDZ256rrkz = 9044,
+ VEXPANDPDZrm = 9045,
+ VEXPANDPDZrmk = 9046,
+ VEXPANDPDZrmkz = 9047,
+ VEXPANDPDZrr = 9048,
+ VEXPANDPDZrrk = 9049,
+ VEXPANDPDZrrkz = 9050,
+ VEXPANDPSZ128rm = 9051,
+ VEXPANDPSZ128rmk = 9052,
+ VEXPANDPSZ128rmkz = 9053,
+ VEXPANDPSZ128rr = 9054,
+ VEXPANDPSZ128rrk = 9055,
+ VEXPANDPSZ128rrkz = 9056,
+ VEXPANDPSZ256rm = 9057,
+ VEXPANDPSZ256rmk = 9058,
+ VEXPANDPSZ256rmkz = 9059,
+ VEXPANDPSZ256rr = 9060,
+ VEXPANDPSZ256rrk = 9061,
+ VEXPANDPSZ256rrkz = 9062,
+ VEXPANDPSZrm = 9063,
+ VEXPANDPSZrmk = 9064,
+ VEXPANDPSZrmkz = 9065,
+ VEXPANDPSZrr = 9066,
+ VEXPANDPSZrrk = 9067,
+ VEXPANDPSZrrkz = 9068,
+ VEXTRACTF128mri = 9069,
+ VEXTRACTF128rri = 9070,
+ VEXTRACTF32X4Z256mri = 9071,
+ VEXTRACTF32X4Z256mrik = 9072,
+ VEXTRACTF32X4Z256rri = 9073,
+ VEXTRACTF32X4Z256rrik = 9074,
+ VEXTRACTF32X4Z256rrikz = 9075,
+ VEXTRACTF32X4Zmri = 9076,
+ VEXTRACTF32X4Zmrik = 9077,
+ VEXTRACTF32X4Zrri = 9078,
+ VEXTRACTF32X4Zrrik = 9079,
+ VEXTRACTF32X4Zrrikz = 9080,
+ VEXTRACTF32X8Zmri = 9081,
+ VEXTRACTF32X8Zmrik = 9082,
+ VEXTRACTF32X8Zrri = 9083,
+ VEXTRACTF32X8Zrrik = 9084,
+ VEXTRACTF32X8Zrrikz = 9085,
+ VEXTRACTF64X2Z256mri = 9086,
+ VEXTRACTF64X2Z256mrik = 9087,
+ VEXTRACTF64X2Z256rri = 9088,
+ VEXTRACTF64X2Z256rrik = 9089,
+ VEXTRACTF64X2Z256rrikz = 9090,
+ VEXTRACTF64X2Zmri = 9091,
+ VEXTRACTF64X2Zmrik = 9092,
+ VEXTRACTF64X2Zrri = 9093,
+ VEXTRACTF64X2Zrrik = 9094,
+ VEXTRACTF64X2Zrrikz = 9095,
+ VEXTRACTF64X4Zmri = 9096,
+ VEXTRACTF64X4Zmrik = 9097,
+ VEXTRACTF64X4Zrri = 9098,
+ VEXTRACTF64X4Zrrik = 9099,
+ VEXTRACTF64X4Zrrikz = 9100,
+ VEXTRACTI128mri = 9101,
+ VEXTRACTI128rri = 9102,
+ VEXTRACTI32X4Z256mri = 9103,
+ VEXTRACTI32X4Z256mrik = 9104,
+ VEXTRACTI32X4Z256rri = 9105,
+ VEXTRACTI32X4Z256rrik = 9106,
+ VEXTRACTI32X4Z256rrikz = 9107,
+ VEXTRACTI32X4Zmri = 9108,
+ VEXTRACTI32X4Zmrik = 9109,
+ VEXTRACTI32X4Zrri = 9110,
+ VEXTRACTI32X4Zrrik = 9111,
+ VEXTRACTI32X4Zrrikz = 9112,
+ VEXTRACTI32X8Zmri = 9113,
+ VEXTRACTI32X8Zmrik = 9114,
+ VEXTRACTI32X8Zrri = 9115,
+ VEXTRACTI32X8Zrrik = 9116,
+ VEXTRACTI32X8Zrrikz = 9117,
+ VEXTRACTI64X2Z256mri = 9118,
+ VEXTRACTI64X2Z256mrik = 9119,
+ VEXTRACTI64X2Z256rri = 9120,
+ VEXTRACTI64X2Z256rrik = 9121,
+ VEXTRACTI64X2Z256rrikz = 9122,
+ VEXTRACTI64X2Zmri = 9123,
+ VEXTRACTI64X2Zmrik = 9124,
+ VEXTRACTI64X2Zrri = 9125,
+ VEXTRACTI64X2Zrrik = 9126,
+ VEXTRACTI64X2Zrrikz = 9127,
+ VEXTRACTI64X4Zmri = 9128,
+ VEXTRACTI64X4Zmrik = 9129,
+ VEXTRACTI64X4Zrri = 9130,
+ VEXTRACTI64X4Zrrik = 9131,
+ VEXTRACTI64X4Zrrikz = 9132,
+ VEXTRACTPSZmri = 9133,
+ VEXTRACTPSZrri = 9134,
+ VEXTRACTPSmri = 9135,
+ VEXTRACTPSrri = 9136,
+ VFCMADDCPHZ128m = 9137,
+ VFCMADDCPHZ128mb = 9138,
+ VFCMADDCPHZ128mbk = 9139,
+ VFCMADDCPHZ128mbkz = 9140,
+ VFCMADDCPHZ128mk = 9141,
+ VFCMADDCPHZ128mkz = 9142,
+ VFCMADDCPHZ128r = 9143,
+ VFCMADDCPHZ128rk = 9144,
+ VFCMADDCPHZ128rkz = 9145,
+ VFCMADDCPHZ256m = 9146,
+ VFCMADDCPHZ256mb = 9147,
+ VFCMADDCPHZ256mbk = 9148,
+ VFCMADDCPHZ256mbkz = 9149,
+ VFCMADDCPHZ256mk = 9150,
+ VFCMADDCPHZ256mkz = 9151,
+ VFCMADDCPHZ256r = 9152,
+ VFCMADDCPHZ256rk = 9153,
+ VFCMADDCPHZ256rkz = 9154,
+ VFCMADDCPHZm = 9155,
+ VFCMADDCPHZmb = 9156,
+ VFCMADDCPHZmbk = 9157,
+ VFCMADDCPHZmbkz = 9158,
+ VFCMADDCPHZmk = 9159,
+ VFCMADDCPHZmkz = 9160,
+ VFCMADDCPHZr = 9161,
+ VFCMADDCPHZrb = 9162,
+ VFCMADDCPHZrbk = 9163,
+ VFCMADDCPHZrbkz = 9164,
+ VFCMADDCPHZrk = 9165,
+ VFCMADDCPHZrkz = 9166,
+ VFCMADDCSHZm = 9167,
+ VFCMADDCSHZmk = 9168,
+ VFCMADDCSHZmkz = 9169,
+ VFCMADDCSHZr = 9170,
+ VFCMADDCSHZrb = 9171,
+ VFCMADDCSHZrbk = 9172,
+ VFCMADDCSHZrbkz = 9173,
+ VFCMADDCSHZrk = 9174,
+ VFCMADDCSHZrkz = 9175,
+ VFCMULCPHZ128rm = 9176,
+ VFCMULCPHZ128rmb = 9177,
+ VFCMULCPHZ128rmbk = 9178,
+ VFCMULCPHZ128rmbkz = 9179,
+ VFCMULCPHZ128rmk = 9180,
+ VFCMULCPHZ128rmkz = 9181,
+ VFCMULCPHZ128rr = 9182,
+ VFCMULCPHZ128rrk = 9183,
+ VFCMULCPHZ128rrkz = 9184,
+ VFCMULCPHZ256rm = 9185,
+ VFCMULCPHZ256rmb = 9186,
+ VFCMULCPHZ256rmbk = 9187,
+ VFCMULCPHZ256rmbkz = 9188,
+ VFCMULCPHZ256rmk = 9189,
+ VFCMULCPHZ256rmkz = 9190,
+ VFCMULCPHZ256rr = 9191,
+ VFCMULCPHZ256rrk = 9192,
+ VFCMULCPHZ256rrkz = 9193,
+ VFCMULCPHZrm = 9194,
+ VFCMULCPHZrmb = 9195,
+ VFCMULCPHZrmbk = 9196,
+ VFCMULCPHZrmbkz = 9197,
+ VFCMULCPHZrmk = 9198,
+ VFCMULCPHZrmkz = 9199,
+ VFCMULCPHZrr = 9200,
+ VFCMULCPHZrrb = 9201,
+ VFCMULCPHZrrbk = 9202,
+ VFCMULCPHZrrbkz = 9203,
+ VFCMULCPHZrrk = 9204,
+ VFCMULCPHZrrkz = 9205,
+ VFCMULCSHZrm = 9206,
+ VFCMULCSHZrmk = 9207,
+ VFCMULCSHZrmkz = 9208,
+ VFCMULCSHZrr = 9209,
+ VFCMULCSHZrrb = 9210,
+ VFCMULCSHZrrbk = 9211,
+ VFCMULCSHZrrbkz = 9212,
+ VFCMULCSHZrrk = 9213,
+ VFCMULCSHZrrkz = 9214,
+ VFIXUPIMMPDZ128rmbi = 9215,
+ VFIXUPIMMPDZ128rmbik = 9216,
+ VFIXUPIMMPDZ128rmbikz = 9217,
+ VFIXUPIMMPDZ128rmi = 9218,
+ VFIXUPIMMPDZ128rmik = 9219,
+ VFIXUPIMMPDZ128rmikz = 9220,
+ VFIXUPIMMPDZ128rri = 9221,
+ VFIXUPIMMPDZ128rrik = 9222,
+ VFIXUPIMMPDZ128rrikz = 9223,
+ VFIXUPIMMPDZ256rmbi = 9224,
+ VFIXUPIMMPDZ256rmbik = 9225,
+ VFIXUPIMMPDZ256rmbikz = 9226,
+ VFIXUPIMMPDZ256rmi = 9227,
+ VFIXUPIMMPDZ256rmik = 9228,
+ VFIXUPIMMPDZ256rmikz = 9229,
+ VFIXUPIMMPDZ256rri = 9230,
+ VFIXUPIMMPDZ256rrik = 9231,
+ VFIXUPIMMPDZ256rrikz = 9232,
+ VFIXUPIMMPDZrmbi = 9233,
+ VFIXUPIMMPDZrmbik = 9234,
+ VFIXUPIMMPDZrmbikz = 9235,
+ VFIXUPIMMPDZrmi = 9236,
+ VFIXUPIMMPDZrmik = 9237,
+ VFIXUPIMMPDZrmikz = 9238,
+ VFIXUPIMMPDZrri = 9239,
+ VFIXUPIMMPDZrrib = 9240,
+ VFIXUPIMMPDZrribk = 9241,
+ VFIXUPIMMPDZrribkz = 9242,
+ VFIXUPIMMPDZrrik = 9243,
+ VFIXUPIMMPDZrrikz = 9244,
+ VFIXUPIMMPSZ128rmbi = 9245,
+ VFIXUPIMMPSZ128rmbik = 9246,
+ VFIXUPIMMPSZ128rmbikz = 9247,
+ VFIXUPIMMPSZ128rmi = 9248,
+ VFIXUPIMMPSZ128rmik = 9249,
+ VFIXUPIMMPSZ128rmikz = 9250,
+ VFIXUPIMMPSZ128rri = 9251,
+ VFIXUPIMMPSZ128rrik = 9252,
+ VFIXUPIMMPSZ128rrikz = 9253,
+ VFIXUPIMMPSZ256rmbi = 9254,
+ VFIXUPIMMPSZ256rmbik = 9255,
+ VFIXUPIMMPSZ256rmbikz = 9256,
+ VFIXUPIMMPSZ256rmi = 9257,
+ VFIXUPIMMPSZ256rmik = 9258,
+ VFIXUPIMMPSZ256rmikz = 9259,
+ VFIXUPIMMPSZ256rri = 9260,
+ VFIXUPIMMPSZ256rrik = 9261,
+ VFIXUPIMMPSZ256rrikz = 9262,
+ VFIXUPIMMPSZrmbi = 9263,
+ VFIXUPIMMPSZrmbik = 9264,
+ VFIXUPIMMPSZrmbikz = 9265,
+ VFIXUPIMMPSZrmi = 9266,
+ VFIXUPIMMPSZrmik = 9267,
+ VFIXUPIMMPSZrmikz = 9268,
+ VFIXUPIMMPSZrri = 9269,
+ VFIXUPIMMPSZrrib = 9270,
+ VFIXUPIMMPSZrribk = 9271,
+ VFIXUPIMMPSZrribkz = 9272,
+ VFIXUPIMMPSZrrik = 9273,
+ VFIXUPIMMPSZrrikz = 9274,
+ VFIXUPIMMSDZrmi = 9275,
+ VFIXUPIMMSDZrmik = 9276,
+ VFIXUPIMMSDZrmikz = 9277,
+ VFIXUPIMMSDZrri = 9278,
+ VFIXUPIMMSDZrrib = 9279,
+ VFIXUPIMMSDZrribk = 9280,
+ VFIXUPIMMSDZrribkz = 9281,
+ VFIXUPIMMSDZrrik = 9282,
+ VFIXUPIMMSDZrrikz = 9283,
+ VFIXUPIMMSSZrmi = 9284,
+ VFIXUPIMMSSZrmik = 9285,
+ VFIXUPIMMSSZrmikz = 9286,
+ VFIXUPIMMSSZrri = 9287,
+ VFIXUPIMMSSZrrib = 9288,
+ VFIXUPIMMSSZrribk = 9289,
+ VFIXUPIMMSSZrribkz = 9290,
+ VFIXUPIMMSSZrrik = 9291,
+ VFIXUPIMMSSZrrikz = 9292,
+ VFMADD132BF16Z128m = 9293,
+ VFMADD132BF16Z128mb = 9294,
+ VFMADD132BF16Z128mbk = 9295,
+ VFMADD132BF16Z128mbkz = 9296,
+ VFMADD132BF16Z128mk = 9297,
+ VFMADD132BF16Z128mkz = 9298,
+ VFMADD132BF16Z128r = 9299,
+ VFMADD132BF16Z128rk = 9300,
+ VFMADD132BF16Z128rkz = 9301,
+ VFMADD132BF16Z256m = 9302,
+ VFMADD132BF16Z256mb = 9303,
+ VFMADD132BF16Z256mbk = 9304,
+ VFMADD132BF16Z256mbkz = 9305,
+ VFMADD132BF16Z256mk = 9306,
+ VFMADD132BF16Z256mkz = 9307,
+ VFMADD132BF16Z256r = 9308,
+ VFMADD132BF16Z256rk = 9309,
+ VFMADD132BF16Z256rkz = 9310,
+ VFMADD132BF16Zm = 9311,
+ VFMADD132BF16Zmb = 9312,
+ VFMADD132BF16Zmbk = 9313,
+ VFMADD132BF16Zmbkz = 9314,
+ VFMADD132BF16Zmk = 9315,
+ VFMADD132BF16Zmkz = 9316,
+ VFMADD132BF16Zr = 9317,
+ VFMADD132BF16Zrk = 9318,
+ VFMADD132BF16Zrkz = 9319,
+ VFMADD132PDYm = 9320,
+ VFMADD132PDYr = 9321,
+ VFMADD132PDZ128m = 9322,
+ VFMADD132PDZ128mb = 9323,
+ VFMADD132PDZ128mbk = 9324,
+ VFMADD132PDZ128mbkz = 9325,
+ VFMADD132PDZ128mk = 9326,
+ VFMADD132PDZ128mkz = 9327,
+ VFMADD132PDZ128r = 9328,
+ VFMADD132PDZ128rk = 9329,
+ VFMADD132PDZ128rkz = 9330,
+ VFMADD132PDZ256m = 9331,
+ VFMADD132PDZ256mb = 9332,
+ VFMADD132PDZ256mbk = 9333,
+ VFMADD132PDZ256mbkz = 9334,
+ VFMADD132PDZ256mk = 9335,
+ VFMADD132PDZ256mkz = 9336,
+ VFMADD132PDZ256r = 9337,
+ VFMADD132PDZ256rk = 9338,
+ VFMADD132PDZ256rkz = 9339,
+ VFMADD132PDZm = 9340,
+ VFMADD132PDZmb = 9341,
+ VFMADD132PDZmbk = 9342,
+ VFMADD132PDZmbkz = 9343,
+ VFMADD132PDZmk = 9344,
+ VFMADD132PDZmkz = 9345,
+ VFMADD132PDZr = 9346,
+ VFMADD132PDZrb = 9347,
+ VFMADD132PDZrbk = 9348,
+ VFMADD132PDZrbkz = 9349,
+ VFMADD132PDZrk = 9350,
+ VFMADD132PDZrkz = 9351,
+ VFMADD132PDm = 9352,
+ VFMADD132PDr = 9353,
+ VFMADD132PHZ128m = 9354,
+ VFMADD132PHZ128mb = 9355,
+ VFMADD132PHZ128mbk = 9356,
+ VFMADD132PHZ128mbkz = 9357,
+ VFMADD132PHZ128mk = 9358,
+ VFMADD132PHZ128mkz = 9359,
+ VFMADD132PHZ128r = 9360,
+ VFMADD132PHZ128rk = 9361,
+ VFMADD132PHZ128rkz = 9362,
+ VFMADD132PHZ256m = 9363,
+ VFMADD132PHZ256mb = 9364,
+ VFMADD132PHZ256mbk = 9365,
+ VFMADD132PHZ256mbkz = 9366,
+ VFMADD132PHZ256mk = 9367,
+ VFMADD132PHZ256mkz = 9368,
+ VFMADD132PHZ256r = 9369,
+ VFMADD132PHZ256rk = 9370,
+ VFMADD132PHZ256rkz = 9371,
+ VFMADD132PHZm = 9372,
+ VFMADD132PHZmb = 9373,
+ VFMADD132PHZmbk = 9374,
+ VFMADD132PHZmbkz = 9375,
+ VFMADD132PHZmk = 9376,
+ VFMADD132PHZmkz = 9377,
+ VFMADD132PHZr = 9378,
+ VFMADD132PHZrb = 9379,
+ VFMADD132PHZrbk = 9380,
+ VFMADD132PHZrbkz = 9381,
+ VFMADD132PHZrk = 9382,
+ VFMADD132PHZrkz = 9383,
+ VFMADD132PSYm = 9384,
+ VFMADD132PSYr = 9385,
+ VFMADD132PSZ128m = 9386,
+ VFMADD132PSZ128mb = 9387,
+ VFMADD132PSZ128mbk = 9388,
+ VFMADD132PSZ128mbkz = 9389,
+ VFMADD132PSZ128mk = 9390,
+ VFMADD132PSZ128mkz = 9391,
+ VFMADD132PSZ128r = 9392,
+ VFMADD132PSZ128rk = 9393,
+ VFMADD132PSZ128rkz = 9394,
+ VFMADD132PSZ256m = 9395,
+ VFMADD132PSZ256mb = 9396,
+ VFMADD132PSZ256mbk = 9397,
+ VFMADD132PSZ256mbkz = 9398,
+ VFMADD132PSZ256mk = 9399,
+ VFMADD132PSZ256mkz = 9400,
+ VFMADD132PSZ256r = 9401,
+ VFMADD132PSZ256rk = 9402,
+ VFMADD132PSZ256rkz = 9403,
+ VFMADD132PSZm = 9404,
+ VFMADD132PSZmb = 9405,
+ VFMADD132PSZmbk = 9406,
+ VFMADD132PSZmbkz = 9407,
+ VFMADD132PSZmk = 9408,
+ VFMADD132PSZmkz = 9409,
+ VFMADD132PSZr = 9410,
+ VFMADD132PSZrb = 9411,
+ VFMADD132PSZrbk = 9412,
+ VFMADD132PSZrbkz = 9413,
+ VFMADD132PSZrk = 9414,
+ VFMADD132PSZrkz = 9415,
+ VFMADD132PSm = 9416,
+ VFMADD132PSr = 9417,
+ VFMADD132SDZm = 9418,
+ VFMADD132SDZm_Int = 9419,
+ VFMADD132SDZmk_Int = 9420,
+ VFMADD132SDZmkz_Int = 9421,
+ VFMADD132SDZr = 9422,
+ VFMADD132SDZr_Int = 9423,
+ VFMADD132SDZrb = 9424,
+ VFMADD132SDZrb_Int = 9425,
+ VFMADD132SDZrbk_Int = 9426,
+ VFMADD132SDZrbkz_Int = 9427,
+ VFMADD132SDZrk_Int = 9428,
+ VFMADD132SDZrkz_Int = 9429,
+ VFMADD132SDm = 9430,
+ VFMADD132SDm_Int = 9431,
+ VFMADD132SDr = 9432,
+ VFMADD132SDr_Int = 9433,
+ VFMADD132SHZm = 9434,
+ VFMADD132SHZm_Int = 9435,
+ VFMADD132SHZmk_Int = 9436,
+ VFMADD132SHZmkz_Int = 9437,
+ VFMADD132SHZr = 9438,
+ VFMADD132SHZr_Int = 9439,
+ VFMADD132SHZrb = 9440,
+ VFMADD132SHZrb_Int = 9441,
+ VFMADD132SHZrbk_Int = 9442,
+ VFMADD132SHZrbkz_Int = 9443,
+ VFMADD132SHZrk_Int = 9444,
+ VFMADD132SHZrkz_Int = 9445,
+ VFMADD132SSZm = 9446,
+ VFMADD132SSZm_Int = 9447,
+ VFMADD132SSZmk_Int = 9448,
+ VFMADD132SSZmkz_Int = 9449,
+ VFMADD132SSZr = 9450,
+ VFMADD132SSZr_Int = 9451,
+ VFMADD132SSZrb = 9452,
+ VFMADD132SSZrb_Int = 9453,
+ VFMADD132SSZrbk_Int = 9454,
+ VFMADD132SSZrbkz_Int = 9455,
+ VFMADD132SSZrk_Int = 9456,
+ VFMADD132SSZrkz_Int = 9457,
+ VFMADD132SSm = 9458,
+ VFMADD132SSm_Int = 9459,
+ VFMADD132SSr = 9460,
+ VFMADD132SSr_Int = 9461,
+ VFMADD213BF16Z128m = 9462,
+ VFMADD213BF16Z128mb = 9463,
+ VFMADD213BF16Z128mbk = 9464,
+ VFMADD213BF16Z128mbkz = 9465,
+ VFMADD213BF16Z128mk = 9466,
+ VFMADD213BF16Z128mkz = 9467,
+ VFMADD213BF16Z128r = 9468,
+ VFMADD213BF16Z128rk = 9469,
+ VFMADD213BF16Z128rkz = 9470,
+ VFMADD213BF16Z256m = 9471,
+ VFMADD213BF16Z256mb = 9472,
+ VFMADD213BF16Z256mbk = 9473,
+ VFMADD213BF16Z256mbkz = 9474,
+ VFMADD213BF16Z256mk = 9475,
+ VFMADD213BF16Z256mkz = 9476,
+ VFMADD213BF16Z256r = 9477,
+ VFMADD213BF16Z256rk = 9478,
+ VFMADD213BF16Z256rkz = 9479,
+ VFMADD213BF16Zm = 9480,
+ VFMADD213BF16Zmb = 9481,
+ VFMADD213BF16Zmbk = 9482,
+ VFMADD213BF16Zmbkz = 9483,
+ VFMADD213BF16Zmk = 9484,
+ VFMADD213BF16Zmkz = 9485,
+ VFMADD213BF16Zr = 9486,
+ VFMADD213BF16Zrk = 9487,
+ VFMADD213BF16Zrkz = 9488,
+ VFMADD213PDYm = 9489,
+ VFMADD213PDYr = 9490,
+ VFMADD213PDZ128m = 9491,
+ VFMADD213PDZ128mb = 9492,
+ VFMADD213PDZ128mbk = 9493,
+ VFMADD213PDZ128mbkz = 9494,
+ VFMADD213PDZ128mk = 9495,
+ VFMADD213PDZ128mkz = 9496,
+ VFMADD213PDZ128r = 9497,
+ VFMADD213PDZ128rk = 9498,
+ VFMADD213PDZ128rkz = 9499,
+ VFMADD213PDZ256m = 9500,
+ VFMADD213PDZ256mb = 9501,
+ VFMADD213PDZ256mbk = 9502,
+ VFMADD213PDZ256mbkz = 9503,
+ VFMADD213PDZ256mk = 9504,
+ VFMADD213PDZ256mkz = 9505,
+ VFMADD213PDZ256r = 9506,
+ VFMADD213PDZ256rk = 9507,
+ VFMADD213PDZ256rkz = 9508,
+ VFMADD213PDZm = 9509,
+ VFMADD213PDZmb = 9510,
+ VFMADD213PDZmbk = 9511,
+ VFMADD213PDZmbkz = 9512,
+ VFMADD213PDZmk = 9513,
+ VFMADD213PDZmkz = 9514,
+ VFMADD213PDZr = 9515,
+ VFMADD213PDZrb = 9516,
+ VFMADD213PDZrbk = 9517,
+ VFMADD213PDZrbkz = 9518,
+ VFMADD213PDZrk = 9519,
+ VFMADD213PDZrkz = 9520,
+ VFMADD213PDm = 9521,
+ VFMADD213PDr = 9522,
+ VFMADD213PHZ128m = 9523,
+ VFMADD213PHZ128mb = 9524,
+ VFMADD213PHZ128mbk = 9525,
+ VFMADD213PHZ128mbkz = 9526,
+ VFMADD213PHZ128mk = 9527,
+ VFMADD213PHZ128mkz = 9528,
+ VFMADD213PHZ128r = 9529,
+ VFMADD213PHZ128rk = 9530,
+ VFMADD213PHZ128rkz = 9531,
+ VFMADD213PHZ256m = 9532,
+ VFMADD213PHZ256mb = 9533,
+ VFMADD213PHZ256mbk = 9534,
+ VFMADD213PHZ256mbkz = 9535,
+ VFMADD213PHZ256mk = 9536,
+ VFMADD213PHZ256mkz = 9537,
+ VFMADD213PHZ256r = 9538,
+ VFMADD213PHZ256rk = 9539,
+ VFMADD213PHZ256rkz = 9540,
+ VFMADD213PHZm = 9541,
+ VFMADD213PHZmb = 9542,
+ VFMADD213PHZmbk = 9543,
+ VFMADD213PHZmbkz = 9544,
+ VFMADD213PHZmk = 9545,
+ VFMADD213PHZmkz = 9546,
+ VFMADD213PHZr = 9547,
+ VFMADD213PHZrb = 9548,
+ VFMADD213PHZrbk = 9549,
+ VFMADD213PHZrbkz = 9550,
+ VFMADD213PHZrk = 9551,
+ VFMADD213PHZrkz = 9552,
+ VFMADD213PSYm = 9553,
+ VFMADD213PSYr = 9554,
+ VFMADD213PSZ128m = 9555,
+ VFMADD213PSZ128mb = 9556,
+ VFMADD213PSZ128mbk = 9557,
+ VFMADD213PSZ128mbkz = 9558,
+ VFMADD213PSZ128mk = 9559,
+ VFMADD213PSZ128mkz = 9560,
+ VFMADD213PSZ128r = 9561,
+ VFMADD213PSZ128rk = 9562,
+ VFMADD213PSZ128rkz = 9563,
+ VFMADD213PSZ256m = 9564,
+ VFMADD213PSZ256mb = 9565,
+ VFMADD213PSZ256mbk = 9566,
+ VFMADD213PSZ256mbkz = 9567,
+ VFMADD213PSZ256mk = 9568,
+ VFMADD213PSZ256mkz = 9569,
+ VFMADD213PSZ256r = 9570,
+ VFMADD213PSZ256rk = 9571,
+ VFMADD213PSZ256rkz = 9572,
+ VFMADD213PSZm = 9573,
+ VFMADD213PSZmb = 9574,
+ VFMADD213PSZmbk = 9575,
+ VFMADD213PSZmbkz = 9576,
+ VFMADD213PSZmk = 9577,
+ VFMADD213PSZmkz = 9578,
+ VFMADD213PSZr = 9579,
+ VFMADD213PSZrb = 9580,
+ VFMADD213PSZrbk = 9581,
+ VFMADD213PSZrbkz = 9582,
+ VFMADD213PSZrk = 9583,
+ VFMADD213PSZrkz = 9584,
+ VFMADD213PSm = 9585,
+ VFMADD213PSr = 9586,
+ VFMADD213SDZm = 9587,
+ VFMADD213SDZm_Int = 9588,
+ VFMADD213SDZmk_Int = 9589,
+ VFMADD213SDZmkz_Int = 9590,
+ VFMADD213SDZr = 9591,
+ VFMADD213SDZr_Int = 9592,
+ VFMADD213SDZrb = 9593,
+ VFMADD213SDZrb_Int = 9594,
+ VFMADD213SDZrbk_Int = 9595,
+ VFMADD213SDZrbkz_Int = 9596,
+ VFMADD213SDZrk_Int = 9597,
+ VFMADD213SDZrkz_Int = 9598,
+ VFMADD213SDm = 9599,
+ VFMADD213SDm_Int = 9600,
+ VFMADD213SDr = 9601,
+ VFMADD213SDr_Int = 9602,
+ VFMADD213SHZm = 9603,
+ VFMADD213SHZm_Int = 9604,
+ VFMADD213SHZmk_Int = 9605,
+ VFMADD213SHZmkz_Int = 9606,
+ VFMADD213SHZr = 9607,
+ VFMADD213SHZr_Int = 9608,
+ VFMADD213SHZrb = 9609,
+ VFMADD213SHZrb_Int = 9610,
+ VFMADD213SHZrbk_Int = 9611,
+ VFMADD213SHZrbkz_Int = 9612,
+ VFMADD213SHZrk_Int = 9613,
+ VFMADD213SHZrkz_Int = 9614,
+ VFMADD213SSZm = 9615,
+ VFMADD213SSZm_Int = 9616,
+ VFMADD213SSZmk_Int = 9617,
+ VFMADD213SSZmkz_Int = 9618,
+ VFMADD213SSZr = 9619,
+ VFMADD213SSZr_Int = 9620,
+ VFMADD213SSZrb = 9621,
+ VFMADD213SSZrb_Int = 9622,
+ VFMADD213SSZrbk_Int = 9623,
+ VFMADD213SSZrbkz_Int = 9624,
+ VFMADD213SSZrk_Int = 9625,
+ VFMADD213SSZrkz_Int = 9626,
+ VFMADD213SSm = 9627,
+ VFMADD213SSm_Int = 9628,
+ VFMADD213SSr = 9629,
+ VFMADD213SSr_Int = 9630,
+ VFMADD231BF16Z128m = 9631,
+ VFMADD231BF16Z128mb = 9632,
+ VFMADD231BF16Z128mbk = 9633,
+ VFMADD231BF16Z128mbkz = 9634,
+ VFMADD231BF16Z128mk = 9635,
+ VFMADD231BF16Z128mkz = 9636,
+ VFMADD231BF16Z128r = 9637,
+ VFMADD231BF16Z128rk = 9638,
+ VFMADD231BF16Z128rkz = 9639,
+ VFMADD231BF16Z256m = 9640,
+ VFMADD231BF16Z256mb = 9641,
+ VFMADD231BF16Z256mbk = 9642,
+ VFMADD231BF16Z256mbkz = 9643,
+ VFMADD231BF16Z256mk = 9644,
+ VFMADD231BF16Z256mkz = 9645,
+ VFMADD231BF16Z256r = 9646,
+ VFMADD231BF16Z256rk = 9647,
+ VFMADD231BF16Z256rkz = 9648,
+ VFMADD231BF16Zm = 9649,
+ VFMADD231BF16Zmb = 9650,
+ VFMADD231BF16Zmbk = 9651,
+ VFMADD231BF16Zmbkz = 9652,
+ VFMADD231BF16Zmk = 9653,
+ VFMADD231BF16Zmkz = 9654,
+ VFMADD231BF16Zr = 9655,
+ VFMADD231BF16Zrk = 9656,
+ VFMADD231BF16Zrkz = 9657,
+ VFMADD231PDYm = 9658,
+ VFMADD231PDYr = 9659,
+ VFMADD231PDZ128m = 9660,
+ VFMADD231PDZ128mb = 9661,
+ VFMADD231PDZ128mbk = 9662,
+ VFMADD231PDZ128mbkz = 9663,
+ VFMADD231PDZ128mk = 9664,
+ VFMADD231PDZ128mkz = 9665,
+ VFMADD231PDZ128r = 9666,
+ VFMADD231PDZ128rk = 9667,
+ VFMADD231PDZ128rkz = 9668,
+ VFMADD231PDZ256m = 9669,
+ VFMADD231PDZ256mb = 9670,
+ VFMADD231PDZ256mbk = 9671,
+ VFMADD231PDZ256mbkz = 9672,
+ VFMADD231PDZ256mk = 9673,
+ VFMADD231PDZ256mkz = 9674,
+ VFMADD231PDZ256r = 9675,
+ VFMADD231PDZ256rk = 9676,
+ VFMADD231PDZ256rkz = 9677,
+ VFMADD231PDZm = 9678,
+ VFMADD231PDZmb = 9679,
+ VFMADD231PDZmbk = 9680,
+ VFMADD231PDZmbkz = 9681,
+ VFMADD231PDZmk = 9682,
+ VFMADD231PDZmkz = 9683,
+ VFMADD231PDZr = 9684,
+ VFMADD231PDZrb = 9685,
+ VFMADD231PDZrbk = 9686,
+ VFMADD231PDZrbkz = 9687,
+ VFMADD231PDZrk = 9688,
+ VFMADD231PDZrkz = 9689,
+ VFMADD231PDm = 9690,
+ VFMADD231PDr = 9691,
+ VFMADD231PHZ128m = 9692,
+ VFMADD231PHZ128mb = 9693,
+ VFMADD231PHZ128mbk = 9694,
+ VFMADD231PHZ128mbkz = 9695,
+ VFMADD231PHZ128mk = 9696,
+ VFMADD231PHZ128mkz = 9697,
+ VFMADD231PHZ128r = 9698,
+ VFMADD231PHZ128rk = 9699,
+ VFMADD231PHZ128rkz = 9700,
+ VFMADD231PHZ256m = 9701,
+ VFMADD231PHZ256mb = 9702,
+ VFMADD231PHZ256mbk = 9703,
+ VFMADD231PHZ256mbkz = 9704,
+ VFMADD231PHZ256mk = 9705,
+ VFMADD231PHZ256mkz = 9706,
+ VFMADD231PHZ256r = 9707,
+ VFMADD231PHZ256rk = 9708,
+ VFMADD231PHZ256rkz = 9709,
+ VFMADD231PHZm = 9710,
+ VFMADD231PHZmb = 9711,
+ VFMADD231PHZmbk = 9712,
+ VFMADD231PHZmbkz = 9713,
+ VFMADD231PHZmk = 9714,
+ VFMADD231PHZmkz = 9715,
+ VFMADD231PHZr = 9716,
+ VFMADD231PHZrb = 9717,
+ VFMADD231PHZrbk = 9718,
+ VFMADD231PHZrbkz = 9719,
+ VFMADD231PHZrk = 9720,
+ VFMADD231PHZrkz = 9721,
+ VFMADD231PSYm = 9722,
+ VFMADD231PSYr = 9723,
+ VFMADD231PSZ128m = 9724,
+ VFMADD231PSZ128mb = 9725,
+ VFMADD231PSZ128mbk = 9726,
+ VFMADD231PSZ128mbkz = 9727,
+ VFMADD231PSZ128mk = 9728,
+ VFMADD231PSZ128mkz = 9729,
+ VFMADD231PSZ128r = 9730,
+ VFMADD231PSZ128rk = 9731,
+ VFMADD231PSZ128rkz = 9732,
+ VFMADD231PSZ256m = 9733,
+ VFMADD231PSZ256mb = 9734,
+ VFMADD231PSZ256mbk = 9735,
+ VFMADD231PSZ256mbkz = 9736,
+ VFMADD231PSZ256mk = 9737,
+ VFMADD231PSZ256mkz = 9738,
+ VFMADD231PSZ256r = 9739,
+ VFMADD231PSZ256rk = 9740,
+ VFMADD231PSZ256rkz = 9741,
+ VFMADD231PSZm = 9742,
+ VFMADD231PSZmb = 9743,
+ VFMADD231PSZmbk = 9744,
+ VFMADD231PSZmbkz = 9745,
+ VFMADD231PSZmk = 9746,
+ VFMADD231PSZmkz = 9747,
+ VFMADD231PSZr = 9748,
+ VFMADD231PSZrb = 9749,
+ VFMADD231PSZrbk = 9750,
+ VFMADD231PSZrbkz = 9751,
+ VFMADD231PSZrk = 9752,
+ VFMADD231PSZrkz = 9753,
+ VFMADD231PSm = 9754,
+ VFMADD231PSr = 9755,
+ VFMADD231SDZm = 9756,
+ VFMADD231SDZm_Int = 9757,
+ VFMADD231SDZmk_Int = 9758,
+ VFMADD231SDZmkz_Int = 9759,
+ VFMADD231SDZr = 9760,
+ VFMADD231SDZr_Int = 9761,
+ VFMADD231SDZrb = 9762,
+ VFMADD231SDZrb_Int = 9763,
+ VFMADD231SDZrbk_Int = 9764,
+ VFMADD231SDZrbkz_Int = 9765,
+ VFMADD231SDZrk_Int = 9766,
+ VFMADD231SDZrkz_Int = 9767,
+ VFMADD231SDm = 9768,
+ VFMADD231SDm_Int = 9769,
+ VFMADD231SDr = 9770,
+ VFMADD231SDr_Int = 9771,
+ VFMADD231SHZm = 9772,
+ VFMADD231SHZm_Int = 9773,
+ VFMADD231SHZmk_Int = 9774,
+ VFMADD231SHZmkz_Int = 9775,
+ VFMADD231SHZr = 9776,
+ VFMADD231SHZr_Int = 9777,
+ VFMADD231SHZrb = 9778,
+ VFMADD231SHZrb_Int = 9779,
+ VFMADD231SHZrbk_Int = 9780,
+ VFMADD231SHZrbkz_Int = 9781,
+ VFMADD231SHZrk_Int = 9782,
+ VFMADD231SHZrkz_Int = 9783,
+ VFMADD231SSZm = 9784,
+ VFMADD231SSZm_Int = 9785,
+ VFMADD231SSZmk_Int = 9786,
+ VFMADD231SSZmkz_Int = 9787,
+ VFMADD231SSZr = 9788,
+ VFMADD231SSZr_Int = 9789,
+ VFMADD231SSZrb = 9790,
+ VFMADD231SSZrb_Int = 9791,
+ VFMADD231SSZrbk_Int = 9792,
+ VFMADD231SSZrbkz_Int = 9793,
+ VFMADD231SSZrk_Int = 9794,
+ VFMADD231SSZrkz_Int = 9795,
+ VFMADD231SSm = 9796,
+ VFMADD231SSm_Int = 9797,
+ VFMADD231SSr = 9798,
+ VFMADD231SSr_Int = 9799,
+ VFMADDCPHZ128m = 9800,
+ VFMADDCPHZ128mb = 9801,
+ VFMADDCPHZ128mbk = 9802,
+ VFMADDCPHZ128mbkz = 9803,
+ VFMADDCPHZ128mk = 9804,
+ VFMADDCPHZ128mkz = 9805,
+ VFMADDCPHZ128r = 9806,
+ VFMADDCPHZ128rk = 9807,
+ VFMADDCPHZ128rkz = 9808,
+ VFMADDCPHZ256m = 9809,
+ VFMADDCPHZ256mb = 9810,
+ VFMADDCPHZ256mbk = 9811,
+ VFMADDCPHZ256mbkz = 9812,
+ VFMADDCPHZ256mk = 9813,
+ VFMADDCPHZ256mkz = 9814,
+ VFMADDCPHZ256r = 9815,
+ VFMADDCPHZ256rk = 9816,
+ VFMADDCPHZ256rkz = 9817,
+ VFMADDCPHZm = 9818,
+ VFMADDCPHZmb = 9819,
+ VFMADDCPHZmbk = 9820,
+ VFMADDCPHZmbkz = 9821,
+ VFMADDCPHZmk = 9822,
+ VFMADDCPHZmkz = 9823,
+ VFMADDCPHZr = 9824,
+ VFMADDCPHZrb = 9825,
+ VFMADDCPHZrbk = 9826,
+ VFMADDCPHZrbkz = 9827,
+ VFMADDCPHZrk = 9828,
+ VFMADDCPHZrkz = 9829,
+ VFMADDCSHZm = 9830,
+ VFMADDCSHZmk = 9831,
+ VFMADDCSHZmkz = 9832,
+ VFMADDCSHZr = 9833,
+ VFMADDCSHZrb = 9834,
+ VFMADDCSHZrbk = 9835,
+ VFMADDCSHZrbkz = 9836,
+ VFMADDCSHZrk = 9837,
+ VFMADDCSHZrkz = 9838,
+ VFMADDPD4Ymr = 9839,
+ VFMADDPD4Yrm = 9840,
+ VFMADDPD4Yrr = 9841,
+ VFMADDPD4Yrr_REV = 9842,
+ VFMADDPD4mr = 9843,
+ VFMADDPD4rm = 9844,
+ VFMADDPD4rr = 9845,
+ VFMADDPD4rr_REV = 9846,
+ VFMADDPS4Ymr = 9847,
+ VFMADDPS4Yrm = 9848,
+ VFMADDPS4Yrr = 9849,
+ VFMADDPS4Yrr_REV = 9850,
+ VFMADDPS4mr = 9851,
+ VFMADDPS4rm = 9852,
+ VFMADDPS4rr = 9853,
+ VFMADDPS4rr_REV = 9854,
+ VFMADDSD4mr = 9855,
+ VFMADDSD4mr_Int = 9856,
+ VFMADDSD4rm = 9857,
+ VFMADDSD4rm_Int = 9858,
+ VFMADDSD4rr = 9859,
+ VFMADDSD4rr_Int = 9860,
+ VFMADDSD4rr_Int_REV = 9861,
+ VFMADDSD4rr_REV = 9862,
+ VFMADDSS4mr = 9863,
+ VFMADDSS4mr_Int = 9864,
+ VFMADDSS4rm = 9865,
+ VFMADDSS4rm_Int = 9866,
+ VFMADDSS4rr = 9867,
+ VFMADDSS4rr_Int = 9868,
+ VFMADDSS4rr_Int_REV = 9869,
+ VFMADDSS4rr_REV = 9870,
+ VFMADDSUB132PDYm = 9871,
+ VFMADDSUB132PDYr = 9872,
+ VFMADDSUB132PDZ128m = 9873,
+ VFMADDSUB132PDZ128mb = 9874,
+ VFMADDSUB132PDZ128mbk = 9875,
+ VFMADDSUB132PDZ128mbkz = 9876,
+ VFMADDSUB132PDZ128mk = 9877,
+ VFMADDSUB132PDZ128mkz = 9878,
+ VFMADDSUB132PDZ128r = 9879,
+ VFMADDSUB132PDZ128rk = 9880,
+ VFMADDSUB132PDZ128rkz = 9881,
+ VFMADDSUB132PDZ256m = 9882,
+ VFMADDSUB132PDZ256mb = 9883,
+ VFMADDSUB132PDZ256mbk = 9884,
+ VFMADDSUB132PDZ256mbkz = 9885,
+ VFMADDSUB132PDZ256mk = 9886,
+ VFMADDSUB132PDZ256mkz = 9887,
+ VFMADDSUB132PDZ256r = 9888,
+ VFMADDSUB132PDZ256rk = 9889,
+ VFMADDSUB132PDZ256rkz = 9890,
+ VFMADDSUB132PDZm = 9891,
+ VFMADDSUB132PDZmb = 9892,
+ VFMADDSUB132PDZmbk = 9893,
+ VFMADDSUB132PDZmbkz = 9894,
+ VFMADDSUB132PDZmk = 9895,
+ VFMADDSUB132PDZmkz = 9896,
+ VFMADDSUB132PDZr = 9897,
+ VFMADDSUB132PDZrb = 9898,
+ VFMADDSUB132PDZrbk = 9899,
+ VFMADDSUB132PDZrbkz = 9900,
+ VFMADDSUB132PDZrk = 9901,
+ VFMADDSUB132PDZrkz = 9902,
+ VFMADDSUB132PDm = 9903,
+ VFMADDSUB132PDr = 9904,
+ VFMADDSUB132PHZ128m = 9905,
+ VFMADDSUB132PHZ128mb = 9906,
+ VFMADDSUB132PHZ128mbk = 9907,
+ VFMADDSUB132PHZ128mbkz = 9908,
+ VFMADDSUB132PHZ128mk = 9909,
+ VFMADDSUB132PHZ128mkz = 9910,
+ VFMADDSUB132PHZ128r = 9911,
+ VFMADDSUB132PHZ128rk = 9912,
+ VFMADDSUB132PHZ128rkz = 9913,
+ VFMADDSUB132PHZ256m = 9914,
+ VFMADDSUB132PHZ256mb = 9915,
+ VFMADDSUB132PHZ256mbk = 9916,
+ VFMADDSUB132PHZ256mbkz = 9917,
+ VFMADDSUB132PHZ256mk = 9918,
+ VFMADDSUB132PHZ256mkz = 9919,
+ VFMADDSUB132PHZ256r = 9920,
+ VFMADDSUB132PHZ256rk = 9921,
+ VFMADDSUB132PHZ256rkz = 9922,
+ VFMADDSUB132PHZm = 9923,
+ VFMADDSUB132PHZmb = 9924,
+ VFMADDSUB132PHZmbk = 9925,
+ VFMADDSUB132PHZmbkz = 9926,
+ VFMADDSUB132PHZmk = 9927,
+ VFMADDSUB132PHZmkz = 9928,
+ VFMADDSUB132PHZr = 9929,
+ VFMADDSUB132PHZrb = 9930,
+ VFMADDSUB132PHZrbk = 9931,
+ VFMADDSUB132PHZrbkz = 9932,
+ VFMADDSUB132PHZrk = 9933,
+ VFMADDSUB132PHZrkz = 9934,
+ VFMADDSUB132PSYm = 9935,
+ VFMADDSUB132PSYr = 9936,
+ VFMADDSUB132PSZ128m = 9937,
+ VFMADDSUB132PSZ128mb = 9938,
+ VFMADDSUB132PSZ128mbk = 9939,
+ VFMADDSUB132PSZ128mbkz = 9940,
+ VFMADDSUB132PSZ128mk = 9941,
+ VFMADDSUB132PSZ128mkz = 9942,
+ VFMADDSUB132PSZ128r = 9943,
+ VFMADDSUB132PSZ128rk = 9944,
+ VFMADDSUB132PSZ128rkz = 9945,
+ VFMADDSUB132PSZ256m = 9946,
+ VFMADDSUB132PSZ256mb = 9947,
+ VFMADDSUB132PSZ256mbk = 9948,
+ VFMADDSUB132PSZ256mbkz = 9949,
+ VFMADDSUB132PSZ256mk = 9950,
+ VFMADDSUB132PSZ256mkz = 9951,
+ VFMADDSUB132PSZ256r = 9952,
+ VFMADDSUB132PSZ256rk = 9953,
+ VFMADDSUB132PSZ256rkz = 9954,
+ VFMADDSUB132PSZm = 9955,
+ VFMADDSUB132PSZmb = 9956,
+ VFMADDSUB132PSZmbk = 9957,
+ VFMADDSUB132PSZmbkz = 9958,
+ VFMADDSUB132PSZmk = 9959,
+ VFMADDSUB132PSZmkz = 9960,
+ VFMADDSUB132PSZr = 9961,
+ VFMADDSUB132PSZrb = 9962,
+ VFMADDSUB132PSZrbk = 9963,
+ VFMADDSUB132PSZrbkz = 9964,
+ VFMADDSUB132PSZrk = 9965,
+ VFMADDSUB132PSZrkz = 9966,
+ VFMADDSUB132PSm = 9967,
+ VFMADDSUB132PSr = 9968,
+ VFMADDSUB213PDYm = 9969,
+ VFMADDSUB213PDYr = 9970,
+ VFMADDSUB213PDZ128m = 9971,
+ VFMADDSUB213PDZ128mb = 9972,
+ VFMADDSUB213PDZ128mbk = 9973,
+ VFMADDSUB213PDZ128mbkz = 9974,
+ VFMADDSUB213PDZ128mk = 9975,
+ VFMADDSUB213PDZ128mkz = 9976,
+ VFMADDSUB213PDZ128r = 9977,
+ VFMADDSUB213PDZ128rk = 9978,
+ VFMADDSUB213PDZ128rkz = 9979,
+ VFMADDSUB213PDZ256m = 9980,
+ VFMADDSUB213PDZ256mb = 9981,
+ VFMADDSUB213PDZ256mbk = 9982,
+ VFMADDSUB213PDZ256mbkz = 9983,
+ VFMADDSUB213PDZ256mk = 9984,
+ VFMADDSUB213PDZ256mkz = 9985,
+ VFMADDSUB213PDZ256r = 9986,
+ VFMADDSUB213PDZ256rk = 9987,
+ VFMADDSUB213PDZ256rkz = 9988,
+ VFMADDSUB213PDZm = 9989,
+ VFMADDSUB213PDZmb = 9990,
+ VFMADDSUB213PDZmbk = 9991,
+ VFMADDSUB213PDZmbkz = 9992,
+ VFMADDSUB213PDZmk = 9993,
+ VFMADDSUB213PDZmkz = 9994,
+ VFMADDSUB213PDZr = 9995,
+ VFMADDSUB213PDZrb = 9996,
+ VFMADDSUB213PDZrbk = 9997,
+ VFMADDSUB213PDZrbkz = 9998,
+ VFMADDSUB213PDZrk = 9999,
+ VFMADDSUB213PDZrkz = 10000,
+ VFMADDSUB213PDm = 10001,
+ VFMADDSUB213PDr = 10002,
+ VFMADDSUB213PHZ128m = 10003,
+ VFMADDSUB213PHZ128mb = 10004,
+ VFMADDSUB213PHZ128mbk = 10005,
+ VFMADDSUB213PHZ128mbkz = 10006,
+ VFMADDSUB213PHZ128mk = 10007,
+ VFMADDSUB213PHZ128mkz = 10008,
+ VFMADDSUB213PHZ128r = 10009,
+ VFMADDSUB213PHZ128rk = 10010,
+ VFMADDSUB213PHZ128rkz = 10011,
+ VFMADDSUB213PHZ256m = 10012,
+ VFMADDSUB213PHZ256mb = 10013,
+ VFMADDSUB213PHZ256mbk = 10014,
+ VFMADDSUB213PHZ256mbkz = 10015,
+ VFMADDSUB213PHZ256mk = 10016,
+ VFMADDSUB213PHZ256mkz = 10017,
+ VFMADDSUB213PHZ256r = 10018,
+ VFMADDSUB213PHZ256rk = 10019,
+ VFMADDSUB213PHZ256rkz = 10020,
+ VFMADDSUB213PHZm = 10021,
+ VFMADDSUB213PHZmb = 10022,
+ VFMADDSUB213PHZmbk = 10023,
+ VFMADDSUB213PHZmbkz = 10024,
+ VFMADDSUB213PHZmk = 10025,
+ VFMADDSUB213PHZmkz = 10026,
+ VFMADDSUB213PHZr = 10027,
+ VFMADDSUB213PHZrb = 10028,
+ VFMADDSUB213PHZrbk = 10029,
+ VFMADDSUB213PHZrbkz = 10030,
+ VFMADDSUB213PHZrk = 10031,
+ VFMADDSUB213PHZrkz = 10032,
+ VFMADDSUB213PSYm = 10033,
+ VFMADDSUB213PSYr = 10034,
+ VFMADDSUB213PSZ128m = 10035,
+ VFMADDSUB213PSZ128mb = 10036,
+ VFMADDSUB213PSZ128mbk = 10037,
+ VFMADDSUB213PSZ128mbkz = 10038,
+ VFMADDSUB213PSZ128mk = 10039,
+ VFMADDSUB213PSZ128mkz = 10040,
+ VFMADDSUB213PSZ128r = 10041,
+ VFMADDSUB213PSZ128rk = 10042,
+ VFMADDSUB213PSZ128rkz = 10043,
+ VFMADDSUB213PSZ256m = 10044,
+ VFMADDSUB213PSZ256mb = 10045,
+ VFMADDSUB213PSZ256mbk = 10046,
+ VFMADDSUB213PSZ256mbkz = 10047,
+ VFMADDSUB213PSZ256mk = 10048,
+ VFMADDSUB213PSZ256mkz = 10049,
+ VFMADDSUB213PSZ256r = 10050,
+ VFMADDSUB213PSZ256rk = 10051,
+ VFMADDSUB213PSZ256rkz = 10052,
+ VFMADDSUB213PSZm = 10053,
+ VFMADDSUB213PSZmb = 10054,
+ VFMADDSUB213PSZmbk = 10055,
+ VFMADDSUB213PSZmbkz = 10056,
+ VFMADDSUB213PSZmk = 10057,
+ VFMADDSUB213PSZmkz = 10058,
+ VFMADDSUB213PSZr = 10059,
+ VFMADDSUB213PSZrb = 10060,
+ VFMADDSUB213PSZrbk = 10061,
+ VFMADDSUB213PSZrbkz = 10062,
+ VFMADDSUB213PSZrk = 10063,
+ VFMADDSUB213PSZrkz = 10064,
+ VFMADDSUB213PSm = 10065,
+ VFMADDSUB213PSr = 10066,
+ VFMADDSUB231PDYm = 10067,
+ VFMADDSUB231PDYr = 10068,
+ VFMADDSUB231PDZ128m = 10069,
+ VFMADDSUB231PDZ128mb = 10070,
+ VFMADDSUB231PDZ128mbk = 10071,
+ VFMADDSUB231PDZ128mbkz = 10072,
+ VFMADDSUB231PDZ128mk = 10073,
+ VFMADDSUB231PDZ128mkz = 10074,
+ VFMADDSUB231PDZ128r = 10075,
+ VFMADDSUB231PDZ128rk = 10076,
+ VFMADDSUB231PDZ128rkz = 10077,
+ VFMADDSUB231PDZ256m = 10078,
+ VFMADDSUB231PDZ256mb = 10079,
+ VFMADDSUB231PDZ256mbk = 10080,
+ VFMADDSUB231PDZ256mbkz = 10081,
+ VFMADDSUB231PDZ256mk = 10082,
+ VFMADDSUB231PDZ256mkz = 10083,
+ VFMADDSUB231PDZ256r = 10084,
+ VFMADDSUB231PDZ256rk = 10085,
+ VFMADDSUB231PDZ256rkz = 10086,
+ VFMADDSUB231PDZm = 10087,
+ VFMADDSUB231PDZmb = 10088,
+ VFMADDSUB231PDZmbk = 10089,
+ VFMADDSUB231PDZmbkz = 10090,
+ VFMADDSUB231PDZmk = 10091,
+ VFMADDSUB231PDZmkz = 10092,
+ VFMADDSUB231PDZr = 10093,
+ VFMADDSUB231PDZrb = 10094,
+ VFMADDSUB231PDZrbk = 10095,
+ VFMADDSUB231PDZrbkz = 10096,
+ VFMADDSUB231PDZrk = 10097,
+ VFMADDSUB231PDZrkz = 10098,
+ VFMADDSUB231PDm = 10099,
+ VFMADDSUB231PDr = 10100,
+ VFMADDSUB231PHZ128m = 10101,
+ VFMADDSUB231PHZ128mb = 10102,
+ VFMADDSUB231PHZ128mbk = 10103,
+ VFMADDSUB231PHZ128mbkz = 10104,
+ VFMADDSUB231PHZ128mk = 10105,
+ VFMADDSUB231PHZ128mkz = 10106,
+ VFMADDSUB231PHZ128r = 10107,
+ VFMADDSUB231PHZ128rk = 10108,
+ VFMADDSUB231PHZ128rkz = 10109,
+ VFMADDSUB231PHZ256m = 10110,
+ VFMADDSUB231PHZ256mb = 10111,
+ VFMADDSUB231PHZ256mbk = 10112,
+ VFMADDSUB231PHZ256mbkz = 10113,
+ VFMADDSUB231PHZ256mk = 10114,
+ VFMADDSUB231PHZ256mkz = 10115,
+ VFMADDSUB231PHZ256r = 10116,
+ VFMADDSUB231PHZ256rk = 10117,
+ VFMADDSUB231PHZ256rkz = 10118,
+ VFMADDSUB231PHZm = 10119,
+ VFMADDSUB231PHZmb = 10120,
+ VFMADDSUB231PHZmbk = 10121,
+ VFMADDSUB231PHZmbkz = 10122,
+ VFMADDSUB231PHZmk = 10123,
+ VFMADDSUB231PHZmkz = 10124,
+ VFMADDSUB231PHZr = 10125,
+ VFMADDSUB231PHZrb = 10126,
+ VFMADDSUB231PHZrbk = 10127,
+ VFMADDSUB231PHZrbkz = 10128,
+ VFMADDSUB231PHZrk = 10129,
+ VFMADDSUB231PHZrkz = 10130,
+ VFMADDSUB231PSYm = 10131,
+ VFMADDSUB231PSYr = 10132,
+ VFMADDSUB231PSZ128m = 10133,
+ VFMADDSUB231PSZ128mb = 10134,
+ VFMADDSUB231PSZ128mbk = 10135,
+ VFMADDSUB231PSZ128mbkz = 10136,
+ VFMADDSUB231PSZ128mk = 10137,
+ VFMADDSUB231PSZ128mkz = 10138,
+ VFMADDSUB231PSZ128r = 10139,
+ VFMADDSUB231PSZ128rk = 10140,
+ VFMADDSUB231PSZ128rkz = 10141,
+ VFMADDSUB231PSZ256m = 10142,
+ VFMADDSUB231PSZ256mb = 10143,
+ VFMADDSUB231PSZ256mbk = 10144,
+ VFMADDSUB231PSZ256mbkz = 10145,
+ VFMADDSUB231PSZ256mk = 10146,
+ VFMADDSUB231PSZ256mkz = 10147,
+ VFMADDSUB231PSZ256r = 10148,
+ VFMADDSUB231PSZ256rk = 10149,
+ VFMADDSUB231PSZ256rkz = 10150,
+ VFMADDSUB231PSZm = 10151,
+ VFMADDSUB231PSZmb = 10152,
+ VFMADDSUB231PSZmbk = 10153,
+ VFMADDSUB231PSZmbkz = 10154,
+ VFMADDSUB231PSZmk = 10155,
+ VFMADDSUB231PSZmkz = 10156,
+ VFMADDSUB231PSZr = 10157,
+ VFMADDSUB231PSZrb = 10158,
+ VFMADDSUB231PSZrbk = 10159,
+ VFMADDSUB231PSZrbkz = 10160,
+ VFMADDSUB231PSZrk = 10161,
+ VFMADDSUB231PSZrkz = 10162,
+ VFMADDSUB231PSm = 10163,
+ VFMADDSUB231PSr = 10164,
+ VFMADDSUBPD4Ymr = 10165,
+ VFMADDSUBPD4Yrm = 10166,
+ VFMADDSUBPD4Yrr = 10167,
+ VFMADDSUBPD4Yrr_REV = 10168,
+ VFMADDSUBPD4mr = 10169,
+ VFMADDSUBPD4rm = 10170,
+ VFMADDSUBPD4rr = 10171,
+ VFMADDSUBPD4rr_REV = 10172,
+ VFMADDSUBPS4Ymr = 10173,
+ VFMADDSUBPS4Yrm = 10174,
+ VFMADDSUBPS4Yrr = 10175,
+ VFMADDSUBPS4Yrr_REV = 10176,
+ VFMADDSUBPS4mr = 10177,
+ VFMADDSUBPS4rm = 10178,
+ VFMADDSUBPS4rr = 10179,
+ VFMADDSUBPS4rr_REV = 10180,
+ VFMSUB132BF16Z128m = 10181,
+ VFMSUB132BF16Z128mb = 10182,
+ VFMSUB132BF16Z128mbk = 10183,
+ VFMSUB132BF16Z128mbkz = 10184,
+ VFMSUB132BF16Z128mk = 10185,
+ VFMSUB132BF16Z128mkz = 10186,
+ VFMSUB132BF16Z128r = 10187,
+ VFMSUB132BF16Z128rk = 10188,
+ VFMSUB132BF16Z128rkz = 10189,
+ VFMSUB132BF16Z256m = 10190,
+ VFMSUB132BF16Z256mb = 10191,
+ VFMSUB132BF16Z256mbk = 10192,
+ VFMSUB132BF16Z256mbkz = 10193,
+ VFMSUB132BF16Z256mk = 10194,
+ VFMSUB132BF16Z256mkz = 10195,
+ VFMSUB132BF16Z256r = 10196,
+ VFMSUB132BF16Z256rk = 10197,
+ VFMSUB132BF16Z256rkz = 10198,
+ VFMSUB132BF16Zm = 10199,
+ VFMSUB132BF16Zmb = 10200,
+ VFMSUB132BF16Zmbk = 10201,
+ VFMSUB132BF16Zmbkz = 10202,
+ VFMSUB132BF16Zmk = 10203,
+ VFMSUB132BF16Zmkz = 10204,
+ VFMSUB132BF16Zr = 10205,
+ VFMSUB132BF16Zrk = 10206,
+ VFMSUB132BF16Zrkz = 10207,
+ VFMSUB132PDYm = 10208,
+ VFMSUB132PDYr = 10209,
+ VFMSUB132PDZ128m = 10210,
+ VFMSUB132PDZ128mb = 10211,
+ VFMSUB132PDZ128mbk = 10212,
+ VFMSUB132PDZ128mbkz = 10213,
+ VFMSUB132PDZ128mk = 10214,
+ VFMSUB132PDZ128mkz = 10215,
+ VFMSUB132PDZ128r = 10216,
+ VFMSUB132PDZ128rk = 10217,
+ VFMSUB132PDZ128rkz = 10218,
+ VFMSUB132PDZ256m = 10219,
+ VFMSUB132PDZ256mb = 10220,
+ VFMSUB132PDZ256mbk = 10221,
+ VFMSUB132PDZ256mbkz = 10222,
+ VFMSUB132PDZ256mk = 10223,
+ VFMSUB132PDZ256mkz = 10224,
+ VFMSUB132PDZ256r = 10225,
+ VFMSUB132PDZ256rk = 10226,
+ VFMSUB132PDZ256rkz = 10227,
+ VFMSUB132PDZm = 10228,
+ VFMSUB132PDZmb = 10229,
+ VFMSUB132PDZmbk = 10230,
+ VFMSUB132PDZmbkz = 10231,
+ VFMSUB132PDZmk = 10232,
+ VFMSUB132PDZmkz = 10233,
+ VFMSUB132PDZr = 10234,
+ VFMSUB132PDZrb = 10235,
+ VFMSUB132PDZrbk = 10236,
+ VFMSUB132PDZrbkz = 10237,
+ VFMSUB132PDZrk = 10238,
+ VFMSUB132PDZrkz = 10239,
+ VFMSUB132PDm = 10240,
+ VFMSUB132PDr = 10241,
+ VFMSUB132PHZ128m = 10242,
+ VFMSUB132PHZ128mb = 10243,
+ VFMSUB132PHZ128mbk = 10244,
+ VFMSUB132PHZ128mbkz = 10245,
+ VFMSUB132PHZ128mk = 10246,
+ VFMSUB132PHZ128mkz = 10247,
+ VFMSUB132PHZ128r = 10248,
+ VFMSUB132PHZ128rk = 10249,
+ VFMSUB132PHZ128rkz = 10250,
+ VFMSUB132PHZ256m = 10251,
+ VFMSUB132PHZ256mb = 10252,
+ VFMSUB132PHZ256mbk = 10253,
+ VFMSUB132PHZ256mbkz = 10254,
+ VFMSUB132PHZ256mk = 10255,
+ VFMSUB132PHZ256mkz = 10256,
+ VFMSUB132PHZ256r = 10257,
+ VFMSUB132PHZ256rk = 10258,
+ VFMSUB132PHZ256rkz = 10259,
+ VFMSUB132PHZm = 10260,
+ VFMSUB132PHZmb = 10261,
+ VFMSUB132PHZmbk = 10262,
+ VFMSUB132PHZmbkz = 10263,
+ VFMSUB132PHZmk = 10264,
+ VFMSUB132PHZmkz = 10265,
+ VFMSUB132PHZr = 10266,
+ VFMSUB132PHZrb = 10267,
+ VFMSUB132PHZrbk = 10268,
+ VFMSUB132PHZrbkz = 10269,
+ VFMSUB132PHZrk = 10270,
+ VFMSUB132PHZrkz = 10271,
+ VFMSUB132PSYm = 10272,
+ VFMSUB132PSYr = 10273,
+ VFMSUB132PSZ128m = 10274,
+ VFMSUB132PSZ128mb = 10275,
+ VFMSUB132PSZ128mbk = 10276,
+ VFMSUB132PSZ128mbkz = 10277,
+ VFMSUB132PSZ128mk = 10278,
+ VFMSUB132PSZ128mkz = 10279,
+ VFMSUB132PSZ128r = 10280,
+ VFMSUB132PSZ128rk = 10281,
+ VFMSUB132PSZ128rkz = 10282,
+ VFMSUB132PSZ256m = 10283,
+ VFMSUB132PSZ256mb = 10284,
+ VFMSUB132PSZ256mbk = 10285,
+ VFMSUB132PSZ256mbkz = 10286,
+ VFMSUB132PSZ256mk = 10287,
+ VFMSUB132PSZ256mkz = 10288,
+ VFMSUB132PSZ256r = 10289,
+ VFMSUB132PSZ256rk = 10290,
+ VFMSUB132PSZ256rkz = 10291,
+ VFMSUB132PSZm = 10292,
+ VFMSUB132PSZmb = 10293,
+ VFMSUB132PSZmbk = 10294,
+ VFMSUB132PSZmbkz = 10295,
+ VFMSUB132PSZmk = 10296,
+ VFMSUB132PSZmkz = 10297,
+ VFMSUB132PSZr = 10298,
+ VFMSUB132PSZrb = 10299,
+ VFMSUB132PSZrbk = 10300,
+ VFMSUB132PSZrbkz = 10301,
+ VFMSUB132PSZrk = 10302,
+ VFMSUB132PSZrkz = 10303,
+ VFMSUB132PSm = 10304,
+ VFMSUB132PSr = 10305,
+ VFMSUB132SDZm = 10306,
+ VFMSUB132SDZm_Int = 10307,
+ VFMSUB132SDZmk_Int = 10308,
+ VFMSUB132SDZmkz_Int = 10309,
+ VFMSUB132SDZr = 10310,
+ VFMSUB132SDZr_Int = 10311,
+ VFMSUB132SDZrb = 10312,
+ VFMSUB132SDZrb_Int = 10313,
+ VFMSUB132SDZrbk_Int = 10314,
+ VFMSUB132SDZrbkz_Int = 10315,
+ VFMSUB132SDZrk_Int = 10316,
+ VFMSUB132SDZrkz_Int = 10317,
+ VFMSUB132SDm = 10318,
+ VFMSUB132SDm_Int = 10319,
+ VFMSUB132SDr = 10320,
+ VFMSUB132SDr_Int = 10321,
+ VFMSUB132SHZm = 10322,
+ VFMSUB132SHZm_Int = 10323,
+ VFMSUB132SHZmk_Int = 10324,
+ VFMSUB132SHZmkz_Int = 10325,
+ VFMSUB132SHZr = 10326,
+ VFMSUB132SHZr_Int = 10327,
+ VFMSUB132SHZrb = 10328,
+ VFMSUB132SHZrb_Int = 10329,
+ VFMSUB132SHZrbk_Int = 10330,
+ VFMSUB132SHZrbkz_Int = 10331,
+ VFMSUB132SHZrk_Int = 10332,
+ VFMSUB132SHZrkz_Int = 10333,
+ VFMSUB132SSZm = 10334,
+ VFMSUB132SSZm_Int = 10335,
+ VFMSUB132SSZmk_Int = 10336,
+ VFMSUB132SSZmkz_Int = 10337,
+ VFMSUB132SSZr = 10338,
+ VFMSUB132SSZr_Int = 10339,
+ VFMSUB132SSZrb = 10340,
+ VFMSUB132SSZrb_Int = 10341,
+ VFMSUB132SSZrbk_Int = 10342,
+ VFMSUB132SSZrbkz_Int = 10343,
+ VFMSUB132SSZrk_Int = 10344,
+ VFMSUB132SSZrkz_Int = 10345,
+ VFMSUB132SSm = 10346,
+ VFMSUB132SSm_Int = 10347,
+ VFMSUB132SSr = 10348,
+ VFMSUB132SSr_Int = 10349,
+ VFMSUB213BF16Z128m = 10350,
+ VFMSUB213BF16Z128mb = 10351,
+ VFMSUB213BF16Z128mbk = 10352,
+ VFMSUB213BF16Z128mbkz = 10353,
+ VFMSUB213BF16Z128mk = 10354,
+ VFMSUB213BF16Z128mkz = 10355,
+ VFMSUB213BF16Z128r = 10356,
+ VFMSUB213BF16Z128rk = 10357,
+ VFMSUB213BF16Z128rkz = 10358,
+ VFMSUB213BF16Z256m = 10359,
+ VFMSUB213BF16Z256mb = 10360,
+ VFMSUB213BF16Z256mbk = 10361,
+ VFMSUB213BF16Z256mbkz = 10362,
+ VFMSUB213BF16Z256mk = 10363,
+ VFMSUB213BF16Z256mkz = 10364,
+ VFMSUB213BF16Z256r = 10365,
+ VFMSUB213BF16Z256rk = 10366,
+ VFMSUB213BF16Z256rkz = 10367,
+ VFMSUB213BF16Zm = 10368,
+ VFMSUB213BF16Zmb = 10369,
+ VFMSUB213BF16Zmbk = 10370,
+ VFMSUB213BF16Zmbkz = 10371,
+ VFMSUB213BF16Zmk = 10372,
+ VFMSUB213BF16Zmkz = 10373,
+ VFMSUB213BF16Zr = 10374,
+ VFMSUB213BF16Zrk = 10375,
+ VFMSUB213BF16Zrkz = 10376,
+ VFMSUB213PDYm = 10377,
+ VFMSUB213PDYr = 10378,
+ VFMSUB213PDZ128m = 10379,
+ VFMSUB213PDZ128mb = 10380,
+ VFMSUB213PDZ128mbk = 10381,
+ VFMSUB213PDZ128mbkz = 10382,
+ VFMSUB213PDZ128mk = 10383,
+ VFMSUB213PDZ128mkz = 10384,
+ VFMSUB213PDZ128r = 10385,
+ VFMSUB213PDZ128rk = 10386,
+ VFMSUB213PDZ128rkz = 10387,
+ VFMSUB213PDZ256m = 10388,
+ VFMSUB213PDZ256mb = 10389,
+ VFMSUB213PDZ256mbk = 10390,
+ VFMSUB213PDZ256mbkz = 10391,
+ VFMSUB213PDZ256mk = 10392,
+ VFMSUB213PDZ256mkz = 10393,
+ VFMSUB213PDZ256r = 10394,
+ VFMSUB213PDZ256rk = 10395,
+ VFMSUB213PDZ256rkz = 10396,
+ VFMSUB213PDZm = 10397,
+ VFMSUB213PDZmb = 10398,
+ VFMSUB213PDZmbk = 10399,
+ VFMSUB213PDZmbkz = 10400,
+ VFMSUB213PDZmk = 10401,
+ VFMSUB213PDZmkz = 10402,
+ VFMSUB213PDZr = 10403,
+ VFMSUB213PDZrb = 10404,
+ VFMSUB213PDZrbk = 10405,
+ VFMSUB213PDZrbkz = 10406,
+ VFMSUB213PDZrk = 10407,
+ VFMSUB213PDZrkz = 10408,
+ VFMSUB213PDm = 10409,
+ VFMSUB213PDr = 10410,
+ VFMSUB213PHZ128m = 10411,
+ VFMSUB213PHZ128mb = 10412,
+ VFMSUB213PHZ128mbk = 10413,
+ VFMSUB213PHZ128mbkz = 10414,
+ VFMSUB213PHZ128mk = 10415,
+ VFMSUB213PHZ128mkz = 10416,
+ VFMSUB213PHZ128r = 10417,
+ VFMSUB213PHZ128rk = 10418,
+ VFMSUB213PHZ128rkz = 10419,
+ VFMSUB213PHZ256m = 10420,
+ VFMSUB213PHZ256mb = 10421,
+ VFMSUB213PHZ256mbk = 10422,
+ VFMSUB213PHZ256mbkz = 10423,
+ VFMSUB213PHZ256mk = 10424,
+ VFMSUB213PHZ256mkz = 10425,
+ VFMSUB213PHZ256r = 10426,
+ VFMSUB213PHZ256rk = 10427,
+ VFMSUB213PHZ256rkz = 10428,
+ VFMSUB213PHZm = 10429,
+ VFMSUB213PHZmb = 10430,
+ VFMSUB213PHZmbk = 10431,
+ VFMSUB213PHZmbkz = 10432,
+ VFMSUB213PHZmk = 10433,
+ VFMSUB213PHZmkz = 10434,
+ VFMSUB213PHZr = 10435,
+ VFMSUB213PHZrb = 10436,
+ VFMSUB213PHZrbk = 10437,
+ VFMSUB213PHZrbkz = 10438,
+ VFMSUB213PHZrk = 10439,
+ VFMSUB213PHZrkz = 10440,
+ VFMSUB213PSYm = 10441,
+ VFMSUB213PSYr = 10442,
+ VFMSUB213PSZ128m = 10443,
+ VFMSUB213PSZ128mb = 10444,
+ VFMSUB213PSZ128mbk = 10445,
+ VFMSUB213PSZ128mbkz = 10446,
+ VFMSUB213PSZ128mk = 10447,
+ VFMSUB213PSZ128mkz = 10448,
+ VFMSUB213PSZ128r = 10449,
+ VFMSUB213PSZ128rk = 10450,
+ VFMSUB213PSZ128rkz = 10451,
+ VFMSUB213PSZ256m = 10452,
+ VFMSUB213PSZ256mb = 10453,
+ VFMSUB213PSZ256mbk = 10454,
+ VFMSUB213PSZ256mbkz = 10455,
+ VFMSUB213PSZ256mk = 10456,
+ VFMSUB213PSZ256mkz = 10457,
+ VFMSUB213PSZ256r = 10458,
+ VFMSUB213PSZ256rk = 10459,
+ VFMSUB213PSZ256rkz = 10460,
+ VFMSUB213PSZm = 10461,
+ VFMSUB213PSZmb = 10462,
+ VFMSUB213PSZmbk = 10463,
+ VFMSUB213PSZmbkz = 10464,
+ VFMSUB213PSZmk = 10465,
+ VFMSUB213PSZmkz = 10466,
+ VFMSUB213PSZr = 10467,
+ VFMSUB213PSZrb = 10468,
+ VFMSUB213PSZrbk = 10469,
+ VFMSUB213PSZrbkz = 10470,
+ VFMSUB213PSZrk = 10471,
+ VFMSUB213PSZrkz = 10472,
+ VFMSUB213PSm = 10473,
+ VFMSUB213PSr = 10474,
+ VFMSUB213SDZm = 10475,
+ VFMSUB213SDZm_Int = 10476,
+ VFMSUB213SDZmk_Int = 10477,
+ VFMSUB213SDZmkz_Int = 10478,
+ VFMSUB213SDZr = 10479,
+ VFMSUB213SDZr_Int = 10480,
+ VFMSUB213SDZrb = 10481,
+ VFMSUB213SDZrb_Int = 10482,
+ VFMSUB213SDZrbk_Int = 10483,
+ VFMSUB213SDZrbkz_Int = 10484,
+ VFMSUB213SDZrk_Int = 10485,
+ VFMSUB213SDZrkz_Int = 10486,
+ VFMSUB213SDm = 10487,
+ VFMSUB213SDm_Int = 10488,
+ VFMSUB213SDr = 10489,
+ VFMSUB213SDr_Int = 10490,
+ VFMSUB213SHZm = 10491,
+ VFMSUB213SHZm_Int = 10492,
+ VFMSUB213SHZmk_Int = 10493,
+ VFMSUB213SHZmkz_Int = 10494,
+ VFMSUB213SHZr = 10495,
+ VFMSUB213SHZr_Int = 10496,
+ VFMSUB213SHZrb = 10497,
+ VFMSUB213SHZrb_Int = 10498,
+ VFMSUB213SHZrbk_Int = 10499,
+ VFMSUB213SHZrbkz_Int = 10500,
+ VFMSUB213SHZrk_Int = 10501,
+ VFMSUB213SHZrkz_Int = 10502,
+ VFMSUB213SSZm = 10503,
+ VFMSUB213SSZm_Int = 10504,
+ VFMSUB213SSZmk_Int = 10505,
+ VFMSUB213SSZmkz_Int = 10506,
+ VFMSUB213SSZr = 10507,
+ VFMSUB213SSZr_Int = 10508,
+ VFMSUB213SSZrb = 10509,
+ VFMSUB213SSZrb_Int = 10510,
+ VFMSUB213SSZrbk_Int = 10511,
+ VFMSUB213SSZrbkz_Int = 10512,
+ VFMSUB213SSZrk_Int = 10513,
+ VFMSUB213SSZrkz_Int = 10514,
+ VFMSUB213SSm = 10515,
+ VFMSUB213SSm_Int = 10516,
+ VFMSUB213SSr = 10517,
+ VFMSUB213SSr_Int = 10518,
+ VFMSUB231BF16Z128m = 10519,
+ VFMSUB231BF16Z128mb = 10520,
+ VFMSUB231BF16Z128mbk = 10521,
+ VFMSUB231BF16Z128mbkz = 10522,
+ VFMSUB231BF16Z128mk = 10523,
+ VFMSUB231BF16Z128mkz = 10524,
+ VFMSUB231BF16Z128r = 10525,
+ VFMSUB231BF16Z128rk = 10526,
+ VFMSUB231BF16Z128rkz = 10527,
+ VFMSUB231BF16Z256m = 10528,
+ VFMSUB231BF16Z256mb = 10529,
+ VFMSUB231BF16Z256mbk = 10530,
+ VFMSUB231BF16Z256mbkz = 10531,
+ VFMSUB231BF16Z256mk = 10532,
+ VFMSUB231BF16Z256mkz = 10533,
+ VFMSUB231BF16Z256r = 10534,
+ VFMSUB231BF16Z256rk = 10535,
+ VFMSUB231BF16Z256rkz = 10536,
+ VFMSUB231BF16Zm = 10537,
+ VFMSUB231BF16Zmb = 10538,
+ VFMSUB231BF16Zmbk = 10539,
+ VFMSUB231BF16Zmbkz = 10540,
+ VFMSUB231BF16Zmk = 10541,
+ VFMSUB231BF16Zmkz = 10542,
+ VFMSUB231BF16Zr = 10543,
+ VFMSUB231BF16Zrk = 10544,
+ VFMSUB231BF16Zrkz = 10545,
+ VFMSUB231PDYm = 10546,
+ VFMSUB231PDYr = 10547,
+ VFMSUB231PDZ128m = 10548,
+ VFMSUB231PDZ128mb = 10549,
+ VFMSUB231PDZ128mbk = 10550,
+ VFMSUB231PDZ128mbkz = 10551,
+ VFMSUB231PDZ128mk = 10552,
+ VFMSUB231PDZ128mkz = 10553,
+ VFMSUB231PDZ128r = 10554,
+ VFMSUB231PDZ128rk = 10555,
+ VFMSUB231PDZ128rkz = 10556,
+ VFMSUB231PDZ256m = 10557,
+ VFMSUB231PDZ256mb = 10558,
+ VFMSUB231PDZ256mbk = 10559,
+ VFMSUB231PDZ256mbkz = 10560,
+ VFMSUB231PDZ256mk = 10561,
+ VFMSUB231PDZ256mkz = 10562,
+ VFMSUB231PDZ256r = 10563,
+ VFMSUB231PDZ256rk = 10564,
+ VFMSUB231PDZ256rkz = 10565,
+ VFMSUB231PDZm = 10566,
+ VFMSUB231PDZmb = 10567,
+ VFMSUB231PDZmbk = 10568,
+ VFMSUB231PDZmbkz = 10569,
+ VFMSUB231PDZmk = 10570,
+ VFMSUB231PDZmkz = 10571,
+ VFMSUB231PDZr = 10572,
+ VFMSUB231PDZrb = 10573,
+ VFMSUB231PDZrbk = 10574,
+ VFMSUB231PDZrbkz = 10575,
+ VFMSUB231PDZrk = 10576,
+ VFMSUB231PDZrkz = 10577,
+ VFMSUB231PDm = 10578,
+ VFMSUB231PDr = 10579,
+ VFMSUB231PHZ128m = 10580,
+ VFMSUB231PHZ128mb = 10581,
+ VFMSUB231PHZ128mbk = 10582,
+ VFMSUB231PHZ128mbkz = 10583,
+ VFMSUB231PHZ128mk = 10584,
+ VFMSUB231PHZ128mkz = 10585,
+ VFMSUB231PHZ128r = 10586,
+ VFMSUB231PHZ128rk = 10587,
+ VFMSUB231PHZ128rkz = 10588,
+ VFMSUB231PHZ256m = 10589,
+ VFMSUB231PHZ256mb = 10590,
+ VFMSUB231PHZ256mbk = 10591,
+ VFMSUB231PHZ256mbkz = 10592,
+ VFMSUB231PHZ256mk = 10593,
+ VFMSUB231PHZ256mkz = 10594,
+ VFMSUB231PHZ256r = 10595,
+ VFMSUB231PHZ256rk = 10596,
+ VFMSUB231PHZ256rkz = 10597,
+ VFMSUB231PHZm = 10598,
+ VFMSUB231PHZmb = 10599,
+ VFMSUB231PHZmbk = 10600,
+ VFMSUB231PHZmbkz = 10601,
+ VFMSUB231PHZmk = 10602,
+ VFMSUB231PHZmkz = 10603,
+ VFMSUB231PHZr = 10604,
+ VFMSUB231PHZrb = 10605,
+ VFMSUB231PHZrbk = 10606,
+ VFMSUB231PHZrbkz = 10607,
+ VFMSUB231PHZrk = 10608,
+ VFMSUB231PHZrkz = 10609,
+ VFMSUB231PSYm = 10610,
+ VFMSUB231PSYr = 10611,
+ VFMSUB231PSZ128m = 10612,
+ VFMSUB231PSZ128mb = 10613,
+ VFMSUB231PSZ128mbk = 10614,
+ VFMSUB231PSZ128mbkz = 10615,
+ VFMSUB231PSZ128mk = 10616,
+ VFMSUB231PSZ128mkz = 10617,
+ VFMSUB231PSZ128r = 10618,
+ VFMSUB231PSZ128rk = 10619,
+ VFMSUB231PSZ128rkz = 10620,
+ VFMSUB231PSZ256m = 10621,
+ VFMSUB231PSZ256mb = 10622,
+ VFMSUB231PSZ256mbk = 10623,
+ VFMSUB231PSZ256mbkz = 10624,
+ VFMSUB231PSZ256mk = 10625,
+ VFMSUB231PSZ256mkz = 10626,
+ VFMSUB231PSZ256r = 10627,
+ VFMSUB231PSZ256rk = 10628,
+ VFMSUB231PSZ256rkz = 10629,
+ VFMSUB231PSZm = 10630,
+ VFMSUB231PSZmb = 10631,
+ VFMSUB231PSZmbk = 10632,
+ VFMSUB231PSZmbkz = 10633,
+ VFMSUB231PSZmk = 10634,
+ VFMSUB231PSZmkz = 10635,
+ VFMSUB231PSZr = 10636,
+ VFMSUB231PSZrb = 10637,
+ VFMSUB231PSZrbk = 10638,
+ VFMSUB231PSZrbkz = 10639,
+ VFMSUB231PSZrk = 10640,
+ VFMSUB231PSZrkz = 10641,
+ VFMSUB231PSm = 10642,
+ VFMSUB231PSr = 10643,
+ VFMSUB231SDZm = 10644,
+ VFMSUB231SDZm_Int = 10645,
+ VFMSUB231SDZmk_Int = 10646,
+ VFMSUB231SDZmkz_Int = 10647,
+ VFMSUB231SDZr = 10648,
+ VFMSUB231SDZr_Int = 10649,
+ VFMSUB231SDZrb = 10650,
+ VFMSUB231SDZrb_Int = 10651,
+ VFMSUB231SDZrbk_Int = 10652,
+ VFMSUB231SDZrbkz_Int = 10653,
+ VFMSUB231SDZrk_Int = 10654,
+ VFMSUB231SDZrkz_Int = 10655,
+ VFMSUB231SDm = 10656,
+ VFMSUB231SDm_Int = 10657,
+ VFMSUB231SDr = 10658,
+ VFMSUB231SDr_Int = 10659,
+ VFMSUB231SHZm = 10660,
+ VFMSUB231SHZm_Int = 10661,
+ VFMSUB231SHZmk_Int = 10662,
+ VFMSUB231SHZmkz_Int = 10663,
+ VFMSUB231SHZr = 10664,
+ VFMSUB231SHZr_Int = 10665,
+ VFMSUB231SHZrb = 10666,
+ VFMSUB231SHZrb_Int = 10667,
+ VFMSUB231SHZrbk_Int = 10668,
+ VFMSUB231SHZrbkz_Int = 10669,
+ VFMSUB231SHZrk_Int = 10670,
+ VFMSUB231SHZrkz_Int = 10671,
+ VFMSUB231SSZm = 10672,
+ VFMSUB231SSZm_Int = 10673,
+ VFMSUB231SSZmk_Int = 10674,
+ VFMSUB231SSZmkz_Int = 10675,
+ VFMSUB231SSZr = 10676,
+ VFMSUB231SSZr_Int = 10677,
+ VFMSUB231SSZrb = 10678,
+ VFMSUB231SSZrb_Int = 10679,
+ VFMSUB231SSZrbk_Int = 10680,
+ VFMSUB231SSZrbkz_Int = 10681,
+ VFMSUB231SSZrk_Int = 10682,
+ VFMSUB231SSZrkz_Int = 10683,
+ VFMSUB231SSm = 10684,
+ VFMSUB231SSm_Int = 10685,
+ VFMSUB231SSr = 10686,
+ VFMSUB231SSr_Int = 10687,
+ VFMSUBADD132PDYm = 10688,
+ VFMSUBADD132PDYr = 10689,
+ VFMSUBADD132PDZ128m = 10690,
+ VFMSUBADD132PDZ128mb = 10691,
+ VFMSUBADD132PDZ128mbk = 10692,
+ VFMSUBADD132PDZ128mbkz = 10693,
+ VFMSUBADD132PDZ128mk = 10694,
+ VFMSUBADD132PDZ128mkz = 10695,
+ VFMSUBADD132PDZ128r = 10696,
+ VFMSUBADD132PDZ128rk = 10697,
+ VFMSUBADD132PDZ128rkz = 10698,
+ VFMSUBADD132PDZ256m = 10699,
+ VFMSUBADD132PDZ256mb = 10700,
+ VFMSUBADD132PDZ256mbk = 10701,
+ VFMSUBADD132PDZ256mbkz = 10702,
+ VFMSUBADD132PDZ256mk = 10703,
+ VFMSUBADD132PDZ256mkz = 10704,
+ VFMSUBADD132PDZ256r = 10705,
+ VFMSUBADD132PDZ256rk = 10706,
+ VFMSUBADD132PDZ256rkz = 10707,
+ VFMSUBADD132PDZm = 10708,
+ VFMSUBADD132PDZmb = 10709,
+ VFMSUBADD132PDZmbk = 10710,
+ VFMSUBADD132PDZmbkz = 10711,
+ VFMSUBADD132PDZmk = 10712,
+ VFMSUBADD132PDZmkz = 10713,
+ VFMSUBADD132PDZr = 10714,
+ VFMSUBADD132PDZrb = 10715,
+ VFMSUBADD132PDZrbk = 10716,
+ VFMSUBADD132PDZrbkz = 10717,
+ VFMSUBADD132PDZrk = 10718,
+ VFMSUBADD132PDZrkz = 10719,
+ VFMSUBADD132PDm = 10720,
+ VFMSUBADD132PDr = 10721,
+ VFMSUBADD132PHZ128m = 10722,
+ VFMSUBADD132PHZ128mb = 10723,
+ VFMSUBADD132PHZ128mbk = 10724,
+ VFMSUBADD132PHZ128mbkz = 10725,
+ VFMSUBADD132PHZ128mk = 10726,
+ VFMSUBADD132PHZ128mkz = 10727,
+ VFMSUBADD132PHZ128r = 10728,
+ VFMSUBADD132PHZ128rk = 10729,
+ VFMSUBADD132PHZ128rkz = 10730,
+ VFMSUBADD132PHZ256m = 10731,
+ VFMSUBADD132PHZ256mb = 10732,
+ VFMSUBADD132PHZ256mbk = 10733,
+ VFMSUBADD132PHZ256mbkz = 10734,
+ VFMSUBADD132PHZ256mk = 10735,
+ VFMSUBADD132PHZ256mkz = 10736,
+ VFMSUBADD132PHZ256r = 10737,
+ VFMSUBADD132PHZ256rk = 10738,
+ VFMSUBADD132PHZ256rkz = 10739,
+ VFMSUBADD132PHZm = 10740,
+ VFMSUBADD132PHZmb = 10741,
+ VFMSUBADD132PHZmbk = 10742,
+ VFMSUBADD132PHZmbkz = 10743,
+ VFMSUBADD132PHZmk = 10744,
+ VFMSUBADD132PHZmkz = 10745,
+ VFMSUBADD132PHZr = 10746,
+ VFMSUBADD132PHZrb = 10747,
+ VFMSUBADD132PHZrbk = 10748,
+ VFMSUBADD132PHZrbkz = 10749,
+ VFMSUBADD132PHZrk = 10750,
+ VFMSUBADD132PHZrkz = 10751,
+ VFMSUBADD132PSYm = 10752,
+ VFMSUBADD132PSYr = 10753,
+ VFMSUBADD132PSZ128m = 10754,
+ VFMSUBADD132PSZ128mb = 10755,
+ VFMSUBADD132PSZ128mbk = 10756,
+ VFMSUBADD132PSZ128mbkz = 10757,
+ VFMSUBADD132PSZ128mk = 10758,
+ VFMSUBADD132PSZ128mkz = 10759,
+ VFMSUBADD132PSZ128r = 10760,
+ VFMSUBADD132PSZ128rk = 10761,
+ VFMSUBADD132PSZ128rkz = 10762,
+ VFMSUBADD132PSZ256m = 10763,
+ VFMSUBADD132PSZ256mb = 10764,
+ VFMSUBADD132PSZ256mbk = 10765,
+ VFMSUBADD132PSZ256mbkz = 10766,
+ VFMSUBADD132PSZ256mk = 10767,
+ VFMSUBADD132PSZ256mkz = 10768,
+ VFMSUBADD132PSZ256r = 10769,
+ VFMSUBADD132PSZ256rk = 10770,
+ VFMSUBADD132PSZ256rkz = 10771,
+ VFMSUBADD132PSZm = 10772,
+ VFMSUBADD132PSZmb = 10773,
+ VFMSUBADD132PSZmbk = 10774,
+ VFMSUBADD132PSZmbkz = 10775,
+ VFMSUBADD132PSZmk = 10776,
+ VFMSUBADD132PSZmkz = 10777,
+ VFMSUBADD132PSZr = 10778,
+ VFMSUBADD132PSZrb = 10779,
+ VFMSUBADD132PSZrbk = 10780,
+ VFMSUBADD132PSZrbkz = 10781,
+ VFMSUBADD132PSZrk = 10782,
+ VFMSUBADD132PSZrkz = 10783,
+ VFMSUBADD132PSm = 10784,
+ VFMSUBADD132PSr = 10785,
+ VFMSUBADD213PDYm = 10786,
+ VFMSUBADD213PDYr = 10787,
+ VFMSUBADD213PDZ128m = 10788,
+ VFMSUBADD213PDZ128mb = 10789,
+ VFMSUBADD213PDZ128mbk = 10790,
+ VFMSUBADD213PDZ128mbkz = 10791,
+ VFMSUBADD213PDZ128mk = 10792,
+ VFMSUBADD213PDZ128mkz = 10793,
+ VFMSUBADD213PDZ128r = 10794,
+ VFMSUBADD213PDZ128rk = 10795,
+ VFMSUBADD213PDZ128rkz = 10796,
+ VFMSUBADD213PDZ256m = 10797,
+ VFMSUBADD213PDZ256mb = 10798,
+ VFMSUBADD213PDZ256mbk = 10799,
+ VFMSUBADD213PDZ256mbkz = 10800,
+ VFMSUBADD213PDZ256mk = 10801,
+ VFMSUBADD213PDZ256mkz = 10802,
+ VFMSUBADD213PDZ256r = 10803,
+ VFMSUBADD213PDZ256rk = 10804,
+ VFMSUBADD213PDZ256rkz = 10805,
+ VFMSUBADD213PDZm = 10806,
+ VFMSUBADD213PDZmb = 10807,
+ VFMSUBADD213PDZmbk = 10808,
+ VFMSUBADD213PDZmbkz = 10809,
+ VFMSUBADD213PDZmk = 10810,
+ VFMSUBADD213PDZmkz = 10811,
+ VFMSUBADD213PDZr = 10812,
+ VFMSUBADD213PDZrb = 10813,
+ VFMSUBADD213PDZrbk = 10814,
+ VFMSUBADD213PDZrbkz = 10815,
+ VFMSUBADD213PDZrk = 10816,
+ VFMSUBADD213PDZrkz = 10817,
+ VFMSUBADD213PDm = 10818,
+ VFMSUBADD213PDr = 10819,
+ VFMSUBADD213PHZ128m = 10820,
+ VFMSUBADD213PHZ128mb = 10821,
+ VFMSUBADD213PHZ128mbk = 10822,
+ VFMSUBADD213PHZ128mbkz = 10823,
+ VFMSUBADD213PHZ128mk = 10824,
+ VFMSUBADD213PHZ128mkz = 10825,
+ VFMSUBADD213PHZ128r = 10826,
+ VFMSUBADD213PHZ128rk = 10827,
+ VFMSUBADD213PHZ128rkz = 10828,
+ VFMSUBADD213PHZ256m = 10829,
+ VFMSUBADD213PHZ256mb = 10830,
+ VFMSUBADD213PHZ256mbk = 10831,
+ VFMSUBADD213PHZ256mbkz = 10832,
+ VFMSUBADD213PHZ256mk = 10833,
+ VFMSUBADD213PHZ256mkz = 10834,
+ VFMSUBADD213PHZ256r = 10835,
+ VFMSUBADD213PHZ256rk = 10836,
+ VFMSUBADD213PHZ256rkz = 10837,
+ VFMSUBADD213PHZm = 10838,
+ VFMSUBADD213PHZmb = 10839,
+ VFMSUBADD213PHZmbk = 10840,
+ VFMSUBADD213PHZmbkz = 10841,
+ VFMSUBADD213PHZmk = 10842,
+ VFMSUBADD213PHZmkz = 10843,
+ VFMSUBADD213PHZr = 10844,
+ VFMSUBADD213PHZrb = 10845,
+ VFMSUBADD213PHZrbk = 10846,
+ VFMSUBADD213PHZrbkz = 10847,
+ VFMSUBADD213PHZrk = 10848,
+ VFMSUBADD213PHZrkz = 10849,
+ VFMSUBADD213PSYm = 10850,
+ VFMSUBADD213PSYr = 10851,
+ VFMSUBADD213PSZ128m = 10852,
+ VFMSUBADD213PSZ128mb = 10853,
+ VFMSUBADD213PSZ128mbk = 10854,
+ VFMSUBADD213PSZ128mbkz = 10855,
+ VFMSUBADD213PSZ128mk = 10856,
+ VFMSUBADD213PSZ128mkz = 10857,
+ VFMSUBADD213PSZ128r = 10858,
+ VFMSUBADD213PSZ128rk = 10859,
+ VFMSUBADD213PSZ128rkz = 10860,
+ VFMSUBADD213PSZ256m = 10861,
+ VFMSUBADD213PSZ256mb = 10862,
+ VFMSUBADD213PSZ256mbk = 10863,
+ VFMSUBADD213PSZ256mbkz = 10864,
+ VFMSUBADD213PSZ256mk = 10865,
+ VFMSUBADD213PSZ256mkz = 10866,
+ VFMSUBADD213PSZ256r = 10867,
+ VFMSUBADD213PSZ256rk = 10868,
+ VFMSUBADD213PSZ256rkz = 10869,
+ VFMSUBADD213PSZm = 10870,
+ VFMSUBADD213PSZmb = 10871,
+ VFMSUBADD213PSZmbk = 10872,
+ VFMSUBADD213PSZmbkz = 10873,
+ VFMSUBADD213PSZmk = 10874,
+ VFMSUBADD213PSZmkz = 10875,
+ VFMSUBADD213PSZr = 10876,
+ VFMSUBADD213PSZrb = 10877,
+ VFMSUBADD213PSZrbk = 10878,
+ VFMSUBADD213PSZrbkz = 10879,
+ VFMSUBADD213PSZrk = 10880,
+ VFMSUBADD213PSZrkz = 10881,
+ VFMSUBADD213PSm = 10882,
+ VFMSUBADD213PSr = 10883,
+ VFMSUBADD231PDYm = 10884,
+ VFMSUBADD231PDYr = 10885,
+ VFMSUBADD231PDZ128m = 10886,
+ VFMSUBADD231PDZ128mb = 10887,
+ VFMSUBADD231PDZ128mbk = 10888,
+ VFMSUBADD231PDZ128mbkz = 10889,
+ VFMSUBADD231PDZ128mk = 10890,
+ VFMSUBADD231PDZ128mkz = 10891,
+ VFMSUBADD231PDZ128r = 10892,
+ VFMSUBADD231PDZ128rk = 10893,
+ VFMSUBADD231PDZ128rkz = 10894,
+ VFMSUBADD231PDZ256m = 10895,
+ VFMSUBADD231PDZ256mb = 10896,
+ VFMSUBADD231PDZ256mbk = 10897,
+ VFMSUBADD231PDZ256mbkz = 10898,
+ VFMSUBADD231PDZ256mk = 10899,
+ VFMSUBADD231PDZ256mkz = 10900,
+ VFMSUBADD231PDZ256r = 10901,
+ VFMSUBADD231PDZ256rk = 10902,
+ VFMSUBADD231PDZ256rkz = 10903,
+ VFMSUBADD231PDZm = 10904,
+ VFMSUBADD231PDZmb = 10905,
+ VFMSUBADD231PDZmbk = 10906,
+ VFMSUBADD231PDZmbkz = 10907,
+ VFMSUBADD231PDZmk = 10908,
+ VFMSUBADD231PDZmkz = 10909,
+ VFMSUBADD231PDZr = 10910,
+ VFMSUBADD231PDZrb = 10911,
+ VFMSUBADD231PDZrbk = 10912,
+ VFMSUBADD231PDZrbkz = 10913,
+ VFMSUBADD231PDZrk = 10914,
+ VFMSUBADD231PDZrkz = 10915,
+ VFMSUBADD231PDm = 10916,
+ VFMSUBADD231PDr = 10917,
+ VFMSUBADD231PHZ128m = 10918,
+ VFMSUBADD231PHZ128mb = 10919,
+ VFMSUBADD231PHZ128mbk = 10920,
+ VFMSUBADD231PHZ128mbkz = 10921,
+ VFMSUBADD231PHZ128mk = 10922,
+ VFMSUBADD231PHZ128mkz = 10923,
+ VFMSUBADD231PHZ128r = 10924,
+ VFMSUBADD231PHZ128rk = 10925,
+ VFMSUBADD231PHZ128rkz = 10926,
+ VFMSUBADD231PHZ256m = 10927,
+ VFMSUBADD231PHZ256mb = 10928,
+ VFMSUBADD231PHZ256mbk = 10929,
+ VFMSUBADD231PHZ256mbkz = 10930,
+ VFMSUBADD231PHZ256mk = 10931,
+ VFMSUBADD231PHZ256mkz = 10932,
+ VFMSUBADD231PHZ256r = 10933,
+ VFMSUBADD231PHZ256rk = 10934,
+ VFMSUBADD231PHZ256rkz = 10935,
+ VFMSUBADD231PHZm = 10936,
+ VFMSUBADD231PHZmb = 10937,
+ VFMSUBADD231PHZmbk = 10938,
+ VFMSUBADD231PHZmbkz = 10939,
+ VFMSUBADD231PHZmk = 10940,
+ VFMSUBADD231PHZmkz = 10941,
+ VFMSUBADD231PHZr = 10942,
+ VFMSUBADD231PHZrb = 10943,
+ VFMSUBADD231PHZrbk = 10944,
+ VFMSUBADD231PHZrbkz = 10945,
+ VFMSUBADD231PHZrk = 10946,
+ VFMSUBADD231PHZrkz = 10947,
+ VFMSUBADD231PSYm = 10948,
+ VFMSUBADD231PSYr = 10949,
+ VFMSUBADD231PSZ128m = 10950,
+ VFMSUBADD231PSZ128mb = 10951,
+ VFMSUBADD231PSZ128mbk = 10952,
+ VFMSUBADD231PSZ128mbkz = 10953,
+ VFMSUBADD231PSZ128mk = 10954,
+ VFMSUBADD231PSZ128mkz = 10955,
+ VFMSUBADD231PSZ128r = 10956,
+ VFMSUBADD231PSZ128rk = 10957,
+ VFMSUBADD231PSZ128rkz = 10958,
+ VFMSUBADD231PSZ256m = 10959,
+ VFMSUBADD231PSZ256mb = 10960,
+ VFMSUBADD231PSZ256mbk = 10961,
+ VFMSUBADD231PSZ256mbkz = 10962,
+ VFMSUBADD231PSZ256mk = 10963,
+ VFMSUBADD231PSZ256mkz = 10964,
+ VFMSUBADD231PSZ256r = 10965,
+ VFMSUBADD231PSZ256rk = 10966,
+ VFMSUBADD231PSZ256rkz = 10967,
+ VFMSUBADD231PSZm = 10968,
+ VFMSUBADD231PSZmb = 10969,
+ VFMSUBADD231PSZmbk = 10970,
+ VFMSUBADD231PSZmbkz = 10971,
+ VFMSUBADD231PSZmk = 10972,
+ VFMSUBADD231PSZmkz = 10973,
+ VFMSUBADD231PSZr = 10974,
+ VFMSUBADD231PSZrb = 10975,
+ VFMSUBADD231PSZrbk = 10976,
+ VFMSUBADD231PSZrbkz = 10977,
+ VFMSUBADD231PSZrk = 10978,
+ VFMSUBADD231PSZrkz = 10979,
+ VFMSUBADD231PSm = 10980,
+ VFMSUBADD231PSr = 10981,
+ VFMSUBADDPD4Ymr = 10982,
+ VFMSUBADDPD4Yrm = 10983,
+ VFMSUBADDPD4Yrr = 10984,
+ VFMSUBADDPD4Yrr_REV = 10985,
+ VFMSUBADDPD4mr = 10986,
+ VFMSUBADDPD4rm = 10987,
+ VFMSUBADDPD4rr = 10988,
+ VFMSUBADDPD4rr_REV = 10989,
+ VFMSUBADDPS4Ymr = 10990,
+ VFMSUBADDPS4Yrm = 10991,
+ VFMSUBADDPS4Yrr = 10992,
+ VFMSUBADDPS4Yrr_REV = 10993,
+ VFMSUBADDPS4mr = 10994,
+ VFMSUBADDPS4rm = 10995,
+ VFMSUBADDPS4rr = 10996,
+ VFMSUBADDPS4rr_REV = 10997,
+ VFMSUBPD4Ymr = 10998,
+ VFMSUBPD4Yrm = 10999,
+ VFMSUBPD4Yrr = 11000,
+ VFMSUBPD4Yrr_REV = 11001,
+ VFMSUBPD4mr = 11002,
+ VFMSUBPD4rm = 11003,
+ VFMSUBPD4rr = 11004,
+ VFMSUBPD4rr_REV = 11005,
+ VFMSUBPS4Ymr = 11006,
+ VFMSUBPS4Yrm = 11007,
+ VFMSUBPS4Yrr = 11008,
+ VFMSUBPS4Yrr_REV = 11009,
+ VFMSUBPS4mr = 11010,
+ VFMSUBPS4rm = 11011,
+ VFMSUBPS4rr = 11012,
+ VFMSUBPS4rr_REV = 11013,
+ VFMSUBSD4mr = 11014,
+ VFMSUBSD4mr_Int = 11015,
+ VFMSUBSD4rm = 11016,
+ VFMSUBSD4rm_Int = 11017,
+ VFMSUBSD4rr = 11018,
+ VFMSUBSD4rr_Int = 11019,
+ VFMSUBSD4rr_Int_REV = 11020,
+ VFMSUBSD4rr_REV = 11021,
+ VFMSUBSS4mr = 11022,
+ VFMSUBSS4mr_Int = 11023,
+ VFMSUBSS4rm = 11024,
+ VFMSUBSS4rm_Int = 11025,
+ VFMSUBSS4rr = 11026,
+ VFMSUBSS4rr_Int = 11027,
+ VFMSUBSS4rr_Int_REV = 11028,
+ VFMSUBSS4rr_REV = 11029,
+ VFMULCPHZ128rm = 11030,
+ VFMULCPHZ128rmb = 11031,
+ VFMULCPHZ128rmbk = 11032,
+ VFMULCPHZ128rmbkz = 11033,
+ VFMULCPHZ128rmk = 11034,
+ VFMULCPHZ128rmkz = 11035,
+ VFMULCPHZ128rr = 11036,
+ VFMULCPHZ128rrk = 11037,
+ VFMULCPHZ128rrkz = 11038,
+ VFMULCPHZ256rm = 11039,
+ VFMULCPHZ256rmb = 11040,
+ VFMULCPHZ256rmbk = 11041,
+ VFMULCPHZ256rmbkz = 11042,
+ VFMULCPHZ256rmk = 11043,
+ VFMULCPHZ256rmkz = 11044,
+ VFMULCPHZ256rr = 11045,
+ VFMULCPHZ256rrk = 11046,
+ VFMULCPHZ256rrkz = 11047,
+ VFMULCPHZrm = 11048,
+ VFMULCPHZrmb = 11049,
+ VFMULCPHZrmbk = 11050,
+ VFMULCPHZrmbkz = 11051,
+ VFMULCPHZrmk = 11052,
+ VFMULCPHZrmkz = 11053,
+ VFMULCPHZrr = 11054,
+ VFMULCPHZrrb = 11055,
+ VFMULCPHZrrbk = 11056,
+ VFMULCPHZrrbkz = 11057,
+ VFMULCPHZrrk = 11058,
+ VFMULCPHZrrkz = 11059,
+ VFMULCSHZrm = 11060,
+ VFMULCSHZrmk = 11061,
+ VFMULCSHZrmkz = 11062,
+ VFMULCSHZrr = 11063,
+ VFMULCSHZrrb = 11064,
+ VFMULCSHZrrbk = 11065,
+ VFMULCSHZrrbkz = 11066,
+ VFMULCSHZrrk = 11067,
+ VFMULCSHZrrkz = 11068,
+ VFNMADD132BF16Z128m = 11069,
+ VFNMADD132BF16Z128mb = 11070,
+ VFNMADD132BF16Z128mbk = 11071,
+ VFNMADD132BF16Z128mbkz = 11072,
+ VFNMADD132BF16Z128mk = 11073,
+ VFNMADD132BF16Z128mkz = 11074,
+ VFNMADD132BF16Z128r = 11075,
+ VFNMADD132BF16Z128rk = 11076,
+ VFNMADD132BF16Z128rkz = 11077,
+ VFNMADD132BF16Z256m = 11078,
+ VFNMADD132BF16Z256mb = 11079,
+ VFNMADD132BF16Z256mbk = 11080,
+ VFNMADD132BF16Z256mbkz = 11081,
+ VFNMADD132BF16Z256mk = 11082,
+ VFNMADD132BF16Z256mkz = 11083,
+ VFNMADD132BF16Z256r = 11084,
+ VFNMADD132BF16Z256rk = 11085,
+ VFNMADD132BF16Z256rkz = 11086,
+ VFNMADD132BF16Zm = 11087,
+ VFNMADD132BF16Zmb = 11088,
+ VFNMADD132BF16Zmbk = 11089,
+ VFNMADD132BF16Zmbkz = 11090,
+ VFNMADD132BF16Zmk = 11091,
+ VFNMADD132BF16Zmkz = 11092,
+ VFNMADD132BF16Zr = 11093,
+ VFNMADD132BF16Zrk = 11094,
+ VFNMADD132BF16Zrkz = 11095,
+ VFNMADD132PDYm = 11096,
+ VFNMADD132PDYr = 11097,
+ VFNMADD132PDZ128m = 11098,
+ VFNMADD132PDZ128mb = 11099,
+ VFNMADD132PDZ128mbk = 11100,
+ VFNMADD132PDZ128mbkz = 11101,
+ VFNMADD132PDZ128mk = 11102,
+ VFNMADD132PDZ128mkz = 11103,
+ VFNMADD132PDZ128r = 11104,
+ VFNMADD132PDZ128rk = 11105,
+ VFNMADD132PDZ128rkz = 11106,
+ VFNMADD132PDZ256m = 11107,
+ VFNMADD132PDZ256mb = 11108,
+ VFNMADD132PDZ256mbk = 11109,
+ VFNMADD132PDZ256mbkz = 11110,
+ VFNMADD132PDZ256mk = 11111,
+ VFNMADD132PDZ256mkz = 11112,
+ VFNMADD132PDZ256r = 11113,
+ VFNMADD132PDZ256rk = 11114,
+ VFNMADD132PDZ256rkz = 11115,
+ VFNMADD132PDZm = 11116,
+ VFNMADD132PDZmb = 11117,
+ VFNMADD132PDZmbk = 11118,
+ VFNMADD132PDZmbkz = 11119,
+ VFNMADD132PDZmk = 11120,
+ VFNMADD132PDZmkz = 11121,
+ VFNMADD132PDZr = 11122,
+ VFNMADD132PDZrb = 11123,
+ VFNMADD132PDZrbk = 11124,
+ VFNMADD132PDZrbkz = 11125,
+ VFNMADD132PDZrk = 11126,
+ VFNMADD132PDZrkz = 11127,
+ VFNMADD132PDm = 11128,
+ VFNMADD132PDr = 11129,
+ VFNMADD132PHZ128m = 11130,
+ VFNMADD132PHZ128mb = 11131,
+ VFNMADD132PHZ128mbk = 11132,
+ VFNMADD132PHZ128mbkz = 11133,
+ VFNMADD132PHZ128mk = 11134,
+ VFNMADD132PHZ128mkz = 11135,
+ VFNMADD132PHZ128r = 11136,
+ VFNMADD132PHZ128rk = 11137,
+ VFNMADD132PHZ128rkz = 11138,
+ VFNMADD132PHZ256m = 11139,
+ VFNMADD132PHZ256mb = 11140,
+ VFNMADD132PHZ256mbk = 11141,
+ VFNMADD132PHZ256mbkz = 11142,
+ VFNMADD132PHZ256mk = 11143,
+ VFNMADD132PHZ256mkz = 11144,
+ VFNMADD132PHZ256r = 11145,
+ VFNMADD132PHZ256rk = 11146,
+ VFNMADD132PHZ256rkz = 11147,
+ VFNMADD132PHZm = 11148,
+ VFNMADD132PHZmb = 11149,
+ VFNMADD132PHZmbk = 11150,
+ VFNMADD132PHZmbkz = 11151,
+ VFNMADD132PHZmk = 11152,
+ VFNMADD132PHZmkz = 11153,
+ VFNMADD132PHZr = 11154,
+ VFNMADD132PHZrb = 11155,
+ VFNMADD132PHZrbk = 11156,
+ VFNMADD132PHZrbkz = 11157,
+ VFNMADD132PHZrk = 11158,
+ VFNMADD132PHZrkz = 11159,
+ VFNMADD132PSYm = 11160,
+ VFNMADD132PSYr = 11161,
+ VFNMADD132PSZ128m = 11162,
+ VFNMADD132PSZ128mb = 11163,
+ VFNMADD132PSZ128mbk = 11164,
+ VFNMADD132PSZ128mbkz = 11165,
+ VFNMADD132PSZ128mk = 11166,
+ VFNMADD132PSZ128mkz = 11167,
+ VFNMADD132PSZ128r = 11168,
+ VFNMADD132PSZ128rk = 11169,
+ VFNMADD132PSZ128rkz = 11170,
+ VFNMADD132PSZ256m = 11171,
+ VFNMADD132PSZ256mb = 11172,
+ VFNMADD132PSZ256mbk = 11173,
+ VFNMADD132PSZ256mbkz = 11174,
+ VFNMADD132PSZ256mk = 11175,
+ VFNMADD132PSZ256mkz = 11176,
+ VFNMADD132PSZ256r = 11177,
+ VFNMADD132PSZ256rk = 11178,
+ VFNMADD132PSZ256rkz = 11179,
+ VFNMADD132PSZm = 11180,
+ VFNMADD132PSZmb = 11181,
+ VFNMADD132PSZmbk = 11182,
+ VFNMADD132PSZmbkz = 11183,
+ VFNMADD132PSZmk = 11184,
+ VFNMADD132PSZmkz = 11185,
+ VFNMADD132PSZr = 11186,
+ VFNMADD132PSZrb = 11187,
+ VFNMADD132PSZrbk = 11188,
+ VFNMADD132PSZrbkz = 11189,
+ VFNMADD132PSZrk = 11190,
+ VFNMADD132PSZrkz = 11191,
+ VFNMADD132PSm = 11192,
+ VFNMADD132PSr = 11193,
+ VFNMADD132SDZm = 11194,
+ VFNMADD132SDZm_Int = 11195,
+ VFNMADD132SDZmk_Int = 11196,
+ VFNMADD132SDZmkz_Int = 11197,
+ VFNMADD132SDZr = 11198,
+ VFNMADD132SDZr_Int = 11199,
+ VFNMADD132SDZrb = 11200,
+ VFNMADD132SDZrb_Int = 11201,
+ VFNMADD132SDZrbk_Int = 11202,
+ VFNMADD132SDZrbkz_Int = 11203,
+ VFNMADD132SDZrk_Int = 11204,
+ VFNMADD132SDZrkz_Int = 11205,
+ VFNMADD132SDm = 11206,
+ VFNMADD132SDm_Int = 11207,
+ VFNMADD132SDr = 11208,
+ VFNMADD132SDr_Int = 11209,
+ VFNMADD132SHZm = 11210,
+ VFNMADD132SHZm_Int = 11211,
+ VFNMADD132SHZmk_Int = 11212,
+ VFNMADD132SHZmkz_Int = 11213,
+ VFNMADD132SHZr = 11214,
+ VFNMADD132SHZr_Int = 11215,
+ VFNMADD132SHZrb = 11216,
+ VFNMADD132SHZrb_Int = 11217,
+ VFNMADD132SHZrbk_Int = 11218,
+ VFNMADD132SHZrbkz_Int = 11219,
+ VFNMADD132SHZrk_Int = 11220,
+ VFNMADD132SHZrkz_Int = 11221,
+ VFNMADD132SSZm = 11222,
+ VFNMADD132SSZm_Int = 11223,
+ VFNMADD132SSZmk_Int = 11224,
+ VFNMADD132SSZmkz_Int = 11225,
+ VFNMADD132SSZr = 11226,
+ VFNMADD132SSZr_Int = 11227,
+ VFNMADD132SSZrb = 11228,
+ VFNMADD132SSZrb_Int = 11229,
+ VFNMADD132SSZrbk_Int = 11230,
+ VFNMADD132SSZrbkz_Int = 11231,
+ VFNMADD132SSZrk_Int = 11232,
+ VFNMADD132SSZrkz_Int = 11233,
+ VFNMADD132SSm = 11234,
+ VFNMADD132SSm_Int = 11235,
+ VFNMADD132SSr = 11236,
+ VFNMADD132SSr_Int = 11237,
+ VFNMADD213BF16Z128m = 11238,
+ VFNMADD213BF16Z128mb = 11239,
+ VFNMADD213BF16Z128mbk = 11240,
+ VFNMADD213BF16Z128mbkz = 11241,
+ VFNMADD213BF16Z128mk = 11242,
+ VFNMADD213BF16Z128mkz = 11243,
+ VFNMADD213BF16Z128r = 11244,
+ VFNMADD213BF16Z128rk = 11245,
+ VFNMADD213BF16Z128rkz = 11246,
+ VFNMADD213BF16Z256m = 11247,
+ VFNMADD213BF16Z256mb = 11248,
+ VFNMADD213BF16Z256mbk = 11249,
+ VFNMADD213BF16Z256mbkz = 11250,
+ VFNMADD213BF16Z256mk = 11251,
+ VFNMADD213BF16Z256mkz = 11252,
+ VFNMADD213BF16Z256r = 11253,
+ VFNMADD213BF16Z256rk = 11254,
+ VFNMADD213BF16Z256rkz = 11255,
+ VFNMADD213BF16Zm = 11256,
+ VFNMADD213BF16Zmb = 11257,
+ VFNMADD213BF16Zmbk = 11258,
+ VFNMADD213BF16Zmbkz = 11259,
+ VFNMADD213BF16Zmk = 11260,
+ VFNMADD213BF16Zmkz = 11261,
+ VFNMADD213BF16Zr = 11262,
+ VFNMADD213BF16Zrk = 11263,
+ VFNMADD213BF16Zrkz = 11264,
+ VFNMADD213PDYm = 11265,
+ VFNMADD213PDYr = 11266,
+ VFNMADD213PDZ128m = 11267,
+ VFNMADD213PDZ128mb = 11268,
+ VFNMADD213PDZ128mbk = 11269,
+ VFNMADD213PDZ128mbkz = 11270,
+ VFNMADD213PDZ128mk = 11271,
+ VFNMADD213PDZ128mkz = 11272,
+ VFNMADD213PDZ128r = 11273,
+ VFNMADD213PDZ128rk = 11274,
+ VFNMADD213PDZ128rkz = 11275,
+ VFNMADD213PDZ256m = 11276,
+ VFNMADD213PDZ256mb = 11277,
+ VFNMADD213PDZ256mbk = 11278,
+ VFNMADD213PDZ256mbkz = 11279,
+ VFNMADD213PDZ256mk = 11280,
+ VFNMADD213PDZ256mkz = 11281,
+ VFNMADD213PDZ256r = 11282,
+ VFNMADD213PDZ256rk = 11283,
+ VFNMADD213PDZ256rkz = 11284,
+ VFNMADD213PDZm = 11285,
+ VFNMADD213PDZmb = 11286,
+ VFNMADD213PDZmbk = 11287,
+ VFNMADD213PDZmbkz = 11288,
+ VFNMADD213PDZmk = 11289,
+ VFNMADD213PDZmkz = 11290,
+ VFNMADD213PDZr = 11291,
+ VFNMADD213PDZrb = 11292,
+ VFNMADD213PDZrbk = 11293,
+ VFNMADD213PDZrbkz = 11294,
+ VFNMADD213PDZrk = 11295,
+ VFNMADD213PDZrkz = 11296,
+ VFNMADD213PDm = 11297,
+ VFNMADD213PDr = 11298,
+ VFNMADD213PHZ128m = 11299,
+ VFNMADD213PHZ128mb = 11300,
+ VFNMADD213PHZ128mbk = 11301,
+ VFNMADD213PHZ128mbkz = 11302,
+ VFNMADD213PHZ128mk = 11303,
+ VFNMADD213PHZ128mkz = 11304,
+ VFNMADD213PHZ128r = 11305,
+ VFNMADD213PHZ128rk = 11306,
+ VFNMADD213PHZ128rkz = 11307,
+ VFNMADD213PHZ256m = 11308,
+ VFNMADD213PHZ256mb = 11309,
+ VFNMADD213PHZ256mbk = 11310,
+ VFNMADD213PHZ256mbkz = 11311,
+ VFNMADD213PHZ256mk = 11312,
+ VFNMADD213PHZ256mkz = 11313,
+ VFNMADD213PHZ256r = 11314,
+ VFNMADD213PHZ256rk = 11315,
+ VFNMADD213PHZ256rkz = 11316,
+ VFNMADD213PHZm = 11317,
+ VFNMADD213PHZmb = 11318,
+ VFNMADD213PHZmbk = 11319,
+ VFNMADD213PHZmbkz = 11320,
+ VFNMADD213PHZmk = 11321,
+ VFNMADD213PHZmkz = 11322,
+ VFNMADD213PHZr = 11323,
+ VFNMADD213PHZrb = 11324,
+ VFNMADD213PHZrbk = 11325,
+ VFNMADD213PHZrbkz = 11326,
+ VFNMADD213PHZrk = 11327,
+ VFNMADD213PHZrkz = 11328,
+ VFNMADD213PSYm = 11329,
+ VFNMADD213PSYr = 11330,
+ VFNMADD213PSZ128m = 11331,
+ VFNMADD213PSZ128mb = 11332,
+ VFNMADD213PSZ128mbk = 11333,
+ VFNMADD213PSZ128mbkz = 11334,
+ VFNMADD213PSZ128mk = 11335,
+ VFNMADD213PSZ128mkz = 11336,
+ VFNMADD213PSZ128r = 11337,
+ VFNMADD213PSZ128rk = 11338,
+ VFNMADD213PSZ128rkz = 11339,
+ VFNMADD213PSZ256m = 11340,
+ VFNMADD213PSZ256mb = 11341,
+ VFNMADD213PSZ256mbk = 11342,
+ VFNMADD213PSZ256mbkz = 11343,
+ VFNMADD213PSZ256mk = 11344,
+ VFNMADD213PSZ256mkz = 11345,
+ VFNMADD213PSZ256r = 11346,
+ VFNMADD213PSZ256rk = 11347,
+ VFNMADD213PSZ256rkz = 11348,
+ VFNMADD213PSZm = 11349,
+ VFNMADD213PSZmb = 11350,
+ VFNMADD213PSZmbk = 11351,
+ VFNMADD213PSZmbkz = 11352,
+ VFNMADD213PSZmk = 11353,
+ VFNMADD213PSZmkz = 11354,
+ VFNMADD213PSZr = 11355,
+ VFNMADD213PSZrb = 11356,
+ VFNMADD213PSZrbk = 11357,
+ VFNMADD213PSZrbkz = 11358,
+ VFNMADD213PSZrk = 11359,
+ VFNMADD213PSZrkz = 11360,
+ VFNMADD213PSm = 11361,
+ VFNMADD213PSr = 11362,
+ VFNMADD213SDZm = 11363,
+ VFNMADD213SDZm_Int = 11364,
+ VFNMADD213SDZmk_Int = 11365,
+ VFNMADD213SDZmkz_Int = 11366,
+ VFNMADD213SDZr = 11367,
+ VFNMADD213SDZr_Int = 11368,
+ VFNMADD213SDZrb = 11369,
+ VFNMADD213SDZrb_Int = 11370,
+ VFNMADD213SDZrbk_Int = 11371,
+ VFNMADD213SDZrbkz_Int = 11372,
+ VFNMADD213SDZrk_Int = 11373,
+ VFNMADD213SDZrkz_Int = 11374,
+ VFNMADD213SDm = 11375,
+ VFNMADD213SDm_Int = 11376,
+ VFNMADD213SDr = 11377,
+ VFNMADD213SDr_Int = 11378,
+ VFNMADD213SHZm = 11379,
+ VFNMADD213SHZm_Int = 11380,
+ VFNMADD213SHZmk_Int = 11381,
+ VFNMADD213SHZmkz_Int = 11382,
+ VFNMADD213SHZr = 11383,
+ VFNMADD213SHZr_Int = 11384,
+ VFNMADD213SHZrb = 11385,
+ VFNMADD213SHZrb_Int = 11386,
+ VFNMADD213SHZrbk_Int = 11387,
+ VFNMADD213SHZrbkz_Int = 11388,
+ VFNMADD213SHZrk_Int = 11389,
+ VFNMADD213SHZrkz_Int = 11390,
+ VFNMADD213SSZm = 11391,
+ VFNMADD213SSZm_Int = 11392,
+ VFNMADD213SSZmk_Int = 11393,
+ VFNMADD213SSZmkz_Int = 11394,
+ VFNMADD213SSZr = 11395,
+ VFNMADD213SSZr_Int = 11396,
+ VFNMADD213SSZrb = 11397,
+ VFNMADD213SSZrb_Int = 11398,
+ VFNMADD213SSZrbk_Int = 11399,
+ VFNMADD213SSZrbkz_Int = 11400,
+ VFNMADD213SSZrk_Int = 11401,
+ VFNMADD213SSZrkz_Int = 11402,
+ VFNMADD213SSm = 11403,
+ VFNMADD213SSm_Int = 11404,
+ VFNMADD213SSr = 11405,
+ VFNMADD213SSr_Int = 11406,
+ VFNMADD231BF16Z128m = 11407,
+ VFNMADD231BF16Z128mb = 11408,
+ VFNMADD231BF16Z128mbk = 11409,
+ VFNMADD231BF16Z128mbkz = 11410,
+ VFNMADD231BF16Z128mk = 11411,
+ VFNMADD231BF16Z128mkz = 11412,
+ VFNMADD231BF16Z128r = 11413,
+ VFNMADD231BF16Z128rk = 11414,
+ VFNMADD231BF16Z128rkz = 11415,
+ VFNMADD231BF16Z256m = 11416,
+ VFNMADD231BF16Z256mb = 11417,
+ VFNMADD231BF16Z256mbk = 11418,
+ VFNMADD231BF16Z256mbkz = 11419,
+ VFNMADD231BF16Z256mk = 11420,
+ VFNMADD231BF16Z256mkz = 11421,
+ VFNMADD231BF16Z256r = 11422,
+ VFNMADD231BF16Z256rk = 11423,
+ VFNMADD231BF16Z256rkz = 11424,
+ VFNMADD231BF16Zm = 11425,
+ VFNMADD231BF16Zmb = 11426,
+ VFNMADD231BF16Zmbk = 11427,
+ VFNMADD231BF16Zmbkz = 11428,
+ VFNMADD231BF16Zmk = 11429,
+ VFNMADD231BF16Zmkz = 11430,
+ VFNMADD231BF16Zr = 11431,
+ VFNMADD231BF16Zrk = 11432,
+ VFNMADD231BF16Zrkz = 11433,
+ VFNMADD231PDYm = 11434,
+ VFNMADD231PDYr = 11435,
+ VFNMADD231PDZ128m = 11436,
+ VFNMADD231PDZ128mb = 11437,
+ VFNMADD231PDZ128mbk = 11438,
+ VFNMADD231PDZ128mbkz = 11439,
+ VFNMADD231PDZ128mk = 11440,
+ VFNMADD231PDZ128mkz = 11441,
+ VFNMADD231PDZ128r = 11442,
+ VFNMADD231PDZ128rk = 11443,
+ VFNMADD231PDZ128rkz = 11444,
+ VFNMADD231PDZ256m = 11445,
+ VFNMADD231PDZ256mb = 11446,
+ VFNMADD231PDZ256mbk = 11447,
+ VFNMADD231PDZ256mbkz = 11448,
+ VFNMADD231PDZ256mk = 11449,
+ VFNMADD231PDZ256mkz = 11450,
+ VFNMADD231PDZ256r = 11451,
+ VFNMADD231PDZ256rk = 11452,
+ VFNMADD231PDZ256rkz = 11453,
+ VFNMADD231PDZm = 11454,
+ VFNMADD231PDZmb = 11455,
+ VFNMADD231PDZmbk = 11456,
+ VFNMADD231PDZmbkz = 11457,
+ VFNMADD231PDZmk = 11458,
+ VFNMADD231PDZmkz = 11459,
+ VFNMADD231PDZr = 11460,
+ VFNMADD231PDZrb = 11461,
+ VFNMADD231PDZrbk = 11462,
+ VFNMADD231PDZrbkz = 11463,
+ VFNMADD231PDZrk = 11464,
+ VFNMADD231PDZrkz = 11465,
+ VFNMADD231PDm = 11466,
+ VFNMADD231PDr = 11467,
+ VFNMADD231PHZ128m = 11468,
+ VFNMADD231PHZ128mb = 11469,
+ VFNMADD231PHZ128mbk = 11470,
+ VFNMADD231PHZ128mbkz = 11471,
+ VFNMADD231PHZ128mk = 11472,
+ VFNMADD231PHZ128mkz = 11473,
+ VFNMADD231PHZ128r = 11474,
+ VFNMADD231PHZ128rk = 11475,
+ VFNMADD231PHZ128rkz = 11476,
+ VFNMADD231PHZ256m = 11477,
+ VFNMADD231PHZ256mb = 11478,
+ VFNMADD231PHZ256mbk = 11479,
+ VFNMADD231PHZ256mbkz = 11480,
+ VFNMADD231PHZ256mk = 11481,
+ VFNMADD231PHZ256mkz = 11482,
+ VFNMADD231PHZ256r = 11483,
+ VFNMADD231PHZ256rk = 11484,
+ VFNMADD231PHZ256rkz = 11485,
+ VFNMADD231PHZm = 11486,
+ VFNMADD231PHZmb = 11487,
+ VFNMADD231PHZmbk = 11488,
+ VFNMADD231PHZmbkz = 11489,
+ VFNMADD231PHZmk = 11490,
+ VFNMADD231PHZmkz = 11491,
+ VFNMADD231PHZr = 11492,
+ VFNMADD231PHZrb = 11493,
+ VFNMADD231PHZrbk = 11494,
+ VFNMADD231PHZrbkz = 11495,
+ VFNMADD231PHZrk = 11496,
+ VFNMADD231PHZrkz = 11497,
+ VFNMADD231PSYm = 11498,
+ VFNMADD231PSYr = 11499,
+ VFNMADD231PSZ128m = 11500,
+ VFNMADD231PSZ128mb = 11501,
+ VFNMADD231PSZ128mbk = 11502,
+ VFNMADD231PSZ128mbkz = 11503,
+ VFNMADD231PSZ128mk = 11504,
+ VFNMADD231PSZ128mkz = 11505,
+ VFNMADD231PSZ128r = 11506,
+ VFNMADD231PSZ128rk = 11507,
+ VFNMADD231PSZ128rkz = 11508,
+ VFNMADD231PSZ256m = 11509,
+ VFNMADD231PSZ256mb = 11510,
+ VFNMADD231PSZ256mbk = 11511,
+ VFNMADD231PSZ256mbkz = 11512,
+ VFNMADD231PSZ256mk = 11513,
+ VFNMADD231PSZ256mkz = 11514,
+ VFNMADD231PSZ256r = 11515,
+ VFNMADD231PSZ256rk = 11516,
+ VFNMADD231PSZ256rkz = 11517,
+ VFNMADD231PSZm = 11518,
+ VFNMADD231PSZmb = 11519,
+ VFNMADD231PSZmbk = 11520,
+ VFNMADD231PSZmbkz = 11521,
+ VFNMADD231PSZmk = 11522,
+ VFNMADD231PSZmkz = 11523,
+ VFNMADD231PSZr = 11524,
+ VFNMADD231PSZrb = 11525,
+ VFNMADD231PSZrbk = 11526,
+ VFNMADD231PSZrbkz = 11527,
+ VFNMADD231PSZrk = 11528,
+ VFNMADD231PSZrkz = 11529,
+ VFNMADD231PSm = 11530,
+ VFNMADD231PSr = 11531,
+ VFNMADD231SDZm = 11532,
+ VFNMADD231SDZm_Int = 11533,
+ VFNMADD231SDZmk_Int = 11534,
+ VFNMADD231SDZmkz_Int = 11535,
+ VFNMADD231SDZr = 11536,
+ VFNMADD231SDZr_Int = 11537,
+ VFNMADD231SDZrb = 11538,
+ VFNMADD231SDZrb_Int = 11539,
+ VFNMADD231SDZrbk_Int = 11540,
+ VFNMADD231SDZrbkz_Int = 11541,
+ VFNMADD231SDZrk_Int = 11542,
+ VFNMADD231SDZrkz_Int = 11543,
+ VFNMADD231SDm = 11544,
+ VFNMADD231SDm_Int = 11545,
+ VFNMADD231SDr = 11546,
+ VFNMADD231SDr_Int = 11547,
+ VFNMADD231SHZm = 11548,
+ VFNMADD231SHZm_Int = 11549,
+ VFNMADD231SHZmk_Int = 11550,
+ VFNMADD231SHZmkz_Int = 11551,
+ VFNMADD231SHZr = 11552,
+ VFNMADD231SHZr_Int = 11553,
+ VFNMADD231SHZrb = 11554,
+ VFNMADD231SHZrb_Int = 11555,
+ VFNMADD231SHZrbk_Int = 11556,
+ VFNMADD231SHZrbkz_Int = 11557,
+ VFNMADD231SHZrk_Int = 11558,
+ VFNMADD231SHZrkz_Int = 11559,
+ VFNMADD231SSZm = 11560,
+ VFNMADD231SSZm_Int = 11561,
+ VFNMADD231SSZmk_Int = 11562,
+ VFNMADD231SSZmkz_Int = 11563,
+ VFNMADD231SSZr = 11564,
+ VFNMADD231SSZr_Int = 11565,
+ VFNMADD231SSZrb = 11566,
+ VFNMADD231SSZrb_Int = 11567,
+ VFNMADD231SSZrbk_Int = 11568,
+ VFNMADD231SSZrbkz_Int = 11569,
+ VFNMADD231SSZrk_Int = 11570,
+ VFNMADD231SSZrkz_Int = 11571,
+ VFNMADD231SSm = 11572,
+ VFNMADD231SSm_Int = 11573,
+ VFNMADD231SSr = 11574,
+ VFNMADD231SSr_Int = 11575,
+ VFNMADDPD4Ymr = 11576,
+ VFNMADDPD4Yrm = 11577,
+ VFNMADDPD4Yrr = 11578,
+ VFNMADDPD4Yrr_REV = 11579,
+ VFNMADDPD4mr = 11580,
+ VFNMADDPD4rm = 11581,
+ VFNMADDPD4rr = 11582,
+ VFNMADDPD4rr_REV = 11583,
+ VFNMADDPS4Ymr = 11584,
+ VFNMADDPS4Yrm = 11585,
+ VFNMADDPS4Yrr = 11586,
+ VFNMADDPS4Yrr_REV = 11587,
+ VFNMADDPS4mr = 11588,
+ VFNMADDPS4rm = 11589,
+ VFNMADDPS4rr = 11590,
+ VFNMADDPS4rr_REV = 11591,
+ VFNMADDSD4mr = 11592,
+ VFNMADDSD4mr_Int = 11593,
+ VFNMADDSD4rm = 11594,
+ VFNMADDSD4rm_Int = 11595,
+ VFNMADDSD4rr = 11596,
+ VFNMADDSD4rr_Int = 11597,
+ VFNMADDSD4rr_Int_REV = 11598,
+ VFNMADDSD4rr_REV = 11599,
+ VFNMADDSS4mr = 11600,
+ VFNMADDSS4mr_Int = 11601,
+ VFNMADDSS4rm = 11602,
+ VFNMADDSS4rm_Int = 11603,
+ VFNMADDSS4rr = 11604,
+ VFNMADDSS4rr_Int = 11605,
+ VFNMADDSS4rr_Int_REV = 11606,
+ VFNMADDSS4rr_REV = 11607,
+ VFNMSUB132BF16Z128m = 11608,
+ VFNMSUB132BF16Z128mb = 11609,
+ VFNMSUB132BF16Z128mbk = 11610,
+ VFNMSUB132BF16Z128mbkz = 11611,
+ VFNMSUB132BF16Z128mk = 11612,
+ VFNMSUB132BF16Z128mkz = 11613,
+ VFNMSUB132BF16Z128r = 11614,
+ VFNMSUB132BF16Z128rk = 11615,
+ VFNMSUB132BF16Z128rkz = 11616,
+ VFNMSUB132BF16Z256m = 11617,
+ VFNMSUB132BF16Z256mb = 11618,
+ VFNMSUB132BF16Z256mbk = 11619,
+ VFNMSUB132BF16Z256mbkz = 11620,
+ VFNMSUB132BF16Z256mk = 11621,
+ VFNMSUB132BF16Z256mkz = 11622,
+ VFNMSUB132BF16Z256r = 11623,
+ VFNMSUB132BF16Z256rk = 11624,
+ VFNMSUB132BF16Z256rkz = 11625,
+ VFNMSUB132BF16Zm = 11626,
+ VFNMSUB132BF16Zmb = 11627,
+ VFNMSUB132BF16Zmbk = 11628,
+ VFNMSUB132BF16Zmbkz = 11629,
+ VFNMSUB132BF16Zmk = 11630,
+ VFNMSUB132BF16Zmkz = 11631,
+ VFNMSUB132BF16Zr = 11632,
+ VFNMSUB132BF16Zrk = 11633,
+ VFNMSUB132BF16Zrkz = 11634,
+ VFNMSUB132PDYm = 11635,
+ VFNMSUB132PDYr = 11636,
+ VFNMSUB132PDZ128m = 11637,
+ VFNMSUB132PDZ128mb = 11638,
+ VFNMSUB132PDZ128mbk = 11639,
+ VFNMSUB132PDZ128mbkz = 11640,
+ VFNMSUB132PDZ128mk = 11641,
+ VFNMSUB132PDZ128mkz = 11642,
+ VFNMSUB132PDZ128r = 11643,
+ VFNMSUB132PDZ128rk = 11644,
+ VFNMSUB132PDZ128rkz = 11645,
+ VFNMSUB132PDZ256m = 11646,
+ VFNMSUB132PDZ256mb = 11647,
+ VFNMSUB132PDZ256mbk = 11648,
+ VFNMSUB132PDZ256mbkz = 11649,
+ VFNMSUB132PDZ256mk = 11650,
+ VFNMSUB132PDZ256mkz = 11651,
+ VFNMSUB132PDZ256r = 11652,
+ VFNMSUB132PDZ256rk = 11653,
+ VFNMSUB132PDZ256rkz = 11654,
+ VFNMSUB132PDZm = 11655,
+ VFNMSUB132PDZmb = 11656,
+ VFNMSUB132PDZmbk = 11657,
+ VFNMSUB132PDZmbkz = 11658,
+ VFNMSUB132PDZmk = 11659,
+ VFNMSUB132PDZmkz = 11660,
+ VFNMSUB132PDZr = 11661,
+ VFNMSUB132PDZrb = 11662,
+ VFNMSUB132PDZrbk = 11663,
+ VFNMSUB132PDZrbkz = 11664,
+ VFNMSUB132PDZrk = 11665,
+ VFNMSUB132PDZrkz = 11666,
+ VFNMSUB132PDm = 11667,
+ VFNMSUB132PDr = 11668,
+ VFNMSUB132PHZ128m = 11669,
+ VFNMSUB132PHZ128mb = 11670,
+ VFNMSUB132PHZ128mbk = 11671,
+ VFNMSUB132PHZ128mbkz = 11672,
+ VFNMSUB132PHZ128mk = 11673,
+ VFNMSUB132PHZ128mkz = 11674,
+ VFNMSUB132PHZ128r = 11675,
+ VFNMSUB132PHZ128rk = 11676,
+ VFNMSUB132PHZ128rkz = 11677,
+ VFNMSUB132PHZ256m = 11678,
+ VFNMSUB132PHZ256mb = 11679,
+ VFNMSUB132PHZ256mbk = 11680,
+ VFNMSUB132PHZ256mbkz = 11681,
+ VFNMSUB132PHZ256mk = 11682,
+ VFNMSUB132PHZ256mkz = 11683,
+ VFNMSUB132PHZ256r = 11684,
+ VFNMSUB132PHZ256rk = 11685,
+ VFNMSUB132PHZ256rkz = 11686,
+ VFNMSUB132PHZm = 11687,
+ VFNMSUB132PHZmb = 11688,
+ VFNMSUB132PHZmbk = 11689,
+ VFNMSUB132PHZmbkz = 11690,
+ VFNMSUB132PHZmk = 11691,
+ VFNMSUB132PHZmkz = 11692,
+ VFNMSUB132PHZr = 11693,
+ VFNMSUB132PHZrb = 11694,
+ VFNMSUB132PHZrbk = 11695,
+ VFNMSUB132PHZrbkz = 11696,
+ VFNMSUB132PHZrk = 11697,
+ VFNMSUB132PHZrkz = 11698,
+ VFNMSUB132PSYm = 11699,
+ VFNMSUB132PSYr = 11700,
+ VFNMSUB132PSZ128m = 11701,
+ VFNMSUB132PSZ128mb = 11702,
+ VFNMSUB132PSZ128mbk = 11703,
+ VFNMSUB132PSZ128mbkz = 11704,
+ VFNMSUB132PSZ128mk = 11705,
+ VFNMSUB132PSZ128mkz = 11706,
+ VFNMSUB132PSZ128r = 11707,
+ VFNMSUB132PSZ128rk = 11708,
+ VFNMSUB132PSZ128rkz = 11709,
+ VFNMSUB132PSZ256m = 11710,
+ VFNMSUB132PSZ256mb = 11711,
+ VFNMSUB132PSZ256mbk = 11712,
+ VFNMSUB132PSZ256mbkz = 11713,
+ VFNMSUB132PSZ256mk = 11714,
+ VFNMSUB132PSZ256mkz = 11715,
+ VFNMSUB132PSZ256r = 11716,
+ VFNMSUB132PSZ256rk = 11717,
+ VFNMSUB132PSZ256rkz = 11718,
+ VFNMSUB132PSZm = 11719,
+ VFNMSUB132PSZmb = 11720,
+ VFNMSUB132PSZmbk = 11721,
+ VFNMSUB132PSZmbkz = 11722,
+ VFNMSUB132PSZmk = 11723,
+ VFNMSUB132PSZmkz = 11724,
+ VFNMSUB132PSZr = 11725,
+ VFNMSUB132PSZrb = 11726,
+ VFNMSUB132PSZrbk = 11727,
+ VFNMSUB132PSZrbkz = 11728,
+ VFNMSUB132PSZrk = 11729,
+ VFNMSUB132PSZrkz = 11730,
+ VFNMSUB132PSm = 11731,
+ VFNMSUB132PSr = 11732,
+ VFNMSUB132SDZm = 11733,
+ VFNMSUB132SDZm_Int = 11734,
+ VFNMSUB132SDZmk_Int = 11735,
+ VFNMSUB132SDZmkz_Int = 11736,
+ VFNMSUB132SDZr = 11737,
+ VFNMSUB132SDZr_Int = 11738,
+ VFNMSUB132SDZrb = 11739,
+ VFNMSUB132SDZrb_Int = 11740,
+ VFNMSUB132SDZrbk_Int = 11741,
+ VFNMSUB132SDZrbkz_Int = 11742,
+ VFNMSUB132SDZrk_Int = 11743,
+ VFNMSUB132SDZrkz_Int = 11744,
+ VFNMSUB132SDm = 11745,
+ VFNMSUB132SDm_Int = 11746,
+ VFNMSUB132SDr = 11747,
+ VFNMSUB132SDr_Int = 11748,
+ VFNMSUB132SHZm = 11749,
+ VFNMSUB132SHZm_Int = 11750,
+ VFNMSUB132SHZmk_Int = 11751,
+ VFNMSUB132SHZmkz_Int = 11752,
+ VFNMSUB132SHZr = 11753,
+ VFNMSUB132SHZr_Int = 11754,
+ VFNMSUB132SHZrb = 11755,
+ VFNMSUB132SHZrb_Int = 11756,
+ VFNMSUB132SHZrbk_Int = 11757,
+ VFNMSUB132SHZrbkz_Int = 11758,
+ VFNMSUB132SHZrk_Int = 11759,
+ VFNMSUB132SHZrkz_Int = 11760,
+ VFNMSUB132SSZm = 11761,
+ VFNMSUB132SSZm_Int = 11762,
+ VFNMSUB132SSZmk_Int = 11763,
+ VFNMSUB132SSZmkz_Int = 11764,
+ VFNMSUB132SSZr = 11765,
+ VFNMSUB132SSZr_Int = 11766,
+ VFNMSUB132SSZrb = 11767,
+ VFNMSUB132SSZrb_Int = 11768,
+ VFNMSUB132SSZrbk_Int = 11769,
+ VFNMSUB132SSZrbkz_Int = 11770,
+ VFNMSUB132SSZrk_Int = 11771,
+ VFNMSUB132SSZrkz_Int = 11772,
+ VFNMSUB132SSm = 11773,
+ VFNMSUB132SSm_Int = 11774,
+ VFNMSUB132SSr = 11775,
+ VFNMSUB132SSr_Int = 11776,
+ VFNMSUB213BF16Z128m = 11777,
+ VFNMSUB213BF16Z128mb = 11778,
+ VFNMSUB213BF16Z128mbk = 11779,
+ VFNMSUB213BF16Z128mbkz = 11780,
+ VFNMSUB213BF16Z128mk = 11781,
+ VFNMSUB213BF16Z128mkz = 11782,
+ VFNMSUB213BF16Z128r = 11783,
+ VFNMSUB213BF16Z128rk = 11784,
+ VFNMSUB213BF16Z128rkz = 11785,
+ VFNMSUB213BF16Z256m = 11786,
+ VFNMSUB213BF16Z256mb = 11787,
+ VFNMSUB213BF16Z256mbk = 11788,
+ VFNMSUB213BF16Z256mbkz = 11789,
+ VFNMSUB213BF16Z256mk = 11790,
+ VFNMSUB213BF16Z256mkz = 11791,
+ VFNMSUB213BF16Z256r = 11792,
+ VFNMSUB213BF16Z256rk = 11793,
+ VFNMSUB213BF16Z256rkz = 11794,
+ VFNMSUB213BF16Zm = 11795,
+ VFNMSUB213BF16Zmb = 11796,
+ VFNMSUB213BF16Zmbk = 11797,
+ VFNMSUB213BF16Zmbkz = 11798,
+ VFNMSUB213BF16Zmk = 11799,
+ VFNMSUB213BF16Zmkz = 11800,
+ VFNMSUB213BF16Zr = 11801,
+ VFNMSUB213BF16Zrk = 11802,
+ VFNMSUB213BF16Zrkz = 11803,
+ VFNMSUB213PDYm = 11804,
+ VFNMSUB213PDYr = 11805,
+ VFNMSUB213PDZ128m = 11806,
+ VFNMSUB213PDZ128mb = 11807,
+ VFNMSUB213PDZ128mbk = 11808,
+ VFNMSUB213PDZ128mbkz = 11809,
+ VFNMSUB213PDZ128mk = 11810,
+ VFNMSUB213PDZ128mkz = 11811,
+ VFNMSUB213PDZ128r = 11812,
+ VFNMSUB213PDZ128rk = 11813,
+ VFNMSUB213PDZ128rkz = 11814,
+ VFNMSUB213PDZ256m = 11815,
+ VFNMSUB213PDZ256mb = 11816,
+ VFNMSUB213PDZ256mbk = 11817,
+ VFNMSUB213PDZ256mbkz = 11818,
+ VFNMSUB213PDZ256mk = 11819,
+ VFNMSUB213PDZ256mkz = 11820,
+ VFNMSUB213PDZ256r = 11821,
+ VFNMSUB213PDZ256rk = 11822,
+ VFNMSUB213PDZ256rkz = 11823,
+ VFNMSUB213PDZm = 11824,
+ VFNMSUB213PDZmb = 11825,
+ VFNMSUB213PDZmbk = 11826,
+ VFNMSUB213PDZmbkz = 11827,
+ VFNMSUB213PDZmk = 11828,
+ VFNMSUB213PDZmkz = 11829,
+ VFNMSUB213PDZr = 11830,
+ VFNMSUB213PDZrb = 11831,
+ VFNMSUB213PDZrbk = 11832,
+ VFNMSUB213PDZrbkz = 11833,
+ VFNMSUB213PDZrk = 11834,
+ VFNMSUB213PDZrkz = 11835,
+ VFNMSUB213PDm = 11836,
+ VFNMSUB213PDr = 11837,
+ VFNMSUB213PHZ128m = 11838,
+ VFNMSUB213PHZ128mb = 11839,
+ VFNMSUB213PHZ128mbk = 11840,
+ VFNMSUB213PHZ128mbkz = 11841,
+ VFNMSUB213PHZ128mk = 11842,
+ VFNMSUB213PHZ128mkz = 11843,
+ VFNMSUB213PHZ128r = 11844,
+ VFNMSUB213PHZ128rk = 11845,
+ VFNMSUB213PHZ128rkz = 11846,
+ VFNMSUB213PHZ256m = 11847,
+ VFNMSUB213PHZ256mb = 11848,
+ VFNMSUB213PHZ256mbk = 11849,
+ VFNMSUB213PHZ256mbkz = 11850,
+ VFNMSUB213PHZ256mk = 11851,
+ VFNMSUB213PHZ256mkz = 11852,
+ VFNMSUB213PHZ256r = 11853,
+ VFNMSUB213PHZ256rk = 11854,
+ VFNMSUB213PHZ256rkz = 11855,
+ VFNMSUB213PHZm = 11856,
+ VFNMSUB213PHZmb = 11857,
+ VFNMSUB213PHZmbk = 11858,
+ VFNMSUB213PHZmbkz = 11859,
+ VFNMSUB213PHZmk = 11860,
+ VFNMSUB213PHZmkz = 11861,
+ VFNMSUB213PHZr = 11862,
+ VFNMSUB213PHZrb = 11863,
+ VFNMSUB213PHZrbk = 11864,
+ VFNMSUB213PHZrbkz = 11865,
+ VFNMSUB213PHZrk = 11866,
+ VFNMSUB213PHZrkz = 11867,
+ VFNMSUB213PSYm = 11868,
+ VFNMSUB213PSYr = 11869,
+ VFNMSUB213PSZ128m = 11870,
+ VFNMSUB213PSZ128mb = 11871,
+ VFNMSUB213PSZ128mbk = 11872,
+ VFNMSUB213PSZ128mbkz = 11873,
+ VFNMSUB213PSZ128mk = 11874,
+ VFNMSUB213PSZ128mkz = 11875,
+ VFNMSUB213PSZ128r = 11876,
+ VFNMSUB213PSZ128rk = 11877,
+ VFNMSUB213PSZ128rkz = 11878,
+ VFNMSUB213PSZ256m = 11879,
+ VFNMSUB213PSZ256mb = 11880,
+ VFNMSUB213PSZ256mbk = 11881,
+ VFNMSUB213PSZ256mbkz = 11882,
+ VFNMSUB213PSZ256mk = 11883,
+ VFNMSUB213PSZ256mkz = 11884,
+ VFNMSUB213PSZ256r = 11885,
+ VFNMSUB213PSZ256rk = 11886,
+ VFNMSUB213PSZ256rkz = 11887,
+ VFNMSUB213PSZm = 11888,
+ VFNMSUB213PSZmb = 11889,
+ VFNMSUB213PSZmbk = 11890,
+ VFNMSUB213PSZmbkz = 11891,
+ VFNMSUB213PSZmk = 11892,
+ VFNMSUB213PSZmkz = 11893,
+ VFNMSUB213PSZr = 11894,
+ VFNMSUB213PSZrb = 11895,
+ VFNMSUB213PSZrbk = 11896,
+ VFNMSUB213PSZrbkz = 11897,
+ VFNMSUB213PSZrk = 11898,
+ VFNMSUB213PSZrkz = 11899,
+ VFNMSUB213PSm = 11900,
+ VFNMSUB213PSr = 11901,
+ VFNMSUB213SDZm = 11902,
+ VFNMSUB213SDZm_Int = 11903,
+ VFNMSUB213SDZmk_Int = 11904,
+ VFNMSUB213SDZmkz_Int = 11905,
+ VFNMSUB213SDZr = 11906,
+ VFNMSUB213SDZr_Int = 11907,
+ VFNMSUB213SDZrb = 11908,
+ VFNMSUB213SDZrb_Int = 11909,
+ VFNMSUB213SDZrbk_Int = 11910,
+ VFNMSUB213SDZrbkz_Int = 11911,
+ VFNMSUB213SDZrk_Int = 11912,
+ VFNMSUB213SDZrkz_Int = 11913,
+ VFNMSUB213SDm = 11914,
+ VFNMSUB213SDm_Int = 11915,
+ VFNMSUB213SDr = 11916,
+ VFNMSUB213SDr_Int = 11917,
+ VFNMSUB213SHZm = 11918,
+ VFNMSUB213SHZm_Int = 11919,
+ VFNMSUB213SHZmk_Int = 11920,
+ VFNMSUB213SHZmkz_Int = 11921,
+ VFNMSUB213SHZr = 11922,
+ VFNMSUB213SHZr_Int = 11923,
+ VFNMSUB213SHZrb = 11924,
+ VFNMSUB213SHZrb_Int = 11925,
+ VFNMSUB213SHZrbk_Int = 11926,
+ VFNMSUB213SHZrbkz_Int = 11927,
+ VFNMSUB213SHZrk_Int = 11928,
+ VFNMSUB213SHZrkz_Int = 11929,
+ VFNMSUB213SSZm = 11930,
+ VFNMSUB213SSZm_Int = 11931,
+ VFNMSUB213SSZmk_Int = 11932,
+ VFNMSUB213SSZmkz_Int = 11933,
+ VFNMSUB213SSZr = 11934,
+ VFNMSUB213SSZr_Int = 11935,
+ VFNMSUB213SSZrb = 11936,
+ VFNMSUB213SSZrb_Int = 11937,
+ VFNMSUB213SSZrbk_Int = 11938,
+ VFNMSUB213SSZrbkz_Int = 11939,
+ VFNMSUB213SSZrk_Int = 11940,
+ VFNMSUB213SSZrkz_Int = 11941,
+ VFNMSUB213SSm = 11942,
+ VFNMSUB213SSm_Int = 11943,
+ VFNMSUB213SSr = 11944,
+ VFNMSUB213SSr_Int = 11945,
+ VFNMSUB231BF16Z128m = 11946,
+ VFNMSUB231BF16Z128mb = 11947,
+ VFNMSUB231BF16Z128mbk = 11948,
+ VFNMSUB231BF16Z128mbkz = 11949,
+ VFNMSUB231BF16Z128mk = 11950,
+ VFNMSUB231BF16Z128mkz = 11951,
+ VFNMSUB231BF16Z128r = 11952,
+ VFNMSUB231BF16Z128rk = 11953,
+ VFNMSUB231BF16Z128rkz = 11954,
+ VFNMSUB231BF16Z256m = 11955,
+ VFNMSUB231BF16Z256mb = 11956,
+ VFNMSUB231BF16Z256mbk = 11957,
+ VFNMSUB231BF16Z256mbkz = 11958,
+ VFNMSUB231BF16Z256mk = 11959,
+ VFNMSUB231BF16Z256mkz = 11960,
+ VFNMSUB231BF16Z256r = 11961,
+ VFNMSUB231BF16Z256rk = 11962,
+ VFNMSUB231BF16Z256rkz = 11963,
+ VFNMSUB231BF16Zm = 11964,
+ VFNMSUB231BF16Zmb = 11965,
+ VFNMSUB231BF16Zmbk = 11966,
+ VFNMSUB231BF16Zmbkz = 11967,
+ VFNMSUB231BF16Zmk = 11968,
+ VFNMSUB231BF16Zmkz = 11969,
+ VFNMSUB231BF16Zr = 11970,
+ VFNMSUB231BF16Zrk = 11971,
+ VFNMSUB231BF16Zrkz = 11972,
+ VFNMSUB231PDYm = 11973,
+ VFNMSUB231PDYr = 11974,
+ VFNMSUB231PDZ128m = 11975,
+ VFNMSUB231PDZ128mb = 11976,
+ VFNMSUB231PDZ128mbk = 11977,
+ VFNMSUB231PDZ128mbkz = 11978,
+ VFNMSUB231PDZ128mk = 11979,
+ VFNMSUB231PDZ128mkz = 11980,
+ VFNMSUB231PDZ128r = 11981,
+ VFNMSUB231PDZ128rk = 11982,
+ VFNMSUB231PDZ128rkz = 11983,
+ VFNMSUB231PDZ256m = 11984,
+ VFNMSUB231PDZ256mb = 11985,
+ VFNMSUB231PDZ256mbk = 11986,
+ VFNMSUB231PDZ256mbkz = 11987,
+ VFNMSUB231PDZ256mk = 11988,
+ VFNMSUB231PDZ256mkz = 11989,
+ VFNMSUB231PDZ256r = 11990,
+ VFNMSUB231PDZ256rk = 11991,
+ VFNMSUB231PDZ256rkz = 11992,
+ VFNMSUB231PDZm = 11993,
+ VFNMSUB231PDZmb = 11994,
+ VFNMSUB231PDZmbk = 11995,
+ VFNMSUB231PDZmbkz = 11996,
+ VFNMSUB231PDZmk = 11997,
+ VFNMSUB231PDZmkz = 11998,
+ VFNMSUB231PDZr = 11999,
+ VFNMSUB231PDZrb = 12000,
+ VFNMSUB231PDZrbk = 12001,
+ VFNMSUB231PDZrbkz = 12002,
+ VFNMSUB231PDZrk = 12003,
+ VFNMSUB231PDZrkz = 12004,
+ VFNMSUB231PDm = 12005,
+ VFNMSUB231PDr = 12006,
+ VFNMSUB231PHZ128m = 12007,
+ VFNMSUB231PHZ128mb = 12008,
+ VFNMSUB231PHZ128mbk = 12009,
+ VFNMSUB231PHZ128mbkz = 12010,
+ VFNMSUB231PHZ128mk = 12011,
+ VFNMSUB231PHZ128mkz = 12012,
+ VFNMSUB231PHZ128r = 12013,
+ VFNMSUB231PHZ128rk = 12014,
+ VFNMSUB231PHZ128rkz = 12015,
+ VFNMSUB231PHZ256m = 12016,
+ VFNMSUB231PHZ256mb = 12017,
+ VFNMSUB231PHZ256mbk = 12018,
+ VFNMSUB231PHZ256mbkz = 12019,
+ VFNMSUB231PHZ256mk = 12020,
+ VFNMSUB231PHZ256mkz = 12021,
+ VFNMSUB231PHZ256r = 12022,
+ VFNMSUB231PHZ256rk = 12023,
+ VFNMSUB231PHZ256rkz = 12024,
+ VFNMSUB231PHZm = 12025,
+ VFNMSUB231PHZmb = 12026,
+ VFNMSUB231PHZmbk = 12027,
+ VFNMSUB231PHZmbkz = 12028,
+ VFNMSUB231PHZmk = 12029,
+ VFNMSUB231PHZmkz = 12030,
+ VFNMSUB231PHZr = 12031,
+ VFNMSUB231PHZrb = 12032,
+ VFNMSUB231PHZrbk = 12033,
+ VFNMSUB231PHZrbkz = 12034,
+ VFNMSUB231PHZrk = 12035,
+ VFNMSUB231PHZrkz = 12036,
+ VFNMSUB231PSYm = 12037,
+ VFNMSUB231PSYr = 12038,
+ VFNMSUB231PSZ128m = 12039,
+ VFNMSUB231PSZ128mb = 12040,
+ VFNMSUB231PSZ128mbk = 12041,
+ VFNMSUB231PSZ128mbkz = 12042,
+ VFNMSUB231PSZ128mk = 12043,
+ VFNMSUB231PSZ128mkz = 12044,
+ VFNMSUB231PSZ128r = 12045,
+ VFNMSUB231PSZ128rk = 12046,
+ VFNMSUB231PSZ128rkz = 12047,
+ VFNMSUB231PSZ256m = 12048,
+ VFNMSUB231PSZ256mb = 12049,
+ VFNMSUB231PSZ256mbk = 12050,
+ VFNMSUB231PSZ256mbkz = 12051,
+ VFNMSUB231PSZ256mk = 12052,
+ VFNMSUB231PSZ256mkz = 12053,
+ VFNMSUB231PSZ256r = 12054,
+ VFNMSUB231PSZ256rk = 12055,
+ VFNMSUB231PSZ256rkz = 12056,
+ VFNMSUB231PSZm = 12057,
+ VFNMSUB231PSZmb = 12058,
+ VFNMSUB231PSZmbk = 12059,
+ VFNMSUB231PSZmbkz = 12060,
+ VFNMSUB231PSZmk = 12061,
+ VFNMSUB231PSZmkz = 12062,
+ VFNMSUB231PSZr = 12063,
+ VFNMSUB231PSZrb = 12064,
+ VFNMSUB231PSZrbk = 12065,
+ VFNMSUB231PSZrbkz = 12066,
+ VFNMSUB231PSZrk = 12067,
+ VFNMSUB231PSZrkz = 12068,
+ VFNMSUB231PSm = 12069,
+ VFNMSUB231PSr = 12070,
+ VFNMSUB231SDZm = 12071,
+ VFNMSUB231SDZm_Int = 12072,
+ VFNMSUB231SDZmk_Int = 12073,
+ VFNMSUB231SDZmkz_Int = 12074,
+ VFNMSUB231SDZr = 12075,
+ VFNMSUB231SDZr_Int = 12076,
+ VFNMSUB231SDZrb = 12077,
+ VFNMSUB231SDZrb_Int = 12078,
+ VFNMSUB231SDZrbk_Int = 12079,
+ VFNMSUB231SDZrbkz_Int = 12080,
+ VFNMSUB231SDZrk_Int = 12081,
+ VFNMSUB231SDZrkz_Int = 12082,
+ VFNMSUB231SDm = 12083,
+ VFNMSUB231SDm_Int = 12084,
+ VFNMSUB231SDr = 12085,
+ VFNMSUB231SDr_Int = 12086,
+ VFNMSUB231SHZm = 12087,
+ VFNMSUB231SHZm_Int = 12088,
+ VFNMSUB231SHZmk_Int = 12089,
+ VFNMSUB231SHZmkz_Int = 12090,
+ VFNMSUB231SHZr = 12091,
+ VFNMSUB231SHZr_Int = 12092,
+ VFNMSUB231SHZrb = 12093,
+ VFNMSUB231SHZrb_Int = 12094,
+ VFNMSUB231SHZrbk_Int = 12095,
+ VFNMSUB231SHZrbkz_Int = 12096,
+ VFNMSUB231SHZrk_Int = 12097,
+ VFNMSUB231SHZrkz_Int = 12098,
+ VFNMSUB231SSZm = 12099,
+ VFNMSUB231SSZm_Int = 12100,
+ VFNMSUB231SSZmk_Int = 12101,
+ VFNMSUB231SSZmkz_Int = 12102,
+ VFNMSUB231SSZr = 12103,
+ VFNMSUB231SSZr_Int = 12104,
+ VFNMSUB231SSZrb = 12105,
+ VFNMSUB231SSZrb_Int = 12106,
+ VFNMSUB231SSZrbk_Int = 12107,
+ VFNMSUB231SSZrbkz_Int = 12108,
+ VFNMSUB231SSZrk_Int = 12109,
+ VFNMSUB231SSZrkz_Int = 12110,
+ VFNMSUB231SSm = 12111,
+ VFNMSUB231SSm_Int = 12112,
+ VFNMSUB231SSr = 12113,
+ VFNMSUB231SSr_Int = 12114,
+ VFNMSUBPD4Ymr = 12115,
+ VFNMSUBPD4Yrm = 12116,
+ VFNMSUBPD4Yrr = 12117,
+ VFNMSUBPD4Yrr_REV = 12118,
+ VFNMSUBPD4mr = 12119,
+ VFNMSUBPD4rm = 12120,
+ VFNMSUBPD4rr = 12121,
+ VFNMSUBPD4rr_REV = 12122,
+ VFNMSUBPS4Ymr = 12123,
+ VFNMSUBPS4Yrm = 12124,
+ VFNMSUBPS4Yrr = 12125,
+ VFNMSUBPS4Yrr_REV = 12126,
+ VFNMSUBPS4mr = 12127,
+ VFNMSUBPS4rm = 12128,
+ VFNMSUBPS4rr = 12129,
+ VFNMSUBPS4rr_REV = 12130,
+ VFNMSUBSD4mr = 12131,
+ VFNMSUBSD4mr_Int = 12132,
+ VFNMSUBSD4rm = 12133,
+ VFNMSUBSD4rm_Int = 12134,
+ VFNMSUBSD4rr = 12135,
+ VFNMSUBSD4rr_Int = 12136,
+ VFNMSUBSD4rr_Int_REV = 12137,
+ VFNMSUBSD4rr_REV = 12138,
+ VFNMSUBSS4mr = 12139,
+ VFNMSUBSS4mr_Int = 12140,
+ VFNMSUBSS4rm = 12141,
+ VFNMSUBSS4rm_Int = 12142,
+ VFNMSUBSS4rr = 12143,
+ VFNMSUBSS4rr_Int = 12144,
+ VFNMSUBSS4rr_Int_REV = 12145,
+ VFNMSUBSS4rr_REV = 12146,
+ VFPCLASSBF16Z128mbi = 12147,
+ VFPCLASSBF16Z128mbik = 12148,
+ VFPCLASSBF16Z128mi = 12149,
+ VFPCLASSBF16Z128mik = 12150,
+ VFPCLASSBF16Z128ri = 12151,
+ VFPCLASSBF16Z128rik = 12152,
+ VFPCLASSBF16Z256mbi = 12153,
+ VFPCLASSBF16Z256mbik = 12154,
+ VFPCLASSBF16Z256mi = 12155,
+ VFPCLASSBF16Z256mik = 12156,
+ VFPCLASSBF16Z256ri = 12157,
+ VFPCLASSBF16Z256rik = 12158,
+ VFPCLASSBF16Zmbi = 12159,
+ VFPCLASSBF16Zmbik = 12160,
+ VFPCLASSBF16Zmi = 12161,
+ VFPCLASSBF16Zmik = 12162,
+ VFPCLASSBF16Zri = 12163,
+ VFPCLASSBF16Zrik = 12164,
+ VFPCLASSPDZ128mbi = 12165,
+ VFPCLASSPDZ128mbik = 12166,
+ VFPCLASSPDZ128mi = 12167,
+ VFPCLASSPDZ128mik = 12168,
+ VFPCLASSPDZ128ri = 12169,
+ VFPCLASSPDZ128rik = 12170,
+ VFPCLASSPDZ256mbi = 12171,
+ VFPCLASSPDZ256mbik = 12172,
+ VFPCLASSPDZ256mi = 12173,
+ VFPCLASSPDZ256mik = 12174,
+ VFPCLASSPDZ256ri = 12175,
+ VFPCLASSPDZ256rik = 12176,
+ VFPCLASSPDZmbi = 12177,
+ VFPCLASSPDZmbik = 12178,
+ VFPCLASSPDZmi = 12179,
+ VFPCLASSPDZmik = 12180,
+ VFPCLASSPDZri = 12181,
+ VFPCLASSPDZrik = 12182,
+ VFPCLASSPHZ128mbi = 12183,
+ VFPCLASSPHZ128mbik = 12184,
+ VFPCLASSPHZ128mi = 12185,
+ VFPCLASSPHZ128mik = 12186,
+ VFPCLASSPHZ128ri = 12187,
+ VFPCLASSPHZ128rik = 12188,
+ VFPCLASSPHZ256mbi = 12189,
+ VFPCLASSPHZ256mbik = 12190,
+ VFPCLASSPHZ256mi = 12191,
+ VFPCLASSPHZ256mik = 12192,
+ VFPCLASSPHZ256ri = 12193,
+ VFPCLASSPHZ256rik = 12194,
+ VFPCLASSPHZmbi = 12195,
+ VFPCLASSPHZmbik = 12196,
+ VFPCLASSPHZmi = 12197,
+ VFPCLASSPHZmik = 12198,
+ VFPCLASSPHZri = 12199,
+ VFPCLASSPHZrik = 12200,
+ VFPCLASSPSZ128mbi = 12201,
+ VFPCLASSPSZ128mbik = 12202,
+ VFPCLASSPSZ128mi = 12203,
+ VFPCLASSPSZ128mik = 12204,
+ VFPCLASSPSZ128ri = 12205,
+ VFPCLASSPSZ128rik = 12206,
+ VFPCLASSPSZ256mbi = 12207,
+ VFPCLASSPSZ256mbik = 12208,
+ VFPCLASSPSZ256mi = 12209,
+ VFPCLASSPSZ256mik = 12210,
+ VFPCLASSPSZ256ri = 12211,
+ VFPCLASSPSZ256rik = 12212,
+ VFPCLASSPSZmbi = 12213,
+ VFPCLASSPSZmbik = 12214,
+ VFPCLASSPSZmi = 12215,
+ VFPCLASSPSZmik = 12216,
+ VFPCLASSPSZri = 12217,
+ VFPCLASSPSZrik = 12218,
+ VFPCLASSSDZmi = 12219,
+ VFPCLASSSDZmik = 12220,
+ VFPCLASSSDZri = 12221,
+ VFPCLASSSDZrik = 12222,
+ VFPCLASSSHZmi = 12223,
+ VFPCLASSSHZmik = 12224,
+ VFPCLASSSHZri = 12225,
+ VFPCLASSSHZrik = 12226,
+ VFPCLASSSSZmi = 12227,
+ VFPCLASSSSZmik = 12228,
+ VFPCLASSSSZri = 12229,
+ VFPCLASSSSZrik = 12230,
+ VFRCZPDYrm = 12231,
+ VFRCZPDYrr = 12232,
+ VFRCZPDrm = 12233,
+ VFRCZPDrr = 12234,
+ VFRCZPSYrm = 12235,
+ VFRCZPSYrr = 12236,
+ VFRCZPSrm = 12237,
+ VFRCZPSrr = 12238,
+ VFRCZSDrm = 12239,
+ VFRCZSDrr = 12240,
+ VFRCZSSrm = 12241,
+ VFRCZSSrr = 12242,
+ VGATHERDPDYrm = 12243,
+ VGATHERDPDZ128rm = 12244,
+ VGATHERDPDZ256rm = 12245,
+ VGATHERDPDZrm = 12246,
+ VGATHERDPDrm = 12247,
+ VGATHERDPSYrm = 12248,
+ VGATHERDPSZ128rm = 12249,
+ VGATHERDPSZ256rm = 12250,
+ VGATHERDPSZrm = 12251,
+ VGATHERDPSrm = 12252,
+ VGATHERPF0DPDm = 12253,
+ VGATHERPF0DPSm = 12254,
+ VGATHERPF0QPDm = 12255,
+ VGATHERPF0QPSm = 12256,
+ VGATHERPF1DPDm = 12257,
+ VGATHERPF1DPSm = 12258,
+ VGATHERPF1QPDm = 12259,
+ VGATHERPF1QPSm = 12260,
+ VGATHERQPDYrm = 12261,
+ VGATHERQPDZ128rm = 12262,
+ VGATHERQPDZ256rm = 12263,
+ VGATHERQPDZrm = 12264,
+ VGATHERQPDrm = 12265,
+ VGATHERQPSYrm = 12266,
+ VGATHERQPSZ128rm = 12267,
+ VGATHERQPSZ256rm = 12268,
+ VGATHERQPSZrm = 12269,
+ VGATHERQPSrm = 12270,
+ VGETEXPBF16Z128m = 12271,
+ VGETEXPBF16Z128mb = 12272,
+ VGETEXPBF16Z128mbk = 12273,
+ VGETEXPBF16Z128mbkz = 12274,
+ VGETEXPBF16Z128mk = 12275,
+ VGETEXPBF16Z128mkz = 12276,
+ VGETEXPBF16Z128r = 12277,
+ VGETEXPBF16Z128rk = 12278,
+ VGETEXPBF16Z128rkz = 12279,
+ VGETEXPBF16Z256m = 12280,
+ VGETEXPBF16Z256mb = 12281,
+ VGETEXPBF16Z256mbk = 12282,
+ VGETEXPBF16Z256mbkz = 12283,
+ VGETEXPBF16Z256mk = 12284,
+ VGETEXPBF16Z256mkz = 12285,
+ VGETEXPBF16Z256r = 12286,
+ VGETEXPBF16Z256rk = 12287,
+ VGETEXPBF16Z256rkz = 12288,
+ VGETEXPBF16Zm = 12289,
+ VGETEXPBF16Zmb = 12290,
+ VGETEXPBF16Zmbk = 12291,
+ VGETEXPBF16Zmbkz = 12292,
+ VGETEXPBF16Zmk = 12293,
+ VGETEXPBF16Zmkz = 12294,
+ VGETEXPBF16Zr = 12295,
+ VGETEXPBF16Zrk = 12296,
+ VGETEXPBF16Zrkz = 12297,
+ VGETEXPPDZ128m = 12298,
+ VGETEXPPDZ128mb = 12299,
+ VGETEXPPDZ128mbk = 12300,
+ VGETEXPPDZ128mbkz = 12301,
+ VGETEXPPDZ128mk = 12302,
+ VGETEXPPDZ128mkz = 12303,
+ VGETEXPPDZ128r = 12304,
+ VGETEXPPDZ128rk = 12305,
+ VGETEXPPDZ128rkz = 12306,
+ VGETEXPPDZ256m = 12307,
+ VGETEXPPDZ256mb = 12308,
+ VGETEXPPDZ256mbk = 12309,
+ VGETEXPPDZ256mbkz = 12310,
+ VGETEXPPDZ256mk = 12311,
+ VGETEXPPDZ256mkz = 12312,
+ VGETEXPPDZ256r = 12313,
+ VGETEXPPDZ256rk = 12314,
+ VGETEXPPDZ256rkz = 12315,
+ VGETEXPPDZm = 12316,
+ VGETEXPPDZmb = 12317,
+ VGETEXPPDZmbk = 12318,
+ VGETEXPPDZmbkz = 12319,
+ VGETEXPPDZmk = 12320,
+ VGETEXPPDZmkz = 12321,
+ VGETEXPPDZr = 12322,
+ VGETEXPPDZrb = 12323,
+ VGETEXPPDZrbk = 12324,
+ VGETEXPPDZrbkz = 12325,
+ VGETEXPPDZrk = 12326,
+ VGETEXPPDZrkz = 12327,
+ VGETEXPPHZ128m = 12328,
+ VGETEXPPHZ128mb = 12329,
+ VGETEXPPHZ128mbk = 12330,
+ VGETEXPPHZ128mbkz = 12331,
+ VGETEXPPHZ128mk = 12332,
+ VGETEXPPHZ128mkz = 12333,
+ VGETEXPPHZ128r = 12334,
+ VGETEXPPHZ128rk = 12335,
+ VGETEXPPHZ128rkz = 12336,
+ VGETEXPPHZ256m = 12337,
+ VGETEXPPHZ256mb = 12338,
+ VGETEXPPHZ256mbk = 12339,
+ VGETEXPPHZ256mbkz = 12340,
+ VGETEXPPHZ256mk = 12341,
+ VGETEXPPHZ256mkz = 12342,
+ VGETEXPPHZ256r = 12343,
+ VGETEXPPHZ256rk = 12344,
+ VGETEXPPHZ256rkz = 12345,
+ VGETEXPPHZm = 12346,
+ VGETEXPPHZmb = 12347,
+ VGETEXPPHZmbk = 12348,
+ VGETEXPPHZmbkz = 12349,
+ VGETEXPPHZmk = 12350,
+ VGETEXPPHZmkz = 12351,
+ VGETEXPPHZr = 12352,
+ VGETEXPPHZrb = 12353,
+ VGETEXPPHZrbk = 12354,
+ VGETEXPPHZrbkz = 12355,
+ VGETEXPPHZrk = 12356,
+ VGETEXPPHZrkz = 12357,
+ VGETEXPPSZ128m = 12358,
+ VGETEXPPSZ128mb = 12359,
+ VGETEXPPSZ128mbk = 12360,
+ VGETEXPPSZ128mbkz = 12361,
+ VGETEXPPSZ128mk = 12362,
+ VGETEXPPSZ128mkz = 12363,
+ VGETEXPPSZ128r = 12364,
+ VGETEXPPSZ128rk = 12365,
+ VGETEXPPSZ128rkz = 12366,
+ VGETEXPPSZ256m = 12367,
+ VGETEXPPSZ256mb = 12368,
+ VGETEXPPSZ256mbk = 12369,
+ VGETEXPPSZ256mbkz = 12370,
+ VGETEXPPSZ256mk = 12371,
+ VGETEXPPSZ256mkz = 12372,
+ VGETEXPPSZ256r = 12373,
+ VGETEXPPSZ256rk = 12374,
+ VGETEXPPSZ256rkz = 12375,
+ VGETEXPPSZm = 12376,
+ VGETEXPPSZmb = 12377,
+ VGETEXPPSZmbk = 12378,
+ VGETEXPPSZmbkz = 12379,
+ VGETEXPPSZmk = 12380,
+ VGETEXPPSZmkz = 12381,
+ VGETEXPPSZr = 12382,
+ VGETEXPPSZrb = 12383,
+ VGETEXPPSZrbk = 12384,
+ VGETEXPPSZrbkz = 12385,
+ VGETEXPPSZrk = 12386,
+ VGETEXPPSZrkz = 12387,
+ VGETEXPSDZm = 12388,
+ VGETEXPSDZmk = 12389,
+ VGETEXPSDZmkz = 12390,
+ VGETEXPSDZr = 12391,
+ VGETEXPSDZrb = 12392,
+ VGETEXPSDZrbk = 12393,
+ VGETEXPSDZrbkz = 12394,
+ VGETEXPSDZrk = 12395,
+ VGETEXPSDZrkz = 12396,
+ VGETEXPSHZm = 12397,
+ VGETEXPSHZmk = 12398,
+ VGETEXPSHZmkz = 12399,
+ VGETEXPSHZr = 12400,
+ VGETEXPSHZrb = 12401,
+ VGETEXPSHZrbk = 12402,
+ VGETEXPSHZrbkz = 12403,
+ VGETEXPSHZrk = 12404,
+ VGETEXPSHZrkz = 12405,
+ VGETEXPSSZm = 12406,
+ VGETEXPSSZmk = 12407,
+ VGETEXPSSZmkz = 12408,
+ VGETEXPSSZr = 12409,
+ VGETEXPSSZrb = 12410,
+ VGETEXPSSZrbk = 12411,
+ VGETEXPSSZrbkz = 12412,
+ VGETEXPSSZrk = 12413,
+ VGETEXPSSZrkz = 12414,
+ VGETMANTBF16Z128rmbi = 12415,
+ VGETMANTBF16Z128rmbik = 12416,
+ VGETMANTBF16Z128rmbikz = 12417,
+ VGETMANTBF16Z128rmi = 12418,
+ VGETMANTBF16Z128rmik = 12419,
+ VGETMANTBF16Z128rmikz = 12420,
+ VGETMANTBF16Z128rri = 12421,
+ VGETMANTBF16Z128rrik = 12422,
+ VGETMANTBF16Z128rrikz = 12423,
+ VGETMANTBF16Z256rmbi = 12424,
+ VGETMANTBF16Z256rmbik = 12425,
+ VGETMANTBF16Z256rmbikz = 12426,
+ VGETMANTBF16Z256rmi = 12427,
+ VGETMANTBF16Z256rmik = 12428,
+ VGETMANTBF16Z256rmikz = 12429,
+ VGETMANTBF16Z256rri = 12430,
+ VGETMANTBF16Z256rrik = 12431,
+ VGETMANTBF16Z256rrikz = 12432,
+ VGETMANTBF16Zrmbi = 12433,
+ VGETMANTBF16Zrmbik = 12434,
+ VGETMANTBF16Zrmbikz = 12435,
+ VGETMANTBF16Zrmi = 12436,
+ VGETMANTBF16Zrmik = 12437,
+ VGETMANTBF16Zrmikz = 12438,
+ VGETMANTBF16Zrri = 12439,
+ VGETMANTBF16Zrrik = 12440,
+ VGETMANTBF16Zrrikz = 12441,
+ VGETMANTPDZ128rmbi = 12442,
+ VGETMANTPDZ128rmbik = 12443,
+ VGETMANTPDZ128rmbikz = 12444,
+ VGETMANTPDZ128rmi = 12445,
+ VGETMANTPDZ128rmik = 12446,
+ VGETMANTPDZ128rmikz = 12447,
+ VGETMANTPDZ128rri = 12448,
+ VGETMANTPDZ128rrik = 12449,
+ VGETMANTPDZ128rrikz = 12450,
+ VGETMANTPDZ256rmbi = 12451,
+ VGETMANTPDZ256rmbik = 12452,
+ VGETMANTPDZ256rmbikz = 12453,
+ VGETMANTPDZ256rmi = 12454,
+ VGETMANTPDZ256rmik = 12455,
+ VGETMANTPDZ256rmikz = 12456,
+ VGETMANTPDZ256rri = 12457,
+ VGETMANTPDZ256rrik = 12458,
+ VGETMANTPDZ256rrikz = 12459,
+ VGETMANTPDZrmbi = 12460,
+ VGETMANTPDZrmbik = 12461,
+ VGETMANTPDZrmbikz = 12462,
+ VGETMANTPDZrmi = 12463,
+ VGETMANTPDZrmik = 12464,
+ VGETMANTPDZrmikz = 12465,
+ VGETMANTPDZrri = 12466,
+ VGETMANTPDZrrib = 12467,
+ VGETMANTPDZrribk = 12468,
+ VGETMANTPDZrribkz = 12469,
+ VGETMANTPDZrrik = 12470,
+ VGETMANTPDZrrikz = 12471,
+ VGETMANTPHZ128rmbi = 12472,
+ VGETMANTPHZ128rmbik = 12473,
+ VGETMANTPHZ128rmbikz = 12474,
+ VGETMANTPHZ128rmi = 12475,
+ VGETMANTPHZ128rmik = 12476,
+ VGETMANTPHZ128rmikz = 12477,
+ VGETMANTPHZ128rri = 12478,
+ VGETMANTPHZ128rrik = 12479,
+ VGETMANTPHZ128rrikz = 12480,
+ VGETMANTPHZ256rmbi = 12481,
+ VGETMANTPHZ256rmbik = 12482,
+ VGETMANTPHZ256rmbikz = 12483,
+ VGETMANTPHZ256rmi = 12484,
+ VGETMANTPHZ256rmik = 12485,
+ VGETMANTPHZ256rmikz = 12486,
+ VGETMANTPHZ256rri = 12487,
+ VGETMANTPHZ256rrik = 12488,
+ VGETMANTPHZ256rrikz = 12489,
+ VGETMANTPHZrmbi = 12490,
+ VGETMANTPHZrmbik = 12491,
+ VGETMANTPHZrmbikz = 12492,
+ VGETMANTPHZrmi = 12493,
+ VGETMANTPHZrmik = 12494,
+ VGETMANTPHZrmikz = 12495,
+ VGETMANTPHZrri = 12496,
+ VGETMANTPHZrrib = 12497,
+ VGETMANTPHZrribk = 12498,
+ VGETMANTPHZrribkz = 12499,
+ VGETMANTPHZrrik = 12500,
+ VGETMANTPHZrrikz = 12501,
+ VGETMANTPSZ128rmbi = 12502,
+ VGETMANTPSZ128rmbik = 12503,
+ VGETMANTPSZ128rmbikz = 12504,
+ VGETMANTPSZ128rmi = 12505,
+ VGETMANTPSZ128rmik = 12506,
+ VGETMANTPSZ128rmikz = 12507,
+ VGETMANTPSZ128rri = 12508,
+ VGETMANTPSZ128rrik = 12509,
+ VGETMANTPSZ128rrikz = 12510,
+ VGETMANTPSZ256rmbi = 12511,
+ VGETMANTPSZ256rmbik = 12512,
+ VGETMANTPSZ256rmbikz = 12513,
+ VGETMANTPSZ256rmi = 12514,
+ VGETMANTPSZ256rmik = 12515,
+ VGETMANTPSZ256rmikz = 12516,
+ VGETMANTPSZ256rri = 12517,
+ VGETMANTPSZ256rrik = 12518,
+ VGETMANTPSZ256rrikz = 12519,
+ VGETMANTPSZrmbi = 12520,
+ VGETMANTPSZrmbik = 12521,
+ VGETMANTPSZrmbikz = 12522,
+ VGETMANTPSZrmi = 12523,
+ VGETMANTPSZrmik = 12524,
+ VGETMANTPSZrmikz = 12525,
+ VGETMANTPSZrri = 12526,
+ VGETMANTPSZrrib = 12527,
+ VGETMANTPSZrribk = 12528,
+ VGETMANTPSZrribkz = 12529,
+ VGETMANTPSZrrik = 12530,
+ VGETMANTPSZrrikz = 12531,
+ VGETMANTSDZrmi = 12532,
+ VGETMANTSDZrmik = 12533,
+ VGETMANTSDZrmikz = 12534,
+ VGETMANTSDZrri = 12535,
+ VGETMANTSDZrrib = 12536,
+ VGETMANTSDZrribk = 12537,
+ VGETMANTSDZrribkz = 12538,
+ VGETMANTSDZrrik = 12539,
+ VGETMANTSDZrrikz = 12540,
+ VGETMANTSHZrmi = 12541,
+ VGETMANTSHZrmik = 12542,
+ VGETMANTSHZrmikz = 12543,
+ VGETMANTSHZrri = 12544,
+ VGETMANTSHZrrib = 12545,
+ VGETMANTSHZrribk = 12546,
+ VGETMANTSHZrribkz = 12547,
+ VGETMANTSHZrrik = 12548,
+ VGETMANTSHZrrikz = 12549,
+ VGETMANTSSZrmi = 12550,
+ VGETMANTSSZrmik = 12551,
+ VGETMANTSSZrmikz = 12552,
+ VGETMANTSSZrri = 12553,
+ VGETMANTSSZrrib = 12554,
+ VGETMANTSSZrribk = 12555,
+ VGETMANTSSZrribkz = 12556,
+ VGETMANTSSZrrik = 12557,
+ VGETMANTSSZrrikz = 12558,
+ VGF2P8AFFINEINVQBYrmi = 12559,
+ VGF2P8AFFINEINVQBYrri = 12560,
+ VGF2P8AFFINEINVQBZ128rmbi = 12561,
+ VGF2P8AFFINEINVQBZ128rmbik = 12562,
+ VGF2P8AFFINEINVQBZ128rmbikz = 12563,
+ VGF2P8AFFINEINVQBZ128rmi = 12564,
+ VGF2P8AFFINEINVQBZ128rmik = 12565,
+ VGF2P8AFFINEINVQBZ128rmikz = 12566,
+ VGF2P8AFFINEINVQBZ128rri = 12567,
+ VGF2P8AFFINEINVQBZ128rrik = 12568,
+ VGF2P8AFFINEINVQBZ128rrikz = 12569,
+ VGF2P8AFFINEINVQBZ256rmbi = 12570,
+ VGF2P8AFFINEINVQBZ256rmbik = 12571,
+ VGF2P8AFFINEINVQBZ256rmbikz = 12572,
+ VGF2P8AFFINEINVQBZ256rmi = 12573,
+ VGF2P8AFFINEINVQBZ256rmik = 12574,
+ VGF2P8AFFINEINVQBZ256rmikz = 12575,
+ VGF2P8AFFINEINVQBZ256rri = 12576,
+ VGF2P8AFFINEINVQBZ256rrik = 12577,
+ VGF2P8AFFINEINVQBZ256rrikz = 12578,
+ VGF2P8AFFINEINVQBZrmbi = 12579,
+ VGF2P8AFFINEINVQBZrmbik = 12580,
+ VGF2P8AFFINEINVQBZrmbikz = 12581,
+ VGF2P8AFFINEINVQBZrmi = 12582,
+ VGF2P8AFFINEINVQBZrmik = 12583,
+ VGF2P8AFFINEINVQBZrmikz = 12584,
+ VGF2P8AFFINEINVQBZrri = 12585,
+ VGF2P8AFFINEINVQBZrrik = 12586,
+ VGF2P8AFFINEINVQBZrrikz = 12587,
+ VGF2P8AFFINEINVQBrmi = 12588,
+ VGF2P8AFFINEINVQBrri = 12589,
+ VGF2P8AFFINEQBYrmi = 12590,
+ VGF2P8AFFINEQBYrri = 12591,
+ VGF2P8AFFINEQBZ128rmbi = 12592,
+ VGF2P8AFFINEQBZ128rmbik = 12593,
+ VGF2P8AFFINEQBZ128rmbikz = 12594,
+ VGF2P8AFFINEQBZ128rmi = 12595,
+ VGF2P8AFFINEQBZ128rmik = 12596,
+ VGF2P8AFFINEQBZ128rmikz = 12597,
+ VGF2P8AFFINEQBZ128rri = 12598,
+ VGF2P8AFFINEQBZ128rrik = 12599,
+ VGF2P8AFFINEQBZ128rrikz = 12600,
+ VGF2P8AFFINEQBZ256rmbi = 12601,
+ VGF2P8AFFINEQBZ256rmbik = 12602,
+ VGF2P8AFFINEQBZ256rmbikz = 12603,
+ VGF2P8AFFINEQBZ256rmi = 12604,
+ VGF2P8AFFINEQBZ256rmik = 12605,
+ VGF2P8AFFINEQBZ256rmikz = 12606,
+ VGF2P8AFFINEQBZ256rri = 12607,
+ VGF2P8AFFINEQBZ256rrik = 12608,
+ VGF2P8AFFINEQBZ256rrikz = 12609,
+ VGF2P8AFFINEQBZrmbi = 12610,
+ VGF2P8AFFINEQBZrmbik = 12611,
+ VGF2P8AFFINEQBZrmbikz = 12612,
+ VGF2P8AFFINEQBZrmi = 12613,
+ VGF2P8AFFINEQBZrmik = 12614,
+ VGF2P8AFFINEQBZrmikz = 12615,
+ VGF2P8AFFINEQBZrri = 12616,
+ VGF2P8AFFINEQBZrrik = 12617,
+ VGF2P8AFFINEQBZrrikz = 12618,
+ VGF2P8AFFINEQBrmi = 12619,
+ VGF2P8AFFINEQBrri = 12620,
+ VGF2P8MULBYrm = 12621,
+ VGF2P8MULBYrr = 12622,
+ VGF2P8MULBZ128rm = 12623,
+ VGF2P8MULBZ128rmk = 12624,
+ VGF2P8MULBZ128rmkz = 12625,
+ VGF2P8MULBZ128rr = 12626,
+ VGF2P8MULBZ128rrk = 12627,
+ VGF2P8MULBZ128rrkz = 12628,
+ VGF2P8MULBZ256rm = 12629,
+ VGF2P8MULBZ256rmk = 12630,
+ VGF2P8MULBZ256rmkz = 12631,
+ VGF2P8MULBZ256rr = 12632,
+ VGF2P8MULBZ256rrk = 12633,
+ VGF2P8MULBZ256rrkz = 12634,
+ VGF2P8MULBZrm = 12635,
+ VGF2P8MULBZrmk = 12636,
+ VGF2P8MULBZrmkz = 12637,
+ VGF2P8MULBZrr = 12638,
+ VGF2P8MULBZrrk = 12639,
+ VGF2P8MULBZrrkz = 12640,
+ VGF2P8MULBrm = 12641,
+ VGF2P8MULBrr = 12642,
+ VHADDPDYrm = 12643,
+ VHADDPDYrr = 12644,
+ VHADDPDrm = 12645,
+ VHADDPDrr = 12646,
+ VHADDPSYrm = 12647,
+ VHADDPSYrr = 12648,
+ VHADDPSrm = 12649,
+ VHADDPSrr = 12650,
+ VHSUBPDYrm = 12651,
+ VHSUBPDYrr = 12652,
+ VHSUBPDrm = 12653,
+ VHSUBPDrr = 12654,
+ VHSUBPSYrm = 12655,
+ VHSUBPSYrr = 12656,
+ VHSUBPSrm = 12657,
+ VHSUBPSrr = 12658,
+ VINSERTF128rmi = 12659,
+ VINSERTF128rri = 12660,
+ VINSERTF32X4Z256rmi = 12661,
+ VINSERTF32X4Z256rmik = 12662,
+ VINSERTF32X4Z256rmikz = 12663,
+ VINSERTF32X4Z256rri = 12664,
+ VINSERTF32X4Z256rrik = 12665,
+ VINSERTF32X4Z256rrikz = 12666,
+ VINSERTF32X4Zrmi = 12667,
+ VINSERTF32X4Zrmik = 12668,
+ VINSERTF32X4Zrmikz = 12669,
+ VINSERTF32X4Zrri = 12670,
+ VINSERTF32X4Zrrik = 12671,
+ VINSERTF32X4Zrrikz = 12672,
+ VINSERTF32X8Zrmi = 12673,
+ VINSERTF32X8Zrmik = 12674,
+ VINSERTF32X8Zrmikz = 12675,
+ VINSERTF32X8Zrri = 12676,
+ VINSERTF32X8Zrrik = 12677,
+ VINSERTF32X8Zrrikz = 12678,
+ VINSERTF64X2Z256rmi = 12679,
+ VINSERTF64X2Z256rmik = 12680,
+ VINSERTF64X2Z256rmikz = 12681,
+ VINSERTF64X2Z256rri = 12682,
+ VINSERTF64X2Z256rrik = 12683,
+ VINSERTF64X2Z256rrikz = 12684,
+ VINSERTF64X2Zrmi = 12685,
+ VINSERTF64X2Zrmik = 12686,
+ VINSERTF64X2Zrmikz = 12687,
+ VINSERTF64X2Zrri = 12688,
+ VINSERTF64X2Zrrik = 12689,
+ VINSERTF64X2Zrrikz = 12690,
+ VINSERTF64X4Zrmi = 12691,
+ VINSERTF64X4Zrmik = 12692,
+ VINSERTF64X4Zrmikz = 12693,
+ VINSERTF64X4Zrri = 12694,
+ VINSERTF64X4Zrrik = 12695,
+ VINSERTF64X4Zrrikz = 12696,
+ VINSERTI128rmi = 12697,
+ VINSERTI128rri = 12698,
+ VINSERTI32X4Z256rmi = 12699,
+ VINSERTI32X4Z256rmik = 12700,
+ VINSERTI32X4Z256rmikz = 12701,
+ VINSERTI32X4Z256rri = 12702,
+ VINSERTI32X4Z256rrik = 12703,
+ VINSERTI32X4Z256rrikz = 12704,
+ VINSERTI32X4Zrmi = 12705,
+ VINSERTI32X4Zrmik = 12706,
+ VINSERTI32X4Zrmikz = 12707,
+ VINSERTI32X4Zrri = 12708,
+ VINSERTI32X4Zrrik = 12709,
+ VINSERTI32X4Zrrikz = 12710,
+ VINSERTI32X8Zrmi = 12711,
+ VINSERTI32X8Zrmik = 12712,
+ VINSERTI32X8Zrmikz = 12713,
+ VINSERTI32X8Zrri = 12714,
+ VINSERTI32X8Zrrik = 12715,
+ VINSERTI32X8Zrrikz = 12716,
+ VINSERTI64X2Z256rmi = 12717,
+ VINSERTI64X2Z256rmik = 12718,
+ VINSERTI64X2Z256rmikz = 12719,
+ VINSERTI64X2Z256rri = 12720,
+ VINSERTI64X2Z256rrik = 12721,
+ VINSERTI64X2Z256rrikz = 12722,
+ VINSERTI64X2Zrmi = 12723,
+ VINSERTI64X2Zrmik = 12724,
+ VINSERTI64X2Zrmikz = 12725,
+ VINSERTI64X2Zrri = 12726,
+ VINSERTI64X2Zrrik = 12727,
+ VINSERTI64X2Zrrikz = 12728,
+ VINSERTI64X4Zrmi = 12729,
+ VINSERTI64X4Zrmik = 12730,
+ VINSERTI64X4Zrmikz = 12731,
+ VINSERTI64X4Zrri = 12732,
+ VINSERTI64X4Zrrik = 12733,
+ VINSERTI64X4Zrrikz = 12734,
+ VINSERTPSZrmi = 12735,
+ VINSERTPSZrri = 12736,
+ VINSERTPSrmi = 12737,
+ VINSERTPSrri = 12738,
+ VLDDQUYrm = 12739,
+ VLDDQUrm = 12740,
+ VLDMXCSR = 12741,
+ VMASKMOVDQU = 12742,
+ VMASKMOVDQU64 = 12743,
+ VMASKMOVPDYmr = 12744,
+ VMASKMOVPDYrm = 12745,
+ VMASKMOVPDmr = 12746,
+ VMASKMOVPDrm = 12747,
+ VMASKMOVPSYmr = 12748,
+ VMASKMOVPSYrm = 12749,
+ VMASKMOVPSmr = 12750,
+ VMASKMOVPSrm = 12751,
+ VMAXBF16Z128rm = 12752,
+ VMAXBF16Z128rmb = 12753,
+ VMAXBF16Z128rmbk = 12754,
+ VMAXBF16Z128rmbkz = 12755,
+ VMAXBF16Z128rmk = 12756,
+ VMAXBF16Z128rmkz = 12757,
+ VMAXBF16Z128rr = 12758,
+ VMAXBF16Z128rrk = 12759,
+ VMAXBF16Z128rrkz = 12760,
+ VMAXBF16Z256rm = 12761,
+ VMAXBF16Z256rmb = 12762,
+ VMAXBF16Z256rmbk = 12763,
+ VMAXBF16Z256rmbkz = 12764,
+ VMAXBF16Z256rmk = 12765,
+ VMAXBF16Z256rmkz = 12766,
+ VMAXBF16Z256rr = 12767,
+ VMAXBF16Z256rrk = 12768,
+ VMAXBF16Z256rrkz = 12769,
+ VMAXBF16Zrm = 12770,
+ VMAXBF16Zrmb = 12771,
+ VMAXBF16Zrmbk = 12772,
+ VMAXBF16Zrmbkz = 12773,
+ VMAXBF16Zrmk = 12774,
+ VMAXBF16Zrmkz = 12775,
+ VMAXBF16Zrr = 12776,
+ VMAXBF16Zrrk = 12777,
+ VMAXBF16Zrrkz = 12778,
+ VMAXCPDYrm = 12779,
+ VMAXCPDYrr = 12780,
+ VMAXCPDZ128rm = 12781,
+ VMAXCPDZ128rmb = 12782,
+ VMAXCPDZ128rmbk = 12783,
+ VMAXCPDZ128rmbkz = 12784,
+ VMAXCPDZ128rmk = 12785,
+ VMAXCPDZ128rmkz = 12786,
+ VMAXCPDZ128rr = 12787,
+ VMAXCPDZ128rrk = 12788,
+ VMAXCPDZ128rrkz = 12789,
+ VMAXCPDZ256rm = 12790,
+ VMAXCPDZ256rmb = 12791,
+ VMAXCPDZ256rmbk = 12792,
+ VMAXCPDZ256rmbkz = 12793,
+ VMAXCPDZ256rmk = 12794,
+ VMAXCPDZ256rmkz = 12795,
+ VMAXCPDZ256rr = 12796,
+ VMAXCPDZ256rrk = 12797,
+ VMAXCPDZ256rrkz = 12798,
+ VMAXCPDZrm = 12799,
+ VMAXCPDZrmb = 12800,
+ VMAXCPDZrmbk = 12801,
+ VMAXCPDZrmbkz = 12802,
+ VMAXCPDZrmk = 12803,
+ VMAXCPDZrmkz = 12804,
+ VMAXCPDZrr = 12805,
+ VMAXCPDZrrk = 12806,
+ VMAXCPDZrrkz = 12807,
+ VMAXCPDrm = 12808,
+ VMAXCPDrr = 12809,
+ VMAXCPHZ128rm = 12810,
+ VMAXCPHZ128rmb = 12811,
+ VMAXCPHZ128rmbk = 12812,
+ VMAXCPHZ128rmbkz = 12813,
+ VMAXCPHZ128rmk = 12814,
+ VMAXCPHZ128rmkz = 12815,
+ VMAXCPHZ128rr = 12816,
+ VMAXCPHZ128rrk = 12817,
+ VMAXCPHZ128rrkz = 12818,
+ VMAXCPHZ256rm = 12819,
+ VMAXCPHZ256rmb = 12820,
+ VMAXCPHZ256rmbk = 12821,
+ VMAXCPHZ256rmbkz = 12822,
+ VMAXCPHZ256rmk = 12823,
+ VMAXCPHZ256rmkz = 12824,
+ VMAXCPHZ256rr = 12825,
+ VMAXCPHZ256rrk = 12826,
+ VMAXCPHZ256rrkz = 12827,
+ VMAXCPHZrm = 12828,
+ VMAXCPHZrmb = 12829,
+ VMAXCPHZrmbk = 12830,
+ VMAXCPHZrmbkz = 12831,
+ VMAXCPHZrmk = 12832,
+ VMAXCPHZrmkz = 12833,
+ VMAXCPHZrr = 12834,
+ VMAXCPHZrrk = 12835,
+ VMAXCPHZrrkz = 12836,
+ VMAXCPSYrm = 12837,
+ VMAXCPSYrr = 12838,
+ VMAXCPSZ128rm = 12839,
+ VMAXCPSZ128rmb = 12840,
+ VMAXCPSZ128rmbk = 12841,
+ VMAXCPSZ128rmbkz = 12842,
+ VMAXCPSZ128rmk = 12843,
+ VMAXCPSZ128rmkz = 12844,
+ VMAXCPSZ128rr = 12845,
+ VMAXCPSZ128rrk = 12846,
+ VMAXCPSZ128rrkz = 12847,
+ VMAXCPSZ256rm = 12848,
+ VMAXCPSZ256rmb = 12849,
+ VMAXCPSZ256rmbk = 12850,
+ VMAXCPSZ256rmbkz = 12851,
+ VMAXCPSZ256rmk = 12852,
+ VMAXCPSZ256rmkz = 12853,
+ VMAXCPSZ256rr = 12854,
+ VMAXCPSZ256rrk = 12855,
+ VMAXCPSZ256rrkz = 12856,
+ VMAXCPSZrm = 12857,
+ VMAXCPSZrmb = 12858,
+ VMAXCPSZrmbk = 12859,
+ VMAXCPSZrmbkz = 12860,
+ VMAXCPSZrmk = 12861,
+ VMAXCPSZrmkz = 12862,
+ VMAXCPSZrr = 12863,
+ VMAXCPSZrrk = 12864,
+ VMAXCPSZrrkz = 12865,
+ VMAXCPSrm = 12866,
+ VMAXCPSrr = 12867,
+ VMAXCSDZrm = 12868,
+ VMAXCSDZrr = 12869,
+ VMAXCSDrm = 12870,
+ VMAXCSDrr = 12871,
+ VMAXCSHZrm = 12872,
+ VMAXCSHZrr = 12873,
+ VMAXCSSZrm = 12874,
+ VMAXCSSZrr = 12875,
+ VMAXCSSrm = 12876,
+ VMAXCSSrr = 12877,
+ VMAXPDYrm = 12878,
+ VMAXPDYrr = 12879,
+ VMAXPDZ128rm = 12880,
+ VMAXPDZ128rmb = 12881,
+ VMAXPDZ128rmbk = 12882,
+ VMAXPDZ128rmbkz = 12883,
+ VMAXPDZ128rmk = 12884,
+ VMAXPDZ128rmkz = 12885,
+ VMAXPDZ128rr = 12886,
+ VMAXPDZ128rrk = 12887,
+ VMAXPDZ128rrkz = 12888,
+ VMAXPDZ256rm = 12889,
+ VMAXPDZ256rmb = 12890,
+ VMAXPDZ256rmbk = 12891,
+ VMAXPDZ256rmbkz = 12892,
+ VMAXPDZ256rmk = 12893,
+ VMAXPDZ256rmkz = 12894,
+ VMAXPDZ256rr = 12895,
+ VMAXPDZ256rrk = 12896,
+ VMAXPDZ256rrkz = 12897,
+ VMAXPDZrm = 12898,
+ VMAXPDZrmb = 12899,
+ VMAXPDZrmbk = 12900,
+ VMAXPDZrmbkz = 12901,
+ VMAXPDZrmk = 12902,
+ VMAXPDZrmkz = 12903,
+ VMAXPDZrr = 12904,
+ VMAXPDZrrb = 12905,
+ VMAXPDZrrbk = 12906,
+ VMAXPDZrrbkz = 12907,
+ VMAXPDZrrk = 12908,
+ VMAXPDZrrkz = 12909,
+ VMAXPDrm = 12910,
+ VMAXPDrr = 12911,
+ VMAXPHZ128rm = 12912,
+ VMAXPHZ128rmb = 12913,
+ VMAXPHZ128rmbk = 12914,
+ VMAXPHZ128rmbkz = 12915,
+ VMAXPHZ128rmk = 12916,
+ VMAXPHZ128rmkz = 12917,
+ VMAXPHZ128rr = 12918,
+ VMAXPHZ128rrk = 12919,
+ VMAXPHZ128rrkz = 12920,
+ VMAXPHZ256rm = 12921,
+ VMAXPHZ256rmb = 12922,
+ VMAXPHZ256rmbk = 12923,
+ VMAXPHZ256rmbkz = 12924,
+ VMAXPHZ256rmk = 12925,
+ VMAXPHZ256rmkz = 12926,
+ VMAXPHZ256rr = 12927,
+ VMAXPHZ256rrk = 12928,
+ VMAXPHZ256rrkz = 12929,
+ VMAXPHZrm = 12930,
+ VMAXPHZrmb = 12931,
+ VMAXPHZrmbk = 12932,
+ VMAXPHZrmbkz = 12933,
+ VMAXPHZrmk = 12934,
+ VMAXPHZrmkz = 12935,
+ VMAXPHZrr = 12936,
+ VMAXPHZrrb = 12937,
+ VMAXPHZrrbk = 12938,
+ VMAXPHZrrbkz = 12939,
+ VMAXPHZrrk = 12940,
+ VMAXPHZrrkz = 12941,
+ VMAXPSYrm = 12942,
+ VMAXPSYrr = 12943,
+ VMAXPSZ128rm = 12944,
+ VMAXPSZ128rmb = 12945,
+ VMAXPSZ128rmbk = 12946,
+ VMAXPSZ128rmbkz = 12947,
+ VMAXPSZ128rmk = 12948,
+ VMAXPSZ128rmkz = 12949,
+ VMAXPSZ128rr = 12950,
+ VMAXPSZ128rrk = 12951,
+ VMAXPSZ128rrkz = 12952,
+ VMAXPSZ256rm = 12953,
+ VMAXPSZ256rmb = 12954,
+ VMAXPSZ256rmbk = 12955,
+ VMAXPSZ256rmbkz = 12956,
+ VMAXPSZ256rmk = 12957,
+ VMAXPSZ256rmkz = 12958,
+ VMAXPSZ256rr = 12959,
+ VMAXPSZ256rrk = 12960,
+ VMAXPSZ256rrkz = 12961,
+ VMAXPSZrm = 12962,
+ VMAXPSZrmb = 12963,
+ VMAXPSZrmbk = 12964,
+ VMAXPSZrmbkz = 12965,
+ VMAXPSZrmk = 12966,
+ VMAXPSZrmkz = 12967,
+ VMAXPSZrr = 12968,
+ VMAXPSZrrb = 12969,
+ VMAXPSZrrbk = 12970,
+ VMAXPSZrrbkz = 12971,
+ VMAXPSZrrk = 12972,
+ VMAXPSZrrkz = 12973,
+ VMAXPSrm = 12974,
+ VMAXPSrr = 12975,
+ VMAXSDZrm = 12976,
+ VMAXSDZrm_Int = 12977,
+ VMAXSDZrmk_Int = 12978,
+ VMAXSDZrmkz_Int = 12979,
+ VMAXSDZrr = 12980,
+ VMAXSDZrr_Int = 12981,
+ VMAXSDZrrb_Int = 12982,
+ VMAXSDZrrbk_Int = 12983,
+ VMAXSDZrrbkz_Int = 12984,
+ VMAXSDZrrk_Int = 12985,
+ VMAXSDZrrkz_Int = 12986,
+ VMAXSDrm = 12987,
+ VMAXSDrm_Int = 12988,
+ VMAXSDrr = 12989,
+ VMAXSDrr_Int = 12990,
+ VMAXSHZrm = 12991,
+ VMAXSHZrm_Int = 12992,
+ VMAXSHZrmk_Int = 12993,
+ VMAXSHZrmkz_Int = 12994,
+ VMAXSHZrr = 12995,
+ VMAXSHZrr_Int = 12996,
+ VMAXSHZrrb_Int = 12997,
+ VMAXSHZrrbk_Int = 12998,
+ VMAXSHZrrbkz_Int = 12999,
+ VMAXSHZrrk_Int = 13000,
+ VMAXSHZrrkz_Int = 13001,
+ VMAXSSZrm = 13002,
+ VMAXSSZrm_Int = 13003,
+ VMAXSSZrmk_Int = 13004,
+ VMAXSSZrmkz_Int = 13005,
+ VMAXSSZrr = 13006,
+ VMAXSSZrr_Int = 13007,
+ VMAXSSZrrb_Int = 13008,
+ VMAXSSZrrbk_Int = 13009,
+ VMAXSSZrrbkz_Int = 13010,
+ VMAXSSZrrk_Int = 13011,
+ VMAXSSZrrkz_Int = 13012,
+ VMAXSSrm = 13013,
+ VMAXSSrm_Int = 13014,
+ VMAXSSrr = 13015,
+ VMAXSSrr_Int = 13016,
+ VMCALL = 13017,
+ VMCLEARm = 13018,
+ VMFUNC = 13019,
+ VMINBF16Z128rm = 13020,
+ VMINBF16Z128rmb = 13021,
+ VMINBF16Z128rmbk = 13022,
+ VMINBF16Z128rmbkz = 13023,
+ VMINBF16Z128rmk = 13024,
+ VMINBF16Z128rmkz = 13025,
+ VMINBF16Z128rr = 13026,
+ VMINBF16Z128rrk = 13027,
+ VMINBF16Z128rrkz = 13028,
+ VMINBF16Z256rm = 13029,
+ VMINBF16Z256rmb = 13030,
+ VMINBF16Z256rmbk = 13031,
+ VMINBF16Z256rmbkz = 13032,
+ VMINBF16Z256rmk = 13033,
+ VMINBF16Z256rmkz = 13034,
+ VMINBF16Z256rr = 13035,
+ VMINBF16Z256rrk = 13036,
+ VMINBF16Z256rrkz = 13037,
+ VMINBF16Zrm = 13038,
+ VMINBF16Zrmb = 13039,
+ VMINBF16Zrmbk = 13040,
+ VMINBF16Zrmbkz = 13041,
+ VMINBF16Zrmk = 13042,
+ VMINBF16Zrmkz = 13043,
+ VMINBF16Zrr = 13044,
+ VMINBF16Zrrk = 13045,
+ VMINBF16Zrrkz = 13046,
+ VMINCPDYrm = 13047,
+ VMINCPDYrr = 13048,
+ VMINCPDZ128rm = 13049,
+ VMINCPDZ128rmb = 13050,
+ VMINCPDZ128rmbk = 13051,
+ VMINCPDZ128rmbkz = 13052,
+ VMINCPDZ128rmk = 13053,
+ VMINCPDZ128rmkz = 13054,
+ VMINCPDZ128rr = 13055,
+ VMINCPDZ128rrk = 13056,
+ VMINCPDZ128rrkz = 13057,
+ VMINCPDZ256rm = 13058,
+ VMINCPDZ256rmb = 13059,
+ VMINCPDZ256rmbk = 13060,
+ VMINCPDZ256rmbkz = 13061,
+ VMINCPDZ256rmk = 13062,
+ VMINCPDZ256rmkz = 13063,
+ VMINCPDZ256rr = 13064,
+ VMINCPDZ256rrk = 13065,
+ VMINCPDZ256rrkz = 13066,
+ VMINCPDZrm = 13067,
+ VMINCPDZrmb = 13068,
+ VMINCPDZrmbk = 13069,
+ VMINCPDZrmbkz = 13070,
+ VMINCPDZrmk = 13071,
+ VMINCPDZrmkz = 13072,
+ VMINCPDZrr = 13073,
+ VMINCPDZrrk = 13074,
+ VMINCPDZrrkz = 13075,
+ VMINCPDrm = 13076,
+ VMINCPDrr = 13077,
+ VMINCPHZ128rm = 13078,
+ VMINCPHZ128rmb = 13079,
+ VMINCPHZ128rmbk = 13080,
+ VMINCPHZ128rmbkz = 13081,
+ VMINCPHZ128rmk = 13082,
+ VMINCPHZ128rmkz = 13083,
+ VMINCPHZ128rr = 13084,
+ VMINCPHZ128rrk = 13085,
+ VMINCPHZ128rrkz = 13086,
+ VMINCPHZ256rm = 13087,
+ VMINCPHZ256rmb = 13088,
+ VMINCPHZ256rmbk = 13089,
+ VMINCPHZ256rmbkz = 13090,
+ VMINCPHZ256rmk = 13091,
+ VMINCPHZ256rmkz = 13092,
+ VMINCPHZ256rr = 13093,
+ VMINCPHZ256rrk = 13094,
+ VMINCPHZ256rrkz = 13095,
+ VMINCPHZrm = 13096,
+ VMINCPHZrmb = 13097,
+ VMINCPHZrmbk = 13098,
+ VMINCPHZrmbkz = 13099,
+ VMINCPHZrmk = 13100,
+ VMINCPHZrmkz = 13101,
+ VMINCPHZrr = 13102,
+ VMINCPHZrrk = 13103,
+ VMINCPHZrrkz = 13104,
+ VMINCPSYrm = 13105,
+ VMINCPSYrr = 13106,
+ VMINCPSZ128rm = 13107,
+ VMINCPSZ128rmb = 13108,
+ VMINCPSZ128rmbk = 13109,
+ VMINCPSZ128rmbkz = 13110,
+ VMINCPSZ128rmk = 13111,
+ VMINCPSZ128rmkz = 13112,
+ VMINCPSZ128rr = 13113,
+ VMINCPSZ128rrk = 13114,
+ VMINCPSZ128rrkz = 13115,
+ VMINCPSZ256rm = 13116,
+ VMINCPSZ256rmb = 13117,
+ VMINCPSZ256rmbk = 13118,
+ VMINCPSZ256rmbkz = 13119,
+ VMINCPSZ256rmk = 13120,
+ VMINCPSZ256rmkz = 13121,
+ VMINCPSZ256rr = 13122,
+ VMINCPSZ256rrk = 13123,
+ VMINCPSZ256rrkz = 13124,
+ VMINCPSZrm = 13125,
+ VMINCPSZrmb = 13126,
+ VMINCPSZrmbk = 13127,
+ VMINCPSZrmbkz = 13128,
+ VMINCPSZrmk = 13129,
+ VMINCPSZrmkz = 13130,
+ VMINCPSZrr = 13131,
+ VMINCPSZrrk = 13132,
+ VMINCPSZrrkz = 13133,
+ VMINCPSrm = 13134,
+ VMINCPSrr = 13135,
+ VMINCSDZrm = 13136,
+ VMINCSDZrr = 13137,
+ VMINCSDrm = 13138,
+ VMINCSDrr = 13139,
+ VMINCSHZrm = 13140,
+ VMINCSHZrr = 13141,
+ VMINCSSZrm = 13142,
+ VMINCSSZrr = 13143,
+ VMINCSSrm = 13144,
+ VMINCSSrr = 13145,
+ VMINMAXBF16Z128rmbi = 13146,
+ VMINMAXBF16Z128rmbik = 13147,
+ VMINMAXBF16Z128rmbikz = 13148,
+ VMINMAXBF16Z128rmi = 13149,
+ VMINMAXBF16Z128rmik = 13150,
+ VMINMAXBF16Z128rmikz = 13151,
+ VMINMAXBF16Z128rri = 13152,
+ VMINMAXBF16Z128rrik = 13153,
+ VMINMAXBF16Z128rrikz = 13154,
+ VMINMAXBF16Z256rmbi = 13155,
+ VMINMAXBF16Z256rmbik = 13156,
+ VMINMAXBF16Z256rmbikz = 13157,
+ VMINMAXBF16Z256rmi = 13158,
+ VMINMAXBF16Z256rmik = 13159,
+ VMINMAXBF16Z256rmikz = 13160,
+ VMINMAXBF16Z256rri = 13161,
+ VMINMAXBF16Z256rrik = 13162,
+ VMINMAXBF16Z256rrikz = 13163,
+ VMINMAXBF16Zrmbi = 13164,
+ VMINMAXBF16Zrmbik = 13165,
+ VMINMAXBF16Zrmbikz = 13166,
+ VMINMAXBF16Zrmi = 13167,
+ VMINMAXBF16Zrmik = 13168,
+ VMINMAXBF16Zrmikz = 13169,
+ VMINMAXBF16Zrri = 13170,
+ VMINMAXBF16Zrrik = 13171,
+ VMINMAXBF16Zrrikz = 13172,
+ VMINMAXPDZ128rmbi = 13173,
+ VMINMAXPDZ128rmbik = 13174,
+ VMINMAXPDZ128rmbikz = 13175,
+ VMINMAXPDZ128rmi = 13176,
+ VMINMAXPDZ128rmik = 13177,
+ VMINMAXPDZ128rmikz = 13178,
+ VMINMAXPDZ128rri = 13179,
+ VMINMAXPDZ128rrik = 13180,
+ VMINMAXPDZ128rrikz = 13181,
+ VMINMAXPDZ256rmbi = 13182,
+ VMINMAXPDZ256rmbik = 13183,
+ VMINMAXPDZ256rmbikz = 13184,
+ VMINMAXPDZ256rmi = 13185,
+ VMINMAXPDZ256rmik = 13186,
+ VMINMAXPDZ256rmikz = 13187,
+ VMINMAXPDZ256rri = 13188,
+ VMINMAXPDZ256rrik = 13189,
+ VMINMAXPDZ256rrikz = 13190,
+ VMINMAXPDZrmbi = 13191,
+ VMINMAXPDZrmbik = 13192,
+ VMINMAXPDZrmbikz = 13193,
+ VMINMAXPDZrmi = 13194,
+ VMINMAXPDZrmik = 13195,
+ VMINMAXPDZrmikz = 13196,
+ VMINMAXPDZrri = 13197,
+ VMINMAXPDZrrib = 13198,
+ VMINMAXPDZrribk = 13199,
+ VMINMAXPDZrribkz = 13200,
+ VMINMAXPDZrrik = 13201,
+ VMINMAXPDZrrikz = 13202,
+ VMINMAXPHZ128rmbi = 13203,
+ VMINMAXPHZ128rmbik = 13204,
+ VMINMAXPHZ128rmbikz = 13205,
+ VMINMAXPHZ128rmi = 13206,
+ VMINMAXPHZ128rmik = 13207,
+ VMINMAXPHZ128rmikz = 13208,
+ VMINMAXPHZ128rri = 13209,
+ VMINMAXPHZ128rrik = 13210,
+ VMINMAXPHZ128rrikz = 13211,
+ VMINMAXPHZ256rmbi = 13212,
+ VMINMAXPHZ256rmbik = 13213,
+ VMINMAXPHZ256rmbikz = 13214,
+ VMINMAXPHZ256rmi = 13215,
+ VMINMAXPHZ256rmik = 13216,
+ VMINMAXPHZ256rmikz = 13217,
+ VMINMAXPHZ256rri = 13218,
+ VMINMAXPHZ256rrik = 13219,
+ VMINMAXPHZ256rrikz = 13220,
+ VMINMAXPHZrmbi = 13221,
+ VMINMAXPHZrmbik = 13222,
+ VMINMAXPHZrmbikz = 13223,
+ VMINMAXPHZrmi = 13224,
+ VMINMAXPHZrmik = 13225,
+ VMINMAXPHZrmikz = 13226,
+ VMINMAXPHZrri = 13227,
+ VMINMAXPHZrrib = 13228,
+ VMINMAXPHZrribk = 13229,
+ VMINMAXPHZrribkz = 13230,
+ VMINMAXPHZrrik = 13231,
+ VMINMAXPHZrrikz = 13232,
+ VMINMAXPSZ128rmbi = 13233,
+ VMINMAXPSZ128rmbik = 13234,
+ VMINMAXPSZ128rmbikz = 13235,
+ VMINMAXPSZ128rmi = 13236,
+ VMINMAXPSZ128rmik = 13237,
+ VMINMAXPSZ128rmikz = 13238,
+ VMINMAXPSZ128rri = 13239,
+ VMINMAXPSZ128rrik = 13240,
+ VMINMAXPSZ128rrikz = 13241,
+ VMINMAXPSZ256rmbi = 13242,
+ VMINMAXPSZ256rmbik = 13243,
+ VMINMAXPSZ256rmbikz = 13244,
+ VMINMAXPSZ256rmi = 13245,
+ VMINMAXPSZ256rmik = 13246,
+ VMINMAXPSZ256rmikz = 13247,
+ VMINMAXPSZ256rri = 13248,
+ VMINMAXPSZ256rrik = 13249,
+ VMINMAXPSZ256rrikz = 13250,
+ VMINMAXPSZrmbi = 13251,
+ VMINMAXPSZrmbik = 13252,
+ VMINMAXPSZrmbikz = 13253,
+ VMINMAXPSZrmi = 13254,
+ VMINMAXPSZrmik = 13255,
+ VMINMAXPSZrmikz = 13256,
+ VMINMAXPSZrri = 13257,
+ VMINMAXPSZrrib = 13258,
+ VMINMAXPSZrribk = 13259,
+ VMINMAXPSZrribkz = 13260,
+ VMINMAXPSZrrik = 13261,
+ VMINMAXPSZrrikz = 13262,
+ VMINMAXSDrmi = 13263,
+ VMINMAXSDrmi_Int = 13264,
+ VMINMAXSDrmik_Int = 13265,
+ VMINMAXSDrmikz_Int = 13266,
+ VMINMAXSDrri = 13267,
+ VMINMAXSDrri_Int = 13268,
+ VMINMAXSDrrib_Int = 13269,
+ VMINMAXSDrribk_Int = 13270,
+ VMINMAXSDrribkz_Int = 13271,
+ VMINMAXSDrrik_Int = 13272,
+ VMINMAXSDrrikz_Int = 13273,
+ VMINMAXSHrmi = 13274,
+ VMINMAXSHrmi_Int = 13275,
+ VMINMAXSHrmik_Int = 13276,
+ VMINMAXSHrmikz_Int = 13277,
+ VMINMAXSHrri = 13278,
+ VMINMAXSHrri_Int = 13279,
+ VMINMAXSHrrib_Int = 13280,
+ VMINMAXSHrribk_Int = 13281,
+ VMINMAXSHrribkz_Int = 13282,
+ VMINMAXSHrrik_Int = 13283,
+ VMINMAXSHrrikz_Int = 13284,
+ VMINMAXSSrmi = 13285,
+ VMINMAXSSrmi_Int = 13286,
+ VMINMAXSSrmik_Int = 13287,
+ VMINMAXSSrmikz_Int = 13288,
+ VMINMAXSSrri = 13289,
+ VMINMAXSSrri_Int = 13290,
+ VMINMAXSSrrib_Int = 13291,
+ VMINMAXSSrribk_Int = 13292,
+ VMINMAXSSrribkz_Int = 13293,
+ VMINMAXSSrrik_Int = 13294,
+ VMINMAXSSrrikz_Int = 13295,
+ VMINPDYrm = 13296,
+ VMINPDYrr = 13297,
+ VMINPDZ128rm = 13298,
+ VMINPDZ128rmb = 13299,
+ VMINPDZ128rmbk = 13300,
+ VMINPDZ128rmbkz = 13301,
+ VMINPDZ128rmk = 13302,
+ VMINPDZ128rmkz = 13303,
+ VMINPDZ128rr = 13304,
+ VMINPDZ128rrk = 13305,
+ VMINPDZ128rrkz = 13306,
+ VMINPDZ256rm = 13307,
+ VMINPDZ256rmb = 13308,
+ VMINPDZ256rmbk = 13309,
+ VMINPDZ256rmbkz = 13310,
+ VMINPDZ256rmk = 13311,
+ VMINPDZ256rmkz = 13312,
+ VMINPDZ256rr = 13313,
+ VMINPDZ256rrk = 13314,
+ VMINPDZ256rrkz = 13315,
+ VMINPDZrm = 13316,
+ VMINPDZrmb = 13317,
+ VMINPDZrmbk = 13318,
+ VMINPDZrmbkz = 13319,
+ VMINPDZrmk = 13320,
+ VMINPDZrmkz = 13321,
+ VMINPDZrr = 13322,
+ VMINPDZrrb = 13323,
+ VMINPDZrrbk = 13324,
+ VMINPDZrrbkz = 13325,
+ VMINPDZrrk = 13326,
+ VMINPDZrrkz = 13327,
+ VMINPDrm = 13328,
+ VMINPDrr = 13329,
+ VMINPHZ128rm = 13330,
+ VMINPHZ128rmb = 13331,
+ VMINPHZ128rmbk = 13332,
+ VMINPHZ128rmbkz = 13333,
+ VMINPHZ128rmk = 13334,
+ VMINPHZ128rmkz = 13335,
+ VMINPHZ128rr = 13336,
+ VMINPHZ128rrk = 13337,
+ VMINPHZ128rrkz = 13338,
+ VMINPHZ256rm = 13339,
+ VMINPHZ256rmb = 13340,
+ VMINPHZ256rmbk = 13341,
+ VMINPHZ256rmbkz = 13342,
+ VMINPHZ256rmk = 13343,
+ VMINPHZ256rmkz = 13344,
+ VMINPHZ256rr = 13345,
+ VMINPHZ256rrk = 13346,
+ VMINPHZ256rrkz = 13347,
+ VMINPHZrm = 13348,
+ VMINPHZrmb = 13349,
+ VMINPHZrmbk = 13350,
+ VMINPHZrmbkz = 13351,
+ VMINPHZrmk = 13352,
+ VMINPHZrmkz = 13353,
+ VMINPHZrr = 13354,
+ VMINPHZrrb = 13355,
+ VMINPHZrrbk = 13356,
+ VMINPHZrrbkz = 13357,
+ VMINPHZrrk = 13358,
+ VMINPHZrrkz = 13359,
+ VMINPSYrm = 13360,
+ VMINPSYrr = 13361,
+ VMINPSZ128rm = 13362,
+ VMINPSZ128rmb = 13363,
+ VMINPSZ128rmbk = 13364,
+ VMINPSZ128rmbkz = 13365,
+ VMINPSZ128rmk = 13366,
+ VMINPSZ128rmkz = 13367,
+ VMINPSZ128rr = 13368,
+ VMINPSZ128rrk = 13369,
+ VMINPSZ128rrkz = 13370,
+ VMINPSZ256rm = 13371,
+ VMINPSZ256rmb = 13372,
+ VMINPSZ256rmbk = 13373,
+ VMINPSZ256rmbkz = 13374,
+ VMINPSZ256rmk = 13375,
+ VMINPSZ256rmkz = 13376,
+ VMINPSZ256rr = 13377,
+ VMINPSZ256rrk = 13378,
+ VMINPSZ256rrkz = 13379,
+ VMINPSZrm = 13380,
+ VMINPSZrmb = 13381,
+ VMINPSZrmbk = 13382,
+ VMINPSZrmbkz = 13383,
+ VMINPSZrmk = 13384,
+ VMINPSZrmkz = 13385,
+ VMINPSZrr = 13386,
+ VMINPSZrrb = 13387,
+ VMINPSZrrbk = 13388,
+ VMINPSZrrbkz = 13389,
+ VMINPSZrrk = 13390,
+ VMINPSZrrkz = 13391,
+ VMINPSrm = 13392,
+ VMINPSrr = 13393,
+ VMINSDZrm = 13394,
+ VMINSDZrm_Int = 13395,
+ VMINSDZrmk_Int = 13396,
+ VMINSDZrmkz_Int = 13397,
+ VMINSDZrr = 13398,
+ VMINSDZrr_Int = 13399,
+ VMINSDZrrb_Int = 13400,
+ VMINSDZrrbk_Int = 13401,
+ VMINSDZrrbkz_Int = 13402,
+ VMINSDZrrk_Int = 13403,
+ VMINSDZrrkz_Int = 13404,
+ VMINSDrm = 13405,
+ VMINSDrm_Int = 13406,
+ VMINSDrr = 13407,
+ VMINSDrr_Int = 13408,
+ VMINSHZrm = 13409,
+ VMINSHZrm_Int = 13410,
+ VMINSHZrmk_Int = 13411,
+ VMINSHZrmkz_Int = 13412,
+ VMINSHZrr = 13413,
+ VMINSHZrr_Int = 13414,
+ VMINSHZrrb_Int = 13415,
+ VMINSHZrrbk_Int = 13416,
+ VMINSHZrrbkz_Int = 13417,
+ VMINSHZrrk_Int = 13418,
+ VMINSHZrrkz_Int = 13419,
+ VMINSSZrm = 13420,
+ VMINSSZrm_Int = 13421,
+ VMINSSZrmk_Int = 13422,
+ VMINSSZrmkz_Int = 13423,
+ VMINSSZrr = 13424,
+ VMINSSZrr_Int = 13425,
+ VMINSSZrrb_Int = 13426,
+ VMINSSZrrbk_Int = 13427,
+ VMINSSZrrbkz_Int = 13428,
+ VMINSSZrrk_Int = 13429,
+ VMINSSZrrkz_Int = 13430,
+ VMINSSrm = 13431,
+ VMINSSrm_Int = 13432,
+ VMINSSrr = 13433,
+ VMINSSrr_Int = 13434,
+ VMLAUNCH = 13435,
+ VMLOAD32 = 13436,
+ VMLOAD64 = 13437,
+ VMMCALL = 13438,
+ VMOV64toPQIZrm = 13439,
+ VMOV64toPQIZrr = 13440,
+ VMOV64toPQIrm = 13441,
+ VMOV64toPQIrr = 13442,
+ VMOV64toSDZrr = 13443,
+ VMOV64toSDrr = 13444,
+ VMOVAPDYmr = 13445,
+ VMOVAPDYrm = 13446,
+ VMOVAPDYrr = 13447,
+ VMOVAPDYrr_REV = 13448,
+ VMOVAPDZ128mr = 13449,
+ VMOVAPDZ128mrk = 13450,
+ VMOVAPDZ128rm = 13451,
+ VMOVAPDZ128rmk = 13452,
+ VMOVAPDZ128rmkz = 13453,
+ VMOVAPDZ128rr = 13454,
+ VMOVAPDZ128rr_REV = 13455,
+ VMOVAPDZ128rrk = 13456,
+ VMOVAPDZ128rrk_REV = 13457,
+ VMOVAPDZ128rrkz = 13458,
+ VMOVAPDZ128rrkz_REV = 13459,
+ VMOVAPDZ256mr = 13460,
+ VMOVAPDZ256mrk = 13461,
+ VMOVAPDZ256rm = 13462,
+ VMOVAPDZ256rmk = 13463,
+ VMOVAPDZ256rmkz = 13464,
+ VMOVAPDZ256rr = 13465,
+ VMOVAPDZ256rr_REV = 13466,
+ VMOVAPDZ256rrk = 13467,
+ VMOVAPDZ256rrk_REV = 13468,
+ VMOVAPDZ256rrkz = 13469,
+ VMOVAPDZ256rrkz_REV = 13470,
+ VMOVAPDZmr = 13471,
+ VMOVAPDZmrk = 13472,
+ VMOVAPDZrm = 13473,
+ VMOVAPDZrmk = 13474,
+ VMOVAPDZrmkz = 13475,
+ VMOVAPDZrr = 13476,
+ VMOVAPDZrr_REV = 13477,
+ VMOVAPDZrrk = 13478,
+ VMOVAPDZrrk_REV = 13479,
+ VMOVAPDZrrkz = 13480,
+ VMOVAPDZrrkz_REV = 13481,
+ VMOVAPDmr = 13482,
+ VMOVAPDrm = 13483,
+ VMOVAPDrr = 13484,
+ VMOVAPDrr_REV = 13485,
+ VMOVAPSYmr = 13486,
+ VMOVAPSYrm = 13487,
+ VMOVAPSYrr = 13488,
+ VMOVAPSYrr_REV = 13489,
+ VMOVAPSZ128mr = 13490,
+ VMOVAPSZ128mrk = 13491,
+ VMOVAPSZ128rm = 13492,
+ VMOVAPSZ128rmk = 13493,
+ VMOVAPSZ128rmkz = 13494,
+ VMOVAPSZ128rr = 13495,
+ VMOVAPSZ128rr_REV = 13496,
+ VMOVAPSZ128rrk = 13497,
+ VMOVAPSZ128rrk_REV = 13498,
+ VMOVAPSZ128rrkz = 13499,
+ VMOVAPSZ128rrkz_REV = 13500,
+ VMOVAPSZ256mr = 13501,
+ VMOVAPSZ256mrk = 13502,
+ VMOVAPSZ256rm = 13503,
+ VMOVAPSZ256rmk = 13504,
+ VMOVAPSZ256rmkz = 13505,
+ VMOVAPSZ256rr = 13506,
+ VMOVAPSZ256rr_REV = 13507,
+ VMOVAPSZ256rrk = 13508,
+ VMOVAPSZ256rrk_REV = 13509,
+ VMOVAPSZ256rrkz = 13510,
+ VMOVAPSZ256rrkz_REV = 13511,
+ VMOVAPSZmr = 13512,
+ VMOVAPSZmrk = 13513,
+ VMOVAPSZrm = 13514,
+ VMOVAPSZrmk = 13515,
+ VMOVAPSZrmkz = 13516,
+ VMOVAPSZrr = 13517,
+ VMOVAPSZrr_REV = 13518,
+ VMOVAPSZrrk = 13519,
+ VMOVAPSZrrk_REV = 13520,
+ VMOVAPSZrrkz = 13521,
+ VMOVAPSZrrkz_REV = 13522,
+ VMOVAPSmr = 13523,
+ VMOVAPSrm = 13524,
+ VMOVAPSrr = 13525,
+ VMOVAPSrr_REV = 13526,
+ VMOVDDUPYrm = 13527,
+ VMOVDDUPYrr = 13528,
+ VMOVDDUPZ128rm = 13529,
+ VMOVDDUPZ128rmk = 13530,
+ VMOVDDUPZ128rmkz = 13531,
+ VMOVDDUPZ128rr = 13532,
+ VMOVDDUPZ128rrk = 13533,
+ VMOVDDUPZ128rrkz = 13534,
+ VMOVDDUPZ256rm = 13535,
+ VMOVDDUPZ256rmk = 13536,
+ VMOVDDUPZ256rmkz = 13537,
+ VMOVDDUPZ256rr = 13538,
+ VMOVDDUPZ256rrk = 13539,
+ VMOVDDUPZ256rrkz = 13540,
+ VMOVDDUPZrm = 13541,
+ VMOVDDUPZrmk = 13542,
+ VMOVDDUPZrmkz = 13543,
+ VMOVDDUPZrr = 13544,
+ VMOVDDUPZrrk = 13545,
+ VMOVDDUPZrrkz = 13546,
+ VMOVDDUPrm = 13547,
+ VMOVDDUPrr = 13548,
+ VMOVDI2PDIZrm = 13549,
+ VMOVDI2PDIZrr = 13550,
+ VMOVDI2PDIrm = 13551,
+ VMOVDI2PDIrr = 13552,
+ VMOVDI2SSZrr = 13553,
+ VMOVDI2SSrr = 13554,
+ VMOVDQA32Z128mr = 13555,
+ VMOVDQA32Z128mrk = 13556,
+ VMOVDQA32Z128rm = 13557,
+ VMOVDQA32Z128rmk = 13558,
+ VMOVDQA32Z128rmkz = 13559,
+ VMOVDQA32Z128rr = 13560,
+ VMOVDQA32Z128rr_REV = 13561,
+ VMOVDQA32Z128rrk = 13562,
+ VMOVDQA32Z128rrk_REV = 13563,
+ VMOVDQA32Z128rrkz = 13564,
+ VMOVDQA32Z128rrkz_REV = 13565,
+ VMOVDQA32Z256mr = 13566,
+ VMOVDQA32Z256mrk = 13567,
+ VMOVDQA32Z256rm = 13568,
+ VMOVDQA32Z256rmk = 13569,
+ VMOVDQA32Z256rmkz = 13570,
+ VMOVDQA32Z256rr = 13571,
+ VMOVDQA32Z256rr_REV = 13572,
+ VMOVDQA32Z256rrk = 13573,
+ VMOVDQA32Z256rrk_REV = 13574,
+ VMOVDQA32Z256rrkz = 13575,
+ VMOVDQA32Z256rrkz_REV = 13576,
+ VMOVDQA32Zmr = 13577,
+ VMOVDQA32Zmrk = 13578,
+ VMOVDQA32Zrm = 13579,
+ VMOVDQA32Zrmk = 13580,
+ VMOVDQA32Zrmkz = 13581,
+ VMOVDQA32Zrr = 13582,
+ VMOVDQA32Zrr_REV = 13583,
+ VMOVDQA32Zrrk = 13584,
+ VMOVDQA32Zrrk_REV = 13585,
+ VMOVDQA32Zrrkz = 13586,
+ VMOVDQA32Zrrkz_REV = 13587,
+ VMOVDQA64Z128mr = 13588,
+ VMOVDQA64Z128mrk = 13589,
+ VMOVDQA64Z128rm = 13590,
+ VMOVDQA64Z128rmk = 13591,
+ VMOVDQA64Z128rmkz = 13592,
+ VMOVDQA64Z128rr = 13593,
+ VMOVDQA64Z128rr_REV = 13594,
+ VMOVDQA64Z128rrk = 13595,
+ VMOVDQA64Z128rrk_REV = 13596,
+ VMOVDQA64Z128rrkz = 13597,
+ VMOVDQA64Z128rrkz_REV = 13598,
+ VMOVDQA64Z256mr = 13599,
+ VMOVDQA64Z256mrk = 13600,
+ VMOVDQA64Z256rm = 13601,
+ VMOVDQA64Z256rmk = 13602,
+ VMOVDQA64Z256rmkz = 13603,
+ VMOVDQA64Z256rr = 13604,
+ VMOVDQA64Z256rr_REV = 13605,
+ VMOVDQA64Z256rrk = 13606,
+ VMOVDQA64Z256rrk_REV = 13607,
+ VMOVDQA64Z256rrkz = 13608,
+ VMOVDQA64Z256rrkz_REV = 13609,
+ VMOVDQA64Zmr = 13610,
+ VMOVDQA64Zmrk = 13611,
+ VMOVDQA64Zrm = 13612,
+ VMOVDQA64Zrmk = 13613,
+ VMOVDQA64Zrmkz = 13614,
+ VMOVDQA64Zrr = 13615,
+ VMOVDQA64Zrr_REV = 13616,
+ VMOVDQA64Zrrk = 13617,
+ VMOVDQA64Zrrk_REV = 13618,
+ VMOVDQA64Zrrkz = 13619,
+ VMOVDQA64Zrrkz_REV = 13620,
+ VMOVDQAYmr = 13621,
+ VMOVDQAYrm = 13622,
+ VMOVDQAYrr = 13623,
+ VMOVDQAYrr_REV = 13624,
+ VMOVDQAmr = 13625,
+ VMOVDQArm = 13626,
+ VMOVDQArr = 13627,
+ VMOVDQArr_REV = 13628,
+ VMOVDQU16Z128mr = 13629,
+ VMOVDQU16Z128mrk = 13630,
+ VMOVDQU16Z128rm = 13631,
+ VMOVDQU16Z128rmk = 13632,
+ VMOVDQU16Z128rmkz = 13633,
+ VMOVDQU16Z128rr = 13634,
+ VMOVDQU16Z128rr_REV = 13635,
+ VMOVDQU16Z128rrk = 13636,
+ VMOVDQU16Z128rrk_REV = 13637,
+ VMOVDQU16Z128rrkz = 13638,
+ VMOVDQU16Z128rrkz_REV = 13639,
+ VMOVDQU16Z256mr = 13640,
+ VMOVDQU16Z256mrk = 13641,
+ VMOVDQU16Z256rm = 13642,
+ VMOVDQU16Z256rmk = 13643,
+ VMOVDQU16Z256rmkz = 13644,
+ VMOVDQU16Z256rr = 13645,
+ VMOVDQU16Z256rr_REV = 13646,
+ VMOVDQU16Z256rrk = 13647,
+ VMOVDQU16Z256rrk_REV = 13648,
+ VMOVDQU16Z256rrkz = 13649,
+ VMOVDQU16Z256rrkz_REV = 13650,
+ VMOVDQU16Zmr = 13651,
+ VMOVDQU16Zmrk = 13652,
+ VMOVDQU16Zrm = 13653,
+ VMOVDQU16Zrmk = 13654,
+ VMOVDQU16Zrmkz = 13655,
+ VMOVDQU16Zrr = 13656,
+ VMOVDQU16Zrr_REV = 13657,
+ VMOVDQU16Zrrk = 13658,
+ VMOVDQU16Zrrk_REV = 13659,
+ VMOVDQU16Zrrkz = 13660,
+ VMOVDQU16Zrrkz_REV = 13661,
+ VMOVDQU32Z128mr = 13662,
+ VMOVDQU32Z128mrk = 13663,
+ VMOVDQU32Z128rm = 13664,
+ VMOVDQU32Z128rmk = 13665,
+ VMOVDQU32Z128rmkz = 13666,
+ VMOVDQU32Z128rr = 13667,
+ VMOVDQU32Z128rr_REV = 13668,
+ VMOVDQU32Z128rrk = 13669,
+ VMOVDQU32Z128rrk_REV = 13670,
+ VMOVDQU32Z128rrkz = 13671,
+ VMOVDQU32Z128rrkz_REV = 13672,
+ VMOVDQU32Z256mr = 13673,
+ VMOVDQU32Z256mrk = 13674,
+ VMOVDQU32Z256rm = 13675,
+ VMOVDQU32Z256rmk = 13676,
+ VMOVDQU32Z256rmkz = 13677,
+ VMOVDQU32Z256rr = 13678,
+ VMOVDQU32Z256rr_REV = 13679,
+ VMOVDQU32Z256rrk = 13680,
+ VMOVDQU32Z256rrk_REV = 13681,
+ VMOVDQU32Z256rrkz = 13682,
+ VMOVDQU32Z256rrkz_REV = 13683,
+ VMOVDQU32Zmr = 13684,
+ VMOVDQU32Zmrk = 13685,
+ VMOVDQU32Zrm = 13686,
+ VMOVDQU32Zrmk = 13687,
+ VMOVDQU32Zrmkz = 13688,
+ VMOVDQU32Zrr = 13689,
+ VMOVDQU32Zrr_REV = 13690,
+ VMOVDQU32Zrrk = 13691,
+ VMOVDQU32Zrrk_REV = 13692,
+ VMOVDQU32Zrrkz = 13693,
+ VMOVDQU32Zrrkz_REV = 13694,
+ VMOVDQU64Z128mr = 13695,
+ VMOVDQU64Z128mrk = 13696,
+ VMOVDQU64Z128rm = 13697,
+ VMOVDQU64Z128rmk = 13698,
+ VMOVDQU64Z128rmkz = 13699,
+ VMOVDQU64Z128rr = 13700,
+ VMOVDQU64Z128rr_REV = 13701,
+ VMOVDQU64Z128rrk = 13702,
+ VMOVDQU64Z128rrk_REV = 13703,
+ VMOVDQU64Z128rrkz = 13704,
+ VMOVDQU64Z128rrkz_REV = 13705,
+ VMOVDQU64Z256mr = 13706,
+ VMOVDQU64Z256mrk = 13707,
+ VMOVDQU64Z256rm = 13708,
+ VMOVDQU64Z256rmk = 13709,
+ VMOVDQU64Z256rmkz = 13710,
+ VMOVDQU64Z256rr = 13711,
+ VMOVDQU64Z256rr_REV = 13712,
+ VMOVDQU64Z256rrk = 13713,
+ VMOVDQU64Z256rrk_REV = 13714,
+ VMOVDQU64Z256rrkz = 13715,
+ VMOVDQU64Z256rrkz_REV = 13716,
+ VMOVDQU64Zmr = 13717,
+ VMOVDQU64Zmrk = 13718,
+ VMOVDQU64Zrm = 13719,
+ VMOVDQU64Zrmk = 13720,
+ VMOVDQU64Zrmkz = 13721,
+ VMOVDQU64Zrr = 13722,
+ VMOVDQU64Zrr_REV = 13723,
+ VMOVDQU64Zrrk = 13724,
+ VMOVDQU64Zrrk_REV = 13725,
+ VMOVDQU64Zrrkz = 13726,
+ VMOVDQU64Zrrkz_REV = 13727,
+ VMOVDQU8Z128mr = 13728,
+ VMOVDQU8Z128mrk = 13729,
+ VMOVDQU8Z128rm = 13730,
+ VMOVDQU8Z128rmk = 13731,
+ VMOVDQU8Z128rmkz = 13732,
+ VMOVDQU8Z128rr = 13733,
+ VMOVDQU8Z128rr_REV = 13734,
+ VMOVDQU8Z128rrk = 13735,
+ VMOVDQU8Z128rrk_REV = 13736,
+ VMOVDQU8Z128rrkz = 13737,
+ VMOVDQU8Z128rrkz_REV = 13738,
+ VMOVDQU8Z256mr = 13739,
+ VMOVDQU8Z256mrk = 13740,
+ VMOVDQU8Z256rm = 13741,
+ VMOVDQU8Z256rmk = 13742,
+ VMOVDQU8Z256rmkz = 13743,
+ VMOVDQU8Z256rr = 13744,
+ VMOVDQU8Z256rr_REV = 13745,
+ VMOVDQU8Z256rrk = 13746,
+ VMOVDQU8Z256rrk_REV = 13747,
+ VMOVDQU8Z256rrkz = 13748,
+ VMOVDQU8Z256rrkz_REV = 13749,
+ VMOVDQU8Zmr = 13750,
+ VMOVDQU8Zmrk = 13751,
+ VMOVDQU8Zrm = 13752,
+ VMOVDQU8Zrmk = 13753,
+ VMOVDQU8Zrmkz = 13754,
+ VMOVDQU8Zrr = 13755,
+ VMOVDQU8Zrr_REV = 13756,
+ VMOVDQU8Zrrk = 13757,
+ VMOVDQU8Zrrk_REV = 13758,
+ VMOVDQU8Zrrkz = 13759,
+ VMOVDQU8Zrrkz_REV = 13760,
+ VMOVDQUYmr = 13761,
+ VMOVDQUYrm = 13762,
+ VMOVDQUYrr = 13763,
+ VMOVDQUYrr_REV = 13764,
+ VMOVDQUmr = 13765,
+ VMOVDQUrm = 13766,
+ VMOVDQUrr = 13767,
+ VMOVDQUrr_REV = 13768,
+ VMOVHLPSZrr = 13769,
+ VMOVHLPSrr = 13770,
+ VMOVHPDZ128mr = 13771,
+ VMOVHPDZ128rm = 13772,
+ VMOVHPDmr = 13773,
+ VMOVHPDrm = 13774,
+ VMOVHPSZ128mr = 13775,
+ VMOVHPSZ128rm = 13776,
+ VMOVHPSmr = 13777,
+ VMOVHPSrm = 13778,
+ VMOVLHPSZrr = 13779,
+ VMOVLHPSrr = 13780,
+ VMOVLPDZ128mr = 13781,
+ VMOVLPDZ128rm = 13782,
+ VMOVLPDmr = 13783,
+ VMOVLPDrm = 13784,
+ VMOVLPSZ128mr = 13785,
+ VMOVLPSZ128rm = 13786,
+ VMOVLPSmr = 13787,
+ VMOVLPSrm = 13788,
+ VMOVMSKPDYrr = 13789,
+ VMOVMSKPDrr = 13790,
+ VMOVMSKPSYrr = 13791,
+ VMOVMSKPSrr = 13792,
+ VMOVNTDQAYrm = 13793,
+ VMOVNTDQAZ128rm = 13794,
+ VMOVNTDQAZ256rm = 13795,
+ VMOVNTDQAZrm = 13796,
+ VMOVNTDQArm = 13797,
+ VMOVNTDQYmr = 13798,
+ VMOVNTDQZ128mr = 13799,
+ VMOVNTDQZ256mr = 13800,
+ VMOVNTDQZmr = 13801,
+ VMOVNTDQmr = 13802,
+ VMOVNTPDYmr = 13803,
+ VMOVNTPDZ128mr = 13804,
+ VMOVNTPDZ256mr = 13805,
+ VMOVNTPDZmr = 13806,
+ VMOVNTPDmr = 13807,
+ VMOVNTPSYmr = 13808,
+ VMOVNTPSZ128mr = 13809,
+ VMOVNTPSZ256mr = 13810,
+ VMOVNTPSZmr = 13811,
+ VMOVNTPSmr = 13812,
+ VMOVPDI2DIZmr = 13813,
+ VMOVPDI2DIZrr = 13814,
+ VMOVPDI2DImr = 13815,
+ VMOVPDI2DIrr = 13816,
+ VMOVPQI2QIZmr = 13817,
+ VMOVPQI2QIZrr = 13818,
+ VMOVPQI2QImr = 13819,
+ VMOVPQI2QIrr = 13820,
+ VMOVPQIto64Zmr = 13821,
+ VMOVPQIto64Zrr = 13822,
+ VMOVPQIto64mr = 13823,
+ VMOVPQIto64rr = 13824,
+ VMOVQI2PQIZrm = 13825,
+ VMOVQI2PQIrm = 13826,
+ VMOVRSBZ128m = 13827,
+ VMOVRSBZ128mk = 13828,
+ VMOVRSBZ128mkz = 13829,
+ VMOVRSBZ256m = 13830,
+ VMOVRSBZ256mk = 13831,
+ VMOVRSBZ256mkz = 13832,
+ VMOVRSBZm = 13833,
+ VMOVRSBZmk = 13834,
+ VMOVRSBZmkz = 13835,
+ VMOVRSDZ128m = 13836,
+ VMOVRSDZ128mk = 13837,
+ VMOVRSDZ128mkz = 13838,
+ VMOVRSDZ256m = 13839,
+ VMOVRSDZ256mk = 13840,
+ VMOVRSDZ256mkz = 13841,
+ VMOVRSDZm = 13842,
+ VMOVRSDZmk = 13843,
+ VMOVRSDZmkz = 13844,
+ VMOVRSQZ128m = 13845,
+ VMOVRSQZ128mk = 13846,
+ VMOVRSQZ128mkz = 13847,
+ VMOVRSQZ256m = 13848,
+ VMOVRSQZ256mk = 13849,
+ VMOVRSQZ256mkz = 13850,
+ VMOVRSQZm = 13851,
+ VMOVRSQZmk = 13852,
+ VMOVRSQZmkz = 13853,
+ VMOVRSWZ128m = 13854,
+ VMOVRSWZ128mk = 13855,
+ VMOVRSWZ128mkz = 13856,
+ VMOVRSWZ256m = 13857,
+ VMOVRSWZ256mk = 13858,
+ VMOVRSWZ256mkz = 13859,
+ VMOVRSWZm = 13860,
+ VMOVRSWZmk = 13861,
+ VMOVRSWZmkz = 13862,
+ VMOVSDZmr = 13863,
+ VMOVSDZmrk = 13864,
+ VMOVSDZrm = 13865,
+ VMOVSDZrm_alt = 13866,
+ VMOVSDZrmk = 13867,
+ VMOVSDZrmkz = 13868,
+ VMOVSDZrr = 13869,
+ VMOVSDZrr_REV = 13870,
+ VMOVSDZrrk = 13871,
+ VMOVSDZrrk_REV = 13872,
+ VMOVSDZrrkz = 13873,
+ VMOVSDZrrkz_REV = 13874,
+ VMOVSDmr = 13875,
+ VMOVSDrm = 13876,
+ VMOVSDrm_alt = 13877,
+ VMOVSDrr = 13878,
+ VMOVSDrr_REV = 13879,
+ VMOVSDto64Zrr = 13880,
+ VMOVSDto64rr = 13881,
+ VMOVSH2Wrr = 13882,
+ VMOVSHDUPYrm = 13883,
+ VMOVSHDUPYrr = 13884,
+ VMOVSHDUPZ128rm = 13885,
+ VMOVSHDUPZ128rmk = 13886,
+ VMOVSHDUPZ128rmkz = 13887,
+ VMOVSHDUPZ128rr = 13888,
+ VMOVSHDUPZ128rrk = 13889,
+ VMOVSHDUPZ128rrkz = 13890,
+ VMOVSHDUPZ256rm = 13891,
+ VMOVSHDUPZ256rmk = 13892,
+ VMOVSHDUPZ256rmkz = 13893,
+ VMOVSHDUPZ256rr = 13894,
+ VMOVSHDUPZ256rrk = 13895,
+ VMOVSHDUPZ256rrkz = 13896,
+ VMOVSHDUPZrm = 13897,
+ VMOVSHDUPZrmk = 13898,
+ VMOVSHDUPZrmkz = 13899,
+ VMOVSHDUPZrr = 13900,
+ VMOVSHDUPZrrk = 13901,
+ VMOVSHDUPZrrkz = 13902,
+ VMOVSHDUPrm = 13903,
+ VMOVSHDUPrr = 13904,
+ VMOVSHZmr = 13905,
+ VMOVSHZmrk = 13906,
+ VMOVSHZrm = 13907,
+ VMOVSHZrm_alt = 13908,
+ VMOVSHZrmk = 13909,
+ VMOVSHZrmkz = 13910,
+ VMOVSHZrr = 13911,
+ VMOVSHZrr_REV = 13912,
+ VMOVSHZrrk = 13913,
+ VMOVSHZrrk_REV = 13914,
+ VMOVSHZrrkz = 13915,
+ VMOVSHZrrkz_REV = 13916,
+ VMOVSHtoW64rr = 13917,
+ VMOVSLDUPYrm = 13918,
+ VMOVSLDUPYrr = 13919,
+ VMOVSLDUPZ128rm = 13920,
+ VMOVSLDUPZ128rmk = 13921,
+ VMOVSLDUPZ128rmkz = 13922,
+ VMOVSLDUPZ128rr = 13923,
+ VMOVSLDUPZ128rrk = 13924,
+ VMOVSLDUPZ128rrkz = 13925,
+ VMOVSLDUPZ256rm = 13926,
+ VMOVSLDUPZ256rmk = 13927,
+ VMOVSLDUPZ256rmkz = 13928,
+ VMOVSLDUPZ256rr = 13929,
+ VMOVSLDUPZ256rrk = 13930,
+ VMOVSLDUPZ256rrkz = 13931,
+ VMOVSLDUPZrm = 13932,
+ VMOVSLDUPZrmk = 13933,
+ VMOVSLDUPZrmkz = 13934,
+ VMOVSLDUPZrr = 13935,
+ VMOVSLDUPZrrk = 13936,
+ VMOVSLDUPZrrkz = 13937,
+ VMOVSLDUPrm = 13938,
+ VMOVSLDUPrr = 13939,
+ VMOVSS2DIZrr = 13940,
+ VMOVSS2DIrr = 13941,
+ VMOVSSZmr = 13942,
+ VMOVSSZmrk = 13943,
+ VMOVSSZrm = 13944,
+ VMOVSSZrm_alt = 13945,
+ VMOVSSZrmk = 13946,
+ VMOVSSZrmkz = 13947,
+ VMOVSSZrr = 13948,
+ VMOVSSZrr_REV = 13949,
+ VMOVSSZrrk = 13950,
+ VMOVSSZrrk_REV = 13951,
+ VMOVSSZrrkz = 13952,
+ VMOVSSZrrkz_REV = 13953,
+ VMOVSSmr = 13954,
+ VMOVSSrm = 13955,
+ VMOVSSrm_alt = 13956,
+ VMOVSSrr = 13957,
+ VMOVSSrr_REV = 13958,
+ VMOVUPDYmr = 13959,
+ VMOVUPDYrm = 13960,
+ VMOVUPDYrr = 13961,
+ VMOVUPDYrr_REV = 13962,
+ VMOVUPDZ128mr = 13963,
+ VMOVUPDZ128mrk = 13964,
+ VMOVUPDZ128rm = 13965,
+ VMOVUPDZ128rmk = 13966,
+ VMOVUPDZ128rmkz = 13967,
+ VMOVUPDZ128rr = 13968,
+ VMOVUPDZ128rr_REV = 13969,
+ VMOVUPDZ128rrk = 13970,
+ VMOVUPDZ128rrk_REV = 13971,
+ VMOVUPDZ128rrkz = 13972,
+ VMOVUPDZ128rrkz_REV = 13973,
+ VMOVUPDZ256mr = 13974,
+ VMOVUPDZ256mrk = 13975,
+ VMOVUPDZ256rm = 13976,
+ VMOVUPDZ256rmk = 13977,
+ VMOVUPDZ256rmkz = 13978,
+ VMOVUPDZ256rr = 13979,
+ VMOVUPDZ256rr_REV = 13980,
+ VMOVUPDZ256rrk = 13981,
+ VMOVUPDZ256rrk_REV = 13982,
+ VMOVUPDZ256rrkz = 13983,
+ VMOVUPDZ256rrkz_REV = 13984,
+ VMOVUPDZmr = 13985,
+ VMOVUPDZmrk = 13986,
+ VMOVUPDZrm = 13987,
+ VMOVUPDZrmk = 13988,
+ VMOVUPDZrmkz = 13989,
+ VMOVUPDZrr = 13990,
+ VMOVUPDZrr_REV = 13991,
+ VMOVUPDZrrk = 13992,
+ VMOVUPDZrrk_REV = 13993,
+ VMOVUPDZrrkz = 13994,
+ VMOVUPDZrrkz_REV = 13995,
+ VMOVUPDmr = 13996,
+ VMOVUPDrm = 13997,
+ VMOVUPDrr = 13998,
+ VMOVUPDrr_REV = 13999,
+ VMOVUPSYmr = 14000,
+ VMOVUPSYrm = 14001,
+ VMOVUPSYrr = 14002,
+ VMOVUPSYrr_REV = 14003,
+ VMOVUPSZ128mr = 14004,
+ VMOVUPSZ128mrk = 14005,
+ VMOVUPSZ128rm = 14006,
+ VMOVUPSZ128rmk = 14007,
+ VMOVUPSZ128rmkz = 14008,
+ VMOVUPSZ128rr = 14009,
+ VMOVUPSZ128rr_REV = 14010,
+ VMOVUPSZ128rrk = 14011,
+ VMOVUPSZ128rrk_REV = 14012,
+ VMOVUPSZ128rrkz = 14013,
+ VMOVUPSZ128rrkz_REV = 14014,
+ VMOVUPSZ256mr = 14015,
+ VMOVUPSZ256mrk = 14016,
+ VMOVUPSZ256rm = 14017,
+ VMOVUPSZ256rmk = 14018,
+ VMOVUPSZ256rmkz = 14019,
+ VMOVUPSZ256rr = 14020,
+ VMOVUPSZ256rr_REV = 14021,
+ VMOVUPSZ256rrk = 14022,
+ VMOVUPSZ256rrk_REV = 14023,
+ VMOVUPSZ256rrkz = 14024,
+ VMOVUPSZ256rrkz_REV = 14025,
+ VMOVUPSZmr = 14026,
+ VMOVUPSZmrk = 14027,
+ VMOVUPSZrm = 14028,
+ VMOVUPSZrmk = 14029,
+ VMOVUPSZrmkz = 14030,
+ VMOVUPSZrr = 14031,
+ VMOVUPSZrr_REV = 14032,
+ VMOVUPSZrrk = 14033,
+ VMOVUPSZrrk_REV = 14034,
+ VMOVUPSZrrkz = 14035,
+ VMOVUPSZrrkz_REV = 14036,
+ VMOVUPSmr = 14037,
+ VMOVUPSrm = 14038,
+ VMOVUPSrr = 14039,
+ VMOVUPSrr_REV = 14040,
+ VMOVW2SHrr = 14041,
+ VMOVW64toSHrr = 14042,
+ VMOVWmr = 14043,
+ VMOVWrm = 14044,
+ VMOVZPDILo2PDIZmr = 14045,
+ VMOVZPDILo2PDIZrm = 14046,
+ VMOVZPDILo2PDIZrr = 14047,
+ VMOVZPDILo2PDIZrr2 = 14048,
+ VMOVZPQILo2PQIZrr = 14049,
+ VMOVZPQILo2PQIrr = 14050,
+ VMOVZPWILo2PWIZmr = 14051,
+ VMOVZPWILo2PWIZrm = 14052,
+ VMOVZPWILo2PWIZrr = 14053,
+ VMOVZPWILo2PWIZrr2 = 14054,
+ VMPSADBWYrmi = 14055,
+ VMPSADBWYrri = 14056,
+ VMPSADBWZ128rmi = 14057,
+ VMPSADBWZ128rmik = 14058,
+ VMPSADBWZ128rmikz = 14059,
+ VMPSADBWZ128rri = 14060,
+ VMPSADBWZ128rrik = 14061,
+ VMPSADBWZ128rrikz = 14062,
+ VMPSADBWZ256rmi = 14063,
+ VMPSADBWZ256rmik = 14064,
+ VMPSADBWZ256rmikz = 14065,
+ VMPSADBWZ256rri = 14066,
+ VMPSADBWZ256rrik = 14067,
+ VMPSADBWZ256rrikz = 14068,
+ VMPSADBWZrmi = 14069,
+ VMPSADBWZrmik = 14070,
+ VMPSADBWZrmikz = 14071,
+ VMPSADBWZrri = 14072,
+ VMPSADBWZrrik = 14073,
+ VMPSADBWZrrikz = 14074,
+ VMPSADBWrmi = 14075,
+ VMPSADBWrri = 14076,
+ VMPTRLDm = 14077,
+ VMPTRSTm = 14078,
+ VMREAD32mr = 14079,
+ VMREAD32rr = 14080,
+ VMREAD64mr = 14081,
+ VMREAD64rr = 14082,
+ VMRESUME = 14083,
+ VMRUN32 = 14084,
+ VMRUN64 = 14085,
+ VMSAVE32 = 14086,
+ VMSAVE64 = 14087,
+ VMULBF16Z128rm = 14088,
+ VMULBF16Z128rmb = 14089,
+ VMULBF16Z128rmbk = 14090,
+ VMULBF16Z128rmbkz = 14091,
+ VMULBF16Z128rmk = 14092,
+ VMULBF16Z128rmkz = 14093,
+ VMULBF16Z128rr = 14094,
+ VMULBF16Z128rrk = 14095,
+ VMULBF16Z128rrkz = 14096,
+ VMULBF16Z256rm = 14097,
+ VMULBF16Z256rmb = 14098,
+ VMULBF16Z256rmbk = 14099,
+ VMULBF16Z256rmbkz = 14100,
+ VMULBF16Z256rmk = 14101,
+ VMULBF16Z256rmkz = 14102,
+ VMULBF16Z256rr = 14103,
+ VMULBF16Z256rrk = 14104,
+ VMULBF16Z256rrkz = 14105,
+ VMULBF16Zrm = 14106,
+ VMULBF16Zrmb = 14107,
+ VMULBF16Zrmbk = 14108,
+ VMULBF16Zrmbkz = 14109,
+ VMULBF16Zrmk = 14110,
+ VMULBF16Zrmkz = 14111,
+ VMULBF16Zrr = 14112,
+ VMULBF16Zrrk = 14113,
+ VMULBF16Zrrkz = 14114,
+ VMULPDYrm = 14115,
+ VMULPDYrr = 14116,
+ VMULPDZ128rm = 14117,
+ VMULPDZ128rmb = 14118,
+ VMULPDZ128rmbk = 14119,
+ VMULPDZ128rmbkz = 14120,
+ VMULPDZ128rmk = 14121,
+ VMULPDZ128rmkz = 14122,
+ VMULPDZ128rr = 14123,
+ VMULPDZ128rrk = 14124,
+ VMULPDZ128rrkz = 14125,
+ VMULPDZ256rm = 14126,
+ VMULPDZ256rmb = 14127,
+ VMULPDZ256rmbk = 14128,
+ VMULPDZ256rmbkz = 14129,
+ VMULPDZ256rmk = 14130,
+ VMULPDZ256rmkz = 14131,
+ VMULPDZ256rr = 14132,
+ VMULPDZ256rrk = 14133,
+ VMULPDZ256rrkz = 14134,
+ VMULPDZrm = 14135,
+ VMULPDZrmb = 14136,
+ VMULPDZrmbk = 14137,
+ VMULPDZrmbkz = 14138,
+ VMULPDZrmk = 14139,
+ VMULPDZrmkz = 14140,
+ VMULPDZrr = 14141,
+ VMULPDZrrb = 14142,
+ VMULPDZrrbk = 14143,
+ VMULPDZrrbkz = 14144,
+ VMULPDZrrk = 14145,
+ VMULPDZrrkz = 14146,
+ VMULPDrm = 14147,
+ VMULPDrr = 14148,
+ VMULPHZ128rm = 14149,
+ VMULPHZ128rmb = 14150,
+ VMULPHZ128rmbk = 14151,
+ VMULPHZ128rmbkz = 14152,
+ VMULPHZ128rmk = 14153,
+ VMULPHZ128rmkz = 14154,
+ VMULPHZ128rr = 14155,
+ VMULPHZ128rrk = 14156,
+ VMULPHZ128rrkz = 14157,
+ VMULPHZ256rm = 14158,
+ VMULPHZ256rmb = 14159,
+ VMULPHZ256rmbk = 14160,
+ VMULPHZ256rmbkz = 14161,
+ VMULPHZ256rmk = 14162,
+ VMULPHZ256rmkz = 14163,
+ VMULPHZ256rr = 14164,
+ VMULPHZ256rrk = 14165,
+ VMULPHZ256rrkz = 14166,
+ VMULPHZrm = 14167,
+ VMULPHZrmb = 14168,
+ VMULPHZrmbk = 14169,
+ VMULPHZrmbkz = 14170,
+ VMULPHZrmk = 14171,
+ VMULPHZrmkz = 14172,
+ VMULPHZrr = 14173,
+ VMULPHZrrb = 14174,
+ VMULPHZrrbk = 14175,
+ VMULPHZrrbkz = 14176,
+ VMULPHZrrk = 14177,
+ VMULPHZrrkz = 14178,
+ VMULPSYrm = 14179,
+ VMULPSYrr = 14180,
+ VMULPSZ128rm = 14181,
+ VMULPSZ128rmb = 14182,
+ VMULPSZ128rmbk = 14183,
+ VMULPSZ128rmbkz = 14184,
+ VMULPSZ128rmk = 14185,
+ VMULPSZ128rmkz = 14186,
+ VMULPSZ128rr = 14187,
+ VMULPSZ128rrk = 14188,
+ VMULPSZ128rrkz = 14189,
+ VMULPSZ256rm = 14190,
+ VMULPSZ256rmb = 14191,
+ VMULPSZ256rmbk = 14192,
+ VMULPSZ256rmbkz = 14193,
+ VMULPSZ256rmk = 14194,
+ VMULPSZ256rmkz = 14195,
+ VMULPSZ256rr = 14196,
+ VMULPSZ256rrk = 14197,
+ VMULPSZ256rrkz = 14198,
+ VMULPSZrm = 14199,
+ VMULPSZrmb = 14200,
+ VMULPSZrmbk = 14201,
+ VMULPSZrmbkz = 14202,
+ VMULPSZrmk = 14203,
+ VMULPSZrmkz = 14204,
+ VMULPSZrr = 14205,
+ VMULPSZrrb = 14206,
+ VMULPSZrrbk = 14207,
+ VMULPSZrrbkz = 14208,
+ VMULPSZrrk = 14209,
+ VMULPSZrrkz = 14210,
+ VMULPSrm = 14211,
+ VMULPSrr = 14212,
+ VMULSDZrm = 14213,
+ VMULSDZrm_Int = 14214,
+ VMULSDZrmk_Int = 14215,
+ VMULSDZrmkz_Int = 14216,
+ VMULSDZrr = 14217,
+ VMULSDZrr_Int = 14218,
+ VMULSDZrrb_Int = 14219,
+ VMULSDZrrbk_Int = 14220,
+ VMULSDZrrbkz_Int = 14221,
+ VMULSDZrrk_Int = 14222,
+ VMULSDZrrkz_Int = 14223,
+ VMULSDrm = 14224,
+ VMULSDrm_Int = 14225,
+ VMULSDrr = 14226,
+ VMULSDrr_Int = 14227,
+ VMULSHZrm = 14228,
+ VMULSHZrm_Int = 14229,
+ VMULSHZrmk_Int = 14230,
+ VMULSHZrmkz_Int = 14231,
+ VMULSHZrr = 14232,
+ VMULSHZrr_Int = 14233,
+ VMULSHZrrb_Int = 14234,
+ VMULSHZrrbk_Int = 14235,
+ VMULSHZrrbkz_Int = 14236,
+ VMULSHZrrk_Int = 14237,
+ VMULSHZrrkz_Int = 14238,
+ VMULSSZrm = 14239,
+ VMULSSZrm_Int = 14240,
+ VMULSSZrmk_Int = 14241,
+ VMULSSZrmkz_Int = 14242,
+ VMULSSZrr = 14243,
+ VMULSSZrr_Int = 14244,
+ VMULSSZrrb_Int = 14245,
+ VMULSSZrrbk_Int = 14246,
+ VMULSSZrrbkz_Int = 14247,
+ VMULSSZrrk_Int = 14248,
+ VMULSSZrrkz_Int = 14249,
+ VMULSSrm = 14250,
+ VMULSSrm_Int = 14251,
+ VMULSSrr = 14252,
+ VMULSSrr_Int = 14253,
+ VMWRITE32rm = 14254,
+ VMWRITE32rr = 14255,
+ VMWRITE64rm = 14256,
+ VMWRITE64rr = 14257,
+ VMXOFF = 14258,
+ VMXON = 14259,
+ VORPDYrm = 14260,
+ VORPDYrr = 14261,
+ VORPDZ128rm = 14262,
+ VORPDZ128rmb = 14263,
+ VORPDZ128rmbk = 14264,
+ VORPDZ128rmbkz = 14265,
+ VORPDZ128rmk = 14266,
+ VORPDZ128rmkz = 14267,
+ VORPDZ128rr = 14268,
+ VORPDZ128rrk = 14269,
+ VORPDZ128rrkz = 14270,
+ VORPDZ256rm = 14271,
+ VORPDZ256rmb = 14272,
+ VORPDZ256rmbk = 14273,
+ VORPDZ256rmbkz = 14274,
+ VORPDZ256rmk = 14275,
+ VORPDZ256rmkz = 14276,
+ VORPDZ256rr = 14277,
+ VORPDZ256rrk = 14278,
+ VORPDZ256rrkz = 14279,
+ VORPDZrm = 14280,
+ VORPDZrmb = 14281,
+ VORPDZrmbk = 14282,
+ VORPDZrmbkz = 14283,
+ VORPDZrmk = 14284,
+ VORPDZrmkz = 14285,
+ VORPDZrr = 14286,
+ VORPDZrrk = 14287,
+ VORPDZrrkz = 14288,
+ VORPDrm = 14289,
+ VORPDrr = 14290,
+ VORPSYrm = 14291,
+ VORPSYrr = 14292,
+ VORPSZ128rm = 14293,
+ VORPSZ128rmb = 14294,
+ VORPSZ128rmbk = 14295,
+ VORPSZ128rmbkz = 14296,
+ VORPSZ128rmk = 14297,
+ VORPSZ128rmkz = 14298,
+ VORPSZ128rr = 14299,
+ VORPSZ128rrk = 14300,
+ VORPSZ128rrkz = 14301,
+ VORPSZ256rm = 14302,
+ VORPSZ256rmb = 14303,
+ VORPSZ256rmbk = 14304,
+ VORPSZ256rmbkz = 14305,
+ VORPSZ256rmk = 14306,
+ VORPSZ256rmkz = 14307,
+ VORPSZ256rr = 14308,
+ VORPSZ256rrk = 14309,
+ VORPSZ256rrkz = 14310,
+ VORPSZrm = 14311,
+ VORPSZrmb = 14312,
+ VORPSZrmbk = 14313,
+ VORPSZrmbkz = 14314,
+ VORPSZrmk = 14315,
+ VORPSZrmkz = 14316,
+ VORPSZrr = 14317,
+ VORPSZrrk = 14318,
+ VORPSZrrkz = 14319,
+ VORPSrm = 14320,
+ VORPSrr = 14321,
+ VP2INTERSECTDZ128rm = 14322,
+ VP2INTERSECTDZ128rmb = 14323,
+ VP2INTERSECTDZ128rr = 14324,
+ VP2INTERSECTDZ256rm = 14325,
+ VP2INTERSECTDZ256rmb = 14326,
+ VP2INTERSECTDZ256rr = 14327,
+ VP2INTERSECTDZrm = 14328,
+ VP2INTERSECTDZrmb = 14329,
+ VP2INTERSECTDZrr = 14330,
+ VP2INTERSECTQZ128rm = 14331,
+ VP2INTERSECTQZ128rmb = 14332,
+ VP2INTERSECTQZ128rr = 14333,
+ VP2INTERSECTQZ256rm = 14334,
+ VP2INTERSECTQZ256rmb = 14335,
+ VP2INTERSECTQZ256rr = 14336,
+ VP2INTERSECTQZrm = 14337,
+ VP2INTERSECTQZrmb = 14338,
+ VP2INTERSECTQZrr = 14339,
+ VP4DPWSSDSrm = 14340,
+ VP4DPWSSDSrmk = 14341,
+ VP4DPWSSDSrmkz = 14342,
+ VP4DPWSSDrm = 14343,
+ VP4DPWSSDrmk = 14344,
+ VP4DPWSSDrmkz = 14345,
+ VPABSBYrm = 14346,
+ VPABSBYrr = 14347,
+ VPABSBZ128rm = 14348,
+ VPABSBZ128rmk = 14349,
+ VPABSBZ128rmkz = 14350,
+ VPABSBZ128rr = 14351,
+ VPABSBZ128rrk = 14352,
+ VPABSBZ128rrkz = 14353,
+ VPABSBZ256rm = 14354,
+ VPABSBZ256rmk = 14355,
+ VPABSBZ256rmkz = 14356,
+ VPABSBZ256rr = 14357,
+ VPABSBZ256rrk = 14358,
+ VPABSBZ256rrkz = 14359,
+ VPABSBZrm = 14360,
+ VPABSBZrmk = 14361,
+ VPABSBZrmkz = 14362,
+ VPABSBZrr = 14363,
+ VPABSBZrrk = 14364,
+ VPABSBZrrkz = 14365,
+ VPABSBrm = 14366,
+ VPABSBrr = 14367,
+ VPABSDYrm = 14368,
+ VPABSDYrr = 14369,
+ VPABSDZ128rm = 14370,
+ VPABSDZ128rmb = 14371,
+ VPABSDZ128rmbk = 14372,
+ VPABSDZ128rmbkz = 14373,
+ VPABSDZ128rmk = 14374,
+ VPABSDZ128rmkz = 14375,
+ VPABSDZ128rr = 14376,
+ VPABSDZ128rrk = 14377,
+ VPABSDZ128rrkz = 14378,
+ VPABSDZ256rm = 14379,
+ VPABSDZ256rmb = 14380,
+ VPABSDZ256rmbk = 14381,
+ VPABSDZ256rmbkz = 14382,
+ VPABSDZ256rmk = 14383,
+ VPABSDZ256rmkz = 14384,
+ VPABSDZ256rr = 14385,
+ VPABSDZ256rrk = 14386,
+ VPABSDZ256rrkz = 14387,
+ VPABSDZrm = 14388,
+ VPABSDZrmb = 14389,
+ VPABSDZrmbk = 14390,
+ VPABSDZrmbkz = 14391,
+ VPABSDZrmk = 14392,
+ VPABSDZrmkz = 14393,
+ VPABSDZrr = 14394,
+ VPABSDZrrk = 14395,
+ VPABSDZrrkz = 14396,
+ VPABSDrm = 14397,
+ VPABSDrr = 14398,
+ VPABSQZ128rm = 14399,
+ VPABSQZ128rmb = 14400,
+ VPABSQZ128rmbk = 14401,
+ VPABSQZ128rmbkz = 14402,
+ VPABSQZ128rmk = 14403,
+ VPABSQZ128rmkz = 14404,
+ VPABSQZ128rr = 14405,
+ VPABSQZ128rrk = 14406,
+ VPABSQZ128rrkz = 14407,
+ VPABSQZ256rm = 14408,
+ VPABSQZ256rmb = 14409,
+ VPABSQZ256rmbk = 14410,
+ VPABSQZ256rmbkz = 14411,
+ VPABSQZ256rmk = 14412,
+ VPABSQZ256rmkz = 14413,
+ VPABSQZ256rr = 14414,
+ VPABSQZ256rrk = 14415,
+ VPABSQZ256rrkz = 14416,
+ VPABSQZrm = 14417,
+ VPABSQZrmb = 14418,
+ VPABSQZrmbk = 14419,
+ VPABSQZrmbkz = 14420,
+ VPABSQZrmk = 14421,
+ VPABSQZrmkz = 14422,
+ VPABSQZrr = 14423,
+ VPABSQZrrk = 14424,
+ VPABSQZrrkz = 14425,
+ VPABSWYrm = 14426,
+ VPABSWYrr = 14427,
+ VPABSWZ128rm = 14428,
+ VPABSWZ128rmk = 14429,
+ VPABSWZ128rmkz = 14430,
+ VPABSWZ128rr = 14431,
+ VPABSWZ128rrk = 14432,
+ VPABSWZ128rrkz = 14433,
+ VPABSWZ256rm = 14434,
+ VPABSWZ256rmk = 14435,
+ VPABSWZ256rmkz = 14436,
+ VPABSWZ256rr = 14437,
+ VPABSWZ256rrk = 14438,
+ VPABSWZ256rrkz = 14439,
+ VPABSWZrm = 14440,
+ VPABSWZrmk = 14441,
+ VPABSWZrmkz = 14442,
+ VPABSWZrr = 14443,
+ VPABSWZrrk = 14444,
+ VPABSWZrrkz = 14445,
+ VPABSWrm = 14446,
+ VPABSWrr = 14447,
+ VPACKSSDWYrm = 14448,
+ VPACKSSDWYrr = 14449,
+ VPACKSSDWZ128rm = 14450,
+ VPACKSSDWZ128rmb = 14451,
+ VPACKSSDWZ128rmbk = 14452,
+ VPACKSSDWZ128rmbkz = 14453,
+ VPACKSSDWZ128rmk = 14454,
+ VPACKSSDWZ128rmkz = 14455,
+ VPACKSSDWZ128rr = 14456,
+ VPACKSSDWZ128rrk = 14457,
+ VPACKSSDWZ128rrkz = 14458,
+ VPACKSSDWZ256rm = 14459,
+ VPACKSSDWZ256rmb = 14460,
+ VPACKSSDWZ256rmbk = 14461,
+ VPACKSSDWZ256rmbkz = 14462,
+ VPACKSSDWZ256rmk = 14463,
+ VPACKSSDWZ256rmkz = 14464,
+ VPACKSSDWZ256rr = 14465,
+ VPACKSSDWZ256rrk = 14466,
+ VPACKSSDWZ256rrkz = 14467,
+ VPACKSSDWZrm = 14468,
+ VPACKSSDWZrmb = 14469,
+ VPACKSSDWZrmbk = 14470,
+ VPACKSSDWZrmbkz = 14471,
+ VPACKSSDWZrmk = 14472,
+ VPACKSSDWZrmkz = 14473,
+ VPACKSSDWZrr = 14474,
+ VPACKSSDWZrrk = 14475,
+ VPACKSSDWZrrkz = 14476,
+ VPACKSSDWrm = 14477,
+ VPACKSSDWrr = 14478,
+ VPACKSSWBYrm = 14479,
+ VPACKSSWBYrr = 14480,
+ VPACKSSWBZ128rm = 14481,
+ VPACKSSWBZ128rmk = 14482,
+ VPACKSSWBZ128rmkz = 14483,
+ VPACKSSWBZ128rr = 14484,
+ VPACKSSWBZ128rrk = 14485,
+ VPACKSSWBZ128rrkz = 14486,
+ VPACKSSWBZ256rm = 14487,
+ VPACKSSWBZ256rmk = 14488,
+ VPACKSSWBZ256rmkz = 14489,
+ VPACKSSWBZ256rr = 14490,
+ VPACKSSWBZ256rrk = 14491,
+ VPACKSSWBZ256rrkz = 14492,
+ VPACKSSWBZrm = 14493,
+ VPACKSSWBZrmk = 14494,
+ VPACKSSWBZrmkz = 14495,
+ VPACKSSWBZrr = 14496,
+ VPACKSSWBZrrk = 14497,
+ VPACKSSWBZrrkz = 14498,
+ VPACKSSWBrm = 14499,
+ VPACKSSWBrr = 14500,
+ VPACKUSDWYrm = 14501,
+ VPACKUSDWYrr = 14502,
+ VPACKUSDWZ128rm = 14503,
+ VPACKUSDWZ128rmb = 14504,
+ VPACKUSDWZ128rmbk = 14505,
+ VPACKUSDWZ128rmbkz = 14506,
+ VPACKUSDWZ128rmk = 14507,
+ VPACKUSDWZ128rmkz = 14508,
+ VPACKUSDWZ128rr = 14509,
+ VPACKUSDWZ128rrk = 14510,
+ VPACKUSDWZ128rrkz = 14511,
+ VPACKUSDWZ256rm = 14512,
+ VPACKUSDWZ256rmb = 14513,
+ VPACKUSDWZ256rmbk = 14514,
+ VPACKUSDWZ256rmbkz = 14515,
+ VPACKUSDWZ256rmk = 14516,
+ VPACKUSDWZ256rmkz = 14517,
+ VPACKUSDWZ256rr = 14518,
+ VPACKUSDWZ256rrk = 14519,
+ VPACKUSDWZ256rrkz = 14520,
+ VPACKUSDWZrm = 14521,
+ VPACKUSDWZrmb = 14522,
+ VPACKUSDWZrmbk = 14523,
+ VPACKUSDWZrmbkz = 14524,
+ VPACKUSDWZrmk = 14525,
+ VPACKUSDWZrmkz = 14526,
+ VPACKUSDWZrr = 14527,
+ VPACKUSDWZrrk = 14528,
+ VPACKUSDWZrrkz = 14529,
+ VPACKUSDWrm = 14530,
+ VPACKUSDWrr = 14531,
+ VPACKUSWBYrm = 14532,
+ VPACKUSWBYrr = 14533,
+ VPACKUSWBZ128rm = 14534,
+ VPACKUSWBZ128rmk = 14535,
+ VPACKUSWBZ128rmkz = 14536,
+ VPACKUSWBZ128rr = 14537,
+ VPACKUSWBZ128rrk = 14538,
+ VPACKUSWBZ128rrkz = 14539,
+ VPACKUSWBZ256rm = 14540,
+ VPACKUSWBZ256rmk = 14541,
+ VPACKUSWBZ256rmkz = 14542,
+ VPACKUSWBZ256rr = 14543,
+ VPACKUSWBZ256rrk = 14544,
+ VPACKUSWBZ256rrkz = 14545,
+ VPACKUSWBZrm = 14546,
+ VPACKUSWBZrmk = 14547,
+ VPACKUSWBZrmkz = 14548,
+ VPACKUSWBZrr = 14549,
+ VPACKUSWBZrrk = 14550,
+ VPACKUSWBZrrkz = 14551,
+ VPACKUSWBrm = 14552,
+ VPACKUSWBrr = 14553,
+ VPADDBYrm = 14554,
+ VPADDBYrr = 14555,
+ VPADDBZ128rm = 14556,
+ VPADDBZ128rmk = 14557,
+ VPADDBZ128rmkz = 14558,
+ VPADDBZ128rr = 14559,
+ VPADDBZ128rrk = 14560,
+ VPADDBZ128rrkz = 14561,
+ VPADDBZ256rm = 14562,
+ VPADDBZ256rmk = 14563,
+ VPADDBZ256rmkz = 14564,
+ VPADDBZ256rr = 14565,
+ VPADDBZ256rrk = 14566,
+ VPADDBZ256rrkz = 14567,
+ VPADDBZrm = 14568,
+ VPADDBZrmk = 14569,
+ VPADDBZrmkz = 14570,
+ VPADDBZrr = 14571,
+ VPADDBZrrk = 14572,
+ VPADDBZrrkz = 14573,
+ VPADDBrm = 14574,
+ VPADDBrr = 14575,
+ VPADDDYrm = 14576,
+ VPADDDYrr = 14577,
+ VPADDDZ128rm = 14578,
+ VPADDDZ128rmb = 14579,
+ VPADDDZ128rmbk = 14580,
+ VPADDDZ128rmbkz = 14581,
+ VPADDDZ128rmk = 14582,
+ VPADDDZ128rmkz = 14583,
+ VPADDDZ128rr = 14584,
+ VPADDDZ128rrk = 14585,
+ VPADDDZ128rrkz = 14586,
+ VPADDDZ256rm = 14587,
+ VPADDDZ256rmb = 14588,
+ VPADDDZ256rmbk = 14589,
+ VPADDDZ256rmbkz = 14590,
+ VPADDDZ256rmk = 14591,
+ VPADDDZ256rmkz = 14592,
+ VPADDDZ256rr = 14593,
+ VPADDDZ256rrk = 14594,
+ VPADDDZ256rrkz = 14595,
+ VPADDDZrm = 14596,
+ VPADDDZrmb = 14597,
+ VPADDDZrmbk = 14598,
+ VPADDDZrmbkz = 14599,
+ VPADDDZrmk = 14600,
+ VPADDDZrmkz = 14601,
+ VPADDDZrr = 14602,
+ VPADDDZrrk = 14603,
+ VPADDDZrrkz = 14604,
+ VPADDDrm = 14605,
+ VPADDDrr = 14606,
+ VPADDQYrm = 14607,
+ VPADDQYrr = 14608,
+ VPADDQZ128rm = 14609,
+ VPADDQZ128rmb = 14610,
+ VPADDQZ128rmbk = 14611,
+ VPADDQZ128rmbkz = 14612,
+ VPADDQZ128rmk = 14613,
+ VPADDQZ128rmkz = 14614,
+ VPADDQZ128rr = 14615,
+ VPADDQZ128rrk = 14616,
+ VPADDQZ128rrkz = 14617,
+ VPADDQZ256rm = 14618,
+ VPADDQZ256rmb = 14619,
+ VPADDQZ256rmbk = 14620,
+ VPADDQZ256rmbkz = 14621,
+ VPADDQZ256rmk = 14622,
+ VPADDQZ256rmkz = 14623,
+ VPADDQZ256rr = 14624,
+ VPADDQZ256rrk = 14625,
+ VPADDQZ256rrkz = 14626,
+ VPADDQZrm = 14627,
+ VPADDQZrmb = 14628,
+ VPADDQZrmbk = 14629,
+ VPADDQZrmbkz = 14630,
+ VPADDQZrmk = 14631,
+ VPADDQZrmkz = 14632,
+ VPADDQZrr = 14633,
+ VPADDQZrrk = 14634,
+ VPADDQZrrkz = 14635,
+ VPADDQrm = 14636,
+ VPADDQrr = 14637,
+ VPADDSBYrm = 14638,
+ VPADDSBYrr = 14639,
+ VPADDSBZ128rm = 14640,
+ VPADDSBZ128rmk = 14641,
+ VPADDSBZ128rmkz = 14642,
+ VPADDSBZ128rr = 14643,
+ VPADDSBZ128rrk = 14644,
+ VPADDSBZ128rrkz = 14645,
+ VPADDSBZ256rm = 14646,
+ VPADDSBZ256rmk = 14647,
+ VPADDSBZ256rmkz = 14648,
+ VPADDSBZ256rr = 14649,
+ VPADDSBZ256rrk = 14650,
+ VPADDSBZ256rrkz = 14651,
+ VPADDSBZrm = 14652,
+ VPADDSBZrmk = 14653,
+ VPADDSBZrmkz = 14654,
+ VPADDSBZrr = 14655,
+ VPADDSBZrrk = 14656,
+ VPADDSBZrrkz = 14657,
+ VPADDSBrm = 14658,
+ VPADDSBrr = 14659,
+ VPADDSWYrm = 14660,
+ VPADDSWYrr = 14661,
+ VPADDSWZ128rm = 14662,
+ VPADDSWZ128rmk = 14663,
+ VPADDSWZ128rmkz = 14664,
+ VPADDSWZ128rr = 14665,
+ VPADDSWZ128rrk = 14666,
+ VPADDSWZ128rrkz = 14667,
+ VPADDSWZ256rm = 14668,
+ VPADDSWZ256rmk = 14669,
+ VPADDSWZ256rmkz = 14670,
+ VPADDSWZ256rr = 14671,
+ VPADDSWZ256rrk = 14672,
+ VPADDSWZ256rrkz = 14673,
+ VPADDSWZrm = 14674,
+ VPADDSWZrmk = 14675,
+ VPADDSWZrmkz = 14676,
+ VPADDSWZrr = 14677,
+ VPADDSWZrrk = 14678,
+ VPADDSWZrrkz = 14679,
+ VPADDSWrm = 14680,
+ VPADDSWrr = 14681,
+ VPADDUSBYrm = 14682,
+ VPADDUSBYrr = 14683,
+ VPADDUSBZ128rm = 14684,
+ VPADDUSBZ128rmk = 14685,
+ VPADDUSBZ128rmkz = 14686,
+ VPADDUSBZ128rr = 14687,
+ VPADDUSBZ128rrk = 14688,
+ VPADDUSBZ128rrkz = 14689,
+ VPADDUSBZ256rm = 14690,
+ VPADDUSBZ256rmk = 14691,
+ VPADDUSBZ256rmkz = 14692,
+ VPADDUSBZ256rr = 14693,
+ VPADDUSBZ256rrk = 14694,
+ VPADDUSBZ256rrkz = 14695,
+ VPADDUSBZrm = 14696,
+ VPADDUSBZrmk = 14697,
+ VPADDUSBZrmkz = 14698,
+ VPADDUSBZrr = 14699,
+ VPADDUSBZrrk = 14700,
+ VPADDUSBZrrkz = 14701,
+ VPADDUSBrm = 14702,
+ VPADDUSBrr = 14703,
+ VPADDUSWYrm = 14704,
+ VPADDUSWYrr = 14705,
+ VPADDUSWZ128rm = 14706,
+ VPADDUSWZ128rmk = 14707,
+ VPADDUSWZ128rmkz = 14708,
+ VPADDUSWZ128rr = 14709,
+ VPADDUSWZ128rrk = 14710,
+ VPADDUSWZ128rrkz = 14711,
+ VPADDUSWZ256rm = 14712,
+ VPADDUSWZ256rmk = 14713,
+ VPADDUSWZ256rmkz = 14714,
+ VPADDUSWZ256rr = 14715,
+ VPADDUSWZ256rrk = 14716,
+ VPADDUSWZ256rrkz = 14717,
+ VPADDUSWZrm = 14718,
+ VPADDUSWZrmk = 14719,
+ VPADDUSWZrmkz = 14720,
+ VPADDUSWZrr = 14721,
+ VPADDUSWZrrk = 14722,
+ VPADDUSWZrrkz = 14723,
+ VPADDUSWrm = 14724,
+ VPADDUSWrr = 14725,
+ VPADDWYrm = 14726,
+ VPADDWYrr = 14727,
+ VPADDWZ128rm = 14728,
+ VPADDWZ128rmk = 14729,
+ VPADDWZ128rmkz = 14730,
+ VPADDWZ128rr = 14731,
+ VPADDWZ128rrk = 14732,
+ VPADDWZ128rrkz = 14733,
+ VPADDWZ256rm = 14734,
+ VPADDWZ256rmk = 14735,
+ VPADDWZ256rmkz = 14736,
+ VPADDWZ256rr = 14737,
+ VPADDWZ256rrk = 14738,
+ VPADDWZ256rrkz = 14739,
+ VPADDWZrm = 14740,
+ VPADDWZrmk = 14741,
+ VPADDWZrmkz = 14742,
+ VPADDWZrr = 14743,
+ VPADDWZrrk = 14744,
+ VPADDWZrrkz = 14745,
+ VPADDWrm = 14746,
+ VPADDWrr = 14747,
+ VPALIGNRYrmi = 14748,
+ VPALIGNRYrri = 14749,
+ VPALIGNRZ128rmi = 14750,
+ VPALIGNRZ128rmik = 14751,
+ VPALIGNRZ128rmikz = 14752,
+ VPALIGNRZ128rri = 14753,
+ VPALIGNRZ128rrik = 14754,
+ VPALIGNRZ128rrikz = 14755,
+ VPALIGNRZ256rmi = 14756,
+ VPALIGNRZ256rmik = 14757,
+ VPALIGNRZ256rmikz = 14758,
+ VPALIGNRZ256rri = 14759,
+ VPALIGNRZ256rrik = 14760,
+ VPALIGNRZ256rrikz = 14761,
+ VPALIGNRZrmi = 14762,
+ VPALIGNRZrmik = 14763,
+ VPALIGNRZrmikz = 14764,
+ VPALIGNRZrri = 14765,
+ VPALIGNRZrrik = 14766,
+ VPALIGNRZrrikz = 14767,
+ VPALIGNRrmi = 14768,
+ VPALIGNRrri = 14769,
+ VPANDDZ128rm = 14770,
+ VPANDDZ128rmb = 14771,
+ VPANDDZ128rmbk = 14772,
+ VPANDDZ128rmbkz = 14773,
+ VPANDDZ128rmk = 14774,
+ VPANDDZ128rmkz = 14775,
+ VPANDDZ128rr = 14776,
+ VPANDDZ128rrk = 14777,
+ VPANDDZ128rrkz = 14778,
+ VPANDDZ256rm = 14779,
+ VPANDDZ256rmb = 14780,
+ VPANDDZ256rmbk = 14781,
+ VPANDDZ256rmbkz = 14782,
+ VPANDDZ256rmk = 14783,
+ VPANDDZ256rmkz = 14784,
+ VPANDDZ256rr = 14785,
+ VPANDDZ256rrk = 14786,
+ VPANDDZ256rrkz = 14787,
+ VPANDDZrm = 14788,
+ VPANDDZrmb = 14789,
+ VPANDDZrmbk = 14790,
+ VPANDDZrmbkz = 14791,
+ VPANDDZrmk = 14792,
+ VPANDDZrmkz = 14793,
+ VPANDDZrr = 14794,
+ VPANDDZrrk = 14795,
+ VPANDDZrrkz = 14796,
+ VPANDNDZ128rm = 14797,
+ VPANDNDZ128rmb = 14798,
+ VPANDNDZ128rmbk = 14799,
+ VPANDNDZ128rmbkz = 14800,
+ VPANDNDZ128rmk = 14801,
+ VPANDNDZ128rmkz = 14802,
+ VPANDNDZ128rr = 14803,
+ VPANDNDZ128rrk = 14804,
+ VPANDNDZ128rrkz = 14805,
+ VPANDNDZ256rm = 14806,
+ VPANDNDZ256rmb = 14807,
+ VPANDNDZ256rmbk = 14808,
+ VPANDNDZ256rmbkz = 14809,
+ VPANDNDZ256rmk = 14810,
+ VPANDNDZ256rmkz = 14811,
+ VPANDNDZ256rr = 14812,
+ VPANDNDZ256rrk = 14813,
+ VPANDNDZ256rrkz = 14814,
+ VPANDNDZrm = 14815,
+ VPANDNDZrmb = 14816,
+ VPANDNDZrmbk = 14817,
+ VPANDNDZrmbkz = 14818,
+ VPANDNDZrmk = 14819,
+ VPANDNDZrmkz = 14820,
+ VPANDNDZrr = 14821,
+ VPANDNDZrrk = 14822,
+ VPANDNDZrrkz = 14823,
+ VPANDNQZ128rm = 14824,
+ VPANDNQZ128rmb = 14825,
+ VPANDNQZ128rmbk = 14826,
+ VPANDNQZ128rmbkz = 14827,
+ VPANDNQZ128rmk = 14828,
+ VPANDNQZ128rmkz = 14829,
+ VPANDNQZ128rr = 14830,
+ VPANDNQZ128rrk = 14831,
+ VPANDNQZ128rrkz = 14832,
+ VPANDNQZ256rm = 14833,
+ VPANDNQZ256rmb = 14834,
+ VPANDNQZ256rmbk = 14835,
+ VPANDNQZ256rmbkz = 14836,
+ VPANDNQZ256rmk = 14837,
+ VPANDNQZ256rmkz = 14838,
+ VPANDNQZ256rr = 14839,
+ VPANDNQZ256rrk = 14840,
+ VPANDNQZ256rrkz = 14841,
+ VPANDNQZrm = 14842,
+ VPANDNQZrmb = 14843,
+ VPANDNQZrmbk = 14844,
+ VPANDNQZrmbkz = 14845,
+ VPANDNQZrmk = 14846,
+ VPANDNQZrmkz = 14847,
+ VPANDNQZrr = 14848,
+ VPANDNQZrrk = 14849,
+ VPANDNQZrrkz = 14850,
+ VPANDNYrm = 14851,
+ VPANDNYrr = 14852,
+ VPANDNrm = 14853,
+ VPANDNrr = 14854,
+ VPANDQZ128rm = 14855,
+ VPANDQZ128rmb = 14856,
+ VPANDQZ128rmbk = 14857,
+ VPANDQZ128rmbkz = 14858,
+ VPANDQZ128rmk = 14859,
+ VPANDQZ128rmkz = 14860,
+ VPANDQZ128rr = 14861,
+ VPANDQZ128rrk = 14862,
+ VPANDQZ128rrkz = 14863,
+ VPANDQZ256rm = 14864,
+ VPANDQZ256rmb = 14865,
+ VPANDQZ256rmbk = 14866,
+ VPANDQZ256rmbkz = 14867,
+ VPANDQZ256rmk = 14868,
+ VPANDQZ256rmkz = 14869,
+ VPANDQZ256rr = 14870,
+ VPANDQZ256rrk = 14871,
+ VPANDQZ256rrkz = 14872,
+ VPANDQZrm = 14873,
+ VPANDQZrmb = 14874,
+ VPANDQZrmbk = 14875,
+ VPANDQZrmbkz = 14876,
+ VPANDQZrmk = 14877,
+ VPANDQZrmkz = 14878,
+ VPANDQZrr = 14879,
+ VPANDQZrrk = 14880,
+ VPANDQZrrkz = 14881,
+ VPANDYrm = 14882,
+ VPANDYrr = 14883,
+ VPANDrm = 14884,
+ VPANDrr = 14885,
+ VPAVGBYrm = 14886,
+ VPAVGBYrr = 14887,
+ VPAVGBZ128rm = 14888,
+ VPAVGBZ128rmk = 14889,
+ VPAVGBZ128rmkz = 14890,
+ VPAVGBZ128rr = 14891,
+ VPAVGBZ128rrk = 14892,
+ VPAVGBZ128rrkz = 14893,
+ VPAVGBZ256rm = 14894,
+ VPAVGBZ256rmk = 14895,
+ VPAVGBZ256rmkz = 14896,
+ VPAVGBZ256rr = 14897,
+ VPAVGBZ256rrk = 14898,
+ VPAVGBZ256rrkz = 14899,
+ VPAVGBZrm = 14900,
+ VPAVGBZrmk = 14901,
+ VPAVGBZrmkz = 14902,
+ VPAVGBZrr = 14903,
+ VPAVGBZrrk = 14904,
+ VPAVGBZrrkz = 14905,
+ VPAVGBrm = 14906,
+ VPAVGBrr = 14907,
+ VPAVGWYrm = 14908,
+ VPAVGWYrr = 14909,
+ VPAVGWZ128rm = 14910,
+ VPAVGWZ128rmk = 14911,
+ VPAVGWZ128rmkz = 14912,
+ VPAVGWZ128rr = 14913,
+ VPAVGWZ128rrk = 14914,
+ VPAVGWZ128rrkz = 14915,
+ VPAVGWZ256rm = 14916,
+ VPAVGWZ256rmk = 14917,
+ VPAVGWZ256rmkz = 14918,
+ VPAVGWZ256rr = 14919,
+ VPAVGWZ256rrk = 14920,
+ VPAVGWZ256rrkz = 14921,
+ VPAVGWZrm = 14922,
+ VPAVGWZrmk = 14923,
+ VPAVGWZrmkz = 14924,
+ VPAVGWZrr = 14925,
+ VPAVGWZrrk = 14926,
+ VPAVGWZrrkz = 14927,
+ VPAVGWrm = 14928,
+ VPAVGWrr = 14929,
+ VPBLENDDYrmi = 14930,
+ VPBLENDDYrri = 14931,
+ VPBLENDDrmi = 14932,
+ VPBLENDDrri = 14933,
+ VPBLENDMBZ128rm = 14934,
+ VPBLENDMBZ128rmk = 14935,
+ VPBLENDMBZ128rmkz = 14936,
+ VPBLENDMBZ128rr = 14937,
+ VPBLENDMBZ128rrk = 14938,
+ VPBLENDMBZ128rrkz = 14939,
+ VPBLENDMBZ256rm = 14940,
+ VPBLENDMBZ256rmk = 14941,
+ VPBLENDMBZ256rmkz = 14942,
+ VPBLENDMBZ256rr = 14943,
+ VPBLENDMBZ256rrk = 14944,
+ VPBLENDMBZ256rrkz = 14945,
+ VPBLENDMBZrm = 14946,
+ VPBLENDMBZrmk = 14947,
+ VPBLENDMBZrmkz = 14948,
+ VPBLENDMBZrr = 14949,
+ VPBLENDMBZrrk = 14950,
+ VPBLENDMBZrrkz = 14951,
+ VPBLENDMDZ128rm = 14952,
+ VPBLENDMDZ128rmb = 14953,
+ VPBLENDMDZ128rmbk = 14954,
+ VPBLENDMDZ128rmbkz = 14955,
+ VPBLENDMDZ128rmk = 14956,
+ VPBLENDMDZ128rmkz = 14957,
+ VPBLENDMDZ128rr = 14958,
+ VPBLENDMDZ128rrk = 14959,
+ VPBLENDMDZ128rrkz = 14960,
+ VPBLENDMDZ256rm = 14961,
+ VPBLENDMDZ256rmb = 14962,
+ VPBLENDMDZ256rmbk = 14963,
+ VPBLENDMDZ256rmbkz = 14964,
+ VPBLENDMDZ256rmk = 14965,
+ VPBLENDMDZ256rmkz = 14966,
+ VPBLENDMDZ256rr = 14967,
+ VPBLENDMDZ256rrk = 14968,
+ VPBLENDMDZ256rrkz = 14969,
+ VPBLENDMDZrm = 14970,
+ VPBLENDMDZrmb = 14971,
+ VPBLENDMDZrmbk = 14972,
+ VPBLENDMDZrmbkz = 14973,
+ VPBLENDMDZrmk = 14974,
+ VPBLENDMDZrmkz = 14975,
+ VPBLENDMDZrr = 14976,
+ VPBLENDMDZrrk = 14977,
+ VPBLENDMDZrrkz = 14978,
+ VPBLENDMQZ128rm = 14979,
+ VPBLENDMQZ128rmb = 14980,
+ VPBLENDMQZ128rmbk = 14981,
+ VPBLENDMQZ128rmbkz = 14982,
+ VPBLENDMQZ128rmk = 14983,
+ VPBLENDMQZ128rmkz = 14984,
+ VPBLENDMQZ128rr = 14985,
+ VPBLENDMQZ128rrk = 14986,
+ VPBLENDMQZ128rrkz = 14987,
+ VPBLENDMQZ256rm = 14988,
+ VPBLENDMQZ256rmb = 14989,
+ VPBLENDMQZ256rmbk = 14990,
+ VPBLENDMQZ256rmbkz = 14991,
+ VPBLENDMQZ256rmk = 14992,
+ VPBLENDMQZ256rmkz = 14993,
+ VPBLENDMQZ256rr = 14994,
+ VPBLENDMQZ256rrk = 14995,
+ VPBLENDMQZ256rrkz = 14996,
+ VPBLENDMQZrm = 14997,
+ VPBLENDMQZrmb = 14998,
+ VPBLENDMQZrmbk = 14999,
+ VPBLENDMQZrmbkz = 15000,
+ VPBLENDMQZrmk = 15001,
+ VPBLENDMQZrmkz = 15002,
+ VPBLENDMQZrr = 15003,
+ VPBLENDMQZrrk = 15004,
+ VPBLENDMQZrrkz = 15005,
+ VPBLENDMWZ128rm = 15006,
+ VPBLENDMWZ128rmk = 15007,
+ VPBLENDMWZ128rmkz = 15008,
+ VPBLENDMWZ128rr = 15009,
+ VPBLENDMWZ128rrk = 15010,
+ VPBLENDMWZ128rrkz = 15011,
+ VPBLENDMWZ256rm = 15012,
+ VPBLENDMWZ256rmk = 15013,
+ VPBLENDMWZ256rmkz = 15014,
+ VPBLENDMWZ256rr = 15015,
+ VPBLENDMWZ256rrk = 15016,
+ VPBLENDMWZ256rrkz = 15017,
+ VPBLENDMWZrm = 15018,
+ VPBLENDMWZrmk = 15019,
+ VPBLENDMWZrmkz = 15020,
+ VPBLENDMWZrr = 15021,
+ VPBLENDMWZrrk = 15022,
+ VPBLENDMWZrrkz = 15023,
+ VPBLENDVBYrmr = 15024,
+ VPBLENDVBYrrr = 15025,
+ VPBLENDVBrmr = 15026,
+ VPBLENDVBrrr = 15027,
+ VPBLENDWYrmi = 15028,
+ VPBLENDWYrri = 15029,
+ VPBLENDWrmi = 15030,
+ VPBLENDWrri = 15031,
+ VPBROADCASTBYrm = 15032,
+ VPBROADCASTBYrr = 15033,
+ VPBROADCASTBZ128rm = 15034,
+ VPBROADCASTBZ128rmk = 15035,
+ VPBROADCASTBZ128rmkz = 15036,
+ VPBROADCASTBZ128rr = 15037,
+ VPBROADCASTBZ128rrk = 15038,
+ VPBROADCASTBZ128rrkz = 15039,
+ VPBROADCASTBZ256rm = 15040,
+ VPBROADCASTBZ256rmk = 15041,
+ VPBROADCASTBZ256rmkz = 15042,
+ VPBROADCASTBZ256rr = 15043,
+ VPBROADCASTBZ256rrk = 15044,
+ VPBROADCASTBZ256rrkz = 15045,
+ VPBROADCASTBZrm = 15046,
+ VPBROADCASTBZrmk = 15047,
+ VPBROADCASTBZrmkz = 15048,
+ VPBROADCASTBZrr = 15049,
+ VPBROADCASTBZrrk = 15050,
+ VPBROADCASTBZrrkz = 15051,
+ VPBROADCASTBrZ128rr = 15052,
+ VPBROADCASTBrZ128rrk = 15053,
+ VPBROADCASTBrZ128rrkz = 15054,
+ VPBROADCASTBrZ256rr = 15055,
+ VPBROADCASTBrZ256rrk = 15056,
+ VPBROADCASTBrZ256rrkz = 15057,
+ VPBROADCASTBrZrr = 15058,
+ VPBROADCASTBrZrrk = 15059,
+ VPBROADCASTBrZrrkz = 15060,
+ VPBROADCASTBrm = 15061,
+ VPBROADCASTBrr = 15062,
+ VPBROADCASTDYrm = 15063,
+ VPBROADCASTDYrr = 15064,
+ VPBROADCASTDZ128rm = 15065,
+ VPBROADCASTDZ128rmk = 15066,
+ VPBROADCASTDZ128rmkz = 15067,
+ VPBROADCASTDZ128rr = 15068,
+ VPBROADCASTDZ128rrk = 15069,
+ VPBROADCASTDZ128rrkz = 15070,
+ VPBROADCASTDZ256rm = 15071,
+ VPBROADCASTDZ256rmk = 15072,
+ VPBROADCASTDZ256rmkz = 15073,
+ VPBROADCASTDZ256rr = 15074,
+ VPBROADCASTDZ256rrk = 15075,
+ VPBROADCASTDZ256rrkz = 15076,
+ VPBROADCASTDZrm = 15077,
+ VPBROADCASTDZrmk = 15078,
+ VPBROADCASTDZrmkz = 15079,
+ VPBROADCASTDZrr = 15080,
+ VPBROADCASTDZrrk = 15081,
+ VPBROADCASTDZrrkz = 15082,
+ VPBROADCASTDrZ128rr = 15083,
+ VPBROADCASTDrZ128rrk = 15084,
+ VPBROADCASTDrZ128rrkz = 15085,
+ VPBROADCASTDrZ256rr = 15086,
+ VPBROADCASTDrZ256rrk = 15087,
+ VPBROADCASTDrZ256rrkz = 15088,
+ VPBROADCASTDrZrr = 15089,
+ VPBROADCASTDrZrrk = 15090,
+ VPBROADCASTDrZrrkz = 15091,
+ VPBROADCASTDrm = 15092,
+ VPBROADCASTDrr = 15093,
+ VPBROADCASTMB2QZ128rr = 15094,
+ VPBROADCASTMB2QZ256rr = 15095,
+ VPBROADCASTMB2QZrr = 15096,
+ VPBROADCASTMW2DZ128rr = 15097,
+ VPBROADCASTMW2DZ256rr = 15098,
+ VPBROADCASTMW2DZrr = 15099,
+ VPBROADCASTQYrm = 15100,
+ VPBROADCASTQYrr = 15101,
+ VPBROADCASTQZ128rm = 15102,
+ VPBROADCASTQZ128rmk = 15103,
+ VPBROADCASTQZ128rmkz = 15104,
+ VPBROADCASTQZ128rr = 15105,
+ VPBROADCASTQZ128rrk = 15106,
+ VPBROADCASTQZ128rrkz = 15107,
+ VPBROADCASTQZ256rm = 15108,
+ VPBROADCASTQZ256rmk = 15109,
+ VPBROADCASTQZ256rmkz = 15110,
+ VPBROADCASTQZ256rr = 15111,
+ VPBROADCASTQZ256rrk = 15112,
+ VPBROADCASTQZ256rrkz = 15113,
+ VPBROADCASTQZrm = 15114,
+ VPBROADCASTQZrmk = 15115,
+ VPBROADCASTQZrmkz = 15116,
+ VPBROADCASTQZrr = 15117,
+ VPBROADCASTQZrrk = 15118,
+ VPBROADCASTQZrrkz = 15119,
+ VPBROADCASTQrZ128rr = 15120,
+ VPBROADCASTQrZ128rrk = 15121,
+ VPBROADCASTQrZ128rrkz = 15122,
+ VPBROADCASTQrZ256rr = 15123,
+ VPBROADCASTQrZ256rrk = 15124,
+ VPBROADCASTQrZ256rrkz = 15125,
+ VPBROADCASTQrZrr = 15126,
+ VPBROADCASTQrZrrk = 15127,
+ VPBROADCASTQrZrrkz = 15128,
+ VPBROADCASTQrm = 15129,
+ VPBROADCASTQrr = 15130,
+ VPBROADCASTWYrm = 15131,
+ VPBROADCASTWYrr = 15132,
+ VPBROADCASTWZ128rm = 15133,
+ VPBROADCASTWZ128rmk = 15134,
+ VPBROADCASTWZ128rmkz = 15135,
+ VPBROADCASTWZ128rr = 15136,
+ VPBROADCASTWZ128rrk = 15137,
+ VPBROADCASTWZ128rrkz = 15138,
+ VPBROADCASTWZ256rm = 15139,
+ VPBROADCASTWZ256rmk = 15140,
+ VPBROADCASTWZ256rmkz = 15141,
+ VPBROADCASTWZ256rr = 15142,
+ VPBROADCASTWZ256rrk = 15143,
+ VPBROADCASTWZ256rrkz = 15144,
+ VPBROADCASTWZrm = 15145,
+ VPBROADCASTWZrmk = 15146,
+ VPBROADCASTWZrmkz = 15147,
+ VPBROADCASTWZrr = 15148,
+ VPBROADCASTWZrrk = 15149,
+ VPBROADCASTWZrrkz = 15150,
+ VPBROADCASTWrZ128rr = 15151,
+ VPBROADCASTWrZ128rrk = 15152,
+ VPBROADCASTWrZ128rrkz = 15153,
+ VPBROADCASTWrZ256rr = 15154,
+ VPBROADCASTWrZ256rrk = 15155,
+ VPBROADCASTWrZ256rrkz = 15156,
+ VPBROADCASTWrZrr = 15157,
+ VPBROADCASTWrZrrk = 15158,
+ VPBROADCASTWrZrrkz = 15159,
+ VPBROADCASTWrm = 15160,
+ VPBROADCASTWrr = 15161,
+ VPCLMULQDQYrmi = 15162,
+ VPCLMULQDQYrri = 15163,
+ VPCLMULQDQZ128rmi = 15164,
+ VPCLMULQDQZ128rri = 15165,
+ VPCLMULQDQZ256rmi = 15166,
+ VPCLMULQDQZ256rri = 15167,
+ VPCLMULQDQZrmi = 15168,
+ VPCLMULQDQZrri = 15169,
+ VPCLMULQDQrmi = 15170,
+ VPCLMULQDQrri = 15171,
+ VPCMOVYrmr = 15172,
+ VPCMOVYrrm = 15173,
+ VPCMOVYrrr = 15174,
+ VPCMOVYrrr_REV = 15175,
+ VPCMOVrmr = 15176,
+ VPCMOVrrm = 15177,
+ VPCMOVrrr = 15178,
+ VPCMOVrrr_REV = 15179,
+ VPCMPBZ128rmi = 15180,
+ VPCMPBZ128rmik = 15181,
+ VPCMPBZ128rri = 15182,
+ VPCMPBZ128rrik = 15183,
+ VPCMPBZ256rmi = 15184,
+ VPCMPBZ256rmik = 15185,
+ VPCMPBZ256rri = 15186,
+ VPCMPBZ256rrik = 15187,
+ VPCMPBZrmi = 15188,
+ VPCMPBZrmik = 15189,
+ VPCMPBZrri = 15190,
+ VPCMPBZrrik = 15191,
+ VPCMPDZ128rmbi = 15192,
+ VPCMPDZ128rmbik = 15193,
+ VPCMPDZ128rmi = 15194,
+ VPCMPDZ128rmik = 15195,
+ VPCMPDZ128rri = 15196,
+ VPCMPDZ128rrik = 15197,
+ VPCMPDZ256rmbi = 15198,
+ VPCMPDZ256rmbik = 15199,
+ VPCMPDZ256rmi = 15200,
+ VPCMPDZ256rmik = 15201,
+ VPCMPDZ256rri = 15202,
+ VPCMPDZ256rrik = 15203,
+ VPCMPDZrmbi = 15204,
+ VPCMPDZrmbik = 15205,
+ VPCMPDZrmi = 15206,
+ VPCMPDZrmik = 15207,
+ VPCMPDZrri = 15208,
+ VPCMPDZrrik = 15209,
+ VPCMPEQBYrm = 15210,
+ VPCMPEQBYrr = 15211,
+ VPCMPEQBZ128rm = 15212,
+ VPCMPEQBZ128rmk = 15213,
+ VPCMPEQBZ128rr = 15214,
+ VPCMPEQBZ128rrk = 15215,
+ VPCMPEQBZ256rm = 15216,
+ VPCMPEQBZ256rmk = 15217,
+ VPCMPEQBZ256rr = 15218,
+ VPCMPEQBZ256rrk = 15219,
+ VPCMPEQBZrm = 15220,
+ VPCMPEQBZrmk = 15221,
+ VPCMPEQBZrr = 15222,
+ VPCMPEQBZrrk = 15223,
+ VPCMPEQBrm = 15224,
+ VPCMPEQBrr = 15225,
+ VPCMPEQDYrm = 15226,
+ VPCMPEQDYrr = 15227,
+ VPCMPEQDZ128rm = 15228,
+ VPCMPEQDZ128rmb = 15229,
+ VPCMPEQDZ128rmbk = 15230,
+ VPCMPEQDZ128rmk = 15231,
+ VPCMPEQDZ128rr = 15232,
+ VPCMPEQDZ128rrk = 15233,
+ VPCMPEQDZ256rm = 15234,
+ VPCMPEQDZ256rmb = 15235,
+ VPCMPEQDZ256rmbk = 15236,
+ VPCMPEQDZ256rmk = 15237,
+ VPCMPEQDZ256rr = 15238,
+ VPCMPEQDZ256rrk = 15239,
+ VPCMPEQDZrm = 15240,
+ VPCMPEQDZrmb = 15241,
+ VPCMPEQDZrmbk = 15242,
+ VPCMPEQDZrmk = 15243,
+ VPCMPEQDZrr = 15244,
+ VPCMPEQDZrrk = 15245,
+ VPCMPEQDrm = 15246,
+ VPCMPEQDrr = 15247,
+ VPCMPEQQYrm = 15248,
+ VPCMPEQQYrr = 15249,
+ VPCMPEQQZ128rm = 15250,
+ VPCMPEQQZ128rmb = 15251,
+ VPCMPEQQZ128rmbk = 15252,
+ VPCMPEQQZ128rmk = 15253,
+ VPCMPEQQZ128rr = 15254,
+ VPCMPEQQZ128rrk = 15255,
+ VPCMPEQQZ256rm = 15256,
+ VPCMPEQQZ256rmb = 15257,
+ VPCMPEQQZ256rmbk = 15258,
+ VPCMPEQQZ256rmk = 15259,
+ VPCMPEQQZ256rr = 15260,
+ VPCMPEQQZ256rrk = 15261,
+ VPCMPEQQZrm = 15262,
+ VPCMPEQQZrmb = 15263,
+ VPCMPEQQZrmbk = 15264,
+ VPCMPEQQZrmk = 15265,
+ VPCMPEQQZrr = 15266,
+ VPCMPEQQZrrk = 15267,
+ VPCMPEQQrm = 15268,
+ VPCMPEQQrr = 15269,
+ VPCMPEQWYrm = 15270,
+ VPCMPEQWYrr = 15271,
+ VPCMPEQWZ128rm = 15272,
+ VPCMPEQWZ128rmk = 15273,
+ VPCMPEQWZ128rr = 15274,
+ VPCMPEQWZ128rrk = 15275,
+ VPCMPEQWZ256rm = 15276,
+ VPCMPEQWZ256rmk = 15277,
+ VPCMPEQWZ256rr = 15278,
+ VPCMPEQWZ256rrk = 15279,
+ VPCMPEQWZrm = 15280,
+ VPCMPEQWZrmk = 15281,
+ VPCMPEQWZrr = 15282,
+ VPCMPEQWZrrk = 15283,
+ VPCMPEQWrm = 15284,
+ VPCMPEQWrr = 15285,
+ VPCMPESTRIrmi = 15286,
+ VPCMPESTRIrri = 15287,
+ VPCMPESTRMrmi = 15288,
+ VPCMPESTRMrri = 15289,
+ VPCMPGTBYrm = 15290,
+ VPCMPGTBYrr = 15291,
+ VPCMPGTBZ128rm = 15292,
+ VPCMPGTBZ128rmk = 15293,
+ VPCMPGTBZ128rr = 15294,
+ VPCMPGTBZ128rrk = 15295,
+ VPCMPGTBZ256rm = 15296,
+ VPCMPGTBZ256rmk = 15297,
+ VPCMPGTBZ256rr = 15298,
+ VPCMPGTBZ256rrk = 15299,
+ VPCMPGTBZrm = 15300,
+ VPCMPGTBZrmk = 15301,
+ VPCMPGTBZrr = 15302,
+ VPCMPGTBZrrk = 15303,
+ VPCMPGTBrm = 15304,
+ VPCMPGTBrr = 15305,
+ VPCMPGTDYrm = 15306,
+ VPCMPGTDYrr = 15307,
+ VPCMPGTDZ128rm = 15308,
+ VPCMPGTDZ128rmb = 15309,
+ VPCMPGTDZ128rmbk = 15310,
+ VPCMPGTDZ128rmk = 15311,
+ VPCMPGTDZ128rr = 15312,
+ VPCMPGTDZ128rrk = 15313,
+ VPCMPGTDZ256rm = 15314,
+ VPCMPGTDZ256rmb = 15315,
+ VPCMPGTDZ256rmbk = 15316,
+ VPCMPGTDZ256rmk = 15317,
+ VPCMPGTDZ256rr = 15318,
+ VPCMPGTDZ256rrk = 15319,
+ VPCMPGTDZrm = 15320,
+ VPCMPGTDZrmb = 15321,
+ VPCMPGTDZrmbk = 15322,
+ VPCMPGTDZrmk = 15323,
+ VPCMPGTDZrr = 15324,
+ VPCMPGTDZrrk = 15325,
+ VPCMPGTDrm = 15326,
+ VPCMPGTDrr = 15327,
+ VPCMPGTQYrm = 15328,
+ VPCMPGTQYrr = 15329,
+ VPCMPGTQZ128rm = 15330,
+ VPCMPGTQZ128rmb = 15331,
+ VPCMPGTQZ128rmbk = 15332,
+ VPCMPGTQZ128rmk = 15333,
+ VPCMPGTQZ128rr = 15334,
+ VPCMPGTQZ128rrk = 15335,
+ VPCMPGTQZ256rm = 15336,
+ VPCMPGTQZ256rmb = 15337,
+ VPCMPGTQZ256rmbk = 15338,
+ VPCMPGTQZ256rmk = 15339,
+ VPCMPGTQZ256rr = 15340,
+ VPCMPGTQZ256rrk = 15341,
+ VPCMPGTQZrm = 15342,
+ VPCMPGTQZrmb = 15343,
+ VPCMPGTQZrmbk = 15344,
+ VPCMPGTQZrmk = 15345,
+ VPCMPGTQZrr = 15346,
+ VPCMPGTQZrrk = 15347,
+ VPCMPGTQrm = 15348,
+ VPCMPGTQrr = 15349,
+ VPCMPGTWYrm = 15350,
+ VPCMPGTWYrr = 15351,
+ VPCMPGTWZ128rm = 15352,
+ VPCMPGTWZ128rmk = 15353,
+ VPCMPGTWZ128rr = 15354,
+ VPCMPGTWZ128rrk = 15355,
+ VPCMPGTWZ256rm = 15356,
+ VPCMPGTWZ256rmk = 15357,
+ VPCMPGTWZ256rr = 15358,
+ VPCMPGTWZ256rrk = 15359,
+ VPCMPGTWZrm = 15360,
+ VPCMPGTWZrmk = 15361,
+ VPCMPGTWZrr = 15362,
+ VPCMPGTWZrrk = 15363,
+ VPCMPGTWrm = 15364,
+ VPCMPGTWrr = 15365,
+ VPCMPISTRIrmi = 15366,
+ VPCMPISTRIrri = 15367,
+ VPCMPISTRMrmi = 15368,
+ VPCMPISTRMrri = 15369,
+ VPCMPQZ128rmbi = 15370,
+ VPCMPQZ128rmbik = 15371,
+ VPCMPQZ128rmi = 15372,
+ VPCMPQZ128rmik = 15373,
+ VPCMPQZ128rri = 15374,
+ VPCMPQZ128rrik = 15375,
+ VPCMPQZ256rmbi = 15376,
+ VPCMPQZ256rmbik = 15377,
+ VPCMPQZ256rmi = 15378,
+ VPCMPQZ256rmik = 15379,
+ VPCMPQZ256rri = 15380,
+ VPCMPQZ256rrik = 15381,
+ VPCMPQZrmbi = 15382,
+ VPCMPQZrmbik = 15383,
+ VPCMPQZrmi = 15384,
+ VPCMPQZrmik = 15385,
+ VPCMPQZrri = 15386,
+ VPCMPQZrrik = 15387,
+ VPCMPUBZ128rmi = 15388,
+ VPCMPUBZ128rmik = 15389,
+ VPCMPUBZ128rri = 15390,
+ VPCMPUBZ128rrik = 15391,
+ VPCMPUBZ256rmi = 15392,
+ VPCMPUBZ256rmik = 15393,
+ VPCMPUBZ256rri = 15394,
+ VPCMPUBZ256rrik = 15395,
+ VPCMPUBZrmi = 15396,
+ VPCMPUBZrmik = 15397,
+ VPCMPUBZrri = 15398,
+ VPCMPUBZrrik = 15399,
+ VPCMPUDZ128rmbi = 15400,
+ VPCMPUDZ128rmbik = 15401,
+ VPCMPUDZ128rmi = 15402,
+ VPCMPUDZ128rmik = 15403,
+ VPCMPUDZ128rri = 15404,
+ VPCMPUDZ128rrik = 15405,
+ VPCMPUDZ256rmbi = 15406,
+ VPCMPUDZ256rmbik = 15407,
+ VPCMPUDZ256rmi = 15408,
+ VPCMPUDZ256rmik = 15409,
+ VPCMPUDZ256rri = 15410,
+ VPCMPUDZ256rrik = 15411,
+ VPCMPUDZrmbi = 15412,
+ VPCMPUDZrmbik = 15413,
+ VPCMPUDZrmi = 15414,
+ VPCMPUDZrmik = 15415,
+ VPCMPUDZrri = 15416,
+ VPCMPUDZrrik = 15417,
+ VPCMPUQZ128rmbi = 15418,
+ VPCMPUQZ128rmbik = 15419,
+ VPCMPUQZ128rmi = 15420,
+ VPCMPUQZ128rmik = 15421,
+ VPCMPUQZ128rri = 15422,
+ VPCMPUQZ128rrik = 15423,
+ VPCMPUQZ256rmbi = 15424,
+ VPCMPUQZ256rmbik = 15425,
+ VPCMPUQZ256rmi = 15426,
+ VPCMPUQZ256rmik = 15427,
+ VPCMPUQZ256rri = 15428,
+ VPCMPUQZ256rrik = 15429,
+ VPCMPUQZrmbi = 15430,
+ VPCMPUQZrmbik = 15431,
+ VPCMPUQZrmi = 15432,
+ VPCMPUQZrmik = 15433,
+ VPCMPUQZrri = 15434,
+ VPCMPUQZrrik = 15435,
+ VPCMPUWZ128rmi = 15436,
+ VPCMPUWZ128rmik = 15437,
+ VPCMPUWZ128rri = 15438,
+ VPCMPUWZ128rrik = 15439,
+ VPCMPUWZ256rmi = 15440,
+ VPCMPUWZ256rmik = 15441,
+ VPCMPUWZ256rri = 15442,
+ VPCMPUWZ256rrik = 15443,
+ VPCMPUWZrmi = 15444,
+ VPCMPUWZrmik = 15445,
+ VPCMPUWZrri = 15446,
+ VPCMPUWZrrik = 15447,
+ VPCMPWZ128rmi = 15448,
+ VPCMPWZ128rmik = 15449,
+ VPCMPWZ128rri = 15450,
+ VPCMPWZ128rrik = 15451,
+ VPCMPWZ256rmi = 15452,
+ VPCMPWZ256rmik = 15453,
+ VPCMPWZ256rri = 15454,
+ VPCMPWZ256rrik = 15455,
+ VPCMPWZrmi = 15456,
+ VPCMPWZrmik = 15457,
+ VPCMPWZrri = 15458,
+ VPCMPWZrrik = 15459,
+ VPCOMBmi = 15460,
+ VPCOMBri = 15461,
+ VPCOMDmi = 15462,
+ VPCOMDri = 15463,
+ VPCOMPRESSBZ128mr = 15464,
+ VPCOMPRESSBZ128mrk = 15465,
+ VPCOMPRESSBZ128rr = 15466,
+ VPCOMPRESSBZ128rrk = 15467,
+ VPCOMPRESSBZ128rrkz = 15468,
+ VPCOMPRESSBZ256mr = 15469,
+ VPCOMPRESSBZ256mrk = 15470,
+ VPCOMPRESSBZ256rr = 15471,
+ VPCOMPRESSBZ256rrk = 15472,
+ VPCOMPRESSBZ256rrkz = 15473,
+ VPCOMPRESSBZmr = 15474,
+ VPCOMPRESSBZmrk = 15475,
+ VPCOMPRESSBZrr = 15476,
+ VPCOMPRESSBZrrk = 15477,
+ VPCOMPRESSBZrrkz = 15478,
+ VPCOMPRESSDZ128mr = 15479,
+ VPCOMPRESSDZ128mrk = 15480,
+ VPCOMPRESSDZ128rr = 15481,
+ VPCOMPRESSDZ128rrk = 15482,
+ VPCOMPRESSDZ128rrkz = 15483,
+ VPCOMPRESSDZ256mr = 15484,
+ VPCOMPRESSDZ256mrk = 15485,
+ VPCOMPRESSDZ256rr = 15486,
+ VPCOMPRESSDZ256rrk = 15487,
+ VPCOMPRESSDZ256rrkz = 15488,
+ VPCOMPRESSDZmr = 15489,
+ VPCOMPRESSDZmrk = 15490,
+ VPCOMPRESSDZrr = 15491,
+ VPCOMPRESSDZrrk = 15492,
+ VPCOMPRESSDZrrkz = 15493,
+ VPCOMPRESSQZ128mr = 15494,
+ VPCOMPRESSQZ128mrk = 15495,
+ VPCOMPRESSQZ128rr = 15496,
+ VPCOMPRESSQZ128rrk = 15497,
+ VPCOMPRESSQZ128rrkz = 15498,
+ VPCOMPRESSQZ256mr = 15499,
+ VPCOMPRESSQZ256mrk = 15500,
+ VPCOMPRESSQZ256rr = 15501,
+ VPCOMPRESSQZ256rrk = 15502,
+ VPCOMPRESSQZ256rrkz = 15503,
+ VPCOMPRESSQZmr = 15504,
+ VPCOMPRESSQZmrk = 15505,
+ VPCOMPRESSQZrr = 15506,
+ VPCOMPRESSQZrrk = 15507,
+ VPCOMPRESSQZrrkz = 15508,
+ VPCOMPRESSWZ128mr = 15509,
+ VPCOMPRESSWZ128mrk = 15510,
+ VPCOMPRESSWZ128rr = 15511,
+ VPCOMPRESSWZ128rrk = 15512,
+ VPCOMPRESSWZ128rrkz = 15513,
+ VPCOMPRESSWZ256mr = 15514,
+ VPCOMPRESSWZ256mrk = 15515,
+ VPCOMPRESSWZ256rr = 15516,
+ VPCOMPRESSWZ256rrk = 15517,
+ VPCOMPRESSWZ256rrkz = 15518,
+ VPCOMPRESSWZmr = 15519,
+ VPCOMPRESSWZmrk = 15520,
+ VPCOMPRESSWZrr = 15521,
+ VPCOMPRESSWZrrk = 15522,
+ VPCOMPRESSWZrrkz = 15523,
+ VPCOMQmi = 15524,
+ VPCOMQri = 15525,
+ VPCOMUBmi = 15526,
+ VPCOMUBri = 15527,
+ VPCOMUDmi = 15528,
+ VPCOMUDri = 15529,
+ VPCOMUQmi = 15530,
+ VPCOMUQri = 15531,
+ VPCOMUWmi = 15532,
+ VPCOMUWri = 15533,
+ VPCOMWmi = 15534,
+ VPCOMWri = 15535,
+ VPCONFLICTDZ128rm = 15536,
+ VPCONFLICTDZ128rmb = 15537,
+ VPCONFLICTDZ128rmbk = 15538,
+ VPCONFLICTDZ128rmbkz = 15539,
+ VPCONFLICTDZ128rmk = 15540,
+ VPCONFLICTDZ128rmkz = 15541,
+ VPCONFLICTDZ128rr = 15542,
+ VPCONFLICTDZ128rrk = 15543,
+ VPCONFLICTDZ128rrkz = 15544,
+ VPCONFLICTDZ256rm = 15545,
+ VPCONFLICTDZ256rmb = 15546,
+ VPCONFLICTDZ256rmbk = 15547,
+ VPCONFLICTDZ256rmbkz = 15548,
+ VPCONFLICTDZ256rmk = 15549,
+ VPCONFLICTDZ256rmkz = 15550,
+ VPCONFLICTDZ256rr = 15551,
+ VPCONFLICTDZ256rrk = 15552,
+ VPCONFLICTDZ256rrkz = 15553,
+ VPCONFLICTDZrm = 15554,
+ VPCONFLICTDZrmb = 15555,
+ VPCONFLICTDZrmbk = 15556,
+ VPCONFLICTDZrmbkz = 15557,
+ VPCONFLICTDZrmk = 15558,
+ VPCONFLICTDZrmkz = 15559,
+ VPCONFLICTDZrr = 15560,
+ VPCONFLICTDZrrk = 15561,
+ VPCONFLICTDZrrkz = 15562,
+ VPCONFLICTQZ128rm = 15563,
+ VPCONFLICTQZ128rmb = 15564,
+ VPCONFLICTQZ128rmbk = 15565,
+ VPCONFLICTQZ128rmbkz = 15566,
+ VPCONFLICTQZ128rmk = 15567,
+ VPCONFLICTQZ128rmkz = 15568,
+ VPCONFLICTQZ128rr = 15569,
+ VPCONFLICTQZ128rrk = 15570,
+ VPCONFLICTQZ128rrkz = 15571,
+ VPCONFLICTQZ256rm = 15572,
+ VPCONFLICTQZ256rmb = 15573,
+ VPCONFLICTQZ256rmbk = 15574,
+ VPCONFLICTQZ256rmbkz = 15575,
+ VPCONFLICTQZ256rmk = 15576,
+ VPCONFLICTQZ256rmkz = 15577,
+ VPCONFLICTQZ256rr = 15578,
+ VPCONFLICTQZ256rrk = 15579,
+ VPCONFLICTQZ256rrkz = 15580,
+ VPCONFLICTQZrm = 15581,
+ VPCONFLICTQZrmb = 15582,
+ VPCONFLICTQZrmbk = 15583,
+ VPCONFLICTQZrmbkz = 15584,
+ VPCONFLICTQZrmk = 15585,
+ VPCONFLICTQZrmkz = 15586,
+ VPCONFLICTQZrr = 15587,
+ VPCONFLICTQZrrk = 15588,
+ VPCONFLICTQZrrkz = 15589,
+ VPDPBSSDSYrm = 15590,
+ VPDPBSSDSYrr = 15591,
+ VPDPBSSDSZ128rm = 15592,
+ VPDPBSSDSZ128rmb = 15593,
+ VPDPBSSDSZ128rmbk = 15594,
+ VPDPBSSDSZ128rmbkz = 15595,
+ VPDPBSSDSZ128rmk = 15596,
+ VPDPBSSDSZ128rmkz = 15597,
+ VPDPBSSDSZ128rr = 15598,
+ VPDPBSSDSZ128rrk = 15599,
+ VPDPBSSDSZ128rrkz = 15600,
+ VPDPBSSDSZ256rm = 15601,
+ VPDPBSSDSZ256rmb = 15602,
+ VPDPBSSDSZ256rmbk = 15603,
+ VPDPBSSDSZ256rmbkz = 15604,
+ VPDPBSSDSZ256rmk = 15605,
+ VPDPBSSDSZ256rmkz = 15606,
+ VPDPBSSDSZ256rr = 15607,
+ VPDPBSSDSZ256rrk = 15608,
+ VPDPBSSDSZ256rrkz = 15609,
+ VPDPBSSDSZrm = 15610,
+ VPDPBSSDSZrmb = 15611,
+ VPDPBSSDSZrmbk = 15612,
+ VPDPBSSDSZrmbkz = 15613,
+ VPDPBSSDSZrmk = 15614,
+ VPDPBSSDSZrmkz = 15615,
+ VPDPBSSDSZrr = 15616,
+ VPDPBSSDSZrrk = 15617,
+ VPDPBSSDSZrrkz = 15618,
+ VPDPBSSDSrm = 15619,
+ VPDPBSSDSrr = 15620,
+ VPDPBSSDYrm = 15621,
+ VPDPBSSDYrr = 15622,
+ VPDPBSSDZ128rm = 15623,
+ VPDPBSSDZ128rmb = 15624,
+ VPDPBSSDZ128rmbk = 15625,
+ VPDPBSSDZ128rmbkz = 15626,
+ VPDPBSSDZ128rmk = 15627,
+ VPDPBSSDZ128rmkz = 15628,
+ VPDPBSSDZ128rr = 15629,
+ VPDPBSSDZ128rrk = 15630,
+ VPDPBSSDZ128rrkz = 15631,
+ VPDPBSSDZ256rm = 15632,
+ VPDPBSSDZ256rmb = 15633,
+ VPDPBSSDZ256rmbk = 15634,
+ VPDPBSSDZ256rmbkz = 15635,
+ VPDPBSSDZ256rmk = 15636,
+ VPDPBSSDZ256rmkz = 15637,
+ VPDPBSSDZ256rr = 15638,
+ VPDPBSSDZ256rrk = 15639,
+ VPDPBSSDZ256rrkz = 15640,
+ VPDPBSSDZrm = 15641,
+ VPDPBSSDZrmb = 15642,
+ VPDPBSSDZrmbk = 15643,
+ VPDPBSSDZrmbkz = 15644,
+ VPDPBSSDZrmk = 15645,
+ VPDPBSSDZrmkz = 15646,
+ VPDPBSSDZrr = 15647,
+ VPDPBSSDZrrk = 15648,
+ VPDPBSSDZrrkz = 15649,
+ VPDPBSSDrm = 15650,
+ VPDPBSSDrr = 15651,
+ VPDPBSUDSYrm = 15652,
+ VPDPBSUDSYrr = 15653,
+ VPDPBSUDSZ128rm = 15654,
+ VPDPBSUDSZ128rmb = 15655,
+ VPDPBSUDSZ128rmbk = 15656,
+ VPDPBSUDSZ128rmbkz = 15657,
+ VPDPBSUDSZ128rmk = 15658,
+ VPDPBSUDSZ128rmkz = 15659,
+ VPDPBSUDSZ128rr = 15660,
+ VPDPBSUDSZ128rrk = 15661,
+ VPDPBSUDSZ128rrkz = 15662,
+ VPDPBSUDSZ256rm = 15663,
+ VPDPBSUDSZ256rmb = 15664,
+ VPDPBSUDSZ256rmbk = 15665,
+ VPDPBSUDSZ256rmbkz = 15666,
+ VPDPBSUDSZ256rmk = 15667,
+ VPDPBSUDSZ256rmkz = 15668,
+ VPDPBSUDSZ256rr = 15669,
+ VPDPBSUDSZ256rrk = 15670,
+ VPDPBSUDSZ256rrkz = 15671,
+ VPDPBSUDSZrm = 15672,
+ VPDPBSUDSZrmb = 15673,
+ VPDPBSUDSZrmbk = 15674,
+ VPDPBSUDSZrmbkz = 15675,
+ VPDPBSUDSZrmk = 15676,
+ VPDPBSUDSZrmkz = 15677,
+ VPDPBSUDSZrr = 15678,
+ VPDPBSUDSZrrk = 15679,
+ VPDPBSUDSZrrkz = 15680,
+ VPDPBSUDSrm = 15681,
+ VPDPBSUDSrr = 15682,
+ VPDPBSUDYrm = 15683,
+ VPDPBSUDYrr = 15684,
+ VPDPBSUDZ128rm = 15685,
+ VPDPBSUDZ128rmb = 15686,
+ VPDPBSUDZ128rmbk = 15687,
+ VPDPBSUDZ128rmbkz = 15688,
+ VPDPBSUDZ128rmk = 15689,
+ VPDPBSUDZ128rmkz = 15690,
+ VPDPBSUDZ128rr = 15691,
+ VPDPBSUDZ128rrk = 15692,
+ VPDPBSUDZ128rrkz = 15693,
+ VPDPBSUDZ256rm = 15694,
+ VPDPBSUDZ256rmb = 15695,
+ VPDPBSUDZ256rmbk = 15696,
+ VPDPBSUDZ256rmbkz = 15697,
+ VPDPBSUDZ256rmk = 15698,
+ VPDPBSUDZ256rmkz = 15699,
+ VPDPBSUDZ256rr = 15700,
+ VPDPBSUDZ256rrk = 15701,
+ VPDPBSUDZ256rrkz = 15702,
+ VPDPBSUDZrm = 15703,
+ VPDPBSUDZrmb = 15704,
+ VPDPBSUDZrmbk = 15705,
+ VPDPBSUDZrmbkz = 15706,
+ VPDPBSUDZrmk = 15707,
+ VPDPBSUDZrmkz = 15708,
+ VPDPBSUDZrr = 15709,
+ VPDPBSUDZrrk = 15710,
+ VPDPBSUDZrrkz = 15711,
+ VPDPBSUDrm = 15712,
+ VPDPBSUDrr = 15713,
+ VPDPBUSDSYrm = 15714,
+ VPDPBUSDSYrr = 15715,
+ VPDPBUSDSZ128rm = 15716,
+ VPDPBUSDSZ128rmb = 15717,
+ VPDPBUSDSZ128rmbk = 15718,
+ VPDPBUSDSZ128rmbkz = 15719,
+ VPDPBUSDSZ128rmk = 15720,
+ VPDPBUSDSZ128rmkz = 15721,
+ VPDPBUSDSZ128rr = 15722,
+ VPDPBUSDSZ128rrk = 15723,
+ VPDPBUSDSZ128rrkz = 15724,
+ VPDPBUSDSZ256rm = 15725,
+ VPDPBUSDSZ256rmb = 15726,
+ VPDPBUSDSZ256rmbk = 15727,
+ VPDPBUSDSZ256rmbkz = 15728,
+ VPDPBUSDSZ256rmk = 15729,
+ VPDPBUSDSZ256rmkz = 15730,
+ VPDPBUSDSZ256rr = 15731,
+ VPDPBUSDSZ256rrk = 15732,
+ VPDPBUSDSZ256rrkz = 15733,
+ VPDPBUSDSZrm = 15734,
+ VPDPBUSDSZrmb = 15735,
+ VPDPBUSDSZrmbk = 15736,
+ VPDPBUSDSZrmbkz = 15737,
+ VPDPBUSDSZrmk = 15738,
+ VPDPBUSDSZrmkz = 15739,
+ VPDPBUSDSZrr = 15740,
+ VPDPBUSDSZrrk = 15741,
+ VPDPBUSDSZrrkz = 15742,
+ VPDPBUSDSrm = 15743,
+ VPDPBUSDSrr = 15744,
+ VPDPBUSDYrm = 15745,
+ VPDPBUSDYrr = 15746,
+ VPDPBUSDZ128rm = 15747,
+ VPDPBUSDZ128rmb = 15748,
+ VPDPBUSDZ128rmbk = 15749,
+ VPDPBUSDZ128rmbkz = 15750,
+ VPDPBUSDZ128rmk = 15751,
+ VPDPBUSDZ128rmkz = 15752,
+ VPDPBUSDZ128rr = 15753,
+ VPDPBUSDZ128rrk = 15754,
+ VPDPBUSDZ128rrkz = 15755,
+ VPDPBUSDZ256rm = 15756,
+ VPDPBUSDZ256rmb = 15757,
+ VPDPBUSDZ256rmbk = 15758,
+ VPDPBUSDZ256rmbkz = 15759,
+ VPDPBUSDZ256rmk = 15760,
+ VPDPBUSDZ256rmkz = 15761,
+ VPDPBUSDZ256rr = 15762,
+ VPDPBUSDZ256rrk = 15763,
+ VPDPBUSDZ256rrkz = 15764,
+ VPDPBUSDZrm = 15765,
+ VPDPBUSDZrmb = 15766,
+ VPDPBUSDZrmbk = 15767,
+ VPDPBUSDZrmbkz = 15768,
+ VPDPBUSDZrmk = 15769,
+ VPDPBUSDZrmkz = 15770,
+ VPDPBUSDZrr = 15771,
+ VPDPBUSDZrrk = 15772,
+ VPDPBUSDZrrkz = 15773,
+ VPDPBUSDrm = 15774,
+ VPDPBUSDrr = 15775,
+ VPDPBUUDSYrm = 15776,
+ VPDPBUUDSYrr = 15777,
+ VPDPBUUDSZ128rm = 15778,
+ VPDPBUUDSZ128rmb = 15779,
+ VPDPBUUDSZ128rmbk = 15780,
+ VPDPBUUDSZ128rmbkz = 15781,
+ VPDPBUUDSZ128rmk = 15782,
+ VPDPBUUDSZ128rmkz = 15783,
+ VPDPBUUDSZ128rr = 15784,
+ VPDPBUUDSZ128rrk = 15785,
+ VPDPBUUDSZ128rrkz = 15786,
+ VPDPBUUDSZ256rm = 15787,
+ VPDPBUUDSZ256rmb = 15788,
+ VPDPBUUDSZ256rmbk = 15789,
+ VPDPBUUDSZ256rmbkz = 15790,
+ VPDPBUUDSZ256rmk = 15791,
+ VPDPBUUDSZ256rmkz = 15792,
+ VPDPBUUDSZ256rr = 15793,
+ VPDPBUUDSZ256rrk = 15794,
+ VPDPBUUDSZ256rrkz = 15795,
+ VPDPBUUDSZrm = 15796,
+ VPDPBUUDSZrmb = 15797,
+ VPDPBUUDSZrmbk = 15798,
+ VPDPBUUDSZrmbkz = 15799,
+ VPDPBUUDSZrmk = 15800,
+ VPDPBUUDSZrmkz = 15801,
+ VPDPBUUDSZrr = 15802,
+ VPDPBUUDSZrrk = 15803,
+ VPDPBUUDSZrrkz = 15804,
+ VPDPBUUDSrm = 15805,
+ VPDPBUUDSrr = 15806,
+ VPDPBUUDYrm = 15807,
+ VPDPBUUDYrr = 15808,
+ VPDPBUUDZ128rm = 15809,
+ VPDPBUUDZ128rmb = 15810,
+ VPDPBUUDZ128rmbk = 15811,
+ VPDPBUUDZ128rmbkz = 15812,
+ VPDPBUUDZ128rmk = 15813,
+ VPDPBUUDZ128rmkz = 15814,
+ VPDPBUUDZ128rr = 15815,
+ VPDPBUUDZ128rrk = 15816,
+ VPDPBUUDZ128rrkz = 15817,
+ VPDPBUUDZ256rm = 15818,
+ VPDPBUUDZ256rmb = 15819,
+ VPDPBUUDZ256rmbk = 15820,
+ VPDPBUUDZ256rmbkz = 15821,
+ VPDPBUUDZ256rmk = 15822,
+ VPDPBUUDZ256rmkz = 15823,
+ VPDPBUUDZ256rr = 15824,
+ VPDPBUUDZ256rrk = 15825,
+ VPDPBUUDZ256rrkz = 15826,
+ VPDPBUUDZrm = 15827,
+ VPDPBUUDZrmb = 15828,
+ VPDPBUUDZrmbk = 15829,
+ VPDPBUUDZrmbkz = 15830,
+ VPDPBUUDZrmk = 15831,
+ VPDPBUUDZrmkz = 15832,
+ VPDPBUUDZrr = 15833,
+ VPDPBUUDZrrk = 15834,
+ VPDPBUUDZrrkz = 15835,
+ VPDPBUUDrm = 15836,
+ VPDPBUUDrr = 15837,
+ VPDPWSSDSYrm = 15838,
+ VPDPWSSDSYrr = 15839,
+ VPDPWSSDSZ128rm = 15840,
+ VPDPWSSDSZ128rmb = 15841,
+ VPDPWSSDSZ128rmbk = 15842,
+ VPDPWSSDSZ128rmbkz = 15843,
+ VPDPWSSDSZ128rmk = 15844,
+ VPDPWSSDSZ128rmkz = 15845,
+ VPDPWSSDSZ128rr = 15846,
+ VPDPWSSDSZ128rrk = 15847,
+ VPDPWSSDSZ128rrkz = 15848,
+ VPDPWSSDSZ256rm = 15849,
+ VPDPWSSDSZ256rmb = 15850,
+ VPDPWSSDSZ256rmbk = 15851,
+ VPDPWSSDSZ256rmbkz = 15852,
+ VPDPWSSDSZ256rmk = 15853,
+ VPDPWSSDSZ256rmkz = 15854,
+ VPDPWSSDSZ256rr = 15855,
+ VPDPWSSDSZ256rrk = 15856,
+ VPDPWSSDSZ256rrkz = 15857,
+ VPDPWSSDSZrm = 15858,
+ VPDPWSSDSZrmb = 15859,
+ VPDPWSSDSZrmbk = 15860,
+ VPDPWSSDSZrmbkz = 15861,
+ VPDPWSSDSZrmk = 15862,
+ VPDPWSSDSZrmkz = 15863,
+ VPDPWSSDSZrr = 15864,
+ VPDPWSSDSZrrk = 15865,
+ VPDPWSSDSZrrkz = 15866,
+ VPDPWSSDSrm = 15867,
+ VPDPWSSDSrr = 15868,
+ VPDPWSSDYrm = 15869,
+ VPDPWSSDYrr = 15870,
+ VPDPWSSDZ128rm = 15871,
+ VPDPWSSDZ128rmb = 15872,
+ VPDPWSSDZ128rmbk = 15873,
+ VPDPWSSDZ128rmbkz = 15874,
+ VPDPWSSDZ128rmk = 15875,
+ VPDPWSSDZ128rmkz = 15876,
+ VPDPWSSDZ128rr = 15877,
+ VPDPWSSDZ128rrk = 15878,
+ VPDPWSSDZ128rrkz = 15879,
+ VPDPWSSDZ256rm = 15880,
+ VPDPWSSDZ256rmb = 15881,
+ VPDPWSSDZ256rmbk = 15882,
+ VPDPWSSDZ256rmbkz = 15883,
+ VPDPWSSDZ256rmk = 15884,
+ VPDPWSSDZ256rmkz = 15885,
+ VPDPWSSDZ256rr = 15886,
+ VPDPWSSDZ256rrk = 15887,
+ VPDPWSSDZ256rrkz = 15888,
+ VPDPWSSDZrm = 15889,
+ VPDPWSSDZrmb = 15890,
+ VPDPWSSDZrmbk = 15891,
+ VPDPWSSDZrmbkz = 15892,
+ VPDPWSSDZrmk = 15893,
+ VPDPWSSDZrmkz = 15894,
+ VPDPWSSDZrr = 15895,
+ VPDPWSSDZrrk = 15896,
+ VPDPWSSDZrrkz = 15897,
+ VPDPWSSDrm = 15898,
+ VPDPWSSDrr = 15899,
+ VPDPWSUDSYrm = 15900,
+ VPDPWSUDSYrr = 15901,
+ VPDPWSUDSZ128rm = 15902,
+ VPDPWSUDSZ128rmb = 15903,
+ VPDPWSUDSZ128rmbk = 15904,
+ VPDPWSUDSZ128rmbkz = 15905,
+ VPDPWSUDSZ128rmk = 15906,
+ VPDPWSUDSZ128rmkz = 15907,
+ VPDPWSUDSZ128rr = 15908,
+ VPDPWSUDSZ128rrk = 15909,
+ VPDPWSUDSZ128rrkz = 15910,
+ VPDPWSUDSZ256rm = 15911,
+ VPDPWSUDSZ256rmb = 15912,
+ VPDPWSUDSZ256rmbk = 15913,
+ VPDPWSUDSZ256rmbkz = 15914,
+ VPDPWSUDSZ256rmk = 15915,
+ VPDPWSUDSZ256rmkz = 15916,
+ VPDPWSUDSZ256rr = 15917,
+ VPDPWSUDSZ256rrk = 15918,
+ VPDPWSUDSZ256rrkz = 15919,
+ VPDPWSUDSZrm = 15920,
+ VPDPWSUDSZrmb = 15921,
+ VPDPWSUDSZrmbk = 15922,
+ VPDPWSUDSZrmbkz = 15923,
+ VPDPWSUDSZrmk = 15924,
+ VPDPWSUDSZrmkz = 15925,
+ VPDPWSUDSZrr = 15926,
+ VPDPWSUDSZrrk = 15927,
+ VPDPWSUDSZrrkz = 15928,
+ VPDPWSUDSrm = 15929,
+ VPDPWSUDSrr = 15930,
+ VPDPWSUDYrm = 15931,
+ VPDPWSUDYrr = 15932,
+ VPDPWSUDZ128rm = 15933,
+ VPDPWSUDZ128rmb = 15934,
+ VPDPWSUDZ128rmbk = 15935,
+ VPDPWSUDZ128rmbkz = 15936,
+ VPDPWSUDZ128rmk = 15937,
+ VPDPWSUDZ128rmkz = 15938,
+ VPDPWSUDZ128rr = 15939,
+ VPDPWSUDZ128rrk = 15940,
+ VPDPWSUDZ128rrkz = 15941,
+ VPDPWSUDZ256rm = 15942,
+ VPDPWSUDZ256rmb = 15943,
+ VPDPWSUDZ256rmbk = 15944,
+ VPDPWSUDZ256rmbkz = 15945,
+ VPDPWSUDZ256rmk = 15946,
+ VPDPWSUDZ256rmkz = 15947,
+ VPDPWSUDZ256rr = 15948,
+ VPDPWSUDZ256rrk = 15949,
+ VPDPWSUDZ256rrkz = 15950,
+ VPDPWSUDZrm = 15951,
+ VPDPWSUDZrmb = 15952,
+ VPDPWSUDZrmbk = 15953,
+ VPDPWSUDZrmbkz = 15954,
+ VPDPWSUDZrmk = 15955,
+ VPDPWSUDZrmkz = 15956,
+ VPDPWSUDZrr = 15957,
+ VPDPWSUDZrrk = 15958,
+ VPDPWSUDZrrkz = 15959,
+ VPDPWSUDrm = 15960,
+ VPDPWSUDrr = 15961,
+ VPDPWUSDSYrm = 15962,
+ VPDPWUSDSYrr = 15963,
+ VPDPWUSDSZ128rm = 15964,
+ VPDPWUSDSZ128rmb = 15965,
+ VPDPWUSDSZ128rmbk = 15966,
+ VPDPWUSDSZ128rmbkz = 15967,
+ VPDPWUSDSZ128rmk = 15968,
+ VPDPWUSDSZ128rmkz = 15969,
+ VPDPWUSDSZ128rr = 15970,
+ VPDPWUSDSZ128rrk = 15971,
+ VPDPWUSDSZ128rrkz = 15972,
+ VPDPWUSDSZ256rm = 15973,
+ VPDPWUSDSZ256rmb = 15974,
+ VPDPWUSDSZ256rmbk = 15975,
+ VPDPWUSDSZ256rmbkz = 15976,
+ VPDPWUSDSZ256rmk = 15977,
+ VPDPWUSDSZ256rmkz = 15978,
+ VPDPWUSDSZ256rr = 15979,
+ VPDPWUSDSZ256rrk = 15980,
+ VPDPWUSDSZ256rrkz = 15981,
+ VPDPWUSDSZrm = 15982,
+ VPDPWUSDSZrmb = 15983,
+ VPDPWUSDSZrmbk = 15984,
+ VPDPWUSDSZrmbkz = 15985,
+ VPDPWUSDSZrmk = 15986,
+ VPDPWUSDSZrmkz = 15987,
+ VPDPWUSDSZrr = 15988,
+ VPDPWUSDSZrrk = 15989,
+ VPDPWUSDSZrrkz = 15990,
+ VPDPWUSDSrm = 15991,
+ VPDPWUSDSrr = 15992,
+ VPDPWUSDYrm = 15993,
+ VPDPWUSDYrr = 15994,
+ VPDPWUSDZ128rm = 15995,
+ VPDPWUSDZ128rmb = 15996,
+ VPDPWUSDZ128rmbk = 15997,
+ VPDPWUSDZ128rmbkz = 15998,
+ VPDPWUSDZ128rmk = 15999,
+ VPDPWUSDZ128rmkz = 16000,
+ VPDPWUSDZ128rr = 16001,
+ VPDPWUSDZ128rrk = 16002,
+ VPDPWUSDZ128rrkz = 16003,
+ VPDPWUSDZ256rm = 16004,
+ VPDPWUSDZ256rmb = 16005,
+ VPDPWUSDZ256rmbk = 16006,
+ VPDPWUSDZ256rmbkz = 16007,
+ VPDPWUSDZ256rmk = 16008,
+ VPDPWUSDZ256rmkz = 16009,
+ VPDPWUSDZ256rr = 16010,
+ VPDPWUSDZ256rrk = 16011,
+ VPDPWUSDZ256rrkz = 16012,
+ VPDPWUSDZrm = 16013,
+ VPDPWUSDZrmb = 16014,
+ VPDPWUSDZrmbk = 16015,
+ VPDPWUSDZrmbkz = 16016,
+ VPDPWUSDZrmk = 16017,
+ VPDPWUSDZrmkz = 16018,
+ VPDPWUSDZrr = 16019,
+ VPDPWUSDZrrk = 16020,
+ VPDPWUSDZrrkz = 16021,
+ VPDPWUSDrm = 16022,
+ VPDPWUSDrr = 16023,
+ VPDPWUUDSYrm = 16024,
+ VPDPWUUDSYrr = 16025,
+ VPDPWUUDSZ128rm = 16026,
+ VPDPWUUDSZ128rmb = 16027,
+ VPDPWUUDSZ128rmbk = 16028,
+ VPDPWUUDSZ128rmbkz = 16029,
+ VPDPWUUDSZ128rmk = 16030,
+ VPDPWUUDSZ128rmkz = 16031,
+ VPDPWUUDSZ128rr = 16032,
+ VPDPWUUDSZ128rrk = 16033,
+ VPDPWUUDSZ128rrkz = 16034,
+ VPDPWUUDSZ256rm = 16035,
+ VPDPWUUDSZ256rmb = 16036,
+ VPDPWUUDSZ256rmbk = 16037,
+ VPDPWUUDSZ256rmbkz = 16038,
+ VPDPWUUDSZ256rmk = 16039,
+ VPDPWUUDSZ256rmkz = 16040,
+ VPDPWUUDSZ256rr = 16041,
+ VPDPWUUDSZ256rrk = 16042,
+ VPDPWUUDSZ256rrkz = 16043,
+ VPDPWUUDSZrm = 16044,
+ VPDPWUUDSZrmb = 16045,
+ VPDPWUUDSZrmbk = 16046,
+ VPDPWUUDSZrmbkz = 16047,
+ VPDPWUUDSZrmk = 16048,
+ VPDPWUUDSZrmkz = 16049,
+ VPDPWUUDSZrr = 16050,
+ VPDPWUUDSZrrk = 16051,
+ VPDPWUUDSZrrkz = 16052,
+ VPDPWUUDSrm = 16053,
+ VPDPWUUDSrr = 16054,
+ VPDPWUUDYrm = 16055,
+ VPDPWUUDYrr = 16056,
+ VPDPWUUDZ128rm = 16057,
+ VPDPWUUDZ128rmb = 16058,
+ VPDPWUUDZ128rmbk = 16059,
+ VPDPWUUDZ128rmbkz = 16060,
+ VPDPWUUDZ128rmk = 16061,
+ VPDPWUUDZ128rmkz = 16062,
+ VPDPWUUDZ128rr = 16063,
+ VPDPWUUDZ128rrk = 16064,
+ VPDPWUUDZ128rrkz = 16065,
+ VPDPWUUDZ256rm = 16066,
+ VPDPWUUDZ256rmb = 16067,
+ VPDPWUUDZ256rmbk = 16068,
+ VPDPWUUDZ256rmbkz = 16069,
+ VPDPWUUDZ256rmk = 16070,
+ VPDPWUUDZ256rmkz = 16071,
+ VPDPWUUDZ256rr = 16072,
+ VPDPWUUDZ256rrk = 16073,
+ VPDPWUUDZ256rrkz = 16074,
+ VPDPWUUDZrm = 16075,
+ VPDPWUUDZrmb = 16076,
+ VPDPWUUDZrmbk = 16077,
+ VPDPWUUDZrmbkz = 16078,
+ VPDPWUUDZrmk = 16079,
+ VPDPWUUDZrmkz = 16080,
+ VPDPWUUDZrr = 16081,
+ VPDPWUUDZrrk = 16082,
+ VPDPWUUDZrrkz = 16083,
+ VPDPWUUDrm = 16084,
+ VPDPWUUDrr = 16085,
+ VPERM2F128rmi = 16086,
+ VPERM2F128rri = 16087,
+ VPERM2I128rmi = 16088,
+ VPERM2I128rri = 16089,
+ VPERMBZ128rm = 16090,
+ VPERMBZ128rmk = 16091,
+ VPERMBZ128rmkz = 16092,
+ VPERMBZ128rr = 16093,
+ VPERMBZ128rrk = 16094,
+ VPERMBZ128rrkz = 16095,
+ VPERMBZ256rm = 16096,
+ VPERMBZ256rmk = 16097,
+ VPERMBZ256rmkz = 16098,
+ VPERMBZ256rr = 16099,
+ VPERMBZ256rrk = 16100,
+ VPERMBZ256rrkz = 16101,
+ VPERMBZrm = 16102,
+ VPERMBZrmk = 16103,
+ VPERMBZrmkz = 16104,
+ VPERMBZrr = 16105,
+ VPERMBZrrk = 16106,
+ VPERMBZrrkz = 16107,
+ VPERMDYrm = 16108,
+ VPERMDYrr = 16109,
+ VPERMDZ256rm = 16110,
+ VPERMDZ256rmb = 16111,
+ VPERMDZ256rmbk = 16112,
+ VPERMDZ256rmbkz = 16113,
+ VPERMDZ256rmk = 16114,
+ VPERMDZ256rmkz = 16115,
+ VPERMDZ256rr = 16116,
+ VPERMDZ256rrk = 16117,
+ VPERMDZ256rrkz = 16118,
+ VPERMDZrm = 16119,
+ VPERMDZrmb = 16120,
+ VPERMDZrmbk = 16121,
+ VPERMDZrmbkz = 16122,
+ VPERMDZrmk = 16123,
+ VPERMDZrmkz = 16124,
+ VPERMDZrr = 16125,
+ VPERMDZrrk = 16126,
+ VPERMDZrrkz = 16127,
+ VPERMI2BZ128rm = 16128,
+ VPERMI2BZ128rmk = 16129,
+ VPERMI2BZ128rmkz = 16130,
+ VPERMI2BZ128rr = 16131,
+ VPERMI2BZ128rrk = 16132,
+ VPERMI2BZ128rrkz = 16133,
+ VPERMI2BZ256rm = 16134,
+ VPERMI2BZ256rmk = 16135,
+ VPERMI2BZ256rmkz = 16136,
+ VPERMI2BZ256rr = 16137,
+ VPERMI2BZ256rrk = 16138,
+ VPERMI2BZ256rrkz = 16139,
+ VPERMI2BZrm = 16140,
+ VPERMI2BZrmk = 16141,
+ VPERMI2BZrmkz = 16142,
+ VPERMI2BZrr = 16143,
+ VPERMI2BZrrk = 16144,
+ VPERMI2BZrrkz = 16145,
+ VPERMI2DZ128rm = 16146,
+ VPERMI2DZ128rmb = 16147,
+ VPERMI2DZ128rmbk = 16148,
+ VPERMI2DZ128rmbkz = 16149,
+ VPERMI2DZ128rmk = 16150,
+ VPERMI2DZ128rmkz = 16151,
+ VPERMI2DZ128rr = 16152,
+ VPERMI2DZ128rrk = 16153,
+ VPERMI2DZ128rrkz = 16154,
+ VPERMI2DZ256rm = 16155,
+ VPERMI2DZ256rmb = 16156,
+ VPERMI2DZ256rmbk = 16157,
+ VPERMI2DZ256rmbkz = 16158,
+ VPERMI2DZ256rmk = 16159,
+ VPERMI2DZ256rmkz = 16160,
+ VPERMI2DZ256rr = 16161,
+ VPERMI2DZ256rrk = 16162,
+ VPERMI2DZ256rrkz = 16163,
+ VPERMI2DZrm = 16164,
+ VPERMI2DZrmb = 16165,
+ VPERMI2DZrmbk = 16166,
+ VPERMI2DZrmbkz = 16167,
+ VPERMI2DZrmk = 16168,
+ VPERMI2DZrmkz = 16169,
+ VPERMI2DZrr = 16170,
+ VPERMI2DZrrk = 16171,
+ VPERMI2DZrrkz = 16172,
+ VPERMI2PDZ128rm = 16173,
+ VPERMI2PDZ128rmb = 16174,
+ VPERMI2PDZ128rmbk = 16175,
+ VPERMI2PDZ128rmbkz = 16176,
+ VPERMI2PDZ128rmk = 16177,
+ VPERMI2PDZ128rmkz = 16178,
+ VPERMI2PDZ128rr = 16179,
+ VPERMI2PDZ128rrk = 16180,
+ VPERMI2PDZ128rrkz = 16181,
+ VPERMI2PDZ256rm = 16182,
+ VPERMI2PDZ256rmb = 16183,
+ VPERMI2PDZ256rmbk = 16184,
+ VPERMI2PDZ256rmbkz = 16185,
+ VPERMI2PDZ256rmk = 16186,
+ VPERMI2PDZ256rmkz = 16187,
+ VPERMI2PDZ256rr = 16188,
+ VPERMI2PDZ256rrk = 16189,
+ VPERMI2PDZ256rrkz = 16190,
+ VPERMI2PDZrm = 16191,
+ VPERMI2PDZrmb = 16192,
+ VPERMI2PDZrmbk = 16193,
+ VPERMI2PDZrmbkz = 16194,
+ VPERMI2PDZrmk = 16195,
+ VPERMI2PDZrmkz = 16196,
+ VPERMI2PDZrr = 16197,
+ VPERMI2PDZrrk = 16198,
+ VPERMI2PDZrrkz = 16199,
+ VPERMI2PSZ128rm = 16200,
+ VPERMI2PSZ128rmb = 16201,
+ VPERMI2PSZ128rmbk = 16202,
+ VPERMI2PSZ128rmbkz = 16203,
+ VPERMI2PSZ128rmk = 16204,
+ VPERMI2PSZ128rmkz = 16205,
+ VPERMI2PSZ128rr = 16206,
+ VPERMI2PSZ128rrk = 16207,
+ VPERMI2PSZ128rrkz = 16208,
+ VPERMI2PSZ256rm = 16209,
+ VPERMI2PSZ256rmb = 16210,
+ VPERMI2PSZ256rmbk = 16211,
+ VPERMI2PSZ256rmbkz = 16212,
+ VPERMI2PSZ256rmk = 16213,
+ VPERMI2PSZ256rmkz = 16214,
+ VPERMI2PSZ256rr = 16215,
+ VPERMI2PSZ256rrk = 16216,
+ VPERMI2PSZ256rrkz = 16217,
+ VPERMI2PSZrm = 16218,
+ VPERMI2PSZrmb = 16219,
+ VPERMI2PSZrmbk = 16220,
+ VPERMI2PSZrmbkz = 16221,
+ VPERMI2PSZrmk = 16222,
+ VPERMI2PSZrmkz = 16223,
+ VPERMI2PSZrr = 16224,
+ VPERMI2PSZrrk = 16225,
+ VPERMI2PSZrrkz = 16226,
+ VPERMI2QZ128rm = 16227,
+ VPERMI2QZ128rmb = 16228,
+ VPERMI2QZ128rmbk = 16229,
+ VPERMI2QZ128rmbkz = 16230,
+ VPERMI2QZ128rmk = 16231,
+ VPERMI2QZ128rmkz = 16232,
+ VPERMI2QZ128rr = 16233,
+ VPERMI2QZ128rrk = 16234,
+ VPERMI2QZ128rrkz = 16235,
+ VPERMI2QZ256rm = 16236,
+ VPERMI2QZ256rmb = 16237,
+ VPERMI2QZ256rmbk = 16238,
+ VPERMI2QZ256rmbkz = 16239,
+ VPERMI2QZ256rmk = 16240,
+ VPERMI2QZ256rmkz = 16241,
+ VPERMI2QZ256rr = 16242,
+ VPERMI2QZ256rrk = 16243,
+ VPERMI2QZ256rrkz = 16244,
+ VPERMI2QZrm = 16245,
+ VPERMI2QZrmb = 16246,
+ VPERMI2QZrmbk = 16247,
+ VPERMI2QZrmbkz = 16248,
+ VPERMI2QZrmk = 16249,
+ VPERMI2QZrmkz = 16250,
+ VPERMI2QZrr = 16251,
+ VPERMI2QZrrk = 16252,
+ VPERMI2QZrrkz = 16253,
+ VPERMI2WZ128rm = 16254,
+ VPERMI2WZ128rmk = 16255,
+ VPERMI2WZ128rmkz = 16256,
+ VPERMI2WZ128rr = 16257,
+ VPERMI2WZ128rrk = 16258,
+ VPERMI2WZ128rrkz = 16259,
+ VPERMI2WZ256rm = 16260,
+ VPERMI2WZ256rmk = 16261,
+ VPERMI2WZ256rmkz = 16262,
+ VPERMI2WZ256rr = 16263,
+ VPERMI2WZ256rrk = 16264,
+ VPERMI2WZ256rrkz = 16265,
+ VPERMI2WZrm = 16266,
+ VPERMI2WZrmk = 16267,
+ VPERMI2WZrmkz = 16268,
+ VPERMI2WZrr = 16269,
+ VPERMI2WZrrk = 16270,
+ VPERMI2WZrrkz = 16271,
+ VPERMIL2PDYmr = 16272,
+ VPERMIL2PDYrm = 16273,
+ VPERMIL2PDYrr = 16274,
+ VPERMIL2PDYrr_REV = 16275,
+ VPERMIL2PDmr = 16276,
+ VPERMIL2PDrm = 16277,
+ VPERMIL2PDrr = 16278,
+ VPERMIL2PDrr_REV = 16279,
+ VPERMIL2PSYmr = 16280,
+ VPERMIL2PSYrm = 16281,
+ VPERMIL2PSYrr = 16282,
+ VPERMIL2PSYrr_REV = 16283,
+ VPERMIL2PSmr = 16284,
+ VPERMIL2PSrm = 16285,
+ VPERMIL2PSrr = 16286,
+ VPERMIL2PSrr_REV = 16287,
+ VPERMILPDYmi = 16288,
+ VPERMILPDYri = 16289,
+ VPERMILPDYrm = 16290,
+ VPERMILPDYrr = 16291,
+ VPERMILPDZ128mbi = 16292,
+ VPERMILPDZ128mbik = 16293,
+ VPERMILPDZ128mbikz = 16294,
+ VPERMILPDZ128mi = 16295,
+ VPERMILPDZ128mik = 16296,
+ VPERMILPDZ128mikz = 16297,
+ VPERMILPDZ128ri = 16298,
+ VPERMILPDZ128rik = 16299,
+ VPERMILPDZ128rikz = 16300,
+ VPERMILPDZ128rm = 16301,
+ VPERMILPDZ128rmb = 16302,
+ VPERMILPDZ128rmbk = 16303,
+ VPERMILPDZ128rmbkz = 16304,
+ VPERMILPDZ128rmk = 16305,
+ VPERMILPDZ128rmkz = 16306,
+ VPERMILPDZ128rr = 16307,
+ VPERMILPDZ128rrk = 16308,
+ VPERMILPDZ128rrkz = 16309,
+ VPERMILPDZ256mbi = 16310,
+ VPERMILPDZ256mbik = 16311,
+ VPERMILPDZ256mbikz = 16312,
+ VPERMILPDZ256mi = 16313,
+ VPERMILPDZ256mik = 16314,
+ VPERMILPDZ256mikz = 16315,
+ VPERMILPDZ256ri = 16316,
+ VPERMILPDZ256rik = 16317,
+ VPERMILPDZ256rikz = 16318,
+ VPERMILPDZ256rm = 16319,
+ VPERMILPDZ256rmb = 16320,
+ VPERMILPDZ256rmbk = 16321,
+ VPERMILPDZ256rmbkz = 16322,
+ VPERMILPDZ256rmk = 16323,
+ VPERMILPDZ256rmkz = 16324,
+ VPERMILPDZ256rr = 16325,
+ VPERMILPDZ256rrk = 16326,
+ VPERMILPDZ256rrkz = 16327,
+ VPERMILPDZmbi = 16328,
+ VPERMILPDZmbik = 16329,
+ VPERMILPDZmbikz = 16330,
+ VPERMILPDZmi = 16331,
+ VPERMILPDZmik = 16332,
+ VPERMILPDZmikz = 16333,
+ VPERMILPDZri = 16334,
+ VPERMILPDZrik = 16335,
+ VPERMILPDZrikz = 16336,
+ VPERMILPDZrm = 16337,
+ VPERMILPDZrmb = 16338,
+ VPERMILPDZrmbk = 16339,
+ VPERMILPDZrmbkz = 16340,
+ VPERMILPDZrmk = 16341,
+ VPERMILPDZrmkz = 16342,
+ VPERMILPDZrr = 16343,
+ VPERMILPDZrrk = 16344,
+ VPERMILPDZrrkz = 16345,
+ VPERMILPDmi = 16346,
+ VPERMILPDri = 16347,
+ VPERMILPDrm = 16348,
+ VPERMILPDrr = 16349,
+ VPERMILPSYmi = 16350,
+ VPERMILPSYri = 16351,
+ VPERMILPSYrm = 16352,
+ VPERMILPSYrr = 16353,
+ VPERMILPSZ128mbi = 16354,
+ VPERMILPSZ128mbik = 16355,
+ VPERMILPSZ128mbikz = 16356,
+ VPERMILPSZ128mi = 16357,
+ VPERMILPSZ128mik = 16358,
+ VPERMILPSZ128mikz = 16359,
+ VPERMILPSZ128ri = 16360,
+ VPERMILPSZ128rik = 16361,
+ VPERMILPSZ128rikz = 16362,
+ VPERMILPSZ128rm = 16363,
+ VPERMILPSZ128rmb = 16364,
+ VPERMILPSZ128rmbk = 16365,
+ VPERMILPSZ128rmbkz = 16366,
+ VPERMILPSZ128rmk = 16367,
+ VPERMILPSZ128rmkz = 16368,
+ VPERMILPSZ128rr = 16369,
+ VPERMILPSZ128rrk = 16370,
+ VPERMILPSZ128rrkz = 16371,
+ VPERMILPSZ256mbi = 16372,
+ VPERMILPSZ256mbik = 16373,
+ VPERMILPSZ256mbikz = 16374,
+ VPERMILPSZ256mi = 16375,
+ VPERMILPSZ256mik = 16376,
+ VPERMILPSZ256mikz = 16377,
+ VPERMILPSZ256ri = 16378,
+ VPERMILPSZ256rik = 16379,
+ VPERMILPSZ256rikz = 16380,
+ VPERMILPSZ256rm = 16381,
+ VPERMILPSZ256rmb = 16382,
+ VPERMILPSZ256rmbk = 16383,
+ VPERMILPSZ256rmbkz = 16384,
+ VPERMILPSZ256rmk = 16385,
+ VPERMILPSZ256rmkz = 16386,
+ VPERMILPSZ256rr = 16387,
+ VPERMILPSZ256rrk = 16388,
+ VPERMILPSZ256rrkz = 16389,
+ VPERMILPSZmbi = 16390,
+ VPERMILPSZmbik = 16391,
+ VPERMILPSZmbikz = 16392,
+ VPERMILPSZmi = 16393,
+ VPERMILPSZmik = 16394,
+ VPERMILPSZmikz = 16395,
+ VPERMILPSZri = 16396,
+ VPERMILPSZrik = 16397,
+ VPERMILPSZrikz = 16398,
+ VPERMILPSZrm = 16399,
+ VPERMILPSZrmb = 16400,
+ VPERMILPSZrmbk = 16401,
+ VPERMILPSZrmbkz = 16402,
+ VPERMILPSZrmk = 16403,
+ VPERMILPSZrmkz = 16404,
+ VPERMILPSZrr = 16405,
+ VPERMILPSZrrk = 16406,
+ VPERMILPSZrrkz = 16407,
+ VPERMILPSmi = 16408,
+ VPERMILPSri = 16409,
+ VPERMILPSrm = 16410,
+ VPERMILPSrr = 16411,
+ VPERMPDYmi = 16412,
+ VPERMPDYri = 16413,
+ VPERMPDZ256mbi = 16414,
+ VPERMPDZ256mbik = 16415,
+ VPERMPDZ256mbikz = 16416,
+ VPERMPDZ256mi = 16417,
+ VPERMPDZ256mik = 16418,
+ VPERMPDZ256mikz = 16419,
+ VPERMPDZ256ri = 16420,
+ VPERMPDZ256rik = 16421,
+ VPERMPDZ256rikz = 16422,
+ VPERMPDZ256rm = 16423,
+ VPERMPDZ256rmb = 16424,
+ VPERMPDZ256rmbk = 16425,
+ VPERMPDZ256rmbkz = 16426,
+ VPERMPDZ256rmk = 16427,
+ VPERMPDZ256rmkz = 16428,
+ VPERMPDZ256rr = 16429,
+ VPERMPDZ256rrk = 16430,
+ VPERMPDZ256rrkz = 16431,
+ VPERMPDZmbi = 16432,
+ VPERMPDZmbik = 16433,
+ VPERMPDZmbikz = 16434,
+ VPERMPDZmi = 16435,
+ VPERMPDZmik = 16436,
+ VPERMPDZmikz = 16437,
+ VPERMPDZri = 16438,
+ VPERMPDZrik = 16439,
+ VPERMPDZrikz = 16440,
+ VPERMPDZrm = 16441,
+ VPERMPDZrmb = 16442,
+ VPERMPDZrmbk = 16443,
+ VPERMPDZrmbkz = 16444,
+ VPERMPDZrmk = 16445,
+ VPERMPDZrmkz = 16446,
+ VPERMPDZrr = 16447,
+ VPERMPDZrrk = 16448,
+ VPERMPDZrrkz = 16449,
+ VPERMPSYrm = 16450,
+ VPERMPSYrr = 16451,
+ VPERMPSZ256rm = 16452,
+ VPERMPSZ256rmb = 16453,
+ VPERMPSZ256rmbk = 16454,
+ VPERMPSZ256rmbkz = 16455,
+ VPERMPSZ256rmk = 16456,
+ VPERMPSZ256rmkz = 16457,
+ VPERMPSZ256rr = 16458,
+ VPERMPSZ256rrk = 16459,
+ VPERMPSZ256rrkz = 16460,
+ VPERMPSZrm = 16461,
+ VPERMPSZrmb = 16462,
+ VPERMPSZrmbk = 16463,
+ VPERMPSZrmbkz = 16464,
+ VPERMPSZrmk = 16465,
+ VPERMPSZrmkz = 16466,
+ VPERMPSZrr = 16467,
+ VPERMPSZrrk = 16468,
+ VPERMPSZrrkz = 16469,
+ VPERMQYmi = 16470,
+ VPERMQYri = 16471,
+ VPERMQZ256mbi = 16472,
+ VPERMQZ256mbik = 16473,
+ VPERMQZ256mbikz = 16474,
+ VPERMQZ256mi = 16475,
+ VPERMQZ256mik = 16476,
+ VPERMQZ256mikz = 16477,
+ VPERMQZ256ri = 16478,
+ VPERMQZ256rik = 16479,
+ VPERMQZ256rikz = 16480,
+ VPERMQZ256rm = 16481,
+ VPERMQZ256rmb = 16482,
+ VPERMQZ256rmbk = 16483,
+ VPERMQZ256rmbkz = 16484,
+ VPERMQZ256rmk = 16485,
+ VPERMQZ256rmkz = 16486,
+ VPERMQZ256rr = 16487,
+ VPERMQZ256rrk = 16488,
+ VPERMQZ256rrkz = 16489,
+ VPERMQZmbi = 16490,
+ VPERMQZmbik = 16491,
+ VPERMQZmbikz = 16492,
+ VPERMQZmi = 16493,
+ VPERMQZmik = 16494,
+ VPERMQZmikz = 16495,
+ VPERMQZri = 16496,
+ VPERMQZrik = 16497,
+ VPERMQZrikz = 16498,
+ VPERMQZrm = 16499,
+ VPERMQZrmb = 16500,
+ VPERMQZrmbk = 16501,
+ VPERMQZrmbkz = 16502,
+ VPERMQZrmk = 16503,
+ VPERMQZrmkz = 16504,
+ VPERMQZrr = 16505,
+ VPERMQZrrk = 16506,
+ VPERMQZrrkz = 16507,
+ VPERMT2BZ128rm = 16508,
+ VPERMT2BZ128rmk = 16509,
+ VPERMT2BZ128rmkz = 16510,
+ VPERMT2BZ128rr = 16511,
+ VPERMT2BZ128rrk = 16512,
+ VPERMT2BZ128rrkz = 16513,
+ VPERMT2BZ256rm = 16514,
+ VPERMT2BZ256rmk = 16515,
+ VPERMT2BZ256rmkz = 16516,
+ VPERMT2BZ256rr = 16517,
+ VPERMT2BZ256rrk = 16518,
+ VPERMT2BZ256rrkz = 16519,
+ VPERMT2BZrm = 16520,
+ VPERMT2BZrmk = 16521,
+ VPERMT2BZrmkz = 16522,
+ VPERMT2BZrr = 16523,
+ VPERMT2BZrrk = 16524,
+ VPERMT2BZrrkz = 16525,
+ VPERMT2DZ128rm = 16526,
+ VPERMT2DZ128rmb = 16527,
+ VPERMT2DZ128rmbk = 16528,
+ VPERMT2DZ128rmbkz = 16529,
+ VPERMT2DZ128rmk = 16530,
+ VPERMT2DZ128rmkz = 16531,
+ VPERMT2DZ128rr = 16532,
+ VPERMT2DZ128rrk = 16533,
+ VPERMT2DZ128rrkz = 16534,
+ VPERMT2DZ256rm = 16535,
+ VPERMT2DZ256rmb = 16536,
+ VPERMT2DZ256rmbk = 16537,
+ VPERMT2DZ256rmbkz = 16538,
+ VPERMT2DZ256rmk = 16539,
+ VPERMT2DZ256rmkz = 16540,
+ VPERMT2DZ256rr = 16541,
+ VPERMT2DZ256rrk = 16542,
+ VPERMT2DZ256rrkz = 16543,
+ VPERMT2DZrm = 16544,
+ VPERMT2DZrmb = 16545,
+ VPERMT2DZrmbk = 16546,
+ VPERMT2DZrmbkz = 16547,
+ VPERMT2DZrmk = 16548,
+ VPERMT2DZrmkz = 16549,
+ VPERMT2DZrr = 16550,
+ VPERMT2DZrrk = 16551,
+ VPERMT2DZrrkz = 16552,
+ VPERMT2PDZ128rm = 16553,
+ VPERMT2PDZ128rmb = 16554,
+ VPERMT2PDZ128rmbk = 16555,
+ VPERMT2PDZ128rmbkz = 16556,
+ VPERMT2PDZ128rmk = 16557,
+ VPERMT2PDZ128rmkz = 16558,
+ VPERMT2PDZ128rr = 16559,
+ VPERMT2PDZ128rrk = 16560,
+ VPERMT2PDZ128rrkz = 16561,
+ VPERMT2PDZ256rm = 16562,
+ VPERMT2PDZ256rmb = 16563,
+ VPERMT2PDZ256rmbk = 16564,
+ VPERMT2PDZ256rmbkz = 16565,
+ VPERMT2PDZ256rmk = 16566,
+ VPERMT2PDZ256rmkz = 16567,
+ VPERMT2PDZ256rr = 16568,
+ VPERMT2PDZ256rrk = 16569,
+ VPERMT2PDZ256rrkz = 16570,
+ VPERMT2PDZrm = 16571,
+ VPERMT2PDZrmb = 16572,
+ VPERMT2PDZrmbk = 16573,
+ VPERMT2PDZrmbkz = 16574,
+ VPERMT2PDZrmk = 16575,
+ VPERMT2PDZrmkz = 16576,
+ VPERMT2PDZrr = 16577,
+ VPERMT2PDZrrk = 16578,
+ VPERMT2PDZrrkz = 16579,
+ VPERMT2PSZ128rm = 16580,
+ VPERMT2PSZ128rmb = 16581,
+ VPERMT2PSZ128rmbk = 16582,
+ VPERMT2PSZ128rmbkz = 16583,
+ VPERMT2PSZ128rmk = 16584,
+ VPERMT2PSZ128rmkz = 16585,
+ VPERMT2PSZ128rr = 16586,
+ VPERMT2PSZ128rrk = 16587,
+ VPERMT2PSZ128rrkz = 16588,
+ VPERMT2PSZ256rm = 16589,
+ VPERMT2PSZ256rmb = 16590,
+ VPERMT2PSZ256rmbk = 16591,
+ VPERMT2PSZ256rmbkz = 16592,
+ VPERMT2PSZ256rmk = 16593,
+ VPERMT2PSZ256rmkz = 16594,
+ VPERMT2PSZ256rr = 16595,
+ VPERMT2PSZ256rrk = 16596,
+ VPERMT2PSZ256rrkz = 16597,
+ VPERMT2PSZrm = 16598,
+ VPERMT2PSZrmb = 16599,
+ VPERMT2PSZrmbk = 16600,
+ VPERMT2PSZrmbkz = 16601,
+ VPERMT2PSZrmk = 16602,
+ VPERMT2PSZrmkz = 16603,
+ VPERMT2PSZrr = 16604,
+ VPERMT2PSZrrk = 16605,
+ VPERMT2PSZrrkz = 16606,
+ VPERMT2QZ128rm = 16607,
+ VPERMT2QZ128rmb = 16608,
+ VPERMT2QZ128rmbk = 16609,
+ VPERMT2QZ128rmbkz = 16610,
+ VPERMT2QZ128rmk = 16611,
+ VPERMT2QZ128rmkz = 16612,
+ VPERMT2QZ128rr = 16613,
+ VPERMT2QZ128rrk = 16614,
+ VPERMT2QZ128rrkz = 16615,
+ VPERMT2QZ256rm = 16616,
+ VPERMT2QZ256rmb = 16617,
+ VPERMT2QZ256rmbk = 16618,
+ VPERMT2QZ256rmbkz = 16619,
+ VPERMT2QZ256rmk = 16620,
+ VPERMT2QZ256rmkz = 16621,
+ VPERMT2QZ256rr = 16622,
+ VPERMT2QZ256rrk = 16623,
+ VPERMT2QZ256rrkz = 16624,
+ VPERMT2QZrm = 16625,
+ VPERMT2QZrmb = 16626,
+ VPERMT2QZrmbk = 16627,
+ VPERMT2QZrmbkz = 16628,
+ VPERMT2QZrmk = 16629,
+ VPERMT2QZrmkz = 16630,
+ VPERMT2QZrr = 16631,
+ VPERMT2QZrrk = 16632,
+ VPERMT2QZrrkz = 16633,
+ VPERMT2WZ128rm = 16634,
+ VPERMT2WZ128rmk = 16635,
+ VPERMT2WZ128rmkz = 16636,
+ VPERMT2WZ128rr = 16637,
+ VPERMT2WZ128rrk = 16638,
+ VPERMT2WZ128rrkz = 16639,
+ VPERMT2WZ256rm = 16640,
+ VPERMT2WZ256rmk = 16641,
+ VPERMT2WZ256rmkz = 16642,
+ VPERMT2WZ256rr = 16643,
+ VPERMT2WZ256rrk = 16644,
+ VPERMT2WZ256rrkz = 16645,
+ VPERMT2WZrm = 16646,
+ VPERMT2WZrmk = 16647,
+ VPERMT2WZrmkz = 16648,
+ VPERMT2WZrr = 16649,
+ VPERMT2WZrrk = 16650,
+ VPERMT2WZrrkz = 16651,
+ VPERMWZ128rm = 16652,
+ VPERMWZ128rmk = 16653,
+ VPERMWZ128rmkz = 16654,
+ VPERMWZ128rr = 16655,
+ VPERMWZ128rrk = 16656,
+ VPERMWZ128rrkz = 16657,
+ VPERMWZ256rm = 16658,
+ VPERMWZ256rmk = 16659,
+ VPERMWZ256rmkz = 16660,
+ VPERMWZ256rr = 16661,
+ VPERMWZ256rrk = 16662,
+ VPERMWZ256rrkz = 16663,
+ VPERMWZrm = 16664,
+ VPERMWZrmk = 16665,
+ VPERMWZrmkz = 16666,
+ VPERMWZrr = 16667,
+ VPERMWZrrk = 16668,
+ VPERMWZrrkz = 16669,
+ VPEXPANDBZ128rm = 16670,
+ VPEXPANDBZ128rmk = 16671,
+ VPEXPANDBZ128rmkz = 16672,
+ VPEXPANDBZ128rr = 16673,
+ VPEXPANDBZ128rrk = 16674,
+ VPEXPANDBZ128rrkz = 16675,
+ VPEXPANDBZ256rm = 16676,
+ VPEXPANDBZ256rmk = 16677,
+ VPEXPANDBZ256rmkz = 16678,
+ VPEXPANDBZ256rr = 16679,
+ VPEXPANDBZ256rrk = 16680,
+ VPEXPANDBZ256rrkz = 16681,
+ VPEXPANDBZrm = 16682,
+ VPEXPANDBZrmk = 16683,
+ VPEXPANDBZrmkz = 16684,
+ VPEXPANDBZrr = 16685,
+ VPEXPANDBZrrk = 16686,
+ VPEXPANDBZrrkz = 16687,
+ VPEXPANDDZ128rm = 16688,
+ VPEXPANDDZ128rmk = 16689,
+ VPEXPANDDZ128rmkz = 16690,
+ VPEXPANDDZ128rr = 16691,
+ VPEXPANDDZ128rrk = 16692,
+ VPEXPANDDZ128rrkz = 16693,
+ VPEXPANDDZ256rm = 16694,
+ VPEXPANDDZ256rmk = 16695,
+ VPEXPANDDZ256rmkz = 16696,
+ VPEXPANDDZ256rr = 16697,
+ VPEXPANDDZ256rrk = 16698,
+ VPEXPANDDZ256rrkz = 16699,
+ VPEXPANDDZrm = 16700,
+ VPEXPANDDZrmk = 16701,
+ VPEXPANDDZrmkz = 16702,
+ VPEXPANDDZrr = 16703,
+ VPEXPANDDZrrk = 16704,
+ VPEXPANDDZrrkz = 16705,
+ VPEXPANDQZ128rm = 16706,
+ VPEXPANDQZ128rmk = 16707,
+ VPEXPANDQZ128rmkz = 16708,
+ VPEXPANDQZ128rr = 16709,
+ VPEXPANDQZ128rrk = 16710,
+ VPEXPANDQZ128rrkz = 16711,
+ VPEXPANDQZ256rm = 16712,
+ VPEXPANDQZ256rmk = 16713,
+ VPEXPANDQZ256rmkz = 16714,
+ VPEXPANDQZ256rr = 16715,
+ VPEXPANDQZ256rrk = 16716,
+ VPEXPANDQZ256rrkz = 16717,
+ VPEXPANDQZrm = 16718,
+ VPEXPANDQZrmk = 16719,
+ VPEXPANDQZrmkz = 16720,
+ VPEXPANDQZrr = 16721,
+ VPEXPANDQZrrk = 16722,
+ VPEXPANDQZrrkz = 16723,
+ VPEXPANDWZ128rm = 16724,
+ VPEXPANDWZ128rmk = 16725,
+ VPEXPANDWZ128rmkz = 16726,
+ VPEXPANDWZ128rr = 16727,
+ VPEXPANDWZ128rrk = 16728,
+ VPEXPANDWZ128rrkz = 16729,
+ VPEXPANDWZ256rm = 16730,
+ VPEXPANDWZ256rmk = 16731,
+ VPEXPANDWZ256rmkz = 16732,
+ VPEXPANDWZ256rr = 16733,
+ VPEXPANDWZ256rrk = 16734,
+ VPEXPANDWZ256rrkz = 16735,
+ VPEXPANDWZrm = 16736,
+ VPEXPANDWZrmk = 16737,
+ VPEXPANDWZrmkz = 16738,
+ VPEXPANDWZrr = 16739,
+ VPEXPANDWZrrk = 16740,
+ VPEXPANDWZrrkz = 16741,
+ VPEXTRBZmri = 16742,
+ VPEXTRBZrri = 16743,
+ VPEXTRBmri = 16744,
+ VPEXTRBrri = 16745,
+ VPEXTRDZmri = 16746,
+ VPEXTRDZrri = 16747,
+ VPEXTRDmri = 16748,
+ VPEXTRDrri = 16749,
+ VPEXTRQZmri = 16750,
+ VPEXTRQZrri = 16751,
+ VPEXTRQmri = 16752,
+ VPEXTRQrri = 16753,
+ VPEXTRWZmri = 16754,
+ VPEXTRWZrri = 16755,
+ VPEXTRWZrri_REV = 16756,
+ VPEXTRWmri = 16757,
+ VPEXTRWrri = 16758,
+ VPEXTRWrri_REV = 16759,
+ VPGATHERDDYrm = 16760,
+ VPGATHERDDZ128rm = 16761,
+ VPGATHERDDZ256rm = 16762,
+ VPGATHERDDZrm = 16763,
+ VPGATHERDDrm = 16764,
+ VPGATHERDQYrm = 16765,
+ VPGATHERDQZ128rm = 16766,
+ VPGATHERDQZ256rm = 16767,
+ VPGATHERDQZrm = 16768,
+ VPGATHERDQrm = 16769,
+ VPGATHERQDYrm = 16770,
+ VPGATHERQDZ128rm = 16771,
+ VPGATHERQDZ256rm = 16772,
+ VPGATHERQDZrm = 16773,
+ VPGATHERQDrm = 16774,
+ VPGATHERQQYrm = 16775,
+ VPGATHERQQZ128rm = 16776,
+ VPGATHERQQZ256rm = 16777,
+ VPGATHERQQZrm = 16778,
+ VPGATHERQQrm = 16779,
+ VPHADDBDrm = 16780,
+ VPHADDBDrr = 16781,
+ VPHADDBQrm = 16782,
+ VPHADDBQrr = 16783,
+ VPHADDBWrm = 16784,
+ VPHADDBWrr = 16785,
+ VPHADDDQrm = 16786,
+ VPHADDDQrr = 16787,
+ VPHADDDYrm = 16788,
+ VPHADDDYrr = 16789,
+ VPHADDDrm = 16790,
+ VPHADDDrr = 16791,
+ VPHADDSWYrm = 16792,
+ VPHADDSWYrr = 16793,
+ VPHADDSWrm = 16794,
+ VPHADDSWrr = 16795,
+ VPHADDUBDrm = 16796,
+ VPHADDUBDrr = 16797,
+ VPHADDUBQrm = 16798,
+ VPHADDUBQrr = 16799,
+ VPHADDUBWrm = 16800,
+ VPHADDUBWrr = 16801,
+ VPHADDUDQrm = 16802,
+ VPHADDUDQrr = 16803,
+ VPHADDUWDrm = 16804,
+ VPHADDUWDrr = 16805,
+ VPHADDUWQrm = 16806,
+ VPHADDUWQrr = 16807,
+ VPHADDWDrm = 16808,
+ VPHADDWDrr = 16809,
+ VPHADDWQrm = 16810,
+ VPHADDWQrr = 16811,
+ VPHADDWYrm = 16812,
+ VPHADDWYrr = 16813,
+ VPHADDWrm = 16814,
+ VPHADDWrr = 16815,
+ VPHMINPOSUWrm = 16816,
+ VPHMINPOSUWrr = 16817,
+ VPHSUBBWrm = 16818,
+ VPHSUBBWrr = 16819,
+ VPHSUBDQrm = 16820,
+ VPHSUBDQrr = 16821,
+ VPHSUBDYrm = 16822,
+ VPHSUBDYrr = 16823,
+ VPHSUBDrm = 16824,
+ VPHSUBDrr = 16825,
+ VPHSUBSWYrm = 16826,
+ VPHSUBSWYrr = 16827,
+ VPHSUBSWrm = 16828,
+ VPHSUBSWrr = 16829,
+ VPHSUBWDrm = 16830,
+ VPHSUBWDrr = 16831,
+ VPHSUBWYrm = 16832,
+ VPHSUBWYrr = 16833,
+ VPHSUBWrm = 16834,
+ VPHSUBWrr = 16835,
+ VPINSRBZrmi = 16836,
+ VPINSRBZrri = 16837,
+ VPINSRBrmi = 16838,
+ VPINSRBrri = 16839,
+ VPINSRDZrmi = 16840,
+ VPINSRDZrri = 16841,
+ VPINSRDrmi = 16842,
+ VPINSRDrri = 16843,
+ VPINSRQZrmi = 16844,
+ VPINSRQZrri = 16845,
+ VPINSRQrmi = 16846,
+ VPINSRQrri = 16847,
+ VPINSRWZrmi = 16848,
+ VPINSRWZrri = 16849,
+ VPINSRWrmi = 16850,
+ VPINSRWrri = 16851,
+ VPLZCNTDZ128rm = 16852,
+ VPLZCNTDZ128rmb = 16853,
+ VPLZCNTDZ128rmbk = 16854,
+ VPLZCNTDZ128rmbkz = 16855,
+ VPLZCNTDZ128rmk = 16856,
+ VPLZCNTDZ128rmkz = 16857,
+ VPLZCNTDZ128rr = 16858,
+ VPLZCNTDZ128rrk = 16859,
+ VPLZCNTDZ128rrkz = 16860,
+ VPLZCNTDZ256rm = 16861,
+ VPLZCNTDZ256rmb = 16862,
+ VPLZCNTDZ256rmbk = 16863,
+ VPLZCNTDZ256rmbkz = 16864,
+ VPLZCNTDZ256rmk = 16865,
+ VPLZCNTDZ256rmkz = 16866,
+ VPLZCNTDZ256rr = 16867,
+ VPLZCNTDZ256rrk = 16868,
+ VPLZCNTDZ256rrkz = 16869,
+ VPLZCNTDZrm = 16870,
+ VPLZCNTDZrmb = 16871,
+ VPLZCNTDZrmbk = 16872,
+ VPLZCNTDZrmbkz = 16873,
+ VPLZCNTDZrmk = 16874,
+ VPLZCNTDZrmkz = 16875,
+ VPLZCNTDZrr = 16876,
+ VPLZCNTDZrrk = 16877,
+ VPLZCNTDZrrkz = 16878,
+ VPLZCNTQZ128rm = 16879,
+ VPLZCNTQZ128rmb = 16880,
+ VPLZCNTQZ128rmbk = 16881,
+ VPLZCNTQZ128rmbkz = 16882,
+ VPLZCNTQZ128rmk = 16883,
+ VPLZCNTQZ128rmkz = 16884,
+ VPLZCNTQZ128rr = 16885,
+ VPLZCNTQZ128rrk = 16886,
+ VPLZCNTQZ128rrkz = 16887,
+ VPLZCNTQZ256rm = 16888,
+ VPLZCNTQZ256rmb = 16889,
+ VPLZCNTQZ256rmbk = 16890,
+ VPLZCNTQZ256rmbkz = 16891,
+ VPLZCNTQZ256rmk = 16892,
+ VPLZCNTQZ256rmkz = 16893,
+ VPLZCNTQZ256rr = 16894,
+ VPLZCNTQZ256rrk = 16895,
+ VPLZCNTQZ256rrkz = 16896,
+ VPLZCNTQZrm = 16897,
+ VPLZCNTQZrmb = 16898,
+ VPLZCNTQZrmbk = 16899,
+ VPLZCNTQZrmbkz = 16900,
+ VPLZCNTQZrmk = 16901,
+ VPLZCNTQZrmkz = 16902,
+ VPLZCNTQZrr = 16903,
+ VPLZCNTQZrrk = 16904,
+ VPLZCNTQZrrkz = 16905,
+ VPMACSDDrm = 16906,
+ VPMACSDDrr = 16907,
+ VPMACSDQHrm = 16908,
+ VPMACSDQHrr = 16909,
+ VPMACSDQLrm = 16910,
+ VPMACSDQLrr = 16911,
+ VPMACSSDDrm = 16912,
+ VPMACSSDDrr = 16913,
+ VPMACSSDQHrm = 16914,
+ VPMACSSDQHrr = 16915,
+ VPMACSSDQLrm = 16916,
+ VPMACSSDQLrr = 16917,
+ VPMACSSWDrm = 16918,
+ VPMACSSWDrr = 16919,
+ VPMACSSWWrm = 16920,
+ VPMACSSWWrr = 16921,
+ VPMACSWDrm = 16922,
+ VPMACSWDrr = 16923,
+ VPMACSWWrm = 16924,
+ VPMACSWWrr = 16925,
+ VPMADCSSWDrm = 16926,
+ VPMADCSSWDrr = 16927,
+ VPMADCSWDrm = 16928,
+ VPMADCSWDrr = 16929,
+ VPMADD52HUQYrm = 16930,
+ VPMADD52HUQYrr = 16931,
+ VPMADD52HUQZ128m = 16932,
+ VPMADD52HUQZ128mb = 16933,
+ VPMADD52HUQZ128mbk = 16934,
+ VPMADD52HUQZ128mbkz = 16935,
+ VPMADD52HUQZ128mk = 16936,
+ VPMADD52HUQZ128mkz = 16937,
+ VPMADD52HUQZ128r = 16938,
+ VPMADD52HUQZ128rk = 16939,
+ VPMADD52HUQZ128rkz = 16940,
+ VPMADD52HUQZ256m = 16941,
+ VPMADD52HUQZ256mb = 16942,
+ VPMADD52HUQZ256mbk = 16943,
+ VPMADD52HUQZ256mbkz = 16944,
+ VPMADD52HUQZ256mk = 16945,
+ VPMADD52HUQZ256mkz = 16946,
+ VPMADD52HUQZ256r = 16947,
+ VPMADD52HUQZ256rk = 16948,
+ VPMADD52HUQZ256rkz = 16949,
+ VPMADD52HUQZm = 16950,
+ VPMADD52HUQZmb = 16951,
+ VPMADD52HUQZmbk = 16952,
+ VPMADD52HUQZmbkz = 16953,
+ VPMADD52HUQZmk = 16954,
+ VPMADD52HUQZmkz = 16955,
+ VPMADD52HUQZr = 16956,
+ VPMADD52HUQZrk = 16957,
+ VPMADD52HUQZrkz = 16958,
+ VPMADD52HUQrm = 16959,
+ VPMADD52HUQrr = 16960,
+ VPMADD52LUQYrm = 16961,
+ VPMADD52LUQYrr = 16962,
+ VPMADD52LUQZ128m = 16963,
+ VPMADD52LUQZ128mb = 16964,
+ VPMADD52LUQZ128mbk = 16965,
+ VPMADD52LUQZ128mbkz = 16966,
+ VPMADD52LUQZ128mk = 16967,
+ VPMADD52LUQZ128mkz = 16968,
+ VPMADD52LUQZ128r = 16969,
+ VPMADD52LUQZ128rk = 16970,
+ VPMADD52LUQZ128rkz = 16971,
+ VPMADD52LUQZ256m = 16972,
+ VPMADD52LUQZ256mb = 16973,
+ VPMADD52LUQZ256mbk = 16974,
+ VPMADD52LUQZ256mbkz = 16975,
+ VPMADD52LUQZ256mk = 16976,
+ VPMADD52LUQZ256mkz = 16977,
+ VPMADD52LUQZ256r = 16978,
+ VPMADD52LUQZ256rk = 16979,
+ VPMADD52LUQZ256rkz = 16980,
+ VPMADD52LUQZm = 16981,
+ VPMADD52LUQZmb = 16982,
+ VPMADD52LUQZmbk = 16983,
+ VPMADD52LUQZmbkz = 16984,
+ VPMADD52LUQZmk = 16985,
+ VPMADD52LUQZmkz = 16986,
+ VPMADD52LUQZr = 16987,
+ VPMADD52LUQZrk = 16988,
+ VPMADD52LUQZrkz = 16989,
+ VPMADD52LUQrm = 16990,
+ VPMADD52LUQrr = 16991,
+ VPMADDUBSWYrm = 16992,
+ VPMADDUBSWYrr = 16993,
+ VPMADDUBSWZ128rm = 16994,
+ VPMADDUBSWZ128rmk = 16995,
+ VPMADDUBSWZ128rmkz = 16996,
+ VPMADDUBSWZ128rr = 16997,
+ VPMADDUBSWZ128rrk = 16998,
+ VPMADDUBSWZ128rrkz = 16999,
+ VPMADDUBSWZ256rm = 17000,
+ VPMADDUBSWZ256rmk = 17001,
+ VPMADDUBSWZ256rmkz = 17002,
+ VPMADDUBSWZ256rr = 17003,
+ VPMADDUBSWZ256rrk = 17004,
+ VPMADDUBSWZ256rrkz = 17005,
+ VPMADDUBSWZrm = 17006,
+ VPMADDUBSWZrmk = 17007,
+ VPMADDUBSWZrmkz = 17008,
+ VPMADDUBSWZrr = 17009,
+ VPMADDUBSWZrrk = 17010,
+ VPMADDUBSWZrrkz = 17011,
+ VPMADDUBSWrm = 17012,
+ VPMADDUBSWrr = 17013,
+ VPMADDWDYrm = 17014,
+ VPMADDWDYrr = 17015,
+ VPMADDWDZ128rm = 17016,
+ VPMADDWDZ128rmk = 17017,
+ VPMADDWDZ128rmkz = 17018,
+ VPMADDWDZ128rr = 17019,
+ VPMADDWDZ128rrk = 17020,
+ VPMADDWDZ128rrkz = 17021,
+ VPMADDWDZ256rm = 17022,
+ VPMADDWDZ256rmk = 17023,
+ VPMADDWDZ256rmkz = 17024,
+ VPMADDWDZ256rr = 17025,
+ VPMADDWDZ256rrk = 17026,
+ VPMADDWDZ256rrkz = 17027,
+ VPMADDWDZrm = 17028,
+ VPMADDWDZrmk = 17029,
+ VPMADDWDZrmkz = 17030,
+ VPMADDWDZrr = 17031,
+ VPMADDWDZrrk = 17032,
+ VPMADDWDZrrkz = 17033,
+ VPMADDWDrm = 17034,
+ VPMADDWDrr = 17035,
+ VPMASKMOVDYmr = 17036,
+ VPMASKMOVDYrm = 17037,
+ VPMASKMOVDmr = 17038,
+ VPMASKMOVDrm = 17039,
+ VPMASKMOVQYmr = 17040,
+ VPMASKMOVQYrm = 17041,
+ VPMASKMOVQmr = 17042,
+ VPMASKMOVQrm = 17043,
+ VPMAXSBYrm = 17044,
+ VPMAXSBYrr = 17045,
+ VPMAXSBZ128rm = 17046,
+ VPMAXSBZ128rmk = 17047,
+ VPMAXSBZ128rmkz = 17048,
+ VPMAXSBZ128rr = 17049,
+ VPMAXSBZ128rrk = 17050,
+ VPMAXSBZ128rrkz = 17051,
+ VPMAXSBZ256rm = 17052,
+ VPMAXSBZ256rmk = 17053,
+ VPMAXSBZ256rmkz = 17054,
+ VPMAXSBZ256rr = 17055,
+ VPMAXSBZ256rrk = 17056,
+ VPMAXSBZ256rrkz = 17057,
+ VPMAXSBZrm = 17058,
+ VPMAXSBZrmk = 17059,
+ VPMAXSBZrmkz = 17060,
+ VPMAXSBZrr = 17061,
+ VPMAXSBZrrk = 17062,
+ VPMAXSBZrrkz = 17063,
+ VPMAXSBrm = 17064,
+ VPMAXSBrr = 17065,
+ VPMAXSDYrm = 17066,
+ VPMAXSDYrr = 17067,
+ VPMAXSDZ128rm = 17068,
+ VPMAXSDZ128rmb = 17069,
+ VPMAXSDZ128rmbk = 17070,
+ VPMAXSDZ128rmbkz = 17071,
+ VPMAXSDZ128rmk = 17072,
+ VPMAXSDZ128rmkz = 17073,
+ VPMAXSDZ128rr = 17074,
+ VPMAXSDZ128rrk = 17075,
+ VPMAXSDZ128rrkz = 17076,
+ VPMAXSDZ256rm = 17077,
+ VPMAXSDZ256rmb = 17078,
+ VPMAXSDZ256rmbk = 17079,
+ VPMAXSDZ256rmbkz = 17080,
+ VPMAXSDZ256rmk = 17081,
+ VPMAXSDZ256rmkz = 17082,
+ VPMAXSDZ256rr = 17083,
+ VPMAXSDZ256rrk = 17084,
+ VPMAXSDZ256rrkz = 17085,
+ VPMAXSDZrm = 17086,
+ VPMAXSDZrmb = 17087,
+ VPMAXSDZrmbk = 17088,
+ VPMAXSDZrmbkz = 17089,
+ VPMAXSDZrmk = 17090,
+ VPMAXSDZrmkz = 17091,
+ VPMAXSDZrr = 17092,
+ VPMAXSDZrrk = 17093,
+ VPMAXSDZrrkz = 17094,
+ VPMAXSDrm = 17095,
+ VPMAXSDrr = 17096,
+ VPMAXSQZ128rm = 17097,
+ VPMAXSQZ128rmb = 17098,
+ VPMAXSQZ128rmbk = 17099,
+ VPMAXSQZ128rmbkz = 17100,
+ VPMAXSQZ128rmk = 17101,
+ VPMAXSQZ128rmkz = 17102,
+ VPMAXSQZ128rr = 17103,
+ VPMAXSQZ128rrk = 17104,
+ VPMAXSQZ128rrkz = 17105,
+ VPMAXSQZ256rm = 17106,
+ VPMAXSQZ256rmb = 17107,
+ VPMAXSQZ256rmbk = 17108,
+ VPMAXSQZ256rmbkz = 17109,
+ VPMAXSQZ256rmk = 17110,
+ VPMAXSQZ256rmkz = 17111,
+ VPMAXSQZ256rr = 17112,
+ VPMAXSQZ256rrk = 17113,
+ VPMAXSQZ256rrkz = 17114,
+ VPMAXSQZrm = 17115,
+ VPMAXSQZrmb = 17116,
+ VPMAXSQZrmbk = 17117,
+ VPMAXSQZrmbkz = 17118,
+ VPMAXSQZrmk = 17119,
+ VPMAXSQZrmkz = 17120,
+ VPMAXSQZrr = 17121,
+ VPMAXSQZrrk = 17122,
+ VPMAXSQZrrkz = 17123,
+ VPMAXSWYrm = 17124,
+ VPMAXSWYrr = 17125,
+ VPMAXSWZ128rm = 17126,
+ VPMAXSWZ128rmk = 17127,
+ VPMAXSWZ128rmkz = 17128,
+ VPMAXSWZ128rr = 17129,
+ VPMAXSWZ128rrk = 17130,
+ VPMAXSWZ128rrkz = 17131,
+ VPMAXSWZ256rm = 17132,
+ VPMAXSWZ256rmk = 17133,
+ VPMAXSWZ256rmkz = 17134,
+ VPMAXSWZ256rr = 17135,
+ VPMAXSWZ256rrk = 17136,
+ VPMAXSWZ256rrkz = 17137,
+ VPMAXSWZrm = 17138,
+ VPMAXSWZrmk = 17139,
+ VPMAXSWZrmkz = 17140,
+ VPMAXSWZrr = 17141,
+ VPMAXSWZrrk = 17142,
+ VPMAXSWZrrkz = 17143,
+ VPMAXSWrm = 17144,
+ VPMAXSWrr = 17145,
+ VPMAXUBYrm = 17146,
+ VPMAXUBYrr = 17147,
+ VPMAXUBZ128rm = 17148,
+ VPMAXUBZ128rmk = 17149,
+ VPMAXUBZ128rmkz = 17150,
+ VPMAXUBZ128rr = 17151,
+ VPMAXUBZ128rrk = 17152,
+ VPMAXUBZ128rrkz = 17153,
+ VPMAXUBZ256rm = 17154,
+ VPMAXUBZ256rmk = 17155,
+ VPMAXUBZ256rmkz = 17156,
+ VPMAXUBZ256rr = 17157,
+ VPMAXUBZ256rrk = 17158,
+ VPMAXUBZ256rrkz = 17159,
+ VPMAXUBZrm = 17160,
+ VPMAXUBZrmk = 17161,
+ VPMAXUBZrmkz = 17162,
+ VPMAXUBZrr = 17163,
+ VPMAXUBZrrk = 17164,
+ VPMAXUBZrrkz = 17165,
+ VPMAXUBrm = 17166,
+ VPMAXUBrr = 17167,
+ VPMAXUDYrm = 17168,
+ VPMAXUDYrr = 17169,
+ VPMAXUDZ128rm = 17170,
+ VPMAXUDZ128rmb = 17171,
+ VPMAXUDZ128rmbk = 17172,
+ VPMAXUDZ128rmbkz = 17173,
+ VPMAXUDZ128rmk = 17174,
+ VPMAXUDZ128rmkz = 17175,
+ VPMAXUDZ128rr = 17176,
+ VPMAXUDZ128rrk = 17177,
+ VPMAXUDZ128rrkz = 17178,
+ VPMAXUDZ256rm = 17179,
+ VPMAXUDZ256rmb = 17180,
+ VPMAXUDZ256rmbk = 17181,
+ VPMAXUDZ256rmbkz = 17182,
+ VPMAXUDZ256rmk = 17183,
+ VPMAXUDZ256rmkz = 17184,
+ VPMAXUDZ256rr = 17185,
+ VPMAXUDZ256rrk = 17186,
+ VPMAXUDZ256rrkz = 17187,
+ VPMAXUDZrm = 17188,
+ VPMAXUDZrmb = 17189,
+ VPMAXUDZrmbk = 17190,
+ VPMAXUDZrmbkz = 17191,
+ VPMAXUDZrmk = 17192,
+ VPMAXUDZrmkz = 17193,
+ VPMAXUDZrr = 17194,
+ VPMAXUDZrrk = 17195,
+ VPMAXUDZrrkz = 17196,
+ VPMAXUDrm = 17197,
+ VPMAXUDrr = 17198,
+ VPMAXUQZ128rm = 17199,
+ VPMAXUQZ128rmb = 17200,
+ VPMAXUQZ128rmbk = 17201,
+ VPMAXUQZ128rmbkz = 17202,
+ VPMAXUQZ128rmk = 17203,
+ VPMAXUQZ128rmkz = 17204,
+ VPMAXUQZ128rr = 17205,
+ VPMAXUQZ128rrk = 17206,
+ VPMAXUQZ128rrkz = 17207,
+ VPMAXUQZ256rm = 17208,
+ VPMAXUQZ256rmb = 17209,
+ VPMAXUQZ256rmbk = 17210,
+ VPMAXUQZ256rmbkz = 17211,
+ VPMAXUQZ256rmk = 17212,
+ VPMAXUQZ256rmkz = 17213,
+ VPMAXUQZ256rr = 17214,
+ VPMAXUQZ256rrk = 17215,
+ VPMAXUQZ256rrkz = 17216,
+ VPMAXUQZrm = 17217,
+ VPMAXUQZrmb = 17218,
+ VPMAXUQZrmbk = 17219,
+ VPMAXUQZrmbkz = 17220,
+ VPMAXUQZrmk = 17221,
+ VPMAXUQZrmkz = 17222,
+ VPMAXUQZrr = 17223,
+ VPMAXUQZrrk = 17224,
+ VPMAXUQZrrkz = 17225,
+ VPMAXUWYrm = 17226,
+ VPMAXUWYrr = 17227,
+ VPMAXUWZ128rm = 17228,
+ VPMAXUWZ128rmk = 17229,
+ VPMAXUWZ128rmkz = 17230,
+ VPMAXUWZ128rr = 17231,
+ VPMAXUWZ128rrk = 17232,
+ VPMAXUWZ128rrkz = 17233,
+ VPMAXUWZ256rm = 17234,
+ VPMAXUWZ256rmk = 17235,
+ VPMAXUWZ256rmkz = 17236,
+ VPMAXUWZ256rr = 17237,
+ VPMAXUWZ256rrk = 17238,
+ VPMAXUWZ256rrkz = 17239,
+ VPMAXUWZrm = 17240,
+ VPMAXUWZrmk = 17241,
+ VPMAXUWZrmkz = 17242,
+ VPMAXUWZrr = 17243,
+ VPMAXUWZrrk = 17244,
+ VPMAXUWZrrkz = 17245,
+ VPMAXUWrm = 17246,
+ VPMAXUWrr = 17247,
+ VPMINSBYrm = 17248,
+ VPMINSBYrr = 17249,
+ VPMINSBZ128rm = 17250,
+ VPMINSBZ128rmk = 17251,
+ VPMINSBZ128rmkz = 17252,
+ VPMINSBZ128rr = 17253,
+ VPMINSBZ128rrk = 17254,
+ VPMINSBZ128rrkz = 17255,
+ VPMINSBZ256rm = 17256,
+ VPMINSBZ256rmk = 17257,
+ VPMINSBZ256rmkz = 17258,
+ VPMINSBZ256rr = 17259,
+ VPMINSBZ256rrk = 17260,
+ VPMINSBZ256rrkz = 17261,
+ VPMINSBZrm = 17262,
+ VPMINSBZrmk = 17263,
+ VPMINSBZrmkz = 17264,
+ VPMINSBZrr = 17265,
+ VPMINSBZrrk = 17266,
+ VPMINSBZrrkz = 17267,
+ VPMINSBrm = 17268,
+ VPMINSBrr = 17269,
+ VPMINSDYrm = 17270,
+ VPMINSDYrr = 17271,
+ VPMINSDZ128rm = 17272,
+ VPMINSDZ128rmb = 17273,
+ VPMINSDZ128rmbk = 17274,
+ VPMINSDZ128rmbkz = 17275,
+ VPMINSDZ128rmk = 17276,
+ VPMINSDZ128rmkz = 17277,
+ VPMINSDZ128rr = 17278,
+ VPMINSDZ128rrk = 17279,
+ VPMINSDZ128rrkz = 17280,
+ VPMINSDZ256rm = 17281,
+ VPMINSDZ256rmb = 17282,
+ VPMINSDZ256rmbk = 17283,
+ VPMINSDZ256rmbkz = 17284,
+ VPMINSDZ256rmk = 17285,
+ VPMINSDZ256rmkz = 17286,
+ VPMINSDZ256rr = 17287,
+ VPMINSDZ256rrk = 17288,
+ VPMINSDZ256rrkz = 17289,
+ VPMINSDZrm = 17290,
+ VPMINSDZrmb = 17291,
+ VPMINSDZrmbk = 17292,
+ VPMINSDZrmbkz = 17293,
+ VPMINSDZrmk = 17294,
+ VPMINSDZrmkz = 17295,
+ VPMINSDZrr = 17296,
+ VPMINSDZrrk = 17297,
+ VPMINSDZrrkz = 17298,
+ VPMINSDrm = 17299,
+ VPMINSDrr = 17300,
+ VPMINSQZ128rm = 17301,
+ VPMINSQZ128rmb = 17302,
+ VPMINSQZ128rmbk = 17303,
+ VPMINSQZ128rmbkz = 17304,
+ VPMINSQZ128rmk = 17305,
+ VPMINSQZ128rmkz = 17306,
+ VPMINSQZ128rr = 17307,
+ VPMINSQZ128rrk = 17308,
+ VPMINSQZ128rrkz = 17309,
+ VPMINSQZ256rm = 17310,
+ VPMINSQZ256rmb = 17311,
+ VPMINSQZ256rmbk = 17312,
+ VPMINSQZ256rmbkz = 17313,
+ VPMINSQZ256rmk = 17314,
+ VPMINSQZ256rmkz = 17315,
+ VPMINSQZ256rr = 17316,
+ VPMINSQZ256rrk = 17317,
+ VPMINSQZ256rrkz = 17318,
+ VPMINSQZrm = 17319,
+ VPMINSQZrmb = 17320,
+ VPMINSQZrmbk = 17321,
+ VPMINSQZrmbkz = 17322,
+ VPMINSQZrmk = 17323,
+ VPMINSQZrmkz = 17324,
+ VPMINSQZrr = 17325,
+ VPMINSQZrrk = 17326,
+ VPMINSQZrrkz = 17327,
+ VPMINSWYrm = 17328,
+ VPMINSWYrr = 17329,
+ VPMINSWZ128rm = 17330,
+ VPMINSWZ128rmk = 17331,
+ VPMINSWZ128rmkz = 17332,
+ VPMINSWZ128rr = 17333,
+ VPMINSWZ128rrk = 17334,
+ VPMINSWZ128rrkz = 17335,
+ VPMINSWZ256rm = 17336,
+ VPMINSWZ256rmk = 17337,
+ VPMINSWZ256rmkz = 17338,
+ VPMINSWZ256rr = 17339,
+ VPMINSWZ256rrk = 17340,
+ VPMINSWZ256rrkz = 17341,
+ VPMINSWZrm = 17342,
+ VPMINSWZrmk = 17343,
+ VPMINSWZrmkz = 17344,
+ VPMINSWZrr = 17345,
+ VPMINSWZrrk = 17346,
+ VPMINSWZrrkz = 17347,
+ VPMINSWrm = 17348,
+ VPMINSWrr = 17349,
+ VPMINUBYrm = 17350,
+ VPMINUBYrr = 17351,
+ VPMINUBZ128rm = 17352,
+ VPMINUBZ128rmk = 17353,
+ VPMINUBZ128rmkz = 17354,
+ VPMINUBZ128rr = 17355,
+ VPMINUBZ128rrk = 17356,
+ VPMINUBZ128rrkz = 17357,
+ VPMINUBZ256rm = 17358,
+ VPMINUBZ256rmk = 17359,
+ VPMINUBZ256rmkz = 17360,
+ VPMINUBZ256rr = 17361,
+ VPMINUBZ256rrk = 17362,
+ VPMINUBZ256rrkz = 17363,
+ VPMINUBZrm = 17364,
+ VPMINUBZrmk = 17365,
+ VPMINUBZrmkz = 17366,
+ VPMINUBZrr = 17367,
+ VPMINUBZrrk = 17368,
+ VPMINUBZrrkz = 17369,
+ VPMINUBrm = 17370,
+ VPMINUBrr = 17371,
+ VPMINUDYrm = 17372,
+ VPMINUDYrr = 17373,
+ VPMINUDZ128rm = 17374,
+ VPMINUDZ128rmb = 17375,
+ VPMINUDZ128rmbk = 17376,
+ VPMINUDZ128rmbkz = 17377,
+ VPMINUDZ128rmk = 17378,
+ VPMINUDZ128rmkz = 17379,
+ VPMINUDZ128rr = 17380,
+ VPMINUDZ128rrk = 17381,
+ VPMINUDZ128rrkz = 17382,
+ VPMINUDZ256rm = 17383,
+ VPMINUDZ256rmb = 17384,
+ VPMINUDZ256rmbk = 17385,
+ VPMINUDZ256rmbkz = 17386,
+ VPMINUDZ256rmk = 17387,
+ VPMINUDZ256rmkz = 17388,
+ VPMINUDZ256rr = 17389,
+ VPMINUDZ256rrk = 17390,
+ VPMINUDZ256rrkz = 17391,
+ VPMINUDZrm = 17392,
+ VPMINUDZrmb = 17393,
+ VPMINUDZrmbk = 17394,
+ VPMINUDZrmbkz = 17395,
+ VPMINUDZrmk = 17396,
+ VPMINUDZrmkz = 17397,
+ VPMINUDZrr = 17398,
+ VPMINUDZrrk = 17399,
+ VPMINUDZrrkz = 17400,
+ VPMINUDrm = 17401,
+ VPMINUDrr = 17402,
+ VPMINUQZ128rm = 17403,
+ VPMINUQZ128rmb = 17404,
+ VPMINUQZ128rmbk = 17405,
+ VPMINUQZ128rmbkz = 17406,
+ VPMINUQZ128rmk = 17407,
+ VPMINUQZ128rmkz = 17408,
+ VPMINUQZ128rr = 17409,
+ VPMINUQZ128rrk = 17410,
+ VPMINUQZ128rrkz = 17411,
+ VPMINUQZ256rm = 17412,
+ VPMINUQZ256rmb = 17413,
+ VPMINUQZ256rmbk = 17414,
+ VPMINUQZ256rmbkz = 17415,
+ VPMINUQZ256rmk = 17416,
+ VPMINUQZ256rmkz = 17417,
+ VPMINUQZ256rr = 17418,
+ VPMINUQZ256rrk = 17419,
+ VPMINUQZ256rrkz = 17420,
+ VPMINUQZrm = 17421,
+ VPMINUQZrmb = 17422,
+ VPMINUQZrmbk = 17423,
+ VPMINUQZrmbkz = 17424,
+ VPMINUQZrmk = 17425,
+ VPMINUQZrmkz = 17426,
+ VPMINUQZrr = 17427,
+ VPMINUQZrrk = 17428,
+ VPMINUQZrrkz = 17429,
+ VPMINUWYrm = 17430,
+ VPMINUWYrr = 17431,
+ VPMINUWZ128rm = 17432,
+ VPMINUWZ128rmk = 17433,
+ VPMINUWZ128rmkz = 17434,
+ VPMINUWZ128rr = 17435,
+ VPMINUWZ128rrk = 17436,
+ VPMINUWZ128rrkz = 17437,
+ VPMINUWZ256rm = 17438,
+ VPMINUWZ256rmk = 17439,
+ VPMINUWZ256rmkz = 17440,
+ VPMINUWZ256rr = 17441,
+ VPMINUWZ256rrk = 17442,
+ VPMINUWZ256rrkz = 17443,
+ VPMINUWZrm = 17444,
+ VPMINUWZrmk = 17445,
+ VPMINUWZrmkz = 17446,
+ VPMINUWZrr = 17447,
+ VPMINUWZrrk = 17448,
+ VPMINUWZrrkz = 17449,
+ VPMINUWrm = 17450,
+ VPMINUWrr = 17451,
+ VPMOVB2MZ128kr = 17452,
+ VPMOVB2MZ256kr = 17453,
+ VPMOVB2MZkr = 17454,
+ VPMOVD2MZ128kr = 17455,
+ VPMOVD2MZ256kr = 17456,
+ VPMOVD2MZkr = 17457,
+ VPMOVDBZ128mr = 17458,
+ VPMOVDBZ128mrk = 17459,
+ VPMOVDBZ128rr = 17460,
+ VPMOVDBZ128rrk = 17461,
+ VPMOVDBZ128rrkz = 17462,
+ VPMOVDBZ256mr = 17463,
+ VPMOVDBZ256mrk = 17464,
+ VPMOVDBZ256rr = 17465,
+ VPMOVDBZ256rrk = 17466,
+ VPMOVDBZ256rrkz = 17467,
+ VPMOVDBZmr = 17468,
+ VPMOVDBZmrk = 17469,
+ VPMOVDBZrr = 17470,
+ VPMOVDBZrrk = 17471,
+ VPMOVDBZrrkz = 17472,
+ VPMOVDWZ128mr = 17473,
+ VPMOVDWZ128mrk = 17474,
+ VPMOVDWZ128rr = 17475,
+ VPMOVDWZ128rrk = 17476,
+ VPMOVDWZ128rrkz = 17477,
+ VPMOVDWZ256mr = 17478,
+ VPMOVDWZ256mrk = 17479,
+ VPMOVDWZ256rr = 17480,
+ VPMOVDWZ256rrk = 17481,
+ VPMOVDWZ256rrkz = 17482,
+ VPMOVDWZmr = 17483,
+ VPMOVDWZmrk = 17484,
+ VPMOVDWZrr = 17485,
+ VPMOVDWZrrk = 17486,
+ VPMOVDWZrrkz = 17487,
+ VPMOVM2BZ128rk = 17488,
+ VPMOVM2BZ256rk = 17489,
+ VPMOVM2BZrk = 17490,
+ VPMOVM2DZ128rk = 17491,
+ VPMOVM2DZ256rk = 17492,
+ VPMOVM2DZrk = 17493,
+ VPMOVM2QZ128rk = 17494,
+ VPMOVM2QZ256rk = 17495,
+ VPMOVM2QZrk = 17496,
+ VPMOVM2WZ128rk = 17497,
+ VPMOVM2WZ256rk = 17498,
+ VPMOVM2WZrk = 17499,
+ VPMOVMSKBYrr = 17500,
+ VPMOVMSKBrr = 17501,
+ VPMOVQ2MZ128kr = 17502,
+ VPMOVQ2MZ256kr = 17503,
+ VPMOVQ2MZkr = 17504,
+ VPMOVQBZ128mr = 17505,
+ VPMOVQBZ128mrk = 17506,
+ VPMOVQBZ128rr = 17507,
+ VPMOVQBZ128rrk = 17508,
+ VPMOVQBZ128rrkz = 17509,
+ VPMOVQBZ256mr = 17510,
+ VPMOVQBZ256mrk = 17511,
+ VPMOVQBZ256rr = 17512,
+ VPMOVQBZ256rrk = 17513,
+ VPMOVQBZ256rrkz = 17514,
+ VPMOVQBZmr = 17515,
+ VPMOVQBZmrk = 17516,
+ VPMOVQBZrr = 17517,
+ VPMOVQBZrrk = 17518,
+ VPMOVQBZrrkz = 17519,
+ VPMOVQDZ128mr = 17520,
+ VPMOVQDZ128mrk = 17521,
+ VPMOVQDZ128rr = 17522,
+ VPMOVQDZ128rrk = 17523,
+ VPMOVQDZ128rrkz = 17524,
+ VPMOVQDZ256mr = 17525,
+ VPMOVQDZ256mrk = 17526,
+ VPMOVQDZ256rr = 17527,
+ VPMOVQDZ256rrk = 17528,
+ VPMOVQDZ256rrkz = 17529,
+ VPMOVQDZmr = 17530,
+ VPMOVQDZmrk = 17531,
+ VPMOVQDZrr = 17532,
+ VPMOVQDZrrk = 17533,
+ VPMOVQDZrrkz = 17534,
+ VPMOVQWZ128mr = 17535,
+ VPMOVQWZ128mrk = 17536,
+ VPMOVQWZ128rr = 17537,
+ VPMOVQWZ128rrk = 17538,
+ VPMOVQWZ128rrkz = 17539,
+ VPMOVQWZ256mr = 17540,
+ VPMOVQWZ256mrk = 17541,
+ VPMOVQWZ256rr = 17542,
+ VPMOVQWZ256rrk = 17543,
+ VPMOVQWZ256rrkz = 17544,
+ VPMOVQWZmr = 17545,
+ VPMOVQWZmrk = 17546,
+ VPMOVQWZrr = 17547,
+ VPMOVQWZrrk = 17548,
+ VPMOVQWZrrkz = 17549,
+ VPMOVSDBZ128mr = 17550,
+ VPMOVSDBZ128mrk = 17551,
+ VPMOVSDBZ128rr = 17552,
+ VPMOVSDBZ128rrk = 17553,
+ VPMOVSDBZ128rrkz = 17554,
+ VPMOVSDBZ256mr = 17555,
+ VPMOVSDBZ256mrk = 17556,
+ VPMOVSDBZ256rr = 17557,
+ VPMOVSDBZ256rrk = 17558,
+ VPMOVSDBZ256rrkz = 17559,
+ VPMOVSDBZmr = 17560,
+ VPMOVSDBZmrk = 17561,
+ VPMOVSDBZrr = 17562,
+ VPMOVSDBZrrk = 17563,
+ VPMOVSDBZrrkz = 17564,
+ VPMOVSDWZ128mr = 17565,
+ VPMOVSDWZ128mrk = 17566,
+ VPMOVSDWZ128rr = 17567,
+ VPMOVSDWZ128rrk = 17568,
+ VPMOVSDWZ128rrkz = 17569,
+ VPMOVSDWZ256mr = 17570,
+ VPMOVSDWZ256mrk = 17571,
+ VPMOVSDWZ256rr = 17572,
+ VPMOVSDWZ256rrk = 17573,
+ VPMOVSDWZ256rrkz = 17574,
+ VPMOVSDWZmr = 17575,
+ VPMOVSDWZmrk = 17576,
+ VPMOVSDWZrr = 17577,
+ VPMOVSDWZrrk = 17578,
+ VPMOVSDWZrrkz = 17579,
+ VPMOVSQBZ128mr = 17580,
+ VPMOVSQBZ128mrk = 17581,
+ VPMOVSQBZ128rr = 17582,
+ VPMOVSQBZ128rrk = 17583,
+ VPMOVSQBZ128rrkz = 17584,
+ VPMOVSQBZ256mr = 17585,
+ VPMOVSQBZ256mrk = 17586,
+ VPMOVSQBZ256rr = 17587,
+ VPMOVSQBZ256rrk = 17588,
+ VPMOVSQBZ256rrkz = 17589,
+ VPMOVSQBZmr = 17590,
+ VPMOVSQBZmrk = 17591,
+ VPMOVSQBZrr = 17592,
+ VPMOVSQBZrrk = 17593,
+ VPMOVSQBZrrkz = 17594,
+ VPMOVSQDZ128mr = 17595,
+ VPMOVSQDZ128mrk = 17596,
+ VPMOVSQDZ128rr = 17597,
+ VPMOVSQDZ128rrk = 17598,
+ VPMOVSQDZ128rrkz = 17599,
+ VPMOVSQDZ256mr = 17600,
+ VPMOVSQDZ256mrk = 17601,
+ VPMOVSQDZ256rr = 17602,
+ VPMOVSQDZ256rrk = 17603,
+ VPMOVSQDZ256rrkz = 17604,
+ VPMOVSQDZmr = 17605,
+ VPMOVSQDZmrk = 17606,
+ VPMOVSQDZrr = 17607,
+ VPMOVSQDZrrk = 17608,
+ VPMOVSQDZrrkz = 17609,
+ VPMOVSQWZ128mr = 17610,
+ VPMOVSQWZ128mrk = 17611,
+ VPMOVSQWZ128rr = 17612,
+ VPMOVSQWZ128rrk = 17613,
+ VPMOVSQWZ128rrkz = 17614,
+ VPMOVSQWZ256mr = 17615,
+ VPMOVSQWZ256mrk = 17616,
+ VPMOVSQWZ256rr = 17617,
+ VPMOVSQWZ256rrk = 17618,
+ VPMOVSQWZ256rrkz = 17619,
+ VPMOVSQWZmr = 17620,
+ VPMOVSQWZmrk = 17621,
+ VPMOVSQWZrr = 17622,
+ VPMOVSQWZrrk = 17623,
+ VPMOVSQWZrrkz = 17624,
+ VPMOVSWBZ128mr = 17625,
+ VPMOVSWBZ128mrk = 17626,
+ VPMOVSWBZ128rr = 17627,
+ VPMOVSWBZ128rrk = 17628,
+ VPMOVSWBZ128rrkz = 17629,
+ VPMOVSWBZ256mr = 17630,
+ VPMOVSWBZ256mrk = 17631,
+ VPMOVSWBZ256rr = 17632,
+ VPMOVSWBZ256rrk = 17633,
+ VPMOVSWBZ256rrkz = 17634,
+ VPMOVSWBZmr = 17635,
+ VPMOVSWBZmrk = 17636,
+ VPMOVSWBZrr = 17637,
+ VPMOVSWBZrrk = 17638,
+ VPMOVSWBZrrkz = 17639,
+ VPMOVSXBDYrm = 17640,
+ VPMOVSXBDYrr = 17641,
+ VPMOVSXBDZ128rm = 17642,
+ VPMOVSXBDZ128rmk = 17643,
+ VPMOVSXBDZ128rmkz = 17644,
+ VPMOVSXBDZ128rr = 17645,
+ VPMOVSXBDZ128rrk = 17646,
+ VPMOVSXBDZ128rrkz = 17647,
+ VPMOVSXBDZ256rm = 17648,
+ VPMOVSXBDZ256rmk = 17649,
+ VPMOVSXBDZ256rmkz = 17650,
+ VPMOVSXBDZ256rr = 17651,
+ VPMOVSXBDZ256rrk = 17652,
+ VPMOVSXBDZ256rrkz = 17653,
+ VPMOVSXBDZrm = 17654,
+ VPMOVSXBDZrmk = 17655,
+ VPMOVSXBDZrmkz = 17656,
+ VPMOVSXBDZrr = 17657,
+ VPMOVSXBDZrrk = 17658,
+ VPMOVSXBDZrrkz = 17659,
+ VPMOVSXBDrm = 17660,
+ VPMOVSXBDrr = 17661,
+ VPMOVSXBQYrm = 17662,
+ VPMOVSXBQYrr = 17663,
+ VPMOVSXBQZ128rm = 17664,
+ VPMOVSXBQZ128rmk = 17665,
+ VPMOVSXBQZ128rmkz = 17666,
+ VPMOVSXBQZ128rr = 17667,
+ VPMOVSXBQZ128rrk = 17668,
+ VPMOVSXBQZ128rrkz = 17669,
+ VPMOVSXBQZ256rm = 17670,
+ VPMOVSXBQZ256rmk = 17671,
+ VPMOVSXBQZ256rmkz = 17672,
+ VPMOVSXBQZ256rr = 17673,
+ VPMOVSXBQZ256rrk = 17674,
+ VPMOVSXBQZ256rrkz = 17675,
+ VPMOVSXBQZrm = 17676,
+ VPMOVSXBQZrmk = 17677,
+ VPMOVSXBQZrmkz = 17678,
+ VPMOVSXBQZrr = 17679,
+ VPMOVSXBQZrrk = 17680,
+ VPMOVSXBQZrrkz = 17681,
+ VPMOVSXBQrm = 17682,
+ VPMOVSXBQrr = 17683,
+ VPMOVSXBWYrm = 17684,
+ VPMOVSXBWYrr = 17685,
+ VPMOVSXBWZ128rm = 17686,
+ VPMOVSXBWZ128rmk = 17687,
+ VPMOVSXBWZ128rmkz = 17688,
+ VPMOVSXBWZ128rr = 17689,
+ VPMOVSXBWZ128rrk = 17690,
+ VPMOVSXBWZ128rrkz = 17691,
+ VPMOVSXBWZ256rm = 17692,
+ VPMOVSXBWZ256rmk = 17693,
+ VPMOVSXBWZ256rmkz = 17694,
+ VPMOVSXBWZ256rr = 17695,
+ VPMOVSXBWZ256rrk = 17696,
+ VPMOVSXBWZ256rrkz = 17697,
+ VPMOVSXBWZrm = 17698,
+ VPMOVSXBWZrmk = 17699,
+ VPMOVSXBWZrmkz = 17700,
+ VPMOVSXBWZrr = 17701,
+ VPMOVSXBWZrrk = 17702,
+ VPMOVSXBWZrrkz = 17703,
+ VPMOVSXBWrm = 17704,
+ VPMOVSXBWrr = 17705,
+ VPMOVSXDQYrm = 17706,
+ VPMOVSXDQYrr = 17707,
+ VPMOVSXDQZ128rm = 17708,
+ VPMOVSXDQZ128rmk = 17709,
+ VPMOVSXDQZ128rmkz = 17710,
+ VPMOVSXDQZ128rr = 17711,
+ VPMOVSXDQZ128rrk = 17712,
+ VPMOVSXDQZ128rrkz = 17713,
+ VPMOVSXDQZ256rm = 17714,
+ VPMOVSXDQZ256rmk = 17715,
+ VPMOVSXDQZ256rmkz = 17716,
+ VPMOVSXDQZ256rr = 17717,
+ VPMOVSXDQZ256rrk = 17718,
+ VPMOVSXDQZ256rrkz = 17719,
+ VPMOVSXDQZrm = 17720,
+ VPMOVSXDQZrmk = 17721,
+ VPMOVSXDQZrmkz = 17722,
+ VPMOVSXDQZrr = 17723,
+ VPMOVSXDQZrrk = 17724,
+ VPMOVSXDQZrrkz = 17725,
+ VPMOVSXDQrm = 17726,
+ VPMOVSXDQrr = 17727,
+ VPMOVSXWDYrm = 17728,
+ VPMOVSXWDYrr = 17729,
+ VPMOVSXWDZ128rm = 17730,
+ VPMOVSXWDZ128rmk = 17731,
+ VPMOVSXWDZ128rmkz = 17732,
+ VPMOVSXWDZ128rr = 17733,
+ VPMOVSXWDZ128rrk = 17734,
+ VPMOVSXWDZ128rrkz = 17735,
+ VPMOVSXWDZ256rm = 17736,
+ VPMOVSXWDZ256rmk = 17737,
+ VPMOVSXWDZ256rmkz = 17738,
+ VPMOVSXWDZ256rr = 17739,
+ VPMOVSXWDZ256rrk = 17740,
+ VPMOVSXWDZ256rrkz = 17741,
+ VPMOVSXWDZrm = 17742,
+ VPMOVSXWDZrmk = 17743,
+ VPMOVSXWDZrmkz = 17744,
+ VPMOVSXWDZrr = 17745,
+ VPMOVSXWDZrrk = 17746,
+ VPMOVSXWDZrrkz = 17747,
+ VPMOVSXWDrm = 17748,
+ VPMOVSXWDrr = 17749,
+ VPMOVSXWQYrm = 17750,
+ VPMOVSXWQYrr = 17751,
+ VPMOVSXWQZ128rm = 17752,
+ VPMOVSXWQZ128rmk = 17753,
+ VPMOVSXWQZ128rmkz = 17754,
+ VPMOVSXWQZ128rr = 17755,
+ VPMOVSXWQZ128rrk = 17756,
+ VPMOVSXWQZ128rrkz = 17757,
+ VPMOVSXWQZ256rm = 17758,
+ VPMOVSXWQZ256rmk = 17759,
+ VPMOVSXWQZ256rmkz = 17760,
+ VPMOVSXWQZ256rr = 17761,
+ VPMOVSXWQZ256rrk = 17762,
+ VPMOVSXWQZ256rrkz = 17763,
+ VPMOVSXWQZrm = 17764,
+ VPMOVSXWQZrmk = 17765,
+ VPMOVSXWQZrmkz = 17766,
+ VPMOVSXWQZrr = 17767,
+ VPMOVSXWQZrrk = 17768,
+ VPMOVSXWQZrrkz = 17769,
+ VPMOVSXWQrm = 17770,
+ VPMOVSXWQrr = 17771,
+ VPMOVUSDBZ128mr = 17772,
+ VPMOVUSDBZ128mrk = 17773,
+ VPMOVUSDBZ128rr = 17774,
+ VPMOVUSDBZ128rrk = 17775,
+ VPMOVUSDBZ128rrkz = 17776,
+ VPMOVUSDBZ256mr = 17777,
+ VPMOVUSDBZ256mrk = 17778,
+ VPMOVUSDBZ256rr = 17779,
+ VPMOVUSDBZ256rrk = 17780,
+ VPMOVUSDBZ256rrkz = 17781,
+ VPMOVUSDBZmr = 17782,
+ VPMOVUSDBZmrk = 17783,
+ VPMOVUSDBZrr = 17784,
+ VPMOVUSDBZrrk = 17785,
+ VPMOVUSDBZrrkz = 17786,
+ VPMOVUSDWZ128mr = 17787,
+ VPMOVUSDWZ128mrk = 17788,
+ VPMOVUSDWZ128rr = 17789,
+ VPMOVUSDWZ128rrk = 17790,
+ VPMOVUSDWZ128rrkz = 17791,
+ VPMOVUSDWZ256mr = 17792,
+ VPMOVUSDWZ256mrk = 17793,
+ VPMOVUSDWZ256rr = 17794,
+ VPMOVUSDWZ256rrk = 17795,
+ VPMOVUSDWZ256rrkz = 17796,
+ VPMOVUSDWZmr = 17797,
+ VPMOVUSDWZmrk = 17798,
+ VPMOVUSDWZrr = 17799,
+ VPMOVUSDWZrrk = 17800,
+ VPMOVUSDWZrrkz = 17801,
+ VPMOVUSQBZ128mr = 17802,
+ VPMOVUSQBZ128mrk = 17803,
+ VPMOVUSQBZ128rr = 17804,
+ VPMOVUSQBZ128rrk = 17805,
+ VPMOVUSQBZ128rrkz = 17806,
+ VPMOVUSQBZ256mr = 17807,
+ VPMOVUSQBZ256mrk = 17808,
+ VPMOVUSQBZ256rr = 17809,
+ VPMOVUSQBZ256rrk = 17810,
+ VPMOVUSQBZ256rrkz = 17811,
+ VPMOVUSQBZmr = 17812,
+ VPMOVUSQBZmrk = 17813,
+ VPMOVUSQBZrr = 17814,
+ VPMOVUSQBZrrk = 17815,
+ VPMOVUSQBZrrkz = 17816,
+ VPMOVUSQDZ128mr = 17817,
+ VPMOVUSQDZ128mrk = 17818,
+ VPMOVUSQDZ128rr = 17819,
+ VPMOVUSQDZ128rrk = 17820,
+ VPMOVUSQDZ128rrkz = 17821,
+ VPMOVUSQDZ256mr = 17822,
+ VPMOVUSQDZ256mrk = 17823,
+ VPMOVUSQDZ256rr = 17824,
+ VPMOVUSQDZ256rrk = 17825,
+ VPMOVUSQDZ256rrkz = 17826,
+ VPMOVUSQDZmr = 17827,
+ VPMOVUSQDZmrk = 17828,
+ VPMOVUSQDZrr = 17829,
+ VPMOVUSQDZrrk = 17830,
+ VPMOVUSQDZrrkz = 17831,
+ VPMOVUSQWZ128mr = 17832,
+ VPMOVUSQWZ128mrk = 17833,
+ VPMOVUSQWZ128rr = 17834,
+ VPMOVUSQWZ128rrk = 17835,
+ VPMOVUSQWZ128rrkz = 17836,
+ VPMOVUSQWZ256mr = 17837,
+ VPMOVUSQWZ256mrk = 17838,
+ VPMOVUSQWZ256rr = 17839,
+ VPMOVUSQWZ256rrk = 17840,
+ VPMOVUSQWZ256rrkz = 17841,
+ VPMOVUSQWZmr = 17842,
+ VPMOVUSQWZmrk = 17843,
+ VPMOVUSQWZrr = 17844,
+ VPMOVUSQWZrrk = 17845,
+ VPMOVUSQWZrrkz = 17846,
+ VPMOVUSWBZ128mr = 17847,
+ VPMOVUSWBZ128mrk = 17848,
+ VPMOVUSWBZ128rr = 17849,
+ VPMOVUSWBZ128rrk = 17850,
+ VPMOVUSWBZ128rrkz = 17851,
+ VPMOVUSWBZ256mr = 17852,
+ VPMOVUSWBZ256mrk = 17853,
+ VPMOVUSWBZ256rr = 17854,
+ VPMOVUSWBZ256rrk = 17855,
+ VPMOVUSWBZ256rrkz = 17856,
+ VPMOVUSWBZmr = 17857,
+ VPMOVUSWBZmrk = 17858,
+ VPMOVUSWBZrr = 17859,
+ VPMOVUSWBZrrk = 17860,
+ VPMOVUSWBZrrkz = 17861,
+ VPMOVW2MZ128kr = 17862,
+ VPMOVW2MZ256kr = 17863,
+ VPMOVW2MZkr = 17864,
+ VPMOVWBZ128mr = 17865,
+ VPMOVWBZ128mrk = 17866,
+ VPMOVWBZ128rr = 17867,
+ VPMOVWBZ128rrk = 17868,
+ VPMOVWBZ128rrkz = 17869,
+ VPMOVWBZ256mr = 17870,
+ VPMOVWBZ256mrk = 17871,
+ VPMOVWBZ256rr = 17872,
+ VPMOVWBZ256rrk = 17873,
+ VPMOVWBZ256rrkz = 17874,
+ VPMOVWBZmr = 17875,
+ VPMOVWBZmrk = 17876,
+ VPMOVWBZrr = 17877,
+ VPMOVWBZrrk = 17878,
+ VPMOVWBZrrkz = 17879,
+ VPMOVZXBDYrm = 17880,
+ VPMOVZXBDYrr = 17881,
+ VPMOVZXBDZ128rm = 17882,
+ VPMOVZXBDZ128rmk = 17883,
+ VPMOVZXBDZ128rmkz = 17884,
+ VPMOVZXBDZ128rr = 17885,
+ VPMOVZXBDZ128rrk = 17886,
+ VPMOVZXBDZ128rrkz = 17887,
+ VPMOVZXBDZ256rm = 17888,
+ VPMOVZXBDZ256rmk = 17889,
+ VPMOVZXBDZ256rmkz = 17890,
+ VPMOVZXBDZ256rr = 17891,
+ VPMOVZXBDZ256rrk = 17892,
+ VPMOVZXBDZ256rrkz = 17893,
+ VPMOVZXBDZrm = 17894,
+ VPMOVZXBDZrmk = 17895,
+ VPMOVZXBDZrmkz = 17896,
+ VPMOVZXBDZrr = 17897,
+ VPMOVZXBDZrrk = 17898,
+ VPMOVZXBDZrrkz = 17899,
+ VPMOVZXBDrm = 17900,
+ VPMOVZXBDrr = 17901,
+ VPMOVZXBQYrm = 17902,
+ VPMOVZXBQYrr = 17903,
+ VPMOVZXBQZ128rm = 17904,
+ VPMOVZXBQZ128rmk = 17905,
+ VPMOVZXBQZ128rmkz = 17906,
+ VPMOVZXBQZ128rr = 17907,
+ VPMOVZXBQZ128rrk = 17908,
+ VPMOVZXBQZ128rrkz = 17909,
+ VPMOVZXBQZ256rm = 17910,
+ VPMOVZXBQZ256rmk = 17911,
+ VPMOVZXBQZ256rmkz = 17912,
+ VPMOVZXBQZ256rr = 17913,
+ VPMOVZXBQZ256rrk = 17914,
+ VPMOVZXBQZ256rrkz = 17915,
+ VPMOVZXBQZrm = 17916,
+ VPMOVZXBQZrmk = 17917,
+ VPMOVZXBQZrmkz = 17918,
+ VPMOVZXBQZrr = 17919,
+ VPMOVZXBQZrrk = 17920,
+ VPMOVZXBQZrrkz = 17921,
+ VPMOVZXBQrm = 17922,
+ VPMOVZXBQrr = 17923,
+ VPMOVZXBWYrm = 17924,
+ VPMOVZXBWYrr = 17925,
+ VPMOVZXBWZ128rm = 17926,
+ VPMOVZXBWZ128rmk = 17927,
+ VPMOVZXBWZ128rmkz = 17928,
+ VPMOVZXBWZ128rr = 17929,
+ VPMOVZXBWZ128rrk = 17930,
+ VPMOVZXBWZ128rrkz = 17931,
+ VPMOVZXBWZ256rm = 17932,
+ VPMOVZXBWZ256rmk = 17933,
+ VPMOVZXBWZ256rmkz = 17934,
+ VPMOVZXBWZ256rr = 17935,
+ VPMOVZXBWZ256rrk = 17936,
+ VPMOVZXBWZ256rrkz = 17937,
+ VPMOVZXBWZrm = 17938,
+ VPMOVZXBWZrmk = 17939,
+ VPMOVZXBWZrmkz = 17940,
+ VPMOVZXBWZrr = 17941,
+ VPMOVZXBWZrrk = 17942,
+ VPMOVZXBWZrrkz = 17943,
+ VPMOVZXBWrm = 17944,
+ VPMOVZXBWrr = 17945,
+ VPMOVZXDQYrm = 17946,
+ VPMOVZXDQYrr = 17947,
+ VPMOVZXDQZ128rm = 17948,
+ VPMOVZXDQZ128rmk = 17949,
+ VPMOVZXDQZ128rmkz = 17950,
+ VPMOVZXDQZ128rr = 17951,
+ VPMOVZXDQZ128rrk = 17952,
+ VPMOVZXDQZ128rrkz = 17953,
+ VPMOVZXDQZ256rm = 17954,
+ VPMOVZXDQZ256rmk = 17955,
+ VPMOVZXDQZ256rmkz = 17956,
+ VPMOVZXDQZ256rr = 17957,
+ VPMOVZXDQZ256rrk = 17958,
+ VPMOVZXDQZ256rrkz = 17959,
+ VPMOVZXDQZrm = 17960,
+ VPMOVZXDQZrmk = 17961,
+ VPMOVZXDQZrmkz = 17962,
+ VPMOVZXDQZrr = 17963,
+ VPMOVZXDQZrrk = 17964,
+ VPMOVZXDQZrrkz = 17965,
+ VPMOVZXDQrm = 17966,
+ VPMOVZXDQrr = 17967,
+ VPMOVZXWDYrm = 17968,
+ VPMOVZXWDYrr = 17969,
+ VPMOVZXWDZ128rm = 17970,
+ VPMOVZXWDZ128rmk = 17971,
+ VPMOVZXWDZ128rmkz = 17972,
+ VPMOVZXWDZ128rr = 17973,
+ VPMOVZXWDZ128rrk = 17974,
+ VPMOVZXWDZ128rrkz = 17975,
+ VPMOVZXWDZ256rm = 17976,
+ VPMOVZXWDZ256rmk = 17977,
+ VPMOVZXWDZ256rmkz = 17978,
+ VPMOVZXWDZ256rr = 17979,
+ VPMOVZXWDZ256rrk = 17980,
+ VPMOVZXWDZ256rrkz = 17981,
+ VPMOVZXWDZrm = 17982,
+ VPMOVZXWDZrmk = 17983,
+ VPMOVZXWDZrmkz = 17984,
+ VPMOVZXWDZrr = 17985,
+ VPMOVZXWDZrrk = 17986,
+ VPMOVZXWDZrrkz = 17987,
+ VPMOVZXWDrm = 17988,
+ VPMOVZXWDrr = 17989,
+ VPMOVZXWQYrm = 17990,
+ VPMOVZXWQYrr = 17991,
+ VPMOVZXWQZ128rm = 17992,
+ VPMOVZXWQZ128rmk = 17993,
+ VPMOVZXWQZ128rmkz = 17994,
+ VPMOVZXWQZ128rr = 17995,
+ VPMOVZXWQZ128rrk = 17996,
+ VPMOVZXWQZ128rrkz = 17997,
+ VPMOVZXWQZ256rm = 17998,
+ VPMOVZXWQZ256rmk = 17999,
+ VPMOVZXWQZ256rmkz = 18000,
+ VPMOVZXWQZ256rr = 18001,
+ VPMOVZXWQZ256rrk = 18002,
+ VPMOVZXWQZ256rrkz = 18003,
+ VPMOVZXWQZrm = 18004,
+ VPMOVZXWQZrmk = 18005,
+ VPMOVZXWQZrmkz = 18006,
+ VPMOVZXWQZrr = 18007,
+ VPMOVZXWQZrrk = 18008,
+ VPMOVZXWQZrrkz = 18009,
+ VPMOVZXWQrm = 18010,
+ VPMOVZXWQrr = 18011,
+ VPMULDQYrm = 18012,
+ VPMULDQYrr = 18013,
+ VPMULDQZ128rm = 18014,
+ VPMULDQZ128rmb = 18015,
+ VPMULDQZ128rmbk = 18016,
+ VPMULDQZ128rmbkz = 18017,
+ VPMULDQZ128rmk = 18018,
+ VPMULDQZ128rmkz = 18019,
+ VPMULDQZ128rr = 18020,
+ VPMULDQZ128rrk = 18021,
+ VPMULDQZ128rrkz = 18022,
+ VPMULDQZ256rm = 18023,
+ VPMULDQZ256rmb = 18024,
+ VPMULDQZ256rmbk = 18025,
+ VPMULDQZ256rmbkz = 18026,
+ VPMULDQZ256rmk = 18027,
+ VPMULDQZ256rmkz = 18028,
+ VPMULDQZ256rr = 18029,
+ VPMULDQZ256rrk = 18030,
+ VPMULDQZ256rrkz = 18031,
+ VPMULDQZrm = 18032,
+ VPMULDQZrmb = 18033,
+ VPMULDQZrmbk = 18034,
+ VPMULDQZrmbkz = 18035,
+ VPMULDQZrmk = 18036,
+ VPMULDQZrmkz = 18037,
+ VPMULDQZrr = 18038,
+ VPMULDQZrrk = 18039,
+ VPMULDQZrrkz = 18040,
+ VPMULDQrm = 18041,
+ VPMULDQrr = 18042,
+ VPMULHRSWYrm = 18043,
+ VPMULHRSWYrr = 18044,
+ VPMULHRSWZ128rm = 18045,
+ VPMULHRSWZ128rmk = 18046,
+ VPMULHRSWZ128rmkz = 18047,
+ VPMULHRSWZ128rr = 18048,
+ VPMULHRSWZ128rrk = 18049,
+ VPMULHRSWZ128rrkz = 18050,
+ VPMULHRSWZ256rm = 18051,
+ VPMULHRSWZ256rmk = 18052,
+ VPMULHRSWZ256rmkz = 18053,
+ VPMULHRSWZ256rr = 18054,
+ VPMULHRSWZ256rrk = 18055,
+ VPMULHRSWZ256rrkz = 18056,
+ VPMULHRSWZrm = 18057,
+ VPMULHRSWZrmk = 18058,
+ VPMULHRSWZrmkz = 18059,
+ VPMULHRSWZrr = 18060,
+ VPMULHRSWZrrk = 18061,
+ VPMULHRSWZrrkz = 18062,
+ VPMULHRSWrm = 18063,
+ VPMULHRSWrr = 18064,
+ VPMULHUWYrm = 18065,
+ VPMULHUWYrr = 18066,
+ VPMULHUWZ128rm = 18067,
+ VPMULHUWZ128rmk = 18068,
+ VPMULHUWZ128rmkz = 18069,
+ VPMULHUWZ128rr = 18070,
+ VPMULHUWZ128rrk = 18071,
+ VPMULHUWZ128rrkz = 18072,
+ VPMULHUWZ256rm = 18073,
+ VPMULHUWZ256rmk = 18074,
+ VPMULHUWZ256rmkz = 18075,
+ VPMULHUWZ256rr = 18076,
+ VPMULHUWZ256rrk = 18077,
+ VPMULHUWZ256rrkz = 18078,
+ VPMULHUWZrm = 18079,
+ VPMULHUWZrmk = 18080,
+ VPMULHUWZrmkz = 18081,
+ VPMULHUWZrr = 18082,
+ VPMULHUWZrrk = 18083,
+ VPMULHUWZrrkz = 18084,
+ VPMULHUWrm = 18085,
+ VPMULHUWrr = 18086,
+ VPMULHWYrm = 18087,
+ VPMULHWYrr = 18088,
+ VPMULHWZ128rm = 18089,
+ VPMULHWZ128rmk = 18090,
+ VPMULHWZ128rmkz = 18091,
+ VPMULHWZ128rr = 18092,
+ VPMULHWZ128rrk = 18093,
+ VPMULHWZ128rrkz = 18094,
+ VPMULHWZ256rm = 18095,
+ VPMULHWZ256rmk = 18096,
+ VPMULHWZ256rmkz = 18097,
+ VPMULHWZ256rr = 18098,
+ VPMULHWZ256rrk = 18099,
+ VPMULHWZ256rrkz = 18100,
+ VPMULHWZrm = 18101,
+ VPMULHWZrmk = 18102,
+ VPMULHWZrmkz = 18103,
+ VPMULHWZrr = 18104,
+ VPMULHWZrrk = 18105,
+ VPMULHWZrrkz = 18106,
+ VPMULHWrm = 18107,
+ VPMULHWrr = 18108,
+ VPMULLDYrm = 18109,
+ VPMULLDYrr = 18110,
+ VPMULLDZ128rm = 18111,
+ VPMULLDZ128rmb = 18112,
+ VPMULLDZ128rmbk = 18113,
+ VPMULLDZ128rmbkz = 18114,
+ VPMULLDZ128rmk = 18115,
+ VPMULLDZ128rmkz = 18116,
+ VPMULLDZ128rr = 18117,
+ VPMULLDZ128rrk = 18118,
+ VPMULLDZ128rrkz = 18119,
+ VPMULLDZ256rm = 18120,
+ VPMULLDZ256rmb = 18121,
+ VPMULLDZ256rmbk = 18122,
+ VPMULLDZ256rmbkz = 18123,
+ VPMULLDZ256rmk = 18124,
+ VPMULLDZ256rmkz = 18125,
+ VPMULLDZ256rr = 18126,
+ VPMULLDZ256rrk = 18127,
+ VPMULLDZ256rrkz = 18128,
+ VPMULLDZrm = 18129,
+ VPMULLDZrmb = 18130,
+ VPMULLDZrmbk = 18131,
+ VPMULLDZrmbkz = 18132,
+ VPMULLDZrmk = 18133,
+ VPMULLDZrmkz = 18134,
+ VPMULLDZrr = 18135,
+ VPMULLDZrrk = 18136,
+ VPMULLDZrrkz = 18137,
+ VPMULLDrm = 18138,
+ VPMULLDrr = 18139,
+ VPMULLQZ128rm = 18140,
+ VPMULLQZ128rmb = 18141,
+ VPMULLQZ128rmbk = 18142,
+ VPMULLQZ128rmbkz = 18143,
+ VPMULLQZ128rmk = 18144,
+ VPMULLQZ128rmkz = 18145,
+ VPMULLQZ128rr = 18146,
+ VPMULLQZ128rrk = 18147,
+ VPMULLQZ128rrkz = 18148,
+ VPMULLQZ256rm = 18149,
+ VPMULLQZ256rmb = 18150,
+ VPMULLQZ256rmbk = 18151,
+ VPMULLQZ256rmbkz = 18152,
+ VPMULLQZ256rmk = 18153,
+ VPMULLQZ256rmkz = 18154,
+ VPMULLQZ256rr = 18155,
+ VPMULLQZ256rrk = 18156,
+ VPMULLQZ256rrkz = 18157,
+ VPMULLQZrm = 18158,
+ VPMULLQZrmb = 18159,
+ VPMULLQZrmbk = 18160,
+ VPMULLQZrmbkz = 18161,
+ VPMULLQZrmk = 18162,
+ VPMULLQZrmkz = 18163,
+ VPMULLQZrr = 18164,
+ VPMULLQZrrk = 18165,
+ VPMULLQZrrkz = 18166,
+ VPMULLWYrm = 18167,
+ VPMULLWYrr = 18168,
+ VPMULLWZ128rm = 18169,
+ VPMULLWZ128rmk = 18170,
+ VPMULLWZ128rmkz = 18171,
+ VPMULLWZ128rr = 18172,
+ VPMULLWZ128rrk = 18173,
+ VPMULLWZ128rrkz = 18174,
+ VPMULLWZ256rm = 18175,
+ VPMULLWZ256rmk = 18176,
+ VPMULLWZ256rmkz = 18177,
+ VPMULLWZ256rr = 18178,
+ VPMULLWZ256rrk = 18179,
+ VPMULLWZ256rrkz = 18180,
+ VPMULLWZrm = 18181,
+ VPMULLWZrmk = 18182,
+ VPMULLWZrmkz = 18183,
+ VPMULLWZrr = 18184,
+ VPMULLWZrrk = 18185,
+ VPMULLWZrrkz = 18186,
+ VPMULLWrm = 18187,
+ VPMULLWrr = 18188,
+ VPMULTISHIFTQBZ128rm = 18189,
+ VPMULTISHIFTQBZ128rmb = 18190,
+ VPMULTISHIFTQBZ128rmbk = 18191,
+ VPMULTISHIFTQBZ128rmbkz = 18192,
+ VPMULTISHIFTQBZ128rmk = 18193,
+ VPMULTISHIFTQBZ128rmkz = 18194,
+ VPMULTISHIFTQBZ128rr = 18195,
+ VPMULTISHIFTQBZ128rrk = 18196,
+ VPMULTISHIFTQBZ128rrkz = 18197,
+ VPMULTISHIFTQBZ256rm = 18198,
+ VPMULTISHIFTQBZ256rmb = 18199,
+ VPMULTISHIFTQBZ256rmbk = 18200,
+ VPMULTISHIFTQBZ256rmbkz = 18201,
+ VPMULTISHIFTQBZ256rmk = 18202,
+ VPMULTISHIFTQBZ256rmkz = 18203,
+ VPMULTISHIFTQBZ256rr = 18204,
+ VPMULTISHIFTQBZ256rrk = 18205,
+ VPMULTISHIFTQBZ256rrkz = 18206,
+ VPMULTISHIFTQBZrm = 18207,
+ VPMULTISHIFTQBZrmb = 18208,
+ VPMULTISHIFTQBZrmbk = 18209,
+ VPMULTISHIFTQBZrmbkz = 18210,
+ VPMULTISHIFTQBZrmk = 18211,
+ VPMULTISHIFTQBZrmkz = 18212,
+ VPMULTISHIFTQBZrr = 18213,
+ VPMULTISHIFTQBZrrk = 18214,
+ VPMULTISHIFTQBZrrkz = 18215,
+ VPMULUDQYrm = 18216,
+ VPMULUDQYrr = 18217,
+ VPMULUDQZ128rm = 18218,
+ VPMULUDQZ128rmb = 18219,
+ VPMULUDQZ128rmbk = 18220,
+ VPMULUDQZ128rmbkz = 18221,
+ VPMULUDQZ128rmk = 18222,
+ VPMULUDQZ128rmkz = 18223,
+ VPMULUDQZ128rr = 18224,
+ VPMULUDQZ128rrk = 18225,
+ VPMULUDQZ128rrkz = 18226,
+ VPMULUDQZ256rm = 18227,
+ VPMULUDQZ256rmb = 18228,
+ VPMULUDQZ256rmbk = 18229,
+ VPMULUDQZ256rmbkz = 18230,
+ VPMULUDQZ256rmk = 18231,
+ VPMULUDQZ256rmkz = 18232,
+ VPMULUDQZ256rr = 18233,
+ VPMULUDQZ256rrk = 18234,
+ VPMULUDQZ256rrkz = 18235,
+ VPMULUDQZrm = 18236,
+ VPMULUDQZrmb = 18237,
+ VPMULUDQZrmbk = 18238,
+ VPMULUDQZrmbkz = 18239,
+ VPMULUDQZrmk = 18240,
+ VPMULUDQZrmkz = 18241,
+ VPMULUDQZrr = 18242,
+ VPMULUDQZrrk = 18243,
+ VPMULUDQZrrkz = 18244,
+ VPMULUDQrm = 18245,
+ VPMULUDQrr = 18246,
+ VPOPCNTBZ128rm = 18247,
+ VPOPCNTBZ128rmk = 18248,
+ VPOPCNTBZ128rmkz = 18249,
+ VPOPCNTBZ128rr = 18250,
+ VPOPCNTBZ128rrk = 18251,
+ VPOPCNTBZ128rrkz = 18252,
+ VPOPCNTBZ256rm = 18253,
+ VPOPCNTBZ256rmk = 18254,
+ VPOPCNTBZ256rmkz = 18255,
+ VPOPCNTBZ256rr = 18256,
+ VPOPCNTBZ256rrk = 18257,
+ VPOPCNTBZ256rrkz = 18258,
+ VPOPCNTBZrm = 18259,
+ VPOPCNTBZrmk = 18260,
+ VPOPCNTBZrmkz = 18261,
+ VPOPCNTBZrr = 18262,
+ VPOPCNTBZrrk = 18263,
+ VPOPCNTBZrrkz = 18264,
+ VPOPCNTDZ128rm = 18265,
+ VPOPCNTDZ128rmb = 18266,
+ VPOPCNTDZ128rmbk = 18267,
+ VPOPCNTDZ128rmbkz = 18268,
+ VPOPCNTDZ128rmk = 18269,
+ VPOPCNTDZ128rmkz = 18270,
+ VPOPCNTDZ128rr = 18271,
+ VPOPCNTDZ128rrk = 18272,
+ VPOPCNTDZ128rrkz = 18273,
+ VPOPCNTDZ256rm = 18274,
+ VPOPCNTDZ256rmb = 18275,
+ VPOPCNTDZ256rmbk = 18276,
+ VPOPCNTDZ256rmbkz = 18277,
+ VPOPCNTDZ256rmk = 18278,
+ VPOPCNTDZ256rmkz = 18279,
+ VPOPCNTDZ256rr = 18280,
+ VPOPCNTDZ256rrk = 18281,
+ VPOPCNTDZ256rrkz = 18282,
+ VPOPCNTDZrm = 18283,
+ VPOPCNTDZrmb = 18284,
+ VPOPCNTDZrmbk = 18285,
+ VPOPCNTDZrmbkz = 18286,
+ VPOPCNTDZrmk = 18287,
+ VPOPCNTDZrmkz = 18288,
+ VPOPCNTDZrr = 18289,
+ VPOPCNTDZrrk = 18290,
+ VPOPCNTDZrrkz = 18291,
+ VPOPCNTQZ128rm = 18292,
+ VPOPCNTQZ128rmb = 18293,
+ VPOPCNTQZ128rmbk = 18294,
+ VPOPCNTQZ128rmbkz = 18295,
+ VPOPCNTQZ128rmk = 18296,
+ VPOPCNTQZ128rmkz = 18297,
+ VPOPCNTQZ128rr = 18298,
+ VPOPCNTQZ128rrk = 18299,
+ VPOPCNTQZ128rrkz = 18300,
+ VPOPCNTQZ256rm = 18301,
+ VPOPCNTQZ256rmb = 18302,
+ VPOPCNTQZ256rmbk = 18303,
+ VPOPCNTQZ256rmbkz = 18304,
+ VPOPCNTQZ256rmk = 18305,
+ VPOPCNTQZ256rmkz = 18306,
+ VPOPCNTQZ256rr = 18307,
+ VPOPCNTQZ256rrk = 18308,
+ VPOPCNTQZ256rrkz = 18309,
+ VPOPCNTQZrm = 18310,
+ VPOPCNTQZrmb = 18311,
+ VPOPCNTQZrmbk = 18312,
+ VPOPCNTQZrmbkz = 18313,
+ VPOPCNTQZrmk = 18314,
+ VPOPCNTQZrmkz = 18315,
+ VPOPCNTQZrr = 18316,
+ VPOPCNTQZrrk = 18317,
+ VPOPCNTQZrrkz = 18318,
+ VPOPCNTWZ128rm = 18319,
+ VPOPCNTWZ128rmk = 18320,
+ VPOPCNTWZ128rmkz = 18321,
+ VPOPCNTWZ128rr = 18322,
+ VPOPCNTWZ128rrk = 18323,
+ VPOPCNTWZ128rrkz = 18324,
+ VPOPCNTWZ256rm = 18325,
+ VPOPCNTWZ256rmk = 18326,
+ VPOPCNTWZ256rmkz = 18327,
+ VPOPCNTWZ256rr = 18328,
+ VPOPCNTWZ256rrk = 18329,
+ VPOPCNTWZ256rrkz = 18330,
+ VPOPCNTWZrm = 18331,
+ VPOPCNTWZrmk = 18332,
+ VPOPCNTWZrmkz = 18333,
+ VPOPCNTWZrr = 18334,
+ VPOPCNTWZrrk = 18335,
+ VPOPCNTWZrrkz = 18336,
+ VPORDZ128rm = 18337,
+ VPORDZ128rmb = 18338,
+ VPORDZ128rmbk = 18339,
+ VPORDZ128rmbkz = 18340,
+ VPORDZ128rmk = 18341,
+ VPORDZ128rmkz = 18342,
+ VPORDZ128rr = 18343,
+ VPORDZ128rrk = 18344,
+ VPORDZ128rrkz = 18345,
+ VPORDZ256rm = 18346,
+ VPORDZ256rmb = 18347,
+ VPORDZ256rmbk = 18348,
+ VPORDZ256rmbkz = 18349,
+ VPORDZ256rmk = 18350,
+ VPORDZ256rmkz = 18351,
+ VPORDZ256rr = 18352,
+ VPORDZ256rrk = 18353,
+ VPORDZ256rrkz = 18354,
+ VPORDZrm = 18355,
+ VPORDZrmb = 18356,
+ VPORDZrmbk = 18357,
+ VPORDZrmbkz = 18358,
+ VPORDZrmk = 18359,
+ VPORDZrmkz = 18360,
+ VPORDZrr = 18361,
+ VPORDZrrk = 18362,
+ VPORDZrrkz = 18363,
+ VPORQZ128rm = 18364,
+ VPORQZ128rmb = 18365,
+ VPORQZ128rmbk = 18366,
+ VPORQZ128rmbkz = 18367,
+ VPORQZ128rmk = 18368,
+ VPORQZ128rmkz = 18369,
+ VPORQZ128rr = 18370,
+ VPORQZ128rrk = 18371,
+ VPORQZ128rrkz = 18372,
+ VPORQZ256rm = 18373,
+ VPORQZ256rmb = 18374,
+ VPORQZ256rmbk = 18375,
+ VPORQZ256rmbkz = 18376,
+ VPORQZ256rmk = 18377,
+ VPORQZ256rmkz = 18378,
+ VPORQZ256rr = 18379,
+ VPORQZ256rrk = 18380,
+ VPORQZ256rrkz = 18381,
+ VPORQZrm = 18382,
+ VPORQZrmb = 18383,
+ VPORQZrmbk = 18384,
+ VPORQZrmbkz = 18385,
+ VPORQZrmk = 18386,
+ VPORQZrmkz = 18387,
+ VPORQZrr = 18388,
+ VPORQZrrk = 18389,
+ VPORQZrrkz = 18390,
+ VPORYrm = 18391,
+ VPORYrr = 18392,
+ VPORrm = 18393,
+ VPORrr = 18394,
+ VPPERMrmr = 18395,
+ VPPERMrrm = 18396,
+ VPPERMrrr = 18397,
+ VPPERMrrr_REV = 18398,
+ VPROLDZ128mbi = 18399,
+ VPROLDZ128mbik = 18400,
+ VPROLDZ128mbikz = 18401,
+ VPROLDZ128mi = 18402,
+ VPROLDZ128mik = 18403,
+ VPROLDZ128mikz = 18404,
+ VPROLDZ128ri = 18405,
+ VPROLDZ128rik = 18406,
+ VPROLDZ128rikz = 18407,
+ VPROLDZ256mbi = 18408,
+ VPROLDZ256mbik = 18409,
+ VPROLDZ256mbikz = 18410,
+ VPROLDZ256mi = 18411,
+ VPROLDZ256mik = 18412,
+ VPROLDZ256mikz = 18413,
+ VPROLDZ256ri = 18414,
+ VPROLDZ256rik = 18415,
+ VPROLDZ256rikz = 18416,
+ VPROLDZmbi = 18417,
+ VPROLDZmbik = 18418,
+ VPROLDZmbikz = 18419,
+ VPROLDZmi = 18420,
+ VPROLDZmik = 18421,
+ VPROLDZmikz = 18422,
+ VPROLDZri = 18423,
+ VPROLDZrik = 18424,
+ VPROLDZrikz = 18425,
+ VPROLQZ128mbi = 18426,
+ VPROLQZ128mbik = 18427,
+ VPROLQZ128mbikz = 18428,
+ VPROLQZ128mi = 18429,
+ VPROLQZ128mik = 18430,
+ VPROLQZ128mikz = 18431,
+ VPROLQZ128ri = 18432,
+ VPROLQZ128rik = 18433,
+ VPROLQZ128rikz = 18434,
+ VPROLQZ256mbi = 18435,
+ VPROLQZ256mbik = 18436,
+ VPROLQZ256mbikz = 18437,
+ VPROLQZ256mi = 18438,
+ VPROLQZ256mik = 18439,
+ VPROLQZ256mikz = 18440,
+ VPROLQZ256ri = 18441,
+ VPROLQZ256rik = 18442,
+ VPROLQZ256rikz = 18443,
+ VPROLQZmbi = 18444,
+ VPROLQZmbik = 18445,
+ VPROLQZmbikz = 18446,
+ VPROLQZmi = 18447,
+ VPROLQZmik = 18448,
+ VPROLQZmikz = 18449,
+ VPROLQZri = 18450,
+ VPROLQZrik = 18451,
+ VPROLQZrikz = 18452,
+ VPROLVDZ128rm = 18453,
+ VPROLVDZ128rmb = 18454,
+ VPROLVDZ128rmbk = 18455,
+ VPROLVDZ128rmbkz = 18456,
+ VPROLVDZ128rmk = 18457,
+ VPROLVDZ128rmkz = 18458,
+ VPROLVDZ128rr = 18459,
+ VPROLVDZ128rrk = 18460,
+ VPROLVDZ128rrkz = 18461,
+ VPROLVDZ256rm = 18462,
+ VPROLVDZ256rmb = 18463,
+ VPROLVDZ256rmbk = 18464,
+ VPROLVDZ256rmbkz = 18465,
+ VPROLVDZ256rmk = 18466,
+ VPROLVDZ256rmkz = 18467,
+ VPROLVDZ256rr = 18468,
+ VPROLVDZ256rrk = 18469,
+ VPROLVDZ256rrkz = 18470,
+ VPROLVDZrm = 18471,
+ VPROLVDZrmb = 18472,
+ VPROLVDZrmbk = 18473,
+ VPROLVDZrmbkz = 18474,
+ VPROLVDZrmk = 18475,
+ VPROLVDZrmkz = 18476,
+ VPROLVDZrr = 18477,
+ VPROLVDZrrk = 18478,
+ VPROLVDZrrkz = 18479,
+ VPROLVQZ128rm = 18480,
+ VPROLVQZ128rmb = 18481,
+ VPROLVQZ128rmbk = 18482,
+ VPROLVQZ128rmbkz = 18483,
+ VPROLVQZ128rmk = 18484,
+ VPROLVQZ128rmkz = 18485,
+ VPROLVQZ128rr = 18486,
+ VPROLVQZ128rrk = 18487,
+ VPROLVQZ128rrkz = 18488,
+ VPROLVQZ256rm = 18489,
+ VPROLVQZ256rmb = 18490,
+ VPROLVQZ256rmbk = 18491,
+ VPROLVQZ256rmbkz = 18492,
+ VPROLVQZ256rmk = 18493,
+ VPROLVQZ256rmkz = 18494,
+ VPROLVQZ256rr = 18495,
+ VPROLVQZ256rrk = 18496,
+ VPROLVQZ256rrkz = 18497,
+ VPROLVQZrm = 18498,
+ VPROLVQZrmb = 18499,
+ VPROLVQZrmbk = 18500,
+ VPROLVQZrmbkz = 18501,
+ VPROLVQZrmk = 18502,
+ VPROLVQZrmkz = 18503,
+ VPROLVQZrr = 18504,
+ VPROLVQZrrk = 18505,
+ VPROLVQZrrkz = 18506,
+ VPRORDZ128mbi = 18507,
+ VPRORDZ128mbik = 18508,
+ VPRORDZ128mbikz = 18509,
+ VPRORDZ128mi = 18510,
+ VPRORDZ128mik = 18511,
+ VPRORDZ128mikz = 18512,
+ VPRORDZ128ri = 18513,
+ VPRORDZ128rik = 18514,
+ VPRORDZ128rikz = 18515,
+ VPRORDZ256mbi = 18516,
+ VPRORDZ256mbik = 18517,
+ VPRORDZ256mbikz = 18518,
+ VPRORDZ256mi = 18519,
+ VPRORDZ256mik = 18520,
+ VPRORDZ256mikz = 18521,
+ VPRORDZ256ri = 18522,
+ VPRORDZ256rik = 18523,
+ VPRORDZ256rikz = 18524,
+ VPRORDZmbi = 18525,
+ VPRORDZmbik = 18526,
+ VPRORDZmbikz = 18527,
+ VPRORDZmi = 18528,
+ VPRORDZmik = 18529,
+ VPRORDZmikz = 18530,
+ VPRORDZri = 18531,
+ VPRORDZrik = 18532,
+ VPRORDZrikz = 18533,
+ VPRORQZ128mbi = 18534,
+ VPRORQZ128mbik = 18535,
+ VPRORQZ128mbikz = 18536,
+ VPRORQZ128mi = 18537,
+ VPRORQZ128mik = 18538,
+ VPRORQZ128mikz = 18539,
+ VPRORQZ128ri = 18540,
+ VPRORQZ128rik = 18541,
+ VPRORQZ128rikz = 18542,
+ VPRORQZ256mbi = 18543,
+ VPRORQZ256mbik = 18544,
+ VPRORQZ256mbikz = 18545,
+ VPRORQZ256mi = 18546,
+ VPRORQZ256mik = 18547,
+ VPRORQZ256mikz = 18548,
+ VPRORQZ256ri = 18549,
+ VPRORQZ256rik = 18550,
+ VPRORQZ256rikz = 18551,
+ VPRORQZmbi = 18552,
+ VPRORQZmbik = 18553,
+ VPRORQZmbikz = 18554,
+ VPRORQZmi = 18555,
+ VPRORQZmik = 18556,
+ VPRORQZmikz = 18557,
+ VPRORQZri = 18558,
+ VPRORQZrik = 18559,
+ VPRORQZrikz = 18560,
+ VPRORVDZ128rm = 18561,
+ VPRORVDZ128rmb = 18562,
+ VPRORVDZ128rmbk = 18563,
+ VPRORVDZ128rmbkz = 18564,
+ VPRORVDZ128rmk = 18565,
+ VPRORVDZ128rmkz = 18566,
+ VPRORVDZ128rr = 18567,
+ VPRORVDZ128rrk = 18568,
+ VPRORVDZ128rrkz = 18569,
+ VPRORVDZ256rm = 18570,
+ VPRORVDZ256rmb = 18571,
+ VPRORVDZ256rmbk = 18572,
+ VPRORVDZ256rmbkz = 18573,
+ VPRORVDZ256rmk = 18574,
+ VPRORVDZ256rmkz = 18575,
+ VPRORVDZ256rr = 18576,
+ VPRORVDZ256rrk = 18577,
+ VPRORVDZ256rrkz = 18578,
+ VPRORVDZrm = 18579,
+ VPRORVDZrmb = 18580,
+ VPRORVDZrmbk = 18581,
+ VPRORVDZrmbkz = 18582,
+ VPRORVDZrmk = 18583,
+ VPRORVDZrmkz = 18584,
+ VPRORVDZrr = 18585,
+ VPRORVDZrrk = 18586,
+ VPRORVDZrrkz = 18587,
+ VPRORVQZ128rm = 18588,
+ VPRORVQZ128rmb = 18589,
+ VPRORVQZ128rmbk = 18590,
+ VPRORVQZ128rmbkz = 18591,
+ VPRORVQZ128rmk = 18592,
+ VPRORVQZ128rmkz = 18593,
+ VPRORVQZ128rr = 18594,
+ VPRORVQZ128rrk = 18595,
+ VPRORVQZ128rrkz = 18596,
+ VPRORVQZ256rm = 18597,
+ VPRORVQZ256rmb = 18598,
+ VPRORVQZ256rmbk = 18599,
+ VPRORVQZ256rmbkz = 18600,
+ VPRORVQZ256rmk = 18601,
+ VPRORVQZ256rmkz = 18602,
+ VPRORVQZ256rr = 18603,
+ VPRORVQZ256rrk = 18604,
+ VPRORVQZ256rrkz = 18605,
+ VPRORVQZrm = 18606,
+ VPRORVQZrmb = 18607,
+ VPRORVQZrmbk = 18608,
+ VPRORVQZrmbkz = 18609,
+ VPRORVQZrmk = 18610,
+ VPRORVQZrmkz = 18611,
+ VPRORVQZrr = 18612,
+ VPRORVQZrrk = 18613,
+ VPRORVQZrrkz = 18614,
+ VPROTBmi = 18615,
+ VPROTBmr = 18616,
+ VPROTBri = 18617,
+ VPROTBrm = 18618,
+ VPROTBrr = 18619,
+ VPROTBrr_REV = 18620,
+ VPROTDmi = 18621,
+ VPROTDmr = 18622,
+ VPROTDri = 18623,
+ VPROTDrm = 18624,
+ VPROTDrr = 18625,
+ VPROTDrr_REV = 18626,
+ VPROTQmi = 18627,
+ VPROTQmr = 18628,
+ VPROTQri = 18629,
+ VPROTQrm = 18630,
+ VPROTQrr = 18631,
+ VPROTQrr_REV = 18632,
+ VPROTWmi = 18633,
+ VPROTWmr = 18634,
+ VPROTWri = 18635,
+ VPROTWrm = 18636,
+ VPROTWrr = 18637,
+ VPROTWrr_REV = 18638,
+ VPSADBWYrm = 18639,
+ VPSADBWYrr = 18640,
+ VPSADBWZ128rm = 18641,
+ VPSADBWZ128rr = 18642,
+ VPSADBWZ256rm = 18643,
+ VPSADBWZ256rr = 18644,
+ VPSADBWZrm = 18645,
+ VPSADBWZrr = 18646,
+ VPSADBWrm = 18647,
+ VPSADBWrr = 18648,
+ VPSCATTERDDZ128mr = 18649,
+ VPSCATTERDDZ256mr = 18650,
+ VPSCATTERDDZmr = 18651,
+ VPSCATTERDQZ128mr = 18652,
+ VPSCATTERDQZ256mr = 18653,
+ VPSCATTERDQZmr = 18654,
+ VPSCATTERQDZ128mr = 18655,
+ VPSCATTERQDZ256mr = 18656,
+ VPSCATTERQDZmr = 18657,
+ VPSCATTERQQZ128mr = 18658,
+ VPSCATTERQQZ256mr = 18659,
+ VPSCATTERQQZmr = 18660,
+ VPSHABmr = 18661,
+ VPSHABrm = 18662,
+ VPSHABrr = 18663,
+ VPSHABrr_REV = 18664,
+ VPSHADmr = 18665,
+ VPSHADrm = 18666,
+ VPSHADrr = 18667,
+ VPSHADrr_REV = 18668,
+ VPSHAQmr = 18669,
+ VPSHAQrm = 18670,
+ VPSHAQrr = 18671,
+ VPSHAQrr_REV = 18672,
+ VPSHAWmr = 18673,
+ VPSHAWrm = 18674,
+ VPSHAWrr = 18675,
+ VPSHAWrr_REV = 18676,
+ VPSHLBmr = 18677,
+ VPSHLBrm = 18678,
+ VPSHLBrr = 18679,
+ VPSHLBrr_REV = 18680,
+ VPSHLDDZ128rmbi = 18681,
+ VPSHLDDZ128rmbik = 18682,
+ VPSHLDDZ128rmbikz = 18683,
+ VPSHLDDZ128rmi = 18684,
+ VPSHLDDZ128rmik = 18685,
+ VPSHLDDZ128rmikz = 18686,
+ VPSHLDDZ128rri = 18687,
+ VPSHLDDZ128rrik = 18688,
+ VPSHLDDZ128rrikz = 18689,
+ VPSHLDDZ256rmbi = 18690,
+ VPSHLDDZ256rmbik = 18691,
+ VPSHLDDZ256rmbikz = 18692,
+ VPSHLDDZ256rmi = 18693,
+ VPSHLDDZ256rmik = 18694,
+ VPSHLDDZ256rmikz = 18695,
+ VPSHLDDZ256rri = 18696,
+ VPSHLDDZ256rrik = 18697,
+ VPSHLDDZ256rrikz = 18698,
+ VPSHLDDZrmbi = 18699,
+ VPSHLDDZrmbik = 18700,
+ VPSHLDDZrmbikz = 18701,
+ VPSHLDDZrmi = 18702,
+ VPSHLDDZrmik = 18703,
+ VPSHLDDZrmikz = 18704,
+ VPSHLDDZrri = 18705,
+ VPSHLDDZrrik = 18706,
+ VPSHLDDZrrikz = 18707,
+ VPSHLDQZ128rmbi = 18708,
+ VPSHLDQZ128rmbik = 18709,
+ VPSHLDQZ128rmbikz = 18710,
+ VPSHLDQZ128rmi = 18711,
+ VPSHLDQZ128rmik = 18712,
+ VPSHLDQZ128rmikz = 18713,
+ VPSHLDQZ128rri = 18714,
+ VPSHLDQZ128rrik = 18715,
+ VPSHLDQZ128rrikz = 18716,
+ VPSHLDQZ256rmbi = 18717,
+ VPSHLDQZ256rmbik = 18718,
+ VPSHLDQZ256rmbikz = 18719,
+ VPSHLDQZ256rmi = 18720,
+ VPSHLDQZ256rmik = 18721,
+ VPSHLDQZ256rmikz = 18722,
+ VPSHLDQZ256rri = 18723,
+ VPSHLDQZ256rrik = 18724,
+ VPSHLDQZ256rrikz = 18725,
+ VPSHLDQZrmbi = 18726,
+ VPSHLDQZrmbik = 18727,
+ VPSHLDQZrmbikz = 18728,
+ VPSHLDQZrmi = 18729,
+ VPSHLDQZrmik = 18730,
+ VPSHLDQZrmikz = 18731,
+ VPSHLDQZrri = 18732,
+ VPSHLDQZrrik = 18733,
+ VPSHLDQZrrikz = 18734,
+ VPSHLDVDZ128m = 18735,
+ VPSHLDVDZ128mb = 18736,
+ VPSHLDVDZ128mbk = 18737,
+ VPSHLDVDZ128mbkz = 18738,
+ VPSHLDVDZ128mk = 18739,
+ VPSHLDVDZ128mkz = 18740,
+ VPSHLDVDZ128r = 18741,
+ VPSHLDVDZ128rk = 18742,
+ VPSHLDVDZ128rkz = 18743,
+ VPSHLDVDZ256m = 18744,
+ VPSHLDVDZ256mb = 18745,
+ VPSHLDVDZ256mbk = 18746,
+ VPSHLDVDZ256mbkz = 18747,
+ VPSHLDVDZ256mk = 18748,
+ VPSHLDVDZ256mkz = 18749,
+ VPSHLDVDZ256r = 18750,
+ VPSHLDVDZ256rk = 18751,
+ VPSHLDVDZ256rkz = 18752,
+ VPSHLDVDZm = 18753,
+ VPSHLDVDZmb = 18754,
+ VPSHLDVDZmbk = 18755,
+ VPSHLDVDZmbkz = 18756,
+ VPSHLDVDZmk = 18757,
+ VPSHLDVDZmkz = 18758,
+ VPSHLDVDZr = 18759,
+ VPSHLDVDZrk = 18760,
+ VPSHLDVDZrkz = 18761,
+ VPSHLDVQZ128m = 18762,
+ VPSHLDVQZ128mb = 18763,
+ VPSHLDVQZ128mbk = 18764,
+ VPSHLDVQZ128mbkz = 18765,
+ VPSHLDVQZ128mk = 18766,
+ VPSHLDVQZ128mkz = 18767,
+ VPSHLDVQZ128r = 18768,
+ VPSHLDVQZ128rk = 18769,
+ VPSHLDVQZ128rkz = 18770,
+ VPSHLDVQZ256m = 18771,
+ VPSHLDVQZ256mb = 18772,
+ VPSHLDVQZ256mbk = 18773,
+ VPSHLDVQZ256mbkz = 18774,
+ VPSHLDVQZ256mk = 18775,
+ VPSHLDVQZ256mkz = 18776,
+ VPSHLDVQZ256r = 18777,
+ VPSHLDVQZ256rk = 18778,
+ VPSHLDVQZ256rkz = 18779,
+ VPSHLDVQZm = 18780,
+ VPSHLDVQZmb = 18781,
+ VPSHLDVQZmbk = 18782,
+ VPSHLDVQZmbkz = 18783,
+ VPSHLDVQZmk = 18784,
+ VPSHLDVQZmkz = 18785,
+ VPSHLDVQZr = 18786,
+ VPSHLDVQZrk = 18787,
+ VPSHLDVQZrkz = 18788,
+ VPSHLDVWZ128m = 18789,
+ VPSHLDVWZ128mk = 18790,
+ VPSHLDVWZ128mkz = 18791,
+ VPSHLDVWZ128r = 18792,
+ VPSHLDVWZ128rk = 18793,
+ VPSHLDVWZ128rkz = 18794,
+ VPSHLDVWZ256m = 18795,
+ VPSHLDVWZ256mk = 18796,
+ VPSHLDVWZ256mkz = 18797,
+ VPSHLDVWZ256r = 18798,
+ VPSHLDVWZ256rk = 18799,
+ VPSHLDVWZ256rkz = 18800,
+ VPSHLDVWZm = 18801,
+ VPSHLDVWZmk = 18802,
+ VPSHLDVWZmkz = 18803,
+ VPSHLDVWZr = 18804,
+ VPSHLDVWZrk = 18805,
+ VPSHLDVWZrkz = 18806,
+ VPSHLDWZ128rmi = 18807,
+ VPSHLDWZ128rmik = 18808,
+ VPSHLDWZ128rmikz = 18809,
+ VPSHLDWZ128rri = 18810,
+ VPSHLDWZ128rrik = 18811,
+ VPSHLDWZ128rrikz = 18812,
+ VPSHLDWZ256rmi = 18813,
+ VPSHLDWZ256rmik = 18814,
+ VPSHLDWZ256rmikz = 18815,
+ VPSHLDWZ256rri = 18816,
+ VPSHLDWZ256rrik = 18817,
+ VPSHLDWZ256rrikz = 18818,
+ VPSHLDWZrmi = 18819,
+ VPSHLDWZrmik = 18820,
+ VPSHLDWZrmikz = 18821,
+ VPSHLDWZrri = 18822,
+ VPSHLDWZrrik = 18823,
+ VPSHLDWZrrikz = 18824,
+ VPSHLDmr = 18825,
+ VPSHLDrm = 18826,
+ VPSHLDrr = 18827,
+ VPSHLDrr_REV = 18828,
+ VPSHLQmr = 18829,
+ VPSHLQrm = 18830,
+ VPSHLQrr = 18831,
+ VPSHLQrr_REV = 18832,
+ VPSHLWmr = 18833,
+ VPSHLWrm = 18834,
+ VPSHLWrr = 18835,
+ VPSHLWrr_REV = 18836,
+ VPSHRDDZ128rmbi = 18837,
+ VPSHRDDZ128rmbik = 18838,
+ VPSHRDDZ128rmbikz = 18839,
+ VPSHRDDZ128rmi = 18840,
+ VPSHRDDZ128rmik = 18841,
+ VPSHRDDZ128rmikz = 18842,
+ VPSHRDDZ128rri = 18843,
+ VPSHRDDZ128rrik = 18844,
+ VPSHRDDZ128rrikz = 18845,
+ VPSHRDDZ256rmbi = 18846,
+ VPSHRDDZ256rmbik = 18847,
+ VPSHRDDZ256rmbikz = 18848,
+ VPSHRDDZ256rmi = 18849,
+ VPSHRDDZ256rmik = 18850,
+ VPSHRDDZ256rmikz = 18851,
+ VPSHRDDZ256rri = 18852,
+ VPSHRDDZ256rrik = 18853,
+ VPSHRDDZ256rrikz = 18854,
+ VPSHRDDZrmbi = 18855,
+ VPSHRDDZrmbik = 18856,
+ VPSHRDDZrmbikz = 18857,
+ VPSHRDDZrmi = 18858,
+ VPSHRDDZrmik = 18859,
+ VPSHRDDZrmikz = 18860,
+ VPSHRDDZrri = 18861,
+ VPSHRDDZrrik = 18862,
+ VPSHRDDZrrikz = 18863,
+ VPSHRDQZ128rmbi = 18864,
+ VPSHRDQZ128rmbik = 18865,
+ VPSHRDQZ128rmbikz = 18866,
+ VPSHRDQZ128rmi = 18867,
+ VPSHRDQZ128rmik = 18868,
+ VPSHRDQZ128rmikz = 18869,
+ VPSHRDQZ128rri = 18870,
+ VPSHRDQZ128rrik = 18871,
+ VPSHRDQZ128rrikz = 18872,
+ VPSHRDQZ256rmbi = 18873,
+ VPSHRDQZ256rmbik = 18874,
+ VPSHRDQZ256rmbikz = 18875,
+ VPSHRDQZ256rmi = 18876,
+ VPSHRDQZ256rmik = 18877,
+ VPSHRDQZ256rmikz = 18878,
+ VPSHRDQZ256rri = 18879,
+ VPSHRDQZ256rrik = 18880,
+ VPSHRDQZ256rrikz = 18881,
+ VPSHRDQZrmbi = 18882,
+ VPSHRDQZrmbik = 18883,
+ VPSHRDQZrmbikz = 18884,
+ VPSHRDQZrmi = 18885,
+ VPSHRDQZrmik = 18886,
+ VPSHRDQZrmikz = 18887,
+ VPSHRDQZrri = 18888,
+ VPSHRDQZrrik = 18889,
+ VPSHRDQZrrikz = 18890,
+ VPSHRDVDZ128m = 18891,
+ VPSHRDVDZ128mb = 18892,
+ VPSHRDVDZ128mbk = 18893,
+ VPSHRDVDZ128mbkz = 18894,
+ VPSHRDVDZ128mk = 18895,
+ VPSHRDVDZ128mkz = 18896,
+ VPSHRDVDZ128r = 18897,
+ VPSHRDVDZ128rk = 18898,
+ VPSHRDVDZ128rkz = 18899,
+ VPSHRDVDZ256m = 18900,
+ VPSHRDVDZ256mb = 18901,
+ VPSHRDVDZ256mbk = 18902,
+ VPSHRDVDZ256mbkz = 18903,
+ VPSHRDVDZ256mk = 18904,
+ VPSHRDVDZ256mkz = 18905,
+ VPSHRDVDZ256r = 18906,
+ VPSHRDVDZ256rk = 18907,
+ VPSHRDVDZ256rkz = 18908,
+ VPSHRDVDZm = 18909,
+ VPSHRDVDZmb = 18910,
+ VPSHRDVDZmbk = 18911,
+ VPSHRDVDZmbkz = 18912,
+ VPSHRDVDZmk = 18913,
+ VPSHRDVDZmkz = 18914,
+ VPSHRDVDZr = 18915,
+ VPSHRDVDZrk = 18916,
+ VPSHRDVDZrkz = 18917,
+ VPSHRDVQZ128m = 18918,
+ VPSHRDVQZ128mb = 18919,
+ VPSHRDVQZ128mbk = 18920,
+ VPSHRDVQZ128mbkz = 18921,
+ VPSHRDVQZ128mk = 18922,
+ VPSHRDVQZ128mkz = 18923,
+ VPSHRDVQZ128r = 18924,
+ VPSHRDVQZ128rk = 18925,
+ VPSHRDVQZ128rkz = 18926,
+ VPSHRDVQZ256m = 18927,
+ VPSHRDVQZ256mb = 18928,
+ VPSHRDVQZ256mbk = 18929,
+ VPSHRDVQZ256mbkz = 18930,
+ VPSHRDVQZ256mk = 18931,
+ VPSHRDVQZ256mkz = 18932,
+ VPSHRDVQZ256r = 18933,
+ VPSHRDVQZ256rk = 18934,
+ VPSHRDVQZ256rkz = 18935,
+ VPSHRDVQZm = 18936,
+ VPSHRDVQZmb = 18937,
+ VPSHRDVQZmbk = 18938,
+ VPSHRDVQZmbkz = 18939,
+ VPSHRDVQZmk = 18940,
+ VPSHRDVQZmkz = 18941,
+ VPSHRDVQZr = 18942,
+ VPSHRDVQZrk = 18943,
+ VPSHRDVQZrkz = 18944,
+ VPSHRDVWZ128m = 18945,
+ VPSHRDVWZ128mk = 18946,
+ VPSHRDVWZ128mkz = 18947,
+ VPSHRDVWZ128r = 18948,
+ VPSHRDVWZ128rk = 18949,
+ VPSHRDVWZ128rkz = 18950,
+ VPSHRDVWZ256m = 18951,
+ VPSHRDVWZ256mk = 18952,
+ VPSHRDVWZ256mkz = 18953,
+ VPSHRDVWZ256r = 18954,
+ VPSHRDVWZ256rk = 18955,
+ VPSHRDVWZ256rkz = 18956,
+ VPSHRDVWZm = 18957,
+ VPSHRDVWZmk = 18958,
+ VPSHRDVWZmkz = 18959,
+ VPSHRDVWZr = 18960,
+ VPSHRDVWZrk = 18961,
+ VPSHRDVWZrkz = 18962,
+ VPSHRDWZ128rmi = 18963,
+ VPSHRDWZ128rmik = 18964,
+ VPSHRDWZ128rmikz = 18965,
+ VPSHRDWZ128rri = 18966,
+ VPSHRDWZ128rrik = 18967,
+ VPSHRDWZ128rrikz = 18968,
+ VPSHRDWZ256rmi = 18969,
+ VPSHRDWZ256rmik = 18970,
+ VPSHRDWZ256rmikz = 18971,
+ VPSHRDWZ256rri = 18972,
+ VPSHRDWZ256rrik = 18973,
+ VPSHRDWZ256rrikz = 18974,
+ VPSHRDWZrmi = 18975,
+ VPSHRDWZrmik = 18976,
+ VPSHRDWZrmikz = 18977,
+ VPSHRDWZrri = 18978,
+ VPSHRDWZrrik = 18979,
+ VPSHRDWZrrikz = 18980,
+ VPSHUFBITQMBZ128rm = 18981,
+ VPSHUFBITQMBZ128rmk = 18982,
+ VPSHUFBITQMBZ128rr = 18983,
+ VPSHUFBITQMBZ128rrk = 18984,
+ VPSHUFBITQMBZ256rm = 18985,
+ VPSHUFBITQMBZ256rmk = 18986,
+ VPSHUFBITQMBZ256rr = 18987,
+ VPSHUFBITQMBZ256rrk = 18988,
+ VPSHUFBITQMBZrm = 18989,
+ VPSHUFBITQMBZrmk = 18990,
+ VPSHUFBITQMBZrr = 18991,
+ VPSHUFBITQMBZrrk = 18992,
+ VPSHUFBYrm = 18993,
+ VPSHUFBYrr = 18994,
+ VPSHUFBZ128rm = 18995,
+ VPSHUFBZ128rmk = 18996,
+ VPSHUFBZ128rmkz = 18997,
+ VPSHUFBZ128rr = 18998,
+ VPSHUFBZ128rrk = 18999,
+ VPSHUFBZ128rrkz = 19000,
+ VPSHUFBZ256rm = 19001,
+ VPSHUFBZ256rmk = 19002,
+ VPSHUFBZ256rmkz = 19003,
+ VPSHUFBZ256rr = 19004,
+ VPSHUFBZ256rrk = 19005,
+ VPSHUFBZ256rrkz = 19006,
+ VPSHUFBZrm = 19007,
+ VPSHUFBZrmk = 19008,
+ VPSHUFBZrmkz = 19009,
+ VPSHUFBZrr = 19010,
+ VPSHUFBZrrk = 19011,
+ VPSHUFBZrrkz = 19012,
+ VPSHUFBrm = 19013,
+ VPSHUFBrr = 19014,
+ VPSHUFDYmi = 19015,
+ VPSHUFDYri = 19016,
+ VPSHUFDZ128mbi = 19017,
+ VPSHUFDZ128mbik = 19018,
+ VPSHUFDZ128mbikz = 19019,
+ VPSHUFDZ128mi = 19020,
+ VPSHUFDZ128mik = 19021,
+ VPSHUFDZ128mikz = 19022,
+ VPSHUFDZ128ri = 19023,
+ VPSHUFDZ128rik = 19024,
+ VPSHUFDZ128rikz = 19025,
+ VPSHUFDZ256mbi = 19026,
+ VPSHUFDZ256mbik = 19027,
+ VPSHUFDZ256mbikz = 19028,
+ VPSHUFDZ256mi = 19029,
+ VPSHUFDZ256mik = 19030,
+ VPSHUFDZ256mikz = 19031,
+ VPSHUFDZ256ri = 19032,
+ VPSHUFDZ256rik = 19033,
+ VPSHUFDZ256rikz = 19034,
+ VPSHUFDZmbi = 19035,
+ VPSHUFDZmbik = 19036,
+ VPSHUFDZmbikz = 19037,
+ VPSHUFDZmi = 19038,
+ VPSHUFDZmik = 19039,
+ VPSHUFDZmikz = 19040,
+ VPSHUFDZri = 19041,
+ VPSHUFDZrik = 19042,
+ VPSHUFDZrikz = 19043,
+ VPSHUFDmi = 19044,
+ VPSHUFDri = 19045,
+ VPSHUFHWYmi = 19046,
+ VPSHUFHWYri = 19047,
+ VPSHUFHWZ128mi = 19048,
+ VPSHUFHWZ128mik = 19049,
+ VPSHUFHWZ128mikz = 19050,
+ VPSHUFHWZ128ri = 19051,
+ VPSHUFHWZ128rik = 19052,
+ VPSHUFHWZ128rikz = 19053,
+ VPSHUFHWZ256mi = 19054,
+ VPSHUFHWZ256mik = 19055,
+ VPSHUFHWZ256mikz = 19056,
+ VPSHUFHWZ256ri = 19057,
+ VPSHUFHWZ256rik = 19058,
+ VPSHUFHWZ256rikz = 19059,
+ VPSHUFHWZmi = 19060,
+ VPSHUFHWZmik = 19061,
+ VPSHUFHWZmikz = 19062,
+ VPSHUFHWZri = 19063,
+ VPSHUFHWZrik = 19064,
+ VPSHUFHWZrikz = 19065,
+ VPSHUFHWmi = 19066,
+ VPSHUFHWri = 19067,
+ VPSHUFLWYmi = 19068,
+ VPSHUFLWYri = 19069,
+ VPSHUFLWZ128mi = 19070,
+ VPSHUFLWZ128mik = 19071,
+ VPSHUFLWZ128mikz = 19072,
+ VPSHUFLWZ128ri = 19073,
+ VPSHUFLWZ128rik = 19074,
+ VPSHUFLWZ128rikz = 19075,
+ VPSHUFLWZ256mi = 19076,
+ VPSHUFLWZ256mik = 19077,
+ VPSHUFLWZ256mikz = 19078,
+ VPSHUFLWZ256ri = 19079,
+ VPSHUFLWZ256rik = 19080,
+ VPSHUFLWZ256rikz = 19081,
+ VPSHUFLWZmi = 19082,
+ VPSHUFLWZmik = 19083,
+ VPSHUFLWZmikz = 19084,
+ VPSHUFLWZri = 19085,
+ VPSHUFLWZrik = 19086,
+ VPSHUFLWZrikz = 19087,
+ VPSHUFLWmi = 19088,
+ VPSHUFLWri = 19089,
+ VPSIGNBYrm = 19090,
+ VPSIGNBYrr = 19091,
+ VPSIGNBrm = 19092,
+ VPSIGNBrr = 19093,
+ VPSIGNDYrm = 19094,
+ VPSIGNDYrr = 19095,
+ VPSIGNDrm = 19096,
+ VPSIGNDrr = 19097,
+ VPSIGNWYrm = 19098,
+ VPSIGNWYrr = 19099,
+ VPSIGNWrm = 19100,
+ VPSIGNWrr = 19101,
+ VPSLLDQYri = 19102,
+ VPSLLDQZ128mi = 19103,
+ VPSLLDQZ128ri = 19104,
+ VPSLLDQZ256mi = 19105,
+ VPSLLDQZ256ri = 19106,
+ VPSLLDQZmi = 19107,
+ VPSLLDQZri = 19108,
+ VPSLLDQri = 19109,
+ VPSLLDYri = 19110,
+ VPSLLDYrm = 19111,
+ VPSLLDYrr = 19112,
+ VPSLLDZ128mbi = 19113,
+ VPSLLDZ128mbik = 19114,
+ VPSLLDZ128mbikz = 19115,
+ VPSLLDZ128mi = 19116,
+ VPSLLDZ128mik = 19117,
+ VPSLLDZ128mikz = 19118,
+ VPSLLDZ128ri = 19119,
+ VPSLLDZ128rik = 19120,
+ VPSLLDZ128rikz = 19121,
+ VPSLLDZ128rm = 19122,
+ VPSLLDZ128rmk = 19123,
+ VPSLLDZ128rmkz = 19124,
+ VPSLLDZ128rr = 19125,
+ VPSLLDZ128rrk = 19126,
+ VPSLLDZ128rrkz = 19127,
+ VPSLLDZ256mbi = 19128,
+ VPSLLDZ256mbik = 19129,
+ VPSLLDZ256mbikz = 19130,
+ VPSLLDZ256mi = 19131,
+ VPSLLDZ256mik = 19132,
+ VPSLLDZ256mikz = 19133,
+ VPSLLDZ256ri = 19134,
+ VPSLLDZ256rik = 19135,
+ VPSLLDZ256rikz = 19136,
+ VPSLLDZ256rm = 19137,
+ VPSLLDZ256rmk = 19138,
+ VPSLLDZ256rmkz = 19139,
+ VPSLLDZ256rr = 19140,
+ VPSLLDZ256rrk = 19141,
+ VPSLLDZ256rrkz = 19142,
+ VPSLLDZmbi = 19143,
+ VPSLLDZmbik = 19144,
+ VPSLLDZmbikz = 19145,
+ VPSLLDZmi = 19146,
+ VPSLLDZmik = 19147,
+ VPSLLDZmikz = 19148,
+ VPSLLDZri = 19149,
+ VPSLLDZrik = 19150,
+ VPSLLDZrikz = 19151,
+ VPSLLDZrm = 19152,
+ VPSLLDZrmk = 19153,
+ VPSLLDZrmkz = 19154,
+ VPSLLDZrr = 19155,
+ VPSLLDZrrk = 19156,
+ VPSLLDZrrkz = 19157,
+ VPSLLDri = 19158,
+ VPSLLDrm = 19159,
+ VPSLLDrr = 19160,
+ VPSLLQYri = 19161,
+ VPSLLQYrm = 19162,
+ VPSLLQYrr = 19163,
+ VPSLLQZ128mbi = 19164,
+ VPSLLQZ128mbik = 19165,
+ VPSLLQZ128mbikz = 19166,
+ VPSLLQZ128mi = 19167,
+ VPSLLQZ128mik = 19168,
+ VPSLLQZ128mikz = 19169,
+ VPSLLQZ128ri = 19170,
+ VPSLLQZ128rik = 19171,
+ VPSLLQZ128rikz = 19172,
+ VPSLLQZ128rm = 19173,
+ VPSLLQZ128rmk = 19174,
+ VPSLLQZ128rmkz = 19175,
+ VPSLLQZ128rr = 19176,
+ VPSLLQZ128rrk = 19177,
+ VPSLLQZ128rrkz = 19178,
+ VPSLLQZ256mbi = 19179,
+ VPSLLQZ256mbik = 19180,
+ VPSLLQZ256mbikz = 19181,
+ VPSLLQZ256mi = 19182,
+ VPSLLQZ256mik = 19183,
+ VPSLLQZ256mikz = 19184,
+ VPSLLQZ256ri = 19185,
+ VPSLLQZ256rik = 19186,
+ VPSLLQZ256rikz = 19187,
+ VPSLLQZ256rm = 19188,
+ VPSLLQZ256rmk = 19189,
+ VPSLLQZ256rmkz = 19190,
+ VPSLLQZ256rr = 19191,
+ VPSLLQZ256rrk = 19192,
+ VPSLLQZ256rrkz = 19193,
+ VPSLLQZmbi = 19194,
+ VPSLLQZmbik = 19195,
+ VPSLLQZmbikz = 19196,
+ VPSLLQZmi = 19197,
+ VPSLLQZmik = 19198,
+ VPSLLQZmikz = 19199,
+ VPSLLQZri = 19200,
+ VPSLLQZrik = 19201,
+ VPSLLQZrikz = 19202,
+ VPSLLQZrm = 19203,
+ VPSLLQZrmk = 19204,
+ VPSLLQZrmkz = 19205,
+ VPSLLQZrr = 19206,
+ VPSLLQZrrk = 19207,
+ VPSLLQZrrkz = 19208,
+ VPSLLQri = 19209,
+ VPSLLQrm = 19210,
+ VPSLLQrr = 19211,
+ VPSLLVDYrm = 19212,
+ VPSLLVDYrr = 19213,
+ VPSLLVDZ128rm = 19214,
+ VPSLLVDZ128rmb = 19215,
+ VPSLLVDZ128rmbk = 19216,
+ VPSLLVDZ128rmbkz = 19217,
+ VPSLLVDZ128rmk = 19218,
+ VPSLLVDZ128rmkz = 19219,
+ VPSLLVDZ128rr = 19220,
+ VPSLLVDZ128rrk = 19221,
+ VPSLLVDZ128rrkz = 19222,
+ VPSLLVDZ256rm = 19223,
+ VPSLLVDZ256rmb = 19224,
+ VPSLLVDZ256rmbk = 19225,
+ VPSLLVDZ256rmbkz = 19226,
+ VPSLLVDZ256rmk = 19227,
+ VPSLLVDZ256rmkz = 19228,
+ VPSLLVDZ256rr = 19229,
+ VPSLLVDZ256rrk = 19230,
+ VPSLLVDZ256rrkz = 19231,
+ VPSLLVDZrm = 19232,
+ VPSLLVDZrmb = 19233,
+ VPSLLVDZrmbk = 19234,
+ VPSLLVDZrmbkz = 19235,
+ VPSLLVDZrmk = 19236,
+ VPSLLVDZrmkz = 19237,
+ VPSLLVDZrr = 19238,
+ VPSLLVDZrrk = 19239,
+ VPSLLVDZrrkz = 19240,
+ VPSLLVDrm = 19241,
+ VPSLLVDrr = 19242,
+ VPSLLVQYrm = 19243,
+ VPSLLVQYrr = 19244,
+ VPSLLVQZ128rm = 19245,
+ VPSLLVQZ128rmb = 19246,
+ VPSLLVQZ128rmbk = 19247,
+ VPSLLVQZ128rmbkz = 19248,
+ VPSLLVQZ128rmk = 19249,
+ VPSLLVQZ128rmkz = 19250,
+ VPSLLVQZ128rr = 19251,
+ VPSLLVQZ128rrk = 19252,
+ VPSLLVQZ128rrkz = 19253,
+ VPSLLVQZ256rm = 19254,
+ VPSLLVQZ256rmb = 19255,
+ VPSLLVQZ256rmbk = 19256,
+ VPSLLVQZ256rmbkz = 19257,
+ VPSLLVQZ256rmk = 19258,
+ VPSLLVQZ256rmkz = 19259,
+ VPSLLVQZ256rr = 19260,
+ VPSLLVQZ256rrk = 19261,
+ VPSLLVQZ256rrkz = 19262,
+ VPSLLVQZrm = 19263,
+ VPSLLVQZrmb = 19264,
+ VPSLLVQZrmbk = 19265,
+ VPSLLVQZrmbkz = 19266,
+ VPSLLVQZrmk = 19267,
+ VPSLLVQZrmkz = 19268,
+ VPSLLVQZrr = 19269,
+ VPSLLVQZrrk = 19270,
+ VPSLLVQZrrkz = 19271,
+ VPSLLVQrm = 19272,
+ VPSLLVQrr = 19273,
+ VPSLLVWZ128rm = 19274,
+ VPSLLVWZ128rmk = 19275,
+ VPSLLVWZ128rmkz = 19276,
+ VPSLLVWZ128rr = 19277,
+ VPSLLVWZ128rrk = 19278,
+ VPSLLVWZ128rrkz = 19279,
+ VPSLLVWZ256rm = 19280,
+ VPSLLVWZ256rmk = 19281,
+ VPSLLVWZ256rmkz = 19282,
+ VPSLLVWZ256rr = 19283,
+ VPSLLVWZ256rrk = 19284,
+ VPSLLVWZ256rrkz = 19285,
+ VPSLLVWZrm = 19286,
+ VPSLLVWZrmk = 19287,
+ VPSLLVWZrmkz = 19288,
+ VPSLLVWZrr = 19289,
+ VPSLLVWZrrk = 19290,
+ VPSLLVWZrrkz = 19291,
+ VPSLLWYri = 19292,
+ VPSLLWYrm = 19293,
+ VPSLLWYrr = 19294,
+ VPSLLWZ128mi = 19295,
+ VPSLLWZ128mik = 19296,
+ VPSLLWZ128mikz = 19297,
+ VPSLLWZ128ri = 19298,
+ VPSLLWZ128rik = 19299,
+ VPSLLWZ128rikz = 19300,
+ VPSLLWZ128rm = 19301,
+ VPSLLWZ128rmk = 19302,
+ VPSLLWZ128rmkz = 19303,
+ VPSLLWZ128rr = 19304,
+ VPSLLWZ128rrk = 19305,
+ VPSLLWZ128rrkz = 19306,
+ VPSLLWZ256mi = 19307,
+ VPSLLWZ256mik = 19308,
+ VPSLLWZ256mikz = 19309,
+ VPSLLWZ256ri = 19310,
+ VPSLLWZ256rik = 19311,
+ VPSLLWZ256rikz = 19312,
+ VPSLLWZ256rm = 19313,
+ VPSLLWZ256rmk = 19314,
+ VPSLLWZ256rmkz = 19315,
+ VPSLLWZ256rr = 19316,
+ VPSLLWZ256rrk = 19317,
+ VPSLLWZ256rrkz = 19318,
+ VPSLLWZmi = 19319,
+ VPSLLWZmik = 19320,
+ VPSLLWZmikz = 19321,
+ VPSLLWZri = 19322,
+ VPSLLWZrik = 19323,
+ VPSLLWZrikz = 19324,
+ VPSLLWZrm = 19325,
+ VPSLLWZrmk = 19326,
+ VPSLLWZrmkz = 19327,
+ VPSLLWZrr = 19328,
+ VPSLLWZrrk = 19329,
+ VPSLLWZrrkz = 19330,
+ VPSLLWri = 19331,
+ VPSLLWrm = 19332,
+ VPSLLWrr = 19333,
+ VPSRADYri = 19334,
+ VPSRADYrm = 19335,
+ VPSRADYrr = 19336,
+ VPSRADZ128mbi = 19337,
+ VPSRADZ128mbik = 19338,
+ VPSRADZ128mbikz = 19339,
+ VPSRADZ128mi = 19340,
+ VPSRADZ128mik = 19341,
+ VPSRADZ128mikz = 19342,
+ VPSRADZ128ri = 19343,
+ VPSRADZ128rik = 19344,
+ VPSRADZ128rikz = 19345,
+ VPSRADZ128rm = 19346,
+ VPSRADZ128rmk = 19347,
+ VPSRADZ128rmkz = 19348,
+ VPSRADZ128rr = 19349,
+ VPSRADZ128rrk = 19350,
+ VPSRADZ128rrkz = 19351,
+ VPSRADZ256mbi = 19352,
+ VPSRADZ256mbik = 19353,
+ VPSRADZ256mbikz = 19354,
+ VPSRADZ256mi = 19355,
+ VPSRADZ256mik = 19356,
+ VPSRADZ256mikz = 19357,
+ VPSRADZ256ri = 19358,
+ VPSRADZ256rik = 19359,
+ VPSRADZ256rikz = 19360,
+ VPSRADZ256rm = 19361,
+ VPSRADZ256rmk = 19362,
+ VPSRADZ256rmkz = 19363,
+ VPSRADZ256rr = 19364,
+ VPSRADZ256rrk = 19365,
+ VPSRADZ256rrkz = 19366,
+ VPSRADZmbi = 19367,
+ VPSRADZmbik = 19368,
+ VPSRADZmbikz = 19369,
+ VPSRADZmi = 19370,
+ VPSRADZmik = 19371,
+ VPSRADZmikz = 19372,
+ VPSRADZri = 19373,
+ VPSRADZrik = 19374,
+ VPSRADZrikz = 19375,
+ VPSRADZrm = 19376,
+ VPSRADZrmk = 19377,
+ VPSRADZrmkz = 19378,
+ VPSRADZrr = 19379,
+ VPSRADZrrk = 19380,
+ VPSRADZrrkz = 19381,
+ VPSRADri = 19382,
+ VPSRADrm = 19383,
+ VPSRADrr = 19384,
+ VPSRAQZ128mbi = 19385,
+ VPSRAQZ128mbik = 19386,
+ VPSRAQZ128mbikz = 19387,
+ VPSRAQZ128mi = 19388,
+ VPSRAQZ128mik = 19389,
+ VPSRAQZ128mikz = 19390,
+ VPSRAQZ128ri = 19391,
+ VPSRAQZ128rik = 19392,
+ VPSRAQZ128rikz = 19393,
+ VPSRAQZ128rm = 19394,
+ VPSRAQZ128rmk = 19395,
+ VPSRAQZ128rmkz = 19396,
+ VPSRAQZ128rr = 19397,
+ VPSRAQZ128rrk = 19398,
+ VPSRAQZ128rrkz = 19399,
+ VPSRAQZ256mbi = 19400,
+ VPSRAQZ256mbik = 19401,
+ VPSRAQZ256mbikz = 19402,
+ VPSRAQZ256mi = 19403,
+ VPSRAQZ256mik = 19404,
+ VPSRAQZ256mikz = 19405,
+ VPSRAQZ256ri = 19406,
+ VPSRAQZ256rik = 19407,
+ VPSRAQZ256rikz = 19408,
+ VPSRAQZ256rm = 19409,
+ VPSRAQZ256rmk = 19410,
+ VPSRAQZ256rmkz = 19411,
+ VPSRAQZ256rr = 19412,
+ VPSRAQZ256rrk = 19413,
+ VPSRAQZ256rrkz = 19414,
+ VPSRAQZmbi = 19415,
+ VPSRAQZmbik = 19416,
+ VPSRAQZmbikz = 19417,
+ VPSRAQZmi = 19418,
+ VPSRAQZmik = 19419,
+ VPSRAQZmikz = 19420,
+ VPSRAQZri = 19421,
+ VPSRAQZrik = 19422,
+ VPSRAQZrikz = 19423,
+ VPSRAQZrm = 19424,
+ VPSRAQZrmk = 19425,
+ VPSRAQZrmkz = 19426,
+ VPSRAQZrr = 19427,
+ VPSRAQZrrk = 19428,
+ VPSRAQZrrkz = 19429,
+ VPSRAVDYrm = 19430,
+ VPSRAVDYrr = 19431,
+ VPSRAVDZ128rm = 19432,
+ VPSRAVDZ128rmb = 19433,
+ VPSRAVDZ128rmbk = 19434,
+ VPSRAVDZ128rmbkz = 19435,
+ VPSRAVDZ128rmk = 19436,
+ VPSRAVDZ128rmkz = 19437,
+ VPSRAVDZ128rr = 19438,
+ VPSRAVDZ128rrk = 19439,
+ VPSRAVDZ128rrkz = 19440,
+ VPSRAVDZ256rm = 19441,
+ VPSRAVDZ256rmb = 19442,
+ VPSRAVDZ256rmbk = 19443,
+ VPSRAVDZ256rmbkz = 19444,
+ VPSRAVDZ256rmk = 19445,
+ VPSRAVDZ256rmkz = 19446,
+ VPSRAVDZ256rr = 19447,
+ VPSRAVDZ256rrk = 19448,
+ VPSRAVDZ256rrkz = 19449,
+ VPSRAVDZrm = 19450,
+ VPSRAVDZrmb = 19451,
+ VPSRAVDZrmbk = 19452,
+ VPSRAVDZrmbkz = 19453,
+ VPSRAVDZrmk = 19454,
+ VPSRAVDZrmkz = 19455,
+ VPSRAVDZrr = 19456,
+ VPSRAVDZrrk = 19457,
+ VPSRAVDZrrkz = 19458,
+ VPSRAVDrm = 19459,
+ VPSRAVDrr = 19460,
+ VPSRAVQZ128rm = 19461,
+ VPSRAVQZ128rmb = 19462,
+ VPSRAVQZ128rmbk = 19463,
+ VPSRAVQZ128rmbkz = 19464,
+ VPSRAVQZ128rmk = 19465,
+ VPSRAVQZ128rmkz = 19466,
+ VPSRAVQZ128rr = 19467,
+ VPSRAVQZ128rrk = 19468,
+ VPSRAVQZ128rrkz = 19469,
+ VPSRAVQZ256rm = 19470,
+ VPSRAVQZ256rmb = 19471,
+ VPSRAVQZ256rmbk = 19472,
+ VPSRAVQZ256rmbkz = 19473,
+ VPSRAVQZ256rmk = 19474,
+ VPSRAVQZ256rmkz = 19475,
+ VPSRAVQZ256rr = 19476,
+ VPSRAVQZ256rrk = 19477,
+ VPSRAVQZ256rrkz = 19478,
+ VPSRAVQZrm = 19479,
+ VPSRAVQZrmb = 19480,
+ VPSRAVQZrmbk = 19481,
+ VPSRAVQZrmbkz = 19482,
+ VPSRAVQZrmk = 19483,
+ VPSRAVQZrmkz = 19484,
+ VPSRAVQZrr = 19485,
+ VPSRAVQZrrk = 19486,
+ VPSRAVQZrrkz = 19487,
+ VPSRAVWZ128rm = 19488,
+ VPSRAVWZ128rmk = 19489,
+ VPSRAVWZ128rmkz = 19490,
+ VPSRAVWZ128rr = 19491,
+ VPSRAVWZ128rrk = 19492,
+ VPSRAVWZ128rrkz = 19493,
+ VPSRAVWZ256rm = 19494,
+ VPSRAVWZ256rmk = 19495,
+ VPSRAVWZ256rmkz = 19496,
+ VPSRAVWZ256rr = 19497,
+ VPSRAVWZ256rrk = 19498,
+ VPSRAVWZ256rrkz = 19499,
+ VPSRAVWZrm = 19500,
+ VPSRAVWZrmk = 19501,
+ VPSRAVWZrmkz = 19502,
+ VPSRAVWZrr = 19503,
+ VPSRAVWZrrk = 19504,
+ VPSRAVWZrrkz = 19505,
+ VPSRAWYri = 19506,
+ VPSRAWYrm = 19507,
+ VPSRAWYrr = 19508,
+ VPSRAWZ128mi = 19509,
+ VPSRAWZ128mik = 19510,
+ VPSRAWZ128mikz = 19511,
+ VPSRAWZ128ri = 19512,
+ VPSRAWZ128rik = 19513,
+ VPSRAWZ128rikz = 19514,
+ VPSRAWZ128rm = 19515,
+ VPSRAWZ128rmk = 19516,
+ VPSRAWZ128rmkz = 19517,
+ VPSRAWZ128rr = 19518,
+ VPSRAWZ128rrk = 19519,
+ VPSRAWZ128rrkz = 19520,
+ VPSRAWZ256mi = 19521,
+ VPSRAWZ256mik = 19522,
+ VPSRAWZ256mikz = 19523,
+ VPSRAWZ256ri = 19524,
+ VPSRAWZ256rik = 19525,
+ VPSRAWZ256rikz = 19526,
+ VPSRAWZ256rm = 19527,
+ VPSRAWZ256rmk = 19528,
+ VPSRAWZ256rmkz = 19529,
+ VPSRAWZ256rr = 19530,
+ VPSRAWZ256rrk = 19531,
+ VPSRAWZ256rrkz = 19532,
+ VPSRAWZmi = 19533,
+ VPSRAWZmik = 19534,
+ VPSRAWZmikz = 19535,
+ VPSRAWZri = 19536,
+ VPSRAWZrik = 19537,
+ VPSRAWZrikz = 19538,
+ VPSRAWZrm = 19539,
+ VPSRAWZrmk = 19540,
+ VPSRAWZrmkz = 19541,
+ VPSRAWZrr = 19542,
+ VPSRAWZrrk = 19543,
+ VPSRAWZrrkz = 19544,
+ VPSRAWri = 19545,
+ VPSRAWrm = 19546,
+ VPSRAWrr = 19547,
+ VPSRLDQYri = 19548,
+ VPSRLDQZ128mi = 19549,
+ VPSRLDQZ128ri = 19550,
+ VPSRLDQZ256mi = 19551,
+ VPSRLDQZ256ri = 19552,
+ VPSRLDQZmi = 19553,
+ VPSRLDQZri = 19554,
+ VPSRLDQri = 19555,
+ VPSRLDYri = 19556,
+ VPSRLDYrm = 19557,
+ VPSRLDYrr = 19558,
+ VPSRLDZ128mbi = 19559,
+ VPSRLDZ128mbik = 19560,
+ VPSRLDZ128mbikz = 19561,
+ VPSRLDZ128mi = 19562,
+ VPSRLDZ128mik = 19563,
+ VPSRLDZ128mikz = 19564,
+ VPSRLDZ128ri = 19565,
+ VPSRLDZ128rik = 19566,
+ VPSRLDZ128rikz = 19567,
+ VPSRLDZ128rm = 19568,
+ VPSRLDZ128rmk = 19569,
+ VPSRLDZ128rmkz = 19570,
+ VPSRLDZ128rr = 19571,
+ VPSRLDZ128rrk = 19572,
+ VPSRLDZ128rrkz = 19573,
+ VPSRLDZ256mbi = 19574,
+ VPSRLDZ256mbik = 19575,
+ VPSRLDZ256mbikz = 19576,
+ VPSRLDZ256mi = 19577,
+ VPSRLDZ256mik = 19578,
+ VPSRLDZ256mikz = 19579,
+ VPSRLDZ256ri = 19580,
+ VPSRLDZ256rik = 19581,
+ VPSRLDZ256rikz = 19582,
+ VPSRLDZ256rm = 19583,
+ VPSRLDZ256rmk = 19584,
+ VPSRLDZ256rmkz = 19585,
+ VPSRLDZ256rr = 19586,
+ VPSRLDZ256rrk = 19587,
+ VPSRLDZ256rrkz = 19588,
+ VPSRLDZmbi = 19589,
+ VPSRLDZmbik = 19590,
+ VPSRLDZmbikz = 19591,
+ VPSRLDZmi = 19592,
+ VPSRLDZmik = 19593,
+ VPSRLDZmikz = 19594,
+ VPSRLDZri = 19595,
+ VPSRLDZrik = 19596,
+ VPSRLDZrikz = 19597,
+ VPSRLDZrm = 19598,
+ VPSRLDZrmk = 19599,
+ VPSRLDZrmkz = 19600,
+ VPSRLDZrr = 19601,
+ VPSRLDZrrk = 19602,
+ VPSRLDZrrkz = 19603,
+ VPSRLDri = 19604,
+ VPSRLDrm = 19605,
+ VPSRLDrr = 19606,
+ VPSRLQYri = 19607,
+ VPSRLQYrm = 19608,
+ VPSRLQYrr = 19609,
+ VPSRLQZ128mbi = 19610,
+ VPSRLQZ128mbik = 19611,
+ VPSRLQZ128mbikz = 19612,
+ VPSRLQZ128mi = 19613,
+ VPSRLQZ128mik = 19614,
+ VPSRLQZ128mikz = 19615,
+ VPSRLQZ128ri = 19616,
+ VPSRLQZ128rik = 19617,
+ VPSRLQZ128rikz = 19618,
+ VPSRLQZ128rm = 19619,
+ VPSRLQZ128rmk = 19620,
+ VPSRLQZ128rmkz = 19621,
+ VPSRLQZ128rr = 19622,
+ VPSRLQZ128rrk = 19623,
+ VPSRLQZ128rrkz = 19624,
+ VPSRLQZ256mbi = 19625,
+ VPSRLQZ256mbik = 19626,
+ VPSRLQZ256mbikz = 19627,
+ VPSRLQZ256mi = 19628,
+ VPSRLQZ256mik = 19629,
+ VPSRLQZ256mikz = 19630,
+ VPSRLQZ256ri = 19631,
+ VPSRLQZ256rik = 19632,
+ VPSRLQZ256rikz = 19633,
+ VPSRLQZ256rm = 19634,
+ VPSRLQZ256rmk = 19635,
+ VPSRLQZ256rmkz = 19636,
+ VPSRLQZ256rr = 19637,
+ VPSRLQZ256rrk = 19638,
+ VPSRLQZ256rrkz = 19639,
+ VPSRLQZmbi = 19640,
+ VPSRLQZmbik = 19641,
+ VPSRLQZmbikz = 19642,
+ VPSRLQZmi = 19643,
+ VPSRLQZmik = 19644,
+ VPSRLQZmikz = 19645,
+ VPSRLQZri = 19646,
+ VPSRLQZrik = 19647,
+ VPSRLQZrikz = 19648,
+ VPSRLQZrm = 19649,
+ VPSRLQZrmk = 19650,
+ VPSRLQZrmkz = 19651,
+ VPSRLQZrr = 19652,
+ VPSRLQZrrk = 19653,
+ VPSRLQZrrkz = 19654,
+ VPSRLQri = 19655,
+ VPSRLQrm = 19656,
+ VPSRLQrr = 19657,
+ VPSRLVDYrm = 19658,
+ VPSRLVDYrr = 19659,
+ VPSRLVDZ128rm = 19660,
+ VPSRLVDZ128rmb = 19661,
+ VPSRLVDZ128rmbk = 19662,
+ VPSRLVDZ128rmbkz = 19663,
+ VPSRLVDZ128rmk = 19664,
+ VPSRLVDZ128rmkz = 19665,
+ VPSRLVDZ128rr = 19666,
+ VPSRLVDZ128rrk = 19667,
+ VPSRLVDZ128rrkz = 19668,
+ VPSRLVDZ256rm = 19669,
+ VPSRLVDZ256rmb = 19670,
+ VPSRLVDZ256rmbk = 19671,
+ VPSRLVDZ256rmbkz = 19672,
+ VPSRLVDZ256rmk = 19673,
+ VPSRLVDZ256rmkz = 19674,
+ VPSRLVDZ256rr = 19675,
+ VPSRLVDZ256rrk = 19676,
+ VPSRLVDZ256rrkz = 19677,
+ VPSRLVDZrm = 19678,
+ VPSRLVDZrmb = 19679,
+ VPSRLVDZrmbk = 19680,
+ VPSRLVDZrmbkz = 19681,
+ VPSRLVDZrmk = 19682,
+ VPSRLVDZrmkz = 19683,
+ VPSRLVDZrr = 19684,
+ VPSRLVDZrrk = 19685,
+ VPSRLVDZrrkz = 19686,
+ VPSRLVDrm = 19687,
+ VPSRLVDrr = 19688,
+ VPSRLVQYrm = 19689,
+ VPSRLVQYrr = 19690,
+ VPSRLVQZ128rm = 19691,
+ VPSRLVQZ128rmb = 19692,
+ VPSRLVQZ128rmbk = 19693,
+ VPSRLVQZ128rmbkz = 19694,
+ VPSRLVQZ128rmk = 19695,
+ VPSRLVQZ128rmkz = 19696,
+ VPSRLVQZ128rr = 19697,
+ VPSRLVQZ128rrk = 19698,
+ VPSRLVQZ128rrkz = 19699,
+ VPSRLVQZ256rm = 19700,
+ VPSRLVQZ256rmb = 19701,
+ VPSRLVQZ256rmbk = 19702,
+ VPSRLVQZ256rmbkz = 19703,
+ VPSRLVQZ256rmk = 19704,
+ VPSRLVQZ256rmkz = 19705,
+ VPSRLVQZ256rr = 19706,
+ VPSRLVQZ256rrk = 19707,
+ VPSRLVQZ256rrkz = 19708,
+ VPSRLVQZrm = 19709,
+ VPSRLVQZrmb = 19710,
+ VPSRLVQZrmbk = 19711,
+ VPSRLVQZrmbkz = 19712,
+ VPSRLVQZrmk = 19713,
+ VPSRLVQZrmkz = 19714,
+ VPSRLVQZrr = 19715,
+ VPSRLVQZrrk = 19716,
+ VPSRLVQZrrkz = 19717,
+ VPSRLVQrm = 19718,
+ VPSRLVQrr = 19719,
+ VPSRLVWZ128rm = 19720,
+ VPSRLVWZ128rmk = 19721,
+ VPSRLVWZ128rmkz = 19722,
+ VPSRLVWZ128rr = 19723,
+ VPSRLVWZ128rrk = 19724,
+ VPSRLVWZ128rrkz = 19725,
+ VPSRLVWZ256rm = 19726,
+ VPSRLVWZ256rmk = 19727,
+ VPSRLVWZ256rmkz = 19728,
+ VPSRLVWZ256rr = 19729,
+ VPSRLVWZ256rrk = 19730,
+ VPSRLVWZ256rrkz = 19731,
+ VPSRLVWZrm = 19732,
+ VPSRLVWZrmk = 19733,
+ VPSRLVWZrmkz = 19734,
+ VPSRLVWZrr = 19735,
+ VPSRLVWZrrk = 19736,
+ VPSRLVWZrrkz = 19737,
+ VPSRLWYri = 19738,
+ VPSRLWYrm = 19739,
+ VPSRLWYrr = 19740,
+ VPSRLWZ128mi = 19741,
+ VPSRLWZ128mik = 19742,
+ VPSRLWZ128mikz = 19743,
+ VPSRLWZ128ri = 19744,
+ VPSRLWZ128rik = 19745,
+ VPSRLWZ128rikz = 19746,
+ VPSRLWZ128rm = 19747,
+ VPSRLWZ128rmk = 19748,
+ VPSRLWZ128rmkz = 19749,
+ VPSRLWZ128rr = 19750,
+ VPSRLWZ128rrk = 19751,
+ VPSRLWZ128rrkz = 19752,
+ VPSRLWZ256mi = 19753,
+ VPSRLWZ256mik = 19754,
+ VPSRLWZ256mikz = 19755,
+ VPSRLWZ256ri = 19756,
+ VPSRLWZ256rik = 19757,
+ VPSRLWZ256rikz = 19758,
+ VPSRLWZ256rm = 19759,
+ VPSRLWZ256rmk = 19760,
+ VPSRLWZ256rmkz = 19761,
+ VPSRLWZ256rr = 19762,
+ VPSRLWZ256rrk = 19763,
+ VPSRLWZ256rrkz = 19764,
+ VPSRLWZmi = 19765,
+ VPSRLWZmik = 19766,
+ VPSRLWZmikz = 19767,
+ VPSRLWZri = 19768,
+ VPSRLWZrik = 19769,
+ VPSRLWZrikz = 19770,
+ VPSRLWZrm = 19771,
+ VPSRLWZrmk = 19772,
+ VPSRLWZrmkz = 19773,
+ VPSRLWZrr = 19774,
+ VPSRLWZrrk = 19775,
+ VPSRLWZrrkz = 19776,
+ VPSRLWri = 19777,
+ VPSRLWrm = 19778,
+ VPSRLWrr = 19779,
+ VPSUBBYrm = 19780,
+ VPSUBBYrr = 19781,
+ VPSUBBZ128rm = 19782,
+ VPSUBBZ128rmk = 19783,
+ VPSUBBZ128rmkz = 19784,
+ VPSUBBZ128rr = 19785,
+ VPSUBBZ128rrk = 19786,
+ VPSUBBZ128rrkz = 19787,
+ VPSUBBZ256rm = 19788,
+ VPSUBBZ256rmk = 19789,
+ VPSUBBZ256rmkz = 19790,
+ VPSUBBZ256rr = 19791,
+ VPSUBBZ256rrk = 19792,
+ VPSUBBZ256rrkz = 19793,
+ VPSUBBZrm = 19794,
+ VPSUBBZrmk = 19795,
+ VPSUBBZrmkz = 19796,
+ VPSUBBZrr = 19797,
+ VPSUBBZrrk = 19798,
+ VPSUBBZrrkz = 19799,
+ VPSUBBrm = 19800,
+ VPSUBBrr = 19801,
+ VPSUBDYrm = 19802,
+ VPSUBDYrr = 19803,
+ VPSUBDZ128rm = 19804,
+ VPSUBDZ128rmb = 19805,
+ VPSUBDZ128rmbk = 19806,
+ VPSUBDZ128rmbkz = 19807,
+ VPSUBDZ128rmk = 19808,
+ VPSUBDZ128rmkz = 19809,
+ VPSUBDZ128rr = 19810,
+ VPSUBDZ128rrk = 19811,
+ VPSUBDZ128rrkz = 19812,
+ VPSUBDZ256rm = 19813,
+ VPSUBDZ256rmb = 19814,
+ VPSUBDZ256rmbk = 19815,
+ VPSUBDZ256rmbkz = 19816,
+ VPSUBDZ256rmk = 19817,
+ VPSUBDZ256rmkz = 19818,
+ VPSUBDZ256rr = 19819,
+ VPSUBDZ256rrk = 19820,
+ VPSUBDZ256rrkz = 19821,
+ VPSUBDZrm = 19822,
+ VPSUBDZrmb = 19823,
+ VPSUBDZrmbk = 19824,
+ VPSUBDZrmbkz = 19825,
+ VPSUBDZrmk = 19826,
+ VPSUBDZrmkz = 19827,
+ VPSUBDZrr = 19828,
+ VPSUBDZrrk = 19829,
+ VPSUBDZrrkz = 19830,
+ VPSUBDrm = 19831,
+ VPSUBDrr = 19832,
+ VPSUBQYrm = 19833,
+ VPSUBQYrr = 19834,
+ VPSUBQZ128rm = 19835,
+ VPSUBQZ128rmb = 19836,
+ VPSUBQZ128rmbk = 19837,
+ VPSUBQZ128rmbkz = 19838,
+ VPSUBQZ128rmk = 19839,
+ VPSUBQZ128rmkz = 19840,
+ VPSUBQZ128rr = 19841,
+ VPSUBQZ128rrk = 19842,
+ VPSUBQZ128rrkz = 19843,
+ VPSUBQZ256rm = 19844,
+ VPSUBQZ256rmb = 19845,
+ VPSUBQZ256rmbk = 19846,
+ VPSUBQZ256rmbkz = 19847,
+ VPSUBQZ256rmk = 19848,
+ VPSUBQZ256rmkz = 19849,
+ VPSUBQZ256rr = 19850,
+ VPSUBQZ256rrk = 19851,
+ VPSUBQZ256rrkz = 19852,
+ VPSUBQZrm = 19853,
+ VPSUBQZrmb = 19854,
+ VPSUBQZrmbk = 19855,
+ VPSUBQZrmbkz = 19856,
+ VPSUBQZrmk = 19857,
+ VPSUBQZrmkz = 19858,
+ VPSUBQZrr = 19859,
+ VPSUBQZrrk = 19860,
+ VPSUBQZrrkz = 19861,
+ VPSUBQrm = 19862,
+ VPSUBQrr = 19863,
+ VPSUBSBYrm = 19864,
+ VPSUBSBYrr = 19865,
+ VPSUBSBZ128rm = 19866,
+ VPSUBSBZ128rmk = 19867,
+ VPSUBSBZ128rmkz = 19868,
+ VPSUBSBZ128rr = 19869,
+ VPSUBSBZ128rrk = 19870,
+ VPSUBSBZ128rrkz = 19871,
+ VPSUBSBZ256rm = 19872,
+ VPSUBSBZ256rmk = 19873,
+ VPSUBSBZ256rmkz = 19874,
+ VPSUBSBZ256rr = 19875,
+ VPSUBSBZ256rrk = 19876,
+ VPSUBSBZ256rrkz = 19877,
+ VPSUBSBZrm = 19878,
+ VPSUBSBZrmk = 19879,
+ VPSUBSBZrmkz = 19880,
+ VPSUBSBZrr = 19881,
+ VPSUBSBZrrk = 19882,
+ VPSUBSBZrrkz = 19883,
+ VPSUBSBrm = 19884,
+ VPSUBSBrr = 19885,
+ VPSUBSWYrm = 19886,
+ VPSUBSWYrr = 19887,
+ VPSUBSWZ128rm = 19888,
+ VPSUBSWZ128rmk = 19889,
+ VPSUBSWZ128rmkz = 19890,
+ VPSUBSWZ128rr = 19891,
+ VPSUBSWZ128rrk = 19892,
+ VPSUBSWZ128rrkz = 19893,
+ VPSUBSWZ256rm = 19894,
+ VPSUBSWZ256rmk = 19895,
+ VPSUBSWZ256rmkz = 19896,
+ VPSUBSWZ256rr = 19897,
+ VPSUBSWZ256rrk = 19898,
+ VPSUBSWZ256rrkz = 19899,
+ VPSUBSWZrm = 19900,
+ VPSUBSWZrmk = 19901,
+ VPSUBSWZrmkz = 19902,
+ VPSUBSWZrr = 19903,
+ VPSUBSWZrrk = 19904,
+ VPSUBSWZrrkz = 19905,
+ VPSUBSWrm = 19906,
+ VPSUBSWrr = 19907,
+ VPSUBUSBYrm = 19908,
+ VPSUBUSBYrr = 19909,
+ VPSUBUSBZ128rm = 19910,
+ VPSUBUSBZ128rmk = 19911,
+ VPSUBUSBZ128rmkz = 19912,
+ VPSUBUSBZ128rr = 19913,
+ VPSUBUSBZ128rrk = 19914,
+ VPSUBUSBZ128rrkz = 19915,
+ VPSUBUSBZ256rm = 19916,
+ VPSUBUSBZ256rmk = 19917,
+ VPSUBUSBZ256rmkz = 19918,
+ VPSUBUSBZ256rr = 19919,
+ VPSUBUSBZ256rrk = 19920,
+ VPSUBUSBZ256rrkz = 19921,
+ VPSUBUSBZrm = 19922,
+ VPSUBUSBZrmk = 19923,
+ VPSUBUSBZrmkz = 19924,
+ VPSUBUSBZrr = 19925,
+ VPSUBUSBZrrk = 19926,
+ VPSUBUSBZrrkz = 19927,
+ VPSUBUSBrm = 19928,
+ VPSUBUSBrr = 19929,
+ VPSUBUSWYrm = 19930,
+ VPSUBUSWYrr = 19931,
+ VPSUBUSWZ128rm = 19932,
+ VPSUBUSWZ128rmk = 19933,
+ VPSUBUSWZ128rmkz = 19934,
+ VPSUBUSWZ128rr = 19935,
+ VPSUBUSWZ128rrk = 19936,
+ VPSUBUSWZ128rrkz = 19937,
+ VPSUBUSWZ256rm = 19938,
+ VPSUBUSWZ256rmk = 19939,
+ VPSUBUSWZ256rmkz = 19940,
+ VPSUBUSWZ256rr = 19941,
+ VPSUBUSWZ256rrk = 19942,
+ VPSUBUSWZ256rrkz = 19943,
+ VPSUBUSWZrm = 19944,
+ VPSUBUSWZrmk = 19945,
+ VPSUBUSWZrmkz = 19946,
+ VPSUBUSWZrr = 19947,
+ VPSUBUSWZrrk = 19948,
+ VPSUBUSWZrrkz = 19949,
+ VPSUBUSWrm = 19950,
+ VPSUBUSWrr = 19951,
+ VPSUBWYrm = 19952,
+ VPSUBWYrr = 19953,
+ VPSUBWZ128rm = 19954,
+ VPSUBWZ128rmk = 19955,
+ VPSUBWZ128rmkz = 19956,
+ VPSUBWZ128rr = 19957,
+ VPSUBWZ128rrk = 19958,
+ VPSUBWZ128rrkz = 19959,
+ VPSUBWZ256rm = 19960,
+ VPSUBWZ256rmk = 19961,
+ VPSUBWZ256rmkz = 19962,
+ VPSUBWZ256rr = 19963,
+ VPSUBWZ256rrk = 19964,
+ VPSUBWZ256rrkz = 19965,
+ VPSUBWZrm = 19966,
+ VPSUBWZrmk = 19967,
+ VPSUBWZrmkz = 19968,
+ VPSUBWZrr = 19969,
+ VPSUBWZrrk = 19970,
+ VPSUBWZrrkz = 19971,
+ VPSUBWrm = 19972,
+ VPSUBWrr = 19973,
+ VPTERNLOGDZ128rmbi = 19974,
+ VPTERNLOGDZ128rmbik = 19975,
+ VPTERNLOGDZ128rmbikz = 19976,
+ VPTERNLOGDZ128rmi = 19977,
+ VPTERNLOGDZ128rmik = 19978,
+ VPTERNLOGDZ128rmikz = 19979,
+ VPTERNLOGDZ128rri = 19980,
+ VPTERNLOGDZ128rrik = 19981,
+ VPTERNLOGDZ128rrikz = 19982,
+ VPTERNLOGDZ256rmbi = 19983,
+ VPTERNLOGDZ256rmbik = 19984,
+ VPTERNLOGDZ256rmbikz = 19985,
+ VPTERNLOGDZ256rmi = 19986,
+ VPTERNLOGDZ256rmik = 19987,
+ VPTERNLOGDZ256rmikz = 19988,
+ VPTERNLOGDZ256rri = 19989,
+ VPTERNLOGDZ256rrik = 19990,
+ VPTERNLOGDZ256rrikz = 19991,
+ VPTERNLOGDZrmbi = 19992,
+ VPTERNLOGDZrmbik = 19993,
+ VPTERNLOGDZrmbikz = 19994,
+ VPTERNLOGDZrmi = 19995,
+ VPTERNLOGDZrmik = 19996,
+ VPTERNLOGDZrmikz = 19997,
+ VPTERNLOGDZrri = 19998,
+ VPTERNLOGDZrrik = 19999,
+ VPTERNLOGDZrrikz = 20000,
+ VPTERNLOGQZ128rmbi = 20001,
+ VPTERNLOGQZ128rmbik = 20002,
+ VPTERNLOGQZ128rmbikz = 20003,
+ VPTERNLOGQZ128rmi = 20004,
+ VPTERNLOGQZ128rmik = 20005,
+ VPTERNLOGQZ128rmikz = 20006,
+ VPTERNLOGQZ128rri = 20007,
+ VPTERNLOGQZ128rrik = 20008,
+ VPTERNLOGQZ128rrikz = 20009,
+ VPTERNLOGQZ256rmbi = 20010,
+ VPTERNLOGQZ256rmbik = 20011,
+ VPTERNLOGQZ256rmbikz = 20012,
+ VPTERNLOGQZ256rmi = 20013,
+ VPTERNLOGQZ256rmik = 20014,
+ VPTERNLOGQZ256rmikz = 20015,
+ VPTERNLOGQZ256rri = 20016,
+ VPTERNLOGQZ256rrik = 20017,
+ VPTERNLOGQZ256rrikz = 20018,
+ VPTERNLOGQZrmbi = 20019,
+ VPTERNLOGQZrmbik = 20020,
+ VPTERNLOGQZrmbikz = 20021,
+ VPTERNLOGQZrmi = 20022,
+ VPTERNLOGQZrmik = 20023,
+ VPTERNLOGQZrmikz = 20024,
+ VPTERNLOGQZrri = 20025,
+ VPTERNLOGQZrrik = 20026,
+ VPTERNLOGQZrrikz = 20027,
+ VPTESTMBZ128rm = 20028,
+ VPTESTMBZ128rmk = 20029,
+ VPTESTMBZ128rr = 20030,
+ VPTESTMBZ128rrk = 20031,
+ VPTESTMBZ256rm = 20032,
+ VPTESTMBZ256rmk = 20033,
+ VPTESTMBZ256rr = 20034,
+ VPTESTMBZ256rrk = 20035,
+ VPTESTMBZrm = 20036,
+ VPTESTMBZrmk = 20037,
+ VPTESTMBZrr = 20038,
+ VPTESTMBZrrk = 20039,
+ VPTESTMDZ128rm = 20040,
+ VPTESTMDZ128rmb = 20041,
+ VPTESTMDZ128rmbk = 20042,
+ VPTESTMDZ128rmk = 20043,
+ VPTESTMDZ128rr = 20044,
+ VPTESTMDZ128rrk = 20045,
+ VPTESTMDZ256rm = 20046,
+ VPTESTMDZ256rmb = 20047,
+ VPTESTMDZ256rmbk = 20048,
+ VPTESTMDZ256rmk = 20049,
+ VPTESTMDZ256rr = 20050,
+ VPTESTMDZ256rrk = 20051,
+ VPTESTMDZrm = 20052,
+ VPTESTMDZrmb = 20053,
+ VPTESTMDZrmbk = 20054,
+ VPTESTMDZrmk = 20055,
+ VPTESTMDZrr = 20056,
+ VPTESTMDZrrk = 20057,
+ VPTESTMQZ128rm = 20058,
+ VPTESTMQZ128rmb = 20059,
+ VPTESTMQZ128rmbk = 20060,
+ VPTESTMQZ128rmk = 20061,
+ VPTESTMQZ128rr = 20062,
+ VPTESTMQZ128rrk = 20063,
+ VPTESTMQZ256rm = 20064,
+ VPTESTMQZ256rmb = 20065,
+ VPTESTMQZ256rmbk = 20066,
+ VPTESTMQZ256rmk = 20067,
+ VPTESTMQZ256rr = 20068,
+ VPTESTMQZ256rrk = 20069,
+ VPTESTMQZrm = 20070,
+ VPTESTMQZrmb = 20071,
+ VPTESTMQZrmbk = 20072,
+ VPTESTMQZrmk = 20073,
+ VPTESTMQZrr = 20074,
+ VPTESTMQZrrk = 20075,
+ VPTESTMWZ128rm = 20076,
+ VPTESTMWZ128rmk = 20077,
+ VPTESTMWZ128rr = 20078,
+ VPTESTMWZ128rrk = 20079,
+ VPTESTMWZ256rm = 20080,
+ VPTESTMWZ256rmk = 20081,
+ VPTESTMWZ256rr = 20082,
+ VPTESTMWZ256rrk = 20083,
+ VPTESTMWZrm = 20084,
+ VPTESTMWZrmk = 20085,
+ VPTESTMWZrr = 20086,
+ VPTESTMWZrrk = 20087,
+ VPTESTNMBZ128rm = 20088,
+ VPTESTNMBZ128rmk = 20089,
+ VPTESTNMBZ128rr = 20090,
+ VPTESTNMBZ128rrk = 20091,
+ VPTESTNMBZ256rm = 20092,
+ VPTESTNMBZ256rmk = 20093,
+ VPTESTNMBZ256rr = 20094,
+ VPTESTNMBZ256rrk = 20095,
+ VPTESTNMBZrm = 20096,
+ VPTESTNMBZrmk = 20097,
+ VPTESTNMBZrr = 20098,
+ VPTESTNMBZrrk = 20099,
+ VPTESTNMDZ128rm = 20100,
+ VPTESTNMDZ128rmb = 20101,
+ VPTESTNMDZ128rmbk = 20102,
+ VPTESTNMDZ128rmk = 20103,
+ VPTESTNMDZ128rr = 20104,
+ VPTESTNMDZ128rrk = 20105,
+ VPTESTNMDZ256rm = 20106,
+ VPTESTNMDZ256rmb = 20107,
+ VPTESTNMDZ256rmbk = 20108,
+ VPTESTNMDZ256rmk = 20109,
+ VPTESTNMDZ256rr = 20110,
+ VPTESTNMDZ256rrk = 20111,
+ VPTESTNMDZrm = 20112,
+ VPTESTNMDZrmb = 20113,
+ VPTESTNMDZrmbk = 20114,
+ VPTESTNMDZrmk = 20115,
+ VPTESTNMDZrr = 20116,
+ VPTESTNMDZrrk = 20117,
+ VPTESTNMQZ128rm = 20118,
+ VPTESTNMQZ128rmb = 20119,
+ VPTESTNMQZ128rmbk = 20120,
+ VPTESTNMQZ128rmk = 20121,
+ VPTESTNMQZ128rr = 20122,
+ VPTESTNMQZ128rrk = 20123,
+ VPTESTNMQZ256rm = 20124,
+ VPTESTNMQZ256rmb = 20125,
+ VPTESTNMQZ256rmbk = 20126,
+ VPTESTNMQZ256rmk = 20127,
+ VPTESTNMQZ256rr = 20128,
+ VPTESTNMQZ256rrk = 20129,
+ VPTESTNMQZrm = 20130,
+ VPTESTNMQZrmb = 20131,
+ VPTESTNMQZrmbk = 20132,
+ VPTESTNMQZrmk = 20133,
+ VPTESTNMQZrr = 20134,
+ VPTESTNMQZrrk = 20135,
+ VPTESTNMWZ128rm = 20136,
+ VPTESTNMWZ128rmk = 20137,
+ VPTESTNMWZ128rr = 20138,
+ VPTESTNMWZ128rrk = 20139,
+ VPTESTNMWZ256rm = 20140,
+ VPTESTNMWZ256rmk = 20141,
+ VPTESTNMWZ256rr = 20142,
+ VPTESTNMWZ256rrk = 20143,
+ VPTESTNMWZrm = 20144,
+ VPTESTNMWZrmk = 20145,
+ VPTESTNMWZrr = 20146,
+ VPTESTNMWZrrk = 20147,
+ VPTESTYrm = 20148,
+ VPTESTYrr = 20149,
+ VPTESTrm = 20150,
+ VPTESTrr = 20151,
+ VPUNPCKHBWYrm = 20152,
+ VPUNPCKHBWYrr = 20153,
+ VPUNPCKHBWZ128rm = 20154,
+ VPUNPCKHBWZ128rmk = 20155,
+ VPUNPCKHBWZ128rmkz = 20156,
+ VPUNPCKHBWZ128rr = 20157,
+ VPUNPCKHBWZ128rrk = 20158,
+ VPUNPCKHBWZ128rrkz = 20159,
+ VPUNPCKHBWZ256rm = 20160,
+ VPUNPCKHBWZ256rmk = 20161,
+ VPUNPCKHBWZ256rmkz = 20162,
+ VPUNPCKHBWZ256rr = 20163,
+ VPUNPCKHBWZ256rrk = 20164,
+ VPUNPCKHBWZ256rrkz = 20165,
+ VPUNPCKHBWZrm = 20166,
+ VPUNPCKHBWZrmk = 20167,
+ VPUNPCKHBWZrmkz = 20168,
+ VPUNPCKHBWZrr = 20169,
+ VPUNPCKHBWZrrk = 20170,
+ VPUNPCKHBWZrrkz = 20171,
+ VPUNPCKHBWrm = 20172,
+ VPUNPCKHBWrr = 20173,
+ VPUNPCKHDQYrm = 20174,
+ VPUNPCKHDQYrr = 20175,
+ VPUNPCKHDQZ128rm = 20176,
+ VPUNPCKHDQZ128rmb = 20177,
+ VPUNPCKHDQZ128rmbk = 20178,
+ VPUNPCKHDQZ128rmbkz = 20179,
+ VPUNPCKHDQZ128rmk = 20180,
+ VPUNPCKHDQZ128rmkz = 20181,
+ VPUNPCKHDQZ128rr = 20182,
+ VPUNPCKHDQZ128rrk = 20183,
+ VPUNPCKHDQZ128rrkz = 20184,
+ VPUNPCKHDQZ256rm = 20185,
+ VPUNPCKHDQZ256rmb = 20186,
+ VPUNPCKHDQZ256rmbk = 20187,
+ VPUNPCKHDQZ256rmbkz = 20188,
+ VPUNPCKHDQZ256rmk = 20189,
+ VPUNPCKHDQZ256rmkz = 20190,
+ VPUNPCKHDQZ256rr = 20191,
+ VPUNPCKHDQZ256rrk = 20192,
+ VPUNPCKHDQZ256rrkz = 20193,
+ VPUNPCKHDQZrm = 20194,
+ VPUNPCKHDQZrmb = 20195,
+ VPUNPCKHDQZrmbk = 20196,
+ VPUNPCKHDQZrmbkz = 20197,
+ VPUNPCKHDQZrmk = 20198,
+ VPUNPCKHDQZrmkz = 20199,
+ VPUNPCKHDQZrr = 20200,
+ VPUNPCKHDQZrrk = 20201,
+ VPUNPCKHDQZrrkz = 20202,
+ VPUNPCKHDQrm = 20203,
+ VPUNPCKHDQrr = 20204,
+ VPUNPCKHQDQYrm = 20205,
+ VPUNPCKHQDQYrr = 20206,
+ VPUNPCKHQDQZ128rm = 20207,
+ VPUNPCKHQDQZ128rmb = 20208,
+ VPUNPCKHQDQZ128rmbk = 20209,
+ VPUNPCKHQDQZ128rmbkz = 20210,
+ VPUNPCKHQDQZ128rmk = 20211,
+ VPUNPCKHQDQZ128rmkz = 20212,
+ VPUNPCKHQDQZ128rr = 20213,
+ VPUNPCKHQDQZ128rrk = 20214,
+ VPUNPCKHQDQZ128rrkz = 20215,
+ VPUNPCKHQDQZ256rm = 20216,
+ VPUNPCKHQDQZ256rmb = 20217,
+ VPUNPCKHQDQZ256rmbk = 20218,
+ VPUNPCKHQDQZ256rmbkz = 20219,
+ VPUNPCKHQDQZ256rmk = 20220,
+ VPUNPCKHQDQZ256rmkz = 20221,
+ VPUNPCKHQDQZ256rr = 20222,
+ VPUNPCKHQDQZ256rrk = 20223,
+ VPUNPCKHQDQZ256rrkz = 20224,
+ VPUNPCKHQDQZrm = 20225,
+ VPUNPCKHQDQZrmb = 20226,
+ VPUNPCKHQDQZrmbk = 20227,
+ VPUNPCKHQDQZrmbkz = 20228,
+ VPUNPCKHQDQZrmk = 20229,
+ VPUNPCKHQDQZrmkz = 20230,
+ VPUNPCKHQDQZrr = 20231,
+ VPUNPCKHQDQZrrk = 20232,
+ VPUNPCKHQDQZrrkz = 20233,
+ VPUNPCKHQDQrm = 20234,
+ VPUNPCKHQDQrr = 20235,
+ VPUNPCKHWDYrm = 20236,
+ VPUNPCKHWDYrr = 20237,
+ VPUNPCKHWDZ128rm = 20238,
+ VPUNPCKHWDZ128rmk = 20239,
+ VPUNPCKHWDZ128rmkz = 20240,
+ VPUNPCKHWDZ128rr = 20241,
+ VPUNPCKHWDZ128rrk = 20242,
+ VPUNPCKHWDZ128rrkz = 20243,
+ VPUNPCKHWDZ256rm = 20244,
+ VPUNPCKHWDZ256rmk = 20245,
+ VPUNPCKHWDZ256rmkz = 20246,
+ VPUNPCKHWDZ256rr = 20247,
+ VPUNPCKHWDZ256rrk = 20248,
+ VPUNPCKHWDZ256rrkz = 20249,
+ VPUNPCKHWDZrm = 20250,
+ VPUNPCKHWDZrmk = 20251,
+ VPUNPCKHWDZrmkz = 20252,
+ VPUNPCKHWDZrr = 20253,
+ VPUNPCKHWDZrrk = 20254,
+ VPUNPCKHWDZrrkz = 20255,
+ VPUNPCKHWDrm = 20256,
+ VPUNPCKHWDrr = 20257,
+ VPUNPCKLBWYrm = 20258,
+ VPUNPCKLBWYrr = 20259,
+ VPUNPCKLBWZ128rm = 20260,
+ VPUNPCKLBWZ128rmk = 20261,
+ VPUNPCKLBWZ128rmkz = 20262,
+ VPUNPCKLBWZ128rr = 20263,
+ VPUNPCKLBWZ128rrk = 20264,
+ VPUNPCKLBWZ128rrkz = 20265,
+ VPUNPCKLBWZ256rm = 20266,
+ VPUNPCKLBWZ256rmk = 20267,
+ VPUNPCKLBWZ256rmkz = 20268,
+ VPUNPCKLBWZ256rr = 20269,
+ VPUNPCKLBWZ256rrk = 20270,
+ VPUNPCKLBWZ256rrkz = 20271,
+ VPUNPCKLBWZrm = 20272,
+ VPUNPCKLBWZrmk = 20273,
+ VPUNPCKLBWZrmkz = 20274,
+ VPUNPCKLBWZrr = 20275,
+ VPUNPCKLBWZrrk = 20276,
+ VPUNPCKLBWZrrkz = 20277,
+ VPUNPCKLBWrm = 20278,
+ VPUNPCKLBWrr = 20279,
+ VPUNPCKLDQYrm = 20280,
+ VPUNPCKLDQYrr = 20281,
+ VPUNPCKLDQZ128rm = 20282,
+ VPUNPCKLDQZ128rmb = 20283,
+ VPUNPCKLDQZ128rmbk = 20284,
+ VPUNPCKLDQZ128rmbkz = 20285,
+ VPUNPCKLDQZ128rmk = 20286,
+ VPUNPCKLDQZ128rmkz = 20287,
+ VPUNPCKLDQZ128rr = 20288,
+ VPUNPCKLDQZ128rrk = 20289,
+ VPUNPCKLDQZ128rrkz = 20290,
+ VPUNPCKLDQZ256rm = 20291,
+ VPUNPCKLDQZ256rmb = 20292,
+ VPUNPCKLDQZ256rmbk = 20293,
+ VPUNPCKLDQZ256rmbkz = 20294,
+ VPUNPCKLDQZ256rmk = 20295,
+ VPUNPCKLDQZ256rmkz = 20296,
+ VPUNPCKLDQZ256rr = 20297,
+ VPUNPCKLDQZ256rrk = 20298,
+ VPUNPCKLDQZ256rrkz = 20299,
+ VPUNPCKLDQZrm = 20300,
+ VPUNPCKLDQZrmb = 20301,
+ VPUNPCKLDQZrmbk = 20302,
+ VPUNPCKLDQZrmbkz = 20303,
+ VPUNPCKLDQZrmk = 20304,
+ VPUNPCKLDQZrmkz = 20305,
+ VPUNPCKLDQZrr = 20306,
+ VPUNPCKLDQZrrk = 20307,
+ VPUNPCKLDQZrrkz = 20308,
+ VPUNPCKLDQrm = 20309,
+ VPUNPCKLDQrr = 20310,
+ VPUNPCKLQDQYrm = 20311,
+ VPUNPCKLQDQYrr = 20312,
+ VPUNPCKLQDQZ128rm = 20313,
+ VPUNPCKLQDQZ128rmb = 20314,
+ VPUNPCKLQDQZ128rmbk = 20315,
+ VPUNPCKLQDQZ128rmbkz = 20316,
+ VPUNPCKLQDQZ128rmk = 20317,
+ VPUNPCKLQDQZ128rmkz = 20318,
+ VPUNPCKLQDQZ128rr = 20319,
+ VPUNPCKLQDQZ128rrk = 20320,
+ VPUNPCKLQDQZ128rrkz = 20321,
+ VPUNPCKLQDQZ256rm = 20322,
+ VPUNPCKLQDQZ256rmb = 20323,
+ VPUNPCKLQDQZ256rmbk = 20324,
+ VPUNPCKLQDQZ256rmbkz = 20325,
+ VPUNPCKLQDQZ256rmk = 20326,
+ VPUNPCKLQDQZ256rmkz = 20327,
+ VPUNPCKLQDQZ256rr = 20328,
+ VPUNPCKLQDQZ256rrk = 20329,
+ VPUNPCKLQDQZ256rrkz = 20330,
+ VPUNPCKLQDQZrm = 20331,
+ VPUNPCKLQDQZrmb = 20332,
+ VPUNPCKLQDQZrmbk = 20333,
+ VPUNPCKLQDQZrmbkz = 20334,
+ VPUNPCKLQDQZrmk = 20335,
+ VPUNPCKLQDQZrmkz = 20336,
+ VPUNPCKLQDQZrr = 20337,
+ VPUNPCKLQDQZrrk = 20338,
+ VPUNPCKLQDQZrrkz = 20339,
+ VPUNPCKLQDQrm = 20340,
+ VPUNPCKLQDQrr = 20341,
+ VPUNPCKLWDYrm = 20342,
+ VPUNPCKLWDYrr = 20343,
+ VPUNPCKLWDZ128rm = 20344,
+ VPUNPCKLWDZ128rmk = 20345,
+ VPUNPCKLWDZ128rmkz = 20346,
+ VPUNPCKLWDZ128rr = 20347,
+ VPUNPCKLWDZ128rrk = 20348,
+ VPUNPCKLWDZ128rrkz = 20349,
+ VPUNPCKLWDZ256rm = 20350,
+ VPUNPCKLWDZ256rmk = 20351,
+ VPUNPCKLWDZ256rmkz = 20352,
+ VPUNPCKLWDZ256rr = 20353,
+ VPUNPCKLWDZ256rrk = 20354,
+ VPUNPCKLWDZ256rrkz = 20355,
+ VPUNPCKLWDZrm = 20356,
+ VPUNPCKLWDZrmk = 20357,
+ VPUNPCKLWDZrmkz = 20358,
+ VPUNPCKLWDZrr = 20359,
+ VPUNPCKLWDZrrk = 20360,
+ VPUNPCKLWDZrrkz = 20361,
+ VPUNPCKLWDrm = 20362,
+ VPUNPCKLWDrr = 20363,
+ VPXORDZ128rm = 20364,
+ VPXORDZ128rmb = 20365,
+ VPXORDZ128rmbk = 20366,
+ VPXORDZ128rmbkz = 20367,
+ VPXORDZ128rmk = 20368,
+ VPXORDZ128rmkz = 20369,
+ VPXORDZ128rr = 20370,
+ VPXORDZ128rrk = 20371,
+ VPXORDZ128rrkz = 20372,
+ VPXORDZ256rm = 20373,
+ VPXORDZ256rmb = 20374,
+ VPXORDZ256rmbk = 20375,
+ VPXORDZ256rmbkz = 20376,
+ VPXORDZ256rmk = 20377,
+ VPXORDZ256rmkz = 20378,
+ VPXORDZ256rr = 20379,
+ VPXORDZ256rrk = 20380,
+ VPXORDZ256rrkz = 20381,
+ VPXORDZrm = 20382,
+ VPXORDZrmb = 20383,
+ VPXORDZrmbk = 20384,
+ VPXORDZrmbkz = 20385,
+ VPXORDZrmk = 20386,
+ VPXORDZrmkz = 20387,
+ VPXORDZrr = 20388,
+ VPXORDZrrk = 20389,
+ VPXORDZrrkz = 20390,
+ VPXORQZ128rm = 20391,
+ VPXORQZ128rmb = 20392,
+ VPXORQZ128rmbk = 20393,
+ VPXORQZ128rmbkz = 20394,
+ VPXORQZ128rmk = 20395,
+ VPXORQZ128rmkz = 20396,
+ VPXORQZ128rr = 20397,
+ VPXORQZ128rrk = 20398,
+ VPXORQZ128rrkz = 20399,
+ VPXORQZ256rm = 20400,
+ VPXORQZ256rmb = 20401,
+ VPXORQZ256rmbk = 20402,
+ VPXORQZ256rmbkz = 20403,
+ VPXORQZ256rmk = 20404,
+ VPXORQZ256rmkz = 20405,
+ VPXORQZ256rr = 20406,
+ VPXORQZ256rrk = 20407,
+ VPXORQZ256rrkz = 20408,
+ VPXORQZrm = 20409,
+ VPXORQZrmb = 20410,
+ VPXORQZrmbk = 20411,
+ VPXORQZrmbkz = 20412,
+ VPXORQZrmk = 20413,
+ VPXORQZrmkz = 20414,
+ VPXORQZrr = 20415,
+ VPXORQZrrk = 20416,
+ VPXORQZrrkz = 20417,
+ VPXORYrm = 20418,
+ VPXORYrr = 20419,
+ VPXORrm = 20420,
+ VPXORrr = 20421,
+ VRANGEPDZ128rmbi = 20422,
+ VRANGEPDZ128rmbik = 20423,
+ VRANGEPDZ128rmbikz = 20424,
+ VRANGEPDZ128rmi = 20425,
+ VRANGEPDZ128rmik = 20426,
+ VRANGEPDZ128rmikz = 20427,
+ VRANGEPDZ128rri = 20428,
+ VRANGEPDZ128rrik = 20429,
+ VRANGEPDZ128rrikz = 20430,
+ VRANGEPDZ256rmbi = 20431,
+ VRANGEPDZ256rmbik = 20432,
+ VRANGEPDZ256rmbikz = 20433,
+ VRANGEPDZ256rmi = 20434,
+ VRANGEPDZ256rmik = 20435,
+ VRANGEPDZ256rmikz = 20436,
+ VRANGEPDZ256rri = 20437,
+ VRANGEPDZ256rrik = 20438,
+ VRANGEPDZ256rrikz = 20439,
+ VRANGEPDZrmbi = 20440,
+ VRANGEPDZrmbik = 20441,
+ VRANGEPDZrmbikz = 20442,
+ VRANGEPDZrmi = 20443,
+ VRANGEPDZrmik = 20444,
+ VRANGEPDZrmikz = 20445,
+ VRANGEPDZrri = 20446,
+ VRANGEPDZrrib = 20447,
+ VRANGEPDZrribk = 20448,
+ VRANGEPDZrribkz = 20449,
+ VRANGEPDZrrik = 20450,
+ VRANGEPDZrrikz = 20451,
+ VRANGEPSZ128rmbi = 20452,
+ VRANGEPSZ128rmbik = 20453,
+ VRANGEPSZ128rmbikz = 20454,
+ VRANGEPSZ128rmi = 20455,
+ VRANGEPSZ128rmik = 20456,
+ VRANGEPSZ128rmikz = 20457,
+ VRANGEPSZ128rri = 20458,
+ VRANGEPSZ128rrik = 20459,
+ VRANGEPSZ128rrikz = 20460,
+ VRANGEPSZ256rmbi = 20461,
+ VRANGEPSZ256rmbik = 20462,
+ VRANGEPSZ256rmbikz = 20463,
+ VRANGEPSZ256rmi = 20464,
+ VRANGEPSZ256rmik = 20465,
+ VRANGEPSZ256rmikz = 20466,
+ VRANGEPSZ256rri = 20467,
+ VRANGEPSZ256rrik = 20468,
+ VRANGEPSZ256rrikz = 20469,
+ VRANGEPSZrmbi = 20470,
+ VRANGEPSZrmbik = 20471,
+ VRANGEPSZrmbikz = 20472,
+ VRANGEPSZrmi = 20473,
+ VRANGEPSZrmik = 20474,
+ VRANGEPSZrmikz = 20475,
+ VRANGEPSZrri = 20476,
+ VRANGEPSZrrib = 20477,
+ VRANGEPSZrribk = 20478,
+ VRANGEPSZrribkz = 20479,
+ VRANGEPSZrrik = 20480,
+ VRANGEPSZrrikz = 20481,
+ VRANGESDZrmi = 20482,
+ VRANGESDZrmik = 20483,
+ VRANGESDZrmikz = 20484,
+ VRANGESDZrri = 20485,
+ VRANGESDZrrib = 20486,
+ VRANGESDZrribk = 20487,
+ VRANGESDZrribkz = 20488,
+ VRANGESDZrrik = 20489,
+ VRANGESDZrrikz = 20490,
+ VRANGESSZrmi = 20491,
+ VRANGESSZrmik = 20492,
+ VRANGESSZrmikz = 20493,
+ VRANGESSZrri = 20494,
+ VRANGESSZrrib = 20495,
+ VRANGESSZrribk = 20496,
+ VRANGESSZrribkz = 20497,
+ VRANGESSZrrik = 20498,
+ VRANGESSZrrikz = 20499,
+ VRCP14PDZ128m = 20500,
+ VRCP14PDZ128mb = 20501,
+ VRCP14PDZ128mbk = 20502,
+ VRCP14PDZ128mbkz = 20503,
+ VRCP14PDZ128mk = 20504,
+ VRCP14PDZ128mkz = 20505,
+ VRCP14PDZ128r = 20506,
+ VRCP14PDZ128rk = 20507,
+ VRCP14PDZ128rkz = 20508,
+ VRCP14PDZ256m = 20509,
+ VRCP14PDZ256mb = 20510,
+ VRCP14PDZ256mbk = 20511,
+ VRCP14PDZ256mbkz = 20512,
+ VRCP14PDZ256mk = 20513,
+ VRCP14PDZ256mkz = 20514,
+ VRCP14PDZ256r = 20515,
+ VRCP14PDZ256rk = 20516,
+ VRCP14PDZ256rkz = 20517,
+ VRCP14PDZm = 20518,
+ VRCP14PDZmb = 20519,
+ VRCP14PDZmbk = 20520,
+ VRCP14PDZmbkz = 20521,
+ VRCP14PDZmk = 20522,
+ VRCP14PDZmkz = 20523,
+ VRCP14PDZr = 20524,
+ VRCP14PDZrk = 20525,
+ VRCP14PDZrkz = 20526,
+ VRCP14PSZ128m = 20527,
+ VRCP14PSZ128mb = 20528,
+ VRCP14PSZ128mbk = 20529,
+ VRCP14PSZ128mbkz = 20530,
+ VRCP14PSZ128mk = 20531,
+ VRCP14PSZ128mkz = 20532,
+ VRCP14PSZ128r = 20533,
+ VRCP14PSZ128rk = 20534,
+ VRCP14PSZ128rkz = 20535,
+ VRCP14PSZ256m = 20536,
+ VRCP14PSZ256mb = 20537,
+ VRCP14PSZ256mbk = 20538,
+ VRCP14PSZ256mbkz = 20539,
+ VRCP14PSZ256mk = 20540,
+ VRCP14PSZ256mkz = 20541,
+ VRCP14PSZ256r = 20542,
+ VRCP14PSZ256rk = 20543,
+ VRCP14PSZ256rkz = 20544,
+ VRCP14PSZm = 20545,
+ VRCP14PSZmb = 20546,
+ VRCP14PSZmbk = 20547,
+ VRCP14PSZmbkz = 20548,
+ VRCP14PSZmk = 20549,
+ VRCP14PSZmkz = 20550,
+ VRCP14PSZr = 20551,
+ VRCP14PSZrk = 20552,
+ VRCP14PSZrkz = 20553,
+ VRCP14SDZrm = 20554,
+ VRCP14SDZrmk = 20555,
+ VRCP14SDZrmkz = 20556,
+ VRCP14SDZrr = 20557,
+ VRCP14SDZrrk = 20558,
+ VRCP14SDZrrkz = 20559,
+ VRCP14SSZrm = 20560,
+ VRCP14SSZrmk = 20561,
+ VRCP14SSZrmkz = 20562,
+ VRCP14SSZrr = 20563,
+ VRCP14SSZrrk = 20564,
+ VRCP14SSZrrkz = 20565,
+ VRCP28PDZm = 20566,
+ VRCP28PDZmb = 20567,
+ VRCP28PDZmbk = 20568,
+ VRCP28PDZmbkz = 20569,
+ VRCP28PDZmk = 20570,
+ VRCP28PDZmkz = 20571,
+ VRCP28PDZr = 20572,
+ VRCP28PDZrb = 20573,
+ VRCP28PDZrbk = 20574,
+ VRCP28PDZrbkz = 20575,
+ VRCP28PDZrk = 20576,
+ VRCP28PDZrkz = 20577,
+ VRCP28PSZm = 20578,
+ VRCP28PSZmb = 20579,
+ VRCP28PSZmbk = 20580,
+ VRCP28PSZmbkz = 20581,
+ VRCP28PSZmk = 20582,
+ VRCP28PSZmkz = 20583,
+ VRCP28PSZr = 20584,
+ VRCP28PSZrb = 20585,
+ VRCP28PSZrbk = 20586,
+ VRCP28PSZrbkz = 20587,
+ VRCP28PSZrk = 20588,
+ VRCP28PSZrkz = 20589,
+ VRCP28SDZm = 20590,
+ VRCP28SDZmk = 20591,
+ VRCP28SDZmkz = 20592,
+ VRCP28SDZr = 20593,
+ VRCP28SDZrb = 20594,
+ VRCP28SDZrbk = 20595,
+ VRCP28SDZrbkz = 20596,
+ VRCP28SDZrk = 20597,
+ VRCP28SDZrkz = 20598,
+ VRCP28SSZm = 20599,
+ VRCP28SSZmk = 20600,
+ VRCP28SSZmkz = 20601,
+ VRCP28SSZr = 20602,
+ VRCP28SSZrb = 20603,
+ VRCP28SSZrbk = 20604,
+ VRCP28SSZrbkz = 20605,
+ VRCP28SSZrk = 20606,
+ VRCP28SSZrkz = 20607,
+ VRCPBF16Z128m = 20608,
+ VRCPBF16Z128mb = 20609,
+ VRCPBF16Z128mbk = 20610,
+ VRCPBF16Z128mbkz = 20611,
+ VRCPBF16Z128mk = 20612,
+ VRCPBF16Z128mkz = 20613,
+ VRCPBF16Z128r = 20614,
+ VRCPBF16Z128rk = 20615,
+ VRCPBF16Z128rkz = 20616,
+ VRCPBF16Z256m = 20617,
+ VRCPBF16Z256mb = 20618,
+ VRCPBF16Z256mbk = 20619,
+ VRCPBF16Z256mbkz = 20620,
+ VRCPBF16Z256mk = 20621,
+ VRCPBF16Z256mkz = 20622,
+ VRCPBF16Z256r = 20623,
+ VRCPBF16Z256rk = 20624,
+ VRCPBF16Z256rkz = 20625,
+ VRCPBF16Zm = 20626,
+ VRCPBF16Zmb = 20627,
+ VRCPBF16Zmbk = 20628,
+ VRCPBF16Zmbkz = 20629,
+ VRCPBF16Zmk = 20630,
+ VRCPBF16Zmkz = 20631,
+ VRCPBF16Zr = 20632,
+ VRCPBF16Zrk = 20633,
+ VRCPBF16Zrkz = 20634,
+ VRCPPHZ128m = 20635,
+ VRCPPHZ128mb = 20636,
+ VRCPPHZ128mbk = 20637,
+ VRCPPHZ128mbkz = 20638,
+ VRCPPHZ128mk = 20639,
+ VRCPPHZ128mkz = 20640,
+ VRCPPHZ128r = 20641,
+ VRCPPHZ128rk = 20642,
+ VRCPPHZ128rkz = 20643,
+ VRCPPHZ256m = 20644,
+ VRCPPHZ256mb = 20645,
+ VRCPPHZ256mbk = 20646,
+ VRCPPHZ256mbkz = 20647,
+ VRCPPHZ256mk = 20648,
+ VRCPPHZ256mkz = 20649,
+ VRCPPHZ256r = 20650,
+ VRCPPHZ256rk = 20651,
+ VRCPPHZ256rkz = 20652,
+ VRCPPHZm = 20653,
+ VRCPPHZmb = 20654,
+ VRCPPHZmbk = 20655,
+ VRCPPHZmbkz = 20656,
+ VRCPPHZmk = 20657,
+ VRCPPHZmkz = 20658,
+ VRCPPHZr = 20659,
+ VRCPPHZrk = 20660,
+ VRCPPHZrkz = 20661,
+ VRCPPSYm = 20662,
+ VRCPPSYr = 20663,
+ VRCPPSm = 20664,
+ VRCPPSr = 20665,
+ VRCPSHZrm = 20666,
+ VRCPSHZrmk = 20667,
+ VRCPSHZrmkz = 20668,
+ VRCPSHZrr = 20669,
+ VRCPSHZrrk = 20670,
+ VRCPSHZrrkz = 20671,
+ VRCPSSm = 20672,
+ VRCPSSm_Int = 20673,
+ VRCPSSr = 20674,
+ VRCPSSr_Int = 20675,
+ VREDUCEBF16Z128rmbi = 20676,
+ VREDUCEBF16Z128rmbik = 20677,
+ VREDUCEBF16Z128rmbikz = 20678,
+ VREDUCEBF16Z128rmi = 20679,
+ VREDUCEBF16Z128rmik = 20680,
+ VREDUCEBF16Z128rmikz = 20681,
+ VREDUCEBF16Z128rri = 20682,
+ VREDUCEBF16Z128rrik = 20683,
+ VREDUCEBF16Z128rrikz = 20684,
+ VREDUCEBF16Z256rmbi = 20685,
+ VREDUCEBF16Z256rmbik = 20686,
+ VREDUCEBF16Z256rmbikz = 20687,
+ VREDUCEBF16Z256rmi = 20688,
+ VREDUCEBF16Z256rmik = 20689,
+ VREDUCEBF16Z256rmikz = 20690,
+ VREDUCEBF16Z256rri = 20691,
+ VREDUCEBF16Z256rrik = 20692,
+ VREDUCEBF16Z256rrikz = 20693,
+ VREDUCEBF16Zrmbi = 20694,
+ VREDUCEBF16Zrmbik = 20695,
+ VREDUCEBF16Zrmbikz = 20696,
+ VREDUCEBF16Zrmi = 20697,
+ VREDUCEBF16Zrmik = 20698,
+ VREDUCEBF16Zrmikz = 20699,
+ VREDUCEBF16Zrri = 20700,
+ VREDUCEBF16Zrrik = 20701,
+ VREDUCEBF16Zrrikz = 20702,
+ VREDUCEPDZ128rmbi = 20703,
+ VREDUCEPDZ128rmbik = 20704,
+ VREDUCEPDZ128rmbikz = 20705,
+ VREDUCEPDZ128rmi = 20706,
+ VREDUCEPDZ128rmik = 20707,
+ VREDUCEPDZ128rmikz = 20708,
+ VREDUCEPDZ128rri = 20709,
+ VREDUCEPDZ128rrik = 20710,
+ VREDUCEPDZ128rrikz = 20711,
+ VREDUCEPDZ256rmbi = 20712,
+ VREDUCEPDZ256rmbik = 20713,
+ VREDUCEPDZ256rmbikz = 20714,
+ VREDUCEPDZ256rmi = 20715,
+ VREDUCEPDZ256rmik = 20716,
+ VREDUCEPDZ256rmikz = 20717,
+ VREDUCEPDZ256rri = 20718,
+ VREDUCEPDZ256rrik = 20719,
+ VREDUCEPDZ256rrikz = 20720,
+ VREDUCEPDZrmbi = 20721,
+ VREDUCEPDZrmbik = 20722,
+ VREDUCEPDZrmbikz = 20723,
+ VREDUCEPDZrmi = 20724,
+ VREDUCEPDZrmik = 20725,
+ VREDUCEPDZrmikz = 20726,
+ VREDUCEPDZrri = 20727,
+ VREDUCEPDZrrib = 20728,
+ VREDUCEPDZrribk = 20729,
+ VREDUCEPDZrribkz = 20730,
+ VREDUCEPDZrrik = 20731,
+ VREDUCEPDZrrikz = 20732,
+ VREDUCEPHZ128rmbi = 20733,
+ VREDUCEPHZ128rmbik = 20734,
+ VREDUCEPHZ128rmbikz = 20735,
+ VREDUCEPHZ128rmi = 20736,
+ VREDUCEPHZ128rmik = 20737,
+ VREDUCEPHZ128rmikz = 20738,
+ VREDUCEPHZ128rri = 20739,
+ VREDUCEPHZ128rrik = 20740,
+ VREDUCEPHZ128rrikz = 20741,
+ VREDUCEPHZ256rmbi = 20742,
+ VREDUCEPHZ256rmbik = 20743,
+ VREDUCEPHZ256rmbikz = 20744,
+ VREDUCEPHZ256rmi = 20745,
+ VREDUCEPHZ256rmik = 20746,
+ VREDUCEPHZ256rmikz = 20747,
+ VREDUCEPHZ256rri = 20748,
+ VREDUCEPHZ256rrik = 20749,
+ VREDUCEPHZ256rrikz = 20750,
+ VREDUCEPHZrmbi = 20751,
+ VREDUCEPHZrmbik = 20752,
+ VREDUCEPHZrmbikz = 20753,
+ VREDUCEPHZrmi = 20754,
+ VREDUCEPHZrmik = 20755,
+ VREDUCEPHZrmikz = 20756,
+ VREDUCEPHZrri = 20757,
+ VREDUCEPHZrrib = 20758,
+ VREDUCEPHZrribk = 20759,
+ VREDUCEPHZrribkz = 20760,
+ VREDUCEPHZrrik = 20761,
+ VREDUCEPHZrrikz = 20762,
+ VREDUCEPSZ128rmbi = 20763,
+ VREDUCEPSZ128rmbik = 20764,
+ VREDUCEPSZ128rmbikz = 20765,
+ VREDUCEPSZ128rmi = 20766,
+ VREDUCEPSZ128rmik = 20767,
+ VREDUCEPSZ128rmikz = 20768,
+ VREDUCEPSZ128rri = 20769,
+ VREDUCEPSZ128rrik = 20770,
+ VREDUCEPSZ128rrikz = 20771,
+ VREDUCEPSZ256rmbi = 20772,
+ VREDUCEPSZ256rmbik = 20773,
+ VREDUCEPSZ256rmbikz = 20774,
+ VREDUCEPSZ256rmi = 20775,
+ VREDUCEPSZ256rmik = 20776,
+ VREDUCEPSZ256rmikz = 20777,
+ VREDUCEPSZ256rri = 20778,
+ VREDUCEPSZ256rrik = 20779,
+ VREDUCEPSZ256rrikz = 20780,
+ VREDUCEPSZrmbi = 20781,
+ VREDUCEPSZrmbik = 20782,
+ VREDUCEPSZrmbikz = 20783,
+ VREDUCEPSZrmi = 20784,
+ VREDUCEPSZrmik = 20785,
+ VREDUCEPSZrmikz = 20786,
+ VREDUCEPSZrri = 20787,
+ VREDUCEPSZrrib = 20788,
+ VREDUCEPSZrribk = 20789,
+ VREDUCEPSZrribkz = 20790,
+ VREDUCEPSZrrik = 20791,
+ VREDUCEPSZrrikz = 20792,
+ VREDUCESDZrmi = 20793,
+ VREDUCESDZrmik = 20794,
+ VREDUCESDZrmikz = 20795,
+ VREDUCESDZrri = 20796,
+ VREDUCESDZrrib = 20797,
+ VREDUCESDZrribk = 20798,
+ VREDUCESDZrribkz = 20799,
+ VREDUCESDZrrik = 20800,
+ VREDUCESDZrrikz = 20801,
+ VREDUCESHZrmi = 20802,
+ VREDUCESHZrmik = 20803,
+ VREDUCESHZrmikz = 20804,
+ VREDUCESHZrri = 20805,
+ VREDUCESHZrrib = 20806,
+ VREDUCESHZrribk = 20807,
+ VREDUCESHZrribkz = 20808,
+ VREDUCESHZrrik = 20809,
+ VREDUCESHZrrikz = 20810,
+ VREDUCESSZrmi = 20811,
+ VREDUCESSZrmik = 20812,
+ VREDUCESSZrmikz = 20813,
+ VREDUCESSZrri = 20814,
+ VREDUCESSZrrib = 20815,
+ VREDUCESSZrribk = 20816,
+ VREDUCESSZrribkz = 20817,
+ VREDUCESSZrrik = 20818,
+ VREDUCESSZrrikz = 20819,
+ VRNDSCALEBF16Z128rmbi = 20820,
+ VRNDSCALEBF16Z128rmbik = 20821,
+ VRNDSCALEBF16Z128rmbikz = 20822,
+ VRNDSCALEBF16Z128rmi = 20823,
+ VRNDSCALEBF16Z128rmik = 20824,
+ VRNDSCALEBF16Z128rmikz = 20825,
+ VRNDSCALEBF16Z128rri = 20826,
+ VRNDSCALEBF16Z128rrik = 20827,
+ VRNDSCALEBF16Z128rrikz = 20828,
+ VRNDSCALEBF16Z256rmbi = 20829,
+ VRNDSCALEBF16Z256rmbik = 20830,
+ VRNDSCALEBF16Z256rmbikz = 20831,
+ VRNDSCALEBF16Z256rmi = 20832,
+ VRNDSCALEBF16Z256rmik = 20833,
+ VRNDSCALEBF16Z256rmikz = 20834,
+ VRNDSCALEBF16Z256rri = 20835,
+ VRNDSCALEBF16Z256rrik = 20836,
+ VRNDSCALEBF16Z256rrikz = 20837,
+ VRNDSCALEBF16Zrmbi = 20838,
+ VRNDSCALEBF16Zrmbik = 20839,
+ VRNDSCALEBF16Zrmbikz = 20840,
+ VRNDSCALEBF16Zrmi = 20841,
+ VRNDSCALEBF16Zrmik = 20842,
+ VRNDSCALEBF16Zrmikz = 20843,
+ VRNDSCALEBF16Zrri = 20844,
+ VRNDSCALEBF16Zrrik = 20845,
+ VRNDSCALEBF16Zrrikz = 20846,
+ VRNDSCALEPDZ128rmbi = 20847,
+ VRNDSCALEPDZ128rmbik = 20848,
+ VRNDSCALEPDZ128rmbikz = 20849,
+ VRNDSCALEPDZ128rmi = 20850,
+ VRNDSCALEPDZ128rmik = 20851,
+ VRNDSCALEPDZ128rmikz = 20852,
+ VRNDSCALEPDZ128rri = 20853,
+ VRNDSCALEPDZ128rrik = 20854,
+ VRNDSCALEPDZ128rrikz = 20855,
+ VRNDSCALEPDZ256rmbi = 20856,
+ VRNDSCALEPDZ256rmbik = 20857,
+ VRNDSCALEPDZ256rmbikz = 20858,
+ VRNDSCALEPDZ256rmi = 20859,
+ VRNDSCALEPDZ256rmik = 20860,
+ VRNDSCALEPDZ256rmikz = 20861,
+ VRNDSCALEPDZ256rri = 20862,
+ VRNDSCALEPDZ256rrik = 20863,
+ VRNDSCALEPDZ256rrikz = 20864,
+ VRNDSCALEPDZrmbi = 20865,
+ VRNDSCALEPDZrmbik = 20866,
+ VRNDSCALEPDZrmbikz = 20867,
+ VRNDSCALEPDZrmi = 20868,
+ VRNDSCALEPDZrmik = 20869,
+ VRNDSCALEPDZrmikz = 20870,
+ VRNDSCALEPDZrri = 20871,
+ VRNDSCALEPDZrrib = 20872,
+ VRNDSCALEPDZrribk = 20873,
+ VRNDSCALEPDZrribkz = 20874,
+ VRNDSCALEPDZrrik = 20875,
+ VRNDSCALEPDZrrikz = 20876,
+ VRNDSCALEPHZ128rmbi = 20877,
+ VRNDSCALEPHZ128rmbik = 20878,
+ VRNDSCALEPHZ128rmbikz = 20879,
+ VRNDSCALEPHZ128rmi = 20880,
+ VRNDSCALEPHZ128rmik = 20881,
+ VRNDSCALEPHZ128rmikz = 20882,
+ VRNDSCALEPHZ128rri = 20883,
+ VRNDSCALEPHZ128rrik = 20884,
+ VRNDSCALEPHZ128rrikz = 20885,
+ VRNDSCALEPHZ256rmbi = 20886,
+ VRNDSCALEPHZ256rmbik = 20887,
+ VRNDSCALEPHZ256rmbikz = 20888,
+ VRNDSCALEPHZ256rmi = 20889,
+ VRNDSCALEPHZ256rmik = 20890,
+ VRNDSCALEPHZ256rmikz = 20891,
+ VRNDSCALEPHZ256rri = 20892,
+ VRNDSCALEPHZ256rrik = 20893,
+ VRNDSCALEPHZ256rrikz = 20894,
+ VRNDSCALEPHZrmbi = 20895,
+ VRNDSCALEPHZrmbik = 20896,
+ VRNDSCALEPHZrmbikz = 20897,
+ VRNDSCALEPHZrmi = 20898,
+ VRNDSCALEPHZrmik = 20899,
+ VRNDSCALEPHZrmikz = 20900,
+ VRNDSCALEPHZrri = 20901,
+ VRNDSCALEPHZrrib = 20902,
+ VRNDSCALEPHZrribk = 20903,
+ VRNDSCALEPHZrribkz = 20904,
+ VRNDSCALEPHZrrik = 20905,
+ VRNDSCALEPHZrrikz = 20906,
+ VRNDSCALEPSZ128rmbi = 20907,
+ VRNDSCALEPSZ128rmbik = 20908,
+ VRNDSCALEPSZ128rmbikz = 20909,
+ VRNDSCALEPSZ128rmi = 20910,
+ VRNDSCALEPSZ128rmik = 20911,
+ VRNDSCALEPSZ128rmikz = 20912,
+ VRNDSCALEPSZ128rri = 20913,
+ VRNDSCALEPSZ128rrik = 20914,
+ VRNDSCALEPSZ128rrikz = 20915,
+ VRNDSCALEPSZ256rmbi = 20916,
+ VRNDSCALEPSZ256rmbik = 20917,
+ VRNDSCALEPSZ256rmbikz = 20918,
+ VRNDSCALEPSZ256rmi = 20919,
+ VRNDSCALEPSZ256rmik = 20920,
+ VRNDSCALEPSZ256rmikz = 20921,
+ VRNDSCALEPSZ256rri = 20922,
+ VRNDSCALEPSZ256rrik = 20923,
+ VRNDSCALEPSZ256rrikz = 20924,
+ VRNDSCALEPSZrmbi = 20925,
+ VRNDSCALEPSZrmbik = 20926,
+ VRNDSCALEPSZrmbikz = 20927,
+ VRNDSCALEPSZrmi = 20928,
+ VRNDSCALEPSZrmik = 20929,
+ VRNDSCALEPSZrmikz = 20930,
+ VRNDSCALEPSZrri = 20931,
+ VRNDSCALEPSZrrib = 20932,
+ VRNDSCALEPSZrribk = 20933,
+ VRNDSCALEPSZrribkz = 20934,
+ VRNDSCALEPSZrrik = 20935,
+ VRNDSCALEPSZrrikz = 20936,
+ VRNDSCALESDZrmi = 20937,
+ VRNDSCALESDZrmi_Int = 20938,
+ VRNDSCALESDZrmik_Int = 20939,
+ VRNDSCALESDZrmikz_Int = 20940,
+ VRNDSCALESDZrri = 20941,
+ VRNDSCALESDZrri_Int = 20942,
+ VRNDSCALESDZrrib_Int = 20943,
+ VRNDSCALESDZrribk_Int = 20944,
+ VRNDSCALESDZrribkz_Int = 20945,
+ VRNDSCALESDZrrik_Int = 20946,
+ VRNDSCALESDZrrikz_Int = 20947,
+ VRNDSCALESHZrmi = 20948,
+ VRNDSCALESHZrmi_Int = 20949,
+ VRNDSCALESHZrmik_Int = 20950,
+ VRNDSCALESHZrmikz_Int = 20951,
+ VRNDSCALESHZrri = 20952,
+ VRNDSCALESHZrri_Int = 20953,
+ VRNDSCALESHZrrib_Int = 20954,
+ VRNDSCALESHZrribk_Int = 20955,
+ VRNDSCALESHZrribkz_Int = 20956,
+ VRNDSCALESHZrrik_Int = 20957,
+ VRNDSCALESHZrrikz_Int = 20958,
+ VRNDSCALESSZrmi = 20959,
+ VRNDSCALESSZrmi_Int = 20960,
+ VRNDSCALESSZrmik_Int = 20961,
+ VRNDSCALESSZrmikz_Int = 20962,
+ VRNDSCALESSZrri = 20963,
+ VRNDSCALESSZrri_Int = 20964,
+ VRNDSCALESSZrrib_Int = 20965,
+ VRNDSCALESSZrribk_Int = 20966,
+ VRNDSCALESSZrribkz_Int = 20967,
+ VRNDSCALESSZrrik_Int = 20968,
+ VRNDSCALESSZrrikz_Int = 20969,
+ VROUNDPDYmi = 20970,
+ VROUNDPDYri = 20971,
+ VROUNDPDmi = 20972,
+ VROUNDPDri = 20973,
+ VROUNDPSYmi = 20974,
+ VROUNDPSYri = 20975,
+ VROUNDPSmi = 20976,
+ VROUNDPSri = 20977,
+ VROUNDSDmi = 20978,
+ VROUNDSDmi_Int = 20979,
+ VROUNDSDri = 20980,
+ VROUNDSDri_Int = 20981,
+ VROUNDSSmi = 20982,
+ VROUNDSSmi_Int = 20983,
+ VROUNDSSri = 20984,
+ VROUNDSSri_Int = 20985,
+ VRSQRT14PDZ128m = 20986,
+ VRSQRT14PDZ128mb = 20987,
+ VRSQRT14PDZ128mbk = 20988,
+ VRSQRT14PDZ128mbkz = 20989,
+ VRSQRT14PDZ128mk = 20990,
+ VRSQRT14PDZ128mkz = 20991,
+ VRSQRT14PDZ128r = 20992,
+ VRSQRT14PDZ128rk = 20993,
+ VRSQRT14PDZ128rkz = 20994,
+ VRSQRT14PDZ256m = 20995,
+ VRSQRT14PDZ256mb = 20996,
+ VRSQRT14PDZ256mbk = 20997,
+ VRSQRT14PDZ256mbkz = 20998,
+ VRSQRT14PDZ256mk = 20999,
+ VRSQRT14PDZ256mkz = 21000,
+ VRSQRT14PDZ256r = 21001,
+ VRSQRT14PDZ256rk = 21002,
+ VRSQRT14PDZ256rkz = 21003,
+ VRSQRT14PDZm = 21004,
+ VRSQRT14PDZmb = 21005,
+ VRSQRT14PDZmbk = 21006,
+ VRSQRT14PDZmbkz = 21007,
+ VRSQRT14PDZmk = 21008,
+ VRSQRT14PDZmkz = 21009,
+ VRSQRT14PDZr = 21010,
+ VRSQRT14PDZrk = 21011,
+ VRSQRT14PDZrkz = 21012,
+ VRSQRT14PSZ128m = 21013,
+ VRSQRT14PSZ128mb = 21014,
+ VRSQRT14PSZ128mbk = 21015,
+ VRSQRT14PSZ128mbkz = 21016,
+ VRSQRT14PSZ128mk = 21017,
+ VRSQRT14PSZ128mkz = 21018,
+ VRSQRT14PSZ128r = 21019,
+ VRSQRT14PSZ128rk = 21020,
+ VRSQRT14PSZ128rkz = 21021,
+ VRSQRT14PSZ256m = 21022,
+ VRSQRT14PSZ256mb = 21023,
+ VRSQRT14PSZ256mbk = 21024,
+ VRSQRT14PSZ256mbkz = 21025,
+ VRSQRT14PSZ256mk = 21026,
+ VRSQRT14PSZ256mkz = 21027,
+ VRSQRT14PSZ256r = 21028,
+ VRSQRT14PSZ256rk = 21029,
+ VRSQRT14PSZ256rkz = 21030,
+ VRSQRT14PSZm = 21031,
+ VRSQRT14PSZmb = 21032,
+ VRSQRT14PSZmbk = 21033,
+ VRSQRT14PSZmbkz = 21034,
+ VRSQRT14PSZmk = 21035,
+ VRSQRT14PSZmkz = 21036,
+ VRSQRT14PSZr = 21037,
+ VRSQRT14PSZrk = 21038,
+ VRSQRT14PSZrkz = 21039,
+ VRSQRT14SDZrm = 21040,
+ VRSQRT14SDZrmk = 21041,
+ VRSQRT14SDZrmkz = 21042,
+ VRSQRT14SDZrr = 21043,
+ VRSQRT14SDZrrk = 21044,
+ VRSQRT14SDZrrkz = 21045,
+ VRSQRT14SSZrm = 21046,
+ VRSQRT14SSZrmk = 21047,
+ VRSQRT14SSZrmkz = 21048,
+ VRSQRT14SSZrr = 21049,
+ VRSQRT14SSZrrk = 21050,
+ VRSQRT14SSZrrkz = 21051,
+ VRSQRT28PDZm = 21052,
+ VRSQRT28PDZmb = 21053,
+ VRSQRT28PDZmbk = 21054,
+ VRSQRT28PDZmbkz = 21055,
+ VRSQRT28PDZmk = 21056,
+ VRSQRT28PDZmkz = 21057,
+ VRSQRT28PDZr = 21058,
+ VRSQRT28PDZrb = 21059,
+ VRSQRT28PDZrbk = 21060,
+ VRSQRT28PDZrbkz = 21061,
+ VRSQRT28PDZrk = 21062,
+ VRSQRT28PDZrkz = 21063,
+ VRSQRT28PSZm = 21064,
+ VRSQRT28PSZmb = 21065,
+ VRSQRT28PSZmbk = 21066,
+ VRSQRT28PSZmbkz = 21067,
+ VRSQRT28PSZmk = 21068,
+ VRSQRT28PSZmkz = 21069,
+ VRSQRT28PSZr = 21070,
+ VRSQRT28PSZrb = 21071,
+ VRSQRT28PSZrbk = 21072,
+ VRSQRT28PSZrbkz = 21073,
+ VRSQRT28PSZrk = 21074,
+ VRSQRT28PSZrkz = 21075,
+ VRSQRT28SDZm = 21076,
+ VRSQRT28SDZmk = 21077,
+ VRSQRT28SDZmkz = 21078,
+ VRSQRT28SDZr = 21079,
+ VRSQRT28SDZrb = 21080,
+ VRSQRT28SDZrbk = 21081,
+ VRSQRT28SDZrbkz = 21082,
+ VRSQRT28SDZrk = 21083,
+ VRSQRT28SDZrkz = 21084,
+ VRSQRT28SSZm = 21085,
+ VRSQRT28SSZmk = 21086,
+ VRSQRT28SSZmkz = 21087,
+ VRSQRT28SSZr = 21088,
+ VRSQRT28SSZrb = 21089,
+ VRSQRT28SSZrbk = 21090,
+ VRSQRT28SSZrbkz = 21091,
+ VRSQRT28SSZrk = 21092,
+ VRSQRT28SSZrkz = 21093,
+ VRSQRTBF16Z128m = 21094,
+ VRSQRTBF16Z128mb = 21095,
+ VRSQRTBF16Z128mbk = 21096,
+ VRSQRTBF16Z128mbkz = 21097,
+ VRSQRTBF16Z128mk = 21098,
+ VRSQRTBF16Z128mkz = 21099,
+ VRSQRTBF16Z128r = 21100,
+ VRSQRTBF16Z128rk = 21101,
+ VRSQRTBF16Z128rkz = 21102,
+ VRSQRTBF16Z256m = 21103,
+ VRSQRTBF16Z256mb = 21104,
+ VRSQRTBF16Z256mbk = 21105,
+ VRSQRTBF16Z256mbkz = 21106,
+ VRSQRTBF16Z256mk = 21107,
+ VRSQRTBF16Z256mkz = 21108,
+ VRSQRTBF16Z256r = 21109,
+ VRSQRTBF16Z256rk = 21110,
+ VRSQRTBF16Z256rkz = 21111,
+ VRSQRTBF16Zm = 21112,
+ VRSQRTBF16Zmb = 21113,
+ VRSQRTBF16Zmbk = 21114,
+ VRSQRTBF16Zmbkz = 21115,
+ VRSQRTBF16Zmk = 21116,
+ VRSQRTBF16Zmkz = 21117,
+ VRSQRTBF16Zr = 21118,
+ VRSQRTBF16Zrk = 21119,
+ VRSQRTBF16Zrkz = 21120,
+ VRSQRTPHZ128m = 21121,
+ VRSQRTPHZ128mb = 21122,
+ VRSQRTPHZ128mbk = 21123,
+ VRSQRTPHZ128mbkz = 21124,
+ VRSQRTPHZ128mk = 21125,
+ VRSQRTPHZ128mkz = 21126,
+ VRSQRTPHZ128r = 21127,
+ VRSQRTPHZ128rk = 21128,
+ VRSQRTPHZ128rkz = 21129,
+ VRSQRTPHZ256m = 21130,
+ VRSQRTPHZ256mb = 21131,
+ VRSQRTPHZ256mbk = 21132,
+ VRSQRTPHZ256mbkz = 21133,
+ VRSQRTPHZ256mk = 21134,
+ VRSQRTPHZ256mkz = 21135,
+ VRSQRTPHZ256r = 21136,
+ VRSQRTPHZ256rk = 21137,
+ VRSQRTPHZ256rkz = 21138,
+ VRSQRTPHZm = 21139,
+ VRSQRTPHZmb = 21140,
+ VRSQRTPHZmbk = 21141,
+ VRSQRTPHZmbkz = 21142,
+ VRSQRTPHZmk = 21143,
+ VRSQRTPHZmkz = 21144,
+ VRSQRTPHZr = 21145,
+ VRSQRTPHZrk = 21146,
+ VRSQRTPHZrkz = 21147,
+ VRSQRTPSYm = 21148,
+ VRSQRTPSYr = 21149,
+ VRSQRTPSm = 21150,
+ VRSQRTPSr = 21151,
+ VRSQRTSHZrm = 21152,
+ VRSQRTSHZrmk = 21153,
+ VRSQRTSHZrmkz = 21154,
+ VRSQRTSHZrr = 21155,
+ VRSQRTSHZrrk = 21156,
+ VRSQRTSHZrrkz = 21157,
+ VRSQRTSSm = 21158,
+ VRSQRTSSm_Int = 21159,
+ VRSQRTSSr = 21160,
+ VRSQRTSSr_Int = 21161,
+ VSCALEFBF16Z128rm = 21162,
+ VSCALEFBF16Z128rmb = 21163,
+ VSCALEFBF16Z128rmbk = 21164,
+ VSCALEFBF16Z128rmbkz = 21165,
+ VSCALEFBF16Z128rmk = 21166,
+ VSCALEFBF16Z128rmkz = 21167,
+ VSCALEFBF16Z128rr = 21168,
+ VSCALEFBF16Z128rrk = 21169,
+ VSCALEFBF16Z128rrkz = 21170,
+ VSCALEFBF16Z256rm = 21171,
+ VSCALEFBF16Z256rmb = 21172,
+ VSCALEFBF16Z256rmbk = 21173,
+ VSCALEFBF16Z256rmbkz = 21174,
+ VSCALEFBF16Z256rmk = 21175,
+ VSCALEFBF16Z256rmkz = 21176,
+ VSCALEFBF16Z256rr = 21177,
+ VSCALEFBF16Z256rrk = 21178,
+ VSCALEFBF16Z256rrkz = 21179,
+ VSCALEFBF16Zrm = 21180,
+ VSCALEFBF16Zrmb = 21181,
+ VSCALEFBF16Zrmbk = 21182,
+ VSCALEFBF16Zrmbkz = 21183,
+ VSCALEFBF16Zrmk = 21184,
+ VSCALEFBF16Zrmkz = 21185,
+ VSCALEFBF16Zrr = 21186,
+ VSCALEFBF16Zrrk = 21187,
+ VSCALEFBF16Zrrkz = 21188,
+ VSCALEFPDZ128rm = 21189,
+ VSCALEFPDZ128rmb = 21190,
+ VSCALEFPDZ128rmbk = 21191,
+ VSCALEFPDZ128rmbkz = 21192,
+ VSCALEFPDZ128rmk = 21193,
+ VSCALEFPDZ128rmkz = 21194,
+ VSCALEFPDZ128rr = 21195,
+ VSCALEFPDZ128rrk = 21196,
+ VSCALEFPDZ128rrkz = 21197,
+ VSCALEFPDZ256rm = 21198,
+ VSCALEFPDZ256rmb = 21199,
+ VSCALEFPDZ256rmbk = 21200,
+ VSCALEFPDZ256rmbkz = 21201,
+ VSCALEFPDZ256rmk = 21202,
+ VSCALEFPDZ256rmkz = 21203,
+ VSCALEFPDZ256rr = 21204,
+ VSCALEFPDZ256rrk = 21205,
+ VSCALEFPDZ256rrkz = 21206,
+ VSCALEFPDZrm = 21207,
+ VSCALEFPDZrmb = 21208,
+ VSCALEFPDZrmbk = 21209,
+ VSCALEFPDZrmbkz = 21210,
+ VSCALEFPDZrmk = 21211,
+ VSCALEFPDZrmkz = 21212,
+ VSCALEFPDZrr = 21213,
+ VSCALEFPDZrrb = 21214,
+ VSCALEFPDZrrbk = 21215,
+ VSCALEFPDZrrbkz = 21216,
+ VSCALEFPDZrrk = 21217,
+ VSCALEFPDZrrkz = 21218,
+ VSCALEFPHZ128rm = 21219,
+ VSCALEFPHZ128rmb = 21220,
+ VSCALEFPHZ128rmbk = 21221,
+ VSCALEFPHZ128rmbkz = 21222,
+ VSCALEFPHZ128rmk = 21223,
+ VSCALEFPHZ128rmkz = 21224,
+ VSCALEFPHZ128rr = 21225,
+ VSCALEFPHZ128rrk = 21226,
+ VSCALEFPHZ128rrkz = 21227,
+ VSCALEFPHZ256rm = 21228,
+ VSCALEFPHZ256rmb = 21229,
+ VSCALEFPHZ256rmbk = 21230,
+ VSCALEFPHZ256rmbkz = 21231,
+ VSCALEFPHZ256rmk = 21232,
+ VSCALEFPHZ256rmkz = 21233,
+ VSCALEFPHZ256rr = 21234,
+ VSCALEFPHZ256rrk = 21235,
+ VSCALEFPHZ256rrkz = 21236,
+ VSCALEFPHZrm = 21237,
+ VSCALEFPHZrmb = 21238,
+ VSCALEFPHZrmbk = 21239,
+ VSCALEFPHZrmbkz = 21240,
+ VSCALEFPHZrmk = 21241,
+ VSCALEFPHZrmkz = 21242,
+ VSCALEFPHZrr = 21243,
+ VSCALEFPHZrrb = 21244,
+ VSCALEFPHZrrbk = 21245,
+ VSCALEFPHZrrbkz = 21246,
+ VSCALEFPHZrrk = 21247,
+ VSCALEFPHZrrkz = 21248,
+ VSCALEFPSZ128rm = 21249,
+ VSCALEFPSZ128rmb = 21250,
+ VSCALEFPSZ128rmbk = 21251,
+ VSCALEFPSZ128rmbkz = 21252,
+ VSCALEFPSZ128rmk = 21253,
+ VSCALEFPSZ128rmkz = 21254,
+ VSCALEFPSZ128rr = 21255,
+ VSCALEFPSZ128rrk = 21256,
+ VSCALEFPSZ128rrkz = 21257,
+ VSCALEFPSZ256rm = 21258,
+ VSCALEFPSZ256rmb = 21259,
+ VSCALEFPSZ256rmbk = 21260,
+ VSCALEFPSZ256rmbkz = 21261,
+ VSCALEFPSZ256rmk = 21262,
+ VSCALEFPSZ256rmkz = 21263,
+ VSCALEFPSZ256rr = 21264,
+ VSCALEFPSZ256rrk = 21265,
+ VSCALEFPSZ256rrkz = 21266,
+ VSCALEFPSZrm = 21267,
+ VSCALEFPSZrmb = 21268,
+ VSCALEFPSZrmbk = 21269,
+ VSCALEFPSZrmbkz = 21270,
+ VSCALEFPSZrmk = 21271,
+ VSCALEFPSZrmkz = 21272,
+ VSCALEFPSZrr = 21273,
+ VSCALEFPSZrrb = 21274,
+ VSCALEFPSZrrbk = 21275,
+ VSCALEFPSZrrbkz = 21276,
+ VSCALEFPSZrrk = 21277,
+ VSCALEFPSZrrkz = 21278,
+ VSCALEFSDZrm = 21279,
+ VSCALEFSDZrmk = 21280,
+ VSCALEFSDZrmkz = 21281,
+ VSCALEFSDZrr = 21282,
+ VSCALEFSDZrrb_Int = 21283,
+ VSCALEFSDZrrbk_Int = 21284,
+ VSCALEFSDZrrbkz_Int = 21285,
+ VSCALEFSDZrrk = 21286,
+ VSCALEFSDZrrkz = 21287,
+ VSCALEFSHZrm = 21288,
+ VSCALEFSHZrmk = 21289,
+ VSCALEFSHZrmkz = 21290,
+ VSCALEFSHZrr = 21291,
+ VSCALEFSHZrrb_Int = 21292,
+ VSCALEFSHZrrbk_Int = 21293,
+ VSCALEFSHZrrbkz_Int = 21294,
+ VSCALEFSHZrrk = 21295,
+ VSCALEFSHZrrkz = 21296,
+ VSCALEFSSZrm = 21297,
+ VSCALEFSSZrmk = 21298,
+ VSCALEFSSZrmkz = 21299,
+ VSCALEFSSZrr = 21300,
+ VSCALEFSSZrrb_Int = 21301,
+ VSCALEFSSZrrbk_Int = 21302,
+ VSCALEFSSZrrbkz_Int = 21303,
+ VSCALEFSSZrrk = 21304,
+ VSCALEFSSZrrkz = 21305,
+ VSCATTERDPDZ128mr = 21306,
+ VSCATTERDPDZ256mr = 21307,
+ VSCATTERDPDZmr = 21308,
+ VSCATTERDPSZ128mr = 21309,
+ VSCATTERDPSZ256mr = 21310,
+ VSCATTERDPSZmr = 21311,
+ VSCATTERPF0DPDm = 21312,
+ VSCATTERPF0DPSm = 21313,
+ VSCATTERPF0QPDm = 21314,
+ VSCATTERPF0QPSm = 21315,
+ VSCATTERPF1DPDm = 21316,
+ VSCATTERPF1DPSm = 21317,
+ VSCATTERPF1QPDm = 21318,
+ VSCATTERPF1QPSm = 21319,
+ VSCATTERQPDZ128mr = 21320,
+ VSCATTERQPDZ256mr = 21321,
+ VSCATTERQPDZmr = 21322,
+ VSCATTERQPSZ128mr = 21323,
+ VSCATTERQPSZ256mr = 21324,
+ VSCATTERQPSZmr = 21325,
+ VSHA512MSG1rr = 21326,
+ VSHA512MSG2rr = 21327,
+ VSHA512RNDS2rr = 21328,
+ VSHUFF32X4Z256rmbi = 21329,
+ VSHUFF32X4Z256rmbik = 21330,
+ VSHUFF32X4Z256rmbikz = 21331,
+ VSHUFF32X4Z256rmi = 21332,
+ VSHUFF32X4Z256rmik = 21333,
+ VSHUFF32X4Z256rmikz = 21334,
+ VSHUFF32X4Z256rri = 21335,
+ VSHUFF32X4Z256rrik = 21336,
+ VSHUFF32X4Z256rrikz = 21337,
+ VSHUFF32X4Zrmbi = 21338,
+ VSHUFF32X4Zrmbik = 21339,
+ VSHUFF32X4Zrmbikz = 21340,
+ VSHUFF32X4Zrmi = 21341,
+ VSHUFF32X4Zrmik = 21342,
+ VSHUFF32X4Zrmikz = 21343,
+ VSHUFF32X4Zrri = 21344,
+ VSHUFF32X4Zrrik = 21345,
+ VSHUFF32X4Zrrikz = 21346,
+ VSHUFF64X2Z256rmbi = 21347,
+ VSHUFF64X2Z256rmbik = 21348,
+ VSHUFF64X2Z256rmbikz = 21349,
+ VSHUFF64X2Z256rmi = 21350,
+ VSHUFF64X2Z256rmik = 21351,
+ VSHUFF64X2Z256rmikz = 21352,
+ VSHUFF64X2Z256rri = 21353,
+ VSHUFF64X2Z256rrik = 21354,
+ VSHUFF64X2Z256rrikz = 21355,
+ VSHUFF64X2Zrmbi = 21356,
+ VSHUFF64X2Zrmbik = 21357,
+ VSHUFF64X2Zrmbikz = 21358,
+ VSHUFF64X2Zrmi = 21359,
+ VSHUFF64X2Zrmik = 21360,
+ VSHUFF64X2Zrmikz = 21361,
+ VSHUFF64X2Zrri = 21362,
+ VSHUFF64X2Zrrik = 21363,
+ VSHUFF64X2Zrrikz = 21364,
+ VSHUFI32X4Z256rmbi = 21365,
+ VSHUFI32X4Z256rmbik = 21366,
+ VSHUFI32X4Z256rmbikz = 21367,
+ VSHUFI32X4Z256rmi = 21368,
+ VSHUFI32X4Z256rmik = 21369,
+ VSHUFI32X4Z256rmikz = 21370,
+ VSHUFI32X4Z256rri = 21371,
+ VSHUFI32X4Z256rrik = 21372,
+ VSHUFI32X4Z256rrikz = 21373,
+ VSHUFI32X4Zrmbi = 21374,
+ VSHUFI32X4Zrmbik = 21375,
+ VSHUFI32X4Zrmbikz = 21376,
+ VSHUFI32X4Zrmi = 21377,
+ VSHUFI32X4Zrmik = 21378,
+ VSHUFI32X4Zrmikz = 21379,
+ VSHUFI32X4Zrri = 21380,
+ VSHUFI32X4Zrrik = 21381,
+ VSHUFI32X4Zrrikz = 21382,
+ VSHUFI64X2Z256rmbi = 21383,
+ VSHUFI64X2Z256rmbik = 21384,
+ VSHUFI64X2Z256rmbikz = 21385,
+ VSHUFI64X2Z256rmi = 21386,
+ VSHUFI64X2Z256rmik = 21387,
+ VSHUFI64X2Z256rmikz = 21388,
+ VSHUFI64X2Z256rri = 21389,
+ VSHUFI64X2Z256rrik = 21390,
+ VSHUFI64X2Z256rrikz = 21391,
+ VSHUFI64X2Zrmbi = 21392,
+ VSHUFI64X2Zrmbik = 21393,
+ VSHUFI64X2Zrmbikz = 21394,
+ VSHUFI64X2Zrmi = 21395,
+ VSHUFI64X2Zrmik = 21396,
+ VSHUFI64X2Zrmikz = 21397,
+ VSHUFI64X2Zrri = 21398,
+ VSHUFI64X2Zrrik = 21399,
+ VSHUFI64X2Zrrikz = 21400,
+ VSHUFPDYrmi = 21401,
+ VSHUFPDYrri = 21402,
+ VSHUFPDZ128rmbi = 21403,
+ VSHUFPDZ128rmbik = 21404,
+ VSHUFPDZ128rmbikz = 21405,
+ VSHUFPDZ128rmi = 21406,
+ VSHUFPDZ128rmik = 21407,
+ VSHUFPDZ128rmikz = 21408,
+ VSHUFPDZ128rri = 21409,
+ VSHUFPDZ128rrik = 21410,
+ VSHUFPDZ128rrikz = 21411,
+ VSHUFPDZ256rmbi = 21412,
+ VSHUFPDZ256rmbik = 21413,
+ VSHUFPDZ256rmbikz = 21414,
+ VSHUFPDZ256rmi = 21415,
+ VSHUFPDZ256rmik = 21416,
+ VSHUFPDZ256rmikz = 21417,
+ VSHUFPDZ256rri = 21418,
+ VSHUFPDZ256rrik = 21419,
+ VSHUFPDZ256rrikz = 21420,
+ VSHUFPDZrmbi = 21421,
+ VSHUFPDZrmbik = 21422,
+ VSHUFPDZrmbikz = 21423,
+ VSHUFPDZrmi = 21424,
+ VSHUFPDZrmik = 21425,
+ VSHUFPDZrmikz = 21426,
+ VSHUFPDZrri = 21427,
+ VSHUFPDZrrik = 21428,
+ VSHUFPDZrrikz = 21429,
+ VSHUFPDrmi = 21430,
+ VSHUFPDrri = 21431,
+ VSHUFPSYrmi = 21432,
+ VSHUFPSYrri = 21433,
+ VSHUFPSZ128rmbi = 21434,
+ VSHUFPSZ128rmbik = 21435,
+ VSHUFPSZ128rmbikz = 21436,
+ VSHUFPSZ128rmi = 21437,
+ VSHUFPSZ128rmik = 21438,
+ VSHUFPSZ128rmikz = 21439,
+ VSHUFPSZ128rri = 21440,
+ VSHUFPSZ128rrik = 21441,
+ VSHUFPSZ128rrikz = 21442,
+ VSHUFPSZ256rmbi = 21443,
+ VSHUFPSZ256rmbik = 21444,
+ VSHUFPSZ256rmbikz = 21445,
+ VSHUFPSZ256rmi = 21446,
+ VSHUFPSZ256rmik = 21447,
+ VSHUFPSZ256rmikz = 21448,
+ VSHUFPSZ256rri = 21449,
+ VSHUFPSZ256rrik = 21450,
+ VSHUFPSZ256rrikz = 21451,
+ VSHUFPSZrmbi = 21452,
+ VSHUFPSZrmbik = 21453,
+ VSHUFPSZrmbikz = 21454,
+ VSHUFPSZrmi = 21455,
+ VSHUFPSZrmik = 21456,
+ VSHUFPSZrmikz = 21457,
+ VSHUFPSZrri = 21458,
+ VSHUFPSZrrik = 21459,
+ VSHUFPSZrrikz = 21460,
+ VSHUFPSrmi = 21461,
+ VSHUFPSrri = 21462,
+ VSM3MSG1rm = 21463,
+ VSM3MSG1rr = 21464,
+ VSM3MSG2rm = 21465,
+ VSM3MSG2rr = 21466,
+ VSM3RNDS2rmi = 21467,
+ VSM3RNDS2rri = 21468,
+ VSM4KEY4Yrm = 21469,
+ VSM4KEY4Yrr = 21470,
+ VSM4KEY4Z128rm = 21471,
+ VSM4KEY4Z128rr = 21472,
+ VSM4KEY4Z256rm = 21473,
+ VSM4KEY4Z256rr = 21474,
+ VSM4KEY4Zrm = 21475,
+ VSM4KEY4Zrr = 21476,
+ VSM4KEY4rm = 21477,
+ VSM4KEY4rr = 21478,
+ VSM4RNDS4Yrm = 21479,
+ VSM4RNDS4Yrr = 21480,
+ VSM4RNDS4Z128rm = 21481,
+ VSM4RNDS4Z128rr = 21482,
+ VSM4RNDS4Z256rm = 21483,
+ VSM4RNDS4Z256rr = 21484,
+ VSM4RNDS4Zrm = 21485,
+ VSM4RNDS4Zrr = 21486,
+ VSM4RNDS4rm = 21487,
+ VSM4RNDS4rr = 21488,
+ VSQRTBF16Z128m = 21489,
+ VSQRTBF16Z128mb = 21490,
+ VSQRTBF16Z128mbk = 21491,
+ VSQRTBF16Z128mbkz = 21492,
+ VSQRTBF16Z128mk = 21493,
+ VSQRTBF16Z128mkz = 21494,
+ VSQRTBF16Z128r = 21495,
+ VSQRTBF16Z128rk = 21496,
+ VSQRTBF16Z128rkz = 21497,
+ VSQRTBF16Z256m = 21498,
+ VSQRTBF16Z256mb = 21499,
+ VSQRTBF16Z256mbk = 21500,
+ VSQRTBF16Z256mbkz = 21501,
+ VSQRTBF16Z256mk = 21502,
+ VSQRTBF16Z256mkz = 21503,
+ VSQRTBF16Z256r = 21504,
+ VSQRTBF16Z256rk = 21505,
+ VSQRTBF16Z256rkz = 21506,
+ VSQRTBF16Zm = 21507,
+ VSQRTBF16Zmb = 21508,
+ VSQRTBF16Zmbk = 21509,
+ VSQRTBF16Zmbkz = 21510,
+ VSQRTBF16Zmk = 21511,
+ VSQRTBF16Zmkz = 21512,
+ VSQRTBF16Zr = 21513,
+ VSQRTBF16Zrk = 21514,
+ VSQRTBF16Zrkz = 21515,
+ VSQRTPDYm = 21516,
+ VSQRTPDYr = 21517,
+ VSQRTPDZ128m = 21518,
+ VSQRTPDZ128mb = 21519,
+ VSQRTPDZ128mbk = 21520,
+ VSQRTPDZ128mbkz = 21521,
+ VSQRTPDZ128mk = 21522,
+ VSQRTPDZ128mkz = 21523,
+ VSQRTPDZ128r = 21524,
+ VSQRTPDZ128rk = 21525,
+ VSQRTPDZ128rkz = 21526,
+ VSQRTPDZ256m = 21527,
+ VSQRTPDZ256mb = 21528,
+ VSQRTPDZ256mbk = 21529,
+ VSQRTPDZ256mbkz = 21530,
+ VSQRTPDZ256mk = 21531,
+ VSQRTPDZ256mkz = 21532,
+ VSQRTPDZ256r = 21533,
+ VSQRTPDZ256rk = 21534,
+ VSQRTPDZ256rkz = 21535,
+ VSQRTPDZm = 21536,
+ VSQRTPDZmb = 21537,
+ VSQRTPDZmbk = 21538,
+ VSQRTPDZmbkz = 21539,
+ VSQRTPDZmk = 21540,
+ VSQRTPDZmkz = 21541,
+ VSQRTPDZr = 21542,
+ VSQRTPDZrb = 21543,
+ VSQRTPDZrbk = 21544,
+ VSQRTPDZrbkz = 21545,
+ VSQRTPDZrk = 21546,
+ VSQRTPDZrkz = 21547,
+ VSQRTPDm = 21548,
+ VSQRTPDr = 21549,
+ VSQRTPHZ128m = 21550,
+ VSQRTPHZ128mb = 21551,
+ VSQRTPHZ128mbk = 21552,
+ VSQRTPHZ128mbkz = 21553,
+ VSQRTPHZ128mk = 21554,
+ VSQRTPHZ128mkz = 21555,
+ VSQRTPHZ128r = 21556,
+ VSQRTPHZ128rk = 21557,
+ VSQRTPHZ128rkz = 21558,
+ VSQRTPHZ256m = 21559,
+ VSQRTPHZ256mb = 21560,
+ VSQRTPHZ256mbk = 21561,
+ VSQRTPHZ256mbkz = 21562,
+ VSQRTPHZ256mk = 21563,
+ VSQRTPHZ256mkz = 21564,
+ VSQRTPHZ256r = 21565,
+ VSQRTPHZ256rk = 21566,
+ VSQRTPHZ256rkz = 21567,
+ VSQRTPHZm = 21568,
+ VSQRTPHZmb = 21569,
+ VSQRTPHZmbk = 21570,
+ VSQRTPHZmbkz = 21571,
+ VSQRTPHZmk = 21572,
+ VSQRTPHZmkz = 21573,
+ VSQRTPHZr = 21574,
+ VSQRTPHZrb = 21575,
+ VSQRTPHZrbk = 21576,
+ VSQRTPHZrbkz = 21577,
+ VSQRTPHZrk = 21578,
+ VSQRTPHZrkz = 21579,
+ VSQRTPSYm = 21580,
+ VSQRTPSYr = 21581,
+ VSQRTPSZ128m = 21582,
+ VSQRTPSZ128mb = 21583,
+ VSQRTPSZ128mbk = 21584,
+ VSQRTPSZ128mbkz = 21585,
+ VSQRTPSZ128mk = 21586,
+ VSQRTPSZ128mkz = 21587,
+ VSQRTPSZ128r = 21588,
+ VSQRTPSZ128rk = 21589,
+ VSQRTPSZ128rkz = 21590,
+ VSQRTPSZ256m = 21591,
+ VSQRTPSZ256mb = 21592,
+ VSQRTPSZ256mbk = 21593,
+ VSQRTPSZ256mbkz = 21594,
+ VSQRTPSZ256mk = 21595,
+ VSQRTPSZ256mkz = 21596,
+ VSQRTPSZ256r = 21597,
+ VSQRTPSZ256rk = 21598,
+ VSQRTPSZ256rkz = 21599,
+ VSQRTPSZm = 21600,
+ VSQRTPSZmb = 21601,
+ VSQRTPSZmbk = 21602,
+ VSQRTPSZmbkz = 21603,
+ VSQRTPSZmk = 21604,
+ VSQRTPSZmkz = 21605,
+ VSQRTPSZr = 21606,
+ VSQRTPSZrb = 21607,
+ VSQRTPSZrbk = 21608,
+ VSQRTPSZrbkz = 21609,
+ VSQRTPSZrk = 21610,
+ VSQRTPSZrkz = 21611,
+ VSQRTPSm = 21612,
+ VSQRTPSr = 21613,
+ VSQRTSDZm = 21614,
+ VSQRTSDZm_Int = 21615,
+ VSQRTSDZmk_Int = 21616,
+ VSQRTSDZmkz_Int = 21617,
+ VSQRTSDZr = 21618,
+ VSQRTSDZr_Int = 21619,
+ VSQRTSDZrb_Int = 21620,
+ VSQRTSDZrbk_Int = 21621,
+ VSQRTSDZrbkz_Int = 21622,
+ VSQRTSDZrk_Int = 21623,
+ VSQRTSDZrkz_Int = 21624,
+ VSQRTSDm = 21625,
+ VSQRTSDm_Int = 21626,
+ VSQRTSDr = 21627,
+ VSQRTSDr_Int = 21628,
+ VSQRTSHZm = 21629,
+ VSQRTSHZm_Int = 21630,
+ VSQRTSHZmk_Int = 21631,
+ VSQRTSHZmkz_Int = 21632,
+ VSQRTSHZr = 21633,
+ VSQRTSHZr_Int = 21634,
+ VSQRTSHZrb_Int = 21635,
+ VSQRTSHZrbk_Int = 21636,
+ VSQRTSHZrbkz_Int = 21637,
+ VSQRTSHZrk_Int = 21638,
+ VSQRTSHZrkz_Int = 21639,
+ VSQRTSSZm = 21640,
+ VSQRTSSZm_Int = 21641,
+ VSQRTSSZmk_Int = 21642,
+ VSQRTSSZmkz_Int = 21643,
+ VSQRTSSZr = 21644,
+ VSQRTSSZr_Int = 21645,
+ VSQRTSSZrb_Int = 21646,
+ VSQRTSSZrbk_Int = 21647,
+ VSQRTSSZrbkz_Int = 21648,
+ VSQRTSSZrk_Int = 21649,
+ VSQRTSSZrkz_Int = 21650,
+ VSQRTSSm = 21651,
+ VSQRTSSm_Int = 21652,
+ VSQRTSSr = 21653,
+ VSQRTSSr_Int = 21654,
+ VSTMXCSR = 21655,
+ VSUBBF16Z128rm = 21656,
+ VSUBBF16Z128rmb = 21657,
+ VSUBBF16Z128rmbk = 21658,
+ VSUBBF16Z128rmbkz = 21659,
+ VSUBBF16Z128rmk = 21660,
+ VSUBBF16Z128rmkz = 21661,
+ VSUBBF16Z128rr = 21662,
+ VSUBBF16Z128rrk = 21663,
+ VSUBBF16Z128rrkz = 21664,
+ VSUBBF16Z256rm = 21665,
+ VSUBBF16Z256rmb = 21666,
+ VSUBBF16Z256rmbk = 21667,
+ VSUBBF16Z256rmbkz = 21668,
+ VSUBBF16Z256rmk = 21669,
+ VSUBBF16Z256rmkz = 21670,
+ VSUBBF16Z256rr = 21671,
+ VSUBBF16Z256rrk = 21672,
+ VSUBBF16Z256rrkz = 21673,
+ VSUBBF16Zrm = 21674,
+ VSUBBF16Zrmb = 21675,
+ VSUBBF16Zrmbk = 21676,
+ VSUBBF16Zrmbkz = 21677,
+ VSUBBF16Zrmk = 21678,
+ VSUBBF16Zrmkz = 21679,
+ VSUBBF16Zrr = 21680,
+ VSUBBF16Zrrk = 21681,
+ VSUBBF16Zrrkz = 21682,
+ VSUBPDYrm = 21683,
+ VSUBPDYrr = 21684,
+ VSUBPDZ128rm = 21685,
+ VSUBPDZ128rmb = 21686,
+ VSUBPDZ128rmbk = 21687,
+ VSUBPDZ128rmbkz = 21688,
+ VSUBPDZ128rmk = 21689,
+ VSUBPDZ128rmkz = 21690,
+ VSUBPDZ128rr = 21691,
+ VSUBPDZ128rrk = 21692,
+ VSUBPDZ128rrkz = 21693,
+ VSUBPDZ256rm = 21694,
+ VSUBPDZ256rmb = 21695,
+ VSUBPDZ256rmbk = 21696,
+ VSUBPDZ256rmbkz = 21697,
+ VSUBPDZ256rmk = 21698,
+ VSUBPDZ256rmkz = 21699,
+ VSUBPDZ256rr = 21700,
+ VSUBPDZ256rrk = 21701,
+ VSUBPDZ256rrkz = 21702,
+ VSUBPDZrm = 21703,
+ VSUBPDZrmb = 21704,
+ VSUBPDZrmbk = 21705,
+ VSUBPDZrmbkz = 21706,
+ VSUBPDZrmk = 21707,
+ VSUBPDZrmkz = 21708,
+ VSUBPDZrr = 21709,
+ VSUBPDZrrb = 21710,
+ VSUBPDZrrbk = 21711,
+ VSUBPDZrrbkz = 21712,
+ VSUBPDZrrk = 21713,
+ VSUBPDZrrkz = 21714,
+ VSUBPDrm = 21715,
+ VSUBPDrr = 21716,
+ VSUBPHZ128rm = 21717,
+ VSUBPHZ128rmb = 21718,
+ VSUBPHZ128rmbk = 21719,
+ VSUBPHZ128rmbkz = 21720,
+ VSUBPHZ128rmk = 21721,
+ VSUBPHZ128rmkz = 21722,
+ VSUBPHZ128rr = 21723,
+ VSUBPHZ128rrk = 21724,
+ VSUBPHZ128rrkz = 21725,
+ VSUBPHZ256rm = 21726,
+ VSUBPHZ256rmb = 21727,
+ VSUBPHZ256rmbk = 21728,
+ VSUBPHZ256rmbkz = 21729,
+ VSUBPHZ256rmk = 21730,
+ VSUBPHZ256rmkz = 21731,
+ VSUBPHZ256rr = 21732,
+ VSUBPHZ256rrk = 21733,
+ VSUBPHZ256rrkz = 21734,
+ VSUBPHZrm = 21735,
+ VSUBPHZrmb = 21736,
+ VSUBPHZrmbk = 21737,
+ VSUBPHZrmbkz = 21738,
+ VSUBPHZrmk = 21739,
+ VSUBPHZrmkz = 21740,
+ VSUBPHZrr = 21741,
+ VSUBPHZrrb = 21742,
+ VSUBPHZrrbk = 21743,
+ VSUBPHZrrbkz = 21744,
+ VSUBPHZrrk = 21745,
+ VSUBPHZrrkz = 21746,
+ VSUBPSYrm = 21747,
+ VSUBPSYrr = 21748,
+ VSUBPSZ128rm = 21749,
+ VSUBPSZ128rmb = 21750,
+ VSUBPSZ128rmbk = 21751,
+ VSUBPSZ128rmbkz = 21752,
+ VSUBPSZ128rmk = 21753,
+ VSUBPSZ128rmkz = 21754,
+ VSUBPSZ128rr = 21755,
+ VSUBPSZ128rrk = 21756,
+ VSUBPSZ128rrkz = 21757,
+ VSUBPSZ256rm = 21758,
+ VSUBPSZ256rmb = 21759,
+ VSUBPSZ256rmbk = 21760,
+ VSUBPSZ256rmbkz = 21761,
+ VSUBPSZ256rmk = 21762,
+ VSUBPSZ256rmkz = 21763,
+ VSUBPSZ256rr = 21764,
+ VSUBPSZ256rrk = 21765,
+ VSUBPSZ256rrkz = 21766,
+ VSUBPSZrm = 21767,
+ VSUBPSZrmb = 21768,
+ VSUBPSZrmbk = 21769,
+ VSUBPSZrmbkz = 21770,
+ VSUBPSZrmk = 21771,
+ VSUBPSZrmkz = 21772,
+ VSUBPSZrr = 21773,
+ VSUBPSZrrb = 21774,
+ VSUBPSZrrbk = 21775,
+ VSUBPSZrrbkz = 21776,
+ VSUBPSZrrk = 21777,
+ VSUBPSZrrkz = 21778,
+ VSUBPSrm = 21779,
+ VSUBPSrr = 21780,
+ VSUBSDZrm = 21781,
+ VSUBSDZrm_Int = 21782,
+ VSUBSDZrmk_Int = 21783,
+ VSUBSDZrmkz_Int = 21784,
+ VSUBSDZrr = 21785,
+ VSUBSDZrr_Int = 21786,
+ VSUBSDZrrb_Int = 21787,
+ VSUBSDZrrbk_Int = 21788,
+ VSUBSDZrrbkz_Int = 21789,
+ VSUBSDZrrk_Int = 21790,
+ VSUBSDZrrkz_Int = 21791,
+ VSUBSDrm = 21792,
+ VSUBSDrm_Int = 21793,
+ VSUBSDrr = 21794,
+ VSUBSDrr_Int = 21795,
+ VSUBSHZrm = 21796,
+ VSUBSHZrm_Int = 21797,
+ VSUBSHZrmk_Int = 21798,
+ VSUBSHZrmkz_Int = 21799,
+ VSUBSHZrr = 21800,
+ VSUBSHZrr_Int = 21801,
+ VSUBSHZrrb_Int = 21802,
+ VSUBSHZrrbk_Int = 21803,
+ VSUBSHZrrbkz_Int = 21804,
+ VSUBSHZrrk_Int = 21805,
+ VSUBSHZrrkz_Int = 21806,
+ VSUBSSZrm = 21807,
+ VSUBSSZrm_Int = 21808,
+ VSUBSSZrmk_Int = 21809,
+ VSUBSSZrmkz_Int = 21810,
+ VSUBSSZrr = 21811,
+ VSUBSSZrr_Int = 21812,
+ VSUBSSZrrb_Int = 21813,
+ VSUBSSZrrbk_Int = 21814,
+ VSUBSSZrrbkz_Int = 21815,
+ VSUBSSZrrk_Int = 21816,
+ VSUBSSZrrkz_Int = 21817,
+ VSUBSSrm = 21818,
+ VSUBSSrm_Int = 21819,
+ VSUBSSrr = 21820,
+ VSUBSSrr_Int = 21821,
+ VTESTPDYrm = 21822,
+ VTESTPDYrr = 21823,
+ VTESTPDrm = 21824,
+ VTESTPDrr = 21825,
+ VTESTPSYrm = 21826,
+ VTESTPSYrr = 21827,
+ VTESTPSrm = 21828,
+ VTESTPSrr = 21829,
+ VUCOMISDZrm = 21830,
+ VUCOMISDZrm_Int = 21831,
+ VUCOMISDZrr = 21832,
+ VUCOMISDZrr_Int = 21833,
+ VUCOMISDZrrb = 21834,
+ VUCOMISDrm = 21835,
+ VUCOMISDrm_Int = 21836,
+ VUCOMISDrr = 21837,
+ VUCOMISDrr_Int = 21838,
+ VUCOMISHZrm = 21839,
+ VUCOMISHZrm_Int = 21840,
+ VUCOMISHZrr = 21841,
+ VUCOMISHZrr_Int = 21842,
+ VUCOMISHZrrb = 21843,
+ VUCOMISSZrm = 21844,
+ VUCOMISSZrm_Int = 21845,
+ VUCOMISSZrr = 21846,
+ VUCOMISSZrr_Int = 21847,
+ VUCOMISSZrrb = 21848,
+ VUCOMISSrm = 21849,
+ VUCOMISSrm_Int = 21850,
+ VUCOMISSrr = 21851,
+ VUCOMISSrr_Int = 21852,
+ VUCOMXSDZrm = 21853,
+ VUCOMXSDZrm_Int = 21854,
+ VUCOMXSDZrr = 21855,
+ VUCOMXSDZrr_Int = 21856,
+ VUCOMXSDZrrb_Int = 21857,
+ VUCOMXSHZrm = 21858,
+ VUCOMXSHZrm_Int = 21859,
+ VUCOMXSHZrr = 21860,
+ VUCOMXSHZrr_Int = 21861,
+ VUCOMXSHZrrb_Int = 21862,
+ VUCOMXSSZrm = 21863,
+ VUCOMXSSZrm_Int = 21864,
+ VUCOMXSSZrr = 21865,
+ VUCOMXSSZrr_Int = 21866,
+ VUCOMXSSZrrb_Int = 21867,
+ VUNPCKHPDYrm = 21868,
+ VUNPCKHPDYrr = 21869,
+ VUNPCKHPDZ128rm = 21870,
+ VUNPCKHPDZ128rmb = 21871,
+ VUNPCKHPDZ128rmbk = 21872,
+ VUNPCKHPDZ128rmbkz = 21873,
+ VUNPCKHPDZ128rmk = 21874,
+ VUNPCKHPDZ128rmkz = 21875,
+ VUNPCKHPDZ128rr = 21876,
+ VUNPCKHPDZ128rrk = 21877,
+ VUNPCKHPDZ128rrkz = 21878,
+ VUNPCKHPDZ256rm = 21879,
+ VUNPCKHPDZ256rmb = 21880,
+ VUNPCKHPDZ256rmbk = 21881,
+ VUNPCKHPDZ256rmbkz = 21882,
+ VUNPCKHPDZ256rmk = 21883,
+ VUNPCKHPDZ256rmkz = 21884,
+ VUNPCKHPDZ256rr = 21885,
+ VUNPCKHPDZ256rrk = 21886,
+ VUNPCKHPDZ256rrkz = 21887,
+ VUNPCKHPDZrm = 21888,
+ VUNPCKHPDZrmb = 21889,
+ VUNPCKHPDZrmbk = 21890,
+ VUNPCKHPDZrmbkz = 21891,
+ VUNPCKHPDZrmk = 21892,
+ VUNPCKHPDZrmkz = 21893,
+ VUNPCKHPDZrr = 21894,
+ VUNPCKHPDZrrk = 21895,
+ VUNPCKHPDZrrkz = 21896,
+ VUNPCKHPDrm = 21897,
+ VUNPCKHPDrr = 21898,
+ VUNPCKHPSYrm = 21899,
+ VUNPCKHPSYrr = 21900,
+ VUNPCKHPSZ128rm = 21901,
+ VUNPCKHPSZ128rmb = 21902,
+ VUNPCKHPSZ128rmbk = 21903,
+ VUNPCKHPSZ128rmbkz = 21904,
+ VUNPCKHPSZ128rmk = 21905,
+ VUNPCKHPSZ128rmkz = 21906,
+ VUNPCKHPSZ128rr = 21907,
+ VUNPCKHPSZ128rrk = 21908,
+ VUNPCKHPSZ128rrkz = 21909,
+ VUNPCKHPSZ256rm = 21910,
+ VUNPCKHPSZ256rmb = 21911,
+ VUNPCKHPSZ256rmbk = 21912,
+ VUNPCKHPSZ256rmbkz = 21913,
+ VUNPCKHPSZ256rmk = 21914,
+ VUNPCKHPSZ256rmkz = 21915,
+ VUNPCKHPSZ256rr = 21916,
+ VUNPCKHPSZ256rrk = 21917,
+ VUNPCKHPSZ256rrkz = 21918,
+ VUNPCKHPSZrm = 21919,
+ VUNPCKHPSZrmb = 21920,
+ VUNPCKHPSZrmbk = 21921,
+ VUNPCKHPSZrmbkz = 21922,
+ VUNPCKHPSZrmk = 21923,
+ VUNPCKHPSZrmkz = 21924,
+ VUNPCKHPSZrr = 21925,
+ VUNPCKHPSZrrk = 21926,
+ VUNPCKHPSZrrkz = 21927,
+ VUNPCKHPSrm = 21928,
+ VUNPCKHPSrr = 21929,
+ VUNPCKLPDYrm = 21930,
+ VUNPCKLPDYrr = 21931,
+ VUNPCKLPDZ128rm = 21932,
+ VUNPCKLPDZ128rmb = 21933,
+ VUNPCKLPDZ128rmbk = 21934,
+ VUNPCKLPDZ128rmbkz = 21935,
+ VUNPCKLPDZ128rmk = 21936,
+ VUNPCKLPDZ128rmkz = 21937,
+ VUNPCKLPDZ128rr = 21938,
+ VUNPCKLPDZ128rrk = 21939,
+ VUNPCKLPDZ128rrkz = 21940,
+ VUNPCKLPDZ256rm = 21941,
+ VUNPCKLPDZ256rmb = 21942,
+ VUNPCKLPDZ256rmbk = 21943,
+ VUNPCKLPDZ256rmbkz = 21944,
+ VUNPCKLPDZ256rmk = 21945,
+ VUNPCKLPDZ256rmkz = 21946,
+ VUNPCKLPDZ256rr = 21947,
+ VUNPCKLPDZ256rrk = 21948,
+ VUNPCKLPDZ256rrkz = 21949,
+ VUNPCKLPDZrm = 21950,
+ VUNPCKLPDZrmb = 21951,
+ VUNPCKLPDZrmbk = 21952,
+ VUNPCKLPDZrmbkz = 21953,
+ VUNPCKLPDZrmk = 21954,
+ VUNPCKLPDZrmkz = 21955,
+ VUNPCKLPDZrr = 21956,
+ VUNPCKLPDZrrk = 21957,
+ VUNPCKLPDZrrkz = 21958,
+ VUNPCKLPDrm = 21959,
+ VUNPCKLPDrr = 21960,
+ VUNPCKLPSYrm = 21961,
+ VUNPCKLPSYrr = 21962,
+ VUNPCKLPSZ128rm = 21963,
+ VUNPCKLPSZ128rmb = 21964,
+ VUNPCKLPSZ128rmbk = 21965,
+ VUNPCKLPSZ128rmbkz = 21966,
+ VUNPCKLPSZ128rmk = 21967,
+ VUNPCKLPSZ128rmkz = 21968,
+ VUNPCKLPSZ128rr = 21969,
+ VUNPCKLPSZ128rrk = 21970,
+ VUNPCKLPSZ128rrkz = 21971,
+ VUNPCKLPSZ256rm = 21972,
+ VUNPCKLPSZ256rmb = 21973,
+ VUNPCKLPSZ256rmbk = 21974,
+ VUNPCKLPSZ256rmbkz = 21975,
+ VUNPCKLPSZ256rmk = 21976,
+ VUNPCKLPSZ256rmkz = 21977,
+ VUNPCKLPSZ256rr = 21978,
+ VUNPCKLPSZ256rrk = 21979,
+ VUNPCKLPSZ256rrkz = 21980,
+ VUNPCKLPSZrm = 21981,
+ VUNPCKLPSZrmb = 21982,
+ VUNPCKLPSZrmbk = 21983,
+ VUNPCKLPSZrmbkz = 21984,
+ VUNPCKLPSZrmk = 21985,
+ VUNPCKLPSZrmkz = 21986,
+ VUNPCKLPSZrr = 21987,
+ VUNPCKLPSZrrk = 21988,
+ VUNPCKLPSZrrkz = 21989,
+ VUNPCKLPSrm = 21990,
+ VUNPCKLPSrr = 21991,
+ VXORPDYrm = 21992,
+ VXORPDYrr = 21993,
+ VXORPDZ128rm = 21994,
+ VXORPDZ128rmb = 21995,
+ VXORPDZ128rmbk = 21996,
+ VXORPDZ128rmbkz = 21997,
+ VXORPDZ128rmk = 21998,
+ VXORPDZ128rmkz = 21999,
+ VXORPDZ128rr = 22000,
+ VXORPDZ128rrk = 22001,
+ VXORPDZ128rrkz = 22002,
+ VXORPDZ256rm = 22003,
+ VXORPDZ256rmb = 22004,
+ VXORPDZ256rmbk = 22005,
+ VXORPDZ256rmbkz = 22006,
+ VXORPDZ256rmk = 22007,
+ VXORPDZ256rmkz = 22008,
+ VXORPDZ256rr = 22009,
+ VXORPDZ256rrk = 22010,
+ VXORPDZ256rrkz = 22011,
+ VXORPDZrm = 22012,
+ VXORPDZrmb = 22013,
+ VXORPDZrmbk = 22014,
+ VXORPDZrmbkz = 22015,
+ VXORPDZrmk = 22016,
+ VXORPDZrmkz = 22017,
+ VXORPDZrr = 22018,
+ VXORPDZrrk = 22019,
+ VXORPDZrrkz = 22020,
+ VXORPDrm = 22021,
+ VXORPDrr = 22022,
+ VXORPSYrm = 22023,
+ VXORPSYrr = 22024,
+ VXORPSZ128rm = 22025,
+ VXORPSZ128rmb = 22026,
+ VXORPSZ128rmbk = 22027,
+ VXORPSZ128rmbkz = 22028,
+ VXORPSZ128rmk = 22029,
+ VXORPSZ128rmkz = 22030,
+ VXORPSZ128rr = 22031,
+ VXORPSZ128rrk = 22032,
+ VXORPSZ128rrkz = 22033,
+ VXORPSZ256rm = 22034,
+ VXORPSZ256rmb = 22035,
+ VXORPSZ256rmbk = 22036,
+ VXORPSZ256rmbkz = 22037,
+ VXORPSZ256rmk = 22038,
+ VXORPSZ256rmkz = 22039,
+ VXORPSZ256rr = 22040,
+ VXORPSZ256rrk = 22041,
+ VXORPSZ256rrkz = 22042,
+ VXORPSZrm = 22043,
+ VXORPSZrmb = 22044,
+ VXORPSZrmbk = 22045,
+ VXORPSZrmbkz = 22046,
+ VXORPSZrmk = 22047,
+ VXORPSZrmkz = 22048,
+ VXORPSZrr = 22049,
+ VXORPSZrrk = 22050,
+ VXORPSZrrkz = 22051,
+ VXORPSrm = 22052,
+ VXORPSrr = 22053,
+ VZEROALL = 22054,
+ VZEROUPPER = 22055,
+ WAIT = 22056,
+ WBINVD = 22057,
+ WBNOINVD = 22058,
+ WRFSBASE = 22059,
+ WRFSBASE64 = 22060,
+ WRGSBASE = 22061,
+ WRGSBASE64 = 22062,
+ WRMSR = 22063,
+ WRMSRLIST = 22064,
+ WRMSRNS = 22065,
+ WRMSRNSir = 22066,
+ WRMSRNSir_EVEX = 22067,
+ WRPKRUr = 22068,
+ WRSSD = 22069,
+ WRSSD_EVEX = 22070,
+ WRSSQ = 22071,
+ WRSSQ_EVEX = 22072,
+ WRUSSD = 22073,
+ WRUSSD_EVEX = 22074,
+ WRUSSQ = 22075,
+ WRUSSQ_EVEX = 22076,
+ XABORT = 22077,
+ XACQUIRE_PREFIX = 22078,
+ XADD16rm = 22079,
+ XADD16rr = 22080,
+ XADD32rm = 22081,
+ XADD32rr = 22082,
+ XADD64rm = 22083,
+ XADD64rr = 22084,
+ XADD8rm = 22085,
+ XADD8rr = 22086,
+ XAM_F = 22087,
+ XAM_Fp32 = 22088,
+ XAM_Fp64 = 22089,
+ XAM_Fp80 = 22090,
+ XBEGIN = 22091,
+ XBEGIN_2 = 22092,
+ XBEGIN_4 = 22093,
+ XCHG16ar = 22094,
+ XCHG16rm = 22095,
+ XCHG16rr = 22096,
+ XCHG32ar = 22097,
+ XCHG32rm = 22098,
+ XCHG32rr = 22099,
+ XCHG64ar = 22100,
+ XCHG64rm = 22101,
+ XCHG64rr = 22102,
+ XCHG8rm = 22103,
+ XCHG8rr = 22104,
+ XCH_F = 22105,
+ XCRYPTCBC = 22106,
+ XCRYPTCFB = 22107,
+ XCRYPTCTR = 22108,
+ XCRYPTECB = 22109,
+ XCRYPTOFB = 22110,
+ XEND = 22111,
+ XGETBV = 22112,
+ XLAT = 22113,
+ XOR16i16 = 22114,
+ XOR16mi = 22115,
+ XOR16mi8 = 22116,
+ XOR16mi8_EVEX = 22117,
+ XOR16mi8_ND = 22118,
+ XOR16mi8_NF = 22119,
+ XOR16mi8_NF_ND = 22120,
+ XOR16mi_EVEX = 22121,
+ XOR16mi_ND = 22122,
+ XOR16mi_NF = 22123,
+ XOR16mi_NF_ND = 22124,
+ XOR16mr = 22125,
+ XOR16mr_EVEX = 22126,
+ XOR16mr_ND = 22127,
+ XOR16mr_NF = 22128,
+ XOR16mr_NF_ND = 22129,
+ XOR16ri = 22130,
+ XOR16ri8 = 22131,
+ XOR16ri8_EVEX = 22132,
+ XOR16ri8_ND = 22133,
+ XOR16ri8_NF = 22134,
+ XOR16ri8_NF_ND = 22135,
+ XOR16ri_EVEX = 22136,
+ XOR16ri_ND = 22137,
+ XOR16ri_NF = 22138,
+ XOR16ri_NF_ND = 22139,
+ XOR16rm = 22140,
+ XOR16rm_EVEX = 22141,
+ XOR16rm_ND = 22142,
+ XOR16rm_NF = 22143,
+ XOR16rm_NF_ND = 22144,
+ XOR16rr = 22145,
+ XOR16rr_EVEX = 22146,
+ XOR16rr_EVEX_REV = 22147,
+ XOR16rr_ND = 22148,
+ XOR16rr_ND_REV = 22149,
+ XOR16rr_NF = 22150,
+ XOR16rr_NF_ND = 22151,
+ XOR16rr_NF_ND_REV = 22152,
+ XOR16rr_NF_REV = 22153,
+ XOR16rr_REV = 22154,
+ XOR32i32 = 22155,
+ XOR32mi = 22156,
+ XOR32mi8 = 22157,
+ XOR32mi8_EVEX = 22158,
+ XOR32mi8_ND = 22159,
+ XOR32mi8_NF = 22160,
+ XOR32mi8_NF_ND = 22161,
+ XOR32mi_EVEX = 22162,
+ XOR32mi_ND = 22163,
+ XOR32mi_NF = 22164,
+ XOR32mi_NF_ND = 22165,
+ XOR32mr = 22166,
+ XOR32mr_EVEX = 22167,
+ XOR32mr_ND = 22168,
+ XOR32mr_NF = 22169,
+ XOR32mr_NF_ND = 22170,
+ XOR32ri = 22171,
+ XOR32ri8 = 22172,
+ XOR32ri8_EVEX = 22173,
+ XOR32ri8_ND = 22174,
+ XOR32ri8_NF = 22175,
+ XOR32ri8_NF_ND = 22176,
+ XOR32ri_EVEX = 22177,
+ XOR32ri_ND = 22178,
+ XOR32ri_NF = 22179,
+ XOR32ri_NF_ND = 22180,
+ XOR32rm = 22181,
+ XOR32rm_EVEX = 22182,
+ XOR32rm_ND = 22183,
+ XOR32rm_NF = 22184,
+ XOR32rm_NF_ND = 22185,
+ XOR32rr = 22186,
+ XOR32rr_EVEX = 22187,
+ XOR32rr_EVEX_REV = 22188,
+ XOR32rr_ND = 22189,
+ XOR32rr_ND_REV = 22190,
+ XOR32rr_NF = 22191,
+ XOR32rr_NF_ND = 22192,
+ XOR32rr_NF_ND_REV = 22193,
+ XOR32rr_NF_REV = 22194,
+ XOR32rr_REV = 22195,
+ XOR64i32 = 22196,
+ XOR64mi32 = 22197,
+ XOR64mi32_EVEX = 22198,
+ XOR64mi32_ND = 22199,
+ XOR64mi32_NF = 22200,
+ XOR64mi32_NF_ND = 22201,
+ XOR64mi8 = 22202,
+ XOR64mi8_EVEX = 22203,
+ XOR64mi8_ND = 22204,
+ XOR64mi8_NF = 22205,
+ XOR64mi8_NF_ND = 22206,
+ XOR64mr = 22207,
+ XOR64mr_EVEX = 22208,
+ XOR64mr_ND = 22209,
+ XOR64mr_NF = 22210,
+ XOR64mr_NF_ND = 22211,
+ XOR64ri32 = 22212,
+ XOR64ri32_EVEX = 22213,
+ XOR64ri32_ND = 22214,
+ XOR64ri32_NF = 22215,
+ XOR64ri32_NF_ND = 22216,
+ XOR64ri8 = 22217,
+ XOR64ri8_EVEX = 22218,
+ XOR64ri8_ND = 22219,
+ XOR64ri8_NF = 22220,
+ XOR64ri8_NF_ND = 22221,
+ XOR64rm = 22222,
+ XOR64rm_EVEX = 22223,
+ XOR64rm_ND = 22224,
+ XOR64rm_NF = 22225,
+ XOR64rm_NF_ND = 22226,
+ XOR64rr = 22227,
+ XOR64rr_EVEX = 22228,
+ XOR64rr_EVEX_REV = 22229,
+ XOR64rr_ND = 22230,
+ XOR64rr_ND_REV = 22231,
+ XOR64rr_NF = 22232,
+ XOR64rr_NF_ND = 22233,
+ XOR64rr_NF_ND_REV = 22234,
+ XOR64rr_NF_REV = 22235,
+ XOR64rr_REV = 22236,
+ XOR8i8 = 22237,
+ XOR8mi = 22238,
+ XOR8mi8 = 22239,
+ XOR8mi_EVEX = 22240,
+ XOR8mi_ND = 22241,
+ XOR8mi_NF = 22242,
+ XOR8mi_NF_ND = 22243,
+ XOR8mr = 22244,
+ XOR8mr_EVEX = 22245,
+ XOR8mr_ND = 22246,
+ XOR8mr_NF = 22247,
+ XOR8mr_NF_ND = 22248,
+ XOR8ri = 22249,
+ XOR8ri8 = 22250,
+ XOR8ri_EVEX = 22251,
+ XOR8ri_ND = 22252,
+ XOR8ri_NF = 22253,
+ XOR8ri_NF_ND = 22254,
+ XOR8rm = 22255,
+ XOR8rm_EVEX = 22256,
+ XOR8rm_ND = 22257,
+ XOR8rm_NF = 22258,
+ XOR8rm_NF_ND = 22259,
+ XOR8rr = 22260,
+ XOR8rr_EVEX = 22261,
+ XOR8rr_EVEX_REV = 22262,
+ XOR8rr_ND = 22263,
+ XOR8rr_ND_REV = 22264,
+ XOR8rr_NF = 22265,
+ XOR8rr_NF_ND = 22266,
+ XOR8rr_NF_ND_REV = 22267,
+ XOR8rr_NF_REV = 22268,
+ XOR8rr_NOREX = 22269,
+ XOR8rr_REV = 22270,
+ XORPDrm = 22271,
+ XORPDrr = 22272,
+ XORPSrm = 22273,
+ XORPSrr = 22274,
+ XRELEASE_PREFIX = 22275,
+ XRESLDTRK = 22276,
+ XRSTOR = 22277,
+ XRSTOR64 = 22278,
+ XRSTORS = 22279,
+ XRSTORS64 = 22280,
+ XSAVE = 22281,
+ XSAVE64 = 22282,
+ XSAVEC = 22283,
+ XSAVEC64 = 22284,
+ XSAVEOPT = 22285,
+ XSAVEOPT64 = 22286,
+ XSAVES = 22287,
+ XSAVES64 = 22288,
+ XSETBV = 22289,
+ XSHA1 = 22290,
+ XSHA256 = 22291,
+ XSTORE = 22292,
+ XSUSLDTRK = 22293,
+ XTEST = 22294,
+ INSTRUCTION_LIST_END = 22295,
};
}
}
diff --git a/deps/LIEF/include/LIEF/asm/x86/operands.hpp b/deps/LIEF/include/LIEF/asm/x86/operands.hpp
index aa105ebaaf7..91534173045 100644
--- a/deps/LIEF/include/LIEF/asm/x86/operands.hpp
+++ b/deps/LIEF/include/LIEF/asm/x86/operands.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/x86/operands/Immediate.hpp b/deps/LIEF/include/LIEF/asm/x86/operands/Immediate.hpp
index 71792e0b302..ede825e81fb 100644
--- a/deps/LIEF/include/LIEF/asm/x86/operands/Immediate.hpp
+++ b/deps/LIEF/include/LIEF/asm/x86/operands/Immediate.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/x86/operands/Memory.hpp b/deps/LIEF/include/LIEF/asm/x86/operands/Memory.hpp
index d621be4820d..ad38c6bc43b 100644
--- a/deps/LIEF/include/LIEF/asm/x86/operands/Memory.hpp
+++ b/deps/LIEF/include/LIEF/asm/x86/operands/Memory.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,6 +14,8 @@
*/
#ifndef LIEF_ASM_X86_OPERAND_MEMORY_H
#define LIEF_ASM_X86_OPERAND_MEMORY_H
+#include <cstdint>
+
#include "LIEF/asm/x86/Operand.hpp"
#include "LIEF/asm/x86/registers.hpp"
diff --git a/deps/LIEF/include/LIEF/asm/x86/operands/PCRelative.hpp b/deps/LIEF/include/LIEF/asm/x86/operands/PCRelative.hpp
index 8310d5f8ff6..7518271e7f7 100644
--- a/deps/LIEF/include/LIEF/asm/x86/operands/PCRelative.hpp
+++ b/deps/LIEF/include/LIEF/asm/x86/operands/PCRelative.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/x86/operands/Register.hpp b/deps/LIEF/include/LIEF/asm/x86/operands/Register.hpp
index 22e49d88c1f..06e18726622 100644
--- a/deps/LIEF/include/LIEF/asm/x86/operands/Register.hpp
+++ b/deps/LIEF/include/LIEF/asm/x86/operands/Register.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/asm/x86/registers.hpp b/deps/LIEF/include/LIEF/asm/x86/registers.hpp
index db241f0a09d..1eb0c414777 100644
--- a/deps/LIEF/include/LIEF/asm/x86/registers.hpp
+++ b/deps/LIEF/include/LIEF/asm/x86/registers.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -313,107 +313,103 @@ enum class REG {
TMM5 = 289,
TMM6 = 290,
TMM7 = 291,
- TMM0_TMM1 = 292,
- TMM2_TMM3 = 293,
- TMM4_TMM5 = 294,
- TMM6_TMM7 = 295,
- R16 = 296,
- R17 = 297,
- R18 = 298,
- R19 = 299,
- R20 = 300,
- R21 = 301,
- R22 = 302,
- R23 = 303,
- R24 = 304,
- R25 = 305,
- R26 = 306,
- R27 = 307,
- R28 = 308,
- R29 = 309,
- R30 = 310,
- R31 = 311,
- R16B = 312,
- R17B = 313,
- R18B = 314,
- R19B = 315,
- R20B = 316,
- R21B = 317,
- R22B = 318,
- R23B = 319,
- R24B = 320,
- R25B = 321,
- R26B = 322,
- R27B = 323,
- R28B = 324,
- R29B = 325,
- R30B = 326,
- R31B = 327,
- R16BH = 328,
- R17BH = 329,
- R18BH = 330,
- R19BH = 331,
- R20BH = 332,
- R21BH = 333,
- R22BH = 334,
- R23BH = 335,
- R24BH = 336,
- R25BH = 337,
- R26BH = 338,
- R27BH = 339,
- R28BH = 340,
- R29BH = 341,
- R30BH = 342,
- R31BH = 343,
- R16D = 344,
- R17D = 345,
- R18D = 346,
- R19D = 347,
- R20D = 348,
- R21D = 349,
- R22D = 350,
- R23D = 351,
- R24D = 352,
- R25D = 353,
- R26D = 354,
- R27D = 355,
- R28D = 356,
- R29D = 357,
- R30D = 358,
- R31D = 359,
- R16W = 360,
- R17W = 361,
- R18W = 362,
- R19W = 363,
- R20W = 364,
- R21W = 365,
- R22W = 366,
- R23W = 367,
- R24W = 368,
- R25W = 369,
- R26W = 370,
- R27W = 371,
- R28W = 372,
- R29W = 373,
- R30W = 374,
- R31W = 375,
- R16WH = 376,
- R17WH = 377,
- R18WH = 378,
- R19WH = 379,
- R20WH = 380,
- R21WH = 381,
- R22WH = 382,
- R23WH = 383,
- R24WH = 384,
- R25WH = 385,
- R26WH = 386,
- R27WH = 387,
- R28WH = 388,
- R29WH = 389,
- R30WH = 390,
- R31WH = 391,
- NUM_TARGET_REGS = 392,
+ R16 = 292,
+ R17 = 293,
+ R18 = 294,
+ R19 = 295,
+ R20 = 296,
+ R21 = 297,
+ R22 = 298,
+ R23 = 299,
+ R24 = 300,
+ R25 = 301,
+ R26 = 302,
+ R27 = 303,
+ R28 = 304,
+ R29 = 305,
+ R30 = 306,
+ R31 = 307,
+ R16B = 308,
+ R17B = 309,
+ R18B = 310,
+ R19B = 311,
+ R20B = 312,
+ R21B = 313,
+ R22B = 314,
+ R23B = 315,
+ R24B = 316,
+ R25B = 317,
+ R26B = 318,
+ R27B = 319,
+ R28B = 320,
+ R29B = 321,
+ R30B = 322,
+ R31B = 323,
+ R16BH = 324,
+ R17BH = 325,
+ R18BH = 326,
+ R19BH = 327,
+ R20BH = 328,
+ R21BH = 329,
+ R22BH = 330,
+ R23BH = 331,
+ R24BH = 332,
+ R25BH = 333,
+ R26BH = 334,
+ R27BH = 335,
+ R28BH = 336,
+ R29BH = 337,
+ R30BH = 338,
+ R31BH = 339,
+ R16D = 340,
+ R17D = 341,
+ R18D = 342,
+ R19D = 343,
+ R20D = 344,
+ R21D = 345,
+ R22D = 346,
+ R23D = 347,
+ R24D = 348,
+ R25D = 349,
+ R26D = 350,
+ R27D = 351,
+ R28D = 352,
+ R29D = 353,
+ R30D = 354,
+ R31D = 355,
+ R16W = 356,
+ R17W = 357,
+ R18W = 358,
+ R19W = 359,
+ R20W = 360,
+ R21W = 361,
+ R22W = 362,
+ R23W = 363,
+ R24W = 364,
+ R25W = 365,
+ R26W = 366,
+ R27W = 367,
+ R28W = 368,
+ R29W = 369,
+ R30W = 370,
+ R31W = 371,
+ R16WH = 372,
+ R17WH = 373,
+ R18WH = 374,
+ R19WH = 375,
+ R20WH = 376,
+ R21WH = 377,
+ R22WH = 378,
+ R23WH = 379,
+ R24WH = 380,
+ R25WH = 381,
+ R26WH = 382,
+ R27WH = 383,
+ R28WH = 384,
+ R29WH = 385,
+ R30WH = 386,
+ R31WH = 387,
+ NUM_TARGET_REGS = 388,
};
}
diff --git a/deps/LIEF/include/LIEF/canbe_unique.hpp b/deps/LIEF/include/LIEF/canbe_unique.hpp
index 288fcc80db3..2bc6b75314f 100644
--- a/deps/LIEF/include/LIEF/canbe_unique.hpp
+++ b/deps/LIEF/include/LIEF/canbe_unique.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2024 - 2025 R. Thomas
+/* Copyright 2024 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -45,18 +45,15 @@ class canbe_unique {
canbe_unique(T& ptr) :
ptr_(&ptr),
- owned_(false)
- {}
+ owned_(false) {}
canbe_unique(const T& ptr) :
ptr_(const_cast<T*>(&ptr)),
- owned_(false)
- {}
+ owned_(false) {}
canbe_unique(std::unique_ptr<T> unique_ptr) :
ptr_(unique_ptr.release()),
- owned_(true)
- {}
+ owned_(true) {}
T* get() {
return ptr_;
diff --git a/deps/LIEF/include/LIEF/compiler_attributes.hpp b/deps/LIEF/include/LIEF/compiler_attributes.hpp
index c01246514dc..1e1a353288b 100644
--- a/deps/LIEF/include/LIEF/compiler_attributes.hpp
+++ b/deps/LIEF/include/LIEF/compiler_attributes.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,40 +15,69 @@
#ifndef LIEF_COMPILER_ATTR_H
#define LIEF_COMPILER_ATTR_H
+
#if !defined(_MSC_VER)
-# if __cplusplus >= 201103L
-# define LIEF_CPP11
-# if __cplusplus >= 201402L
-# define LIEF_CPP14
-# if __cplusplus >= 201703L
-# define LIEF_CPP17
-# if __cplusplus >= 202002L
-# define LIEF_CPP20
-# endif
-# endif
-# endif
-# endif
+ #if __cplusplus >= 201103L
+ #define LIEF_CPP11
+ #if __cplusplus >= 201402L
+ #define LIEF_CPP14
+ #if __cplusplus >= 201703L
+ #define LIEF_CPP17
+ #if __cplusplus >= 202002L
+ #define LIEF_CPP20
+ #endif
+ #endif
+ #endif
+ #endif
#elif defined(_MSC_VER)
-# if _MSVC_LANG >= 201103L
-# define LIEF_CPP11
-# if _MSVC_LANG >= 201402L
-# define LIEF_CPP14
-# if _MSVC_LANG > 201402L
-# define LIEF_CPP17
-# if _MSVC_LANG >= 202002L
-# define LIEF_CPP20
-# endif
-# endif
-# endif
-# endif
+ #if _MSVC_LANG >= 201103L
+ #define LIEF_CPP11
+ #if _MSVC_LANG >= 201402L
+ #define LIEF_CPP14
+ #if _MSVC_LANG > 201402L
+ #define LIEF_CPP17
+ #if _MSVC_LANG >= 202002L
+ #define LIEF_CPP20
+ #endif
+ #endif
+ #endif
+ #endif
#endif
#if defined(__MINGW32__)
-# define LIEF_DEPRECATED(reason)
+ #define LIEF_DEPRECATED(reason)
#elif defined(LIEF_CPP14)
-# define LIEF_DEPRECATED(reason) [[deprecated(reason)]]
+ #define LIEF_DEPRECATED(reason) [[deprecated(reason)]]
+#else
+ #define LIEF_DEPRECATED(reason) __attribute__((deprecated(reason)))
+#endif
+
+#if defined(LIEF_CPP17)
+ #define LIEF_MAYBE_UNUSED [[maybe_unused]]
+#elif defined(__GNUC__) || defined(__clang__)
+ #define LIEF_MAYBE_UNUSED __attribute__((unused))
+#elif defined(_MSC_VER)
+ #define LIEF_MAYBE_UNUSED __pragma(warning(suppress : 4100 4101))
+#else
+ #define LIEF_MAYBE_UNUSED
+#endif
+
+#if defined(__has_cpp_attribute)
+ #if __has_cpp_attribute(clang::lifetimebound)
+ #define LIEF_LIFETIMEBOUND [[clang::lifetimebound]]
+ #else
+ #define LIEF_LIFETIMEBOUND
+ #endif
+#else
+ #define LIEF_LIFETIMEBOUND
+#endif
+
+#if defined(__cpp_lib_ranges) && __cpp_lib_ranges >= 201911L
+ #include <ranges>
+ #define LIEF_HAS_STD_RANGES 1
#else
-# define LIEF_DEPRECATED(reason) __attribute__((deprecated(reason)))
+ #define LIEF_HAS_STD_RANGES 0
#endif
+
#endif
diff --git a/deps/LIEF/include/LIEF/config.h b/deps/LIEF/include/LIEF/config.h
index d68bc65906a..d8dfbf1ef04 100644
--- a/deps/LIEF/include/LIEF/config.h
+++ b/deps/LIEF/include/LIEF/config.h
@@ -1,5 +1,5 @@
/* Copyright 2017 - 2021 A. Guinet
- * Copyright 2017 - 2025 Quarkslab
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,6 +17,8 @@
#ifndef LIEF_CONFIG_H
#define LIEF_CONFIG_H
+// clang-format off
+
// Main formats
#define LIEF_PE_SUPPORT 1
#define LIEF_ELF_SUPPORT 1
@@ -37,6 +39,7 @@
/* #undef LIEF_EXTENDED */
// LIEF options
+/* #undef LIEF_RUNTIME_SUPPORT */
/* #undef LIEF_JSON_SUPPORT */
/* #undef LIEF_LOGGING_SUPPORT */
/* #undef LIEF_LOGGING_DEBUG */
@@ -66,12 +69,13 @@ static constexpr bool lief_debug_info = 0;
static constexpr bool lief_objc = 0;
static constexpr bool lief_extended = 0;
+static constexpr bool lief_runtime_support = 0;
static constexpr bool lief_json_support = 0;
static constexpr bool lief_logging_support = 0;
static constexpr bool lief_logging_debug = 0;
static constexpr bool lief_frozen_enabled = 1;
-#endif // __cplusplus
+#endif
#endif
diff --git a/deps/LIEF/include/LIEF/config.h.in b/deps/LIEF/include/LIEF/config.h.in
index 5bc355ff181..0600af18ebc 100644
--- a/deps/LIEF/include/LIEF/config.h.in
+++ b/deps/LIEF/include/LIEF/config.h.in
@@ -1,5 +1,5 @@
/* Copyright 2017 - 2021 A. Guinet
- * Copyright 2017 - 2025 Quarkslab
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,6 +17,8 @@
#ifndef LIEF_CONFIG_H
#define LIEF_CONFIG_H
+// clang-format off
+
// Main formats
#cmakedefine LIEF_PE_SUPPORT @LIEF_PE_SUPPORT@
#cmakedefine LIEF_ELF_SUPPORT @LIEF_ELF_SUPPORT@
@@ -37,6 +39,7 @@
#cmakedefine LIEF_EXTENDED @LIEF_EXTENDED@
// LIEF options
+#cmakedefine LIEF_RUNTIME_SUPPORT @LIEF_RUNTIME_SUPPORT@
#cmakedefine LIEF_JSON_SUPPORT @ENABLE_JSON_SUPPORT@
#cmakedefine LIEF_LOGGING_SUPPORT @LIEF_LOGGING_SUPPORT@
#cmakedefine LIEF_LOGGING_DEBUG @LIEF_LOGGING_DEBUG_SUPPORT@
@@ -66,12 +69,13 @@ static constexpr bool lief_debug_info = @LIEF_DEBUG_INFO_SUPPORT@;
static constexpr bool lief_objc = @LIEF_OBJC_SUPPORT@;
static constexpr bool lief_extended = @LIEF_EXTENDED@;
+static constexpr bool lief_runtime_support = @LIEF_RUNTIME_SUPPORT@;
static constexpr bool lief_json_support = @LIEF_JSON_SUPPORT@;
static constexpr bool lief_logging_support = @LIEF_LOGGING_SUPPORT@;
static constexpr bool lief_logging_debug = @LIEF_LOGGING_DEBUG_SUPPORT@;
static constexpr bool lief_frozen_enabled = @LIEF_FROZEN_ENABLED@;
-#endif // __cplusplus
+#endif
#endif
diff --git a/deps/LIEF/include/LIEF/debug_loc.hpp b/deps/LIEF/include/LIEF/debug_loc.hpp
index 8764f7c77a5..f984356f809 100644
--- a/deps/LIEF/include/LIEF/debug_loc.hpp
+++ b/deps/LIEF/include/LIEF/debug_loc.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/endianness_support.hpp b/deps/LIEF/include/LIEF/endianness_support.hpp
index 216a35876f8..e9f0a3355ec 100644
--- a/deps/LIEF/include/LIEF/endianness_support.hpp
+++ b/deps/LIEF/include/LIEF/endianness_support.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,9 +19,9 @@
#include "LIEF/config.h"
#include "LIEF/visibility.h"
-#define LIEF_ENDIAN_SUPPORT(X) \
- template<> \
- LIEF_API void swap_endian<X>(X* hdr)
+#define LIEF_ENDIAN_SUPPORT(X) \
+ template<> \
+ LIEF_API void swap_endian<X>(X * hdr)
namespace LIEF {
@@ -83,6 +83,7 @@ struct mach_header;
struct mach_header_64;
struct nlist_32;
struct nlist_64;
+struct note_command;
struct prebind_cksum_command;
struct prebound_dylib_command;
struct relocation_info;
@@ -114,8 +115,7 @@ struct ppc_thread_state64_t;
}
template<typename T>
-void swap_endian(T*) {
-}
+void swap_endian(T*) {}
template<typename T>
T get_swapped_endian(const T& other) {
@@ -137,7 +137,7 @@ LIEF_ENDIAN_SUPPORT(int16_t);
LIEF_ENDIAN_SUPPORT(int32_t);
LIEF_ENDIAN_SUPPORT(int64_t);
-#if defined (LIEF_ELF_SUPPORT)
+#if defined(LIEF_ELF_SUPPORT)
LIEF_ENDIAN_SUPPORT(ELF::details::Elf32_Auxv);
LIEF_ENDIAN_SUPPORT(ELF::details::Elf32_Dyn);
LIEF_ENDIAN_SUPPORT(ELF::details::Elf32_Ehdr);
@@ -166,7 +166,7 @@ LIEF_ENDIAN_SUPPORT(ELF::details::Elf64_Vernaux);
LIEF_ENDIAN_SUPPORT(ELF::details::Elf64_Verneed);
#endif
-#if defined (LIEF_MACHO_SUPPORT)
+#if defined(LIEF_MACHO_SUPPORT)
LIEF_ENDIAN_SUPPORT(MachO::details::arm_thread_state64_t);
LIEF_ENDIAN_SUPPORT(MachO::details::arm_thread_state_t);
LIEF_ENDIAN_SUPPORT(MachO::details::build_tool_version);
@@ -192,6 +192,7 @@ LIEF_ENDIAN_SUPPORT(MachO::details::mach_header);
LIEF_ENDIAN_SUPPORT(MachO::details::mach_header_64);
LIEF_ENDIAN_SUPPORT(MachO::details::nlist_32);
LIEF_ENDIAN_SUPPORT(MachO::details::nlist_64);
+LIEF_ENDIAN_SUPPORT(MachO::details::note_command);
LIEF_ENDIAN_SUPPORT(MachO::details::prebind_cksum_command);
LIEF_ENDIAN_SUPPORT(MachO::details::prebound_dylib_command);
LIEF_ENDIAN_SUPPORT(MachO::details::relocation_info);
@@ -223,4 +224,4 @@ LIEF_ENDIAN_SUPPORT(MachO::details::ppc_thread_state_t);
}
-#endif // LIEF_CONVERT_H
+#endif
diff --git a/deps/LIEF/include/LIEF/enums.hpp b/deps/LIEF/include/LIEF/enums.hpp
index ce370585baa..7c8d999d252 100644
--- a/deps/LIEF/include/LIEF/enums.hpp
+++ b/deps/LIEF/include/LIEF/enums.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,75 +17,67 @@
#define LIEF_ENUMS_H
#include <type_traits>
-#define _LIEF_EN(N) class N : size_t
+#define _LIEF_EN(N) class N : size_t
#define _LIEF_EN_2(N, TYPE) class N : TYPE
-#define _LIEF_EI(X) X
+#define _LIEF_EI(X) X
-#define ENABLE_BITMASK_OPERATORS(X) \
-template<> \
-struct EnableBitMaskOperators<X> \
-{ \
- static const bool bit_mask_enabled = true; \
-}
+#define ENABLE_BITMASK_OPERATORS(X) \
+ template<> \
+ struct EnableBitMaskOperators<X> { \
+ static const bool bit_mask_enabled = true; \
+ }
template<typename Enum>
-struct EnableBitMaskOperators
-{
+struct EnableBitMaskOperators {
static const bool bit_mask_enabled = false;
};
template<typename Enum>
typename std::enable_if<EnableBitMaskOperators<Enum>::bit_mask_enabled, Enum>::type
-operator |(Enum lhs, Enum rhs)
-{
- using underlying = typename std::underlying_type<Enum>::type;
- return static_cast<Enum> (
- static_cast<underlying>(lhs) |
- static_cast<underlying>(rhs)
- );
+ operator|(Enum lhs, Enum rhs) {
+ using underlying = typename std::underlying_type<Enum>::type;
+ return static_cast<Enum>(static_cast<underlying>(lhs) |
+ static_cast<underlying>(rhs));
}
template<typename Enum>
typename std::enable_if<EnableBitMaskOperators<Enum>::bit_mask_enabled, Enum>::type
-operator &(Enum lhs, Enum rhs)
-{
- using underlying = typename std::underlying_type<Enum>::type;
- return static_cast<Enum> (
- static_cast<underlying>(lhs) &
- static_cast<underlying>(rhs)
- );
+ operator&(Enum lhs, Enum rhs) {
+ using underlying = typename std::underlying_type<Enum>::type;
+ return static_cast<Enum>(static_cast<underlying>(lhs) &
+ static_cast<underlying>(rhs));
}
template<typename Enum>
typename std::enable_if<EnableBitMaskOperators<Enum>::bit_mask_enabled, Enum>::type
-operator ~(Enum e)
-{
- using underlying = typename std::underlying_type<Enum>::type;
- return static_cast<Enum>(~static_cast<underlying>(e));
+ operator~(Enum e) {
+ using underlying = typename std::underlying_type<Enum>::type;
+ return static_cast<Enum>(~static_cast<underlying>(e));
}
template<typename Enum>
-typename std::enable_if<EnableBitMaskOperators<Enum>::bit_mask_enabled, typename std::add_lvalue_reference<Enum>::type>::type
-operator |=(Enum& lhs, Enum rhs)
-{
- using underlying = typename std::underlying_type<Enum>::type;
- lhs = static_cast<Enum>(static_cast<underlying>(lhs) | static_cast<underlying>(rhs));
- return lhs;
+typename std::enable_if<EnableBitMaskOperators<Enum>::bit_mask_enabled,
+ typename std::add_lvalue_reference<Enum>::type>::type
+ operator|=(Enum& lhs, Enum rhs) {
+ using underlying = typename std::underlying_type<Enum>::type;
+ lhs = static_cast<Enum>(static_cast<underlying>(lhs) |
+ static_cast<underlying>(rhs));
+ return lhs;
}
template<typename Enum>
-typename std::enable_if<EnableBitMaskOperators<Enum>::bit_mask_enabled, typename std::add_lvalue_reference<Enum>::type>::type
-operator &=(Enum& lhs, Enum rhs)
-{
- using underlying = typename std::underlying_type<Enum>::type;
- lhs = static_cast<Enum>(static_cast<underlying>(lhs) & static_cast<underlying>(rhs));
- return lhs;
+typename std::enable_if<EnableBitMaskOperators<Enum>::bit_mask_enabled,
+ typename std::add_lvalue_reference<Enum>::type>::type
+ operator&=(Enum& lhs, Enum rhs) {
+ using underlying = typename std::underlying_type<Enum>::type;
+ lhs = static_cast<Enum>(static_cast<underlying>(lhs) &
+ static_cast<underlying>(rhs));
+ return lhs;
}
template<typename Enum>
typename std::enable_if<EnableBitMaskOperators<Enum>::bit_mask_enabled, bool>::type
-is_true(Enum e)
-{
+ is_true(Enum e) {
using underlying = typename std::underlying_type<Enum>::type;
return static_cast<underlying>(e) > 0;
}
diff --git a/deps/LIEF/include/LIEF/errors.hpp b/deps/LIEF/include/LIEF/errors.hpp
index 47ad02890ee..9056422caa9 100644
--- a/deps/LIEF/include/LIEF/errors.hpp
+++ b/deps/LIEF/include/LIEF/errors.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,9 @@
#ifndef LIEF_ERROR_H
#define LIEF_ERROR_H
#include <cstdint>
+#include <string>
+#include <LIEF/compiler_attributes.hpp>
#include <LIEF/third-party/expected.hpp>
-#include <cstdint>
/// LIEF error codes definition
enum class lief_errors : uint32_t {
@@ -38,7 +39,9 @@ enum class lief_errors : uint32_t {
build_error,
data_too_large,
- require_extended_version
+ require_extended_version,
+ inconsistent,
+ runtime_error,
/*
* When adding a new error, do not forget
* to update the Python bindings as well (pyErr.cpp) and Rust bindings:
@@ -48,7 +51,7 @@ enum class lief_errors : uint32_t {
const char* to_string(lief_errors err);
-/// Create an standard error code from lief_errors
+/// Create a standard error code from lief_errors
inline tl::unexpected<lief_errors> make_error_code(lief_errors e) {
return tl::make_unexpected(e);
}
@@ -57,24 +60,28 @@ inline tl::unexpected<lief_errors> make_error_code(lief_errors e) {
namespace LIEF {
/// Wrapper that contains an Object (``T``) or an error
///
-/// The tl/expected implementation exposes the method ``value()`` to access the underlying object (if no error)
+/// The tl/expected implementation exposes the method ``value()`` to access the
+/// underlying object (if no error)
///
/// Typical usage is:
///
-/// \code{.cpp}
+/// @code{.cpp}
/// result<int> intval = my_function();
/// if (intval) {
/// int val = intval.value();
/// } else { // There is an error
/// std::cout << get_error(intval).message() << "\n";
/// }
-/// \endcode
+/// @endcode
///
/// See https://tl.tartanllama.xyz/en/latest/api/expected.html for more details
template<typename T>
- class [[maybe_unused]]result : public tl::expected<T, lief_errors> {
+class LIEF_MAYBE_UNUSED result : public tl::expected<T, lief_errors> {
public:
+ using ExpectedType = T;
using tl::expected<T, lief_errors>::expected;
+ result(tl::expected<T, lief_errors> e) :
+ tl::expected<T, lief_errors>::expected(std::move(e)) {}
};
/// Get the error code associated with the result
@@ -101,15 +108,15 @@ inline ok_t ok() {
/// writing ``result<void> f(...)``. Instead, it makes the output
/// explicit such as:
///
-/// \code{.cpp}
+/// @code{.cpp}
/// ok_error_t process() {
/// if (fail) {
/// return make_error_code(...);
/// }
/// return ok();
/// }
-/// \endcode
-class [[maybe_unused]] ok_error_t : public result<ok_t> {
+/// @endcode
+class LIEF_MAYBE_UNUSED ok_error_t : public result<ok_t> {
public:
using result<ok_t>::result;
};
@@ -124,8 +131,13 @@ inline bool is_err(const ok_error_t& val) {
}
-
-
-
+extern template class tl::expected<LIEF::ok_t, lief_errors>;
+extern template class LIEF::result<LIEF::ok_t>;
+extern template class tl::expected<uint64_t, lief_errors>;
+extern template class LIEF::result<uint64_t>;
+extern template class tl::expected<uint32_t, lief_errors>;
+extern template class LIEF::result<uint32_t>;
+extern template class tl::expected<std::string, lief_errors>;
+extern template class LIEF::result<std::string>;
#endif
diff --git a/deps/LIEF/include/LIEF/hash.hpp b/deps/LIEF/include/LIEF/hash.hpp
index 25d18b83363..0177f6e3891 100644
--- a/deps/LIEF/include/LIEF/hash.hpp
+++ b/deps/LIEF/include/LIEF/hash.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -56,7 +56,8 @@ class LIEF_API Hash : public Visitor {
virtual Hash& process(const std::vector<uint8_t>& raw);
virtual Hash& process(span<const uint8_t> raw);
- template<class T, typename = typename std::enable_if<std::is_enum<T>::value>::type>
+ template<class T,
+ typename = typename std::enable_if<std::is_enum<T>::value>::type>
Hash& process(T v) {
return process(static_cast<value_type>(v));
}
@@ -116,7 +117,6 @@ class LIEF_API Hash : public Visitor {
protected:
value_type value_ = 0;
-
};
LIEF_API Hash::value_type hash(const Object& v);
diff --git a/deps/LIEF/include/LIEF/iostream.hpp b/deps/LIEF/include/LIEF/iostream.hpp
index e02798d7745..f5c6763ce39 100644
--- a/deps/LIEF/include/LIEF/iostream.hpp
+++ b/deps/LIEF/include/LIEF/iostream.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,12 +23,13 @@
#include <vector>
#include <array>
+#include "LIEF/visibility.h"
#include "LIEF/span.hpp"
#include "LIEF/optional.hpp"
#include "LIEF/endianness_support.hpp"
namespace LIEF {
-class vector_iostream {
+class LIEF_API vector_iostream {
public:
static size_t uleb128_size(uint64_t value);
static size_t sleb128_size(int64_t value);
@@ -36,23 +37,22 @@ class vector_iostream {
using pos_type = std::streampos;
using off_type = std::streamoff;
enum class RELOC_OP {
- ADD, SUB
+ ADD,
+ SUB,
};
vector_iostream() = default;
vector_iostream(std::vector<uint8_t>& ref) :
- raw_(&ref)
- {}
+ raw_(&ref) {}
vector_iostream(bool endian_swap) :
- endian_swap_(endian_swap)
- {}
+ endian_swap_(endian_swap) {}
- vector_iostream& reserve(size_t size) {
+ vector_iostream& reserve(size_t size) LIEF_LIFETIMEBOUND {
raw_->reserve(size);
return *this;
}
- vector_iostream& increase_capacity(size_t size) {
+ vector_iostream& increase_capacity(size_t size) LIEF_LIFETIMEBOUND {
raw_->reserve(raw_->size() + size);
return *this;
}
@@ -63,7 +63,7 @@ class vector_iostream {
return write(sp.data(), sp.size());
}
- vector_iostream& write(std::vector<uint8_t> s) {
+ vector_iostream& write(const std::vector<uint8_t>& s) {
if (s.empty()) {
return *this;
}
@@ -94,7 +94,9 @@ class vector_iostream {
return write(other.data());
}
- template<class T, typename = typename std::enable_if<std::is_standard_layout<T>::value && std::is_trivial<T>::value>::type>
+ template<class T,
+ typename = typename std::enable_if<std::is_standard_layout<T>::value &&
+ std::is_trivial<T>::value>::type>
vector_iostream& write(const T& t) {
const auto pos = static_cast<size_t>(tellp());
if (raw_->size() < (pos + sizeof(T))) {
@@ -111,7 +113,7 @@ class vector_iostream {
return *this;
}
- vector_iostream& align(size_t alignment, uint8_t fill = 0);
+ vector_iostream& align(size_t alignment, uint8_t fill = 0) LIEF_LIFETIMEBOUND;
template<typename T>
vector_iostream& write(const std::pair<T, T>& p) {
@@ -142,8 +144,8 @@ class vector_iostream {
return opt ? write<T>(*opt) : *this;
}
- vector_iostream& write_uleb128(uint64_t value);
- vector_iostream& write_sleb128(int64_t value);
+ vector_iostream& write_uleb128(uint64_t value) LIEF_LIFETIMEBOUND;
+ vector_iostream& write_sleb128(int64_t value) LIEF_LIFETIMEBOUND;
vector_iostream& get(std::vector<uint8_t>& c) {
c = *raw_;
@@ -172,11 +174,11 @@ class vector_iostream {
return *this;
}
- vector_iostream& seek_end() {
+ vector_iostream& seek_end() LIEF_LIFETIMEBOUND {
return seekp(raw_->size());
}
- vector_iostream& pad(size_t size, uint8_t value = 0) {
+ vector_iostream& pad(size_t size, uint8_t value = 0) LIEF_LIFETIMEBOUND {
raw_->resize(raw_->size() + size, value);
return *this;
}
@@ -248,15 +250,17 @@ class vector_iostream {
template<class T>
T* edit_as() {
- assert(((size_t)current_pos_ + sizeof(T)) <= raw_->size());
+ const auto end = static_cast<size_t>(current_pos_) + sizeof(T);
+ if (raw_->size() < end) {
+ return nullptr;
+ }
return reinterpret_cast<T*>(raw_->data() + current_pos_);
}
template<class T>
T* edit_as(size_t pos) {
seekp(pos);
- assert(((size_t)current_pos_ + sizeof(T)) <= raw_->size());
- return reinterpret_cast<T*>(raw_->data() + current_pos_);
+ return edit_as<T>();
}
const vector_iostream& copy_into(const span<uint8_t>& sp, size_t sz) const {
@@ -317,15 +321,13 @@ class ScopeOStream {
explicit ScopeOStream(vector_iostream& stream, uint64_t pos) :
pos_{stream.tellp()},
- stream_{stream}
- {
+ stream_{stream} {
stream_.seekp(pos);
}
explicit ScopeOStream(vector_iostream& stream) :
pos_{stream.tellp()},
- stream_{stream}
- {}
+ stream_{stream} {}
~ScopeOStream() {
stream_.seekp(pos_);
@@ -349,6 +351,5 @@ class ScopeOStream {
};
-
}
#endif
diff --git a/deps/LIEF/include/LIEF/iterators.hpp b/deps/LIEF/include/LIEF/iterators.hpp
index 525396c4386..137f1607915 100644
--- a/deps/LIEF/include/LIEF/iterators.hpp
+++ b/deps/LIEF/include/LIEF/iterators.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
* Copyright 2017 - 2021, NVIDIA CORPORATION. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -16,7 +16,6 @@
*/
#ifndef LIEF_ITERATORS_H
#define LIEF_ITERATORS_H
-#include <cmath>
#include <cstddef>
#include <cassert>
#include <iterator>
@@ -25,6 +24,8 @@
#include <type_traits>
#include <vector>
+#include <LIEF/compiler_attributes.hpp>
+
namespace LIEF {
template<class T>
@@ -36,7 +37,7 @@ using add_const_t = typename std::add_const<T>::type;
template<class T>
using remove_const_t = typename std::remove_const<T>::type;
-template< class T >
+template<class T>
using add_lvalue_reference_t = typename std::add_lvalue_reference<T>::type;
@@ -44,6 +45,9 @@ using add_lvalue_reference_t = typename std::add_lvalue_reference<T>::type;
template<class T, typename U = typename decay_t<T>::value_type,
class ITERATOR_T = typename decay_t<T>::iterator>
class ref_iterator {
+ template<class, typename, class>
+ friend class ref_iterator;
+
public:
using iterator_category = std::bidirectional_iterator_tag;
using value_type = decay_t<U>;
@@ -51,41 +55,88 @@ class ref_iterator {
using pointer = typename std::remove_pointer<U>::type*;
using reference = typename std::remove_pointer<U>::type&;
- using container_type = T; // e.g. std::vector<Section*>&
- using DT_VAL = U; // e.g. Section*
- using DT = decay_t<T>; // e.g. std::vector<Section>
- using ref_t = typename ref_iterator::reference;
- using pointer_t = typename ref_iterator::pointer;
+ using container_type = T; // e.g. std::vector<Section*>&
+ using DT_VAL = U; // e.g. Section*
+ using DT = decay_t<T>; // e.g. std::vector<Section>
+ using ref_t = typename ref_iterator::reference;
+ using pointer_t = typename ref_iterator::pointer;
- ref_iterator(T container) :
- container_{std::forward<T>(container)}
- {
- it_ = std::begin(container_);
+ ref_iterator(ref_iterator&& other) noexcept :
+ container_{std::forward<T>(other.container_)},
+ it_{std::begin(container_)},
+ distance_{other.distance_} {
+ std::advance(it_, distance_);
}
+ ref_iterator& operator=(ref_iterator&& other) noexcept {
+ if (other == &this) {
+ return *this;
+ }
+ container_ = std::forward<T>(other.container_);
+ it_ = std::begin(other.container_);
+ distance_ = other.distance_;
+ std::advance(it_, distance_);
+ return *this;
+ }
+
+ template<class T2, typename U2, class IT2,
+ typename = typename std::enable_if<
+ !std::is_same<ref_iterator, ref_iterator<T2, U2, IT2>>::value &&
+ std::is_same<decay_t<T>, decay_t<T2>>::value
+ >::type>
+ ref_iterator(const ref_iterator<T2, U2, IT2>& other) :
+ container_{
+ const_cast<add_lvalue_reference_t<remove_const_t<DT>>>(other.container_)
+ },
+ it_{std::begin(container_)},
+ distance_{other.distance_} {
+ std::advance(it_, distance_);
+ }
+
+ template<class T2, typename U2, class IT2,
+ typename = typename std::enable_if<
+ !std::is_same<ref_iterator, ref_iterator<T2, U2, IT2>>::value &&
+ std::is_same<decay_t<T>, decay_t<T2>>::value
+ >::type>
+ // NOLINTNEXTLINE(cppcoreguidelines-rvalue-reference-param-not-moved)
+ ref_iterator(ref_iterator<T2, U2, IT2>&& other) noexcept :
+ container_{const_cast<add_lvalue_reference_t<remove_const_t<DT>>>(
+ std::forward<T2>(other.container_)
+ )},
+ it_{std::begin(container_)},
+ distance_{other.distance_} {
+ std::advance(it_, distance_);
+ }
+
+ ~ref_iterator() = default;
+
+ ref_iterator(T container) :
+ container_{std::forward<T>(container)},
+ it_(std::begin(container_)) {}
+
ref_iterator(const ref_iterator& copy) :
container_{copy.container_},
it_{std::begin(container_)},
- distance_{copy.distance_}
- {
+ distance_{copy.distance_} {
std::advance(it_, distance_);
}
-
- ref_iterator& operator=(ref_iterator other) {
+ ref_iterator& operator=(ref_iterator other) LIEF_LIFETIMEBOUND {
swap(other);
return *this;
}
void swap(ref_iterator& other) noexcept {
- std::swap(const_cast<add_lvalue_reference_t<remove_const_t<DT>>>(container_),
- const_cast<add_lvalue_reference_t<remove_const_t<DT>>>(other.container_));
+ std::swap(
+ const_cast<add_lvalue_reference_t<remove_const_t<DT>>>(container_),
+ const_cast<add_lvalue_reference_t<remove_const_t<DT>>>(other.container_)
+ );
std::swap(it_, other.it_);
std::swap(distance_, other.distance_);
}
- ref_iterator& operator++() {
+ ref_iterator& operator++() LIEF_LIFETIMEBOUND {
it_ = std::next(it_);
distance_++;
return *this;
@@ -97,7 +148,7 @@ class ref_iterator {
return retval;
}
- ref_iterator& operator--() {
+ ref_iterator& operator--() LIEF_LIFETIMEBOUND {
if (it_ != std::begin(container_)) {
it_ = std::prev(it_);
distance_--;
@@ -112,21 +163,28 @@ class ref_iterator {
}
- ref_iterator& operator+=(const typename ref_iterator::difference_type& movement) {
+ ref_iterator& operator+=(
+ const typename ref_iterator::difference_type& movement
+ ) LIEF_LIFETIMEBOUND {
std::advance(it_, movement);
distance_ += movement;
return *this;
}
- ref_iterator& operator-=(const typename ref_iterator::difference_type& movement) {
+ ref_iterator& operator-=(
+ const typename ref_iterator::difference_type& movement
+ ) LIEF_LIFETIMEBOUND {
return (*this) += -movement;
}
- typename std::enable_if<!std::is_const<ref_t>::value, remove_const_t<ref_t>>::type
- operator[](size_t n) {
- return const_cast<remove_const_t<ref_t>>(static_cast<const ref_iterator*>(this)->operator[](n));
+ typename std::enable_if<!std::is_const<ref_t>::value,
+ remove_const_t<ref_t>>::type
+ operator[](size_t n) {
+ return const_cast<remove_const_t<ref_t>>(
+ static_cast<const ref_iterator*>(this)->operator[](n)
+ );
}
@@ -135,7 +193,8 @@ class ref_iterator {
auto* no_const_this = const_cast<ref_iterator*>(this);
- typename ref_iterator::difference_type saved_dist = std::distance(std::begin(no_const_this->container_), no_const_this->it_);
+ typename ref_iterator::difference_type saved_dist =
+ std::distance(std::begin(no_const_this->container_), no_const_this->it_);
no_const_this->it_ = std::begin(no_const_this->container_);
std::advance(no_const_this->it_, n);
@@ -190,7 +249,7 @@ class ref_iterator {
return begin();
}
- ref_iterator end() const {
+ ref_iterator end() const {
ref_iterator it = ref_iterator{container_};
it.it_ = std::end(it.container_);
it.distance_ = it.size();
@@ -217,28 +276,33 @@ class ref_iterator {
return container_.empty();
}
- typename std::enable_if<!std::is_const<ref_t>::value, remove_const_t<ref_t>>::type
- operator*() {
- return const_cast<remove_const_t<ref_t>>(static_cast<const ref_iterator*>(this)->operator*());
+ typename std::enable_if<!std::is_const<ref_t>::value,
+ remove_const_t<ref_t>>::type
+ operator*() {
+ return const_cast<remove_const_t<ref_t>>(
+ static_cast<const ref_iterator*>(this)->operator*()
+ );
}
template<typename V = DT_VAL>
typename std::enable_if<std::is_pointer<V>::value, add_const_t<ref_t>>::type
- operator*() const {
+ operator*() const {
assert(*it_ && "integrity error: nullptr");
return const_cast<add_const_t<ref_t>>(static_cast<ref_t>(**it_));
}
template<typename V = DT_VAL>
typename std::enable_if<!std::is_pointer<V>::value, add_const_t<ref_t>>::type
- operator*() const {
+ operator*() const {
return const_cast<add_const_t<ref_t>>(*(it_));
}
typename std::enable_if<!std::is_const<pointer_t>::value, pointer_t>::type
- operator->() {
- return const_cast<remove_const_t<pointer_t>>(static_cast<const ref_iterator*>(this)->operator->());
+ operator->() {
+ return const_cast<remove_const_t<pointer_t>>(
+ static_cast<const ref_iterator*>(this)->operator->()
+ );
}
add_const_t<pointer_t> operator->() const {
@@ -252,12 +316,14 @@ class ref_iterator {
};
-/// Iterator which return const ref on container's values
-template<class T, typename U = typename decay_t<T>::value_type, class CT = typename std::add_const<T>::type>
-using const_ref_iterator = ref_iterator<CT, U, typename decay_t<CT>::const_iterator>;
+/// Iterator which returns a const ref on container's values
+template<class T, typename U = typename decay_t<T>::value_type,
+ class CT = typename std::add_const<T>::type>
+using const_ref_iterator =
+ ref_iterator<CT, U, typename decay_t<CT>::const_iterator>;
-/// Iterator which return a ref on container's values given predicates
+/// Iterator which returns a ref on container's values given predicates
template<class T, typename U = typename decay_t<T>::value_type,
class ITERATOR_T = typename decay_t<T>::iterator>
class filter_iterator {
@@ -270,24 +336,53 @@ class filter_iterator {
using reference = typename std::remove_pointer<U>::type&;
using container_type = T;
- using DT_VAL = U;
- using DT = decay_t<T>;
- using ref_t = typename filter_iterator::reference;
+ using DT_VAL = U;
+ using DT = decay_t<T>;
+ using ref_t = typename filter_iterator::reference;
using pointer_t = typename filter_iterator::pointer;
- using filter_t = std::function<bool (const typename DT::value_type&)>;
+ using filter_t = std::function<bool(const typename DT::value_type&)>;
+
+ filter_iterator(filter_iterator&& other) noexcept :
+ size_c_(other.size_c_),
+ size_cached_(other.size_cached_),
+ container_(std::forward<T>(other.container_)),
+ it_(std::begin(container_)),
+ filters_{std::move(other.filters_)},
+ distance_(other.distance_) {
+ std::advance(it_, distance_);
+ }
+
+ filter_iterator& operator=(filter_iterator&& other) noexcept {
+ if (this == &other) {
+ return *this;
+ }
+
+ size_c_ = other.size_c_;
+ size_cached_ = other.size_cached_;
+ container_ = std::forward<T>(other.container_);
+ it_ = std::begin(container_);
+ filters_ = std::move(other.filters_);
+ distance_ = other.distance_;
+
+ std::advance(it_, distance_);
+
+ return *this;
+ }
+
+ ~filter_iterator() = default;
filter_iterator(T container, filter_t filter) :
container_{std::forward<T>(container)},
- filters_{}
- {
+ it_(std::begin(container_)),
+ filters_{} {
- it_ = std::begin(container_);
- filters_.push_back(filter),
- it_ = std::begin(container_);
+ filters_.push_back(filter);
if (it_ != std::end(container_)) {
- if (!std::all_of(std::begin(filters_), std::end(filters_), [this] (const filter_t& f) {return f(*it_);})) {
+ if (!std::all_of(std::begin(filters_), std::end(filters_),
+ [this](const filter_t& f) { return f(*it_); }))
+ {
next();
}
}
@@ -295,13 +390,14 @@ class filter_iterator {
filter_iterator(T container, const std::vector<filter_t>& filters) :
container_{std::forward<T>(container)},
- filters_{filters}
- {
+ it_(std::begin(container_)),
+ filters_{filters} {
- it_ = std::begin(container_);
if (it_ != std::end(container_)) {
- if (!std::all_of(std::begin(filters_), std::end(filters_), [this] (const filter_t& f) {return f(*it_);})) {
+ if (!std::all_of(std::begin(filters_), std::end(filters_),
+ [this](const filter_t& f) { return f(*it_); }))
+ {
next();
}
}
@@ -309,41 +405,41 @@ class filter_iterator {
filter_iterator(T container) :
container_{std::forward<T>(container)},
- filters_{}
- {
- it_ = std::begin(container_);
- }
+ it_(std::begin(container_)),
+ filters_{} {}
filter_iterator(const filter_iterator& copy) :
container_{copy.container_},
it_{std::begin(container_)},
filters_{copy.filters_},
- distance_{copy.distance_}
- {
+ distance_{copy.distance_} {
std::advance(it_, distance_);
}
- filter_iterator& operator=(filter_iterator other) {
+ filter_iterator& operator=(filter_iterator other) LIEF_LIFETIMEBOUND {
swap(other);
return *this;
}
void swap(filter_iterator& other) noexcept {
- std::swap(const_cast<remove_const_t<DT>&>(container_), const_cast<remove_const_t<DT>&>(other.container_));
- std::swap(it_, other.it_);
- std::swap(filters_, other.filters_);
- std::swap(size_c_, other.size_c_);
- std::swap(distance_, other.distance_);
+ std::swap(const_cast<remove_const_t<DT>&>(container_),
+ const_cast<remove_const_t<DT>&>(other.container_));
+ std::swap(it_, other.it_);
+ std::swap(filters_, other.filters_);
+ std::swap(size_c_, other.size_c_);
+ std::swap(size_cached_, other.size_cached_);
+ std::swap(distance_, other.distance_);
}
- filter_iterator& def(filter_t func) {
+ filter_iterator& def(filter_t func) LIEF_LIFETIMEBOUND {
filters_.push_back(func);
size_c_ = 0;
+ size_cached_ = false;
return *this;
}
- filter_iterator& operator++() {
+ filter_iterator& operator++() LIEF_LIFETIMEBOUND {
next();
return *this;
}
@@ -366,7 +462,7 @@ class filter_iterator {
// we don't need filter for the end iterator
filter_iterator it_end{container_};
- it_end.it_ = it_end.container_.end();
+ it_end.it_ = it_end.container_.end();
it_end.distance_ = it_end.container_.size();
return it_end;
@@ -376,28 +472,34 @@ class filter_iterator {
return end();
}
- typename std::enable_if<!std::is_const<ref_t>::value, remove_const_t<ref_t>>::type
- operator*() {
- return const_cast<remove_const_t<ref_t>>(static_cast<const filter_iterator*>(this)->operator*());
+ typename std::enable_if<!std::is_const<ref_t>::value,
+ remove_const_t<ref_t>>::type
+ operator*() {
+ return const_cast<remove_const_t<ref_t>>(
+ static_cast<const filter_iterator*>(this)->operator*()
+ );
}
template<typename V = DT_VAL>
typename std::enable_if<std::is_pointer<V>::value, add_const_t<ref_t>>::type
- operator*() const {
+ operator*() const {
assert(*it_ && "integrity error: nullptr");
return const_cast<add_const_t<ref_t>>(static_cast<ref_t>(**it_));
}
template<typename V = DT_VAL>
typename std::enable_if<!std::is_pointer<V>::value, add_const_t<ref_t>>::type
- operator*() const {
+ operator*() const {
return const_cast<add_const_t<ref_t>>(*(it_));
}
- typename std::enable_if<!std::is_const<ref_t>::value, remove_const_t<ref_t>>::type
- operator[](size_t n) {
- return const_cast<remove_const_t<ref_t>>(static_cast<const filter_iterator*>(this)->operator[](n));
+ typename std::enable_if<!std::is_const<ref_t>::value,
+ remove_const_t<ref_t>>::type
+ operator[](size_t n) {
+ return const_cast<remove_const_t<ref_t>>(
+ static_cast<const filter_iterator*>(this)->operator[](n)
+ );
}
add_const_t<ref_t> operator[](size_t n) const {
@@ -410,8 +512,10 @@ class filter_iterator {
typename std::enable_if<!std::is_const<pointer_t>::value, pointer_t>::type
- operator->() {
- return const_cast<remove_const_t<pointer_t>>(static_cast<const filter_iterator*>(this)->operator->());
+ operator->() {
+ return const_cast<remove_const_t<pointer_t>>(
+ static_cast<const filter_iterator*>(this)->operator->()
+ );
}
add_const_t<pointer_t> operator->() const {
@@ -423,26 +527,38 @@ class filter_iterator {
return container_.size();
}
- if (size_c_ > 0) {
+ if (size_cached_) {
return size_c_;
}
filter_iterator it = begin();
size_t size = 0;
- auto end_iter = std::end(it);
- for (; it != end_iter; ++it) ++size;
+ auto end_iter = it.end();
+ for (; it != end_iter; ++it) {
+ ++size;
+ }
size_c_ = size;
+ size_cached_ = true;
return size_c_;
}
bool empty() const {
- return size() == 0;
+ if (filters_.empty()) {
+ return container_.empty();
+ }
+
+ if (size_cached_) {
+ return size_c_ == 0;
+ }
+
+ return begin() == end();
}
bool operator==(const filter_iterator& other) const {
- return (container_.size() == other.container_.size() && distance_ == other.distance_);
+ return (container_.size() == other.container_.size() &&
+ distance_ == other.distance_);
}
bool operator!=(const filter_iterator& other) const {
@@ -459,73 +575,117 @@ class filter_iterator {
do {
it_ = std::next(it_);
distance_++;
- } while(it_ != std::end(container_) &&
- !std::all_of(std::begin(filters_), std::end(filters_),
- [this] (const filter_t& f) { return f(*it_); }));
-
+ } while (it_ != std::end(container_) &&
+ !std::all_of(std::begin(filters_), std::end(filters_),
+ [this](const filter_t& f) { return f(*it_); }));
}
mutable size_t size_c_ = 0;
+ mutable bool size_cached_ = false;
T container_;
ITERATOR_T it_;
std::vector<filter_t> filters_;
typename filter_iterator::difference_type distance_ = 0;
};
-/// Iterator which return a const ref on container's values given predicates
+/// Iterator which returns a const ref on container's values given predicates
template<class T, typename U = typename decay_t<T>::value_type,
class CT = typename std::add_const<T>::type>
-using const_filter_iterator = filter_iterator<CT, U, typename decay_t<CT>::const_iterator>;
+using const_filter_iterator =
+ filter_iterator<CT, U, typename decay_t<CT>::const_iterator>;
// ----------------------------------------------------------------------------
// This part is taken from LLVM
// ----------------------------------------------------------------------------
-template <typename IteratorT>
+template<typename IteratorT>
class iterator_range {
public:
using IteratorTy = IteratorT;
- iterator_range(IteratorT&& it_begin, IteratorT&& it_end)
- : begin_(std::forward<IteratorT>(it_begin)),
- end_(std::forward<IteratorT>(it_end)) {}
+ using IteratorDecayTy = typename std::decay<IteratorT>::type;
+
+ template<class T>
+ iterator_range(T&& it_begin, T&& it_end) :
+ begin_(std::forward<T>(it_begin)),
+ end_(std::forward<T>(it_end)) {}
+
+ IteratorT begin() const {
+ return begin_;
+ }
+ IteratorT end() const {
+ return end_;
+ }
+ bool empty() const {
+ return begin_ == end_;
+ }
+
+ class ReferenceProxy {
+ friend iterator_range;
+
+ IteratorDecayTy it_;
+
+ explicit ReferenceProxy(IteratorDecayTy it) :
+ it_(std::move(it)) {}
- IteratorT begin() const { return begin_; }
- IteratorT end() const { return end_; }
- bool empty() const { return begin_ == end_; }
+ public:
+ using reference = decltype(*std::declval<const IteratorDecayTy&>());
- typename IteratorT::value_type at(typename IteratorT::difference_type pos) const {
+ operator reference() const {
+ return *it_;
+ }
+
+ template<class It = IteratorDecayTy>
+ auto operator->() const -> decltype(&*std::declval<const It&>()) {
+ return &*it_;
+ }
+ };
+
+ ReferenceProxy at(typename IteratorDecayTy::difference_type pos) const {
static_assert(IsRandomAccess, "at() needs random access iterator");
auto it = begin_;
std::advance(it, pos);
- return *it;
+ return ReferenceProxy(std::move(it));
}
- typename IteratorT::value_type operator[](typename IteratorT::difference_type pos) const {
+ ReferenceProxy operator[](typename IteratorDecayTy::difference_type pos) const {
return at(pos);
}
std::ptrdiff_t size() const {
- static_assert(IsRandomAccess, "size() needs random access iterator");
return std::distance(begin_, end_);
}
protected:
enum {
- IsRandomAccess = std::is_base_of<std::random_access_iterator_tag,
- typename IteratorT::iterator_category>::value,
- IsBidirectional = std::is_base_of<std::bidirectional_iterator_tag,
- typename IteratorT::iterator_category>::value,
+ IsRandomAccess =
+ std::is_base_of<std::random_access_iterator_tag,
+ typename IteratorDecayTy::iterator_category>::value,
+ IsBidirectional =
+ std::is_base_of<std::bidirectional_iterator_tag,
+ typename IteratorDecayTy::iterator_category>::value,
};
+
private:
IteratorT begin_;
IteratorT end_;
};
-template <class T> iterator_range<T> make_range(T&& x, T&& y) {
+template<class T>
+iterator_range<T> make_range(T&& x, T&& y) {
return iterator_range<T>(std::forward<T>(x), std::forward<T>(y));
}
+} // namespace LIEF
+
+#if LIEF_HAS_STD_RANGES
+template<typename IteratorT>
+inline constexpr bool
+ std::ranges::enable_borrowed_range<LIEF::iterator_range<IteratorT>> = true;
+#endif
+
+namespace LIEF {
+
/// CRTP base class which implements the entire standard iterator facade
/// in terms of a minimal subset of the interface.
@@ -548,13 +708,13 @@ template <class T> iterator_range<T> make_range(T&& x, T&& y) {
/// Iterators are expected to have const rules analogous to pointers, with a
/// single, const-qualified operator*() that returns ReferenceT. This matches
/// the second and third pointers in the following example:
-/// \code
+/// @code
/// int Value;
/// { int *I = &Value; } // ReferenceT 'int&'
/// { int *const I = &Value; } // ReferenceT 'int&'; const
/// { const int *I = &Value; } // ReferenceT 'const int&'
/// { const int *const I = &Value; } // ReferenceT 'const int&'; const
-/// \endcode
+/// @endcode
/// If an iterator facade returns a handle to its own state, then T (and
/// PointerT and ReferenceT) should usually be const-qualified. Otherwise, if
/// clients are expected to modify the handle itself, the field can be declared
@@ -584,23 +744,23 @@ template <class T> iterator_range<T> make_range(T&& x, T&& y) {
/// - DerivedT &operator+=(DifferenceTypeT N);
/// - DerivedT &operator-=(DifferenceTypeT N);
///
-template <typename DerivedT, typename IteratorCategoryT, typename T,
- typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T *,
- typename ReferenceT = T &>
+template<typename DerivedT, typename IteratorCategoryT, typename T,
+ typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*,
+ typename ReferenceT = T&>
class iterator_facade_base {
-public:
+ public:
using iterator_category = IteratorCategoryT;
using value_type = T;
using difference_type = DifferenceTypeT;
using pointer = PointerT;
using reference = ReferenceT;
-protected:
+ protected:
enum {
- IsRandomAccess = std::is_base_of<std::random_access_iterator_tag,
- IteratorCategoryT>::value,
- IsBidirectional = std::is_base_of<std::bidirectional_iterator_tag,
- IteratorCategoryT>::value,
+ IsRandomAccess =
+ std::is_base_of<std::random_access_iterator_tag, IteratorCategoryT>::value,
+ IsBidirectional =
+ std::is_base_of<std::bidirectional_iterator_tag, IteratorCategoryT>::value,
};
/// A proxy object for computing a reference via indirecting a copy of an
@@ -613,10 +773,13 @@ protected:
DerivedT I;
- ReferenceProxy(DerivedT I) : I(std::move(I)) {}
+ ReferenceProxy(DerivedT I) :
+ I(std::move(I)) {}
- public:
- operator ReferenceT() const { return *I; }
+ public:
+ operator ReferenceT() const {
+ return *I;
+ }
};
/// A proxy object for computing a pointer via indirecting a copy of a
@@ -628,191 +791,205 @@ protected:
ReferenceT R;
- template <typename RefT>
- PointerProxy(RefT &&R) : R(std::forward<RefT>(R)) {}
+ template<typename RefT>
+ PointerProxy(RefT&& R) : // NOLINT(bugprone-forwarding-reference-overload)
+ R(std::forward<RefT>(R)) {}
- public:
- PointerT operator->() const { return &R; }
+ public:
+ PointerT operator->() const {
+ return &R;
+ }
};
-public:
+ public:
DerivedT operator+(DifferenceTypeT n) const {
static_assert(std::is_base_of<iterator_facade_base, DerivedT>::value,
"Must pass the derived type to this template!");
- static_assert(
- IsRandomAccess,
- "The '+' operator is only defined for random access iterators.");
- DerivedT tmp = *static_cast<const DerivedT *>(this);
+ static_assert(IsRandomAccess,
+ "The '+' operator is only defined for random access iterators.");
+ DerivedT tmp = *static_cast<const DerivedT*>(this);
tmp += n;
return tmp;
}
- friend DerivedT operator+(DifferenceTypeT n, const DerivedT &i) {
- static_assert(
- IsRandomAccess,
- "The '+' operator is only defined for random access iterators.");
+ friend DerivedT operator+(DifferenceTypeT n, const DerivedT& i) {
+ static_assert(IsRandomAccess,
+ "The '+' operator is only defined for random access iterators.");
return i + n;
}
DerivedT operator-(DifferenceTypeT n) const {
- static_assert(
- IsRandomAccess,
- "The '-' operator is only defined for random access iterators.");
- DerivedT tmp = *static_cast<const DerivedT *>(this);
+ static_assert(IsRandomAccess,
+ "The '-' operator is only defined for random access iterators.");
+ DerivedT tmp = *static_cast<const DerivedT*>(this);
tmp -= n;
return tmp;
}
- DerivedT &operator++() {
+ DerivedT& operator++() {
static_assert(std::is_base_of<iterator_facade_base, DerivedT>::value,
"Must pass the derived type to this template!");
- return static_cast<DerivedT *>(this)->operator+=(1);
+ return static_cast<DerivedT*>(this)->operator+=(1);
}
DerivedT operator++(int) {
- DerivedT tmp = *static_cast<DerivedT *>(this);
- ++*static_cast<DerivedT *>(this);
+ DerivedT tmp = *static_cast<DerivedT*>(this);
+ ++*static_cast<DerivedT*>(this);
return tmp;
}
- DerivedT &operator--() {
+ DerivedT& operator--() {
static_assert(
IsBidirectional,
- "The decrement operator is only defined for bidirectional iterators.");
- return static_cast<DerivedT *>(this)->operator-=(1);
+ "The decrement operator is only defined for bidirectional iterators."
+ );
+ return static_cast<DerivedT*>(this)->operator-=(1);
}
DerivedT operator--(int) {
static_assert(
IsBidirectional,
- "The decrement operator is only defined for bidirectional iterators.");
- DerivedT tmp = *static_cast<DerivedT *>(this);
- --*static_cast<DerivedT *>(this);
+ "The decrement operator is only defined for bidirectional iterators."
+ );
+ DerivedT tmp = *static_cast<DerivedT*>(this);
+ --*static_cast<DerivedT*>(this);
return tmp;
}
#ifndef __cpp_impl_three_way_comparison
- bool operator!=(const DerivedT &RHS) const {
- return !(static_cast<const DerivedT &>(*this) == RHS);
+ bool operator!=(const DerivedT& RHS) const {
+ return !(static_cast<const DerivedT&>(*this) == RHS);
}
#endif
- bool operator>(const DerivedT &RHS) const {
+ bool operator>(const DerivedT& RHS) const {
static_assert(
IsRandomAccess,
- "Relational operators are only defined for random access iterators.");
- return !(static_cast<const DerivedT &>(*this) < RHS) &&
- !(static_cast<const DerivedT &>(*this) == RHS);
+ "Relational operators are only defined for random access iterators."
+ );
+ return !(static_cast<const DerivedT&>(*this) < RHS) &&
+ !(static_cast<const DerivedT&>(*this) == RHS);
}
- bool operator<=(const DerivedT &RHS) const {
+ bool operator<=(const DerivedT& RHS) const {
static_assert(
IsRandomAccess,
- "Relational operators are only defined for random access iterators.");
- return !(static_cast<const DerivedT &>(*this) > RHS);
+ "Relational operators are only defined for random access iterators."
+ );
+ return !(static_cast<const DerivedT&>(*this) > RHS);
}
- bool operator>=(const DerivedT &RHS) const {
+ bool operator>=(const DerivedT& RHS) const {
static_assert(
IsRandomAccess,
- "Relational operators are only defined for random access iterators.");
- return !(static_cast<const DerivedT &>(*this) < RHS);
+ "Relational operators are only defined for random access iterators."
+ );
+ return !(static_cast<const DerivedT&>(*this) < RHS);
}
PointerProxy operator->() const {
- return static_cast<const DerivedT *>(this)->operator*();
+ return static_cast<const DerivedT*>(this)->operator*();
}
ReferenceProxy operator[](DifferenceTypeT n) const {
static_assert(IsRandomAccess,
"Subscripting is only defined for random access iterators.");
- return static_cast<const DerivedT *>(this)->operator+(n);
+ return static_cast<const DerivedT*>(this)->operator+(n);
}
};
/// CRTP base class for adapting an iterator to a different type.
///
/// This class can be used through CRTP to adapt one iterator into another.
-/// Typically this is done through providing in the derived class a custom \c
+/// Typically this is done through providing in the derived class a custom @c
/// operator* implementation. Other methods can be overridden as well.
-template <
- typename DerivedT, typename WrappedIteratorT,
- typename IteratorCategoryT =
- typename std::iterator_traits<WrappedIteratorT>::iterator_category,
- typename T = typename std::iterator_traits<WrappedIteratorT>::value_type,
- typename DifferenceTypeT =
- typename std::iterator_traits<WrappedIteratorT>::difference_type,
- typename PointerT = typename std::conditional<
- std::is_same<T, typename std::iterator_traits<
- WrappedIteratorT>::value_type>::value,
- typename std::iterator_traits<WrappedIteratorT>::pointer, T *>,
- typename ReferenceT = typename std::conditional<
- std::is_same<T, typename std::iterator_traits<
- WrappedIteratorT>::value_type>::value,
- typename std::iterator_traits<WrappedIteratorT>::reference, T &>::type>
+template<typename DerivedT, typename WrappedIteratorT,
+ typename IteratorCategoryT =
+ typename std::iterator_traits<WrappedIteratorT>::iterator_category,
+ typename T = typename std::iterator_traits<WrappedIteratorT>::value_type,
+ typename DifferenceTypeT =
+ typename std::iterator_traits<WrappedIteratorT>::difference_type,
+ typename PointerT = typename std::conditional<
+ std::is_same<T, typename std::iterator_traits<WrappedIteratorT>::
+ value_type>::value,
+ typename std::iterator_traits<WrappedIteratorT>::pointer, T*
+ >::type,
+ typename ReferenceT = typename std::conditional<
+ std::is_same<T, typename std::iterator_traits<WrappedIteratorT>::
+ value_type>::value,
+ typename std::iterator_traits<WrappedIteratorT>::reference, T&
+ >::type>
class iterator_adaptor_base
- : public iterator_facade_base<DerivedT, IteratorCategoryT, T,
- DifferenceTypeT, PointerT, ReferenceT> {
+ : public iterator_facade_base<DerivedT, IteratorCategoryT, T, DifferenceTypeT,
+ PointerT, ReferenceT> {
using BaseT = typename iterator_adaptor_base::iterator_facade_base;
-protected:
+ protected:
WrappedIteratorT I;
iterator_adaptor_base() = default;
- explicit iterator_adaptor_base(WrappedIteratorT u) : I(std::move(u)) {
+ explicit iterator_adaptor_base(WrappedIteratorT u) :
+ I(std::move(u)) {
static_assert(std::is_base_of<iterator_adaptor_base, DerivedT>::value,
"Must pass the derived type to this template!");
}
- const WrappedIteratorT &wrapped() const { return I; }
+ const WrappedIteratorT& wrapped() const {
+ return I;
+ }
-public:
+ public:
using difference_type = DifferenceTypeT;
- DerivedT &operator+=(difference_type n) {
+ DerivedT& operator+=(difference_type n) {
static_assert(
BaseT::IsRandomAccess,
- "The '+=' operator is only defined for random access iterators.");
+ "The '+=' operator is only defined for random access iterators."
+ );
I += n;
- return *static_cast<DerivedT *>(this);
+ return *static_cast<DerivedT*>(this);
}
- DerivedT &operator-=(difference_type n) {
+ DerivedT& operator-=(difference_type n) {
static_assert(
BaseT::IsRandomAccess,
- "The '-=' operator is only defined for random access iterators.");
+ "The '-=' operator is only defined for random access iterators."
+ );
I -= n;
- return *static_cast<DerivedT *>(this);
+ return *static_cast<DerivedT*>(this);
}
using BaseT::operator-;
- difference_type operator-(const DerivedT &RHS) const {
- static_assert(
- BaseT::IsRandomAccess,
- "The '-' operator is only defined for random access iterators.");
+ difference_type operator-(const DerivedT& RHS) const {
+ static_assert(BaseT::IsRandomAccess,
+ "The '-' operator is only defined for random access iterators.");
return I - RHS.I;
}
// We have to explicitly provide ++ and -- rather than letting the facade
// forward to += because WrappedIteratorT might not support +=.
using BaseT::operator++;
- DerivedT &operator++() {
+ DerivedT& operator++() LIEF_LIFETIMEBOUND {
++I;
- return *static_cast<DerivedT *>(this);
+ return *static_cast<DerivedT*>(this);
}
using BaseT::operator--;
- DerivedT &operator--() {
+ DerivedT& operator--() LIEF_LIFETIMEBOUND {
static_assert(
BaseT::IsBidirectional,
- "The decrement operator is only defined for bidirectional iterators.");
+ "The decrement operator is only defined for bidirectional iterators."
+ );
--I;
- return *static_cast<DerivedT *>(this);
+ return *static_cast<DerivedT*>(this);
}
- friend bool operator==(const iterator_adaptor_base &LHS,
- const iterator_adaptor_base &RHS) {
+ friend bool operator==(const iterator_adaptor_base& LHS,
+ const iterator_adaptor_base& RHS) {
return LHS.I == RHS.I;
}
- friend bool operator<(const iterator_adaptor_base &LHS,
- const iterator_adaptor_base &RHS) {
+ friend bool operator<(const iterator_adaptor_base& LHS,
+ const iterator_adaptor_base& RHS) {
static_assert(
BaseT::IsRandomAccess,
- "Relational operators are only defined for random access iterators.");
+ "Relational operators are only defined for random access iterators."
+ );
return LHS.I < RHS.I;
}
- ReferenceT operator*() const { return *I; }
+ ReferenceT operator*() const {
+ return *I;
+ }
};
/// An iterator type that allows iterating over the pointees via some
@@ -821,65 +998,69 @@ public:
/// The typical usage of this is to expose a type that iterates over Ts, but
/// which is implemented with some iterator over T*s:
///
-/// \code
+/// @code
/// using iterator = pointee_iterator<SmallVectorImpl<T *>::iterator>;
-/// \endcode
-template <typename WrappedIteratorT,
- typename T = typename std::remove_reference<decltype(
- **std::declval<WrappedIteratorT>())>::type>
+/// @endcode
+template<typename WrappedIteratorT,
+ typename T = typename std::
+ remove_reference<decltype(**std::declval<WrappedIteratorT>())>::type>
struct pointee_iterator
- : iterator_adaptor_base<
- pointee_iterator<WrappedIteratorT, T>, WrappedIteratorT,
- typename std::iterator_traits<WrappedIteratorT>::iterator_category,
- T> {
+ : iterator_adaptor_base<
+ pointee_iterator<WrappedIteratorT, T>, WrappedIteratorT,
+ typename std::iterator_traits<WrappedIteratorT>::iterator_category, T
+ > {
pointee_iterator() = default;
- template <typename U>
- pointee_iterator(U &&u)
- : pointee_iterator::iterator_adaptor_base(std::forward<U &&>(u)) {}
+ template<typename U>
+ pointee_iterator(U&& u) : // NOLINT(bugprone-forwarding-reference-overload)
+ pointee_iterator::iterator_adaptor_base(std::forward<U>(u)) {}
- T &operator*() const { return **this->I; }
+ T& operator*() const {
+ return **this->I;
+ }
};
-template <typename RangeT, typename WrappedIteratorT =
- decltype(std::begin(std::declval<RangeT>()))>
+template<typename RangeT,
+ typename WrappedIteratorT = decltype(std::begin(std::declval<RangeT>()))>
iterator_range<pointee_iterator<WrappedIteratorT>>
-make_pointee_range(RangeT &&Range) {
+ make_pointee_range(RangeT&& Range) {
using PointeeIteratorT = pointee_iterator<WrappedIteratorT>;
return make_range(PointeeIteratorT(std::begin(std::forward<RangeT>(Range))),
PointeeIteratorT(std::end(std::forward<RangeT>(Range))));
}
-template <typename WrappedIteratorT,
- typename T = decltype(&*std::declval<WrappedIteratorT>())>
+template<typename WrappedIteratorT,
+ typename T = decltype(&*std::declval<WrappedIteratorT>())>
class pointer_iterator
- : public iterator_adaptor_base<
- pointer_iterator<WrappedIteratorT, T>, WrappedIteratorT,
- typename std::iterator_traits<WrappedIteratorT>::iterator_category,
- T> {
+ : public iterator_adaptor_base<
+ pointer_iterator<WrappedIteratorT, T>, WrappedIteratorT,
+ typename std::iterator_traits<WrappedIteratorT>::iterator_category, T
+ > {
mutable T Ptr;
-public:
+ public:
pointer_iterator() = default;
- explicit pointer_iterator(WrappedIteratorT u)
- : pointer_iterator::iterator_adaptor_base(std::move(u)) {}
+ explicit pointer_iterator(WrappedIteratorT u) :
+ pointer_iterator::iterator_adaptor_base(std::move(u)) {}
- T &operator*() const { return Ptr = &*this->I; }
+ T& operator*() const {
+ return Ptr = &*this->I;
+ }
};
-template <typename RangeT, typename WrappedIteratorT =
- decltype(std::begin(std::declval<RangeT>()))>
+template<typename RangeT,
+ typename WrappedIteratorT = decltype(std::begin(std::declval<RangeT>()))>
iterator_range<pointer_iterator<WrappedIteratorT>>
-make_pointer_range(RangeT &&Range) {
+ make_pointer_range(RangeT&& Range) {
using PointerIteratorT = pointer_iterator<WrappedIteratorT>;
return make_range(PointerIteratorT(std::begin(std::forward<RangeT>(Range))),
PointerIteratorT(std::end(std::forward<RangeT>(Range))));
}
-template <typename WrappedIteratorT,
- typename T1 = typename std::remove_reference<decltype(
- **std::declval<WrappedIteratorT>())>::type,
- typename T2 = typename std::add_pointer<T1>::type>
+template<typename WrappedIteratorT,
+ typename T1 = typename std::
+ remove_reference<decltype(**std::declval<WrappedIteratorT>())>::type,
+ typename T2 = typename std::add_pointer<T1>::type>
using raw_pointer_iterator =
pointer_iterator<pointee_iterator<WrappedIteratorT, T1>, T2>;
diff --git a/deps/LIEF/include/LIEF/json.hpp b/deps/LIEF/include/LIEF/json.hpp
index f9444ba3065..eb83178e1a8 100644
--- a/deps/LIEF/include/LIEF/json.hpp
+++ b/deps/LIEF/include/LIEF/json.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/logging.hpp b/deps/LIEF/include/LIEF/logging.hpp
index 8b01fbf5501..9acfae59811 100644
--- a/deps/LIEF/include/LIEF/logging.hpp
+++ b/deps/LIEF/include/LIEF/logging.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,9 +32,10 @@ namespace logging {
/// **Hierarchical** logging level
///
-/// From a given level set, all levels below this ! level are enabled
+/// From a given level set, all levels below this level are enabled
///
-/// For example, if LEVEL::INFO is enabled then LEVEL::WARN, LEVEL::ERR are also enabled
+/// For example, if LEVEL::INFO is enabled then LEVEL::WARN, LEVEL::ERR are also
+/// enabled
enum class LEVEL : uint32_t {
OFF = 0,
@@ -60,7 +61,7 @@ LIEF_API void enable();
/// Change the logging level (**hierarchical**)
LIEF_API void set_level(LEVEL level);
-/// Change the logger as a file-base logging and set its path
+/// Change the logger to a file-based logging and set its path
LIEF_API void set_path(const std::string& path);
/// Log a message with the LIEF's logger
@@ -69,10 +70,11 @@ LIEF_API void log(LEVEL level, const std::string& msg);
LIEF_API void log(LEVEL level, const std::string& fmt,
const std::vector<std::string>& args);
-template <typename... Args>
-void log(LEVEL level, const std::string& fmt, const Args &... args) {
+template<typename... Args>
+void log(LEVEL level, const std::string& fmt, const Args&... args) {
std::vector<std::string> vec_args;
- vec_args.insert(vec_args.end(), { static_cast<decltype(vec_args)::value_type>(args)...});
+ vec_args.insert(vec_args.end(),
+ {static_cast<decltype(vec_args)::value_type>(args)...});
return log(level, fmt, vec_args);
}
@@ -92,10 +94,11 @@ inline void debug(const std::string& fmt, const std::vector<std::string>& args)
log(LEVEL::DEBUG, fmt, args);
}
-template <typename... Args>
-void debug(const std::string& fmt, const Args &... args) {
+template<typename... Args>
+void debug(const std::string& fmt, const Args&... args) {
std::vector<std::string> vec_args;
- vec_args.insert(vec_args.end(), { static_cast<decltype(vec_args)::value_type>(args)...});
+ vec_args.insert(vec_args.end(),
+ {static_cast<decltype(vec_args)::value_type>(args)...});
return debug(fmt, vec_args);
}
@@ -109,10 +112,11 @@ inline void info(const std::string& fmt, const std::vector<std::string>& args) {
log(LEVEL::INFO, fmt, args);
}
-template <typename... Args>
-void info(const std::string& fmt, const Args &... args) {
+template<typename... Args>
+void info(const std::string& fmt, const Args&... args) {
std::vector<std::string> vec_args;
- vec_args.insert(vec_args.end(), { static_cast<decltype(vec_args)::value_type>(args)...});
+ vec_args.insert(vec_args.end(),
+ {static_cast<decltype(vec_args)::value_type>(args)...});
return info(fmt, vec_args);
}
@@ -126,10 +130,11 @@ inline void warn(const std::string& fmt, const std::vector<std::string>& args) {
log(LEVEL::WARN, fmt, args);
}
-template <typename... Args>
-void warn(const std::string& fmt, const Args &... args) {
+template<typename... Args>
+void warn(const std::string& fmt, const Args&... args) {
std::vector<std::string> vec_args;
- vec_args.insert(vec_args.end(), { static_cast<decltype(vec_args)::value_type>(args)...});
+ vec_args.insert(vec_args.end(),
+ {static_cast<decltype(vec_args)::value_type>(args)...});
return warn(fmt, vec_args);
}
@@ -143,10 +148,11 @@ inline void err(const std::string& fmt, const std::vector<std::string>& args) {
log(LEVEL::ERR, fmt, args);
}
-template <typename... Args>
-void err(const std::string& fmt, const Args &... args) {
+template<typename... Args>
+void err(const std::string& fmt, const Args&... args) {
std::vector<std::string> vec_args;
- vec_args.insert(vec_args.end(), { static_cast<decltype(vec_args)::value_type>(args)...});
+ vec_args.insert(vec_args.end(),
+ {static_cast<decltype(vec_args)::value_type>(args)...});
return err(fmt, vec_args);
}
@@ -156,14 +162,16 @@ inline void critical(const std::string& msg) {
log(LEVEL::CRITICAL, msg);
}
-inline void critical(const std::string& fmt, const std::vector<std::string>& args) {
+inline void critical(const std::string& fmt,
+ const std::vector<std::string>& args) {
log(LEVEL::CRITICAL, fmt, args);
}
-template <typename... Args>
-void critical(const std::string& fmt, const Args &... args) {
+template<typename... Args>
+void critical(const std::string& fmt, const Args&... args) {
std::vector<std::string> vec_args;
- vec_args.insert(vec_args.end(), { static_cast<decltype(vec_args)::value_type>(args)...});
+ vec_args.insert(vec_args.end(),
+ {static_cast<decltype(vec_args)::value_type>(args)...});
return critical(fmt, vec_args);
}
@@ -181,10 +189,10 @@ LIEF_API void enable(const char* name);
/// Set the log level for the logger with the given name
LIEF_API void set_level(const char* name, LEVEL level);
-/// Change the logger with the given as a file-base logging and set its path
+/// Change the logger with the given name to a file-based logging and set its path
LIEF_API void set_path(const char* name, const std::string& path);
-/// Log a message with the logger whose name in provided in the first parameter
+/// Log a message with the logger whose name is provided in the first parameter
LIEF_API void log(const char* name, LEVEL level, const std::string& msg);
/// Set a spdlog sink for the logger with the given name
@@ -231,22 +239,36 @@ class Scoped {
Scoped& operator=(Scoped&&) = delete;
explicit Scoped(LEVEL level) :
- level_(get_level())
- {
+ level_(get_level()) {
+ set_level(level);
+ }
+
+ explicit Scoped(LEVEL level, std::string name) :
+ level_(get_level()),
+ name_(std::move(name)) {
set_level(level);
}
const Scoped& set_level(LEVEL lvl) const {
- logging::set_level(lvl);
+ if (name_.empty()) {
+ logging::set_level(lvl);
+ } else {
+ logging::named::set_level(name_.c_str(), lvl);
+ }
return *this;
}
- ~Scoped() {
+ void reset() {
set_level(level_);
}
+ ~Scoped() {
+ reset();
+ }
+
private:
LEVEL level_ = LEVEL::INFO;
+ std::string name_;
};
diff --git a/deps/LIEF/include/LIEF/optional.hpp b/deps/LIEF/include/LIEF/optional.hpp
index a0ad603d809..1e98c898fca 100644
--- a/deps/LIEF/include/LIEF/optional.hpp
+++ b/deps/LIEF/include/LIEF/optional.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,8 +25,7 @@ class optional : public result<T> {
using result<T>::result;
optional() :
- result<T>(tl::make_unexpected(lief_errors::not_found))
- {}
+ result<T>(tl::make_unexpected(lief_errors::not_found)) {}
void reset() noexcept {
new (this) optional();
diff --git a/deps/LIEF/include/LIEF/platforms.hpp b/deps/LIEF/include/LIEF/platforms.hpp
index addec078fb4..67a470be4d5 100644
--- a/deps/LIEF/include/LIEF/platforms.hpp
+++ b/deps/LIEF/include/LIEF/platforms.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,6 +21,16 @@
#include "TargetConditionals.h"
#endif
+#if defined(__linux__)
+ #include <features.h>
+
+ #ifndef __GLIBC__
+ #define LIEF_PLATFORM_MUSL 1
+ #else
+ #define LIEF_PLATFORM_GLIBC 1
+ #endif
+#endif
+
namespace LIEF {
enum PLATFORMS {
@@ -41,14 +51,13 @@ constexpr PLATFORMS current_platform() {
return PLATFORMS::PLAT_WINDOWS;
#elif defined(__APPLE__)
#if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
- return PLATFORMS::PLAT_IOS;
+ return PLATFORMS::PLAT_IOS;
#else
- return PLATFORMS::PLAT_OSX;
+ return PLATFORMS::PLAT_OSX;
#endif
#else
return PLATFORMS::PLAT_UNKNOWN;
#endif
-
}
diff --git a/deps/LIEF/include/LIEF/platforms/android.hpp b/deps/LIEF/include/LIEF/platforms/android.hpp
index eeb3ac44576..92ec371834f 100644
--- a/deps/LIEF/include/LIEF/platforms/android.hpp
+++ b/deps/LIEF/include/LIEF/platforms/android.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/platforms/android/version.hpp b/deps/LIEF/include/LIEF/platforms/android/version.hpp
index 1f477c4c1b8..39e55f6acff 100644
--- a/deps/LIEF/include/LIEF/platforms/android/version.hpp
+++ b/deps/LIEF/include/LIEF/platforms/android/version.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,16 +22,16 @@ namespace Android {
enum class ANDROID_VERSIONS {
VERSION_UNKNOWN = 0,
- VERSION_601 = 1,
+ VERSION_601 = 1,
- VERSION_700 = 2,
- VERSION_710 = 3,
- VERSION_712 = 4,
+ VERSION_700 = 2,
+ VERSION_710 = 3,
+ VERSION_712 = 4,
- VERSION_800 = 5,
- VERSION_810 = 6,
+ VERSION_800 = 5,
+ VERSION_810 = 6,
- VERSION_900 = 7,
+ VERSION_900 = 7,
};
LIEF_API const char* code_name(ANDROID_VERSIONS version);
diff --git a/deps/LIEF/include/LIEF/range.hpp b/deps/LIEF/include/LIEF/range.hpp
index 16f778875bd..958c79377f8 100644
--- a/deps/LIEF/include/LIEF/range.hpp
+++ b/deps/LIEF/include/LIEF/range.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2024 - 2025 R. Thomas
+/* Copyright 2024 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,7 +28,7 @@ struct range_t {
if (strict) {
return low <= value && value < high;
}
- return low <= value && value <= high;
+ return low <= value && value <= high;
}
uint64_t size() const {
@@ -43,8 +43,7 @@ struct range_t {
return !(lhs == rhs);
}
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const range_t& range);
+ friend LIEF_API std::ostream& operator<<(std::ostream& os, const range_t& range);
};
}
diff --git a/deps/LIEF/include/LIEF/runtime.hpp b/deps/LIEF/include/LIEF/runtime.hpp
new file mode 100644
index 00000000000..3d3e09b69c6
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime.hpp
@@ -0,0 +1,32 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_H
+#define LIEF_RUNTIME_H
+
+#include <LIEF/runtime/Module.hpp>
+#include <LIEF/runtime/Process.hpp>
+#include <LIEF/runtime/Memory.hpp>
+#include <LIEF/runtime/Host.hpp>
+#include <LIEF/runtime/utils.hpp>
+#include <LIEF/runtime/disassembler.hpp>
+#include <LIEF/runtime/assembler.hpp>
+
+#include <LIEF/runtime/linux.hpp>
+#include <LIEF/runtime/windows.hpp>
+#include <LIEF/runtime/android.hpp>
+#include <LIEF/runtime/osx.hpp>
+
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/Host.hpp b/deps/LIEF/include/LIEF/runtime/Host.hpp
new file mode 100644
index 00000000000..856f2c9468e
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/Host.hpp
@@ -0,0 +1,49 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_HOST_H
+#define LIEF_RUNTIME_HOST_H
+
+#include "LIEF/visibility.h"
+#include <string>
+
+namespace LIEF {
+namespace runtime {
+
+/// This class represents the current host.
+class LIEF_API Host {
+ public:
+ /// The machine hostname
+ static std::string name();
+
+ /// The user home dir (e.g. `/home/romain` or `C:\Users\romain`)
+ static std::string home_dir();
+
+ /// Temporary directory.
+ ///
+ /// This function looks at the environment variables to determine the suitable
+ /// temp directory (e.g. `TEMP`, `TMPDIR`)
+ static std::string tmp_dir();
+
+ /// The directory to store user-specific configuration
+ static std::string config_dir();
+
+ /// The directory where software should store their cache files
+ /// (e.g. `$HOME/.cache`)
+ static std::string cache_dir();
+};
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/Memory.hpp b/deps/LIEF/include/LIEF/runtime/Memory.hpp
new file mode 100644
index 00000000000..5cf620403f6
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/Memory.hpp
@@ -0,0 +1,267 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_MEMORY_H
+#define LIEF_RUNTIME_MEMORY_H
+#include <ostream>
+#include <cstdint>
+#include <cstring>
+#include <vector>
+#include <utility>
+
+#include "LIEF/visibility.h"
+#include "LIEF/optional.hpp"
+#include "LIEF/logging.hpp"
+#include "LIEF/compiler_attributes.hpp"
+
+#include "LIEF/runtime/utils.hpp"
+
+namespace LIEF {
+namespace runtime {
+
+/// This class exposes API to access and manage memory
+class LIEF_API Memory {
+ public:
+ /// Flags used when creating a memory map (mmap).
+ enum MMAP_FLAGS : uint32_t {
+ MP_NONE = 0,
+
+ /// Changes are private to this process (copy-on-write).
+ MP_PRIVATE = 1 << 0,
+
+ /// The mapping is not backed by any file.
+ MP_ANONYMOUS = 1 << 1,
+
+ /// Changes are shared.
+ MP_SHARED = 1 << 2,
+
+ /// Interpret the address as a fixed requirement.
+ MP_FIXED = 1 << 3,
+
+ /// Map for Just-In-Time code generation.
+ MP_JIT = 1 << 4,
+ };
+
+ enum PERM : uint32_t {
+ P_NONE = 0,
+ P_READ = 1 << 0,
+ P_WRITE = 1 << 1,
+ P_EXEC = 1 << 2,
+ };
+
+ /// Represents a contiguous chunk of memory allocated or inspected by
+ /// the runtime.
+ class LIEF_API Chunk {
+ public:
+ friend class Memory;
+
+ Chunk(void* addr, size_t size, uint32_t permissions) :
+ addr_(addr),
+ size_(size),
+ permissions_(permissions) {}
+
+ Chunk(void* addr, size_t size) :
+ Chunk(addr, size, /*permissions=*/P_NONE) {}
+
+ Chunk(void* addr) :
+ Chunk(addr, /*size=*/0, /*permissions=*/P_NONE) {}
+
+ /// Returns the start address of the memory chunk as an opaque pointer
+ void* addr_ptr() {
+ return addr_;
+ }
+
+ const void* addr_ptr() const {
+ return addr_;
+ }
+
+ /// Returns the start address of the memory chunk.
+ uintptr_t addr() const {
+ return reinterpret_cast<uintptr_t>(addr_);
+ }
+
+ /// Returns the size of the memory chunk in bytes.
+ size_t size() const {
+ return size_;
+ }
+
+ /// Returns the current permissions of the memory chunk.
+ uint32_t permissions() const {
+ return permissions_;
+ }
+
+ /// Returns the address of the start of the page containing this chunk.
+ uintptr_t page_start() const;
+
+
+ /// Returns the address of the end of the page containing this chunk.
+ uintptr_t page_end() const;
+
+ /// Changes the permissions of the memory chunk.
+ Chunk& change_permissions(uint32_t p) LIEF_LIFETIMEBOUND {
+ if (!Memory::mprotect(*this, p)) {
+ logging::err("mprotect failed for chunk: {}", to_string());
+ }
+ permissions_ = p;
+ return *this;
+ }
+
+ /// Sets the permissions to Execute only.
+ Chunk& make_x() LIEF_LIFETIMEBOUND {
+ return change_permissions(P_EXEC);
+ }
+
+ /// Sets the permissions to Read and Write.
+ Chunk& make_rw() LIEF_LIFETIMEBOUND {
+ return change_permissions(P_READ | P_WRITE);
+ }
+
+ /// Sets the permissions to Read and Execute.
+ Chunk& make_rx() LIEF_LIFETIMEBOUND {
+ return change_permissions(P_READ | P_EXEC);
+ }
+
+ /// Sets the permissions to Read, Write, and Execute.
+ Chunk& make_rwx() LIEF_LIFETIMEBOUND {
+ return change_permissions(P_READ | P_WRITE | P_EXEC);
+ }
+
+ /// Sets the permissions to Read Only.
+ Chunk& make_ro() LIEF_LIFETIMEBOUND {
+ return change_permissions(P_READ);
+ }
+
+ /// Flushes the instruction cache for this memory chunk.
+ /// This should be used when modifying code in memory (e.g., hooking, JIT).
+ Chunk& cache_flush() LIEF_LIFETIMEBOUND;
+
+ /// Check if this chunk is valid
+ bool is_valid() const {
+ return addr_ != nullptr;
+ }
+
+ operator bool() const {
+ return is_valid();
+ }
+
+ ok_error_t deallocate() {
+ return Memory::munmap(*this);
+ }
+
+ std::string to_string() const;
+
+ friend LIEF_API std::ostream& operator<<(std::ostream& os, const Chunk& C) {
+ os << C.to_string();
+ return os;
+ }
+
+ protected:
+ void* addr_ = 0;
+ size_t size_ = 0;
+ uint32_t permissions_ = P_NONE;
+ };
+
+ /// RAII interface to change the permission within a determined scope
+ class LIEF_API ScopedPermissions {
+ public:
+ explicit ScopedPermissions(Chunk& chunk, uint32_t perms) :
+ chunk_(&chunk),
+ perms_(chunk.permissions()) {
+ chunk_->change_permissions(perms);
+ }
+
+ ~ScopedPermissions() {
+ chunk_->change_permissions(perms_);
+ }
+
+ private:
+ Chunk* chunk_ = nullptr;
+ uint32_t perms_ = P_NONE;
+ };
+
+ /// Allocate a memory chunk through mmap-like function
+ static optional<Chunk> mmap(size_t size, uint32_t flags,
+ uint32_t permissions = P_NONE);
+
+ /// Deallocate a mmaped memory chunk
+ static ok_error_t munmap(Chunk& C);
+
+ /// Sets the permission of the given memory chunk
+ static ok_error_t mprotect(Chunk& C, uint32_t flags);
+
+ /// Write the buffer at the address given in the third parameter.
+ ///
+ /// This function assumes that the memory pointed by `addr` has the correct
+ /// permission to write this buffer.
+ static ok_error_t write(const uint8_t* buffer, size_t size, uintptr_t addr) {
+ std::memcpy(reinterpret_cast<void*>(addr), buffer, size);
+ return ok();
+ }
+
+ /// Write the buffer at the address given in the third parameter.
+ ///
+ /// This function assumes that the memory pointed by `addr` has the correct
+ /// permission to write this buffer.
+ static ok_error_t write(const std::vector<uint8_t>& buffer, uintptr_t addr) {
+ return write(buffer.data(), buffer.size(), addr);
+ }
+
+ /// Generic function to write a typed value
+ template<class T,
+ typename = typename std::enable_if<std::is_standard_layout<T>::value &&
+ std::is_trivial<T>::value>::type>
+ static ok_error_t write(const T& value, uintptr_t addr) {
+ return write(reinterpret_cast<const uint8_t*>(&value), sizeof(T), addr);
+ }
+
+ /// Generic function to read a typed value
+ template<class T>
+ static T read(uintptr_t addr) {
+ T out{};
+ std::memcpy(&out, reinterpret_cast<const void*>(addr), sizeof(T));
+ return out;
+ }
+
+ /// Read the content at the address pointed by the first parameter and write
+ /// the result in the `std::vector` provided in the second parameter
+ static void read(uintptr_t addr, std::vector<uint8_t>& out, size_t size) {
+ if (out.size() < size) {
+ std::vector<uint8_t> buffer(size);
+ read(addr, buffer.data(), buffer.size());
+ out = std::move(buffer);
+ return;
+ }
+ read(addr, out.data(), size);
+ }
+
+ /// Read the content at the address pointed by the first parameter and write
+ /// the result in the buffer provided in the second parameter.
+ ///
+ /// This function assumes that the buffer in the second parameter is large
+ /// enough to contain the data being read.
+ static void read(uintptr_t addr, uint8_t* out, size_t size) {
+ std::memcpy(out, reinterpret_cast<const void*>(addr), size);
+ }
+
+ static std::string perm_str(uint32_t flags);
+
+ static constexpr bool support_rwx() {
+ return platform() != PLATFORMS::IOS;
+ }
+};
+
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/Module.hpp b/deps/LIEF/include/LIEF/runtime/Module.hpp
new file mode 100644
index 00000000000..e221eb20f9b
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/Module.hpp
@@ -0,0 +1,223 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_MODULE_H
+#define LIEF_RUNTIME_MODULE_H
+#include <ostream>
+#include <fstream>
+#include <cstdint>
+#include <cstring>
+
+#include "LIEF/visibility.h"
+#include "LIEF/iterators.hpp"
+#include "LIEF/compiler_attributes.hpp"
+
+#include <memory>
+#include <string>
+#include <vector>
+
+namespace LIEF {
+class Binary;
+namespace runtime {
+
+namespace details {
+class ModuleIt;
+class Module;
+}
+
+/// This class represents an in-memory module which can be an executable
+/// or a library
+class LIEF_API Module {
+ public:
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::forward_iterator_tag, Module,
+ std::ptrdiff_t, const Module*, const Module&> {
+ public:
+ using implementation = details::ModuleIt;
+ using iterator_facade_base::operator++;
+
+ LIEF_API Iterator();
+
+ LIEF_API Iterator(const Iterator&);
+ LIEF_API Iterator& operator=(const Iterator&);
+
+ LIEF_API Iterator(Iterator&&) noexcept;
+ LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+ LIEF_API Iterator(std::unique_ptr<details::ModuleIt> impl);
+ LIEF_API ~Iterator();
+
+ friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
+ friend LIEF_API bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+ return !(LHS == RHS);
+ }
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator++();
+
+ LIEF_API const Module& operator*() const LIEF_LIFETIMEBOUND;
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const Module* operator->() const LIEF_LIFETIMEBOUND;
+
+ /// Transfer ownership of the module at the current position to the
+ /// caller. Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<Module> yield();
+
+ private:
+ void load() const;
+
+ std::unique_ptr<details::ModuleIt> impl_;
+ mutable std::unique_ptr<Module> cached_;
+ };
+ Module() = delete;
+ Module(std::unique_ptr<details::Module> impl);
+
+ Module(const Module&) = delete;
+ Module& operator=(const Module&) = delete;
+
+ Module(Module&&) noexcept;
+ Module& operator=(Module&&) noexcept;
+
+ virtual std::unique_ptr<Module> clone() const;
+
+ /// Base address where the module is loaded in memory
+ uint64_t imagebase() const;
+
+ /// Virtual size of the current module
+ uint64_t size() const;
+
+ /// End address of the module
+ uint64_t end() const {
+ return imagebase() + size();
+ }
+
+ /// Name of the module (e.g. `libc.so.6, kernel32.dll, libsystem_c.dylib`)
+ std::string name() const;
+
+ /// Path of the module
+ std::string path() const;
+
+ /// Check if the current module contains the given address
+ bool contains(uintptr_t addr) const {
+ const uint64_t base = imagebase();
+ return base <= addr && addr < (base + size());
+ }
+
+ /// Return the content of the module as it is currently mapped in memory.
+ ///
+ /// The returned buffer spans imagebase() over size() bytes. An empty buffer
+ /// is returned if the imagebase or the size is null.
+ std::vector<uint8_t> dump() const {
+ const uint64_t base = imagebase();
+ const uint64_t nbytes = size();
+ if (base == 0 || nbytes == 0) {
+ return {};
+ }
+ std::vector<uint8_t> out(nbytes);
+ std::memcpy(out.data(), reinterpret_cast<const void*>(base), nbytes);
+ return out;
+ }
+
+ /// Same as dump() but also writes the content into the file located at
+ /// `filepath`.
+ std::vector<uint8_t> dump(const std::string& filepath) const {
+ std::vector<uint8_t> out = dump();
+ std::ofstream ofs(filepath, std::ios::out | std::ios::binary);
+ if (ofs) {
+ ofs.write(reinterpret_cast<const char*>(out.data()),
+ static_cast<std::streamsize>(out.size()));
+ }
+ return out;
+ }
+
+ /// Same as dump() but also writes the content into the given output stream.
+ std::vector<uint8_t> dump(std::ostream& os) const {
+ std::vector<uint8_t> out = dump();
+ os.write(reinterpret_cast<const char*>(out.data()),
+ static_cast<std::streamsize>(out.size()));
+ return out;
+ }
+
+ std::string to_string() const;
+
+ /// This function can be used to **downcast** a Module instance
+ template<class T>
+ const T* as() const LIEF_LIFETIMEBOUND {
+ static_assert(std::is_base_of<Module, T>::value, "Require Module inheritance");
+ if (T::classof(this)) {
+ return static_cast<const T*>(this);
+ }
+ return nullptr;
+ }
+
+ template<class T>
+ T* as() LIEF_LIFETIMEBOUND {
+ return const_cast<T*>(static_cast<const Module*>(this)->as<T>());
+ }
+
+ LIEF_API friend std::ostream& operator<<(std::ostream& os, const Module& M) {
+ os << M.to_string();
+ return os;
+ }
+
+ virtual ~Module();
+
+ protected:
+ std::unique_ptr<details::Module> impl_;
+};
+
+using modules_t = iterator_range<Module::Iterator>;
+
+/// Return an iterator over the different modules loaded in the current
+/// process
+LIEF_API modules_t modules();
+
+/// Find the module with the given name
+inline std::unique_ptr<Module> module_from_name(const std::string& name) {
+ auto range = modules();
+ for (auto it = range.begin(); it != range.end(); ++it) {
+ if (it->name() == name) {
+ return it.yield();
+ }
+ }
+ return nullptr;
+}
+
+/// Find the module with the given path
+inline std::unique_ptr<Module> module_from_path(const std::string& path) {
+ auto range = modules();
+ for (auto it = range.begin(); it != range.end(); ++it) {
+ if (it->path() == path) {
+ return it.yield();
+ }
+ }
+ return nullptr;
+}
+
+/// Find the module that encompasses the given virtual address (absolute)
+inline std::unique_ptr<Module> module_from_addr(uintptr_t addr) {
+ auto range = modules();
+ for (auto it = range.begin(); it != range.end(); ++it) {
+ if (it->contains(addr)) {
+ return it.yield();
+ }
+ }
+ return nullptr;
+}
+
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/Process.hpp b/deps/LIEF/include/LIEF/runtime/Process.hpp
new file mode 100644
index 00000000000..54c77c77699
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/Process.hpp
@@ -0,0 +1,82 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_PROCESS_H
+#define LIEF_RUNTIME_PROCESS_H
+#include <cstdint>
+#include <string>
+#include <unordered_map>
+
+#include "LIEF/visibility.h"
+#include "LIEF/runtime/utils.hpp"
+#include "LIEF/optional.hpp"
+
+namespace LIEF {
+namespace assembly {
+class Engine;
+}
+}
+
+namespace LIEF {
+namespace runtime {
+
+/// This structure represents the current process and provides
+/// functions to query process-level information.
+class LIEF_API Process {
+ public:
+ /// This structure wraps environment variables
+ struct EnvVars {
+ std::unordered_map<std::string, std::string> vars;
+
+ bool empty() const {
+ return vars.empty();
+ }
+ };
+
+ /// Get the Process ID of the current process.
+ static int32_t pid();
+
+ /// Get the Thread ID of the current thread.
+ static uint32_t tid();
+
+ /// Return the target architecture of the current process.
+ static constexpr ARCH arch() {
+ return runtime::arch();
+ }
+
+ /// Return the target platform of the current process.
+ static constexpr PLATFORMS platform() {
+ return runtime::platform();
+ }
+
+ /// Return the number of bytes in a memory page.
+ ///
+ /// For instance:
+ /// * `0x1000` (4096 bytes) for x86_64
+ /// * `0x4000` (16384 bytes) for ARM64
+ static uint32_t page_size();
+
+ /// Return the environment variable associated with the given key.
+ static optional<std::string> get_env(const std::string& key);
+
+ /// Return the environment variables present in the current process
+ static EnvVars get_envs();
+
+ /// Return the assembler/disassembler for the current process.
+ static assembly::Engine* default_engine();
+};
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/android.hpp b/deps/LIEF/include/LIEF/runtime/android.hpp
new file mode 100644
index 00000000000..e41aa8146ce
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/android.hpp
@@ -0,0 +1,24 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_ANDROID_H
+#define LIEF_RUNTIME_ANDROID_H
+
+#include <LIEF/runtime/android/Module.hpp>
+#include <LIEF/runtime/android/Host.hpp>
+#include <LIEF/runtime/android/Process.hpp>
+#include <LIEF/runtime/android/Property.hpp>
+
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/android/Host.hpp b/deps/LIEF/include/LIEF/runtime/android/Host.hpp
new file mode 100644
index 00000000000..faa361e15d0
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/android/Host.hpp
@@ -0,0 +1,39 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_ANDROID_HOST_H
+#define LIEF_RUNTIME_ANDROID_HOST_H
+#include <LIEF/visibility.h>
+#include <LIEF/optional.hpp>
+
+#include <cstdint>
+
+namespace LIEF {
+namespace runtime {
+namespace android {
+
+/// This class exposes Android-specific host information.
+class LIEF_API Host {
+ public:
+ /// Return the Android SDK/API level of the device (e.g. `34` for Android
+ /// 14).
+ static optional<uint32_t> sdk_version();
+};
+
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/android/Module.hpp b/deps/LIEF/include/LIEF/runtime/android/Module.hpp
new file mode 100644
index 00000000000..b94347d9fb1
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/android/Module.hpp
@@ -0,0 +1,76 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_ANDROID_MODULE_H
+#define LIEF_RUNTIME_ANDROID_MODULE_H
+
+#include "LIEF/runtime/Module.hpp"
+#include "LIEF/runtime/utils.hpp"
+
+namespace LIEF {
+
+namespace ELF {
+class Binary;
+struct ParserConfig;
+}
+
+namespace runtime {
+namespace android {
+
+/// This class exposes Android-specific API for a module
+class LIEF_API Module : public runtime::Module {
+ public:
+ using runtime::Module::Module;
+
+ /// Instantiate a Module from the given `dlopen` handle.
+ static std::unique_ptr<Module> from_handle(void* H);
+
+ /// Return the dlopen handle for this library.
+ ///
+ /// Return a nullptr if the function fails or if the handler can't be found
+ void* handle() const;
+
+ /// Resolve the symbol from with the given name for the current module
+ void* dlsym(const std::string& name) const;
+
+ /// Parse the ELF module from its path on the filesystem
+ std::unique_ptr<ELF::Binary> parse_from_path() const;
+
+ /// Parse the ELF module from its path on the filesystem and given the parser
+ /// configuration
+ std::unique_ptr<ELF::Binary>
+ parse_from_path(const ELF::ParserConfig& config) const;
+
+ /// Parse the ELF module from memory with the given configuration
+ std::unique_ptr<ELF::Binary>
+ parse_from_memory(const ELF::ParserConfig& config) const;
+
+ /// Parse the ELF module from memory
+ std::unique_ptr<ELF::Binary> parse_from_memory() const;
+
+ ~Module() override = default;
+
+ static constexpr bool classof(const runtime::Module*) {
+ return platform() == PLATFORMS::ANDROID_;
+ }
+};
+
+/// Load the library with the given path/name
+LIEF_API std::unique_ptr<Module> dlopen(const std::string& name);
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/android/Process.hpp b/deps/LIEF/include/LIEF/runtime/android/Process.hpp
new file mode 100644
index 00000000000..de7f4a4e22c
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/android/Process.hpp
@@ -0,0 +1,54 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_ANDROID_PROCESS_H
+#define LIEF_RUNTIME_ANDROID_PROCESS_H
+#include <LIEF/visibility.h>
+#include <LIEF/runtime/Process.hpp>
+#include <LIEF/runtime/android/Property.hpp>
+
+#include <string>
+#include <vector>
+
+namespace LIEF {
+namespace runtime {
+namespace android {
+
+/// This class exposes Android-specific API for the current process
+class LIEF_API Process : public runtime::Process {
+ public:
+ using runtime::Process::Process;
+
+ using properties_t = std::vector<Property>;
+
+ /// Return the content of `/proc/cmdline`
+ static std::string cmdline();
+
+ /// Return the value of the Android system property with the given `name`
+ /// (e.g. `ro.build.version.sdk`).
+ static optional<Property> get_system_property(const std::string& name);
+
+ /// Get all the system properties
+ static properties_t properties();
+
+ static constexpr bool classof(const runtime::Process*) {
+ return platform() == PLATFORMS::ANDROID_;
+ }
+};
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/android/Property.hpp b/deps/LIEF/include/LIEF/runtime/android/Property.hpp
new file mode 100644
index 00000000000..d7bd90b1dd7
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/android/Property.hpp
@@ -0,0 +1,86 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_ANDROID_PROPERTY_H
+#define LIEF_RUNTIME_ANDROID_PROPERTY_H
+#include <ostream>
+#include <cstdint>
+#include <string>
+
+#include <LIEF/compiler_attributes.hpp>
+#include <LIEF/visibility.h>
+
+// Forward definition from include/sys/system_properties.h
+typedef struct prop_info prop_info; // NOLINT
+
+namespace LIEF {
+namespace runtime {
+namespace android {
+
+/// This class represents an Android property such as `ro.boot.hardware`
+class LIEF_API Property {
+ public:
+ Property() = default;
+ Property(std::string name, std::string value, uint32_t serial) :
+ name_(std::move(name)),
+ value_(std::move(value)),
+ serial_(serial) {}
+
+ static Property create_from(const prop_info& pi);
+
+ Property(const Property&) = default;
+ Property& operator=(const Property&) = default;
+
+ Property(Property&&) noexcept = default;
+ Property& operator=(Property&&) noexcept = default;
+
+ ~Property() = default;
+
+ /// Name of the property (e.g. `ro.boot.hardware`).
+ const std::string& name() const LIEF_LIFETIMEBOUND {
+ return name_;
+ }
+
+ /// Value associated with the property.
+ const std::string& value() const LIEF_LIFETIMEBOUND {
+ return value_;
+ }
+
+ /// Serial number of the property.
+ ///
+ /// It is incremented each time the property is updated and can therefore be
+ /// used to detect changes.
+ uint32_t serial() const {
+ return serial_;
+ }
+
+ /// Pretty representation of the property
+ std::string to_string() const;
+
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const Property& prop) {
+ os << prop.to_string();
+ return os;
+ }
+
+ private:
+ std::string name_;
+ std::string value_;
+ uint32_t serial_ = 0;
+};
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/assembler.hpp b/deps/LIEF/include/LIEF/runtime/assembler.hpp
new file mode 100644
index 00000000000..b346b3ee665
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/assembler.hpp
@@ -0,0 +1,62 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_ASSEMBLER_H
+#define LIEF_RUNTIME_ASSEMBLER_H
+#include <LIEF/visibility.h>
+#include <vector>
+
+#include "LIEF/asm/AssemblerConfig.hpp"
+
+namespace llvm {
+class MCInst;
+}
+
+namespace LIEF {
+namespace runtime {
+
+/// Assemble the provided assembly code at the specified (absolute) virtual
+/// address.
+///
+/// The function returns the generated assembly bytes.
+///
+/// ```cpp
+/// #include <LIEF/runtime.hpp>
+///
+/// auto code = LIEF::runtime::assemble(0x7f0011223344, R"(
+/// xor rax, rbx;
+/// mov rcx, rax;
+/// )");
+/// ```
+///
+/// If you need to configure the assembly engine or to define addresses for
+/// symbols, you can provide your own assembly::AssemblerConfig instance.
+LIEF_API std::vector<uint8_t> assemble(
+ uint64_t addr, const std::string& Asm,
+ assembly::AssemblerConfig& config = assembly::AssemblerConfig::default_config()
+);
+
+/// Assemble the provided LLVM MCInst instruction at the specified (absolute)
+/// virtual address and return the generated assembly bytes.
+LIEF_API std::vector<uint8_t> assemble(uint64_t address, const llvm::MCInst& inst);
+
+/// Assemble the provided sequence of LLVM MCInst instructions at the specified
+/// (absolute) virtual address and return the generated assembly bytes.
+LIEF_API std::vector<uint8_t> assemble(uint64_t address,
+ const std::vector<llvm::MCInst>& insts);
+
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/config.h.in b/deps/LIEF/include/LIEF/runtime/config.h.in
new file mode 100644
index 00000000000..fa5769a5316
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/config.h.in
@@ -0,0 +1,50 @@
+/* Copyright 2017 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_CONFIG_H
+#define LIEF_RUNTIME_CONFIG_H
+
+// clang-format off
+
+#cmakedefine LIEF_RUNTIME_PLATFORM_LINUX @LIEF_RUNTIME_PLATFORM_LINUX@
+#cmakedefine LIEF_RUNTIME_PLATFORM_WINDOWS @LIEF_RUNTIME_PLATFORM_WINDOWS@
+#cmakedefine LIEF_RUNTIME_PLATFORM_ANDROID @LIEF_RUNTIME_PLATFORM_ANDROID@
+#cmakedefine LIEF_RUNTIME_PLATFORM_OSX @LIEF_RUNTIME_PLATFORM_OSX@
+#cmakedefine LIEF_RUNTIME_PLATFORM_IOS @LIEF_RUNTIME_PLATFORM_IOS@
+
+#cmakedefine LIEF_RUNTIME_ARCH_ARM64 @LIEF_RUNTIME_ARCH_ARM64@
+#cmakedefine LIEF_RUNTIME_ARCH_X86_64 @LIEF_RUNTIME_ARCH_X86_64@
+#cmakedefine LIEF_RUNTIME_ARCH_RISCV64 @LIEF_RUNTIME_ARCH_RISCV64@
+
+
+#ifdef __cplusplus
+namespace LIEF {
+namespace runtime {
+static constexpr bool platform_linux = @LIEF_RUNTIME_PLATFORM_LINUX@;
+static constexpr bool platform_windows = @LIEF_RUNTIME_PLATFORM_WINDOWS@;
+static constexpr bool platform_android = @LIEF_RUNTIME_PLATFORM_ANDROID@;
+static constexpr bool platform_osx = @LIEF_RUNTIME_PLATFORM_OSX@;
+static constexpr bool platform_ios = @LIEF_RUNTIME_PLATFORM_IOS@;
+
+static constexpr bool arch_arm64 = @LIEF_RUNTIME_ARCH_ARM64@;
+static constexpr bool arch_x86_64 = @LIEF_RUNTIME_ARCH_X86_64@;
+static constexpr bool arch_riscv64 = @LIEF_RUNTIME_ARCH_RISCV64@;
+
+}
+}
+#endif
+
+// clang-format on
+
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/disassembler.hpp b/deps/LIEF/include/LIEF/runtime/disassembler.hpp
new file mode 100644
index 00000000000..d7696a41fd3
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/disassembler.hpp
@@ -0,0 +1,37 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_DISASSEMBLER_H
+#define LIEF_RUNTIME_DISASSEMBLER_H
+
+#include "LIEF/asm/Instruction.hpp"
+
+namespace LIEF {
+namespace runtime {
+
+using instructions_it = iterator_range<assembly::Instruction::Iterator>;
+
+/// Start disassembling instructions at the given **absolute** virtual address
+///
+/// ```cpp
+/// for (const auto& inst : disassemble(0x7f0011223344)) {
+/// std::cout << inst.to_string() << '\n';
+/// }
+/// ```
+LIEF_API instructions_it disassemble(uintptr_t addr);
+
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/linux.hpp b/deps/LIEF/include/LIEF/runtime/linux.hpp
new file mode 100644
index 00000000000..d4354504afd
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/linux.hpp
@@ -0,0 +1,23 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_LINUX_H
+#define LIEF_RUNTIME_LINUX_H
+
+#include <LIEF/runtime/linux/Module.hpp>
+#include <LIEF/runtime/linux/Host.hpp>
+#include <LIEF/runtime/linux/Process.hpp>
+
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/linux/Host.hpp b/deps/LIEF/include/LIEF/runtime/linux/Host.hpp
new file mode 100644
index 00000000000..f3a7c3bf6ba
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/linux/Host.hpp
@@ -0,0 +1,46 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_LINUX_HOST_H
+#define LIEF_RUNTIME_LINUX_HOST_H
+#include <LIEF/visibility.h>
+
+#include <string>
+
+namespace LIEF {
+namespace runtime {
+namespace Linux {
+
+/// This class exposes Linux-specific host information.
+class LIEF_API Host {
+ public:
+ /// Operating system name (e.g., `Linux`)
+ static std::string sys_name();
+
+ /// Operating system release (e.g., `2.6.28`)
+ static std::string sys_release();
+
+ /// Operating system version
+ static std::string sys_version();
+
+ /// Hardware type identifier (e.g., `x86_64`)
+ static std::string hardware();
+};
+
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/linux/Module.hpp b/deps/LIEF/include/LIEF/runtime/linux/Module.hpp
new file mode 100644
index 00000000000..595c5d1cdcb
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/linux/Module.hpp
@@ -0,0 +1,76 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_LINUX_MODULE_H
+#define LIEF_RUNTIME_LINUX_MODULE_H
+
+#include "LIEF/runtime/Module.hpp"
+#include "LIEF/runtime/utils.hpp"
+
+namespace LIEF {
+
+namespace ELF {
+class Binary;
+struct ParserConfig;
+}
+
+namespace runtime {
+namespace Linux {
+
+/// This class exposes a Linux-specific API for a module
+class LIEF_API Module : public runtime::Module {
+ public:
+ using runtime::Module::Module;
+
+ /// Instantiate a Module from the given `dlopen` handle.
+ static std::unique_ptr<Module> from_handle(void* H);
+
+ /// Return the dlopen handle for this library.
+ ///
+ /// Return a nullptr if the function fails or if the handler can't be found
+ void* handle() const;
+
+ /// Resolve the symbol with the given name for the current module
+ void* dlsym(const std::string& name) const;
+
+ /// Parse the ELF module from its path on the filesystem
+ std::unique_ptr<ELF::Binary> parse_from_path() const;
+
+ /// Parse the ELF module from its path on the filesystem and given the parser
+ /// configuration
+ std::unique_ptr<ELF::Binary>
+ parse_from_path(const ELF::ParserConfig& config) const;
+
+ /// Parse the ELF module from memory with the given configuration
+ std::unique_ptr<ELF::Binary>
+ parse_from_memory(const ELF::ParserConfig& config) const;
+
+ /// Parse the ELF module from memory
+ std::unique_ptr<ELF::Binary> parse_from_memory() const;
+
+ ~Module() override = default;
+
+ static constexpr bool classof(const runtime::Module*) {
+ return platform() == PLATFORMS::LINUX;
+ }
+};
+
+/// Load the library with the given path/name
+LIEF_API std::unique_ptr<Module> dlopen(const std::string& name);
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/linux/Process.hpp b/deps/LIEF/include/LIEF/runtime/linux/Process.hpp
new file mode 100644
index 00000000000..373df5b849d
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/linux/Process.hpp
@@ -0,0 +1,48 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_LINUX_PROCESS_H
+#define LIEF_RUNTIME_LINUX_PROCESS_H
+#include <LIEF/visibility.h>
+#include <LIEF/runtime/Process.hpp>
+#include <string>
+
+namespace LIEF {
+namespace runtime {
+namespace Linux {
+
+/// This class exposes Linux-specific API for the current process
+class LIEF_API Process : public runtime::Process {
+ public:
+ using runtime::Process::Process;
+
+ /// Return the content of `/proc/cmdline`
+ static std::string cmdline();
+
+ /// Return the version of the GNU C Library (glibc) loaded in the current
+ /// process (e.g. ``2.39``).
+ ///
+ /// Return an empty string if the version cannot be determined.
+ static std::string glibc_version();
+
+ static constexpr bool classof(const runtime::Process*) {
+ return platform() == PLATFORMS::LINUX;
+ }
+};
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/osx.hpp b/deps/LIEF/include/LIEF/runtime/osx.hpp
new file mode 100644
index 00000000000..d9ad7aff414
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/osx.hpp
@@ -0,0 +1,23 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_OSX_H
+#define LIEF_RUNTIME_OSX_H
+
+#include <LIEF/runtime/osx/Module.hpp>
+#include <LIEF/runtime/osx/Host.hpp>
+#include <LIEF/runtime/osx/Process.hpp>
+
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/osx/Host.hpp b/deps/LIEF/include/LIEF/runtime/osx/Host.hpp
new file mode 100644
index 00000000000..bc366a58885
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/osx/Host.hpp
@@ -0,0 +1,87 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_OSX_HOST_H
+#define LIEF_RUNTIME_OSX_HOST_H
+#include <LIEF/visibility.h>
+#include <cstdint>
+#include <string>
+#include <ostream>
+
+namespace LIEF {
+namespace runtime {
+namespace osx {
+
+class LIEF_API Host {
+ public:
+ struct LIEF_API version_t {
+ uint32_t major = 0;
+ uint32_t minor = 0;
+ uint32_t patch = 0;
+
+ version_t(uint32_t major, uint32_t minor, uint32_t patch) :
+ major(major),
+ minor(minor),
+ patch(patch) {}
+
+ bool operator<=(const version_t& rhs) const;
+ bool operator>(const version_t& rhs) const {
+ return !(*this <= rhs);
+ }
+
+ bool operator>=(const version_t& rhs) const;
+ bool operator<(const version_t& rhs) const {
+ return !(*this >= rhs);
+ }
+
+ bool operator==(const version_t& other) const;
+ bool operator!=(const version_t& other) const {
+ return !(*this == other);
+ }
+
+ std::string to_string() const;
+
+ static const version_t& BigSur();
+ static const version_t& Monterey();
+ static const version_t& Ventura();
+ static const version_t& Sonoma();
+ static const version_t& Sequoia();
+ static const version_t& Tahoe();
+
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const version_t version) {
+ os << version.to_string();
+ return os;
+ }
+ };
+
+ /// The OS version string (e.g. `Version 26.2 (Build 25C56)`)
+ static std::string os_version_name();
+
+ /// The OS version (e.g. `13.0.0`)
+ static version_t os_version();
+
+ /// Whether System Integrity Protection (SIP) is enabled on this host.
+ ///
+ /// This conservatively returns ``true`` when the status can't be determined
+ /// (including on a non-macOS build).
+ static bool is_sip_enabled();
+};
+
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/osx/Module.hpp b/deps/LIEF/include/LIEF/runtime/osx/Module.hpp
new file mode 100644
index 00000000000..b79fbc52daf
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/osx/Module.hpp
@@ -0,0 +1,76 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_OSX_MODULE_H
+#define LIEF_RUNTIME_OSX_MODULE_H
+
+#include "LIEF/runtime/Module.hpp"
+#include "LIEF/runtime/utils.hpp"
+
+namespace LIEF {
+
+namespace MachO {
+class Binary;
+struct ParserConfig;
+}
+
+namespace runtime {
+namespace osx {
+
+/// This class exposes an OSX-specific API for a module
+class LIEF_API Module : public runtime::Module {
+ public:
+ using runtime::Module::Module;
+
+ /// Instantiate a Module from the given `dlopen` handle.
+ static std::unique_ptr<Module> from_handle(void* handle);
+
+ /// Return the `dlopen` handle for this library.
+ ///
+ /// Return a nullptr if the function fails or if the handler can't be found
+ void* handle() const;
+
+ /// Resolve the symbol with the given name for the current module
+ void* dlsym(const std::string& name) const;
+
+ /// Parse the Mach-O module from its path on the filesystem
+ std::unique_ptr<MachO::Binary> parse_from_path() const;
+
+ /// Parse the Mach-O module from its path on the filesystem with the given
+ /// parser configuration
+ std::unique_ptr<MachO::Binary>
+ parse_from_path(const MachO::ParserConfig& config) const;
+
+ /// Parse the Mach-O module from memory
+ std::unique_ptr<MachO::Binary> parse_from_memory() const;
+
+ /// Parse the Mach-O module from memory with the given configuration
+ std::unique_ptr<MachO::Binary>
+ parse_from_memory(const MachO::ParserConfig& config) const;
+
+ ~Module() override = default;
+
+ static constexpr bool classof(const runtime::Module*) {
+ return platform() == PLATFORMS::OSX;
+ }
+};
+
+/// Load the library with the given path or name.
+LIEF_API std::unique_ptr<Module> dlopen(const std::string& name);
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/osx/Process.hpp b/deps/LIEF/include/LIEF/runtime/osx/Process.hpp
new file mode 100644
index 00000000000..b1722aa1e19
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/osx/Process.hpp
@@ -0,0 +1,42 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_OSX_PROCESS_H
+#define LIEF_RUNTIME_OSX_PROCESS_H
+
+#include "LIEF/runtime/Process.hpp"
+#include "LIEF/runtime/utils.hpp"
+
+namespace LIEF {
+namespace runtime {
+namespace osx {
+
+/// This class exposes OSX-specific API for the current process
+class LIEF_API Process : public runtime::Process {
+ public:
+ using runtime::Process::Process;
+
+ /// Return the version of dyld for the current process
+ static std::string dyld_version();
+
+ static constexpr bool classof(const runtime::Process*) {
+ return platform() == PLATFORMS::OSX;
+ }
+};
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/utils.hpp b/deps/LIEF/include/LIEF/runtime/utils.hpp
new file mode 100644
index 00000000000..b7d94440485
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/utils.hpp
@@ -0,0 +1,114 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_UTILS_H
+#define LIEF_RUNTIME_UTILS_H
+#include <cstdint>
+#include "LIEF/config.h"
+
+#if defined(LIEF_RUNTIME_SUPPORT)
+ #include "LIEF/runtime/config.h"
+#endif
+
+namespace LIEF {
+namespace runtime {
+
+enum class PLATFORMS : uint32_t {
+ NONE = 0,
+ LINUX,
+ WINDOWS,
+ ANDROID_,
+ OSX,
+ IOS,
+};
+
+enum class ARCH : uint32_t {
+ NONE,
+ X86_64,
+ ARM64,
+ RISCV64,
+};
+
+/// Whether the runtime features are enabled
+static constexpr bool is_enabled() {
+ return lief_runtime_support;
+}
+
+/// Platform for which the runtime is compiled
+static constexpr PLATFORMS platform() {
+#if !defined(LIEF_RUNTIME_SUPPORT)
+ return PLATFORMS::NONE;
+#else
+ #if defined(LIEF_RUNTIME_PLATFORM_LINUX)
+ return PLATFORMS::LINUX;
+ #elif defined(LIEF_RUNTIME_PLATFORM_WINDOWS)
+ return PLATFORMS::WINDOWS;
+ #elif defined(LIEF_RUNTIME_PLATFORM_ANDROID)
+ return PLATFORMS::ANDROID_;
+ #elif defined(LIEF_RUNTIME_PLATFORM_OSX)
+ return PLATFORMS::OSX;
+ #elif defined(LIEF_RUNTIME_PLATFORM_IOS)
+ return PLATFORMS::IOS;
+ #else
+ return PLATFORMS::NONE;
+ #endif
+#endif
+}
+
+/// Architecture for which the runtime is compiled
+static constexpr ARCH arch() {
+#if !defined(LIEF_RUNTIME_SUPPORT)
+ return ARCH::NONE;
+#else
+ #if defined(LIEF_RUNTIME_ARCH_ARM64)
+ return ARCH::ARM64;
+ #elif defined(LIEF_RUNTIME_ARCH_X86_64)
+ return ARCH::X86_64;
+ #elif defined(LIEF_RUNTIME_ARCH_RISCV64)
+ return ARCH::RISCV64;
+ #else
+ return ARCH::NONE;
+ #endif
+
+#endif
+}
+
+static inline constexpr uintptr_t page_mask(uintptr_t page_size) {
+ return ~(page_size - 1);
+}
+
+static inline constexpr uintptr_t page_start(uintptr_t address,
+ uintptr_t page_size) {
+ return address & page_mask(page_size);
+}
+
+static inline constexpr uintptr_t page_align(uintptr_t address,
+ uintptr_t page_size) {
+ return (address + (page_size - 1)) & page_mask(page_size);
+}
+
+static inline constexpr uintptr_t page_offset(uintptr_t address,
+ uintptr_t page_size) {
+ return (address & ~page_mask(page_size));
+}
+
+static inline constexpr uintptr_t page_end(uintptr_t address,
+ uintptr_t page_size) {
+ return page_start(address + (page_size - 1), page_size);
+}
+
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/windows.hpp b/deps/LIEF/include/LIEF/runtime/windows.hpp
new file mode 100644
index 00000000000..ef062f2d72e
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/windows.hpp
@@ -0,0 +1,25 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_WIN_H
+#define LIEF_RUNTIME_WIN_H
+
+#include <LIEF/runtime/windows/Module.hpp>
+#include <LIEF/runtime/windows/Host.hpp>
+#include <LIEF/runtime/windows/Process.hpp>
+#include <LIEF/runtime/windows/PEB.hpp>
+#include <LIEF/runtime/windows/LdrDataTableEntry.hpp>
+
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/windows/Host.hpp b/deps/LIEF/include/LIEF/runtime/windows/Host.hpp
new file mode 100644
index 00000000000..ba5c8694c6f
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/windows/Host.hpp
@@ -0,0 +1,74 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_WINDOWS_HOST_H
+#define LIEF_RUNTIME_WINDOWS_HOST_H
+#include <LIEF/visibility.h>
+#include <cstdint>
+#include <string>
+#include <ostream>
+
+namespace LIEF {
+namespace runtime {
+namespace windows {
+
+/// This class exposes Windows-specific host information.
+class LIEF_API Host {
+ public:
+ struct LIEF_API version_t {
+ uint32_t major = 0;
+ uint32_t minor = 0;
+ uint32_t build_number = 0;
+
+ version_t() = default;
+
+ version_t(uint32_t major, uint32_t minor, uint32_t build_number) :
+ major(major),
+ minor(minor),
+ build_number(build_number) {}
+
+ bool operator<=(const version_t& rhs) const;
+ bool operator>(const version_t& rhs) const {
+ return !(*this <= rhs);
+ }
+
+ bool operator>=(const version_t& rhs) const;
+ bool operator<(const version_t& rhs) const {
+ return !(*this >= rhs);
+ }
+
+ bool operator==(const version_t& other) const;
+ bool operator!=(const version_t& other) const {
+ return !(*this == other);
+ }
+
+
+ std::string to_string() const;
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const version_t& version) {
+ os << version.to_string();
+ return os;
+ }
+ };
+
+ /// Return the Windows version (e.g., `10.0.26200`)
+ static version_t version();
+};
+
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/windows/LdrDataTableEntry.hpp b/deps/LIEF/include/LIEF/runtime/windows/LdrDataTableEntry.hpp
new file mode 100644
index 00000000000..1ddcd21ec75
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/windows/LdrDataTableEntry.hpp
@@ -0,0 +1,234 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_WINDOWS_LDR_DATA_TABLE_ENTRY_H
+#define LIEF_RUNTIME_WINDOWS_LDR_DATA_TABLE_ENTRY_H
+#include <cstdint>
+#include <memory>
+#include <ostream>
+#include <string>
+
+#include <LIEF/visibility.h>
+#include <LIEF/compiler_attributes.hpp>
+#include <LIEF/iterators.hpp>
+#include <LIEF/optional.hpp>
+
+namespace LIEF {
+namespace runtime {
+namespace windows {
+
+namespace details {
+class ldr_entry;
+class ldr_entry_it;
+}
+
+/// This class exposes a user-friendly interface over a `LDR_DATA_TABLE_ENTRY`,
+/// the structure used by the Windows loader to describe a module loaded in the
+/// current process.
+class LIEF_API LdrDataTableEntry {
+ public:
+ /// Bidirectional iterator over the LdrDataTableEntry mirroring the
+ /// doubly-linked list used by Windows.
+ class Iterator final
+ : public iterator_facade_base<Iterator, std::bidirectional_iterator_tag,
+ LdrDataTableEntry, std::ptrdiff_t,
+ const LdrDataTableEntry*,
+ const LdrDataTableEntry&> {
+ public:
+ using implementation = details::ldr_entry_it;
+ using iterator_facade_base::operator++;
+ using iterator_facade_base::operator--;
+
+ LIEF_API Iterator();
+
+ LIEF_API Iterator(std::unique_ptr<details::ldr_entry_it> impl);
+
+ LIEF_API Iterator(const Iterator&);
+ LIEF_API Iterator& operator=(const Iterator&);
+
+ LIEF_API Iterator(Iterator&&) noexcept;
+ LIEF_API Iterator& operator=(Iterator&&) noexcept;
+
+ LIEF_API ~Iterator();
+
+ friend LIEF_API bool operator==(const Iterator& LHS, const Iterator& RHS);
+ friend bool operator!=(const Iterator& LHS, const Iterator& RHS) {
+ return !(LHS == RHS);
+ }
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator++() LIEF_LIFETIMEBOUND;
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API Iterator& operator--() LIEF_LIFETIMEBOUND;
+
+ LIEF_API const LdrDataTableEntry& operator*() const LIEF_LIFETIMEBOUND;
+
+ // NOLINTNEXTLINE(bugprone-derived-method-shadowing-base-method)
+ LIEF_API const LdrDataTableEntry* operator->() const LIEF_LIFETIMEBOUND;
+
+ /// Transfer ownership of the entry at the current position to the caller.
+ /// Returns `nullptr` if the iterator is past-the-end.
+ LIEF_API std::unique_ptr<LdrDataTableEntry> yield();
+
+ private:
+ void load() const;
+
+ std::unique_ptr<details::ldr_entry_it> impl_;
+ mutable std::unique_ptr<LdrDataTableEntry> cached_;
+ };
+
+ LdrDataTableEntry() = delete;
+ LdrDataTableEntry(std::unique_ptr<details::ldr_entry> impl);
+
+ LdrDataTableEntry(const LdrDataTableEntry&) = delete;
+ LdrDataTableEntry& operator=(const LdrDataTableEntry&) = delete;
+
+ LdrDataTableEntry(LdrDataTableEntry&&) noexcept;
+ LdrDataTableEntry& operator=(LdrDataTableEntry&&) noexcept;
+
+ /// Base address at which the module is mapped in memory (`DllBase`).
+ uintptr_t dll_base() const;
+
+ /// Address of the entry point of the module (`EntryPoint`).
+ uintptr_t entry_point() const;
+
+ /// Size (in bytes) of the module's image in memory (`SizeOfImage`).
+ uint32_t size_of_image() const;
+
+ /// Full path of the module (`FullDllName`),
+ /// e.g. `C:\Windows\System32\ntdll.dll`.
+ std::string full_dll_name() const;
+
+ /// Base name of the module (`BaseDllName`), e.g. `ntdll.dll`.
+ std::string base_dll_name() const;
+
+ /// Loader flags describing the state of the module (`Flags`).
+ uint32_t flags() const;
+
+ /// Legacy load count of the module (`ObsoleteLoadCount`). Superseded by
+ /// `reference_count()` on Windows 8 and later.
+ uint16_t obsolete_load_count() const;
+
+ /// TLS slot index assigned to the module, or `0` when it has no TLS
+ /// (`TlsIndex`).
+ uint16_t tls_index() const;
+
+ /// `TimeDateStamp` of the module as cached by the loader.
+ uint32_t time_date_stamp() const;
+
+ /// Address of the activation context associated with the module's entry
+ /// point.
+ uintptr_t entry_point_activation_context() const;
+
+ /// Address of the per-entry loader lock.
+ uintptr_t lock() const;
+
+ /// Address of the dependency-graph node of the module (`DdagNode`).
+ ///
+ /// \note Available on Windows 8 and later.
+ optional<uintptr_t> ddag_node() const;
+
+ /// Address of the loader context used while the module is being snapped
+ ///
+ /// \note Available on Windows 8 and later.
+ optional<uintptr_t> load_context() const;
+
+ /// Base address of the module that triggered the load of this one.
+ ///
+ /// \note Available on Windows 8 and later.
+ optional<uintptr_t> parent_dll_base() const;
+
+ /// Address of the CHPE switch-back context.
+ ///
+ /// \note Available on Windows 8 and later.
+ optional<uintptr_t> switch_back_context() const;
+
+ /// Preferred base address recorded in the PE headers
+ ///
+ /// \note Available on Windows 8 and later.
+ optional<uintptr_t> original_base() const;
+
+ /// Time at which the module was loaded.
+ ///
+ /// \note Available on Windows 8 and later.
+ optional<int64_t> load_time() const;
+
+ /// Hash of the module's base name used to index the loader tables
+ ///
+ /// \note Available on Windows 8 and later.
+ optional<uint32_t> base_name_hash_value() const;
+
+ /// Reason why the module was loaded, as a `LDR_DLL_LOAD_REASON` value
+ ///
+ /// \note Available on Windows 8 and later.
+ optional<int32_t> load_reason() const;
+
+ /// Path-search options implied when the module was resolved
+ ///
+ /// \note Available on Windows 8 and later.
+ optional<uint32_t> implicit_path_options() const;
+
+ /// Number of references currently held on the module.
+ ///
+ /// \note Available on Windows 8 and later.
+ optional<uint32_t> reference_count() const;
+
+ /// Flags controlling how the statically-linked dependencies of the module
+ /// are loaded.
+ ///
+ /// \note Available on Windows 8 and later.
+ optional<uint32_t> dependent_load_flags() const;
+
+ /// Signing level of the module's image, as a `SE_SIGNING_LEVEL` value
+ ///
+ /// \note Available on Windows 10 and later.
+ optional<uint8_t> signing_level() const;
+
+ /// Image checksum cached by the loader
+ ///
+ /// \note Available on Windows 10 and later.
+ optional<uint32_t> check_sum() const;
+
+ /// Base address of the active hot-patch image, if any.
+ ///
+ /// \note Available on Windows 11 and later.
+ optional<uintptr_t> active_patch_image_base() const;
+
+ /// State of the hot-patch engine for this module, as a `LDR_HOT_PATCH_STATE`
+ /// value.
+ ///
+ /// \note Available on Windows 11 and later.
+ optional<uint32_t> hot_patch_state() const;
+
+ /// Pretty-printed representation of this entry.
+ std::string to_string() const;
+
+ LIEF_API friend std::ostream& operator<<(std::ostream& os,
+ const LdrDataTableEntry& entry) {
+ os << entry.to_string();
+ return os;
+ }
+
+ ~LdrDataTableEntry();
+
+ private:
+ std::unique_ptr<details::ldr_entry> impl_;
+};
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/windows/Module.hpp b/deps/LIEF/include/LIEF/runtime/windows/Module.hpp
new file mode 100644
index 00000000000..081ac6ab863
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/windows/Module.hpp
@@ -0,0 +1,90 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_WIN_MODULE_H
+#define LIEF_RUNTIME_WIN_MODULE_H
+
+#include "LIEF/runtime/Module.hpp"
+#include "LIEF/runtime/utils.hpp"
+
+namespace LIEF {
+
+namespace PE {
+class Binary;
+struct ParserConfig;
+}
+
+namespace runtime {
+namespace windows {
+
+/// This class exposes a Windows-specific API for a module
+class LIEF_API Module : public runtime::Module {
+ public:
+ using runtime::Module::Module;
+
+ static std::unique_ptr<Module> from_handle(void* H);
+
+ /// Return the `HMODULE` handle as an opaque pointer.
+ ///
+ /// Return a nullptr if the function fails or if the handler can't be found
+ void* handle() const;
+
+ /// Resolve the symbol with the given name for the current module
+ void* dlsym(const std::string& name) const;
+
+ /// Parse the PE module from its path on the filesystem
+ std::unique_ptr<PE::Binary> parse_from_path() const;
+
+ /// Parse the PE module from its path on the filesystem and given the parser
+ /// configuration
+ std::unique_ptr<PE::Binary>
+ parse_from_path(const PE::ParserConfig& config) const;
+
+ /// Parse the PE module from memory with the given configuration
+ std::unique_ptr<PE::Binary>
+ parse_from_memory(const PE::ParserConfig& config) const;
+
+ /// Parse the PE module from memory
+ std::unique_ptr<PE::Binary> parse_from_memory() const;
+
+ ~Module() override = default;
+
+ static constexpr bool classof(const runtime::Module*) {
+ return platform() == PLATFORMS::WINDOWS;
+ }
+};
+
+/// Load the windows library with the given path or name.
+LIEF_API std::unique_ptr<Module> dlopen(const std::string& name);
+
+/// Try to get the Module with the given name.
+///
+/// Return a nullptr if the module is not found
+///
+///
+/// ```cpp
+/// if (auto ntdll = find_module("ntdll.dll")) {
+/// std::cout << ntdll->path() << '\n';
+/// }
+/// ```
+/// \note This function relies on the Windows API `GetModuleHandle`
+/// which is more efficient than the generic implementation
+/// LIEF::runtime::module_from_name
+LIEF_API std::unique_ptr<Module> find_module(const std::string& name);
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/windows/PEB.hpp b/deps/LIEF/include/LIEF/runtime/windows/PEB.hpp
new file mode 100644
index 00000000000..447a756eebb
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/windows/PEB.hpp
@@ -0,0 +1,104 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_WINDOWS_PEB_H
+#define LIEF_RUNTIME_WINDOWS_PEB_H
+#include <cstdint>
+#include <memory>
+#include <LIEF/visibility.h>
+#include <LIEF/iterators.hpp>
+#include <LIEF/runtime/windows/LdrDataTableEntry.hpp>
+
+namespace LIEF {
+namespace runtime {
+namespace windows {
+class Process;
+
+namespace details {
+class peb;
+}
+
+/// This class exposes a user-friendly interface over the Process Environment
+/// Block (PEB) of the current process.
+///
+/// An instance can be created through LIEF::runtime::windows::Process::peb().
+///
+/// ```cpp
+/// if (auto peb = LIEF::runtime::windows::Process::peb()) {
+/// if (peb->being_debugged()) {
+/// // A debugger is attached to the current process
+/// }
+/// }
+/// ```
+class LIEF_API PEB {
+ public:
+ friend class Process;
+
+ PEB() = delete;
+ PEB(const PEB&) = delete;
+ PEB& operator=(const PEB&) = delete;
+
+ PEB(PEB&&) noexcept;
+ PEB& operator=(PEB&&) noexcept;
+
+ /// Iterator over the LdrDataTableEntry referenced by the loader data.
+ using entries_it = iterator_range<LdrDataTableEntry::Iterator>;
+
+ /// Whether the current process is being debugged.
+ bool being_debugged() const;
+
+ /// Address of the loader data structure (`PEB_LDR_DATA`).
+ uintptr_t ldr() const;
+
+ /// Address of the process parameters (`RTL_USER_PROCESS_PARAMETERS`).
+ uintptr_t process_parameters() const;
+
+ /// Address of the per-process ATL thunk SList (single-linked list).
+ uintptr_t atl_thunk_slist_ptr() const;
+
+ /// 32-bit value of the ATL thunk SList pointer.
+ uint32_t atl_thunk_slist_ptr32() const;
+
+ /// Address of the routine called once the process completed its
+ /// initialization (`PostProcessInitRoutine`).
+ uintptr_t post_process_init_routine() const;
+
+ /// Session ID associated with the current process.
+ uint32_t session_id() const;
+
+ /// Return a bidirectional iterator over the modules referenced by the
+ /// loader data (`Ldr`).
+ ///
+ /// ```cpp
+ /// if (auto peb = LIEF::runtime::windows::Process::peb()) {
+ /// for (const LdrDataTableEntry& entry : peb->entries()) {
+ /// // entry.base_dll_name(), entry.dll_base(), ...
+ /// }
+ /// }
+ /// ```
+ entries_it entries() const;
+
+ ~PEB();
+
+ private:
+ static std::unique_ptr<PEB> create();
+ PEB(std::unique_ptr<details::peb> impl);
+ std::unique_ptr<details::peb> impl_;
+};
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/windows/Process.hpp b/deps/LIEF/include/LIEF/runtime/windows/Process.hpp
new file mode 100644
index 00000000000..82946555a40
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/windows/Process.hpp
@@ -0,0 +1,44 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_WINDOWS_PROCESS_H
+#define LIEF_RUNTIME_WINDOWS_PROCESS_H
+#include <memory>
+
+#include <LIEF/visibility.h>
+#include <LIEF/runtime/Process.hpp>
+
+namespace LIEF {
+namespace runtime {
+namespace windows {
+class PEB;
+
+/// This class exposes Windows-specific API for the current process
+class LIEF_API Process : public runtime::Process {
+ public:
+ using runtime::Process::Process;
+
+ /// Return an interface over the internal Process Environment Block (PEB)
+ static std::unique_ptr<PEB> peb();
+
+ static constexpr bool classof(const runtime::Process*) {
+ return platform() == PLATFORMS::WINDOWS;
+ }
+};
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/runtime/windows/injector.hpp b/deps/LIEF/include/LIEF/runtime/windows/injector.hpp
new file mode 100644
index 00000000000..93ce41120de
--- /dev/null
+++ b/deps/LIEF/include/LIEF/runtime/windows/injector.hpp
@@ -0,0 +1,72 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_RUNTIME_WIN_INJECTOR_H
+#define LIEF_RUNTIME_WIN_INJECTOR_H
+
+#include "LIEF/visibility.h"
+#include "LIEF/errors.hpp"
+
+#include <ostream>
+#include <string>
+#include <unordered_map>
+
+namespace LIEF {
+namespace runtime {
+namespace windows {
+
+/// Describes how to spawn a new process and inject a library into it.
+struct LIEF_API injection_context_t {
+ /// Absolute path to the target executable to spawn.
+ std::string target_path;
+
+ /// Command-line arguments passed to the spawned process.
+ std::string args;
+
+ /// Absolute path to the library (DLL) that should be injected.
+ std::string library;
+
+ /// Environment variables to set in the spawned process. If left empty,
+ /// the current process environment is inherited.
+ std::unordered_map<std::string, std::string> env;
+
+ /// Check whether the context is consistent (required paths filled-in and
+ /// readable).
+ bool validate() const;
+
+ operator bool() const {
+ return validate();
+ }
+
+ std::string to_string() const;
+
+ friend LIEF_API std::ostream& operator<<(std::ostream& os,
+ const injection_context_t& ctx) {
+ os << ctx.to_string();
+ return os;
+ }
+};
+
+/// Spawn the target described by the given injection context and inject the
+/// associated library before the main thread starts executing.
+///
+/// This is the Windows equivalent of a "create suspended + remote LoadLibrary"
+/// approach.
+LIEF_API ok_error_t inject_spawn(const injection_context_t& ctx);
+
+}
+}
+}
+#endif
diff --git a/deps/LIEF/include/LIEF/span.hpp b/deps/LIEF/include/LIEF/span.hpp
index cfe4f05ed43..247a8eb536c 100644
--- a/deps/LIEF/include/LIEF/span.hpp
+++ b/deps/LIEF/include/LIEF/span.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,8 +18,13 @@
namespace LIEF {
-template <typename ElementType, std::size_t Extent = tcb::dynamic_extent>
+template<typename ElementType, std::size_t Extent = tcb::dynamic_extent>
using span = tcb::span<ElementType, Extent>;
+
+inline span<uint8_t> as_writable(span<const uint8_t> buffer) {
+ return {const_cast<uint8_t*>(buffer.data()), buffer.size()};
+}
+
}
#endif
diff --git a/deps/LIEF/include/LIEF/third-party/expected.hpp b/deps/LIEF/include/LIEF/third-party/expected.hpp
index 729cf0cb4d1..ece0f803ac3 100644
--- a/deps/LIEF/include/LIEF/third-party/expected.hpp
+++ b/deps/LIEF/include/LIEF/third-party/expected.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,9 +19,9 @@
#undef TL_EXPECTED_EXCEPTIONS_ENABLED
#ifndef LIEF_EXTERNAL_EXPECTED
-#include <LIEF/third-party/internal/expected.hpp>
+ #include <LIEF/third-party/internal/expected.hpp>
#else
-#include <tl/expected.hpp>
+ #include <tl/expected.hpp>
#endif
#endif
diff --git a/deps/LIEF/include/LIEF/third-party/internal/expected.hpp b/deps/LIEF/include/LIEF/third-party/internal/expected.hpp
index 06e6dc4f6c7..59e59aa1bd1 100644
--- a/deps/LIEF/include/LIEF/third-party/internal/expected.hpp
+++ b/deps/LIEF/include/LIEF/third-party/internal/expected.hpp
@@ -17,8 +17,8 @@
#define TL_EXPECTED_HPP
#define TL_EXPECTED_VERSION_MAJOR 1
-#define TL_EXPECTED_VERSION_MINOR 2
-#define TL_EXPECTED_VERSION_PATCH 0
+#define TL_EXPECTED_VERSION_MINOR 3
+#define TL_EXPECTED_VERSION_PATCH 1
#include <exception>
#include <functional>
@@ -51,6 +51,12 @@
#define TL_EXPECTED_GCC55
#endif
+#ifdef _MSVC_LANG
+#define TL_CPLUSPLUS _MSVC_LANG
+#else
+#define TL_CPLUSPLUS __cplusplus
+#endif
+
#if !defined(TL_ASSERT)
//can't have assert in constexpr in C++11 and GCC 4.9 has a compiler bug
#if (TL_CPLUSPLUS > 201103L) && !defined(TL_EXPECTED_GCC49)
@@ -109,12 +115,6 @@ struct is_trivially_copy_constructible<std::vector<T, A>> : std::false_type {};
std::is_trivially_destructible<T>
#endif
-#ifdef _MSVC_LANG
-#define TL_CPLUSPLUS _MSVC_LANG
-#else
-#define TL_CPLUSPLUS __cplusplus
-#endif
-
#if TL_CPLUSPLUS > 201103L
#define TL_EXPECTED_CXX14
#endif
@@ -219,21 +219,13 @@ struct unexpect_t {
};
static constexpr unexpect_t unexpect{};
-namespace detail {
-template <typename E>
-[[noreturn]] TL_EXPECTED_11_CONSTEXPR void throw_exception(E &&e) {
#ifdef TL_EXPECTED_EXCEPTIONS_ENABLED
- throw std::forward<E>(e);
+#define TL_EXPECTED_THROW_EXCEPTION(e) throw((e));
#else
- (void)e;
-#ifdef _MSC_VER
- __assume(0);
-#else
- __builtin_unreachable();
-#endif
+#define TL_EXPECTED_THROW_EXCEPTION(e) std::terminate();
#endif
-}
+namespace detail {
#ifndef TL_TRAITS_MUTEX
#define TL_TRAITS_MUTEX
// C++14-style aliases for brevity
@@ -2024,28 +2016,28 @@ public:
detail::enable_if_t<!std::is_void<U>::value> * = nullptr>
TL_EXPECTED_11_CONSTEXPR const U &value() const & {
if (!has_value())
- detail::throw_exception(bad_expected_access<E>(err().value()));
+ TL_EXPECTED_THROW_EXCEPTION(bad_expected_access<E>(err().value()));
return val();
}
template <class U = T,
detail::enable_if_t<!std::is_void<U>::value> * = nullptr>
TL_EXPECTED_11_CONSTEXPR U &value() & {
if (!has_value())
- detail::throw_exception(bad_expected_access<E>(err().value()));
+ TL_EXPECTED_THROW_EXCEPTION(bad_expected_access<E>(err().value()));
return val();
}
template <class U = T,
detail::enable_if_t<!std::is_void<U>::value> * = nullptr>
TL_EXPECTED_11_CONSTEXPR const U &&value() const && {
if (!has_value())
- detail::throw_exception(bad_expected_access<E>(std::move(err()).value()));
+ TL_EXPECTED_THROW_EXCEPTION(bad_expected_access<E>(std::move(err()).value()));
return std::move(val());
}
template <class U = T,
detail::enable_if_t<!std::is_void<U>::value> * = nullptr>
TL_EXPECTED_11_CONSTEXPR U &&value() && {
if (!has_value())
- detail::throw_exception(bad_expected_access<E>(std::move(err()).value()));
+ TL_EXPECTED_THROW_EXCEPTION(bad_expected_access<E>(std::move(err()).value()));
return std::move(val());
}
diff --git a/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/checked.h b/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/checked.h
index 98949f8bca1..96ceb4d5041 100644
--- a/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/checked.h
+++ b/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/checked.h
@@ -129,7 +129,7 @@ namespace utf8
template <typename octet_iterator, typename output_iterator>
inline output_iterator replace_invalid(octet_iterator start, octet_iterator end, output_iterator out)
{
- static const utfchar32_t replacement_marker = utf8::internal::mask16(0xfffd);
+ static const utfchar32_t replacement_marker = static_cast<utfchar32_t>(utf8::internal::mask16(0xfffd));
return utf8::replace_invalid(start, end, out, replacement_marker);
}
@@ -227,11 +227,11 @@ namespace utf8
octet_iterator utf16to8 (u16bit_iterator start, u16bit_iterator end, octet_iterator result)
{
while (start != end) {
- utfchar32_t cp = utf8::internal::mask16(*start++);
+ utfchar32_t cp = static_cast<utfchar32_t>(utf8::internal::mask16(*start++));
// Take care of surrogate pairs first
if (utf8::internal::is_lead_surrogate(cp)) {
if (start != end) {
- const utfchar32_t trail_surrogate = utf8::internal::mask16(*start++);
+ const utfchar32_t trail_surrogate = static_cast<utfchar32_t>(utf8::internal::mask16(*start++));
if (utf8::internal::is_trail_surrogate(trail_surrogate))
cp = (cp << 10) + trail_surrogate + internal::SURROGATE_OFFSET;
else
diff --git a/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/core.h b/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/core.h
index 627133c6188..8e128c1802c 100644
--- a/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/core.h
+++ b/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/core.h
@@ -43,9 +43,12 @@ DEALINGS IN THE SOFTWARE.
#if UTF_CPP_CPLUSPLUS >= 201103L // C++ 11 or later
#define UTF_CPP_OVERRIDE override
#define UTF_CPP_NOEXCEPT noexcept
+ #define UTF_CPP_STATIC_ASSERT(condition) static_assert(condition, "UTFCPP static assert");
#else // C++ 98/03
#define UTF_CPP_OVERRIDE
#define UTF_CPP_NOEXCEPT throw()
+ // Not worth simulating static_assert:
+ #define UTF_CPP_STATIC_ASSERT(condition) (void)(condition);
#endif // C++ 11 or later
@@ -87,6 +90,7 @@ namespace internal
{
return static_cast<utfchar8_t>(0xff & oc);
}
+
template<typename u16_type>
inline utfchar16_t mask16(u16_type oc)
{
@@ -101,17 +105,17 @@ namespace internal
inline bool is_lead_surrogate(utfchar32_t cp)
{
- return (cp >= LEAD_SURROGATE_MIN && cp <= LEAD_SURROGATE_MAX);
+ return (cp >= static_cast<utfchar32_t>(LEAD_SURROGATE_MIN) && cp <= static_cast<utfchar32_t>(LEAD_SURROGATE_MAX));
}
inline bool is_trail_surrogate(utfchar32_t cp)
{
- return (cp >= TRAIL_SURROGATE_MIN && cp <= TRAIL_SURROGATE_MAX);
+ return (cp >= static_cast<utfchar32_t>(TRAIL_SURROGATE_MIN) && cp <= static_cast<utfchar32_t>(TRAIL_SURROGATE_MAX));
}
inline bool is_surrogate(utfchar32_t cp)
{
- return (cp >= LEAD_SURROGATE_MIN && cp <= TRAIL_SURROGATE_MAX);
+ return (cp >= static_cast<utfchar32_t>(LEAD_SURROGATE_MIN) && cp <= static_cast<utfchar32_t>(TRAIL_SURROGATE_MAX));
}
inline bool is_code_point_valid(utfchar32_t cp)
@@ -143,15 +147,15 @@ namespace internal
inline bool is_overlong_sequence(utfchar32_t cp, int length)
{
if (cp < 0x80) {
- if (length != 1)
+ if (length != 1)
return true;
}
else if (cp < 0x800) {
- if (length != 2)
+ if (length != 2)
return true;
}
else if (cp < 0x10000) {
- if (length != 3)
+ if (length != 3)
return true;
}
return false;
@@ -181,7 +185,7 @@ namespace internal
if (it == end)
return NOT_ENOUGH_ROOM;
- code_point = utf8::internal::mask8(*it);
+ code_point = static_cast<utfchar32_t>(utf8::internal::mask8(*it));
return UTF8_OK;
}
@@ -189,10 +193,10 @@ namespace internal
template <typename octet_iterator>
utf_error get_sequence_2(octet_iterator& it, octet_iterator end, utfchar32_t& code_point)
{
- if (it == end)
+ if (it == end)
return NOT_ENOUGH_ROOM;
- code_point = utf8::internal::mask8(*it);
+ code_point = static_cast<utfchar32_t>(utf8::internal::mask8(*it));
UTF8_CPP_INCREASE_AND_RETURN_ON_ERROR(it, end)
@@ -206,8 +210,8 @@ namespace internal
{
if (it == end)
return NOT_ENOUGH_ROOM;
-
- code_point = utf8::internal::mask8(*it);
+
+ code_point = static_cast<utfchar32_t>(utf8::internal::mask8(*it));
UTF8_CPP_INCREASE_AND_RETURN_ON_ERROR(it, end)
@@ -226,7 +230,7 @@ namespace internal
if (it == end)
return NOT_ENOUGH_ROOM;
- code_point = utf8::internal::mask8(*it);
+ code_point = static_cast<utfchar32_t>(utf8::internal::mask8(*it));
UTF8_CPP_INCREASE_AND_RETURN_ON_ERROR(it, end)
@@ -290,7 +294,7 @@ namespace internal
else
err = OVERLONG_SEQUENCE;
}
- else
+ else
err = INVALID_CODE_POINT;
}
@@ -308,6 +312,10 @@ namespace internal
template <typename word_iterator>
utf_error validate_next16(word_iterator& it, word_iterator end, utfchar32_t& code_point)
{
+ // Make sure the iterator dereferences a large enough type
+ typedef typename std::iterator_traits<word_iterator>::value_type word_type;
+ UTF_CPP_STATIC_ASSERT(sizeof(word_type) >= sizeof(utfchar16_t));
+ // Check the edge case:
if (it == end)
return NOT_ENOUGH_ROOM;
// Save the original value of it so we can go back in case of failure
@@ -326,14 +334,14 @@ namespace internal
err = NOT_ENOUGH_ROOM;
else if (is_lead_surrogate(first_word)) {
const utfchar16_t second_word = *it++;
- if (is_trail_surrogate(second_word)) {
- code_point = static_cast<utfchar32_t>(first_word << 10) + second_word + SURROGATE_OFFSET;
+ if (is_trail_surrogate(static_cast<utfchar32_t>(second_word))) {
+ code_point = static_cast<utfchar32_t>(first_word << 10) + static_cast<utfchar32_t>(second_word) + SURROGATE_OFFSET;
return UTF8_OK;
- } else
- err = INCOMPLETE_SEQUENCE;
-
+ } else
+ err = INCOMPLETE_SEQUENCE;
+
} else {
- err = INVALID_LEAD;
+ err = INVALID_LEAD;
}
}
// error branch
@@ -365,7 +373,7 @@ namespace internal
}
return result;
}
-
+
// One of the following overloads will be invoked from the API calls
// A simple (but dangerous) case: the caller appends byte(s) to a char array
@@ -395,6 +403,7 @@ namespace internal
// the word_type.
template <typename word_iterator, typename word_type>
word_iterator append16(utfchar32_t cp, word_iterator result) {
+ UTF_CPP_STATIC_ASSERT(sizeof(word_type) >= sizeof(utfchar16_t));
if (is_in_bmp(cp))
*(result++) = static_cast<word_type>(cp);
else {
@@ -444,7 +453,7 @@ namespace internal
inline const char* find_invalid(const char* str)
{
const char* end = str + std::strlen(str);
- return find_invalid(str, end);
+ return find_invalid(str, end);
}
inline std::size_t find_invalid(const std::string& s)
@@ -484,9 +493,8 @@ namespace internal
inline bool starts_with_bom(const std::string& s)
{
return starts_with_bom(s.begin(), s.end());
- }
+ }
} // namespace utf8
#endif // header guard
-
diff --git a/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/cpp17.h b/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/cpp17.h
index 6e2fcc238af..075873003ef 100644
--- a/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/cpp17.h
+++ b/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/cpp17.h
@@ -89,7 +89,7 @@ namespace utf8
{
return starts_with_bom(s.begin(), s.end());
}
-
+
} // namespace utf8
#endif // header guard
diff --git a/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/unchecked.h b/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/unchecked.h
index bf29178939e..173d0302e14 100644
--- a/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/unchecked.h
+++ b/deps/LIEF/include/LIEF/third-party/internal/utfcpp/utf8/unchecked.h
@@ -82,7 +82,7 @@ namespace utf8
template <typename octet_iterator, typename output_iterator>
inline output_iterator replace_invalid(octet_iterator start, octet_iterator end, output_iterator out)
{
- static const utfchar32_t replacement_marker = utf8::internal::mask16(0xfffd);
+ static const utfchar32_t replacement_marker = static_cast<utfchar32_t>(utf8::internal::mask16(0xfffd));
return utf8::unchecked::replace_invalid(start, end, out, replacement_marker);
}
@@ -108,22 +108,22 @@ namespace utf8
case 1:
break;
case 2:
- it++;
+ ++it;
cp = ((cp << 6) & 0x7ff) + ((*it) & 0x3f);
break;
case 3:
- ++it;
+ ++it;
cp = ((cp << 12) & 0xffff) + ((utf8::internal::mask8(*it) << 6) & 0xfff);
++it;
cp = static_cast<utfchar32_t>(cp + ((*it) & 0x3f));
break;
case 4:
++it;
- cp = ((cp << 18) & 0x1fffff) + ((utf8::internal::mask8(*it) << 12) & 0x3ffff);
+ cp = ((cp << 18) & 0x1fffff) + ((utf8::internal::mask8(*it) << 12) & 0x3ffff);
++it;
cp = static_cast<utfchar32_t>(cp + ((utf8::internal::mask8(*it) << 6) & 0xfff));
++it;
- cp = static_cast<utfchar32_t>(cp + ((*it) & 0x3f));
+ cp = static_cast<utfchar32_t>(cp + ((*it) & 0x3f));
break;
}
++it;
@@ -173,7 +173,7 @@ namespace utf8
distance(octet_iterator first, octet_iterator last)
{
typename std::iterator_traits<octet_iterator>::difference_type dist;
- for (dist = 0; first < last; ++dist)
+ for (dist = 0; first < last; ++dist)
utf8::unchecked::next(first);
return dist;
}
@@ -247,15 +247,15 @@ namespace utf8
octet_iterator temp = it;
return utf8::unchecked::next(temp);
}
- bool operator == (const iterator& rhs) const
- {
+ bool operator == (const iterator& rhs) const
+ {
return (it == rhs.it);
}
bool operator != (const iterator& rhs) const
{
return !(operator == (rhs));
}
- iterator& operator ++ ()
+ iterator& operator ++ ()
{
::std::advance(it, utf8::internal::sequence_length(it));
return *this;
@@ -265,7 +265,7 @@ namespace utf8
iterator temp = *this;
::std::advance(it, utf8::internal::sequence_length(it));
return temp;
- }
+ }
iterator& operator -- ()
{
utf8::unchecked::prior(it);
@@ -280,8 +280,7 @@ namespace utf8
}; // class iterator
} // namespace utf8::unchecked
-} // namespace utf8
-
+} // namespace utf8
#endif // header guard
diff --git a/deps/LIEF/include/LIEF/third-party/span.hpp b/deps/LIEF/include/LIEF/third-party/span.hpp
index b834f2a1154..f1b0dc68727 100644
--- a/deps/LIEF/include/LIEF/third-party/span.hpp
+++ b/deps/LIEF/include/LIEF/third-party/span.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,9 @@
#include "LIEF/config.h"
#ifndef LIEF_EXTERNAL_SPAN
-#include <LIEF/third-party/internal/span.hpp>
+ #include <LIEF/third-party/internal/span.hpp>
#else
-#include <tcb/span.hpp>
+ #include <tcb/span.hpp>
#endif
#endif
diff --git a/deps/LIEF/include/LIEF/to_json.hpp b/deps/LIEF/include/LIEF/to_json.hpp
index cf99f65ce28..5e0e4eda37c 100644
--- a/deps/LIEF/include/LIEF/to_json.hpp
+++ b/deps/LIEF/include/LIEF/to_json.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,20 +21,20 @@
#ifdef LIEF_JSON_SUPPORT
-#ifdef LIEF_ELF_SUPPORT
-#include "LIEF/ELF/json.hpp"
-#endif
+ #ifdef LIEF_ELF_SUPPORT
+ #include "LIEF/ELF/json.hpp"
+ #endif
-#ifdef LIEF_PE_SUPPORT
-#include "LIEF/PE/json.hpp"
-#endif
+ #ifdef LIEF_PE_SUPPORT
+ #include "LIEF/PE/json.hpp"
+ #endif
-#include "LIEF/Abstract/json.hpp"
+ #include "LIEF/Abstract/json.hpp"
-#include "LIEF/Abstract.hpp"
-#include "LIEF/ELF.hpp"
-#include "LIEF/PE.hpp"
+ #include "LIEF/Abstract.hpp"
+ #include "LIEF/ELF.hpp"
+ #include "LIEF/PE.hpp"
-#endif // LIEF_JSON_SUPPORT
+#endif
#endif
diff --git a/deps/LIEF/include/LIEF/types.hpp b/deps/LIEF/include/LIEF/types.hpp
index f75d6ee505e..e719be29b61 100644
--- a/deps/LIEF/include/LIEF/types.hpp
+++ b/deps/LIEF/include/LIEF/types.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,9 +20,9 @@
#include <cstddef>
#if defined(_MSC_VER)
-#define ALIGNED_(x) __declspec(align(x))
+ #define ALIGNED_(x) __declspec(align(x))
#elif defined(__GNUC__)
-#define ALIGNED_(x) __attribute__ ((__aligned__(x), __packed__))
+ #define ALIGNED_(x) __attribute__((__aligned__(x), __packed__))
#endif
diff --git a/deps/LIEF/include/LIEF/utils.hpp b/deps/LIEF/include/LIEF/utils.hpp
index b3c8f3db369..5e278e73fb7 100644
--- a/deps/LIEF/include/LIEF/utils.hpp
+++ b/deps/LIEF/include/LIEF/utils.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomasliefuthp
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -47,6 +47,17 @@ inline uint64_t align_down(uint64_t value, uint64_t align_on) {
return value;
}
+inline uint64_t align_with_offset(uint64_t value, uint64_t align_on,
+ uint64_t offset) {
+ return align(value - offset, align_on) + offset;
+}
+
+// Align up with alignment being a power of 2
+template<class T>
+constexpr T align_up(T value, T alignment) noexcept {
+ return (value + (alignment - 1)) & ~(alignment - 1);
+}
+
template<typename T>
inline constexpr T round(T x) {
return static_cast<T>(round<uint64_t>(x));
@@ -55,7 +66,7 @@ inline constexpr T round(T x) {
template<>
inline uint64_t round<uint64_t>(uint64_t x) {
- //From http://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2
+ // From http://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2
x--;
x |= x >> 1; // handle 2 bit numbers
x |= x >> 2; // handle 4 bit numbers
@@ -68,39 +79,41 @@ inline uint64_t round<uint64_t>(uint64_t x) {
}
-constexpr size_t operator ""_KB(unsigned long long kbs)
-{
- return 1024LLU * kbs;
+constexpr size_t operator""_KB(unsigned long long kbs) {
+ return 1024LLU * kbs;
}
-constexpr size_t operator ""_MB(unsigned long long mbs)
-{
- return 1024LLU * 1024LLU * mbs;
+constexpr size_t operator""_MB(unsigned long long mbs) {
+ return 1024LLU * 1024LLU * mbs;
}
-constexpr size_t operator ""_GB(unsigned long long gbs)
-{
- return 1024LLU * 1024LLU * 1024LLU * gbs;
+constexpr size_t operator""_GB(unsigned long long gbs) {
+ return 1024LLU * 1024LLU * 1024LLU * gbs;
}
struct lief_version_t {
uint64_t major = 0;
uint64_t minor = 0;
uint64_t patch = 0;
- uint64_t id = 0;
+ uint64_t id = 0;
LIEF_API std::string to_string() const;
- friend LIEF_API
- std::ostream& operator<<(std::ostream& os, const lief_version_t& version)
- {
+ friend LIEF_API std::ostream& operator<<(std::ostream& os,
+ const lief_version_t& version) {
os << version.to_string();
return os;
}
};
+LIEF_API std::string u16tou8(const char16_t* buffer, size_t size,
+ bool remove_null_char = false);
+
/// Convert a UTF-16 string to a UTF-8 one
-LIEF_API std::string u16tou8(const std::u16string& string, bool remove_null_char = false);
+inline std::string u16tou8(const std::u16string& string,
+ bool remove_null_char = false) {
+ return u16tou8(string.data(), string.size(), remove_null_char);
+}
/// Convert a UTF-8 string to a UTF-16 one
LIEF_API result<std::u16string> u8tou16(const std::string& string);
@@ -134,21 +147,18 @@ LIEF_API result<std::string> demangle(const std::string& mangled);
/// | 00 00 00 00 00 00 00 00 00 00 00 00 | ............ |
/// +---------------------------------------------------------------------+
/// ```
-LIEF_API std::string dump(
- const uint8_t* buffer, size_t size, const std::string& title = "",
- const std::string& prefix = "", size_t limit = 0);
+LIEF_API std::string dump(const uint8_t* buffer, size_t size,
+ const std::string& title = "",
+ const std::string& prefix = "", size_t limit = 0);
inline std::string dump(span<const uint8_t> data, const std::string& title = "",
- const std::string& prefix = "", size_t limit = 0)
-{
+ const std::string& prefix = "", size_t limit = 0) {
return dump(data.data(), data.size(), title, prefix, limit);
}
inline std::string dump(const std::vector<uint8_t>& data,
const std::string& title = "",
- const std::string& prefix = "",
- size_t limit = 0)
-{
+ const std::string& prefix = "", size_t limit = 0) {
return dump(data.data(), data.size(), title, prefix, limit);
}
}
diff --git a/deps/LIEF/include/LIEF/version.h b/deps/LIEF/include/LIEF/version.h
index 37b0874d7b8..76cc51438fb 100644
--- a/deps/LIEF/include/LIEF/version.h
+++ b/deps/LIEF/include/LIEF/version.h
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,13 +22,13 @@
#define LIEF_NAME "LIEF (Debug)"
#endif
-#define LIEF_VERSION "0.17.0-"
+#define LIEF_VERSION "1.0.0-"
#define LIEF_TAGGED 0
#define LIEF_TAG ""
#define LIEF_COMMIT ""
-#define LIEF_VERSION_MAJOR 0
-#define LIEF_VERSION_MINOR 17
+#define LIEF_VERSION_MAJOR 1
+#define LIEF_VERSION_MINOR 0
#define LIEF_VERSION_PATCH 0
#define HUMAN_VERSION " v" LIEF_VERSION
diff --git a/deps/LIEF/include/LIEF/version.h.in b/deps/LIEF/include/LIEF/version.h.in
index 4f3e184388e..2386dc2256a 100644
--- a/deps/LIEF/include/LIEF/version.h.in
+++ b/deps/LIEF/include/LIEF/version.h.in
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/include/LIEF/visibility.h b/deps/LIEF/include/LIEF/visibility.h
index 1599b0b53d4..93301aa7a8f 100644
--- a/deps/LIEF/include/LIEF/visibility.h
+++ b/deps/LIEF/include/LIEF/visibility.h
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,15 +17,19 @@
#ifndef LIEF_SYMBOL_VISIBILITY_H
#define LIEF_SYMBOL_VISIBILITY_H
-/* Thanks to https://github.com/aguinet/dragonffi/blob/40f3fecb9530a2ef840f63882c5284ea5e8dc9e8/include/dffi/exports.h */
+#include "LIEF/compiler_attributes.hpp"
+
+/* Thanks to
+ * https://github.com/aguinet/dragonffi/blob/40f3fecb9530a2ef840f63882c5284ea5e8dc9e8/include/dffi/exports.h
+ */
#if defined _WIN32 || defined __CYGWIN__
#define LIEF_HELPER_IMPORT __declspec(dllimport)
#define LIEF_HELPER_EXPORT __declspec(dllexport)
#define LIEF_HELPER_LOCAL
#else
- #define LIEF_HELPER_IMPORT __attribute__ ((visibility ("default")))
- #define LIEF_HELPER_EXPORT __attribute__ ((visibility ("default")))
- #define LIEF_HELPER_LOCAL __attribute__ ((visibility ("hidden")))
+ #define LIEF_HELPER_IMPORT __attribute__((visibility("default")))
+ #define LIEF_HELPER_EXPORT __attribute__((visibility("default")))
+ #define LIEF_HELPER_LOCAL __attribute__((visibility("hidden")))
#endif
#if defined(LIEF_STATIC)
diff --git a/deps/LIEF/include/LIEF/visitor_macros.hpp b/deps/LIEF/include/LIEF/visitor_macros.hpp
index 0974fe970ef..3eaed88c308 100644
--- a/deps/LIEF/include/LIEF/visitor_macros.hpp
+++ b/deps/LIEF/include/LIEF/visitor_macros.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,12 +20,12 @@
// PE Support
// ==========
#if defined(LIEF_PE_SUPPORT)
- #define LIEF_PE_FORWARD(OBJ) \
- namespace PE { \
- class OBJ; \
+ #define LIEF_PE_FORWARD(OBJ) \
+ namespace PE { \
+ class OBJ; \
}
- #define LIEF_PE_VISITABLE(OBJ) \
+ #define LIEF_PE_VISITABLE(OBJ) \
virtual void visit(const PE::OBJ&) {}
#else
#define LIEF_PE_VISITABLE(OBJ)
@@ -36,11 +36,11 @@
// ELF Support
// ===========
#if defined(LIEF_ELF_SUPPORT)
- #define LIEF_ELF_FORWARD(OBJ) \
- namespace ELF { \
- class OBJ; \
+ #define LIEF_ELF_FORWARD(OBJ) \
+ namespace ELF { \
+ class OBJ; \
}
- #define LIEF_ELF_VISITABLE(OBJ) \
+ #define LIEF_ELF_VISITABLE(OBJ) \
virtual void visit(const ELF::OBJ&) {}
#else
#define LIEF_ELF_FORWARD(OBJ)
@@ -50,11 +50,11 @@
// MachO Support
// =============
#if defined(LIEF_MACHO_SUPPORT)
- #define LIEF_MACHO_FORWARD(OBJ) \
- namespace MachO { \
- class OBJ; \
+ #define LIEF_MACHO_FORWARD(OBJ) \
+ namespace MachO { \
+ class OBJ; \
}
- #define LIEF_MACHO_VISITABLE(OBJ) \
+ #define LIEF_MACHO_VISITABLE(OBJ) \
virtual void visit(const MachO::OBJ&) {}
#else
#define LIEF_MACHO_FORWARD(OBJ)
@@ -65,11 +65,11 @@
// OAT Support
// ===========
#if defined(LIEF_OAT_SUPPORT)
- #define LIEF_OAT_FORWARD(OBJ) \
- namespace OAT { \
- class OBJ; \
+ #define LIEF_OAT_FORWARD(OBJ) \
+ namespace OAT { \
+ class OBJ; \
}
- #define LIEF_OAT_VISITABLE(OBJ) \
+ #define LIEF_OAT_VISITABLE(OBJ) \
virtual void visit(const OAT::OBJ&) {}
#else
#define LIEF_OAT_FORWARD(OBJ)
@@ -80,11 +80,11 @@
// DEX Support
// ===========
#if defined(LIEF_DEX_SUPPORT)
- #define LIEF_DEX_FORWARD(OBJ) \
- namespace DEX { \
- class OBJ; \
+ #define LIEF_DEX_FORWARD(OBJ) \
+ namespace DEX { \
+ class OBJ; \
}
- #define LIEF_DEX_VISITABLE(OBJ) \
+ #define LIEF_DEX_VISITABLE(OBJ) \
virtual void visit(const DEX::OBJ&) {}
#else
#define LIEF_DEX_FORWARD(OBJ)
@@ -95,11 +95,11 @@
// VDEX Support
// ===========
#if defined(LIEF_VDEX_SUPPORT)
- #define LIEF_VDEX_FORWARD(OBJ) \
- namespace VDEX { \
- class OBJ; \
+ #define LIEF_VDEX_FORWARD(OBJ) \
+ namespace VDEX { \
+ class OBJ; \
}
- #define LIEF_VDEX_VISITABLE(OBJ) \
+ #define LIEF_VDEX_VISITABLE(OBJ) \
virtual void visit(const VDEX::OBJ&) {}
#else
#define LIEF_VDEX_FORWARD(OBJ)
@@ -110,11 +110,11 @@
// ART Support
// ===========
#if defined(LIEF_ART_SUPPORT)
- #define LIEF_ART_FORWARD(OBJ) \
- namespace ART { \
- class OBJ; \
+ #define LIEF_ART_FORWARD(OBJ) \
+ namespace ART { \
+ class OBJ; \
}
- #define LIEF_ART_VISITABLE(OBJ) \
+ #define LIEF_ART_VISITABLE(OBJ) \
virtual void visit(const ART::OBJ&) {}
#else
#define LIEF_ART_FORWARD(OBJ)
@@ -123,10 +123,9 @@
// Abstract
// ========
-#define LIEF_ABSTRACT_FORWARD(OBJ) \
- class OBJ;
+#define LIEF_ABSTRACT_FORWARD(OBJ) class OBJ;
-#define LIEF_ABSTRACT_VISITABLE(OBJ) \
+#define LIEF_ABSTRACT_VISITABLE(OBJ) \
virtual void visit(const OBJ&) {}
diff --git a/deps/LIEF/src/ART/EnumToString.cpp b/deps/LIEF/src/ART/EnumToString.cpp
index 99ed84481b3..482d76a0e1c 100644
--- a/deps/LIEF/src/ART/EnumToString.cpp
+++ b/deps/LIEF/src/ART/EnumToString.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,112 +17,115 @@
#include "LIEF/ART/EnumToString.hpp"
#include <map>
-namespace LIEF {
-namespace ART {
+
+namespace LIEF::ART {
const char* to_string(STORAGE_MODES e) {
- const std::map<STORAGE_MODES, const char*> enumStrings {
- { STORAGE_MODES::STORAGE_UNCOMPRESSED, "UNCOMPRESSED" },
- { STORAGE_MODES::STORAGE_LZ4, "LZ4" },
- { STORAGE_MODES::STORAGE_LZ4HC, "LZ4HC" },
+ const std::map<STORAGE_MODES, const char*> enumStrings{
+ {STORAGE_MODES::STORAGE_UNCOMPRESSED, "UNCOMPRESSED"},
+ {STORAGE_MODES::STORAGE_LZ4, "LZ4"},
+ {STORAGE_MODES::STORAGE_LZ4HC, "LZ4HC"},
};
- auto it = enumStrings.find(e);
+ auto it = enumStrings.find(e);
return it == enumStrings.end() ? "UNDEFINED" : it->second;
}
const char* to_string(ART_17::IMAGE_SECTIONS e) {
- const std::map<ART_17::IMAGE_SECTIONS, const char*> enumStrings {
- { ART_17::IMAGE_SECTIONS::SECTION_OBJECTS, "OBJECTS" },
- { ART_17::IMAGE_SECTIONS::SECTION_ART_FIELDS, "ART_FIELDS" },
- { ART_17::IMAGE_SECTIONS::SECTION_ART_METHODS, "ART_METHODS" },
- { ART_17::IMAGE_SECTIONS::SECTION_INTERNED_STRINGS, "INTERNED_STRINGS" },
- { ART_17::IMAGE_SECTIONS::SECTION_IMAGE_BITMAP, "IMAGE_BITMAP" },
+ const std::map<ART_17::IMAGE_SECTIONS, const char*> enumStrings{
+ {ART_17::IMAGE_SECTIONS::SECTION_OBJECTS, "OBJECTS"},
+ {ART_17::IMAGE_SECTIONS::SECTION_ART_FIELDS, "ART_FIELDS"},
+ {ART_17::IMAGE_SECTIONS::SECTION_ART_METHODS, "ART_METHODS"},
+ {ART_17::IMAGE_SECTIONS::SECTION_INTERNED_STRINGS, "INTERNED_STRINGS"},
+ {ART_17::IMAGE_SECTIONS::SECTION_IMAGE_BITMAP, "IMAGE_BITMAP"},
};
- auto it = enumStrings.find(e);
+ auto it = enumStrings.find(e);
return it == enumStrings.end() ? "UNDEFINED" : it->second;
}
const char* to_string(ART_29::IMAGE_SECTIONS e) {
- const std::map<ART_29::IMAGE_SECTIONS, const char*> enumStrings {
- { ART_29::IMAGE_SECTIONS::SECTION_OBJECTS, "OBJECTS" },
- { ART_29::IMAGE_SECTIONS::SECTION_ART_FIELDS, "ART_FIELDS" },
- { ART_29::IMAGE_SECTIONS::SECTION_ART_METHODS, "ART_METHODS" },
- { ART_29::IMAGE_SECTIONS::SECTION_RUNTIME_METHODS, "RUNTIME_METHODS" },
- { ART_29::IMAGE_SECTIONS::SECTION_IMT_CONFLICT_TABLES, "IMT_CONFLICT_TABLES" },
- { ART_29::IMAGE_SECTIONS::SECTION_DEX_CACHE_ARRAYS, "DEX_CACHE_ARRAYS" },
- { ART_29::IMAGE_SECTIONS::SECTION_INTERNED_STRINGS, "INTERNED_STRINGS" },
- { ART_29::IMAGE_SECTIONS::SECTION_CLASS_TABLE, "CLASS_TABLE" },
- { ART_29::IMAGE_SECTIONS::SECTION_IMAGE_BITMAP, "IMAGE_BITMAP" },
+ const std::map<ART_29::IMAGE_SECTIONS, const char*> enumStrings{
+ {ART_29::IMAGE_SECTIONS::SECTION_OBJECTS, "OBJECTS"},
+ {ART_29::IMAGE_SECTIONS::SECTION_ART_FIELDS, "ART_FIELDS"},
+ {ART_29::IMAGE_SECTIONS::SECTION_ART_METHODS, "ART_METHODS"},
+ {ART_29::IMAGE_SECTIONS::SECTION_RUNTIME_METHODS, "RUNTIME_METHODS"},
+ {ART_29::IMAGE_SECTIONS::SECTION_IMT_CONFLICT_TABLES, "IMT_CONFLICT_TABLES"},
+ {ART_29::IMAGE_SECTIONS::SECTION_DEX_CACHE_ARRAYS, "DEX_CACHE_ARRAYS"},
+ {ART_29::IMAGE_SECTIONS::SECTION_INTERNED_STRINGS, "INTERNED_STRINGS"},
+ {ART_29::IMAGE_SECTIONS::SECTION_CLASS_TABLE, "CLASS_TABLE"},
+ {ART_29::IMAGE_SECTIONS::SECTION_IMAGE_BITMAP, "IMAGE_BITMAP"},
};
- auto it = enumStrings.find(e);
+ auto it = enumStrings.find(e);
return it == enumStrings.end() ? "UNDEFINED" : it->second;
}
const char* to_string(ART_30::IMAGE_SECTIONS e) {
- const std::map<ART_30::IMAGE_SECTIONS, const char*> enumStrings {
- { ART_30::IMAGE_SECTIONS::SECTION_OBJECTS, "OBJECTS" },
- { ART_30::IMAGE_SECTIONS::SECTION_ART_FIELDS, "ART_FIELDS" },
- { ART_30::IMAGE_SECTIONS::SECTION_ART_METHODS, "ART_METHODS" },
- { ART_30::IMAGE_SECTIONS::SECTION_RUNTIME_METHODS, "RUNTIME_METHODS" },
- { ART_30::IMAGE_SECTIONS::SECTION_IM_TABLES, "IM_TABLES" },
- { ART_30::IMAGE_SECTIONS::SECTION_IMT_CONFLICT_TABLES, "IMT_CONFLICT_TABLES" },
- { ART_30::IMAGE_SECTIONS::SECTION_DEX_CACHE_ARRAYS, "DEX_CACHE_ARRAYS" },
- { ART_30::IMAGE_SECTIONS::SECTION_INTERNED_STRINGS, "INTERNED_STRINGS" },
- { ART_30::IMAGE_SECTIONS::SECTION_CLASS_TABLE, "CLASS_TABLE" },
- { ART_30::IMAGE_SECTIONS::SECTION_IMAGE_BITMAP, "IMAGE_BITMAP" },
+ const std::map<ART_30::IMAGE_SECTIONS, const char*> enumStrings{
+ {ART_30::IMAGE_SECTIONS::SECTION_OBJECTS, "OBJECTS"},
+ {ART_30::IMAGE_SECTIONS::SECTION_ART_FIELDS, "ART_FIELDS"},
+ {ART_30::IMAGE_SECTIONS::SECTION_ART_METHODS, "ART_METHODS"},
+ {ART_30::IMAGE_SECTIONS::SECTION_RUNTIME_METHODS, "RUNTIME_METHODS"},
+ {ART_30::IMAGE_SECTIONS::SECTION_IM_TABLES, "IM_TABLES"},
+ {ART_30::IMAGE_SECTIONS::SECTION_IMT_CONFLICT_TABLES, "IMT_CONFLICT_TABLES"},
+ {ART_30::IMAGE_SECTIONS::SECTION_DEX_CACHE_ARRAYS, "DEX_CACHE_ARRAYS"},
+ {ART_30::IMAGE_SECTIONS::SECTION_INTERNED_STRINGS, "INTERNED_STRINGS"},
+ {ART_30::IMAGE_SECTIONS::SECTION_CLASS_TABLE, "CLASS_TABLE"},
+ {ART_30::IMAGE_SECTIONS::SECTION_IMAGE_BITMAP, "IMAGE_BITMAP"},
};
- auto it = enumStrings.find(e);
+ auto it = enumStrings.find(e);
return it == enumStrings.end() ? "UNDEFINED" : it->second;
}
const char* to_string(ART_17::IMAGE_METHODS e) {
- const std::map<ART_17::IMAGE_METHODS, const char*> enumStrings {
- { ART_17::IMAGE_METHODS::RESOLUTION_METHOD, "RESOLUTION_METHOD" },
- { ART_17::IMAGE_METHODS::IMT_CONFLICT_METHOD, "IMT_CONFLICT_METHOD" },
- { ART_17::IMAGE_METHODS::IMT_UNIMPLEMENTED_METHOD, "IMT_UNIMPLEMENTED_METHOD" },
- { ART_17::IMAGE_METHODS::CALLEE_SAVE_METHOD, "CALLEE_SAVE_METHOD" },
- { ART_17::IMAGE_METHODS::REFS_ONLY_SAVE_METHOD, "REFS_ONLY_SAVE_METHOD" },
- { ART_17::IMAGE_METHODS::REFS_AND_ARGS_SAVE_METHOD, "REFS_AND_ARGS_SAVE_METHOD" },
+ const std::map<ART_17::IMAGE_METHODS, const char*> enumStrings{
+ {ART_17::IMAGE_METHODS::RESOLUTION_METHOD, "RESOLUTION_METHOD"},
+ {ART_17::IMAGE_METHODS::IMT_CONFLICT_METHOD, "IMT_CONFLICT_METHOD"},
+ {ART_17::IMAGE_METHODS::IMT_UNIMPLEMENTED_METHOD,
+ "IMT_UNIMPLEMENTED_METHOD"},
+ {ART_17::IMAGE_METHODS::CALLEE_SAVE_METHOD, "CALLEE_SAVE_METHOD"},
+ {ART_17::IMAGE_METHODS::REFS_ONLY_SAVE_METHOD, "REFS_ONLY_SAVE_METHOD"},
+ {ART_17::IMAGE_METHODS::REFS_AND_ARGS_SAVE_METHOD,
+ "REFS_AND_ARGS_SAVE_METHOD"},
};
- auto it = enumStrings.find(e);
+ auto it = enumStrings.find(e);
return it == enumStrings.end() ? "UNDEFINED" : it->second;
}
const char* to_string(ART_44::IMAGE_METHODS e) {
- const std::map<ART_44::IMAGE_METHODS, const char*> enumStrings {
- { ART_44::IMAGE_METHODS::RESOLUTION_METHOD, "RESOLUTION_METHOD" },
- { ART_44::IMAGE_METHODS::IMT_CONFLICT_METHOD, "IMT_CONFLICT_METHOD" },
- { ART_44::IMAGE_METHODS::IMT_UNIMPLEMENTED_METHOD, "IMT_UNIMPLEMENTED_METHOD" },
- { ART_44::IMAGE_METHODS::SAVE_ALL_CALLEE_SAVES_METHOD, "SAVE_ALL_CALLEE_SAVES_METHOD" },
- { ART_44::IMAGE_METHODS::SAVE_REFS_ONLY_METHOD, "SAVE_REFS_ONLY_METHOD" },
- { ART_44::IMAGE_METHODS::SAVE_REFS_AND_ARGS_METHOD, "SAVE_REFS_AND_ARGS_METHOD" },
- { ART_44::IMAGE_METHODS::SAVE_EVERYTHING_METHOD, "SAVE_EVERYTHING_METHOD" },
+ const std::map<ART_44::IMAGE_METHODS, const char*> enumStrings{
+ {ART_44::IMAGE_METHODS::RESOLUTION_METHOD, "RESOLUTION_METHOD"},
+ {ART_44::IMAGE_METHODS::IMT_CONFLICT_METHOD, "IMT_CONFLICT_METHOD"},
+ {ART_44::IMAGE_METHODS::IMT_UNIMPLEMENTED_METHOD,
+ "IMT_UNIMPLEMENTED_METHOD"},
+ {ART_44::IMAGE_METHODS::SAVE_ALL_CALLEE_SAVES_METHOD,
+ "SAVE_ALL_CALLEE_SAVES_METHOD"},
+ {ART_44::IMAGE_METHODS::SAVE_REFS_ONLY_METHOD, "SAVE_REFS_ONLY_METHOD"},
+ {ART_44::IMAGE_METHODS::SAVE_REFS_AND_ARGS_METHOD,
+ "SAVE_REFS_AND_ARGS_METHOD"},
+ {ART_44::IMAGE_METHODS::SAVE_EVERYTHING_METHOD, "SAVE_EVERYTHING_METHOD"},
};
- auto it = enumStrings.find(e);
+ auto it = enumStrings.find(e);
return it == enumStrings.end() ? "UNDEFINED" : it->second;
}
const char* to_string(ART_17::IMAGE_ROOTS e) {
- const std::map<ART_17::IMAGE_ROOTS, const char*> enumStrings {
- { ART_17::IMAGE_ROOTS::DEX_CACHES, "DEX_CACHES" },
- { ART_17::IMAGE_ROOTS::CLASS_ROOTS, "CLASS_ROOTS" },
+ const std::map<ART_17::IMAGE_ROOTS, const char*> enumStrings{
+ {ART_17::IMAGE_ROOTS::DEX_CACHES, "DEX_CACHES"},
+ {ART_17::IMAGE_ROOTS::CLASS_ROOTS, "CLASS_ROOTS"},
};
- auto it = enumStrings.find(e);
+ auto it = enumStrings.find(e);
return it == enumStrings.end() ? "UNDEFINED" : it->second;
}
const char* to_string(ART_44::IMAGE_ROOTS e) {
- const std::map<ART_44::IMAGE_ROOTS, const char*> enumStrings {
- { ART_44::IMAGE_ROOTS::DEX_CACHES, "DEX_CACHES" },
- { ART_44::IMAGE_ROOTS::CLASS_ROOTS, "CLASS_ROOTS" },
- { ART_44::IMAGE_ROOTS::CLASS_LOADER, "CLASS_LOADER" },
+ const std::map<ART_44::IMAGE_ROOTS, const char*> enumStrings{
+ {ART_44::IMAGE_ROOTS::DEX_CACHES, "DEX_CACHES"},
+ {ART_44::IMAGE_ROOTS::CLASS_ROOTS, "CLASS_ROOTS"},
+ {ART_44::IMAGE_ROOTS::CLASS_LOADER, "CLASS_LOADER"},
};
- auto it = enumStrings.find(e);
+ auto it = enumStrings.find(e);
return it == enumStrings.end() ? "UNDEFINED" : it->second;
}
-} // namespace ART
-} // namespace LIEF
-
+} // namespace LIEF::ART
diff --git a/deps/LIEF/src/ART/File.cpp b/deps/LIEF/src/ART/File.cpp
index fac2c552ec6..7409eb402aa 100644
--- a/deps/LIEF/src/ART/File.cpp
+++ b/deps/LIEF/src/ART/File.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,8 +18,8 @@
#include "LIEF/ART/File.hpp"
#include "LIEF/ART/hash.hpp"
-namespace LIEF {
-namespace ART {
+
+namespace LIEF::ART {
File::File() = default;
@@ -36,8 +36,6 @@ void File::accept(Visitor& visitor) const {
}
-
-
File::~File() = default;
std::ostream& operator<<(std::ostream& os, const File& art_file) {
@@ -45,5 +43,4 @@ std::ostream& operator<<(std::ostream& os, const File& art_file) {
return os;
}
-} // Namespace ART
-} // Namespace LIEF
+} // namespace LIEF::ART
diff --git a/deps/LIEF/src/ART/Header.cpp b/deps/LIEF/src/ART/Header.cpp
index 0f6a158982b..1ed5093d5ae 100644
--- a/deps/LIEF/src/ART/Header.cpp
+++ b/deps/LIEF/src/ART/Header.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@
#include <iomanip>
-namespace LIEF {
-namespace ART {
+
+namespace LIEF::ART {
Header::Header(const Header&) = default;
Header& Header::operator=(const Header&) = default;
@@ -117,50 +117,65 @@ void Header::accept(Visitor& visitor) const {
}
-
-
std::ostream& operator<<(std::ostream& os, const Header& hdr) {
static constexpr size_t WIDTH = 33;
os << std::hex << std::left << std::showbase;
os << std::setw(WIDTH) << std::setfill(' ') << "Magic: " << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Version: " << std::dec << hdr.version() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ') << "Version: " << std::dec
+ << hdr.version() << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Image Begin: " << std::hex << hdr.image_begin() << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Image Size: " << std::hex << hdr.image_size() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ') << "Image Begin: " << std::hex
+ << hdr.image_begin() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ') << "Image Size: " << std::hex
+ << hdr.image_size() << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Checksum: " << std::hex << hdr.oat_checksum() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ') << "Checksum: " << std::hex
+ << hdr.oat_checksum() << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "OAT File Begin: " << std::hex << hdr.oat_file_begin() << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "OAT File End:" << std::hex << hdr.oat_file_end() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ') << "OAT File Begin: " << std::hex
+ << hdr.oat_file_begin() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ') << "OAT File End:" << std::hex
+ << hdr.oat_file_end() << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "OAT Data Begin: " << std::hex << hdr.oat_data_begin() << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "OAT Data End:" << std::hex << hdr.oat_data_end() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ') << "OAT Data Begin: " << std::hex
+ << hdr.oat_data_begin() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ') << "OAT Data End:" << std::hex
+ << hdr.oat_data_end() << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Patch Delta:" << std::dec << hdr.patch_delta() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ') << "Patch Delta:" << std::dec
+ << hdr.patch_delta() << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Pointer Size:" << std::dec << hdr.pointer_size() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ') << "Pointer Size:" << std::dec
+ << hdr.pointer_size() << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Compile pic:" << std::boolalpha << hdr.compile_pic() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ') << "Compile pic:" << std::boolalpha
+ << hdr.compile_pic() << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Number of sections:" << std::dec << hdr.nb_sections() << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Number of methods:" << std::dec << hdr.nb_methods() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ') << "Number of sections:" << std::dec
+ << hdr.nb_sections() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ') << "Number of methods:" << std::dec
+ << hdr.nb_methods() << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Boot Image Begin:" << std::hex << hdr.boot_image_begin() << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Boot Image Size:" << std::hex << hdr.boot_image_size() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ') << "Boot Image Begin:" << std::hex
+ << hdr.boot_image_begin() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ') << "Boot Image Size:" << std::hex
+ << hdr.boot_image_size() << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Boot OAT Begin:" << std::hex << hdr.boot_oat_begin() << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Boot OAT Size:" << std::hex << hdr.boot_oat_size() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ') << "Boot OAT Begin:" << std::hex
+ << hdr.boot_oat_begin() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ') << "Boot OAT Size:" << std::hex
+ << hdr.boot_oat_size() << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Storage Mode:" << to_string(hdr.storage_mode()) << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ')
+ << "Storage Mode:" << to_string(hdr.storage_mode()) << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Data Size:" << std::hex << hdr.data_size() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ') << "Data Size:" << std::hex
+ << hdr.data_size() << '\n';
return os;
}
Header::~Header() = default;
-} // Namespace ART
-} // Namespace LIEF
-
+} // namespace LIEF::ART
diff --git a/deps/LIEF/src/ART/Header.tcc b/deps/LIEF/src/ART/Header.tcc
index b27d670fd89..7a4f07d8615 100644
--- a/deps/LIEF/src/ART/Header.tcc
+++ b/deps/LIEF/src/ART/Header.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,13 +20,12 @@
#include "LIEF/ART/EnumToString.hpp"
#include "ART/Structures.hpp"
-namespace LIEF {
-namespace ART {
+
+namespace LIEF::ART {
template<>
Header::Header(const details::ART_17::header* header) :
magic_{{'a', 'r', 't', '\n'}},
- version_{0},
image_begin_{header->image_begin},
image_size_{header->image_size},
oat_checksum_{header->oat_checksum},
@@ -39,36 +38,21 @@ Header::Header(const details::ART_17::header* header) :
pointer_size_{header->pointer_size},
compile_pic_{static_cast<bool>(header->compile_pic)},
nb_sections_{sizeof(header->sections) / sizeof(header->sections[0])},
- nb_methods_{sizeof(header->image_methods) / sizeof(header->image_methods[0])},
-
- is_pic_{false},
- boot_image_begin_{0},
- boot_image_size_{0},
- boot_oat_begin_{0},
- boot_oat_size_{0},
- storage_mode_{STORAGE_MODES::STORAGE_UNCOMPRESSED},
- data_size_{0}
-{
- std::copy(
- std::begin(header->magic),
- std::end(header->magic),
- std::begin(magic_)
- );
- if (std::all_of(
- header->version,
- header->version + sizeof(header->version) - 1,
- ::isdigit))
+ nb_methods_{sizeof(header->image_methods) / sizeof(header->image_methods[0])} {
+ std::copy(std::begin(header->magic), std::end(header->magic),
+ std::begin(magic_));
+ if (std::all_of(header->version, header->version + sizeof(header->version) - 1,
+ ::isdigit))
{
- version_ = static_cast<uint32_t>(
- std::stoi(std::string{reinterpret_cast<const char*>(header->version), sizeof(header->version)}));
+ version_ = static_cast<uint32_t>(std::stoi(std::string{
+ reinterpret_cast<const char*>(header->version), sizeof(header->version)
+ }));
}
-
}
template<class T>
Header::Header(const T* header) :
magic_{{'a', 'r', 't', '\n'}},
- version_{0},
image_begin_{header->image_begin},
image_size_{header->image_size},
oat_checksum_{header->oat_checksum},
@@ -88,25 +72,18 @@ Header::Header(const T* header) :
boot_oat_begin_{header->boot_oat_begin},
boot_oat_size_{header->boot_oat_size},
storage_mode_{static_cast<STORAGE_MODES>(header->storage_mode)},
- data_size_{header->data_size}
-{
- std::copy(
- std::begin(header->magic),
- std::end(header->magic),
- std::begin(magic_)
- );
- if (std::all_of(
- header->version,
- header->version + sizeof(header->version) - 1,
- ::isdigit))
+ data_size_{header->data_size} {
+ std::copy(std::begin(header->magic), std::end(header->magic),
+ std::begin(magic_));
+ if (std::all_of(header->version, header->version + sizeof(header->version) - 1,
+ ::isdigit))
{
- version_ = static_cast<uint32_t>(
- std::stoi(std::string{reinterpret_cast<const char*>(header->version), sizeof(header->version)}));
+ version_ = static_cast<uint32_t>(std::stoi(std::string{
+ reinterpret_cast<const char*>(header->version), sizeof(header->version)
+ }));
}
LIEF_DEBUG("{}", to_string(storage_mode_));
-
}
-} // namespace ART
-} // namespace LIEF
+} // namespace LIEF::ART
diff --git a/deps/LIEF/src/ART/Parser.cpp b/deps/LIEF/src/ART/Parser.cpp
index 2113d51fe36..d2c0c27de44 100644
--- a/deps/LIEF/src/ART/Parser.cpp
+++ b/deps/LIEF/src/ART/Parser.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,11 +28,11 @@
#include "Header.tcc"
#include "Parser.tcc"
-namespace LIEF {
-namespace ART {
+
+namespace LIEF::ART {
Parser::~Parser() = default;
-Parser::Parser() = default;
+Parser::Parser() = default;
std::unique_ptr<File> Parser::parse(const std::string& filename) {
if (!is_art(filename)) {
@@ -46,7 +46,8 @@ std::unique_ptr<File> Parser::parse(const std::string& filename) {
return std::move(parser.file_);
}
-std::unique_ptr<File> Parser::parse(std::vector<uint8_t> data, const std::string& name) {
+std::unique_ptr<File> Parser::parse(std::vector<uint8_t> data,
+ const std::string& name) {
if (!is_art(data)) {
LIEF_ERR("'{}' is not an ART file", name);
return nullptr;
@@ -61,16 +62,13 @@ std::unique_ptr<File> Parser::parse(std::vector<uint8_t> data, const std::string
Parser::Parser(std::vector<uint8_t> data) :
file_{new File{}},
- stream_{std::make_unique<VectorStream>(std::move(data))}
-{
-}
+ stream_{std::make_unique<VectorStream>(std::move(data))} {}
Parser::Parser(const std::string& file) :
- file_{new File{}}
-{
+ file_{new File{}} {
auto stream = VectorStream::from_file(file);
if (!stream) {
- LIEF_ERR("Can't create the stream");
+ LIEF_ERR("Failed to create stream");
return;
}
stream_ = std::make_unique<VectorStream>(std::move(*stream));
@@ -104,5 +102,4 @@ void Parser::init(const std::string& /*name*/, art_version_t version) {
}
}
-} // namespace ART
-} // namespace LIEF
+} // namespace LIEF::ART
diff --git a/deps/LIEF/src/ART/Parser.tcc b/deps/LIEF/src/ART/Parser.tcc
index e5af1957b7e..004dfc9cf76 100644
--- a/deps/LIEF/src/ART/Parser.tcc
+++ b/deps/LIEF/src/ART/Parser.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,8 +20,8 @@
#include "LIEF/ART/File.hpp"
#include "LIEF/ART/EnumToString.hpp"
-namespace LIEF {
-namespace ART {
+
+namespace LIEF::ART {
template<typename ART_T>
void Parser::parse_file() {
@@ -40,8 +40,9 @@ size_t Parser::parse_header() {
const auto hdr = std::move(*res_hdr);
imagebase_ = hdr.image_begin;
- if (hdr.pointer_size != sizeof(uint32_t) && hdr.pointer_size != sizeof(uint64_t)) {
- LIEF_WARN("ART Header pointer_size is not consistent");
+ if (hdr.pointer_size != sizeof(uint32_t) && hdr.pointer_size != sizeof(uint64_t))
+ {
+ LIEF_WARN("Inconsistent ART header pointer size");
return 0;
}
file_->header_ = &hdr;
@@ -288,7 +289,7 @@ void Parser::parse_methods() {
const art_header_t* hdr = reinterpret_cast<const art_header_t*>(stream_->read(0, sizeof(art_header_t)));
uint32_t nb_methods = file_->header().nb_methods_;
- //TODO check with ART::nb_methods... (more secure)
+ // TODO: check against ART::nb_methods for extra validation
for (size_t i = 0; i < nb_methods; ++i) {
IMAGE_METHODS type = static_cast<IMAGE_METHODS>(i);
uint64_t address = hdr->image_methods[i];
@@ -333,4 +334,3 @@ void Parser::parse_interned_strings(size_t offset, size_t size) {
#endif
}
-}
diff --git a/deps/LIEF/src/ART/Structures.cpp b/deps/LIEF/src/ART/Structures.cpp
index ae2270b5e1d..c03df28a800 100644
--- a/deps/LIEF/src/ART/Structures.cpp
+++ b/deps/LIEF/src/ART/Structures.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,8 +15,8 @@
*/
#include "ART/Structures.hpp"
-namespace LIEF {
-namespace ART {
+
+namespace LIEF::ART {
constexpr art_version_t details::ART17::art_version;
constexpr art_version_t details::ART29::art_version;
@@ -32,5 +32,4 @@ constexpr uint32_t details::ART44::nb_image_roots;
constexpr uint32_t details::ART46::nb_image_roots;
constexpr uint32_t details::ART56::nb_image_roots;
-} // Namespace ART
-} // Namespace LIEF
+} // namespace LIEF::ART
diff --git a/deps/LIEF/src/ART/Structures.hpp b/deps/LIEF/src/ART/Structures.hpp
index d02a473032e..a4bc31e0fc4 100644
--- a/deps/LIEF/src/ART/Structures.hpp
+++ b/deps/LIEF/src/ART/Structures.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -38,13 +38,13 @@
// Android 9.0.0 ART 56
// ======================
-namespace LIEF {
+
/// Namespace related to the LIEF's ART module
-namespace ART {
-namespace details {
-static constexpr uint8_t art_magic[] = { 'a', 'r', 't', '\n' };
+namespace LIEF::ART::details {
+
+static constexpr uint8_t art_magic[] = {'a', 'r', 't', '\n'};
static constexpr art_version_t art_version = 0;
struct ALIGNED_(4) image_section_t {
@@ -61,9 +61,9 @@ struct ALIGNED_(4) image_section_t {
namespace ART_17 {
static constexpr art_version_t art_version = 17;
-static constexpr uint32_t nb_sections = 5;
+static constexpr uint32_t nb_sections = 5;
static constexpr uint32_t nb_image_methods = 6;
-static constexpr uint32_t nb_image_roots = 2;
+static constexpr uint32_t nb_image_roots = 2;
struct ALIGNED_(4) header {
uint8_t magic[4];
@@ -94,7 +94,8 @@ struct ALIGNED_(4) header {
// The total delta that this image has been patched.
int32_t patch_delta;
- // Absolute address of an Object[] of objects needed to reinitialize from an image.
+ // Absolute address of an Object[] of objects needed to reinitialize from an
+ // image.
uint32_t image_roots;
// Pointer size, this affects the size of the ArtMethods.
@@ -108,7 +109,6 @@ struct ALIGNED_(4) header {
// Image methods.
uint64_t image_methods[nb_image_methods];
-
};
@@ -122,9 +122,9 @@ namespace ART_29 {
static constexpr art_version_t art_version = 29;
-static constexpr uint32_t nb_sections = 9;
+static constexpr uint32_t nb_sections = 9;
static constexpr uint32_t nb_image_methods = 6;
-static constexpr uint32_t nb_image_roots = 2;
+static constexpr uint32_t nb_image_roots = 2;
struct ALIGNED_(4) header {
@@ -164,7 +164,8 @@ struct ALIGNED_(4) header {
// The total delta that this image has been patched.
int32_t patch_delta;
- // Absolute address of an Object[] of objects needed to reinitialize from an image.
+ // Absolute address of an Object[] of objects needed to reinitialize from an
+ // image.
uint32_t image_roots;
// Pointer size, this affects the size of the ArtMethods.
@@ -173,9 +174,9 @@ struct ALIGNED_(4) header {
// Boolean (0 or 1) to denote if the image was compiled with --compile-pic option
uint32_t compile_pic;
- // Boolean (0 or 1) to denote if the image can be mapped at a random address, this only refers to
- // the .art file. Currently, app oat files do not depend on their app image. There are no pointers
- // from the app oat code to the app image.
+ // Boolean (0 or 1) to denote if the image can be mapped at a random address,
+ // this only refers to the .art file. Currently, app oat files do not depend on
+ // their app image. There are no pointers from the app oat code to the app image.
uint32_t is_pic;
// Image sections
@@ -187,8 +188,8 @@ struct ALIGNED_(4) header {
// Storage method for the image, the image may be compressed.
uint32_t storage_mode;
- // Data size for the image data excluding the bitmap and the header. For compressed images, this
- // is the compressed size in the file.
+ // Data size for the image data excluding the bitmap and the header. For
+ // compressed images, this is the compressed size in the file.
uint32_t data_size;
};
@@ -205,9 +206,9 @@ namespace ART_30 {
static constexpr art_version_t art_version = 30;
-static constexpr uint32_t nb_sections = 10;
+static constexpr uint32_t nb_sections = 10;
static constexpr uint32_t nb_image_methods = 6;
-static constexpr uint32_t nb_image_roots = 2;
+static constexpr uint32_t nb_image_roots = 2;
struct ALIGNED_(4) header {
@@ -248,7 +249,8 @@ struct ALIGNED_(4) header {
// The total delta that this image has been patched.
int32_t patch_delta;
- // Absolute address of an Object[] of objects needed to reinitialize from an image.
+ // Absolute address of an Object[] of objects needed to reinitialize from an
+ // image.
uint32_t image_roots;
// Pointer size, this affects the size of the ArtMethods.
@@ -257,9 +259,9 @@ struct ALIGNED_(4) header {
// Boolean (0 or 1) to denote if the image was compiled with --compile-pic option
uint32_t compile_pic;
- // Boolean (0 or 1) to denote if the image can be mapped at a random address, this only refers to
- // the .art file. Currently, app oat files do not depend on their app image. There are no pointers
- // from the app oat code to the app image.
+ // Boolean (0 or 1) to denote if the image can be mapped at a random address,
+ // this only refers to the .art file. Currently, app oat files do not depend on
+ // their app image. There are no pointers from the app oat code to the app image.
uint32_t is_pic;
// Image sections
@@ -271,8 +273,8 @@ struct ALIGNED_(4) header {
// Storage method for the image, the image may be compressed.
uint32_t storage_mode;
- // Data size for the image data excluding the bitmap and the header. For compressed images, this
- // is the compressed size in the file.
+ // Data size for the image data excluding the bitmap and the header. For
+ // compressed images, this is the compressed size in the file.
uint32_t data_size;
};
@@ -287,9 +289,9 @@ namespace ART_44 {
static constexpr art_version_t art_version = 44;
-static constexpr uint32_t nb_sections = 10;
+static constexpr uint32_t nb_sections = 10;
static constexpr uint32_t nb_image_methods = 7;
-static constexpr uint32_t nb_image_roots = 3;
+static constexpr uint32_t nb_image_roots = 3;
struct ALIGNED_(4) header {
@@ -330,7 +332,8 @@ struct ALIGNED_(4) header {
// The total delta that this image has been patched.
int32_t patch_delta;
- // Absolute address of an Object[] of objects needed to reinitialize from an image.
+ // Absolute address of an Object[] of objects needed to reinitialize from an
+ // image.
uint32_t image_roots;
// Pointer size, this affects the size of the ArtMethods.
@@ -339,9 +342,9 @@ struct ALIGNED_(4) header {
// Boolean (0 or 1) to denote if the image was compiled with --compile-pic option
uint32_t compile_pic;
- // Boolean (0 or 1) to denote if the image can be mapped at a random address, this only refers to
- // the .art file. Currently, app oat files do not depend on their app image. There are no pointers
- // from the app oat code to the app image.
+ // Boolean (0 or 1) to denote if the image can be mapped at a random address,
+ // this only refers to the .art file. Currently, app oat files do not depend on
+ // their app image. There are no pointers from the app oat code to the app image.
uint32_t is_pic;
// Image sections
@@ -353,8 +356,8 @@ struct ALIGNED_(4) header {
// Storage method for the image, the image may be compressed.
uint32_t storage_mode;
- // Data size for the image data excluding the bitmap and the header. For compressed images, this
- // is the compressed size in the file.
+ // Data size for the image data excluding the bitmap and the header. For
+ // compressed images, this is the compressed size in the file.
uint32_t data_size;
};
@@ -369,7 +372,7 @@ struct ALIGNED_(4) header {
namespace ART_46 {
static constexpr art_version_t art_version = 46;
-static constexpr uint32_t nb_image_roots = 3;
+static constexpr uint32_t nb_image_roots = 3;
// No changes in the structure
using header = ART_44::header;
@@ -383,8 +386,8 @@ using header = ART_44::header;
namespace ART_56 {
static constexpr art_version_t art_version = 56;
-static constexpr uint32_t nb_sections = 10;
-static constexpr uint32_t nb_image_roots = 3;
+static constexpr uint32_t nb_sections = 10;
+static constexpr uint32_t nb_image_roots = 3;
static constexpr uint32_t nb_image_methods = 9; // Android 9.0.0 - +=2
struct ALIGNED_(4) header {
@@ -424,7 +427,8 @@ struct ALIGNED_(4) header {
// The total delta that this image has been patched.
int32_t patch_delta;
- // Absolute address of an Object[] of objects needed to reinitialize from an image.
+ // Absolute address of an Object[] of objects needed to reinitialize from an
+ // image.
uint32_t image_roots;
// Pointer size, this affects the size of the ArtMethods.
@@ -433,9 +437,9 @@ struct ALIGNED_(4) header {
// Boolean (0 or 1) to denote if the image was compiled with --compile-pic option
uint32_t compile_pic;
- // Boolean (0 or 1) to denote if the image can be mapped at a random address, this only refers to
- // the .art file. Currently, app oat files do not depend on their app image. There are no pointers
- // from the app oat code to the app image.
+ // Boolean (0 or 1) to denote if the image can be mapped at a random address,
+ // this only refers to the .art file. Currently, app oat files do not depend on
+ // their app image. There are no pointers from the app oat code to the app image.
uint32_t is_pic;
// Image sections
@@ -447,8 +451,8 @@ struct ALIGNED_(4) header {
// Storage method for the image, the image may be compressed.
uint32_t storage_mode;
- // Data size for the image data excluding the bitmap and the header. For compressed images, this
- // is the compressed size in the file.
+ // Data size for the image data excluding the bitmap and the header. For
+ // compressed images, this is the compressed size in the file.
uint32_t data_size;
};
@@ -458,13 +462,13 @@ struct ALIGNED_(4) header {
class ART17 {
public:
- using art_header_t = ART_17::header;
+ using art_header_t = ART_17::header;
static constexpr art_version_t art_version = ART_17::art_version;
- static constexpr uint32_t nb_image_roots = ART_17::nb_image_roots;
+ static constexpr uint32_t nb_image_roots = ART_17::nb_image_roots;
- using IMAGE_SECTIONS = ART::ART_17::IMAGE_SECTIONS;
- using IMAGE_METHODS = ART::ART_17::IMAGE_METHODS;
- using IMAGE_ROOTS = ART::ART_17::IMAGE_ROOTS;
+ using IMAGE_SECTIONS = ART::ART_17::IMAGE_SECTIONS;
+ using IMAGE_METHODS = ART::ART_17::IMAGE_METHODS;
+ using IMAGE_ROOTS = ART::ART_17::IMAGE_ROOTS;
// =====================
// Java
@@ -487,13 +491,13 @@ class ART17 {
class ART29 {
public:
- using art_header_t = ART_29::header;
+ using art_header_t = ART_29::header;
static constexpr art_version_t art_version = ART_29::art_version;
- static constexpr uint32_t nb_image_roots = ART_29::nb_image_roots;
+ static constexpr uint32_t nb_image_roots = ART_29::nb_image_roots;
- using IMAGE_SECTIONS = ART::ART_29::IMAGE_SECTIONS;
- using IMAGE_METHODS = ART::ART_29::IMAGE_METHODS;
- using IMAGE_ROOTS = ART::ART_29::IMAGE_ROOTS;
+ using IMAGE_SECTIONS = ART::ART_29::IMAGE_SECTIONS;
+ using IMAGE_METHODS = ART::ART_29::IMAGE_METHODS;
+ using IMAGE_ROOTS = ART::ART_29::IMAGE_ROOTS;
// =====================
// Java
@@ -516,13 +520,13 @@ class ART29 {
class ART30 {
public:
- using art_header_t = ART_30::header;
+ using art_header_t = ART_30::header;
static constexpr art_version_t art_version = ART_30::art_version;
- static constexpr uint32_t nb_image_roots = ART_30::nb_image_roots;
+ static constexpr uint32_t nb_image_roots = ART_30::nb_image_roots;
- using IMAGE_SECTIONS = ART::ART_30::IMAGE_SECTIONS;
- using IMAGE_METHODS = ART::ART_30::IMAGE_METHODS;
- using IMAGE_ROOTS = ART::ART_30::IMAGE_ROOTS;
+ using IMAGE_SECTIONS = ART::ART_30::IMAGE_SECTIONS;
+ using IMAGE_METHODS = ART::ART_30::IMAGE_METHODS;
+ using IMAGE_ROOTS = ART::ART_30::IMAGE_ROOTS;
// =====================
// Java
@@ -545,13 +549,13 @@ class ART30 {
class ART44 {
public:
- using art_header_t = ART_44::header;
+ using art_header_t = ART_44::header;
static constexpr art_version_t art_version = ART_44::art_version;
- static constexpr uint32_t nb_image_roots = ART_44::nb_image_roots;
+ static constexpr uint32_t nb_image_roots = ART_44::nb_image_roots;
- using IMAGE_SECTIONS = ART::ART_44::IMAGE_SECTIONS;
- using IMAGE_METHODS = ART::ART_44::IMAGE_METHODS;
- using IMAGE_ROOTS = ART::ART_44::IMAGE_ROOTS;
+ using IMAGE_SECTIONS = ART::ART_44::IMAGE_SECTIONS;
+ using IMAGE_METHODS = ART::ART_44::IMAGE_METHODS;
+ using IMAGE_ROOTS = ART::ART_44::IMAGE_ROOTS;
// =====================
// Java
@@ -574,13 +578,13 @@ class ART44 {
class ART46 {
public:
- using art_header_t = ART_46::header;
+ using art_header_t = ART_46::header;
static constexpr art_version_t art_version = ART_46::art_version;
- static constexpr uint32_t nb_image_roots = ART_46::nb_image_roots;
+ static constexpr uint32_t nb_image_roots = ART_46::nb_image_roots;
- using IMAGE_SECTIONS = ART::ART_46::IMAGE_SECTIONS;
- using IMAGE_METHODS = ART::ART_46::IMAGE_METHODS;
- using IMAGE_ROOTS = ART::ART_46::IMAGE_ROOTS;
+ using IMAGE_SECTIONS = ART::ART_46::IMAGE_SECTIONS;
+ using IMAGE_METHODS = ART::ART_46::IMAGE_METHODS;
+ using IMAGE_ROOTS = ART::ART_46::IMAGE_ROOTS;
// =====================
// Java
@@ -603,13 +607,13 @@ class ART46 {
class ART56 {
public:
- using art_header_t = ART_56::header;
+ using art_header_t = ART_56::header;
static constexpr art_version_t art_version = ART_56::art_version;
- static constexpr uint32_t nb_image_roots = ART_56::nb_image_roots;
+ static constexpr uint32_t nb_image_roots = ART_56::nb_image_roots;
- using IMAGE_SECTIONS = ART::ART_46::IMAGE_SECTIONS;
- using IMAGE_METHODS = ART::ART_46::IMAGE_METHODS;
- using IMAGE_ROOTS = ART::ART_46::IMAGE_ROOTS;
+ using IMAGE_SECTIONS = ART::ART_46::IMAGE_SECTIONS;
+ using IMAGE_METHODS = ART::ART_46::IMAGE_METHODS;
+ using IMAGE_ROOTS = ART::ART_46::IMAGE_ROOTS;
// =====================
// Java
@@ -631,7 +635,6 @@ class ART56 {
};
}
-} /* end namespace ART */
-} /* end namespace LIEF */
-#endif
+
+#endif
diff --git a/deps/LIEF/src/ART/hash.cpp b/deps/LIEF/src/ART/hash.cpp
index aabeb27c4f6..9dbca820881 100644
--- a/deps/LIEF/src/ART/hash.cpp
+++ b/deps/LIEF/src/ART/hash.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,8 +18,8 @@
#include "LIEF/ART/File.hpp"
#include "LIEF/ART/Header.hpp"
-namespace LIEF {
-namespace ART {
+
+namespace LIEF::ART {
Hash::~Hash() = default;
@@ -57,7 +57,4 @@ void Hash::visit(const Header& header) {
}
-
-} // namespace ART
-} // namespace LIEF
-
+} // namespace LIEF::ART
diff --git a/deps/LIEF/src/ART/json.cpp b/deps/LIEF/src/ART/json.cpp
index cfcf2867a62..25684ed20d8 100644
--- a/deps/LIEF/src/ART/json.cpp
+++ b/deps/LIEF/src/ART/json.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,39 +18,37 @@
#include "ART/json_internal.hpp"
#include "LIEF/ART.hpp"
-namespace LIEF {
-namespace ART {
+
+namespace LIEF::ART {
void JsonVisitor::visit(const File& file) {
JsonVisitor header_visitor;
header_visitor(file.header());
- node_["header"] = header_visitor.get();
+ node_["header"] = header_visitor.get();
}
void JsonVisitor::visit(const Header& header) {
- node_["magic"] = header.magic();
- node_["version"] = header.version();
- node_["image_begin"] = header.image_begin();
- node_["image_size"] = header.image_size();
- node_["oat_checksum"] = header.oat_checksum();
- node_["oat_file_begin"] = header.oat_file_begin();
- node_["oat_file_end"] = header.oat_file_end();
- node_["oat_data_begin"] = header.oat_data_begin();
- node_["oat_data_end"] = header.oat_data_end();
- node_["patch_delta"] = header.patch_delta();
- node_["image_roots"] = header.image_roots();
- node_["pointer_size"] = header.pointer_size();
- node_["compile_pic"] = header.compile_pic();
- node_["nb_sections"] = header.nb_sections();
- node_["nb_methods"] = header.nb_methods();
+ node_["magic"] = header.magic();
+ node_["version"] = header.version();
+ node_["image_begin"] = header.image_begin();
+ node_["image_size"] = header.image_size();
+ node_["oat_checksum"] = header.oat_checksum();
+ node_["oat_file_begin"] = header.oat_file_begin();
+ node_["oat_file_end"] = header.oat_file_end();
+ node_["oat_data_begin"] = header.oat_data_begin();
+ node_["oat_data_end"] = header.oat_data_end();
+ node_["patch_delta"] = header.patch_delta();
+ node_["image_roots"] = header.image_roots();
+ node_["pointer_size"] = header.pointer_size();
+ node_["compile_pic"] = header.compile_pic();
+ node_["nb_sections"] = header.nb_sections();
+ node_["nb_methods"] = header.nb_methods();
node_["boot_image_begin"] = header.boot_image_begin();
- node_["boot_image_size"] = header.boot_image_size();
- node_["boot_oat_begin"] = header.boot_oat_begin();
- node_["boot_oat_size"] = header.boot_oat_size();
- node_["storage_mode"] = to_string(header.storage_mode());
- node_["data_size"] = header.data_size();
+ node_["boot_image_size"] = header.boot_image_size();
+ node_["boot_oat_begin"] = header.boot_oat_begin();
+ node_["boot_oat_size"] = header.boot_oat_size();
+ node_["storage_mode"] = to_string(header.storage_mode());
+ node_["data_size"] = header.data_size();
}
-} // namespace ART
-} // namespace LIEF
-
+} // namespace LIEF::ART
diff --git a/deps/LIEF/src/ART/json_api.cpp b/deps/LIEF/src/ART/json_api.cpp
index 3b912dfef01..84fb2722fd8 100644
--- a/deps/LIEF/src/ART/json_api.cpp
+++ b/deps/LIEF/src/ART/json_api.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,13 +18,13 @@
#include "LIEF/ART/json.hpp"
#ifdef LIEF_JSON_SUPPORT
-#include "ART/json_internal.hpp"
+ #include "ART/json_internal.hpp"
#endif
#include "LIEF/ART.hpp"
-namespace LIEF {
-namespace ART {
+
+namespace LIEF::ART {
std::string to_json(const Object& v) {
#ifdef LIEF_JSON_SUPPORT
@@ -37,5 +37,4 @@ std::string to_json(const Object& v) {
#endif
}
-} // namespace VDEX
-} // namespace LIEF
+} // namespace LIEF::ART
diff --git a/deps/LIEF/src/ART/json_internal.hpp b/deps/LIEF/src/ART/json_internal.hpp
index f05204a55db..0d71258185d 100644
--- a/deps/LIEF/src/ART/json_internal.hpp
+++ b/deps/LIEF/src/ART/json_internal.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,18 +19,18 @@
#include "LIEF/visibility.h"
#include "visitors/json.hpp"
-namespace LIEF {
-namespace ART {
+
+namespace LIEF::ART {
class JsonVisitor : public LIEF::JsonVisitor {
public:
using LIEF::JsonVisitor::JsonVisitor;
public:
- void visit(const File& header) override;
+ void visit(const File& header) override;
void visit(const Header& header) override;
};
}
-}
+
#endif
diff --git a/deps/LIEF/src/ART/utils.cpp b/deps/LIEF/src/ART/utils.cpp
index 161ec4d0cfe..42ed9341e64 100644
--- a/deps/LIEF/src/ART/utils.cpp
+++ b/deps/LIEF/src/ART/utils.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,8 +20,10 @@
#include "LIEF/ART/utils.hpp"
#include "ART/Structures.hpp"
-namespace LIEF {
-namespace ART {
+#include "internal_utils.hpp"
+
+
+namespace LIEF::ART {
inline bool is_art(BinaryStream& stream) {
using magic_t = std::array<char, sizeof(details::art_magic)>;
@@ -42,19 +44,13 @@ inline art_version_t version(BinaryStream& stream) {
stream.increment_pos(sizeof(details::art_magic));
if (auto ver_res = stream.peek<version_t>()) {
const auto version = *ver_res;
- const bool are_digits = std::all_of(std::begin(version), std::end(version),
- [] (char c) { return c == 0 || ::isdigit(c); });
- if (!are_digits) {
- return 0;
- }
- std::string version_str(std::begin(version), std::end(version));
- return static_cast<art_version_t>(std::stoul(version_str));
+ return static_cast<art_version_t>(parse_android_version(version.data(),
+ version.size()));
}
return 0;
}
-
bool is_art(const std::string& file) {
if (auto stream = FileStream::from_file(file)) {
return is_art(*stream);
@@ -84,19 +80,21 @@ art_version_t version(const std::vector<uint8_t>& raw) {
}
LIEF::Android::ANDROID_VERSIONS android_version(art_version_t version) {
- static const std::map<art_version_t, LIEF::Android::ANDROID_VERSIONS> oat2android {
- { 17, LIEF::Android::ANDROID_VERSIONS::VERSION_601 },
- { 29, LIEF::Android::ANDROID_VERSIONS::VERSION_700 },
- { 30, LIEF::Android::ANDROID_VERSIONS::VERSION_712 },
- { 44, LIEF::Android::ANDROID_VERSIONS::VERSION_800 },
- { 46, LIEF::Android::ANDROID_VERSIONS::VERSION_810 },
- { 56, LIEF::Android::ANDROID_VERSIONS::VERSION_900 },
+ static const std::map<art_version_t, LIEF::Android::ANDROID_VERSIONS>
+ oat2android{
+ {17, LIEF::Android::ANDROID_VERSIONS::VERSION_601},
+ {29, LIEF::Android::ANDROID_VERSIONS::VERSION_700},
+ {30, LIEF::Android::ANDROID_VERSIONS::VERSION_712},
+ {44, LIEF::Android::ANDROID_VERSIONS::VERSION_800},
+ {46, LIEF::Android::ANDROID_VERSIONS::VERSION_810},
+ {56, LIEF::Android::ANDROID_VERSIONS::VERSION_900},
};
- auto it = oat2android.lower_bound(version);
- return it == oat2android.end() ? LIEF::Android::ANDROID_VERSIONS::VERSION_UNKNOWN : it->second;
+ auto it = oat2android.lower_bound(version);
+ return it == oat2android.end() ?
+ LIEF::Android::ANDROID_VERSIONS::VERSION_UNKNOWN :
+ it->second;
}
}
-}
diff --git a/deps/LIEF/src/Abstract/Binary.cpp b/deps/LIEF/src/Abstract/Binary.cpp
index c4d68f5355e..b165b42f369 100644
--- a/deps/LIEF/src/Abstract/Binary.cpp
+++ b/deps/LIEF/src/Abstract/Binary.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,20 +32,18 @@
namespace LIEF {
Binary::Binary(FORMATS fmt) :
- format_{fmt}
-{}
+ format_{fmt} {}
Binary::Binary() = default;
Binary::~Binary() = default;
const Symbol* Binary::get_symbol(const std::string& name) const {
symbols_t symbols = const_cast<Binary*>(this)->get_abstract_symbols();
- const auto it_symbol = std::find_if(
- std::begin(symbols), std::end(symbols),
- [&name] (const Symbol* s) { return s->name() == name; }
- );
+ const auto it_symbol =
+ std::find_if(symbols.begin(), symbols.end(),
+ [&name](const Symbol* s) { return s->name() == name; });
- if (it_symbol == std::end(symbols)) {
+ if (it_symbol == symbols.end()) {
return nullptr;
}
@@ -86,13 +84,13 @@ void Binary::accept(Visitor& visitor) const {
}
const char* to_string(Binary::VA_TYPES e) {
- #define ENTRY(X) std::pair(Binary::VA_TYPES::X, #X)
- STRING_MAP enums2str {
- ENTRY(AUTO),
- ENTRY(RVA),
- ENTRY(VA),
+#define ENTRY(X) std::pair(Binary::VA_TYPES::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(AUTO),
+ ENTRY(RVA),
+ ENTRY(VA),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -102,15 +100,11 @@ const char* to_string(Binary::VA_TYPES e) {
}
const char* to_string(Binary::FORMATS e) {
- #define ENTRY(X) std::pair(Binary::FORMATS::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNKNOWN),
- ENTRY(ELF),
- ENTRY(PE),
- ENTRY(MACHO),
- ENTRY(OAT),
+#define ENTRY(X) std::pair(Binary::FORMATS::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(UNKNOWN), ENTRY(ELF), ENTRY(PE), ENTRY(MACHO), ENTRY(OAT),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
diff --git a/deps/LIEF/src/Abstract/Function.cpp b/deps/LIEF/src/Abstract/Function.cpp
index 24c1f99692c..a7ad4d955df 100644
--- a/deps/LIEF/src/Abstract/Function.cpp
+++ b/deps/LIEF/src/Abstract/Function.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,19 +26,15 @@
namespace LIEF {
static constexpr auto ARRAY_FLAGS = {
- Function::FLAGS::NONE,
- Function::FLAGS::CONSTRUCTOR,
- Function::FLAGS::DESTRUCTOR,
- Function::FLAGS::DEBUG_INFO,
- Function::FLAGS::EXPORTED,
- Function::FLAGS::IMPORTED,
+ Function::FLAGS::NONE, Function::FLAGS::CONSTRUCTOR,
+ Function::FLAGS::DESTRUCTOR, Function::FLAGS::DEBUG_INFO,
+ Function::FLAGS::EXPORTED, Function::FLAGS::IMPORTED,
};
std::vector<Function::FLAGS> Function::flags_list() const {
std::vector<FLAGS> flags;
- std::copy_if(std::begin(ARRAY_FLAGS), std::end(ARRAY_FLAGS),
- std::back_inserter(flags),
- [this] (FLAGS f) { return has(f); });
+ std::copy_if(ARRAY_FLAGS.begin(), ARRAY_FLAGS.end(), std::back_inserter(flags),
+ [this](FLAGS f) { return has(f); });
return flags;
}
@@ -47,23 +43,18 @@ void Function::accept(Visitor& visitor) const {
}
std::ostream& operator<<(std::ostream& os, const Function& entry) {
- os << fmt::format("0x{:010x}: {} (0x{:04x} bytes)",
- entry.address(), printable_string(entry.name()),
- entry.size());
+ os << fmt::format("{:#012x}: {} ({:#06x} bytes)", entry.address(),
+ printable_string(entry.name()), entry.size());
return os;
}
const char* to_string(Function::FLAGS e) {
- #define ENTRY(X) std::pair(Function::FLAGS::X, #X)
- STRING_MAP enums2str {
- ENTRY(NONE),
- ENTRY(CONSTRUCTOR),
- ENTRY(DESTRUCTOR),
- ENTRY(DEBUG_INFO),
- ENTRY(EXPORTED),
- ENTRY(IMPORTED),
+#define ENTRY(X) std::pair(Function::FLAGS::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(NONE), ENTRY(CONSTRUCTOR), ENTRY(DESTRUCTOR),
+ ENTRY(DEBUG_INFO), ENTRY(EXPORTED), ENTRY(IMPORTED),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -72,4 +63,3 @@ const char* to_string(Function::FLAGS e) {
}
}
-
diff --git a/deps/LIEF/src/Abstract/Header.cpp b/deps/LIEF/src/Abstract/Header.cpp
index 4f733f5b005..1adea118600 100644
--- a/deps/LIEF/src/Abstract/Header.cpp
+++ b/deps/LIEF/src/Abstract/Header.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,9 +16,15 @@
#include "LIEF/Visitor.hpp"
#include "LIEF/Abstract/Header.hpp"
-#include "LIEF/ELF/Binary.hpp"
-#include "LIEF/MachO/Binary.hpp"
-#include "LIEF/PE/Binary.hpp"
+#if defined(LIEF_ELF_SUPPORT)
+ #include "LIEF/ELF/Binary.hpp"
+#endif
+#if defined(LIEF_MACHO_SUPPORT)
+ #include "LIEF/MachO/Binary.hpp"
+#endif
+#if defined(LIEF_PE_SUPPORT)
+ #include "LIEF/PE/Binary.hpp"
+#endif
#include <spdlog/fmt/fmt.h>
@@ -32,11 +38,11 @@ FMT_FORMATTER(LIEF::Header::MODES, LIEF::to_string);
namespace LIEF {
static constexpr auto ARRAY_MODES = {
- Header::MODES::NONE, Header::MODES::ARM64E,
- Header::MODES::BITS_16, Header::MODES::BITS_32,
- Header::MODES::BITS_64, Header::MODES::THUMB,
+ Header::MODES::NONE, Header::MODES::ARM64E, Header::MODES::BITS_16,
+ Header::MODES::BITS_32, Header::MODES::BITS_64, Header::MODES::THUMB,
};
+#if defined(LIEF_ELF_SUPPORT)
Header Header::from(const ELF::Binary& elf) {
if constexpr (!lief_elf_support) {
return {};
@@ -46,69 +52,39 @@ Header Header::from(const ELF::Binary& elf) {
hdr.entrypoint_ = elf.entrypoint();
switch (elf.header().identity_class()) {
- case ELF::Header::CLASS::ELF32:
- hdr.modes_ |= MODES::BITS_32;
- break;
+ case ELF::Header::CLASS::ELF32: hdr.modes_ |= MODES::BITS_32; break;
- case ELF::Header::CLASS::ELF64:
- hdr.modes_ |= MODES::BITS_64;
- break;
+ case ELF::Header::CLASS::ELF64: hdr.modes_ |= MODES::BITS_64; break;
- default:
- break;
+ default: break;
}
switch (elf.header().machine_type()) {
- case ELF::ARCH::X86_64:
- hdr.architecture_ = ARCHITECTURES::X86_64;
- break;
+ case ELF::ARCH::X86_64: hdr.architecture_ = ARCHITECTURES::X86_64; break;
- case ELF::ARCH::I386:
- hdr.architecture_ = ARCHITECTURES::X86;
- break;
+ case ELF::ARCH::I386: hdr.architecture_ = ARCHITECTURES::X86; break;
- case ELF::ARCH::ARM:
- hdr.architecture_ = ARCHITECTURES::ARM;
- break;
+ case ELF::ARCH::ARM: hdr.architecture_ = ARCHITECTURES::ARM; break;
- case ELF::ARCH::AARCH64:
- hdr.architecture_ = ARCHITECTURES::ARM64;
- break;
+ case ELF::ARCH::AARCH64: hdr.architecture_ = ARCHITECTURES::ARM64; break;
- case ELF::ARCH::MIPS:
- hdr.architecture_ = ARCHITECTURES::MIPS;
- break;
+ case ELF::ARCH::MIPS: hdr.architecture_ = ARCHITECTURES::MIPS; break;
- case ELF::ARCH::PPC:
- hdr.architecture_ = ARCHITECTURES::PPC;
- break;
+ case ELF::ARCH::PPC: hdr.architecture_ = ARCHITECTURES::PPC; break;
- case ELF::ARCH::PPC64:
- hdr.architecture_ = ARCHITECTURES::PPC64;
- break;
+ case ELF::ARCH::PPC64: hdr.architecture_ = ARCHITECTURES::PPC64; break;
- case ELF::ARCH::RISCV:
- hdr.architecture_ = ARCHITECTURES::RISCV;
- break;
+ case ELF::ARCH::RISCV: hdr.architecture_ = ARCHITECTURES::RISCV; break;
- case ELF::ARCH::LOONGARCH:
- hdr.architecture_ = ARCHITECTURES::LOONGARCH;
- break;
+ case ELF::ARCH::LOONGARCH: hdr.architecture_ = ARCHITECTURES::LOONGARCH; break;
- default:
- break;
+ default: break;
}
switch (elf.header().identity_data()) {
- case ELF::Header::ELF_DATA::LSB:
- hdr.endianness_ = ENDIANNESS::LITTLE;
- break;
- case ELF::Header::ELF_DATA::MSB:
- hdr.endianness_ = ENDIANNESS::BIG;
- break;
- case ELF::Header::ELF_DATA::NONE:
- hdr.endianness_ = ENDIANNESS::UNKNOWN;
- break;
+ case ELF::Header::ELF_DATA::LSB: hdr.endianness_ = ENDIANNESS::LITTLE; break;
+ case ELF::Header::ELF_DATA::MSB: hdr.endianness_ = ENDIANNESS::BIG; break;
+ case ELF::Header::ELF_DATA::NONE: hdr.endianness_ = ENDIANNESS::UNKNOWN; break;
}
switch (elf.header().file_type()) {
@@ -117,21 +93,22 @@ Header Header::from(const ELF::Binary& elf) {
break;
case ELF::Header::FILE_TYPE::DYN:
- hdr.object_type_ = elf.has_interpreter() ? OBJECT_TYPES::EXECUTABLE :
- OBJECT_TYPES::LIBRARY;
+ hdr.object_type_ =
+ elf.has_interpreter() ? OBJECT_TYPES::EXECUTABLE : OBJECT_TYPES::LIBRARY;
break;
case ELF::Header::FILE_TYPE::REL:
hdr.object_type_ = OBJECT_TYPES::OBJECT;
break;
- default:
- break;
+ default: break;
}
return hdr;
}
+#endif
+#if defined(LIEF_PE_SUPPORT)
Header Header::from(const PE::Binary& pe) {
if constexpr (!lief_pe_support) {
return {};
@@ -183,19 +160,22 @@ Header Header::from(const PE::Binary& pe) {
hdr.modes_ |= MODES::THUMB;
break;
- default:
- break;
+ default: break;
}
if (pe_header.has_characteristic(PE::Header::CHARACTERISTICS::DLL)) {
hdr.object_type_ = OBJECT_TYPES::LIBRARY;
- }
- else if (pe_header.has_characteristic(PE::Header::CHARACTERISTICS::EXECUTABLE_IMAGE)) {
+ } else if (pe_header.has_characteristic(
+ PE::Header::CHARACTERISTICS::EXECUTABLE_IMAGE
+ ))
+ {
hdr.object_type_ = OBJECT_TYPES::EXECUTABLE;
}
return hdr;
}
+#endif
+#if defined(LIEF_MACHO_SUPPORT)
Header Header::from(const MachO::Binary& macho) {
if constexpr (!lief_macho_support) {
return {};
@@ -204,7 +184,7 @@ Header Header::from(const MachO::Binary& macho) {
Header hdr;
{
logging::Scoped scope(logging::LEVEL::OFF);
- // Disable the warning message
+ // Disable warning messages when resolving the entrypoint
hdr.entrypoint_ = macho.entrypoint();
}
const MachO::Header& macho_hdr = macho.header();
@@ -215,9 +195,7 @@ Header Header::from(const MachO::Binary& macho) {
hdr.modes_ |= MODES::BITS_64;
}
- if (magic == MachO::MACHO_TYPES::MAGIC ||
- magic == MachO::MACHO_TYPES::CIGAM)
- {
+ if (magic == MachO::MACHO_TYPES::MAGIC || magic == MachO::MACHO_TYPES::CIGAM) {
hdr.modes_ |= MODES::BITS_32;
}
@@ -228,14 +206,14 @@ Header Header::from(const MachO::Binary& macho) {
break;
case MachO::Header::CPU_TYPE::ARM64:
- {
- hdr.architecture_ = ARCHITECTURES::ARM64;
- hdr.endianness_ = ENDIANNESS::LITTLE;
- if (macho.support_arm64_ptr_auth()) {
- hdr.modes_ |= MODES::ARM64E;
- }
- break;
+ {
+ hdr.architecture_ = ARCHITECTURES::ARM64;
+ hdr.endianness_ = ENDIANNESS::LITTLE;
+ if (macho.support_arm64_ptr_auth()) {
+ hdr.modes_ |= MODES::ARM64E;
}
+ break;
+ }
case MachO::Header::CPU_TYPE::X86:
hdr.architecture_ = ARCHITECTURES::X86;
@@ -266,8 +244,7 @@ Header Header::from(const MachO::Binary& macho) {
hdr.endianness_ = ENDIANNESS::BIG;
break;
- default:
- break;
+ default: break;
}
@@ -284,18 +261,17 @@ Header Header::from(const MachO::Binary& macho) {
hdr.object_type_ = OBJECT_TYPES::OBJECT;
break;
- default:
- break;
+ default: break;
}
return hdr;
}
+#endif
std::vector<Header::MODES> Header::modes_list() const {
std::vector<MODES> flags;
- std::copy_if(std::begin(ARRAY_MODES), std::end(ARRAY_MODES),
- std::back_inserter(flags),
- [this] (MODES f) { return is(f); });
+ std::copy_if(ARRAY_MODES.begin(), ARRAY_MODES.end(), std::back_inserter(flags),
+ [this](MODES f) { return is(f); });
return flags;
}
@@ -305,73 +281,59 @@ void Header::accept(Visitor& visitor) const {
std::ostream& operator<<(std::ostream& os, const Header& hdr) {
const auto& modes = hdr.modes_list();
- os << fmt::format("[{}] {} (endianness={}) {}",
- to_string(hdr.object_type()), to_string(hdr.architecture()),
- to_string(hdr.endianness()), fmt::to_string(modes));
+ os << fmt::format("[{}] {} (endianness={}) {}", to_string(hdr.object_type()),
+ to_string(hdr.architecture()), to_string(hdr.endianness()),
+ fmt::to_string(modes));
return os;
}
const char* to_string(Header::ARCHITECTURES e) {
- #define ENTRY(X) std::pair(Header::ARCHITECTURES::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNKNOWN),
- ENTRY(ARM),
- ENTRY(ARM64),
- ENTRY(MIPS),
- ENTRY(X86),
- ENTRY(X86_64),
- ENTRY(PPC),
- ENTRY(SPARC),
- ENTRY(SYSZ),
- ENTRY(XCORE),
- ENTRY(RISCV),
- ENTRY(LOONGARCH),
- ENTRY(PPC64),
+#define ENTRY(X) std::pair(Header::ARCHITECTURES::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(UNKNOWN), ENTRY(ARM), ENTRY(ARM64), ENTRY(MIPS), ENTRY(X86),
+ ENTRY(X86_64), ENTRY(PPC), ENTRY(SPARC), ENTRY(SYSZ), ENTRY(XCORE),
+ ENTRY(RISCV), ENTRY(LOONGARCH), ENTRY(PPC64),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
}
return "UNKNOWN";
}
const char* to_string(Header::OBJECT_TYPES e) {
- #define ENTRY(X) std::pair(Header::OBJECT_TYPES::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNKNOWN),
- ENTRY(EXECUTABLE),
- ENTRY(LIBRARY),
- ENTRY(OBJECT),
+#define ENTRY(X) std::pair(Header::OBJECT_TYPES::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(UNKNOWN),
+ ENTRY(EXECUTABLE),
+ ENTRY(LIBRARY),
+ ENTRY(OBJECT),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
}
return "UNKNOWN";
}
const char* to_string(Header::MODES e) {
- #define ENTRY(X) std::pair(Header::MODES::X, #X)
- STRING_MAP enums2str {
- ENTRY(NONE),
- ENTRY(BITS_16),
- ENTRY(BITS_32),
- ENTRY(BITS_64),
- ENTRY(THUMB),
- ENTRY(ARM64E),
+#define ENTRY(X) std::pair(Header::MODES::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(NONE), ENTRY(BITS_16), ENTRY(BITS_32),
+ ENTRY(BITS_64), ENTRY(THUMB), ENTRY(ARM64E),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
}
return "UNKNOWN";
}
const char* to_string(Header::ENDIANNESS e) {
- #define ENTRY(X) std::pair(Header::ENDIANNESS::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNKNOWN),
- ENTRY(BIG),
- ENTRY(LITTLE),
+#define ENTRY(X) std::pair(Header::ENDIANNESS::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(UNKNOWN),
+ ENTRY(BIG),
+ ENTRY(LITTLE),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
}
diff --git a/deps/LIEF/src/Abstract/Parser.cpp b/deps/LIEF/src/Abstract/Parser.cpp
index 98ae32c40f4..4caef7bc758 100644
--- a/deps/LIEF/src/Abstract/Parser.cpp
+++ b/deps/LIEF/src/Abstract/Parser.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,32 +23,31 @@
#if defined(LIEF_OAT_SUPPORT)
-#include "LIEF/OAT/Binary.hpp"
-#include "LIEF/OAT/Parser.hpp"
-#include "LIEF/OAT/utils.hpp"
+ #include "LIEF/OAT/Binary.hpp"
+ #include "LIEF/OAT/Parser.hpp"
+ #include "LIEF/OAT/utils.hpp"
#endif
#if defined(LIEF_ELF_SUPPORT)
-#include "LIEF/ELF/utils.hpp"
-#include "LIEF/ELF/Parser.hpp"
-#include "LIEF/ELF/Binary.hpp"
+ #include "LIEF/ELF/utils.hpp"
+ #include "LIEF/ELF/Parser.hpp"
+ #include "LIEF/ELF/Binary.hpp"
#endif
#if defined(LIEF_PE_SUPPORT)
-#include "LIEF/PE/utils.hpp"
-#include "LIEF/PE/Parser.hpp"
-#include "LIEF/PE/Binary.hpp"
+ #include "LIEF/PE/utils.hpp"
+ #include "LIEF/PE/Parser.hpp"
+ #include "LIEF/PE/Binary.hpp"
#endif
#if defined(LIEF_MACHO_SUPPORT)
-#include "LIEF/MachO/utils.hpp"
-#include "LIEF/MachO/Parser.hpp"
-#include "LIEF/MachO/FatBinary.hpp"
-#include "LIEF/MachO/Binary.hpp"
+ #include "LIEF/MachO/utils.hpp"
+ #include "LIEF/MachO/Parser.hpp"
+ #include "LIEF/MachO/FatBinary.hpp"
+ #include "LIEF/MachO/Binary.hpp"
#endif
-
namespace LIEF {
Parser::~Parser() = default;
Parser::Parser() = default;
@@ -70,13 +69,13 @@ std::unique_ptr<Binary> Parser::parse(const std::string& filename) {
#if defined(LIEF_PE_SUPPORT)
if (PE::is_pe(filename)) {
- return PE::Parser::parse(filename);
+ return PE::Parser::parse(filename);
}
#endif
#if defined(LIEF_MACHO_SUPPORT)
if (MachO::is_macho(filename)) {
- // For fat binary we take the last one...
+ // For Fat binaries, take the last architecture slice
std::unique_ptr<MachO::FatBinary> fat = MachO::Parser::parse(filename);
if (fat != nullptr) {
return fat->pop_back();
@@ -106,13 +105,13 @@ std::unique_ptr<Binary> Parser::parse(const std::vector<uint8_t>& raw) {
#if defined(LIEF_PE_SUPPORT)
if (PE::is_pe(raw)) {
- return PE::Parser::parse(raw);
+ return PE::Parser::parse(raw);
}
#endif
#if defined(LIEF_MACHO_SUPPORT)
if (MachO::is_macho(raw)) {
- // For fat binary we take the last one...
+ // For Fat binaries, take the last architecture slice
std::unique_ptr<MachO::FatBinary> fat = MachO::Parser::parse(raw);
if (fat != nullptr) {
return fat->pop_back();
@@ -123,7 +122,6 @@ std::unique_ptr<Binary> Parser::parse(const std::vector<uint8_t>& raw) {
LIEF_ERR("Unknown format");
return nullptr;
-
}
std::unique_ptr<Binary> Parser::parse(std::unique_ptr<BinaryStream> stream) {
@@ -137,14 +135,15 @@ std::unique_ptr<Binary> Parser::parse(std::unique_ptr<BinaryStream> stream) {
#if defined(LIEF_PE_SUPPORT)
if (PE::is_pe(*stream)) {
- return PE::Parser::parse(std::move(stream));
+ return PE::Parser::parse(std::move(stream));
}
#endif
#if defined(LIEF_MACHO_SUPPORT)
if (MachO::is_macho(*stream)) {
// For fat binary we take the last one...
- std::unique_ptr<MachO::FatBinary> fat = MachO::Parser::parse(std::move(stream));
+ std::unique_ptr<MachO::FatBinary> fat =
+ MachO::Parser::parse(std::move(stream));
if (fat != nullptr) {
return fat->pop_back();
}
@@ -160,7 +159,7 @@ Parser::Parser(const std::string& filename) {
std::ifstream file(filename, std::ios::in | std::ios::binary);
if (!file) {
- LIEF_ERR("Can't open '{}'", filename);
+ LIEF_ERR("Failed to open '{}'", filename);
return;
}
file.unsetf(std::ios::skipws);
diff --git a/deps/LIEF/src/Abstract/Relocation.cpp b/deps/LIEF/src/Abstract/Relocation.cpp
index 42724a2b612..6f1ec9722ed 100644
--- a/deps/LIEF/src/Abstract/Relocation.cpp
+++ b/deps/LIEF/src/Abstract/Relocation.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,7 +24,7 @@ void Relocation::accept(Visitor& visitor) const {
}
std::ostream& operator<<(std::ostream& os, const Relocation& entry) {
- os << fmt::format("0x{:010x} ({} bits)", entry.address(), entry.size());
+ os << fmt::format("{:#012x} ({} bits)", entry.address(), entry.size());
return os;
}
diff --git a/deps/LIEF/src/Abstract/Section.cpp b/deps/LIEF/src/Abstract/Section.cpp
index 55209c71126..34223e2d6d6 100644
--- a/deps/LIEF/src/Abstract/Section.cpp
+++ b/deps/LIEF/src/Abstract/Section.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,10 @@
#include <ostream>
#include <algorithm>
#include <cmath>
-#include <iomanip>
#include <utility>
+#include <spdlog/fmt/fmt.h>
+
#include "LIEF/Visitor.hpp"
#include "logging.hpp"
@@ -43,14 +44,11 @@ size_t Section::search(uint64_t integer, size_t pos, size_t size) const {
if (size == 0) {
if (integer < std::numeric_limits<uint8_t>::max()) {
minimal_size = sizeof(uint8_t);
- }
- else if (integer < std::numeric_limits<uint16_t>::max()) {
+ } else if (integer < std::numeric_limits<uint16_t>::max()) {
minimal_size = sizeof(uint16_t);
- }
- else if (integer < std::numeric_limits<uint32_t>::max()) {
+ } else if (integer < std::numeric_limits<uint32_t>::max()) {
minimal_size = sizeof(uint32_t);
- }
- else if (integer < std::numeric_limits<uint64_t>::max()) {
+ } else if (integer < std::numeric_limits<uint64_t>::max()) {
minimal_size = sizeof(uint64_t);
} else {
return npos;
@@ -65,19 +63,18 @@ size_t Section::search(uint64_t integer, size_t pos, size_t size) const {
size_t Section::search(const std::vector<uint8_t>& pattern, size_t pos) const {
span<const uint8_t> content = this->content();
- const auto* it_found = std::search(
- std::begin(content) + pos, std::end(content),
- std::begin(pattern), std::end(pattern));
+ const auto* it_found = std::search(content.begin() + pos, content.end(),
+ pattern.begin(), pattern.end());
- if (it_found == std::end(content)) {
+ if (it_found == content.end()) {
return npos;
}
- return std::distance(std::begin(content), it_found);
+ return std::distance(content.begin(), it_found);
}
size_t Section::search(const std::string& pattern, size_t pos) const {
- std::vector<uint8_t> pattern_formated = {std::begin(pattern), std::end(pattern)};
+ std::vector<uint8_t> pattern_formated = {pattern.begin(), pattern.end()};
return search(pattern_formated, pos);
}
@@ -98,7 +95,7 @@ std::vector<size_t> Section::search_all(uint64_t v, size_t size) const {
do {
result.push_back(pos);
pos = search(v, pos + 1, size);
- } while(pos != Section::npos);
+ } while (pos != Section::npos);
return result;
}
@@ -113,7 +110,7 @@ std::vector<size_t> Section::search_all(const std::string& v) const {
double Section::entropy() const {
- std::array<uint64_t, 256> frequencies = { {0} };
+ std::array<uint64_t, 256> frequencies = {{0}};
span<const uint8_t> content = this->content();
if (content.empty() || content.size() == 1) {
return 0.;
@@ -126,7 +123,7 @@ double Section::entropy() const {
for (uint64_t p : frequencies) {
if (p > 0) {
double freq = static_cast<double>(p) / static_cast<double>(content.size());
- entropy += freq * std::log2l(freq) ;
+ entropy += freq * std::log2l(freq);
}
}
return (-entropy);
@@ -138,17 +135,10 @@ void Section::accept(Visitor& visitor) const {
}
-
-
std::ostream& operator<<(std::ostream& os, const Section& entry) {
- os << std::hex;
- os << std::left
- << std::setw(30) << entry.name()
- << std::setw(10) << entry.virtual_address()
- << std::setw(10) << entry.size()
- << std::setw(10) << entry.offset()
- << std::setw(10) << entry.entropy();
-
+ os << fmt::format("{:<30}{:<#10x}{:<10}{:<#10x}{:<10.5f}", entry.name(),
+ entry.virtual_address(), entry.size(), entry.offset(),
+ entry.entropy());
return os;
}
diff --git a/deps/LIEF/src/Abstract/Section.tcc b/deps/LIEF/src/Abstract/Section.tcc
index 5751e27f757..7663014e766 100644
--- a/deps/LIEF/src/Abstract/Section.tcc
+++ b/deps/LIEF/src/Abstract/Section.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,7 +31,7 @@ std::vector<size_t> Section::search_all_(const T& v) const {
do {
result.push_back(pos);
pos = search(v, pos + 1);
- } while(pos != Section::npos);
+ } while (pos != Section::npos);
return result;
}
diff --git a/deps/LIEF/src/Abstract/Symbol.cpp b/deps/LIEF/src/Abstract/Symbol.cpp
index 7721c11595d..c8ff35e3b27 100644
--- a/deps/LIEF/src/Abstract/Symbol.cpp
+++ b/deps/LIEF/src/Abstract/Symbol.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,9 +21,9 @@
namespace LIEF {
void Symbol::swap(Symbol& other) noexcept {
- std::swap(name_, other.name_);
- std::swap(value_, other.value_);
- std::swap(size_, other.size_);
+ std::swap(name_, other.name_);
+ std::swap(value_, other.value_);
+ std::swap(size_, other.size_);
}
void Symbol::accept(Visitor& visitor) const {
@@ -33,11 +33,8 @@ void Symbol::accept(Visitor& visitor) const {
std::ostream& operator<<(std::ostream& os, const Symbol& entry) {
std::string name = entry.name();
// UTF8 -> ASCII
- std::transform(
- std::begin(name),
- std::end(name),
- std::begin(name), []
- (unsigned char c) { return (c < 127 && c > 32) ? c : ' ';});
+ std::transform(name.begin(), name.end(), name.begin(),
+ [](unsigned char c) { return (c < 127 && c > 32) ? c : ' '; });
if (name.size() > 20) {
name = name.substr(0, 17) + "...";
}
@@ -46,4 +43,3 @@ std::ostream& operator<<(std::ostream& os, const Symbol& entry) {
return os;
}
}
-
diff --git a/deps/LIEF/src/Abstract/debug_info.cpp b/deps/LIEF/src/Abstract/debug_info.cpp
index 9cfd133e38c..89c8dd5c92f 100644
--- a/deps/LIEF/src/Abstract/debug_info.cpp
+++ b/deps/LIEF/src/Abstract/debug_info.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -41,8 +41,7 @@ DebugInfo* Binary::load_debug_info(const std::string& /*path*/) {
// DebugInfo/DebugInfo.hpp
// ----------------------------------------------------------------------------
DebugInfo::DebugInfo(std::unique_ptr<details::DebugInfo>) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
DebugInfo::~DebugInfo() = default;
diff --git a/deps/LIEF/src/Abstract/hash.cpp b/deps/LIEF/src/Abstract/hash.cpp
index dc87bb51913..11c985a99d2 100644
--- a/deps/LIEF/src/Abstract/hash.cpp
+++ b/deps/LIEF/src/Abstract/hash.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -30,9 +30,9 @@ size_t AbstractHash::hash(const Object& obj) {
void AbstractHash::visit(const Binary& binary) {
process(binary.format());
process(binary.header());
- process(std::begin(binary.symbols()), std::end(binary.symbols()));
- process(std::begin(binary.sections()), std::end(binary.sections()));
- process(std::begin(binary.relocations()), std::end(binary.relocations()));
+ process(binary.symbols().begin(), binary.symbols().end());
+ process(binary.sections().begin(), binary.sections().end());
+ process(binary.relocations().begin(), binary.relocations().end());
}
void AbstractHash::visit(const Header& header) {
@@ -68,4 +68,3 @@ void AbstractHash::visit(const Function& function) {
} // namespace LIEF
-
diff --git a/deps/LIEF/src/Abstract/json.cpp b/deps/LIEF/src/Abstract/json.cpp
index 2eecb52312d..e4690dff12a 100644
--- a/deps/LIEF/src/Abstract/json.cpp
+++ b/deps/LIEF/src/Abstract/json.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,13 +13,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include "LIEF/Abstract.hpp"
#include "Abstract/json_internal.hpp"
-#include "LIEF/ELF.hpp"
-#include "LIEF/PE.hpp"
-#include "LIEF/MachO.hpp"
-#include "LIEF/config.h"
+#include "LIEF/Object.hpp"
+
+#include "LIEF/Abstract/Binary.hpp"
+#include "LIEF/Abstract/Section.hpp"
+#include "LIEF/Abstract/Symbol.hpp"
+#include "LIEF/Abstract/Relocation.hpp"
+#include "LIEF/Abstract/Function.hpp"
#include "Object.tcc"
@@ -67,42 +69,42 @@ void AbstractJsonVisitor::visit(const Binary& binary) {
}
- node_["entrypoint"] = binary.entrypoint();
- node_["format"] = to_string(binary.format());
- node_["original_size"] = binary.original_size();
+ node_["entrypoint"] = binary.entrypoint();
+ node_["format"] = to_string(binary.format());
+ node_["original_size"] = binary.original_size();
node_["exported_functions"] = exports;
node_["imported_libraries"] = binary.imported_libraries();
node_["imported_functions"] = imports;
- node_["header"] = header_visitor.get();
- node_["sections"] = sections;
- node_["symbols"] = symbols;
- node_["relocations"] = relocations;
+ node_["header"] = header_visitor.get();
+ node_["sections"] = sections;
+ node_["symbols"] = symbols;
+ node_["relocations"] = relocations;
}
void AbstractJsonVisitor::visit(const Header& header) {
node_["architecture"] = to_string(header.architecture());
- node_["object_type"] = to_string(header.object_type());
- node_["entrypoint"] = header.entrypoint();
- node_["endianness"] = to_string(header.endianness());
+ node_["object_type"] = to_string(header.object_type());
+ node_["entrypoint"] = header.entrypoint();
+ node_["endianness"] = to_string(header.endianness());
}
void AbstractJsonVisitor::visit(const Section& section) {
- node_["name"] = section.name();
- node_["size"] = section.size();
- node_["offset"] = section.offset();
+ node_["name"] = section.name();
+ node_["size"] = section.size();
+ node_["offset"] = section.offset();
node_["virtual_address"] = section.virtual_address();
}
void AbstractJsonVisitor::visit(const Symbol& symbol) {
- node_["name"] = symbol.name();
+ node_["name"] = symbol.name();
node_["value"] = symbol.value();
- node_["size"] = symbol.size();
+ node_["size"] = symbol.size();
}
void AbstractJsonVisitor::visit(const Relocation& relocation) {
node_["address"] = relocation.address();
- node_["size"] = relocation.size();
+ node_["size"] = relocation.size();
}
@@ -116,13 +118,10 @@ void AbstractJsonVisitor::visit(const Function& function) {
}
node_["address"] = function.address();
- node_["size"] = function.size();
- node_["name"] = function.name();
- node_["flags"] = flags_str;
-
+ node_["size"] = function.size();
+ node_["name"] = function.name();
+ node_["flags"] = flags_str;
}
-
-
} // namespace LIEF
diff --git a/deps/LIEF/src/Abstract/json_api.cpp b/deps/LIEF/src/Abstract/json_api.cpp
index df89dcc350d..8ee13a7f4ff 100644
--- a/deps/LIEF/src/Abstract/json_api.cpp
+++ b/deps/LIEF/src/Abstract/json_api.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,11 +14,12 @@
* limitations under the License.
*/
#include "LIEF/config.h"
+#include "LIEF/Object.hpp"
#include "logging.hpp"
#include "LIEF/Abstract/json.hpp"
#ifdef LIEF_JSON_SUPPORT
-#include "Abstract/json_internal.hpp"
+ #include "Abstract/json_internal.hpp"
#endif
namespace LIEF {
@@ -29,7 +30,7 @@ std::string to_json_from_abstract([[maybe_unused]] const Object& v) {
v.accept(visitor);
return visitor.get().dump();
#else
- LIEF_WARN("JSON support is not enabled");
+ LIEF_WARN("JSON support not enabled");
return "";
#endif
}
diff --git a/deps/LIEF/src/Abstract/json_internal.hpp b/deps/LIEF/src/Abstract/json_internal.hpp
index 7540374e613..28f02a3c745 100644
--- a/deps/LIEF/src/Abstract/json_internal.hpp
+++ b/deps/LIEF/src/Abstract/json_internal.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,14 +16,17 @@
#ifndef LIEF_ABSTRACT_JSON_INTERNAL_H
#define LIEF_ABSTRACT_JSON_INTERNAL_H
-#include "LIEF/config.h"
-
-#include "LIEF/visibility.h"
-#include "LIEF/Abstract.hpp"
#include "visitors/json.hpp"
namespace LIEF {
+class Binary;
+class Header;
+class Section;
+class Symbol;
+class Relocation;
+class Function;
+
/// Class that implements the Visitor pattern to serialize LIEF abstracted
/// object in JSON
class AbstractJsonVisitor : public LIEF::JsonVisitor {
@@ -31,12 +34,12 @@ class AbstractJsonVisitor : public LIEF::JsonVisitor {
using LIEF::JsonVisitor::JsonVisitor;
public:
- void visit(const Binary& binary) override;
- void visit(const Header& header) override;
- void visit(const Section& section) override;
- void visit(const Symbol& symbol) override;
+ void visit(const Binary& binary) override;
+ void visit(const Header& header) override;
+ void visit(const Section& section) override;
+ void visit(const Symbol& symbol) override;
void visit(const Relocation& relocation) override;
- void visit(const Function& f) override;
+ void visit(const Function& f) override;
};
}
diff --git a/deps/LIEF/src/BinaryStream/ASN1Reader.cpp b/deps/LIEF/src/BinaryStream/ASN1Reader.cpp
index 10d03889fa8..24b516abf87 100644
--- a/deps/LIEF/src/BinaryStream/ASN1Reader.cpp
+++ b/deps/LIEF/src/BinaryStream/ASN1Reader.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,30 +17,32 @@
#include "logging.hpp"
#include <array>
+#include <memory>
+
+#include "mbedtls_wraps.h"
+
#include <mbedtls/platform.h>
#include <mbedtls/asn1.h>
#include <mbedtls/error.h>
-#include <mbedtls/oid.h>
#include <mbedtls/x509_crt.h>
-#include <mbedtls/bignum.h>
extern "C" {
-int mbedtls_x509_get_name(unsigned char **p, const unsigned char *end,
- mbedtls_x509_name *cur);
-int mbedtls_x509_get_time(unsigned char **p, const unsigned char *end,
- mbedtls_x509_time *t);
+int mbedtls_x509_get_name(unsigned char** p, const unsigned char* end,
+ mbedtls_x509_name* cur);
+int mbedtls_x509_get_time(unsigned char** p, const unsigned char* end,
+ mbedtls_x509_time* t);
-int mbedtls_x509_get_serial(unsigned char **p, const unsigned char *end,
- mbedtls_x509_buf *serial);
+int mbedtls_x509_get_serial(unsigned char** p, const unsigned char* end,
+ mbedtls_x509_buf* serial);
}
namespace LIEF {
inline void free_names(mbedtls_x509_name& names) {
- mbedtls_x509_name *name_cur;
+ mbedtls_x509_name* name_cur = nullptr;
name_cur = names.next;
while (name_cur != nullptr) {
- mbedtls_x509_name *name_prv = name_cur;
+ mbedtls_x509_name* name_prv = name_cur;
name_cur = name_cur->next;
mbedtls_free(name_prv);
}
@@ -48,8 +50,8 @@ inline void free_names(mbedtls_x509_name& names) {
result<bool> ASN1Reader::is_tag(int tag) {
size_t out = 0;
- uint8_t* p = stream_.p();
- const uint8_t* end = stream_.end();
+ uint8_t* p = stream_.p();
+ const uint8_t* end = stream_.end();
int ret = mbedtls_asn1_get_tag(&p, end, &out, tag);
@@ -72,8 +74,8 @@ result<size_t> ASN1Reader::read_tag(int tag) {
size_t out = 0;
const uint8_t* cur_p = stream_.p();
- uint8_t* p = stream_.p();
- const uint8_t* end = stream_.end();
+ uint8_t* p = stream_.p();
+ const uint8_t* end = stream_.end();
int ret = mbedtls_asn1_get_tag(&p, end, &out, tag);
@@ -88,11 +90,12 @@ result<size_t> ASN1Reader::read_tag(int tag) {
if (ret != 0) {
std::string strerr(1024, 0);
mbedtls_strerror(ret, const_cast<char*>(strerr.data()), strerr.size());
- LIEF_DEBUG("mbedtls_asn1_get_tag: {}", strerr.c_str());
+ LIEF_DEBUG("Failed in mbedtls_asn1_get_tag: {}", strerr.c_str());
return make_error_code(lief_errors::read_error);
}
- stream_.increment_pos(reinterpret_cast<uintptr_t>(p) - reinterpret_cast<uintptr_t>(cur_p));
+ stream_.increment_pos(reinterpret_cast<uintptr_t>(p) -
+ reinterpret_cast<uintptr_t>(cur_p));
return out;
}
@@ -101,8 +104,8 @@ result<size_t> ASN1Reader::read_len() {
size_t len = 0;
const uint8_t* cur_p = stream_.p();
- uint8_t* p = stream_.p();
- const uint8_t* end = stream_.end();
+ uint8_t* p = stream_.p();
+ const uint8_t* end = stream_.end();
int ret = mbedtls_asn1_get_len(&p, end, &len);
@@ -114,7 +117,8 @@ result<size_t> ASN1Reader::read_len() {
return make_error_code(lief_errors::read_error);
}
- stream_.increment_pos(reinterpret_cast<uintptr_t>(p) - reinterpret_cast<uintptr_t>(cur_p));
+ stream_.increment_pos(reinterpret_cast<uintptr_t>(p) -
+ reinterpret_cast<uintptr_t>(cur_p));
return len;
}
@@ -123,8 +127,8 @@ result<std::string> ASN1Reader::read_alg() {
std::array<char, 256> oid_str = {0};
const uint8_t* cur_p = stream_.p();
- uint8_t* p = stream_.p();
- const uint8_t* end = stream_.end();
+ uint8_t* p = stream_.p();
+ const uint8_t* end = stream_.end();
int ret = mbedtls_asn1_get_alg_null(&p, end, &alg_oid);
@@ -141,7 +145,8 @@ result<std::string> ASN1Reader::read_alg() {
return make_error_code(lief_errors::read_error);
}
- stream_.increment_pos(reinterpret_cast<uintptr_t>(p) - reinterpret_cast<uintptr_t>(cur_p));
+ stream_.increment_pos(reinterpret_cast<uintptr_t>(p) -
+ reinterpret_cast<uintptr_t>(cur_p));
return std::string(oid_str.data());
}
@@ -155,12 +160,13 @@ result<std::string> ASN1Reader::read_oid() {
}
buf.len = len.value();
- buf.p = stream_.p();
+ buf.p = stream_.p();
buf.tag = MBEDTLS_ASN1_OID;
int ret = mbedtls_oid_get_numeric_string(oid_str.data(), oid_str.size(), &buf);
- if (ret == MBEDTLS_ERR_OID_BUF_TOO_SMALL) {
- LIEF_DEBUG("asn1_read_oid: mbedtls_oid_get_numeric_string return MBEDTLS_ERR_OID_BUF_TOO_SMALL");
+ if (ret == MBEDTLS_ERR_ASN1_BUF_TOO_SMALL) {
+ LIEF_DEBUG("asn1_read_oid: mbedtls_oid_get_numeric_string returned "
+ "MBEDTLS_ERR_OID_BUF_TOO_SMALL");
return make_error_code(lief_errors::read_error);
}
@@ -170,11 +176,11 @@ result<std::string> ASN1Reader::read_oid() {
result<bool> ASN1Reader::read_bool() {
- int value;
+ int value = 0;
const uint8_t* cur_p = stream_.p();
- uint8_t* p = stream_.p();
- const uint8_t* end = stream_.end();
+ uint8_t* p = stream_.p();
+ const uint8_t* end = stream_.end();
int ret = mbedtls_asn1_get_bool(&p, end, &value);
@@ -185,11 +191,12 @@ result<bool> ASN1Reader::read_bool() {
if (ret != 0) {
std::string strerr(1024, 0);
mbedtls_strerror(ret, const_cast<char*>(strerr.data()), strerr.size());
- LIEF_DEBUG("mbedtls_asn1_get_bool: {}", strerr.c_str());
+ LIEF_DEBUG("Failed in mbedtls_asn1_get_bool: {}", strerr.c_str());
return make_error_code(lief_errors::read_error);
}
- stream_.increment_pos(reinterpret_cast<uintptr_t>(p) - reinterpret_cast<uintptr_t>(cur_p));
+ stream_.increment_pos(reinterpret_cast<uintptr_t>(p) -
+ reinterpret_cast<uintptr_t>(cur_p));
return static_cast<bool>(value);
}
@@ -200,8 +207,8 @@ result<std::vector<uint8_t>> ASN1Reader::read_large_int() {
mbedtls_mpi_init(&mpi);
const uint8_t* cur_p = stream_.p();
- uint8_t* p = stream_.p();
- const uint8_t* end = stream_.end();
+ uint8_t* p = stream_.p();
+ const uint8_t* end = stream_.end();
int ret = mbedtls_asn1_get_mpi(&p, end, &mpi);
@@ -212,7 +219,7 @@ result<std::vector<uint8_t>> ASN1Reader::read_large_int() {
if (ret != 0) {
std::string strerr(1024, 0);
mbedtls_strerror(ret, const_cast<char*>(strerr.data()), strerr.size());
- LIEF_DEBUG("mbedtls_asn1_get_mpi: {}", strerr.c_str());
+ LIEF_DEBUG("Failed in mbedtls_asn1_get_mpi: {}", strerr.c_str());
return make_error_code(lief_errors::read_error);
}
@@ -225,16 +232,16 @@ result<std::vector<uint8_t>> ASN1Reader::read_large_int() {
if (ret != 0) {
std::string strerr(1024, 0);
mbedtls_strerror(ret, const_cast<char*>(strerr.data()), strerr.size());
- LIEF_DEBUG("mbedtls_asn1_get_mpi: {}", strerr.c_str());
+ LIEF_DEBUG("Failed in mbedtls_asn1_get_mpi: {}", strerr.c_str());
return make_error_code(lief_errors::read_error);
}
- stream_.increment_pos(reinterpret_cast<uintptr_t>(p) - reinterpret_cast<uintptr_t>(cur_p));
+ stream_.increment_pos(reinterpret_cast<uintptr_t>(p) -
+ reinterpret_cast<uintptr_t>(cur_p));
return value;
}
-
result<int64_t> ASN1Reader::read_int64() {
int64_t value = 0;
mbedtls_mpi mpi;
@@ -242,8 +249,8 @@ result<int64_t> ASN1Reader::read_int64() {
mbedtls_mpi_init(&mpi);
const uint8_t* cur_p = stream_.p();
- uint8_t* p = stream_.p();
- const uint8_t* end = stream_.end();
+ uint8_t* p = stream_.p();
+ const uint8_t* end = stream_.end();
int ret = mbedtls_asn1_get_mpi(&p, end, &mpi);
@@ -254,13 +261,13 @@ result<int64_t> ASN1Reader::read_int64() {
if (ret != 0) {
std::string strerr(1024, 0);
mbedtls_strerror(ret, const_cast<char*>(strerr.data()), strerr.size());
- LIEF_DEBUG("mbedtls_asn1_get_mpi: {}", strerr.c_str());
+ LIEF_DEBUG("Failed in mbedtls_asn1_get_mpi: {}", strerr.c_str());
return make_error_code(lief_errors::read_error);
}
if (mbedtls_mpi_size(&mpi) > sizeof(uint64_t)) {
mbedtls_mpi_free(&mpi);
- LIEF_INFO("MPI value can be stored on a 64-bit integer");
+ LIEF_INFO("MPI value does not fit in a 64-bit integer");
return make_error_code(lief_errors::read_error);
}
@@ -272,11 +279,12 @@ result<int64_t> ASN1Reader::read_int64() {
if (ret != 0) {
std::string strerr(1024, 0);
mbedtls_strerror(ret, const_cast<char*>(strerr.data()), strerr.size());
- LIEF_DEBUG("mbedtls_asn1_get_mpi: {}", strerr.c_str());
+ LIEF_DEBUG("Failed in mbedtls_asn1_get_mpi: {}", strerr.c_str());
return make_error_code(lief_errors::read_error);
}
- stream_.increment_pos(reinterpret_cast<uintptr_t>(p) - reinterpret_cast<uintptr_t>(cur_p));
+ stream_.increment_pos(reinterpret_cast<uintptr_t>(p) -
+ reinterpret_cast<uintptr_t>(cur_p));
return value;
}
@@ -285,8 +293,8 @@ result<int32_t> ASN1Reader::read_int() {
int32_t value = 0;
const uint8_t* cur_p = stream_.p();
- uint8_t* p = stream_.p();
- const uint8_t* end = stream_.end();
+ uint8_t* p = stream_.p();
+ const uint8_t* end = stream_.end();
int ret = mbedtls_asn1_get_int(&p, end, &value);
@@ -297,11 +305,12 @@ result<int32_t> ASN1Reader::read_int() {
if (ret != 0) {
std::string strerr(1024, 0);
mbedtls_strerror(ret, const_cast<char*>(strerr.data()), strerr.size());
- LIEF_DEBUG("mbedtls_asn1_get_int: {}", strerr.c_str());
+ LIEF_DEBUG("Failed in mbedtls_asn1_get_int: {}", strerr.c_str());
return make_error_code(lief_errors::read_error);
}
- stream_.increment_pos(reinterpret_cast<uintptr_t>(p) - reinterpret_cast<uintptr_t>(cur_p));
+ stream_.increment_pos(reinterpret_cast<uintptr_t>(p) -
+ reinterpret_cast<uintptr_t>(cur_p));
return value;
}
@@ -309,8 +318,8 @@ result<std::vector<uint8_t>> ASN1Reader::read_bitstring() {
mbedtls_asn1_bitstring bs = {0, 0, nullptr};
const uint8_t* cur_p = stream_.p();
- uint8_t* p = stream_.p();
- const uint8_t* end = stream_.end();
+ uint8_t* p = stream_.p();
+ const uint8_t* end = stream_.end();
int ret = mbedtls_asn1_get_bitstring(&p, end, &bs);
@@ -319,7 +328,8 @@ result<std::vector<uint8_t>> ASN1Reader::read_bitstring() {
}
if (ret == MBEDTLS_ERR_ASN1_LENGTH_MISMATCH) {
- stream_.increment_pos(reinterpret_cast<uintptr_t>(p) - reinterpret_cast<uintptr_t>(cur_p));
+ stream_.increment_pos(reinterpret_cast<uintptr_t>(p) -
+ reinterpret_cast<uintptr_t>(cur_p));
return std::vector<uint8_t>{bs.p, bs.p + bs.len};
}
@@ -327,7 +337,8 @@ result<std::vector<uint8_t>> ASN1Reader::read_bitstring() {
return make_error_code(lief_errors::read_error);
}
- stream_.increment_pos(reinterpret_cast<uintptr_t>(p) - reinterpret_cast<uintptr_t>(cur_p));
+ stream_.increment_pos(reinterpret_cast<uintptr_t>(p) -
+ reinterpret_cast<uintptr_t>(cur_p));
return std::vector<uint8_t>{bs.p, bs.p + bs.len};
}
@@ -343,12 +354,13 @@ result<std::vector<uint8_t>> ASN1Reader::read_octet_string() {
}
result<std::unique_ptr<mbedtls_x509_crt>> ASN1Reader::read_cert() {
- std::unique_ptr<mbedtls_x509_crt> ca{new mbedtls_x509_crt{}};
+ auto ca = std::make_unique<mbedtls_x509_crt>(mbedtls_x509_crt{});
mbedtls_x509_crt_init(ca.get());
- uint8_t* p = stream_.p();
- const uint8_t* end = stream_.end();
- const uintptr_t buff_len = reinterpret_cast<uintptr_t>(end) - reinterpret_cast<uintptr_t>(p);
+ uint8_t* p = stream_.p();
+ const uint8_t* end = stream_.end();
+ const uintptr_t buff_len =
+ reinterpret_cast<uintptr_t>(end) - reinterpret_cast<uintptr_t>(p);
int ret = mbedtls_x509_crt_parse_der(ca.get(), p, /* buff len */ buff_len);
if (ret != 0) {
@@ -369,20 +381,21 @@ result<std::string> ASN1Reader::x509_read_names() {
std::memset(&name, 0, sizeof(name));
auto tag = read_tag(/* Name */
- MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE
+ );
if (!tag) {
- LIEF_INFO("Wrong tag: 0x{:x} for x509_read_names (pos: {:d})",
+ LIEF_INFO("Unexpected tag {:#x} for x509_read_names (pos: {:d})",
*stream_.peek<uint8_t>(), stream_.pos());
return make_error_code(tag.error());
}
const uint8_t* cur_p = stream_.p();
- uint8_t* p = stream_.p();
- const uint8_t* end = p + tag.value();
+ uint8_t* p = stream_.p();
+ const uint8_t* end = p + tag.value();
int ret = mbedtls_x509_get_name(&p, end, &name);
if (ret != 0) {
free_names(name);
- LIEF_DEBUG("mbedtls_x509_get_name failed with {:d}", ret);
+ LIEF_DEBUG("Call to mbedtls_x509_get_name failed with {:d}", ret);
return make_error_code(lief_errors::read_error);
}
std::array<char, 1024> buffer = {0};
@@ -393,7 +406,8 @@ result<std::string> ASN1Reader::x509_read_names() {
return make_error_code(lief_errors::read_error);
}
- stream_.increment_pos(reinterpret_cast<uintptr_t>(p) - reinterpret_cast<uintptr_t>(cur_p));
+ stream_.increment_pos(reinterpret_cast<uintptr_t>(p) -
+ reinterpret_cast<uintptr_t>(cur_p));
return std::string(buffer.data());
}
@@ -401,8 +415,8 @@ result<std::vector<uint8_t>> ASN1Reader::x509_read_serial() {
mbedtls_x509_buf serial;
const uint8_t* cur_p = stream_.p();
- uint8_t* p = stream_.p();
- const uint8_t* end = stream_.end();
+ uint8_t* p = stream_.p();
+ const uint8_t* end = stream_.end();
int ret = mbedtls_x509_get_serial(&p, end, &serial);
@@ -410,27 +424,29 @@ result<std::vector<uint8_t>> ASN1Reader::x509_read_serial() {
return make_error_code(lief_errors::read_error);
}
- stream_.increment_pos(reinterpret_cast<uintptr_t>(p) - reinterpret_cast<uintptr_t>(cur_p));
+ stream_.increment_pos(reinterpret_cast<uintptr_t>(p) -
+ reinterpret_cast<uintptr_t>(cur_p));
return std::vector<uint8_t>{serial.p, serial.p + serial.len};
}
result<std::unique_ptr<mbedtls_x509_time>> ASN1Reader::x509_read_time() {
- std::unique_ptr<mbedtls_x509_time> tm{new mbedtls_x509_time{}};
+ auto tm = std::make_unique<mbedtls_x509_time>(mbedtls_x509_time{});
const uint8_t* cur_p = stream_.p();
- uint8_t* p = stream_.p();
- const uint8_t* end = stream_.end();
+ uint8_t* p = stream_.p();
+ const uint8_t* end = stream_.end();
int ret = mbedtls_x509_get_time(&p, end, tm.get());
if (ret != 0) {
std::string strerr(1024, 0);
mbedtls_strerror(ret, const_cast<char*>(strerr.data()), strerr.size());
- LIEF_INFO("mbedtls_x509_get_time: {}", strerr.c_str());
+ LIEF_INFO("Failed in mbedtls_x509_get_time: {}", strerr.c_str());
return make_error_code(lief_errors::read_error);
}
- stream_.increment_pos(reinterpret_cast<uintptr_t>(p) - reinterpret_cast<uintptr_t>(cur_p));
+ stream_.increment_pos(reinterpret_cast<uintptr_t>(p) -
+ reinterpret_cast<uintptr_t>(cur_p));
return tm;
}
@@ -454,11 +470,12 @@ std::string ASN1Reader::get_str_tag() {
std::string ASN1Reader::tag2str(int tag) {
-#define HANDLE(X) do { \
- if (tag & MBEDTLS_##X) { \
- tag_str += " | " #X; \
- } \
-} while(0)
+#define HANDLE(X) \
+ do { \
+ if (tag & MBEDTLS_##X) { \
+ tag_str += " | " #X; \
+ } \
+ } while (0)
std::string tag_str;
diff --git a/deps/LIEF/src/BinaryStream/BinaryStream.cpp b/deps/LIEF/src/BinaryStream/BinaryStream.cpp
index 655948f6843..c40fad69121 100644
--- a/deps/LIEF/src/BinaryStream/BinaryStream.cpp
+++ b/deps/LIEF/src/BinaryStream/BinaryStream.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,60 +26,78 @@ namespace LIEF {
result<int64_t> BinaryStream::read_dwarf_encoded(uint8_t encoding) const {
- const auto encodevalue = static_cast<LIEF::dwarf::EH_ENCODING>(encoding & 0x0F);
+ const auto encodevalue = static_cast<LIEF::dwarf::EH_ENCODING>(encoding & 0x0F);
switch (encodevalue) {
case LIEF::dwarf::EH_ENCODING::ULEB128:
- {
- return read_uleb128();
- }
+ {
+ return read_uleb128();
+ }
case LIEF::dwarf::EH_ENCODING::SDATA2:
case LIEF::dwarf::EH_ENCODING::UDATA2:
- {
- return read<int16_t>();
- }
+ {
+ return read<int16_t>();
+ }
case LIEF::dwarf::EH_ENCODING::SDATA4:
case LIEF::dwarf::EH_ENCODING::UDATA4:
- {
- return read<int32_t>();
- }
+ {
+ return read<int32_t>();
+ }
case LIEF::dwarf::EH_ENCODING::SDATA8:
case LIEF::dwarf::EH_ENCODING::UDATA8:
- {
- return read<int64_t>();
- }
+ {
+ return read<int64_t>();
+ }
case LIEF::dwarf::EH_ENCODING::SLEB128:
- {
- return read_sleb128();
- }
+ {
+ return read_sleb128();
+ }
default:
- {
- return 0;
- }
+ {
+ return 0;
+ }
}
-
}
+// A 64-bit integer is encoded on at most 10 LEB128 bytes
+static constexpr unsigned LEB128_MAX_BYTES = 10;
+
result<uint64_t> BinaryStream::read_uleb128(size_t* size) const {
uint64_t value = 0;
unsigned shift = 0;
+ unsigned count = 0;
result<uint8_t> byte_read = 0;
const uint64_t opos = pos();
do {
+ if (count == LEB128_MAX_BYTES) {
+ return make_error_code(lief_errors::corrupted);
+ }
+
byte_read = read<uint8_t>();
if (!byte_read) {
return make_error_code(lief_errors::read_error);
}
- value += static_cast<uint64_t>(*byte_read & 0x7f) << shift;
- shift += 7;
- } while (byte_read && *byte_read >= 128);
+ ++count;
+
+ const uint64_t slice = *byte_read & 0x7f;
+
+ if (shift < 64u) {
+ if ((slice << shift >> shift) != slice) {
+ return make_error_code(lief_errors::corrupted);
+ }
+ value |= slice << shift;
+ shift += 7;
+ } else if (slice != 0) {
+ return make_error_code(lief_errors::corrupted);
+ }
+ } while (*byte_read >= 128);
if (size != nullptr) {
*size = pos() - opos;
@@ -89,30 +107,42 @@ result<uint64_t> BinaryStream::read_uleb128(size_t* size) const {
}
result<uint64_t> BinaryStream::read_sleb128(size_t* size) const {
- int64_t value = 0;
+ int64_t value = 0;
unsigned shift = 0;
+ unsigned count = 0;
result<uint8_t> byte_read = 0;
const uint64_t opos = pos();
+
do {
+ if (count == LEB128_MAX_BYTES) {
+ return make_error_code(lief_errors::corrupted);
+ }
+
byte_read = read<uint8_t>();
if (!byte_read) {
return make_error_code(lief_errors::read_error);
}
- value += static_cast<int64_t>(*byte_read & 0x7f) << shift;
- shift += 7;
- } while (byte_read && *byte_read >= 128);
+ ++count;
+ const uint64_t slice = *byte_read & 0x7f;
+
+ if (shift < 64u) {
+ value |= (int64_t)(slice << shift);
+ shift += 7;
+ } else if (slice != ((value < 0) ? 0x7fu : 0x00u)) {
+ return make_error_code(lief_errors::corrupted);
+ }
+ } while (*byte_read >= 128);
- // Sign extend
- if ((*byte_read & 0x40) != 0) {
- value |= -1llu << shift;
+ if (shift < 64u && (*byte_read & 0x40) != 0) {
+ value |= (int64_t)-1llu << shift;
}
if (size != nullptr) {
*size = pos() - opos;
}
- return value;
+ return (uint64_t)value;
}
result<std::string> BinaryStream::read_string(size_t maxsize) const {
@@ -146,10 +176,10 @@ result<std::string> BinaryStream::peek_string(size_t maxsize) const {
} while (count < maxsize && c && *c != '\0' && off < size());
str_result.back() = '\0';
return str_result.c_str();
-
}
-result<std::string> BinaryStream::peek_string_at(size_t offset, size_t maxsize) const {
+result<std::string> BinaryStream::peek_string_at(size_t offset,
+ size_t maxsize) const {
size_t saved_offset = pos();
setpos(offset);
result<std::string> tmp = peek_string(maxsize);
@@ -208,12 +238,13 @@ result<std::u16string> BinaryStream::peek_u16string(size_t length) const {
LIEF::swap_endian(&x);
}
}
- return std::u16string{std::begin(raw_u16str), std::end(raw_u16str)};
+ return std::u16string{raw_u16str.begin(), raw_u16str.end()};
}
return make_error_code(lief_errors::read_error);
}
-result<std::u16string> BinaryStream::peek_u16string_at(size_t offset, size_t length) const {
+result<std::u16string> BinaryStream::peek_u16string_at(size_t offset,
+ size_t length) const {
size_t saved_offset = pos();
setpos(offset);
result<std::u16string> tmp = peek_u16string(length);
@@ -264,21 +295,22 @@ result<std::string> BinaryStream::read_mutf8(size_t maxsize) const {
}
u32str.push_back(static_cast<char32_t>((((a & 0x1F) << 6) | (b & 0x3F))));
} else if ((a & 0xf0) == 0xe0) {
- result<uint8_t> res_b = read<uint8_t>();
- result<uint8_t> res_c = read<uint8_t>();
- if (!res_b) {
- return make_error_code(res_b.error());
- }
- if (!res_c) {
- return make_error_code(res_c.error());
- }
- uint8_t b = *res_b;
- uint8_t c = *res_c;
-
- if (((b & 0xC0) != 0x80) || ((c & 0xC0) != 0x80)) {
- break;
- }
- u32str.push_back(static_cast<char32_t>(((a & 0x1F) << 12) | ((b & 0x3F) << 6) | (c & 0x3F)));
+ result<uint8_t> res_b = read<uint8_t>();
+ result<uint8_t> res_c = read<uint8_t>();
+ if (!res_b) {
+ return make_error_code(res_b.error());
+ }
+ if (!res_c) {
+ return make_error_code(res_c.error());
+ }
+ uint8_t b = *res_b;
+ uint8_t c = *res_c;
+
+ if (((b & 0xC0) != 0x80) || ((c & 0xC0) != 0x80)) {
+ break;
+ }
+ u32str.push_back(static_cast<char32_t>(((a & 0x1F) << 12) |
+ ((b & 0x3F) << 6) | (c & 0x3F)));
} else {
break;
}
@@ -286,12 +318,12 @@ result<std::string> BinaryStream::read_mutf8(size_t maxsize) const {
std::string u8str;
- std::replace_if(std::begin(u32str), std::end(u32str),
- [] (const char32_t c) {
- return !utf8::internal::is_code_point_valid(c);
- }, '.');
+ std::replace_if(
+ u32str.begin(), u32str.end(),
+ [](const char32_t c) { return !utf8::internal::is_code_point_valid(c); }, '.'
+ );
- utf8::unchecked::utf32to8(std::begin(u32str), std::end(u32str),
+ utf8::unchecked::utf32to8(u32str.begin(), u32str.end(),
std::back_inserter(u8str));
return u8str;
}
diff --git a/deps/LIEF/src/BinaryStream/CMakeLists.txt b/deps/LIEF/src/BinaryStream/CMakeLists.txt
index 8765c365122..0de0b934931 100644
--- a/deps/LIEF/src/BinaryStream/CMakeLists.txt
+++ b/deps/LIEF/src/BinaryStream/CMakeLists.txt
@@ -5,4 +5,5 @@ target_sources(LIB_LIEF PRIVATE
MemoryStream.cpp
SpanStream.cpp
VectorStream.cpp
+ DumpStream.cpp
)
diff --git a/deps/LIEF/src/BinaryStream/DumpStream.cpp b/deps/LIEF/src/BinaryStream/DumpStream.cpp
new file mode 100644
index 00000000000..7966f456477
--- /dev/null
+++ b/deps/LIEF/src/BinaryStream/DumpStream.cpp
@@ -0,0 +1,42 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "LIEF/BinaryStream/DumpStream.hpp"
+#include "LIEF/Abstract/Binary.hpp"
+
+namespace LIEF {
+
+std::vector<uint8_t> DumpStream::content() const {
+ std::vector<uint8_t> res;
+ res.resize(size());
+ ref_->peek_in(res.data(), /*offset=*/0, ref_->size());
+ return res;
+}
+
+ok_error_t DumpStream::peek_in(void* dst, uint64_t offset, uint64_t size,
+ uint64_t /*virtual_address*/) const {
+ if (binary_ != nullptr) {
+ if (auto va = binary_->offset_to_virtual_address(offset, baseaddr_)) {
+ if (*va >= baseaddr_) {
+ return ref_->peek_in(dst, *va - baseaddr_, size,
+ /*virtual_address=*/0);
+ }
+ return make_error_code(lief_errors::read_out_of_bound);
+ }
+ }
+ return ref_->peek_in(dst, offset, size, /*virtual_address=*/0);
+}
+
+}
diff --git a/deps/LIEF/src/BinaryStream/FileStream.cpp b/deps/LIEF/src/BinaryStream/FileStream.cpp
index a5ff313e8e2..e985d1056af 100644
--- a/deps/LIEF/src/BinaryStream/FileStream.cpp
+++ b/deps/LIEF/src/BinaryStream/FileStream.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,7 +21,7 @@ namespace LIEF {
result<FileStream> FileStream::from_file(const std::string& file) {
std::ifstream ifs(file, std::ios::in | std::ios::binary);
if (!ifs) {
- LIEF_ERR("Can't open '{}'", file);
+ LIEF_ERR("Failed to open '{}'", file);
return make_error_code(lief_errors::read_error);
}
@@ -29,7 +29,7 @@ result<FileStream> FileStream::from_file(const std::string& file) {
ifs.seekg(0, std::ios::end);
const auto size = static_cast<uint64_t>(ifs.tellg());
ifs.seekg(0, std::ios::beg);
- return result<FileStream>(tl::in_place, std::move(ifs), size);
+ return {tl::in_place, std::move(ifs), size};
}
@@ -44,4 +44,3 @@ std::vector<uint8_t> FileStream::content() const {
}
}
-
diff --git a/deps/LIEF/src/BinaryStream/MemoryStream.cpp b/deps/LIEF/src/BinaryStream/MemoryStream.cpp
index 2ce7e42127c..8ebf3eae446 100644
--- a/deps/LIEF/src/BinaryStream/MemoryStream.cpp
+++ b/deps/LIEF/src/BinaryStream/MemoryStream.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,18 +22,22 @@ namespace LIEF {
static constexpr uint64_t MAX_MEM_SIZE = 6_GB;
MemoryStream::MemoryStream(uintptr_t base_address) :
- MemoryStream(base_address, MAX_MEM_SIZE)
-{}
+ MemoryStream(base_address, MAX_MEM_SIZE) {}
-result<const void*> MemoryStream::read_at(uint64_t offset, uint64_t size, uint64_t /*va*/) const {
- if (offset > size_ || (offset + size) > size_) {
+result<const void*> MemoryStream::read_at(uint64_t offset, uint64_t size,
+ uint64_t /*va*/) const {
+ if (offset > size_ || size > size_ - offset) {
return make_error_code(lief_errors::read_out_of_bound);
}
const uintptr_t va = baseaddr_ + offset;
if (binary_ != nullptr) {
if (auto res = binary_->offset_to_virtual_address(offset, baseaddr_)) {
- return reinterpret_cast<const void*>(*res);
+ const auto translated = (uintptr_t)*res;
+ if (translated >= baseaddr_ && (translated - baseaddr_) <= size_ - size) {
+ return reinterpret_cast<const void*>(translated);
+ }
+ return make_error_code(lief_errors::read_out_of_bound);
}
}
return reinterpret_cast<const void*>(va);
@@ -41,4 +45,3 @@ result<const void*> MemoryStream::read_at(uint64_t offset, uint64_t size, uint64
}
-
diff --git a/deps/LIEF/src/BinaryStream/SpanStream.cpp b/deps/LIEF/src/BinaryStream/SpanStream.cpp
index aa3d8957c0c..f0cb4c09e22 100644
--- a/deps/LIEF/src/BinaryStream/SpanStream.cpp
+++ b/deps/LIEF/src/BinaryStream/SpanStream.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/src/BinaryStream/VectorStream.cpp b/deps/LIEF/src/BinaryStream/VectorStream.cpp
index bb47a3b9b1e..b9cbee33ce4 100644
--- a/deps/LIEF/src/BinaryStream/VectorStream.cpp
+++ b/deps/LIEF/src/BinaryStream/VectorStream.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+#include <memory>
#include <vector>
#include <string>
#include <fstream>
@@ -26,7 +27,7 @@ namespace LIEF {
result<VectorStream> VectorStream::from_file(const std::string& file) {
std::ifstream ifs(file, std::ios::in | std::ios::binary);
if (!ifs) {
- LIEF_ERR("Can't open '{}'", file);
+ LIEF_ERR("Failed to open '{}'", file);
return make_error_code(lief_errors::read_error);
}
@@ -40,12 +41,13 @@ result<VectorStream> VectorStream::from_file(const std::string& file) {
return VectorStream{std::move(data)};
}
-std::unique_ptr<SpanStream> VectorStream::slice(uint32_t offset, size_t size) const {
+std::unique_ptr<SpanStream> VectorStream::slice(uint32_t offset,
+ size_t size) const {
if (offset > binary_.size() || (offset + size) > binary_.size()) {
return nullptr;
}
const uint8_t* start = binary_.data() + offset;
- return std::unique_ptr<SpanStream>(new SpanStream(start, size));
+ return std::make_unique<SpanStream>(start, size);
}
@@ -54,4 +56,3 @@ std::unique_ptr<SpanStream> VectorStream::slice(uint32_t offset) const {
}
}
-
diff --git a/deps/LIEF/src/CMakeLists.txt b/deps/LIEF/src/CMakeLists.txt
index 8bce2958e35..738d64750dc 100644
--- a/deps/LIEF/src/CMakeLists.txt
+++ b/deps/LIEF/src/CMakeLists.txt
@@ -12,11 +12,14 @@ target_sources(LIB_LIEF PRIVATE
utils.cpp
range.cpp
visitors/hash.cpp
+ threading_alt.cpp
+ mbedtls_init.cpp
)
add_subdirectory(BinaryStream)
add_subdirectory(Abstract)
add_subdirectory(platforms)
+add_subdirectory(runtime)
if(LIEF_ENABLE_JSON)
target_sources(LIB_LIEF PRIVATE visitors/json.cpp)
@@ -55,6 +58,7 @@ if(LIEF_ART)
endif()
if(NOT LIEF_DEBUG_INFO_SUPPORT)
+ target_sources(LIB_LIEF PRIVATE DebugDeclOpt.cpp)
add_subdirectory(DWARF)
add_subdirectory(PDB)
endif()
@@ -70,4 +74,3 @@ endif()
if(NOT LIEF_ASM)
add_subdirectory(asm)
endif()
-
diff --git a/deps/LIEF/src/COFF/AuxiliarySymbol.cpp b/deps/LIEF/src/COFF/AuxiliarySymbol.cpp
index e49faeb1b0d..b7f7499845a 100644
--- a/deps/LIEF/src/COFF/AuxiliarySymbol.cpp
+++ b/deps/LIEF/src/COFF/AuxiliarySymbol.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,29 +31,22 @@
namespace LIEF::COFF {
std::unique_ptr<AuxiliarySymbol>
- AuxiliarySymbol::parse(Symbol& sym, std::vector<uint8_t> payload)
-{
+ AuxiliarySymbol::parse(Symbol& sym, std::vector<uint8_t> payload) {
assert(payload.size() >= 18);
const TYPE ty = get_aux_type(sym);
switch (ty) {
- case TYPE::CLR_TOKEN:
- return AuxiliaryCLRToken::parse(payload);
+ case TYPE::CLR_TOKEN: return AuxiliaryCLRToken::parse(payload);
- case TYPE::FUNC_DEF:
- return AuxiliaryFunctionDefinition::parse(payload);
+ case TYPE::FUNC_DEF: return AuxiliaryFunctionDefinition::parse(payload);
- case TYPE::BF_AND_EF:
- return AuxiliarybfAndefSymbol::parse(sym, std::move(payload));
+ case TYPE::BF_AND_EF: return AuxiliarybfAndefSymbol::parse(sym, payload);
- case TYPE::WEAK_EXTERNAL:
- return AuxiliaryWeakExternal::parse(payload);
+ case TYPE::WEAK_EXTERNAL: return AuxiliaryWeakExternal::parse(payload);
- case TYPE::FILE:
- return AuxiliaryFile::parse(payload);
+ case TYPE::FILE: return AuxiliaryFile::parse(payload);
- case TYPE::SEC_DEF:
- return AuxiliarySectionDefinition::parse(payload);
+ case TYPE::SEC_DEF: return AuxiliarySectionDefinition::parse(payload);
case TYPE::UNKNOWN:
return std::make_unique<AuxiliarySymbol>(std::move(payload));
@@ -79,8 +72,7 @@ AuxiliarySymbol::TYPE AuxiliarySymbol::get_aux_type(const Symbol& sym) {
return TYPE::WEAK_EXTERNAL;
}
- if (sym.is_external() &&
- sym.base_type() == Symbol::BASE_TYPE::TY_NULL &&
+ if (sym.is_external() && sym.base_type() == Symbol::BASE_TYPE::TY_NULL &&
sym.complex_type() == Symbol::COMPLEX_TYPE::TY_FUNCTION &&
!Symbol::is_reversed_sec_idx(sym.section_idx()))
{
diff --git a/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryCLRToken.cpp b/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryCLRToken.cpp
index 922776d0f7c..f29896eec17 100644
--- a/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryCLRToken.cpp
+++ b/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryCLRToken.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -33,35 +33,35 @@ namespace LIEF::COFF {
// BYTE rgbReserved[12]; // Must be 0
// } IMAGE_AUX_SYMBOL_TOKEN_DEF
std::unique_ptr<AuxiliaryCLRToken>
- AuxiliaryCLRToken::parse(const std::vector<uint8_t>& payload)
-{
+ AuxiliaryCLRToken::parse(const std::vector<uint8_t>& payload) {
SpanStream stream(payload);
auto bAuxType = stream.read<uint8_t>();
if (!bAuxType) {
- LIEF_WARN("AuxiliaryCLRToken error (line: {})", __LINE__);
+ LIEF_WARN("Failed to parse AuxiliaryCLRToken field (line: {})", __LINE__);
return std::make_unique<AuxiliaryCLRToken>();
}
auto bReserved = stream.read<uint8_t>();
if (!bReserved) {
- LIEF_WARN("AuxiliaryCLRToken error (line: {})", __LINE__);
+ LIEF_WARN("Failed to parse AuxiliaryCLRToken field (line: {})", __LINE__);
return std::make_unique<AuxiliaryCLRToken>();
}
auto SymbolTableIndex = stream.read<uint32_t>();
if (!SymbolTableIndex) {
- LIEF_WARN("AuxiliaryCLRToken error (line: {})", __LINE__);
+ LIEF_WARN("Failed to parse AuxiliaryCLRToken field (line: {})", __LINE__);
return std::make_unique<AuxiliaryCLRToken>();
}
std::vector<uint8_t> rgbReserved;
if (!stream.read_data(rgbReserved, 12)) {
- LIEF_WARN("AuxiliaryCLRToken error (line: {})", __LINE__);
+ LIEF_WARN("Failed to parse AuxiliaryCLRToken field (line: {})", __LINE__);
return std::make_unique<AuxiliaryCLRToken>();
}
- return std::make_unique<AuxiliaryCLRToken>(
- *bAuxType, *bReserved, *SymbolTableIndex, std::move(rgbReserved));
+ return std::make_unique<AuxiliaryCLRToken>(*bAuxType, *bReserved,
+ *SymbolTableIndex,
+ std::move(rgbReserved));
}
std::string AuxiliaryCLRToken::to_string() const {
diff --git a/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryFile.cpp b/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryFile.cpp
index ed7179d3f96..6682e06f49e 100644
--- a/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryFile.cpp
+++ b/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryFile.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,12 +21,11 @@
namespace LIEF::COFF {
std::unique_ptr<AuxiliaryFile>
- AuxiliaryFile::parse(const std::vector<uint8_t>& payload)
-{
+ AuxiliaryFile::parse(const std::vector<uint8_t>& payload) {
SpanStream stream(payload);
auto file = stream.read_string();
if (!file) {
- LIEF_WARN("Can't parse AuxiliaryFile.file");
+ LIEF_WARN("Failed to parse AuxiliaryFile.file");
return std::make_unique<AuxiliaryFile>();
}
return std::make_unique<AuxiliaryFile>(std::move(*file));
diff --git a/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryFunctionDefinition.cpp b/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryFunctionDefinition.cpp
index c51cc96ed30..8cc597d1f47 100644
--- a/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryFunctionDefinition.cpp
+++ b/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryFunctionDefinition.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,50 +22,54 @@
namespace LIEF::COFF {
std::unique_ptr<AuxiliaryFunctionDefinition>
- AuxiliaryFunctionDefinition::parse(const std::vector<uint8_t>& payload)
-{
+ AuxiliaryFunctionDefinition::parse(const std::vector<uint8_t>& payload) {
SpanStream stream(payload);
auto TagIndex = stream.read<uint32_t>();
if (!TagIndex) {
- LIEF_WARN("AuxiliaryFunctionDefinition error (line: {})", __LINE__);
+ LIEF_WARN("Failed to parse AuxiliaryFunctionDefinition field (line: {})",
+ __LINE__);
return std::make_unique<AuxiliaryFunctionDefinition>();
}
auto TotalSize = stream.read<uint32_t>();
if (!TotalSize) {
- LIEF_WARN("AuxiliaryFunctionDefinition error (line: {})", __LINE__);
+ LIEF_WARN("Failed to parse AuxiliaryFunctionDefinition field (line: {})",
+ __LINE__);
return std::make_unique<AuxiliaryFunctionDefinition>();
}
auto PointerToLinenumber = stream.read<uint32_t>();
if (!PointerToLinenumber) {
- LIEF_WARN("AuxiliaryFunctionDefinition error (line: {})", __LINE__);
+ LIEF_WARN("Failed to parse AuxiliaryFunctionDefinition field (line: {})",
+ __LINE__);
return std::make_unique<AuxiliaryFunctionDefinition>();
}
auto PointerToNextFunction = stream.read<uint32_t>();
if (!PointerToNextFunction) {
- LIEF_WARN("AuxiliaryFunctionDefinition error (line: {})", __LINE__);
+ LIEF_WARN("Failed to parse AuxiliaryFunctionDefinition field (line: {})",
+ __LINE__);
return std::make_unique<AuxiliaryFunctionDefinition>();
}
auto Unused = stream.read<uint16_t>();
if (!Unused) {
- LIEF_WARN("AuxiliaryFunctionDefinition error (line: {})", __LINE__);
+ LIEF_WARN("Failed to parse AuxiliaryFunctionDefinition field (line: {})",
+ __LINE__);
return std::make_unique<AuxiliaryFunctionDefinition>();
}
return std::make_unique<AuxiliaryFunctionDefinition>(
- *TagIndex, *TotalSize, *PointerToLinenumber, *PointerToNextFunction, *Unused
+ *TagIndex, *TotalSize, *PointerToLinenumber, *PointerToNextFunction, *Unused
);
}
std::string AuxiliaryFunctionDefinition::to_string() const {
std::ostringstream oss;
oss << "AuxiliaryFunctionDefinition {\n";
- oss << fmt::format(" Tag index: 0x{:06x}\n", tag_index());
- oss << fmt::format(" Total size: 0x{:06x}\n", total_size());
- oss << fmt::format(" Pointer to line number: 0x{:06x}\n", ptr_to_line_number());
+ oss << fmt::format(" Tag index: {:#08x}\n", tag_index());
+ oss << fmt::format(" Total size: {:#08x}\n", total_size());
+ oss << fmt::format(" Pointer to line number: {:#08x}\n", ptr_to_line_number());
oss << fmt::format(" Pointer to next function: {}\n", ptr_to_next_func());
oss << "}\n";
return oss.str();
diff --git a/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliarySectionDefinition.cpp b/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliarySectionDefinition.cpp
index fed95aaa085..69a2c3b8e3c 100644
--- a/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliarySectionDefinition.cpp
+++ b/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliarySectionDefinition.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,82 +24,89 @@
namespace LIEF::COFF {
std::unique_ptr<AuxiliarySectionDefinition>
- AuxiliarySectionDefinition::parse(const std::vector<uint8_t>& payload)
-{
+ AuxiliarySectionDefinition::parse(const std::vector<uint8_t>& payload) {
const bool isbigobj = payload.size() == sizeof(details::symbol32);
SpanStream stream(payload);
auto Length = stream.read<uint32_t>();
if (!Length) {
- LIEF_WARN("AuxiliarySectionDefinition error (line: {})", __LINE__);
+ LIEF_WARN("Failed to parse AuxiliarySectionDefinition field (line: {})",
+ __LINE__);
return std::make_unique<AuxiliarySectionDefinition>();
}
auto NumberOfRelocations = stream.read<uint16_t>();
if (!NumberOfRelocations) {
- LIEF_WARN("AuxiliarySectionDefinition error (line: {})", __LINE__);
+ LIEF_WARN("Failed to parse AuxiliarySectionDefinition field (line: {})",
+ __LINE__);
return std::make_unique<AuxiliarySectionDefinition>();
}
auto NumberOfLinenumbers = stream.read<uint16_t>();
if (!NumberOfLinenumbers) {
- LIEF_WARN("AuxiliarySectionDefinition error (line: {})", __LINE__);
+ LIEF_WARN("Failed to parse AuxiliarySectionDefinition field (line: {})",
+ __LINE__);
return std::make_unique<AuxiliarySectionDefinition>();
}
auto CheckSum = stream.read<uint32_t>();
if (!CheckSum) {
- LIEF_WARN("AuxiliarySectionDefinition error (line: {})", __LINE__);
+ LIEF_WARN("Failed to parse AuxiliarySectionDefinition field (line: {})",
+ __LINE__);
return std::make_unique<AuxiliarySectionDefinition>();
}
auto Number = stream.read<uint16_t>();
if (!Number) {
- LIEF_WARN("AuxiliarySectionDefinition error (line: {})", __LINE__);
+ LIEF_WARN("Failed to parse AuxiliarySectionDefinition field (line: {})",
+ __LINE__);
return std::make_unique<AuxiliarySectionDefinition>();
}
auto Selection = stream.read<uint8_t>();
if (!Selection) {
- LIEF_WARN("AuxiliarySectionDefinition error (line: {})", __LINE__);
+ LIEF_WARN("Failed to parse AuxiliarySectionDefinition field (line: {})",
+ __LINE__);
return std::make_unique<AuxiliarySectionDefinition>();
}
if (!isbigobj) {
return std::make_unique<AuxiliarySectionDefinition>(
- *Length, *NumberOfRelocations, *NumberOfLinenumbers, *CheckSum, *Number,
- *Selection, /*reserved=*/0
+ *Length, *NumberOfRelocations, *NumberOfLinenumbers, *CheckSum, *Number,
+ *Selection, /*reserved=*/0
);
}
auto bReserved = stream.read<uint8_t>();
if (!bReserved) {
- LIEF_WARN("AuxiliarySectionDefinition error (line: {})", __LINE__);
+ LIEF_WARN("Failed to parse AuxiliarySectionDefinition field (line: {})",
+ __LINE__);
return std::make_unique<AuxiliarySectionDefinition>();
}
auto HighNumber = stream.read<uint16_t>();
if (!HighNumber) {
- LIEF_WARN("AuxiliarySectionDefinition error (line: {})", __LINE__);
+ LIEF_WARN("Failed to parse AuxiliarySectionDefinition field (line: {})",
+ __LINE__);
return std::make_unique<AuxiliarySectionDefinition>();
}
const uint32_t nb_sections = *HighNumber << 16 | *Number;
return std::make_unique<AuxiliarySectionDefinition>(
- *Length, *NumberOfRelocations, *NumberOfLinenumbers, *CheckSum, nb_sections,
- *Selection, *bReserved
+ *Length, *NumberOfRelocations, *NumberOfLinenumbers, *CheckSum, nb_sections,
+ *Selection, *bReserved
);
}
std::string AuxiliarySectionDefinition::to_string() const {
std::ostringstream oss;
oss << "AuxiliarySectionDefinition {\n";
- oss << fmt::format(" Length: 0x{:06x}\n", length());
+ oss << fmt::format(" Length: {:#08x}\n", length());
oss << fmt::format(" Number of relocations: {}\n", nb_relocs());
oss << fmt::format(" Number of line numbers: {}\n", nb_line_numbers());
- oss << fmt::format(" Checksum: 0x{:08x}\n", checksum());
+ oss << fmt::format(" Checksum: {:#010x}\n", checksum());
oss << fmt::format(" Section index: {}\n", section_idx());
oss << fmt::format(" Selection: {}\n", COFF::to_string(selection()));
oss << fmt::format(" Reserved: {}\n", reserved());
diff --git a/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryWeakExternal.cpp b/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryWeakExternal.cpp
index d41e1010034..32e8eeb48c0 100644
--- a/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryWeakExternal.cpp
+++ b/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliaryWeakExternal.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,37 +21,34 @@
namespace LIEF::COFF {
std::unique_ptr<AuxiliaryWeakExternal>
- AuxiliaryWeakExternal::parse(const std::vector<uint8_t>& payload)
-{
+ AuxiliaryWeakExternal::parse(const std::vector<uint8_t>& payload) {
SpanStream stream(payload);
auto TagIndex = stream.read<uint32_t>();
if (!TagIndex) {
- LIEF_WARN("AuxiliaryWeakExternal error (line: {})", __LINE__);
+ LIEF_WARN("Failed to parse AuxiliaryWeakExternal field (line: {})", __LINE__);
return std::make_unique<AuxiliaryWeakExternal>();
}
auto Characteristics = stream.read<uint32_t>();
if (!Characteristics) {
- LIEF_WARN("AuxiliaryWeakExternal error (line: {})", __LINE__);
+ LIEF_WARN("Failed to parse AuxiliaryWeakExternal field (line: {})", __LINE__);
return std::make_unique<AuxiliaryWeakExternal>();
}
std::vector<uint8_t> padding;
if (!stream.read_data(padding, 10)) {
- LIEF_WARN("AuxiliaryWeakExternal error (line: {})", __LINE__);
+ LIEF_WARN("Failed to parse AuxiliaryWeakExternal field (line: {})", __LINE__);
return std::make_unique<AuxiliaryWeakExternal>();
}
- return std::make_unique<AuxiliaryWeakExternal>(
- *TagIndex, *Characteristics, std::move(padding)
- );
+ return std::make_unique<AuxiliaryWeakExternal>(*TagIndex, *Characteristics,
+ std::move(padding));
}
const char* to_string(AuxiliaryWeakExternal::CHARACTERISTICS e) {
switch (e) {
- default:
- return "UNKNOWN";
+ default: return "UNKNOWN";
case AuxiliaryWeakExternal::CHARACTERISTICS::SEARCH_NOLIBRARY:
return "SEARCH_NOLIBRARY";
case AuxiliaryWeakExternal::CHARACTERISTICS::SEARCH_LIBRARY:
@@ -68,7 +65,8 @@ std::string AuxiliaryWeakExternal::to_string() const {
std::ostringstream oss;
oss << "AuxiliaryWeakExternal {\n";
oss << fmt::format(" Symbol index: {}\n", sym_idx());
- oss << fmt::format(" Characteristics: {} ({})\n", LIEF::COFF::to_string(characteristics()),
+ oss << fmt::format(" Characteristics: {} ({})\n",
+ LIEF::COFF::to_string(characteristics()),
(int)characteristics());
oss << "}\n";
return oss.str();
diff --git a/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliarybfAndefSymbol.cpp b/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliarybfAndefSymbol.cpp
index cc5f9120997..926edb2704f 100644
--- a/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliarybfAndefSymbol.cpp
+++ b/deps/LIEF/src/COFF/AuxiliarySymbols/AuxiliarybfAndefSymbol.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,8 @@
namespace LIEF::COFF {
std::unique_ptr<AuxiliarybfAndefSymbol>
- AuxiliarybfAndefSymbol::parse(Symbol& /*sym*/, const std::vector<uint8_t>& /*payload*/)
-{
+ AuxiliarybfAndefSymbol::parse(Symbol& /*sym*/,
+ const std::vector<uint8_t>& /*payload*/) {
return std::make_unique<AuxiliarybfAndefSymbol>();
}
}
diff --git a/deps/LIEF/src/COFF/BigObjHeader.cpp b/deps/LIEF/src/COFF/BigObjHeader.cpp
index 41bfdae2f4a..8888269e03e 100644
--- a/deps/LIEF/src/COFF/BigObjHeader.cpp
+++ b/deps/LIEF/src/COFF/BigObjHeader.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -39,8 +39,7 @@ std::unique_ptr<BigObjHeader> BigObjHeader::create(BinaryStream& stream) {
// BigObj specific
hdr->version_ = raw->version;
- std::copy(std::begin(raw->uuid), std::end(raw->uuid),
- std::begin(hdr->uuid_));
+ std::copy(std::begin(raw->uuid), std::end(raw->uuid), std::begin(hdr->uuid_));
hdr->sizeof_data_ = raw->unused1;
hdr->flags_ = raw->unused2;
hdr->metadata_size_ = raw->unused3;
@@ -50,17 +49,16 @@ std::unique_ptr<BigObjHeader> BigObjHeader::create(BinaryStream& stream) {
}
std::string BigObjHeader::to_string() const {
- using namespace fmt;
std::ostringstream oss;
static constexpr auto WIDTH = 16;
oss << Header::to_string() << '\n';
- oss << format("{:>{}} Version\n", version(), WIDTH);
- oss << format("{:>{}} uuid: {}\n", "", WIDTH, uuid_to_str_impl(uuid_));
- oss << format("{:>#{}x} Size of data\n", sizeof_data(), WIDTH);
- oss << format("{:>#{}x} Flags\n", flags(), WIDTH);
- oss << format("{:>#{}x} Metadata size\n", metadata_size(), WIDTH);
- oss << format("{:>#{}x} Metadata offset", metadata_offset(), WIDTH);
+ oss << fmt::format("{:>{}} Version\n", version(), WIDTH);
+ oss << fmt::format("{:>{}} uuid: {}\n", "", WIDTH, uuid_to_str_impl(uuid_));
+ oss << fmt::format("{:>#{}x} Size of data\n", sizeof_data(), WIDTH);
+ oss << fmt::format("{:>#{}x} Flags\n", flags(), WIDTH);
+ oss << fmt::format("{:>#{}x} Metadata size\n", metadata_size(), WIDTH);
+ oss << fmt::format("{:>#{}x} Metadata offset", metadata_offset(), WIDTH);
return oss.str();
}
diff --git a/deps/LIEF/src/COFF/Binary.cpp b/deps/LIEF/src/COFF/Binary.cpp
index cc93a7eab52..6f5144d073c 100644
--- a/deps/LIEF/src/COFF/Binary.cpp
+++ b/deps/LIEF/src/COFF/Binary.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -33,17 +33,13 @@ Binary::~Binary() = default;
Binary::it_const_function Binary::functions() const {
- return {symbols_, [] (const std::unique_ptr<Symbol>& sym) {
- return sym->is_function();
- }
- };
+ return {symbols_,
+ [](const std::unique_ptr<Symbol>& sym) { return sym->is_function(); }};
}
Binary::it_functions Binary::functions() {
- return {symbols_, [] (const std::unique_ptr<Symbol>& sym) {
- return sym->is_function();
- }
- };
+ return {symbols_,
+ [](const std::unique_ptr<Symbol>& sym) { return sym->is_function(); }};
}
const Symbol* Binary::find_function(const std::string& name) const {
@@ -65,7 +61,6 @@ const Symbol* Binary::find_demangled_function(const std::string& name) const {
}
std::string Binary::to_string() const {
- using namespace fmt;
std::ostringstream oss;
oss << header() << '\n';
@@ -74,8 +69,7 @@ std::string Binary::to_string() const {
const auto secs = sections();
for (size_t i = 0; i < secs.size(); ++i) {
oss << fmt::format("Section #{:02} {{\n", i)
- << indent(LIEF::to_string(secs[i]), 2)
- << "}\n";
+ << indent(LIEF::to_string(secs[i]), 2) << "}\n";
}
}
@@ -83,15 +77,14 @@ std::string Binary::to_string() const {
oss << fmt::format("Symbols (#{})\n", syms.size());
for (size_t i = 0; i < syms.size(); ++i) {
oss << fmt::format("Symbol[{:02d}] {{\n", i)
- << indent(LIEF::to_string(syms[i]), 2)
- << "}\n";
+ << indent(LIEF::to_string(syms[i]), 2) << "}\n";
}
}
if (auto relocs = relocations(); !relocs.empty()) {
oss << fmt::format("Relocations (#{})\n", relocs.size());
- for (size_t i = 0; i < relocs.size(); ++i) {
- oss << " " << relocs[i] << '\n';
+ for (const Relocation& reloc : relocs) {
+ oss << " " << reloc << '\n';
}
}
diff --git a/deps/LIEF/src/COFF/Header.cpp b/deps/LIEF/src/COFF/Header.cpp
index 4ef5752b1ec..aa48515891f 100644
--- a/deps/LIEF/src/COFF/Header.cpp
+++ b/deps/LIEF/src/COFF/Header.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -30,20 +30,16 @@ std::unique_ptr<Header> Header::create(BinaryStream& stream) {
std::unique_ptr<Header> Header::create(BinaryStream& stream, KIND kind) {
switch (kind) {
- case KIND::REGULAR:
- return RegularHeader::create(stream);
+ case KIND::REGULAR: return RegularHeader::create(stream);
- case KIND::BIGOBJ:
- return BigObjHeader::create(stream);
+ case KIND::BIGOBJ: return BigObjHeader::create(stream);
- case KIND::UNKNOWN:
- return nullptr;
+ case KIND::UNKNOWN: return nullptr;
}
return nullptr;
}
std::string Header::to_string() const {
- using namespace fmt;
std::ostringstream oss;
static constexpr auto WIDTH = 16;
@@ -51,13 +47,15 @@ std::string Header::to_string() const {
oss << "BigObj ";
}
oss << "COFF Binary\n";
- oss << format("{:>#{}x} Machine ({})\n", (uint16_t)machine(), WIDTH,
- COFF::to_string(machine()));
- oss << format("{:>{}} Number of sections\n", (uint16_t)nb_sections(), WIDTH);
- oss << format("{:>#{}x} Time date stamp: {}\n", timedatestamp(), WIDTH,
- ts_to_str(timedatestamp()));
- oss << format("{:>#{}x} File pointer to symbol table\n", pointerto_symbol_table(), WIDTH);
- oss << format("{:>{}} Number of symbols", nb_symbols(), WIDTH);
+ oss << fmt::format("{:>#{}x} Machine ({})\n", (uint16_t)machine(), WIDTH,
+ COFF::to_string(machine()));
+ oss << fmt::format("{:>{}} Number of sections\n", (uint16_t)nb_sections(),
+ WIDTH);
+ oss << fmt::format("{:>#{}x} Time date stamp: {}\n", timedatestamp(), WIDTH,
+ ts_to_str(timedatestamp()));
+ oss << fmt::format("{:>#{}x} File pointer to symbol table\n",
+ pointerto_symbol_table(), WIDTH);
+ oss << fmt::format("{:>{}} Number of symbols", nb_symbols(), WIDTH);
return oss.str();
}
}
diff --git a/deps/LIEF/src/COFF/Parser.cpp b/deps/LIEF/src/COFF/Parser.cpp
index f49f9bb423f..f8f19393a5e 100644
--- a/deps/LIEF/src/COFF/Parser.cpp
+++ b/deps/LIEF/src/COFF/Parser.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,14 +24,22 @@
#include "LIEF/COFF/AuxiliarySymbol.hpp"
#include "LIEF/COFF/AuxiliarySymbols/AuxiliaryCLRToken.hpp"
+#include "LIEF/BinaryStream/VectorStream.hpp"
+#include "LIEF/BinaryStream/SpanStream.hpp"
+
#include "COFF/structures.hpp"
#include "logging.hpp"
namespace LIEF::COFF {
+Parser::Parser(std::unique_ptr<BinaryStream> stream, const ParserConfig& config,
+ Header::KIND kind) :
+ stream_(std::move(stream)),
+ kind_(kind),
+ config_(config) {}
+
std::unique_ptr<Binary> Parser::parse(std::unique_ptr<BinaryStream> stream,
- const ParserConfig& config)
-{
+ const ParserConfig& config) {
if (stream == nullptr) {
return nullptr;
}
@@ -50,6 +58,15 @@ std::unique_ptr<Binary> Parser::parse(std::unique_ptr<BinaryStream> stream,
return nullptr;
}
+std::unique_ptr<Binary> Parser::parse(const std::string& file,
+ const ParserConfig& config) {
+ if (auto strm = VectorStream::from_file(file)) {
+ return parse(std::unique_ptr<VectorStream>(new VectorStream(std::move(*strm))),
+ config);
+ }
+ return nullptr;
+}
+
ok_error_t Parser::process() {
if (!parse_header()) {
LIEF_WARN("Failed to parse COFF header");
@@ -57,12 +74,12 @@ ok_error_t Parser::process() {
}
if (!parse_optional_header()) {
- LIEF_WARN("Failed to parse optional header");
+ LIEF_WARN("Failed to parse COFF optional header");
return make_error_code(lief_errors::parsing_error);
}
if (!parse_string_table()) {
- LIEF_WARN("Failed to parse the string table");
+ LIEF_WARN("Failed to parse string table");
return make_error_code(lief_errors::parsing_error);
}
@@ -83,7 +100,7 @@ ok_error_t Parser::parse_header() {
LIEF_DEBUG("Parsing COFF header ({})", to_string(kind_));
std::unique_ptr<Header> hdr = Header::create(*stream_, kind_);
if (hdr == nullptr) {
- LIEF_DEBUG("Error: {}:{}", __FUNCTION__, __LINE__);
+ LIEF_DEBUG("Failed to create header at {}:{}", __FUNCTION__, __LINE__);
return make_error_code(lief_errors::parsing_error);
}
bin_->header_ = std::move(hdr);
@@ -105,7 +122,7 @@ ok_error_t Parser::parse_optional_header() {
std::vector<uint8_t> raw_opt_hdr;
if (!stream_->read_data(raw_opt_hdr, sz)) {
- LIEF_ERR("Can't read COFF optional header");
+ LIEF_ERR("Failed to read COFF optional header");
return make_error_code(lief_errors::parsing_error);
}
@@ -113,29 +130,41 @@ ok_error_t Parser::parse_optional_header() {
}
ok_error_t Parser::parse_sections() {
- const size_t nb_sections = bin_->header().nb_sections();
- LIEF_DEBUG("Parsing #{} section (offset=0x{:08x})", nb_sections,
- (uint32_t)stream_->pos());
+ size_t nb_sections = bin_->header().nb_sections();
+ if (nb_sections > MAX_NB_SECTIONS) {
+ LIEF_WARN("COFF number of sections ({}) exceeds the limit ({})", nb_sections,
+ MAX_NB_SECTIONS);
+ nb_sections = MAX_NB_SECTIONS;
+ }
+ LIEF_DEBUG("Parsing {} sections (offset={:#010x})", nb_sections,
+ (uint32_t)stream_->pos());
for (size_t i = 0; i < nb_sections; ++i) {
std::unique_ptr<Section> sec = Section::parse(*stream_);
if (sec == nullptr) {
- LIEF_WARN("Can't parse section #{}", i);
+ LIEF_WARN("Failed to parse section #{}", i);
break;
}
if (!parse_relocations(*sec)) {
- LIEF_INFO("Failed to parse relocation of section #{}", i);
+ LIEF_INFO("Failed to parse relocations for section #{}", i);
}
// Resolve symbols associated with this section
- auto range = std::equal_range(symsec_.begin(), symsec_.end(),
- SymSec{i, nullptr}
- );
- for (auto it = range.first; it != range.second; ++it) {
+ auto [first, last] =
+ std::equal_range(symsec_.begin(), symsec_.end(), SymSec{i, nullptr});
+ for (auto it = first; it != last; ++it) {
assert(it->symbol != nullptr);
it->symbol->section_ = sec.get();
sec->symbols_.push_back(it->symbol);
}
+ if (const std::string& name = sec->name(); name.size() > 1 && name[0] == '/') {
+ char* endptr = nullptr;
+ uint32_t offset = std::strtol(name.c_str() + 1, &endptr, /*base=*/10);
+ if (String* coff_str = bin_->find_string(offset)) {
+ sec->coff_string_ = coff_str;
+ }
+ }
+
bin_->sections_.push_back(std::move(sec));
}
return ok();
@@ -149,22 +178,22 @@ ok_error_t Parser::parse_relocations(Section& section) {
return ok();
}
- LIEF_DEBUG("Parsing #{} relocations at offset: {:#x} (section: '{}')",
+ LIEF_DEBUG("Parsing {} relocations at offset {:#x} (section: '{}')",
nb_relocations, reloc_offset, section.name());
ScopedStream strm(*stream_, reloc_offset);
if (section.has_extended_relocations()) {
std::unique_ptr<Relocation> reloc =
- Relocation::parse(*strm, bin_->header().machine());
+ Relocation::parse(*strm, bin_->header().machine());
if (reloc == nullptr) {
- LIEF_ERR("Can't parse the first relocations");
+ LIEF_ERR("Failed to parse first relocation");
return ok();
}
if (reloc->address() < 1) {
- LIEF_ERR("Invalid number of relocations");
+ LIEF_ERR("Invalid relocation count");
return ok();
}
@@ -176,13 +205,16 @@ ok_error_t Parser::parse_relocations(Section& section) {
bin_->relocations_.push_back(std::move(reloc));
}
+ nb_relocations = std::min<size_t>(nb_relocations,
+ stream_->size() / sizeof(details::relocation));
for (size_t i = 0; i < nb_relocations; ++i) {
std::unique_ptr<Relocation> reloc =
- Relocation::parse(*strm, bin_->header().machine());
+ Relocation::parse(*strm, bin_->header().machine());
if (reloc == nullptr) {
- LIEF_WARN("Can't parse relocation #{} in section: '{}'", i, section.name());
+ LIEF_WARN("Failed to parse relocation #{} in section '{}'", i,
+ section.name());
break;
}
@@ -199,11 +231,10 @@ ok_error_t Parser::parse_relocations(Section& section) {
}
String* Parser::find_coff_string(uint32_t offset) const {
- auto it = memoize_coff_str_.find(offset);
- if (it == memoize_coff_str_.end()) {
- return nullptr;
+ if (auto it = memoize_coff_str_.find(offset); it != memoize_coff_str_.end()) {
+ return &bin_->strings_table_[it->second];
}
- return &bin_->strings_table_[it->second];
+ return nullptr;
}
ok_error_t Parser::parse_symbols() {
@@ -215,20 +246,18 @@ ok_error_t Parser::parse_symbols() {
}
ScopedStream strm(*stream_, symbols_offset);
- Symbol::parsing_context_t ctx {
- /*.find_string =*/ [this] (uint32_t offset) {
- return this->find_coff_string(offset);
- },
- /*is_bigobj=*/kind_ == Header::KIND::BIGOBJ
- };
- LIEF_DEBUG("Parsing #{} symbols at {:#x}", nb_symbols, symbols_offset);
+ Symbol::parsing_context_t ctx{/*.find_string =*/[this](uint32_t offset) {
+ return this->find_coff_string(offset);
+ },
+ /*is_bigobj=*/kind_ == Header::KIND::BIGOBJ};
+ LIEF_DEBUG("Parsing {} symbols at {:#x}", nb_symbols, symbols_offset);
std::vector<AuxiliaryCLRToken*> pending_resolution;
for (size_t idx = 0; idx < nb_symbols;) {
size_t current_idx = idx;
std::unique_ptr<Symbol> sym = Symbol::parse(ctx, *strm, &idx);
if (sym == nullptr) {
- LIEF_WARN("Can't parse symbol #{}", idx);
+ LIEF_WARN("Failed to parse symbol #{}", idx);
break;
}
@@ -240,7 +269,9 @@ ok_error_t Parser::parse_symbols() {
pending_resolution.push_back(crl_token);
}
- if (sym->section_idx() > 0 && (uint32_t)sym->section_idx() <= hdr.nb_sections()) {
+ if (sym->section_idx() > 0 &&
+ (uint32_t)sym->section_idx() <= hdr.nb_sections())
+ {
symsec_.push_back({(size_t)sym->section_idx() - 1, sym.get()});
}
@@ -271,13 +302,21 @@ ok_error_t Parser::parse_string_table() {
if (symbols_offset == 0) {
return ok();
}
- const size_t sizeof_sym =
- kind_ == Header::KIND::BIGOBJ ? sizeof(details::symbol32) :
- sizeof(details::symbol16);
+ const size_t sizeof_sym = kind_ == Header::KIND::BIGOBJ ?
+ sizeof(details::symbol32) :
+ sizeof(details::symbol16);
- const uint32_t string_tbl_offset = symbols_offset + nb_symbols * sizeof_sym;
+ const uint64_t string_tbl_offset =
+ static_cast<uint64_t>(symbols_offset) +
+ static_cast<uint64_t>(nb_symbols) * sizeof_sym;
+
+ if (string_tbl_offset + sizeof(uint32_t) > stream_->size()) {
+ LIEF_DEBUG("COFF string table offset ({:#x}) is out of bounds",
+ string_tbl_offset);
+ return ok();
+ }
- LIEF_DEBUG("Parsing string table (offset: {:#x})", string_tbl_offset);
+ LIEF_DEBUG("Parsing string table (offset {:#x})", string_tbl_offset);
ScopedStream scoped(*stream_, string_tbl_offset);
auto table_sz = scoped->read<uint32_t>();
@@ -303,10 +342,10 @@ ok_error_t Parser::parse_string_table() {
break;
}
- LIEF_DEBUG("string[0x{:06x}]: {}", pos, *str);
+ LIEF_DEBUG("string[{:#08x}]: {}", pos, *str);
memoize(String(pos, std::move(*str)));
}
- LIEF_DEBUG("#{} strings found", bin_->strings_table_.size());
+ LIEF_DEBUG("{} strings found", bin_->strings_table_.size());
return ok();
}
diff --git a/deps/LIEF/src/COFF/RegularHeader.cpp b/deps/LIEF/src/COFF/RegularHeader.cpp
index 583d626ea04..96e9684cbe0 100644
--- a/deps/LIEF/src/COFF/RegularHeader.cpp
+++ b/deps/LIEF/src/COFF/RegularHeader.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -47,13 +47,13 @@ std::unique_ptr<RegularHeader> RegularHeader::create(BinaryStream& stream) {
}
std::string RegularHeader::to_string() const {
- using namespace fmt;
std::ostringstream oss;
static constexpr auto WIDTH = 16;
oss << Header::to_string() << '\n';
- oss << format("{:>{}} Size of optional header\n", sizeof_optionalheader(), WIDTH);
- oss << format("{:>#{}x} Characteristics", characteristics(), WIDTH);
+ oss << fmt::format("{:>{}} Size of optional header\n", sizeof_optionalheader(),
+ WIDTH);
+ oss << fmt::format("{:>#{}x} Characteristics", characteristics(), WIDTH);
return oss.str();
}
diff --git a/deps/LIEF/src/COFF/Relocation.cpp b/deps/LIEF/src/COFF/Relocation.cpp
index 47e0c1392ce..35fc240af03 100644
--- a/deps/LIEF/src/COFF/Relocation.cpp
+++ b/deps/LIEF/src/COFF/Relocation.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,9 +27,8 @@
#include "frozen.hpp"
namespace LIEF::COFF {
-std::unique_ptr<Relocation> Relocation::parse(
- BinaryStream& stream, Header::MACHINE_TYPES arch)
-{
+std::unique_ptr<Relocation> Relocation::parse(BinaryStream& stream,
+ Header::MACHINE_TYPES arch) {
auto raw_reloc = stream.read<details::relocation>();
if (!raw_reloc) {
return nullptr;
@@ -44,9 +43,8 @@ std::unique_ptr<Relocation> Relocation::parse(
std::string Relocation::to_string() const {
using fmt::format;
std::ostringstream oss;
- oss << format("0x{:08x} {:>26} 0x{:08x}", address(),
- COFF::to_string(type()), symbol_idx()
- );
+ oss << format("{:#010x} {:>26} {:#010x}", address(), COFF::to_string(type()),
+ symbol_idx());
if (const Symbol* sym = symbol()) {
oss << " symbol=" << sym->name();
}
@@ -58,94 +56,94 @@ std::string Relocation::to_string() const {
}
const char* to_string(Relocation::TYPE e) {
- #define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNKNOWN),
+#define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(UNKNOWN),
- ENTRY(AMD64_ABSOLUTE),
- ENTRY(AMD64_ADDR32),
- ENTRY(AMD64_ADDR32NB),
- ENTRY(AMD64_ADDR64),
- ENTRY(AMD64_PAIR),
- ENTRY(AMD64_REL32),
- ENTRY(AMD64_REL32_1),
- ENTRY(AMD64_REL32_2),
- ENTRY(AMD64_REL32_3),
- ENTRY(AMD64_REL32_4),
- ENTRY(AMD64_REL32_5),
- ENTRY(AMD64_SECREL),
- ENTRY(AMD64_SECREL7),
- ENTRY(AMD64_SECTION),
- ENTRY(AMD64_SREL32),
- ENTRY(AMD64_SSPAN32),
- ENTRY(AMD64_TOKEN),
+ ENTRY(AMD64_ABSOLUTE),
+ ENTRY(AMD64_ADDR32),
+ ENTRY(AMD64_ADDR32NB),
+ ENTRY(AMD64_ADDR64),
+ ENTRY(AMD64_PAIR),
+ ENTRY(AMD64_REL32),
+ ENTRY(AMD64_REL32_1),
+ ENTRY(AMD64_REL32_2),
+ ENTRY(AMD64_REL32_3),
+ ENTRY(AMD64_REL32_4),
+ ENTRY(AMD64_REL32_5),
+ ENTRY(AMD64_SECREL),
+ ENTRY(AMD64_SECREL7),
+ ENTRY(AMD64_SECTION),
+ ENTRY(AMD64_SREL32),
+ ENTRY(AMD64_SSPAN32),
+ ENTRY(AMD64_TOKEN),
- ENTRY(ARM64_ABSOLUTE),
- ENTRY(ARM64_ADDR32),
- ENTRY(ARM64_ADDR32NB),
- ENTRY(ARM64_ADDR64),
- ENTRY(ARM64_BRANCH14),
- ENTRY(ARM64_BRANCH19),
- ENTRY(ARM64_BRANCH26),
- ENTRY(ARM64_PAGEBASE_REL21),
- ENTRY(ARM64_PAGEOFFSET_12A),
- ENTRY(ARM64_PAGEOFFSET_12L),
- ENTRY(ARM64_REL21),
- ENTRY(ARM64_REL32),
- ENTRY(ARM64_SECREL),
- ENTRY(ARM64_SECREL_HIGH12A),
- ENTRY(ARM64_SECREL_LOW12A),
- ENTRY(ARM64_SECREL_LOW12L),
- ENTRY(ARM64_SECTION),
- ENTRY(ARM64_TOKEN),
+ ENTRY(ARM64_ABSOLUTE),
+ ENTRY(ARM64_ADDR32),
+ ENTRY(ARM64_ADDR32NB),
+ ENTRY(ARM64_ADDR64),
+ ENTRY(ARM64_BRANCH14),
+ ENTRY(ARM64_BRANCH19),
+ ENTRY(ARM64_BRANCH26),
+ ENTRY(ARM64_PAGEBASE_REL21),
+ ENTRY(ARM64_PAGEOFFSET_12A),
+ ENTRY(ARM64_PAGEOFFSET_12L),
+ ENTRY(ARM64_REL21),
+ ENTRY(ARM64_REL32),
+ ENTRY(ARM64_SECREL),
+ ENTRY(ARM64_SECREL_HIGH12A),
+ ENTRY(ARM64_SECREL_LOW12A),
+ ENTRY(ARM64_SECREL_LOW12L),
+ ENTRY(ARM64_SECTION),
+ ENTRY(ARM64_TOKEN),
- ENTRY(ARM_ABSOLUTE),
- ENTRY(ARM_ADDR32),
- ENTRY(ARM_ADDR32NB),
- ENTRY(ARM_BLX11),
- ENTRY(ARM_BLX23T),
- ENTRY(ARM_BLX24),
- ENTRY(ARM_BRANCH11),
- ENTRY(ARM_BRANCH20T),
- ENTRY(ARM_BRANCH24),
- ENTRY(ARM_BRANCH24T),
- ENTRY(ARM_MOV32A),
- ENTRY(ARM_MOV32T),
- ENTRY(ARM_PAIR),
- ENTRY(ARM_REL32),
- ENTRY(ARM_SECREL),
- ENTRY(ARM_SECTION),
- ENTRY(ARM_TOKEN),
+ ENTRY(ARM_ABSOLUTE),
+ ENTRY(ARM_ADDR32),
+ ENTRY(ARM_ADDR32NB),
+ ENTRY(ARM_BLX11),
+ ENTRY(ARM_BLX23T),
+ ENTRY(ARM_BLX24),
+ ENTRY(ARM_BRANCH11),
+ ENTRY(ARM_BRANCH20T),
+ ENTRY(ARM_BRANCH24),
+ ENTRY(ARM_BRANCH24T),
+ ENTRY(ARM_MOV32A),
+ ENTRY(ARM_MOV32T),
+ ENTRY(ARM_PAIR),
+ ENTRY(ARM_REL32),
+ ENTRY(ARM_SECREL),
+ ENTRY(ARM_SECTION),
+ ENTRY(ARM_TOKEN),
- ENTRY(I386_ABSOLUTE),
- ENTRY(I386_DIR16),
- ENTRY(I386_DIR32),
- ENTRY(I386_DIR32NB),
- ENTRY(I386_REL16),
- ENTRY(I386_REL32),
- ENTRY(I386_SECREL),
- ENTRY(I386_SECREL7),
- ENTRY(I386_SECTION),
- ENTRY(I386_SEG12),
- ENTRY(I386_TOKEN),
+ ENTRY(I386_ABSOLUTE),
+ ENTRY(I386_DIR16),
+ ENTRY(I386_DIR32),
+ ENTRY(I386_DIR32NB),
+ ENTRY(I386_REL16),
+ ENTRY(I386_REL32),
+ ENTRY(I386_SECREL),
+ ENTRY(I386_SECREL7),
+ ENTRY(I386_SECTION),
+ ENTRY(I386_SEG12),
+ ENTRY(I386_TOKEN),
- ENTRY(MIPS_ABSOLUTE),
- ENTRY(MIPS_GPREL),
- ENTRY(MIPS_JMPADDR),
- ENTRY(MIPS_JMPADDR16),
- ENTRY(MIPS_LITERAL),
- ENTRY(MIPS_PAIR),
- ENTRY(MIPS_REFHALF),
- ENTRY(MIPS_REFHI),
- ENTRY(MIPS_REFLO),
- ENTRY(MIPS_REFWORD),
- ENTRY(MIPS_REFWORDNB),
- ENTRY(MIPS_SECREL),
- ENTRY(MIPS_SECRELHI),
- ENTRY(MIPS_SECRELLO),
- ENTRY(MIPS_SECTION),
+ ENTRY(MIPS_ABSOLUTE),
+ ENTRY(MIPS_GPREL),
+ ENTRY(MIPS_JMPADDR),
+ ENTRY(MIPS_JMPADDR16),
+ ENTRY(MIPS_LITERAL),
+ ENTRY(MIPS_PAIR),
+ ENTRY(MIPS_REFHALF),
+ ENTRY(MIPS_REFHI),
+ ENTRY(MIPS_REFLO),
+ ENTRY(MIPS_REFWORD),
+ ENTRY(MIPS_REFWORDNB),
+ ENTRY(MIPS_SECREL),
+ ENTRY(MIPS_SECRELHI),
+ ENTRY(MIPS_SECRELLO),
+ ENTRY(MIPS_SECTION),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
diff --git a/deps/LIEF/src/COFF/Section.cpp b/deps/LIEF/src/COFF/Section.cpp
index 0a11ba5ca45..44185ac7c79 100644
--- a/deps/LIEF/src/COFF/Section.cpp
+++ b/deps/LIEF/src/COFF/Section.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
#include <sstream>
#include <spdlog/fmt/fmt.h>
#include "LIEF/COFF/Section.hpp"
+#include "LIEF/COFF/String.hpp"
#include "LIEF/COFF/Symbol.hpp"
#include "LIEF/COFF/AuxiliarySymbol.hpp"
#include "LIEF/COFF/AuxiliarySymbols/AuxiliarySectionDefinition.hpp"
@@ -53,7 +54,7 @@ std::unique_ptr<Section> Section::parse(BinaryStream& stream) {
void Section::name(std::string name) {
if (name.size() > LIEF::PE::Section::MAX_SECTION_NAME) {
- LIEF_ERR("The max size of a section's name is {} vs {}",
+ LIEF_ERR("Section name exceeds max size: {} vs {}",
LIEF::PE::Section::MAX_SECTION_NAME, name.size());
return;
}
@@ -105,7 +106,6 @@ optional<Section::ComdatInfo> Section::comdat_info() const {
}
std::string Section::to_string() const {
- using namespace fmt;
static constexpr auto WIDTH = 24;
std::ostringstream os;
@@ -113,31 +113,41 @@ std::string Section::to_string() const {
std::vector<std::string> list_str;
list_str.reserve(list.size());
std::transform(list.begin(), list.end(), std::back_inserter(list_str),
- [] (const auto c) { return COFF::to_string(c); });
+ [](const auto c) { return COFF::to_string(c); });
std::vector<std::string> fullname_hex;
fullname_hex.reserve(name().size());
std::transform(fullname().begin(), fullname().end(),
std::back_inserter(fullname_hex),
- [] (const char c) { return format("{:02x}", c); });
-
- os << format("{:{}} {} ({})\n", "Name:", WIDTH, name(),
- join(fullname_hex, " "));
-
- os << format("{:{}} 0x{:x}\n", "Virtual Size", WIDTH, virtual_size())
- << format("{:{}} 0x{:x}\n", "Virtual Address", WIDTH, virtual_address())
- << format("{:{}} 0x{:x}\n", "Size of raw data", WIDTH, sizeof_raw_data())
- << format("{:{}} 0x{:x}\n", "Pointer to raw data", WIDTH, pointerto_raw_data())
- << format("{:{}} [0x{:08x}, 0x{:08x}]\n", "Range", WIDTH,
- pointerto_raw_data(), pointerto_raw_data() + sizeof_raw_data())
- << format("{:{}} 0x{:x}\n", "Pointer to relocations", WIDTH, pointerto_relocation())
- << format("{:{}} 0x{:x}\n", "Pointer to line numbers", WIDTH, pointerto_line_numbers())
- << format("{:{}} 0x{:x}\n", "Number of relocations", WIDTH, numberof_relocations())
- << format("{:{}} 0x{:x}\n", "Number of lines", WIDTH, numberof_line_numbers())
- << format("{:{}} {}", "Characteristics", WIDTH, join(list_str, ", "));
+ [](const char c) { return fmt::format("{:02x}", c); });
+
+ if (const String* coff_str = coff_string()) {
+ os << fmt::format("{:{}} {} ({}, {})\n", "Name:", WIDTH, name(),
+ fmt::join(fullname_hex, " "), coff_str->str());
+ } else {
+ os << fmt::format("{:{}} {} ({})\n", "Name:", WIDTH, name(),
+ fmt::join(fullname_hex, " "));
+ }
- return os.str();
+ os << fmt::format("{:{}} {:#x}\n", "Virtual Size", WIDTH, virtual_size())
+ << fmt::format("{:{}} {:#x}\n", "Virtual Address", WIDTH, virtual_address())
+ << fmt::format("{:{}} {:#x}\n", "Size of raw data", WIDTH, sizeof_raw_data())
+ << fmt::format("{:{}} {:#x}\n", "Pointer to raw data", WIDTH,
+ pointerto_raw_data())
+ << fmt::format("{:{}} [{:#010x}, {:#010x}]\n", "Range", WIDTH,
+ pointerto_raw_data(), pointerto_raw_data() + sizeof_raw_data())
+ << fmt::format("{:{}} {:#x}\n", "Pointer to relocations", WIDTH,
+ pointerto_relocation())
+ << fmt::format("{:{}} {:#x}\n", "Pointer to line numbers", WIDTH,
+ pointerto_line_numbers())
+ << fmt::format("{:{}} {:#x}\n", "Number of relocations", WIDTH,
+ numberof_relocations())
+ << fmt::format("{:{}} {:#x}\n", "Number of lines", WIDTH,
+ numberof_line_numbers())
+ << fmt::format("{:{}} {}", "Characteristics", WIDTH,
+ fmt::join(list_str, ", "));
+ return os.str();
}
}
diff --git a/deps/LIEF/src/COFF/Symbol.cpp b/deps/LIEF/src/COFF/Symbol.cpp
index 9c74e81ce27..0cfba725568 100644
--- a/deps/LIEF/src/COFF/Symbol.cpp
+++ b/deps/LIEF/src/COFF/Symbol.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -37,8 +37,7 @@ Symbol::Symbol(const Symbol& other) :
LIEF::Symbol(other),
type_(other.type_),
storage_class_(other.storage_class_),
- section_idx_(other.section_idx_)
-{
+ section_idx_(other.section_idx_) {
if (!other.auxiliary_symbols_.empty()) {
auxiliary_symbols_.reserve(other.auxiliary_symbols_.size());
for (const std::unique_ptr<AuxiliarySymbol>& aux : other.auxiliary_symbols_) {
@@ -66,17 +65,15 @@ Symbol& Symbol::operator=(const Symbol& other) {
return *this;
}
-std::unique_ptr<Symbol> Symbol::parse(
- parsing_context_t& ctx, BinaryStream& stream, size_t* idx)
-{
+std::unique_ptr<Symbol> Symbol::parse(parsing_context_t& ctx, BinaryStream& stream,
+ size_t* idx) {
return ctx.is_bigobj ? parse_impl<details::symbol32>(ctx, stream, idx) :
parse_impl<details::symbol16>(ctx, stream, idx);
}
template<class T>
-std::unique_ptr<Symbol> Symbol::parse_impl(
- parsing_context_t& ctx, BinaryStream& stream, size_t* idx)
-{
+std::unique_ptr<Symbol> Symbol::parse_impl(parsing_context_t& ctx,
+ BinaryStream& stream, size_t* idx) {
static_assert(std::is_same_v<T, details::symbol16> ||
std::is_same_v<T, details::symbol32>);
auto raw = stream.read<T>();
@@ -92,8 +89,8 @@ std::unique_ptr<Symbol> Symbol::parse_impl(
if (raw->name.offset.zeroes == 0) {
sym->coff_name_ = ctx.find_string(raw->name.offset.offset);
} else {
- sym->name_ = std::string(raw->name.short_name.data(),
- raw->name.short_name.size());
+ sym->name_ =
+ std::string(raw->name.short_name.data(), raw->name.short_name.size());
sym->name_ = sym->name_.c_str();
}
@@ -107,7 +104,7 @@ std::unique_ptr<Symbol> Symbol::parse_impl(
auto aux = AuxiliarySymbol::parse(*sym, std::move(raw_aux));
if (aux == nullptr) {
- LIEF_WARN("Failed to parse auxiliary symbols #{}", i);
+ LIEF_WARN("Failed to parse auxiliary symbol #{}", i);
continue;
}
@@ -148,9 +145,12 @@ std::string Symbol::to_string() const {
os << " Name: " << name() << '\n'
<< " Value: " << value() << '\n'
<< " Section index: " << section_idx() << '\n'
- << fmt::format(" Base type: {} ({})\n", COFF::to_string(base_type()), (int)base_type())
- << fmt::format(" Complex type: {} ({})\n", COFF::to_string(complex_type()), (int)complex_type())
- << fmt::format(" Storage class: {} ({})\n", COFF::to_string(storage_class()), (int)storage_class())
+ << fmt::format(" Base type: {} ({})\n", COFF::to_string(base_type()),
+ (int)base_type())
+ << fmt::format(" Complex type: {} ({})\n", COFF::to_string(complex_type()),
+ (int)complex_type())
+ << fmt::format(" Storage class: {} ({})\n", COFF::to_string(storage_class()),
+ (int)storage_class())
<< " Nb auxiliary symbols: " << auxiliary_symbols().size() << '\n';
for (const AuxiliarySymbol& aux : auxiliary_symbols()) {
os << indent(aux.to_string(), 2) << '\n';
@@ -161,38 +161,38 @@ std::string Symbol::to_string() const {
}
const char* to_string(Symbol::STORAGE_CLASS e) {
- #define ENTRY(X) std::pair(Symbol::STORAGE_CLASS::X, #X)
- STRING_MAP enums2str {
- ENTRY(INVALID),
- ENTRY(END_OF_FUNCTION),
- ENTRY(NONE),
- ENTRY(AUTOMATIC),
- ENTRY(EXTERNAL),
- ENTRY(STATIC),
- ENTRY(REGISTER),
- ENTRY(EXTERNAL_DEF),
- ENTRY(LABEL),
- ENTRY(UNDEFINED_LABEL),
- ENTRY(MEMBER_OF_STRUCT),
- ENTRY(ARGUMENT),
- ENTRY(STRUCT_TAG),
- ENTRY(MEMBER_OF_UNION),
- ENTRY(UNION_TAG),
- ENTRY(TYPE_DEFINITION),
- ENTRY(UNDEFINED_STATIC),
- ENTRY(ENUM_TAG),
- ENTRY(MEMBER_OF_ENUM),
- ENTRY(REGISTER_PARAM),
- ENTRY(BIT_FIELD),
- ENTRY(BLOCK),
- ENTRY(FUNCTION),
- ENTRY(END_OF_STRUCT),
- ENTRY(FILE),
- ENTRY(SECTION),
- ENTRY(WEAK_EXTERNAL),
- ENTRY(CLR_TOKEN),
+#define ENTRY(X) std::pair(Symbol::STORAGE_CLASS::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(INVALID),
+ ENTRY(END_OF_FUNCTION),
+ ENTRY(NONE),
+ ENTRY(AUTOMATIC),
+ ENTRY(EXTERNAL),
+ ENTRY(STATIC),
+ ENTRY(REGISTER),
+ ENTRY(EXTERNAL_DEF),
+ ENTRY(LABEL),
+ ENTRY(UNDEFINED_LABEL),
+ ENTRY(MEMBER_OF_STRUCT),
+ ENTRY(ARGUMENT),
+ ENTRY(STRUCT_TAG),
+ ENTRY(MEMBER_OF_UNION),
+ ENTRY(UNION_TAG),
+ ENTRY(TYPE_DEFINITION),
+ ENTRY(UNDEFINED_STATIC),
+ ENTRY(ENUM_TAG),
+ ENTRY(MEMBER_OF_ENUM),
+ ENTRY(REGISTER_PARAM),
+ ENTRY(BIT_FIELD),
+ ENTRY(BLOCK),
+ ENTRY(FUNCTION),
+ ENTRY(END_OF_STRUCT),
+ ENTRY(FILE),
+ ENTRY(SECTION),
+ ENTRY(WEAK_EXTERNAL),
+ ENTRY(CLR_TOKEN),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -201,26 +201,14 @@ const char* to_string(Symbol::STORAGE_CLASS e) {
}
const char* to_string(Symbol::BASE_TYPE e) {
- #define ENTRY(X) std::pair(Symbol::BASE_TYPE::TY_##X, #X)
- STRING_MAP enums2str {
- ENTRY(NULL),
- ENTRY(VOID),
- ENTRY(CHAR),
- ENTRY(SHORT),
- ENTRY(INT),
- ENTRY(LONG),
- ENTRY(FLOAT),
- ENTRY(DOUBLE),
- ENTRY(STRUCT),
- ENTRY(UNION),
- ENTRY(ENUM),
- ENTRY(MOE),
- ENTRY(BYTE),
- ENTRY(WORD),
- ENTRY(UINT),
- ENTRY(DWORD),
+#define ENTRY(X) std::pair(Symbol::BASE_TYPE::TY_##X, #X)
+ STRING_MAP enums2str{
+ ENTRY(NULL), ENTRY(VOID), ENTRY(CHAR), ENTRY(SHORT),
+ ENTRY(INT), ENTRY(LONG), ENTRY(FLOAT), ENTRY(DOUBLE),
+ ENTRY(STRUCT), ENTRY(UNION), ENTRY(ENUM), ENTRY(MOE),
+ ENTRY(BYTE), ENTRY(WORD), ENTRY(UINT), ENTRY(DWORD),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -229,14 +217,14 @@ const char* to_string(Symbol::BASE_TYPE e) {
}
const char* to_string(Symbol::COMPLEX_TYPE e) {
- #define ENTRY(X) std::pair(Symbol::COMPLEX_TYPE::TY_##X, #X)
- STRING_MAP enums2str {
- ENTRY(NULL),
- ENTRY(POINTER),
- ENTRY(FUNCTION),
- ENTRY(ARRAY),
+#define ENTRY(X) std::pair(Symbol::COMPLEX_TYPE::TY_##X, #X)
+ STRING_MAP enums2str{
+ ENTRY(NULL),
+ ENTRY(POINTER),
+ ENTRY(FUNCTION),
+ ENTRY(ARRAY),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
diff --git a/deps/LIEF/src/COFF/structures.hpp b/deps/LIEF/src/COFF/structures.hpp
index f687f8bb43d..289fc34c910 100644
--- a/deps/LIEF/src/COFF/structures.hpp
+++ b/deps/LIEF/src/COFF/structures.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -49,7 +49,7 @@ struct bigobj_header {
};
-#pragma pack(push,1)
+#pragma pack(push, 1)
struct relocation {
uint32_t VirtualAddress;
uint32_t SymbolTableIndex;
@@ -59,18 +59,18 @@ struct relocation {
template<class T>
struct symbol {
union {
- std::array<char, 8> short_name;
+ std::array<char, 8> short_name{};
struct {
uint32_t zeroes = 0;
uint32_t offset = 0;
} offset;
} name;
- uint32_t value;
- T sec_idx;
- uint16_t type;
- uint8_t storage_class;
- uint8_t nb_aux;
+ uint32_t value = 0;
+ T sec_idx = 0;
+ uint16_t type = 0;
+ uint8_t storage_class = 0;
+ uint8_t nb_aux = 0;
};
using symbol16 = symbol<uint16_t>;
diff --git a/deps/LIEF/src/COFF/utils.cpp b/deps/LIEF/src/COFF/utils.cpp
index 71b815c86eb..344ec80af15 100644
--- a/deps/LIEF/src/COFF/utils.cpp
+++ b/deps/LIEF/src/COFF/utils.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,6 +14,7 @@
* limitations under the License.
*/
#include "LIEF/COFF/utils.hpp"
+#include "LIEF/BinaryStream/FileStream.hpp"
#include "COFF/structures.hpp"
namespace LIEF::COFF {
@@ -49,7 +50,8 @@ Header::KIND get_kind(BinaryStream& stream) {
}
return LIEF::PE::Header::is_known_machine(regular->machine) ?
- Header::KIND::REGULAR : Header::KIND::UNKNOWN;
+ Header::KIND::REGULAR :
+ Header::KIND::UNKNOWN;
}
}
diff --git a/deps/LIEF/src/DEX/Class.cpp b/deps/LIEF/src/DEX/Class.cpp
index cff99b95190..80fda6fee8b 100644
--- a/deps/LIEF/src/DEX/Class.cpp
+++ b/deps/LIEF/src/DEX/Class.cpp
@@ -1,6 +1,6 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,33 +23,33 @@
#include "LIEF/DEX/Method.hpp"
#include "LIEF/DEX/hash.hpp"
-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {
Class::Class() = default;
-Class::Class(std::string fullname, uint32_t access_flags,
- Class* parent, std::string source_filename) :
+Class::Class(std::string fullname, uint32_t access_flags, Class* parent,
+ std::string source_filename) :
fullname_{std::move(fullname)},
access_flags_{access_flags},
parent_{parent},
- source_filename_{std::move(source_filename)},
- original_index_{UINT_MAX}
-{}
+ source_filename_{std::move(source_filename)} {}
std::string Class::package_normalized(const std::string& pkg) {
std::string package_normalized = pkg;
// 1. Remove the '/' at the end
if (package_normalized.back() == '/') {
- package_normalized = package_normalized.substr(0, package_normalized.size() - 1);
+ package_normalized =
+ package_normalized.substr(0, package_normalized.size() - 1);
}
// 2. Replace '.' with '/'
- std::replace(std::begin(package_normalized), std::end(package_normalized), '.', '/');
+ std::replace(package_normalized.begin(), package_normalized.end(), '.', '/');
return package_normalized;
}
-std::string Class::fullname_normalized(const std::string& pkg, const std::string& cls_name) {
+std::string Class::fullname_normalized(const std::string& pkg,
+ const std::string& cls_name) {
return "L" + Class::package_normalized(pkg) + "/" + cls_name + ";";
}
@@ -57,7 +57,7 @@ std::string Class::fullname_normalized(const std::string& pkg_cls) {
std::string package_normalized = pkg_cls;
// 1. Replace '.' with '/'
- std::replace(std::begin(package_normalized), std::end(package_normalized), '.', '/');
+ std::replace(package_normalized.begin(), package_normalized.end(), '.', '/');
// 2. Add 'L' at the beginning
if (package_normalized.front() != 'L') {
@@ -100,7 +100,7 @@ std::string Class::pretty_name() const {
}
std::string pretty_name = fullname_.substr(1, fullname_.size() - 2);
- std::replace(std::begin(pretty_name), std::end(pretty_name), '/', '.');
+ std::replace(pretty_name.begin(), pretty_name.end(), '/', '.');
return pretty_name;
}
@@ -115,7 +115,7 @@ Class::access_flags_list_t Class::access_flags() const {
std::copy_if(std::begin(access_flags_list), std::end(access_flags_list),
std::back_inserter(flags),
- [this] (ACCESS_FLAGS f) { return has(f); });
+ [this](ACCESS_FLAGS f) { return has(f); });
return flags;
}
@@ -150,28 +150,20 @@ Class::it_fields Class::fields() {
}
Class::it_named_methods Class::methods(const std::string& name) {
- return {methods_, [name] (const Method* meth) {
- return meth->name() == name;
- }};
+ return {methods_, [name](const Method* meth) { return meth->name() == name; }};
}
Class::it_const_named_methods Class::methods(const std::string& name) const {
- return {methods_, [name] (const Method* meth) {
- return meth->name() == name;
- }};
+ return {methods_, [name](const Method* meth) { return meth->name() == name; }};
}
Class::it_named_fields Class::fields(const std::string& name) {
- return {fields_, [name] (const Field* f) {
- return f->name() == name;
- }};
+ return {fields_, [name](const Field* f) { return f->name() == name; }};
}
Class::it_const_named_fields Class::fields(const std::string& name) const {
- return {fields_, [name] (const Field* f) {
- return f->name() == name;
- }};
+ return {fields_, [name](const Field* f) { return f->name() == name; }};
}
size_t Class::index() const {
@@ -197,7 +189,6 @@ void Class::accept(Visitor& visitor) const {
}
-
std::ostream& operator<<(std::ostream& os, const Class& cls) {
os << cls.pretty_name();
if (!cls.source_filename().empty()) {
@@ -212,4 +203,3 @@ std::ostream& operator<<(std::ostream& os, const Class& cls) {
Class::~Class() = default;
}
-}
diff --git a/deps/LIEF/src/DEX/CodeInfo.cpp b/deps/LIEF/src/DEX/CodeInfo.cpp
index 7fe3101d3a6..6cb07bb4980 100644
--- a/deps/LIEF/src/DEX/CodeInfo.cpp
+++ b/deps/LIEF/src/DEX/CodeInfo.cpp
@@ -1,6 +1,6 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@
#include "LIEF/DEX/hash.hpp"
#include "DEX/Structures.hpp"
-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {
CodeInfo::CodeInfo() = default;
CodeInfo::CodeInfo(const CodeInfo&) = default;
@@ -29,8 +29,7 @@ CodeInfo& CodeInfo::operator=(const CodeInfo&) = default;
CodeInfo::CodeInfo(const details::code_item& codeitem) :
nb_registers_{codeitem.registers_size},
args_input_sizes_{codeitem.ins_size},
- output_sizes_{codeitem.outs_size}
-{}
+ output_sizes_{codeitem.outs_size} {}
void CodeInfo::accept(Visitor& visitor) const {
@@ -50,4 +49,3 @@ std::ostream& operator<<(std::ostream& os, const CodeInfo& /*cinfo*/) {
CodeInfo::~CodeInfo() = default;
}
-}
diff --git a/deps/LIEF/src/DEX/EnumToString.cpp b/deps/LIEF/src/DEX/EnumToString.cpp
index 60a6b0b2a78..e2783e8917e 100644
--- a/deps/LIEF/src/DEX/EnumToString.cpp
+++ b/deps/LIEF/src/DEX/EnumToString.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,89 +16,88 @@
#include "LIEF/DEX/EnumToString.hpp"
#include "frozen.hpp"
-namespace LIEF {
-namespace DEX {
-const char* to_string(MapItem::TYPES e) {
- CONST_MAP(MapItem::TYPES, const char*, 20) enumStrings {
- { MapItem::TYPES::HEADER, "HEADER" },
- { MapItem::TYPES::STRING_ID, "STRING_ID" },
- { MapItem::TYPES::TYPE_ID, "TYPE_ID" },
- { MapItem::TYPES::PROTO_ID, "PROTO_ID" },
- { MapItem::TYPES::FIELD_ID, "FIELD_ID" },
- { MapItem::TYPES::METHOD_ID, "METHOD_ID" },
- { MapItem::TYPES::CLASS_DEF, "CLASS_DEF" },
- { MapItem::TYPES::CALL_SITE_ID, "CALL_SITE_ID" },
- { MapItem::TYPES::METHOD_HANDLE, "METHOD_HANDLE" },
- { MapItem::TYPES::MAP_LIST, "MAP_LIST" },
- { MapItem::TYPES::TYPE_LIST, "TYPE_LIST" },
- { MapItem::TYPES::ANNOTATION_SET_REF_LIST, "ANNOTATION_SET_REF_LIST" },
- { MapItem::TYPES::ANNOTATION_SET, "ANNOTATION_SET" },
- { MapItem::TYPES::CLASS_DATA, "CLASS_DATA" },
- { MapItem::TYPES::CODE, "CODE" },
- { MapItem::TYPES::STRING_DATA, "STRING_DATA" },
- { MapItem::TYPES::DEBUG_INFO, "DEBUG_INFO" },
- { MapItem::TYPES::ANNOTATION, "ANNOTATION" },
- { MapItem::TYPES::ENCODED_ARRAY, "ENCODED_ARRAY" },
- { MapItem::TYPES::ANNOTATIONS_DIRECTORY, "ANNOTATIONS_DIRECTORY" },
+namespace LIEF::DEX {
+
+const char* to_string(MapItem::TYPES e) {
+ CONST_MAP(MapItem::TYPES, const char*, 20)
+ enumStrings{
+ {MapItem::TYPES::HEADER, "HEADER"},
+ {MapItem::TYPES::STRING_ID, "STRING_ID"},
+ {MapItem::TYPES::TYPE_ID, "TYPE_ID"},
+ {MapItem::TYPES::PROTO_ID, "PROTO_ID"},
+ {MapItem::TYPES::FIELD_ID, "FIELD_ID"},
+ {MapItem::TYPES::METHOD_ID, "METHOD_ID"},
+ {MapItem::TYPES::CLASS_DEF, "CLASS_DEF"},
+ {MapItem::TYPES::CALL_SITE_ID, "CALL_SITE_ID"},
+ {MapItem::TYPES::METHOD_HANDLE, "METHOD_HANDLE"},
+ {MapItem::TYPES::MAP_LIST, "MAP_LIST"},
+ {MapItem::TYPES::TYPE_LIST, "TYPE_LIST"},
+ {MapItem::TYPES::ANNOTATION_SET_REF_LIST, "ANNOTATION_SET_REF_LIST"},
+ {MapItem::TYPES::ANNOTATION_SET, "ANNOTATION_SET"},
+ {MapItem::TYPES::CLASS_DATA, "CLASS_DATA"},
+ {MapItem::TYPES::CODE, "CODE"},
+ {MapItem::TYPES::STRING_DATA, "STRING_DATA"},
+ {MapItem::TYPES::DEBUG_INFO, "DEBUG_INFO"},
+ {MapItem::TYPES::ANNOTATION, "ANNOTATION"},
+ {MapItem::TYPES::ENCODED_ARRAY, "ENCODED_ARRAY"},
+ {MapItem::TYPES::ANNOTATIONS_DIRECTORY, "ANNOTATIONS_DIRECTORY"},
};
const auto it = enumStrings.find(e);
return it == enumStrings.end() ? "UNKNOWN" : it->second;
}
-const char* to_string(ACCESS_FLAGS e) {
- CONST_MAP(ACCESS_FLAGS, const char*, 18) enumStrings {
- { ACCESS_FLAGS::ACC_UNKNOWN, "UNKNOWN" },
- { ACCESS_FLAGS::ACC_PUBLIC, "PUBLIC" },
- { ACCESS_FLAGS::ACC_PRIVATE, "PRIVATE" },
- { ACCESS_FLAGS::ACC_PROTECTED, "PROTECTED" },
- { ACCESS_FLAGS::ACC_STATIC, "STATIC" },
- { ACCESS_FLAGS::ACC_FINAL, "FINAL" },
- { ACCESS_FLAGS::ACC_SYNCHRONIZED, "SYNCHRONIZED" },
- { ACCESS_FLAGS::ACC_VOLATILE, "VOLATILE" },
- { ACCESS_FLAGS::ACC_VARARGS, "VARARGS" },
- { ACCESS_FLAGS::ACC_NATIVE, "NATIVE" },
- { ACCESS_FLAGS::ACC_INTERFACE, "INTERFACE" },
- { ACCESS_FLAGS::ACC_ABSTRACT, "ABSTRACT" },
- { ACCESS_FLAGS::ACC_STRICT, "STRICT" },
- { ACCESS_FLAGS::ACC_SYNTHETIC, "SYNTHETIC" },
- { ACCESS_FLAGS::ACC_ANNOTATION, "ANNOTATION" },
- { ACCESS_FLAGS::ACC_ENUM, "ENUM" },
- { ACCESS_FLAGS::ACC_CONSTRUCTOR, "CONSTRUCTOR" },
- { ACCESS_FLAGS::ACC_DECLARED_SYNCHRONIZED, "DECLARED_SYNCHRONIZED" },
+const char* to_string(ACCESS_FLAGS e) {
+ CONST_MAP(ACCESS_FLAGS, const char*, 18)
+ enumStrings{
+ {ACCESS_FLAGS::ACC_UNKNOWN, "UNKNOWN"},
+ {ACCESS_FLAGS::ACC_PUBLIC, "PUBLIC"},
+ {ACCESS_FLAGS::ACC_PRIVATE, "PRIVATE"},
+ {ACCESS_FLAGS::ACC_PROTECTED, "PROTECTED"},
+ {ACCESS_FLAGS::ACC_STATIC, "STATIC"},
+ {ACCESS_FLAGS::ACC_FINAL, "FINAL"},
+ {ACCESS_FLAGS::ACC_SYNCHRONIZED, "SYNCHRONIZED"},
+ {ACCESS_FLAGS::ACC_VOLATILE, "VOLATILE"},
+ {ACCESS_FLAGS::ACC_VARARGS, "VARARGS"},
+ {ACCESS_FLAGS::ACC_NATIVE, "NATIVE"},
+ {ACCESS_FLAGS::ACC_INTERFACE, "INTERFACE"},
+ {ACCESS_FLAGS::ACC_ABSTRACT, "ABSTRACT"},
+ {ACCESS_FLAGS::ACC_STRICT, "STRICT"},
+ {ACCESS_FLAGS::ACC_SYNTHETIC, "SYNTHETIC"},
+ {ACCESS_FLAGS::ACC_ANNOTATION, "ANNOTATION"},
+ {ACCESS_FLAGS::ACC_ENUM, "ENUM"},
+ {ACCESS_FLAGS::ACC_CONSTRUCTOR, "CONSTRUCTOR"},
+ {ACCESS_FLAGS::ACC_DECLARED_SYNCHRONIZED, "DECLARED_SYNCHRONIZED"},
};
const auto it = enumStrings.find(e);
return it == enumStrings.end() ? "UNKNOWN" : it->second;
}
-const char* to_string(Type::TYPES e) {
- CONST_MAP(Type::TYPES, const char*, 4) enumStrings {
- { Type::TYPES::UNKNOWN, "UNKNOWN" },
- { Type::TYPES::ARRAY, "ARRAY" },
- { Type::TYPES::CLASS, "CLASS" },
- { Type::TYPES::PRIMITIVE, "PRIMITIVE" },
+const char* to_string(Type::TYPES e) {
+ CONST_MAP(Type::TYPES, const char*, 4)
+ enumStrings{
+ {Type::TYPES::UNKNOWN, "UNKNOWN"},
+ {Type::TYPES::ARRAY, "ARRAY"},
+ {Type::TYPES::CLASS, "CLASS"},
+ {Type::TYPES::PRIMITIVE, "PRIMITIVE"},
};
const auto it = enumStrings.find(e);
return it == enumStrings.end() ? "UNKNOWN" : it->second;
}
-const char* to_string(Type::PRIMITIVES e) {
- CONST_MAP(Type::PRIMITIVES, const char*, 9) enumStrings {
- { Type::PRIMITIVES::VOID_T, "VOID_T" },
- { Type::PRIMITIVES::BOOLEAN, "BOOLEAN" },
- { Type::PRIMITIVES::INT, "INT" },
- { Type::PRIMITIVES::SHORT, "SHORT" },
- { Type::PRIMITIVES::LONG, "LONG" },
- { Type::PRIMITIVES::CHAR, "CHAR" },
- { Type::PRIMITIVES::DOUBLE, "DOUBLE" },
- { Type::PRIMITIVES::FLOAT, "FLOAT" },
- { Type::PRIMITIVES::BYTE, "BYTE" },
+const char* to_string(Type::PRIMITIVES e) {
+ CONST_MAP(Type::PRIMITIVES, const char*, 9)
+ enumStrings{
+ {Type::PRIMITIVES::VOID_T, "VOID_T"}, {Type::PRIMITIVES::BOOLEAN, "BOOLEAN"},
+ {Type::PRIMITIVES::INT, "INT"}, {Type::PRIMITIVES::SHORT, "SHORT"},
+ {Type::PRIMITIVES::LONG, "LONG"}, {Type::PRIMITIVES::CHAR, "CHAR"},
+ {Type::PRIMITIVES::DOUBLE, "DOUBLE"}, {Type::PRIMITIVES::FLOAT, "FLOAT"},
+ {Type::PRIMITIVES::BYTE, "BYTE"},
};
const auto it = enumStrings.find(e);
return it == enumStrings.end() ? "UNKNOWN" : it->second;
}
-} // namespace DEX
-} // namespace LIEF
+} // namespace LIEF::DEX
diff --git a/deps/LIEF/src/DEX/Field.cpp b/deps/LIEF/src/DEX/Field.cpp
index 8c08941e88f..984be02bd97 100644
--- a/deps/LIEF/src/DEX/Field.cpp
+++ b/deps/LIEF/src/DEX/Field.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,8 +24,7 @@
#include <utility>
-namespace LIEF {
-namespace DEX {
+namespace LIEF::DEX {
Field::Field(const Field&) = default;
Field& Field::operator=(const Field&) = default;
@@ -34,8 +33,7 @@ Field::Field() = default;
Field::Field(std::string name, Class* parent) :
name_{std::move(name)},
- parent_{parent}
-{}
+ parent_{parent} {}
const std::string& Field::name() const {
return name_;
@@ -58,11 +56,11 @@ size_t Field::index() const {
}
bool Field::is_static() const {
- return is_static_;
+ return is_static_;
}
void Field::set_static(bool v) {
- is_static_ = v;
+ is_static_ = v;
}
@@ -75,10 +73,9 @@ Field::access_flags_list_t Field::access_flags() const {
std::copy_if(std::begin(access_flags_list), std::end(access_flags_list),
std::back_inserter(flags),
- [this] (ACCESS_FLAGS f) { return has(f); });
+ [this](ACCESS_FLAGS f) { return has(f); });
return flags;
-
}
const Type* Field::type() const {
@@ -95,31 +92,27 @@ void Field::accept(Visitor& visitor) const {
}
-
std::ostream& operator<<(std::ostream& os, const Field& field) {
std::string pretty_cls_name = field.cls()->fullname();
if (!pretty_cls_name.empty()) {
pretty_cls_name = pretty_cls_name.substr(1, pretty_cls_name.size() - 2);
- std::replace(std::begin(pretty_cls_name), std::end(pretty_cls_name), '/', '.');
+ std::replace(pretty_cls_name.begin(), pretty_cls_name.end(), '/', '.');
}
Method::access_flags_list_t aflags = field.access_flags();
- std::string flags_str = std::accumulate(
- std::begin(aflags),
- std::end(aflags),
- std::string{},
- [] (const std::string& l, ACCESS_FLAGS r) {
- std::string str = to_string(r);
- std::transform(std::begin(str), std::end(str), std::begin(str), ::tolower);
- return l.empty() ? str : l + " " + str;
- });
+ std::string flags_str =
+ std::accumulate(aflags.begin(), aflags.end(), std::string{},
+ [](const std::string& l, ACCESS_FLAGS r) {
+ std::string str = to_string(r);
+ std::transform(str.begin(), str.end(), str.begin(),
+ ::tolower);
+ return l.empty() ? str : l + " " + str;
+ });
if (!flags_str.empty()) {
os << flags_str << " ";
}
- os << field.type()
- << " "
- << pretty_cls_name << "->" << field.name();
+ os << field.type() << " " << pretty_cls_name << "->" << field.name();
return os;
}
@@ -127,4 +120,3 @@ std::ostream& operator<<(std::ostream& os, const Field& field) {
Field::~Field() = default;
}
-}
diff --git a/deps/LIEF/src/DEX/File.cpp b/deps/LIEF/src/DEX/File.cpp
index 54c5ebfacc5..a335fac29c2 100644
--- a/deps/LIEF/src/DEX/File.cpp
+++ b/deps/LIEF/src/DEX/File.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,15 +29,14 @@
#include "DEX/Structures.hpp"
#if defined(LIEF_JSON_SUPPORT)
-#include "visitors/json.hpp"
+ #include "visitors/json.hpp"
#endif
-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {
File::File() :
- name_{"classes.dex"}
-{}
+ name_{"classes.dex"} {}
File::~File() = default;
dex_version_t File::version() const {
@@ -60,7 +59,8 @@ std::string File::save(const std::string& path, bool deoptimize) const {
const std::vector<uint8_t> raw = this->raw(deoptimize);
ifs.write(reinterpret_cast<const char*>(raw.data()), raw.size());
} else {
- ifs.write(reinterpret_cast<const char*>(original_data_.data()), original_data_.size());
+ ifs.write(reinterpret_cast<const char*>(original_data_.data()),
+ original_data_.size());
}
return path;
}
@@ -96,254 +96,291 @@ std::vector<uint8_t> File::raw(bool deoptimize) const {
auto opcode = static_cast<OPCODES>(*inst_ptr);
uint32_t value = UINT_MAX;
- if (meth_info.find(dex_pc) != std::end(meth_info)) {
+ if (meth_info.find(dex_pc) != meth_info.end()) {
value = meth_info[dex_pc];
}
// Skip packed-switch, sparse-switch, fill-array instructions
if (is_switch_array(inst_ptr, inst_end)) {
- inst_ptr += switch_array_size(inst_ptr, inst_end);
+ const size_t payload_size = switch_array_size(inst_ptr, inst_end);
+ if (!valid_inst_size(inst_ptr, inst_end, payload_size)) {
+ break;
+ }
+ inst_ptr += payload_size;
continue;
}
- switch(opcode) {
+ const size_t inst_size = inst_size_from_opcode(opcode);
+ if (!valid_inst_size(inst_ptr, inst_end, inst_size)) {
+ break;
+ }
+
+ switch (opcode) {
case OPCODES::OP_NOP:
- {
- //deoptimize_nop(inst_ptr, 0);
- break;
- }
+ {
+ // deoptimize_nop(inst_ptr, 0);
+ break;
+ }
case OPCODES::OP_RETURN_VOID_NO_BARRIER:
- {
- LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
- LIEF_TRACE("[{:06x}] return-void-no-barrier -> return-void", dex_pc);
- deoptimize_return(inst_ptr, 0);
- break;
- }
+ {
+ LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+ LIEF_TRACE("[{:06x}] return-void-no-barrier -> return-void", dex_pc);
+ deoptimize_return(inst_ptr, 0);
+ break;
+ }
case OPCODES::OP_IGET_QUICK:
- {
- LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
- LIEF_TRACE("[{:06x}] iget-quick -> iget@0x{:x}", dex_pc, value);
- if (static_cast<int32_t>(value) == -1) {
- LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iget-quick)",
- method->cls()->fullname(), method->name(), dex_pc);
- break;
- }
- deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IGET);
+ {
+ LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+ LIEF_TRACE("[{:06x}] iget-quick -> iget@{:#x}", dex_pc, value);
+ if (static_cast<int32_t>(value) == -1) {
+ LIEF_WARN("Unresolved instruction {}.{} at {:#06x} (iget-quick)",
+ method->cls()->fullname(), method->name(), dex_pc);
break;
}
+ deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IGET);
+ break;
+ }
case OPCODES::OP_IGET_WIDE_QUICK:
- {
- LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
- LIEF_TRACE("[{:06x}] iget-wide-quick -> iget-wide@{:d}", dex_pc, value);
-
- if (static_cast<int32_t>(value) == -1) {
- LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iget-wide-quick)",
- method->cls()->fullname(), method->name(), dex_pc);
- break;
- }
- deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IGET_WIDE);
+ {
+ LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+ LIEF_TRACE("[{:06x}] iget-wide-quick -> iget-wide@{:d}", dex_pc, value);
+
+ if (static_cast<int32_t>(value) == -1) {
+ LIEF_WARN("Unresolved instruction {}.{} at {:#06x} (iget-wide-quick)",
+ method->cls()->fullname(), method->name(), dex_pc);
break;
}
+ deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IGET_WIDE);
+ break;
+ }
case OPCODES::OP_IGET_OBJECT_QUICK:
- {
- LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
- LIEF_TRACE("[{:06x}] iget-object-quick -> iget-object@{:d}", dex_pc, value);
- if (static_cast<int32_t>(value) == -1) {
- LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iget-object-quick)",
- method->cls()->fullname(), method->name(), dex_pc);
- break;
- }
- deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IGET_OBJECT);
+ {
+ LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+ LIEF_TRACE("[{:06x}] iget-object-quick -> iget-object@{:d}", dex_pc,
+ value);
+ if (static_cast<int32_t>(value) == -1) {
+ LIEF_WARN(
+ "Unresolved instruction {}.{} at {:#06x} (iget-object-quick)",
+ method->cls()->fullname(), method->name(), dex_pc
+ );
break;
}
+ deoptimize_instance_field_access(inst_ptr, value,
+ OPCODES::OP_IGET_OBJECT);
+ break;
+ }
case OPCODES::OP_IPUT_QUICK:
- {
- LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
- LIEF_TRACE("[{:06x}] iput-quick -> iput@{:d}", dex_pc, value);
- if (static_cast<int32_t>(value) == -1) {
- LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iput-quick)",
- method->cls()->fullname(), method->name(), dex_pc);
- break;
- }
- deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IPUT);
+ {
+ LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+ LIEF_TRACE("[{:06x}] iput-quick -> iput@{:d}", dex_pc, value);
+ if (static_cast<int32_t>(value) == -1) {
+ LIEF_WARN("Unresolved instruction {}.{} at {:#06x} (iput-quick)",
+ method->cls()->fullname(), method->name(), dex_pc);
break;
}
+ deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IPUT);
+ break;
+ }
case OPCODES::OP_IPUT_WIDE_QUICK:
- {
- LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
- LIEF_TRACE("[{:06x}] iput-wide-quick -> iput-wide@{:d}", dex_pc, value);
- if (static_cast<int32_t>(value) == -1) {
- LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iput-wide-quick)",
- method->cls()->fullname(), method->name(), dex_pc);
- break;
- }
- deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IPUT_WIDE);
+ {
+ LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+ LIEF_TRACE("[{:06x}] iput-wide-quick -> iput-wide@{:d}", dex_pc, value);
+ if (static_cast<int32_t>(value) == -1) {
+ LIEF_WARN("Unresolved instruction {}.{} at {:#06x} (iput-wide-quick)",
+ method->cls()->fullname(), method->name(), dex_pc);
break;
}
+ deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IPUT_WIDE);
+ break;
+ }
case OPCODES::OP_IPUT_OBJECT_QUICK:
- {
- LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
- LIEF_TRACE("[{:06x}] iput-object-quick -> iput-objecte@{:d}", dex_pc, value);
- if (static_cast<int32_t>(value) == -1) {
- LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iput-object-quick)",
- method->cls()->fullname(), method->name(), dex_pc);
- break;
- }
- deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IPUT_OBJECT);
+ {
+ LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+ LIEF_TRACE("[{:06x}] iput-object-quick -> iput-objecte@{:d}", dex_pc,
+ value);
+ if (static_cast<int32_t>(value) == -1) {
+ LIEF_WARN(
+ "Unresolved instruction {}.{} at {:#06x} (iput-object-quick)",
+ method->cls()->fullname(), method->name(), dex_pc
+ );
break;
}
+ deoptimize_instance_field_access(inst_ptr, value,
+ OPCODES::OP_IPUT_OBJECT);
+ break;
+ }
case OPCODES::OP_INVOKE_VIRTUAL_QUICK:
- {
- LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
- LIEF_TRACE("[{:06x}] invoke-virtual-quick -> invoke-virtual@{:d}", dex_pc, value);
-
- if (static_cast<int32_t>(value) == -1) {
- LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (invoke-virtual-quick)",
- method->cls()->fullname(), method->name(), dex_pc);
- break;
- }
- deoptimize_invoke_virtual(inst_ptr, value, OPCODES::OP_INVOKE_VIRTUAL);
+ {
+ LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+ LIEF_TRACE("[{:06x}] invoke-virtual-quick -> invoke-virtual@{:d}",
+ dex_pc, value);
+
+ if (static_cast<int32_t>(value) == -1) {
+ LIEF_WARN(
+ "Unresolved instruction {}.{} at {:#06x} (invoke-virtual-quick)",
+ method->cls()->fullname(), method->name(), dex_pc
+ );
break;
}
+ deoptimize_invoke_virtual(inst_ptr, value, OPCODES::OP_INVOKE_VIRTUAL);
+ break;
+ }
case OPCODES::OP_INVOKE_VIRTUAL_RANGE_QUICK:
- {
- LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
- LIEF_TRACE("[{:06x}] invoke-virtual-quick/range -> invoke-virtual/range @{:d}", dex_pc, value);
-
- if (static_cast<int32_t>(value) == -1) {
- LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (invoke-virtual-quick/range)",
- method->cls()->fullname(), method->name(), dex_pc);
- break;
- }
- deoptimize_invoke_virtual(inst_ptr, value, OPCODES::OP_INVOKE_VIRTUAL_RANGE);
+ {
+ LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+ LIEF_TRACE(
+ "[{:06x}] invoke-virtual-quick/range -> invoke-virtual/range @{:d}",
+ dex_pc, value
+ );
+
+ if (static_cast<int32_t>(value) == -1) {
+ LIEF_WARN("Unresolved instruction {}.{} at {:#06x} "
+ "(invoke-virtual-quick/range)",
+ method->cls()->fullname(), method->name(), dex_pc);
break;
}
+ deoptimize_invoke_virtual(inst_ptr, value,
+ OPCODES::OP_INVOKE_VIRTUAL_RANGE);
+ break;
+ }
case OPCODES::OP_IPUT_BOOLEAN_QUICK:
- {
- LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
- LIEF_TRACE("[{:06x}] iput-boolean-quick -> iput-boolean@{:d}", dex_pc, value);
-
- if (static_cast<int32_t>(value) == -1) {
- LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iput-boolean-quick)",
- method->cls()->fullname(), method->name(), dex_pc);
- break;
- }
- deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IPUT_BOOLEAN);
+ {
+ LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+ LIEF_TRACE("[{:06x}] iput-boolean-quick -> iput-boolean@{:d}", dex_pc,
+ value);
+
+ if (static_cast<int32_t>(value) == -1) {
+ LIEF_WARN(
+ "Unresolved instruction {}.{} at {:#06x} (iput-boolean-quick)",
+ method->cls()->fullname(), method->name(), dex_pc
+ );
break;
}
+ deoptimize_instance_field_access(inst_ptr, value,
+ OPCODES::OP_IPUT_BOOLEAN);
+ break;
+ }
case OPCODES::OP_IPUT_BYTE_QUICK:
- {
- LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
- LIEF_TRACE("[{:06x}] iput-byte-quick -> iput-byte @{:d}", dex_pc, value);
-
- if (static_cast<int32_t>(value) == -1) {
- LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iput-byte-quick)",
- method->cls()->fullname(), method->name(), dex_pc);
- break;
- }
- deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IPUT_BYTE);
+ {
+ LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+ LIEF_TRACE("[{:06x}] iput-byte-quick -> iput-byte @{:d}", dex_pc, value);
+
+ if (static_cast<int32_t>(value) == -1) {
+ LIEF_WARN("Unresolved instruction {}.{} at {:#06x} (iput-byte-quick)",
+ method->cls()->fullname(), method->name(), dex_pc);
break;
}
+ deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IPUT_BYTE);
+ break;
+ }
case OPCODES::OP_IPUT_CHAR_QUICK:
- {
- LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
- LIEF_TRACE("[{:06x}] iput-char-quick -> iput-char @{:d}", dex_pc, value);
-
- if (static_cast<int32_t>(value) == -1) {
- LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iput-char-quick)",
- method->cls()->fullname(), method->name(), dex_pc);
- break;
- }
- deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IPUT_CHAR);
+ {
+ LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+ LIEF_TRACE("[{:06x}] iput-char-quick -> iput-char @{:d}", dex_pc, value);
+
+ if (static_cast<int32_t>(value) == -1) {
+ LIEF_WARN("Unresolved instruction {}.{} at {:#06x} (iput-char-quick)",
+ method->cls()->fullname(), method->name(), dex_pc);
break;
}
+ deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IPUT_CHAR);
+ break;
+ }
case OPCODES::OP_IPUT_SHORT_QUICK:
- {
- LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
- LIEF_TRACE("[{:06x}] iput-short-quick -> iput-short @{:d}", dex_pc, value);
-
- if (static_cast<int32_t>(value) == -1) {
- LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iput-short)",
- method->cls()->fullname(), method->name(), dex_pc);
- break;
- }
- deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IPUT_SHORT);
+ {
+ LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+ LIEF_TRACE("[{:06x}] iput-short-quick -> iput-short @{:d}", dex_pc,
+ value);
+
+ if (static_cast<int32_t>(value) == -1) {
+ LIEF_WARN("Unresolved instruction {}.{} at {:#06x} (iput-short)",
+ method->cls()->fullname(), method->name(), dex_pc);
break;
}
+ deoptimize_instance_field_access(inst_ptr, value,
+ OPCODES::OP_IPUT_SHORT);
+ break;
+ }
case OPCODES::OP_IGET_BOOLEAN_QUICK:
- {
- LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
- LIEF_TRACE("[{:06x}] iget-boolean-quick -> iget-boolean @{:d}", dex_pc, value);
-
- if (static_cast<int32_t>(value) == -1) {
- LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iget-boolean-quick)",
- method->cls()->fullname(), method->name(), dex_pc);
- break;
- }
- deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IGET_BOOLEAN);
+ {
+ LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+ LIEF_TRACE("[{:06x}] iget-boolean-quick -> iget-boolean @{:d}", dex_pc,
+ value);
+
+ if (static_cast<int32_t>(value) == -1) {
+ LIEF_WARN(
+ "Unresolved instruction {}.{} at {:#06x} (iget-boolean-quick)",
+ method->cls()->fullname(), method->name(), dex_pc
+ );
break;
}
+ deoptimize_instance_field_access(inst_ptr, value,
+ OPCODES::OP_IGET_BOOLEAN);
+ break;
+ }
case OPCODES::OP_IGET_BYTE_QUICK:
- {
- LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
- LIEF_TRACE("[{:06x}] iget-byte-quick -> iget-byte @{:d}", dex_pc, value);
-
- if (static_cast<int32_t>(value) == -1) {
- LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iget-byte-quick)",
- method->cls()->fullname(), method->name(), dex_pc);
- break;
- }
- deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IGET_BYTE);
+ {
+ LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+ LIEF_TRACE("[{:06x}] iget-byte-quick -> iget-byte @{:d}", dex_pc, value);
+
+ if (static_cast<int32_t>(value) == -1) {
+ LIEF_WARN("Unresolved instruction {}.{} at {:#06x} (iget-byte-quick)",
+ method->cls()->fullname(), method->name(), dex_pc);
break;
}
+ deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IGET_BYTE);
+ break;
+ }
case OPCODES::OP_IGET_CHAR_QUICK:
- {
- LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
- LIEF_TRACE("[{:06x}] iget-char-quick -> iget-char @{:d}", dex_pc, value);
-
- if (static_cast<int32_t>(value) == -1) {
- LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iget-char-quick)",
- method->cls()->fullname(), method->name(), dex_pc);
- break;
- }
- deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IGET_CHAR);
+ {
+ LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+ LIEF_TRACE("[{:06x}] iget-char-quick -> iget-char @{:d}", dex_pc, value);
+
+ if (static_cast<int32_t>(value) == -1) {
+ LIEF_WARN("Unresolved instruction {}.{} at {:#06x} (iget-char-quick)",
+ method->cls()->fullname(), method->name(), dex_pc);
break;
}
+ deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IGET_CHAR);
+ break;
+ }
case OPCODES::OP_IGET_SHORT_QUICK:
- {
- LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
- LIEF_TRACE("[{:06x}] iget-short-quick -> iget-short @{:d}", dex_pc, value);
-
- if (static_cast<int32_t>(value) == -1) {
- LIEF_WARN("Unable to resolve instruction: {}.{} at 0x{:04x} (iget-short-quick)",
- method->cls()->fullname(), method->name(), dex_pc);
- break;
- }
- deoptimize_instance_field_access(inst_ptr, value, OPCODES::OP_IGET_SHORT);
+ {
+ LIEF_TRACE("{}.{}", method->cls()->fullname(), method->name());
+ LIEF_TRACE("[{:06x}] iget-short-quick -> iget-short @{:d}", dex_pc,
+ value);
+
+ if (static_cast<int32_t>(value) == -1) {
+ LIEF_WARN("Unresolved instruction {}.{} at {:#06x} (iget-short-quick)",
+ method->cls()->fullname(), method->name(), dex_pc);
break;
}
+ deoptimize_instance_field_access(inst_ptr, value,
+ OPCODES::OP_IGET_SHORT);
+ break;
+ }
default:
- {
- }
+ {
+ }
}
- inst_ptr += inst_size_from_opcode(opcode);
+ inst_ptr += inst_size;
}
}
@@ -358,12 +395,14 @@ void File::deoptimize_return(uint8_t* inst_ptr, uint32_t /*value*/) {
*inst_ptr = OPCODES::OP_RETURN_VOID;
}
-void File::deoptimize_invoke_virtual(uint8_t* inst_ptr, uint32_t value, OPCODES new_inst) {
+void File::deoptimize_invoke_virtual(uint8_t* inst_ptr, uint32_t value,
+ OPCODES new_inst) {
*inst_ptr = new_inst;
reinterpret_cast<uint16_t*>(inst_ptr)[1] = value;
}
-void File::deoptimize_instance_field_access(uint8_t* inst_ptr, uint32_t value, OPCODES new_inst) {
+void File::deoptimize_instance_field_access(uint8_t* inst_ptr, uint32_t value,
+ OPCODES new_inst) {
*inst_ptr = new_inst;
reinterpret_cast<uint16_t*>(inst_ptr)[1] = value;
}
@@ -394,12 +433,12 @@ File::it_classes File::classes() {
}
bool File::has_class(const std::string& class_name) const {
- return classes_.find(Class::fullname_normalized(class_name)) != std::end(classes_);
+ return classes_.find(Class::fullname_normalized(class_name)) != classes_.end();
}
const Class* File::get_class(const std::string& class_name) const {
auto it_cls = classes_.find(Class::fullname_normalized(class_name));
- if (it_cls == std::end(classes_)) {
+ if (it_cls == classes_.end()) {
return nullptr;
}
return it_cls->second;
@@ -438,23 +477,24 @@ std::string File::dex2dex_json_info() const {
#if defined(LIEF_JSON_SUPPORT)
json mapping = json::object();
- // Iter over the class quickened
+ // Iterate over the quickened classes
for (const auto& class_map : dex2dex_info()) {
const Class* clazz = class_map.first;
const std::string& class_name = clazz->fullname();
mapping[class_name] = json::object();
const dex2dex_class_info_t& class_info = class_map.second;
- // Iter over the method within the class
+ // Iterate over the methods within the class
for (const auto& method_map : class_info) {
- // Index of the method within the Dex File
+ // Index of the method within the DEX file
uint32_t index = method_map.first->index();
mapping[class_name][std::to_string(index)] = json::object();
for (const auto& pc_index : method_map.second) {
- mapping[class_name][std::to_string(index)][std::to_string(pc_index.first)] = pc_index.second;
+ mapping[class_name][std::to_string(index)]
+ [std::to_string(pc_index.first)] = pc_index.second;
}
}
}
@@ -530,7 +570,6 @@ void File::accept(Visitor& visitor) const {
}
-
std::ostream& operator<<(std::ostream& os, const File& file) {
os << "DEX File " << file.name() << " Version: " << std::dec << file.version();
if (!file.location().empty()) {
@@ -555,8 +594,4 @@ std::ostream& operator<<(std::ostream& os, const File& file) {
}
-
-
-
-}
}
diff --git a/deps/LIEF/src/DEX/Header.cpp b/deps/LIEF/src/DEX/Header.cpp
index 1b12c7e0d27..973cea17c92 100644
--- a/deps/LIEF/src/DEX/Header.cpp
+++ b/deps/LIEF/src/DEX/Header.cpp
@@ -1,6 +1,6 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,22 +22,21 @@
#include <iomanip>
#include <sstream>
-#define PRINT_FIELD(name,attr) \
+#define PRINT_FIELD(name, attr) \
os << std::setw(WIDTH) << std::setfill(' ') << name << std::hex << attr << '\n'
-#define PRINT_LOCATION(name,attr) \
- os << std::setw(WIDTH) << std::setfill(' ') << name << std::hex << attr.first \
+#define PRINT_LOCATION(name, attr) \
+ os << std::setw(WIDTH) << std::setfill(' ') << name << std::hex << attr.first \
<< std::dec << " (#" << attr.second << ")" << '\n'
-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {
Header::Header() = default;
Header::Header(const Header&) = default;
Header& Header::operator=(const Header&) = default;
-
Header::magic_t Header::magic() const {
return magic_;
}
@@ -112,7 +111,6 @@ void Header::accept(Visitor& visitor) const {
}
-
std::ostream& operator<<(std::ostream& os, const Header& hdr) {
static constexpr size_t WIDTH = 20;
@@ -128,33 +126,29 @@ std::ostream& operator<<(std::ostream& os, const Header& hdr) {
}
const Header::signature_t& sig = hdr.signature();
- std::string sig_str = std::accumulate(
- std::begin(sig),
- std::end(sig),
- std::string{},
- [] (const std::string& s, uint8_t c) {
- std::stringstream ss;
- return s + hex_str(c);
- });
+ std::string sig_str = std::accumulate(sig.begin(), sig.end(), std::string{},
+ [](const std::string& s, uint8_t c) {
+ return s + hex_str(c);
+ });
os << std::hex << std::left << std::showbase;
- PRINT_FIELD("Magic:", magic_str);
- PRINT_FIELD("Checksum:", hdr.checksum());
- PRINT_FIELD("Signature:", sig_str);
- PRINT_FIELD("File Size:", hdr.file_size());
+ PRINT_FIELD("Magic:", magic_str);
+ PRINT_FIELD("Checksum:", hdr.checksum());
+ PRINT_FIELD("Signature:", sig_str);
+ PRINT_FIELD("File Size:", hdr.file_size());
PRINT_FIELD("Header Size:", hdr.header_size());
- PRINT_FIELD("Endian Tag:", hdr.endian_tag());
- PRINT_FIELD("Map Offset:", hdr.map());
-
- PRINT_LOCATION("Strings:", hdr.strings());
- PRINT_LOCATION("Link:", hdr.link());
- PRINT_LOCATION("Types:", hdr.types());
- PRINT_LOCATION("Prototypes:", hdr.prototypes());
- PRINT_LOCATION("Fields:", hdr.fields());
- PRINT_LOCATION("Methods:", hdr.methods());
- PRINT_LOCATION("Classes:", hdr.classes());
- PRINT_LOCATION("Data:", hdr.data());
+ PRINT_FIELD("Endian Tag:", hdr.endian_tag());
+ PRINT_FIELD("Map Offset:", hdr.map());
+
+ PRINT_LOCATION("Strings:", hdr.strings());
+ PRINT_LOCATION("Link:", hdr.link());
+ PRINT_LOCATION("Types:", hdr.types());
+ PRINT_LOCATION("Prototypes:", hdr.prototypes());
+ PRINT_LOCATION("Fields:", hdr.fields());
+ PRINT_LOCATION("Methods:", hdr.methods());
+ PRINT_LOCATION("Classes:", hdr.classes());
+ PRINT_LOCATION("Data:", hdr.data());
return os;
}
@@ -162,7 +156,4 @@ std::ostream& operator<<(std::ostream& os, const Header& hdr) {
Header::~Header() = default;
-
-} // Namespace DEX
-} // Namespace LIEF
-
+} // namespace LIEF::DEX
diff --git a/deps/LIEF/src/DEX/Header.tcc b/deps/LIEF/src/DEX/Header.tcc
index a04dd766308..3f0c5f3685e 100644
--- a/deps/LIEF/src/DEX/Header.tcc
+++ b/deps/LIEF/src/DEX/Header.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,14 +15,12 @@
*/
#include <string>
#include "LIEF/DEX/Header.hpp"
-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {
template<class T>
Header::Header(const T& header) :
- magic_{},
checksum_{header.checksum},
- signature_{},
file_size_{header.file_size},
header_size_{header.header_size},
endian_tag_{header.endian_tag},
@@ -51,15 +49,12 @@ Header::Header(const T& header) :
class_defs_off_{header.class_defs_off},
data_size_{header.data_size},
- data_off_{header.data_off}
-{
- std::copy(std::begin(header.magic), std::end(header.magic),
- std::begin(magic_));
+ data_off_{header.data_off} {
+ std::copy(std::begin(header.magic), std::end(header.magic), std::begin(magic_));
std::copy(std::begin(header.signature), std::end(header.signature),
std::begin(signature_));
}
-} // namespace DEX
-} // namespace LIEF
+} // namespace LIEF::DEX
diff --git a/deps/LIEF/src/DEX/MapItem.cpp b/deps/LIEF/src/DEX/MapItem.cpp
index a31f40de151..930ce9289fc 100644
--- a/deps/LIEF/src/DEX/MapItem.cpp
+++ b/deps/LIEF/src/DEX/MapItem.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,19 +18,19 @@
#include "LIEF/DEX/EnumToString.hpp"
-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {
MapItem::MapItem() = default;
MapItem::MapItem(const MapItem& other) = default;
MapItem& MapItem::operator=(const MapItem&) = default;
-MapItem::MapItem(MapItem::TYPES type, uint32_t offset, uint32_t size, uint16_t reserved) :
+MapItem::MapItem(MapItem::TYPES type, uint32_t offset, uint32_t size,
+ uint16_t reserved) :
type_{type},
reserved_{reserved},
size_{size},
- offset_{offset}
-{}
+ offset_{offset} {}
MapItem::TYPES MapItem::type() const {
return type_;
@@ -53,11 +53,9 @@ void MapItem::accept(Visitor& visitor) const {
}
-
std::ostream& operator<<(std::ostream& os, const MapItem& mitem) {
- os << to_string(mitem.type())
- << "@" << std::hex << std::showbase << mitem.offset()
- << " (" << mitem.size() << " bytes) - " << mitem.reserved();
+ os << to_string(mitem.type()) << "@" << std::hex << std::showbase
+ << mitem.offset() << " (" << mitem.size() << " bytes) - " << mitem.reserved();
return os;
}
@@ -65,4 +63,3 @@ std::ostream& operator<<(std::ostream& os, const MapItem& mitem) {
MapItem::~MapItem() = default;
}
-}
diff --git a/deps/LIEF/src/DEX/MapList.cpp b/deps/LIEF/src/DEX/MapList.cpp
index 668acc9e966..9f0cb381e9b 100644
--- a/deps/LIEF/src/DEX/MapList.cpp
+++ b/deps/LIEF/src/DEX/MapList.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,8 @@
#include "LIEF/DEX/hash.hpp"
#include "logging.hpp"
-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {
MapList::MapList() = default;
MapList::MapList(const MapList& other) = default;
@@ -28,25 +28,21 @@ MapList& MapList::operator=(const MapList&) = default;
MapList::it_items_t MapList::items() {
std::vector<MapItem*> items;
items.reserve(items_.size());
- std::transform(std::begin(items_), std::end(items_),
- std::back_inserter(items),
- [] (MapList::items_t::value_type& p) -> MapItem* {
+ std::transform(items_.begin(), items_.end(), std::back_inserter(items),
+ [](MapList::items_t::value_type& p) -> MapItem* {
return &(p.second);
});
return items;
-
}
MapList::it_const_items_t MapList::items() const {
std::vector<MapItem*> items;
items.reserve(items_.size());
- std::transform(std::begin(items_), std::end(items_),
- std::back_inserter(items),
- [] (const MapList::items_t::value_type& p) -> MapItem* {
+ std::transform(items_.begin(), items_.end(), std::back_inserter(items),
+ [](const MapList::items_t::value_type& p) -> MapItem* {
return const_cast<MapItem*>(&(p.second));
});
return items;
-
}
@@ -56,7 +52,7 @@ bool MapList::has(MapItem::TYPES type) const {
const MapItem& MapList::get(MapItem::TYPES type) const {
const auto it = items_.find(type);
- CHECK(it != std::end(items_), "Can't find type!");
+ CHECK(it != items_.end(), "Can't find type!");
return it->second;
}
@@ -77,7 +73,6 @@ void MapList::accept(Visitor& visitor) const {
}
-
std::ostream& operator<<(std::ostream& os, const MapList& mlist) {
for (const MapItem& item : mlist.items()) {
os << item << '\n';
@@ -89,4 +84,3 @@ std::ostream& operator<<(std::ostream& os, const MapList& mlist) {
MapList::~MapList() = default;
}
-}
diff --git a/deps/LIEF/src/DEX/Method.cpp b/deps/LIEF/src/DEX/Method.cpp
index e10969f798d..5d2d8f90a9a 100644
--- a/deps/LIEF/src/DEX/Method.cpp
+++ b/deps/LIEF/src/DEX/Method.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,8 +25,7 @@
#include <utility>
-namespace LIEF {
-namespace DEX {
+namespace LIEF::DEX {
Method::Method(const Method&) = default;
Method& Method::operator=(const Method&) = default;
@@ -36,8 +35,7 @@ Method::Method() = default;
Method::Method(std::string name, Class* parent) :
name_{std::move(name)},
- parent_{parent}
-{}
+ parent_{parent} {}
const std::string& Method::name() const {
return name_;
@@ -91,13 +89,11 @@ bool Method::has(ACCESS_FLAGS f) const {
Method::access_flags_list_t Method::access_flags() const {
Method::access_flags_list_t flags;
- std::copy_if(std::begin(access_flags_list),
- std::end(access_flags_list),
- std::back_inserter(flags),
- [this] (ACCESS_FLAGS f) { return has(f); });
+ std::copy_if(std::begin(access_flags_list), std::end(access_flags_list),
+ std::back_inserter(flags),
+ [this](ACCESS_FLAGS f) { return has(f); });
return flags;
-
}
const Prototype* Method::prototype() const {
@@ -117,7 +113,6 @@ void Method::accept(Visitor& visitor) const {
}
-
std::ostream& operator<<(std::ostream& os, const Method& method) {
const auto* proto = method.prototype();
if (!proto) {
@@ -132,18 +127,18 @@ std::ostream& operator<<(std::ostream& os, const Method& method) {
if (!pretty_cls_name.empty()) {
pretty_cls_name = pretty_cls_name.substr(1, pretty_cls_name.size() - 2);
- std::replace(std::begin(pretty_cls_name), std::end(pretty_cls_name), '/', '.');
+ std::replace(pretty_cls_name.begin(), pretty_cls_name.end(), '/', '.');
}
Method::access_flags_list_t aflags = method.access_flags();
- std::string flags_str = std::accumulate(
- std::begin(aflags), std::end(aflags),
- std::string{},
- [] (const std::string& l, ACCESS_FLAGS r) {
- std::string str = to_string(r);
- std::transform(std::begin(str), std::end(str), std::begin(str), ::tolower);
- return l.empty() ? str : l + " " + str;
- });
+ std::string flags_str =
+ std::accumulate(aflags.begin(), aflags.end(), std::string{},
+ [](const std::string& l, ACCESS_FLAGS r) {
+ std::string str = to_string(r);
+ std::transform(str.begin(), str.end(), str.begin(),
+ ::tolower);
+ return l.empty() ? str : l + " " + str;
+ });
if (!flags_str.empty()) {
os << flags_str << " ";
@@ -168,4 +163,3 @@ std::ostream& operator<<(std::ostream& os, const Method& method) {
Method::~Method() = default;
}
-}
diff --git a/deps/LIEF/src/DEX/Parser.cpp b/deps/LIEF/src/DEX/Parser.cpp
index 557ebb8b7e0..0e7f8e12d2a 100644
--- a/deps/LIEF/src/DEX/Parser.cpp
+++ b/deps/LIEF/src/DEX/Parser.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,15 +28,15 @@
#include "Parser.tcc"
-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {
Parser::~Parser() = default;
-Parser::Parser() = default;
+Parser::Parser() = default;
std::unique_ptr<File> Parser::parse(const std::string& filename) {
if (!is_dex(filename)) {
- LIEF_ERR("'{}' is not a DEX File", filename);
+ LIEF_ERR("'{}' is not a DEX file", filename);
return nullptr;
}
Parser parser{filename};
@@ -45,9 +45,10 @@ std::unique_ptr<File> Parser::parse(const std::string& filename) {
return std::move(parser.file_);
}
-std::unique_ptr<File> Parser::parse(std::vector<uint8_t> data, const std::string& name) {
+std::unique_ptr<File> Parser::parse(std::vector<uint8_t> data,
+ const std::string& name) {
if (!is_dex(data)) {
- LIEF_ERR("'{}' is not a DEX File", name);
+ LIEF_ERR("'{}' is not a DEX file", name);
return nullptr;
}
dex_version_t version = DEX::version(data);
@@ -60,15 +61,13 @@ std::unique_ptr<File> Parser::parse(std::vector<uint8_t> data, const std::string
Parser::Parser(std::vector<uint8_t> data) :
file_{new File{}},
- stream_{std::make_unique<VectorStream>(std::move(data))}
-{}
+ stream_{std::make_unique<VectorStream>(std::move(data))} {}
Parser::Parser(const std::string& file) :
- file_{new File{}}
-{
+ file_{new File{}} {
auto stream = VectorStream::from_file(file);
if (!stream) {
- LIEF_ERR("Can't create the stream");
+ LIEF_ERR("Failed to create stream");
} else {
stream_ = std::make_unique<VectorStream>(std::move(*stream));
}
@@ -96,14 +95,14 @@ void Parser::init(const std::string& name, dex_version_t version) {
}
void Parser::resolve_inheritance() {
- LIEF_DEBUG("Resolving inheritance relationship for #{:d} classes", inheritance_.size());
+ LIEF_DEBUG("Resolving inheritance for #{:d} classes", inheritance_.size());
for (const std::pair<const std::string, Class*>& p : inheritance_) {
const std::string& parent_name = p.first;
Class* child = p.second;
const auto it_inner_class = file_->classes_.find(parent_name);
- if (it_inner_class == std::end(file_->classes_)) {
+ if (it_inner_class == file_->classes_.end()) {
auto external_class = std::make_unique<Class>(parent_name);
child->parent_ = external_class.get();
file_->add_class(std::move(external_class));
@@ -114,14 +113,15 @@ void Parser::resolve_inheritance() {
}
void Parser::resolve_external_methods() {
- LIEF_DEBUG("Resolving external methods for #{:d} methods", class_method_map_.size());
+ LIEF_DEBUG("Resolving external methods for #{:d} methods",
+ class_method_map_.size());
for (const std::pair<const std::string, Method*>& p : class_method_map_) {
const std::string& clazz = p.first;
Method* method = p.second;
const auto it_inner_class = file_->classes_.find(clazz);
- if (it_inner_class == std::end(file_->classes_)) {
+ if (it_inner_class == file_->classes_.end()) {
auto cls = std::make_unique<Class>(clazz);
cls->methods_.push_back(method);
method->parent_ = cls.get();
@@ -131,19 +131,19 @@ void Parser::resolve_external_methods() {
method->parent_ = cls;
cls->methods_.push_back(method);
}
-
}
}
void Parser::resolve_external_fields() {
- LIEF_DEBUG("Resolving external fields for #{:d} fields", class_field_map_.size());
+ LIEF_DEBUG("Resolving external fields for #{:d} fields",
+ class_field_map_.size());
for (const std::pair<const std::string, Field*>& p : class_field_map_) {
const std::string& clazz = p.first;
Field* field = p.second;
const auto it_inner_class = file_->classes_.find(clazz);
- if (it_inner_class == std::end(file_->classes_)) {
+ if (it_inner_class == file_->classes_.end()) {
auto cls = std::make_unique<Class>(clazz);
cls->fields_.push_back(field);
field->parent_ = cls.get();
@@ -153,13 +153,12 @@ void Parser::resolve_external_fields() {
field->parent_ = cls;
cls->fields_.push_back(field);
}
-
}
}
void Parser::resolve_types() {
for (const auto& p : class_type_map_) {
- if(Class* cls = file_->get_class(p.first)) {
+ if (Class* cls = file_->get_class(p.first)) {
p.second->underlying_array_type().cls_ = cls;
} else {
auto new_cls = std::make_unique<Class>(p.first);
@@ -170,6 +169,4 @@ void Parser::resolve_types() {
}
-
-} // namespace DEX
-} // namespace LIEF
+} // namespace LIEF::DEX
diff --git a/deps/LIEF/src/DEX/Parser.tcc b/deps/LIEF/src/DEX/Parser.tcc
index f59fff86d6f..d8a2c052eb4 100644
--- a/deps/LIEF/src/DEX/Parser.tcc
+++ b/deps/LIEF/src/DEX/Parser.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,8 +28,8 @@
#include "Header.tcc"
-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {
template<typename DEX_T>
void Parser::parse_file() {
@@ -49,14 +49,13 @@ void Parser::parse_file() {
resolve_inheritance();
resolve_external_methods();
resolve_external_fields();
-
}
template<typename DEX_T>
void Parser::parse_header() {
using header_t = typename DEX_T::dex_header;
- LIEF_DEBUG("Parsing Header");
+ LIEF_DEBUG("Parsing DEX header");
const auto res_hdr = stream_->peek<header_t>(0);
if (!res_hdr) {
@@ -98,24 +97,42 @@ void Parser::parse_strings() {
return;
}
- LIEF_DEBUG("Parsing #{:d} STRINGS at 0x{:x}",
- strings_location.second, strings_location.first);
+ LIEF_DEBUG("Parsing #{:d} STRINGS at {:#x}", strings_location.second,
+ strings_location.first);
MapList& map = file_->map();
if (map.has(MapItem::TYPES::STRING_ID)) {
const MapItem& string_item = map[MapItem::TYPES::STRING_ID];
if (string_item.offset() != strings_location.first) {
- LIEF_WARN("Different values for string offset between map and header");
+ LIEF_WARN("String offset mismatch between map and header");
}
if (string_item.size() != strings_location.second) {
- LIEF_WARN("Different values for string size between map and header");
+ LIEF_WARN("String count mismatch between map and header");
}
}
- file_->strings_.reserve(strings_location.second);
+ const uint64_t nb_strings = strings_location.second;
+ const uint64_t table_offset = strings_location.first;
+ const uint64_t stream_size = stream_->size();
+
+ if (table_offset >= stream_size) {
+ LIEF_WARN("DEX string-id table offset ({:#x}) is out of bounds", table_offset);
+ return;
+ }
+
+ const uint64_t max_entries = (stream_size - table_offset) / sizeof(uint32_t);
+ file_->strings_.reserve(nb_strings < max_entries ? nb_strings : max_entries);
+
+ uint64_t max_string = stream_size;
+
for (size_t i = 0; i < strings_location.second; ++i) {
- auto string_offset = stream_->peek<uint32_t>(strings_location.first + i * sizeof(uint32_t));
+ if (max_string == 0) {
+ LIEF_WARN("DEX string out of bounds");
+ break;
+ }
+ auto string_offset =
+ stream_->peek<uint32_t>(strings_location.first + i * sizeof(uint32_t));
if (!string_offset) {
break;
}
@@ -126,10 +143,12 @@ void Parser::parse_strings() {
} else {
break;
}
- auto string_value = stream_->read_mutf8(str_size);
+ const uint64_t to_read = std::min<uint64_t>(str_size, max_string);
+ auto string_value = stream_->read_mutf8(to_read);
if (!string_value) {
break;
}
+ max_string -= to_read;
file_->strings_.push_back(std::make_unique<std::string>(*string_value));
}
}
@@ -138,7 +157,8 @@ template<typename DEX_T>
void Parser::parse_types() {
Header::location_t types_location = file_->header().types();
- LIEF_DEBUG("Parsing #{:d} TYPES at 0x{:x}", types_location.second, types_location.first);
+ LIEF_DEBUG("Parsing #{:d} TYPES at {:#x}", types_location.second,
+ types_location.first);
if (types_location.first == 0) {
return;
@@ -154,14 +174,13 @@ void Parser::parse_types() {
if (*descriptor_idx >= file_->strings_.size()) {
break;
}
- std::unique_ptr<std::string>& descriptor_str = file_->strings_[*descriptor_idx];
+ std::unique_ptr<std::string>& descriptor_str =
+ file_->strings_[*descriptor_idx];
auto type = std::make_unique<Type>(*descriptor_str);
if (type->type() == Type::TYPES::CLASS) {
class_type_map_.emplace(*descriptor_str, type.get());
- }
-
- else if (type->type() == Type::TYPES::ARRAY) {
+ } else if (type->type() == Type::TYPES::ARRAY) {
const Type& array_type = type->underlying_array_type();
if (array_type.type() == Type::TYPES::CLASS) {
std::string mangled_name = *descriptor_str;
@@ -181,28 +200,33 @@ void Parser::parse_fields() {
const uint64_t fields_offset = fields_location.first;
- LIEF_DEBUG("Parsing #{:d} FIELDS at 0x{:x}", fields_location.second, fields_location.first);
+ LIEF_DEBUG("Parsing #{:d} FIELDS at {:#x}", fields_location.second,
+ fields_location.first);
for (size_t i = 0; i < fields_location.second; ++i) {
- const auto res_item = stream_->peek<details::field_id_item>(fields_offset + i * sizeof(details::field_id_item));
+ const auto res_item =
+ stream_->peek<details::field_id_item>(fields_offset +
+ i * sizeof(details::field_id_item));
if (!res_item) {
break;
}
const auto item = *res_item;
// Class name in which the field is defined
- if (item.class_idx > types_location.second) {
- LIEF_WARN("Type index for field name is corrupted");
+ if (item.class_idx >= types_location.second) {
+ LIEF_WARN("Corrupted type index for field name");
continue;
}
- const auto class_name_idx = stream_->peek<uint32_t>(types_location.first + item.class_idx * sizeof(uint32_t));
+ const auto class_name_idx =
+ stream_->peek<uint32_t>(types_location.first +
+ item.class_idx * sizeof(uint32_t));
if (!class_name_idx) {
continue;
}
if (*class_name_idx >= file_->strings_.size()) {
- LIEF_WARN("String index for class name is corrupted");
+ LIEF_WARN("Corrupted string index for field class name");
continue;
}
std::string clazz = *file_->strings_[*class_name_idx];
@@ -214,14 +238,15 @@ void Parser::parse_fields() {
// Type
// =======================
if (item.type_idx >= file_->types_.size()) {
- LIEF_WARN("Type #{:d} out of bound ({:d})", item.type_idx, file_->types_.size());
+ LIEF_WARN("Type #{:d} out of bounds ({:d})", item.type_idx,
+ file_->types_.size());
break;
}
std::unique_ptr<Type>& type = file_->types_[item.type_idx];
// Field Name
if (item.name_idx >= file_->strings_.size()) {
- LIEF_WARN("Name of field #{:d} is out of bound!", i);
+ LIEF_WARN("Field #{:d} name out of bounds", i);
continue;
}
@@ -248,33 +273,36 @@ void Parser::parse_prototypes() {
return;
}
- LIEF_DEBUG("Parsing #{:d} PROTYPES at 0x{:x}",
- prototypes_locations.second, prototypes_locations.first);
+ LIEF_DEBUG("Parsing #{:d} PROTOTYPES at {:#x}", prototypes_locations.second,
+ prototypes_locations.first);
stream_->setpos(prototypes_locations.first);
for (size_t i = 0; i < prototypes_locations.second; ++i) {
const auto res_item = stream_->read<details::proto_id_item>();
if (!res_item) {
- LIEF_WARN("Prototype #{:d} corrupted", i);
+ LIEF_WARN("Corrupted prototype #{:d}", i);
break;
}
const auto item = *res_item;
if (item.shorty_idx >= file_->strings_.size()) {
- LIEF_WARN("prototype.shorty_idx corrupted ({:d})", item.shorty_idx);
+ LIEF_WARN("Corrupted prototype shorty index ({:d})", item.shorty_idx);
break;
}
- //std::string* shorty_str = file_->strings_[item.shorty_idx];
+ // std::string* shorty_str = file_->strings_[item.shorty_idx];
// Type object that is returned
if (item.return_type_idx >= file_->types_.size()) {
- LIEF_WARN("prototype.return_type_idx corrupted ({:d})", item.return_type_idx);
+ LIEF_WARN("Corrupted prototype return type index ({:d})",
+ item.return_type_idx);
break;
}
auto prototype = std::make_unique<Prototype>();
prototype->return_type_ = file_->types_[item.return_type_idx].get();
- if (item.parameters_off > 0 && stream_->can_read<uint32_t>(item.parameters_off)) {
+ if (item.parameters_off > 0 &&
+ stream_->can_read<uint32_t>(item.parameters_off))
+ {
const size_t saved_pos = stream_->pos();
stream_->setpos(item.parameters_off);
const size_t nb_params = *stream_->read<uint32_t>();
@@ -297,8 +325,6 @@ void Parser::parse_prototypes() {
file_->prototypes_.push_back(std::move(prototype));
}
-
-
}
template<typename DEX_T>
@@ -308,27 +334,32 @@ void Parser::parse_methods() {
const uint64_t methods_offset = methods_location.first;
- LIEF_DEBUG("Parsing #{:d} METHODS at 0x{:x}", methods_location.second, methods_location.first);
+ LIEF_DEBUG("Parsing #{:d} METHODS at {:#x}", methods_location.second,
+ methods_location.first);
for (size_t i = 0; i < methods_location.second; ++i) {
- const auto res_item = stream_->peek<details::method_id_item>(methods_offset + i * sizeof(details::method_id_item));
+ const auto res_item = stream_->peek<details::method_id_item>(
+ methods_offset + i * sizeof(details::method_id_item)
+ );
if (!res_item) {
break;
}
const auto item = *res_item;
// Class name in which the method is defined
- if (item.class_idx > types_location.second) {
- LIEF_WARN("Type index for class name is corrupted");
+ if (item.class_idx >= types_location.second) {
+ LIEF_WARN("Corrupted type index for method class name");
continue;
}
- const auto class_name_idx = stream_->peek<uint32_t>(types_location.first + item.class_idx * sizeof(uint32_t));
+ const auto class_name_idx =
+ stream_->peek<uint32_t>(types_location.first +
+ item.class_idx * sizeof(uint32_t));
if (!class_name_idx) {
break;
}
if (*class_name_idx >= file_->strings_.size()) {
- LIEF_WARN("String index for class name is corrupted");
+ LIEF_WARN("Corrupted string index for method class name");
continue;
}
@@ -338,20 +369,21 @@ void Parser::parse_methods() {
clazz = clazz.substr(pos + 1);
}
- //CHECK_EQ(clazz[0], 'L') << "Not supported class: " << clazz;
+ // CHECK_EQ(clazz[0], 'L') << "Not supported class: " << clazz;
// Prototype
// =======================
if (item.proto_idx >= file_->prototypes_.size()) {
- LIEF_WARN("Prototype #{:d} out of bound ({:d})", item.proto_idx, file_->prototypes_.size());
+ LIEF_WARN("Prototype #{:d} out of bounds ({:d})", item.proto_idx,
+ file_->prototypes_.size());
break;
}
std::unique_ptr<Prototype>& pt = file_->prototypes_[item.proto_idx];
// Method Name
if (item.name_idx >= file_->strings_.size()) {
- LIEF_WARN("Name of method #{:d} is out of bound!", i);
+ LIEF_WARN("Method #{:d} name out of bounds", i);
continue;
}
@@ -381,10 +413,13 @@ void Parser::parse_classes() {
const uint64_t classes_offset = classes_location.first;
- LIEF_DEBUG("Parsing #{:d} CLASSES at 0x{:x}", classes_location.second, classes_offset);
+ LIEF_DEBUG("Parsing #{:d} CLASSES at {:#x}", classes_location.second,
+ classes_offset);
for (size_t i = 0; i < classes_location.second; ++i) {
- const auto res_item = stream_->peek<details::class_def_item>(classes_offset + i * sizeof(details::class_def_item));
+ const auto res_item = stream_->peek<details::class_def_item>(
+ classes_offset + i * sizeof(details::class_def_item)
+ );
if (!res_item) {
break;
}
@@ -394,15 +429,16 @@ void Parser::parse_classes() {
uint32_t type_idx = item.class_idx;
std::string name;
- if (type_idx > types_location.second) {
- LIEF_ERR("Type Corrupted");
+ if (type_idx >= types_location.second) {
+ LIEF_ERR("Corrupted type");
} else {
- auto class_name_idx = stream_->peek<uint32_t>(types_location.first + type_idx * sizeof(uint32_t));
+ auto class_name_idx = stream_->peek<uint32_t>(types_location.first +
+ type_idx * sizeof(uint32_t));
if (!class_name_idx) {
break;
}
if (*class_name_idx >= file_->strings_.size()) {
- LIEF_WARN("String index for class name corrupted");
+ LIEF_WARN("Corrupted string index for class name");
} else {
name = *file_->strings_[*class_name_idx];
}
@@ -412,23 +448,25 @@ void Parser::parse_classes() {
std::string parent_name;
Class* parent_ptr = nullptr;
if (item.superclass_idx != details::NO_INDEX) {
- if (item.superclass_idx > types_location.second) {
- LIEF_WARN("Type index for super class name corrupted");
+ if (item.superclass_idx >= types_location.second) {
+ LIEF_WARN("Corrupted type index for superclass name");
continue;
}
- auto super_class_name_idx = stream_->peek<uint32_t>(types_location.first + item.superclass_idx * sizeof(uint32_t));
+ auto super_class_name_idx =
+ stream_->peek<uint32_t>(types_location.first +
+ item.superclass_idx * sizeof(uint32_t));
if (!super_class_name_idx) {
break;
}
if (*super_class_name_idx >= file_->strings_.size()) {
- LIEF_WARN("String index for super class name corrupted");
+ LIEF_WARN("Corrupted string index for superclass name");
} else {
parent_name = *file_->strings_[*super_class_name_idx];
}
// Check if already parsed the parent class
const auto it_parent = file_->classes_.find(parent_name);
- if (it_parent != std::end(file_->classes_)) {
+ if (it_parent != file_->classes_.end()) {
parent_ptr = it_parent->second;
}
}
@@ -437,13 +475,14 @@ void Parser::parse_classes() {
std::string source_filename;
if (item.source_file_idx != details::NO_INDEX) {
if (item.source_file_idx >= file_->strings_.size()) {
- LIEF_WARN("String index for source filename corrupted");
+ LIEF_WARN("Corrupted string index for source filename");
} else {
source_filename = *file_->strings_[item.source_file_idx];
}
}
- auto clazz = std::make_unique<Class>(name, item.access_flags, parent_ptr, source_filename);
+ auto clazz = std::make_unique<Class>(name, item.access_flags, parent_ptr,
+ source_filename);
clazz->original_index_ = i;
if (parent_ptr == nullptr) {
// Register in inheritance map to be resolved later
@@ -462,9 +501,7 @@ void Parser::parse_classes() {
if (item.class_data_off > 0) {
parse_class_data<DEX_T>(item.class_data_off, cls);
}
-
}
-
}
@@ -497,13 +534,8 @@ void Parser::parse_class_data(uint32_t offset, Class& cls) {
return;
}
- const int64_t allocated_size = static_cast<int64_t>(*direct_methods_size) +
- static_cast<int64_t>(*virtual_methods_size);
- if (allocated_size < 0) {
- return;
- }
-
- if (static_cast<size_t>(allocated_size) > this->file_->methods_.size()) {
+ const uint64_t allocated_size = *direct_methods_size + *virtual_methods_size;
+ if (allocated_size > this->file_->methods_.size()) {
return;
}
@@ -577,7 +609,6 @@ void Parser::parse_class_data(uint32_t offset, Class& cls) {
}
parse_method<DEX_T>(method_idx, cls, true);
}
-
}
@@ -597,7 +628,7 @@ void Parser::parse_field(size_t index, Class& cls, bool is_static) {
field->set_static(is_static);
if (field->index() != index) {
- LIEF_WARN("field->index() is not consistent");
+ LIEF_WARN("Inconsistent field index");
return;
}
@@ -638,7 +669,7 @@ void Parser::parse_method(size_t index, Class& cls, bool is_virtual) {
method->set_virtual(is_virtual);
if (method->index() != index) {
- LIEF_WARN("method->index() is not consistent");
+ LIEF_WARN("Inconsistent method index");
return;
}
@@ -668,15 +699,16 @@ void Parser::parse_code_info(uint32_t offset, Method& method) {
}
method.code_info_ = codeitem.value();
- const auto* bytecode = stream_->peek_array<uint8_t>(/* offset */ offset + sizeof(details::code_item),
- /* size */ codeitem->insns_size * sizeof(uint16_t));
+ const auto* bytecode = stream_->peek_array<uint8_t>(
+ /* offset */ offset + sizeof(details::code_item),
+ /* size */ codeitem->insns_size * sizeof(uint16_t)
+ );
method.code_offset_ = offset + sizeof(details::code_item);
if (bytecode != nullptr) {
- method.bytecode_ = {bytecode, bytecode + codeitem->insns_size * sizeof(uint16_t)};
+ method.bytecode_ = {bytecode,
+ bytecode + codeitem->insns_size * sizeof(uint16_t)};
}
}
-
-}
}
diff --git a/deps/LIEF/src/DEX/Prototype.cpp b/deps/LIEF/src/DEX/Prototype.cpp
index 23d08d859ce..3ab1a8be3d5 100644
--- a/deps/LIEF/src/DEX/Prototype.cpp
+++ b/deps/LIEF/src/DEX/Prototype.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,8 @@
#include "LIEF/DEX/Type.hpp"
#include "LIEF/DEX/hash.hpp"
-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {
Prototype::Prototype() = default;
Prototype::Prototype(const Prototype& other) = default;
@@ -45,7 +45,6 @@ void Prototype::accept(Visitor& visitor) const {
}
-
std::ostream& operator<<(std::ostream& os, const Prototype& type) {
Prototype::it_const_params ps = type.parameters_type();
@@ -68,4 +67,3 @@ std::ostream& operator<<(std::ostream& os, const Prototype& type) {
Prototype::~Prototype() = default;
}
-}
diff --git a/deps/LIEF/src/DEX/Structures.hpp b/deps/LIEF/src/DEX/Structures.hpp
index 1a51f379892..6ac902eee95 100644
--- a/deps/LIEF/src/DEX/Structures.hpp
+++ b/deps/LIEF/src/DEX/Structures.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,19 +23,19 @@
#include "LIEF/DEX/enums.hpp"
#include "LIEF/DEX/types.hpp"
-namespace LIEF {
+
/// Namespace related to the LIEF's DEX module
-namespace DEX {
-namespace details {
-static constexpr uint8_t magic[] = { 'd', 'e', 'x', '\n' };
+
+namespace LIEF::DEX::details {
+static constexpr uint8_t magic[] = {'d', 'e', 'x', '\n'};
static constexpr uint32_t NO_INDEX = 0xffffffff;
struct header {
- uint8_t magic[8];
+ uint8_t magic[8];
uint32_t checksum;
- uint8_t signature[20];
+ uint8_t signature[20];
uint32_t file_size;
uint32_t header_size;
uint32_t endian_tag;
@@ -83,8 +83,8 @@ struct field_id_item {
};
struct string_data_item {
- uint8_t *utf16_size;
- uint8_t *data;
+ uint8_t* utf16_size;
+ uint8_t* data;
};
struct map_items {
@@ -95,8 +95,8 @@ struct map_items {
};
struct map {
- uint32_t size;
- map_items *items;
+ uint32_t size;
+ map_items* items;
};
struct proto_id_item {
@@ -117,134 +117,133 @@ struct code_item {
namespace DEX_35 {
-using header = DEX::details::header;
-using class_def_item = DEX::details::class_def_item;
-using method_id_item = DEX::details::method_id_item;
-using field_id_item = DEX::details::field_id_item;
+using header = DEX::details::header;
+using class_def_item = DEX::details::class_def_item;
+using method_id_item = DEX::details::method_id_item;
+using field_id_item = DEX::details::field_id_item;
using string_data_item = DEX::details::string_data_item;
-using map_items = DEX::details::map_items;
-using map = DEX::details::map;
-using proto_id_item = DEX::details::proto_id_item;
-using code_item = DEX::details::code_item;
+using map_items = DEX::details::map_items;
+using map = DEX::details::map;
+using proto_id_item = DEX::details::proto_id_item;
+using code_item = DEX::details::code_item;
static constexpr dex_version_t dex_version = 35;
-static constexpr uint8_t magic[] = { 'd', 'e', 'x', '\n', '0', '3', '5', '\0' };
+static constexpr uint8_t magic[] = {'d', 'e', 'x', '\n', '0', '3', '5', '\0'};
}
namespace DEX_37 {
-using header = DEX::details::header;
-using class_def_item = DEX::details::class_def_item;
-using method_id_item = DEX::details::method_id_item;
-using field_id_item = DEX::details::field_id_item;
+using header = DEX::details::header;
+using class_def_item = DEX::details::class_def_item;
+using method_id_item = DEX::details::method_id_item;
+using field_id_item = DEX::details::field_id_item;
using string_data_item = DEX::details::string_data_item;
-using map_items = DEX::details::map_items;
-using map = DEX::details::map;
-using proto_id_item = DEX::details::proto_id_item;
-using code_item = DEX::details::code_item;
+using map_items = DEX::details::map_items;
+using map = DEX::details::map;
+using proto_id_item = DEX::details::proto_id_item;
+using code_item = DEX::details::code_item;
static constexpr dex_version_t dex_version = 37;
-static constexpr uint8_t magic[] = { 'd', 'e', 'x', '\n', '0', '3', '7', '\0' };
+static constexpr uint8_t magic[] = {'d', 'e', 'x', '\n', '0', '3', '7', '\0'};
}
namespace DEX_38 {
-using header = DEX::details::header;
-using class_def_item = DEX::details::class_def_item;
-using method_id_item = DEX::details::method_id_item;
-using field_id_item = DEX::details::field_id_item;
+using header = DEX::details::header;
+using class_def_item = DEX::details::class_def_item;
+using method_id_item = DEX::details::method_id_item;
+using field_id_item = DEX::details::field_id_item;
using string_data_item = DEX::details::string_data_item;
-using map_items = DEX::details::map_items;
-using map = DEX::details::map;
-using proto_id_item = DEX::details::proto_id_item;
-using code_item = DEX::details::code_item;
+using map_items = DEX::details::map_items;
+using map = DEX::details::map;
+using proto_id_item = DEX::details::proto_id_item;
+using code_item = DEX::details::code_item;
static constexpr dex_version_t dex_version = 38;
-static constexpr uint8_t magic[] = { 'd', 'e', 'x', '\n', '0', '3', '8', '\0' };
+static constexpr uint8_t magic[] = {'d', 'e', 'x', '\n', '0', '3', '8', '\0'};
}
namespace DEX_39 {
-using header = DEX::details::header;
-using class_def_item = DEX::details::class_def_item;
-using method_id_item = DEX::details::method_id_item;
-using field_id_item = DEX::details::field_id_item;
+using header = DEX::details::header;
+using class_def_item = DEX::details::class_def_item;
+using method_id_item = DEX::details::method_id_item;
+using field_id_item = DEX::details::field_id_item;
using string_data_item = DEX::details::string_data_item;
-using map_items = DEX::details::map_items;
-using map = DEX::details::map;
-using proto_id_item = DEX::details::proto_id_item;
-using code_item = DEX::details::code_item;
+using map_items = DEX::details::map_items;
+using map = DEX::details::map;
+using proto_id_item = DEX::details::proto_id_item;
+using code_item = DEX::details::code_item;
static constexpr dex_version_t dex_version = 39;
-static constexpr uint8_t magic[] = { 'd', 'e', 'x', '\n', '0', '3', '9', '\0' };
+static constexpr uint8_t magic[] = {'d', 'e', 'x', '\n', '0', '3', '9', '\0'};
}
class DEX35 {
public:
- using dex_header = DEX_35::header;
- using class_def_item = DEX_35::class_def_item;
- using method_id_item = DEX_35::method_id_item;
- using field_id_item = DEX_35::field_id_item;
+ using dex_header = DEX_35::header;
+ using class_def_item = DEX_35::class_def_item;
+ using method_id_item = DEX_35::method_id_item;
+ using field_id_item = DEX_35::field_id_item;
using string_data_item = DEX_35::string_data_item;
- using map_items = DEX_35::map_items;
- using map = DEX_35::map;
- using proto_id_item = DEX_35::proto_id_item;
- using code_item = DEX_35::code_item;
+ using map_items = DEX_35::map_items;
+ using map = DEX_35::map;
+ using proto_id_item = DEX_35::proto_id_item;
+ using code_item = DEX_35::code_item;
static constexpr dex_version_t dex_version = DEX_35::dex_version;
};
class DEX37 {
public:
- using dex_header = DEX_37::header;
- using class_def_item = DEX_37::class_def_item;
- using method_id_item = DEX_37::method_id_item;
- using field_id_item = DEX_37::field_id_item;
+ using dex_header = DEX_37::header;
+ using class_def_item = DEX_37::class_def_item;
+ using method_id_item = DEX_37::method_id_item;
+ using field_id_item = DEX_37::field_id_item;
using string_data_item = DEX_37::string_data_item;
- using map_items = DEX_37::map_items;
- using map = DEX_37::map;
- using proto_id_item = DEX_37::proto_id_item;
- using code_item = DEX_37::code_item;
+ using map_items = DEX_37::map_items;
+ using map = DEX_37::map;
+ using proto_id_item = DEX_37::proto_id_item;
+ using code_item = DEX_37::code_item;
static constexpr dex_version_t dex_version = DEX_37::dex_version;
};
class DEX38 {
public:
- using dex_header = DEX_38::header;
- using class_def_item = DEX_38::class_def_item;
- using method_id_item = DEX_38::method_id_item;
- using field_id_item = DEX_38::field_id_item;
+ using dex_header = DEX_38::header;
+ using class_def_item = DEX_38::class_def_item;
+ using method_id_item = DEX_38::method_id_item;
+ using field_id_item = DEX_38::field_id_item;
using string_data_item = DEX_38::string_data_item;
- using map_items = DEX_38::map_items;
- using map = DEX_38::map;
- using proto_id_item = DEX_38::proto_id_item;
- using code_item = DEX_38::code_item;
+ using map_items = DEX_38::map_items;
+ using map = DEX_38::map;
+ using proto_id_item = DEX_38::proto_id_item;
+ using code_item = DEX_38::code_item;
static constexpr dex_version_t dex_version = DEX_38::dex_version;
};
class DEX39 {
public:
- using dex_header = DEX_39::header;
- using class_def_item = DEX_39::class_def_item;
- using method_id_item = DEX_39::method_id_item;
- using field_id_item = DEX_39::field_id_item;
+ using dex_header = DEX_39::header;
+ using class_def_item = DEX_39::class_def_item;
+ using method_id_item = DEX_39::method_id_item;
+ using field_id_item = DEX_39::field_id_item;
using string_data_item = DEX_39::string_data_item;
- using map_items = DEX_39::map_items;
- using map = DEX_39::map;
- using proto_id_item = DEX_39::proto_id_item;
- using code_item = DEX_39::code_item;
+ using map_items = DEX_39::map_items;
+ using map = DEX_39::map;
+ using proto_id_item = DEX_39::proto_id_item;
+ using code_item = DEX_39::code_item;
static constexpr dex_version_t dex_version = DEX_39::dex_version;
};
-} /* end namespace details */
-} /* end namespace DEX */
-} /* end namespace LIEF */
-#endif
+} // namespace LIEF::DEX::details
+
+#endif
diff --git a/deps/LIEF/src/DEX/Type.cpp b/deps/LIEF/src/DEX/Type.cpp
index a179687f8e8..bb53b6c3cc4 100644
--- a/deps/LIEF/src/DEX/Type.cpp
+++ b/deps/LIEF/src/DEX/Type.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@
#include "LIEF/DEX/Class.hpp"
#include "logging.hpp"
-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {
Type::Type() = default;
@@ -31,33 +31,31 @@ Type::Type(const std::string& mangled) {
Type::Type(const Type& other) :
Object{other},
- type_{other.type_}
-{
+ type_{other.type_} {
switch (type()) {
case TYPES::ARRAY:
- {
- array_ = new array_t{};
- std::copy(
- std::begin(other.array()),
- std::end(other.array()),
- std::back_inserter(*array_));
- break;
- }
+ {
+ array_ = new array_t{};
+ std::copy(other.array().begin(), other.array().end(),
+ std::back_inserter(*array_));
+ break;
+ }
case TYPES::CLASS:
- {
- cls_ = other.cls_;
- break;
- }
+ {
+ cls_ = other.cls_;
+ break;
+ }
case TYPES::PRIMITIVE:
- {
- basic_ = new PRIMITIVES{other.primitive()};
- break;
- }
+ {
+ basic_ = new PRIMITIVES{other.primitive()};
+ break;
+ }
default:
- {}
+ {
+ }
}
}
@@ -87,7 +85,9 @@ Type::array_t& Type::array() {
}
Type::PRIMITIVES& Type::primitive() {
- return const_cast<Type::PRIMITIVES&>(static_cast<const Type*>(this)->primitive());
+ return const_cast<Type::PRIMITIVES&>(
+ static_cast<const Type*>(this)->primitive()
+ );
}
const Type& Type::underlying_array_type() const {
@@ -100,96 +100,103 @@ const Type& Type::underlying_array_type() const {
Type& Type::underlying_array_type() {
- return const_cast<Type&>((static_cast<const Type*>(this)->underlying_array_type()));
+ return const_cast<Type&>(
+ (static_cast<const Type*>(this)->underlying_array_type())
+ );
}
void Type::parse(const std::string& type) {
+ if (type.empty()) {
+ type_ = Type::TYPES::UNKNOWN;
+ return;
+ }
+
const char t = type[0];
- switch(t) {
+ switch (t) {
case 'V':
- {
- type_ = Type::TYPES::PRIMITIVE;
- basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::VOID_T};
- break;
- }
+ {
+ type_ = Type::TYPES::PRIMITIVE;
+ basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::VOID_T};
+ break;
+ }
case 'Z':
- {
- type_ = Type::TYPES::PRIMITIVE;
- basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::BOOLEAN};
- break;
- }
+ {
+ type_ = Type::TYPES::PRIMITIVE;
+ basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::BOOLEAN};
+ break;
+ }
case 'B':
- {
- type_ = Type::TYPES::PRIMITIVE;
- basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::BYTE};
- break;
- }
+ {
+ type_ = Type::TYPES::PRIMITIVE;
+ basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::BYTE};
+ break;
+ }
case 'S':
- {
- type_ = Type::TYPES::PRIMITIVE;
- basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::SHORT};
- break;
- }
+ {
+ type_ = Type::TYPES::PRIMITIVE;
+ basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::SHORT};
+ break;
+ }
case 'C':
- {
- type_ = Type::TYPES::PRIMITIVE;
- basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::CHAR};
- break;
- }
+ {
+ type_ = Type::TYPES::PRIMITIVE;
+ basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::CHAR};
+ break;
+ }
case 'I':
- {
- type_ = Type::TYPES::PRIMITIVE;
- basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::INT};
- break;
- }
+ {
+ type_ = Type::TYPES::PRIMITIVE;
+ basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::INT};
+ break;
+ }
case 'J':
- {
- type_ = Type::TYPES::PRIMITIVE;
- basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::LONG};
- break;
- }
+ {
+ type_ = Type::TYPES::PRIMITIVE;
+ basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::LONG};
+ break;
+ }
case 'F':
- {
- type_ = Type::TYPES::PRIMITIVE;
- basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::FLOAT};
- break;
- }
+ {
+ type_ = Type::TYPES::PRIMITIVE;
+ basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::FLOAT};
+ break;
+ }
case 'D':
- {
- type_ = Type::TYPES::PRIMITIVE;
- basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::DOUBLE};
- break;
- }
-
- case 'L': //CLASS
- {
- type_ = Type::TYPES::CLASS;
- break;
- }
-
- case '[': //ARRAY
- {
- if (array_ == nullptr) {
- array_ = new array_t{};
- }
- type_ = Type::TYPES::ARRAY;
- array_->emplace_back(type.substr(1));
- break;
+ {
+ type_ = Type::TYPES::PRIMITIVE;
+ basic_ = new Type::PRIMITIVES{Type::PRIMITIVES::DOUBLE};
+ break;
+ }
+
+ case 'L': // CLASS
+ {
+ type_ = Type::TYPES::CLASS;
+ break;
+ }
+
+ case '[': // ARRAY
+ {
+ if (array_ == nullptr) {
+ array_ = new array_t{};
}
+ type_ = Type::TYPES::ARRAY;
+ array_->emplace_back(type.substr(1));
+ break;
+ }
default:
- {
- LIEF_WARN("Unknown type: '{}'", t);
- }
+ {
+ LIEF_WARN("Unknown type: '{}'", t);
+ }
}
}
@@ -212,34 +219,33 @@ void Type::accept(Visitor& visitor) const {
}
-
std::ostream& operator<<(std::ostream& os, const Type& type) {
switch (type.type()) {
case Type::TYPES::ARRAY:
- {
- os << type.underlying_array_type();
- for (size_t i = 0; i < type.dim(); ++i) {
- os << "[]";
- }
- return os;
+ {
+ os << type.underlying_array_type();
+ for (size_t i = 0; i < type.dim(); ++i) {
+ os << "[]";
}
+ return os;
+ }
case Type::TYPES::CLASS:
- {
- os << type.cls().fullname();
- return os;
- }
+ {
+ os << type.cls().fullname();
+ return os;
+ }
case Type::TYPES::PRIMITIVE:
- {
- os << Type::pretty_name(type.primitive());
- return os;
- }
+ {
+ os << Type::pretty_name(type.primitive());
+ return os;
+ }
default:
- {
- return os;
- }
+ {
+ return os;
+ }
}
return os;
}
@@ -248,78 +254,77 @@ std::ostream& operator<<(std::ostream& os, const Type& type) {
std::string Type::pretty_name(PRIMITIVES p) {
switch (p) {
case PRIMITIVES::BOOLEAN:
- {
- return "bool";
- }
+ {
+ return "bool";
+ }
case PRIMITIVES::BYTE:
- {
- return "byte";
- }
+ {
+ return "byte";
+ }
case PRIMITIVES::CHAR:
- {
- return "char";
- }
+ {
+ return "char";
+ }
case PRIMITIVES::DOUBLE:
- {
- return "double";
- }
+ {
+ return "double";
+ }
case PRIMITIVES::FLOAT:
- {
- return "float";
- }
+ {
+ return "float";
+ }
case PRIMITIVES::INT:
- {
- return "int";
- }
+ {
+ return "int";
+ }
case PRIMITIVES::LONG:
- {
- return "long";
- }
+ {
+ return "long";
+ }
case PRIMITIVES::SHORT:
- {
- return "short";
- }
+ {
+ return "short";
+ }
case PRIMITIVES::VOID_T:
- {
- return "void";
- }
+ {
+ return "void";
+ }
default:
- {
- return "";
- }
+ {
+ return "";
+ }
}
}
Type::~Type() {
switch (type()) {
case Type::TYPES::ARRAY:
- {
- delete array_;
- break;
- }
+ {
+ delete array_;
+ break;
+ }
case Type::TYPES::PRIMITIVE:
- {
- delete basic_;
- break;
- }
+ {
+ delete basic_;
+ break;
+ }
case Type::TYPES::CLASS:
case Type::TYPES::UNKNOWN:
default:
- {
- }
+ {
+ }
}
}
}
-}
diff --git a/deps/LIEF/src/DEX/hash.cpp b/deps/LIEF/src/DEX/hash.cpp
index e02315b7770..63ef4ee645f 100644
--- a/deps/LIEF/src/DEX/hash.cpp
+++ b/deps/LIEF/src/DEX/hash.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,8 +25,8 @@
#include "LIEF/DEX/Method.hpp"
#include "LIEF/DEX/Prototype.hpp"
-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {
Hash::~Hash() = default;
@@ -39,10 +39,9 @@ void Hash::visit(const File& file) {
process(file.location());
process(file.header());
- process(std::begin(file.classes()), std::end(file.classes()));
- process(std::begin(file.methods()), std::end(file.methods()));
- process(std::begin(file.strings()), std::end(file.strings()));
-
+ process(file.classes().begin(), file.classes().end());
+ process(file.methods().begin(), file.methods().end());
+ process(file.strings().begin(), file.strings().end());
}
void Hash::visit(const Header& header) {
@@ -62,8 +61,7 @@ void Hash::visit(const Header& header) {
process(header.data());
}
-void Hash::visit(const CodeInfo& /*code_info*/) {
-}
+void Hash::visit(const CodeInfo& /*code_info*/) {}
void Hash::visit(const Class& cls) {
@@ -73,8 +71,8 @@ void Hash::visit(const Class& cls) {
process(cls.source_filename());
process(cls.access_flags());
- process(std::begin(fields), std::end(fields));
- process(std::begin(methods), std::end(methods));
+ process(fields.begin(), fields.end());
+ process(methods.begin(), methods.end());
}
void Hash::visit(const Field& field) {
@@ -96,29 +94,29 @@ void Hash::visit(const Method& method) {
void Hash::visit(const Type& type) {
switch (type.type()) {
case Type::TYPES::ARRAY:
- {
- process(type.dim());
- process(type.underlying_array_type());
- break;
- }
+ {
+ process(type.dim());
+ process(type.underlying_array_type());
+ break;
+ }
case Type::TYPES::PRIMITIVE:
- {
- process(type.primitive());
- break;
- }
+ {
+ process(type.primitive());
+ break;
+ }
case Type::TYPES::CLASS:
- {
- process(type.cls().fullname());
- break;
- }
+ {
+ process(type.cls().fullname());
+ break;
+ }
case Type::TYPES::UNKNOWN:
default:
- {
- process(Type::TYPES::UNKNOWN);
- }
+ {
+ process(Type::TYPES::UNKNOWN);
+ }
}
}
@@ -126,8 +124,7 @@ void Hash::visit(const Prototype& type) {
if (const auto* rty = type.return_type()) {
process(*rty);
}
- process(std::begin(type.parameters_type()),
- std::end(type.parameters_type()));
+ process(type.parameters_type().begin(), type.parameters_type().end());
}
void Hash::visit(const MapItem& item) {
@@ -138,10 +135,8 @@ void Hash::visit(const MapItem& item) {
}
void Hash::visit(const MapList& list) {
- process(std::begin(list.items()), std::end(list.items()));
+ process(list.items().begin(), list.items().end());
}
-} // namespace DEX
-} // namespace LIEF
-
+} // namespace LIEF::DEX
diff --git a/deps/LIEF/src/DEX/instructions.cpp b/deps/LIEF/src/DEX/instructions.cpp
index 0728c919d87..e3007234137 100644
--- a/deps/LIEF/src/DEX/instructions.cpp
+++ b/deps/LIEF/src/DEX/instructions.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,303 +20,287 @@
#include <algorithm>
#include <map>
-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {
INST_FORMATS inst_format_from_opcode(OPCODES op) {
- static const std::map<OPCODES, INST_FORMATS> size_map {
- { OPCODES::OP_NOP, INST_FORMATS::F_10x },
- { OPCODES::OP_MOVE, INST_FORMATS::F_12x },
- { OPCODES::OP_MOVE_FROM_16, INST_FORMATS::F_22x },
- { OPCODES::OP_MOVE_16, INST_FORMATS::F_32x },
- { OPCODES::OP_MOVE_WIDE, INST_FORMATS::F_12x },
- { OPCODES::OP_MOVE_WIDE_FROM_16, INST_FORMATS::F_22x },
- { OPCODES::OP_MOVE_WIDE_16, INST_FORMATS::F_32x },
- { OPCODES::OP_MOVE_OBJECT, INST_FORMATS::F_12x },
- { OPCODES::OP_MOVE_OBJECT_FROM_16, INST_FORMATS::F_22x },
- { OPCODES::OP_MOVE_OBJECT_16, INST_FORMATS::F_32x },
- { OPCODES::OP_MOVE_RESULT, INST_FORMATS::F_11x },
- { OPCODES::OP_MOVE_RESULT_WIDE, INST_FORMATS::F_11x },
- { OPCODES::OP_MOVE_RESULT_OBJECT, INST_FORMATS::F_11x },
- { OPCODES::OP_MOVE_EXCEPTION, INST_FORMATS::F_11x },
- { OPCODES::OP_RETURN_VOID, INST_FORMATS::F_10x },
- { OPCODES::OP_RETURN, INST_FORMATS::F_11x },
- { OPCODES::OP_RETURN_WIDE, INST_FORMATS::F_11x },
- { OPCODES::OP_RETURN_OBJECT, INST_FORMATS::F_11x },
- { OPCODES::OP_CONST_4, INST_FORMATS::F_11n },
- { OPCODES::OP_CONST_16, INST_FORMATS::F_21s },
- { OPCODES::OP_CONST, INST_FORMATS::F_31i },
- { OPCODES::OP_CONST_HIGH_16, INST_FORMATS::F_21h },
- { OPCODES::OP_CONST_WIDE_16, INST_FORMATS::F_21s },
- { OPCODES::OP_CONST_WIDE_32, INST_FORMATS::F_31i },
- { OPCODES::OP_CONST_WIDE, INST_FORMATS::F_51l },
- { OPCODES::OP_CONST_WIDE_HIGH_16, INST_FORMATS::F_21h },
- { OPCODES::OP_CONST_STRING, INST_FORMATS::F_21c },
- { OPCODES::OP_CONST_STRING_JUMBO, INST_FORMATS::F_31c },
- { OPCODES::OP_CONST_CLASS, INST_FORMATS::F_21c },
- { OPCODES::OP_MONITOR_ENTER, INST_FORMATS::F_11x },
- { OPCODES::OP_MONITOR_EXIT, INST_FORMATS::F_11x },
- { OPCODES::OP_CHECK_CAST, INST_FORMATS::F_21c },
- { OPCODES::OP_INSTANCE_OF, INST_FORMATS::F_22c },
- { OPCODES::OP_ARRAY_LENGTH, INST_FORMATS::F_12x },
- { OPCODES::OP_NEW_INSTANCE, INST_FORMATS::F_21c },
- { OPCODES::OP_NEW_ARRAY, INST_FORMATS::F_22c },
- { OPCODES::OP_FILLED_NEW_ARRAY, INST_FORMATS::F_35c },
- { OPCODES::OP_FILLED_NEW_ARRAY_RANGE, INST_FORMATS::F_3rc },
- { OPCODES::OP_FILL_ARRAY_DATA, INST_FORMATS::F_31t },
- { OPCODES::OP_THROW, INST_FORMATS::F_11x },
- { OPCODES::OP_GOTO, INST_FORMATS::F_10t },
- { OPCODES::OP_GOTO_16, INST_FORMATS::F_20t },
- { OPCODES::OP_GOTO_32, INST_FORMATS::F_30t },
- { OPCODES::OP_PACKED_SWITCH, INST_FORMATS::F_31t },
- { OPCODES::OP_SPARSE_SWITCH, INST_FORMATS::F_31t },
- { OPCODES::OP_CMPL_FLOAT, INST_FORMATS::F_23x },
- { OPCODES::OP_CMPG_FLOAT, INST_FORMATS::F_23x },
- { OPCODES::OP_CMPL_DOUBLE, INST_FORMATS::F_23x },
- { OPCODES::OP_CMPG_DOUBLE, INST_FORMATS::F_23x },
- { OPCODES::OP_CMP_LONG, INST_FORMATS::F_23x },
- { OPCODES::OP_IF_EQ, INST_FORMATS::F_22t },
- { OPCODES::OP_IF_NE, INST_FORMATS::F_22t },
- { OPCODES::OP_IF_LT, INST_FORMATS::F_22t },
- { OPCODES::OP_IF_GE, INST_FORMATS::F_22t },
- { OPCODES::OP_IF_GT, INST_FORMATS::F_22t },
- { OPCODES::OP_IF_LE, INST_FORMATS::F_22t },
- { OPCODES::OP_IF_EQZ, INST_FORMATS::F_21t },
- { OPCODES::OP_IF_NEZ, INST_FORMATS::F_21t },
- { OPCODES::OP_IF_LTZ, INST_FORMATS::F_21t },
- { OPCODES::OP_IF_GEZ, INST_FORMATS::F_21t },
- { OPCODES::OP_IF_GTZ, INST_FORMATS::F_21t },
- { OPCODES::OP_IF_LEZ, INST_FORMATS::F_21t },
- { OPCODES::OP_AGET, INST_FORMATS::F_23x },
- { OPCODES::OP_AGET_WIDE, INST_FORMATS::F_23x },
- { OPCODES::OP_AGET_OBJECT, INST_FORMATS::F_23x },
- { OPCODES::OP_AGET_BOOLEAN, INST_FORMATS::F_23x },
- { OPCODES::OP_AGET_BYTE, INST_FORMATS::F_23x },
- { OPCODES::OP_AGET_CHAR, INST_FORMATS::F_23x },
- { OPCODES::OP_AGET_SHORT, INST_FORMATS::F_23x },
- { OPCODES::OP_APUT, INST_FORMATS::F_23x },
- { OPCODES::OP_APUT_WIDE, INST_FORMATS::F_23x },
- { OPCODES::OP_APUT_OBJECT, INST_FORMATS::F_23x },
- { OPCODES::OP_APUT_BOOLEAN, INST_FORMATS::F_23x },
- { OPCODES::OP_APUT_BYTE, INST_FORMATS::F_23x },
- { OPCODES::OP_APUT_CHAR, INST_FORMATS::F_23x },
- { OPCODES::OP_APUT_SHORT, INST_FORMATS::F_23x },
- { OPCODES::OP_IGET, INST_FORMATS::F_22c },
- { OPCODES::OP_IGET_WIDE, INST_FORMATS::F_22c },
- { OPCODES::OP_IGET_OBJECT, INST_FORMATS::F_22c },
- { OPCODES::OP_IGET_BOOLEAN, INST_FORMATS::F_22c },
- { OPCODES::OP_IGET_BYTE, INST_FORMATS::F_22c },
- { OPCODES::OP_IGET_CHAR, INST_FORMATS::F_22c },
- { OPCODES::OP_IGET_SHORT, INST_FORMATS::F_22c },
- { OPCODES::OP_IPUT, INST_FORMATS::F_22c },
- { OPCODES::OP_IPUT_WIDE, INST_FORMATS::F_22c },
- { OPCODES::OP_IPUT_OBJECT, INST_FORMATS::F_22c },
- { OPCODES::OP_IPUT_BOOLEAN, INST_FORMATS::F_22c },
- { OPCODES::OP_IPUT_BYTE, INST_FORMATS::F_22c },
- { OPCODES::OP_IPUT_CHAR, INST_FORMATS::F_22c },
- { OPCODES::OP_IPUT_SHORT, INST_FORMATS::F_22c },
- { OPCODES::OP_SGET, INST_FORMATS::F_21c },
- { OPCODES::OP_SGET_WIDE, INST_FORMATS::F_21c },
- { OPCODES::OP_SGET_OBJECT, INST_FORMATS::F_21c },
- { OPCODES::OP_SGET_BOOLEAN, INST_FORMATS::F_21c },
- { OPCODES::OP_SGET_BYTE, INST_FORMATS::F_21c },
- { OPCODES::OP_SGET_CHAR, INST_FORMATS::F_21c },
- { OPCODES::OP_SGET_SHORT, INST_FORMATS::F_21c },
- { OPCODES::OP_SPUT, INST_FORMATS::F_21c },
- { OPCODES::OP_SPUT_WIDE, INST_FORMATS::F_21c },
- { OPCODES::OP_SPUT_OBJECT, INST_FORMATS::F_21c },
- { OPCODES::OP_SPUT_BOOLEAN, INST_FORMATS::F_21c },
- { OPCODES::OP_SPUT_BYTE, INST_FORMATS::F_21c },
- { OPCODES::OP_SPUT_CHAR, INST_FORMATS::F_21c },
- { OPCODES::OP_SPUT_SHORT, INST_FORMATS::F_21c },
- { OPCODES::OP_INVOKE_VIRTUAL, INST_FORMATS::F_35c },
- { OPCODES::OP_INVOKE_SUPER, INST_FORMATS::F_35c },
- { OPCODES::OP_INVOKE_DIRECT, INST_FORMATS::F_35c },
- { OPCODES::OP_INVOKE_STATIC, INST_FORMATS::F_35c },
- { OPCODES::OP_INVOKE_INTERFACE, INST_FORMATS::F_35c },
- { OPCODES::OP_RETURN_VOID_NO_BARRIER, INST_FORMATS::F_10x },
- { OPCODES::OP_INVOKE_VIRTUAL_RANGE, INST_FORMATS::F_3rc },
- { OPCODES::OP_INVOKE_SUPER_RANGE, INST_FORMATS::F_3rc },
- { OPCODES::OP_INVOKE_DIRECT_RANGE, INST_FORMATS::F_3rc },
- { OPCODES::OP_INVOKE_STATIC_RANGE, INST_FORMATS::F_3rc },
- { OPCODES::OP_INVOKE_INTERFACE_RANGE, INST_FORMATS::F_3rc },
- { OPCODES::OP_NEG_INT, INST_FORMATS::F_12x },
- { OPCODES::OP_NOT_INT, INST_FORMATS::F_12x },
- { OPCODES::OP_NEG_LONG, INST_FORMATS::F_12x },
- { OPCODES::OP_NOT_LONG, INST_FORMATS::F_12x },
- { OPCODES::OP_NEG_FLOAT, INST_FORMATS::F_12x },
- { OPCODES::OP_NEG_DOUBLE, INST_FORMATS::F_12x },
- { OPCODES::OP_INT_TO_LONG, INST_FORMATS::F_12x },
- { OPCODES::OP_INT_TO_FLOAT, INST_FORMATS::F_12x },
- { OPCODES::OP_INT_TO_DOUBLE, INST_FORMATS::F_12x },
- { OPCODES::OP_LONG_TO_INT, INST_FORMATS::F_12x },
- { OPCODES::OP_LONG_TO_FLOAT, INST_FORMATS::F_12x },
- { OPCODES::OP_LONG_TO_DOUBLE, INST_FORMATS::F_12x },
- { OPCODES::OP_FLOAT_TO_INT, INST_FORMATS::F_12x },
- { OPCODES::OP_FLOAT_TO_LONG, INST_FORMATS::F_12x },
- { OPCODES::OP_FLOAT_TO_DOUBLE, INST_FORMATS::F_12x },
- { OPCODES::OP_DOUBLE_TO_INT, INST_FORMATS::F_12x },
- { OPCODES::OP_DOUBLE_TO_LONG, INST_FORMATS::F_12x },
- { OPCODES::OP_DOUBLE_TO_FLOAT, INST_FORMATS::F_12x },
- { OPCODES::OP_INT_TO_BYTE, INST_FORMATS::F_12x },
- { OPCODES::OP_INT_TO_CHAR, INST_FORMATS::F_12x },
- { OPCODES::OP_INT_TO_SHORT, INST_FORMATS::F_12x },
- { OPCODES::OP_ADD_INT, INST_FORMATS::F_23x },
- { OPCODES::OP_SUB_INT, INST_FORMATS::F_23x },
- { OPCODES::OP_MUL_INT, INST_FORMATS::F_23x },
- { OPCODES::OP_DIV_INT, INST_FORMATS::F_23x },
- { OPCODES::OP_REM_INT, INST_FORMATS::F_23x },
- { OPCODES::OP_AND_INT, INST_FORMATS::F_23x },
- { OPCODES::OP_OR_INT, INST_FORMATS::F_23x },
- { OPCODES::OP_XOR_INT, INST_FORMATS::F_23x },
- { OPCODES::OP_SHL_INT, INST_FORMATS::F_23x },
- { OPCODES::OP_SHR_INT, INST_FORMATS::F_23x },
- { OPCODES::OP_USHR_INT, INST_FORMATS::F_23x },
- { OPCODES::OP_ADD_LONG, INST_FORMATS::F_23x },
- { OPCODES::OP_SUB_LONG, INST_FORMATS::F_23x },
- { OPCODES::OP_MUL_LONG, INST_FORMATS::F_23x },
- { OPCODES::OP_DIV_LONG, INST_FORMATS::F_23x },
- { OPCODES::OP_REM_LONG, INST_FORMATS::F_23x },
- { OPCODES::OP_AND_LONG, INST_FORMATS::F_23x },
- { OPCODES::OP_OR_LONG, INST_FORMATS::F_23x },
- { OPCODES::OP_XOR_LONG, INST_FORMATS::F_23x },
- { OPCODES::OP_SHL_LONG, INST_FORMATS::F_23x },
- { OPCODES::OP_SHR_LONG, INST_FORMATS::F_23x },
- { OPCODES::OP_USHR_LONG, INST_FORMATS::F_23x },
- { OPCODES::OP_ADD_FLOAT, INST_FORMATS::F_23x },
- { OPCODES::OP_SUB_FLOAT, INST_FORMATS::F_23x },
- { OPCODES::OP_MUL_FLOAT, INST_FORMATS::F_23x },
- { OPCODES::OP_DIV_FLOAT, INST_FORMATS::F_23x },
- { OPCODES::OP_REM_FLOAT, INST_FORMATS::F_23x },
- { OPCODES::OP_ADD_DOUBLE, INST_FORMATS::F_23x },
- { OPCODES::OP_SUB_DOUBLE, INST_FORMATS::F_23x },
- { OPCODES::OP_MUL_DOUBLE, INST_FORMATS::F_23x },
- { OPCODES::OP_DIV_DOUBLE, INST_FORMATS::F_23x },
- { OPCODES::OP_REM_DOUBLE, INST_FORMATS::F_23x },
- { OPCODES::OP_ADD_INT_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_SUB_INT_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_MUL_INT_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_DIV_INT_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_REM_INT_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_AND_INT_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_OR_INT_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_XOR_INT_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_SHL_INT_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_SHR_INT_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_USHR_INT_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_ADD_LONG_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_SUB_LONG_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_MUL_LONG_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_DIV_LONG_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_REM_LONG_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_AND_LONG_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_OR_LONG_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_XOR_LONG_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_SHL_LONG_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_SHR_LONG_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_USHR_LONG_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_ADD_FLOAT_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_SUB_FLOAT_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_MUL_FLOAT_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_DIV_FLOAT_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_REM_FLOAT_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_ADD_DOUBLE_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_SUB_DOUBLE_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_MUL_DOUBLE_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_DIV_DOUBLE_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_REM_DOUBLE_2_ADDR, INST_FORMATS::F_12x },
- { OPCODES::OP_ADD_INT_LIT_16, INST_FORMATS::F_22s },
- { OPCODES::OP_RSUB_INT, INST_FORMATS::F_22s },
- { OPCODES::OP_MUL_INT_LIT_16, INST_FORMATS::F_22s },
- { OPCODES::OP_DIV_INT_LIT_16, INST_FORMATS::F_22s },
- { OPCODES::OP_REM_INT_LIT_16, INST_FORMATS::F_22s },
- { OPCODES::OP_AND_INT_LIT_16, INST_FORMATS::F_22s },
- { OPCODES::OP_OR_INT_LIT_16, INST_FORMATS::F_22s },
- { OPCODES::OP_XOR_INT_LIT_16, INST_FORMATS::F_22s },
- { OPCODES::OP_ADD_INT_LIT_8, INST_FORMATS::F_22b },
- { OPCODES::OP_RSUB_INT_LIT_8, INST_FORMATS::F_22b },
- { OPCODES::OP_MUL_INT_LIT_8, INST_FORMATS::F_22b },
- { OPCODES::OP_DIV_INT_LIT_8, INST_FORMATS::F_22b },
- { OPCODES::OP_REM_INT_LIT_8, INST_FORMATS::F_22b },
- { OPCODES::OP_AND_INT_LIT_8, INST_FORMATS::F_22b },
- { OPCODES::OP_OR_INT_LIT_8, INST_FORMATS::F_22b },
- { OPCODES::OP_XOR_INT_LIT_8, INST_FORMATS::F_22b },
- { OPCODES::OP_SHL_INT_LIT_8, INST_FORMATS::F_22b },
- { OPCODES::OP_SHR_INT_LIT_8, INST_FORMATS::F_22b },
- { OPCODES::OP_USHR_INT_LIT_8, INST_FORMATS::F_22b },
+ static const std::map<OPCODES, INST_FORMATS> size_map{
+ {OPCODES::OP_NOP, INST_FORMATS::F_10x},
+ {OPCODES::OP_MOVE, INST_FORMATS::F_12x},
+ {OPCODES::OP_MOVE_FROM_16, INST_FORMATS::F_22x},
+ {OPCODES::OP_MOVE_16, INST_FORMATS::F_32x},
+ {OPCODES::OP_MOVE_WIDE, INST_FORMATS::F_12x},
+ {OPCODES::OP_MOVE_WIDE_FROM_16, INST_FORMATS::F_22x},
+ {OPCODES::OP_MOVE_WIDE_16, INST_FORMATS::F_32x},
+ {OPCODES::OP_MOVE_OBJECT, INST_FORMATS::F_12x},
+ {OPCODES::OP_MOVE_OBJECT_FROM_16, INST_FORMATS::F_22x},
+ {OPCODES::OP_MOVE_OBJECT_16, INST_FORMATS::F_32x},
+ {OPCODES::OP_MOVE_RESULT, INST_FORMATS::F_11x},
+ {OPCODES::OP_MOVE_RESULT_WIDE, INST_FORMATS::F_11x},
+ {OPCODES::OP_MOVE_RESULT_OBJECT, INST_FORMATS::F_11x},
+ {OPCODES::OP_MOVE_EXCEPTION, INST_FORMATS::F_11x},
+ {OPCODES::OP_RETURN_VOID, INST_FORMATS::F_10x},
+ {OPCODES::OP_RETURN, INST_FORMATS::F_11x},
+ {OPCODES::OP_RETURN_WIDE, INST_FORMATS::F_11x},
+ {OPCODES::OP_RETURN_OBJECT, INST_FORMATS::F_11x},
+ {OPCODES::OP_CONST_4, INST_FORMATS::F_11n},
+ {OPCODES::OP_CONST_16, INST_FORMATS::F_21s},
+ {OPCODES::OP_CONST, INST_FORMATS::F_31i},
+ {OPCODES::OP_CONST_HIGH_16, INST_FORMATS::F_21h},
+ {OPCODES::OP_CONST_WIDE_16, INST_FORMATS::F_21s},
+ {OPCODES::OP_CONST_WIDE_32, INST_FORMATS::F_31i},
+ {OPCODES::OP_CONST_WIDE, INST_FORMATS::F_51l},
+ {OPCODES::OP_CONST_WIDE_HIGH_16, INST_FORMATS::F_21h},
+ {OPCODES::OP_CONST_STRING, INST_FORMATS::F_21c},
+ {OPCODES::OP_CONST_STRING_JUMBO, INST_FORMATS::F_31c},
+ {OPCODES::OP_CONST_CLASS, INST_FORMATS::F_21c},
+ {OPCODES::OP_MONITOR_ENTER, INST_FORMATS::F_11x},
+ {OPCODES::OP_MONITOR_EXIT, INST_FORMATS::F_11x},
+ {OPCODES::OP_CHECK_CAST, INST_FORMATS::F_21c},
+ {OPCODES::OP_INSTANCE_OF, INST_FORMATS::F_22c},
+ {OPCODES::OP_ARRAY_LENGTH, INST_FORMATS::F_12x},
+ {OPCODES::OP_NEW_INSTANCE, INST_FORMATS::F_21c},
+ {OPCODES::OP_NEW_ARRAY, INST_FORMATS::F_22c},
+ {OPCODES::OP_FILLED_NEW_ARRAY, INST_FORMATS::F_35c},
+ {OPCODES::OP_FILLED_NEW_ARRAY_RANGE, INST_FORMATS::F_3rc},
+ {OPCODES::OP_FILL_ARRAY_DATA, INST_FORMATS::F_31t},
+ {OPCODES::OP_THROW, INST_FORMATS::F_11x},
+ {OPCODES::OP_GOTO, INST_FORMATS::F_10t},
+ {OPCODES::OP_GOTO_16, INST_FORMATS::F_20t},
+ {OPCODES::OP_GOTO_32, INST_FORMATS::F_30t},
+ {OPCODES::OP_PACKED_SWITCH, INST_FORMATS::F_31t},
+ {OPCODES::OP_SPARSE_SWITCH, INST_FORMATS::F_31t},
+ {OPCODES::OP_CMPL_FLOAT, INST_FORMATS::F_23x},
+ {OPCODES::OP_CMPG_FLOAT, INST_FORMATS::F_23x},
+ {OPCODES::OP_CMPL_DOUBLE, INST_FORMATS::F_23x},
+ {OPCODES::OP_CMPG_DOUBLE, INST_FORMATS::F_23x},
+ {OPCODES::OP_CMP_LONG, INST_FORMATS::F_23x},
+ {OPCODES::OP_IF_EQ, INST_FORMATS::F_22t},
+ {OPCODES::OP_IF_NE, INST_FORMATS::F_22t},
+ {OPCODES::OP_IF_LT, INST_FORMATS::F_22t},
+ {OPCODES::OP_IF_GE, INST_FORMATS::F_22t},
+ {OPCODES::OP_IF_GT, INST_FORMATS::F_22t},
+ {OPCODES::OP_IF_LE, INST_FORMATS::F_22t},
+ {OPCODES::OP_IF_EQZ, INST_FORMATS::F_21t},
+ {OPCODES::OP_IF_NEZ, INST_FORMATS::F_21t},
+ {OPCODES::OP_IF_LTZ, INST_FORMATS::F_21t},
+ {OPCODES::OP_IF_GEZ, INST_FORMATS::F_21t},
+ {OPCODES::OP_IF_GTZ, INST_FORMATS::F_21t},
+ {OPCODES::OP_IF_LEZ, INST_FORMATS::F_21t},
+ {OPCODES::OP_AGET, INST_FORMATS::F_23x},
+ {OPCODES::OP_AGET_WIDE, INST_FORMATS::F_23x},
+ {OPCODES::OP_AGET_OBJECT, INST_FORMATS::F_23x},
+ {OPCODES::OP_AGET_BOOLEAN, INST_FORMATS::F_23x},
+ {OPCODES::OP_AGET_BYTE, INST_FORMATS::F_23x},
+ {OPCODES::OP_AGET_CHAR, INST_FORMATS::F_23x},
+ {OPCODES::OP_AGET_SHORT, INST_FORMATS::F_23x},
+ {OPCODES::OP_APUT, INST_FORMATS::F_23x},
+ {OPCODES::OP_APUT_WIDE, INST_FORMATS::F_23x},
+ {OPCODES::OP_APUT_OBJECT, INST_FORMATS::F_23x},
+ {OPCODES::OP_APUT_BOOLEAN, INST_FORMATS::F_23x},
+ {OPCODES::OP_APUT_BYTE, INST_FORMATS::F_23x},
+ {OPCODES::OP_APUT_CHAR, INST_FORMATS::F_23x},
+ {OPCODES::OP_APUT_SHORT, INST_FORMATS::F_23x},
+ {OPCODES::OP_IGET, INST_FORMATS::F_22c},
+ {OPCODES::OP_IGET_WIDE, INST_FORMATS::F_22c},
+ {OPCODES::OP_IGET_OBJECT, INST_FORMATS::F_22c},
+ {OPCODES::OP_IGET_BOOLEAN, INST_FORMATS::F_22c},
+ {OPCODES::OP_IGET_BYTE, INST_FORMATS::F_22c},
+ {OPCODES::OP_IGET_CHAR, INST_FORMATS::F_22c},
+ {OPCODES::OP_IGET_SHORT, INST_FORMATS::F_22c},
+ {OPCODES::OP_IPUT, INST_FORMATS::F_22c},
+ {OPCODES::OP_IPUT_WIDE, INST_FORMATS::F_22c},
+ {OPCODES::OP_IPUT_OBJECT, INST_FORMATS::F_22c},
+ {OPCODES::OP_IPUT_BOOLEAN, INST_FORMATS::F_22c},
+ {OPCODES::OP_IPUT_BYTE, INST_FORMATS::F_22c},
+ {OPCODES::OP_IPUT_CHAR, INST_FORMATS::F_22c},
+ {OPCODES::OP_IPUT_SHORT, INST_FORMATS::F_22c},
+ {OPCODES::OP_SGET, INST_FORMATS::F_21c},
+ {OPCODES::OP_SGET_WIDE, INST_FORMATS::F_21c},
+ {OPCODES::OP_SGET_OBJECT, INST_FORMATS::F_21c},
+ {OPCODES::OP_SGET_BOOLEAN, INST_FORMATS::F_21c},
+ {OPCODES::OP_SGET_BYTE, INST_FORMATS::F_21c},
+ {OPCODES::OP_SGET_CHAR, INST_FORMATS::F_21c},
+ {OPCODES::OP_SGET_SHORT, INST_FORMATS::F_21c},
+ {OPCODES::OP_SPUT, INST_FORMATS::F_21c},
+ {OPCODES::OP_SPUT_WIDE, INST_FORMATS::F_21c},
+ {OPCODES::OP_SPUT_OBJECT, INST_FORMATS::F_21c},
+ {OPCODES::OP_SPUT_BOOLEAN, INST_FORMATS::F_21c},
+ {OPCODES::OP_SPUT_BYTE, INST_FORMATS::F_21c},
+ {OPCODES::OP_SPUT_CHAR, INST_FORMATS::F_21c},
+ {OPCODES::OP_SPUT_SHORT, INST_FORMATS::F_21c},
+ {OPCODES::OP_INVOKE_VIRTUAL, INST_FORMATS::F_35c},
+ {OPCODES::OP_INVOKE_SUPER, INST_FORMATS::F_35c},
+ {OPCODES::OP_INVOKE_DIRECT, INST_FORMATS::F_35c},
+ {OPCODES::OP_INVOKE_STATIC, INST_FORMATS::F_35c},
+ {OPCODES::OP_INVOKE_INTERFACE, INST_FORMATS::F_35c},
+ {OPCODES::OP_RETURN_VOID_NO_BARRIER, INST_FORMATS::F_10x},
+ {OPCODES::OP_INVOKE_VIRTUAL_RANGE, INST_FORMATS::F_3rc},
+ {OPCODES::OP_INVOKE_SUPER_RANGE, INST_FORMATS::F_3rc},
+ {OPCODES::OP_INVOKE_DIRECT_RANGE, INST_FORMATS::F_3rc},
+ {OPCODES::OP_INVOKE_STATIC_RANGE, INST_FORMATS::F_3rc},
+ {OPCODES::OP_INVOKE_INTERFACE_RANGE, INST_FORMATS::F_3rc},
+ {OPCODES::OP_NEG_INT, INST_FORMATS::F_12x},
+ {OPCODES::OP_NOT_INT, INST_FORMATS::F_12x},
+ {OPCODES::OP_NEG_LONG, INST_FORMATS::F_12x},
+ {OPCODES::OP_NOT_LONG, INST_FORMATS::F_12x},
+ {OPCODES::OP_NEG_FLOAT, INST_FORMATS::F_12x},
+ {OPCODES::OP_NEG_DOUBLE, INST_FORMATS::F_12x},
+ {OPCODES::OP_INT_TO_LONG, INST_FORMATS::F_12x},
+ {OPCODES::OP_INT_TO_FLOAT, INST_FORMATS::F_12x},
+ {OPCODES::OP_INT_TO_DOUBLE, INST_FORMATS::F_12x},
+ {OPCODES::OP_LONG_TO_INT, INST_FORMATS::F_12x},
+ {OPCODES::OP_LONG_TO_FLOAT, INST_FORMATS::F_12x},
+ {OPCODES::OP_LONG_TO_DOUBLE, INST_FORMATS::F_12x},
+ {OPCODES::OP_FLOAT_TO_INT, INST_FORMATS::F_12x},
+ {OPCODES::OP_FLOAT_TO_LONG, INST_FORMATS::F_12x},
+ {OPCODES::OP_FLOAT_TO_DOUBLE, INST_FORMATS::F_12x},
+ {OPCODES::OP_DOUBLE_TO_INT, INST_FORMATS::F_12x},
+ {OPCODES::OP_DOUBLE_TO_LONG, INST_FORMATS::F_12x},
+ {OPCODES::OP_DOUBLE_TO_FLOAT, INST_FORMATS::F_12x},
+ {OPCODES::OP_INT_TO_BYTE, INST_FORMATS::F_12x},
+ {OPCODES::OP_INT_TO_CHAR, INST_FORMATS::F_12x},
+ {OPCODES::OP_INT_TO_SHORT, INST_FORMATS::F_12x},
+ {OPCODES::OP_ADD_INT, INST_FORMATS::F_23x},
+ {OPCODES::OP_SUB_INT, INST_FORMATS::F_23x},
+ {OPCODES::OP_MUL_INT, INST_FORMATS::F_23x},
+ {OPCODES::OP_DIV_INT, INST_FORMATS::F_23x},
+ {OPCODES::OP_REM_INT, INST_FORMATS::F_23x},
+ {OPCODES::OP_AND_INT, INST_FORMATS::F_23x},
+ {OPCODES::OP_OR_INT, INST_FORMATS::F_23x},
+ {OPCODES::OP_XOR_INT, INST_FORMATS::F_23x},
+ {OPCODES::OP_SHL_INT, INST_FORMATS::F_23x},
+ {OPCODES::OP_SHR_INT, INST_FORMATS::F_23x},
+ {OPCODES::OP_USHR_INT, INST_FORMATS::F_23x},
+ {OPCODES::OP_ADD_LONG, INST_FORMATS::F_23x},
+ {OPCODES::OP_SUB_LONG, INST_FORMATS::F_23x},
+ {OPCODES::OP_MUL_LONG, INST_FORMATS::F_23x},
+ {OPCODES::OP_DIV_LONG, INST_FORMATS::F_23x},
+ {OPCODES::OP_REM_LONG, INST_FORMATS::F_23x},
+ {OPCODES::OP_AND_LONG, INST_FORMATS::F_23x},
+ {OPCODES::OP_OR_LONG, INST_FORMATS::F_23x},
+ {OPCODES::OP_XOR_LONG, INST_FORMATS::F_23x},
+ {OPCODES::OP_SHL_LONG, INST_FORMATS::F_23x},
+ {OPCODES::OP_SHR_LONG, INST_FORMATS::F_23x},
+ {OPCODES::OP_USHR_LONG, INST_FORMATS::F_23x},
+ {OPCODES::OP_ADD_FLOAT, INST_FORMATS::F_23x},
+ {OPCODES::OP_SUB_FLOAT, INST_FORMATS::F_23x},
+ {OPCODES::OP_MUL_FLOAT, INST_FORMATS::F_23x},
+ {OPCODES::OP_DIV_FLOAT, INST_FORMATS::F_23x},
+ {OPCODES::OP_REM_FLOAT, INST_FORMATS::F_23x},
+ {OPCODES::OP_ADD_DOUBLE, INST_FORMATS::F_23x},
+ {OPCODES::OP_SUB_DOUBLE, INST_FORMATS::F_23x},
+ {OPCODES::OP_MUL_DOUBLE, INST_FORMATS::F_23x},
+ {OPCODES::OP_DIV_DOUBLE, INST_FORMATS::F_23x},
+ {OPCODES::OP_REM_DOUBLE, INST_FORMATS::F_23x},
+ {OPCODES::OP_ADD_INT_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_SUB_INT_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_MUL_INT_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_DIV_INT_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_REM_INT_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_AND_INT_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_OR_INT_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_XOR_INT_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_SHL_INT_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_SHR_INT_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_USHR_INT_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_ADD_LONG_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_SUB_LONG_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_MUL_LONG_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_DIV_LONG_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_REM_LONG_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_AND_LONG_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_OR_LONG_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_XOR_LONG_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_SHL_LONG_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_SHR_LONG_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_USHR_LONG_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_ADD_FLOAT_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_SUB_FLOAT_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_MUL_FLOAT_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_DIV_FLOAT_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_REM_FLOAT_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_ADD_DOUBLE_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_SUB_DOUBLE_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_MUL_DOUBLE_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_DIV_DOUBLE_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_REM_DOUBLE_2_ADDR, INST_FORMATS::F_12x},
+ {OPCODES::OP_ADD_INT_LIT_16, INST_FORMATS::F_22s},
+ {OPCODES::OP_RSUB_INT, INST_FORMATS::F_22s},
+ {OPCODES::OP_MUL_INT_LIT_16, INST_FORMATS::F_22s},
+ {OPCODES::OP_DIV_INT_LIT_16, INST_FORMATS::F_22s},
+ {OPCODES::OP_REM_INT_LIT_16, INST_FORMATS::F_22s},
+ {OPCODES::OP_AND_INT_LIT_16, INST_FORMATS::F_22s},
+ {OPCODES::OP_OR_INT_LIT_16, INST_FORMATS::F_22s},
+ {OPCODES::OP_XOR_INT_LIT_16, INST_FORMATS::F_22s},
+ {OPCODES::OP_ADD_INT_LIT_8, INST_FORMATS::F_22b},
+ {OPCODES::OP_RSUB_INT_LIT_8, INST_FORMATS::F_22b},
+ {OPCODES::OP_MUL_INT_LIT_8, INST_FORMATS::F_22b},
+ {OPCODES::OP_DIV_INT_LIT_8, INST_FORMATS::F_22b},
+ {OPCODES::OP_REM_INT_LIT_8, INST_FORMATS::F_22b},
+ {OPCODES::OP_AND_INT_LIT_8, INST_FORMATS::F_22b},
+ {OPCODES::OP_OR_INT_LIT_8, INST_FORMATS::F_22b},
+ {OPCODES::OP_XOR_INT_LIT_8, INST_FORMATS::F_22b},
+ {OPCODES::OP_SHL_INT_LIT_8, INST_FORMATS::F_22b},
+ {OPCODES::OP_SHR_INT_LIT_8, INST_FORMATS::F_22b},
+ {OPCODES::OP_USHR_INT_LIT_8, INST_FORMATS::F_22b},
- { OPCODES::OP_INVOKE_POLYMORPHIC, INST_FORMATS::F_45cc },
- { OPCODES::OP_INVOKE_POLYMORPHIC_RANGE, INST_FORMATS::F_4rcc },
- { OPCODES::OP_INVOKE_CUSTOM, INST_FORMATS::F_35c },
- { OPCODES::OP_INVOKE_CUSTOM_RANGE, INST_FORMATS::F_3rc },
+ {OPCODES::OP_INVOKE_POLYMORPHIC, INST_FORMATS::F_45cc},
+ {OPCODES::OP_INVOKE_POLYMORPHIC_RANGE, INST_FORMATS::F_4rcc},
+ {OPCODES::OP_INVOKE_CUSTOM, INST_FORMATS::F_35c},
+ {OPCODES::OP_INVOKE_CUSTOM_RANGE, INST_FORMATS::F_3rc},
- { OPCODES::OP_CONST_METHOD_HANDLE, INST_FORMATS::F_21c },
- { OPCODES::OP_CONST_METHOD_TYPE, INST_FORMATS::F_21c },
+ {OPCODES::OP_CONST_METHOD_HANDLE, INST_FORMATS::F_21c},
+ {OPCODES::OP_CONST_METHOD_TYPE, INST_FORMATS::F_21c},
- { OPCODES::OP_IGET_QUICK, INST_FORMATS::F_22c },
- { OPCODES::OP_IGET_WIDE_QUICK, INST_FORMATS::F_22c },
- { OPCODES::OP_IGET_OBJECT_QUICK, INST_FORMATS::F_22c },
- { OPCODES::OP_IPUT_QUICK, INST_FORMATS::F_22c },
- { OPCODES::OP_IPUT_WIDE_QUICK, INST_FORMATS::F_22c },
- { OPCODES::OP_IPUT_OBJECT_QUICK, INST_FORMATS::F_22c },
- { OPCODES::OP_INVOKE_VIRTUAL_QUICK, INST_FORMATS::F_35c },
- { OPCODES::OP_INVOKE_VIRTUAL_RANGE_QUICK, INST_FORMATS::F_3rc },
- { OPCODES::OP_IPUT_BOOLEAN_QUICK, INST_FORMATS::F_22c },
- { OPCODES::OP_IPUT_BYTE_QUICK, INST_FORMATS::F_22c },
- { OPCODES::OP_IPUT_CHAR_QUICK, INST_FORMATS::F_22c },
- { OPCODES::OP_IPUT_SHORT_QUICK, INST_FORMATS::F_22c },
- { OPCODES::OP_IGET_BOOLEAN_QUICK, INST_FORMATS::F_22c },
- { OPCODES::OP_IGET_BYTE_QUICK, INST_FORMATS::F_22c },
- { OPCODES::OP_IGET_CHAR_QUICK, INST_FORMATS::F_22c },
- { OPCODES::OP_IGET_SHORT_QUICK, INST_FORMATS::F_22c },
+ {OPCODES::OP_IGET_QUICK, INST_FORMATS::F_22c},
+ {OPCODES::OP_IGET_WIDE_QUICK, INST_FORMATS::F_22c},
+ {OPCODES::OP_IGET_OBJECT_QUICK, INST_FORMATS::F_22c},
+ {OPCODES::OP_IPUT_QUICK, INST_FORMATS::F_22c},
+ {OPCODES::OP_IPUT_WIDE_QUICK, INST_FORMATS::F_22c},
+ {OPCODES::OP_IPUT_OBJECT_QUICK, INST_FORMATS::F_22c},
+ {OPCODES::OP_INVOKE_VIRTUAL_QUICK, INST_FORMATS::F_35c},
+ {OPCODES::OP_INVOKE_VIRTUAL_RANGE_QUICK, INST_FORMATS::F_3rc},
+ {OPCODES::OP_IPUT_BOOLEAN_QUICK, INST_FORMATS::F_22c},
+ {OPCODES::OP_IPUT_BYTE_QUICK, INST_FORMATS::F_22c},
+ {OPCODES::OP_IPUT_CHAR_QUICK, INST_FORMATS::F_22c},
+ {OPCODES::OP_IPUT_SHORT_QUICK, INST_FORMATS::F_22c},
+ {OPCODES::OP_IGET_BOOLEAN_QUICK, INST_FORMATS::F_22c},
+ {OPCODES::OP_IGET_BYTE_QUICK, INST_FORMATS::F_22c},
+ {OPCODES::OP_IGET_CHAR_QUICK, INST_FORMATS::F_22c},
+ {OPCODES::OP_IGET_SHORT_QUICK, INST_FORMATS::F_22c},
};
- auto it = size_map.find(op);
- //if (it == std::end(size_map)) {
- // std::cout << std::hex << "OP: " << op << '\n';
- //}
+ auto it = size_map.find(op);
+ // if (it == size_map.end()) {
+ // std::cout << std::hex << "OP: " << op << '\n';
+ // }
return it == size_map.end() ? INST_FORMATS::F_00x : it->second;
}
size_t inst_size_from_format(INST_FORMATS fmt) {
- static const std::map<INST_FORMATS, size_t> size_map {
- { INST_FORMATS::F_00x, SIZE_MAX },
- { INST_FORMATS::F_10x, 2 },
- { INST_FORMATS::F_12x, 2 },
- { INST_FORMATS::F_11n, 2 },
- { INST_FORMATS::F_11x, 2 },
- { INST_FORMATS::F_10t, 2 },
- { INST_FORMATS::F_20t, 4 },
- { INST_FORMATS::F_20bc, 4 },
- { INST_FORMATS::F_22x, 4 },
- { INST_FORMATS::F_21t, 4 },
- { INST_FORMATS::F_21s, 4 },
- { INST_FORMATS::F_21h, 4 },
- { INST_FORMATS::F_21c, 4 },
- { INST_FORMATS::F_23x, 4 },
- { INST_FORMATS::F_22b, 4 },
- { INST_FORMATS::F_22t, 4 },
- { INST_FORMATS::F_22s, 4 },
- { INST_FORMATS::F_22c, 4 },
- { INST_FORMATS::F_22cs, 4 },
- { INST_FORMATS::F_30t, 6 },
- { INST_FORMATS::F_32x, 6 },
- { INST_FORMATS::F_31i, 6 },
- { INST_FORMATS::F_31t, 6 },
- { INST_FORMATS::F_31c, 6 },
- { INST_FORMATS::F_35c, 6 },
- { INST_FORMATS::F_35ms, 6 },
- { INST_FORMATS::F_35mi, 6 },
- { INST_FORMATS::F_3rc, 6 },
- { INST_FORMATS::F_3rms, 6 },
- { INST_FORMATS::F_3rmi, 6 },
- { INST_FORMATS::F_45cc, 8 },
- { INST_FORMATS::F_4rcc, 8 },
- { INST_FORMATS::F_51l, 10 },
+ static const std::map<INST_FORMATS, size_t> size_map{
+ {INST_FORMATS::F_00x, SIZE_MAX}, {INST_FORMATS::F_10x, 2},
+ {INST_FORMATS::F_12x, 2}, {INST_FORMATS::F_11n, 2},
+ {INST_FORMATS::F_11x, 2}, {INST_FORMATS::F_10t, 2},
+ {INST_FORMATS::F_20t, 4}, {INST_FORMATS::F_20bc, 4},
+ {INST_FORMATS::F_22x, 4}, {INST_FORMATS::F_21t, 4},
+ {INST_FORMATS::F_21s, 4}, {INST_FORMATS::F_21h, 4},
+ {INST_FORMATS::F_21c, 4}, {INST_FORMATS::F_23x, 4},
+ {INST_FORMATS::F_22b, 4}, {INST_FORMATS::F_22t, 4},
+ {INST_FORMATS::F_22s, 4}, {INST_FORMATS::F_22c, 4},
+ {INST_FORMATS::F_22cs, 4}, {INST_FORMATS::F_30t, 6},
+ {INST_FORMATS::F_32x, 6}, {INST_FORMATS::F_31i, 6},
+ {INST_FORMATS::F_31t, 6}, {INST_FORMATS::F_31c, 6},
+ {INST_FORMATS::F_35c, 6}, {INST_FORMATS::F_35ms, 6},
+ {INST_FORMATS::F_35mi, 6}, {INST_FORMATS::F_3rc, 6},
+ {INST_FORMATS::F_3rms, 6}, {INST_FORMATS::F_3rmi, 6},
+ {INST_FORMATS::F_45cc, 8}, {INST_FORMATS::F_4rcc, 8},
+ {INST_FORMATS::F_51l, 10},
};
- auto it = size_map.find(fmt);
+ auto it = size_map.find(fmt);
return it == size_map.end() ? 0 : it->second;
}
@@ -326,38 +310,37 @@ size_t inst_size_from_opcode(OPCODES op) {
bool is_switch_array(const uint8_t* ptr, const uint8_t* end) {
const size_t size = end - ptr;
- const size_t underlying_struct_size = std::min({
- sizeof(packed_switch),
- sizeof(sparse_switch),
- sizeof(fill_array_data)});
+ const size_t underlying_struct_size =
+ std::min({sizeof(packed_switch), sizeof(sparse_switch),
+ sizeof(fill_array_data)});
if (size < underlying_struct_size) {
return false;
}
const auto opcode = static_cast<OPCODES>(*ptr);
- const bool valid_opcode =
- opcode == OPCODES::OP_NOP ||
- opcode == OPCODES::OP_RETURN_VOID ||
- opcode == OPCODES::OP_RETURN_VOID_NO_BARRIER;
+ const bool valid_opcode = opcode == OPCODES::OP_NOP ||
+ opcode == OPCODES::OP_RETURN_VOID ||
+ opcode == OPCODES::OP_RETURN_VOID_NO_BARRIER;
if (!valid_opcode) {
return false;
}
- const auto ident = static_cast<SWITCH_ARRAY_IDENT>(static_cast<uint16_t>(ptr[1] << 8) | opcode);
+ const auto ident =
+ static_cast<SWITCH_ARRAY_IDENT>(static_cast<uint16_t>(ptr[1] << 8) | opcode);
- switch(ident) {
+ switch (ident) {
case SWITCH_ARRAY_IDENT::IDENT_PACKED_SWITCH:
case SWITCH_ARRAY_IDENT::IDENT_SPARSE_SWITCH:
case SWITCH_ARRAY_IDENT::IDENT_FILL_ARRAY:
- {
- return true;
- }
+ {
+ return true;
+ }
default:
- {
- return false;
- }
+ {
+ return false;
+ }
}
return false;
}
@@ -367,47 +350,55 @@ size_t switch_array_size(const uint8_t* ptr, const uint8_t* end) {
return SIZE_MAX;
}
+ const size_t remaining = static_cast<size_t>(end - ptr);
const auto opcode = static_cast<OPCODES>(*ptr);
- const auto ident = static_cast<SWITCH_ARRAY_IDENT>(static_cast<uint16_t>(ptr[1] << 8) | opcode);
- const uint8_t* ptr_struct = ptr;
- size_t size = 0;
+ const auto ident =
+ static_cast<SWITCH_ARRAY_IDENT>(static_cast<uint16_t>(ptr[1] << 8) | opcode);
- switch(ident) {
+ switch (ident) {
case SWITCH_ARRAY_IDENT::IDENT_PACKED_SWITCH:
- {
- size_t nb_elements = reinterpret_cast<const packed_switch*>(ptr_struct)->size;
- size += sizeof(packed_switch);
- size += nb_elements * sizeof(uint32_t);
- return size;
+ {
+ if (remaining < sizeof(packed_switch)) {
+ return SIZE_MAX;
}
+ const size_t nb_elements = reinterpret_cast<const packed_switch*>(ptr)->size;
+ return sizeof(packed_switch) + nb_elements * sizeof(uint32_t);
+ }
case SWITCH_ARRAY_IDENT::IDENT_SPARSE_SWITCH:
- {
- size_t nb_elements = reinterpret_cast<const sparse_switch*>(ptr_struct)->size;
- size += sizeof(sparse_switch);
- size += 2 *nb_elements * sizeof(uint32_t);
- return size;
+ {
+ if (remaining < sizeof(sparse_switch)) {
+ return SIZE_MAX;
}
+ const size_t nb_elements = reinterpret_cast<const sparse_switch*>(ptr)->size;
+ return sizeof(sparse_switch) + 2 * nb_elements * sizeof(uint32_t);
+ }
case SWITCH_ARRAY_IDENT::IDENT_FILL_ARRAY:
- {
- size_t nb_elements = reinterpret_cast<const fill_array_data*>(ptr_struct)->size;
- size_t width = reinterpret_cast<const fill_array_data*>(ptr_struct)->element_width;
- size_t data_size = nb_elements * width;
- data_size += data_size % 2;
+ {
+ if (remaining < sizeof(fill_array_data)) {
+ return SIZE_MAX;
+ }
+ const auto* fill = reinterpret_cast<const fill_array_data*>(ptr);
+ const size_t nb_elements = fill->size;
+ const size_t width = fill->element_width;
- size += sizeof(fill_array_data);
- size += data_size;
- return size;
+ if (width != 0 && nb_elements > SIZE_MAX / width) {
+ return SIZE_MAX;
}
- default:
- {
+ size_t data_size = nb_elements * width;
+ if (data_size > SIZE_MAX - (data_size % 2)) {
+ return SIZE_MAX;
+ }
+ data_size += data_size % 2;
+ if (data_size > SIZE_MAX - sizeof(fill_array_data)) {
return SIZE_MAX;
}
+ return sizeof(fill_array_data) + data_size;
+ }
+ default:
+ {
+ return SIZE_MAX;
+ }
}
-
- return size;
-
}
}
-}
-
diff --git a/deps/LIEF/src/DEX/json.cpp b/deps/LIEF/src/DEX/json.cpp
index 8107b7860b9..e6c594c5115 100644
--- a/deps/LIEF/src/DEX/json.cpp
+++ b/deps/LIEF/src/DEX/json.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,8 @@
#include "DEX/json_internal.hpp"
#include "LIEF/DEX.hpp"
-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {
json to_json_obj(const Object& v) {
JsonVisitor visitor;
@@ -42,31 +42,30 @@ void JsonVisitor::visit(const File& file) {
classes.emplace_back(clsvisitor.get());
}
- node_["header"] = header_visitor.get();
+ node_["header"] = header_visitor.get();
node_["classes"] = classes;
- node_["map"] = map_item_visitor.get();
+ node_["map"] = map_item_visitor.get();
}
void JsonVisitor::visit(const Header& header) {
- node_["magic"] = header.magic();
- node_["checksum"] = header.checksum();
- node_["signature"] = header.signature();
- node_["file_size"] = header.file_size();
+ node_["magic"] = header.magic();
+ node_["checksum"] = header.checksum();
+ node_["signature"] = header.signature();
+ node_["file_size"] = header.file_size();
node_["header_size"] = header.header_size();
- node_["endian_tag"] = header.endian_tag();
- node_["map"] = header.map();
- node_["strings"] = header.strings();
- node_["link"] = header.link();
- node_["types"] = header.types();
- node_["prototypes"] = header.prototypes();
- node_["fields"] = header.fields();
- node_["methods"] = header.methods();
- node_["classes"] = header.classes();
- node_["data"] = header.data();
+ node_["endian_tag"] = header.endian_tag();
+ node_["map"] = header.map();
+ node_["strings"] = header.strings();
+ node_["link"] = header.link();
+ node_["types"] = header.types();
+ node_["prototypes"] = header.prototypes();
+ node_["fields"] = header.fields();
+ node_["methods"] = header.methods();
+ node_["classes"] = header.classes();
+ node_["data"] = header.data();
}
-void JsonVisitor::visit(const CodeInfo& /*code_info*/) {
-}
+void JsonVisitor::visit(const CodeInfo& /*code_info*/) {}
void JsonVisitor::visit(const Class& cls) {
std::vector<json> flags;
@@ -87,12 +86,12 @@ void JsonVisitor::visit(const Class& cls) {
mv(m);
methods.emplace_back(mv.get());
}
- node_["fullname"] = cls.fullname();
- node_["source_filename"] = cls.source_filename();
- node_["access_flags"] = flags;
- node_["index"] = cls.index();
- node_["fields"] = fields;
- node_["methods"] = methods;
+ node_["fullname"] = cls.fullname();
+ node_["source_filename"] = cls.source_filename();
+ node_["access_flags"] = flags;
+ node_["index"] = cls.index();
+ node_["fields"] = fields;
+ node_["methods"] = methods;
if (const auto* parent = cls.parent()) {
node_["parent"] = parent->fullname();
@@ -108,10 +107,10 @@ void JsonVisitor::visit(const Field& field) {
JsonVisitor type_visitor;
type_visitor(*field.type());
- node_["name"] = field.name();
- node_["index"] = field.index();
- node_["is_static"] = field.is_static();
- node_["type"] = type_visitor.get();
+ node_["name"] = field.name();
+ node_["index"] = field.index();
+ node_["is_static"] = field.is_static();
+ node_["type"] = type_visitor.get();
node_["access_flags"] = flags;
}
@@ -126,48 +125,49 @@ void JsonVisitor::visit(const Method& method) {
proto_visitor(*p);
}
- node_["name"] = method.name();
- node_["code_offset"] = method.code_offset();
- node_["index"] = method.index();
- node_["is_virtual"] = method.is_virtual();
- node_["prototype"] = proto_visitor.get();
+ node_["name"] = method.name();
+ node_["code_offset"] = method.code_offset();
+ node_["index"] = method.index();
+ node_["is_virtual"] = method.is_virtual();
+ node_["prototype"] = proto_visitor.get();
node_["access_flags"] = flags;
}
void JsonVisitor::visit(const Type& type) {
node_["type"] = to_string(type.type());
- switch(type.type()) {
+ switch (type.type()) {
case Type::TYPES::CLASS:
- {
- node_["value"] = type.cls().fullname();
- break;
- }
+ {
+ node_["value"] = type.cls().fullname();
+ break;
+ }
case Type::TYPES::PRIMITIVE:
- {
- node_["value"] = Type::pretty_name(type.primitive());
+ {
+ node_["value"] = Type::pretty_name(type.primitive());
+ break;
+ }
+
+ case Type::TYPES::ARRAY:
+ {
+ const Type& uderlying_t = type.underlying_array_type();
+ node_["dim"] = type.dim();
+
+ if (uderlying_t.type() == Type::TYPES::CLASS) {
+ node_["value"] = uderlying_t.cls().fullname();
break;
}
- case Type::TYPES::ARRAY:
- {
- const Type& uderlying_t = type.underlying_array_type();
- node_["dim"] = type.dim();
-
- if (uderlying_t.type() == Type::TYPES::CLASS) {
- node_["value"] = uderlying_t.cls().fullname();
- break;
- }
-
- if (uderlying_t.type() == Type::TYPES::PRIMITIVE) {
- node_["value"] = Type::pretty_name(type.primitive());
- break;
- }
+ if (uderlying_t.type() == Type::TYPES::PRIMITIVE) {
+ node_["value"] = Type::pretty_name(type.primitive());
break;
}
+ break;
+ }
default:
- {}
+ {
+ }
}
}
@@ -182,18 +182,16 @@ void JsonVisitor::visit(const Prototype& type) {
JsonVisitor pvisitor;
pvisitor(t);
params.emplace_back(pvisitor.get());
-
}
node_["return_type"] = rtype_visitor.get();
- node_["parameters"] = params;
+ node_["parameters"] = params;
}
void JsonVisitor::visit(const MapItem& item) {
node_["offset"] = item.offset();
- node_["size"] = item.size();
- node_["type"] = to_string(item.type());
-
+ node_["size"] = item.size();
+ node_["type"] = to_string(item.type());
}
void JsonVisitor::visit(const MapList& list) {
@@ -207,7 +205,4 @@ void JsonVisitor::visit(const MapList& list) {
}
-
-} // namespace DEX
-} // namespace LIEF
-
+} // namespace LIEF::DEX
diff --git a/deps/LIEF/src/DEX/json_api.cpp b/deps/LIEF/src/DEX/json_api.cpp
index 5a57dda7330..4c20268bb66 100644
--- a/deps/LIEF/src/DEX/json_api.cpp
+++ b/deps/LIEF/src/DEX/json_api.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,12 +18,12 @@
#include "LIEF/DEX/json.hpp"
#ifdef LIEF_JSON_SUPPORT
-#include "DEX/json_internal.hpp"
+ #include "DEX/json_internal.hpp"
#endif
#include "LIEF/DEX.hpp"
-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {
std::string to_json(const Object& v) {
#ifdef LIEF_JSON_SUPPORT
@@ -37,4 +37,3 @@ std::string to_json(const Object& v) {
}
}
-} // namespace LIEF
diff --git a/deps/LIEF/src/DEX/json_internal.hpp b/deps/LIEF/src/DEX/json_internal.hpp
index f7a84c4308d..4b9cee85a75 100644
--- a/deps/LIEF/src/DEX/json_internal.hpp
+++ b/deps/LIEF/src/DEX/json_internal.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@
#include "LIEF/visibility.h"
#include "visitors/json.hpp"
-namespace LIEF {
-namespace DEX {
+
+namespace LIEF::DEX {
json to_json_obj(const Object& v);
@@ -31,19 +31,19 @@ class JsonVisitor : public LIEF::JsonVisitor {
using LIEF::JsonVisitor::JsonVisitor;
public:
- void visit(const File& file) override;
- void visit(const Header& header) override;
- void visit(const Class& cls) override;
- void visit(const Method& method) override;
- void visit(const Field& field) override;
+ void visit(const File& file) override;
+ void visit(const Header& header) override;
+ void visit(const Class& cls) override;
+ void visit(const Method& method) override;
+ void visit(const Field& field) override;
void visit(const CodeInfo& codeinfo) override;
- void visit(const Type& type) override;
- void visit(const Prototype& type) override;
- void visit(const MapItem& item) override;
- void visit(const MapList& list) override;
+ void visit(const Type& type) override;
+ void visit(const Prototype& type) override;
+ void visit(const MapItem& item) override;
+ void visit(const MapList& list) override;
};
}
-}
-#endif // LIEF_JSON_SUPPORT
+
+#endif
diff --git a/deps/LIEF/src/DEX/utils.cpp b/deps/LIEF/src/DEX/utils.cpp
index 52cdbd275de..0dbf885d419 100644
--- a/deps/LIEF/src/DEX/utils.cpp
+++ b/deps/LIEF/src/DEX/utils.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,8 +21,10 @@
#include "LIEF/DEX/utils.hpp"
#include "DEX/Structures.hpp"
-namespace LIEF {
-namespace DEX {
+#include "internal_utils.hpp"
+
+
+namespace LIEF::DEX {
inline bool is_dex(BinaryStream& stream) {
using magic_t = std::array<char, sizeof(details::magic)>;
@@ -34,7 +36,7 @@ inline bool is_dex(BinaryStream& stream) {
return false;
}
- dex_version_t version(BinaryStream& stream) {
+dex_version_t version(BinaryStream& stream) {
using version_t = std::array<char, 4>;
stream.setpos(0);
if (!is_dex(stream)) {
@@ -43,16 +45,10 @@ inline bool is_dex(BinaryStream& stream) {
stream.increment_pos(sizeof(details::magic));
if (auto ver_res = stream.peek<version_t>()) {
const auto version = *ver_res;
- const bool are_digits = std::all_of(std::begin(version), std::end(version),
- [] (char c) { return c == 0 || ::isdigit(c); });
- if (!are_digits) {
- return 0;
- }
- std::string version_str(std::begin(version), std::end(version));
- return static_cast<dex_version_t>(std::stoul(version_str));
+ return static_cast<dex_version_t>(parse_android_version(version.data(),
+ version.size()));
}
return 0;
-
}
bool is_dex(const std::string& file) {
@@ -85,4 +81,3 @@ dex_version_t version(const std::vector<uint8_t>& raw) {
}
-}
diff --git a/deps/LIEF/src/DWARF/dwarf.cpp b/deps/LIEF/src/DWARF/dwarf.cpp
index 7333a973a0d..d5bb3e0b0a4 100644
--- a/deps/LIEF/src/DWARF/dwarf.cpp
+++ b/deps/LIEF/src/DWARF/dwarf.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -12,9 +12,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
+// NOLINTBEGIN
#include "LIEF/DWARF/DebugInfo.hpp"
#include "LIEF/DWARF/CompilationUnit.hpp"
#include "LIEF/DWARF/Function.hpp"
+#include "LIEF/DWARF/LexicalBlock.hpp"
#include "LIEF/DWARF/Variable.hpp"
#include "LIEF/DWARF/Type.hpp"
#include "LIEF/DWARF/Scope.hpp"
@@ -83,10 +86,14 @@ class TypeIt {};
class Scope {};
class Editor {};
+
+class LexicalBlock {};
+class LexicalBlockIt {};
}
namespace types::details {
class Member {};
+class EnumEntry {};
}
namespace editor::details {
@@ -106,8 +113,7 @@ class StructMember {};
// DWARF/Variable.hpp
// ----------------------------------------------------------------------------
Variable::Variable(std::unique_ptr<details::Variable>) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
std::string Variable::name() const {
return "";
@@ -133,6 +139,10 @@ bool Variable::is_constexpr() const {
return true;
}
+bool Variable::is_stack_based() const {
+ return true;
+}
+
std::unique_ptr<Type> Variable::type() const {
return nullptr;
}
@@ -141,25 +151,35 @@ debug_location_t Variable::debug_location() const {
return {};
}
+std::string Variable::description() const {
+ return "";
+}
+
+std::string Variable::to_decl(const DeclOpt& /*opt*/) const {
+ return "";
+}
+
Variable::~Variable() = default;
+Variable::Iterator::Iterator() :
+ impl_(nullptr) {}
+
Variable::Iterator::Iterator(std::unique_ptr<details::VariableIt>) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
Variable::Iterator::Iterator(const Iterator&) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
-Variable::Iterator::Iterator(Iterator&&) noexcept :
- impl_(nullptr)
-{}
+Variable::Iterator& Variable::Iterator::operator=(const Iterator&) {
+ return *this;
+}
+
+Variable::Iterator::Iterator(Iterator&&) noexcept = default;
+Variable::Iterator& Variable::Iterator::operator=(Iterator&&) noexcept = default;
Variable::Iterator::~Iterator() = default;
-bool operator==(const Variable::Iterator&,
- const Variable::Iterator&)
-{
+bool operator==(const Variable::Iterator&, const Variable::Iterator&) {
return true;
}
@@ -171,7 +191,17 @@ Variable::Iterator& Variable::Iterator::operator--() {
return *this;
}
-std::unique_ptr<Variable> Variable::Iterator::operator*() const {
+void Variable::Iterator::load() const {}
+
+const Variable& Variable::Iterator::operator*() const {
+ return *cached_;
+}
+
+const Variable* Variable::Iterator::operator->() const {
+ return nullptr;
+}
+
+std::unique_ptr<Variable> Variable::Iterator::yield() {
return nullptr;
}
@@ -181,12 +211,11 @@ std::unique_ptr<Variable> Variable::Iterator::operator*() const {
Parameter::~Parameter() = default;
-Parameter::Parameter(Parameter&& other) = default;
-Parameter& Parameter::operator=(Parameter&& other) = default;
+Parameter::Parameter(Parameter&& other) noexcept = default;
+Parameter& Parameter::operator=(Parameter&& other) noexcept = default;
-Parameter::Parameter(std::unique_ptr<details::Parameter>/*impl*/) :
- impl_(nullptr)
-{}
+Parameter::Parameter(std::unique_ptr<details::Parameter> /*impl*/) :
+ impl_(nullptr) {}
Parameter::KIND Parameter::kind() const {
return KIND::UNKNOWN;
@@ -200,19 +229,26 @@ std::unique_ptr<Type> Parameter::type() const {
return nullptr;
}
-std::unique_ptr<Parameter> Parameter::create(std::unique_ptr<details::Parameter>/*impl*/) {
+std::unique_ptr<Parameter::Location> Parameter::location() const {
+ return nullptr;
+}
+
+std::unique_ptr<Parameter>
+ Parameter::create(std::unique_ptr<details::Parameter> /*impl*/) {
return nullptr;
}
// ----------------------------------------------------------------------------
// DWARF/Function.hpp
// ----------------------------------------------------------------------------
+Function::Function(std::unique_ptr<details::Function>) :
+ impl_(nullptr) {}
+
Function::~Function() = default;
Function::instructions_it Function::instructions() const {
return make_range<assembly::Instruction::Iterator>(
- assembly::Instruction::Iterator(),
- assembly::Instruction::Iterator()
+ assembly::Instruction::Iterator(), assembly::Instruction::Iterator()
);
}
@@ -264,28 +300,41 @@ Function::parameters_t Function::parameters() const {
return {};
}
+Function::lexical_blocks_it Function::lexical_blocks() const {
+ return make_empty_iterator<LexicalBlock>();
+}
+
+std::string Function::description() const {
+ return "";
+}
+
+std::string Function::to_decl(const DeclOpt& /*opt*/) const {
+ return "";
+}
Function::thrown_types_t Function::thrown_types() const {
return {};
}
+Function::Iterator::Iterator() :
+ impl_(nullptr) {}
+
Function::Iterator::Iterator(std::unique_ptr<details::FunctionIt>) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
Function::Iterator::Iterator(const Iterator&) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
+
+Function::Iterator& Function::Iterator::operator=(const Iterator&) {
+ return *this;
+}
-Function::Iterator::Iterator(Iterator&&) noexcept :
- impl_(nullptr)
-{}
+Function::Iterator::Iterator(Iterator&&) noexcept = default;
+Function::Iterator& Function::Iterator::operator=(Iterator&&) noexcept = default;
Function::Iterator::~Iterator() = default;
-bool operator==(const Function::Iterator&,
- const Function::Iterator&)
-{
+bool operator==(const Function::Iterator&, const Function::Iterator&) {
return true;
}
@@ -297,7 +346,17 @@ Function::Iterator& Function::Iterator::operator--() {
return *this;
}
-std::unique_ptr<Function> Function::Iterator::operator*() const {
+void Function::Iterator::load() const {}
+
+const Function& Function::Iterator::operator*() const {
+ return *cached_;
+}
+
+const Function* Function::Iterator::operator->() const {
+ return nullptr;
+}
+
+std::unique_ptr<Function> Function::Iterator::yield() {
return nullptr;
}
@@ -317,19 +376,21 @@ std::unique_ptr<Function> DebugInfo::find_function(uint64_t) const {
return nullptr;
}
-std::unique_ptr<Variable> DebugInfo::find_variable(uint64_t/*addr*/) const {
+std::unique_ptr<Variable> DebugInfo::find_variable(uint64_t /*addr*/) const {
return nullptr;
}
-std::unique_ptr<Variable> DebugInfo::find_variable(const std::string&/*name*/) const {
+std::unique_ptr<Variable>
+ DebugInfo::find_variable(const std::string& /*name*/) const {
return nullptr;
}
-std::unique_ptr<Type> DebugInfo::find_type(const std::string&/*name*/) const {
+std::unique_ptr<Type> DebugInfo::find_type(const std::string& /*name*/) const {
return nullptr;
}
-optional<uint64_t> DebugInfo::find_function_address(const std::string& /*name*/) const {
+optional<uint64_t>
+ DebugInfo::find_function_address(const std::string& /*name*/) const {
return nullopt();
}
@@ -341,8 +402,7 @@ DebugInfo::compilation_units_it DebugInfo::compilation_units() const {
// DWARF/CompilationUnit.hpp
// ----------------------------------------------------------------------------
CompilationUnit::CompilationUnit(std::unique_ptr<details::CompilationUnit>) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
CompilationUnit::~CompilationUnit() = default;
@@ -376,19 +436,21 @@ std::vector<range_t> CompilationUnit::ranges() const {
return {};
}
-std::unique_ptr<Function> CompilationUnit::find_function(const std::string&/*name*/) const {
+std::unique_ptr<Function>
+ CompilationUnit::find_function(const std::string& /*name*/) const {
return nullptr;
}
-std::unique_ptr<Function> CompilationUnit::find_function(uint64_t/*addr*/) const {
+std::unique_ptr<Function> CompilationUnit::find_function(uint64_t /*addr*/) const {
return nullptr;
}
-std::unique_ptr<Variable> CompilationUnit::find_variable(uint64_t/*addr*/) const {
+std::unique_ptr<Variable> CompilationUnit::find_variable(uint64_t /*addr*/) const {
return nullptr;
}
-std::unique_ptr<Variable> CompilationUnit::find_variable(const std::string&/*name*/) const {
+std::unique_ptr<Variable>
+ CompilationUnit::find_variable(const std::string& /*name*/) const {
return nullptr;
}
@@ -412,23 +474,31 @@ CompilationUnit::vars_it CompilationUnit::variables() const {
return make_empty_iterator<Variable>();
}
+std::string CompilationUnit::to_decl(const DeclOpt& /*opt*/) const {
+ return "";
+}
+
+CompilationUnit::Iterator::Iterator() :
+ impl_(nullptr) {}
+
CompilationUnit::Iterator::Iterator(std::unique_ptr<details::CompilationUnitIt>) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
CompilationUnit::Iterator::Iterator(const Iterator&) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
+
+CompilationUnit::Iterator& CompilationUnit::Iterator::operator=(const Iterator&) {
+ return *this;
+}
-CompilationUnit::Iterator::Iterator(Iterator&&) noexcept :
- impl_(nullptr)
-{}
+CompilationUnit::Iterator::Iterator(Iterator&&) noexcept = default;
+CompilationUnit::Iterator&
+ CompilationUnit::Iterator::operator=(Iterator&&) noexcept = default;
CompilationUnit::Iterator::~Iterator() = default;
bool operator==(const CompilationUnit::Iterator&,
- const CompilationUnit::Iterator&)
-{
+ const CompilationUnit::Iterator&) {
return true;
}
@@ -440,7 +510,17 @@ CompilationUnit::Iterator& CompilationUnit::Iterator::operator--() {
return *this;
}
-std::unique_ptr<CompilationUnit> CompilationUnit::Iterator::operator*() const {
+void CompilationUnit::Iterator::load() const {}
+
+const CompilationUnit& CompilationUnit::Iterator::operator*() const {
+ return *cached_;
+}
+
+const CompilationUnit* CompilationUnit::Iterator::operator->() const {
+ return cached_.get();
+}
+
+std::unique_ptr<CompilationUnit> CompilationUnit::Iterator::yield() {
return nullptr;
}
@@ -448,7 +528,7 @@ std::unique_ptr<CompilationUnit> CompilationUnit::Iterator::operator*() const {
// DWARF/Type.hpp
// ----------------------------------------------------------------------------
-std::unique_ptr<Type> Type::create(std::unique_ptr<details::Type>/* impl*/) {
+std::unique_ptr<Type> Type::create(std::unique_ptr<details::Type> /* impl*/) {
return nullptr;
}
@@ -472,33 +552,41 @@ debug_location_t Type::location() const {
return {};
}
+std::string Type::to_decl(const DeclOpt& /*opt*/) const {
+ return "";
+}
+
+Type::Type(Type&&) noexcept = default;
+
+Type& Type::operator=(Type&&) noexcept = default;
+
Type::Type(std::unique_ptr<details::Type> impl) :
- impl_(std::move(impl))
-{}
+ impl_(std::move(impl)) {}
Type::Type(details::Type& impl) :
- impl_(impl)
-{}
+ impl_(impl) {}
Type::~Type() = default;
+Type::Iterator::Iterator() :
+ impl_(nullptr) {}
+
Type::Iterator::Iterator(std::unique_ptr<details::TypeIt>) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
Type::Iterator::Iterator(const Iterator&) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
+
+Type::Iterator& Type::Iterator::operator=(const Iterator&) {
+ return *this;
+}
-Type::Iterator::Iterator(Iterator&&) noexcept :
- impl_(nullptr)
-{}
+Type::Iterator::Iterator(Iterator&&) noexcept = default;
+Type::Iterator& Type::Iterator::operator=(Iterator&&) noexcept = default;
Type::Iterator::~Iterator() = default;
-bool operator==(const Type::Iterator&,
- const Type::Iterator&)
-{
+bool operator==(const Type::Iterator&, const Type::Iterator&) {
return true;
}
@@ -510,7 +598,17 @@ Type::Iterator& Type::Iterator::operator--() {
return *this;
}
-std::unique_ptr<Type> Type::Iterator::operator*() const {
+void Type::Iterator::load() const {}
+
+const Type& Type::Iterator::operator*() const {
+ return *cached_;
+}
+
+const Type* Type::Iterator::operator->() const {
+ return cached_.get();
+}
+
+std::unique_ptr<Type> Type::Iterator::yield() {
return nullptr;
}
// ----------------------------------------------------------------------------
@@ -518,8 +616,7 @@ std::unique_ptr<Type> Type::Iterator::operator*() const {
// ----------------------------------------------------------------------------
Scope::~Scope() = default;
Scope::Scope(std::unique_ptr<details::Scope> impl) :
- impl_(std::move(impl))
-{}
+ impl_(std::move(impl)) {}
std::string Scope::name() const {
return "";
@@ -533,10 +630,96 @@ Scope::TYPE Scope::type() const {
return TYPE::UNKNOWN;
}
-std::string Scope::chained(const std::string&/* sep */) const {
+std::string Scope::chained(const std::string& /* sep */) const {
return "";
}
+
+// ----------------------------------------------------------------------------
+// DWARF/LexicalBlock.hpp
+// ----------------------------------------------------------------------------
+LexicalBlock::LexicalBlock(std::unique_ptr<details::LexicalBlock>) :
+ impl_(nullptr) {}
+
+LexicalBlock::~LexicalBlock() = default;
+
+std::string LexicalBlock::name() const {
+ return "";
+}
+
+std::string LexicalBlock::description() const {
+ return "";
+}
+
+LexicalBlock::sub_blocks_it LexicalBlock::sub_blocks() const {
+ return make_empty_iterator<LexicalBlock>();
+}
+
+optional<uint64_t> LexicalBlock::addr() const {
+ return nullopt();
+}
+
+uint64_t LexicalBlock::size() const {
+ return 0;
+}
+
+optional<uint64_t> LexicalBlock::low_pc() const {
+ return nullopt();
+}
+
+optional<uint64_t> LexicalBlock::high_pc() const {
+ return nullopt();
+}
+
+std::vector<range_t> LexicalBlock::ranges() const {
+ return {};
+}
+
+LexicalBlock::Iterator::Iterator() :
+ impl_(nullptr) {}
+
+LexicalBlock::Iterator::Iterator(std::unique_ptr<details::LexicalBlockIt>) :
+ impl_(nullptr) {}
+
+LexicalBlock::Iterator::Iterator(const Iterator&) :
+ impl_(nullptr) {}
+
+LexicalBlock::Iterator& LexicalBlock::Iterator::operator=(const Iterator&) {
+ return *this;
+}
+
+LexicalBlock::Iterator::Iterator(Iterator&&) noexcept = default;
+LexicalBlock::Iterator&
+ LexicalBlock::Iterator::operator=(Iterator&&) noexcept = default;
+
+LexicalBlock::Iterator::~Iterator() = default;
+
+bool operator==(const LexicalBlock::Iterator&, const LexicalBlock::Iterator&) {
+ return true;
+}
+
+LexicalBlock::Iterator& LexicalBlock::Iterator::operator++() {
+ return *this;
+}
+
+LexicalBlock::Iterator& LexicalBlock::Iterator::operator--() {
+ return *this;
+}
+
+void LexicalBlock::Iterator::load() const {}
+
+const LexicalBlock& LexicalBlock::Iterator::operator*() const {
+ return *cached_;
+}
+
+const LexicalBlock* LexicalBlock::Iterator::operator->() const {
+ return nullptr;
+}
+
+std::unique_ptr<LexicalBlock> LexicalBlock::Iterator::yield() {
+ return nullptr;
+}
+
namespace types {
// ----------------------------------------------------------------------------
// DWARF/types/ClassLike.hpp
@@ -553,11 +736,11 @@ Packed::~Packed() = default;
ClassLike::Member::~Member() = default;
ClassLike::Member::Member(std::unique_ptr<details::Member> impl) :
- impl_(std::move(impl))
-{}
+ impl_(std::move(impl)) {}
ClassLike::Member::Member(Member&& other) noexcept = default;
-ClassLike::Member& ClassLike::Member::operator=(ClassLike::Member&& other) noexcept = default;
+ClassLike::Member&
+ ClassLike::Member::operator=(ClassLike::Member&& other) noexcept = default;
result<uint64_t> ClassLike::Member::offset() const {
return make_error_code(lief_errors::not_implemented);
@@ -567,6 +750,10 @@ result<uint64_t> ClassLike::Member::bit_offset() const {
return make_error_code(lief_errors::not_implemented);
}
+result<uint64_t> ClassLike::Member::bit_size() const {
+ return make_error_code(lief_errors::not_implemented);
+}
+
bool ClassLike::Member::is_external() const {
return false;
}
@@ -575,7 +762,7 @@ bool ClassLike::Member::is_declaration() const {
return false;
}
-std::unique_ptr<Type>ClassLike::Member::type() const {
+std::unique_ptr<Type> ClassLike::Member::type() const {
return nullptr;
}
@@ -591,7 +778,8 @@ ClassLike::functions_it ClassLike::functions() const {
return make_empty_iterator<Function>();
}
-std::unique_ptr<ClassLike::Member> ClassLike::find_member(uint64_t/*offset*/) const {
+std::unique_ptr<ClassLike::Member>
+ ClassLike::find_member(uint64_t /*offset*/) const {
return nullptr;
}
@@ -657,27 +845,55 @@ const Type* Atomic::underlying_type() const {
// ----------------------------------------------------------------------------
// DWARF/types/Coarray.hpp
// ----------------------------------------------------------------------------
-Coarray::~Coarray()= default;
+Coarray::~Coarray() = default;
// ----------------------------------------------------------------------------
// DWARF/types/Dynamic.hpp
// ----------------------------------------------------------------------------
-Dynamic::~Dynamic()= default;
+Dynamic::~Dynamic() = default;
// ----------------------------------------------------------------------------
// DWARF/types/Enum.hpp
// ----------------------------------------------------------------------------
-Enum::~Enum()= default;
+Enum::Entry::Entry(Entry&& other) noexcept = default;
+Enum::Entry& Enum::Entry::operator=(Entry&& other) noexcept = default;
+
+Enum::Entry::~Entry() = default;
+
+Enum::Entry::Entry(std::unique_ptr<details::EnumEntry> impl) :
+ impl_(std::move(impl)) {}
+
+std::string Enum::Entry::name() const {
+ return "";
+}
+
+optional<int64_t> Enum::Entry::value() const {
+ return nullopt();
+}
+
+std::vector<Enum::Entry> Enum::entries() const {
+ return {};
+}
+
+optional<Enum::Entry> Enum::find_entry(int64_t /*value*/) const {
+ return nullopt();
+}
+
+const Type* Enum::underlying_type() const {
+ return nullptr;
+}
+
+Enum::~Enum() = default;
// ----------------------------------------------------------------------------
// DWARF/types/File.hpp
// ----------------------------------------------------------------------------
-File::~File()= default;
+File::~File() = default;
// ----------------------------------------------------------------------------
// DWARF/types/Immutable.hpp
// ----------------------------------------------------------------------------
-Immutable::~Immutable()= default;
+Immutable::~Immutable() = default;
const Type* Immutable::underlying_type() const {
return nullptr;
@@ -686,12 +902,12 @@ const Type* Immutable::underlying_type() const {
// ----------------------------------------------------------------------------
// DWARF/types/Interface.hpp
// ----------------------------------------------------------------------------
-Interface::~Interface()= default;
+Interface::~Interface() = default;
// ----------------------------------------------------------------------------
// DWARF/types/PointerToMember.hpp
// ----------------------------------------------------------------------------
-PointerToMember::~PointerToMember()= default;
+PointerToMember::~PointerToMember() = default;
const Type* PointerToMember::underlying_type() const {
return nullptr;
@@ -704,7 +920,7 @@ std::unique_ptr<Type> PointerToMember::containing_type() const {
// ----------------------------------------------------------------------------
// DWARF/types/RValueReference.hpp
// ----------------------------------------------------------------------------
-RValueReference::~RValueReference()= default;
+RValueReference::~RValueReference() = default;
const Type* RValueReference::underlying_type() const {
return nullptr;
@@ -713,7 +929,7 @@ const Type* RValueReference::underlying_type() const {
// ----------------------------------------------------------------------------
// DWARF/types/Reference.hpp
// ----------------------------------------------------------------------------
-Reference::~Reference()= default;
+Reference::~Reference() = default;
const Type* Reference::underlying_type() const {
return nullptr;
@@ -722,7 +938,7 @@ const Type* Reference::underlying_type() const {
// ----------------------------------------------------------------------------
// DWARF/types/Restrict.hpp
// ----------------------------------------------------------------------------
-Restrict::~Restrict()= default;
+Restrict::~Restrict() = default;
const Type* Restrict::underlying_type() const {
return nullptr;
@@ -731,7 +947,7 @@ const Type* Restrict::underlying_type() const {
// ----------------------------------------------------------------------------
// DWARF/types/SetTy.hpp
// ----------------------------------------------------------------------------
-SetTy::~SetTy()= default;
+SetTy::~SetTy() = default;
const Type* SetTy::underlying_type() const {
return nullptr;
@@ -740,7 +956,7 @@ const Type* SetTy::underlying_type() const {
// ----------------------------------------------------------------------------
// DWARF/types/Shared.hpp
// ----------------------------------------------------------------------------
-Shared::~Shared()= default;
+Shared::~Shared() = default;
const Type* Shared::underlying_type() const {
return nullptr;
@@ -749,12 +965,16 @@ const Type* Shared::underlying_type() const {
// ----------------------------------------------------------------------------
// DWARF/types/StringTy.hpp
// ----------------------------------------------------------------------------
-StringTy::~StringTy()= default;
+StringTy::~StringTy() = default;
// ----------------------------------------------------------------------------
// DWARF/types/Subroutine.hpp
// ----------------------------------------------------------------------------
-Subroutine::~Subroutine()= default;
+Subroutine::~Subroutine() = default;
+
+std::unique_ptr<Type> Subroutine::return_type() const {
+ return {};
+}
Subroutine::parameters_t Subroutine::parameters() const {
return {};
@@ -763,7 +983,7 @@ Subroutine::parameters_t Subroutine::parameters() const {
// ----------------------------------------------------------------------------
// DWARF/types/TemplateAlias.hpp
// ----------------------------------------------------------------------------
-TemplateAlias::~TemplateAlias()= default;
+TemplateAlias::~TemplateAlias() = default;
const Type* TemplateAlias::underlying_type() const {
return nullptr;
@@ -776,7 +996,7 @@ TemplateAlias::parameters_t TemplateAlias::parameters() const {
// ----------------------------------------------------------------------------
// DWARF/types/Thrown.hpp
// ----------------------------------------------------------------------------
-Thrown::~Thrown()= default;
+Thrown::~Thrown() = default;
const Type* Thrown::underlying_type() const {
return nullptr;
@@ -785,7 +1005,7 @@ const Type* Thrown::underlying_type() const {
// ----------------------------------------------------------------------------
// DWARF/types/Volatile.hpp
// ----------------------------------------------------------------------------
-Volatile::~Volatile()= default;
+Volatile::~Volatile() = default;
const Type* Volatile::underlying_type() const {
return nullptr;
@@ -798,16 +1018,19 @@ const Type* Volatile::underlying_type() const {
// DWARF/Editor.hpp
// ----------------------------------------------------------------------------
Editor::Editor(std::unique_ptr<details::Editor> impl) :
- impl_(std::move(impl))
-{}
+ impl_(std::move(impl)) {}
-Editor::~Editor()= default;
+Editor::~Editor() = default;
std::unique_ptr<Editor> Editor::from_binary(LIEF::Binary& /*bin*/) {
logging::needs_lief_extended();
return nullptr;
}
+std::unique_ptr<Editor> Editor::create(FORMAT /*fmt*/, ARCH /*arch*/) {
+ logging::needs_lief_extended();
+ return nullptr;
+}
std::unique_ptr<editor::CompilationUnit> Editor::create_compilation_unit() {
return nullptr;
@@ -822,23 +1045,25 @@ namespace editor {
// DWARF/editor/CompilationUnit.hpp
// ----------------------------------------------------------------------------
CompilationUnit::CompilationUnit(std::unique_ptr<details::CompilationUnit> impl) :
- impl_(std::move(impl))
-{}
+ impl_(std::move(impl)) {}
CompilationUnit& CompilationUnit::set_producer(const std::string&) {
return *this;
}
-std::unique_ptr<Function> CompilationUnit::create_function(const std::string&/*name*/) {
+std::unique_ptr<Function>
+ CompilationUnit::create_function(const std::string& /*name*/) {
return nullptr;
}
-std::unique_ptr<Variable> CompilationUnit::create_variable(const std::string&/*name*/) {
+std::unique_ptr<Variable>
+ CompilationUnit::create_variable(const std::string& /*name*/) {
return nullptr;
}
-std::unique_ptr<Type> CompilationUnit::create_generic_type(const std::string& /*name*/) {
+std::unique_ptr<Type>
+ CompilationUnit::create_generic_type(const std::string& /*name*/) {
return nullptr;
}
@@ -846,27 +1071,24 @@ std::unique_ptr<EnumType> CompilationUnit::create_enum(const std::string&) {
return nullptr;
}
-std::unique_ptr<TypeDef>
- CompilationUnit::create_typedef(const std::string&, const Type&)
-{
+std::unique_ptr<TypeDef> CompilationUnit::create_typedef(const std::string&,
+ const Type&) {
return nullptr;
}
-std::unique_ptr<StructType> CompilationUnit::create_structure(
- const std::string&, StructType::TYPE)
-{
+std::unique_ptr<StructType> CompilationUnit::create_structure(const std::string&,
+ StructType::TYPE) {
return nullptr;
}
-std::unique_ptr<BaseType>
- CompilationUnit::create_base_type(const std::string&, size_t, BaseType::ENCODING)
-{
+std::unique_ptr<BaseType> CompilationUnit::create_base_type(const std::string&,
+ size_t,
+ BaseType::ENCODING) {
return nullptr;
}
std::unique_ptr<FunctionType>
- CompilationUnit::create_function_type(const std::string&)
-{
+ CompilationUnit::create_function_type(const std::string&) {
return nullptr;
}
@@ -874,9 +1096,8 @@ std::unique_ptr<Type> CompilationUnit::create_void_type() {
return nullptr;
}
-std::unique_ptr<ArrayType>
- CompilationUnit::create_array(const std::string&, const Type&, size_t)
-{
+std::unique_ptr<ArrayType> CompilationUnit::create_array(const std::string&,
+ const Type&, size_t) {
return nullptr;
}
@@ -886,8 +1107,7 @@ CompilationUnit::~CompilationUnit() = default;
// DWARF/editor/Variable.hpp
// ----------------------------------------------------------------------------
Variable::Variable(std::unique_ptr<details::Variable> impl) :
- impl_(std::move(impl))
-{}
+ impl_(std::move(impl)) {}
Variable& Variable::set_external() {
return *this;
@@ -905,14 +1125,17 @@ Variable& Variable::set_type(const Type&) {
return *this;
}
+Variable& Variable::add_description(const std::string& /*description*/) {
+ return *this;
+}
+
Variable::~Variable() = default;
// ----------------------------------------------------------------------------
// DWARF/editor/Function.hpp
// ----------------------------------------------------------------------------
Function::Function(std::unique_ptr<details::Function> impl) :
- impl_(std::move(impl))
-{}
+ impl_(std::move(impl)) {}
Function& Function::set_address(uint64_t /*addr*/) {
return *this;
@@ -930,14 +1153,16 @@ Function& Function::set_external() {
return *this;
}
+Function& Function::add_description(const std::string& /*description*/) {
+ return *this;
+}
Function& Function::set_return_type(const Type&) {
return *this;
}
-std::unique_ptr<Function::Parameter>
- Function::add_parameter(const std::string&, const Type&)
-{
+std::unique_ptr<Function::Parameter> Function::add_parameter(const std::string&,
+ const Type&) {
return nullptr;
}
@@ -945,30 +1170,60 @@ std::unique_ptr<Variable> Function::create_stack_variable(const std::string&) {
return nullptr;
}
-std::unique_ptr<Function::LexicalBlock> Function::add_lexical_block(uint64_t, uint64_t) {
+std::unique_ptr<Function::LexicalBlock> Function::add_lexical_block(uint64_t,
+ uint64_t) {
return nullptr;
}
-std::unique_ptr<Function::Label> Function::add_label(uint64_t, const std::string&) {
+std::unique_ptr<Function::Label> Function::add_label(uint64_t,
+ const std::string&) {
return nullptr;
}
Function::Parameter::Parameter(std::unique_ptr<details::FunctionParameter> impl) :
- impl_(std::move(impl))
-{}
+ impl_(std::move(impl)) {}
+
+Function::Parameter&
+ Function::Parameter::assign_register(const std::string& /*name*/) {
+ return *this;
+}
+
+Function::Parameter& Function::Parameter::assign_register(uint64_t /*reg*/) {
+ return *this;
+}
Function::Parameter::~Parameter() = default;
-Function::LexicalBlock::LexicalBlock(std::unique_ptr<details::FunctionLexicalBlock> impl) :
- impl_(std::move(impl))
-{}
+Function::LexicalBlock::LexicalBlock(
+ std::unique_ptr<details::FunctionLexicalBlock> impl
+) :
+ impl_(std::move(impl)) {}
Function::LexicalBlock::~LexicalBlock() = default;
+std::unique_ptr<Function::LexicalBlock>
+ Function::LexicalBlock::add_block(uint64_t /*start*/, uint64_t /*end*/) {
+ return nullptr;
+}
+
+std::unique_ptr<Function::LexicalBlock>
+ Function::LexicalBlock::add_block(const std::vector<range_t>& /*ranges*/) {
+ return nullptr;
+}
+
+Function::LexicalBlock&
+ Function::LexicalBlock::add_description(const std::string& /*name*/) {
+ return *this;
+}
+
+Function::LexicalBlock&
+ Function::LexicalBlock::add_name(const std::string& /*name*/) {
+ return *this;
+}
+
Function::Label::Label(std::unique_ptr<details::FunctionLabel> impl) :
- impl_(std::move(impl))
-{}
+ impl_(std::move(impl)) {}
Function::Label::~Label() = default;
@@ -979,8 +1234,7 @@ Function::~Function() = default;
// ----------------------------------------------------------------------------
Type::Type(std::unique_ptr<details::Type> impl) :
- impl_(std::move(impl))
-{}
+ impl_(std::move(impl)) {}
std::unique_ptr<Type> Type::create(std::unique_ptr<details::Type> /*impl*/) {
return nullptr;
@@ -996,51 +1250,53 @@ Type::~Type() = default;
// ----------------------------------------------------------------------------
// DWARF/editor/PointerType.hpp
// ----------------------------------------------------------------------------
-bool PointerType::classof(const Type */*type*/) {
+bool PointerType::classof(const Type* /*type*/) {
return false;
}
// ----------------------------------------------------------------------------
// DWARF/editor/EnumType.hpp
// ----------------------------------------------------------------------------
-bool EnumType::classof(const Type */*type*/) {
+bool EnumType::classof(const Type* /*type*/) {
return false;
}
+EnumType& EnumType::set_underlying_type(const Type& /*type*/) {
+ return *this;
+}
+
EnumType& EnumType::set_size(uint64_t /*size*/) {
return *this;
}
-std::unique_ptr<EnumType::Value>
- EnumType::add_value(const std::string& /*name*/, int64_t /*value*/)
-{
+std::unique_ptr<EnumType::Value> EnumType::add_value(const std::string& /*name*/,
+ int64_t /*value*/) {
return nullptr;
}
EnumType::Value::Value(std::unique_ptr<details::EnumValue> impl) :
- impl_(std::move(impl))
-{}
+ impl_(std::move(impl)) {}
EnumType::Value::~Value() = default;
// ----------------------------------------------------------------------------
// DWARF/editor/BaseType.hpp
// ----------------------------------------------------------------------------
-bool BaseType::classof(const Type */*type*/) {
+bool BaseType::classof(const Type* /*type*/) {
return false;
}
// ----------------------------------------------------------------------------
// DWARF/editor/ArrayType.hpp
// ----------------------------------------------------------------------------
-bool ArrayType::classof(const Type */*type*/) {
+bool ArrayType::classof(const Type* /*type*/) {
return false;
}
// ----------------------------------------------------------------------------
// DWARF/editor/FunctionType.hpp
// ----------------------------------------------------------------------------
-bool FunctionType::classof(const Type */*type*/) {
+bool FunctionType::classof(const Type* /*type*/) {
return false;
}
@@ -1049,28 +1305,28 @@ FunctionType& FunctionType::set_return_type(const Type& /*type*/) {
}
std::unique_ptr<FunctionType::Parameter>
- FunctionType::add_parameter(const Type& /*type*/)
-{
+ FunctionType::add_parameter(const Type& /*type*/) {
return nullptr;
}
-FunctionType::Parameter::Parameter(std::unique_ptr<details::FunctionTyParameter> impl) :
- impl_(std::move(impl))
-{}
+FunctionType::Parameter::Parameter(
+ std::unique_ptr<details::FunctionTyParameter> impl
+) :
+ impl_(std::move(impl)) {}
FunctionType::Parameter::~Parameter() = default;
// ----------------------------------------------------------------------------
// DWARF/editor/TypeDef.hpp
// ----------------------------------------------------------------------------
-bool TypeDef::classof(const Type */*type*/) {
+bool TypeDef::classof(const Type* /*type*/) {
return false;
}
// ----------------------------------------------------------------------------
// DWARF/editor/StructType.hpp
// ----------------------------------------------------------------------------
-bool StructType::classof(const Type */*type*/) {
+bool StructType::classof(const Type* /*type*/) {
return false;
}
@@ -1078,19 +1334,24 @@ StructType& StructType::set_size(uint64_t /*size*/) {
return *this;
}
-/// Add a member to the current struct-like
std::unique_ptr<StructType::Member>
- StructType::add_member(const std::string& /*name*/, const Type& /*type*/,
- int64_t /*offset*/)
-{
+ StructType::add_member(const std::string& /*name*/, const Type& /*type*/,
+ int64_t /*offset*/) {
+ return nullptr;
+}
+
+std::unique_ptr<StructType::Member>
+ StructType::add_bitfield(const std::string& /*name*/, const Type& /*type*/,
+ uint64_t /*bitsize*/, int64_t /*bitoffset*/) {
return nullptr;
}
StructType::Member::Member(std::unique_ptr<details::StructMember> impl) :
- impl_(std::move(impl))
-{}
+ impl_(std::move(impl)) {}
StructType::Member::~Member() = default;
}
+
+// NOLINTEND
}
diff --git a/deps/LIEF/src/DebugDeclOpt.cpp b/deps/LIEF/src/DebugDeclOpt.cpp
new file mode 100644
index 00000000000..35cc0a9ce6b
--- /dev/null
+++ b/deps/LIEF/src/DebugDeclOpt.cpp
@@ -0,0 +1,97 @@
+/* Copyright 2022 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "LIEF/DebugDeclOpt.hpp"
+
+namespace LIEF {
+namespace details {
+class DeclOpt {};
+}
+
+DeclOpt::DeclOpt() = default;
+DeclOpt::DeclOpt(const DeclOpt&) {}
+
+// NOLINTNEXTLINE
+DeclOpt& DeclOpt::operator=(const DeclOpt&) {
+ return *this;
+}
+DeclOpt::DeclOpt(DeclOpt&&) noexcept = default;
+DeclOpt& DeclOpt::operator=(DeclOpt&&) noexcept = default;
+DeclOpt::~DeclOpt() = default;
+
+uint32_t DeclOpt::indentation() const {
+ return 0;
+}
+DeclOpt& DeclOpt::indentation(uint32_t) {
+ return *this;
+}
+
+bool DeclOpt::is_cpp() const {
+ return false;
+}
+DeclOpt& DeclOpt::is_cpp(bool) {
+ return *this;
+}
+
+bool DeclOpt::show_extended_annotations() const {
+ return false;
+}
+DeclOpt& DeclOpt::show_extended_annotations(bool) {
+ return *this;
+}
+
+bool DeclOpt::include_types() const {
+ return false;
+}
+DeclOpt& DeclOpt::include_types(bool) {
+ return *this;
+}
+
+bool DeclOpt::include_locals() const {
+ return false;
+}
+DeclOpt& DeclOpt::include_locals(bool) {
+ return *this;
+}
+
+bool DeclOpt::desugar() const {
+ return false;
+}
+DeclOpt& DeclOpt::desugar(bool) {
+ return *this;
+}
+
+bool DeclOpt::show_field_offsets() const {
+ return false;
+}
+DeclOpt& DeclOpt::show_field_offsets(bool) {
+ return *this;
+}
+
+const DeclOpt::type_aliases_t& DeclOpt::type_aliases() const {
+ static const type_aliases_t empty;
+ return empty;
+}
+
+// NOLINTNEXTLINE
+DeclOpt& DeclOpt::type_aliases(type_aliases_t) {
+ return *this;
+}
+
+// NOLINTNEXTLINE
+DeclOpt& DeclOpt::add_type_alias(std::string, std::string) {
+ return *this;
+}
+
+}
diff --git a/deps/LIEF/src/ELF/Binary.cpp b/deps/LIEF/src/ELF/Binary.cpp
index 7196e3ccff0..5ce58838d2c 100644
--- a/deps/LIEF/src/ELF/Binary.cpp
+++ b/deps/LIEF/src/ELF/Binary.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,7 +22,6 @@
#include "LIEF/DWARF/enums.hpp"
#include "logging.hpp"
-#include "paging.hpp"
#include "LIEF/utils.hpp"
@@ -35,9 +34,6 @@
#include "LIEF/ELF/DynamicEntryLibrary.hpp"
#include "LIEF/ELF/DynamicEntryArray.hpp"
#include "LIEF/ELF/DynamicEntryFlags.hpp"
-#include "LIEF/ELF/DynamicEntryRpath.hpp"
-#include "LIEF/ELF/DynamicEntryRunPath.hpp"
-#include "LIEF/ELF/DynamicSharedObject.hpp"
#include "LIEF/ELF/Note.hpp"
#include "LIEF/ELF/Builder.hpp"
#include "LIEF/ELF/Section.hpp"
@@ -59,16 +55,17 @@
#include "Object.tcc"
#include "internal_utils.hpp"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
inline size_t get_relocation_sizeof(const Binary& bin, const Relocation& R) {
const bool is64 = bin.type() == Header::CLASS::ELF64;
if (R.is_rel() || R.is_rela()) {
- return is64 ?
- (R.is_rela() ? sizeof(details::Elf64_Rela) : sizeof(details::Elf64_Rel)) :
- (R.is_rela() ? sizeof(details::Elf32_Rela) : sizeof(details::Elf32_Rel));
+ return is64 ? (R.is_rela() ? sizeof(details::Elf64_Rela) :
+ sizeof(details::Elf64_Rel)) :
+ (R.is_rela() ? sizeof(details::Elf32_Rela) :
+ sizeof(details::Elf32_Rel));
}
LIEF_WARN("get_relocation_sizeof() only supports REL/RELA encoding");
return size_t(-1);
@@ -76,8 +73,7 @@ inline size_t get_relocation_sizeof(const Binary& bin, const Relocation& R) {
Binary::Binary() :
LIEF::Binary(LIEF::Binary::FORMATS::ELF),
- sizing_info_{std::make_unique<sizing_info_t>()}
-{}
+ sizing_info_{std::make_unique<sizing_info_t>()} {}
size_t Binary::hash(const std::string& name) {
if (type_ == Header::CLASS::ELF32) {
@@ -89,11 +85,8 @@ size_t Binary::hash(const std::string& name) {
LIEF::Binary::sections_t Binary::get_abstract_sections() {
LIEF::Binary::sections_t sections;
sections.reserve(sections_.size());
- std::transform(std::begin(sections_), std::end(sections_),
- std::back_inserter(sections),
- [] (const std::unique_ptr<Section>& s) {
- return s.get();
- });
+ std::transform(sections_.begin(), sections_.end(), std::back_inserter(sections),
+ [](const std::unique_ptr<Section>& s) { return s.get(); });
return sections;
}
@@ -101,7 +94,8 @@ LIEF::Binary::functions_t Binary::get_abstract_exported_functions() const {
functions_t result;
for (const Symbol& symbol : exported_symbols()) {
if (symbol.type() == Symbol::TYPE::FUNC) {
- result.emplace_back(symbol.name(), symbol.value(), Function::FLAGS::EXPORTED);
+ result.emplace_back(symbol.name(), symbol.value(),
+ Function::FLAGS::EXPORTED);
}
}
return result;
@@ -112,7 +106,8 @@ LIEF::Binary::functions_t Binary::get_abstract_imported_functions() const {
functions_t result;
for (const Symbol& symbol : imported_symbols()) {
if (symbol.type() == Symbol::TYPE::FUNC) {
- result.emplace_back(symbol.name(), symbol.value(), Function::FLAGS::IMPORTED);
+ result.emplace_back(symbol.name(), symbol.value(),
+ Function::FLAGS::IMPORTED);
}
}
return result;
@@ -130,19 +125,17 @@ std::vector<std::string> Binary::get_abstract_imported_libraries() const {
}
-
DynamicEntry& Binary::add(const DynamicEntry& entry) {
std::unique_ptr<DynamicEntry> new_one = entry.clone();
- const auto it_new_place = std::find_if(std::begin(dynamic_entries_), std::end(dynamic_entries_),
- [&new_one] (const std::unique_ptr<DynamicEntry>& e) {
- return e->tag() == new_one->tag() || e->tag() == DynamicEntry::TAG::DT_NULL_;
- });
-
- auto* ptr = new_one.get();
- dynamic_entries_.insert(it_new_place, std::move(new_one));
- return *ptr;
+ const auto it_new_place =
+ std::find_if(dynamic_entries_.begin(), dynamic_entries_.end(),
+ [&new_one](const std::unique_ptr<DynamicEntry>& e) {
+ return e->tag() == new_one->tag() ||
+ e->tag() == DynamicEntry::TAG::DT_NULL_;
+ });
+ return **dynamic_entries_.insert(it_new_place, std::move(new_one));
}
@@ -152,14 +145,14 @@ Note& Binary::add(const Note& note) {
}
void Binary::remove(const DynamicEntry& entry) {
- const auto it_entry = std::find_if(std::begin(dynamic_entries_), std::end(dynamic_entries_),
- [&entry] (const std::unique_ptr<DynamicEntry>& e) {
- return e.get() == &entry;
- });
-
- if (it_entry == std::end(dynamic_entries_)) {
- LIEF_WARN("Can't find {} in the dynamic table. This entry can't be removed",
- to_string(entry));
+ const auto it_entry =
+ std::find_if(dynamic_entries_.begin(), dynamic_entries_.end(),
+ [&entry](const std::unique_ptr<DynamicEntry>& e) {
+ return e.get() == &entry;
+ });
+
+ if (it_entry == dynamic_entries_.end()) {
+ LIEF_WARN("{} not found in dynamic table, cannot remove", to_string(entry));
return;
}
dynamic_entries_.erase(it_entry);
@@ -168,30 +161,35 @@ void Binary::remove(const DynamicEntry& entry) {
void Binary::remove(DynamicEntry::TAG tag) {
dynamic_entries_.erase(
std::remove_if(dynamic_entries_.begin(), dynamic_entries_.end(),
- [tag] (const std::unique_ptr<DynamicEntry>& E) { return E->tag() == tag; }
- ), dynamic_entries_.end());
+ [tag](const std::unique_ptr<DynamicEntry>& E) {
+ return E->tag() == tag;
+ }),
+ dynamic_entries_.end()
+ );
}
void Binary::remove(const Section& section, bool clear) {
- const auto it_section = std::find_if(std::begin(sections_), std::end(sections_),
- [§ion] (const std::unique_ptr<Section>& s) {
- return *s == section;
- });
-
- if (it_section == std::end(sections_)) {
- LIEF_WARN("Can't find the section '{}'. It can't be removed!", section.name());
+ const auto it_section =
+ std::find_if(sections_.begin(), sections_.end(),
+ [§ion](const std::unique_ptr<Section>& s) {
+ return *s == section;
+ });
+
+ if (it_section == sections_.end()) {
+ LIEF_WARN("Section '{}' not found, cannot remove", section.name());
return;
}
- size_t idx = std::distance(std::begin(sections_), it_section);
+ size_t idx = std::distance(sections_.begin(), it_section);
Section* s = it_section->get();
// Remove from segments:
for (std::unique_ptr<Segment>& segment : segments_) {
auto& sections = segment->sections_;
- sections.erase(std::remove_if(std::begin(sections), std::end(sections),
- [&s] (const Section* sec) { return *sec == *s; }), std::end(sections));
+ sections.erase(std::remove_if(sections.begin(), sections.end(),
+ [&s](const Section* sec) { return *sec == *s; }),
+ sections.end());
}
// Patch Section link
@@ -225,13 +223,12 @@ void Binary::remove(const Section& section, bool clear) {
}
void Binary::remove(const Note& note) {
- const auto it_note = std::find_if(std::begin(notes_), std::end(notes_),
- [¬e] (const std::unique_ptr<Note>& n) {
- return note == *n;
- });
+ const auto it_note =
+ std::find_if(notes_.begin(), notes_.end(),
+ [¬e](const std::unique_ptr<Note>& n) { return note == *n; });
- if (it_note == std::end(notes_)) {
- LIEF_WARN("Can't find the note with the type {}. It can't be removed!",
+ if (it_note == notes_.end()) {
+ LIEF_WARN("Note type {} not found, cannot remove",
to_string(static_cast<Note::TYPE>(note.type())));
return;
}
@@ -239,7 +236,7 @@ void Binary::remove(const Note& note) {
}
void Binary::remove(Note::TYPE type) {
- for (auto it = std::begin(notes_); it != std::end(notes_);) {
+ for (auto it = notes_.begin(); it != notes_.end();) {
std::unique_ptr<Note>& n = *it;
if (n->type() == type) {
n.reset(nullptr);
@@ -257,10 +254,9 @@ int64_t Binary::symtab_idx(const std::string& name) const {
}
auto it = std::find_if(symtab_symbols_.begin(), symtab_symbols_.end(),
- [&name] (const std::unique_ptr<Symbol>& S) {
- return S->name() == name;
- }
- );
+ [&name](const std::unique_ptr<Symbol>& S) {
+ return S->name() == name;
+ });
if (it == symtab_symbols_.end()) {
return -1;
@@ -283,10 +279,9 @@ int64_t Binary::dynsym_idx(const std::string& name) const {
}
auto it = std::find_if(dynamic_symbols_.begin(), dynamic_symbols_.end(),
- [&name] (const std::unique_ptr<Symbol>& S) {
- return S->name() == name;
- }
- );
+ [&name](const std::unique_ptr<Symbol>& S) {
+ return S->name() == name;
+ });
if (it == dynamic_symbols_.end()) {
return -1;
}
@@ -297,12 +292,13 @@ int64_t Binary::dynsym_idx(const std::string& name) const {
Symbol& Binary::export_symbol(const Symbol& symbol) {
// Check if the symbol is in the dynamic symbol table
- const auto it_symbol = std::find_if(std::begin(dynamic_symbols_), std::end(dynamic_symbols_),
- [&symbol] (const std::unique_ptr<Symbol>& s) {
- return *s == symbol;
- });
+ const auto it_symbol =
+ std::find_if(dynamic_symbols_.begin(), dynamic_symbols_.end(),
+ [&symbol](const std::unique_ptr<Symbol>& s) {
+ return *s == symbol;
+ });
Symbol* s = nullptr;
- if (it_symbol == std::end(dynamic_symbols_)) {
+ if (it_symbol == dynamic_symbols_.end()) {
// Create a new one
const SymbolVersion& version = SymbolVersion::global();
Symbol& new_sym = add_dynamic_symbol(symbol, &version);
@@ -311,14 +307,16 @@ Symbol& Binary::export_symbol(const Symbol& symbol) {
s = it_symbol->get();
}
- const auto it_text = std::find_if(std::begin(sections_), std::end(sections_),
- [] (const std::unique_ptr<Section>& s) {
+ const auto it_text = std::find_if(sections_.begin(), sections_.end(),
+ [](const std::unique_ptr<Section>& s) {
return s->name() == ".text";
});
- size_t text_idx = std::distance(std::begin(sections_), it_text);
+ size_t text_idx = std::distance(sections_.begin(), it_text);
- if (s->binding() != Symbol::BINDING::WEAK || s->binding() != Symbol::BINDING::GLOBAL) {
+ if (s->binding() != Symbol::BINDING::WEAK ||
+ s->binding() != Symbol::BINDING::GLOBAL)
+ {
s->binding(Symbol::BINDING::GLOBAL);
}
@@ -381,7 +379,7 @@ Symbol& Binary::add_exported_function(uint64_t address, const std::string& name)
return export_symbol(*s);
}
- // Second: Check if a symbol with the given 'name' exists in the **static**
+ // Second: Check if a symbol with the given 'name' exists in the **static** table
s = get_symtab_symbol(funcname);
if (s != nullptr) {
s->type(Symbol::TYPE::FUNC);
@@ -401,29 +399,28 @@ Symbol& Binary::add_exported_function(uint64_t address, const std::string& name)
funcsym.size(0x10);
return export_symbol(funcsym);
-
}
const Symbol* Binary::get_dynamic_symbol(const std::string& name) const {
- const auto it_symbol = std::find_if(
- std::begin(dynamic_symbols_), std::end(dynamic_symbols_),
- [&name] (const std::unique_ptr<Symbol>& s) {
- return s->name() == name;
- });
+ const auto it_symbol =
+ std::find_if(dynamic_symbols_.begin(), dynamic_symbols_.end(),
+ [&name](const std::unique_ptr<Symbol>& s) {
+ return s->name() == name;
+ });
- if (it_symbol == std::end(dynamic_symbols_)) {
+ if (it_symbol == dynamic_symbols_.end()) {
return nullptr;
}
return it_symbol->get();
}
const Symbol* Binary::get_symtab_symbol(const std::string& name) const {
- const auto it_symbol = std::find_if(
- std::begin(symtab_symbols_), std::end(symtab_symbols_),
- [&name] (const std::unique_ptr<Symbol>& s) {
- return s->name() == name;
- });
- if (it_symbol == std::end(symtab_symbols_)) {
+ const auto it_symbol =
+ std::find_if(symtab_symbols_.begin(), symtab_symbols_.end(),
+ [&name](const std::unique_ptr<Symbol>& s) {
+ return s->name() == name;
+ });
+ if (it_symbol == symtab_symbols_.end()) {
return nullptr;
}
return it_symbol->get();
@@ -441,9 +438,7 @@ Binary::string_list_t Binary::strings(size_t min_size) const {
std::string current;
current.reserve(100);
- for (size_t i = 0; i < data.size(); ++i) {
- uint8_t c = data[i];
-
+ for (unsigned char c : data) {
// Terminator
if (c == '\0') {
if (current.size() >= min_size) {
@@ -485,32 +480,27 @@ std::vector<Symbol*> Binary::symtab_dyn_symbols() const {
// --------
Binary::it_exported_symbols Binary::exported_symbols() {
- return {symtab_dyn_symbols(), [] (const Symbol* symbol) {
- return symbol->is_exported();
- }};
+ return {symtab_dyn_symbols(),
+ [](const Symbol* symbol) { return symbol->is_exported(); }};
}
Binary::it_const_exported_symbols Binary::exported_symbols() const {
- return {symtab_dyn_symbols(), [] (const Symbol* symbol) {
- return symbol->is_exported();
- }};
+ return {symtab_dyn_symbols(),
+ [](const Symbol* symbol) { return symbol->is_exported(); }};
}
-
// Imported
// --------
Binary::it_imported_symbols Binary::imported_symbols() {
- return {symtab_dyn_symbols(), [] (const Symbol* symbol) {
- return symbol->is_imported();
- }};
+ return {symtab_dyn_symbols(),
+ [](const Symbol* symbol) { return symbol->is_imported(); }};
}
Binary::it_const_imported_symbols Binary::imported_symbols() const {
- return {symtab_dyn_symbols(), [] (const Symbol* symbol) {
- return symbol->is_imported();
- }};
+ return {symtab_dyn_symbols(),
+ [](const Symbol* symbol) { return symbol->is_imported(); }};
}
void Binary::remove_symbol(const std::string& name) {
@@ -521,7 +511,7 @@ void Binary::remove_symbol(const std::string& name) {
void Binary::remove_symtab_symbol(const std::string& name) {
Symbol* sym = get_symtab_symbol(name);
if (sym == nullptr) {
- LIEF_WARN("Can't find the symtab symbol '{}'. It won't be removed", name);
+ LIEF_WARN("Symtab symbol '{}' not found, cannot remove", name);
return;
}
remove_symtab_symbol(sym);
@@ -532,15 +522,14 @@ void Binary::remove_symtab_symbol(Symbol* symbol) {
return;
}
- const auto it_symbol = std::find_if(
- std::begin(symtab_symbols_), std::end(symtab_symbols_),
- [symbol] (const std::unique_ptr<Symbol>& sym) {
- return *symbol == *sym;
- }
- );
+ const auto it_symbol =
+ std::find_if(symtab_symbols_.begin(), symtab_symbols_.end(),
+ [symbol](const std::unique_ptr<Symbol>& sym) {
+ return *symbol == *sym;
+ });
- if (it_symbol == std::end(symtab_symbols_)) {
- LIEF_WARN("Can't find the symtab symbol '{}'. It won't be removed", symbol->name());
+ if (it_symbol == symtab_symbols_.end()) {
+ LIEF_WARN("Symtab symbol '{}' not found, cannot remove", symbol->name());
return;
}
@@ -550,7 +539,7 @@ void Binary::remove_symtab_symbol(Symbol* symbol) {
void Binary::remove_dynamic_symbol(const std::string& name) {
Symbol* sym = get_dynamic_symbol(name);
if (sym == nullptr) {
- LIEF_WARN("Can't find the dynamic symbol '{}'. It won't be removed", name);
+ LIEF_WARN("Dynamic symbol '{}' not found, cannot remove", name);
return;
}
remove_dynamic_symbol(sym);
@@ -561,26 +550,27 @@ void Binary::remove_dynamic_symbol(Symbol* symbol) {
return;
}
- const auto it_symbol = std::find_if(
- std::begin(dynamic_symbols_), std::end(dynamic_symbols_),
- [symbol] (const std::unique_ptr<Symbol>& sym) {
- return *symbol == *sym;
- }
- );
+ const auto it_symbol =
+ std::find_if(dynamic_symbols_.begin(), dynamic_symbols_.end(),
+ [symbol](const std::unique_ptr<Symbol>& sym) {
+ return *symbol == *sym;
+ });
- if (it_symbol == std::end(dynamic_symbols_)) {
- LIEF_WARN("Can't find the dynamic symbol '{}'. It won't be removed", symbol->name());
+ if (it_symbol == dynamic_symbols_.end()) {
+ LIEF_WARN("Dynamic symbol '{}' not found, cannot remove", symbol->name());
return;
}
// Update relocations
- auto it_relocation = std::find_if(std::begin(relocations_), std::end(relocations_),
- [symbol] (const std::unique_ptr<Relocation>& relocation) {
- return relocation->purpose() == Relocation::PURPOSE::PLTGOT &&
- relocation->has_symbol() && relocation->symbol() == symbol;
- });
-
- if (it_relocation != std::end(relocations_)) {
+ auto it_relocation =
+ std::find_if(relocations_.begin(), relocations_.end(),
+ [symbol](const std::unique_ptr<Relocation>& relocation) {
+ return relocation->purpose() == Relocation::PURPOSE::PLTGOT &&
+ relocation->has_symbol() &&
+ relocation->symbol() == symbol;
+ });
+
+ if (it_relocation != relocations_.end()) {
Relocation& R = **it_relocation;
/* That's the tricky part:
*
@@ -602,8 +592,8 @@ void Binary::remove_dynamic_symbol(Symbol* symbol) {
* If we remove 'puts' from the relocation table, 'printf' is shifted
* to the index 0 and the index in the resolving stub is corrupted (push 1).
* Thus for the general case, we can't "shrink" the relocation table.
- * Instead, unbinding the 'symbol' from the relocation does not break the layout
- * while still removing the symbol.
+ * Instead, unbinding the 'symbol' from the relocation does not break the
+ * layout while still removing the symbol.
*/
R.symbol(nullptr);
}
@@ -612,20 +602,22 @@ void Binary::remove_dynamic_symbol(Symbol* symbol) {
size_t rel_sizeof = 0;
relocations_.erase(
- std::remove_if(relocations_.begin(), relocations_.end(),
- [symbol, this, &rel_sizeof] (const std::unique_ptr<Relocation>& reloc) {
- if (reloc->purpose() != Relocation::PURPOSE::DYNAMIC) {
- return false;
- }
-
- if (const Symbol* sym = reloc->symbol(); sym == symbol) {
- rel_sizeof = get_relocation_sizeof(*this, *reloc);
- return true;
- }
-
- return false;
- }
- ), relocations_.end());
+ std::remove_if(relocations_.begin(), relocations_.end(),
+ [symbol, this,
+ &rel_sizeof](const std::unique_ptr<Relocation>& reloc) {
+ if (reloc->purpose() != Relocation::PURPOSE::DYNAMIC) {
+ return false;
+ }
+
+ if (const Symbol* sym = reloc->symbol(); sym == symbol) {
+ rel_sizeof = get_relocation_sizeof(*this, *reloc);
+ return true;
+ }
+
+ return false;
+ }),
+ relocations_.end()
+ );
const size_t nb_deleted_relocs = nb_relocs - relocations_.size();
@@ -636,8 +628,7 @@ void Binary::remove_dynamic_symbol(Symbol* symbol) {
if (sizes >= relocs_size) {
DT->value(sizes - relocs_size);
}
- }
- else if (auto* DT = get(DynamicEntry::TAG::RELSZ)) {
+ } else if (auto* DT = get(DynamicEntry::TAG::RELSZ)) {
const uint64_t sizes = DT->value();
if (sizes >= relocs_size) {
DT->value(sizes - relocs_size);
@@ -647,13 +638,12 @@ void Binary::remove_dynamic_symbol(Symbol* symbol) {
// Update symbol versions
if (symbol->has_version()) {
- const auto it = std::find_if(
- std::begin(symbol_version_table_), std::end(symbol_version_table_),
- [symbol] (const std::unique_ptr<SymbolVersion>& sv) {
- return sv.get() == symbol->symbol_version_;
- }
- );
- if (it != std::end(symbol_version_table_)) {
+ const auto it =
+ std::find_if(symbol_version_table_.begin(), symbol_version_table_.end(),
+ [symbol](const std::unique_ptr<SymbolVersion>& sv) {
+ return sv.get() == symbol->symbol_version_;
+ });
+ if (it != symbol_version_table_.end()) {
symbol_version_table_.erase(it);
}
}
@@ -669,25 +659,18 @@ void Binary::remove_dynamic_symbol(Symbol* symbol) {
// --------
Binary::it_dynamic_relocations Binary::dynamic_relocations() {
- return {relocations_, [] (const std::unique_ptr<Relocation>& reloc) {
- return reloc->purpose() == Relocation::PURPOSE::DYNAMIC;
- }
- };
+ return {relocations_, [](const std::unique_ptr<Relocation>& reloc) {
+ return reloc->purpose() == Relocation::PURPOSE::DYNAMIC;
+ }};
}
Binary::it_const_dynamic_relocations Binary::dynamic_relocations() const {
- return {relocations_, [] (const std::unique_ptr<Relocation>& reloc) {
- return reloc->purpose() == Relocation::PURPOSE::DYNAMIC;
- }
- };
+ return {relocations_, [](const std::unique_ptr<Relocation>& reloc) {
+ return reloc->purpose() == Relocation::PURPOSE::DYNAMIC;
+ }};
}
Relocation& Binary::add_dynamic_relocation(const Relocation& relocation) {
- if (!relocation.is_rel() && !relocation.is_rela()) {
- LIEF_WARN("LIEF only supports regulard rel/rela relocations");
- static Relocation None;
- return None;
- }
auto relocation_ptr = std::make_unique<Relocation>(relocation);
relocation_ptr->purpose(Relocation::PURPOSE::DYNAMIC);
relocation_ptr->architecture_ = header().machine_type();
@@ -699,32 +682,55 @@ Relocation& Binary::add_dynamic_relocation(const Relocation& relocation) {
if (inner_sym == nullptr) {
inner_sym = &(add_dynamic_symbol(*associated_sym));
}
- const auto it_sym = std::find_if(
- std::begin(dynamic_symbols_), std::end(dynamic_symbols_),
- [inner_sym] (const std::unique_ptr<Symbol>& s) {
- return s->name() == inner_sym->name();
- });
- const size_t idx = std::distance(std::begin(dynamic_symbols_), it_sym);
+ const auto it_sym =
+ std::find_if(dynamic_symbols_.begin(), dynamic_symbols_.end(),
+ [inner_sym](const std::unique_ptr<Symbol>& s) {
+ return s->name() == inner_sym->name();
+ });
+ const size_t idx = std::distance(dynamic_symbols_.begin(), it_sym);
relocation_ptr->info(idx);
relocation_ptr->symbol(inner_sym);
}
- // Update the Dynamic Section (Thanks to @yd0b0N)
- bool is_rela = relocation.is_rela();
- auto tag_sz = is_rela ? DynamicEntry::TAG::RELASZ :
- DynamicEntry::TAG::RELSZ;
+ const uint64_t psize = ptr_size();
- auto tag_ent = is_rela ? DynamicEntry::TAG::RELAENT :
- DynamicEntry::TAG::RELENT;
+ const uint64_t default_rela =
+ psize == 8 ? sizeof(details::Elf64_Rela) : sizeof(details::Elf32_Rela);
- DynamicEntry* dt_sz = get(tag_sz);
- DynamicEntry* dt_ent = get(tag_ent);
- if (dt_sz != nullptr && dt_ent != nullptr) {
- dt_sz->value(dt_sz->value() + dt_ent->value());
+ const uint64_t default_rel =
+ psize == 8 ? sizeof(details::Elf64_Rel) : sizeof(details::Elf32_Rel);
+
+ if (relocation.is_rela()) {
+ if (DynamicEntry* dt_size = get(DynamicEntry::TAG::RELASZ)) {
+ dt_size->value(dt_size->value() +
+ entry_size(DynamicEntry::TAG::RELAENT, default_rela));
+ } else if (DynamicEntry* dt_size = get(DynamicEntry::TAG::ANDROID_RELASZ)) {
+ dt_size->value(dt_size->value() + default_rela);
+ }
+ } else if (relocation.is_rel()) {
+ if (DynamicEntry* dt_size = get(DynamicEntry::TAG::RELSZ)) {
+ dt_size->value(dt_size->value() +
+ entry_size(DynamicEntry::TAG::RELENT, default_rel));
+ } else if (DynamicEntry* dt_size = get(DynamicEntry::TAG::ANDROID_RELSZ)) {
+ dt_size->value(dt_size->value() + default_rela);
+ }
+ } else if (relocation.is_relatively_encoded()) {
+ if (DynamicEntry* dt_size = get(DynamicEntry::TAG::RELRSZ)) {
+ dt_size->value(dt_size->value() +
+ entry_size(DynamicEntry::TAG::RELRENT, psize));
+ } else if (DynamicEntry* dt_size = get(DynamicEntry::TAG::ANDROID_RELRSZ)) {
+ dt_size->value(dt_size->value() +
+ entry_size(DynamicEntry::TAG::ANDROID_RELRENT, psize));
+ }
+ } else if (relocation.is_android_packed()) {
+ if (DynamicEntry* dt_size = get(DynamicEntry::TAG::ANDROID_RELASZ)) {
+ dt_size->value(dt_size->value() + default_rela);
+ } else if (DynamicEntry* dt_size = get(DynamicEntry::TAG::ANDROID_RELSZ)) {
+ dt_size->value(dt_size->value() + default_rela);
+ }
}
- relocations_.push_back(std::move(relocation_ptr));
- return *relocations_.back();
+ return **relocations_.insert(relocations_.end(), std::move(relocation_ptr));
}
@@ -740,12 +746,12 @@ Relocation& Binary::add_pltgot_relocation(const Relocation& relocation) {
if (inner_sym == nullptr) {
inner_sym = &(add_dynamic_symbol(*associated_sym));
}
- const auto it_sym = std::find_if(
- std::begin(dynamic_symbols_), std::end(dynamic_symbols_),
- [inner_sym] (const std::unique_ptr<Symbol>& s) {
- return s->name() == inner_sym->name();
- });
- const size_t idx = std::distance(std::begin(dynamic_symbols_), it_sym);
+ const auto it_sym =
+ std::find_if(dynamic_symbols_.begin(), dynamic_symbols_.end(),
+ [inner_sym](const std::unique_ptr<Symbol>& s) {
+ return s->name() == inner_sym->name();
+ });
+ const size_t idx = std::distance(dynamic_symbols_.begin(), it_sym);
relocation_ptr->info(idx);
relocation_ptr->symbol(inner_sym);
}
@@ -762,14 +768,16 @@ Relocation& Binary::add_pltgot_relocation(const Relocation& relocation) {
return *relocations_.back();
}
-Relocation* Binary::add_object_relocation(const Relocation& relocation, const Section& section) {
- const auto it_section = std::find_if(std::begin(sections_), std::end(sections_),
- [§ion] (const std::unique_ptr<Section>& sec) {
- return §ion == sec.get();
- });
+Relocation* Binary::add_object_relocation(const Relocation& relocation,
+ const Section& section) {
+ const auto it_section =
+ std::find_if(sections_.begin(), sections_.end(),
+ [§ion](const std::unique_ptr<Section>& sec) {
+ return §ion == sec.get();
+ });
- if (it_section == std::end(sections_)) {
- LIEF_ERR("Can't find section '{}'", section.name());
+ if (it_section == sections_.end()) {
+ LIEF_ERR("Section '{}' not found", section.name());
return nullptr;
}
@@ -785,44 +793,38 @@ Relocation* Binary::add_object_relocation(const Relocation& relocation, const Se
// plt/got
// -------
Binary::it_pltgot_relocations Binary::pltgot_relocations() {
- return {relocations_, [] (const std::unique_ptr<Relocation>& reloc) {
- return reloc->purpose() == Relocation::PURPOSE::PLTGOT;
- }
- };
+ return {relocations_, [](const std::unique_ptr<Relocation>& reloc) {
+ return reloc->purpose() == Relocation::PURPOSE::PLTGOT;
+ }};
}
Binary::it_const_pltgot_relocations Binary::pltgot_relocations() const {
- return {relocations_, [] (const std::unique_ptr<Relocation>& reloc) {
- return reloc->purpose() == Relocation::PURPOSE::PLTGOT;
- }
- };
+ return {relocations_, [](const std::unique_ptr<Relocation>& reloc) {
+ return reloc->purpose() == Relocation::PURPOSE::PLTGOT;
+ }};
}
// objects
// -------
Binary::it_object_relocations Binary::object_relocations() {
- return {relocations_, [] (const std::unique_ptr<Relocation>& reloc) {
- return reloc->purpose() == Relocation::PURPOSE::OBJECT;
- }
- };
+ return {relocations_, [](const std::unique_ptr<Relocation>& reloc) {
+ return reloc->purpose() == Relocation::PURPOSE::OBJECT;
+ }};
}
Binary::it_const_object_relocations Binary::object_relocations() const {
- return {relocations_, [] (const std::unique_ptr<Relocation>& reloc) {
- return reloc->purpose() == Relocation::PURPOSE::OBJECT;
- }
- };
+ return {relocations_, [](const std::unique_ptr<Relocation>& reloc) {
+ return reloc->purpose() == Relocation::PURPOSE::OBJECT;
+ }};
}
LIEF::Binary::relocations_t Binary::get_abstract_relocations() {
LIEF::Binary::relocations_t relocations;
relocations.reserve(relocations_.size());
- std::transform(std::begin(relocations_), std::end(relocations_),
+ std::transform(relocations_.begin(), relocations_.end(),
std::back_inserter(relocations),
- [] (const std::unique_ptr<Relocation>& r) {
- return r.get();
- });
+ [](const std::unique_ptr<Relocation>& r) { return r.get(); });
return relocations;
}
@@ -831,74 +833,67 @@ LIEF::Binary::relocations_t Binary::get_abstract_relocations() {
LIEF::Binary::symbols_t Binary::get_abstract_symbols() {
LIEF::Binary::symbols_t symbols;
symbols.reserve(dynamic_symbols_.size() + symtab_symbols_.size());
- std::transform(std::begin(dynamic_symbols_), std::end(dynamic_symbols_),
+ std::transform(dynamic_symbols_.begin(), dynamic_symbols_.end(),
std::back_inserter(symbols),
- [] (std::unique_ptr<Symbol>& s) {
- return s.get();
- });
+ [](std::unique_ptr<Symbol>& s) { return s.get(); });
- std::transform(std::begin(symtab_symbols_), std::end(symtab_symbols_),
+ std::transform(symtab_symbols_.begin(), symtab_symbols_.end(),
std::back_inserter(symbols),
- [] (std::unique_ptr<Symbol>& s) {
- return s.get();
- });
+ [](std::unique_ptr<Symbol>& s) { return s.get(); });
return symbols;
-
}
const Section* Binary::get_section(const std::string& name) const {
- const auto it_section = std::find_if(
- std::begin(sections_), std::end(sections_),
- [&name] (const std::unique_ptr<Section>& section) {
- return section->name() == name;
- });
+ const auto it_section =
+ std::find_if(sections_.begin(), sections_.end(),
+ [&name](const std::unique_ptr<Section>& section) {
+ return section->name() == name;
+ });
- if (it_section == std::end(sections_)) {
+ if (it_section == sections_.end()) {
return nullptr;
}
return it_section->get();
}
Section* Binary::dynamic_section() {
- const auto it_dynamic_section = std::find_if(
- std::begin(sections_), std::end(sections_),
- [] (const std::unique_ptr<Section>& section) {
- return section->type() == Section::TYPE::DYNAMIC;
- });
+ const auto it_dynamic_section =
+ std::find_if(sections_.begin(), sections_.end(),
+ [](const std::unique_ptr<Section>& section) {
+ return section->type() == Section::TYPE::DYNAMIC;
+ });
- if (it_dynamic_section == std::end(sections_)) {
+ if (it_dynamic_section == sections_.end()) {
return nullptr;
}
return it_dynamic_section->get();
-
}
Section* Binary::hash_section() {
- const auto it_hash_section = std::find_if(
- std::begin(sections_), std::end(sections_),
- [] (const std::unique_ptr<Section>& section) {
- return section->type() == Section::TYPE::HASH ||
- section->type() == Section::TYPE::GNU_HASH;
- });
-
- if (it_hash_section == std::end(sections_)) {
+ const auto it_hash_section =
+ std::find_if(sections_.begin(), sections_.end(),
+ [](const std::unique_ptr<Section>& section) {
+ return section->type() == Section::TYPE::HASH ||
+ section->type() == Section::TYPE::GNU_HASH;
+ });
+
+ if (it_hash_section == sections_.end()) {
return nullptr;
}
return it_hash_section->get();
-
}
Section* Binary::symtab_symbols_section() {
- const auto it_symtab_section = std::find_if(
- std::begin(sections_), std::end(sections_),
- [] (const std::unique_ptr<Section>& section) {
- return section->type() == Section::TYPE::SYMTAB;
- });
+ const auto it_symtab_section =
+ std::find_if(sections_.begin(), sections_.end(),
+ [](const std::unique_ptr<Section>& section) {
+ return section->type() == Section::TYPE::SYMTAB;
+ });
- if (it_symtab_section == std::end(sections_)) {
+ if (it_symtab_section == sections_.end()) {
return nullptr;
}
@@ -909,7 +904,8 @@ uint64_t Binary::imagebase() const {
auto imagebase = static_cast<uint64_t>(-1);
for (const std::unique_ptr<Segment>& segment : segments_) {
if (segment != nullptr && segment->is_load()) {
- imagebase = std::min(imagebase, segment->virtual_address() - segment->file_offset());
+ imagebase =
+ std::min(imagebase, segment->virtual_address() - segment->file_offset());
}
}
return imagebase;
@@ -919,7 +915,8 @@ uint64_t Binary::virtual_size() const {
uint64_t virtual_size = 0;
for (const std::unique_ptr<Segment>& segment : segments_) {
if (segment != nullptr && segment->is_load()) {
- virtual_size = std::max(virtual_size, segment->virtual_address() + segment->virtual_size());
+ virtual_size = std::max(virtual_size, segment->virtual_address() +
+ segment->virtual_size());
}
}
virtual_size = align(virtual_size, page_size());
@@ -934,54 +931,56 @@ std::vector<uint8_t> Binary::raw() {
}
result<uint64_t> Binary::get_function_address(const std::string& func_name) const {
- if (auto res = get_function_address(func_name, /* demangle */true)) {
+ if (auto res = get_function_address(func_name, /* demangle */ true)) {
return *res;
}
- if (auto res = get_function_address(func_name, /* demangle */false)) {
+ if (auto res = get_function_address(func_name, /* demangle */ false)) {
return *res;
}
- return LIEF::Binary::get_function_address(func_name);;
+ return LIEF::Binary::get_function_address(func_name);
+ ;
}
-result<uint64_t> Binary::get_function_address(const std::string& func_name, bool demangled) const {
+result<uint64_t> Binary::get_function_address(const std::string& func_name,
+ bool demangled) const {
- const auto it_dynsym = std::find_if(
- dynamic_symbols_.begin(), dynamic_symbols_.end(),
- [&func_name, demangled] (const std::unique_ptr<Symbol>& symbol) {
- std::string sname;
- if (demangled) {
- sname = symbol->demangled_name();
- }
+ const auto it_dynsym =
+ std::find_if(dynamic_symbols_.begin(), dynamic_symbols_.end(),
+ [&func_name, demangled](const std::unique_ptr<Symbol>& symbol) {
+ std::string sname;
+ if (demangled) {
+ sname = symbol->demangled_name();
+ }
- if (sname.empty()) {
- sname = symbol->name();
- }
+ if (sname.empty()) {
+ sname = symbol->name();
+ }
- return sname == func_name &&
- symbol->type() == Symbol::TYPE::FUNC;
- });
+ return sname == func_name &&
+ symbol->type() == Symbol::TYPE::FUNC;
+ });
if (it_dynsym != dynamic_symbols_.end()) {
return (*it_dynsym)->value();
}
- const auto it_symtab = std::find_if(
- symtab_symbols_.begin(), symtab_symbols_.end(),
- [&func_name, demangled] (const std::unique_ptr<Symbol>& symbol) {
- std::string sname;
- if (demangled) {
- sname = symbol->demangled_name();
- }
+ const auto it_symtab =
+ std::find_if(symtab_symbols_.begin(), symtab_symbols_.end(),
+ [&func_name, demangled](const std::unique_ptr<Symbol>& symbol) {
+ std::string sname;
+ if (demangled) {
+ sname = symbol->demangled_name();
+ }
- if (sname.empty()) {
- sname = symbol->name();
- }
+ if (sname.empty()) {
+ sname = symbol->name();
+ }
- return sname == func_name &&
- symbol->type() == Symbol::TYPE::FUNC;
- });
+ return sname == func_name &&
+ symbol->type() == Symbol::TYPE::FUNC;
+ });
if (it_symtab != symtab_symbols_.end()) {
uint64_t value = (*it_symtab)->value();
@@ -990,7 +989,6 @@ result<uint64_t> Binary::get_function_address(const std::string& func_name, bool
}
}
return make_error_code(lief_errors::not_found);
-
}
Section* Binary::add(const Section& section, bool loaded, SEC_INSERT_POS pos) {
@@ -1012,20 +1010,20 @@ Section* Binary::add_frame_section(const Section& sec) {
}
bool Binary::is_pie() const {
- const auto it_segment = std::find_if(
- std::begin(segments_), std::end(segments_),
- [] (const std::unique_ptr<Segment>& entry) {
- return entry->is_interpreter();
- });
+ const auto it_segment = std::find_if(segments_.begin(), segments_.end(),
+ [](const std::unique_ptr<Segment>& entry) {
+ return entry->is_interpreter();
+ });
if (header().file_type() != Header::FILE_TYPE::DYN) {
return false;
}
/* If the ELF binary uses an interpreter, then it is position
- * independant since the interpreter aims at loading the binary at a random base address
+ * independent since the interpreter aims at loading the binary at a random base
+ * address.
*/
- if (it_segment != std::end(segments_)) {
+ if (it_segment != segments_.end()) {
return true;
}
/* It also exists ELF executables which don't have PT_INTERP but are
@@ -1033,7 +1031,7 @@ bool Binary::is_pie() const {
* the case, for instance, when compiling with the -static-pie flag
*
* While header().file_type() == E_TYPE::ET_DYN is a requirement
- * for PIC binary (Position independant **CODE**), it does not enable
+ * for PIC binary (Position independent **CODE**), it does not enable
* to distinguish PI **Executables** from libraries.
*
* Therefore, we add the following checks:
@@ -1043,7 +1041,9 @@ bool Binary::is_pie() const {
if (has(Segment::TYPE::DYNAMIC)) {
- if (const auto* flag = static_cast<const DynamicEntryFlags*>(get(DynamicEntry::TAG::FLAGS_1))) {
+ if (const auto* flag =
+ static_cast<const DynamicEntryFlags*>(get(DynamicEntry::TAG::FLAGS_1)))
+ {
return flag->has(DynamicEntryFlags::FLAG::PIE);
}
}
@@ -1066,33 +1066,32 @@ bool Binary::has_nx() const {
}
Segment* Binary::add(const Segment& segment, uint64_t base) {
- const uint64_t new_base = base == 0 ? next_virtual_address() : base;
-
- switch(header().file_type()) {
+ switch (header().file_type()) {
case Header::FILE_TYPE::EXEC:
- return add_segment<Header::FILE_TYPE::EXEC>(segment, new_base);
+ return add_segment<Header::FILE_TYPE::EXEC>(segment, base);
case Header::FILE_TYPE::DYN:
- return add_segment<Header::FILE_TYPE::DYN>(segment, new_base);
+ return add_segment<Header::FILE_TYPE::DYN>(segment, base);
default:
- {
- LIEF_WARN("Adding segment for {} is not implemented", to_string(header().file_type()));
- return nullptr;
- }
+ {
+ LIEF_WARN("Adding segment not implemented for {}",
+ to_string(header().file_type()));
+ return nullptr;
+ }
}
}
-Segment* Binary::replace(const Segment& new_segment, const Segment& original_segment, uint64_t base) {
+Segment* Binary::replace(const Segment& new_segment,
+ const Segment& original_segment, uint64_t base) {
- const auto it_original_segment = std::find_if(
- std::begin(segments_), std::end(segments_),
- [&original_segment] (const std::unique_ptr<Segment>& s) {
- return *s == original_segment;
- }
- );
+ const auto it_original_segment =
+ std::find_if(segments_.begin(), segments_.end(),
+ [&original_segment](const std::unique_ptr<Segment>& s) {
+ return *s == original_segment;
+ });
- if (it_original_segment == std::end(segments_)) {
- LIEF_WARN("Unable to find the segment in the current binary");
+ if (it_original_segment == segments_.end()) {
+ LIEF_WARN("Segment not found in binary");
return nullptr;
}
@@ -1100,23 +1099,27 @@ Segment* Binary::replace(const Segment& new_segment, const Segment& original_seg
uint64_t new_base = base;
if (new_base == 0) {
- new_base = next_virtual_address();
+ const uint64_t alignment =
+ new_segment.alignment() > 0 ? new_segment.alignment() : page_size();
+ new_base = align(next_virtual_address(), alignment);
}
span<const uint8_t> content_ref = new_segment.content();
- std::vector<uint8_t> content{content_ref.data(), std::end(content_ref)};
+ std::vector<uint8_t> content{content_ref.data(), content_ref.end()};
auto new_segment_ptr = std::make_unique<Segment>(new_segment);
new_segment_ptr->datahandler_ = datahandler_.get();
- DataHandler::Node new_node{new_segment_ptr->file_offset(), new_segment_ptr->physical_size(),
+ DataHandler::Node new_node{new_segment_ptr->file_offset(),
+ new_segment_ptr->physical_size(),
DataHandler::Node::SEGMENT};
datahandler_->add(new_node);
new_segment_ptr->handler_size_ = new_segment_ptr->physical_size();
const uint64_t last_offset_sections = last_offset_section();
const uint64_t last_offset_segments = last_offset_segment();
- const uint64_t last_offset = std::max<uint64_t>(last_offset_sections, last_offset_segments);
+ const uint64_t last_offset =
+ std::max<uint64_t>(last_offset_sections, last_offset_segments);
const auto psize = page_size();
const uint64_t last_offset_aligned = align(last_offset, psize);
@@ -1138,7 +1141,8 @@ Segment* Binary::replace(const Segment& new_segment, const Segment& original_seg
new_segment_ptr->alignment(psize);
}
- auto alloc = datahandler_->make_hole(last_offset_aligned, new_segment_ptr->physical_size());
+ auto alloc = datahandler_->make_hole(last_offset_aligned,
+ new_segment_ptr->physical_size());
if (!alloc) {
LIEF_ERR("Allocation failed");
return nullptr;
@@ -1146,43 +1150,41 @@ Segment* Binary::replace(const Segment& new_segment, const Segment& original_seg
new_segment_ptr->content(content);
- const auto it_segment_phdr = std::find_if(
- std::begin(segments_), std::end(segments_),
- [] (const std::unique_ptr<Segment>& s) {
- return s->is_phdr();
- });
+ const auto it_segment_phdr =
+ std::find_if(segments_.begin(), segments_.end(),
+ [](const std::unique_ptr<Segment>& s) { return s->is_phdr(); });
- if (it_segment_phdr != std::end(segments_)) {
- std::unique_ptr<Segment>& phdr_segment = *it_segment_phdr;
- const size_t phdr_size = phdr_segment->content().size();
- phdr_segment->content(std::vector<uint8_t>(phdr_size, 0));
+ if (it_segment_phdr != segments_.end()) {
+ (*it_segment_phdr)->clear();
}
// Remove
- std::unique_ptr<Segment> local_original_segment = std::move(*it_original_segment);
- datahandler_->remove(local_original_segment->file_offset(), local_original_segment->physical_size(), DataHandler::Node::SEGMENT);
+ std::unique_ptr<Segment> local_original_segment =
+ std::move(*it_original_segment);
+ datahandler_->remove(local_original_segment->file_offset(),
+ local_original_segment->physical_size(),
+ DataHandler::Node::SEGMENT);
segments_.erase(it_original_segment);
// Patch shdr
Header& header = this->header();
- const uint64_t new_section_hdr_offset = new_segment_ptr->file_offset() + new_segment_ptr->physical_size();
+ const uint64_t new_section_hdr_offset =
+ new_segment_ptr->file_offset() + new_segment_ptr->physical_size();
header.section_headers_offset(new_section_hdr_offset);
- Segment* seg = new_segment_ptr.get();
- segments_.push_back(std::move(new_segment_ptr));
- return seg;
+ return segments_.emplace_back(std::move(new_segment_ptr)).get();
}
void Binary::remove(const Segment& segment, bool clear) {
- const auto it_segment = std::find_if(
- std::begin(segments_), std::end(segments_),
- [&segment] (const std::unique_ptr<Segment>& s) {
- return s.get() == &segment;
- });
-
- if (it_segment == std::end(segments_)) {
- LIEF_ERR("Can't find the provided segment");
+ const auto it_segment =
+ std::find_if(segments_.begin(), segments_.end(),
+ [&segment](const std::unique_ptr<Segment>& s) {
+ return s.get() == &segment;
+ });
+
+ if (it_segment == segments_.end()) {
+ LIEF_ERR("Provided segment not found");
return;
}
@@ -1192,8 +1194,8 @@ void Binary::remove(const Segment& segment, bool clear) {
local_segment->clear();
}
- datahandler_->remove(local_segment->file_offset(), local_segment->physical_size(),
- DataHandler::Node::SEGMENT);
+ datahandler_->remove(local_segment->file_offset(),
+ local_segment->physical_size(), DataHandler::Node::SEGMENT);
if (phdr_reloc_info_.new_offset > 0) {
++phdr_reloc_info_.nb_segments;
}
@@ -1225,39 +1227,41 @@ Segment* Binary::extend(const Segment& segment, uint64_t size) {
switch (type) {
case Segment::TYPE::PHDR:
case Segment::TYPE::LOAD:
- return extend_segment<Segment::TYPE::LOAD>(segment, size);
+ return extend_segment<Segment::TYPE::LOAD>(segment, size);
default:
- {
- LIEF_WARN("Extending segment '{}' is not supported");
- return nullptr;
- }
+ {
+ LIEF_WARN("Extending segment '{}' is not supported");
+ return nullptr;
+ }
}
}
Section* Binary::extend(const Section& section, uint64_t size) {
- const auto it_section = std::find_if(
- std::begin(sections_), std::end(sections_),
- [§ion] (const std::unique_ptr<Section>& s) {
- return *s == section;
- }
- );
-
- if (it_section == std::end(sections_)) {
- LIEF_WARN("Unable to find the section '{}' in the current binary", section.name());
+ const auto it_section =
+ std::find_if(sections_.begin(), sections_.end(),
+ [§ion](const std::unique_ptr<Section>& s) {
+ return *s == section;
+ });
+
+ if (it_section == sections_.end()) {
+ LIEF_WARN("Section '{}' not found in binary", section.name());
return nullptr;
}
std::unique_ptr<Section>& section_to_extend = *it_section;
- uint64_t from_offset = section_to_extend->offset() + section_to_extend->size();
- uint64_t from_address = section_to_extend->virtual_address() + section_to_extend->size();
- bool section_loaded = section_to_extend->virtual_address() != 0;
- uint64_t shift = size;
+ uint64_t from_offset = section_to_extend->offset() + section_to_extend->size();
+ uint64_t from_address =
+ section_to_extend->virtual_address() + section_to_extend->size();
+ bool section_loaded = section_to_extend->virtual_address() != 0;
+ uint64_t shift = size;
- auto alloc = datahandler_->make_hole(section_to_extend->offset() + section_to_extend->size(),size);
+ auto alloc = datahandler_->make_hole(
+ section_to_extend->offset() + section_to_extend->size(), size
+ );
if (!alloc) {
LIEF_ERR("Allocation failed");
@@ -1271,7 +1275,8 @@ Section* Binary::extend(const Section& section, uint64_t size) {
// Patch segment size for the segment which contains the new segment
for (std::unique_ptr<Segment>& segment : segments_) {
if ((segment->file_offset() + segment->physical_size()) >= from_offset &&
- from_offset >= segment->file_offset()) {
+ from_offset >= segment->file_offset())
+ {
if (section_loaded) {
segment->virtual_size(segment->virtual_size() + shift);
}
@@ -1283,7 +1288,7 @@ Section* Binary::extend(const Section& section, uint64_t size) {
section_to_extend->size(section_to_extend->size() + size);
span<const uint8_t> content_ref = section_to_extend->content();
- std::vector<uint8_t> content = {std::begin(content_ref), std::end(content_ref)};
+ std::vector<uint8_t> content = {content_ref.begin(), content_ref.end()};
content.resize(section_to_extend->size(), 0);
section_to_extend->content(content);
@@ -1313,51 +1318,53 @@ Section* Binary::extend(const Section& section, uint64_t size) {
// Patch
// =====
-void Binary::patch_address(uint64_t address, const std::vector<uint8_t>& patch_value, LIEF::Binary::VA_TYPES) {
+void Binary::patch_address(uint64_t address,
+ const std::vector<uint8_t>& patch_value,
+ LIEF::Binary::VA_TYPES) {
// Object file does not have segments
if (header().file_type() == Header::FILE_TYPE::REL) {
Section* section = section_from_offset(address);
if (section == nullptr) {
- LIEF_ERR("Can't find a section associated with the virtual address 0x{:x}", address);
+ LIEF_ERR("No section found at virtual address {:#x}", address);
return;
}
span<uint8_t> content = section->writable_content();
const uint64_t offset = address - section->file_offset();
if (offset + patch_value.size() > content.size()) {
- LIEF_ERR("The patch value ({} bytes @0x{:x}) is out of bounds of the segment (limit: 0x{:x})",
- patch_value.size(), offset, content.size());
+ LIEF_ERR(
+ "Patch value ({} bytes @{:#x}) exceeds segment bounds (limit: {:#x})",
+ patch_value.size(), offset, content.size()
+ );
return;
}
- std::copy(std::begin(patch_value), std::end(patch_value),
- content.data() + offset);
+ std::copy(patch_value.begin(), patch_value.end(), content.data() + offset);
return;
}
// Find the segment associated with the virtual address
Segment* segment_topatch = segment_from_virtual_address(address);
if (segment_topatch == nullptr) {
- LIEF_ERR("Can't find a segment associated with the virtual address 0x{:x}", address);
+ LIEF_ERR("No segment found at virtual address {:#x}", address);
return;
}
const uint64_t offset = address - segment_topatch->virtual_address();
span<uint8_t> content_ref = segment_topatch->writable_content();
if (offset + patch_value.size() > content_ref.size()) {
- LIEF_ERR("The patch value ({} bytes @0x{:x}) is out of bounds of the segment (limit: 0x{:x})",
+ LIEF_ERR("Patch value ({} bytes @{:#x}) exceeds segment bounds (limit: {:#x})",
patch_value.size(), offset, content_ref.size());
return;
}
- std::copy(std::begin(patch_value), std::end(patch_value),
- content_ref.data() + offset);
+ std::copy(patch_value.begin(), patch_value.end(), content_ref.data() + offset);
}
-void Binary::patch_address(uint64_t address, uint64_t patch_value, size_t size, LIEF::Binary::VA_TYPES) {
+void Binary::patch_address(uint64_t address, uint64_t patch_value, size_t size,
+ LIEF::Binary::VA_TYPES) {
if (size > sizeof(patch_value)) {
- LIEF_ERR("The size of the patch value (0x{:x}) is larger that sizeof(uint64_t) which is not supported",
- size);
+ LIEF_ERR("Patch size ({:#x}) exceeds sizeof(uint64_t)", size);
return;
}
@@ -1365,51 +1372,53 @@ void Binary::patch_address(uint64_t address, uint64_t patch_value, size_t size,
if (header().file_type() == Header::FILE_TYPE::REL) {
Section* section = section_from_offset(address);
if (section == nullptr) {
- LIEF_ERR("Can't find a section associated with the address 0x{:x}", address);
+ LIEF_ERR("No section found at address {:#x}", address);
return;
}
span<uint8_t> content = section->writable_content();
const uint64_t offset = address - section->file_offset();
if (offset > content.size() || (offset + size) > content.size()) {
- LIEF_ERR("The patch value ({} bytes @0x{:x}) is out of bounds of the segment (limit: 0x{:x})",
- size, offset, content.size());
+ LIEF_ERR(
+ "Patch value ({} bytes @{:#x}) exceeds segment bounds (limit: {:#x})",
+ size, offset, content.size()
+ );
}
switch (size) {
case sizeof(uint8_t):
- {
- auto X = static_cast<uint8_t>(patch_value);
- memcpy(content.data() + offset, &X, sizeof(uint8_t));
- break;
- }
+ {
+ auto X = static_cast<uint8_t>(patch_value);
+ memcpy(content.data() + offset, &X, sizeof(uint8_t));
+ break;
+ }
case sizeof(uint16_t):
- {
- auto X = static_cast<uint16_t>(patch_value);
- memcpy(content.data() + offset, &X, sizeof(uint16_t));
- break;
- }
+ {
+ auto X = static_cast<uint16_t>(patch_value);
+ memcpy(content.data() + offset, &X, sizeof(uint16_t));
+ break;
+ }
case sizeof(uint32_t):
- {
- auto X = static_cast<uint32_t>(patch_value);
- memcpy(content.data() + offset, &X, sizeof(uint32_t));
- break;
- }
+ {
+ auto X = static_cast<uint32_t>(patch_value);
+ memcpy(content.data() + offset, &X, sizeof(uint32_t));
+ break;
+ }
case sizeof(uint64_t):
- {
- auto X = static_cast<uint64_t>(patch_value);
- memcpy(content.data() + offset, &X, sizeof(uint64_t));
- break;
- }
+ {
+ auto X = static_cast<uint64_t>(patch_value);
+ memcpy(content.data() + offset, &X, sizeof(uint64_t));
+ break;
+ }
default:
- {
- LIEF_ERR("The provided size ({}) does not match the size of an integer", size);
- return;
- }
+ {
+ LIEF_ERR("Provided size ({}) does not match an integer size", size);
+ return;
+ }
}
return;
@@ -1418,64 +1427,65 @@ void Binary::patch_address(uint64_t address, uint64_t patch_value, size_t size,
Segment* segment_topatch = segment_from_virtual_address(address);
if (segment_topatch == nullptr) {
- LIEF_ERR("Can't find a segment associated with the virtual address 0x{:x}", address);
+ LIEF_ERR("No segment found at virtual address {:#x}", address);
return;
}
const uint64_t offset = address - segment_topatch->virtual_address();
span<uint8_t> content = segment_topatch->writable_content();
if (offset > content.size() || (offset + size) > content.size()) {
- LIEF_ERR("The patch value ({} bytes @0x{:x}) is out of bounds of the segment (limit: 0x{:x})",
+ LIEF_ERR("Patch value ({} bytes @{:#x}) exceeds segment bounds (limit: {:#x})",
size, offset, content.size());
}
switch (size) {
case sizeof(uint8_t):
- {
- const auto X = static_cast<uint8_t>(patch_value);
- memcpy(content.data() + offset, &X, sizeof(uint8_t));
- break;
- }
+ {
+ const auto X = static_cast<uint8_t>(patch_value);
+ memcpy(content.data() + offset, &X, sizeof(uint8_t));
+ break;
+ }
case sizeof(uint16_t):
- {
- const auto X = static_cast<uint16_t>(patch_value);
- memcpy(content.data() + offset, &X, sizeof(uint16_t));
- break;
- }
+ {
+ const auto X = static_cast<uint16_t>(patch_value);
+ memcpy(content.data() + offset, &X, sizeof(uint16_t));
+ break;
+ }
case sizeof(uint32_t):
- {
- const auto X = static_cast<uint32_t>(patch_value);
- memcpy(content.data() + offset, &X, sizeof(uint32_t));
- break;
- }
+ {
+ const auto X = static_cast<uint32_t>(patch_value);
+ memcpy(content.data() + offset, &X, sizeof(uint32_t));
+ break;
+ }
case sizeof(uint64_t):
- {
- const auto X = static_cast<uint64_t>(patch_value);
- memcpy(content.data() + offset, &X, sizeof(uint64_t));
- break;
- }
+ {
+ const auto X = static_cast<uint64_t>(patch_value);
+ memcpy(content.data() + offset, &X, sizeof(uint64_t));
+ break;
+ }
default:
- {
- LIEF_ERR("The provided size ({}) does not match the size of an integer", size);
- return;
- }
+ {
+ LIEF_ERR("Provided size ({}) does not match an integer size", size);
+ return;
+ }
}
}
void Binary::patch_pltgot(const Symbol& symbol, uint64_t address) {
it_pltgot_relocations pltgot_relocations = this->pltgot_relocations();
- const auto it_relocation = std::find_if(std::begin(pltgot_relocations), std::end(pltgot_relocations),
- [&symbol] (const Relocation& relocation) {
- return relocation.has_symbol() && relocation.symbol() == &symbol;
- });
-
- if (it_relocation == std::end(pltgot_relocations)) {
- LIEF_ERR("Unable to find the relocation associated with the symbol {}",
- symbol.name());
+ const auto it_relocation =
+ std::find_if(pltgot_relocations.begin(), pltgot_relocations.end(),
+ [&symbol](const Relocation& relocation) {
+ return relocation.has_symbol() &&
+ relocation.symbol() == &symbol;
+ });
+
+ if (it_relocation == pltgot_relocations.end()) {
+ LIEF_ERR("Relocation not found for symbol {}", symbol.name());
return;
}
@@ -1484,51 +1494,55 @@ void Binary::patch_pltgot(const Symbol& symbol, uint64_t address) {
}
void Binary::patch_pltgot(const std::string& symbol_name, uint64_t address) {
- std::for_each(std::begin(dynamic_symbols_), std::end(dynamic_symbols_),
- [&symbol_name, address, this] (const std::unique_ptr<Symbol>& s) {
- if (s->name() == symbol_name) {
- patch_pltgot(*s, address);
- }
- });
+ std::for_each(dynamic_symbols_.begin(), dynamic_symbols_.end(),
+ [&symbol_name, address, this](const std::unique_ptr<Symbol>& s) {
+ if (s->name() == symbol_name) {
+ patch_pltgot(*s, address);
+ }
+ });
}
const Segment* Binary::segment_from_virtual_address(uint64_t address) const {
- const auto it_segment = std::find_if(segments_.cbegin(), segments_.cend(),
- [address] (const std::unique_ptr<Segment>& segment) {
- return segment->virtual_address() <= address &&
- address < (segment->virtual_address() + segment->virtual_size());
- });
+ const auto it_segment =
+ std::find_if(segments_.cbegin(), segments_.cend(),
+ [address](const std::unique_ptr<Segment>& segment) {
+ return segment->virtual_address() <= address &&
+ address < (segment->virtual_address() +
+ segment->virtual_size());
+ });
if (it_segment == segments_.cend()) {
return nullptr;
}
return it_segment->get();
-
}
-const Segment* Binary::segment_from_virtual_address(Segment::TYPE type, uint64_t address) const {
- const auto it_segment = std::find_if(segments_.cbegin(), segments_.cend(),
- [address, type] (const std::unique_ptr<Segment>& segment) {
- return segment->type() == type &&
- segment->virtual_address() <= address &&
+const Segment* Binary::segment_from_virtual_address(Segment::TYPE type,
+ uint64_t address) const {
+ const auto it_segment = std::find_if(
+ segments_.cbegin(), segments_.cend(),
+ [address, type](const std::unique_ptr<Segment>& segment) {
+ return segment->type() == type && segment->virtual_address() <= address &&
address < (segment->virtual_address() + segment->virtual_size());
- });
+ }
+ );
if (it_segment == segments_.cend()) {
return nullptr;
}
return it_segment->get();
-
}
const Segment* Binary::segment_from_offset(uint64_t offset) const {
- const auto it_segment = std::find_if(segments_.cbegin(), segments_.cend(),
- [&offset] (const std::unique_ptr<Segment>& segment) {
- return segment->file_offset() <= offset &&
- offset < (segment->file_offset() + segment->physical_size());
- });
+ const auto it_segment =
+ std::find_if(segments_.cbegin(), segments_.cend(),
+ [&offset](const std::unique_ptr<Segment>& segment) {
+ return segment->file_offset() <= offset &&
+ offset < (segment->file_offset() +
+ segment->physical_size());
+ });
if (it_segment == segments_.cend()) {
return nullptr;
@@ -1546,22 +1560,24 @@ void Binary::remove_section(const std::string& name, bool clear) {
}
bool Binary::has_section_with_offset(uint64_t offset) const {
- const auto it_section = std::find_if(sections_.cbegin(), sections_.cend(),
- [offset] (const std::unique_ptr<Section>& section) {
- return section->offset() <= offset &&
- offset < (section->offset() + section->size());
- });
+ const auto it_section =
+ std::find_if(sections_.cbegin(), sections_.cend(),
+ [offset](const std::unique_ptr<Section>& section) {
+ return section->offset() <= offset &&
+ offset < (section->offset() + section->size());
+ });
return it_section != sections_.cend();
}
bool Binary::has_section_with_va(uint64_t va) const {
- const auto it_section = std::find_if(sections_.cbegin(), sections_.cend(),
- [va] (const std::unique_ptr<Section>& section) {
- return section->virtual_address() != 0 &&
- section->virtual_address() <= va &&
- va < (section->virtual_address() + section->size());
- });
+ const auto it_section =
+ std::find_if(sections_.cbegin(), sections_.cend(),
+ [va](const std::unique_ptr<Section>& section) {
+ return section->virtual_address() != 0 &&
+ section->virtual_address() <= va &&
+ va < (section->virtual_address() + section->size());
+ });
return it_section != sections_.cend();
}
@@ -1580,7 +1596,8 @@ Symbol& Binary::add_symtab_symbol(const Symbol& symbol) {
}
-Symbol& Binary::add_dynamic_symbol(const Symbol& symbol, const SymbolVersion* version) {
+Symbol& Binary::add_dynamic_symbol(const Symbol& symbol,
+ const SymbolVersion* version) {
auto sym = std::make_unique<Symbol>(symbol);
std::unique_ptr<SymbolVersion> symver;
if (version == nullptr) {
@@ -1591,46 +1608,52 @@ Symbol& Binary::add_dynamic_symbol(const Symbol& symbol, const SymbolVersion* ve
sym->symbol_version_ = symver.get();
- dynamic_symbols_.push_back(std::move(sym));
symbol_version_table_.push_back(std::move(symver));
- return *dynamic_symbols_.back();
-}
-
-result<uint64_t> Binary::virtual_address_to_offset(uint64_t virtual_address) const {
- const auto it_segment = std::find_if(std::begin(segments_), std::end(segments_),
- [virtual_address] (const std::unique_ptr<Segment>& segment) {
- return segment->is_load() &&
- segment->virtual_address() <= virtual_address &&
- virtual_address < (segment->virtual_address() + segment->virtual_size());
- });
-
- if (it_segment == std::end(segments_)) {
- LIEF_DEBUG("Address: 0x{:x}", virtual_address);
+ return **dynamic_symbols_.insert(dynamic_symbols_.end(), std::move(sym));
+}
+
+result<uint64_t>
+ Binary::virtual_address_to_offset(uint64_t virtual_address) const {
+ const auto it_segment =
+ std::find_if(segments_.begin(), segments_.end(),
+ [virtual_address](const std::unique_ptr<Segment>& segment) {
+ return segment->is_load() &&
+ segment->virtual_address() <= virtual_address &&
+ virtual_address < (segment->virtual_address() +
+ segment->virtual_size());
+ });
+
+ if (it_segment == segments_.end()) {
+ LIEF_DEBUG("Address: {:#x}", virtual_address);
return make_error_code(lief_errors::conversion_error);
}
- uint64_t base_address = (*it_segment)->virtual_address() - (*it_segment)->file_offset();
- uint64_t offset = virtual_address - base_address;
+ uint64_t base_address =
+ (*it_segment)->virtual_address() - (*it_segment)->file_offset();
+ uint64_t offset = virtual_address - base_address;
return offset;
}
-result<uint64_t> Binary::offset_to_virtual_address(uint64_t offset, uint64_t slide) const {
- const auto it_segment = std::find_if(std::begin(segments_), std::end(segments_),
- [offset] (const std::unique_ptr<Segment>& segment) {
- return segment->is_load() &&
- segment->file_offset() <= offset &&
+result<uint64_t> Binary::offset_to_virtual_address(uint64_t offset,
+ uint64_t slide) const {
+ const auto it_segment = std::find_if(
+ segments_.begin(), segments_.end(),
+ [offset](const std::unique_ptr<Segment>& segment) {
+ return segment->is_load() && segment->file_offset() <= offset &&
offset < (segment->file_offset() + segment->physical_size());
- });
+ }
+ );
- if (it_segment == std::end(segments_)) {
+ if (it_segment == segments_.end()) {
if (slide > 0) {
return slide + offset;
}
return imagebase() + offset;
}
- const uint64_t base_address = (*it_segment)->virtual_address() - (*it_segment)->file_offset();
+ const uint64_t base_address =
+ (*it_segment)->virtual_address() - (*it_segment)->file_offset();
if (slide > 0) {
return (base_address - imagebase()) + slide + offset;
}
@@ -1639,12 +1662,12 @@ result<uint64_t> Binary::offset_to_virtual_address(uint64_t offset, uint64_t sli
bool Binary::has_interpreter() const {
- const auto it_segment_interp = std::find_if(
- std::begin(segments_), std::end(segments_),
- [] (const std::unique_ptr<Segment>& segment) {
- return segment->is_interpreter();
- });
- return it_segment_interp != std::end(segments_) && !interpreter_.empty();
+ const auto it_segment_interp =
+ std::find_if(segments_.begin(), segments_.end(),
+ [](const std::unique_ptr<Segment>& segment) {
+ return segment->is_interpreter();
+ });
+ return it_segment_interp != segments_.end() && !interpreter_.empty();
}
void Binary::write(const std::string& filename, const Builder::config_t& config) {
@@ -1659,15 +1682,17 @@ void Binary::write(std::ostream& os, const Builder::config_t& config) {
builder.write(os);
}
-const Section* Binary::section_from_offset(uint64_t offset, bool skip_nobits) const {
- const auto it_section = std::find_if(sections_.cbegin(), sections_.cend(),
- [offset, skip_nobits] (const std::unique_ptr<Section>& section) {
- if (skip_nobits && section->type() == Section::TYPE::NOBITS) {
- return false;
- }
- return section->offset() <= offset &&
- offset < (section->offset() + section->size());
- });
+const Section* Binary::section_from_offset(uint64_t offset,
+ bool skip_nobits) const {
+ const auto it_section =
+ std::find_if(sections_.cbegin(), sections_.cend(),
+ [offset, skip_nobits](const std::unique_ptr<Section>& section) {
+ if (skip_nobits && section->type() == Section::TYPE::NOBITS) {
+ return false;
+ }
+ return section->offset() <= offset &&
+ offset < (section->offset() + section->size());
+ });
if (it_section == sections_.cend()) {
return nullptr;
@@ -1676,16 +1701,19 @@ const Section* Binary::section_from_offset(uint64_t offset, bool skip_nobits) co
return it_section->get();
}
-const Section* Binary::section_from_virtual_address(uint64_t address, bool skip_nobits) const {
- const auto it_section = std::find_if(sections_.cbegin(), sections_.cend(),
- [address, skip_nobits] (const std::unique_ptr<Section>& section) {
+const Section* Binary::section_from_virtual_address(uint64_t address,
+ bool skip_nobits) const {
+ const auto it_section = std::find_if(
+ sections_.cbegin(), sections_.cend(),
+ [address, skip_nobits](const std::unique_ptr<Section>& section) {
if (skip_nobits && section->type() == Section::TYPE::NOBITS) {
return false;
}
return section->virtual_address() != 0 &&
section->virtual_address() <= address &&
address < (section->virtual_address() + section->size());
- });
+ }
+ );
if (it_section == sections_.cend()) {
return nullptr;
@@ -1695,9 +1723,9 @@ const Section* Binary::section_from_virtual_address(uint64_t address, bool skip_
}
span<const uint8_t>
-Binary::get_content_from_virtual_address(uint64_t virtual_address,
- uint64_t size, Binary::VA_TYPES) const
-{
+ Binary::get_content_from_virtual_address(uint64_t virtual_address,
+ uint64_t size,
+ Binary::VA_TYPES) const {
const Segment* segment = segment_from_virtual_address(virtual_address);
if (segment == nullptr) {
return {};
@@ -1720,26 +1748,26 @@ Binary::get_content_from_virtual_address(uint64_t virtual_address,
const DynamicEntry* Binary::get(DynamicEntry::TAG tag) const {
- const auto it_entry = std::find_if(
- std::begin(dynamic_entries_), std::end(dynamic_entries_),
- [tag] (const std::unique_ptr<DynamicEntry>& entry) {
- return entry->tag() == tag;
- });
+ const auto it_entry =
+ std::find_if(dynamic_entries_.begin(), dynamic_entries_.end(),
+ [tag](const std::unique_ptr<DynamicEntry>& entry) {
+ return entry->tag() == tag;
+ });
- if (it_entry == std::end(dynamic_entries_)) {
+ if (it_entry == dynamic_entries_.end()) {
return nullptr;
}
return it_entry->get();
}
const Segment* Binary::get(Segment::TYPE type) const {
- const auto it_segment = std::find_if(
- std::begin(segments_), std::end(segments_),
- [type] (const std::unique_ptr<Segment>& segment) {
- return segment->type() == type;
- });
+ const auto it_segment =
+ std::find_if(segments_.begin(), segments_.end(),
+ [type](const std::unique_ptr<Segment>& segment) {
+ return segment->type() == type;
+ });
- if (it_segment == std::end(segments_)) {
+ if (it_segment == segments_.end()) {
return nullptr;
}
@@ -1747,12 +1775,11 @@ const Segment* Binary::get(Segment::TYPE type) const {
}
const Note* Binary::get(Note::TYPE type) const {
- const auto it_note = std::find_if(
- std::begin(notes_), std::end(notes_),
- [type] (const std::unique_ptr<Note>& note) {
- return note->type() == type;
- });
- if (it_note == std::end(notes_)) {
+ const auto it_note = std::find_if(notes_.begin(), notes_.end(),
+ [type](const std::unique_ptr<Note>& note) {
+ return note->type() == type;
+ });
+ if (it_note == notes_.end()) {
return nullptr;
}
@@ -1760,13 +1787,13 @@ const Note* Binary::get(Note::TYPE type) const {
}
const Section* Binary::get(Section::TYPE type) const {
- const auto it_section = std::find_if(
- std::begin(sections_), std::end(sections_),
- [type] (const std::unique_ptr<Section>& section) {
- return section->type() == type;
- });
+ const auto it_section =
+ std::find_if(sections_.begin(), sections_.end(),
+ [type](const std::unique_ptr<Section>& section) {
+ return section->type() == type;
+ });
- if (it_section == std::end(sections_)) {
+ if (it_section == sections_.end()) {
return nullptr;
}
@@ -1780,30 +1807,33 @@ void Binary::permute_dynamic_symbols(const std::vector<size_t>& permutation) {
continue;
}
- if (dynamic_symbols_[i]->has_version() && dynamic_symbols_[permutation[i]]->has_version()) {
+ if (dynamic_symbols_[i]->has_version() &&
+ dynamic_symbols_[permutation[i]]->has_version())
+ {
std::swap(symbol_version_table_[i], symbol_version_table_[permutation[i]]);
std::swap(dynamic_symbols_[i], dynamic_symbols_[permutation[i]]);
done.insert(permutation[i]);
done.insert(i);
- } else if (!dynamic_symbols_[i]->has_version() && !dynamic_symbols_[permutation[i]]->has_version()) {
+ } else if (!dynamic_symbols_[i]->has_version() &&
+ !dynamic_symbols_[permutation[i]]->has_version())
+ {
std::swap(dynamic_symbols_[i], dynamic_symbols_[permutation[i]]);
done.insert(permutation[i]);
done.insert(i);
} else {
- LIEF_ERR("Can't apply permutation at index #{:d}", i);
+ LIEF_ERR("Failed to apply permutation at index #{:d}", i);
}
-
}
}
bool Binary::has_notes() const {
- const auto it_segment_note = std::find_if(
- std::begin(segments_), std::end(segments_),
- [] (const std::unique_ptr<Segment>& segment) {
- return segment->type() == Segment::TYPE::NOTE;
- });
+ const auto it_segment_note =
+ std::find_if(segments_.begin(), segments_.end(),
+ [](const std::unique_ptr<Segment>& segment) {
+ return segment->type() == Segment::TYPE::NOTE;
+ });
- return it_segment_note != std::end(segments_) && notes().size() > 0;
+ return it_segment_note != segments_.end() && notes().size() > 0;
}
void Binary::accept(LIEF::Visitor& visitor) const {
@@ -1829,7 +1859,7 @@ void Binary::shift_sections(uint64_t from, uint64_t shift) {
void Binary::shift_segments(uint64_t from, uint64_t shift) {
- LIEF_DEBUG("Shift segments by 0x{:x} from 0x{:x}", shift, from);
+ LIEF_DEBUG("Shifting segments by {:#x} from {:#x}", shift, from);
for (std::unique_ptr<Segment>& segment : segments_) {
if (segment->file_offset() >= from) {
@@ -1842,67 +1872,246 @@ void Binary::shift_segments(uint64_t from, uint64_t shift) {
}
}
-void Binary::shift_dynamic_entries(uint64_t from, uint64_t shift) {
- LIEF_DEBUG("Shift dynamic entries by 0x{:x} from 0x{:x}", shift, from);
+static void do_dynamic_entry_shift(uint64_t from, uint64_t shift,
+ DynamicEntry& entry,
+ Header::CLASS binary_type) {
+ switch (entry.tag()) {
+ // Address/Offset types
+ case DynamicEntry::TAG::PLTGOT:
+ case DynamicEntry::TAG::HASH:
+ case DynamicEntry::TAG::STRTAB:
+ case DynamicEntry::TAG::SYMTAB:
+ case DynamicEntry::TAG::RELA:
+ case DynamicEntry::TAG::INIT:
+ case DynamicEntry::TAG::FINI:
+ case DynamicEntry::TAG::REL:
+ case DynamicEntry::TAG::JMPREL:
+ case DynamicEntry::TAG::SYMTAB_SHNDX:
+ case DynamicEntry::TAG::RELR:
+ case DynamicEntry::TAG::GNU_HASH:
+ case DynamicEntry::TAG::TLSDESC_PLT:
+ case DynamicEntry::TAG::TLSDESC_GOT:
+ case DynamicEntry::TAG::VERSYM:
+ case DynamicEntry::TAG::VERDEF:
+ case DynamicEntry::TAG::VERNEED:
+ case DynamicEntry::TAG::ANDROID_REL_OFFSET:
+ case DynamicEntry::TAG::ANDROID_REL:
+ case DynamicEntry::TAG::ANDROID_RELA:
+ case DynamicEntry::TAG::ANDROID_RELR:
+ case DynamicEntry::TAG::MIPS_MSYM:
+ case DynamicEntry::TAG::MIPS_CONFLICT:
+ case DynamicEntry::TAG::MIPS_LIBLIST:
+ case DynamicEntry::TAG::MIPS_SYMBOL_LIB:
+ case DynamicEntry::TAG::MIPS_OPTIONS:
+ case DynamicEntry::TAG::MIPS_INTERFACE:
+ case DynamicEntry::TAG::MIPS_AUX_DYNAMIC:
+ case DynamicEntry::TAG::MIPS_PLTGOT:
+ // Absolute address of the runtime loader map, used for debugging.
+ case DynamicEntry::TAG::MIPS_RLD_MAP:
+ {
+ if (entry.value() >= from) {
+ entry.value(entry.value() + shift);
+ }
+ return;
+ }
- for (std::unique_ptr<DynamicEntry>& entry : dynamic_entries_) {
- LIEF_DEBUG("[BEFORE] {}", to_string(*entry));
- switch (entry->tag()) {
- case DynamicEntry::TAG::PLTGOT:
- case DynamicEntry::TAG::HASH:
- case DynamicEntry::TAG::GNU_HASH:
- case DynamicEntry::TAG::STRTAB:
- case DynamicEntry::TAG::SYMTAB:
- case DynamicEntry::TAG::RELA:
- case DynamicEntry::TAG::RELR:
- case DynamicEntry::TAG::REL:
- case DynamicEntry::TAG::JMPREL:
- case DynamicEntry::TAG::INIT:
- case DynamicEntry::TAG::FINI:
- case DynamicEntry::TAG::VERSYM:
- case DynamicEntry::TAG::VERDEF:
- case DynamicEntry::TAG::VERNEED:
- {
- if (entry->value() >= from) {
- entry->value(entry->value() + shift);
+ // Array of address/offset types
+ case DynamicEntry::TAG::INIT_ARRAY:
+ case DynamicEntry::TAG::FINI_ARRAY:
+ case DynamicEntry::TAG::PREINIT_ARRAY:
+ {
+ DynamicEntryArray::array_t& array = entry.as<DynamicEntryArray>()->array();
+ for (uint64_t& address : array) {
+ if (address >= from) {
+ if ((binary_type == Header::CLASS::ELF32 &&
+ static_cast<int32_t>(address) > 0) ||
+ (binary_type == Header::CLASS::ELF64 &&
+ static_cast<int64_t>(address) > 0))
+ {
+ address += shift;
}
- break;
}
+ }
- case DynamicEntry::TAG::INIT_ARRAY:
- case DynamicEntry::TAG::FINI_ARRAY:
- case DynamicEntry::TAG::PREINIT_ARRAY:
- {
- DynamicEntryArray::array_t& array = entry->as<DynamicEntryArray>()->array();
- for (uint64_t& address : array) {
- if (address >= from) {
- if ((type() == Header::CLASS::ELF32 && static_cast<int32_t>(address) > 0) ||
- (type() == Header::CLASS::ELF64 && static_cast<int64_t>(address) > 0))
- {
- address += shift;
- }
- }
- }
+ if (entry.value() >= from) {
+ entry.value(entry.value() + shift);
+ }
+ return;
+ }
- if (entry->value() >= from) {
- entry->value(entry->value() + shift);
- }
- break;
- }
+ // Plain/No value types
+ case DynamicEntry::TAG::UNKNOWN:
+ case DynamicEntry::TAG::DT_NULL_:
+ case DynamicEntry::TAG::NEEDED:
+ case DynamicEntry::TAG::PLTRELSZ:
+ case DynamicEntry::TAG::RELASZ:
+ case DynamicEntry::TAG::RELAENT:
+ case DynamicEntry::TAG::STRSZ:
+ case DynamicEntry::TAG::SYMENT:
+ case DynamicEntry::TAG::SONAME:
+ case DynamicEntry::TAG::RPATH:
+ case DynamicEntry::TAG::SYMBOLIC:
+ case DynamicEntry::TAG::RELSZ:
+ case DynamicEntry::TAG::RELENT:
+ case DynamicEntry::TAG::PLTREL:
+ case DynamicEntry::TAG::DEBUG_TAG:
+ case DynamicEntry::TAG::TEXTREL:
+ case DynamicEntry::TAG::BIND_NOW:
+ case DynamicEntry::TAG::INIT_ARRAYSZ:
+ case DynamicEntry::TAG::FINI_ARRAYSZ:
+ case DynamicEntry::TAG::RUNPATH:
+ case DynamicEntry::TAG::FLAGS:
+ case DynamicEntry::TAG::PREINIT_ARRAYSZ:
+ case DynamicEntry::TAG::RELRSZ:
+ case DynamicEntry::TAG::RELRENT:
+ case DynamicEntry::TAG::RELACOUNT:
+ case DynamicEntry::TAG::RELCOUNT:
+ case DynamicEntry::TAG::FLAGS_1:
+ case DynamicEntry::TAG::VERDEFNUM:
+ case DynamicEntry::TAG::VERNEEDNUM:
+ case DynamicEntry::TAG::AUXILIARY:
+ case DynamicEntry::TAG::FILTER:
+ case DynamicEntry::TAG::ANDROID_REL_SIZE:
+ case DynamicEntry::TAG::ANDROID_RELSZ:
+ case DynamicEntry::TAG::ANDROID_RELASZ:
+ case DynamicEntry::TAG::ANDROID_RELRSZ:
+ case DynamicEntry::TAG::ANDROID_RELRENT:
+ case DynamicEntry::TAG::ANDROID_RELRCOUNT:
+ case DynamicEntry::TAG::MIPS_RLD_VERSION:
+ case DynamicEntry::TAG::MIPS_TIME_STAMP:
+ case DynamicEntry::TAG::MIPS_ICHECKSUM:
+ case DynamicEntry::TAG::MIPS_IVERSION:
+ case DynamicEntry::TAG::MIPS_FLAGS:
+ case DynamicEntry::TAG::MIPS_BASE_ADDRESS:
+ case DynamicEntry::TAG::MIPS_LOCAL_GOTNO:
+ case DynamicEntry::TAG::MIPS_CONFLICTNO:
+ case DynamicEntry::TAG::MIPS_LIBLISTNO:
+ case DynamicEntry::TAG::MIPS_SYMTABNO:
+ case DynamicEntry::TAG::MIPS_UNREFEXTNO:
+ case DynamicEntry::TAG::MIPS_GOTSYM:
+ case DynamicEntry::TAG::MIPS_HIPAGENO:
+ case DynamicEntry::TAG::MIPS_DELTA_CLASS_NO:
+ case DynamicEntry::TAG::MIPS_DELTA_INSTANCE_NO:
+ case DynamicEntry::TAG::MIPS_DELTA_RELOC_NO:
+ case DynamicEntry::TAG::MIPS_DELTA_SYM_NO:
+ case DynamicEntry::TAG::MIPS_DELTA_CLASSSYM_NO:
+ case DynamicEntry::TAG::MIPS_CXX_FLAGS:
+ case DynamicEntry::TAG::MIPS_LOCALPAGE_GOTIDX:
+ case DynamicEntry::TAG::MIPS_LOCAL_GOTIDX:
+ case DynamicEntry::TAG::MIPS_HIDDEN_GOTIDX:
+ case DynamicEntry::TAG::MIPS_PROTECTED_GOTIDX:
+ case DynamicEntry::TAG::MIPS_INTERFACE_SIZE:
+ case DynamicEntry::TAG::MIPS_RLD_TEXT_RESOLVE_ADDR:
+ case DynamicEntry::TAG::MIPS_PERF_SUFFIX:
+ case DynamicEntry::TAG::MIPS_COMPACT_SIZE:
+ case DynamicEntry::TAG::MIPS_GP_VALUE:
+ {
+ // Explicitly annotate the entry types that don't need shifting. We want to
+ // warn if we miss something.
+ return;
+ }
- default:
- {
- //LIEF_DEBUG("{} not supported", to_string(entry->tag()));
- }
+ // DT_MIPS_RLD_MAP_REL holds an offset **relative** to the address of its own
+ // entry
+ case DynamicEntry::TAG::MIPS_RLD_MAP_REL:
+
+ // Not yet documented types
+ // If a type is here despite having a description then there is not enough
+ // clarity about whether we affect it.
+ // TODO: These should be reduced to zero by moving them to the correct
+ // category.
+ case DynamicEntry::TAG::MIPS_DELTA_CLASS: /**< Delta C++ class definition. */
+ case DynamicEntry::TAG::MIPS_DELTA_INSTANCE: /**< Delta C++ class instances. */
+ case DynamicEntry::TAG::MIPS_DELTA_RELOC: /**< Delta relocations. */
+ case DynamicEntry::TAG::MIPS_DELTA_SYM: /**< Delta symbols that Delta
+ relocations refer to. */
+ case DynamicEntry::TAG::MIPS_DELTA_CLASSSYM: /**< Delta symbols that hold class
+ declarations. */
+ case DynamicEntry::TAG::MIPS_PIXIE_INIT: /**< Pixie information (??? [sic]). */
+ case DynamicEntry::TAG::MIPS_DYNSTR_ALIGN: /**< Unknown. */
+ case DynamicEntry::TAG::MIPS_RWPLT:
+ case DynamicEntry::TAG::MIPS_XHASH:
+ case DynamicEntry::TAG::AARCH64_BTI_PLT:
+ case DynamicEntry::TAG::AARCH64_PAC_PLT:
+ case DynamicEntry::TAG::AARCH64_VARIANT_PCS:
+ case DynamicEntry::TAG::AARCH64_MEMTAG_MODE:
+ case DynamicEntry::TAG::AARCH64_MEMTAG_HEAP:
+ case DynamicEntry::TAG::AARCH64_MEMTAG_STACK:
+ case DynamicEntry::TAG::AARCH64_MEMTAG_GLOBALS:
+ case DynamicEntry::TAG::AARCH64_MEMTAG_GLOBALSSZ:
+ case DynamicEntry::TAG::HEXAGON_SYMSZ:
+ case DynamicEntry::TAG::HEXAGON_VER:
+ case DynamicEntry::TAG::HEXAGON_PLT:
+ case DynamicEntry::TAG::PPC_GOT:
+ case DynamicEntry::TAG::PPC_OPT:
+ case DynamicEntry::TAG::PPC64_GLINK:
+ case DynamicEntry::TAG::PPC64_OPT:
+ case DynamicEntry::TAG::RISCV_VARIANT_CC:
+ case DynamicEntry::TAG::X86_64_PLT:
+ case DynamicEntry::TAG::X86_64_PLTSZ:
+ case DynamicEntry::TAG::X86_64_PLTENT:
+ case DynamicEntry::TAG::IA_64_PLT_RESERVE:
+ case DynamicEntry::TAG::IA_64_VMS_SUBTYPE:
+ case DynamicEntry::TAG::IA_64_VMS_IMGIOCNT:
+ case DynamicEntry::TAG::IA_64_VMS_LNKFLAGS:
+ case DynamicEntry::TAG::IA_64_VMS_VIR_MEM_BLK_SIZ:
+ case DynamicEntry::TAG::IA_64_VMS_IDENT:
+ case DynamicEntry::TAG::IA_64_VMS_NEEDED_IDENT:
+ case DynamicEntry::TAG::IA_64_VMS_IMG_RELA_CNT:
+ case DynamicEntry::TAG::IA_64_VMS_SEG_RELA_CNT:
+ case DynamicEntry::TAG::IA_64_VMS_FIXUP_RELA_CNT:
+ case DynamicEntry::TAG::IA_64_VMS_FIXUP_NEEDED:
+ case DynamicEntry::TAG::IA_64_VMS_SYMVEC_CNT:
+ case DynamicEntry::TAG::IA_64_VMS_XLATED:
+ case DynamicEntry::TAG::IA_64_VMS_STACKSIZE:
+ case DynamicEntry::TAG::IA_64_VMS_UNWINDSZ:
+ case DynamicEntry::TAG::IA_64_VMS_UNWIND_CODSEG:
+ case DynamicEntry::TAG::IA_64_VMS_UNWIND_INFOSEG:
+ case DynamicEntry::TAG::IA_64_VMS_LINKTIME:
+ case DynamicEntry::TAG::IA_64_VMS_SEG_NO:
+ case DynamicEntry::TAG::IA_64_VMS_SYMVEC_OFFSET:
+ case DynamicEntry::TAG::IA_64_VMS_SYMVEC_SEG:
+ case DynamicEntry::TAG::IA_64_VMS_UNWIND_OFFSET:
+ case DynamicEntry::TAG::IA_64_VMS_UNWIND_SEG:
+ case DynamicEntry::TAG::IA_64_VMS_STRTAB_OFFSET:
+ case DynamicEntry::TAG::IA_64_VMS_SYSVER_OFFSET:
+ case DynamicEntry::TAG::IA_64_VMS_IMG_RELA_OFF:
+ case DynamicEntry::TAG::IA_64_VMS_SEG_RELA_OFF:
+ case DynamicEntry::TAG::IA_64_VMS_FIXUP_RELA_OFF:
+ case DynamicEntry::TAG::IA_64_VMS_PLTGOT_OFFSET:
+ case DynamicEntry::TAG::IA_64_VMS_PLTGOT_SEG:
+ case DynamicEntry::TAG::IA_64_VMS_FPMODE:
+ {
+ LIEF_WARN("Shifting behavior of dynamic entry {} not defined",
+ to_string(entry.tag()));
+ return;
}
+ }
+
+ // The lack of a 'default' option in the above cases should also warn at
+ // build-time if this is reachable with a known enum value.
+ LIEF_WARN("Shifting behavior of dynamic entry {} not defined",
+ to_string(entry.tag()));
+}
+
+void Binary::shift_dynamic_entries(uint64_t from, uint64_t shift) {
+ LIEF_DEBUG("Shifting dynamic entries by {:#x} from {:#x}", shift, from);
+
+ for (std::unique_ptr<DynamicEntry>& entry : dynamic_entries_) {
+ LIEF_DEBUG("[BEFORE] {}", to_string(*entry));
+ do_dynamic_entry_shift(from, shift, *entry, type());
LIEF_DEBUG("[AFTER ] {}", to_string(*entry));
}
}
void Binary::shift_symbols(uint64_t from, uint64_t shift) {
- LIEF_DEBUG("Shift symbols by 0x{:x} from 0x{:x}", shift, from);
+ LIEF_DEBUG("Shifting symbols by {:#x} from {:#x}", shift, from);
for (Symbol& symbol : symbols()) {
+ if (symbol.type() == Symbol::TYPE::TLS) {
+ continue;
+ }
+
if (symbol.value() >= from) {
LIEF_DEBUG("[BEFORE] {}", to_string(symbol));
symbol.value(symbol.value() + shift);
@@ -1913,79 +2122,75 @@ void Binary::shift_symbols(uint64_t from, uint64_t shift) {
void Binary::shift_relocations(uint64_t from, uint64_t shift) {
const ARCH arch = header().machine_type();
- LIEF_DEBUG("Shift relocations for {} by 0x{:x} from 0x{:x}", to_string(arch), shift, from);
+ LIEF_DEBUG("Shift relocations for {} by {:#x} from {:#x}", to_string(arch),
+ shift, from);
- switch(arch) {
- case ARCH::ARM:
- patch_relocations<ARCH::ARM>(from, shift); return;
+ switch (arch) {
+ case ARCH::ARM: patch_relocations<ARCH::ARM>(from, shift); return;
- case ARCH::AARCH64:
- patch_relocations<ARCH::AARCH64>(from, shift); return;
+ case ARCH::AARCH64: patch_relocations<ARCH::AARCH64>(from, shift); return;
- case ARCH::X86_64:
- patch_relocations<ARCH::X86_64>(from, shift); return;
+ case ARCH::X86_64: patch_relocations<ARCH::X86_64>(from, shift); return;
- case ARCH::I386:
- patch_relocations<ARCH::I386>(from, shift); return;
+ case ARCH::I386: patch_relocations<ARCH::I386>(from, shift); return;
- case ARCH::PPC:
- patch_relocations<ARCH::PPC>(from, shift); return;
+ case ARCH::PPC: patch_relocations<ARCH::PPC>(from, shift); return;
- case ARCH::PPC64:
- patch_relocations<ARCH::PPC64>(from, shift); return;
+ case ARCH::PPC64: patch_relocations<ARCH::PPC64>(from, shift); return;
- case ARCH::RISCV:
- patch_relocations<ARCH::RISCV>(from, shift); return;
+ case ARCH::RISCV: patch_relocations<ARCH::RISCV>(from, shift); return;
- case ARCH::SH:
- patch_relocations<ARCH::SH>(from, shift); return;
+ case ARCH::SH: patch_relocations<ARCH::SH>(from, shift); return;
- case ARCH::S390:
- patch_relocations<ARCH::S390>(from, shift); return;
+ case ARCH::S390: patch_relocations<ARCH::S390>(from, shift); return;
default:
- {
- LIEF_DEBUG("Relocations for architecture {} are not supported", to_string(arch));
- }
+ {
+ LIEF_DEBUG("Unsupported relocation architecture: {}", to_string(arch));
+ }
}
}
uint64_t Binary::last_offset_section() const {
- return std::accumulate(std::begin(sections_), std::end(sections_), 0llu,
- [] (uint64_t offset, const std::unique_ptr<Section>& section) {
+ return std::accumulate(
+ sections_.begin(), sections_.end(), 0llu,
+ [](uint64_t offset, const std::unique_ptr<Section>& section) {
if (section->is_frame()) {
return offset;
}
- return std::max<uint64_t>(section->file_offset() + section->size(), offset);
- });
+ if (section->type() == Section::TYPE::NOBITS) {
+ return offset;
+ }
+ return std::max<uint64_t>(section->file_offset() + section->size(),
+ offset);
+ }
+ );
}
uint64_t Binary::last_offset_segment() const {
- return std::accumulate(std::begin(segments_), std::end(segments_), 0llu,
- [] (uint64_t offset, const std::unique_ptr<Segment>& segment) {
- return std::max<uint64_t>(segment->file_offset() + segment->physical_size(), offset);
- });
+ return std::accumulate(segments_.begin(), segments_.end(), 0llu,
+ [](uint64_t offset,
+ const std::unique_ptr<Segment>& segment) {
+ return std::max<uint64_t>(segment->file_offset() +
+ segment->physical_size(),
+ offset);
+ });
}
uint64_t Binary::next_virtual_address() const {
- uint64_t va = std::accumulate(std::begin(segments_), std::end(segments_), uint64_t{ 0u },
- [] (uint64_t address, const std::unique_ptr<Segment>& segment) {
- return std::max<uint64_t>(segment->virtual_address() + segment->virtual_size(), address);
- });
-
- if (type() == Header::CLASS::ELF32) {
- va = round<uint32_t>(static_cast<uint32_t>(va));
- }
-
- if (type() == Header::CLASS::ELF64) {
- va = round<uint64_t>(static_cast<uint64_t>(va));
- }
-
- return va;
+ uint64_t va = std::accumulate(
+ segments_.begin(), segments_.end(), uint64_t{0u},
+ [](uint64_t address, const std::unique_ptr<Segment>& segment) {
+ return std::max<uint64_t>(
+ segment->virtual_address() + segment->virtual_size(), address
+ );
+ }
+ );
+ return align(va, page_size());
}
@@ -1997,21 +2202,23 @@ DynamicEntryLibrary& Binary::add_library(const std::string& library_name) {
void Binary::remove_library(const std::string& library_name) {
DynamicEntryLibrary* lib = get_library(library_name);
if (lib == nullptr) {
- LIEF_ERR("Can't find a library with the name '{}'", library_name);
+ LIEF_ERR("Library '{}' not found", library_name);
return;
}
remove(*lib);
}
-const DynamicEntryLibrary* Binary::get_library(const std::string& library_name) const {
- const auto it_needed = std::find_if(std::begin(dynamic_entries_), std::end(dynamic_entries_),
- [&library_name] (const std::unique_ptr<DynamicEntry>& entry) {
- if (const auto* lib = entry->cast<DynamicEntryLibrary>()) {
- return lib->name() == library_name;
- }
- return false;
- });
- if (it_needed == std::end(dynamic_entries_)) {
+const DynamicEntryLibrary*
+ Binary::get_library(const std::string& library_name) const {
+ const auto it_needed =
+ std::find_if(dynamic_entries_.begin(), dynamic_entries_.end(),
+ [&library_name](const std::unique_ptr<DynamicEntry>& entry) {
+ if (const auto* lib = entry->cast<DynamicEntryLibrary>()) {
+ return lib->name() == library_name;
+ }
+ return false;
+ });
+ if (it_needed == dynamic_entries_.end()) {
return nullptr;
}
return static_cast<const DynamicEntryLibrary*>(it_needed->get());
@@ -2023,12 +2230,12 @@ LIEF::Binary::functions_t Binary::tor_functions(DynamicEntry::TAG tag) const {
if (entry == nullptr || !DynamicEntryArray::classof(entry)) {
return {};
}
- const DynamicEntryArray::array_t& array = entry->as<DynamicEntryArray>()->array();
+ const DynamicEntryArray::array_t& array =
+ entry->as<DynamicEntryArray>()->array();
functions.reserve(array.size());
for (uint64_t x : array) {
- if (x != 0 &&
- static_cast<uint32_t>(x) != static_cast<uint32_t>(-1) &&
+ if (x != 0 && static_cast<uint32_t>(x) != static_cast<uint32_t>(-1) &&
x != static_cast<uint64_t>(-1))
{
functions.emplace_back(x);
@@ -2042,30 +2249,26 @@ LIEF::Binary::functions_t Binary::ctor_functions() const {
LIEF::Binary::functions_t functions;
LIEF::Binary::functions_t init = tor_functions(DynamicEntry::TAG::INIT_ARRAY);
- std::transform(
- std::make_move_iterator(std::begin(init)), std::make_move_iterator(std::end(init)),
- std::back_inserter(functions),
- [] (Function&& f) {
- f.add(Function::FLAGS::CONSTRUCTOR);
- f.name("__dt_init_array");
- return f;
- });
-
- LIEF::Binary::functions_t preinit = tor_functions(DynamicEntry::TAG::PREINIT_ARRAY);
- std::transform(
- std::make_move_iterator(std::begin(preinit)),
- std::make_move_iterator(std::end(preinit)),
- std::back_inserter(functions),
- [] (Function&& f) {
- f.add(Function::FLAGS::CONSTRUCTOR);
- f.name("__dt_preinit_array");
- return f;
- });
+ std::transform(init.begin(), init.end(), std::back_inserter(functions),
+ [](Function& f) {
+ f.add(Function::FLAGS::CONSTRUCTOR);
+ f.name("__dt_init_array");
+ return f;
+ });
+
+ LIEF::Binary::functions_t preinit =
+ tor_functions(DynamicEntry::TAG::PREINIT_ARRAY);
+ std::transform(preinit.begin(), preinit.end(), std::back_inserter(functions),
+ [](Function& f) {
+ f.add(Function::FLAGS::CONSTRUCTOR);
+ f.name("__dt_preinit_array");
+ return f;
+ });
const DynamicEntry* dt_init = get(DynamicEntry::TAG::INIT);
if (dt_init != nullptr) {
- functions.emplace_back("__dt_init",
- dt_init->value(), Function::FLAGS::CONSTRUCTOR);
+ functions.emplace_back("__dt_init", dt_init->value(),
+ Function::FLAGS::CONSTRUCTOR);
}
return functions;
}
@@ -2076,45 +2279,42 @@ LIEF::Binary::functions_t Binary::dtor_functions() const {
LIEF::Binary::functions_t functions;
LIEF::Binary::functions_t fini = tor_functions(DynamicEntry::TAG::FINI_ARRAY);
- std::transform(
- std::make_move_iterator(std::begin(fini)), std::make_move_iterator(std::end(fini)),
- std::back_inserter(functions),
- [] (Function&& f) {
- f.add(Function::FLAGS::DESTRUCTOR);
- f.name("__dt_fini_array");
- return f;
- });
+ std::transform(fini.begin(), fini.end(), std::back_inserter(functions),
+ [](Function& f) {
+ f.add(Function::FLAGS::DESTRUCTOR);
+ f.name("__dt_fini_array");
+ return f;
+ });
const DynamicEntry* dt_fini = get(DynamicEntry::TAG::FINI);
if (dt_fini != nullptr) {
- functions.emplace_back("__dt_fini",
- dt_fini->value(), Function::FLAGS::DESTRUCTOR);
+ functions.emplace_back("__dt_fini", dt_fini->value(),
+ Function::FLAGS::DESTRUCTOR);
}
return functions;
}
const Relocation* Binary::get_relocation(uint64_t address) const {
- const auto it = std::find_if(std::begin(relocations_), std::end(relocations_),
- [address] (const std::unique_ptr<Relocation>& r) {
+ const auto it = std::find_if(relocations_.begin(), relocations_.end(),
+ [address](const std::unique_ptr<Relocation>& r) {
return r->address() == address;
});
- if (it != std::end(relocations_)) {
+ if (it != relocations_.end()) {
return it->get();
}
return nullptr;
-
}
const Relocation* Binary::get_relocation(const Symbol& symbol) const {
- const auto it = std::find_if(std::begin(relocations_), std::end(relocations_),
- [&symbol] (const std::unique_ptr<Relocation>& r) {
+ const auto it = std::find_if(relocations_.begin(), relocations_.end(),
+ [&symbol](const std::unique_ptr<Relocation>& r) {
return r->has_symbol() && r->symbol() == &symbol;
});
- if (it != std::end(relocations_)) {
+ if (it != relocations_.end()) {
return it->get();
}
@@ -2132,7 +2332,7 @@ const Relocation* Binary::get_relocation(const std::string& symbol_name) const {
LIEF::Binary::functions_t Binary::armexid_functions() const {
LIEF::Binary::functions_t funcs;
- static const auto expand_prel31 = [] (uint32_t word, uint32_t base) {
+ static const auto expand_prel31 = [](uint32_t word, uint32_t base) {
uint32_t offset = word & 0x7fffffff;
if ((offset & 0x40000000) != 0u) {
offset |= ~static_cast<uint32_t>(0x7fffffff);
@@ -2148,11 +2348,12 @@ LIEF::Binary::functions_t Binary::armexid_functions() const {
const auto* entries = reinterpret_cast<const uint32_t*>(content.data());
for (size_t i = 0; i < 2 * nb_functions; i += 2) {
- uint32_t first_word = entries[i];
+ uint32_t first_word = entries[i];
/*uint32_t second_word = entries[i + 1]; */
if ((first_word & 0x80000000) == 0) {
- uint32_t prs_data = expand_prel31(first_word, exidx->virtual_address() + i * sizeof(uint32_t));
+ uint32_t prs_data = expand_prel31(first_word, exidx->virtual_address() +
+ i * sizeof(uint32_t));
funcs.emplace_back(prs_data);
}
}
@@ -2169,20 +2370,24 @@ LIEF::Binary::functions_t Binary::eh_frame_functions() const {
}
const uint64_t eh_frame_addr = eh_frame_seg->virtual_address();
- const uint64_t eh_frame_rva = eh_frame_addr - imagebase();
- uint64_t eh_frame_off = 0;
+ const uint64_t eh_frame_rva = eh_frame_addr - imagebase();
+ uint64_t eh_frame_off = 0;
if (auto res = virtual_address_to_offset(eh_frame_addr)) {
eh_frame_off = *res;
} else {
- LIEF_WARN("Can't convert the PT_GNU_EH_FRAME virtual address into an offset (0x{:x})", eh_frame_addr);
+ LIEF_WARN(
+ "Failed to convert PT_GNU_EH_FRAME virtual address to offset ({:#x})",
+ eh_frame_addr
+ );
return functions;
}
- const Segment* load_segment = segment_from_virtual_address(Segment::TYPE::LOAD, eh_frame_addr);
+ const Segment* load_segment =
+ segment_from_virtual_address(Segment::TYPE::LOAD, eh_frame_addr);
if (load_segment == nullptr) {
- LIEF_ERR("Unable to find the LOAD segment associated with PT_GNU_EH_FRAME");
+ LIEF_ERR("LOAD segment for PT_GNU_EH_FRAME not found");
return functions;
}
@@ -2193,23 +2398,23 @@ LIEF::Binary::functions_t Binary::eh_frame_functions() const {
vs.setpos(eh_frame_off);
if (vs.size() < 4 * sizeof(uint8_t)) {
- LIEF_WARN("Unable to read EH frame header");
+ LIEF_WARN("Failed to read EH frame header");
return functions;
}
// Read Eh Frame header
- auto version = *vs.read<uint8_t>();
+ auto version = *vs.read<uint8_t>();
auto eh_frame_ptr_enc = *vs.read<uint8_t>(); // How pointers are encoded
- auto fde_count_enc = *vs.read<uint8_t>();
- auto table_enc = *vs.read<uint8_t>();
+ auto fde_count_enc = *vs.read<uint8_t>();
+ auto table_enc = *vs.read<uint8_t>();
auto res_eh_frame_ptr = vs.read_dwarf_encoded(eh_frame_ptr_enc);
if (!res_eh_frame_ptr) {
- LIEF_ERR("Can't decode eh_frame_ptr_enc");
+ LIEF_ERR("Failed to decode eh_frame_ptr_enc");
return functions;
}
auto eh_frame_ptr = *res_eh_frame_ptr;
- int64_t fde_count = -1;
+ int64_t fde_count = -1;
if (static_cast<dwarf::EH_ENCODING>(fde_count_enc) != dwarf::EH_ENCODING::OMIT) {
auto res_count = vs.read_dwarf_encoded(fde_count_enc);
@@ -2220,7 +2425,10 @@ LIEF::Binary::functions_t Binary::eh_frame_functions() const {
}
if (version != 1) {
- LIEF_WARN("EH Frame header version is not 1 ({:d}) structure may have been corrupted!", version);
+ LIEF_WARN(
+ "EH frame header version is not 1 ({:d}), structure may be corrupted",
+ version
+ );
}
if (fde_count < 0) {
@@ -2229,11 +2437,11 @@ LIEF::Binary::functions_t Binary::eh_frame_functions() const {
}
- LIEF_DEBUG(" eh_frame_ptr_enc: 0x{:x}", static_cast<uint32_t>(eh_frame_ptr_enc));
- LIEF_DEBUG(" fde_count_enc: 0x{:x}", static_cast<uint32_t>(fde_count_enc));
- LIEF_DEBUG(" table_enc: 0x{:x}", static_cast<uint32_t>(table_enc));
- LIEF_DEBUG(" eh_frame_ptr: 0x{:x}", static_cast<uint32_t>(eh_frame_ptr));
- LIEF_DEBUG(" fde_count: 0x{:x}", static_cast<uint32_t>(fde_count));
+ LIEF_DEBUG(" eh_frame_ptr_enc: {:#x}", static_cast<uint32_t>(eh_frame_ptr_enc));
+ LIEF_DEBUG(" fde_count_enc: {:#x}", static_cast<uint32_t>(fde_count_enc));
+ LIEF_DEBUG(" table_enc: {:#x}", static_cast<uint32_t>(table_enc));
+ LIEF_DEBUG(" eh_frame_ptr: {:#x}", static_cast<uint32_t>(eh_frame_ptr));
+ LIEF_DEBUG(" fde_count: {:#x}", static_cast<uint32_t>(fde_count));
auto table_bias = static_cast<dwarf::EH_ENCODING>(table_enc & 0xF0);
@@ -2243,54 +2451,54 @@ LIEF::Binary::functions_t Binary::eh_frame_functions() const {
// Binary search table
auto res_init_loc = vs.read_dwarf_encoded(table_enc);
if (!res_init_loc) {
- LIEF_ERR("Can't read Dwarf initial_location");
+ LIEF_ERR("Failed to read DWARF initial_location");
return functions;
}
uint32_t initial_location = *res_init_loc;
auto res_address = vs.read_dwarf_encoded(table_enc);
if (!res_address) {
- LIEF_ERR("Can't read Dwarf address");
+ LIEF_ERR("Failed to read DWARF address");
return functions;
}
uint32_t address = *res_address;
- uint64_t bias = 0;
+ uint64_t bias = 0;
switch (table_bias) {
case dwarf::EH_ENCODING::PCREL:
- {
- bias = (eh_frame_rva + vs.pos());
- break;
- }
+ {
+ bias = (eh_frame_rva + vs.pos());
+ break;
+ }
case dwarf::EH_ENCODING::TEXTREL:
- {
- LIEF_WARN("EH_ENCODING::TEXTREL is not supported");
- break;
- }
+ {
+ LIEF_WARN("Unsupported EH_ENCODING::TEXTREL");
+ break;
+ }
case dwarf::EH_ENCODING::DATAREL:
- {
- bias = eh_frame_rva;
- break;
- }
+ {
+ bias = eh_frame_rva;
+ break;
+ }
case dwarf::EH_ENCODING::FUNCREL:
- {
- LIEF_WARN("EH_ENCODING::FUNCREL is not supported");
- break;
- }
+ {
+ LIEF_WARN("Unsupported EH_ENCODING::FUNCREL");
+ break;
+ }
case dwarf::EH_ENCODING::ALIGNED:
- {
- LIEF_WARN("EH_ENCODING::ALIGNED is not supported");
- break;
- }
+ {
+ LIEF_WARN("Unsupported EH_ENCODING::ALIGNED");
+ break;
+ }
default:
- {
- LIEF_WARN("Encoding not supported!");
- break;
- }
+ {
+ LIEF_WARN("Unsupported encoding");
+ break;
+ }
}
if (bias == 0) {
@@ -2299,20 +2507,21 @@ LIEF::Binary::functions_t Binary::eh_frame_functions() const {
initial_location += bias;
- address += bias;
+ address += bias;
- LIEF_DEBUG("Initial location: 0x{:x}", initial_location);
- LIEF_DEBUG("Address: 0x{:x}", address);
- LIEF_DEBUG("Bias: 0x{:x}", bias);
+ LIEF_DEBUG("Initial location: {:#x}", initial_location);
+ LIEF_DEBUG("Address: {:#x}", address);
+ LIEF_DEBUG("Bias: {:#x}", bias);
const size_t saved_pos = vs.pos();
- LIEF_DEBUG("Go to eh_frame_off + address - bias: 0x{:x}", eh_frame_off + address - bias);
+ LIEF_DEBUG("Navigating to eh_frame_off + address - bias: {:#x}",
+ eh_frame_off + address - bias);
// Go to the FDE structure
vs.setpos(eh_frame_off + address - bias);
{
// Beginning of the FDE structure (to continue)
auto res_fde_length = vs.read<uint32_t>();
if (!res_fde_length) {
- LIEF_ERR("Can't read FDE length");
+ LIEF_ERR("Failed to read FDE length");
vs.setpos(saved_pos);
continue;
}
@@ -2324,26 +2533,27 @@ LIEF::Binary::functions_t Binary::eh_frame_functions() const {
}
auto cie_pointer = vs.read<uint32_t>();
if (!cie_pointer) {
- LIEF_ERR("Can't read cie pointer");
+ LIEF_ERR("Failed to read CIE pointer");
vs.setpos(saved_pos);
continue;
}
if (*cie_pointer == 0) {
- LIEF_DEBUG("cie_pointer is null!");
+ LIEF_DEBUG("CIE pointer is null");
vs.setpos(saved_pos);
continue;
}
const uint32_t cie_offset = vs.pos() - *cie_pointer - sizeof(uint32_t);
- LIEF_DEBUG("fde_length@0x{:x}: 0x{:x}", address - bias, fde_length);
- LIEF_DEBUG("cie_pointer 0x{:x}", *cie_pointer);
- LIEF_DEBUG("cie_offset 0x{:x}", cie_offset);
+ LIEF_DEBUG("fde_length@{:#x}: {:#x}", address - bias, fde_length);
+ LIEF_DEBUG("cie_pointer: {:#x}", *cie_pointer);
+ LIEF_DEBUG("cie_offset: {:#x}", cie_offset);
// Go to CIE structure
- //uint8_t augmentation_data = static_cast<uint8_t>(dwarf::EH_ENCODING::OMIT);
+ // uint8_t augmentation_data =
+ // static_cast<uint8_t>(dwarf::EH_ENCODING::OMIT);
const size_t saved_pos = vs.pos();
uint8_t augmentation_data = 0;
@@ -2351,7 +2561,7 @@ LIEF::Binary::functions_t Binary::eh_frame_functions() const {
{
auto res_cie_length = vs.read<uint32_t>();
if (!res_cie_length) {
- LIEF_ERR("Can't read cie_length");
+ LIEF_ERR("Failed to read CIE length");
return functions;
}
uint64_t cie_length = *res_cie_length;
@@ -2364,36 +2574,37 @@ LIEF::Binary::functions_t Binary::eh_frame_functions() const {
auto cie_id = vs.read<uint32_t>();
if (!cie_id) {
- LIEF_ERR("Can't read cie_id");
+ LIEF_ERR("Failed to read CIE ID");
return functions;
}
auto version = vs.read<uint8_t>();
if (!version) {
- LIEF_ERR("Can't read version");
+ LIEF_ERR("Failed to read CIE version");
return functions;
}
if (*cie_id != 0) {
- LIEF_WARN("CIE ID is not 0 ({:d})", *cie_id);
+ LIEF_WARN("Unexpected CIE ID ({:d}), expected 0", *cie_id);
}
- if (*version != 1) {
- LIEF_WARN("CIE ID is not 1 ({:d})", *version);
+ if (*version != 1 && *version != 3 && *version != 4) {
+ LIEF_WARN("Unexpected CIE version ({:d}), expected 1, 3 or 4", *version);
}
- LIEF_DEBUG("cie_length: 0x{:x}", cie_length);
+ LIEF_DEBUG("cie_length: {:#x}", cie_length);
LIEF_DEBUG("ID: {:d}", *cie_id);
LIEF_DEBUG("Version: {:d}", *version);
auto res_cie_augmentation_string = vs.read_string();
if (!res_cie_augmentation_string) {
- LIEF_ERR("Can't read cie_augmentation_string");
+ LIEF_ERR("Failed to read CIE augmentation string");
return functions;
}
- std::string cie_augmentation_string = std::move(*res_cie_augmentation_string);
+ std::string cie_augmentation_string =
+ std::move(*res_cie_augmentation_string);
- LIEF_DEBUG("CIE Augmentation {}", cie_augmentation_string);
+ LIEF_DEBUG("CIE augmentation: {}", cie_augmentation_string);
if (cie_augmentation_string.find("eh") != std::string::npos) {
if (is64) {
/* uint64_t eh_data = */ vs.read<uint64_t>();
@@ -2402,41 +2613,53 @@ LIEF::Binary::functions_t Binary::eh_frame_functions() const {
}
}
+ if (*version >= 4) {
+ /* uint8_t address_size = */ vs.read<uint8_t>();
+ /* uint8_t segment_selector_size = */ vs.read<uint8_t>();
+ }
+
/* uint64_t code_alignment = */ vs.read_uleb128();
/* int64_t data_alignment = */ vs.read_sleb128();
- /* uint64_t return_addres_register = */ vs.read_uleb128();
+ if (*version == 1) {
+ /* uint8_t return_address_register = */ vs.read<uint8_t>();
+ } else {
+ /* uint64_t return_address_register = */ vs.read_uleb128();
+ }
if (cie_augmentation_string.find('z') != std::string::npos) {
/* int64_t augmentation_length = */ vs.read_uleb128();
}
LIEF_DEBUG("cie_augmentation_string: {}", cie_augmentation_string);
- if (!cie_augmentation_string.empty() && cie_augmentation_string[0] == 'z') {
+ if (!cie_augmentation_string.empty() && cie_augmentation_string[0] == 'z')
+ {
if (cie_augmentation_string.find('R') != std::string::npos) {
auto aug_data = vs.read<uint8_t>();
if (!aug_data) {
- LIEF_ERR("Can't read augmentation data");
+ LIEF_ERR("Failed to read augmentation data");
return functions;
}
augmentation_data = *aug_data;
} else {
- LIEF_WARN("Augmentation string '{}' is not supported", cie_augmentation_string);
+ LIEF_WARN("Unsupported augmentation string '{}'",
+ cie_augmentation_string);
}
}
}
- LIEF_DEBUG("Augmentation data 0x{:x}", static_cast<uint32_t>(augmentation_data));
+ LIEF_DEBUG("Augmentation data: {:#x}",
+ static_cast<uint32_t>(augmentation_data));
// Go back to FDE Structure
vs.setpos(saved_pos);
auto res = vs.read_dwarf_encoded(augmentation_data);
if (!res) {
- LIEF_ERR("Can't read Dwarf encoded function begin");
+ LIEF_ERR("Failed to read DWARF-encoded function begin");
return functions;
}
int32_t function_begin = eh_frame_rva + vs.pos() + *res;
res = vs.read_dwarf_encoded(augmentation_data);
if (!res) {
- LIEF_ERR("Can't read dward encoded size");
+ LIEF_ERR("Failed to read DWARF-encoded size");
return functions;
}
int32_t size = *res;
@@ -2445,7 +2668,7 @@ LIEF::Binary::functions_t Binary::eh_frame_functions() const {
Function f{static_cast<uint64_t>(initial_location + imagebase())};
f.size(size);
functions.push_back(std::move(f));
- LIEF_DEBUG("PC@0x{:x}:0x{:x}", function_begin, size);
+ LIEF_DEBUG("PC@{:#x}:{:#x}", function_begin, size);
}
vs.setpos(saved_pos);
}
@@ -2456,15 +2679,15 @@ LIEF::Binary::functions_t Binary::eh_frame_functions() const {
LIEF::Binary::functions_t Binary::functions() const {
- static const auto func_cmd = [] (const Function& lhs, const Function& rhs) {
+ static const auto func_cmd = [](const Function& lhs, const Function& rhs) {
return lhs.address() < rhs.address();
};
std::set<Function, decltype(func_cmd)> functions_set(func_cmd);
LIEF::Binary::functions_t eh_frame_functions = this->eh_frame_functions();
- LIEF::Binary::functions_t armexid_functions = this->armexid_functions();
- LIEF::Binary::functions_t ctors = ctor_functions();
- LIEF::Binary::functions_t dtors = dtor_functions();
+ LIEF::Binary::functions_t armexid_functions = this->armexid_functions();
+ LIEF::Binary::functions_t ctors = ctor_functions();
+ LIEF::Binary::functions_t dtors = dtor_functions();
for (const Symbol& s : symbols()) {
if (s.type() == Symbol::TYPE::FUNC && s.value() > 0) {
@@ -2474,19 +2697,19 @@ LIEF::Binary::functions_t Binary::functions() const {
}
}
- std::move(std::begin(ctors), std::end(ctors),
- std::inserter(functions_set, std::end(functions_set)));
+ std::move(ctors.begin(), ctors.end(),
+ std::inserter(functions_set, functions_set.end()));
- std::move(std::begin(dtors), std::end(dtors),
- std::inserter(functions_set, std::end(functions_set)));
+ std::move(dtors.begin(), dtors.end(),
+ std::inserter(functions_set, functions_set.end()));
- std::move(std::begin(eh_frame_functions), std::end(eh_frame_functions),
- std::inserter(functions_set, std::end(functions_set)));
+ std::move(eh_frame_functions.begin(), eh_frame_functions.end(),
+ std::inserter(functions_set, functions_set.end()));
- std::move(std::begin(armexid_functions), std::end(armexid_functions),
- std::inserter(functions_set, std::end(functions_set)));
+ std::move(armexid_functions.begin(), armexid_functions.end(),
+ std::inserter(functions_set, functions_set.end()));
- return {std::begin(functions_set), std::end(functions_set)};
+ return {functions_set.begin(), functions_set.end()};
}
@@ -2495,30 +2718,32 @@ uint64_t Binary::eof_offset() const {
for (const std::unique_ptr<Section>& section : sections_) {
if (section->type() != Section::TYPE::NOBITS && !section->is_frame()) {
- last_offset_sections = std::max<uint64_t>(section->file_offset() + section->size(), last_offset_sections);
+ last_offset_sections =
+ std::max<uint64_t>(section->file_offset() + section->size(),
+ last_offset_sections);
}
}
const uint64_t section_header_size =
- type() == Header::CLASS::ELF64 ? sizeof(typename details::ELF64::Elf_Shdr) :
- sizeof(typename details::ELF32::Elf_Shdr);
+ type() == Header::CLASS::ELF64 ? sizeof(typename details::ELF64::Elf_Shdr) :
+ sizeof(typename details::ELF32::Elf_Shdr);
const uint64_t segment_header_size =
- type() == Header::CLASS::ELF64 ? sizeof(typename details::ELF64::Elf_Phdr) :
- sizeof(typename details::ELF32::Elf_Phdr);
+ type() == Header::CLASS::ELF64 ? sizeof(typename details::ELF64::Elf_Phdr) :
+ sizeof(typename details::ELF32::Elf_Phdr);
const uint64_t end_sht_table =
- header().section_headers_offset() +
- sections_.size() * section_header_size;
+ header().section_headers_offset() + sections_.size() * section_header_size;
const uint64_t end_phdr_table =
- header().program_headers_offset() +
- segments_.size() * segment_header_size;
+ header().program_headers_offset() + segments_.size() * segment_header_size;
- last_offset_sections = std::max<uint64_t>({last_offset_sections, end_sht_table, end_phdr_table});
+ last_offset_sections =
+ std::max<uint64_t>({last_offset_sections, end_sht_table, end_phdr_table});
const uint64_t last_offset_segments = last_offset_segment();
- const uint64_t last_offset = std::max<uint64_t>(last_offset_sections, last_offset_segments);
+ const uint64_t last_offset =
+ std::max<uint64_t>(last_offset_sections, last_offset_segments);
return last_offset;
}
@@ -2534,17 +2759,12 @@ std::string Binary::shstrtab_name() const {
uint64_t Binary::relocate_phdr_table(PHDR_RELOC type) {
switch (type) {
- case PHDR_RELOC::PIE_SHIFT:
- return relocate_phdr_table_pie();
- case PHDR_RELOC::SEGMENT_GAP:
- return relocate_phdr_table_v1();
- case PHDR_RELOC::BSS_END:
- return relocate_phdr_table_v2();
- case PHDR_RELOC::BINARY_END:
- return relocate_phdr_table_v3();
+ case PHDR_RELOC::PIE_SHIFT: return relocate_phdr_table_pie();
+ case PHDR_RELOC::SEGMENT_GAP: return relocate_phdr_table_v1();
+ case PHDR_RELOC::BSS_END: return relocate_phdr_table_v2();
+ case PHDR_RELOC::BINARY_END: return relocate_phdr_table_v3();
case PHDR_RELOC::AUTO:
- default:
- return relocate_phdr_table_auto();
+ default: return relocate_phdr_table_auto();
}
}
@@ -2566,7 +2786,7 @@ uint64_t Binary::relocate_phdr_table_auto() {
if (offset = relocate_phdr_table_pie(); offset > 0) {
return offset;
}
- LIEF_ERR("Can't relocated phdr table for this PIE binary");
+ LIEF_ERR("Failed to relocate PHDR table for this PIE binary");
}
if (is_dyn && !(has_phdr_s || has_interp_s) && !has_ep) {
@@ -2577,8 +2797,7 @@ uint64_t Binary::relocate_phdr_table_auto() {
}
/* This is typically static binaries */
- const bool is_valid_for_v3 =
- (is_dyn || is_exec) && !has_phdr_s && !has_interp_s;
+ const bool is_valid_for_v3 = (is_dyn || is_exec) && !has_phdr_s && !has_interp_s;
if (is_valid_for_v3) {
LIEF_DEBUG("Try v3 relocator");
@@ -2592,8 +2811,8 @@ uint64_t Binary::relocate_phdr_table_auto() {
if (offset = relocate_phdr_table_v1(); offset == 0) {
LIEF_DEBUG("Try v2 relocator");
if (offset = relocate_phdr_table_v2(); offset == 0) {
- LIEF_ERR("Can't relocate the phdr table for this binary. "
- "Please consider opening an issue");
+ LIEF_ERR("Failed to relocate the PHDR table. "
+ "Please consider opening an issue");
return 0;
}
}
@@ -2608,7 +2827,7 @@ uint64_t Binary::relocate_phdr_table_pie() {
return phdr_reloc_info_.new_offset;
}
-
+ LIEF_DEBUG("Relocating PHDR Table (PIE)");
// --------------------------------------
// Part 1: Make spaces for a new PHDR
// --------------------------------------
@@ -2639,12 +2858,13 @@ uint64_t Binary::relocate_phdr_table_pie() {
* if (arch == ARCH::AARCH64 || arch == ARCH::ARM) {
* shift = 0x1000;
* phdr_reloc_info_.new_offset = phdr_offset;
- * phdr_reloc_info_.nb_segments = shift / phdr_size - header_.numberof_segments();
+ * phdr_reloc_info_.nb_segments = shift / phdr_size -
+ * header_.numberof_segments();
* }
*/
static constexpr size_t shift = 0x1000;
- phdr_reloc_info_.new_offset = from;
+ phdr_reloc_info_.new_offset = from;
phdr_reloc_info_.nb_segments = shift / phdr_size - header_.numberof_segments();
auto alloc = datahandler_->make_hole(from, shift);
@@ -2653,7 +2873,7 @@ uint64_t Binary::relocate_phdr_table_pie() {
return 0;
}
- LIEF_DEBUG("Header shift: 0x{:x}", shift);
+ LIEF_DEBUG("Header shift: {:#x}", shift);
header().section_headers_offset(header().section_headers_offset() + shift);
@@ -2665,7 +2885,7 @@ uint64_t Binary::relocate_phdr_table_pie() {
if (segment->file_offset() <= from &&
from <= (segment->file_offset() + segment->physical_size()))
{
- segment->virtual_size(segment->virtual_size() + shift);
+ segment->virtual_size(segment->virtual_size() + shift);
segment->physical_size(segment->physical_size() + shift);
}
}
@@ -2699,7 +2919,8 @@ uint64_t Binary::relocate_phdr_table_v3() {
uint64_t last_off = 0;
for (const std::unique_ptr<Segment>& segment : segments_) {
if (segment != nullptr && segment->is_load()) {
- last_off = std::max(last_off, segment->physical_size() + segment->file_offset());
+ last_off =
+ std::max(last_off, segment->physical_size() + segment->file_offset());
}
}
uint64_t last_off_aligned = align(last_off, page_size());
@@ -2712,24 +2933,24 @@ uint64_t Binary::relocate_phdr_table_v3() {
Header& header = this->header();
- const uint64_t phdr_size =
- type() == Header::CLASS::ELF32 ? sizeof(details::ELF32::Elf_Phdr) :
- sizeof(details::ELF64::Elf_Phdr);
- LIEF_DEBUG("Moving segment table at the end of the binary (0x{:010x})",
+ const uint64_t phdr_size = type() == Header::CLASS::ELF32 ?
+ sizeof(details::ELF32::Elf_Phdr) :
+ sizeof(details::ELF64::Elf_Phdr);
+ LIEF_DEBUG("Moving segment table at the end of the binary ({:#012x})",
last_off_aligned);
phdr_reloc_info_.new_offset = last_off_aligned;
header.program_headers_offset(last_off_aligned);
- const size_t new_segtbl_sz = (header.numberof_segments() + USER_SEGMENTS) * phdr_size;
+ const size_t new_segtbl_sz =
+ (header.numberof_segments() + USER_SEGMENTS) * phdr_size;
const uint64_t delta = last_off_aligned - last_off + new_segtbl_sz;
shift_sections(last_off, delta);
uint64_t sections_tbl_off = header.section_headers_offset() + delta;
header.section_headers_offset(sections_tbl_off);
- auto alloc = datahandler_->make_hole(phdr_reloc_info_.new_offset,
- new_segtbl_sz);
+ auto alloc = datahandler_->make_hole(phdr_reloc_info_.new_offset, new_segtbl_sz);
if (!alloc) {
LIEF_ERR("Allocation failed");
@@ -2750,18 +2971,17 @@ uint64_t Binary::relocate_phdr_table_v3() {
DataHandler::Node new_node{phdr_reloc_info_.new_offset, new_segtbl_sz,
DataHandler::Node::SEGMENT};
- datahandler_->add(std::move(new_node));
+ datahandler_->add(new_node);
- const auto it_new_place = std::find_if(
- segments_.rbegin(), segments_.rend(),
- [] (const auto& s) { return s->is_load(); });
+ const auto it_new_place =
+ std::find_if(segments_.rbegin(), segments_.rend(),
+ [](const auto& s) { return s->is_load(); });
if (it_new_place == segments_.rend()) {
segments_.push_back(std::move(phdr_load_segment));
} else {
- const size_t idx = std::distance(std::begin(segments_), it_new_place.base());
- segments_.insert(std::begin(segments_) + idx,
- std::move(phdr_load_segment));
+ const size_t idx = std::distance(segments_.begin(), it_new_place.base());
+ segments_.insert(segments_.begin() + idx, std::move(phdr_load_segment));
}
header.numberof_segments(header.numberof_segments() + 1);
@@ -2781,7 +3001,8 @@ uint64_t Binary::relocate_phdr_table_v3() {
*
*/
uint64_t Binary::relocate_phdr_table_v2() {
- static constexpr size_t USER_SEGMENTS = 10; // We reserve space for 10 user's segments
+ static constexpr size_t USER_SEGMENTS =
+ 10; // We reserve space for 10 user's segments
if (phdr_reloc_info_.new_offset > 0) {
@@ -2793,8 +3014,8 @@ uint64_t Binary::relocate_phdr_table_v2() {
Header& header = this->header();
const uint64_t phdr_size = type() == Header::CLASS::ELF32 ?
- sizeof(details::ELF32::Elf_Phdr) :
- sizeof(details::ELF64::Elf_Phdr);
+ sizeof(details::ELF32::Elf_Phdr) :
+ sizeof(details::ELF64::Elf_Phdr);
std::vector<Segment*> load_seg;
@@ -2811,12 +3032,12 @@ uint64_t Binary::relocate_phdr_table_v2() {
}
if (bss_cnt != 1 || bss_segment == nullptr) {
- LIEF_ERR("Zero or more than 1 bss-like segment!");
+ LIEF_ERR("Expected exactly 1 BSS-like segment");
return 0;
}
- // "expand" the .bss area. It is required since the bss area that is mapped
- // needs to be set to 0
+ // Expand the .bss area. This is required since the mapped bss area
+ // needs to be zero-initialized.
const uint64_t original_psize = bss_segment->physical_size();
/*
@@ -2849,7 +3070,8 @@ uint64_t Binary::relocate_phdr_table_v2() {
* Therefore, we **can't take** 0x1030 as offset for the new
* segment table.
* To avoid virtual overlap while still keeping Req[1.],
- * we need to use: LOAD_2.virtual_address - Imagebase[0x400000] + LOAD_2.virtual_size
+ * we need to use: LOAD_2.virtual_address - Imagebase[0x400000] +
+ * LOAD_2.virtual_size
* \ /
* ------------ Offset --------------------/
* which should be aligned on a page size to avoid error.
@@ -2870,8 +3092,10 @@ uint64_t Binary::relocate_phdr_table_v2() {
* run. This section is of type SHT_NOBITS. The attribute
* types are SHF_ALLOC and SHF_WRITE.
*/
- const uint64_t new_phdr_offset = align(bss_segment->virtual_address() - imagebase()
- + bss_segment->virtual_size(), 0x1000);
+ const uint64_t new_phdr_offset =
+ align(bss_segment->virtual_address() - imagebase() +
+ bss_segment->virtual_size(),
+ 0x1000);
const size_t nb_segments = header.numberof_segments() +
/* custom PT_LOAD */ 1 + USER_SEGMENTS;
@@ -2883,7 +3107,9 @@ uint64_t Binary::relocate_phdr_table_v2() {
size_t delta_pa = (bss_segment->virtual_size() - bss_segment->physical_size());
phdr_reloc_info_.nb_segments = USER_SEGMENTS;
- auto alloc = datahandler_->make_hole(bss_segment->file_offset() + bss_segment->physical_size(), delta_pa);
+ auto alloc = datahandler_->make_hole(
+ bss_segment->file_offset() + bss_segment->physical_size(), delta_pa
+ );
if (!alloc) {
LIEF_ERR("Allocation failed");
return 0;
@@ -2908,45 +3134,48 @@ uint64_t Binary::relocate_phdr_table_v2() {
datahandler_->add(new_node);
- const auto it_new_segment_place = std::find_if(segments_.rbegin(), segments_.rend(),
- [nsegment_addr] (const std::unique_ptr<Segment>& s) {
- return s->type() == nsegment_addr->type();
- });
+ const auto it_new_segment_place =
+ std::find_if(segments_.rbegin(), segments_.rend(),
+ [nsegment_addr](const std::unique_ptr<Segment>& s) {
+ return s->type() == nsegment_addr->type();
+ });
if (it_new_segment_place == segments_.rend()) {
segments_.push_back(std::move(new_segment_ptr));
} else {
- const size_t idx = std::distance(std::begin(segments_), it_new_segment_place.base());
- segments_.insert(std::begin(segments_) + idx, std::move(new_segment_ptr));
+ const size_t idx =
+ std::distance(segments_.begin(), it_new_segment_place.base());
+ segments_.insert(segments_.begin() + idx, std::move(new_segment_ptr));
}
this->header().numberof_segments(this->header().numberof_segments() + 1);
- const auto it_segment_phdr = std::find_if(std::begin(segments_), std::end(segments_),
- [] (const std::unique_ptr<Segment>& s) {
- return s->is_phdr();
- });
+ const auto it_segment_phdr =
+ std::find_if(segments_.begin(), segments_.end(),
+ [](const std::unique_ptr<Segment>& s) { return s->is_phdr(); });
- if (it_segment_phdr != std::end(segments_)) {
+ if (it_segment_phdr != segments_.end()) {
const std::unique_ptr<Segment>& phdr_segment = *it_segment_phdr;
phdr_segment->file_offset(nsegment_addr->file_offset());
phdr_segment->virtual_address(nsegment_addr->virtual_address());
phdr_segment->physical_address(nsegment_addr->physical_address());
- phdr_segment->content(std::vector<uint8_t>(phdr_segment->physical_size(), 0));
+ phdr_segment->clear();
}
// Shift components that come after the bss offset
uint64_t from = bss_segment->file_offset() + original_psize;
uint64_t shift = delta_pa + nb_segments * phdr_size;
- this->header().section_headers_offset(this->header().section_headers_offset() + shift);
+ this->header().section_headers_offset(this->header().section_headers_offset() +
+ shift);
// Shift sections
for (const std::unique_ptr<Section>& section : sections_) {
if (section->is_frame()) {
continue;
}
- if (section->file_offset() >= from && section->type() != Section::TYPE::NOBITS) {
+ if (section->file_offset() >= from && section->type() != Section::TYPE::NOBITS)
+ {
LIEF_DEBUG("[BEFORE] {}", to_string(*section));
section->file_offset(section->file_offset() + shift);
if (section->virtual_address() > 0) {
@@ -2964,7 +3193,7 @@ uint64_t Binary::relocate_phdr_table_v1() {
// to consider this relocation valid
static constexpr auto MIN_POTENTIAL_SIZE = 2;
- // check if we already relocated the segment table in the larger segment's cave
+ // Check if we already relocated the segment table in the largest segment's cave
if (phdr_reloc_info_.new_offset > 0) {
return phdr_reloc_info_.new_offset;
}
@@ -2974,13 +3203,12 @@ uint64_t Binary::relocate_phdr_table_v1() {
Header& header = this->header();
const uint64_t phdr_size = type() == Header::CLASS::ELF32 ?
- sizeof(details::ELF32::Elf_Phdr) :
- sizeof(details::ELF64::Elf_Phdr);
+ sizeof(details::ELF32::Elf_Phdr) :
+ sizeof(details::ELF64::Elf_Phdr);
- const auto it_segment_phdr = std::find_if(std::begin(segments_), std::end(segments_),
- [] (const std::unique_ptr<Segment>& s) {
- return s->is_phdr();
- });
+ const auto it_segment_phdr =
+ std::find_if(segments_.begin(), segments_.end(),
+ [](const std::unique_ptr<Segment>& s) { return s->is_phdr(); });
std::vector<Segment*> load_seg;
for (std::unique_ptr<Segment>& segment : segments_) {
@@ -2989,13 +3217,13 @@ uint64_t Binary::relocate_phdr_table_v1() {
}
}
- // Take the 2 adjacent segments that have the larger "cave"
+ // Take the 2 adjacent segments that have the largest "cave"
Segment* seg_to_extend = nullptr;
Segment* next_to_extend = nullptr;
size_t potential_size = 0;
const size_t nb_loads = load_seg.size();
- // This function requires to have at least 2 segments
+ // This function requires at least 2 segments
if (nb_loads <= 1) {
return 0;
}
@@ -3004,54 +3232,58 @@ uint64_t Binary::relocate_phdr_table_v1() {
Segment* current = load_seg[i];
// Skip bss-like segments
if (current->virtual_size() != current->physical_size()) {
- LIEF_DEBUG("Skipping .bss like segment: {}@0x{:x}:0x{:x}",
- to_string(current->type()), current->virtual_address(), current->virtual_size());
+ LIEF_DEBUG("Skipping .bss like segment: {}@{:#x}:{:#x}",
+ to_string(current->type()), current->virtual_address(),
+ current->virtual_size());
continue;
}
Segment* adjacent = load_seg[i + 1];
- const int64_t gap = adjacent->file_offset() - (current->file_offset() + current->physical_size());
+ const int64_t gap = adjacent->file_offset() -
+ (current->file_offset() + current->physical_size());
if (gap <= 0) {
continue;
}
const size_t nb_seg_gap = gap / phdr_size;
- LIEF_DEBUG("Gap between {:d} <-> {:d}: {:x} ({:d} segments)", i, i + 1, gap, nb_seg_gap);
+ LIEF_DEBUG("Gap between {:d} <-> {:d}: {:x} ({:d} segments)", i, i + 1, gap,
+ nb_seg_gap);
if (nb_seg_gap > potential_size) {
- seg_to_extend = current;
+ seg_to_extend = current;
next_to_extend = adjacent;
potential_size = nb_seg_gap;
}
}
if (seg_to_extend == nullptr || next_to_extend == nullptr) {
- LIEF_DEBUG("Can't find a suitable segment (v1)");
+ LIEF_DEBUG("No suitable segment found (v1)");
return 0;
}
if (potential_size < (header.numberof_segments() + MIN_POTENTIAL_SIZE)) {
- LIEF_DEBUG("The number of available segments is too small ({} vs {})",
- potential_size, header.numberof_segments() + MIN_POTENTIAL_SIZE);
+ LIEF_DEBUG("Available segment count too small ({} vs {})", potential_size,
+ header.numberof_segments() + MIN_POTENTIAL_SIZE);
return 0;
}
- LIEF_DEBUG("Segment selected for the extension: {}@0x{:x}:0x{:x}",
+ LIEF_DEBUG("Segment selected for the extension: {}@{:#x}:{:#x}",
to_string(seg_to_extend->type()), seg_to_extend->virtual_address(),
seg_to_extend->virtual_size());
- LIEF_DEBUG("Adjacent segment selected for the extension: {}@0x{:x}:0x{:x}",
+ LIEF_DEBUG("Adjacent segment selected for the extension: {}@{:#x}:{:#x}",
to_string(next_to_extend->type()), next_to_extend->virtual_address(),
next_to_extend->virtual_size());
// Extend the segment that wraps the next PHDR table so that it is contiguous
// with the next segment.
- int64_t delta = next_to_extend->file_offset() - (seg_to_extend->file_offset() + seg_to_extend->physical_size());
+ int64_t delta = next_to_extend->file_offset() -
+ (seg_to_extend->file_offset() + seg_to_extend->physical_size());
if (delta <= 0) {
return 0;
}
const size_t nb_segments = delta / phdr_size - header.numberof_segments();
if (nb_segments < header.numberof_segments()) {
- LIEF_DEBUG("The layout of this binary does not enable relocating the segment table (v1)\n"
- "We would need at least {} segments while only {} are available.",
+ LIEF_DEBUG("Binary layout prevents segment table relocation (v1). "
+ "Need at least {} segments but only {} available.",
header.numberof_segments(), nb_segments);
phdr_reloc_info_.clear();
return 0;
@@ -3059,36 +3291,40 @@ uint64_t Binary::relocate_phdr_table_v1() {
// New values
- const uint64_t new_phdr_offset = seg_to_extend->file_offset() + seg_to_extend->physical_size();
- phdr_reloc_info_.new_offset = new_phdr_offset;
+ const uint64_t new_phdr_offset =
+ seg_to_extend->file_offset() + seg_to_extend->physical_size();
+ const size_t alignment = align(new_phdr_offset, ptr_size()) - new_phdr_offset;
- header.program_headers_offset(new_phdr_offset);
+ phdr_reloc_info_.new_offset = new_phdr_offset + alignment;
+ header.program_headers_offset(phdr_reloc_info_.new_offset);
phdr_reloc_info_.nb_segments = nb_segments;
seg_to_extend->physical_size(seg_to_extend->physical_size() + delta);
seg_to_extend->virtual_size(seg_to_extend->virtual_size() + delta);
- if (it_segment_phdr != std::end(segments_)) {
+ if (it_segment_phdr != segments_.end()) {
const std::unique_ptr<Segment>& phdr_segment = *it_segment_phdr;
// Update the PHDR segment with our values
- const uint64_t base = seg_to_extend->virtual_address() - seg_to_extend->file_offset();
- phdr_segment->file_offset(new_phdr_offset);
+ const uint64_t base =
+ seg_to_extend->virtual_address() - seg_to_extend->file_offset();
+ phdr_segment->file_offset(phdr_reloc_info_.new_offset);
phdr_segment->virtual_address(base + phdr_segment->file_offset());
phdr_segment->physical_address(phdr_segment->virtual_address());
- LIEF_DEBUG("{}@0x{:x}:0x{:x}", to_string(phdr_segment->type()),
- phdr_segment->virtual_address(), phdr_segment->virtual_size());
+ LIEF_DEBUG("{}@{:#x}:{:#x}", to_string(phdr_segment->type()),
+ phdr_segment->virtual_address(), phdr_segment->virtual_size());
// Clear PHDR segment
- phdr_segment->physical_size(delta);
- phdr_segment->virtual_size(delta);
- phdr_segment->content(std::vector<uint8_t>(delta, 0));
+ phdr_segment->physical_size(delta - alignment);
+ phdr_segment->virtual_size(delta - alignment);
+ phdr_segment->clear();
}
return phdr_reloc_info_.new_offset;
}
-std::vector<uint64_t> Binary::get_relocated_dynamic_array(DynamicEntry::TAG tag) const {
+std::vector<uint64_t>
+ Binary::get_relocated_dynamic_array(DynamicEntry::TAG tag) const {
const DynamicEntry* entry = get(tag);
if (entry == nullptr || !DynamicEntryArray::classof(entry)) {
return {};
@@ -3098,13 +3334,13 @@ std::vector<uint64_t> Binary::get_relocated_dynamic_array(DynamicEntry::TAG tag)
std::vector<uint64_t> result = entry_array.array();
const uint64_t base_addr = entry_array.value();
- const size_t ptr_size = (type_ == Header::CLASS::ELF64) ? sizeof(uint64_t) :
- sizeof(uint32_t);
+ const size_t ptr_size =
+ (type_ == Header::CLASS::ELF64) ? sizeof(uint64_t) : sizeof(uint32_t);
const uint64_t end_addr = base_addr + result.size() * ptr_size;
for (const Relocation& reloc : dynamic_relocations()) {
const uint64_t addr = reloc.address();
- bool in_range = base_addr <= addr && addr < end_addr;
+ bool in_range = base_addr <= addr && addr < end_addr;
if (!in_range) {
continue;
}
@@ -3125,22 +3361,17 @@ std::vector<uint64_t> Binary::get_relocated_dynamic_array(DynamicEntry::TAG tag)
bool Binary::is_targeting_android() const {
static constexpr auto ANDROID_DT = {
- DynamicEntry::TAG::ANDROID_REL_OFFSET,
- DynamicEntry::TAG::ANDROID_REL_SIZE,
- DynamicEntry::TAG::ANDROID_REL,
- DynamicEntry::TAG::ANDROID_RELSZ,
- DynamicEntry::TAG::ANDROID_RELA,
- DynamicEntry::TAG::ANDROID_RELASZ,
- DynamicEntry::TAG::ANDROID_RELR,
- DynamicEntry::TAG::ANDROID_RELRSZ,
- DynamicEntry::TAG::ANDROID_RELRENT,
- DynamicEntry::TAG::ANDROID_RELRCOUNT,
+ DynamicEntry::TAG::ANDROID_REL_OFFSET, DynamicEntry::TAG::ANDROID_REL_SIZE,
+ DynamicEntry::TAG::ANDROID_REL, DynamicEntry::TAG::ANDROID_RELSZ,
+ DynamicEntry::TAG::ANDROID_RELA, DynamicEntry::TAG::ANDROID_RELASZ,
+ DynamicEntry::TAG::ANDROID_RELR, DynamicEntry::TAG::ANDROID_RELRSZ,
+ DynamicEntry::TAG::ANDROID_RELRENT, DynamicEntry::TAG::ANDROID_RELRCOUNT,
};
static constexpr auto ANDROID_NOTES = {
- Note::TYPE::ANDROID_IDENT,
- Note::TYPE::ANDROID_KUSER,
- Note::TYPE::ANDROID_MEMTAG,
+ Note::TYPE::ANDROID_IDENT,
+ Note::TYPE::ANDROID_KUSER,
+ Note::TYPE::ANDROID_MEMTAG,
};
if (format_ == Binary::FORMATS::OAT) {
@@ -3148,17 +3379,13 @@ bool Binary::is_targeting_android() const {
}
if (std::any_of(ANDROID_DT.begin(), ANDROID_DT.end(),
- [this] (DynamicEntry::TAG t) {
- return has(t);
- }))
+ [this](DynamicEntry::TAG t) { return has(t); }))
{
return true;
}
if (std::any_of(ANDROID_NOTES.begin(), ANDROID_NOTES.end(),
- [this] (Note::TYPE t) {
- return has(t);
- }))
+ [this](Note::TYPE t) { return has(t); }))
{
return true;
}
@@ -3180,25 +3407,27 @@ bool Binary::is_targeting_android() const {
Section* Binary::add_section(std::unique_ptr<Section> sec) {
Section* sec_ptr = sec.get();
- const auto it_new_sec_place = std::find_if(
- sections_.begin(), sections_.end(), [sec_ptr] (const std::unique_ptr<Section>& S) {
- return S->file_offset() > sec_ptr->file_offset();
- });
+ const auto it_new_sec_place =
+ std::find_if(sections_.begin(), sections_.end(),
+ [sec_ptr](const std::unique_ptr<Section>& S) {
+ return S->type() != Section::TYPE::NOBITS &&
+ S->file_offset() > sec_ptr->file_offset();
+ });
if (it_new_sec_place == sections_.end()) {
- sections_.push_back(std::move(sec));
+ sec_ptr = sections_.emplace_back(std::move(sec)).get();
} else {
size_t idx = std::distance(sections_.begin(), it_new_sec_place);
- for (size_t i = 0; i < sections_.size(); ++i) {
- const uint32_t link = sections_[i]->link();
+ for (const auto& section : sections_) {
+ const uint32_t link = section->link();
if (link >= idx) {
- sections_[i]->link(link + 1);
+ section->link(link + 1);
}
}
if (header_.section_name_table_idx() >= idx) {
header_.section_name_table_idx(header_.section_name_table_idx() + 1);
}
- sections_.insert(it_new_sec_place, std::move(sec));
+ sec_ptr = sections_.insert(it_new_sec_place, std::move(sec))->get();
}
return sec_ptr;
@@ -3211,10 +3440,11 @@ uint64_t Binary::page_size() const {
return LIEF::Binary::page_size();
}
-const SymbolVersionRequirement* Binary::find_version_requirement(const std::string& libname) const {
+const SymbolVersionRequirement*
+ Binary::find_version_requirement(const std::string& libname) const {
auto it = std::find_if(
symbol_version_requirements_.begin(), symbol_version_requirements_.end(),
- [&libname] (const std::unique_ptr<SymbolVersionRequirement>& symver) {
+ [&libname](const std::unique_ptr<SymbolVersionRequirement>& symver) {
return symver->name() == libname;
}
);
@@ -3229,7 +3459,7 @@ const SymbolVersionRequirement* Binary::find_version_requirement(const std::stri
bool Binary::remove_version_requirement(const std::string& libname) {
auto it = std::find_if(
symbol_version_requirements_.begin(), symbol_version_requirements_.end(),
- [&libname] (const std::unique_ptr<SymbolVersionRequirement>& symver) {
+ [&libname](const std::unique_ptr<SymbolVersionRequirement>& symver) {
return symver->name() == libname;
}
);
@@ -3242,10 +3472,9 @@ bool Binary::remove_version_requirement(const std::string& libname) {
SymbolVersionRequirement* sym_ver_req = it->get();
auto aux = sym_ver_req->auxiliary_symbols();
std::transform(aux.begin(), aux.end(), std::inserter(versions, versions.begin()),
- [] (const SymbolVersionAuxRequirement& req) {
- return req.name();
- }
- );
+ [](const SymbolVersionAuxRequirement& req) {
+ return req.name();
+ });
for (Symbol& sym : dynamic_symbols()) {
SymbolVersion* symver = sym.symbol_version();
@@ -3269,150 +3498,105 @@ bool Binary::remove_version_requirement(const std::string& libname) {
}
std::ostream& Binary::print(std::ostream& os) const {
+ os << "Header {\n" << indent(LIEF::to_string(header()), 2) << "}\n";
- os << "Header" << '\n';
- os << "======" << '\n';
-
- os << header();
- os << '\n';
-
-
- os << "Sections" << '\n';
- os << "========" << '\n';
- for (const Section& section : sections()) {
- os << section << '\n';
+ {
+ const auto secs = sections();
+ if (!secs.empty()) {
+ os << fmt::format("Sections (#{})\n", secs.size());
+ for (size_t i = 0; i < secs.size(); ++i) {
+ os << fmt::format(" Section #{:02} {{\n", i)
+ << indent(LIEF::to_string(secs[i]), 4) << " }\n";
+ }
+ }
}
- os << '\n';
-
- os << "Segments" << '\n';
- os << "========" << '\n';
- for (const Segment& segment : segments()) {
- os << segment << '\n';
+ {
+ const auto segs = segments();
+ if (!segs.empty()) {
+ os << fmt::format("Segments (#{})\n", segs.size());
+ for (size_t i = 0; i < segs.size(); ++i) {
+ os << fmt::format(" Segment #{:02} {{\n", i)
+ << indent(LIEF::to_string(segs[i]), 4) << " }\n";
+ }
+ }
}
- os << '\n';
-
-
- os << "Dynamic entries" << '\n';
- os << "===============" << '\n';
-
- for (const DynamicEntry& entry : dynamic_entries()) {
- os << entry << '\n';
+ if (auto entries = dynamic_entries(); !entries.empty()) {
+ os << fmt::format("Dynamic Entries (#{})\n", entries.size());
+ for (const DynamicEntry& entry : entries) {
+ os << " " << entry << '\n';
+ }
}
- os << '\n';
-
-
- os << "Dynamic symbols" << '\n';
- os << "===============" << '\n';
-
- for (const Symbol& symbol : dynamic_symbols()) {
- os << symbol << '\n';
+ if (auto syms = dynamic_symbols(); !syms.empty()) {
+ os << fmt::format("Dynamic Symbols (#{})\n", syms.size());
+ for (const Symbol& symbol : syms) {
+ os << " " << symbol << '\n';
+ }
}
- os << '\n';
-
-
- os << "Symtab symbols" << '\n';
- os << "==============" << '\n';
-
- for (const Symbol& symbol : symtab_symbols()) {
- os << symbol << '\n';
+ if (auto syms = symtab_symbols(); !syms.empty()) {
+ os << fmt::format("Symtab Symbols (#{})\n", syms.size());
+ for (const Symbol& symbol : syms) {
+ os << " " << symbol << '\n';
+ }
}
- os << '\n';
-
-
- os << "Symbol versions" << '\n';
- os << "===============" << '\n';
-
- for (const SymbolVersion& sv : symbols_version()) {
- os << sv << '\n';
+ if (auto vers = symbols_version(); !vers.empty()) {
+ os << fmt::format("Symbol Versions (#{})\n", vers.size());
+ for (const SymbolVersion& sv : vers) {
+ os << " " << sv << '\n';
+ }
}
- os << '\n';
-
-
- os << "Symbol versions definition" << '\n';
- os << "==========================" << '\n';
-
- for (const SymbolVersionDefinition& svd : symbols_version_definition()) {
- os << svd << '\n';
+ if (auto defs = symbols_version_definition(); !defs.empty()) {
+ os << fmt::format("Symbol Version Definitions (#{})\n", defs.size());
+ for (const SymbolVersionDefinition& svd : defs) {
+ os << indent(LIEF::to_string(svd), 2);
+ }
}
- os << '\n';
-
-
- os << "Symbol version requirement" << '\n';
- os << "==========================" << '\n';
-
- for (const SymbolVersionRequirement& svr : symbols_version_requirement()) {
- os << svr << '\n';
+ if (auto reqs = symbols_version_requirement(); !reqs.empty()) {
+ os << fmt::format("Symbol Version Requirements (#{})\n", reqs.size());
+ for (const SymbolVersionRequirement& svr : reqs) {
+ os << indent(LIEF::to_string(svr), 2);
+ }
}
- os << '\n';
-
-
- os << "Dynamic relocations" << '\n';
- os << "===================" << '\n';
-
- for (const Relocation& relocation : dynamic_relocations()) {
- os << relocation << '\n';
+ if (auto relocs = dynamic_relocations(); !relocs.empty()) {
+ os << fmt::format("Dynamic Relocations (#{})\n", relocs.size());
+ for (const Relocation& relocation : relocs) {
+ os << " " << relocation << '\n';
+ }
}
- os << '\n';
-
-
- os << ".plt.got relocations" << '\n';
- os << "====================" << '\n';
-
- for (const Relocation& relocation : pltgot_relocations()) {
- os << relocation << '\n';
+ if (auto relocs = pltgot_relocations(); !relocs.empty()) {
+ os << fmt::format(".plt.got Relocations (#{})\n", relocs.size());
+ for (const Relocation& relocation : relocs) {
+ os << " " << relocation << '\n';
+ }
}
- os << '\n';
-
- if (notes().size() > 0) {
- os << "Notes" << '\n';
- os << "=====" << '\n';
-
- it_const_notes notes = this->notes();
- for (size_t i = 0; i < notes.size(); ++i) {
- std::string title = "Note #" + std::to_string(i);
- os << title << '\n';
- os << std::string(title.size(), '-') << '\n';
- os << notes[i] << '\n';
+ if (auto n = this->notes(); !n.empty()) {
+ os << fmt::format("Notes (#{})\n", n.size());
+ for (size_t i = 0; i < n.size(); ++i) {
+ os << fmt::format(" Note #{:02} {{\n", i)
+ << indent(LIEF::to_string(n[i]), 4) << " }\n";
}
- os << '\n';
}
- os << '\n';
- if (use_gnu_hash()) {
- os << "GNU Hash Table" << '\n';
- os << "==============" << '\n';
-
- os << gnu_hash() << '\n';
-
- os << '\n';
+ if (const GnuHash* gnu = gnu_hash()) {
+ os << "GNU Hash Table {\n" << indent(LIEF::to_string(*gnu), 2) << "}\n";
}
-
- if (use_sysv_hash()) {
- os << "SYSV Hash Table" << '\n';
- os << "===============" << '\n';
-
- os << sysv_hash() << '\n';
-
- os << '\n';
+ if (const SysvHash* sysv = sysv_hash()) {
+ os << "SYSV Hash Table {\n" << indent(LIEF::to_string(*sysv), 2) << "}\n";
}
-
-
return os;
}
Binary::~Binary() = default;
}
-}
diff --git a/deps/LIEF/src/ELF/Binary.tcc b/deps/LIEF/src/ELF/Binary.tcc
index 0fff0155730..8e20f8a07c1 100644
--- a/deps/LIEF/src/ELF/Binary.tcc
+++ b/deps/LIEF/src/ELF/Binary.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,7 +20,6 @@
#include "LIEF/ELF/Segment.hpp"
#include "LIEF/ELF/Section.hpp"
#include "LIEF/ELF/DynamicEntry.hpp"
-#include "LIEF/ELF/EnumToString.hpp"
#include "ELF/Structures.hpp"
#include "ELF/DataHandler/Node.hpp"
@@ -28,8 +27,8 @@
#include "internal_utils.hpp"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
uint64_t default_segment_alignment(const Binary& bin) {
std::set<uint64_t> values;
@@ -58,22 +57,12 @@ inline void init_alignment(Binary& bin, Segment& segment, uintptr_t ptrsz) {
break;
case Segment::TYPE::PHDR:
case Segment::TYPE::DYNAMIC:
- case Segment::TYPE::TLS:
- segment.alignment(ptrsz);
- break;
+ case Segment::TYPE::TLS: segment.alignment(ptrsz); break;
case Segment::TYPE::NOTE:
- case Segment::TYPE::GNU_EH_FRAME:
- segment.alignment(sizeof(uint32_t));
- break;
- case Segment::TYPE::GNU_RELRO:
- segment.alignment(1);
- break;
- case Segment::TYPE::GNU_STACK:
- segment.alignment(0x10);
- break;
- default:
- segment.alignment(ptrsz);
- break;
+ case Segment::TYPE::GNU_EH_FRAME: segment.alignment(sizeof(uint32_t)); break;
+ case Segment::TYPE::GNU_RELRO: segment.alignment(1); break;
+ case Segment::TYPE::GNU_STACK: segment.alignment(0x10); break;
+ default: segment.alignment(ptrsz); break;
}
}
@@ -85,7 +74,7 @@ void Binary::patch_relocations<ARCH::ARM>(uint64_t from, uint64_t shift) {
for (Relocation& relocation : relocations()) {
if (relocation.address() >= from) {
- //shift_code(relocation.address(), shift, relocation.size() / 8);
+ // shift_code(relocation.address(), shift, relocation.size() / 8);
relocation.address(relocation.address() + shift);
}
@@ -96,16 +85,16 @@ void Binary::patch_relocations<ARCH::ARM>(uint64_t from, uint64_t shift) {
case Relocation::TYPE::ARM_RELATIVE:
case Relocation::TYPE::ARM_GLOB_DAT:
case Relocation::TYPE::ARM_IRELATIVE:
- {
- LIEF_DEBUG("Patch addend of {}", to_string(relocation));
- patch_addend<uint32_t>(relocation, from, shift);
- break;
- }
+ {
+ LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+ patch_addend<uint32_t>(relocation, from, shift);
+ break;
+ }
default:
- {
- LIEF_DEBUG("Relocation {} is not patched", to_string(type));
- }
+ {
+ LIEF_DEBUG("Relocation {} is not patched", to_string(type));
+ }
}
}
}
@@ -119,7 +108,7 @@ void Binary::patch_relocations<ARCH::AARCH64>(uint64_t from, uint64_t shift) {
for (Relocation& relocation : relocations()) {
if (relocation.address() >= from) {
- //shift_code(relocation.address(), shift, relocation.size() / 8);
+ // shift_code(relocation.address(), shift, relocation.size() / 8);
relocation.address(relocation.address() + shift);
}
@@ -131,51 +120,51 @@ void Binary::patch_relocations<ARCH::AARCH64>(uint64_t from, uint64_t shift) {
case Relocation::TYPE::AARCH64_GLOB_DAT:
case Relocation::TYPE::AARCH64_IRELATIVE:
case Relocation::TYPE::AARCH64_ABS64:
- {
- LIEF_DEBUG("Patch addend of {}", to_string(relocation));
- patch_addend<uint64_t>(relocation, from, shift);
- break;
- }
+ {
+ LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+ patch_addend<uint64_t>(relocation, from, shift);
+ break;
+ }
case Relocation::TYPE::AARCH64_ABS32:
- {
- LIEF_DEBUG("Patch addend of {}", to_string(relocation));
- patch_addend<uint32_t>(relocation, from, shift);
- break;
- }
+ {
+ LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+ patch_addend<uint32_t>(relocation, from, shift);
+ break;
+ }
case Relocation::TYPE::AARCH64_ABS16:
- {
- LIEF_DEBUG("Patch addend of {}", to_string(relocation));
- patch_addend<uint16_t>(relocation, from, shift);
- break;
- }
+ {
+ LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+ patch_addend<uint16_t>(relocation, from, shift);
+ break;
+ }
case Relocation::TYPE::AARCH64_PREL64:
- {
- LIEF_DEBUG("Patch addend of {}", to_string(relocation));
- patch_addend<uint64_t>(relocation, from, shift);
- break;
- }
+ {
+ LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+ patch_addend<uint64_t>(relocation, from, shift);
+ break;
+ }
case Relocation::TYPE::AARCH64_PREL32:
- {
- LIEF_DEBUG("Patch addend of {}", to_string(relocation));
- patch_addend<uint32_t>(relocation, from, shift);
- break;
- }
+ {
+ LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+ patch_addend<uint32_t>(relocation, from, shift);
+ break;
+ }
case Relocation::TYPE::AARCH64_PREL16:
- {
- LIEF_DEBUG("Patch addend of {}", to_string(relocation));
- patch_addend<uint16_t>(relocation, from, shift);
- break;
- }
+ {
+ LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+ patch_addend<uint16_t>(relocation, from, shift);
+ break;
+ }
default:
- {
- LIEF_DEBUG("Relocation {} is not patched", to_string(type));
- }
+ {
+ LIEF_DEBUG("Relocation {} is not patched", to_string(type));
+ }
}
}
}
@@ -187,7 +176,7 @@ template<>
void Binary::patch_relocations<ARCH::I386>(uint64_t from, uint64_t shift) {
for (Relocation& relocation : relocations()) {
if (relocation.address() >= from) {
- //shift_code(relocation.address(), shift, relocation.size() / 8);
+ // shift_code(relocation.address(), shift, relocation.size() / 8);
relocation.address(relocation.address() + shift);
}
const Relocation::TYPE type = relocation.type();
@@ -198,22 +187,22 @@ void Binary::patch_relocations<ARCH::I386>(uint64_t from, uint64_t shift) {
case Relocation::TYPE::X86_IRELATIVE:
case Relocation::TYPE::X86_GLOB_DAT:
case Relocation::TYPE::X86_32:
- {
- LIEF_DEBUG("Patch addend of {}", to_string(relocation));
- patch_addend<uint32_t>(relocation, from, shift);
- break;
- }
+ {
+ LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+ patch_addend<uint32_t>(relocation, from, shift);
+ break;
+ }
case Relocation::TYPE::X86_TLS_DTPMOD32:
case Relocation::TYPE::X86_TLS_DTPOFF32:
- {
- // Nothing to do for these relocations
- continue;
- }
+ {
+ // Nothing to do for these relocations
+ continue;
+ }
default:
- {
- LIEF_WARN("Relocation {} not supported!", to_string(type));
- }
+ {
+ LIEF_WARN("Relocation {} not supported", to_string(type));
+ }
}
}
}
@@ -225,9 +214,8 @@ template<>
void Binary::patch_relocations<ARCH::X86_64>(uint64_t from, uint64_t shift) {
for (Relocation& relocation : relocations()) {
if (relocation.address() >= from) {
- LIEF_DEBUG("{:23}: 0x{:010x} -> 0x{:010x}",
- to_string(relocation.type()), relocation.address(),
- relocation.address() + shift);
+ LIEF_DEBUG("{:23}: {:#012x} -> {:#012x}", to_string(relocation.type()),
+ relocation.address(), relocation.address() + shift);
relocation.address(relocation.address() + shift);
}
@@ -239,21 +227,21 @@ void Binary::patch_relocations<ARCH::X86_64>(uint64_t from, uint64_t shift) {
case Relocation::TYPE::X86_64_JUMP_SLOT:
case Relocation::TYPE::X86_64_GLOB_DAT:
case Relocation::TYPE::X86_64_64:
- {
- patch_addend<uint64_t>(relocation, from, shift);
- break;
- }
+ {
+ patch_addend<uint64_t>(relocation, from, shift);
+ break;
+ }
case Relocation::TYPE::X86_64_32:
- {
- patch_addend<uint32_t>(relocation, from, shift);
- break;
- }
+ {
+ patch_addend<uint32_t>(relocation, from, shift);
+ break;
+ }
default:
- {
- LIEF_DEBUG("Relocation {} is not patched", to_string(type));
- }
+ {
+ LIEF_DEBUG("Relocation {} is not patched", to_string(type));
+ }
}
}
}
@@ -274,16 +262,16 @@ void Binary::patch_relocations<ARCH::PPC>(uint64_t from, uint64_t shift) {
switch (type) {
case Relocation::TYPE::PPC_RELATIVE:
case Relocation::TYPE::PPC_JMP_SLOT:
- {
- LIEF_DEBUG("Patch addend of {}", to_string(relocation));
- patch_addend<uint32_t>(relocation, from, shift);
- break;
- }
+ {
+ LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+ patch_addend<uint32_t>(relocation, from, shift);
+ break;
+ }
default:
- {
- LIEF_DEBUG("Relocation {} is not patched", to_string(type));
- }
+ {
+ LIEF_DEBUG("Relocation {} is not patched", to_string(type));
+ }
}
}
}
@@ -305,35 +293,35 @@ void Binary::patch_relocations<ARCH::RISCV>(uint64_t from, uint64_t shift) {
case Relocation::TYPE::RISCV_32:
case Relocation::TYPE::RISCV_TLS_DTPREL32:
case Relocation::TYPE::RISCV_TLS_TPREL32:
- {
- LIEF_DEBUG("Patch addend of {}", to_string(relocation));
- patch_addend<uint32_t>(relocation, from, shift);
- break;
- }
+ {
+ LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+ patch_addend<uint32_t>(relocation, from, shift);
+ break;
+ }
case Relocation::TYPE::RISCV_64:
case Relocation::TYPE::RISCV_TLS_DTPMOD64:
case Relocation::TYPE::RISCV_TLS_DTPREL64:
case Relocation::TYPE::RISCV_TLS_TPREL64:
- {
- LIEF_DEBUG("Patch addend of {}", to_string(relocation));
- patch_addend<uint64_t>(relocation, from, shift);
- break;
- }
+ {
+ LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+ patch_addend<uint64_t>(relocation, from, shift);
+ break;
+ }
case Relocation::TYPE::RISCV_RELATIVE:
case Relocation::TYPE::RISCV_IRELATIVE:
- {
- LIEF_DEBUG("Patch addend of {}", to_string(relocation));
- is64 ? patch_addend<uint64_t>(relocation, from, shift) :
- patch_addend<uint32_t>(relocation, from, shift);
- break;
- }
+ {
+ LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+ is64 ? patch_addend<uint64_t>(relocation, from, shift) :
+ patch_addend<uint32_t>(relocation, from, shift);
+ break;
+ }
default:
- {
- LIEF_DEBUG("Relocation {} is not patched", to_string(type));
- }
+ {
+ LIEF_DEBUG("Relocation {} is not patched", to_string(type));
+ }
}
}
}
@@ -355,15 +343,15 @@ void Binary::patch_relocations<ARCH::SH>(uint64_t from, uint64_t shift) {
case Relocation::TYPE::SH_DIR32:
case Relocation::TYPE::SH_REL32:
case Relocation::TYPE::SH_JMP_SLOT:
- {
- LIEF_DEBUG("Patch addend of {}", to_string(relocation));
- patch_addend<uint32_t>(relocation, from, shift);
- break;
- }
+ {
+ LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+ patch_addend<uint32_t>(relocation, from, shift);
+ break;
+ }
default:
- {
- LIEF_DEBUG("Relocation {} is not patched", to_string(type));
- }
+ {
+ LIEF_DEBUG("Relocation {} is not patched", to_string(type));
+ }
}
}
}
@@ -382,15 +370,15 @@ void Binary::patch_relocations<ARCH::PPC64>(uint64_t from, uint64_t shift) {
switch (type) {
case Relocation::TYPE::PPC64_JMP_SLOT:
case Relocation::TYPE::PPC64_RELATIVE:
- {
- LIEF_DEBUG("Patch addend of {}", to_string(relocation));
- patch_addend<uint64_t>(relocation, from, shift);
- break;
- }
+ {
+ LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+ patch_addend<uint64_t>(relocation, from, shift);
+ break;
+ }
default:
- {
- LIEF_DEBUG("Relocation {} is not patched", to_string(type));
- }
+ {
+ LIEF_DEBUG("Relocation {} is not patched", to_string(type));
+ }
}
}
}
@@ -415,16 +403,16 @@ void Binary::patch_relocations<ARCH::S390>(uint64_t from, uint64_t shift) {
case Relocation::TYPE::SYSZ_IRELATIVE:
case Relocation::TYPE::SYSZ_GLOB_DAT:
case Relocation::TYPE::SYSZ_64:
- {
- LIEF_DEBUG("Patch addend of {}", to_string(relocation));
- is64 ? patch_addend<uint64_t>(relocation, from, shift) :
- patch_addend<uint32_t>(relocation, from, shift);
- break;
- }
+ {
+ LIEF_DEBUG("Patch addend of {}", to_string(relocation));
+ is64 ? patch_addend<uint64_t>(relocation, from, shift) :
+ patch_addend<uint32_t>(relocation, from, shift);
+ break;
+ }
default:
- {
- LIEF_DEBUG("Relocation {} is not patched", to_string(type));
- }
+ {
+ LIEF_DEBUG("Relocation {} is not patched", to_string(type));
+ }
}
}
}
@@ -433,21 +421,21 @@ void Binary::patch_relocations<ARCH::S390>(uint64_t from, uint64_t shift) {
template<class T>
void Binary::patch_addend(Relocation& relocation, uint64_t from, uint64_t shift) {
if (static_cast<uint64_t>(relocation.addend()) >= from) {
- LIEF_DEBUG("(addend) {:23}: 0x{:010x} -> 0x{:010x}",
- to_string(relocation.type()), relocation.addend(),
- relocation.addend() + shift);
+ LIEF_DEBUG("(addend) {:23}: {:#012x} -> {:#012x}",
+ to_string(relocation.type()), relocation.addend(),
+ relocation.addend() + shift);
relocation.addend(relocation.addend() + shift);
}
const uint64_t address = relocation.address();
Segment* segment = segment_from_virtual_address(address);
if (segment == nullptr) {
- LIEF_ERR("Can't find segment with the virtual address 0x{:x}", address);
+ LIEF_ERR("Can't find segment with the virtual address {:#x}", address);
}
auto res_offset = virtual_address_to_offset(address);
if (!res_offset) {
- LIEF_ERR("Can't convert the virtual address 0x{:06x} into an offset", address);
+ LIEF_ERR("Can't convert the virtual address {:#08x} into an offset", address);
return;
}
const uint64_t relative_offset = *res_offset - segment->file_offset();
@@ -459,7 +447,9 @@ void Binary::patch_addend(Relocation& relocation, uint64_t from, uint64_t shift)
return;
}
- if (relative_offset >= segment_size || (relative_offset + sizeof(T)) > segment_size) {
+ if (relative_offset >= segment_size ||
+ (relative_offset + sizeof(T)) > segment_size)
+ {
LIEF_DEBUG("Offset out of bound for relocation: {}", to_string(relocation));
return;
}
@@ -492,17 +482,18 @@ void Binary::patch_addend(Relocation& relocation, uint64_t from, uint64_t shift)
//
// segment_va % pagesize() == segment_offset % pagesize()
//
-// It implies that we usually find "cave" between segments
-// that could can be large enough to insert our new phdr table.
+// It implies that we usually find "caves" between segments
+// that could be large enough to insert our new phdr table.
// To do so, we would just need to extend the PT_LOAD segment associated
// with the caving.
template<>
-Segment* Binary::add_segment<Header::FILE_TYPE::EXEC>(const Segment& segment, uint64_t base) {
+Segment* Binary::add_segment<Header::FILE_TYPE::EXEC>(const Segment& segment,
+ uint64_t base) {
Header& header = this->header();
const uint64_t new_phdr_offset = relocate_phdr_table_auto();
if (new_phdr_offset == 0) {
- LIEF_ERR("We can't relocate the PHDR table for this binary.");
+ LIEF_ERR("Failed to relocate the PHDR table for this binary");
return nullptr;
}
@@ -515,19 +506,26 @@ Segment* Binary::add_segment<Header::FILE_TYPE::EXEC>(const Segment& segment, ui
// ====================================================================
header.numberof_segments(header.numberof_segments() + 1);
span<const uint8_t> content_ref = segment.content();
- std::vector<uint8_t> content{content_ref.data(), std::end(content_ref)};
+ std::vector<uint8_t> content{content_ref.data(), content_ref.end()};
auto new_segment = std::make_unique<Segment>(segment);
uint64_t last_offset_sections = last_offset_section();
uint64_t last_offset_segments = last_offset_segment();
- uint64_t last_offset = std::max<uint64_t>(last_offset_sections, last_offset_segments);
+ uint64_t last_offset =
+ std::max<uint64_t>(last_offset_sections, last_offset_segments);
const auto psize = page_size();
const uint64_t last_offset_aligned = align(last_offset, psize);
new_segment->file_offset(last_offset_aligned);
+ init_alignment(*this, *new_segment, this->ptr_size());
+
+ if (base == 0) {
+ base = align(next_virtual_address(), new_segment->alignment());
+ }
+
if (segment.virtual_address() == 0) {
new_segment->virtual_address(base + last_offset_aligned);
}
@@ -541,36 +539,45 @@ Segment* Binary::add_segment<Header::FILE_TYPE::EXEC>(const Segment& segment, ui
new_segment->physical_size(segmentsize);
new_segment->virtual_size(segmentsize);
-
- init_alignment(*this, *new_segment, this->ptr_size());
-
new_segment->datahandler_ = datahandler_.get();
- DataHandler::Node new_node{new_segment->file_offset(), new_segment->physical_size(),
+ DataHandler::Node new_node{new_segment->file_offset(),
+ new_segment->physical_size(),
DataHandler::Node::SEGMENT};
datahandler_->add(new_node);
- auto alloc = datahandler_->make_hole(last_offset_aligned, new_segment->physical_size());
+ auto alloc =
+ datahandler_->make_hole(last_offset_aligned, new_segment->physical_size());
if (!alloc) {
LIEF_ERR("Allocation failed");
return nullptr;
}
new_segment->content(content);
- if (header.section_headers_offset() <= new_segment->file_offset() + new_segment->physical_size()) {
- header.section_headers_offset(new_segment->file_offset() + new_segment->physical_size());
+ if (header.section_headers_offset() <=
+ new_segment->file_offset() + new_segment->physical_size())
+ {
+ header.section_headers_offset(align(
+ new_segment->file_offset() + new_segment->physical_size(), ptr_size()
+ ));
}
- const auto it_new_segment_place = std::find_if(segments_.rbegin(), segments_.rend(),
- [&new_segment] (const std::unique_ptr<Segment>& s) { return s->type() == new_segment->type(); });
+ const auto it_new_segment_place =
+ std::find_if(segments_.rbegin(), segments_.rend(),
+ [&new_segment](const std::unique_ptr<Segment>& s) {
+ return s->type() == new_segment->type();
+ });
- Segment* seg_ptr = new_segment.get();
+ Segment* seg_ptr = nullptr;
if (it_new_segment_place == segments_.rend()) {
- segments_.push_back(std::move(new_segment));
+ seg_ptr = segments_.emplace_back(std::move(new_segment)).get();
} else {
- const size_t idx = std::distance(std::begin(segments_), it_new_segment_place.base());
- segments_.insert(std::begin(segments_) + idx, std::move(new_segment));
+ const size_t idx =
+ std::distance(segments_.begin(), it_new_segment_place.base());
+ seg_ptr =
+ segments_.insert(segments_.begin() + idx, std::move(new_segment))->get();
}
phdr_reloc_info_.nb_segments--;
+ assert(seg_ptr != nullptr);
return seg_ptr;
}
@@ -578,7 +585,8 @@ Segment* Binary::add_segment<Header::FILE_TYPE::EXEC>(const Segment& segment, ui
// ET_DYN (PIE/Libraries)
// =======================
template<>
-Segment* Binary::add_segment<Header::FILE_TYPE::DYN>(const Segment& segment, uint64_t base) {
+Segment* Binary::add_segment<Header::FILE_TYPE::DYN>(const Segment& segment,
+ uint64_t base) {
const auto psize = page_size();
const auto ptr_size = this->ptr_size();
/*const uint64_t new_phdr_offset = */ relocate_phdr_table_auto();
@@ -588,27 +596,43 @@ Segment* Binary::add_segment<Header::FILE_TYPE::DYN>(const Segment& segment, uin
auto new_segment = std::make_unique<Segment>(segment);
new_segment->datahandler_ = datahandler_.get();
- DataHandler::Node new_node{new_segment->file_offset(), new_segment->physical_size(),
+ DataHandler::Node new_node{new_segment->file_offset(),
+ new_segment->physical_size(),
DataHandler::Node::SEGMENT};
datahandler_->add(new_node);
init_alignment(*this, *new_segment, ptr_size);
+ // We attempt to carry over the in-page offset for purpose of code or data
+ // alignment.
+ const uint64_t in_page_offset = segment.file_offset() % psize;
+
const uint64_t last_offset_segments = last_offset_segment();
- const uint64_t last_offset = last_offset_segments;
- const uint64_t last_offset_aligned = align(last_offset, 0x10);
- if (base == 0) {
- base = align(next_virtual_address(), psize);
- }
+ const uint64_t last_offset = last_offset_segments;
+ const uint64_t last_offset_aligned =
+ align_with_offset(last_offset, psize, in_page_offset);
+ LIEF_DEBUG("Last offset: {:#010x}", last_offset_aligned);
+ LIEF_DEBUG("Base: {:#010x}", base);
- uint64_t segmentsize = align(content.size(), 0x10);
+ auto segmentsize = align_up<uint64_t>(content.size(), 0x10);
const uint64_t delta = last_offset_aligned + segmentsize - last_offset;
shift_sections(last_offset, delta);
new_segment->file_offset(last_offset_aligned);
- new_segment->virtual_address(new_segment->file_offset() + base);
+ if (base == 0) {
+ const uint64_t alignment = new_segment->alignment();
+ const uint64_t next_va = next_virtual_address();
+ uint64_t virtual_address =
+ align_down(next_va, alignment) + new_segment->file_offset() % alignment;
+ if (virtual_address < next_va) {
+ virtual_address += alignment;
+ }
+ new_segment->virtual_address(virtual_address);
+ } else {
+ new_segment->virtual_address(new_segment->file_offset() + base);
+ }
new_segment->physical_address(new_segment->virtual_address());
new_segment->handler_size_ = content.size();
@@ -617,9 +641,12 @@ Segment* Binary::add_segment<Header::FILE_TYPE::DYN>(const Segment& segment, uin
// Patch SHDR
Header& header = this->header();
- header.section_headers_offset(header.section_headers_offset() + delta);
+ if (header.section_headers_offset() >= last_offset) {
+ header.section_headers_offset(align(header.section_headers_offset() + delta,
+ ptr_size));
+ }
- auto alloc = datahandler_->make_hole(last_offset_aligned, new_segment->physical_size());
+ auto alloc = datahandler_->make_hole(last_offset, delta);
if (!alloc) {
LIEF_ERR("Allocation failed");
@@ -630,21 +657,23 @@ Segment* Binary::add_segment<Header::FILE_TYPE::DYN>(const Segment& segment, uin
header.numberof_segments(header.numberof_segments() + 1);
- const auto& it_new_segment_place = std::find_if(
- segments_.rbegin(), segments_.rend(),
- [&new_segment] (const std::unique_ptr<Segment>& s) {
- return s->type() == new_segment->type();
- });
+ const auto& it_new_segment_place =
+ std::find_if(segments_.rbegin(), segments_.rend(),
+ [&new_segment](const std::unique_ptr<Segment>& s) {
+ return s->type() == new_segment->type();
+ });
- Segment* seg_ptr = new_segment.get();
+ Segment* seg_ptr = nullptr;
if (it_new_segment_place == segments_.rend()) {
- segments_.push_back(std::move(new_segment));
+ seg_ptr = segments_.emplace_back(std::move(new_segment)).get();
} else {
- const size_t idx = std::distance(std::begin(segments_), it_new_segment_place.base());
- segments_.insert(std::begin(segments_) + idx, std::move(new_segment));
+ const size_t idx =
+ std::distance(segments_.begin(), it_new_segment_place.base());
+ seg_ptr =
+ segments_.insert(segments_.begin() + idx, std::move(new_segment))->get();
}
-
+ assert(seg_ptr != nullptr);
return seg_ptr;
}
@@ -653,14 +682,16 @@ Segment* Binary::add_segment<Header::FILE_TYPE::DYN>(const Segment& segment, uin
// Extend PT_LOAD
// =======================
template<>
-Segment* Binary::extend_segment<Segment::TYPE::LOAD>(const Segment& segment, uint64_t size) {
+Segment* Binary::extend_segment<Segment::TYPE::LOAD>(const Segment& segment,
+ uint64_t size) {
- const auto it_segment = std::find_if(std::begin(segments_), std::end(segments_),
- [&segment] (const std::unique_ptr<Segment>& s) {
- return *s == segment;
- });
+ const auto it_segment =
+ std::find_if(segments_.begin(), segments_.end(),
+ [&segment](const std::unique_ptr<Segment>& s) {
+ return *s == segment;
+ });
- if (it_segment == std::end(segments_)) {
+ if (it_segment == segments_.end()) {
LIEF_ERR("Unable to find the segment in the current binary");
return nullptr;
}
@@ -668,13 +699,15 @@ Segment* Binary::extend_segment<Segment::TYPE::LOAD>(const Segment& segment, uin
std::unique_ptr<Segment>& segment_to_extend = *it_segment;
- uint64_t from_offset = segment_to_extend->file_offset() + segment_to_extend->physical_size();
- uint64_t from_address = segment_to_extend->virtual_address() + segment_to_extend->virtual_size();
- uint64_t shift = size;
+ uint64_t from_offset =
+ segment_to_extend->file_offset() + segment_to_extend->physical_size();
+ uint64_t from_address =
+ segment_to_extend->virtual_address() + segment_to_extend->virtual_size();
+ uint64_t shift = size;
auto alloc = datahandler_->make_hole(
- segment_to_extend->file_offset() + segment_to_extend->physical_size(),
- size);
+ segment_to_extend->file_offset() + segment_to_extend->physical_size(), size
+ );
if (!alloc) {
LIEF_ERR("Allocation failed");
@@ -689,13 +722,14 @@ Segment* Binary::extend_segment<Segment::TYPE::LOAD>(const Segment& segment, uin
segment_to_extend->virtual_size(segment_to_extend->virtual_size() + size);
span<const uint8_t> content_ref = segment_to_extend->content();
- std::vector<uint8_t> segment_content{content_ref.data(), std::end(content_ref)};
+ std::vector<uint8_t> segment_content{content_ref.data(), content_ref.end()};
segment_content.resize(segment_to_extend->physical_size(), 0);
segment_to_extend->content(segment_content);
// Patches
- header().section_headers_offset(header().section_headers_offset() + shift);
+ header().section_headers_offset(align(header().section_headers_offset() + shift,
+ ptr_size()));
shift_dynamic_entries(from_address, shift);
shift_symbols(from_address, shift);
@@ -743,8 +777,7 @@ inline Segment seg_for_section(const Section& section) {
template<>
Section* Binary::add_section</*loaded=*/true>(const Section& section,
- SEC_INSERT_POS pos)
-{
+ SEC_INSERT_POS pos) {
LIEF_DEBUG("Adding section '{}' as LOADED", section.name());
if (pos != SEC_INSERT_POS::AUTO && pos != SEC_INSERT_POS::POST_SEGMENT) {
LIEF_ERR("Unsupported position for inserting loaded section");
@@ -757,8 +790,8 @@ Section* Binary::add_section</*loaded=*/true>(const Section& section,
return nullptr;
}
- LIEF_DEBUG("Segment associated: {}@0x{:x}",
- to_string(segment_added->type()), segment_added->virtual_address());
+ LIEF_DEBUG("Segment associated: {}@{:#x}", to_string(segment_added->type()),
+ segment_added->virtual_address());
auto new_section = std::make_unique<Section>(section);
new_section->datahandler_ = datahandler_.get();
@@ -782,8 +815,7 @@ Section* Binary::add_section</*loaded=*/true>(const Section& section,
// Add a non-loaded section
template<>
Section* Binary::add_section</*loaded=*/false>(const Section& section,
- SEC_INSERT_POS pos)
-{
+ SEC_INSERT_POS pos) {
auto new_section = std::make_unique<Section>(section);
new_section->datahandler_ = datahandler_.get();
@@ -797,9 +829,7 @@ Section* Binary::add_section</*loaded=*/false>(const Section& section,
uint64_t last_offset = 0;
switch (pos) {
case SEC_INSERT_POS::AUTO:
- case SEC_INSERT_POS::POST_SEGMENT:
- last_offset = last_offset_segments;
- break;
+ case SEC_INSERT_POS::POST_SEGMENT: last_offset = last_offset_segments; break;
case SEC_INSERT_POS::POST_SECTION:
last_offset = std::max(last_offset_segments, last_offset_sections);
break;
@@ -823,7 +853,7 @@ Section* Binary::add_section</*loaded=*/false>(const Section& section,
Header& header = this->header();
header.numberof_sections(header.numberof_sections() + 1);
const uint64_t new_section_hdr_offset = header.section_headers_offset() + delta;
- header.section_headers_offset(new_section_hdr_offset);
+ header.section_headers_offset(align(new_section_hdr_offset, ptr_size()));
return add_section(std::move(new_section));
}
@@ -836,10 +866,11 @@ void Binary::fix_got_entries(uint64_t from, uint64_t shift) {
return;
}
const uint64_t addr = dt_pltgot->value();
- span<const uint8_t> content = get_content_from_virtual_address(addr, 3 * sizeof(ptr_t));
+ span<const uint8_t> content =
+ get_content_from_virtual_address(addr, 3 * sizeof(ptr_t));
std::vector<uint8_t> content_vec(content.begin(), content.end());
if (content.size() != 3 * sizeof(ptr_t)) {
- LIEF_ERR("Can't read got entries!");
+ LIEF_ERR("Failed to read GOT entries");
return;
}
@@ -855,4 +886,3 @@ void Binary::fix_got_entries(uint64_t from, uint64_t shift) {
}
}
-}
diff --git a/deps/LIEF/src/ELF/Builder.cpp b/deps/LIEF/src/ELF/Builder.cpp
index 7f6e86310f1..ead54ee3dcb 100644
--- a/deps/LIEF/src/ELF/Builder.cpp
+++ b/deps/LIEF/src/ELF/Builder.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,36 +32,35 @@
#include "ExeLayout.hpp"
#include "ObjectFileLayout.hpp"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
Builder::~Builder() = default;
Builder::Builder(Binary& binary, const config_t& config) :
config_{config},
- binary_{&binary}
-{
+ binary_{&binary} {
const Header::FILE_TYPE type = binary.header().file_type();
switch (type) {
case Header::FILE_TYPE::CORE:
case Header::FILE_TYPE::DYN:
case Header::FILE_TYPE::EXEC:
- {
- layout_ = std::make_unique<ExeLayout>(binary, should_swap(), config_);
- break;
- }
+ {
+ layout_ = std::make_unique<ExeLayout>(binary, should_swap(), config_);
+ break;
+ }
case Header::FILE_TYPE::REL:
- {
- layout_ = std::make_unique<ObjectFileLayout>(binary, should_swap(), config_);
- break;
- }
+ {
+ layout_ = std::make_unique<ObjectFileLayout>(binary, should_swap(), config_);
+ break;
+ }
default:
- {
- LIEF_ERR("ELF {} are not supported", to_string(type));
- std::abort();
- }
+ {
+ LIEF_ERR("Unsupported ELF type: {}", to_string(type));
+ std::abort();
+ }
}
ios_.reserve(binary.original_size());
ios_.set_endian_swap(should_swap());
@@ -71,15 +70,20 @@ Builder::Builder(Binary& binary, const config_t& config) :
bool Builder::should_swap() const {
switch (binary_->get_abstract_header().endianness()) {
#ifdef __BYTE_ORDER__
-#if defined(__ORDER_LITTLE_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+ #if defined(__ORDER_LITTLE_ENDIAN__) && \
+ (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
case LIEF::Header::ENDIANNESS::BIG:
-#elif defined(__ORDER_BIG_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
+ #elif defined(__ORDER_BIG_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
case LIEF::Header::ENDIANNESS::LITTLE:
-#endif
+ #endif
return true;
-#endif // __BYTE_ORDER__
+#else
+ // If there is no __BYTE_ORDER__ (e.g. MSVC), assume little-endian
+ case LIEF::Header::ENDIANNESS::BIG: return true;
+#endif
default:
- // we're good (or don't know what to do), consider bytes are in the expected order
+ // we're good (or don't know what to do), consider bytes are in the expected
+ // order
return false;
}
}
@@ -92,8 +96,8 @@ void Builder::build() {
return;
}
- auto res = binary_->type() == Header::CLASS::ELF32 ?
- build<details::ELF32>() : build<details::ELF64>();
+ auto res = binary_->type() == Header::CLASS::ELF32 ? build<details::ELF32>() :
+ build<details::ELF64>();
if (!res) {
LIEF_ERR("Builder failed");
}
@@ -104,9 +108,10 @@ const std::vector<uint8_t>& Builder::get_build() {
}
void Builder::write(const std::string& filename) const {
- std::ofstream output_file{filename, std::ios::out | std::ios::binary | std::ios::trunc};
+ std::ofstream output_file{filename,
+ std::ios::out | std::ios::binary | std::ios::trunc};
if (!output_file) {
- LIEF_ERR("Can't open {}!", filename);
+ LIEF_ERR("Failed to open {}", filename);
return;
}
write(output_file);
@@ -119,53 +124,57 @@ void Builder::write(std::ostream& os) const {
}
uint32_t Builder::sort_dynamic_symbols() {
- const auto it_begin = std::begin(binary_->dynamic_symbols_);
- const auto it_end = std::end(binary_->dynamic_symbols_);
+ const auto it_begin = binary_->dynamic_symbols_.begin();
+ const auto it_end = binary_->dynamic_symbols_.end();
const auto it_first_non_local_symbol =
std::stable_partition(it_begin, it_end,
- [] (const std::unique_ptr<Symbol>& sym) {
- return sym->is_local();
- });
+ [](const std::unique_ptr<Symbol>& sym) {
+ return sym->is_local();
+ });
- const uint32_t first_non_local_symbol_index = std::distance(it_begin, it_first_non_local_symbol);
+ const uint32_t first_non_local_symbol_index =
+ std::distance(it_begin, it_first_non_local_symbol);
if (Section* section = binary_->get_section(".dynsym")) {
if (section->information() != first_non_local_symbol_index) {
// TODO: Erase null entries of dynamic symbol table and symbol version
- // table if information of .dynsym section is smaller than null entries
- // num.
- LIEF_DEBUG("information of {} section changes from {:d} to {:d}",
- section->name(), section->information(), first_non_local_symbol_index);
+ // table if the .dynsym section info is smaller than the number of null
+ // entries.
+ LIEF_DEBUG("Info field of {} section changed from {:d} to {:d}",
+ section->name(), section->information(),
+ first_non_local_symbol_index);
section->information(first_non_local_symbol_index);
}
}
- const auto it_first_exported_symbol = std::stable_partition(
- it_first_non_local_symbol, it_end, [] (const std::unique_ptr<Symbol>& sym) {
- return sym->shndx() == Symbol::SECTION_INDEX::UNDEF;
- });
+ const auto it_first_exported_symbol =
+ std::stable_partition(it_first_non_local_symbol, it_end,
+ [](const std::unique_ptr<Symbol>& sym) {
+ return sym->shndx() == Symbol::SECTION_INDEX::UNDEF;
+ });
- const uint32_t first_exported_symbol_index = std::distance(it_begin, it_first_exported_symbol);
+ const uint32_t first_exported_symbol_index =
+ std::distance(it_begin, it_first_exported_symbol);
return first_exported_symbol_index;
}
ok_error_t Builder::build_empty_symbol_gnuhash() {
- LIEF_DEBUG("Build empty GNU Hash");
+ LIEF_DEBUG("Building empty GNU hash");
Section* gnu_hash_section = binary_->get(Section::TYPE::GNU_HASH);
if (gnu_hash_section == nullptr) {
- LIEF_ERR("Can't find section with type SHT_GNU_HASH");
+ LIEF_ERR("SHT_GNU_HASH section not found");
return make_error_code(lief_errors::not_found);
}
vector_iostream content(should_swap());
const uint32_t nb_buckets = 1;
- const uint32_t shift2 = 0;
- const uint32_t maskwords = 1;
- const uint32_t symndx = 1; // 0 is reserved
+ const uint32_t shift2 = 0;
+ const uint32_t maskwords = 1;
+ const uint32_t symndx = 1; // 0 is reserved
// nb_buckets
content.write<uint32_t>(nb_buckets);
@@ -186,36 +195,34 @@ ok_error_t Builder::build_empty_symbol_gnuhash() {
}
ok_error_t Builder::update_note_section(const Note& note,
- std::set<const Note*>& notes)
-{
+ std::set<const Note*>& notes) {
Segment* segment_note = binary_->get(Segment::TYPE::NOTE);
if (segment_note == nullptr) {
- LIEF_ERR("Can't find the PT_NOTE segment");
+ LIEF_ERR("PT_NOTE segment not found");
return make_error_code(lief_errors::not_found);
}
auto res_secname = Note::type_to_section(note.type());
if (!res_secname) {
- LIEF_ERR("LIEF doesn't know the section name for note: '{}'",
- to_string(note.type()));
+ LIEF_ERR("Unknown section name for note '{}'", to_string(note.type()));
return make_error_code(lief_errors::not_supported);
}
Section* note_sec = binary_->get_section(*res_secname);
if (!note_sec) {
- LIEF_ERR("Section {} not present", *res_secname);
+ LIEF_ERR("Section '{}' not found", *res_secname);
return make_error_code(lief_errors::not_found);
}
const auto& offset_map = static_cast<ExeLayout*>(layout_.get())->note_off_map();
auto it_offset = offset_map.find(¬e);
if (it_offset == offset_map.end()) {
- LIEF_ERR("Can't find offset for note '{}'", to_string(note.type()));
+ LIEF_ERR("Offset not found for note '{}'", to_string(note.type()));
return make_error_code(lief_errors::not_found);
}
if (!notes.insert(¬e).second) {
- LIEF_DEBUG("Note '{}' has already been processed", to_string(note.type()));
+ LIEF_DEBUG("Note '{}' already processed", to_string(note.type()));
note_sec->virtual_address(0);
note_sec->size(note_sec->size() + note.size());
return ok_t();
@@ -239,4 +246,3 @@ ok_error_t Builder::update_note_section(const Note& note,
}
}
-}
diff --git a/deps/LIEF/src/ELF/Builder.tcc b/deps/LIEF/src/ELF/Builder.tcc
index 11aeb061c71..2ff5b637758 100644
--- a/deps/LIEF/src/ELF/Builder.tcc
+++ b/deps/LIEF/src/ELF/Builder.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
* Copyright 2017 - 2021, NVIDIA CORPORATION. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -17,15 +17,11 @@
#include <algorithm>
#include <cassert>
#include <iterator>
-#include <numeric>
#include <unordered_map>
#include "logging.hpp"
-#include "LIEF/BinaryStream/VectorStream.hpp"
-
#include "LIEF/ELF/utils.hpp"
-#include "LIEF/ELF/EnumToString.hpp"
#include "LIEF/ELF/Builder.hpp"
#include "LIEF/ELF/Binary.hpp"
#include "LIEF/ELF/Section.hpp"
@@ -35,12 +31,13 @@
#include "LIEF/ELF/DynamicEntryArray.hpp"
#include "LIEF/ELF/DynamicEntryLibrary.hpp"
#include "LIEF/ELF/DynamicSharedObject.hpp"
+#include "LIEF/ELF/DynamicEntryAuxiliary.hpp"
+#include "LIEF/ELF/DynamicEntryFilter.hpp"
#include "LIEF/ELF/DynamicEntryRunPath.hpp"
#include "LIEF/ELF/DynamicEntryRpath.hpp"
#include "LIEF/ELF/Relocation.hpp"
#include "LIEF/ELF/SymbolVersion.hpp"
#include "LIEF/ELF/SymbolVersionDefinition.hpp"
-#include "LIEF/ELF/SymbolVersionAux.hpp"
#include "LIEF/ELF/SymbolVersionRequirement.hpp"
#include "LIEF/ELF/SymbolVersionAuxRequirement.hpp"
#include "LIEF/ELF/Note.hpp"
@@ -54,26 +51,29 @@
#include "ObjectFileLayout.hpp"
#include "internal_utils.hpp"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
template<class ELF_T>
ok_error_t Builder::build() {
- const char* type = ((binary_->type_ == Header::CLASS::ELF32) ? "ELF32" : "ELF64");
- LIEF_DEBUG("== Re-building {} ==", type);
+ const char* type =
+ ((binary_->type_ == Header::CLASS::ELF32) ? "ELF32" : "ELF64");
+ LIEF_DEBUG("Rebuilding {}", type);
if (!config_.keep_empty_version_requirement) {
binary_->symbol_version_requirements_.erase(
- std::remove_if(binary_->symbol_version_requirements_.begin(), binary_->symbol_version_requirements_.end(),
- [] (const std::unique_ptr<SymbolVersionRequirement>& req) {
- if constexpr (lief_logging_debug) {
- if (req->auxiliary_symbols().empty()) {
- LIEF_DEBUG("Removing: {}", req->name());
- }
- }
- return req->auxiliary_symbols().empty();
- }
- ), binary_->symbol_version_requirements_.end());
+ std::remove_if(binary_->symbol_version_requirements_.begin(),
+ binary_->symbol_version_requirements_.end(),
+ [](const std::unique_ptr<SymbolVersionRequirement>& req) {
+ if constexpr (lief_logging_debug) {
+ if (req->auxiliary_symbols().empty()) {
+ LIEF_DEBUG("Removing: {}", req->name());
+ }
+ }
+ return req->auxiliary_symbols().empty();
+ }),
+ binary_->symbol_version_requirements_.end()
+ );
if (DynamicEntry* dt = binary_->get(DynamicEntry::TAG::VERNEEDNUM)) {
dt->value(binary_->symbol_version_requirements_.size());
}
@@ -99,32 +99,32 @@ ok_error_t Builder::build() {
case Header::FILE_TYPE::DYN:
case Header::FILE_TYPE::EXEC:
case Header::FILE_TYPE::CORE:
- {
- auto res = build_exe_lib<ELF_T>();
- if (!res) {
- LIEF_ERR("The builder failed for the given executable/library. "
- "Check the error output");
- return make_error_code(lief_errors::build_error);
- }
- return ok();
+ {
+ auto res = build_exe_lib<ELF_T>();
+ if (!res) {
+ LIEF_ERR("The builder failed for the given executable/library. "
+ "Check the error output");
+ return make_error_code(lief_errors::build_error);
}
+ return ok();
+ }
case Header::FILE_TYPE::REL:
- {
- auto res = build_relocatable<ELF_T>();
- if (!res) {
- LIEF_ERR("The builder failed for the given object file. "
- "Check the error output");
- return make_error_code(lief_errors::build_error);
- }
- return ok();
+ {
+ auto res = build_relocatable<ELF_T>();
+ if (!res) {
+ LIEF_ERR("The builder failed for the given object file. "
+ "Check the error output");
+ return make_error_code(lief_errors::build_error);
}
+ return ok();
+ }
default:
- {
- LIEF_ERR("ELF file '{}' are not supported by LIEF", to_string(file_type));
- return make_error_code(lief_errors::not_supported);
- }
+ {
+ LIEF_ERR("ELF file '{}' are not supported by LIEF", to_string(file_type));
+ return make_error_code(lief_errors::not_supported);
+ }
}
}
@@ -141,12 +141,17 @@ ok_error_t Builder::build_exe_lib() {
if (pt_interp != nullptr) {
const size_t interpt_size = layout->interpreter_size<ELF_T>();
const uint64_t osize = binary_->sizing_info_->interpreter;
- if (interpt_size > osize || config_.force_relocate) {
- LIEF_DEBUG("[-] Need to relocate .interp section (0x{:x} new bytes)", interpt_size - osize);
+ const bool should_relocate = interpt_size > osize || config_.force_relocate;
+ if (should_relocate) {
+ LIEF_DEBUG("[-] Need to relocate .interp section ({:#x} new bytes)",
+ interpt_size - osize);
layout->relocate_interpreter(interpt_size);
- } else { LIEF_DEBUG(".interp: -0x{:x} bytes", osize - interpt_size); }
- } else if (!binary_->interpreter_.empty()) { // Directly access private field as we want to avoid
- // has_interpreter() check
+ } else {
+ LIEF_DEBUG(".interp: -{:#x} bytes", osize - interpt_size);
+ }
+ } else if (!binary_->interpreter_
+ .empty()) { // Directly access private field as we want to
+ // avoid has_interpreter() check
// In this case, the original ELF file didn't have an interpreter
// and the user added one.
@@ -175,11 +180,16 @@ ok_error_t Builder::build_exe_lib() {
Segment& note_segment = *note_segments.back();
- if (notes_size > note_segment.physical_size() || nb_segment_notes > 1 || config_.force_relocate) {
- LIEF_DEBUG("[-] Need to relocate .note.* segments (0x{:x} new bytes)",
- notes_size - note_segment.physical_size());
+ const bool should_relocate = notes_size > note_segment.physical_size() ||
+ nb_segment_notes > 1 || config_.force_relocate;
+
+ if (should_relocate) {
+ LIEF_DEBUG("[-] Need to relocate .note.* segments ({:#x} new bytes)",
+ notes_size - note_segment.physical_size());
layout->relocate_notes(true);
- } else { /*LIEF_DEBUG(".notes: -0x{:x} bytes", note_segment.physical_size() - notes_size);*/ }
+ } else { /*LIEF_DEBUG(".notes: -{:#x} bytes", note_segment.physical_size() -
+ notes_size);*/
+ }
}
if (binary_->has(DynamicEntry::TAG::GNU_HASH) && config_.gnu_hash) {
@@ -187,9 +197,12 @@ ok_error_t Builder::build_exe_lib() {
const uint64_t osize = binary_->sizing_info_->gnu_hash;
const bool should_relocate = needed_size > osize || config_.force_relocate;
if (should_relocate) {
- LIEF_DEBUG("[-] Need to relocate DT_GNU_HASH (0x{:x} new bytes)", needed_size - osize);
+ LIEF_DEBUG("[-] Need to relocate DT_GNU_HASH ({:#x} new bytes)",
+ needed_size - osize);
layout->relocate_gnu_hash(true);
- } else { LIEF_DEBUG("DT_GNU_HASH: -0x{:x} bytes", osize - needed_size); }
+ } else {
+ LIEF_DEBUG("DT_GNU_HASH: -{:#x} bytes", osize - needed_size);
+ }
}
if (binary_->has(DynamicEntry::TAG::HASH) && config_.dt_hash) {
@@ -197,9 +210,12 @@ ok_error_t Builder::build_exe_lib() {
const uint64_t osize = binary_->sizing_info_->hash;
const bool should_relocate = needed_size > osize || config_.force_relocate;
if (should_relocate) {
- LIEF_DEBUG("[-] Need to relocate DT_HASH (0x{:x} new bytes)", needed_size - osize);
+ LIEF_DEBUG("[-] Need to relocate DT_HASH ({:#x} new bytes)",
+ needed_size - osize);
layout->relocate_sysv_hash(needed_size);
- } else { LIEF_DEBUG("DT_HASH: -0x{:x} bytes", osize - needed_size); }
+ } else {
+ LIEF_DEBUG("DT_HASH: -{:#x} bytes", osize - needed_size);
+ }
}
if (binary_->has(Segment::TYPE::DYNAMIC) && config_.dynamic_section) {
@@ -208,9 +224,12 @@ ok_error_t Builder::build_exe_lib() {
const bool should_relocate = dynamic_needed_size > osize ||
(config_.force_relocate && !config_.skip_dynamic);
if (should_relocate) {
- LIEF_DEBUG("[-] Need to relocate .dynamic section (0x{:x} new bytes)", dynamic_needed_size - osize);
+ LIEF_DEBUG("[-] Need to relocate .dynamic section ({:#x} new bytes)",
+ dynamic_needed_size - osize);
layout->relocate_dynamic(dynamic_needed_size);
- } else { LIEF_DEBUG("PT_DYNAMIC: -0x{:x} bytes", osize - dynamic_needed_size); }
+ } else {
+ LIEF_DEBUG("PT_DYNAMIC: -{:#x} bytes", osize - dynamic_needed_size);
+ }
}
if (binary_->has(DynamicEntry::TAG::RELA) ||
@@ -219,154 +238,203 @@ ok_error_t Builder::build_exe_lib() {
const size_t dyn_reloc_needed_size = layout->dynamic_relocations_size<ELF_T>();
if (config_.rela) {
const uint64_t osize = binary_->sizing_info_->rela;
- const bool should_relocate = dyn_reloc_needed_size > osize || config_.force_relocate;
+ const bool should_relocate =
+ dyn_reloc_needed_size > osize || config_.force_relocate;
if (should_relocate) {
- LIEF_DEBUG("[-] Need to relocate DT_REL(A) (0x{:x} new bytes)", dyn_reloc_needed_size - osize);
+ LIEF_DEBUG("[-] Need to relocate DT_REL(A) ({:#x} new bytes)",
+ dyn_reloc_needed_size - osize);
layout->relocate_dyn_reloc(dyn_reloc_needed_size);
- } else { LIEF_DEBUG("DT_REL(A): -0x{:x} bytes", osize - dyn_reloc_needed_size); }
+ } else {
+ LIEF_DEBUG("DT_REL(A): -{:#x} bytes", osize - dyn_reloc_needed_size);
+ }
}
}
if ((binary_->has(DynamicEntry::TAG::RELR) ||
- binary_->has(DynamicEntry::TAG::ANDROID_RELR)) && config_.relr)
+ binary_->has(DynamicEntry::TAG::ANDROID_RELR)) &&
+ config_.relr)
{
const size_t relr_reloc_size = layout->relative_relocations_size<ELF_T>();
const uint64_t osize = binary_->sizing_info_->relr;
const bool should_relocate = relr_reloc_size > osize || config_.force_relocate;
if (should_relocate) {
- LIEF_DEBUG("[-] Need to relocate DT_RELR (0x{:x} new bytes)", relr_reloc_size - osize);
+ LIEF_DEBUG("[-] Need to relocate DT_RELR ({:#x} new bytes)",
+ relr_reloc_size - osize);
layout->relocate_relr(true);
- } else { LIEF_DEBUG("DT_RELR: -0x{:x} bytes", osize - relr_reloc_size); }
+ } else {
+ LIEF_DEBUG("DT_RELR: -{:#x} bytes", osize - relr_reloc_size);
+ }
}
if ((binary_->has(DynamicEntry::TAG::ANDROID_RELA) ||
- binary_->has(DynamicEntry::TAG::ANDROID_REL)) && config_.android_rela)
+ binary_->has(DynamicEntry::TAG::ANDROID_REL)) &&
+ config_.android_rela)
{
const size_t android_rela_sz = layout->android_relocations_size<ELF_T>();
const uint64_t osize = binary_->sizing_info_->android_rela;
const bool should_relocate = android_rela_sz > osize || config_.force_relocate;
if (should_relocate) {
- LIEF_DEBUG("[-] Need to relocate DT_ANDROID_REL[A] (0x{:x} new bytes)",
+ LIEF_DEBUG("[-] Need to relocate DT_ANDROID_REL[A] ({:#x} new bytes)",
android_rela_sz - osize);
layout->relocate_android_rela(true);
- } else { LIEF_DEBUG("DT_ANDROID_REL[A]: -0x{:x} bytes", osize - android_rela_sz); }
+ } else {
+ LIEF_DEBUG("DT_ANDROID_REL[A]: -{:#x} bytes", osize - android_rela_sz);
+ }
}
if (config_.jmprel && binary_->has(DynamicEntry::TAG::JMPREL)) {
const size_t plt_reloc_needed_size = layout->pltgot_relocations_size<ELF_T>();
const uint64_t osize = binary_->sizing_info_->jmprel;
- const bool should_relocate = plt_reloc_needed_size > osize || config_.force_relocate;
+ const bool should_relocate =
+ plt_reloc_needed_size > osize || config_.force_relocate;
if (should_relocate) {
- LIEF_DEBUG("[-] Need to relocate DT_JMPREL section (0x{:x} new bytes)", plt_reloc_needed_size - osize);
+ LIEF_DEBUG("[-] Need to relocate DT_JMPREL section ({:#x} new bytes)",
+ plt_reloc_needed_size - osize);
layout->relocate_plt_reloc(plt_reloc_needed_size);
- } else { LIEF_DEBUG("DT_JMPREL: -0x{:x} bytes", osize - plt_reloc_needed_size); }
+ } else {
+ LIEF_DEBUG("DT_JMPREL: -{:#x} bytes", osize - plt_reloc_needed_size);
+ }
}
if (config_.dyn_str && binary_->has(DynamicEntry::TAG::STRTAB)) {
const size_t needed_size = layout->dynstr_size<ELF_T>();
- const uint64_t osize = binary_->sizing_info_->dynstr;
+ const uint64_t osize = binary_->sizing_info_->dynstr;
const bool should_relocate = needed_size > osize || config_.force_relocate;
if (should_relocate) {
- LIEF_DEBUG("[-] Need to relocate DT_STRTAB (0x{:x} new bytes)", needed_size - osize);
+ LIEF_DEBUG("[-] Need to relocate DT_STRTAB ({:#x} new bytes)",
+ needed_size - osize);
layout->relocate_dynstr(true);
- } else { LIEF_DEBUG("DT_STRTAB: -0x{:x} bytes", osize - needed_size); }
+ } else {
+ LIEF_DEBUG("DT_STRTAB: -{:#x} bytes", osize - needed_size);
+ }
}
if (config_.symtab && binary_->has(DynamicEntry::TAG::SYMTAB)) {
const size_t dynsym_needed_size = layout->dynsym_size<ELF_T>();
const uint64_t osize = binary_->sizing_info_->dynsym;
- const bool should_relocate = dynsym_needed_size > osize || config_.force_relocate;
+ const bool should_relocate =
+ dynsym_needed_size > osize || config_.force_relocate;
if (should_relocate) {
- LIEF_DEBUG("[-] Need to relocate DT_SYMTAB (0x{:x} new bytes)", dynsym_needed_size - osize);
+ LIEF_DEBUG("[-] Need to relocate DT_SYMTAB ({:#x} new bytes)",
+ dynsym_needed_size - osize);
layout->relocate_dynsym(dynsym_needed_size);
- } else { LIEF_DEBUG("DT_SYMTAB: -0x{:x} bytes", osize - dynsym_needed_size); }
+ } else {
+ LIEF_DEBUG("DT_SYMTAB: -{:#x} bytes", osize - dynsym_needed_size);
+ }
}
if (binary_->has(DynamicEntry::TAG::INIT_ARRAY) &&
- binary_->has(DynamicEntry::TAG::INIT_ARRAYSZ) &&
- config_.init_array)
+ binary_->has(DynamicEntry::TAG::INIT_ARRAYSZ) && config_.init_array)
{
- const size_t needed_size = layout->dynamic_arraysize<ELF_T>(DynamicEntry::TAG::INIT_ARRAY);
+ const size_t needed_size =
+ layout->dynamic_arraysize<ELF_T>(DynamicEntry::TAG::INIT_ARRAY);
const uint64_t osize = binary_->sizing_info_->init_array;
const bool should_relocate = needed_size > osize;
if (should_relocate) {
if (binary_->has_symbol("__libc_start_main")) {
- LIEF_WARN("Relocating DT_INIT_ARRAY on Linux may corrupt the final binary");
+ LIEF_WARN(
+ "Relocating DT_INIT_ARRAY on Linux may corrupt the final binary"
+ );
}
- LIEF_DEBUG("[-] Need to relocate DT_INIT_ARRAY (0x{:x} new bytes)", osize - needed_size);
+ LIEF_DEBUG("[-] Need to relocate DT_INIT_ARRAY ({:#x} new bytes)",
+ osize - needed_size);
layout->relocate_init_array(needed_size);
- } else { LIEF_DEBUG("DT_INIT_ARRAY: -0x{:x} bytes", osize - needed_size); }
+ } else {
+ LIEF_DEBUG("DT_INIT_ARRAY: -{:#x} bytes", osize - needed_size);
+ }
}
if (binary_->has(DynamicEntry::TAG::PREINIT_ARRAY) &&
- binary_->has(DynamicEntry::TAG::PREINIT_ARRAYSZ) &&
- config_.preinit_array)
+ binary_->has(DynamicEntry::TAG::PREINIT_ARRAYSZ) && config_.preinit_array)
{
- const size_t needed_size = layout->dynamic_arraysize<ELF_T>(DynamicEntry::TAG::PREINIT_ARRAY);
+ const size_t needed_size =
+ layout->dynamic_arraysize<ELF_T>(DynamicEntry::TAG::PREINIT_ARRAY);
const uint64_t osize = binary_->sizing_info_->preinit_array;
const bool should_relocate = needed_size > osize;
if (should_relocate) {
- LIEF_DEBUG("[-] Need to relocate DT_PREINIT_ARRAY (0x{:x} new bytes)", osize - needed_size);
+ LIEF_DEBUG("[-] Need to relocate DT_PREINIT_ARRAY ({:#x} new bytes)",
+ osize - needed_size);
layout->relocate_preinit_array(needed_size);
- } else { LIEF_DEBUG("DT_PREINIT_ARRAY: -0x{:x} bytes", osize - needed_size); }
+ } else {
+ LIEF_DEBUG("DT_PREINIT_ARRAY: -{:#x} bytes", osize - needed_size);
+ }
}
if (binary_->has(DynamicEntry::TAG::FINI_ARRAY) &&
- binary_->has(DynamicEntry::TAG::FINI_ARRAYSZ) &&
- config_.fini_array)
+ binary_->has(DynamicEntry::TAG::FINI_ARRAYSZ) && config_.fini_array)
{
- const size_t needed_size = layout->dynamic_arraysize<ELF_T>(DynamicEntry::TAG::FINI_ARRAY);
- const uint64_t osize = binary_->sizing_info_->fini_array;
+ const size_t needed_size =
+ layout->dynamic_arraysize<ELF_T>(DynamicEntry::TAG::FINI_ARRAY);
+ const uint64_t osize = binary_->sizing_info_->fini_array;
const bool should_relocate = needed_size > osize;
if (should_relocate) {
if (binary_->has_symbol("__libc_start_main")) {
LIEF_WARN("Relocating .fini_array on Linux may corrupt the final binary");
}
- LIEF_DEBUG("[-] Need to relocate DT_FINI_ARRAY (0x{:x} new bytes)", osize - needed_size);
+ LIEF_DEBUG("[-] Need to relocate DT_FINI_ARRAY ({:#x} new bytes)",
+ osize - needed_size);
layout->relocate_fini_array(needed_size);
- } else { LIEF_DEBUG("DT_FINI_ARRAY: -0x{:x} bytes", osize - needed_size); }
+ } else {
+ LIEF_DEBUG("DT_FINI_ARRAY: -{:#x} bytes", osize - needed_size);
+ }
}
if (binary_->has(DynamicEntry::TAG::VERSYM) && config_.sym_versym) {
const size_t symver_needed_size = layout->symbol_version<ELF_T>();
- const uint64_t osize = binary_->sizing_info_->versym;
- const bool should_relocate = symver_needed_size > osize || config_.force_relocate;
+ const uint64_t osize = binary_->sizing_info_->versym;
+ const bool should_relocate =
+ symver_needed_size > osize || config_.force_relocate;
if (should_relocate) {
- LIEF_DEBUG("[-] Need to relocate DT_VERSYM (0x{:x} new bytes)", symver_needed_size - osize);
+ LIEF_DEBUG("[-] Need to relocate DT_VERSYM ({:#x} new bytes)",
+ symver_needed_size - osize);
layout->relocate_symver(symver_needed_size);
- } else { LIEF_DEBUG("DT_VERSYM: -0x{:x} bytes", osize - symver_needed_size); }
+ } else {
+ LIEF_DEBUG("DT_VERSYM: -{:#x} bytes", osize - symver_needed_size);
+ }
}
if (binary_->has(DynamicEntry::TAG::VERDEF) && config_.sym_verdef) {
const size_t symvdef_needed_size = layout->symbol_vdef_size<ELF_T>();
- const uint64_t osize = binary_->sizing_info_->verdef;
- const bool should_relocate = symvdef_needed_size > osize || config_.force_relocate;
+ const uint64_t osize = binary_->sizing_info_->verdef;
+ const bool should_relocate =
+ symvdef_needed_size > osize || config_.force_relocate;
if (should_relocate) {
- LIEF_DEBUG("[-] Need to relocate DT_VERDEF (0x{:x} new bytes)", symvdef_needed_size - osize);
+ LIEF_DEBUG("[-] Need to relocate DT_VERDEF ({:#x} new bytes)",
+ symvdef_needed_size - osize);
layout->relocate_symverd(symvdef_needed_size);
- } else { LIEF_DEBUG("DT_VERDEF: -0x{:x} bytes", osize - symvdef_needed_size); }
+ } else {
+ LIEF_DEBUG("DT_VERDEF: -{:#x} bytes", osize - symvdef_needed_size);
+ }
}
if (binary_->has(DynamicEntry::TAG::VERNEED) && config_.sym_verneed) {
const size_t symvreq_needed_size = layout->symbol_vreq_size<ELF_T>();
- const uint64_t osize = binary_->sizing_info_->verneed;
- const bool should_relocate = symvreq_needed_size > osize || config_.force_relocate;
+ const uint64_t osize = binary_->sizing_info_->verneed;
+ const bool should_relocate =
+ symvreq_needed_size > osize || config_.force_relocate;
if (should_relocate) {
- LIEF_DEBUG("[-] Need to relocate DT_VERNEED (0x{:x} new bytes)", symvreq_needed_size - osize);
+ LIEF_DEBUG("[-] Need to relocate DT_VERNEED ({:#x} new bytes)",
+ symvreq_needed_size - osize);
layout->relocate_symverr(symvreq_needed_size);
- } else { LIEF_DEBUG("DT_VERNEED: -0x{:x} bytes", osize - symvreq_needed_size); }
+ } else {
+ LIEF_DEBUG("DT_VERNEED: -{:#x} bytes", osize - symvreq_needed_size);
+ }
}
const Header& header = binary_->header();
- if (header.section_name_table_idx() > 0 && !binary_->sections_.empty() ) {
+ if (header.section_name_table_idx() > 0 && !binary_->sections_.empty()) {
if (header.section_name_table_idx() >= binary_->sections_.size()) {
- LIEF_ERR("Section string table out of bound");
+ LIEF_ERR("Section string table out of bounds");
} else {
- std::unique_ptr<Section>& string_names_section = binary_->sections_[header.section_name_table_idx()];
+ std::unique_ptr<Section>& string_names_section =
+ binary_->sections_[header.section_name_table_idx()];
const size_t shstr_size = layout->section_shstr_size();
- if (shstr_size > string_names_section->size() || config_.force_relocate) {
- LIEF_DEBUG("[-] Need to relocate '{}' section (0x{:x} new bytes)",
- string_names_section->name(), shstr_size - string_names_section->size());
+ const bool should_relocate =
+ shstr_size > string_names_section->size() || config_.force_relocate;
+ if (should_relocate) {
+ LIEF_DEBUG("[-] Need to relocate '{}' section ({:#x} new bytes)",
+ string_names_section->name(),
+ shstr_size - string_names_section->size());
layout->relocate_shstr(true);
}
}
@@ -390,8 +458,10 @@ ok_error_t Builder::build_exe_lib() {
} else {
Section& strtab = sections[strtab_idx];
const size_t strtab_needed_size = layout->section_strtab_size();
- if (strtab_needed_size > strtab.size() || config_.force_relocate) {
- LIEF_DEBUG("[-] Need to relocate .strtab section (0x{:x} new bytes)",
+ const bool should_relocate =
+ strtab_needed_size > strtab.size() || config_.force_relocate;
+ if (should_relocate) {
+ LIEF_DEBUG("[-] Need to relocate .strtab section ({:#x} new bytes)",
strtab_needed_size - strtab.size());
layout->relocate_strtab(layout->section_strtab_size());
}
@@ -403,13 +473,14 @@ ok_error_t Builder::build_exe_lib() {
if (sec_symtab != nullptr) {
const size_t needed_size = layout->static_sym_size<ELF_T>();
- if (needed_size > sec_symtab->size() || config_.force_relocate) {
- LIEF_DEBUG("[-] Need to relocate '{}' section (0x{:x} new bytes)",
+ const bool should_relocate =
+ needed_size > sec_symtab->size() || config_.force_relocate;
+ if (should_relocate) {
+ LIEF_DEBUG("[-] Need to relocate '{}' section ({:#x} new bytes)",
sec_symtab->name(), needed_size - sec_symtab->size());
layout->relocate_symtab(needed_size);
}
- }
- else if (!binary_->symtab_symbols_.empty()) {
+ } else if (!binary_->symtab_symbols_.empty()) {
// In this case the binary was stripped but the user
// added symbols => We have to craft a new section that will contain the symtab
LIEF_DEBUG("Need to create a new .symtab section");
@@ -446,10 +517,6 @@ ok_error_t Builder::build_exe_lib() {
build_notes<ELF_T>();
}
- if (config_.dynamic_section && binary_->has(Segment::TYPE::DYNAMIC)) {
- build_dynamic_section<ELF_T>();
- }
-
if (config_.symtab && binary_->has(DynamicEntry::TAG::SYMTAB)) {
build_dynamic_symbols<ELF_T>();
}
@@ -490,6 +557,10 @@ ok_error_t Builder::build_exe_lib() {
build_symtab_symbols<ELF_T>();
}
+ if (config_.dynamic_section && binary_->has(Segment::TYPE::DYNAMIC)) {
+ build_dynamic_section<ELF_T>();
+ }
+
// Build sections
if (!binary_->sections_.empty()) {
build_sections<ELF_T>();
@@ -521,15 +592,17 @@ ok_error_t Builder::process_object_relocations() {
}
using Elf_Rela = typename ELF_T::Elf_Rela;
- using Elf_Rel = typename ELF_T::Elf_Rel;
+ using Elf_Rel = typename ELF_T::Elf_Rel;
bool is_rela = it_relocations[0].is_rela();
const size_t sizeof_rel = is_rela ? sizeof(Elf_Rela) : sizeof(Elf_Rel);
const auto sections = binary_->sections();
- ObjectFileLayout::sections_reloc_map_t& sections_reloc_map = layout->sections_reloc_map();
+ ObjectFileLayout::sections_reloc_map_t& sections_reloc_map =
+ layout->sections_reloc_map();
ObjectFileLayout::relocations_map_t& relocations_map = layout->relocation_map();
- ObjectFileLayout::rel_sections_size_t& rel_sections_size = layout->rel_sections_size();
+ ObjectFileLayout::rel_sections_size_t& rel_sections_size =
+ layout->rel_sections_size();
for (Section& sec : sections) {
const Section::TYPE type = sec.type();
@@ -548,23 +621,22 @@ ok_error_t Builder::process_object_relocations() {
for (Relocation& reloc : it_relocations) {
Section* sec = reloc.section();
if (sec == nullptr) {
- LIEF_WARN("Relocation @0x{:x} misses a section", reloc.address());
+ LIEF_WARN("Relocation @{:#x} misses a section", reloc.address());
continue;
}
- LIEF_DEBUG("Section for reloc 0x{:x} -> {}", reloc.address(), sec->name());
+ LIEF_DEBUG("Section for reloc {:#x} -> {}", reloc.address(), sec->name());
relocations_map[sec].push_back(&reloc);
auto it_reloc_sec = sections_reloc_map.find(sec);
- if (it_reloc_sec == std::end(sections_reloc_map)) {
- LIEF_WARN("Can find the relocation section associated with '{}'", sec->name());
+ if (it_reloc_sec == sections_reloc_map.end()) {
+ LIEF_WARN("Can find the relocation section associated with '{}'",
+ sec->name());
continue;
}
Section* reloc_section = it_reloc_sec->second;
rel_sections_size[reloc_section] += sizeof_rel;
}
- for (const auto& p : rel_sections_size) {
- const Section* section = p.first;
- const size_t need_size = p.second;
+ for (const auto& [section, need_size] : rel_sections_size) {
if (need_size > section->size()) {
LIEF_DEBUG("Need to relocate '{}'", section->name());
layout->relocate_section(*section, need_size);
@@ -584,14 +656,16 @@ ok_error_t Builder::build_relocatable() {
// Check if we should relocate the .shstrtab
if (header.section_name_table_idx() > 0) {
if (header.section_name_table_idx() >= binary_->sections_.size()) {
- LIEF_ERR("Section string table out of bound");
+ LIEF_ERR("Section string table out of bounds");
return make_error_code(lief_errors::file_format_error);
}
- std::unique_ptr<Section>& string_names_section = binary_->sections_[header.section_name_table_idx()];
+ std::unique_ptr<Section>& string_names_section =
+ binary_->sections_[header.section_name_table_idx()];
const size_t shstr_size = layout->section_shstr_size();
if (shstr_size > string_names_section->size() || config_.force_relocate) {
- LIEF_DEBUG("[-] Need to relocate '{}' section (0x{:x} new bytes)",
- string_names_section->name(), shstr_size - string_names_section->size());
+ LIEF_DEBUG("[-] Need to relocate '{}' section ({:#x} new bytes)",
+ string_names_section->name(),
+ shstr_size - string_names_section->size());
layout->relocate_section(*string_names_section, shstr_size);
}
}
@@ -601,18 +675,19 @@ ok_error_t Builder::build_relocatable() {
if (symtab != nullptr) {
const size_t needed_size = layout->symtab_size<ELF_T>();
if (needed_size > symtab->size() || config_.force_relocate) {
- LIEF_DEBUG("[-] Need to relocate '{}' section (0x{:x} new bytes)",
+ LIEF_DEBUG("[-] Need to relocate '{}' section ({:#x} new bytes)",
symtab->name(), symtab->size() - needed_size);
layout->relocate_section(*symtab, needed_size);
}
}
// Check if we should relocate or create a .strtab section.
- // We assume that a .shstrtab is always prensent
+ // We assume that a .shstrtab is always present
if (!layout->is_strtab_shared_shstrtab() && !binary_->symtab_symbols_.empty()) {
Section* sec_symtab = binary_->get(Section::TYPE::SYMTAB);
if (sec_symtab == nullptr) {
- LIEF_ERR("Object file without a symtab section is not supported. Please consider submitting an issue.");
+ LIEF_ERR("Object file without a symtab section is not supported. Please "
+ "consider submitting an issue.");
return make_error_code(lief_errors::not_supported);
}
// The .symtab exists
@@ -623,8 +698,10 @@ ok_error_t Builder::build_relocatable() {
} else {
Section& strtab = sections[strtab_idx];
const size_t strtab_needed_size = layout->section_strtab_size();
- if (strtab_needed_size > strtab.size() || config_.force_relocate) {
- LIEF_DEBUG("[-] Need to relocate .strtab section (0x{:x} new bytes)",
+ const bool should_relocate =
+ strtab_needed_size > strtab.size() || config_.force_relocate;
+ if (should_relocate) {
+ LIEF_DEBUG("[-] Need to relocate .strtab section ({:#x} new bytes)",
strtab_needed_size - strtab.size());
layout->relocate_section(strtab, strtab_needed_size);
}
@@ -635,7 +712,7 @@ ok_error_t Builder::build_relocatable() {
auto res = layout->relocate();
if (!res) {
- LIEF_ERR("Error(s) occurred during the layout relocation.");
+ LIEF_ERR("Error(s) occurred during the layout relocation");
return make_error_code(lief_errors::build_error);
}
@@ -645,7 +722,7 @@ ok_error_t Builder::build_relocatable() {
build_section_relocations<ELF_T>();
- // Since object file only have sections, we don't have to process segments
+ // Since object files only have sections, we don't have to process segments
if (!binary_->sections_.empty()) {
build_sections<ELF_T>();
}
@@ -657,32 +734,31 @@ ok_error_t Builder::build_relocatable() {
template<typename ELF_T>
-ok_error_t Builder::build(const Header& header) {;
+ok_error_t Builder::build(const Header& header) {
using Elf_Half = typename ELF_T::Elf_Half;
using Elf_Word = typename ELF_T::Elf_Word;
using Elf_Addr = typename ELF_T::Elf_Addr;
- using Elf_Off = typename ELF_T::Elf_Off;
- using Elf_Word = typename ELF_T::Elf_Word;
+ using Elf_Off = typename ELF_T::Elf_Off;
using Elf_Ehdr = typename ELF_T::Elf_Ehdr;
Elf_Ehdr ehdr;
- ehdr.e_type = static_cast<Elf_Half>(header.file_type());
- ehdr.e_machine = static_cast<Elf_Half>(header.machine_type());
- ehdr.e_version = static_cast<Elf_Word>(header.object_file_version());
- ehdr.e_entry = static_cast<Elf_Addr>(header.entrypoint());
- ehdr.e_phoff = static_cast<Elf_Off>(header.program_headers_offset());
- ehdr.e_shoff = static_cast<Elf_Off>(header.section_headers_offset());
- ehdr.e_flags = static_cast<Elf_Word>(header.processor_flag());
- ehdr.e_ehsize = static_cast<Elf_Half>(header.header_size());
+ ehdr.e_type = static_cast<Elf_Half>(header.file_type());
+ ehdr.e_machine = static_cast<Elf_Half>(header.machine_type());
+ ehdr.e_version = static_cast<Elf_Word>(header.object_file_version());
+ ehdr.e_entry = static_cast<Elf_Addr>(header.entrypoint());
+ ehdr.e_phoff = static_cast<Elf_Off>(header.program_headers_offset());
+ ehdr.e_shoff = static_cast<Elf_Off>(header.section_headers_offset());
+ ehdr.e_flags = static_cast<Elf_Word>(header.processor_flag());
+ ehdr.e_ehsize = static_cast<Elf_Half>(header.header_size());
ehdr.e_phentsize = static_cast<Elf_Half>(header.program_header_size());
- ehdr.e_phnum = static_cast<Elf_Half>(header.numberof_segments());
+ ehdr.e_phnum = static_cast<Elf_Half>(header.numberof_segments());
ehdr.e_shentsize = static_cast<Elf_Half>(header.section_header_size());
- ehdr.e_shnum = static_cast<Elf_Half>(header.numberof_sections());
- ehdr.e_shstrndx = static_cast<Elf_Half>(header.section_name_table_idx());
+ ehdr.e_shnum = static_cast<Elf_Half>(header.numberof_sections());
+ ehdr.e_shstrndx = static_cast<Elf_Half>(header.section_name_table_idx());
- std::copy(std::begin(header.identity()), std::end(header.identity()),
+ std::copy(header.identity().begin(), header.identity().end(),
std::begin(ehdr.e_ident));
ios_.seekp(0);
@@ -695,8 +771,7 @@ template<typename ELF_T>
ok_error_t Builder::build_sections() {
using Elf_Word = typename ELF_T::Elf_Word;
using Elf_Addr = typename ELF_T::Elf_Addr;
- using Elf_Off = typename ELF_T::Elf_Off;
- using Elf_Word = typename ELF_T::Elf_Word;
+ using Elf_Off = typename ELF_T::Elf_Off;
using Elf_Shdr = typename ELF_T::Elf_Shdr;
@@ -705,66 +780,103 @@ ok_error_t Builder::build_sections() {
}
- LIEF_DEBUG("[+] Build sections");
+ LIEF_DEBUG("Build sections");
const Header& header = binary_->header();
- const Elf_Off section_headers_offset = header.section_headers_offset();
+ Elf_Off section_headers_offset = header.section_headers_offset();
if (section_headers_offset == 0) {
return ok();
}
+ LIEF_DEBUG("Section headers table at offset: {:#06x}", section_headers_offset);
+
if (header.section_name_table_idx() < binary_->sections_.size()) {
- std::unique_ptr<Section>& string_names_section = binary_->sections_[header.section_name_table_idx()];
+ std::unique_ptr<Section>& string_names_section =
+ binary_->sections_[header.section_name_table_idx()];
string_names_section->content(layout_->raw_shstr());
}
+ const size_t nb_sections = binary_->sections_.size();
+
+ vector_iostream section_headers(/*endian_swap=*/ios_.endian_swap());
+ section_headers.reserve(nb_sections * sizeof(Elf_Shdr));
+
const std::unordered_map<std::string, size_t>& shstr_map = layout_->shstr_map();
- for (size_t i = 0; i < binary_->sections_.size(); ++i) {
+ for (size_t i = 0; i < nb_sections; ++i) {
const std::unique_ptr<Section>& section = binary_->sections_[i];
LIEF_DEBUG("[FRAME ] {}", section->is_frame());
- if (!section->is_frame() &&
- section->size() > 0 &&
+ const bool should_commit_data =
+ !section->is_frame() && section->size() > 0 &&
section->file_offset() > 0 &&
- // SHT_NOTBITS sections should not be considered.
+ // SHT_NOBITS sections should not be considered.
// Nevertheless, some (malformed or tricky) ELF binaries
// might use this type to put content.
- section->type() != Section::TYPE::NOBITS) {
+ section->type() != Section::TYPE::NOBITS;
+ if (should_commit_data) {
span<const uint8_t> content = section->content();
- LIEF_DEBUG("[Content] {:20}: 0x{:010x} - 0x{:010x} (0x{:x})",
- section->name(), section->file_offset(),
- section->file_offset() + content.size(), content.size());
+ LIEF_DEBUG("[Content] {:20}: {:#012x} - {:#012x} ({:#x})", section->name(),
+ section->file_offset(), section->file_offset() + content.size(),
+ content.size());
ios_.seekp(section->file_offset());
ios_.write(content);
}
Elf_Off offset_name = 0;
- const auto& it = shstr_map.find(section->name());
- if (it == std::end(shstr_map)) {
- LIEF_WARN("Can't find string offset for section name '{}'", section->name());
- } else {
+ if (auto it = shstr_map.find(section->name()); it != shstr_map.end()) {
offset_name = it->second;
+ } else {
+ LIEF_WARN("Can't find string offset for section name '{}'", section->name());
}
Elf_Shdr shdr;
- shdr.sh_name = static_cast<Elf_Word>(offset_name);
- shdr.sh_type = static_cast<Elf_Word>(section->type());
- shdr.sh_flags = static_cast<Elf_Word>(section->flags());
- shdr.sh_addr = static_cast<Elf_Addr>(section->virtual_address());
- shdr.sh_offset = static_cast<Elf_Off>(section->file_offset());
- shdr.sh_size = static_cast<Elf_Word>(section->size());
- shdr.sh_link = static_cast<Elf_Word>(section->link());
- shdr.sh_info = static_cast<Elf_Word>(section->information());
+ shdr.sh_name = static_cast<Elf_Word>(offset_name);
+ shdr.sh_type = static_cast<Elf_Word>(section->type());
+ shdr.sh_flags = static_cast<Elf_Word>(section->flags());
+ shdr.sh_addr = static_cast<Elf_Addr>(section->virtual_address());
+ shdr.sh_offset = static_cast<Elf_Off>(section->file_offset());
+ shdr.sh_size = static_cast<Elf_Word>(section->size());
+ shdr.sh_link = static_cast<Elf_Word>(section->link());
+ shdr.sh_info = static_cast<Elf_Word>(section->information());
shdr.sh_addralign = static_cast<Elf_Word>(section->alignment());
- shdr.sh_entsize = static_cast<Elf_Word>(section->entry_size());
+ shdr.sh_entsize = static_cast<Elf_Word>(section->entry_size());
- // Write Section'header
+ // Write section header
if (section_headers_offset > 0) {
const uint64_t offset = section_headers_offset + i * sizeof(Elf_Shdr);
- LIEF_DEBUG("[Header ] {:20}: 0x{:010x} - 0x{:010x}",
- section->name(),
- offset, offset + sizeof(Elf_Shdr));
- ios_.seekp(offset);
- ios_.write<Elf_Shdr>(shdr);
+ LIEF_DEBUG("[Header ] {:20}: {:#012x} - {:#012x}", section->name(), offset,
+ offset + sizeof(Elf_Shdr));
+ section_headers.write<Elf_Shdr>(shdr);
+ }
+ }
+
+ if (section_headers_offset > 0) {
+ ios_.seekp(section_headers_offset);
+ ios_.write(section_headers);
+
+ // Some binaries (e.g., 'ELF/test.go.pie.bin') might have their section
+ // header table at the **beginning** of the binary AND associated with a
+ // PT_LOAD segment. To ensure that build_segments() does not overwrite the
+ // table, we need to commit the content of `section_headers` to the associated
+ // PT_LOAD.
+ for (const std::unique_ptr<Segment>& segment : binary_->segments_) {
+ if (!segment->is_load()) {
+ continue;
+ }
+
+ bool in_segment = segment->file_offset() <= section_headers_offset &&
+ section_headers_offset <
+ (segment->file_offset() + segment->physical_size());
+
+ if (!in_segment) {
+ continue;
+ }
+
+ span<uint8_t> content = segment->writable_content();
+ uint64_t rel_offset = section_headers_offset - segment->file_offset();
+ LIEF_DEBUG("SHT found in {} - {:#010x} - [{:#010x}, {:#010x}]",
+ to_string(segment->type()), segment->virtual_address(),
+ segment->file_offset(), segment->file_offset() + content.size());
+ section_headers.copy_into(content.subspan(rel_offset));
}
}
return ok();
@@ -775,26 +887,25 @@ template<typename ELF_T>
ok_error_t Builder::build_segments() {
using Elf_Word = typename ELF_T::Elf_Word;
using Elf_Addr = typename ELF_T::Elf_Addr;
- using Elf_Off = typename ELF_T::Elf_Off;
- using Elf_Word = typename ELF_T::Elf_Word;
+ using Elf_Off = typename ELF_T::Elf_Off;
using Elf_Phdr = typename ELF_T::Elf_Phdr;
- LIEF_DEBUG("== Build segments ==");
+ LIEF_DEBUG("Building segments");
vector_iostream pheaders(should_swap());
pheaders.reserve(binary_->segments_.size() * sizeof(Elf_Phdr));
- LIEF_DEBUG("sizeof(PHDR): 0x{:x}", binary_->segments_.size() * sizeof(Elf_Phdr));
+ LIEF_DEBUG("sizeof(PHDR): {:#x}", binary_->segments_.size() * sizeof(Elf_Phdr));
for (const std::unique_ptr<Segment>& segment : binary_->segments_) {
Elf_Phdr phdr;
- phdr.p_type = static_cast<Elf_Word>(segment->type());
- phdr.p_flags = static_cast<Elf_Word>(segment->flags());
+ phdr.p_type = static_cast<Elf_Word>(segment->type());
+ phdr.p_flags = static_cast<Elf_Word>(segment->flags());
phdr.p_offset = static_cast<Elf_Off>(segment->file_offset());
- phdr.p_vaddr = static_cast<Elf_Addr>(segment->virtual_address());
- phdr.p_paddr = static_cast<Elf_Addr>(segment->physical_address());
+ phdr.p_vaddr = static_cast<Elf_Addr>(segment->virtual_address());
+ phdr.p_paddr = static_cast<Elf_Addr>(segment->physical_address());
phdr.p_filesz = static_cast<Elf_Word>(segment->physical_size());
- phdr.p_memsz = static_cast<Elf_Word>(segment->virtual_size());
- phdr.p_align = static_cast<Elf_Word>(segment->alignment());
+ phdr.p_memsz = static_cast<Elf_Word>(segment->virtual_size());
+ phdr.p_align = static_cast<Elf_Word>(segment->alignment());
pheaders.write<Elf_Phdr>(phdr);
}
@@ -807,7 +918,7 @@ ok_error_t Builder::build_segments() {
for (const std::unique_ptr<Segment>& segment : binary_->segments_) {
if (segment->physical_size() > 0) {
span<const uint8_t> content = segment->content();
- LIEF_DEBUG("[W] {:<13} 0x{:016x}: 0x{:010x} - 0x{:010x} (0x{:x})",
+ LIEF_DEBUG("[W] {:<13} {:#018x}: {:#012x} - {:#012x} ({:#x})",
to_string(segment->type()), segment->virtual_address(),
segment->file_offset(), segment->file_offset() + content.size(),
content.size());
@@ -819,10 +930,10 @@ ok_error_t Builder::build_segments() {
const Elf_Off segment_header_offset = binary_->header().program_headers_offset();
- LIEF_DEBUG("Write segments header 0x{:010x} -> 0x{:010x}",
- segment_header_offset, segment_header_offset + pheaders.size());
+ LIEF_DEBUG("Write segments header {:#012x} -> {:#012x}", segment_header_offset,
+ segment_header_offset + pheaders.size());
ios_.seekp(segment_header_offset);
- ios_.write(std::move(pheaders.raw()));
+ ios_.write(pheaders.raw());
return ok();
}
@@ -831,13 +942,13 @@ ok_error_t Builder::build_symtab_symbols() {
using Elf_Half = typename ELF_T::Elf_Half;
using Elf_Word = typename ELF_T::Elf_Word;
using Elf_Addr = typename ELF_T::Elf_Addr;
- using Elf_Off = typename ELF_T::Elf_Off;
+ using Elf_Off = typename ELF_T::Elf_Off;
- using Elf_Sym = typename ELF_T::Elf_Sym;
+ using Elf_Sym = typename ELF_T::Elf_Sym;
auto* layout = static_cast<ExeLayout*>(layout_.get());
- LIEF_DEBUG("== Build .symtab symbols ==");
+ LIEF_DEBUG("Building .symtab symbols");
Section* symbol_section = binary_->symtab_symbols_section();
if (symbol_section == nullptr) {
LIEF_ERR("Can't find the .symtab section");
@@ -845,62 +956,62 @@ ok_error_t Builder::build_symtab_symbols() {
}
LIEF_DEBUG(".symtab section: '{}'", symbol_section->name());
- std::stable_sort(std::begin(binary_->symtab_symbols_), std::end(binary_->symtab_symbols_),
+ std::stable_sort(
+ binary_->symtab_symbols_.begin(), binary_->symtab_symbols_.end(),
[](const std::unique_ptr<Symbol>& lhs, const std::unique_ptr<Symbol>& rhs) {
return lhs->is_local() && (rhs->is_global() || rhs->is_weak());
- });
+ }
+ );
- const auto it_first_exported_symbol =
- std::find_if(std::begin(binary_->symtab_symbols_), std::end(binary_->symtab_symbols_),
- [](const std::unique_ptr<Symbol>& sym) {
- return sym->is_exported();
- });
+ const auto it_first_exported_symbol = std::find_if(
+ binary_->symtab_symbols_.begin(), binary_->symtab_symbols_.end(),
+ [](const std::unique_ptr<Symbol>& sym) { return sym->is_exported(); }
+ );
const auto first_exported_symbol_index =
- static_cast<uint32_t>(std::distance(std::begin(binary_->symtab_symbols_), it_first_exported_symbol));
+ static_cast<uint32_t>(std::distance(binary_->symtab_symbols_.begin(),
+ it_first_exported_symbol));
if (first_exported_symbol_index != symbol_section->information()) {
LIEF_INFO("information of .symtab section changes from {:d} to {:d}",
- symbol_section->information(),
- first_exported_symbol_index);
+ symbol_section->information(), first_exported_symbol_index);
symbol_section->information(first_exported_symbol_index);
}
- if (symbol_section->link() == 0 || symbol_section->link() >= binary_->sections_.size()) {
- LIEF_ERR("Unable to find a string section associated with the symbol section (sh_link)");
+ if (symbol_section->link() == 0 ||
+ symbol_section->link() >= binary_->sections_.size())
+ {
+ LIEF_ERR("Unable to find a string section associated with the symbol section "
+ "(sh_link)");
return make_error_code(lief_errors::file_format_error);
}
vector_iostream content(should_swap());
content.reserve(layout->static_sym_size<ELF_T>());
- // On recent compilers, the symtab string table is merged with the section name table
- const std::unordered_map<std::string, size_t>* str_map = nullptr;
- if (layout->is_strtab_shared_shstrtab()) {
- str_map = &layout->shstr_map();
- } else {
- str_map = &layout->strtab_map();
- }
+ // On recent compilers, the symtab string table is merged with the section name
+ // table
+ const std::unordered_map<std::string, size_t>* str_map =
+ layout->is_strtab_shared_shstrtab() ? &layout->shstr_map() :
+ &layout->strtab_map();
for (const std::unique_ptr<Symbol>& symbol : binary_->symtab_symbols_) {
const std::string& name = symbol->name();
Elf_Off offset_name = 0;
- const auto it = str_map->find(name);
- if (it == std::end(*str_map)) {
- LIEF_ERR("Can't find string offset for symtab symbol name '{}'", name);
- } else {
+ if (auto it = str_map->find(name); it != str_map->end()) {
offset_name = it->second;
+ } else {
+ LIEF_ERR("Can't find string offset for symtab symbol name '{}'", name);
}
- Elf_Sym sym_hdr;
- memset(&sym_hdr, 0, sizeof(Elf_Sym));
- sym_hdr.st_name = static_cast<Elf_Word>(offset_name);
- sym_hdr.st_info = static_cast<unsigned char>(symbol->information());
+ Elf_Sym sym_hdr{};
+ sym_hdr.st_name = static_cast<Elf_Word>(offset_name);
+ sym_hdr.st_info = static_cast<unsigned char>(symbol->information());
sym_hdr.st_other = static_cast<unsigned char>(symbol->other());
sym_hdr.st_shndx = static_cast<Elf_Half>(symbol->shndx());
sym_hdr.st_value = static_cast<Elf_Addr>(symbol->value());
- sym_hdr.st_size = static_cast<Elf_Word>(symbol->size());
+ sym_hdr.st_size = static_cast<Elf_Word>(symbol->size());
content.write<Elf_Sym>(sym_hdr);
}
@@ -910,146 +1021,194 @@ ok_error_t Builder::build_symtab_symbols() {
template<typename ELF_T>
ok_error_t Builder::build_dynamic_section() {
- using Elf_Addr = typename ELF_T::Elf_Addr;
+ using Elf_Addr = typename ELF_T::Elf_Addr;
using Elf_Sxword = typename ELF_T::Elf_Sxword;
- using Elf_Xword = typename ELF_T::Elf_Xword;
- using Elf_Dyn = typename ELF_T::Elf_Dyn;
+ using Elf_Xword = typename ELF_T::Elf_Xword;
+ using Elf_Dyn = typename ELF_T::Elf_Dyn;
LIEF_DEBUG("[+] Building .dynamic");
const auto& dynstr_map = static_cast<ExeLayout*>(layout_.get())->dynstr_map();
+
+ uint64_t dynamic_va = 0;
+ if (const Segment* dyn_seg = binary_->get(Segment::TYPE::DYNAMIC)) {
+ dynamic_va = dyn_seg->virtual_address();
+ }
+ const DynamicEntry* mips_rld_map = binary_->get(DynamicEntry::TAG::MIPS_RLD_MAP);
+
vector_iostream dynamic_table_raw(should_swap());
+ size_t dyn_idx = 0;
for (std::unique_ptr<DynamicEntry>& entry : binary_->dynamic_entries_) {
switch (entry->tag()) {
case DynamicEntry::TAG::NEEDED:
- {
- const std::string& name = entry->as<DynamicEntryLibrary>()->name();
- const auto& it = dynstr_map.find(name);
- if (it == std::end(dynstr_map)) {
- LIEF_ERR("Can't find string offset in .dynstr for {}", name);
- break;
- }
- entry->value(it->second);
+ {
+ const std::string& name = entry->as<DynamicEntryLibrary>()->name();
+ auto it = dynstr_map.find(name);
+ if (it == dynstr_map.end()) {
+ LIEF_ERR("Can't find string offset in .dynstr for {}", name);
break;
}
+ entry->value(it->second);
+ break;
+ }
case DynamicEntry::TAG::SONAME:
- {
- const std::string& name = entry->as<DynamicSharedObject>()->name();
- const auto& it = dynstr_map.find(name);
- if (it == std::end(dynstr_map)) {
- LIEF_ERR("Can't find string offset in .dynstr for {}", name);
- break;
- }
- entry->value(it->second);
+ {
+ const std::string& name = entry->as<DynamicSharedObject>()->name();
+ auto it = dynstr_map.find(name);
+ if (it == dynstr_map.end()) {
+ LIEF_ERR("Can't find string offset in .dynstr for {}", name);
+ break;
+ }
+ entry->value(it->second);
+ break;
+ }
+
+ case DynamicEntry::TAG::AUXILIARY:
+ {
+ const std::string& name = entry->as<DynamicEntryAuxiliary>()->name();
+ auto it = dynstr_map.find(name);
+ if (it == dynstr_map.end()) {
+ LIEF_ERR("Can't find string offset in .dynstr for {}", name);
break;
}
+ entry->value(it->second);
+ break;
+ }
+
+ case DynamicEntry::TAG::FILTER:
+ {
+ const std::string& name = entry->as<DynamicEntryFilter>()->name();
+ auto it = dynstr_map.find(name);
+ if (it == dynstr_map.end()) {
+ LIEF_ERR("Can't find string offset in .dynstr for {}", name);
+ break;
+ }
+ entry->value(it->second);
+ break;
+ }
case DynamicEntry::TAG::RPATH:
- {
- const std::string& name = entry->as<DynamicEntryRpath>()->rpath();
- const auto& it = dynstr_map.find(name);
- if (it == std::end(dynstr_map)) {
- LIEF_ERR("Can't find string offset in .dynstr for {}", name);
- break;
- }
- entry->value(it->second);
+ {
+ const std::string& name = entry->as<DynamicEntryRpath>()->rpath();
+ auto it = dynstr_map.find(name);
+ if (it == dynstr_map.end()) {
+ LIEF_ERR("Can't find string offset in .dynstr for {}", name);
break;
}
+ entry->value(it->second);
+ break;
+ }
case DynamicEntry::TAG::RUNPATH:
- {
- const std::string& name = entry->as<DynamicEntryRunPath>()->runpath();
- const auto& it = dynstr_map.find(name);
- if (it == std::end(dynstr_map)) {
- LIEF_ERR("Can't find string offset in .dynstr for {}", name);
- break;
- }
- entry->value(it->second);
+ {
+ const std::string& name = entry->as<DynamicEntryRunPath>()->runpath();
+ auto it = dynstr_map.find(name);
+ if (it == dynstr_map.end()) {
+ LIEF_ERR("Can't find string offset in .dynstr for {}", name);
break;
}
+ entry->value(it->second);
+ break;
+ }
case DynamicEntry::TAG::INIT_ARRAY:
- {
- if (config_.init_array) {
- DynamicEntry* dt_array_size = binary_->get(DynamicEntry::TAG::INIT_ARRAYSZ);
- if (dt_array_size == nullptr) {
- LIEF_ERR("Can't find the DT_INIT_ARRAYSZ / .init_array");
- break;
- }
- const std::vector<uint64_t>& array = entry->as<DynamicEntryArray>()->array();
- std::vector<uint8_t> array_content(array.size() * sizeof(Elf_Addr), 0);
-
- auto* raw_array = reinterpret_cast<Elf_Addr*>(array_content.data());
- for (size_t i = 0; i < array.size(); ++i) {
- raw_array[i] = static_cast<Elf_Addr>(array[i]);
- }
-
- dt_array_size->value(array_content.size());
- binary_->patch_address(entry->value(), array_content);
+ {
+ if (config_.init_array) {
+ DynamicEntry* dt_array_size =
+ binary_->get(DynamicEntry::TAG::INIT_ARRAYSZ);
+ if (dt_array_size == nullptr) {
+ LIEF_ERR("Can't find the DT_INIT_ARRAYSZ / .init_array");
+ break;
}
- break;
+ const std::vector<uint64_t>& array =
+ entry->as<DynamicEntryArray>()->array();
+ std::vector<uint8_t> array_content(array.size() * sizeof(Elf_Addr), 0);
+
+ auto* raw_array = reinterpret_cast<Elf_Addr*>(array_content.data());
+ for (size_t i = 0; i < array.size(); ++i) {
+ raw_array[i] = static_cast<Elf_Addr>(array[i]);
+ }
+
+ dt_array_size->value(array_content.size());
+ binary_->patch_address(entry->value(), array_content);
}
+ break;
+ }
case DynamicEntry::TAG::FINI_ARRAY:
- {
- if (config_.fini_array) {
- DynamicEntry* dt_array_size = binary_->get(DynamicEntry::TAG::FINI_ARRAYSZ);
- if (dt_array_size == nullptr) {
- LIEF_ERR("Can't find the DT_FINI_ARRAYSZ / .fini_array");
- break;
- }
-
- const std::vector<uint64_t>& array = entry->as<DynamicEntryArray>()->array();
- std::vector<uint8_t> array_content(array.size() * sizeof(Elf_Addr), 0);
-
- auto* raw_array = reinterpret_cast<Elf_Addr*>(array_content.data());
- for (size_t i = 0; i < array.size(); ++i) {
- raw_array[i] = static_cast<Elf_Addr>(array[i]);
- }
-
- dt_array_size->value(array_content.size());
- binary_->patch_address(entry->value(), array_content);
+ {
+ if (config_.fini_array) {
+ DynamicEntry* dt_array_size =
+ binary_->get(DynamicEntry::TAG::FINI_ARRAYSZ);
+ if (dt_array_size == nullptr) {
+ LIEF_ERR("Can't find the DT_FINI_ARRAYSZ / .fini_array");
+ break;
}
- break;
+
+ const std::vector<uint64_t>& array =
+ entry->as<DynamicEntryArray>()->array();
+ std::vector<uint8_t> array_content(array.size() * sizeof(Elf_Addr), 0);
+
+ auto* raw_array = reinterpret_cast<Elf_Addr*>(array_content.data());
+ for (size_t i = 0; i < array.size(); ++i) {
+ raw_array[i] = static_cast<Elf_Addr>(array[i]);
+ }
+
+ dt_array_size->value(array_content.size());
+ binary_->patch_address(entry->value(), array_content);
}
+ break;
+ }
case DynamicEntry::TAG::PREINIT_ARRAY:
- {
- if (config_.fini_array) {
- DynamicEntry* dt_array_size = binary_->get(DynamicEntry::TAG::PREINIT_ARRAYSZ);
- if (dt_array_size == nullptr) {
- LIEF_ERR("Can't find the DT_PREINIT_ARRAYSZ / .preinit_array");
- break;
- }
-
+ {
+ if (config_.fini_array) {
+ DynamicEntry* dt_array_size =
+ binary_->get(DynamicEntry::TAG::PREINIT_ARRAYSZ);
+ if (dt_array_size == nullptr) {
+ LIEF_ERR("Can't find the DT_PREINIT_ARRAYSZ / .preinit_array");
+ break;
+ }
- const std::vector<uint64_t>& array = entry->as<DynamicEntryArray>()->array();
- std::vector<uint8_t> array_content(array.size() * sizeof(Elf_Addr), 0);
- auto* raw_array = reinterpret_cast<Elf_Addr*>(array_content.data());
- for (size_t i = 0; i < array.size(); ++i) {
- raw_array[i] = static_cast<Elf_Addr>(array[i]);
- }
+ const std::vector<uint64_t>& array =
+ entry->as<DynamicEntryArray>()->array();
+ std::vector<uint8_t> array_content(array.size() * sizeof(Elf_Addr), 0);
- dt_array_size->value(array_content.size());
- binary_->patch_address(entry->value(), array_content);
+ auto* raw_array = reinterpret_cast<Elf_Addr*>(array_content.data());
+ for (size_t i = 0; i < array.size(); ++i) {
+ raw_array[i] = static_cast<Elf_Addr>(array[i]);
}
- break;
+
+ dt_array_size->value(array_content.size());
+ binary_->patch_address(entry->value(), array_content);
}
+ break;
+ }
- default:
- {
- // TODO(romain): Support DT_AUXILIARY
+ case DynamicEntry::TAG::MIPS_RLD_MAP_REL:
+ {
+ if (mips_rld_map != nullptr && dynamic_va != 0) {
+ const uint64_t entry_va = dynamic_va + dyn_idx * sizeof(Elf_Dyn);
+ entry->value(mips_rld_map->value() - entry_va);
}
+ break;
+ }
+
+ default:
+ {
+ break;
+ }
}
Elf_Dyn dynhdr;
- dynhdr.d_tag = static_cast<Elf_Sxword>(DynamicEntry::to_value(entry->tag()));
+ dynhdr.d_tag = static_cast<Elf_Sxword>(DynamicEntry::to_value(entry->tag()));
dynhdr.d_un.d_val = static_cast<Elf_Xword>(entry->value());
dynamic_table_raw.write<Elf_Dyn>(dynhdr);
+ ++dyn_idx;
}
std::vector<uint8_t> raw = dynamic_table_raw.raw();
@@ -1058,7 +1217,9 @@ ok_error_t Builder::build_dynamic_section() {
if (Section* dynamic_section = binary_->get_section(".dynamic")) {
dynamic_section->content(raw);
} else {
- LIEF_INFO("Can't find the .dynamic section; will still try to update PT_DYNAMIC.");
+ LIEF_INFO(
+ "Can't find the .dynamic section; will still try to update PT_DYNAMIC."
+ );
}
// Update the PT_DYNAMIC segment
@@ -1076,7 +1237,7 @@ ok_error_t Builder::build_dynamic_section() {
template<typename ELF_T>
ok_error_t Builder::build_symbol_hash() {
- LIEF_DEBUG("== Build SYSV Hash ==");
+ LIEF_DEBUG("Building SYSV hash");
DynamicEntry* dt_hash = binary_->get(DynamicEntry::TAG::HASH);
if (dt_hash == nullptr) {
@@ -1092,7 +1253,7 @@ ok_error_t Builder::build_symbol_hash() {
uint32_t nbucket = sysv->nbucket();
- uint32_t nchain = static_cast<ExeLayout*>(layout_.get())->sysv_nchain();
+ uint32_t nchain = static_cast<ExeLayout*>(layout_.get())->sysv_nchain();
if (nbucket == 0) {
LIEF_ERR("sysv.nbucket is 0");
@@ -1107,12 +1268,12 @@ ok_error_t Builder::build_symbol_hash() {
new_hash_table_ptr[1] = nchain;
uint32_t* bucket = &new_hash_table_ptr[2];
- uint32_t* chain = &new_hash_table_ptr[2 + nbucket];
+ uint32_t* chain = &new_hash_table_ptr[2 + nbucket];
uint32_t idx = 0;
for (const std::unique_ptr<Symbol>& symbol : binary_->dynamic_symbols_) {
uint32_t hash = binary_->type_ == Header::CLASS::ELF32 ?
- hash32(symbol->name().c_str()) :
- hash64(symbol->name().c_str());
+ hash32(symbol->name().c_str()) :
+ hash64(symbol->name().c_str());
const size_t bucket_idx = hash % nbucket;
if (bucket_idx >= buckets_limits) {
@@ -1135,7 +1296,7 @@ ok_error_t Builder::build_symbol_hash() {
++idx;
}
- // to be improved...?
+ // TODO: This could be improved
if (should_swap()) {
for (size_t i = 0; i < buckets_limits; i++) {
swap_endian(&new_hash_table_ptr[i]);
@@ -1148,7 +1309,7 @@ ok_error_t Builder::build_symbol_hash() {
template<typename ELF_T>
ok_error_t Builder::build_hash_table() {
- LIEF_DEBUG("== Build hash table ==");
+ LIEF_DEBUG("Building hash table");
bool has_error = false;
if (config_.dt_hash && binary_->has(DynamicEntry::TAG::HASH)) {
@@ -1160,7 +1321,9 @@ ok_error_t Builder::build_hash_table() {
if (config_.gnu_hash) {
if (const DynamicEntry* entry = binary_->get(DynamicEntry::TAG::GNU_HASH)) {
- binary_->patch_address(entry->value(), static_cast<ExeLayout*>(layout_.get())->raw_gnuhash());
+ binary_->patch_address(
+ entry->value(), static_cast<ExeLayout*>(layout_.get())->raw_gnuhash()
+ );
}
}
if (has_error) {
@@ -1175,9 +1338,9 @@ ok_error_t Builder::build_obj_symbols() {
using Elf_Half = typename ELF_T::Elf_Half;
using Elf_Word = typename ELF_T::Elf_Word;
using Elf_Addr = typename ELF_T::Elf_Addr;
- using Elf_Off = typename ELF_T::Elf_Off;
+ using Elf_Off = typename ELF_T::Elf_Off;
- using Elf_Sym = typename ELF_T::Elf_Sym;
+ using Elf_Sym = typename ELF_T::Elf_Sym;
const auto* layout = static_cast<const ObjectFileLayout*>(layout_.get());
const std::unordered_map<std::string, size_t>* str_map = nullptr;
@@ -1199,22 +1362,21 @@ ok_error_t Builder::build_obj_symbols() {
for (const std::unique_ptr<Symbol>& symbol : binary_->symtab_symbols_) {
const std::string& name = symbol->name();
const auto offset_it = str_map->find(name);
- if (offset_it == std::end(*str_map)) {
- LIEF_ERR("Unable to find the symbol offset for '{}' in the string table", name);
+ if (offset_it == str_map->end()) {
+ LIEF_ERR("Unable to find the symbol offset for '{}' in the string table",
+ name);
continue;
}
const auto name_offset = static_cast<Elf_Off>(offset_it->second);
- Elf_Sym sym_header;
- memset(&sym_header, 0, sizeof(Elf_Sym));
-
- sym_header.st_name = static_cast<Elf_Word>(name_offset);
- sym_header.st_info = static_cast<unsigned char>(symbol->information());
+ Elf_Sym sym_header{};
+ sym_header.st_name = static_cast<Elf_Word>(name_offset);
+ sym_header.st_info = static_cast<unsigned char>(symbol->information());
sym_header.st_other = static_cast<unsigned char>(symbol->other());
sym_header.st_shndx = static_cast<Elf_Half>(symbol->shndx());
sym_header.st_value = static_cast<Elf_Addr>(symbol->value());
- sym_header.st_size = static_cast<Elf_Addr>(symbol->size());
+ sym_header.st_size = static_cast<Elf_Addr>(symbol->size());
symbol_table_raw.write(sym_header);
}
@@ -1227,10 +1389,9 @@ ok_error_t Builder::build_dynamic_symbols() {
using Elf_Half = typename ELF_T::Elf_Half;
using Elf_Word = typename ELF_T::Elf_Word;
using Elf_Addr = typename ELF_T::Elf_Addr;
- using Elf_Off = typename ELF_T::Elf_Off;
- using Elf_Word = typename ELF_T::Elf_Word;
+ using Elf_Off = typename ELF_T::Elf_Off;
- using Elf_Sym = typename ELF_T::Elf_Sym;
+ using Elf_Sym = typename ELF_T::Elf_Sym;
LIEF_DEBUG("[+] Build .dynsym symbols");
const auto& dynstr_map = static_cast<ExeLayout*>(layout_.get())->dynstr_map();
@@ -1245,29 +1406,28 @@ ok_error_t Builder::build_dynamic_symbols() {
Elf_Addr symbol_table_va = dt_symtab->value();
-
// Build symbols
vector_iostream symbol_table_raw(should_swap());
+ symbol_table_raw.reserve(binary_->dynamic_symbols_.size() * sizeof(Elf_Sym));
for (const std::unique_ptr<Symbol>& symbol : binary_->dynamic_symbols_) {
const std::string& name = symbol->name();
- const auto& offset_it = dynstr_map.find(name);
- if (offset_it == std::end(dynstr_map)) {
- LIEF_ERR("Unable to find the symbol offset for '{}' in the string table", name);
+ auto offset_it = dynstr_map.find(name);
+ if (offset_it == dynstr_map.end()) {
+ LIEF_ERR("Unable to find the symbol offset for '{}' in the string table",
+ name);
continue;
}
const auto name_offset = static_cast<Elf_Off>(offset_it->second);
- Elf_Sym sym_header;
+ Elf_Sym sym_header{};
- memset(&sym_header, 0, sizeof(sym_header));
-
- sym_header.st_name = static_cast<Elf_Word>(name_offset);
- sym_header.st_info = static_cast<unsigned char>(symbol->information());
+ sym_header.st_name = static_cast<Elf_Word>(name_offset);
+ sym_header.st_info = static_cast<unsigned char>(symbol->information());
sym_header.st_other = static_cast<unsigned char>(symbol->other());
sym_header.st_shndx = static_cast<Elf_Half>(symbol->shndx());
sym_header.st_value = static_cast<Elf_Addr>(symbol->value());
- sym_header.st_size = static_cast<Elf_Addr>(symbol->size());
+ sym_header.st_size = static_cast<Elf_Addr>(symbol->size());
symbol_table_raw.write(sym_header);
}
@@ -1277,12 +1437,12 @@ ok_error_t Builder::build_dynamic_symbols() {
template<typename ELF_T>
ok_error_t Builder::build_section_relocations() {
- using Elf_Addr = typename ELF_T::Elf_Addr;
- using Elf_Xword = typename ELF_T::Elf_Xword;
+ using Elf_Addr = typename ELF_T::Elf_Addr;
+ using Elf_Xword = typename ELF_T::Elf_Xword;
using Elf_Sxword = typename ELF_T::Elf_Sxword;
- using Elf_Rela = typename ELF_T::Elf_Rela;
- using Elf_Rel = typename ELF_T::Elf_Rel;
+ using Elf_Rela = typename ELF_T::Elf_Rela;
+ using Elf_Rel = typename ELF_T::Elf_Rel;
LIEF_DEBUG("[+] Building relocations");
auto* layout = static_cast<ObjectFileLayout*>(layout_.get());
@@ -1296,14 +1456,15 @@ ok_error_t Builder::build_section_relocations() {
const bool is_rela = object_relocations[0].is_rela();
std::unordered_map<Section*, vector_iostream> section_content;
- const ObjectFileLayout::sections_reloc_map_t& sec_relo_map = layout->sections_reloc_map();
+ const ObjectFileLayout::sections_reloc_map_t& sec_relo_map =
+ layout->sections_reloc_map();
for (const auto& p : layout->relocation_map()) {
Section* section = p.first;
std::vector<Relocation*> relocs = p.second;
- // sort relocations by offset. It is not required by the ELF standard but some linkers (like ld)
- // rely on this kind of sort for sections such as .eh_frame;
- std::sort(std::begin(relocs), std::end(relocs),
- [] (const Relocation* lhs, const Relocation* rhs) {
+ // sort relocations by offset. It is not required by the ELF standard but some
+ // linkers (like ld) rely on this kind of sort for sections such as .eh_frame;
+ std::sort(relocs.begin(), relocs.end(),
+ [](const Relocation* lhs, const Relocation* rhs) {
return lhs->address() < rhs->address();
});
for (Relocation* reloc : relocs) {
@@ -1329,26 +1490,27 @@ ok_error_t Builder::build_section_relocations() {
}
uint64_t r_info = reloc->r_info(std::is_same_v<ELF_T, details::ELF32> ?
- Header::CLASS::ELF32 :
- Header::CLASS::ELF64);
+ Header::CLASS::ELF32 :
+ Header::CLASS::ELF64);
if (is_rela) {
Elf_Rela relahdr;
relahdr.r_offset = static_cast<Elf_Addr>(reloc->address());
- relahdr.r_info = static_cast<Elf_Xword>(r_info);
+ relahdr.r_info = static_cast<Elf_Xword>(r_info);
relahdr.r_addend = static_cast<Elf_Sxword>(reloc->addend());
section_content[reloc_section].write<Elf_Rela>(relahdr);
} else {
Elf_Rel relhdr;
relhdr.r_offset = static_cast<Elf_Addr>(reloc->address());
- relhdr.r_info = static_cast<Elf_Xword>(r_info);
+ relhdr.r_info = static_cast<Elf_Xword>(r_info);
section_content[reloc_section].write<Elf_Rel>(relhdr);
}
}
}
+ // NOLINTNEXTLINE(bugprone-nondeterministic-pointer-iteration-order)
for (const auto& [sec, ios] : section_content) {
- LIEF_DEBUG("Fill section {} with 0x{:x} bytes", sec->name(), ios.raw().size());
+ LIEF_DEBUG("Fill section {} with {:#x} bytes", sec->name(), ios.raw().size());
sec->content(ios.raw());
}
return ok();
@@ -1361,8 +1523,8 @@ ok_error_t Builder::build_android_relocations() {
return ok();
}
- /* The relocations might have been update when adding the new segment
- * (->relocate()). Thus the cache might be invalidated
+ /* The relocations might have been updated when adding the new segment
+ * (->relocate()). Thus the cache might be invalidated.
*/
auto& layout = static_cast<ExeLayout&>(*layout_);
const size_t computed_size = layout.android_relocations_size<ELF_T>();
@@ -1372,7 +1534,8 @@ ok_error_t Builder::build_android_relocations() {
LIEF_ERR("New ANDROID_REL[A] is larger than the in-cache size");
return make_error_code(lief_errors::build_error);
}
- LIEF_WARN("New ANDROID_REL[A] is smaller than the in-cache size. It might require padding");
+ LIEF_WARN("New ANDROID_REL[A] is smaller than the in-cache size. It might "
+ "require padding");
}
if (const DynamicEntry* entry = binary_->get(DynamicEntry::TAG::ANDROID_RELA)) {
@@ -1380,8 +1543,9 @@ ok_error_t Builder::build_android_relocations() {
if (DynamicEntry* dt_size = binary_->get(DynamicEntry::TAG::ANDROID_RELASZ)) {
dt_size->value(layout.raw_android_rela().size());
}
- }
- else if (const DynamicEntry* entry = binary_->get(DynamicEntry::TAG::ANDROID_REL)) {
+ } else if (const DynamicEntry* entry =
+ binary_->get(DynamicEntry::TAG::ANDROID_REL))
+ {
binary_->patch_address(entry->value(), layout.raw_android_rela());
if (DynamicEntry* dt_size = binary_->get(DynamicEntry::TAG::ANDROID_RELSZ)) {
dt_size->value(layout.raw_android_rela().size());
@@ -1398,8 +1562,8 @@ ok_error_t Builder::build_relative_relocations() {
if (!config_.relr) {
return ok();
}
- /* The relocations might have been update when adding the new segment
- * (->relocate()). Thus the cache might be invalidated
+ /* The relocations might have been updated when adding the new segment
+ * (->relocate()). Thus the cache might be invalidated.
*/
auto& layout = static_cast<ExeLayout&>(*layout_);
const size_t computed_size = layout.relative_relocations_size<ELF_T>();
@@ -1409,7 +1573,9 @@ ok_error_t Builder::build_relative_relocations() {
LIEF_ERR("New RELR is larger than the in-cache size");
return make_error_code(lief_errors::build_error);
}
- LIEF_WARN("New RELR is smaller than the in-cache size. It might require padding");
+ LIEF_WARN(
+ "New RELR is smaller than the in-cache size. It might require padding"
+ );
}
if (const DynamicEntry* entry = binary_->get(DynamicEntry::TAG::RELR)) {
binary_->patch_address(entry->value(), layout.raw_relr());
@@ -1430,14 +1596,15 @@ ok_error_t Builder::build_relative_relocations() {
template<typename ELF_T>
ok_error_t Builder::build_dynamic_relocations() {
- using Elf_Addr = typename ELF_T::Elf_Addr;
- using Elf_Xword = typename ELF_T::Elf_Xword;
+ using Elf_Addr = typename ELF_T::Elf_Addr;
+ using Elf_Xword = typename ELF_T::Elf_Xword;
using Elf_Sxword = typename ELF_T::Elf_Sxword;
- using Elf_Rela = typename ELF_T::Elf_Rela;
- using Elf_Rel = typename ELF_T::Elf_Rel;
+ using Elf_Rela = typename ELF_T::Elf_Rela;
+ using Elf_Rel = typename ELF_T::Elf_Rel;
- Binary::it_dynamic_relocations dynamic_relocations = binary_->dynamic_relocations();
+ Binary::it_dynamic_relocations dynamic_relocations =
+ binary_->dynamic_relocations();
if (dynamic_relocations.empty()) {
if (auto* DT = binary_->get(DynamicEntry::TAG::REL)) {
if (auto* sec = binary_->section_from_virtual_address(DT->value())) {
@@ -1459,17 +1626,17 @@ ok_error_t Builder::build_dynamic_relocations() {
}
LIEF_DEBUG("Building DT_REL/DT_RELA");
- DynamicEntry* dt_reloc = nullptr;
+ DynamicEntry* dt_reloc = nullptr;
DynamicEntry* dt_relocsz = nullptr;
const bool is_rela = dt_rela != nullptr;
if (dt_rela != nullptr) {
- dt_reloc = dt_rela;
+ dt_reloc = dt_rela;
dt_relocsz = binary_->get(DynamicEntry::TAG::RELASZ);
} else {
- // Fallback on relation type REL
- dt_reloc = dt_rel;
+ // Fallback on relocation type REL
+ dt_reloc = dt_rel;
dt_relocsz = binary_->get(DynamicEntry::TAG::RELSZ);
}
@@ -1511,19 +1678,19 @@ ok_error_t Builder::build_dynamic_relocations() {
}
uint64_t r_info = relocation.r_info(std::is_same_v<ELF_T, details::ELF32> ?
- Header::CLASS::ELF32 :
- Header::CLASS::ELF64);
+ Header::CLASS::ELF32 :
+ Header::CLASS::ELF64);
if (is_rela) {
Elf_Rela relahdr;
relahdr.r_offset = static_cast<Elf_Addr>(relocation.address());
- relahdr.r_info = static_cast<Elf_Xword>(r_info);
+ relahdr.r_info = static_cast<Elf_Xword>(r_info);
relahdr.r_addend = static_cast<Elf_Sxword>(relocation.addend());
content.write<Elf_Rela>(relahdr);
} else {
Elf_Rel relhdr;
relhdr.r_offset = static_cast<Elf_Addr>(relocation.address());
- relhdr.r_info = static_cast<Elf_Xword>(r_info);
+ relhdr.r_info = static_cast<Elf_Xword>(r_info);
content.write<Elf_Rel>(relhdr);
}
@@ -1534,12 +1701,12 @@ ok_error_t Builder::build_dynamic_relocations() {
template<typename ELF_T>
ok_error_t Builder::build_pltgot_relocations() {
- using Elf_Addr = typename ELF_T::Elf_Addr;
- using Elf_Xword = typename ELF_T::Elf_Xword;
+ using Elf_Addr = typename ELF_T::Elf_Addr;
+ using Elf_Xword = typename ELF_T::Elf_Xword;
using Elf_Sxword = typename ELF_T::Elf_Sxword;
- using Elf_Rela = typename ELF_T::Elf_Rela;
- using Elf_Rel = typename ELF_T::Elf_Rel;
+ using Elf_Rela = typename ELF_T::Elf_Rela;
+ using Elf_Rel = typename ELF_T::Elf_Rel;
Binary::it_pltgot_relocations pltgot_relocations = binary_->pltgot_relocations();
if (pltgot_relocations.empty()) {
@@ -1558,7 +1725,7 @@ ok_error_t Builder::build_pltgot_relocations() {
if (dt_pltrel != nullptr) {
is_rela = DynamicEntry::TAG(dt_pltrel->value()) == DynamicEntry::TAG::RELA;
}
- DynamicEntry* dt_jmprel = binary_->get(DynamicEntry::TAG::JMPREL);
+ DynamicEntry* dt_jmprel = binary_->get(DynamicEntry::TAG::JMPREL);
DynamicEntry* dt_pltrelsz = binary_->get(DynamicEntry::TAG::PLTRELSZ);
if (dt_jmprel == nullptr) {
LIEF_ERR("Unable to find the DT_JMPREL entry");
@@ -1592,20 +1759,20 @@ ok_error_t Builder::build_pltgot_relocations() {
}
uint64_t r_info = relocation.r_info(std::is_same_v<ELF_T, details::ELF32> ?
- Header::CLASS::ELF32 :
- Header::CLASS::ELF64);
+ Header::CLASS::ELF32 :
+ Header::CLASS::ELF64);
if (is_rela) {
Elf_Rela relahdr;
relahdr.r_offset = static_cast<Elf_Addr>(relocation.address());
- relahdr.r_info = static_cast<Elf_Xword>(r_info);
+ relahdr.r_info = static_cast<Elf_Xword>(r_info);
relahdr.r_addend = static_cast<Elf_Sxword>(relocation.addend());
content.write<Elf_Rela>(relahdr);
} else {
Elf_Rel relhdr;
relhdr.r_offset = static_cast<Elf_Addr>(relocation.address());
- relhdr.r_info = static_cast<Elf_Xword>(r_info);
+ relhdr.r_info = static_cast<Elf_Xword>(r_info);
content.write<Elf_Rel>(relhdr);
}
@@ -1617,10 +1784,10 @@ ok_error_t Builder::build_pltgot_relocations() {
template<typename ELF_T>
ok_error_t Builder::build_symbol_requirement() {
- using Elf_Half = typename ELF_T::Elf_Half;
- using Elf_Word = typename ELF_T::Elf_Word;
- using Elf_Off = typename ELF_T::Elf_Off;
- using Elf_Addr = typename ELF_T::Elf_Addr;
+ using Elf_Half = typename ELF_T::Elf_Half;
+ using Elf_Word = typename ELF_T::Elf_Word;
+ using Elf_Off = typename ELF_T::Elf_Off;
+ using Elf_Addr = typename ELF_T::Elf_Addr;
using Elf_Verneed = typename ELF_T::Elf_Verneed;
using Elf_Vernaux = typename ELF_T::Elf_Vernaux;
@@ -1648,13 +1815,14 @@ ok_error_t Builder::build_symbol_requirement() {
vector_iostream svr_raw(should_swap());
uint32_t svr_idx = 0;
- const auto& sym_name_offset = static_cast<ExeLayout*>(layout_.get())->dynstr_map();
- for (SymbolVersionRequirement& svr: binary_->symbols_version_requirement()) {
+ const auto& sym_name_offset =
+ static_cast<ExeLayout*>(layout_.get())->dynstr_map();
+ for (SymbolVersionRequirement& svr : binary_->symbols_version_requirement()) {
const std::string& name = svr.name();
Elf_Off name_offset = 0;
- const auto& it_name_offset = sym_name_offset.find(name);
- if (it_name_offset != std::end(sym_name_offset)) {
+ auto it_name_offset = sym_name_offset.find(name);
+ if (it_name_offset != sym_name_offset.end()) {
name_offset = it_name_offset->second;
} else {
LIEF_ERR("Can't find dynstr offset for '{}'", name);
@@ -1665,15 +1833,17 @@ ok_error_t Builder::build_symbol_requirement() {
Elf_Off next_symbol_offset = 0;
if (svr_idx < (binary_->symbol_version_requirements_.size() - 1)) {
- next_symbol_offset = sizeof(Elf_Verneed) + svars.size() * sizeof(Elf_Vernaux);
+ next_symbol_offset =
+ sizeof(Elf_Verneed) + svars.size() * sizeof(Elf_Vernaux);
}
Elf_Verneed header;
header.vn_version = static_cast<Elf_Half>(svr.version());
- header.vn_cnt = static_cast<Elf_Half>(svars.size());
- header.vn_file = static_cast<Elf_Word>(name_offset);
- header.vn_aux = static_cast<Elf_Word>(!svars.empty() ? sizeof(Elf_Verneed) : 0);
- header.vn_next = static_cast<Elf_Word>(next_symbol_offset);
+ header.vn_cnt = static_cast<Elf_Half>(svars.size());
+ header.vn_file = static_cast<Elf_Word>(name_offset);
+ header.vn_aux =
+ static_cast<Elf_Word>(!svars.empty() ? sizeof(Elf_Verneed) : 0);
+ header.vn_next = static_cast<Elf_Word>(next_symbol_offset);
svr_raw.write<Elf_Verneed>(header);
@@ -1684,8 +1854,8 @@ ok_error_t Builder::build_symbol_requirement() {
Elf_Off svar_name_offset = 0;
- const auto& it_name_offset = sym_name_offset.find(svar_name);
- if (it_name_offset != std::end(sym_name_offset)) {
+ auto it_name_offset = sym_name_offset.find(svar_name);
+ if (it_name_offset != sym_name_offset.end()) {
svar_name_offset = it_name_offset->second;
} else {
LIEF_ERR("Can't find dynstr offset for '{}'", name);
@@ -1703,11 +1873,13 @@ ok_error_t Builder::build_symbol_requirement() {
}
Elf_Vernaux aux_header;
- aux_header.vna_hash = static_cast<Elf_Word>(svar.hash());
+ aux_header.vna_hash = static_cast<Elf_Word>(svar.hash());
aux_header.vna_flags = static_cast<Elf_Half>(svar.flags());
aux_header.vna_other = static_cast<Elf_Half>(svar.other());
- aux_header.vna_name = static_cast<Elf_Word>(svar_name_offset);
- aux_header.vna_next = static_cast<Elf_Word>(svar_idx < (svars.size() - 1) ? sizeof(Elf_Vernaux) : 0);
+ aux_header.vna_name = static_cast<Elf_Word>(svar_name_offset);
+ aux_header.vna_next = static_cast<Elf_Word>(svar_idx < (svars.size() - 1) ?
+ sizeof(Elf_Vernaux) :
+ 0);
svr_raw.write<Elf_Vernaux>(aux_header);
@@ -1729,11 +1901,11 @@ ok_error_t Builder::build_symbol_requirement() {
template<typename ELF_T>
ok_error_t Builder::build_symbol_definition() {
- using Elf_Half = typename ELF_T::Elf_Half;
- using Elf_Word = typename ELF_T::Elf_Word;
- using Elf_Addr = typename ELF_T::Elf_Addr;
+ using Elf_Half = typename ELF_T::Elf_Half;
+ using Elf_Word = typename ELF_T::Elf_Word;
+ using Elf_Addr = typename ELF_T::Elf_Addr;
- using Elf_Verdef = typename ELF_T::Elf_Verdef;
+ using Elf_Verdef = typename ELF_T::Elf_Verdef;
using Elf_Verdaux = typename ELF_T::Elf_Verdaux;
LIEF_DEBUG("[+] Building symbol definition");
@@ -1759,7 +1931,8 @@ ok_error_t Builder::build_symbol_definition() {
auto sym_verdef = binary_->symbols_version_definition();
- const auto& sym_name_offset = static_cast<ExeLayout*>(layout_.get())->dynstr_map();
+ const auto& sym_name_offset =
+ static_cast<ExeLayout*>(layout_.get())->dynstr_map();
auto& verdef_info = static_cast<ExeLayout*>(layout_.get())->verdef_info();
vector_iostream svd_aux_raw(should_swap());
@@ -1772,7 +1945,7 @@ ok_error_t Builder::build_symbol_definition() {
uint64_t dynstr_offset = 0;
const auto it_name_offset = sym_name_offset.find(sva_name);
- if (it_name_offset == std::end(sym_name_offset)) {
+ if (it_name_offset == sym_name_offset.end()) {
LIEF_ERR("Can't find dynstr offset for '{}'", sva_name);
return make_error_code(lief_errors::not_found);
}
@@ -1782,8 +1955,8 @@ ok_error_t Builder::build_symbol_definition() {
const uint64_t next_offset = !is_last ? sizeof(Elf_Verdaux) : 0;
Elf_Verdaux aux_header;
- aux_header.vda_name = static_cast<Elf_Word>(dynstr_offset);
- aux_header.vda_next = static_cast<Elf_Word>(next_offset);
+ aux_header.vda_name = static_cast<Elf_Word>(dynstr_offset);
+ aux_header.vda_next = static_cast<Elf_Word>(next_offset);
svd_aux_raw.write<Elf_Verdaux>(aux_header);
}
@@ -1813,21 +1986,21 @@ ok_error_t Builder::build_symbol_definition() {
uint64_t aux_offset = svd_aux_offset + it_offset->second;
// This is a **relative** offset
- aux_offset -= svd_raw.tellp();
+ aux_offset -= svd_raw.tellp();
Elf_Verdef header;
header.vd_version = static_cast<Elf_Half>(svd.version());
- header.vd_flags = static_cast<Elf_Half>(svd.flags());
- header.vd_ndx = static_cast<Elf_Half>(svd.ndx());
- header.vd_cnt = static_cast<Elf_Half>(svd.symbols_aux().size());
- header.vd_hash = static_cast<Elf_Word>(svd.hash());
- header.vd_aux = static_cast<Elf_Word>(aux_offset);
- header.vd_next = static_cast<Elf_Word>(next_offset);
+ header.vd_flags = static_cast<Elf_Half>(svd.flags());
+ header.vd_ndx = static_cast<Elf_Half>(svd.ndx());
+ header.vd_cnt = static_cast<Elf_Half>(svd.symbols_aux().size());
+ header.vd_hash = static_cast<Elf_Word>(svd.hash());
+ header.vd_aux = static_cast<Elf_Word>(aux_offset);
+ header.vd_next = static_cast<Elf_Word>(next_offset);
svd_raw.write<Elf_Verdef>(header);
}
}
- binary_->patch_address(svd_va, svd_raw.raw());
+ binary_->patch_address(svd_va, svd_raw.raw());
binary_->patch_address(svd_va + svd_aux_offset, svd_aux_raw.raw());
return ok();
}
@@ -1855,7 +2028,7 @@ ok_error_t Builder::build_notes() {
return ok();
}
- LIEF_DEBUG("== Building notes ==");
+ LIEF_DEBUG("Building notes");
Segment* note_segment = binary_->get(Segment::TYPE::NOTE);
if (note_segment == nullptr) {
LIEF_ERR("Can't find the PT_NOTE segment");
@@ -1871,7 +2044,7 @@ ok_error_t Builder::build_notes() {
}
std::set<const Note*> notes;
- for (const Note& note: binary_->notes()) {
+ for (const Note& note : binary_->notes()) {
update_note_section(note, notes);
}
return ok();
@@ -1883,8 +2056,10 @@ ok_error_t Builder::build_symbol_version() {
LIEF_DEBUG("[+] Building symbol version");
if (binary_->symbol_version_table_.size() != binary_->dynamic_symbols_.size()) {
- LIEF_WARN("The number of symbol version is different from the number of dynamic symbols {} != {}",
- binary_->symbol_version_table_.size(), binary_->dynamic_symbols_.size());
+ LIEF_WARN("The number of symbol version is different from the number of "
+ "dynamic symbols {} != {}",
+ binary_->symbol_version_table_.size(),
+ binary_->dynamic_symbols_.size());
}
DynamicEntry* dt_versym = binary_->get(DynamicEntry::TAG::VERSYM);
@@ -1897,7 +2072,7 @@ ok_error_t Builder::build_symbol_version() {
vector_iostream sv_raw(should_swap());
sv_raw.reserve(binary_->symbol_version_table_.size() * sizeof(uint16_t));
- //for (const SymbolVersion* sv : binary_->symbol_version_table_) {
+ // for (const SymbolVersion* sv : binary_->symbol_version_table_) {
for (const std::unique_ptr<Symbol>& symbol : binary_->dynamic_symbols_) {
const SymbolVersion* sv = symbol->symbol_version();
if (sv == nullptr) {
@@ -1935,5 +2110,4 @@ bool Builder::should_build_notes() const {
return config_.notes;
}
-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/CMakeLists.txt b/deps/LIEF/src/ELF/CMakeLists.txt
index 0149b38e782..16d5446e5db 100644
--- a/deps/LIEF/src/ELF/CMakeLists.txt
+++ b/deps/LIEF/src/ELF/CMakeLists.txt
@@ -13,9 +13,12 @@ target_sources(LIB_LIEF PRIVATE
DynamicEntryRpath.cpp
DynamicEntryRunPath.cpp
DynamicSharedObject.cpp
+ DynamicEntryAuxiliary.cpp
+ DynamicEntryFilter.cpp
EnumToString.cpp
GnuHash.cpp
Header.cpp
+ elf_utils.cpp
Layout.cpp
Note.cpp
Parser.cpp
@@ -35,7 +38,8 @@ target_sources(LIB_LIEF PRIVATE
SysvHash.cpp
hash.cpp
utils.cpp
- json_api.cpp)
+ json_api.cpp
+ layout_check.cpp)
add_subdirectory(NoteDetails)
add_subdirectory(DataHandler)
diff --git a/deps/LIEF/src/ELF/DataHandler/Handler.cpp b/deps/LIEF/src/ELF/DataHandler/Handler.cpp
index 55b4bed78a4..48cf4e938a7 100644
--- a/deps/LIEF/src/ELF/DataHandler/Handler.cpp
+++ b/deps/LIEF/src/ELF/DataHandler/Handler.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,23 +19,21 @@
#include "logging.hpp"
#include "LIEF/BinaryStream/MemoryStream.hpp"
+#include "LIEF/BinaryStream/DumpStream.hpp"
#include "LIEF/BinaryStream/VectorStream.hpp"
#include "LIEF/BinaryStream/SpanStream.hpp"
#include "LIEF/BinaryStream/FileStream.hpp"
#include "ELF/DataHandler/Handler.hpp"
-namespace LIEF {
-namespace ELF {
-namespace DataHandler {
+
+namespace LIEF::ELF::DataHandler {
class DataHandlerStream : public BinaryStream {
public:
DataHandlerStream(std::vector<uint8_t>& ref) :
BinaryStream(STREAM_TYPE::ELF_DATA_HANDLER),
- data_{ref}
- {
- }
+ data_{ref} {}
~DataHandlerStream() override = default;
@@ -43,7 +41,8 @@ class DataHandlerStream : public BinaryStream {
return data_.size();
}
- result<const void*> read_at(uint64_t offset, uint64_t size, uint64_t /*va*/) const override {
+ result<const void*> read_at(uint64_t offset, uint64_t size,
+ uint64_t /*va*/) const override {
if (offset > data_.size() || (offset + size) > data_.size()) {
return make_error_code(lief_errors::read_error);
}
@@ -54,59 +53,74 @@ class DataHandlerStream : public BinaryStream {
std::vector<uint8_t>& data_;
};
-result<std::unique_ptr<Handler>> Handler::from_stream(std::unique_ptr<BinaryStream>& stream) {
+std::unique_ptr<Handler>
+ Handler::from_stream(std::unique_ptr<BinaryStream>& stream) {
auto hdl = std::unique_ptr<Handler>(new Handler{});
- if (VectorStream::classof(*stream)) {
- auto& vs = static_cast<VectorStream&>(*stream);
+ if (auto* vs = stream->cast<VectorStream>()) {
+ hdl->data_ = std::move(vs->move_content());
+ const uint64_t pos = vs->pos();
+ auto new_stream = std::make_unique<DataHandlerStream>(hdl->data_);
+ new_stream->setpos(pos);
+ stream = std::move(new_stream);
+ return hdl;
+ }
- hdl->data_ = std::move(vs.move_content());
- const uint64_t pos = vs.pos();
- stream = std::make_unique<DataHandlerStream>(hdl->data_);
- stream->setpos(pos);
+ if (auto* span_strm = stream->cast<SpanStream>()) {
+ hdl->data_ = span_strm->content();
return hdl;
}
- if (SpanStream::classof(*stream)) {
- auto& vs = static_cast<SpanStream&>(*stream);
- hdl->data_ = vs.content();
+ if (auto* fs = stream->cast<FileStream>()) {
+ hdl->data_ = fs->content();
+ const uint64_t pos = fs->pos();
+ auto new_stream = std::make_unique<DataHandlerStream>(hdl->data_);
+ new_stream->setpos(pos);
+ stream = std::move(new_stream);
return hdl;
}
- if (FileStream::classof(*stream)) {
- auto& vs = static_cast<FileStream&>(*stream);
- hdl->data_ = vs.content();
- const uint64_t pos = vs.pos();
- stream = std::make_unique<DataHandlerStream>(hdl->data_);
- stream->setpos(pos);
+ if (auto* memstream = stream->cast<MemoryStream>()) {
+ const uint8_t* start = memstream->start();
+ hdl->data_.assign(start, start + memstream->size());
+ const uint64_t pos = memstream->pos();
+ auto new_stream = std::make_unique<DataHandlerStream>(hdl->data_);
+ new_stream->setpos(pos);
+ stream = std::move(new_stream);
return hdl;
}
- if (MemoryStream::classof(*stream)) {
- return make_error_code(lief_errors::not_implemented);
+ if (auto* dump = stream->cast<DumpStream>()) {
+ hdl->data_ = dump->content();
+ const uint64_t pos = dump->pos();
+ auto new_stream = std::make_unique<DataHandlerStream>(hdl->data_);
+ new_stream->setpos(pos);
+ stream = std::move(new_stream);
+ return hdl;
}
- LIEF_ERR("Unknown stream for Handler");
- return make_error_code(lief_errors::not_supported);
+ LIEF_ERR("Unknown stream type for Handler");
+ return nullptr;
}
bool Handler::has(uint64_t offset, uint64_t size, Node::Type type) {
Node tmp{offset, size, type};
- const auto it_node = std::find_if(std::begin(nodes_), std::end(nodes_),
- [&tmp] (const std::unique_ptr<Node>& node) {
+ const auto it_node = std::find_if(nodes_.begin(), nodes_.end(),
+ [&tmp](const std::unique_ptr<Node>& node) {
return tmp == *node;
});
- return it_node != std::end(nodes_);
+ return it_node != nodes_.end();
}
-result<Handler::ref_t<Node>> Handler::get(uint64_t offset, uint64_t size, Node::Type type) {
+result<Handler::ref_t<Node>> Handler::get(uint64_t offset, uint64_t size,
+ Node::Type type) {
Node tmp{offset, size, type};
- const auto it_node = std::find_if(std::begin(nodes_), std::end(nodes_),
- [&tmp] (const std::unique_ptr<Node>& node) {
+ const auto it_node = std::find_if(nodes_.begin(), nodes_.end(),
+ [&tmp](const std::unique_ptr<Node>& node) {
return tmp == *node;
});
- if (it_node == std::end(nodes_)) {
+ if (it_node == nodes_.end()) {
return make_error_code(lief_errors::not_found);
}
return **it_node;
@@ -117,16 +131,17 @@ void Handler::remove(uint64_t offset, uint64_t size, Node::Type type) {
Node tmp{offset, size, type};
- const auto it_node = std::find_if(std::begin(nodes_), std::end(nodes_),
- [&tmp] (const std::unique_ptr<Node>& node) {
+ const auto it_node = std::find_if(nodes_.begin(), nodes_.end(),
+ [&tmp](const std::unique_ptr<Node>& node) {
return tmp == *node;
});
- if (it_node == std::end(nodes_)) {
- LIEF_ERR("Unable to find the node");
+ if (it_node == nodes_.end()) {
+ LIEF_ERR("Node not found");
+ return;
}
- nodes_.erase(it_node);
+ nodes_.erase(it_node);
}
@@ -146,15 +161,14 @@ ok_error_t Handler::make_hole(uint64_t offset, uint64_t size) {
if (!res) {
return res;
}
- data_.insert(std::begin(data_) + offset, size, 0);
+ data_.insert(data_.begin() + offset, size, 0);
return ok();
}
ok_error_t Handler::reserve(uint64_t offset, uint64_t size) {
static constexpr auto MAX_MEMORY_SIZE = 6_GB;
- const auto full_size = static_cast<int64_t>(offset) +
- static_cast<int64_t>(size);
+ const auto full_size = static_cast<int64_t>(offset) + static_cast<int64_t>(size);
if (full_size < 0) {
return make_error_code(lief_errors::corrupted);
}
@@ -177,6 +191,4 @@ ok_error_t Handler::reserve(uint64_t offset, uint64_t size) {
}
-} // namespace DataHandler
-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF::DataHandler
diff --git a/deps/LIEF/src/ELF/DataHandler/Handler.hpp b/deps/LIEF/src/ELF/DataHandler/Handler.hpp
index 959727cd553..e85a64a8ef7 100644
--- a/deps/LIEF/src/ELF/DataHandler/Handler.hpp
+++ b/deps/LIEF/src/ELF/DataHandler/Handler.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,8 +27,8 @@
namespace LIEF {
class BinaryStream;
-namespace ELF {
-namespace DataHandler {
+
+namespace ELF::DataHandler {
class LIEF_API Handler {
public:
@@ -37,8 +37,7 @@ class LIEF_API Handler {
static constexpr size_t MAX_SIZE = 4_GB;
Handler(std::vector<uint8_t> content) :
- data_(std::move(content))
- {}
+ data_(std::move(content)) {}
~Handler() = default;
@@ -72,7 +71,8 @@ class LIEF_API Handler {
ok_error_t reserve(uint64_t offset, uint64_t size);
- static result<std::unique_ptr<Handler>> from_stream(std::unique_ptr<BinaryStream>& stream);
+ static std::unique_ptr<Handler>
+ from_stream(std::unique_ptr<BinaryStream>& stream);
private:
Handler() = default;
@@ -80,8 +80,8 @@ class LIEF_API Handler {
std::vector<uint8_t> data_;
std::vector<std::unique_ptr<Node>> nodes_;
};
-} // namespace DataHandler
-} // namespace ELF
+} // namespace ELF::DataHandler
+
} // namespace LIEF
#endif
diff --git a/deps/LIEF/src/ELF/DataHandler/Node.cpp b/deps/LIEF/src/ELF/DataHandler/Node.cpp
index ec90a2ef9d1..441af435f38 100644
--- a/deps/LIEF/src/ELF/DataHandler/Node.cpp
+++ b/deps/LIEF/src/ELF/DataHandler/Node.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,35 +15,28 @@
*/
#include "ELF/DataHandler/Node.hpp"
-namespace LIEF {
-namespace ELF {
-namespace DataHandler {
+
+namespace LIEF::ELF::DataHandler {
bool Node::operator==(const Node& rhs) const {
if (this == &rhs) {
return true;
}
- return type() == rhs.type() &&
- size() == rhs.size() &&
- offset() == rhs.offset();
+ return type() == rhs.type() && size() == rhs.size() && offset() == rhs.offset();
}
bool Node::operator<(const Node& rhs) const {
- return ((type() == rhs.type() &&
- offset() <= rhs.offset() &&
- (offset() + size()) < (rhs.offset() + rhs.size())) ||
- (type() == rhs.type() &&
- offset() < rhs.offset() &&
- (offset() + size()) <= (rhs.offset() + rhs.size())));
-
+ return ((type() == rhs.type() && offset() <= rhs.offset() &&
+ (offset() + size()) < (rhs.offset() + rhs.size())) ||
+ (type() == rhs.type() && offset() < rhs.offset() &&
+ (offset() + size()) <= (rhs.offset() + rhs.size())));
}
bool Node::operator>(const Node& rhs) const {
return type() == rhs.type() &&
- (offset() > rhs.offset() || (offset() + size()) > (rhs.offset() + rhs.size()));
+ (offset() > rhs.offset() ||
+ (offset() + size()) > (rhs.offset() + rhs.size()));
}
}
-}
-}
diff --git a/deps/LIEF/src/ELF/DataHandler/Node.hpp b/deps/LIEF/src/ELF/DataHandler/Node.hpp
index 868478845cc..d4bddc18604 100644
--- a/deps/LIEF/src/ELF/DataHandler/Node.hpp
+++ b/deps/LIEF/src/ELF/DataHandler/Node.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,14 +24,15 @@ namespace LIEF::ELF::DataHandler {
class LIEF_LOCAL Node {
public:
enum Type : uint8_t {
- SECTION = 0,
- SEGMENT = 1,
- UNKNOWN = 2
+ UNKNOWN = 0,
+ SECTION,
+ SEGMENT,
};
Node() = default;
Node(uint64_t offset, uint64_t size, Type type) :
- size_{size}, offset_{offset}, type_{type}
- {}
+ size_{size},
+ offset_{offset},
+ type_{type} {}
Node& operator=(const Node&) = default;
Node(const Node&) = default;
diff --git a/deps/LIEF/src/ELF/DynamicEntry.cpp b/deps/LIEF/src/ELF/DynamicEntry.cpp
index 923d6318799..7aec307b23d 100644
--- a/deps/LIEF/src/ELF/DynamicEntry.cpp
+++ b/deps/LIEF/src/ELF/DynamicEntry.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,6 +23,8 @@
#include "LIEF/ELF/DynamicEntryRpath.hpp"
#include "LIEF/ELF/DynamicEntryRunPath.hpp"
#include "LIEF/ELF/DynamicSharedObject.hpp"
+#include "LIEF/ELF/DynamicEntryAuxiliary.hpp"
+#include "LIEF/ELF/DynamicEntryFilter.hpp"
#include <spdlog/fmt/fmt.h>
@@ -30,8 +32,8 @@
#include "logging.hpp"
#include "ELF/Structures.hpp"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
DynamicEntry::TAG DynamicEntry::from_value(uint64_t value, ARCH arch) {
static constexpr auto LOPROC = 0x70000000;
@@ -48,35 +50,36 @@ DynamicEntry::TAG DynamicEntry::from_value(uint64_t value, ARCH arch) {
}
if (is_proc_spec) {
+ if (value == static_cast<uint64_t>(TAG::AUXILIARY)) {
+ return TAG::AUXILIARY;
+ }
+
+ if (value == static_cast<uint64_t>(TAG::FILTER)) {
+ return TAG::FILTER;
+ }
+
switch (arch) {
- case ARCH::AARCH64:
- return TAG(AARCH64_DISC + value);
+ case ARCH::AARCH64: return TAG(AARCH64_DISC + value);
case ARCH::MIPS_RS3_LE:
- case ARCH::MIPS:
- return TAG(MIPS_DISC + value);
+ case ARCH::MIPS: return TAG(MIPS_DISC + value);
- case ARCH::HEXAGON:
- return TAG(HEXAGON_DISC + value);
+ case ARCH::HEXAGON: return TAG(HEXAGON_DISC + value);
- case ARCH::PPC:
- return TAG(PPC_DISC + value);
+ case ARCH::PPC: return TAG(PPC_DISC + value);
- case ARCH::PPC64:
- return TAG(PPC64_DISC + value);
+ case ARCH::PPC64: return TAG(PPC64_DISC + value);
- case ARCH::RISCV:
- return TAG(RISCV_DISC + value);
+ case ARCH::RISCV: return TAG(RISCV_DISC + value);
- case ARCH::X86_64:
- return TAG(X86_64_DISC + value);
+ case ARCH::X86_64: return TAG(X86_64_DISC + value);
- case ARCH::IA_64:
- return TAG(IA_64_DISC + value);
+ case ARCH::IA_64: return TAG(IA_64_DISC + value);
default:
- LIEF_WARN("Dynamic tag: 0x{:04x} is not supported for the "
- "current architecture ({})", value, ELF::to_string(arch));
+ LIEF_WARN("Unsupported dynamic tag {:#06x} for "
+ "architecture ({})",
+ value, ELF::to_string(arch));
return TAG::UNKNOWN;
}
}
@@ -86,6 +89,11 @@ DynamicEntry::TAG DynamicEntry::from_value(uint64_t value, ARCH arch) {
uint64_t DynamicEntry::to_value(DynamicEntry::TAG tag) {
auto raw_value = static_cast<uint64_t>(tag);
+
+ if (tag == TAG::AUXILIARY || tag == TAG::FILTER) {
+ return raw_value;
+ }
+
if (MIPS_DISC <= raw_value && raw_value < AARCH64_DISC) {
return raw_value - MIPS_DISC;
}
@@ -124,50 +132,46 @@ uint64_t DynamicEntry::to_value(DynamicEntry::TAG tag) {
std::unique_ptr<DynamicEntry> DynamicEntry::create(TAG tag, uint64_t value) {
switch (tag) {
- default:
- return std::make_unique<DynamicEntry>(tag, value);
- case TAG::NEEDED:
- return std::make_unique<DynamicEntryLibrary>();
+ default: return std::make_unique<DynamicEntry>(tag, value);
+ case TAG::NEEDED: return std::make_unique<DynamicEntryLibrary>();
+
+ case TAG::SONAME: return std::make_unique<DynamicSharedObject>();
- case TAG::SONAME:
- return std::make_unique<DynamicSharedObject>();
+ case TAG::AUXILIARY: return std::make_unique<DynamicEntryAuxiliary>();
- case TAG::RUNPATH:
- return std::make_unique<DynamicEntryRunPath>();
+ case TAG::FILTER: return std::make_unique<DynamicEntryFilter>();
- case TAG::RPATH:
- return std::make_unique<DynamicEntryRpath>();
+ case TAG::RUNPATH: return std::make_unique<DynamicEntryRunPath>();
- case TAG::FLAGS_1:
- return DynamicEntryFlags::create_dt_flag_1(value).clone();
+ case TAG::RPATH: return std::make_unique<DynamicEntryRpath>();
- case TAG::FLAGS:
- return DynamicEntryFlags::create_dt_flag(value).clone();
+ case TAG::FLAGS_1: return DynamicEntryFlags::create_dt_flag_1(value).clone();
+
+ case TAG::FLAGS: return DynamicEntryFlags::create_dt_flag(value).clone();
case TAG::INIT_ARRAY:
case TAG::FINI_ARRAY:
case TAG::PREINIT_ARRAY:
- return std::make_unique<DynamicEntryArray>(tag, DynamicEntryArray::array_t());
+ return std::make_unique<DynamicEntryArray>(tag,
+ DynamicEntryArray::array_t());
}
return std::make_unique<DynamicEntry>(tag, value);
}
DynamicEntry::DynamicEntry(const details::Elf64_Dyn& header, ARCH arch) :
tag_{DynamicEntry::from_value(header.d_tag, arch)},
- value_{header.d_un.d_val}
-{}
+ value_{header.d_un.d_val} {}
DynamicEntry::DynamicEntry(const details::Elf32_Dyn& header, ARCH arch) :
tag_{DynamicEntry::from_value(header.d_tag, arch)},
- value_{header.d_un.d_val}
-{}
+ value_{header.d_un.d_val} {}
void DynamicEntry::accept(Visitor& visitor) const {
visitor.visit(*this);
}
std::ostream& DynamicEntry::print(std::ostream& os) const {
- os << fmt::format("{:<20}: 0x{:06x} ", ELF::to_string(tag()), value());
+ os << fmt::format("{:<20}: {:#08x} ", ELF::to_string(tag()), value());
return os;
}
@@ -178,171 +182,175 @@ std::string DynamicEntry::to_string() const {
}
const char* to_string(DynamicEntry::TAG tag) {
- #define ENTRY(X) std::pair(DynamicEntry::TAG::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNKNOWN),
- ENTRY(DT_NULL_),
- ENTRY(NEEDED),
- ENTRY(PLTRELSZ),
- ENTRY(PLTGOT),
- ENTRY(HASH),
- ENTRY(STRTAB),
- ENTRY(SYMTAB),
- ENTRY(RELA),
- ENTRY(RELASZ),
- ENTRY(RELAENT),
- ENTRY(STRSZ),
- ENTRY(SYMENT),
- ENTRY(INIT),
- ENTRY(FINI),
- ENTRY(SONAME),
- ENTRY(RPATH),
- ENTRY(SYMBOLIC),
- ENTRY(REL),
- ENTRY(RELSZ),
- ENTRY(RELENT),
- ENTRY(PLTREL),
- ENTRY(DEBUG_TAG),
- ENTRY(TEXTREL),
- ENTRY(JMPREL),
- ENTRY(BIND_NOW),
- ENTRY(INIT_ARRAY),
- ENTRY(FINI_ARRAY),
- ENTRY(INIT_ARRAYSZ),
- ENTRY(FINI_ARRAYSZ),
- ENTRY(RUNPATH),
- ENTRY(FLAGS),
- ENTRY(PREINIT_ARRAY),
- ENTRY(PREINIT_ARRAYSZ),
- ENTRY(SYMTAB_SHNDX),
- ENTRY(RELRSZ),
- ENTRY(RELR),
- ENTRY(RELRENT),
- ENTRY(GNU_HASH),
- ENTRY(RELACOUNT),
- ENTRY(RELCOUNT),
- ENTRY(FLAGS_1),
- ENTRY(VERSYM),
- ENTRY(VERDEF),
- ENTRY(VERDEFNUM),
- ENTRY(VERNEED),
- ENTRY(VERNEEDNUM),
- ENTRY(ANDROID_REL_OFFSET),
- ENTRY(ANDROID_REL_SIZE),
- ENTRY(ANDROID_REL),
- ENTRY(ANDROID_RELSZ),
- ENTRY(ANDROID_RELA),
- ENTRY(ANDROID_RELASZ),
- ENTRY(ANDROID_RELR),
- ENTRY(ANDROID_RELRSZ),
- ENTRY(ANDROID_RELRENT),
- ENTRY(ANDROID_RELRCOUNT),
- ENTRY(MIPS_RLD_VERSION),
- ENTRY(MIPS_TIME_STAMP),
- ENTRY(MIPS_ICHECKSUM),
- ENTRY(MIPS_IVERSION),
- ENTRY(MIPS_FLAGS),
- ENTRY(MIPS_BASE_ADDRESS),
- ENTRY(MIPS_MSYM),
- ENTRY(MIPS_CONFLICT),
- ENTRY(MIPS_LIBLIST),
- ENTRY(MIPS_LOCAL_GOTNO),
- ENTRY(MIPS_CONFLICTNO),
- ENTRY(MIPS_LIBLISTNO),
- ENTRY(MIPS_SYMTABNO),
- ENTRY(MIPS_UNREFEXTNO),
- ENTRY(MIPS_GOTSYM),
- ENTRY(MIPS_HIPAGENO),
- ENTRY(MIPS_RLD_MAP),
- ENTRY(MIPS_DELTA_CLASS),
- ENTRY(MIPS_DELTA_CLASS_NO),
- ENTRY(MIPS_DELTA_INSTANCE),
- ENTRY(MIPS_DELTA_INSTANCE_NO),
- ENTRY(MIPS_DELTA_RELOC),
- ENTRY(MIPS_DELTA_RELOC_NO),
- ENTRY(MIPS_DELTA_SYM),
- ENTRY(MIPS_DELTA_SYM_NO),
- ENTRY(MIPS_DELTA_CLASSSYM),
- ENTRY(MIPS_DELTA_CLASSSYM_NO),
- ENTRY(MIPS_CXX_FLAGS),
- ENTRY(MIPS_PIXIE_INIT),
- ENTRY(MIPS_SYMBOL_LIB),
- ENTRY(MIPS_LOCALPAGE_GOTIDX),
- ENTRY(MIPS_LOCAL_GOTIDX),
- ENTRY(MIPS_HIDDEN_GOTIDX),
- ENTRY(MIPS_PROTECTED_GOTIDX),
- ENTRY(MIPS_OPTIONS),
- ENTRY(MIPS_INTERFACE),
- ENTRY(MIPS_DYNSTR_ALIGN),
- ENTRY(MIPS_INTERFACE_SIZE),
- ENTRY(MIPS_RLD_TEXT_RESOLVE_ADDR),
- ENTRY(MIPS_PERF_SUFFIX),
- ENTRY(MIPS_COMPACT_SIZE),
- ENTRY(MIPS_GP_VALUE),
- ENTRY(MIPS_AUX_DYNAMIC),
- ENTRY(MIPS_PLTGOT),
- ENTRY(MIPS_RWPLT),
- ENTRY(MIPS_RLD_MAP_REL),
- ENTRY(MIPS_XHASH),
-
- ENTRY(AARCH64_BTI_PLT),
- ENTRY(AARCH64_PAC_PLT),
- ENTRY(AARCH64_VARIANT_PCS),
- ENTRY(AARCH64_MEMTAG_MODE),
- ENTRY(AARCH64_MEMTAG_HEAP),
- ENTRY(AARCH64_MEMTAG_STACK),
- ENTRY(AARCH64_MEMTAG_GLOBALS),
- ENTRY(AARCH64_MEMTAG_GLOBALSSZ),
-
- ENTRY(HEXAGON_SYMSZ),
- ENTRY(HEXAGON_VER),
- ENTRY(HEXAGON_PLT),
-
- ENTRY(PPC_GOT),
- ENTRY(PPC_OPT),
-
- ENTRY(PPC64_GLINK),
- ENTRY(PPC64_OPT),
-
- ENTRY(RISCV_VARIANT_CC),
-
- ENTRY(X86_64_PLT),
- ENTRY(X86_64_PLTSZ),
- ENTRY(X86_64_PLTENT),
-
- ENTRY(IA_64_PLT_RESERVE),
- ENTRY(IA_64_VMS_SUBTYPE),
- ENTRY(IA_64_VMS_IMGIOCNT),
- ENTRY(IA_64_VMS_LNKFLAGS),
- ENTRY(IA_64_VMS_VIR_MEM_BLK_SIZ),
- ENTRY(IA_64_VMS_IDENT),
- ENTRY(IA_64_VMS_NEEDED_IDENT),
- ENTRY(IA_64_VMS_IMG_RELA_CNT),
- ENTRY(IA_64_VMS_SEG_RELA_CNT),
- ENTRY(IA_64_VMS_FIXUP_RELA_CNT),
- ENTRY(IA_64_VMS_FIXUP_NEEDED),
- ENTRY(IA_64_VMS_SYMVEC_CNT),
- ENTRY(IA_64_VMS_XLATED),
- ENTRY(IA_64_VMS_STACKSIZE),
- ENTRY(IA_64_VMS_UNWINDSZ),
- ENTRY(IA_64_VMS_UNWIND_CODSEG),
- ENTRY(IA_64_VMS_UNWIND_INFOSEG),
- ENTRY(IA_64_VMS_LINKTIME),
- ENTRY(IA_64_VMS_SEG_NO),
- ENTRY(IA_64_VMS_SYMVEC_OFFSET),
- ENTRY(IA_64_VMS_SYMVEC_SEG),
- ENTRY(IA_64_VMS_UNWIND_OFFSET),
- ENTRY(IA_64_VMS_UNWIND_SEG),
- ENTRY(IA_64_VMS_STRTAB_OFFSET),
- ENTRY(IA_64_VMS_SYSVER_OFFSET),
- ENTRY(IA_64_VMS_IMG_RELA_OFF),
- ENTRY(IA_64_VMS_SEG_RELA_OFF),
- ENTRY(IA_64_VMS_FIXUP_RELA_OFF),
- ENTRY(IA_64_VMS_PLTGOT_OFFSET),
- ENTRY(IA_64_VMS_PLTGOT_SEG),
- ENTRY(IA_64_VMS_FPMODE),
+#define ENTRY(X) std::pair(DynamicEntry::TAG::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(UNKNOWN),
+ ENTRY(DT_NULL_),
+ ENTRY(NEEDED),
+ ENTRY(PLTRELSZ),
+ ENTRY(PLTGOT),
+ ENTRY(HASH),
+ ENTRY(STRTAB),
+ ENTRY(SYMTAB),
+ ENTRY(RELA),
+ ENTRY(RELASZ),
+ ENTRY(RELAENT),
+ ENTRY(STRSZ),
+ ENTRY(SYMENT),
+ ENTRY(INIT),
+ ENTRY(FINI),
+ ENTRY(SONAME),
+ ENTRY(RPATH),
+ ENTRY(SYMBOLIC),
+ ENTRY(REL),
+ ENTRY(RELSZ),
+ ENTRY(RELENT),
+ ENTRY(PLTREL),
+ ENTRY(DEBUG_TAG),
+ ENTRY(TEXTREL),
+ ENTRY(JMPREL),
+ ENTRY(BIND_NOW),
+ ENTRY(INIT_ARRAY),
+ ENTRY(FINI_ARRAY),
+ ENTRY(INIT_ARRAYSZ),
+ ENTRY(FINI_ARRAYSZ),
+ ENTRY(RUNPATH),
+ ENTRY(FLAGS),
+ ENTRY(PREINIT_ARRAY),
+ ENTRY(PREINIT_ARRAYSZ),
+ ENTRY(SYMTAB_SHNDX),
+ ENTRY(RELRSZ),
+ ENTRY(RELR),
+ ENTRY(RELRENT),
+ ENTRY(GNU_HASH),
+ ENTRY(TLSDESC_PLT),
+ ENTRY(TLSDESC_GOT),
+ ENTRY(RELACOUNT),
+ ENTRY(RELCOUNT),
+ ENTRY(FLAGS_1),
+ ENTRY(VERSYM),
+ ENTRY(VERDEF),
+ ENTRY(VERDEFNUM),
+ ENTRY(VERNEED),
+ ENTRY(VERNEEDNUM),
+ ENTRY(AUXILIARY),
+ ENTRY(FILTER),
+ ENTRY(ANDROID_REL_OFFSET),
+ ENTRY(ANDROID_REL_SIZE),
+ ENTRY(ANDROID_REL),
+ ENTRY(ANDROID_RELSZ),
+ ENTRY(ANDROID_RELA),
+ ENTRY(ANDROID_RELASZ),
+ ENTRY(ANDROID_RELR),
+ ENTRY(ANDROID_RELRSZ),
+ ENTRY(ANDROID_RELRENT),
+ ENTRY(ANDROID_RELRCOUNT),
+ ENTRY(MIPS_RLD_VERSION),
+ ENTRY(MIPS_TIME_STAMP),
+ ENTRY(MIPS_ICHECKSUM),
+ ENTRY(MIPS_IVERSION),
+ ENTRY(MIPS_FLAGS),
+ ENTRY(MIPS_BASE_ADDRESS),
+ ENTRY(MIPS_MSYM),
+ ENTRY(MIPS_CONFLICT),
+ ENTRY(MIPS_LIBLIST),
+ ENTRY(MIPS_LOCAL_GOTNO),
+ ENTRY(MIPS_CONFLICTNO),
+ ENTRY(MIPS_LIBLISTNO),
+ ENTRY(MIPS_SYMTABNO),
+ ENTRY(MIPS_UNREFEXTNO),
+ ENTRY(MIPS_GOTSYM),
+ ENTRY(MIPS_HIPAGENO),
+ ENTRY(MIPS_RLD_MAP),
+ ENTRY(MIPS_DELTA_CLASS),
+ ENTRY(MIPS_DELTA_CLASS_NO),
+ ENTRY(MIPS_DELTA_INSTANCE),
+ ENTRY(MIPS_DELTA_INSTANCE_NO),
+ ENTRY(MIPS_DELTA_RELOC),
+ ENTRY(MIPS_DELTA_RELOC_NO),
+ ENTRY(MIPS_DELTA_SYM),
+ ENTRY(MIPS_DELTA_SYM_NO),
+ ENTRY(MIPS_DELTA_CLASSSYM),
+ ENTRY(MIPS_DELTA_CLASSSYM_NO),
+ ENTRY(MIPS_CXX_FLAGS),
+ ENTRY(MIPS_PIXIE_INIT),
+ ENTRY(MIPS_SYMBOL_LIB),
+ ENTRY(MIPS_LOCALPAGE_GOTIDX),
+ ENTRY(MIPS_LOCAL_GOTIDX),
+ ENTRY(MIPS_HIDDEN_GOTIDX),
+ ENTRY(MIPS_PROTECTED_GOTIDX),
+ ENTRY(MIPS_OPTIONS),
+ ENTRY(MIPS_INTERFACE),
+ ENTRY(MIPS_DYNSTR_ALIGN),
+ ENTRY(MIPS_INTERFACE_SIZE),
+ ENTRY(MIPS_RLD_TEXT_RESOLVE_ADDR),
+ ENTRY(MIPS_PERF_SUFFIX),
+ ENTRY(MIPS_COMPACT_SIZE),
+ ENTRY(MIPS_GP_VALUE),
+ ENTRY(MIPS_AUX_DYNAMIC),
+ ENTRY(MIPS_PLTGOT),
+ ENTRY(MIPS_RWPLT),
+ ENTRY(MIPS_RLD_MAP_REL),
+ ENTRY(MIPS_XHASH),
+
+ ENTRY(AARCH64_BTI_PLT),
+ ENTRY(AARCH64_PAC_PLT),
+ ENTRY(AARCH64_VARIANT_PCS),
+ ENTRY(AARCH64_MEMTAG_MODE),
+ ENTRY(AARCH64_MEMTAG_HEAP),
+ ENTRY(AARCH64_MEMTAG_STACK),
+ ENTRY(AARCH64_MEMTAG_GLOBALS),
+ ENTRY(AARCH64_MEMTAG_GLOBALSSZ),
+
+ ENTRY(HEXAGON_SYMSZ),
+ ENTRY(HEXAGON_VER),
+ ENTRY(HEXAGON_PLT),
+
+ ENTRY(PPC_GOT),
+ ENTRY(PPC_OPT),
+
+ ENTRY(PPC64_GLINK),
+ ENTRY(PPC64_OPT),
+
+ ENTRY(RISCV_VARIANT_CC),
+
+ ENTRY(X86_64_PLT),
+ ENTRY(X86_64_PLTSZ),
+ ENTRY(X86_64_PLTENT),
+
+ ENTRY(IA_64_PLT_RESERVE),
+ ENTRY(IA_64_VMS_SUBTYPE),
+ ENTRY(IA_64_VMS_IMGIOCNT),
+ ENTRY(IA_64_VMS_LNKFLAGS),
+ ENTRY(IA_64_VMS_VIR_MEM_BLK_SIZ),
+ ENTRY(IA_64_VMS_IDENT),
+ ENTRY(IA_64_VMS_NEEDED_IDENT),
+ ENTRY(IA_64_VMS_IMG_RELA_CNT),
+ ENTRY(IA_64_VMS_SEG_RELA_CNT),
+ ENTRY(IA_64_VMS_FIXUP_RELA_CNT),
+ ENTRY(IA_64_VMS_FIXUP_NEEDED),
+ ENTRY(IA_64_VMS_SYMVEC_CNT),
+ ENTRY(IA_64_VMS_XLATED),
+ ENTRY(IA_64_VMS_STACKSIZE),
+ ENTRY(IA_64_VMS_UNWINDSZ),
+ ENTRY(IA_64_VMS_UNWIND_CODSEG),
+ ENTRY(IA_64_VMS_UNWIND_INFOSEG),
+ ENTRY(IA_64_VMS_LINKTIME),
+ ENTRY(IA_64_VMS_SEG_NO),
+ ENTRY(IA_64_VMS_SYMVEC_OFFSET),
+ ENTRY(IA_64_VMS_SYMVEC_SEG),
+ ENTRY(IA_64_VMS_UNWIND_OFFSET),
+ ENTRY(IA_64_VMS_UNWIND_SEG),
+ ENTRY(IA_64_VMS_STRTAB_OFFSET),
+ ENTRY(IA_64_VMS_SYSVER_OFFSET),
+ ENTRY(IA_64_VMS_IMG_RELA_OFF),
+ ENTRY(IA_64_VMS_SEG_RELA_OFF),
+ ENTRY(IA_64_VMS_FIXUP_RELA_OFF),
+ ENTRY(IA_64_VMS_PLTGOT_OFFSET),
+ ENTRY(IA_64_VMS_PLTGOT_SEG),
+ ENTRY(IA_64_VMS_FPMODE),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(tag); it != enums2str.end()) {
return it->second;
@@ -352,4 +360,3 @@ const char* to_string(DynamicEntry::TAG tag) {
}
}
-}
diff --git a/deps/LIEF/src/ELF/DynamicEntryArray.cpp b/deps/LIEF/src/ELF/DynamicEntryArray.cpp
index 05a0f0fd542..a9d93763e08 100644
--- a/deps/LIEF/src/ELF/DynamicEntryArray.cpp
+++ b/deps/LIEF/src/ELF/DynamicEntryArray.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,13 +20,13 @@
#include <algorithm>
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
DynamicEntryArray& DynamicEntryArray::remove(uint64_t function) {
- array_.erase(std::remove_if(std::begin(array_), std::end(array_),
- [function] (uint64_t v) { return v == function; }),
- std::end(array_));
+ array_.erase(std::remove_if(array_.begin(), array_.end(),
+ [function](uint64_t v) { return v == function; }),
+ array_.end());
return *this;
}
@@ -36,25 +36,27 @@ DynamicEntryArray& DynamicEntryArray::insert(size_t pos, uint64_t function) {
}
if (pos > array_.size()) {
- LIEF_ERR("pos: {:d} is out of range", pos);
+ LIEF_ERR("Position {:d} is out of range", pos);
return *this;
}
- array_.insert(std::begin(array_) + pos, function);
+ array_.insert(array_.begin() + pos, function);
return *this;
}
const uint64_t& DynamicEntryArray::operator[](size_t idx) const {
static uint64_t GARBAGE = 0;
if (idx >= array_.size()) {
- LIEF_WARN("DynamicEntryArray[{}] is out-of-range", idx);
+ LIEF_WARN("DynamicEntryArray[{}] out of range", idx);
return GARBAGE;
}
return array_[idx];
}
uint64_t& DynamicEntryArray::operator[](size_t idx) {
- return const_cast<uint64_t&>(static_cast<const DynamicEntryArray*>(this)->operator[](idx));
+ return const_cast<uint64_t&>(
+ static_cast<const DynamicEntryArray*>(this)->operator[](idx)
+ );
}
void DynamicEntryArray::accept(Visitor& visitor) const {
@@ -64,12 +66,8 @@ void DynamicEntryArray::accept(Visitor& visitor) const {
std::ostream& DynamicEntryArray::print(std::ostream& os) const {
const array_t& array = this->array();
DynamicEntry::print(os);
- os << '[' << fmt::format("0x{:04x}", fmt::join(array, ", ")) << ']';
+ os << '[' << fmt::format("{:#06x}", fmt::join(array, ", ")) << ']';
return os;
}
}
-}
-
-
-
diff --git a/deps/LIEF/src/ELF/DynamicEntryAuxiliary.cpp b/deps/LIEF/src/ELF/DynamicEntryAuxiliary.cpp
new file mode 100644
index 00000000000..6d139224d6a
--- /dev/null
+++ b/deps/LIEF/src/ELF/DynamicEntryAuxiliary.cpp
@@ -0,0 +1,34 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "LIEF/ELF/DynamicEntryAuxiliary.hpp"
+#include "LIEF/Visitor.hpp"
+
+#include <spdlog/fmt/fmt.h>
+
+
+namespace LIEF::ELF {
+
+void DynamicEntryAuxiliary::accept(Visitor& visitor) const {
+ visitor.visit(*this);
+}
+
+std::ostream& DynamicEntryAuxiliary::print(std::ostream& os) const {
+ DynamicEntry::print(os);
+ os << fmt::format("{:<10}", name());
+ return os;
+}
+
+}
diff --git a/deps/LIEF/src/ELF/DynamicEntryFilter.cpp b/deps/LIEF/src/ELF/DynamicEntryFilter.cpp
new file mode 100644
index 00000000000..cda39db14c7
--- /dev/null
+++ b/deps/LIEF/src/ELF/DynamicEntryFilter.cpp
@@ -0,0 +1,34 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "LIEF/ELF/DynamicEntryFilter.hpp"
+#include "LIEF/Visitor.hpp"
+
+#include <spdlog/fmt/fmt.h>
+
+
+namespace LIEF::ELF {
+
+void DynamicEntryFilter::accept(Visitor& visitor) const {
+ visitor.visit(*this);
+}
+
+std::ostream& DynamicEntryFilter::print(std::ostream& os) const {
+ DynamicEntry::print(os);
+ os << fmt::format("{:<10}", name());
+ return os;
+}
+
+}
diff --git a/deps/LIEF/src/ELF/DynamicEntryFlags.cpp b/deps/LIEF/src/ELF/DynamicEntryFlags.cpp
index c59b08094ce..9c63d22b2da 100644
--- a/deps/LIEF/src/ELF/DynamicEntryFlags.cpp
+++ b/deps/LIEF/src/ELF/DynamicEntryFlags.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,51 +17,35 @@
#include "LIEF/ELF/DynamicEntryFlags.hpp"
#include "frozen.hpp"
-#include "logging.hpp"
#include "fmt_formatter.hpp"
FMT_FORMATTER(LIEF::ELF::DynamicEntryFlags::FLAG, LIEF::ELF::to_string);
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
static constexpr auto DF_FLAGS = {
- DynamicEntryFlags::FLAG::ORIGIN, DynamicEntryFlags::FLAG::SYMBOLIC,
- DynamicEntryFlags::FLAG::TEXTREL, DynamicEntryFlags::FLAG::BIND_NOW,
- DynamicEntryFlags::FLAG::STATIC_TLS,
+ DynamicEntryFlags::FLAG::ORIGIN, DynamicEntryFlags::FLAG::SYMBOLIC,
+ DynamicEntryFlags::FLAG::TEXTREL, DynamicEntryFlags::FLAG::BIND_NOW,
+ DynamicEntryFlags::FLAG::STATIC_TLS,
};
static constexpr auto DF_FLAGS_1 = {
- DynamicEntryFlags::FLAG::NOW,
- DynamicEntryFlags::FLAG::GLOBAL,
- DynamicEntryFlags::FLAG::GROUP,
- DynamicEntryFlags::FLAG::NODELETE,
- DynamicEntryFlags::FLAG::LOADFLTR,
- DynamicEntryFlags::FLAG::INITFIRST,
- DynamicEntryFlags::FLAG::NOOPEN,
- DynamicEntryFlags::FLAG::HANDLE_ORIGIN,
- DynamicEntryFlags::FLAG::DIRECT,
- DynamicEntryFlags::FLAG::TRANS,
- DynamicEntryFlags::FLAG::INTERPOSE,
- DynamicEntryFlags::FLAG::NODEFLIB,
- DynamicEntryFlags::FLAG::NODUMP,
- DynamicEntryFlags::FLAG::CONFALT,
- DynamicEntryFlags::FLAG::ENDFILTEE,
- DynamicEntryFlags::FLAG::DISPRELDNE,
- DynamicEntryFlags::FLAG::DISPRELPND,
- DynamicEntryFlags::FLAG::NODIRECT,
- DynamicEntryFlags::FLAG::IGNMULDEF,
- DynamicEntryFlags::FLAG::NOKSYMS,
- DynamicEntryFlags::FLAG::NOHDR,
- DynamicEntryFlags::FLAG::EDITED,
- DynamicEntryFlags::FLAG::NORELOC,
- DynamicEntryFlags::FLAG::SYMINTPOSE,
- DynamicEntryFlags::FLAG::GLOBAUDIT,
- DynamicEntryFlags::FLAG::SINGLETON,
- DynamicEntryFlags::FLAG::PIE,
- DynamicEntryFlags::FLAG::KMOD,
- DynamicEntryFlags::FLAG::WEAKFILTER,
- DynamicEntryFlags::FLAG::NOCOMMON,
+ DynamicEntryFlags::FLAG::NOW, DynamicEntryFlags::FLAG::GLOBAL,
+ DynamicEntryFlags::FLAG::GROUP, DynamicEntryFlags::FLAG::NODELETE,
+ DynamicEntryFlags::FLAG::LOADFLTR, DynamicEntryFlags::FLAG::INITFIRST,
+ DynamicEntryFlags::FLAG::NOOPEN, DynamicEntryFlags::FLAG::HANDLE_ORIGIN,
+ DynamicEntryFlags::FLAG::DIRECT, DynamicEntryFlags::FLAG::TRANS,
+ DynamicEntryFlags::FLAG::INTERPOSE, DynamicEntryFlags::FLAG::NODEFLIB,
+ DynamicEntryFlags::FLAG::NODUMP, DynamicEntryFlags::FLAG::CONFALT,
+ DynamicEntryFlags::FLAG::ENDFILTEE, DynamicEntryFlags::FLAG::DISPRELDNE,
+ DynamicEntryFlags::FLAG::DISPRELPND, DynamicEntryFlags::FLAG::NODIRECT,
+ DynamicEntryFlags::FLAG::IGNMULDEF, DynamicEntryFlags::FLAG::NOKSYMS,
+ DynamicEntryFlags::FLAG::NOHDR, DynamicEntryFlags::FLAG::EDITED,
+ DynamicEntryFlags::FLAG::NORELOC, DynamicEntryFlags::FLAG::SYMINTPOSE,
+ DynamicEntryFlags::FLAG::GLOBAUDIT, DynamicEntryFlags::FLAG::SINGLETON,
+ DynamicEntryFlags::FLAG::PIE, DynamicEntryFlags::FLAG::KMOD,
+ DynamicEntryFlags::FLAG::WEAKFILTER, DynamicEntryFlags::FLAG::NOCOMMON,
};
bool DynamicEntryFlags::has(DynamicEntryFlags::FLAG f) const {
@@ -162,45 +146,19 @@ std::ostream& DynamicEntryFlags::print(std::ostream& os) const {
}
const char* to_string(DynamicEntryFlags::FLAG flag) {
- #define ENTRY(X) std::pair(DynamicEntryFlags::FLAG::X, #X)
- STRING_MAP enums2str {
- ENTRY(ORIGIN),
- ENTRY(SYMBOLIC),
- ENTRY(TEXTREL),
- ENTRY(BIND_NOW),
- ENTRY(STATIC_TLS),
- ENTRY(NOW),
- ENTRY(GLOBAL),
- ENTRY(GROUP),
- ENTRY(NODELETE),
- ENTRY(LOADFLTR),
- ENTRY(INITFIRST),
- ENTRY(NOOPEN),
- ENTRY(HANDLE_ORIGIN),
- ENTRY(DIRECT),
- ENTRY(TRANS),
- ENTRY(INTERPOSE),
- ENTRY(NODEFLIB),
- ENTRY(NODUMP),
- ENTRY(CONFALT),
- ENTRY(ENDFILTEE),
- ENTRY(DISPRELDNE),
- ENTRY(DISPRELPND),
- ENTRY(NODIRECT),
- ENTRY(IGNMULDEF),
- ENTRY(NOKSYMS),
- ENTRY(NOHDR),
- ENTRY(EDITED),
- ENTRY(NORELOC),
- ENTRY(SYMINTPOSE),
- ENTRY(GLOBAUDIT),
- ENTRY(SINGLETON),
- ENTRY(PIE),
- ENTRY(KMOD),
- ENTRY(WEAKFILTER),
- ENTRY(NOCOMMON),
+#define ENTRY(X) std::pair(DynamicEntryFlags::FLAG::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(ORIGIN), ENTRY(SYMBOLIC), ENTRY(TEXTREL), ENTRY(BIND_NOW),
+ ENTRY(STATIC_TLS), ENTRY(NOW), ENTRY(GLOBAL), ENTRY(GROUP),
+ ENTRY(NODELETE), ENTRY(LOADFLTR), ENTRY(INITFIRST), ENTRY(NOOPEN),
+ ENTRY(HANDLE_ORIGIN), ENTRY(DIRECT), ENTRY(TRANS), ENTRY(INTERPOSE),
+ ENTRY(NODEFLIB), ENTRY(NODUMP), ENTRY(CONFALT), ENTRY(ENDFILTEE),
+ ENTRY(DISPRELDNE), ENTRY(DISPRELPND), ENTRY(NODIRECT), ENTRY(IGNMULDEF),
+ ENTRY(NOKSYMS), ENTRY(NOHDR), ENTRY(EDITED), ENTRY(NORELOC),
+ ENTRY(SYMINTPOSE), ENTRY(GLOBAUDIT), ENTRY(SINGLETON), ENTRY(PIE),
+ ENTRY(KMOD), ENTRY(WEAKFILTER), ENTRY(NOCOMMON),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(flag); it != enums2str.end()) {
return it->second;
}
@@ -210,7 +168,3 @@ const char* to_string(DynamicEntryFlags::FLAG flag) {
}
-}
-
-
-
diff --git a/deps/LIEF/src/ELF/DynamicEntryLibrary.cpp b/deps/LIEF/src/ELF/DynamicEntryLibrary.cpp
index 1c372a5b6df..216c008ce0a 100644
--- a/deps/LIEF/src/ELF/DynamicEntryLibrary.cpp
+++ b/deps/LIEF/src/ELF/DynamicEntryLibrary.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,8 +18,8 @@
#include <spdlog/fmt/fmt.h>
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
void DynamicEntryLibrary::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -32,7 +32,3 @@ std::ostream& DynamicEntryLibrary::print(std::ostream& os) const {
}
}
-}
-
-
-
diff --git a/deps/LIEF/src/ELF/DynamicEntryRpath.cpp b/deps/LIEF/src/ELF/DynamicEntryRpath.cpp
index 97f767e5b6f..ac770a1fe26 100644
--- a/deps/LIEF/src/ELF/DynamicEntryRpath.cpp
+++ b/deps/LIEF/src/ELF/DynamicEntryRpath.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,13 +18,12 @@
#include "logging.hpp"
#include <algorithm>
-#include <iomanip>
#include <numeric>
#include <sstream>
#include <utility>
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
std::vector<std::string> DynamicEntryRpath::paths() const {
std::stringstream ss;
@@ -38,10 +37,13 @@ std::vector<std::string> DynamicEntryRpath::paths() const {
}
void DynamicEntryRpath::paths(const std::vector<std::string>& paths) {
- rpath_ = std::accumulate(std::begin(paths), std::end(paths), std::string(),
- [] (const std::string& path, const std::string& new_entry) {
- return path.empty() ? new_entry : path + DynamicEntryRpath::delimiter + new_entry;
- });
+ rpath_ =
+ std::accumulate(paths.begin(), paths.end(), std::string(),
+ [](const std::string& path, const std::string& new_entry) {
+ return path.empty() ?
+ new_entry :
+ path + DynamicEntryRpath::delimiter + new_entry;
+ });
}
DynamicEntryRpath& DynamicEntryRpath::append(std::string path) {
@@ -53,11 +55,9 @@ DynamicEntryRpath& DynamicEntryRpath::append(std::string path) {
DynamicEntryRpath& DynamicEntryRpath::remove(const std::string& path) {
std::vector<std::string> paths = this->paths();
- paths.erase(std::remove_if(std::begin(paths), std::end(paths),
- [&path] (const std::string& p) {
- return p == path;
- }),
- std::end(paths));
+ paths.erase(std::remove_if(paths.begin(), paths.end(),
+ [&path](const std::string& p) { return p == path; }),
+ paths.end());
this->paths(paths);
return *this;
}
@@ -70,10 +70,10 @@ DynamicEntryRpath& DynamicEntryRpath::insert(size_t pos, const std::string& path
}
if (pos > paths.size()) {
- LIEF_ERR("pos: {:d} is out of range", pos);
+ LIEF_ERR("Position {:d} is out of range", pos);
return *this;
}
- paths.insert(std::begin(paths) + pos, path);
+ paths.insert(paths.begin() + pos, path);
this->paths(paths);
return *this;
}
@@ -91,7 +91,3 @@ std::ostream& DynamicEntryRpath::print(std::ostream& os) const {
}
}
-}
-
-
-
diff --git a/deps/LIEF/src/ELF/DynamicEntryRunPath.cpp b/deps/LIEF/src/ELF/DynamicEntryRunPath.cpp
index fdd359f63bb..d810929f97a 100644
--- a/deps/LIEF/src/ELF/DynamicEntryRunPath.cpp
+++ b/deps/LIEF/src/ELF/DynamicEntryRunPath.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,8 +21,8 @@
#include <numeric>
#include <sstream>
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
std::vector<std::string> DynamicEntryRunPath::paths() const {
std::stringstream ss;
@@ -38,12 +38,14 @@ std::vector<std::string> DynamicEntryRunPath::paths() const {
}
void DynamicEntryRunPath::paths(const std::vector<std::string>& paths) {
- runpath_ = std::accumulate(
- std::begin(paths), std::end(paths),
- std::string(""),
- [] (const std::string& path, const std::string& new_entry) {
- return path.empty() ? new_entry : path + DynamicEntryRunPath::delimiter + new_entry;
- });
+ runpath_ =
+ std::accumulate(paths.begin(), paths.end(), std::string(""),
+ [](const std::string& path, const std::string& new_entry) {
+ return path.empty() ?
+ new_entry :
+ path + DynamicEntryRunPath::delimiter +
+ new_entry;
+ });
}
DynamicEntryRunPath& DynamicEntryRunPath::append(const std::string& path) {
@@ -55,14 +57,15 @@ DynamicEntryRunPath& DynamicEntryRunPath::append(const std::string& path) {
DynamicEntryRunPath& DynamicEntryRunPath::remove(const std::string& path) {
std::vector<std::string> paths = this->paths();
- paths.erase(std::remove_if(std::begin(paths), std::end(paths),
- [&path] (const std::string& p) { return p == path; }),
- std::end(paths));
+ paths.erase(std::remove_if(paths.begin(), paths.end(),
+ [&path](const std::string& p) { return p == path; }),
+ paths.end());
this->paths(paths);
return *this;
}
-DynamicEntryRunPath& DynamicEntryRunPath::insert(size_t pos, const std::string& path) {
+DynamicEntryRunPath& DynamicEntryRunPath::insert(size_t pos,
+ const std::string& path) {
std::vector<std::string> paths = this->paths();
if (pos == paths.size()) {
@@ -70,9 +73,9 @@ DynamicEntryRunPath& DynamicEntryRunPath::insert(size_t pos, const std::string&
}
if (pos > paths.size()) {
- LIEF_ERR("pos: {:d} is out of range", pos);
+ LIEF_ERR("Position {:d} is out of range", pos);
}
- paths.insert(std::begin(paths) + pos, path);
+ paths.insert(paths.begin() + pos, path);
this->paths(paths);
return *this;
}
@@ -88,6 +91,3 @@ std::ostream& DynamicEntryRunPath::print(std::ostream& os) const {
return os;
}
}
-}
-
-
diff --git a/deps/LIEF/src/ELF/DynamicSharedObject.cpp b/deps/LIEF/src/ELF/DynamicSharedObject.cpp
index 36506d23305..f1a4a286320 100644
--- a/deps/LIEF/src/ELF/DynamicSharedObject.cpp
+++ b/deps/LIEF/src/ELF/DynamicSharedObject.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,8 +18,8 @@
#include <spdlog/fmt/fmt.h>
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
void DynamicSharedObject::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -32,7 +32,3 @@ std::ostream& DynamicSharedObject::print(std::ostream& os) const {
}
}
-}
-
-
-
diff --git a/deps/LIEF/src/ELF/EnumToString.cpp b/deps/LIEF/src/ELF/EnumToString.cpp
index 384070c45fd..aba735af6d0 100644
--- a/deps/LIEF/src/ELF/EnumToString.cpp
+++ b/deps/LIEF/src/ELF/EnumToString.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,198 +16,107 @@
#include "LIEF/ELF/EnumToString.hpp"
#include "frozen.hpp"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
const char* to_string(ARCH e) {
- #define ENTRY(X) std::pair(ARCH::X, #X)
- STRING_MAP enums2str {
- ENTRY(NONE),
- ENTRY(M32),
- ENTRY(SPARC),
- ENTRY(I386),
- ENTRY(M68K),
- ENTRY(M88K),
- ENTRY(IAMCU),
- ENTRY(I860),
- ENTRY(MIPS),
- ENTRY(S370),
- ENTRY(MIPS_RS3_LE),
- ENTRY(PARISC),
- ENTRY(VPP500),
- ENTRY(SPARC32PLUS),
- ENTRY(I60),
- ENTRY(PPC),
- ENTRY(PPC64),
- ENTRY(S390),
- ENTRY(SPU),
- ENTRY(V800),
- ENTRY(FR20),
- ENTRY(RH32),
- ENTRY(RCE),
- ENTRY(ARM),
- ENTRY(ALPHA),
- ENTRY(SH),
- ENTRY(SPARCV9),
- ENTRY(TRICORE),
- ENTRY(ARC),
- ENTRY(H8_300),
- ENTRY(H8_300H),
- ENTRY(H8S),
- ENTRY(H8_500),
- ENTRY(IA_64),
- ENTRY(MIPS_X),
- ENTRY(COLDFIRE),
- ENTRY(M68HC12),
- ENTRY(MMA),
- ENTRY(PCP),
- ENTRY(NCPU),
- ENTRY(NDR1),
- ENTRY(STARCORE),
- ENTRY(ME16),
- ENTRY(ST100),
- ENTRY(TINYJ),
- ENTRY(X86_64),
- ENTRY(PDSP),
- ENTRY(PDP10),
- ENTRY(PDP11),
- ENTRY(FX66),
- ENTRY(ST9PLUS),
- ENTRY(ST7),
- ENTRY(M68HC16),
- ENTRY(M68HC11),
- ENTRY(M68HC08),
- ENTRY(M68HC05),
- ENTRY(SVX),
- ENTRY(ST19),
- ENTRY(VAX),
- ENTRY(CRIS),
- ENTRY(JAVELIN),
- ENTRY(FIREPATH),
- ENTRY(ZSP),
- ENTRY(MMIX),
- ENTRY(HUANY),
- ENTRY(PRISM),
- ENTRY(AVR),
- ENTRY(FR30),
- ENTRY(D10V),
- ENTRY(D30V),
- ENTRY(V850),
- ENTRY(M32R),
- ENTRY(MN10300),
- ENTRY(MN10200),
- ENTRY(PJ),
- ENTRY(OPENRISC),
- ENTRY(ARC_COMPACT),
- ENTRY(XTENSA),
- ENTRY(VIDEOCORE),
- ENTRY(TMM_GPP),
- ENTRY(NS32K),
- ENTRY(TPC),
- ENTRY(SNP1K),
- ENTRY(ST200),
- ENTRY(IP2K),
- ENTRY(MAX),
- ENTRY(CR),
- ENTRY(F2MC16),
- ENTRY(MSP430),
- ENTRY(BLACKFIN),
- ENTRY(SE_C33),
- ENTRY(SEP),
- ENTRY(ARCA),
- ENTRY(UNICORE),
- ENTRY(EXCESS),
- ENTRY(DXP),
- ENTRY(ALTERA_NIOS2),
- ENTRY(CRX),
- ENTRY(XGATE),
- ENTRY(C166),
- ENTRY(M16C),
- ENTRY(DSPIC30F),
- ENTRY(CE),
- ENTRY(M32C),
- ENTRY(TSK3000),
- ENTRY(RS08),
- ENTRY(SHARC),
- ENTRY(ECOG2),
- ENTRY(SCORE7),
- ENTRY(DSP24),
- ENTRY(VIDEOCORE3),
- ENTRY(LATTICEMICO32),
- ENTRY(SE_C17),
- ENTRY(TI_C6000),
- ENTRY(TI_C2000),
- ENTRY(TI_C5500),
- ENTRY(MMDSP_PLUS),
- ENTRY(CYPRESS_M8C),
- ENTRY(R32C),
- ENTRY(TRIMEDIA),
- ENTRY(HEXAGON),
- ENTRY(M8051),
- ENTRY(STXP7X),
- ENTRY(NDS32),
- ENTRY(ECOG1),
- ENTRY(ECOG1X),
- ENTRY(MAXQ30),
- ENTRY(XIMO16),
- ENTRY(MANIK),
- ENTRY(CRAYNV2),
- ENTRY(RX),
- ENTRY(METAG),
- ENTRY(MCST_ELBRUS),
- ENTRY(ECOG16),
- ENTRY(CR16),
- ENTRY(ETPU),
- ENTRY(SLE9X),
- ENTRY(L10M),
- ENTRY(K10M),
- ENTRY(AARCH64),
- ENTRY(AVR32),
- ENTRY(STM8),
- ENTRY(TILE64),
- ENTRY(TILEPRO),
- ENTRY(CUDA),
- ENTRY(TILEGX),
- ENTRY(CLOUDSHIELD),
- ENTRY(COREA_1ST),
- ENTRY(COREA_2ND),
- ENTRY(ARC_COMPACT2),
- ENTRY(OPEN8),
- ENTRY(RL78),
- ENTRY(VIDEOCORE5),
- ENTRY(M78KOR),
- ENTRY(M56800EX),
- ENTRY(BA1),
- ENTRY(BA2),
- ENTRY(XCORE),
- ENTRY(MCHP_PIC),
- ENTRY(INTEL205),
- ENTRY(INTEL206),
- ENTRY(INTEL207),
- ENTRY(INTEL208),
- ENTRY(INTEL209),
- ENTRY(KM32),
- ENTRY(KMX32),
- ENTRY(KMX16),
- ENTRY(KMX8),
- ENTRY(KVARC),
- ENTRY(CDP),
- ENTRY(COGE),
- ENTRY(COOL),
- ENTRY(NORC),
- ENTRY(CSR_KALIMBA),
- ENTRY(AMDGPU),
- ENTRY(RISCV),
- ENTRY(BPF),
- ENTRY(CSKY),
- ENTRY(LOONGARCH),
- ENTRY(ALPHA_ALT),
+#define ENTRY(X) std::pair(ARCH::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(NONE), ENTRY(M32),
+ ENTRY(SPARC), ENTRY(I386),
+ ENTRY(M68K), ENTRY(M88K),
+ ENTRY(IAMCU), ENTRY(I860),
+ ENTRY(MIPS), ENTRY(S370),
+ ENTRY(MIPS_RS3_LE), ENTRY(PARISC),
+ ENTRY(VPP500), ENTRY(SPARC32PLUS),
+ ENTRY(I60), ENTRY(PPC),
+ ENTRY(PPC64), ENTRY(S390),
+ ENTRY(SPU), ENTRY(V800),
+ ENTRY(FR20), ENTRY(RH32),
+ ENTRY(RCE), ENTRY(ARM),
+ ENTRY(ALPHA), ENTRY(SH),
+ ENTRY(SPARCV9), ENTRY(TRICORE),
+ ENTRY(ARC), ENTRY(H8_300),
+ ENTRY(H8_300H), ENTRY(H8S),
+ ENTRY(H8_500), ENTRY(IA_64),
+ ENTRY(MIPS_X), ENTRY(COLDFIRE),
+ ENTRY(M68HC12), ENTRY(MMA),
+ ENTRY(PCP), ENTRY(NCPU),
+ ENTRY(NDR1), ENTRY(STARCORE),
+ ENTRY(ME16), ENTRY(ST100),
+ ENTRY(TINYJ), ENTRY(X86_64),
+ ENTRY(PDSP), ENTRY(PDP10),
+ ENTRY(PDP11), ENTRY(FX66),
+ ENTRY(ST9PLUS), ENTRY(ST7),
+ ENTRY(M68HC16), ENTRY(M68HC11),
+ ENTRY(M68HC08), ENTRY(M68HC05),
+ ENTRY(SVX), ENTRY(ST19),
+ ENTRY(VAX), ENTRY(CRIS),
+ ENTRY(JAVELIN), ENTRY(FIREPATH),
+ ENTRY(ZSP), ENTRY(MMIX),
+ ENTRY(HUANY), ENTRY(PRISM),
+ ENTRY(AVR), ENTRY(FR30),
+ ENTRY(D10V), ENTRY(D30V),
+ ENTRY(V850), ENTRY(M32R),
+ ENTRY(MN10300), ENTRY(MN10200),
+ ENTRY(PJ), ENTRY(OPENRISC),
+ ENTRY(ARC_COMPACT), ENTRY(XTENSA),
+ ENTRY(VIDEOCORE), ENTRY(TMM_GPP),
+ ENTRY(NS32K), ENTRY(TPC),
+ ENTRY(SNP1K), ENTRY(ST200),
+ ENTRY(IP2K), ENTRY(MAX),
+ ENTRY(CR), ENTRY(F2MC16),
+ ENTRY(MSP430), ENTRY(BLACKFIN),
+ ENTRY(SE_C33), ENTRY(SEP),
+ ENTRY(ARCA), ENTRY(UNICORE),
+ ENTRY(EXCESS), ENTRY(DXP),
+ ENTRY(ALTERA_NIOS2), ENTRY(CRX),
+ ENTRY(XGATE), ENTRY(C166),
+ ENTRY(M16C), ENTRY(DSPIC30F),
+ ENTRY(CE), ENTRY(M32C),
+ ENTRY(TSK3000), ENTRY(RS08),
+ ENTRY(SHARC), ENTRY(ECOG2),
+ ENTRY(SCORE7), ENTRY(DSP24),
+ ENTRY(VIDEOCORE3), ENTRY(LATTICEMICO32),
+ ENTRY(SE_C17), ENTRY(TI_C6000),
+ ENTRY(TI_C2000), ENTRY(TI_C5500),
+ ENTRY(MMDSP_PLUS), ENTRY(CYPRESS_M8C),
+ ENTRY(R32C), ENTRY(TRIMEDIA),
+ ENTRY(HEXAGON), ENTRY(M8051),
+ ENTRY(STXP7X), ENTRY(NDS32),
+ ENTRY(ECOG1), ENTRY(ECOG1X),
+ ENTRY(MAXQ30), ENTRY(XIMO16),
+ ENTRY(MANIK), ENTRY(CRAYNV2),
+ ENTRY(RX), ENTRY(METAG),
+ ENTRY(MCST_ELBRUS), ENTRY(ECOG16),
+ ENTRY(CR16), ENTRY(ETPU),
+ ENTRY(SLE9X), ENTRY(L10M),
+ ENTRY(K10M), ENTRY(AARCH64),
+ ENTRY(AVR32), ENTRY(STM8),
+ ENTRY(TILE64), ENTRY(TILEPRO),
+ ENTRY(CUDA), ENTRY(TILEGX),
+ ENTRY(CLOUDSHIELD), ENTRY(COREA_1ST),
+ ENTRY(COREA_2ND), ENTRY(ARC_COMPACT2),
+ ENTRY(OPEN8), ENTRY(RL78),
+ ENTRY(VIDEOCORE5), ENTRY(M78KOR),
+ ENTRY(M56800EX), ENTRY(BA1),
+ ENTRY(BA2), ENTRY(XCORE),
+ ENTRY(MCHP_PIC), ENTRY(INTEL205),
+ ENTRY(INTEL206), ENTRY(INTEL207),
+ ENTRY(INTEL208), ENTRY(INTEL209),
+ ENTRY(KM32), ENTRY(KMX32),
+ ENTRY(KMX16), ENTRY(KMX8),
+ ENTRY(KVARC), ENTRY(CDP),
+ ENTRY(COGE), ENTRY(COOL),
+ ENTRY(NORC), ENTRY(CSR_KALIMBA),
+ ENTRY(AMDGPU), ENTRY(RISCV),
+ ENTRY(BPF), ENTRY(CSKY),
+ ENTRY(LOONGARCH), ENTRY(ALPHA_ALT),
};
- #undef ENTRY
+#undef ENTRY
const auto it = enums2str.find(e);
return it == enums2str.end() ? "UNDEFINED" : it->second;
}
-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/ExeLayout.hpp b/deps/LIEF/src/ELF/ExeLayout.hpp
index f9a39e10e54..3fd142f8813 100644
--- a/deps/LIEF/src/ELF/ExeLayout.hpp
+++ b/deps/LIEF/src/ELF/ExeLayout.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,6 +24,8 @@
#include <LIEF/ELF/DynamicEntryRpath.hpp>
#include <LIEF/ELF/DynamicEntryRunPath.hpp>
#include <LIEF/ELF/DynamicSharedObject.hpp>
+#include <LIEF/ELF/DynamicEntryAuxiliary.hpp>
+#include <LIEF/ELF/DynamicEntryFilter.hpp>
#include <LIEF/ELF/SymbolVersionDefinition.hpp>
#include <LIEF/ELF/SymbolVersionAux.hpp>
#include <LIEF/ELF/SymbolVersionRequirement.hpp>
@@ -46,28 +48,20 @@
#include "logging.hpp"
#include "Layout.hpp"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
inline Relocation::TYPE relative_from_arch(ARCH arch) {
using TYPE = Relocation::TYPE;
switch (arch) {
- case ARCH::AARCH64:
- return TYPE::AARCH64_RELATIVE;
- case ARCH::ARM:
- return TYPE::ARM_RELATIVE;
- case ARCH::X86_64:
- return TYPE::X86_64_RELATIVE;
- case ARCH::I386:
- return TYPE::X86_RELATIVE;
- case ARCH::PPC:
- return TYPE::PPC_RELATIVE;
- case ARCH::PPC64:
- return TYPE::PPC64_RELATIVE;
- case ARCH::HEXAGON:
- return TYPE::HEX_RELATIVE;
- default:
- return TYPE::UNKNOWN;
+ case ARCH::AARCH64: return TYPE::AARCH64_RELATIVE;
+ case ARCH::ARM: return TYPE::ARM_RELATIVE;
+ case ARCH::X86_64: return TYPE::X86_64_RELATIVE;
+ case ARCH::I386: return TYPE::X86_RELATIVE;
+ case ARCH::PPC: return TYPE::PPC_RELATIVE;
+ case ARCH::PPC64: return TYPE::PPC64_RELATIVE;
+ case ARCH::HEXAGON: return TYPE::HEX_RELATIVE;
+ default: return TYPE::UNKNOWN;
}
return TYPE::UNKNOWN;
}
@@ -79,7 +73,8 @@ class LIEF_LOCAL ExeLayout : public Layout {
struct sym_verdef_info_t {
using list_names_t = std::vector<std::string>;
std::set<list_names_t> names_list;
- std::unordered_map<const SymbolVersionDefinition*, const list_names_t*> def_to_names;
+ std::unordered_map<const SymbolVersionDefinition*, const list_names_t*>
+ def_to_names;
std::unordered_map<const list_names_t*, size_t> names_offset;
};
using Layout::Layout;
@@ -93,7 +88,8 @@ class LIEF_LOCAL ExeLayout : public Layout {
template<class ELF_T>
size_t dynamic_size() {
// The size of the .dynamic / PT_DYNAMIC area
- // is the number of elements times the size of each element (Elf64_Dyn or Elf32_Dyn)
+ // is the number of elements times the size of each element (Elf64_Dyn or
+ // Elf32_Dyn)
using Elf_Dyn = typename ELF_T::Elf_Dyn;
return binary_->dynamic_entries_.size() * sizeof(Elf_Dyn);
}
@@ -118,47 +114,62 @@ class LIEF_LOCAL ExeLayout : public Layout {
std::vector<std::string> opt_list;
std::transform(binary_->dynamic_symbols_.begin(),
- binary_->dynamic_symbols_.end(),
- std::back_inserter(opt_list),
- [] (const std::unique_ptr<Symbol>& sym) {
- return sym->name();
- });
+ binary_->dynamic_symbols_.end(), std::back_inserter(opt_list),
+ [](const std::unique_ptr<Symbol>& sym) { return sym->name(); });
for (std::unique_ptr<DynamicEntry>& entry : binary_->dynamic_entries_) {
switch (entry->tag()) {
- case DynamicEntry::TAG::NEEDED:
+ case DynamicEntry::TAG::NEEDED:
{
const std::string& name = entry->as<DynamicEntryLibrary>()->name();
opt_list.push_back(name);
break;
}
- case DynamicEntry::TAG::SONAME:
+ case DynamicEntry::TAG::SONAME:
{
const std::string& name = entry->as<DynamicSharedObject>()->name();
opt_list.push_back(name);
break;
}
- case DynamicEntry::TAG::RPATH:
+ case DynamicEntry::TAG::AUXILIARY:
+ {
+ const std::string& name = entry->as<DynamicEntryAuxiliary>()->name();
+ opt_list.push_back(name);
+ break;
+ }
+
+ case DynamicEntry::TAG::FILTER:
+ {
+ const std::string& name = entry->as<DynamicEntryFilter>()->name();
+ opt_list.push_back(name);
+ break;
+ }
+
+ case DynamicEntry::TAG::RPATH:
{
const std::string& name = entry->as<DynamicEntryRpath>()->rpath();
opt_list.push_back(name);
break;
}
- case DynamicEntry::TAG::RUNPATH:
+ case DynamicEntry::TAG::RUNPATH:
{
const std::string& name = entry->as<DynamicEntryRunPath>()->runpath();
opt_list.push_back(name);
break;
}
- default: {}
+ default:
+ {
+ }
}
}
// Symbol definition
- for (const SymbolVersionDefinition& svd: binary_->symbols_version_definition()) {
+ for (const SymbolVersionDefinition& svd :
+ binary_->symbols_version_definition())
+ {
sym_verdef_info_t::list_names_t aux_names;
auto saux = svd.symbols_aux();
aux_names.reserve(saux.size());
@@ -172,7 +183,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
}
// Symbol version requirement
- for (const SymbolVersionRequirement& svr: binary_->symbols_version_requirement()) {
+ for (const SymbolVersionRequirement& svr :
+ binary_->symbols_version_requirement())
+ {
const std::string& libname = svr.name();
opt_list.push_back(libname);
for (const SymbolVersionAuxRequirement& svar : svr.auxiliary_symbols()) {
@@ -183,9 +196,10 @@ class LIEF_LOCAL ExeLayout : public Layout {
size_t offset_counter = raw_dynstr.tellp();
- std::vector<std::string> string_table_optimized = optimize(opt_list,
- [] (const std::string& name) { return name; },
- offset_counter, &offset_name_map_);
+ std::vector<std::string> string_table_optimized = optimize(
+ opt_list, [](const std::string& name) { return name; }, offset_counter,
+ &offset_name_map_
+ );
for (const std::string& name : string_table_optimized) {
raw_dynstr.write(name);
@@ -254,7 +268,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
}
if (description.size() % sizeof(uint32_t) != 0) {
uint32_t padded = 0;
- auto *ptr = reinterpret_cast<uint8_t*>(&padded);
+ auto* ptr = reinterpret_cast<uint8_t*>(&padded);
memcpy(ptr, desc_ptr + i, description.size() % sizeof(uint32_t));
raw_notes.write<uint32_t>(padded);
}
@@ -272,8 +286,8 @@ class LIEF_LOCAL ExeLayout : public Layout {
}
nchain_ = sysv_hash->nchain();
if (nchain_ != binary_->dynamic_symbols_.size()) {
- LIEF_DEBUG("nchain of .hash section changes from {:d} to {:d}",
- nchain_, binary_->dynamic_symbols_.size());
+ LIEF_DEBUG("nchain of .hash section changed from {:d} to {:d}", nchain_,
+ binary_->dynamic_symbols_.size());
nchain_ = binary_->dynamic_symbols_.size();
}
return (sysv_hash->nbucket() + nchain_ + /* header */ 2) * sizeof(uint32_t);
@@ -312,9 +326,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
}
const uint32_t nb_buckets = gnu_hash->nb_buckets();
- const uint32_t symndx = first_exported_symbol_index;
- const uint32_t maskwords = gnu_hash->maskwords();
- const uint32_t shift2 = gnu_hash->shift2();
+ const uint32_t symndx = first_exported_symbol_index;
+ const uint32_t maskwords = gnu_hash->maskwords();
+ const uint32_t shift2 = gnu_hash->shift2();
const std::vector<uint64_t>& filters = gnu_hash->bloom_filters();
if (!filters.empty() && filters[0] == 0) {
@@ -325,34 +339,34 @@ class LIEF_LOCAL ExeLayout : public Layout {
LIEF_DEBUG("Shift2 is null");
}
- LIEF_DEBUG("Number of buckets : 0x{:x}", nb_buckets);
- LIEF_DEBUG("First symbol idx : 0x{:x}", symndx);
- LIEF_DEBUG("Number of bloom filters : 0x{:x}", maskwords);
- LIEF_DEBUG("Shift : 0x{:x}", shift2);
+ LIEF_DEBUG("Number of buckets : {:#x}", nb_buckets);
+ LIEF_DEBUG("First symbol idx : {:#x}", symndx);
+ LIEF_DEBUG("Number of bloom filters : {:#x}", maskwords);
+ LIEF_DEBUG("Shift : {:#x}", shift2);
// MANDATORY !
- std::stable_sort(
- std::begin(binary_->dynamic_symbols_) + symndx, std::end(binary_->dynamic_symbols_),
- [&nb_buckets] (const std::unique_ptr<Symbol>& lhs, const std::unique_ptr<Symbol>& rhs) {
- return (dl_new_hash(lhs->name().c_str()) % nb_buckets) <
- (dl_new_hash(rhs->name().c_str()) % nb_buckets);
- });
+ std::stable_sort(binary_->dynamic_symbols_.begin() + symndx,
+ binary_->dynamic_symbols_.end(),
+ [&nb_buckets](const std::unique_ptr<Symbol>& lhs,
+ const std::unique_ptr<Symbol>& rhs) {
+ return (dl_new_hash(lhs->name().c_str()) % nb_buckets) <
+ (dl_new_hash(rhs->name().c_str()) % nb_buckets);
+ });
Binary::it_dynamic_symbols dynamic_symbols = binary_->dynamic_symbols();
vector_iostream raw_gnuhash(should_swap());
- raw_gnuhash.reserve(
- 4 * sizeof(uint32_t) + // header
- maskwords * sizeof(uint) + // bloom filters
- nb_buckets * sizeof(uint32_t) + // buckets
- (dynamic_symbols.size() - symndx) * sizeof(uint32_t)); // hash values
+ raw_gnuhash.reserve(4 * sizeof(uint32_t) + // header
+ maskwords * sizeof(uint) + // bloom filters
+ nb_buckets * sizeof(uint32_t) + // buckets
+ (dynamic_symbols.size() - symndx) *
+ sizeof(uint32_t)); // hash values
// Write header
// =================================
- raw_gnuhash
- .write<uint32_t>(nb_buckets)
- .write<uint32_t>(symndx)
- .write<uint32_t>(maskwords)
- .write<uint32_t>(shift2);
+ raw_gnuhash.write<uint32_t>(nb_buckets)
+ .write<uint32_t>(symndx)
+ .write<uint32_t>(maskwords)
+ .write<uint32_t>(shift2);
// Compute Bloom filters
// =================================
@@ -367,7 +381,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
bloom_filters[pos] |= V;
}
for (size_t idx = 0; idx < bloom_filters.size(); ++idx) {
- LIEF_DEBUG("Bloom filter [{:d}]: 0x{:x}", idx, bloom_filters[idx]);
+ LIEF_DEBUG("Bloom filter [{:d}]: {:#x}", idx, bloom_filters[idx]);
}
raw_gnuhash.write(bloom_filters);
@@ -380,7 +394,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
std::vector<uint32_t> hash_values(dynamic_symbols.size() - symndx, 0);
for (size_t i = symndx; i < dynamic_symbols.size(); ++i) {
- LIEF_DEBUG("Dealing with symbol {}", to_string(dynamic_symbols[i]));
+ LIEF_DEBUG("Processing symbol {}", dynamic_symbols[i].name());
const uint32_t hash = dl_new_hash(dynamic_symbols[i].name().c_str());
int bucket = hash % nb_buckets;
@@ -406,9 +420,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
hash_values[hash_value_idx - 1] |= 1;
}
- raw_gnuhash
- .write(buckets)
- .write(hash_values);
+ raw_gnuhash.write(buckets).write(hash_values);
raw_gnuhash.move(raw_gnu_hash_);
return raw_gnu_hash_.size();
}
@@ -416,32 +428,34 @@ class LIEF_LOCAL ExeLayout : public Layout {
template<class ELF_T>
size_t dynamic_relocations_size() {
using Elf_Rela = typename ELF_T::Elf_Rela;
- using Elf_Rel = typename ELF_T::Elf_Rel;
- const Binary::it_dynamic_relocations& dyn_relocs = binary_->dynamic_relocations();
+ using Elf_Rel = typename ELF_T::Elf_Rel;
+ const Binary::it_dynamic_relocations& dyn_relocs =
+ binary_->dynamic_relocations();
const size_t nb_rel_a = std::count_if(dyn_relocs.begin(), dyn_relocs.end(),
- [] (const Relocation& R) {
- return R.is_rel() || R.is_rela();
- }
- );
+ [](const Relocation& R) {
+ return R.is_rel() || R.is_rela();
+ });
const size_t computed_size = binary_->has(DynamicEntry::TAG::RELA) ?
- nb_rel_a * sizeof(Elf_Rela) :
- nb_rel_a * sizeof(Elf_Rel);
+ nb_rel_a * sizeof(Elf_Rela) :
+ nb_rel_a * sizeof(Elf_Rel);
return computed_size;
}
template<class ELF_T>
size_t pltgot_relocations_size() {
- using Elf_Rela = typename ELF_T::Elf_Rela;
- using Elf_Rel = typename ELF_T::Elf_Rel;
- const Binary::it_pltgot_relocations& pltgot_relocs = binary_->pltgot_relocations();
+ using Elf_Rela = typename ELF_T::Elf_Rela;
+ using Elf_Rel = typename ELF_T::Elf_Rel;
+ const Binary::it_pltgot_relocations& pltgot_relocs =
+ binary_->pltgot_relocations();
const DynamicEntry* dt_rela = binary_->get(DynamicEntry::TAG::PLTREL);
const ARCH arch = binary_->header().machine_type();
- const bool is_rela = dt_rela != nullptr &&
- DynamicEntry::from_value(dt_rela->value(), arch) == DynamicEntry::TAG::RELA;
+ const bool is_rela =
+ dt_rela != nullptr && DynamicEntry::from_value(dt_rela->value(), arch) ==
+ DynamicEntry::TAG::RELA;
if (is_rela) {
return pltgot_relocs.size() * sizeof(Elf_Rela);
@@ -456,11 +470,13 @@ class LIEF_LOCAL ExeLayout : public Layout {
template<class ELF_T>
size_t symbol_vdef_size() {
- using Elf_Verdef = typename ELF_T::Elf_Verdef;
+ using Elf_Verdef = typename ELF_T::Elf_Verdef;
using Elf_Verdaux = typename ELF_T::Elf_Verdaux;
CHECK_FATAL(!binary_->symbols_version_definition().empty() &&
- verdef_info_.def_to_names.empty(), "Inconsistent state");
- size_t computed_size = binary_->symbols_version_definition().size() * sizeof(Elf_Verdef);
+ verdef_info_.def_to_names.empty(),
+ "Inconsistent state");
+ size_t computed_size =
+ binary_->symbols_version_definition().size() * sizeof(Elf_Verdef);
for (const sym_verdef_info_t::list_names_t& names : verdef_info_.names_list) {
computed_size += sizeof(Elf_Verdaux) * names.size();
@@ -473,8 +489,11 @@ class LIEF_LOCAL ExeLayout : public Layout {
using Elf_Verneed = typename ELF_T::Elf_Verneed;
using Elf_Vernaux = typename ELF_T::Elf_Vernaux;
size_t computed_size = 0;
- for (const SymbolVersionRequirement& svr: binary_->symbols_version_requirement()) {
- computed_size += sizeof(Elf_Verneed) + svr.auxiliary_symbols().size() * sizeof(Elf_Vernaux);
+ for (const SymbolVersionRequirement& svr :
+ binary_->symbols_version_requirement())
+ {
+ computed_size += sizeof(Elf_Verneed) +
+ svr.auxiliary_symbols().size() * sizeof(Elf_Vernaux);
}
return computed_size;
}
@@ -488,10 +507,10 @@ class LIEF_LOCAL ExeLayout : public Layout {
template<class ELF_T>
size_t android_relocations_size(bool force = false) {
- static constexpr uint64_t GROUPED_BY_INFO_FLAG = 1 << 0;
+ static constexpr uint64_t GROUPED_BY_INFO_FLAG = 1 << 0;
static constexpr uint64_t GROUPED_BY_OFFSET_DELTA_FLAG = 1 << 1;
/* static constexpr uint64_t GROUPED_BY_ADDEND_FLAG = 1 << 2; */
- static constexpr uint64_t GROUP_HAS_ADDEND_FLAG = 1 << 3;
+ static constexpr uint64_t GROUP_HAS_ADDEND_FLAG = 1 << 3;
using Elf_Xword = typename ELF_T::Elf_Xword;
@@ -500,11 +519,13 @@ class LIEF_LOCAL ExeLayout : public Layout {
// AndroidPackedRelocationSection:updateAllocSize
constexpr size_t wordsize = sizeof(typename ELF_T::Elf_Addr);
const bool is_rela = binary_->has(DynamicEntry::TAG::ANDROID_RELA);
- const Relocation::TYPE relative_reloc = relative_from_arch(binary_->header().machine_type());
+ const Relocation::TYPE relative_reloc =
+ relative_from_arch(binary_->header().machine_type());
const uint64_t raw_relative_reloc = Relocation::to_value(relative_reloc);
const Header::CLASS elf_class = std::is_same_v<ELF_T, details::ELF32> ?
- Header::CLASS::ELF32 : Header::CLASS::ELF64;
+ Header::CLASS::ELF32 :
+ Header::CLASS::ELF64;
if (force) {
raw_android_rela_.clear();
@@ -529,10 +550,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
}
std::sort(relative_rels.begin(), relative_rels.end(),
- [] (const Relocation* lhs, const Relocation* rhs) {
- return lhs->address() < rhs->address();
- }
- );
+ [](const Relocation* lhs, const Relocation* rhs) {
+ return lhs->address() < rhs->address();
+ });
std::vector<const Relocation*> ungrouped_relative;
std::vector<std::vector<const Relocation*>> relative_groups;
@@ -543,8 +563,8 @@ class LIEF_LOCAL ExeLayout : public Layout {
} while (i != e && (*(i - 1))->address() + wordsize == (*i)->address());
if (group.size() < 8) {
- ungrouped_relative.insert(ungrouped_relative.end(),
- group.begin(), group.end());
+ ungrouped_relative.insert(ungrouped_relative.end(), group.begin(),
+ group.end());
} else {
relative_groups.emplace_back(std::move(group));
}
@@ -552,22 +572,20 @@ class LIEF_LOCAL ExeLayout : public Layout {
std::sort(non_relative_rels.begin(), non_relative_rels.end(),
- [elf_class] (const Relocation* lhs, const Relocation* rhs) {
- if (lhs->r_info(elf_class) != rhs->r_info(elf_class)) {
- return lhs->r_info(elf_class) < rhs->r_info(elf_class);
- }
- if (lhs->addend() != rhs->addend()) {
- return lhs->addend() < rhs->addend();
- }
- return lhs->address() < rhs->address();
- }
- );
+ [elf_class](const Relocation* lhs, const Relocation* rhs) {
+ if (lhs->r_info(elf_class) != rhs->r_info(elf_class)) {
+ return lhs->r_info(elf_class) < rhs->r_info(elf_class);
+ }
+ if (lhs->addend() != rhs->addend()) {
+ return lhs->addend() < rhs->addend();
+ }
+ return lhs->address() < rhs->address();
+ });
std::vector<const Relocation*> ungrouped_non_relative;
std::vector<std::vector<const Relocation*>> non_relative_group;
- for (auto i = non_relative_rels.begin(),
- e = non_relative_rels.end(); i != e;)
+ for (auto i = non_relative_rels.begin(), e = non_relative_rels.end(); i != e;)
{
auto j = i + 1;
while (j != e && (*i)->r_info(elf_class) == (*j)->r_info(elf_class) &&
@@ -585,20 +603,16 @@ class LIEF_LOCAL ExeLayout : public Layout {
}
std::sort(ungrouped_non_relative.begin(), ungrouped_non_relative.end(),
- [] (const Relocation* lhs, const Relocation* rhs) {
- return lhs->address() < rhs->address();
- }
- );
+ [](const Relocation* lhs, const Relocation* rhs) {
+ return lhs->address() < rhs->address();
+ });
const unsigned has_addend_with_rela = is_rela ? GROUP_HAS_ADDEND_FLAG : 0;
uint64_t offset = 0;
uint64_t addend = 0;
vector_iostream ios(should_swap());
- ios.write('A')
- .write('P')
- .write('S')
- .write('2');
+ ios.write('A').write('P').write('S').write('2');
ios.write_sleb128(android_relocs.size());
ios.write_sleb128(0);
@@ -620,7 +634,8 @@ class LIEF_LOCAL ExeLayout : public Layout {
ios.write_sleb128(wordsize);
ios.write_sleb128(raw_relative_reloc);
if (is_rela) {
- auto it = g.begin(); ++it;
+ auto it = g.begin();
+ ++it;
for (; it != g.end(); ++it) {
ios.write_sleb128((*it)->addend() - addend);
addend = (*it)->addend();
@@ -643,7 +658,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
}
}
- for (const std::vector<const Relocation*>& g: non_relative_group) {
+ for (const std::vector<const Relocation*>& g : non_relative_group) {
ios.write_sleb128(g.size());
ios.write_sleb128(GROUPED_BY_INFO_FLAG);
ios.write_sleb128(static_cast<Elf_Xword>(g[0]->r_info(elf_class)));
@@ -856,9 +871,10 @@ class LIEF_LOCAL ExeLayout : public Layout {
interp_segment.add(Segment::FLAGS::R);
interp_segment.content(std::vector<uint8_t>(interp_size_));
if (Segment* interp = binary_->add(interp_segment)) {
- LIEF_DEBUG("Interp Segment: 0x{:x}:0x{:x}", interp->virtual_address(), interp->virtual_size());
+ LIEF_DEBUG("Interp Segment: {:#x}:{:#x}", interp->virtual_address(),
+ interp->virtual_size());
} else {
- LIEF_ERR("Can't add a new PT_INTERP");
+ LIEF_ERR("Failed to add PT_INTERP segment");
}
}
@@ -877,9 +893,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
* .relr.dyn
* Perm: READ ONLY
*/
- uint64_t read_segment = interp_size_ + sysv_size_ + dynsym_size_ +
- sver_size_ + sverd_size_ + sverr_size_ +
- dynamic_reloc_size_ + pltgot_reloc_size_;
+ uint64_t read_segment = interp_size_ + sysv_size_ + dynsym_size_ + sver_size_ +
+ sverd_size_ + sverr_size_ + dynamic_reloc_size_ +
+ pltgot_reloc_size_;
if (relocate_relr_) {
read_segment += raw_relr_.size();
}
@@ -908,12 +924,12 @@ class LIEF_LOCAL ExeLayout : public Layout {
rsegment.add(Segment::FLAGS::R);
rsegment.content(std::vector<uint8_t>(read_segment));
new_rsegment = binary_->add(rsegment);
- if (new_rsegment != nullptr) {
- LIEF_DEBUG("R-Segment: 0x{:x}:0x{:x}", new_rsegment->virtual_address(), new_rsegment->virtual_size());
- } else {
- LIEF_ERR("Can't add a new R-Segment");
+ if (new_rsegment == nullptr) {
+ LIEF_ERR("Failed to add R-segment");
return make_error_code(lief_errors::build_error);
}
+ LIEF_DEBUG("R-Segment: {:#06x}:{:#06x}", new_rsegment->virtual_address(),
+ new_rsegment->virtual_size());
}
/* Segment 2
@@ -927,7 +943,8 @@ class LIEF_LOCAL ExeLayout : public Layout {
* .got.plt
* Perm: READ | WRITE
*/
- const uint64_t read_write_segment = init_size_ + preinit_size_ + fini_size_ + dynamic_size_ ;
+ const uint64_t read_write_segment =
+ init_size_ + preinit_size_ + fini_size_ + dynamic_size_;
Segment* new_rwsegment = nullptr;
Segment rwsegment;
@@ -937,45 +954,51 @@ class LIEF_LOCAL ExeLayout : public Layout {
rwsegment.content(std::vector<uint8_t>(read_write_segment));
new_rwsegment = binary_->add(rwsegment);
if (new_rwsegment != nullptr) {
- LIEF_DEBUG("RW-Segment: 0x{:x}:0x{:x}", new_rwsegment->virtual_address(), new_rwsegment->virtual_size());
+ LIEF_DEBUG("RW-Segment: {:#x}:{:#x}", new_rwsegment->virtual_address(),
+ new_rwsegment->virtual_size());
} else {
- LIEF_ERR("Can't add a new RW-Segment");
+ LIEF_ERR("Failed to add RW-segment");
return make_error_code(lief_errors::build_error);
}
}
if (relocate_shstrtab_) {
- LIEF_DEBUG("[-] Relocate .shstrtab");
+ LIEF_DEBUG("Relocating .shstrtab");
// Remove the current .shstrtab section
Header& hdr = binary_->header();
if (hdr.section_name_table_idx() >= binary_->sections_.size()) {
- LIEF_ERR("Sections' names table index is out of range");
+ LIEF_ERR("Section names table index out of range");
return make_error_code(lief_errors::file_format_error);
}
- std::unique_ptr<Section>& string_names_section = binary_->sections_[hdr.section_name_table_idx()];
+ std::unique_ptr<Section>& string_names_section =
+ binary_->sections_[hdr.section_name_table_idx()];
std::string sec_name = binary_->shstrtab_name();
binary_->remove(*string_names_section, /* clear */ true);
Section sec_str_section(sec_name, Section::TYPE::STRTAB);
sec_str_section.content(std::vector<uint8_t>(raw_shstrtab_.size()));
- binary_->add(sec_str_section, /*loaded=*/false,
- /*pos=*/Binary::SEC_INSERT_POS::POST_SECTION);
-
- // Default behavior: push_back => index = binary_->sections_.size() - 1
- hdr.section_name_table_idx(binary_->sections_.size() - 1);
+ Section* sec = binary_->add(sec_str_section, /*loaded=*/false,
+ /*pos=*/Binary::SEC_INSERT_POS::POST_SECTION);
+ if (sec != nullptr) {
+ if (auto idx = binary_->get_section_idx(*sec)) {
+ hdr.section_name_table_idx(*idx);
+ }
+ }
}
for (std::unique_ptr<Relocation>& reloc : binary_->relocations_) {
relocations_addresses_[reloc->address()] = reloc.get();
}
- [[maybe_unused]] uint64_t va_r_base = new_rsegment != nullptr ? new_rsegment->virtual_address() : 0;
- [[maybe_unused]] uint64_t va_rw_base = new_rwsegment != nullptr ? new_rwsegment->virtual_address() : 0;
+ [[maybe_unused]] uint64_t va_r_base =
+ new_rsegment != nullptr ? new_rsegment->virtual_address() : 0;
+ [[maybe_unused]] uint64_t va_rw_base =
+ new_rwsegment != nullptr ? new_rwsegment->virtual_address() : 0;
if (interp_size_ > 0) {
Segment* pt_interp = binary_->get(Segment::TYPE::INTERP);
if (pt_interp == nullptr) {
- LIEF_ERR("Can't find the PT_INTERP segment.");
+ LIEF_ERR("PT_INTERP segment not found");
return make_error_code(lief_errors::file_format_error);
}
@@ -1004,13 +1027,12 @@ class LIEF_LOCAL ExeLayout : public Layout {
}
va_r_base += interp_size_;
-
}
if (relocate_notes_) {
Segment* note_segment = binary_->get(Segment::TYPE::NOTE);
if (note_segment == nullptr) {
- LIEF_ERR("Can't find the PT_NOTE segment");
+ LIEF_ERR("PT_NOTE segment not found");
return make_error_code(lief_errors::file_format_error);
}
note_segment->virtual_address(va_r_base);
@@ -1034,7 +1056,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
// Update relocations associated with .init_array etc
Segment* dynamic_segment = binary_->get(Segment::TYPE::DYNAMIC);
if (dynamic_segment == nullptr) {
- LIEF_ERR("Can't find the dynamic section/segment");
+ LIEF_ERR("Dynamic section/segment not found");
return make_error_code(lief_errors::file_format_error);
}
@@ -1066,7 +1088,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
DynamicEntry* dt_symtab = binary_->get(DynamicEntry::TAG::SYMTAB);
if (dt_symtab == nullptr) {
- LIEF_ERR("Can't find DT_SYMTAB");
+ LIEF_ERR("DT_SYMTAB not found");
return make_error_code(lief_errors::file_format_error);
}
@@ -1077,7 +1099,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
return make_error_code(lief_errors::build_error);
}
- if (Section* section = binary_->section_from_virtual_address(dt_symtab->value())) {
+ if (Section* section =
+ binary_->section_from_virtual_address(dt_symtab->value()))
+ {
section->virtual_address(va_r_base);
section->size(dynsym_size_);
section->offset(offset_r_base);
@@ -1091,11 +1115,11 @@ class LIEF_LOCAL ExeLayout : public Layout {
if (relocate_dynstr_) {
// Update .dynstr section, DT_SYMTAB, DT_STRSZ
- DynamicEntry* dt_strtab = binary_->get(DynamicEntry::TAG::STRTAB);
+ DynamicEntry* dt_strtab = binary_->get(DynamicEntry::TAG::STRTAB);
DynamicEntry* dt_strsize = binary_->get(DynamicEntry::TAG::STRSZ);
if (dt_strtab == nullptr || dt_strsize == nullptr) {
- LIEF_ERR("Can't find DT_STRTAB/DT_STRSZ");
+ LIEF_ERR("DT_STRTAB/DT_STRSZ not found");
return make_error_code(lief_errors::file_format_error);
}
@@ -1106,7 +1130,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
return make_error_code(lief_errors::build_error);
}
- if (Section* section = binary_->section_from_virtual_address(dt_strtab->value())) {
+ if (Section* section =
+ binary_->section_from_virtual_address(dt_strtab->value()))
+ {
section->virtual_address(va_r_base);
section->size(raw_dynstr_.size());
section->offset(offset_r_base);
@@ -1123,7 +1149,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
if (sver_size_ > 0) {
DynamicEntry* dt_versym = binary_->get(DynamicEntry::TAG::VERSYM);
if (dt_versym == nullptr) {
- LIEF_ERR("Can't find DT_VERSYM");
+ LIEF_ERR("DT_VERSYM not found");
return make_error_code(lief_errors::file_format_error);
}
@@ -1134,7 +1160,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
return make_error_code(lief_errors::build_error);
}
- if (Section* section = binary_->section_from_virtual_address(dt_versym->value())) {
+ if (Section* section =
+ binary_->section_from_virtual_address(dt_versym->value()))
+ {
section->virtual_address(va_r_base);
section->size(sver_size_);
section->offset(offset_r_base);
@@ -1150,7 +1178,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
DynamicEntry* dt_verdef = binary_->get(DynamicEntry::TAG::VERDEF);
if (dt_verdef == nullptr) {
- LIEF_ERR("Can't find DT_VERDEF");
+ LIEF_ERR("DT_VERDEF not found");
return make_error_code(lief_errors::file_format_error);
}
@@ -1161,7 +1189,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
return make_error_code(lief_errors::build_error);
}
- if (Section* section = binary_->section_from_virtual_address(dt_verdef->value())) {
+ if (Section* section =
+ binary_->section_from_virtual_address(dt_verdef->value()))
+ {
section->virtual_address(va_r_base);
section->size(sverd_size_);
section->offset(offset_r_base);
@@ -1177,7 +1207,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
DynamicEntry* dt_verreq = binary_->get(DynamicEntry::TAG::VERNEED);
if (dt_verreq == nullptr) {
- LIEF_ERR("Can't find DT_VERNEED");
+ LIEF_ERR("DT_VERNEED not found");
return make_error_code(lief_errors::file_format_error);
}
@@ -1188,7 +1218,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
return make_error_code(lief_errors::build_error);
}
- if (Section* section = binary_->section_from_virtual_address(dt_verreq->value())) {
+ if (Section* section =
+ binary_->section_from_virtual_address(dt_verreq->value()))
+ {
section->virtual_address(va_r_base);
section->size(sverr_size_);
section->offset(offset_r_base);
@@ -1209,12 +1241,14 @@ class LIEF_LOCAL ExeLayout : public Layout {
DynamicEntry* dt_rela = binary_->get(DynamicEntry::TAG::RELA);
const bool is_rela = dt_rela != nullptr;
- DynamicEntry* dt_reloc = is_rela ? dt_rela : binary_->get(DynamicEntry::TAG::REL);
- DynamicEntry* dt_relocsz = is_rela ? binary_->get(DynamicEntry::TAG::RELASZ) :
- binary_->get(DynamicEntry::TAG::RELSZ);
+ DynamicEntry* dt_reloc =
+ is_rela ? dt_rela : binary_->get(DynamicEntry::TAG::REL);
+ DynamicEntry* dt_relocsz = is_rela ?
+ binary_->get(DynamicEntry::TAG::RELASZ) :
+ binary_->get(DynamicEntry::TAG::RELSZ);
if (dt_reloc == nullptr || dt_relocsz == nullptr) {
- LIEF_ERR("Can't find DT_REL(A) / DT_REL(A)SZ");
+ LIEF_ERR("DT_REL(A)/DT_REL(A)SZ not found");
return make_error_code(lief_errors::file_format_error);
}
@@ -1226,7 +1260,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
return make_error_code(lief_errors::build_error);
}
- if (Section* section = binary_->section_from_virtual_address(dt_reloc->value())) {
+ if (Section* section =
+ binary_->section_from_virtual_address(dt_reloc->value()))
+ {
section->virtual_address(va_r_base);
section->size(dynamic_reloc_size_);
section->offset(offset_r_base);
@@ -1247,7 +1283,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
DynamicEntry* dt_relocsz = binary_->get(DynamicEntry::TAG::PLTRELSZ);
if (dt_reloc == nullptr || dt_relocsz == nullptr) {
- LIEF_ERR("Can't find DT_JMPREL, DT_PLTRELSZ");
+ LIEF_ERR("DT_JMPREL/DT_PLTRELSZ not found");
return make_error_code(lief_errors::file_format_error);
}
@@ -1258,7 +1294,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
return make_error_code(lief_errors::build_error);
}
- if (Section* section = binary_->section_from_virtual_address(dt_reloc->value())) {
+ if (Section* section =
+ binary_->section_from_virtual_address(dt_reloc->value()))
+ {
section->virtual_address(va_r_base);
section->size(pltgot_reloc_size_);
section->offset(offset_r_base);
@@ -1275,7 +1313,10 @@ class LIEF_LOCAL ExeLayout : public Layout {
if (relocate_relr_) {
DynamicEntry* dt_relr = binary_->get(DynamicEntry::TAG::RELR);
if (dt_relr == nullptr) {
- LIEF_ERR("Can't find DT_RELR");
+ dt_relr = binary_->get(DynamicEntry::TAG::ANDROID_RELR);
+ }
+ if (dt_relr == nullptr) {
+ LIEF_ERR("DT_RELR/DT_ANDROID_RELR not found");
return make_error_code(lief_errors::file_format_error);
}
@@ -1286,7 +1327,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
return make_error_code(lief_errors::build_error);
}
- if (Section* section = binary_->section_from_virtual_address(dt_relr->value())) {
+ if (Section* section =
+ binary_->section_from_virtual_address(dt_relr->value()))
+ {
section->virtual_address(va_r_base);
section->size(raw_relr_.size());
section->offset(offset_r_base);
@@ -1304,7 +1347,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
}
if (dt_rel == nullptr) {
- LIEF_ERR("Can't find DT_ANDROID_REL[A]");
+ LIEF_ERR("DT_ANDROID_REL[A] not found");
return make_error_code(lief_errors::file_format_error);
}
@@ -1315,7 +1358,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
return make_error_code(lief_errors::build_error);
}
- if (Section* section = binary_->section_from_virtual_address(dt_rel->value())) {
+ if (Section* section =
+ binary_->section_from_virtual_address(dt_rel->value()))
+ {
section->virtual_address(va_r_base);
section->size(raw_android_rela_.size());
section->offset(offset_r_base);
@@ -1331,7 +1376,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
DynamicEntry* dt_gnu_hash = binary_->get(DynamicEntry::TAG::GNU_HASH);
if (dt_gnu_hash == nullptr) {
- LIEF_ERR("Can't find DT_GNU_HASH");
+ LIEF_ERR("DT_GNU_HASH not found");
return make_error_code(lief_errors::file_format_error);
}
@@ -1343,7 +1388,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
return make_error_code(lief_errors::build_error);
}
- if (Section* section = binary_->section_from_virtual_address(dt_gnu_hash->value())) {
+ if (Section* section =
+ binary_->section_from_virtual_address(dt_gnu_hash->value()))
+ {
section->virtual_address(va_r_base);
section->size(raw_gnu_hash_.size());
section->offset(offset_r_base);
@@ -1359,7 +1406,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
DynamicEntry* dt_hash = binary_->get(DynamicEntry::TAG::HASH);
if (dt_hash == nullptr) {
- LIEF_ERR("Can't find DT_HASH");
+ LIEF_ERR("DT_HASH not found");
return make_error_code(lief_errors::file_format_error);
}
@@ -1371,7 +1418,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
return make_error_code(lief_errors::build_error);
}
- if (Section* section = binary_->section_from_virtual_address(dt_hash->value())) {
+ if (Section* section =
+ binary_->section_from_virtual_address(dt_hash->value()))
+ {
section->virtual_address(va_r_base);
section->size(sysv_size_);
section->offset(offset_r_base);
@@ -1385,35 +1434,39 @@ class LIEF_LOCAL ExeLayout : public Layout {
// RW-Segment
// ====================================
- if (init_size_ > 0) { // .init_array
+ if (init_size_ > 0) { // .init_array
DynamicEntry* raw_dt_init = binary_->get(DynamicEntry::TAG::INIT_ARRAY);
if (raw_dt_init == nullptr || !DynamicEntryArray::classof(raw_dt_init)) {
LIEF_ERR("DT_INIT_ARRAY not found");
return make_error_code(lief_errors::file_format_error);
}
auto* dt_init_array = raw_dt_init->as<DynamicEntryArray>();
- DynamicEntry* dt_init_arraysz = binary_->get(DynamicEntry::TAG::INIT_ARRAYSZ);
+ DynamicEntry* dt_init_arraysz =
+ binary_->get(DynamicEntry::TAG::INIT_ARRAYSZ);
if (dt_init_arraysz == nullptr) {
- LIEF_ERR("Can't find DT_INIT_ARRAYSZ");
+ LIEF_ERR("DT_INIT_ARRAYSZ not found");
return make_error_code(lief_errors::file_format_error);
}
// Update relocation range
if (binary_->header().file_type() == Header::FILE_TYPE::DYN) {
- LIEF_WARN("Relocating .init_array might not work on Linux.");
+ LIEF_WARN("Relocating .init_array may not work on Linux");
const std::vector<uint64_t>& array = dt_init_array->array();
const size_t sizeof_p = binary_->type() == Header::CLASS::ELF32 ?
- sizeof(uint32_t) : sizeof(uint64_t);
+ sizeof(uint32_t) :
+ sizeof(uint64_t);
// Since the values of the .init_array have moved elsewhere,
// we need to change the relocation associated with the former .init_array
const uint64_t array_base_address = dt_init_array->value();
for (size_t i = 0; i < array.size(); ++i) {
- auto it_reloc = relocations_addresses_.find(array_base_address + i * sizeof_p);
- if (it_reloc == std::end(relocations_addresses_)) {
- LIEF_ERR("Missing relocation for .init_array[{:d}]: 0x{:x}", i, array[i]);
+ auto it_reloc =
+ relocations_addresses_.find(array_base_address + i * sizeof_p);
+ if (it_reloc == relocations_addresses_.end()) {
+ LIEF_ERR("Missing relocation for .init_array[{:d}]: {:#x}", i,
+ array[i]);
continue;
}
Relocation* reloc = it_reloc->second;
@@ -1442,30 +1495,36 @@ class LIEF_LOCAL ExeLayout : public Layout {
}
if (preinit_size_ > 0) { // .preinit_array
- DynamicEntry* raw_dt_preinit = binary_->get(DynamicEntry::TAG::PREINIT_ARRAY);
- if (raw_dt_preinit == nullptr || !DynamicEntryArray::classof(raw_dt_preinit)) {
+ DynamicEntry* raw_dt_preinit =
+ binary_->get(DynamicEntry::TAG::PREINIT_ARRAY);
+ if (raw_dt_preinit == nullptr || !DynamicEntryArray::classof(raw_dt_preinit))
+ {
LIEF_ERR("DT_PREINIT_ARRAY not found");
return make_error_code(lief_errors::file_format_error);
}
auto* dt_preinit_array = raw_dt_preinit->as<DynamicEntryArray>();
- DynamicEntry* dt_preinit_arraysz = binary_->get(DynamicEntry::TAG::PREINIT_ARRAYSZ);
+ DynamicEntry* dt_preinit_arraysz =
+ binary_->get(DynamicEntry::TAG::PREINIT_ARRAYSZ);
if (dt_preinit_array == nullptr) {
- LIEF_ERR("Can't find DT_PREINIT_ARRAYSZ");
+ LIEF_ERR("DT_PREINIT_ARRAYSZ not found");
return make_error_code(lief_errors::file_format_error);
}
if (binary_->header().file_type() == Header::FILE_TYPE::DYN) {
const std::vector<uint64_t>& array = dt_preinit_array->array();
const size_t sizeof_p = binary_->type() == Header::CLASS::ELF32 ?
- sizeof(uint32_t) : sizeof(uint64_t);
- LIEF_WARN("Relocating .preinit_array might not work on Linux.");
+ sizeof(uint32_t) :
+ sizeof(uint64_t);
+ LIEF_WARN("Relocating .preinit_array may not work on Linux");
const uint64_t array_base_address = dt_preinit_array->value();
for (size_t i = 0; i < array.size(); ++i) {
- auto it_reloc = relocations_addresses_.find(array_base_address + i * sizeof_p);
- if (it_reloc == std::end(relocations_addresses_)) {
- LIEF_ERR("Missing relocation for .preinit_array[{:d}]: 0x{:x}", i, array[i]);
+ auto it_reloc =
+ relocations_addresses_.find(array_base_address + i * sizeof_p);
+ if (it_reloc == relocations_addresses_.end()) {
+ LIEF_ERR("Missing relocation for .preinit_array[{:d}]: {:#x}", i,
+ array[i]);
continue;
}
Relocation* reloc = it_reloc->second;
@@ -1501,25 +1560,29 @@ class LIEF_LOCAL ExeLayout : public Layout {
return make_error_code(lief_errors::file_format_error);
}
auto* dt_fini_array = raw_dt_fini->as<DynamicEntryArray>();
- DynamicEntry* dt_fini_arraysz = binary_->get(DynamicEntry::TAG::FINI_ARRAYSZ);
+ DynamicEntry* dt_fini_arraysz =
+ binary_->get(DynamicEntry::TAG::FINI_ARRAYSZ);
if (dt_fini_arraysz == nullptr) {
- LIEF_ERR("Can't find DT_FINI_ARRAYSZ");
+ LIEF_ERR("DT_FINI_ARRAYSZ not found");
return make_error_code(lief_errors::file_format_error);
}
if (binary_->header().file_type() == Header::FILE_TYPE::DYN) {
const std::vector<uint64_t>& array = dt_fini_array->array();
const size_t sizeof_p = binary_->type() == Header::CLASS::ELF32 ?
- sizeof(uint32_t) : sizeof(uint64_t);
+ sizeof(uint32_t) :
+ sizeof(uint64_t);
- LIEF_WARN("Relocating .fini_array might not work on Linux.");
+ LIEF_WARN("Relocating .fini_array may not work on Linux");
const uint64_t array_base_address = dt_fini_array->value();
for (size_t i = 0; i < array.size(); ++i) {
- auto it_reloc = relocations_addresses_.find(array_base_address + i * sizeof_p);
- if (it_reloc == std::end(relocations_addresses_)) {
- LIEF_ERR("Missing relocation for .fini_array[{:d}]: 0x{:x}", i, array[i]);
+ auto it_reloc =
+ relocations_addresses_.find(array_base_address + i * sizeof_p);
+ if (it_reloc == relocations_addresses_.end()) {
+ LIEF_ERR("Missing relocation for .fini_array[{:d}]: {:#x}", i,
+ array[i]);
continue;
}
Relocation* reloc = it_reloc->second;
@@ -1550,13 +1613,15 @@ class LIEF_LOCAL ExeLayout : public Layout {
// symbol's names associated with debug symbol (not mandatory)
size_t strtab_idx = 0;
if (relocate_strtab_) {
- LIEF_DEBUG("Relocate .strtab");
+ LIEF_DEBUG("Relocating .strtab");
if (is_strtab_shared_shstrtab()) {
- LIEF_ERR("Inconsistency"); // The strtab should be located in the .shstrtab section
+ LIEF_ERR(
+ "Strtab inconsistency"
+ ); // The strtab should be located in the .shstrtab section
return make_error_code(lief_errors::file_format_error);
}
if (strtab_section_ != nullptr) {
- LIEF_DEBUG("Removing the old section: {} 0x{:x} (size: 0x{:x})",
+ LIEF_DEBUG("Removing the old section: {} {:#x} (size: {:#x})",
strtab_section_->name(), strtab_section_->file_offset(),
strtab_section_->size());
binary_->remove(*strtab_section_, /* clear */ true);
@@ -1564,22 +1629,25 @@ class LIEF_LOCAL ExeLayout : public Layout {
Section strtab{".strtab", Section::TYPE::STRTAB};
strtab.content(raw_strtab_);
strtab.alignment(1);
- Section* new_strtab = binary_->add(
- strtab, /*loaded=*/false, /*pos=*/Binary::SEC_INSERT_POS::POST_SECTION);
+ Section* new_strtab =
+ binary_->add(strtab, /*loaded=*/false,
+ /*pos=*/Binary::SEC_INSERT_POS::POST_SECTION);
strtab_idx = binary_->sections().size() - 1;
if (new_strtab == nullptr) {
- LIEF_ERR("Can't add a new .strtab section");
+ LIEF_ERR("Failed to add .strtab section");
return make_error_code(lief_errors::build_error);
}
- LIEF_DEBUG("New .strtab section: #{:d} {} 0x{:x} (size: {:x})",
- strtab_idx, new_strtab->name(), new_strtab->file_offset(), new_strtab->size());
+ LIEF_DEBUG("New .strtab section: #{:d} {} {:#x} (size: {:x})", strtab_idx,
+ new_strtab->name(), new_strtab->file_offset(),
+ new_strtab->size());
Section* sec_symtab = binary_->get(Section::TYPE::SYMTAB);
if (sec_symtab != nullptr) {
- LIEF_DEBUG("Link section {} with the new .strtab (idx: #{:d})", sec_symtab->name(), strtab_idx);
+ LIEF_DEBUG("Linking section {} with new .strtab (idx: #{:d})",
+ sec_symtab->name(), strtab_idx);
sec_symtab->link(strtab_idx);
}
set_strtab_section(*new_strtab);
@@ -1592,12 +1660,13 @@ class LIEF_LOCAL ExeLayout : public Layout {
// Sections that are not associated with segments (mostly debug information)
// currently we only handle the symtab symbol table: .symtab
if (symtab_size_ > 0) {
- LIEF_DEBUG("Relocate .symtab");
+ LIEF_DEBUG("Relocating .symtab");
const auto sections = binary_->sections();
- auto it_sec_symtab = std::find_if(sections.begin(), sections.end(),
- [] (const Section& sec) { return sec.type() == Section::TYPE::SYMTAB; }
- );
+ auto it_sec_symtab =
+ std::find_if(sections.begin(), sections.end(), [](const Section& sec) {
+ return sec.type() == Section::TYPE::SYMTAB;
+ });
if (it_sec_symtab != sections.end()) {
const size_t pos = std::distance(sections.begin(), it_sec_symtab);
@@ -1606,8 +1675,9 @@ class LIEF_LOCAL ExeLayout : public Layout {
strtab_idx = it_sec_symtab->link();
}
- LIEF_DEBUG("Removing the old section: {} 0x{:x} (size: 0x{:x})",
- it_sec_symtab->name(), it_sec_symtab->file_offset(), it_sec_symtab->size());
+ LIEF_DEBUG("Removing the old section: {} {:#x} (size: {:#x})",
+ it_sec_symtab->name(), it_sec_symtab->file_offset(),
+ it_sec_symtab->size());
binary_->remove(*it_sec_symtab, /* clear */ true);
if (pos < strtab_idx) {
--strtab_idx;
@@ -1618,18 +1688,20 @@ class LIEF_LOCAL ExeLayout : public Layout {
symtab.content(std::vector<uint8_t>(symtab_size_));
const size_t sizeof_sym = binary_->type() == Header::CLASS::ELF32 ?
- sizeof(details::Elf32_Sym) : sizeof(details::Elf64_Sym);
+ sizeof(details::Elf32_Sym) :
+ sizeof(details::Elf64_Sym);
symtab.entry_size(sizeof_sym);
symtab.alignment(8);
symtab.link(strtab_idx);
- Section* new_symtab = binary_->add(
- symtab, /*loaded=*/false, /*pos=*/Binary::SEC_INSERT_POS::POST_SECTION);
+ Section* new_symtab =
+ binary_->add(symtab, /*loaded=*/false,
+ /*pos=*/Binary::SEC_INSERT_POS::POST_SECTION);
if (new_symtab == nullptr) {
- LIEF_ERR("Can't add a new .symbtab section");
+ LIEF_ERR("Failed to add .symtab section");
return make_error_code(lief_errors::build_error);
}
- LIEF_DEBUG("New .symtab section: {} 0x{:x} (size: {:x})",
- new_symtab->name(), new_symtab->file_offset(), new_symtab->size());
+ LIEF_DEBUG("New .symtab section: {} {:#x} (size: {:x})", new_symtab->name(),
+ new_symtab->file_offset(), new_symtab->size());
}
// Process note sections
@@ -1640,7 +1712,7 @@ class LIEF_LOCAL ExeLayout : public Layout {
if (!section_res) {
if (binary_->header().file_type() != Header::FILE_TYPE::CORE) {
- LIEF_ERR("Note type: {} ('{}') is not supported",
+ LIEF_ERR("Unsupported note type {} ('{}') for section",
to_string(note.type()), note.name());
}
continue;
@@ -1654,8 +1726,8 @@ class LIEF_LOCAL ExeLayout : public Layout {
if (const Section* nsec = binary_->get_section(*section_res);
nsec == nullptr)
{
- if (it_offset == std::end(notes_off_map_)) {
- LIEF_ERR("Can't find raw data for note: '{}'", to_string(note.type()));
+ if (it_offset == notes_off_map_.end()) {
+ LIEF_ERR("Raw data not found for note '{}'", to_string(note.type()));
continue;
}
const size_t note_offset = it_offset->second;
@@ -1663,10 +1735,11 @@ class LIEF_LOCAL ExeLayout : public Layout {
Section section{sec_name, Section::TYPE::NOTE};
section += Section::FLAGS::ALLOC;
- Section* section_added = binary_->add(
- section, /*loaded=*/false, /*pos=*/Binary::SEC_INSERT_POS::POST_SECTION);
+ Section* section_added =
+ binary_->add(section, /*loaded=*/false,
+ /*pos=*/Binary::SEC_INSERT_POS::POST_SECTION);
if (section_added == nullptr) {
- LIEF_ERR("Can't add SHT_NOTE section");
+ LIEF_ERR("Failed to add SHT_NOTE section");
return make_error_code(lief_errors::build_error);
}
section_added->offset(segment_note->file_offset() + note_offset);
@@ -1693,56 +1766,56 @@ class LIEF_LOCAL ExeLayout : public Layout {
~ExeLayout() override = default;
ExeLayout() = delete;
- private:
+ private:
std::unordered_map<std::string, size_t> offset_name_map_;
std::unordered_map<const Note*, size_t> notes_off_map_;
sym_verdef_info_t verdef_info_;
std::vector<uint8_t> raw_notes_;
- bool relocate_notes_{false};
+ bool relocate_notes_ = false;
std::vector<uint8_t> raw_dynstr_;
- bool relocate_dynstr_{false};
+ bool relocate_dynstr_ = false;
- bool relocate_shstrtab_{false};
+ bool relocate_shstrtab_ = false;
- bool relocate_strtab_{false};
+ bool relocate_strtab_ = false;
std::vector<uint8_t> raw_gnu_hash_;
- bool relocate_gnu_hash_{false};
+ bool relocate_gnu_hash_ = false;
std::vector<uint8_t> raw_relr_;
- bool relocate_relr_{false};
+ bool relocate_relr_ = false;
std::vector<uint8_t> raw_android_rela_;
- bool relocate_android_rela_{false};
+ bool relocate_android_rela_ = false;
- uint64_t sysv_size_{0};
+ uint64_t sysv_size_ = 0;
- uint64_t dynamic_size_{0};
- uint64_t dynsym_size_{0};
+ uint64_t dynamic_size_ = 0;
+ uint64_t dynsym_size_ = 0;
- uint64_t pltgot_reloc_size_{0};
- uint64_t dynamic_reloc_size_{0};
+ uint64_t pltgot_reloc_size_ = 0;
+ uint64_t dynamic_reloc_size_ = 0;
- uint64_t sver_size_{0};
- uint64_t sverd_size_{0};
- uint64_t sverr_size_{0};
+ uint64_t sver_size_ = 0;
+ uint64_t sverd_size_ = 0;
+ uint64_t sverr_size_ = 0;
- uint64_t preinit_size_{0};
- uint64_t init_size_{0};
- uint64_t fini_size_{0};
+ uint64_t preinit_size_ = 0;
+ uint64_t init_size_ = 0;
+ uint64_t fini_size_ = 0;
- uint64_t interp_size_{0};
- uint32_t nchain_{0};
- uint64_t symtab_size_{0};
+ uint64_t interp_size_ = 0;
+ uint32_t nchain_ = 0;
+ uint64_t symtab_size_ = 0;
- //uint64_t pltgot_reloc_size_{0};
+ // uint64_t pltgot_reloc_size_ = 0;
std::unordered_map<uint64_t, Relocation*> relocations_addresses_;
};
}
-}
+
#endif
diff --git a/deps/LIEF/src/ELF/GnuHash.cpp b/deps/LIEF/src/ELF/GnuHash.cpp
index 4f70fad9f05..bcdb92398d1 100644
--- a/deps/LIEF/src/ELF/GnuHash.cpp
+++ b/deps/LIEF/src/ELF/GnuHash.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,10 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include <iomanip>
-#include <numeric>
-#include <sstream>
-#include <utility>
+#include <spdlog/fmt/fmt.h>
#include "LIEF/Visitor.hpp"
#include "LIEF/BinaryStream/SpanStream.hpp"
@@ -29,10 +26,13 @@
#include "logging.hpp"
#include "ELF/Structures.hpp"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
bool GnuHash::check_bloom_filter(uint32_t hash) const {
+ if (maskwords() == 0) {
+ return false;
+ }
const size_t C = c_;
const uint32_t h1 = hash;
const uint32_t h2 = hash >> shift2();
@@ -71,8 +71,8 @@ template<typename ELF_T>
std::unique_ptr<GnuHash> GnuHash::parse(SpanStream& strm, uint64_t dynsymcount) {
// See: https://github.com/lattera/glibc/blob/master/elf/dl-lookup.c#L860
// and https://github.com/lattera/glibc/blob/master/elf/dl-lookup.c#L226
- using uint__ = typename ELF_T::uint;
- LIEF_DEBUG("== Parse symbol GNU hash ==");
+ using uint__ = typename ELF_T::uint;
+ LIEF_DEBUG("Parsing GNU hash");
const uint64_t opos = strm.pos();
auto gnuhash = std::make_unique<GnuHash>();
@@ -81,13 +81,13 @@ std::unique_ptr<GnuHash> GnuHash::parse(SpanStream& strm, uint64_t dynsymcount)
auto nbuckets = strm.read<uint32_t>();
if (!nbuckets) {
- LIEF_ERR("Can't read the number of buckets");
+ LIEF_ERR("Failed to read bucket count");
return nullptr;
}
auto symidx = strm.read<uint32_t>();
if (!symidx) {
- LIEF_ERR("Can't read the symndx");
+ LIEF_ERR("Failed to read symndx");
return nullptr;
}
@@ -95,13 +95,13 @@ std::unique_ptr<GnuHash> GnuHash::parse(SpanStream& strm, uint64_t dynsymcount)
auto maskwords = strm.read<uint32_t>();
if (!maskwords) {
- LIEF_ERR("Can't read the maskwords");
+ LIEF_ERR("Failed to read maskwords");
return nullptr;
}
auto shift2 = strm.read<uint32_t>();
if (!shift2) {
- LIEF_ERR("Can't read the shift2");
+ LIEF_ERR("Failed to read shift2");
return nullptr;
}
gnuhash->shift2_ = *shift2;
@@ -115,17 +115,17 @@ std::unique_ptr<GnuHash> GnuHash::parse(SpanStream& strm, uint64_t dynsymcount)
std::copy(bloom_filters.begin(), bloom_filters.end(),
std::back_inserter(gnuhash->bloom_filters_));
} else {
- LIEF_ERR("GNU Hash, maskwords corrupted");
+ LIEF_ERR("GNU hash maskwords corrupted");
}
if (!strm.read_objects(gnuhash->buckets_, *nbuckets)) {
- LIEF_ERR("GNU Hash, buckets corrupted");
+ LIEF_ERR("GNU hash buckets corrupted");
}
if (dynsymcount > 0 && dynsymcount >= gnuhash->symbol_index_) {
const uint32_t nb_hash = dynsymcount - gnuhash->symbol_index_;
if (!strm.read_objects(gnuhash->hash_values_, nb_hash)) {
- LIEF_ERR("Can't read hash values (count={})", nb_hash);
+ LIEF_ERR("Failed to read hash values (count={})", nb_hash);
}
}
@@ -152,8 +152,8 @@ result<uint32_t> GnuHash::nb_symbols(SpanStream& strm) {
return 0;
}
- const auto nbuckets = *res_nbuckets;
- const auto symndx = *res_symndx;
+ const auto nbuckets = *res_nbuckets;
+ const auto symndx = *res_symndx;
const auto maskwords = *res_maskwords;
// skip shift2, unused as we don't need the bloom filter to count syms.
@@ -182,6 +182,12 @@ result<uint32_t> GnuHash::nb_symbols(SpanStream& strm) {
return 0;
}
+ if (max_bucket < symndx) {
+ LIEF_WARN("GNU hash: symbol index ({}) is larger than the max bucket ({})",
+ symndx, max_bucket);
+ return 0;
+ }
+
// Skip to the contents of the bucket with the largest symbol index
strm.increment_pos(sizeof(uint32_t) * (max_bucket - symndx));
@@ -195,85 +201,38 @@ result<uint32_t> GnuHash::nb_symbols(SpanStream& strm) {
hash_value = *strm.read<uint32_t>();
nsyms++;
- } while ((hash_value & 1) == 0); // "It is set to 1 when a symbol is the last symbol in a given hash bucket"
+ } while ((hash_value & 1) == 0); // "It is set to 1 when a symbol is the last
+ // symbol in a given hash bucket"
return max_bucket + nsyms;
-
}
std::ostream& operator<<(std::ostream& os, const GnuHash& gnuhash) {
- os << std::hex << std::left;
-
- const std::vector<uint64_t>& bloom_filters = gnuhash.bloom_filters();
- const std::vector<uint32_t>& buckets = gnuhash.buckets();
- const std::vector<uint32_t>& hash_values = gnuhash.hash_values();
-
- std::string bloom_filters_str = std::accumulate(
- std::begin(bloom_filters),
- std::end(bloom_filters), std::string{},
- [] (const std::string& a, uint64_t bf) {
- std::ostringstream hex_bf;
- hex_bf << std::hex;
- hex_bf << "0x" << bf;
-
- return a.empty() ? "[" + hex_bf.str() : a + ", " + hex_bf.str();
- });
- bloom_filters_str += "]";
-
- std::string buckets_str = std::accumulate(
- std::begin(buckets),
- std::end(buckets), std::string{},
- [] (const std::string& a, uint32_t b) {
- std::ostringstream hex_bucket;
- hex_bucket << std::dec;
- hex_bucket << b;
-
- return a.empty() ? "[" + hex_bucket.str() : a + ", " + hex_bucket.str();
- });
- buckets_str += "]";
-
-
- std::string hash_values_str = std::accumulate(
- std::begin(hash_values),
- std::end(hash_values), std::string{},
- [] (const std::string& a, uint64_t hv) {
- std::ostringstream hex_hv;
- hex_hv << std::hex;
- hex_hv << "0x" << hv;
-
- return a.empty() ? "[" + hex_hv.str() : a + ", " + hex_hv.str();
- });
- hash_values_str += "]";
-
- os << std::setw(33) << std::setfill(' ') << "Number of buckets:" << gnuhash.nb_buckets() << '\n';
- os << std::setw(33) << std::setfill(' ') << "First symbol index:" << gnuhash.symbol_index() << '\n';
- os << std::setw(33) << std::setfill(' ') << "Shift Count:" << gnuhash.shift2() << '\n';
- os << std::setw(33) << std::setfill(' ') << "Bloom filters:" << bloom_filters_str << '\n';
- os << std::setw(33) << std::setfill(' ') << "Buckets:" << buckets_str << '\n';
- os << std::setw(33) << std::setfill(' ') << "Hash values:" << hash_values_str << '\n';
-
+ os << fmt::format("Number of buckets: {}\n", gnuhash.nb_buckets())
+ << fmt::format("First symbol index: {}\n", gnuhash.symbol_index())
+ << fmt::format("Shift Count: {}\n", gnuhash.shift2())
+ << fmt::format("Bloom filters: [{:#x}]\n",
+ fmt::join(gnuhash.bloom_filters(), ", "))
+ << fmt::format("Buckets: [{}]\n",
+ fmt::join(gnuhash.buckets(), ", "))
+ << fmt::format("Hash values: [{:#x}]\n",
+ fmt::join(gnuhash.hash_values(), ", "));
return os;
-
}
-template
-std::unique_ptr<GnuHash> GnuHash::parse<details::ELF64>(SpanStream&, uint64_t);
-template
-std::unique_ptr<GnuHash> GnuHash::parse<details::ELF32>(SpanStream&, uint64_t);
-template
-std::unique_ptr<GnuHash> GnuHash::parse<details::ELF32_x32>(SpanStream&, uint64_t);
-template
-std::unique_ptr<GnuHash> GnuHash::parse<details::ELF32_arm64>(SpanStream&, uint64_t);
-
-template
-result<uint32_t> GnuHash::nb_symbols<details::ELF64>(SpanStream&);
-template
-result<uint32_t> GnuHash::nb_symbols<details::ELF32>(SpanStream&);
-template
-result<uint32_t> GnuHash::nb_symbols<details::ELF32_x32>(SpanStream&);
-template
-result<uint32_t> GnuHash::nb_symbols<details::ELF32_arm64>(SpanStream&);
-
-
-} // namespace ELF
-} // namespace LIEF
+template std::unique_ptr<GnuHash> GnuHash::parse<details::ELF64>(SpanStream&,
+ uint64_t);
+template std::unique_ptr<GnuHash> GnuHash::parse<details::ELF32>(SpanStream&,
+ uint64_t);
+template std::unique_ptr<GnuHash> GnuHash::parse<details::ELF32_x32>(SpanStream&,
+ uint64_t);
+template std::unique_ptr<GnuHash> GnuHash::parse<details::ELF32_arm64>(SpanStream&,
+ uint64_t);
+
+template result<uint32_t> GnuHash::nb_symbols<details::ELF64>(SpanStream&);
+template result<uint32_t> GnuHash::nb_symbols<details::ELF32>(SpanStream&);
+template result<uint32_t> GnuHash::nb_symbols<details::ELF32_x32>(SpanStream&);
+template result<uint32_t> GnuHash::nb_symbols<details::ELF32_arm64>(SpanStream&);
+
+
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/Header.cpp b/deps/LIEF/src/ELF/Header.cpp
index 45f9364540e..f5b88c98000 100644
--- a/deps/LIEF/src/ELF/Header.cpp
+++ b/deps/LIEF/src/ELF/Header.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,8 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include <sstream>
-#include <numeric>
#include <algorithm>
#include "frozen.hpp"
@@ -27,61 +25,92 @@
#include "logging.hpp"
-namespace LIEF {
-namespace ELF {
-static constexpr uint64_t ARM_EABIMASK = 0xFF000000U;
-static constexpr uint64_t MIPS_ABI_MASK = 0x0000f000U;
-static constexpr uint64_t MIPS_MACH_MASK = 0x00ff0000U;
+namespace LIEF::ELF {
+
+static constexpr uint64_t ARM_EABIMASK = 0xFF000000U;
+static constexpr uint64_t MIPS_ABI_MASK = 0x0000f000U;
+static constexpr uint64_t MIPS_MACH_MASK = 0x00ff0000U;
static constexpr uint64_t MIPS_ARCH_ASE_MASK = 0x0f000000U;
-static constexpr uint64_t MIPS_ARCH_MASK = 0xf0000000U;
+static constexpr uint64_t MIPS_ARCH_MASK = 0xf0000000U;
static constexpr uint64_t RISCV_FLOAT_ABI_MASK = 0x0006; // EF_RISCV_FLOAT_ABI
static constexpr auto PFLAGS_LIST = {
- PROCESSOR_FLAGS::ARM_EABI_UNKNOWN, PROCESSOR_FLAGS::ARM_SOFT_FLOAT,
- PROCESSOR_FLAGS::ARM_VFP_FLOAT, PROCESSOR_FLAGS::ARM_EABI_VER1,
- PROCESSOR_FLAGS::ARM_EABI_VER2, PROCESSOR_FLAGS::ARM_EABI_VER3,
- PROCESSOR_FLAGS::ARM_EABI_VER4, PROCESSOR_FLAGS::ARM_EABI_VER5,
- PROCESSOR_FLAGS::HEXAGON_MACH_V2, PROCESSOR_FLAGS::HEXAGON_MACH_V3,
- PROCESSOR_FLAGS::HEXAGON_MACH_V4, PROCESSOR_FLAGS::HEXAGON_MACH_V5,
- PROCESSOR_FLAGS::HEXAGON_ISA_V2, PROCESSOR_FLAGS::HEXAGON_ISA_V3,
- PROCESSOR_FLAGS::HEXAGON_ISA_V4, PROCESSOR_FLAGS::HEXAGON_ISA_V5,
- PROCESSOR_FLAGS::LOONGARCH_ABI_SOFT_FLOAT, PROCESSOR_FLAGS::LOONGARCH_ABI_SINGLE_FLOAT,
- PROCESSOR_FLAGS::LOONGARCH_ABI_DOUBLE_FLOAT, PROCESSOR_FLAGS::MIPS_NOREORDER,
- PROCESSOR_FLAGS::MIPS_PIC, PROCESSOR_FLAGS::MIPS_CPIC,
- PROCESSOR_FLAGS::MIPS_ABI2, PROCESSOR_FLAGS::MIPS_32BITMODE,
- PROCESSOR_FLAGS::MIPS_FP64, PROCESSOR_FLAGS::MIPS_NAN2008,
- PROCESSOR_FLAGS::MIPS_ABI_O32, PROCESSOR_FLAGS::MIPS_ABI_O64,
- PROCESSOR_FLAGS::MIPS_ABI_EABI32, PROCESSOR_FLAGS::MIPS_ABI_EABI64,
- PROCESSOR_FLAGS::MIPS_MACH_3900,
- PROCESSOR_FLAGS::MIPS_MACH_4010, PROCESSOR_FLAGS::MIPS_MACH_4100,
- PROCESSOR_FLAGS::MIPS_MACH_4650, PROCESSOR_FLAGS::MIPS_MACH_4120,
- PROCESSOR_FLAGS::MIPS_MACH_4111, PROCESSOR_FLAGS::MIPS_MACH_SB1,
- PROCESSOR_FLAGS::MIPS_MACH_OCTEON, PROCESSOR_FLAGS::MIPS_MACH_XLR,
- PROCESSOR_FLAGS::MIPS_MACH_OCTEON2, PROCESSOR_FLAGS::MIPS_MACH_OCTEON3,
- PROCESSOR_FLAGS::MIPS_MACH_5400, PROCESSOR_FLAGS::MIPS_MACH_5900,
- PROCESSOR_FLAGS::MIPS_MACH_5500, PROCESSOR_FLAGS::MIPS_MACH_9000,
- PROCESSOR_FLAGS::MIPS_MACH_LS2E, PROCESSOR_FLAGS::MIPS_MACH_LS2F,
- PROCESSOR_FLAGS::MIPS_MACH_LS3A, PROCESSOR_FLAGS::MIPS_MICROMIPS,
- PROCESSOR_FLAGS::MIPS_ARCH_ASE_M16, PROCESSOR_FLAGS::MIPS_ARCH_ASE_MDMX,
- PROCESSOR_FLAGS::MIPS_ARCH_1, PROCESSOR_FLAGS::MIPS_ARCH_2,
- PROCESSOR_FLAGS::MIPS_ARCH_3, PROCESSOR_FLAGS::MIPS_ARCH_4,
- PROCESSOR_FLAGS::MIPS_ARCH_5, PROCESSOR_FLAGS::MIPS_ARCH_32,
- PROCESSOR_FLAGS::MIPS_ARCH_64, PROCESSOR_FLAGS::MIPS_ARCH_32R2,
- PROCESSOR_FLAGS::MIPS_ARCH_64R2, PROCESSOR_FLAGS::MIPS_ARCH_32R6,
- PROCESSOR_FLAGS::MIPS_ARCH_64R6,
- PROCESSOR_FLAGS::RISCV_RVC,
- PROCESSOR_FLAGS::RISCV_FLOAT_ABI_SOFT,
- PROCESSOR_FLAGS::RISCV_FLOAT_ABI_SINGLE,
- PROCESSOR_FLAGS::RISCV_FLOAT_ABI_DOUBLE,
- PROCESSOR_FLAGS::RISCV_FLOAT_ABI_QUAD,
- PROCESSOR_FLAGS::RISCV_FLOAT_ABI_RVE,
- PROCESSOR_FLAGS::RISCV_FLOAT_ABI_TSO,
+ PROCESSOR_FLAGS::ARM_EABI_UNKNOWN,
+ PROCESSOR_FLAGS::ARM_SOFT_FLOAT,
+ PROCESSOR_FLAGS::ARM_VFP_FLOAT,
+ PROCESSOR_FLAGS::ARM_EABI_VER1,
+ PROCESSOR_FLAGS::ARM_EABI_VER2,
+ PROCESSOR_FLAGS::ARM_EABI_VER3,
+ PROCESSOR_FLAGS::ARM_EABI_VER4,
+ PROCESSOR_FLAGS::ARM_EABI_VER5,
+ PROCESSOR_FLAGS::HEXAGON_MACH_V2,
+ PROCESSOR_FLAGS::HEXAGON_MACH_V3,
+ PROCESSOR_FLAGS::HEXAGON_MACH_V4,
+ PROCESSOR_FLAGS::HEXAGON_MACH_V5,
+ PROCESSOR_FLAGS::HEXAGON_ISA_V2,
+ PROCESSOR_FLAGS::HEXAGON_ISA_V3,
+ PROCESSOR_FLAGS::HEXAGON_ISA_V4,
+ PROCESSOR_FLAGS::HEXAGON_ISA_V5,
+ PROCESSOR_FLAGS::LOONGARCH_ABI_SOFT_FLOAT,
+ PROCESSOR_FLAGS::LOONGARCH_ABI_SINGLE_FLOAT,
+ PROCESSOR_FLAGS::LOONGARCH_ABI_DOUBLE_FLOAT,
+ PROCESSOR_FLAGS::MIPS_NOREORDER,
+ PROCESSOR_FLAGS::MIPS_PIC,
+ PROCESSOR_FLAGS::MIPS_CPIC,
+ PROCESSOR_FLAGS::MIPS_ABI2,
+ PROCESSOR_FLAGS::MIPS_32BITMODE,
+ PROCESSOR_FLAGS::MIPS_FP64,
+ PROCESSOR_FLAGS::MIPS_NAN2008,
+ PROCESSOR_FLAGS::MIPS_ABI_O32,
+ PROCESSOR_FLAGS::MIPS_ABI_O64,
+ PROCESSOR_FLAGS::MIPS_ABI_EABI32,
+ PROCESSOR_FLAGS::MIPS_ABI_EABI64,
+ PROCESSOR_FLAGS::MIPS_MACH_3900,
+ PROCESSOR_FLAGS::MIPS_MACH_4010,
+ PROCESSOR_FLAGS::MIPS_MACH_4100,
+ PROCESSOR_FLAGS::MIPS_MACH_4650,
+ PROCESSOR_FLAGS::MIPS_MACH_4120,
+ PROCESSOR_FLAGS::MIPS_MACH_4111,
+ PROCESSOR_FLAGS::MIPS_MACH_SB1,
+ PROCESSOR_FLAGS::MIPS_MACH_OCTEON,
+ PROCESSOR_FLAGS::MIPS_MACH_XLR,
+ PROCESSOR_FLAGS::MIPS_MACH_OCTEON2,
+ PROCESSOR_FLAGS::MIPS_MACH_OCTEON3,
+ PROCESSOR_FLAGS::MIPS_MACH_5400,
+ PROCESSOR_FLAGS::MIPS_MACH_5900,
+ PROCESSOR_FLAGS::MIPS_MACH_5500,
+ PROCESSOR_FLAGS::MIPS_MACH_9000,
+ PROCESSOR_FLAGS::MIPS_MACH_LS2E,
+ PROCESSOR_FLAGS::MIPS_MACH_LS2F,
+ PROCESSOR_FLAGS::MIPS_MACH_LS3A,
+ PROCESSOR_FLAGS::MIPS_MICROMIPS,
+ PROCESSOR_FLAGS::MIPS_ARCH_ASE_M16,
+ PROCESSOR_FLAGS::MIPS_ARCH_ASE_MDMX,
+ PROCESSOR_FLAGS::MIPS_ARCH_1,
+ PROCESSOR_FLAGS::MIPS_ARCH_2,
+ PROCESSOR_FLAGS::MIPS_ARCH_3,
+ PROCESSOR_FLAGS::MIPS_ARCH_4,
+ PROCESSOR_FLAGS::MIPS_ARCH_5,
+ PROCESSOR_FLAGS::MIPS_ARCH_32,
+ PROCESSOR_FLAGS::MIPS_ARCH_64,
+ PROCESSOR_FLAGS::MIPS_ARCH_32R2,
+ PROCESSOR_FLAGS::MIPS_ARCH_64R2,
+ PROCESSOR_FLAGS::MIPS_ARCH_32R6,
+ PROCESSOR_FLAGS::MIPS_ARCH_64R6,
+ PROCESSOR_FLAGS::RISCV_RVC,
+ PROCESSOR_FLAGS::RISCV_FLOAT_ABI_SOFT,
+ PROCESSOR_FLAGS::RISCV_FLOAT_ABI_SINGLE,
+ PROCESSOR_FLAGS::RISCV_FLOAT_ABI_DOUBLE,
+ PROCESSOR_FLAGS::RISCV_FLOAT_ABI_QUAD,
+ PROCESSOR_FLAGS::RISCV_FLOAT_ABI_RVE,
+ PROCESSOR_FLAGS::RISCV_FLOAT_ABI_TSO,
};
template<class T>
-Header::Header(const T& header):
+Header::Header(const T& header) :
+ identity_{},
file_type_(FILE_TYPE(header.e_type)),
machine_type_(ARCH(header.e_machine)),
object_file_version_(VERSION(header.e_version)),
@@ -94,23 +123,20 @@ Header::Header(const T& header):
numberof_segments_(header.e_phnum),
section_header_size_(header.e_shentsize),
numberof_sections_(header.e_shnum),
- section_string_table_idx_(header.e_shstrndx)
-{
+ section_string_table_idx_(header.e_shstrndx) {
std::copy(std::begin(header.e_ident), std::end(header.e_ident),
- std::begin(identity_));
+ std::begin(identity_));
}
template Header::Header(const details::Elf32_Ehdr& header);
template Header::Header(const details::Elf64_Ehdr& header);
void Header::identity(const std::string& identity) {
- std::copy(std::begin(identity), std::end(identity),
- std::begin(identity_));
+ std::copy(identity.begin(), identity.end(), identity_.begin());
}
void Header::identity(const Header::identity_t& identity) {
- std::copy(std::begin(identity), std::end(identity),
- std::begin(identity_));
+ std::copy(identity.begin(), identity.end(), identity_.begin());
}
void Header::accept(LIEF::Visitor& visitor) const {
@@ -134,8 +160,7 @@ bool Header::has(PROCESSOR_FLAGS flag) const {
case PROCESSOR_FLAGS::ARM_EABI_VER4:
case PROCESSOR_FLAGS::ARM_EABI_VER5:
return (processor_flag() & ARM_EABIMASK) == raw_flag;
- default:
- return (processor_flag() & raw_flag) != 0;
+ default: return (processor_flag() & raw_flag) != 0;
}
return false;
@@ -154,10 +179,8 @@ bool Header::has(PROCESSOR_FLAGS flag) const {
case PROCESSOR_FLAGS::RISCV_FLOAT_ABI_QUAD:
case PROCESSOR_FLAGS::ARM_EABI_VER5:
return (processor_flag() & RISCV_FLOAT_ABI_MASK) == raw_flag;
- default:
- return (processor_flag() & raw_flag) != 0;
+ default: return (processor_flag() & raw_flag) != 0;
}
-
}
if (ID == PF_HEX_ID) {
@@ -179,7 +202,7 @@ bool Header::has(PROCESSOR_FLAGS flag) const {
return false;
}
- switch(flag) {
+ switch (flag) {
case PROCESSOR_FLAGS::MIPS_NOREORDER:
case PROCESSOR_FLAGS::MIPS_PIC:
case PROCESSOR_FLAGS::MIPS_CPIC:
@@ -187,7 +210,7 @@ bool Header::has(PROCESSOR_FLAGS flag) const {
case PROCESSOR_FLAGS::MIPS_32BITMODE:
case PROCESSOR_FLAGS::MIPS_FP64:
case PROCESSOR_FLAGS::MIPS_NAN2008:
- return (processor_flag() & raw_flag) != 0;
+ return (processor_flag() & raw_flag) != 0;
case PROCESSOR_FLAGS::MIPS_ABI_O32:
case PROCESSOR_FLAGS::MIPS_ABI_O64:
@@ -213,12 +236,13 @@ bool Header::has(PROCESSOR_FLAGS flag) const {
case PROCESSOR_FLAGS::MIPS_MACH_LS2E:
case PROCESSOR_FLAGS::MIPS_MACH_LS2F:
case PROCESSOR_FLAGS::MIPS_MACH_LS3A:
- return (processor_flag() & MIPS_MACH_MASK) == (raw_flag & MIPS_MACH_MASK);
+ return (processor_flag() & MIPS_MACH_MASK) == (raw_flag & MIPS_MACH_MASK);
case PROCESSOR_FLAGS::MIPS_MICROMIPS:
case PROCESSOR_FLAGS::MIPS_ARCH_ASE_M16:
case PROCESSOR_FLAGS::MIPS_ARCH_ASE_MDMX:
- return (processor_flag() & MIPS_ARCH_ASE_MASK) == (raw_flag & MIPS_ARCH_ASE_MASK);
+ return (processor_flag() & MIPS_ARCH_ASE_MASK) ==
+ (raw_flag & MIPS_ARCH_ASE_MASK);
case PROCESSOR_FLAGS::MIPS_ARCH_1:
case PROCESSOR_FLAGS::MIPS_ARCH_2:
@@ -231,16 +255,14 @@ bool Header::has(PROCESSOR_FLAGS flag) const {
case PROCESSOR_FLAGS::MIPS_ARCH_64R2:
case PROCESSOR_FLAGS::MIPS_ARCH_32R6:
case PROCESSOR_FLAGS::MIPS_ARCH_64R6:
- return (processor_flag() & MIPS_ARCH_MASK) == raw_flag;
+ return (processor_flag() & MIPS_ARCH_MASK) == raw_flag;
- default:
- return (processor_flag() & raw_flag) != 0;
+ default: return (processor_flag() & raw_flag) != 0;
}
}
if (ID != 0) {
- LIEF_WARN("Architecture {} is not yet supported for this flag",
- to_string(arch));
+ LIEF_WARN("Unsupported architecture {} for this flag", to_string(arch));
return false;
}
@@ -250,10 +272,8 @@ bool Header::has(PROCESSOR_FLAGS flag) const {
std::vector<PROCESSOR_FLAGS> Header::flags_list() const {
std::vector<PROCESSOR_FLAGS> flags;
- std::copy_if(std::begin(PFLAGS_LIST), std::end(PFLAGS_LIST),
- std::back_inserter(flags),
- [this] (PROCESSOR_FLAGS f) { return this->has(f); }
- );
+ std::copy_if(PFLAGS_LIST.begin(), PFLAGS_LIST.end(), std::back_inserter(flags),
+ [this](PROCESSOR_FLAGS f) { return this->has(f); });
return flags;
}
@@ -265,30 +285,48 @@ std::ostream& operator<<(std::ostream& os, const Header& hdr) {
flags_str.reserve(flags.size());
std::transform(flags.begin(), flags.end(), std::back_inserter(flags_str),
- [] (PROCESSOR_FLAGS f) { return to_string(f); }
- );
+ [](PROCESSOR_FLAGS f) { return to_string(f); });
os << "ELF Header:\n"
- << fmt::format("{:<{}} {:02x}\n", "Magic:", PADDING, fmt::join(hdr.identity(), " "))
- << fmt::format("{:<{}} {}\n", "Class:", PADDING, to_string(hdr.identity_class()))
- << fmt::format("{:<{}} {}\n", "Data:", PADDING, to_string(hdr.identity_data()))
- << fmt::format("{:<{}} {}\n", "Version:", PADDING, to_string(hdr.identity_version()))
- << fmt::format("{:<{}} {}\n", "OS/ABI:", PADDING, to_string(hdr.identity_os_abi()))
- << fmt::format("{:<{}} {}\n", "ABI Version:", PADDING, hdr.identity_abi_version())
+ << fmt::format("{:<{}} {:02x}\n", "Magic:", PADDING,
+ fmt::join(hdr.identity(), " "))
+ << fmt::format("{:<{}} {}\n", "Class:", PADDING,
+ to_string(hdr.identity_class()))
+ << fmt::format("{:<{}} {}\n", "Data:", PADDING,
+ to_string(hdr.identity_data()))
+ << fmt::format("{:<{}} {}\n", "Version:", PADDING,
+ to_string(hdr.identity_version()))
+ << fmt::format("{:<{}} {}\n", "OS/ABI:", PADDING,
+ to_string(hdr.identity_os_abi()))
+ << fmt::format("{:<{}} {}\n", "ABI Version:", PADDING,
+ hdr.identity_abi_version())
<< fmt::format("{:<{}} {}\n", "Type:", PADDING, to_string(hdr.file_type()))
- << fmt::format("{:<{}} {}\n", "Machine:", PADDING, to_string(hdr.machine_type()))
- << fmt::format("{:<{}} {}\n", "Version:", PADDING, to_string(hdr.object_file_version()))
- << fmt::format("{:<{}} 0x{:08x}\n", "Entry point address:", PADDING, hdr.entrypoint())
- << fmt::format("{:<{}} {} (bytes into file)\n", "Start of program headers:", PADDING, hdr.program_headers_offset())
- << fmt::format("{:<{}} {} (bytes into file)\n", "Start of section headers:", PADDING, hdr.section_headers_offset())
- << fmt::format("{:<{}} 0x{:x} {}\n", "Flags:", PADDING, hdr.processor_flag(), fmt::to_string(fmt::join(flags_str, ", ")))
- << fmt::format("{:<{}} {} (bytes)\n", "Size of this header:", PADDING, hdr.header_size())
- << fmt::format("{:<{}} {} (bytes)\n", "Size of program headers:", PADDING, hdr.program_header_size())
- << fmt::format("{:<{}} {}\n", "Number of program headers:", PADDING, hdr.numberof_segments())
- << fmt::format("{:<{}} {} (bytes)\n", "Size of section headers:", PADDING, hdr.section_header_size())
- << fmt::format("{:<{}} {}\n", "Number of section headers:", PADDING, hdr.numberof_sections())
- << fmt::format("{:<{}} {}\n", "Section header string table index:", PADDING, hdr.section_name_table_idx())
- ;
+ << fmt::format("{:<{}} {}\n", "Machine:", PADDING,
+ to_string(hdr.machine_type()))
+ << fmt::format("{:<{}} {}\n", "Version:", PADDING,
+ to_string(hdr.object_file_version()))
+ << fmt::format("{:<{}} {:#010x}\n", "Entry point address:", PADDING,
+ hdr.entrypoint())
+ << fmt::format("{:<{}} {} (bytes into file)\n",
+ "Start of program headers:", PADDING,
+ hdr.program_headers_offset())
+ << fmt::format("{:<{}} {} (bytes into file)\n",
+ "Start of section headers:", PADDING,
+ hdr.section_headers_offset())
+ << fmt::format("{:<{}} {:#x} {}\n", "Flags:", PADDING, hdr.processor_flag(),
+ fmt::to_string(fmt::join(flags_str, ", ")))
+ << fmt::format("{:<{}} {} (bytes)\n", "Size of this header:", PADDING,
+ hdr.header_size())
+ << fmt::format("{:<{}} {} (bytes)\n", "Size of program headers:", PADDING,
+ hdr.program_header_size())
+ << fmt::format("{:<{}} {}\n", "Number of program headers:", PADDING,
+ hdr.numberof_segments())
+ << fmt::format("{:<{}} {} (bytes)\n", "Size of section headers:", PADDING,
+ hdr.section_header_size())
+ << fmt::format("{:<{}} {}\n", "Number of section headers:", PADDING,
+ hdr.numberof_sections())
+ << fmt::format("{:<{}} {}\n", "Section header string table index:", PADDING,
+ hdr.section_name_table_idx());
return os;
}
@@ -331,33 +369,16 @@ const char* to_string(Header::ELF_DATA e) {
}
const char* to_string(Header::OS_ABI e) {
- #define ENTRY(X) std::pair(Header::OS_ABI::X, #X)
- STRING_MAP enums2str {
- ENTRY(SYSTEMV),
- ENTRY(HPUX),
- ENTRY(NETBSD),
- ENTRY(GNU),
- ENTRY(LINUX),
- ENTRY(HURD),
- ENTRY(SOLARIS),
- ENTRY(AIX),
- ENTRY(IRIX),
- ENTRY(FREEBSD),
- ENTRY(TRU64),
- ENTRY(MODESTO),
- ENTRY(OPENBSD),
- ENTRY(OPENVMS),
- ENTRY(NSK),
- ENTRY(AROS),
- ENTRY(FENIXOS),
- ENTRY(CLOUDABI),
- ENTRY(C6000_ELFABI),
- ENTRY(AMDGPU_HSA),
- ENTRY(C6000_LINUX),
- ENTRY(ARM),
- ENTRY(STANDALONE),
+#define ENTRY(X) std::pair(Header::OS_ABI::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(SYSTEMV), ENTRY(HPUX), ENTRY(NETBSD), ENTRY(GNU),
+ ENTRY(LINUX), ENTRY(HURD), ENTRY(SOLARIS), ENTRY(AIX),
+ ENTRY(IRIX), ENTRY(FREEBSD), ENTRY(TRU64), ENTRY(MODESTO),
+ ENTRY(OPENBSD), ENTRY(OPENVMS), ENTRY(NSK), ENTRY(AROS),
+ ENTRY(FENIXOS), ENTRY(CLOUDABI), ENTRY(C6000_ELFABI), ENTRY(AMDGPU_HSA),
+ ENTRY(C6000_LINUX), ENTRY(ARM), ENTRY(STANDALONE),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -367,4 +388,3 @@ const char* to_string(Header::OS_ABI e) {
}
-}
diff --git a/deps/LIEF/src/ELF/Layout.cpp b/deps/LIEF/src/ELF/Layout.cpp
index 0c79088adc9..1482db917cf 100644
--- a/deps/LIEF/src/ELF/Layout.cpp
+++ b/deps/LIEF/src/ELF/Layout.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,8 +20,8 @@
#include <LIEF/iostream.hpp>
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
bool Layout::is_strtab_shared_shstrtab() const {
// Check if the .strtab is shared with the .shstrtab
@@ -43,7 +43,7 @@ bool Layout::is_strtab_shared_shstrtab() const {
}
size_t Layout::section_strtab_size() {
- // could be moved in the class base.
+ // Could be moved into the base class.
if (!raw_strtab_.empty()) {
return raw_strtab_.size();
}
@@ -62,9 +62,11 @@ size_t Layout::section_strtab_size() {
return 0;
}
- std::vector<std::string> symstr_opt = optimize(binary_->symtab_symbols_,
- [] (const std::unique_ptr<Symbol>& sym) { return sym->name(); },
- offset_counter, &strtab_name_map_);
+ std::vector<std::string> symstr_opt = optimize(
+ binary_->symtab_symbols_,
+ [](const std::unique_ptr<Symbol>& sym) { return sym->name(); },
+ offset_counter, &strtab_name_map_
+ );
for (const std::string& name : symstr_opt) {
raw_strtab.write(name);
@@ -81,16 +83,14 @@ size_t Layout::section_shstr_size() {
vector_iostream raw_shstrtab(should_swap());
- // In the ELF format all the .str sections
+ // In the ELF format, all string table sections
// start with a null entry.
raw_shstrtab.write<uint8_t>(0);
std::vector<std::string> sec_names;
sec_names.reserve(binary_->sections_.size());
- std::transform(std::begin(binary_->sections_), std::end(binary_->sections_),
+ std::transform(binary_->sections_.begin(), binary_->sections_.end(),
std::back_inserter(sec_names),
- [] (const std::unique_ptr<Section>& s) {
- return s->name();
- });
+ [](const std::unique_ptr<Section>& s) { return s->name(); });
if (!binary_->symtab_symbols_.empty()) {
if (binary_->get(Section::TYPE::SYMTAB) == nullptr) {
@@ -114,8 +114,10 @@ size_t Layout::section_shstr_size() {
// First write section names
size_t offset_counter = raw_shstrtab.tellp();
- std::vector<std::string> shstrtab_opt = optimize(sec_names, [] (const std::string& s) { return s; },
- offset_counter, &shstr_name_map_);
+ std::vector<std::string> shstrtab_opt = optimize(
+ sec_names, [](const std::string& s) { return s; }, offset_counter,
+ &shstr_name_map_
+ );
for (const std::string& name : shstrtab_opt) {
raw_shstrtab.write(name);
@@ -125,9 +127,11 @@ size_t Layout::section_shstr_size() {
// in this case, include the symtab symbol names
if (!binary_->symtab_symbols_.empty() && is_strtab_shared_shstrtab()) {
offset_counter = raw_shstrtab.tellp();
- std::vector<std::string> symstr_opt = optimize(binary_->symtab_symbols_,
- [] (const std::unique_ptr<Symbol>& sym) { return sym->name(); },
- offset_counter, &shstr_name_map_);
+ std::vector<std::string> symstr_opt = optimize(
+ binary_->symtab_symbols_,
+ [](const std::unique_ptr<Symbol>& sym) { return sym->name(); },
+ offset_counter, &shstr_name_map_
+ );
for (const std::string& name : symstr_opt) {
raw_shstrtab.write(name);
}
@@ -138,4 +142,3 @@ size_t Layout::section_shstr_size() {
}
}
-}
diff --git a/deps/LIEF/src/ELF/Layout.hpp b/deps/LIEF/src/ELF/Layout.hpp
index ffb919770a8..f7fafa08a45 100644
--- a/deps/LIEF/src/ELF/Layout.hpp
+++ b/deps/LIEF/src/ELF/Layout.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,8 +21,8 @@
#include <vector>
#include "LIEF/ELF/Builder.hpp"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
class Section;
class Binary;
class Layout {
@@ -30,8 +30,7 @@ class Layout {
Layout(Binary& bin, bool should_swap, const Builder::config_t& config) :
binary_(&bin),
should_swap_(should_swap),
- config_(&config)
- {}
+ config_(&config) {}
virtual const std::unordered_map<std::string, size_t>& shstr_map() const {
return shstr_name_map_;
@@ -83,5 +82,5 @@ class Layout {
const Builder::config_t* config_ = nullptr;
};
}
-}
+
#endif
diff --git a/deps/LIEF/src/ELF/Note.cpp b/deps/LIEF/src/ELF/Note.cpp
index 8632093f988..627aab90be1 100644
--- a/deps/LIEF/src/ELF/Note.cpp
+++ b/deps/LIEF/src/ELF/Note.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -37,14 +37,13 @@
#include "logging.hpp"
#include "internal_utils.hpp"
-#define IMPL_READ_AT(T) \
- template result<T> Note::read_at(size_t) const;
+#define IMPL_READ_AT(T) template result<T> Note::read_at(size_t) const;
-#define IMPL_WRITE_AT(T) \
+#define IMPL_WRITE_AT(T) \
template ok_error_t Note::write_at(size_t offset, const T& value);
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
static constexpr auto NT_CORE_NAME = "CORE";
static constexpr auto NT_GNU_NAME = "GNU";
@@ -55,84 +54,84 @@ static constexpr auto NT_STAPSDT_NAME = "stapsdt";
static constexpr auto NT_CRASHPAD_NAME = "Crashpad";
static constexpr auto NT_QNX = "QNX";
-CONST_MAP_ALT GNU_TYPES {
- std::pair(1, Note::TYPE::GNU_ABI_TAG),
- std::pair(2, Note::TYPE::GNU_HWCAP),
- std::pair(3, Note::TYPE::GNU_BUILD_ID),
- std::pair(4, Note::TYPE::GNU_GOLD_VERSION),
- std::pair(5, Note::TYPE::GNU_PROPERTY_TYPE_0),
+CONST_MAP_ALT GNU_TYPES{
+ std::pair(1, Note::TYPE::GNU_ABI_TAG),
+ std::pair(2, Note::TYPE::GNU_HWCAP),
+ std::pair(3, Note::TYPE::GNU_BUILD_ID),
+ std::pair(4, Note::TYPE::GNU_GOLD_VERSION),
+ std::pair(5, Note::TYPE::GNU_PROPERTY_TYPE_0),
};
-CONST_MAP_ALT GENERIC_TYPES {
- std::pair(0x100, Note::TYPE::GNU_BUILD_ATTRIBUTE_OPEN),
- std::pair(0x101, Note::TYPE::GNU_BUILD_ATTRIBUTE_FUNC),
+CONST_MAP_ALT GENERIC_TYPES{
+ std::pair(0x100, Note::TYPE::GNU_BUILD_ATTRIBUTE_OPEN),
+ std::pair(0x101, Note::TYPE::GNU_BUILD_ATTRIBUTE_FUNC),
};
/* Core note types. */
-CONST_MAP_ALT CORE_TYPES {
- std::pair(1, Note::TYPE::CORE_PRSTATUS),
- std::pair(2, Note::TYPE::CORE_FPREGSET),
- std::pair(3, Note::TYPE::CORE_PRPSINFO),
- std::pair(4, Note::TYPE::CORE_TASKSTRUCT),
- std::pair(6, Note::TYPE::CORE_AUXV),
- std::pair(10, Note::TYPE::CORE_PSTATUS),
- std::pair(12, Note::TYPE::CORE_FPREGS),
- std::pair(13, Note::TYPE::CORE_PSINFO),
- std::pair(16, Note::TYPE::CORE_LWPSTATUS),
- std::pair(17, Note::TYPE::CORE_LWPSINFO),
- std::pair(18, Note::TYPE::CORE_WIN32PSTATUS),
- std::pair(0x53494749, Note::TYPE::CORE_SIGINFO),
- std::pair(0x46e62b7f, Note::TYPE::CORE_PRXFPREG),
- std::pair(0x46494c45, Note::TYPE::CORE_FILE),
+CONST_MAP_ALT CORE_TYPES{
+ std::pair(1, Note::TYPE::CORE_PRSTATUS),
+ std::pair(2, Note::TYPE::CORE_FPREGSET),
+ std::pair(3, Note::TYPE::CORE_PRPSINFO),
+ std::pair(4, Note::TYPE::CORE_TASKSTRUCT),
+ std::pair(6, Note::TYPE::CORE_AUXV),
+ std::pair(10, Note::TYPE::CORE_PSTATUS),
+ std::pair(12, Note::TYPE::CORE_FPREGS),
+ std::pair(13, Note::TYPE::CORE_PSINFO),
+ std::pair(16, Note::TYPE::CORE_LWPSTATUS),
+ std::pair(17, Note::TYPE::CORE_LWPSINFO),
+ std::pair(18, Note::TYPE::CORE_WIN32PSTATUS),
+ std::pair(0x53494749, Note::TYPE::CORE_SIGINFO),
+ std::pair(0x46e62b7f, Note::TYPE::CORE_PRXFPREG),
+ std::pair(0x46494c45, Note::TYPE::CORE_FILE),
};
-CONST_MAP_ALT CORE_ARM_YPES {
- std::pair(0x400, Note::TYPE::CORE_ARM_VFP),
- std::pair(0x401, Note::TYPE::CORE_ARM_TLS),
- std::pair(0x402, Note::TYPE::CORE_ARM_HW_BREAK),
- std::pair(0x403, Note::TYPE::CORE_ARM_HW_WATCH),
- std::pair(0x404, Note::TYPE::CORE_ARM_SYSTEM_CALL),
- std::pair(0x405, Note::TYPE::CORE_ARM_SVE),
- std::pair(0x406, Note::TYPE::CORE_ARM_PAC_MASK),
- std::pair(0x407, Note::TYPE::CORE_ARM_PACA_KEYS),
- std::pair(0x408, Note::TYPE::CORE_ARM_PACG_KEYS),
- std::pair(0x409, Note::TYPE::CORE_TAGGED_ADDR_CTRL),
- std::pair(0x40a, Note::TYPE::CORE_PAC_ENABLED_KEYS),
+CONST_MAP_ALT CORE_ARM_YPES{
+ std::pair(0x400, Note::TYPE::CORE_ARM_VFP),
+ std::pair(0x401, Note::TYPE::CORE_ARM_TLS),
+ std::pair(0x402, Note::TYPE::CORE_ARM_HW_BREAK),
+ std::pair(0x403, Note::TYPE::CORE_ARM_HW_WATCH),
+ std::pair(0x404, Note::TYPE::CORE_ARM_SYSTEM_CALL),
+ std::pair(0x405, Note::TYPE::CORE_ARM_SVE),
+ std::pair(0x406, Note::TYPE::CORE_ARM_PAC_MASK),
+ std::pair(0x407, Note::TYPE::CORE_ARM_PACA_KEYS),
+ std::pair(0x408, Note::TYPE::CORE_ARM_PACG_KEYS),
+ std::pair(0x409, Note::TYPE::CORE_TAGGED_ADDR_CTRL),
+ std::pair(0x40a, Note::TYPE::CORE_PAC_ENABLED_KEYS),
};
-CONST_MAP_ALT CORE_X86_TYPES {
- std::pair(0x200, Note::TYPE::CORE_X86_TLS),
- std::pair(0x201, Note::TYPE::CORE_X86_IOPERM),
- std::pair(0x202, Note::TYPE::CORE_X86_XSTATE),
- std::pair(0x203, Note::TYPE::CORE_X86_CET),
+CONST_MAP_ALT CORE_X86_TYPES{
+ std::pair(0x200, Note::TYPE::CORE_X86_TLS),
+ std::pair(0x201, Note::TYPE::CORE_X86_IOPERM),
+ std::pair(0x202, Note::TYPE::CORE_X86_XSTATE),
+ std::pair(0x203, Note::TYPE::CORE_X86_CET),
};
/* Android notes */
-CONST_MAP_ALT ANDROID_TYPES {
- std::pair(1, Note::TYPE::ANDROID_IDENT),
- std::pair(3, Note::TYPE::ANDROID_KUSER),
- std::pair(4, Note::TYPE::ANDROID_MEMTAG),
+CONST_MAP_ALT ANDROID_TYPES{
+ std::pair(1, Note::TYPE::ANDROID_IDENT),
+ std::pair(3, Note::TYPE::ANDROID_KUSER),
+ std::pair(4, Note::TYPE::ANDROID_MEMTAG),
};
/* Go types. */
-CONST_MAP_ALT GO_TYPES {
- std::pair(4, Note::TYPE::GO_BUILDID),
+CONST_MAP_ALT GO_TYPES{
+ std::pair(4, Note::TYPE::GO_BUILDID),
};
/* Stapsdt types. */
-CONST_MAP_ALT STAPSDT_TYPES {
- std::pair(3, Note::TYPE::STAPSDT),
+CONST_MAP_ALT STAPSDT_TYPES{
+ std::pair(3, Note::TYPE::STAPSDT),
};
/* Crashpad types. */
-CONST_MAP_ALT CRASHPAD_TYPES {
- std::pair(0x4f464e49, Note::TYPE::CRASHPAD),
+CONST_MAP_ALT CRASHPAD_TYPES{
+ std::pair(0x4f464e49, Note::TYPE::CRASHPAD),
};
/* Crashpad types. */
-CONST_MAP_ALT QNX_TYPES {
- std::pair(3, Note::TYPE::QNX_STACK),
+CONST_MAP_ALT QNX_TYPES{
+ std::pair(3, Note::TYPE::QNX_STACK),
};
static inline std::string strip_zero(const std::string& name) {
@@ -140,20 +139,20 @@ static inline std::string strip_zero(const std::string& name) {
}
result<const char*> Note::type_to_section(TYPE type) {
- CONST_MAP_ALT TYPE2SECTION {
- std::pair(TYPE::GNU_ABI_TAG, ".note.ABI-tag"),
- std::pair(TYPE::GNU_HWCAP, ".note.gnu.hwcap"),
- std::pair(TYPE::GNU_BUILD_ID, ".note.gnu.build-id"),
- std::pair(TYPE::GNU_GOLD_VERSION, ".note.gnu.gold-version"),
- std::pair(TYPE::GNU_PROPERTY_TYPE_0, ".note.gnu.property"),
- std::pair(TYPE::GNU_BUILD_ATTRIBUTE_OPEN, ".gnu.build.attributes"),
- std::pair(TYPE::GNU_BUILD_ATTRIBUTE_FUNC, ".gnu.build.attributes"),
-
- std::pair(TYPE::STAPSDT, ".note.stapsdt"),
- std::pair(TYPE::CRASHPAD, ".note.crashpad.info"),
- std::pair(TYPE::ANDROID_IDENT, ".note.android.ident"),
- std::pair(TYPE::GO_BUILDID, ".note.go.buildid"),
- std::pair(TYPE::QNX_STACK, ".note"),
+ CONST_MAP_ALT TYPE2SECTION{
+ std::pair(TYPE::GNU_ABI_TAG, ".note.ABI-tag"),
+ std::pair(TYPE::GNU_HWCAP, ".note.gnu.hwcap"),
+ std::pair(TYPE::GNU_BUILD_ID, ".note.gnu.build-id"),
+ std::pair(TYPE::GNU_GOLD_VERSION, ".note.gnu.gold-version"),
+ std::pair(TYPE::GNU_PROPERTY_TYPE_0, ".note.gnu.property"),
+ std::pair(TYPE::GNU_BUILD_ATTRIBUTE_OPEN, ".gnu.build.attributes"),
+ std::pair(TYPE::GNU_BUILD_ATTRIBUTE_FUNC, ".gnu.build.attributes"),
+
+ std::pair(TYPE::STAPSDT, ".note.stapsdt"),
+ std::pair(TYPE::CRASHPAD, ".note.crashpad.info"),
+ std::pair(TYPE::ANDROID_IDENT, ".note.android.ident"),
+ std::pair(TYPE::GO_BUILDID, ".note.go.buildid"),
+ std::pair(TYPE::QNX_STACK, ".note"),
};
if (auto it = TYPE2SECTION.find(type); it != TYPE2SECTION.end()) {
@@ -257,50 +256,49 @@ inline result<uint32_t> raw_type(const std::string& name, Note::TYPE type) {
}
-
result<const char*> Note::type_owner(Note::TYPE type) {
- CONST_MAP_ALT TYPE2OWNER {
- std::pair(TYPE::GNU_ABI_TAG ,NT_GNU_NAME),
- std::pair(TYPE::GNU_HWCAP ,NT_GNU_NAME),
- std::pair(TYPE::GNU_BUILD_ID ,NT_GNU_NAME),
- std::pair(TYPE::GNU_GOLD_VERSION ,NT_GNU_NAME),
- std::pair(TYPE::GNU_PROPERTY_TYPE_0 ,NT_GNU_NAME),
- std::pair(TYPE::CORE_PRSTATUS ,NT_CORE_NAME),
- std::pair(TYPE::CORE_FPREGSET ,NT_CORE_NAME),
- std::pair(TYPE::CORE_PRPSINFO ,NT_CORE_NAME),
- std::pair(TYPE::CORE_TASKSTRUCT ,NT_CORE_NAME),
- std::pair(TYPE::CORE_AUXV ,NT_CORE_NAME),
- std::pair(TYPE::CORE_PSTATUS ,NT_CORE_NAME),
- std::pair(TYPE::CORE_FPREGS ,NT_CORE_NAME),
- std::pair(TYPE::CORE_PSINFO ,NT_CORE_NAME),
- std::pair(TYPE::CORE_LWPSTATUS ,NT_CORE_NAME),
- std::pair(TYPE::CORE_LWPSINFO ,NT_CORE_NAME),
- std::pair(TYPE::CORE_WIN32PSTATUS ,NT_CORE_NAME),
- std::pair(TYPE::CORE_FILE ,NT_CORE_NAME),
- std::pair(TYPE::CORE_PRXFPREG ,NT_CORE_NAME),
- std::pair(TYPE::CORE_SIGINFO ,NT_CORE_NAME),
- std::pair(TYPE::CORE_ARM_VFP ,NT_LINUX_NAME),
- std::pair(TYPE::CORE_ARM_TLS ,NT_LINUX_NAME),
- std::pair(TYPE::CORE_ARM_HW_BREAK ,NT_LINUX_NAME),
- std::pair(TYPE::CORE_ARM_HW_WATCH ,NT_LINUX_NAME),
- std::pair(TYPE::CORE_ARM_SYSTEM_CALL ,NT_LINUX_NAME),
- std::pair(TYPE::CORE_ARM_SVE ,NT_LINUX_NAME),
- std::pair(TYPE::CORE_ARM_PAC_MASK ,NT_LINUX_NAME),
- std::pair(TYPE::CORE_ARM_PACA_KEYS ,NT_LINUX_NAME),
- std::pair(TYPE::CORE_ARM_PACG_KEYS ,NT_LINUX_NAME),
- std::pair(TYPE::CORE_TAGGED_ADDR_CTRL ,NT_LINUX_NAME),
- std::pair(TYPE::CORE_PAC_ENABLED_KEYS ,NT_LINUX_NAME),
- std::pair(TYPE::CORE_X86_TLS ,NT_LINUX_NAME),
- std::pair(TYPE::CORE_X86_IOPERM ,NT_LINUX_NAME),
- std::pair(TYPE::CORE_X86_XSTATE ,NT_LINUX_NAME),
- std::pair(TYPE::CORE_X86_CET ,NT_LINUX_NAME),
- std::pair(TYPE::ANDROID_MEMTAG ,NT_ANDROID_NAME),
- std::pair(TYPE::ANDROID_KUSER ,NT_ANDROID_NAME),
- std::pair(TYPE::ANDROID_IDENT ,NT_ANDROID_NAME),
- std::pair(TYPE::GO_BUILDID ,NT_GO_NAME),
- std::pair(TYPE::STAPSDT ,NT_STAPSDT_NAME),
- std::pair(TYPE::CRASHPAD ,NT_CRASHPAD_NAME),
- std::pair(TYPE::QNX_STACK ,NT_QNX),
+ CONST_MAP_ALT TYPE2OWNER{
+ std::pair(TYPE::GNU_ABI_TAG, NT_GNU_NAME),
+ std::pair(TYPE::GNU_HWCAP, NT_GNU_NAME),
+ std::pair(TYPE::GNU_BUILD_ID, NT_GNU_NAME),
+ std::pair(TYPE::GNU_GOLD_VERSION, NT_GNU_NAME),
+ std::pair(TYPE::GNU_PROPERTY_TYPE_0, NT_GNU_NAME),
+ std::pair(TYPE::CORE_PRSTATUS, NT_CORE_NAME),
+ std::pair(TYPE::CORE_FPREGSET, NT_CORE_NAME),
+ std::pair(TYPE::CORE_PRPSINFO, NT_CORE_NAME),
+ std::pair(TYPE::CORE_TASKSTRUCT, NT_CORE_NAME),
+ std::pair(TYPE::CORE_AUXV, NT_CORE_NAME),
+ std::pair(TYPE::CORE_PSTATUS, NT_CORE_NAME),
+ std::pair(TYPE::CORE_FPREGS, NT_CORE_NAME),
+ std::pair(TYPE::CORE_PSINFO, NT_CORE_NAME),
+ std::pair(TYPE::CORE_LWPSTATUS, NT_CORE_NAME),
+ std::pair(TYPE::CORE_LWPSINFO, NT_CORE_NAME),
+ std::pair(TYPE::CORE_WIN32PSTATUS, NT_CORE_NAME),
+ std::pair(TYPE::CORE_FILE, NT_CORE_NAME),
+ std::pair(TYPE::CORE_PRXFPREG, NT_CORE_NAME),
+ std::pair(TYPE::CORE_SIGINFO, NT_CORE_NAME),
+ std::pair(TYPE::CORE_ARM_VFP, NT_LINUX_NAME),
+ std::pair(TYPE::CORE_ARM_TLS, NT_LINUX_NAME),
+ std::pair(TYPE::CORE_ARM_HW_BREAK, NT_LINUX_NAME),
+ std::pair(TYPE::CORE_ARM_HW_WATCH, NT_LINUX_NAME),
+ std::pair(TYPE::CORE_ARM_SYSTEM_CALL, NT_LINUX_NAME),
+ std::pair(TYPE::CORE_ARM_SVE, NT_LINUX_NAME),
+ std::pair(TYPE::CORE_ARM_PAC_MASK, NT_LINUX_NAME),
+ std::pair(TYPE::CORE_ARM_PACA_KEYS, NT_LINUX_NAME),
+ std::pair(TYPE::CORE_ARM_PACG_KEYS, NT_LINUX_NAME),
+ std::pair(TYPE::CORE_TAGGED_ADDR_CTRL, NT_LINUX_NAME),
+ std::pair(TYPE::CORE_PAC_ENABLED_KEYS, NT_LINUX_NAME),
+ std::pair(TYPE::CORE_X86_TLS, NT_LINUX_NAME),
+ std::pair(TYPE::CORE_X86_IOPERM, NT_LINUX_NAME),
+ std::pair(TYPE::CORE_X86_XSTATE, NT_LINUX_NAME),
+ std::pair(TYPE::CORE_X86_CET, NT_LINUX_NAME),
+ std::pair(TYPE::ANDROID_MEMTAG, NT_ANDROID_NAME),
+ std::pair(TYPE::ANDROID_KUSER, NT_ANDROID_NAME),
+ std::pair(TYPE::ANDROID_IDENT, NT_ANDROID_NAME),
+ std::pair(TYPE::GO_BUILDID, NT_GO_NAME),
+ std::pair(TYPE::STAPSDT, NT_STAPSDT_NAME),
+ std::pair(TYPE::CRASHPAD, NT_CRASHPAD_NAME),
+ std::pair(TYPE::QNX_STACK, NT_QNX),
};
if (auto it = TYPE2OWNER.find(type); it != TYPE2OWNER.end()) {
@@ -311,8 +309,7 @@ result<const char*> Note::type_owner(Note::TYPE type) {
result<Note::TYPE> Note::convert_type(Header::FILE_TYPE ftype, uint32_t type,
- const std::string& name)
-{
+ const std::string& name) {
std::string norm_name = strip_zero(name);
if (ftype == Header::FILE_TYPE::CORE) {
@@ -371,7 +368,7 @@ result<Note::TYPE> Note::convert_type(Header::FILE_TYPE ftype, uint32_t type,
}
if (norm_name == NT_QNX) {
- if (auto it = QNX_TYPES.find(type); it != CRASHPAD_TYPES.end()) {
+ if (auto it = QNX_TYPES.find(type); it != QNX_TYPES.end()) {
return it->second;
}
return make_error_code(lief_errors::not_found);
@@ -385,10 +382,9 @@ result<Note::TYPE> Note::convert_type(Header::FILE_TYPE ftype, uint32_t type,
return make_error_code(lief_errors::not_found);
}
-std::unique_ptr<Note>
-Note::create(BinaryStream& stream, std::string section_name,
- Header::FILE_TYPE ftype, ARCH arch, Header::CLASS cls)
-{
+std::unique_ptr<Note> Note::create(BinaryStream& stream, std::string section_name,
+ Header::FILE_TYPE ftype, ARCH arch,
+ Header::CLASS cls) {
static constexpr uint32_t MAX_NOTE_DESCRIPTION = 1_MB;
const size_t pos = stream.pos();
auto res_namesz = stream.read<uint32_t>();
@@ -397,7 +393,7 @@ Note::create(BinaryStream& stream, std::string section_name,
}
const auto namesz = *res_namesz;
- LIEF_DEBUG("[0x{:06x}] Name size: 0x{:x}", pos, namesz);
+ LIEF_DEBUG("[{:#08x}] Name size: {:#x}", pos, namesz);
auto res_descz = stream.read<uint32_t>();
if (!res_descz) {
@@ -405,7 +401,7 @@ Note::create(BinaryStream& stream, std::string section_name,
}
uint32_t descsz = std::min(*res_descz, MAX_NOTE_DESCRIPTION);
- LIEF_DEBUG("Description size: 0x{:x}", descsz);
+ LIEF_DEBUG("Description size: {:#x}", descsz);
auto res_type = stream.read<uint32_t>();
if (!res_type) {
@@ -413,18 +409,25 @@ Note::create(BinaryStream& stream, std::string section_name,
}
uint32_t type = *res_type;
- LIEF_DEBUG("Type: 0x{:x}", type);
+ LIEF_DEBUG("Type: {:#x}", type);
if (namesz == 0) { // System reserves
return nullptr;
}
+
+ if (namesz > stream.size() - stream.pos()) {
+ LIEF_ERR("Note name size ({:#x}) is larger than the remaining stream", namesz);
+ return nullptr;
+ }
+
std::vector<uint8_t> name_buffer(namesz, 0);
if (!stream.read_data(name_buffer, namesz)) {
- LIEF_ERR("Can't read note name");
+ LIEF_ERR("Failed to read note name");
return nullptr;
}
- std::string name(reinterpret_cast<const char*>(name_buffer.data()), name_buffer.size());
+ std::string name(reinterpret_cast<const char*>(name_buffer.data()),
+ name_buffer.size());
LIEF_DEBUG("Name: {}", name);
stream.align(sizeof(uint32_t));
@@ -445,45 +448,43 @@ Note::create(BinaryStream& stream, std::string section_name,
std::vector<uint8_t> desc_bytes;
if (!description.empty()) {
const auto* start_ptr = reinterpret_cast<const uint8_t*>(description.data());
- desc_bytes = {start_ptr,
- start_ptr + description.size() * sizeof(uint32_t)};
+ desc_bytes = {start_ptr, start_ptr + description.size() * sizeof(uint32_t)};
}
- return create(name, type, std::move(desc_bytes), std::move(section_name),
- ftype, arch, cls);
+ return create(name, type, std::move(desc_bytes), std::move(section_name), ftype,
+ arch, cls);
}
-std::unique_ptr<Note>
-Note::create(const std::string& name, Note::TYPE ntype, description_t description,
- std::string section_name,
- ARCH arch, Header::CLASS cls)
-{
+std::unique_ptr<Note> Note::create(const std::string& name, Note::TYPE ntype,
+ description_t description,
+ std::string section_name, ARCH arch,
+ Header::CLASS cls) {
std::string owner;
auto res_owner = type_owner(ntype);
if (res_owner) {
if (!name.empty() && strip_zero(name) != *res_owner) {
- LIEF_WARN("The note owner of '{}' should be '{}' while '{}' is provided",
- to_string(ntype), *res_owner, name);
+ LIEF_WARN("Note owner for '{}' should be '{}' but '{}' was provided",
+ to_string(ntype), *res_owner, name);
}
owner = *res_owner;
} else {
if (!name.empty()) {
owner = name;
} else {
- LIEF_ERR("Note owner name can't be resolved!");
+ LIEF_ERR("Failed to resolve note owner name");
return nullptr;
}
}
auto int_type = raw_type(owner, ntype);
if (!int_type) {
- LIEF_ERR("Can't determine the raw type of note '{}' for the owner '{}'",
+ LIEF_ERR("Failed to determine raw type for note '{}' with owner '{}'",
to_string(ntype), owner);
return nullptr;
}
std::string norm_name = owner;
- // The name of these types have a special meaning
+ // The names of these types have a special meaning
if (ntype != Note::TYPE::GNU_BUILD_ATTRIBUTE_FUNC &&
ntype != Note::TYPE::GNU_BUILD_ATTRIBUTE_OPEN)
{
@@ -491,127 +492,122 @@ Note::create(const std::string& name, Note::TYPE ntype, description_t descriptio
}
switch (ntype) {
case Note::TYPE::CORE_PRSTATUS:
- {
- if (cls != Header::CLASS::ELF32 && cls != Header::CLASS::ELF64) {
- LIEF_WARN("CORE_PRSTATUS requires a valid ELF class");
- return nullptr;
- }
-
- if (arch == ARCH::NONE) {
- LIEF_WARN("CORE_PRSTATUS requires a valid architecture");
- return nullptr;
- }
- return std::unique_ptr<CorePrStatus>(new CorePrStatus(
- arch, cls, std::move(norm_name), *int_type, std::move(description)
- ));
+ {
+ if (cls != Header::CLASS::ELF32 && cls != Header::CLASS::ELF64) {
+ LIEF_WARN("CORE_PRSTATUS requires a valid ELF class");
+ return nullptr;
}
+
+ if (arch == ARCH::NONE) {
+ LIEF_WARN("CORE_PRSTATUS requires a valid architecture");
+ return nullptr;
+ }
+ return std::make_unique<CorePrStatus>(arch, cls, std::move(norm_name),
+ *int_type, std::move(description));
+ }
case Note::TYPE::CORE_PRPSINFO:
- {
- if (cls != Header::CLASS::ELF32 && cls != Header::CLASS::ELF64) {
- LIEF_WARN("CORE_PRPSINFO requires a valid ELF class");
- return nullptr;
- }
-
- if (arch == ARCH::NONE) {
- LIEF_WARN("CORE_PRPSINFO requires a valid architecture");
- return nullptr;
- }
- return std::unique_ptr<CorePrPsInfo>(new CorePrPsInfo(
- arch, cls, std::move(norm_name), *int_type, std::move(description)
- ));
+ {
+ if (cls != Header::CLASS::ELF32 && cls != Header::CLASS::ELF64) {
+ LIEF_WARN("CORE_PRPSINFO requires a valid ELF class");
+ return nullptr;
}
+
+ if (arch == ARCH::NONE) {
+ LIEF_WARN("CORE_PRPSINFO requires a valid architecture");
+ return nullptr;
+ }
+ return std::make_unique<CorePrPsInfo>(arch, cls, std::move(norm_name),
+ *int_type, std::move(description));
+ }
case Note::TYPE::CORE_FILE:
- {
- if (cls != Header::CLASS::ELF32 && cls != Header::CLASS::ELF64) {
- LIEF_WARN("CORE_FILE requires a valid ELF class");
- return nullptr;
- }
-
- if (arch == ARCH::NONE) {
- LIEF_WARN("CORE_FILE requires a valid architecture");
- return nullptr;
- }
- return std::unique_ptr<CoreFile>(new CoreFile(
- arch, cls, std::move(norm_name), *int_type, std::move(description)
- ));
+ {
+ if (cls != Header::CLASS::ELF32 && cls != Header::CLASS::ELF64) {
+ LIEF_WARN("CORE_FILE requires a valid ELF class");
+ return nullptr;
}
+
+ if (arch == ARCH::NONE) {
+ LIEF_WARN("CORE_FILE requires a valid architecture");
+ return nullptr;
+ }
+ return std::make_unique<CoreFile>(arch, cls, std::move(norm_name), *int_type,
+ std::move(description));
+ }
case Note::TYPE::CORE_AUXV:
- {
- if (cls != Header::CLASS::ELF32 && cls != Header::CLASS::ELF64) {
- LIEF_WARN("CORE_AUXV requires a valid ELF class");
- return nullptr;
- }
-
- if (arch == ARCH::NONE) {
- LIEF_WARN("CORE_AUXV requires a valid architecture");
- return nullptr;
- }
- return std::unique_ptr<CoreAuxv>(new CoreAuxv(
- arch, cls, std::move(norm_name), *int_type, std::move(description)
- ));
+ {
+ if (cls != Header::CLASS::ELF32 && cls != Header::CLASS::ELF64) {
+ LIEF_WARN("CORE_AUXV requires a valid ELF class");
+ return nullptr;
}
- case Note::TYPE::CORE_SIGINFO:
- {
- return std::unique_ptr<CoreSigInfo>(new CoreSigInfo(
- std::move(norm_name), ntype, *int_type, std::move(description),
- std::move(section_name)
- ));
+
+ if (arch == ARCH::NONE) {
+ LIEF_WARN("CORE_AUXV requires a valid architecture");
+ return nullptr;
}
+ return std::make_unique<CoreAuxv>(arch, cls, std::move(norm_name), *int_type,
+ std::move(description));
+ }
+ case Note::TYPE::CORE_SIGINFO:
+ {
+ return std::unique_ptr<CoreSigInfo>(
+ new CoreSigInfo(std::move(norm_name), ntype, *int_type,
+ std::move(description), std::move(section_name))
+ );
+ }
case Note::TYPE::GNU_PROPERTY_TYPE_0:
- {
- if (cls != Header::CLASS::ELF32 && cls != Header::CLASS::ELF64) {
- LIEF_WARN("GNU_PROPERTY_TYPE_0 requires a valid ELF class");
- return nullptr;
- }
-
- if (arch == ARCH::NONE) {
- LIEF_WARN("GNU_PROPERTY_TYPE_0 requires a valid architecture");
- return nullptr;
- }
- return std::unique_ptr<NoteGnuProperty>(new NoteGnuProperty(
- arch, cls, std::move(norm_name), *int_type, std::move(description),
- std::move(section_name)
- ));
+ {
+ if (cls != Header::CLASS::ELF32 && cls != Header::CLASS::ELF64) {
+ LIEF_WARN("GNU_PROPERTY_TYPE_0 requires a valid ELF class");
+ return nullptr;
}
+
+ if (arch == ARCH::NONE) {
+ LIEF_WARN("GNU_PROPERTY_TYPE_0 requires a valid architecture");
+ return nullptr;
+ }
+ return std::make_unique<NoteGnuProperty>(arch, cls, std::move(norm_name),
+ *int_type, std::move(description),
+ std::move(section_name));
+ }
case Note::TYPE::ANDROID_IDENT:
- return std::unique_ptr<AndroidIdent>(new AndroidIdent(
- std::move(norm_name), ntype, *int_type, std::move(description),
- std::move(section_name)
- ));
+ return std::unique_ptr<AndroidIdent>(
+ new AndroidIdent(std::move(norm_name), ntype, *int_type,
+ std::move(description), std::move(section_name))
+ );
case Note::TYPE::QNX_STACK:
- return std::unique_ptr<QNXStack>(new QNXStack(
- std::move(norm_name), ntype, *int_type, std::move(description),
- std::move(section_name)
- ));
+ return std::unique_ptr<QNXStack>(
+ new QNXStack(std::move(norm_name), ntype, *int_type,
+ std::move(description), std::move(section_name))
+ );
case Note::TYPE::GNU_ABI_TAG:
- return std::unique_ptr<NoteAbi>(new NoteAbi(
- std::move(norm_name), ntype, *int_type, std::move(description),
- std::move(section_name)
- ));
+ return std::unique_ptr<NoteAbi>(
+ new NoteAbi(std::move(norm_name), ntype, *int_type,
+ std::move(description), std::move(section_name))
+ );
default:
- return std::unique_ptr<Note>(new Note(
- std::move(norm_name), ntype, *int_type, std::move(description),
- std::move(section_name)
- ));
+ return std::unique_ptr<Note>(new Note(std::move(norm_name), ntype, *int_type,
+ std::move(description),
+ std::move(section_name)));
}
return nullptr;
}
-std::unique_ptr<Note>
-Note::create(const std::string& name, uint32_t type, description_t description,
- std::string section_name,
- Header::FILE_TYPE ftype, ARCH arch, Header::CLASS cls)
-{
+std::unique_ptr<Note> Note::create(const std::string& name, uint32_t type,
+ description_t description,
+ std::string section_name,
+ Header::FILE_TYPE ftype, ARCH arch,
+ Header::CLASS cls) {
auto conv = Note::convert_type(ftype, type, name);
if (!conv) {
- LIEF_DEBUG("Note type: 0x{:x} is not supported for owner: '{}'", type, name);
+ LIEF_DEBUG("Unsupported note type {:#x} for owner '{}'", type, name);
return std::unique_ptr<Note>(new Note(name, Note::TYPE::UNKNOWN, type,
- std::move(description), std::move(section_name)));
+ std::move(description),
+ std::move(section_name)));
}
- return create(name, *conv, std::move(description),
- std::move(section_name), arch, cls);
+ return create(name, *conv, std::move(description), std::move(section_name), arch,
+ cls);
}
@@ -631,65 +627,64 @@ void Note::accept(Visitor& visitor) const {
void Note::dump(std::ostream& os) const {
std::string note_name = printable_string(name());
- os << fmt::format("{}(0x{:04x}) '{}' [{}]",
- to_string(type()), original_type(), note_name,
- to_hex(description(), 10));
+ os << fmt::format("{}({:#06x}) '{}' [{}]", to_string(type()), original_type(),
+ note_name, to_hex(description(), 10));
}
const char* to_string(Note::TYPE type) {
- #define ENTRY(X) std::pair(Note::TYPE::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNKNOWN),
- ENTRY(GNU_ABI_TAG),
- ENTRY(GNU_HWCAP),
- ENTRY(GNU_ABI_TAG),
- ENTRY(GNU_HWCAP),
- ENTRY(GNU_BUILD_ID),
- ENTRY(GNU_GOLD_VERSION),
- ENTRY(GNU_PROPERTY_TYPE_0),
- ENTRY(GNU_BUILD_ATTRIBUTE_OPEN),
- ENTRY(GNU_BUILD_ATTRIBUTE_FUNC),
- ENTRY(CRASHPAD),
- ENTRY(CORE_PRSTATUS),
- ENTRY(CORE_FPREGSET),
- ENTRY(CORE_PRPSINFO),
- ENTRY(CORE_TASKSTRUCT),
- ENTRY(CORE_AUXV),
- ENTRY(CORE_PSTATUS),
- ENTRY(CORE_FPREGS),
- ENTRY(CORE_PSINFO),
- ENTRY(CORE_LWPSTATUS),
- ENTRY(CORE_LWPSINFO),
- ENTRY(CORE_WIN32PSTATUS),
- ENTRY(CORE_FILE),
- ENTRY(CORE_PRXFPREG),
- ENTRY(CORE_SIGINFO),
-
- ENTRY(CORE_ARM_VFP),
- ENTRY(CORE_ARM_TLS),
- ENTRY(CORE_ARM_HW_BREAK),
- ENTRY(CORE_ARM_HW_WATCH),
- ENTRY(CORE_ARM_SYSTEM_CALL),
- ENTRY(CORE_ARM_SVE),
- ENTRY(CORE_ARM_PAC_MASK),
- ENTRY(CORE_ARM_PACA_KEYS),
- ENTRY(CORE_ARM_PACG_KEYS),
- ENTRY(CORE_TAGGED_ADDR_CTRL),
- ENTRY(CORE_PAC_ENABLED_KEYS),
- ENTRY(CORE_X86_TLS),
- ENTRY(CORE_X86_IOPERM),
- ENTRY(CORE_X86_XSTATE),
- ENTRY(CORE_X86_CET),
-
- ENTRY(ANDROID_MEMTAG),
- ENTRY(ANDROID_KUSER),
- ENTRY(ANDROID_IDENT),
- ENTRY(STAPSDT),
- ENTRY(GO_BUILDID),
- ENTRY(QNX_STACK),
+#define ENTRY(X) std::pair(Note::TYPE::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(UNKNOWN),
+ ENTRY(GNU_ABI_TAG),
+ ENTRY(GNU_HWCAP),
+ ENTRY(GNU_ABI_TAG),
+ ENTRY(GNU_HWCAP),
+ ENTRY(GNU_BUILD_ID),
+ ENTRY(GNU_GOLD_VERSION),
+ ENTRY(GNU_PROPERTY_TYPE_0),
+ ENTRY(GNU_BUILD_ATTRIBUTE_OPEN),
+ ENTRY(GNU_BUILD_ATTRIBUTE_FUNC),
+ ENTRY(CRASHPAD),
+ ENTRY(CORE_PRSTATUS),
+ ENTRY(CORE_FPREGSET),
+ ENTRY(CORE_PRPSINFO),
+ ENTRY(CORE_TASKSTRUCT),
+ ENTRY(CORE_AUXV),
+ ENTRY(CORE_PSTATUS),
+ ENTRY(CORE_FPREGS),
+ ENTRY(CORE_PSINFO),
+ ENTRY(CORE_LWPSTATUS),
+ ENTRY(CORE_LWPSINFO),
+ ENTRY(CORE_WIN32PSTATUS),
+ ENTRY(CORE_FILE),
+ ENTRY(CORE_PRXFPREG),
+ ENTRY(CORE_SIGINFO),
+
+ ENTRY(CORE_ARM_VFP),
+ ENTRY(CORE_ARM_TLS),
+ ENTRY(CORE_ARM_HW_BREAK),
+ ENTRY(CORE_ARM_HW_WATCH),
+ ENTRY(CORE_ARM_SYSTEM_CALL),
+ ENTRY(CORE_ARM_SVE),
+ ENTRY(CORE_ARM_PAC_MASK),
+ ENTRY(CORE_ARM_PACA_KEYS),
+ ENTRY(CORE_ARM_PACG_KEYS),
+ ENTRY(CORE_TAGGED_ADDR_CTRL),
+ ENTRY(CORE_PAC_ENABLED_KEYS),
+ ENTRY(CORE_X86_TLS),
+ ENTRY(CORE_X86_IOPERM),
+ ENTRY(CORE_X86_XSTATE),
+ ENTRY(CORE_X86_CET),
+
+ ENTRY(ANDROID_MEMTAG),
+ ENTRY(ANDROID_KUSER),
+ ENTRY(ANDROID_IDENT),
+ ENTRY(STAPSDT),
+ ENTRY(GO_BUILDID),
+ ENTRY(QNX_STACK),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(type); it != enums2str.end()) {
return it->second;
@@ -764,5 +759,4 @@ IMPL_WRITE_AT(int32_t)
IMPL_WRITE_AT(uint64_t)
IMPL_WRITE_AT(int64_t)
-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/NoteDetails/AndroidIdent.cpp b/deps/LIEF/src/ELF/NoteDetails/AndroidIdent.cpp
index 73cc484ddf7..f8a8b38750e 100644
--- a/deps/LIEF/src/ELF/NoteDetails/AndroidIdent.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/AndroidIdent.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,12 +18,13 @@
#include <spdlog/fmt/fmt.h>
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
static constexpr auto sdk_version_offset = 0;
static constexpr auto ndk_version_offset = sizeof(uint32_t);
-static constexpr auto ndk_build_number_offset = ndk_version_offset + AndroidIdent::ndk_version_size;
+static constexpr auto ndk_build_number_offset =
+ ndk_version_offset + AndroidIdent::ndk_version_size;
uint32_t AndroidIdent::sdk_version() const {
auto val = read_at<uint32_t>(sdk_version_offset);
@@ -72,10 +73,8 @@ void AndroidIdent::accept(Visitor& visitor) const {
void AndroidIdent::dump(std::ostream& os) const {
Note::dump(os);
os << '\n';
- os << fmt::format("SDK: {} NDK: {} NDK Build: {}",
- sdk_version(), ndk_version(), ndk_build_number()
- );
+ os << fmt::format("SDK: {} NDK: {} NDK Build: {}", sdk_version(), ndk_version(),
+ ndk_build_number());
}
-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/NoteDetails/NoteAbi.cpp b/deps/LIEF/src/ELF/NoteDetails/NoteAbi.cpp
index 97bfe4568a7..3a4118cec52 100644
--- a/deps/LIEF/src/ELF/NoteDetails/NoteAbi.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/NoteAbi.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,11 +22,11 @@
#include "spdlog/fmt/fmt.h"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
result<NoteAbi::version_t> NoteAbi::version() const {
- NoteAbi::version_t version;
+ version_t version;
for (size_t i = 0; i < version.size(); ++i) {
auto res = read_at<uint32_t>(version_offset + i * sizeof(uint32_t));
if (!res) {
@@ -64,32 +64,24 @@ void NoteAbi::dump(std::ostream& os) const {
os << '\n';
auto version_res = version().value_or(version_t({0, 0, 0}));
auto abi_res = to_string_or(abi(), "???");
- os << fmt::format(" {}.{}.{} '{}'",
- version_res[0], version_res[1], version_res[2], abi_res
- );
+ os << fmt::format(" {}.{}.{} '{}'", version_res[0], version_res[1],
+ version_res[2], abi_res);
}
const char* to_string(NoteAbi::ABI abi) {
- #define ENTRY(X) std::pair(NoteAbi::ABI::X, #X)
- STRING_MAP enums2str {
- ENTRY(LINUX),
- ENTRY(GNU),
- ENTRY(SOLARIS2),
- ENTRY(FREEBSD),
- ENTRY(NETBSD),
- ENTRY(SYLLABLE),
- ENTRY(NACL),
+#define ENTRY(X) std::pair(NoteAbi::ABI::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(LINUX), ENTRY(GNU), ENTRY(SOLARIS2), ENTRY(FREEBSD),
+ ENTRY(NETBSD), ENTRY(SYLLABLE), ENTRY(NACL),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(abi); it != enums2str.end()) {
return it->second;
}
return "UNKNOWN";
-
}
-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/NoteDetails/NoteGnuProperty.cpp b/deps/LIEF/src/ELF/NoteDetails/NoteGnuProperty.cpp
index f3ea5c5660b..85a959c344f 100644
--- a/deps/LIEF/src/ELF/NoteDetails/NoteGnuProperty.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/NoteGnuProperty.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -30,25 +30,26 @@
#include "LIEF/ELF/NoteDetails/properties/StackSize.hpp"
#include "LIEF/ELF/NoteDetails/properties/X86Feature.hpp"
#include "LIEF/ELF/NoteDetails/properties/X86ISA.hpp"
+#include "LIEF/ELF/NoteDetails/properties/Needed.hpp"
#include "LIEF/ELF/NoteDetails/properties/NoteNoCopyOnProtected.hpp"
#include "LIEF/BinaryStream/SpanStream.hpp"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
inline std::unique_ptr<NoteGnuProperty::Property>
-parse_property(ARCH arch, SpanStream& stream) {
+ parse_property(ARCH arch, SpanStream& stream) {
auto res_type = stream.read<uint32_t>();
if (!res_type) {
- LIEF_DEBUG("Can't read type at offset: 0x{:04x}", stream.pos());
+ LIEF_DEBUG("Failed to read type at offset {:#06x}", stream.pos());
return nullptr;
}
auto data_size = stream.read<uint32_t>();
if (!data_size) {
- LIEF_DEBUG("Can't read data size at offset: 0x{:04x}", stream.pos());
+ LIEF_DEBUG("Failed to read data size at offset {:#06x}", stream.pos());
return nullptr;
}
@@ -61,10 +62,7 @@ parse_property(ARCH arch, SpanStream& stream) {
SpanStream content = std::move(*res_content);
const uint32_t type = *res_type;
if (GNU_PROPERTY_LOPROC <= type && type <= GNU_PROPERTY_HIPROC) {
- if (arch == ARCH::X86_64 ||
- arch == ARCH::IAMCU ||
- arch == ARCH::I386)
- {
+ if (arch == ARCH::X86_64 || arch == ARCH::IAMCU || arch == ARCH::I386) {
switch (type) {
case GNU_PROPERTY_X86_ISA_1_USED:
case GNU_PROPERTY_X86_ISA_1_NEEDED:
@@ -95,38 +93,37 @@ parse_property(ARCH arch, SpanStream& stream) {
switch (type) {
case GNU_PROPERTY_STACK_SIZE:
- {
- const size_t csize = content.size();
- if (csize == sizeof(uint64_t)) {
- return StackSize::create(content.read<uint64_t>().value_or(0));
- }
- if (csize == sizeof(uint32_t)) {
- return StackSize::create(content.read<uint32_t>().value_or(0));
- }
- if (csize == sizeof(uint16_t)) {
- return StackSize::create(content.read<uint16_t>().value_or(0));
- }
- if (csize == sizeof(uint8_t)) {
- return StackSize::create(content.read<uint8_t>().value_or(0));
- }
- LIEF_ERR("Wrong stack size: {}", csize);
- return StackSize::create(0);
+ {
+ const size_t csize = content.size();
+ if (csize == sizeof(uint64_t)) {
+ return StackSize::create(content.read<uint64_t>().value_or(0));
}
+ if (csize == sizeof(uint32_t)) {
+ return StackSize::create(content.read<uint32_t>().value_or(0));
+ }
+ if (csize == sizeof(uint16_t)) {
+ return StackSize::create(content.read<uint16_t>().value_or(0));
+ }
+ if (csize == sizeof(uint8_t)) {
+ return StackSize::create(content.read<uint8_t>().value_or(0));
+ }
+ LIEF_ERR("Invalid stack size: {}", csize);
+ return StackSize::create(0);
+ }
case GNU_PROPERTY_NO_COPY_ON_PROTECTED: return NoteNoCopyOnProtected::create();
default:
+ {
+ if ((GNU_PROPERTY_UINT32_AND_LO <= type &&
+ type <= GNU_PROPERTY_UINT32_AND_HI) ||
+ (GNU_PROPERTY_UINT32_OR_LO <= type && type <= GNU_PROPERTY_UINT32_OR_HI))
{
- if (
- (GNU_PROPERTY_UINT32_AND_LO <= type && type <= GNU_PROPERTY_UINT32_AND_HI) ||
- (GNU_PROPERTY_UINT32_OR_LO <= type && type <= GNU_PROPERTY_UINT32_OR_HI)
- )
- {
- switch (type) {
- case GNU_PROPERTY_1_NEEDED: /* TODO(romain) */ return Generic::create(type);
- default: return Generic::create(type);
- }
-
+ // NOLINTNEXTLINE(bugprone-unhandled-code-paths)
+ switch (type) {
+ case GNU_PROPERTY_1_NEEDED: return Needed::create(content);
+ default: return Generic::create(type);
}
}
+ }
}
return Generic::create(type);
}
@@ -134,7 +131,7 @@ parse_property(ARCH arch, SpanStream& stream) {
NoteGnuProperty::properties_t NoteGnuProperty::properties() const {
auto stream = SpanStream::from_vector(description_);
if (!stream) {
- LIEF_WARN("Can't create stream");
+ LIEF_WARN("Failed to create stream");
return {};
}
const bool is64 = arch_ == ARCH::IA_64 || arch_ == ARCH::AARCH64 ||
@@ -155,13 +152,12 @@ NoteGnuProperty::properties_t NoteGnuProperty::properties() const {
std::unique_ptr<NoteGnuProperty::Property>
-NoteGnuProperty::find(Property::TYPE type) const {
+ NoteGnuProperty::find(Property::TYPE type) const {
properties_t props = properties();
auto it = std::find_if(props.begin(), props.end(),
- [type] (const std::unique_ptr<Property>& prop) {
- return prop->type() == type;
- }
- );
+ [type](const std::unique_ptr<Property>& prop) {
+ return prop->type() == type;
+ });
if (it != props.end()) {
return std::move(*it);
@@ -183,19 +179,13 @@ void NoteGnuProperty::accept(Visitor& visitor) const {
}
const char* to_string(NoteGnuProperty::Property::TYPE type) {
- #define ENTRY(X) std::pair(NoteGnuProperty::Property::TYPE::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNKNOWN),
- ENTRY(GENERIC),
- ENTRY(AARCH64_FEATURES),
- ENTRY(AARCH64_PAUTH),
- ENTRY(STACK_SIZE),
- ENTRY(NO_COPY_ON_PROTECTED),
- ENTRY(X86_ISA),
- ENTRY(X86_FEATURE),
- ENTRY(NEEDED),
+#define ENTRY(X) std::pair(NoteGnuProperty::Property::TYPE::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(UNKNOWN), ENTRY(GENERIC), ENTRY(AARCH64_FEATURES),
+ ENTRY(AARCH64_PAUTH), ENTRY(STACK_SIZE), ENTRY(NO_COPY_ON_PROTECTED),
+ ENTRY(X86_ISA), ENTRY(X86_FEATURE), ENTRY(NEEDED),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(type); it != enums2str.end()) {
return it->second;
@@ -208,5 +198,4 @@ void NoteGnuProperty::Property::dump(std::ostream& os) const {
os << to_string(this->type());
}
-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/NoteDetails/QNXStack.cpp b/deps/LIEF/src/ELF/NoteDetails/QNXStack.cpp
index 26fc6d8b10f..b49241548bb 100644
--- a/deps/LIEF/src/ELF/NoteDetails/QNXStack.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/QNXStack.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,12 +18,13 @@
#include <spdlog/fmt/fmt.h>
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
static constexpr auto stack_size_offset = 0;
static constexpr auto stack_allocated_offset = sizeof(uint32_t);
-static constexpr auto is_stack_exec_offset = stack_allocated_offset + sizeof(uint32_t);
+static constexpr auto is_stack_exec_offset =
+ stack_allocated_offset + sizeof(uint32_t);
uint32_t QNXStack::stack_size() const {
return read_at<uint32_t>(stack_size_offset).value_or(0);
@@ -55,10 +56,9 @@ void QNXStack::accept(Visitor& visitor) const {
void QNXStack::dump(std::ostream& os) const {
Note::dump(os);
os << '\n';
- os << fmt::format(" Stack Size: 0x{:x}\n", stack_size())
- << fmt::format(" Stack allocated: 0x{:x}\n", stack_allocated())
+ os << fmt::format(" Stack Size: {:#x}\n", stack_size())
+ << fmt::format(" Stack allocated: {:#x}\n", stack_allocated())
<< fmt::format(" Executable: {}\n", is_executable());
}
-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/NoteDetails/core/CoreAuxv.cpp b/deps/LIEF/src/ELF/NoteDetails/core/CoreAuxv.cpp
index c1044233e2b..aad437abf27 100644
--- a/deps/LIEF/src/ELF/NoteDetails/core/CoreAuxv.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/core/CoreAuxv.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,12 +25,13 @@
#include "spdlog/fmt/fmt.h"
#include "ELF/Structures.hpp"
-namespace LIEF {
-namespace ELF {
-template<class ELF_T> inline result<uint64_t>
-get_impl(CoreAuxv::TYPE type, const Note::description_t& desc) {
- using Elf_Auxv = typename ELF_T::Elf_Auxv;
+namespace LIEF::ELF {
+
+template<class ELF_T>
+inline result<uint64_t> get_impl(CoreAuxv::TYPE type,
+ const Note::description_t& desc) {
+ using Elf_Auxv = typename ELF_T::Elf_Auxv;
auto stream = SpanStream::from_vector(desc);
if (!stream) {
return make_error_code(get_error(stream));
@@ -52,9 +53,10 @@ get_impl(CoreAuxv::TYPE type, const Note::description_t& desc) {
return make_error_code(lief_errors::not_found);
}
-template<class ELF_T> inline std::map<CoreAuxv::TYPE, uint64_t>
-get_values_impl(const Note::description_t& desc) {
- using Elf_Auxv = typename ELF_T::Elf_Auxv;
+template<class ELF_T>
+inline std::map<CoreAuxv::TYPE, uint64_t>
+ get_values_impl(const Note::description_t& desc) {
+ using Elf_Auxv = typename ELF_T::Elf_Auxv;
auto stream = SpanStream::from_vector(desc);
if (!stream) {
return {};
@@ -79,10 +81,9 @@ get_values_impl(const Note::description_t& desc) {
template<class ELF_T>
inline bool write_impl(Note::description_t& description,
- const std::map<CoreAuxv::TYPE, uint64_t>& values)
-{
- using Elf_Auxv = typename ELF_T::Elf_Auxv;
- using ptr_t = typename ELF_T::uint;
+ const std::map<CoreAuxv::TYPE, uint64_t>& values) {
+ using Elf_Auxv = typename ELF_T::Elf_Auxv;
+ using ptr_t = typename ELF_T::uint;
vector_iostream io;
io.reserve(values.size() * sizeof(Elf_Auxv));
@@ -91,11 +92,9 @@ inline bool write_impl(Note::description_t& description,
if (type == CoreAuxv::TYPE::END) {
continue;
}
- io.write(static_cast<ptr_t>(type))
- .write(static_cast<ptr_t>(value));
+ io.write(static_cast<ptr_t>(type)).write(static_cast<ptr_t>(value));
}
- io.write(static_cast<ptr_t>(CoreAuxv::TYPE::END))
- .write(static_cast<ptr_t>(0));
+ io.write(static_cast<ptr_t>(CoreAuxv::TYPE::END)).write(static_cast<ptr_t>(0));
io.move(description);
return true;
@@ -104,14 +103,14 @@ inline bool write_impl(Note::description_t& description,
result<uint64_t> CoreAuxv::get(TYPE type) const {
return class_ == Header::CLASS::ELF32 ?
- get_impl<details::ELF32>(type, description_) :
- get_impl<details::ELF64>(type, description_);
+ get_impl<details::ELF32>(type, description_) :
+ get_impl<details::ELF64>(type, description_);
}
std::map<CoreAuxv::TYPE, uint64_t> CoreAuxv::values() const {
return class_ == Header::CLASS::ELF32 ?
- get_values_impl<details::ELF32>(description_) :
- get_values_impl<details::ELF64>(description_);
+ get_values_impl<details::ELF32>(description_) :
+ get_values_impl<details::ELF64>(description_);
}
@@ -123,8 +122,8 @@ bool CoreAuxv::set(TYPE type, uint64_t value) {
bool CoreAuxv::set(const std::map<TYPE, uint64_t>& values) {
return class_ == Header::CLASS::ELF32 ?
- write_impl<details::ELF32>(description_, values) :
- write_impl<details::ELF64>(description_, values);
+ write_impl<details::ELF32>(description_, values) :
+ write_impl<details::ELF64>(description_, values);
}
void CoreAuxv::dump(std::ostream& os) const {
@@ -137,7 +136,7 @@ void CoreAuxv::dump(std::ostream& os) const {
os << '\n';
for (const auto& [type, val] : aux_vals) {
- os << fmt::format(" {}: 0x{:08x}\n", to_string(type), val);
+ os << fmt::format(" {}: {:#010x}\n", to_string(type), val);
}
}
@@ -146,40 +145,20 @@ void CoreAuxv::accept(Visitor& visitor) const {
}
const char* to_string(CoreAuxv::TYPE type) {
- #define ENTRY(X) std::pair(CoreAuxv::TYPE::X, #X)
- STRING_MAP enums2str {
- ENTRY(END),
- ENTRY(IGNORE_TY),
- ENTRY(EXECFD),
- ENTRY(PHDR),
- ENTRY(PHENT),
- ENTRY(PHNUM),
- ENTRY(PAGESZ),
- ENTRY(BASE),
- ENTRY(FLAGS),
- ENTRY(ENTRY),
- ENTRY(NOTELF),
- ENTRY(UID),
- ENTRY(EUID),
- ENTRY(GID),
- ENTRY(EGID),
- ENTRY(TGT_PLATFORM),
- ENTRY(HWCAP),
- ENTRY(CLKTCK),
- ENTRY(FPUCW),
- ENTRY(DCACHEBSIZE),
- ENTRY(ICACHEBSIZE),
- ENTRY(UCACHEBSIZE),
- ENTRY(IGNOREPPC),
- ENTRY(SECURE),
- ENTRY(BASE_PLATFORM),
- ENTRY(RANDOM),
- ENTRY(HWCAP2),
- ENTRY(EXECFN),
- ENTRY(SYSINFO),
- ENTRY(SYSINFO_EHDR),
+#define ENTRY(X) std::pair(CoreAuxv::TYPE::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(END), ENTRY(IGNORE_TY), ENTRY(EXECFD),
+ ENTRY(PHDR), ENTRY(PHENT), ENTRY(PHNUM),
+ ENTRY(PAGESZ), ENTRY(BASE), ENTRY(FLAGS),
+ ENTRY(ENTRY), ENTRY(NOTELF), ENTRY(UID),
+ ENTRY(EUID), ENTRY(GID), ENTRY(EGID),
+ ENTRY(TGT_PLATFORM), ENTRY(HWCAP), ENTRY(CLKTCK),
+ ENTRY(FPUCW), ENTRY(DCACHEBSIZE), ENTRY(ICACHEBSIZE),
+ ENTRY(UCACHEBSIZE), ENTRY(IGNOREPPC), ENTRY(SECURE),
+ ENTRY(BASE_PLATFORM), ENTRY(RANDOM), ENTRY(HWCAP2),
+ ENTRY(EXECFN), ENTRY(SYSINFO), ENTRY(SYSINFO_EHDR),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(type); it != enums2str.end()) {
return it->second;
@@ -188,5 +167,4 @@ const char* to_string(CoreAuxv::TYPE type) {
return "UNKNOWN";
}
-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/NoteDetails/core/CoreFile.cpp b/deps/LIEF/src/ELF/NoteDetails/core/CoreFile.cpp
index b844d4c300e..8563625a079 100644
--- a/deps/LIEF/src/ELF/NoteDetails/core/CoreFile.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/core/CoreFile.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,13 +21,13 @@
#include "ELF/Structures.hpp"
#include "LIEF/iostream.hpp"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
template<class ELF_T>
void CoreFile::read_files() {
static constexpr auto MAX_ENTRIES = 6000;
- using Elf_Addr = typename ELF_T::Elf_Addr;
+ using Elf_Addr = typename ELF_T::Elf_Addr;
using Elf_FileEntry = typename ELF_T::Elf_FileEntry;
auto stream = SpanStream::from_vector(description_);
@@ -41,7 +41,7 @@ void CoreFile::read_files() {
}
if (*count > MAX_ENTRIES) {
- LIEF_ERR("Too many entries ({} while limited at {})", *count, MAX_ENTRIES);
+ LIEF_ERR("Too many entries ({}, limit {})", *count, MAX_ENTRIES);
return;
}
@@ -52,26 +52,26 @@ void CoreFile::read_files() {
page_size_ = *page_size;
files_.resize(*count);
- for (size_t i = 0; i < files_.size(); ++i) {
+ for (entry_t& file : files_) {
auto entry = stream->read<Elf_FileEntry>();
if (!entry) {
break;
}
- files_[i] = {entry->start, entry->end, entry->file_ofs, ""};
+ file = {entry->start, entry->end, entry->file_ofs, ""};
}
- for (size_t i = 0; i < files_.size(); ++i) {
+ for (entry_t& file : files_) {
auto path = stream->read_string();
if (!path) {
break;
}
- files_[i].path = std::move(*path);
+ file.path = std::move(*path);
}
}
template<class ELF_T>
void CoreFile::write_files() {
- using Elf_Addr = typename ELF_T::Elf_Addr;
+ using Elf_Addr = typename ELF_T::Elf_Addr;
using Elf_FileEntry = typename ELF_T::Elf_FileEntry;
vector_iostream ios;
@@ -81,8 +81,8 @@ void CoreFile::write_files() {
Elf_FileEntry raw_entry;
std::memset(&raw_entry, 0, sizeof(Elf_FileEntry));
- raw_entry.start = static_cast<Elf_Addr>(entry.start);
- raw_entry.end = static_cast<Elf_Addr>(entry.end);
+ raw_entry.start = static_cast<Elf_Addr>(entry.start);
+ raw_entry.end = static_cast<Elf_Addr>(entry.end);
raw_entry.file_ofs = static_cast<Elf_Addr>(entry.file_ofs);
ios.write(raw_entry);
}
@@ -93,11 +93,11 @@ void CoreFile::write_files() {
ios.move(description_);
}
-CoreFile::CoreFile(ARCH arch, Header::CLASS cls, std::string name,
- uint32_t type, Note::description_t description) :
+CoreFile::CoreFile(ARCH arch, Header::CLASS cls, std::string name, uint32_t type,
+ Note::description_t description) :
Note(std::move(name), Note::TYPE::CORE_FILE, type, std::move(description), ""),
- arch_(arch), class_(cls)
-{
+ arch_(arch),
+ class_(cls) {
class_ == Header::CLASS::ELF32 ? read_files<details::ELF32>() :
read_files<details::ELF64>();
@@ -108,7 +108,6 @@ void CoreFile::files(const CoreFile::files_t& files) {
files_ = files;
class_ == Header::CLASS::ELF32 ? write_files<details::ELF32>() :
write_files<details::ELF64>();
-
}
void CoreFile::accept(Visitor& visitor) const {
@@ -128,10 +127,9 @@ void CoreFile::dump(std::ostream& os) const {
}
std::ostream& operator<<(std::ostream& os, const CoreFile::entry_t& entry) {
- os << fmt::format("{}: [0x{:04x}, 0x{:04x}]@0x{:x}",
- entry.path, entry.start, entry.end, entry.file_ofs);
+ os << fmt::format("{}: [{:#06x}, {:#06x}]@{:#x}", entry.path, entry.start,
+ entry.end, entry.file_ofs);
return os;
}
-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/NoteDetails/core/CorePrPsInfo.cpp b/deps/LIEF/src/ELF/NoteDetails/core/CorePrPsInfo.cpp
index 97b607d18cc..c183c3fd045 100644
--- a/deps/LIEF/src/ELF/NoteDetails/core/CorePrPsInfo.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/core/CorePrPsInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,12 +23,12 @@
#include "spdlog/fmt/fmt.h"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
template<class ELF_T>
inline result<CorePrPsInfo::info_t>
-get_info_impl(const Note::description_t& description) {
+ get_info_impl(const Note::description_t& description) {
using Elf_Prpsinfo = typename ELF_T::Elf_Prpsinfo;
CorePrPsInfo::info_t info;
auto stream = SpanStream::from_vector(description);
@@ -40,27 +40,26 @@ get_info_impl(const Note::description_t& description) {
return make_error_code(get_error(raw));
}
- info.state = raw->pr_state;
- info.sname = raw->pr_sname;
- info.zombie = static_cast<bool>(raw->pr_zomb);
- info.nice = raw->pr_nice;
- info.flag = raw->pr_flag;
- info.uid = raw->pr_uid;
- info.gid = raw->pr_gid;
- info.pid = raw->pr_pid;
- info.ppid = raw->pr_ppid;
- info.pgrp = raw->pr_pgrp;
- info.sid = raw->pr_sid;
+ info.state = raw->pr_state;
+ info.sname = raw->pr_sname;
+ info.zombie = static_cast<bool>(raw->pr_zomb);
+ info.nice = raw->pr_nice;
+ info.flag = raw->pr_flag;
+ info.uid = raw->pr_uid;
+ info.gid = raw->pr_gid;
+ info.pid = raw->pr_pid;
+ info.ppid = raw->pr_ppid;
+ info.pgrp = raw->pr_pgrp;
+ info.sid = raw->pr_sid;
info.filename = std::string(raw->pr_fname, sizeof(Elf_Prpsinfo::pr_fname));
- info.args = std::string(raw->pr_psargs, sizeof(Elf_Prpsinfo::pr_psargs));
+ info.args = std::string(raw->pr_psargs, sizeof(Elf_Prpsinfo::pr_psargs));
return info;
}
-template<class ELF_T> inline ok_error_t
-write_info_impl(Note::description_t& description,
- const CorePrPsInfo::info_t& info)
-{
+template<class ELF_T>
+inline ok_error_t write_info_impl(Note::description_t& description,
+ const CorePrPsInfo::info_t& info) {
using Elf_Prpsinfo = typename ELF_T::Elf_Prpsinfo;
Elf_Prpsinfo raw;
std::memset(reinterpret_cast<void*>(&raw), 0, sizeof(Elf_Prpsinfo));
@@ -96,15 +95,15 @@ write_info_impl(Note::description_t& description,
result<CorePrPsInfo::info_t> CorePrPsInfo::info() const {
return class_ == Header::CLASS::ELF32 ?
- get_info_impl<details::ELF32>(description_) :
- get_info_impl<details::ELF64>(description_);
+ get_info_impl<details::ELF32>(description_) :
+ get_info_impl<details::ELF64>(description_);
}
void CorePrPsInfo::info(const info_t& info) {
class_ == Header::CLASS::ELF32 ?
- write_info_impl<details::ELF32>(description_, info) :
- write_info_impl<details::ELF64>(description_, info);
+ write_info_impl<details::ELF32>(description_, info) :
+ write_info_impl<details::ELF64>(description_, info);
}
void CorePrPsInfo::accept(Visitor& visitor) const {
@@ -118,17 +117,16 @@ void CorePrPsInfo::dump(std::ostream& os) const {
return;
}
os << '\n';
- os << fmt::format(" Path: {} (args: {})\n",
- info_res->filename_stripped(), info_res->args_stripped())
- << fmt::format(" UID: {:04d} GID: {:04d} PID: {:04d}\n",
- info_res->uid, info_res->gid, info_res->pid)
- << fmt::format(" PPID: {:04d} PGRP: {:04d} SID: {:04d}\n",
- info_res->ppid, info_res->pgrp, info_res->sid)
- << fmt::format(" Flag: 0x{:04x} Nice: {} Zombie: {}\n",
- info_res->flag, info_res->nice, info_res->zombie)
- << fmt::format(" State: 0x{:x} State Name: {}\n",
- info_res->state, info_res->sname);
+ os << fmt::format(" Path: {} (args: {})\n", info_res->filename_stripped(),
+ info_res->args_stripped())
+ << fmt::format(" UID: {:04d} GID: {:04d} PID: {:04d}\n", info_res->uid,
+ info_res->gid, info_res->pid)
+ << fmt::format(" PPID: {:04d} PGRP: {:04d} SID: {:04d}\n", info_res->ppid,
+ info_res->pgrp, info_res->sid)
+ << fmt::format(" Flag: {:#06x} Nice: {} Zombie: {}\n", info_res->flag,
+ info_res->nice, info_res->zombie)
+ << fmt::format(" State: {:#x} State Name: {}\n", info_res->state,
+ info_res->sname);
}
-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/NoteDetails/core/CorePrStatus.cpp b/deps/LIEF/src/ELF/NoteDetails/core/CorePrStatus.cpp
index b8671f333b2..76ebf6f5cf3 100644
--- a/deps/LIEF/src/ELF/NoteDetails/core/CorePrStatus.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/core/CorePrStatus.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,13 +24,13 @@
#include "LIEF/ELF/NoteDetails/core/CorePrStatus.hpp"
#include "ELF/Structures.hpp"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
template<class ELF_T>
inline CorePrStatus::pr_status_t
-get_status_impl(const Note::description_t& description) {
- using Elf_Prstatus = typename ELF_T::Elf_Prstatus;
+ get_status_impl(const Note::description_t& description) {
+ using Elf_Prstatus = typename ELF_T::Elf_Prstatus;
CorePrStatus::pr_status_t status;
auto stream = SpanStream::from_vector(description);
@@ -44,18 +44,18 @@ get_status_impl(const Note::description_t& description) {
}
status.info.signo = raw_pr_status->pr_info.si_signo;
- status.info.code = raw_pr_status->pr_info.si_code;
+ status.info.code = raw_pr_status->pr_info.si_code;
status.info.err = raw_pr_status->pr_info.si_errno;
- status.cursig = raw_pr_status->pr_cursig;
- status.reserved = raw_pr_status->reserved;
+ status.cursig = raw_pr_status->pr_cursig;
+ status.reserved = raw_pr_status->reserved;
status.sigpend = raw_pr_status->pr_sigpend;
status.sighold = raw_pr_status->pr_sighold;
- status.pid = raw_pr_status->pr_pid;
+ status.pid = raw_pr_status->pr_pid;
status.ppid = raw_pr_status->pr_ppid;
status.pgrp = raw_pr_status->pr_pgrp;
- status.sid = raw_pr_status->pr_sid;
+ status.sid = raw_pr_status->pr_sid;
status.utime.sec = raw_pr_status->pr_utime.tv_sec;
status.utime.usec = raw_pr_status->pr_utime.tv_usec;
@@ -73,8 +73,9 @@ get_status_impl(const Note::description_t& description) {
}
template<class ELF_T>
-inline Note::description_t write_status_impl(const CorePrStatus::pr_status_t& status) {
- using Elf_Prstatus = typename ELF_T::Elf_Prstatus;
+inline Note::description_t
+ write_status_impl(const CorePrStatus::pr_status_t& status) {
+ using Elf_Prstatus = typename ELF_T::Elf_Prstatus;
Elf_Prstatus raw_pr_status;
raw_pr_status.pr_info.si_signo = status.info.signo;
@@ -83,8 +84,10 @@ inline Note::description_t write_status_impl(const CorePrStatus::pr_status_t& st
raw_pr_status.pr_cursig = status.cursig;
raw_pr_status.reserved = status.reserved;
- raw_pr_status.pr_sigpend = static_cast<decltype(raw_pr_status.pr_sigpend)>(status.sigpend);
- raw_pr_status.pr_sighold = static_cast<decltype(raw_pr_status.pr_sighold)>(status.sighold);
+ raw_pr_status.pr_sigpend =
+ static_cast<decltype(raw_pr_status.pr_sigpend)>(status.sigpend);
+ raw_pr_status.pr_sighold =
+ static_cast<decltype(raw_pr_status.pr_sighold)>(status.sighold);
raw_pr_status.pr_pid = status.pid;
raw_pr_status.pr_ppid = status.ppid;
@@ -109,36 +112,27 @@ inline Note::description_t write_status_impl(const CorePrStatus::pr_status_t& st
}
template<class REG_T>
-inline result<uint64_t>
-get_reg_impl(REG_T reg, const Note::description_t& description,
- Header::CLASS cls, ARCH arch)
-{
- if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::X86>)
- {
+inline result<uint64_t> get_reg_impl(REG_T reg,
+ const Note::description_t& description,
+ Header::CLASS cls, ARCH arch) {
+ if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::X86>) {
if (arch != ARCH::I386) {
return make_error_code(lief_errors::not_found);
}
- }
- else if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::X86_64>)
- {
+ } else if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::X86_64>) {
if (arch != ARCH::X86_64) {
return make_error_code(lief_errors::not_found);
}
- }
- else if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::ARM>)
- {
+ } else if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::ARM>) {
if (arch != ARCH::ARM) {
return make_error_code(lief_errors::not_found);
}
- }
- else if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::AARCH64>)
- {
+ } else if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::AARCH64>) {
if (arch != ARCH::AARCH64) {
return make_error_code(lief_errors::not_found);
}
- }
- else {
- LIEF_WARN("Architecture not supported");
+ } else {
+ LIEF_WARN("Unsupported architecture");
return make_error_code(lief_errors::not_found);
}
@@ -176,36 +170,27 @@ get_reg_impl(REG_T reg, const Note::description_t& description,
}
template<class REG_T>
-inline ok_error_t
-set_reg_impl(REG_T reg, uint64_t value, Note::description_t& description,
- Header::CLASS cls, ARCH arch)
-{
- if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::X86>)
- {
+inline ok_error_t set_reg_impl(REG_T reg, uint64_t value,
+ Note::description_t& description, Header::CLASS cls,
+ ARCH arch) {
+ if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::X86>) {
if (arch != ARCH::I386) {
return make_error_code(lief_errors::not_found);
}
- }
- else if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::X86_64>)
- {
+ } else if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::X86_64>) {
if (arch != ARCH::X86_64) {
return make_error_code(lief_errors::not_found);
}
- }
- else if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::ARM>)
- {
+ } else if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::ARM>) {
if (arch != ARCH::ARM) {
return make_error_code(lief_errors::not_found);
}
- }
- else if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::AARCH64>)
- {
+ } else if constexpr (std::is_same_v<REG_T, CorePrStatus::Registers::AARCH64>) {
if (arch != ARCH::AARCH64) {
return make_error_code(lief_errors::not_found);
}
- }
- else {
- LIEF_WARN("Architecture not supported");
+ } else {
+ LIEF_WARN("Unsupported architecture");
return make_error_code(lief_errors::not_found);
}
@@ -240,61 +225,61 @@ std::vector<uint64_t> CorePrStatus::register_values() const {
std::vector<uint64_t> values;
switch (arch_) {
case ARCH::X86_64:
- {
- using Reg = Registers::X86_64;
- const auto count = static_cast<size_t>(Reg::_COUNT);
- values.reserve(count);
- for (size_t i = 0; i < count; ++i) {
- if (auto val = get(Reg(i))) {
- values.push_back(*val);
- } else {
- return {};
- }
+ {
+ using Reg = Registers::X86_64;
+ const auto count = static_cast<size_t>(Reg::_COUNT);
+ values.reserve(count);
+ for (size_t i = 0; i < count; ++i) {
+ if (auto val = get(Reg(i))) {
+ values.push_back(*val);
+ } else {
+ return {};
}
- return values;
}
+ return values;
+ }
case ARCH::I386:
- {
- using Reg = Registers::X86;
- const auto count = static_cast<size_t>(Reg::_COUNT);
- values.reserve(count);
- for (size_t i = 0; i < count; ++i) {
- if (auto val = get(Reg(i))) {
- values.push_back(*val);
- } else {
- return {};
- }
+ {
+ using Reg = Registers::X86;
+ const auto count = static_cast<size_t>(Reg::_COUNT);
+ values.reserve(count);
+ for (size_t i = 0; i < count; ++i) {
+ if (auto val = get(Reg(i))) {
+ values.push_back(*val);
+ } else {
+ return {};
}
- return values;
}
+ return values;
+ }
case ARCH::ARM:
- {
- using Reg = Registers::ARM;
- const auto count = static_cast<size_t>(Reg::_COUNT);
- values.reserve(count);
- for (size_t i = 0; i < count; ++i) {
- if (auto val = get(Reg(i))) {
- values.push_back(*val);
- } else {
- return {};
- }
+ {
+ using Reg = Registers::ARM;
+ const auto count = static_cast<size_t>(Reg::_COUNT);
+ values.reserve(count);
+ for (size_t i = 0; i < count; ++i) {
+ if (auto val = get(Reg(i))) {
+ values.push_back(*val);
+ } else {
+ return {};
}
- return values;
}
+ return values;
+ }
case ARCH::AARCH64:
- {
- using Reg = Registers::AARCH64;
- const auto count = static_cast<size_t>(Reg::_COUNT);
- values.reserve(count);
- for (size_t i = 0; i < count; ++i) {
- if (auto val = get(Reg(i))) {
- values.push_back(*val);
- } else {
- return {};
- }
+ {
+ using Reg = Registers::AARCH64;
+ const auto count = static_cast<size_t>(Reg::_COUNT);
+ values.reserve(count);
+ for (size_t i = 0; i < count; ++i) {
+ if (auto val = get(Reg(i))) {
+ values.push_back(*val);
+ } else {
+ return {};
}
- return values;
}
+ return values;
+ }
default: return {};
}
}
@@ -308,8 +293,8 @@ CorePrStatus::pr_status_t CorePrStatus::status() const {
void CorePrStatus::status(const pr_status_t& status) {
Note::description_t description = class_ == Header::CLASS::ELF32 ?
- write_status_impl<details::ELF32>(status) :
- write_status_impl<details::ELF64>(status);
+ write_status_impl<details::ELF32>(status) :
+ write_status_impl<details::ELF64>(status);
if (description.empty()) {
return;
@@ -389,9 +374,9 @@ template<class REG>
void dump_impl(std::ostream& os, const std::vector<uint64_t>& reg_vals) {
for (size_t i = 0; i < reg_vals.size(); ++i) {
if constexpr (std::is_void_v<REG>) {
- os << fmt::format(" 0x{:08x}\n", reg_vals[i]);
+ os << fmt::format(" {:#010x}\n", reg_vals[i]);
} else {
- os << fmt::format(" {}: 0x{:08x}\n", to_string(REG(i)), reg_vals[i]);
+ os << fmt::format(" {}: {:#010x}\n", to_string(REG(i)), reg_vals[i]);
}
}
}
@@ -400,27 +385,25 @@ void CorePrStatus::dump(std::ostream& os) const {
Note::dump(os);
const CorePrStatus::pr_status_t& status = this->status();
os << '\n'
- << fmt::format(" PID: {:04d} PPID: {:04d} PGRP: {:04d}\n",
- status.pid, status.ppid, status.pgrp)
- << fmt::format(" SID: {:04d} SIGNO: {:04d} SIGCODE: {:04d}\n",
- status.sid, status.info.signo, status.info.code)
+ << fmt::format(" PID: {:04d} PPID: {:04d} PGRP: {:04d}\n", status.pid,
+ status.ppid, status.pgrp)
+ << fmt::format(" SID: {:04d} SIGNO: {:04d} SIGCODE: {:04d}\n", status.sid,
+ status.info.signo, status.info.code)
<< fmt::format(" SIGERR: {:04d} SIGPEND: {:04d} SIGHOLD: {:04d}\n",
status.info.err, status.sigpend, status.sighold)
- << fmt::format(" CURRSIG: 0x{:04d} reserved: {}\n",
- status.cursig, status.reserved);
+ << fmt::format(" CURRSIG: {:#06x} reserved: {}\n", status.cursig,
+ status.reserved);
const std::vector<uint64_t>& reg_vals = register_values();
switch (architecture()) {
- case ARCH::ARM:
- dump_impl<CorePrStatus::Registers::ARM>(os, reg_vals); break;
+ case ARCH::ARM: dump_impl<CorePrStatus::Registers::ARM>(os, reg_vals); break;
case ARCH::AARCH64:
- dump_impl<CorePrStatus::Registers::AARCH64>(os, reg_vals); break;
- case ARCH::I386:
- dump_impl<CorePrStatus::Registers::X86>(os, reg_vals); break;
+ dump_impl<CorePrStatus::Registers::AARCH64>(os, reg_vals);
+ break;
+ case ARCH::I386: dump_impl<CorePrStatus::Registers::X86>(os, reg_vals); break;
case ARCH::X86_64:
- dump_impl<CorePrStatus::Registers::X86_64>(os, reg_vals); break;
- default:
- dump_impl<void>(os, reg_vals); break;
-
+ dump_impl<CorePrStatus::Registers::X86_64>(os, reg_vals);
+ break;
+ default: dump_impl<void>(os, reg_vals); break;
}
}
@@ -429,27 +412,14 @@ void CorePrStatus::accept(Visitor& visitor) const {
}
const char* to_string(CorePrStatus::Registers::X86 e) {
- #define ENTRY(X) std::pair(CorePrStatus::Registers::X86::X, #X)
- STRING_MAP enum_strings {
- ENTRY(EBX),
- ENTRY(ECX),
- ENTRY(EDX),
- ENTRY(ESI),
- ENTRY(EDI),
- ENTRY(EBP),
- ENTRY(EAX),
- ENTRY(DS),
- ENTRY(ES),
- ENTRY(FS),
- ENTRY(GS),
- ENTRY(ORIG_EAX),
- ENTRY(EIP),
- ENTRY(CS),
- ENTRY(EFLAGS),
- ENTRY(ESP),
- ENTRY(SS),
+#define ENTRY(X) std::pair(CorePrStatus::Registers::X86::X, #X)
+ STRING_MAP enum_strings{
+ ENTRY(EBX), ENTRY(ECX), ENTRY(EDX), ENTRY(ESI), ENTRY(EDI),
+ ENTRY(EBP), ENTRY(EAX), ENTRY(DS), ENTRY(ES), ENTRY(FS),
+ ENTRY(GS), ENTRY(ORIG_EAX), ENTRY(EIP), ENTRY(CS), ENTRY(EFLAGS),
+ ENTRY(ESP), ENTRY(SS),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enum_strings.find(e); it != enum_strings.end()) {
return it->second;
@@ -458,31 +428,15 @@ const char* to_string(CorePrStatus::Registers::X86 e) {
}
const char* to_string(CorePrStatus::Registers::X86_64 e) {
- #define ENTRY(X) std::pair(CorePrStatus::Registers::X86_64::X, #X)
- STRING_MAP enums2str {
- ENTRY(R15),
- ENTRY(R14),
- ENTRY(R13),
- ENTRY(R12),
- ENTRY(RBP),
- ENTRY(RBX),
- ENTRY(R11),
- ENTRY(R10),
- ENTRY(R9),
- ENTRY(R8),
- ENTRY(RAX),
- ENTRY(RCX),
- ENTRY(RDX),
- ENTRY(RSI),
- ENTRY(RDI),
- ENTRY(ORIG_RAX),
- ENTRY(RIP),
- ENTRY(CS),
- ENTRY(EFLAGS),
- ENTRY(RSP),
- ENTRY(SS),
+#define ENTRY(X) std::pair(CorePrStatus::Registers::X86_64::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(R15), ENTRY(R14), ENTRY(R13), ENTRY(R12), ENTRY(RBP),
+ ENTRY(RBX), ENTRY(R11), ENTRY(R10), ENTRY(R9), ENTRY(R8),
+ ENTRY(RAX), ENTRY(RCX), ENTRY(RDX), ENTRY(RSI), ENTRY(RDI),
+ ENTRY(ORIG_RAX), ENTRY(RIP), ENTRY(CS), ENTRY(EFLAGS), ENTRY(RSP),
+ ENTRY(SS), ENTRY(FS_BASE), ENTRY(GS_BASE), ENTRY(DS), ENTRY(ES),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -491,27 +445,13 @@ const char* to_string(CorePrStatus::Registers::X86_64 e) {
}
const char* to_string(CorePrStatus::Registers::ARM e) {
- #define ENTRY(X) std::pair(CorePrStatus::Registers::ARM::X, #X)
- STRING_MAP enums2str {
- ENTRY(R0),
- ENTRY(R1),
- ENTRY(R2),
- ENTRY(R3),
- ENTRY(R4),
- ENTRY(R5),
- ENTRY(R6),
- ENTRY(R7),
- ENTRY(R8),
- ENTRY(R9),
- ENTRY(R10),
- ENTRY(R11),
- ENTRY(R12),
- ENTRY(R13),
- ENTRY(R14),
- ENTRY(R15),
- ENTRY(CPSR),
+#define ENTRY(X) std::pair(CorePrStatus::Registers::ARM::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(R0), ENTRY(R1), ENTRY(R2), ENTRY(R3), ENTRY(R4), ENTRY(R5),
+ ENTRY(R6), ENTRY(R7), ENTRY(R8), ENTRY(R9), ENTRY(R10), ENTRY(R11),
+ ENTRY(R12), ENTRY(R13), ENTRY(R14), ENTRY(R15), ENTRY(CPSR),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -521,45 +461,16 @@ const char* to_string(CorePrStatus::Registers::ARM e) {
}
const char* to_string(CorePrStatus::Registers::AARCH64 e) {
- #define ENTRY(X) std::pair(CorePrStatus::Registers::AARCH64::X, #X)
- STRING_MAP enum_strings {
- ENTRY(X0),
- ENTRY(X1),
- ENTRY(X2),
- ENTRY(X3),
- ENTRY(X4),
- ENTRY(X5),
- ENTRY(X6),
- ENTRY(X7),
- ENTRY(X8),
- ENTRY(X9),
- ENTRY(X10),
- ENTRY(X11),
- ENTRY(X12),
- ENTRY(X13),
- ENTRY(X14),
- ENTRY(X15),
- ENTRY(X15),
- ENTRY(X16),
- ENTRY(X17),
- ENTRY(X18),
- ENTRY(X19),
- ENTRY(X20),
- ENTRY(X21),
- ENTRY(X22),
- ENTRY(X23),
- ENTRY(X24),
- ENTRY(X25),
- ENTRY(X26),
- ENTRY(X27),
- ENTRY(X28),
- ENTRY(X29),
- ENTRY(X30),
- ENTRY(X31),
- ENTRY(PC),
- ENTRY(PSTATE),
+#define ENTRY(X) std::pair(CorePrStatus::Registers::AARCH64::X, #X)
+ STRING_MAP enum_strings{
+ ENTRY(X0), ENTRY(X1), ENTRY(X2), ENTRY(X3), ENTRY(X4), ENTRY(X5),
+ ENTRY(X6), ENTRY(X7), ENTRY(X8), ENTRY(X9), ENTRY(X10), ENTRY(X11),
+ ENTRY(X12), ENTRY(X13), ENTRY(X14), ENTRY(X15), ENTRY(X15), ENTRY(X16),
+ ENTRY(X17), ENTRY(X18), ENTRY(X19), ENTRY(X20), ENTRY(X21), ENTRY(X22),
+ ENTRY(X23), ENTRY(X24), ENTRY(X25), ENTRY(X26), ENTRY(X27), ENTRY(X28),
+ ENTRY(X29), ENTRY(X30), ENTRY(X31), ENTRY(PC), ENTRY(PSTATE),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enum_strings.find(e); it != enum_strings.end()) {
return it->second;
@@ -567,5 +478,4 @@ const char* to_string(CorePrStatus::Registers::AARCH64 e) {
return "UNKNOWN";
}
-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/NoteDetails/core/CoreSigInfo.cpp b/deps/LIEF/src/ELF/NoteDetails/core/CoreSigInfo.cpp
index ac47d9dcb2f..ea8079144a1 100644
--- a/deps/LIEF/src/ELF/NoteDetails/core/CoreSigInfo.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/core/CoreSigInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,8 +20,8 @@
#include "spdlog/fmt/fmt.h"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
static constexpr auto signo_offset = offsetof(details::Elf_siginfo, si_signo);
static constexpr auto sigcode_offset = offsetof(details::Elf_siginfo, si_code);
@@ -58,11 +58,8 @@ void CoreSigInfo::accept(Visitor& visitor) const {
void CoreSigInfo::dump(std::ostream& os) const {
Note::dump(os);
os << '\n'
- << fmt::format(" signo: {} code: {} errno: {}\n",
- signo().value_or(-1),
- sigcode().value_or(-1),
- sigerrno().value_or(-1));
+ << fmt::format(" signo: {} code: {} errno: {}\n", signo().value_or(-1),
+ sigcode().value_or(-1), sigerrno().value_or(-1));
}
-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/NoteDetails/properties/AArch64Feature.cpp b/deps/LIEF/src/ELF/NoteDetails/properties/AArch64Feature.cpp
index c927274a383..fe42fad5ca1 100644
--- a/deps/LIEF/src/ELF/NoteDetails/properties/AArch64Feature.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/properties/AArch64Feature.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,23 +21,31 @@
FMT_FORMATTER(LIEF::ELF::AArch64Feature::FEATURE, LIEF::ELF::to_string);
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
std::unique_ptr<AArch64Feature> AArch64Feature::create(BinaryStream& stream) {
static constexpr auto GNU_PROPERTY_AARCH64_FEATURE_1_BTI = 1U << 0;
static constexpr auto GNU_PROPERTY_AARCH64_FEATURE_1_PAC = 1U << 1;
+ static constexpr auto GNU_PROPERTY_AARCH64_FEATURE_1_GCS = 1U << 2;
uint32_t bitmask = stream.read<uint32_t>().value_or(0);
std::vector<FEATURE> features;
while (bitmask) {
- uint32_t bit = bitmask & (- bitmask);
+ uint32_t bit = bitmask & (-bitmask);
bitmask &= ~bit;
switch (bit) {
- case GNU_PROPERTY_AARCH64_FEATURE_1_BTI: features.push_back(FEATURE::BTI); break;
- case GNU_PROPERTY_AARCH64_FEATURE_1_PAC: features.push_back(FEATURE::PAC); break;
+ case GNU_PROPERTY_AARCH64_FEATURE_1_BTI:
+ features.push_back(FEATURE::BTI);
+ break;
+ case GNU_PROPERTY_AARCH64_FEATURE_1_PAC:
+ features.push_back(FEATURE::PAC);
+ break;
+ case GNU_PROPERTY_AARCH64_FEATURE_1_GCS:
+ features.push_back(FEATURE::GCS);
+ break;
default: features.push_back(FEATURE::UNKNOWN); break;
}
}
@@ -46,13 +54,14 @@ std::unique_ptr<AArch64Feature> AArch64Feature::create(BinaryStream& stream) {
}
const char* to_string(AArch64Feature::FEATURE type) {
- #define ENTRY(X) std::pair(AArch64Feature::FEATURE::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNKNOWN),
- ENTRY(BTI),
- ENTRY(PAC),
+#define ENTRY(X) std::pair(AArch64Feature::FEATURE::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(UNKNOWN),
+ ENTRY(BTI),
+ ENTRY(PAC),
+ ENTRY(GCS),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(type); it != enums2str.end()) {
return it->second;
@@ -61,8 +70,7 @@ const char* to_string(AArch64Feature::FEATURE type) {
return "UNKNOWN";
}
-void AArch64Feature::dump(std::ostream &os) const {
+void AArch64Feature::dump(std::ostream& os) const {
os << "AArch64 feature(s): " << fmt::to_string(features());
}
}
-}
diff --git a/deps/LIEF/src/ELF/NoteDetails/properties/AArch64PAuth.cpp b/deps/LIEF/src/ELF/NoteDetails/properties/AArch64PAuth.cpp
index 1ef0abd50a0..2779710285c 100644
--- a/deps/LIEF/src/ELF/NoteDetails/properties/AArch64PAuth.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/properties/AArch64PAuth.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,14 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+#include <spdlog/fmt/fmt.h>
#include "LIEF/ELF/NoteDetails/properties/AArch64PAuth.hpp"
#include "LIEF/BinaryStream/BinaryStream.hpp"
-#include "frozen.hpp"
-#include "fmt_formatter.hpp"
-
-namespace LIEF {
-namespace ELF {
+namespace LIEF::ELF {
std::unique_ptr<AArch64PAuth> AArch64PAuth::create(BinaryStream& stream) {
uint64_t platform = stream.read<uint64_t>().value_or(0);
@@ -29,11 +26,9 @@ std::unique_ptr<AArch64PAuth> AArch64PAuth::create(BinaryStream& stream) {
return std::unique_ptr<AArch64PAuth>(new AArch64PAuth(platform, version));
}
-void AArch64PAuth::dump(std::ostream &os) const {
- os << fmt::format("Platform: 0x{:04x}, Version: 0x{:04x}",
- platform(), version());
+void AArch64PAuth::dump(std::ostream& os) const {
+ os << fmt::format("Platform: {:#06x}, Version: {:#06x}", platform(), version());
}
}
-}
diff --git a/deps/LIEF/src/ELF/NoteDetails/properties/CMakeLists.txt b/deps/LIEF/src/ELF/NoteDetails/properties/CMakeLists.txt
index d5eb79d130b..549af44c57d 100644
--- a/deps/LIEF/src/ELF/NoteDetails/properties/CMakeLists.txt
+++ b/deps/LIEF/src/ELF/NoteDetails/properties/CMakeLists.txt
@@ -1,6 +1,7 @@
target_sources(LIB_LIEF PRIVATE
AArch64Feature.cpp
AArch64PAuth.cpp
+ Needed.cpp
StackSize.cpp
X86Feature.cpp
X86ISA.cpp
diff --git a/deps/LIEF/src/ELF/NoteDetails/properties/Needed.cpp b/deps/LIEF/src/ELF/NoteDetails/properties/Needed.cpp
new file mode 100644
index 00000000000..cf2d8d26851
--- /dev/null
+++ b/deps/LIEF/src/ELF/NoteDetails/properties/Needed.cpp
@@ -0,0 +1,61 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "LIEF/ELF/NoteDetails/properties/Needed.hpp"
+#include "LIEF/BinaryStream/BinaryStream.hpp"
+
+#include "fmt_formatter.hpp"
+
+FMT_FORMATTER(LIEF::ELF::Needed::NEED, LIEF::ELF::to_string);
+
+namespace LIEF::ELF {
+
+static constexpr auto GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS = 1U << 0;
+
+std::unique_ptr<Needed> Needed::create(BinaryStream& stream) {
+ uint32_t bitmask = stream.read<uint32_t>().value_or(0);
+
+ std::vector<NEED> needs;
+ while (bitmask) {
+ uint32_t bit = bitmask & (-bitmask);
+ bitmask &= ~bit;
+
+ // NOLINTNEXTLINE(bugprone-unhandled-code-paths)
+ switch (bit) {
+ case GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS:
+ needs.push_back(NEED::INDIRECT_EXTERN_ACCESS);
+ break;
+ default: needs.push_back(NEED::UNKNOWN); break;
+ }
+ }
+
+ return std::unique_ptr<Needed>(new Needed(std::move(needs)));
+}
+
+const char* to_string(Needed::NEED type) {
+ switch (type) {
+ case Needed::NEED::INDIRECT_EXTERN_ACCESS: return "INDIRECT_EXTERN_ACCESS";
+ case Needed::NEED::UNKNOWN: return "UNKNOWN";
+ default: break;
+ }
+
+ return "UNKNOWN";
+}
+
+void Needed::dump(std::ostream& os) const {
+ os << "Needed: " << fmt::to_string(needs());
+}
+
+}
diff --git a/deps/LIEF/src/ELF/NoteDetails/properties/StackSize.cpp b/deps/LIEF/src/ELF/NoteDetails/properties/StackSize.cpp
index e689719e238..3399bbe7e8c 100644
--- a/deps/LIEF/src/ELF/NoteDetails/properties/StackSize.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/properties/StackSize.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,11 +16,10 @@
#include "LIEF/ELF/NoteDetails/properties/StackSize.hpp"
#include "spdlog/fmt/fmt.h"
-namespace LIEF {
-namespace ELF {
-void StackSize::dump(std::ostream &os) const {
- os << fmt::format("Size: 0x{:04x}", stack_size());
-}
+namespace LIEF::ELF {
+
+void StackSize::dump(std::ostream& os) const {
+ os << fmt::format("Size: {:#06x}", stack_size());
}
}
diff --git a/deps/LIEF/src/ELF/NoteDetails/properties/X86Feature.cpp b/deps/LIEF/src/ELF/NoteDetails/properties/X86Feature.cpp
index fc99a21d0cd..5bcc8ee069b 100644
--- a/deps/LIEF/src/ELF/NoteDetails/properties/X86Feature.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/properties/X86Feature.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,77 +24,109 @@
FMT_FORMATTER(LIEF::ELF::X86Features::FEATURE, LIEF::ELF::to_string);
FMT_FORMATTER(LIEF::ELF::X86Features::FLAG, LIEF::ELF::to_string);
-namespace LIEF {
-namespace ELF {
-std::unique_ptr<X86Features> X86Features::create_feat1(
- X86Features::FLAG flag, BinaryStream& stream
-) {
+
+namespace LIEF::ELF {
+std::unique_ptr<X86Features> X86Features::create_feat1(X86Features::FLAG flag,
+ BinaryStream& stream) {
uint32_t bitmask = stream.read<uint32_t>().value_or(0);
features_t features;
while (bitmask) {
- uint32_t bit = bitmask & (- bitmask);
+ uint32_t bit = bitmask & (-bitmask);
bitmask &= ~bit;
switch (bit) {
- case GNU_PROPERTY_X86_FEATURE_1_IBT: features.emplace_back(flag, FEATURE::IBT); break;
- case GNU_PROPERTY_X86_FEATURE_1_SHSTK: features.emplace_back(flag, FEATURE::SHSTK); break;
- case GNU_PROPERTY_X86_FEATURE_1_LAM_U48: features.emplace_back(flag, FEATURE::LAM_U48); break;
- case GNU_PROPERTY_X86_FEATURE_1_LAM_U57: features.emplace_back(flag, FEATURE::LAM_U57); break;
+ case GNU_PROPERTY_X86_FEATURE_1_IBT:
+ features.emplace_back(flag, FEATURE::IBT);
+ break;
+ case GNU_PROPERTY_X86_FEATURE_1_SHSTK:
+ features.emplace_back(flag, FEATURE::SHSTK);
+ break;
+ case GNU_PROPERTY_X86_FEATURE_1_LAM_U48:
+ features.emplace_back(flag, FEATURE::LAM_U48);
+ break;
+ case GNU_PROPERTY_X86_FEATURE_1_LAM_U57:
+ features.emplace_back(flag, FEATURE::LAM_U57);
+ break;
default: features.emplace_back(flag, FEATURE::UNKNOWN); break;
}
}
return std::unique_ptr<X86Features>(new X86Features(std::move(features)));
}
-std::unique_ptr<X86Features> X86Features::create_feat2(
- X86Features::FLAG flag, BinaryStream& stream
-) {
+std::unique_ptr<X86Features> X86Features::create_feat2(X86Features::FLAG flag,
+ BinaryStream& stream) {
uint32_t bitmask = stream.read<uint32_t>().value_or(0);
features_t features;
while (bitmask) {
- uint32_t bit = bitmask & (- bitmask);
+ uint32_t bit = bitmask & (-bitmask);
bitmask &= ~bit;
switch (bit) {
- case GNU_PROPERTY_X86_FEATURE_2_X86: features.emplace_back(flag, FEATURE::X86); break;
- case GNU_PROPERTY_X86_FEATURE_2_X87: features.emplace_back(flag, FEATURE::X87); break;
- case GNU_PROPERTY_X86_FEATURE_2_MMX: features.emplace_back(flag, FEATURE::MMX); break;
- case GNU_PROPERTY_X86_FEATURE_2_XMM: features.emplace_back(flag, FEATURE::XMM); break;
- case GNU_PROPERTY_X86_FEATURE_2_YMM: features.emplace_back(flag, FEATURE::YMM); break;
- case GNU_PROPERTY_X86_FEATURE_2_ZMM: features.emplace_back(flag, FEATURE::ZMM); break;
- case GNU_PROPERTY_X86_FEATURE_2_TMM: features.emplace_back(flag, FEATURE::TMM); break;
- case GNU_PROPERTY_X86_FEATURE_2_MASK: features.emplace_back(flag, FEATURE::MASK); break;
- case GNU_PROPERTY_X86_FEATURE_2_FXSR: features.emplace_back(flag, FEATURE::FXSR); break;
- case GNU_PROPERTY_X86_FEATURE_2_XSAVE: features.emplace_back(flag, FEATURE::XSAVE); break;
- case GNU_PROPERTY_X86_FEATURE_2_XSAVEOPT: features.emplace_back(flag, FEATURE::XSAVEOPT); break;
- case GNU_PROPERTY_X86_FEATURE_2_XSAVEC: features.emplace_back(flag, FEATURE::XSAVEC); break;
+ case GNU_PROPERTY_X86_FEATURE_2_X86:
+ features.emplace_back(flag, FEATURE::X86);
+ break;
+ case GNU_PROPERTY_X86_FEATURE_2_X87:
+ features.emplace_back(flag, FEATURE::X87);
+ break;
+ case GNU_PROPERTY_X86_FEATURE_2_MMX:
+ features.emplace_back(flag, FEATURE::MMX);
+ break;
+ case GNU_PROPERTY_X86_FEATURE_2_XMM:
+ features.emplace_back(flag, FEATURE::XMM);
+ break;
+ case GNU_PROPERTY_X86_FEATURE_2_YMM:
+ features.emplace_back(flag, FEATURE::YMM);
+ break;
+ case GNU_PROPERTY_X86_FEATURE_2_ZMM:
+ features.emplace_back(flag, FEATURE::ZMM);
+ break;
+ case GNU_PROPERTY_X86_FEATURE_2_TMM:
+ features.emplace_back(flag, FEATURE::TMM);
+ break;
+ case GNU_PROPERTY_X86_FEATURE_2_MASK:
+ features.emplace_back(flag, FEATURE::MASK);
+ break;
+ case GNU_PROPERTY_X86_FEATURE_2_FXSR:
+ features.emplace_back(flag, FEATURE::FXSR);
+ break;
+ case GNU_PROPERTY_X86_FEATURE_2_XSAVE:
+ features.emplace_back(flag, FEATURE::XSAVE);
+ break;
+ case GNU_PROPERTY_X86_FEATURE_2_XSAVEOPT:
+ features.emplace_back(flag, FEATURE::XSAVEOPT);
+ break;
+ case GNU_PROPERTY_X86_FEATURE_2_XSAVEC:
+ features.emplace_back(flag, FEATURE::XSAVEC);
+ break;
default: features.emplace_back(flag, FEATURE::UNKNOWN); break;
}
}
return std::unique_ptr<X86Features>(new X86Features(std::move(features)));
}
-std::unique_ptr<X86Features> X86Features::create(uint32_t type, BinaryStream& stream) {
+std::unique_ptr<X86Features> X86Features::create(uint32_t type,
+ BinaryStream& stream) {
switch (type) {
case GNU_PROPERTY_X86_FEATURE_1_AND: return create_feat1(FLAG::NONE, stream);
case GNU_PROPERTY_X86_FEATURE_2_USED: return create_feat2(FLAG::USED, stream);
- case GNU_PROPERTY_X86_FEATURE_2_NEEDED: return create_feat2(FLAG::NEEDED, stream);
+ case GNU_PROPERTY_X86_FEATURE_2_NEEDED:
+ return create_feat2(FLAG::NEEDED, stream);
default: return nullptr;
}
}
-void X86Features::dump(std::ostream &os) const {
- os << "x86/x86-64 features: " << fmt::to_string(features()) ;
+void X86Features::dump(std::ostream& os) const {
+ os << "x86/x86-64 features: " << fmt::to_string(features());
}
const char* to_string(X86Features::FLAG flag) {
- #define ENTRY(X) std::pair(X86Features::FLAG::X, #X)
- STRING_MAP enums2str {
- ENTRY(NONE),
- ENTRY(NEEDED),
- ENTRY(USED),
+#define ENTRY(X) std::pair(X86Features::FLAG::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(NONE),
+ ENTRY(NEEDED),
+ ENTRY(USED),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(flag); it != enums2str.end()) {
return it->second;
}
@@ -103,28 +135,15 @@ const char* to_string(X86Features::FLAG flag) {
}
const char* to_string(X86Features::FEATURE feat) {
- #define ENTRY(X) std::pair(X86Features::FEATURE::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNKNOWN),
- ENTRY(IBT),
- ENTRY(SHSTK),
- ENTRY(LAM_U48),
- ENTRY(LAM_U57),
- ENTRY(X86),
- ENTRY(X87),
- ENTRY(MMX),
- ENTRY(XMM),
- ENTRY(YMM),
- ENTRY(ZMM),
- ENTRY(FXSR),
- ENTRY(XSAVE),
- ENTRY(XSAVEOPT),
- ENTRY(XSAVEC),
- ENTRY(TMM),
- ENTRY(MASK),
+#define ENTRY(X) std::pair(X86Features::FEATURE::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(UNKNOWN), ENTRY(IBT), ENTRY(SHSTK), ENTRY(LAM_U48), ENTRY(LAM_U57),
+ ENTRY(X86), ENTRY(X87), ENTRY(MMX), ENTRY(XMM), ENTRY(YMM),
+ ENTRY(ZMM), ENTRY(FXSR), ENTRY(XSAVE), ENTRY(XSAVEOPT), ENTRY(XSAVEC),
+ ENTRY(TMM), ENTRY(MASK),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(feat); it != enums2str.end()) {
return it->second;
}
@@ -134,4 +153,3 @@ const char* to_string(X86Features::FEATURE feat) {
}
-}
diff --git a/deps/LIEF/src/ELF/NoteDetails/properties/X86ISA.cpp b/deps/LIEF/src/ELF/NoteDetails/properties/X86ISA.cpp
index fe85ab4e4b4..6875306716b 100644
--- a/deps/LIEF/src/ELF/NoteDetails/properties/X86ISA.cpp
+++ b/deps/LIEF/src/ELF/NoteDetails/properties/X86ISA.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,22 +24,25 @@
FMT_FORMATTER(LIEF::ELF::X86ISA::FLAG, LIEF::ELF::to_string);
FMT_FORMATTER(LIEF::ELF::X86ISA::ISA, LIEF::ELF::to_string);
-namespace LIEF {
-namespace ELF {
-std::unique_ptr<X86ISA> X86ISA::create_isa_1(X86ISA::FLAG flag, BinaryStream& stream) {
+namespace LIEF::ELF {
+
+std::unique_ptr<X86ISA> X86ISA::create_isa_1(X86ISA::FLAG flag,
+ BinaryStream& stream) {
uint32_t bitmask = stream.read<uint32_t>().value_or(0);
values_t values;
while (bitmask) {
- uint32_t bit = bitmask & (- bitmask);
+ uint32_t bit = bitmask & (-bitmask);
bitmask &= ~bit;
switch (bit) {
- case GNU_PROPERTY_X86_ISA_1_BASELINE: values.emplace_back(flag, ISA::BASELINE); break;
- case GNU_PROPERTY_X86_ISA_1_V2: values.emplace_back(flag, ISA::V2); break;
- case GNU_PROPERTY_X86_ISA_1_V3: values.emplace_back(flag, ISA::V3); break;
- case GNU_PROPERTY_X86_ISA_1_V4: values.emplace_back(flag, ISA::V4); break;
+ case GNU_PROPERTY_X86_ISA_1_BASELINE:
+ values.emplace_back(flag, ISA::BASELINE);
+ break;
+ case GNU_PROPERTY_X86_ISA_1_V2: values.emplace_back(flag, ISA::V2); break;
+ case GNU_PROPERTY_X86_ISA_1_V3: values.emplace_back(flag, ISA::V3); break;
+ case GNU_PROPERTY_X86_ISA_1_V4: values.emplace_back(flag, ISA::V4); break;
default: values.emplace_back(flag, ISA::UNKNOWN); break;
}
@@ -48,66 +51,152 @@ std::unique_ptr<X86ISA> X86ISA::create_isa_1(X86ISA::FLAG flag, BinaryStream& st
return std::unique_ptr<X86ISA>(new X86ISA(std::move(values)));
}
-std::unique_ptr<X86ISA> X86ISA::create_compat_isa_1(
- X86ISA::FLAG flag, BinaryStream& stream, bool is_compat2
-) {
+std::unique_ptr<X86ISA> X86ISA::create_compat_isa_1(X86ISA::FLAG flag,
+ BinaryStream& stream,
+ bool is_compat2) {
uint32_t bitmask = stream.read<uint32_t>().value_or(0);
values_t values;
while (bitmask) {
- uint32_t bit = bitmask & (- bitmask);
+ uint32_t bit = bitmask & (-bitmask);
bitmask &= ~bit;
if (is_compat2) {
switch (bit) {
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_CMOV: values.emplace_back(flag, ISA::CMOV); break;
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE: values.emplace_back(flag, ISA::SSE); break;
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE2: values.emplace_back(flag, ISA::SSE2); break;
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE3: values.emplace_back(flag, ISA::SSE3); break;
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSSE3: values.emplace_back(flag, ISA::SSSE3); break;
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE4_1: values.emplace_back(flag, ISA::SSE4_1); break;
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE4_2: values.emplace_back(flag, ISA::SSE4_2); break;
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX: values.emplace_back(flag, ISA::AVX); break;
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX2: values.emplace_back(flag, ISA::AVX2); break;
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_FMA: values.emplace_back(flag, ISA::FMA); break;
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512F: values.emplace_back(flag, ISA::AVX512F); break;
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512CD: values.emplace_back(flag, ISA::AVX512CD); break;
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512ER: values.emplace_back(flag, ISA::AVX512ER); break;
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512PF: values.emplace_back(flag, ISA::AVX512PF); break;
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512VL: values.emplace_back(flag, ISA::AVX512VL); break;
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512DQ: values.emplace_back(flag, ISA::AVX512DQ); break;
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512BW: values.emplace_back(flag, ISA::AVX512BW); break;
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_4FMAPS: values.emplace_back(flag, ISA::AVX512_4FMAPS); break;
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_4VNNIW: values.emplace_back(flag, ISA::AVX512_4VNNIW); break;
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_BITALG: values.emplace_back(flag, ISA::AVX512_BITALG); break;
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_IFMA: values.emplace_back(flag, ISA::AVX512_IFMA); break;
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VBMI: values.emplace_back(flag, ISA::AVX512_VBMI); break;
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VBMI2: values.emplace_back(flag, ISA::AVX512_VBMI2); break;
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VNNI: values.emplace_back(flag, ISA::AVX512_VNNI); break;
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_BF16: values.emplace_back(flag, ISA::AVX512_BF16); break;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_CMOV:
+ values.emplace_back(flag, ISA::CMOV);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE:
+ values.emplace_back(flag, ISA::SSE);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE2:
+ values.emplace_back(flag, ISA::SSE2);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE3:
+ values.emplace_back(flag, ISA::SSE3);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSSE3:
+ values.emplace_back(flag, ISA::SSSE3);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE4_1:
+ values.emplace_back(flag, ISA::SSE4_1);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE4_2:
+ values.emplace_back(flag, ISA::SSE4_2);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX:
+ values.emplace_back(flag, ISA::AVX);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX2:
+ values.emplace_back(flag, ISA::AVX2);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_FMA:
+ values.emplace_back(flag, ISA::FMA);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512F:
+ values.emplace_back(flag, ISA::AVX512F);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512CD:
+ values.emplace_back(flag, ISA::AVX512CD);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512ER:
+ values.emplace_back(flag, ISA::AVX512ER);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512PF:
+ values.emplace_back(flag, ISA::AVX512PF);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512VL:
+ values.emplace_back(flag, ISA::AVX512VL);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512DQ:
+ values.emplace_back(flag, ISA::AVX512DQ);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512BW:
+ values.emplace_back(flag, ISA::AVX512BW);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_4FMAPS:
+ values.emplace_back(flag, ISA::AVX512_4FMAPS);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_4VNNIW:
+ values.emplace_back(flag, ISA::AVX512_4VNNIW);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_BITALG:
+ values.emplace_back(flag, ISA::AVX512_BITALG);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_IFMA:
+ values.emplace_back(flag, ISA::AVX512_IFMA);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VBMI:
+ values.emplace_back(flag, ISA::AVX512_VBMI);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VBMI2:
+ values.emplace_back(flag, ISA::AVX512_VBMI2);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VNNI:
+ values.emplace_back(flag, ISA::AVX512_VNNI);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_BF16:
+ values.emplace_back(flag, ISA::AVX512_BF16);
+ break;
default: values.emplace_back(flag, ISA::UNKNOWN); break;
}
} else {
switch (bit) {
- case GNU_PROPERTY_X86_COMPAT_ISA_1_486: values.emplace_back(flag, ISA::I486); break;
- case GNU_PROPERTY_X86_COMPAT_ISA_1_586: values.emplace_back(flag, ISA::I586); break;
- case GNU_PROPERTY_X86_COMPAT_ISA_1_686: values.emplace_back(flag, ISA::I686); break;
- case GNU_PROPERTY_X86_COMPAT_ISA_1_SSE: values.emplace_back(flag, ISA::SSE); break;
- case GNU_PROPERTY_X86_COMPAT_ISA_1_SSE2: values.emplace_back(flag, ISA::SSE2); break;
- case GNU_PROPERTY_X86_COMPAT_ISA_1_SSE3: values.emplace_back(flag, ISA::SSE3); break;
- case GNU_PROPERTY_X86_COMPAT_ISA_1_SSSE3: values.emplace_back(flag, ISA::SSSE3); break;
- case GNU_PROPERTY_X86_COMPAT_ISA_1_SSE4_1: values.emplace_back(flag, ISA::SSE4_1); break;
- case GNU_PROPERTY_X86_COMPAT_ISA_1_SSE4_2: values.emplace_back(flag, ISA::SSE4_2); break;
- case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX: values.emplace_back(flag, ISA::AVX); break;
- case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX2: values.emplace_back(flag, ISA::AVX2); break;
- case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512F: values.emplace_back(flag, ISA::AVX512F); break;
- case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512CD: values.emplace_back(flag, ISA::AVX512CD); break;
- case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512ER: values.emplace_back(flag, ISA::AVX512ER); break;
- case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512PF: values.emplace_back(flag, ISA::AVX512PF); break;
- case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512VL: values.emplace_back(flag, ISA::AVX512VL); break;
- case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512DQ: values.emplace_back(flag, ISA::AVX512DQ); break;
- case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512BW: values.emplace_back(flag, ISA::AVX512BW); break;
+ case GNU_PROPERTY_X86_COMPAT_ISA_1_486:
+ values.emplace_back(flag, ISA::I486);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_ISA_1_586:
+ values.emplace_back(flag, ISA::I586);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_ISA_1_686:
+ values.emplace_back(flag, ISA::I686);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_ISA_1_SSE:
+ values.emplace_back(flag, ISA::SSE);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_ISA_1_SSE2:
+ values.emplace_back(flag, ISA::SSE2);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_ISA_1_SSE3:
+ values.emplace_back(flag, ISA::SSE3);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_ISA_1_SSSE3:
+ values.emplace_back(flag, ISA::SSSE3);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_ISA_1_SSE4_1:
+ values.emplace_back(flag, ISA::SSE4_1);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_ISA_1_SSE4_2:
+ values.emplace_back(flag, ISA::SSE4_2);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX:
+ values.emplace_back(flag, ISA::AVX);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX2:
+ values.emplace_back(flag, ISA::AVX2);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512F:
+ values.emplace_back(flag, ISA::AVX512F);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512CD:
+ values.emplace_back(flag, ISA::AVX512CD);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512ER:
+ values.emplace_back(flag, ISA::AVX512ER);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512PF:
+ values.emplace_back(flag, ISA::AVX512PF);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512VL:
+ values.emplace_back(flag, ISA::AVX512VL);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512DQ:
+ values.emplace_back(flag, ISA::AVX512DQ);
+ break;
+ case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512BW:
+ values.emplace_back(flag, ISA::AVX512BW);
+ break;
default: values.emplace_back(flag, ISA::UNKNOWN); break;
}
@@ -123,26 +212,30 @@ std::unique_ptr<X86ISA> X86ISA::create(uint32_t type, BinaryStream& stream) {
case GNU_PROPERTY_X86_ISA_1_USED: return create_isa_1(FLAG::USED, stream);
case GNU_PROPERTY_X86_ISA_1_NEEDED: return create_isa_1(FLAG::NEEDED, stream);
- case GNU_PROPERTY_X86_COMPAT_ISA_1_USED: return create_compat_isa_1(FLAG::USED, stream, /*is_compat2*/ false);
- case GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED: return create_compat_isa_1(FLAG::NEEDED, stream, /*is_compat2*/ false);
+ case GNU_PROPERTY_X86_COMPAT_ISA_1_USED:
+ return create_compat_isa_1(FLAG::USED, stream, /*is_compat2*/ false);
+ case GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED:
+ return create_compat_isa_1(FLAG::NEEDED, stream, /*is_compat2*/ false);
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED: return create_compat_isa_1(FLAG::USED, stream, /*is_compat2*/ true);
- case GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED: return create_compat_isa_1(FLAG::NEEDED, stream, /*is_compat2*/ true);
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED:
+ return create_compat_isa_1(FLAG::USED, stream, /*is_compat2*/ true);
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED:
+ return create_compat_isa_1(FLAG::NEEDED, stream, /*is_compat2*/ true);
default: return nullptr;
}
}
-void X86ISA::dump(std::ostream &os) const {
+void X86ISA::dump(std::ostream& os) const {
os << "x86/x86-64 ISA: " << fmt::to_string(values());
}
const char* to_string(X86ISA::FLAG flag) {
#define ENTRY(X) std::pair(X86ISA::FLAG::X, #X)
- STRING_MAP enums2str {
- ENTRY(NONE),
- ENTRY(NEEDED),
- ENTRY(USED),
+ STRING_MAP enums2str{
+ ENTRY(NONE),
+ ENTRY(NEEDED),
+ ENTRY(USED),
};
#undef ENTRY
if (auto it = enums2str.find(flag); it != enums2str.end()) {
@@ -154,41 +247,41 @@ const char* to_string(X86ISA::FLAG flag) {
const char* to_string(X86ISA::ISA isa) {
#define ENTRY(X) std::pair(X86ISA::ISA::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNKNOWN),
- ENTRY(BASELINE),
- ENTRY(V2),
- ENTRY(V3),
- ENTRY(V4),
-
- ENTRY(CMOV),
- ENTRY(FMA),
- ENTRY(I486),
- ENTRY(I586),
- ENTRY(I686),
- ENTRY(SSE),
- ENTRY(SSE2),
- ENTRY(SSE3),
- ENTRY(SSSE3),
- ENTRY(SSE4_1),
- ENTRY(SSE4_2),
- ENTRY(AVX),
- ENTRY(AVX2),
- ENTRY(AVX512F),
- ENTRY(AVX512CD),
- ENTRY(AVX512ER),
- ENTRY(AVX512PF),
- ENTRY(AVX512VL),
- ENTRY(AVX512DQ),
- ENTRY(AVX512BW),
- ENTRY(AVX512_4FMAPS),
- ENTRY(AVX512_4VNNIW),
- ENTRY(AVX512_BITALG),
- ENTRY(AVX512_IFMA),
- ENTRY(AVX512_VBMI),
- ENTRY(AVX512_VBMI2),
- ENTRY(AVX512_VNNI),
- ENTRY(AVX512_BF16),
+ STRING_MAP enums2str{
+ ENTRY(UNKNOWN),
+ ENTRY(BASELINE),
+ ENTRY(V2),
+ ENTRY(V3),
+ ENTRY(V4),
+
+ ENTRY(CMOV),
+ ENTRY(FMA),
+ ENTRY(I486),
+ ENTRY(I586),
+ ENTRY(I686),
+ ENTRY(SSE),
+ ENTRY(SSE2),
+ ENTRY(SSE3),
+ ENTRY(SSSE3),
+ ENTRY(SSE4_1),
+ ENTRY(SSE4_2),
+ ENTRY(AVX),
+ ENTRY(AVX2),
+ ENTRY(AVX512F),
+ ENTRY(AVX512CD),
+ ENTRY(AVX512ER),
+ ENTRY(AVX512PF),
+ ENTRY(AVX512VL),
+ ENTRY(AVX512DQ),
+ ENTRY(AVX512BW),
+ ENTRY(AVX512_4FMAPS),
+ ENTRY(AVX512_4VNNIW),
+ ENTRY(AVX512_BITALG),
+ ENTRY(AVX512_IFMA),
+ ENTRY(AVX512_VBMI),
+ ENTRY(AVX512_VBMI2),
+ ENTRY(AVX512_VNNI),
+ ENTRY(AVX512_BF16),
};
#undef ENTRY
if (auto it = enums2str.find(isa); it != enums2str.end()) {
@@ -198,4 +291,3 @@ const char* to_string(X86ISA::ISA isa) {
return "UNKNOWN";
}
}
-}
diff --git a/deps/LIEF/src/ELF/NoteDetails/properties/common.hpp b/deps/LIEF/src/ELF/NoteDetails/properties/common.hpp
index 06d9928cfb0..73e199f45d0 100644
--- a/deps/LIEF/src/ELF/NoteDetails/properties/common.hpp
+++ b/deps/LIEF/src/ELF/NoteDetails/properties/common.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,8 +15,6 @@
#ifndef LIEF_ELF_NOTE_GNU_PROPERTIES_COMMON_H
#define LIEF_ELF_NOTE_GNU_PROPERTIES_COMMON_H
-#include <cstdint>
-
namespace LIEF::ELF {
static constexpr auto GNU_PROPERTY_LOPROC = 0xc0000000;
@@ -44,35 +42,42 @@ static constexpr auto GNU_PROPERTY_X86_UINT32_OR_HI = 0xc000ffff;
static constexpr auto GNU_PROPERTY_X86_UINT32_AND_LO = 0xc0000002;
static constexpr auto GNU_PROPERTY_X86_UINT32_AND_HI = 0xc0007fff;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED = GNU_PROPERTY_X86_UINT32_OR_AND_LO + 0;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_USED = GNU_PROPERTY_X86_UINT32_OR_AND_LO + 1;
-static constexpr auto GNU_PROPERTY_X86_ISA_1_USED = GNU_PROPERTY_X86_UINT32_OR_AND_LO + 2;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED =
+ GNU_PROPERTY_X86_UINT32_OR_AND_LO + 0;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_USED =
+ GNU_PROPERTY_X86_UINT32_OR_AND_LO + 1;
+static constexpr auto GNU_PROPERTY_X86_ISA_1_USED =
+ GNU_PROPERTY_X86_UINT32_OR_AND_LO + 2;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_1_AND = GNU_PROPERTY_X86_UINT32_AND_LO + 0;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_1_AND =
+ GNU_PROPERTY_X86_UINT32_AND_LO + 0;
static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_USED = 0xc0000000;
static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED = 0xc0000001;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED = GNU_PROPERTY_X86_UINT32_OR_LO + 0;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_NEEDED = GNU_PROPERTY_X86_UINT32_OR_LO + 1;
-static constexpr auto GNU_PROPERTY_X86_ISA_1_NEEDED = GNU_PROPERTY_X86_UINT32_OR_LO + 2;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED =
+ GNU_PROPERTY_X86_UINT32_OR_LO + 0;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_NEEDED =
+ GNU_PROPERTY_X86_UINT32_OR_LO + 1;
+static constexpr auto GNU_PROPERTY_X86_ISA_1_NEEDED =
+ GNU_PROPERTY_X86_UINT32_OR_LO + 2;
static constexpr auto GNU_PROPERTY_X86_ISA_1_BASELINE = 1U << 0;
static constexpr auto GNU_PROPERTY_X86_ISA_1_V2 = 1U << 1;
static constexpr auto GNU_PROPERTY_X86_ISA_1_V3 = 1U << 2;
static constexpr auto GNU_PROPERTY_X86_ISA_1_V4 = 1U << 3;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_486 = 1U << 0;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_586 = 1U << 1;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_686 = 1U << 2;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_SSE = 1U << 3;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_SSE2 = 1U << 4;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_SSE3 = 1U << 5;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_SSSE3 = 1U << 6;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_SSE4_1 = 1U << 7;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_SSE4_2 = 1U << 8;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_AVX = 1U << 9;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_AVX2 = 1U << 10;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512F = 1U << 11;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_486 = 1U << 0;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_586 = 1U << 1;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_686 = 1U << 2;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_SSE = 1U << 3;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_SSE2 = 1U << 4;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_SSE3 = 1U << 5;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_SSSE3 = 1U << 6;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_SSE4_1 = 1U << 7;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_SSE4_2 = 1U << 8;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_AVX = 1U << 9;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_AVX2 = 1U << 10;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512F = 1U << 11;
static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512CD = 1U << 12;
static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512ER = 1U << 13;
static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512PF = 1U << 14;
@@ -80,50 +85,50 @@ static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512VL = 1U << 15;
static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512DQ = 1U << 16;
static constexpr auto GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512BW = 1U << 17;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_CMOV = 1U << 0;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE = 1U << 1;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE2 = 1U << 2;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE3 = 1U << 3;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSSE3 = 1U << 4;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE4_1 = 1U << 5;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE4_2 = 1U << 6;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX = 1U << 7;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX2 = 1U << 8;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_FMA = 1U << 9;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512F = 1U << 10;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512CD = 1U << 11;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512ER = 1U << 12;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512PF = 1U << 13;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512VL = 1U << 14;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512DQ = 1U << 15;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512BW = 1U << 16;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_4FMAPS = 1U << 17;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_4VNNIW = 1U << 18;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_BITALG = 1U << 19;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_IFMA = 1U << 20;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VBMI = 1U << 21;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VBMI2 = 1U << 22;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VNNI = 1U << 23;
-static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_BF16 = 1U << 24;
-
-
-static constexpr auto GNU_PROPERTY_X86_FEATURE_1_IBT = 1U << 0;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_1_SHSTK = 1U << 1;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_CMOV = 1U << 0;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE = 1U << 1;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE2 = 1U << 2;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE3 = 1U << 3;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSSE3 = 1U << 4;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE4_1 = 1U << 5;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE4_2 = 1U << 6;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX = 1U << 7;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX2 = 1U << 8;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_FMA = 1U << 9;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512F = 1U << 10;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512CD = 1U << 11;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512ER = 1U << 12;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512PF = 1U << 13;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512VL = 1U << 14;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512DQ = 1U << 15;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512BW = 1U << 16;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_4FMAPS = 1U << 17;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_4VNNIW = 1U << 18;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_BITALG = 1U << 19;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_IFMA = 1U << 20;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VBMI = 1U << 21;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VBMI2 = 1U << 22;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VNNI = 1U << 23;
+static constexpr auto GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_BF16 = 1U << 24;
+
+
+static constexpr auto GNU_PROPERTY_X86_FEATURE_1_IBT = 1U << 0;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_1_SHSTK = 1U << 1;
static constexpr auto GNU_PROPERTY_X86_FEATURE_1_LAM_U48 = 1U << 2;
static constexpr auto GNU_PROPERTY_X86_FEATURE_1_LAM_U57 = 1U << 3;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_X86 = 1U << 0;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_X87 = 1U << 1;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_MMX = 1U << 2;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_XMM = 1U << 3;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_YMM = 1U << 4;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_ZMM = 1U << 5;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_FXSR = 1U << 6;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_XSAVE = 1U << 7;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_X86 = 1U << 0;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_X87 = 1U << 1;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_MMX = 1U << 2;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_XMM = 1U << 3;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_YMM = 1U << 4;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_ZMM = 1U << 5;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_FXSR = 1U << 6;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_XSAVE = 1U << 7;
static constexpr auto GNU_PROPERTY_X86_FEATURE_2_XSAVEOPT = 1U << 8;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_XSAVEC = 1U << 9;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_TMM = 1U << 10;
-static constexpr auto GNU_PROPERTY_X86_FEATURE_2_MASK = 1U << 11;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_XSAVEC = 1U << 9;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_TMM = 1U << 10;
+static constexpr auto GNU_PROPERTY_X86_FEATURE_2_MASK = 1U << 11;
}
diff --git a/deps/LIEF/src/ELF/ObjectFileLayout.hpp b/deps/LIEF/src/ELF/ObjectFileLayout.hpp
index fd09dd3ec87..60432b2cbcd 100644
--- a/deps/LIEF/src/ELF/ObjectFileLayout.hpp
+++ b/deps/LIEF/src/ELF/ObjectFileLayout.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,16 +26,23 @@
#include "logging.hpp"
#include "Layout.hpp"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
/// Class used to compute the size and the offsets of the elements
/// needed to rebuild the ELF file.
class LIEF_LOCAL ObjectFileLayout : public Layout {
public:
- using relocations_map_t = std::unordered_map<Section*, std::vector<Relocation*>>; // Relocation associated with a section
- using sections_reloc_map_t = std::unordered_map<Section*, Section*>; // Map a section with its associated relocation section
- using rel_sections_size_t = std::unordered_map<Section*, size_t>; // Map relocation sections with needed size
+ using relocations_map_t =
+ std::unordered_map<Section*,
+ std::vector<Relocation*>>; // Relocation associated with a
+ // section
+ using sections_reloc_map_t =
+ std::unordered_map<Section*, Section*>; // Map a section with its associated
+ // relocation section
+ using rel_sections_size_t =
+ std::unordered_map<Section*,
+ size_t>; // Map relocation sections with needed size
public:
using Layout::Layout;
@@ -49,7 +56,7 @@ class LIEF_LOCAL ObjectFileLayout : public Layout {
/// is greater than 0
bool should_relocate(const Section& sec) const {
const auto it = sec_reloc_info_.find(&sec);
- if (it == std::end(sec_reloc_info_)) {
+ if (it == sec_reloc_info_.end()) {
return false;
}
return it->second > 0;
@@ -67,11 +74,13 @@ class LIEF_LOCAL ObjectFileLayout : public Layout {
if (section->type() == Section::TYPE::NOBITS) {
continue;
}
- last_offset_sections = std::max<uint64_t>(section->file_offset() + section->size(),
- last_offset_sections);
+ last_offset_sections =
+ std::max<uint64_t>(section->file_offset() + section->size(),
+ last_offset_sections);
}
- LIEF_DEBUG("Sections' last offset: 0x{:x}", last_offset_sections);
- LIEF_DEBUG("SHDR Table: 0x{:x}", binary_->header().section_headers_offset());
+ LIEF_DEBUG("Sections' last offset: {:#x}", last_offset_sections);
+ LIEF_DEBUG("SHDR Table: {:#x}",
+ binary_->header().section_headers_offset());
Header& hdr = binary_->header();
for (Section& sec : binary_->sections()) {
@@ -80,7 +89,7 @@ class LIEF_LOCAL ObjectFileLayout : public Layout {
}
const size_t needed_size = sec_reloc_info_[&sec];
- LIEF_DEBUG("Need to relocate: '{}' (0x{:x} bytes)", sec.name(), needed_size);
+ LIEF_DEBUG("Need to relocate '{}' ({:#x} bytes)", sec.name(), needed_size);
DataHandler::Node new_node{last_offset_sections, needed_size,
DataHandler::Node::SECTION};
@@ -121,15 +130,15 @@ class LIEF_LOCAL ObjectFileLayout : public Layout {
~ObjectFileLayout() override = default;
ObjectFileLayout() = delete;
+
private:
std::unordered_map<const Section*, size_t> sec_reloc_info_;
relocations_map_t relocation_map_;
sections_reloc_map_t sections_reloc_map_;
rel_sections_size_t rel_sections_size_;
-
};
}
-}
+
#endif
diff --git a/deps/LIEF/src/ELF/Parser.cpp b/deps/LIEF/src/ELF/Parser.cpp
index 977631337d4..ad85f422466 100644
--- a/deps/LIEF/src/ELF/Parser.cpp
+++ b/deps/LIEF/src/ELF/Parser.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,13 +14,16 @@
* limitations under the License.
*/
#include <memory>
-#include <iterator>
#include <algorithm>
+#include <cstring>
#include "logging.hpp"
#include "LIEF/BinaryStream/VectorStream.hpp"
+#include "LIEF/BinaryStream/MemoryStream.hpp"
+#include "LIEF/BinaryStream/DumpStream.hpp"
+#include "LIEF/utils.hpp"
#include "LIEF/ELF/utils.hpp"
#include "LIEF/ELF/Parser.hpp"
#include "LIEF/ELF/Binary.hpp"
@@ -32,11 +35,14 @@
#include "LIEF/ELF/SysvHash.hpp"
#include "ELF/DataHandler/Handler.hpp"
+#include "ELF/elf_utils.hpp"
+#include "LIEF/ELF/EnumToString.hpp"
#include "Parser.tcc"
-namespace LIEF {
-namespace ELF {
+#include "internal_utils.hpp"
+
+namespace LIEF::ELF {
struct Target {
Header::CLASS clazz = Header::CLASS::NONE;
@@ -49,19 +55,24 @@ Parser::~Parser() = default;
Parser::Parser(const std::vector<uint8_t>& data, ParserConfig conf) :
stream_{std::make_unique<VectorStream>(data)},
binary_{new Binary{}},
- config_{std::move(conf)}
-{}
+ config_{conf} {}
Parser::Parser(std::unique_ptr<BinaryStream> stream, ParserConfig conf) :
stream_{std::move(stream)},
binary_{new Binary{}},
- config_{std::move(conf)}
-{}
+ config_{conf} {
+ if (const auto* memory = stream_->cast<MemoryStream>()) {
+ memory_address_ = memory->base_address();
+ }
+
+ if (const auto* dump = stream_->cast<DumpStream>()) {
+ memory_address_ = dump->base_address();
+ }
+}
Parser::Parser(const std::string& file, ParserConfig conf) :
binary_{new Binary{}},
- config_{std::move(conf)}
-{
+ config_{conf} {
if (auto s = VectorStream::from_file(file)) {
stream_ = std::make_unique<VectorStream>(std::move(*s));
}
@@ -75,8 +86,7 @@ Header::ELF_DATA determine_elf_endianess(ARCH machine) {
case ARCH::SPARCV9:
case ARCH::S390:
case ARCH::M68K:
- case ARCH::OPENRISC:
- return Header::ELF_DATA::MSB;
+ case ARCH::OPENRISC: return Header::ELF_DATA::MSB;
/* Architectures that are known to be little-endian only */
case ARCH::HEXAGON:
@@ -85,27 +95,26 @@ Header::ELF_DATA determine_elf_endianess(ARCH machine) {
case ARCH::CRIS:
case ARCH::I386: // x86
case ARCH::X86_64:
- case ARCH::LOONGARCH:
- return Header::ELF_DATA::LSB;
+ case ARCH::LOONGARCH: return Header::ELF_DATA::LSB;
- default:
- return Header::ELF_DATA::NONE;
+ default: return Header::ELF_DATA::NONE;
}
}
/*
- * Get the endianess of the current architecture
+ * Get the endianness of the current architecture
*/
constexpr Header::ELF_DATA get_endianess() {
- #ifdef __BYTE_ORDER__
- #if defined(__ORDER_LITTLE_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
- return Header::ELF_DATA::LSB;
- #elif defined(__ORDER_BIG_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
- return Header::ELF_DATA::MSB;
- #endif
+#ifdef __BYTE_ORDER__
+ #if defined(__ORDER_LITTLE_ENDIAN__) && \
+ (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+ return Header::ELF_DATA::LSB;
+ #elif defined(__ORDER_BIG_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
+ return Header::ELF_DATA::MSB;
#endif
- /* If there are no __BYTE_ORDER__ we take the (arbitrary) decision that we are
- * on a little endian architecture.
+#endif
+ /* If there is no __BYTE_ORDER__ we take the (arbitrary) decision that we are
+ * on a little-endian architecture.
*/
return Header::ELF_DATA::LSB;
}
@@ -122,11 +131,10 @@ constexpr Header::ELF_DATA invert_endianess(Header::ELF_DATA endian) {
Header::ELF_DATA determine_elf_endianess(BinaryStream& stream) {
static constexpr auto BOTH_ENDIANESS = {
- ARCH::AARCH64, ARCH::ARM, ARCH::SH, ARCH::XTENSA,
- ARCH::ARC, ARCH::MIPS, ARCH::PPC, ARCH::PPC64,
- ARCH::IA_64,
+ ARCH::AARCH64, ARCH::ARM, ARCH::SH, ARCH::XTENSA, ARCH::ARC,
+ ARCH::MIPS, ARCH::PPC, ARCH::PPC64, ARCH::IA_64,
};
- Header::ELF_DATA from_ei_data = Header::ELF_DATA::NONE;
+ Header::ELF_DATA from_ei_data = Header::ELF_DATA::NONE;
/* ELF_DATA from_e_machine = ELF_DATA::ELFDATANONE; */
// First, check EI_CLASS
@@ -150,8 +158,8 @@ Header::ELF_DATA determine_elf_endianess(BinaryStream& stream) {
// } ElfN_Ehdr;
constexpr size_t e_machine_off = offsetof(details::Elf32_Ehdr, e_machine);
{
- // Read Machine type with both endianess
- ARCH machine = ARCH::NONE; // e_machine value without endian swap enabled
+ // Read Machine type with both endianness
+ ARCH machine = ARCH::NONE; // e_machine value without endian swap enabled
ARCH machine_swap = ARCH::NONE; // e_machine value with endian swap enabled
if (auto res = stream.peek<uint16_t>(e_machine_off)) {
machine = static_cast<ARCH>(*res);
@@ -164,13 +172,14 @@ Header::ELF_DATA determine_elf_endianess(BinaryStream& stream) {
}
}
- LIEF_DEBUG("Machine '{}' (0x{:x})", to_string(machine), (int)machine);
- LIEF_DEBUG("Machine Swap '{}' (0x{:x})", to_string(machine_swap), (int)machine);
+ LIEF_DEBUG("Machine: '{}' ({:#x})", to_string(machine), (int)machine);
+ LIEF_DEBUG("Machine swap: '{}' ({:#x})", to_string(machine_swap),
+ (int)machine);
- const Header::ELF_DATA endian = determine_elf_endianess(machine);
+ const Header::ELF_DATA endian = determine_elf_endianess(machine);
const Header::ELF_DATA endian_swap = determine_elf_endianess(machine_swap);
- LIEF_DEBUG("Endian: {}", to_string(endian));
+ LIEF_DEBUG("Endian: {}", to_string(endian));
LIEF_DEBUG("Endian (swap): {}", to_string(endian_swap));
if (endian != Header::ELF_DATA::NONE) {
@@ -182,16 +191,15 @@ Header::ELF_DATA determine_elf_endianess(BinaryStream& stream) {
}
{
- auto it = std::find(BOTH_ENDIANESS.begin(), BOTH_ENDIANESS.end(),
- machine);
+ auto it = std::find(BOTH_ENDIANESS.begin(), BOTH_ENDIANESS.end(), machine);
if (it != BOTH_ENDIANESS.end()) {
return get_endianess();
}
}
{
- auto it = std::find(BOTH_ENDIANESS.begin(), BOTH_ENDIANESS.end(),
- machine_swap);
+ auto it =
+ std::find(BOTH_ENDIANESS.begin(), BOTH_ENDIANESS.end(), machine_swap);
if (it != BOTH_ENDIANESS.end()) {
return invert_endianess(get_endianess());
}
@@ -201,11 +209,11 @@ Header::ELF_DATA determine_elf_endianess(BinaryStream& stream) {
}
bool Parser::should_swap() const {
- const Header::ELF_DATA binary_endian = determine_elf_endianess(*stream_);
+ const Header::ELF_DATA binary_endian = determine_elf_endianess(*stream_);
const Header::ELF_DATA current_endian = get_endianess();
LIEF_DEBUG("LIEF Endianness: '{}'", to_string(current_endian));
LIEF_DEBUG("Binary Endianness: '{}'", to_string(binary_endian));
- if (binary_endian != Header::ELF_DATA::NONE &&
+ if (binary_endian != Header::ELF_DATA::NONE &&
current_endian != Header::ELF_DATA::NONE)
{
return binary_endian != current_endian;
@@ -214,7 +222,7 @@ bool Parser::should_swap() const {
}
Target determine_elf_target(BinaryStream& stream) {
- auto from_ei_class = Header::CLASS::NONE;
+ auto from_ei_class = Header::CLASS::NONE;
auto from_e_machine = Header::CLASS::NONE;
auto file_type = Header::FILE_TYPE::NONE;
@@ -251,22 +259,22 @@ Target determine_elf_target(BinaryStream& stream) {
case ARCH::X86_64:
case ARCH::PPC64:
case ARCH::SPARCV9:
- {
- from_e_machine = Header::CLASS::ELF64;
- break;
- }
+ {
+ from_e_machine = Header::CLASS::ELF64;
+ break;
+ }
case ARCH::I386:
case ARCH::ARM:
case ARCH::PPC:
- {
- from_e_machine = Header::CLASS::ELF32;
- break;
- }
+ {
+ from_e_machine = Header::CLASS::ELF32;
+ break;
+ }
default:
- {
- from_e_machine = Header::CLASS::NONE;
- break;
- }
+ {
+ from_e_machine = Header::CLASS::NONE;
+ break;
+ }
}
}
if (from_e_machine != Header::CLASS::NONE &&
@@ -291,9 +299,9 @@ Target determine_elf_target(BinaryStream& stream) {
}
LIEF_WARN("ELF class from machine type ('{}') does not match ELF class from "
- "e_ident ('{}'). The binary has been likely modified.",
+ "e_ident ('{}'). The binary may have been modified.",
to_string(from_e_machine), to_string(from_ei_class));
- // Make the priority on Elf_Ehdr.e_machine as it is
+ // Prioritize Elf_Ehdr.e_machine as it is
// this value that is used by the kernel.
return {from_e_machine, machine};
}
@@ -314,17 +322,17 @@ ok_error_t Parser::init() {
binary_->original_size_ = stream_->size();
binary_->pagesize_ = config_.page_size;
- auto res = DataHandler::Handler::from_stream(stream_);
- if (!res) {
- LIEF_ERR("The provided stream is not supported by the ELF DataHandler");
+ auto strm = DataHandler::Handler::from_stream(stream_);
+ if (strm == nullptr) {
+ LIEF_ERR("Unsupported stream type for the ELF DataHandler");
return make_error_code(lief_errors::not_supported);
}
- binary_->datahandler_ = std::move(*res);
+ binary_->datahandler_ = std::move(strm);
auto res_ident = stream_->peek<Header::identity_t>();
if (!res_ident) {
- LIEF_ERR("Can't read ELF identity. Nothing to parse");
+ LIEF_ERR("Failed to read ELF identity");
return make_error_code(res_ident.error());
}
@@ -335,24 +343,24 @@ ok_error_t Parser::init() {
switch (elf_target.clazz) {
case Header::CLASS::ELF32:
- {
- if (elf_target.arch == ARCH::X86_64) {
- return parse_binary<details::ELF32_x32>();
- }
-
- if (elf_target.arch == ARCH::AARCH64) {
- return parse_binary<details::ELF32_arm64>();
- }
+ {
+ if (elf_target.arch == ARCH::X86_64) {
+ return parse_binary<details::ELF32_x32>();
+ }
- return parse_binary<details::ELF32>();
+ if (elf_target.arch == ARCH::AARCH64) {
+ return parse_binary<details::ELF32_arm64>();
}
+
+ return parse_binary<details::ELF32>();
+ }
case Header::CLASS::ELF64: return parse_binary<details::ELF64>();
case Header::CLASS::NONE:
- {
- LIEF_ERR("Can't determine the ELF class ({})",
- static_cast<size_t>(binary_->type_));
- return make_error_code(lief_errors::corrupted);
- }
+ {
+ LIEF_ERR("Failed to determine ELF class ({})",
+ static_cast<size_t>(binary_->type_));
+ return make_error_code(lief_errors::corrupted);
+ }
}
return ok();
@@ -395,10 +403,70 @@ std::unique_ptr<Binary> Parser::parse(std::unique_ptr<BinaryStream> stream,
return std::move(parser.binary_);
}
+std::unique_ptr<Binary> Parser::parse_from_memory(uintptr_t address,
+ const ParserConfig& conf) {
+ static constexpr uint64_t MAX_MEM_IMAGE = 6_GB;
+ MemoryStream stream(address, 0x4000);
+ auto elf_info = get_info(stream);
+ if (!elf_info) {
+ return nullptr;
+ }
+
+ uint64_t vsize = elf_info->vsize();
+ if (vsize == 0) {
+ return nullptr;
+ }
+
+ if (vsize > MAX_MEM_IMAGE) {
+ LIEF_WARN("In-memory ELF image size ({:#x}) is too large, limiting to {:#x}",
+ vsize, MAX_MEM_IMAGE);
+ vsize = MAX_MEM_IMAGE;
+ }
+
+ return parse_from_memory(address, static_cast<size_t>(vsize), conf);
+}
+
+std::unique_ptr<Binary> Parser::parse_from_memory(uintptr_t address, size_t size,
+ const ParserConfig& conf) {
+ auto stream = std::make_unique<MemoryStream>(address, size);
+ if (!is_elf(*stream)) {
+ return nullptr;
+ }
+
+ Parser parser{std::move(stream), conf};
+ parser.init();
+ return std::move(parser.binary_);
+}
+
+std::unique_ptr<Binary> Parser::parse_from_dump(const std::string& filepath,
+ uint64_t addr,
+ const ParserConfig& conf) {
+ auto stream = VectorStream::from_file(filepath);
+ if (!stream) {
+ return nullptr;
+ }
+ return parse_from_dump(std::make_unique<VectorStream>(std::move(*stream)), addr,
+ conf);
+}
+
+std::unique_ptr<Binary> Parser::parse_from_dump(BinaryStream& stream,
+ uint64_t addr,
+ const ParserConfig& conf) {
+ return parse(std::make_unique<DumpStream>(addr, stream), conf);
+}
+
+std::unique_ptr<Binary>
+ Parser::parse_from_dump(std::unique_ptr<BinaryStream> stream, uint64_t addr,
+ const ParserConfig& conf) {
+ if (stream == nullptr) {
+ return nullptr;
+ }
+ return parse(std::make_unique<DumpStream>(addr, std::move(stream)), conf);
+}
ok_error_t Parser::parse_symbol_version(uint64_t symbol_version_offset) {
- LIEF_DEBUG("== Parsing symbol version ==");
- LIEF_DEBUG("Symbol version offset: 0x{:x}", symbol_version_offset);
+ LIEF_DEBUG("Parsing symbol version");
+ LIEF_DEBUG("Symbol version offset: {:#x}", symbol_version_offset);
const auto nb_entries = static_cast<uint32_t>(binary_->dynamic_symbols_.size());
@@ -408,13 +476,16 @@ ok_error_t Parser::parse_symbol_version(uint64_t symbol_version_offset) {
if (!val) {
break;
}
- binary_->symbol_version_table_.emplace_back(std::make_unique<SymbolVersion>(*val));
+ binary_->symbol_version_table_.emplace_back(
+ std::make_unique<SymbolVersion>(*val)
+ );
}
return ok();
}
-result<uint64_t> Parser::get_dynamic_string_table_from_segments(BinaryStream* stream) const {
+result<uint64_t>
+ Parser::get_dynamic_string_table_from_segments(BinaryStream* stream) const {
const ARCH arch = binary_->header().machine_type();
if (const DynamicEntry* dt_str = binary_->get(DynamicEntry::TAG::STRTAB)) {
return binary_->virtual_address_to_offset(dt_str->value());
@@ -432,7 +503,8 @@ result<uint64_t> Parser::get_dynamic_string_table_from_segments(BinaryStream* st
if (!dt) {
break;
}
- if (DynamicEntry::from_value(dt->d_tag, arch) == DynamicEntry::TAG::STRTAB) {
+ if (DynamicEntry::from_value(dt->d_tag, arch) == DynamicEntry::TAG::STRTAB)
+ {
return binary_->virtual_address_to_offset(dt->d_un.d_val);
}
} else {
@@ -441,7 +513,8 @@ result<uint64_t> Parser::get_dynamic_string_table_from_segments(BinaryStream* st
break;
}
- if (DynamicEntry::from_value(dt->d_tag, arch) == DynamicEntry::TAG::STRTAB) {
+ if (DynamicEntry::from_value(dt->d_tag, arch) == DynamicEntry::TAG::STRTAB)
+ {
return binary_->virtual_address_to_offset(dt->d_un.d_val);
}
}
@@ -454,7 +527,7 @@ result<uint64_t> Parser::get_dynamic_string_table_from_segments(BinaryStream* st
}
const uint64_t offset = dyn_segment->file_offset();
- const uint64_t size = dyn_segment->physical_size();
+ const uint64_t size = dyn_segment->physical_size();
stream_->setpos(offset);
@@ -464,7 +537,7 @@ result<uint64_t> Parser::get_dynamic_string_table_from_segments(BinaryStream* st
for (size_t i = 0; i < nb_entries; ++i) {
auto res = stream_->read<details::Elf32_Dyn>();
if (!res) {
- LIEF_ERR("Can't read dynamic entry #{}", i);
+ LIEF_ERR("Failed to read dynamic entry #{}", i);
return 0;
}
auto dt = *res;
@@ -479,7 +552,7 @@ result<uint64_t> Parser::get_dynamic_string_table_from_segments(BinaryStream* st
for (size_t i = 0; i < nb_entries; ++i) {
auto res = stream_->read<details::Elf64_Dyn>();
if (!res) {
- LIEF_ERR("Can't read dynamic entry #{}", i);
+ LIEF_ERR("Failed to read dynamic entry #{}", i);
return 0;
}
const auto dt = *res;
@@ -494,15 +567,15 @@ result<uint64_t> Parser::get_dynamic_string_table_from_segments(BinaryStream* st
uint64_t Parser::get_dynamic_string_table_from_sections() const {
// Find Dynamic string section
- auto it_dynamic_string_section = std::find_if(
- std::begin(binary_->sections_), std::end(binary_->sections_),
- [] (const std::unique_ptr<Section>& section) {
- return section->name() == ".dynstr" &&
- section->type() == Section::TYPE::STRTAB;
- });
+ auto it_dynamic_string_section =
+ std::find_if(binary_->sections_.begin(), binary_->sections_.end(),
+ [](const std::unique_ptr<Section>& section) {
+ return section->name() == ".dynstr" &&
+ section->type() == Section::TYPE::STRTAB;
+ });
- if (it_dynamic_string_section == std::end(binary_->sections_)) {
+ if (it_dynamic_string_section == binary_->sections_.end()) {
return 0;
}
return (*it_dynamic_string_section)->file_offset();
@@ -519,31 +592,32 @@ uint64_t Parser::get_dynamic_string_table(BinaryStream* stream) const {
void Parser::link_symbol_version() {
if (binary_->dynamic_symbols_.size() == binary_->symbol_version_table_.size()) {
for (size_t i = 0; i < binary_->dynamic_symbols_.size(); ++i) {
- binary_->dynamic_symbols_[i]->symbol_version_ = binary_->symbol_version_table_[i].get();
+ binary_->dynamic_symbols_[i]->symbol_version_ =
+ binary_->symbol_version_table_[i].get();
}
}
}
ok_error_t Parser::parse_symbol_sysv_hash(uint64_t offset) {
- LIEF_DEBUG("== Parse SYSV hash table ==");
+ LIEF_DEBUG("Parsing SYSV hash table");
auto sysvhash = std::make_unique<SysvHash>();
stream_->setpos(offset);
auto res_nbucket = stream_->read<uint32_t>();
if (!res_nbucket) {
- LIEF_ERR("Can't read the number of buckets");
+ LIEF_ERR("Failed to read bucket count");
return make_error_code(lief_errors::read_error);
}
auto res_nchains = stream_->read<uint32_t>();
if (!res_nchains) {
- LIEF_ERR("Can't read the number of chains");
+ LIEF_ERR("Failed to read chain count");
return make_error_code(lief_errors::read_error);
}
const auto nbuckets = std::min<uint32_t>(*res_nbucket, Parser::NB_MAX_BUCKETS);
- const auto nchain = std::min<uint32_t>(*res_nchains, Parser::NB_MAX_CHAINS);
+ const auto nchain = std::min<uint32_t>(*res_nchains, Parser::NB_MAX_CHAINS);
sysvhash->buckets_.reserve(nbuckets);
@@ -551,7 +625,7 @@ ok_error_t Parser::parse_symbol_sysv_hash(uint64_t offset) {
if (auto bucket = stream_->read<uint32_t>()) {
sysvhash->buckets_.push_back(*bucket);
} else {
- LIEF_ERR("Can't read bucket #{}", i);
+ LIEF_ERR("Failed to read bucket #{}", i);
break;
}
}
@@ -561,7 +635,7 @@ ok_error_t Parser::parse_symbol_sysv_hash(uint64_t offset) {
if (auto chain = stream_->read<uint32_t>()) {
sysvhash->chains_.push_back(*chain);
} else {
- LIEF_ERR("Can't read chain #{}", i);
+ LIEF_ERR("Failed to read chain #{}", i);
break;
}
}
@@ -571,68 +645,9 @@ ok_error_t Parser::parse_symbol_sysv_hash(uint64_t offset) {
return ok();
}
-#if 0
-std::unique_ptr<Note> Parser::get_note(uint32_t type, std::string name,
- std::vector<uint8_t> desc_bytes)
-{
- const E_TYPE ftype = binary_->header().file_type();
-
- auto conv = Note::convert_type(ftype, type, name);
- if (!conv) {
- LIEF_WARN("Note type: 0x{:x} is not supported for owner: '{}'", type, name);
- return std::make_unique<Note>(std::move(name), Note::TYPE::UNKNOWN, type,
- std::move(desc_bytes));
- }
-
- Note::TYPE ntype = *conv;
-
- if (ntype != Note::TYPE::GNU_BUILD_ATTRIBUTE_FUNC &&
- ntype != Note::TYPE::GNU_BUILD_ATTRIBUTE_OPEN)
- {
- name = name.c_str();
- }
-
- const ARCH arch = binary_->header().machine_type();
- const ELF_CLASS cls = binary_->header().identity_class();
-
- if (cls != ELF_CLASS::ELFCLASS32 && cls != ELF_CLASS::ELFCLASS64) {
- LIEF_WARN("Invalid ELFCLASS");
- return nullptr;
- }
-
- switch (ntype) {
- case Note::TYPE::CORE_PRSTATUS:
- return std::make_unique<CorePrStatus>(arch, cls, std::move(name), type,
- std::move(desc_bytes));
- case Note::TYPE::CORE_PRPSINFO:
- return std::make_unique<CorePrPsInfo>(arch, cls, std::move(name), type,
- std::move(desc_bytes));
- case Note::TYPE::CORE_FILE:
- return std::make_unique<CoreFile>(arch, cls, std::move(name), type,
- std::move(desc_bytes));
- case Note::TYPE::CORE_AUXV:
- return std::make_unique<CoreAuxv>(arch, cls, std::move(name), type,
- std::move(desc_bytes));
- case Note::TYPE::CORE_SIGINFO:
- return std::make_unique<CoreSigInfo>(std::move(name), ntype, type,
- std::move(desc_bytes));
- case Note::TYPE::ANDROID_IDENT:
- return std::make_unique<AndroidIdent>(std::move(name), ntype, type,
- std::move(desc_bytes));
- case Note::TYPE::GNU_ABI_TAG:
- return std::make_unique<NoteAbi>(std::move(name), ntype, type,
- std::move(desc_bytes));
-
- default:
- return std::make_unique<Note>(std::move(name), ntype, type,
- std::move(desc_bytes));
- }
-}
-#endif
-
ok_error_t Parser::parse_notes(uint64_t offset, uint64_t size) {
static constexpr auto ERROR_THRESHOLD = 6;
- LIEF_DEBUG("== Parsing note segment ==");
+ LIEF_DEBUG("Parsing note segment");
stream_->setpos(offset);
uint64_t last_offset = offset + size;
size_t error_count = 0;
@@ -646,27 +661,28 @@ ok_error_t Parser::parse_notes(uint64_t offset, uint64_t size) {
const Section* sec = binary_->section_from_offset(current_pos);
std::string sec_name = sec != nullptr ? sec->name() : "";
- std::unique_ptr<Note> note = Note::create(
- *stream_, std::move(sec_name),
- binary_->header().file_type(), binary_->header().machine_type(),
- binary_->header().identity_class()
- );
+ std::unique_ptr<Note> note =
+ Note::create(*stream_, std::move(sec_name), binary_->header().file_type(),
+ binary_->header().machine_type(),
+ binary_->header().identity_class());
if (note != nullptr) {
- const auto it_note = std::find_if(
- std::begin(binary_->notes_), std::end(binary_->notes_),
- [¬e] (const std::unique_ptr<Note>& n) { return *n == *note; });
+ const auto it_note =
+ std::find_if(binary_->notes_.begin(), binary_->notes_.end(),
+ [¬e](const std::unique_ptr<Note>& n) {
+ return *n == *note;
+ });
- if (it_note == std::end(binary_->notes_)) { // Not already present
+ if (it_note == binary_->notes_.end()) { // Not already present
binary_->notes_.push_back(std::move(note));
}
} else {
- LIEF_WARN("Note not parsed!");
+ LIEF_WARN("Failed to parse note");
++error_count;
}
if (error_count > ERROR_THRESHOLD) {
- LIEF_ERR("Too many errors while trying to parse notes");
+ LIEF_ERR("Too many errors while parsing notes");
return make_error_code(lief_errors::corrupted);
}
@@ -690,16 +706,17 @@ ok_error_t Parser::parse_overlay() {
return ok();
}
- LIEF_INFO("Overlay detected at 0x{:x} ({} bytes)", last_offset, overlay_size);
+ LIEF_INFO("Overlay detected at {:#x} ({} bytes)", last_offset, overlay_size);
if (!stream_->peek_data(binary_->overlay_, last_offset, overlay_size)) {
- LIEF_WARN("Can't read overlay data");
+ LIEF_WARN("Failed to read overlay data");
return make_error_code(lief_errors::read_error);
}
return ok();
}
-bool Parser::check_section_in_segment(const Section& section, const Segment& segment) {
+bool Parser::check_section_in_segment(const Section& section,
+ const Segment& segment) {
if (section.virtual_address() > 0) {
const uint64_t seg_vend = segment.virtual_address() + segment.virtual_size();
return segment.virtual_address() <= section.virtual_address() &&
@@ -717,13 +734,14 @@ bool Parser::check_section_in_segment(const Section& section, const Segment& seg
ok_error_t Parser::link_symbol_section(Symbol& sym) {
const uint16_t sec_idx = sym.section_idx();
if (sec_idx == Symbol::SECTION_INDEX::ABS ||
- sec_idx == Symbol::SECTION_INDEX::UNDEF) {
+ sec_idx == Symbol::SECTION_INDEX::UNDEF)
+ {
// Nothing to bind
return ok();
}
auto it_section = sections_idx_.find(sec_idx);
- if (it_section == std::end(sections_idx_)) {
+ if (it_section == sections_idx_.end()) {
return make_error_code(lief_errors::corrupted);
}
@@ -738,7 +756,8 @@ bool Parser::bind_symbol(Relocation& R) {
}
const uint32_t idx = R.info();
if (idx >= binary_->dynamic_symbols_.size()) {
- LIEF_DEBUG("Index #{} is out of range for reloc: {}", idx, to_string(R));
+ LIEF_DEBUG("Symbol index #{} out of range for relocation: {}", idx,
+ to_string(R));
return false;
}
@@ -754,4 +773,3 @@ Relocation& Parser::insert_relocation(std::unique_ptr<Relocation> R) {
}
}
-}
diff --git a/deps/LIEF/src/ELF/Parser.tcc b/deps/LIEF/src/ELF/Parser.tcc
index 03c2c5e77a0..582545b56c4 100644
--- a/deps/LIEF/src/ELF/Parser.tcc
+++ b/deps/LIEF/src/ELF/Parser.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,12 +13,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include <cctype>
#include <memory>
#include <unordered_set>
#include "logging.hpp"
-#include "LIEF/utils.hpp"
#include "LIEF/BinaryStream/VectorStream.hpp"
#include "LIEF/BinaryStream/SpanStream.hpp"
@@ -32,6 +30,8 @@
#include "LIEF/ELF/DynamicEntryLibrary.hpp"
#include "LIEF/ELF/DynamicEntryArray.hpp"
#include "LIEF/ELF/DynamicSharedObject.hpp"
+#include "LIEF/ELF/DynamicEntryAuxiliary.hpp"
+#include "LIEF/ELF/DynamicEntryFilter.hpp"
#include "LIEF/ELF/DynamicEntryRunPath.hpp"
#include "LIEF/ELF/DynamicEntryRpath.hpp"
#include "LIEF/ELF/SymbolVersionRequirement.hpp"
@@ -41,17 +41,15 @@
#include "LIEF/ELF/Symbol.hpp"
#include "LIEF/ELF/SymbolVersion.hpp"
#include "LIEF/ELF/Binary.hpp"
-#include "LIEF/ELF/EnumToString.hpp"
#include "ELF/Structures.hpp"
#include "ELF/DataHandler/Handler.hpp"
#include "ELF/SizingInfo.hpp"
#include "Object.tcc"
-#include "internal_utils.hpp"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
template<typename ELF_T>
ok_error_t Parser::parse_binary() {
@@ -68,7 +66,9 @@ ok_error_t Parser::parse_binary() {
if (binary_->header_.section_headers_offset() > 0) {
parse_sections<ELF_T>();
} else {
- LIEF_WARN("The current binary doesn't have a section header");
+ if (binary_->header().file_type() != Header::FILE_TYPE::CORE) {
+ LIEF_WARN("The current binary doesn't have a section header");
+ }
}
// Parse segments
@@ -90,30 +90,30 @@ ok_error_t Parser::parse_binary() {
process_dynamic_table<ELF_T>();
if (const Section* sec_symbtab = binary_->get(Section::TYPE::SYMTAB)) {
- auto nb_entries = static_cast<uint32_t>((sec_symbtab->size() / sizeof(typename ELF_T::Elf_Sym)));
- nb_entries = std::min(nb_entries, Parser::NB_MAX_SYMBOLS);
-
- if (sec_symbtab->link() == 0 || sec_symbtab->link() >= binary_->sections_.size()) {
- LIEF_WARN("section->link() is not valid !");
+ if (sec_symbtab->link() == 0 ||
+ sec_symbtab->link() >= binary_->sections_.size())
+ {
+ LIEF_WARN("Invalid section link");
} else {
if (config_.parse_symtab_symbols) {
// We should have:
// nb_entries == section->information())
- // but lots of compiler not respect this rule
- parse_symtab_symbols<ELF_T>(sec_symbtab->file_offset(), nb_entries,
+ // but lots of compilers do not respect this rule
+ parse_symtab_symbols<ELF_T>(*sec_symbtab,
*binary_->sections_[sec_symbtab->link()]);
}
}
}
- // Parse Symbols's hash
- // ====================
+ // Parse Symbol hash
+ // ==================
if (DynamicEntry* dt_hash = binary_->get(DynamicEntry::TAG::HASH)) {
if (auto res = binary_->virtual_address_to_offset(dt_hash->value())) {
parse_symbol_sysv_hash(*res);
} else {
- LIEF_WARN("Can't convert DT_HASH.virtual_address into an offset (0x{:x})", dt_hash->value());
+ LIEF_WARN("Can't convert DT_HASH.virtual_address into an offset ({:#x})",
+ dt_hash->value());
}
}
@@ -129,7 +129,9 @@ ok_error_t Parser::parse_binary() {
uint64_t offset = addr - seg->virtual_address();
strm->setpos(offset);
binary_->gnu_hash_ = GnuHash::parse<ELF_T>(*strm, dynsymcount);
- binary_->sizing_info_->gnu_hash = binary_->gnu_hash_->original_size();
+ if (binary_->gnu_hash_ != nullptr) {
+ binary_->sizing_info_->gnu_hash = binary_->gnu_hash_->original_size();
+ }
}
}
}
@@ -162,13 +164,12 @@ ok_error_t Parser::parse_binary() {
if (config_.parse_relocations) {
bool skip_allocated_sections = !binary_->relocations_.empty();
for (const Section& section : binary_->sections()) {
- if (skip_allocated_sections && section.has(Section::FLAGS::ALLOC)){
+ if (skip_allocated_sections && section.has(Section::FLAGS::ALLOC)) {
continue;
}
if (section.type() == Section::TYPE::REL) {
parse_section_relocations<ELF_T, typename ELF_T::Elf_Rel>(section);
- }
- else if (section.type() == Section::TYPE::RELA) {
+ } else if (section.type() == Section::TYPE::RELA) {
parse_section_relocations<ELF_T, typename ELF_T::Elf_Rela>(section);
}
}
@@ -228,17 +229,20 @@ ok_error_t Parser::parse_dyn_table(Segment& pt_dyn) {
return parse_dynamic_entries<ELF_T>(*scoped);
}
const Segment& load_seg = *segments.back();
- LIEF_DEBUG("Dynamic content wrapped by segment LOAD: [0x{:016x}, 0x{:016x}] "
- "[0x{:016x}, 0x{:016x}]", load_seg.virtual_address(),
+ LIEF_DEBUG("Dynamic content wrapped by segment LOAD: [{:#018x}, {:#018x}] "
+ "[{:#018x}, {:#018x}]",
+ load_seg.virtual_address(),
load_seg.virtual_address() + load_seg.virtual_size(),
- load_seg.file_offset(), load_seg.file_offset() + load_seg.physical_size());
+ load_seg.file_offset(),
+ load_seg.file_offset() + load_seg.physical_size());
span<const uint8_t> seg_content = load_seg.content();
if (seg_content.empty()) {
return make_error_code(lief_errors::corrupted);
}
- int64_t rel_offset = (int64_t)pt_dyn.virtual_address() - (int64_t)load_seg.virtual_address();
+ int64_t rel_offset =
+ (int64_t)pt_dyn.virtual_address() - (int64_t)load_seg.virtual_address();
if (rel_offset < 0 || (uint64_t)rel_offset >= seg_content.size()) {
return make_error_code(lief_errors::corrupted);
}
@@ -255,7 +259,9 @@ ok_error_t Parser::process_dynamic_table() {
DynamicEntry* dt_symtab = binary_->get(DynamicEntry::TAG::SYMTAB);
DynamicEntry* dt_syment = binary_->get(DynamicEntry::TAG::SYMENT);
- if (dt_syment != nullptr && dt_syment->value() != sizeof(typename ELF_T::Elf_Sym)) {
+ if (dt_syment != nullptr &&
+ dt_syment->value() != sizeof(typename ELF_T::Elf_Sym))
+ {
LIEF_WARN("DT_SYMTENT is corrupted");
}
@@ -264,67 +270,73 @@ ok_error_t Parser::process_dynamic_table() {
if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
parse_dynamic_symbols<ELF_T>(*res);
} else {
- LIEF_WARN("Can't convert DT_SYMTAB.virtual_address into an offset (0x{:x})", virtual_address);
+ LIEF_WARN("Can't convert DT_SYMTAB.virtual_address into an offset ({:#x})",
+ virtual_address);
}
}
}
{
- DynamicEntry* dt_rela = binary_->get(DynamicEntry::TAG::RELA);
+ DynamicEntry* dt_rela = binary_->get(DynamicEntry::TAG::RELA);
DynamicEntry* dt_relasz = binary_->get(DynamicEntry::TAG::RELASZ);
if (dt_rela != nullptr && dt_relasz != nullptr && config_.parse_relocations) {
const uint64_t virtual_address = dt_rela->value();
- const uint64_t size = dt_relasz->value();
+ const uint64_t size = dt_relasz->value();
if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
parse_dynamic_relocations<ELF_T, typename ELF_T::Elf_Rela>(*res, size);
binary_->sizing_info_->rela = size;
} else {
- LIEF_WARN("Can't convert DT_RELA.virtual_address into an offset (0x{:x})", virtual_address);
+ LIEF_WARN("Can't convert DT_RELA.virtual_address into an offset ({:#x})",
+ virtual_address);
}
}
}
{
- DynamicEntry* dt_rel = binary_->get(DynamicEntry::TAG::REL);
+ DynamicEntry* dt_rel = binary_->get(DynamicEntry::TAG::REL);
DynamicEntry* dt_relsz = binary_->get(DynamicEntry::TAG::RELSZ);
if (dt_rel != nullptr && dt_relsz != nullptr && config_.parse_relocations) {
const uint64_t virtual_address = dt_rel->value();
- const uint64_t size = dt_relsz->value();
+ const uint64_t size = dt_relsz->value();
if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
parse_dynamic_relocations<ELF_T, typename ELF_T::Elf_Rel>(*res, size);
binary_->sizing_info_->rela = size;
} else {
- LIEF_WARN("Can't convert DT_REL.virtual_address into an offset (0x{:x})", virtual_address);
+ LIEF_WARN("Can't convert DT_REL.virtual_address into an offset ({:#x})",
+ virtual_address);
}
}
}
{
- DynamicEntry* dt_relr = binary_->get(DynamicEntry::TAG::RELR);
+ DynamicEntry* dt_relr = binary_->get(DynamicEntry::TAG::RELR);
DynamicEntry* dt_relrsz = binary_->get(DynamicEntry::TAG::RELRSZ);
if (dt_relr != nullptr && dt_relrsz != nullptr && config_.parse_relocations) {
const uint64_t virtual_address = dt_relr->value();
- const uint64_t size = dt_relrsz->value();
+ const uint64_t size = dt_relrsz->value();
if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
parse_relative_relocations<ELF_T>(*res, size);
binary_->sizing_info_->relr = size;
} else {
- LIEF_WARN("Can't convert DT_RELR.virtual_address into an offset (0x{:x})", virtual_address);
+ LIEF_WARN("Can't convert DT_RELR.virtual_address into an offset ({:#x})",
+ virtual_address);
}
}
}
{
- DynamicEntry* dt_relr = binary_->get(DynamicEntry::TAG::ANDROID_RELR);
+ DynamicEntry* dt_relr = binary_->get(DynamicEntry::TAG::ANDROID_RELR);
DynamicEntry* dt_relrsz = binary_->get(DynamicEntry::TAG::ANDROID_RELRSZ);
if (dt_relr != nullptr && dt_relrsz != nullptr && config_.parse_relocations) {
const uint64_t virtual_address = dt_relr->value();
- const uint64_t size = dt_relrsz->value();
+ const uint64_t size = dt_relrsz->value();
if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
parse_relative_relocations<ELF_T>(*res, size);
binary_->sizing_info_->relr = size;
} else {
- LIEF_WARN("Can't convert (Android)DT_RELR.virtual_address into an offset (0x{:x})", virtual_address);
+ LIEF_WARN("Can't convert (Android)DT_RELR.virtual_address into an offset "
+ "({:#x})",
+ virtual_address);
}
}
}
@@ -338,26 +350,31 @@ ok_error_t Parser::process_dynamic_table() {
if (dt_rela != nullptr && dt_relasz != nullptr && config_.parse_relocations) {
const uint64_t virtual_address = dt_rela->value();
- const uint64_t size = dt_relasz->value();
+ const uint64_t size = dt_relasz->value();
if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
parse_packed_relocations<ELF_T>(*res, size);
binary_->sizing_info_->android_rela = size;
} else {
- LIEF_WARN("Can't convert DT_ANDROID_REL[A].virtual_address into an offset (0x{:x})", virtual_address);
+ LIEF_WARN("Can't convert DT_ANDROID_REL[A].virtual_address into an offset "
+ "({:#x})",
+ virtual_address);
}
}
}
{
- DynamicEntry* dt_jmprel = binary_->get(DynamicEntry::TAG::JMPREL);
+ DynamicEntry* dt_jmprel = binary_->get(DynamicEntry::TAG::JMPREL);
DynamicEntry* dt_pltrelsz = binary_->get(DynamicEntry::TAG::PLTRELSZ);
- if (dt_jmprel != nullptr && dt_pltrelsz != nullptr && config_.parse_relocations) {
+ if (dt_jmprel != nullptr && dt_pltrelsz != nullptr &&
+ config_.parse_relocations)
+ {
const uint64_t virtual_address = dt_jmprel->value();
- const uint64_t size = dt_pltrelsz->value();
- DynamicEntry* dt_pltrel = binary_->get(DynamicEntry::TAG::PLTREL);
- DynamicEntry::TAG type;
+ const uint64_t size = dt_pltrelsz->value();
+ DynamicEntry* dt_pltrel = binary_->get(DynamicEntry::TAG::PLTREL);
+ auto type = DynamicEntry::TAG::UNKNOWN;
if (dt_pltrel != nullptr) {
- type = DynamicEntry::from_value(dt_pltrel->value(), binary_->header().machine_type());
+ type = DynamicEntry::from_value(dt_pltrel->value(),
+ binary_->header().machine_type());
} else {
// Try to guess: We assume that on ELF64 -> DT_RELA and on ELF32 -> DT_REL
if constexpr (std::is_same_v<ELF_T, details::ELF64>) {
@@ -369,11 +386,12 @@ ok_error_t Parser::process_dynamic_table() {
if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
type == DynamicEntry::TAG::RELA ?
- parse_pltgot_relocations<ELF_T, typename ELF_T::Elf_Rela>(*res, size) :
- parse_pltgot_relocations<ELF_T, typename ELF_T::Elf_Rel>(*res, size);
+ parse_pltgot_relocations<ELF_T, typename ELF_T::Elf_Rela>(*res, size) :
+ parse_pltgot_relocations<ELF_T, typename ELF_T::Elf_Rel>(*res, size);
binary_->sizing_info_->jmprel = size;
} else {
- LIEF_WARN("Can't convert DT_JMPREL.virtual_address into an offset (0x{:x})", virtual_address);
+ LIEF_WARN("Can't convert DT_JMPREL.virtual_address into an offset ({:#x})",
+ virtual_address);
}
}
}
@@ -382,41 +400,49 @@ ok_error_t Parser::process_dynamic_table() {
const uint64_t virtual_address = dt_versym->value();
if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
parse_symbol_version(*res);
- binary_->sizing_info_->versym = binary_->dynamic_symbols_.size() * sizeof(uint16_t);
+ binary_->sizing_info_->versym =
+ binary_->dynamic_symbols_.size() * sizeof(uint16_t);
} else {
- LIEF_WARN("Can't convert DT_VERSYM.virtual_address into an offset (0x{:x})", virtual_address);
+ LIEF_WARN("Can't convert DT_VERSYM.virtual_address into an offset ({:#x})",
+ virtual_address);
}
}
}
if (config_.parse_symbol_versions) {
- DynamicEntry* dt_verneed = binary_->get(DynamicEntry::TAG::VERNEED);
+ DynamicEntry* dt_verneed = binary_->get(DynamicEntry::TAG::VERNEED);
DynamicEntry* dt_verneed_num = binary_->get(DynamicEntry::TAG::VERNEEDNUM);
if (dt_verneed != nullptr && dt_verneed_num != nullptr) {
const uint64_t virtual_address = dt_verneed->value();
- const uint32_t nb_entries = std::min(Parser::NB_MAX_SYMBOLS,
- static_cast<uint32_t>(dt_verneed_num->value()));
+ const uint32_t nb_entries =
+ std::min(Parser::NB_MAX_SYMBOLS,
+ static_cast<uint32_t>(dt_verneed_num->value()));
if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
parse_symbol_version_requirement<ELF_T>(*res, nb_entries);
} else {
- LIEF_WARN("Can't convert DT_VERNEED.virtual_address into an offset (0x{:x})", virtual_address);
+ LIEF_WARN(
+ "Can't convert DT_VERNEED.virtual_address into an offset ({:#x})",
+ virtual_address
+ );
}
}
}
if (config_.parse_symbol_versions) {
- DynamicEntry* dt_verdef = binary_->get(DynamicEntry::TAG::VERDEF);
+ DynamicEntry* dt_verdef = binary_->get(DynamicEntry::TAG::VERDEF);
DynamicEntry* dt_verdef_num = binary_->get(DynamicEntry::TAG::VERDEFNUM);
if (dt_verdef != nullptr && dt_verdef_num != nullptr) {
const uint64_t virtual_address = dt_verdef->value();
- const auto size = static_cast<uint32_t>(dt_verdef_num->value());
+ const uint32_t nb_entries =
+ std::min<uint32_t>(NB_MAX_SYMBOLS, dt_verdef_num->value());
if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
- parse_symbol_version_definition<ELF_T>(*res, size);
+ parse_symbol_version_definition<ELF_T>(*res, nb_entries);
} else {
- LIEF_WARN("Can't convert DT_VERDEF.virtual_address into an offset (0x{:x})", virtual_address);
+ LIEF_WARN("Can't convert DT_VERDEF.virtual_address into an offset ({:#x})",
+ virtual_address);
}
}
}
@@ -429,7 +455,7 @@ ok_error_t Parser::parse_header() {
using Elf_Half = typename ELF_T::Elf_Half;
using Elf_Word = typename ELF_T::Elf_Word;
using Elf_Addr = typename ELF_T::Elf_Addr;
- using Elf_Off = typename ELF_T::Elf_Off;
+ using Elf_Off = typename ELF_T::Elf_Off;
LIEF_DEBUG("[+] Parsing Header");
stream_->setpos(0);
@@ -540,68 +566,77 @@ ok_error_t Parser::parse_header() {
template<typename ELF_T>
-result<uint32_t> Parser::get_numberof_dynamic_symbols(ParserConfig::DYNSYM_COUNT mtd) const {
+result<uint32_t>
+ Parser::get_numberof_dynamic_symbols(ParserConfig::DYNSYM_COUNT mtd) const {
- switch(mtd) {
- case ParserConfig::DYNSYM_COUNT::HASH: return nb_dynsym_hash<ELF_T>();
- case ParserConfig::DYNSYM_COUNT::SECTION: return nb_dynsym_section<ELF_T>();
- case ParserConfig::DYNSYM_COUNT::RELOCATIONS: return nb_dynsym_relocations<ELF_T>();
+ switch (mtd) {
+ case ParserConfig::DYNSYM_COUNT::HASH: return nb_dynsym_hash<ELF_T>();
+ case ParserConfig::DYNSYM_COUNT::SECTION: return nb_dynsym_section<ELF_T>();
+ case ParserConfig::DYNSYM_COUNT::RELOCATIONS:
+ return nb_dynsym_relocations<ELF_T>();
case ParserConfig::DYNSYM_COUNT::AUTO:
default:
- {
- uint32_t nb_reloc = 0;
- uint32_t nb_section = 0;
- uint32_t nb_hash = 0;
-
- if (auto res = get_numberof_dynamic_symbols<ELF_T>(ParserConfig::DYNSYM_COUNT::RELOCATIONS)) {
- nb_reloc = *res;
- }
-
- if (auto res = get_numberof_dynamic_symbols<ELF_T>(ParserConfig::DYNSYM_COUNT::SECTION)) {
- nb_section = *res;
- }
+ {
+ uint32_t nb_reloc = 0;
+ uint32_t nb_section = 0;
+ uint32_t nb_hash = 0;
- if (auto res = get_numberof_dynamic_symbols<ELF_T>(ParserConfig::DYNSYM_COUNT::HASH)) {
- nb_hash = *res;
- }
+ if (auto res = get_numberof_dynamic_symbols<ELF_T>(
+ ParserConfig::DYNSYM_COUNT::RELOCATIONS
+ ))
+ {
+ nb_reloc = *res;
+ }
- LIEF_DEBUG("#dynsym.reloc: {}", nb_reloc);
- LIEF_DEBUG("#dynsym.section: {}", nb_section);
- LIEF_DEBUG("#dynsym.hash: {}", nb_hash);
+ if (auto res = get_numberof_dynamic_symbols<ELF_T>(
+ ParserConfig::DYNSYM_COUNT::SECTION
+ ))
+ {
+ nb_section = *res;
+ }
- if (nb_hash > 0 && nb_section == nb_hash) {
- return nb_hash;
- }
+ if (auto res = get_numberof_dynamic_symbols<ELF_T>(
+ ParserConfig::DYNSYM_COUNT::HASH
+ ))
+ {
+ nb_hash = *res;
+ }
- uint32_t candidate = nb_reloc;
- if (nb_section < Parser::NB_MAX_SYMBOLS &&
- nb_section > nb_reloc &&
- (nb_section - nb_reloc) < Parser::DELTA_NB_SYMBOLS)
- {
- candidate = nb_section;
- }
+ LIEF_DEBUG("#dynsym.reloc: {}", nb_reloc);
+ LIEF_DEBUG("#dynsym.section: {}", nb_section);
+ LIEF_DEBUG("#dynsym.hash: {}", nb_hash);
- if (nb_hash == 0) {
- return candidate;
- }
+ if (nb_hash > 0 && nb_section == nb_hash) {
+ return nb_hash;
+ }
- if (nb_hash < Parser::NB_MAX_SYMBOLS &&
- nb_hash > candidate &&
- (nb_hash - candidate) < Parser::DELTA_NB_SYMBOLS)
- {
- candidate = nb_hash;
- }
+ uint32_t candidate = nb_reloc;
+ if (nb_section < Parser::NB_MAX_SYMBOLS && nb_section > nb_reloc &&
+ (nb_section - nb_reloc) < Parser::DELTA_NB_SYMBOLS)
+ {
+ candidate = nb_section;
+ }
+ if (nb_hash == 0) {
return candidate;
}
+
+ if (nb_hash < Parser::NB_MAX_SYMBOLS && nb_hash > candidate &&
+ (nb_hash - candidate) < Parser::DELTA_NB_SYMBOLS)
+ {
+ candidate = nb_hash;
+ }
+
+ return candidate;
+ }
}
}
template<typename ELF_T>
result<uint32_t> Parser::nb_dynsym_relocations() const {
using rela_t = typename ELF_T::Elf_Rela;
- using rel_t = typename ELF_T::Elf_Rel;
+ using rel_t = typename ELF_T::Elf_Rel;
uint32_t nb_symbols = 0;
// Dynamic Relocations
@@ -609,42 +644,45 @@ result<uint32_t> Parser::nb_dynsym_relocations() const {
// RELA
// ----
- DynamicEntry* dt_rela = binary_->get(DynamicEntry::TAG::RELA);
+ DynamicEntry* dt_rela = binary_->get(DynamicEntry::TAG::RELA);
DynamicEntry* dt_relasz = binary_->get(DynamicEntry::TAG::RELASZ);
if (dt_rela != nullptr && dt_relasz != nullptr) {
const uint64_t virtual_address = dt_rela->value();
- const uint64_t size = dt_relasz->value();
+ const uint64_t size = dt_relasz->value();
if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
- nb_symbols = std::max(nb_symbols, max_relocation_index<ELF_T, rela_t>(*res, size));
+ nb_symbols =
+ std::max(nb_symbols, max_relocation_index<ELF_T, rela_t>(*res, size));
}
}
// REL
// ---
- DynamicEntry* dt_rel = binary_->get(DynamicEntry::TAG::REL);
+ DynamicEntry* dt_rel = binary_->get(DynamicEntry::TAG::REL);
DynamicEntry* dt_relsz = binary_->get(DynamicEntry::TAG::RELSZ);
if (dt_rel != nullptr && dt_relsz != nullptr) {
const uint64_t virtual_address = dt_rel->value();
- const uint64_t size = dt_relsz->value();
+ const uint64_t size = dt_relsz->value();
if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
- nb_symbols = std::max(nb_symbols, max_relocation_index<ELF_T, rel_t>(*res, size));
+ nb_symbols =
+ std::max(nb_symbols, max_relocation_index<ELF_T, rel_t>(*res, size));
}
}
// Parse PLT/GOT Relocations
// ==========================
- DynamicEntry* dt_jmprel = binary_->get(DynamicEntry::TAG::JMPREL);
+ DynamicEntry* dt_jmprel = binary_->get(DynamicEntry::TAG::JMPREL);
DynamicEntry* dt_pltrelsz = binary_->get(DynamicEntry::TAG::PLTRELSZ);
if (dt_jmprel != nullptr && dt_pltrelsz != nullptr) {
const uint64_t virtual_address = dt_jmprel->value();
- const uint64_t size = dt_pltrelsz->value();
- DynamicEntry* dt_pltrel = binary_->get(DynamicEntry::TAG::PLTREL);
- DynamicEntry::TAG type;
+ const uint64_t size = dt_pltrelsz->value();
+ DynamicEntry* dt_pltrel = binary_->get(DynamicEntry::TAG::PLTREL);
+ auto type = DynamicEntry::TAG::UNKNOWN;
if (dt_pltrel != nullptr) {
- type = DynamicEntry::from_value(dt_pltrel->value(), binary_->header().machine_type());
+ type = DynamicEntry::from_value(dt_pltrel->value(),
+ binary_->header().machine_type());
} else {
// Try to guess: We assume that on ELF64 -> DT_RELA and on ELF32 -> DT_REL
if constexpr (std::is_same_v<ELF_T, details::ELF64>) {
@@ -655,9 +693,11 @@ result<uint32_t> Parser::nb_dynsym_relocations() const {
}
if (auto res = binary_->virtual_address_to_offset(virtual_address)) {
if (type == DynamicEntry::TAG::RELA) {
- nb_symbols = std::max(nb_symbols, max_relocation_index<ELF_T, rela_t>(*res, size));
+ nb_symbols =
+ std::max(nb_symbols, max_relocation_index<ELF_T, rela_t>(*res, size));
} else {
- nb_symbols = std::max(nb_symbols, max_relocation_index<ELF_T, rel_t>(*res, size));
+ nb_symbols =
+ std::max(nb_symbols, max_relocation_index<ELF_T, rel_t>(*res, size));
}
}
}
@@ -666,11 +706,14 @@ result<uint32_t> Parser::nb_dynsym_relocations() const {
}
template<typename ELF_T, typename REL_T>
-uint32_t Parser::max_relocation_index(uint64_t relocations_offset, uint64_t size) const {
- static_assert(std::is_same<REL_T, typename ELF_T::Elf_Rel>::value ||
- std::is_same<REL_T, typename ELF_T::Elf_Rela>::value, "REL_T must be Elf_Rel || Elf_Rela");
+uint32_t Parser::max_relocation_index(uint64_t relocations_offset,
+ uint64_t size) const {
+ static_assert(std::is_same_v<REL_T, typename ELF_T::Elf_Rel> ||
+ std::is_same_v<REL_T, typename ELF_T::Elf_Rela>,
+ "REL_T must be Elf_Rel || Elf_Rela");
- const uint8_t shift = ELF_T::r_info_shift;;
+ const uint8_t shift = ELF_T::r_info_shift;
+ ;
const auto nb_entries = static_cast<uint32_t>(size / sizeof(REL_T));
@@ -718,7 +761,7 @@ result<uint32_t> Parser::nb_dynsym_hash() const {
template<typename ELF_T>
result<uint32_t> Parser::nb_dynsym_sysv_hash() const {
- using Elf_Off = typename ELF_T::Elf_Off;
+ using Elf_Off = typename ELF_T::Elf_Off;
const DynamicEntry* dyn_hash = binary_->get(DynamicEntry::TAG::HASH);
if (dyn_hash == nullptr) {
@@ -770,18 +813,24 @@ template<typename ELF_T>
ok_error_t Parser::parse_sections() {
using Elf_Shdr = typename ELF_T::Elf_Shdr;
- using Elf_Off = typename ELF_T::Elf_Off;
+ using Elf_Off = typename ELF_T::Elf_Off;
LIEF_DEBUG("Parsing Section");
const Elf_Off shdr_offset = binary_->header_.section_headers_offset();
const auto numberof_sections = binary_->header_.numberof_sections();
+ const bool is_memory_stream = memory_address_ > 0;
+ // Sections are usually not mapped so logging errors is not relevant for
+ // in-memory parsing
+ logging::Scoped scope(is_memory_stream ? logging::LEVEL::OFF :
+ logging::get_level());
+
stream_->setpos(shdr_offset);
std::unordered_map<Section*, size_t> sections_names;
DataHandler::Handler& handler = *binary_->datahandler_;
const ARCH arch = binary_->header().machine_type();
for (size_t i = 0; i < numberof_sections; ++i) {
- LIEF_DEBUG(" Elf_Shdr#{:02d}.offset: 0x{:x} ", i, stream_->pos());
+ LIEF_DEBUG(" Elf_Shdr#{:02d}.offset: {:#x} ", i, stream_->pos());
const auto shdr = stream_->read<Elf_Shdr>();
if (!shdr) {
LIEF_ERR(" Can't parse section #{:02d}", i);
@@ -792,9 +841,10 @@ ok_error_t Parser::parse_sections() {
section->datahandler_ = binary_->datahandler_.get();
const uint64_t section_start = section->file_offset();
- const uint64_t section_end = section_start + section->size();
bool access_content = true;
- if (section_start > stream_->size() || section_end > stream_->size()) {
+ if (section_start > stream_->size() ||
+ section->size() > stream_->size() - section_start)
+ {
access_content = false;
if (section->type() != Section::TYPE::NOBITS) {
LIEF_WARN("Can't access the content of section #{}", i);
@@ -809,13 +859,15 @@ ok_error_t Parser::parse_sections() {
// Only if it contains data (with bits)
if (section->size() > 0 && access_content) {
int64_t read_size = section->size();
- if (static_cast<int32_t>(read_size) < 0 ) {
- LIEF_WARN("Section #{} is {} bytes large. Only the first {} bytes will be taken into account",
+ if (static_cast<int32_t>(read_size) < 0) {
+ LIEF_WARN("Section #{} is {} bytes large. Only the first {} bytes will be "
+ "taken into account",
i, read_size, Section::MAX_SECTION_SIZE);
read_size = Section::MAX_SECTION_SIZE;
}
if (read_size > Section::MAX_SECTION_SIZE) {
- LIEF_WARN("Section #{} is {} bytes large. Only the first {} bytes will be taken into account",
+ LIEF_WARN("Section #{} is {} bytes large. Only the first {} bytes will be "
+ "taken into account",
i, read_size, Section::MAX_SECTION_SIZE);
read_size = Section::MAX_SECTION_SIZE;
}
@@ -824,7 +876,8 @@ ok_error_t Parser::parse_sections() {
DataHandler::Node::SECTION);
const Elf_Off offset_to_content = section->file_offset();
- auto alloc = binary_->datahandler_->reserve(section->file_offset(), read_size);
+ auto alloc =
+ binary_->datahandler_->reserve(section->file_offset(), read_size);
if (!alloc) {
LIEF_ERR("Can't allocate memory");
break;
@@ -833,7 +886,8 @@ ok_error_t Parser::parse_sections() {
/* The DataHandlerStream interface references ELF data that are
* located in the ELF::DataHandler. Therefore, we can skip reading
* the data since they are already present in the data handler.
- * This optimization saves memory (which is also performed in parse_segments<>(...))
+ * This optimization saves memory (which is also performed in
+ * parse_segments<>(...))
*/
if (stream_->type() != BinaryStream::STREAM_TYPE::ELF_DATA_HANDLER) {
std::vector<uint8_t> sec_content;
@@ -859,17 +913,21 @@ ok_error_t Parser::parse_sections() {
}
const size_t section_string_index = binary_->header_.section_name_table_idx();
- const std::unique_ptr<Section>& string_section = binary_->sections_[section_string_index];
+ const std::unique_ptr<Section>& string_section =
+ binary_->sections_[section_string_index];
for (std::unique_ptr<Section>& section : binary_->sections_) {
const auto it_name_idx = sections_names.find(section.get());
- if (it_name_idx == std::end(sections_names)) {
- LIEF_WARN("Missing name_idx for section at offset 0x{:x}", section->file_offset());
+ if (it_name_idx == sections_names.end()) {
+ LIEF_WARN("Missing name_idx for section at offset {:#x}",
+ section->file_offset());
continue;
}
const size_t name_offset = it_name_idx->second;
- auto name = stream_->peek_string_at(string_section->file_offset() + name_offset);
+ auto name =
+ stream_->peek_string_at(string_section->file_offset() + name_offset);
if (!name) {
- LIEF_ERR("Can't read section name for section 0x{:x}", section->file_offset());
+ LIEF_ERR("Can't read section name for section {:#x}",
+ section->file_offset());
break;
}
section->name(*name);
@@ -880,12 +938,13 @@ ok_error_t Parser::parse_sections() {
template<typename ELF_T>
ok_error_t Parser::parse_segments() {
using Elf_Phdr = typename ELF_T::Elf_Phdr;
- using Elf_Off = typename ELF_T::Elf_Off;
+ using Elf_Off = typename ELF_T::Elf_Off;
- LIEF_DEBUG("== Parse Segments ==");
+ LIEF_DEBUG("Parsing segments");
const Header& hdr = binary_->header();
const Elf_Off segment_headers_offset = hdr.program_headers_offset();
- const auto nbof_segments = std::min<uint32_t>(hdr.numberof_segments(), Parser::NB_MAX_SEGMENTS);
+ const auto nbof_segments =
+ std::min<uint32_t>(hdr.numberof_segments(), Parser::NB_MAX_SEGMENTS);
stream_->setpos(segment_headers_offset);
@@ -902,15 +961,19 @@ ok_error_t Parser::parse_segments() {
auto segment = std::unique_ptr<Segment>(new Segment(*elf_phdr, arch, os));
segment->datahandler_ = binary_->datahandler_.get();
- if (0 < segment->physical_size() && segment->physical_size() < Parser::MAX_SEGMENT_SIZE) {
+ if (0 < segment->physical_size() &&
+ segment->physical_size() < Parser::MAX_SEGMENT_SIZE)
+ {
uint64_t read_size = segment->physical_size();
if (read_size > Parser::MAX_SEGMENT_SIZE) {
- LIEF_WARN("Segment #{} is {} bytes large. Only the first {} bytes will be taken into account",
+ LIEF_WARN("Segment #{} is {} bytes large. Only the first {} bytes will be "
+ "taken into account",
i, read_size, Parser::MAX_SEGMENT_SIZE);
read_size = Parser::MAX_SEGMENT_SIZE;
}
if (read_size > stream_->size()) {
- LIEF_WARN("Segment #{} has a physical size larger than the current stream size ({} > {}). "
+ LIEF_WARN("Segment #{} has a physical size larger than the current stream "
+ "size ({} > {}). "
"The content will be truncated with the stream size.",
i, read_size, stream_->size());
read_size = stream_->size();
@@ -920,12 +983,14 @@ ok_error_t Parser::parse_segments() {
DataHandler::Node::SEGMENT);
segment->handler_size_ = read_size;
- const bool corrupted_offset = segment->file_offset() > stream_->size() ||
- (segment->file_offset() + read_size) > stream_->size();
+ const bool corrupted_offset =
+ segment->file_offset() > stream_->size() ||
+ (segment->file_offset() + read_size) > stream_->size();
if (!corrupted_offset) {
const Elf_Off offset_to_content = segment->file_offset();
- auto alloc = binary_->datahandler_->reserve(segment->file_offset(), read_size);
+ auto alloc =
+ binary_->datahandler_->reserve(segment->file_offset(), read_size);
if (!alloc) {
LIEF_ERR("Can't allocate memory");
break;
@@ -933,7 +998,8 @@ ok_error_t Parser::parse_segments() {
/* The DataHandlerStream interface references ELF data that are
* located in the ELF::DataHandler. Therefore, we can skip reading
* the data since they are already present in the data handler.
- * This optimization saves memory (which is also performed in parse_sections<>(...))
+ * This optimization saves memory (which is also performed in
+ * parse_sections<>(...))
*/
if (stream_->type() != BinaryStream::STREAM_TYPE::ELF_DATA_HANDLER) {
std::vector<uint8_t> seg_content;
@@ -956,7 +1022,8 @@ ok_error_t Parser::parse_segments() {
}
} else {
segment->handler_size_ = segment->physical_size();
- segment->datahandler_->create(segment->file_offset(), segment->physical_size(),
+ segment->datahandler_->create(segment->file_offset(),
+ segment->physical_size(),
DataHandler::Node::SEGMENT);
}
@@ -975,29 +1042,42 @@ ok_error_t Parser::parse_segments() {
template<typename ELF_T>
ok_error_t Parser::parse_packed_relocations(uint64_t offset, uint64_t size) {
using Elf_Rela = typename ELF_T::Elf_Rela;
- static constexpr uint64_t GROUPED_BY_INFO_FLAG = 1 << 0;
+ static constexpr uint64_t GROUPED_BY_INFO_FLAG = 1 << 0;
static constexpr uint64_t GROUPED_BY_OFFSET_DELTA_FLAG = 1 << 1;
- static constexpr uint64_t GROUPED_BY_ADDEND_FLAG = 1 << 2;
- static constexpr uint64_t GROUP_HAS_ADDEND_FLAG = 1 << 3;
+ static constexpr uint64_t GROUPED_BY_ADDEND_FLAG = 1 << 2;
+ static constexpr uint64_t GROUP_HAS_ADDEND_FLAG = 1 << 3;
LIEF_DEBUG("Parsing Android packed relocations");
if (size < 4) {
LIEF_ERR("Invalid Android packed relocation header");
return make_error_code(lief_errors::read_error);
}
- ScopedStream rel_stream(*stream_, offset);
- const auto H0 = stream_->read<char>().value_or(0);
- const auto H1 = stream_->read<char>().value_or(0);
- const auto H2 = stream_->read<char>().value_or(0);
- const auto H3 = stream_->read<char>().value_or(0);
+ if (offset >= stream_->size()) {
+ LIEF_ERR("Android packed relocations: offset is out of range");
+ return make_error_code(lief_errors::read_error);
+ }
+ size = std::min<uint64_t>(size, stream_->size() - offset);
+ const auto* raw = stream_->peek_array<uint8_t>(offset, size);
+ if (raw == nullptr) {
+ LIEF_ERR("Can't read the Android packed relocation table");
+ return make_error_code(lief_errors::read_error);
+ }
+ SpanStream table_stream(raw, size);
+ ScopedStream rel_stream(table_stream);
+
+ const auto H0 = rel_stream->read<char>().value_or(0);
+ const auto H1 = rel_stream->read<char>().value_or(0);
+ const auto H2 = rel_stream->read<char>().value_or(0);
+ const auto H3 = rel_stream->read<char>().value_or(0);
LIEF_DEBUG("Header: {} {} {} {}", H0, H1, H2, H3);
// Check for the Magic: APS2
if (H0 != 'A' || H1 != 'P' || H2 != 'S' || H3 != '2') {
LIEF_ERR("Invalid Android packed relocation magic header: "
- "{} {} {} {}", H0, H1, H2, H3);
+ "{} {} {} {}",
+ H0, H1, H2, H3);
return make_error_code(lief_errors::read_error);
}
@@ -1019,6 +1099,13 @@ ok_error_t Parser::parse_packed_relocations(uint64_t offset, uint64_t size) {
LIEF_DEBUG("Nb relocs: {}", nb_relocs);
+ if (nb_relocs > NB_MAX_RELOCATIONS) {
+ LIEF_WARN("Android packed relocations: the number of relocations ({}) "
+ "exceeds the limit ({}). The table is likely corrupted",
+ nb_relocs, NB_MAX_RELOCATIONS);
+ return make_error_code(lief_errors::corrupted);
+ }
+
while (nb_relocs > 0) {
auto nb_reloc_group_r = rel_stream->read_sleb128();
if (!nb_reloc_group_r) {
@@ -1041,16 +1128,15 @@ ok_error_t Parser::parse_packed_relocations(uint64_t offset, uint64_t size) {
}
uint64_t group_flag = *group_flag_r;
- const bool g_by_info = group_flag & GROUPED_BY_INFO_FLAG;
+ const bool g_by_info = group_flag & GROUPED_BY_INFO_FLAG;
const bool g_by_offset_delta = group_flag & GROUPED_BY_OFFSET_DELTA_FLAG;
- const bool g_by_addend = group_flag & GROUPED_BY_ADDEND_FLAG;
- const bool g_has_addend = group_flag & GROUP_HAS_ADDEND_FLAG;
+ const bool g_by_addend = group_flag & GROUPED_BY_ADDEND_FLAG;
+ const bool g_has_addend = group_flag & GROUP_HAS_ADDEND_FLAG;
uint64_t group_off_delta =
- g_by_offset_delta ? rel_stream->read_sleb128().value_or(0) : 0;
+ g_by_offset_delta ? rel_stream->read_sleb128().value_or(0) : 0;
- uint64_t groupr_info =
- g_by_info ? rel_stream->read_sleb128().value_or(0) : 0;
+ uint64_t groupr_info = g_by_info ? rel_stream->read_sleb128().value_or(0) : 0;
if (g_by_addend && g_has_addend) {
addend += rel_stream->read_sleb128().value_or(0);
@@ -1064,8 +1150,10 @@ ok_error_t Parser::parse_packed_relocations(uint64_t offset, uint64_t size) {
if (!*rel_stream) {
break;
}
- r_offset += g_by_offset_delta ? group_off_delta : rel_stream->read_sleb128().value_or(0);
- uint64_t info = g_by_info ? groupr_info : rel_stream->read_sleb128().value_or(0);
+ r_offset += g_by_offset_delta ? group_off_delta :
+ rel_stream->read_sleb128().value_or(0);
+ uint64_t info =
+ g_by_info ? groupr_info : rel_stream->read_sleb128().value_or(0);
if (g_has_addend && !g_by_addend) {
addend += rel_stream->read_sleb128().value_or(0);
}
@@ -1074,8 +1162,9 @@ ok_error_t Parser::parse_packed_relocations(uint64_t offset, uint64_t size) {
R.r_info = info;
R.r_addend = addend;
R.r_offset = r_offset;
- auto reloc = std::unique_ptr<Relocation>(new Relocation(R, Relocation::PURPOSE::DYNAMIC,
- Relocation::ENCODING::ANDROID_SLEB, arch));
+ auto reloc = std::unique_ptr<Relocation>(new Relocation(
+ R, Relocation::PURPOSE::DYNAMIC, Relocation::ENCODING::ANDROID_SLEB, arch
+ ));
bind_symbol(*reloc);
insert_relocation(std::move(reloc));
}
@@ -1094,26 +1183,25 @@ ok_error_t Parser::parse_relative_relocations(uint64_t offset, uint64_t size) {
const ARCH arch = binary_->header().machine_type();
Relocation::TYPE type = Relocation::TYPE::UNKNOWN;
switch (arch) {
- case ARCH::AARCH64:
- type = Relocation::TYPE::AARCH64_RELATIVE; break;
- case ARCH::X86_64:
- type = Relocation::TYPE::X86_64_RELATIVE; break;
- case ARCH::ARM:
- type = Relocation::TYPE::ARM_RELATIVE; break;
- case ARCH::HEXAGON:
- type = Relocation::TYPE::HEX_RELATIVE; break;
- case ARCH::PPC64:
- type = Relocation::TYPE::PPC64_RELATIVE; break;
- case ARCH::PPC:
- type = Relocation::TYPE::PPC_RELATIVE; break;
+ case ARCH::AARCH64: type = Relocation::TYPE::AARCH64_RELATIVE; break;
+ case ARCH::X86_64: type = Relocation::TYPE::X86_64_RELATIVE; break;
+ case ARCH::ARM: type = Relocation::TYPE::ARM_RELATIVE; break;
+ case ARCH::HEXAGON: type = Relocation::TYPE::HEX_RELATIVE; break;
+ case ARCH::PPC64: type = Relocation::TYPE::PPC64_RELATIVE; break;
+ case ARCH::PPC: type = Relocation::TYPE::PPC_RELATIVE; break;
case ARCH::I386:
- case ARCH::IAMCU:
- type = Relocation::TYPE::X86_RELATIVE; break;
- default:
- break;
+ case ARCH::IAMCU: type = Relocation::TYPE::X86_RELATIVE; break;
+ default: break;
}
+ size_t nb_relocs = 0;
while (rel_stream->pos() < (offset + size)) {
+ if (nb_relocs >= NB_MAX_RELOCATIONS) {
+ LIEF_WARN("RELR relocations: the number of relocations exceeds the limit "
+ "({}). The table is likely corrupted",
+ NB_MAX_RELOCATIONS);
+ break;
+ }
auto opt_relr = rel_stream->read<Elf_Relr>();
if (!opt_relr) {
break;
@@ -1121,10 +1209,11 @@ ok_error_t Parser::parse_relative_relocations(uint64_t offset, uint64_t size) {
Elf_Relr rel = *opt_relr;
if ((rel & 1) == 0) {
Elf_Addr r_offset = rel;
- auto reloc = std::make_unique<Relocation>(r_offset, type,
- Relocation::ENCODING::RELR);
+ auto reloc =
+ std::make_unique<Relocation>(r_offset, type, Relocation::ENCODING::RELR);
reloc->purpose(Relocation::PURPOSE::DYNAMIC);
insert_relocation(std::move(reloc));
+ ++nb_relocs;
base = rel + sizeof(Elf_Addr);
} else {
for (Elf_Addr offset = base; (rel >>= 1) != 0; offset += sizeof(Elf_Addr)) {
@@ -1134,6 +1223,7 @@ ok_error_t Parser::parse_relative_relocations(uint64_t offset, uint64_t size) {
Relocation::ENCODING::RELR);
reloc->purpose(Relocation::PURPOSE::DYNAMIC);
insert_relocation(std::move(reloc));
+ ++nb_relocs;
}
}
base += (8 * sizeof(Elf_Relr) - 1) * sizeof(Elf_Addr);
@@ -1144,10 +1234,12 @@ ok_error_t Parser::parse_relative_relocations(uint64_t offset, uint64_t size) {
template<typename ELF_T, typename REL_T>
-ok_error_t Parser::parse_dynamic_relocations(uint64_t relocations_offset, uint64_t size) {
+ok_error_t Parser::parse_dynamic_relocations(uint64_t relocations_offset,
+ uint64_t size) {
static_assert(std::is_same_v<REL_T, typename ELF_T::Elf_Rel> ||
- std::is_same_v<REL_T, typename ELF_T::Elf_Rela>, "REL_T must be Elf_Rel || Elf_Rela");
- LIEF_DEBUG("== Parsing dynamic relocations ==");
+ std::is_same_v<REL_T, typename ELF_T::Elf_Rela>,
+ "REL_T must be Elf_Rel || Elf_Rela");
+ LIEF_DEBUG("Parsing dynamic relocations");
// Already parsed
if (binary_->dynamic_relocations().size() > 0) {
@@ -1161,9 +1253,9 @@ ok_error_t Parser::parse_dynamic_relocations(uint64_t relocations_offset, uint64
stream_->setpos(relocations_offset);
const ARCH arch = binary_->header().machine_type();
- const Relocation::ENCODING enc =
- std::is_same_v<REL_T, typename ELF_T::Elf_Rel> ? Relocation::ENCODING::REL :
- Relocation::ENCODING::RELA;
+ const Relocation::ENCODING enc = std::is_same_v<REL_T, typename ELF_T::Elf_Rel> ?
+ Relocation::ENCODING::REL :
+ Relocation::ENCODING::RELA;
for (uint32_t i = 0; i < nb_entries; ++i) {
const auto raw_reloc = stream_->read<REL_T>();
@@ -1172,7 +1264,8 @@ ok_error_t Parser::parse_dynamic_relocations(uint64_t relocations_offset, uint64
}
auto reloc = std::unique_ptr<Relocation>(new Relocation(
- std::move(*raw_reloc), Relocation::PURPOSE::DYNAMIC, enc, arch));
+ std::move(*raw_reloc), Relocation::PURPOSE::DYNAMIC, enc, arch
+ ));
bind_symbol(*reloc);
insert_relocation(std::move(reloc));
}
@@ -1180,32 +1273,40 @@ ok_error_t Parser::parse_dynamic_relocations(uint64_t relocations_offset, uint64
} // build_dynamic_reclocations
template<typename ELF_T>
-ok_error_t Parser::parse_symtab_symbols(uint64_t offset, uint32_t nb_symbols,
+ok_error_t Parser::parse_symtab_symbols(const Section& symtab_section,
const Section& string_section) {
- using Elf_Sym = typename ELF_T::Elf_Sym;
static constexpr size_t MAX_RESERVED_SYMBOLS = 10000;
- LIEF_DEBUG("== Parsing symtab symbols ==");
+ using Elf_Sym = typename ELF_T::Elf_Sym;
+ LIEF_DEBUG("Parsing symtab symbols");
- size_t nb_reserved = std::min<size_t>(nb_symbols, MAX_RESERVED_SYMBOLS);
+ LIEF::SpanStream stream(symtab_section.content());
+ stream.set_endian_swap(stream_->should_swap());
+
+ const auto nb_symbols = static_cast<uint32_t>((symtab_section.size() /
+ sizeof(typename ELF_T::Elf_Sym)));
+ const size_t nb_reserved = std::min<size_t>(nb_symbols, MAX_RESERVED_SYMBOLS);
binary_->symtab_symbols_.reserve(nb_reserved);
- stream_->setpos(offset);
const ARCH arch = binary_->header().machine_type();
- for (uint32_t i = 0; i < nb_symbols; ++i) {
- const auto raw_sym = stream_->read<Elf_Sym>();
+ size_t sym_idx = 0;
+ while (stream) {
+ const auto raw_sym = stream.read<Elf_Sym>();
if (!raw_sym) {
- break;
+ return make_error_code(raw_sym.error());
}
+
auto symbol = std::unique_ptr<Symbol>(new Symbol(std::move(*raw_sym), arch));
const auto name_offset = string_section.file_offset() + raw_sym->st_name;
if (auto symbol_name = stream_->peek_string_at(name_offset)) {
symbol->name(std::move(*symbol_name));
} else {
- LIEF_ERR("Can't read the symbol's name for symbol #{}", i);
+ LIEF_ERR("Can't read the symbol's name for symbol #{}", sym_idx);
}
+
link_symbol_section(*symbol);
binary_->symtab_symbols_.push_back(std::move(symbol));
+ ++sym_idx;
}
return ok();
}
@@ -1216,22 +1317,23 @@ ok_error_t Parser::parse_dynamic_symbols(uint64_t offset) {
using Elf_Off = typename ELF_T::Elf_Off;
static constexpr size_t MAX_RESERVED_SYMBOLS = 10000;
- LIEF_DEBUG("== Parsing dynamics symbols ==");
+ LIEF_DEBUG("Parsing dynamic symbols");
auto res = get_numberof_dynamic_symbols<ELF_T>(config_.count_mtd);
if (!res) {
- LIEF_ERR("Fail to get the number of dynamic symbols with the current counting method");
+ LIEF_ERR("Fail to get the number of dynamic symbols with the current counting "
+ "method");
return make_error_code(lief_errors::parsing_error);
}
const uint32_t nb_symbols = res.value();
const Elf_Off dynamic_symbols_offset = offset;
- const Elf_Off string_offset = get_dynamic_string_table();
+ const Elf_Off string_offset = get_dynamic_string_table();
LIEF_DEBUG(" - Number of symbols counted: {:d}", nb_symbols);
- LIEF_DEBUG(" - Table Offset: 0x{:x}", dynamic_symbols_offset);
- LIEF_DEBUG(" - String Table Offset: 0x{:x}", string_offset);
+ LIEF_DEBUG(" - Table Offset: {:#x}", dynamic_symbols_offset);
+ LIEF_DEBUG(" - String Table Offset: {:#x}", string_offset);
if (string_offset == 0) {
LIEF_WARN("Unable to find the .dynstr section");
@@ -1248,7 +1350,8 @@ ok_error_t Parser::parse_dynamic_symbols(uint64_t offset) {
LIEF_DEBUG("Break on symbol #{:d}", i);
break;
}
- auto symbol = std::unique_ptr<Symbol>(new Symbol(std::move(*symbol_header),
+ auto symbol =
+ std::unique_ptr<Symbol>(new Symbol(std::move(*symbol_header),
binary_->header().machine_type()));
if (symbol_header->st_name > 0) {
@@ -1258,7 +1361,7 @@ ok_error_t Parser::parse_dynamic_symbols(uint64_t offset) {
}
if (name->empty() && i > 0) {
- LIEF_DEBUG("Symbol's name #{:d} is empty!", i);
+ LIEF_DEBUG("Symbol name #{:d} is empty", i);
}
symbol->name(std::move(*name));
@@ -1266,7 +1369,8 @@ ok_error_t Parser::parse_dynamic_symbols(uint64_t offset) {
link_symbol_section(*symbol);
binary_->dynamic_symbols_.push_back(std::move(symbol));
}
- binary_->sizing_info_->dynsym = binary_->dynamic_symbols_.size() * sizeof(Elf_Sym);
+ binary_->sizing_info_->dynsym =
+ binary_->dynamic_symbols_.size() * sizeof(Elf_Sym);
if (const auto* dt_strsz = binary_->get(DynamicEntry::TAG::STRSZ)) {
binary_->sizing_info_->dynstr = dt_strsz->value();
}
@@ -1276,24 +1380,27 @@ ok_error_t Parser::parse_dynamic_symbols(uint64_t offset) {
template<typename ELF_T>
ok_error_t Parser::parse_dynamic_entries(BinaryStream& stream) {
- using Elf_Dyn = typename ELF_T::Elf_Dyn;
- using uint__ = typename ELF_T::uint;
+ using Elf_Dyn = typename ELF_T::Elf_Dyn;
+ using uint__ = typename ELF_T::uint;
using Elf_Addr = typename ELF_T::Elf_Addr;
- using Elf_Off = typename ELF_T::Elf_Off;
+ using Elf_Off = typename ELF_T::Elf_Off;
LIEF_DEBUG("Parsing dynamic entries");
uint32_t max_nb_entries = stream.size() / sizeof(Elf_Dyn);
- max_nb_entries = std::min<uint32_t>(max_nb_entries, Parser::NB_MAX_DYNAMIC_ENTRIES);
+ max_nb_entries =
+ std::min<uint32_t>(max_nb_entries, Parser::NB_MAX_DYNAMIC_ENTRIES);
Elf_Off dynamic_string_offset = get_dynamic_string_table(&stream);
bool end_of_dynamic = false;
- while (stream) {
+ uint32_t count = 0;
+ while (stream && count < max_nb_entries) {
const auto res_entry = stream.read<Elf_Dyn>();
if (!res_entry) {
break;
}
+ ++count;
const auto entry = *res_entry;
std::unique_ptr<DynamicEntry> dynamic_entry;
@@ -1301,60 +1408,90 @@ ok_error_t Parser::parse_dynamic_entries(BinaryStream& stream) {
const ARCH arch = binary_->header().machine_type();
switch (DynamicEntry::from_value(entry.d_tag, arch)) {
- case DynamicEntry::TAG::NEEDED :
- {
- dynamic_entry = std::make_unique<DynamicEntryLibrary>(entry, arch);
- auto library_name = stream_->peek_string_at(dynamic_string_offset + dynamic_entry->value());
- if (!library_name) {
- LIEF_ERR("Can't read library name for DT_NEEDED entry");
- break;
- }
- dynamic_entry->as<DynamicEntryLibrary>()->name(std::move(*library_name));
+ case DynamicEntry::TAG::NEEDED:
+ {
+ dynamic_entry = std::make_unique<DynamicEntryLibrary>(entry, arch);
+ auto library_name = stream_->peek_string_at(dynamic_string_offset +
+ dynamic_entry->value());
+ if (!library_name) {
+ LIEF_ERR("Can't read library name for DT_NEEDED entry");
break;
}
+ dynamic_entry->as<DynamicEntryLibrary>()->name(std::move(*library_name));
+ break;
+ }
- case DynamicEntry::TAG::SONAME :
- {
- dynamic_entry = std::make_unique<DynamicSharedObject>(entry, arch);
- auto sharename = stream_->peek_string_at(dynamic_string_offset + dynamic_entry->value());
- if (!sharename) {
- LIEF_ERR("Can't read library name for DT_SONAME entry");
- break;
- }
- dynamic_entry->as<DynamicSharedObject>()->name(std::move(*sharename));
+ case DynamicEntry::TAG::SONAME:
+ {
+ dynamic_entry = std::make_unique<DynamicSharedObject>(entry, arch);
+ auto sharename = stream_->peek_string_at(dynamic_string_offset +
+ dynamic_entry->value());
+ if (!sharename) {
+ LIEF_ERR("Can't read library name for DT_SONAME entry");
break;
}
+ dynamic_entry->as<DynamicSharedObject>()->name(std::move(*sharename));
+ break;
+ }
+
+ case DynamicEntry::TAG::AUXILIARY:
+ {
+ dynamic_entry = std::make_unique<DynamicEntryAuxiliary>(entry, arch);
+ auto name = stream_->peek_string_at(dynamic_string_offset +
+ dynamic_entry->value());
+ if (!name) {
+ LIEF_ERR("Can't read library name for DT_AUXILIARY entry");
+ break;
+ }
+ dynamic_entry->as<DynamicEntryAuxiliary>()->name(std::move(*name));
+ break;
+ }
+
+ case DynamicEntry::TAG::FILTER:
+ {
+ dynamic_entry = std::make_unique<DynamicEntryFilter>(entry, arch);
+ auto name = stream_->peek_string_at(dynamic_string_offset +
+ dynamic_entry->value());
+ if (!name) {
+ LIEF_ERR("Can't read library name for DT_FILTER entry");
+ break;
+ }
+ dynamic_entry->as<DynamicEntryFilter>()->name(std::move(*name));
+ break;
+ }
case DynamicEntry::TAG::RPATH:
- {
- dynamic_entry = std::make_unique<DynamicEntryRpath>(entry, arch);
- auto name = stream_->peek_string_at(dynamic_string_offset + dynamic_entry->value());
- if (!name) {
- LIEF_ERR("Can't read rpath string value for DT_RPATH");
- break;
- }
- dynamic_entry->as<DynamicEntryRpath>()->rpath(std::move(*name));
+ {
+ dynamic_entry = std::make_unique<DynamicEntryRpath>(entry, arch);
+ auto name = stream_->peek_string_at(dynamic_string_offset +
+ dynamic_entry->value());
+ if (!name) {
+ LIEF_ERR("Can't read rpath string value for DT_RPATH");
break;
}
+ dynamic_entry->as<DynamicEntryRpath>()->rpath(std::move(*name));
+ break;
+ }
case DynamicEntry::TAG::RUNPATH:
- {
- dynamic_entry = std::make_unique<DynamicEntryRunPath>(entry, arch);
- auto name = stream_->peek_string_at(dynamic_string_offset + dynamic_entry->value());
- if (!name) {
- LIEF_ERR("Can't read runpath string value for DT_RUNPATH");
- break;
- }
- dynamic_entry->as<DynamicEntryRunPath>()->runpath(std::move(*name));
+ {
+ dynamic_entry = std::make_unique<DynamicEntryRunPath>(entry, arch);
+ auto name = stream_->peek_string_at(dynamic_string_offset +
+ dynamic_entry->value());
+ if (!name) {
+ LIEF_ERR("Can't read runpath string value for DT_RUNPATH");
break;
}
+ dynamic_entry->as<DynamicEntryRunPath>()->runpath(std::move(*name));
+ break;
+ }
case DynamicEntry::TAG::FLAGS_1:
case DynamicEntry::TAG::FLAGS:
- {
- dynamic_entry = std::make_unique<DynamicEntryFlags>(entry, arch);
- break;
- }
+ {
+ dynamic_entry = std::make_unique<DynamicEntryFlags>(entry, arch);
+ break;
+ }
case DynamicEntry::TAG::SYMTAB:
case DynamicEntry::TAG::SYMENT:
@@ -1370,36 +1507,36 @@ ok_error_t Parser::parse_dynamic_entries(BinaryStream& stream) {
case DynamicEntry::TAG::VERNEEDNUM:
case DynamicEntry::TAG::VERDEF:
case DynamicEntry::TAG::VERDEFNUM:
- {
- dynamic_entry = std::make_unique<DynamicEntry>(entry, arch);
- break;
- }
+ {
+ dynamic_entry = std::make_unique<DynamicEntry>(entry, arch);
+ break;
+ }
case DynamicEntry::TAG::FINI_ARRAY:
case DynamicEntry::TAG::INIT_ARRAY:
case DynamicEntry::TAG::PREINIT_ARRAY:
- {
- dynamic_entry = std::make_unique<DynamicEntryArray>(entry, arch);
- break;
- }
+ {
+ dynamic_entry = std::make_unique<DynamicEntryArray>(entry, arch);
+ break;
+ }
case DynamicEntry::TAG::DT_NULL_:
- {
- dynamic_entry = std::make_unique<DynamicEntry>(entry, arch);
- end_of_dynamic = true;
- break;
- }
+ {
+ dynamic_entry = std::make_unique<DynamicEntry>(entry, arch);
+ end_of_dynamic = true;
+ break;
+ }
default:
- {
- dynamic_entry = std::make_unique<DynamicEntry>(entry, arch);
- }
+ {
+ dynamic_entry = std::make_unique<DynamicEntry>(entry, arch);
+ }
}
if (dynamic_entry != nullptr) {
binary_->dynamic_entries_.push_back(std::move(dynamic_entry));
} else {
- LIEF_WARN("dynamic_entry is nullptr !");
+ LIEF_WARN("Null dynamic_entry");
}
if (end_of_dynamic) {
@@ -1410,11 +1547,16 @@ ok_error_t Parser::parse_dynamic_entries(BinaryStream& stream) {
// Check for INIT array
// ====================
if (DynamicEntry* dt_init_array = binary_->get(DynamicEntry::TAG::INIT_ARRAY)) {
- if (DynamicEntry* dt_init_arraysz = binary_->get(DynamicEntry::TAG::INIT_ARRAYSZ)) {
+ if (DynamicEntry* dt_init_arraysz =
+ binary_->get(DynamicEntry::TAG::INIT_ARRAYSZ))
+ {
binary_->sizing_info_->init_array = dt_init_arraysz->value();
- std::vector<uint64_t>& array = dt_init_array->as<DynamicEntryArray>()->array();
- const auto nb_functions = static_cast<uint32_t>(dt_init_arraysz->value() / sizeof(uint__));
- if (auto offset = binary_->virtual_address_to_offset(dt_init_array->value())) {
+ std::vector<uint64_t>& array =
+ dt_init_array->as<DynamicEntryArray>()->array();
+ const auto nb_functions =
+ static_cast<uint32_t>(dt_init_arraysz->value() / sizeof(uint__));
+ if (auto offset = binary_->virtual_address_to_offset(dt_init_array->value()))
+ {
stream_->setpos(*offset);
for (size_t i = 0; i < nb_functions; ++i) {
if (auto val = stream_->read<Elf_Addr>()) {
@@ -1425,7 +1567,8 @@ ok_error_t Parser::parse_dynamic_entries(BinaryStream& stream) {
}
}
} else {
- LIEF_WARN("The binary is not consistent. Found DT_INIT_ARRAY but missing DT_INIT_ARRAYSZ");
+ LIEF_WARN("The binary is not consistent. Found DT_INIT_ARRAY but missing "
+ "DT_INIT_ARRAYSZ");
}
}
@@ -1433,13 +1576,18 @@ ok_error_t Parser::parse_dynamic_entries(BinaryStream& stream) {
// Check for FINI array
// ====================
if (DynamicEntry* dt_fini_array = binary_->get(DynamicEntry::TAG::FINI_ARRAY)) {
- if (DynamicEntry* dt_fini_arraysz = binary_->get(DynamicEntry::TAG::FINI_ARRAYSZ)) {
+ if (DynamicEntry* dt_fini_arraysz =
+ binary_->get(DynamicEntry::TAG::FINI_ARRAYSZ))
+ {
binary_->sizing_info_->fini_array = dt_fini_arraysz->value();
- std::vector<uint64_t>& array = dt_fini_array->as<DynamicEntryArray>()->array();
+ std::vector<uint64_t>& array =
+ dt_fini_array->as<DynamicEntryArray>()->array();
- const auto nb_functions = static_cast<uint32_t>(dt_fini_arraysz->value() / sizeof(uint__));
+ const auto nb_functions =
+ static_cast<uint32_t>(dt_fini_arraysz->value() / sizeof(uint__));
- if (auto offset = binary_->virtual_address_to_offset(dt_fini_array->value())) {
+ if (auto offset = binary_->virtual_address_to_offset(dt_fini_array->value()))
+ {
stream_->setpos(*offset);
for (size_t i = 0; i < nb_functions; ++i) {
if (auto val = stream_->read<Elf_Addr>()) {
@@ -1450,20 +1598,29 @@ ok_error_t Parser::parse_dynamic_entries(BinaryStream& stream) {
}
}
} else {
- LIEF_WARN("The binary is not consistent. Found DT_FINI_ARRAY but missing DT_FINI_ARRAYSZ");
+ LIEF_WARN("The binary is not consistent. Found DT_FINI_ARRAY but missing "
+ "DT_FINI_ARRAYSZ");
}
}
// Check for PREINIT array
// =======================
- if (DynamicEntry* dt_preini_array = binary_->get(DynamicEntry::TAG::PREINIT_ARRAY)) {
- if (DynamicEntry* dt_preinit_arraysz = binary_->get(DynamicEntry::TAG::PREINIT_ARRAYSZ)) {
+ if (DynamicEntry* dt_preini_array =
+ binary_->get(DynamicEntry::TAG::PREINIT_ARRAY))
+ {
+ if (DynamicEntry* dt_preinit_arraysz =
+ binary_->get(DynamicEntry::TAG::PREINIT_ARRAYSZ))
+ {
binary_->sizing_info_->preinit_array = dt_preinit_arraysz->value();
- std::vector<uint64_t>& array = dt_preini_array->as<DynamicEntryArray>()->array();
+ std::vector<uint64_t>& array =
+ dt_preini_array->as<DynamicEntryArray>()->array();
- const auto nb_functions = static_cast<uint32_t>(dt_preinit_arraysz->value() / sizeof(uint__));
+ const auto nb_functions =
+ static_cast<uint32_t>(dt_preinit_arraysz->value() / sizeof(uint__));
- if (auto offset = binary_->virtual_address_to_offset(dt_preini_array->value())) {
+ if (auto offset =
+ binary_->virtual_address_to_offset(dt_preini_array->value()))
+ {
stream_->setpos(static_cast<Elf_Off>(*offset));
for (size_t i = 0; i < nb_functions; ++i) {
if (auto val = stream_->read<Elf_Addr>()) {
@@ -1474,7 +1631,8 @@ ok_error_t Parser::parse_dynamic_entries(BinaryStream& stream) {
}
}
} else {
- LIEF_WARN("The binary is not consistent. Found DT_PREINIT_ARRAY but missing DT_PREINIT_ARRAYSZ");
+ LIEF_WARN("The binary is not consistent. Found DT_PREINIT_ARRAY but missing "
+ "DT_PREINIT_ARRAYSZ");
}
}
return ok();
@@ -1483,9 +1641,10 @@ ok_error_t Parser::parse_dynamic_entries(BinaryStream& stream) {
template<typename ELF_T, typename REL_T>
ok_error_t Parser::parse_pltgot_relocations(uint64_t offset, uint64_t size) {
- static_assert(std::is_same<REL_T, typename ELF_T::Elf_Rel>::value ||
- std::is_same<REL_T, typename ELF_T::Elf_Rela>::value, "REL_T must be Elf_Rel or Elf_Rela");
- using Elf_Off = typename ELF_T::Elf_Off;
+ static_assert(std::is_same_v<REL_T, typename ELF_T::Elf_Rel> ||
+ std::is_same_v<REL_T, typename ELF_T::Elf_Rela>,
+ "REL_T must be Elf_Rel or Elf_Rela");
+ using Elf_Off = typename ELF_T::Elf_Off;
// Already Parsed
if (binary_->pltgot_relocations().size() > 0) {
@@ -1499,9 +1658,9 @@ ok_error_t Parser::parse_pltgot_relocations(uint64_t offset, uint64_t size) {
nb_entries = std::min<uint32_t>(nb_entries, Parser::NB_MAX_RELOCATIONS);
const ARCH arch = binary_->header_.machine_type();
- const Relocation::ENCODING enc =
- std::is_same_v<REL_T, typename ELF_T::Elf_Rel> ? Relocation::ENCODING::REL :
- Relocation::ENCODING::RELA;
+ const Relocation::ENCODING enc = std::is_same_v<REL_T, typename ELF_T::Elf_Rel> ?
+ Relocation::ENCODING::REL :
+ Relocation::ENCODING::RELA;
stream_->setpos(offset_relocations);
for (uint32_t i = 0; i < nb_entries; ++i) {
const auto rel_hdr = stream_->read<REL_T>();
@@ -1509,8 +1668,9 @@ ok_error_t Parser::parse_pltgot_relocations(uint64_t offset, uint64_t size) {
break;
}
- auto reloc = std::unique_ptr<Relocation>(new Relocation(
- std::move(*rel_hdr), Relocation::PURPOSE::PLTGOT, enc, arch));
+ auto reloc = std::unique_ptr<Relocation>(
+ new Relocation(std::move(*rel_hdr), Relocation::PURPOSE::PLTGOT, enc, arch)
+ );
bind_symbol(*reloc);
insert_relocation(std::move(reloc));
}
@@ -1519,10 +1679,8 @@ ok_error_t Parser::parse_pltgot_relocations(uint64_t offset, uint64_t size) {
struct RelocationSetEq {
bool operator()(const Relocation* lhs, const Relocation* rhs) const {
- bool check = lhs->address() == rhs->address() &&
- lhs->type() == rhs->type() &&
- lhs->addend() == rhs->addend() &&
- lhs->info() == rhs->info() &&
+ bool check = lhs->address() == rhs->address() && lhs->type() == rhs->type() &&
+ lhs->addend() == rhs->addend() && lhs->info() == rhs->info() &&
lhs->has_symbol() == rhs->has_symbol();
if (!check) {
@@ -1540,9 +1698,9 @@ struct RelocationSetHash {
size_t operator()(const Relocation* reloc) const {
Hash hasher;
hasher.process(reloc->address())
- .process(reloc->type())
- .process(reloc->info())
- .process(reloc->addend());
+ .process(reloc->type())
+ .process(reloc->info())
+ .process(reloc->addend());
const Symbol* sym = reloc->symbol();
if (sym != nullptr) {
@@ -1557,13 +1715,14 @@ ok_error_t Parser::parse_section_relocations(const Section& section) {
using Elf_Rel = typename ELF_T::Elf_Rel;
using Elf_Rela = typename ELF_T::Elf_Rela;
- static_assert(std::is_same<REL_T, Elf_Rel>::value ||
- std::is_same<REL_T, Elf_Rela>::value, "REL_T must be Elf_Rel || Elf_Rela");
+ static_assert(std::is_same_v<REL_T, Elf_Rel> || std::is_same_v<REL_T, Elf_Rela>,
+ "REL_T must be Elf_Rel || Elf_Rela");
// A relocation section can reference two other sections: a symbol table,
// identified by the sh_link section header entry, and a section to modify,
// identified by the sh_info
- // See Figure 4-12 in https://refspecs.linuxbase.org/elf/gabi4+/ch4.sheader.html#sh_link
+ // See Figure 4-12 in
+ // https://refspecs.linuxbase.org/elf/gabi4+/ch4.sheader.html#sh_link
Section* applies_to = nullptr;
const size_t sh_info = section.information();
if (sh_info > 0 && sh_info < binary_->sections_.size()) {
@@ -1581,8 +1740,8 @@ ok_error_t Parser::parse_section_relocations(const Section& section) {
const ARCH arch = binary_->header_.machine_type();
constexpr Relocation::ENCODING enc =
- std::is_same_v<REL_T, typename ELF_T::Elf_Rel> ? Relocation::ENCODING::REL :
- Relocation::ENCODING::RELA;
+ std::is_same_v<REL_T, typename ELF_T::Elf_Rel> ? Relocation::ENCODING::REL :
+ Relocation::ENCODING::RELA;
auto nb_entries = static_cast<uint32_t>(section.size() / sizeof(REL_T));
nb_entries = std::min<uint32_t>(nb_entries, Parser::NB_MAX_RELOCATIONS);
@@ -1590,37 +1749,40 @@ ok_error_t Parser::parse_section_relocations(const Section& section) {
std::unordered_set<Relocation*, RelocationSetHash, RelocationSetEq> reloc_hash;
SpanStream reloc_stream(section.content());
+ reloc_stream.set_endian_swap(stream_->should_swap());
+
const bool is_object_file =
- binary_->header().file_type() == Header::FILE_TYPE::REL &&
- binary_->segments_.empty();
+ binary_->header().file_type() == Header::FILE_TYPE::REL &&
+ binary_->segments_.empty();
size_t count = 0;
while (reloc_stream) {
auto rel_hdr = reloc_stream.read<REL_T>();
if (!rel_hdr) {
- LIEF_WARN("Can't parse relocation at offset: 0x{:04x} in {}",
+ LIEF_WARN("Can't parse relocation at offset: {:#06x} in {}",
reloc_stream.pos(), section.name());
break;
}
- auto reloc = std::unique_ptr<Relocation>(new Relocation(
- *rel_hdr, Relocation::PURPOSE::NONE, enc, arch));
+ auto reloc = std::unique_ptr<Relocation>(
+ new Relocation(*rel_hdr, Relocation::PURPOSE::NONE, enc, arch)
+ );
- reloc->section_ = applies_to;
+ reloc->section_ = applies_to;
reloc->symbol_table_ = symbol_table;
if (is_object_file) {
reloc->purpose(Relocation::PURPOSE::OBJECT);
}
- const auto idx = static_cast<uint32_t>(rel_hdr->r_info >> shift);
+ const auto idx = static_cast<uint32_t>(rel_hdr->r_info >> shift);
- const bool is_from_dynsym = idx > 0 && idx < binary_->dynamic_symbols_.size() &&
- (symbol_table == nullptr ||
- symbol_table->type() == Section::TYPE::DYNSYM);
+ const bool is_from_dynsym =
+ idx > 0 && idx < binary_->dynamic_symbols_.size() &&
+ (symbol_table == nullptr || symbol_table->type() == Section::TYPE::DYNSYM);
- const bool is_from_symtab = idx < binary_->symtab_symbols_.size() &&
- (symbol_table == nullptr ||
- symbol_table->type() == Section::TYPE::SYMTAB);
+ const bool is_from_symtab =
+ idx < binary_->symtab_symbols_.size() &&
+ (symbol_table == nullptr || symbol_table->type() == Section::TYPE::SYMTAB);
if (is_from_dynsym) {
reloc->symbol_ = binary_->dynamic_symbols_[idx].get();
} else if (is_from_symtab) {
@@ -1637,27 +1799,30 @@ ok_error_t Parser::parse_section_relocations(const Section& section) {
}
template<typename ELF_T>
-ok_error_t Parser::parse_symbol_version_requirement(uint64_t offset, uint32_t nb_entries) {
+ok_error_t Parser::parse_symbol_version_requirement(uint64_t offset,
+ uint32_t nb_entries) {
using Elf_Verneed = typename ELF_T::Elf_Verneed;
using Elf_Vernaux = typename ELF_T::Elf_Vernaux;
- LIEF_DEBUG("== Parser Symbol version requirement ==");
+ LIEF_DEBUG("Parsing symbol version requirements");
const uint64_t svr_offset = offset;
- LIEF_DEBUG("svr offset: 0x{:x}", svr_offset);
+ LIEF_DEBUG("svr_offset: {:#x}", svr_offset);
const uint64_t string_offset = get_dynamic_string_table();
- uint32_t next_symbol_offset = 0;
+ uint64_t next_symbol_offset = 0;
for (size_t sym_idx = 0; sym_idx < nb_entries; ++sym_idx) {
- const auto header = stream_->peek<Elf_Verneed>(svr_offset + next_symbol_offset);
+ const auto header =
+ stream_->peek<Elf_Verneed>(svr_offset + next_symbol_offset);
if (!header) {
break;
}
- auto symbol_version_requirement = std::make_unique<SymbolVersionRequirement>(*header);
+ auto symbol_version_requirement =
+ std::make_unique<SymbolVersionRequirement>(*header);
if (string_offset != 0) {
auto name = stream_->peek_string_at(string_offset + header->vn_file);
if (name) {
@@ -1668,10 +1833,10 @@ ok_error_t Parser::parse_symbol_version_requirement(uint64_t offset, uint32_t nb
const uint32_t nb_symbol_aux = header->vn_cnt;
if (nb_symbol_aux > 0 && header->vn_aux > 0) {
- uint32_t next_aux_offset = 0;
+ uint64_t next_aux_offset = 0;
for (size_t j = 0; j < nb_symbol_aux; ++j) {
- const uint64_t aux_hdr_off = svr_offset + next_symbol_offset +
- header->vn_aux + next_aux_offset;
+ const uint64_t aux_hdr_off =
+ svr_offset + next_symbol_offset + header->vn_aux + next_aux_offset;
const auto aux_header = stream_->peek<Elf_Vernaux>(aux_hdr_off);
if (!aux_header) {
@@ -1680,7 +1845,8 @@ ok_error_t Parser::parse_symbol_version_requirement(uint64_t offset, uint32_t nb
auto svar = std::make_unique<SymbolVersionAuxRequirement>(*aux_header);
if (string_offset != 0) {
- auto name = stream_->peek_string_at(string_offset + aux_header->vna_name);
+ auto name =
+ stream_->peek_string_at(string_offset + aux_header->vna_name);
if (name) {
svar->name(std::move(*name));
}
@@ -1690,16 +1856,26 @@ ok_error_t Parser::parse_symbol_version_requirement(uint64_t offset, uint32_t nb
if (aux_header->vna_next == 0) {
break;
}
+ const uint64_t prev_aux_offset = next_aux_offset;
next_aux_offset += aux_header->vna_next;
+ if (next_aux_offset <= prev_aux_offset) {
+ break;
+ }
}
- binary_->symbol_version_requirements_.push_back(std::move(symbol_version_requirement));
+ binary_->symbol_version_requirements_.push_back(
+ std::move(symbol_version_requirement)
+ );
}
if (header->vn_next == 0) {
break;
}
+ const uint64_t prev_symbol_offset = next_symbol_offset;
next_symbol_offset += header->vn_next;
+ if (next_symbol_offset <= prev_symbol_offset) {
+ break;
+ }
}
@@ -1707,25 +1883,32 @@ ok_error_t Parser::parse_symbol_version_requirement(uint64_t offset, uint32_t nb
// Symbol version requirement is used to map
// SymbolVersion::SymbolVersionAux <------> SymbolVersionAuxRequirement
//
- // We mask the 15th (7FFF) bit because it sets if this symbol is a hidden on or not
- // but we don't care
- for (const std::unique_ptr<SymbolVersionRequirement>& svr : binary_->symbol_version_requirements_) {
+ // We mask the 15th (7FFF) bit because it indicates if this symbol is a hidden
+ // one or not, but we don't care
+ for (const std::unique_ptr<SymbolVersionRequirement>& svr :
+ binary_->symbol_version_requirements_)
+ {
binary_->sizing_info_->verneed += sizeof(Elf_Verneed);
- for (std::unique_ptr<SymbolVersionAuxRequirement>& svar : svr->aux_requirements_) {
- binary_->sizing_info_->verneed += sizeof(Elf_Vernaux);
- for (const std::unique_ptr<SymbolVersion>& sv : binary_->symbol_version_table_) {
- if ((sv->value() & 0x7FFF) == svar->other()) {
- sv->symbol_aux_ = svar.get();
- }
+ for (std::unique_ptr<SymbolVersionAuxRequirement>& svar :
+ svr->aux_requirements_)
+ {
+ binary_->sizing_info_->verneed += sizeof(Elf_Vernaux);
+ for (const std::unique_ptr<SymbolVersion>& sv :
+ binary_->symbol_version_table_)
+ {
+ if ((sv->value() & 0x7FFF) == svar->other()) {
+ sv->symbol_aux_ = svar.get();
}
+ }
}
}
return ok();
}
template<typename ELF_T>
-ok_error_t Parser::parse_symbol_version_definition(uint64_t offset, uint32_t nb_entries) {
- using Elf_Verdef = typename ELF_T::Elf_Verdef;
+ok_error_t Parser::parse_symbol_version_definition(uint64_t offset,
+ uint32_t nb_entries) {
+ using Elf_Verdef = typename ELF_T::Elf_Verdef;
using Elf_Verdaux = typename ELF_T::Elf_Verdaux;
const uint64_t string_offset = get_dynamic_string_table();
@@ -1734,26 +1917,32 @@ ok_error_t Parser::parse_symbol_version_definition(uint64_t offset, uint32_t nb_
for (size_t i = 0; i < nb_entries; ++i) {
const auto svd_header = verdef_stream->peek<Elf_Verdef>();
- def_size = std::max(def_size, verdef_stream->pos() - offset + sizeof(Elf_Verdef));
+ def_size =
+ std::max(def_size, verdef_stream->pos() - offset + sizeof(Elf_Verdef));
if (!svd_header) {
break;
}
- auto symbol_version_definition = std::make_unique<SymbolVersionDefinition>(*svd_header);
+ auto symbol_version_definition =
+ std::make_unique<SymbolVersionDefinition>(*svd_header);
uint32_t nb_aux_symbols = svd_header->vd_cnt;
{
ScopedStream aux_stream(*stream_, verdef_stream->pos() + svd_header->vd_aux);
for (size_t j = 0; j < nb_aux_symbols; ++j) {
const auto svda_header = aux_stream->peek<Elf_Verdaux>();
- def_size = std::max(def_size, aux_stream->pos() - offset + sizeof(Elf_Verdaux));
+ def_size =
+ std::max(def_size, aux_stream->pos() - offset + sizeof(Elf_Verdaux));
if (!svda_header) {
break;
}
if (string_offset != 0) {
- auto name = stream_->peek_string_at(string_offset + svda_header->vda_name);
+ auto name =
+ stream_->peek_string_at(string_offset + svda_header->vda_name);
if (name) {
- symbol_version_definition->symbol_version_aux_.emplace_back(new SymbolVersionAux{std::move(*name)});
+ symbol_version_definition->symbol_version_aux_.emplace_back(
+ new SymbolVersionAux{std::move(*name)}
+ );
}
}
@@ -1765,7 +1954,9 @@ ok_error_t Parser::parse_symbol_version_definition(uint64_t offset, uint32_t nb_
}
}
- binary_->symbol_version_definition_.push_back(std::move(symbol_version_definition));
+ binary_->symbol_version_definition_.push_back(
+ std::move(symbol_version_definition)
+ );
// Additional check
if (svd_header->vd_next == 0) {
@@ -1777,12 +1968,16 @@ ok_error_t Parser::parse_symbol_version_definition(uint64_t offset, uint32_t nb_
binary_->sizing_info_->verdef = def_size;
// Associate Symbol Version with auxiliary symbol
- // We mask the 15th bit because it sets if this symbol is a hidden on or not
- // but we don't care
- for (std::unique_ptr<SymbolVersionDefinition>& svd : binary_->symbol_version_definition_) {
+ // We mask the 15th bit because it indicates if this symbol is a hidden one or
+ // not, but we don't care
+ for (std::unique_ptr<SymbolVersionDefinition>& svd :
+ binary_->symbol_version_definition_)
+ {
for (std::unique_ptr<SymbolVersionAux>& sva : svd->symbol_version_aux_) {
for (std::unique_ptr<SymbolVersion>& sv : binary_->symbol_version_table_) {
- if (svd->ndx() > 1 && (sv->value() & 0x7FFF) == svd->ndx() && !sv->symbol_aux_) {
+ if (svd->ndx() > 1 && (sv->value() & 0x7FFF) == svd->ndx() &&
+ !sv->symbol_aux_)
+ {
sv->symbol_aux_ = sva.get();
}
}
@@ -1792,4 +1987,3 @@ ok_error_t Parser::parse_symbol_version_definition(uint64_t offset, uint32_t nb_
}
}
-}
diff --git a/deps/LIEF/src/ELF/ProcessorFlags.cpp b/deps/LIEF/src/ELF/ProcessorFlags.cpp
index ad5f26c3275..b7a2d6e7a89 100644
--- a/deps/LIEF/src/ELF/ProcessorFlags.cpp
+++ b/deps/LIEF/src/ELF/ProcessorFlags.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,82 +16,82 @@
#include "LIEF/ELF/ProcessorFlags.hpp"
#include "frozen.hpp"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
const char* to_string(PROCESSOR_FLAGS flag) {
- #define ENTRY(X) std::pair(PROCESSOR_FLAGS::X, #X)
- STRING_MAP enums2str {
- ENTRY(ARM_EABI_UNKNOWN),
- ENTRY(ARM_SOFT_FLOAT),
- ENTRY(ARM_VFP_FLOAT),
- ENTRY(ARM_EABI_VER1),
- ENTRY(ARM_EABI_VER2),
- ENTRY(ARM_EABI_VER3),
- ENTRY(ARM_EABI_VER4),
- ENTRY(ARM_EABI_VER5),
- ENTRY(HEXAGON_MACH_V2),
- ENTRY(HEXAGON_MACH_V3),
- ENTRY(HEXAGON_MACH_V4),
- ENTRY(HEXAGON_MACH_V5),
- ENTRY(HEXAGON_ISA_V2),
- ENTRY(HEXAGON_ISA_V3),
- ENTRY(HEXAGON_ISA_V4),
- ENTRY(HEXAGON_ISA_V5),
- ENTRY(LOONGARCH_ABI_SOFT_FLOAT),
- ENTRY(LOONGARCH_ABI_SINGLE_FLOAT),
- ENTRY(LOONGARCH_ABI_DOUBLE_FLOAT),
- ENTRY(MIPS_NOREORDER),
- ENTRY(MIPS_PIC),
- ENTRY(MIPS_CPIC),
- ENTRY(MIPS_ABI2),
- ENTRY(MIPS_32BITMODE),
- ENTRY(MIPS_FP64),
- ENTRY(MIPS_NAN2008),
- ENTRY(MIPS_ABI_O32),
- ENTRY(MIPS_ABI_O64),
- ENTRY(MIPS_ABI_EABI32),
- ENTRY(MIPS_ABI_EABI64),
- ENTRY(MIPS_MACH_3900),
- ENTRY(MIPS_MACH_4010),
- ENTRY(MIPS_MACH_4100),
- ENTRY(MIPS_MACH_4650),
- ENTRY(MIPS_MACH_4120),
- ENTRY(MIPS_MACH_4111),
- ENTRY(MIPS_MACH_SB1),
- ENTRY(MIPS_MACH_OCTEON),
- ENTRY(MIPS_MACH_XLR),
- ENTRY(MIPS_MACH_OCTEON2),
- ENTRY(MIPS_MACH_OCTEON3),
- ENTRY(MIPS_MACH_5400),
- ENTRY(MIPS_MACH_5900),
- ENTRY(MIPS_MACH_5500),
- ENTRY(MIPS_MACH_9000),
- ENTRY(MIPS_MACH_LS2E),
- ENTRY(MIPS_MACH_LS2F),
- ENTRY(MIPS_MACH_LS3A),
- ENTRY(MIPS_MICROMIPS),
- ENTRY(MIPS_ARCH_ASE_M16),
- ENTRY(MIPS_ARCH_ASE_MDMX),
- ENTRY(MIPS_ARCH_1),
- ENTRY(MIPS_ARCH_2),
- ENTRY(MIPS_ARCH_3),
- ENTRY(MIPS_ARCH_4),
- ENTRY(MIPS_ARCH_5),
- ENTRY(MIPS_ARCH_32),
- ENTRY(MIPS_ARCH_64),
- ENTRY(MIPS_ARCH_32R2),
- ENTRY(MIPS_ARCH_64R2),
- ENTRY(MIPS_ARCH_32R6),
- ENTRY(MIPS_ARCH_64R6),
- ENTRY(RISCV_RVC),
- ENTRY(RISCV_FLOAT_ABI_SOFT),
- ENTRY(RISCV_FLOAT_ABI_SINGLE),
- ENTRY(RISCV_FLOAT_ABI_DOUBLE),
- ENTRY(RISCV_FLOAT_ABI_QUAD),
- ENTRY(RISCV_FLOAT_ABI_RVE),
- ENTRY(RISCV_FLOAT_ABI_TSO),
+#define ENTRY(X) std::pair(PROCESSOR_FLAGS::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(ARM_EABI_UNKNOWN),
+ ENTRY(ARM_SOFT_FLOAT),
+ ENTRY(ARM_VFP_FLOAT),
+ ENTRY(ARM_EABI_VER1),
+ ENTRY(ARM_EABI_VER2),
+ ENTRY(ARM_EABI_VER3),
+ ENTRY(ARM_EABI_VER4),
+ ENTRY(ARM_EABI_VER5),
+ ENTRY(HEXAGON_MACH_V2),
+ ENTRY(HEXAGON_MACH_V3),
+ ENTRY(HEXAGON_MACH_V4),
+ ENTRY(HEXAGON_MACH_V5),
+ ENTRY(HEXAGON_ISA_V2),
+ ENTRY(HEXAGON_ISA_V3),
+ ENTRY(HEXAGON_ISA_V4),
+ ENTRY(HEXAGON_ISA_V5),
+ ENTRY(LOONGARCH_ABI_SOFT_FLOAT),
+ ENTRY(LOONGARCH_ABI_SINGLE_FLOAT),
+ ENTRY(LOONGARCH_ABI_DOUBLE_FLOAT),
+ ENTRY(MIPS_NOREORDER),
+ ENTRY(MIPS_PIC),
+ ENTRY(MIPS_CPIC),
+ ENTRY(MIPS_ABI2),
+ ENTRY(MIPS_32BITMODE),
+ ENTRY(MIPS_FP64),
+ ENTRY(MIPS_NAN2008),
+ ENTRY(MIPS_ABI_O32),
+ ENTRY(MIPS_ABI_O64),
+ ENTRY(MIPS_ABI_EABI32),
+ ENTRY(MIPS_ABI_EABI64),
+ ENTRY(MIPS_MACH_3900),
+ ENTRY(MIPS_MACH_4010),
+ ENTRY(MIPS_MACH_4100),
+ ENTRY(MIPS_MACH_4650),
+ ENTRY(MIPS_MACH_4120),
+ ENTRY(MIPS_MACH_4111),
+ ENTRY(MIPS_MACH_SB1),
+ ENTRY(MIPS_MACH_OCTEON),
+ ENTRY(MIPS_MACH_XLR),
+ ENTRY(MIPS_MACH_OCTEON2),
+ ENTRY(MIPS_MACH_OCTEON3),
+ ENTRY(MIPS_MACH_5400),
+ ENTRY(MIPS_MACH_5900),
+ ENTRY(MIPS_MACH_5500),
+ ENTRY(MIPS_MACH_9000),
+ ENTRY(MIPS_MACH_LS2E),
+ ENTRY(MIPS_MACH_LS2F),
+ ENTRY(MIPS_MACH_LS3A),
+ ENTRY(MIPS_MICROMIPS),
+ ENTRY(MIPS_ARCH_ASE_M16),
+ ENTRY(MIPS_ARCH_ASE_MDMX),
+ ENTRY(MIPS_ARCH_1),
+ ENTRY(MIPS_ARCH_2),
+ ENTRY(MIPS_ARCH_3),
+ ENTRY(MIPS_ARCH_4),
+ ENTRY(MIPS_ARCH_5),
+ ENTRY(MIPS_ARCH_32),
+ ENTRY(MIPS_ARCH_64),
+ ENTRY(MIPS_ARCH_32R2),
+ ENTRY(MIPS_ARCH_64R2),
+ ENTRY(MIPS_ARCH_32R6),
+ ENTRY(MIPS_ARCH_64R6),
+ ENTRY(RISCV_RVC),
+ ENTRY(RISCV_FLOAT_ABI_SOFT),
+ ENTRY(RISCV_FLOAT_ABI_SINGLE),
+ ENTRY(RISCV_FLOAT_ABI_DOUBLE),
+ ENTRY(RISCV_FLOAT_ABI_QUAD),
+ ENTRY(RISCV_FLOAT_ABI_RVE),
+ ENTRY(RISCV_FLOAT_ABI_TSO),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(flag); it != enums2str.end()) {
return it->second;
@@ -99,4 +99,3 @@ const char* to_string(PROCESSOR_FLAGS flag) {
return "UNKNOWN";
}
}
-}
diff --git a/deps/LIEF/src/ELF/Relocation.cpp b/deps/LIEF/src/ELF/Relocation.cpp
index e28e38211ca..b94866c2e2b 100644
--- a/deps/LIEF/src/ELF/Relocation.cpp
+++ b/deps/LIEF/src/ELF/Relocation.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,54 +24,44 @@
#include "logging.hpp"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
int32_t get_reloc_size(Relocation::TYPE type);
-template Relocation::Relocation(const details::Elf32_Rel&, PURPOSE, ENCODING, ARCH);
-template Relocation::Relocation(const details::Elf32_Rela&, PURPOSE, ENCODING, ARCH);
-template Relocation::Relocation(const details::Elf64_Rel&, PURPOSE, ENCODING, ARCH);
-template Relocation::Relocation(const details::Elf64_Rela&, PURPOSE, ENCODING, ARCH);
+template Relocation::Relocation(const details::Elf32_Rel&, PURPOSE, ENCODING,
+ ARCH);
+template Relocation::Relocation(const details::Elf32_Rela&, PURPOSE, ENCODING,
+ ARCH);
+template Relocation::Relocation(const details::Elf64_Rel&, PURPOSE, ENCODING,
+ ARCH);
+template Relocation::Relocation(const details::Elf64_Rela&, PURPOSE, ENCODING,
+ ARCH);
Relocation::TYPE Relocation::type_from(uint32_t value, ARCH arch) {
static std::set<ARCH> ERR;
switch (arch) {
- case ARCH::X86_64:
- return TYPE(value | R_X64);
- case ARCH::AARCH64:
- return TYPE(value | R_AARCH64);
- case ARCH::I386:
- return TYPE(value | R_X86);
- case ARCH::ARM:
- return TYPE(value | R_ARM);
- case ARCH::HEXAGON:
- return TYPE(value | R_HEXAGON);
- case ARCH::LOONGARCH:
- return TYPE(value | R_LARCH);
- case ARCH::MIPS:
- return TYPE(value | R_MIPS);
- case ARCH::PPC:
- return TYPE(value | R_PPC);
- case ARCH::PPC64:
- return TYPE(value | R_PPC64);
- case ARCH::SPARC:
- return TYPE(value | R_SPARC);
- case ARCH::RISCV:
- return TYPE(value | R_RISCV);
- case ARCH::BPF:
- return TYPE(value | R_BPF);
- case ARCH::SH:
- return TYPE(value | R_SH4);
- case ARCH::S390:
- return TYPE(value | R_SYSZ);
+ case ARCH::X86_64: return TYPE(value | R_X64);
+ case ARCH::AARCH64: return TYPE(value | R_AARCH64);
+ case ARCH::I386: return TYPE(value | R_X86);
+ case ARCH::ARM: return TYPE(value | R_ARM);
+ case ARCH::HEXAGON: return TYPE(value | R_HEXAGON);
+ case ARCH::LOONGARCH: return TYPE(value | R_LARCH);
+ case ARCH::MIPS: return TYPE(value | R_MIPS);
+ case ARCH::PPC: return TYPE(value | R_PPC);
+ case ARCH::PPC64: return TYPE(value | R_PPC64);
+ case ARCH::SPARC: return TYPE(value | R_SPARC);
+ case ARCH::RISCV: return TYPE(value | R_RISCV);
+ case ARCH::BPF: return TYPE(value | R_BPF);
+ case ARCH::SH: return TYPE(value | R_SH4);
+ case ARCH::S390: return TYPE(value | R_SYSZ);
default:
- {
- if (ERR.insert(arch).second) {
- LIEF_ERR("LIEF does not support relocation for '{}'", to_string(arch));
- }
- return TYPE::UNKNOWN;
+ {
+ if (ERR.insert(arch).second) {
+ LIEF_ERR("Unsupported relocation architecture '{}'", to_string(arch));
}
+ return TYPE::UNKNOWN;
+ }
}
return TYPE::UNKNOWN;
}
@@ -81,8 +71,7 @@ Relocation::Relocation(const T& header, PURPOSE purpose, ENCODING enc, ARCH arch
LIEF::Relocation{header.r_offset, 0},
encoding_{enc},
architecture_{arch},
- purpose_{purpose}
-{
+ purpose_{purpose} {
if constexpr (std::is_same_v<T, details::Elf32_Rel> ||
std::is_same_v<T, details::Elf32_Rela>)
{
@@ -107,51 +96,37 @@ Relocation::Relocation(const T& header, PURPOSE purpose, ENCODING enc, ARCH arch
Relocation::Relocation(uint64_t address, TYPE type, ENCODING encoding) :
LIEF::Relocation(address, 0),
type_(type),
- encoding_(encoding)
-{
+ encoding_(encoding) {
if (type != TYPE::UNKNOWN) {
auto raw_type = static_cast<uint64_t>(type);
const uint64_t ID = (raw_type >> Relocation::R_BIT) << Relocation::R_BIT;
if (ID == Relocation::R_X64) {
architecture_ = ARCH::X86_64;
- }
- else if (ID == Relocation::R_AARCH64) {
+ } else if (ID == Relocation::R_AARCH64) {
architecture_ = ARCH::AARCH64;
- }
- else if (ID == Relocation::R_ARM) {
+ } else if (ID == Relocation::R_ARM) {
architecture_ = ARCH::ARM;
- }
- else if (ID == Relocation::R_HEXAGON) {
+ } else if (ID == Relocation::R_HEXAGON) {
architecture_ = ARCH::HEXAGON;
- }
- else if (ID == Relocation::R_X86) {
+ } else if (ID == Relocation::R_X86) {
architecture_ = ARCH::I386;
- }
- else if (ID == Relocation::R_LARCH) {
+ } else if (ID == Relocation::R_LARCH) {
architecture_ = ARCH::LOONGARCH;
- }
- else if (ID == Relocation::R_MIPS) {
+ } else if (ID == Relocation::R_MIPS) {
architecture_ = ARCH::MIPS;
- }
- else if (ID == Relocation::R_PPC) {
+ } else if (ID == Relocation::R_PPC) {
architecture_ = ARCH::PPC;
- }
- else if (ID == Relocation::R_PPC64) {
+ } else if (ID == Relocation::R_PPC64) {
architecture_ = ARCH::PPC64;
- }
- else if (ID == Relocation::R_SPARC) {
+ } else if (ID == Relocation::R_SPARC) {
architecture_ = ARCH::SPARC;
- }
- else if (ID == Relocation::R_RISCV) {
+ } else if (ID == Relocation::R_RISCV) {
architecture_ = ARCH::RISCV;
- }
- else if (ID == Relocation::R_BPF) {
+ } else if (ID == Relocation::R_BPF) {
architecture_ = ARCH::BPF;
- }
- else if (ID == Relocation::R_SH4) {
+ } else if (ID == Relocation::R_SH4) {
architecture_ = ARCH::SH;
- }
- else if (ID == Relocation::R_SYSZ) {
+ } else if (ID == Relocation::R_SYSZ) {
architecture_ = ARCH::S390;
}
}
@@ -169,241 +144,191 @@ result<uint64_t> Relocation::resolve(uint64_t base_address) const {
/* Memory based address */
const uint64_t B = base_address;
- auto Q = [&] () -> int64_t {
+ auto Q = [&]() -> int64_t {
if (RSZ < 0) {
- LIEF_ERR("Missing size support for {}", to_string(type()));
+ LIEF_ERR("Missing size info for relocation {}", to_string(type()));
return 0;
}
switch (RSZ) {
case sizeof(uint8_t):
- {
- auto V = binary_->get_int_from_virtual_address<uint8_t>(P);
- if (!V) {
- LIEF_ERR("{}: Can't access relocation data at offset: 0x{:06x} (8-bit)",
- to_string(type()),P);
- return 0;
- }
- return (int64_t)((int8_t)*V);
+ {
+ auto V = binary_->get_int_from_virtual_address<uint8_t>(P);
+ if (!V) {
+ LIEF_ERR(
+ "{}: Failed to access relocation data at offset {:#08x} (8-bit)",
+ to_string(type()), P
+ );
+ return 0;
}
+ return (int64_t)((int8_t)*V);
+ }
case sizeof(uint16_t):
- {
- auto V = binary_->get_int_from_virtual_address<uint16_t>(P);
- if (!V) {
- LIEF_ERR("{}: Can't access relocation data at offset: 0x{:06x} (16-bit)",
- to_string(type()),P);
- return 0;
- }
- return (int64_t)((int16_t)*V);
+ {
+ auto V = binary_->get_int_from_virtual_address<uint16_t>(P);
+ if (!V) {
+ LIEF_ERR(
+ "{}: Failed to access relocation data at offset {:#08x} (16-bit)",
+ to_string(type()), P
+ );
+ return 0;
}
+ return (int64_t)((int16_t)*V);
+ }
case sizeof(uint32_t):
- {
- auto V = binary_->get_int_from_virtual_address<uint32_t>(P);
- if (!V) {
- LIEF_ERR("{}: Can't access relocation data at offset: 0x{:06x} (32-bit)",
- to_string(type()),P);
- return 0;
- }
- return (int64_t)((int32_t)*V);
+ {
+ auto V = binary_->get_int_from_virtual_address<uint32_t>(P);
+ if (!V) {
+ LIEF_ERR(
+ "{}: Failed to access relocation data at offset {:#08x} (32-bit)",
+ to_string(type()), P
+ );
+ return 0;
}
+ return (int64_t)((int32_t)*V);
+ }
case sizeof(uint64_t):
- {
- auto V = binary_->get_int_from_virtual_address<uint64_t>(P);
- if (!V) {
- LIEF_ERR("{}: Can't access relocation data at offset: 0x{:06x} (64-bit)",
- to_string(type()),P);
- return 0;
- }
- return (int64_t)*V;
+ {
+ auto V = binary_->get_int_from_virtual_address<uint64_t>(P);
+ if (!V) {
+ LIEF_ERR(
+ "{}: Failed to access relocation data at offset {:#08x} (64-bit)",
+ to_string(type()), P
+ );
+ return 0;
}
+ return (int64_t)*V;
+ }
default:
- LIEF_ERR("Invalid size of {} (sz: {})", to_string(type()), RSZ);
+ LIEF_ERR("Invalid relocation size {} (sz: {})", to_string(type()), RSZ);
return 0;
}
};
switch (type()) {
- /* X86_64 { */
- /* See ELF x86-64-ABI psABI[1] for the reference
- *
- * [1]: https://gitlab.com/x86-psABIs/x86-64-ABI
- */
- case TYPE::X86_64_NONE:
- return Q();
- case TYPE::X86_64_64:
- case TYPE::X86_64_DTPOFF32:
- case TYPE::X86_64_DTPOFF64:
- return S + A;
- case TYPE::X86_64_PC32:
- case TYPE::X86_64_PC64:
- return S + A - P;
- case TYPE::X86_64_32:
- case TYPE::X86_64_32S:
- return (S + A) & 0xFFFFFFFF;
- case TYPE::X86_64_GLOB_DAT:
- case TYPE::X86_64_JUMP_SLOT:
- return S;
- case TYPE::X86_64_RELATIVE:
- return B + A;
- case TYPE::X86_64_RELATIVE64:
- return B + A;
- /* } */
-
- /* X86 { */
- case TYPE::X86_NONE:
- return Q();
- case TYPE::X86_32:
- return S + Q();
- case TYPE::X86_PC32:
- return S - P + Q();
- case TYPE::X86_GLOB_DAT:
- case TYPE::X86_JUMP_SLOT:
- return S;
- case TYPE::X86_RELATIVE:
- return B + Q();
- /* } */
-
- /* AArc64 { */
- case TYPE::AARCH64_ABS32:
- return (S + A) & 0xFFFFFFFF;
- case TYPE::AARCH64_ABS64:
- return S + A;
- case TYPE::AARCH64_PREL16:
- return (S + A - P) & 0xFFFF;
- case TYPE::AARCH64_PREL32:
- return (S + A - P) & 0xFFFFFFFF;
- case TYPE::AARCH64_PREL64:
- return S + A - P;
- case TYPE::AARCH64_GLOB_DAT:
- case TYPE::AARCH64_JUMP_SLOT:
- return S;
- case TYPE::AARCH64_RELATIVE:
- return B + A;
- /* } */
-
- /* ARM { */
- case TYPE::ARM_ABS32:
- return (S + Q() + A) & 0xFFFFFFFF;
- case TYPE::ARM_REL32:
- return (S + Q() + A - P) & 0xFFFFFFFF;
- case TYPE::ARM_GLOB_DAT:
- case TYPE::ARM_JUMP_SLOT:
- return S;
- case TYPE::ARM_RELATIVE:
- return B + Q();
- /* } */
-
-
- /* eBPF { */
- case TYPE::BPF_64_ABS32:
- return (S + Q()) & 0xFFFFFFFF;
-
- case TYPE::BPF_64_ABS64:
- return S + Q();
+ /* X86_64 { */
+ /* See ELF x86-64-ABI psABI[1] for the reference
+ *
+ * [1]: https://gitlab.com/x86-psABIs/x86-64-ABI
+ */
+ case TYPE::X86_64_NONE: return Q();
+ case TYPE::X86_64_64:
+ case TYPE::X86_64_DTPOFF32:
+ case TYPE::X86_64_DTPOFF64: return S + A;
+ case TYPE::X86_64_PC32:
+ case TYPE::X86_64_PC64: return S + A - P;
+ case TYPE::X86_64_32:
+ case TYPE::X86_64_32S: return (S + A) & 0xFFFFFFFF;
+ case TYPE::X86_64_GLOB_DAT:
+ case TYPE::X86_64_JUMP_SLOT: return S;
+ case TYPE::X86_64_RELATIVE:
+ case TYPE::X86_64_RELATIVE64:
+ return B + A;
+ /* } */
+
+ /* X86 { */
+ case TYPE::X86_NONE: return Q();
+ case TYPE::X86_32: return S + Q();
+ case TYPE::X86_PC32: return S - P + Q();
+ case TYPE::X86_GLOB_DAT:
+ case TYPE::X86_JUMP_SLOT: return S;
+ case TYPE::X86_RELATIVE:
+ return B + Q();
+ /* } */
+
+ /* AArc64 { */
+ case TYPE::AARCH64_ABS32: return (S + A) & 0xFFFFFFFF;
+ case TYPE::AARCH64_ABS64: return S + A;
+ case TYPE::AARCH64_PREL16: return (S + A - P) & 0xFFFF;
+ case TYPE::AARCH64_PREL32: return (S + A - P) & 0xFFFFFFFF;
+ case TYPE::AARCH64_PREL64: return S + A - P;
+ case TYPE::AARCH64_GLOB_DAT:
+ case TYPE::AARCH64_JUMP_SLOT: return S;
+ case TYPE::AARCH64_RELATIVE:
+ return B + A;
+ /* } */
+
+ /* ARM { */
+ case TYPE::ARM_ABS32: return (S + Q() + A) & 0xFFFFFFFF;
+ case TYPE::ARM_REL32: return (S + Q() + A - P) & 0xFFFFFFFF;
+ case TYPE::ARM_GLOB_DAT:
+ case TYPE::ARM_JUMP_SLOT: return S;
+ case TYPE::ARM_RELATIVE:
+ return B + Q();
+ /* } */
+
+
+ /* eBPF { */
+ case TYPE::BPF_64_ABS32: return (S + Q()) & 0xFFFFFFFF;
+
+ case TYPE::BPF_64_ABS64:
+ return S + Q();
+ /* } */
+
+ /* MIPS { */
+ case TYPE::MIPS_32: return (S + A) & 0xFFFFFFFF;
+ case TYPE::MIPS_64: return S + A;
+ case TYPE::MIPS_TLS_DTPREL64: return S + A - 0x8000;
+ case TYPE::MIPS_PC32:
+ return S + A - P;
+ /* } */
+
+ /* PPC64 { */
+ case TYPE::PPC64_ADDR32: return (S + A) & 0xFFFFFFFF;
+ case TYPE::PPC64_ADDR64: return S + A;
+ case TYPE::PPC64_REL32: return (S + A - P) & 0xFFFFFFFF;
+ case TYPE::PPC64_REL64:
+ return S + A - P;
+ /* } */
+
+ /* PPC32 { */
+ case TYPE::PPC_ADDR32: return (S + A) & 0xFFFFFFFF;
+ case TYPE::PPC_REL32:
+ return (S + A - P) & 0xFFFFFFFF;
+ /* } */
+
+ /* RISCV { */
+ case TYPE::RISCV_NONE: return Q();
+ case TYPE::RISCV_32: return (S + A) & 0xFFFFFFFF;
+ case TYPE::RISCV_32_PCREL: return (S + A - P) & 0xFFFFFFFF;
+ case TYPE::RISCV_64: return S + A;
+ case TYPE::RISCV_SET6: return (A & 0xC0) | ((S + A) & 0x3F);
+ case TYPE::RISCV_SUB6: return (A & 0xC0) | (((A & 0x3F) - (S + A)) & 0x3F);
+ case TYPE::RISCV_SET8: return (S + A) & 0xFF;
+ case TYPE::RISCV_ADD8: return (A + (S + A)) & 0xFF;
+ case TYPE::RISCV_SUB8: return (A - (S + 1)) & 0xFF;
+ case TYPE::RISCV_SET16: return (S + A) & 0xFFFF;
+ case TYPE::RISCV_ADD16: return (A + (S + A)) & 0xFFFF;
+ case TYPE::RISCV_SUB16: return (A - (S + A)) & 0xFFFF;
+ case TYPE::RISCV_SET32: return (S + A) & 0xFFFFFFFF;
+ case TYPE::RISCV_ADD32: return (A + (S + A)) & 0xFFFFFFFF;
+ case TYPE::RISCV_SUB32: return (A - (S + A)) & 0xFFFFFFFF;
+ case TYPE::RISCV_ADD64: return (A + (S + A));
+ case TYPE::RISCV_SUB64:
+ return (A - (S + A));
+ /* } */
+
+ /* LoongArch { */
+ case TYPE::LARCH_NONE: return Q();
+ case TYPE::LARCH_32: return (S + A) & 0xFFFFFFFF;
+ case TYPE::LARCH_32_PCREL: return (S + A - P) & 0xFFFFFFFF;
+ case TYPE::LARCH_64: return S + A;
+ case TYPE::LARCH_ADD6: return (Q() & 0xC0) | ((Q() + S + A) & 0x3F);
+ case TYPE::LARCH_SUB6: return (Q() & 0xC0) | ((Q() - (S + A)) & 0x3F);
+ case TYPE::LARCH_ADD8: return (Q() + (S + A)) & 0xFF;
+ case TYPE::LARCH_SUB8: return (Q() - (S + A)) & 0xFF;
+ case TYPE::LARCH_ADD16: return (Q() + (S + A)) & 0xFFFF;
+ case TYPE::LARCH_SUB16: return (Q() - (S + A)) & 0xFFFF;
+ case TYPE::LARCH_ADD32: return (Q() + (S + A)) & 0xFFFFFFFF;
+ case TYPE::LARCH_SUB32: return (Q() - (S + A)) & 0xFFFFFFFF;
+ case TYPE::LARCH_ADD64: return (Q() + (S + A));
+ case TYPE::LARCH_SUB64: return (Q() - (S + A));
/* } */
-
- /* MIPS { */
- case TYPE::MIPS_32:
- return (S + A) & 0xFFFFFFFF;
- case TYPE::MIPS_64:
- return S + A;
- case TYPE::MIPS_TLS_DTPREL64:
- return S + A - 0x8000;
- case TYPE::MIPS_PC32:
- return S + A - P;
- /* } */
-
- /* PPC64 { */
- case TYPE::PPC64_ADDR32:
- return (S + A) & 0xFFFFFFFF;
- case TYPE::PPC64_ADDR64:
- return S + A;
- case TYPE::PPC64_REL32:
- return (S + A - P) & 0xFFFFFFFF;
- case TYPE::PPC64_REL64:
- return S + A - P;
- /* } */
-
- /* PPC32 { */
- case TYPE::PPC_ADDR32:
- return (S + A) & 0xFFFFFFFF;
- case TYPE::PPC_REL32:
- return (S + A - P) & 0xFFFFFFFF;
- /* } */
-
- /* RISCV { */
- case TYPE::RISCV_NONE:
- return Q();
- case TYPE::RISCV_32:
- return (S + A) & 0xFFFFFFFF;
- case TYPE::RISCV_32_PCREL:
- return (S + A - P) & 0xFFFFFFFF;
- case TYPE::RISCV_64:
- return S + A;
- case TYPE::RISCV_SET6:
- return (A & 0xC0) | ((S + A) & 0x3F);
- case TYPE::RISCV_SUB6:
- return (A & 0xC0) | (((A & 0x3F) - (S + A)) & 0x3F);
- case TYPE::RISCV_SET8:
- return (S + A) & 0xFF;
- case TYPE::RISCV_ADD8:
- return (A + (S + A)) & 0xFF;
- case TYPE::RISCV_SUB8:
- return (A - (S + 1)) & 0xFF;
- case TYPE::RISCV_SET16:
- return (S + A) & 0xFFFF;
- case TYPE::RISCV_ADD16:
- return (A + (S + A)) & 0xFFFF;
- case TYPE::RISCV_SUB16:
- return (A - (S + A)) & 0xFFFF;
- case TYPE::RISCV_SET32:
- return (S + A) & 0xFFFFFFFF;
- case TYPE::RISCV_ADD32:
- return (A + (S + A)) & 0xFFFFFFFF;
- case TYPE::RISCV_SUB32:
- return (A - (S + A)) & 0xFFFFFFFF;
- case TYPE::RISCV_ADD64:
- return (A + (S + A));
- case TYPE::RISCV_SUB64:
- return (A - (S + A));
- /* } */
-
- /* LoongArch { */
- case TYPE::LARCH_NONE:
- return Q();
- case TYPE::LARCH_32:
- return (S + A) & 0xFFFFFFFF;
- case TYPE::LARCH_32_PCREL:
- return (S + A - P) & 0xFFFFFFFF;
- case TYPE::LARCH_64:
- return S + A;
- case TYPE::LARCH_ADD6:
- return (Q() & 0xC0) | ((Q() + S + A) & 0x3F);
- case TYPE::LARCH_SUB6:
- return (Q() & 0xC0) | ((Q() - (S + A)) & 0x3F);
- case TYPE::LARCH_ADD8:
- return (Q() + (S + A)) & 0xFF;
- case TYPE::LARCH_SUB8:
- return (Q() - (S + A)) & 0xFF;
- case TYPE::LARCH_ADD16:
- return (Q() + (S + A)) & 0xFFFF;
- case TYPE::LARCH_SUB16:
- return (Q() - (S + A)) & 0xFFFF;
- case TYPE::LARCH_ADD32:
- return (Q() + (S + A)) & 0xFFFFFFFF;
- case TYPE::LARCH_SUB32:
- return (Q() - (S + A)) & 0xFFFFFFFF;
- case TYPE::LARCH_ADD64:
- return (Q() + (S + A));
- case TYPE::LARCH_SUB64:
- return (Q() - (S + A));
- /* } */
- default:
- break;
+ default: break;
}
- LIEF_DEBUG("Relocation {} is not supported", to_string(type()));
+ LIEF_DEBUG("Unsupported relocation type: {}", to_string(type()));
return make_error_code(lief_errors::not_supported);
}
@@ -425,16 +350,15 @@ std::ostream& operator<<(std::ostream& os, const Relocation& entry) {
}
}
if (entry.size() == uint64_t(-1)) {
- os << fmt::format("0x{:06x} {} 0x{:04x} 0x{:02x} {}",
- entry.address(), to_string(entry.type()),
- entry.addend(), entry.info(), symbol_name);
+ os << fmt::format("{:#08x} {} {:#06x} {:#04x} {}", entry.address(),
+ to_string(entry.type()), entry.addend(), entry.info(),
+ symbol_name);
return os;
}
- os << fmt::format("0x{:06x} {} ({}) 0x{:04x} 0x{:02x} {}",
- entry.address(), to_string(entry.type()),
- entry.size(), entry.addend(), entry.info(), symbol_name);
+ os << fmt::format("{:#08x} {} ({}) {:#06x} {:#04x} {}", entry.address(),
+ to_string(entry.type()), entry.size(), entry.addend(),
+ entry.info(), symbol_name);
return os;
}
}
-}
diff --git a/deps/LIEF/src/ELF/RelocationSizes.cpp b/deps/LIEF/src/ELF/RelocationSizes.cpp
index b8e1dad78de..d768a2b773f 100644
--- a/deps/LIEF/src/ELF/RelocationSizes.cpp
+++ b/deps/LIEF/src/ELF/RelocationSizes.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,9 @@
#include "LIEF/ELF/Relocation.hpp"
#include "frozen.hpp"
-namespace LIEF {
-namespace ELF {
+// clang-format off
+
+namespace LIEF::ELF {
int32_t get_R_X64(Relocation::TYPE type) {
CONST_MAP_ALT SIZES {
@@ -940,4 +941,4 @@ int32_t get_reloc_size(Relocation::TYPE type) {
}
}
-}
+
diff --git a/deps/LIEF/src/ELF/RelocationStrings.cpp b/deps/LIEF/src/ELF/RelocationStrings.cpp
index 60b665c886b..06705f9bbd1 100644
--- a/deps/LIEF/src/ELF/RelocationStrings.cpp
+++ b/deps/LIEF/src/ELF/RelocationStrings.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,19 +15,17 @@
*/
#include "LIEF/ELF/Relocation.hpp"
#include "frozen.hpp"
-#include "logging.hpp"
#define ELF_RELOC(X, _) std::pair(Relocation::TYPE::X, #X),
-namespace LIEF {
-namespace ELF {
+namespace LIEF::ELF {
template<uint32_t>
const char* to_string(Relocation::TYPE type);
template<>
const char* to_string<Relocation::R_X64>(Relocation::TYPE type) {
STRING_MAP enums2str {
- #include "LIEF/ELF/Relocations/x86_64.def"
+#include "LIEF/ELF/Relocations/x86_64.def"
};
if (auto it = enums2str.find(type); it != enums2str.end()) {
@@ -39,7 +37,7 @@ const char* to_string<Relocation::R_X64>(Relocation::TYPE type) {
template<>
const char* to_string<Relocation::R_AARCH64>(Relocation::TYPE type) {
STRING_MAP enums2str {
- #include "LIEF/ELF/Relocations/AArch64.def"
+#include "LIEF/ELF/Relocations/AArch64.def"
};
if (auto it = enums2str.find(type); it != enums2str.end()) {
@@ -51,7 +49,7 @@ const char* to_string<Relocation::R_AARCH64>(Relocation::TYPE type) {
template<>
const char* to_string<Relocation::R_ARM>(Relocation::TYPE type) {
STRING_MAP enums2str {
- #include "LIEF/ELF/Relocations/ARM.def"
+#include "LIEF/ELF/Relocations/ARM.def"
};
if (auto it = enums2str.find(type); it != enums2str.end()) {
@@ -62,9 +60,9 @@ const char* to_string<Relocation::R_ARM>(Relocation::TYPE type) {
template<>
const char* to_string<Relocation::R_HEXAGON>(Relocation::TYPE type) {
- #define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
+#define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
STRING_MAP enums2str {
- #include "LIEF/ELF/Relocations/Hexagon.def"
+#include "LIEF/ELF/Relocations/Hexagon.def"
};
if (auto it = enums2str.find(type); it != enums2str.end()) {
@@ -75,9 +73,9 @@ const char* to_string<Relocation::R_HEXAGON>(Relocation::TYPE type) {
template<>
const char* to_string<Relocation::R_X86>(Relocation::TYPE type) {
- #define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
+#define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
STRING_MAP enums2str {
- #include "LIEF/ELF/Relocations/i386.def"
+#include "LIEF/ELF/Relocations/i386.def"
};
if (auto it = enums2str.find(type); it != enums2str.end()) {
@@ -89,7 +87,7 @@ const char* to_string<Relocation::R_X86>(Relocation::TYPE type) {
template<>
const char* to_string<Relocation::R_LARCH>(Relocation::TYPE type) {
STRING_MAP enums2str {
- #include "LIEF/ELF/Relocations/LoongArch.def"
+#include "LIEF/ELF/Relocations/LoongArch.def"
};
if (auto it = enums2str.find(type); it != enums2str.end()) {
@@ -101,7 +99,7 @@ const char* to_string<Relocation::R_LARCH>(Relocation::TYPE type) {
template<>
const char* to_string<Relocation::R_MIPS>(Relocation::TYPE type) {
STRING_MAP enums2str {
- #include "LIEF/ELF/Relocations/Mips.def"
+#include "LIEF/ELF/Relocations/Mips.def"
};
if (auto it = enums2str.find(type); it != enums2str.end()) {
@@ -113,7 +111,7 @@ const char* to_string<Relocation::R_MIPS>(Relocation::TYPE type) {
template<>
const char* to_string<Relocation::R_PPC>(Relocation::TYPE type) {
STRING_MAP enums2str {
- #include "LIEF/ELF/Relocations/PowerPC.def"
+#include "LIEF/ELF/Relocations/PowerPC.def"
};
if (auto it = enums2str.find(type); it != enums2str.end()) {
@@ -125,7 +123,7 @@ const char* to_string<Relocation::R_PPC>(Relocation::TYPE type) {
template<>
const char* to_string<Relocation::R_PPC64>(Relocation::TYPE type) {
STRING_MAP enums2str {
- #include "LIEF/ELF/Relocations/PowerPC64.def"
+#include "LIEF/ELF/Relocations/PowerPC64.def"
};
if (auto it = enums2str.find(type); it != enums2str.end()) {
@@ -137,7 +135,7 @@ const char* to_string<Relocation::R_PPC64>(Relocation::TYPE type) {
template<>
const char* to_string<Relocation::R_SPARC>(Relocation::TYPE type) {
STRING_MAP enums2str {
- #include "LIEF/ELF/Relocations/Sparc.def"
+#include "LIEF/ELF/Relocations/Sparc.def"
};
if (auto it = enums2str.find(type); it != enums2str.end()) {
@@ -148,11 +146,11 @@ const char* to_string<Relocation::R_SPARC>(Relocation::TYPE type) {
template<>
const char* to_string<Relocation::R_SYSZ>(Relocation::TYPE type) {
- #define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
+#define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
STRING_MAP enums2str {
- #include "LIEF/ELF/Relocations/SystemZ.def"
+#include "LIEF/ELF/Relocations/SystemZ.def"
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(type); it != enums2str.end()) {
return it->second;
@@ -162,11 +160,11 @@ const char* to_string<Relocation::R_SYSZ>(Relocation::TYPE type) {
template<>
const char* to_string<Relocation::R_RISCV>(Relocation::TYPE type) {
- #define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
+#define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
STRING_MAP enums2str {
- #include "LIEF/ELF/Relocations/RISCV.def"
+#include "LIEF/ELF/Relocations/RISCV.def"
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(type); it != enums2str.end()) {
return it->second;
@@ -176,11 +174,11 @@ const char* to_string<Relocation::R_RISCV>(Relocation::TYPE type) {
template<>
const char* to_string<Relocation::R_BPF>(Relocation::TYPE type) {
- #define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
+#define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
STRING_MAP enums2str {
- #include "LIEF/ELF/Relocations/BPF.def"
+#include "LIEF/ELF/Relocations/BPF.def"
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(type); it != enums2str.end()) {
return it->second;
@@ -190,11 +188,11 @@ const char* to_string<Relocation::R_BPF>(Relocation::TYPE type) {
template<>
const char* to_string<Relocation::R_SH4>(Relocation::TYPE type) {
- #define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
+#define ENTRY(X) std::pair(Relocation::TYPE::X, #X)
STRING_MAP enums2str {
- #include "LIEF/ELF/Relocations/SH4.def"
+#include "LIEF/ELF/Relocations/SH4.def"
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(type); it != enums2str.end()) {
return it->second;
@@ -266,4 +264,3 @@ const char* to_string(Relocation::TYPE type) {
return "UNKNOWN";
}
}
-}
diff --git a/deps/LIEF/src/ELF/Section.cpp b/deps/LIEF/src/ELF/Section.cpp
index 6f9c7870cf6..6d9514b75ff 100644
--- a/deps/LIEF/src/ELF/Section.cpp
+++ b/deps/LIEF/src/ELF/Section.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -34,54 +34,77 @@
FMT_FORMATTER(LIEF::ELF::Section::FLAGS, LIEF::ELF::to_string);
FMT_FORMATTER(LIEF::ELF::Section::TYPE, LIEF::ELF::to_string);
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
static constexpr uint64_t SHF_MASKPROC = 0xf0000000;
static constexpr uint64_t SHT_LOPROC = 0x70000000;
static constexpr uint64_t SHT_HIPROC = 0x7fffffff;
static constexpr auto ARRAY_FLAGS = {
- Section::FLAGS::NONE, Section::FLAGS::WRITE,
- Section::FLAGS::ALLOC, Section::FLAGS::EXECINSTR,
- Section::FLAGS::MERGE, Section::FLAGS::STRINGS,
- Section::FLAGS::INFO_LINK, Section::FLAGS::LINK_ORDER,
- Section::FLAGS::OS_NONCONFORMING, Section::FLAGS::GROUP,
- Section::FLAGS::TLS, Section::FLAGS::COMPRESSED,
- Section::FLAGS::GNU_RETAIN, Section::FLAGS::EXCLUDE,
- Section::FLAGS::XCORE_SHF_DP_SECTION, Section::FLAGS::XCORE_SHF_CP_SECTION,
- Section::FLAGS::X86_64_LARGE, Section::FLAGS::HEX_GPREL,
- Section::FLAGS::MIPS_NODUPES, Section::FLAGS::MIPS_NAMES,
- Section::FLAGS::MIPS_LOCAL, Section::FLAGS::MIPS_NOSTRIP,
- Section::FLAGS::MIPS_GPREL, Section::FLAGS::MIPS_MERGE,
- Section::FLAGS::MIPS_ADDR, Section::FLAGS::MIPS_STRING,
- Section::FLAGS::ARM_PURECODE,
+ Section::FLAGS::NONE,
+ Section::FLAGS::WRITE,
+ Section::FLAGS::ALLOC,
+ Section::FLAGS::EXECINSTR,
+ Section::FLAGS::MERGE,
+ Section::FLAGS::STRINGS,
+ Section::FLAGS::INFO_LINK,
+ Section::FLAGS::LINK_ORDER,
+ Section::FLAGS::OS_NONCONFORMING,
+ Section::FLAGS::GROUP,
+ Section::FLAGS::TLS,
+ Section::FLAGS::COMPRESSED,
+ Section::FLAGS::GNU_RETAIN,
+ Section::FLAGS::EXCLUDE,
+ Section::FLAGS::XCORE_SHF_DP_SECTION,
+ Section::FLAGS::XCORE_SHF_CP_SECTION,
+ Section::FLAGS::X86_64_LARGE,
+ Section::FLAGS::HEX_GPREL,
+ Section::FLAGS::MIPS_NODUPES,
+ Section::FLAGS::MIPS_NAMES,
+ Section::FLAGS::MIPS_LOCAL,
+ Section::FLAGS::MIPS_NOSTRIP,
+ Section::FLAGS::MIPS_GPREL,
+ Section::FLAGS::MIPS_MERGE,
+ Section::FLAGS::MIPS_ADDR,
+ Section::FLAGS::MIPS_STRING,
+ Section::FLAGS::ARM_PURECODE,
+ Section::FLAGS::AARCH64_PURECODE,
};
Section::TYPE Section::type_from(uint32_t value, ARCH arch) {
if (SHT_LOPROC <= value && value <= SHT_HIPROC) {
switch (arch) {
case ARCH::ARM:
- return TYPE(value + (uint64_t(TYPE::_ARM_ID_) << uint8_t(TYPE::_ID_SHIFT_)));
+ return TYPE(value +
+ (uint64_t(TYPE::_ARM_ID_) << uint8_t(TYPE::_ID_SHIFT_)));
case ARCH::HEXAGON:
- return TYPE(value + (uint64_t(TYPE::_HEX_ID_) << uint8_t(TYPE::_ID_SHIFT_)));
+ return TYPE(value +
+ (uint64_t(TYPE::_HEX_ID_) << uint8_t(TYPE::_ID_SHIFT_)));
case ARCH::X86_64:
- return TYPE(value + (uint64_t(TYPE::_X86_64_ID_) << uint8_t(TYPE::_ID_SHIFT_)));
+ return TYPE(value +
+ (uint64_t(TYPE::_X86_64_ID_) << uint8_t(TYPE::_ID_SHIFT_)));
case ARCH::MIPS:
- return TYPE(value + (uint64_t(TYPE::_MIPS_ID_) << uint8_t(TYPE::_ID_SHIFT_)));
+ return TYPE(value +
+ (uint64_t(TYPE::_MIPS_ID_) << uint8_t(TYPE::_ID_SHIFT_)));
case ARCH::RISCV:
- return TYPE(value + (uint64_t(TYPE::_RISCV_ID_) << uint8_t(TYPE::_ID_SHIFT_)));
+ return TYPE(value +
+ (uint64_t(TYPE::_RISCV_ID_) << uint8_t(TYPE::_ID_SHIFT_)));
+
+ case ARCH::AARCH64:
+ return TYPE(value +
+ (uint64_t(TYPE::_AARCH64_ID_) << uint8_t(TYPE::_ID_SHIFT_)));
default:
- {
- LIEF_ERR("Arch-specific section: 0x{:08x} is not recognized for {}",
- value, to_string(arch));
- return TYPE::SHT_NULL_;
- }
+ {
+ LIEF_ERR("Unrecognized arch-specific section {:#010x} for {}", value,
+ to_string(arch));
+ return TYPE::SHT_NULL_;
+ }
}
}
return TYPE(value);
@@ -96,11 +119,10 @@ Section::Section(const T& header, ARCH arch) :
link_{header.sh_link},
info_{header.sh_info},
address_align_{header.sh_addralign},
- entry_size_{header.sh_entsize}
-{
+ entry_size_{header.sh_entsize} {
virtual_address_ = header.sh_addr;
- offset_ = header.sh_offset;
- size_ = header.sh_size;
+ offset_ = header.sh_offset;
+ size_ = header.sh_size;
}
template Section::Section(const details::Elf32_Shdr& header, ARCH);
@@ -117,45 +139,44 @@ Section::Section(const Section& other) :
address_align_{other.address_align_},
entry_size_{other.entry_size_},
is_frame_{other.is_frame_},
- content_c_{other.content_c_}
-{}
+ content_c_{other.content_c_} {}
void Section::swap(Section& other) noexcept {
- std::swap(name_, other.name_);
+ std::swap(name_, other.name_);
std::swap(virtual_address_, other.virtual_address_);
- std::swap(offset_, other.offset_);
- std::swap(size_, other.size_);
-
- std::swap(arch_, other.arch_);
- std::swap(type_, other.type_);
- std::swap(flags_, other.flags_);
- std::swap(original_size_, other.original_size_);
- std::swap(link_, other.link_);
- std::swap(info_, other.info_);
- std::swap(address_align_, other.address_align_);
- std::swap(entry_size_, other.entry_size_);
- std::swap(segments_, other.segments_);
- std::swap(is_frame_, other.is_frame_);
- std::swap(datahandler_, other.datahandler_);
- std::swap(content_c_, other.content_c_);
+ std::swap(offset_, other.offset_);
+ std::swap(size_, other.size_);
+
+ std::swap(arch_, other.arch_);
+ std::swap(type_, other.type_);
+ std::swap(flags_, other.flags_);
+ std::swap(original_size_, other.original_size_);
+ std::swap(link_, other.link_);
+ std::swap(info_, other.info_);
+ std::swap(address_align_, other.address_align_);
+ std::swap(entry_size_, other.entry_size_);
+ std::swap(segments_, other.segments_);
+ std::swap(is_frame_, other.is_frame_);
+ std::swap(datahandler_, other.datahandler_);
+ std::swap(content_c_, other.content_c_);
}
bool Section::has(const Segment& segment) const {
- auto it_segment = std::find_if(std::begin(segments_), std::end(segments_),
- [&segment] (Segment* s) {
- return *s == segment;
- });
- return it_segment != std::end(segments_);
+ auto it_segment = std::find_if(segments_.begin(), segments_.end(),
+ [&segment](Segment* s) { return *s == segment; });
+ return it_segment != segments_.end();
}
void Section::size(uint64_t size) {
if (datahandler_ != nullptr && !is_frame()) {
- if (auto node = datahandler_->get(file_offset(), this->size(), DataHandler::Node::SECTION)) {
+ if (auto node = datahandler_->get(file_offset(), this->size(),
+ DataHandler::Node::SECTION))
+ {
node->get().size(size);
} else {
if (type() != TYPE::NOBITS) {
- LIEF_ERR("Node not found. Can't resize the section {}", name());
+ LIEF_ERR("Node not found, cannot resize section '{}'", name());
std::abort();
}
}
@@ -166,11 +187,13 @@ void Section::size(uint64_t size) {
void Section::offset(uint64_t offset) {
if (datahandler_ != nullptr && !is_frame()) {
- if (auto node = datahandler_->get(file_offset(), size(), DataHandler::Node::SECTION)) {
+ if (auto node =
+ datahandler_->get(file_offset(), size(), DataHandler::Node::SECTION))
+ {
node->get().offset(offset);
} else {
if (type() != TYPE::NOBITS) {
- LIEF_WARN("Node not found. Can't change the offset of the section {}", name());
+ LIEF_WARN("Node not found, cannot change offset of section '{}'", name());
}
}
}
@@ -193,7 +216,7 @@ span<const uint8_t> Section::content() const {
auto res = datahandler_->get(offset(), size(), DataHandler::Node::SECTION);
if (!res) {
if (type() != TYPE::NOBITS) {
- LIEF_WARN("Section '{}' does not have content", name());
+ LIEF_WARN("Section '{}' has no content", name());
}
return {};
}
@@ -210,9 +233,8 @@ span<const uint8_t> Section::content() const {
std::vector<Section::FLAGS> Section::flags_list() const {
std::vector<FLAGS> flags;
- std::copy_if(std::begin(ARRAY_FLAGS), std::end(ARRAY_FLAGS),
- std::back_inserter(flags),
- [this] (FLAGS f) { return has(f); });
+ std::copy_if(ARRAY_FLAGS.begin(), ARRAY_FLAGS.end(), std::back_inserter(flags),
+ [this](FLAGS f) { return has(f); });
return flags;
}
@@ -222,24 +244,25 @@ void Section::content(const std::vector<uint8_t>& data) {
}
if (!data.empty() && type() == TYPE::NOBITS) {
- LIEF_INFO("You inserted 0x{:x} bytes in section '{}' which has SHT_NOBITS type",
- data.size(), name());
+ LIEF_INFO("Inserted {:#x} bytes in SHT_NOBITS section '{}'", data.size(),
+ name());
}
if (datahandler_ == nullptr) {
- LIEF_DEBUG("Set 0x{:x} bytes in the cache of section '{}'", data.size(), name());
+ LIEF_DEBUG("Setting {:#x} bytes in cache of section '{}'", data.size(),
+ name());
content_c_ = data;
size(data.size());
return;
}
- LIEF_DEBUG("Set 0x{:x} bytes in the data handler@0x{:x} of section '{}'",
+ LIEF_DEBUG("Setting {:#x} bytes in data handler@{:#x} of section '{}'",
data.size(), file_offset(), name());
auto res = datahandler_->get(file_offset(), size(), DataHandler::Node::SECTION);
if (!res) {
- LIEF_ERR("Can't find the node. The section's content can't be updated");
+ LIEF_ERR("Node not found, section content cannot be updated");
return;
}
@@ -249,7 +272,7 @@ void Section::content(const std::vector<uint8_t>& data) {
datahandler_->reserve(node.offset(), data.size());
if (node.size() < data.size()) {
- LIEF_INFO("You inserted 0x{:x} bytes in the section '{}' which is 0x{:x} wide",
+ LIEF_INFO("Inserted {:#x} bytes in section '{}' which is {:#x} wide",
data.size(), name(), node.size());
}
@@ -261,9 +284,7 @@ void Section::content(const std::vector<uint8_t>& data) {
size(data.size());
- std::copy(std::begin(data), std::end(data),
- std::begin(binary_content) + node.offset());
-
+ std::copy(data.begin(), data.end(), binary_content.begin() + node.offset());
}
@@ -272,23 +293,24 @@ void Section::content(std::vector<uint8_t>&& data) {
return;
}
if (!data.empty() && type() == TYPE::NOBITS) {
- LIEF_INFO("You inserted 0x{:x} bytes in section '{}' which has SHT_NOBITS type",
- data.size(), name());
+ LIEF_INFO("Inserted {:#x} bytes in SHT_NOBITS section '{}'", data.size(),
+ name());
}
if (datahandler_ == nullptr) {
- LIEF_DEBUG("Set 0x{:x} bytes in the cache of section '{}'", data.size(), name());
+ LIEF_DEBUG("Setting {:#x} bytes in cache of section '{}'", data.size(),
+ name());
size(data.size());
content_c_ = std::move(data);
return;
}
- LIEF_DEBUG("Set 0x{:x} bytes in the data handler@0x{:x} of section '{}'",
+ LIEF_DEBUG("Setting {:#x} bytes in data handler@{:#x} of section '{}'",
data.size(), file_offset(), name());
auto res = datahandler_->get(file_offset(), size(), DataHandler::Node::SECTION);
if (!res) {
- LIEF_ERR("Can't find the node. The section's content can't be updated");
+ LIEF_ERR("Node not found, section content cannot be updated");
return;
}
DataHandler::Node& node = res.value();
@@ -297,7 +319,7 @@ void Section::content(std::vector<uint8_t>&& data) {
datahandler_->reserve(node.offset(), data.size());
if (node.size() < data.size()) {
- LIEF_INFO("You inserted 0x{:x} bytes in the section '{}' which is 0x{:x} wide",
+ LIEF_INFO("Inserted {:#x} bytes in section '{}' which is {:#x} wide",
data.size(), name(), node.size());
}
@@ -309,8 +331,7 @@ void Section::content(std::vector<uint8_t>&& data) {
return;
}
- std::move(std::begin(data), std::end(data),
- std::begin(binary_content) + node.offset());
+ std::move(data.begin(), data.end(), binary_content.begin() + node.offset());
}
bool Section::has(Section::FLAGS flag) const {
@@ -318,11 +339,11 @@ bool Section::has(Section::FLAGS flag) const {
return (flags_ & (static_cast<uint64_t>(flag) & FLAG_MASK)) != 0;
}
- uint64_t raw_flag = static_cast<uint64_t>(flag);
+ auto raw_flag = static_cast<uint64_t>(flag);
size_t id = raw_flag >> uint8_t(FLAGS::_ID_SHIFT_);
if (id > 0 && arch_ == ARCH::NONE) {
- LIEF_WARN("Missing architecture. Can't determine whether the flag is present");
+ LIEF_WARN("Missing architecture, cannot determine flag presence");
return false;
}
@@ -346,6 +367,10 @@ bool Section::has(Section::FLAGS flag) const {
return false;
}
+ if (id == uint8_t(FLAGS::_AARCH64_ID_) && arch_ != ARCH::AARCH64) {
+ return false;
+ }
+
return (flags_ & (static_cast<uint64_t>(flag) & FLAG_MASK)) != 0;
}
@@ -355,7 +380,7 @@ void Section::add(Section::FLAGS flag) {
void Section::remove(Section::FLAGS flag) {
const auto raw_flag = static_cast<uint64_t>(flag) & FLAG_MASK;
- flags(flags() & (~ raw_flag));
+ flags(flags() & (~raw_flag));
}
Section& Section::clear(uint8_t value) {
@@ -363,19 +388,19 @@ Section& Section::clear(uint8_t value) {
return *this;
}
if (datahandler_ == nullptr) {
- std::fill(std::begin(content_c_), std::end(content_c_), value);
+ std::fill(content_c_.begin(), content_c_.end(), value);
return *this;
}
std::vector<uint8_t>& binary_content = datahandler_->content();
auto res = datahandler_->get(file_offset(), size(), DataHandler::Node::SECTION);
if (!res) {
- LIEF_ERR("Can't find the node. The section's content can't be cleared");
+ LIEF_ERR("Node not found, section content cannot be cleared");
return *this;
}
DataHandler::Node& node = res.value();
- std::fill_n(std::begin(binary_content) + node.offset(), size(), value);
+ std::fill_n(binary_content.begin() + node.offset(), size(), value);
return *this;
}
@@ -398,100 +423,105 @@ std::unique_ptr<SpanStream> Section::stream() const {
std::ostream& operator<<(std::ostream& os, const Section& section) {
const auto& flags = section.flags_list();
- os << fmt::format("{} ({}) 0x{:08x}/0x{:08x} 0x{:04x} {} {}",
- section.name(), section.type(), section.virtual_address(),
- section.file_offset(), section.size(),
- section.entropy(), fmt::to_string(flags));
+ os << fmt::format("{} ({}) {:#010x}/{:#010x} {:#06x} {} {}", section.name(),
+ section.type(), section.virtual_address(),
+ section.file_offset(), section.size(), section.entropy(),
+ fmt::to_string(flags));
return os;
}
const char* to_string(Section::TYPE e) {
- #define ENTRY(X) std::pair(Section::TYPE::X, #X)
- STRING_MAP enums2str {
- ENTRY(SHT_NULL_),
- ENTRY(PROGBITS),
- ENTRY(SYMTAB),
- ENTRY(STRTAB),
- ENTRY(RELA),
- ENTRY(HASH),
- ENTRY(DYNAMIC),
- ENTRY(NOTE),
- ENTRY(NOBITS),
- ENTRY(REL),
- ENTRY(SHLIB),
- ENTRY(DYNSYM),
- ENTRY(INIT_ARRAY),
- ENTRY(FINI_ARRAY),
- ENTRY(PREINIT_ARRAY),
- ENTRY(GROUP),
- ENTRY(SYMTAB_SHNDX),
- ENTRY(RELR),
-
- ENTRY(ANDROID_REL),
- ENTRY(ANDROID_RELA),
- ENTRY(LLVM_ADDRSIG),
- ENTRY(ANDROID_RELR),
- ENTRY(GNU_ATTRIBUTES),
- ENTRY(GNU_HASH),
- ENTRY(GNU_VERDEF),
- ENTRY(GNU_VERNEED),
- ENTRY(GNU_VERSYM),
-
- ENTRY(ARM_EXIDX),
- ENTRY(ARM_PREEMPTMAP),
- ENTRY(ARM_ATTRIBUTES),
- ENTRY(ARM_DEBUGOVERLAY),
- ENTRY(ARM_OVERLAYSECTION),
- ENTRY(HEX_ORDERED),
- ENTRY(X86_64_UNWIND),
-
- ENTRY(MIPS_LIBLIST),
- ENTRY(MIPS_MSYM),
- ENTRY(MIPS_CONFLICT),
- ENTRY(MIPS_GPTAB),
- ENTRY(MIPS_UCODE),
- ENTRY(MIPS_DEBUG),
- ENTRY(MIPS_REGINFO),
- ENTRY(MIPS_PACKAGE),
- ENTRY(MIPS_PACKSYM),
- ENTRY(MIPS_RELD),
- ENTRY(MIPS_IFACE),
- ENTRY(MIPS_CONTENT),
- ENTRY(MIPS_OPTIONS),
- ENTRY(MIPS_SHDR),
- ENTRY(MIPS_FDESC),
- ENTRY(MIPS_EXTSYM),
- ENTRY(MIPS_DENSE),
- ENTRY(MIPS_PDESC),
- ENTRY(MIPS_LOCSYM),
- ENTRY(MIPS_AUXSYM),
- ENTRY(MIPS_OPTSYM),
- ENTRY(MIPS_LOCSTR),
- ENTRY(MIPS_LINE),
- ENTRY(MIPS_RFDESC),
- ENTRY(MIPS_DELTASYM),
- ENTRY(MIPS_DELTAINST),
- ENTRY(MIPS_DELTACLASS),
- ENTRY(MIPS_DWARF),
- ENTRY(MIPS_DELTADECL),
- ENTRY(MIPS_SYMBOL_LIB),
- ENTRY(MIPS_EVENTS),
- ENTRY(MIPS_TRANSLATE),
- ENTRY(MIPS_PIXIE),
- ENTRY(MIPS_XLATE),
- ENTRY(MIPS_XLATE_DEBUG),
- ENTRY(MIPS_WHIRL),
- ENTRY(MIPS_EH_REGION),
- ENTRY(MIPS_XLATE_OLD),
- ENTRY(MIPS_PDR_EXCEPTION),
- ENTRY(MIPS_ABIFLAGS),
- ENTRY(MIPS_XHASH),
-
- ENTRY(RISCV_ATTRIBUTES),
+#define ENTRY(X) std::pair(Section::TYPE::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(SHT_NULL_),
+ ENTRY(PROGBITS),
+ ENTRY(SYMTAB),
+ ENTRY(STRTAB),
+ ENTRY(RELA),
+ ENTRY(HASH),
+ ENTRY(DYNAMIC),
+ ENTRY(NOTE),
+ ENTRY(NOBITS),
+ ENTRY(REL),
+ ENTRY(SHLIB),
+ ENTRY(DYNSYM),
+ ENTRY(INIT_ARRAY),
+ ENTRY(FINI_ARRAY),
+ ENTRY(PREINIT_ARRAY),
+ ENTRY(GROUP),
+ ENTRY(SYMTAB_SHNDX),
+ ENTRY(RELR),
+
+ ENTRY(ANDROID_REL),
+ ENTRY(ANDROID_RELA),
+ ENTRY(LLVM_ADDRSIG),
+ ENTRY(ANDROID_RELR),
+ ENTRY(GNU_ATTRIBUTES),
+ ENTRY(GNU_HASH),
+ ENTRY(GNU_VERDEF),
+ ENTRY(GNU_VERNEED),
+ ENTRY(GNU_VERSYM),
+
+ ENTRY(ARM_EXIDX),
+ ENTRY(ARM_PREEMPTMAP),
+ ENTRY(ARM_ATTRIBUTES),
+ ENTRY(ARM_DEBUGOVERLAY),
+ ENTRY(ARM_OVERLAYSECTION),
+ ENTRY(HEX_ORDERED),
+ ENTRY(X86_64_UNWIND),
+
+ ENTRY(MIPS_LIBLIST),
+ ENTRY(MIPS_MSYM),
+ ENTRY(MIPS_CONFLICT),
+ ENTRY(MIPS_GPTAB),
+ ENTRY(MIPS_UCODE),
+ ENTRY(MIPS_DEBUG),
+ ENTRY(MIPS_REGINFO),
+ ENTRY(MIPS_PACKAGE),
+ ENTRY(MIPS_PACKSYM),
+ ENTRY(MIPS_RELD),
+ ENTRY(MIPS_IFACE),
+ ENTRY(MIPS_CONTENT),
+ ENTRY(MIPS_OPTIONS),
+ ENTRY(MIPS_SHDR),
+ ENTRY(MIPS_FDESC),
+ ENTRY(MIPS_EXTSYM),
+ ENTRY(MIPS_DENSE),
+ ENTRY(MIPS_PDESC),
+ ENTRY(MIPS_LOCSYM),
+ ENTRY(MIPS_AUXSYM),
+ ENTRY(MIPS_OPTSYM),
+ ENTRY(MIPS_LOCSTR),
+ ENTRY(MIPS_LINE),
+ ENTRY(MIPS_RFDESC),
+ ENTRY(MIPS_DELTASYM),
+ ENTRY(MIPS_DELTAINST),
+ ENTRY(MIPS_DELTACLASS),
+ ENTRY(MIPS_DWARF),
+ ENTRY(MIPS_DELTADECL),
+ ENTRY(MIPS_SYMBOL_LIB),
+ ENTRY(MIPS_EVENTS),
+ ENTRY(MIPS_TRANSLATE),
+ ENTRY(MIPS_PIXIE),
+ ENTRY(MIPS_XLATE),
+ ENTRY(MIPS_XLATE_DEBUG),
+ ENTRY(MIPS_WHIRL),
+ ENTRY(MIPS_EH_REGION),
+ ENTRY(MIPS_XLATE_OLD),
+ ENTRY(MIPS_PDR_EXCEPTION),
+ ENTRY(MIPS_ABIFLAGS),
+ ENTRY(MIPS_XHASH),
+
+ ENTRY(RISCV_ATTRIBUTES),
+
+ ENTRY(AARCH64_ATTRIBUTES),
+ ENTRY(AARCH64_AUTH_RELR),
+ ENTRY(AARCH64_MEMTAG_GLOBALS_STATIC),
+ ENTRY(AARCH64_MEMTAG_GLOBALS_DYNAMIC),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -500,38 +530,39 @@ const char* to_string(Section::TYPE e) {
}
const char* to_string(Section::FLAGS e) {
- #define ENTRY(X) std::pair(Section::FLAGS::X, #X)
- STRING_MAP enums2str {
- ENTRY(NONE),
- ENTRY(WRITE),
- ENTRY(ALLOC),
- ENTRY(EXECINSTR),
- ENTRY(MERGE),
- ENTRY(STRINGS),
- ENTRY(INFO_LINK),
- ENTRY(LINK_ORDER),
- ENTRY(OS_NONCONFORMING),
- ENTRY(GROUP),
- ENTRY(TLS),
- ENTRY(COMPRESSED),
- ENTRY(GNU_RETAIN),
- ENTRY(EXCLUDE),
- ENTRY(XCORE_SHF_DP_SECTION),
- ENTRY(XCORE_SHF_CP_SECTION),
- ENTRY(X86_64_LARGE),
- ENTRY(HEX_GPREL),
-
- ENTRY(MIPS_NODUPES),
- ENTRY(MIPS_NAMES),
- ENTRY(MIPS_LOCAL),
- ENTRY(MIPS_NOSTRIP),
- ENTRY(MIPS_GPREL),
- ENTRY(MIPS_MERGE),
- ENTRY(MIPS_ADDR),
- ENTRY(MIPS_STRING),
- ENTRY(ARM_PURECODE),
+#define ENTRY(X) std::pair(Section::FLAGS::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(NONE),
+ ENTRY(WRITE),
+ ENTRY(ALLOC),
+ ENTRY(EXECINSTR),
+ ENTRY(MERGE),
+ ENTRY(STRINGS),
+ ENTRY(INFO_LINK),
+ ENTRY(LINK_ORDER),
+ ENTRY(OS_NONCONFORMING),
+ ENTRY(GROUP),
+ ENTRY(TLS),
+ ENTRY(COMPRESSED),
+ ENTRY(GNU_RETAIN),
+ ENTRY(EXCLUDE),
+ ENTRY(XCORE_SHF_DP_SECTION),
+ ENTRY(XCORE_SHF_CP_SECTION),
+ ENTRY(X86_64_LARGE),
+ ENTRY(HEX_GPREL),
+
+ ENTRY(MIPS_NODUPES),
+ ENTRY(MIPS_NAMES),
+ ENTRY(MIPS_LOCAL),
+ ENTRY(MIPS_NOSTRIP),
+ ENTRY(MIPS_GPREL),
+ ENTRY(MIPS_MERGE),
+ ENTRY(MIPS_ADDR),
+ ENTRY(MIPS_STRING),
+ ENTRY(ARM_PURECODE),
+ ENTRY(AARCH64_PURECODE),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -540,4 +571,3 @@ const char* to_string(Section::FLAGS e) {
}
}
-}
diff --git a/deps/LIEF/src/ELF/Segment.cpp b/deps/LIEF/src/ELF/Segment.cpp
index cd196b2e5f4..2df0350e8f5 100644
--- a/deps/LIEF/src/ELF/Segment.cpp
+++ b/deps/LIEF/src/ELF/Segment.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,6 @@
* limitations under the License.
*/
#include <algorithm>
-#include <iterator>
#include "logging.hpp"
#include "frozen.hpp"
@@ -30,8 +29,8 @@
#include "ELF/DataHandler/Handler.hpp"
#include "ELF/Structures.hpp"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
static constexpr auto PT_LOPROC = 0x70000000;
static constexpr auto PT_HIPROC = 0x7fffffff;
@@ -43,31 +42,26 @@ Segment::TYPE Segment::type_from(uint64_t value, ARCH arch, Header::OS_ABI os) {
using OS_ABI = Header::OS_ABI;
if (PT_LOPROC <= value && value <= PT_HIPROC) {
if (arch == ARCH::NONE) {
- LIEF_WARN("Segment type 0x{:08x} requires to know the architecture", value);
+ LIEF_WARN("Segment type {:#010x} requires a known architecture", value);
return TYPE::UNKNOWN;
}
switch (arch) {
- case ARCH::ARM:
- return TYPE(value | PT_ARM);
+ case ARCH::ARM: return TYPE(value | PT_ARM);
- case ARCH::AARCH64:
- return TYPE(value | PT_AARCH64);
+ case ARCH::AARCH64: return TYPE(value | PT_AARCH64);
- case ARCH::MIPS:
- return TYPE(value | PT_MIPS);
+ case ARCH::MIPS: return TYPE(value | PT_MIPS);
- case ARCH::RISCV:
- return TYPE(value | PT_RISCV);
+ case ARCH::RISCV: return TYPE(value | PT_RISCV);
- case ARCH::IA_64:
- return TYPE(value | PT_IA_64);
+ case ARCH::IA_64: return TYPE(value | PT_IA_64);
default:
- {
- LIEF_WARN("Segment type 0x{:08x} is unknown for the architecture {}",
- value, to_string(arch));
- return TYPE::UNKNOWN;
- }
+ {
+ LIEF_WARN("Unknown segment type {:#010x} for architecture {}", value,
+ to_string(arch));
+ return TYPE::UNKNOWN;
+ }
}
}
@@ -92,8 +86,7 @@ Segment::Segment(const Segment& other) :
virtual_size_{other.virtual_size_},
alignment_{other.alignment_},
handler_size_{other.handler_size_},
- content_c_{other.content_c_}
-{}
+ content_c_{other.content_c_} {}
template<class T>
Segment::Segment(const T& header, ARCH arch, Header::OS_ABI os) :
@@ -106,26 +99,25 @@ Segment::Segment(const T& header, ARCH arch, Header::OS_ABI os) :
size_{header.p_filesz},
virtual_size_{header.p_memsz},
alignment_{header.p_align},
- handler_size_{header.p_filesz}
-{}
+ handler_size_{header.p_filesz} {}
template Segment::Segment(const details::Elf32_Phdr& header, ARCH, Header::OS_ABI);
template Segment::Segment(const details::Elf64_Phdr& header, ARCH, Header::OS_ABI);
void Segment::swap(Segment& other) {
- std::swap(type_, other.type_);
- std::swap(arch_, other.arch_);
- std::swap(flags_, other.flags_);
- std::swap(file_offset_, other.file_offset_);
- std::swap(virtual_address_, other.virtual_address_);
+ std::swap(type_, other.type_);
+ std::swap(arch_, other.arch_);
+ std::swap(flags_, other.flags_);
+ std::swap(file_offset_, other.file_offset_);
+ std::swap(virtual_address_, other.virtual_address_);
std::swap(physical_address_, other.physical_address_);
- std::swap(size_, other.size_);
- std::swap(virtual_size_, other.virtual_size_);
- std::swap(alignment_, other.alignment_);
- std::swap(handler_size_, other.handler_size_);
- std::swap(sections_, other.sections_);
- std::swap(datahandler_, other.datahandler_);
- std::swap(content_c_, other.content_c_);
+ std::swap(size_, other.size_);
+ std::swap(virtual_size_, other.virtual_size_);
+ std::swap(alignment_, other.alignment_);
+ std::swap(handler_size_, other.handler_size_);
+ std::swap(sections_, other.sections_);
+ std::swap(datahandler_, other.datahandler_);
+ std::swap(content_c_, other.content_c_);
}
Segment& Segment::operator=(Segment other) {
@@ -135,10 +127,8 @@ Segment& Segment::operator=(Segment other) {
result<Segment> Segment::from_raw(const uint8_t* ptr, size_t size) {
- if (size != sizeof(details::Elf32_Phdr) &&
- size != sizeof(details::Elf64_Phdr))
- {
- LIEF_ERR("The size of the provided data does not match a valid header size");
+ if (size != sizeof(details::Elf32_Phdr) && size != sizeof(details::Elf64_Phdr)) {
+ LIEF_ERR("Provided data size does not match a valid header size");
return make_error_code(lief_errors::corrupted);
}
@@ -155,14 +145,15 @@ result<Segment> Segment::from_raw(const uint8_t* ptr, size_t size) {
span<const uint8_t> Segment::content() const {
if (datahandler_ == nullptr) {
- LIEF_DEBUG("Get content of segment {}@0x{:x} from cache",
- to_string(type()), virtual_address());
+ LIEF_DEBUG("Getting content of segment {}@{:#x} from cache", to_string(type()),
+ virtual_address());
return content_c_;
}
- auto res = datahandler_->get(file_offset(), handler_size(), DataHandler::Node::SEGMENT);
+ auto res =
+ datahandler_->get(file_offset(), handler_size(), DataHandler::Node::SEGMENT);
if (!res) {
- LIEF_ERR("Can't find the node. The segment's content can't be accessed");
+ LIEF_ERR("Node not found, segment content inaccessible");
return {};
}
DataHandler::Node& node = res.value();
@@ -171,8 +162,8 @@ span<const uint8_t> Segment::content() const {
const std::vector<uint8_t>& binary_content = datahandler_->content();
const size_t size = binary_content.size();
if (node.offset() >= size) {
- LIEF_ERR("Can't access content of segment {}:0x{:x}",
- to_string(type()), virtual_address());
+ LIEF_ERR("Failed to access segment content {}:{:#x}", to_string(type()),
+ virtual_address());
return {};
}
@@ -187,8 +178,8 @@ span<const uint8_t> Segment::content() const {
if ((node.offset() + handler_size()) <= size) {
return {ptr, static_cast<size_t>(handler_size())};
}
- LIEF_ERR("Can't access content of segment {}:0x{:x}",
- to_string(type()), virtual_address());
+ LIEF_ERR("Failed to access segment content {}:{:#x}", to_string(type()),
+ virtual_address());
return {};
}
@@ -199,9 +190,10 @@ size_t Segment::get_content_size() const {
if (datahandler_ == nullptr) {
return content_c_.size();
}
- auto res = datahandler_->get(file_offset(), handler_size(), DataHandler::Node::SEGMENT);
+ auto res =
+ datahandler_->get(file_offset(), handler_size(), DataHandler::Node::SEGMENT);
if (!res) {
- LIEF_ERR("Can't find the node");
+ LIEF_ERR("Node not found");
return 0;
}
DataHandler::Node& node = res.value();
@@ -212,13 +204,14 @@ template<typename T>
T Segment::get_content_value(size_t offset) const {
T ret;
if (datahandler_ == nullptr) {
- LIEF_DEBUG("Get content of segment {}@0x{:x} from cache",
- to_string(type()), virtual_address());
+ LIEF_DEBUG("Getting content of segment {}@{:#x} from cache", to_string(type()),
+ virtual_address());
memcpy(&ret, content_c_.data() + offset, sizeof(T));
} else {
- auto res = datahandler_->get(file_offset(), handler_size(), DataHandler::Node::SEGMENT);
+ auto res = datahandler_->get(file_offset(), handler_size(),
+ DataHandler::Node::SEGMENT);
if (!res) {
- LIEF_ERR("Can't find the node associated with this segment");
+ LIEF_ERR("Node not found for this segment");
memset(&ret, 0, sizeof(T));
return ret;
}
@@ -229,25 +222,30 @@ T Segment::get_content_value(size_t offset) const {
return ret;
}
-template unsigned short Segment::get_content_value<unsigned short>(size_t offset) const;
-template unsigned int Segment::get_content_value<unsigned int>(size_t offset) const;
-template unsigned long Segment::get_content_value<unsigned long>(size_t offset) const;
-template unsigned long long Segment::get_content_value<unsigned long long>(size_t offset) const;
+template unsigned short
+ Segment::get_content_value<unsigned short>(size_t offset) const;
+template unsigned int
+ Segment::get_content_value<unsigned int>(size_t offset) const;
+template unsigned long
+ Segment::get_content_value<unsigned long>(size_t offset) const;
+template unsigned long long
+ Segment::get_content_value<unsigned long long>(size_t offset) const;
template<typename T>
void Segment::set_content_value(size_t offset, T value) {
if (datahandler_ == nullptr) {
- LIEF_DEBUG("Set content of segment {}@0x{:x}:0x{:x} in cache (0x{:x} bytes)",
- to_string(type()), virtual_address(), offset, sizeof(T));
+ LIEF_DEBUG("Setting content of segment {}@{:#x}:{:#x} in cache ({:#x} bytes)",
+ to_string(type()), virtual_address(), offset, sizeof(T));
if (offset + sizeof(T) > content_c_.size()) {
content_c_.resize(offset + sizeof(T));
physical_size(offset + sizeof(T));
}
memcpy(content_c_.data() + offset, &value, sizeof(T));
} else {
- auto res = datahandler_->get(file_offset(), handler_size(), DataHandler::Node::SEGMENT);
+ auto res = datahandler_->get(file_offset(), handler_size(),
+ DataHandler::Node::SEGMENT);
if (!res) {
- LIEF_ERR("Can't find the node associated with this segment. The content can't be updated");
+ LIEF_ERR("Node not found for this segment, content cannot be updated");
return;
}
DataHandler::Node& node = res.value();
@@ -260,25 +258,28 @@ void Segment::set_content_value(size_t offset, T value) {
memcpy(binary_content.data() + node.offset() + offset, &value, sizeof(T));
}
}
-template void Segment::set_content_value<unsigned short>(size_t offset, unsigned short value);
-template void Segment::set_content_value<unsigned int>(size_t offset, unsigned int value);
-template void Segment::set_content_value<unsigned long>(size_t offset, unsigned long value);
-template void Segment::set_content_value<unsigned long long>(size_t offset, unsigned long long value);
+template void Segment::set_content_value<unsigned short>(size_t offset,
+ unsigned short value);
+template void Segment::set_content_value<unsigned int>(size_t offset,
+ unsigned int value);
+template void Segment::set_content_value<unsigned long>(size_t offset,
+ unsigned long value);
+template void
+ Segment::set_content_value<unsigned long long>(size_t offset,
+ unsigned long long value);
bool Segment::has(const Section& section) const {
- auto it_section = std::find_if(std::begin(sections_), std::end(sections_),
- [§ion] (const Section* s) {
- return *s == section;
- });
- return it_section != std::end(sections_);
+ auto it_section =
+ std::find_if(sections_.begin(), sections_.end(),
+ [§ion](const Section* s) { return *s == section; });
+ return it_section != sections_.end();
}
bool Segment::has(const std::string& name) const {
- auto it_section = std::find_if(std::begin(sections_), std::end(sections_),
- [&name] (const Section* s) {
- return s->name() == name;
- });
- return it_section != std::end(sections_);
+ auto it_section =
+ std::find_if(sections_.begin(), sections_.end(),
+ [&name](const Section* s) { return s->name() == name; });
+ return it_section != sections_.end();
}
void Segment::add(Segment::FLAGS flag) {
@@ -291,11 +292,12 @@ void Segment::remove(Segment::FLAGS flag) {
void Segment::file_offset(uint64_t file_offset) {
if (datahandler_ != nullptr) {
- auto res = datahandler_->get(this->file_offset(), handler_size(), DataHandler::Node::SEGMENT);
+ auto res = datahandler_->get(this->file_offset(), handler_size(),
+ DataHandler::Node::SEGMENT);
if (res) {
res->get().offset(file_offset);
} else {
- LIEF_ERR("Can't find the node. The file offset can't be updated");
+ LIEF_ERR("Node not found, file offset cannot be updated");
return;
}
}
@@ -304,12 +306,13 @@ void Segment::file_offset(uint64_t file_offset) {
void Segment::physical_size(uint64_t physical_size) {
if (datahandler_ != nullptr) {
- auto node = datahandler_->get(file_offset(), handler_size(), DataHandler::Node::SEGMENT);
+ auto node = datahandler_->get(file_offset(), handler_size(),
+ DataHandler::Node::SEGMENT);
if (node) {
node->get().size(physical_size);
handler_size_ = physical_size;
} else {
- LIEF_ERR("Can't find the node. The physical size can't be updated");
+ LIEF_ERR("Node not found, physical size cannot be updated");
}
}
size_ = physical_size;
@@ -317,19 +320,22 @@ void Segment::physical_size(uint64_t physical_size) {
void Segment::content(std::vector<uint8_t> content) {
if (datahandler_ == nullptr) {
- LIEF_DEBUG("Set content of segment {}@0x{:x} in cache (0x{:x} bytes)",
+ LIEF_DEBUG("Setting content of segment {}@{:#x} in cache ({:#x} bytes)",
to_string(type()), virtual_address(), content.size());
physical_size(content.size());
content_c_ = std::move(content);
return;
}
- LIEF_DEBUG("Set content of segment {}@0x{:x} in data handler @0x{:x} (0x{:x} bytes)",
- to_string(type()), virtual_address(), file_offset(), content.size());
+ LIEF_DEBUG(
+ "Setting content of segment {}@{:#x} in data handler @{:#x} ({:#x} bytes)",
+ to_string(type()), virtual_address(), file_offset(), content.size()
+ );
- auto res = datahandler_->get(file_offset(), handler_size(), DataHandler::Node::SEGMENT);
+ auto res =
+ datahandler_->get(file_offset(), handler_size(), DataHandler::Node::SEGMENT);
if (!res) {
- LIEF_ERR("Can't find the node for updating content");
+ LIEF_ERR("Node not found for content update");
return;
}
DataHandler::Node& node = res.value();
@@ -338,8 +344,8 @@ void Segment::content(std::vector<uint8_t> content) {
datahandler_->reserve(node.offset(), content.size());
if (node.size() < content.size()) {
- LIEF_INFO("You inserted 0x{:x} bytes in the segment {}@0x{:x} which is 0x{:x} wide",
- content.size(), to_string(type()), virtual_size(), node.size());
+ LIEF_INFO("Inserted {:#x} bytes in segment {}@{:#x} which is {:#x} wide",
+ content.size(), to_string(type()), virtual_size(), node.size());
}
auto max_offset = (int64_t)node.offset() + (int64_t)content.size();
@@ -350,8 +356,8 @@ void Segment::content(std::vector<uint8_t> content) {
physical_size(node.size());
- std::move(std::begin(content), std::end(content),
- std::begin(binary_content) + node.offset());
+ std::move(content.begin(), content.end(),
+ binary_content.begin() + node.offset());
}
void Segment::accept(Visitor& visitor) const {
@@ -391,61 +397,60 @@ std::ostream& operator<<(std::ostream& os, const Segment& segment) {
std::string segment_ty = to_string(segment.type());
if (segment_ty == "UNKNOWN") {
- segment_ty = fmt::format("UNKNOWN[0x{:08x}]", (uint32_t)segment.type());
+ segment_ty = fmt::format("UNKNOWN[{:#010x}]", (uint32_t)segment.type());
}
- os << fmt::format("{} 0x{:08x}/0x{:06x} 0x{:06x} 0x{:04x}/0x{:04x} {} {}",
- segment_ty, segment.virtual_address(),
- segment.file_offset(), segment.physical_address(),
- segment.physical_size(), segment.virtual_size(),
- segment.alignment(), flags);
+ os << fmt::format("{} {:#010x}/{:#08x} {:#08x} {:#06x}/{:#06x} {} {}",
+ segment_ty, segment.virtual_address(), segment.file_offset(),
+ segment.physical_address(), segment.physical_size(),
+ segment.virtual_size(), segment.alignment(), flags);
return os;
}
const char* to_string(Segment::TYPE e) {
- #define ENTRY(X) std::pair(Segment::TYPE::X, #X)
- STRING_MAP enums2str {
- ENTRY(PT_NULL_),
- ENTRY(LOAD),
- ENTRY(DYNAMIC),
- ENTRY(INTERP),
- ENTRY(NOTE),
- ENTRY(SHLIB),
- ENTRY(PHDR),
- ENTRY(TLS),
- ENTRY(GNU_EH_FRAME),
- ENTRY(GNU_STACK),
- ENTRY(GNU_PROPERTY),
- ENTRY(GNU_RELRO),
- ENTRY(PAX_FLAGS),
- ENTRY(ARM_ARCHEXT),
- ENTRY(ARM_EXIDX),
- ENTRY(AARCH64_MEMTAG_MTE),
- ENTRY(MIPS_REGINFO),
- ENTRY(MIPS_RTPROC),
- ENTRY(MIPS_OPTIONS),
- ENTRY(MIPS_ABIFLAGS),
- ENTRY(RISCV_ATTRIBUTES),
- ENTRY(IA_64_EXT),
- ENTRY(IA_64_UNWIND),
- ENTRY(HP_TLS),
- ENTRY(HP_CORE_NONE),
- ENTRY(HP_CORE_VERSION),
- ENTRY(HP_CORE_KERNEL),
- ENTRY(HP_CORE_COMM),
- ENTRY(HP_CORE_PROC),
- ENTRY(HP_CORE_LOADABLE),
- ENTRY(HP_CORE_STACK),
- ENTRY(HP_CORE_SHM),
- ENTRY(HP_CORE_MMF),
- ENTRY(HP_PARALLEL),
- ENTRY(HP_FASTBIND),
- ENTRY(HP_OPT_ANNOT),
- ENTRY(HP_HSL_ANNOT),
- ENTRY(HP_STACK),
- ENTRY(HP_CORE_UTSNAME),
+#define ENTRY(X) std::pair(Segment::TYPE::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(PT_NULL_),
+ ENTRY(LOAD),
+ ENTRY(DYNAMIC),
+ ENTRY(INTERP),
+ ENTRY(NOTE),
+ ENTRY(SHLIB),
+ ENTRY(PHDR),
+ ENTRY(TLS),
+ ENTRY(GNU_EH_FRAME),
+ ENTRY(GNU_STACK),
+ ENTRY(GNU_PROPERTY),
+ ENTRY(GNU_RELRO),
+ ENTRY(PAX_FLAGS),
+ ENTRY(ARM_ARCHEXT),
+ ENTRY(ARM_EXIDX),
+ ENTRY(AARCH64_MEMTAG_MTE),
+ ENTRY(MIPS_REGINFO),
+ ENTRY(MIPS_RTPROC),
+ ENTRY(MIPS_OPTIONS),
+ ENTRY(MIPS_ABIFLAGS),
+ ENTRY(RISCV_ATTRIBUTES),
+ ENTRY(IA_64_EXT),
+ ENTRY(IA_64_UNWIND),
+ ENTRY(HP_TLS),
+ ENTRY(HP_CORE_NONE),
+ ENTRY(HP_CORE_VERSION),
+ ENTRY(HP_CORE_KERNEL),
+ ENTRY(HP_CORE_COMM),
+ ENTRY(HP_CORE_PROC),
+ ENTRY(HP_CORE_LOADABLE),
+ ENTRY(HP_CORE_STACK),
+ ENTRY(HP_CORE_SHM),
+ ENTRY(HP_CORE_MMF),
+ ENTRY(HP_PARALLEL),
+ ENTRY(HP_FASTBIND),
+ ENTRY(HP_OPT_ANNOT),
+ ENTRY(HP_HSL_ANNOT),
+ ENTRY(HP_STACK),
+ ENTRY(HP_CORE_UTSNAME),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -463,4 +468,3 @@ const char* to_string(Segment::FLAGS e) {
return "UNKNOWN";
}
}
-}
diff --git a/deps/LIEF/src/ELF/SizingInfo.hpp b/deps/LIEF/src/ELF/SizingInfo.hpp
index 00db942e6c7..6d1c0153d0f 100644
--- a/deps/LIEF/src/ELF/SizingInfo.hpp
+++ b/deps/LIEF/src/ELF/SizingInfo.hpp
@@ -1,6 +1,6 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,12 +16,10 @@
*/
#ifndef LIEF_ELF_SIZING_INFO_H
#define LIEF_ELF_SIZING_INFO_H
-#include "LIEF/visibility.h"
#include <cstdint>
-namespace LIEF {
-namespace ELF {
+namespace LIEF::ELF {
struct sizing_info_t {
uint64_t dynsym = 0;
uint64_t dynstr = 0;
@@ -42,5 +40,5 @@ struct sizing_info_t {
uint64_t preinit_array = 0;
};
}
-}
+
#endif
diff --git a/deps/LIEF/src/ELF/Structures.hpp b/deps/LIEF/src/ELF/Structures.hpp
index 4b24824602d..c75b4de4d34 100644
--- a/deps/LIEF/src/ELF/Structures.hpp
+++ b/deps/LIEF/src/ELF/Structures.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,131 +14,120 @@
*/
#ifndef LIEF_ELF_STRUCTURES_H
#define LIEF_ELF_STRUCTURES_H
+#include <cstdint>
-#include <cstring>
-
-#include "LIEF/types.hpp"
-#include "LIEF/ELF/enums.hpp"
-
-namespace LIEF {
-namespace ELF {
-
-namespace details {
+namespace LIEF::ELF::details {
#include "structures.inc"
-struct Elf64_Prpsinfo
-{
- char pr_state;
- char pr_sname;
- char pr_zomb;
- char pr_nice;
+struct Elf64_Prpsinfo {
+ char pr_state;
+ char pr_sname;
+ char pr_zomb;
+ char pr_nice;
uint32_t pr_pad;
uint64_t pr_flag;
uint32_t pr_uid;
uint32_t pr_gid;
- int32_t pr_pid;
- int32_t pr_ppid;
- int32_t pr_pgrp;
- int32_t pr_sid;
- char pr_fname[16];
- char pr_psargs[80];
+ int32_t pr_pid;
+ int32_t pr_ppid;
+ int32_t pr_pgrp;
+ int32_t pr_sid;
+ char pr_fname[16];
+ char pr_psargs[80];
};
-struct Elf32_Prpsinfo
-{
- char pr_state;
- char pr_sname;
- char pr_zomb;
- char pr_nice;
+struct Elf32_Prpsinfo {
+ char pr_state;
+ char pr_sname;
+ char pr_zomb;
+ char pr_nice;
uint32_t pr_flag;
uint16_t pr_uid;
uint16_t pr_gid;
- int32_t pr_pid;
- int32_t pr_ppid;
- int32_t pr_pgrp;
- int32_t pr_sid;
- char pr_fname[16];
- char pr_psargs[80];
+ int32_t pr_pid;
+ int32_t pr_ppid;
+ int32_t pr_pgrp;
+ int32_t pr_sid;
+ char pr_fname[16];
+ char pr_psargs[80];
};
class ELF32 {
public:
static constexpr auto r_info_shift = 8;
- typedef Elf32_Addr Elf_Addr;
- typedef Elf32_Off Elf_Off;
- typedef Elf32_Half Elf_Half;
- typedef Elf32_Word Elf_Word;
- typedef Elf32_Sword Elf_Sword;
+ using Elf_Addr = Elf32_Addr;
+ using Elf_Off = Elf32_Off;
+ using Elf_Half = Elf32_Half;
+ using Elf_Word = Elf32_Word;
+ using Elf_Sword = Elf32_Sword;
// Equivalent
- typedef Elf32_Addr Elf_Xword;
- typedef Elf32_Sword Elf_Sxword;
-
- typedef uint32_t uint;
-
- typedef Elf32_Phdr Elf_Phdr;
- typedef Elf32_Ehdr Elf_Ehdr;
- typedef Elf32_Shdr Elf_Shdr;
- typedef Elf32_Sym Elf_Sym;
- typedef Elf32_Rel Elf_Rel;
- typedef Elf32_Rela Elf_Rela;
- typedef Elf32_Dyn Elf_Dyn;
- typedef Elf32_Verneed Elf_Verneed;
- typedef Elf32_Vernaux Elf_Vernaux;
- typedef Elf32_Auxv Elf_Auxv;
- typedef Elf32_Verdef Elf_Verdef;
- typedef Elf32_Verdaux Elf_Verdaux;
-
- typedef Elf32_Prpsinfo Elf_Prpsinfo;
- typedef Elf32_FileEntry Elf_FileEntry;
- typedef Elf32_Prstatus Elf_Prstatus;
-
- typedef Elf32_timeval Elf_timeval;
+ using Elf_Xword = Elf32_Addr;
+ using Elf_Sxword = Elf32_Sword;
+
+ using uint = uint32_t;
+
+ using Elf_Phdr = Elf32_Phdr;
+ using Elf_Ehdr = Elf32_Ehdr;
+ using Elf_Shdr = Elf32_Shdr;
+ using Elf_Sym = Elf32_Sym;
+ using Elf_Rel = Elf32_Rel;
+ using Elf_Rela = Elf32_Rela;
+ using Elf_Dyn = Elf32_Dyn;
+ using Elf_Verneed = Elf32_Verneed;
+ using Elf_Vernaux = Elf32_Vernaux;
+ using Elf_Auxv = Elf32_Auxv;
+ using Elf_Verdef = Elf32_Verdef;
+ using Elf_Verdaux = Elf32_Verdaux;
+
+ using Elf_Prpsinfo = Elf32_Prpsinfo;
+ using Elf_FileEntry = Elf32_FileEntry;
+ using Elf_Prstatus = Elf32_Prstatus;
+
+ using Elf_timeval = Elf32_timeval;
};
class ELF64 {
public:
static constexpr auto r_info_shift = 32;
- typedef Elf64_Addr Elf_Addr;
- typedef Elf64_Off Elf_Off;
- typedef Elf64_Half Elf_Half;
- typedef Elf64_Word Elf_Word;
- typedef Elf64_Sword Elf_Sword;
-
- typedef Elf64_Xword Elf_Xword;
- typedef Elf64_Sxword Elf_Sxword;
-
- typedef uint64_t uint;
-
- typedef Elf64_Phdr Elf_Phdr;
- typedef Elf64_Ehdr Elf_Ehdr;
- typedef Elf64_Shdr Elf_Shdr;
- typedef Elf64_Sym Elf_Sym;
- typedef Elf64_Rel Elf_Rel;
- typedef Elf64_Rela Elf_Rela;
- typedef Elf64_Dyn Elf_Dyn;
- typedef Elf64_Verneed Elf_Verneed;
- typedef Elf64_Vernaux Elf_Vernaux;
- typedef Elf64_Auxv Elf_Auxv;
- typedef Elf64_Verdef Elf_Verdef;
- typedef Elf64_Verdaux Elf_Verdaux;
-
- typedef Elf64_Prpsinfo Elf_Prpsinfo;
- typedef Elf64_FileEntry Elf_FileEntry;
- typedef Elf64_Prstatus Elf_Prstatus;
-
- typedef Elf64_timeval Elf_timeval;
+ using Elf_Addr = Elf64_Addr;
+ using Elf_Off = Elf64_Off;
+ using Elf_Half = Elf64_Half;
+ using Elf_Word = Elf64_Word;
+ using Elf_Sword = Elf64_Sword;
+
+ using Elf_Xword = Elf64_Xword;
+ using Elf_Sxword = Elf64_Sxword;
+
+ using uint = uint64_t;
+
+ using Elf_Phdr = Elf64_Phdr;
+ using Elf_Ehdr = Elf64_Ehdr;
+ using Elf_Shdr = Elf64_Shdr;
+ using Elf_Sym = Elf64_Sym;
+ using Elf_Rel = Elf64_Rel;
+ using Elf_Rela = Elf64_Rela;
+ using Elf_Dyn = Elf64_Dyn;
+ using Elf_Verneed = Elf64_Verneed;
+ using Elf_Vernaux = Elf64_Vernaux;
+ using Elf_Auxv = Elf64_Auxv;
+ using Elf_Verdef = Elf64_Verdef;
+ using Elf_Verdaux = Elf64_Verdaux;
+
+ using Elf_Prpsinfo = Elf64_Prpsinfo;
+ using Elf_FileEntry = Elf64_FileEntry;
+ using Elf_Prstatus = Elf64_Prstatus;
+
+ using Elf_timeval = Elf64_timeval;
};
-class ELF32_x32 : public ELF32 {
-};
+class ELF32_x32 : public ELF32 {};
-class ELF32_arm64 : public ELF32 {
-};
+class ELF32_arm64 : public ELF32 {};
+
+
+} // namespace LIEF::ELF::details
-} /* end namespace details */
-} /* end namespace ELF */
-} /* end namespace LIEF */
#endif
diff --git a/deps/LIEF/src/ELF/Symbol.cpp b/deps/LIEF/src/ELF/Symbol.cpp
index fd924c10e5d..fcece05a1e6 100644
--- a/deps/LIEF/src/ELF/Symbol.cpp
+++ b/deps/LIEF/src/ELF/Symbol.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,32 +29,31 @@
#include <spdlog/fmt/fmt.h>
-namespace LIEF {
-namespace ELF {
+namespace LIEF::ELF {
Symbol& Symbol::operator=(Symbol other) {
swap(other);
return *this;
}
-Symbol::Symbol(const Symbol& other) : LIEF::Symbol{other},
+Symbol::Symbol(const Symbol& other) :
+ LIEF::Symbol{other},
type_{other.type_},
binding_{other.binding_},
other_{other.other_},
shndx_{other.shndx_},
- arch_{other.arch_}
-{}
+ arch_{other.arch_} {}
void Symbol::swap(Symbol& other) {
LIEF::Symbol::swap(other);
- std::swap(type_, other.type_);
- std::swap(binding_, other.binding_);
- std::swap(other_, other.other_);
- std::swap(shndx_, other.shndx_);
- std::swap(section_, other.section_);
+ std::swap(type_, other.type_);
+ std::swap(binding_, other.binding_);
+ std::swap(other_, other.other_);
+ std::swap(shndx_, other.shndx_);
+ std::swap(section_, other.section_);
std::swap(symbol_version_, other.symbol_version_);
- std::swap(arch_, other.arch_);
+ std::swap(arch_, other.arch_);
}
template<class T>
@@ -63,10 +62,9 @@ Symbol::Symbol(const T& header, ARCH arch) :
binding_{binding_from(header.st_info >> 4, arch)},
other_{header.st_other},
shndx_{header.st_shndx},
- arch_{arch}
-{
+ arch_{arch} {
value_ = header.st_value;
- size_ = header.st_size;
+ size_ = header.st_size;
}
template Symbol::Symbol(const details::Elf32_Sym& header, ARCH);
@@ -74,14 +72,13 @@ template Symbol::Symbol(const details::Elf64_Sym& header, ARCH);
uint8_t Symbol::information() const {
- return static_cast<uint8_t>(
- (static_cast<uint8_t>(binding_) << 4) | (static_cast<uint8_t>(type_) & 0x0f)
- );
+ return static_cast<uint8_t>((static_cast<uint8_t>(binding_) << 4) |
+ (static_cast<uint8_t>(type_) & 0x0f));
}
void Symbol::information(uint8_t info) {
binding_ = binding_from(info >> 4, arch_);
- type_ = type_from(info & 0x0f, arch_);
+ type_ = type_from(info & 0x0f, arch_);
}
std::string Symbol::demangled_name() const {
@@ -89,16 +86,24 @@ std::string Symbol::demangled_name() const {
return LIEF::demangle(name()).value_or("");
} else {
#if defined(__unix__)
- int status;
- const std::string& name = this->name().c_str();
- char* demangled_name = abi::__cxa_demangle(name.c_str(), nullptr, nullptr, &status);
+ int status = 0;
+ const std::string& name = this->name();
+ if (name.find("_Z") != 0) {
+ return name;
+ }
+ char* demangled_name =
+ abi::__cxa_demangle(name.c_str(), nullptr, nullptr, &status);
- if (status == 0) {
+ if (status == 0 && demangled_name != nullptr) {
std::string realname = demangled_name;
- free(demangled_name);
+ free(demangled_name); // NOLINT(cppcoreguidelines-no-malloc)
return realname;
}
+ if (demangled_name != nullptr) {
+ free(demangled_name); // NOLINT(cppcoreguidelines-no-malloc)
+ }
+
return name;
#else
return "";
@@ -112,14 +117,14 @@ bool Symbol::is_exported() const {
// An export must have an address
is_exported = is_exported && (value() != 0 || (value() == 0 && size() > 0));
- // An export must be bind to GLOBAL or WEAK
- is_exported = is_exported && (binding() == BINDING::GLOBAL ||
- binding() == BINDING::WEAK);
+ // An export must be bound to GLOBAL or WEAK
+ is_exported =
+ is_exported && (binding() == BINDING::GLOBAL || binding() == BINDING::WEAK);
- // An export must have one of theses types:
- is_exported = is_exported && (type() == TYPE::FUNC ||
- type() == TYPE::GNU_IFUNC ||
- type() == TYPE::OBJECT);
+ // An export must have one of these types:
+ is_exported =
+ is_exported && (type() == TYPE::FUNC || type() == TYPE::GNU_IFUNC ||
+ type() == TYPE::OBJECT);
return is_exported;
}
@@ -137,28 +142,29 @@ bool Symbol::is_imported() const {
// An import must not be defined in a section
bool is_imported = shndx() == SECTION_INDEX::UNDEF;
- const bool is_mips = arch_ == ARCH::MIPS || arch_ == ARCH::MIPS_X ||
- arch_ == ARCH::MIPS_RS3_LE;
+ const bool is_mips =
+ arch_ == ARCH::MIPS || arch_ == ARCH::MIPS_X || arch_ == ARCH::MIPS_RS3_LE;
const bool is_ppc = arch_ == ARCH::PPC || arch_ == ARCH::PPC64;
const bool is_riscv = arch_ == ARCH::RISCV;
- // An import must not have an address (except for some architectures like Mips/PPC)
+ // An import must not have an address (except for some architectures like
+ // Mips/PPC)
if (!is_mips && !is_ppc && !is_riscv) {
is_imported = is_imported && value() == 0;
}
- // its name must not be empty
+ // Its name must not be empty
is_imported = is_imported && !name().empty();
- // It must have a GLOBAL or WEAK bind
- is_imported = is_imported && (binding() == BINDING::GLOBAL ||
- binding() == BINDING::WEAK);
+ // It must have a GLOBAL or WEAK binding
+ is_imported =
+ is_imported && (binding() == BINDING::GLOBAL || binding() == BINDING::WEAK);
// It must be a FUNC or an OBJECT
- is_imported = is_imported && (type() == TYPE::FUNC ||
- type() == TYPE::GNU_IFUNC ||
- type() == TYPE::OBJECT);
+ is_imported =
+ is_imported && (type() == TYPE::FUNC || type() == TYPE::GNU_IFUNC ||
+ type() == TYPE::OBJECT);
return is_imported;
}
@@ -180,9 +186,8 @@ std::ostream& operator<<(std::ostream& os, const Symbol& entry) {
name = entry.name();
}
- os << fmt::format("{} ({}/{}): 0x{:06x} (0x{:02x})",
- name, to_string(entry.type()), to_string(entry.binding()),
- entry.value(), entry.size());
+ os << fmt::format("{} ({}/{}): {:#08x} ({:#04x})", name, to_string(entry.type()),
+ to_string(entry.binding()), entry.value(), entry.size());
if (const SymbolVersion* version = entry.symbol_version()) {
os << *version;
@@ -191,14 +196,14 @@ std::ostream& operator<<(std::ostream& os, const Symbol& entry) {
}
const char* to_string(Symbol::BINDING e) {
- #define ENTRY(X) std::pair(Symbol::BINDING::X, #X)
- STRING_MAP enums2str {
- ENTRY(LOCAL),
- ENTRY(GLOBAL),
- ENTRY(WEAK),
- ENTRY(GNU_UNIQUE),
+#define ENTRY(X) std::pair(Symbol::BINDING::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(LOCAL),
+ ENTRY(GLOBAL),
+ ENTRY(WEAK),
+ ENTRY(GNU_UNIQUE),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -206,18 +211,12 @@ const char* to_string(Symbol::BINDING e) {
return "UNKNOWN";
}
const char* to_string(Symbol::TYPE e) {
- #define ENTRY(X) std::pair(Symbol::TYPE::X, #X)
- STRING_MAP enums2str {
- ENTRY(NOTYPE),
- ENTRY(OBJECT),
- ENTRY(FUNC),
- ENTRY(SECTION),
- ENTRY(FILE),
- ENTRY(COMMON),
- ENTRY(TLS),
- ENTRY(GNU_IFUNC),
+#define ENTRY(X) std::pair(Symbol::TYPE::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(NOTYPE), ENTRY(OBJECT), ENTRY(FUNC), ENTRY(SECTION),
+ ENTRY(FILE), ENTRY(COMMON), ENTRY(TLS), ENTRY(GNU_IFUNC),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -225,14 +224,14 @@ const char* to_string(Symbol::TYPE e) {
return "UNKNOWN";
}
const char* to_string(Symbol::VISIBILITY e) {
- #define ENTRY(X) std::pair(Symbol::VISIBILITY::X, #X)
- STRING_MAP enums2str {
- ENTRY(DEFAULT),
- ENTRY(INTERNAL),
- ENTRY(HIDDEN),
- ENTRY(PROTECTED),
+#define ENTRY(X) std::pair(Symbol::VISIBILITY::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(DEFAULT),
+ ENTRY(INTERNAL),
+ ENTRY(HIDDEN),
+ ENTRY(PROTECTED),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -241,4 +240,3 @@ const char* to_string(Symbol::VISIBILITY e) {
}
}
-}
diff --git a/deps/LIEF/src/ELF/SymbolVersion.cpp b/deps/LIEF/src/ELF/SymbolVersion.cpp
index e43a49ff180..06dc77e2f23 100644
--- a/deps/LIEF/src/ELF/SymbolVersion.cpp
+++ b/deps/LIEF/src/ELF/SymbolVersion.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,18 +13,20 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+#include <spdlog/fmt/fmt.h>
+
#include "LIEF/ELF/hash.hpp"
#include "LIEF/ELF/SymbolVersion.hpp"
#include "LIEF/ELF/SymbolVersionAux.hpp"
#include "LIEF/ELF/SymbolVersionAuxRequirement.hpp"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
void SymbolVersion::symbol_version_auxiliary(SymbolVersionAuxRequirement& svauxr) {
symbol_aux_ = &svauxr;
- value_ = svauxr.other();
+ value_ = svauxr.other();
}
void SymbolVersion::accept(Visitor& visitor) const {
@@ -33,20 +35,16 @@ void SymbolVersion::accept(Visitor& visitor) const {
std::ostream& operator<<(std::ostream& os, const ELF::SymbolVersion& symv) {
if (symv.has_auxiliary_version()) {
- os << symv.symbol_version_auxiliary()->name() << "(" << symv.value() << ")";
+ os << fmt::format("{}({})", symv.symbol_version_auxiliary()->name(),
+ symv.value());
+ } else if (symv.value() == 0) {
+ os << "* Local *";
+ } else if (symv.value() == 1) {
+ os << "* Global *";
} else {
- std::string type;
- if (symv.value() == 0) {
- type = "* Local *";
- } else if (symv.value() == 1){
- type = "* Global *";
- } else {
- type = "* ERROR (" + std::to_string(symv.value()) + ") *";
- }
- os << type;
+ os << fmt::format("* ERROR ({}) *", symv.value());
}
return os;
}
}
-}
diff --git a/deps/LIEF/src/ELF/SymbolVersionAux.cpp b/deps/LIEF/src/ELF/SymbolVersionAux.cpp
index 204de95dde7..03318ec8c98 100644
--- a/deps/LIEF/src/ELF/SymbolVersionAux.cpp
+++ b/deps/LIEF/src/ELF/SymbolVersionAux.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,18 +13,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include <utility>
#include "LIEF/ELF/hash.hpp"
#include "LIEF/ELF/SymbolVersionAux.hpp"
-namespace LIEF {
-namespace ELF {
+namespace LIEF::ELF {
void SymbolVersionAux::accept(Visitor& visitor) const {
visitor.visit(*this);
}
}
-}
diff --git a/deps/LIEF/src/ELF/SymbolVersionAuxRequirement.cpp b/deps/LIEF/src/ELF/SymbolVersionAuxRequirement.cpp
index b40558846bc..12b730a7206 100644
--- a/deps/LIEF/src/ELF/SymbolVersionAuxRequirement.cpp
+++ b/deps/LIEF/src/ELF/SymbolVersionAuxRequirement.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,21 +18,23 @@
#include "LIEF/ELF/SymbolVersionAuxRequirement.hpp"
#include "ELF/Structures.hpp"
-namespace LIEF {
-namespace ELF {
-SymbolVersionAuxRequirement::SymbolVersionAuxRequirement(const details::Elf64_Vernaux& header) :
+namespace LIEF::ELF {
+
+SymbolVersionAuxRequirement::SymbolVersionAuxRequirement(
+ const details::Elf64_Vernaux& header
+) :
hash_{header.vna_hash},
flags_{header.vna_flags},
- other_{header.vna_other}
-{}
+ other_{header.vna_other} {}
-SymbolVersionAuxRequirement::SymbolVersionAuxRequirement(const details::Elf32_Vernaux& header) :
+SymbolVersionAuxRequirement::SymbolVersionAuxRequirement(
+ const details::Elf32_Vernaux& header
+) :
hash_{header.vna_hash},
flags_{header.vna_flags},
- other_{header.vna_other}
-{}
+ other_{header.vna_other} {}
void SymbolVersionAuxRequirement::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -40,4 +42,3 @@ void SymbolVersionAuxRequirement::accept(Visitor& visitor) const {
}
-}
diff --git a/deps/LIEF/src/ELF/SymbolVersionDefinition.cpp b/deps/LIEF/src/ELF/SymbolVersionDefinition.cpp
index e339b115afa..79d3f50a57e 100644
--- a/deps/LIEF/src/ELF/SymbolVersionDefinition.cpp
+++ b/deps/LIEF/src/ELF/SymbolVersionDefinition.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,58 +14,63 @@
* limitations under the License.
*/
#include <ostream>
-#include <iomanip>
#include <algorithm>
+#include <spdlog/fmt/fmt.h>
+
#include "LIEF/ELF/hash.hpp"
#include "LIEF/ELF/SymbolVersionDefinition.hpp"
#include "LIEF/ELF/SymbolVersionAux.hpp"
#include "ELF/Structures.hpp"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
SymbolVersionDefinition::~SymbolVersionDefinition() = default;
-SymbolVersionDefinition::SymbolVersionDefinition(const details::Elf64_Verdef& header) :
+SymbolVersionDefinition::SymbolVersionDefinition(
+ const details::Elf64_Verdef& header
+) :
version_{header.vd_version},
flags_{header.vd_flags},
ndx_{header.vd_ndx},
- hash_{header.vd_hash}
-{}
+ hash_{header.vd_hash} {}
-SymbolVersionDefinition::SymbolVersionDefinition(const details::Elf32_Verdef& header) :
+SymbolVersionDefinition::SymbolVersionDefinition(
+ const details::Elf32_Verdef& header
+) :
version_{header.vd_version},
flags_{header.vd_flags},
ndx_{header.vd_ndx},
- hash_{header.vd_hash}
-{}
+ hash_{header.vd_hash} {}
-SymbolVersionDefinition::SymbolVersionDefinition(const SymbolVersionDefinition& other) :
+SymbolVersionDefinition::SymbolVersionDefinition(
+ const SymbolVersionDefinition& other
+) :
Object{other},
version_{other.version_},
flags_{other.flags_},
ndx_{other.ndx_},
- hash_{other.hash_}
-{
+ hash_{other.hash_} {
symbol_version_aux_.reserve(other.symbol_version_aux_.size());
for (const std::unique_ptr<SymbolVersionAux>& aux : other.symbol_version_aux_) {
symbol_version_aux_.emplace_back(new SymbolVersionAux{*aux});
}
}
-SymbolVersionDefinition& SymbolVersionDefinition::operator=(SymbolVersionDefinition other) {
+SymbolVersionDefinition&
+ SymbolVersionDefinition::operator=(SymbolVersionDefinition other) {
swap(other);
return *this;
}
void SymbolVersionDefinition::swap(SymbolVersionDefinition& other) {
- std::swap(version_, other.version_);
- std::swap(flags_, other.flags_);
- std::swap(ndx_, other.ndx_);
- std::swap(hash_, other.hash_);
+ std::swap(version_, other.version_);
+ std::swap(flags_, other.flags_);
+ std::swap(ndx_, other.ndx_);
+ std::swap(hash_, other.hash_);
std::swap(symbol_version_aux_, other.symbol_version_aux_);
}
@@ -74,13 +79,8 @@ void SymbolVersionDefinition::accept(Visitor& visitor) const {
}
std::ostream& operator<<(std::ostream& os, const SymbolVersionDefinition& sym) {
- os << std::hex << std::left;
- os << std::setw(10) << sym.version();
- os << std::setw(10) << sym.flags();
- os << std::setw(10) << sym.ndx();
- os << std::setw(10) << sym.hash();
-
+ os << fmt::format("{:<#10x}{:<#10x}{:<#10x}{:<#10x}", sym.version(), sym.flags(),
+ sym.ndx(), sym.hash());
return os;
}
}
-}
diff --git a/deps/LIEF/src/ELF/SymbolVersionRequirement.cpp b/deps/LIEF/src/ELF/SymbolVersionRequirement.cpp
index 8ce46604e42..774aaaa7dbb 100644
--- a/deps/LIEF/src/ELF/SymbolVersionRequirement.cpp
+++ b/deps/LIEF/src/ELF/SymbolVersionRequirement.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,49 +20,64 @@
#include "ELF/Structures.hpp"
-namespace LIEF {
-namespace ELF {
-SymbolVersionRequirement::SymbolVersionRequirement(const details::Elf64_Verneed& header) :
- version_{header.vn_version}
-{}
+namespace LIEF::ELF {
-SymbolVersionRequirement::SymbolVersionRequirement(const details::Elf32_Verneed& header) :
- version_{header.vn_version}
-{}
+SymbolVersionRequirement::SymbolVersionRequirement(
+ const details::Elf64_Verneed& header
+) :
+ version_{header.vn_version} {}
-SymbolVersionRequirement::SymbolVersionRequirement(const SymbolVersionRequirement& other) :
+SymbolVersionRequirement::SymbolVersionRequirement(
+ const details::Elf32_Verneed& header
+) :
+ version_{header.vn_version} {}
+
+SymbolVersionRequirement::SymbolVersionRequirement(
+ const SymbolVersionRequirement& other
+) :
Object{other},
version_{other.version_},
- name_{other.name_}
-{
+ name_{other.name_} {
aux_requirements_.reserve(other.aux_requirements_.size());
- for (const std::unique_ptr<SymbolVersionAuxRequirement>& aux : other.aux_requirements_) {
- aux_requirements_.push_back(std::make_unique<SymbolVersionAuxRequirement>(*aux));
+ for (const std::unique_ptr<SymbolVersionAuxRequirement>& aux :
+ other.aux_requirements_)
+ {
+ aux_requirements_.push_back(
+ std::make_unique<SymbolVersionAuxRequirement>(*aux)
+ );
}
}
-SymbolVersionRequirement& SymbolVersionRequirement::operator=(SymbolVersionRequirement other) {
+SymbolVersionRequirement&
+ SymbolVersionRequirement::operator=(SymbolVersionRequirement other) {
swap(other);
return *this;
}
void SymbolVersionRequirement::swap(SymbolVersionRequirement& other) {
std::swap(aux_requirements_, other.aux_requirements_);
- std::swap(version_, other.version_);
- std::swap(name_, other.name_);
+ std::swap(version_, other.version_);
+ std::swap(name_, other.name_);
}
-SymbolVersionAuxRequirement& SymbolVersionRequirement::add_aux_requirement(const SymbolVersionAuxRequirement& aux_requirement) {
- aux_requirements_.push_back(std::make_unique<SymbolVersionAuxRequirement>(aux_requirement));
+SymbolVersionAuxRequirement& SymbolVersionRequirement::add_aux_requirement(
+ const SymbolVersionAuxRequirement& aux_requirement
+) {
+ aux_requirements_.push_back(
+ std::make_unique<SymbolVersionAuxRequirement>(aux_requirement)
+ );
return *aux_requirements_.back();
}
-bool SymbolVersionRequirement::remove_aux_requirement(SymbolVersionAuxRequirement& aux) {
- auto it = std::find_if(aux_requirements_.begin(), aux_requirements_.end(),
- [&aux] (const std::unique_ptr<SymbolVersionAuxRequirement>& element) {
+bool SymbolVersionRequirement::remove_aux_requirement(
+ SymbolVersionAuxRequirement& aux
+) {
+ auto it = std::find_if(
+ aux_requirements_.begin(), aux_requirements_.end(),
+ [&aux](const std::unique_ptr<SymbolVersionAuxRequirement>& element) {
return &aux == element.get();
}
);
@@ -76,10 +91,10 @@ bool SymbolVersionRequirement::remove_aux_requirement(SymbolVersionAuxRequiremen
}
const SymbolVersionAuxRequirement*
- SymbolVersionRequirement::find_aux(const std::string& name) const
-{
- auto it = std::find_if(aux_requirements_.begin(), aux_requirements_.end(),
- [&name] (const std::unique_ptr<SymbolVersionAuxRequirement>& aux) {
+ SymbolVersionRequirement::find_aux(const std::string& name) const {
+ auto it = std::find_if(
+ aux_requirements_.begin(), aux_requirements_.end(),
+ [&name](const std::unique_ptr<SymbolVersionAuxRequirement>& aux) {
return aux->name() == name;
}
);
@@ -96,4 +111,3 @@ void SymbolVersionRequirement::accept(Visitor& visitor) const {
}
}
-}
diff --git a/deps/LIEF/src/ELF/SysvHash.cpp b/deps/LIEF/src/ELF/SysvHash.cpp
index 9adf9eece5b..e662886f934 100644
--- a/deps/LIEF/src/ELF/SysvHash.cpp
+++ b/deps/LIEF/src/ELF/SysvHash.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,63 +13,28 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include <iomanip>
-#include <numeric>
-#include <sstream>
+#include <spdlog/fmt/fmt.h>
+#include <spdlog/fmt/ranges.h>
#include "LIEF/ELF/hash.hpp"
#include "LIEF/ELF/SysvHash.hpp"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
void SysvHash::accept(Visitor& visitor) const {
visitor.visit(*this);
}
std::ostream& operator<<(std::ostream& os, const SysvHash& sysvhash) {
- os << std::hex << std::left;
-
- const std::vector<uint32_t>& buckets = sysvhash.buckets();
- const std::vector<uint32_t>& chains = sysvhash.chains();
-
- std::string buckets_str = std::accumulate(
- std::begin(buckets),
- std::end(buckets), std::string{},
- [] (const std::string& a, uint32_t b) {
- std::ostringstream dec_bucket;
- dec_bucket << std::dec;
- dec_bucket << b;
-
- return a.empty() ? "[" + dec_bucket.str() : a + ", " + dec_bucket.str();
- });
- buckets_str += "]";
-
-
- std::string chains_str = std::accumulate(
- std::begin(chains),
- std::end(chains), std::string{},
- [] (const std::string& a, uint32_t b) {
- std::ostringstream dec_bucket;
- dec_bucket << std::dec;
- dec_bucket << b;
-
- return a.empty() ? "[" + dec_bucket.str() : a + ", " + dec_bucket.str();
- });
- buckets_str += "]";
-
-
-
- os << std::setw(33) << std::setfill(' ') << "Number of buckets:" << sysvhash.nbucket() << '\n';
- os << std::setw(33) << std::setfill(' ') << "Buckets:" << buckets_str << '\n';
-
- os << std::setw(33) << std::setfill(' ') << "Number of chains:" << sysvhash.nchain() << '\n';
- os << std::setw(33) << std::setfill(' ') << "Chains:" << chains_str << '\n';
-
+ os << fmt::format("Number of buckets: {}\n", sysvhash.nbucket())
+ << fmt::format("Buckets: [{}]\n",
+ fmt::join(sysvhash.buckets(), ", "))
+ << fmt::format("Number of chains: {}\n", sysvhash.nchain())
+ << fmt::format("Chains: [{}]\n",
+ fmt::join(sysvhash.chains(), ", "));
return os;
-
}
-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/elf_utils.cpp b/deps/LIEF/src/ELF/elf_utils.cpp
new file mode 100644
index 00000000000..b733f8fcf12
--- /dev/null
+++ b/deps/LIEF/src/ELF/elf_utils.cpp
@@ -0,0 +1,59 @@
+#include "ELF/elf_utils.hpp"
+#include "ELF/Structures.hpp"
+
+#include "logging.hpp"
+
+#include "LIEF/BinaryStream/BinaryStream.hpp"
+#include "LIEF/ELF/Header.hpp"
+#include "LIEF/ELF/Segment.hpp"
+
+namespace LIEF::ELF {
+
+optional<elf_file_info_t> get_info(BinaryStream& strm) {
+ elf_file_info_t info{};
+ auto header = strm.read<ELF::details::Elf64_Ehdr>();
+ if (!header) {
+ LIEF_ERR("Failed to read ELF Header");
+ return nullopt();
+ }
+
+ const auto cls = static_cast<Header::CLASS>(header->e_ident[Header::ELI_CLASS]);
+ const auto data =
+ static_cast<Header::ELF_DATA>(header->e_ident[Header::ELI_DATA]);
+ if (cls != Header::CLASS::ELF64 || data != Header::ELF_DATA::LSB) {
+ LIEF_WARN("{} only supports 64-bit little-endian ELF images", __FUNCTION__);
+ return nullopt();
+ }
+
+ strm.setpos(header->e_phoff);
+ info.phnum = header->e_phnum;
+ info.phdr_off = header->e_phoff;
+ for (size_t i = 0; i < header->e_phnum; ++i) {
+ auto phdr = strm.read<ELF::details::Elf64_Phdr>();
+ if (!phdr) {
+ LIEF_WARN("Failed to read Elf_Phdr[{}]", i);
+ break;
+ }
+ static_assert((int)Segment::TYPE::LOAD == 1);
+ static_assert((int)Segment::TYPE::PHDR == 6);
+ if (phdr->p_type == (int)Segment::TYPE::PHDR) {
+ info.phdr_off = phdr->p_vaddr;
+ } else if (phdr->p_type == (int)Segment::TYPE::LOAD) {
+ info.imagebase = std::min<uintptr_t>(info.imagebase, phdr->p_vaddr);
+ info.end_address =
+ std::max<uintptr_t>(info.end_address, phdr->p_vaddr + phdr->p_memsz);
+ }
+ }
+
+ if (info.imagebase == static_cast<uintptr_t>(-1) ||
+ info.end_address < info.imagebase)
+ {
+ LIEF_WARN("No loadable segment found while probing the ELF image");
+ return nullopt();
+ }
+
+ return info;
+}
+
+
+}
diff --git a/deps/LIEF/src/ELF/elf_utils.hpp b/deps/LIEF/src/ELF/elf_utils.hpp
new file mode 100644
index 00000000000..05aed3c210b
--- /dev/null
+++ b/deps/LIEF/src/ELF/elf_utils.hpp
@@ -0,0 +1,44 @@
+/* Copyright 2017 - 2026 R. Thomas
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+#include "LIEF/optional.hpp"
+
+#include <spdlog/fmt/fmt.h>
+#include <cassert>
+#include <cstdint>
+
+namespace LIEF {
+class BinaryStream;
+}
+
+namespace LIEF::ELF {
+struct elf_file_info_t {
+ uintptr_t imagebase = -1llu;
+ uint64_t end_address = 0;
+ uintptr_t phdr_off = 0;
+ uintptr_t phnum = 0;
+ uintptr_t vsize() const {
+ return end_address >= imagebase ? end_address - imagebase : 0;
+ }
+
+ std::string to_string() const {
+ return fmt::format("imagebase={:#010x}, end_address={:#010x}, "
+ "phdr_off={:#06x} virtual_size={:#06x}",
+ imagebase, end_address, phdr_off, vsize());
+ }
+};
+
+optional<elf_file_info_t> get_info(BinaryStream& strm);
+}
diff --git a/deps/LIEF/src/ELF/endianness_support.cpp b/deps/LIEF/src/ELF/endianness_support.cpp
index c9c44813754..fbfd74ac850 100644
--- a/deps/LIEF/src/ELF/endianness_support.cpp
+++ b/deps/LIEF/src/ELF/endianness_support.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@
namespace LIEF {
-template <typename Elf_Ehdr>
+template<typename Elf_Ehdr>
void swap_endian_ehdr(Elf_Ehdr* hdr) {
swap_endian(&hdr->e_type);
swap_endian(&hdr->e_machine);
@@ -41,12 +41,12 @@ void swap_endian<ELF::details::Elf32_Ehdr>(ELF::details::Elf32_Ehdr* hdr) {
}
template<>
-void swap_endian<ELF::details::Elf64_Ehdr>(ELF::details::Elf64_Ehdr *hdr) {
+void swap_endian<ELF::details::Elf64_Ehdr>(ELF::details::Elf64_Ehdr* hdr) {
swap_endian_ehdr(hdr);
}
-template <typename Elf_Shdr>
-void swap_endian_shdr(Elf_Shdr *shdr) {
+template<typename Elf_Shdr>
+void swap_endian_shdr(Elf_Shdr* shdr) {
swap_endian(&shdr->sh_name);
swap_endian(&shdr->sh_type);
swap_endian(&shdr->sh_flags);
@@ -60,17 +60,17 @@ void swap_endian_shdr(Elf_Shdr *shdr) {
}
template<>
-void swap_endian<ELF::details::Elf32_Shdr>(ELF::details::Elf32_Shdr *shdr) {
+void swap_endian<ELF::details::Elf32_Shdr>(ELF::details::Elf32_Shdr* shdr) {
swap_endian_shdr(shdr);
}
template<>
-void swap_endian<ELF::details::Elf64_Shdr>(ELF::details::Elf64_Shdr *shdr) {
+void swap_endian<ELF::details::Elf64_Shdr>(ELF::details::Elf64_Shdr* shdr) {
swap_endian_shdr(shdr);
}
-template <typename Elf_Phdr>
-void swap_endian_phdr(Elf_Phdr *phdr) {
+template<typename Elf_Phdr>
+void swap_endian_phdr(Elf_Phdr* phdr) {
swap_endian(&phdr->p_type);
swap_endian(&phdr->p_offset);
swap_endian(&phdr->p_vaddr);
@@ -82,18 +82,18 @@ void swap_endian_phdr(Elf_Phdr *phdr) {
}
template<>
-void swap_endian<ELF::details::Elf32_Phdr>(ELF::details::Elf32_Phdr *phdr) {
+void swap_endian<ELF::details::Elf32_Phdr>(ELF::details::Elf32_Phdr* phdr) {
swap_endian_phdr(phdr);
}
template<>
-void swap_endian<ELF::details::Elf64_Phdr>(ELF::details::Elf64_Phdr *phdr) {
+void swap_endian<ELF::details::Elf64_Phdr>(ELF::details::Elf64_Phdr* phdr) {
swap_endian_phdr(phdr);
}
-template <typename Elf_Sym>
-void swap_endian_sym(Elf_Sym *sym) {
+template<typename Elf_Sym>
+void swap_endian_sym(Elf_Sym* sym) {
swap_endian(&sym->st_name);
swap_endian(&sym->st_value);
swap_endian(&sym->st_size);
@@ -103,70 +103,70 @@ void swap_endian_sym(Elf_Sym *sym) {
}
template<>
-void swap_endian<ELF::details::Elf32_Sym>(ELF::details::Elf32_Sym *sym) {
+void swap_endian<ELF::details::Elf32_Sym>(ELF::details::Elf32_Sym* sym) {
swap_endian_sym(sym);
}
template<>
-void swap_endian<ELF::details::Elf64_Sym>(ELF::details::Elf64_Sym *sym) {
+void swap_endian<ELF::details::Elf64_Sym>(ELF::details::Elf64_Sym* sym) {
swap_endian_sym(sym);
}
-template <typename REL_T>
-void swap_endian_rel(REL_T *rel) {
+template<typename REL_T>
+void swap_endian_rel(REL_T* rel) {
swap_endian(&rel->r_offset);
swap_endian(&rel->r_info);
}
-template <typename RELA_T>
-void swap_endian_rela(RELA_T *rel) {
+template<typename RELA_T>
+void swap_endian_rela(RELA_T* rel) {
swap_endian(&rel->r_offset);
swap_endian(&rel->r_info);
swap_endian(&rel->r_addend);
}
template<>
-void swap_endian<ELF::details::Elf32_Rel>(ELF::details::Elf32_Rel *rel) {
+void swap_endian<ELF::details::Elf32_Rel>(ELF::details::Elf32_Rel* rel) {
swap_endian_rel(rel);
}
template<>
-void swap_endian<ELF::details::Elf64_Rel>(ELF::details::Elf64_Rel *rel) {
+void swap_endian<ELF::details::Elf64_Rel>(ELF::details::Elf64_Rel* rel) {
swap_endian_rel(rel);
}
template<>
-void swap_endian<ELF::details::Elf32_Rela>(ELF::details::Elf32_Rela *rel) {
+void swap_endian<ELF::details::Elf32_Rela>(ELF::details::Elf32_Rela* rel) {
swap_endian_rela(rel);
}
template<>
-void swap_endian<ELF::details::Elf64_Rela>(ELF::details::Elf64_Rela *rel) {
+void swap_endian<ELF::details::Elf64_Rela>(ELF::details::Elf64_Rela* rel) {
swap_endian_rela(rel);
}
/** ELF Dynamic Symbol */
-template <typename Elf_Dyn>
-void swap_endian_dyn(Elf_Dyn *dyn) {
+template<typename Elf_Dyn>
+void swap_endian_dyn(Elf_Dyn* dyn) {
swap_endian(&dyn->d_tag);
swap_endian(&dyn->d_un.d_val);
}
template<>
-void swap_endian<ELF::details::Elf32_Dyn>(ELF::details::Elf32_Dyn *dyn) {
+void swap_endian<ELF::details::Elf32_Dyn>(ELF::details::Elf32_Dyn* dyn) {
swap_endian_dyn(dyn);
}
template<>
-void swap_endian<ELF::details::Elf64_Dyn>(ELF::details::Elf64_Dyn *dyn) {
+void swap_endian<ELF::details::Elf64_Dyn>(ELF::details::Elf64_Dyn* dyn) {
swap_endian_dyn(dyn);
}
/** ELF Verneed */
-template <typename Elf_Verneed>
-void swap_endian_verneed(Elf_Verneed *ver) {
+template<typename Elf_Verneed>
+void swap_endian_verneed(Elf_Verneed* ver) {
swap_endian(&ver->vn_version);
swap_endian(&ver->vn_cnt);
swap_endian(&ver->vn_file);
@@ -175,19 +175,19 @@ void swap_endian_verneed(Elf_Verneed *ver) {
}
template<>
-void swap_endian<ELF::details::Elf32_Verneed>(ELF::details::Elf32_Verneed *ver) {
+void swap_endian<ELF::details::Elf32_Verneed>(ELF::details::Elf32_Verneed* ver) {
swap_endian_verneed(ver);
}
template<>
-void swap_endian<ELF::details::Elf64_Verneed>(ELF::details::Elf64_Verneed *ver) {
+void swap_endian<ELF::details::Elf64_Verneed>(ELF::details::Elf64_Verneed* ver) {
swap_endian_verneed(ver);
}
/** ELF Vernaux */
-template <typename Elf_Vernaux>
-void swap_endian_vernaux(Elf_Vernaux *ver) {
+template<typename Elf_Vernaux>
+void swap_endian_vernaux(Elf_Vernaux* ver) {
swap_endian(&ver->vna_hash);
swap_endian(&ver->vna_flags);
swap_endian(&ver->vna_other);
@@ -196,18 +196,18 @@ void swap_endian_vernaux(Elf_Vernaux *ver) {
}
template<>
-void swap_endian<ELF::details::Elf32_Vernaux>(ELF::details::Elf32_Vernaux *ver) {
+void swap_endian<ELF::details::Elf32_Vernaux>(ELF::details::Elf32_Vernaux* ver) {
swap_endian_vernaux(ver);
}
template<>
-void swap_endian<ELF::details::Elf64_Vernaux>(ELF::details::Elf64_Vernaux *ver) {
+void swap_endian<ELF::details::Elf64_Vernaux>(ELF::details::Elf64_Vernaux* ver) {
swap_endian_vernaux(ver);
}
/** ELF Symbol Version Definition */
-template <typename Elf_Verdef>
-void swap_endian_verdef(Elf_Verdef *ver) {
+template<typename Elf_Verdef>
+void swap_endian_verdef(Elf_Verdef* ver) {
swap_endian(&ver->vd_version);
swap_endian(&ver->vd_flags);
swap_endian(&ver->vd_ndx);
@@ -218,61 +218,65 @@ void swap_endian_verdef(Elf_Verdef *ver) {
}
template<>
-void swap_endian<ELF::details::Elf32_Verdef>(ELF::details::Elf32_Verdef *ver) {
+void swap_endian<ELF::details::Elf32_Verdef>(ELF::details::Elf32_Verdef* ver) {
swap_endian_verdef(ver);
}
template<>
-void swap_endian<ELF::details::Elf64_Verdef>(ELF::details::Elf64_Verdef *ver) {
+void swap_endian<ELF::details::Elf64_Verdef>(ELF::details::Elf64_Verdef* ver) {
swap_endian_verdef(ver);
}
-template <typename Elf_Verdaux>
-void swap_endian_verdaux(Elf_Verdaux *ver) {
+template<typename Elf_Verdaux>
+void swap_endian_verdaux(Elf_Verdaux* ver) {
swap_endian(&ver->vda_name);
swap_endian(&ver->vda_next);
}
template<>
-void swap_endian<ELF::details::Elf32_Verdaux>(ELF::details::Elf32_Verdaux *ver) {
+void swap_endian<ELF::details::Elf32_Verdaux>(ELF::details::Elf32_Verdaux* ver) {
swap_endian_verdaux(ver);
}
template<>
-void swap_endian<ELF::details::Elf64_Verdaux>(ELF::details::Elf64_Verdaux *ver) {
+void swap_endian<ELF::details::Elf64_Verdaux>(ELF::details::Elf64_Verdaux* ver) {
swap_endian_verdaux(ver);
}
-template <typename Elf_Auxv>
-void swap_endian_auxv(Elf_Auxv *auxv) {
+template<typename Elf_Auxv>
+void swap_endian_auxv(Elf_Auxv* auxv) {
swap_endian(&auxv->a_type);
swap_endian(&auxv->a_un.a_val);
}
template<>
-void swap_endian<ELF::details::Elf32_Auxv>(ELF::details::Elf32_Auxv *auxv) {
+void swap_endian<ELF::details::Elf32_Auxv>(ELF::details::Elf32_Auxv* auxv) {
swap_endian_auxv(auxv);
}
template<>
-void swap_endian<ELF::details::Elf64_Auxv>(ELF::details::Elf64_Auxv *auxv) {
+void swap_endian<ELF::details::Elf64_Auxv>(ELF::details::Elf64_Auxv* auxv) {
swap_endian_auxv(auxv);
}
-template <typename Elf_FileEntry>
-void swap_endian_fileentry(Elf_FileEntry *entry) {
+template<typename Elf_FileEntry>
+void swap_endian_fileentry(Elf_FileEntry* entry) {
swap_endian(&entry->start);
swap_endian(&entry->end);
swap_endian(&entry->file_ofs);
}
template<>
-void swap_endian<ELF::details::Elf32_FileEntry>(ELF::details::Elf32_FileEntry *entry) {
+void swap_endian<ELF::details::Elf32_FileEntry>(
+ ELF::details::Elf32_FileEntry* entry
+) {
swap_endian_fileentry(entry);
}
template<>
-void swap_endian<ELF::details::Elf64_FileEntry>(ELF::details::Elf64_FileEntry *entry) {
+void swap_endian<ELF::details::Elf64_FileEntry>(
+ ELF::details::Elf64_FileEntry* entry
+) {
swap_endian_fileentry(entry);
}
diff --git a/deps/LIEF/src/ELF/hash.cpp b/deps/LIEF/src/ELF/hash.cpp
index 8deb9b312fa..ac910c2a14e 100644
--- a/deps/LIEF/src/ELF/hash.cpp
+++ b/deps/LIEF/src/ELF/hash.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -46,8 +46,8 @@
#include "LIEF/ELF/SymbolVersionRequirement.hpp"
#include "LIEF/ELF/SysvHash.hpp"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
Hash::~Hash() = default;
@@ -59,13 +59,13 @@ size_t Hash::hash(const Object& obj) {
void Hash::visit(const Binary& binary) {
process(binary.header());
- process(std::begin(binary.sections()), std::end(binary.sections()));
- process(std::begin(binary.segments()), std::end(binary.segments()));
- process(std::begin(binary.dynamic_entries()), std::end(binary.dynamic_entries()));
- process(std::begin(binary.dynamic_symbols()), std::end(binary.dynamic_symbols()));
- process(std::begin(binary.symtab_symbols()), std::end(binary.symtab_symbols()));
- process(std::begin(binary.relocations()), std::end(binary.relocations()));
- process(std::begin(binary.notes()), std::end(binary.notes()));
+ process(binary.sections().begin(), binary.sections().end());
+ process(binary.segments().begin(), binary.segments().end());
+ process(binary.dynamic_entries().begin(), binary.dynamic_entries().end());
+ process(binary.dynamic_symbols().begin(), binary.dynamic_symbols().end());
+ process(binary.symtab_symbols().begin(), binary.symtab_symbols().end());
+ process(binary.relocations().begin(), binary.relocations().end());
+ process(binary.notes().begin(), binary.notes().end());
if (binary.use_gnu_hash()) {
process(*binary.gnu_hash());
@@ -78,7 +78,6 @@ void Hash::visit(const Binary& binary) {
if (binary.has_interpreter()) {
process(binary.interpreter());
}
-
}
@@ -197,7 +196,6 @@ void Hash::visit(const Relocation& relocation) {
if (sym != nullptr) {
process(*sym);
}
-
}
void Hash::visit(const SymbolVersion& sv) {
@@ -210,7 +208,7 @@ void Hash::visit(const SymbolVersion& sv) {
void Hash::visit(const SymbolVersionRequirement& svr) {
process(svr.version());
process(svr.name());
- process(std::begin(svr.auxiliary_symbols()), std::end(svr.auxiliary_symbols()));
+ process(svr.auxiliary_symbols().begin(), svr.auxiliary_symbols().end());
}
void Hash::visit(const SymbolVersionDefinition& svd) {
@@ -292,7 +290,4 @@ void Hash::visit(const SysvHash& sysvhash) {
}
-
-} // namespace ELF
-} // namespace LIEF
-
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/json.cpp b/deps/LIEF/src/ELF/json.cpp
index c89a21af476..4c64008c2da 100644
--- a/deps/LIEF/src/ELF/json.cpp
+++ b/deps/LIEF/src/ELF/json.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,10 +15,47 @@
*/
#include "ELF/json_internal.hpp"
-#include "LIEF/ELF.hpp"
-namespace LIEF {
-namespace ELF {
+
+#include "LIEF/ELF/hash.hpp"
+#include "LIEF/ELF/utils.hpp"
+#include "LIEF/ELF/enums.hpp"
+
+#include "LIEF/ELF/Parser.hpp"
+#include "LIEF/ELF/Header.hpp"
+#include "LIEF/ELF/Section.hpp"
+#include "LIEF/ELF/Binary.hpp"
+#include "LIEF/ELF/Segment.hpp"
+#include "LIEF/ELF/Builder.hpp"
+#include "LIEF/ELF/EnumToString.hpp"
+#include "LIEF/ELF/Relocation.hpp"
+#include "LIEF/ELF/DynamicEntryArray.hpp"
+#include "LIEF/ELF/DynamicEntryFlags.hpp"
+#include "LIEF/ELF/DynamicEntry.hpp"
+#include "LIEF/ELF/DynamicEntryLibrary.hpp"
+#include "LIEF/ELF/DynamicEntryRpath.hpp"
+#include "LIEF/ELF/DynamicEntryRunPath.hpp"
+#include "LIEF/ELF/DynamicSharedObject.hpp"
+#include "LIEF/ELF/GnuHash.hpp"
+#include "LIEF/ELF/Note.hpp"
+#include "LIEF/ELF/NoteDetails/QNXStack.hpp"
+#include "LIEF/ELF/NoteDetails/AndroidIdent.hpp"
+#include "LIEF/ELF/NoteDetails/NoteAbi.hpp"
+#include "LIEF/ELF/NoteDetails/NoteGnuProperty.hpp"
+#include "LIEF/ELF/NoteDetails/core/CorePrPsInfo.hpp"
+#include "LIEF/ELF/NoteDetails/core/CorePrStatus.hpp"
+#include "LIEF/ELF/NoteDetails/core/CoreAuxv.hpp"
+#include "LIEF/ELF/NoteDetails/core/CoreSigInfo.hpp"
+#include "LIEF/ELF/NoteDetails/core/CoreFile.hpp"
+#include "LIEF/ELF/Symbol.hpp"
+#include "LIEF/ELF/SymbolVersion.hpp"
+#include "LIEF/ELF/SymbolVersionAux.hpp"
+#include "LIEF/ELF/SymbolVersionAuxRequirement.hpp"
+#include "LIEF/ELF/SymbolVersionDefinition.hpp"
+#include "LIEF/ELF/SymbolVersionRequirement.hpp"
+#include "LIEF/ELF/SysvHash.hpp"
+
+namespace LIEF::ELF {
void JsonVisitor::visit(const Binary& binary) {
JsonVisitor header_visitor;
@@ -120,27 +157,27 @@ void JsonVisitor::visit(const Binary& binary) {
notes.emplace_back(visitor.get());
}
- node_["entrypoint"] = binary.entrypoint();
- node_["imagebase"] = binary.imagebase();
+ node_["entrypoint"] = binary.entrypoint();
+ node_["imagebase"] = binary.imagebase();
node_["virtual_size"] = binary.virtual_size();
- node_["is_pie"] = binary.is_pie();
+ node_["is_pie"] = binary.is_pie();
if (binary.has_interpreter()) {
node_["interpreter"] = binary.interpreter();
}
- node_["header"] = header_visitor.get();
- node_["sections"] = sections;
- node_["segments"] = segments;
- node_["dynamic_entries"] = dynamic_entries;
- node_["dynamic_symbols"] = dynamic_symbols;
- node_["symtab_symbols"] = symtab_symbols;
- node_["dynamic_relocations"] = dynamic_relocations;
- node_["pltgot_relocations"] = pltgot_relocations;
- node_["symbols_version"] = symbols_version;
+ node_["header"] = header_visitor.get();
+ node_["sections"] = sections;
+ node_["segments"] = segments;
+ node_["dynamic_entries"] = dynamic_entries;
+ node_["dynamic_symbols"] = dynamic_symbols;
+ node_["symtab_symbols"] = symtab_symbols;
+ node_["dynamic_relocations"] = dynamic_relocations;
+ node_["pltgot_relocations"] = pltgot_relocations;
+ node_["symbols_version"] = symbols_version;
node_["symbols_version_requirement"] = symbols_version_requirement;
- node_["symbols_version_definition"] = symbols_version_definition;
- node_["notes"] = notes;
+ node_["symbols_version_definition"] = symbols_version_definition;
+ node_["notes"] = notes;
if (binary.use_gnu_hash()) {
JsonVisitor gnu_hash_visitor;
@@ -155,29 +192,28 @@ void JsonVisitor::visit(const Binary& binary) {
node_["sysv_hash"] = sysv_hash_visitor.get();
}
-
}
void JsonVisitor::visit(const Header& header) {
- node_["file_type"] = to_string(header.file_type());
- node_["machine_type"] = to_string(header.machine_type());
- node_["object_file_version"] = to_string(header.object_file_version());
- node_["entrypoint"] = header.entrypoint();
- node_["program_headers_offset"] = header.program_headers_offset();
- node_["section_headers_offset"] = header.section_headers_offset();
- node_["processor_flag"] = header.processor_flag();
- node_["header_size"] = header.header_size();
- node_["program_header_size"] = header.program_header_size();
+ node_["file_type"] = to_string(header.file_type());
+ node_["machine_type"] = to_string(header.machine_type());
+ node_["object_file_version"] = to_string(header.object_file_version());
+ node_["entrypoint"] = header.entrypoint();
+ node_["program_headers_offset"] = header.program_headers_offset();
+ node_["section_headers_offset"] = header.section_headers_offset();
+ node_["processor_flag"] = header.processor_flag();
+ node_["header_size"] = header.header_size();
+ node_["program_header_size"] = header.program_header_size();
node_["processornumberof_segments_flag"] = header.numberof_segments();
- node_["section_header_size"] = header.section_header_size();
- node_["numberof_sections"] = header.numberof_sections();
- node_["section_name_table_idx"] = header.section_name_table_idx();
- node_["identity_class"] = to_string(header.identity_class());
- node_["identity_data"] = to_string(header.identity_data());
- node_["identity_version"] = to_string(header.identity_version());
- node_["identity_os_abi"] = to_string(header.identity_os_abi());
- node_["identity_abi_version"] = header.identity_abi_version();
+ node_["section_header_size"] = header.section_header_size();
+ node_["numberof_sections"] = header.numberof_sections();
+ node_["section_name_table_idx"] = header.section_name_table_idx();
+ node_["identity_class"] = to_string(header.identity_class());
+ node_["identity_data"] = to_string(header.identity_data());
+ node_["identity_version"] = to_string(header.identity_version());
+ node_["identity_os_abi"] = to_string(header.identity_os_abi());
+ node_["identity_abi_version"] = header.identity_abi_version();
}
@@ -187,16 +223,16 @@ void JsonVisitor::visit(const Section& section) {
flags.emplace_back(to_string(f));
}
- node_["name"] = section.name();
+ node_["name"] = section.name();
node_["virtual_address"] = section.virtual_address();
- node_["size"] = section.size();
- node_["offset"] = section.offset();
- node_["alignment"] = section.alignment();
- node_["information"] = section.information();
- node_["entry_size"] = section.entry_size();
- node_["link"] = section.link();
- node_["type"] = to_string(section.type());
- node_["flags"] = flags;
+ node_["size"] = section.size();
+ node_["offset"] = section.offset();
+ node_["alignment"] = section.alignment();
+ node_["information"] = section.information();
+ node_["entry_size"] = section.entry_size();
+ node_["link"] = section.link();
+ node_["type"] = to_string(section.type());
+ node_["flags"] = flags;
}
void JsonVisitor::visit(const Segment& segment) {
@@ -206,20 +242,19 @@ void JsonVisitor::visit(const Segment& segment) {
sections.emplace_back(section.name());
}
- node_["type"] = to_string(segment.type());
- node_["flags"] = static_cast<size_t>(segment.flags());
- node_["file_offset"] = segment.file_offset();
- node_["virtual_address"] = segment.virtual_address();
+ node_["type"] = to_string(segment.type());
+ node_["flags"] = static_cast<size_t>(segment.flags());
+ node_["file_offset"] = segment.file_offset();
+ node_["virtual_address"] = segment.virtual_address();
node_["physical_address"] = segment.physical_address();
- node_["physical_size"] = segment.physical_size();
- node_["virtual_size"] = segment.virtual_size();
- node_["alignment"] = segment.alignment();
- node_["sections"] = sections;
-
+ node_["physical_size"] = segment.physical_size();
+ node_["virtual_size"] = segment.virtual_size();
+ node_["alignment"] = segment.alignment();
+ node_["sections"] = sections;
}
void JsonVisitor::visit(const DynamicEntry& entry) {
- node_["tag"] = to_string(entry.tag());
+ node_["tag"] = to_string(entry.tag());
node_["value"] = entry.value();
}
@@ -261,25 +296,21 @@ void JsonVisitor::visit(const DynamicEntryFlags& entry) {
std::vector<std::string> flags_str;
flags_str.reserve(flags.size());
- std::transform(
- std::begin(flags), std::end(flags),
- std::back_inserter(flags_str),
- [] (DynamicEntryFlags::FLAG f) {
- return to_string(f);
- });
+ std::transform(flags.begin(), flags.end(), std::back_inserter(flags_str),
+ [](DynamicEntryFlags::FLAG f) { return to_string(f); });
node_["flags"] = flags_str;
}
void JsonVisitor::visit(const Symbol& symbol) {
- node_["type"] = to_string(symbol.type());
- node_["binding"] = to_string(symbol.binding());
+ node_["type"] = to_string(symbol.type());
+ node_["binding"] = to_string(symbol.binding());
node_["information"] = symbol.information();
- node_["other"] = symbol.other();
- node_["value"] = symbol.value();
- node_["size"] = symbol.size();
- node_["name"] = symbol.name();
+ node_["other"] = symbol.other();
+ node_["value"] = symbol.value();
+ node_["size"] = symbol.size();
+ node_["name"] = symbol.name();
std::string sname = symbol.demangled_name();
if (sname.empty()) {
@@ -308,16 +339,15 @@ void JsonVisitor::visit(const Relocation& relocation) {
relocation_type = to_string(relocation.type());
node_["symbol_name"] = symbol_name;
- node_["address"] = relocation.address();
- node_["type"] = relocation_type;
- node_["section"] = section_name;
-
+ node_["address"] = relocation.address();
+ node_["type"] = relocation_type;
+ node_["section"] = section_name;
}
void JsonVisitor::visit(const SymbolVersion& sv) {
node_["value"] = sv.value();
if (sv.has_auxiliary_version()) {
- node_["symbol_version_auxiliary"] = sv.symbol_version_auxiliary()->name();
+ node_["symbol_version_auxiliary"] = sv.symbol_version_auxiliary()->name();
}
}
@@ -331,10 +361,9 @@ void JsonVisitor::visit(const SymbolVersionRequirement& svr) {
svar_json.emplace_back(visitor.get());
}
- node_["version"] = svr.version();
- node_["name"] = svr.name();
+ node_["version"] = svr.version();
+ node_["name"] = svr.name();
node_["symbol_version_auxiliary_requirement"] = svar_json;
-
}
void JsonVisitor::visit(const SymbolVersionDefinition& svd) {
@@ -347,9 +376,9 @@ void JsonVisitor::visit(const SymbolVersionDefinition& svd) {
sva_json.emplace_back(visitor.get());
}
- node_["version"] = svd.version();
- node_["flags"] = svd.flags();
- node_["hash"] = svd.hash();
+ node_["version"] = svd.version();
+ node_["flags"] = svd.flags();
+ node_["hash"] = svd.hash();
node_["symbol_version_auxiliary"] = sva_json;
}
@@ -358,14 +387,14 @@ void JsonVisitor::visit(const SymbolVersionAux& sv) {
}
void JsonVisitor::visit(const SymbolVersionAuxRequirement& svar) {
- node_["hash"] = svar.hash();
+ node_["hash"] = svar.hash();
node_["flags"] = svar.flags();
node_["other"] = svar.other();
}
void JsonVisitor::visit(const Note& note) {
- node_["name"] = note.name();
- node_["type"] = to_string(note.type());
+ node_["name"] = note.name();
+ node_["type"] = to_string(note.type());
node_["original_type"] = note.original_type();
}
@@ -386,7 +415,7 @@ void JsonVisitor::visit(const NoteGnuProperty& note_prop) {
json_props.reserve(props.size());
for (const std::unique_ptr<NoteGnuProperty::Property>& prop : props) {
- json_props.push_back(to_string(prop->type()));
+ json_props.emplace_back(to_string(prop->type()));
}
node_["properties"] = std::move(json_props);
@@ -398,83 +427,74 @@ void JsonVisitor::visit(const CorePrPsInfo& pinfo) {
if (!info) {
return;
}
- node_["state"] = info->state;
- node_["sname"] = info->sname;
- node_["zombie"] = info->zombie;
- node_["flag"] = info->flag;
- node_["uid"] = info->uid;
- node_["gid"] = info->gid;
- node_["pid"] = info->pid;
- node_["ppid"] = info->ppid;
- node_["pgrp"] = info->pgrp;
- node_["sid"] = info->sid;
- node_["filename"] = info->filename_stripped();
- node_["args"] = info->args_stripped();
+ node_["state"] = info->state;
+ node_["sname"] = info->sname;
+ node_["zombie"] = info->zombie;
+ node_["flag"] = info->flag;
+ node_["uid"] = info->uid;
+ node_["gid"] = info->gid;
+ node_["pid"] = info->pid;
+ node_["ppid"] = info->ppid;
+ node_["pgrp"] = info->pgrp;
+ node_["sid"] = info->sid;
+ node_["filename"] = info->filename_stripped();
+ node_["args"] = info->args_stripped();
}
void JsonVisitor::visit(const CorePrStatus& pstatus) {
visit(static_cast<const Note&>(pstatus));
const CorePrStatus::pr_status_t& status = pstatus.status();
node_["current_sig"] = status.cursig;
- node_["sigpend"] = status.sigpend;
- node_["sighold"] = status.sighold;
- node_["pid"] = status.pid;
- node_["ppid"] = status.ppid;
- node_["pgrp"] = status.pgrp;
- node_["sid"] = status.sid;
- node_["sigpend"] = status.sigpend;
-
- node_["utime"] = {
- {"tv_sec", status.utime.sec},
- {"tv_usec", status.utime.usec}
- };
-
- node_["stime"] = {
- {"tv_sec", status.stime.sec},
- {"tv_usec", status.stime.sec}
- };
-
- node_["stime"] = {
- {"tv_sec", status.stime.sec},
- {"tv_usec", status.stime.usec}
- };
+ node_["sigpend"] = status.sigpend;
+ node_["sighold"] = status.sighold;
+ node_["pid"] = status.pid;
+ node_["ppid"] = status.ppid;
+ node_["pgrp"] = status.pgrp;
+ node_["sid"] = status.sid;
+ node_["sigpend"] = status.sigpend;
+
+ node_["utime"] = {{"tv_sec", status.utime.sec}, {"tv_usec", status.utime.usec}};
+
+ node_["stime"] = {{"tv_sec", status.stime.sec}, {"tv_usec", status.stime.sec}};
+
+ node_["stime"] = {{"tv_sec", status.stime.sec}, {"tv_usec", status.stime.usec}};
std::vector<uint64_t> reg_vals = pstatus.register_values();
if (!reg_vals.empty()) {
json regs;
switch (pstatus.architecture()) {
case ARCH::I386:
- {
- for (size_t i = 0; i < reg_vals.size(); ++i) {
- regs[to_string(CorePrStatus::Registers::X86(i))] = reg_vals[i];
- }
- break;
+ {
+ for (size_t i = 0; i < reg_vals.size(); ++i) {
+ regs[to_string(CorePrStatus::Registers::X86(i))] = reg_vals[i];
}
+ break;
+ }
case ARCH::X86_64:
- {
- for (size_t i = 0; i < reg_vals.size(); ++i) {
- regs[to_string(CorePrStatus::Registers::X86_64(i))] = reg_vals[i];
- }
- break;
+ {
+ for (size_t i = 0; i < reg_vals.size(); ++i) {
+ regs[to_string(CorePrStatus::Registers::X86_64(i))] = reg_vals[i];
}
+ break;
+ }
case ARCH::ARM:
- {
- for (size_t i = 0; i < reg_vals.size(); ++i) {
- regs[to_string(CorePrStatus::Registers::ARM(i))] = reg_vals[i];
- }
- break;
+ {
+ for (size_t i = 0; i < reg_vals.size(); ++i) {
+ regs[to_string(CorePrStatus::Registers::ARM(i))] = reg_vals[i];
}
+ break;
+ }
case ARCH::AARCH64:
- {
- for (size_t i = 0; i < reg_vals.size(); ++i) {
- regs[to_string(CorePrStatus::Registers::AARCH64(i))] = reg_vals[i];
- }
- break;
+ {
+ for (size_t i = 0; i < reg_vals.size(); ++i) {
+ regs[to_string(CorePrStatus::Registers::AARCH64(i))] = reg_vals[i];
}
+ break;
+ }
default:
- {
- regs = reg_vals;
- }
+ {
+ regs = reg_vals;
+ }
}
node_["regs"] = regs;
}
@@ -506,12 +526,10 @@ void JsonVisitor::visit(const CoreFile& file) {
visit(static_cast<const Note&>(file));
std::vector<json> files;
for (const CoreFile::entry_t& entry : file.files()) {
- const json file = {
- {"start", entry.start},
- {"end", entry.end},
- {"file_ofs", entry.file_ofs},
- {"path", entry.path}
- };
+ const json file = {{"start", entry.start},
+ {"end", entry.end},
+ {"file_ofs", entry.file_ofs},
+ {"path", entry.path}};
files.emplace_back(file);
}
node_["files"] = files;
@@ -535,25 +553,22 @@ void JsonVisitor::visit(const QNXStack& note) {
void JsonVisitor::visit(const GnuHash& gnuhash) {
- node_["nb_buckets"] = gnuhash.nb_buckets();
- node_["symbol_index"] = gnuhash.symbol_index();
- node_["shift2"] = gnuhash.shift2();
- node_["maskwords"] = gnuhash.maskwords();
+ node_["nb_buckets"] = gnuhash.nb_buckets();
+ node_["symbol_index"] = gnuhash.symbol_index();
+ node_["shift2"] = gnuhash.shift2();
+ node_["maskwords"] = gnuhash.maskwords();
node_["bloom_filters"] = gnuhash.bloom_filters();
- node_["buckets"] = gnuhash.buckets();
- node_["hash_values"] = gnuhash.hash_values();
+ node_["buckets"] = gnuhash.buckets();
+ node_["hash_values"] = gnuhash.hash_values();
}
void JsonVisitor::visit(const SysvHash& sysvhash) {
node_["nbucket"] = sysvhash.nbucket();
- node_["nchain"] = sysvhash.nchain();
+ node_["nchain"] = sysvhash.nchain();
node_["buckets"] = sysvhash.buckets();
- node_["chains"] = sysvhash.chains();
+ node_["chains"] = sysvhash.chains();
}
-
-} // namespace ELF
-} // namespace LIEF
-
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/ELF/json_api.cpp b/deps/LIEF/src/ELF/json_api.cpp
index 8ba14606d69..63213fb7f05 100644
--- a/deps/LIEF/src/ELF/json_api.cpp
+++ b/deps/LIEF/src/ELF/json_api.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -38,4 +38,3 @@ std::string to_json([[maybe_unused]] const Object& v) {
} // namespace ELF
} // namespace LIEF
-
diff --git a/deps/LIEF/src/ELF/json_internal.hpp b/deps/LIEF/src/ELF/json_internal.hpp
index a36034b082a..ea5bae7b783 100644
--- a/deps/LIEF/src/ELF/json_internal.hpp
+++ b/deps/LIEF/src/ELF/json_internal.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,12 +16,9 @@
#ifndef LIEF_ELF_JSON_INTERNAL_H
#define LIEF_ELF_JSON_INTERNAL_H
-#include "LIEF/visibility.h"
#include "visitors/json.hpp"
-#include "LIEF/ELF.hpp"
-namespace LIEF {
-namespace ELF {
+namespace LIEF::ELF {
class AndroidIdent;
class Binary;
@@ -61,38 +58,38 @@ class JsonVisitor : public LIEF::JsonVisitor {
using LIEF::JsonVisitor::JsonVisitor;
public:
- void visit(const Binary& binary) override;
- void visit(const Header& header) override;
- void visit(const Section& section) override;
- void visit(const Segment& segment) override;
- void visit(const DynamicEntry& entry) override;
- void visit(const DynamicEntryArray& entry) override;
- void visit(const DynamicEntryLibrary& entry) override;
- void visit(const DynamicEntryRpath& entry) override;
- void visit(const DynamicEntryRunPath& entry) override;
- void visit(const DynamicSharedObject& entry) override;
- void visit(const DynamicEntryFlags& entry) override;
- void visit(const Symbol& symbol) override;
- void visit(const Relocation& relocation) override;
- void visit(const SymbolVersion& sv) override;
- void visit(const SymbolVersionAux& sv) override;
+ void visit(const Binary& binary) override;
+ void visit(const Header& header) override;
+ void visit(const Section& section) override;
+ void visit(const Segment& segment) override;
+ void visit(const DynamicEntry& entry) override;
+ void visit(const DynamicEntryArray& entry) override;
+ void visit(const DynamicEntryLibrary& entry) override;
+ void visit(const DynamicEntryRpath& entry) override;
+ void visit(const DynamicEntryRunPath& entry) override;
+ void visit(const DynamicSharedObject& entry) override;
+ void visit(const DynamicEntryFlags& entry) override;
+ void visit(const Symbol& symbol) override;
+ void visit(const Relocation& relocation) override;
+ void visit(const SymbolVersion& sv) override;
+ void visit(const SymbolVersionAux& sv) override;
void visit(const SymbolVersionAuxRequirement& sv) override;
- void visit(const SymbolVersionRequirement& svr) override;
- void visit(const SymbolVersionDefinition& svd) override;
- void visit(const Note& note) override;
- void visit(const NoteAbi& note) override;
- void visit(const NoteGnuProperty& note) override;
- void visit(const QNXStack& note) override;
- void visit(const AndroidIdent& note) override;
- void visit(const CorePrPsInfo& pinfo) override;
- void visit(const CorePrStatus& pstatus) override;
- void visit(const CoreAuxv& auxv) override;
- void visit(const CoreSigInfo& siginfo) override;
- void visit(const CoreFile& file) override;
- void visit(const GnuHash& gnuhash) override;
- void visit(const SysvHash& sysvhash) override;
+ void visit(const SymbolVersionRequirement& svr) override;
+ void visit(const SymbolVersionDefinition& svd) override;
+ void visit(const Note& note) override;
+ void visit(const NoteAbi& note) override;
+ void visit(const NoteGnuProperty& note) override;
+ void visit(const QNXStack& note) override;
+ void visit(const AndroidIdent& note) override;
+ void visit(const CorePrPsInfo& pinfo) override;
+ void visit(const CorePrStatus& pstatus) override;
+ void visit(const CoreAuxv& auxv) override;
+ void visit(const CoreSigInfo& siginfo) override;
+ void visit(const CoreFile& file) override;
+ void visit(const GnuHash& gnuhash) override;
+ void visit(const SysvHash& sysvhash) override;
};
}
-}
+
#endif
diff --git a/deps/LIEF/src/ELF/layout_check.cpp b/deps/LIEF/src/ELF/layout_check.cpp
new file mode 100644
index 00000000000..b3728744223
--- /dev/null
+++ b/deps/LIEF/src/ELF/layout_check.cpp
@@ -0,0 +1,673 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "LIEF/ELF/Binary.hpp"
+#include "LIEF/ELF/Header.hpp"
+#include "LIEF/ELF/Segment.hpp"
+#include "LIEF/ELF/Section.hpp"
+#include "LIEF/ELF/Symbol.hpp"
+#include "LIEF/ELF/DynamicEntry.hpp"
+#include "LIEF/ELF/Note.hpp"
+#include "LIEF/ELF/utils.hpp"
+#include "LIEF/ELF/SysvHash.hpp"
+#include "ELF/Structures.hpp"
+
+#include <spdlog/fmt/fmt.h>
+#include <algorithm>
+
+
+namespace LIEF::ELF {
+
+class LayoutChecker {
+ public:
+ static constexpr uint32_t DEFAULT_PAGE_SIZE = 0x1000;
+
+ LayoutChecker() = delete;
+ LayoutChecker(const Binary& bin) :
+ elf(bin),
+ filesz(elf.original_size()) {}
+
+ bool check_header();
+ bool check_segments();
+ bool check_sections();
+ bool check_dynamic();
+ bool check_notes();
+ bool check_tls();
+ bool check_mips_rld_map();
+
+ bool check() {
+ if (!check_header()) {
+ return false;
+ }
+ if (!check_segments()) {
+ return false;
+ }
+ if (!check_sections()) {
+ return false;
+ }
+ if (!check_dynamic()) {
+ return false;
+ }
+ if (!check_mips_rld_map()) {
+ return false;
+ }
+ if (!check_notes()) {
+ return false;
+ }
+ if (!check_tls()) {
+ return false;
+ }
+ return true;
+ }
+
+ bool error(std::string msg) {
+ error_msg = std::move(msg);
+ return false;
+ }
+
+ template<typename... Args>
+ bool error(const char* fmt, const Args&... args) {
+ error_msg = fmt::format(fmt::runtime(fmt), args...);
+ return false;
+ }
+
+ const std::string& get_error() const {
+ return error_msg;
+ }
+
+ bool is64() const {
+ return elf.header().identity_class() == Header::CLASS::ELF64;
+ }
+
+ private:
+ std::string error_msg;
+ const Binary& elf;
+ uint64_t filesz;
+};
+
+bool LayoutChecker::check_header() {
+ const Header& hdr = elf.header();
+
+ const uint32_t ehdr_size =
+ is64() ? sizeof(details::Elf64_Ehdr) : sizeof(details::Elf32_Ehdr);
+ if (filesz < ehdr_size) {
+ return error("File size ({:#x}) is too small for ELF header ({:#x})", filesz,
+ ehdr_size);
+ }
+
+ if (hdr.identity_version() != Header::VERSION::CURRENT) {
+ return error("Invalid ELF version: {}", (int)hdr.identity_version());
+ }
+
+ if (hdr.identity_class() == Header::CLASS::NONE) {
+ return error("Invalid ELF class");
+ }
+
+ if (hdr.file_type() == Header::FILE_TYPE::NONE) {
+ return error("Invalid ELF type (ET_NONE)");
+ }
+
+ const uint32_t phdr_size =
+ is64() ? sizeof(details::Elf64_Phdr) : sizeof(details::Elf32_Phdr);
+ const uint32_t phnum = hdr.numberof_segments();
+ if (phnum > 0) {
+ const uint64_t phoff = hdr.program_headers_offset();
+ const uint64_t pht_size = (uint64_t)phnum * phdr_size;
+
+ if (phoff + pht_size > filesz) {
+ return error(
+ "Program header table (offset: {:#x}, size: {:#x}) is beyond file size",
+ phoff, pht_size
+ );
+ }
+
+ // Required by Android
+ if (phoff % elf.ptr_size() != 0) {
+ return error("phoff offset ({:#010x}) misaligned", phoff);
+ }
+
+ if (phnum > (std::numeric_limits<uint16_t>::max() / phdr_size)) {
+ return error("Too many program headers: {}", phnum);
+ }
+ }
+
+ const uint32_t shdr_size =
+ is64() ? sizeof(details::Elf64_Shdr) : sizeof(details::Elf32_Shdr);
+ const uint32_t shnum = hdr.numberof_sections();
+ if (shnum > 0) {
+ const uint64_t shoff = hdr.section_headers_offset();
+ const uint64_t sht_size = (uint64_t)shnum * shdr_size;
+ if (shoff + sht_size > filesz) {
+ return error(
+ "Section header table (offset: {:#x}, size: {:#x}) is beyond file size",
+ shoff, sht_size
+ );
+ }
+
+ // Required by Android
+ if (shoff % elf.ptr_size() != 0) {
+ return error("shdr offset ({:#010x}) misaligned", shoff);
+ }
+
+ if (hdr.section_name_table_idx() >= shnum) {
+ return error("Invalid section name table index: {}",
+ hdr.section_name_table_idx());
+ }
+ }
+
+ // Android specific checks if targeting Android
+ if (elf.is_targeting_android()) {
+ if (hdr.identity_data() != Header::ELF_DATA::LSB) {
+ return error("Android ELF must be little-endian");
+ }
+ if (hdr.file_type() != Header::FILE_TYPE::DYN) {
+ return error("Android ELF must be ET_DYN (PIE or shared library)");
+ }
+ }
+
+ return true;
+}
+
+bool LayoutChecker::check_segments() {
+ bool has_pt_load = false;
+ auto segments = elf.segments();
+
+ const Segment* pt_phdr = nullptr;
+
+ for (size_t i = 0; i < segments.size(); ++i) {
+ const Segment& seg = segments[i];
+
+ if (seg.file_offset() + seg.physical_size() > filesz) {
+ return error("Segment[{}] offset ({:#x}) + filesz ({:#x}) is beyond file "
+ "size ({:#x})",
+ i, seg.file_offset(), seg.physical_size(), filesz);
+ }
+
+ if (seg.virtual_size() < seg.physical_size()) {
+ return error("Segment[{}] memsz ({:#x}) is smaller than filesz ({:#x})", i,
+ seg.virtual_size(), seg.physical_size());
+ }
+
+ const uint64_t alignment = seg.alignment();
+ if (alignment > 1 && (alignment & (alignment - 1)) != 0) {
+ return error("Segment[{}] alignment ({:#x}) is not a power of 2", i,
+ alignment);
+ }
+
+ if (seg.type() == Segment::TYPE::PHDR) {
+ pt_phdr = &seg;
+ }
+
+ if (seg.type() == Segment::TYPE::LOAD) {
+ has_pt_load = true;
+ if (alignment > 1) {
+ if ((seg.virtual_address() % alignment) != (seg.file_offset() % alignment))
+ {
+ return error(
+ "Segment[{}] (PT_LOAD) p_vaddr ({:#x}) and p_offset ({:#x}) "
+ "are not congruent modulo p_align ({:#x})",
+ i, seg.virtual_address(), seg.file_offset(), alignment
+ );
+ }
+ }
+
+ // Android W+E check
+ if (elf.is_targeting_android()) {
+ if (seg.has(Segment::FLAGS::W) && seg.has(Segment::FLAGS::X)) {
+ return error("Segment[{}] (PT_LOAD) is both writable and executable", i);
+ }
+ }
+
+ // Overlap check for PT_LOAD
+ for (size_t j = i + 1; j < segments.size(); ++j) {
+ const Segment& other = segments[j];
+ if (other.type() != Segment::TYPE::LOAD) {
+ continue;
+ }
+
+ const uint64_t start1 = seg.virtual_address();
+ const uint64_t end1 = seg.virtual_address() + seg.virtual_size();
+ const uint64_t start2 = other.virtual_address();
+ const uint64_t end2 = other.virtual_address() + other.virtual_size();
+
+ if (std::max(start1, start2) < std::min(end1, end2)) {
+ return error("Segment[{}] and Segment[{}] (PT_LOAD) overlap in memory",
+ i, j);
+ }
+ }
+ }
+ }
+
+ if (!has_pt_load) {
+ return error("No loadable segments (PT_LOAD)");
+ }
+
+ // PT_PHDR must be wrapped by a PT_LOAD
+ if (pt_phdr != nullptr) {
+ bool wrapped = false;
+ for (const Segment& seg : segments) {
+ if (seg.type() != Segment::TYPE::LOAD) {
+ continue;
+ }
+ if (seg.virtual_address() <= pt_phdr->virtual_address() &&
+ (pt_phdr->virtual_address() + pt_phdr->virtual_size()) <=
+ (seg.virtual_address() + seg.physical_size()))
+ {
+ wrapped = true;
+ break;
+ }
+ }
+ if (!wrapped) {
+ return error("PT_PHDR segment is not wrapped by a PT_LOAD segment");
+ }
+ } else {
+ // If no PT_PHDR, program headers are usually at the beginning of the first
+ // PT_LOAD (offset 0) Linker checks this in FindPhdr()
+ bool found_pht_in_load = false;
+ const uint64_t pht_offset = elf.header().program_headers_offset();
+ const uint32_t phdr_size =
+ is64() ? sizeof(details::Elf64_Phdr) : sizeof(details::Elf32_Phdr);
+ const uint64_t pht_size =
+ (uint64_t)elf.header().numberof_segments() * phdr_size;
+
+ for (const Segment& seg : segments) {
+ if (seg.type() != Segment::TYPE::LOAD) {
+ continue;
+ }
+ if (seg.file_offset() <= pht_offset &&
+ (pht_offset + pht_size) <= (seg.file_offset() + seg.physical_size()))
+ {
+ found_pht_in_load = true;
+ break;
+ }
+ }
+ if (!found_pht_in_load) {
+ return error("Program header table is not wrapped by a PT_LOAD segment");
+ }
+ }
+
+ return true;
+}
+
+bool LayoutChecker::check_sections() {
+ const uint64_t filesz = elf.original_size();
+ auto sections = elf.sections();
+ const Section* dynamic_sec = nullptr;
+ const Section* dynsym_sec = nullptr;
+
+ for (size_t i = 0; i < sections.size(); ++i) {
+ const Section& sec = sections[i];
+ if (sec.type() == Section::TYPE::DYNAMIC) {
+ dynamic_sec = &sec;
+ }
+
+ if (sec.type() == Section::TYPE::DYNSYM) {
+ if (dynsym_sec != nullptr) {
+ return error("Multiple SHT_DYNSYM sections found");
+ }
+ dynsym_sec = &sec;
+ }
+
+ if (sec.type() == Section::TYPE::NOBITS) {
+ continue;
+ }
+
+ if (sec.offset() + sec.size() > filesz) {
+ return error("Section[{}] ('{}') offset ({:#x}) + size ({:#x}) is beyond "
+ "file size ({:#x})",
+ i, sec.name(), sec.offset(), sec.size(), filesz);
+ }
+
+ // sh_entsize checks
+ uint64_t expected_entsize = 0;
+ switch (sec.type()) {
+ case Section::TYPE::SYMTAB:
+ case Section::TYPE::DYNSYM:
+ expected_entsize =
+ is64() ? sizeof(details::Elf64_Sym) : sizeof(details::Elf32_Sym);
+ break;
+ case Section::TYPE::DYNAMIC:
+ expected_entsize =
+ is64() ? sizeof(details::Elf64_Dyn) : sizeof(details::Elf32_Dyn);
+ break;
+ case Section::TYPE::REL:
+ expected_entsize =
+ is64() ? sizeof(details::Elf64_Rel) : sizeof(details::Elf32_Rel);
+ break;
+ case Section::TYPE::RELA:
+ expected_entsize =
+ is64() ? sizeof(details::Elf64_Rela) : sizeof(details::Elf32_Rela);
+ break;
+ case Section::TYPE::GROUP:
+ case Section::TYPE::SYMTAB_SHNDX: expected_entsize = sizeof(uint32_t); break;
+ default: break;
+ }
+
+ if (expected_entsize > 0 && sec.entry_size() != expected_entsize) {
+ return error(
+ "Section[{}] ('{}') has invalid sh_entsize: {:#x} (expected: {:#x})", i,
+ sec.name(), sec.entry_size(), expected_entsize
+ );
+ }
+
+ if (sec.entry_size() > 0 && (sec.size() % sec.entry_size()) != 0) {
+ return error("Section[{}] ('{}') size ({:#x}) is not a multiple of "
+ "sh_entsize ({:#x})",
+ i, sec.name(), sec.size(), sec.entry_size());
+ }
+
+ // sh_link checks
+ switch (sec.type()) {
+ case Section::TYPE::DYNAMIC:
+ case Section::TYPE::SYMTAB:
+ case Section::TYPE::DYNSYM:
+ if (sec.link() >= sections.size()) {
+ return error("Section[{}] ('{}') has invalid sh_link: {}", i, sec.name(),
+ sec.link());
+ }
+ {
+ const Section& strtab = sections[sec.link()];
+ if (strtab.type() != Section::TYPE::STRTAB) {
+ return error("Section[{}] ('{}') has invalid sh_link: {} (expected "
+ "SHT_STRTAB, but got {})",
+ i, sec.name(), sec.link(), to_string(strtab.type()));
+ }
+ }
+ break;
+ case Section::TYPE::REL:
+ case Section::TYPE::RELA:
+ case Section::TYPE::HASH:
+ case Section::TYPE::GNU_HASH:
+ if (sec.link() >= sections.size()) {
+ return error("Section[{}] ('{}') has invalid sh_link: {}", i, sec.name(),
+ sec.link());
+ }
+ break;
+ default: break;
+ }
+
+ // sh_info checks
+ switch (sec.type()) {
+ case Section::TYPE::SYMTAB:
+ case Section::TYPE::DYNSYM:
+ if (sec.entry_size() > 0 &&
+ sec.information() > sec.size() / sec.entry_size())
+ {
+ return error("Section[{}] ('{}') has invalid sh_info: {} (larger than "
+ "symbol count {})",
+ i, sec.name(), sec.information(),
+ sec.size() / sec.entry_size());
+ }
+ break;
+ default: break;
+ }
+ }
+
+ if (const Segment* pt_dynamic = elf.get(Segment::TYPE::DYNAMIC)) {
+ if (dynamic_sec != nullptr) {
+ if (dynamic_sec->offset() != pt_dynamic->file_offset()) {
+ return error("SHT_DYNAMIC section header and PT_DYNAMIC program header "
+ "disagree about "
+ "the location of the dynamic table: section offset {:#x} vs "
+ "segment offset {:#x}",
+ dynamic_sec->offset(), pt_dynamic->file_offset());
+ }
+ if (dynamic_sec->size() != pt_dynamic->physical_size()) {
+ return error("SHT_DYNAMIC section header and PT_DYNAMIC program header "
+ "disagree about "
+ "the size of the dynamic table: section size {:#x} vs "
+ "segment size {:#x}",
+ dynamic_sec->size(), pt_dynamic->physical_size());
+ }
+ }
+
+ // Android specific: .dynamic section header must exist if PT_DYNAMIC exists
+ if (elf.is_targeting_android()) {
+ if (dynamic_sec == nullptr) {
+ return error(".dynamic section header was not found");
+ }
+ if (dynamic_sec->link() >= sections.size()) {
+ return error(".dynamic section has invalid sh_link: {}",
+ dynamic_sec->link());
+ }
+ const Section& strtab = sections[dynamic_sec->link()];
+ if (strtab.type() != Section::TYPE::STRTAB) {
+ return error(".dynamic section has invalid link({}) sh_type: {} (expected "
+ "SHT_STRTAB)",
+ dynamic_sec->link(), (uint32_t)strtab.type());
+ }
+ }
+ }
+
+ return true;
+}
+
+bool LayoutChecker::check_dynamic() {
+ const bool is64 = this->is64();
+ uint64_t relaent = 0;
+ uint64_t relent = 0;
+ uint64_t relasz = 0;
+ uint64_t relsz = 0;
+ uint64_t syment = 0;
+ uint64_t strsz = 0;
+ uint64_t strtab = 0;
+ uint64_t symtab = 0;
+
+ for (const DynamicEntry& entry : elf.dynamic_entries()) {
+ switch (entry.tag()) {
+ case DynamicEntry::TAG::RELAENT: relaent = entry.value(); break;
+ case DynamicEntry::TAG::RELENT: relent = entry.value(); break;
+ case DynamicEntry::TAG::RELASZ: relasz = entry.value(); break;
+ case DynamicEntry::TAG::RELSZ: relsz = entry.value(); break;
+ case DynamicEntry::TAG::SYMENT: syment = entry.value(); break;
+ case DynamicEntry::TAG::STRSZ: strsz = entry.value(); break;
+ case DynamicEntry::TAG::STRTAB: strtab = entry.value(); break;
+ case DynamicEntry::TAG::SYMTAB: symtab = entry.value(); break;
+ case DynamicEntry::TAG::PLTREL:
+ {
+ uint64_t val = entry.value();
+ if (val != (uint64_t)DynamicEntry::TAG::REL &&
+ val != (uint64_t)DynamicEntry::TAG::RELA)
+ {
+ return error("Invalid DT_PLTREL value: {}", val);
+ }
+ break;
+ }
+ default: break;
+ }
+ }
+
+ if (relaent > 0) {
+ const uint64_t expected =
+ is64 ? sizeof(details::Elf64_Rela) : sizeof(details::Elf32_Rela);
+ if (relaent != expected) {
+ return error("DT_RELAENT ({:#x}) does not match expected size ({:#x})",
+ relaent, expected);
+ }
+ }
+ if (relent > 0) {
+ const uint64_t expected =
+ is64 ? sizeof(details::Elf64_Rel) : sizeof(details::Elf32_Rel);
+ if (relent != expected) {
+ return error("DT_RELENT ({:#x}) does not match expected size ({:#x})",
+ relent, expected);
+ }
+ }
+
+ if (relasz > 0 && relaent > 0 && (relasz % relaent) != 0) {
+ return error("DT_RELASZ ({:#x}) is not a multiple of DT_RELAENT ({:#x})",
+ relasz, relaent);
+ }
+
+ if (relsz > 0 && relent > 0 && (relsz % relent) != 0) {
+ return error("DT_RELSZ ({:#x}) is not a multiple of DT_RELENT ({:#x})", relsz,
+ relent);
+ }
+
+ if (syment > 0) {
+ const uint64_t expected =
+ is64 ? sizeof(details::Elf64_Sym) : sizeof(details::Elf32_Sym);
+ if (syment != expected) {
+ return error("DT_SYMENT ({:#x}) does not match expected size ({:#x})",
+ syment, expected);
+ }
+ }
+
+ if (strtab > 0 && strsz > 0) {
+ if (result<uint64_t> res = elf.virtual_address_to_offset(strtab)) {
+ uint64_t offset = *res;
+ if (offset + strsz > filesz) {
+ return error("Dynamic string table (offset: {:#x}, size: {:#x}) goes "
+ "past the end of the file (size: {:#x})",
+ offset, strsz, filesz);
+ }
+ }
+ }
+
+ if (symtab > 0) {
+ const Section* dynsym = elf.get(Section::TYPE::DYNSYM);
+ if (dynsym != nullptr && dynsym->virtual_address() != symtab) {
+ return error("SHT_DYNSYM section header and DT_SYMTAB disagree about "
+ "the location of the dynamic symbol table: section VA {:#x} "
+ "vs dynamic VA {:#x}",
+ dynsym->virtual_address(), symtab);
+ }
+ }
+
+ if (elf.use_sysv_hash()) {
+ const SysvHash* hash = elf.sysv_hash();
+ const Section* dynsym = elf.get(Section::TYPE::DYNSYM);
+ if (dynsym != nullptr && dynsym->entry_size() > 0) {
+ uint64_t dynsym_count = dynsym->size() / dynsym->entry_size();
+ if (hash->nchain() != dynsym_count) {
+ return error("hash table nchain ({}) differs from symbol count derived "
+ "from SHT_DYNSYM section header ({})",
+ hash->nchain(), dynsym_count);
+ }
+ }
+ }
+
+ return true;
+}
+
+bool LayoutChecker::check_mips_rld_map() {
+ // DT_MIPS_RLD_MAP_REL stores the offset of the run-time loader map
+ // **relative** to the address of its own dynamic entry.
+ // When `DT_MIPS_RLD_MAP` is also present (absolute version)
+ // both tags must reference the same address
+ const bool is64 = this->is64();
+
+ const DynamicEntry* rld_map_rel = elf.get(DynamicEntry::TAG::MIPS_RLD_MAP_REL);
+ if (rld_map_rel == nullptr) {
+ return true;
+ }
+ const DynamicEntry* rld_map = elf.get(DynamicEntry::TAG::MIPS_RLD_MAP);
+ const Segment* pt_dynamic = elf.get(Segment::TYPE::DYNAMIC);
+
+ if (rld_map == nullptr || pt_dynamic == nullptr) {
+ return true;
+ }
+
+ const uint64_t dynent_size =
+ is64 ? sizeof(details::Elf64_Dyn) : sizeof(details::Elf32_Dyn);
+
+ uint64_t index = 0;
+ for (const DynamicEntry& entry : elf.dynamic_entries()) {
+ if (entry.tag() == DynamicEntry::TAG::MIPS_RLD_MAP_REL) {
+ break;
+ }
+ ++index;
+ }
+
+ const uint64_t entry_va = pt_dynamic->virtual_address() + index * dynent_size;
+ uint64_t resolved = entry_va + rld_map_rel->value();
+ if (!is64) {
+ resolved &= 0xffffffff;
+ }
+
+ if (resolved != rld_map->value()) {
+ return error("DT_MIPS_RLD_MAP_REL resolves to {:#x} but DT_MIPS_RLD_MAP "
+ "points to {:#x}",
+ resolved, rld_map->value());
+ }
+ return true;
+}
+
+bool LayoutChecker::check_notes() {
+ const uint64_t filesz = elf.original_size();
+ for (const Segment& seg : elf.segments()) {
+ if (seg.type() != Segment::TYPE::NOTE) {
+ continue;
+ }
+ if (seg.physical_size() == 0) {
+ continue;
+ }
+
+ if (seg.file_offset() + seg.physical_size() > filesz) {
+ return error("PT_NOTE segment runs off end of file");
+ }
+ if (seg.physical_size() != seg.virtual_size()) {
+ return error("PT_NOTE segment p_filesz ({:#x}) != p_memsz ({:#x})",
+ seg.physical_size(), seg.virtual_size());
+ }
+ }
+ return true;
+}
+
+bool LayoutChecker::check_tls() {
+ const Segment* tls_seg = nullptr;
+ for (const Segment& seg : elf.segments()) {
+ if (seg.type() == Segment::TYPE::TLS) {
+ if (tls_seg != nullptr) {
+ return error("Multiple PT_TLS segments");
+ }
+ tls_seg = &seg;
+ }
+ }
+
+ if (tls_seg == nullptr) {
+ return true;
+ }
+
+ for (const Symbol& sym : elf.symbols()) {
+ if (sym.type() != Symbol::TYPE::TLS) {
+ continue;
+ }
+
+ uint64_t addr = sym.value();
+ if (addr > tls_seg->virtual_size() ||
+ (addr + sym.size()) > tls_seg->virtual_size())
+ {
+ return error("TLS symbol {:#010}: {} out of PT_TLS segment range"
+ "([{:#010x}, {:#010x}])",
+ sym.value(), sym.name(), 0, tls_seg->virtual_size());
+ }
+ }
+
+ return true;
+}
+
+bool check_layout(const Binary& bin, std::string* error_info) {
+ LayoutChecker checker(bin);
+ if (!checker.check()) {
+ if (error_info != nullptr) {
+ *error_info = checker.get_error();
+ }
+ return false;
+ }
+ return true;
+}
+
+}
diff --git a/deps/LIEF/src/ELF/structures.inc b/deps/LIEF/src/ELF/structures.inc
index 5c9e503b1c3..30fe72cb8d0 100644
--- a/deps/LIEF/src/ELF/structures.inc
+++ b/deps/LIEF/src/ELF/structures.inc
@@ -1,17 +1,17 @@
-typedef uint32_t Elf32_Addr;
-typedef uint32_t Elf32_Off;
-typedef uint16_t Elf32_Half;
-typedef uint32_t Elf32_Word;
-typedef int32_t Elf32_Sword;
-
-typedef uint64_t Elf64_Addr;
-typedef uint64_t Elf64_Off;
-typedef uint16_t Elf64_Half;
-typedef uint32_t Elf64_Word;
-typedef int32_t Elf64_Sword;
-
-typedef uint64_t Elf64_Xword;
-typedef int64_t Elf64_Sxword;
+using Elf32_Addr = uint32_t;
+using Elf32_Off = uint32_t;
+using Elf32_Half = uint16_t;
+using Elf32_Word = uint32_t;
+using Elf32_Sword = int32_t;
+
+using Elf64_Addr = uint64_t;
+using Elf64_Off = uint64_t;
+using Elf64_Half = uint16_t;
+using Elf64_Word = uint32_t;
+using Elf64_Sword = int32_t;
+
+using Elf64_Xword = uint64_t;
+using Elf64_Sxword = int64_t;
/** Object file magic string. */
diff --git a/deps/LIEF/src/ELF/utils.cpp b/deps/LIEF/src/ELF/utils.cpp
index 59fdb274840..36a05c043b9 100644
--- a/deps/LIEF/src/ELF/utils.cpp
+++ b/deps/LIEF/src/ELF/utils.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,8 +23,8 @@
#include "LIEF/ELF/utils.hpp"
#include "ELF/Structures.hpp"
-namespace LIEF {
-namespace ELF {
+
+namespace LIEF::ELF {
bool is_elf(BinaryStream& stream) {
using magic_t = std::array<char, sizeof(details::ElfMagic)>;
@@ -53,9 +53,10 @@ bool is_elf(const std::vector<uint8_t>& raw) {
/// SYSV hash function
unsigned long hash32(const char* name) {
- unsigned long h = 0, g;
+ unsigned long h = 0, g = 0;
while (*name != 0) {
h = (h << 4) + *name++;
+ // NOLINTNEXTLINE(bugprone-assignment-in-if-condition)
if ((g = h & 0xf0000000) != 0u) {
h ^= g >> 24;
}
@@ -67,9 +68,10 @@ unsigned long hash32(const char* name) {
/// SYSV hash function
/// https://blogs.oracle.com/ali/entry/gnu_hash_elf_sections
unsigned long hash64(const char* name) {
- unsigned long h = 0, g;
+ unsigned long h = 0, g = 0;
while (*name != 0) {
h = (h << 4) + *name++;
+ // NOLINTNEXTLINE(bugprone-assignment-in-if-condition)
if ((g = h & 0xf0000000) != 0u) {
h ^= g >> 24;
}
@@ -88,5 +90,4 @@ uint32_t dl_new_hash(const char* name) {
return h & 0xffffffff;
}
-} // namespace ELF
-} // namespace LIEF
+} // namespace LIEF::ELF
diff --git a/deps/LIEF/src/MachO/AtomInfo.cpp b/deps/LIEF/src/MachO/AtomInfo.cpp
index 3a593c73721..6fffb4949d7 100644
--- a/deps/LIEF/src/MachO/AtomInfo.cpp
+++ b/deps/LIEF/src/MachO/AtomInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,18 +19,17 @@
#include "LIEF/MachO/AtomInfo.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
AtomInfo::AtomInfo() :
- LoadCommand(LoadCommand::TYPE::ATOM_INFO, sizeof(details::linkedit_data_command))
-{}
+ LoadCommand(LoadCommand::TYPE::ATOM_INFO,
+ sizeof(details::linkedit_data_command)) {}
AtomInfo::AtomInfo(const details::linkedit_data_command& cmd) :
LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
data_offset_{cmd.dataoff},
- data_size_{cmd.datasize}
-{}
+ data_size_{cmd.datasize} {}
void AtomInfo::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -38,11 +37,10 @@ void AtomInfo::accept(Visitor& visitor) const {
std::ostream& AtomInfo::print(std::ostream& os) const {
LoadCommand::print(os) << '\n';
- os << fmt::format("offset=0x{:06}, size=0x{:06x}",
- data_offset(), data_size()) << '\n';
+ os << fmt::format("offset={:#08x}, size={:#08x}", data_offset(), data_size())
+ << '\n';
return os;
}
}
-}
diff --git a/deps/LIEF/src/MachO/Binary.cpp b/deps/LIEF/src/MachO/Binary.cpp
index f4b92f1d97a..4e41b800c7f 100644
--- a/deps/LIEF/src/MachO/Binary.cpp
+++ b/deps/LIEF/src/MachO/Binary.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,7 +19,6 @@
#include "Object.tcc"
#include "Binary.tcc"
-#include "paging.hpp"
#include "LIEF/Visitor.hpp"
#include "LIEF/utils.hpp"
@@ -45,6 +44,7 @@
#include "LIEF/MachO/FunctionStarts.hpp"
#include "LIEF/MachO/FunctionVariants.hpp"
#include "LIEF/MachO/FunctionVariantFixups.hpp"
+#include "LIEF/MachO/LazyLoadDylibInfo.hpp"
#include "LIEF/MachO/AtomInfo.hpp"
#include "LIEF/MachO/IndirectBindingInfo.hpp"
#include "LIEF/MachO/LinkEdit.hpp"
@@ -71,23 +71,22 @@
#include "internal_utils.hpp"
-namespace LIEF {
-namespace MachO {
-bool Binary::KeyCmp::operator() (const Relocation* lhs, const Relocation* rhs) const {
+namespace LIEF::MachO {
+
+bool Binary::KeyCmp::operator()(const Relocation* lhs,
+ const Relocation* rhs) const {
return *lhs < *rhs;
}
Binary::Binary() :
- LIEF::Binary(LIEF::Binary::FORMATS::MACHO)
-{}
+ LIEF::Binary(LIEF::Binary::FORMATS::MACHO) {}
LIEF::Binary::sections_t Binary::get_abstract_sections() {
LIEF::Binary::sections_t result;
it_sections sections = this->sections();
- std::transform(std::begin(sections), std::end(sections),
- std::back_inserter(result),
- [] (Section& s) { return &s; });
+ std::transform(sections.begin(), sections.end(), std::back_inserter(result),
+ [](Section& s) { return &s; });
return result;
}
@@ -96,89 +95,91 @@ LIEF::Binary::sections_t Binary::get_abstract_sections() {
void Binary::patch_address(uint64_t address,
const std::vector<uint8_t>& patch_value,
- LIEF::Binary::VA_TYPES)
-{
+ LIEF::Binary::VA_TYPES) {
// Find the segment associated with the virtual address
SegmentCommand* segment_topatch = segment_from_virtual_address(address);
if (segment_topatch == nullptr) {
- LIEF_ERR("Unable to find segment associated with address: 0x{:x}", address);
+ LIEF_ERR("Unable to find segment associated with address: {:#x}", address);
return;
}
const uint64_t offset = address - segment_topatch->virtual_address();
- span<uint8_t> content = segment_topatch->writable_content();
+ span<uint8_t> content = segment_topatch->content();
if (offset > content.size() || (offset + patch_value.size()) > content.size()) {
- LIEF_ERR("The patch value ({} bytes @0x{:x}) is out of bounds of the segment (limit: 0x{:x})",
+ LIEF_ERR("Patch value ({} bytes @{:#x}) out of segment bounds (limit: {:#x})",
patch_value.size(), offset, content.size());
return;
}
- std::move(std::begin(patch_value), std::end(patch_value), content.data() + offset);
+ std::move(patch_value.begin(), patch_value.end(), content.data() + offset);
}
-void Binary::patch_address(uint64_t address, uint64_t patch_value, size_t size, LIEF::Binary::VA_TYPES) {
+void Binary::patch_address(uint64_t address, uint64_t patch_value, size_t size,
+ LIEF::Binary::VA_TYPES) {
if (size > sizeof(patch_value)) {
- LIEF_ERR("Invalid size: 0x{:x}", size);
+ LIEF_ERR("Invalid size: {:#x}", size);
return;
}
SegmentCommand* segment_topatch = segment_from_virtual_address(address);
if (segment_topatch == nullptr) {
- LIEF_ERR("Unable to find segment associated with address: 0x{:x}", address);
+ LIEF_ERR("Unable to find segment associated with address: {:#x}", address);
return;
}
const uint64_t offset = address - segment_topatch->virtual_address();
- span<uint8_t> content = segment_topatch->writable_content();
+ span<uint8_t> content = segment_topatch->content();
if (offset > content.size() || (offset + size) > content.size()) {
- LIEF_ERR("The patch value ({} bytes @0x{:x}) is out of bounds of the segment (limit: 0x{:x})",
+ LIEF_ERR("Patch value ({} bytes @{:#x}) out of segment bounds (limit: {:#x})",
size, offset, content.size());
return;
}
switch (size) {
case sizeof(uint8_t):
- {
- auto X = static_cast<uint8_t>(patch_value);
- memcpy(content.data() + offset, &X, sizeof(uint8_t));
- break;
- }
+ {
+ auto X = static_cast<uint8_t>(patch_value);
+ memcpy(content.data() + offset, &X, sizeof(uint8_t));
+ break;
+ }
case sizeof(uint16_t):
- {
- auto X = static_cast<uint16_t>(patch_value);
- memcpy(content.data() + offset, &X, sizeof(uint16_t));
- break;
- }
+ {
+ auto X = static_cast<uint16_t>(patch_value);
+ memcpy(content.data() + offset, &X, sizeof(uint16_t));
+ break;
+ }
case sizeof(uint32_t):
- {
- auto X = static_cast<uint32_t>(patch_value);
- memcpy(content.data() + offset, &X, sizeof(uint32_t));
- break;
- }
+ {
+ auto X = static_cast<uint32_t>(patch_value);
+ memcpy(content.data() + offset, &X, sizeof(uint32_t));
+ break;
+ }
case sizeof(uint64_t):
- {
- auto X = static_cast<uint64_t>(patch_value);
- memcpy(content.data() + offset, &X, sizeof(uint64_t));
- break;
- }
+ {
+ auto X = static_cast<uint64_t>(patch_value);
+ memcpy(content.data() + offset, &X, sizeof(uint64_t));
+ break;
+ }
default:
- {
- LIEF_ERR("The provided size ({}) does not match the size of an integer", size);
- return;
- }
+ {
+ LIEF_ERR("Provided size ({}) does not match integer size", size);
+ return;
+ }
}
}
-span<const uint8_t> Binary::get_content_from_virtual_address(
- uint64_t virtual_address, uint64_t size, LIEF::Binary::VA_TYPES) const
-{
+span<const uint8_t>
+ Binary::get_content_from_virtual_address(uint64_t virtual_address,
+ uint64_t size,
+ LIEF::Binary::VA_TYPES) const {
const SegmentCommand* segment = segment_from_virtual_address(virtual_address);
if (segment == nullptr) {
- LIEF_ERR("Unable to find segment associated with address: 0x{:x}", virtual_address);
+ LIEF_ERR("Unable to find segment associated with address: {:#x}",
+ virtual_address);
return {};
}
@@ -208,18 +209,15 @@ uint64_t Binary::entrypoint() const {
return imagebase() + cmd->pc();
}
- LIEF_WARN("Can't find LC_MAIN nor LC_THREAD/LC_UNIXTHREAD");
+ LIEF_WARN("Neither LC_MAIN nor LC_THREAD/LC_UNIXTHREAD found");
return 0;
}
LIEF::Binary::symbols_t Binary::get_abstract_symbols() {
LIEF::Binary::symbols_t syms;
syms.reserve(symbols_.size());
- std::transform(std::begin(symbols_), std::end(symbols_),
- std::back_inserter(syms),
- [] (const std::unique_ptr<Symbol>& s) {
- return s.get();
- });
+ std::transform(symbols_.begin(), symbols_.end(), std::back_inserter(syms),
+ [](const std::unique_ptr<Symbol>& s) { return s.get(); });
return syms;
}
@@ -227,22 +225,20 @@ LIEF::Binary::symbols_t Binary::get_abstract_symbols() {
LIEF::Binary::functions_t Binary::get_abstract_exported_functions() const {
LIEF::Binary::functions_t result;
it_const_exported_symbols syms = exported_symbols();
- std::transform(std::begin(syms), std::end(syms), std::back_inserter(result),
- [] (const Symbol& s) {
- return Function(s.name(), s.value(), Function::FLAGS::EXPORTED);
- }
- );
+ std::transform(syms.begin(), syms.end(), std::back_inserter(result),
+ [](const Symbol& s) {
+ return Function(s.name(), s.value(), Function::FLAGS::EXPORTED);
+ });
return result;
}
LIEF::Binary::functions_t Binary::get_abstract_imported_functions() const {
LIEF::Binary::functions_t result;
it_const_imported_symbols syms = imported_symbols();
- std::transform(std::begin(syms), std::end(syms), std::back_inserter(result),
- [] (const Symbol& s) {
- return Function(s.name(), s.value(), Function::FLAGS::IMPORTED);
- }
- );
+ std::transform(syms.begin(), syms.end(), std::back_inserter(result),
+ [](const Symbol& s) {
+ return Function(s.name(), s.value(), Function::FLAGS::IMPORTED);
+ });
return result;
}
@@ -255,48 +251,24 @@ std::vector<std::string> Binary::get_abstract_imported_libraries() const {
return result;
}
-// Relocations
-Binary::it_relocations Binary::relocations() {
- relocations_t result;
- for (SegmentCommand* segment : segments_) {
- std::transform(std::begin(segment->relocations_), std::end(segment->relocations_),
- std::inserter(result, std::begin(result)),
- [] (const std::unique_ptr<Relocation>& r) {
- return r.get();
- });
- }
-
- for (Section* section : sections_) {
- std::transform(std::begin(section->relocations_), std::end(section->relocations_),
- std::inserter(result, std::begin(result)),
- [] (const std::unique_ptr<Relocation>& r) {
- return r.get();
- });
- }
-
- relocations_ = std::move(result);
- return relocations_;
-}
-
Binary::it_const_relocations Binary::relocations() const {
relocations_t result;
for (const SegmentCommand* segment : segments_) {
- std::transform(std::begin(segment->relocations_), std::end(segment->relocations_),
- std::inserter(result, std::begin(result)),
- [] (const std::unique_ptr<Relocation>& r) {
- return r.get();
- });
+ std::transform(segment->relocations_.begin(), segment->relocations_.end(),
+ std::inserter(result, result.begin()),
+ [](const std::unique_ptr<Relocation>& r) { return r.get(); });
}
for (const Section* section : sections_) {
- std::transform(std::begin(section->relocations_), std::end(section->relocations_),
- std::inserter(result, std::begin(result)),
- [] (const std::unique_ptr<Relocation>& r) {
- return r.get();
- });
+ std::transform(section->relocations_.begin(), section->relocations_.end(),
+ std::inserter(result, result.begin()),
+ [](const std::unique_ptr<Relocation>& r) { return r.get(); });
}
- relocations_ = std::move(result);
+ {
+ std::scoped_lock lock(mu_);
+ relocations_ = std::move(result);
+ }
return relocations_;
}
@@ -327,13 +299,12 @@ bool Binary::is_imported(const Symbol& symbol) {
}
const Symbol* Binary::get_symbol(const std::string& name) const {
- const auto it_symbol = std::find_if(
- std::begin(symbols_), std::end(symbols_),
- [&name] (const std::unique_ptr<Symbol>& sym) {
- return sym->name() == name;
- });
+ const auto it_symbol = std::find_if(symbols_.begin(), symbols_.end(),
+ [&name](const std::unique_ptr<Symbol>& sym) {
+ return sym->name() == name;
+ });
- if (it_symbol == std::end(symbols_)) {
+ if (it_symbol == symbols_.end()) {
return nullptr;
}
@@ -357,12 +328,12 @@ void Binary::write(std::ostream& os, Builder::config_t config) {
}
const Section* Binary::section_from_offset(uint64_t offset) const {
- const auto it_section = std::find_if(
- sections_.cbegin(), sections_.cend(),
- [offset] (const Section* section) {
- return section->offset() <= offset &&
- offset < (section->offset() + section->size());
- });
+ const auto it_section =
+ std::find_if(sections_.cbegin(), sections_.cend(),
+ [offset](const Section* section) {
+ return section->offset() <= offset &&
+ offset < (section->offset() + section->size());
+ });
if (it_section == sections_.cend()) {
return nullptr;
@@ -373,28 +344,30 @@ const Section* Binary::section_from_offset(uint64_t offset) const {
const Section* Binary::section_from_virtual_address(uint64_t address) const {
const auto it_section = std::find_if(
- std::begin(sections_), std::end(sections_),
- [address] (const Section* section) {
+ sections_.begin(), sections_.end(), [address](const Section* section) {
return section->virtual_address() <= address &&
address < (section->virtual_address() + section->size());
- });
+ }
+ );
- if (it_section == std::end(sections_)) {
+ if (it_section == sections_.end()) {
return nullptr;
}
return *it_section;
}
-const SegmentCommand* Binary::segment_from_virtual_address(uint64_t virtual_address) const {
- auto it_segment = std::find_if(
- std::begin(segments_), std::end(segments_),
- [virtual_address] (const SegmentCommand* segment) {
- return segment->virtual_address() <= virtual_address &&
- virtual_address < (segment->virtual_address() + segment->virtual_size());
- });
+const SegmentCommand*
+ Binary::segment_from_virtual_address(uint64_t virtual_address) const {
+ auto it_segment =
+ std::find_if(segments_.begin(), segments_.end(),
+ [virtual_address](const SegmentCommand* segment) {
+ return segment->virtual_address() <= virtual_address &&
+ virtual_address < (segment->virtual_address() +
+ segment->virtual_size());
+ });
- if (it_segment == std::end(segments_)) {
+ if (it_segment == segments_.end()) {
return nullptr;
}
@@ -410,23 +383,27 @@ const SegmentCommand* Binary::segment_from_offset(uint64_t offset) const {
return nullptr;
}
- const auto it_begin = std::begin(offset_seg_);
+ const auto it_begin = offset_seg_.begin();
if (offset < it_begin->first) {
return nullptr;
}
auto it = offset_seg_.lower_bound(offset);
- if (it != std::end(offset_seg_) && (it->first == offset || it == it_begin)) {
+ if (it != offset_seg_.end() && (it->first == offset || it == it_begin)) {
SegmentCommand* seg = it->second;
- if (seg->file_offset() <= offset && offset < (seg->file_offset() + seg->file_size())) {
+ if (seg->file_offset() <= offset &&
+ offset < (seg->file_offset() + seg->file_size()))
+ {
return seg;
}
}
const auto it_end = offset_seg_.crbegin();
- if (it == std::end(offset_seg_) && offset >= it_end->first) {
+ if (it == offset_seg_.end() && offset >= it_end->first) {
SegmentCommand* seg = it_end->second;
- if (seg->file_offset() <= offset && offset < (seg->file_offset() + seg->file_size())) {
+ if (seg->file_offset() <= offset &&
+ offset < (seg->file_offset() + seg->file_size()))
+ {
return seg;
}
}
@@ -439,7 +416,9 @@ const SegmentCommand* Binary::segment_from_offset(uint64_t offset) const {
--it;
SegmentCommand* seg = it->second;
- if (seg->file_offset() <= offset && offset < (seg->file_offset() + seg->file_size())) {
+ if (seg->file_offset() <= offset &&
+ offset < (seg->file_offset() + seg->file_size()))
+ {
return seg;
}
return nullptr;
@@ -448,7 +427,7 @@ const SegmentCommand* Binary::segment_from_offset(uint64_t offset) const {
ok_error_t Binary::shift_linkedit(size_t width) {
SegmentCommand* linkedit = get_segment("__LINKEDIT");
if (linkedit == nullptr) {
- LIEF_INFO("Can't find __LINKEDIT");
+ LIEF_INFO("__LINKEDIT segment not found");
return make_error_code(lief_errors::not_found);
}
const uint64_t lnk_offset = linkedit->file_offset();
@@ -506,7 +485,9 @@ ok_error_t Binary::shift_linkedit(size_t width) {
}
if (lnk_offset <= dyn_cmd->external_reference_symbol_offset()) {
- dyn_cmd->external_reference_symbol_offset(dyn_cmd->external_reference_symbol_offset() + width);
+ dyn_cmd->external_reference_symbol_offset(
+ dyn_cmd->external_reference_symbol_offset() + width
+ );
}
if (lnk_offset <= dyn_cmd->indirect_symbol_offset()) {
@@ -514,7 +495,8 @@ ok_error_t Binary::shift_linkedit(size_t width) {
}
if (lnk_offset <= dyn_cmd->external_relocation_offset()) {
- dyn_cmd->external_relocation_offset(dyn_cmd->external_relocation_offset() + width);
+ dyn_cmd->external_relocation_offset(dyn_cmd->external_relocation_offset() +
+ width);
}
if (lnk_offset <= dyn_cmd->local_relocation_offset()) {
@@ -585,8 +567,8 @@ ok_error_t Binary::shift_linkedit(size_t width) {
}
void Binary::sort_segments() {
- commands_t::iterator start = commands_.end();
- commands_t::iterator end = commands_.end();
+ auto start = commands_.end();
+ auto end = commands_.end();
for (auto it = commands_.begin(); it != commands_.end(); ++it) {
if (start == commands_.end() && SegmentCommand::classof(it->get())) {
@@ -599,20 +581,22 @@ void Binary::sort_segments() {
}
++end;
- bool all_segments = std::all_of(start, end, [] (const std::unique_ptr<LoadCommand>& cmd) {
- return SegmentCommand::classof(cmd.get());
- });
+ bool all_segments =
+ std::all_of(start, end, [](const std::unique_ptr<LoadCommand>& cmd) {
+ return SegmentCommand::classof(cmd.get());
+ });
if (!all_segments) {
- LIEF_ERR("Segment commands non contiguous. Sort aborted!");
+ LIEF_ERR("Non-contiguous segment commands, sort aborted");
return;
}
std::sort(start, end,
- [] (const std::unique_ptr<LoadCommand>& lhs, const std::unique_ptr<LoadCommand>& rhs) {
- return lhs->as<SegmentCommand>()->virtual_address() < rhs->as<SegmentCommand>()->virtual_address();
- }
- );
+ [](const std::unique_ptr<LoadCommand>& lhs,
+ const std::unique_ptr<LoadCommand>& rhs) {
+ return lhs->as<SegmentCommand>()->virtual_address() <
+ rhs->as<SegmentCommand>()->virtual_address();
+ });
segments_.clear();
offset_seg_.clear();
@@ -634,7 +618,8 @@ void Binary::shift_command(size_t width, uint64_t from_offset) {
uint64_t virtual_address = 0;
if (segment != nullptr) {
- virtual_address = segment->virtual_address() + from_offset - segment->file_offset();
+ virtual_address =
+ segment->virtual_address() + from_offset - segment->file_offset();
}
if (const SegmentCommand* text = get_segment("__TEXT")) {
@@ -695,7 +680,7 @@ void Binary::shift_command(size_t width, uint64_t from_offset) {
// Shift Main Command
// ==================
if (MainCommand* main_cmd = main_command()) {
- if ((__text_base_addr + main_cmd->entrypoint()) > virtual_address) {
+ if ((__text_base_addr + main_cmd->entrypoint()) > virtual_address) {
main_cmd->entrypoint(main_cmd->entrypoint() + width);
}
}
@@ -725,7 +710,9 @@ void Binary::shift_command(size_t width, uint64_t from_offset) {
}
if (dyn_cmd->external_reference_symbol_offset() > from_offset) {
- dyn_cmd->external_reference_symbol_offset(dyn_cmd->external_reference_symbol_offset() + width);
+ dyn_cmd->external_reference_symbol_offset(
+ dyn_cmd->external_reference_symbol_offset() + width
+ );
}
if (dyn_cmd->indirect_symbol_offset() > from_offset) {
@@ -733,7 +720,8 @@ void Binary::shift_command(size_t width, uint64_t from_offset) {
}
if (dyn_cmd->external_relocation_offset() > from_offset) {
- dyn_cmd->external_relocation_offset(dyn_cmd->external_relocation_offset() + width);
+ dyn_cmd->external_relocation_offset(dyn_cmd->external_relocation_offset() +
+ width);
}
if (dyn_cmd->local_relocation_offset() > from_offset) {
@@ -773,9 +761,11 @@ void Binary::shift_command(size_t width, uint64_t from_offset) {
for (Relocation& reloc : relocations()) {
if (reloc.address() > virtual_address) {
if (is64_) {
- patch_relocation<uint64_t>(reloc, /* from */ virtual_address, /* shift */ width);
+ patch_relocation<uint64_t>(reloc, /* from */ virtual_address,
+ /* shift */ width);
} else {
- patch_relocation<uint32_t>(reloc, /* from */ virtual_address, /* shift */ width);
+ patch_relocation<uint32_t>(reloc, /* from */ virtual_address,
+ /* shift */ width);
}
reloc.address(reloc.address() + width);
}
@@ -868,6 +858,19 @@ void Binary::shift_command(size_t width, uint64_t from_offset) {
if (func_variants->data_offset() > from_offset) {
func_variants->data_offset(func_variants->data_offset() + width);
}
+ for (FunctionVariants::RuntimeTable& table : func_variants->runtime_table()) {
+ for (FunctionVariants::RuntimeTableEntry& entry : table.entries()) {
+ // impl() is an image-base relative offset (like LC_FUNCTION_STARTS).
+ // When another_table() is set it is an index into the runtime tables,
+ // not an address, and must be left untouched.
+ if (entry.another_table()) {
+ continue;
+ }
+ if ((__text_base_addr + entry.impl()) > virtual_address) {
+ entry.impl(entry.impl() + width);
+ }
+ }
+ }
}
if (FunctionVariantFixups* func_variant_fixups = function_variant_fixups()) {
@@ -876,18 +879,43 @@ void Binary::shift_command(size_t width, uint64_t from_offset) {
}
}
- for_commands<EncryptionInfo>([from_offset, width] (EncryptionInfo& enc) {
+ for (LazyLoadDylibInfo& lazy : lazy_load_dylib_infos()) {
+ if (lazy.data_offset() > from_offset) {
+ lazy.data_offset(lazy.data_offset() + width);
+ }
+
+ if (lazy.chain_start_image_offset() != 0 &&
+ __text_base_addr + lazy.chain_start_image_offset() > virtual_address)
+ {
+ lazy.chain_start_image_offset(lazy.chain_start_image_offset() + width);
+ }
+
+ if (lazy.flag_image_offset() != 0 &&
+ __text_base_addr + lazy.flag_image_offset() > virtual_address)
+ {
+ lazy.flag_image_offset(lazy.flag_image_offset() + width);
+ }
+
+ // NOTE(romain): Updates on Fixup's address are currently NOT committed in
+ // the final binary (c.f. the associated TODO in the builder)
+ for (LazyLoadDylibInfo::Fixup& fixup : lazy.fixups()) {
+ if (fixup.address() > virtual_address) {
+ fixup.address(fixup.address() + width);
+ }
+ }
+ }
+
+ for_commands<EncryptionInfo>([from_offset, width](EncryptionInfo& enc) {
if (enc.crypt_offset() > from_offset) {
enc.crypt_offset(enc.crypt_offset() + width);
}
});
- for_commands<NoteCommand>([from_offset, width] (NoteCommand& note) {
+ for_commands<NoteCommand>([from_offset, width](NoteCommand& note) {
if (note.note_offset() > from_offset) {
note.note_offset(note.note_offset() + width);
}
});
-
}
ok_error_t Binary::shift(size_t value) {
@@ -896,8 +924,8 @@ ok_error_t Binary::shift(size_t value) {
Header& header = this->header();
// Offset of the load commands table
- const uint64_t loadcommands_start = is64_ ? sizeof(details::mach_header_64) :
- sizeof(details::mach_header);
+ const uint64_t loadcommands_start =
+ is64_ ? sizeof(details::mach_header_64) : sizeof(details::mach_header);
// +------------------------+ <---------- __TEXT.start
// | Mach-O Header |
@@ -915,11 +943,12 @@ ok_error_t Binary::shift(size_t value) {
// Segment that wraps this load command table
SegmentCommand* load_cmd_segment = segment_from_offset(loadcommands_end);
if (load_cmd_segment == nullptr) {
- LIEF_ERR("Can't find segment associated with load command space");
+ LIEF_ERR("Segment for load command space not found");
return make_error_code(lief_errors::file_format_error);
}
- LIEF_DEBUG("LC Table wrapped by {} / End offset: 0x{:x} (size: {:x})",
- load_cmd_segment->name(), loadcommands_end, load_cmd_segment->data_.size());
+ LIEF_DEBUG("LC Table wrapped by {} / End offset: {:#x} (size: {:x})",
+ load_cmd_segment->name(), loadcommands_end,
+ load_cmd_segment->data_.size());
load_cmd_segment->content_insert(loadcommands_end, value);
// 1. Shift all commands
@@ -931,10 +960,11 @@ ok_error_t Binary::shift(size_t value) {
}
shift_command(value, loadcommands_end);
- const uint64_t loadcommands_end_va = loadcommands_end + load_cmd_segment->virtual_address();
+ const uint64_t loadcommands_end_va =
+ loadcommands_end + load_cmd_segment->virtual_address();
- LIEF_DEBUG("loadcommands_end: 0x{:016x}", loadcommands_end);
- LIEF_DEBUG("loadcommands_end_va: 0x{:016x}", loadcommands_end_va);
+ LIEF_DEBUG("loadcommands_end: {:#018x}", loadcommands_end);
+ LIEF_DEBUG("loadcommands_end_va: {:#018x}", loadcommands_end_va);
// Shift Segment and sections
// ==========================
@@ -983,7 +1013,8 @@ LoadCommand* Binary::add(std::unique_ptr<LoadCommand> command) {
// Check there is enough space between the
// load command table and the raw content
if (auto result = ensure_command_space(size_aligned); is_err(result)) {
- LIEF_ERR("Failed to ensure command space {}: {}", size_aligned, to_string(get_error(result)));
+ LIEF_ERR("Failed to ensure command space {}: {}", size_aligned,
+ to_string(get_error(result)));
return nullptr;
}
available_command_space_ -= size_aligned;
@@ -991,8 +1022,8 @@ LoadCommand* Binary::add(std::unique_ptr<LoadCommand> command) {
Header& header = this->header();
// Get border of the load command table
- const uint64_t loadcommands_start = is64_ ? sizeof(details::mach_header_64) :
- sizeof(details::mach_header);
+ const uint64_t loadcommands_start =
+ is64_ ? sizeof(details::mach_header_64) : sizeof(details::mach_header);
const uint64_t loadcommands_end = loadcommands_start + header.sizeof_cmds();
// Update the Header according to the command that will be added
@@ -1002,16 +1033,16 @@ LoadCommand* Binary::add(std::unique_ptr<LoadCommand> command) {
// Get the segment handling the LC table
SegmentCommand* load_cmd_segment = segment_from_offset(loadcommands_end);
if (load_cmd_segment == nullptr) {
- LIEF_WARN("Can't get the last load command");
+ LIEF_WARN("Failed to get last load command");
return nullptr;
}
span<const uint8_t> content_ref = load_cmd_segment->content();
- std::vector<uint8_t> content = {std::begin(content_ref), std::end(content_ref)};
+ std::vector<uint8_t> content = {content_ref.begin(), content_ref.end()};
// Copy the command data
- std::copy(std::begin(command->data()), std::end(command->data()),
- std::begin(content) + loadcommands_end);
+ std::copy(command->data().begin(), command->data().end(),
+ content.begin() + loadcommands_end);
load_cmd_segment->content(std::move(content));
@@ -1024,26 +1055,29 @@ LoadCommand* Binary::add(std::unique_ptr<LoadCommand> command) {
libraries_.push_back(command->as<DylibCommand>());
}
+ if (LazyLoadDylibInfo::classof(command.get())) {
+ lazy_load_dylib_infos_.push_back(command->as<LazyLoadDylibInfo>());
+ }
+
if (SegmentCommand::classof(command.get())) {
add_cached_segment(*command->as<SegmentCommand>());
}
- LoadCommand* ptr = command.get();
- commands_.push_back(std::move(command));
- return ptr;
+ return commands_.emplace_back(std::move(command)).get();
}
LoadCommand* Binary::add(const LoadCommand& command, size_t index) {
- // If index is "too" large <=> push_back
+ // An out-of-bounds index is interpreted as a push_back
if (index >= commands_.size()) {
return add(command);
}
const size_t size_aligned = align(command.size(), pointer_size());
- LIEF_DEBUG("available_command_space_: 0x{:06x} (required: 0x{:06x})",
+ LIEF_DEBUG("available_command_space_: {:#08x} (required: {:#08x})",
available_command_space_, size_aligned);
if (auto result = ensure_command_space(size_aligned); is_err(result)) {
- LIEF_ERR("Failed to ensure command space {}: {}", size_aligned, to_string(get_error(result)));
+ LIEF_ERR("Failed to ensure command space {}: {}", size_aligned,
+ to_string(get_error(result)));
return nullptr;
}
available_command_space_ -= size_aligned;
@@ -1072,23 +1106,25 @@ LoadCommand* Binary::add(const LoadCommand& command, size_t index) {
libraries_.push_back(lib);
}
+ if (auto* lazy = copy->cast<LazyLoadDylibInfo>()) {
+ lazy_load_dylib_infos_.push_back(lazy);
+ }
+
if (auto* segment = copy->cast<SegmentCommand>()) {
add_cached_segment(*segment);
}
- LoadCommand* copy_ptr = copy.get();
- commands_.insert(std::begin(commands_) + index, std::move(copy));
- return copy_ptr;
+ return commands_.insert(commands_.begin() + index, std::move(copy))->get();
}
bool Binary::remove(const LoadCommand& command) {
- const auto it = std::find_if(
- std::begin(commands_), std::end(commands_),
- [&command] (const std::unique_ptr<LoadCommand>& cmd) {
- return *cmd == command;
- });
+ const auto it =
+ std::find_if(commands_.begin(), commands_.end(),
+ [&command](const std::unique_ptr<LoadCommand>& cmd) {
+ return *cmd == command;
+ });
- if (it == std::end(commands_)) {
+ if (it == commands_.end()) {
LIEF_ERR("Unable to find command: {}", to_string(command));
return false;
}
@@ -1096,21 +1132,31 @@ bool Binary::remove(const LoadCommand& command) {
LoadCommand* cmd_rm = it->get();
if (auto* lib = cmd_rm->cast<DylibCommand>()) {
- auto it_cache = std::find(std::begin(libraries_), std::end(libraries_), cmd_rm);
- if (it_cache == std::end(libraries_)) {
- LIEF_WARN("Library {} not found in cache. The binary object is likely in an inconsistent state", lib->name());
+ auto it_cache = std::find(libraries_.begin(), libraries_.end(), cmd_rm);
+ if (it_cache == libraries_.end()) {
+ LIEF_WARN("Library {} not found in cache; binary may be inconsistent",
+ lib->name());
} else {
libraries_.erase(it_cache);
}
}
+ if (cmd_rm->cast<LazyLoadDylibInfo>() != nullptr) {
+ auto it_cache = std::find(lazy_load_dylib_infos_.begin(),
+ lazy_load_dylib_infos_.end(), cmd_rm);
+ if (it_cache != lazy_load_dylib_infos_.end()) {
+ lazy_load_dylib_infos_.erase(it_cache);
+ }
+ }
+
if (const auto* seg = cmd_rm->cast<const SegmentCommand>()) {
- auto it_cache = std::find(std::begin(segments_), std::end(segments_), cmd_rm);
- if (it_cache == std::end(segments_)) {
- LIEF_WARN("Segment {} not found in cache. The binary object is likely in an inconsistent state", seg->name());
+ auto it_cache = std::find(segments_.begin(), segments_.end(), cmd_rm);
+ if (it_cache == segments_.end()) {
+ LIEF_WARN("Segment {} not found in cache; binary may be inconsistent",
+ seg->name());
} else {
// Update the indexes to keep a consistent state
- for (auto it = it_cache; it != std::end(segments_); ++it) {
+ for (auto it = it_cache; it != segments_.end(); ++it) {
(*it)->index_--;
}
segments_.erase(it_cache);
@@ -1153,35 +1199,33 @@ bool Binary::remove_command(size_t index) {
}
bool Binary::has(LoadCommand::TYPE type) const {
- const auto it = std::find_if(
- std::begin(commands_), std::end(commands_),
- [type] (const std::unique_ptr<LoadCommand>& cmd) {
- return cmd->command() == type;
- });
- return it != std::end(commands_);
+ const auto it = std::find_if(commands_.begin(), commands_.end(),
+ [type](const std::unique_ptr<LoadCommand>& cmd) {
+ return cmd->command() == type;
+ });
+ return it != commands_.end();
}
const LoadCommand* Binary::get(LoadCommand::TYPE type) const {
- const auto it = std::find_if(
- std::begin(commands_), std::end(commands_),
- [type] (const std::unique_ptr<LoadCommand>& cmd) {
- return cmd->command() == type;
- });
+ const auto it = std::find_if(commands_.begin(), commands_.end(),
+ [type](const std::unique_ptr<LoadCommand>& cmd) {
+ return cmd->command() == type;
+ });
- if (it == std::end(commands_)) {
+ if (it == commands_.end()) {
return nullptr;
}
return it->get();
}
bool Binary::extend(const LoadCommand& command, uint64_t size) {
- const auto it = std::find_if(
- std::begin(commands_), std::end(commands_),
- [&command] (const std::unique_ptr<LoadCommand>& cmd) {
- return *cmd == command;
- });
+ const auto it =
+ std::find_if(commands_.begin(), commands_.end(),
+ [&command](const std::unique_ptr<LoadCommand>& cmd) {
+ return *cmd == command;
+ });
- if (it == std::end(commands_)) {
+ if (it == commands_.end()) {
LIEF_ERR("Unable to find command: {}", to_string(command));
return false;
}
@@ -1189,7 +1233,8 @@ bool Binary::extend(const LoadCommand& command, uint64_t size) {
LoadCommand* cmd = it->get();
const size_t size_aligned = align(size, pointer_size());
if (auto result = ensure_command_space(size_aligned); is_err(result)) {
- LIEF_ERR("Failed to ensure command space {}: {}", size_aligned, to_string(get_error(result)));
+ LIEF_ERR("Failed to ensure command space {}: {}", size_aligned,
+ to_string(get_error(result)));
return false;
}
available_command_space_ -= size_aligned;
@@ -1214,20 +1259,20 @@ bool Binary::extend(const LoadCommand& command, uint64_t size) {
bool Binary::extend_segment(const SegmentCommand& segment, size_t size) {
- const auto it_segment = std::find_if(
- std::begin(segments_), std::end(segments_),
- [&segment] (const SegmentCommand* s) {
- return segment == *s;
- });
+ const auto it_segment =
+ std::find_if(segments_.begin(), segments_.end(),
+ [&segment](const SegmentCommand* s) { return segment == *s; });
- if (it_segment == std::end(segments_)) {
+ if (it_segment == segments_.end()) {
LIEF_ERR("Unable to find segment: '{}'", segment.name());
return false;
}
SegmentCommand* target_segment = *it_segment;
- const uint64_t last_offset = target_segment->file_offset() + target_segment->file_size();
- const uint64_t last_va = target_segment->virtual_address() + target_segment->virtual_size();
+ const uint64_t last_offset =
+ target_segment->file_offset() + target_segment->file_size();
+ const uint64_t last_va =
+ target_segment->virtual_address() + target_segment->virtual_size();
const int32_t size_aligned = align(size, pointer_size());
@@ -1265,41 +1310,46 @@ bool Binary::extend_section(Section& section, size_t size) {
// All sections must keep their requested alignment.
//
// As per current implementation of `shift` method, space is allocated between
- // the last load command and the first section by shifting everything to the "right".
- // After that we shift `section` and all other sections that come before it to the "left",
- // so that we create a gap of at least `size` wide after the current `section`.
- // Finally, we assign new size to the `section`.
+ // the last load command and the first section by shifting everything to the
+ // "right". After that we shift `section` and all other sections that come before
+ // it to the "left", so that we create a gap of at least `size` wide after the
+ // current `section`. Finally, we assign new size to the `section`.
//
// Let's say we are extending section S.
- // There might be sections P that come prior S, and there might be sections A that come after S.
- // We try to keep relative relationships between sections in groups P and A,
- // such that relative offsets from one section to another one are unchanged,
- // however preserving the same relationship between sections from different groups is impossible.
- // We achieve this by shifting P and S to the left by size rounded up to the maximum common alignment factor.
-
- const uint64_t loadcommands_start = is64_ ? sizeof(details::mach_header_64) :
- sizeof(details::mach_header);
+ // There might be sections P that come prior S, and there might be sections A
+ // that come after S. We try to keep relative relationships between sections in
+ // groups P and A, such that relative offsets from one section to another one are
+ // unchanged, however preserving the same relationship between sections from
+ // different groups is impossible. We achieve this by shifting P and S to the
+ // left by size rounded up to the maximum common alignment factor.
+
+ const uint64_t loadcommands_start =
+ is64_ ? sizeof(details::mach_header_64) : sizeof(details::mach_header);
const uint64_t loadcommands_end = loadcommands_start + header().sizeof_cmds();
SegmentCommand* load_cmd_segment = segment_from_offset(loadcommands_end);
if (load_cmd_segment == nullptr) {
- LIEF_ERR("Can't find segment associated with load command space");
+ LIEF_ERR("Segment for load command space not found");
return false;
}
if (section.segment() != load_cmd_segment) {
- LIEF_ERR("Can't extend section that belongs to segment '{}' which is not the first one", section.segment_name());
+ LIEF_ERR("Cannot extend section in non-first segment '{}'",
+ section.segment_name());
return false;
}
- // Note: if we are extending an empty section, then there may be many zero-sized sections at
- // this offset `section.offset()`, and one non-empty section.
+ // Note: if we are extending an empty section, then there may be many zero-sized
+ // sections at this offset `section.offset()`, and one non-empty section.
// Select sections that we need to shift to the left.
// Sections that come after the current one are not considered for shifting.
- // Note: we compare sections by end_offset to exclude non-empty section that starts at the current offset.
+ // Note: we compare sections by end_offset to exclude non-empty section that
+ // starts at the current offset.
sections_cache_t sections_to_shift;
for (Section& s : sections()) {
- if (s.offset() == 0 || s.offset() + s.size() > section.offset() + section.size()) {
+ if (s.offset() == 0 ||
+ s.offset() + s.size() > section.offset() + section.size())
+ {
continue;
}
sections_to_shift.push_back(&s);
@@ -1308,24 +1358,29 @@ bool Binary::extend_section(Section& section, size_t size) {
// Stable-sort by offset in ascending order as well as preserving original order.
std::stable_sort(sections_to_shift.begin(), sections_to_shift.end(),
- [](const Section* a, const Section* b) { return a->offset() < b->offset(); });
+ [](const Section* a, const Section* b) {
+ return a->offset() < b->offset();
+ });
// We do not want to shift empty sections that were added after the current one.
- auto it = std::find(sections_to_shift.begin(), sections_to_shift.end(), §ion);
+ auto it =
+ std::find(sections_to_shift.begin(), sections_to_shift.end(), §ion);
assert(it != sections_to_shift.end());
sections_to_shift.erase(std::next(it), sections_to_shift.end());
// Find maximum alignment
- auto it_maxa = std::max_element(sections_to_shift.begin(), sections_to_shift.end(),
- [](const Section* a, const Section* b) {
- return a->alignment() < b->alignment();
- });
+ auto it_maxa =
+ std::max_element(sections_to_shift.begin(), sections_to_shift.end(),
+ [](const Section* a, const Section* b) {
+ return a->alignment() < b->alignment();
+ });
const size_t max_alignment = 1 << (*it_maxa)->alignment();
// Resize command space, if needed.
const size_t shift_value = align(size, max_alignment);
if (auto result = ensure_command_space(shift_value); is_err(result)) {
- LIEF_ERR("Failed to ensure command space {}: {}", shift_value, to_string(get_error(result)));
+ LIEF_ERR("Failed to ensure command space {}: {}", shift_value,
+ to_string(get_error(result)));
return false;
}
available_command_space_ -= shift_value;
@@ -1345,12 +1400,12 @@ bool Binary::extend_section(Section& section, size_t size) {
void Binary::remove_section(const std::string& name, bool clear) {
Section* sec_to_delete = get_section(name);
if (sec_to_delete == nullptr) {
- LIEF_ERR("Can't find section '{}'", name);
+ LIEF_ERR("Section '{}' not found", name);
return;
}
SegmentCommand* segment = sec_to_delete->segment();
if (segment == nullptr) {
- LIEF_ERR("The section {} is in an inconsistent state (missing segment). Can't remove it",
+ LIEF_ERR("Section {} has no associated segment, cannot remove",
sec_to_delete->name());
return;
}
@@ -1358,15 +1413,16 @@ void Binary::remove_section(const std::string& name, bool clear) {
remove_section(segment->name(), name, clear);
}
-void Binary::remove_section(const std::string& segname, const std::string& secname, bool clear) {
+void Binary::remove_section(const std::string& segname, const std::string& secname,
+ bool clear) {
Section* sec_to_delete = get_section(segname, secname);
if (sec_to_delete == nullptr) {
- LIEF_ERR("Can't find section '{}' in segment '{}'", secname, segname);
+ LIEF_ERR("Section '{}' not found in segment '{}'", secname, segname);
return;
}
SegmentCommand* segment = sec_to_delete->segment();
if (segment == nullptr) {
- LIEF_ERR("The section {} is in an inconsistent state (missing segment). Can't remove it",
+ LIEF_ERR("Section {} has no associated segment, cannot remove",
sec_to_delete->name());
return;
}
@@ -1376,20 +1432,20 @@ void Binary::remove_section(const std::string& segname, const std::string& secna
}
segment->numberof_sections(segment->numberof_sections() - 1);
- auto it_section = std::find_if(
- std::begin(segment->sections_), std::end(segment->sections_),
- [sec_to_delete] (const std::unique_ptr<Section>& s) {
- return *s == *sec_to_delete;
- });
+ auto it_section =
+ std::find_if(segment->sections_.begin(), segment->sections_.end(),
+ [sec_to_delete](const std::unique_ptr<Section>& s) {
+ return *s == *sec_to_delete;
+ });
- if (it_section == std::end(segment->sections_)) {
- LIEF_WARN("Can't find the section");
+ if (it_section == segment->sections_.end()) {
+ LIEF_WARN("Section not found");
return;
}
const size_t lc_offset = segment->command_offset();
- const size_t section_struct_size = is64_ ? sizeof(details::section_64) :
- sizeof(details::section_32);
+ const size_t section_struct_size =
+ is64_ ? sizeof(details::section_64) : sizeof(details::section_32);
segment->size_ -= section_struct_size;
header().sizeof_cmds(header().sizeof_cmds() - section_struct_size);
@@ -1404,13 +1460,13 @@ void Binary::remove_section(const std::string& segname, const std::string& secna
std::unique_ptr<Section>& section = *it_section;
// Remove from cache
- auto it_cache = std::find_if(std::begin(sections_), std::end(sections_),
- [§ion] (const Section* sec) {
- return section.get() == sec;
- });
+ auto it_cache = std::find_if(sections_.begin(), sections_.end(),
+ [§ion](const Section* sec) {
+ return section.get() == sec;
+ });
- if (it_cache == std::end(sections_)) {
- LIEF_WARN("Can find the section {} in the cache. The binary object is likely in an inconsistent state",
+ if (it_cache == sections_.end()) {
+ LIEF_WARN("Section {} not found in cache; binary may be inconsistent",
section->name());
} else {
sections_.erase(it_cache);
@@ -1422,52 +1478,53 @@ void Binary::remove_section(const std::string& segname, const std::string& secna
Section* Binary::add_section(const Section& section) {
SegmentCommand* _TEXT_segment = get_segment("__TEXT");
if (_TEXT_segment == nullptr) {
- LIEF_ERR("Unable to get '__TEXT' segment");
+ LIEF_ERR("__TEXT segment not found");
return nullptr;
}
return add_section(*_TEXT_segment, section);
}
-Section* Binary::add_section(const SegmentCommand& segment, const Section& section) {
+Section* Binary::add_section(const SegmentCommand& segment,
+ const Section& section) {
- const auto it_segment = std::find_if(
- std::begin(segments_), std::end(segments_),
- [&segment] (const SegmentCommand* s) {
- return segment == *s;
- });
+ const auto it_segment =
+ std::find_if(segments_.begin(), segments_.end(),
+ [&segment](const SegmentCommand* s) { return segment == *s; });
- if (it_segment == std::end(segments_)) {
+ if (it_segment == segments_.end()) {
LIEF_ERR("Unable to find segment: '{}'", segment.name());
return nullptr;
}
SegmentCommand* target_segment = *it_segment;
span<const uint8_t> content_ref = section.content();
- Section::content_t content = {std::begin(content_ref), std::end(content_ref)};
+ Section::content_t content = {content_ref.begin(), content_ref.end()};
- auto new_section = std::make_unique<Section>(section);
+ auto new_section = section.clone();
if (section.offset() == 0) {
- // Section offset is not defined: we need to allocate space enough to fit its content.
- const size_t hdr_size = is64_ ? sizeof(details::section_64) :
- sizeof(details::section_32);
+ // Section offset is not defined: we need to allocate space enough to fit its
+ // content.
+ const size_t hdr_size =
+ is64_ ? sizeof(details::section_64) : sizeof(details::section_32);
const size_t alignment = 1 << section.alignment();
const size_t needed_size = hdr_size + content.size() + alignment;
// Request size with a gap of alignment, so we would have enough room
// to adjust section's offset to satisfy its alignment requirements.
if (auto result = ensure_command_space(needed_size); is_err(result)) {
- LIEF_ERR("Failed to ensure command space {}: {}", needed_size, to_string(get_error(result)));
+ LIEF_ERR("Failed to ensure command space {}: {}", needed_size,
+ to_string(get_error(result)));
return nullptr;
}
if (!extend(*target_segment, hdr_size)) { // adjusts available_command_space_
- LIEF_ERR("Unable to extend segment '{}' by 0x{:x}", segment.name(), hdr_size);
+ LIEF_ERR("Unable to extend segment '{}' by {:#x}", segment.name(), hdr_size);
return nullptr;
}
- const uint64_t loadcommands_start = is64_ ? sizeof(details::mach_header_64) :
- sizeof(details::mach_header);
+ const uint64_t loadcommands_start =
+ is64_ ? sizeof(details::mach_header_64) : sizeof(details::mach_header);
const uint64_t loadcommands_end = loadcommands_start + header().sizeof_cmds();
// let new_offset supposedly point to the contents of the first section
@@ -1488,7 +1545,8 @@ Section* Binary::add_section(const SegmentCommand& segment, const Section& secti
}
if (section.virtual_address() == 0) {
- new_section->virtual_address(target_segment->virtual_address() + new_section->offset());
+ new_section->virtual_address(target_segment->virtual_address() +
+ new_section->offset());
}
new_section->segment_ = target_segment;
@@ -1498,10 +1556,11 @@ Section* Binary::add_section(const SegmentCommand& segment, const Section& secti
sections_.push_back(new_section.get());
// Copy data to segment
- const uint64_t relative_offset = new_section->offset() - target_segment->file_offset();
+ const uint64_t relative_offset =
+ new_section->offset() - target_segment->file_offset();
- std::move(std::begin(content), std::end(content),
- std::begin(target_segment->data_) + relative_offset);
+ std::move(content.begin(), content.end(),
+ target_segment->data_.begin() + relative_offset);
target_segment->sections_.push_back(std::move(new_section));
return target_segment->sections_.back().get();
@@ -1516,39 +1575,42 @@ LoadCommand* Binary::add(const SegmentCommand& segment) {
* which must include the sections
* 2. Allocate space for the content of the provided segment
*
- * For #1, the logic is to shift all the content after the end of the load command table.
- * This modification is described in doc/sphinx/tutorials/11_macho_modification.rst.
+ * For #1, the logic is to shift all the content after the end of the load
+ * command table. This modification is described in
+ * doc/sphinx/tutorials/11_macho_modification.rst.
*
- * For #2, the easiest way is to place the content at the end of the Mach-O file and
- * to make the LC_SEGMENT point to this area. It works as expected as long as
+ * For #2, the easiest way is to place the content at the end of the Mach-O file
+ * and to make the LC_SEGMENT point to this area. It works as expected as long as
* the binary does not need to be signed.
*
* If the binary has to be signed, codesign and the underlying Apple libraries
* enforce that there is not data after the __LINKEDIT segment, otherwise we get
* this kind of error: "main executable failed strict validation".
- * To comply with this check, we can shift the __LINKEDIT segment (c.f. ``shift_linkedit(...)``)
- * such as the data of the new segment are located before __LINKEDIT.
- * Nevertheless, we can't shift __LINKEDIT by an arbitrary value. For ARM and ARM64,
- * ld/dyld enforces a segment alignment of "4 * 4096" as coded in ``Options::reconfigureDefaults``
- * of ``ld64-609/src/ld/Option.cpp``:
+ * To comply with this check, we can shift the __LINKEDIT segment (c.f.
+ * ``shift_linkedit(...)``) such as the data of the new segment are located
+ * before __LINKEDIT. Nevertheless, we can't shift __LINKEDIT by an arbitrary
+ * value. For ARM and ARM64, ld/dyld enforces a segment alignment of "4 * 4096"
+ * as coded in ``Options::reconfigureDefaults`` of
+ * ``ld64-609/src/ld/Option.cpp``:
*
* ```cpp
* ...
- * <rdar://problem/13070042> Only third party apps should have 16KB page segments by default
- * if (fEncryptable) {
- * if (fSegmentAlignment == 4096)
+ * <rdar://problem/13070042> Only third party apps should have 16KB page segments
+ * by default if (fEncryptable) { if (fSegmentAlignment == 4096)
* fSegmentAlignment = 4096*4;
* }
*
* // <rdar://problem/12258065> ARM64 needs 16KB page size for user land code
- * // <rdar://problem/15974532> make armv7[s] use 16KB pages in user land code for iOS 8 or later
- * if (fArchitecture == CPU_TYPE_ARM64 || (fArchitecture == CPU_TYPE_ARM) ) {
- * fSegmentAlignment = 4096*4;
+ * // <rdar://problem/15974532> make armv7[s] use 16KB pages in user land code
+ * for iOS 8 or later if (fArchitecture == CPU_TYPE_ARM64 || (fArchitecture ==
+ * CPU_TYPE_ARM) ) { fSegmentAlignment = 4096*4;
* }
* ```
- * Therefore, we must shift __LINKEDIT by at least 4 * 0x1000 for Mach-O files targeting ARM
+ * Therefore, we must shift __LINKEDIT by at least 4 * 0x1000 for Mach-O files
+ * targeting ARM
*/
- LIEF_DEBUG("Adding the new segment '{}' ({} bytes)", segment.name(), segment.content().size());
+ LIEF_DEBUG("Adding the new segment '{}' ({} bytes)", segment.name(),
+ segment.content().size());
const uint32_t alignment = page_size();
const uint64_t new_fsize = align(segment.content().size(), alignment);
SegmentCommand new_segment = segment;
@@ -1582,34 +1644,36 @@ LoadCommand* Binary::add(const SegmentCommand& segment) {
LIEF_DEBUG(" -> sizeof(LC_SEGMENT): {}", new_segment.size());
// Insert the segment before __LINKEDIT
- const auto it_linkedit = std::find_if(std::begin(commands_), std::end(commands_),
- [] (const std::unique_ptr<LoadCommand>& cmd) {
- if (!SegmentCommand::classof(cmd.get())) {
- return false;
- }
- return cmd->as<SegmentCommand>()->name() == "__LINKEDIT";
- });
+ const auto it_linkedit =
+ std::find_if(commands_.begin(), commands_.end(),
+ [](const std::unique_ptr<LoadCommand>& cmd) {
+ if (!SegmentCommand::classof(cmd.get())) {
+ return false;
+ }
+ return cmd->as<SegmentCommand>()->name() == "__LINKEDIT";
+ });
- const bool has_linkedit = it_linkedit != std::end(commands_);
+ const bool has_linkedit = it_linkedit != commands_.end();
- size_t pos = std::distance(std::begin(commands_), it_linkedit);
+ size_t pos = std::distance(commands_.begin(), it_linkedit);
LIEF_DEBUG(" -> index: {}", pos);
auto* new_cmd = add(new_segment, pos);
if (new_cmd == nullptr) {
- LIEF_WARN("Fail to insert new '{}' segment", segment.name());
+ LIEF_WARN("Failed to insert segment '{}'", segment.name());
return nullptr;
}
auto* segment_added = new_cmd->as<SegmentCommand>();
if (!has_linkedit) {
- /* If there are not __LINKEDIT segment we can point the Segment's content to the EOF
- * NOTE(romain): I don't know if a binary without a __LINKEDIT segment exists
+ /* If there are not __LINKEDIT segment we can point the Segment's content to
+ * the EOF NOTE(romain): I don't know if a binary without a __LINKEDIT segment
+ * exists
*/
- range_t new_va_ranges = this->va_ranges();
+ range_t new_va_ranges = this->va_ranges();
range_t new_off_ranges = off_ranges();
if (segment.virtual_address() == 0 && segment_added->virtual_size() != 0) {
const uint64_t new_va = align(new_va_ranges.end, alignment);
@@ -1635,17 +1699,17 @@ LoadCommand* Binary::add(const SegmentCommand& segment) {
}
uint64_t lnk_offset = 0;
- uint64_t lnk_va = 0;
+ uint64_t lnk_va = 0;
if (const SegmentCommand* lnk = get_segment("__LINKEDIT")) {
lnk_offset = lnk->file_offset();
- lnk_va = lnk->virtual_address();
+ lnk_va = lnk->virtual_address();
}
// Make space for the content of the new segment
shift_linkedit(new_fsize);
- LIEF_DEBUG(" -> offset : 0x{:06x}", lnk_offset);
- LIEF_DEBUG(" -> virtual address: 0x{:06x}", lnk_va);
+ LIEF_DEBUG(" -> offset : {:#08x}", lnk_offset);
+ LIEF_DEBUG(" -> virtual address: {:#08x}", lnk_va);
segment_added->virtual_address(lnk_va);
segment_added->virtual_size(segment_added->virtual_size());
@@ -1664,7 +1728,9 @@ LoadCommand* Binary::add(const SegmentCommand& segment) {
if (DyldChainedFixups* fixup = dyld_chained_fixups()) {
DyldChainedFixups::chained_starts_in_segment new_info =
- DyldChainedFixups::chained_starts_in_segment::create_empty_chained(*segment_added);
+ DyldChainedFixups::chained_starts_in_segment::create_empty_chained(
+ *segment_added
+ );
fixup->add(std::move(new_info));
}
@@ -1673,19 +1739,21 @@ LoadCommand* Binary::add(const SegmentCommand& segment) {
}
size_t Binary::add_cached_segment(SegmentCommand& segment) {
- // The new segement should be put **before** the __LINKEDIT segment
- const auto it_linkedit = std::find_if(std::begin(segments_), std::end(segments_),
- [] (SegmentCommand* cmd) { return cmd->name() == "__LINKEDIT"; });
+ // The new segment should be put **before** the __LINKEDIT segment
+ const auto it_linkedit =
+ std::find_if(segments_.begin(), segments_.end(), [](SegmentCommand* cmd) {
+ return cmd->name() == "__LINKEDIT";
+ });
- if (it_linkedit == std::end(segments_)) {
- LIEF_DEBUG("No __LINKEDIT segment found!");
+ if (it_linkedit == segments_.end()) {
+ LIEF_DEBUG("No __LINKEDIT segment found");
segment.index_ = segments_.size();
segments_.push_back(&segment);
} else {
segment.index_ = (*it_linkedit)->index();
// Update indexes
- for (auto it = it_linkedit; it != std::end(segments_); ++it) {
+ for (auto it = it_linkedit; it != segments_.end(); ++it) {
(*it)->index_++;
}
segments_.insert(it_linkedit, &segment);
@@ -1694,7 +1762,7 @@ size_t Binary::add_cached_segment(SegmentCommand& segment) {
offset_seg_[segment.file_offset()] = &segment;
if (LinkEdit::segmentof(segment)) {
auto& linkedit = static_cast<LinkEdit&>(segment);
- linkedit.dyld_ = dyld_info();
+ linkedit.dyld_ = dyld_info();
linkedit.chained_fixups_ = dyld_chained_fixups();
}
refresh_seg_offset();
@@ -1712,14 +1780,14 @@ bool Binary::unexport(const std::string& name) {
bool Binary::unexport(const Symbol& sym) {
if (DyldInfo* dyld = dyld_info()) {
- const auto it_export = std::find_if(
- std::begin(dyld->export_info_), std::end(dyld->export_info_),
- [&sym] (const std::unique_ptr<ExportInfo>& info) {
- return info->has_symbol() && *info->symbol() == sym;
- });
+ const auto it_export =
+ std::find_if(dyld->export_info_.begin(), dyld->export_info_.end(),
+ [&sym](const std::unique_ptr<ExportInfo>& info) {
+ return info->has_symbol() && *info->symbol() == sym;
+ });
// The symbol is not exported
- if (it_export == std::end(dyld->export_info_)) {
+ if (it_export == dyld->export_info_.end()) {
return false;
}
@@ -1729,14 +1797,14 @@ bool Binary::unexport(const Symbol& sym) {
if (DyldExportsTrie* exports = dyld_exports_trie()) {
- const auto it_export = std::find_if(
- std::begin(exports->export_info_), std::end(exports->export_info_),
- [&sym] (const std::unique_ptr<ExportInfo>& info) {
- return info->has_symbol() && *info->symbol() == sym;
- });
+ const auto it_export =
+ std::find_if(exports->export_info_.begin(), exports->export_info_.end(),
+ [&sym](const std::unique_ptr<ExportInfo>& info) {
+ return info->has_symbol() && *info->symbol() == sym;
+ });
// The symbol is not exported
- if (it_export == std::end(exports->export_info_)) {
+ if (it_export == exports->export_info_.end()) {
return false;
}
@@ -1744,26 +1812,28 @@ bool Binary::unexport(const Symbol& sym) {
return true;
}
- LIEF_INFO("Can't find neither LC_DYLD_INFO / LC_DYLD_CHAINED_FIXUPS");
+ LIEF_INFO("Neither LC_DYLD_INFO nor LC_DYLD_CHAINED_FIXUPS found");
return false;
}
bool Binary::remove(const Symbol& sym) {
unexport(sym);
- const auto it_sym = std::find_if(std::begin(symbols_), std::end(symbols_),
- [&sym] (const std::unique_ptr<Symbol>& s) {
- return s.get() == &sym;
- });
+ const auto it_sym = std::find_if(symbols_.begin(), symbols_.end(),
+ [&sym](const std::unique_ptr<Symbol>& s) {
+ return s.get() == &sym;
+ });
- if (it_sym == std::end(symbols_)) {
+ if (it_sym == symbols_.end()) {
return false;
}
if (DynamicSymbolCommand* dyst = dynamic_symbol_command()) {
- dyst->indirect_symbols_.erase(
- std::remove_if(std::begin(dyst->indirect_symbols_), std::end(dyst->indirect_symbols_),
- [&sym] (const Symbol* s) { return s == &sym; }),
- std::end(dyst->indirect_symbols_));
+ dyst->indirect_symbols_.erase(std::remove_if(dyst->indirect_symbols_.begin(),
+ dyst->indirect_symbols_.end(),
+ [&sym](const Symbol* s) {
+ return s == &sym;
+ }),
+ dyst->indirect_symbols_.end());
}
symbols_.erase(it_sym);
@@ -1813,8 +1883,8 @@ bool Binary::can_remove_symbol(const std::string& name) const {
syms.push_back(s.get());
}
}
- return std::all_of(std::begin(syms), std::end(syms),
- [this] (const Symbol* s) { return can_remove(*s); });
+ return std::all_of(syms.begin(), syms.end(),
+ [this](const Symbol* s) { return can_remove(*s); });
}
@@ -1840,16 +1910,21 @@ std::vector<uint8_t> Binary::raw() {
return buffer;
}
-result<uint64_t> Binary::virtual_address_to_offset(uint64_t virtual_address) const {
+result<uint64_t>
+ Binary::virtual_address_to_offset(uint64_t virtual_address) const {
const SegmentCommand* segment = segment_from_virtual_address(virtual_address);
- if (segment == nullptr) {
+ // file_size() is 0 if segment is not file-backed, e.g. a `__DATA` segment that
+ // only has a ZEROFILL section. In such case, there is no file offset available.
+ if (segment == nullptr || segment->file_size() == 0) {
return make_error_code(lief_errors::conversion_error);
}
- const uint64_t base_address = segment->virtual_address() - segment->file_offset();
+ const uint64_t base_address =
+ segment->virtual_address() - segment->file_offset();
return virtual_address - base_address;
}
-result<uint64_t> Binary::offset_to_virtual_address(uint64_t offset, uint64_t slide) const {
+result<uint64_t> Binary::offset_to_virtual_address(uint64_t offset,
+ uint64_t slide) const {
const SegmentCommand* segment = segment_from_offset(offset);
if (segment == nullptr) {
return slide + offset;
@@ -1862,10 +1937,10 @@ result<uint64_t> Binary::offset_to_virtual_address(uint64_t offset, uint64_t sli
}
if (imgbase == 0) {
- return slide +
- segment->virtual_address() + (offset - segment->file_offset());
+ return slide + segment->virtual_address() + (offset - segment->file_offset());
}
- return (segment->virtual_address() - imgbase) + slide + (offset - segment->file_offset());
+ return (segment->virtual_address() - imgbase) + slide +
+ (offset - segment->file_offset());
}
bool Binary::disable_pie() {
@@ -1877,13 +1952,11 @@ bool Binary::disable_pie() {
}
const Section* Binary::get_section(const std::string& name) const {
- const auto it_section = std::find_if(
- std::begin(sections_), std::end(sections_),
- [&name] (const Section* sec) {
- return sec->name() == name;
- });
+ const auto it_section =
+ std::find_if(sections_.begin(), sections_.end(),
+ [&name](const Section* sec) { return sec->name() == name; });
- if (it_section == std::end(sections_)) {
+ if (it_section == sections_.end()) {
return nullptr;
}
@@ -1891,7 +1964,8 @@ const Section* Binary::get_section(const std::string& name) const {
}
-const Section* Binary::get_section(const std::string& segname, const std::string& secname) const {
+const Section* Binary::get_section(const std::string& segname,
+ const std::string& secname) const {
if (const SegmentCommand* seg = get_segment(segname)) {
if (const Section* sec = seg->get_section(secname)) {
return sec;
@@ -1901,13 +1975,12 @@ const Section* Binary::get_section(const std::string& segname, const std::string
}
const SegmentCommand* Binary::get_segment(const std::string& name) const {
- const auto it_segment = std::find_if(
- std::begin(segments_), std::end(segments_),
- [&name] (const SegmentCommand* seg) {
- return seg->name() == name;
- });
+ const auto it_segment = std::find_if(segments_.begin(), segments_.end(),
+ [&name](const SegmentCommand* seg) {
+ return seg->name() == name;
+ });
- if (it_segment == std::end(segments_)) {
+ if (it_segment == segments_.end()) {
return nullptr;
}
@@ -1929,7 +2002,7 @@ std::string Binary::loader() const {
}
Binary::range_t Binary::va_ranges() const {
- uint64_t min = uint64_t(-1);
+ auto min = uint64_t(-1);
uint64_t max = 0;
for (const SegmentCommand* segment : segments_) {
@@ -1948,7 +2021,7 @@ Binary::range_t Binary::va_ranges() const {
}
Binary::range_t Binary::off_ranges() const {
- uint64_t min = uint64_t(-1);
+ auto min = uint64_t(-1);
uint64_t max = 0;
for (const SegmentCommand* segment : segments_) {
@@ -1963,6 +2036,28 @@ Binary::range_t Binary::off_ranges() const {
return {min, max};
}
+Binary::range_t Binary::tlv_initial_content_range() const {
+ uint64_t low = 0;
+ uint64_t high = 0;
+ for (const Section& S : sections()) {
+ switch (S.type()) {
+ default: break;
+ case Section::TYPE::THREAD_LOCAL_REGULAR:
+ case Section::TYPE::THREAD_LOCAL_ZEROFILL:
+ {
+ if (low == 0) {
+ low = S.virtual_address();
+ high = low + S.size();
+ } else {
+ high = S.virtual_address() + S.size();
+ }
+ break;
+ }
+ }
+ }
+ return {low, high};
+}
+
LIEF::Binary::functions_t Binary::ctor_functions() const {
LIEF::Binary::functions_t functions;
@@ -1994,34 +2089,33 @@ LIEF::Binary::functions_t Binary::ctor_functions() const {
LIEF::Binary::functions_t Binary::functions() const {
- static const auto func_cmd = [] (const Function& lhs, const Function& rhs) {
+ static const auto func_cmd = [](const Function& lhs, const Function& rhs) {
return lhs.address() < rhs.address();
};
std::set<Function, decltype(func_cmd)> functions_set(func_cmd);
LIEF::Binary::functions_t unwind_functions = this->unwind_functions();
- LIEF::Binary::functions_t ctor_functions = this->ctor_functions();
- LIEF::Binary::functions_t exported = get_abstract_exported_functions();
+ LIEF::Binary::functions_t ctor_functions = this->ctor_functions();
+ LIEF::Binary::functions_t exported = get_abstract_exported_functions();
- std::move(std::begin(unwind_functions), std::end(unwind_functions),
- std::inserter(functions_set, std::end(functions_set)));
+ std::move(unwind_functions.begin(), unwind_functions.end(),
+ std::inserter(functions_set, functions_set.end()));
- std::move(std::begin(ctor_functions), std::end(ctor_functions),
- std::inserter(functions_set, std::end(functions_set)));
+ std::move(ctor_functions.begin(), ctor_functions.end(),
+ std::inserter(functions_set, functions_set.end()));
- std::move(std::begin(exported), std::end(exported),
- std::inserter(functions_set, std::end(functions_set)));
-
- return {std::begin(functions_set), std::end(functions_set)};
+ std::move(exported.begin(), exported.end(),
+ std::inserter(functions_set, functions_set.end()));
+ return {functions_set.begin(), functions_set.end()};
}
LIEF::Binary::functions_t Binary::unwind_functions() const {
static constexpr size_t UNWIND_COMPRESSED = 3;
static constexpr size_t UNWIND_UNCOMPRESSED = 2;
- // Set container to have functions with unique address
- static const auto fcmd = [] (const Function& l, const Function& r) {
+ // Container to store functions with unique addresses
+ static const auto fcmd = [](const Function& l, const Function& r) {
return l.address() < r.address();
};
std::set<Function, decltype(fcmd)> functions(fcmd);
@@ -2037,7 +2131,7 @@ LIEF::Binary::functions_t Binary::unwind_functions() const {
// Get section content
const auto hdr = vs.read<details::unwind_info_section_header>();
if (!hdr) {
- LIEF_ERR("Can't read unwind section header!");
+ LIEF_ERR("Failed to read unwind section header");
return {};
}
vs.setpos(hdr->index_section_offset);
@@ -2045,31 +2139,40 @@ LIEF::Binary::functions_t Binary::unwind_functions() const {
size_t lsda_start = -1lu;
size_t lsda_stop = 0;
for (size_t i = 0; i < hdr->index_count; ++i) {
- const auto section_hdr = vs.read<details::unwind_info_section_header_index_entry>();
+ const auto section_hdr =
+ vs.read<details::unwind_info_section_header_index_entry>();
if (!section_hdr) {
- LIEF_ERR("Can't read function information at index #{:d}", i);
+ LIEF_ERR("Failed to read function info at index {:d}", i);
break;
}
functions.emplace(section_hdr->function_offset);
const size_t second_lvl_off = section_hdr->second_level_pages_section_offset;
- const size_t lsda_off = section_hdr->lsda_index_array_section_offset;
+ const size_t lsda_off = section_hdr->lsda_index_array_section_offset;
lsda_start = std::min(lsda_off, lsda_start);
- lsda_stop = std::max(lsda_off, lsda_stop);
+ lsda_stop = std::max(lsda_off, lsda_stop);
- if (second_lvl_off > 0 && vs.can_read<details::unwind_info_regular_second_level_page_header>(second_lvl_off)) {
+ if (second_lvl_off > 0 &&
+ vs.can_read<details::unwind_info_regular_second_level_page_header>(
+ second_lvl_off
+ ))
+ {
const size_t saved_pos = vs.pos();
{
vs.setpos(second_lvl_off);
- const auto lvl_hdr = vs.peek<details::unwind_info_regular_second_level_page_header>(second_lvl_off);
+ const auto lvl_hdr =
+ vs.peek<details::unwind_info_regular_second_level_page_header>(
+ second_lvl_off
+ );
if (!lvl_hdr) {
break;
}
if (lvl_hdr->kind == UNWIND_COMPRESSED) {
- const auto lvl_compressed_hdr = vs.read<details::unwind_info_compressed_second_level_page_header>();
+ const auto lvl_compressed_hdr =
+ vs.read<details::unwind_info_compressed_second_level_page_header>();
if (!lvl_compressed_hdr) {
- LIEF_ERR("Can't read lvl_compressed_hdr");
+ LIEF_ERR("Failed to read lvl_compressed_hdr");
break;
}
@@ -2082,31 +2185,33 @@ LIEF::Binary::functions_t Binary::unwind_functions() const {
uint32_t func_off = section_hdr->function_offset + (*entry & 0xffffff);
functions.emplace(func_off);
}
- }
- else if (lvl_hdr->kind == UNWIND_UNCOMPRESSED) {
- LIEF_WARN("UNWIND_UNCOMPRESSED is not supported yet!");
- }
- else {
+ } else if (lvl_hdr->kind == UNWIND_UNCOMPRESSED) {
+ LIEF_WARN("UNWIND_UNCOMPRESSED is not yet supported");
+ } else {
LIEF_WARN("Unknown 2nd level kind: {:d}", lvl_hdr->kind);
}
}
vs.setpos(saved_pos);
}
-
}
- const size_t nb_lsda = lsda_stop > lsda_start ? (lsda_stop - lsda_start) / sizeof(details::unwind_info_section_header_lsda_index_entry) : 0;
+ const size_t nb_lsda =
+ lsda_stop > lsda_start ?
+ (lsda_stop - lsda_start) /
+ sizeof(details::unwind_info_section_header_lsda_index_entry) :
+ 0;
vs.setpos(lsda_start);
for (size_t i = 0; i < nb_lsda; ++i) {
- const auto hdr = vs.read<details::unwind_info_section_header_lsda_index_entry>();
+ const auto hdr =
+ vs.read<details::unwind_info_section_header_lsda_index_entry>();
if (!hdr) {
- LIEF_ERR("Can't read LSDA at index #{:d}", i);
+ LIEF_ERR("Failed to read LSDA at index {:d}", i);
break;
}
functions.emplace(hdr->function_offset);
}
- return {std::begin(functions), std::end(functions)};
+ return {functions.begin(), functions.end()};
}
// UUID
@@ -2210,15 +2315,15 @@ const RPathCommand* Binary::rpath() const {
}
Binary::it_rpaths Binary::rpaths() {
- return {commands_, [] (const std::unique_ptr<LoadCommand>& cmd) {
- return RPathCommand::classof(cmd.get());
- }};
+ return {commands_, [](const std::unique_ptr<LoadCommand>& cmd) {
+ return RPathCommand::classof(cmd.get());
+ }};
}
Binary::it_const_rpaths Binary::rpaths() const {
- return {commands_, [] (const std::unique_ptr<LoadCommand>& cmd) {
- return RPathCommand::classof(cmd.get());
- }};
+ return {commands_, [](const std::unique_ptr<LoadCommand>& cmd) {
+ return RPathCommand::classof(cmd.get());
+ }};
}
// SymbolCommand command
@@ -2287,15 +2392,15 @@ const SegmentSplitInfo* Binary::segment_split_info() const {
// SubClient command
// ++++++++++++++++++++
Binary::it_sub_clients Binary::subclients() {
- return {commands_, [] (const std::unique_ptr<LoadCommand>& cmd) {
- return SubClient::classof(cmd.get());
- }};
+ return {commands_, [](const std::unique_ptr<LoadCommand>& cmd) {
+ return SubClient::classof(cmd.get());
+ }};
}
Binary::it_const_sub_clients Binary::subclients() const {
- return {commands_, [] (const std::unique_ptr<LoadCommand>& cmd) {
- return SubClient::classof(cmd.get());
- }};
+ return {commands_, [](const std::unique_ptr<LoadCommand>& cmd) {
+ return SubClient::classof(cmd.get());
+ }};
}
bool Binary::has_subclients() const {
@@ -2393,15 +2498,15 @@ const AtomInfo* Binary::atom_info() const {
// Notes
// ++++++++++++++++++++++++++++++++
Binary::it_notes Binary::notes() {
- return {commands_, [] (const std::unique_ptr<LoadCommand>& cmd) {
- return NoteCommand::classof(cmd.get());
- }};
+ return {commands_, [](const std::unique_ptr<LoadCommand>& cmd) {
+ return NoteCommand::classof(cmd.get());
+ }};
}
Binary::it_const_notes Binary::notes() const {
- return {commands_, [] (const std::unique_ptr<LoadCommand>& cmd) {
- return NoteCommand::classof(cmd.get());
- }};
+ return {commands_, [](const std::unique_ptr<LoadCommand>& cmd) {
+ return NoteCommand::classof(cmd.get());
+ }};
}
// FunctionVariants
@@ -2426,18 +2531,21 @@ Binary::it_bindings Binary::bindings() const {
if (const DyldInfo* dyld = dyld_info()) {
auto begin = BindingInfoIterator(*dyld, 0);
auto end = BindingInfoIterator(*dyld, dyld->binding_info_.size());
+ // NOLINTNEXTLINE(performance-move-const-arg)
return make_range(std::move(begin), std::move(end));
}
if (const DyldChainedFixups* fixup = dyld_chained_fixups()) {
auto begin = BindingInfoIterator(*fixup, 0);
auto end = BindingInfoIterator(*fixup, fixup->all_bindings_.size());
+ // NOLINTNEXTLINE(performance-move-const-arg)
return make_range(std::move(begin), std::move(end));
}
auto begin = BindingInfoIterator(*this, 0);
auto end = BindingInfoIterator(*this, indirect_bindings_.size());
+ // NOLINTNEXTLINE(performance-move-const-arg)
return make_range(std::move(begin), std::move(end));
}
@@ -2464,43 +2572,41 @@ Symbol& Binary::add(const Symbol& symbol) {
}
Symbol* Binary::add_local_symbol(uint64_t address, const std::string& name) {
- Symbol* symbol = nullptr;
-
auto sym = std::make_unique<Symbol>();
- sym->category_ = Symbol::CATEGORY::LOCAL;
- sym->origin_ = Symbol::ORIGIN::SYMTAB;
+ sym->category_ = Symbol::CATEGORY::LOCAL;
+ sym->origin_ = Symbol::ORIGIN::SYMTAB;
sym->numberof_sections_ = 0;
- sym->description_ = static_cast<uint16_t>(/* N_NO_DEAD_STRIP */0x20);
+ sym->description_ = static_cast<uint16_t>(/* N_NO_DEAD_STRIP */ 0x20);
sym->value(address);
sym->name(name);
- symbol = sym.get();
- symbols_.push_back(std::move(sym));
- return symbol;
+ return symbols_.emplace_back(std::move(sym)).get();
}
-ExportInfo* Binary::add_exported_function(uint64_t address, const std::string& name) {
+ExportInfo* Binary::add_exported_function(uint64_t address,
+ const std::string& name) {
if (Symbol* symbol = add_local_symbol(address, name)) {
+ uint64_t trie_offset = address;
+ if (trie_offset >= imagebase()) {
+ trie_offset -= imagebase();
+ }
+
if (DyldExportsTrie* exports = dyld_exports_trie()) {
- auto export_info = std::make_unique<ExportInfo>(address, 0);
+ auto export_info = std::make_unique<ExportInfo>(trie_offset, 0);
export_info->symbol_ = symbol;
- export_info->address(address);
+ export_info->address(trie_offset);
symbol->export_info_ = export_info.get();
- auto* info = export_info.get();
- exports->add(std::move(export_info));
- return info;
+ return exports->add(std::move(export_info));
}
if (DyldInfo* info = dyld_info()) {
- auto export_info = std::make_unique<ExportInfo>(address, 0);
+ auto export_info = std::make_unique<ExportInfo>(trie_offset, 0);
export_info->symbol_ = symbol;
- export_info->address(address);
+ export_info->address(trie_offset);
symbol->export_info_ = export_info.get();
- auto* info_ptr = export_info.get();
- info->add(std::move(export_info));
- return info_ptr;
+ return info->add(std::move(export_info));
}
}
return nullptr;
@@ -2509,11 +2615,11 @@ ExportInfo* Binary::add_exported_function(uint64_t address, const std::string& n
const DylibCommand* Binary::find_library(const std::string& name) const {
auto it = std::find_if(libraries_.begin(), libraries_.end(),
- [&name] (const DylibCommand* cmd) {
- const std::string& libpath = cmd->name();
- return libpath == name || libname(libpath).value_or("") == name;
- }
- );
+ [&name](const DylibCommand* cmd) {
+ const std::string& libpath = cmd->name();
+ return libpath == name ||
+ libname(libpath).value_or("") == name;
+ });
return it == libraries_.end() ? nullptr : *it;
}
@@ -2529,10 +2635,7 @@ void Binary::refresh_seg_offset() {
}
Binary::stub_iterator Binary::symbol_stubs() const {
- static stub_iterator empty_iterator(
- Stub::Iterator{},
- Stub::Iterator{}
- );
+ static stub_iterator empty_iterator(Stub::Iterator{}, Stub::Iterator{});
std::vector<const Section*> stub_sections;
stub_sections.reserve(3);
@@ -2561,11 +2664,9 @@ Binary::stub_iterator Binary::symbol_stubs() const {
if (stub_sections.empty() || total == 0) {
return empty_iterator;
}
- Stub::Iterator begin(
- {header_.cpu_type(), header_.cpu_subtype()},
- std::move(stub_sections), 0
- );
- Stub::Iterator end({}, {}, total);
+ Stub::Iterator begin({header_.cpu_type(), header_.cpu_subtype()},
+ std::move(stub_sections), 0);
+ Stub::Iterator end({Header::CPU_TYPE::ANY, 0}, {}, total);
return make_range(std::move(begin), std::move(end));
}
@@ -2578,7 +2679,7 @@ bool Binary::can_cache_segment(const SegmentCommand& segment) {
if (segment.name() == "__TEXT") {
// In some cases (c.f. <samples>/MachO/issue_1130.macho)
// the __TEXT segment can have a file_size set to 0 while it is logically
- // revelant to cache it
+ // relevant to cache it
return true;
}
@@ -2588,39 +2689,164 @@ bool Binary::can_cache_segment(const SegmentCommand& segment) {
Binary::~Binary() = default;
std::ostream& Binary::print(std::ostream& os) const {
- os << "Header" << '\n';
- os << "======" << '\n';
+ os << "Header {\n" << indent(LIEF::to_string(header()), 2) << "}\n";
- os << header();
- os << '\n';
+ if (auto cmds = commands(); !cmds.empty()) {
+ os << fmt::format("Commands (#{})\n", cmds.size());
+ for (size_t i = 0; i < cmds.size(); ++i) {
+ os << fmt::format(" Command #{:02} {{\n", i)
+ << indent(LIEF::to_string(cmds[i]), 4) << " }\n";
+ }
+ }
+ {
+ const auto segs = segments();
+ if (!segs.empty()) {
+ os << fmt::format("Segments (#{})\n", segs.size());
+ for (size_t i = 0; i < segs.size(); ++i) {
+ os << fmt::format(" Segment #{:02} {{\n", i)
+ << indent(LIEF::to_string(segs[i]), 4) << " }\n";
+ }
+ }
+ }
+
+ {
+ const auto secs = sections();
+ if (!secs.empty()) {
+ os << fmt::format("Sections (#{})\n", secs.size());
+ for (size_t i = 0; i < secs.size(); ++i) {
+ os << fmt::format(" Section #{:02} {{\n", i)
+ << indent(LIEF::to_string(secs[i]), 4) << " }\n";
+ }
+ }
+ }
- os << "Commands" << '\n';
- os << "========" << '\n';
- for (const LoadCommand& cmd : commands()) {
- os << cmd << '\n';
+ if (auto libs = libraries(); !libs.empty()) {
+ os << fmt::format("Libraries (#{})\n", libs.size());
+ for (const DylibCommand& lib : libs) {
+ os << " " << lib << '\n';
+ }
}
- os << '\n';
+ if (auto syms = symbols(); !syms.empty()) {
+ os << fmt::format("Symbols (#{})\n", syms.size());
+ for (const Symbol& symbol : syms) {
+ os << " " << symbol << '\n';
+ }
+ }
- os << "Sections" << '\n';
- os << "========" << '\n';
- for (const Section& section : sections()) {
- os << section << '\n';
+ if (auto syms = exported_symbols(); !syms.empty()) {
+ os << fmt::format("Exported Symbols (#{})\n", syms.size());
+ for (const Symbol& symbol : syms) {
+ os << " " << symbol << '\n';
+ }
+ }
+
+ if (auto syms = imported_symbols(); !syms.empty()) {
+ os << fmt::format("Imported Symbols (#{})\n", syms.size());
+ for (const Symbol& symbol : syms) {
+ os << " " << symbol << '\n';
+ }
+ }
+
+ if (auto relocs = relocations(); !relocs.empty()) {
+ os << fmt::format("Relocations (#{})\n", relocs.size());
+ for (const Relocation& R : relocs) {
+ os << " " << R << '\n';
+ }
+ }
+
+ if (auto paths = rpaths(); !paths.empty()) {
+ os << fmt::format("RPaths (#{})\n", paths.size());
+ for (const RPathCommand& rp : paths) {
+ os << " " << rp << '\n';
+ }
+ }
+
+ if (auto n = notes(); !n.empty()) {
+ os << fmt::format("Notes (#{})\n", n.size());
+ for (size_t i = 0; i < n.size(); ++i) {
+ os << fmt::format(" Note #{:02} {{\n", i)
+ << indent(LIEF::to_string(n[i]), 4) << " }\n";
+ }
+ }
+
+ if (auto fsets = filesets(); !fsets.empty()) {
+ os << fmt::format("Filesets (#{})\n", fsets.size());
+ for (const Binary& fs : fsets) {
+ os << indent(LIEF::to_string(fs), 2);
+ }
+ }
+
+ if (const UUIDCommand* cmd = uuid()) {
+ os << "UUID {\n" << indent(LIEF::to_string(*cmd), 2) << "}\n";
+ }
+
+ if (const MainCommand* cmd = main_command()) {
+ os << "Main Command {\n" << indent(LIEF::to_string(*cmd), 2) << "}\n";
+ }
+
+ if (const DylinkerCommand* cmd = dylinker()) {
+ os << "Dylinker {\n" << indent(LIEF::to_string(*cmd), 2) << "}\n";
+ }
+
+ if (const DyldInfo* info = dyld_info()) {
+ os << "Dyld Info {\n" << indent(LIEF::to_string(*info), 2) << "}\n";
+ }
+
+ if (const FunctionStarts* fs = function_starts()) {
+ os << "Function Starts {\n" << indent(LIEF::to_string(*fs), 2) << "}\n";
+ }
+
+ if (const SourceVersion* sv = source_version()) {
+ os << "Source Version {\n" << indent(LIEF::to_string(*sv), 2) << "}\n";
+ }
+
+ if (const BuildVersion* bv = build_version()) {
+ os << "Build Version {\n" << indent(LIEF::to_string(*bv), 2) << "}\n";
+ }
+
+ if (const VersionMin* vm = version_min()) {
+ os << "Version Min {\n" << indent(LIEF::to_string(*vm), 2) << "}\n";
}
- os << '\n';
+ if (const CodeSignature* cs = code_signature()) {
+ os << "Code Signature {\n" << indent(LIEF::to_string(*cs), 2) << "}\n";
+ }
+
+ if (const CodeSignatureDir* csd = code_signature_dir()) {
+ os << "Code Signature Dir {\n" << indent(LIEF::to_string(*csd), 2) << "}\n";
+ }
+
+ if (const DataInCode* dic = data_in_code()) {
+ os << "Data In Code {\n" << indent(LIEF::to_string(*dic), 2) << "}\n";
+ }
- os << "Symbols" << '\n';
- os << "=======" << '\n';
- for (const Symbol& symbol : symbols()) {
- os << symbol << '\n';
+ if (const DyldChainedFixups* dcf = dyld_chained_fixups()) {
+ os << "Dyld Chained Fixups {\n" << indent(LIEF::to_string(*dcf), 2) << "}\n";
+ }
+
+ if (const DyldExportsTrie* det = dyld_exports_trie()) {
+ os << "Dyld Exports Trie {\n" << indent(LIEF::to_string(*det), 2) << "}\n";
+ }
+
+ if (const EncryptionInfo* ei = encryption_info()) {
+ os << "Encryption Info {\n" << indent(LIEF::to_string(*ei), 2) << "}\n";
+ }
+
+ if (const TwoLevelHints* tlh = two_level_hints()) {
+ os << "Two Level Hints {\n" << indent(LIEF::to_string(*tlh), 2) << "}\n";
+ }
+
+ if (const SubFramework* sf = sub_framework()) {
+ os << "Sub Framework {\n" << indent(LIEF::to_string(*sf), 2) << "}\n";
+ }
+
+ if (const DyldEnvironment* de = dyld_environment()) {
+ os << "Dyld Environment {\n" << indent(LIEF::to_string(*de), 2) << "}\n";
}
- os << '\n';
return os;
}
}
-}
-
diff --git a/deps/LIEF/src/MachO/Binary.tcc b/deps/LIEF/src/MachO/Binary.tcc
index 00c647624d0..c4577f0f520 100644
--- a/deps/LIEF/src/MachO/Binary.tcc
+++ b/deps/LIEF/src/MachO/Binary.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,8 +21,8 @@
#include "LIEF/errors.hpp"
#include "internal_utils.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
template<class T>
bool Binary::has_command() const {
@@ -31,42 +31,44 @@ bool Binary::has_command() const {
template<class T>
T* Binary::command() {
- static_assert(std::is_base_of<LoadCommand, T>::value, "Require inheritance of 'LoadCommand'");
+ static_assert(std::is_base_of_v<LoadCommand, T>,
+ "Require inheritance of 'LoadCommand'");
return const_cast<T*>(static_cast<const Binary*>(this)->command<T>());
}
template<class T>
const T* Binary::command() const {
- static_assert(std::is_base_of<LoadCommand, T>::value, "Require inheritance of 'LoadCommand'");
- const auto it_cmd = std::find_if(
- std::begin(commands_), std::end(commands_),
- [] (const std::unique_ptr<LoadCommand>& command) {
- return T::classof(command.get());
- });
-
- if (it_cmd == std::end(commands_)) {
+ static_assert(std::is_base_of_v<LoadCommand, T>,
+ "Require inheritance of 'LoadCommand'");
+ const auto it_cmd =
+ std::find_if(commands_.begin(), commands_.end(),
+ [](const std::unique_ptr<LoadCommand>& command) {
+ return T::classof(command.get());
+ });
+
+ if (it_cmd == commands_.end()) {
return nullptr;
}
return reinterpret_cast<const T*>(it_cmd->get());
-
}
template<class T>
size_t Binary::count_commands() const {
- static_assert(std::is_base_of<LoadCommand, T>::value, "Require inheritance of 'LoadCommand'");
+ static_assert(std::is_base_of_v<LoadCommand, T>,
+ "Require inheritance of 'LoadCommand'");
- size_t nb_cmd = std::count_if(
- std::begin(commands_), std::end(commands_),
- [] (const std::unique_ptr<LoadCommand>& command) {
- return T::classof(command.get());
- });
+ size_t nb_cmd = std::count_if(commands_.begin(), commands_.end(),
+ [](const std::unique_ptr<LoadCommand>& command) {
+ return T::classof(command.get());
+ });
return nb_cmd;
}
template<class CMD, class Func>
Binary& Binary::for_commands(Func f) {
- static_assert(std::is_base_of<LoadCommand, CMD>::value, "Require inheritance of 'LoadCommand'");
+ static_assert(std::is_base_of_v<LoadCommand, CMD>,
+ "Require inheritance of 'LoadCommand'");
for (const std::unique_ptr<LoadCommand>& cmd : commands_) {
if (!CMD::classof(cmd.get())) {
continue;
@@ -77,11 +79,12 @@ Binary& Binary::for_commands(Func f) {
}
template<class T>
-ok_error_t Binary::patch_relocation(Relocation& relocation, uint64_t from, uint64_t shift) {
+ok_error_t Binary::patch_relocation(Relocation& relocation, uint64_t from,
+ uint64_t shift) {
SegmentCommand* segment = segment_from_virtual_address(relocation.address());
if (segment == nullptr) {
- LIEF_DEBUG("Can't find the segment associated with the relocation: 0x{:x}",
+ LIEF_DEBUG("Can't find the segment associated with the relocation: {:#x}",
relocation.address());
return make_error_code(lief_errors::not_found);
}
@@ -90,7 +93,7 @@ ok_error_t Binary::patch_relocation(Relocation& relocation, uint64_t from, uint6
return make_error_code(offset.error());
}
uint64_t relative_offset = *offset - segment->file_offset();
- span<uint8_t> segment_content = segment->writable_content();
+ span<uint8_t> segment_content = segment->content();
const size_t segment_size = segment_content.size();
if (segment_size == 0) {
@@ -98,13 +101,15 @@ ok_error_t Binary::patch_relocation(Relocation& relocation, uint64_t from, uint6
return ok();
}
- if (relative_offset >= segment_size || (relative_offset + sizeof(T)) >= segment_size) {
+ if (relative_offset >= segment_size ||
+ (relative_offset + sizeof(T)) >= segment_size)
+ {
LIEF_DEBUG("Offset out of bound for relocation: {}", to_string(relocation));
return make_error_code(lief_errors::read_out_of_bound);
}
auto* ptr_value = reinterpret_cast<T*>(segment_content.data() + relative_offset);
- if (*ptr_value >= from && is_valid_addr(*ptr_value)) {
+ if (*ptr_value >= from) {
*ptr_value += shift;
}
return ok();
@@ -112,4 +117,3 @@ ok_error_t Binary::patch_relocation(Relocation& relocation, uint64_t from, uint6
}
-}
diff --git a/deps/LIEF/src/MachO/BinaryParser.cpp b/deps/LIEF/src/MachO/BinaryParser.cpp
index 96eede67e79..8f5b52ee925 100644
--- a/deps/LIEF/src/MachO/BinaryParser.cpp
+++ b/deps/LIEF/src/MachO/BinaryParser.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,8 +29,8 @@
#include "internal_utils.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
BinaryParser::BinaryParser() = default;
BinaryParser::~BinaryParser() = default;
@@ -40,20 +40,22 @@ std::unique_ptr<Binary> BinaryParser::parse(const std::string& file) {
return parse(file, ParserConfig::deep());
}
-std::unique_ptr<Binary> BinaryParser::parse(const std::string& file, const ParserConfig& conf) {
+std::unique_ptr<Binary> BinaryParser::parse(const std::string& file,
+ const ParserConfig& conf) {
if (!is_macho(file)) {
LIEF_DEBUG("{} is not a Mach-O file", file);
return nullptr;
}
if (!is_fat(file)) {
- LIEF_ERR("{} is a Fat Mach-O file. Please use MachO::Parser::parse(...)", file);
+ LIEF_ERR("{} is a Fat Mach-O file. Please use MachO::Parser::parse(...)",
+ file);
return nullptr;
}
auto stream = VectorStream::from_file(file);
if (!stream) {
- LIEF_ERR("Error while creating the binary stream");
+ LIEF_ERR("Failed to create binary stream");
return nullptr;
}
@@ -63,20 +65,21 @@ std::unique_ptr<Binary> BinaryParser::parse(const std::string& file, const Parse
parser.binary_ = std::unique_ptr<Binary>(new Binary{});
parser.binary_->fat_offset_ = 0;
- if(!parser.init_and_parse()) {
- LIEF_WARN("Parsing with error. The binary might be in an inconsistent state");
+ if (!parser.init_and_parse()) {
+ LIEF_WARN("Parsing errors detected; binary may be inconsistent");
}
return std::move(parser.binary_);
}
-std::unique_ptr<Binary> BinaryParser::parse(const std::vector<uint8_t>& data, const ParserConfig& conf) {
+std::unique_ptr<Binary> BinaryParser::parse(const std::vector<uint8_t>& data,
+ const ParserConfig& conf) {
return parse(data, 0, conf);
}
-std::unique_ptr<Binary> BinaryParser::parse(const std::vector<uint8_t>& data, uint64_t fat_offset,
- const ParserConfig& conf)
-{
+std::unique_ptr<Binary> BinaryParser::parse(const std::vector<uint8_t>& data,
+ uint64_t fat_offset,
+ const ParserConfig& conf) {
if (!is_macho(data)) {
return nullptr;
}
@@ -93,25 +96,25 @@ std::unique_ptr<Binary> BinaryParser::parse(const std::vector<uint8_t>& data, ui
parser.binary_ = std::unique_ptr<Binary>(new Binary{});
parser.binary_->fat_offset_ = fat_offset;
- if(!parser.init_and_parse()) {
- LIEF_WARN("Parsing with error. The binary might be in an inconsistent state");
+ if (!parser.init_and_parse()) {
+ LIEF_WARN("Parsing errors detected; binary may be inconsistent");
}
return std::move(parser.binary_);
}
-std::unique_ptr<Binary> BinaryParser::parse(std::unique_ptr<BinaryStream> stream, uint64_t fat_offset,
- const ParserConfig& conf)
-{
+std::unique_ptr<Binary> BinaryParser::parse(std::unique_ptr<BinaryStream> stream,
+ uint64_t fat_offset,
+ const ParserConfig& conf) {
BinaryParser parser;
parser.config_ = conf;
parser.stream_ = std::move(stream);
parser.binary_ = std::unique_ptr<Binary>(new Binary{});
parser.binary_->fat_offset_ = fat_offset;
- if(!parser.init_and_parse()) {
- LIEF_WARN("Parsing with error. The binary might be in an inconsistent state");
+ if (!parser.init_and_parse()) {
+ LIEF_WARN("Parsing errors detected; binary may be inconsistent");
}
return std::move(parser.binary_);
@@ -125,37 +128,49 @@ ok_error_t BinaryParser::init_and_parse() {
}
const auto type = static_cast<MACHO_TYPES>(*stream_->peek<uint32_t>());
- is64_ = type == MACHO_TYPES::MAGIC_64 ||
- type == MACHO_TYPES::CIGAM_64 ||
+ is64_ = type == MACHO_TYPES::MAGIC_64 || type == MACHO_TYPES::CIGAM_64 ||
type == MACHO_TYPES::NEURAL_MODEL;
binary_->is64_ = is64_;
- type_ = type;
+ type_ = type;
binary_->original_size_ = stream_->size();
- bool should_swap = type == MACHO_TYPES::CIGAM_64 ||
- type == MACHO_TYPES::CIGAM;
+ bool should_swap = type == MACHO_TYPES::CIGAM_64 || type == MACHO_TYPES::CIGAM;
stream_->set_endian_swap(should_swap);
- return is64_ ? parse<details::MachO64>() :
- parse<details::MachO32>();
+ return is64_ ? parse<details::MachO64>() : parse<details::MachO32>();
}
-ok_error_t BinaryParser::parse_export_trie(exports_list_t& exports,
- BinaryStream& stream,
- uint64_t start,
- const std::string& prefix,
- bool* invalid_names)
-{
+result<BinaryParser::exports_list_t>
+ BinaryParser::parse_export_trie(BinaryStream& stream, uint64_t start,
+ const std::string& prefix, uint32_t depth,
+ bool* invalid_names) {
+ static constexpr auto MAX_DEPTH = 60;
+ exports_list_t exports;
+
+ if (depth > MAX_DEPTH) {
+ LIEF_WARN("Maximum recursion depth reached ({})", MAX_DEPTH);
+ return make_error_code(lief_errors::parsing_error);
+ }
+
if (!stream) {
return make_error_code(lief_errors::read_error);
}
+ // Pre-populate the symbol cache to avoid O(n) searches for each export
+ if (memoized_symbols_.empty()) {
+ for (const std::unique_ptr<LIEF::MachO::Symbol>& sym : binary_->symbols_) {
+ if (const std::string& name = sym->name(); !name.empty()) {
+ memoized_symbols_[name] = sym.get();
+ }
+ }
+ }
+
const auto terminal_size = stream.read<uint8_t>();
if (!terminal_size) {
- LIEF_ERR("Can't read terminal size");
+ LIEF_ERR("Failed to read terminal size");
return make_error_code(lief_errors::read_error);
}
uint64_t children_offset = stream.pos() + *terminal_size;
@@ -168,16 +183,18 @@ ok_error_t BinaryParser::parse_export_trie(exports_list_t& exports,
return make_error_code(lief_errors::read_error);
}
uint64_t flags = *res_flags;
- //uint64_t address = stream_->read_uleb128();
+ // uint64_t address = stream_->read_uleb128();
const std::string& symbol_name = prefix;
auto export_info = std::make_unique<ExportInfo>(0, flags, offset);
Symbol* symbol = nullptr;
- auto search = memoized_symbols_.find(symbol_name);
- if (search != memoized_symbols_.end()) {
+ if (auto search = memoized_symbols_.find(symbol_name);
+ search != memoized_symbols_.end())
+ {
symbol = search->second;
} else {
- symbol = binary_->get_symbol(symbol_name);
+ LIEF_DEBUG("Cache miss for symbol: {}", symbol_name);
+ symbol = nullptr;
}
if (symbol != nullptr) {
export_info->symbol_ = symbol;
@@ -185,16 +202,17 @@ ok_error_t BinaryParser::parse_export_trie(exports_list_t& exports,
} else { // Register it into the symbol table
auto symbol = std::make_unique<Symbol>();
- symbol->origin_ = Symbol::ORIGIN::DYLD_EXPORT;
- symbol->value_ = 0;
- symbol->type_ = 0;
+ symbol->origin_ = Symbol::ORIGIN::DYLD_EXPORT;
+ symbol->value_ = 0;
+ symbol->type_ = 0;
symbol->numberof_sections_ = 0;
- symbol->description_ = 0;
+ symbol->description_ = 0;
symbol->name(symbol_name);
// Weak bind of the pointer
- symbol->export_info_ = export_info.get();
- export_info->symbol_ = symbol.get();
+ symbol->export_info_ = export_info.get();
+ export_info->symbol_ = symbol.get();
+ memoized_symbols_[symbol_name] = symbol.get();
binary_->symbols_.push_back(std::move(symbol));
}
@@ -203,7 +221,7 @@ ok_error_t BinaryParser::parse_export_trie(exports_list_t& exports,
if (export_info->has(ExportInfo::FLAGS::REEXPORT)) {
auto res_ordinal = stream.read_uleb128();
if (!res_ordinal) {
- LIEF_ERR("Can't read uleb128 to determine the ordinal value");
+ LIEF_ERR("Failed to read uleb128 ordinal value");
return make_error_code(lief_errors::parsing_error);
}
const uint64_t ordinal = *res_ordinal;
@@ -211,7 +229,7 @@ ok_error_t BinaryParser::parse_export_trie(exports_list_t& exports,
auto res_imported_name = stream.peek_string();
if (!res_imported_name) {
- LIEF_ERR("Can't read imported_name");
+ LIEF_ERR("Failed to read imported_name");
return make_error_code(lief_errors::parsing_error);
}
@@ -222,28 +240,31 @@ ok_error_t BinaryParser::parse_export_trie(exports_list_t& exports,
}
Symbol* symbol = nullptr;
- auto search = memoized_symbols_.find(imported_name);
- if (search != memoized_symbols_.end()) {
+ if (auto search = memoized_symbols_.find(imported_name);
+ search != memoized_symbols_.end())
+ {
symbol = search->second;
} else {
- symbol = binary_->get_symbol(imported_name);
+ LIEF_DEBUG("Cache miss for symbol: {}", imported_name);
+ symbol = nullptr;
}
if (symbol != nullptr) {
- export_info->alias_ = symbol;
+ export_info->alias_ = symbol;
symbol->export_info_ = export_info.get();
- symbol->value_ = export_info->address();
+ symbol->value_ = export_info->address();
} else {
auto symbol = std::make_unique<Symbol>();
- symbol->origin_ = Symbol::ORIGIN::DYLD_EXPORT;
- symbol->value_ = export_info->address();
- symbol->type_ = 0;
+ symbol->origin_ = Symbol::ORIGIN::DYLD_EXPORT;
+ symbol->value_ = export_info->address();
+ symbol->type_ = 0;
symbol->numberof_sections_ = 0;
- symbol->description_ = 0;
+ symbol->description_ = 0;
symbol->name(symbol_name);
// Weak bind of the pointer
- symbol->export_info_ = export_info.get();
- export_info->alias_ = symbol.get();
+ symbol->export_info_ = export_info.get();
+ export_info->alias_ = symbol.get();
+ memoized_symbols_[symbol_name] = symbol.get();
binary_->symbols_.push_back(std::move(symbol));
}
@@ -257,7 +278,7 @@ ok_error_t BinaryParser::parse_export_trie(exports_list_t& exports,
} else {
auto address = stream.read_uleb128();
if (!address) {
- LIEF_ERR("Can't read export address");
+ LIEF_ERR("Failed to read export address");
return make_error_code(lief_errors::parsing_error);
}
export_info->address(*address);
@@ -268,39 +289,39 @@ ok_error_t BinaryParser::parse_export_trie(exports_list_t& exports,
if (export_info->has(ExportInfo::FLAGS::STUB_AND_RESOLVER)) {
auto other = stream.read_uleb128();
if (!other) {
- LIEF_ERR("Can't read 'other' value for the export info");
+ LIEF_ERR("Failed to read 'other' value for export info");
return make_error_code(lief_errors::parsing_error);
}
export_info->other_ = *other;
}
exports.push_back(std::move(export_info));
-
}
stream.setpos(children_offset);
const auto nb_children = stream.read<uint8_t>();
if (!nb_children) {
- LIEF_ERR("Can't read nb_children");
+ LIEF_ERR("Failed to read nb_children");
return make_error_code(lief_errors::parsing_error);
}
+
for (size_t i = 0; i < *nb_children; ++i) {
auto suffix = stream.read_string();
if (!suffix) {
- LIEF_ERR("Can't read suffix");
+ LIEF_ERR("Failed to read suffix");
break;
}
std::string name = prefix + std::move(*suffix);
if (!is_printable(name)) {
if (!*invalid_names) {
- LIEF_WARN("The export trie contains non-printable symbols");
+ LIEF_WARN("Export trie contains non-printable symbols");
*invalid_names = true;
}
}
auto res_child_node_offet = stream.read_uleb128();
if (!res_child_node_offet) {
- LIEF_ERR("Can't read child_node_offet");
+ LIEF_ERR("Failed to read child_node_offset");
break;
}
auto child_node_offet = static_cast<uint32_t>(*res_child_node_offet);
@@ -310,26 +331,34 @@ ok_error_t BinaryParser::parse_export_trie(exports_list_t& exports,
}
if (!visited_.insert(child_node_offet).second) {
+ LIEF_DEBUG("Cycle detected in export trie at offset {:#x}",
+ child_node_offet);
break;
}
{
ScopedStream scoped(stream, child_node_offet);
- parse_export_trie(exports, *scoped, start, name, invalid_names);
+ if (auto res =
+ parse_export_trie(*scoped, start, name, depth + 1, invalid_names))
+ {
+ exports.insert(exports.end(), std::make_move_iterator(res->begin()),
+ std::make_move_iterator(res->end()));
+ }
}
}
- return ok();
+
+ return exports;
}
ok_error_t BinaryParser::parse_dyld_exports() {
DyldExportsTrie* exports = binary_->dyld_exports_trie();
if (exports == nullptr) {
- LIEF_ERR("Missing LC_DYLD_EXPORTS_TRIE in the main binary");
+ LIEF_ERR("Missing LC_DYLD_EXPORTS_TRIE in main binary");
return make_error_code(lief_errors::not_found);
}
uint32_t offset = exports->data_offset();
- uint32_t size = exports->data_size();
+ uint32_t size = exports->data_size();
if (offset == 0 || size == 0) {
return ok();
@@ -342,14 +371,14 @@ ok_error_t BinaryParser::parse_dyld_exports() {
}
if (linkedit == nullptr) {
- LIEF_WARN("Can't find the segment that contains the export trie");
+ LIEF_WARN("Segment containing export trie not found");
return make_error_code(lief_errors::not_found);
}
- span<uint8_t> content = linkedit->writable_content();
+ span<uint8_t> content = linkedit->content();
const uint64_t rel_offset = offset - linkedit->file_offset();
if (rel_offset > content.size() || (rel_offset + size) > content.size()) {
- LIEF_ERR("The export trie is out of bounds of the segment {}", linkedit->name());
+ LIEF_ERR("Export trie out of bounds for segment {}", linkedit->name());
return make_error_code(lief_errors::read_out_of_bound);
}
@@ -357,8 +386,11 @@ ok_error_t BinaryParser::parse_dyld_exports() {
SpanStream trie_stream(exports->content_);
bool invalid_names = false;
- parse_export_trie(exports->export_info_, trie_stream, offset, "",
- &invalid_names);
+ if (auto res = parse_export_trie(trie_stream, offset, "",
+ /*depth=*/0, &invalid_names))
+ {
+ exports->export_info_ = std::move(*res);
+ }
return ok();
}
@@ -366,12 +398,12 @@ ok_error_t BinaryParser::parse_dyldinfo_export() {
LIEF_DEBUG("[+] LC_DYLD_INFO.exports");
DyldInfo* dyldinfo = binary_->dyld_info();
if (dyldinfo == nullptr) {
- LIEF_ERR("Missing DyldInfo in the main binary");
+ LIEF_ERR("Missing DyldInfo in main binary");
return make_error_code(lief_errors::not_found);
}
uint32_t offset = std::get<0>(dyldinfo->export_info());
- uint32_t size = std::get<1>(dyldinfo->export_info());
+ uint32_t size = std::get<1>(dyldinfo->export_info());
if (offset == 0 || size == 0) {
return ok();
@@ -384,14 +416,14 @@ ok_error_t BinaryParser::parse_dyldinfo_export() {
}
if (linkedit == nullptr) {
- LIEF_WARN("Can't find the segment that contains the export trie");
+ LIEF_WARN("Segment containing export trie not found");
return make_error_code(lief_errors::not_found);
}
- span<uint8_t> content = linkedit->writable_content();
+ span<uint8_t> content = linkedit->content();
const uint64_t rel_offset = offset - linkedit->file_offset();
if (rel_offset > content.size() || (rel_offset + size) > content.size()) {
- LIEF_ERR("The export trie is out of bounds of the segment {}", linkedit->name());
+ LIEF_ERR("Export trie out of bounds for segment {}", linkedit->name());
return make_error_code(lief_errors::read_out_of_bound);
}
@@ -400,7 +432,11 @@ ok_error_t BinaryParser::parse_dyldinfo_export() {
SpanStream trie_stream(dyldinfo->export_trie_);
bool invalid_names = false;
- parse_export_trie(dyldinfo->export_info_, trie_stream, offset, "", &invalid_names);
+ if (auto exports = parse_export_trie(trie_stream, offset, "",
+ /*depth=*/0, &invalid_names))
+ {
+ dyldinfo->export_info_ = std::move(*exports);
+ }
return ok();
}
@@ -412,9 +448,9 @@ ok_error_t BinaryParser::parse_overlay() {
}
const uint64_t overlay_size = stream_->size() - last_offset;
- LIEF_INFO("Overlay detected at 0x{:x} ({} bytes)", last_offset, overlay_size);
+ LIEF_INFO("Overlay detected at {:#x} ({} bytes)", last_offset, overlay_size);
if (!stream_->peek_data(binary_->overlay_, last_offset, overlay_size)) {
- LIEF_WARN("Can't read overlay data");
+ LIEF_WARN("Failed to read overlay data");
return make_error_code(lief_errors::read_error);
}
return ok();
@@ -423,35 +459,45 @@ ok_error_t BinaryParser::parse_overlay() {
ok_error_t BinaryParser::parse_indirect_symbols(DynamicSymbolCommand& cmd,
std::vector<Symbol*>& symtab,
- BinaryStream& indirect_stream)
-{
+ BinaryStream& indirect_stream) {
+ if (symtab.empty()) {
+ LIEF_WARN("Empty symtab: cannot process indirect symbols");
+ return make_error_code(lief_errors::corrupted);
+ }
+
for (size_t i = 0; i < cmd.nb_indirect_symbols(); ++i) {
uint32_t index = 0;
auto res = indirect_stream.read<uint32_t>();
if (!res) {
- LIEF_ERR("Can't read indirect symbol #{}", index);
+ LIEF_ERR("Failed to read indirect symbol #{}", index);
return make_error_code(lief_errors::read_error);
}
index = *res;
if (index == details::INDIRECT_SYMBOL_ABS) {
- cmd.indirect_symbols_.push_back(const_cast<Symbol*>(&Symbol::indirect_abs()));
+ cmd.indirect_symbols_.push_back(
+ const_cast<Symbol*>(&Symbol::indirect_abs())
+ );
continue;
}
if (index == details::INDIRECT_SYMBOL_LOCAL) {
- cmd.indirect_symbols_.push_back(const_cast<Symbol*>(&Symbol::indirect_local()));
+ cmd.indirect_symbols_.push_back(
+ const_cast<Symbol*>(&Symbol::indirect_local())
+ );
continue;
}
if (index == (details::INDIRECT_SYMBOL_LOCAL | details::INDIRECT_SYMBOL_ABS)) {
- cmd.indirect_symbols_.push_back(const_cast<Symbol*>(&Symbol::indirect_abs_local()));
+ cmd.indirect_symbols_.push_back(
+ const_cast<Symbol*>(&Symbol::indirect_abs_local())
+ );
continue;
}
if (index >= symtab.size()) {
- LIEF_ERR("Indirect symbol index is out of range ({}/0x{:x} vs max sym: {})",
- index, index, symtab.size());
+ LIEF_ERR("Indirect symbol index out of range ({}/{:#x}, max: {})", index,
+ index, symtab.size());
continue;
}
@@ -464,5 +510,4 @@ ok_error_t BinaryParser::parse_indirect_symbols(DynamicSymbolCommand& cmd,
return ok();
}
-} // namespace MachO
-} // namespace LIEF
+} // namespace LIEF::MachO
diff --git a/deps/LIEF/src/MachO/BinaryParser.tcc b/deps/LIEF/src/MachO/BinaryParser.tcc
index bbdfabc93c1..0636c711703 100644
--- a/deps/LIEF/src/MachO/BinaryParser.tcc
+++ b/deps/LIEF/src/MachO/BinaryParser.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,15 +14,17 @@
* limitations under the License.
*/
+#include <cstddef>
#include <memory>
+#include <unordered_set>
#include "logging.hpp"
-#include "internal_utils.hpp"
#include "MachO/ChainedFixup.hpp"
#include "LIEF/BinaryStream/SpanStream.hpp"
#include "LIEF/BinaryStream/MemoryStream.hpp"
+#include "LIEF/BinaryStream/DumpStream.hpp"
#include "LIEF/MachO/AtomInfo.hpp"
#include "LIEF/MachO/Binary.hpp"
@@ -46,6 +48,7 @@
#include "LIEF/MachO/FunctionStarts.hpp"
#include "LIEF/MachO/FunctionVariants.hpp"
#include "LIEF/MachO/FunctionVariantFixups.hpp"
+#include "LIEF/MachO/LazyLoadDylibInfo.hpp"
#include "LIEF/MachO/IndirectBindingInfo.hpp"
#include "LIEF/MachO/LinkEdit.hpp"
#include "LIEF/MachO/LinkerOptHint.hpp"
@@ -74,12 +77,12 @@
#include "MachO/Structures.hpp"
#include "MachO/ChainedFixup.hpp"
#include "MachO/ChainedBindingInfoList.hpp"
+#include "MachO/dyld_opcodes.hpp"
#include "Object.tcc"
-namespace LIEF {
-namespace MachO {
+namespace LIEF::MachO {
static constexpr uint8_t BYTE_BITS = std::numeric_limits<uint8_t>::digits;
static_assert(BYTE_BITS == 8, "The number of bits in a byte is not 8");
@@ -87,10 +90,10 @@ static_assert(BYTE_BITS == 8, "The number of bits in a byte is not 8");
namespace {
struct ThreadedBindData {
std::string symbol_name;
- int64_t addend = 0;
+ int64_t addend = 0;
int64_t library_ordinal = 0;
- uint8_t symbol_flags = 0;
- uint8_t type = 0;
+ uint8_t symbol_flags = 0;
+ uint8_t type = 0;
};
}
@@ -103,7 +106,8 @@ ok_error_t BinaryParser::parse() {
/*
* We must perform this post-processing BEFORE parsing
- * the exports trie as it could create new symbols and break the DynamicSymbolCommand's indexes
+ * the exports trie as it could create new symbols and break the
+ * DynamicSymbolCommand's indexes
*/
if (SymbolCommand* symtab = binary_->symbol_command()) {
post_process<MACHO_T>(*symtab);
@@ -194,14 +198,16 @@ ok_error_t BinaryParser::parse() {
if (FunctionVariantFixups* fixups = binary_->function_variant_fixups()) {
post_process<MACHO_T>(*fixups);
}
+ for (LazyLoadDylibInfo& lazy : binary_->lazy_load_dylib_infos()) {
+ post_process<MACHO_T>(lazy);
+ }
- if (binary_->dyld_info() == nullptr &&
- binary_->dyld_chained_fixups() == nullptr)
+ if (binary_->dyld_info() == nullptr && binary_->dyld_chained_fixups() == nullptr)
{
infer_indirect_bindings<MACHO_T>();
}
- if (config_.parse_overlay) {
+ if (config_.parse_overlay && !stream_->is_memory_view()) {
parse_overlay();
}
@@ -225,7 +231,7 @@ ok_error_t BinaryParser::parse_header() {
template<class MACHO_T>
ok_error_t BinaryParser::parse_load_commands() {
using segment_command_t = typename MACHO_T::segment_command;
- using section_t = typename MACHO_T::section;
+ using section_t = typename MACHO_T::section;
LIEF_DEBUG("[+] Building Load commands");
@@ -250,17 +256,25 @@ ok_error_t BinaryParser::parse_load_commands() {
std::set<LoadCommand::TYPE> not_parsed;
int64_t imagebase = -1;
+ uint64_t twolevel_cnt_hint = stream_->size() / sizeof(details::twolevel_hint);
+
for (size_t i = 0; i < nbcmds; ++i) {
const auto command = stream_->peek<details::load_command>(loadcommands_offset);
if (!command) {
break;
}
+ if (command->cmdsize < sizeof(details::load_command)) {
+ LIEF_ERR("Load command #{} has an invalid cmdsize ({:#x})", i,
+ command->cmdsize);
+ break;
+ }
+
std::unique_ptr<LoadCommand> load_command;
const auto cmd_type = static_cast<LoadCommand::TYPE>(command->cmd);
- LIEF_DEBUG("Parsing command #{:02d}: {} (0x{:04x})",
- i, to_string(cmd_type), (uint64_t)cmd_type);
+ LIEF_DEBUG("Parsing command #{:02d}: {} ({:#06x})", i, to_string(cmd_type),
+ (uint64_t)cmd_type);
switch (cmd_type) {
@@ -269,98 +283,120 @@ ok_error_t BinaryParser::parse_load_commands() {
// ===============
case LoadCommand::TYPE::SEGMENT_64:
case LoadCommand::TYPE::SEGMENT:
- {
- /*
- * DO NOT FORGET TO UPDATE SegmentCommand::classof
- */
- uint64_t local_offset = loadcommands_offset;
- const auto segment_cmd = stream_->peek<segment_command_t>(loadcommands_offset);
- if (!segment_cmd) {
- LIEF_ERR("Can't parse segment command #{}", i);
- break;
- }
-
- if (std::string(segment_cmd->segname, 10) == "__LINKEDIT") {
- load_command = std::make_unique<LinkEdit>(*segment_cmd);
- } else {
- load_command = std::make_unique<SegmentCommand>(*segment_cmd);
- }
-
- local_offset += sizeof(segment_command_t);
+ {
+ /*
+ * DO NOT FORGET TO UPDATE SegmentCommand::classof
+ */
+ uint64_t local_offset = loadcommands_offset;
+ const auto segment_cmd =
+ stream_->peek<segment_command_t>(loadcommands_offset);
+ if (!segment_cmd) {
+ LIEF_ERR("Can't parse segment command #{}", i);
+ break;
+ }
- auto* segment = load_command->as<SegmentCommand>();
- segment->index_ = binary_->segments_.size();
- binary_->segments_.push_back(segment);
+ if (std::string(segment_cmd->segname, 10) == "__LINKEDIT") {
+ load_command = std::make_unique<LinkEdit>(*segment_cmd);
+ } else {
+ load_command = std::make_unique<SegmentCommand>(*segment_cmd);
+ }
- if (Binary::can_cache_segment(*segment)) {
- binary_->offset_seg_[segment->file_offset()] = segment;
- }
+ local_offset += sizeof(segment_command_t);
- if (segment->name() == "__TEXT" && imagebase < 0) {
- imagebase = segment->virtual_address();
- }
+ auto* segment = load_command->as<SegmentCommand>();
+ segment->index_ = binary_->segments_.size();
+ binary_->segments_.push_back(segment);
- if (MemoryStream::classof(*stream_)) {
- // Link the memory stream with our
- // binary object so that is can translate virtual address to offset
- static_cast<MemoryStream&>(*stream_).binary(*binary_);
- }
+ if (Binary::can_cache_segment(*segment)) {
+ binary_->offset_seg_[segment->file_offset()] = segment;
+ }
- if (segment->file_size() > 0) {
- if (MemoryStream::classof(*stream_)) {
- auto& memstream = static_cast<MemoryStream&>(*stream_);
- uintptr_t segment_va = segment->virtual_address();
- if (imagebase >= 0 && segment_va >= static_cast<uint64_t>(imagebase)) {
- segment_va -= static_cast<uint64_t>(imagebase);
- }
+ if (segment->name() == "__TEXT" && imagebase < 0) {
+ imagebase = segment->virtual_address();
+ }
- uintptr_t address = memstream.base_address() + segment_va;
- const auto* p = reinterpret_cast<const uint8_t*>(address);
- segment->data_ = {p, p + segment->file_size()};
+ // Link the memory stream with our
+ // binary object so that it can translate virtual address to offset
+ stream_->bind_binary(*binary_);
+
+ if (segment->file_size() > 0) {
+ if (auto* memstream = stream_->cast<MemoryStream>()) {
+ uintptr_t segment_va = segment->virtual_address();
+ if (imagebase < 0) {
+ LIEF_WARN("Segment {}: missing __TEXT/imagebase for the in-memory "
+ "rebasing",
+ segment->name());
} else {
- if (!stream_->peek_data(segment->data_,
- segment->file_offset(),
- segment->file_size(),
- segment->virtual_address()))
- {
- LIEF_ERR("Segment {}: content corrupted!", segment->name());
+ if (segment_va >= (uint64_t)imagebase) {
+ segment_va -= (uint64_t)imagebase;
}
+ const uint64_t msize = memstream->size();
+ if (segment_va >= msize) {
+ LIEF_WARN("Segment {}: virtual address {:#x} is beyond the "
+ "memory size {:#x}",
+ segment->name(), segment_va, msize);
+ } else {
+ const uint64_t avail = msize - segment_va;
+ const uint64_t n = std::min<uint64_t>(segment->file_size(), avail);
+ uintptr_t address = memstream->base_address() + segment_va;
+ const auto* p = reinterpret_cast<const uint8_t*>(address);
+ segment->data_ = {p, p + n};
+ }
+ }
+ } else {
+ if (!stream_->peek_data(segment->data_, segment->file_offset(),
+ segment->file_size(),
+ segment->virtual_address()))
+ {
+ LIEF_ERR("Segment {}: content corrupted", segment->name());
}
}
+ }
- // --------
- // Sections
- // --------
- for (size_t j = 0; j < segment->numberof_sections(); ++j) {
- const auto section_header = stream_->peek<section_t>(local_offset);
- if (!section_header) {
- LIEF_ERR("Can't parse section in {}#{}",
- load_command->as<SegmentCommand>()->name(), i);
- break;
- }
- auto section = std::make_unique<Section>(*section_header);
+ // --------
+ // Sections
+ // --------
+ uint64_t nsects = segment->numberof_sections();
+ uint64_t max_sects = 0;
+ if (segment_cmd->cmdsize >= sizeof(segment_command_t)) {
+ max_sects = (segment_cmd->cmdsize - sizeof(segment_command_t)) /
+ sizeof(section_t);
+ }
- binary_->sections_.push_back(section.get());
- if (section->size_ > 0 &&
- section->type() != Section::TYPE::ZEROFILL &&
- section->type() != Section::TYPE::THREAD_LOCAL_ZEROFILL &&
- section->offset_ < low_fileoff)
- {
- low_fileoff = section->offset_;
- }
- section->segment_ = segment;
- segment->sections_.push_back(std::move(section));
- local_offset += sizeof(section_t);
+ if (nsects > max_sects) {
+ LIEF_WARN("Segment '{}': nsects ({}) does not fit in the command size; "
+ "clamping to {}",
+ segment->name(), nsects, max_sects);
+ nsects = max_sects;
+ }
+ for (size_t j = 0; j < nsects; ++j) {
+ const auto section_header = stream_->peek<section_t>(local_offset);
+ if (!section_header) {
+ LIEF_ERR("Can't parse section in {}#{}",
+ load_command->as<SegmentCommand>()->name(), i);
+ break;
}
- if (segment->numberof_sections() == 0 &&
- segment->file_offset() != 0 &&
- segment->file_size() != 0 &&
- segment->file_offset() < low_fileoff)
+
+ std::unique_ptr<Section> section = Section::create(*section_header);
+
+ binary_->sections_.push_back(section.get());
+ if (section->size_ > 0 && section->type() != Section::TYPE::ZEROFILL &&
+ section->type() != Section::TYPE::THREAD_LOCAL_ZEROFILL &&
+ section->offset_ < low_fileoff)
{
- low_fileoff = segment->file_offset();
+ low_fileoff = section->offset_;
}
- break;
+ section->segment_ = segment;
+ segment->sections_.push_back(std::move(section));
+ local_offset += sizeof(section_t);
}
+ if (segment->numberof_sections() == 0 && segment->file_offset() != 0 &&
+ segment->file_size() != 0 && segment->file_offset() < low_fileoff)
+ {
+ low_fileoff = segment->file_offset();
+ }
+ break;
+ }
// =============
@@ -372,537 +408,578 @@ ok_error_t BinaryParser::parse_load_commands() {
case LoadCommand::TYPE::REEXPORT_DYLIB:
case LoadCommand::TYPE::LOAD_UPWARD_DYLIB:
case LoadCommand::TYPE::LAZY_LOAD_DYLIB:
- {
- /*
- * DO NOT FORGET TO UPDATE DylibCommand::classof
- */
- const auto cmd = stream_->peek<details::dylib_command>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't read dylib_command");
- break;
- }
-
- load_command = std::make_unique<DylibCommand>(*cmd);
- const uint32_t str_name_offset = cmd->name;
- auto name = stream_->peek_string_at(loadcommands_offset + str_name_offset);
- if (!name) {
- LIEF_ERR("Can't read Dylib string value");
- break;
- }
+ {
+ /*
+ * DO NOT FORGET TO UPDATE DylibCommand::classof
+ */
+ const auto cmd =
+ stream_->peek<details::dylib_command>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR("Can't read dylib_command");
+ break;
+ }
- auto* lib = load_command->as<DylibCommand>();
- lib->name(*name);
- binary_->libraries_.push_back(lib);
- if (cmd_type != LoadCommand::TYPE::ID_DYLIB) {
- binding_libs_.push_back(lib);
- }
+ load_command = std::make_unique<DylibCommand>(*cmd);
+ const uint32_t str_name_offset = cmd->name;
+ auto name = stream_->peek_string_at(loadcommands_offset + str_name_offset);
+ if (!name) {
+ LIEF_ERR("Can't read Dylib string value");
break;
}
+ auto* lib = load_command->as<DylibCommand>();
+ lib->name(*name);
+ binary_->libraries_.push_back(lib);
+ if (cmd_type != LoadCommand::TYPE::ID_DYLIB) {
+ binding_libs_.push_back(lib);
+ }
+ break;
+ }
+
// =============
// RPath Command
// =============
case LoadCommand::TYPE::RPATH:
- {
- /*
- * DO NOT FORGET TO UPDATE RPathCommand::classof
- */
- const auto cmd = stream_->peek<details::rpath_command>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't read rpath_command");
- break;
- }
-
- load_command = std::make_unique<RPathCommand>(*cmd);
- const uint32_t str_path_offset = cmd->path;
- auto path = stream_->peek_string_at(loadcommands_offset + str_path_offset);
- if (!path) {
- LIEF_ERR("Can't read rpath_command.path");
- break;
- }
+ {
+ /*
+ * DO NOT FORGET TO UPDATE RPathCommand::classof
+ */
+ const auto cmd =
+ stream_->peek<details::rpath_command>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR("Can't read rpath_command");
+ break;
+ }
- load_command->as<RPathCommand>()->path(*path);
+ load_command = std::make_unique<RPathCommand>(*cmd);
+ const uint32_t str_path_offset = cmd->path;
+ auto path = stream_->peek_string_at(loadcommands_offset + str_path_offset);
+ if (!path) {
+ LIEF_ERR("Can't read rpath_command.path");
break;
}
+ load_command->as<RPathCommand>()->path(*path);
+ break;
+ }
+
// ====
// UUID
// ====
case LoadCommand::TYPE::UUID:
- {
- /*
- * DO NOT FORGET TO UPDATE UUIDCommand::classof
- */
- const auto cmd = stream_->peek<details::uuid_command>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't read uuid_command");
- break;
- }
- load_command = std::make_unique<UUIDCommand>(*cmd);
+ {
+ /*
+ * DO NOT FORGET TO UPDATE UUIDCommand::classof
+ */
+ const auto cmd = stream_->peek<details::uuid_command>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR("Can't read uuid_command");
break;
}
+ load_command = std::make_unique<UUIDCommand>(*cmd);
+ break;
+ }
// ==============
// Dynamic Linker
// ==============
case LoadCommand::TYPE::LOAD_DYLINKER:
case LoadCommand::TYPE::ID_DYLINKER:
- {
- /*
- * DO NOT FORGET TO UPDATE DylinkerCommand::classof
- */
- const auto cmd = stream_->peek<details::dylinker_command>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't read dylinker_command");
- break;
- }
+ {
+ /*
+ * DO NOT FORGET TO UPDATE DylinkerCommand::classof
+ */
+ const auto cmd =
+ stream_->peek<details::dylinker_command>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR("Can't read dylinker_command");
+ break;
+ }
- load_command = std::make_unique<DylinkerCommand>(*cmd);
+ load_command = std::make_unique<DylinkerCommand>(*cmd);
- const uint32_t linker_name_offset = cmd->name;
- auto name = stream_->peek_string_at(loadcommands_offset + linker_name_offset);
- if (!name) {
- LIEF_ERR("Can't read dylinker_command.name");
- break;
- }
- load_command->as<DylinkerCommand>()->name(*name);
+ const uint32_t linker_name_offset = cmd->name;
+ auto name =
+ stream_->peek_string_at(loadcommands_offset + linker_name_offset);
+ if (!name) {
+ LIEF_ERR("Can't read dylinker_command.name");
break;
}
+ load_command->as<DylinkerCommand>()->name(*name);
+ break;
+ }
// ======
// Thread
// ======
case LoadCommand::TYPE::THREAD:
case LoadCommand::TYPE::UNIXTHREAD:
- {
- /*
- * DO NOT FORGET TO UPDATE ThreadCommand::classof
- */
- const auto cmd = stream_->peek<details::thread_command>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't read thread_command");
+ {
+ /*
+ * DO NOT FORGET TO UPDATE ThreadCommand::classof
+ */
+ const auto cmd =
+ stream_->peek<details::thread_command>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR("Can't read thread_command");
+ break;
+ }
+ load_command = std::make_unique<ThreadCommand>(*cmd);
+
+ auto* thread = load_command->as<ThreadCommand>();
+ thread->architecture_ = binary_->header().cpu_type();
+ LIEF_DEBUG("FLAVOR: {} | COUNT: {}", cmd->flavor, cmd->count);
+ const uint64_t state_offset =
+ loadcommands_offset + sizeof(details::thread_command);
+ const Header::CPU_TYPE arch = binary_->header().cpu_type();
+ switch (arch) {
+ case Header::CPU_TYPE::X86:
+ {
+ if (!stream_->peek_data(thread->state_, state_offset,
+ sizeof(details::x86_thread_state_t)))
+ {
+ LIEF_ERR("Can't read the state data");
+ }
break;
}
- load_command = std::make_unique<ThreadCommand>(*cmd);
-
- auto* thread = load_command->as<ThreadCommand>();
- thread->architecture_ = binary_->header().cpu_type();
- LIEF_DEBUG("FLAVOR: {} | COUNT: {}", cmd->flavor, cmd->count);
- const uint64_t state_offset = loadcommands_offset + sizeof(details::thread_command);
- const Header::CPU_TYPE arch = binary_->header().cpu_type();
- switch (arch) {
- case Header::CPU_TYPE::X86:
- {
- if (!stream_->peek_data(thread->state_, state_offset,
- sizeof(details::x86_thread_state_t)))
- {
- LIEF_ERR("Can't read the state data");
- }
- break;
- }
- case Header::CPU_TYPE::X86_64:
- {
- if (!stream_->peek_data(thread->state_, state_offset,
- sizeof(details::x86_thread_state64_t)))
- {
- LIEF_ERR("Can't read the state data");
- }
- break;
- }
+ case Header::CPU_TYPE::X86_64:
+ {
+ if (!stream_->peek_data(thread->state_, state_offset,
+ sizeof(details::x86_thread_state64_t)))
+ {
+ LIEF_ERR("Can't read the state data");
+ }
+ break;
+ }
- case Header::CPU_TYPE::ARM:
- {
- if (!stream_->peek_data(thread->state_, state_offset,
- sizeof(details::arm_thread_state_t)))
- {
- LIEF_ERR("Can't read the state data");
- }
- break;
- }
+ case Header::CPU_TYPE::ARM:
+ {
+ if (!stream_->peek_data(thread->state_, state_offset,
+ sizeof(details::arm_thread_state_t)))
+ {
+ LIEF_ERR("Can't read the state data");
+ }
+ break;
+ }
- case Header::CPU_TYPE::ARM64:
- {
- if (!stream_->peek_data(thread->state_, state_offset,
- sizeof(details::arm_thread_state64_t)))
- {
- LIEF_ERR("Can't read the state data");
- }
- break;
- }
+ case Header::CPU_TYPE::ARM64:
+ {
+ if (!stream_->peek_data(thread->state_, state_offset,
+ sizeof(details::arm_thread_state64_t)))
+ {
+ LIEF_ERR("Can't read the state data");
+ }
+ break;
+ }
- case Header::CPU_TYPE::POWERPC:
- {
- if (!stream_->peek_data(thread->state_, state_offset,
- sizeof(details::ppc_thread_state_t)))
- {
- LIEF_ERR("Can't read the state data");
- }
- break;
- }
+ case Header::CPU_TYPE::POWERPC:
+ {
+ if (!stream_->peek_data(thread->state_, state_offset,
+ sizeof(details::ppc_thread_state_t)))
+ {
+ LIEF_ERR("Can't read the state data");
+ }
+ break;
+ }
- case Header::CPU_TYPE::POWERPC64:
- {
- if (!stream_->peek_data(thread->state_, state_offset,
- sizeof(details::ppc_thread_state64_t)))
- {
- LIEF_ERR("Can't read the state data");
- }
- break;
- }
+ case Header::CPU_TYPE::POWERPC64:
+ {
+ if (!stream_->peek_data(thread->state_, state_offset,
+ sizeof(details::ppc_thread_state64_t)))
+ {
+ LIEF_ERR("Can't read the state data");
+ }
+ break;
+ }
- default:
- {
- static std::set<int32_t> ARCH_ERR;
- if (ARCH_ERR.insert((int32_t)arch).second) {
- LIEF_ERR("Unknown architecture ({})", (int32_t)arch);
- }
- }
+ default:
+ {
+ static std::set<int32_t> ARCH_ERR;
+ if (ARCH_ERR.insert((int32_t)arch).second) {
+ LIEF_ERR("Unknown architecture ({})", (int32_t)arch);
+ }
}
- break;
}
+ break;
+ }
// ===============
// Routine command
// ===============
case LoadCommand::TYPE::ROUTINES_64:
- {
- const auto cmd = stream_->peek<details::routines_command_64>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't read routines_command_64");
- break;
- }
- load_command = std::make_unique<Routine>(*cmd);
+ {
+ const auto cmd =
+ stream_->peek<details::routines_command_64>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR("Can't read routines_command_64");
break;
}
+ load_command = std::make_unique<Routine>(*cmd);
+ break;
+ }
case LoadCommand::TYPE::ROUTINES:
- {
- const auto cmd = stream_->peek<details::routines_command_32>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't read routines_command_32");
- break;
- }
- load_command = std::make_unique<Routine>(*cmd);
+ {
+ const auto cmd =
+ stream_->peek<details::routines_command_32>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR("Can't read routines_command_32");
break;
}
+ load_command = std::make_unique<Routine>(*cmd);
+ break;
+ }
- // =============
- // Symbols table
- // =============
+ // ============
+ // Symbol table
+ // ============
case LoadCommand::TYPE::SYMTAB:
- {
- /*
- * DO NOT FORGET TO UPDATE SymbolCommand::classof
- */
- LIEF_DEBUG("[+] Parsing symbols");
-
- const auto cmd = stream_->peek<details::symtab_command>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't read symtab_command");
- break;
- }
+ {
+ /*
+ * DO NOT FORGET TO UPDATE SymbolCommand::classof
+ */
+ LIEF_DEBUG("[+] Parsing symbols");
+
+ const auto cmd =
+ stream_->peek<details::symtab_command>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR("Can't read symtab_command");
+ break;
+ }
- LIEF_DEBUG("LC_SYMTAB.symoff: 0x{:016x}", cmd->symoff);
- LIEF_DEBUG("LC_SYMTAB.nsyms: 0x{:016x}", cmd->nsyms);
- LIEF_DEBUG("LC_SYMTAB.stroff: 0x{:016x}", cmd->stroff);
- LIEF_DEBUG("LC_SYMTAB.strsize: 0x{:016x}", cmd->strsize);
+ LIEF_DEBUG("LC_SYMTAB.symoff: {:#018x}", cmd->symoff);
+ LIEF_DEBUG("LC_SYMTAB.nsyms: {:#018x}", cmd->nsyms);
+ LIEF_DEBUG("LC_SYMTAB.stroff: {:#018x}", cmd->stroff);
+ LIEF_DEBUG("LC_SYMTAB.strsize: {:#018x}", cmd->strsize);
- load_command = std::make_unique<SymbolCommand>(*cmd);
- break;
- }
+ load_command = std::make_unique<SymbolCommand>(*cmd);
+ break;
+ }
// ===============
// Dynamic Symbols
// ===============
case LoadCommand::TYPE::DYSYMTAB:
- {
- /*
- * DO NOT FORGET TO UPDATE DynamicSymbolCommand::classof
- */
- LIEF_DEBUG("[+] Parsing dynamic symbols");
- const auto cmd = stream_->peek<details::dysymtab_command>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't parse dysymtab_command");
- break;
- }
- load_command = std::make_unique<DynamicSymbolCommand>(*cmd);
+ {
+ /*
+ * DO NOT FORGET TO UPDATE DynamicSymbolCommand::classof
+ */
+ LIEF_DEBUG("[+] Parsing dynamic symbols");
+ const auto cmd =
+ stream_->peek<details::dysymtab_command>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR("Can't parse dysymtab_command");
break;
}
+ load_command = std::make_unique<DynamicSymbolCommand>(*cmd);
+ break;
+ }
// ===============
- // Dyd Info
+ // Dyld Info
// ===============
case LoadCommand::TYPE::DYLD_INFO:
case LoadCommand::TYPE::DYLD_INFO_ONLY:
- {
- /*
- * DO NOT FORGET TO UPDATE DyldInfo::classof
- */
- LIEF_DEBUG("[+] Parsing dyld information");
- const auto cmd = stream_->peek<details::dyld_info_command>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't parse dyld_info_command");
- break;
- }
- load_command = std::make_unique<DyldInfo>(*cmd);
- load_command->as<DyldInfo>()->binary_ = binary_.get();
+ {
+ /*
+ * DO NOT FORGET TO UPDATE DyldInfo::classof
+ */
+ LIEF_DEBUG("[+] Parsing dyld information");
+ const auto cmd =
+ stream_->peek<details::dyld_info_command>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR("Can't parse dyld_info_command");
break;
}
+ load_command = std::make_unique<DyldInfo>(*cmd);
+ load_command->as<DyldInfo>()->binary_ = binary_.get();
+ break;
+ }
// ===============
// Source Version
// ===============
case LoadCommand::TYPE::SOURCE_VERSION:
- {
- /*
- * DO NOT FORGET TO UPDATE SourceVersion::classof
- */
- LIEF_DEBUG("[+] Parsing LC_SOURCE_VERSION");
-
- const auto cmd = stream_->peek<details::source_version_command>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't parse source_version_command");
- break;
- }
- load_command = std::make_unique<SourceVersion>(*cmd);
- LIEF_DEBUG("Version: 0x{:x}", cmd->version);
+ {
+ /*
+ * DO NOT FORGET TO UPDATE SourceVersion::classof
+ */
+ LIEF_DEBUG("[+] Parsing LC_SOURCE_VERSION");
+
+ const auto cmd =
+ stream_->peek<details::source_version_command>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR("Can't parse source_version_command");
break;
}
+ load_command = std::make_unique<SourceVersion>(*cmd);
+ LIEF_DEBUG("Version: {:#x}", cmd->version);
+ break;
+ }
case LoadCommand::TYPE::VERSION_MIN_MACOSX:
case LoadCommand::TYPE::VERSION_MIN_IPHONEOS:
case LoadCommand::TYPE::VERSION_MIN_TVOS:
case LoadCommand::TYPE::VERSION_MIN_WATCHOS:
- {
- /*
- * DO NOT FORGET TO UPDATE VersionMin::classof
- */
- LIEF_DEBUG("[+] Parsing {}", to_string(cmd_type));
-
- const auto cmd = stream_->peek<details::version_min_command>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't parse version_min_command");
- break;
- }
- LIEF_DEBUG("Version: 0x{:x} | SDK: 0x{:x}", cmd->version, cmd->sdk);
-
- load_command = std::make_unique<VersionMin>(*cmd);
+ {
+ /*
+ * DO NOT FORGET TO UPDATE VersionMin::classof
+ */
+ LIEF_DEBUG("[+] Parsing {}", to_string(cmd_type));
+
+ const auto cmd =
+ stream_->peek<details::version_min_command>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR("Can't parse version_min_command");
break;
}
+ LIEF_DEBUG("Version: {:#x} | SDK: {:#x}", cmd->version, cmd->sdk);
+
+ load_command = std::make_unique<VersionMin>(*cmd);
+ break;
+ }
case LoadCommand::TYPE::BUILD_VERSION:
- {
- /*
- * DO NOT FORGET TO UPDATE BuildVersion::classof
- */
- LIEF_DEBUG("[+] Parsing {}", to_string(cmd_type));
+ {
+ /*
+ * DO NOT FORGET TO UPDATE BuildVersion::classof
+ */
+ LIEF_DEBUG("[+] Parsing {}", to_string(cmd_type));
+
+ const auto cmd =
+ stream_->peek<details::build_version_command>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR("Can't parse build_version_command");
+ break;
+ }
- const auto cmd = stream_->peek<details::build_version_command>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't parse build_version_command");
- break;
- }
+ load_command = std::make_unique<BuildVersion>(*cmd);
+ auto* build_version = load_command->as<BuildVersion>();
+ uint64_t ntools = cmd->ntools;
+ uint64_t max_tools = 0;
- load_command = std::make_unique<BuildVersion>(*cmd);
- auto* build_version = load_command->as<BuildVersion>();
- for (size_t i = 0; i < cmd->ntools; ++i) {
- const uint64_t cmd_offset = loadcommands_offset + sizeof(details::build_version_command) +
- i * sizeof(details::build_tool_version);
+ if (cmd->cmdsize >= sizeof(details::build_version_command)) {
+ max_tools = (cmd->cmdsize - sizeof(details::build_version_command)) /
+ sizeof(details::build_tool_version);
+ }
- auto tool_struct = stream_->peek<details::build_tool_version>(cmd_offset);
- if (!tool_struct) {
- break;
- }
- build_version->tools_.emplace_back(*tool_struct);
+ if (ntools > max_tools) {
+ LIEF_WARN("LC_BUILD_VERSION.ntools ({}) does not fit in the command "
+ "size: clamping to {}",
+ ntools, max_tools);
+ ntools = max_tools;
+ }
+ for (size_t i = 0; i < ntools; ++i) {
+ const uint64_t cmd_offset = loadcommands_offset +
+ sizeof(details::build_version_command) +
+ i * sizeof(details::build_tool_version);
+
+ auto tool_struct =
+ stream_->peek<details::build_tool_version>(cmd_offset);
+ if (!tool_struct) {
+ break;
}
- break;
+ build_version->tools_.emplace_back(*tool_struct);
}
+ break;
+ }
// =================
// Code Signature
// =================
case LoadCommand::TYPE::DYLIB_CODE_SIGN_DRS:
+ {
+ /*
+ * DO NOT FORGET TO UPDATE CodeSignatureDir::classof
+ */
+ if (auto cmd =
+ stream_->peek<details::linkedit_data_command>(loadcommands_offset))
{
- /*
- * DO NOT FORGET TO UPDATE CodeSignatureDir::classof
- */
- if (auto cmd = stream_->peek<details::linkedit_data_command>(loadcommands_offset)) {
- load_command = std::make_unique<CodeSignatureDir>(*cmd);
- } else {
- LIEF_ERR("Can't parse linkedit_data_command for LC_DYLIB_CODE_SIGN_DRS");
- }
- break;
+ load_command = std::make_unique<CodeSignatureDir>(*cmd);
+ } else {
+ LIEF_ERR("Can't parse linkedit_data_command for LC_DYLIB_CODE_SIGN_DRS");
}
+ break;
+ }
case LoadCommand::TYPE::CODE_SIGNATURE:
+ {
+ /*
+ * DO NOT FORGET TO UPDATE CodeSignature::classof
+ */
+ if (auto cmd =
+ stream_->peek<details::linkedit_data_command>(loadcommands_offset))
{
- /*
- * DO NOT FORGET TO UPDATE CodeSignature::classof
- */
- if (auto cmd = stream_->peek<details::linkedit_data_command>(loadcommands_offset)) {
- load_command = std::make_unique<CodeSignature>(*cmd);
- } else {
- LIEF_ERR("Can't parse linkedit_data_command for LC_CODE_SIGNATURE");
- }
- break;
+ load_command = std::make_unique<CodeSignature>(*cmd);
+ } else {
+ LIEF_ERR("Can't parse linkedit_data_command for LC_CODE_SIGNATURE");
}
+ break;
+ }
// ==============
// Data in Code
// ==============
case LoadCommand::TYPE::DATA_IN_CODE:
- {
- /*
- * DO NOT FORGET TO UPDATE DataInCode::classof
- */
- const auto cmd = stream_->peek<details::linkedit_data_command>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't parse linkedit_data_command for LC_DATA_IN_CODE");
- break;
- }
- load_command = std::make_unique<DataInCode>(*cmd);
+ {
+ /*
+ * DO NOT FORGET TO UPDATE DataInCode::classof
+ */
+ const auto cmd =
+ stream_->peek<details::linkedit_data_command>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR("Can't parse linkedit_data_command for LC_DATA_IN_CODE");
break;
}
+ load_command = std::make_unique<DataInCode>(*cmd);
+ break;
+ }
// =======
// LC_MAIN
// =======
case LoadCommand::TYPE::MAIN:
- {
- /*
- * DO NOT FORGET TO UPDATE MainCommand::classof
- */
- LIEF_DEBUG("[+] Parsing LC_MAIN");
- const auto cmd = stream_->peek<details::entry_point_command>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't parse entry_point_command");
- break;
- }
- load_command = std::make_unique<MainCommand>(*cmd);
+ {
+ /*
+ * DO NOT FORGET TO UPDATE MainCommand::classof
+ */
+ LIEF_DEBUG("[+] Parsing LC_MAIN");
+ const auto cmd =
+ stream_->peek<details::entry_point_command>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR("Can't parse entry_point_command");
break;
}
+ load_command = std::make_unique<MainCommand>(*cmd);
+ break;
+ }
// ==================
// LC_FUNCTION_STARTS
// ==================
case LoadCommand::TYPE::FUNCTION_STARTS:
- {
- /*
- * DO NOT FORGET TO UPDATE FunctionStarts::classof
- */
- LIEF_DEBUG("[+] Parsing LC_FUNCTION_STARTS");
- const auto cmd = stream_->peek<details::linkedit_data_command>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't parse linkedit_data_command for LC_FUNCTION_STARTS");
- break;
- }
- load_command = std::make_unique<FunctionStarts>(*cmd);
+ {
+ /*
+ * DO NOT FORGET TO UPDATE FunctionStarts::classof
+ */
+ LIEF_DEBUG("[+] Parsing LC_FUNCTION_STARTS");
+ const auto cmd =
+ stream_->peek<details::linkedit_data_command>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR("Can't parse linkedit_data_command for LC_FUNCTION_STARTS");
break;
}
+ load_command = std::make_unique<FunctionStarts>(*cmd);
+ break;
+ }
// ==================
// LC_ATOM_INFO
// ==================
case LoadCommand::TYPE::ATOM_INFO:
- {
- /*
- * DO NOT FORGET TO UPDATE AtomInfo::classof
- */
- LIEF_DEBUG("[+] Parsing LC_ATOM_INFO");
- const auto cmd = stream_->peek<details::linkedit_data_command>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't parse linkedit_data_command for LC_ATOM_INFO");
- break;
- }
- load_command = std::make_unique<AtomInfo>(*cmd);
+ {
+ /*
+ * DO NOT FORGET TO UPDATE AtomInfo::classof
+ */
+ LIEF_DEBUG("[+] Parsing LC_ATOM_INFO");
+ const auto cmd =
+ stream_->peek<details::linkedit_data_command>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR("Can't parse linkedit_data_command for LC_ATOM_INFO");
break;
}
+ load_command = std::make_unique<AtomInfo>(*cmd);
+ break;
+ }
case LoadCommand::TYPE::SEGMENT_SPLIT_INFO:
- {
- /*
- * DO NOT FORGET TO UPDATE SegmentSplitInfo::classof
- */
- LIEF_DEBUG("[+] Parsing LC_SEGMENT_SPLIT_INFO");
- const auto cmd = stream_->peek<details::linkedit_data_command>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't parse linkedit_data_command for LC_SEGMENT_SPLIT_INFO");
- break;
- }
- load_command = std::make_unique<SegmentSplitInfo>(*cmd);
+ {
+ /*
+ * DO NOT FORGET TO UPDATE SegmentSplitInfo::classof
+ */
+ LIEF_DEBUG("[+] Parsing LC_SEGMENT_SPLIT_INFO");
+ const auto cmd =
+ stream_->peek<details::linkedit_data_command>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR("Can't parse linkedit_data_command for LC_SEGMENT_SPLIT_INFO");
break;
-
}
+ load_command = std::make_unique<SegmentSplitInfo>(*cmd);
+ break;
+ }
case LoadCommand::TYPE::SUB_FRAMEWORK:
- {
- /*
- * DO NOT FORGET TO UPDATE SubFramework::classof
- */
- const auto cmd = stream_->peek<details::sub_framework_command>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't parse sub_framework_command");
- break;
- }
- auto u = stream_->peek_string_at(loadcommands_offset + cmd->umbrella);
- if (!u) {
- LIEF_ERR("Can't read umbrella string");
- break;
- }
- auto sf = std::make_unique<SubFramework>(*cmd);
- sf->umbrella(*u);
- load_command = std::move(sf);
+ {
+ /*
+ * DO NOT FORGET TO UPDATE SubFramework::classof
+ */
+ const auto cmd =
+ stream_->peek<details::sub_framework_command>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR("Can't parse sub_framework_command");
+ break;
+ }
+ auto u = stream_->peek_string_at(loadcommands_offset + cmd->umbrella);
+ if (!u) {
+ LIEF_ERR("Can't read umbrella string");
break;
}
+ auto sf = std::make_unique<SubFramework>(*cmd);
+ sf->umbrella(*u);
+ load_command = std::move(sf);
+ break;
+ }
case LoadCommand::TYPE::SUB_CLIENT:
- {
- /*
- * DO NOT FORGET TO UPDATE SubClient::classof
- */
- const auto cmd = stream_->peek<details::sub_client_command>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't parse sub_client_command");
- break;
- }
- auto u = stream_->peek_string_at(loadcommands_offset + cmd->client);
- if (!u) {
- LIEF_ERR("Can't read client name string");
- break;
- }
- auto sf = std::make_unique<SubClient>(*cmd);
- sf->client(*u);
- load_command = std::move(sf);
+ {
+ /*
+ * DO NOT FORGET TO UPDATE SubClient::classof
+ */
+ const auto cmd =
+ stream_->peek<details::sub_client_command>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR("Can't parse sub_client_command");
break;
}
+ auto u = stream_->peek_string_at(loadcommands_offset + cmd->client);
+ if (!u) {
+ LIEF_ERR("Can't read client name string");
+ break;
+ }
+ auto sf = std::make_unique<SubClient>(*cmd);
+ sf->client(*u);
+ load_command = std::move(sf);
+ break;
+ }
case LoadCommand::TYPE::DYLD_ENVIRONMENT:
- {
- /*
- * DO NOT FORGET TO UPDATE DyldEnvironment::classof
- */
- const auto cmd = stream_->peek<details::dylinker_command>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't parse dylinker_command");
- break;
- }
+ {
+ /*
+ * DO NOT FORGET TO UPDATE DyldEnvironment::classof
+ */
+ const auto cmd =
+ stream_->peek<details::dylinker_command>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR("Can't parse dylinker_command");
+ break;
+ }
- auto value = stream_->peek_string_at(loadcommands_offset + cmd->name);
- if (!value) {
- LIEF_ERR("Can't read dylinker_command.name");
- break;
- }
- auto env = std::make_unique<DyldEnvironment>(*cmd);
- env->value(*value);
- load_command = std::move(env);
+ auto value = stream_->peek_string_at(loadcommands_offset + cmd->name);
+ if (!value) {
+ LIEF_ERR("Can't read dylinker_command.name");
break;
}
+ auto env = std::make_unique<DyldEnvironment>(*cmd);
+ env->value(*value);
+ load_command = std::move(env);
+ break;
+ }
// ================
@@ -910,241 +987,308 @@ ok_error_t BinaryParser::parse_load_commands() {
// ================
case LoadCommand::TYPE::ENCRYPTION_INFO:
case LoadCommand::TYPE::ENCRYPTION_INFO_64:
- {
- /*
- * DO NOT FORGET TO UPDATE EncryptionInfo::classof
- */
- LIEF_DEBUG("[+] Parsing {}", to_string(cmd_type));
- const auto cmd = stream_->peek<details::encryption_info_command>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't parse encryption_info_command");
- break;
- }
- load_command = std::make_unique<EncryptionInfo>(*cmd);
+ {
+ /*
+ * DO NOT FORGET TO UPDATE EncryptionInfo::classof
+ */
+ LIEF_DEBUG("[+] Parsing {}", to_string(cmd_type));
+ const auto cmd =
+ stream_->peek<details::encryption_info_command>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR("Can't parse encryption_info_command");
break;
}
+ load_command = std::make_unique<EncryptionInfo>(*cmd);
+ break;
+ }
// ==============
// File Set Entry
// ==============
case LoadCommand::TYPE::FILESET_ENTRY:
- {
- /*
- * DO NOT FORGET TO UPDATE FilesetCommand::classof
- */
- LIEF_DEBUG("[+] Parsing {}", to_string(cmd_type));
+ {
+ /*
+ * DO NOT FORGET TO UPDATE FilesetCommand::classof
+ */
+ LIEF_DEBUG("[+] Parsing {}", to_string(cmd_type));
+
+ const auto cmd =
+ stream_->peek<details::fileset_entry_command>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR("Can't parse fileset_entry_command");
+ break;
+ }
+ load_command = std::make_unique<FilesetCommand>(*cmd);
+ const uint32_t entry_offset = cmd->entry_id;
+ auto entry_name =
+ stream_->peek_string_at(loadcommands_offset + entry_offset);
- const auto cmd = stream_->peek<details::fileset_entry_command>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't parse fileset_entry_command");
- break;
- }
- load_command = std::make_unique<FilesetCommand>(*cmd);
- const uint32_t entry_offset = cmd->entry_id;
- auto entry_name = stream_->peek_string_at(loadcommands_offset + entry_offset);
+ if (!entry_name) {
+ LIEF_ERR("Can't read fileset_entry_command.entry_id");
+ break;
+ }
- if (!entry_name) {
- LIEF_ERR("Can't read fileset_entry_command.entry_id");
- break;
- }
+ auto* fset = load_command->as<FilesetCommand>();
+ fset->name(*entry_name);
- auto* fset = load_command->as<FilesetCommand>();
- fset->name(*entry_name);
+ LIEF_DEBUG("Parsing fileset '{}' @ {:x} (size: {:x})", fset->name(),
+ cmd->fileoff, cmd->cmdsize);
+ auto res_type = stream_->peek<uint32_t>(cmd->fileoff);
+ if (!res_type) {
+ LIEF_ERR("Can't access fileset_entry_command.fileoff");
+ break;
+ }
+ auto type = static_cast<MACHO_TYPES>(*res_type);
- LIEF_DEBUG("Parsing fileset '{}' @ {:x} (size: {:x})",
- fset->name(), cmd->fileoff, cmd->cmdsize);
- auto res_type = stream_->peek<uint32_t>(cmd->fileoff);
- if (!res_type) {
- LIEF_ERR("Can't access fileset_entry_command.fileoff");
- break;
- }
- auto type = static_cast<MACHO_TYPES>(*res_type);
+ // Fat binary
+ if (type == MACHO_TYPES::MAGIC_FAT || type == MACHO_TYPES::CIGAM_FAT) {
+ LIEF_ERR("Invalid MachO magic for fileset entry: offset={:#x}, "
+ "magic={:#x}",
+ cmd->fileoff, (int)type);
+ break;
+ }
- // Fat binary
- if (type == MACHO_TYPES::MAGIC_FAT || type == MACHO_TYPES::CIGAM_FAT) {
- LIEF_ERR("Mach-O is corrupted with a FAT Mach-O inside a fileset ?");
- break;
- }
+ /* TODO(romain): This part needs to be refactored.
+ * We should not have to make this kind of construction and move
+ * with the BinaryParser constructor.
+ */
+ const size_t current_pos = stream_->pos();
+ if (!visited_.insert(cmd->fileoff).second) {
+ break;
+ }
- /* TODO(romain): This part needs to be refactored
- * we should not have to make this kind construction and move
- * with the BinaryParser constructor
- */
- const size_t current_pos = stream_->pos();
- if (!visited_.insert(cmd->fileoff).second) {
- break;
- }
+ stream_->setpos(cmd->fileoff);
+ BinaryParser bp;
+ bp.binary_ = std::unique_ptr<Binary>(new Binary{});
+ bp.stream_ = std::move(stream_);
+ bp.config_ = config_;
+ bp.visited_ = visited_;
- stream_->setpos(cmd->fileoff);
- BinaryParser bp;
- bp.binary_ = std::unique_ptr<Binary>(new Binary{});
- bp.stream_ = std::move(stream_);
- bp.config_ = config_;
- bp.visited_ = visited_;
+ if (!bp.init_and_parse()) {
+ LIEF_WARN("Parsing the binary fileset raised an error");
+ }
- if (!bp.init_and_parse()) {
- LIEF_WARN("Parsing the Binary fileset raised error.");
- }
+ stream_ = std::move(bp.stream_);
+ stream_->setpos(current_pos);
+ visited_ = std::move(bp.visited_);
- stream_ = std::move(bp.stream_);
- stream_->setpos(current_pos);
- visited_ = std::move(bp.visited_);
+ if (bp.binary_ != nullptr) {
+ std::unique_ptr<Binary> filset_bin = std::move(bp.binary_);
- if (bp.binary_ != nullptr) {
- std::unique_ptr<Binary> filset_bin = std::move(bp.binary_);
- filset_bin->fileset_name_ = *entry_name;
- binary_->filesets_.push_back(std::move(filset_bin));
- }
- break;
+ filset_bin->fileset_info_.name = *entry_name;
+ filset_bin->fileset_info_.address = fset->virtual_address();
+
+ fset->binary_ = filset_bin.get();
+ binary_->filesets_.push_back(std::move(filset_bin));
}
+ break;
+ }
case LoadCommand::TYPE::DYLD_CHAINED_FIXUPS:
- {
- const auto cmd = stream_->peek<details::linkedit_data_command>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't parse linkedit_data_command for LC_DYLD_CHAINED_FIXUPS");
- break;
- }
+ {
+ const auto cmd =
+ stream_->peek<details::linkedit_data_command>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR("Can't parse linkedit_data_command for LC_DYLD_CHAINED_FIXUPS");
+ break;
+ }
- LIEF_DEBUG("[*] dataoff: 0x{:x}", cmd->dataoff);
- LIEF_DEBUG("[*] datasize: 0x{:x}", cmd->datasize);
+ LIEF_DEBUG("[*] dataoff: {:#x}", cmd->dataoff);
+ LIEF_DEBUG("[*] datasize: {:#x}", cmd->datasize);
- load_command = std::make_unique<DyldChainedFixups>(*cmd);
- auto* chained = load_command->as<DyldChainedFixups>();
- SegmentCommand* lnk = config_.from_dyld_shared_cache ?
- binary_->get_segment("__LINKEDIT") :
- binary_->segment_from_offset(chained->data_offset());
+ load_command = std::make_unique<DyldChainedFixups>(*cmd);
+ auto* chained = load_command->as<DyldChainedFixups>();
+ SegmentCommand* lnk =
+ config_.from_dyld_shared_cache ?
+ binary_->get_segment("__LINKEDIT") :
+ binary_->segment_from_offset(chained->data_offset());
- if (lnk == nullptr) {
- LIEF_WARN("Can't find the segment associated with "
- "the LC_DYLD_CHAINED_FIXUPS payload (offset: 0x{:x})", chained->data_offset());
- break;
- }
- LIEF_DEBUG("LC_DYLD_CHAINED_FIXUPS payload in '{}'", lnk->name());
- span<uint8_t> content = lnk->writable_content();
+ if (lnk == nullptr) {
+ LIEF_WARN("Can't find the segment associated with "
+ "the LC_DYLD_CHAINED_FIXUPS payload (offset: {:#x})",
+ chained->data_offset());
+ break;
+ }
+ LIEF_DEBUG("LC_DYLD_CHAINED_FIXUPS payload in '{}'", lnk->name());
+ span<uint8_t> content = lnk->content();
- if (static_cast<int32_t>(chained->data_size()) < 0 ||
- static_cast<int32_t>(chained->data_offset()) < 0) {
- LIEF_WARN("LC_DYLD_CHAINED_FIXUPS payload is corrupted");
- break;
- }
+ if (static_cast<int32_t>(chained->data_size()) < 0 ||
+ static_cast<int32_t>(chained->data_offset()) < 0)
+ {
+ LIEF_WARN("LC_DYLD_CHAINED_FIXUPS payload is corrupted");
+ break;
+ }
- if ((chained->data_offset() + chained->data_size()) > (lnk->file_offset() + content.size())) {
- LIEF_WARN("LC_DYLD_CHAINED_FIXUPS payload does not fit in the '{}' segments",
- lnk->name());
- LIEF_DEBUG("{}.file_size: 0x{:x}", lnk->name(), lnk->file_size());
- break;
- }
- const uint64_t rel_offset = chained->data_offset() - lnk->file_offset();
- chained->content_ = content.subspan(rel_offset, chained->data_size());
+ if ((chained->data_offset() + chained->data_size()) >
+ (lnk->file_offset() + content.size()))
+ {
+ LIEF_WARN(
+ "LC_DYLD_CHAINED_FIXUPS payload does not fit in the '{}' segments",
+ lnk->name()
+ );
+ LIEF_DEBUG("{}.file_size: {:#x}", lnk->name(), lnk->file_size());
+ break;
+ }
+
+ if (chained->data_offset() < lnk->file_offset()) {
+ LIEF_WARN("LC_DYLD_CHAINED_FIXUPS payload (offset: {:#x}) starts "
+ "before the '{}' segment",
+ chained->data_offset(), lnk->name());
break;
}
+ const uint64_t rel_offset = chained->data_offset() - lnk->file_offset();
+ chained->content_ = content.subspan(rel_offset, chained->data_size());
+ break;
+ }
case LoadCommand::TYPE::DYLD_EXPORTS_TRIE:
+ {
+ if (const auto cmd =
+ stream_->peek<details::linkedit_data_command>(loadcommands_offset))
{
- if (const auto cmd = stream_->peek<details::linkedit_data_command>(loadcommands_offset)) {
- LIEF_DEBUG("[*] dataoff: 0x{:x}", cmd->dataoff);
- LIEF_DEBUG("[*] datasize: 0x{:x}", cmd->datasize);
+ LIEF_DEBUG("[*] dataoff: {:#x}", cmd->dataoff);
+ LIEF_DEBUG("[*] datasize: {:#x}", cmd->datasize);
- load_command = std::make_unique<DyldExportsTrie>(*cmd);
- } else {
- LIEF_ERR("Can't parse linkedit_data_command for LC_DYLD_EXPORTS_TRIE");
- }
- break;
+ load_command = std::make_unique<DyldExportsTrie>(*cmd);
+ } else {
+ LIEF_ERR("Can't parse linkedit_data_command for LC_DYLD_EXPORTS_TRIE");
}
+ break;
+ }
case LoadCommand::TYPE::TWOLEVEL_HINTS:
+ {
+ if (const auto cmd = stream_->peek<details::twolevel_hints_command>(
+ loadcommands_offset
+ ))
{
- if (const auto cmd = stream_->peek<details::twolevel_hints_command>(loadcommands_offset)) {
- load_command = std::make_unique<TwoLevelHints>(*cmd);
- auto* two = load_command->as<TwoLevelHints>();
- {
- ScopedStream scoped(*stream_, cmd->offset);
- two->hints_.reserve(std::min<size_t>(0x1000, cmd->nhints));
- for (size_t i = 0; i < cmd->nhints; ++i) {
- if (auto res = stream_->read<details::twolevel_hint>()) {
- uint32_t raw = 0;
- memcpy(&raw, &*res, sizeof(raw));
- two->hints_.push_back(raw);
- } else {
- LIEF_WARN("Can't read LC_TWOLEVEL_HINTS.hints[{}]", i);
- break;
- }
+ load_command = std::make_unique<TwoLevelHints>(*cmd);
+ auto* two = load_command->as<TwoLevelHints>();
+
+ const uint64_t nhints =
+ std::min<uint64_t>(cmd->nhints, twolevel_cnt_hint);
+
+ twolevel_cnt_hint -= nhints;
+ {
+ ScopedStream scoped(*stream_, cmd->offset);
+ two->hints_.reserve(std::min<size_t>(0x1000, nhints));
+ for (size_t i = 0; i < nhints; ++i) {
+ if (auto res = stream_->read<details::twolevel_hint>()) {
+ uint32_t raw = 0;
+ memcpy(&raw, &*res, sizeof(raw));
+ two->hints_.push_back(raw);
+ } else {
+ LIEF_WARN("Can't read LC_TWOLEVEL_HINTS.hints[{}]", i);
+ break;
}
}
- } else {
- LIEF_ERR("Can't parse twolevel_hints_command for LC_TWOLEVEL_HINTS");
}
- break;
+ } else {
+ LIEF_ERR("Can't parse twolevel_hints_command for LC_TWOLEVEL_HINTS");
}
+ break;
+ }
case LoadCommand::TYPE::LINKER_OPTIMIZATION_HINT:
+ {
+ if (const auto cmd =
+ stream_->peek<details::linkedit_data_command>(loadcommands_offset))
{
- if (const auto cmd = stream_->peek<details::linkedit_data_command>(loadcommands_offset)) {
- LIEF_DEBUG(" [*] dataoff: 0x{:x}", cmd->dataoff);
- LIEF_DEBUG(" [*] datasize: 0x{:x}", cmd->datasize);
+ LIEF_DEBUG(" [*] dataoff: {:#x}", cmd->dataoff);
+ LIEF_DEBUG(" [*] datasize: {:#x}", cmd->datasize);
- load_command = std::make_unique<LinkerOptHint>(*cmd);
- } else {
- LIEF_ERR("Can't parse linkedit_data_command for LC_LINKER_OPTIMIZATION_HINT");
- }
- break;
+ load_command = std::make_unique<LinkerOptHint>(*cmd);
+ } else {
+ LIEF_ERR(
+ "Can't parse linkedit_data_command for LC_LINKER_OPTIMIZATION_HINT"
+ );
}
+ break;
+ }
case LoadCommand::TYPE::NOTE:
+ {
+ if (const auto cmd =
+ stream_->peek<details::note_command>(loadcommands_offset))
{
- if (const auto cmd = stream_->peek<details::note_command>(loadcommands_offset)) {
- load_command = std::make_unique<NoteCommand>(*cmd);
- } else {
- LIEF_ERR("Can't parse note_command for LC_NOTE");
- }
- break;
+ load_command = std::make_unique<NoteCommand>(*cmd);
+ } else {
+ LIEF_ERR("Can't parse note_command for LC_NOTE");
}
+ break;
+ }
case LoadCommand::TYPE::FUNCTION_VARIANTS:
- {
- /*
- * DO NOT FORGET TO UPDATE FunctionVariants::classof
- */
- LIEF_DEBUG("[+] Parsing LC_FUNCTION_VARIANTS");
- const auto cmd = stream_->peek<details::linkedit_data_command>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't parse linkedit_data_command for LC_FUNCTION_VARIANTS");
- break;
- }
- load_command = std::make_unique<FunctionVariants>(*cmd);
+ {
+ /*
+ * DO NOT FORGET TO UPDATE FunctionVariants::classof
+ */
+ LIEF_DEBUG("[+] Parsing LC_FUNCTION_VARIANTS");
+ const auto cmd =
+ stream_->peek<details::linkedit_data_command>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR("Can't parse linkedit_data_command for LC_FUNCTION_VARIANTS");
break;
}
+ load_command = std::make_unique<FunctionVariants>(*cmd);
+ break;
+ }
case LoadCommand::TYPE::FUNCTION_VARIANT_FIXUPS:
- {
- /*
- * DO NOT FORGET TO UPDATE FunctionVariantFixups::classof
- */
- LIEF_DEBUG("[+] Parsing LC_FUNCTION_VARIANT_FIXUPS");
- const auto cmd = stream_->peek<details::linkedit_data_command>(loadcommands_offset);
- if (!cmd) {
- LIEF_ERR("Can't parse linkedit_data_command for LC_FUNCTION_VARIANT_FIXUPS");
- break;
- }
- load_command = std::make_unique<FunctionVariantFixups>(*cmd);
+ {
+ /*
+ * DO NOT FORGET TO UPDATE FunctionVariantFixups::classof
+ */
+ LIEF_DEBUG("[+] Parsing LC_FUNCTION_VARIANT_FIXUPS");
+ const auto cmd =
+ stream_->peek<details::linkedit_data_command>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR(
+ "Can't parse linkedit_data_command for LC_FUNCTION_VARIANT_FIXUPS"
+ );
+ break;
+ }
+ load_command = std::make_unique<FunctionVariantFixups>(*cmd);
+ break;
+ }
+
+ case LoadCommand::TYPE::LAZY_LOAD_DYLIB_INFO:
+ {
+ /*
+ * DO NOT FORGET TO UPDATE LazyLoadDylibInfo::classof
+ */
+ LIEF_DEBUG("[+] Parsing LC_LAZY_LOAD_DYLIB_INFO");
+ const auto cmd =
+ stream_->peek<details::linkedit_data_command>(loadcommands_offset);
+ if (!cmd) {
+ LIEF_ERR(
+ "Can't parse linkedit_data_command for LC_LAZY_LOAD_DYLIB_INFO"
+ );
break;
}
+ load_command = std::make_unique<LazyLoadDylibInfo>(*cmd);
+ binary_->lazy_load_dylib_infos_.push_back(
+ load_command->as<LazyLoadDylibInfo>()
+ );
+ break;
+ }
default:
- {
- if (not_parsed.insert(cmd_type).second) {
- LIEF_WARN("Command '{}' ({}) not parsed (size=0x{:04x})!",
- to_string(cmd_type), static_cast<uint64_t>(cmd_type),
- command->cmdsize);
- }
- load_command = std::make_unique<UnknownCommand>(*command);
+ {
+ if (not_parsed.insert(cmd_type).second) {
+ LIEF_WARN("Command '{}' ({}) not parsed (size={:#06x})",
+ to_string(cmd_type), static_cast<uint64_t>(cmd_type),
+ command->cmdsize);
}
+ load_command = std::make_unique<UnknownCommand>(*command);
+ }
}
if (load_command != nullptr) {
- if (!stream_->peek_data(load_command->original_data_, loadcommands_offset, command->cmdsize)) {
+ if (!stream_->peek_data(load_command->original_data_, loadcommands_offset,
+ command->cmdsize))
+ {
LIEF_ERR("Can't read the raw data of the load command");
load_command->size_ = 0;
}
@@ -1165,17 +1309,21 @@ ok_error_t BinaryParser::parse_relocations(Section& section) {
return ok();
}
- LIEF_DEBUG("Parse '{}' relocations (#{:d})", section.name(), section.numberof_relocations());
+ LIEF_DEBUG("Parse '{}' relocations (#{:d})", section.name(),
+ section.numberof_relocations());
uint64_t current_reloc_offset = section.relocation_offset();
size_t numberof_relocations = section.numberof_relocations();
if (section.numberof_relocations() > BinaryParser::MAX_RELOCATIONS) {
numberof_relocations = BinaryParser::MAX_RELOCATIONS;
- LIEF_WARN("Huge number of relocations (#{:d}). Only the first #{:d} will be parsed",
- section.numberof_relocations(), numberof_relocations);
-
+ LIEF_WARN(
+ "Huge number of relocations (#{:d}). Only the first #{:d} will be parsed",
+ section.numberof_relocations(), numberof_relocations
+ );
}
- if (current_reloc_offset + numberof_relocations * 2 * sizeof(uint32_t) > stream_->size()) {
+ if (current_reloc_offset + numberof_relocations * 2 * sizeof(uint32_t) >
+ stream_->size())
+ {
LIEF_WARN("Relocations corrupted");
return make_error_code(lief_errors::corrupted);
}
@@ -1186,39 +1334,47 @@ ok_error_t BinaryParser::parse_relocations(Section& section) {
if (auto res = stream_->peek<int32_t>(current_reloc_offset)) {
address = *res;
} else {
- LIEF_INFO("Can't read relocation address for #{}@0x{:x}", i, address);
+ LIEF_INFO("Can't read relocation address for #{}@{:#x}", i, address);
break;
}
bool is_scattered = static_cast<bool>(address & Relocation::R_SCATTERED);
if (is_scattered) {
- if (auto res = stream_->peek<details::scattered_relocation_info>(current_reloc_offset)) {
+ if (auto res = stream_->peek<details::scattered_relocation_info>(
+ current_reloc_offset
+ ))
+ {
reloc = std::make_unique<RelocationObject>(*res);
reloc->section_ = §ion;
} else {
- LIEF_INFO("Can't read scattered_relocation_info for #{}@0x{:x}", i, current_reloc_offset);
+ LIEF_INFO("Can't read scattered_relocation_info for #{}@{:#x}", i,
+ current_reloc_offset);
break;
}
} else {
- details::relocation_info reloc_info;
- if (auto res = stream_->peek<details::relocation_info>(current_reloc_offset)) {
+ details::relocation_info reloc_info{};
+ if (auto res = stream_->peek<details::relocation_info>(current_reloc_offset))
+ {
reloc_info = *res;
reloc = std::make_unique<RelocationObject>(*res);
reloc->section_ = §ion;
} else {
- LIEF_INFO("Can't read relocation_info for #{}@0x{:x}", i, current_reloc_offset);
+ LIEF_INFO("Can't read relocation_info for #{}@{:#x}", i,
+ current_reloc_offset);
break;
}
const auto symbols = binary_->symbols();
- if (reloc_info.r_extern == 1 && reloc_info.r_symbolnum != Relocation::R_ABS) {
+ if (reloc_info.r_extern == 1 && reloc_info.r_symbolnum != Relocation::R_ABS)
+ {
if (reloc_info.r_symbolnum < symbols.size()) {
Symbol& symbol = symbols[reloc_info.r_symbolnum];
reloc->symbol_ = &symbol;
LIEF_DEBUG("Symbol: {}", symbol.name());
} else {
- LIEF_WARN("Relocation #{:d} of {} symbol index is out-of-bound", i, section.name());
+ LIEF_WARN("Relocation #{:d} of {} symbol index is out-of-bound", i,
+ section.name());
}
}
const auto sections = binary_->sections();
@@ -1226,14 +1382,16 @@ ok_error_t BinaryParser::parse_relocations(Section& section) {
const uint32_t sec_num = reloc_info.r_symbolnum;
if (sec_num == Relocation::R_ABS) {
// TODO(romain): Find a sample that triggers this branch ..
- const auto it_sym = memoized_symbols_by_address_.find(reloc_info.r_address);
- if (it_sym != std::end(memoized_symbols_by_address_)) {
+ if (const auto it_sym =
+ memoized_symbols_by_address_.find(reloc_info.r_address);
+ it_sym != memoized_symbols_by_address_.end())
+ {
reloc->symbol_ = it_sym->second;
} else {
- LIEF_WARN("Can't find memoized symbol for the address: 0x{:x}", reloc_info.r_address);
+ LIEF_WARN("Can't find memoized symbol for the address: {:#x}",
+ reloc_info.r_address);
}
- }
- else if (sec_num < sections.size()) {
+ } else if (sec_num < sections.size()) {
Section& relsec = sections[reloc_info.r_symbolnum];
reloc->section_ = &relsec;
LIEF_DEBUG("Section: {}", relsec.name());
@@ -1246,9 +1404,11 @@ ok_error_t BinaryParser::parse_relocations(Section& section) {
* [...]
* }
* else {
- * parser.findTargetFromAddressAndSectionNum(contentValue, reloc->r_symbolnum(), target);
+ * parser.findTargetFromAddressAndSectionNum(contentValue,
+ * reloc->r_symbolnum(), target);
* }
- * findTargetFromAddressAndSectionNum can fail *silently* so no need to warn the user about that
+ * findTargetFromAddressAndSectionNum can fail *silently* so no need to
+ * warn the user about that
*/
LIEF_INFO("Relocation #{:d} of {} seems corrupted: "
"r_symbolnum is {} sections.size(): {}",
@@ -1282,31 +1442,31 @@ ok_error_t BinaryParser::parse_dyldinfo_rebases() {
}
uint32_t offset = std::get<0>(dyldinfo->rebase());
- uint32_t size = std::get<1>(dyldinfo->rebase());
+ uint32_t size = std::get<1>(dyldinfo->rebase());
if (offset == 0 || size == 0) {
return ok();
}
- if (static_cast<int32_t>(offset) < 0 ||
- static_cast<int32_t>(size) < 0) {
+ if (static_cast<int32_t>(offset) < 0 || static_cast<int32_t>(size) < 0) {
LIEF_WARN("LC_DYLD_INFO.rebases payload is corrupted");
return make_error_code(lief_errors::read_out_of_bound);
}
SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
- binary_->get_segment("__LINKEDIT") :
- binary_->segment_from_offset(offset);
+ binary_->get_segment("__LINKEDIT") :
+ binary_->segment_from_offset(offset);
if (linkedit == nullptr) {
LIEF_WARN("Can't find the segment that contains the rebase opcodes");
return make_error_code(lief_errors::not_found);
}
- span<uint8_t> content = linkedit->writable_content();
+ span<uint8_t> content = linkedit->content();
const uint64_t rel_offset = offset - linkedit->file_offset();
if (rel_offset > content.size() || (rel_offset + size) > content.size()) {
- LIEF_ERR("Rebase opcodes are out of bounds of the segment {}", linkedit->name());
+ LIEF_ERR("Rebase opcodes are out of bounds of the segment {}",
+ linkedit->name());
return make_error_code(lief_errors::read_out_of_bound);
}
@@ -1314,8 +1474,8 @@ ok_error_t BinaryParser::parse_dyldinfo_rebases() {
uint64_t end_offset = offset + size;
- bool done = false;
- uint8_t type = 0;
+ bool done = false;
+ uint8_t type = 0;
uint32_t segment_index = 0;
uint64_t segment_offset = 0;
uint32_t count = 0;
@@ -1331,170 +1491,211 @@ ok_error_t BinaryParser::parse_dyldinfo_rebases() {
if (!val) {
break;
}
- uint8_t imm = *val & DyldInfo::IMMEDIATE_MASK;
+ uint8_t imm = *val & DyldInfo::IMMEDIATE_MASK;
uint8_t opcode = *val & DyldInfo::OPCODE_MASK;
- switch(DyldInfo::REBASE_OPCODES(opcode)) {
+ switch (DyldInfo::REBASE_OPCODES(opcode)) {
case DyldInfo::REBASE_OPCODES::DONE:
- {
- done = true;
- break;
- }
+ {
+ done = true;
+ break;
+ }
case DyldInfo::REBASE_OPCODES::SET_TYPE_IMM:
- {
- type = imm;
+ {
+ type = imm;
+ break;
+ }
+
+ case DyldInfo::REBASE_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
+ {
+ auto seg_offset = stream_->read_uleb128();
+ if (!seg_offset) {
+ LIEF_ERR("REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB: Can't read uleb128 "
+ "offset");
break;
}
+ segment_index = imm;
+ segment_offset = *seg_offset;
- case DyldInfo::REBASE_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
- {
- auto seg_offset = stream_->read_uleb128();
- if (!seg_offset) {
- LIEF_ERR("REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB: Can't read uleb128 offset");
- break;
- }
- segment_index = imm;
- segment_offset = *seg_offset;
+ if (segment_index < segments.size()) {
+ current_segment = &segments[segment_index];
+ } else {
+ LIEF_ERR("REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB: Bad index");
+ done = true;
+ }
- if (segment_index < segments.size()) {
- current_segment = &segments[segment_index];
- } else {
- LIEF_ERR("REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB: Bad index");
- done = true;
- }
+ break;
+ }
+ case DyldInfo::REBASE_OPCODES::ADD_ADDR_ULEB:
+ {
+ auto seg_offset = stream_->read_uleb128();
+ if (!seg_offset) {
+ LIEF_ERR("REBASE_OPCODE_ADD_ADDR_ULEB: Can't read uleb128 offset");
break;
}
+ segment_offset += *seg_offset;
+ if (current_segment == nullptr) {
+ LIEF_WARN("REBASE_OPCODE_ADD_ADDR_ULEB: the current segment is null");
+ } else if (segment_offset > current_segment->file_size()) {
+ LIEF_WARN("REBASE_OPCODE_ADD_ADDR_ULEB: Bad offset ({:#x} > {:#x})",
+ segment_offset, current_segment->file_size());
+ }
+ break;
+ }
- case DyldInfo::REBASE_OPCODES::ADD_ADDR_ULEB:
- {
- auto seg_offset = stream_->read_uleb128();
- if (!seg_offset) {
- LIEF_ERR("REBASE_OPCODE_ADD_ADDR_ULEB: Can't read uleb128 offset");
+ case DyldInfo::REBASE_OPCODES::ADD_ADDR_IMM_SCALED:
+ {
+ segment_offset += (imm * sizeof(pint_t));
+ if (current_segment == nullptr) {
+ LIEF_WARN(
+ "REBASE_OPCODE_ADD_ADDR_IMM_SCALED: the current segment is null"
+ );
+ } else if (segment_offset > current_segment->file_size()) {
+ LIEF_WARN(
+ "REBASE_OPCODE_ADD_ADDR_IMM_SCALED: Bad offset ({:#x} > {:#x})",
+ segment_offset, current_segment->file_size()
+ );
+ }
+ break;
+ }
+
+ case DyldInfo::REBASE_OPCODES::DO_REBASE_IMM_TIMES:
+ {
+ for (size_t i = 0; i < imm; ++i) {
+ if (is_err(do_rebase<MACHO_T>(type, segment_index, segment_offset,
+ &segments)))
+ {
break;
}
- segment_offset += *seg_offset;
+ segment_offset += sizeof(pint_t);
if (current_segment == nullptr) {
- LIEF_WARN("REBASE_OPCODE_ADD_ADDR_ULEB: the current segment is null");
- }
- else if (segment_offset > current_segment->file_size()) {
- LIEF_WARN("REBASE_OPCODE_ADD_ADDR_ULEB: Bad offset (0x{:x} > 0x{:x})",
- segment_offset, current_segment->file_size());
+ LIEF_WARN(
+ "REBASE_OPCODE_DO_REBASE_IMM_TIMES: the current segment is null"
+ );
+ } else if (segment_offset > current_segment->file_size()) {
+ LIEF_WARN(
+ "REBASE_OPCODE_DO_REBASE_IMM_TIMES: Bad offset ({:#x} > {:#x})",
+ segment_offset, current_segment->file_size()
+ );
}
+ }
+ break;
+ }
+ case DyldInfo::REBASE_OPCODES::DO_REBASE_ULEB_TIMES:
+ {
+ auto uleb128_val = stream_->read_uleb128();
+ if (!uleb128_val) {
+ LIEF_ERR("REBASE_OPCODE_DO_REBASE_ULEB_TIMES: Can't read uleb128 count");
break;
}
- case DyldInfo::REBASE_OPCODES::ADD_ADDR_IMM_SCALED:
- {
- segment_offset += (imm * sizeof(pint_t));
+ if (segment_index < segments.size()) {
+ count = safe_dyld_opcode_count<uint32_t>(&segments[segment_index],
+ segment_offset, sizeof(pint_t),
+ *uleb128_val);
+ }
+
+ for (size_t i = 0; i < count; ++i) {
if (current_segment == nullptr) {
- LIEF_WARN("REBASE_OPCODE_ADD_ADDR_IMM_SCALED: the current segment is null");
+ LIEF_WARN(
+ "REBASE_OPCODE_DO_REBASE_ULEB_TIMES: the current segment is null"
+ );
+ } else if (segment_offset > current_segment->file_size()) {
+ LIEF_WARN(
+ "REBASE_OPCODE_DO_REBASE_ULEB_TIMES: Bad offset ({:#x} > {:#x})",
+ segment_offset, current_segment->file_size()
+ );
}
- else if (segment_offset > current_segment->file_size()) {
- LIEF_WARN("REBASE_OPCODE_ADD_ADDR_IMM_SCALED: Bad offset (0x{:x} > 0x{:x})",
- segment_offset, current_segment->file_size());
+
+ if (is_err(do_rebase<MACHO_T>(type, segment_index, segment_offset,
+ &segments)))
+ {
+ break;
}
+ segment_offset += sizeof(pint_t);
+ }
+ break;
+ }
+
+ case DyldInfo::REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB:
+ {
+ if (current_segment == nullptr) {
+ LIEF_WARN(
+ "REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB: the current segment is null"
+ );
+ } else if (segment_offset > current_segment->file_size()) {
+ LIEF_WARN(
+ "REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB: Bad offset ({:#x} > {:#x})",
+ segment_offset, current_segment->file_size()
+ );
+ }
+ do_rebase<MACHO_T>(type, segment_index, segment_offset, &segments);
+ auto uleb128_val = stream_->read_uleb128();
+ if (!uleb128_val) {
+ LIEF_ERR("REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB: Can't read uleb128 "
+ "segment_offset");
break;
}
+ segment_offset += *uleb128_val + sizeof(pint_t);
- case DyldInfo::REBASE_OPCODES::DO_REBASE_IMM_TIMES:
- {
- for (size_t i = 0; i < imm; ++i) {
- do_rebase<MACHO_T>(type, segment_index, segment_offset, &segments);
- segment_offset += sizeof(pint_t);
- if (current_segment == nullptr) {
- LIEF_WARN("REBASE_OPCODE_DO_REBASE_IMM_TIMES: the current segment is null");
- }
- else if (segment_offset > current_segment->file_size()) {
- LIEF_WARN("REBASE_OPCODE_DO_REBASE_IMM_TIMES: Bad offset (0x{:x} > 0x{:x})",
- segment_offset, current_segment->file_size());
- }
- }
+ break;
+ }
+
+ case DyldInfo::REBASE_OPCODES::DO_REBASE_ULEB_TIMES_SKIPPING_ULEB:
+ {
+ // Count
+ auto uleb128_val = stream_->read_uleb128();
+ if (!uleb128_val) {
+ LIEF_ERR(
+ "Can't read REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB count"
+ );
break;
}
- case DyldInfo::REBASE_OPCODES::DO_REBASE_ULEB_TIMES:
- {
- auto uleb128_val = stream_->read_uleb128();
- if (!uleb128_val) {
- LIEF_ERR("REBASE_OPCODE_DO_REBASE_ULEB_TIMES: Can't read uleb128 count");
- break;
- }
- count = *uleb128_val;
- for (size_t i = 0; i < count; ++i) {
- if (current_segment == nullptr) {
- LIEF_WARN("REBASE_OPCODE_DO_REBASE_ULEB_TIMES: the current segment is null");
- }
- else if (segment_offset > current_segment->file_size()) {
- LIEF_WARN("REBASE_OPCODE_DO_REBASE_ULEB_TIMES: Bad offset (0x{:x} > 0x{:x})",
- segment_offset, current_segment->file_size());
- }
+ count = *uleb128_val;
- do_rebase<MACHO_T>(type, segment_index, segment_offset, &segments);
- segment_offset += sizeof(pint_t);
- }
+ uleb128_val = stream_->read_uleb128();
+ if (!uleb128_val) {
+ LIEF_ERR(
+ "Can't read REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB skip"
+ );
break;
}
+ // Skip
+ skip = *uleb128_val;
- case DyldInfo::REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB:
- {
+ if (segment_index < segments.size()) {
+ count = safe_dyld_opcode_count<uint32_t>(&segments[segment_index],
+ segment_offset, sizeof(pint_t),
+ count);
+ }
+
+ for (size_t i = 0; i < count; ++i) {
if (current_segment == nullptr) {
- LIEF_WARN("REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB: the current segment is null");
- }
- else if (segment_offset > current_segment->file_size()) {
- LIEF_WARN("REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB: Bad offset (0x{:x} > 0x{:x})",
+ LIEF_WARN("REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB: the "
+ "current segment is null");
+ } else if (segment_offset > current_segment->file_size()) {
+ LIEF_WARN("REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB: Bad "
+ "offset ({:#x} > {:#x})",
segment_offset, current_segment->file_size());
}
- do_rebase<MACHO_T>(type, segment_index, segment_offset, &segments);
- auto uleb128_val = stream_->read_uleb128();
- if (!uleb128_val) {
- LIEF_ERR("REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB: Can't read uleb128 segment_offset");
+ if (is_err(do_rebase<MACHO_T>(type, segment_index, segment_offset,
+ &segments)))
+ {
break;
}
- segment_offset += *uleb128_val + sizeof(pint_t);
-
- break;
+ segment_offset += skip + sizeof(pint_t);
}
- case DyldInfo::REBASE_OPCODES::DO_REBASE_ULEB_TIMES_SKIPPING_ULEB:
- {
- // Count
- auto uleb128_val = stream_->read_uleb128();
- if (!uleb128_val) {
- LIEF_ERR("Can't read REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB count");
- break;
- }
- count = *uleb128_val;
-
- uleb128_val = stream_->read_uleb128();
- if (!uleb128_val) {
- LIEF_ERR("Can't read REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB skip");
- break;
- }
- // Skip
- skip = *uleb128_val;
-
-
- for (size_t i = 0; i < count; ++i) {
- if (current_segment == nullptr) {
- LIEF_WARN("REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB: the current segment is null");
- }
- else if (segment_offset > current_segment->file_size()) {
- LIEF_WARN("REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB: Bad offset (0x{:x} > 0x{:x})",
- segment_offset, current_segment->file_size());
- }
- do_rebase<MACHO_T>(type, segment_index, segment_offset, &segments);
- segment_offset += skip + sizeof(pint_t);
- }
-
- break;
- }
+ break;
+ }
default:
- {
- LIEF_ERR("Unsupported opcode: 0x{:x}", static_cast<uint32_t>(opcode));
- break;
- }
+ {
+ LIEF_ERR("Unsupported opcode: {:#x}", static_cast<uint32_t>(opcode));
+ break;
+ }
}
}
return ok();
@@ -1525,31 +1726,31 @@ ok_error_t BinaryParser::parse_dyldinfo_generic_bind() {
}
uint32_t offset = std::get<0>(dyldinfo->bind());
- uint32_t size = std::get<1>(dyldinfo->bind());
+ uint32_t size = std::get<1>(dyldinfo->bind());
if (offset == 0 || size == 0) {
return ok();
}
- if (static_cast<int32_t>(offset) < 0 ||
- static_cast<int32_t>(size) < 0) {
+ if (static_cast<int32_t>(offset) < 0 || static_cast<int32_t>(size) < 0) {
LIEF_WARN("LC_DYLD_INFO.binding payload is corrupted");
return make_error_code(lief_errors::read_out_of_bound);
}
SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
- binary_->get_segment("__LINKEDIT") :
- binary_->segment_from_offset(offset);
+ binary_->get_segment("__LINKEDIT") :
+ binary_->segment_from_offset(offset);
if (linkedit == nullptr) {
LIEF_WARN("Can't find the segment that contains the regular bind opcodes");
return make_error_code(lief_errors::not_found);
}
- span<uint8_t> content = linkedit->writable_content();
+ span<uint8_t> content = linkedit->content();
const uint64_t rel_offset = offset - linkedit->file_offset();
if (rel_offset > content.size() || (rel_offset + size) > content.size()) {
- LIEF_ERR("Regular bind opcodes are out of bounds of the segment {}", linkedit->name());
+ LIEF_ERR("Regular bind opcodes are out of bounds of the segment {}",
+ linkedit->name());
return make_error_code(lief_errors::read_out_of_bound);
}
@@ -1557,23 +1758,23 @@ ok_error_t BinaryParser::parse_dyldinfo_generic_bind() {
uint64_t end_offset = offset + size;
- uint8_t type = 0;
- uint8_t segment_idx = 0;
- uint64_t segment_offset = 0;
+ uint8_t type = 0;
+ uint8_t segment_idx = 0;
+ uint64_t segment_offset = 0;
std::string symbol_name;
- int library_ordinal = 0;
+ int library_ordinal = 0;
- int64_t addend = 0;
- uint32_t count = 0;
- uint32_t skip = 0;
+ int64_t addend = 0;
+ uint32_t count = 0;
+ uint32_t skip = 0;
- bool is_weak_import = false;
- bool done = false;
+ bool is_weak_import = false;
+ bool done = false;
- size_t ordinal_table_size = 0;
+ size_t ordinal_table_size = 0;
bool use_threaded_rebase_bind = false;
- uint8_t symbol_flags = 0;
- uint64_t start_offset = 0;
+ uint8_t symbol_flags = 0;
+ uint64_t start_offset = 0;
std::vector<ThreadedBindData> ordinal_table;
Binary::it_segments segments = binary_->segments();
@@ -1588,292 +1789,295 @@ ok_error_t BinaryParser::parse_dyldinfo_generic_bind() {
switch (opcode) {
case DyldInfo::BIND_OPCODES::DONE:
- {
- done = true;
- break;
- }
+ {
+ done = true;
+ break;
+ }
case DyldInfo::BIND_OPCODES::SET_DYLIB_ORDINAL_IMM:
- {
- library_ordinal = imm;
- break;
- }
+ {
+ library_ordinal = imm;
+ break;
+ }
case DyldInfo::BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB:
- {
- auto val = stream_->read_uleb128();
- if (!val) {
- LIEF_ERR("Can't read BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB uleb128 ordinal");
- break;
- }
- library_ordinal = *val;
-
+ {
+ auto val = stream_->read_uleb128();
+ if (!val) {
+ LIEF_ERR(
+ "Can't read BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB uleb128 ordinal"
+ );
break;
}
+ library_ordinal = *val;
+
+ break;
+ }
case DyldInfo::BIND_OPCODES::SET_DYLIB_SPECIAL_IMM:
- {
- // the special ordinals are negative numbers
- if (imm == 0) {
- library_ordinal = 0;
- } else {
- int8_t sign_extended = DyldInfo::OPCODE_MASK | imm;
- library_ordinal = sign_extended;
- }
- break;
+ {
+ // the special ordinals are negative numbers
+ if (imm == 0) {
+ library_ordinal = 0;
+ } else {
+ int8_t sign_extended = DyldInfo::OPCODE_MASK | imm;
+ library_ordinal = sign_extended;
}
+ break;
+ }
case DyldInfo::BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM:
- {
- auto str = stream_->read_string();
- if (!str) {
- LIEF_ERR("Can't read symbol name");
- break;
- }
- symbol_name = std::move(*str);
- symbol_flags = imm;
-
- if ((imm & uint8_t(DyldInfo::BIND_SYMBOL_FLAGS::WEAK_IMPORT)) != 0) {
- is_weak_import = true;
- } else {
- is_weak_import = false;
- }
+ {
+ auto str = stream_->read_string();
+ if (!str) {
+ LIEF_ERR("Can't read symbol name");
break;
}
+ symbol_name = std::move(*str);
+ symbol_flags = imm;
- case DyldInfo::BIND_OPCODES::SET_TYPE_IMM:
- {
- type = imm;
- break;
+ if ((imm & uint8_t(DyldInfo::BIND_SYMBOL_FLAGS::WEAK_IMPORT)) != 0) {
+ is_weak_import = true;
+ } else {
+ is_weak_import = false;
}
+ break;
+ }
+
+ case DyldInfo::BIND_OPCODES::SET_TYPE_IMM:
+ {
+ type = imm;
+ break;
+ }
case DyldInfo::BIND_OPCODES::SET_ADDEND_SLEB:
- {
- auto val = stream_->read_sleb128();
- if (!val) {
- LIEF_ERR("Can't read BIND_OPCODE_SET_ADDEND_SLEB uleb128 addend");
- break;
- }
- addend = *val;
+ {
+ auto val = stream_->read_sleb128();
+ if (!val) {
+ LIEF_ERR("Can't read BIND_OPCODE_SET_ADDEND_SLEB uleb128 addend");
break;
}
+ addend = *val;
+ break;
+ }
case DyldInfo::BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
- {
- auto val = stream_->read_uleb128();
- if (!val) {
- LIEF_ERR("Can't read BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB uleb128 segment offset");
- break;
- }
- segment_idx = imm;
- segment_offset = *val;
+ {
+ auto val = stream_->read_uleb128();
+ if (!val) {
+ LIEF_ERR("Can't read BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB uleb128 "
+ "segment offset");
break;
}
+ segment_idx = imm;
+ segment_offset = *val;
+ break;
+ }
case DyldInfo::BIND_OPCODES::ADD_ADDR_ULEB:
- {
- auto val = stream_->read_uleb128();
- if (!val) {
- LIEF_ERR("Can't read BIND_OPCODE_ADD_ADDR_ULEB uleb128 segment offset");
- break;
- }
- segment_offset += *val;
+ {
+ auto val = stream_->read_uleb128();
+ if (!val) {
+ LIEF_ERR("Can't read BIND_OPCODE_ADD_ADDR_ULEB uleb128 segment offset");
break;
}
+ segment_offset += *val;
+ break;
+ }
case DyldInfo::BIND_OPCODES::DO_BIND:
- {
- if (!use_threaded_rebase_bind) {
- do_bind<MACHO_T>(
- DyldBindingInfo::CLASS::STANDARD,
- type,
- segment_idx,
- segment_offset,
- symbol_name,
- library_ordinal,
- addend,
- is_weak_import,
- false,
- &segments, start_offset);
- start_offset = stream_->pos() - offset + 1;
- segment_offset += sizeof(pint_t);
- } else {
- ordinal_table.push_back(ThreadedBindData{symbol_name, addend, library_ordinal, symbol_flags, type});
- }
- break;
+ {
+ if (!use_threaded_rebase_bind) {
+ do_bind<MACHO_T>(DyldBindingInfo::CLASS::STANDARD, type, segment_idx,
+ segment_offset, symbol_name, library_ordinal, addend,
+ is_weak_import, false, &segments, start_offset);
+ start_offset = stream_->pos() - offset + 1;
+ segment_offset += sizeof(pint_t);
+ } else {
+ ordinal_table.push_back(ThreadedBindData{symbol_name, addend,
+ library_ordinal, symbol_flags,
+ type});
}
+ break;
+ }
case DyldInfo::BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB:
- {
- do_bind<MACHO_T>(
- DyldBindingInfo::CLASS::STANDARD,
- type,
- segment_idx,
- segment_offset,
- symbol_name,
- library_ordinal,
- addend,
- is_weak_import,
- false,
- &segments, start_offset);
- start_offset = stream_->pos() - offset + 1;
+ {
+ do_bind<MACHO_T>(DyldBindingInfo::CLASS::STANDARD, type, segment_idx,
+ segment_offset, symbol_name, library_ordinal, addend,
+ is_weak_import, false, &segments, start_offset);
+ start_offset = stream_->pos() - offset + 1;
+
+ auto val = stream_->read_uleb128();
+ if (!val) {
+ LIEF_ERR(
+ "Can't read BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB uleb128 segment offset"
+ );
+ break;
+ }
- auto val = stream_->read_uleb128();
- if (!val) {
- LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB uleb128 segment offset");
- break;
- }
+ segment_offset += *val + sizeof(pint_t);
+ break;
+ }
+
+ case DyldInfo::BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED:
+ {
+ do_bind<MACHO_T>(DyldBindingInfo::CLASS::STANDARD, type, segment_idx,
+ segment_offset, symbol_name, library_ordinal, addend,
+ is_weak_import, false, &segments, start_offset);
+ start_offset = stream_->pos() - offset + 1;
+ segment_offset += imm * sizeof(pint_t) + sizeof(pint_t);
+ break;
+ }
- segment_offset += *val + sizeof(pint_t);
+ case DyldInfo::BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB:
+ {
+ auto val = stream_->read_uleb128();
+ if (!val) {
+ LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB "
+ "uleb128 count");
break;
}
+ count = *val;
- case DyldInfo::BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED:
- {
- do_bind<MACHO_T>(
- DyldBindingInfo::CLASS::STANDARD,
- type,
- segment_idx,
- segment_offset,
- symbol_name,
- library_ordinal,
- addend,
- is_weak_import,
- false,
- &segments, start_offset);
- start_offset = stream_->pos() - offset + 1;
- segment_offset += imm * sizeof(pint_t) + sizeof(pint_t);
+ val = stream_->read_uleb128();
+ if (!val) {
+ LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB "
+ "uleb128 skip");
break;
}
+ skip = *val;
- case DyldInfo::BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB:
{
- auto val = stream_->read_uleb128();
- if (!val) {
- LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB uleb128 count");
- break;
- }
- count = *val;
-
- val = stream_->read_uleb128();
- if (!val) {
- LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB uleb128 skip");
+ const SegmentCommand* current_segment =
+ segment_idx < segments.size() ? &segments[segment_idx] : nullptr;
+ count = safe_dyld_opcode_count<uint32_t>(current_segment, segment_offset,
+ sizeof(pint_t), count);
+ }
+ for (size_t i = 0; i < count; ++i) {
+ if (is_err(do_bind<MACHO_T>(DyldBindingInfo::CLASS::STANDARD, type,
+ segment_idx, segment_offset, symbol_name,
+ library_ordinal, addend, is_weak_import,
+ false, &segments, start_offset)))
+ {
break;
}
- skip = *val;
-
- for (size_t i = 0; i < count; ++i) {
- do_bind<MACHO_T>(
- DyldBindingInfo::CLASS::STANDARD,
- type,
- segment_idx,
- segment_offset,
- symbol_name,
- library_ordinal,
- addend,
- is_weak_import,
- false,
- &segments, start_offset);
- start_offset = stream_->pos() - offset + 1;
- segment_offset += skip + sizeof(pint_t);
- }
- break;
+ start_offset = stream_->pos() - offset + 1;
+ segment_offset += skip + sizeof(pint_t);
}
+ break;
+ }
case DyldInfo::BIND_OPCODES::THREADED:
- {
- const auto subopcode = DyldInfo::BIND_SUBOPCODE_THREADED(imm);
- switch (subopcode) {
- case DyldInfo::BIND_SUBOPCODE_THREADED::APPLY:
+ {
+ const auto subopcode = DyldInfo::BIND_SUBOPCODE_THREADED(imm);
+ switch (subopcode) {
+ case DyldInfo::BIND_SUBOPCODE_THREADED::APPLY:
+ {
+ uint64_t delta = 0;
+ if (segment_idx >= segments.size()) {
+ LIEF_ERR("Wrong index ({:d})", segment_idx);
+ return make_error_code(lief_errors::corrupted);
+ }
+ const SegmentCommand& current_segment = segments[segment_idx];
+ do {
+ const uint64_t address =
+ current_segment.virtual_address() + segment_offset;
+ span<const uint8_t> content = current_segment.content();
+ if (segment_offset >= content.size() ||
+ segment_offset + sizeof(uint64_t) >= content.size())
{
- uint64_t delta = 0;
- if (segment_idx >= segments.size()) {
- LIEF_ERR("Wrong index ({:d})", segment_idx);
- return make_error_code(lief_errors::corrupted);
- }
- const SegmentCommand& current_segment = segments[segment_idx];
- do {
- const uint64_t address = current_segment.virtual_address() + segment_offset;
- span<const uint8_t> content = current_segment.content();
- if (segment_offset >= content.size() || segment_offset + sizeof(uint64_t) >= content.size()) {
- LIEF_WARN("Bad segment offset (0x{:x})", segment_offset);
- delta = 0; // exit from de do ... while
- break;
- }
- auto value = *reinterpret_cast<const uint64_t*>(content.data() + segment_offset);
- bool is_rebase = (value & (static_cast<uint64_t>(1) << 62)) == 0;
-
- if (is_rebase) {
- //LIEF_WARN("do rebase for addr: 0x{:x} vs 0x{:x}", address, current_segment)
- do_rebase<MACHO_T>(static_cast<uint8_t>(DyldInfo::REBASE_TYPE::POINTER),
- segment_idx, segment_offset, &segments);
- } else {
- uint16_t ordinal = value & 0xFFFF;
- if (ordinal >= ordinal_table_size || ordinal >= ordinal_table.size()) {
- LIEF_WARN("bind ordinal ({:d}) is out of range (max={:d}) for disk pointer 0x{:04x} in "
- "segment '{}' (segment offset: 0x{:04x})", ordinal, ordinal_table_size, value,
- current_segment.name(), segment_offset);
- break;
- }
- if (address < current_segment.virtual_address() ||
- address >= (current_segment.virtual_address() + current_segment.virtual_size())) {
- LIEF_WARN("Bad binding address");
- break;
- }
- const ThreadedBindData& th_bind_data = ordinal_table[ordinal];
- do_bind<MACHO_T>(
- DyldBindingInfo::CLASS::THREADED,
- th_bind_data.type,
- segment_idx,
- segment_offset,
- th_bind_data.symbol_name,
- th_bind_data.library_ordinal,
- th_bind_data.addend,
- th_bind_data.symbol_flags & uint8_t(DyldInfo::BIND_SYMBOL_FLAGS::WEAK_IMPORT),
- false,
- &segments, start_offset);
- start_offset = stream_->pos() - offset + 1;
- }
- // The delta is bits [51..61]
- // And bit 62 is to tell us if we are a rebase (0) or bind (1)
- value &= ~(1ull << 62);
- delta = (value & 0x3FF8000000000000) >> 51;
- segment_offset += delta * sizeof(pint_t);
- } while (delta != 0);
+ LIEF_WARN("Bad segment offset ({:#x})", segment_offset);
+ delta = 0; // exit from the do ... while
break;
}
- case DyldInfo::BIND_SUBOPCODE_THREADED::SET_BIND_ORDINAL_TABLE_SIZE_ULEB:
- {
- // Maxium number of elements according to dyld's MachOAnalyzer.cpp
- static constexpr size_t MAX_COUNT = 65535;
- auto val = stream_->read_uleb128();
- if (!val) {
- LIEF_ERR("Can't read BIND_SUBOPCODE_THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB count");
+ auto value = *reinterpret_cast<const uint64_t*>(content.data() +
+ segment_offset);
+ bool is_rebase = (value & (static_cast<uint64_t>(1) << 62)) == 0;
+
+ if (is_rebase) {
+ // LIEF_WARN("do rebase for addr: {:#x} vs {:#x}", address,
+ // current_segment)
+ do_rebase<MACHO_T>(
+ static_cast<uint8_t>(DyldInfo::REBASE_TYPE::POINTER),
+ segment_idx, segment_offset, &segments
+ );
+ } else {
+ uint16_t ordinal = value & 0xFFFF;
+ if (ordinal >= ordinal_table_size ||
+ ordinal >= ordinal_table.size())
+ {
+ LIEF_WARN("Bind ordinal ({:d}) is out of range (max={:d}) for "
+ "disk pointer {:#06x} in "
+ "segment '{}' (segment offset: {:#06x})",
+ ordinal, ordinal_table_size, value,
+ current_segment.name(), segment_offset);
break;
}
- count = *val;
- if (count > MAX_COUNT) {
- LIEF_ERR("BIND_SUBOPCODE_THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB"
- "count is too large ({})", count);
+ if (address < current_segment.virtual_address() ||
+ address >= (current_segment.virtual_address() +
+ current_segment.virtual_size()))
+ {
+ LIEF_WARN("Bad binding address");
break;
}
- ordinal_table_size = count + 1; // the +1 comes from: 'ld64 wrote the wrong value here and we need to offset by 1 for now.'
- use_threaded_rebase_bind = true;
- ordinal_table.reserve(ordinal_table_size);
- break;
+ const ThreadedBindData& th_bind_data = ordinal_table[ordinal];
+ do_bind<MACHO_T>(
+ DyldBindingInfo::CLASS::THREADED, th_bind_data.type,
+ segment_idx, segment_offset, th_bind_data.symbol_name,
+ th_bind_data.library_ordinal, th_bind_data.addend,
+ th_bind_data.symbol_flags &
+ uint8_t(DyldInfo::BIND_SYMBOL_FLAGS::WEAK_IMPORT),
+ false, &segments, start_offset
+ );
+ start_offset = stream_->pos() - offset + 1;
}
+ // The delta is bits [51..61]
+ // And bit 62 is to tell us if we are a rebase (0) or bind (1)
+ value &= ~(1ull << 62);
+ delta = (value & 0x3FF8000000000000) >> 51;
+ segment_offset += delta * sizeof(pint_t);
+ } while (delta != 0);
+ break;
+ }
+ case DyldInfo::BIND_SUBOPCODE_THREADED::SET_BIND_ORDINAL_TABLE_SIZE_ULEB:
+ {
+ // Maximum number of elements according to dyld's MachOAnalyzer.cpp
+ static constexpr size_t MAX_COUNT = 65535;
+ auto val = stream_->read_uleb128();
+ if (!val) {
+ LIEF_ERR(
+ "Can't read "
+ "BIND_SUBOPCODE_THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB count"
+ );
+ break;
+ }
+ count = *val;
+ if (count > MAX_COUNT) {
+ LIEF_ERR("BIND_SUBOPCODE_THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB"
+ "count is too large ({})",
+ count);
+ break;
+ }
+ ordinal_table_size =
+ count + 1; // the +1 comes from: 'ld64 wrote the wrong value here
+ // and we need to offset by 1 for now.'
+ use_threaded_rebase_bind = true;
+ ordinal_table.reserve(ordinal_table_size);
+ break;
}
- break;
}
+ break;
+ }
default:
- {
- LIEF_ERR("Unsupported opcode: 0x{:x}", static_cast<uint32_t>(opcode));
- break;
- }
+ {
+ LIEF_ERR("Unsupported opcode: {:#x}", static_cast<uint32_t>(opcode));
+ break;
}
+ }
}
- dyldinfo->binding_encoding_version_ = use_threaded_rebase_bind ?
- DyldInfo::BINDING_ENCODING_VERSION::V2 :
- DyldInfo::BINDING_ENCODING_VERSION::V1;
+ dyldinfo->binding_encoding_version_ =
+ use_threaded_rebase_bind ? DyldInfo::BINDING_ENCODING_VERSION::V2 :
+ DyldInfo::BINDING_ENCODING_VERSION::V1;
return ok();
}
@@ -1890,31 +2094,31 @@ ok_error_t BinaryParser::parse_dyldinfo_weak_bind() {
}
uint32_t offset = std::get<0>(dyldinfo->weak_bind());
- uint32_t size = std::get<1>(dyldinfo->weak_bind());
+ uint32_t size = std::get<1>(dyldinfo->weak_bind());
if (offset == 0 || size == 0) {
return ok();
}
- if (static_cast<int32_t>(offset) < 0 ||
- static_cast<int32_t>(size) < 0) {
+ if (static_cast<int32_t>(offset) < 0 || static_cast<int32_t>(size) < 0) {
LIEF_WARN("LC_DYLD_INFO.weak_bind payload is corrupted");
return make_error_code(lief_errors::read_out_of_bound);
}
SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
- binary_->get_segment("__LINKEDIT") :
- binary_->segment_from_offset(offset);
+ binary_->get_segment("__LINKEDIT") :
+ binary_->segment_from_offset(offset);
if (linkedit == nullptr) {
LIEF_WARN("Can't find the segment that contains the weak bind opcodes");
return make_error_code(lief_errors::not_found);
}
- span<uint8_t> content = linkedit->writable_content();
+ span<uint8_t> content = linkedit->content();
const uint64_t rel_offset = offset - linkedit->file_offset();
if (rel_offset > content.size() || (rel_offset + size) > content.size()) {
- LIEF_ERR("Weak bind opcodes are out of bounds of the segment {}", linkedit->name());
+ LIEF_ERR("Weak bind opcodes are out of bounds of the segment {}",
+ linkedit->name());
return make_error_code(lief_errors::read_out_of_bound);
}
@@ -1922,19 +2126,19 @@ ok_error_t BinaryParser::parse_dyldinfo_weak_bind() {
uint64_t end_offset = offset + size;
- uint8_t type = 0;
- uint8_t segment_idx = 0;
- uint64_t segment_offset = 0;
+ uint8_t type = 0;
+ uint8_t segment_idx = 0;
+ uint64_t segment_offset = 0;
std::string symbol_name;
- int64_t addend = 0;
- uint32_t count = 0;
- uint32_t skip = 0;
+ int64_t addend = 0;
+ uint32_t count = 0;
+ uint32_t skip = 0;
- bool is_weak_import = true;
- bool is_non_weak_definition = false;
- bool done = false;
- uint64_t start_offset = 0;
+ bool is_weak_import = true;
+ bool is_non_weak_definition = false;
+ bool done = false;
+ uint64_t start_offset = 0;
Binary::it_segments segments = binary_->segments();
@@ -1950,181 +2154,167 @@ ok_error_t BinaryParser::parse_dyldinfo_weak_bind() {
switch (opcode) {
case DyldInfo::BIND_OPCODES::DONE:
- {
- done = true;
- break;
- }
+ {
+ done = true;
+ break;
+ }
case DyldInfo::BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM:
- {
- auto str = stream_->read_string();
- if (!str) {
- LIEF_ERR("Can't read BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM symbol name");
- break;
- }
- symbol_name = std::move(*str);
-
- if ((imm & uint8_t(DyldInfo::BIND_SYMBOL_FLAGS::NON_WEAK_DEFINITION)) != 0) {
- is_non_weak_definition = true;
- } else {
- is_non_weak_definition = false;
- }
+ {
+ auto str = stream_->read_string();
+ if (!str) {
+ LIEF_ERR(
+ "Can't read BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM symbol name"
+ );
break;
}
+ symbol_name = std::move(*str);
- case DyldInfo::BIND_OPCODES::SET_TYPE_IMM:
+ if ((imm & uint8_t(DyldInfo::BIND_SYMBOL_FLAGS::NON_WEAK_DEFINITION)) != 0)
{
- type = imm;
- break;
+ is_non_weak_definition = true;
+ } else {
+ is_non_weak_definition = false;
}
+ break;
+ }
+
+ case DyldInfo::BIND_OPCODES::SET_TYPE_IMM:
+ {
+ type = imm;
+ break;
+ }
case DyldInfo::BIND_OPCODES::SET_ADDEND_SLEB:
- {
- auto val = stream_->read_sleb128();
- if (!val) {
- LIEF_ERR("Can't read BIND_OPCODE_SET_ADDEND_SLEB sleb128 addend");
- break;
- }
- addend = *val;
+ {
+ auto val = stream_->read_sleb128();
+ if (!val) {
+ LIEF_ERR("Can't read BIND_OPCODE_SET_ADDEND_SLEB sleb128 addend");
break;
}
+ addend = *val;
+ break;
+ }
case DyldInfo::BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
- {
- auto val = stream_->read_uleb128();
- if (!val) {
- LIEF_ERR("Can't read BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB uleb128 segment offset");
- break;
- }
- segment_idx = imm;
- segment_offset = *val;
-
+ {
+ auto val = stream_->read_uleb128();
+ if (!val) {
+ LIEF_ERR("Can't read BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB uleb128 "
+ "segment offset");
break;
}
+ segment_idx = imm;
+ segment_offset = *val;
+
+ break;
+ }
case DyldInfo::BIND_OPCODES::ADD_ADDR_ULEB:
- {
- auto val = stream_->read_uleb128();
- if (!val) {
- LIEF_ERR("Can't read BIND_OPCODE_ADD_ADDR_ULEB uleb128 segment offset");
- break;
- }
- segment_offset += *val;
+ {
+ auto val = stream_->read_uleb128();
+ if (!val) {
+ LIEF_ERR("Can't read BIND_OPCODE_ADD_ADDR_ULEB uleb128 segment offset");
break;
}
+ segment_offset += *val;
+ break;
+ }
case DyldInfo::BIND_OPCODES::DO_BIND:
- {
- do_bind<MACHO_T>(
- DyldBindingInfo::CLASS::WEAK,
- type,
- segment_idx,
- segment_offset,
- symbol_name,
- 0,
- addend,
- is_weak_import,
- is_non_weak_definition,
- &segments, start_offset);
- start_offset = stream_->pos() - offset + 1;
- segment_offset += sizeof(pint_t);
- break;
- }
+ {
+ do_bind<MACHO_T>(DyldBindingInfo::CLASS::WEAK, type, segment_idx,
+ segment_offset, symbol_name, 0, addend, is_weak_import,
+ is_non_weak_definition, &segments, start_offset);
+ start_offset = stream_->pos() - offset + 1;
+ segment_offset += sizeof(pint_t);
+ break;
+ }
case DyldInfo::BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB:
- {
- do_bind<MACHO_T>(
- DyldBindingInfo::CLASS::WEAK,
- type,
- segment_idx,
- segment_offset,
- symbol_name,
- 0,
- addend,
- is_weak_import,
- is_non_weak_definition,
- &segments, start_offset);
- start_offset = stream_->pos() - offset + 1;
-
- auto val = stream_->read_uleb128();
- if (!val) {
- LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB uleb128 segment offset");
- break;
- }
- segment_offset += *val + sizeof(pint_t);
+ {
+ do_bind<MACHO_T>(DyldBindingInfo::CLASS::WEAK, type, segment_idx,
+ segment_offset, symbol_name, 0, addend, is_weak_import,
+ is_non_weak_definition, &segments, start_offset);
+ start_offset = stream_->pos() - offset + 1;
+
+ auto val = stream_->read_uleb128();
+ if (!val) {
+ LIEF_ERR(
+ "Can't read BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB uleb128 segment offset"
+ );
break;
}
+ segment_offset += *val + sizeof(pint_t);
+ break;
+ }
case DyldInfo::BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED:
- {
- do_bind<MACHO_T>(
- DyldBindingInfo::CLASS::WEAK,
- type,
- segment_idx,
- segment_offset,
- symbol_name,
- 0,
- addend,
- is_weak_import,
- is_non_weak_definition,
- &segments, start_offset);
- start_offset = stream_->pos() - offset + 1;
- segment_offset += imm * sizeof(pint_t) + sizeof(pint_t);
- break;
- }
+ {
+ do_bind<MACHO_T>(DyldBindingInfo::CLASS::WEAK, type, segment_idx,
+ segment_offset, symbol_name, 0, addend, is_weak_import,
+ is_non_weak_definition, &segments, start_offset);
+ start_offset = stream_->pos() - offset + 1;
+ segment_offset += imm * sizeof(pint_t) + sizeof(pint_t);
+ break;
+ }
case DyldInfo::BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB:
- {
- auto val = stream_->read_uleb128();
- if (!val) {
- LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB uleb128 count");
- break;
- }
- // Count
- count = *val;
+ {
+ auto val = stream_->read_uleb128();
+ if (!val) {
+ LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB "
+ "uleb128 count");
+ break;
+ }
+ // Count
+ count = *val;
+
+ // Skip
+ val = stream_->read_uleb128();
+ if (!val) {
+ LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB "
+ "uleb128 skip");
+ break;
+ }
+ skip = *val;
- // Skip
- val = stream_->read_uleb128();
- if (!val) {
- LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB uleb128 skip");
+ {
+ const SegmentCommand* current_segment =
+ segment_idx < segments.size() ? &segments[segment_idx] : nullptr;
+ count = safe_dyld_opcode_count<uint32_t>(current_segment, segment_offset,
+ sizeof(pint_t), count);
+ }
+ for (size_t i = 0; i < count; ++i) {
+ if (is_err(do_bind<MACHO_T>(DyldBindingInfo::CLASS::WEAK, type,
+ segment_idx, segment_offset, symbol_name, 0,
+ addend, is_weak_import,
+ is_non_weak_definition, &segments,
+ start_offset)))
+ {
break;
}
- skip = *val;
-
- for (size_t i = 0; i < count; ++i) {
- do_bind<MACHO_T>(
- DyldBindingInfo::CLASS::WEAK,
- type,
- segment_idx,
- segment_offset,
- symbol_name,
- 0,
- addend,
- is_weak_import,
- is_non_weak_definition,
- &segments, start_offset);
- start_offset = stream_->pos() - offset + 1;
- segment_offset += skip + sizeof(pint_t);
- }
- break;
+ start_offset = stream_->pos() - offset + 1;
+ segment_offset += skip + sizeof(pint_t);
}
-
+ break;
+ }
default:
- {
- LIEF_ERR("Unsupported opcode: 0x{:x}", static_cast<uint32_t>(opcode));
- break;
- }
+ {
+ LIEF_ERR("Unsupported opcode: {:#x}", static_cast<uint32_t>(opcode));
+ break;
}
+ }
}
return ok();
}
@@ -2142,31 +2332,31 @@ ok_error_t BinaryParser::parse_dyldinfo_lazy_bind() {
}
uint32_t offset = std::get<0>(dyldinfo->lazy_bind());
- uint32_t size = std::get<1>(dyldinfo->lazy_bind());
+ uint32_t size = std::get<1>(dyldinfo->lazy_bind());
if (offset == 0 || size == 0) {
return ok();
}
- if (static_cast<int32_t>(offset) < 0 ||
- static_cast<int32_t>(size) < 0) {
+ if (static_cast<int32_t>(offset) < 0 || static_cast<int32_t>(size) < 0) {
LIEF_WARN("LC_DYLD_INFO.lazy payload is corrupted");
return make_error_code(lief_errors::read_out_of_bound);
}
SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
- binary_->get_segment("__LINKEDIT") :
- binary_->segment_from_offset(offset);
+ binary_->get_segment("__LINKEDIT") :
+ binary_->segment_from_offset(offset);
if (linkedit == nullptr) {
LIEF_WARN("Can't find the segment that contains the lazy bind opcodes");
return make_error_code(lief_errors::not_found);
}
- span<uint8_t> content = linkedit->writable_content();
+ span<uint8_t> content = linkedit->content();
const uint64_t rel_offset = offset - linkedit->file_offset();
if (rel_offset > content.size() || (rel_offset + size) > content.size()) {
- LIEF_ERR("Lazy bind opcodes are out of bounds of the segment {}", linkedit->name());
+ LIEF_ERR("Lazy bind opcodes are out of bounds of the segment {}",
+ linkedit->name());
return make_error_code(lief_errors::read_out_of_bound);
}
@@ -2174,14 +2364,14 @@ ok_error_t BinaryParser::parse_dyldinfo_lazy_bind() {
uint64_t end_offset = offset + size;
- //uint32_t lazy_offset = 0;
+ // uint32_t lazy_offset = 0;
std::string symbol_name;
- uint8_t segment_idx = 0;
- uint64_t segment_offset = 0;
- int32_t library_ordinal = 0;
- int64_t addend = 0;
- bool is_weak_import = false;
- uint64_t start_offset = 0;
+ uint8_t segment_idx = 0;
+ uint64_t segment_offset = 0;
+ int32_t library_ordinal = 0;
+ int64_t addend = 0;
+ bool is_weak_import = false;
+ uint64_t start_offset = 0;
Binary::it_segments segments = binary_->segments();
stream_->setpos(offset);
@@ -2195,123 +2385,113 @@ ok_error_t BinaryParser::parse_dyldinfo_lazy_bind() {
switch (opcode) {
case DyldInfo::BIND_OPCODES::DONE:
- {
- //lazy_offset = current_offset - offset;
- break;
- }
+ {
+ // lazy_offset = current_offset - offset;
+ break;
+ }
case DyldInfo::BIND_OPCODES::SET_DYLIB_ORDINAL_IMM:
- {
- library_ordinal = imm;
- break;
- }
+ {
+ library_ordinal = imm;
+ break;
+ }
case DyldInfo::BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB:
- {
- auto val = stream_->read_uleb128();
- if (!val) {
- LIEF_ERR("Can't read BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB uleb128 library ordinal");
- break;
- }
-
- library_ordinal = *val;
+ {
+ auto val = stream_->read_uleb128();
+ if (!val) {
+ LIEF_ERR("Can't read BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB uleb128 library "
+ "ordinal");
break;
}
+ library_ordinal = *val;
+ break;
+ }
+
case DyldInfo::BIND_OPCODES::SET_DYLIB_SPECIAL_IMM:
- {
- // the special ordinals are negative numbers
- if (imm == 0) {
- library_ordinal = 0;
- } else {
- int8_t sign_extended = DyldInfo::OPCODE_MASK | imm;
- library_ordinal = sign_extended;
- }
- break;
+ {
+ // the special ordinals are negative numbers
+ if (imm == 0) {
+ library_ordinal = 0;
+ } else {
+ int8_t sign_extended = DyldInfo::OPCODE_MASK | imm;
+ library_ordinal = sign_extended;
}
+ break;
+ }
case DyldInfo::BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM:
- {
- auto str = stream_->read_string();
- if (!str) {
- LIEF_ERR("Can't read symbol name");
- break;
- }
- symbol_name = std::move(*str);
-
- if ((imm & uint8_t(DyldInfo::BIND_SYMBOL_FLAGS::WEAK_IMPORT)) != 0) {
- is_weak_import = true;
- } else {
- is_weak_import = false;
- }
+ {
+ auto str = stream_->read_string();
+ if (!str) {
+ LIEF_ERR("Can't read symbol name");
break;
}
+ symbol_name = std::move(*str);
+
+ if ((imm & uint8_t(DyldInfo::BIND_SYMBOL_FLAGS::WEAK_IMPORT)) != 0) {
+ is_weak_import = true;
+ } else {
+ is_weak_import = false;
+ }
+ break;
+ }
case DyldInfo::BIND_OPCODES::SET_ADDEND_SLEB:
- {
- auto val = stream_->read_sleb128();
- if (!val) {
- LIEF_ERR("Can't read BIND_OPCODE_SET_ADDEND_SLEB sleb128 addend");
- break;
- }
- addend = *val;
+ {
+ auto val = stream_->read_sleb128();
+ if (!val) {
+ LIEF_ERR("Can't read BIND_OPCODE_SET_ADDEND_SLEB sleb128 addend");
break;
}
+ addend = *val;
+ break;
+ }
case DyldInfo::BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
- {
- auto val = stream_->read_uleb128();
- if (!val) {
- LIEF_ERR("Can't read BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB uleb128 segment offset");
- break;
- }
- segment_idx = imm;
- segment_offset = *val;
-
+ {
+ auto val = stream_->read_uleb128();
+ if (!val) {
+ LIEF_ERR("Can't read BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB uleb128 "
+ "segment offset");
break;
}
+ segment_idx = imm;
+ segment_offset = *val;
+
+ break;
+ }
case DyldInfo::BIND_OPCODES::DO_BIND:
- {
- do_bind<MACHO_T>(
- DyldBindingInfo::CLASS::LAZY,
- static_cast<uint8_t>(DyldBindingInfo::TYPE::POINTER),
- segment_idx,
- segment_offset,
- symbol_name,
- library_ordinal,
- addend,
- is_weak_import,
- false,
- &segments, start_offset);
- start_offset = stream_->pos() - offset + 1;
- segment_offset += sizeof(pint_t);
- break;
- }
+ {
+ do_bind<MACHO_T>(DyldBindingInfo::CLASS::LAZY,
+ static_cast<uint8_t>(DyldBindingInfo::TYPE::POINTER),
+ segment_idx, segment_offset, symbol_name, library_ordinal,
+ addend, is_weak_import, false, &segments, start_offset);
+ start_offset = stream_->pos() - offset + 1;
+ segment_offset += sizeof(pint_t);
+ break;
+ }
default:
- {
- LIEF_ERR("Unsupported opcode: 0x{:x}", static_cast<uint32_t>(opcode));
- break;
- }
+ {
+ LIEF_ERR("Unsupported opcode: {:#x}", static_cast<uint32_t>(opcode));
+ break;
}
+ }
}
return ok();
}
template<class MACHO_T>
-ok_error_t BinaryParser::do_bind(DyldBindingInfo::CLASS cls,
- uint8_t type,
- uint8_t segment_idx,
- uint64_t segment_offset,
- const std::string& symbol_name,
- int32_t ord,
- int64_t addend,
- bool is_weak,
+ok_error_t BinaryParser::do_bind(DyldBindingInfo::CLASS cls, uint8_t type,
+ uint8_t segment_idx, uint64_t segment_offset,
+ const std::string& symbol_name, int32_t ord,
+ int64_t addend, bool is_weak,
bool is_non_weak_definition,
it_opaque_segments segments_ptr,
- uint64_t offset)
-{
+ uint64_t offset) {
auto& segments = *static_cast<Binary::it_segments*>(segments_ptr);
if (segment_idx >= segments.size()) {
LIEF_ERR("Wrong index: {:d}", segment_idx);
@@ -2322,15 +2502,16 @@ ok_error_t BinaryParser::do_bind(DyldBindingInfo::CLASS cls,
uint64_t address = segment.virtual_address() + segment_offset;
if (address > (segment.virtual_address() + segment.virtual_size())) {
- LIEF_ERR("Bad address: 0x{:x}", address);
+ LIEF_ERR("Bad address: {:#x}", address);
return make_error_code(lief_errors::corrupted);
}
// Create a BindingInfo object
- auto binding_info = std::make_unique<DyldBindingInfo>(
- cls, DyldBindingInfo::TYPE(type), address, addend, ord, is_weak,
- is_non_weak_definition, offset);
+ auto binding_info =
+ std::make_unique<DyldBindingInfo>(cls, DyldBindingInfo::TYPE(type), address,
+ addend, ord, is_weak,
+ is_non_weak_definition, offset);
binding_info->segment_ = &segment;
@@ -2340,8 +2521,9 @@ ok_error_t BinaryParser::do_bind(DyldBindingInfo::CLASS cls,
}
Symbol* symbol = nullptr;
- auto search = memoized_symbols_.find(symbol_name);
- if (search != memoized_symbols_.end()) {
+ if (auto search = memoized_symbols_.find(symbol_name);
+ search != memoized_symbols_.end())
+ {
symbol = search->second;
} else {
symbol = binary_->get_symbol(symbol_name);
@@ -2352,10 +2534,10 @@ ok_error_t BinaryParser::do_bind(DyldBindingInfo::CLASS cls,
} else {
LIEF_INFO("New symbol discovered: {}", symbol_name);
auto symbol = std::make_unique<Symbol>();
- symbol->origin_ = Symbol::ORIGIN::DYLD_BIND;
- symbol->type_ = 0;
+ symbol->origin_ = Symbol::ORIGIN::DYLD_BIND;
+ symbol->type_ = 0;
symbol->numberof_sections_ = 0;
- symbol->description_ = 0;
+ symbol->description_ = 0;
symbol->name(symbol_name);
binding_info->symbol_ = symbol.get();
@@ -2374,7 +2556,8 @@ ok_error_t BinaryParser::do_bind(DyldBindingInfo::CLASS cls,
}
template<class MACHO_T>
-ok_error_t BinaryParser::do_rebase(uint8_t type, uint8_t segment_idx, uint64_t segment_offset,
+ok_error_t BinaryParser::do_rebase(uint8_t type, uint8_t segment_idx,
+ uint64_t segment_offset,
const it_opaque_segments segments_ptr) {
const auto& segments = *static_cast<const Binary::it_segments*>(segments_ptr);
@@ -2390,61 +2573,63 @@ ok_error_t BinaryParser::do_rebase(uint8_t type, uint8_t segment_idx, uint64_t s
uint64_t address = segment.virtual_address() + segment_offset;
if (address > (segment.virtual_address() + segment.virtual_size())) {
- LIEF_ERR("Bad rebase address: 0x{:x}", address);
+ LIEF_ERR("Bad rebase address: {:#x}", address);
return make_error_code(lief_errors::corrupted);
}
auto reloc = std::make_unique<RelocationDyld>(address, type);
- // result.second is true if the insertion succeed
+ // result.second is true if the insertion succeeded
reloc->architecture_ = binary_->header().cpu_type();
// Tie section and segment
reloc->segment_ = &segment;
Section* section = binary_->section_from_virtual_address(address);
if (section == nullptr) {
- LIEF_ERR("Can't find the section associated with the virtual address 0x{:x}", address);
+ LIEF_ERR("Can't find the section associated with the virtual address {:#x}",
+ address);
return make_error_code(lief_errors::not_found);
}
reloc->section_ = section;
// Tie symbol
- const auto it_symbol = memoized_symbols_by_address_.find(address);
- if (it_symbol != memoized_symbols_by_address_.end()) {
+ if (const auto it_symbol = memoized_symbols_by_address_.find(address);
+ it_symbol != memoized_symbols_by_address_.end())
+ {
reloc->symbol_ = it_symbol->second;
}
switch (DyldInfo::REBASE_TYPE(type)) {
case DyldInfo::REBASE_TYPE::POINTER:
- {
- reloc->size_ = sizeof(pint_t) * BYTE_BITS;
- break;
- }
+ {
+ reloc->size_ = sizeof(pint_t) * BYTE_BITS;
+ break;
+ }
case DyldInfo::REBASE_TYPE::TEXT_ABSOLUTE32:
case DyldInfo::REBASE_TYPE::TEXT_PCREL32:
- {
- reloc->size_ = sizeof(uint32_t) * BYTE_BITS;
- break;
- }
+ {
+ reloc->size_ = sizeof(uint32_t) * BYTE_BITS;
+ break;
+ }
case DyldInfo::REBASE_TYPE::THREADED:
- {
- reloc->size_ = sizeof(pint_t) * BYTE_BITS;
- break;
- }
+ {
+ reloc->size_ = sizeof(pint_t) * BYTE_BITS;
+ break;
+ }
default:
- {
- LIEF_ERR("Unsuported relocation type: 0x{:x}", type);
- }
+ {
+ LIEF_ERR("Unsuported relocation type: {:#x}", type);
+ }
}
// Check if a relocation already exists:
if (dyld_reloc_addrs_.insert(address).second) {
segment.relocations_.push_back(std::move(reloc));
} else {
- LIEF_DEBUG("[!] Duplicated symbol address in the dyld rebase: 0x{:x}", address);
+ LIEF_DEBUG("[!] Duplicated symbol address in the dyld rebase: {:#x}", address);
}
return ok();
}
@@ -2468,13 +2653,14 @@ ok_error_t BinaryParser::parse_chained_payload(SpanStream& stream) {
LIEF_DEBUG("symbols_offset = {}", header.symbols_offset);
LIEF_DEBUG("imports_count = {}", header.imports_count);
LIEF_DEBUG("imports_format = {} ({})", header.imports_format,
- to_string(static_cast<DYLD_CHAINED_FORMAT>(header.imports_format)));
+ to_string(static_cast<DYLD_CHAINED_FORMAT>(header.imports_format)));
LIEF_DEBUG("symbols_format = {}", header.symbols_format);
chained_fixups_->update_with(header);
auto res_symbols_pools = stream.slice(header.symbols_offset);
if (!res_symbols_pools) {
- LIEF_WARN("Can't access the symbols pools (dyld_chained_fixups_header.symbols_offset)");
+ LIEF_WARN("Can't access the symbols pools "
+ "(dyld_chained_fixups_header.symbols_offset)");
return make_error_code(lief_errors::read_error);
}
@@ -2493,23 +2679,31 @@ ok_error_t BinaryParser::parse_chained_payload(SpanStream& stream) {
template<class MACHO_T>
-ok_error_t BinaryParser::parse_chained_import(const details::dyld_chained_fixups_header& header,
- SpanStream& stream, SpanStream& symbol_pool) {
+ok_error_t BinaryParser::parse_chained_import(
+ const details::dyld_chained_fixups_header& header, SpanStream& stream,
+ SpanStream& symbol_pool
+) {
// According to validChainedFixupsInfo for the cases of
- // DYLD_CHAINED_PTR_64 / DYLD_CHAINED_PTR_64_OFFSET / DYLD_CHAINED_PTR_ARM64E_USERLAND24
+ // DYLD_CHAINED_PTR_64 / DYLD_CHAINED_PTR_64_OFFSET /
+ // DYLD_CHAINED_PTR_ARM64E_USERLAND24
static constexpr uint32_t MAX_BIND_ORDINAL = 0xFFFFFF;
- // Sanity checks according to dyld-852.2 / MachOAnalyzer.cpp:forEachChainedFixupTarget
- if (header.imports_offset > stream.size() || header.symbols_offset > stream.size()) {
+ // Sanity checks according to dyld-852.2 /
+ // MachOAnalyzer.cpp:forEachChainedFixupTarget
+ if (header.imports_offset > stream.size() ||
+ header.symbols_offset > stream.size())
+ {
LIEF_WARN("Malformed LC_DYLD_CHAINED_FIXUPS: "
- "dyld_chained_fixups_header.{{imports_offset, symbols_offset}} are out of ranges");
+ "dyld_chained_fixups_header.{{imports_offset, symbols_offset}} are "
+ "out of ranges");
return make_error_code(lief_errors::parsing_error);
}
if (header.imports_count >= MAX_BIND_ORDINAL) {
- LIEF_WARN("dyld_chained_fixups_header.imports_count is too large: {}. It should at most {}",
+ LIEF_WARN("dyld_chained_fixups_header.imports_count is too large: {}. It "
+ "should at most {}",
header.imports_count, MAX_BIND_ORDINAL);
return make_error_code(lief_errors::parsing_error);
}
@@ -2517,112 +2711,115 @@ ok_error_t BinaryParser::parse_chained_import(const details::dyld_chained_fixups
const auto fmt = static_cast<DYLD_CHAINED_FORMAT>(header.imports_format);
switch (fmt) {
case DYLD_CHAINED_FORMAT::IMPORT:
- {
- stream.setpos(header.imports_offset);
- for (size_t i = 0; i < header.imports_count; ++i) {
- details::dyld_chained_import import;
- std::string symbol_name;
- if (auto res = stream.read<details::dyld_chained_import>()) {
- import = *res;
- } else {
- LIEF_WARN("Can't read dyld_chained_import #{}: {}", i,
- to_string(get_error(res)));
- break;
- }
- LIEF_DEBUG("dyld chained import[{}]", i);
- if (auto res = symbol_pool.peek_string_at(import.name_offset)) {
- symbol_name = std::move(*res);
- } else {
- LIEF_WARN("Can't read dyld_chained_import.name #{}: {}", i,
- to_string(get_error(res)));
- break;
- }
- int32_t lib_ordinal = 0;
- uint8_t lib_val = import.lib_ordinal;
- if (lib_val > 0xF0) {
- lib_ordinal = static_cast<int8_t>(lib_val);
- } else {
- lib_ordinal = lib_val;
- }
- do_fixup<MACHO_T>(fmt, lib_ordinal, symbol_name, 0, import.weak_import);
+ {
+ stream.setpos(header.imports_offset);
+ for (size_t i = 0; i < header.imports_count; ++i) {
+ details::dyld_chained_import import{};
+ std::string symbol_name;
+ if (auto res = stream.read<details::dyld_chained_import>()) {
+ import = *res;
+ } else {
+ LIEF_WARN("Can't read dyld_chained_import #{}: {}", i,
+ to_string(get_error(res)));
+ break;
}
- break;
+ LIEF_DEBUG("Dyld chained import[{}]", i);
+ if (auto res = symbol_pool.peek_string_at(import.name_offset)) {
+ symbol_name = std::move(*res);
+ } else {
+ LIEF_WARN("Can't read dyld_chained_import.name #{}: {}", i,
+ to_string(get_error(res)));
+ break;
+ }
+ int32_t lib_ordinal = 0;
+ uint8_t lib_val = import.lib_ordinal;
+ if (lib_val > 0xF0) {
+ lib_ordinal = static_cast<int8_t>(lib_val);
+ } else {
+ lib_ordinal = lib_val;
+ }
+ do_fixup<MACHO_T>(fmt, lib_ordinal, symbol_name, 0, import.weak_import);
}
+ break;
+ }
case DYLD_CHAINED_FORMAT::IMPORT_ADDEND:
- {
- stream.setpos(header.imports_offset);
- for (size_t i = 0; i < header.imports_count; ++i) {
- details::dyld_chained_import_addend import;
- std::string symbol_name;
- if (auto res = stream.read<details::dyld_chained_import_addend>()) {
- import = *res;
- } else {
- LIEF_WARN("Can't read dyld_chained_import_addend #{}: {}", i,
- to_string(get_error(res)));
- break;
- }
- if (auto res = symbol_pool.peek_string_at(import.name_offset)) {
- symbol_name = std::move(*res);
- } else {
- LIEF_WARN("Can't read dyld_chained_import_addend.name #{}: {}", i,
- to_string(get_error(res)));
- break;
- }
- int32_t lib_ordinal = 0;
- uint8_t lib_val = import.lib_ordinal;
- if (lib_val > 0xF0) {
- lib_ordinal = static_cast<int8_t>(lib_val);
- } else {
- lib_ordinal = lib_val;
- }
- do_fixup<MACHO_T>(fmt, lib_ordinal, symbol_name, import.addend, import.weak_import);
+ {
+ stream.setpos(header.imports_offset);
+ for (size_t i = 0; i < header.imports_count; ++i) {
+ details::dyld_chained_import_addend import{};
+ std::string symbol_name;
+ if (auto res = stream.read<details::dyld_chained_import_addend>()) {
+ import = *res;
+ } else {
+ LIEF_WARN("Can't read dyld_chained_import_addend #{}: {}", i,
+ to_string(get_error(res)));
+ break;
}
- break;
+ if (auto res = symbol_pool.peek_string_at(import.name_offset)) {
+ symbol_name = std::move(*res);
+ } else {
+ LIEF_WARN("Can't read dyld_chained_import_addend.name #{}: {}", i,
+ to_string(get_error(res)));
+ break;
+ }
+ int32_t lib_ordinal = 0;
+ uint8_t lib_val = import.lib_ordinal;
+ if (lib_val > 0xF0) {
+ lib_ordinal = static_cast<int8_t>(lib_val);
+ } else {
+ lib_ordinal = lib_val;
+ }
+ do_fixup<MACHO_T>(fmt, lib_ordinal, symbol_name, import.addend,
+ import.weak_import);
}
+ break;
+ }
case DYLD_CHAINED_FORMAT::IMPORT_ADDEND64:
- {
- stream.setpos(header.imports_offset);
- for (size_t i = 0; i < header.imports_count; ++i) {
- details::dyld_chained_import_addend64 import;
- std::string symbol_name;
- if (auto res = stream.read<details::dyld_chained_import_addend64>()) {
- import = *res;
- } else {
- LIEF_WARN("Can't read dyld_chained_import_addend64 #{}: {}", i,
- to_string(get_error(res)));
- break;
- }
- if (auto res = symbol_pool.peek_string_at(import.name_offset)) {
- symbol_name = std::move(*res);
- } else {
- LIEF_WARN("Can't read dyld_chained_import_addend64.name #{}: {}", i,
- to_string(get_error(res)));
- break;
- }
- int32_t lib_ordinal = 0;
- uint16_t lib_val = import.lib_ordinal;
- if (lib_val > 0xFFF0) {
- lib_ordinal = static_cast<int16_t>(lib_val);
- } else {
- lib_ordinal = lib_val;
- }
- do_fixup<MACHO_T>(fmt, lib_ordinal, symbol_name, import.addend, import.weak_import);
+ {
+ stream.setpos(header.imports_offset);
+ for (size_t i = 0; i < header.imports_count; ++i) {
+ details::dyld_chained_import_addend64 import{};
+ std::string symbol_name;
+ if (auto res = stream.read<details::dyld_chained_import_addend64>()) {
+ import = *res;
+ } else {
+ LIEF_WARN("Can't read dyld_chained_import_addend64 #{}: {}", i,
+ to_string(get_error(res)));
+ break;
}
- break;
- }
- default:
- {
- LIEF_WARN("Dyld Chained Fixups: {} is an unknown format", header.imports_format);
+ if (auto res = symbol_pool.peek_string_at(import.name_offset)) {
+ symbol_name = std::move(*res);
+ } else {
+ LIEF_WARN("Can't read dyld_chained_import_addend64.name #{}: {}", i,
+ to_string(get_error(res)));
+ break;
+ }
+ int32_t lib_ordinal = 0;
+ uint16_t lib_val = import.lib_ordinal;
+ if (lib_val > 0xFFF0) {
+ lib_ordinal = static_cast<int16_t>(lib_val);
+ } else {
+ lib_ordinal = lib_val;
+ }
+ do_fixup<MACHO_T>(fmt, lib_ordinal, symbol_name, import.addend,
+ import.weak_import);
}
+ break;
+ }
+ default:
+ {
+ LIEF_WARN("Dyld Chained Fixups: {} is an unknown format",
+ header.imports_format);
+ }
}
return ok();
}
template<class MACHO_T>
-ok_error_t BinaryParser::parse_chained_fixup(const details::dyld_chained_fixups_header& header,
- SpanStream& stream)
-{
- details::dyld_chained_starts_in_image starts;
+ok_error_t BinaryParser::parse_chained_fixup(
+ const details::dyld_chained_fixups_header& header, SpanStream& stream
+) {
+ details::dyld_chained_starts_in_image starts{};
stream.setpos(header.starts_offset);
if (auto res = stream.read<details::dyld_chained_starts_in_image>()) {
starts = *res;
@@ -2632,13 +2829,14 @@ ok_error_t BinaryParser::parse_chained_fixup(const details::dyld_chained_fixups_
return make_error_code(res.error());
}
- LIEF_DEBUG("chained starts in image");
+ LIEF_DEBUG("Chained starts in image");
LIEF_DEBUG(" seg_count = {}", starts.seg_count);
uint32_t nb_segments = starts.seg_count;
if (nb_segments > binary_->segments_.size()) {
LIEF_WARN("Chained fixup: dyld_chained_starts_in_image.seg_count ({}) "
- "exceeds the number of segments ({})", starts.seg_count, binary_->segments_.size());
+ "exceeds the number of segments ({})",
+ starts.seg_count, binary_->segments_.size());
nb_segments = binary_->segments_.size();
}
@@ -2652,18 +2850,21 @@ ok_error_t BinaryParser::parse_chained_fixup(const details::dyld_chained_fixups_
break;
}
- LIEF_DEBUG(" 0x{:06x} seg_offset[{}] = {} ({})",
- stream.pos() - sizeof(uint32_t),
- seg_idx, seg_info_offset, binary_->segments_[seg_idx]->name());
+ LIEF_DEBUG(" {:#08x} seg_offset[{}] = {} ({})",
+ stream.pos() - sizeof(uint32_t), seg_idx, seg_info_offset,
+ binary_->segments_[seg_idx]->name());
if (seg_info_offset == 0) {
- struct DyldChainedFixups::chained_starts_in_segment info(0, {}, *binary_->segments_[seg_idx]);
+ struct DyldChainedFixups::chained_starts_in_segment info(
+ 0, {}, *binary_->segments_[seg_idx]
+ );
chained_fixups_->chained_starts_in_segment_.push_back(std::move(info));
continue;
}
LIEF_DEBUG(" #{} processing dyld_chained_starts_in_segment", seg_idx);
const uint64_t offset = header.starts_offset + seg_info_offset;
if (!parse_fixup_seg<MACHO_T>(stream, seg_info_offset, offset, seg_idx)) {
- LIEF_WARN("Error while parsing fixup in segment: {}", binary_->segments_[seg_idx]->name());
+ LIEF_WARN("Error while parsing fixup in segment: {}",
+ binary_->segments_[seg_idx]->name());
}
}
@@ -2671,13 +2872,13 @@ ok_error_t BinaryParser::parse_chained_fixup(const details::dyld_chained_fixups_
}
template<class MACHO_T>
-ok_error_t BinaryParser::parse_fixup_seg(SpanStream& stream, uint32_t seg_info_offset,
- uint64_t offset, uint32_t seg_idx)
-{
+ok_error_t BinaryParser::parse_fixup_seg(SpanStream& stream,
+ uint32_t seg_info_offset, uint64_t offset,
+ uint32_t seg_idx) {
static constexpr const char DPREFIX[] = " ";
- static constexpr auto DYLD_CHAINED_PTR_START_NONE = 0xFFFF;
+ static constexpr auto DYLD_CHAINED_PTR_START_NONE = 0xFFFF;
static constexpr auto DYLD_CHAINED_PTR_START_MULTI = 0x8000;
- static constexpr auto DYLD_CHAINED_PTR_START_LAST = 0x8000;
+ static constexpr auto DYLD_CHAINED_PTR_START_LAST = 0x8000;
const uint64_t imagebase = binary_->imagebase();
@@ -2691,24 +2892,28 @@ ok_error_t BinaryParser::parse_fixup_seg(SpanStream& stream, uint32_t seg_info_o
}
auto res_seg_stream = stream.slice(offset);
if (!res_seg_stream) {
- LIEF_ERR("Can't slice dyld_chained_starts_in_segment #{}: {}",
- seg_idx, to_string(get_error(res_seg_stream)));
+ LIEF_ERR("Can't slice dyld_chained_starts_in_segment #{}: {}", seg_idx,
+ to_string(get_error(res_seg_stream)));
return make_error_code(res_seg_stream.error());
}
SpanStream seg_stream = std::move(*res_seg_stream);
seg_stream.set_endian_swap(stream_->should_swap());
seg_stream.read<details::dyld_chained_starts_in_segment>();
- LIEF_DEBUG("{}size = {}", DPREFIX, seg_info.size);
- LIEF_DEBUG("{}page_size = 0x{:x}", DPREFIX, seg_info.page_size);
- LIEF_DEBUG("{}pointer_format = {} ({})", DPREFIX, seg_info.pointer_format, to_string(static_cast<DYLD_CHAINED_PTR_FORMAT>(seg_info.pointer_format)));
- LIEF_DEBUG("{}segment_offset = 0x{:x}", DPREFIX, seg_info.segment_offset);
- LIEF_DEBUG("{}max_valid_pointer = {}", DPREFIX, seg_info.max_valid_pointer);
- LIEF_DEBUG("{}page_count = {}", DPREFIX, seg_info.page_count);
+ LIEF_DEBUG("{}size = {}", DPREFIX, seg_info.size);
+ LIEF_DEBUG("{}page_size = {:#x}", DPREFIX, seg_info.page_size);
+ LIEF_DEBUG(
+ "{}pointer_format = {} ({})", DPREFIX, seg_info.pointer_format,
+ to_string(static_cast<DYLD_CHAINED_PTR_FORMAT>(seg_info.pointer_format))
+ );
+ LIEF_DEBUG("{}segment_offset = {:#x}", DPREFIX, seg_info.segment_offset);
+ LIEF_DEBUG("{}max_valid_pointer = {}", DPREFIX, seg_info.max_valid_pointer);
+ LIEF_DEBUG("{}page_count = {}", DPREFIX, seg_info.page_count);
SegmentCommand* segment = binary_->segments_[seg_idx];
- struct DyldChainedFixups::chained_starts_in_segment info(seg_info_offset, seg_info, *segment);
+ struct DyldChainedFixups::chained_starts_in_segment info(seg_info_offset,
+ seg_info, *segment);
info.page_start.reserve(10);
const uint64_t page_start_off = seg_stream.pos();
for (uint32_t page_idx = 0; page_idx < seg_info.page_count; ++page_idx) {
@@ -2716,7 +2921,8 @@ ok_error_t BinaryParser::parse_fixup_seg(SpanStream& stream, uint32_t seg_info_o
if (auto res = seg_stream.read<decltype(offset_in_page)>()) {
offset_in_page = *res;
} else {
- LIEF_WARN("Can't read dyld_chained_starts_in_segment.page_start[{}]", page_idx);
+ LIEF_WARN("Can't read dyld_chained_starts_in_segment.page_start[{}]",
+ page_idx);
break;
}
info.page_start.push_back(offset_in_page);
@@ -2732,32 +2938,49 @@ ok_error_t BinaryParser::parse_fixup_seg(SpanStream& stream, uint32_t seg_info_o
bool chain_end = false;
while (!chain_end) {
uint16_t overflow_val = 0;
- const uint64_t off = page_start_off + overflow_index * sizeof(uint16_t); // &segInfo->page_start[overflowIndex]
+ const uint64_t off =
+ page_start_off +
+ overflow_index *
+ sizeof(uint16_t); // &segInfo->page_start[overflowIndex]
if (auto res = seg_stream.peek<decltype(overflow_val)>(off)) {
overflow_val = *res;
} else {
LIEF_WARN("Can't read page_start[overflow_index: {}]", overflow_index);
break;
}
- chain_end = overflow_val & DYLD_CHAINED_PTR_START_LAST;
+ chain_end = overflow_val & DYLD_CHAINED_PTR_START_LAST;
offset_in_page = overflow_val & ~DYLD_CHAINED_PTR_START_LAST;
- uint64_t page_content_start = seg_info.segment_offset + (page_idx * seg_info.page_size);
+ uint64_t page_content_start =
+ seg_info.segment_offset +
+ (static_cast<uint64_t>(page_idx) * seg_info.page_size);
uint64_t chain_address = imagebase + page_content_start + offset_in_page;
- uint64_t chain_offset = (chain_address - segment->virtual_address()) + segment->file_offset();
- auto is_ok = walk_chain<MACHO_T>(*segment, chain_address, chain_offset, seg_info);
+ uint64_t chain_offset =
+ (chain_address - segment->virtual_address()) + segment->file_offset();
+ auto is_ok =
+ walk_chain<MACHO_T>(*segment, chain_address, chain_offset, seg_info);
if (!is_ok) {
- LIEF_WARN("Error while walking through the chained fixup of the segment '{}'", segment->name());
+ LIEF_WARN(
+ "Error while walking through the chained fixup of the segment '{}'",
+ segment->name()
+ );
}
++overflow_index;
}
} else {
- uint64_t page_content_start = seg_info.segment_offset + (page_idx * seg_info.page_size);
+ uint64_t page_content_start =
+ seg_info.segment_offset +
+ (static_cast<uint64_t>(page_idx) * seg_info.page_size);
uint64_t chain_address = imagebase + page_content_start + offset_in_page;
- uint64_t chain_offset = (chain_address - segment->virtual_address()) + segment->file_offset();
- auto is_ok = walk_chain<MACHO_T>(*segment, chain_address, chain_offset, seg_info);
+ uint64_t chain_offset =
+ (chain_address - segment->virtual_address()) + segment->file_offset();
+ auto is_ok =
+ walk_chain<MACHO_T>(*segment, chain_address, chain_offset, seg_info);
if (!is_ok) {
- LIEF_WARN("Error while walking through the chained fixup of the segment '{}'", segment->name());
+ LIEF_WARN(
+ "Error while walking through the chained fixup of the segment '{}'",
+ segment->name()
+ );
}
}
}
@@ -2768,9 +2991,9 @@ ok_error_t BinaryParser::parse_fixup_seg(SpanStream& stream, uint32_t seg_info_o
template<class MACHO_T>
-ok_error_t BinaryParser::do_fixup(DYLD_CHAINED_FORMAT fmt, int32_t ord, const std::string& symbol_name,
- int64_t addend, bool is_weak)
-{
+ok_error_t BinaryParser::do_fixup(DYLD_CHAINED_FORMAT fmt, int32_t ord,
+ const std::string& symbol_name, int64_t addend,
+ bool is_weak) {
auto binding_info = std::make_unique<ChainedBindingInfoList>(fmt, is_weak);
binding_info->addend_ = addend;
binding_info->library_ordinal_ = ord;
@@ -2784,10 +3007,10 @@ ok_error_t BinaryParser::do_fixup(DYLD_CHAINED_FORMAT fmt, int32_t ord, const st
LIEF_DEBUG(" weak_import: {}", is_weak);
LIEF_DEBUG(" name: {}", symbol_name);
- auto search = memoized_symbols_.find(symbol_name);
-
Symbol* symbol = nullptr;
- if (search != std::end(memoized_symbols_)) {
+ if (auto search = memoized_symbols_.find(symbol_name);
+ search != memoized_symbols_.end())
+ {
symbol = search->second;
} else {
symbol = binary_->get_symbol(symbol_name);
@@ -2801,10 +3024,10 @@ ok_error_t BinaryParser::do_fixup(DYLD_CHAINED_FORMAT fmt, int32_t ord, const st
} else {
LIEF_INFO("New symbol discovered: {}", symbol_name);
auto symbol = std::make_unique<Symbol>();
- symbol->type_ = 0;
+ symbol->type_ = 0;
symbol->numberof_sections_ = 0;
- symbol->description_ = 0;
- symbol->library_ = binding_info->library_;
+ symbol->description_ = 0;
+ symbol->library_ = binding_info->library_;
symbol->name(symbol_name);
binding_info->symbol_ = symbol.get();
@@ -2817,21 +3040,30 @@ ok_error_t BinaryParser::do_fixup(DYLD_CHAINED_FORMAT fmt, int32_t ord, const st
template<class MACHO_T>
-ok_error_t BinaryParser::walk_chain(SegmentCommand& segment,
- uint64_t chain_address, uint64_t chain_offset,
- const details::dyld_chained_starts_in_segment& seg_info)
-{
- bool stop = false;
+ok_error_t BinaryParser::walk_chain(
+ SegmentCommand& segment, uint64_t chain_address, uint64_t chain_offset,
+ const details::dyld_chained_starts_in_segment& seg_info
+) {
+ std::unordered_set<uint64_t> visited;
+ bool stop = false;
bool chain_end = false;
while (!stop && !chain_end) {
+ if (!visited.insert(chain_offset).second) {
+ LIEF_WARN("Cycle detected in the chained fixup at offset: {:#x}",
+ chain_offset);
+ return make_error_code(lief_errors::corrupted);
+ }
if (!process_fixup<MACHO_T>(segment, chain_address, chain_offset, seg_info)) {
- LIEF_WARN("Error while processing the chain at offset: 0x{:x}", chain_offset);
+ LIEF_WARN("Error while processing the chain at offset: {:#x}", chain_offset);
return make_error_code(lief_errors::parsing_error);
}
- if (auto res = next_chain<MACHO_T>(/* in,out */chain_address, chain_offset, seg_info)) {
+ if (auto res = next_chain<MACHO_T>(/* in,out */ chain_address, chain_offset,
+ seg_info))
+ {
chain_offset = *res;
} else {
- LIEF_WARN("Error while computing the next chain for the offset: 0x{:x}", chain_offset);
+ LIEF_WARN("Error while computing the next chain for the offset: {:#x}",
+ chain_offset);
return make_error_code(lief_errors::parsing_error);
}
@@ -2844,10 +3076,12 @@ ok_error_t BinaryParser::walk_chain(SegmentCommand& segment,
template<class MACHO_T>
-result<uint64_t> BinaryParser::next_chain(uint64_t& chain_address, uint64_t chain_offset,
- const details::dyld_chained_starts_in_segment& seg_info)
-{
- const auto ptr_fmt = static_cast<DYLD_CHAINED_PTR_FORMAT>(seg_info.pointer_format);
+result<uint64_t> BinaryParser::next_chain(
+ uint64_t& chain_address, uint64_t chain_offset,
+ const details::dyld_chained_starts_in_segment& seg_info
+) {
+ const auto ptr_fmt =
+ static_cast<DYLD_CHAINED_PTR_FORMAT>(seg_info.pointer_format);
static constexpr uint64_t CHAIN_END = 0;
const uintptr_t stride = ChainedPointerAnalysis::stride(ptr_fmt);
@@ -2857,243 +3091,259 @@ result<uint64_t> BinaryParser::next_chain(uint64_t& chain_address, uint64_t chai
case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND:
case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24:
case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_FIRMWARE:
- {
- /* offset point to a dyld_chained_ptr_arm64e_* structure */
- details::dyld_chained_ptr_arm64e chain;
- if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
- chain = *res;
- } else {
- LIEF_ERR("Can't read the dyld chain at 0x{:x}", chain_offset);
- return make_error_code(res.error());
- }
+ {
+ /* offset points to a dyld_chained_ptr_arm64e_* structure */
+ details::dyld_chained_ptr_arm64e chain;
+ if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
+ chain = *res;
+ } else {
+ LIEF_ERR("Can't read the dyld chain at {:#x}", chain_offset);
+ return make_error_code(res.error());
+ }
- if (chain.rebase.next == 0) {
- return CHAIN_END;
- }
- const uint32_t delta = chain.rebase.next * stride;
- chain_address += delta;
- return chain_offset + delta;
+ if (chain.rebase.next == 0) {
+ return CHAIN_END;
}
+ const uint32_t delta = chain.rebase.next * stride;
+ chain_address += delta;
+ return chain_offset + delta;
+ }
case DYLD_CHAINED_PTR_FORMAT::PTR_64:
case DYLD_CHAINED_PTR_FORMAT::PTR_64_OFFSET:
- {
- details::dyld_chained_ptr_generic64 chain;
- if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
- chain = *res;
- } else {
- LIEF_ERR("Can't read the dyld chain at 0x{:x}", chain_offset);
- return make_error_code(res.error());
- }
-
- if (chain.rebase.next == 0) {
- return CHAIN_END;
- }
+ {
+ details::dyld_chained_ptr_generic64 chain;
+ if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
+ chain = *res;
+ } else {
+ LIEF_ERR("Can't read the dyld chain at {:#x}", chain_offset);
+ return make_error_code(res.error());
+ }
- const uint32_t delta = chain.rebase.next * stride;
- chain_address += delta;
- return chain_offset + delta;
+ if (chain.rebase.next == 0) {
+ return CHAIN_END;
}
+
+ const uint32_t delta = chain.rebase.next * stride;
+ chain_address += delta;
+ return chain_offset + delta;
+ }
case DYLD_CHAINED_PTR_FORMAT::PTR_32:
- {
- details::dyld_chained_ptr_generic32 chain;
- if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
- chain = *res;
- } else {
- LIEF_ERR("Can't read the dyld chain at 0x{:x}", chain_offset);
- return make_error_code(res.error());
- }
+ {
+ details::dyld_chained_ptr_generic32 chain;
+ if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
+ chain = *res;
+ } else {
+ LIEF_ERR("Can't read the dyld chain at {:#x}", chain_offset);
+ return make_error_code(res.error());
+ }
+
+ if (chain.rebase.next == 0) {
+ return CHAIN_END;
+ }
+
+ const uint32_t delta = chain.rebase.next * stride;
+ chain_offset += delta;
+ chain_address += delta;
+ if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
+ chain = *res;
+ } else {
+ LIEF_ERR("Can't read the dyld chain at {:#x}", chain_offset);
+ return CHAIN_END;
+ }
+
+ while (chain.rebase.bind == 0 &&
+ chain.rebase.target > seg_info.max_valid_pointer)
+ {
if (chain.rebase.next == 0) {
return CHAIN_END;
}
-
const uint32_t delta = chain.rebase.next * stride;
chain_offset += delta;
chain_address += delta;
-
if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
chain = *res;
} else {
- LIEF_ERR("Can't read the dyld chain at 0x{:x}", chain_offset);
+ LIEF_ERR("Can't read the dyld chain at {:#x}", chain_offset);
return CHAIN_END;
}
-
- while (chain.rebase.bind == 0 && chain.rebase.target > seg_info.max_valid_pointer) {
- const uint32_t delta = chain.rebase.next * stride;
- chain_offset += delta;
- chain_address += delta;
- if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
- chain = *res;
- } else {
- LIEF_ERR("Can't read the dyld chain at 0x{:x}", chain_offset);
- return CHAIN_END;
- }
- }
- return chain_offset;
}
+ return chain_offset;
+ }
case DYLD_CHAINED_PTR_FORMAT::PTR_64_KERNEL_CACHE:
case DYLD_CHAINED_PTR_FORMAT::PTR_X86_64_KERNEL_CACHE:
- {
- details::dyld_chained_ptr_kernel64 chain;
-
- if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
- chain = *res;
- } else {
- LIEF_ERR("Can't read the dyld chain at 0x{:x}", chain_offset);
- return make_error_code(res.error());
- }
+ {
+ details::dyld_chained_ptr_kernel64 chain;
- if (chain.next == 0) {
- return CHAIN_END;
- }
+ if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
+ chain = *res;
+ } else {
+ LIEF_ERR("Can't read the dyld chain at {:#x}", chain_offset);
+ return make_error_code(res.error());
+ }
- int32_t delta = chain.next * stride - chain_offset;
- chain_address += delta;
- return chain.next * stride;
+ if (chain.next == 0) {
+ return CHAIN_END;
}
+
+ int32_t delta = chain.next * stride - chain_offset;
+ chain_address += delta;
+ return chain.next * stride;
+ }
case DYLD_CHAINED_PTR_FORMAT::PTR_32_FIRMWARE:
- {
- details::dyld_chained_ptr_firm32 chain;
+ {
+ details::dyld_chained_ptr_firm32 chain;
- if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
- chain = *res;
- } else {
- LIEF_ERR("Can't read the dyld chain at 0x{:x}", chain_offset);
- return make_error_code(res.error());
- }
+ if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
+ chain = *res;
+ } else {
+ LIEF_ERR("Can't read the dyld chain at {:#x}", chain_offset);
+ return make_error_code(res.error());
+ }
- if (chain.next == 0) {
- return CHAIN_END;
- }
- int32_t delta = chain.next * stride - chain_offset;
- chain_address += delta;
- return chain.next * stride;
+ if (chain.next == 0) {
+ return CHAIN_END;
}
+ int32_t delta = chain.next * stride - chain_offset;
+ chain_address += delta;
+ return chain.next * stride;
+ }
case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SEGMENTED:
- {
- details::dyld_chained_ptr_arm64e_segmented_rebase chain;
-
- if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
- chain = *res;
- } else {
- LIEF_ERR("Can't read the dyld chain at 0x{:x}", chain_offset);
- return make_error_code(res.error());
- }
+ {
+ details::dyld_chained_ptr_arm64e_segmented_rebase chain;
- if (chain.next == 0) {
- return CHAIN_END;
- }
+ if (auto res = stream_->peek<decltype(chain)>(chain_offset)) {
+ chain = *res;
+ } else {
+ LIEF_ERR("Can't read the dyld chain at {:#x}", chain_offset);
+ return make_error_code(res.error());
+ }
- int32_t delta = chain.next * stride - chain_offset;
- chain_address += delta;
- return chain.next * stride;
+ if (chain.next == 0) {
+ return CHAIN_END;
}
+ int32_t delta = chain.next * stride - chain_offset;
+ chain_address += delta;
+ return chain.next * stride;
+ }
+
default:
- {
- LIEF_ERR("Unknown pointer format: 0x{:04x}", seg_info.pointer_format);
- return make_error_code(lief_errors::not_supported);
- }
+ {
+ LIEF_ERR("Unknown pointer format: {:#06x}", seg_info.pointer_format);
+ return make_error_code(lief_errors::not_supported);
+ }
}
return make_error_code(lief_errors::not_supported);
}
template<class MACHO_T>
-ok_error_t BinaryParser::process_fixup(SegmentCommand& segment,
- uint64_t chain_address, uint64_t chain_offset,
- const details::dyld_chained_starts_in_segment& seg_info)
-{
- const auto ptr_fmt = static_cast<DYLD_CHAINED_PTR_FORMAT>(seg_info.pointer_format);
- //LIEF_DEBUG("0x{:04x}: {}", chain_offset, to_string(ptr_fmt));
+ok_error_t BinaryParser::process_fixup(
+ SegmentCommand& segment, uint64_t chain_address, uint64_t chain_offset,
+ const details::dyld_chained_starts_in_segment& seg_info
+) {
+ const auto ptr_fmt =
+ static_cast<DYLD_CHAINED_PTR_FORMAT>(seg_info.pointer_format);
+ // LIEF_DEBUG("{:#06x}: {}", chain_offset, to_string(ptr_fmt));
switch (ptr_fmt) {
case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E:
case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_KERNEL:
case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND:
case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24:
- {
- /* offset point to a dyld_chained_ptr_arm64e_* structure */
- details::dyld_chained_ptr_arm64e fixup;
- if (auto res = stream_->peek<decltype(fixup)>(chain_offset)) {
- fixup = *res;
- } else {
- LIEF_ERR("Can't read the dyld chain at 0x{:x}", chain_offset);
- return make_error_code(res.error());
- }
+ {
+ /* offset points to a dyld_chained_ptr_arm64e_* structure */
+ details::dyld_chained_ptr_arm64e fixup;
+ if (auto res = stream_->peek<decltype(fixup)>(chain_offset)) {
+ fixup = *res;
+ } else {
+ LIEF_ERR("Can't read the dyld chain at {:#x}", chain_offset);
+ return make_error_code(res.error());
+ }
- auto is_ok = do_chained_fixup(segment, chain_address, chain_offset, seg_info, fixup);
- if (!is_ok) {
- LIEF_WARN("Can't process the fixup {} - 0x{:x}", segment.name(), chain_offset);
- return make_error_code(is_ok.error());
- }
- return ok();
+ auto is_ok =
+ do_chained_fixup(segment, chain_address, chain_offset, seg_info, fixup);
+ if (!is_ok) {
+ LIEF_WARN("Can't process the fixup {} - {:#x}", segment.name(),
+ chain_offset);
+ return make_error_code(is_ok.error());
}
+ return ok();
+ }
case DYLD_CHAINED_PTR_FORMAT::PTR_64:
case DYLD_CHAINED_PTR_FORMAT::PTR_64_OFFSET:
- {
- details::dyld_chained_ptr_generic64 fixup;
- if (auto res = stream_->peek<decltype(fixup)>(chain_offset)) {
- fixup = *res;
- } else {
- LIEF_ERR("Can't read the dyld chain at 0x{:x}", chain_offset);
- return make_error_code(res.error());
- }
- auto is_ok = do_chained_fixup(segment, chain_address, chain_offset, seg_info, fixup);
- if (!is_ok) {
- LIEF_WARN("Can't process the fixup {} - 0x{:x}", segment.name(), chain_offset);
- return make_error_code(is_ok.error());
- }
- return ok();
+ {
+ details::dyld_chained_ptr_generic64 fixup;
+ if (auto res = stream_->peek<decltype(fixup)>(chain_offset)) {
+ fixup = *res;
+ } else {
+ LIEF_ERR("Can't read the dyld chain at {:#x}", chain_offset);
+ return make_error_code(res.error());
+ }
+ auto is_ok =
+ do_chained_fixup(segment, chain_address, chain_offset, seg_info, fixup);
+ if (!is_ok) {
+ LIEF_WARN("Can't process the fixup {} - {:#x}", segment.name(),
+ chain_offset);
+ return make_error_code(is_ok.error());
}
+ return ok();
+ }
case DYLD_CHAINED_PTR_FORMAT::PTR_32:
- {
- details::dyld_chained_ptr_generic32 fixup;
- if (auto res = stream_->peek<decltype(fixup)>(chain_offset)) {
- fixup = *res;
- } else {
- LIEF_ERR("Can't read the dyld chain at 0x{:x}", chain_offset);
- return make_error_code(res.error());
- }
- auto is_ok = do_chained_fixup(segment, chain_address, chain_offset, seg_info, fixup);
- if (!is_ok) {
- LIEF_WARN("Can't process the fixup {} - 0x{:x}", segment.name(), chain_offset);
- return make_error_code(is_ok.error());
- }
- return ok();
+ {
+ details::dyld_chained_ptr_generic32 fixup;
+ if (auto res = stream_->peek<decltype(fixup)>(chain_offset)) {
+ fixup = *res;
+ } else {
+ LIEF_ERR("Can't read the dyld chain at {:#x}", chain_offset);
+ return make_error_code(res.error());
+ }
+ auto is_ok =
+ do_chained_fixup(segment, chain_address, chain_offset, seg_info, fixup);
+ if (!is_ok) {
+ LIEF_WARN("Can't process the fixup {} - {:#x}", segment.name(),
+ chain_offset);
+ return make_error_code(is_ok.error());
}
+ return ok();
+ }
case DYLD_CHAINED_PTR_FORMAT::PTR_64_KERNEL_CACHE:
case DYLD_CHAINED_PTR_FORMAT::PTR_X86_64_KERNEL_CACHE:
case DYLD_CHAINED_PTR_FORMAT::PTR_32_FIRMWARE:
- {
- LIEF_INFO("DYLD_CHAINED_PTR_FORMAT: {} is not implemented. Please consider opening an issue with "
- "the attached binary", to_string(ptr_fmt));
- return make_error_code(lief_errors::not_implemented);
- }
+ {
+ LIEF_INFO("DYLD_CHAINED_PTR_FORMAT: {} is not implemented. Please consider "
+ "opening an issue with "
+ "the attached binary",
+ to_string(ptr_fmt));
+ return make_error_code(lief_errors::not_implemented);
+ }
case LIEF::MachO::DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SEGMENTED:
- {
- details::dyld_chained_ptr_arm64e_segmented fixup;
- if (auto res = stream_->peek<decltype(fixup)>(chain_offset)) {
- fixup = *res;
- } else {
- LIEF_ERR("Can't read the dyld chain at 0x{:x}", chain_offset);
- return make_error_code(res.error());
- }
+ {
+ details::dyld_chained_ptr_arm64e_segmented fixup;
+ if (auto res = stream_->peek<decltype(fixup)>(chain_offset)) {
+ fixup = *res;
+ } else {
+ LIEF_ERR("Can't read the dyld chain at {:#x}", chain_offset);
+ return make_error_code(res.error());
+ }
- auto is_ok = do_chained_fixup(segment, chain_address, chain_offset, seg_info, fixup);
- if (!is_ok) {
- LIEF_WARN("Can't process the fixup {} - 0x{:x}", segment.name(), chain_offset);
- return make_error_code(is_ok.error());
- }
- return ok();
+ auto is_ok =
+ do_chained_fixup(segment, chain_address, chain_offset, seg_info, fixup);
+ if (!is_ok) {
+ LIEF_WARN("Can't process the fixup {} - {:#x}", segment.name(),
+ chain_offset);
+ return make_error_code(is_ok.error());
}
+ return ok();
+ }
default:
- {
- LIEF_ERR("Unknown pointer format: 0x{:04x}", seg_info.pointer_format);
- return make_error_code(lief_errors::not_supported);
- }
+ {
+ LIEF_ERR("Unknown pointer format: {:#06x}", seg_info.pointer_format);
+ return make_error_code(lief_errors::not_supported);
+ }
}
return ok();
}
@@ -3102,33 +3352,38 @@ ok_error_t BinaryParser::process_fixup(SegmentCommand& segment,
/* ARM64E Fixup
* =====================================
*/
-ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,
- uint64_t chain_address, uint32_t chain_offset,
- const details::dyld_chained_starts_in_segment& seg_info,
- const details::dyld_chained_ptr_arm64e& fixup)
-{
+ok_error_t BinaryParser::do_chained_fixup(
+ SegmentCommand& segment, uint64_t chain_address, uint32_t chain_offset,
+ const details::dyld_chained_starts_in_segment& seg_info,
+ const details::dyld_chained_ptr_arm64e& fixup
+) {
static constexpr const char DPREFIX[] = " ";
- const auto ptr_fmt = static_cast<DYLD_CHAINED_PTR_FORMAT>(seg_info.pointer_format);
+ const auto ptr_fmt =
+ static_cast<DYLD_CHAINED_PTR_FORMAT>(seg_info.pointer_format);
const uint64_t imagebase = binary_->imagebase();
const uint64_t address = chain_address;
if (fixup.auth_rebase.auth) {
// ---------- auth && bind ----------
if (fixup.auth_bind.bind) {
- uint32_t bind_ordinal = ptr_fmt == DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24 ?
- fixup.auth_bind24.ordinal :
- fixup.auth_bind.ordinal;
+ uint32_t bind_ordinal =
+ ptr_fmt == DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24 ?
+ fixup.auth_bind24.ordinal :
+ fixup.auth_bind.ordinal;
if (bind_ordinal >= chained_fixups_->internal_bindings_.size()) {
- LIEF_WARN("Out of range bind ordinal {} (max {})",
- bind_ordinal, chained_fixups_->internal_bindings_.size());
+ LIEF_WARN("Out of range bind ordinal {} (max {})", bind_ordinal,
+ chained_fixups_->internal_bindings_.size());
return make_error_code(lief_errors::read_error);
}
- std::unique_ptr<ChainedBindingInfoList>& local_binding = chained_fixups_->internal_bindings_[bind_ordinal];
- local_binding->segment_ = &segment;
+ std::unique_ptr<ChainedBindingInfoList>& local_binding =
+ chained_fixups_->internal_bindings_[bind_ordinal];
+ local_binding->segment_ = &segment;
local_binding->ptr_format_ = ptr_fmt;
local_binding->set(fixup.auth_bind);
- chained_fixups_->all_bindings_.push_back(std::make_unique<ChainedBindingInfo>(*local_binding));
+ chained_fixups_->all_bindings_.push_back(
+ std::make_unique<ChainedBindingInfo>(*local_binding)
+ );
auto& binding_extra_info = chained_fixups_->all_bindings_.back();
copy_from(*binding_extra_info, *local_binding);
@@ -3137,12 +3392,13 @@ ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,
local_binding->elements_.push_back(binding_extra_info.get());
if (Symbol* sym = binding_extra_info->symbol()) {
- LIEF_DEBUG("{}[ BIND] {}@0x{:x}: {} / sign ext: {:x}",
- DPREFIX, segment.name(), address, sym->name(), fixup.sign_extended_addend());
+ LIEF_DEBUG("{}[ BIND] {}@{:#x}: {} / sign ext: {:x}", DPREFIX,
+ segment.name(), address, sym->name(),
+ fixup.sign_extended_addend());
return ok();
}
- LIEF_DEBUG("{}[ BIND] {}@0x{:x}: <missing symbol> / sign ext: {:x}",
- DPREFIX, segment.name(), address, fixup.sign_extended_addend());
+ LIEF_DEBUG("{}[ BIND] {}@{:#x}: <missing symbol> / sign ext: {:x}", DPREFIX,
+ segment.name(), address, fixup.sign_extended_addend());
LIEF_ERR("Missing symbol for binding at ordinal {}", bind_ordinal);
return make_error_code(lief_errors::not_found);
}
@@ -3152,25 +3408,27 @@ ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,
auto reloc = std::make_unique<RelocationFixup>(ptr_fmt, imagebase);
reloc->set(fixup.auth_rebase);
- reloc->address_ = chain_address;
+ reloc->address_ = chain_address;
reloc->architecture_ = binary_->header().cpu_type();
- reloc->segment_ = &segment;
- reloc->size_ = ChainedPointerAnalysis::stride(ptr_fmt) * BYTE_BITS;
- reloc->offset_ = chain_offset;
+ reloc->segment_ = &segment;
+ reloc->size_ = ChainedPointerAnalysis::stride(ptr_fmt) * BYTE_BITS;
+ reloc->offset_ = chain_offset;
if (Section* section = binary_->section_from_virtual_address(address)) {
reloc->section_ = section;
} else {
- LIEF_ERR("Can't find the section associated with the virtual address 0x{:x}", address);
+ LIEF_ERR("Can't find the section associated with the virtual address {:#x}",
+ address);
}
- const auto it_symbol = memoized_symbols_by_address_.find(address);
- if (it_symbol != memoized_symbols_by_address_.end()) {
+ if (const auto it_symbol = memoized_symbols_by_address_.find(address);
+ it_symbol != memoized_symbols_by_address_.end())
+ {
reloc->symbol_ = it_symbol->second;
}
- LIEF_DEBUG("{}[REBASE] {}@0x{:x}: 0x{:x}",
- DPREFIX, segment.name(), address, target);
+ LIEF_DEBUG("{}[REBASE] {}@{:#x}: {:#x}", DPREFIX, segment.name(), address,
+ target);
segment.relocations_.push_back(std::move(reloc));
@@ -3179,69 +3437,77 @@ ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,
// ---------- !auth && bind ----------
if (fixup.auth_bind.bind) {
- uint32_t bind_ordinal = ptr_fmt == DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24 ?
- fixup.bind24.ordinal :
- fixup.bind.ordinal;
-
- if (bind_ordinal >= chained_fixups_->internal_bindings_.size()) {
- LIEF_WARN("Out of range bind ordinal {} (max {})",
- bind_ordinal, chained_fixups_->internal_bindings_.size());
- return make_error_code(lief_errors::read_error);
- }
+ uint32_t bind_ordinal =
+ ptr_fmt == DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24 ?
+ fixup.bind24.ordinal :
+ fixup.bind.ordinal;
+
+ if (bind_ordinal >= chained_fixups_->internal_bindings_.size()) {
+ LIEF_WARN("Out of range bind ordinal {} (max {})", bind_ordinal,
+ chained_fixups_->internal_bindings_.size());
+ return make_error_code(lief_errors::read_error);
+ }
- std::unique_ptr<ChainedBindingInfoList>& local_binding = chained_fixups_->internal_bindings_[bind_ordinal];
- local_binding->segment_ = &segment;
- local_binding->ptr_format_ = ptr_fmt;
- ptr_fmt == DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24 ?
- local_binding->set(fixup.bind24) : local_binding->set(fixup.bind);
+ std::unique_ptr<ChainedBindingInfoList>& local_binding =
+ chained_fixups_->internal_bindings_[bind_ordinal];
+ local_binding->segment_ = &segment;
+ local_binding->ptr_format_ = ptr_fmt;
+ ptr_fmt == DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24 ?
+ local_binding->set(fixup.bind24) :
+ local_binding->set(fixup.bind);
- chained_fixups_->all_bindings_.push_back(std::make_unique<ChainedBindingInfo>(*local_binding));
- auto& binding_extra_info = chained_fixups_->all_bindings_.back();
- copy_from(*binding_extra_info, *local_binding);
+ chained_fixups_->all_bindings_.push_back(
+ std::make_unique<ChainedBindingInfo>(*local_binding)
+ );
+ auto& binding_extra_info = chained_fixups_->all_bindings_.back();
+ copy_from(*binding_extra_info, *local_binding);
- binding_extra_info->offset_ = chain_offset;
- binding_extra_info->address_ = chain_address;
- local_binding->elements_.push_back(binding_extra_info.get());
+ binding_extra_info->offset_ = chain_offset;
+ binding_extra_info->address_ = chain_address;
+ local_binding->elements_.push_back(binding_extra_info.get());
- if (Symbol* sym = binding_extra_info->symbol()) {
- LIEF_DEBUG("{}[ BIND] {}@0x{:x}: {} / sign ext: {:x}",
- DPREFIX, segment.name(), address, sym->name(), fixup.sign_extended_addend());
- return ok();
- }
+ if (Symbol* sym = binding_extra_info->symbol()) {
+ LIEF_DEBUG("{}[ BIND] {}@{:#x}: {} / sign ext: {:x}", DPREFIX,
+ segment.name(), address, sym->name(),
+ fixup.sign_extended_addend());
+ return ok();
+ }
- LIEF_DEBUG("{}[ BIND] {}@0x{:x}: <missing symbol> / sign ext: {:x}",
- DPREFIX, segment.name(), address, fixup.sign_extended_addend());
- LIEF_ERR("Missing symbol for binding at ordinal {}", bind_ordinal);
- return make_error_code(lief_errors::not_found);
+ LIEF_DEBUG("{}[ BIND] {}@{:#x}: <missing symbol> / sign ext: {:x}", DPREFIX,
+ segment.name(), address, fixup.sign_extended_addend());
+ LIEF_ERR("Missing symbol for binding at ordinal {}", bind_ordinal);
+ return make_error_code(lief_errors::not_found);
}
// ---------- !auth && !bind ----------
// See comment for: dyld_chained_ptr_generic64
const uint64_t target = ptr_fmt == DYLD_CHAINED_PTR_FORMAT::PTR_64 ?
- fixup.unpack_target() :
- fixup.unpack_target() + imagebase;
+ fixup.unpack_target() :
+ fixup.unpack_target() + imagebase;
auto reloc = std::make_unique<RelocationFixup>(ptr_fmt, imagebase);
reloc->set(fixup.rebase);
- reloc->address_ = chain_address;
+ reloc->address_ = chain_address;
reloc->architecture_ = binary_->header().cpu_type();
- reloc->segment_ = &segment;
- reloc->size_ = ChainedPointerAnalysis::stride(ptr_fmt) * BYTE_BITS;
- reloc->offset_ = chain_offset;
+ reloc->segment_ = &segment;
+ reloc->size_ = ChainedPointerAnalysis::stride(ptr_fmt) * BYTE_BITS;
+ reloc->offset_ = chain_offset;
if (Section* section = binary_->section_from_virtual_address(address)) {
reloc->section_ = section;
} else {
- LIEF_ERR("Can't find the section associated with the virtual address 0x{:x}", address);
+ LIEF_ERR("Can't find the section associated with the virtual address {:#x}",
+ address);
}
- const auto it_symbol = memoized_symbols_by_address_.find(address);
- if (it_symbol != memoized_symbols_by_address_.end()) {
+ if (const auto it_symbol = memoized_symbols_by_address_.find(address);
+ it_symbol != memoized_symbols_by_address_.end())
+ {
reloc->symbol_ = it_symbol->second;
}
- LIEF_DEBUG("{}[REBASE] {}@0x{:x}: 0x{:x}",
- DPREFIX, segment.name(), address, target);
+ LIEF_DEBUG("{}[REBASE] {}@{:#x}: {:#x}", DPREFIX, segment.name(), address,
+ target);
segment.relocations_.push_back(std::move(reloc));
return ok();
@@ -3250,30 +3516,34 @@ ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,
/* Generic64 Fixup
* =====================================
*/
-ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,
- uint64_t chain_address, uint32_t chain_offset,
- const details::dyld_chained_starts_in_segment& seg_info,
- const details::dyld_chained_ptr_generic64& fixup)
-{
+ok_error_t BinaryParser::do_chained_fixup(
+ SegmentCommand& segment, uint64_t chain_address, uint32_t chain_offset,
+ const details::dyld_chained_starts_in_segment& seg_info,
+ const details::dyld_chained_ptr_generic64& fixup
+) {
static constexpr const char DPREFIX[] = " ";
- const auto ptr_fmt = static_cast<DYLD_CHAINED_PTR_FORMAT>(seg_info.pointer_format);
+ const auto ptr_fmt =
+ static_cast<DYLD_CHAINED_PTR_FORMAT>(seg_info.pointer_format);
const uint64_t imagebase = binary_->imagebase();
const uint64_t address = imagebase + chain_offset;
if (fixup.bind.bind > 0) {
const uint64_t ordinal = fixup.bind.ordinal;
if (ordinal >= chained_fixups_->internal_bindings_.size()) {
- LIEF_WARN("Out of range bind ordinal {} (max {})",
- ordinal, chained_fixups_->internal_bindings_.size());
+ LIEF_WARN("Out of range bind ordinal {} (max {})", ordinal,
+ chained_fixups_->internal_bindings_.size());
return make_error_code(lief_errors::read_error);
}
- std::unique_ptr<ChainedBindingInfoList>& local_binding = chained_fixups_->internal_bindings_[ordinal];
- local_binding->segment_ = &segment;
+ std::unique_ptr<ChainedBindingInfoList>& local_binding =
+ chained_fixups_->internal_bindings_[ordinal];
+ local_binding->segment_ = &segment;
local_binding->ptr_format_ = ptr_fmt;
local_binding->set(fixup.bind);
- chained_fixups_->all_bindings_.push_back(std::make_unique<ChainedBindingInfo>(*local_binding));
+ chained_fixups_->all_bindings_.push_back(
+ std::make_unique<ChainedBindingInfo>(*local_binding)
+ );
auto& binding_extra_info = chained_fixups_->all_bindings_.back();
copy_from(*binding_extra_info, *local_binding);
@@ -3282,12 +3552,13 @@ ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,
local_binding->elements_.push_back(binding_extra_info.get());
if (Symbol* sym = binding_extra_info->symbol()) {
- LIEF_DEBUG("{}[ BIND] {}@0x{:x}: {} / sign ext: {:x}",
- DPREFIX, segment.name(), address, sym->name(), fixup.sign_extended_addend());
+ LIEF_DEBUG("{}[ BIND] {}@{:#x}: {} / sign ext: {:x}", DPREFIX,
+ segment.name(), address, sym->name(),
+ fixup.sign_extended_addend());
return ok();
}
- LIEF_DEBUG("{}[ BIND] {}@0x{:x}: <missing symbol> / sign ext: {:x}",
- DPREFIX, segment.name(), address, fixup.sign_extended_addend());
+ LIEF_DEBUG("{}[ BIND] {}@{:#x}: <missing symbol> / sign ext: {:x}", DPREFIX,
+ segment.name(), address, fixup.sign_extended_addend());
LIEF_ERR("Missing symbol for binding at ordinal {}", ordinal);
return make_error_code(lief_errors::not_found);
}
@@ -3296,53 +3567,57 @@ ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,
// The fixup is a rebase.
/* In the dyld source code (MachOLoaded.cpp) there is
- * a distinction between with DYLD_CHAINED_PTR_64:
+ * a distinction with DYLD_CHAINED_PTR_64:
*
* // plain rebase (old format target is vmaddr, new format target is offset)
* if ( segInfo->pointer_format == DYLD_CHAINED_PTR_64 )
* newValue = (void*)(fixupLoc->generic64.unpackedTarget()+slide);
* else
- * newValue = (void*)((uintptr_t)this + fixupLoc->generic64.unpackedTarget());
+ * newValue = (void*)((uintptr_t)this +
+ * fixupLoc->generic64.unpackedTarget());
*
* Not sure if it really matters in our case
*/
const uint64_t target = ptr_fmt == DYLD_CHAINED_PTR_FORMAT::PTR_64 ?
- fixup.unpack_target() :
- fixup.unpack_target() + imagebase;
+ fixup.unpack_target() :
+ fixup.unpack_target() + imagebase;
auto reloc = std::make_unique<RelocationFixup>(ptr_fmt, imagebase);
reloc->set(fixup.rebase);
- reloc->address_ = chain_address;
+ reloc->address_ = chain_address;
reloc->architecture_ = binary_->header().cpu_type();
- reloc->segment_ = &segment;
- reloc->size_ = ChainedPointerAnalysis::stride(ptr_fmt) * BYTE_BITS;
- reloc->offset_ = chain_offset;
+ reloc->segment_ = &segment;
+ reloc->size_ = ChainedPointerAnalysis::stride(ptr_fmt) * BYTE_BITS;
+ reloc->offset_ = chain_offset;
if (Section* section = binary_->section_from_virtual_address(address)) {
reloc->section_ = section;
} else {
- LIEF_ERR("Can't find the section associated with the virtual address 0x{:x}", address);
+ LIEF_ERR("Can't find the section associated with the virtual address {:#x}",
+ address);
}
- const auto it_symbol = memoized_symbols_by_address_.find(address);
- if (it_symbol != memoized_symbols_by_address_.end()) {
+ if (const auto it_symbol = memoized_symbols_by_address_.find(address);
+ it_symbol != memoized_symbols_by_address_.end())
+ {
reloc->symbol_ = it_symbol->second;
}
- LIEF_DEBUG("{}[REBASE] {}@0x{:x}: 0x{:x}",
- DPREFIX, segment.name(), address, target);
+ LIEF_DEBUG("{}[REBASE] {}@{:#x}: {:#x}", DPREFIX, segment.name(), address,
+ target);
segment.relocations_.push_back(std::move(reloc));
return ok();
}
-ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,
- uint64_t chain_address, uint32_t chain_offset,
- const details::dyld_chained_starts_in_segment& seg_info,
- const details::dyld_chained_ptr_generic32& fixup)
-{
+ok_error_t BinaryParser::do_chained_fixup(
+ SegmentCommand& segment, uint64_t chain_address, uint32_t chain_offset,
+ const details::dyld_chained_starts_in_segment& seg_info,
+ const details::dyld_chained_ptr_generic32& fixup
+) {
static constexpr const char DPREFIX[] = " ";
- const auto ptr_fmt = static_cast<DYLD_CHAINED_PTR_FORMAT>(seg_info.pointer_format);
+ const auto ptr_fmt =
+ static_cast<DYLD_CHAINED_PTR_FORMAT>(seg_info.pointer_format);
const uint64_t imagebase = binary_->imagebase();
const uint64_t address = imagebase + chain_offset;
@@ -3350,17 +3625,20 @@ ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,
const uint64_t ordinal = fixup.bind.ordinal;
if (ordinal >= chained_fixups_->internal_bindings_.size()) {
- LIEF_WARN("Out of range bind ordinal {} (max {})",
- ordinal, chained_fixups_->internal_bindings_.size());
+ LIEF_WARN("Out of range bind ordinal {} (max {})", ordinal,
+ chained_fixups_->internal_bindings_.size());
return make_error_code(lief_errors::read_error);
}
- std::unique_ptr<ChainedBindingInfoList>& local_binding = chained_fixups_->internal_bindings_[ordinal];
- local_binding->segment_ = &segment;
+ std::unique_ptr<ChainedBindingInfoList>& local_binding =
+ chained_fixups_->internal_bindings_[ordinal];
+ local_binding->segment_ = &segment;
local_binding->ptr_format_ = ptr_fmt;
local_binding->set(fixup.bind);
- chained_fixups_->all_bindings_.push_back(std::make_unique<ChainedBindingInfo>(*local_binding));
+ chained_fixups_->all_bindings_.push_back(
+ std::make_unique<ChainedBindingInfo>(*local_binding)
+ );
auto& binding_extra_info = chained_fixups_->all_bindings_.back();
copy_from(*binding_extra_info, *local_binding);
@@ -3369,12 +3647,12 @@ ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,
local_binding->elements_.push_back(binding_extra_info.get());
if (Symbol* sym = binding_extra_info->symbol()) {
- LIEF_DEBUG("{}[ BIND] {}@0x{:x}: {} / sign ext: {:x}",
- DPREFIX, segment.name(), address, sym->name(), fixup.bind.addend);
+ LIEF_DEBUG("{}[ BIND] {}@{:#x}: {} / sign ext: {:x}", DPREFIX,
+ segment.name(), address, sym->name(), fixup.bind.addend);
return ok();
}
- LIEF_DEBUG("{}[ BIND] {}@0x{:x}: <missing symbol> / sign ext: {:x}",
- DPREFIX, segment.name(), address, fixup.bind.addend);
+ LIEF_DEBUG("{}[ BIND] {}@{:#x}: <missing symbol> / sign ext: {:x}", DPREFIX,
+ segment.name(), address, fixup.bind.addend);
LIEF_ERR("Missing symbol for binding at ordinal {}", ordinal);
return make_error_code(lief_errors::not_found);
}
@@ -3385,7 +3663,7 @@ ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,
const uint64_t target = fixup.rebase.target - bias;
/* This is used to avoid storing bias information */
- const uint64_t fake_bias = target - fixup.rebase.target;
+ const uint64_t fake_bias = target - fixup.rebase.target;
const uint64_t fake_target = target - fake_bias;
details::dyld_chained_ptr_32_rebase fake_fixup = fixup.rebase;
fake_fixup.target = fake_target;
@@ -3395,35 +3673,37 @@ ok_error_t BinaryParser::do_chained_fixup(SegmentCommand& segment,
reloc = std::make_unique<RelocationFixup>(ptr_fmt, imagebase);
reloc->set(fixup.rebase);
}
- reloc->address_ = chain_address;
+ reloc->address_ = chain_address;
reloc->architecture_ = binary_->header().cpu_type();
- reloc->segment_ = &segment;
- reloc->size_ = ChainedPointerAnalysis::stride(ptr_fmt) * BYTE_BITS;
- reloc->offset_ = chain_offset;
+ reloc->segment_ = &segment;
+ reloc->size_ = ChainedPointerAnalysis::stride(ptr_fmt) * BYTE_BITS;
+ reloc->offset_ = chain_offset;
if (Section* section = binary_->section_from_virtual_address(address)) {
reloc->section_ = section;
} else {
- LIEF_ERR("Can't find the section associated with the virtual address 0x{:x}", address);
+ LIEF_ERR("Can't find the section associated with the virtual address {:#x}",
+ address);
}
- const auto it_symbol = memoized_symbols_by_address_.find(address);
- if (it_symbol != memoized_symbols_by_address_.end()) {
+ if (const auto it_symbol = memoized_symbols_by_address_.find(address);
+ it_symbol != memoized_symbols_by_address_.end())
+ {
reloc->symbol_ = it_symbol->second;
}
- LIEF_DEBUG("{}[REBASE] {}@0x{:x}: 0x{:x}",
- DPREFIX, segment.name(), address, reloc->target());
+ LIEF_DEBUG("{}[REBASE] {}@{:#x}: {:#x}", DPREFIX, segment.name(), address,
+ reloc->target());
segment.relocations_.push_back(std::move(reloc));
return ok();
}
-ok_error_t BinaryParser::do_chained_fixup(
- SegmentCommand& /*segment*/, uint64_t /*chain_address*/, uint32_t /*chain_offset*/,
- const details::dyld_chained_starts_in_segment& /*seg_info*/,
- const details::dyld_chained_ptr_arm64e_segmented& /*fixup*/)
-{
+ok_error_t BinaryParser::
+ do_chained_fixup(SegmentCommand& /*segment*/, uint64_t /*chain_address*/,
+ uint32_t /*chain_offset*/,
+ const details::dyld_chained_starts_in_segment& /*seg_info*/,
+ const details::dyld_chained_ptr_arm64e_segmented& /*fixup*/) {
LIEF_ERR("Segmented chained rebase is not supported");
return make_error_code(lief_errors::not_supported);
}
@@ -3435,15 +3715,17 @@ ok_error_t BinaryParser::post_process(SymbolCommand& cmd) {
using nlist_t = typename MACHO_T::nlist;
cmd.original_nb_symbols_ = cmd.numberof_symbols();
- cmd.original_str_size_ = cmd.strings_size();
+ cmd.original_str_size_ = cmd.strings_size();
- SegmentCommand* nlist_linkedit = config_.from_dyld_shared_cache ?
- binary_->get_segment("__LINKEDIT") :
- binary_->segment_from_offset(cmd.symbol_offset());
+ SegmentCommand* nlist_linkedit =
+ config_.from_dyld_shared_cache ?
+ binary_->get_segment("__LINKEDIT") :
+ binary_->segment_from_offset(cmd.symbol_offset());
- SegmentCommand* strings_linkedit = config_.from_dyld_shared_cache ?
- binary_->get_segment("__LINKEDIT") :
- binary_->segment_from_offset(cmd.strings_offset());
+ SegmentCommand* strings_linkedit =
+ config_.from_dyld_shared_cache ?
+ binary_->get_segment("__LINKEDIT") :
+ binary_->segment_from_offset(cmd.strings_offset());
if (nlist_linkedit == nullptr || strings_linkedit == nullptr) {
@@ -3452,15 +3734,14 @@ ok_error_t BinaryParser::post_process(SymbolCommand& cmd) {
const uint64_t nlist_size = sizeof(nlist_t) * cmd.numberof_symbols();
- nlist_buffer.resize(nlist_size);
- strings_buffer.resize(cmd.strings_size());
-
if (!stream_->peek_data(nlist_buffer, cmd.symbol_offset(), nlist_size)) {
- LIEF_ERR("Can't read nlist buffer at: 0x{:010x}", cmd.symbol_offset());
+ LIEF_ERR("Can't read nlist buffer at: {:#012x}", cmd.symbol_offset());
return make_error_code(lief_errors::read_error);
}
- if (!stream_->peek_data(strings_buffer, cmd.strings_offset(), cmd.strings_size())) {
+ if (!stream_->peek_data(strings_buffer, cmd.strings_offset(),
+ cmd.strings_size()))
+ {
return make_error_code(lief_errors::read_error);
}
@@ -3473,12 +3754,15 @@ ok_error_t BinaryParser::post_process(SymbolCommand& cmd) {
}
/* n_list table */ {
- span<uint8_t> content = nlist_linkedit->writable_content();
+ span<uint8_t> content = nlist_linkedit->content();
- const uint64_t rel_offset = cmd.symbol_offset() - nlist_linkedit->file_offset();
+ const uint64_t rel_offset =
+ cmd.symbol_offset() - nlist_linkedit->file_offset();
const size_t symtab_size = cmd.numberof_symbols() * sizeof(nlist_t);
- if (rel_offset > content.size() || (rel_offset + symtab_size) > content.size()) {
- LIEF_ERR("The LC_SYMTAB.n_list is out of bounds of the segment '{}'", nlist_linkedit->name());
+ if (rel_offset > content.size() || (rel_offset + symtab_size) > content.size())
+ {
+ LIEF_ERR("The LC_SYMTAB.n_list is out of bounds of the segment '{}'",
+ nlist_linkedit->name());
return make_error_code(lief_errors::read_out_of_bound);
}
@@ -3492,12 +3776,15 @@ ok_error_t BinaryParser::post_process(SymbolCommand& cmd) {
}
/* strtable */ {
- span<uint8_t> content = strings_linkedit->writable_content();
+ span<uint8_t> content = strings_linkedit->content();
- const uint64_t rel_offset = cmd.strings_offset() - strings_linkedit->file_offset();
+ const uint64_t rel_offset =
+ cmd.strings_offset() - strings_linkedit->file_offset();
const size_t strtab_size = cmd.strings_size();
- if (rel_offset > content.size() || (rel_offset + strtab_size) > content.size()) {
- LIEF_ERR("The LC_SYMTAB.strtab is out of bounds of the segment {}", strings_linkedit->name());
+ if (rel_offset > content.size() || (rel_offset + strtab_size) > content.size())
+ {
+ LIEF_ERR("The LC_SYMTAB.strtab is out of bounds of the segment {}",
+ strings_linkedit->name());
return make_error_code(lief_errors::read_out_of_bound);
}
@@ -3524,19 +3811,24 @@ template<class MACHO_T>
ok_error_t BinaryParser::post_process(FunctionStarts& cmd) {
LIEF_DEBUG("[^] Post processing LC_FUNCTION_STARTS");
SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
- binary_->get_segment("__LINKEDIT") :
- binary_->segment_from_offset(cmd.data_offset());
+ binary_->get_segment("__LINKEDIT") :
+ binary_->segment_from_offset(cmd.data_offset());
if (linkedit == nullptr) {
- LIEF_WARN("Can't find the segment that contains the LC_FUNCTION_STARTS (offset=0x{:016x})", cmd.data_offset());
+ LIEF_WARN("Can't find the segment that contains the LC_FUNCTION_STARTS "
+ "(offset={:#018x})",
+ cmd.data_offset());
return make_error_code(lief_errors::not_found);
}
- span<uint8_t> content = linkedit->writable_content();
+ span<uint8_t> content = linkedit->content();
const uint64_t rel_offset = cmd.data_offset() - linkedit->file_offset();
- if (rel_offset > content.size() || (rel_offset + cmd.data_size()) > content.size()) {
- LIEF_ERR("The LC_FUNCTION_STARTS is out of bounds of the segment '{}'", linkedit->name());
+ if (rel_offset > content.size() ||
+ (rel_offset + cmd.data_size()) > content.size())
+ {
+ LIEF_ERR("The LC_FUNCTION_STARTS is out of bounds of the segment '{}'",
+ linkedit->name());
return make_error_code(lief_errors::read_out_of_bound);
}
@@ -3545,7 +3837,8 @@ ok_error_t BinaryParser::post_process(FunctionStarts& cmd) {
if (LinkEdit::segmentof(*linkedit)) {
static_cast<LinkEdit*>(linkedit)->fstarts_ = &cmd;
} else {
- LIEF_WARN("Weird: LC_FUNCTION_STARTS is not in the __LINKEDIT segment ({})", linkedit->name());
+ LIEF_WARN("Weird: LC_FUNCTION_STARTS is not in the __LINKEDIT segment ({})",
+ linkedit->name());
}
SpanStream stream(cmd.content_);
@@ -3555,9 +3848,8 @@ ok_error_t BinaryParser::post_process(FunctionStarts& cmd) {
do {
auto val = stream.read_uleb128();
if (!val) {
- LIEF_WARN("Can't read value at offset: 0x{:010x} (#{} read)",
- stream.pos(), cmd.functions_.size()
- );
+ LIEF_WARN("Can't read value at offset: {:#012x} (#{} read)", stream.pos(),
+ cmd.functions_.size());
return make_error_code(lief_errors::read_error);
}
@@ -3567,7 +3859,7 @@ ok_error_t BinaryParser::post_process(FunctionStarts& cmd) {
value += *val;
cmd.add_function(value);
- } while(stream);
+ } while (stream);
return ok();
}
@@ -3577,19 +3869,22 @@ template<class MACHO_T>
ok_error_t BinaryParser::post_process(DataInCode& cmd) {
LIEF_DEBUG("[^] Post processing LC_DATA_IN_CODE");
SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
- binary_->get_segment("__LINKEDIT") :
- binary_->segment_from_offset(cmd.data_offset());
+ binary_->get_segment("__LINKEDIT") :
+ binary_->segment_from_offset(cmd.data_offset());
if (linkedit == nullptr) {
LIEF_WARN("Can't find the segment that contains the LC_DATA_IN_CODE");
ScopedStream scoped(*stream_, cmd.data_offset());
return parse_data_in_code<MACHO_T>(cmd, *scoped);
}
- span<uint8_t> content = linkedit->writable_content();
+ span<uint8_t> content = linkedit->content();
const uint64_t rel_offset = cmd.data_offset() - linkedit->file_offset();
- if (rel_offset > content.size() || (rel_offset + cmd.data_size()) > content.size()) {
- LIEF_ERR("The LC_DATA_IN_CODE is out of bounds of the segment '{}'", linkedit->name());
+ if (rel_offset > content.size() ||
+ (rel_offset + cmd.data_size()) > content.size())
+ {
+ LIEF_ERR("The LC_DATA_IN_CODE is out of bounds of the segment '{}'",
+ linkedit->name());
return make_error_code(lief_errors::read_out_of_bound);
}
@@ -3609,18 +3904,21 @@ template<class MACHO_T>
ok_error_t BinaryParser::post_process(SegmentSplitInfo& cmd) {
LIEF_DEBUG("[^] Post processing LC_SEGMENT_SPLIT_INFO");
SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
- binary_->get_segment("__LINKEDIT") :
- binary_->segment_from_offset(cmd.data_offset());
+ binary_->get_segment("__LINKEDIT") :
+ binary_->segment_from_offset(cmd.data_offset());
if (linkedit == nullptr) {
LIEF_WARN("Can't find the segment that contains the LC_SEGMENT_SPLIT_INFO");
return make_error_code(lief_errors::not_found);
}
- span<uint8_t> content = linkedit->writable_content();
+ span<uint8_t> content = linkedit->content();
const uint64_t rel_offset = cmd.data_offset() - linkedit->file_offset();
- if (rel_offset > content.size() || (rel_offset + cmd.data_size()) > content.size()) {
- LIEF_ERR("The LC_SEGMENT_SPLIT_INFO is out of bounds of the segment '{}'", linkedit->name());
+ if (rel_offset > content.size() ||
+ (rel_offset + cmd.data_size()) > content.size())
+ {
+ LIEF_ERR("The LC_SEGMENT_SPLIT_INFO is out of bounds of the segment '{}'",
+ linkedit->name());
return make_error_code(lief_errors::read_out_of_bound);
}
@@ -3646,20 +3944,22 @@ ok_error_t BinaryParser::post_process(DynamicSymbolCommand& cmd) {
continue;
}
- if (cmd.nb_local_symbols() > 0 &&
- cmd.idx_local_symbol() <= isym && isym < (cmd.idx_local_symbol() + cmd.nb_local_symbols()))
+ if (cmd.nb_local_symbols() > 0 && cmd.idx_local_symbol() <= isym &&
+ isym < (cmd.idx_local_symbol() + cmd.nb_local_symbols()))
{
sym->category_ = Symbol::CATEGORY::LOCAL;
}
if (cmd.nb_external_define_symbols() > 0 &&
- cmd.idx_external_define_symbol() <= isym && isym < (cmd.idx_external_define_symbol() + cmd.nb_external_define_symbols()))
+ cmd.idx_external_define_symbol() <= isym &&
+ isym <
+ (cmd.idx_external_define_symbol() + cmd.nb_external_define_symbols()))
{
sym->category_ = Symbol::CATEGORY::EXTERNAL;
}
- if (cmd.nb_undefined_symbols() > 0 &&
- cmd.idx_undefined_symbol() <= isym && isym < (cmd.idx_undefined_symbol() + cmd.nb_undefined_symbols()))
+ if (cmd.nb_undefined_symbols() > 0 && cmd.idx_undefined_symbol() <= isym &&
+ isym < (cmd.idx_undefined_symbol() + cmd.nb_undefined_symbols()))
{
sym->category_ = Symbol::CATEGORY::UNDEFINED;
}
@@ -3671,22 +3971,25 @@ ok_error_t BinaryParser::post_process(DynamicSymbolCommand& cmd) {
return ok();
}
- SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
- binary_->get_segment("__LINKEDIT") :
- binary_->segment_from_offset(cmd.indirect_symbol_offset());
+ SegmentCommand* linkedit =
+ config_.from_dyld_shared_cache ?
+ binary_->get_segment("__LINKEDIT") :
+ binary_->segment_from_offset(cmd.indirect_symbol_offset());
if (linkedit == nullptr) {
ScopedStream scoped(*stream_, cmd.indirect_symbol_offset());
return parse_indirect_symbols(cmd, symtab, *scoped);
}
- span<uint8_t> content = linkedit->writable_content();
+ span<uint8_t> content = linkedit->content();
const size_t size = cmd.nb_indirect_symbols() * sizeof(uint32_t);
- const uint64_t rel_offset = cmd.indirect_symbol_offset() - linkedit->file_offset();
+ const uint64_t rel_offset =
+ cmd.indirect_symbol_offset() - linkedit->file_offset();
if (rel_offset > content.size() || (rel_offset + size) > content.size()) {
- LIEF_ERR("LC_DYSYMTAB.indirect_symbols is out of bounds of the segment '{}'", linkedit->name());
+ LIEF_ERR("LC_DYSYMTAB.indirect_symbols is out of bounds of the segment '{}'",
+ linkedit->name());
return make_error_code(lief_errors::read_out_of_bound);
}
span<uint8_t> indirect_sym_buffer = content.subspan(rel_offset, size);
@@ -3703,19 +4006,26 @@ ok_error_t BinaryParser::post_process(LinkerOptHint& cmd) {
}
SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
- binary_->get_segment("__LINKEDIT") :
- binary_->segment_from_offset(cmd.data_offset());
+ binary_->get_segment("__LINKEDIT") :
+ binary_->segment_from_offset(cmd.data_offset());
if (linkedit == nullptr) {
- LIEF_WARN("Can't find the segment that contains the LC_LINKER_OPTIMIZATION_HINT");
+ LIEF_WARN(
+ "Can't find the segment that contains the LC_LINKER_OPTIMIZATION_HINT"
+ );
return make_error_code(lief_errors::not_found);
}
- span<uint8_t> content = linkedit->writable_content();
+ span<uint8_t> content = linkedit->content();
const uint64_t rel_offset = cmd.data_offset() - linkedit->file_offset();
- if (rel_offset > content.size() || (rel_offset + cmd.data_size()) > content.size()) {
- LIEF_ERR("The LC_LINKER_OPTIMIZATION_HINT is out of bounds of the segment '{}'", linkedit->name());
+ if (rel_offset > content.size() ||
+ (rel_offset + cmd.data_size()) > content.size())
+ {
+ LIEF_ERR(
+ "The LC_LINKER_OPTIMIZATION_HINT is out of bounds of the segment '{}'",
+ linkedit->name()
+ );
return make_error_code(lief_errors::read_out_of_bound);
}
@@ -3724,7 +4034,9 @@ ok_error_t BinaryParser::post_process(LinkerOptHint& cmd) {
if (LinkEdit::segmentof(*linkedit)) {
static_cast<LinkEdit*>(linkedit)->linker_opt_ = &cmd;
} else {
- LIEF_WARN("Weird: LC_LINKER_OPTIMIZATION_HINT is not in the __LINKEDIT segment");
+ LIEF_WARN(
+ "Weird: LC_LINKER_OPTIMIZATION_HINT is not in the __LINKEDIT segment"
+ );
}
return ok();
}
@@ -3735,19 +4047,22 @@ ok_error_t BinaryParser::post_process(AtomInfo& cmd) {
LIEF_DEBUG("[^] Post processing LC_ATOM_INFO");
SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
- binary_->get_segment("__LINKEDIT") :
- binary_->segment_from_offset(cmd.data_offset());
+ binary_->get_segment("__LINKEDIT") :
+ binary_->segment_from_offset(cmd.data_offset());
if (linkedit == nullptr) {
LIEF_WARN("Can't find the segment that contains the LC_ATOM_INFO");
return make_error_code(lief_errors::not_found);
}
- span<uint8_t> content = linkedit->writable_content();
+ span<uint8_t> content = linkedit->content();
const uint64_t rel_offset = cmd.data_offset() - linkedit->file_offset();
- if (rel_offset > content.size() || (rel_offset + cmd.data_size()) > content.size()) {
- LIEF_ERR("The LC_ATOM_INFO is out of bounds of the segment '{}'", linkedit->name());
+ if (rel_offset > content.size() ||
+ (rel_offset + cmd.data_size()) > content.size())
+ {
+ LIEF_ERR("The LC_ATOM_INFO is out of bounds of the segment '{}'",
+ linkedit->name());
return make_error_code(lief_errors::read_out_of_bound);
}
@@ -3765,19 +4080,22 @@ template<class MACHO_T>
ok_error_t BinaryParser::post_process(CodeSignature& cmd) {
LIEF_DEBUG("[^] Post processing LC_CODE_SIGNATURE");
SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
- binary_->get_segment("__LINKEDIT") :
- binary_->segment_from_offset(cmd.data_offset());
+ binary_->get_segment("__LINKEDIT") :
+ binary_->segment_from_offset(cmd.data_offset());
if (linkedit == nullptr) {
LIEF_WARN("Can't find the segment that contains the LC_CODE_SIGNATURE");
return make_error_code(lief_errors::not_found);
}
- span<uint8_t> content = linkedit->writable_content();
+ span<uint8_t> content = linkedit->content();
const uint64_t rel_offset = cmd.data_offset() - linkedit->file_offset();
- if (rel_offset > content.size() || (rel_offset + cmd.data_size()) > content.size()) {
- LIEF_ERR("The LC_CODE_SIGNATURE is out of bounds of the segment '{}'", linkedit->name());
+ if (rel_offset > content.size() ||
+ (rel_offset + cmd.data_size()) > content.size())
+ {
+ LIEF_ERR("The LC_CODE_SIGNATURE is out of bounds of the segment '{}'",
+ linkedit->name());
return make_error_code(lief_errors::read_out_of_bound);
}
@@ -3795,19 +4113,22 @@ template<class MACHO_T>
ok_error_t BinaryParser::post_process(CodeSignatureDir& cmd) {
LIEF_DEBUG("[^] Post processing LC_DYLIB_CODE_SIGN_DRS");
SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
- binary_->get_segment("__LINKEDIT") :
- binary_->segment_from_offset(cmd.data_offset());
+ binary_->get_segment("__LINKEDIT") :
+ binary_->segment_from_offset(cmd.data_offset());
if (linkedit == nullptr) {
LIEF_WARN("Can't find the segment that contains the LC_DYLIB_CODE_SIGN_DRS");
return make_error_code(lief_errors::not_found);
}
- span<uint8_t> content = linkedit->writable_content();
+ span<uint8_t> content = linkedit->content();
const uint64_t rel_offset = cmd.data_offset() - linkedit->file_offset();
- if (rel_offset > content.size() || (rel_offset + cmd.data_size()) > content.size()) {
- LIEF_ERR("The LC_DYLIB_CODE_SIGN_DRS is out of bounds of the segment '{}'", linkedit->name());
+ if (rel_offset > content.size() ||
+ (rel_offset + cmd.data_size()) > content.size())
+ {
+ LIEF_ERR("The LC_DYLIB_CODE_SIGN_DRS is out of bounds of the segment '{}'",
+ linkedit->name());
return make_error_code(lief_errors::read_out_of_bound);
}
@@ -3826,8 +4147,8 @@ template<class MACHO_T>
ok_error_t BinaryParser::post_process(TwoLevelHints& cmd) {
LIEF_DEBUG("[^] Post processing TWOLEVEL_HINTS");
SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
- binary_->get_segment("__LINKEDIT") :
- binary_->segment_from_offset(cmd.offset());
+ binary_->get_segment("__LINKEDIT") :
+ binary_->segment_from_offset(cmd.offset());
if (linkedit == nullptr) {
LIEF_WARN("Can't find the segment that contains the LC_TWOLEVEL_HINTS");
@@ -3835,11 +4156,12 @@ ok_error_t BinaryParser::post_process(TwoLevelHints& cmd) {
}
const size_t raw_size = cmd.original_nb_hints() * sizeof(uint32_t);
- span<uint8_t> content = linkedit->writable_content();
+ span<uint8_t> content = linkedit->content();
const uint64_t rel_offset = cmd.offset() - linkedit->file_offset();
if (rel_offset > content.size() || (rel_offset + raw_size) > content.size()) {
- LIEF_ERR("The LC_TWOLEVEL_HINTS is out of bounds of the segment '{}'", linkedit->name());
+ LIEF_ERR("The LC_TWOLEVEL_HINTS is out of bounds of the segment '{}'",
+ linkedit->name());
return make_error_code(lief_errors::read_out_of_bound);
}
@@ -3865,18 +4187,21 @@ ok_error_t BinaryParser::infer_indirect_bindings() {
for (Section& section : segment.sections()) {
const Section::TYPE type = section.type();
const bool might_have_indirect =
- type == Section::TYPE::NON_LAZY_SYMBOL_POINTERS ||
- type == Section::TYPE::LAZY_SYMBOL_POINTERS ||
- type == Section::TYPE::LAZY_DYLIB_SYMBOL_POINTERS ||
- type == Section::TYPE::THREAD_LOCAL_VARIABLE_POINTERS ||
- type == Section::TYPE::SYMBOL_STUBS;
+ type == Section::TYPE::NON_LAZY_SYMBOL_POINTERS ||
+ type == Section::TYPE::LAZY_SYMBOL_POINTERS ||
+ type == Section::TYPE::LAZY_DYLIB_SYMBOL_POINTERS ||
+ type == Section::TYPE::THREAD_LOCAL_VARIABLE_POINTERS ||
+ type == Section::TYPE::SYMBOL_STUBS;
if (!might_have_indirect) {
continue;
}
uint32_t stride = type == Section::TYPE::SYMBOL_STUBS ?
- section.reserved2() :
- sizeof(typename MACHO_T::uint);
+ section.reserved2() :
+ sizeof(typename MACHO_T::uint);
+ if (stride == 0) {
+ continue;
+ }
uint32_t count = section.size() / stride;
uint32_t n = section.reserved1();
auto indirect_syms = dynsym->indirect_symbols();
@@ -3896,9 +4221,9 @@ ok_error_t BinaryParser::infer_indirect_bindings() {
dylib = binding_libs_[idx];
}
}
- auto binding = std::make_unique<IndirectBindingInfo>(
- segment, sym, lib_ordinal, dylib, addr
- );
+ auto binding =
+ std::make_unique<IndirectBindingInfo>(segment, sym, lib_ordinal, dylib,
+ addr);
binary_->indirect_bindings_.push_back(std::move(binding));
}
}
@@ -3908,9 +4233,8 @@ ok_error_t BinaryParser::infer_indirect_bindings() {
template<class MACHO_T>
-ok_error_t BinaryParser::parse_symtab(SymbolCommand&/*cmd*/,
- SpanStream& nlist_s, SpanStream& string_s)
-{
+ok_error_t BinaryParser::parse_symtab(SymbolCommand& /*cmd*/, SpanStream& nlist_s,
+ SpanStream& string_s) {
using nlist_t = typename MACHO_T::nlist;
size_t idx = 0;
@@ -3941,7 +4265,8 @@ ok_error_t BinaryParser::parse_symtab(SymbolCommand&/*cmd*/,
template<class MACHO_T>
-ok_error_t BinaryParser::parse_data_in_code(DataInCode& cmd, BinaryStream& stream) {
+ok_error_t BinaryParser::parse_data_in_code(DataInCode& cmd,
+ BinaryStream& stream) {
const size_t nb_entries = cmd.data_size() / sizeof(details::data_in_code_entry);
for (size_t i = 0; i < nb_entries; ++i) {
@@ -3960,19 +4285,24 @@ ok_error_t BinaryParser::post_process(FunctionVariants& cmd) {
LIEF_DEBUG("[^] Post processing LC_FUNCTION_VARIANTS");
SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
- binary_->get_segment("__LINKEDIT") :
- binary_->segment_from_offset(cmd.data_offset());
+ binary_->get_segment("__LINKEDIT") :
+ binary_->segment_from_offset(cmd.data_offset());
if (linkedit == nullptr) {
- LIEF_WARN("Can't find the segment that contains the LC_FUNCTION_VARIANTS (offset=0x{:016x})", cmd.data_offset());
+ LIEF_WARN("Can't find the segment that contains the LC_FUNCTION_VARIANTS "
+ "(offset={:#018x})",
+ cmd.data_offset());
return make_error_code(lief_errors::not_found);
}
- span<uint8_t> content = linkedit->writable_content();
+ span<uint8_t> content = linkedit->content();
const uint64_t rel_offset = cmd.data_offset() - linkedit->file_offset();
- if (rel_offset > content.size() || (rel_offset + cmd.data_size()) > content.size()) {
- LIEF_ERR("The LC_FUNCTION_VARIANTS is out of bounds of the segment '{}'", linkedit->name());
+ if (rel_offset > content.size() ||
+ (rel_offset + cmd.data_size()) > content.size())
+ {
+ LIEF_ERR("The LC_FUNCTION_VARIANTS is out of bounds of the segment '{}'",
+ linkedit->name());
return make_error_code(lief_errors::read_out_of_bound);
}
@@ -3981,7 +4311,8 @@ ok_error_t BinaryParser::post_process(FunctionVariants& cmd) {
if (LinkEdit::segmentof(*linkedit)) {
static_cast<LinkEdit*>(linkedit)->func_variants_ = &cmd;
} else {
- LIEF_WARN("Weird: LC_FUNCTION_VARIANTS is not in the __LINKEDIT segment ({})", linkedit->name());
+ LIEF_WARN("Weird: LC_FUNCTION_VARIANTS is not in the __LINKEDIT segment ({})",
+ linkedit->name());
}
SpanStream stream(cmd.content_);
@@ -3995,19 +4326,24 @@ ok_error_t BinaryParser::post_process(FunctionVariantFixups& cmd) {
LIEF_DEBUG("[^] Post processing LC_FUNCTION_VARIANT_FIXUPS");
SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
- binary_->get_segment("__LINKEDIT") :
- binary_->segment_from_offset(cmd.data_offset());
+ binary_->get_segment("__LINKEDIT") :
+ binary_->segment_from_offset(cmd.data_offset());
if (linkedit == nullptr) {
- LIEF_WARN("Can't find the segment that contains the LC_FUNCTION_VARIANT_FIXUPS (offset=0x{:016x})", cmd.data_offset());
+ LIEF_WARN("Can't find the segment that contains the "
+ "LC_FUNCTION_VARIANT_FIXUPS (offset={:#018x})",
+ cmd.data_offset());
return make_error_code(lief_errors::not_found);
}
- span<uint8_t> content = linkedit->writable_content();
+ span<uint8_t> content = linkedit->content();
const uint64_t rel_offset = cmd.data_offset() - linkedit->file_offset();
- if (rel_offset > content.size() || (rel_offset + cmd.data_size()) > content.size()) {
- LIEF_ERR("The LC_FUNCTION_VARIANT_FIXUPS is out of bounds of the segment '{}'", linkedit->name());
+ if (rel_offset > content.size() ||
+ (rel_offset + cmd.data_size()) > content.size())
+ {
+ LIEF_ERR("The LC_FUNCTION_VARIANT_FIXUPS is out of bounds of the segment '{}'",
+ linkedit->name());
return make_error_code(lief_errors::read_out_of_bound);
}
@@ -4016,27 +4352,98 @@ ok_error_t BinaryParser::post_process(FunctionVariantFixups& cmd) {
if (LinkEdit::segmentof(*linkedit)) {
static_cast<LinkEdit*>(linkedit)->func_variant_fixups_ = &cmd;
} else {
- LIEF_WARN("Weird: LC_FUNCTION_VARIANT_FIXUPS is not in the __LINKEDIT segment ({})", linkedit->name());
+ LIEF_WARN(
+ "Weird: LC_FUNCTION_VARIANT_FIXUPS is not in the __LINKEDIT segment ({})",
+ linkedit->name()
+ );
+ }
+
+ SpanStream stream(cmd.content_);
+ stream.set_endian_swap(stream_->should_swap());
+ cmd.fixups_ = FunctionVariantFixups::parse_payload(stream);
+
+ // Resolve the segment referenced by each fixup
+ auto segments = binary_->segments();
+ for (FunctionVariantFixups::Fixup& fixup : cmd.fixups()) {
+ if (fixup.seg_index() < segments.size()) {
+ fixup.segment(segments[fixup.seg_index()]);
+ }
+ }
+
+ return ok();
+}
+
+template<class MACHO_T>
+ok_error_t BinaryParser::post_process(LazyLoadDylibInfo& cmd) {
+ LIEF_DEBUG("[^] Post processing LC_LAZY_LOAD_DYLIB_INFO");
+
+ SegmentCommand* linkedit = config_.from_dyld_shared_cache ?
+ binary_->get_segment("__LINKEDIT") :
+ binary_->segment_from_offset(cmd.data_offset());
+
+ if (linkedit == nullptr) {
+ LIEF_WARN("Can't find the segment that contains the "
+ "LC_LAZY_LOAD_DYLIB_INFO (offset={:#018x})",
+ cmd.data_offset());
+ return make_error_code(lief_errors::not_found);
+ }
+
+ span<uint8_t> content = linkedit->content();
+
+ const uint64_t rel_offset = cmd.data_offset() - linkedit->file_offset();
+ if (rel_offset > content.size() ||
+ (rel_offset + cmd.data_size()) > content.size())
+ {
+ LIEF_ERR("The LC_LAZY_LOAD_DYLIB_INFO is out of bounds of the segment '{}'",
+ linkedit->name());
+ return make_error_code(lief_errors::read_out_of_bound);
+ }
+
+ cmd.content_ = content.subspan(rel_offset, cmd.data_size());
+
+ if (LinkEdit::segmentof(*linkedit)) {
+ static_cast<LinkEdit*>(linkedit)->lazy_load_dylibs_.push_back(&cmd);
+ } else {
+ LIEF_WARN(
+ "Weird: LC_LAZY_LOAD_DYLIB_INFO is not in the __LINKEDIT segment ({})",
+ linkedit->name()
+ );
}
SpanStream stream(cmd.content_);
stream.set_endian_swap(stream_->should_swap());
- // TODO
+ cmd.parse_payload(stream);
+ const auto ptr_fmt = DYLD_CHAINED_PTR_FORMAT(cmd.pointer_format_);
+ const size_t ptr_sz = ChainedPointerAnalysis::ptr_size(ptr_fmt);
+ if (!config_.from_dyld_shared_cache && cmd.chain_start_image_offset() != 0 &&
+ (ptr_sz == sizeof(uint32_t) || ptr_sz == sizeof(uint64_t)))
+ {
+ const uint64_t chain_va =
+ binary_->imagebase() + cmd.chain_start_image_offset();
+ if (SegmentCommand* seg = binary_->segment_from_virtual_address(chain_va)) {
+ ok_error_t is_ok = cmd.walk_fixups(chain_va, *seg);
+ if (!is_ok) {
+ LIEF_WARN(
+ "Error while resolving the fixups for LC_LAZY_LOAD_DYLIB_INFO: {}",
+ cmd.load_path()
+ );
+ }
+ }
+ }
return ok();
}
/* This method is needed since the C++ copy constructor of ChainedBindingInfo
* does not (on purpose) copy the pointers associated with the object.
- * Thus we need this helper to maker sure that in the context on the parser,
+ * Thus we need this helper to make sure that in the context of the parser,
* the pointers are correctly copied.
*/
void BinaryParser::copy_from(ChainedBindingInfo& to, ChainedBindingInfo& from) {
to.segment_ = from.segment_;
- to.symbol_ = from.symbol_;
+ to.symbol_ = from.symbol_;
to.library_ = from.library_;
}
}
-}
diff --git a/deps/LIEF/src/MachO/BindingInfo.cpp b/deps/LIEF/src/MachO/BindingInfo.cpp
index 0d266216f4d..9055e9312fd 100644
--- a/deps/LIEF/src/MachO/BindingInfo.cpp
+++ b/deps/LIEF/src/MachO/BindingInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,16 +21,15 @@
#include "LIEF/MachO/BindingInfo.hpp"
#include "LIEF/MachO/DylibCommand.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
BindingInfo::BindingInfo(const BindingInfo& other) :
Object{other},
library_ordinal_{other.library_ordinal_},
addend_{other.addend_},
is_weak_import_{other.is_weak_import_},
- address_{other.address_}
-{}
+ address_{other.address_} {}
BindingInfo& BindingInfo::operator=(const BindingInfo& other) {
@@ -46,13 +45,13 @@ BindingInfo& BindingInfo::operator=(const BindingInfo& other) {
}
void BindingInfo::swap(BindingInfo& other) noexcept {
- std::swap(segment_, other.segment_);
- std::swap(symbol_, other.symbol_);
+ std::swap(segment_, other.segment_);
+ std::swap(symbol_, other.symbol_);
std::swap(library_ordinal_, other.library_ordinal_);
- std::swap(addend_, other.addend_);
- std::swap(is_weak_import_, other.is_weak_import_);
- std::swap(library_, other.library_);
- std::swap(address_, other.address_);
+ std::swap(addend_, other.addend_);
+ std::swap(is_weak_import_, other.is_weak_import_);
+ std::swap(library_, other.library_);
+ std::swap(address_, other.address_);
}
void BindingInfo::accept(Visitor& visitor) const {
@@ -60,8 +59,8 @@ void BindingInfo::accept(Visitor& visitor) const {
}
std::ostream& operator<<(std::ostream& os, const BindingInfo& info) {
- os << fmt::format("address=0x{:08x}, addend=0x{:x}",
- info.address(), info.addend());
+ os << fmt::format("address={:#010x}, addend={:#x}", info.address(),
+ info.addend());
if (const Symbol* sym = info.symbol()) {
os << fmt::format(" symbol={}", sym->name());
}
@@ -75,4 +74,3 @@ std::ostream& operator<<(std::ostream& os, const BindingInfo& info) {
}
}
-}
diff --git a/deps/LIEF/src/MachO/BindingInfoIterator.cpp b/deps/LIEF/src/MachO/BindingInfoIterator.cpp
index 0701fea2d16..ae22e0b0199 100644
--- a/deps/LIEF/src/MachO/BindingInfoIterator.cpp
+++ b/deps/LIEF/src/MachO/BindingInfoIterator.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,12 +27,9 @@ namespace LIEF::MachO {
const BindingInfo& BindingInfoIterator::operator*() const {
switch (origin_) {
- case ORIGIN::DYLD:
- return *dyld_info_->binding_info_.at(pos_);
- case ORIGIN::CHAINED_FIXUPS:
- return *chained_fixups_->all_bindings_.at(pos_);
- case ORIGIN::INDIRECT:
- return *binary_->indirect_bindings_.at(pos_);
+ case ORIGIN::DYLD: return *dyld_info_->binding_info_.at(pos_);
+ case ORIGIN::CHAINED_FIXUPS: return *chained_fixups_->all_bindings_.at(pos_);
+ case ORIGIN::INDIRECT: return *binary_->indirect_bindings_.at(pos_);
case ORIGIN::NONE:
logging::fatal_error("Can't return a BindingInfo for a NONE iterator");
}
diff --git a/deps/LIEF/src/MachO/BuildToolVersion.cpp b/deps/LIEF/src/MachO/BuildToolVersion.cpp
index 43d6f72bf39..45b14dadb32 100644
--- a/deps/LIEF/src/MachO/BuildToolVersion.cpp
+++ b/deps/LIEF/src/MachO/BuildToolVersion.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,17 +20,14 @@
#include "frozen.hpp"
#include "spdlog/fmt/fmt.h"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
BuildToolVersion::BuildToolVersion(const details::build_tool_version& tool) :
tool_{BuildToolVersion::TOOLS(tool.tool)},
- version_{{
- static_cast<uint32_t>((tool.version >> 16) & 0xFFFF),
- static_cast<uint32_t>((tool.version >> 8) & 0xFF),
- static_cast<uint32_t>((tool.version >> 0) & 0xFF)
- }}
-{}
+ version_{{static_cast<uint32_t>((tool.version >> 16) & 0xFFFF),
+ static_cast<uint32_t>((tool.version >> 8) & 0xFF),
+ static_cast<uint32_t>((tool.version >> 0) & 0xFF)}} {}
void BuildToolVersion::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -44,28 +41,19 @@ std::ostream& operator<<(std::ostream& os, const BuildToolVersion& tool) {
tool_str += fmt::format("({})", (uint32_t)tool.tool());
}
- os << fmt::format("{} ({}.{}.{})",
- tool_str, version[0], version[1], version[2]);
+ os << fmt::format("{} ({}.{}.{})", tool_str, version[0], version[1], version[2]);
return os;
}
const char* to_string(BuildToolVersion::TOOLS tool) {
- #define ENTRY(X) std::pair(BuildToolVersion::TOOLS::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNKNOWN),
- ENTRY(CLANG),
- ENTRY(SWIFT),
- ENTRY(LD),
- ENTRY(LLD),
- ENTRY(METAL),
- ENTRY(AIRLLD),
- ENTRY(AIRNT),
- ENTRY(AIRNT_PLUGIN),
- ENTRY(AIRPACK),
- ENTRY(GPUARCHIVER),
- ENTRY(METAL_FRAMEWORK),
+#define ENTRY(X) std::pair(BuildToolVersion::TOOLS::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(UNKNOWN), ENTRY(CLANG), ENTRY(SWIFT),
+ ENTRY(LD), ENTRY(LLD), ENTRY(METAL),
+ ENTRY(AIRLLD), ENTRY(AIRNT), ENTRY(AIRNT_PLUGIN),
+ ENTRY(AIRPACK), ENTRY(GPUARCHIVER), ENTRY(METAL_FRAMEWORK),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(tool); it != enums2str.end()) {
return it->second;
@@ -75,4 +63,3 @@ const char* to_string(BuildToolVersion::TOOLS tool) {
}
}
-}
diff --git a/deps/LIEF/src/MachO/BuildVersion.cpp b/deps/LIEF/src/MachO/BuildVersion.cpp
index 13c30dc373c..5bd298bf76c 100644
--- a/deps/LIEF/src/MachO/BuildVersion.cpp
+++ b/deps/LIEF/src/MachO/BuildVersion.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,34 +22,30 @@
#include "LIEF/MachO/BuildVersion.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
BuildVersion::BuildVersion(const details::build_version_command& ver) :
LoadCommand::LoadCommand{LoadCommand::TYPE(ver.cmd), ver.cmdsize},
platform_{PLATFORMS(ver.platform)},
- minos_{{
- static_cast<uint32_t>((ver.minos >> 16) & 0xFFFF),
- static_cast<uint32_t>((ver.minos >> 8) & 0xFF),
- static_cast<uint32_t>((ver.minos >> 0) & 0xFF)
- }},
- sdk_{{
- static_cast<uint32_t>((ver.sdk >> 16) & 0xFFFF),
- static_cast<uint32_t>((ver.sdk >> 8) & 0xFF),
- static_cast<uint32_t>((ver.sdk >> 0) & 0xFF)
- }}
-{
-}
+ minos_{{static_cast<uint32_t>((ver.minos >> 16) & 0xFFFF),
+ static_cast<uint32_t>((ver.minos >> 8) & 0xFF),
+ static_cast<uint32_t>((ver.minos >> 0) & 0xFF)}},
+ sdk_{{static_cast<uint32_t>((ver.sdk >> 16) & 0xFFFF),
+ static_cast<uint32_t>((ver.sdk >> 8) & 0xFF),
+ static_cast<uint32_t>((ver.sdk >> 0) & 0xFF)}} {}
-BuildVersion::BuildVersion(const PLATFORMS platform,
- const version_t &minos,
- const version_t &sdk,
- const tools_list_t &tools) :
- LoadCommand::LoadCommand{LoadCommand::TYPE::BUILD_VERSION,
- static_cast<uint32_t>(sizeof(details::build_version_command) +
- sizeof(details::build_tool_version) * tools.size())},
- platform_{platform}, minos_{minos}, sdk_{sdk}, tools_{tools}
-{
+BuildVersion::BuildVersion(const PLATFORMS platform, const version_t& minos,
+ const version_t& sdk, const tools_list_t& tools) :
+ LoadCommand::LoadCommand{
+ LoadCommand::TYPE::BUILD_VERSION,
+ static_cast<uint32_t>(sizeof(details::build_version_command) +
+ sizeof(details::build_tool_version) * tools.size())
+ },
+ platform_{platform},
+ minos_{minos},
+ sdk_{sdk},
+ tools_{tools} {
original_data_.resize(size());
}
@@ -69,37 +65,37 @@ std::ostream& BuildVersion::print(std::ostream& os) const {
}
const char* to_string(BuildVersion::PLATFORMS e) {
- #define ENTRY(X) std::pair(BuildVersion::PLATFORMS::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNKNOWN),
- ENTRY(MACOS),
- ENTRY(IOS),
- ENTRY(TVOS),
- ENTRY(WATCHOS),
- ENTRY(BRIDGEOS),
- ENTRY(MAC_CATALYST),
- ENTRY(IOS_SIMULATOR),
- ENTRY(TVOS_SIMULATOR),
- ENTRY(WATCHOS_SIMULATOR),
- ENTRY(DRIVERKIT),
- ENTRY(VISIONOS),
- ENTRY(VISIONOS_SIMULATOR),
- ENTRY(FIRMWARE),
- ENTRY(SEPOS),
- ENTRY(MACOS_EXCLAVE_CORE),
- ENTRY(MACOS_EXCLAVE_KIT),
- ENTRY(IOS_EXCLAVE_CORE),
- ENTRY(IOS_EXCLAVE_KIT),
- ENTRY(TVOS_EXCLAVE_CORE),
- ENTRY(TVOS_EXCLAVE_KIT),
- ENTRY(WATCHOS_EXCLAVE_CORE),
- ENTRY(WATCHOS_EXCLAVE_KIT),
- ENTRY(VISIONOS_EXCLAVE_CORE),
- ENTRY(VISIONOS_EXCLAVE_KIT),
+#define ENTRY(X) std::pair(BuildVersion::PLATFORMS::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(UNKNOWN),
+ ENTRY(MACOS),
+ ENTRY(IOS),
+ ENTRY(TVOS),
+ ENTRY(WATCHOS),
+ ENTRY(BRIDGEOS),
+ ENTRY(MAC_CATALYST),
+ ENTRY(IOS_SIMULATOR),
+ ENTRY(TVOS_SIMULATOR),
+ ENTRY(WATCHOS_SIMULATOR),
+ ENTRY(DRIVERKIT),
+ ENTRY(VISIONOS),
+ ENTRY(VISIONOS_SIMULATOR),
+ ENTRY(FIRMWARE),
+ ENTRY(SEPOS),
+ ENTRY(MACOS_EXCLAVE_CORE),
+ ENTRY(MACOS_EXCLAVE_KIT),
+ ENTRY(IOS_EXCLAVE_CORE),
+ ENTRY(IOS_EXCLAVE_KIT),
+ ENTRY(TVOS_EXCLAVE_CORE),
+ ENTRY(TVOS_EXCLAVE_KIT),
+ ENTRY(WATCHOS_EXCLAVE_CORE),
+ ENTRY(WATCHOS_EXCLAVE_KIT),
+ ENTRY(VISIONOS_EXCLAVE_CORE),
+ ENTRY(VISIONOS_EXCLAVE_KIT),
- ENTRY(ANY),
+ ENTRY(ANY),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -108,4 +104,3 @@ const char* to_string(BuildVersion::PLATFORMS e) {
}
}
-}
diff --git a/deps/LIEF/src/MachO/Builder.cpp b/deps/LIEF/src/MachO/Builder.cpp
index ad731e296b0..080866f6e3f 100644
--- a/deps/LIEF/src/MachO/Builder.cpp
+++ b/deps/LIEF/src/MachO/Builder.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,7 +20,7 @@
#include "logging.hpp"
-#include "LIEF/BinaryStream/BinaryStream.hpp"
+#include "LIEF/Abstract/Header.hpp"
#include "LIEF/MachO/Builder.hpp"
#include "LIEF/MachO/FatBinary.hpp"
@@ -32,39 +32,59 @@
#include "MachO/Builder.tcc"
#include "MachO/Binary.tcc"
-namespace LIEF {
-namespace MachO {
+namespace LIEF::MachO {
Builder::~Builder() = default;
Builder::Builder(Binary& binary, config_t config) :
binary_{&binary},
- config_{std::move(config)}
-{
- if (binary_->original_size() != (uint64_t)-1) {
- raw_.reserve(binary_->original_size());
- }
+ config_{config} {
+ raw_.reserve(std::min<uint64_t>(binary_->original_size(), 1_GB));
binaries_.push_back(binary_);
}
Builder::Builder(std::vector<Binary*> binaries, config_t config) :
binaries_{std::move(binaries)},
- config_{std::move(config)}
-{}
+ config_{config} {}
ok_error_t Builder::build() {
- return binary_->is64_ ?
- build<details::MachO64>() :
- build<details::MachO32>();
+ return binary_->is64_ ? build<details::MachO64>() : build<details::MachO32>();
}
-template <typename T>
+bool Builder::should_swap() const {
+ if (binary_ == nullptr) {
+ return false;
+ }
+ switch (binary_->get_abstract_header().endianness()) {
+#ifdef __BYTE_ORDER__
+ #if defined(__ORDER_LITTLE_ENDIAN__) && \
+ (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+ case LIEF::Header::ENDIANNESS::BIG:
+ #elif defined(__ORDER_BIG_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
+ case LIEF::Header::ENDIANNESS::LITTLE:
+ #endif
+ return true;
+#else
+ // If there is no __BYTE_ORDER__ (e.g. MSVC), assume little-endian
+ case LIEF::Header::ENDIANNESS::BIG: return true;
+#endif
+ default:
+ // we're good (or don't know what to do), consider bytes are in the
+ // expected order
+ return false;
+ }
+}
+
+template<typename T>
ok_error_t Builder::build() {
if (binaries_.size() > 1) {
- LIEF_ERR("More than one binary!");
+ LIEF_ERR("More than one binary");
return make_error_code(lief_errors::build_error);
}
+ raw_.set_endian_swap(should_swap());
+ linkedit_.set_endian_swap(should_swap());
+
// Check if we need to extend some commands
{
int32_t original_size = 0;
@@ -76,10 +96,11 @@ ok_error_t Builder::build() {
int32_t delta = required_size - original_size;
- LIEF_DEBUG("Original commands size: 0x{:08x}", original_size);
- LIEF_DEBUG("Required commands size: 0x{:08x}", required_size);
- LIEF_DEBUG("Delta: 0x{:08x}", delta);
- LIEF_DEBUG("available_command_space: 0x{:08x}", binary_->available_command_space_);
+ LIEF_DEBUG("Original commands size: {:#010x}", original_size);
+ LIEF_DEBUG("Required commands size: {:#010x}", required_size);
+ LIEF_DEBUG("Delta: {:#010x}", delta);
+ LIEF_DEBUG("available_command_space: {:#010x}",
+ binary_->available_command_space_);
if (delta > 0) {
ok_error_t is_ok = binary_->ensure_command_space(delta);
if (!is_ok) {
@@ -87,7 +108,8 @@ ok_error_t Builder::build() {
}
uint64_t cmd_offset = sizeof(typename T::header);
for (std::unique_ptr<LoadCommand>& cmd : binary_->commands_) {
- const size_t cmd_size = std::max(cmd->original_data_.size(), get_cmd_size<T>(*cmd));
+ const size_t cmd_size =
+ std::max(cmd->original_data_.size(), get_cmd_size<T>(*cmd));
cmd->command_offset_ = cmd_offset;
cmd_offset += cmd_size;
if (cmd->original_data_.size() < cmd_size) {
@@ -98,7 +120,7 @@ ok_error_t Builder::build() {
}
}
binary_->header().sizeof_cmds(required_size);
- }
+ }
}
build_uuid();
@@ -197,18 +219,20 @@ ok_error_t Builder::build_fat() {
build_fat_header();
constexpr auto fat_header_sz = sizeof(details::fat_header);
- constexpr auto fat_arch_sz = sizeof(details::fat_arch);
+ constexpr auto fat_arch_sz = sizeof(details::fat_arch);
for (size_t i = 0; i < binaries_.size(); ++i) {
- auto* arch = reinterpret_cast<details::fat_arch*>(raw_.raw().data() + fat_header_sz + i * fat_arch_sz);
+ auto* arch =
+ reinterpret_cast<details::fat_arch*>(raw_.raw().data() + fat_header_sz +
+ i * fat_arch_sz);
std::vector<uint8_t> raw = build_raw(*binaries_[i], config_);
auto alignment = get_swapped_endian<uint32_t>(arch->align);
uint32_t offset = align(raw_.size(), 1llu << alignment);
arch->offset = get_swapped_endian<uint32_t>(offset);
- arch->size = get_swapped_endian<uint32_t>(raw.size());
+ arch->size = get_swapped_endian<uint32_t>(raw.size());
raw_.seekp(offset);
- raw_.write(std::move(raw));
+ raw_.write(raw);
}
return ok();
}
@@ -216,27 +240,26 @@ ok_error_t Builder::build_fat() {
ok_error_t Builder::build_fat_header() {
LIEF_DEBUG("[+] Building Fat Header");
static constexpr uint32_t ALIGNMENT = 14; // 4096 / 0x1000
- details::fat_header header;
-
- std::memset(&header, 0, sizeof(details::fat_header));
+ details::fat_header header{};
- header.magic = static_cast<uint32_t>(MACHO_TYPES::CIGAM_FAT);
+ header.magic = static_cast<uint32_t>(MACHO_TYPES::CIGAM_FAT);
header.nfat_arch = get_swapped_endian<uint32_t>(binaries_.size());
raw_.seekp(0);
- raw_.write(reinterpret_cast<const uint8_t*>(&header), sizeof(details::fat_header));
+ raw_.write(reinterpret_cast<const uint8_t*>(&header),
+ sizeof(details::fat_header));
for (Binary* binary : binaries_) {
const Header& header = binary->header();
- details::fat_arch arch_header;
- std::memset(&arch_header, 0, sizeof(details::fat_arch));
+ details::fat_arch arch_header{};
- arch_header.cputype = get_swapped_endian((uint32_t)header.cpu_type());
+ arch_header.cputype = get_swapped_endian((uint32_t)header.cpu_type());
arch_header.cpusubtype = get_swapped_endian((uint32_t)header.cpu_subtype());
- arch_header.offset = 0;
- arch_header.size = 0;
- arch_header.align = get_swapped_endian<uint32_t>(ALIGNMENT);
- raw_.write(reinterpret_cast<const uint8_t*>(&arch_header), sizeof(details::fat_arch));
+ arch_header.offset = 0;
+ arch_header.size = 0;
+ arch_header.align = get_swapped_endian<uint32_t>(ALIGNMENT);
+ raw_.write(reinterpret_cast<const uint8_t*>(&arch_header),
+ sizeof(details::fat_arch));
}
return ok();
}
@@ -245,8 +268,8 @@ ok_error_t Builder::build_load_commands() {
const auto& binary = binaries_.back();
// Check if the number of segments is correct
if (binary->header().nb_cmds() != binary->commands_.size()) {
- LIEF_WARN("Error: header.nb_cmds = {:d} vs number of commands #{:d}",
- binary->header().nb_cmds(), binary->commands_.size());
+ LIEF_WARN("Header nb_cmds mismatch: {:d} vs #{:d}", binary->header().nb_cmds(),
+ binary->commands_.size());
return make_error_code(lief_errors::build_error);
}
@@ -268,9 +291,8 @@ ok_error_t Builder::build_load_commands() {
const std::unique_ptr<LoadCommand>& command = binary_->commands_[i];
span<const uint8_t> data = command->data();
- LIEF_DEBUG("Writing command #{:02d} {:30} offset=0x{:08x} size=0x{:08x}",
- i, to_string(command->command()), (uint64_t)raw_.tellp(),
- data.size());
+ LIEF_DEBUG("Writing command #{:02d} {:30} offset={:#010x} size={:#010x}", i,
+ to_string(command->command()), (uint64_t)raw_.tellp(), data.size());
raw_.write(data);
}
@@ -284,23 +306,27 @@ ok_error_t Builder::build_uuid() {
return ok();
}
- details::uuid_command raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(details::uuid_command));
+ details::uuid_command raw_cmd{};
- raw_cmd.cmd = static_cast<uint32_t>(uuid_cmd->command());
- raw_cmd.cmdsize = static_cast<uint32_t>(uuid_cmd->size()); // sizeof(uuid_command)
+ raw_cmd.cmd = static_cast<uint32_t>(uuid_cmd->command());
+ raw_cmd.cmdsize =
+ static_cast<uint32_t>(uuid_cmd->size()); // sizeof(uuid_command)
const uuid_t& uuid = uuid_cmd->uuid();
- std::copy(std::begin(uuid), std::end(uuid), raw_cmd.uuid);
+ std::copy(uuid.begin(), uuid.end(), raw_cmd.uuid);
if (uuid_cmd->size() < sizeof(details::uuid_command)) {
- LIEF_WARN("Size of original data is different for '{}' -> Skip!", to_string(uuid_cmd->command()));
+ LIEF_WARN("Original data size mismatch for '{}', skipping",
+ to_string(uuid_cmd->command()));
return make_error_code(lief_errors::build_error);
}
- std::copy(
- reinterpret_cast<const uint8_t*>(&raw_cmd), reinterpret_cast<const uint8_t*>(&raw_cmd) + sizeof(details::uuid_command),
- uuid_cmd->original_data_.data());
+ swap_endian_if_needed(raw_cmd);
+
+ std::copy(reinterpret_cast<const uint8_t*>(&raw_cmd),
+ reinterpret_cast<const uint8_t*>(&raw_cmd) +
+ sizeof(details::uuid_command),
+ uuid_cmd->original_data_.data());
return ok();
}
@@ -310,11 +336,12 @@ const std::vector<uint8_t>& Builder::get_build() {
ok_error_t Builder::write(Binary& binary, const std::string& filename) {
config_t config;
- return write(binary, filename, std::move(config));
+ return write(binary, filename, config);
}
-ok_error_t Builder::write(Binary& binary, const std::string& filename, config_t config) {
- Builder builder{binary, std::move(config)};
+ok_error_t Builder::write(Binary& binary, const std::string& filename,
+ config_t config) {
+ Builder builder{binary, config};
builder.build();
builder.write(filename);
return ok();
@@ -322,11 +349,11 @@ ok_error_t Builder::write(Binary& binary, const std::string& filename, config_t
ok_error_t Builder::write(Binary& binary, std::ostream& out) {
config_t config;
- return write(binary, out, std::move(config));
+ return write(binary, out, config);
}
ok_error_t Builder::write(Binary& binary, std::ostream& out, config_t config) {
- Builder builder{binary, std::move(config)};
+ Builder builder{binary, config};
builder.build();
builder.write(out);
return ok();
@@ -337,26 +364,26 @@ ok_error_t Builder::write(Binary& binary, std::vector<uint8_t>& out) {
return write(binary, out, config);
}
-ok_error_t Builder::write(Binary& binary, std::vector<uint8_t>& out, config_t config) {
+ok_error_t Builder::write(Binary& binary, std::vector<uint8_t>& out,
+ config_t config) {
out = build_raw(binary, config);
return ok();
}
ok_error_t Builder::write(FatBinary& fat, const std::string& filename) {
config_t config;
- return write(fat, filename, std::move(config));
+ return write(fat, filename, config);
}
-ok_error_t Builder::write(FatBinary& fat, const std::string& filename, config_t config) {
+ok_error_t Builder::write(FatBinary& fat, const std::string& filename,
+ config_t config) {
std::vector<Binary*> binaries;
binaries.reserve(fat.binaries_.size());
- std::transform(std::begin(fat.binaries_), std::end(fat.binaries_),
+ std::transform(fat.binaries_.begin(), fat.binaries_.end(),
std::back_inserter(binaries),
- [] (const std::unique_ptr<Binary>& bin) {
- return bin.get();
- });
+ [](const std::unique_ptr<Binary>& bin) { return bin.get(); });
- Builder builder{std::move(binaries), std::move(config)};
+ Builder builder{std::move(binaries), config};
builder.build_fat();
builder.write(filename);
return ok();
@@ -367,16 +394,15 @@ ok_error_t Builder::write(FatBinary& fat, std::vector<uint8_t>& out) {
return write(fat, out, config);
}
-ok_error_t Builder::write(FatBinary& fat, std::vector<uint8_t>& out, config_t config) {
+ok_error_t Builder::write(FatBinary& fat, std::vector<uint8_t>& out,
+ config_t config) {
std::vector<Binary*> binaries;
binaries.reserve(fat.binaries_.size());
- std::transform(std::begin(fat.binaries_), std::end(fat.binaries_),
+ std::transform(fat.binaries_.begin(), fat.binaries_.end(),
std::back_inserter(binaries),
- [] (const std::unique_ptr<Binary>& bin) {
- return bin.get();
- });
+ [](const std::unique_ptr<Binary>& bin) { return bin.get(); });
- Builder builder{std::move(binaries), std::move(config)};
+ Builder builder{std::move(binaries), config};
builder.build_fat();
out = builder.get_build();
return ok();
@@ -384,34 +410,33 @@ ok_error_t Builder::write(FatBinary& fat, std::vector<uint8_t>& out, config_t co
ok_error_t Builder::write(FatBinary& fat, std::ostream& out) {
config_t config;
- return write(fat, out, std::move(config));
+ return write(fat, out, config);
}
ok_error_t Builder::write(FatBinary& fat, std::ostream& out, config_t config) {
std::vector<Binary*> binaries;
binaries.reserve(fat.binaries_.size());
- std::transform(std::begin(fat.binaries_), std::end(fat.binaries_),
+ std::transform(fat.binaries_.begin(), fat.binaries_.end(),
std::back_inserter(binaries),
- [] (const std::unique_ptr<Binary>& bin) {
- return bin.get();
- });
+ [](const std::unique_ptr<Binary>& bin) { return bin.get(); });
- Builder builder{std::move(binaries), std::move(config)};
+ Builder builder{std::move(binaries), config};
builder.build_fat();
builder.write(out);
return ok();
}
std::vector<uint8_t> Builder::build_raw(Binary& binary, config_t config) {
- Builder builder{binary, std::move(config)};
+ Builder builder{binary, config};
builder.build();
return builder.get_build();
}
ok_error_t Builder::write(const std::string& filename) const {
- std::ofstream output_file{filename, std::ios::out | std::ios::binary | std::ios::trunc};
+ std::ofstream output_file{filename,
+ std::ios::out | std::ios::binary | std::ios::trunc};
if (!output_file) {
- LIEF_ERR("Can't write back the LIEF Mach-O object into '{}'", filename);
+ LIEF_ERR("Failed to write Mach-O object to '{}'", filename);
return make_error_code(lief_errors::build_error);
}
return write(output_file);
@@ -425,4 +450,3 @@ ok_error_t Builder::write(std::ostream& os) const {
}
}
-}
diff --git a/deps/LIEF/src/MachO/Builder.tcc b/deps/LIEF/src/MachO/Builder.tcc
index ccb04f06d64..bb4435f6b65 100644
--- a/deps/LIEF/src/MachO/Builder.tcc
+++ b/deps/LIEF/src/MachO/Builder.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,14 +13,20 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+#include <algorithm>
+#include <cstring>
+#include <vector>
+
#include "logging.hpp"
#include "LIEF/utils.hpp"
+#include "LIEF/BinaryStream/SpanStream.hpp"
#include "LIEF/MachO/AtomInfo.hpp"
#include "LIEF/MachO/Binary.hpp"
#include "LIEF/MachO/BuildVersion.hpp"
#include "LIEF/MachO/Builder.hpp"
#include "LIEF/MachO/ChainedBindingInfo.hpp"
+#include "LIEF/MachO/ChainedPointerAnalysis.hpp"
#include "LIEF/MachO/CodeSignature.hpp"
#include "LIEF/MachO/CodeSignatureDir.hpp"
#include "LIEF/MachO/DataInCode.hpp"
@@ -35,6 +41,7 @@
#include "LIEF/MachO/FunctionStarts.hpp"
#include "LIEF/MachO/FunctionVariants.hpp"
#include "LIEF/MachO/FunctionVariantFixups.hpp"
+#include "LIEF/MachO/LazyLoadDylibInfo.hpp"
#include "LIEF/MachO/LinkEdit.hpp"
#include "LIEF/MachO/LinkerOptHint.hpp"
#include "LIEF/MachO/MainCommand.hpp"
@@ -62,8 +69,8 @@
#include "internal_utils.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
template<class T>
@@ -84,12 +91,14 @@ size_t Builder::get_cmd_size(const LoadCommand& cmd) {
}
if (const auto* subframework = cmd.cast<SubFramework>()) {
- return align(sizeof(details::sub_framework_command) + subframework->umbrella().size() + 1,
+ return align(sizeof(details::sub_framework_command) +
+ subframework->umbrella().size() + 1,
sizeof(typename T::uint));
}
if (const auto* subclient = cmd.cast<SubClient>()) {
- return align(sizeof(details::sub_client_command) + subclient->client().size() + 1,
+ return align(sizeof(details::sub_client_command) + subclient->client().size() +
+ 1,
sizeof(typename T::uint));
}
@@ -100,7 +109,8 @@ size_t Builder::get_cmd_size(const LoadCommand& cmd) {
if (const auto* bversion = cmd.cast<BuildVersion>()) {
return align(sizeof(details::build_version_command) +
- bversion->tools().size() * sizeof(details::build_tool_version),
+ bversion->tools().size() *
+ sizeof(details::build_tool_version),
sizeof(typename T::uint));
}
return cmd.size();
@@ -109,7 +119,7 @@ size_t Builder::get_cmd_size(const LoadCommand& cmd) {
template<typename T>
ok_error_t Builder::build_linkedit() {
// NOTE(romain): the order in which the linkedit_data_command are placed
- // in the __LINKEDIT segment, needs to follow cctools / checkout.c / dyld_order()
+ // in the __LINKEDIT segment needs to follow cctools / checkout.c / dyld_order()
SegmentCommand* linkedit = binary_->get_segment("__LINKEDIT");
if (linkedit == nullptr) {
return ok();
@@ -133,6 +143,9 @@ ok_error_t Builder::build_linkedit() {
if (auto* split_info = binary_->segment_split_info()) {
build<T>(*split_info);
}
+ for (LazyLoadDylibInfo& lazy : binary_->lazy_load_dylib_infos()) {
+ build<T>(lazy);
+ }
if (auto* fstart = binary_->function_starts()) {
build<T>(*fstart);
}
@@ -159,14 +172,12 @@ ok_error_t Builder::build_linkedit() {
}
const uint64_t original_size = linkedit->file_size();
- const uint64_t new_size = linkedit_.size();
+ const uint64_t new_size = linkedit_.size();
if (original_size < new_size) {
LIEF_INFO("Delta __LINKEDIT data size: +{}", new_size - original_size);
- }
- else if (original_size > new_size) {
+ } else if (original_size > new_size) {
LIEF_INFO("Delta __LINKEDIT data size: -{}", original_size - new_size);
- }
- else {
+ } else {
LIEF_INFO("__LINKEDIT data built with the same size: {}", new_size);
}
return ok();
@@ -174,49 +185,50 @@ ok_error_t Builder::build_linkedit() {
template<typename T>
ok_error_t Builder::build_segments() {
- using section_t = typename T::section;
- using segment_t = typename T::segment_command;
- using uint__ = typename T::uint;
+ using section_t = typename T::section;
+ using segment_t = typename T::segment_command;
+ using uint__ = typename T::uint;
LIEF_DEBUG("[+] Rebuilding segments");
Binary* binary = binaries_.back();
for (SegmentCommand& segment : binary->segments()) {
LIEF_DEBUG("{}", segment.name());
- segment_t segment_header;
- std::memset(&segment_header, 0, sizeof(segment_header));
+ segment_t segment_header{};
- segment_header.cmd = static_cast<uint32_t>(segment.command());
- segment_header.cmdsize = static_cast<uint32_t>(segment.size());
+ segment_header.cmd = static_cast<uint32_t>(segment.command());
+ segment_header.cmdsize = static_cast<uint32_t>(segment.size());
const std::string& seg_name = segment.name();
- const uint32_t segname_length = std::min<uint32_t>(seg_name.size() + 1,
- sizeof(segment_header.segname));
+ const uint32_t segname_length =
+ std::min<uint32_t>(seg_name.size() + 1, sizeof(segment_header.segname));
std::copy(seg_name.c_str(), seg_name.c_str() + segname_length,
std::begin(segment_header.segname));
if (LinkEdit::segmentof(segment) && config_.linkedit) {
- segment_header.vmsize = static_cast<uint__>(align(linkedit_.size(), binary->page_size()));
+ segment_header.vmsize =
+ static_cast<uint__>(align(linkedit_.size(), binary->page_size()));
segment_header.filesize = static_cast<uint__>(linkedit_.size());
} else {
segment_header.vmsize = static_cast<uint__>(segment.virtual_size());
segment_header.filesize = static_cast<uint__>(segment.file_size());
}
- segment_header.vmaddr = static_cast<uint__>(segment.virtual_address());
- segment_header.fileoff = static_cast<uint__>(segment.file_offset());
- segment_header.maxprot = static_cast<uint32_t>(segment.max_protection());
+ segment_header.vmaddr = static_cast<uint__>(segment.virtual_address());
+ segment_header.fileoff = static_cast<uint__>(segment.file_offset());
+ segment_header.maxprot = static_cast<uint32_t>(segment.max_protection());
segment_header.initprot = static_cast<uint32_t>(segment.init_protection());
- segment_header.nsects = static_cast<uint32_t>(segment.numberof_sections());
- segment_header.flags = static_cast<uint32_t>(segment.flags());
- LIEF_DEBUG(" - Command offset: 0x{:x}", segment.command_offset());
+ segment_header.nsects = static_cast<uint32_t>(segment.numberof_sections());
+ segment_header.flags = static_cast<uint32_t>(segment.flags());
+ LIEF_DEBUG(" - Command offset: {:#x}", segment.command_offset());
span<const uint8_t> content = segment.content();
if (content.size() != segment.file_size() && !LinkEdit::segmentof(segment)) {
- LIEF_ERR("{} content size and file_size are differents: 0x{:x} vs 0x{:x}",
+ LIEF_ERR("{} content size and file_size are differents: {:#x} vs {:#x}",
segment.name(), content.size(), segment.file_size());
return make_error_code(lief_errors::build_error);
}
segment.original_data_.clear();
+ swap_endian_if_needed(segment_header);
std::move(reinterpret_cast<uint8_t*>(&segment_header),
reinterpret_cast<uint8_t*>(&segment_header) + sizeof(segment_t),
std::back_inserter(segment.original_data_));
@@ -235,35 +247,37 @@ ok_error_t Builder::build_segments() {
const std::string& sec_name = section.name();
const std::string& segment_name = segment.name();
LIEF_DEBUG("{}", to_string(section));
- section_t header;
- std::memset(&header, 0, sizeof(header));
+ section_t header{};
- const auto segname_length = std::min<uint32_t>(segment_name.size() + 1, sizeof(header.segname));
+ const auto segname_length =
+ std::min<uint32_t>(segment_name.size() + 1, sizeof(header.segname));
std::copy(segment_name.c_str(), segment_name.c_str() + segname_length,
std::begin(header.segname));
- const auto secname_length = std::min<uint32_t>(sec_name.size() + 1, sizeof(header.sectname));
+ const auto secname_length =
+ std::min<uint32_t>(sec_name.size() + 1, sizeof(header.sectname));
std::copy(sec_name.c_str(), sec_name.c_str() + secname_length,
std::begin(header.sectname));
- header.addr = static_cast<uint__>(section.address());
- header.size = static_cast<uint__>(section.size());
- header.offset = static_cast<uint32_t>(section.offset());
- header.align = static_cast<uint32_t>(section.alignment());
- header.reloff = static_cast<uint32_t>(section.relocation_offset());
- header.nreloc = static_cast<uint32_t>(section.numberof_relocations());
- header.flags = static_cast<uint32_t>(section.raw_flags());
+ header.addr = static_cast<uint__>(section.address());
+ header.size = static_cast<uint__>(section.size());
+ header.offset = static_cast<uint32_t>(section.offset());
+ header.align = static_cast<uint32_t>(section.alignment());
+ header.reloff = static_cast<uint32_t>(section.relocation_offset());
+ header.nreloc = static_cast<uint32_t>(section.numberof_relocations());
+ header.flags = static_cast<uint32_t>(section.raw_flags());
header.reserved1 = static_cast<uint32_t>(section.reserved1());
header.reserved2 = static_cast<uint32_t>(section.reserved2());
if constexpr (std::is_same_v<section_t, details::section_64>) {
- reinterpret_cast<details::section_64*>(&header)->reserved3 = static_cast<uint32_t>(section.reserved3());
+ reinterpret_cast<details::section_64*>(&header)->reserved3 =
+ static_cast<uint32_t>(section.reserved3());
}
+ swap_endian_if_needed(header);
std::move(reinterpret_cast<uint8_t*>(&header),
reinterpret_cast<uint8_t*>(&header) + sizeof(section_t),
std::back_inserter(segment.original_data_));
-
}
}
return ok();
@@ -276,84 +290,88 @@ ok_error_t Builder::build(DylibCommand& library) {
const uint32_t original_size = library.original_data_.size();
- const uint32_t raw_size = sizeof(details::dylib_command) + library.name().size() + 1;
+ const uint32_t raw_size =
+ sizeof(details::dylib_command) + library.name().size() + 1;
const uint32_t size_needed =
- std::max<uint32_t>(align(raw_size, sizeof(typename T::uint)), original_size);
+ std::max<uint32_t>(align(raw_size, sizeof(typename T::uint)), original_size);
const uint32_t padding = size_needed - raw_size;
- if (library.original_data_.size() < size_needed ||
- library.size() < size_needed)
+ if (library.original_data_.size() < size_needed || library.size() < size_needed)
{
- LIEF_WARN("Not enough spaces to rebuild {}. Size required: 0x{:x} vs 0x{:x}",
- library.name(), library.original_data_.size(), size_needed);
+ LIEF_WARN("Not enough spaces to rebuild {}. Size required: {:#x} vs {:#x}",
+ library.name(), library.original_data_.size(), size_needed);
}
- details::dylib_command raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(details::dylib_command));
+ details::dylib_command raw_cmd{};
- raw_cmd.cmd = static_cast<uint32_t>(library.command());
- raw_cmd.cmdsize = static_cast<uint32_t>(size_needed);
- raw_cmd.name = static_cast<uint32_t>(sizeof(details::dylib_command));
- raw_cmd.timestamp = static_cast<uint32_t>(library.timestamp());
- raw_cmd.current_version = static_cast<uint32_t>(DylibCommand::version2int(library.current_version()));
- raw_cmd.compatibility_version = static_cast<uint32_t>(DylibCommand::version2int(library.compatibility_version()));
+ raw_cmd.cmd = static_cast<uint32_t>(library.command());
+ raw_cmd.cmdsize = static_cast<uint32_t>(size_needed);
+ raw_cmd.name = static_cast<uint32_t>(sizeof(details::dylib_command));
+ raw_cmd.timestamp = static_cast<uint32_t>(library.timestamp());
+ raw_cmd.current_version =
+ static_cast<uint32_t>(DylibCommand::version2int(library.current_version()));
+ raw_cmd.compatibility_version = static_cast<uint32_t>(
+ DylibCommand::version2int(library.compatibility_version())
+ );
library.size_ = size_needed;
library.original_data_.clear();
// Write Header
- std::move(reinterpret_cast<uint8_t*>(&raw_cmd), reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
+ swap_endian_if_needed(raw_cmd);
+ std::move(reinterpret_cast<uint8_t*>(&raw_cmd),
+ reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
std::back_inserter(library.original_data_));
// Write String
const std::string& libname = library.name();
- std::move(std::begin(libname), std::end(libname),
+ std::move(libname.begin(), libname.end(),
std::back_inserter(library.original_data_));
library.original_data_.push_back(0);
- library.original_data_.insert(std::end(library.original_data_), padding, 0);
+ library.original_data_.insert(library.original_data_.end(), padding, 0);
return ok();
}
-template <typename T>
+template<typename T>
ok_error_t Builder::build(DylinkerCommand& linker) {
LIEF_DEBUG("Build dylinker '{}'", linker.name());
const uint32_t original_size = linker.original_data_.size();
- const uint32_t raw_size = sizeof(details::dylinker_command) + linker.name().size() + 1;
+ const uint32_t raw_size =
+ sizeof(details::dylinker_command) + linker.name().size() + 1;
const uint32_t size_needed =
- std::max<uint32_t>(align(raw_size, sizeof(typename T::uint)), original_size);
+ std::max<uint32_t>(align(raw_size, sizeof(typename T::uint)), original_size);
const uint32_t padding = size_needed - raw_size;
- if (linker.original_data_.size() < size_needed ||
- linker.size() < size_needed)
- {
- LIEF_WARN("Not enough spaces to rebuild {}. Size required: 0x{:x} vs 0x{:x}",
- linker.name(), linker.original_data_.size(), size_needed);
+ if (linker.original_data_.size() < size_needed || linker.size() < size_needed) {
+ LIEF_WARN("Not enough spaces to rebuild {}. Size required: {:#x} vs {:#x}",
+ linker.name(), linker.original_data_.size(), size_needed);
}
- details::dylinker_command raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(raw_cmd));
+ details::dylinker_command raw_cmd{};
- raw_cmd.cmd = static_cast<uint32_t>(linker.command());
+ raw_cmd.cmd = static_cast<uint32_t>(linker.command());
raw_cmd.cmdsize = static_cast<uint32_t>(size_needed);
- raw_cmd.name = static_cast<uint32_t>(sizeof(details::dylinker_command));
+ raw_cmd.name = static_cast<uint32_t>(sizeof(details::dylinker_command));
linker.size_ = size_needed;
linker.original_data_.clear();
// Write Header
- std::move(reinterpret_cast<uint8_t*>(&raw_cmd), reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
+ swap_endian_if_needed(raw_cmd);
+ std::move(reinterpret_cast<uint8_t*>(&raw_cmd),
+ reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
std::back_inserter(linker.original_data_));
// Write String
const std::string& linkpath = linker.name();
- std::move(std::begin(linkpath), std::end(linkpath),
+ std::move(linkpath.begin(), linkpath.end(),
std::back_inserter(linker.original_data_));
linker.original_data_.push_back(0);
- linker.original_data_.insert(std::end(linker.original_data_), padding, 0);
+ linker.original_data_.insert(linker.original_data_.end(), padding, 0);
return ok();
}
@@ -364,23 +382,25 @@ ok_error_t Builder::build(VersionMin& version_min) {
const uint32_t size_needed = align(raw_size, sizeof(typename T::uint));
const uint32_t padding = size_needed - raw_size;
- details::version_min_command raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(details::version_min_command));
+ details::version_min_command raw_cmd{};
const VersionMin::version_t& version = version_min.version();
- const VersionMin::version_t& sdk = version_min.sdk();
+ const VersionMin::version_t& sdk = version_min.sdk();
- raw_cmd.cmd = static_cast<uint32_t>(version_min.command());
+ raw_cmd.cmd = static_cast<uint32_t>(version_min.command());
raw_cmd.cmdsize = static_cast<uint32_t>(version_min.size());
- raw_cmd.version = static_cast<uint32_t>(version[0] << 16 | version[1] << 8 | version[2]);
- raw_cmd.sdk = static_cast<uint32_t>(sdk[0] << 16 | sdk[1] << 8 | sdk[2]);
+ raw_cmd.version =
+ static_cast<uint32_t>(version[0] << 16 | version[1] << 8 | version[2]);
+ raw_cmd.sdk = static_cast<uint32_t>(sdk[0] << 16 | sdk[1] << 8 | sdk[2]);
version_min.size_ = sizeof(details::version_min_command);
version_min.original_data_.clear();
+ swap_endian_if_needed(raw_cmd);
std::move(reinterpret_cast<uint8_t*>(&raw_cmd),
- reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(details::version_min_command),
+ reinterpret_cast<uint8_t*>(&raw_cmd) +
+ sizeof(details::version_min_command),
std::back_inserter(version_min.original_data_));
- version_min.original_data_.insert(std::end(version_min.original_data_), padding, 0);
+ version_min.original_data_.insert(version_min.original_data_.end(), padding, 0);
return ok();
}
@@ -392,25 +412,26 @@ ok_error_t Builder::build(SourceVersion& source_version) {
const uint32_t size_needed = align(raw_size, sizeof(typename T::uint));
const uint32_t padding = size_needed - raw_size;
- details::source_version_command raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(details::source_version_command));
+ details::source_version_command raw_cmd{};
const SourceVersion::version_t& version = source_version.version();
- raw_cmd.cmd = static_cast<uint32_t>(source_version.command());
+ raw_cmd.cmd = static_cast<uint32_t>(source_version.command());
raw_cmd.cmdsize = static_cast<uint32_t>(source_version.size());
- raw_cmd.version = static_cast<uint64_t>(
- static_cast<uint64_t>(version[0]) << 40 |
- static_cast<uint64_t>(version[1]) << 30 |
- static_cast<uint64_t>(version[2]) << 20 |
- static_cast<uint64_t>(version[3]) << 10 |
- static_cast<uint64_t>(version[4]));
+ raw_cmd.version = static_cast<uint64_t>(static_cast<uint64_t>(version[0]) << 40 |
+ static_cast<uint64_t>(version[1]) << 30 |
+ static_cast<uint64_t>(version[2]) << 20 |
+ static_cast<uint64_t>(version[3]) << 10 |
+ static_cast<uint64_t>(version[4]));
source_version.size_ = sizeof(details::source_version_command);
source_version.original_data_.clear();
+ swap_endian_if_needed(raw_cmd);
std::move(reinterpret_cast<uint8_t*>(&raw_cmd),
- reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(details::source_version_command),
+ reinterpret_cast<uint8_t*>(&raw_cmd) +
+ sizeof(details::source_version_command),
std::back_inserter(source_version.original_data_));
- source_version.original_data_.insert(std::end(source_version.original_data_), padding, 0);
+ source_version.original_data_.insert(source_version.original_data_.end(),
+ padding, 0);
return ok();
}
@@ -421,41 +442,42 @@ ok_error_t Builder::build(RPathCommand& rpath_cmd) {
const uint32_t original_size = rpath_cmd.original_data_.size();
- const uint32_t raw_size = sizeof(details::rpath_command) + rpath_cmd.path().size() + 1;
+ const uint32_t raw_size =
+ sizeof(details::rpath_command) + rpath_cmd.path().size() + 1;
const uint32_t size_needed =
- std::max<uint32_t>(align(raw_size, sizeof(typename T::uint)), original_size);
+ std::max<uint32_t>(align(raw_size, sizeof(typename T::uint)), original_size);
const uint32_t padding = size_needed - raw_size;
if (rpath_cmd.original_data_.size() < size_needed ||
rpath_cmd.size() < size_needed)
{
- LIEF_WARN("Not enough room left to rebuild {}."
- "required=0x{:x} available=0x{:x}",
+ LIEF_WARN("Not enough room left to rebuild {} "
+ "required={:#x} available={:#x}",
rpath_cmd.path(), size_needed, rpath_cmd.original_data_.size());
}
- details::rpath_command raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(details::rpath_command));
+ details::rpath_command raw_cmd{};
- raw_cmd.cmd = static_cast<uint32_t>(rpath_cmd.command());
+ raw_cmd.cmd = static_cast<uint32_t>(rpath_cmd.command());
raw_cmd.cmdsize = static_cast<uint32_t>(size_needed);
- raw_cmd.path = static_cast<uint32_t>(sizeof(details::rpath_command));
+ raw_cmd.path = static_cast<uint32_t>(sizeof(details::rpath_command));
rpath_cmd.size_ = size_needed;
rpath_cmd.original_data_.clear();
// Write Header
+ swap_endian_if_needed(raw_cmd);
std::move(reinterpret_cast<uint8_t*>(&raw_cmd),
reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
std::back_inserter(rpath_cmd.original_data_));
// Write String
const std::string& rpath = rpath_cmd.path();
- std::move(std::begin(rpath), std::end(rpath),
+ std::move(rpath.begin(), rpath.end(),
std::back_inserter(rpath_cmd.original_data_));
rpath_cmd.original_data_.push_back(0);
- rpath_cmd.original_data_.insert(std::end(rpath_cmd.original_data_), padding, 0);
+ rpath_cmd.original_data_.insert(rpath_cmd.original_data_.end(), padding, 0);
return ok();
}
@@ -465,23 +487,23 @@ ok_error_t Builder::build(Routine& routine) {
using uint__ = typename T::uint;
LIEF_DEBUG("Build '{}'", to_string(routine.command()));
- routine_t raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(routine_t));
+ routine_t raw_cmd{};
- raw_cmd.cmd = static_cast<uint32_t>(routine.command());
- raw_cmd.cmdsize = static_cast<uint32_t>(routine.size());
+ raw_cmd.cmd = static_cast<uint32_t>(routine.command());
+ raw_cmd.cmdsize = static_cast<uint32_t>(routine.size());
raw_cmd.init_address = static_cast<uint__>(routine.init_address());
- raw_cmd.init_module = static_cast<uint__>(routine.init_module());
- raw_cmd.reserved1 = static_cast<uint__>(routine.reserved1());
- raw_cmd.reserved2 = static_cast<uint__>(routine.reserved2());
- raw_cmd.reserved3 = static_cast<uint__>(routine.reserved3());
- raw_cmd.reserved4 = static_cast<uint__>(routine.reserved4());
- raw_cmd.reserved5 = static_cast<uint__>(routine.reserved5());
- raw_cmd.reserved6 = static_cast<uint__>(routine.reserved6());
+ raw_cmd.init_module = static_cast<uint__>(routine.init_module());
+ raw_cmd.reserved1 = static_cast<uint__>(routine.reserved1());
+ raw_cmd.reserved2 = static_cast<uint__>(routine.reserved2());
+ raw_cmd.reserved3 = static_cast<uint__>(routine.reserved3());
+ raw_cmd.reserved4 = static_cast<uint__>(routine.reserved4());
+ raw_cmd.reserved5 = static_cast<uint__>(routine.reserved5());
+ raw_cmd.reserved6 = static_cast<uint__>(routine.reserved6());
routine.size_ = sizeof(routine_t);
routine.original_data_.clear();
+ swap_endian_if_needed(raw_cmd);
std::move(reinterpret_cast<uint8_t*>(&raw_cmd),
reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(routine_t),
std::back_inserter(routine.original_data_));
@@ -495,28 +517,28 @@ ok_error_t Builder::build(MainCommand& main_cmd) {
const uint32_t size_needed = align(raw_size, sizeof(typename T::uint));
const uint32_t padding = size_needed - raw_size;
- details::entry_point_command raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(details::entry_point_command));
+ details::entry_point_command raw_cmd{};
- raw_cmd.cmd = static_cast<uint32_t>(main_cmd.command());
- raw_cmd.cmdsize = static_cast<uint32_t>(main_cmd.size());
- raw_cmd.entryoff = static_cast<uint64_t>(main_cmd.entrypoint());
+ raw_cmd.cmd = static_cast<uint32_t>(main_cmd.command());
+ raw_cmd.cmdsize = static_cast<uint32_t>(main_cmd.size());
+ raw_cmd.entryoff = static_cast<uint64_t>(main_cmd.entrypoint());
raw_cmd.stacksize = static_cast<uint64_t>(main_cmd.stack_size());
main_cmd.size_ = sizeof(details::entry_point_command);
main_cmd.original_data_.clear();
+ swap_endian_if_needed(raw_cmd);
std::move(reinterpret_cast<uint8_t*>(&raw_cmd),
- reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(details::entry_point_command),
+ reinterpret_cast<uint8_t*>(&raw_cmd) +
+ sizeof(details::entry_point_command),
std::back_inserter(main_cmd.original_data_));
- main_cmd.original_data_.insert(std::end(main_cmd.original_data_), padding, 0);
+ main_cmd.original_data_.insert(main_cmd.original_data_.end(), padding, 0);
return ok();
}
template<class T>
ok_error_t Builder::build(NoteCommand& note) {
LIEF_DEBUG("Build '{}'", to_string(note.command()));
- details::note_command raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(details::note_command));
+ details::note_command raw_cmd{};
raw_cmd.cmd = static_cast<uint32_t>(note.command());
raw_cmd.cmdsize = static_cast<uint32_t>(note.size());
@@ -525,12 +547,13 @@ ok_error_t Builder::build(NoteCommand& note) {
raw_cmd.size = static_cast<uint32_t>(note.note_size());
span<const char> owner = note.owner();
- std::copy(owner.begin(), owner.end(), std::begin(raw_cmd.data_owner));
+ std::copy(std::begin(owner), std::end(owner), std::begin(raw_cmd.data_owner));
note.size_ = sizeof(details::note_command);
std::fill(note.original_data_.begin(), note.original_data_.end(), 0);
+ swap_endian_if_needed(raw_cmd);
std::copy(reinterpret_cast<uint8_t*>(&raw_cmd),
reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
reinterpret_cast<uint8_t*>(note.original_data_.data()));
@@ -542,12 +565,11 @@ template<class T>
ok_error_t Builder::build(DyldInfo& dyld_info) {
LIEF_DEBUG("Build '{}'", to_string(dyld_info.command()));
- // /!\ Force to update relocation cache that is used by the following functions
+ // WARNING: Force update of the relocation cache used by the following functions
// TODO(romain): This looks like a hack
binary_->relocations();
- details::dyld_info_command raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(details::dyld_info_command));
+ details::dyld_info_command raw_cmd{};
{
LIEF_DEBUG("linkedit_.size(): {:x}", linkedit_.size());
raw_cmd.rebase_off = linkedit_.size();
@@ -559,10 +581,10 @@ ok_error_t Builder::build(DyldInfo& dyld_info) {
raw_cmd.rebase_off += linkedit_offset_;
}
- LIEF_DEBUG("LC_DYLD_INFO.rebase_off : 0x{:06x} -> 0x{:06x}",
+ LIEF_DEBUG("LC_DYLD_INFO.rebase_off : {:#08x} -> {:#08x}",
dyld_info.rebase().first, raw_cmd.rebase_off);
- LIEF_DEBUG("LC_DYLD_INFO.rebase_size: 0x{:06x} -> 0x{:06x}",
+ LIEF_DEBUG("LC_DYLD_INFO.rebase_size: {:#08x} -> {:#08x}",
dyld_info.rebase().second, raw_cmd.rebase_size);
}
{
@@ -570,30 +592,30 @@ ok_error_t Builder::build(DyldInfo& dyld_info) {
if (raw_cmd.bind_size > 0) {
raw_cmd.bind_off += linkedit_offset_;
- LIEF_DEBUG("LC_DYLD_INFO.bind_off : 0x{:06x} -> 0x{:06x}",
+ LIEF_DEBUG("LC_DYLD_INFO.bind_off : {:#08x} -> {:#08x}",
dyld_info.bind().first, raw_cmd.bind_off);
- LIEF_DEBUG("LC_DYLD_INFO.bind_size: 0x{:06x} -> 0x{:06x}",
+ LIEF_DEBUG("LC_DYLD_INFO.bind_size: {:#08x} -> {:#08x}",
dyld_info.bind().second, raw_cmd.bind_size);
}
if (raw_cmd.weak_bind_size > 0) {
raw_cmd.weak_bind_off += linkedit_offset_;
- LIEF_DEBUG("LC_DYLD_INFO.weak_bind_off : 0x{:06x} -> 0x{:06x}",
+ LIEF_DEBUG("LC_DYLD_INFO.weak_bind_off : {:#08x} -> {:#08x}",
dyld_info.weak_bind().first, raw_cmd.weak_bind_off);
- LIEF_DEBUG("LC_DYLD_INFO.weak_bind_size: 0x{:06x} -> 0x{:06x}",
+ LIEF_DEBUG("LC_DYLD_INFO.weak_bind_size: {:#08x} -> {:#08x}",
dyld_info.weak_bind().second, raw_cmd.weak_bind_size);
}
if (raw_cmd.lazy_bind_size > 0) {
raw_cmd.lazy_bind_off += linkedit_offset_;
- LIEF_DEBUG("LC_DYLD_INFO.lazy_bind_off : 0x{:06x} -> 0x{:06x}",
+ LIEF_DEBUG("LC_DYLD_INFO.lazy_bind_off : {:#08x} -> {:#08x}",
dyld_info.lazy_bind().first, raw_cmd.lazy_bind_off);
- LIEF_DEBUG("LC_DYLD_INFO.lazy_bind_size: 0x{:06x} -> 0x{:06x}",
+ LIEF_DEBUG("LC_DYLD_INFO.lazy_bind_size: {:#08x} -> {:#08x}",
dyld_info.lazy_bind().second, raw_cmd.lazy_bind_size);
}
}
@@ -606,20 +628,22 @@ ok_error_t Builder::build(DyldInfo& dyld_info) {
if (raw_cmd.export_size > 0) {
raw_cmd.export_off += linkedit_offset_;
}
- LIEF_DEBUG("LC_DYLD_INFO.exports_off : 0x{:06x} -> 0x{:06x}",
+ LIEF_DEBUG("LC_DYLD_INFO.exports_off : {:#08x} -> {:#08x}",
dyld_info.export_info().first, raw_cmd.export_off);
- LIEF_DEBUG("LC_DYLD_INFO.exports_size: 0x{:06x} -> 0x{:06x}",
+ LIEF_DEBUG("LC_DYLD_INFO.exports_size: {:#08x} -> {:#08x}",
dyld_info.export_info().second, raw_cmd.export_size);
}
- raw_cmd.cmd = static_cast<uint32_t>(dyld_info.command());
+ raw_cmd.cmd = static_cast<uint32_t>(dyld_info.command());
raw_cmd.cmdsize = static_cast<uint32_t>(dyld_info.size());
dyld_info.size_ = sizeof(details::dyld_info_command);
dyld_info.original_data_.clear();
dyld_info.original_data_.resize(dyld_info.size_);
- memcpy(dyld_info.original_data_.data(), &raw_cmd, sizeof(details::dyld_info_command));
+ swap_endian_if_needed(raw_cmd);
+ memcpy(dyld_info.original_data_.data(), &raw_cmd,
+ sizeof(details::dyld_info_command));
return ok();
}
@@ -627,8 +651,7 @@ ok_error_t Builder::build(DyldInfo& dyld_info) {
template<class T>
ok_error_t Builder::build(FunctionStarts& function_starts) {
LIEF_DEBUG("Build '{}'", to_string(function_starts.command()));
- details::linkedit_data_command raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(details::linkedit_data_command));
+ details::linkedit_data_command raw_cmd{};
raw_cmd.dataoff = linkedit_.size();
uint64_t prev_address = 0;
@@ -639,41 +662,44 @@ ok_error_t Builder::build(FunctionStarts& function_starts) {
}
linkedit_.align(sizeof(typename T::uint));
- raw_cmd.cmd = static_cast<uint32_t>(function_starts.command());
- raw_cmd.cmdsize = static_cast<uint32_t>(function_starts.size());
- raw_cmd.datasize = linkedit_.size() - raw_cmd.dataoff;
- raw_cmd.dataoff += linkedit_offset_;
+ raw_cmd.cmd = static_cast<uint32_t>(function_starts.command());
+ raw_cmd.cmdsize = static_cast<uint32_t>(function_starts.size());
+ raw_cmd.datasize = linkedit_.size() - raw_cmd.dataoff;
+ raw_cmd.dataoff += linkedit_offset_;
- LIEF_DEBUG("LC_FUNCTION_STARTS.offset: 0x{:06x} -> 0x{:x}",
+ LIEF_DEBUG("LC_FUNCTION_STARTS.offset: {:#08x} -> {:#x}",
function_starts.data_offset(), raw_cmd.dataoff);
- LIEF_DEBUG("LC_FUNCTION_STARTS.size: 0x{:06x} -> 0x{:x}",
+ LIEF_DEBUG("LC_FUNCTION_STARTS.size: {:#08x} -> {:#x}",
function_starts.data_size(), raw_cmd.datasize);
function_starts.size_ = sizeof(details::linkedit_data_command);
function_starts.original_data_.clear();
function_starts.original_data_.resize(function_starts.size_);
- memcpy(function_starts.original_data_.data(), &raw_cmd, sizeof(details::linkedit_data_command));
+ swap_endian_if_needed(raw_cmd);
+ memcpy(function_starts.original_data_.data(), &raw_cmd,
+ sizeof(details::linkedit_data_command));
return ok();
}
template<class MACHO_T>
-inline ok_error_t write_symbol(vector_iostream& nlist_table, Symbol& sym,
- std::unordered_map<std::string, size_t>& offset_name_map) {
+inline ok_error_t
+ write_symbol(vector_iostream& nlist_table, Symbol& sym,
+ std::unordered_map<std::string, size_t>& offset_name_map) {
using nlist_t = typename MACHO_T::nlist;
const std::string& name = sym.name();
const auto it_name = offset_name_map.find(name);
- if (it_name == std::end(offset_name_map)) {
+ if (it_name == offset_name_map.end()) {
LIEF_WARN("Can't find name offset for symbol {}", sym.name());
return make_error_code(lief_errors::not_found);
}
nlist_t nl;
- nl.n_strx = static_cast<uint32_t>(it_name->second);
- nl.n_type = static_cast<uint8_t>(sym.raw_type());
- nl.n_sect = static_cast<uint32_t>(sym.numberof_sections());
- nl.n_desc = static_cast<uint16_t>(sym.description());
+ nl.n_strx = static_cast<uint32_t>(it_name->second);
+ nl.n_type = static_cast<uint8_t>(sym.raw_type());
+ nl.n_sect = static_cast<uint32_t>(sym.numberof_sections());
+ nl.n_desc = static_cast<uint16_t>(sym.description());
nl.n_value = static_cast<typename MACHO_T::uint>(sym.value());
nlist_table.write(nl);
@@ -683,27 +709,30 @@ inline ok_error_t write_symbol(vector_iostream& nlist_table, Symbol& sym,
template<class T>
ok_error_t Builder::build(SymbolCommand& symbol_command) {
- //template <typename A>
- //void SymbolTableAtom<A>::encode()
+ // template <typename A>
+ // void SymbolTableAtom<A>::encode()
//{
- // // Note: We lay out the symbol table so that the strings for the stabs (local) symbols are at the
- // // end of the string pool. The stabs strings are not used when calculated the UUID for the image.
- // // If the stabs strings were not last, the string offsets for all other symbols may very which would alter the UUID.
+ // // Note: We lay out the symbol table so that the strings for the stabs
+ // (local) symbols are at the
+ // // end of the string pool. The stabs strings are not used when calculating
+ // the UUID for the image.
+ // // If the stabs strings were not last, the string offsets for all other
+ // symbols may vary which would alter the UUID.
//
- // // reserve space for local symbols
- // +---------------------+
- // | |
- // | symtab_command |
- // | |
- // +---------------------+
- // | |
- // | n_list |
- // | |
- // +---------------------+
- // | |
- // | string table |
- // | |
- // +---------------------+
+ // // reserve space for local symbols
+ // +---------------------+
+ // | |
+ // | symtab_command |
+ // | |
+ // +---------------------+
+ // | |
+ // | n_list |
+ // | |
+ // +---------------------+
+ // | |
+ // | string table |
+ // | |
+ // +---------------------+
using nlist_t = typename T::nlist;
@@ -718,35 +747,35 @@ ok_error_t Builder::build(SymbolCommand& symbol_command) {
std::vector<uint8_t> raw_nlist_table;
std::unordered_map<std::string, size_t> offset_name_map;
- details::symtab_command symtab;
- std::memset(&symtab, 0, sizeof(details::symtab_command));
+ details::symtab_command symtab{};
DynamicSymbolCommand* dynsym = binary_->dynamic_symbol_command();
- /* 1. Fille the n_list table */ {
+ /* 1. Fill the n_list table */ {
for (Symbol& s : binary_->symbols()) {
if (s.origin() != Symbol::ORIGIN::SYMTAB) {
continue;
}
all_syms.push_back(&s);
switch (s.category()) {
- case Symbol::CATEGORY::NONE: other_syms.push_back(&s); break;
- case Symbol::CATEGORY::LOCAL: local_syms.push_back(&s); break;
- case Symbol::CATEGORY::EXTERNAL: ext_syms.push_back(&s); break;
+ case Symbol::CATEGORY::NONE: other_syms.push_back(&s); break;
+ case Symbol::CATEGORY::LOCAL: local_syms.push_back(&s); break;
+ case Symbol::CATEGORY::EXTERNAL: ext_syms.push_back(&s); break;
case Symbol::CATEGORY::UNDEFINED: undef_syms.push_back(&s); break;
case Symbol::CATEGORY::INDIRECT_ABS:
case Symbol::CATEGORY::INDIRECT_LOCAL:
case Symbol::CATEGORY::INDIRECT_ABS_LOCAL:
- {
- break;
- }
+ {
+ break;
+ }
}
}
size_t offset_counter = 1;
- std::vector<std::string> string_table_opt = optimize(all_syms,
- [] (Symbol *const &sym) { return sym->name(); },
- offset_counter, &offset_name_map);
+ std::vector<std::string> string_table_opt = optimize(
+ all_syms, [](Symbol* const& sym) { return sym->name(); }, offset_counter,
+ &offset_name_map
+ );
all_syms.clear();
// 0 index is reserved
@@ -759,10 +788,11 @@ ok_error_t Builder::build(SymbolCommand& symbol_command) {
strtab = raw_symbol_names.raw();
}
- /* 2. Fille the n_list table */ {
+ /* 2. Fill the n_list table */ {
const size_t nb_symbols = local_syms.size() + ext_syms.size() +
undef_syms.size() + other_syms.size();
vector_iostream nlist_table;
+ nlist_table.set_endian_swap(should_swap());
nlist_table.reserve(nb_symbols * sizeof(nlist_t));
size_t isym = 0;
@@ -784,7 +814,7 @@ ok_error_t Builder::build(SymbolCommand& symbol_command) {
if (dynsym != nullptr) {
dynsym->idx_external_define_symbol(isym);
}
- for (Symbol* sym : ext_syms) {
+ for (Symbol* sym : ext_syms) {
indirect_symbols[sym] = isym;
write_symbol<T>(nlist_table, *sym, offset_name_map);
++isym;
@@ -818,12 +848,12 @@ ok_error_t Builder::build(SymbolCommand& symbol_command) {
raw_nlist_table = nlist_table.raw();
symtab.symoff = linkedit_offset_ + linkedit_.size();
- symtab.nsyms = nb_symbols;
- LIEF_DEBUG("LC_SYMTAB.nlist: 0x{:06x} -> 0x{:x}",
+ symtab.nsyms = nb_symbols;
+ LIEF_DEBUG("LC_SYMTAB.nlist: {:#08x} -> {:#x}",
symbol_command.symbol_offset(), symtab.symoff);
- LIEF_DEBUG("LC_SYMTAB.nb_symbols: 0x{:06x} -> 0x{:x}",
+ LIEF_DEBUG("LC_SYMTAB.nb_symbols: {:#08x} -> {:#x}",
symbol_command.numberof_symbols(), symtab.nsyms);
- linkedit_.write(std::move(raw_nlist_table));
+ linkedit_.write(raw_nlist_table);
}
/*
* Two Level Hints
@@ -835,8 +865,9 @@ ok_error_t Builder::build(SymbolCommand& symbol_command) {
* Indirect symbol table
*/
if (dynsym != nullptr) {
- LIEF_DEBUG("LC_DYSYMTAB.indirectsymoff: 0x{:06x} -> 0x{:x}",
- dynsym->indirect_symbol_offset(), linkedit_offset_ + linkedit_.size());
+ LIEF_DEBUG("LC_DYSYMTAB.indirectsymoff: {:#08x} -> {:#x}",
+ dynsym->indirect_symbol_offset(),
+ linkedit_offset_ + linkedit_.size());
dynsym->indirect_symbol_offset(linkedit_offset_ + linkedit_.size());
size_t count = 0;
for (Symbol* sym : dynsym->indirect_symbols_) {
@@ -853,40 +884,44 @@ ok_error_t Builder::build(SymbolCommand& symbol_command) {
}
if (sym->category() == Symbol::CATEGORY::INDIRECT_ABS_LOCAL) {
- linkedit_.write(details::INDIRECT_SYMBOL_LOCAL | details::INDIRECT_SYMBOL_ABS);
+ linkedit_.write(details::INDIRECT_SYMBOL_LOCAL |
+ details::INDIRECT_SYMBOL_ABS);
++count;
continue;
}
- auto it_idx = indirect_symbols.find(sym);
- if (it_idx != std::end(indirect_symbols)) {
+ if (auto it_idx = indirect_symbols.find(sym);
+ it_idx != indirect_symbols.end())
+ {
linkedit_.write(it_idx->second);
++count;
} else {
LIEF_ERR("Can't find the symbol index");
}
}
- LIEF_DEBUG("LC_DYSYMTAB.nindirectsyms: 0x{:06x} -> 0x{:x}",
+ LIEF_DEBUG("LC_DYSYMTAB.nindirectsyms: {:#08x} -> {:#x}",
dynsym->nb_indirect_symbols(), count);
dynsym->nb_indirect_symbols(count);
}
- symtab.stroff = linkedit_offset_ + linkedit_.size();
+ symtab.stroff = linkedit_offset_ + linkedit_.size();
symtab.strsize = strtab.size();
- LIEF_DEBUG("LC_SYMTAB.strtab.offset: 0x{:06x} -> 0x{:x}",
+ LIEF_DEBUG("LC_SYMTAB.strtab.offset: {:#08x} -> {:#x}",
symbol_command.strings_offset(), symtab.stroff);
- LIEF_DEBUG("LC_SYMTAB.strtab.size: 0x{:06x} -> 0x{:x}",
+ LIEF_DEBUG("LC_SYMTAB.strtab.size: {:#08x} -> {:#x}",
symbol_command.strings_size(), symtab.strsize);
- linkedit_.write(std::move(strtab));
+ linkedit_.write(strtab);
- symtab.cmd = static_cast<uint32_t>(symbol_command.command());
+ symtab.cmd = static_cast<uint32_t>(symbol_command.command());
symtab.cmdsize = static_cast<uint32_t>(symbol_command.size());
symbol_command.original_data_.clear();
symbol_command.original_data_.resize(sizeof(details::symtab_command));
- std::memcpy(symbol_command.original_data_.data(), &symtab, sizeof(details::symtab_command));
+ swap_endian_if_needed(symtab);
+ std::memcpy(symbol_command.original_data_.data(), &symtab,
+ sizeof(details::symtab_command));
return ok();
}
@@ -894,38 +929,47 @@ ok_error_t Builder::build(SymbolCommand& symbol_command) {
template<class T>
ok_error_t Builder::build(DynamicSymbolCommand& symbol_command) {
- details::dysymtab_command rawcmd;
- std::memset(&rawcmd, 0, sizeof(details::dysymtab_command));
-
- rawcmd.cmd = static_cast<uint32_t>(symbol_command.command());
- rawcmd.cmdsize = static_cast<uint32_t>(symbol_command.size());
-
- rawcmd.ilocalsym = static_cast<uint32_t>(symbol_command.idx_local_symbol());
- rawcmd.nlocalsym = static_cast<uint32_t>(symbol_command.nb_local_symbols());
-
- rawcmd.iextdefsym = static_cast<uint32_t>(symbol_command.idx_external_define_symbol());
- rawcmd.nextdefsym = static_cast<uint32_t>(symbol_command.nb_external_define_symbols());
-
- rawcmd.iundefsym = static_cast<uint32_t>(symbol_command.idx_undefined_symbol());
- rawcmd.nundefsym = static_cast<uint32_t>(symbol_command.nb_undefined_symbols());
-
- rawcmd.indirectsymoff = static_cast<uint32_t>(symbol_command.indirect_symbol_offset());
- rawcmd.nindirectsyms = static_cast<uint32_t>(symbol_command.nb_indirect_symbols());
-
- rawcmd.tocoff = static_cast<uint32_t>(symbol_command.toc_offset());
- rawcmd.ntoc = static_cast<uint32_t>(symbol_command.nb_toc());
- rawcmd.modtaboff = static_cast<uint32_t>(symbol_command.module_table_offset());
- rawcmd.nmodtab = static_cast<uint32_t>(symbol_command.nb_module_table());
- rawcmd.extrefsymoff = static_cast<uint32_t>(symbol_command.external_reference_symbol_offset());
- rawcmd.nextrefsyms = static_cast<uint32_t>(symbol_command.nb_external_reference_symbols());
- rawcmd.extreloff = static_cast<uint32_t>(symbol_command.external_relocation_offset());
- rawcmd.nextrel = static_cast<uint32_t>(symbol_command.nb_external_relocations());
- rawcmd.locreloff = static_cast<uint32_t>(symbol_command.local_relocation_offset());
- rawcmd.nlocrel = static_cast<uint32_t>(symbol_command.nb_local_relocations());
+ details::dysymtab_command rawcmd{};
+
+ rawcmd.cmd = static_cast<uint32_t>(symbol_command.command());
+ rawcmd.cmdsize = static_cast<uint32_t>(symbol_command.size());
+
+ rawcmd.ilocalsym = static_cast<uint32_t>(symbol_command.idx_local_symbol());
+ rawcmd.nlocalsym = static_cast<uint32_t>(symbol_command.nb_local_symbols());
+
+ rawcmd.iextdefsym =
+ static_cast<uint32_t>(symbol_command.idx_external_define_symbol());
+ rawcmd.nextdefsym =
+ static_cast<uint32_t>(symbol_command.nb_external_define_symbols());
+
+ rawcmd.iundefsym = static_cast<uint32_t>(symbol_command.idx_undefined_symbol());
+ rawcmd.nundefsym = static_cast<uint32_t>(symbol_command.nb_undefined_symbols());
+
+ rawcmd.indirectsymoff =
+ static_cast<uint32_t>(symbol_command.indirect_symbol_offset());
+ rawcmd.nindirectsyms =
+ static_cast<uint32_t>(symbol_command.nb_indirect_symbols());
+
+ rawcmd.tocoff = static_cast<uint32_t>(symbol_command.toc_offset());
+ rawcmd.ntoc = static_cast<uint32_t>(symbol_command.nb_toc());
+ rawcmd.modtaboff = static_cast<uint32_t>(symbol_command.module_table_offset());
+ rawcmd.nmodtab = static_cast<uint32_t>(symbol_command.nb_module_table());
+ rawcmd.extrefsymoff =
+ static_cast<uint32_t>(symbol_command.external_reference_symbol_offset());
+ rawcmd.nextrefsyms =
+ static_cast<uint32_t>(symbol_command.nb_external_reference_symbols());
+ rawcmd.extreloff =
+ static_cast<uint32_t>(symbol_command.external_relocation_offset());
+ rawcmd.nextrel = static_cast<uint32_t>(symbol_command.nb_external_relocations());
+ rawcmd.locreloff =
+ static_cast<uint32_t>(symbol_command.local_relocation_offset());
+ rawcmd.nlocrel = static_cast<uint32_t>(symbol_command.nb_local_relocations());
symbol_command.original_data_.clear();
symbol_command.original_data_.resize(sizeof(details::dysymtab_command));
- memcpy(symbol_command.original_data_.data(), &rawcmd, sizeof(details::dysymtab_command));
+ swap_endian_if_needed(rawcmd);
+ memcpy(symbol_command.original_data_.data(), &rawcmd,
+ sizeof(details::dysymtab_command));
return ok();
}
@@ -933,35 +977,36 @@ template<class T>
ok_error_t Builder::build(DataInCode& datacode) {
LIEF_DEBUG("Build '{}'", to_string(datacode.command()));
- details::linkedit_data_command raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(details::linkedit_data_command));
+ details::linkedit_data_command raw_cmd{};
span<const uint8_t> raw_content = datacode.content();
- raw_cmd.cmd = static_cast<uint32_t>(datacode.command());
- raw_cmd.cmdsize = static_cast<uint32_t>(datacode.size());
- raw_cmd.dataoff = linkedit_.size();
+ raw_cmd.cmd = static_cast<uint32_t>(datacode.command());
+ raw_cmd.cmdsize = static_cast<uint32_t>(datacode.size());
+ raw_cmd.dataoff = linkedit_.size();
for (const DataCodeEntry& entry : datacode.entries()) {
- details::data_in_code_entry e;
+ details::data_in_code_entry e{};
e.offset = entry.offset();
e.length = entry.length();
- e.kind = static_cast<decltype(e.kind)>(entry.type());
+ e.kind = static_cast<decltype(e.kind)>(entry.type());
linkedit_.write(e);
}
raw_cmd.datasize = linkedit_.size() - raw_cmd.dataoff;
- raw_cmd.dataoff += linkedit_offset_;
+ raw_cmd.dataoff += linkedit_offset_;
- LIEF_DEBUG("LC_DATA_IN_CODE.offset: 0x{:06x} -> 0x{:x}",
- datacode.data_offset(), raw_cmd.dataoff);
- LIEF_DEBUG("LC_DATA_IN_CODE.size: 0x{:06x} -> 0x{:x}",
- datacode.data_size(), raw_content.size());
+ LIEF_DEBUG("LC_DATA_IN_CODE.offset: {:#08x} -> {:#x}", datacode.data_offset(),
+ raw_cmd.dataoff);
+ LIEF_DEBUG("LC_DATA_IN_CODE.size: {:#08x} -> {:#x}", datacode.data_size(),
+ raw_content.size());
datacode.size_ = sizeof(details::linkedit_data_command);
datacode.original_data_.clear();
datacode.original_data_.resize(datacode.size_);
- memcpy(datacode.original_data_.data(), &raw_cmd, sizeof(details::linkedit_data_command));
+ swap_endian_if_needed(raw_cmd);
+ memcpy(datacode.original_data_.data(), &raw_cmd,
+ sizeof(details::linkedit_data_command));
return ok();
}
@@ -969,8 +1014,7 @@ template<class T>
ok_error_t Builder::build(CodeSignature& code_signature) {
LIEF_DEBUG("Build '{}'", to_string(code_signature.command()));
- details::linkedit_data_command raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(details::linkedit_data_command));
+ details::linkedit_data_command raw_cmd{};
span<const uint8_t> sp = code_signature.content();
@@ -979,14 +1023,14 @@ ok_error_t Builder::build(CodeSignature& code_signature) {
*/
linkedit_.align(16);
- raw_cmd.cmd = static_cast<uint32_t>(code_signature.command());
- raw_cmd.cmdsize = static_cast<uint32_t>(code_signature.size());
- raw_cmd.dataoff = linkedit_offset_ + linkedit_.size();
- raw_cmd.datasize = sp.size();
+ raw_cmd.cmd = static_cast<uint32_t>(code_signature.command());
+ raw_cmd.cmdsize = static_cast<uint32_t>(code_signature.size());
+ raw_cmd.dataoff = linkedit_offset_ + linkedit_.size();
+ raw_cmd.datasize = sp.size();
- LIEF_DEBUG("LC_CODE_SIGNATURE.offset: 0x{:06x} -> 0x{:x}",
+ LIEF_DEBUG("LC_CODE_SIGNATURE.offset: {:#08x} -> {:#x}",
code_signature.data_offset(), raw_cmd.dataoff);
- LIEF_DEBUG("LC_CODE_SIGNATURE.size: 0x{:06x} -> 0x{:x}",
+ LIEF_DEBUG("LC_CODE_SIGNATURE.size: {:#08x} -> {:#x}",
code_signature.data_size(), raw_cmd.datasize);
linkedit_.write(sp.data(), sp.size());
@@ -994,7 +1038,9 @@ ok_error_t Builder::build(CodeSignature& code_signature) {
code_signature.original_data_.clear();
code_signature.original_data_.resize(code_signature.size_);
- memcpy(code_signature.original_data_.data(), &raw_cmd, sizeof(details::linkedit_data_command));
+ swap_endian_if_needed(raw_cmd);
+ memcpy(code_signature.original_data_.data(), &raw_cmd,
+ sizeof(details::linkedit_data_command));
return ok();
}
@@ -1002,20 +1048,19 @@ template<class T>
ok_error_t Builder::build(SegmentSplitInfo& ssi) {
LIEF_DEBUG("Build '{}'", to_string(ssi.command()));
- details::linkedit_data_command raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(details::linkedit_data_command));
+ details::linkedit_data_command raw_cmd{};
span<const uint8_t> raw_content = ssi.content();
- LIEF_DEBUG("LC_SEGMENT_SPLIT_INFO.offset: 0x{:06x} -> 0x{:x}",
- ssi.data_offset(), linkedit_offset_ + linkedit_.size());
- LIEF_DEBUG("LC_SEGMENT_SPLIT_INFO.size: 0x{:06x} -> 0x{:x}",
- ssi.data_size(), raw_content.size());
+ LIEF_DEBUG("LC_SEGMENT_SPLIT_INFO.offset: {:#08x} -> {:#x}", ssi.data_offset(),
+ linkedit_offset_ + linkedit_.size());
+ LIEF_DEBUG("LC_SEGMENT_SPLIT_INFO.size: {:#08x} -> {:#x}", ssi.data_size(),
+ raw_content.size());
- raw_cmd.cmd = static_cast<uint32_t>(ssi.command());
- raw_cmd.cmdsize = static_cast<uint32_t>(ssi.size());
- raw_cmd.dataoff = linkedit_offset_ + linkedit_.size();
- raw_cmd.datasize = raw_content.size();
+ raw_cmd.cmd = static_cast<uint32_t>(ssi.command());
+ raw_cmd.cmdsize = static_cast<uint32_t>(ssi.size());
+ raw_cmd.dataoff = linkedit_offset_ + linkedit_.size();
+ raw_cmd.datasize = raw_content.size();
linkedit_.write(raw_content.data(), raw_content.size());
@@ -1023,7 +1068,9 @@ ok_error_t Builder::build(SegmentSplitInfo& ssi) {
ssi.original_data_.clear();
ssi.original_data_.resize(ssi.size_);
- memcpy(ssi.original_data_.data(), &raw_cmd, sizeof(details::linkedit_data_command));
+ swap_endian_if_needed(raw_cmd);
+ memcpy(ssi.original_data_.data(), &raw_cmd,
+ sizeof(details::linkedit_data_command));
return ok();
}
@@ -1031,126 +1078,124 @@ ok_error_t Builder::build(SegmentSplitInfo& ssi) {
template<class T>
ok_error_t Builder::build(SubFramework& sf) {
LIEF_DEBUG("Build '{}'", to_string(sf.command()));
- details::sub_framework_command raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(details::sub_framework_command));
+ details::sub_framework_command raw_cmd{};
const uint32_t original_size = sf.original_data_.size();
- const uint32_t raw_size = sizeof(details::sub_framework_command) + sf.umbrella().size() + 1;
+ const uint32_t raw_size =
+ sizeof(details::sub_framework_command) + sf.umbrella().size() + 1;
const auto size_needed =
- std::max<uint32_t>(align(raw_size, sizeof(typename T::uint)), original_size);
+ std::max<uint32_t>(align(raw_size, sizeof(typename T::uint)), original_size);
const uint32_t padding = size_needed - raw_size;
if (sf.original_data_.size() < size_needed || sf.size() < size_needed) {
- LIEF_WARN("Not enough spaces to rebuild '{}'. Size required: 0x{:x} vs 0x{:x}",
- sf.umbrella(), size_needed, sf.original_data_.size());
+ LIEF_WARN("Not enough spaces to rebuild '{}'. Size required: {:#x} vs {:#x}",
+ sf.umbrella(), size_needed, sf.original_data_.size());
}
- raw_cmd.cmd = static_cast<uint32_t>(sf.command());
- raw_cmd.cmdsize = static_cast<uint32_t>(size_needed);
+ raw_cmd.cmd = static_cast<uint32_t>(sf.command());
+ raw_cmd.cmdsize = static_cast<uint32_t>(size_needed);
raw_cmd.umbrella = static_cast<uint32_t>(sizeof(details::sub_framework_command));
sf.size_ = size_needed;
sf.original_data_.clear();
// Write Header
+ swap_endian_if_needed(raw_cmd);
std::move(reinterpret_cast<uint8_t*>(&raw_cmd),
reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
std::back_inserter(sf.original_data_));
// Write String
const std::string& um = sf.umbrella();
- std::move(std::begin(um), std::end(um),
- std::back_inserter(sf.original_data_));
+ std::move(um.begin(), um.end(), std::back_inserter(sf.original_data_));
sf.original_data_.push_back(0);
- sf.original_data_.insert(std::end(sf.original_data_), padding, 0);
+ sf.original_data_.insert(sf.original_data_.end(), padding, 0);
return ok();
}
template<class T>
ok_error_t Builder::build(SubClient& sc) {
LIEF_DEBUG("Build '{}'", to_string(sc.command()));
- details::sub_client_command raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(details::sub_client_command));
+ details::sub_client_command raw_cmd{};
const uint32_t original_size = sc.original_data_.size();
- const uint32_t raw_size = sizeof(details::sub_client_command) + sc.client().size() + 1;
+ const uint32_t raw_size =
+ sizeof(details::sub_client_command) + sc.client().size() + 1;
const uint32_t size_needed =
- std::max<uint32_t>(align(raw_size, sizeof(typename T::uint)), original_size);
+ std::max<uint32_t>(align(raw_size, sizeof(typename T::uint)), original_size);
const uint32_t padding = size_needed - raw_size;
if (sc.original_data_.size() < size_needed || sc.size() < size_needed) {
- LIEF_WARN("Not enough spaces to rebuild '{}'. Size required: 0x{:x} vs 0x{:x}",
- sc.client(), size_needed, sc.original_data_.size());
+ LIEF_WARN("Not enough spaces to rebuild '{}'. Size required: {:#x} vs {:#x}",
+ sc.client(), size_needed, sc.original_data_.size());
}
- raw_cmd.cmd = static_cast<uint32_t>(sc.command());
- raw_cmd.cmdsize = static_cast<uint32_t>(size_needed);
- raw_cmd.client = static_cast<uint32_t>(sizeof(details::sub_client_command));
+ raw_cmd.cmd = static_cast<uint32_t>(sc.command());
+ raw_cmd.cmdsize = static_cast<uint32_t>(size_needed);
+ raw_cmd.client = static_cast<uint32_t>(sizeof(details::sub_client_command));
sc.size_ = size_needed;
sc.original_data_.clear();
// Write Header
+ swap_endian_if_needed(raw_cmd);
std::move(reinterpret_cast<uint8_t*>(&raw_cmd),
reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
std::back_inserter(sc.original_data_));
// Write String
const std::string& um = sc.client();
- std::move(std::begin(um), std::end(um),
- std::back_inserter(sc.original_data_));
+ std::move(um.begin(), um.end(), std::back_inserter(sc.original_data_));
sc.original_data_.push_back(0);
- sc.original_data_.insert(std::end(sc.original_data_), padding, 0);
+ sc.original_data_.insert(sc.original_data_.end(), padding, 0);
return ok();
}
template<class T>
ok_error_t Builder::build(DyldEnvironment& de) {
- details::dylinker_command raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(details::dylinker_command));
+ details::dylinker_command raw_cmd{};
const uint32_t original_size = de.original_data_.size();
- const uint32_t raw_size = sizeof(details::dylinker_command) + de.value().size() + 1;
+ const uint32_t raw_size =
+ sizeof(details::dylinker_command) + de.value().size() + 1;
const uint32_t size_needed =
- std::max<uint32_t>(align(raw_size, sizeof(typename T::uint)), original_size);
+ std::max<uint32_t>(align(raw_size, sizeof(typename T::uint)), original_size);
const uint32_t padding = size_needed - raw_size;
- if (de.original_data_.size() < size_needed ||
- de.size() < size_needed) {
- LIEF_WARN("Not enough spaces to rebuild {}. Size required: 0x{:x} vs 0x{:x}",
- de.value(), de.original_data_.size(), size_needed);
+ if (de.original_data_.size() < size_needed || de.size() < size_needed) {
+ LIEF_WARN("Not enough spaces to rebuild {}. Size required: {:#x} vs {:#x}",
+ de.value(), de.original_data_.size(), size_needed);
}
- raw_cmd.cmd = static_cast<uint32_t>(de.command());
- raw_cmd.cmdsize = static_cast<uint32_t>(size_needed);
- raw_cmd.name = static_cast<uint32_t>(sizeof(details::dylinker_command));
+ raw_cmd.cmd = static_cast<uint32_t>(de.command());
+ raw_cmd.cmdsize = static_cast<uint32_t>(size_needed);
+ raw_cmd.name = static_cast<uint32_t>(sizeof(details::dylinker_command));
de.size_ = size_needed;
de.original_data_.clear();
// Write Header
+ swap_endian_if_needed(raw_cmd);
std::move(reinterpret_cast<uint8_t*>(&raw_cmd),
reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
std::back_inserter(de.original_data_));
// Write String
const std::string& value = de.value();
- std::move(std::begin(value), std::end(value),
- std::back_inserter(de.original_data_));
+ std::move(value.begin(), value.end(), std::back_inserter(de.original_data_));
de.original_data_.push_back(0);
- de.original_data_.insert(std::end(de.original_data_), padding, 0);
+ de.original_data_.insert(de.original_data_.end(), padding, 0);
return ok();
}
template<class T>
ok_error_t Builder::build(ThreadCommand& tc) {
- details::thread_command raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(details::thread_command));
+ details::thread_command raw_cmd{};
const span<const uint8_t> state = tc.state();
@@ -1159,53 +1204,54 @@ ok_error_t Builder::build(ThreadCommand& tc) {
const uint32_t padding = size_needed - raw_size;
if (tc.original_data_.size() < size_needed || tc.size() < size_needed) {
- LIEF_WARN("Not enough spaces to rebuild 'ThreadCommand'. Size required: 0x{:x} vs 0x{:x}",
+ LIEF_WARN("Not enough spaces to rebuild 'ThreadCommand'. Size required: {:#x} "
+ "vs {:#x}",
tc.original_data_.size(), size_needed);
}
const uint32_t state_size_needed = tc.count() * sizeof(uint32_t);
if (state.size() < state_size_needed) {
- LIEF_WARN("Not enough spaces to rebuild 'ThreadCommand'. Size required: 0x{:x} vs 0x{:x}",
+ LIEF_WARN("Not enough spaces to rebuild 'ThreadCommand'. Size required: {:#x} "
+ "vs {:#x}",
state.size(), state_size_needed);
}
- raw_cmd.cmd = static_cast<uint32_t>(tc.command());
- raw_cmd.cmdsize = static_cast<uint32_t>(size_needed);
- raw_cmd.flavor = static_cast<uint32_t>(tc.flavor());
- raw_cmd.count = static_cast<uint32_t>(tc.count());
+ raw_cmd.cmd = static_cast<uint32_t>(tc.command());
+ raw_cmd.cmdsize = static_cast<uint32_t>(size_needed);
+ raw_cmd.flavor = static_cast<uint32_t>(tc.flavor());
+ raw_cmd.count = static_cast<uint32_t>(tc.count());
tc.size_ = size_needed;
tc.original_data_.clear();
// Write Header
+ swap_endian_if_needed(raw_cmd);
std::move(reinterpret_cast<uint8_t*>(&raw_cmd),
reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
std::back_inserter(tc.original_data_));
// Write state
- std::move(std::begin(state), std::end(state),
- std::back_inserter(tc.original_data_));
+ std::move(state.begin(), state.end(), std::back_inserter(tc.original_data_));
- tc.original_data_.push_back(0);
- tc.original_data_.insert(std::end(tc.original_data_), padding, 0);
+ tc.original_data_.insert(tc.original_data_.end(), padding, 0);
return ok();
}
template<class T>
ok_error_t Builder::build(EncryptionInfo& info) {
- details::encryption_info_command raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(details::encryption_info_command));
+ details::encryption_info_command raw_cmd{};
- raw_cmd.cmd = static_cast<uint32_t>(info.command());
- raw_cmd.cmdsize = info.size();
- raw_cmd.cryptoff = info.crypt_offset();
+ raw_cmd.cmd = static_cast<uint32_t>(info.command());
+ raw_cmd.cmdsize = info.size();
+ raw_cmd.cryptoff = info.crypt_offset();
raw_cmd.cryptsize = info.crypt_size();
- raw_cmd.cryptid = info.crypt_id();
+ raw_cmd.cryptid = info.crypt_id();
std::fill(info.original_data_.begin(), info.original_data_.end(), 0);
+ swap_endian_if_needed(raw_cmd);
std::copy(reinterpret_cast<uint8_t*>(&raw_cmd),
reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
reinterpret_cast<uint8_t*>(info.original_data_.data()));
@@ -1213,67 +1259,89 @@ ok_error_t Builder::build(EncryptionInfo& info) {
return ok();
}
-template <typename T>
+template<typename T>
ok_error_t Builder::update_fixups(DyldChainedFixups& command) {
for (const auto& seg_info : command.chained_starts_in_segments()) {
- for (const std::unique_ptr<Relocation>& reloc : seg_info.segment.relocations_) {
+ for (const std::unique_ptr<Relocation>& reloc : seg_info.segment.relocations_)
+ {
if (!RelocationFixup::classof(*reloc)) {
- LIEF_WARN("Weird: a relocation in {} is not RelocationFixup", seg_info.segment.name());
+ LIEF_WARN("Weird: a relocation in {} is not RelocationFixup",
+ seg_info.segment.name());
continue;
}
const auto& fixup = static_cast<const RelocationFixup&>(*reloc);
- span<uint8_t> sdata = seg_info.segment.writable_content();
+ span<uint8_t> sdata = seg_info.segment.content();
const uint64_t seg_off = seg_info.segment.file_offset();
- LIEF_DEBUG("0x{:010x}: 0x{:010x} Offset: 0x{:x}", fixup.address(), fixup.target(), fixup.offset_);
+ LIEF_DEBUG("{:#012x}: {:#012x} Offset: {:#x}", fixup.address(),
+ fixup.target(), fixup.offset_);
const uint64_t rel_offset = fixup.offset_ - seg_off;
switch (fixup.rtypes_) {
case RelocationFixup::REBASE_TYPES::ARM64E_AUTH_REBASE:
- {
- auto& raw_fixup = *reinterpret_cast<details::dyld_chained_ptr_arm64e*>(sdata.data() + rel_offset);
- raw_fixup.auth_rebase = *fixup.arm64_auth_rebase_;
- break;
- }
+ {
+ auto& raw_fixup =
+ *reinterpret_cast<details::dyld_chained_ptr_arm64e*>(sdata.data() +
+ rel_offset);
+ raw_fixup.auth_rebase = *fixup.arm64_auth_rebase_;
+ break;
+ }
case RelocationFixup::REBASE_TYPES::ARM64E_REBASE:
- {
- auto& raw_fixup = *reinterpret_cast<details::dyld_chained_ptr_arm64e*>(sdata.data() + rel_offset);
- raw_fixup.rebase = *fixup.arm64_rebase_;
- break;
- }
+ {
+ auto& raw_fixup =
+ *reinterpret_cast<details::dyld_chained_ptr_arm64e*>(sdata.data() +
+ rel_offset);
+ raw_fixup.rebase = *fixup.arm64_rebase_;
+ break;
+ }
case RelocationFixup::REBASE_TYPES::PTR64_REBASE:
- {
- auto& raw_fixup = *reinterpret_cast<details::dyld_chained_ptr_generic64*>(sdata.data() + rel_offset);
- raw_fixup.rebase = *fixup.p64_rebase_;
- break;
- }
+ {
+ auto& raw_fixup =
+ *reinterpret_cast<details::dyld_chained_ptr_generic64*>(
+ sdata.data() + rel_offset
+ );
+ raw_fixup.rebase = *fixup.p64_rebase_;
+ break;
+ }
case RelocationFixup::REBASE_TYPES::PTR32_REBASE:
- {
- auto& raw_fixup = *reinterpret_cast<details::dyld_chained_ptr_generic32*>(sdata.data() + rel_offset);
- raw_fixup.rebase = *fixup.p32_rebase_;
- break;
- }
+ {
+ auto& raw_fixup =
+ *reinterpret_cast<details::dyld_chained_ptr_generic32*>(
+ sdata.data() + rel_offset
+ );
+ raw_fixup.rebase = *fixup.p32_rebase_;
+ break;
+ }
case RelocationFixup::REBASE_TYPES::SEGMENTED:
- {
- [[maybe_unused]] auto& raw_fixup = *reinterpret_cast<details::dyld_chained_ptr_arm64e_segmented_rebase*>(sdata.data() + rel_offset);
- LIEF_ERR("dyld_chained_ptr_arm64e_segmented_rebase is not supported ({})", __LINE__);
- break;
- }
+ {
+ [[maybe_unused]] auto& raw_fixup = *reinterpret_cast<
+ details::dyld_chained_ptr_arm64e_segmented_rebase*
+ >(sdata.data() + rel_offset);
+ LIEF_ERR(
+ "dyld_chained_ptr_arm64e_segmented_rebase is not supported ({})",
+ __LINE__
+ );
+ break;
+ }
case RelocationFixup::REBASE_TYPES::AUTH_SEGMENTED:
- {
- [[maybe_unused]] auto& raw_fixup = *reinterpret_cast<details::dyld_chained_ptr_arm64e_auth_segmented_rebase*>(sdata.data() + rel_offset);
- LIEF_ERR("dyld_chained_ptr_arm64e_auth_segmented_rebase is not supported ({})", __LINE__);
- break;
- }
+ {
+ [[maybe_unused]] auto& raw_fixup = *reinterpret_cast<
+ details::dyld_chained_ptr_arm64e_auth_segmented_rebase*
+ >(sdata.data() + rel_offset);
+ LIEF_ERR("dyld_chained_ptr_arm64e_auth_segmented_rebase is not "
+ "supported ({})",
+ __LINE__);
+ break;
+ }
case RelocationFixup::REBASE_TYPES::UNKNOWN:
- {
- break;
- }
+ {
+ break;
+ }
}
}
}
@@ -1286,8 +1354,9 @@ ok_error_t Builder::build(DyldChainedFixups& fixups) {
using pin_t = typename T::uint;
/*
* Note(romain): Most of the logic that constructs this command
- * is located in ld64/src/ld/LinkEdit.hpp - ChainedInfoAtom<A>::encode()
- * The following code is highly inspired from the Apple ld64 code
+ * is located in ld64/src/ld/LinkEdit.hpp -
+ * ChainedInfoAtom<A>::encode() The following code is highly inspired from the
+ * Apple ld64 code
*/
LIEF_DEBUG("[->] Writing DyldChainedFixups");
@@ -1298,12 +1367,12 @@ ok_error_t Builder::build(DyldChainedFixups& fixups) {
vector_iostream lnk_data;
- details::dyld_chained_fixups_header header;
+ details::dyld_chained_fixups_header header{};
header.fixups_version = 0;
- header.starts_offset = align(sizeof(details::dyld_chained_fixups_header), 8);
+ header.starts_offset = align(sizeof(details::dyld_chained_fixups_header), 8);
header.imports_offset = 0;
header.symbols_offset = 0;
- header.imports_count = fixups.internal_bindings_.size();
+ header.imports_count = fixups.internal_bindings_.size();
header.imports_format = static_cast<uint32_t>(fixups.imports_format());
header.symbols_format = 0;
@@ -1313,7 +1382,7 @@ ok_error_t Builder::build(DyldChainedFixups& fixups) {
const size_t segs_header_off = lnk_data.size();
if (fixups.starts_offset() > 0 && segs_header_off != fixups.starts_offset()) {
- LIEF_INFO("segs_header_off could be wrong!");
+ LIEF_INFO("segs_header_off may be incorrect");
}
auto starts_in_segment = fixups.chained_starts_in_segments();
lnk_data.write<uint32_t>(starts_in_segment.size());
@@ -1329,20 +1398,24 @@ ok_error_t Builder::build(DyldChainedFixups& fixups) {
for (const auto& seg_info : starts_in_segment) {
if (seg_info.segment.name() == "__TEXT") {
text_start_address = seg_info.segment.virtual_address();
- }
- else if (seg_info.segment.name() == "__LINKEDIT") {
+ } else if (seg_info.segment.name() == "__LINKEDIT") {
uint64_t base_address = text_start_address;
- if (seg_info.pointer_format == DYLD_CHAINED_PTR_FORMAT::PTR_32 && text_start_address == 0x4000) {
+ if (seg_info.pointer_format == DYLD_CHAINED_PTR_FORMAT::PTR_32 &&
+ text_start_address == 0x4000)
+ {
base_address = 0;
}
- max_rebase_address = align(seg_info.segment.virtual_address() - base_address, 0x00100000);
+ max_rebase_address =
+ align(seg_info.segment.virtual_address() - base_address, 0x00100000);
}
}
// -----
- for (const DyldChainedFixups::chained_starts_in_segment& seg_info : starts_in_segment) {
+ for (const DyldChainedFixups::chained_starts_in_segment& seg_info :
+ starts_in_segment)
+ {
if (seg_info.page_count() == 0) {
++seg_idx;
continue;
@@ -1354,24 +1427,28 @@ ok_error_t Builder::build(DyldChainedFixups& fixups) {
LIEF_ERR("DYLD_CHAINED_PTR_FORMAT::PTR_32 is not supported yet");
return make_error_code(lief_errors::not_supported);
}
- details::dyld_chained_starts_in_segment seg;
+ details::dyld_chained_starts_in_segment seg{};
const size_t page_count = seg_info.page_count();
- seg.size = sizeof(details::dyld_chained_starts_in_segment) + page_count * start_bytes_per_page;
- seg.page_size = seg_info.page_size;
- seg.pointer_format = static_cast<uint16_t>(seg_info.pointer_format);
- seg.segment_offset = seg_info.segment.virtual_address() - text_start_address;
- seg.page_count = page_count;
- seg.max_valid_pointer = seg_info.pointer_format == DYLD_CHAINED_PTR_FORMAT::PTR_32 ?
- max_rebase_address : 0;
+ seg.size = sizeof(details::dyld_chained_starts_in_segment) +
+ page_count * start_bytes_per_page;
+ seg.page_size = seg_info.page_size;
+ seg.pointer_format = static_cast<uint16_t>(seg_info.pointer_format);
+ seg.segment_offset = seg_info.segment.virtual_address() - text_start_address;
+ seg.page_count = page_count;
+ seg.max_valid_pointer =
+ seg_info.pointer_format == DYLD_CHAINED_PTR_FORMAT::PTR_32 ?
+ max_rebase_address :
+ 0;
// According to the linker documentation, dyld_chained_starts_in_segment
// must be 64-bit aligned.
lnk_data.align(8);
- auto* seg_info_offsets = reinterpret_cast<uint32_t*>(lnk_data.raw().data() + segs_info_off);
+ auto* seg_info_offsets =
+ reinterpret_cast<uint32_t*>(lnk_data.raw().data() + segs_info_off);
seg_info_offsets[seg_idx] = lnk_data.size() - segs_header_off;
- LIEF_DEBUG("0x{:06x} seg_info_offsets[{}] = 0x{:016x}",
- segs_info_off + sizeof(uint32_t) * seg_idx,
- seg_idx, seg_info_offsets[seg_idx]);
+ LIEF_DEBUG("{:#08x} seg_info_offsets[{}] = {:#018x}",
+ segs_info_off + sizeof(uint32_t) * seg_idx, seg_idx,
+ seg_info_offsets[seg_idx]);
lnk_data.write(seg);
for (uint16_t off : seg_info.page_start) {
lnk_data.write(off);
@@ -1394,13 +1471,16 @@ ok_error_t Builder::build(DyldChainedFixups& fixups) {
std::unordered_map<std::string, size_t> offset_name_map;
string_pool.write<uint8_t>(0);
size_t offset_counter = string_pool.tellp();
- std::vector<std::string> string_table_optimized = optimize(fixups.internal_bindings_,
- [] (const std::unique_ptr<ChainedBindingInfoList>& bnd) {
- if (const Symbol* s = bnd->symbol()) {
- return s->name();
- }
- return std::string();
- }, offset_counter, &offset_name_map);
+ std::vector<std::string> string_table_optimized = optimize(
+ fixups.internal_bindings_,
+ [](const std::unique_ptr<ChainedBindingInfoList>& bnd) {
+ if (const Symbol* s = bnd->symbol()) {
+ return s->name();
+ }
+ return std::string();
+ },
+ offset_counter, &offset_name_map
+ );
string_pool.reserve(string_table_optimized.size() * 10);
for (const std::string& name : string_table_optimized) {
string_pool.write(name);
@@ -1410,20 +1490,25 @@ ok_error_t Builder::build(DyldChainedFixups& fixups) {
const size_t nb_bindings = fixups.internal_bindings_.size();
switch (fmt) {
case DYLD_CHAINED_FORMAT::IMPORT:
- imports.reserve(nb_bindings * sizeof(details::dyld_chained_import)); break;
+ imports.reserve(nb_bindings * sizeof(details::dyld_chained_import));
+ break;
case DYLD_CHAINED_FORMAT::IMPORT_ADDEND:
- imports.reserve(nb_bindings * sizeof(details::dyld_chained_import_addend)); break;
+ imports.reserve(nb_bindings * sizeof(details::dyld_chained_import_addend));
+ break;
case DYLD_CHAINED_FORMAT::IMPORT_ADDEND64:
- imports.reserve(nb_bindings * sizeof(details::dyld_chained_import_addend64)); break;
+ imports.reserve(nb_bindings * sizeof(details::dyld_chained_import_addend64));
+ break;
}
- for (const std::unique_ptr<ChainedBindingInfoList>& info : fixups.internal_bindings_) {
+ for (const std::unique_ptr<ChainedBindingInfoList>& info :
+ fixups.internal_bindings_)
+ {
uint32_t name_offset = 0;
const std::string& name = info->symbol()->name();
- auto it_name_off = offset_name_map.find(name);
-
- if (it_name_off != std::end(offset_name_map)) {
+ if (auto it_name_off = offset_name_map.find(name);
+ it_name_off != offset_name_map.end())
+ {
name_offset = it_name_off->second;
} else {
LIEF_WARN("Can't find symbol: '{}'", name);
@@ -1431,152 +1516,170 @@ ok_error_t Builder::build(DyldChainedFixups& fixups) {
}
switch (fmt) {
case DYLD_CHAINED_FORMAT::IMPORT:
- {
- details::dyld_chained_import import;
- import.lib_ordinal = info->library_ordinal();
- import.weak_import = info->is_weak_import();
- import.name_offset = name_offset;
- imports.write(import);
- break;
- }
+ {
+ details::dyld_chained_import import{};
+ import.lib_ordinal = info->library_ordinal();
+ import.weak_import = info->is_weak_import();
+ import.name_offset = name_offset;
+ imports.write(import);
+ break;
+ }
case DYLD_CHAINED_FORMAT::IMPORT_ADDEND:
- {
- details::dyld_chained_import_addend import;
- import.lib_ordinal = info->library_ordinal();
- import.weak_import = info->is_weak_import();
- import.name_offset = name_offset;
- import.addend = info->addend();
- imports_addend.write(import);
- break;
- }
+ {
+ details::dyld_chained_import_addend import{};
+ import.lib_ordinal = info->library_ordinal();
+ import.weak_import = info->is_weak_import();
+ import.name_offset = name_offset;
+ import.addend = info->addend();
+ imports_addend.write(import);
+ break;
+ }
case DYLD_CHAINED_FORMAT::IMPORT_ADDEND64:
- {
- details::dyld_chained_import_addend64 import;
- import.lib_ordinal = info->library_ordinal();
- import.weak_import = info->is_weak_import();
- import.name_offset = name_offset;
- import.addend = info->addend();
- imports_addend64.write(import);
- break;
- }
+ {
+ details::dyld_chained_import_addend64 import{};
+ import.lib_ordinal = info->library_ordinal();
+ import.weak_import = info->is_weak_import();
+ import.name_offset = name_offset;
+ import.addend = info->addend();
+ imports_addend64.write(import);
+ break;
+ }
}
for (ChainedBindingInfo* binding : info->elements_) {
- const uint64_t rel_offset = binding->offset_ - binding->segment()->file_offset();
- uint8_t* data_ptr = binding->segment_->writable_content().data() + rel_offset;
- LIEF_DEBUG("Write binding (offset=0x{:010x}): 0x{:016x} {} in {} offset=0x{:010x}",
- binding->offset_, binding->address(), binding->symbol()->name(),
- binding->segment_->name(),
- binding->segment()->file_offset() + rel_offset);
+ const uint64_t rel_offset =
+ binding->offset_ - binding->segment()->file_offset();
+ uint8_t* data_ptr = binding->segment_->content().data() + rel_offset;
+ LIEF_DEBUG(
+ "Write binding (offset={:#012x}): {:#018x} {} in {} offset={:#012x}",
+ binding->offset_, binding->address(), binding->symbol()->name(),
+ binding->segment_->name(), binding->segment()->file_offset() + rel_offset
+ );
// Rewrite the raw chained binding
switch (binding->btypes_) {
case ChainedBindingInfo::BIND_TYPES::ARM64E_BIND:
- {
- auto& raw_bind = *reinterpret_cast<details::dyld_chained_ptr_arm64e*>(data_ptr);
- raw_bind.bind = *binding->arm64_bind_;
- break;
- }
+ {
+ auto& raw_bind =
+ *reinterpret_cast<details::dyld_chained_ptr_arm64e*>(data_ptr);
+ raw_bind.bind = *binding->arm64_bind_;
+ break;
+ }
case ChainedBindingInfo::BIND_TYPES::ARM64E_AUTH_BIND:
- {
- auto& raw_bind = *reinterpret_cast<details::dyld_chained_ptr_arm64e*>(data_ptr);
- raw_bind.auth_bind = *binding->arm64_auth_bind_;
- break;
- }
+ {
+ auto& raw_bind =
+ *reinterpret_cast<details::dyld_chained_ptr_arm64e*>(data_ptr);
+ raw_bind.auth_bind = *binding->arm64_auth_bind_;
+ break;
+ }
case ChainedBindingInfo::BIND_TYPES::ARM64E_BIND24:
- {
- auto& raw_bind = *reinterpret_cast<details::dyld_chained_ptr_arm64e*>(data_ptr);
- raw_bind.bind24 = *binding->arm64_bind24_;
- break;
- }
+ {
+ auto& raw_bind =
+ *reinterpret_cast<details::dyld_chained_ptr_arm64e*>(data_ptr);
+ raw_bind.bind24 = *binding->arm64_bind24_;
+ break;
+ }
case ChainedBindingInfo::BIND_TYPES::ARM64E_AUTH_BIND24:
- {
- auto& raw_bind = *reinterpret_cast<details::dyld_chained_ptr_arm64e*>(data_ptr);
- raw_bind.auth_bind24 = *binding->arm64_auth_bind24_;
- break;
- }
+ {
+ auto& raw_bind =
+ *reinterpret_cast<details::dyld_chained_ptr_arm64e*>(data_ptr);
+ raw_bind.auth_bind24 = *binding->arm64_auth_bind24_;
+ break;
+ }
case ChainedBindingInfo::BIND_TYPES::PTR64_BIND:
- {
- auto& raw_bind = *reinterpret_cast<details::dyld_chained_ptr_generic64*>(data_ptr);
- raw_bind.bind = *binding->p64_bind_;
- break;
- }
+ {
+ auto& raw_bind =
+ *reinterpret_cast<details::dyld_chained_ptr_generic64*>(data_ptr);
+ raw_bind.bind = *binding->p64_bind_;
+ break;
+ }
case ChainedBindingInfo::BIND_TYPES::PTR32_BIND:
- {
- auto& raw_bind = *reinterpret_cast<details::dyld_chained_ptr_generic32*>(data_ptr);
- raw_bind.bind = *binding->p32_bind_;
- break;
- }
+ {
+ auto& raw_bind =
+ *reinterpret_cast<details::dyld_chained_ptr_generic32*>(data_ptr);
+ raw_bind.bind = *binding->p32_bind_;
+ break;
+ }
case ChainedBindingInfo::BIND_TYPES::UNKNOWN: break;
}
}
}
// Re-access the header to update the offsets
- // NOTE/WARN: We need to 'reset' the pointer as the underlying buffer (std::vector) might
- // be relocated.
- auto* hdr = reinterpret_cast<details::dyld_chained_fixups_header*>(lnk_data.raw().data());
+ // NOTE/WARN: We need to 'reset' the pointer as the underlying buffer
+ // (std::vector) might be relocated.
+ auto* hdr = reinterpret_cast<details::dyld_chained_fixups_header*>(
+ lnk_data.raw().data()
+ );
switch (fmt) {
case DYLD_CHAINED_FORMAT::IMPORT:
- {
- lnk_data.align(4);
- hdr = reinterpret_cast<details::dyld_chained_fixups_header*>(lnk_data.raw().data());
- hdr->imports_offset = lnk_data.size();
- lnk_data.write(imports);
- break;
- }
+ {
+ lnk_data.align(4);
+ hdr = reinterpret_cast<details::dyld_chained_fixups_header*>(
+ lnk_data.raw().data()
+ );
+ hdr->imports_offset = lnk_data.size();
+ lnk_data.write(imports);
+ break;
+ }
case DYLD_CHAINED_FORMAT::IMPORT_ADDEND:
- {
- lnk_data.align(4);
- hdr = reinterpret_cast<details::dyld_chained_fixups_header*>(lnk_data.raw().data());
- hdr->imports_offset = lnk_data.size();
- lnk_data.write(imports_addend);
- break;
- }
+ {
+ lnk_data.align(4);
+ hdr = reinterpret_cast<details::dyld_chained_fixups_header*>(
+ lnk_data.raw().data()
+ );
+ hdr->imports_offset = lnk_data.size();
+ lnk_data.write(imports_addend);
+ break;
+ }
case DYLD_CHAINED_FORMAT::IMPORT_ADDEND64:
- {
- lnk_data.align(8);
- hdr = reinterpret_cast<details::dyld_chained_fixups_header*>(lnk_data.raw().data());
- hdr->imports_offset = lnk_data.size();
- lnk_data.write(imports_addend64);
- break;
- }
+ {
+ lnk_data.align(8);
+ hdr = reinterpret_cast<details::dyld_chained_fixups_header*>(
+ lnk_data.raw().data()
+ );
+ hdr->imports_offset = lnk_data.size();
+ lnk_data.write(imports_addend64);
+ break;
+ }
}
- hdr = reinterpret_cast<details::dyld_chained_fixups_header*>(lnk_data.raw().data());
+ hdr = reinterpret_cast<details::dyld_chained_fixups_header*>(
+ lnk_data.raw().data()
+ );
hdr->symbols_offset = lnk_data.size();
- lnk_data
- .write(string_pool.raw())
- .align(sizeof(pin_t));
+ lnk_data.write(string_pool.raw()).align(sizeof(pin_t));
const std::vector<uint8_t>& raw = lnk_data.raw();
- LIEF_DEBUG("__chainfixups.old_size: 0x{:06x}", fixups.data_size());
- LIEF_DEBUG("__chainfixups.new_size: 0x{:06x}", raw.size());
+ LIEF_DEBUG("__chainfixups.old_size: {:#08x}", fixups.data_size());
+ LIEF_DEBUG("__chainfixups.new_size: {:#08x}", raw.size());
if (fixups.data_size() > 0 && fixups.data_size() < raw.size()) {
LIEF_WARN("New chained fixups size is larger than the original one");
}
- LIEF_DEBUG("LC_DYLD_CHAINED_FIXUPS.offset: 0x{:06x} -> 0x{:x}",
+ LIEF_DEBUG("LC_DYLD_CHAINED_FIXUPS.offset: {:#08x} -> {:#x}",
fixups.data_offset(), linkedit_offset_ + linkedit_.size());
- LIEF_DEBUG("LC_DYLD_CHAINED_FIXUPS.size: 0x{:06x} -> 0x{:x}",
- fixups.data_size(), lnk_data.size());
+ LIEF_DEBUG("LC_DYLD_CHAINED_FIXUPS.size: {:#08x} -> {:#x}", fixups.data_size(),
+ lnk_data.size());
// Write back the 'linkedit' structure
- details::linkedit_data_command raw_cmd;
+ details::linkedit_data_command raw_cmd{};
- raw_cmd.cmd = static_cast<uint32_t>(fixups.command());
- raw_cmd.cmdsize = static_cast<uint32_t>(fixups.size());
- raw_cmd.dataoff = linkedit_offset_ + linkedit_.size();
- raw_cmd.datasize = lnk_data.size();
+ raw_cmd.cmd = static_cast<uint32_t>(fixups.command());
+ raw_cmd.cmdsize = static_cast<uint32_t>(fixups.size());
+ raw_cmd.dataoff = linkedit_offset_ + linkedit_.size();
+ raw_cmd.datasize = lnk_data.size();
- linkedit_.write(std::move(lnk_data.raw()));
+ linkedit_.write(lnk_data.raw());
fixups.size_ = sizeof(details::linkedit_data_command);
fixups.original_data_.clear();
fixups.original_data_.resize(fixups.size_);
- memcpy(fixups.original_data_.data(), &raw_cmd, sizeof(details::linkedit_data_command));
+ swap_endian_if_needed(raw_cmd);
+ memcpy(fixups.original_data_.data(), &raw_cmd,
+ sizeof(details::linkedit_data_command));
return ok();
}
@@ -1588,96 +1691,107 @@ ok_error_t Builder::build(DyldExportsTrie& exports) {
if (exports.data_size() > 0 && raw.size() > exports.content_.size()) {
const uint64_t delta = raw.size() - exports.content_.size();
LIEF_INFO("The export trie is larger than the original "
- "LC_DYLD_EXPORTS_TRIE (+0x{:x} bytes)", delta);
+ "LC_DYLD_EXPORTS_TRIE (+{:#x} bytes)",
+ delta);
}
- LIEF_DEBUG("LC_DYLD_EXPORTS_TRIE.offset: 0x{:06x} -> 0x{:x}",
+ LIEF_DEBUG("LC_DYLD_EXPORTS_TRIE.offset: {:#08x} -> {:#x}",
exports.data_offset(), linkedit_offset_ + linkedit_.size());
- LIEF_DEBUG("LC_DYLD_EXPORTS_TRIE.size: 0x{:06x} -> 0x{:x}",
- exports.data_size(), raw.size());
+ LIEF_DEBUG("LC_DYLD_EXPORTS_TRIE.size: {:#08x} -> {:#x}", exports.data_size(),
+ raw.size());
// Write back the 'linkedit' structure
- details::linkedit_data_command raw_cmd;
+ details::linkedit_data_command raw_cmd{};
- raw_cmd.cmd = static_cast<uint32_t>(exports.command());
- raw_cmd.cmdsize = static_cast<uint32_t>(exports.size());
- raw_cmd.dataoff = linkedit_offset_ + linkedit_.size();
- raw_cmd.datasize = raw.size();
+ raw_cmd.cmd = static_cast<uint32_t>(exports.command());
+ raw_cmd.cmdsize = static_cast<uint32_t>(exports.size());
+ raw_cmd.dataoff = linkedit_offset_ + linkedit_.size();
+ raw_cmd.datasize = raw.size();
- linkedit_.write(std::move(raw));
+ linkedit_.write(raw);
exports.size_ = sizeof(details::linkedit_data_command);
exports.original_data_.clear();
exports.original_data_.resize(exports.size_);
- memcpy(exports.original_data_.data(), &raw_cmd, sizeof(details::linkedit_data_command));
+ swap_endian_if_needed(raw_cmd);
+ memcpy(exports.original_data_.data(), &raw_cmd,
+ sizeof(details::linkedit_data_command));
return ok();
}
template<class T>
ok_error_t Builder::build(BuildVersion& bv) {
- details::build_version_command raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(details::build_version_command));
+ details::build_version_command raw_cmd{};
const BuildVersion::tools_list_t& tools = bv.tools();
- const uint32_t raw_size = sizeof(details::build_version_command) + tools.size() * sizeof(details::build_tool_version);
+ const uint32_t raw_size = sizeof(details::build_version_command) +
+ tools.size() * sizeof(details::build_tool_version);
const uint32_t size_needed = align(raw_size, sizeof(typename T::uint));
- const uint32_t padding = size_needed - raw_size;
+ const uint32_t padding = size_needed - raw_size;
if (bv.original_data_.size() < size_needed || bv.size() < size_needed) {
- LIEF_WARN("Not enough spaces to rebuild 'BuildVersion'. Size required: 0x{:x} vs 0x{:x}",
- bv.original_data_.size(), size_needed);
+ LIEF_WARN("Not enough spaces to rebuild 'BuildVersion'. Size required: {:#x} "
+ "vs {:#x}",
+ bv.original_data_.size(), size_needed);
}
- const BuildVersion::version_t& minos = bv.minos();
- const BuildVersion::version_t& sdk = bv.sdk();
+ const BuildVersion::version_t& minos = bv.minos();
+ const BuildVersion::version_t& sdk = bv.sdk();
- raw_cmd.cmd = static_cast<uint32_t>(bv.command());
- raw_cmd.cmdsize = static_cast<uint32_t>(size_needed);
+ raw_cmd.cmd = static_cast<uint32_t>(bv.command());
+ raw_cmd.cmdsize = static_cast<uint32_t>(size_needed);
- raw_cmd.minos = static_cast<uint32_t>(minos[0] << 16 | minos[1] << 8 | minos[2]);
- raw_cmd.sdk = static_cast<uint32_t>(sdk[0] << 16 | sdk[1] << 8 | sdk[2]);
+ raw_cmd.minos = static_cast<uint32_t>(minos[0] << 16 | minos[1] << 8 | minos[2]);
+ raw_cmd.sdk = static_cast<uint32_t>(sdk[0] << 16 | sdk[1] << 8 | sdk[2]);
raw_cmd.platform = static_cast<uint32_t>(bv.platform());
- raw_cmd.ntools = tools.size();
- //raw_cmd.name = static_cast<uint32_t>(sizeof(build_version_command));
- std::vector<uint8_t> raw_tools(raw_cmd.ntools * sizeof(details::build_tool_version), 0);
- auto* tools_array = reinterpret_cast<details::build_tool_version*>(raw_tools.data());
+ raw_cmd.ntools = tools.size();
+ // raw_cmd.name = static_cast<uint32_t>(sizeof(build_version_command));
+ std::vector<uint8_t> raw_tools(
+ raw_cmd.ntools * sizeof(details::build_tool_version), 0
+ );
+ auto* tools_array =
+ reinterpret_cast<details::build_tool_version*>(raw_tools.data());
for (size_t i = 0; i < tools.size(); ++i) {
BuildToolVersion::version_t version = tools[i].version();
- tools_array[i].tool = static_cast<uint32_t>(tools[i].tool());
- tools_array[i].version = static_cast<uint32_t>(version[0] << 16 | version[1] << 8 | version[2]);
+ tools_array[i].tool = static_cast<uint32_t>(tools[i].tool());
+ tools_array[i].version =
+ static_cast<uint32_t>(version[0] << 16 | version[1] << 8 | version[2]);
+ swap_endian_if_needed(tools_array[i]);
}
bv.size_ = size_needed;
bv.original_data_.clear();
// Write Header
- std::move(reinterpret_cast<uint8_t*>(&raw_cmd), reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
+ swap_endian_if_needed(raw_cmd);
+ std::move(reinterpret_cast<uint8_t*>(&raw_cmd),
+ reinterpret_cast<uint8_t*>(&raw_cmd) + sizeof(raw_cmd),
std::back_inserter(bv.original_data_));
- std::move(std::begin(raw_tools), std::end(raw_tools), std::back_inserter(bv.original_data_));
+ std::move(raw_tools.begin(), raw_tools.end(),
+ std::back_inserter(bv.original_data_));
- bv.original_data_.insert(std::end(bv.original_data_), padding, 0);
+ bv.original_data_.insert(bv.original_data_.end(), padding, 0);
return ok();
}
template<class T>
ok_error_t Builder::build(CodeSignatureDir& sig) {
- details::linkedit_data_command raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(details::linkedit_data_command));
+ details::linkedit_data_command raw_cmd{};
span<const uint8_t> sp = sig.content();
- raw_cmd.cmd = static_cast<uint32_t>(sig.command());
- raw_cmd.cmdsize = static_cast<uint32_t>(sig.size());
- raw_cmd.dataoff = linkedit_offset_ + linkedit_.size();
- raw_cmd.datasize = sp.size();
+ raw_cmd.cmd = static_cast<uint32_t>(sig.command());
+ raw_cmd.cmdsize = static_cast<uint32_t>(sig.size());
+ raw_cmd.dataoff = linkedit_offset_ + linkedit_.size();
+ raw_cmd.datasize = sp.size();
- LIEF_DEBUG("LC_DYLIB_CODE_SIGN_DRS.offset: 0x{:06x} -> 0x{:x}",
- sig.data_offset(), raw_cmd.dataoff);
- LIEF_DEBUG("LC_DYLIB_CODE_SIGN_DRS.size: 0x{:06x} -> 0x{:x}",
- sig.data_size(), raw_cmd.datasize);
+ LIEF_DEBUG("LC_DYLIB_CODE_SIGN_DRS.offset: {:#08x} -> {:#x}", sig.data_offset(),
+ raw_cmd.dataoff);
+ LIEF_DEBUG("LC_DYLIB_CODE_SIGN_DRS.size: {:#08x} -> {:#x}", sig.data_size(),
+ raw_cmd.datasize);
linkedit_.write(sp.data(), sp.size());
@@ -1685,25 +1799,26 @@ ok_error_t Builder::build(CodeSignatureDir& sig) {
sig.original_data_.clear();
sig.original_data_.resize(sig.size_);
- memcpy(sig.original_data_.data(), &raw_cmd, sizeof(details::linkedit_data_command));
+ swap_endian_if_needed(raw_cmd);
+ memcpy(sig.original_data_.data(), &raw_cmd,
+ sizeof(details::linkedit_data_command));
return ok();
}
template<class T>
ok_error_t Builder::build(LinkerOptHint& opt) {
- details::linkedit_data_command raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(details::linkedit_data_command));
+ details::linkedit_data_command raw_cmd{};
span<const uint8_t> sp = opt.content();
- raw_cmd.cmd = static_cast<uint32_t>(opt.command());
- raw_cmd.cmdsize = static_cast<uint32_t>(opt.size());
- raw_cmd.dataoff = linkedit_offset_ + linkedit_.size();
- raw_cmd.datasize = sp.size();
+ raw_cmd.cmd = static_cast<uint32_t>(opt.command());
+ raw_cmd.cmdsize = static_cast<uint32_t>(opt.size());
+ raw_cmd.dataoff = linkedit_offset_ + linkedit_.size();
+ raw_cmd.datasize = sp.size();
- LIEF_DEBUG("LC_LINKER_OPTIMIZATION_HINT.offset: 0x{:06x} -> 0x{:x}",
+ LIEF_DEBUG("LC_LINKER_OPTIMIZATION_HINT.offset: {:#08x} -> {:#x}",
opt.data_offset(), raw_cmd.dataoff);
- LIEF_DEBUG("LC_LINKER_OPTIMIZATION_HINT.size: 0x{:06x} -> 0x{:x}",
+ LIEF_DEBUG("LC_LINKER_OPTIMIZATION_HINT.size: {:#08x} -> {:#x}",
opt.data_size(), raw_cmd.datasize);
linkedit_.write(sp.data(), sp.size());
@@ -1712,26 +1827,27 @@ ok_error_t Builder::build(LinkerOptHint& opt) {
opt.original_data_.clear();
opt.original_data_.resize(opt.size_);
- memcpy(opt.original_data_.data(), &raw_cmd, sizeof(details::linkedit_data_command));
+ swap_endian_if_needed(raw_cmd);
+ memcpy(opt.original_data_.data(), &raw_cmd,
+ sizeof(details::linkedit_data_command));
return ok();
}
template<class T>
ok_error_t Builder::build(AtomInfo& atom) {
- details::linkedit_data_command raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(details::linkedit_data_command));
+ details::linkedit_data_command raw_cmd{};
span<const uint8_t> sp = atom.content();
- raw_cmd.cmd = static_cast<uint32_t>(atom.command());
- raw_cmd.cmdsize = static_cast<uint32_t>(atom.size());
- raw_cmd.dataoff = linkedit_offset_ + linkedit_.size();
- raw_cmd.datasize = sp.size();
+ raw_cmd.cmd = static_cast<uint32_t>(atom.command());
+ raw_cmd.cmdsize = static_cast<uint32_t>(atom.size());
+ raw_cmd.dataoff = linkedit_offset_ + linkedit_.size();
+ raw_cmd.datasize = sp.size();
- LIEF_DEBUG("LC_ATOM_INFO.offset: 0x{:06x} -> 0x{:x}",
- atom.data_offset(), raw_cmd.dataoff);
- LIEF_DEBUG("LC_ATOM_INFO.size: 0x{:06x} -> 0x{:x}",
- atom.data_size(), raw_cmd.datasize);
+ LIEF_DEBUG("LC_ATOM_INFO.offset: {:#08x} -> {:#x}", atom.data_offset(),
+ raw_cmd.dataoff);
+ LIEF_DEBUG("LC_ATOM_INFO.size: {:#08x} -> {:#x}", atom.data_size(),
+ raw_cmd.datasize);
linkedit_.write(sp.data(), sp.size());
@@ -1739,127 +1855,213 @@ ok_error_t Builder::build(AtomInfo& atom) {
atom.original_data_.clear();
atom.original_data_.resize(atom.size_);
- memcpy(atom.original_data_.data(), &raw_cmd, sizeof(details::linkedit_data_command));
+ swap_endian_if_needed(raw_cmd);
+ memcpy(atom.original_data_.data(), &raw_cmd,
+ sizeof(details::linkedit_data_command));
return ok();
}
template<class T>
ok_error_t Builder::build(TwoLevelHints& two) {
- return make_error_code(lief_errors::not_implemented);
- details::twolevel_hints_command raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(details::linkedit_data_command));
+ LIEF_DEBUG("Build '{}'", to_string(two.command()));
+ details::twolevel_hints_command raw_cmd{};
const auto it_hints = two.hints();
- raw_cmd.cmd = static_cast<uint32_t>(two.command());
- raw_cmd.cmdsize = static_cast<uint32_t>(two.size());
+ raw_cmd.cmd = static_cast<uint32_t>(two.command());
+ raw_cmd.cmdsize = static_cast<uint32_t>(two.size());
- raw_cmd.offset = linkedit_offset_ + linkedit_.size();
- raw_cmd.nhints = it_hints.size();
+ raw_cmd.offset = linkedit_offset_ + linkedit_.size();
+ raw_cmd.nhints = it_hints.size();
- LIEF_DEBUG("LC_TWOLEVEL_HINTS.offset: 0x{:06x} -> 0x{:x}",
- two.offset(), raw_cmd.offset);
- LIEF_DEBUG("LC_TWOLEVEL_HINTS.nhints: 0x{:06x} -> 0x{:x}",
- two.original_nb_hints(), raw_cmd.nhints);
+ LIEF_DEBUG("LC_TWOLEVEL_HINTS.offset: {:#08x} -> {:#x}", two.offset(),
+ raw_cmd.offset);
+ LIEF_DEBUG("LC_TWOLEVEL_HINTS.nhints: {:#08x} -> {:#x}", two.original_nb_hints(),
+ raw_cmd.nhints);
for (uint32_t value : it_hints) {
linkedit_.write(value);
}
- two.size_ = sizeof(details::linkedit_data_command);
+ two.size_ = sizeof(details::twolevel_hints_command);
two.original_data_.clear();
two.original_data_.resize(two.size_);
- memcpy(two.original_data_.data(), &raw_cmd, sizeof(details::linkedit_data_command));
+ swap_endian_if_needed(raw_cmd);
+ memcpy(two.original_data_.data(), &raw_cmd,
+ sizeof(details::twolevel_hints_command));
return ok();
}
template<class T>
ok_error_t Builder::build(FunctionVariants& func_variants) {
LIEF_DEBUG("Build '{}'", to_string(func_variants.command()));
- details::linkedit_data_command raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(details::linkedit_data_command));
+ details::linkedit_data_command raw_cmd{};
raw_cmd.dataoff = linkedit_.size();
- span<const uint8_t> sp = func_variants.content();
+ // Reconstruct the payload following this layout:
+ //
+ // uint32_t tableCount
+ // uint32_t tableOffsets[tableCount] // payload-relative, points to 'kind'
+ // <runtime tables>
+ //
+ // where each runtime table is:
+ //
+ // uint32_t kind
+ // uint32_t count
+ // runtime_table_entry_t entries[count] // 8 bytes each (2 * uint32_t)
+ auto runtime_tables = func_variants.runtime_table();
+ const size_t nb_tables = runtime_tables.size();
+
+ linkedit_.write((uint32_t)nb_tables);
+
+ // The tables are stored right after the (tableCount + tableOffsets[]) header.
+ size_t table_offset = sizeof(uint32_t) * (1 + nb_tables);
+ for (const FunctionVariants::RuntimeTable& table : runtime_tables) {
+ linkedit_.write((uint32_t)table_offset);
+ // Each table is a 'kind' + 'count' header followed by its entries.
+ table_offset +=
+ 2 * sizeof(uint32_t) +
+ table.entries().size() * sizeof(details::runtime_table_entry_t);
+ }
+
+ for (const FunctionVariants::RuntimeTable& table : runtime_tables) {
+ (linkedit_)
+ .write((uint32_t)table.kind())
+ .write((uint32_t)table.entries().size());
+
+ for (const FunctionVariants::RuntimeTableEntry& entry : table.entries()) {
+ details::runtime_table_entry_t raw_entry{};
+ raw_entry.impl = entry.impl();
+ raw_entry.another_table = entry.another_table();
- // TODO(romain): We need to reconstruct the data in depth
- linkedit_.write(sp);
+ span<const uint8_t> flag_bit_nums = entry.flag_bit_nums();
+ std::copy(flag_bit_nums.begin(), flag_bit_nums.end(),
+ std::begin(raw_entry.flag_bit_nums));
- raw_cmd.cmd = static_cast<uint32_t>(func_variants.command());
- raw_cmd.cmdsize = static_cast<uint32_t>(func_variants.size());
- raw_cmd.datasize = linkedit_.size() - raw_cmd.dataoff;
- raw_cmd.dataoff += linkedit_offset_;
+ linkedit_.write(raw_entry);
+ }
+ }
+
+ // The payload is padded to the natural pointer size (as emitted by the linker)
+ linkedit_.align(sizeof(typename T::uint));
- LIEF_DEBUG("LC_FUNCTION_VARIANTS.offset: 0x{:06x} -> 0x{:x}",
+ raw_cmd.cmd = (uint32_t)func_variants.command();
+ raw_cmd.cmdsize = (uint32_t)func_variants.size();
+ raw_cmd.datasize = linkedit_.size() - raw_cmd.dataoff;
+ raw_cmd.dataoff += linkedit_offset_;
+
+ LIEF_DEBUG("LC_FUNCTION_VARIANTS.offset: {:#08x} -> {:#x}",
func_variants.data_offset(), raw_cmd.dataoff);
- LIEF_DEBUG("LC_FUNCTION_VARIANTS.size: 0x{:06x} -> 0x{:x}",
+ LIEF_DEBUG("LC_FUNCTION_VARIANTS.size: {:#08x} -> {:#x}",
func_variants.data_size(), raw_cmd.datasize);
func_variants.size_ = sizeof(details::linkedit_data_command);
func_variants.original_data_.clear();
func_variants.original_data_.resize(func_variants.size_);
- memcpy(func_variants.original_data_.data(), &raw_cmd, sizeof(details::linkedit_data_command));
+ swap_endian_if_needed(raw_cmd);
+ memcpy(func_variants.original_data_.data(), &raw_cmd,
+ sizeof(details::linkedit_data_command));
return ok();
}
template<class T>
ok_error_t Builder::build(FunctionVariantFixups& func_variant_fixups) {
LIEF_DEBUG("Build '{}'", to_string(func_variant_fixups.command()));
- details::linkedit_data_command raw_cmd;
- std::memset(&raw_cmd, 0, sizeof(details::linkedit_data_command));
+ details::linkedit_data_command raw_cmd{};
raw_cmd.dataoff = linkedit_.size();
- // TODO(romain): We need to reconstruct the data in depth
- linkedit_.write(func_variant_fixups.content());
+ for (const FunctionVariantFixups::Fixup& fixup : func_variant_fixups.fixups()) {
+ details::function_variant_fixup_t raw_fixup{};
+ raw_fixup.seg_offset = fixup.seg_offset();
+ raw_fixup.seg_index =
+ fixup.segment() != nullptr ? fixup.segment()->index() : fixup.seg_index();
+ raw_fixup.variant_index = fixup.variant_index();
+ raw_fixup.pac_auth = fixup.pac_auth();
+ raw_fixup.pac_address = fixup.pac_address();
+ raw_fixup.pac_key = fixup.pac_key();
+ raw_fixup.pac_diversity = fixup.pac_diversity();
+ linkedit_.write(raw_fixup);
+ }
linkedit_.align(sizeof(typename T::uint));
- raw_cmd.cmd = static_cast<uint32_t>(func_variant_fixups.command());
- raw_cmd.cmdsize = static_cast<uint32_t>(func_variant_fixups.size());
- raw_cmd.datasize = linkedit_.size() - raw_cmd.dataoff;
- raw_cmd.dataoff += linkedit_offset_;
+ raw_cmd.cmd = static_cast<uint32_t>(func_variant_fixups.command());
+ raw_cmd.cmdsize = static_cast<uint32_t>(func_variant_fixups.size());
+ raw_cmd.datasize = linkedit_.size() - raw_cmd.dataoff;
+ raw_cmd.dataoff += linkedit_offset_;
- LIEF_DEBUG("LC_FUNCTION_VARIANT_FIXUPS.offset: 0x{:06x} -> 0x{:x}",
+ LIEF_DEBUG("LC_FUNCTION_VARIANT_FIXUPS.offset: {:#08x} -> {:#x}",
func_variant_fixups.data_offset(), raw_cmd.dataoff);
- LIEF_DEBUG("LC_FUNCTION_VARIANT_FIXUPS.size: 0x{:06x} -> 0x{:x}",
+ LIEF_DEBUG("LC_FUNCTION_VARIANT_FIXUPS.size: {:#08x} -> {:#x}",
func_variant_fixups.data_size(), raw_cmd.datasize);
func_variant_fixups.size_ = sizeof(details::linkedit_data_command);
func_variant_fixups.original_data_.clear();
func_variant_fixups.original_data_.resize(func_variant_fixups.size_);
- memcpy(func_variant_fixups.original_data_.data(), &raw_cmd, sizeof(details::linkedit_data_command));
+ swap_endian_if_needed(raw_cmd);
+ memcpy(func_variant_fixups.original_data_.data(), &raw_cmd,
+ sizeof(details::linkedit_data_command));
+ return ok();
+}
+
+template<class T>
+ok_error_t Builder::build(LazyLoadDylibInfo& cmd) {
+ LIEF_DEBUG("Build '{}'", to_string(cmd.command()));
+
+ // TODO(romain): Currently, fixup addresses are not regenerated as fixup chains.
+ // This can cause an issue when a Binary::shift operation targets some of
+ // these fixup
+
+ details::linkedit_data_command raw_cmd{};
+ raw_cmd.dataoff = linkedit_.size();
+
+ cmd.serialize(linkedit_);
+ linkedit_.align(sizeof(typename T::uint));
+
+ raw_cmd.cmd = static_cast<uint32_t>(cmd.command());
+ raw_cmd.cmdsize = static_cast<uint32_t>(cmd.size());
+ raw_cmd.datasize = linkedit_.size() - raw_cmd.dataoff;
+ raw_cmd.dataoff += linkedit_offset_;
+
+ LIEF_DEBUG("LC_LAZY_LOAD_DYLIB_INFO.offset: {:#08x} -> {:#x}", cmd.data_offset(),
+ raw_cmd.dataoff);
+ LIEF_DEBUG("LC_LAZY_LOAD_DYLIB_INFO.size: {:#08x} -> {:#x}", cmd.data_size(),
+ raw_cmd.datasize);
+
+ cmd.size_ = sizeof(details::linkedit_data_command);
+ cmd.original_data_.clear();
+ cmd.original_data_.resize(cmd.size_);
+ swap_endian_if_needed(raw_cmd);
+ memcpy(cmd.original_data_.data(), &raw_cmd,
+ sizeof(details::linkedit_data_command));
return ok();
}
+
template<class MACHO_T>
ok_error_t Builder::build_header() {
using header_t = typename MACHO_T::header;
- header_t header;
- std::memset(&header, 0, sizeof(header_t));
+ header_t header{};
const Header& binary_header = binary_->header();
- header.magic = static_cast<uint32_t>(binary_header.magic());
- header.cputype = static_cast<uint32_t>(binary_header.cpu_type());
+ header.magic = static_cast<uint32_t>(binary_header.magic());
+ header.cputype = static_cast<uint32_t>(binary_header.cpu_type());
header.cpusubtype = static_cast<uint32_t>(binary_header.cpu_subtype());
- header.filetype = static_cast<uint32_t>(binary_header.file_type());
- header.ncmds = static_cast<uint32_t>(binary_header.nb_cmds());
+ header.filetype = static_cast<uint32_t>(binary_header.file_type());
+ header.ncmds = static_cast<uint32_t>(binary_header.nb_cmds());
header.sizeofcmds = static_cast<uint32_t>(binary_header.sizeof_cmds());
- header.flags = static_cast<uint32_t>(binary_header.flags());
+ header.flags = static_cast<uint32_t>(binary_header.flags());
if constexpr (std::is_same_v<header_t, details::mach_header_64>) {
header.reserved = static_cast<uint32_t>(binary_header.reserved());
}
- LIEF_DEBUG("Writing header at: 0 (size: 0x{:04x})", sizeof(header));
+ LIEF_DEBUG("Writing header at: 0 (size: {:#06x})", sizeof(header));
- raw_
- .seekp(0)
- .write(header);
+ raw_.seekp(0).write(header);
return ok();
-
-}
}
}
diff --git a/deps/LIEF/src/MachO/CMakeLists.txt b/deps/LIEF/src/MachO/CMakeLists.txt
index f48f328bc7a..27bb3eb0c03 100644
--- a/deps/LIEF/src/MachO/CMakeLists.txt
+++ b/deps/LIEF/src/MachO/CMakeLists.txt
@@ -38,6 +38,7 @@ target_sources(LIB_LIEF PRIVATE
FunctionVariantFixups.cpp
Header.cpp
IndirectBindingInfo.cpp
+ LazyLoadDylibInfo.cpp
LinkEdit.cpp
LinkerOptHint.cpp
LoadCommand.cpp
@@ -61,6 +62,7 @@ target_sources(LIB_LIEF PRIVATE
Symbol.cpp
SymbolCommand.cpp
ThreadCommand.cpp
+ ThreadLocalVariables.cpp
TrieNode.cpp
TwoLevelHints.cpp
UUIDCommand.cpp
@@ -77,4 +79,3 @@ target_sources(LIB_LIEF PRIVATE
if(LIEF_ENABLE_JSON)
target_sources(LIB_LIEF PRIVATE json.cpp)
endif()
-
diff --git a/deps/LIEF/src/MachO/ChainedBindingInfo.cpp b/deps/LIEF/src/MachO/ChainedBindingInfo.cpp
index 112a61ee98b..d2c6fa59e49 100644
--- a/deps/LIEF/src/MachO/ChainedBindingInfo.cpp
+++ b/deps/LIEF/src/MachO/ChainedBindingInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,34 +17,52 @@
#include "LIEF/MachO/ChainedBindingInfo.hpp"
#include "MachO/ChainedFixup.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
ChainedBindingInfo::ChainedBindingInfo(ChainedBindingInfo&&) noexcept = default;
-ChainedBindingInfo& ChainedBindingInfo::operator=(ChainedBindingInfo&&) noexcept = default;
+ChainedBindingInfo&
+ ChainedBindingInfo::operator=(ChainedBindingInfo&&) noexcept = default;
ChainedBindingInfo::ChainedBindingInfo(const ChainedBindingInfo& other) :
BindingInfo(other),
format_{other.format_},
ptr_format_{other.ptr_format_},
offset_{other.offset_},
- btypes_{other.btypes_}
-{
+ btypes_{other.btypes_} {
switch (btypes_) {
- case BIND_TYPES::ARM64E_AUTH_BIND: arm64_auth_bind_ = new details::dyld_chained_ptr_arm64e_auth_bind{*other.arm64_auth_bind_}; break;
- case BIND_TYPES::ARM64E_BIND: arm64_bind_ = new details::dyld_chained_ptr_arm64e_bind{*other.arm64_bind_}; break;
- case BIND_TYPES::ARM64E_BIND24: arm64_bind24_ = new details::dyld_chained_ptr_arm64e_bind24{*other.arm64_bind24_}; break;
- case BIND_TYPES::ARM64E_AUTH_BIND24: arm64_auth_bind24_ = new details::dyld_chained_ptr_arm64e_auth_bind24{*other.arm64_auth_bind24_}; break;
- case BIND_TYPES::PTR32_BIND: p32_bind_ = new details::dyld_chained_ptr_32_bind{*other.p32_bind_}; break;
- case BIND_TYPES::PTR64_BIND: p64_bind_ = new details::dyld_chained_ptr_64_bind{*other.p64_bind_}; break;
- case BIND_TYPES::UNKNOWN: {}
+ case BIND_TYPES::ARM64E_AUTH_BIND:
+ arm64_auth_bind_ =
+ new details::dyld_chained_ptr_arm64e_auth_bind{*other.arm64_auth_bind_};
+ break;
+ case BIND_TYPES::ARM64E_BIND:
+ arm64_bind_ = new details::dyld_chained_ptr_arm64e_bind{*other.arm64_bind_};
+ break;
+ case BIND_TYPES::ARM64E_BIND24:
+ arm64_bind24_ =
+ new details::dyld_chained_ptr_arm64e_bind24{*other.arm64_bind24_};
+ break;
+ case BIND_TYPES::ARM64E_AUTH_BIND24:
+ arm64_auth_bind24_ = new details::dyld_chained_ptr_arm64e_auth_bind24{
+ *other.arm64_auth_bind24_
+ };
+ break;
+ case BIND_TYPES::PTR32_BIND:
+ p32_bind_ = new details::dyld_chained_ptr_32_bind{*other.p32_bind_};
+ break;
+ case BIND_TYPES::PTR64_BIND:
+ p64_bind_ = new details::dyld_chained_ptr_64_bind{*other.p64_bind_};
+ break;
+ case BIND_TYPES::UNKNOWN:
+ {
+ }
}
}
ChainedBindingInfo::ChainedBindingInfo(DYLD_CHAINED_FORMAT fmt, bool is_weak) :
- format_{fmt}
-{
+ format_{fmt},
+ ptr_format_{DYLD_CHAINED_PTR_FORMAT::NONE} {
is_weak_import_ = is_weak;
}
@@ -52,17 +70,18 @@ ChainedBindingInfo::~ChainedBindingInfo() {
clear();
}
-ChainedBindingInfo& ChainedBindingInfo::operator=(ChainedBindingInfo other) {
- swap(other);
- return *this;
-}
+ChainedBindingInfo&
+ ChainedBindingInfo::operator=(const ChainedBindingInfo& other) {
+ if (this == &other) {
+ return *this;
+ }
-void ChainedBindingInfo::swap(ChainedBindingInfo& other) noexcept {
- BindingInfo::swap(other);
- std::swap(format_, other.format_);
- std::swap(ptr_format_, other.ptr_format_);
- std::swap(offset_, other.offset_);
- std::swap(btypes_, other.btypes_);
+ BindingInfo::operator=(other);
+ format_ = other.format_;
+ ptr_format_ = other.ptr_format_;
+ offset_ = other.offset_;
+ btypes_ = other.btypes_;
+ return *this;
}
void ChainedBindingInfo::accept(Visitor& visitor) const {
@@ -71,13 +90,15 @@ void ChainedBindingInfo::accept(Visitor& visitor) const {
uint64_t ChainedBindingInfo::sign_extended_addend() const {
switch (btypes_) {
- case BIND_TYPES::ARM64E_AUTH_BIND: return 0;
- case BIND_TYPES::ARM64E_BIND: return details::sign_extended_addend(*arm64_bind_);
- case BIND_TYPES::ARM64E_BIND24: return details::sign_extended_addend(*arm64_bind24_);
+ case BIND_TYPES::ARM64E_AUTH_BIND: return 0;
+ case BIND_TYPES::ARM64E_BIND:
+ return details::sign_extended_addend(*arm64_bind_);
+ case BIND_TYPES::ARM64E_BIND24:
+ return details::sign_extended_addend(*arm64_bind24_);
case BIND_TYPES::ARM64E_AUTH_BIND24: return 0;
- case BIND_TYPES::PTR32_BIND: return p32_bind_->addend;
- case BIND_TYPES::PTR64_BIND: return details::sign_extended_addend(*p64_bind_);
- case BIND_TYPES::UNKNOWN: return 0;
+ case BIND_TYPES::PTR32_BIND: return p32_bind_->addend;
+ case BIND_TYPES::PTR64_BIND: return details::sign_extended_addend(*p64_bind_);
+ case BIND_TYPES::UNKNOWN: return 0;
}
return 0;
}
@@ -89,7 +110,9 @@ void ChainedBindingInfo::set(const details::dyld_chained_ptr_arm64e_bind& bind)
arm64_bind_ = new details::dyld_chained_ptr_arm64e_bind(bind);
}
-void ChainedBindingInfo::set(const details::dyld_chained_ptr_arm64e_auth_bind& bind) {
+void ChainedBindingInfo::set(
+ const details::dyld_chained_ptr_arm64e_auth_bind& bind
+) {
clear();
btypes_ = BIND_TYPES::ARM64E_AUTH_BIND;
arm64_auth_bind_ = new details::dyld_chained_ptr_arm64e_auth_bind(bind);
@@ -101,7 +124,9 @@ void ChainedBindingInfo::set(const details::dyld_chained_ptr_arm64e_bind24& bind
arm64_bind24_ = new details::dyld_chained_ptr_arm64e_bind24(bind);
}
-void ChainedBindingInfo::set(const details::dyld_chained_ptr_arm64e_auth_bind24& bind) {
+void ChainedBindingInfo::set(
+ const details::dyld_chained_ptr_arm64e_auth_bind24& bind
+) {
clear();
btypes_ = BIND_TYPES::ARM64E_AUTH_BIND24;
arm64_auth_bind24_ = new details::dyld_chained_ptr_arm64e_auth_bind24(bind);
@@ -122,16 +147,17 @@ void ChainedBindingInfo::set(const details::dyld_chained_ptr_32_bind& bind) {
void ChainedBindingInfo::clear() {
switch (btypes_) {
- case BIND_TYPES::ARM64E_AUTH_BIND: delete arm64_auth_bind_; break;
- case BIND_TYPES::ARM64E_BIND: delete arm64_bind_; break;
- case BIND_TYPES::ARM64E_BIND24: delete arm64_bind24_; break;
+ case BIND_TYPES::ARM64E_AUTH_BIND: delete arm64_auth_bind_; break;
+ case BIND_TYPES::ARM64E_BIND: delete arm64_bind_; break;
+ case BIND_TYPES::ARM64E_BIND24: delete arm64_bind24_; break;
case BIND_TYPES::ARM64E_AUTH_BIND24: delete arm64_auth_bind24_; break;
- case BIND_TYPES::PTR32_BIND: delete p32_bind_; break;
- case BIND_TYPES::PTR64_BIND: delete p64_bind_; break;
- case BIND_TYPES::UNKNOWN: {}
+ case BIND_TYPES::PTR32_BIND: delete p32_bind_; break;
+ case BIND_TYPES::PTR64_BIND: delete p64_bind_; break;
+ case BIND_TYPES::UNKNOWN:
+ {
+ }
}
btypes_ = BIND_TYPES::UNKNOWN;
}
}
-}
diff --git a/deps/LIEF/src/MachO/ChainedBindingInfoList.cpp b/deps/LIEF/src/MachO/ChainedBindingInfoList.cpp
index 2bc3e1b650b..7bfd7cd9f41 100644
--- a/deps/LIEF/src/MachO/ChainedBindingInfoList.cpp
+++ b/deps/LIEF/src/MachO/ChainedBindingInfoList.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,23 +17,23 @@
#include "LIEF/MachO/ChainedBindingInfo.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
std::unique_ptr<ChainedBindingInfoList>
- ChainedBindingInfoList::create(const ChainedBindingInfo& other)
-{
- auto result = std::make_unique<ChainedBindingInfoList>(other.format(), other.is_weak_import());
- result->segment_ = const_cast<SegmentCommand*>(other.segment());
- result->symbol_ = const_cast<Symbol*>(other.symbol());
+ ChainedBindingInfoList::create(const ChainedBindingInfo& other) {
+ auto result = std::make_unique<ChainedBindingInfoList>(other.format(),
+ other.is_weak_import());
+ result->segment_ = const_cast<SegmentCommand*>(other.segment());
+ result->symbol_ = const_cast<Symbol*>(other.symbol());
result->library_ordinal_ = other.library_ordinal();
- result->addend_ = other.addend();
- result->library_ = const_cast<DylibCommand*>(other.library());
- result->address_ = other.address();
- result->ptr_format_ = other.ptr_format();
- result->offset_ = other.offset();
- result->btypes_ = other.btypes_;
- result->arm64_bind_ = other.arm64_bind_;
+ result->addend_ = other.addend();
+ result->library_ = const_cast<DylibCommand*>(other.library());
+ result->address_ = other.address();
+ result->ptr_format_ = other.ptr_format();
+ result->offset_ = other.offset();
+ result->btypes_ = other.btypes_;
+ result->arm64_bind_ = other.arm64_bind_;
return result;
}
@@ -43,4 +43,3 @@ void ChainedBindingInfoList::swap(ChainedBindingInfoList& other) noexcept {
}
}
-}
diff --git a/deps/LIEF/src/MachO/ChainedBindingInfoList.hpp b/deps/LIEF/src/MachO/ChainedBindingInfoList.hpp
index ed0b28eda81..3e74a77d750 100644
--- a/deps/LIEF/src/MachO/ChainedBindingInfoList.hpp
+++ b/deps/LIEF/src/MachO/ChainedBindingInfoList.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,8 +20,8 @@
#include <memory>
#include "LIEF/MachO/ChainedBindingInfo.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
class BinaryParser;
class Builder;
class DyldChainedFixupsCreator;
@@ -34,18 +34,18 @@ class ChainedBindingInfoList : public ChainedBindingInfo {
public:
static std::unique_ptr<ChainedBindingInfoList>
- create(const ChainedBindingInfo& other);
+ create(const ChainedBindingInfo& other);
ChainedBindingInfoList() = delete;
explicit ChainedBindingInfoList(DYLD_CHAINED_FORMAT fmt, bool is_weak) :
- ChainedBindingInfo(fmt, is_weak)
- {}
+ ChainedBindingInfo(fmt, is_weak) {}
- ChainedBindingInfoList& operator=(ChainedBindingInfoList other) = delete;
+ ChainedBindingInfoList& operator=(const ChainedBindingInfoList& other) = delete;
ChainedBindingInfoList(const ChainedBindingInfoList& other) = delete;
ChainedBindingInfoList(ChainedBindingInfoList&&) noexcept = default;
+ ChainedBindingInfoList& operator=(ChainedBindingInfoList&& other) = default;
void swap(ChainedBindingInfoList& other) noexcept;
@@ -60,5 +60,5 @@ class ChainedBindingInfoList : public ChainedBindingInfo {
};
}
-}
+
#endif
diff --git a/deps/LIEF/src/MachO/ChainedFixup.cpp b/deps/LIEF/src/MachO/ChainedFixup.cpp
index ee57b260e0f..f10dc85a4f4 100644
--- a/deps/LIEF/src/MachO/ChainedFixup.cpp
+++ b/deps/LIEF/src/MachO/ChainedFixup.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,9 +16,8 @@
#include "LIEF/MachO/DyldChainedFormat.hpp"
#include "MachO/ChainedFixup.hpp"
-namespace LIEF {
-namespace MachO {
-namespace details {
+
+namespace LIEF::MachO::details {
uint64_t sign_extended_addend(const dyld_chained_ptr_arm64e_bind24& bind) {
const uint64_t addend19 = bind.addend;
@@ -38,7 +37,7 @@ uint64_t sign_extended_addend(const dyld_chained_ptr_arm64e_bind& bind) {
uint64_t sign_extended_addend(const dyld_chained_ptr_64_bind& bind) {
uint64_t addend27 = bind.addend;
- uint64_t top8 = addend27 & 0x00007F80000ULL;
+ uint64_t top8 = addend27 & 0x00007F80000ULL;
uint64_t bottom19 = addend27 & 0x0000007FFFFULL;
return (top8 << 13) | (((bottom19 << 37) >> 37) & 0x00FFFFFFFFFFFFFF);
}
@@ -69,9 +68,10 @@ void dyld_chained_ptr_generic64::pack_target(uint64_t value) {
}
bool chained_fixup::is_rebase(uint16_t ptr_format) const {
- /* This is a *modified* mirror of `MachOLoaded.cpp:ChainedFixupPointerOnDisk::isRebase`
- * As we don't need to compute targetRuntimeOffset, we removed the code sections
- * that referenced this variable
+ /* This is a *modified* mirror of
+ * `MachOLoaded.cpp:ChainedFixupPointerOnDisk::isRebase` As we don't need to
+ * compute targetRuntimeOffset, we removed the code sections that referenced this
+ * variable
*/
const auto ptr_fmt = static_cast<DYLD_CHAINED_PTR_FORMAT>(ptr_format);
@@ -81,47 +81,41 @@ bool chained_fixup::is_rebase(uint16_t ptr_format) const {
case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND:
case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24:
case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_FIRMWARE:
- {
- if (arm64e.bind.bind > 0) {
- return false;
- }
-
- if (arm64e.auth_rebase.auth > 0) {
- return true;
- }
+ {
+ if (arm64e.bind.bind > 0) {
+ return false;
+ }
+ if (arm64e.auth_rebase.auth > 0) {
return true;
- break;
}
+
+ return true;
+ break;
+ }
case DYLD_CHAINED_PTR_FORMAT::PTR_64:
case DYLD_CHAINED_PTR_FORMAT::PTR_64_OFFSET:
- {
- return generic64.bind.bind == 0;
- }
+ {
+ return generic64.bind.bind == 0;
+ }
case DYLD_CHAINED_PTR_FORMAT::PTR_32:
- {
- return generic32.bind.bind == 0;
- }
+ {
+ return generic32.bind.bind == 0;
+ }
case DYLD_CHAINED_PTR_FORMAT::PTR_64_KERNEL_CACHE:
case DYLD_CHAINED_PTR_FORMAT::PTR_X86_64_KERNEL_CACHE:
- {
- return true;
- }
case DYLD_CHAINED_PTR_FORMAT::PTR_32_FIRMWARE:
- {
- return true;
- }
- case LIEF::MachO::DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SEGMENTED:
+ {
return true;
+ }
+ case LIEF::MachO::DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SEGMENTED: return true;
default:
- {
- LIEF_ERR("Unknown pointer format: 0x{:04x}", ptr_format);
- std::abort();
- }
+ {
+ LIEF_ERR("Unknown pointer format: {:#06x}", ptr_format);
+ return false;
+ }
}
}
}
-}
-}
diff --git a/deps/LIEF/src/MachO/ChainedFixup.hpp b/deps/LIEF/src/MachO/ChainedFixup.hpp
index c061f666ea7..eda7bc754bf 100644
--- a/deps/LIEF/src/MachO/ChainedFixup.hpp
+++ b/deps/LIEF/src/MachO/ChainedFixup.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,242 +17,208 @@
#include <cstdint>
#include <type_traits>
-namespace LIEF {
-namespace MachO {
-namespace details {
+
+namespace LIEF::MachO::details {
// The following structures are taken from include/mach-o/fixup-chains.h
// header of the LC_DYLD_CHAINED_FIXUPS payload (pointer by dataoff)
struct dyld_chained_fixups_header {
- uint32_t fixups_version; // 0
- uint32_t starts_offset; // offset of dyld_chained_starts_in_image in chain_data
- uint32_t imports_offset; // offset of imports table in chain_data
- uint32_t symbols_offset; // offset of symbol strings in chain_data
- uint32_t imports_count; // number of imported symbol names
- uint32_t imports_format; // DYLD_CHAINED_IMPORT*
- uint32_t symbols_format; // 0 => uncompressed, 1 => zlib compressed
+ uint32_t fixups_version; // 0
+ uint32_t starts_offset; // offset of dyld_chained_starts_in_image in chain_data
+ uint32_t imports_offset; // offset of imports table in chain_data
+ uint32_t symbols_offset; // offset of symbol strings in chain_data
+ uint32_t imports_count; // number of imported symbol names
+ uint32_t imports_format; // DYLD_CHAINED_IMPORT*
+ uint32_t symbols_format; // 0 => uncompressed, 1 => zlib compressed
};
// This struct is pointed by starts_offset in LC_DYLD_CHAINED_FIXUPS payload
struct dyld_chained_starts_in_image {
uint32_t seg_count;
// NOTE(romain): Removed as it will be read entry per entry by the Stream
- // uint32_t seg_info_offset[1]; // each entry is offset into this struct for that segment
- // followed by pool of dyld_chain_starts_in_segment data
+ // uint32_t seg_info_offset[1]; // each entry is offset into this struct for
+ // that segment followed by pool of dyld_chain_starts_in_segment data
};
// This struct is embedded in dyld_chain_starts_in_image
// and passed down to the kernel for page-in linking
-#pragma pack(push,1) // Prevent alignment
+#pragma pack(push, 1) // Prevent alignment
struct dyld_chained_starts_in_segment {
- uint32_t size; // size of this (amount kernel needs to copy)
- uint16_t page_size; // 0x1000 or 0x4000
- uint16_t pointer_format; // DYLD_CHAINED_PTR_*
- uint64_t segment_offset; // offset in memory to start of segment
- uint32_t max_valid_pointer; // for 32-bit OS, any value beyond this is not a pointer
- uint16_t page_count; // how many pages are in array
+ uint32_t size; // size of this (amount kernel needs to copy)
+ uint16_t page_size; // 0x1000 or 0x4000
+ uint16_t pointer_format; // DYLD_CHAINED_PTR_*
+ uint64_t segment_offset; // offset in memory to start of segment
+ uint32_t
+ max_valid_pointer; // for 32-bit OS, any value beyond this is not a pointer
+ uint16_t page_count; // how many pages are in array
// NOTE(romain): Removed as it will be read entry per entry by the Stream
- // uint16_t page_start[1]; // each entry is offset in each page of first element in chain
- // or DYLD_CHAINED_PTR_START_NONE if no fixups on page
- // uint16_t chain_starts[1]; // some 32-bit formats may require multiple starts per page.
- // for those, if high bit is set in page_starts[], then it
- // is index into chain_starts[] which is a list of starts
- // the last of which has the high bit set
+ // uint16_t page_start[1]; // each entry is offset in each page of first
+ // element in chain or DYLD_CHAINED_PTR_START_NONE if no fixups on page
+ // uint16_t chain_starts[1]; // some 32-bit formats may require multiple
+ // starts per page. for those, if high bit is set in page_starts[], then it is
+ // index into chain_starts[] which is a list of starts the last of which has the
+ // high bit set
};
#pragma pack(pop)
-static_assert(sizeof(dyld_chained_starts_in_segment) == 22, "dyld_chained_starts_in_segment: Wrong size");
+static_assert(sizeof(dyld_chained_starts_in_segment) == 22,
+ "dyld_chained_starts_in_segment: Wrong size");
// DYLD_CHAINED_PTR_ARM64E
-struct dyld_chained_ptr_arm64e_rebase
-{
- uint64_t target : 43,
- high8 : 8,
- next : 11, // 4 or 8-byte stide
- bind : 1, // == 0
- auth : 1; // == 0
+struct dyld_chained_ptr_arm64e_rebase {
+ uint64_t target : 43, high8 : 8,
+ next : 11, // 4 or 8-byte stide
+ bind : 1, // == 0
+ auth : 1; // == 0
};
// DYLD_CHAINED_PTR_ARM64E
-struct dyld_chained_ptr_arm64e_bind
-{
- uint64_t ordinal : 16,
- zero : 16,
- addend : 19, // +/-256K
- next : 11, // 4 or 8-byte stide
- bind : 1, // == 1
- auth : 1; // == 0
+struct dyld_chained_ptr_arm64e_bind {
+ uint64_t ordinal : 16, zero : 16,
+ addend : 19, // +/-256K
+ next : 11, // 4 or 8-byte stide
+ bind : 1, // == 1
+ auth : 1; // == 0
};
// DYLD_CHAINED_PTR_ARM64E
-struct dyld_chained_ptr_arm64e_auth_rebase
-{
- uint64_t target : 32, // runtimeOffset
- diversity : 16,
- addr_div : 1,
- key : 2,
- next : 11, // 4 or 8-byte stide
- bind : 1, // == 0
- auth : 1; // == 1
+struct dyld_chained_ptr_arm64e_auth_rebase {
+ uint64_t target : 32, // runtimeOffset
+ diversity : 16, addr_div : 1, key : 2,
+ next : 11, // 4 or 8-byte stide
+ bind : 1, // == 0
+ auth : 1; // == 1
};
// DYLD_CHAINED_PTR_ARM64E
-struct dyld_chained_ptr_arm64e_auth_bind
-{
- uint64_t ordinal : 16,
- zero : 16,
- diversity : 16,
- addr_div : 1,
- key : 2,
- next : 11, // 4 or 8-byte stide
- bind : 1, // == 1
- auth : 1; // == 1
+struct dyld_chained_ptr_arm64e_auth_bind {
+ uint64_t ordinal : 16, zero : 16, diversity : 16, addr_div : 1, key : 2,
+ next : 11, // 4 or 8-byte stide
+ bind : 1, // == 1
+ auth : 1; // == 1
};
// DYLD_CHAINED_PTR_64/DYLD_CHAINED_PTR_64_OFFSET
-struct dyld_chained_ptr_64_rebase
-{
- uint64_t target : 36, // 64GB max image size (DYLD_CHAINED_PTR_64 => vmAddr, DYLD_CHAINED_PTR_64_OFFSET => runtimeOffset)
- high8 : 8, // top 8 bits set to this (DYLD_CHAINED_PTR_64 => after slide added, DYLD_CHAINED_PTR_64_OFFSET => before slide added)
- reserved : 7, // all zeros
- next : 12, // 4-byte stride
- bind : 1; // == 0
+struct dyld_chained_ptr_64_rebase {
+ uint64_t target : 36, // 64GB max image size (DYLD_CHAINED_PTR_64 => vmAddr,
+ // DYLD_CHAINED_PTR_64_OFFSET => runtimeOffset)
+ high8 : 8, // top 8 bits set to this (DYLD_CHAINED_PTR_64 => after slide
+ // added, DYLD_CHAINED_PTR_64_OFFSET => before slide added)
+ reserved : 7, // all zeros
+ next : 12, // 4-byte stride
+ bind : 1; // == 0
};
// DYLD_CHAINED_PTR_ARM64E_USERLAND24
-struct dyld_chained_ptr_arm64e_bind24
-{
- uint64_t ordinal : 24,
- zero : 8,
- addend : 19, // +/-256K
- next : 11, // 8-byte stide
- bind : 1, // == 1
- auth : 1; // == 0
+struct dyld_chained_ptr_arm64e_bind24 {
+ uint64_t ordinal : 24, zero : 8,
+ addend : 19, // +/-256K
+ next : 11, // 8-byte stide
+ bind : 1, // == 1
+ auth : 1; // == 0
};
// DYLD_CHAINED_PTR_ARM64E_USERLAND24
-struct dyld_chained_ptr_arm64e_auth_bind24
-{
- uint64_t ordinal : 24,
- zero : 8,
- diversity : 16,
- addr_div : 1,
- key : 2,
- next : 11, // 8-byte stide
- bind : 1, // == 1
- auth : 1; // == 1
+struct dyld_chained_ptr_arm64e_auth_bind24 {
+ uint64_t ordinal : 24, zero : 8, diversity : 16, addr_div : 1, key : 2,
+ next : 11, // 8-byte stide
+ bind : 1, // == 1
+ auth : 1; // == 1
};
// DYLD_CHAINED_PTR_64
-struct dyld_chained_ptr_64_bind
-{
- uint64_t ordinal : 24,
- addend : 8, // 0 thru 255
- reserved : 19, // all zeros
- next : 12, // 4-byte stride
- bind : 1; // == 1
+struct dyld_chained_ptr_64_bind {
+ uint64_t ordinal : 24,
+ addend : 8, // 0 thru 255
+ reserved : 19, // all zeros
+ next : 12, // 4-byte stride
+ bind : 1; // == 1
};
// DYLD_CHAINED_PTR_64_KERNEL_CACHE, DYLD_CHAINED_PTR_X86_64_KERNEL_CACHE
-struct dyld_chained_ptr_64_kernel_cache_rebase
-{
- uint64_t target : 30, // basePointers[cacheLevel] + target
- cache_level : 2, // what level of cache to bind to (indexes a mach_header array)
- diversity : 16,
- addr_div : 1,
- key : 2,
- next : 12, // 1 or 4-byte stide
- is_auth : 1; // 0 -> not authenticated. 1 -> authenticated
+struct dyld_chained_ptr_64_kernel_cache_rebase {
+ uint64_t target : 30, // basePointers[cacheLevel] + target
+ cache_level
+ : 2, // what level of cache to bind to (indexes a mach_header array)
+ diversity : 16, addr_div : 1, key : 2,
+ next : 12, // 1 or 4-byte stide
+ is_auth : 1; // 0 -> not authenticated. 1 -> authenticated
};
// DYLD_CHAINED_PTR_32
-// Note: for DYLD_CHAINED_PTR_32 some non-pointer values are co-opted into the chain
-// as out of range rebases. If an entry in the chain is > max_valid_pointer, then it
-// is not a pointer. To restore the value, subtract off the bias, which is
+// Note: for DYLD_CHAINED_PTR_32 some non-pointer values are co-opted into the
+// chain as out of range rebases. If an entry in the chain is > max_valid_pointer,
+// then it is not a pointer. To restore the value, subtract off the bias, which is
// (64MB+max_valid_pointer)/2.
-struct dyld_chained_ptr_32_rebase
-{
- uint32_t target : 26, // vmaddr, 64MB max image size
- next : 5, // 4-byte stride
- bind : 1; // == 0
+struct dyld_chained_ptr_32_rebase {
+ uint32_t target : 26, // vmaddr, 64MB max image size
+ next : 5, // 4-byte stride
+ bind : 1; // == 0
};
// DYLD_CHAINED_PTR_32
-struct dyld_chained_ptr_32_bind
-{
- uint32_t ordinal : 20,
- addend : 6, // 0 thru 63
- next : 5, // 4-byte stride
- bind : 1; // == 1
+struct dyld_chained_ptr_32_bind {
+ uint32_t ordinal : 20,
+ addend : 6, // 0 thru 63
+ next : 5, // 4-byte stride
+ bind : 1; // == 1
};
// DYLD_CHAINED_PTR_32_CACHE
-struct dyld_chained_ptr_32_cache_rebase
-{
- uint32_t target : 30, // 1GB max dyld cache TEXT and DATA
- next : 2; // 4-byte stride
+struct dyld_chained_ptr_32_cache_rebase {
+ uint32_t target : 30, // 1GB max dyld cache TEXT and DATA
+ next : 2; // 4-byte stride
};
// DYLD_CHAINED_PTR_32_FIRMWARE
-struct dyld_chained_ptr_32_firmware_rebase
-{
- uint32_t target : 26, // 64MB max firmware TEXT and DATA
- next : 6; // 4-byte stride
+struct dyld_chained_ptr_32_firmware_rebase {
+ uint32_t target : 26, // 64MB max firmware TEXT and DATA
+ next : 6; // 4-byte stride
};
// DYLD_CHAINED_PTR_ARM64E_SEGMENTED
-struct dyld_chained_ptr_arm64e_segmented_rebase
-{
- uint32_t target_seg_offset : 28, // offset in segment
- target_seg_index : 4; // index into segment address table
- uint32_t padding : 19,
- next : 12, // 4-byte stide
- auth : 1; // == 0
+struct dyld_chained_ptr_arm64e_segmented_rebase {
+ uint32_t target_seg_offset : 28, // offset in segment
+ target_seg_index : 4; // index into segment address table
+ uint32_t padding : 19,
+ next : 12, // 4-byte stide
+ auth : 1; // == 0
};
// DYLD_CHAINED_PTR_ARM64E_SEGMENTED
-struct dyld_chained_ptr_arm64e_auth_segmented_rebase
-{
- uint32_t target_seg_offset : 28, // offset in segment
- target_seg_index : 4; // index into segment address table
- uint32_t diversity : 16,
- addr_div : 1,
- key : 2,
- next : 12, // 4-byte stide
- auth : 1; // == 1
+struct dyld_chained_ptr_arm64e_auth_segmented_rebase {
+ uint32_t target_seg_offset : 28, // offset in segment
+ target_seg_index : 4; // index into segment address table
+ uint32_t diversity : 16, addr_div : 1, key : 2,
+ next : 12, // 4-byte stide
+ auth : 1; // == 1
};
struct dyld_chained_import {
- uint32_t lib_ordinal : 8,
- weak_import : 1,
- name_offset : 23;
+ uint32_t lib_ordinal : 8, weak_import : 1, name_offset : 23;
};
// DYLD_CHAINED_IMPORT_ADDEND
struct dyld_chained_import_addend {
- uint32_t lib_ordinal : 8,
- weak_import : 1,
- name_offset : 23;
- int32_t addend;
+ uint32_t lib_ordinal : 8, weak_import : 1, name_offset : 23;
+ int32_t addend;
};
// DYLD_CHAINED_IMPORT_ADDEND64
struct dyld_chained_import_addend64 {
- uint64_t lib_ordinal : 16,
- weak_import : 1,
- reserved : 15,
- name_offset : 32;
+ uint64_t lib_ordinal : 16, weak_import : 1, reserved : 15, name_offset : 32;
uint64_t addend;
};
template<class T>
inline void pack_target(T& rebase, uint64_t value) {
- static_assert(std::is_same<T,dyld_chained_ptr_arm64e_rebase>::value ||
- std::is_same<T,dyld_chained_ptr_64_rebase>::value, "Wrong type");
- rebase.high8 = value >> 56;
+ static_assert(std::is_same_v<T, dyld_chained_ptr_arm64e_rebase> ||
+ std::is_same_v<T, dyld_chained_ptr_64_rebase>,
+ "Wrong type");
+ rebase.high8 = value >> 56;
rebase.target = value & 0x7FFFFFFFFFF;
}
@@ -261,12 +227,12 @@ uint64_t sign_extended_addend(const dyld_chained_ptr_arm64e_bind24& bind);
uint64_t sign_extended_addend(const dyld_chained_ptr_64_bind& bind);
union dyld_chained_ptr_arm64e {
- dyld_chained_ptr_arm64e_auth_rebase auth_rebase;
- dyld_chained_ptr_arm64e_auth_bind auth_bind;
- dyld_chained_ptr_arm64e_rebase rebase;
- dyld_chained_ptr_arm64e_bind bind;
- dyld_chained_ptr_arm64e_bind24 bind24;
- dyld_chained_ptr_arm64e_auth_bind24 auth_bind24;
+ dyld_chained_ptr_arm64e_auth_rebase auth_rebase;
+ dyld_chained_ptr_arm64e_auth_bind auth_bind;
+ dyld_chained_ptr_arm64e_rebase rebase;
+ dyld_chained_ptr_arm64e_bind bind;
+ dyld_chained_ptr_arm64e_bind24 bind24;
+ dyld_chained_ptr_arm64e_auth_bind24 auth_bind24;
uint64_t sign_extended_addend() const;
uint64_t unpack_target() const;
@@ -274,13 +240,13 @@ union dyld_chained_ptr_arm64e {
};
union dyld_chained_ptr_arm64e_segmented {
- dyld_chained_ptr_arm64e_segmented_rebase seg_rebase;
+ dyld_chained_ptr_arm64e_segmented_rebase seg_rebase;
dyld_chained_ptr_arm64e_auth_segmented_rebase auth_seg_rebase;
};
union dyld_chained_ptr_generic64 {
dyld_chained_ptr_64_rebase rebase;
- dyld_chained_ptr_64_bind bind;
+ dyld_chained_ptr_64_bind bind;
uint64_t sign_extended_addend() const;
uint64_t unpack_target() const;
@@ -289,14 +255,14 @@ union dyld_chained_ptr_generic64 {
union dyld_chained_ptr_generic32 {
dyld_chained_ptr_32_rebase rebase;
- dyld_chained_ptr_32_bind bind;
+ dyld_chained_ptr_32_bind bind;
};
struct dyld_chained_ptr_kernel64 : dyld_chained_ptr_64_kernel_cache_rebase {};
struct dyld_chained_ptr_firm32 : dyld_chained_ptr_32_firmware_rebase {};
union chained_fixup {
- dyld_chained_ptr_arm64e arm64e;
+ dyld_chained_ptr_arm64e arm64e;
dyld_chained_ptr_generic64 generic64;
dyld_chained_ptr_generic32 generic32;
@@ -304,6 +270,6 @@ union chained_fixup {
};
} // Namespace details
-} // Namespace MachO
-} // Namespace LIEF
+// Namespace MachO
+// Namespace LIEF
#endif
diff --git a/deps/LIEF/src/MachO/ChainedPointerAnalysis.cpp b/deps/LIEF/src/MachO/ChainedPointerAnalysis.cpp
index 2f12e080c16..48f439a5d91 100644
--- a/deps/LIEF/src/MachO/ChainedPointerAnalysis.cpp
+++ b/deps/LIEF/src/MachO/ChainedPointerAnalysis.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,143 +20,152 @@
#include <spdlog/fmt/fmt.h>
namespace LIEF::MachO {
-std::ostream& operator<<(std::ostream& os,
- const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_rebase_t& chain)
-{
- os << fmt::format("target: 0x{:010x} high8: 0x{:02x}, next: 0x{:03x}, "
+std::ostream& operator<<(
+ std::ostream& os,
+ const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_rebase_t& chain
+) {
+ os << fmt::format("target: {:#012x} high8: {:#04x}, next: {:#05x}, "
"bind: {}, auth: {}",
- chain.target, chain.high8, chain.next, (bool)chain.bind, (bool)chain.auth
- );
+ chain.target, chain.high8, chain.next, (bool)chain.bind,
+ (bool)chain.auth);
return os;
}
-std::ostream& operator<<(std::ostream& os,
- const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_bind_t& chain)
-{
- os << fmt::format("ordinal: 0x{:04x} zero: 0x{:04x}, addend: 0x{:05x}, "
- "next: 0x{:03x} bind: {}, auth: {}",
- chain.ordinal, chain.zero, chain.addend, chain.next,
- (bool)chain.bind, (bool)chain.auth
- );
+std::ostream& operator<<(
+ std::ostream& os,
+ const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_bind_t& chain
+) {
+ os << fmt::format("ordinal: {:#06x} zero: {:#06x}, addend: {:#07x}, "
+ "next: {:#05x} bind: {}, auth: {}",
+ chain.ordinal, chain.zero, chain.addend, chain.next,
+ (bool)chain.bind, (bool)chain.auth);
return os;
}
-std::ostream& operator<<(std::ostream& os,
- const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_rebase_t& chain)
-{
- os << fmt::format("target: 0x{:08x} diversity: 0x{:04x}, addr_div: {}, "
- "key: 0x{:x} next: 0x{:03x} bind: {}, auth: {}",
- chain.target, chain.diversity, chain.addr_div, chain.key, chain.next,
- (bool)chain.bind, (bool)chain.auth
- );
+std::ostream& operator<<(
+ std::ostream& os,
+ const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_rebase_t& chain
+) {
+ os << fmt::format("target: {:#010x} diversity: {:#06x}, addr_div: {}, "
+ "key: {:#x} next: {:#05x} bind: {}, auth: {}",
+ chain.target, chain.diversity, chain.addr_div, chain.key,
+ chain.next, (bool)chain.bind, (bool)chain.auth);
return os;
}
-std::ostream& operator<<(std::ostream& os,
- const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_bind_t& chain)
-{
- os << fmt::format("ordinal: 0x{:04x} zero: 0x{:04x}, diversity: 0x{:04x}, "
- "addr_div: {} key: 0x{:x} next: 0x{:03x} bind: {}, auth: {}",
- chain.ordinal, chain.zero, chain.diversity, chain.addr_div, chain.key,
- chain.next, (bool)chain.bind, (bool)chain.auth
- );
+std::ostream& operator<<(
+ std::ostream& os,
+ const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_bind_t& chain
+) {
+ os << fmt::format("ordinal: {:#06x} zero: {:#06x}, diversity: {:#06x}, "
+ "addr_div: {} key: {:#x} next: {:#05x} bind: {}, auth: {}",
+ chain.ordinal, chain.zero, chain.diversity, chain.addr_div,
+ chain.key, chain.next, (bool)chain.bind, (bool)chain.auth);
return os;
}
-std::ostream& operator<<(std::ostream& os,
- const ChainedPointerAnalysis::dyld_chained_ptr_64_rebase_t& chain)
-{
- os << fmt::format("target: 0x{:010x} high8: 0x{:02x}, reserved: 0x{:02x}, "
- "next: 0x{:04x} bind: {}",
- chain.target, chain.high8, chain.reserved, chain.next, (bool)chain.bind);
+std::ostream&
+ operator<<(std::ostream& os,
+ const ChainedPointerAnalysis::dyld_chained_ptr_64_rebase_t& chain) {
+ os << fmt::format("target: {:#012x} high8: {:#04x}, reserved: {:#04x}, "
+ "next: {:#06x} bind: {}",
+ chain.target, chain.high8, chain.reserved, chain.next,
+ (bool)chain.bind);
return os;
}
-std::ostream& operator<<(std::ostream& os,
- const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_bind24_t& chain)
-{
-
- os << fmt::format("ordinal: 0x{:06x} zero: 0x{:02x}, addend: 0x{:05x}, "
- "next: 0x{:03x} bind: {}, auth: {}",
- chain.ordinal, chain.zero, chain.addend, chain.next, (bool)chain.bind,
- (bool)chain.auth);
+std::ostream& operator<<(
+ std::ostream& os,
+ const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_bind24_t& chain
+) {
+
+ os << fmt::format("ordinal: {:#08x} zero: {:#04x}, addend: {:#07x}, "
+ "next: {:#05x} bind: {}, auth: {}",
+ chain.ordinal, chain.zero, chain.addend, chain.next,
+ (bool)chain.bind, (bool)chain.auth);
return os;
}
-std::ostream& operator<<(std::ostream& os,
- const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_bind24_t& chain)
-{
- os << fmt::format("ordinal: 0x{:06x} zero: 0x{:02x}, diversity: 0x{:04x}, "
- "addr_div: {}, key: 0x{:x}, next: 0x{:03x} bind: {}, auth: {}",
- chain.ordinal, chain.zero, chain.diversity, chain.addr_div, chain.key,
- chain.next, (bool)chain.bind, (bool)chain.auth);
+std::ostream& operator<<(
+ std::ostream& os,
+ const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_bind24_t& chain
+) {
+ os << fmt::format("ordinal: {:#08x} zero: {:#04x}, diversity: {:#06x}, "
+ "addr_div: {}, key: {:#x}, next: {:#05x} bind: {}, auth: {}",
+ chain.ordinal, chain.zero, chain.diversity, chain.addr_div,
+ chain.key, chain.next, (bool)chain.bind, (bool)chain.auth);
return os;
}
-std::ostream& operator<<(std::ostream& os,
- const ChainedPointerAnalysis::dyld_chained_ptr_64_bind_t& chain)
-{
- os << fmt::format("ordinal: 0x{:06x} addend: 0x{:04x}, reserved: 0x{:05x}, "
- "next: 0x{:04x} bind: {}",
- chain.ordinal, chain.addend, chain.reserved, chain.next, (bool)chain.bind);
+std::ostream&
+ operator<<(std::ostream& os,
+ const ChainedPointerAnalysis::dyld_chained_ptr_64_bind_t& chain) {
+ os << fmt::format("ordinal: {:#08x} addend: {:#06x}, reserved: {:#07x}, "
+ "next: {:#06x} bind: {}",
+ chain.ordinal, chain.addend, chain.reserved, chain.next,
+ (bool)chain.bind);
return os;
}
-std::ostream& operator<<(std::ostream& os,
- const ChainedPointerAnalysis::dyld_chained_ptr_64_kernel_cache_rebase_t& chain)
-{
- os << fmt::format("target: 0x{:08x} cache_level: {}, diversity: 0x{:04x}, "
- "addr_div: {} key: {} next: 0x{:03x}, auth: {}",
- chain.target, chain.cache_level, chain.diversity, chain.addr_div,
- chain.key, chain.next, (bool)chain.is_auth);
+std::ostream& operator<<(
+ std::ostream& os,
+ const ChainedPointerAnalysis::dyld_chained_ptr_64_kernel_cache_rebase_t& chain
+) {
+ os << fmt::format("target: {:#010x} cache_level: {}, diversity: {:#06x}, "
+ "addr_div: {} key: {} next: {:#05x}, auth: {}",
+ chain.target, chain.cache_level, chain.diversity,
+ chain.addr_div, chain.key, chain.next, (bool)chain.is_auth);
return os;
}
-std::ostream& operator<<(std::ostream& os,
- const ChainedPointerAnalysis::dyld_chained_ptr_32_rebase_t& chain)
-{
- os << fmt::format("target: 0x{:08x} next: 0x{:02x}, bind: {}",
- chain.target, chain.next, (bool)chain.bind);
+std::ostream&
+ operator<<(std::ostream& os,
+ const ChainedPointerAnalysis::dyld_chained_ptr_32_rebase_t& chain) {
+ os << fmt::format("target: {:#010x} next: {:#04x}, bind: {}", chain.target,
+ chain.next, (bool)chain.bind);
return os;
}
-std::ostream& operator<<(std::ostream& os,
- const ChainedPointerAnalysis::dyld_chained_ptr_32_bind_t& chain)
-{
- os << fmt::format("ordinal: 0x{:05x} addend: 0x{:02x}, next: 0x{:x}, bind: {}",
- chain.ordinal, chain.addend, chain.next, (bool)chain.bind);
+std::ostream&
+ operator<<(std::ostream& os,
+ const ChainedPointerAnalysis::dyld_chained_ptr_32_bind_t& chain) {
+ os << fmt::format("ordinal: {:#07x} addend: {:#04x}, next: {:#x}, bind: {}",
+ chain.ordinal, chain.addend, chain.next, (bool)chain.bind);
return os;
}
-std::ostream& operator<<(std::ostream& os,
- const ChainedPointerAnalysis::dyld_chained_ptr_32_cache_rebase_t& chain)
-{
- os << fmt::format("target: 0x{:06x}, next: 0x{:x}",
- chain.target, chain.next);
+std::ostream& operator<<(
+ std::ostream& os,
+ const ChainedPointerAnalysis::dyld_chained_ptr_32_cache_rebase_t& chain
+) {
+ os << fmt::format("target: {:#08x}, next: {:#x}", chain.target, chain.next);
return os;
}
-std::ostream& operator<<(std::ostream& os,
- const ChainedPointerAnalysis::dyld_chained_ptr_32_firmware_rebase_t& chain)
-{
- os << fmt::format("target: 0x{:06x}, next: 0x{:x}",
- chain.target, chain.next);
+std::ostream& operator<<(
+ std::ostream& os,
+ const ChainedPointerAnalysis::dyld_chained_ptr_32_firmware_rebase_t& chain
+) {
+ os << fmt::format("target: {:#08x}, next: {:#x}", chain.target, chain.next);
return os;
}
-std::ostream& operator<<(std::ostream& os,
- const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_segmented_rebase_t& chain)
-{
- os << fmt::format("segment offset: 0x{:06x}, segment index: {}, next: 0x{:x}",
- chain.target_seg_offset, chain.target_seg_index, chain.next);
+std::ostream& operator<<(
+ std::ostream& os,
+ const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_segmented_rebase_t& chain
+) {
+ os << fmt::format("segment offset: {:#08x}, segment index: {}, next: {:#x}",
+ chain.target_seg_offset, chain.target_seg_index, chain.next);
return os;
}
-std::ostream& operator<<(std::ostream& os,
- const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_segmented_rebase_t& chain)
-{
- os << fmt::format("segment offset: 0x{:06x}, segment index: {}, next: 0x{:x}, "
+std::ostream& operator<<(
+ std::ostream& os,
+ const ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_segmented_rebase_t&
+ chain
+) {
+ os << fmt::format("segment offset: {:#08x}, segment index: {}, next: {:#x}, "
"addr_div: {} key: {} diversity: {}, auth: {}",
- chain.target_seg_offset, chain.target_seg_index, chain.next,
- chain.addr_div, chain.key, chain.diversity, chain.auth);
+ chain.target_seg_offset, chain.target_seg_index, chain.next,
+ chain.addr_div, chain.key, chain.diversity, chain.auth);
return os;
}
@@ -166,108 +175,100 @@ ChainedPointerAnalysis::union_pointer_t create_impl(const T& value) {
out.raw = 0;
out.type = ChainedPointerAnalysis::PTR_TYPE::UNKNOWN;
- if constexpr (std::is_same_v<T,
- ChainedPointerAnalysis::dyld_chained_ptr_arm64e_rebase_t>)
+ if constexpr (std::is_same_v<
+ T, ChainedPointerAnalysis::dyld_chained_ptr_arm64e_rebase_t
+ >)
{
out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_REBASE;
out.arm64e_rebase = value;
- }
-
- else if constexpr (std::is_same_v<T,
- ChainedPointerAnalysis::dyld_chained_ptr_arm64e_bind_t>)
+ } else if constexpr (std::is_same_v<T, ChainedPointerAnalysis::
+ dyld_chained_ptr_arm64e_bind_t>)
{
out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND;
out.arm64e_bind = value;
- }
-
- else if constexpr (std::is_same_v<T,
- ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_rebase_t>)
+ } else if constexpr (std::is_same_v<T,
+ ChainedPointerAnalysis::
+ dyld_chained_ptr_arm64e_auth_rebase_t>)
{
- out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_REBASE;
+ out.type =
+ ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_REBASE;
out.arm64e_auth_rebase = value;
- }
-
- else if constexpr (std::is_same_v<T,
- ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_bind_t>)
+ } else if constexpr (std::is_same_v<T, ChainedPointerAnalysis::
+ dyld_chained_ptr_arm64e_auth_bind_t>)
{
out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_BIND;
out.arm64e_auth_bind = value;
- }
-
- else if constexpr (std::is_same_v<T,
- ChainedPointerAnalysis::dyld_chained_ptr_64_rebase_t>)
+ } else if constexpr (std::is_same_v<
+ T, ChainedPointerAnalysis::dyld_chained_ptr_64_rebase_t
+ >)
{
out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_64_REBASE;
out.ptr_64_rebase = value;
- }
-
- else if constexpr (std::is_same_v<T,
- ChainedPointerAnalysis::dyld_chained_ptr_arm64e_bind24_t>)
+ } else if constexpr (std::is_same_v<T, ChainedPointerAnalysis::
+ dyld_chained_ptr_arm64e_bind24_t>)
{
out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND24;
out.arm64e_bind24 = value;
- }
-
- else if constexpr (std::is_same_v<T,
- ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_bind24_t>)
+ } else if constexpr (std::is_same_v<T,
+ ChainedPointerAnalysis::
+ dyld_chained_ptr_arm64e_auth_bind24_t>)
{
- out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_BIND24;
+ out.type =
+ ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_BIND24;
out.arm64e_auth_bind24 = value;
- }
-
- else if constexpr (std::is_same_v<T,
- ChainedPointerAnalysis::dyld_chained_ptr_64_bind_t>)
+ } else if constexpr (std::is_same_v<
+ T, ChainedPointerAnalysis::dyld_chained_ptr_64_bind_t
+ >)
{
out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_64_BIND;
out.ptr_64_bind = value;
- }
-
- else if constexpr (std::is_same_v<T,
- ChainedPointerAnalysis::dyld_chained_ptr_64_kernel_cache_rebase_t>)
+ } else if constexpr (std::is_same_v<
+ T, ChainedPointerAnalysis::
+ dyld_chained_ptr_64_kernel_cache_rebase_t
+ >)
{
- out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_64_KERNEL_CACHE_REBASE;
+ out.type =
+ ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_64_KERNEL_CACHE_REBASE;
out.ptr_64_kernel_cache_rebase = value;
- }
-
- else if constexpr (std::is_same_v<T,
- ChainedPointerAnalysis::dyld_chained_ptr_32_rebase_t>)
+ } else if constexpr (std::is_same_v<
+ T, ChainedPointerAnalysis::dyld_chained_ptr_32_rebase_t
+ >)
{
out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_32_REBASE;
out.ptr_32_rebase = value;
- }
-
- else if constexpr (std::is_same_v<T,
- ChainedPointerAnalysis::dyld_chained_ptr_32_bind_t>)
+ } else if constexpr (std::is_same_v<
+ T, ChainedPointerAnalysis::dyld_chained_ptr_32_bind_t
+ >)
{
out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_32_BIND;
out.ptr_32_bind = value;
- }
-
- else if constexpr (std::is_same_v<T,
- ChainedPointerAnalysis::dyld_chained_ptr_32_cache_rebase_t>)
+ } else if constexpr (std::is_same_v<T, ChainedPointerAnalysis::
+ dyld_chained_ptr_32_cache_rebase_t>)
{
out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_32_CACHE_REBASE;
out.ptr_32_cache_rebase = value;
- }
-
- else if constexpr (std::is_same_v<T,
- ChainedPointerAnalysis::dyld_chained_ptr_32_firmware_rebase_t>)
+ } else if constexpr (std::is_same_v<T,
+ ChainedPointerAnalysis::
+ dyld_chained_ptr_32_firmware_rebase_t>)
{
- out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_32_FIRMWARE_REBASE;
+ out.type =
+ ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_32_FIRMWARE_REBASE;
out.ptr_32_firmware_rebase = value;
- }
-
- else if constexpr (std::is_same_v<T,
- ChainedPointerAnalysis::dyld_chained_ptr_arm64e_segmented_rebase_t>)
+ } else if constexpr (std::is_same_v<
+ T, ChainedPointerAnalysis::
+ dyld_chained_ptr_arm64e_segmented_rebase_t
+ >)
{
- out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_SEGMENTED_REBASE;
+ out.type =
+ ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_SEGMENTED_REBASE;
out.ptr_arm64e_segmented_rebase = value;
- }
-
- else if constexpr (std::is_same_v<T,
- ChainedPointerAnalysis::dyld_chained_ptr_arm64e_auth_segmented_rebase_t>)
+ } else if constexpr (std::is_same_v<
+ T, ChainedPointerAnalysis::
+ dyld_chained_ptr_arm64e_auth_segmented_rebase_t
+ >)
{
- out.type = ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_SEGMENTED_REBASE;
+ out.type = ChainedPointerAnalysis::PTR_TYPE::
+ DYLD_CHAINED_PTR_ARM64E_AUTH_SEGMENTED_REBASE;
out.ptr_arm64e_auth_segmented_rebase = value;
}
@@ -275,61 +276,62 @@ ChainedPointerAnalysis::union_pointer_t create_impl(const T& value) {
}
-ChainedPointerAnalysis::union_pointer_t ChainedPointerAnalysis::get_as(DYLD_CHAINED_PTR_FORMAT fmt) const {
+ChainedPointerAnalysis::union_pointer_t
+ ChainedPointerAnalysis::get_as(DYLD_CHAINED_PTR_FORMAT fmt) const {
switch (fmt) {
case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E:
case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_KERNEL:
case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND:
case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24:
+ {
+ if ((bool)dyld_chained_ptr_arm64e_auth_rebase().auth &&
+ (bool)dyld_chained_ptr_arm64e_auth_rebase().bind)
{
- if ((bool)dyld_chained_ptr_arm64e_auth_rebase().auth &&
- (bool)dyld_chained_ptr_arm64e_auth_rebase().bind)
- {
- if (fmt == DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24) {
- return create_impl(dyld_chained_ptr_arm64e_auth_bind24());
- }
- return create_impl(dyld_chained_ptr_arm64e_auth_bind());
- }
-
- if ( dyld_chained_ptr_arm64e_auth_rebase().auth &&
- !dyld_chained_ptr_arm64e_auth_rebase().bind)
- {
- return create_impl(dyld_chained_ptr_arm64e_auth_rebase());
- }
- if (!dyld_chained_ptr_arm64e_auth_rebase().auth &&
- dyld_chained_ptr_arm64e_auth_rebase().bind)
- {
- if (fmt == DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24) {
- return create_impl(dyld_chained_ptr_arm64e_bind24());
- }
- return create_impl(dyld_chained_ptr_arm64e_bind());
+ if (fmt == DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24) {
+ return create_impl(dyld_chained_ptr_arm64e_auth_bind24());
}
+ return create_impl(dyld_chained_ptr_arm64e_auth_bind());
+ }
- if (!dyld_chained_ptr_arm64e_auth_rebase().auth &&
- !dyld_chained_ptr_arm64e_auth_rebase().bind)
- {
- return create_impl(dyld_chained_ptr_arm64e_rebase());
+ if (dyld_chained_ptr_arm64e_auth_rebase().auth &&
+ !dyld_chained_ptr_arm64e_auth_rebase().bind)
+ {
+ return create_impl(dyld_chained_ptr_arm64e_auth_rebase());
+ }
+ if (!dyld_chained_ptr_arm64e_auth_rebase().auth &&
+ dyld_chained_ptr_arm64e_auth_rebase().bind)
+ {
+ if (fmt == DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24) {
+ return create_impl(dyld_chained_ptr_arm64e_bind24());
}
+ return create_impl(dyld_chained_ptr_arm64e_bind());
+ }
- return {};
+ if (!dyld_chained_ptr_arm64e_auth_rebase().auth &&
+ !dyld_chained_ptr_arm64e_auth_rebase().bind)
+ {
+ return create_impl(dyld_chained_ptr_arm64e_rebase());
}
+ return {};
+ }
+
case DYLD_CHAINED_PTR_FORMAT::PTR_64:
case DYLD_CHAINED_PTR_FORMAT::PTR_64_OFFSET:
- {
- if (dyld_chained_ptr_64_rebase().bind) {
- return create_impl(dyld_chained_ptr_64_bind());
- }
- return create_impl(dyld_chained_ptr_64_rebase());
+ {
+ if (dyld_chained_ptr_64_rebase().bind) {
+ return create_impl(dyld_chained_ptr_64_bind());
}
+ return create_impl(dyld_chained_ptr_64_rebase());
+ }
case DYLD_CHAINED_PTR_FORMAT::PTR_32:
- {
- if (dyld_chained_ptr_32_bind().bind) {
- return create_impl(dyld_chained_ptr_32_bind());
- }
- return create_impl(dyld_chained_ptr_32_rebase());
+ {
+ if (dyld_chained_ptr_32_bind().bind) {
+ return create_impl(dyld_chained_ptr_32_bind());
}
+ return create_impl(dyld_chained_ptr_32_rebase());
+ }
case DYLD_CHAINED_PTR_FORMAT::PTR_32_CACHE:
return create_impl(dyld_chained_ptr_32_cache_rebase());
@@ -341,43 +343,34 @@ ChainedPointerAnalysis::union_pointer_t ChainedPointerAnalysis::get_as(DYLD_CHAI
return create_impl(dyld_chained_ptr_64_kernel_cache_rebase());
case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SEGMENTED:
- {
- if (dyld_chained_ptr_arm64e_segmented_rebase().auth) {
- return create_impl(dyld_chained_ptr_arm64e_auth_segmented_rebase());
- }
- return create_impl(dyld_chained_ptr_arm64e_segmented_rebase());
+ {
+ if (dyld_chained_ptr_arm64e_segmented_rebase().auth) {
+ return create_impl(dyld_chained_ptr_arm64e_auth_segmented_rebase());
}
+ return create_impl(dyld_chained_ptr_arm64e_segmented_rebase());
+ }
- default:
- return {};
+ default: return {};
}
return {};
}
uint32_t ChainedPointerAnalysis::union_pointer_t::next() const {
switch (type) {
- case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_REBASE:
- return arm64e_rebase.next;
- case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND:
- return arm64e_bind.next;
+ case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_REBASE: return arm64e_rebase.next;
+ case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND: return arm64e_bind.next;
case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_REBASE:
return arm64e_auth_rebase.next;
- case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_BIND:
- return arm64e_auth_bind.next;
- case PTR_TYPE::DYLD_CHAINED_PTR_64_REBASE:
- return ptr_64_rebase.next;
- case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND24:
- return arm64e_bind24.next;
+ case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_BIND: return arm64e_auth_bind.next;
+ case PTR_TYPE::DYLD_CHAINED_PTR_64_REBASE: return ptr_64_rebase.next;
+ case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND24: return arm64e_bind24.next;
case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_BIND24:
return arm64e_auth_bind24.next;
- case PTR_TYPE::DYLD_CHAINED_PTR_64_BIND:
- return ptr_64_bind.next;
+ case PTR_TYPE::DYLD_CHAINED_PTR_64_BIND: return ptr_64_bind.next;
case PTR_TYPE::DYLD_CHAINED_PTR_64_KERNEL_CACHE_REBASE:
return ptr_64_kernel_cache_rebase.next;
- case PTR_TYPE::DYLD_CHAINED_PTR_32_REBASE:
- return ptr_32_rebase.next;
- case PTR_TYPE::DYLD_CHAINED_PTR_32_BIND:
- return ptr_32_bind.next;
+ case PTR_TYPE::DYLD_CHAINED_PTR_32_REBASE: return ptr_32_rebase.next;
+ case PTR_TYPE::DYLD_CHAINED_PTR_32_BIND: return ptr_32_bind.next;
case PTR_TYPE::DYLD_CHAINED_PTR_32_CACHE_REBASE:
return ptr_32_cache_rebase.next;
case PTR_TYPE::DYLD_CHAINED_PTR_32_FIRMWARE_REBASE:
@@ -386,26 +379,21 @@ uint32_t ChainedPointerAnalysis::union_pointer_t::next() const {
return ptr_arm64e_segmented_rebase.next;
case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_SEGMENTED_REBASE:
return ptr_arm64e_auth_segmented_rebase.next;
- case PTR_TYPE::UNKNOWN:
- return 0;
+ case PTR_TYPE::UNKNOWN: return 0;
}
return 0;
}
result<uint32_t> ChainedPointerAnalysis::union_pointer_t::ordinal() const {
switch (type) {
- case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND:
- return arm64e_bind.ordinal;
+ case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND: return arm64e_bind.ordinal;
case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_BIND:
return arm64e_auth_bind.ordinal;
- case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND24:
- return arm64e_bind24.ordinal;
+ case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND24: return arm64e_bind24.ordinal;
case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_BIND24:
return arm64e_auth_bind24.ordinal;
- case PTR_TYPE::DYLD_CHAINED_PTR_64_BIND:
- return ptr_64_bind.ordinal;
- case PTR_TYPE::DYLD_CHAINED_PTR_32_BIND:
- return ptr_32_bind.ordinal;
+ case PTR_TYPE::DYLD_CHAINED_PTR_64_BIND: return ptr_64_bind.ordinal;
+ case PTR_TYPE::DYLD_CHAINED_PTR_32_BIND: return ptr_32_bind.ordinal;
case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_REBASE:
case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_REBASE:
case PTR_TYPE::DYLD_CHAINED_PTR_64_REBASE:
@@ -415,24 +403,19 @@ result<uint32_t> ChainedPointerAnalysis::union_pointer_t::ordinal() const {
case PTR_TYPE::DYLD_CHAINED_PTR_32_CACHE_REBASE:
case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_SEGMENTED_REBASE:
case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_SEGMENTED_REBASE:
- case PTR_TYPE::UNKNOWN:
- return make_error_code(lief_errors::not_found);
+ case PTR_TYPE::UNKNOWN: return make_error_code(lief_errors::not_found);
}
return make_error_code(lief_errors::not_found);
}
bool ChainedPointerAnalysis::union_pointer_t::is_auth() const {
switch (type) {
- case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_REBASE:
- return arm64e_rebase.auth;
- case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND:
- return arm64e_bind.auth;
+ case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_REBASE: return arm64e_rebase.auth;
+ case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND: return arm64e_bind.auth;
case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_REBASE:
return arm64e_auth_rebase.auth;
- case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_BIND:
- return arm64e_auth_bind.auth;
- case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND24:
- return arm64e_bind24.auth;
+ case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_BIND: return arm64e_auth_bind.auth;
+ case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND24: return arm64e_bind24.auth;
case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_BIND24:
return arm64e_auth_bind24.auth;
case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_SEGMENTED_REBASE:
@@ -446,8 +429,7 @@ bool ChainedPointerAnalysis::union_pointer_t::is_auth() const {
case PTR_TYPE::DYLD_CHAINED_PTR_32_BIND:
case PTR_TYPE::DYLD_CHAINED_PTR_32_CACHE_REBASE:
case PTR_TYPE::DYLD_CHAINED_PTR_32_FIRMWARE_REBASE:
- case PTR_TYPE::UNKNOWN:
- return false;
+ case PTR_TYPE::UNKNOWN: return false;
}
return false;
}
@@ -462,8 +444,7 @@ result<uint64_t> ChainedPointerAnalysis::union_pointer_t::target() const {
return ptr_64_rebase.unpack_target();
case PTR_TYPE::DYLD_CHAINED_PTR_64_KERNEL_CACHE_REBASE:
return ptr_64_kernel_cache_rebase.target;
- case PTR_TYPE::DYLD_CHAINED_PTR_32_REBASE:
- return ptr_32_rebase.target;
+ case PTR_TYPE::DYLD_CHAINED_PTR_32_REBASE: return ptr_32_rebase.target;
case PTR_TYPE::DYLD_CHAINED_PTR_32_CACHE_REBASE:
return ptr_32_cache_rebase.target;
case PTR_TYPE::DYLD_CHAINED_PTR_32_FIRMWARE_REBASE:
@@ -478,15 +459,13 @@ result<uint64_t> ChainedPointerAnalysis::union_pointer_t::target() const {
case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_BIND:
case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND24:
case PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_BIND:
- case PTR_TYPE::UNKNOWN:
- return make_error_code(lief_errors::not_found);
+ case PTR_TYPE::UNKNOWN: return make_error_code(lief_errors::not_found);
}
return make_error_code(lief_errors::not_found);
}
std::ostream& operator<<(std::ostream& os,
- const ChainedPointerAnalysis::union_pointer_t& ptr)
-{
+ const ChainedPointerAnalysis::union_pointer_t& ptr) {
switch (ptr.type) {
case ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_REBASE:
os << ptr.arm64e_rebase;
@@ -527,30 +506,31 @@ std::ostream& operator<<(std::ostream& os,
case ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_32_FIRMWARE_REBASE:
os << ptr.ptr_32_firmware_rebase;
break;
- case ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_SEGMENTED_REBASE:
+ case ChainedPointerAnalysis::PTR_TYPE::
+ DYLD_CHAINED_PTR_ARM64E_SEGMENTED_REBASE:
os << ptr.ptr_arm64e_segmented_rebase;
break;
- case ChainedPointerAnalysis::PTR_TYPE::DYLD_CHAINED_PTR_ARM64E_AUTH_SEGMENTED_REBASE:
+ case ChainedPointerAnalysis::PTR_TYPE::
+ DYLD_CHAINED_PTR_ARM64E_AUTH_SEGMENTED_REBASE:
os << ptr.ptr_arm64e_auth_segmented_rebase;
break;
- case ChainedPointerAnalysis::PTR_TYPE::UNKNOWN:
- break;
+ case ChainedPointerAnalysis::PTR_TYPE::UNKNOWN: break;
}
return os;
}
uint64_t ChainedPointerAnalysis::walk_chain(
BinaryStream& stream, DYLD_CHAINED_PTR_FORMAT format,
- const std::function<int(uint64_t, const union_pointer_t& ptr)>& callback)
-{
+ const std::function<int(uint64_t, const union_pointer_t& ptr)>& callback
+) {
const size_t ptr_sizeof = ChainedPointerAnalysis::ptr_size(format);
const size_t stride = ChainedPointerAnalysis::stride(format);
assert(ptr_sizeof == 8 || ptr_sizeof == 4);
const uint64_t start_pos = stream.pos();
- while (1) {
+ while (true) {
uint64_t value = ptr_sizeof == sizeof(uint64_t) ?
- stream.peek<uint64_t>().value_or(0) :
- stream.peek<uint32_t>().value_or(0);
+ stream.peek<uint64_t>().value_or(0) :
+ stream.peek<uint32_t>().value_or(0);
if (value == 0) {
break;
}
diff --git a/deps/LIEF/src/MachO/CodeSignature.cpp b/deps/LIEF/src/MachO/CodeSignature.cpp
index 5ef1071d25c..f1bf86234d2 100644
--- a/deps/LIEF/src/MachO/CodeSignature.cpp
+++ b/deps/LIEF/src/MachO/CodeSignature.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,14 +19,13 @@
#include "LIEF/MachO/CodeSignature.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
CodeSignature::CodeSignature(const details::linkedit_data_command& cmd) :
LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
data_offset_{cmd.dataoff},
- data_size_{cmd.datasize}
-{}
+ data_size_{cmd.datasize} {}
void CodeSignature::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -34,10 +33,8 @@ void CodeSignature::accept(Visitor& visitor) const {
std::ostream& CodeSignature::print(std::ostream& os) const {
LoadCommand::print(os) << '\n';
- os << fmt::format("offset=0x{:06x}, size=0x{:06x}",
- data_offset(), data_size());
+ os << fmt::format("offset={:#08x}, size={:#08x}", data_offset(), data_size());
return os;
}
}
-}
diff --git a/deps/LIEF/src/MachO/CodeSignatureDir.cpp b/deps/LIEF/src/MachO/CodeSignatureDir.cpp
index d64cd4c4ad7..6ab23fb2747 100644
--- a/deps/LIEF/src/MachO/CodeSignatureDir.cpp
+++ b/deps/LIEF/src/MachO/CodeSignatureDir.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,14 +20,13 @@
#include "LIEF/MachO/CodeSignatureDir.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
CodeSignatureDir::CodeSignatureDir(const details::linkedit_data_command& cmd) :
LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
data_offset_{cmd.dataoff},
- data_size_{cmd.datasize}
-{}
+ data_size_{cmd.datasize} {}
void CodeSignatureDir::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -35,11 +34,9 @@ void CodeSignatureDir::accept(Visitor& visitor) const {
std::ostream& CodeSignatureDir::print(std::ostream& os) const {
LoadCommand::print(os) << '\n';
- os << fmt::format("offset=0x{:06x}, size=0x{:06x}",
- data_offset(), data_size());
+ os << fmt::format("offset={:#08x}, size={:#08x}", data_offset(), data_size());
return os;
}
}
-}
diff --git a/deps/LIEF/src/MachO/DataCodeEntry.cpp b/deps/LIEF/src/MachO/DataCodeEntry.cpp
index adcc48363d9..af5963dd4c5 100644
--- a/deps/LIEF/src/MachO/DataCodeEntry.cpp
+++ b/deps/LIEF/src/MachO/DataCodeEntry.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,36 +21,31 @@
#include "frozen.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
DataCodeEntry::DataCodeEntry(const details::data_in_code_entry& entry) :
offset_{entry.offset},
length_{entry.length},
- type_{static_cast<TYPES>(entry.kind)}
-{}
+ type_{static_cast<TYPES>(entry.kind)} {}
void DataCodeEntry::accept(Visitor& visitor) const {
visitor.visit(*this);
}
std::ostream& operator<<(std::ostream& os, const DataCodeEntry& entry) {
- os << fmt::format("{}: offset=0x{:06x}, size=0x{:x}",
- to_string(entry.type()), entry.offset(), entry.length());
+ os << fmt::format("{}: offset={:#08x}, size={:#x}", to_string(entry.type()),
+ entry.offset(), entry.length());
return os;
}
const char* to_string(DataCodeEntry::TYPES e) {
- #define ENTRY(X) std::pair(DataCodeEntry::TYPES::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNKNOWN),
- ENTRY(DATA),
- ENTRY(JUMP_TABLE_8),
- ENTRY(JUMP_TABLE_16),
- ENTRY(JUMP_TABLE_32),
- ENTRY(ABS_JUMP_TABLE_32),
+#define ENTRY(X) std::pair(DataCodeEntry::TYPES::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(UNKNOWN), ENTRY(DATA), ENTRY(JUMP_TABLE_8),
+ ENTRY(JUMP_TABLE_16), ENTRY(JUMP_TABLE_32), ENTRY(ABS_JUMP_TABLE_32),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -59,4 +54,3 @@ const char* to_string(DataCodeEntry::TYPES e) {
}
}
-}
diff --git a/deps/LIEF/src/MachO/DataInCode.cpp b/deps/LIEF/src/MachO/DataInCode.cpp
index 811f676420c..2225bf93252 100644
--- a/deps/LIEF/src/MachO/DataInCode.cpp
+++ b/deps/LIEF/src/MachO/DataInCode.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,14 +20,13 @@
#include "LIEF/MachO/DataInCode.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
DataInCode::DataInCode(const details::linkedit_data_command& cmd) :
LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
data_offset_{cmd.dataoff},
- data_size_{cmd.datasize}
-{}
+ data_size_{cmd.datasize} {}
void DataInCode::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -35,10 +34,8 @@ void DataInCode::accept(Visitor& visitor) const {
std::ostream& DataInCode::print(std::ostream& os) const {
LoadCommand::print(os) << '\n';
- os << fmt::format("offset=0x{:06x}, size=0x{:06x}",
- data_offset(), data_size());
+ os << fmt::format("offset={:#08x}, size={:#08x}", data_offset(), data_size());
return os;
}
}
-}
diff --git a/deps/LIEF/src/MachO/DyldBindingInfo.cpp b/deps/LIEF/src/MachO/DyldBindingInfo.cpp
index 56bb1ddd1e1..136ae4dd71d 100644
--- a/deps/LIEF/src/MachO/DyldBindingInfo.cpp
+++ b/deps/LIEF/src/MachO/DyldBindingInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,29 +17,28 @@
#include "LIEF/Visitor.hpp"
#include "LIEF/MachO/DyldBindingInfo.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
DyldBindingInfo::DyldBindingInfo(CLASS cls, TYPE type, uint64_t address,
- int64_t addend, int32_t oridnal, bool is_weak, bool is_non_weak_definition,
- uint64_t offset) :
+ int64_t addend, int32_t oridnal, bool is_weak,
+ bool is_non_weak_definition, uint64_t offset) :
class_{cls},
binding_type_{type},
is_non_weak_definition_{is_non_weak_definition},
- offset_{offset}
-{
+ offset_{offset} {
library_ordinal_ = oridnal;
- addend_ = addend;
- is_weak_import_ = is_weak;
- address_ = address;
+ addend_ = addend;
+ is_weak_import_ = is_weak;
+ address_ = address;
}
void DyldBindingInfo::swap(DyldBindingInfo& other) noexcept {
BindingInfo::swap(other);
- std::swap(class_, other.class_);
- std::swap(binding_type_, other.binding_type_);
- std::swap(is_non_weak_definition_, other.is_non_weak_definition_);
- std::swap(offset_, other.offset_);
+ std::swap(class_, other.class_);
+ std::swap(binding_type_, other.binding_type_);
+ std::swap(is_non_weak_definition_, other.is_non_weak_definition_);
+ std::swap(offset_, other.offset_);
}
void DyldBindingInfo::accept(Visitor& visitor) const {
@@ -47,14 +46,14 @@ void DyldBindingInfo::accept(Visitor& visitor) const {
}
const char* to_string(DyldBindingInfo::CLASS e) {
- #define ENTRY(X) std::pair(DyldBindingInfo::CLASS::X, #X)
- STRING_MAP enums2str {
- ENTRY(WEAK),
- ENTRY(LAZY),
- ENTRY(STANDARD),
- ENTRY(THREADED),
+#define ENTRY(X) std::pair(DyldBindingInfo::CLASS::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(WEAK),
+ ENTRY(LAZY),
+ ENTRY(STANDARD),
+ ENTRY(THREADED),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
}
@@ -62,13 +61,13 @@ const char* to_string(DyldBindingInfo::CLASS e) {
}
const char* to_string(DyldBindingInfo::TYPE e) {
- #define ENTRY(X) std::pair(DyldBindingInfo::TYPE::X, #X)
- STRING_MAP enums2str {
- ENTRY(POINTER),
- ENTRY(TEXT_ABSOLUTE32),
- ENTRY(TEXT_PCREL32),
+#define ENTRY(X) std::pair(DyldBindingInfo::TYPE::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(POINTER),
+ ENTRY(TEXT_ABSOLUTE32),
+ ENTRY(TEXT_PCREL32),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
}
@@ -76,4 +75,3 @@ const char* to_string(DyldBindingInfo::TYPE e) {
}
}
-}
diff --git a/deps/LIEF/src/MachO/DyldChainedFixups.cpp b/deps/LIEF/src/MachO/DyldChainedFixups.cpp
index a47a3e07b2a..c2bfb93c36b 100644
--- a/deps/LIEF/src/MachO/DyldChainedFixups.cpp
+++ b/deps/LIEF/src/MachO/DyldChainedFixups.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,8 +26,8 @@
#include "MachO/ChainedFixup.hpp"
#include "MachO/ChainedBindingInfoList.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
DyldChainedFixups::~DyldChainedFixups() = default;
DyldChainedFixups::DyldChainedFixups() = default;
@@ -42,24 +42,24 @@ DyldChainedFixups& DyldChainedFixups::operator=(const DyldChainedFixups& other)
DyldChainedFixups::DyldChainedFixups(const DyldChainedFixups& other) :
LoadCommand::LoadCommand(other),
data_offset_{other.data_offset_},
- data_size_{other.data_size_}
-{}
+ data_size_{other.data_size_} {}
DyldChainedFixups::DyldChainedFixups(const details::linkedit_data_command& cmd) :
LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
data_offset_{cmd.dataoff},
- data_size_{cmd.datasize}
-{}
-
-
-void DyldChainedFixups::update_with(const details::dyld_chained_fixups_header& header) {
- fixups_version_ = header.fixups_version;
- starts_offset_ = header.starts_offset;
- imports_offset_ = header.imports_offset;
- symbols_offset_ = header.symbols_offset;
- imports_count_ = header.imports_count;
- symbols_format_ = header.symbols_format;
- imports_format_ = static_cast<DYLD_CHAINED_FORMAT>(header.imports_format);
+ data_size_{cmd.datasize} {}
+
+
+void DyldChainedFixups::update_with(
+ const details::dyld_chained_fixups_header& header
+) {
+ fixups_version_ = header.fixups_version;
+ starts_offset_ = header.starts_offset;
+ imports_offset_ = header.imports_offset;
+ symbols_offset_ = header.symbols_offset;
+ imports_count_ = header.imports_count;
+ symbols_format_ = header.symbols_format;
+ imports_format_ = static_cast<DYLD_CHAINED_FORMAT>(header.imports_format);
}
void DyldChainedFixups::accept(Visitor& visitor) const {
@@ -83,7 +83,8 @@ std::ostream& DyldChainedFixups::print(std::ostream& os) const {
for (size_t i = 0; i < segments.size(); ++i) {
const chained_starts_in_segment& info = segments[i];
static constexpr char PREFIX[] = " ";
- os << fmt::format("{}seg_offset[{}] = {:03d} ({})\n", PREFIX, i, info.offset, info.segment.name());
+ os << fmt::format("{}seg_offset[{}] = {:03d} ({})\n", PREFIX, i, info.offset,
+ info.segment.name());
}
for (size_t i = 0; i < segments.size(); ++i) {
@@ -91,12 +92,14 @@ std::ostream& DyldChainedFixups::print(std::ostream& os) const {
if (info.offset == 0) {
continue;
}
- os << fmt::format("chained starts in segment {} ({})\n", i, info.segment.name());
+ os << fmt::format("chained starts in segment {} ({})\n", i,
+ info.segment.name());
os << info << "\n";
for (const Relocation& reloc : info.segment.relocations()) {
if (const auto* r = reloc.cast<RelocationFixup>()) {
- os << fmt::format("[RELOC] 0x{:08x}: 0x{:08x}\n", r->address(), r->target());
+ os << fmt::format("[RELOC] {:#010x}: {:#010x}\n", r->address(),
+ r->target());
}
}
os << "\n";
@@ -124,32 +127,34 @@ std::ostream& DyldChainedFixups::print(std::ostream& os) const {
symbol = sym->name();
}
- os << fmt::format("{}0x{:08x}: {} ({}) addend: 0x{:x}\n",
- segment_name, bind.address(), symbol, libname, bind.sign_extended_addend());
-
-
+ os << fmt::format("{}{:#010x}: {} ({}) addend: {:#x}\n", segment_name,
+ bind.address(), symbol, libname,
+ bind.sign_extended_addend());
}
return os;
}
-DyldChainedFixups::chained_starts_in_segment::chained_starts_in_segment(uint32_t offset, const details::dyld_chained_starts_in_segment& info,
- SegmentCommand& segment) :
+DyldChainedFixups::chained_starts_in_segment::chained_starts_in_segment(
+ uint32_t offset, const details::dyld_chained_starts_in_segment& info,
+ SegmentCommand& segment
+) :
offset{offset},
size{info.size},
page_size{info.page_size},
segment_offset{info.segment_offset},
max_valid_pointer{info.max_valid_pointer},
pointer_format{static_cast<DYLD_CHAINED_PTR_FORMAT>(info.pointer_format)},
- segment{segment}
-{}
-
-std::ostream& operator<<(std::ostream& os, const DyldChainedFixups::chained_starts_in_segment& info) {
- os << fmt::format("size = {}\n", info.size);
- os << fmt::format("page_size = 0x{:x}\n", info.page_size);
- os << fmt::format("pointer_format = {}\n", to_string(info.pointer_format));
- os << fmt::format("segment_offset = 0x{:x}\n", info.segment_offset);
- os << fmt::format("max_valid_pointer = 0x{:x}\n", info.max_valid_pointer);
- os << fmt::format("page_count = {}\n", info.page_count());
+ segment{segment} {}
+
+std::ostream&
+ operator<<(std::ostream& os,
+ const DyldChainedFixups::chained_starts_in_segment& info) {
+ os << fmt::format("size = {}\n", info.size);
+ os << fmt::format("page_size = {:#x}\n", info.page_size);
+ os << fmt::format("pointer_format = {}\n", to_string(info.pointer_format));
+ os << fmt::format("segment_offset = {:#x}\n", info.segment_offset);
+ os << fmt::format("max_valid_pointer = {:#x}\n", info.max_valid_pointer);
+ os << fmt::format("page_count = {}\n", info.page_count());
for (size_t i = 0; i < info.page_count(); ++i) {
os << fmt::format(" page_start[{}] = {}\n", i, info.page_start[i]);
@@ -158,4 +163,3 @@ std::ostream& operator<<(std::ostream& os, const DyldChainedFixups::chained_star
}
}
-}
diff --git a/deps/LIEF/src/MachO/DyldChainedFixupsCreator.cpp b/deps/LIEF/src/MachO/DyldChainedFixupsCreator.cpp
index 9442f6438c8..e58bbce950d 100644
--- a/deps/LIEF/src/MachO/DyldChainedFixupsCreator.cpp
+++ b/deps/LIEF/src/MachO/DyldChainedFixupsCreator.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -44,27 +44,24 @@ struct strong_symbol_t {
class StrongSymbolHash {
public:
- size_t operator()(const strong_symbol_t& sym) const noexcept{
+ size_t operator()(const strong_symbol_t& sym) const noexcept {
return std::hash<std::string>{}(sym.symbol + std::to_string(sym.libord));
}
};
-class strong_map_t : public std::unordered_map<
- strong_symbol_t, ChainedBindingInfoList*, StrongSymbolHash
->
-{};
+class strong_map_t
+ : public std::unordered_map<strong_symbol_t, ChainedBindingInfoList*,
+ StrongSymbolHash> {};
uint64_t DyldChainedFixupsCreator::binding_rebase_t::addr() const {
- return type == binding_rebase_t::BINDING ?
- binding->address() : fixup->address();
+ return type == binding_rebase_t::BINDING ? binding->address() : fixup->address();
}
DYLD_CHAINED_PTR_FORMAT
- DyldChainedFixupsCreator::pointer_format(const Binary& bin, size_t imp_count)
-{
+DyldChainedFixupsCreator::pointer_format(const Binary& bin, size_t imp_count) {
if (imp_count > MAX_IMPORTS) {
- LIEF_ERR("Too many imports (0x{:06x})", imp_count);
+ LIEF_ERR("Too many imports ({:#08x})", imp_count);
return DYLD_CHAINED_PTR_FORMAT::NONE;
}
// Logic taken from ld64 -- OutputFile::chainedPointerFormat()
@@ -80,9 +77,9 @@ DYLD_CHAINED_PTR_FORMAT
return DYLD_CHAINED_PTR_FORMAT::PTR_64;
}
-result<size_t> DyldChainedFixupsCreator::lib2ord(
- const Binary& bin, const Symbol& sym, const std::string& lib)
-{
+result<size_t> DyldChainedFixupsCreator::lib2ord(const Binary& bin,
+ const Symbol& sym,
+ const std::string& lib) {
{
int ord = sym.library_ordinal();
if (Symbol::is_valid_index_ordinal(ord)) {
@@ -99,20 +96,19 @@ result<size_t> DyldChainedFixupsCreator::lib2ord(
}
if (lib.empty()) {
- LIEF_ERR("No library for the symbol: '{}'", sym.name());
+ LIEF_ERR("No library found for symbol '{}'", sym.name());
return make_error_code(lief_errors::not_found);
}
auto libs = bin.libraries();
- auto it = std::find_if(libs.begin(), libs.end(),
- [&lib] (const DylibCommand& dylib) {
- return dylib.name() == lib;
- }
- );
+ auto it =
+ std::find_if(libs.begin(), libs.end(), [&lib](const DylibCommand& dylib) {
+ return dylib.name() == lib;
+ });
if (it == libs.end()) {
- LIEF_ERR("Library '{}' not found!", lib);
+ LIEF_ERR("Library '{}' not found", lib);
return make_error_code(lief_errors::not_found);
}
@@ -122,9 +118,8 @@ result<size_t> DyldChainedFixupsCreator::lib2ord(
}
-const Symbol* DyldChainedFixupsCreator::find_symbol(
- const Binary& bin, const std::string& name)
-{
+const Symbol* DyldChainedFixupsCreator::find_symbol(const Binary& bin,
+ const std::string& name) {
for (const Symbol& sym : bin.symbols()) {
if (sym.name() == name) {
return &sym;
@@ -133,53 +128,51 @@ const Symbol* DyldChainedFixupsCreator::find_symbol(
return nullptr;
}
-DyldChainedFixupsCreator& DyldChainedFixupsCreator::add_binding(
- uint64_t address, std::string symbol, std::string library,
- uint64_t addend, bool weak)
-{
- bindings_.push_back({
- address, std::move(library), std::move(symbol), weak, addend
- });
+DyldChainedFixupsCreator&
+ DyldChainedFixupsCreator::add_binding(uint64_t address, std::string symbol,
+ std::string library, uint64_t addend,
+ bool weak) {
+ bindings_.push_back({address, std::move(library), std::move(symbol), weak,
+ addend});
return *this;
}
ok_error_t DyldChainedFixupsCreator::process_relocations(
- Binary& target, DYLD_CHAINED_PTR_FORMAT ptr_fmt)
-{
+ Binary& target, DYLD_CHAINED_PTR_FORMAT ptr_fmt
+) {
const uint64_t imagebase = target.imagebase();
for (const reloc_info_t& info : relocations_) {
auto fixup = std::make_unique<RelocationFixup>(ptr_fmt, target.imagebase());
fixup->address_ = info.addr;
- SegmentCommand* segment = target.segment_from_virtual_address(fixup->address());
+ SegmentCommand* segment =
+ target.segment_from_virtual_address(fixup->address());
if (segment == nullptr) {
- LIEF_WARN("Can't find segment for the relocation: 0x{:016x}", fixup->address());
+ LIEF_WARN("Segment not found for relocation at {:#018x}", fixup->address());
continue;
}
switch (ptr_fmt) {
case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E:
case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24:
- {
- details::dyld_chained_ptr_arm64e_rebase raw;
- std::memset(&raw, 0, sizeof(raw));
- details::pack_target(raw, info.target - imagebase);
- fixup->set(raw);
- break;
- }
+ {
+ details::dyld_chained_ptr_arm64e_rebase raw{};
+ details::pack_target(raw, info.target - imagebase);
+ fixup->set(raw);
+ break;
+ }
case DYLD_CHAINED_PTR_FORMAT::PTR_64:
- {
- details::dyld_chained_ptr_64_rebase raw;
- std::memset(&raw, 0, sizeof(raw));
- details::pack_target(raw, info.target - imagebase);
- fixup->set(raw);
- break;
- }
+ {
+ details::dyld_chained_ptr_64_rebase raw{};
+ details::pack_target(raw, info.target - imagebase);
+ fixup->set(raw);
+ break;
+ }
default:
- {
- LIEF_WARN("Chained ptr format: {} is not supported", to_string(ptr_fmt));
- break;
- }
+ {
+ LIEF_WARN("Unsupported chained pointer format: {}", to_string(ptr_fmt));
+ break;
+ }
}
segment_chains_[segment].emplace_back(*fixup);
segment->relocations_.push_back(std::move(fixup));
@@ -187,18 +180,18 @@ ok_error_t DyldChainedFixupsCreator::process_relocations(
return ok();
}
-ok_error_t DyldChainedFixupsCreator::process_bindings(
- Binary& target, strong_map_t& strong_map,
- std::unordered_map<std::string, size_t>& symbols_idx,
- DyldChainedFixups* cmd,
- DyldChainedFixups::binding_info_t& all_bindings
-)
-{
+DyldChainedFixups::binding_info_t DyldChainedFixupsCreator::process_bindings(
+ Binary& target, strong_map_t& strong_map,
+ std::unordered_map<std::string, size_t>& symbols_idx, DyldChainedFixups* cmd
+) {
+ DyldChainedFixups::binding_info_t bindings;
+ bindings.reserve(bindings_.size());
+
for (const binding_info_t& info : bindings_) {
const Symbol* sym = find_symbol(target, info.symbol);
if (sym == nullptr) {
- LIEF_ERR("Can't resolve symbol: '{}", info.symbol);
+ LIEF_ERR("Failed to resolve symbol: '{}'", info.symbol);
continue;
}
@@ -209,13 +202,14 @@ ok_error_t DyldChainedFixupsCreator::process_bindings(
SegmentCommand* segment = target.segment_from_virtual_address(info.address);
if (segment == nullptr) {
- LIEF_ERR("Can't find segment associated with address: 0x{:016x}", info.address);
+ LIEF_ERR("Segment not found for address {:#018x}", info.address);
continue;
}
const size_t ord = *libord;
- auto binding = std::make_unique<ChainedBindingInfo>(imports_format_, info.weak);
+ auto binding =
+ std::make_unique<ChainedBindingInfo>(imports_format_, info.weak);
binding->symbol_ = const_cast<Symbol*>(sym);
binding->library_ordinal_ = ord;
binding->addend_ = info.addend;
@@ -241,9 +235,9 @@ ok_error_t DyldChainedFixupsCreator::process_bindings(
cmd->internal_bindings_.push_back(std::move(binding_list));
}
- all_bindings.push_back(std::move(binding));
+ bindings.push_back(std::move(binding));
}
- return ok();
+ return bindings;
}
DyldChainedFixups* DyldChainedFixupsCreator::create(Binary& target) {
@@ -253,20 +247,18 @@ DyldChainedFixups* DyldChainedFixupsCreator::create(Binary& target) {
cmd->size_ = sizeof(details::linkedit_data_command);
cmd->fixups_version_ = fixups_version_;
- cmd->symbols_format_ = /* uncompressed */0;
+ cmd->symbols_format_ = /* uncompressed */ 0;
cmd->imports_format_ = DYLD_CHAINED_FORMAT::IMPORT;
- DyldChainedFixups::binding_info_t all_bindings;
- all_bindings.reserve(bindings_.size());
-
std::unordered_map<std::string, size_t> symbols_idx;
strong_map_t strong_map;
- if (!process_bindings(target, strong_map, symbols_idx, cmd.get(), all_bindings)) {
- return nullptr;
- }
+
+ cmd->all_bindings_ =
+ process_bindings(target, strong_map, symbols_idx, cmd.get());
const size_t import_count = cmd->internal_bindings_.size();
- const DYLD_CHAINED_PTR_FORMAT import_ptr_fmt = pointer_format(target, import_count);
+ const DYLD_CHAINED_PTR_FORMAT import_ptr_fmt =
+ pointer_format(target, import_count);
if (!process_relocations(target, import_ptr_fmt)) {
return nullptr;
@@ -295,36 +287,38 @@ DyldChainedFixups* DyldChainedFixupsCreator::create(Binary& target) {
for (size_t i = 0; i < chains.size(); ++i) {
uint32_t next = 0;
binding_rebase_t& element = chains[i];
- //LIEF_DEBUG(" 0x{:016x}: {}", binding->address(), binding->symbol()->name());
+ // LIEF_DEBUG(" {:#018x}: {}", binding->address(),
+ // binding->symbol()->name());
uint64_t address = element.addr();
uint64_t target_offset = address - imagebase;
- LIEF_DEBUG(" address: 0x{:016x}", address);
- LIEF_DEBUG(" target offset: 0x{:016x}", target_offset);
- LIEF_DEBUG(" segment offset: 0x{:016x}", segment_offset);
- assert (target_offset >= segment_offset);
+ LIEF_DEBUG(" address: {:#018x}", address);
+ LIEF_DEBUG(" target_offset: {:#018x}", target_offset);
+ LIEF_DEBUG(" segment_offset: {:#018x}", segment_offset);
+ assert(target_offset >= segment_offset);
uint64_t offset = target_offset - segment_offset;
uint32_t page_idx = offset / page_size;
uint32_t delta = offset % page_size;
LIEF_DEBUG(" page_idx: {}", page_idx);
- LIEF_DEBUG(" delta: 0x{:016x}", delta);
- LIEF_DEBUG(" offset: 0x{:016x}" , offset);
+ LIEF_DEBUG(" delta: {:#018x}", delta);
+ LIEF_DEBUG(" offset: {:#018x}", offset);
if (i < chains.size() - 1) {
binding_rebase_t& next_element = chains[i + 1];
uint64_t next_address = next_element.addr();
uint64_t next_target_offset = next_address - imagebase;
uint64_t next_offset = next_target_offset - segment_offset;
- assert (next_target_offset >= segment_offset);
+ assert(next_target_offset >= segment_offset);
uint32_t next_page_idx = next_offset / page_size;
uint32_t next_delta = next_offset % page_size;
- LIEF_DEBUG(" [next]address: 0x{:016x}", address);
- LIEF_DEBUG(" [next]target offset: 0x{:016x}", next_target_offset);
+ LIEF_DEBUG(" [next] address: {:#018x}", address);
+ LIEF_DEBUG(" [next] target_offset: {:#018x}",
+ next_target_offset);
- LIEF_DEBUG(" [next]page_idx: {}", next_page_idx);
- LIEF_DEBUG(" [next]delta: 0x{:016x}", next_delta);
- LIEF_DEBUG(" [next]offset: 0x{:016x}" , next_offset);
+ LIEF_DEBUG(" [next] page_idx: {}", next_page_idx);
+ LIEF_DEBUG(" [next] delta: {:#018x}", next_delta);
+ LIEF_DEBUG(" [next] offset: {:#018x}", next_offset);
if (next_page_idx == page_idx) {
assert((next_delta - delta) % stride == 0);
@@ -334,71 +328,68 @@ DyldChainedFixups* DyldChainedFixupsCreator::create(Binary& target) {
LIEF_DEBUG(" next: {} (stride: {})", next, stride);
if (page_idx >= info.page_start.size()) {
- info.page_start.resize(page_idx + 1, /* DYLD_CHAINED_PTR_START_NONE */0xFFFF);
+ info.page_start.resize(page_idx + 1,
+ /* DYLD_CHAINED_PTR_START_NONE */ 0xFFFF);
info.page_start[page_idx] = delta;
}
if (element.is_binding()) {
- const uint16_t ordinal = symbols_idx.at(element.binding->symbol()->name());
+ const uint16_t ordinal =
+ symbols_idx.at(element.binding->symbol()->name());
switch (import_ptr_fmt) {
case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_USERLAND24:
- {
- details::dyld_chained_ptr_arm64e_bind24 raw;
- std::memset(&raw, 0, sizeof(raw));
- raw.bind = 1;
- raw.next = next;
- raw.ordinal = ordinal;
- element.binding->set(raw);
- break;
- }
+ {
+ details::dyld_chained_ptr_arm64e_bind24 raw{};
+ raw.bind = 1;
+ raw.next = next;
+ raw.ordinal = ordinal;
+ element.binding->set(raw);
+ break;
+ }
case DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E:
- {
- details::dyld_chained_ptr_arm64e_bind raw;
- std::memset(&raw, 0, sizeof(raw));
- raw.bind = 1;
- raw.next = next;
- raw.ordinal = ordinal;
- element.binding->set(raw);
- break;
- }
+ {
+ details::dyld_chained_ptr_arm64e_bind raw{};
+ raw.bind = 1;
+ raw.next = next;
+ raw.ordinal = ordinal;
+ element.binding->set(raw);
+ break;
+ }
case DYLD_CHAINED_PTR_FORMAT::PTR_64:
- {
- details::dyld_chained_ptr_64_bind raw;
- std::memset(&raw, 0, sizeof(raw));
- raw.bind = 1;
- raw.next = next;
- raw.ordinal = ordinal;
- element.binding->set(raw);
- break;
- }
+ {
+ details::dyld_chained_ptr_64_bind raw{};
+ raw.bind = 1;
+ raw.next = next;
+ raw.ordinal = ordinal;
+ element.binding->set(raw);
+ break;
+ }
default:
- {
- LIEF_WARN("Chained ptr format: {} is not supported", to_string(import_ptr_fmt));
- break;
- }
+ {
+ LIEF_WARN("Unsupported chained pointer format: {}",
+ to_string(import_ptr_fmt));
+ break;
+ }
}
- element.binding->offset(
- (element.binding->address() - segment.virtual_address()) +
- segment.file_offset()
- );
+ element.binding->offset((element.binding->address() -
+ segment.virtual_address()) +
+ segment.file_offset());
} else {
assert(element.is_fixup());
element.fixup->next(next);
- element.fixup->offset(
- (element.binding->address() - segment.virtual_address()) +
- segment.file_offset()
- );
+ element.fixup->offset((element.binding->address() -
+ segment.virtual_address()) +
+ segment.file_offset());
}
}
}
LIEF_DEBUG("Adding chained_starts_in_segment[{}] ({} pages)",
- info.segment.name(), info.page_count());
+ info.segment.name(), info.page_count());
cmd->chained_starts_in_segment_.push_back(info);
}
- cmd->all_bindings_ = std::move(all_bindings);
LoadCommand* added = target.add(std::move(cmd));
if (added == nullptr) {
return nullptr;
@@ -408,8 +399,7 @@ DyldChainedFixups* DyldChainedFixupsCreator::create(Binary& target) {
DyldChainedFixupsCreator&
- DyldChainedFixupsCreator::add_relocation(uint64_t address, uint64_t target)
-{
+ DyldChainedFixupsCreator::add_relocation(uint64_t address, uint64_t target) {
relocations_.push_back({address, target});
return *this;
}
diff --git a/deps/LIEF/src/MachO/DyldChainedFormat.cpp b/deps/LIEF/src/MachO/DyldChainedFormat.cpp
index b27bbc366c5..04c9ef38426 100644
--- a/deps/LIEF/src/MachO/DyldChainedFormat.cpp
+++ b/deps/LIEF/src/MachO/DyldChainedFormat.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,17 +17,17 @@
#define LIEF_MACHO_DYLD_CHAINED_FORMAT_H
#include "LIEF/MachO/DyldChainedFormat.hpp"
#include "frozen.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
const char* to_string(DYLD_CHAINED_FORMAT e) {
- #define ENTRY(X) std::pair(DYLD_CHAINED_FORMAT::X, #X)
- STRING_MAP enums2str {
- ENTRY(IMPORT),
- ENTRY(IMPORT_ADDEND),
- ENTRY(IMPORT_ADDEND64),
+#define ENTRY(X) std::pair(DYLD_CHAINED_FORMAT::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(IMPORT),
+ ENTRY(IMPORT_ADDEND),
+ ENTRY(IMPORT_ADDEND64),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -35,25 +35,25 @@ const char* to_string(DYLD_CHAINED_FORMAT e) {
return "UNKNOWN";
}
const char* to_string(DYLD_CHAINED_PTR_FORMAT e) {
- #define ENTRY(X) std::pair(DYLD_CHAINED_PTR_FORMAT::X, #X)
- STRING_MAP enums2str {
- ENTRY(NONE),
- ENTRY(PTR_ARM64E),
- ENTRY(PTR_64),
- ENTRY(PTR_32),
- ENTRY(PTR_32_CACHE),
- ENTRY(PTR_32_FIRMWARE),
- ENTRY(PTR_64_OFFSET),
- ENTRY(PTR_ARM64E_KERNEL),
- ENTRY(PTR_64_KERNEL_CACHE),
- ENTRY(PTR_ARM64E_USERLAND),
- ENTRY(PTR_ARM64E_FIRMWARE),
- ENTRY(PTR_X86_64_KERNEL_CACHE),
- ENTRY(PTR_ARM64E_USERLAND24),
- ENTRY(PTR_ARM64E_SHARED_CACHE),
- ENTRY(PTR_ARM64E_SEGMENTED),
+#define ENTRY(X) std::pair(DYLD_CHAINED_PTR_FORMAT::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(NONE),
+ ENTRY(PTR_ARM64E),
+ ENTRY(PTR_64),
+ ENTRY(PTR_32),
+ ENTRY(PTR_32_CACHE),
+ ENTRY(PTR_32_FIRMWARE),
+ ENTRY(PTR_64_OFFSET),
+ ENTRY(PTR_ARM64E_KERNEL),
+ ENTRY(PTR_64_KERNEL_CACHE),
+ ENTRY(PTR_ARM64E_USERLAND),
+ ENTRY(PTR_ARM64E_FIRMWARE),
+ ENTRY(PTR_X86_64_KERNEL_CACHE),
+ ENTRY(PTR_ARM64E_USERLAND24),
+ ENTRY(PTR_ARM64E_SHARED_CACHE),
+ ENTRY(PTR_ARM64E_SEGMENTED),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -62,5 +62,5 @@ const char* to_string(DYLD_CHAINED_PTR_FORMAT e) {
}
}
-}
+
#endif
diff --git a/deps/LIEF/src/MachO/DyldEnvironment.cpp b/deps/LIEF/src/MachO/DyldEnvironment.cpp
index bc4e9094fe6..dc06fd051c1 100644
--- a/deps/LIEF/src/MachO/DyldEnvironment.cpp
+++ b/deps/LIEF/src/MachO/DyldEnvironment.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,12 +17,11 @@
#include "LIEF/MachO/DyldEnvironment.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
DyldEnvironment::DyldEnvironment(const details::dylinker_command& cmd) :
- LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize}
-{}
+ LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize} {}
void DyldEnvironment::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -35,4 +34,3 @@ std::ostream& DyldEnvironment::print(std::ostream& os) const {
}
}
-}
diff --git a/deps/LIEF/src/MachO/DyldExportsTrie.cpp b/deps/LIEF/src/MachO/DyldExportsTrie.cpp
index f132ea16bea..ac7ffdb8c14 100644
--- a/deps/LIEF/src/MachO/DyldExportsTrie.cpp
+++ b/deps/LIEF/src/MachO/DyldExportsTrie.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,16 +25,15 @@
#include "MachO/Structures.hpp"
#include "MachO/exports_trie.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
DyldExportsTrie::DyldExportsTrie() = default;
DyldExportsTrie::~DyldExportsTrie() = default;
DyldExportsTrie::DyldExportsTrie(const DyldExportsTrie& other) :
LoadCommand::LoadCommand(other),
data_offset_{other.data_offset_},
- data_size_{other.data_size_}
-{
+ data_size_{other.data_size_} {
/* Do not copy export info */
}
@@ -46,15 +45,14 @@ DyldExportsTrie& DyldExportsTrie::operator=(DyldExportsTrie other) {
DyldExportsTrie::DyldExportsTrie(const details::linkedit_data_command& cmd) :
LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
data_offset_{cmd.dataoff},
- data_size_{cmd.datasize}
-{}
+ data_size_{cmd.datasize} {}
void DyldExportsTrie::swap(DyldExportsTrie& other) noexcept {
LoadCommand::swap(other);
std::swap(data_offset_, other.data_offset_);
- std::swap(data_size_, other.data_size_);
- std::swap(content_, other.content_);
+ std::swap(data_size_, other.data_size_);
+ std::swap(content_, other.content_);
std::swap(export_info_, other.export_info_);
}
@@ -62,8 +60,8 @@ void DyldExportsTrie::accept(Visitor& visitor) const {
visitor.visit(*this);
}
-void DyldExportsTrie::add(std::unique_ptr<ExportInfo> info) {
- export_info_.push_back(std::move(info));
+ExportInfo* DyldExportsTrie::add(std::unique_ptr<ExportInfo> info) {
+ return export_info_.emplace_back(std::move(info)).get();
}
std::string DyldExportsTrie::show_export_trie() const {
@@ -77,10 +75,8 @@ std::string DyldExportsTrie::show_export_trie() const {
std::ostream& DyldExportsTrie::print(std::ostream& os) const {
LoadCommand::print(os) << '\n';
- os << fmt::format("offset=0x{:06x}, size=0x{:06x}",
- data_offset(), data_size());
+ os << fmt::format("offset={:#08x}, size={:#08x}", data_offset(), data_size());
return os;
}
}
-}
diff --git a/deps/LIEF/src/MachO/DyldInfo.cpp b/deps/LIEF/src/MachO/DyldInfo.cpp
index 8fef588f9ce..8011a880476 100644
--- a/deps/LIEF/src/MachO/DyldInfo.cpp
+++ b/deps/LIEF/src/MachO/DyldInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,6 +14,9 @@
* limitations under the License.
*/
#include <sstream>
+
+#include <spdlog/fmt/fmt.h>
+
#include "logging.hpp"
#include "frozen.hpp"
#include "LIEF/iostream.hpp"
@@ -35,18 +38,19 @@
#include "MachO/exports_trie.hpp"
#include "MachO/Structures.hpp"
+#include "MachO/dyld_opcodes.hpp"
#include "Object.tcc"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
struct ThreadedBindData {
std::string symbol_name;
- int64_t addend = 0;
+ int64_t addend = 0;
int64_t library_ordinal = 0;
- uint8_t symbol_flags = 0;
- uint8_t type = 0;
+ uint8_t symbol_flags = 0;
+ uint8_t type = 0;
};
DyldInfo::DyldInfo() = default;
@@ -68,65 +72,77 @@ DyldInfo::DyldInfo(const DyldInfo& copy) :
lazy_bind_{copy.lazy_bind_},
lazy_bind_opcodes_{copy.lazy_bind_opcodes_},
export_{copy.export_},
- export_trie_{copy.export_trie_}
-{}
+ export_trie_{copy.export_trie_} {}
DyldInfo::DyldInfo(const details::dyld_info_command& dyld_info_cmd) :
- LoadCommand::LoadCommand{LoadCommand::TYPE(dyld_info_cmd.cmd), dyld_info_cmd.cmdsize},
+ LoadCommand::LoadCommand{LoadCommand::TYPE(dyld_info_cmd.cmd),
+ dyld_info_cmd.cmdsize},
rebase_{dyld_info_cmd.rebase_off, dyld_info_cmd.rebase_size},
bind_{dyld_info_cmd.bind_off, dyld_info_cmd.bind_size},
weak_bind_{dyld_info_cmd.weak_bind_off, dyld_info_cmd.weak_bind_size},
lazy_bind_{dyld_info_cmd.lazy_bind_off, dyld_info_cmd.lazy_bind_size},
- export_{dyld_info_cmd.export_off, dyld_info_cmd.export_size}
-{}
+ export_{dyld_info_cmd.export_off, dyld_info_cmd.export_size} {}
void DyldInfo::swap(DyldInfo& other) noexcept {
LoadCommand::swap(other);
- std::swap(rebase_, other.rebase_);
- std::swap(rebase_opcodes_, other.rebase_opcodes_);
+ std::swap(rebase_, other.rebase_);
+ std::swap(rebase_opcodes_, other.rebase_opcodes_);
- std::swap(bind_, other.bind_);
- std::swap(bind_opcodes_, other.bind_opcodes_);
+ std::swap(bind_, other.bind_);
+ std::swap(bind_opcodes_, other.bind_opcodes_);
- std::swap(weak_bind_, other.weak_bind_);
- std::swap(weak_bind_opcodes_, other.weak_bind_opcodes_);
+ std::swap(weak_bind_, other.weak_bind_);
+ std::swap(weak_bind_opcodes_, other.weak_bind_opcodes_);
- std::swap(lazy_bind_, other.lazy_bind_);
- std::swap(lazy_bind_opcodes_, other.lazy_bind_opcodes_);
+ std::swap(lazy_bind_, other.lazy_bind_);
+ std::swap(lazy_bind_opcodes_, other.lazy_bind_opcodes_);
- std::swap(export_, other.export_);
- std::swap(export_trie_, other.export_trie_);
+ std::swap(export_, other.export_);
+ std::swap(export_trie_, other.export_trie_);
- std::swap(export_info_, other.export_info_);
- std::swap(binding_info_, other.binding_info_);
+ std::swap(export_info_, other.export_info_);
+ std::swap(binding_info_, other.binding_info_);
- std::swap(binary_, other.binary_);
+ std::swap(binary_, other.binary_);
}
void DyldInfo::rebase_opcodes(buffer_t raw) {
if (raw.size() > rebase_opcodes_.size()) {
- LIEF_WARN("Can't update rebase opcodes. The provided data is larger than the original ones");
+ LIEF_WARN("Rebase opcodes update failed: data exceeds original size");
return;
}
- std::move(std::begin(raw), std::end(raw), rebase_opcodes_.data());
+ std::move(raw.begin(), raw.end(), rebase_opcodes_.data());
+}
+
+inline std::string safe_segment_name(Binary::it_segments& segments, size_t idx) {
+ return idx < segments.size() ? segments[idx].name() : "<invalid>";
}
+inline std::string safe_library_name(Binary::it_libraries& libraries,
+ int64_t idx) {
+ if (idx >= 0 && static_cast<size_t>(idx) < libraries.size()) {
+ return libraries[idx].name();
+ }
+ return "<invalid>";
+}
std::string DyldInfo::show_rebases_opcodes() const {
static constexpr char tab[] = " ";
if (binary_ == nullptr) {
- LIEF_WARN("Can't print rebase opcode");
+ LIEF_WARN("Failed to print rebase opcode");
return "";
}
- size_t pint_v = static_cast<LIEF::Binary*>(binary_)->header().is_64() ? sizeof(uint64_t) : sizeof(uint32_t);
+ size_t pint_v = static_cast<LIEF::Binary*>(binary_)->header().is_64() ?
+ sizeof(uint64_t) :
+ sizeof(uint32_t);
std::ostringstream output;
- bool done = false;
- uint8_t type = 0;
+ bool done = false;
+ uint8_t type = 0;
uint32_t segment_index = 0;
uint64_t segment_offset = 0;
uint32_t count = 0;
@@ -143,205 +159,211 @@ std::string DyldInfo::show_rebases_opcodes() const {
uint8_t imm = *val & IMMEDIATE_MASK;
auto opcode = REBASE_OPCODES(*val & OPCODE_MASK);
- switch(opcode) {
+ switch (opcode) {
case REBASE_OPCODES::DONE:
- {
- output << "[" << to_string(opcode) << "]" << '\n';
- done = true;
- break;
- }
+ {
+ output << "[" << to_string(opcode) << "]" << '\n';
+ done = true;
+ break;
+ }
case REBASE_OPCODES::SET_TYPE_IMM:
- {
- type = imm;
- output << "[" << to_string(opcode) << "] ";
- output << "Type: " << to_string(REBASE_TYPE(type));
- output << '\n';
+ {
+ type = imm;
+ output << "[" << to_string(opcode) << "] ";
+ output << "Type: " << to_string(REBASE_TYPE(type));
+ output << '\n';
+ break;
+ }
+
+ case REBASE_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
+ {
+ if (auto val = rebase_stream.read_uleb128()) {
+ segment_offset = *val;
+ } else {
+ LIEF_ERR("Failed to read REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB "
+ "segment offset");
break;
}
- case REBASE_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
- {
- if (auto val = rebase_stream.read_uleb128()) {
- segment_offset = *val;
- } else {
- LIEF_ERR("Can't read REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB segment offset");
- break;
- }
+ segment_index = imm;
- segment_index = imm;
+ output << "[" << to_string(opcode) << "] ";
+ output << fmt::format("Segment Index := {} ({}) ", segment_index,
+ safe_segment_name(segments, segment_index));
+ output << fmt::format("Segment Offset := {:#x}\n", segment_offset);
- output << "[" << to_string(opcode) << "] ";
- output << "Segment Index := " << std::dec << segment_index << " (" << segments[segment_index].name() << ") ";
- output << "Segment Offset := " << std::hex << std::showbase << segment_offset;
- output << '\n';
+ break;
+ }
+ case REBASE_OPCODES::ADD_ADDR_ULEB:
+ {
+ uint64_t val = 0;
+ if (auto res = rebase_stream.read_uleb128()) {
+ val = *res;
+ } else {
+ LIEF_ERR("Failed to read REBASE_OPCODE_ADD_ADDR_ULEB segment offset");
break;
}
- case REBASE_OPCODES::ADD_ADDR_ULEB:
- {
- uint64_t val = 0;
- if (auto res = rebase_stream.read_uleb128()) {
- val = *res;
- } else {
- LIEF_ERR("Can't read REBASE_OPCODE_ADD_ADDR_ULEB segment offset");
- break;
- }
-
- segment_offset += val;
+ segment_offset += val;
- output << "[" << to_string(opcode) << "] ";
- output << "Segment Offset += " << std::hex << std::showbase << val << " (" << segment_offset << ")";
- output << '\n';
- break;
- }
+ output << "[" << to_string(opcode) << "] ";
+ output << fmt::format("Segment Offset += {:#x} ({:#x})\n", val,
+ segment_offset);
+ break;
+ }
case REBASE_OPCODES::ADD_ADDR_IMM_SCALED:
- {
- segment_offset += (imm * pint_v);
+ {
+ segment_offset += (imm * pint_v);
- output << "[" << to_string(opcode) << "]" ;
- output << "Segment Offset += " << std::hex << std::showbase << (imm * pint_v) << " (" << segment_offset << ")";
- output << '\n';
- break;
- }
+ output << "[" << to_string(opcode) << "]";
+ output << fmt::format("Segment Offset += {:#x} ({:#x})\n", imm * pint_v,
+ segment_offset);
+ break;
+ }
case REBASE_OPCODES::DO_REBASE_IMM_TIMES:
- {
- output << "[" << to_string(opcode) << "]" << '\n';
- output << tab << "for i in range(" << std::dec << static_cast<uint32_t>(imm) << "):" << '\n';
- for (size_t i = 0; i < imm; ++i) {
- output << tab << tab;
- output << "rebase(";
- output << to_string(REBASE_TYPE(type));
- output << ", ";
- output << segments[segment_index].name();
- output << ", ";
- output << std::hex << std::showbase << segment_offset;
- output << ")" << '\n';
-
- segment_offset += pint_v;
-
- output << tab << tab;
- output << "Segment Offset += " << std::hex << std::showbase << pint_v << " (" << segment_offset << ")";
- output << '\n' << '\n';
- }
- output << '\n';
+ {
+ output << "[" << to_string(opcode) << "]" << '\n';
+ output << fmt::format("{}for i in range({}):\n", tab,
+ static_cast<uint32_t>(imm));
+ for (size_t i = 0; i < imm; ++i) {
+ output << tab << tab;
+ output << fmt::format("rebase({}, {}, {:#x})\n",
+ to_string(REBASE_TYPE(type)),
+ safe_segment_name(segments, segment_index),
+ segment_offset);
+
+ segment_offset += pint_v;
+
+ output << tab << tab;
+ output << fmt::format("Segment Offset += {:#x} ({:#x})\n\n", pint_v,
+ segment_offset);
+ }
+ output << '\n';
+ break;
+ }
+ case REBASE_OPCODES::DO_REBASE_ULEB_TIMES:
+ {
+
+ if (auto res = rebase_stream.read_uleb128()) {
+ count = *res;
+ } else {
+ LIEF_ERR("Failed to read REBASE_OPCODE_DO_REBASE_ULEB_TIMES count");
break;
}
- case REBASE_OPCODES::DO_REBASE_ULEB_TIMES:
- {
- if (auto res = rebase_stream.read_uleb128()) {
- count = *res;
- } else {
- LIEF_ERR("Can't read REBASE_OPCODE_DO_REBASE_ULEB_TIMES count");
- break;
- }
+ count = safe_dyld_opcode_count<uint32_t>(segment_index < segments.size() ?
+ &segments[segment_index] :
+ nullptr,
+ segment_offset, pint_v, count);
- output << "[" << to_string(opcode) << "]" << '\n';
+ output << "[" << to_string(opcode) << "]" << '\n';
- output << tab << "for i in range(" << std::dec << static_cast<uint32_t>(count) << "):" << '\n';
- for (size_t i = 0; i < count; ++i) {
- output << tab << tab;
- output << "rebase(";
- output << to_string(REBASE_TYPE(type));
- output << ", ";
- output << segments[segment_index].name();
- output << ", ";
- output << std::hex << std::showbase << segment_offset;
- output << ")" << '\n';
-
- segment_offset += pint_v;
-
- output << tab << tab;
- output << "Segment Offset += " << std::hex << std::showbase << pint_v << " (" << segment_offset << ")";
- output << '\n' << '\n';
- }
+ output << fmt::format("{}for i in range({}):\n", tab,
+ static_cast<uint32_t>(count));
+ for (size_t i = 0; i < count; ++i) {
+ output << tab << tab;
+ output << fmt::format("rebase({}, {}, {:#x})\n",
+ to_string(REBASE_TYPE(type)),
+ safe_segment_name(segments, segment_index),
+ segment_offset);
- output << '\n';
- break;
- }
+ segment_offset += pint_v;
- case REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB:
- {
+ output << tab << tab;
+ output << fmt::format("Segment Offset += {:#x} ({:#x})\n\n", pint_v,
+ segment_offset);
+ }
- output << "[" << to_string(opcode) << "]" << '\n';
+ output << '\n';
+ break;
+ }
- output << tab;
- output << "rebase(";
- output << to_string(REBASE_TYPE(type));
- output << ", ";
- output << segments[segment_index].name();
- output << ", ";
- output << std::hex << std::showbase << segment_offset;
- output << ")" << '\n';
-
- uint64_t val = 0;
- if (auto res = rebase_stream.read_uleb128()) {
- val = *res;
- } else {
- LIEF_ERR("Can't read REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB value");
- break;
- }
- segment_offset += val + pint_v;
+ case REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB:
+ {
+ output << "[" << to_string(opcode) << "]" << '\n';
- output << tab;
- output << "Segment Offset += " << std::hex << std::showbase << (val + pint_v) << " (" << segment_offset << ")";
- output << '\n';
+ output << tab;
+ output << fmt::format("rebase({}, {}, {:#x})\n",
+ to_string(REBASE_TYPE(type)),
+ safe_segment_name(segments, segment_index),
+ segment_offset);
+ uint64_t val = 0;
+ if (auto res = rebase_stream.read_uleb128()) {
+ val = *res;
+ } else {
+ LIEF_ERR("Failed to read REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB value");
break;
}
+ segment_offset += val + pint_v;
- case REBASE_OPCODES::DO_REBASE_ULEB_TIMES_SKIPPING_ULEB:
- {
- output << "[" << to_string(static_cast<REBASE_OPCODES>(opcode)) << "]" << '\n';
+ output << tab;
+ output << fmt::format("Segment Offset += {:#x} ({:#x})\n", val + pint_v,
+ segment_offset);
- // Count
- if (auto res = rebase_stream.read_uleb128()) {
- count = *res;
- } else {
- LIEF_ERR("Can't read REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB count");
- break;
- }
+ break;
+ }
- // Skip
- if (auto res = rebase_stream.read_uleb128()) {
- skip = *res;
- } else {
- LIEF_ERR("Can't read REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB skip");
- break;
- }
+ case REBASE_OPCODES::DO_REBASE_ULEB_TIMES_SKIPPING_ULEB:
+ {
- output << tab << "for i in range(" << std::dec << static_cast<uint32_t>(count) << "):" << '\n';
- for (size_t i = 0; i < count; ++i) {
- output << tab << tab;
- output << "rebase(";
- output << to_string(REBASE_TYPE(type));
- output << ", ";
- output << segments[segment_index].name();
- output << ", ";
- output << std::hex << std::showbase << segment_offset;
- output << ")" << '\n';
-
- segment_offset += skip + pint_v;
-
- output << tab << tab;
- output << "Segment Offset += " << std::hex << std::showbase << skip << " + " << pint_v << " (" << segment_offset << ")";
- output << '\n' << '\n';
- }
+ output << "[" << to_string(static_cast<REBASE_OPCODES>(opcode)) << "]"
+ << '\n';
+ // Count
+ if (auto res = rebase_stream.read_uleb128()) {
+ count = *res;
+ } else {
+ LIEF_ERR("Failed to read "
+ "REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB count");
break;
}
- default:
- {
- output << "[UNSUPPORTED OPCODE - " << std::showbase << std::hex << static_cast<uint32_t>(opcode) << "]" << '\n';
+ // Skip
+ if (auto res = rebase_stream.read_uleb128()) {
+ skip = *res;
+ } else {
+ LIEF_ERR("Failed to read "
+ "REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB skip");
break;
}
+
+ count = safe_dyld_opcode_count<uint32_t>(segment_index < segments.size() ?
+ &segments[segment_index] :
+ nullptr,
+ segment_offset, pint_v, count);
+
+ output << fmt::format("{}for i in range({}):\n", tab,
+ static_cast<uint32_t>(count));
+ for (size_t i = 0; i < count; ++i) {
+ output << tab << tab;
+ output << fmt::format("rebase({}, {}, {:#x})\n",
+ to_string(REBASE_TYPE(type)),
+ safe_segment_name(segments, segment_index),
+ segment_offset);
+
+ segment_offset += skip + pint_v;
+
+ output << tab << tab;
+ output << fmt::format("Segment Offset += {:#x} + {:#x} ({:#x})\n\n",
+ skip, pint_v, segment_offset);
+ }
+
+ break;
+ }
+
+ default:
+ {
+ output << fmt::format("[UNSUPPORTED OPCODE - {:#x}]\n",
+ static_cast<uint32_t>(opcode));
+ break;
+ }
}
}
@@ -350,10 +372,10 @@ std::string DyldInfo::show_rebases_opcodes() const {
void DyldInfo::bind_opcodes(buffer_t raw) {
if (raw.size() > bind_opcodes_.size()) {
- LIEF_WARN("Can't update bind opcodes. The provided data is larger than the original ones");
+ LIEF_WARN("Bind opcodes update failed: data exceeds original size");
return;
}
- std::move(std::begin(raw), std::end(raw), bind_opcodes_.data());
+ std::move(raw.begin(), raw.end(), bind_opcodes_.data());
}
@@ -363,29 +385,32 @@ std::string DyldInfo::show_bind_opcodes() const {
return output.str();
}
-void DyldInfo::show_bindings(std::ostream& output, span<const uint8_t> bind_opcodes, bool is_lazy) const {
+void DyldInfo::show_bindings(std::ostream& output,
+ span<const uint8_t> bind_opcodes,
+ bool is_lazy) const {
if (binary_ == nullptr) {
- LIEF_WARN("Can't print bind opcodes");
+ LIEF_WARN("Failed to print bind opcodes");
return;
}
size_t pint_v = static_cast<LIEF::Binary*>(binary_)->header().is_64() ?
- sizeof(uint64_t) :
- sizeof(uint32_t);
+ sizeof(uint64_t) :
+ sizeof(uint32_t);
- uint8_t type = is_lazy ? static_cast<uint8_t>(DyldBindingInfo::TYPE::POINTER) : 0;
- uint8_t segment_idx = 0;
- uint64_t segment_offset = 0;
+ uint8_t type =
+ is_lazy ? static_cast<uint8_t>(DyldBindingInfo::TYPE::POINTER) : 0;
+ uint8_t segment_idx = 0;
+ uint64_t segment_offset = 0;
std::string symbol_name;
- int64_t library_ordinal = 0;
+ int64_t library_ordinal = 0;
- int64_t addend = 0;
- uint32_t count = 0;
- uint32_t skip = 0;
+ int64_t addend = 0;
+ uint32_t count = 0;
+ uint32_t skip = 0;
- bool is_weak_import = false;
- bool done = false;
+ bool is_weak_import = false;
+ bool done = false;
size_t ordinal_table_size = 0;
bool use_threaded_rebase_bind = false;
@@ -409,364 +434,410 @@ void DyldInfo::show_bindings(std::ostream& output, span<const uint8_t> bind_opco
switch (opcode) {
case BIND_OPCODES::DONE:
- {
- output << "[" << to_string(opcode) << "]" << '\n';
- if (!is_lazy) {
- done = true;
- }
- break;
+ {
+ output << "[" << to_string(opcode) << "]" << '\n';
+ if (!is_lazy) {
+ done = true;
}
+ break;
+ }
case BIND_OPCODES::SET_DYLIB_ORDINAL_IMM:
- {
- output << "[" << to_string(opcode) << "]" << '\n';
+ {
+ output << "[" << to_string(opcode) << "]" << '\n';
- library_ordinal = imm;
+ library_ordinal = imm;
- output << tab << "Library Ordinal := " << std::dec << static_cast<uint32_t>(imm) << '\n';
- break;
- }
+ output << tab
+ << fmt::format("Library Ordinal := {}\n",
+ static_cast<uint32_t>(imm));
+ break;
+ }
case BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB:
- {
- output << "[" << to_string(opcode) << "]" << '\n';
-
- if (auto res = bind_stream.read_uleb128()) {
- library_ordinal = *res;
- } else {
- LIEF_ERR("Can't read BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB library ordinal value");
- break;
- }
-
- output << tab << "Library Ordinal := " << std::dec << library_ordinal << '\n';
+ {
+ output << "[" << to_string(opcode) << "]" << '\n';
+ if (auto res = bind_stream.read_uleb128()) {
+ library_ordinal = *res;
+ } else {
+ LIEF_ERR("Failed to read BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB library "
+ "ordinal value");
break;
}
- case BIND_OPCODES::SET_DYLIB_SPECIAL_IMM:
- {
+ output << tab << fmt::format("Library Ordinal := {}\n", library_ordinal);
- output << "[" << to_string(opcode) << "]" << '\n';
- // the special ordinals are negative numbers
- if (imm == 0) {
- library_ordinal = 0;
- } else {
- int8_t sign_extended = static_cast<int8_t>(OPCODE_MASK) | imm;
- library_ordinal = sign_extended;
- }
+ break;
+ }
- output << tab << "Library Ordinal := " << std::dec << library_ordinal << '\n';
- break;
- }
+ case BIND_OPCODES::SET_DYLIB_SPECIAL_IMM:
+ {
- case BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM:
- {
+ output << "[" << to_string(opcode) << "]" << '\n';
+ // the special ordinals are negative numbers
+ if (imm == 0) {
+ library_ordinal = 0;
+ } else {
+ int8_t sign_extended = static_cast<int8_t>(OPCODE_MASK) | imm;
+ library_ordinal = sign_extended;
+ }
- output << "[" << to_string(opcode) << "]" << '\n';
+ output << tab << fmt::format("Library Ordinal := {}\n", library_ordinal);
+ break;
+ }
- if (auto res = bind_stream.read_string()) {
- symbol_name = std::move(*res);
- } else {
- LIEF_ERR("Can't read BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM symbol's name");
- break;
- }
- symbol_flags = imm;
+ case BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM:
+ {
- is_weak_import = (imm & BIND_SYMBOL_FLAGS::WEAK_IMPORT) != 0;
+ output << "[" << to_string(opcode) << "]" << '\n';
- output << tab << "Symbol name := " << symbol_name << '\n';
- output << tab << "Is Weak ? " << std::boolalpha << is_weak_import << '\n';
+ if (auto res = bind_stream.read_string()) {
+ symbol_name = std::move(*res);
+ } else {
+ LIEF_ERR("Failed to read BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM "
+ "symbol name");
break;
}
+ symbol_flags = imm;
+
+ is_weak_import = (imm & BIND_SYMBOL_FLAGS::WEAK_IMPORT) != 0;
+
+ output << tab << "Symbol name := " << symbol_name << '\n';
+ output << tab << fmt::format("Is Weak ? {}\n", is_weak_import);
+ break;
+ }
case BIND_OPCODES::SET_TYPE_IMM:
- {
- output << "[" << to_string(opcode) << "]" << '\n';
+ {
+ output << "[" << to_string(opcode) << "]" << '\n';
- type = imm;
+ type = imm;
- output << tab << "Type := " << to_string(DyldBindingInfo::TYPE(type)) << '\n';
+ output << tab << "Type := " << to_string(DyldBindingInfo::TYPE(type))
+ << '\n';
- break;
- }
+ break;
+ }
case BIND_OPCODES::SET_ADDEND_SLEB:
- {
- output << "[" << to_string(opcode) << "]" << '\n';
-
- if (auto res = bind_stream.read_sleb128()) {
- addend = *res;
- } else {
- LIEF_ERR("Can't read BIND_OPCODE_SET_ADDEND_SLEB addend");
- break;
- }
+ {
+ output << "[" << to_string(opcode) << "]" << '\n';
- output << tab << "Addend := " << std::dec << addend << '\n';
+ if (auto res = bind_stream.read_sleb128()) {
+ addend = *res;
+ } else {
+ LIEF_ERR("Failed to read BIND_OPCODE_SET_ADDEND_SLEB addend");
break;
}
- case BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
- {
-
- output << "[" << to_string(opcode) << "]" << '\n';
- segment_idx = imm;
+ output << tab << fmt::format("Addend := {}\n", addend);
+ break;
+ }
- if (auto res = bind_stream.read_uleb128()) {
- segment_offset = *res;
- } else {
- LIEF_ERR("Can't read BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB segment offset");
- break;
- }
+ case BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
+ {
- output << tab << "Segment := " << segments[segment_idx].name() << '\n';
- output << tab << "Segment Offset := " << std::hex << std::showbase << segment_offset << '\n';
+ output << "[" << to_string(opcode) << "]" << '\n';
+ segment_idx = imm;
+ if (auto res = bind_stream.read_uleb128()) {
+ segment_offset = *res;
+ } else {
+ LIEF_ERR("Failed to read BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB "
+ "segment offset");
break;
}
- case BIND_OPCODES::ADD_ADDR_ULEB:
- {
+ output << tab << "Segment := " << safe_segment_name(segments, segment_idx)
+ << '\n';
+ output << tab << fmt::format("Segment Offset := {:#x}\n", segment_offset);
- output << "[" << to_string(opcode) << "]" << '\n';
+ break;
+ }
- uint64_t val = 0;
- if (auto res = bind_stream.read_uleb128()) {
- val = *res;
- } else {
- LIEF_ERR("Can't read BIND_OPCODE_ADD_ADDR_ULEB val");
- break;
- }
- segment_offset += val;
+ case BIND_OPCODES::ADD_ADDR_ULEB:
+ {
- output << tab << "Segment Offset += " << std::hex << std::showbase << val << " (" << segment_offset << ")" << '\n';
+ output << "[" << to_string(opcode) << "]" << '\n';
+
+ uint64_t val = 0;
+ if (auto res = bind_stream.read_uleb128()) {
+ val = *res;
+ } else {
+ LIEF_ERR("Failed to read BIND_OPCODE_ADD_ADDR_ULEB value");
break;
}
+ segment_offset += val;
+
+ output << tab
+ << fmt::format("Segment Offset += {:#x} ({:#x})\n", val,
+ segment_offset);
+ break;
+ }
case BIND_OPCODES::DO_BIND:
- {
- if (!use_threaded_rebase_bind) {
- output << "[" << to_string(opcode) << "]" << '\n';
-
- output << tab;
- output << "bind(";
- output << to_string(DyldBindingInfo::TYPE(type));
- output << ", ";
- output << segments[segment_idx].name();
- output << ", ";
- output << std::hex << std::showbase << segment_offset;
- output << ", ";
- output << symbol_name;
- output << ", library_ordinal=";
- output << (library_ordinal > 0 ? libraries[library_ordinal - 1].name() : std::to_string(library_ordinal));
- output << ", addend=";
- output << std::dec << addend;
- output << ", is_weak_import=";
- output << std::boolalpha << is_weak_import;
- output << ")" << '\n';
-
- segment_offset += pint_v;
-
- output << tab << "Segment Offset += " << std::hex << std::showbase << pint_v << " (" << segment_offset << ")" << '\n';
- } else {
- ordinal_table.push_back(ThreadedBindData{symbol_name, addend, library_ordinal, symbol_flags, type});
- }
- break;
+ {
+ if (!use_threaded_rebase_bind) {
+ output << "[" << to_string(opcode) << "]" << '\n';
+
+ output << tab
+ << fmt::format("bind({}, {}, {:#x}, {}, library_ordinal={}, "
+ "addend={}, is_weak_import={})\n",
+ to_string(DyldBindingInfo::TYPE(type)),
+ safe_segment_name(segments, segment_idx),
+ segment_offset, symbol_name,
+ library_ordinal > 0 ?
+ safe_library_name(libraries,
+ library_ordinal - 1) :
+ std::to_string(library_ordinal),
+ addend, is_weak_import);
+
+ segment_offset += pint_v;
+
+ output << tab
+ << fmt::format("Segment Offset += {:#x} ({:#x})\n", pint_v,
+ segment_offset);
+ } else {
+ ordinal_table.push_back(ThreadedBindData{symbol_name, addend,
+ library_ordinal, symbol_flags,
+ type});
}
+ break;
+ }
case BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB:
- {
+ {
- output << "[" << to_string(opcode) << "]" << '\n';
+ output << "[" << to_string(opcode) << "]" << '\n';
- output << tab;
- output << "bind(";
- output << to_string(DyldBindingInfo::TYPE(type));
- output << ", ";
- output << segments[segment_idx].name();
- output << ", ";
- output << std::hex << std::showbase << segment_offset;
- output << ", ";
- output << symbol_name;
- output << ", library_ordinal=";
- output << (library_ordinal > 0 ? libraries[library_ordinal - 1].name() : std::to_string(library_ordinal));
- output << ", addend=";
- output << std::dec << addend;
- output << ", is_weak_import=";
- output << std::boolalpha << is_weak_import;
- output << ")" << '\n';
-
- uint64_t v = 0;
- if (auto res = bind_stream.read_uleb128()) {
- v = *res;
- } else {
- LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB val");
- break;
- }
- segment_offset += v + pint_v;
+ output << tab
+ << fmt::format("bind({}, {}, {:#x}, {}, library_ordinal={}, "
+ "addend={}, is_weak_import={})\n",
+ to_string(DyldBindingInfo::TYPE(type)),
+ safe_segment_name(segments, segment_idx),
+ segment_offset, symbol_name,
+ library_ordinal > 0 ?
+ safe_library_name(libraries,
+ library_ordinal - 1) :
+ std::to_string(library_ordinal),
+ addend, is_weak_import);
- output << tab << "Segment Offset += " << std::hex << std::showbase << v + pint_v << " (" << segment_offset << ")" << '\n';
+ uint64_t v = 0;
+ if (auto res = bind_stream.read_uleb128()) {
+ v = *res;
+ } else {
+ LIEF_ERR("Failed to read BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB value");
break;
}
+ segment_offset += v + pint_v;
+
+ output << tab
+ << fmt::format("Segment Offset += {:#x} ({:#x})\n", v + pint_v,
+ segment_offset);
+ break;
+ }
case BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED:
- {
+ {
- output << "[" << to_string(opcode) << "]" << '\n';
+ output << "[" << to_string(opcode) << "]" << '\n';
+
+ output << tab
+ << fmt::format("bind({}, {}, {:#x}, {}, library_ordinal={}, "
+ "addend={}, is_weak_import={})\n",
+ to_string(DyldBindingInfo::TYPE(type)),
+ safe_segment_name(segments, segment_idx),
+ segment_offset, symbol_name,
+ library_ordinal > 0 ?
+ safe_library_name(libraries,
+ library_ordinal - 1) :
+ std::to_string(library_ordinal),
+ addend, is_weak_import);
+
+ segment_offset += imm * pint_v + pint_v;
- output << tab;
- output << "bind(";
- output << to_string(DyldBindingInfo::TYPE(type));
- output << ", ";
- output << segments[segment_idx].name();
- output << ", ";
- output << std::hex << std::showbase << segment_offset;
- output << ", ";
- output << symbol_name;
- output << ", library_ordinal=";
- output << (library_ordinal > 0 ? libraries[library_ordinal - 1].name() : std::to_string(library_ordinal));
- output << ", addend=";
- output << std::dec << addend;
- output << ", is_weak_import=";
- output << std::boolalpha << is_weak_import;
- output << ")" << '\n';
-
- segment_offset += imm * pint_v + pint_v;
-
- output << tab << "Segment Offset += " << std::hex << std::showbase << (imm * pint_v + pint_v) << " (" << segment_offset << ")" << '\n';
+ output << tab
+ << fmt::format("Segment Offset += {:#x} ({:#x})\n",
+ imm * pint_v + pint_v, segment_offset);
+ break;
+ }
+
+ case BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB:
+ {
+
+ output << "[" << to_string(opcode) << "]" << '\n';
+ // Count
+ if (auto res = bind_stream.read_uleb128()) {
+ count = *res;
+ } else {
+ LIEF_ERR(
+ "Failed to read BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB count"
+ );
break;
}
- case BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB:
- {
+ // Skip
+ if (auto res = bind_stream.read_uleb128()) {
+ skip = *res;
+ } else {
+ LIEF_ERR(
+ "Failed to read BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB skip"
+ );
+ break;
+ }
- output << "[" << to_string(opcode) << "]" << '\n';
- // Count
- if (auto res = bind_stream.read_uleb128()) {
- count = *res;
- } else {
- LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB count");
- break;
- }
+ count = safe_dyld_opcode_count<uint32_t>(segment_idx < segments.size() ?
+ &segments[segment_idx] :
+ nullptr,
+ segment_offset, pint_v, count);
- // Skip
- if (auto res = bind_stream.read_uleb128()) {
- skip = *res;
- } else {
- LIEF_ERR("Can't read BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB skip");
- break;
- }
+ output << tab
+ << fmt::format("for i in range({}):\n",
+ static_cast<uint32_t>(count));
+ for (size_t i = 0; i < count; ++i) {
+ output << tab << tab
+ << fmt::format("bind({}, {}, {:#x}, {}, library_ordinal={}, "
+ "addend={}, is_weak_import={})\n",
+ to_string(DyldBindingInfo::TYPE(type)),
+ safe_segment_name(segments, segment_idx),
+ segment_offset, symbol_name,
+ library_ordinal > 0 ?
+ safe_library_name(libraries,
+ library_ordinal - 1) :
+ std::to_string(library_ordinal),
+ addend, is_weak_import);
- output << tab << "for i in range(" << std::dec << static_cast<uint32_t>(count) << "):" << '\n';
- for (size_t i = 0; i < count; ++i) {
- output << tab << tab;
- output << "bind(";
- output << to_string(DyldBindingInfo::TYPE(type));
- output << ", ";
- output << segments[segment_idx].name();
- output << ", ";
- output << std::hex << std::showbase << segment_offset;
- output << ", ";
- output << symbol_name;
- output << ", library_ordinal=";
- output << (library_ordinal > 0 ? libraries[library_ordinal - 1].name() : std::to_string(library_ordinal));
- output << ", addend=";
- output << std::dec << addend;
- output << ", is_weak_import=";
- output << std::boolalpha << is_weak_import;
- output << ")" << '\n';
-
-
- segment_offset += skip + pint_v;
-
- output << "Segment Offset += " << std::hex << std::showbase << skip << " + " << pint_v << " (" << segment_offset << ")";
-
- output << '\n' << '\n';
- }
- break;
+
+ segment_offset += skip + pint_v;
+
+ output << fmt::format("Segment Offset += {:#x} + {:#x} ({:#x})\n\n",
+ skip, pint_v, segment_offset);
}
+ break;
+ }
case BIND_OPCODES::THREADED:
- {
- const auto subopcode = static_cast<BIND_SUBOPCODE_THREADED>(imm);
- output << std::string("[") + to_string(BIND_OPCODES::THREADED) + "]\n";
- switch (subopcode) {
- case BIND_SUBOPCODE_THREADED::APPLY:
+ {
+ const auto subopcode = static_cast<BIND_SUBOPCODE_THREADED>(imm);
+ output << fmt::format("[{}]\n", to_string(BIND_OPCODES::THREADED));
+ switch (subopcode) {
+ case BIND_SUBOPCODE_THREADED::APPLY:
+ {
+ output << tab << fmt::format("[{}]\n", to_string(subopcode));
+ uint64_t delta = 0;
+ if (segment_idx >= segments.size()) {
+ LIEF_WARN("Invalid segment index {} in THREADED bind", segment_idx);
+ break;
+ }
+ const SegmentCommand& current_segment = segments[segment_idx];
+ do {
+ const uint64_t address =
+ current_segment.virtual_address() + segment_offset;
+ span<const uint8_t> content = current_segment.content();
+ if (segment_offset >= content.size() ||
+ (segment_offset + sizeof(uint64_t)) >= content.size())
{
- output << tab << std::string("[") + to_string(subopcode) + "]\n";
- uint64_t delta = 0;
- const SegmentCommand& current_segment = segments[segment_idx];
- do {
- const uint64_t address = current_segment.virtual_address() + segment_offset;
- span<const uint8_t> content = current_segment.content();
- if (segment_offset >= content.size() ||
- (segment_offset + sizeof(uint64_t)) >= content.size())
- {
- LIEF_WARN("Bad segment offset (0x{:x})", segment_offset);
- break;
- }
- auto value = *reinterpret_cast<const uint64_t*>(content.data() + segment_offset);
- bool is_rebase = (value & (static_cast<uint64_t>(1) << 62)) == 0;
-
- if (is_rebase) {
- output << tab << tab << fmt::format("rebase({}, {}, 0x{:x})\n",
- "THREADED_REBASE", current_segment.name(), segment_offset);
- } else {
- uint16_t ordinal = value & 0xFFFF;
- if (ordinal >= ordinal_table_size || ordinal >= ordinal_table.size()) {
- LIEF_WARN("bind ordinal ({:d}) is out of range (max={:d}) for disk pointer 0x{:04x} in "
- "segment '{}' (segment offset: 0x{:04x})", ordinal, ordinal_table_size, value,
- current_segment.name(), segment_offset);
- break;
- }
- if (address < current_segment.virtual_address() ||
- address >= (current_segment.virtual_address() + current_segment.virtual_size())) {
- LIEF_WARN("Bad binding address");
- break;
- }
- const ThreadedBindData& th_bind_data = ordinal_table[ordinal];
- const int64_t library_ordinal = th_bind_data.library_ordinal;
- output << tab << tab << fmt::format("threaded_bind({}/{}, 0x{:x}, {}, {}, library_ordinal={}, "
- "addend={}, is_weak_import={})\n",
- "THREADED_BIND", to_string(DyldBindingInfo::TYPE(th_bind_data.type)), segment_offset,
- current_segment.name(), th_bind_data.symbol_name,
- library_ordinal > 0 ? libraries[library_ordinal - 1].name() : std::to_string(library_ordinal),
- th_bind_data.addend, th_bind_data.symbol_flags);
- }
- // The delta is bits [51..61]
- // And bit 62 is to tell us if we are a rebase (0) or bind (1)
- value &= ~(1ull << 62);
- delta = (value & 0x3FF8000000000000) >> 51;
- segment_offset += delta * sizeof(pint_v);
- output << tab << tab << fmt::format("Segment Offset += 0x{:x} (0x{:x})\n", delta * sizeof(pint_v), segment_offset);
- } while (delta != 0);
+ LIEF_WARN("Invalid segment offset: {:#x}", segment_offset);
break;
}
- case BIND_SUBOPCODE_THREADED::SET_BIND_ORDINAL_TABLE_SIZE_ULEB:
- {
- output << tab << std::string("[") + to_string(subopcode) + "]\n";
- if (auto res = bind_stream.read_uleb128()) {
- count = *res;
- } else {
- LIEF_ERR("Can't read BIND_SUBOPCODE_THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB count");
+ auto value = *reinterpret_cast<const uint64_t*>(content.data() +
+ segment_offset);
+ bool is_rebase = (value & (static_cast<uint64_t>(1) << 62)) == 0;
+
+ if (is_rebase) {
+ output << tab << tab
+ << fmt::format("rebase({}, {}, {:#x})\n", "THREADED_REBASE",
+ current_segment.name(), segment_offset);
+ } else {
+ uint16_t ordinal = value & 0xFFFF;
+ if (ordinal >= ordinal_table_size ||
+ ordinal >= ordinal_table.size())
+ {
+ LIEF_WARN(
+ "Bind ordinal {:d} out of range (max {:d}) at {:#06x} in "
+ "segment '{}' (offset: {:#06x})",
+ ordinal, ordinal_table_size, value, current_segment.name(),
+ segment_offset
+ );
break;
}
- ordinal_table_size = count + 1; // the +1 comes from: 'ld64 wrote the wrong value here and we need to offset by 1 for now.'
- use_threaded_rebase_bind = true;
- ordinal_table.reserve(ordinal_table_size);
- output << tab << tab << fmt::format("Ordinal table size := {:d}\n", count);
- break;
+ if (address < current_segment.virtual_address() ||
+ address >= (current_segment.virtual_address() +
+ current_segment.virtual_size()))
+ {
+ LIEF_WARN("Invalid binding address");
+ break;
+ }
+ const ThreadedBindData& th_bind_data = ordinal_table[ordinal];
+ const int64_t library_ordinal = th_bind_data.library_ordinal;
+ output << tab << tab
+ << fmt::format(
+ "threaded_bind({}/{}, {:#x}, {}, {}, "
+ "library_ordinal={}, "
+ "addend={}, is_weak_import={})\n",
+ "THREADED_BIND",
+ to_string(DyldBindingInfo::TYPE(th_bind_data.type)),
+ segment_offset, current_segment.name(),
+ th_bind_data.symbol_name,
+ library_ordinal > 0 ?
+ safe_library_name(libraries,
+ library_ordinal - 1) :
+ std::to_string(library_ordinal),
+ th_bind_data.addend, th_bind_data.symbol_flags
+ );
}
+ // The delta is bits [51..61]
+ // And bit 62 is to tell us if we are a rebase (0) or bind (1)
+ value &= ~(1ull << 62);
+ delta = (value & 0x3FF8000000000000) >> 51;
+ segment_offset += delta * sizeof(pint_v);
+ output << tab << tab
+ << fmt::format("Segment Offset += {:#x} ({:#x})\n",
+ delta * sizeof(pint_v), segment_offset);
+ } while (delta != 0);
+ break;
+ }
+ case BIND_SUBOPCODE_THREADED::SET_BIND_ORDINAL_TABLE_SIZE_ULEB:
+ {
+ static constexpr size_t MAX_COUNT = 65535;
+ output << tab << fmt::format("[{}]\n", to_string(subopcode));
+ auto val = bind_stream.read_uleb128();
+ if (!val) {
+ LIEF_ERR(
+ "Failed to read "
+ "BIND_SUBOPCODE_THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB count"
+ );
+ break;
+ }
+ count = *val;
+ if (count > MAX_COUNT) {
+ LIEF_ERR("BIND_SUBOPCODE_THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB "
+ "count too large: {}",
+ *val);
+ break;
+ }
+ ordinal_table_size =
+ count + 1; // the +1 comes from: 'ld64 wrote the wrong value here
+ // and we need to offset by 1 for now.'
+ use_threaded_rebase_bind = true;
+ ordinal_table.reserve(ordinal_table_size);
+ output << tab << tab
+ << fmt::format("Ordinal table size := {:d}\n", count);
+ break;
}
- break;
}
+ break;
+ }
default:
- {
- LIEF_ERR("Unsupported opcode: 0x{:x}", static_cast<uint32_t>(opcode));
- output << fmt::format("[UNKNOWN OP 0x{:x}]\n", static_cast<uint32_t>(opcode));
- break;
- }
+ {
+ LIEF_ERR("Unsupported opcode: {:#x}", static_cast<uint32_t>(opcode));
+ output << fmt::format("[UNKNOWN OP {:#x}]\n",
+ static_cast<uint32_t>(opcode));
+ break;
}
+ }
}
}
@@ -775,10 +846,10 @@ void DyldInfo::show_bindings(std::ostream& output, span<const uint8_t> bind_opco
void DyldInfo::weak_bind_opcodes(buffer_t raw) {
if (raw.size() > weak_bind_opcodes_.size()) {
- LIEF_WARN("Can't update weak bind opcodes. The provided data is larger than the original ones");
+ LIEF_WARN("Weak bind opcodes update failed: data exceeds original size");
return;
}
- std::move(std::begin(raw), std::end(raw), weak_bind_opcodes_.data());
+ std::move(raw.begin(), raw.end(), weak_bind_opcodes_.data());
}
@@ -792,10 +863,10 @@ std::string DyldInfo::show_weak_bind_opcodes() const {
// ============
void DyldInfo::lazy_bind_opcodes(buffer_t raw) {
if (raw.size() > lazy_bind_opcodes_.size()) {
- LIEF_WARN("Can't update lazy bind opcodes. The provided data is larger than the original ones");
+ LIEF_WARN("Lazy bind opcodes update failed: data exceeds original size");
return;
}
- std::move(std::begin(raw), std::end(raw), lazy_bind_opcodes_.data());
+ std::move(raw.begin(), raw.end(), lazy_bind_opcodes_.data());
}
std::string DyldInfo::show_lazy_bind_opcodes() const {
@@ -808,7 +879,7 @@ std::string DyldInfo::show_lazy_bind_opcodes() const {
// ===========
std::string DyldInfo::show_export_trie() const {
if (binary_ == nullptr) {
- LIEF_WARN("Can't print bind opcodes");
+ LIEF_WARN("Failed to print bind opcodes");
return "";
}
@@ -821,18 +892,18 @@ std::string DyldInfo::show_export_trie() const {
return output.str();
}
-void DyldInfo::show_trie(std::ostream& output, std::string output_prefix, BinaryStream& stream,
- uint64_t start, uint64_t end, const std::string& prefix) const
-{
+void DyldInfo::show_trie(std::ostream& output, std::string output_prefix,
+ BinaryStream& stream, uint64_t start, uint64_t end,
+ const std::string& prefix) const {
MachO::show_trie(output, std::move(output_prefix), stream, start, end, prefix);
}
void DyldInfo::export_trie(buffer_t raw) {
if (raw.size() > export_trie_.size()) {
- LIEF_WARN("Can't update the export trie. The provided data is larger than the original ones");
+ LIEF_WARN("Export trie update failed: data exceeds original size");
return;
}
- std::move(std::begin(raw), std::end(raw), export_trie_.data());
+ std::move(raw.begin(), raw.end(), export_trie_.data());
}
void DyldInfo::accept(Visitor& visitor) const {
@@ -848,11 +919,11 @@ bool operator!=(uint8_t lhs, DyldInfo::REBASE_OPCODES rhs) {
}
DyldInfo& DyldInfo::update_rebase_info(vector_iostream& stream) {
- auto cmp = [] (const RelocationDyld* lhs, const RelocationDyld* rhs) {
+ auto cmp = [](const RelocationDyld* lhs, const RelocationDyld* rhs) {
return *lhs < *rhs;
};
- // In recent version of dyld, relocations are melt with bindings
+ // In recent versions of dyld, relocations are merged with bindings
if (binding_encoding_version_ != BINDING_ENCODING_VERSION::V1) {
return *this;
}
@@ -875,31 +946,39 @@ DyldInfo& DyldInfo::update_rebase_info(vector_iostream& stream) {
for (RelocationDyld* rebase : rebases) {
if (type != rebase->type()) {
- output.emplace_back(static_cast<uint8_t>(REBASE_OPCODES::SET_TYPE_IMM), rebase->type());
+ output.emplace_back(static_cast<uint8_t>(REBASE_OPCODES::SET_TYPE_IMM),
+ rebase->type());
type = rebase->type();
}
if (address != rebase->address()) {
- if (rebase->address() < current_segment_start || rebase->address() >= current_segment_end) {
+ if (rebase->address() < current_segment_start ||
+ rebase->address() >= current_segment_end)
+ {
SegmentCommand* segment = rebase->segment();
if (segment == nullptr) {
- LIEF_ERR("No segment associated with the RebaseInfo. Can't update!");
+ LIEF_ERR("No segment associated with RebaseInfo");
return *this;
}
size_t index = segment->index();
current_segment_start = segment->virtual_address();
- current_segment_end = segment->virtual_address() + segment->virtual_size();
+ current_segment_end = segment->virtual_address() + segment->virtual_size();
current_segment_index = index;
- output.emplace_back(static_cast<uint8_t>(REBASE_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB), current_segment_index, rebase->address() - current_segment_start);
+ output.emplace_back(
+ static_cast<uint8_t>(REBASE_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB),
+ current_segment_index, rebase->address() - current_segment_start
+ );
} else {
- output.emplace_back(static_cast<uint8_t>(REBASE_OPCODES::ADD_ADDR_ULEB), rebase->address() - address);
+ output.emplace_back(static_cast<uint8_t>(REBASE_OPCODES::ADD_ADDR_ULEB),
+ rebase->address() - address);
}
address = rebase->address();
}
- output.emplace_back(static_cast<uint8_t>(REBASE_OPCODES::DO_REBASE_ULEB_TIMES), 1);
+ output.emplace_back(static_cast<uint8_t>(REBASE_OPCODES::DO_REBASE_ULEB_TIMES),
+ 1);
address += binary_->pointer_size();
if (address >= current_segment_end) {
@@ -914,8 +993,8 @@ DyldInfo& DyldInfo::update_rebase_info(vector_iostream& stream) {
// Compress packed runs of pointers
// Based on ld64-274.2/src/ld/LinkEdit.hpp:239
// ===========================================
- auto dst = std::begin(output);
- for (auto it = std::begin(output); it->opcode != REBASE_OPCODES::DONE; ++it) {
+ auto dst = output.begin();
+ for (auto it = output.begin(); it->opcode != REBASE_OPCODES::DONE; ++it) {
if (it->opcode == REBASE_OPCODES::DO_REBASE_ULEB_TIMES && it->op1 == 1) {
*dst = *it++;
@@ -935,14 +1014,14 @@ DyldInfo& DyldInfo::update_rebase_info(vector_iostream& stream) {
// ===========================================
// 2. Second optimization
// Combine rebase/add pairs
- // Base on ld64-274.2/src/ld/LinkEdit.hpp:257
+ // Based on ld64-274.2/src/ld/LinkEdit.hpp:257
// ===========================================
- dst = std::begin(output);
- for (auto it = std::begin(output); it->opcode != REBASE_OPCODES::DONE; ++it) {
+ dst = output.begin();
+ for (auto it = output.begin(); it->opcode != REBASE_OPCODES::DONE; ++it) {
- if ((it->opcode == REBASE_OPCODES::DO_REBASE_ULEB_TIMES)
- && it->op1 == 1
- && it[1].opcode == REBASE_OPCODES::ADD_ADDR_ULEB) {
+ if ((it->opcode == REBASE_OPCODES::DO_REBASE_ULEB_TIMES) && it->op1 == 1 &&
+ it[1].opcode == REBASE_OPCODES::ADD_ADDR_ULEB)
+ {
dst->opcode = static_cast<uint8_t>(REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB);
dst->op1 = it[1].op1;
++it;
@@ -955,22 +1034,25 @@ DyldInfo& DyldInfo::update_rebase_info(vector_iostream& stream) {
// ===========================================
// 3. Third optimization
- // Base on ld64-274.2/src/ld/LinkEdit.hpp:274
+ // Based on ld64-274.2/src/ld/LinkEdit.hpp:274
// ===========================================
- dst = std::begin(output);
- for (auto it = std::begin(output); it->opcode != REBASE_OPCODES::DONE; ++it) {
+ dst = output.begin();
+ for (auto it = output.begin(); it->opcode != REBASE_OPCODES::DONE; ++it) {
uint64_t delta = it->op1;
- if ((it->opcode == REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB)
- && (it[1].opcode == REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB)
- && (it[2].opcode == REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB)
- && (it[1].op1 == delta)
- && (it[2].op1 == delta) ) {
+ if ((it->opcode == REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB) &&
+ (it[1].opcode == REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB) &&
+ (it[2].opcode == REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB) &&
+ (it[1].op1 == delta) && (it[2].op1 == delta))
+ {
- dst->opcode = static_cast<uint8_t>(REBASE_OPCODES::DO_REBASE_ULEB_TIMES_SKIPPING_ULEB);
+ dst->opcode =
+ static_cast<uint8_t>(REBASE_OPCODES::DO_REBASE_ULEB_TIMES_SKIPPING_ULEB);
dst->op1 = 1;
dst->op2 = delta;
++it;
- while (it->opcode == REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB && it->op1 == delta) {
+ while (it->opcode == REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB &&
+ it->op1 == delta)
+ {
dst->op1++;
++it;
}
@@ -985,117 +1067,122 @@ DyldInfo& DyldInfo::update_rebase_info(vector_iostream& stream) {
// ===========================================
// 4. Fourth optimization
// Use immediate encodings
- // Base on ld64-274.2/src/ld/LinkEdit.hpp:303
+ // Based on ld64-274.2/src/ld/LinkEdit.hpp:303
// ===========================================
const size_t pint_size = binary_->pointer_size();
- for (auto it = std::begin(output); it->opcode != REBASE_OPCODES::DONE; ++it) {
+ for (auto it = output.begin(); it->opcode != REBASE_OPCODES::DONE; ++it) {
- if (it->opcode == REBASE_OPCODES::ADD_ADDR_ULEB && it->op1 < (15 * pint_size) && (it->op1 % pint_size) == 0) {
+ if (it->opcode == REBASE_OPCODES::ADD_ADDR_ULEB &&
+ it->op1 < (15 * pint_size) && (it->op1 % pint_size) == 0)
+ {
it->opcode = static_cast<uint8_t>(REBASE_OPCODES::ADD_ADDR_IMM_SCALED);
it->op1 = it->op1 / pint_size;
- } else if ( (it->opcode == REBASE_OPCODES::DO_REBASE_ULEB_TIMES) && (it->op1 < 15) ) {
+ } else if ((it->opcode == REBASE_OPCODES::DO_REBASE_ULEB_TIMES) &&
+ (it->op1 < 15))
+ {
it->opcode = static_cast<uint8_t>(REBASE_OPCODES::DO_REBASE_IMM_TIMES);
}
}
vector_iostream raw_output;
bool done = false;
- for (auto it = std::begin(output); !done && it != std::end(output); ++it) {
+ for (auto it = output.begin(); !done && it != output.end(); ++it) {
const details::rebase_instruction& inst = *it;
switch (static_cast<REBASE_OPCODES>(inst.opcode)) {
case REBASE_OPCODES::DONE:
- {
- done = true;
- break;
- }
+ {
+ done = true;
+ break;
+ }
case REBASE_OPCODES::SET_TYPE_IMM:
- {
- raw_output.write<uint8_t>(uint8_t(REBASE_OPCODES::SET_TYPE_IMM) | inst.op1);
- break;
- }
+ {
+ raw_output.write<uint8_t>(uint8_t(REBASE_OPCODES::SET_TYPE_IMM) |
+ inst.op1);
+ break;
+ }
case REBASE_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
- {
- raw_output
- .write<uint8_t>(uint8_t(REBASE_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB) | inst.op1)
+ {
+ raw_output
+ .write<uint8_t>(uint8_t(REBASE_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB) |
+ inst.op1)
.write_uleb128(inst.op2);
- break;
- }
+ break;
+ }
case REBASE_OPCODES::ADD_ADDR_ULEB:
- {
- raw_output
- .write<uint8_t>(uint8_t(REBASE_OPCODES::ADD_ADDR_ULEB))
+ {
+ raw_output.write<uint8_t>(uint8_t(REBASE_OPCODES::ADD_ADDR_ULEB))
.write_uleb128(inst.op1);
- break;
- }
+ break;
+ }
case REBASE_OPCODES::ADD_ADDR_IMM_SCALED:
- {
- raw_output
- .write<uint8_t>(uint8_t(REBASE_OPCODES::ADD_ADDR_IMM_SCALED) | inst.op1);
+ {
+ raw_output.write<uint8_t>(uint8_t(REBASE_OPCODES::ADD_ADDR_IMM_SCALED) |
+ inst.op1);
- break;
- }
+ break;
+ }
case REBASE_OPCODES::DO_REBASE_IMM_TIMES:
- {
- raw_output
- .write<uint8_t>(uint8_t(REBASE_OPCODES::DO_REBASE_IMM_TIMES) | inst.op1);
+ {
+ raw_output.write<uint8_t>(uint8_t(REBASE_OPCODES::DO_REBASE_IMM_TIMES) |
+ inst.op1);
- break;
- }
+ break;
+ }
case REBASE_OPCODES::DO_REBASE_ULEB_TIMES:
- {
- raw_output
- .write<uint8_t>(uint8_t(REBASE_OPCODES::DO_REBASE_ULEB_TIMES))
+ {
+ raw_output.write<uint8_t>(uint8_t(REBASE_OPCODES::DO_REBASE_ULEB_TIMES))
.write_uleb128(inst.op1);
- break;
- }
+ break;
+ }
case REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB:
- {
- raw_output
- .write<uint8_t>(uint8_t(REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB))
+ {
+ raw_output.write<uint8_t>(uint8_t(REBASE_OPCODES::DO_REBASE_ADD_ADDR_ULEB))
.write_uleb128(inst.op1);
- break;
- }
+ break;
+ }
case REBASE_OPCODES::DO_REBASE_ULEB_TIMES_SKIPPING_ULEB:
- {
- raw_output
- .write<uint8_t>(uint8_t(REBASE_OPCODES::DO_REBASE_ULEB_TIMES_SKIPPING_ULEB))
+ {
+ raw_output
+ .write<uint8_t>(
+ uint8_t(REBASE_OPCODES::DO_REBASE_ULEB_TIMES_SKIPPING_ULEB)
+ )
.write_uleb128(inst.op1)
.write_uleb128(inst.op2);
- break;
- }
+ break;
+ }
default:
- {
- LIEF_ERR("Unknown opcode: 0x{:x}", static_cast<uint32_t>(inst.opcode));
- }
+ {
+ LIEF_ERR("Unknown opcode: {:#x}", static_cast<uint32_t>(inst.opcode));
+ }
}
-
}
raw_output.align(pint_size);
if (raw_output.size() > rebase_opcodes_.size()) {
- LIEF_INFO("New rebase opcodes are larger than the original ones: 0x{:06x} -> 0x{:06x}",
+ LIEF_INFO("New rebase opcodes exceed original size: {:#08x} -> {:#08x}",
rebase_opcodes_.size(), raw_output.size());
}
- stream.write(std::move(raw_output.raw()));
+ stream.write(raw_output.raw());
return *this;
}
-DyldInfo& DyldInfo::update_binding_info(vector_iostream& stream, details::dyld_info_command& cmd) {
- auto cmp = [] (const DyldBindingInfo* lhs, const DyldBindingInfo* rhs) {
+DyldInfo& DyldInfo::update_binding_info(vector_iostream& stream,
+ details::dyld_info_command& cmd) {
+ auto cmp = [](const DyldBindingInfo* lhs, const DyldBindingInfo* rhs) {
if (lhs->library_ordinal() != rhs->library_ordinal()) {
return lhs->library_ordinal() < rhs->library_ordinal();
}
@@ -1113,10 +1200,10 @@ DyldInfo& DyldInfo::update_binding_info(vector_iostream& stream, details::dyld_i
}
return lhs->address() < rhs->address();
-
};
- auto cmp_weak_binding = [] (const DyldBindingInfo* lhs, const DyldBindingInfo* rhs) {
+ auto cmp_weak_binding = [](const DyldBindingInfo* lhs,
+ const DyldBindingInfo* rhs) {
if (lhs->has_symbol() && rhs->has_symbol()) {
if (lhs->symbol()->name() != rhs->symbol()->name()) {
return lhs->symbol()->name() < rhs->symbol()->name();
@@ -1130,10 +1217,10 @@ DyldInfo& DyldInfo::update_binding_info(vector_iostream& stream, details::dyld_i
}
return lhs->address() < rhs->address();
-
};
- auto cmp_lazy_binding = [] (const DyldBindingInfo* lhs, const DyldBindingInfo* rhs) {
+ auto cmp_lazy_binding = [](const DyldBindingInfo* lhs,
+ const DyldBindingInfo* rhs) {
return lhs->address() < rhs->address();
};
@@ -1146,22 +1233,22 @@ DyldInfo& DyldInfo::update_binding_info(vector_iostream& stream, details::dyld_i
switch (binfo->binding_class()) {
case DyldBindingInfo::CLASS::THREADED:
case DyldBindingInfo::CLASS::STANDARD:
- {
- standard_binds.insert(binfo.get());
- break;
- }
+ {
+ standard_binds.insert(binfo.get());
+ break;
+ }
case DyldBindingInfo::CLASS::WEAK:
- {
- weak_binds.insert(binfo.get());
- break;
- }
+ {
+ weak_binds.insert(binfo.get());
+ break;
+ }
case DyldBindingInfo::CLASS::LAZY:
- {
- lazy_binds.insert(binfo.get());
- break;
- }
+ {
+ lazy_binds.insert(binfo.get());
+ break;
+ }
}
}
@@ -1172,9 +1259,9 @@ DyldInfo& DyldInfo::update_binding_info(vector_iostream& stream, details::dyld_i
}
cmd.bind_size = stream.size() - cmd.bind_off;
- // LIEF_DEBUG("LC_DYLD_INFO.bind_off : 0x{:06x} -> 0x{:06x}",
+ // LIEF_DEBUG("LC_DYLD_INFO.bind_off : {:#08x} -> {:#08x}",
// this->bind().first, cmd.bind_off);
- // LIEF_DEBUG("LC_DYLD_INFO.bind_off : 0x{:06x} -> 0x{:06x}",
+ // LIEF_DEBUG("LC_DYLD_INFO.bind_off : {:#08x} -> {:#08x}",
// this->bind().second, cmd.bind_size);
}
if (!weak_binds.empty()) {
@@ -1202,7 +1289,9 @@ bool operator!=(uint8_t lhs, DyldInfo::BIND_OPCODES rhs) {
return lhs != static_cast<uint8_t>(rhs);
}
-DyldInfo& DyldInfo::update_weak_bindings(const DyldInfo::bind_container_t& bindings, vector_iostream& stream) {
+DyldInfo&
+ DyldInfo::update_weak_bindings(const DyldInfo::bind_container_t& bindings,
+ vector_iostream& stream) {
std::vector<details::binding_instruction> instructions;
uint64_t current_segment_start = 0;
@@ -1220,8 +1309,13 @@ DyldInfo& DyldInfo::update_weak_bindings(const DyldInfo::bind_container_t& bindi
Symbol* sym = info->symbol();
if (sym != nullptr) {
if (sym->name() != symbol_name) {
- uint64_t flag = info->is_non_weak_definition() ? BIND_SYMBOL_FLAGS::NON_WEAK_DEFINITION : 0;
- instructions.emplace_back(uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM), flag, 0, sym->name());
+ uint64_t flag = info->is_non_weak_definition() ?
+ BIND_SYMBOL_FLAGS::NON_WEAK_DEFINITION :
+ 0;
+ instructions.emplace_back(
+ uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM), flag, 0,
+ sym->name()
+ );
symbol_name = sym->name();
}
} else {
@@ -1230,34 +1324,44 @@ DyldInfo& DyldInfo::update_weak_bindings(const DyldInfo::bind_container_t& bindi
if (info->binding_type() != DyldBindingInfo::TYPE(type)) {
type = static_cast<uint8_t>(info->binding_type());
- instructions.emplace_back(static_cast<uint8_t>(BIND_OPCODES::SET_TYPE_IMM), type);
+ instructions.emplace_back(static_cast<uint8_t>(BIND_OPCODES::SET_TYPE_IMM),
+ type);
}
if (info->address() != address) {
- if (info->address() < current_segment_start || current_segment_end <= info->address()) {
+ if (info->address() < current_segment_start ||
+ current_segment_end <= info->address())
+ {
SegmentCommand* segment = info->segment();
if (segment == nullptr) {
- LIEF_ERR("No segment associated the weak binding information. Can't update");
+ LIEF_ERR("No segment associated with weak binding info");
return *this;
}
size_t index = segment->index();
current_segment_start = segment->virtual_address();
- current_segment_end = segment->virtual_address() + segment->virtual_size();
+ current_segment_end = segment->virtual_address() + segment->virtual_size();
current_segment_index = index;
- instructions.emplace_back(static_cast<uint8_t>(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB),
- current_segment_index, info->address() - current_segment_start);
+ instructions.emplace_back(
+ static_cast<uint8_t>(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB),
+ current_segment_index, info->address() - current_segment_start
+ );
} else {
- instructions.emplace_back(static_cast<uint8_t>(BIND_OPCODES::ADD_ADDR_ULEB), info->address() - address);
+ instructions.emplace_back(
+ static_cast<uint8_t>(BIND_OPCODES::ADD_ADDR_ULEB),
+ info->address() - address
+ );
}
address = info->address();
}
if (addend != info->addend()) {
- instructions.emplace_back(static_cast<uint8_t>(BIND_OPCODES::SET_ADDEND_SLEB), info->addend());
+ instructions.emplace_back(
+ static_cast<uint8_t>(BIND_OPCODES::SET_ADDEND_SLEB), info->addend()
+ );
addend = info->addend();
}
@@ -1273,9 +1377,11 @@ DyldInfo& DyldInfo::update_weak_bindings(const DyldInfo::bind_container_t& bindi
// combine bind/add pairs
// Based on ld64-274.2/src/ld/LinkEdit.hpp:469
// ===========================================
- auto dst = std::begin(instructions);
- for (auto it = std::begin(instructions); it->opcode != BIND_OPCODES::DONE; ++it) {
- if (it->opcode == BIND_OPCODES::DO_BIND && it[1].opcode == BIND_OPCODES::ADD_ADDR_ULEB) {
+ auto dst = instructions.begin();
+ for (auto it = instructions.begin(); it->opcode != BIND_OPCODES::DONE; ++it) {
+ if (it->opcode == BIND_OPCODES::DO_BIND &&
+ it[1].opcode == BIND_OPCODES::ADD_ADDR_ULEB)
+ {
dst->opcode = static_cast<uint8_t>(BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB);
dst->op1 = it[1].op1;
++it;
@@ -1290,17 +1396,19 @@ DyldInfo& DyldInfo::update_weak_bindings(const DyldInfo::bind_container_t& bindi
// 2. Second optimization
// Based on ld64-274.2/src/ld/LinkEdit.hpp:485
// ===========================================
- dst = std::begin(instructions);
- for (auto it = std::begin(instructions); it->opcode != BIND_OPCODES::DONE; ++it) {
+ dst = instructions.begin();
+ for (auto it = instructions.begin(); it->opcode != BIND_OPCODES::DONE; ++it) {
uint64_t delta = it->op1;
if (it->opcode == BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB &&
- it[1].opcode == BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB &&
- it[1].op1 == delta) {
- dst->opcode = static_cast<uint8_t>(BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB);
+ it[1].opcode == BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB && it[1].op1 == delta)
+ {
+ dst->opcode =
+ static_cast<uint8_t>(BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB);
dst->op1 = 1;
dst->op2 = delta;
++it;
- while (it->opcode == BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB && it->op1 == delta) {
+ while (it->opcode == BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB && it->op1 == delta)
+ {
dst->op1++;
++it;
}
@@ -1318,13 +1426,14 @@ DyldInfo& DyldInfo::update_weak_bindings(const DyldInfo::bind_container_t& bindi
// Use immediate encodings
// Based on ld64-274.2/src/ld/LinkEdit.hpp:512
// ===========================================
- for (auto it = std::begin(instructions); it->opcode != BIND_OPCODES::DONE; ++it) {
+ for (auto it = instructions.begin(); it->opcode != BIND_OPCODES::DONE; ++it) {
if (it->opcode == BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB &&
- it->op1 < (15 * pint_size) &&
- (it->op1 % pint_size) == 0) {
+ it->op1 < (15 * pint_size) && (it->op1 % pint_size) == 0)
+ {
it->opcode = static_cast<uint8_t>(BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED);
it->op1 = it->op1 / pint_size;
- } else if (it->opcode == BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB && it->op1 <= 15) {
+ } else if (it->opcode == BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB && it->op1 <= 15)
+ {
it->opcode = static_cast<uint8_t>(BIND_OPCODES::SET_DYLIB_ORDINAL_IMM);
}
}
@@ -1332,131 +1441,135 @@ DyldInfo& DyldInfo::update_weak_bindings(const DyldInfo::bind_container_t& bindi
bool done = false;
vector_iostream raw_output;
- for (auto it = std::begin(instructions); !done && it != std::end(instructions); ++it) {
+ for (auto it = instructions.begin(); !done && it != instructions.end(); ++it) {
const details::binding_instruction& inst = *it;
switch (static_cast<BIND_OPCODES>(inst.opcode)) {
case BIND_OPCODES::DONE:
- {
- done = true;
- break;
- }
+ {
+ done = true;
+ break;
+ }
case BIND_OPCODES::SET_DYLIB_ORDINAL_IMM:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_IMM) | inst.op1);
- break;
- }
+ {
+ raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_IMM) |
+ inst.op1);
+ break;
+ }
case BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB:
- {
- raw_output
- .write<uint8_t>(static_cast<uint8_t>(BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB))
+ {
+ raw_output
+ .write<uint8_t>(
+ static_cast<uint8_t>(BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB)
+ )
.write_uleb128(inst.op1);
- break;
- }
+ break;
+ }
case BIND_OPCODES::SET_DYLIB_SPECIAL_IMM:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_SPECIAL_IMM) | (inst.op1 & IMMEDIATE_MASK));
- break;
- }
+ {
+ raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_SPECIAL_IMM) |
+ (inst.op1 & IMMEDIATE_MASK));
+ break;
+ }
case BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM) | inst.op1)
+ {
+ raw_output
+ .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM) |
+ inst.op1)
.write(inst.name);
- break;
- }
+ break;
+ }
case BIND_OPCODES::SET_TYPE_IMM:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::SET_TYPE_IMM) | inst.op1);
- break;
- }
+ {
+ raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_TYPE_IMM) | inst.op1);
+ break;
+ }
case BIND_OPCODES::SET_ADDEND_SLEB:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::SET_ADDEND_SLEB))
+ {
+ raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_ADDEND_SLEB))
.write_sleb128(inst.op1);
- break;
- }
+ break;
+ }
case BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB) | inst.op1)
+ {
+ raw_output
+ .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB) |
+ inst.op1)
.write_uleb128(inst.op2);
- break;
- }
+ break;
+ }
case BIND_OPCODES::ADD_ADDR_ULEB:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::ADD_ADDR_ULEB))
+ {
+ raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::ADD_ADDR_ULEB))
.write_uleb128(inst.op1);
- break;
- }
+ break;
+ }
case BIND_OPCODES::DO_BIND:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND));
- break;
- }
+ {
+ raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND));
+ break;
+ }
case BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB))
+ {
+ raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB))
.write_uleb128(inst.op1);
- break;
- }
+ break;
+ }
case BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED) | inst.op1);
- break;
- }
+ {
+ raw_output.write<uint8_t>(
+ uint8_t(BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED) | inst.op1
+ );
+ break;
+ }
case BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB))
+ {
+ raw_output
+ .write<uint8_t>(
+ uint8_t(BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB)
+ )
.write_uleb128(inst.op1)
.write_uleb128(inst.op2);
- break;
- }
+ break;
+ }
default:
- {
- LIEF_WARN("Opcode {} ({:d}) is not processed for weak bindings",
- to_string(static_cast<BIND_OPCODES>(inst.opcode)), inst.opcode);
- break;
- }
+ {
+ LIEF_WARN("Unhandled opcode {} ({:d}) for weak bindings",
+ to_string(static_cast<BIND_OPCODES>(inst.opcode)), inst.opcode);
+ break;
+ }
}
}
raw_output.align(pint_size);
if (raw_output.size() > weak_bind_opcodes_.size()) {
- LIEF_INFO("New WEAK bind opcodes are larger than the original ones: 0x{:06x} -> 0x{:06x}",
+ LIEF_INFO("New weak bind opcodes exceed original size: {:#08x} -> {:#08x}",
weak_bind_opcodes_.size(), raw_output.size());
}
- stream.write(std::move(raw_output.raw()));
+ stream.write(raw_output.raw());
return *this;
}
-DyldInfo& DyldInfo::update_lazy_bindings(const DyldInfo::bind_container_t& bindings, vector_iostream& stream) {
+DyldInfo&
+ DyldInfo::update_lazy_bindings(const DyldInfo::bind_container_t& bindings,
+ vector_iostream& stream) {
vector_iostream raw_output;
for (DyldBindingInfo* info : bindings) {
SegmentCommand* segment = info->segment();
if (segment == nullptr) {
- LIEF_ERR("No segment associated with the lazy binding info. Can't update");
+ LIEF_ERR("No segment associated with lazy binding info");
return *this;
}
size_t index = segment->index();
@@ -1465,88 +1578,93 @@ DyldInfo& DyldInfo::update_lazy_bindings(const DyldInfo::bind_container_t& bindi
uint32_t current_segment_index = index;
raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB) | current_segment_index)
- .write_uleb128(info->address() - current_segment_start);
+ .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB) |
+ current_segment_index)
+ .write_uleb128(info->address() - current_segment_start);
if (info->library_ordinal() <= 0) {
- raw_output.write<uint8_t>(
- uint8_t(BIND_OPCODES::SET_DYLIB_SPECIAL_IMM) | (info->library_ordinal() & IMMEDIATE_MASK)
- );
+ raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_SPECIAL_IMM) |
+ (info->library_ordinal() & IMMEDIATE_MASK));
} else if (info->library_ordinal() <= 15) {
- raw_output.write<uint8_t>(
- uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_IMM) | info->library_ordinal()
- );
+ raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_IMM) |
+ info->library_ordinal());
} else {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB))
- .write_uleb128(info->library_ordinal());
+ raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB))
+ .write_uleb128(info->library_ordinal());
}
uint64_t flags = info->is_weak_import() ? BIND_SYMBOL_FLAGS::WEAK_IMPORT : 0;
- flags |= info->is_non_weak_definition() ? BIND_SYMBOL_FLAGS::NON_WEAK_DEFINITION : 0;
+ flags |= info->is_non_weak_definition() ?
+ BIND_SYMBOL_FLAGS::NON_WEAK_DEFINITION :
+ 0;
if (!info->has_symbol()) {
- LIEF_ERR("Missing symbol. Can't update");
+ LIEF_ERR("Missing symbol for update");
return *this;
}
raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM) | flags)
- .write(info->symbol()->name());
+ .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM) |
+ flags)
+ .write(info->symbol()->name());
- raw_output
- .write<uint8_t>(static_cast<uint8_t>(BIND_OPCODES::DO_BIND))
- .write<uint8_t>(static_cast<uint8_t>(BIND_OPCODES::DONE));
+ raw_output.write<uint8_t>(static_cast<uint8_t>(BIND_OPCODES::DO_BIND))
+ .write<uint8_t>(static_cast<uint8_t>(BIND_OPCODES::DONE));
}
raw_output.align(binary_->pointer_size());
- LIEF_DEBUG("size: 0x{:x} vs 0x{:x}", raw_output.size(), lazy_bind_opcodes_.size());
+ LIEF_DEBUG("Lazy bind size: {:#x} vs {:#x}", raw_output.size(),
+ lazy_bind_opcodes_.size());
if (raw_output.size() > lazy_bind_opcodes_.size()) {
- LIEF_INFO("New LAZY bind opcodes are larger than the original ones: 0x{:06x} -> 0x{:06x}",
+ LIEF_INFO("New lazy bind opcodes exceed original size: {:#08x} -> {:#08x}",
lazy_bind_opcodes_.size(), raw_output.size());
}
- stream.write(std::move(raw_output.raw()));
+ stream.write(raw_output.raw());
return *this;
}
-DyldInfo& DyldInfo::update_standard_bindings(const DyldInfo::bind_container_t& bindings, vector_iostream& stream) {
+DyldInfo&
+ DyldInfo::update_standard_bindings(const DyldInfo::bind_container_t& bindings,
+ vector_iostream& stream) {
switch (binding_encoding_version_) {
case BINDING_ENCODING_VERSION::V1:
- {
- update_standard_bindings_v1(bindings, stream);
- break;
- }
+ {
+ update_standard_bindings_v1(bindings, stream);
+ break;
+ }
case BINDING_ENCODING_VERSION::V2:
- {
- std::vector<RelocationDyld*> rebases;
- Binary::relocations_t relocations = binary_->relocations_list();
- rebases.reserve(relocations.size());
- for (Relocation* r : relocations) {
- if (r->origin() == Relocation::ORIGIN::DYLDINFO) {
- rebases.push_back(r->as<RelocationDyld>());
- }
+ {
+ std::vector<RelocationDyld*> rebases;
+ Binary::relocations_t relocations = binary_->relocations_list();
+ rebases.reserve(relocations.size());
+ for (Relocation* r : relocations) {
+ if (r->origin() == Relocation::ORIGIN::DYLDINFO) {
+ rebases.push_back(r->as<RelocationDyld>());
}
- LIEF_DEBUG("Bindings V2: #{} relocations", rebases.size());
- update_standard_bindings_v2(bindings, std::move(rebases), stream);
- break;
}
+ LIEF_DEBUG("Bindings V2: #{} relocations", rebases.size());
+ update_standard_bindings_v2(bindings, std::move(rebases), stream);
+ break;
+ }
case BINDING_ENCODING_VERSION::UNKNOWN:
default:
- {
- LIEF_WARN("Unsupported version");
- break;
- }
+ {
+ LIEF_WARN("Unsupported version");
+ break;
+ }
}
return *this;
}
-
-DyldInfo& DyldInfo::update_standard_bindings_v1(const DyldInfo::bind_container_t& bindings, vector_iostream& stream) {
- // This function updates the standard bindings opcodes (i.e. not lazy and not weak)
- // The following code is mainly inspired from LinkEdit.hpp: BindingInfoAtom<A>::encodeV1()
+DyldInfo& DyldInfo::update_standard_bindings_v1(
+ const DyldInfo::bind_container_t& bindings, vector_iostream& stream
+) {
+ // This function updates the standard bindings opcodes (i.e. not lazy and not
+ // weak). The following code is mainly inspired from LinkEdit.hpp:
+ // BindingInfoAtom<A>::encodeV1()
std::vector<details::binding_instruction> instructions;
@@ -1563,21 +1681,26 @@ DyldInfo& DyldInfo::update_standard_bindings_v1(const DyldInfo::bind_container_t
for (DyldBindingInfo* info : bindings) {
if (info->library_ordinal() != ordinal) {
if (info->library_ordinal() <= 0) {
- instructions.emplace_back(uint8_t(BIND_OPCODES::SET_DYLIB_SPECIAL_IMM), info->library_ordinal());
+ instructions.emplace_back(uint8_t(BIND_OPCODES::SET_DYLIB_SPECIAL_IMM),
+ info->library_ordinal());
} else {
- instructions.emplace_back(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB), info->library_ordinal());
+ instructions.emplace_back(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB),
+ info->library_ordinal());
}
ordinal = info->library_ordinal();
}
if (!info->has_symbol()) {
- LIEF_ERR("Missing symbol for updating v1 binding.");
+ LIEF_ERR("Missing symbol for updating v1 binding");
return *this;
}
if (info->symbol()->name() != symbol_name) {
uint64_t flag = info->is_weak_import() ? BIND_SYMBOL_FLAGS::WEAK_IMPORT : 0;
symbol_name = info->symbol()->name();
- instructions.emplace_back(uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM), flag, 0, symbol_name);
+ instructions.emplace_back(
+ uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM), flag, 0,
+ symbol_name
+ );
}
if (info->binding_type() != DyldBindingInfo::TYPE(type)) {
@@ -1586,29 +1709,35 @@ DyldInfo& DyldInfo::update_standard_bindings_v1(const DyldInfo::bind_container_t
}
if (info->address() != address) {
- if (info->address() < current_segment_start || info->address() >= current_segment_end) {
+ if (info->address() < current_segment_start ||
+ info->address() >= current_segment_end)
+ {
SegmentCommand* segment = info->segment();
if (segment == nullptr) {
- LIEF_ERR("Can't find the segment. Can't update binding v1");
+ LIEF_ERR("Segment not found for v1 binding update");
return *this;
}
size_t index = segment->index();
current_segment_start = segment->virtual_address();
- current_segment_end = segment->virtual_address() + segment->virtual_size();
+ current_segment_end = segment->virtual_address() + segment->virtual_size();
current_segment_index = index;
- instructions.emplace_back(uint8_t(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB),
- current_segment_index, info->address() - current_segment_start);
+ instructions.emplace_back(
+ uint8_t(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB),
+ current_segment_index, info->address() - current_segment_start
+ );
} else {
- instructions.emplace_back(uint8_t(BIND_OPCODES::ADD_ADDR_ULEB), info->address() - address);
+ instructions.emplace_back(uint8_t(BIND_OPCODES::ADD_ADDR_ULEB),
+ info->address() - address);
}
address = info->address();
}
if (addend != info->addend()) {
- instructions.emplace_back(uint8_t(BIND_OPCODES::SET_ADDEND_SLEB), info->addend());
+ instructions.emplace_back(uint8_t(BIND_OPCODES::SET_ADDEND_SLEB),
+ info->addend());
addend = info->addend();
}
@@ -1624,9 +1753,11 @@ DyldInfo& DyldInfo::update_standard_bindings_v1(const DyldInfo::bind_container_t
// combine bind/add pairs
// Based on ld64-274.2/src/ld/LinkEdit.hpp:469
// ===========================================
- auto dst = std::begin(instructions);
- for (auto it = std::begin(instructions); it->opcode != BIND_OPCODES::DONE; ++it) {
- if (it->opcode == BIND_OPCODES::DO_BIND && it[1].opcode == BIND_OPCODES::ADD_ADDR_ULEB) {
+ auto dst = instructions.begin();
+ for (auto it = instructions.begin(); it->opcode != BIND_OPCODES::DONE; ++it) {
+ if (it->opcode == BIND_OPCODES::DO_BIND &&
+ it[1].opcode == BIND_OPCODES::ADD_ADDR_ULEB)
+ {
dst->opcode = static_cast<uint8_t>(BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB);
dst->op1 = it[1].op1;
++it;
@@ -1641,17 +1772,19 @@ DyldInfo& DyldInfo::update_standard_bindings_v1(const DyldInfo::bind_container_t
// 2. Second optimization
// Based on ld64-274.2/src/ld/LinkEdit.hpp:485
// ===========================================
- dst = std::begin(instructions);
- for (auto it = std::begin(instructions); it->opcode != BIND_OPCODES::DONE; ++it) {
+ dst = instructions.begin();
+ for (auto it = instructions.begin(); it->opcode != BIND_OPCODES::DONE; ++it) {
uint64_t delta = it->op1;
if (it->opcode == BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB &&
- it[1].opcode == BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB &&
- it[1].op1 == delta) {
- dst->opcode = static_cast<uint8_t>(BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB);
+ it[1].opcode == BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB && it[1].op1 == delta)
+ {
+ dst->opcode =
+ static_cast<uint8_t>(BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB);
dst->op1 = 1;
dst->op2 = delta;
++it;
- while (it->opcode == BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB && it->op1 == delta) {
+ while (it->opcode == BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB && it->op1 == delta)
+ {
dst->op1++;
++it;
}
@@ -1669,13 +1802,14 @@ DyldInfo& DyldInfo::update_standard_bindings_v1(const DyldInfo::bind_container_t
// Use immediate encodings
// Based on ld64-274.2/src/ld/LinkEdit.hpp:512
// ===========================================
- for (auto it = std::begin(instructions); it->opcode != BIND_OPCODES::DONE; ++it) {
+ for (auto it = instructions.begin(); it->opcode != BIND_OPCODES::DONE; ++it) {
if (it->opcode == BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB &&
- it->op1 < (15 * pint_size) &&
- (it->op1 % pint_size) == 0) {
+ it->op1 < (15 * pint_size) && (it->op1 % pint_size) == 0)
+ {
it->opcode = static_cast<uint8_t>(BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED);
it->op1 = it->op1 / pint_size;
- } else if (it->opcode == BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB && it->op1 <= 15) {
+ } else if (it->opcode == BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB && it->op1 <= 15)
+ {
it->opcode = static_cast<uint8_t>(BIND_OPCODES::SET_DYLIB_ORDINAL_IMM);
}
}
@@ -1683,134 +1817,136 @@ DyldInfo& DyldInfo::update_standard_bindings_v1(const DyldInfo::bind_container_t
bool done = false;
vector_iostream raw_output;
- for (auto it = std::begin(instructions); !done && it != std::end(instructions); ++it) {
+ for (auto it = instructions.begin(); !done && it != instructions.end(); ++it) {
const details::binding_instruction& inst = *it;
switch (static_cast<BIND_OPCODES>(inst.opcode)) {
case BIND_OPCODES::DONE:
- {
- done = true;
- break;
- }
+ {
+ done = true;
+ break;
+ }
case BIND_OPCODES::SET_DYLIB_ORDINAL_IMM:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_IMM) | inst.op1);
- break;
- }
+ {
+ raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_IMM) |
+ inst.op1);
+ break;
+ }
case BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB))
+ {
+ raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB))
.write_uleb128(inst.op1);
- break;
- }
+ break;
+ }
case BIND_OPCODES::SET_DYLIB_SPECIAL_IMM:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_SPECIAL_IMM) | (inst.op1 & IMMEDIATE_MASK));
- break;
- }
+ {
+ raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_SPECIAL_IMM) |
+ (inst.op1 & IMMEDIATE_MASK));
+ break;
+ }
case BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM) | inst.op1)
+ {
+ raw_output
+ .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM) |
+ inst.op1)
.write(inst.name);
- break;
- }
+ break;
+ }
case BIND_OPCODES::SET_TYPE_IMM:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::SET_TYPE_IMM) | inst.op1);
- break;
- }
+ {
+ raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_TYPE_IMM) | inst.op1);
+ break;
+ }
case BIND_OPCODES::SET_ADDEND_SLEB:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::SET_ADDEND_SLEB))
+ {
+ raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_ADDEND_SLEB))
.write_sleb128(inst.op1);
- break;
- }
+ break;
+ }
case BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB) | inst.op1)
+ {
+ raw_output
+ .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB) |
+ inst.op1)
.write_uleb128(inst.op2);
- break;
- }
+ break;
+ }
case BIND_OPCODES::ADD_ADDR_ULEB:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::ADD_ADDR_ULEB))
+ {
+ raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::ADD_ADDR_ULEB))
.write_uleb128(inst.op1);
- break;
- }
+ break;
+ }
case BIND_OPCODES::DO_BIND:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND));
- break;
- }
+ {
+ raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND));
+ break;
+ }
case BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB))
+ {
+ raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB))
.write_uleb128(inst.op1);
- break;
- }
+ break;
+ }
case BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED) | inst.op1);
- break;
- }
+ {
+ raw_output.write<uint8_t>(
+ uint8_t(BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED) | inst.op1
+ );
+ break;
+ }
case BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB))
+ {
+ raw_output
+ .write<uint8_t>(
+ uint8_t(BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB)
+ )
.write_uleb128(inst.op1)
.write_uleb128(inst.op2);
- break;
- }
+ break;
+ }
default:
- {
- LIEF_WARN("Opcode {} ({:d}) is not processed for weak bindings",
- to_string(static_cast<BIND_OPCODES>(inst.opcode)), inst.opcode);
- break;
- }
+ {
+ LIEF_WARN("Unhandled opcode {} ({:d}) for weak bindings",
+ to_string(static_cast<BIND_OPCODES>(inst.opcode)), inst.opcode);
+ break;
+ }
}
}
raw_output.align(pint_size);
if (raw_output.size() > bind_opcodes_.size()) {
- LIEF_INFO("New REGULAR bind opcodes are larger than the original ones: 0x{:06x} -> 0x{:06x}",
+ LIEF_INFO("New regular bind opcodes exceed original size: {:#08x} -> {:#08x}",
bind_opcodes_.size(), raw_output.size());
}
- stream.write(std::move(raw_output.raw()));
+ stream.write(raw_output.raw());
return *this;
}
-DyldInfo& DyldInfo::update_standard_bindings_v2(const DyldInfo::bind_container_t& bindings_set,
- std::vector<RelocationDyld*> rebases, vector_iostream& stream) {
+DyldInfo& DyldInfo::update_standard_bindings_v2(
+ const DyldInfo::bind_container_t& bindings_set,
+ std::vector<RelocationDyld*> rebases, vector_iostream& stream
+) {
// v2 encoding as defined in Linkedit.hpp - BindingInfoAtom<A>::encodeV2()
// This encoding uses THREADED opcodes.
- std::vector<DyldBindingInfo*> bindings = {std::begin(bindings_set), std::end(bindings_set)};
+ std::vector<DyldBindingInfo*> bindings = {bindings_set.begin(),
+ bindings_set.end()};
std::vector<details::binding_instruction> instructions;
uint64_t current_segment_start = 0;
- uint64_t current_segment_end = 0;
+ uint64_t current_segment_end = 0;
uint64_t current_segment_index = 0;
uint8_t type = 0;
auto address = static_cast<uint64_t>(-1);
@@ -1825,13 +1961,14 @@ DyldInfo& DyldInfo::update_standard_bindings_v2(const DyldInfo::bind_container_t
const int32_t lib_ordinal = info->library_ordinal();
if (ordinal != lib_ordinal) {
if (lib_ordinal <= 0) {
- instructions.emplace_back(uint8_t(BIND_OPCODES::SET_DYLIB_SPECIAL_IMM), lib_ordinal);
- }
- else if (lib_ordinal <= 15) {
- instructions.emplace_back(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_IMM), lib_ordinal);
- }
- else {
- instructions.emplace_back(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB), lib_ordinal);
+ instructions.emplace_back(uint8_t(BIND_OPCODES::SET_DYLIB_SPECIAL_IMM),
+ lib_ordinal);
+ } else if (lib_ordinal <= 15) {
+ instructions.emplace_back(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_IMM),
+ lib_ordinal);
+ } else {
+ instructions.emplace_back(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB),
+ lib_ordinal);
}
ordinal = lib_ordinal;
made_changes = true;
@@ -1843,7 +1980,10 @@ DyldInfo& DyldInfo::update_standard_bindings_v2(const DyldInfo::bind_container_t
if (symbol_name != info->symbol()->name()) {
uint64_t flag = info->is_weak_import() ? BIND_SYMBOL_FLAGS::WEAK_IMPORT : 0;
symbol_name = info->symbol()->name();
- instructions.emplace_back(uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM), flag, 0, symbol_name);
+ instructions.emplace_back(
+ uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM), flag, 0,
+ symbol_name
+ );
made_changes = true;
}
@@ -1861,12 +2001,12 @@ DyldInfo& DyldInfo::update_standard_bindings_v2(const DyldInfo::bind_container_t
address = info->address();
SegmentCommand* segment = info->segment();
if (segment == nullptr) {
- LIEF_ERR("Can't find the segment associated with the binding info. Can't udpate binding v2");
+ LIEF_ERR("Segment not found for v2 binding update");
return *this;
}
size_t index = segment->index();
current_segment_start = segment->virtual_address();
- current_segment_end = segment->virtual_address() + segment->virtual_size();
+ current_segment_end = segment->virtual_address() + segment->virtual_size();
current_segment_index = index;
made_changes = true;
}
@@ -1883,7 +2023,9 @@ DyldInfo& DyldInfo::update_standard_bindings_v2(const DyldInfo::bind_container_t
}
}
- if (num_bindings > std::numeric_limits<uint16_t>::max() && num_bindings != static_cast<uint64_t>(-1)) {
+ if (num_bindings > std::numeric_limits<uint16_t>::max() &&
+ num_bindings != static_cast<uint64_t>(-1))
+ {
LIEF_ERR("Too many binds ({:d}). The limit being 65536");
return *this;
}
@@ -1899,18 +2041,21 @@ DyldInfo& DyldInfo::update_standard_bindings_v2(const DyldInfo::bind_container_t
threaded_rebase_bind_indices.push_back(i + 1);
}
- std::sort(std::begin(threaded_rebase_bind_indices), std::end(threaded_rebase_bind_indices),
- [&bindings, &rebases] (int64_t index_a, int64_t index_b) {
- if (index_a == index_b) {
- return false;
- }
- uint64_t address_a = index_a <= 0 ? rebases[-index_a]->address() : bindings[index_a - 1]->address();
- uint64_t address_b = index_b <= 0 ? rebases[-index_b]->address() : bindings[index_b - 1]->address();
- return address_a < address_b;
- });
+ std::sort(threaded_rebase_bind_indices.begin(),
+ threaded_rebase_bind_indices.end(),
+ [&bindings, &rebases](int64_t index_a, int64_t index_b) {
+ if (index_a == index_b) {
+ return false;
+ }
+ uint64_t address_a = index_a <= 0 ? rebases[-index_a]->address() :
+ bindings[index_a - 1]->address();
+ uint64_t address_b = index_b <= 0 ? rebases[-index_b]->address() :
+ bindings[index_b - 1]->address();
+ return address_a < address_b;
+ });
current_segment_start = 0;
- current_segment_end = 0;
+ current_segment_end = 0;
current_segment_index = 0;
uint64_t prev_page_index = 0;
@@ -1936,156 +2081,164 @@ DyldInfo& DyldInfo::update_standard_bindings_v2(const DyldInfo::bind_container_t
return *this;
}
if (address % 8 != 0) {
- LIEF_WARN("Address not aligned!");
+ LIEF_WARN("Address not aligned");
}
bool new_segment = false;
if (address < current_segment_start || address >= current_segment_end) {
size_t index = segment->index();
current_segment_start = segment->virtual_address();
- current_segment_end = segment->virtual_address() + segment->virtual_size();
+ current_segment_end = segment->virtual_address() + segment->virtual_size();
current_segment_index = index;
new_segment = true;
}
uint64_t page_index = (address - current_segment_start) / 4096;
if (new_segment || page_index != prev_page_index) {
instructions.emplace_back(uint8_t(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB),
- current_segment_index, address - current_segment_start);
+ current_segment_index,
+ address - current_segment_start);
instructions.emplace_back(uint8_t(BIND_OPCODES::THREADED) |
- uint8_t(BIND_SUBOPCODE_THREADED::APPLY),
+ uint8_t(BIND_SUBOPCODE_THREADED::APPLY),
0);
}
prev_page_index = page_index;
}
instructions.emplace_back(static_cast<uint8_t>(BIND_OPCODES::DONE), 0);
vector_iostream raw_output;
- raw_output.write<uint8_t>(static_cast<uint8_t>(BIND_OPCODES::THREADED) |
- static_cast<uint8_t>(BIND_SUBOPCODE_THREADED::SET_BIND_ORDINAL_TABLE_SIZE_ULEB))
- .write_uleb128(num_bindings + 1);
+ raw_output
+ .write<uint8_t>(static_cast<uint8_t>(BIND_OPCODES::THREADED) |
+ static_cast<uint8_t>(
+ BIND_SUBOPCODE_THREADED::SET_BIND_ORDINAL_TABLE_SIZE_ULEB
+ ))
+ .write_uleb128(num_bindings + 1);
bool done = false;
- for (auto it = std::begin(instructions); !done && it != std::end(instructions); ++it) {
+ for (auto it = instructions.begin(); !done && it != instructions.end(); ++it) {
const details::binding_instruction& inst = *it;
- switch(static_cast<BIND_OPCODES>(it->opcode)) {
+ switch (static_cast<BIND_OPCODES>(it->opcode)) {
case BIND_OPCODES::DONE:
- {
- done = true;
- break;
- }
+ {
+ done = true;
+ break;
+ }
case BIND_OPCODES::SET_DYLIB_ORDINAL_IMM:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_IMM) | inst.op1);
- break;
- }
+ {
+ raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_IMM) |
+ inst.op1);
+ break;
+ }
case BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB))
+ {
+ raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_ORDINAL_ULEB))
.write_uleb128(inst.op1);
- break;
- }
+ break;
+ }
case BIND_OPCODES::SET_DYLIB_SPECIAL_IMM:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_SPECIAL_IMM) | (inst.op1 & IMMEDIATE_MASK));
- break;
- }
+ {
+ raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_DYLIB_SPECIAL_IMM) |
+ (inst.op1 & IMMEDIATE_MASK));
+ break;
+ }
case BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM) | inst.op1)
+ {
+ raw_output
+ .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SYMBOL_TRAILING_FLAGS_IMM) |
+ inst.op1)
.write(inst.name);
- break;
- }
+ break;
+ }
case BIND_OPCODES::SET_TYPE_IMM:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::SET_TYPE_IMM) | inst.op1);
- break;
- }
+ {
+ raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_TYPE_IMM) | inst.op1);
+ break;
+ }
case BIND_OPCODES::SET_ADDEND_SLEB:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::SET_ADDEND_SLEB))
+ {
+ raw_output.write<uint8_t>(uint8_t(BIND_OPCODES::SET_ADDEND_SLEB))
.write_sleb128(inst.op1);
- break;
- }
+ break;
+ }
case BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB) | inst.op1)
+ {
+ raw_output
+ .write<uint8_t>(uint8_t(BIND_OPCODES::SET_SEGMENT_AND_OFFSET_ULEB) |
+ inst.op1)
.write_uleb128(inst.op2);
- break;
- }
+ break;
+ }
case BIND_OPCODES::ADD_ADDR_ULEB:
- {
- raw_output
+ {
+ raw_output
.write<uint8_t>(static_cast<uint8_t>(BIND_OPCODES::ADD_ADDR_ULEB))
.write_uleb128(inst.op1);
- break;
- }
+ break;
+ }
case BIND_OPCODES::DO_BIND:
- {
- raw_output
- .write<uint8_t>(static_cast<uint8_t>(BIND_OPCODES::DO_BIND));
- break;
- }
+ {
+ raw_output.write<uint8_t>(static_cast<uint8_t>(BIND_OPCODES::DO_BIND));
+ break;
+ }
case BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB:
- {
- raw_output
- .write<uint8_t>(static_cast<uint8_t>(BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB))
+ {
+ raw_output
+ .write<uint8_t>(
+ static_cast<uint8_t>(BIND_OPCODES::DO_BIND_ADD_ADDR_ULEB)
+ )
.write_uleb128(inst.op1);
- break;
- }
+ break;
+ }
case BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED) | inst.op1);
- break;
- }
+ {
+ raw_output.write<uint8_t>(
+ uint8_t(BIND_OPCODES::DO_BIND_ADD_ADDR_IMM_SCALED) | inst.op1
+ );
+ break;
+ }
case BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB:
- {
- raw_output
- .write<uint8_t>(uint8_t(BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB))
+ {
+ raw_output
+ .write<uint8_t>(
+ uint8_t(BIND_OPCODES::DO_BIND_ULEB_TIMES_SKIPPING_ULEB)
+ )
.write_uleb128(inst.op1)
.write_uleb128(inst.op2);
- break;
- }
+ break;
+ }
case BIND_OPCODES::THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB:
- {
- raw_output
- .write<uint8_t>(static_cast<uint8_t>(BIND_OPCODES::THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB))
+ {
+ raw_output
+ .write<uint8_t>(static_cast<uint8_t>(
+ BIND_OPCODES::THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB
+ ))
.write_uleb128(inst.op1);
- break;
- }
+ break;
+ }
case BIND_OPCODES::THREADED_APPLY:
- {
- raw_output
- .write(static_cast<uint8_t>(BIND_OPCODES::THREADED_APPLY));
- break;
- }
+ {
+ raw_output.write(static_cast<uint8_t>(BIND_OPCODES::THREADED_APPLY));
+ break;
+ }
default:
- {
- LIEF_ERR("Unsupported opcode");
- done = true;
- break;
- }
+ {
+ LIEF_ERR("Unsupported opcode");
+ done = true;
+ break;
+ }
}
}
@@ -2093,38 +2246,51 @@ DyldInfo& DyldInfo::update_standard_bindings_v2(const DyldInfo::bind_container_t
raw_output.align(pint_size);
if (raw_output.size() > bind_opcodes_.size()) {
- LIEF_INFO("New REGULAR V2 bind opcodes are larger than the original ones: 0x{:06x} -> 0x{:06x}",
- bind_opcodes_.size(), raw_output.size());
+ LIEF_INFO(
+ "New regular v2 bind opcodes exceed original size: {:#08x} -> {:#08x}",
+ bind_opcodes_.size(), raw_output.size()
+ );
}
- stream.write(std::move(raw_output.raw()));
+ stream.write(raw_output.raw());
return *this;
}
DyldInfo& DyldInfo::update_export_trie(vector_iostream& stream) {
- std::vector<uint8_t> raw_output = create_trie(export_info_, binary_->pointer_size());
+ std::vector<uint8_t> raw_output =
+ create_trie(export_info_, binary_->pointer_size());
if (raw_output.size() > export_trie_.size()) {
- LIEF_INFO("New EXPORTS TRIE is larger than the original one: 0x{:06x} -> 0x{:06x}",
+ LIEF_INFO("New export trie exceeds original size: {:#08x} -> {:#08x}",
export_trie_.size(), raw_output.size());
}
- stream.write(std::move(raw_output));
+ stream.write(raw_output);
return *this;
}
-void DyldInfo::add(std::unique_ptr<ExportInfo> info) {
- export_info_.push_back(std::move(info));
+ExportInfo* DyldInfo::add(std::unique_ptr<ExportInfo> info) {
+ return export_info_.emplace_back(std::move(info)).get();
}
std::ostream& DyldInfo::print(std::ostream& os) const {
LoadCommand::print(os) << '\n';
os << fmt::format("{:11}: {:10} {:10}", "Type", "Offset", "Size") << '\n'
- << fmt::format("{:11}: {:10} {:10}", "Rebase", std::get<0>(rebase()), std::get<1>(rebase())) << '\n'
- << fmt::format("{:11}: {:10} {:10}", "Bind", std::get<0>(bind()), std::get<1>(bind())) << '\n'
- << fmt::format("{:11}: {:10} {:10}", "Weak bind", std::get<0>(weak_bind()), std::get<1>(weak_bind())) << '\n'
- << fmt::format("{:11}: {:10} {:10}", "Lazy bind", std::get<0>(lazy_bind()), std::get<1>(lazy_bind())) << '\n'
- << fmt::format("{:11}: {:10} {:10}", "Export", std::get<0>(export_info()), std::get<1>(export_info())) << '\n';
+ << fmt::format("{:11}: {:10} {:10}", "Rebase", std::get<0>(rebase()),
+ std::get<1>(rebase()))
+ << '\n'
+ << fmt::format("{:11}: {:10} {:10}", "Bind", std::get<0>(bind()),
+ std::get<1>(bind()))
+ << '\n'
+ << fmt::format("{:11}: {:10} {:10}", "Weak bind", std::get<0>(weak_bind()),
+ std::get<1>(weak_bind()))
+ << '\n'
+ << fmt::format("{:11}: {:10} {:10}", "Lazy bind", std::get<0>(lazy_bind()),
+ std::get<1>(lazy_bind()))
+ << '\n'
+ << fmt::format("{:11}: {:10} {:10}", "Export", std::get<0>(export_info()),
+ std::get<1>(export_info()))
+ << '\n';
it_const_binding_info bindings = this->bindings();
if (!bindings.empty()) {
@@ -2147,14 +2313,14 @@ std::ostream& DyldInfo::print(std::ostream& os) const {
const char* to_string(DyldInfo::REBASE_TYPE e) {
- #define ENTRY(X) std::pair(DyldInfo::REBASE_TYPE::X, #X)
- STRING_MAP enums2str {
- ENTRY(POINTER),
- ENTRY(TEXT_ABSOLUTE32),
- ENTRY(TEXT_PCREL32),
- ENTRY(THREADED),
+#define ENTRY(X) std::pair(DyldInfo::REBASE_TYPE::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(POINTER),
+ ENTRY(TEXT_ABSOLUTE32),
+ ENTRY(TEXT_PCREL32),
+ ENTRY(THREADED),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
}
@@ -2162,19 +2328,19 @@ const char* to_string(DyldInfo::REBASE_TYPE e) {
}
const char* to_string(DyldInfo::REBASE_OPCODES e) {
- #define ENTRY(X) std::pair(DyldInfo::REBASE_OPCODES::X, #X)
- STRING_MAP enums2str {
- ENTRY(DONE),
- ENTRY(SET_TYPE_IMM),
- ENTRY(SET_SEGMENT_AND_OFFSET_ULEB),
- ENTRY(ADD_ADDR_ULEB),
- ENTRY(ADD_ADDR_IMM_SCALED),
- ENTRY(DO_REBASE_IMM_TIMES),
- ENTRY(DO_REBASE_ULEB_TIMES),
- ENTRY(DO_REBASE_ADD_ADDR_ULEB),
- ENTRY(DO_REBASE_ULEB_TIMES_SKIPPING_ULEB),
+#define ENTRY(X) std::pair(DyldInfo::REBASE_OPCODES::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(DONE),
+ ENTRY(SET_TYPE_IMM),
+ ENTRY(SET_SEGMENT_AND_OFFSET_ULEB),
+ ENTRY(ADD_ADDR_ULEB),
+ ENTRY(ADD_ADDR_IMM_SCALED),
+ ENTRY(DO_REBASE_IMM_TIMES),
+ ENTRY(DO_REBASE_ULEB_TIMES),
+ ENTRY(DO_REBASE_ADD_ADDR_ULEB),
+ ENTRY(DO_REBASE_ULEB_TIMES_SKIPPING_ULEB),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
}
@@ -2182,26 +2348,26 @@ const char* to_string(DyldInfo::REBASE_OPCODES e) {
}
const char* to_string(DyldInfo::BIND_OPCODES e) {
- #define ENTRY(X) std::pair(DyldInfo::BIND_OPCODES::X, #X)
- STRING_MAP enums2str {
- ENTRY(DONE),
- ENTRY(SET_DYLIB_ORDINAL_IMM),
- ENTRY(SET_DYLIB_ORDINAL_ULEB),
- ENTRY(SET_DYLIB_SPECIAL_IMM),
- ENTRY(SET_SYMBOL_TRAILING_FLAGS_IMM),
- ENTRY(SET_TYPE_IMM),
- ENTRY(SET_ADDEND_SLEB),
- ENTRY(SET_SEGMENT_AND_OFFSET_ULEB),
- ENTRY(ADD_ADDR_ULEB),
- ENTRY(DO_BIND),
- ENTRY(DO_BIND_ADD_ADDR_ULEB),
- ENTRY(DO_BIND_ADD_ADDR_IMM_SCALED),
- ENTRY(DO_BIND_ULEB_TIMES_SKIPPING_ULEB),
- ENTRY(THREADED),
- ENTRY(THREADED_APPLY),
- ENTRY(THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB),
+#define ENTRY(X) std::pair(DyldInfo::BIND_OPCODES::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(DONE),
+ ENTRY(SET_DYLIB_ORDINAL_IMM),
+ ENTRY(SET_DYLIB_ORDINAL_ULEB),
+ ENTRY(SET_DYLIB_SPECIAL_IMM),
+ ENTRY(SET_SYMBOL_TRAILING_FLAGS_IMM),
+ ENTRY(SET_TYPE_IMM),
+ ENTRY(SET_ADDEND_SLEB),
+ ENTRY(SET_SEGMENT_AND_OFFSET_ULEB),
+ ENTRY(ADD_ADDR_ULEB),
+ ENTRY(DO_BIND),
+ ENTRY(DO_BIND_ADD_ADDR_ULEB),
+ ENTRY(DO_BIND_ADD_ADDR_IMM_SCALED),
+ ENTRY(DO_BIND_ULEB_TIMES_SKIPPING_ULEB),
+ ENTRY(THREADED),
+ ENTRY(THREADED_APPLY),
+ ENTRY(THREADED_SET_BIND_ORDINAL_TABLE_SIZE_ULEB),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
}
@@ -2209,12 +2375,12 @@ const char* to_string(DyldInfo::BIND_OPCODES e) {
}
const char* to_string(DyldInfo::BIND_SUBOPCODE_THREADED e) {
- #define ENTRY(X) std::pair(DyldInfo::BIND_SUBOPCODE_THREADED::X, #X)
- STRING_MAP enums2str {
- ENTRY(SET_BIND_ORDINAL_TABLE_SIZE_ULEB),
- ENTRY(APPLY),
+#define ENTRY(X) std::pair(DyldInfo::BIND_SUBOPCODE_THREADED::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(SET_BIND_ORDINAL_TABLE_SIZE_ULEB),
+ ENTRY(APPLY),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
}
@@ -2223,4 +2389,3 @@ const char* to_string(DyldInfo::BIND_SUBOPCODE_THREADED e) {
}
-}
diff --git a/deps/LIEF/src/MachO/DylibCommand.cpp b/deps/LIEF/src/MachO/DylibCommand.cpp
index 4cb5c1ca705..0fab5939257 100644
--- a/deps/LIEF/src/MachO/DylibCommand.cpp
+++ b/deps/LIEF/src/MachO/DylibCommand.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,16 +21,15 @@
#include "LIEF/MachO/DylibCommand.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
DylibCommand::DylibCommand(const details::dylib_command& cmd) :
LoadCommand::LoadCommand{static_cast<LoadCommand::TYPE>(cmd.cmd), cmd.cmdsize},
name_offset_{cmd.name},
timestamp_{cmd.timestamp},
current_version_{cmd.current_version},
- compatibility_version_{cmd.compatibility_version}
-{}
+ compatibility_version_{cmd.compatibility_version} {}
void DylibCommand::accept(Visitor& visitor) const {
@@ -41,23 +40,22 @@ std::ostream& DylibCommand::print(std::ostream& os) const {
LoadCommand::print(os) << '\n';
os << fmt::format("name={}, timestamp={}, "
"current_version={}, compatibility_version={}",
- name(), timestamp(),
- fmt::join(current_version(), "."),
+ name(), timestamp(), fmt::join(current_version(), "."),
fmt::join(compatibility_version(), "."));
- return os;
+ return os;
}
-DylibCommand DylibCommand::create(LoadCommand::TYPE type,
- const std::string& name,
- uint32_t timestamp,
- uint32_t current_version,
- uint32_t compat_version) {
-
- details::dylib_command raw_cmd;
- raw_cmd.cmd = static_cast<uint32_t>(type);
- raw_cmd.cmdsize = align(sizeof(details::dylib_command) + name.size() + 1, sizeof(uint64_t));
- raw_cmd.timestamp = timestamp;
- raw_cmd.current_version = current_version;
+DylibCommand DylibCommand::create(LoadCommand::TYPE type, const std::string& name,
+ uint32_t timestamp, uint32_t current_version,
+ uint32_t compat_version) {
+
+ details::dylib_command raw_cmd{};
+ raw_cmd.name = 0;
+ raw_cmd.cmd = static_cast<uint32_t>(type);
+ raw_cmd.cmdsize =
+ align(sizeof(details::dylib_command) + name.size() + 1, sizeof(uint64_t));
+ raw_cmd.timestamp = timestamp;
+ raw_cmd.current_version = current_version;
raw_cmd.compatibility_version = compat_version;
DylibCommand dylib{raw_cmd};
@@ -67,72 +65,56 @@ DylibCommand DylibCommand::create(LoadCommand::TYPE type,
return dylib;
}
-DylibCommand DylibCommand::load_dylib(const std::string& name,
- uint32_t timestamp,
- uint32_t current_version,
- uint32_t compat_version)
-{
+DylibCommand DylibCommand::load_dylib(const std::string& name, uint32_t timestamp,
+ uint32_t current_version,
+ uint32_t compat_version) {
- return DylibCommand::create(
- LoadCommand::TYPE::LOAD_DYLIB, name,
- timestamp, current_version, compat_version);
+ return DylibCommand::create(LoadCommand::TYPE::LOAD_DYLIB, name, timestamp,
+ current_version, compat_version);
}
-DylibCommand DylibCommand::weak_dylib(const std::string& name,
- uint32_t timestamp,
- uint32_t current_version,
- uint32_t compat_version)
-{
+DylibCommand DylibCommand::weak_dylib(const std::string& name, uint32_t timestamp,
+ uint32_t current_version,
+ uint32_t compat_version) {
- return DylibCommand::create(
- LoadCommand::TYPE::LOAD_WEAK_DYLIB, name,
- timestamp, current_version, compat_version);
+ return DylibCommand::create(LoadCommand::TYPE::LOAD_WEAK_DYLIB, name, timestamp,
+ current_version, compat_version);
}
-DylibCommand DylibCommand::id_dylib(const std::string& name,
- uint32_t timestamp,
- uint32_t current_version,
- uint32_t compat_version)
-{
+DylibCommand DylibCommand::id_dylib(const std::string& name, uint32_t timestamp,
+ uint32_t current_version,
+ uint32_t compat_version) {
- return DylibCommand::create(
- LoadCommand::TYPE::ID_DYLIB, name,
- timestamp, current_version, compat_version);
+ return DylibCommand::create(LoadCommand::TYPE::ID_DYLIB, name, timestamp,
+ current_version, compat_version);
}
DylibCommand DylibCommand::reexport_dylib(const std::string& name,
- uint32_t timestamp,
- uint32_t current_version,
- uint32_t compat_version)
-{
-
- return DylibCommand::create(
- LoadCommand::TYPE::REEXPORT_DYLIB, name,
- timestamp, current_version, compat_version);
+ uint32_t timestamp,
+ uint32_t current_version,
+ uint32_t compat_version) {
+
+ return DylibCommand::create(LoadCommand::TYPE::REEXPORT_DYLIB, name, timestamp,
+ current_version, compat_version);
}
DylibCommand DylibCommand::load_upward_dylib(const std::string& name,
- uint32_t timestamp,
- uint32_t current_version,
- uint32_t compat_version)
-{
-
- return DylibCommand::create(
- LoadCommand::TYPE::LOAD_UPWARD_DYLIB, name,
- timestamp, current_version, compat_version);
+ uint32_t timestamp,
+ uint32_t current_version,
+ uint32_t compat_version) {
+
+ return DylibCommand::create(LoadCommand::TYPE::LOAD_UPWARD_DYLIB, name,
+ timestamp, current_version, compat_version);
}
DylibCommand DylibCommand::lazy_load_dylib(const std::string& name,
- uint32_t timestamp,
- uint32_t current_version,
- uint32_t compat_version)
-{
-
- return DylibCommand::create(
- LoadCommand::TYPE::LAZY_LOAD_DYLIB, name,
- timestamp, current_version, compat_version);
-}
+ uint32_t timestamp,
+ uint32_t current_version,
+ uint32_t compat_version) {
+ return DylibCommand::create(LoadCommand::TYPE::LAZY_LOAD_DYLIB, name, timestamp,
+ current_version, compat_version);
}
+
}
diff --git a/deps/LIEF/src/MachO/DylinkerCommand.cpp b/deps/LIEF/src/MachO/DylinkerCommand.cpp
index c9eb51c83b2..934882e4390 100644
--- a/deps/LIEF/src/MachO/DylinkerCommand.cpp
+++ b/deps/LIEF/src/MachO/DylinkerCommand.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,25 +13,25 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include <iomanip>
#include "LIEF/utils.hpp"
#include "LIEF/MachO/hash.hpp"
#include "LIEF/MachO/DylinkerCommand.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
DylinkerCommand::DylinkerCommand(const details::dylinker_command& cmd) :
- LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize}
-{}
+ LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize} {}
DylinkerCommand::DylinkerCommand(std::string name) :
LoadCommand::LoadCommand{LoadCommand::TYPE::LOAD_DYLINKER,
- static_cast<uint32_t>(align(sizeof(details::dylinker_command) + name.size() + 1, sizeof(uint64_t)))},
- name_{std::move(name)}
-{
+ static_cast<uint32_t>(align(
+ sizeof(details::dylinker_command) + name.size() + 1,
+ sizeof(uint64_t)
+ ))},
+ name_{std::move(name)} {
this->data(LoadCommand::raw_t(size(), 0));
}
@@ -46,4 +46,3 @@ std::ostream& DylinkerCommand::print(std::ostream& os) const {
}
}
-}
diff --git a/deps/LIEF/src/MachO/DynamicSymbolCommand.cpp b/deps/LIEF/src/MachO/DynamicSymbolCommand.cpp
index 1fa0640054f..b24eff6b845 100644
--- a/deps/LIEF/src/MachO/DynamicSymbolCommand.cpp
+++ b/deps/LIEF/src/MachO/DynamicSymbolCommand.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,13 +19,12 @@
#include "LIEF/MachO/DynamicSymbolCommand.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
DynamicSymbolCommand::DynamicSymbolCommand() :
LoadCommand::LoadCommand{LoadCommand::TYPE::DYSYMTAB,
- sizeof(details::dysymtab_command)}
-{}
+ sizeof(details::dysymtab_command)} {}
DynamicSymbolCommand::DynamicSymbolCommand(const details::dysymtab_command& cmd) :
LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
@@ -55,8 +54,7 @@ DynamicSymbolCommand::DynamicSymbolCommand(const details::dysymtab_command& cmd)
nb_external_relocations_{cmd.nextrel},
local_relocation_offset_{cmd.locreloff},
- nb_local_relocations_{cmd.nlocrel}
-{}
+ nb_local_relocations_{cmd.nlocrel} {}
void DynamicSymbolCommand::accept(Visitor& visitor) const {
@@ -65,28 +63,39 @@ void DynamicSymbolCommand::accept(Visitor& visitor) const {
std::ostream& DynamicSymbolCommand::print(std::ostream& os) const {
LoadCommand::print(os) << '\n';
- static constexpr auto DEFAULT_FMT = "{:36}: 0x{:x}\n";
+ static constexpr auto DEFAULT_FMT = "{:36}: {:#x}\n";
os << fmt::format(DEFAULT_FMT, "First local symbol index", idx_local_symbol());
os << fmt::format(DEFAULT_FMT, "Number of local symbols", nb_local_symbols());
- os << fmt::format(DEFAULT_FMT, "External symbol index", idx_external_define_symbol());
- os << fmt::format(DEFAULT_FMT, "Number of external symbols", nb_external_define_symbols());
+ os << fmt::format(DEFAULT_FMT, "External symbol index",
+ idx_external_define_symbol());
+ os << fmt::format(DEFAULT_FMT, "Number of external symbols",
+ nb_external_define_symbols());
os << fmt::format(DEFAULT_FMT, "Undefined symbol index", idx_undefined_symbol());
- os << fmt::format(DEFAULT_FMT, "Number of undefined symbols", nb_undefined_symbols());
+ os << fmt::format(DEFAULT_FMT, "Number of undefined symbols",
+ nb_undefined_symbols());
os << fmt::format(DEFAULT_FMT, "Table of content offset", toc_offset());
os << fmt::format(DEFAULT_FMT, "Number of entries in TOC", nb_toc());
os << fmt::format(DEFAULT_FMT, "Module table offset", module_table_offset());
- os << fmt::format(DEFAULT_FMT, "Number of entries in module table", nb_module_table());
- os << fmt::format(DEFAULT_FMT, "External reference table offset", external_reference_symbol_offset());
- os << fmt::format(DEFAULT_FMT, "Number of external reference", nb_external_reference_symbols());
- os << fmt::format(DEFAULT_FMT, "Indirect symbols offset", indirect_symbol_offset());
- os << fmt::format(DEFAULT_FMT, "Number of indirect symbols", nb_indirect_symbols());
- os << fmt::format(DEFAULT_FMT, "External relocation offset", external_relocation_offset());
- os << fmt::format(DEFAULT_FMT, "Number of external relocations", nb_external_relocations());
- os << fmt::format(DEFAULT_FMT, "Local relocation offset", local_relocation_offset());
- os << fmt::format(DEFAULT_FMT, "Number of local relocations", nb_local_relocations());
+ os << fmt::format(DEFAULT_FMT, "Number of entries in module table",
+ nb_module_table());
+ os << fmt::format(DEFAULT_FMT, "External reference table offset",
+ external_reference_symbol_offset());
+ os << fmt::format(DEFAULT_FMT, "Number of external reference",
+ nb_external_reference_symbols());
+ os << fmt::format(DEFAULT_FMT, "Indirect symbols offset",
+ indirect_symbol_offset());
+ os << fmt::format(DEFAULT_FMT, "Number of indirect symbols",
+ nb_indirect_symbols());
+ os << fmt::format(DEFAULT_FMT, "External relocation offset",
+ external_relocation_offset());
+ os << fmt::format(DEFAULT_FMT, "Number of external relocations",
+ nb_external_relocations());
+ os << fmt::format(DEFAULT_FMT, "Local relocation offset",
+ local_relocation_offset());
+ os << fmt::format(DEFAULT_FMT, "Number of local relocations",
+ nb_local_relocations());
return os;
}
}
-}
diff --git a/deps/LIEF/src/MachO/EncryptionInfo.cpp b/deps/LIEF/src/MachO/EncryptionInfo.cpp
index 0bea4fff4c3..cfc9abffc80 100644
--- a/deps/LIEF/src/MachO/EncryptionInfo.cpp
+++ b/deps/LIEF/src/MachO/EncryptionInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,15 +19,14 @@
#include "LIEF/MachO/EncryptionInfo.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
EncryptionInfo::EncryptionInfo(const details::encryption_info_command& cmd) :
LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
coff_{cmd.cryptoff},
csize_{cmd.cryptsize},
- cid_{cmd.cryptid}
-{}
+ cid_{cmd.cryptid} {}
void EncryptionInfo::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -35,11 +34,10 @@ void EncryptionInfo::accept(Visitor& visitor) const {
std::ostream& EncryptionInfo::print(std::ostream& os) const {
LoadCommand::print(os) << '\n';
- os << fmt::format("crypt offset=0x{:06x}, crypt size=0x{:06x}, crypt id={}",
- crypt_offset(), crypt_size(), crypt_id());
+ os << fmt::format("crypt offset={:#08x}, crypt size={:#08x}, crypt id={}",
+ crypt_offset(), crypt_size(), crypt_id());
return os;
}
}
-}
diff --git a/deps/LIEF/src/MachO/EnumToString.cpp b/deps/LIEF/src/MachO/EnumToString.cpp
index 76684e9bf8f..61b3e6daa3f 100644
--- a/deps/LIEF/src/MachO/EnumToString.cpp
+++ b/deps/LIEF/src/MachO/EnumToString.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,31 +17,31 @@
#include "LIEF/MachO/EnumToString.hpp"
#include "frozen.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
const char* to_string(MACHO_TYPES e) {
- CONST_MAP(MACHO_TYPES, const char*, 7) enumStrings {
- { MACHO_TYPES::MAGIC, "MAGIC"},
- { MACHO_TYPES::CIGAM, "CIGAM"},
- { MACHO_TYPES::MAGIC_64, "MAGIC_64"},
- { MACHO_TYPES::CIGAM_64, "CIGAM_64"},
- { MACHO_TYPES::MAGIC_FAT, "MAGIC_FAT"},
- { MACHO_TYPES::CIGAM_FAT, "CIGAM_FAT"},
- { MACHO_TYPES::NEURAL_MODEL, "NEURAL_MODEL"}
- };
+ CONST_MAP(MACHO_TYPES, const char*, 7)
+ enumStrings{{MACHO_TYPES::MAGIC, "MAGIC"},
+ {MACHO_TYPES::CIGAM, "CIGAM"},
+ {MACHO_TYPES::MAGIC_64, "MAGIC_64"},
+ {MACHO_TYPES::CIGAM_64, "CIGAM_64"},
+ {MACHO_TYPES::MAGIC_FAT, "MAGIC_FAT"},
+ {MACHO_TYPES::CIGAM_FAT, "CIGAM_FAT"},
+ {MACHO_TYPES::NEURAL_MODEL, "NEURAL_MODEL"}};
const auto it = enumStrings.find(e);
return it == enumStrings.end() ? "Out of range" : it->second;
}
const char* to_string(X86_RELOCATION e) {
- CONST_MAP(X86_RELOCATION, const char*, 6) enumStrings {
- { X86_RELOCATION::GENERIC_RELOC_VANILLA, "VANILLA" },
- { X86_RELOCATION::GENERIC_RELOC_PAIR, "PAIR" },
- { X86_RELOCATION::GENERIC_RELOC_SECTDIFF, "SECTDIFF" },
- { X86_RELOCATION::GENERIC_RELOC_PB_LA_PTR, "PB_LA_PTR" },
- { X86_RELOCATION::GENERIC_RELOC_LOCAL_SECTDIFF, "LOCAL_SECTDIFF" },
- { X86_RELOCATION::GENERIC_RELOC_TLV, "TLV" },
+ CONST_MAP(X86_RELOCATION, const char*, 6)
+ enumStrings{
+ {X86_RELOCATION::GENERIC_RELOC_VANILLA, "VANILLA"},
+ {X86_RELOCATION::GENERIC_RELOC_PAIR, "PAIR"},
+ {X86_RELOCATION::GENERIC_RELOC_SECTDIFF, "SECTDIFF"},
+ {X86_RELOCATION::GENERIC_RELOC_PB_LA_PTR, "PB_LA_PTR"},
+ {X86_RELOCATION::GENERIC_RELOC_LOCAL_SECTDIFF, "LOCAL_SECTDIFF"},
+ {X86_RELOCATION::GENERIC_RELOC_TLV, "TLV"},
};
const auto it = enumStrings.find(e);
return it == enumStrings.end() ? "Out of range" : it->second;
@@ -49,17 +49,18 @@ const char* to_string(X86_RELOCATION e) {
const char* to_string(X86_64_RELOCATION e) {
- CONST_MAP(X86_64_RELOCATION, const char*, 10) enumStrings {
- { X86_64_RELOCATION::X86_64_RELOC_UNSIGNED, "UNSIGNED" },
- { X86_64_RELOCATION::X86_64_RELOC_SIGNED, "SIGNED" },
- { X86_64_RELOCATION::X86_64_RELOC_BRANCH, "BRANCH" },
- { X86_64_RELOCATION::X86_64_RELOC_GOT_LOAD, "GOT_LOAD" },
- { X86_64_RELOCATION::X86_64_RELOC_GOT, "GOT" },
- { X86_64_RELOCATION::X86_64_RELOC_SUBTRACTOR, "SUBTRACTOR" },
- { X86_64_RELOCATION::X86_64_RELOC_SIGNED_1, "SIGNED_1" },
- { X86_64_RELOCATION::X86_64_RELOC_SIGNED_2, "SIGNED_2" },
- { X86_64_RELOCATION::X86_64_RELOC_SIGNED_4, "SIGNED_4" },
- { X86_64_RELOCATION::X86_64_RELOC_TLV, "TLV" },
+ CONST_MAP(X86_64_RELOCATION, const char*, 10)
+ enumStrings{
+ {X86_64_RELOCATION::X86_64_RELOC_UNSIGNED, "UNSIGNED"},
+ {X86_64_RELOCATION::X86_64_RELOC_SIGNED, "SIGNED"},
+ {X86_64_RELOCATION::X86_64_RELOC_BRANCH, "BRANCH"},
+ {X86_64_RELOCATION::X86_64_RELOC_GOT_LOAD, "GOT_LOAD"},
+ {X86_64_RELOCATION::X86_64_RELOC_GOT, "GOT"},
+ {X86_64_RELOCATION::X86_64_RELOC_SUBTRACTOR, "SUBTRACTOR"},
+ {X86_64_RELOCATION::X86_64_RELOC_SIGNED_1, "SIGNED_1"},
+ {X86_64_RELOCATION::X86_64_RELOC_SIGNED_2, "SIGNED_2"},
+ {X86_64_RELOCATION::X86_64_RELOC_SIGNED_4, "SIGNED_4"},
+ {X86_64_RELOCATION::X86_64_RELOC_TLV, "TLV"},
};
const auto it = enumStrings.find(e);
return it == enumStrings.end() ? "Out of range" : it->second;
@@ -67,23 +68,24 @@ const char* to_string(X86_64_RELOCATION e) {
const char* to_string(PPC_RELOCATION e) {
- CONST_MAP(PPC_RELOCATION, const char*, 16) enumStrings {
- { PPC_RELOCATION::PPC_RELOC_VANILLA, "VANILLA" },
- { PPC_RELOCATION::PPC_RELOC_PAIR, "PAIR" },
- { PPC_RELOCATION::PPC_RELOC_BR14, "BR14" },
- { PPC_RELOCATION::PPC_RELOC_BR24, "BR24" },
- { PPC_RELOCATION::PPC_RELOC_HI16, "HI16" },
- { PPC_RELOCATION::PPC_RELOC_LO16, "LO16" },
- { PPC_RELOCATION::PPC_RELOC_HA16, "HA16" },
- { PPC_RELOCATION::PPC_RELOC_LO14, "LO14" },
- { PPC_RELOCATION::PPC_RELOC_SECTDIFF, "SECTDIFF" },
- { PPC_RELOCATION::PPC_RELOC_PB_LA_PTR, "PB_LA_PTR" },
- { PPC_RELOCATION::PPC_RELOC_HI16_SECTDIFF, "HI16_SECTDIFF" },
- { PPC_RELOCATION::PPC_RELOC_LO16_SECTDIFF, "LO16_SECTDIFF" },
- { PPC_RELOCATION::PPC_RELOC_HA16_SECTDIFF, "HA16_SECTDIFF" },
- { PPC_RELOCATION::PPC_RELOC_JBSR, "JBSR" },
- { PPC_RELOCATION::PPC_RELOC_LO14_SECTDIFF, "LO14_SECTDIFF" },
- { PPC_RELOCATION::PPC_RELOC_LOCAL_SECTDIFF, "LOCAL_SECTDIFF" },
+ CONST_MAP(PPC_RELOCATION, const char*, 16)
+ enumStrings{
+ {PPC_RELOCATION::PPC_RELOC_VANILLA, "VANILLA"},
+ {PPC_RELOCATION::PPC_RELOC_PAIR, "PAIR"},
+ {PPC_RELOCATION::PPC_RELOC_BR14, "BR14"},
+ {PPC_RELOCATION::PPC_RELOC_BR24, "BR24"},
+ {PPC_RELOCATION::PPC_RELOC_HI16, "HI16"},
+ {PPC_RELOCATION::PPC_RELOC_LO16, "LO16"},
+ {PPC_RELOCATION::PPC_RELOC_HA16, "HA16"},
+ {PPC_RELOCATION::PPC_RELOC_LO14, "LO14"},
+ {PPC_RELOCATION::PPC_RELOC_SECTDIFF, "SECTDIFF"},
+ {PPC_RELOCATION::PPC_RELOC_PB_LA_PTR, "PB_LA_PTR"},
+ {PPC_RELOCATION::PPC_RELOC_HI16_SECTDIFF, "HI16_SECTDIFF"},
+ {PPC_RELOCATION::PPC_RELOC_LO16_SECTDIFF, "LO16_SECTDIFF"},
+ {PPC_RELOCATION::PPC_RELOC_HA16_SECTDIFF, "HA16_SECTDIFF"},
+ {PPC_RELOCATION::PPC_RELOC_JBSR, "JBSR"},
+ {PPC_RELOCATION::PPC_RELOC_LO14_SECTDIFF, "LO14_SECTDIFF"},
+ {PPC_RELOCATION::PPC_RELOC_LOCAL_SECTDIFF, "LOCAL_SECTDIFF"},
};
const auto it = enumStrings.find(e);
return it == enumStrings.end() ? "Out of range" : it->second;
@@ -91,17 +93,18 @@ const char* to_string(PPC_RELOCATION e) {
const char* to_string(ARM_RELOCATION e) {
- CONST_MAP(ARM_RELOCATION, const char*, 10) enumStrings {
- { ARM_RELOCATION::ARM_RELOC_VANILLA, "VANILLA" },
- { ARM_RELOCATION::ARM_RELOC_PAIR, "PAIR" },
- { ARM_RELOCATION::ARM_RELOC_SECTDIFF, "SECTDIFF" },
- { ARM_RELOCATION::ARM_RELOC_LOCAL_SECTDIFF, "LOCAL_SECTDIFF" },
- { ARM_RELOCATION::ARM_RELOC_PB_LA_PTR, "PB_LA_PTR" },
- { ARM_RELOCATION::ARM_RELOC_BR24, "BR24" },
- { ARM_RELOCATION::ARM_THUMB_RELOC_BR22, "THUMB_RELOC_BR22" },
- { ARM_RELOCATION::ARM_THUMB_32BIT_BRANCH, "THUMB_32BIT_BRANCH" },
- { ARM_RELOCATION::ARM_RELOC_HALF, "HALF" },
- { ARM_RELOCATION::ARM_RELOC_HALF_SECTDIFF, "HALF_SECTDIFF" },
+ CONST_MAP(ARM_RELOCATION, const char*, 10)
+ enumStrings{
+ {ARM_RELOCATION::ARM_RELOC_VANILLA, "VANILLA"},
+ {ARM_RELOCATION::ARM_RELOC_PAIR, "PAIR"},
+ {ARM_RELOCATION::ARM_RELOC_SECTDIFF, "SECTDIFF"},
+ {ARM_RELOCATION::ARM_RELOC_LOCAL_SECTDIFF, "LOCAL_SECTDIFF"},
+ {ARM_RELOCATION::ARM_RELOC_PB_LA_PTR, "PB_LA_PTR"},
+ {ARM_RELOCATION::ARM_RELOC_BR24, "BR24"},
+ {ARM_RELOCATION::ARM_THUMB_RELOC_BR22, "THUMB_RELOC_BR22"},
+ {ARM_RELOCATION::ARM_THUMB_32BIT_BRANCH, "THUMB_32BIT_BRANCH"},
+ {ARM_RELOCATION::ARM_RELOC_HALF, "HALF"},
+ {ARM_RELOCATION::ARM_RELOC_HALF_SECTDIFF, "HALF_SECTDIFF"},
};
const auto it = enumStrings.find(e);
return it == enumStrings.end() ? "Out of range" : it->second;
@@ -109,22 +112,22 @@ const char* to_string(ARM_RELOCATION e) {
const char* to_string(ARM64_RELOCATION e) {
- CONST_MAP(ARM64_RELOCATION, const char*, 11) enumStrings {
- { ARM64_RELOCATION::ARM64_RELOC_UNSIGNED, "UNSIGNED" },
- { ARM64_RELOCATION::ARM64_RELOC_SUBTRACTOR, "SUBTRACTOR" },
- { ARM64_RELOCATION::ARM64_RELOC_BRANCH26, "BRANCH26" },
- { ARM64_RELOCATION::ARM64_RELOC_PAGE21, "PAGE21" },
- { ARM64_RELOCATION::ARM64_RELOC_PAGEOFF12, "PAGEOFF12" },
- { ARM64_RELOCATION::ARM64_RELOC_GOT_LOAD_PAGE21, "GOT_LOAD_PAGE21" },
- { ARM64_RELOCATION::ARM64_RELOC_GOT_LOAD_PAGEOFF12, "GOT_LOAD_PAGEOFF12" },
- { ARM64_RELOCATION::ARM64_RELOC_POINTER_TO_GOT, "POINTER_TO_GOT" },
- { ARM64_RELOCATION::ARM64_RELOC_TLVP_LOAD_PAGE21, "TLVP_LOAD_PAGE21" },
- { ARM64_RELOCATION::ARM64_RELOC_TLVP_LOAD_PAGEOFF12, "TLVP_LOAD_PAGEOFF12" },
- { ARM64_RELOCATION::ARM64_RELOC_ADDEND, "ADDEND" },
+ CONST_MAP(ARM64_RELOCATION, const char*, 11)
+ enumStrings{
+ {ARM64_RELOCATION::ARM64_RELOC_UNSIGNED, "UNSIGNED"},
+ {ARM64_RELOCATION::ARM64_RELOC_SUBTRACTOR, "SUBTRACTOR"},
+ {ARM64_RELOCATION::ARM64_RELOC_BRANCH26, "BRANCH26"},
+ {ARM64_RELOCATION::ARM64_RELOC_PAGE21, "PAGE21"},
+ {ARM64_RELOCATION::ARM64_RELOC_PAGEOFF12, "PAGEOFF12"},
+ {ARM64_RELOCATION::ARM64_RELOC_GOT_LOAD_PAGE21, "GOT_LOAD_PAGE21"},
+ {ARM64_RELOCATION::ARM64_RELOC_GOT_LOAD_PAGEOFF12, "GOT_LOAD_PAGEOFF12"},
+ {ARM64_RELOCATION::ARM64_RELOC_POINTER_TO_GOT, "POINTER_TO_GOT"},
+ {ARM64_RELOCATION::ARM64_RELOC_TLVP_LOAD_PAGE21, "TLVP_LOAD_PAGE21"},
+ {ARM64_RELOCATION::ARM64_RELOC_TLVP_LOAD_PAGEOFF12, "TLVP_LOAD_PAGEOFF12"},
+ {ARM64_RELOCATION::ARM64_RELOC_ADDEND, "ADDEND"},
};
const auto it = enumStrings.find(e);
return it == enumStrings.end() ? "Out of range" : it->second;
}
}
-}
diff --git a/deps/LIEF/src/MachO/ExportInfo.cpp b/deps/LIEF/src/MachO/ExportInfo.cpp
index 4d46818bab8..98f96d21fc8 100644
--- a/deps/LIEF/src/MachO/ExportInfo.cpp
+++ b/deps/LIEF/src/MachO/ExportInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,13 +28,13 @@
FMT_FORMATTER(LIEF::MachO::ExportInfo::FLAGS, LIEF::MachO::to_string);
FMT_FORMATTER(LIEF::MachO::ExportInfo::KIND, LIEF::MachO::to_string);
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
static constexpr auto ARRAY_FLAGS = {
- ExportInfo::FLAGS::WEAK_DEFINITION,
- ExportInfo::FLAGS::REEXPORT,
- ExportInfo::FLAGS::STUB_AND_RESOLVER,
+ ExportInfo::FLAGS::WEAK_DEFINITION,
+ ExportInfo::FLAGS::REEXPORT,
+ ExportInfo::FLAGS::STUB_AND_RESOLVER,
};
ExportInfo& ExportInfo::operator=(ExportInfo other) {
@@ -47,16 +47,15 @@ ExportInfo::ExportInfo(const ExportInfo& other) :
node_offset_{other.node_offset_},
flags_{other.flags_},
address_{other.address_},
- other_{other.other_}
-{}
+ other_{other.other_} {}
void ExportInfo::swap(ExportInfo& other) noexcept {
- std::swap(node_offset_, other.node_offset_);
- std::swap(flags_, other.flags_);
- std::swap(address_, other.address_);
- std::swap(other_, other.other_);
- std::swap(symbol_, other.symbol_);
- std::swap(alias_, other.alias_);
+ std::swap(node_offset_, other.node_offset_);
+ std::swap(flags_, other.flags_);
+ std::swap(address_, other.address_);
+ std::swap(other_, other.other_);
+ std::swap(symbol_, other.symbol_);
+ std::swap(alias_, other.alias_);
std::swap(alias_location_, other.alias_location_);
}
@@ -67,9 +66,8 @@ bool ExportInfo::has(FLAGS flag) const {
ExportInfo::flag_list_t ExportInfo::flags_list() const {
flag_list_t flags;
- std::copy_if(std::begin(ARRAY_FLAGS), std::end(ARRAY_FLAGS),
- std::back_inserter(flags),
- [this] (FLAGS f) { return has(f); });
+ std::copy_if(ARRAY_FLAGS.begin(), ARRAY_FLAGS.end(), std::back_inserter(flags),
+ [this](FLAGS f) { return has(f); });
return flags;
}
@@ -80,10 +78,8 @@ void ExportInfo::accept(Visitor& visitor) const {
std::ostream& operator<<(std::ostream& os, const ExportInfo& info) {
const ExportInfo::flag_list_t& flags = info.flags_list();
- os << fmt::format(
- "offset=0x{:x}, flags={}, address=0x{:x}, kind={}",
- info.node_offset(), flags, info.address(), info.kind()
- );
+ os << fmt::format("offset={:#x}, flags={}, address={:#x}, kind={}",
+ info.node_offset(), flags, info.address(), info.kind());
if (const Symbol* sym = info.symbol()) {
os << fmt::format(" symbol={}", sym->name());
}
@@ -98,13 +94,13 @@ std::ostream& operator<<(std::ostream& os, const ExportInfo& info) {
}
const char* to_string(ExportInfo::KIND e) {
- #define ENTRY(X) std::pair(ExportInfo::KIND::X, #X)
- STRING_MAP enums2str {
- ENTRY(REGULAR),
- ENTRY(THREAD_LOCAL_KIND),
- ENTRY(ABSOLUTE_KIND),
+#define ENTRY(X) std::pair(ExportInfo::KIND::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(REGULAR),
+ ENTRY(THREAD_LOCAL_KIND),
+ ENTRY(ABSOLUTE_KIND),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -113,14 +109,14 @@ const char* to_string(ExportInfo::KIND e) {
}
const char* to_string(ExportInfo::FLAGS e) {
- #define ENTRY(X) std::pair(ExportInfo::FLAGS::X, #X)
- STRING_MAP enums2str {
- ENTRY(WEAK_DEFINITION),
- ENTRY(REEXPORT),
- ENTRY(STUB_AND_RESOLVER),
- ENTRY(STATIC_RESOLVER),
+#define ENTRY(X) std::pair(ExportInfo::FLAGS::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(WEAK_DEFINITION),
+ ENTRY(REEXPORT),
+ ENTRY(STUB_AND_RESOLVER),
+ ENTRY(STATIC_RESOLVER),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -130,4 +126,3 @@ const char* to_string(ExportInfo::FLAGS e) {
}
-}
diff --git a/deps/LIEF/src/MachO/FatBinary.cpp b/deps/LIEF/src/MachO/FatBinary.cpp
index 2507e8801c7..832db3c6c02 100644
--- a/deps/LIEF/src/MachO/FatBinary.cpp
+++ b/deps/LIEF/src/MachO/FatBinary.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,20 +14,39 @@
* limitations under the License.
*/
#include <utility>
+#include <set>
#include "LIEF/MachO/FatBinary.hpp"
#include "LIEF/MachO/Builder.hpp"
#include "LIEF/MachO/Binary.hpp"
-namespace LIEF {
-namespace MachO {
+#include "logging.hpp"
+
+
+namespace LIEF::MachO {
FatBinary::~FatBinary() = default;
FatBinary::FatBinary() = default;
FatBinary::FatBinary(binaries_t binaries) :
- binaries_{std::move(binaries)}
-{}
+ binaries_{std::move(binaries)} {}
+
+std::unique_ptr<FatBinary> FatBinary::create(binaries_t binaries) {
+ std::set<uint64_t> seen;
+ for (const std::unique_ptr<Binary>& bin : binaries) {
+ if (bin == nullptr) {
+ continue;
+ }
+ const Header& hdr = bin->header();
+ uint64_t arch = (uint64_t(hdr.cpu_type()) << 32) | uint64_t(hdr.cpu_subtype());
+ if (!seen.insert(arch).second) {
+ LIEF_ERR("Duplicate architecture: {} (subtype: {:#x})",
+ to_string(hdr.cpu_type()), hdr.cpu_subtype());
+ return nullptr;
+ }
+ }
+ return std::unique_ptr<FatBinary>(new FatBinary(std::move(binaries)));
+}
std::unique_ptr<Binary> FatBinary::pop_back() {
if (binaries_.empty()) {
@@ -38,53 +57,31 @@ std::unique_ptr<Binary> FatBinary::pop_back() {
return last;
}
-Binary* FatBinary::at(size_t index) {
- return const_cast<Binary*>(static_cast<const FatBinary*>(this)->at(index));
-}
-
-const Binary* FatBinary::at(size_t index) const {
- if (index >= size()) {
- return nullptr;
- }
- return binaries_[index].get();
-}
-
-
-Binary* FatBinary::back() {
- return const_cast<Binary*>(static_cast<const FatBinary*>(this)->back());
-}
+std::unique_ptr<Binary> FatBinary::take(Header::CPU_TYPE cpu) {
+ auto it = std::find_if(binaries_.begin(), binaries_.end(),
+ [cpu](const std::unique_ptr<Binary>& bin) {
+ return bin->header().cpu_type() == cpu;
+ });
-const Binary* FatBinary::back() const {
- if (binaries_.empty()) {
+ if (it == binaries_.end()) {
return nullptr;
}
- return binaries_.back().get();
-}
-
-Binary* FatBinary::front() {
- return const_cast<Binary*>(static_cast<const FatBinary*>(this)->front());
-}
-const Binary* FatBinary::front() const {
- if (binaries_.empty()) {
- return nullptr;
- }
- return binaries_.front().get();
+ std::unique_ptr<Binary> ret = std::move(*it);
+ binaries_.erase(it);
+ return ret;
}
-std::unique_ptr<Binary> FatBinary::take(Header::CPU_TYPE cpu) {
- auto it = std::find_if(std::begin(binaries_), std::end(binaries_),
- [cpu] (const std::unique_ptr<Binary>& bin) {
- return bin->header().cpu_type() == cpu;
- });
- if (it == std::end(binaries_)) {
+const Binary* FatBinary::get(Header::CPU_TYPE cpu) const {
+ auto it = std::find_if(binaries_.begin(), binaries_.end(),
+ [cpu](const std::unique_ptr<Binary>& bin) {
+ return bin->header().cpu_type() == cpu;
+ });
+ if (it == binaries_.end()) {
return nullptr;
}
-
- std::unique_ptr<Binary> ret = std::move(*it);
- binaries_.erase(it);
- return ret;
+ return it->get();
}
std::unique_ptr<Binary> FatBinary::take(size_t index) {
@@ -108,12 +105,6 @@ std::vector<uint8_t> FatBinary::raw() {
return buffer;
}
-void FatBinary::release_all_binaries() {
- for (auto& bin : binaries_) {
- bin.release(); // NOLINT(bugprone-unused-return-value)
- }
-}
-
std::ostream& operator<<(std::ostream& os, const FatBinary& fatbinary) {
for (const Binary& binary : fatbinary) {
os << binary << "\n\n";
@@ -123,4 +114,3 @@ std::ostream& operator<<(std::ostream& os, const FatBinary& fatbinary) {
}
}
-}
diff --git a/deps/LIEF/src/MachO/FilesetCommand.cpp b/deps/LIEF/src/MachO/FilesetCommand.cpp
index 00c9de8ee9a..c2c1ffc26f8 100644
--- a/deps/LIEF/src/MachO/FilesetCommand.cpp
+++ b/deps/LIEF/src/MachO/FilesetCommand.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,14 +19,13 @@
#include "LIEF/MachO/FilesetCommand.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
FilesetCommand::FilesetCommand(const details::fileset_entry_command& cmd) :
LoadCommand{LoadCommand::TYPE::FILESET_ENTRY, cmd.cmdsize},
virtual_address_{cmd.vmaddr},
- file_offset_{cmd.fileoff}
-{}
+ file_offset_{cmd.fileoff} {}
FilesetCommand& FilesetCommand::operator=(FilesetCommand other) {
swap(other);
@@ -37,23 +36,21 @@ FilesetCommand::FilesetCommand(const FilesetCommand& other) :
LoadCommand{other},
name_{other.name_},
virtual_address_{other.virtual_address_},
- file_offset_{other.file_offset_}
-{}
+ file_offset_{other.file_offset_} {}
void FilesetCommand::swap(FilesetCommand& other) noexcept {
LoadCommand::swap(other);
std::swap(virtual_address_, other.virtual_address_);
- std::swap(file_offset_, other.file_offset_);
+ std::swap(file_offset_, other.file_offset_);
}
std::ostream& FilesetCommand::print(std::ostream& os) const {
LoadCommand::print(os) << '\n';
- os << fmt::format("name={}, va=0x{:06x}, offset=0x{:x}",
- name(), virtual_address(), file_offset());
+ os << fmt::format("name={}, va={:#08x}, offset={:#x}", name(), virtual_address(),
+ file_offset());
return os;
}
}
-}
diff --git a/deps/LIEF/src/MachO/FunctionStarts.cpp b/deps/LIEF/src/MachO/FunctionStarts.cpp
index a6fade4d62c..f226982c84b 100644
--- a/deps/LIEF/src/MachO/FunctionStarts.cpp
+++ b/deps/LIEF/src/MachO/FunctionStarts.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,14 +19,13 @@
#include "LIEF/MachO/FunctionStarts.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
FunctionStarts::FunctionStarts(const details::linkedit_data_command& cmd) :
LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
data_offset_{cmd.dataoff},
- data_size_{cmd.datasize}
-{}
+ data_size_{cmd.datasize} {}
void FunctionStarts::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -35,14 +34,14 @@ void FunctionStarts::accept(Visitor& visitor) const {
std::ostream& FunctionStarts::print(std::ostream& os) const {
LoadCommand::print(os) << '\n';
const std::vector<uint64_t> funcs = functions();
- os << fmt::format("offset=0x{:06x}, size=0x{:06x}, #functions={}",
- data_offset(), data_size(), funcs.size()) << '\n';
+ os << fmt::format("offset={:#08x}, size={:#08x}, #functions={}", data_offset(),
+ data_size(), funcs.size())
+ << '\n';
for (size_t i = 0; i < funcs.size(); ++i) {
- os << fmt::format(" [{}] __TEXT + 0x{:06x}\n", i, funcs[i]);
+ os << fmt::format(" [{}] __TEXT + {:#08x}\n", i, funcs[i]);
}
return os;
}
}
-}
diff --git a/deps/LIEF/src/MachO/FunctionVariantFixups.cpp b/deps/LIEF/src/MachO/FunctionVariantFixups.cpp
index f0583fe5c5b..f786e928f0a 100644
--- a/deps/LIEF/src/MachO/FunctionVariantFixups.cpp
+++ b/deps/LIEF/src/MachO/FunctionVariantFixups.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,26 +13,95 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+#include <sstream>
#include "spdlog/fmt/fmt.h"
-#include "LIEF/Visitor.hpp"
+
+#include "LIEF/BinaryStream/SpanStream.hpp"
#include "LIEF/MachO/FunctionVariantFixups.hpp"
+#include "LIEF/MachO/SegmentCommand.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+#include "logging.hpp"
+
+namespace LIEF::MachO {
+
+static_assert(sizeof(details::function_variant_fixup_t) == 8);
+
+static const char* pac_key_name(uint8_t key) {
+ switch (key) {
+ case 0: return "IA";
+ case 1: return "IB";
+ case 2: return "DA";
+ case 3: return "DB";
+ default: return "??";
+ }
+}
-FunctionVariantFixups::FunctionVariantFixups(const details::linkedit_data_command& cmd) :
+FunctionVariantFixups::FunctionVariantFixups(
+ const details::linkedit_data_command& cmd
+) :
LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
data_offset_{cmd.dataoff},
- data_size_{cmd.datasize}
-{}
+ data_size_{cmd.datasize} {}
+
+FunctionVariantFixups::Fixup::Fixup(const details::function_variant_fixup_t& raw) :
+ seg_offset_(raw.seg_offset),
+ seg_index_(raw.seg_index),
+ variant_index_(raw.variant_index),
+ pac_auth_(raw.pac_auth != 0),
+ pac_address_(raw.pac_address != 0),
+ pac_key_(raw.pac_key),
+ pac_diversity_(raw.pac_diversity) {}
+
+std::vector<FunctionVariantFixups::Fixup>
+ FunctionVariantFixups::parse_payload(SpanStream& stream) {
+ std::vector<Fixup> result;
+
+ const size_t count = stream.size() / sizeof(details::function_variant_fixup_t);
+ result.reserve(count);
+
+ for (size_t i = 0; i < count; ++i) {
+ auto raw = stream.read<details::function_variant_fixup_t>();
+ if (!raw) {
+ LIEF_DEBUG("Failed to read FunctionVariantFixups.fixups[{}]", i);
+ break;
+ }
+ result.emplace_back(*raw);
+ }
+
+ return result;
+}
+
+std::string FunctionVariantFixups::Fixup::to_string() const {
+ std::ostringstream oss;
+
+ if (const SegmentCommand* seg = segment()) {
+ oss << fmt::format("{}+{:#x} ({:#x})", seg->name(), seg_offset(),
+ seg->virtual_address() + seg_offset());
+ } else {
+ oss << fmt::format("seg[{}]+{:#x}", seg_index(), seg_offset());
+ }
+
+ oss << fmt::format(" -> variant #{}", variant_index());
+
+ if (pac_auth()) {
+ oss << fmt::format(" [PAC: key={} addr={} diversity={:#06x}]",
+ pac_key_name(pac_key()), pac_address(), pac_diversity());
+ }
+
+ return oss.str();
+}
std::ostream& FunctionVariantFixups::print(std::ostream& os) const {
LoadCommand::print(os) << '\n';
+ auto entries = fixups();
+ os << fmt::format("nb_fixups = {}\n", entries.size());
+ for (size_t i = 0; i < entries.size(); ++i) {
+ os << fmt::format(" [{:04d}] {}\n", i, entries[i].to_string());
+ }
return os;
}
}
-}
diff --git a/deps/LIEF/src/MachO/FunctionVariants.cpp b/deps/LIEF/src/MachO/FunctionVariants.cpp
index 0b6e464565a..4ff8d5bd30c 100644
--- a/deps/LIEF/src/MachO/FunctionVariants.cpp
+++ b/deps/LIEF/src/MachO/FunctionVariants.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,7 +16,6 @@
#include <sstream>
#include "spdlog/fmt/fmt.h"
-#include "LIEF/utils.hpp"
#include "LIEF/BinaryStream/SpanStream.hpp"
#include "LIEF/MachO/FunctionVariants.hpp"
@@ -26,30 +25,26 @@
#include "logging.hpp"
#include "internal_utils.hpp"
-namespace LIEF {
-namespace MachO {
-namespace details {
-struct runtime_table_entry_t {
- uint32_t impl : 31,
- another_table : 1;
- uint8_t flag_bit_nums[4];
-};
-}
+namespace LIEF::MachO {
+
+static_assert(sizeof(details::runtime_table_entry_t) == 8);
using FLAGS = FunctionVariants::RuntimeTableEntry::FLAGS;
using KIND = FunctionVariants::RuntimeTable::KIND;
static const char* pretty_name(FLAGS f) {
switch (f) {
- #define FUNCTION_VARIANT_FLAG(name, _, pretty) case FLAGS::name: return pretty;
- #include "LIEF/MachO/FunctionVariants/Arm64.def"
- #include "LIEF/MachO/FunctionVariants/PerProcess.def"
- #include "LIEF/MachO/FunctionVariants/SystemWide.def"
- #include "LIEF/MachO/FunctionVariants/X86_64.def"
- #undef FUNCTION_VARIANT_FLAG
- case FLAGS::UNKNOWN:
- return "UNKNOWN";
+
+// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
+#define FUNCTION_VARIANT_FLAG(name, _, pretty) \
+ case FLAGS::name: return pretty;
+#include "LIEF/MachO/FunctionVariants/Arm64.def"
+#include "LIEF/MachO/FunctionVariants/PerProcess.def"
+#include "LIEF/MachO/FunctionVariants/SystemWide.def"
+#include "LIEF/MachO/FunctionVariants/X86_64.def"
+#undef FUNCTION_VARIANT_FLAG
+ case FLAGS::UNKNOWN: return "UNKNOWN";
}
return "UNKNOWN";
}
@@ -57,8 +52,7 @@ static const char* pretty_name(FLAGS f) {
FunctionVariants::FunctionVariants(const details::linkedit_data_command& cmd) :
LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
data_offset_{cmd.dataoff},
- data_size_{cmd.datasize}
-{}
+ data_size_{cmd.datasize} {}
std::ostream& FunctionVariants::print(std::ostream& os) const {
LoadCommand::print(os) << '\n';
@@ -66,25 +60,24 @@ std::ostream& FunctionVariants::print(std::ostream& os) const {
for (size_t i = 0; i < runtime_tbl.size(); ++i) {
const RuntimeTable& entry = runtime_tbl[i];
- os << fmt::format("Table #{}\n", i)
- << indent(entry.to_string(), 2) << '\n';
+ os << fmt::format("Table #{}\n", i) << indent(entry.to_string(), 2) << '\n';
}
return os;
}
-FunctionVariants::RuntimeTableEntry::RuntimeTableEntry(const details::runtime_table_entry_t& entry) :
+FunctionVariants::RuntimeTableEntry::RuntimeTableEntry(
+ const details::runtime_table_entry_t& entry
+) :
another_table_(entry.another_table),
- impl_(entry.impl)
-{
+ impl_(entry.impl) {
flag_bit_nums_.fill(0);
std::copy(std::begin(entry.flag_bit_nums), std::end(entry.flag_bit_nums),
- flag_bit_nums_.begin());
+ std::begin(flag_bit_nums_));
}
span<const uint8_t> get_relevant_flags(span<const uint8_t> raw) {
- auto it = std::find_if(raw.begin(), raw.end(),
- [] (uint8_t v) { return v == 0; });
+ auto it = std::find_if(raw.begin(), raw.end(), [](uint8_t v) { return v == 0; });
if (it == raw.end()) {
return raw;
}
@@ -101,9 +94,7 @@ std::vector<FLAGS> get_high_level_flags(span<const uint8_t> flags, KIND kind) {
for (uint8_t flag : flags) {
switch (kind) {
- case KIND::UNKNOWN:
- out.push_back((FLAGS)flag);
- break;
+ case KIND::UNKNOWN: out.push_back((FLAGS)flag); break;
case KIND::PER_PROCESS:
out.push_back((FLAGS)(flag | RuntimeTableEntry::F_PER_PROCESS));
@@ -130,7 +121,7 @@ std::string FunctionVariants::RuntimeTableEntry::to_string() const {
if (another_table()) {
oss << fmt::format("Table: #{}", impl());
} else {
- oss << fmt::format("Function: 0x{:08x}", impl());
+ oss << fmt::format("Function: {:#010x}", impl());
}
std::vector<FLAGS> flags = this->flags();
if (flags.empty()) {
@@ -142,7 +133,8 @@ std::string FunctionVariants::RuntimeTableEntry::to_string() const {
raw.push_back(get_raw(f));
formated.push_back(pretty_name(f));
}
- oss << fmt::format(" {:02x}: {}", fmt::join(raw, " "), fmt::join(formated, ", "));
+ oss << fmt::format(" {:02x}: {}", fmt::join(raw, " "),
+ fmt::join(formated, ", "));
}
return oss.str();
@@ -150,46 +142,59 @@ std::string FunctionVariants::RuntimeTableEntry::to_string() const {
std::string FunctionVariants::RuntimeTable::to_string() const {
std::ostringstream oss;
- oss << fmt::format("Namespace: {} ({})", MachO::to_string(kind()), (uint32_t)kind()) << '\n';
+ oss << fmt::format("Namespace: {} ({})", MachO::to_string(kind()),
+ (uint32_t)kind())
+ << '\n';
for (const RuntimeTableEntry& entry : entries()) {
oss << " " << entry << '\n';
}
return oss.str();
}
-std::vector<FunctionVariants::RuntimeTable> FunctionVariants::parse_payload(SpanStream& stream) {
+std::vector<FunctionVariants::RuntimeTable>
+ FunctionVariants::parse_payload(SpanStream& stream) {
std::vector<FunctionVariants::RuntimeTable> result;
auto tableCount = stream.read<uint32_t>();
if (!tableCount) {
- LIEF_DEBUG("Error: Failed to read FunctionVariants.OnDiskFormat.tableCount");
+ LIEF_DEBUG("Failed to read FunctionVariants.OnDiskFormat.tableCount");
return result;
}
+ int64_t max_entries = stream.size() / sizeof(details::runtime_table_entry_t);
+
for (size_t i = 0; i < *tableCount; ++i) {
+ if (max_entries <= 0) {
+ break;
+ }
+
auto tableOffset = stream.read<uint32_t>();
if (!tableOffset) {
- LIEF_DEBUG("Error: Failed to read FunctionVariants.OnDiskFormat.tableOffsets[{}]", i);
+ LIEF_DEBUG("Failed to read FunctionVariants.OnDiskFormat.tableOffsets[{}]",
+ i);
return result;
}
{
ScopedStream runtime_table_strm(stream, *tableOffset);
- if (auto entry = parse_entry(*runtime_table_strm)) {
+ if (auto entry = parse_entry(*runtime_table_strm, max_entries)) {
+ max_entries -= entry->entries().size();
result.push_back(std::move(*entry));
} else {
- LIEF_DEBUG("Failed to parse entry #{} at offset: 0x{:06x}", i, *tableOffset);
+ LIEF_DEBUG("Failed to parse entry #{} at offset: {:#08x}", i,
+ *tableOffset);
}
}
}
return result;
}
-result<FunctionVariants::RuntimeTable> FunctionVariants::parse_entry(BinaryStream& stream) {
+result<FunctionVariants::RuntimeTable>
+ FunctionVariants::parse_entry(BinaryStream& stream, uint64_t max_entries) {
auto kind = stream.read<uint32_t>();
if (!kind) {
- LIEF_DEBUG("Error: Failed to read FunctionVariantsRuntimeTable.kind");
+ LIEF_DEBUG("Failed to read FunctionVariantsRuntimeTable.kind");
return make_error_code(kind.error());
}
@@ -198,21 +203,26 @@ result<FunctionVariants::RuntimeTable> FunctionVariants::parse_entry(BinaryStrea
auto count = stream.read<uint32_t>();
if (!count) {
- LIEF_DEBUG("Error: Failed to read FunctionVariantsRuntimeTable.count");
+ LIEF_DEBUG("Failed to read FunctionVariantsRuntimeTable.count");
return make_error_code(count.error());
}
for (size_t i = 0; i < *count; ++i) {
+ if (i > max_entries) {
+ LIEF_WARN("Too many FunctionVariants. Stopping");
+ return runtime_table;
+ }
auto raw_entry = stream.read<details::runtime_table_entry_t>();
if (!raw_entry) {
- LIEF_DEBUG("Error: Failed to read FunctionVariantsRuntimeTable.entries[{}]", i);
+ LIEF_DEBUG("Failed to read FunctionVariantsRuntimeTable.entries[{}]", i);
return runtime_table;
}
RuntimeTableEntry entry(*raw_entry);
span<const uint8_t> flags = get_relevant_flags(entry.flag_bit_nums());
- std::vector<FLAGS> hl_flags = get_high_level_flags(flags, runtime_table.kind());
+ std::vector<FLAGS> hl_flags =
+ get_high_level_flags(flags, runtime_table.kind());
entry.set_flags(std::move(hl_flags));
runtime_table.add(std::move(entry));
@@ -234,17 +244,16 @@ const char* to_string(FunctionVariants::RuntimeTable::KIND kind) {
const char* to_string(FLAGS f) {
switch (f) {
- #define FUNCTION_VARIANT_FLAG(X, __, _) case FLAGS::X: return #X;
- #include "LIEF/MachO/FunctionVariants/Arm64.def"
- #include "LIEF/MachO/FunctionVariants/PerProcess.def"
- #include "LIEF/MachO/FunctionVariants/SystemWide.def"
- #include "LIEF/MachO/FunctionVariants/X86_64.def"
- #undef FUNCTION_VARIANT_FLAG
- case FLAGS::UNKNOWN:
- return "UNKNOWN";
+#define FUNCTION_VARIANT_FLAG(X, __, _) \
+ case FLAGS::X: return #X;
+#include "LIEF/MachO/FunctionVariants/Arm64.def"
+#include "LIEF/MachO/FunctionVariants/PerProcess.def"
+#include "LIEF/MachO/FunctionVariants/SystemWide.def"
+#include "LIEF/MachO/FunctionVariants/X86_64.def"
+#undef FUNCTION_VARIANT_FLAG
+ case FLAGS::UNKNOWN: return "UNKNOWN";
}
return "UNKNOWN";
}
}
-}
diff --git a/deps/LIEF/src/MachO/Header.cpp b/deps/LIEF/src/MachO/Header.cpp
index acf882ea24c..f243ee194be 100644
--- a/deps/LIEF/src/MachO/Header.cpp
+++ b/deps/LIEF/src/MachO/Header.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,11 +14,8 @@
* limitations under the License.
*/
-#include <map>
-#include <set>
#include <algorithm>
#include <iterator>
-#include <string>
#include "fmt_formatter.hpp"
#include "frozen.hpp"
@@ -30,25 +27,40 @@
FMT_FORMATTER(LIEF::MachO::Header::FLAGS, LIEF::MachO::to_string);
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
static constexpr auto HEADER_FLAGS = {
- Header::FLAGS::NOUNDEFS, Header::FLAGS::INCRLINK,
- Header::FLAGS::DYLDLINK, Header::FLAGS::BINDATLOAD,
- Header::FLAGS::PREBOUND, Header::FLAGS::SPLIT_SEGS,
- Header::FLAGS::LAZY_INIT, Header::FLAGS::TWOLEVEL,
- Header::FLAGS::FORCE_FLAT, Header::FLAGS::NOMULTIDEFS,
- Header::FLAGS::NOFIXPREBINDING, Header::FLAGS::PREBINDABLE,
- Header::FLAGS::ALLMODSBOUND, Header::FLAGS::SUBSECTIONS_VIA_SYMBOLS,
- Header::FLAGS::CANONICAL, Header::FLAGS::WEAK_DEFINES,
- Header::FLAGS::BINDS_TO_WEAK, Header::FLAGS::ALLOW_STACK_EXECUTION,
- Header::FLAGS::ROOT_SAFE, Header::FLAGS::SETUID_SAFE,
- Header::FLAGS::NO_REEXPORTED_DYLIBS, Header::FLAGS::PIE,
- Header::FLAGS::DEAD_STRIPPABLE_DYLIB, Header::FLAGS::HAS_TLV_DESCRIPTORS,
- Header::FLAGS::NO_HEAP_EXECUTION, Header::FLAGS::APP_EXTENSION_SAFE,
- Header::FLAGS::NLIST_OUTOFSYNC_WITH_DYLDINFO, Header::FLAGS::SIM_SUPPORT,
- Header::FLAGS::IMPLICIT_PAGEZERO, Header::FLAGS::DYLIB_IN_CACHE,
+ Header::FLAGS::NOUNDEFS,
+ Header::FLAGS::INCRLINK,
+ Header::FLAGS::DYLDLINK,
+ Header::FLAGS::BINDATLOAD,
+ Header::FLAGS::PREBOUND,
+ Header::FLAGS::SPLIT_SEGS,
+ Header::FLAGS::LAZY_INIT,
+ Header::FLAGS::TWOLEVEL,
+ Header::FLAGS::FORCE_FLAT,
+ Header::FLAGS::NOMULTIDEFS,
+ Header::FLAGS::NOFIXPREBINDING,
+ Header::FLAGS::PREBINDABLE,
+ Header::FLAGS::ALLMODSBOUND,
+ Header::FLAGS::SUBSECTIONS_VIA_SYMBOLS,
+ Header::FLAGS::CANONICAL,
+ Header::FLAGS::WEAK_DEFINES,
+ Header::FLAGS::BINDS_TO_WEAK,
+ Header::FLAGS::ALLOW_STACK_EXECUTION,
+ Header::FLAGS::ROOT_SAFE,
+ Header::FLAGS::SETUID_SAFE,
+ Header::FLAGS::NO_REEXPORTED_DYLIBS,
+ Header::FLAGS::PIE,
+ Header::FLAGS::DEAD_STRIPPABLE_DYLIB,
+ Header::FLAGS::HAS_TLV_DESCRIPTORS,
+ Header::FLAGS::NO_HEAP_EXECUTION,
+ Header::FLAGS::APP_EXTENSION_SAFE,
+ Header::FLAGS::NLIST_OUTOFSYNC_WITH_DYLDINFO,
+ Header::FLAGS::SIM_SUPPORT,
+ Header::FLAGS::IMPLICIT_PAGEZERO,
+ Header::FLAGS::DYLIB_IN_CACHE,
};
template<class T>
@@ -59,8 +71,7 @@ Header::Header(const T& header) :
filetype_{static_cast<FILE_TYPE>(header.filetype)},
ncmds_{header.ncmds},
sizeofcmds_{header.sizeofcmds},
- flags_{header.flags}
-{
+ flags_{header.flags} {
if constexpr (std::is_same_v<T, details::mach_header_64>) {
reserved_ = header.reserved;
} else {
@@ -75,9 +86,9 @@ template Header::Header(const details::mach_header& header);
std::vector<Header::FLAGS> Header::flags_list() const {
std::vector<Header::FLAGS> flags;
- std::copy_if(std::begin(HEADER_FLAGS), std::end(HEADER_FLAGS),
- std::inserter(flags, std::begin(flags)),
- [this] (FLAGS f) { return has(f); });
+ std::copy_if(HEADER_FLAGS.begin(), HEADER_FLAGS.end(),
+ std::inserter(flags, flags.begin()),
+ [this](FLAGS f) { return has(f); });
return flags;
}
@@ -100,52 +111,53 @@ void Header::accept(Visitor& visitor) const {
}
std::ostream& operator<<(std::ostream& os, const Header& hdr) {
- os << fmt::format("Magic: 0x{:08x}\n", uint32_t(hdr.magic()));
+ os << fmt::format("Magic: {:#010x}\n", uint32_t(hdr.magic()));
os << fmt::format("CPU: {}\n", to_string(hdr.cpu_type()));
- os << fmt::format("CPU subtype: 0x{:08x}\n", hdr.cpu_subtype());
- os << fmt::format("File type: {} ({:#x})\n", to_string(hdr.file_type()), (uint32_t)hdr.file_type());
+ os << fmt::format("CPU subtype: {:#010x}\n", hdr.cpu_subtype());
+ os << fmt::format("File type: {} ({:#x})\n", to_string(hdr.file_type()),
+ (uint32_t)hdr.file_type());
os << fmt::format("Flags: {}\n", hdr.flags());
- os << fmt::format("Reserved: 0x{:x}\n", hdr.reserved());
+ os << fmt::format("Reserved: {:#x}\n", hdr.reserved());
os << fmt::format("Nb cmds: {}\n", hdr.nb_cmds());
os << fmt::format("Sizeof cmds: {}", hdr.sizeof_cmds());
return os;
}
const char* to_string(Header::FLAGS e) {
- #define ENTRY(X) std::pair(Header::FLAGS::X, #X)
- STRING_MAP enums2str {
- ENTRY(NOUNDEFS),
- ENTRY(INCRLINK),
- ENTRY(DYLDLINK),
- ENTRY(BINDATLOAD),
- ENTRY(PREBOUND),
- ENTRY(SPLIT_SEGS),
- ENTRY(LAZY_INIT),
- ENTRY(TWOLEVEL),
- ENTRY(FORCE_FLAT),
- ENTRY(NOMULTIDEFS),
- ENTRY(NOFIXPREBINDING),
- ENTRY(PREBINDABLE),
- ENTRY(ALLMODSBOUND),
- ENTRY(SUBSECTIONS_VIA_SYMBOLS),
- ENTRY(CANONICAL),
- ENTRY(WEAK_DEFINES),
- ENTRY(BINDS_TO_WEAK),
- ENTRY(ALLOW_STACK_EXECUTION),
- ENTRY(ROOT_SAFE),
- ENTRY(SETUID_SAFE),
- ENTRY(NO_REEXPORTED_DYLIBS),
- ENTRY(PIE),
- ENTRY(DEAD_STRIPPABLE_DYLIB),
- ENTRY(HAS_TLV_DESCRIPTORS),
- ENTRY(NO_HEAP_EXECUTION),
- ENTRY(APP_EXTENSION_SAFE),
- ENTRY(NLIST_OUTOFSYNC_WITH_DYLDINFO),
- ENTRY(SIM_SUPPORT),
- ENTRY(IMPLICIT_PAGEZERO),
- ENTRY(DYLIB_IN_CACHE),
+#define ENTRY(X) std::pair(Header::FLAGS::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(NOUNDEFS),
+ ENTRY(INCRLINK),
+ ENTRY(DYLDLINK),
+ ENTRY(BINDATLOAD),
+ ENTRY(PREBOUND),
+ ENTRY(SPLIT_SEGS),
+ ENTRY(LAZY_INIT),
+ ENTRY(TWOLEVEL),
+ ENTRY(FORCE_FLAT),
+ ENTRY(NOMULTIDEFS),
+ ENTRY(NOFIXPREBINDING),
+ ENTRY(PREBINDABLE),
+ ENTRY(ALLMODSBOUND),
+ ENTRY(SUBSECTIONS_VIA_SYMBOLS),
+ ENTRY(CANONICAL),
+ ENTRY(WEAK_DEFINES),
+ ENTRY(BINDS_TO_WEAK),
+ ENTRY(ALLOW_STACK_EXECUTION),
+ ENTRY(ROOT_SAFE),
+ ENTRY(SETUID_SAFE),
+ ENTRY(NO_REEXPORTED_DYLIBS),
+ ENTRY(PIE),
+ ENTRY(DEAD_STRIPPABLE_DYLIB),
+ ENTRY(HAS_TLV_DESCRIPTORS),
+ ENTRY(NO_HEAP_EXECUTION),
+ ENTRY(APP_EXTENSION_SAFE),
+ ENTRY(NLIST_OUTOFSYNC_WITH_DYLDINFO),
+ ENTRY(SIM_SUPPORT),
+ ENTRY(IMPLICIT_PAGEZERO),
+ ENTRY(DYLIB_IN_CACHE),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -154,25 +166,14 @@ const char* to_string(Header::FLAGS e) {
}
const char* to_string(Header::FILE_TYPE e) {
- #define ENTRY(X) std::pair(Header::FILE_TYPE::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNKNOWN),
- ENTRY(OBJECT),
- ENTRY(EXECUTE),
- ENTRY(FVMLIB),
- ENTRY(CORE),
- ENTRY(PRELOAD),
- ENTRY(DYLIB),
- ENTRY(DYLINKER),
- ENTRY(BUNDLE),
- ENTRY(DYLIB_STUB),
- ENTRY(DSYM),
- ENTRY(KEXT_BUNDLE),
- ENTRY(FILESET),
- ENTRY(GPU_EXECUTE),
- ENTRY(GPU_DYLIB),
+#define ENTRY(X) std::pair(Header::FILE_TYPE::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(UNKNOWN), ENTRY(OBJECT), ENTRY(EXECUTE), ENTRY(FVMLIB),
+ ENTRY(CORE), ENTRY(PRELOAD), ENTRY(DYLIB), ENTRY(DYLINKER),
+ ENTRY(BUNDLE), ENTRY(DYLIB_STUB), ENTRY(DSYM), ENTRY(KEXT_BUNDLE),
+ ENTRY(FILESET), ENTRY(GPU_EXECUTE), ENTRY(GPU_DYLIB),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -181,28 +182,15 @@ const char* to_string(Header::FILE_TYPE e) {
}
const char* to_string(Header::CPU_TYPE e) {
- #define ENTRY(X) std::pair(Header::CPU_TYPE::X, #X)
- STRING_MAP enums2str {
- ENTRY(ANY),
- ENTRY(X86),
- ENTRY(X86_64),
- ENTRY(MIPS),
- ENTRY(MC98000),
- ENTRY(HPPA),
- ENTRY(ARM),
- ENTRY(ARM64),
- ENTRY(MC88000),
- ENTRY(SPARC),
- ENTRY(I860),
- ENTRY(ALPHA),
- ENTRY(POWERPC),
- ENTRY(POWERPC64),
- ENTRY(APPLE_GPU),
- ENTRY(AMD_GPU),
- ENTRY(INTEL_GPU),
- ENTRY(AIR64),
+#define ENTRY(X) std::pair(Header::CPU_TYPE::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(ANY), ENTRY(X86), ENTRY(X86_64), ENTRY(MIPS),
+ ENTRY(MC98000), ENTRY(HPPA), ENTRY(ARM), ENTRY(ARM64),
+ ENTRY(MC88000), ENTRY(SPARC), ENTRY(I860), ENTRY(ALPHA),
+ ENTRY(POWERPC), ENTRY(POWERPC64), ENTRY(APPLE_GPU), ENTRY(AMD_GPU),
+ ENTRY(INTEL_GPU), ENTRY(AIR64),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -211,4 +199,3 @@ const char* to_string(Header::CPU_TYPE e) {
}
}
-}
diff --git a/deps/LIEF/src/MachO/LazyLoadDylibInfo.cpp b/deps/LIEF/src/MachO/LazyLoadDylibInfo.cpp
new file mode 100644
index 00000000000..bde4eb0ba78
--- /dev/null
+++ b/deps/LIEF/src/MachO/LazyLoadDylibInfo.cpp
@@ -0,0 +1,225 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <algorithm>
+#include <limits>
+
+#include "spdlog/fmt/fmt.h"
+
+#include "LIEF/BinaryStream/BinaryStream.hpp"
+#include "LIEF/BinaryStream/SpanStream.hpp"
+#include "LIEF/iostream.hpp"
+#include "LIEF/utils.hpp"
+
+#include "LIEF/MachO/LazyLoadDylibInfo.hpp"
+#include "LIEF/MachO/SegmentCommand.hpp"
+#include "LIEF/MachO/ChainedPointerAnalysis.hpp"
+
+#include "MachO/Structures.hpp"
+
+#include "logging.hpp"
+
+
+namespace LIEF::MachO {
+
+LazyLoadDylibInfo::LazyLoadDylibInfo() :
+ LoadCommand::LoadCommand{LoadCommand::TYPE::LAZY_LOAD_DYLIB_INFO,
+ sizeof(details::linkedit_data_command)} {}
+
+LazyLoadDylibInfo::LazyLoadDylibInfo(const details::linkedit_data_command& cmd) :
+ LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
+ data_offset_{cmd.dataoff},
+ data_size_{cmd.datasize} {}
+
+
+ok_error_t LazyLoadDylibInfo::walk_fixups(uint64_t chain_va, SegmentCommand& seg) {
+ const uint64_t seg_va = seg.virtual_address();
+ span<uint8_t> seg_content = seg.content();
+
+ SpanStream chain_stream(seg_content);
+ assert(chain_va >= seg_va);
+ chain_stream.setpos(chain_va - seg_va);
+
+ const auto ptr_fmt = DYLD_CHAINED_PTR_FORMAT(pointer_format());
+
+ ChainedPointerAnalysis::walk_chain(
+ chain_stream, ptr_fmt,
+ [&](uint64_t offset, const ChainedPointerAnalysis::union_pointer_t& ptr) {
+ auto ordinal = ptr.ordinal();
+ if (!ordinal) {
+ return 0;
+ }
+ std::string symbol = *ordinal < symbols_.size() ? symbols_[*ordinal] : "";
+ fixups_.emplace_back(seg_va + offset, *ordinal, std::move(symbol),
+ ptr.is_auth());
+ return 0;
+ }
+ );
+ return ok();
+}
+
+ok_error_t LazyLoadDylibInfo::parse_payload(BinaryStream& stream) {
+ auto load_path_offset = stream.read<uint32_t>();
+ if (!load_path_offset) {
+ LIEF_DEBUG("Failed to read LazyLoadDylibInfo.loadPathOffset");
+ return make_error_code(load_path_offset.error());
+ }
+
+ auto flag_image_offset = stream.read<uint32_t>();
+ if (!flag_image_offset) {
+ LIEF_DEBUG("Failed to read LazyLoadDylibInfo.flagImageOffset");
+ return make_error_code(flag_image_offset.error());
+ }
+
+ auto flags = stream.read<uint16_t>();
+ if (!flags) {
+ LIEF_DEBUG("Failed to read LazyLoadDylibInfo.flags");
+ return make_error_code(flags.error());
+ }
+
+ auto pointer_format = stream.read<uint16_t>();
+ if (!pointer_format) {
+ LIEF_DEBUG("Failed to read LazyLoadDylibInfo.pointerFormat");
+ return make_error_code(pointer_format.error());
+ }
+
+ auto chain_start_image_offset = stream.read<uint32_t>();
+ if (!chain_start_image_offset) {
+ LIEF_DEBUG("Failed to read LazyLoadDylibInfo.chainStartImageOffset");
+ return make_error_code(chain_start_image_offset.error());
+ }
+
+ auto symbols_count = stream.read<uint32_t>();
+ if (!symbols_count) {
+ LIEF_DEBUG("Failed to read LazyLoadDylibInfo.symbolsCount");
+ return make_error_code(symbols_count.error());
+ }
+
+ auto symbol_string_array_offset = stream.read<uint32_t>();
+ if (!symbol_string_array_offset) {
+ LIEF_DEBUG("Failed to read LazyLoadDylibInfo.symbolStringArrayOffset");
+ return make_error_code(symbol_string_array_offset.error());
+ }
+
+ flag_image_offset_ = *flag_image_offset;
+ flags_ = *flags;
+ pointer_format_ = *pointer_format;
+ chain_start_image_offset_ = *chain_start_image_offset;
+
+ if (auto path = stream.peek_string_at(*load_path_offset)) {
+ load_path_ = std::move(*path);
+ } else {
+ LIEF_DEBUG("Failed to read LazyLoadDylibInfo's load path at offset {:#x}",
+ *load_path_offset);
+ }
+
+ const size_t max_symbols = stream.size() / sizeof(uint32_t);
+ symbols_.reserve(std::min<size_t>(*symbols_count, max_symbols));
+
+ for (size_t i = 0; i < *symbols_count; ++i) {
+ const uint64_t off = *symbol_string_array_offset + i * sizeof(uint32_t);
+ auto symbol_offset = stream.peek<uint32_t>(off);
+ if (!symbol_offset) {
+ LIEF_DEBUG("Failed to read LazyLoadDylibInfo.symbolStringOffsets[{}]", i);
+ break;
+ }
+
+ if (auto symbol = stream.peek_string_at(*symbol_offset)) {
+ symbols_.push_back(std::move(*symbol));
+ } else {
+ LIEF_DEBUG("Failed to read LazyLoadDylibInfo's symbol #{} at offset {:#x}",
+ i, *symbol_offset);
+ }
+ }
+
+ return ok();
+}
+
+ok_error_t LazyLoadDylibInfo::serialize(vector_iostream& ios) const {
+ // Mirror mach_o::LazyLoadDylibWriter.
+ // [0] header (24 bytes, the 7 LazyLoadDylibLinkEdit fields)
+ // [24] symbol string-offset array (4 * symbolsCount)
+ // [24 + 4*symbolsCount] load path string (NUL-terminated)
+ // [...] the symbol strings (each NUL-terminated)
+ static constexpr uint32_t HEADER_SIZE = 24;
+ const uint64_t symbols_count = symbols_.size();
+ const uint64_t symbol_string_array_offset = HEADER_SIZE;
+ const uint64_t load_path_offset = HEADER_SIZE + symbols_count * sizeof(uint32_t);
+
+ std::vector<uint64_t> symbol_offsets;
+ symbol_offsets.reserve(symbols().size());
+ uint64_t pos = load_path_offset + load_path_.size() + 1;
+ for (const std::string& symbol : symbols()) {
+ symbol_offsets.push_back(pos);
+ pos += symbol.size() + 1;
+ }
+
+ // LINKEDIT content must be pointer-size aligned
+ const auto total_size = align_up<uint64_t>(pos, sizeof(uint64_t));
+ if (total_size > std::numeric_limits<uint32_t>::max()) {
+ LIEF_ERR("LazyLoadDylibInfo payload is too large ({} bytes): its 32-bit "
+ "offsets cannot be encoded",
+ total_size);
+ return make_error_code(lief_errors::build_error);
+ }
+
+ // header
+ (ios)
+ .write<uint32_t>((uint32_t)load_path_offset)
+ .write<uint32_t>(flag_image_offset_)
+ .write<uint16_t>(flags_)
+ .write<uint16_t>(pointer_format_)
+ .write<uint32_t>(chain_start_image_offset_)
+ .write<uint32_t>((uint32_t)symbols_count)
+ .write<uint32_t>((uint32_t)symbol_string_array_offset);
+
+ // symbol string offsets array
+ for (uint64_t offset : symbol_offsets) {
+ ios.write<uint32_t>((uint32_t)offset);
+ }
+
+ ios.write(load_path_);
+ for (const std::string& symbol : symbols_) {
+ ios.write(symbol);
+ }
+ return ok();
+}
+
+std::string LazyLoadDylibInfo::Fixup::to_string() const {
+ return fmt::format("{:#010x}: {} (ordinal={}{})", address(), symbol(), ordinal(),
+ is_auth() ? ", auth" : "");
+}
+
+std::ostream& LazyLoadDylibInfo::print(std::ostream& os) const {
+ LoadCommand::print(os) << '\n';
+ os << fmt::format("Load path: {}\n", load_path());
+ os << fmt::format("Flags: {:#06x} (may be missing: {})\n", flags(),
+ may_be_missing());
+ os << fmt::format("Pointer format: {:#06x}\n", pointer_format());
+ os << fmt::format("Flag image offset: {:#010x}\n", flag_image_offset());
+ os << fmt::format("Chain start image offset: {:#010x}\n",
+ chain_start_image_offset());
+ os << fmt::format("Symbols ({}):\n", symbols().size());
+ for (const std::string& symbol : symbols()) {
+ os << fmt::format(" {}\n", symbol);
+ }
+ os << fmt::format("Fixups ({}):\n", fixups_.size());
+ for (const Fixup& fixup : fixups_) {
+ os << fmt::format(" {}\n", fixup.to_string());
+ }
+ return os;
+}
+
+}
diff --git a/deps/LIEF/src/MachO/LinkEdit.cpp b/deps/LIEF/src/MachO/LinkEdit.cpp
index a8d5adc0ef3..ae7185377d0 100644
--- a/deps/LIEF/src/MachO/LinkEdit.cpp
+++ b/deps/LIEF/src/MachO/LinkEdit.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,6 +26,7 @@
#include "LIEF/MachO/FunctionStarts.hpp"
#include "LIEF/MachO/FunctionVariants.hpp"
#include "LIEF/MachO/FunctionVariantFixups.hpp"
+#include "LIEF/MachO/LazyLoadDylibInfo.hpp"
#include "LIEF/MachO/LinkEdit.hpp"
#include "LIEF/MachO/LinkerOptHint.hpp"
#include "LIEF/MachO/SegmentSplitInfo.hpp"
@@ -33,21 +34,22 @@
#include "LIEF/MachO/TwoLevelHints.hpp"
#include "LIEF/MachO/SegmentCommand.hpp"
-namespace LIEF {
-namespace MachO {
-/* The DyldInfo object has span fields (rebase_opcodes_, ...) that point to segment data.
- * When resizing the ``SegmentCommand.data_`` we can break this span as the internal buffer of ``data_``
- * might be relocated.
+namespace LIEF::MachO {
+
+/* The DyldInfo object has span fields (rebase_opcodes_, ...) that point to segment
+ * data. When resizing the ``SegmentCommand.data_`` we can break this span as the
+ * internal buffer of ``data_`` might be relocated.
*
- * The following helpers keep an internal consistent state of the data
+ * The following helpers keep an internally consistent state of the data
*/
inline ok_error_t update_span(span<uint8_t>& sp, uintptr_t original_data_addr,
- uintptr_t original_data_end, std::vector<uint8_t>& new_data)
-{
+ uintptr_t original_data_end,
+ std::vector<uint8_t>& new_data) {
auto span_data_addr = reinterpret_cast<uintptr_t>(sp.data());
- const bool is_encompassed = original_data_addr <= span_data_addr && span_data_addr < original_data_end;
+ const bool is_encompassed =
+ original_data_addr <= span_data_addr && span_data_addr < original_data_end;
if (!is_encompassed) {
return ok();
}
@@ -61,7 +63,8 @@ inline ok_error_t update_span(span<uint8_t>& sp, uintptr_t original_data_addr,
}
const uintptr_t delta = span_data_addr - original_data_addr;
- const bool fit_in_data = delta < new_data.size() && (delta + original_size) <= new_data.size();
+ const bool fit_in_data =
+ delta < new_data.size() && (delta + original_size) <= new_data.size();
if (!fit_in_data) {
sp = {new_data.data(), static_cast<size_t>(0)};
return make_error_code(lief_errors::corrupted);
@@ -73,11 +76,12 @@ inline ok_error_t update_span(span<uint8_t>& sp, uintptr_t original_data_addr,
/// @param[in] offset Offset where the insertion took place
/// @param[in] size Size of the inserted data
-inline ok_error_t update_span(span<uint8_t>& sp, uintptr_t original_data_addr, uintptr_t original_data_end,
- size_t offset, size_t size, std::vector<uint8_t>& new_data)
-{
+inline ok_error_t update_span(span<uint8_t>& sp, uintptr_t original_data_addr,
+ uintptr_t original_data_end, size_t offset,
+ size_t size, std::vector<uint8_t>& new_data) {
auto span_data_addr = reinterpret_cast<uintptr_t>(sp.data());
- const bool is_encompassed = original_data_addr <= span_data_addr && span_data_addr < original_data_end;
+ const bool is_encompassed =
+ original_data_addr <= span_data_addr && span_data_addr < original_data_end;
if (!is_encompassed) {
// No need to re-span
return ok();
@@ -92,8 +96,9 @@ inline ok_error_t update_span(span<uint8_t>& sp, uintptr_t original_data_addr, u
delta_offset = size;
}
- const bool fit_in_data = (original_rel_offset + delta_offset) < new_data.size() &&
- (original_rel_offset + delta_offset + sp.size()) < new_data.size();
+ const bool fit_in_data =
+ (original_rel_offset + delta_offset) < new_data.size() &&
+ (original_rel_offset + delta_offset + sp.size()) < new_data.size();
if (!fit_in_data) {
sp = {new_data.data(), static_cast<size_t>(0)};
return make_error_code(lief_errors::corrupted);
@@ -110,219 +115,320 @@ LinkEdit& LinkEdit::operator=(LinkEdit other) {
void LinkEdit::swap(LinkEdit& other) noexcept {
SegmentCommand::swap(other);
- std::swap(dyld_, other.dyld_);
+ std::swap(dyld_, other.dyld_);
std::swap(chained_fixups_, other.chained_fixups_);
}
void LinkEdit::update_data(const update_fnc_t& f) {
- const auto original_data_addr = reinterpret_cast<uintptr_t>(data_.data());
- const auto original_data_size = static_cast<size_t>(data_.size());
+ const auto original_data_addr = reinterpret_cast<uintptr_t>(data_.data());
+ const auto original_data_size = static_cast<size_t>(data_.size());
const uintptr_t original_data_end = original_data_addr + original_data_size;
f(data_);
if (dyld_ != nullptr) {
- if (!update_span(dyld_->rebase_opcodes_, original_data_addr, original_data_end, data_)) {
- LIEF_WARN("Error while re-spanning rebase opcodes in segment {}", name_);
+ if (!update_span(dyld_->rebase_opcodes_, original_data_addr, original_data_end,
+ data_))
+ {
+ LIEF_WARN("Failed to re-span rebase opcodes in segment {}", name_);
}
- if (!update_span(dyld_->bind_opcodes_, original_data_addr, original_data_end, data_)) {
- LIEF_WARN("Error while re-spanning bind opcodes in segment {}", name_);
+ if (!update_span(dyld_->bind_opcodes_, original_data_addr, original_data_end,
+ data_))
+ {
+ LIEF_WARN("Failed to re-span bind opcodes in segment {}", name_);
}
- if (!update_span(dyld_->weak_bind_opcodes_, original_data_addr, original_data_end, data_)) {
- LIEF_WARN("Error while re-spanning weak bind opcodes in segment {}", name_);
+ if (!update_span(dyld_->weak_bind_opcodes_, original_data_addr,
+ original_data_end, data_))
+ {
+ LIEF_WARN("Failed to re-span weak bind opcodes in segment {}", name_);
}
- if (!update_span(dyld_->lazy_bind_opcodes_, original_data_addr, original_data_end, data_)) {
- LIEF_WARN("Error while re-spanning lazy bind opcodes in segment {}", name_);
+ if (!update_span(dyld_->lazy_bind_opcodes_, original_data_addr,
+ original_data_end, data_))
+ {
+ LIEF_WARN("Failed to re-span lazy bind opcodes in segment {}", name_);
}
- if (!update_span(dyld_->export_trie_, original_data_addr, original_data_end, data_)) {
- LIEF_WARN("Error while re-spanning the export trie in segment {}", name_);
+ if (!update_span(dyld_->export_trie_, original_data_addr, original_data_end,
+ data_))
+ {
+ LIEF_WARN("Failed to re-span the export trie in segment {}", name_);
}
}
if (chained_fixups_ != nullptr) {
- if (!update_span(chained_fixups_->content_, original_data_addr, original_data_end, data_)) {
- LIEF_WARN("Error while re-spanning the Dyld Chained fixups in segment {}", name_);
+ if (!update_span(chained_fixups_->content_, original_data_addr,
+ original_data_end, data_))
+ {
+ LIEF_WARN("Failed to re-span the Dyld Chained fixups in segment {}", name_);
}
}
if (exports_trie_ != nullptr) {
- if (!update_span(exports_trie_->content_, original_data_addr, original_data_end, data_)) {
- LIEF_WARN("Error while re-spanning the Dyld Exports Trie in segment {}", name_);
+ if (!update_span(exports_trie_->content_, original_data_addr,
+ original_data_end, data_))
+ {
+ LIEF_WARN("Failed to re-span the Dyld Exports Trie in segment {}", name_);
}
}
if (symtab_ != nullptr) {
- if (!update_span(symtab_->symbol_table_, original_data_addr, original_data_end, data_)) {
- LIEF_WARN("Error while re-spanning the LC_SYMTAB.n_list in segment {}", name_);
+ if (!update_span(symtab_->symbol_table_, original_data_addr, original_data_end,
+ data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_SYMTAB.n_list in segment {}", name_);
}
- if (!update_span(symtab_->string_table_, original_data_addr, original_data_end, data_)) {
- LIEF_WARN("Error while re-spanning the LC_SYMTAB.string_table in segment {}", name_);
+ if (!update_span(symtab_->string_table_, original_data_addr, original_data_end,
+ data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_SYMTAB.string_table in segment {}",
+ name_);
}
}
if (fstarts_ != nullptr) {
- if (!update_span(fstarts_->content_, original_data_addr, original_data_end, data_)) {
- LIEF_WARN("Error while re-spanning the LC_FUNCTION_STARTS in segment {}", name_);
+ if (!update_span(fstarts_->content_, original_data_addr, original_data_end,
+ data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_FUNCTION_STARTS in segment {}", name_);
}
}
if (data_code_ != nullptr) {
- if (!update_span(data_code_->content_, original_data_addr, original_data_end, data_)) {
- LIEF_WARN("Error while re-spanning the LC_DATA_IN_CODE in segment {}", name_);
+ if (!update_span(data_code_->content_, original_data_addr, original_data_end,
+ data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_DATA_IN_CODE in segment {}", name_);
}
}
if (seg_split_ != nullptr) {
- if (!update_span(seg_split_->content_, original_data_addr, original_data_end, data_)) {
- LIEF_WARN("Error while re-spanning the LC_SEGMENT_SPLIT_INFO in segment {}", name_);
+ if (!update_span(seg_split_->content_, original_data_addr, original_data_end,
+ data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_SEGMENT_SPLIT_INFO in segment {}",
+ name_);
}
}
if (two_lvl_hint_ != nullptr) {
- if (!update_span(two_lvl_hint_->content_, original_data_addr, original_data_end, data_)) {
- LIEF_WARN("Error while re-spanning the LC_TWOLEVEL_HINTS in segment {}", name_);
+ if (!update_span(two_lvl_hint_->content_, original_data_addr,
+ original_data_end, data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_TWOLEVEL_HINTS in segment {}", name_);
}
}
if (linker_opt_ != nullptr) {
- if (!update_span(linker_opt_->content_, original_data_addr, original_data_end, data_)) {
- LIEF_WARN("Error while re-spanning the LC_LINKER_OPTIMIZATION_HINT in segment {}", name_);
+ if (!update_span(linker_opt_->content_, original_data_addr, original_data_end,
+ data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_LINKER_OPTIMIZATION_HINT in segment {}",
+ name_);
}
}
if (code_sig_ != nullptr) {
- if (!update_span(code_sig_->content_, original_data_addr, original_data_end, data_)) {
- LIEF_WARN("Error while re-spanning the LC_CODE_SIGNATURE in segment {}", name_);
+ if (!update_span(code_sig_->content_, original_data_addr, original_data_end,
+ data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_CODE_SIGNATURE in segment {}", name_);
}
}
if (code_sig_dir_ != nullptr) {
- if (!update_span(code_sig_dir_->content_, original_data_addr, original_data_end, data_)) {
- LIEF_WARN("Error while re-spanning the LC_DYLIB_CODE_SIGN_DRS in segment {}", name_);
+ if (!update_span(code_sig_dir_->content_, original_data_addr,
+ original_data_end, data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_DYLIB_CODE_SIGN_DRS in segment {}",
+ name_);
}
}
if (atom_info_ != nullptr) {
- if (!update_span(atom_info_->content_, original_data_addr, original_data_end, data_)) {
- LIEF_WARN("Error while re-spanning the LC_ATOM_INFO in segment {}", name_);
+ if (!update_span(atom_info_->content_, original_data_addr, original_data_end,
+ data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_ATOM_INFO in segment {}", name_);
}
}
if (func_variants_ != nullptr) {
- if (!update_span(func_variants_->content_, original_data_addr, original_data_end, data_)) {
- LIEF_WARN("Error while re-spanning the LC_FUNCTION_VARIANTS in segment {}", name_);
+ if (!update_span(func_variants_->content_, original_data_addr,
+ original_data_end, data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_FUNCTION_VARIANTS in segment {}", name_);
}
}
if (func_variant_fixups_ != nullptr) {
- if (!update_span(func_variant_fixups_->content_, original_data_addr, original_data_end, data_)) {
- LIEF_WARN("Error while re-spanning the LC_FUNCTION_VARIANT_FIXUPS in segment {}", name_);
+ if (!update_span(func_variant_fixups_->content_, original_data_addr,
+ original_data_end, data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_FUNCTION_VARIANT_FIXUPS in segment {}",
+ name_);
+ }
+ }
+
+ for (LazyLoadDylibInfo* lazy : lazy_load_dylibs_) {
+ if (!update_span(lazy->content_, original_data_addr, original_data_end, data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_LAZY_LOAD_DYLIB_INFO in segment {}",
+ name_);
}
}
}
void LinkEdit::update_data(const update_fnc_ws_t& f, size_t where, size_t size) {
- const auto original_data_addr = reinterpret_cast<uintptr_t>(data_.data());
- const auto original_data_size = static_cast<size_t>(data_.size());
+ const auto original_data_addr = reinterpret_cast<uintptr_t>(data_.data());
+ const auto original_data_size = static_cast<size_t>(data_.size());
const uintptr_t original_data_end = original_data_addr + original_data_size;
f(data_, where, size);
if (dyld_ != nullptr) {
- if (!update_span(dyld_->rebase_opcodes_, original_data_addr, original_data_end, where, size, data_)) {
- LIEF_WARN("Error while re-spanning rebase opcodes in segment {}", name_);
+ if (!update_span(dyld_->rebase_opcodes_, original_data_addr, original_data_end,
+ where, size, data_))
+ {
+ LIEF_WARN("Failed to re-span rebase opcodes in segment {}", name_);
}
- if (!update_span(dyld_->bind_opcodes_, original_data_addr, original_data_end, where, size, data_)) {
- LIEF_WARN("Error while re-spanning bind opcodes in segment {}", name_);
+ if (!update_span(dyld_->bind_opcodes_, original_data_addr, original_data_end,
+ where, size, data_))
+ {
+ LIEF_WARN("Failed to re-span bind opcodes in segment {}", name_);
}
- if (!update_span(dyld_->weak_bind_opcodes_, original_data_addr, original_data_end, where, size, data_)) {
- LIEF_WARN("Error while re-spanning weak bind opcodes in segment {}", name_);
+ if (!update_span(dyld_->weak_bind_opcodes_, original_data_addr,
+ original_data_end, where, size, data_))
+ {
+ LIEF_WARN("Failed to re-span weak bind opcodes in segment {}", name_);
}
- if (!update_span(dyld_->lazy_bind_opcodes_, original_data_addr, original_data_end, where, size, data_)) {
- LIEF_WARN("Error while re-spanning lazy bind opcodes in segment {}", name_);
+ if (!update_span(dyld_->lazy_bind_opcodes_, original_data_addr,
+ original_data_end, where, size, data_))
+ {
+ LIEF_WARN("Failed to re-span lazy bind opcodes in segment {}", name_);
}
- if (!update_span(dyld_->export_trie_, original_data_addr, original_data_end, where, size, data_)) {
- LIEF_WARN("Error while re-spanning the export trie in segment {}", name_);
+ if (!update_span(dyld_->export_trie_, original_data_addr, original_data_end,
+ where, size, data_))
+ {
+ LIEF_WARN("Failed to re-span the export trie in segment {}", name_);
}
}
if (chained_fixups_ != nullptr) {
- if (!update_span(chained_fixups_->content_, original_data_addr, original_data_end, where, size, data_)) {
- LIEF_WARN("Error while re-spanning the Dyld Chained fixups in segment {}", name_);
+ if (!update_span(chained_fixups_->content_, original_data_addr,
+ original_data_end, where, size, data_))
+ {
+ LIEF_WARN("Failed to re-span the Dyld Chained fixups in segment {}", name_);
}
}
if (exports_trie_ != nullptr) {
- if (!update_span(exports_trie_->content_, original_data_addr, original_data_end, where, size, data_)) {
- LIEF_WARN("Error while re-spanning the Dyld Exports Trie in segment {}", name_);
+ if (!update_span(exports_trie_->content_, original_data_addr,
+ original_data_end, where, size, data_))
+ {
+ LIEF_WARN("Failed to re-span the Dyld Exports Trie in segment {}", name_);
}
}
if (symtab_ != nullptr) {
- if (!update_span(symtab_->symbol_table_, original_data_addr, original_data_end, where, size, data_)) {
- LIEF_WARN("Error while re-spanning the LC_SYMTAB.n_list in segment {}", name_);
+ if (!update_span(symtab_->symbol_table_, original_data_addr, original_data_end,
+ where, size, data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_SYMTAB.n_list in segment {}", name_);
}
- if (!update_span(symtab_->string_table_, original_data_addr, original_data_end, where, size, data_)) {
- LIEF_WARN("Error while re-spanning the LC_SYMTAB.string_table in segment {}", name_);
+ if (!update_span(symtab_->string_table_, original_data_addr, original_data_end,
+ where, size, data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_SYMTAB.string_table in segment {}",
+ name_);
}
}
if (fstarts_ != nullptr) {
- if (!update_span(fstarts_->content_, original_data_addr, original_data_end, where, size, data_)) {
- LIEF_WARN("Error while re-spanning the LC_FUNCTION_STARTS in segment {}", name_);
+ if (!update_span(fstarts_->content_, original_data_addr, original_data_end,
+ where, size, data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_FUNCTION_STARTS in segment {}", name_);
}
}
if (data_code_ != nullptr) {
- if (!update_span(data_code_->content_, original_data_addr, original_data_end, where, size, data_)) {
- LIEF_WARN("Error while re-spanning the LC_DATA_IN_CODE in segment {}", name_);
+ if (!update_span(data_code_->content_, original_data_addr, original_data_end,
+ where, size, data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_DATA_IN_CODE in segment {}", name_);
}
}
if (seg_split_ != nullptr) {
- if (!update_span(seg_split_->content_, original_data_addr, original_data_end, where, size, data_)) {
- LIEF_WARN("Error while re-spanning the LC_SEGMENT_SPLIT_INFO in segment {}", name_);
+ if (!update_span(seg_split_->content_, original_data_addr, original_data_end,
+ where, size, data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_SEGMENT_SPLIT_INFO in segment {}",
+ name_);
}
}
if (two_lvl_hint_ != nullptr) {
- if (!update_span(two_lvl_hint_->content_, original_data_addr, original_data_end, where, size, data_)) {
- LIEF_WARN("Error while re-spanning the LC_TWOLEVEL_HINTS in segment {}", name_);
+ if (!update_span(two_lvl_hint_->content_, original_data_addr,
+ original_data_end, where, size, data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_TWOLEVEL_HINTS in segment {}", name_);
}
}
if (linker_opt_ != nullptr) {
- if (!update_span(linker_opt_->content_, original_data_addr, original_data_end, where, size, data_)) {
- LIEF_WARN("Error while re-spanning the LC_LINKER_OPTIMIZATION_HINT in segment {}", name_);
+ if (!update_span(linker_opt_->content_, original_data_addr, original_data_end,
+ where, size, data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_LINKER_OPTIMIZATION_HINT in segment {}",
+ name_);
}
}
if (code_sig_ != nullptr) {
- if (!update_span(code_sig_->content_, original_data_addr, original_data_end, where, size, data_)) {
- LIEF_WARN("Error while re-spanning the LC_CODE_SIGNATURE in segment {}", name_);
+ if (!update_span(code_sig_->content_, original_data_addr, original_data_end,
+ where, size, data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_CODE_SIGNATURE in segment {}", name_);
}
}
if (code_sig_dir_ != nullptr) {
- if (!update_span(code_sig_dir_->content_, original_data_addr, original_data_end, data_)) {
- LIEF_WARN("Error while re-spanning the LC_DYLIB_CODE_SIGN_DRS in segment {}", name_);
+ if (!update_span(code_sig_dir_->content_, original_data_addr,
+ original_data_end, data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_DYLIB_CODE_SIGN_DRS in segment {}",
+ name_);
}
}
if (atom_info_ != nullptr) {
- if (!update_span(atom_info_->content_, original_data_addr, original_data_end, data_)) {
- LIEF_WARN("Error while re-spanning the LC_ATOM_INFO in segment {}", name_);
+ if (!update_span(atom_info_->content_, original_data_addr, original_data_end,
+ data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_ATOM_INFO in segment {}", name_);
}
}
if (func_variants_ != nullptr) {
- if (!update_span(func_variants_->content_, original_data_addr, original_data_end, data_)) {
- LIEF_WARN("Error while re-spanning the LC_FUNCTION_VARIANTS in segment {}", name_);
+ if (!update_span(func_variants_->content_, original_data_addr,
+ original_data_end, data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_FUNCTION_VARIANTS in segment {}", name_);
}
}
if (func_variant_fixups_ != nullptr) {
- if (!update_span(func_variant_fixups_->content_, original_data_addr, original_data_end, data_)) {
- LIEF_WARN("Error while re-spanning the LC_FUNCTION_VARIANT_FIXUPS in segment {}", name_);
+ if (!update_span(func_variant_fixups_->content_, original_data_addr,
+ original_data_end, data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_FUNCTION_VARIANT_FIXUPS in segment {}",
+ name_);
}
}
-}
+ for (LazyLoadDylibInfo* lazy : lazy_load_dylibs_) {
+ if (!update_span(lazy->content_, original_data_addr, original_data_end, data_))
+ {
+ LIEF_WARN("Failed to re-span the LC_LAZY_LOAD_DYLIB_INFO in segment {}",
+ name_);
+ }
+ }
}
+
}
diff --git a/deps/LIEF/src/MachO/LinkerOptHint.cpp b/deps/LIEF/src/MachO/LinkerOptHint.cpp
index b7b9d17e4e4..6c91321df35 100644
--- a/deps/LIEF/src/MachO/LinkerOptHint.cpp
+++ b/deps/LIEF/src/MachO/LinkerOptHint.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,14 +19,13 @@
#include "LIEF/MachO/LinkerOptHint.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
LinkerOptHint::LinkerOptHint(const details::linkedit_data_command& cmd) :
LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
data_offset_{cmd.dataoff},
- data_size_{cmd.datasize}
-{}
+ data_size_{cmd.datasize} {}
void LinkerOptHint::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -34,11 +33,9 @@ void LinkerOptHint::accept(Visitor& visitor) const {
std::ostream& LinkerOptHint::print(std::ostream& os) const {
LoadCommand::print(os) << '\n';
- os << fmt::format("offset=0x{:06x}, size=0x{:06x}",
- data_offset(), data_size());
+ os << fmt::format("offset={:#08x}, size={:#08x}", data_offset(), data_size());
return os;
}
}
-}
diff --git a/deps/LIEF/src/MachO/LoadCommand.cpp b/deps/LIEF/src/MachO/LoadCommand.cpp
index 2ac85bb9cca..2de1ce3b0ca 100644
--- a/deps/LIEF/src/MachO/LoadCommand.cpp
+++ b/deps/LIEF/src/MachO/LoadCommand.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -33,18 +33,17 @@
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
LoadCommand::LoadCommand(const details::load_command& command) :
command_{static_cast<LoadCommand::TYPE>(command.cmd)},
- size_{command.cmdsize}
-{}
+ size_{command.cmdsize} {}
void LoadCommand::swap(LoadCommand& other) noexcept {
- std::swap(original_data_, other.original_data_);
- std::swap(command_, other.command_);
- std::swap(size_, other.size_);
+ std::swap(original_data_, other.original_data_);
+ std::swap(command_, other.command_);
+ std::swap(size_, other.size_);
std::swap(command_offset_, other.command_offset_);
}
@@ -53,92 +52,111 @@ void LoadCommand::accept(Visitor& visitor) const {
}
bool LoadCommand::is_linkedit_data(const LoadCommand& cmd) {
- if (DyldInfo::classof(&cmd)) return true;
- if (DyldExportsTrie::classof(&cmd)) return true;
- if (DyldChainedFixups::classof(&cmd)) return true;
- if (DynamicSymbolCommand::classof(&cmd)) return true;
- if (SegmentSplitInfo::classof(&cmd)) return true;
- if (FunctionStarts::classof(&cmd)) return true;
- if (DataInCode::classof(&cmd)) return true;
- if (SymbolCommand::classof(&cmd)) return true;
- if (CodeSignature::classof(&cmd)) return true;
+ if (DyldInfo::classof(&cmd)) {
+ return true;
+ }
+ if (DyldExportsTrie::classof(&cmd)) {
+ return true;
+ }
+ if (DyldChainedFixups::classof(&cmd)) {
+ return true;
+ }
+ if (DynamicSymbolCommand::classof(&cmd)) {
+ return true;
+ }
+ if (SegmentSplitInfo::classof(&cmd)) {
+ return true;
+ }
+ if (FunctionStarts::classof(&cmd)) {
+ return true;
+ }
+ if (DataInCode::classof(&cmd)) {
+ return true;
+ }
+ if (SymbolCommand::classof(&cmd)) {
+ return true;
+ }
+ if (CodeSignature::classof(&cmd)) {
+ return true;
+ }
return false;
}
std::ostream& LoadCommand::print(std::ostream& os) const {
os << fmt::format("Command: {}", to_string(command())) << '\n'
- << fmt::format("Offset: 0x{:x}", command_offset()) << '\n'
- << fmt::format("Size: 0x{:x}", size());
+ << fmt::format("Offset: {:#x}", command_offset()) << '\n'
+ << fmt::format("Size: {:#x}", size());
return os;
}
const char* to_string(LoadCommand::TYPE e) {
- #define ENTRY(X) std::pair(LoadCommand::TYPE::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNKNOWN),
- ENTRY(SEGMENT),
- ENTRY(SYMTAB),
- ENTRY(SYMSEG),
- ENTRY(THREAD),
- ENTRY(UNIXTHREAD),
- ENTRY(LOADFVMLIB),
- ENTRY(IDFVMLIB),
- ENTRY(IDENT),
- ENTRY(FVMFILE),
- ENTRY(PREPAGE),
- ENTRY(DYSYMTAB),
- ENTRY(LOAD_DYLIB),
- ENTRY(ID_DYLIB),
- ENTRY(LOAD_DYLINKER),
- ENTRY(ID_DYLINKER),
- ENTRY(PREBOUND_DYLIB),
- ENTRY(ROUTINES),
- ENTRY(SUB_FRAMEWORK),
- ENTRY(SUB_UMBRELLA),
- ENTRY(SUB_CLIENT),
- ENTRY(SUB_LIBRARY),
- ENTRY(TWOLEVEL_HINTS),
- ENTRY(PREBIND_CKSUM),
- ENTRY(LOAD_WEAK_DYLIB),
- ENTRY(SEGMENT_64),
- ENTRY(ROUTINES_64),
- ENTRY(UUID),
- ENTRY(RPATH),
- ENTRY(CODE_SIGNATURE),
- ENTRY(SEGMENT_SPLIT_INFO),
- ENTRY(REEXPORT_DYLIB),
- ENTRY(LAZY_LOAD_DYLIB),
- ENTRY(ENCRYPTION_INFO),
- ENTRY(DYLD_INFO),
- ENTRY(DYLD_INFO_ONLY),
- ENTRY(LOAD_UPWARD_DYLIB),
- ENTRY(VERSION_MIN_MACOSX),
- ENTRY(VERSION_MIN_IPHONEOS),
- ENTRY(FUNCTION_STARTS),
- ENTRY(DYLD_ENVIRONMENT),
- ENTRY(MAIN),
- ENTRY(DATA_IN_CODE),
- ENTRY(SOURCE_VERSION),
- ENTRY(DYLIB_CODE_SIGN_DRS),
- ENTRY(ENCRYPTION_INFO_64),
- ENTRY(LINKER_OPTION),
- ENTRY(LINKER_OPTIMIZATION_HINT),
- ENTRY(VERSION_MIN_TVOS),
- ENTRY(VERSION_MIN_WATCHOS),
- ENTRY(NOTE),
- ENTRY(BUILD_VERSION),
- ENTRY(DYLD_EXPORTS_TRIE),
- ENTRY(DYLD_CHAINED_FIXUPS),
- ENTRY(FILESET_ENTRY),
- ENTRY(ATOM_INFO),
- ENTRY(FUNCTION_VARIANTS),
- ENTRY(FUNCTION_VARIANT_FIXUPS),
- ENTRY(TARGET_TRIPLE),
- ENTRY(LIEF_UNKNOWN),
+#define ENTRY(X) std::pair(LoadCommand::TYPE::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(UNKNOWN),
+ ENTRY(SEGMENT),
+ ENTRY(SYMTAB),
+ ENTRY(SYMSEG),
+ ENTRY(THREAD),
+ ENTRY(UNIXTHREAD),
+ ENTRY(LOADFVMLIB),
+ ENTRY(IDFVMLIB),
+ ENTRY(IDENT),
+ ENTRY(FVMFILE),
+ ENTRY(PREPAGE),
+ ENTRY(DYSYMTAB),
+ ENTRY(LOAD_DYLIB),
+ ENTRY(ID_DYLIB),
+ ENTRY(LOAD_DYLINKER),
+ ENTRY(ID_DYLINKER),
+ ENTRY(PREBOUND_DYLIB),
+ ENTRY(ROUTINES),
+ ENTRY(SUB_FRAMEWORK),
+ ENTRY(SUB_UMBRELLA),
+ ENTRY(SUB_CLIENT),
+ ENTRY(SUB_LIBRARY),
+ ENTRY(TWOLEVEL_HINTS),
+ ENTRY(PREBIND_CKSUM),
+ ENTRY(LOAD_WEAK_DYLIB),
+ ENTRY(SEGMENT_64),
+ ENTRY(ROUTINES_64),
+ ENTRY(UUID),
+ ENTRY(RPATH),
+ ENTRY(CODE_SIGNATURE),
+ ENTRY(SEGMENT_SPLIT_INFO),
+ ENTRY(REEXPORT_DYLIB),
+ ENTRY(LAZY_LOAD_DYLIB),
+ ENTRY(ENCRYPTION_INFO),
+ ENTRY(DYLD_INFO),
+ ENTRY(DYLD_INFO_ONLY),
+ ENTRY(LOAD_UPWARD_DYLIB),
+ ENTRY(VERSION_MIN_MACOSX),
+ ENTRY(VERSION_MIN_IPHONEOS),
+ ENTRY(FUNCTION_STARTS),
+ ENTRY(DYLD_ENVIRONMENT),
+ ENTRY(MAIN),
+ ENTRY(DATA_IN_CODE),
+ ENTRY(SOURCE_VERSION),
+ ENTRY(DYLIB_CODE_SIGN_DRS),
+ ENTRY(ENCRYPTION_INFO_64),
+ ENTRY(LINKER_OPTION),
+ ENTRY(LINKER_OPTIMIZATION_HINT),
+ ENTRY(VERSION_MIN_TVOS),
+ ENTRY(VERSION_MIN_WATCHOS),
+ ENTRY(NOTE),
+ ENTRY(BUILD_VERSION),
+ ENTRY(DYLD_EXPORTS_TRIE),
+ ENTRY(DYLD_CHAINED_FIXUPS),
+ ENTRY(FILESET_ENTRY),
+ ENTRY(ATOM_INFO),
+ ENTRY(FUNCTION_VARIANTS),
+ ENTRY(FUNCTION_VARIANT_FIXUPS),
+ ENTRY(TARGET_TRIPLE),
+ ENTRY(LAZY_LOAD_DYLIB_INFO),
+ ENTRY(LIEF_UNKNOWN),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -147,4 +165,3 @@ const char* to_string(LoadCommand::TYPE e) {
}
}
-}
diff --git a/deps/LIEF/src/MachO/MainCommand.cpp b/deps/LIEF/src/MachO/MainCommand.cpp
index 80b3be8f26d..e8a39b58356 100644
--- a/deps/LIEF/src/MachO/MainCommand.cpp
+++ b/deps/LIEF/src/MachO/MainCommand.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,20 +19,19 @@
#include "LIEF/MachO/MainCommand.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
MainCommand::MainCommand(const details::entry_point_command& cmd) :
LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
entrypoint_{cmd.entryoff},
- stack_size_{cmd.stacksize}
-{}
+ stack_size_{cmd.stacksize} {}
MainCommand::MainCommand(uint64_t entrypoint, uint64_t stacksize) :
- LoadCommand::LoadCommand{LoadCommand::TYPE::MAIN, sizeof(details::entry_point_command)},
+ LoadCommand::LoadCommand{LoadCommand::TYPE::MAIN,
+ sizeof(details::entry_point_command)},
entrypoint_{entrypoint},
- stack_size_{stacksize}
-{
+ stack_size_{stacksize} {
this->data(LoadCommand::raw_t(size(), 0));
}
@@ -42,10 +41,9 @@ void MainCommand::accept(Visitor& visitor) const {
std::ostream& MainCommand::print(std::ostream& os) const {
LoadCommand::print(os) << '\n';
- os << fmt::format("entrypoint=0x{:x}, stack size=0x{:x}",
- entrypoint(), stack_size());
+ os << fmt::format("entrypoint={:#x}, stack size={:#x}", entrypoint(),
+ stack_size());
return os;
}
}
-}
diff --git a/deps/LIEF/src/MachO/NoteCommand.cpp b/deps/LIEF/src/MachO/NoteCommand.cpp
index 0df06c43c99..599b3b070ee 100644
--- a/deps/LIEF/src/MachO/NoteCommand.cpp
+++ b/deps/LIEF/src/MachO/NoteCommand.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,13 +19,14 @@
#include "LIEF/MachO/NoteCommand.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
NoteCommand::NoteCommand(const details::note_command& cmd) :
LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
- owner_(), note_offset_(cmd.offset), note_size_(cmd.size)
-{
+ owner_(),
+ note_offset_(cmd.offset),
+ note_size_(cmd.size) {
static_assert(sizeof(owner_) == sizeof(cmd.data_owner));
std::copy(std::begin(cmd.data_owner), std::end(cmd.data_owner),
std::begin(owner_));
@@ -37,10 +38,9 @@ void NoteCommand::accept(Visitor& visitor) const {
std::ostream& NoteCommand::print(std::ostream& os) const {
LoadCommand::print(os) << '\n';
- os << fmt::format("owner={} offset=0x{:x}, size=0x{:x}",
- owner_str(), note_offset(), note_size());
+ os << fmt::format("owner={} offset={:#x}, size={:#x}", owner_str(),
+ note_offset(), note_size());
return os;
}
}
-}
diff --git a/deps/LIEF/src/MachO/Parser.cpp b/deps/LIEF/src/MachO/Parser.cpp
index 5fb39be0a6f..600a6e7e24e 100644
--- a/deps/LIEF/src/MachO/Parser.cpp
+++ b/deps/LIEF/src/MachO/Parser.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,9 +17,9 @@
#include "logging.hpp"
-
#include "LIEF/BinaryStream/VectorStream.hpp"
#include "LIEF/BinaryStream/MemoryStream.hpp"
+#include "LIEF/BinaryStream/DumpStream.hpp"
#include "LIEF/MachO/FatBinary.hpp"
#include "LIEF/MachO/Binary.hpp"
@@ -31,10 +31,13 @@
#include "LIEF/MachO/Relocation.hpp"
#include "LIEF/MachO/RelocationFixup.hpp"
#include "LIEF/MachO/RelocationDyld.hpp"
+#include "LIEF/MachO/Section.hpp"
+#include "LIEF/MachO/SegmentCommand.hpp"
+#include "LIEF/MachO/ThreadLocalVariables.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
Parser::Parser() = default;
Parser::~Parser() = default;
@@ -42,11 +45,10 @@ Parser::~Parser() = default;
// From File
Parser::Parser(const std::string& file, const ParserConfig& conf) :
LIEF::Parser{file},
- config_{conf}
-{
+ config_{conf} {
auto stream = VectorStream::from_file(file);
if (!stream) {
- LIEF_ERR("Can't create the stream");
+ LIEF_ERR("Failed to create stream");
} else {
stream_ = std::make_unique<VectorStream>(std::move(*stream));
}
@@ -61,26 +63,25 @@ std::unique_ptr<FatBinary> Parser::parse(const std::string& filename,
}
Parser parser{filename, conf};
- parser.build();
+ parser.parse();
return std::unique_ptr<FatBinary>(new FatBinary{std::move(parser.binaries_)});
}
// From Vector
Parser::Parser(std::vector<uint8_t> data, const ParserConfig& conf) :
stream_{std::make_unique<VectorStream>(std::move(data))},
- config_{conf}
-{}
+ config_{conf} {}
std::unique_ptr<FatBinary> Parser::parse(const std::vector<uint8_t>& data,
const ParserConfig& conf) {
if (!is_macho(data)) {
- LIEF_ERR("The provided data seem not being related to a MachO binary");
+ LIEF_ERR("Provided data does not appear to be a Mach-O binary");
return nullptr;
}
Parser parser{data, conf};
- parser.build();
+ parser.parse();
return std::unique_ptr<FatBinary>(new FatBinary{std::move(parser.binaries_)});
}
@@ -101,23 +102,29 @@ std::unique_ptr<FatBinary> Parser::parse(std::unique_ptr<BinaryStream> stream,
parser.config_ = conf;
parser.stream_ = std::move(stream);
- if (!parser.build()) {
+ if (!parser.parse()) {
return nullptr;
}
return std::unique_ptr<FatBinary>(new FatBinary{std::move(parser.binaries_)});
}
-std::unique_ptr<FatBinary> Parser::parse_from_memory(uintptr_t address, size_t size, const ParserConfig& conf) {
- if (conf.fix_from_memory && (!conf.parse_dyld_rebases || !conf.parse_dyld_rebases)) {
- LIEF_WARN("fix_from_memory requires both: parse_dyld_rebases and parse_dyld_rebases");
+std::unique_ptr<FatBinary> Parser::parse_from_memory(uintptr_t address,
+ size_t size,
+ const ParserConfig& conf) {
+ if (conf.fix_from_memory &&
+ (!conf.parse_dyld_rebases || !conf.parse_dyld_bindings))
+ {
+ LIEF_WARN(
+ "fix_from_memory requires both parse_dyld_rebases and parse_dyld_bindings"
+ );
return nullptr;
}
Parser parser;
parser.stream_ = std::make_unique<MemoryStream>(address, size);
parser.config_ = conf;
- if (!parser.build()) {
- LIEF_WARN("Errors when parsing the Mach-O at the address 0x{:x} (size: 0{:x})", address, size);
+ if (!parser.parse()) {
+ LIEF_WARN("Parsing errors at address {:#x} (size: {:#x})", address, size);
}
if (parser.binaries_.empty()) {
return nullptr;
@@ -129,21 +136,50 @@ std::unique_ptr<FatBinary> Parser::parse_from_memory(uintptr_t address, size_t s
if (parser.config_.fix_from_memory) {
parser.undo_reloc_bindings(address);
+ parser.unpack_tlv();
}
return std::unique_ptr<FatBinary>(new FatBinary{std::move(parser.binaries_)});
}
-std::unique_ptr<FatBinary> Parser::parse_from_memory(uintptr_t address, const ParserConfig& conf) {
- static constexpr size_t MAX_SIZE = std::numeric_limits<size_t>::max() << 2;
+std::unique_ptr<FatBinary> Parser::parse_from_memory(uintptr_t address,
+ const ParserConfig& conf) {
+ static constexpr size_t MAX_SIZE = std::numeric_limits<size_t>::max() >> 2;
return parse_from_memory(address, MAX_SIZE, conf);
}
-ok_error_t Parser::build_fat() {
+
+std::unique_ptr<FatBinary> Parser::parse_from_dump(const std::string& filepath,
+ uint64_t addr,
+ const ParserConfig& conf) {
+ auto stream = VectorStream::from_file(filepath);
+ if (!stream) {
+ return nullptr;
+ }
+ return parse_from_dump(std::make_unique<VectorStream>(std::move(*stream)), addr,
+ conf);
+}
+
+std::unique_ptr<FatBinary> Parser::parse_from_dump(BinaryStream& stream,
+ uint64_t addr,
+ const ParserConfig& conf) {
+ return parse(std::make_unique<DumpStream>(addr, stream), conf);
+}
+
+std::unique_ptr<FatBinary>
+ Parser::parse_from_dump(std::unique_ptr<BinaryStream> stream, uint64_t addr,
+ const ParserConfig& conf) {
+ if (stream == nullptr) {
+ return nullptr;
+ }
+ return parse(std::make_unique<DumpStream>(addr, std::move(stream)), conf);
+}
+
+ok_error_t Parser::parse_fat() {
static constexpr size_t MAX_FAT_ARCH = 30;
stream_->setpos(0);
const auto header = stream_->read<details::fat_header>();
if (!header) {
- LIEF_ERR("Can't read the FAT header");
+ LIEF_ERR("Failed to read FAT header");
return make_error_code(lief_errors::read_error);
}
uint32_t nb_arch = Swap4Bytes(header->nfat_arch);
@@ -157,29 +193,27 @@ ok_error_t Parser::build_fat() {
for (size_t i = 0; i < nb_arch; ++i) {
auto res_arch = stream_->read<details::fat_arch>();
if (!res_arch) {
- LIEF_ERR("Can't read arch #{}", i);
+ LIEF_ERR("Failed to read arch #{}", i);
break;
}
const auto arch = *res_arch;
const uint32_t offset = get_swapped_endian(arch.offset);
- const uint32_t size = get_swapped_endian(arch.size);
+ const uint32_t size = get_swapped_endian(arch.size);
LIEF_DEBUG("Dealing with arch[{:d}]", i);
- LIEF_DEBUG(" [{:d}].offset: 0x{:06x}", i, offset);
- LIEF_DEBUG(" [{:d}].size : 0x{:06x}", i, size);
+ LIEF_DEBUG(" [{:d}].offset: {:#06x}", i, offset);
+ LIEF_DEBUG(" [{:d}].size : {:#06x}", i, size);
std::vector<uint8_t> macho_data;
if (!stream_->peek_data(macho_data, offset, size)) {
- LIEF_ERR("MachO #{:d} is corrupted!", i);
+ LIEF_ERR("Mach-O #{:d} is corrupted", i);
continue;
}
- std::unique_ptr<Binary> bin = BinaryParser::parse(
- std::move(macho_data), offset, config_
- );
+ std::unique_ptr<Binary> bin = BinaryParser::parse(macho_data, offset, config_);
if (bin == nullptr) {
- LIEF_ERR("Can't parse the binary at the index #{:d}", i);
+ LIEF_ERR("Failed to parse binary at index {:d}", i);
continue;
}
binaries_.push_back(std::move(bin));
@@ -187,7 +221,7 @@ ok_error_t Parser::build_fat() {
return ok();
}
-ok_error_t Parser::build() {
+ok_error_t Parser::parse() {
auto res_type = stream_->peek<uint32_t>();
if (!res_type) {
return make_error_code(lief_errors::parsing_error);
@@ -196,17 +230,71 @@ ok_error_t Parser::build() {
// Fat binary
if (type == MACHO_TYPES::MAGIC_FAT || type == MACHO_TYPES::CIGAM_FAT) {
- if (!build_fat()) {
- LIEF_WARN("Errors while parsing the Fat MachO");
+ if (!parse_fat()) {
+ LIEF_WARN("Errors while parsing Fat Mach-O");
}
- } else { // fit binary
- const size_t original_size = stream_->size();
- std::unique_ptr<Binary> bin = BinaryParser::parse(std::move(stream_), 0, config_);
- bin->original_size_ = original_size;
- if (bin == nullptr) {
- return make_error_code(lief_errors::parsing_error);
+ return ok();
+ }
+
+ const size_t original_size = stream_->size();
+ std::unique_ptr<Binary> bin =
+ BinaryParser::parse(std::move(stream_), 0, config_);
+ if (bin == nullptr) {
+ return make_error_code(lief_errors::parsing_error);
+ }
+
+ bin->original_size_ = original_size;
+ binaries_.push_back(std::move(bin));
+
+ return ok();
+}
+
+ok_error_t Parser::unpack_tlv() {
+ using Thunk = ThreadLocalVariables::Thunk;
+ // Since dyld-1285.19 the TLV thunk are packed at runtime:
+ //
+ // On-Disk: | In Memory
+ // { | {
+ // uintptr_t func; | uintptr_t func;
+ // size_t key; | uint32_t key;
+ // | uint32_t offset;
+ // size_t offset; | int32_t initialContentDelta;
+ // | uint32_t initialContentSize;
+ // } | }
+ //
+ // The heuristic to detect whether thunks are packed or not is to compare
+ // the `initialContentSize` with Binary::tlv_initial_content_range
+ if (!config_.fix_from_memory) {
+ return ok();
+ }
+
+ for (std::unique_ptr<Binary>& bin : binaries_) {
+ if (!bin->header().is_64bit()) {
+ continue;
+ }
+ const Binary::range_t& initial_content = bin->tlv_initial_content_range();
+ for (Section& S : bin->sections()) {
+ auto* tlv_sec = S.cast<ThreadLocalVariables>();
+ if (tlv_sec == nullptr) {
+ continue;
+ }
+
+ auto thunks = tlv_sec->thunks();
+
+ for (auto i = 0; i < thunks.size(); ++i) {
+ Thunk T = thunks[i];
+ const auto initialContentSize = (uint32_t)(T.offset >> 32);
+ if (!initial_content.empty() &&
+ initial_content.size() == initialContentSize)
+ {
+ LIEF_DEBUG("fixing thunk #{}. offset: {:#06x} -> {:#06x}", i, T.offset,
+ T.key >> 32);
+ T.offset = T.key >> 32;
+ T.key = 0;
+ tlv_sec->set(i, T);
+ }
+ }
}
- binaries_.push_back(std::move(bin));
}
return ok();
@@ -218,19 +306,22 @@ ok_error_t Parser::undo_reloc_bindings(uintptr_t base_address) {
}
for (std::unique_ptr<Binary>& bin : binaries_) {
for (Relocation& reloc : bin->relocations()) {
- if (RelocationFixup::classof(reloc)) {
- /* TODO(romain): We should support fixup
- * auto& fixup = static_cast<RelocationFixup&>(reloc);
- */
- }
- else if (RelocationDyld::classof(reloc)) {
- span<const uint8_t> content = bin->get_content_from_virtual_address(reloc.address(), sizeof(uintptr_t));
+ if ([[maybe_unused]] const auto* fixup = reloc.cast<RelocationFixup>()) {
+ // TODO(romain): add support for this fixup
+ } else if ([[maybe_unused]] const auto* dyld_reloc =
+ reloc.cast<RelocationDyld>())
+ {
+ span<const uint8_t> content =
+ bin->get_content_from_virtual_address(reloc.address(),
+ sizeof(uintptr_t));
if (content.empty() || content.size() != sizeof(uintptr_t)) {
- LIEF_WARN("Can't access relocation data @0x{:x}", reloc.address());
+ LIEF_WARN("Failed to access relocation data at {:#x}", reloc.address());
continue;
}
const auto value = *reinterpret_cast<const uintptr_t*>(content.data());
- bin->patch_address(reloc.address(), value - base_address + bin->imagebase(), sizeof(uintptr_t));
+ bin->patch_address(reloc.address(),
+ value - base_address + bin->imagebase(),
+ sizeof(uintptr_t));
}
}
if (const DyldInfo* info = bin->dyld_info()) {
@@ -244,5 +335,4 @@ ok_error_t Parser::undo_reloc_bindings(uintptr_t base_address) {
return ok();
}
-} //namespace MachO
-}
+} // namespace LIEF::MachO
diff --git a/deps/LIEF/src/MachO/ParserConfig.cpp b/deps/LIEF/src/MachO/ParserConfig.cpp
index 4c73659e06d..7887b583e7f 100644
--- a/deps/LIEF/src/MachO/ParserConfig.cpp
+++ b/deps/LIEF/src/MachO/ParserConfig.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,41 +15,40 @@
*/
#include "LIEF/MachO/ParserConfig.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
ParserConfig ParserConfig::deep() {
ParserConfig conf;
- conf.parse_dyld_exports = true;
+ conf.parse_dyld_exports = true;
conf.parse_dyld_bindings = true;
- conf.parse_dyld_rebases = true;
- conf.fix_from_memory = true;
+ conf.parse_dyld_rebases = true;
+ conf.fix_from_memory = true;
return conf;
}
ParserConfig ParserConfig::quick() {
ParserConfig conf;
- conf.parse_dyld_exports = false;
+ conf.parse_dyld_exports = false;
conf.parse_dyld_bindings = false;
- conf.parse_dyld_rebases = false;
- conf.fix_from_memory = false;
+ conf.parse_dyld_rebases = false;
+ conf.fix_from_memory = false;
return conf;
}
ParserConfig& ParserConfig::full_dyldinfo(bool flag) {
if (flag) {
- parse_dyld_exports = true;
+ parse_dyld_exports = true;
parse_dyld_bindings = true;
- parse_dyld_rebases = true;
+ parse_dyld_rebases = true;
} else {
- parse_dyld_exports = false;
+ parse_dyld_exports = false;
parse_dyld_bindings = false;
- parse_dyld_rebases = false;
+ parse_dyld_rebases = false;
}
return *this;
}
-} //namespace MachO
-}
+} // namespace LIEF::MachO
diff --git a/deps/LIEF/src/MachO/RPathCommand.cpp b/deps/LIEF/src/MachO/RPathCommand.cpp
index bad780cc674..ca7200942e1 100644
--- a/deps/LIEF/src/MachO/RPathCommand.cpp
+++ b/deps/LIEF/src/MachO/RPathCommand.cpp
@@ -1,5 +1,5 @@
/* Copyright 2017 - 2021 J.Rieck (based on R. Thomas's work)
- * Copyright 2017 - 2025 Quarkslab
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,21 +19,20 @@
#include "LIEF/MachO/RPathCommand.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
RPathCommand::RPathCommand(std::string path) :
LoadCommand::LoadCommand(LoadCommand::TYPE::RPATH, 0),
- path_(std::move(path))
-{
- size_ = align(sizeof(details::rpath_command) + path_.size() + 1, sizeof(uint64_t));
+ path_(std::move(path)) {
+ size_ =
+ align(sizeof(details::rpath_command) + path_.size() + 1, sizeof(uint64_t));
original_data_.resize(size_);
}
RPathCommand::RPathCommand(const details::rpath_command& rpath) :
LoadCommand::LoadCommand{LoadCommand::TYPE(rpath.cmd), rpath.cmdsize},
- path_offset_(rpath.path)
-{}
+ path_offset_(rpath.path) {}
void RPathCommand::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -47,4 +46,3 @@ std::ostream& RPathCommand::print(std::ostream& os) const {
}
-}
diff --git a/deps/LIEF/src/MachO/Relocation.cpp b/deps/LIEF/src/MachO/Relocation.cpp
index 3b676c137ae..182ac8c6fcd 100644
--- a/deps/LIEF/src/MachO/Relocation.cpp
+++ b/deps/LIEF/src/MachO/Relocation.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,26 +23,25 @@
#include "LIEF/MachO/EnumToString.hpp"
#include "frozen.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
Relocation::Relocation(const Relocation& other) :
LIEF::Relocation{other},
type_{other.type_},
- architecture_{other.architecture_}
-{}
+ architecture_{other.architecture_} {}
-Relocation::Relocation(uint64_t address, uint8_t type) {
+Relocation::Relocation(uint64_t address, uint8_t type) :
+ type_(type) {
address_ = address;
- type_ = type;
}
Relocation& Relocation::operator=(const Relocation& other) {
if (&other != this) {
- /* Do not copy pointer as they could be not bind to the same Binary */
- address_ = other.address_;
- size_ = other.size_;
- type_ = other.type_;
+ /* Do not copy pointers as they could be bound to a different Binary */
+ address_ = other.address_;
+ size_ = other.size_;
+ type_ = other.type_;
architecture_ = other.architecture_;
}
return *this;
@@ -50,11 +49,11 @@ Relocation& Relocation::operator=(const Relocation& other) {
void Relocation::swap(Relocation& other) noexcept {
LIEF::Relocation::swap(other);
- std::swap(symbol_, other.symbol_);
- std::swap(type_, other.type_);
+ std::swap(symbol_, other.symbol_);
+ std::swap(type_, other.type_);
std::swap(architecture_, other.architecture_);
- std::swap(section_, other.section_);
- std::swap(segment_, other.segment_);
+ std::swap(section_, other.section_);
+ std::swap(segment_, other.segment_);
}
void Relocation::type(uint8_t type) {
@@ -84,11 +83,9 @@ std::ostream& Relocation::print(std::ostream& os) const {
std::string segment_section_name;
if (!section_name.empty() && !segment_name.empty()) {
segment_section_name = segment_name + '.' + section_name;
- }
- else if (!segment_name.empty()) {
+ } else if (!segment_name.empty()) {
segment_section_name = segment_name;
- }
- else if (!section_name.empty()) {
+ } else if (!section_name.empty()) {
segment_section_name = section_name;
}
@@ -115,8 +112,7 @@ std::ostream& Relocation::print(std::ostream& os) const {
relocation_type = to_string(PPC_RELOCATION(type()));
break;
- default:
- relocation_type = std::to_string(type());
+ default: relocation_type = std::to_string(type());
}
}
@@ -124,12 +120,10 @@ std::ostream& Relocation::print(std::ostream& os) const {
relocation_type = to_string(DyldInfo::REBASE_TYPE(type()));
}
- os << fmt::format(
- "address=0x{:x}, type={}, size={}, origin={} ",
- address(), relocation_type, size(), to_string(origin())
- );
+ os << fmt::format("address={:#x}, type={}, size={}, origin={} ", address(),
+ relocation_type, size(), to_string(origin()));
if (!segment_section_name.empty()) {
- os << segment_section_name;
+ os << segment_section_name;
} else {
if (!section_name.empty()) {
os << section_name;
@@ -148,14 +142,14 @@ std::ostream& operator<<(std::ostream& os, const Relocation& reloc) {
return reloc.print(os);
}
const char* to_string(Relocation::ORIGIN e) {
- #define ENTRY(X) std::pair(Relocation::ORIGIN::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNKNOWN),
- ENTRY(DYLDINFO),
- ENTRY(RELOC_TABLE),
- ENTRY(CHAINED_FIXUPS),
+#define ENTRY(X) std::pair(Relocation::ORIGIN::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(UNKNOWN),
+ ENTRY(DYLDINFO),
+ ENTRY(RELOC_TABLE),
+ ENTRY(CHAINED_FIXUPS),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -164,4 +158,3 @@ const char* to_string(Relocation::ORIGIN e) {
}
}
-}
diff --git a/deps/LIEF/src/MachO/RelocationDyld.cpp b/deps/LIEF/src/MachO/RelocationDyld.cpp
index 241538a3d04..96d618ad7cb 100644
--- a/deps/LIEF/src/MachO/RelocationDyld.cpp
+++ b/deps/LIEF/src/MachO/RelocationDyld.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,8 @@
#include "LIEF/MachO/RelocationDyld.hpp"
#include "LIEF/MachO/DyldInfo.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
bool RelocationDyld::is_pc_relative() const {
return DyldInfo::REBASE_TYPE(type()) == DyldInfo::REBASE_TYPE::TEXT_PCREL32;
@@ -60,4 +60,3 @@ bool RelocationDyld::operator>(const RelocationDyld& rhs) const {
}
}
-}
diff --git a/deps/LIEF/src/MachO/RelocationFixup.cpp b/deps/LIEF/src/MachO/RelocationFixup.cpp
index 8eb0f2be5f4..2fd776c7223 100644
--- a/deps/LIEF/src/MachO/RelocationFixup.cpp
+++ b/deps/LIEF/src/MachO/RelocationFixup.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,55 +21,79 @@
#include "LIEF/MachO/RelocationFixup.hpp"
#include "MachO/ChainedFixup.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
inline uint64_t unpack_target(const details::dyld_chained_ptr_64_rebase& rebase) {
- details::dyld_chained_ptr_generic64 value;
+ details::dyld_chained_ptr_generic64 value{};
value.rebase = rebase;
return value.unpack_target();
}
-inline uint64_t unpack_target(const details::dyld_chained_ptr_arm64e_rebase& rebase) {
- details::dyld_chained_ptr_arm64e value;
+inline uint64_t
+ unpack_target(const details::dyld_chained_ptr_arm64e_rebase& rebase) {
+ details::dyld_chained_ptr_arm64e value{};
value.rebase = rebase;
return value.unpack_target();
}
RelocationFixup::~RelocationFixup() {
switch (rtypes_) {
- case REBASE_TYPES::ARM64E_REBASE: delete arm64_rebase_; break;
- case REBASE_TYPES::ARM64E_AUTH_REBASE: delete arm64_auth_rebase_; break;
- case REBASE_TYPES::PTR64_REBASE: delete p64_rebase_; break;
- case REBASE_TYPES::PTR32_REBASE: delete p32_rebase_; break;
- case REBASE_TYPES::SEGMENTED: delete segmented_rebase_; break;
- case REBASE_TYPES::AUTH_SEGMENTED: delete auth_segmented_rebase_; break;
- case REBASE_TYPES::UNKNOWN: {}
+ case REBASE_TYPES::ARM64E_REBASE: delete arm64_rebase_; break;
+ case REBASE_TYPES::ARM64E_AUTH_REBASE: delete arm64_auth_rebase_; break;
+ case REBASE_TYPES::PTR64_REBASE: delete p64_rebase_; break;
+ case REBASE_TYPES::PTR32_REBASE: delete p32_rebase_; break;
+ case REBASE_TYPES::SEGMENTED: delete segmented_rebase_; break;
+ case REBASE_TYPES::AUTH_SEGMENTED: delete auth_segmented_rebase_; break;
+ case REBASE_TYPES::UNKNOWN:
+ {
+ }
}
}
RelocationFixup::RelocationFixup(DYLD_CHAINED_PTR_FORMAT fmt, uint64_t imagebase) :
ptr_fmt_{fmt},
- imagebase_{imagebase}
-{}
+ imagebase_{imagebase} {}
RelocationFixup& RelocationFixup::operator=(const RelocationFixup& other) {
if (this == &other) {
return *this;
}
- ptr_fmt_ = other.ptr_fmt_;
+ ptr_fmt_ = other.ptr_fmt_;
imagebase_ = other.imagebase_;
- offset_ = other.offset_;
- rtypes_ = other.rtypes_;
+ offset_ = other.offset_;
+ rtypes_ = other.rtypes_;
switch (rtypes_) {
- case REBASE_TYPES::ARM64E_REBASE: arm64_rebase_ = new details::dyld_chained_ptr_arm64e_rebase{*other.arm64_rebase_}; break;
- case REBASE_TYPES::ARM64E_AUTH_REBASE: arm64_auth_rebase_ = new details::dyld_chained_ptr_arm64e_auth_rebase{*other.arm64_auth_rebase_}; break;
- case REBASE_TYPES::PTR64_REBASE: p64_rebase_ = new details::dyld_chained_ptr_64_rebase{*other.p64_rebase_}; break;
- case REBASE_TYPES::PTR32_REBASE: p32_rebase_ = new details::dyld_chained_ptr_32_rebase{*other.p32_rebase_}; break;
- case REBASE_TYPES::SEGMENTED: segmented_rebase_ = new details::dyld_chained_ptr_arm64e_segmented_rebase{*other.segmented_rebase_}; break;
- case REBASE_TYPES::AUTH_SEGMENTED: auth_segmented_rebase_ = new details::dyld_chained_ptr_arm64e_auth_segmented_rebase{*other.auth_segmented_rebase_}; break;
- case REBASE_TYPES::UNKNOWN: {}
+ case REBASE_TYPES::ARM64E_REBASE:
+ arm64_rebase_ =
+ new details::dyld_chained_ptr_arm64e_rebase{*other.arm64_rebase_};
+ break;
+ case REBASE_TYPES::ARM64E_AUTH_REBASE:
+ arm64_auth_rebase_ = new details::dyld_chained_ptr_arm64e_auth_rebase{
+ *other.arm64_auth_rebase_
+ };
+ break;
+ case REBASE_TYPES::PTR64_REBASE:
+ p64_rebase_ = new details::dyld_chained_ptr_64_rebase{*other.p64_rebase_};
+ break;
+ case REBASE_TYPES::PTR32_REBASE:
+ p32_rebase_ = new details::dyld_chained_ptr_32_rebase{*other.p32_rebase_};
+ break;
+ case REBASE_TYPES::SEGMENTED:
+ segmented_rebase_ = new details::dyld_chained_ptr_arm64e_segmented_rebase{
+ *other.segmented_rebase_
+ };
+ break;
+ case REBASE_TYPES::AUTH_SEGMENTED:
+ auth_segmented_rebase_ =
+ new details::dyld_chained_ptr_arm64e_auth_segmented_rebase{
+ *other.auth_segmented_rebase_
+ };
+ break;
+ case REBASE_TYPES::UNKNOWN:
+ {
+ }
}
return *this;
}
@@ -79,16 +103,37 @@ RelocationFixup::RelocationFixup(const RelocationFixup& other) :
ptr_fmt_{other.ptr_fmt_},
imagebase_{other.imagebase_},
offset_{other.offset_},
- rtypes_{other.rtypes_}
-{
+ rtypes_{other.rtypes_} {
switch (rtypes_) {
- case REBASE_TYPES::ARM64E_REBASE: arm64_rebase_ = new details::dyld_chained_ptr_arm64e_rebase{*other.arm64_rebase_}; break;
- case REBASE_TYPES::ARM64E_AUTH_REBASE: arm64_auth_rebase_ = new details::dyld_chained_ptr_arm64e_auth_rebase{*other.arm64_auth_rebase_}; break;
- case REBASE_TYPES::PTR64_REBASE: p64_rebase_ = new details::dyld_chained_ptr_64_rebase{*other.p64_rebase_}; break;
- case REBASE_TYPES::PTR32_REBASE: p32_rebase_ = new details::dyld_chained_ptr_32_rebase{*other.p32_rebase_}; break;
- case REBASE_TYPES::SEGMENTED: segmented_rebase_ = new details::dyld_chained_ptr_arm64e_segmented_rebase{*other.segmented_rebase_}; break;
- case REBASE_TYPES::AUTH_SEGMENTED: auth_segmented_rebase_ = new details::dyld_chained_ptr_arm64e_auth_segmented_rebase{*other.auth_segmented_rebase_}; break;
- case REBASE_TYPES::UNKNOWN: {}
+ case REBASE_TYPES::ARM64E_REBASE:
+ arm64_rebase_ =
+ new details::dyld_chained_ptr_arm64e_rebase{*other.arm64_rebase_};
+ break;
+ case REBASE_TYPES::ARM64E_AUTH_REBASE:
+ arm64_auth_rebase_ = new details::dyld_chained_ptr_arm64e_auth_rebase{
+ *other.arm64_auth_rebase_
+ };
+ break;
+ case REBASE_TYPES::PTR64_REBASE:
+ p64_rebase_ = new details::dyld_chained_ptr_64_rebase{*other.p64_rebase_};
+ break;
+ case REBASE_TYPES::PTR32_REBASE:
+ p32_rebase_ = new details::dyld_chained_ptr_32_rebase{*other.p32_rebase_};
+ break;
+ case REBASE_TYPES::SEGMENTED:
+ segmented_rebase_ = new details::dyld_chained_ptr_arm64e_segmented_rebase{
+ *other.segmented_rebase_
+ };
+ break;
+ case REBASE_TYPES::AUTH_SEGMENTED:
+ auth_segmented_rebase_ =
+ new details::dyld_chained_ptr_arm64e_auth_segmented_rebase{
+ *other.auth_segmented_rebase_
+ };
+ break;
+ case REBASE_TYPES::UNKNOWN:
+ {
+ }
}
}
@@ -99,7 +144,7 @@ void RelocationFixup::accept(Visitor& visitor) const {
std::ostream& RelocationFixup::print(std::ostream& os) const {
- os << fmt::format("0x{:08x}: 0x{:08x}", address(), target());
+ os << fmt::format("{:#010x}: {:#010x}", address(), target());
if (const Symbol* sym = symbol()) {
os << fmt::format("({})", sym->name());
}
@@ -111,43 +156,43 @@ std::ostream& RelocationFixup::print(std::ostream& os) const {
uint64_t RelocationFixup::target() const {
switch (rtypes_) {
case REBASE_TYPES::ARM64E_REBASE:
- {
- return imagebase_ + unpack_target(*arm64_rebase_);
- }
+ {
+ return imagebase_ + unpack_target(*arm64_rebase_);
+ }
case REBASE_TYPES::ARM64E_AUTH_REBASE:
- {
- return imagebase_ + arm64_auth_rebase_->target;
- }
+ {
+ return imagebase_ + arm64_auth_rebase_->target;
+ }
case REBASE_TYPES::PTR64_REBASE:
- {
- return ptr_fmt_ == DYLD_CHAINED_PTR_FORMAT::PTR_64 ?
- unpack_target(*p64_rebase_) :
- imagebase_ + unpack_target(*p64_rebase_);
- }
+ {
+ return ptr_fmt_ == DYLD_CHAINED_PTR_FORMAT::PTR_64 ?
+ unpack_target(*p64_rebase_) :
+ imagebase_ + unpack_target(*p64_rebase_);
+ }
case REBASE_TYPES::PTR32_REBASE:
- {
- /* We tricked the parser to make sure it covers the case
- * where fixup.rebase.target > seg_info.max_valid_pointer
- */
- return imagebase_ + p32_rebase_->target;
- }
+ {
+ /* We tricked the parser to make sure it covers the case
+ * where fixup.rebase.target > seg_info.max_valid_pointer
+ */
+ return imagebase_ + p32_rebase_->target;
+ }
case REBASE_TYPES::SEGMENTED:
case REBASE_TYPES::AUTH_SEGMENTED:
- {
- LIEF_ERR("Segmented rebase is not supported");
- return -1llu;
- }
+ {
+ LIEF_ERR("Segmented rebase is not supported");
+ return -1llu;
+ }
case REBASE_TYPES::UNKNOWN:
- {
- LIEF_ERR("Can't get target: unknown rebase type");
- break;
- }
+ {
+ LIEF_ERR("Unknown rebase type");
+ break;
+ }
}
return 0;
}
@@ -155,98 +200,80 @@ uint64_t RelocationFixup::target() const {
void RelocationFixup::target(uint64_t target) {
switch (rtypes_) {
case REBASE_TYPES::ARM64E_REBASE:
- {
- uint64_t rel_target = target;
- if (rel_target >= imagebase_) {
- rel_target -= imagebase_;
- }
- pack_target(*arm64_rebase_, rel_target);
- break;
+ {
+ uint64_t rel_target = target;
+ if (rel_target >= imagebase_) {
+ rel_target -= imagebase_;
}
+ pack_target(*arm64_rebase_, rel_target);
+ break;
+ }
case REBASE_TYPES::ARM64E_AUTH_REBASE:
- {
- uint64_t rel_target = target;
- if (rel_target >= imagebase_) {
- rel_target -= imagebase_;
- }
- arm64_auth_rebase_->target = rel_target;
- break;
+ {
+ uint64_t rel_target = target;
+ if (rel_target >= imagebase_) {
+ rel_target -= imagebase_;
}
+ arm64_auth_rebase_->target = rel_target;
+ break;
+ }
case REBASE_TYPES::PTR64_REBASE:
+ {
+ uint64_t rel_target = target;
+ if (ptr_fmt_ == DYLD_CHAINED_PTR_FORMAT::PTR_64_OFFSET &&
+ rel_target >= imagebase_)
{
- uint64_t rel_target = target;
- if (ptr_fmt_ == DYLD_CHAINED_PTR_FORMAT::PTR_64_OFFSET && rel_target >= imagebase_) {
- rel_target -= imagebase_;
- }
- pack_target(*p64_rebase_, rel_target);
- break;
+ rel_target -= imagebase_;
}
+ pack_target(*p64_rebase_, rel_target);
+ break;
+ }
case REBASE_TYPES::PTR32_REBASE:
- {
- LIEF_WARN("Updating a dyld_chained_ptr_generic32 is not supported yet");
- return;
- }
+ {
+ LIEF_WARN("Updating dyld_chained_ptr_generic32 is not yet supported");
+ return;
+ }
case REBASE_TYPES::SEGMENTED:
case REBASE_TYPES::AUTH_SEGMENTED:
- {
- LIEF_ERR("Segmented rebase is not supported");
- return;
- }
+ {
+ LIEF_ERR("Segmented rebase is not supported");
+ return;
+ }
case REBASE_TYPES::UNKNOWN:
- {
- LIEF_ERR("Can't set target: unknown rebase type");
- break;
- }
+ {
+ LIEF_ERR("Unknown rebase type");
+ break;
+ }
}
}
uint32_t RelocationFixup::next() const {
switch (rtypes_) {
- case REBASE_TYPES::ARM64E_REBASE:
- return arm64_rebase_->next;
- case REBASE_TYPES::ARM64E_AUTH_REBASE:
- return arm64_auth_rebase_->next;
- case REBASE_TYPES::PTR64_REBASE:
- return p64_rebase_->next;
- case REBASE_TYPES::PTR32_REBASE:
- return p32_rebase_->next;
- case REBASE_TYPES::SEGMENTED:
- return segmented_rebase_->next;
- case REBASE_TYPES::AUTH_SEGMENTED:
- return auth_segmented_rebase_->next;
- case REBASE_TYPES::UNKNOWN:
- return 0;
+ case REBASE_TYPES::ARM64E_REBASE: return arm64_rebase_->next;
+ case REBASE_TYPES::ARM64E_AUTH_REBASE: return arm64_auth_rebase_->next;
+ case REBASE_TYPES::PTR64_REBASE: return p64_rebase_->next;
+ case REBASE_TYPES::PTR32_REBASE: return p32_rebase_->next;
+ case REBASE_TYPES::SEGMENTED: return segmented_rebase_->next;
+ case REBASE_TYPES::AUTH_SEGMENTED: return auth_segmented_rebase_->next;
+ case REBASE_TYPES::UNKNOWN: return 0;
}
return 0;
}
void RelocationFixup::next(uint32_t value) {
switch (rtypes_) {
- case REBASE_TYPES::ARM64E_REBASE:
- arm64_rebase_->next = value;
- break;
- case REBASE_TYPES::ARM64E_AUTH_REBASE:
- arm64_auth_rebase_->next = value;
- break;
- case REBASE_TYPES::PTR64_REBASE:
- p64_rebase_->next = value;
- break;
- case REBASE_TYPES::PTR32_REBASE:
- p32_rebase_->next = value;
- break;
- case REBASE_TYPES::SEGMENTED:
- segmented_rebase_->next = value;
- break;
- case REBASE_TYPES::AUTH_SEGMENTED:
- auth_segmented_rebase_->next = value;
- break;
- case REBASE_TYPES::UNKNOWN:
- return;
+ case REBASE_TYPES::ARM64E_REBASE: arm64_rebase_->next = value; break;
+ case REBASE_TYPES::ARM64E_AUTH_REBASE: arm64_auth_rebase_->next = value; break;
+ case REBASE_TYPES::PTR64_REBASE: p64_rebase_->next = value; break;
+ case REBASE_TYPES::PTR32_REBASE: p32_rebase_->next = value; break;
+ case REBASE_TYPES::SEGMENTED: segmented_rebase_->next = value; break;
+ case REBASE_TYPES::AUTH_SEGMENTED: auth_segmented_rebase_->next = value; break;
+ case REBASE_TYPES::UNKNOWN: return;
}
return;
}
@@ -256,7 +283,9 @@ void RelocationFixup::set(const details::dyld_chained_ptr_arm64e_rebase& fixup)
arm64_rebase_ = new details::dyld_chained_ptr_arm64e_rebase(fixup);
}
-void RelocationFixup::set(const details::dyld_chained_ptr_arm64e_auth_rebase& fixup) {
+void RelocationFixup::set(
+ const details::dyld_chained_ptr_arm64e_auth_rebase& fixup
+) {
rtypes_ = REBASE_TYPES::ARM64E_AUTH_REBASE;
arm64_auth_rebase_ = new details::dyld_chained_ptr_arm64e_auth_rebase(fixup);
}
@@ -271,16 +300,20 @@ void RelocationFixup::set(const details::dyld_chained_ptr_32_rebase& fixup) {
p32_rebase_ = new details::dyld_chained_ptr_32_rebase(fixup);
}
-void RelocationFixup::set(const details::dyld_chained_ptr_arm64e_segmented_rebase& fixup) {
+void RelocationFixup::set(
+ const details::dyld_chained_ptr_arm64e_segmented_rebase& fixup
+) {
rtypes_ = REBASE_TYPES::SEGMENTED;
segmented_rebase_ = new details::dyld_chained_ptr_arm64e_segmented_rebase(fixup);
}
-void RelocationFixup::set(const details::dyld_chained_ptr_arm64e_auth_segmented_rebase& fixup) {
+void RelocationFixup::set(
+ const details::dyld_chained_ptr_arm64e_auth_segmented_rebase& fixup
+) {
rtypes_ = REBASE_TYPES::AUTH_SEGMENTED;
- auth_segmented_rebase_ = new details::dyld_chained_ptr_arm64e_auth_segmented_rebase(fixup);
+ auth_segmented_rebase_ =
+ new details::dyld_chained_ptr_arm64e_auth_segmented_rebase(fixup);
}
}
-}
diff --git a/deps/LIEF/src/MachO/RelocationObject.cpp b/deps/LIEF/src/MachO/RelocationObject.cpp
index 0b2053a8a09..7ee0f63515f 100644
--- a/deps/LIEF/src/MachO/RelocationObject.cpp
+++ b/deps/LIEF/src/MachO/RelocationObject.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,33 +20,33 @@
#include "LIEF/MachO/Section.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
RelocationObject::RelocationObject(const details::relocation_info& relocinfo) :
- is_pcrel_{static_cast<bool>(relocinfo.r_pcrel)}
-{
+ is_pcrel_{static_cast<bool>(relocinfo.r_pcrel)} {
address_ = static_cast<uint32_t>(relocinfo.r_address);
- size_ = static_cast<uint8_t>(relocinfo.r_length);
- type_ = static_cast<uint8_t>(relocinfo.r_type);
+ size_ = static_cast<uint8_t>(relocinfo.r_length);
+ type_ = static_cast<uint8_t>(relocinfo.r_type);
}
-RelocationObject::RelocationObject(const details::scattered_relocation_info& scattered_relocinfo) :
+RelocationObject::RelocationObject(
+ const details::scattered_relocation_info& scattered_relocinfo
+) :
is_pcrel_{static_cast<bool>(scattered_relocinfo.r_pcrel)},
is_scattered_{true},
- value_{scattered_relocinfo.r_value}
-{
+ value_{scattered_relocinfo.r_value} {
address_ = scattered_relocinfo.r_address;
- size_ = static_cast<uint8_t>(scattered_relocinfo.r_length);
- type_ = static_cast<uint8_t>(scattered_relocinfo.r_type);
+ size_ = static_cast<uint8_t>(scattered_relocinfo.r_length);
+ type_ = static_cast<uint8_t>(scattered_relocinfo.r_type);
}
void RelocationObject::swap(RelocationObject& other) noexcept {
Relocation::swap(other);
- std::swap(is_pcrel_, other.is_pcrel_);
+ std::swap(is_pcrel_, other.is_pcrel_);
std::swap(is_scattered_, other.is_scattered_);
- std::swap(value_, other.value_);
+ std::swap(value_, other.value_);
}
size_t RelocationObject::size() const {
@@ -68,24 +68,24 @@ uint64_t RelocationObject::address() const {
int32_t RelocationObject::value() const {
if (!is_scattered()) {
- LIEF_ERR("This relocation is not a 'scattered' one");
+ LIEF_ERR("Relocation is not scattered");
return -1;
}
return value_;
}
void RelocationObject::size(size_t size) {
- switch(size) {
- case 8: size_ = 0; break;
+ switch (size) {
+ case 8: size_ = 0; break;
case 16: size_ = 1; break;
case 32: size_ = 2; break;
- default: LIEF_ERR("Size must not be bigger than 32 bits");
+ default: LIEF_ERR("Size exceeds 32 bits");
}
}
void RelocationObject::value(int32_t value) {
if (!is_scattered()) {
- LIEF_ERR("This relocation is not a 'scattered' one");
+ LIEF_ERR("Relocation is not scattered");
return;
}
value_ = value;
@@ -96,4 +96,3 @@ void RelocationObject::accept(Visitor& visitor) const {
}
}
-}
diff --git a/deps/LIEF/src/MachO/Routine.cpp b/deps/LIEF/src/MachO/Routine.cpp
index ea98d07a72c..3354b150d1a 100644
--- a/deps/LIEF/src/MachO/Routine.cpp
+++ b/deps/LIEF/src/MachO/Routine.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,8 +21,8 @@
#include <spdlog/fmt/fmt.h>
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
template<class T>
LIEF_LOCAL Routine::Routine(const T& cmd) :
@@ -34,8 +34,7 @@ LIEF_LOCAL Routine::Routine(const T& cmd) :
reserved3_(cmd.reserved3),
reserved4_(cmd.reserved4),
reserved5_(cmd.reserved5),
- reserved6_(cmd.reserved6)
-{}
+ reserved6_(cmd.reserved6) {}
void Routine::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -43,8 +42,8 @@ void Routine::accept(Visitor& visitor) const {
std::ostream& Routine::print(std::ostream& os) const {
LoadCommand::print(os) << '\n';
- os << fmt::format("init_address=0x{:06x} init_module=0x{:06x}",
- init_address(), init_module());
+ os << fmt::format("init_address={:#08x} init_module={:#08x}", init_address(),
+ init_module());
return os;
}
@@ -52,4 +51,3 @@ template Routine::Routine(const details::routines_command_32&);
template Routine::Routine(const details::routines_command_64&);
}
-}
diff --git a/deps/LIEF/src/MachO/Section.cpp b/deps/LIEF/src/MachO/Section.cpp
index aa56b81b60a..96c24617f75 100644
--- a/deps/LIEF/src/MachO/Section.cpp
+++ b/deps/LIEF/src/MachO/Section.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,57 +27,71 @@
#include "LIEF/MachO/Section.hpp"
#include "LIEF/MachO/Relocation.hpp"
#include "LIEF/MachO/SegmentCommand.hpp"
+#include "LIEF/MachO/ThreadLocalVariables.hpp"
#include "MachO/Structures.hpp"
FMT_FORMATTER(LIEF::MachO::Section::FLAGS, LIEF::MachO::to_string);
FMT_FORMATTER(LIEF::MachO::Section::TYPE, LIEF::MachO::to_string);
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
static constexpr auto ARRAY_FLAGS = {
- Section::FLAGS::PURE_INSTRUCTIONS,
- Section::FLAGS::NO_TOC,
- Section::FLAGS::STRIP_STATIC_SYMS,
- Section::FLAGS::NO_DEAD_STRIP,
- Section::FLAGS::LIVE_SUPPORT,
- Section::FLAGS::SELF_MODIFYING_CODE,
- Section::FLAGS::DEBUG_INFO,
- Section::FLAGS::SOME_INSTRUCTIONS,
- Section::FLAGS::EXT_RELOC,
- Section::FLAGS::LOC_RELOC,
+ Section::FLAGS::PURE_INSTRUCTIONS, Section::FLAGS::NO_TOC,
+ Section::FLAGS::STRIP_STATIC_SYMS, Section::FLAGS::NO_DEAD_STRIP,
+ Section::FLAGS::LIVE_SUPPORT, Section::FLAGS::SELF_MODIFYING_CODE,
+ Section::FLAGS::DEBUG_INFO, Section::FLAGS::SOME_INSTRUCTIONS,
+ Section::FLAGS::EXT_RELOC, Section::FLAGS::LOC_RELOC,
};
+template<class T>
+static std::unique_ptr<Section> create_from_raw(const T& raw) {
+ auto type = (Section::TYPE)(raw.flags & Section::TYPE_MASK);
+ switch (type) {
+ case Section::TYPE::THREAD_LOCAL_VARIABLES:
+ return std::make_unique<ThreadLocalVariables>(raw);
+ default: return std::make_unique<Section>(raw);
+ }
+}
+
Section::Section() = default;
Section::~Section() = default;
-Section& Section::operator=(Section other) {
- swap(other);
- return *this;
-}
-Section::Section(std::string name) {
- this->name(std::move(name));
-}
+Section::Section(Section&&) = default;
+Section& Section::operator=(Section&&) = default;
-Section::Section(std::string name, content_t content) {
- this->name(std::move(name));
- this->content(std::move(content));
-}
+Section& Section::operator=(const Section& copy) {
+ if (this == ©) {
+ return *this;
+ }
+ LIEF::Section::operator=(copy);
+
+ segment_name_ = copy.segment_name_;
+ original_size_ = copy.original_size_;
+ align_ = copy.align_;
+ relocations_offset_ = copy.relocations_offset_;
+ nbof_relocations_ = copy.nbof_relocations_;
+ flags_ = copy.flags_;
+ reserved1_ = copy.reserved1_;
+ reserved2_ = copy.reserved2_;
+ reserved3_ = copy.reserved3_;
+ content_ = copy.content_;
-Section::Section(const Section& other) :
- LIEF::Section{other},
- segment_name_{other.segment_name_},
- original_size_{other.original_size_},
- align_{other.align_},
- relocations_offset_{other.relocations_offset_},
- nbof_relocations_{other.nbof_relocations_},
- flags_{other.flags_},
- reserved1_{other.reserved1_},
- reserved2_{other.reserved2_},
- reserved3_{other.reserved3_},
- content_{other.content_}
-{}
+ return *this;
+}
+Section::Section(const Section& copy) :
+ LIEF::Section{copy},
+ segment_name_(copy.segment_name_),
+ original_size_(copy.original_size_),
+ align_(copy.align_),
+ relocations_offset_(copy.relocations_offset_),
+ nbof_relocations_(copy.nbof_relocations_),
+ flags_(copy.flags_),
+ reserved1_(copy.reserved1_),
+ reserved2_(copy.reserved2_),
+ reserved3_(copy.reserved3_),
+ content_(copy.content_) {}
Section::Section(const details::section_32& sec) :
segment_name_{sec.segname, sizeof(sec.sectname)},
@@ -87,14 +101,13 @@ Section::Section(const details::section_32& sec) :
nbof_relocations_{sec.nreloc},
flags_{sec.flags},
reserved1_{sec.reserved1},
- reserved2_{sec.reserved2}
-{
- name_ = {sec.sectname, sizeof(sec.sectname)};
- size_ = sec.size;
- offset_ = sec.offset;
+ reserved2_{sec.reserved2} {
+ name_ = {sec.sectname, sizeof(sec.sectname)};
+ size_ = sec.size;
+ offset_ = sec.offset;
virtual_address_ = sec.addr;
- name_ = name_.c_str();
+ name_ = name_.c_str();
segment_name_ = segment_name_.c_str();
}
@@ -107,36 +120,42 @@ Section::Section(const details::section_64& sec) :
flags_{sec.flags},
reserved1_{sec.reserved1},
reserved2_{sec.reserved2},
- reserved3_{sec.reserved3}
-{
- name_ = {sec.sectname, sizeof(sec.sectname)};
- size_ = sec.size;
- offset_ = sec.offset;
+ reserved3_{sec.reserved3} {
+ name_ = {sec.sectname, sizeof(sec.sectname)};
+ size_ = sec.size;
+ offset_ = sec.offset;
virtual_address_ = sec.addr;
- name_ = name_.c_str();
+ name_ = name_.c_str();
segment_name_ = segment_name_.c_str();
}
+std::unique_ptr<Section> Section::create(const details::section_32& sec) {
+ return create_from_raw(sec);
+}
-void Section::swap(Section& other) noexcept {
- std::swap(name_, other.name_);
- std::swap(virtual_address_, other.virtual_address_);
- std::swap(size_, other.size_);
- std::swap(offset_, other.offset_);
-
- std::swap(segment_name_, other.segment_name_);
- std::swap(original_size_, other.original_size_);
- std::swap(align_, other.align_);
- std::swap(relocations_offset_, other.relocations_offset_);
- std::swap(nbof_relocations_, other.nbof_relocations_);
- std::swap(flags_, other.flags_);
- std::swap(reserved1_, other.reserved1_);
- std::swap(reserved2_, other.reserved2_);
- std::swap(reserved3_, other.reserved3_);
- std::swap(content_, other.content_);
- std::swap(segment_, other.segment_);
- std::swap(relocations_, other.relocations_);
+std::unique_ptr<Section> Section::create(const details::section_64& sec) {
+ return create_from_raw(sec);
+}
+
+std::unique_ptr<Section> Section::create(std::string name,
+ const content_t& content, TYPE type) {
+ std::unique_ptr<Section> sec;
+ switch (type) {
+ case TYPE::THREAD_LOCAL_VARIABLES:
+ sec = std::make_unique<ThreadLocalVariables>();
+ break;
+ default: sec = std::unique_ptr<Section>(new Section{});
+ }
+
+ assert(sec != nullptr);
+
+ sec->name(std::move(name));
+
+ if (!content.empty()) {
+ sec->content(content);
+ }
+ return sec;
}
span<const uint8_t> Section::content() const {
@@ -156,9 +175,15 @@ span<const uint8_t> Section::content() const {
if (relative_offset < 0) {
relative_offset = virtual_address_ - segment_->virtual_address();
}
+
+ if (relative_offset < 0) {
+ return {};
+ }
span<const uint8_t> content = segment_->content();
- if (relative_offset > (int64_t)content.size() || (relative_offset + size_) > content.size()) {
- LIEF_ERR("Section's size is bigger than segment's size");
+ if (relative_offset > (int64_t)content.size() ||
+ (relative_offset + size_) > content.size())
+ {
+ LIEF_ERR("Section size exceeds segment size");
return {};
}
return content.subspan(relative_offset, size_);
@@ -171,21 +196,22 @@ void Section::content(const content_t& data) {
}
if (size_ == 0 || offset_ == 0) { // bss section for instance
- LIEF_ERR("Offset or size is null");
+ LIEF_ERR("Offset or size is zero");
return;
}
uint64_t relative_offset = offset_ - segment_->file_offset();
- span<uint8_t> content = segment_->writable_content();
+ span<uint8_t> content = segment_->content();
- if (relative_offset > content.size() || (relative_offset + data.size()) > content.size()) {
- LIEF_ERR("New data are bigger than the original one");
+ if (relative_offset > content.size() ||
+ (relative_offset + data.size()) > content.size())
+ {
+ LIEF_ERR("New data exceeds original size");
return;
}
- std::move(std::begin(data), std::end(data),
- content.data() + relative_offset);
+ std::move(data.begin(), data.end(), content.data() + relative_offset);
}
const std::string& Section::segment_name() const {
@@ -199,10 +225,9 @@ const std::string& Section::segment_name() const {
std::vector<Section::FLAGS> Section::flags_list() const {
std::vector<FLAGS> flags;
- std::copy_if(
- std::begin(ARRAY_FLAGS), std::end(ARRAY_FLAGS),
- std::inserter(flags, std::begin(flags)),
- [this] (FLAGS f) { return has(f); });
+ std::copy_if(ARRAY_FLAGS.begin(), ARRAY_FLAGS.end(),
+ std::inserter(flags, flags.begin()),
+ [this](FLAGS f) { return has(f); });
return flags;
}
@@ -223,12 +248,7 @@ void Section::add(FLAGS flag) {
}
void Section::remove(FLAGS flag) {
- flags(raw_flags() & (~ uint32_t(flag)));
-}
-
-void Section::clear(uint8_t v) {
- content_t clear(size(), v);
- content(std::move(clear));
+ flags(raw_flags() & (~uint32_t(flag)));
}
void Section::accept(Visitor& visitor) const {
@@ -242,34 +262,28 @@ std::unique_ptr<SpanStream> Section::stream() const {
std::ostream& operator<<(std::ostream& os, const Section& section) {
const auto& flags = section.flags_list();
os << fmt::format(
- "name={}, segment={}, address=0x{:06x}, size=0x{:04x} "
- "offset=0x{:06x}, align={}, type={}, reloc_offset={}, nb_reloc={} "
- "reserved1={}, reserved2={}, reserved3={}, flags={}",
- section.name(), section.segment_name(), section.address(),
- section.size(), section.offset(), section.alignment(), section.type(),
- section.relocation_offset(), section.numberof_relocations(),
- section.reserved1(), section.reserved2(), section.reserved3(),
- flags
+ "name={}, segment={}, address={:#08x}, size={:#06x} "
+ "offset={:#08x}, align={}, type={}, reloc_offset={}, nb_reloc={} "
+ "reserved1={}, reserved2={}, reserved3={}, flags={}",
+ section.name(), section.segment_name(), section.address(), section.size(),
+ section.offset(), section.alignment(), section.type(),
+ section.relocation_offset(), section.numberof_relocations(),
+ section.reserved1(), section.reserved2(), section.reserved3(), flags
);
return os;
}
const char* to_string(Section::FLAGS e) {
- #define ENTRY(X) std::pair(Section::FLAGS::X, #X)
- STRING_MAP enums2str {
- ENTRY(PURE_INSTRUCTIONS),
- ENTRY(NO_TOC),
- ENTRY(STRIP_STATIC_SYMS),
- ENTRY(NO_DEAD_STRIP),
- ENTRY(LIVE_SUPPORT),
- ENTRY(SELF_MODIFYING_CODE),
- ENTRY(DEBUG_INFO),
- ENTRY(SOME_INSTRUCTIONS),
- ENTRY(EXT_RELOC),
- ENTRY(LOC_RELOC),
+#define ENTRY(X) std::pair(Section::FLAGS::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(PURE_INSTRUCTIONS), ENTRY(NO_TOC),
+ ENTRY(STRIP_STATIC_SYMS), ENTRY(NO_DEAD_STRIP),
+ ENTRY(LIVE_SUPPORT), ENTRY(SELF_MODIFYING_CODE),
+ ENTRY(DEBUG_INFO), ENTRY(SOME_INSTRUCTIONS),
+ ENTRY(EXT_RELOC), ENTRY(LOC_RELOC),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -278,33 +292,33 @@ const char* to_string(Section::FLAGS e) {
}
const char* to_string(Section::TYPE e) {
- #define ENTRY(X) std::pair(Section::TYPE::X, #X)
- STRING_MAP enums2str {
- ENTRY(REGULAR),
- ENTRY(ZEROFILL),
- ENTRY(CSTRING_LITERALS),
- ENTRY(IS_4BYTE_LITERALS),
- ENTRY(IS_8BYTE_LITERALS),
- ENTRY(LITERAL_POINTERS),
- ENTRY(NON_LAZY_SYMBOL_POINTERS),
- ENTRY(LAZY_SYMBOL_POINTERS),
- ENTRY(SYMBOL_STUBS),
- ENTRY(MOD_INIT_FUNC_POINTERS),
- ENTRY(MOD_TERM_FUNC_POINTERS),
- ENTRY(COALESCED),
- ENTRY(GB_ZEROFILL),
- ENTRY(INTERPOSING),
- ENTRY(IS_16BYTE_LITERALS),
- ENTRY(DTRACE_DOF),
- ENTRY(LAZY_DYLIB_SYMBOL_POINTERS),
- ENTRY(THREAD_LOCAL_REGULAR),
- ENTRY(THREAD_LOCAL_ZEROFILL),
- ENTRY(THREAD_LOCAL_VARIABLES),
- ENTRY(THREAD_LOCAL_VARIABLE_POINTERS),
- ENTRY(THREAD_LOCAL_INIT_FUNCTION_POINTERS),
- ENTRY(INIT_FUNC_OFFSETS),
+#define ENTRY(X) std::pair(Section::TYPE::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(REGULAR),
+ ENTRY(ZEROFILL),
+ ENTRY(CSTRING_LITERALS),
+ ENTRY(IS_4BYTE_LITERALS),
+ ENTRY(IS_8BYTE_LITERALS),
+ ENTRY(LITERAL_POINTERS),
+ ENTRY(NON_LAZY_SYMBOL_POINTERS),
+ ENTRY(LAZY_SYMBOL_POINTERS),
+ ENTRY(SYMBOL_STUBS),
+ ENTRY(MOD_INIT_FUNC_POINTERS),
+ ENTRY(MOD_TERM_FUNC_POINTERS),
+ ENTRY(COALESCED),
+ ENTRY(GB_ZEROFILL),
+ ENTRY(INTERPOSING),
+ ENTRY(IS_16BYTE_LITERALS),
+ ENTRY(DTRACE_DOF),
+ ENTRY(LAZY_DYLIB_SYMBOL_POINTERS),
+ ENTRY(THREAD_LOCAL_REGULAR),
+ ENTRY(THREAD_LOCAL_ZEROFILL),
+ ENTRY(THREAD_LOCAL_VARIABLES),
+ ENTRY(THREAD_LOCAL_VARIABLE_POINTERS),
+ ENTRY(THREAD_LOCAL_INIT_FUNCTION_POINTERS),
+ ENTRY(INIT_FUNC_OFFSETS),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -312,5 +326,4 @@ const char* to_string(Section::TYPE e) {
return "UNKNOWN";
}
-} // namespace MachO
-} // namespace LIEF
+} // namespace LIEF::MachO
diff --git a/deps/LIEF/src/MachO/SegmentCommand.cpp b/deps/LIEF/src/MachO/SegmentCommand.cpp
index 243bcff0332..7c11eb9dfa4 100644
--- a/deps/LIEF/src/MachO/SegmentCommand.cpp
+++ b/deps/LIEF/src/MachO/SegmentCommand.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,6 +14,7 @@
* limitations under the License.
*/
#include <memory>
+#include <algorithm>
#include "spdlog/fmt/fmt.h"
#include "LIEF/Visitor.hpp"
@@ -24,20 +25,18 @@
#include "LIEF/MachO/Relocation.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
SegmentCommand::SegmentCommand() = default;
SegmentCommand::~SegmentCommand() = default;
SegmentCommand::SegmentCommand(std::string name, content_t content) :
name_(std::move(name)),
- data_(std::move(content))
-{}
+ data_(std::move(content)) {}
SegmentCommand::SegmentCommand(std::string name) :
- name_(std::move(name))
-{}
+ name_(std::move(name)) {}
SegmentCommand& SegmentCommand::operator=(SegmentCommand other) {
swap(other);
@@ -55,25 +54,23 @@ SegmentCommand::SegmentCommand(const SegmentCommand& other) :
init_protection_{other.init_protection_},
nb_sections_{other.nb_sections_},
flags_{other.flags_},
- data_{other.data_}
-{
+ data_{other.data_} {
for (const std::unique_ptr<Section>& section : other.sections_) {
- auto new_section = std::make_unique<Section>(*section);
+ auto new_section = section->clone();
new_section->segment_ = this;
new_section->segment_name_ = name();
sections_.push_back(std::move(new_section));
}
// TODO:
- //for (Relocation* relocation : other.relocations_) {
+ // for (Relocation* relocation : other.relocations_) {
// Relocation* new_relocation = relocation->clone();
// //relocations_.push_back(new_relocation);
//}
}
-
SegmentCommand::SegmentCommand(const details::segment_command_32& seg) :
LoadCommand{LoadCommand::TYPE::SEGMENT, seg.cmdsize},
name_{seg.segname, sizeof(seg.segname)},
@@ -84,8 +81,7 @@ SegmentCommand::SegmentCommand(const details::segment_command_32& seg) :
max_protection_{seg.maxprot},
init_protection_{seg.initprot},
nb_sections_{seg.nsects},
- flags_{seg.flags}
-{
+ flags_{seg.flags} {
name_ = std::string{name_.c_str()};
}
@@ -99,8 +95,7 @@ SegmentCommand::SegmentCommand(const details::segment_command_64& seg) :
max_protection_{seg.maxprot},
init_protection_{seg.initprot},
nb_sections_{seg.nsects},
- flags_{seg.flags}
-{
+ flags_{seg.flags} {
name_ = std::string{name_.c_str()};
}
@@ -108,23 +103,29 @@ void SegmentCommand::swap(SegmentCommand& other) noexcept {
LoadCommand::swap(other);
std::swap(virtual_address_, other.virtual_address_);
- std::swap(virtual_size_, other.virtual_size_);
- std::swap(file_offset_, other.file_offset_);
- std::swap(file_size_, other.file_size_);
- std::swap(max_protection_, other.max_protection_);
+ std::swap(virtual_size_, other.virtual_size_);
+ std::swap(file_offset_, other.file_offset_);
+ std::swap(file_size_, other.file_size_);
+ std::swap(max_protection_, other.max_protection_);
std::swap(init_protection_, other.init_protection_);
- std::swap(nb_sections_, other.nb_sections_);
- std::swap(flags_, other.flags_);
- std::swap(data_, other.data_);
- std::swap(sections_, other.sections_);
- std::swap(relocations_, other.relocations_);
- //std::swap(dyld_, other.dyld_);
+ std::swap(nb_sections_, other.nb_sections_);
+ std::swap(flags_, other.flags_);
+ std::swap(data_, other.data_);
+ std::swap(sections_, other.sections_);
+ std::swap(relocations_, other.relocations_);
+ // std::swap(dyld_, other.dyld_);
}
void SegmentCommand::content(SegmentCommand::content_t data) {
- update_data([data = std::move(data)] (std::vector<uint8_t>& inner_data) mutable {
- inner_data = std::move(data);
- });
+ update_data([data = std::move(data)](std::vector<uint8_t>& inner_data) mutable {
+ // If the size is the same, we avoid the std::move that would dangle every
+ // span/iterator referencing this segment
+ if (data.size() == inner_data.size()) {
+ std::copy(data.begin(), data.end(), inner_data.begin());
+ } else {
+ inner_data = std::move(data);
+ }
+ });
}
void SegmentCommand::remove_all_sections() {
@@ -133,7 +134,7 @@ void SegmentCommand::remove_all_sections() {
}
Section& SegmentCommand::add_section(const Section& section) {
- auto new_section = std::make_unique<Section>(section);
+ auto new_section = section.clone();
new_section->segment_ = this;
new_section->segment_name_ = name();
@@ -151,12 +152,11 @@ Section& SegmentCommand::add_section(const Section& section) {
const size_t relative_offset = new_section->offset() - file_offset();
span<const uint8_t> content = section.content();
- update_data([] (std::vector<uint8_t>& inner_data, size_t w, size_t s) {
- inner_data.resize(w + s);
- }, relative_offset, content.size());
+ update_data([](std::vector<uint8_t>& inner_data, size_t w,
+ size_t s) { inner_data.resize(w + s); },
+ relative_offset, content.size());
- std::copy(std::begin(content), std::end(content),
- std::begin(data_) + relative_offset);
+ std::copy(content.begin(), content.end(), data_.begin() + relative_offset);
file_size(data_.size());
sections_.push_back(std::move(new_section));
@@ -165,53 +165,55 @@ Section& SegmentCommand::add_section(const Section& section) {
}
bool SegmentCommand::has(const Section& section) const {
- auto it = std::find_if(std::begin(sections_), std::end(sections_),
- [§ion] (const std::unique_ptr<Section>& sec) {
- return *sec == section;
- });
- return it != std::end(sections_);
+ auto it = std::find_if(sections_.begin(), sections_.end(),
+ [§ion](const std::unique_ptr<Section>& sec) {
+ return *sec == section;
+ });
+ return it != sections_.end();
}
bool SegmentCommand::has_section(const std::string& section_name) const {
- auto it = std::find_if(std::begin(sections_), std::end(sections_),
- [§ion_name] (const std::unique_ptr<Section>& sec) {
- return sec->name() == section_name;
- });
- return it != std::end(sections_);
+ auto it = std::find_if(sections_.begin(), sections_.end(),
+ [§ion_name](const std::unique_ptr<Section>& sec) {
+ return sec->name() == section_name;
+ });
+ return it != sections_.end();
}
-
void SegmentCommand::content_resize(size_t size) {
- update_data([size] (std::vector<uint8_t>& inner_data) {
- if (inner_data.size() >= size) {
- return;
- }
- inner_data.resize(size, 0);
- });
+ update_data([size](std::vector<uint8_t>& inner_data) {
+ if (inner_data.size() >= size) {
+ return;
+ }
+ inner_data.resize(size, 0);
+ });
}
void SegmentCommand::content_insert(size_t where, size_t size) {
- update_data([] (std::vector<uint8_t>& inner_data, size_t w, size_t s) {
- if (s == 0) {
- return;
- }
- if (w < inner_data.size()) {
- inner_data.insert(std::begin(inner_data) + w, s, 0);
- } else {
- inner_data.resize(inner_data.size() + w + s, 0);
- }
- }, where, size);
+ update_data(
+ [](std::vector<uint8_t>& inner_data, size_t w, size_t s) {
+ if (s == 0) {
+ return;
+ }
+ if (w < inner_data.size()) {
+ inner_data.insert(inner_data.begin() + w, s, 0);
+ } else {
+ inner_data.resize(inner_data.size() + w + s, 0);
+ }
+ },
+ where, size
+ );
}
const Section* SegmentCommand::get_section(const std::string& name) const {
- const auto it = std::find_if(std::begin(sections_), std::end(sections_),
- [&name] (const std::unique_ptr<Section>& sec) {
- return sec->name() == name;
- });
+ const auto it = std::find_if(sections_.begin(), sections_.end(),
+ [&name](const std::unique_ptr<Section>& sec) {
+ return sec->name() == name;
+ });
- if (it == std::end(sections_)) {
+ if (it == sections_.end()) {
return nullptr;
}
@@ -219,7 +221,9 @@ const Section* SegmentCommand::get_section(const std::string& name) const {
}
Section* SegmentCommand::get_section(const std::string& name) {
- return const_cast<Section*>(static_cast<const SegmentCommand*>(this)->get_section(name));
+ return const_cast<Section*>(
+ static_cast<const SegmentCommand*>(this)->get_section(name)
+ );
}
@@ -234,12 +238,11 @@ void SegmentCommand::accept(Visitor& visitor) const {
std::ostream& SegmentCommand::print(std::ostream& os) const {
LoadCommand::print(os) << '\n';
os << fmt::format(
- "name={}, vaddr=0x{:06x}, vsize=0x{:04x} "
- "offset=0x{:06x}, size={}, max protection={}, init protection={} "
- "flags={}",
- name(), virtual_address(), virtual_size(),
- file_offset(), file_size(), max_protection(), init_protection(),
- flags()
+ "name={}, vaddr={:#08x}, vsize={:#06x} "
+ "offset={:#08x}, size={}, max protection={}, init protection={} "
+ "flags={}",
+ name(), virtual_address(), virtual_size(), file_offset(), file_size(),
+ max_protection(), init_protection(), flags()
);
return os;
}
@@ -249,8 +252,7 @@ void SegmentCommand::update_data(const SegmentCommand::update_fnc_t& f) {
}
void SegmentCommand::update_data(const SegmentCommand::update_fnc_ws_t& f,
- size_t where, size_t size)
-{
+ size_t where, size_t size) {
f(data_, where, size);
}
@@ -275,4 +277,3 @@ const char* to_string(SegmentCommand::VM_PROTECTIONS protection) {
}
}
-}
diff --git a/deps/LIEF/src/MachO/SegmentSplitInfo.cpp b/deps/LIEF/src/MachO/SegmentSplitInfo.cpp
index 1f4adcb7126..fa7e1116258 100644
--- a/deps/LIEF/src/MachO/SegmentSplitInfo.cpp
+++ b/deps/LIEF/src/MachO/SegmentSplitInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,14 +19,13 @@
#include "LIEF/MachO/SegmentSplitInfo.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
SegmentSplitInfo::SegmentSplitInfo(const details::linkedit_data_command& cmd) :
LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
data_offset_{cmd.dataoff},
- data_size_{cmd.datasize}
-{}
+ data_size_{cmd.datasize} {}
void SegmentSplitInfo::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -34,11 +33,9 @@ void SegmentSplitInfo::accept(Visitor& visitor) const {
std::ostream& SegmentSplitInfo::print(std::ostream& os) const {
LoadCommand::print(os) << '\n';
- os << fmt::format("offset=0x{:06x}, size=0x{:06x}",
- data_offset(), data_size());
+ os << fmt::format("offset={:#08x}, size={:#08x}", data_offset(), data_size());
return os;
}
}
-}
diff --git a/deps/LIEF/src/MachO/SourceVersion.cpp b/deps/LIEF/src/MachO/SourceVersion.cpp
index 4d85a972fcb..139cf72b3cd 100644
--- a/deps/LIEF/src/MachO/SourceVersion.cpp
+++ b/deps/LIEF/src/MachO/SourceVersion.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,20 +20,17 @@
#include "LIEF/MachO/SourceVersion.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
SourceVersion::SourceVersion(const details::source_version_command& ver) :
LoadCommand::LoadCommand{LoadCommand::TYPE(ver.cmd), ver.cmdsize},
- version_{{
- static_cast<uint32_t>((ver.version >> 40) & 0xffffff),
- static_cast<uint32_t>((ver.version >> 30) & 0x3ff),
- static_cast<uint32_t>((ver.version >> 20) & 0x3ff),
- static_cast<uint32_t>((ver.version >> 10) & 0x3ff),
- static_cast<uint32_t>((ver.version >> 0) & 0x3ff)
- }}
-{}
+ version_{{static_cast<uint32_t>((ver.version >> 40) & 0xffffff),
+ static_cast<uint32_t>((ver.version >> 30) & 0x3ff),
+ static_cast<uint32_t>((ver.version >> 20) & 0x3ff),
+ static_cast<uint32_t>((ver.version >> 10) & 0x3ff),
+ static_cast<uint32_t>((ver.version >> 0) & 0x3ff)}} {}
void SourceVersion::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -47,4 +44,3 @@ std::ostream& SourceVersion::print(std::ostream& os) const {
}
-}
diff --git a/deps/LIEF/src/MachO/Structures.hpp b/deps/LIEF/src/MachO/Structures.hpp
index 6c0db43b6f4..364b6982152 100644
--- a/deps/LIEF/src/MachO/Structures.hpp
+++ b/deps/LIEF/src/MachO/Structures.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,32 +25,30 @@
// Swap 2 byte, 16 bit values:
-#define Swap2Bytes(val) \
- ( (((val) >> 8) & 0x00FF) | (((val) << 8) & 0xFF00) )
+#define Swap2Bytes(val) ((((val) >> 8) & 0x00FF) | (((val) << 8) & 0xFF00))
// Swap 4 byte, 32 bit values:
-#define Swap4Bytes(val) \
- ( (((val) >> 24) & 0x000000FF) | (((val) >> 8) & 0x0000FF00) | \
- (((val) << 8) & 0x00FF0000) | (((val) << 24) & 0xFF000000) )
-
+#define Swap4Bytes(val) \
+ ((((val) >> 24) & 0x000000FF) | (((val) >> 8) & 0x0000FF00) | \
+ (((val) << 8) & 0x00FF0000) | (((val) << 24) & 0xFF000000))
// Swap 8 byte, 64 bit values:
-#define Swap8Bytes(val) \
- ( (((val) >> 56) & 0x00000000000000FF) | (((val) >> 40) & 0x000000000000FF00) | \
- (((val) >> 24) & 0x0000000000FF0000) | (((val) >> 8) & 0x00000000FF000000) | \
- (((val) << 8) & 0x000000FF00000000) | (((val) << 24) & 0x0000FF0000000000) | \
- (((val) << 40) & 0x00FF000000000000) | (((val) << 56) & 0xFF00000000000000) )
+#define Swap8Bytes(val) \
+ ((((val) >> 56) & 0x00000000000000FF) | (((val) >> 40) & 0x000000000000FF00) | \
+ (((val) >> 24) & 0x0000000000FF0000) | (((val) >> 8) & 0x00000000FF000000) | \
+ (((val) << 8) & 0x000000FF00000000) | (((val) << 24) & 0x0000FF0000000000) | \
+ (((val) << 40) & 0x00FF000000000000) | (((val) << 56) & 0xFF00000000000000))
+
-namespace LIEF {
/// Namespace related to the LIEF's MachO module
-namespace MachO {
-namespace details {
+
+namespace LIEF::MachO::details {
static constexpr uint32_t INDIRECT_SYMBOL_LOCAL = 0x80000000;
-static constexpr uint32_t INDIRECT_SYMBOL_ABS = 0x40000000;
+static constexpr uint32_t INDIRECT_SYMBOL_ABS = 0x40000000;
struct mach_header {
uint32_t magic;
@@ -60,7 +58,7 @@ struct mach_header {
uint32_t ncmds;
uint32_t sizeofcmds;
uint32_t flags;
- //uint32_t reserved; not for 32 bits
+ // uint32_t reserved; not for 32 bits
};
struct mach_header_64 {
@@ -82,7 +80,7 @@ struct load_command {
struct segment_command_32 {
uint32_t cmd;
uint32_t cmdsize;
- char segname[16];
+ char segname[16];
uint32_t vmaddr;
uint32_t vmsize;
uint32_t fileoff;
@@ -96,7 +94,7 @@ struct segment_command_32 {
struct segment_command_64 {
uint32_t cmd;
uint32_t cmdsize;
- char segname[16];
+ char segname[16];
uint64_t vmaddr;
uint64_t vmsize;
uint64_t fileoff;
@@ -287,8 +285,7 @@ struct dylib_module_64 {
};
struct dylib_reference {
- uint32_t isym:24,
- flags:8;
+ uint32_t isym : 24, flags : 8;
};
struct twolevel_hints_command {
@@ -299,8 +296,7 @@ struct twolevel_hints_command {
};
struct twolevel_hint {
- uint32_t isub_image:8,
- itoc:24;
+ uint32_t isub_image : 8, itoc : 24;
};
static_assert(sizeof(twolevel_hint) == sizeof(uint32_t), "Wrong size");
@@ -351,11 +347,11 @@ struct encryption_info_command {
};
struct version_min_command {
- uint32_t cmd; // LC_VERSION_MIN_MACOSX or
- // LC_VERSION_MIN_IPHONEOS
- uint32_t cmdsize; // sizeof(struct version_min_command)
- uint32_t version; // X.Y.Z is encoded in nibbles xxxx.yy.zz
- uint32_t sdk; // X.Y.Z is encoded in nibbles xxxx.yy.zz
+ uint32_t cmd; // LC_VERSION_MIN_MACOSX or
+ // LC_VERSION_MIN_IPHONEOS
+ uint32_t cmdsize; // sizeof(struct version_min_command)
+ uint32_t version; // X.Y.Z is encoded in nibbles xxxx.yy.zz
+ uint32_t sdk; // X.Y.Z is encoded in nibbles xxxx.yy.zz
};
@@ -473,20 +469,12 @@ struct fat_arch {
// Structs from <mach-o/reloc.h>
struct relocation_info {
int32_t r_address;
- uint32_t r_symbolnum:24,
- r_pcrel:1,
- r_length:2,
- r_extern:1,
- r_type:4;
+ uint32_t r_symbolnum : 24, r_pcrel : 1, r_length : 2, r_extern : 1, r_type : 4;
};
struct scattered_relocation_info {
- uint32_t r_address:24,
- r_type:4,
- r_length:2,
- r_pcrel:1,
- r_scattered:1;
+ uint32_t r_address : 24, r_type : 4, r_length : 2, r_pcrel : 1, r_scattered : 1;
int32_t r_value;
};
@@ -581,7 +569,7 @@ struct arm_thread_state_t {
uint32_t r13;
uint32_t r14;
uint32_t r15;
- uint32_t r16; /* Apple's thread_state has this 17th reg, bug?? */
+ uint32_t r16; /* Apple's thread_state has this 17th reg, bug?? */
};
struct arm_thread_state64_t {
@@ -627,10 +615,10 @@ struct code_directory {
uint32_t nb_special_slots;
uint32_t nb_code_slots;
uint32_t code_limit;
- uint8_t hash_size;
- uint8_t hash_type;
- uint8_t reserved;
- uint8_t page_size;
+ uint8_t hash_size;
+ uint8_t hash_type;
+ uint8_t reserved;
+ uint8_t page_size;
uint32_t reserved2;
uint32_t scatter_offset;
};
@@ -640,7 +628,7 @@ struct code_directory {
// =================
// Taken from libunwind-35.3/include/mach-o/compact_unwind_encoding.h
struct unwind_info_section_header {
- uint32_t version; // unwind_section_version
+ uint32_t version; // unwind_section_version
uint32_t common_encodings_array_section_offset;
uint32_t common_encodings_arraycount;
uint32_t personality_array_section_offset;
@@ -656,8 +644,10 @@ struct unwind_info_section_header {
struct unwind_info_section_header_index_entry {
uint32_t function_offset;
- uint32_t second_level_pages_section_offset; // section offset to start of regular or compress page
- uint32_t lsda_index_array_section_offset; // section offset to start of lsda_index array for this range
+ uint32_t second_level_pages_section_offset; // section offset to start of regular
+ // or compress page
+ uint32_t lsda_index_array_section_offset; // section offset to start of
+ // lsda_index array for this range
};
struct unwind_info_section_header_lsda_index_entry {
@@ -672,7 +662,7 @@ struct unwind_info_regular_second_level_entry {
};
struct unwind_info_regular_second_level_page_header {
- uint32_t kind; // UNWIND_SECOND_LEVEL_REGULAR
+ uint32_t kind; // UNWIND_SECOND_LEVEL_REGULAR
uint16_t entry_page_offset;
uint16_t entry_count;
// entry array
@@ -680,7 +670,7 @@ struct unwind_info_regular_second_level_page_header {
struct unwind_info_compressed_second_level_page_header {
- uint32_t kind; // unwind_second_level_compressed
+ uint32_t kind; // unwind_second_level_compressed
uint16_t entry_page_offset;
uint16_t entry_count;
uint16_t encodings_page_offset;
@@ -694,8 +684,7 @@ struct rebase_instruction {
rebase_instruction(uint8_t opcode, uint64_t op1, uint64_t op2 = 0) :
opcode{opcode},
op1{op1},
- op2{op2}
- {}
+ op2{op2} {}
uint8_t opcode;
uint64_t op1;
@@ -703,12 +692,12 @@ struct rebase_instruction {
};
struct binding_instruction {
- binding_instruction(uint8_t opcode, uint64_t op1, uint64_t op2 = 0, std::string name = "") :
+ binding_instruction(uint8_t opcode, uint64_t op1, uint64_t op2 = 0,
+ std::string name = "") :
opcode{opcode},
op1{op1},
op2{op2},
- name{name}
- {}
+ name{std::move(name)} {}
binding_instruction(const binding_instruction&) = default;
binding_instruction& operator=(const binding_instruction&) = default;
@@ -722,28 +711,28 @@ struct binding_instruction {
class MachO32 {
public:
- using header = mach_header;
- using segment_command = segment_command_32;
- using section = section_32;
- using routines_command = routines_command_32;
- using dylib_module = dylib_module_32;
- using nlist = nlist_32;
+ using header = mach_header;
+ using segment_command = segment_command_32;
+ using section = section_32;
+ using routines_command = routines_command_32;
+ using dylib_module = dylib_module_32;
+ using nlist = nlist_32;
- using uint = uint32_t;
+ using uint = uint32_t;
};
class MachO64 {
public:
- using header = mach_header_64;
- using segment_command = segment_command_64;
- using section = section_64;
- using routines_command = routines_command_64;
- using dylib_module = dylib_module_64;
- using nlist = nlist_64;
+ using header = mach_header_64;
+ using segment_command = segment_command_64;
+ using section = section_64;
+ using routines_command = routines_command_64;
+ using dylib_module = dylib_module_64;
+ using nlist = nlist_64;
- using uint = uint64_t;
+ using uint = uint64_t;
};
}
-} // end namespace MachO
-}
+// end namespace MachO
+
#endif
diff --git a/deps/LIEF/src/MachO/Stub.cpp b/deps/LIEF/src/MachO/Stub.cpp
index 2281eacd447..499fe367881 100644
--- a/deps/LIEF/src/MachO/Stub.cpp
+++ b/deps/LIEF/src/MachO/Stub.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -30,9 +30,8 @@ inline uint64_t get_offset(size_t pos, const Section& section) {
return section.reserved2() * pos;
}
-const Section*
- Stub::Iterator::find_section_offset(size_t pos, uint64_t& offset) const
-{
+const Section* Stub::Iterator::find_section_offset(size_t pos,
+ uint64_t& offset) const {
if (stubs_.size() == 1) {
offset = get_offset(pos, *stubs_.back());
return stubs_.back();
@@ -58,9 +57,9 @@ const Section*
uint64_t limit = nb_stubs(*stubs_[0]);
for (size_t idx = 0; idx < stubs_.size(); ++idx) {
if (pos < limit) {
- offset = idx > 0 ?
- get_offset(pos - (limit - nb_stubs(*stubs_[idx - 1])), *stubs_[idx]) :
- get_offset(pos, *stubs_[idx]);
+ offset = idx > 0 ? get_offset(pos - (limit - nb_stubs(*stubs_[idx - 1])),
+ *stubs_[idx]) :
+ get_offset(pos, *stubs_[idx]);
return stubs_[idx];
}
if (idx < stubs_.size() - 1) {
@@ -83,9 +82,7 @@ Stub Stub::Iterator::operator*() const {
}
LIEF::span<const uint8_t> stub_raw = section->content().subspan(offset, stride);
const uint64_t addr = section->virtual_address() + offset;
- return Stub(
- target_info_, addr, as_vector(stub_raw)
- );
+ return {target_info_, addr, as_vector(stub_raw)};
}
#if !defined(LIEF_EXTENDED)
@@ -97,11 +94,10 @@ result<uint64_t> Stub::target() const {
std::ostream& operator<<(std::ostream& os, const Stub& stub) {
if (is_extended()) {
- os << fmt::format("0x{:010x}: 0x{:010x} ({} bytes)",
- stub.address(), stub.target().value_or(0),
- stub.raw().size());
+ os << fmt::format("{:#012x}: {:#012x} ({} bytes)", stub.address(),
+ stub.target().value_or(0), stub.raw().size());
} else {
- os << fmt::format("0x{:010x} ({} bytes)", stub.address(), stub.raw().size());
+ os << fmt::format("{:#012x} ({} bytes)", stub.address(), stub.raw().size());
}
return os;
}
diff --git a/deps/LIEF/src/MachO/SubClient.cpp b/deps/LIEF/src/MachO/SubClient.cpp
index 4f0b45c737c..2fa8356339c 100644
--- a/deps/LIEF/src/MachO/SubClient.cpp
+++ b/deps/LIEF/src/MachO/SubClient.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2017 - 2025 R. Thomas
+/* Copyright 2017 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,12 +18,11 @@
#include "LIEF/MachO/SubClient.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
SubClient::SubClient(const details::sub_client_command& cmd) :
- LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize}
-{}
+ LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize} {}
void SubClient::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -37,4 +36,3 @@ std::ostream& SubClient::print(std::ostream& os) const {
}
-}
diff --git a/deps/LIEF/src/MachO/SubFramework.cpp b/deps/LIEF/src/MachO/SubFramework.cpp
index 437dbbefd88..fb4f14436f4 100644
--- a/deps/LIEF/src/MachO/SubFramework.cpp
+++ b/deps/LIEF/src/MachO/SubFramework.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,12 +19,11 @@
#include "LIEF/MachO/SubFramework.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
SubFramework::SubFramework(const details::sub_framework_command& cmd) :
- LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize}
-{}
+ LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize} {}
void SubFramework::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -38,4 +37,3 @@ std::ostream& SubFramework::print(std::ostream& os) const {
}
-}
diff --git a/deps/LIEF/src/MachO/Symbol.cpp b/deps/LIEF/src/MachO/Symbol.cpp
index 1ec1b75d6af..4e26a3749ad 100644
--- a/deps/LIEF/src/MachO/Symbol.cpp
+++ b/deps/LIEF/src/MachO/Symbol.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,8 +28,8 @@
#include "frozen.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
Symbol& Symbol::operator=(Symbol other) {
swap(other);
@@ -41,16 +41,14 @@ Symbol::Symbol(const Symbol& other) :
type_{other.type_},
numberof_sections_{other.numberof_sections_},
description_{other.description_},
- origin_{other.origin_}
-{}
+ origin_{other.origin_} {}
Symbol::Symbol(const details::nlist_32& cmd) :
type_{cmd.n_type},
numberof_sections_{cmd.n_sect},
description_{static_cast<uint16_t>(cmd.n_desc)},
- origin_{ORIGIN::SYMTAB}
-{
+ origin_{ORIGIN::SYMTAB} {
value_ = cmd.n_value;
}
@@ -58,20 +56,19 @@ Symbol::Symbol(const details::nlist_64& cmd) :
type_{cmd.n_type},
numberof_sections_{cmd.n_sect},
description_{cmd.n_desc},
- origin_{ORIGIN::SYMTAB}
-{
+ origin_{ORIGIN::SYMTAB} {
value_ = cmd.n_value;
}
void Symbol::swap(Symbol& other) noexcept {
LIEF::Symbol::swap(other);
- std::swap(type_, other.type_);
+ std::swap(type_, other.type_);
std::swap(numberof_sections_, other.numberof_sections_);
- std::swap(description_, other.description_);
- std::swap(binding_info_, other.binding_info_);
- std::swap(export_info_, other.export_info_);
- std::swap(origin_, other.origin_);
+ std::swap(description_, other.description_);
+ std::swap(binding_info_, other.binding_info_);
+ std::swap(export_info_, other.export_info_);
+ std::swap(origin_, other.origin_);
}
std::string Symbol::demangled_name() const {
@@ -83,18 +80,19 @@ std::string Symbol::demangled_name() const {
return LIEF::demangle(sym_name).value_or("");
} else {
#if defined(__unix__)
- int status;
+ int status = 0;
const std::string& name = this->name().c_str();
- char* demangled_name = abi::__cxa_demangle(name.c_str(), 0, 0, &status);
+ char* demangled_name =
+ abi::__cxa_demangle(name.c_str(), nullptr, nullptr, &status);
if (status == 0) {
std::string realname = demangled_name;
- free(demangled_name);
+ free(demangled_name); // NOLINT(cppcoreguidelines-no-malloc)
return realname;
}
return name;
#else
- return "";
+ return "";
#endif
}
}
@@ -119,23 +117,21 @@ const Symbol& Symbol::indirect_abs_local() {
}
std::ostream& operator<<(std::ostream& os, const Symbol& symbol) {
- os << fmt::format(
- "name={}, type={}, desc={}, value=0x{:08x}, origin={}",
- symbol.name(), symbol.raw_type(), symbol.description(), symbol.value(),
- to_string(symbol.origin())
- );
+ os << fmt::format("name={}, type={}, desc={}, value={:#010x}, origin={}",
+ symbol.name(), symbol.raw_type(), symbol.description(),
+ symbol.value(), to_string(symbol.origin()));
return os;
}
const char* to_string(Symbol::ORIGIN e) {
- #define ENTRY(X) std::pair(Symbol::ORIGIN::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNKNOWN),
- ENTRY(DYLD_EXPORT),
- ENTRY(DYLD_BIND),
- ENTRY(SYMTAB),
+#define ENTRY(X) std::pair(Symbol::ORIGIN::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(UNKNOWN),
+ ENTRY(DYLD_EXPORT),
+ ENTRY(DYLD_BIND),
+ ENTRY(SYMTAB),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -144,16 +140,12 @@ const char* to_string(Symbol::ORIGIN e) {
}
const char* to_string(Symbol::CATEGORY e) {
- #define ENTRY(X) std::pair(Symbol::CATEGORY::X, #X)
- STRING_MAP enums2str {
- ENTRY(NONE),
- ENTRY(LOCAL),
- ENTRY(EXTERNAL),
- ENTRY(UNDEFINED),
- ENTRY(INDIRECT_ABS),
- ENTRY(INDIRECT_LOCAL),
+#define ENTRY(X) std::pair(Symbol::CATEGORY::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(NONE), ENTRY(LOCAL), ENTRY(EXTERNAL),
+ ENTRY(UNDEFINED), ENTRY(INDIRECT_ABS), ENTRY(INDIRECT_LOCAL),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -162,16 +154,12 @@ const char* to_string(Symbol::CATEGORY e) {
}
const char* to_string(Symbol::TYPE e) {
- #define ENTRY(X) std::pair(Symbol::TYPE::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNDEFINED),
- ENTRY(ABSOLUTE_SYM),
- ENTRY(SECTION),
- ENTRY(UNDEFINED),
- ENTRY(PREBOUND),
- ENTRY(INDIRECT),
+#define ENTRY(X) std::pair(Symbol::TYPE::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(UNDEFINED), ENTRY(ABSOLUTE_SYM), ENTRY(SECTION),
+ ENTRY(UNDEFINED), ENTRY(PREBOUND), ENTRY(INDIRECT),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -179,5 +167,4 @@ const char* to_string(Symbol::TYPE e) {
return "UNKNOWN";
}
-} // namespace MachO
-} // namespace LIEF
+} // namespace LIEF::MachO
diff --git a/deps/LIEF/src/MachO/SymbolCommand.cpp b/deps/LIEF/src/MachO/SymbolCommand.cpp
index 59190cffc97..f726f474c93 100644
--- a/deps/LIEF/src/MachO/SymbolCommand.cpp
+++ b/deps/LIEF/src/MachO/SymbolCommand.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,16 +19,15 @@
#include "LIEF/MachO/SymbolCommand.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
SymbolCommand::SymbolCommand(const details::symtab_command& cmd) :
LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
symbols_offset_{cmd.symoff},
nb_symbols_{cmd.nsyms},
strings_offset_{cmd.stroff},
- strings_size_{cmd.strsize}
-{}
+ strings_size_{cmd.strsize} {}
void SymbolCommand::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -36,13 +35,13 @@ void SymbolCommand::accept(Visitor& visitor) const {
std::ostream& SymbolCommand::print(std::ostream& os) const {
LoadCommand::print(os) << '\n';
- os << fmt::format("symbol offset=0x{:06x}, nb symbols={}",
- symbol_offset(), numberof_symbols()) << '\n'
- << fmt::format("string offset=0x{:06x}, string size={}",
- strings_offset(), strings_size());
+ os << fmt::format("symbol offset={:#08x}, nb symbols={}", symbol_offset(),
+ numberof_symbols())
+ << '\n'
+ << fmt::format("string offset={:#08x}, string size={}", strings_offset(),
+ strings_size());
return os;
}
}
-}
diff --git a/deps/LIEF/src/MachO/ThreadCommand.cpp b/deps/LIEF/src/MachO/ThreadCommand.cpp
index b494e89b2ff..f4e7b683626 100644
--- a/deps/LIEF/src/MachO/ThreadCommand.cpp
+++ b/deps/LIEF/src/MachO/ThreadCommand.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,95 +13,117 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include <iomanip>
-
#include "logging.hpp"
#include "LIEF/Visitor.hpp"
+#include "LIEF/endianness_support.hpp"
#include "LIEF/MachO/ThreadCommand.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+namespace LIEF::MachO {
+
+template<class T>
+inline T from_big_endian(T value) {
+#ifdef __BYTE_ORDER__
+ #if defined(__ORDER_LITTLE_ENDIAN__) && \
+ (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+ return get_swapped_endian<T>(value);
+ #else
+ return value;
+ #endif
+#else
+ // No __BYTE_ORDER__ (e.g. MSVC): assume a little-endian host.
+ return get_swapped_endian<T>(value);
+#endif
+}
-ThreadCommand::ThreadCommand(const details::thread_command& cmd, Header::CPU_TYPE arch) :
+ThreadCommand::ThreadCommand(const details::thread_command& cmd,
+ Header::CPU_TYPE arch) :
LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
flavor_{cmd.flavor},
count_{cmd.count},
- architecture_{arch}
-{}
+ architecture_{arch} {}
-ThreadCommand::ThreadCommand(uint32_t flavor, uint32_t count, Header::CPU_TYPE arch) :
+ThreadCommand::ThreadCommand(uint32_t flavor, uint32_t count,
+ Header::CPU_TYPE arch) :
LoadCommand::LoadCommand{LoadCommand::TYPE::UNIXTHREAD,
- static_cast<uint32_t>(sizeof(details::thread_command) + count * sizeof(uint32_t))},
+ static_cast<uint32_t>(sizeof(details::thread_command) +
+ count * sizeof(uint32_t))},
flavor_{flavor},
count_{count},
architecture_{arch},
- state_(size() - sizeof(details::thread_command), 0)
-{
-}
+ state_(size() - sizeof(details::thread_command), 0) {}
uint64_t ThreadCommand::pc() const {
uint64_t entry = 0;
- switch(architecture_) {
+ switch (architecture_) {
case Header::CPU_TYPE::X86:
- {
- if (state_.size() < sizeof(details::x86_thread_state_t)) {
- return entry;
- }
- entry = reinterpret_cast<const details::x86_thread_state_t*>(state_.data())->eip;
- break;
+ {
+ if (state_.size() < sizeof(details::x86_thread_state_t)) {
+ return entry;
}
+ entry =
+ reinterpret_cast<const details::x86_thread_state_t*>(state_.data())->eip;
+ break;
+ }
case Header::CPU_TYPE::X86_64:
- {
- if (state_.size() < sizeof(details::x86_thread_state64_t)) {
- return entry;
- }
- entry = reinterpret_cast<const details::x86_thread_state64_t*>(state_.data())->rip;
- break;
+ {
+ if (state_.size() < sizeof(details::x86_thread_state64_t)) {
+ return entry;
}
+ entry = reinterpret_cast<const details::x86_thread_state64_t*>(state_.data())
+ ->rip;
+ break;
+ }
case Header::CPU_TYPE::ARM:
- {
- if (state_.size() < sizeof(details::arm_thread_state_t)) {
- return entry;
- }
- entry = reinterpret_cast<const details::arm_thread_state_t*>(state_.data())->r15;
- break;
+ {
+ if (state_.size() < sizeof(details::arm_thread_state_t)) {
+ return entry;
}
+ entry =
+ reinterpret_cast<const details::arm_thread_state_t*>(state_.data())->r15;
+ break;
+ }
case Header::CPU_TYPE::ARM64:
- {
- if (state_.size() < sizeof(details::arm_thread_state64_t)) {
- return entry;
- }
- entry = reinterpret_cast<const details::arm_thread_state64_t*>(state_.data())->pc;
- break;
+ {
+ if (state_.size() < sizeof(details::arm_thread_state64_t)) {
+ return entry;
}
+ entry = reinterpret_cast<const details::arm_thread_state64_t*>(state_.data())
+ ->pc;
+ break;
+ }
case Header::CPU_TYPE::POWERPC:
- {
- if (state_.size() < sizeof(details::ppc_thread_state_t)) {
- return entry;
- }
- entry = reinterpret_cast<const details::ppc_thread_state_t*>(state_.data())->srr0;
- break;
+ {
+ if (state_.size() < sizeof(details::ppc_thread_state_t)) {
+ return entry;
}
+ entry = from_big_endian(
+ reinterpret_cast<const details::ppc_thread_state_t*>(state_.data())->srr0
+ );
+ break;
+ }
case Header::CPU_TYPE::POWERPC64:
- {
- if (state_.size() < sizeof(details::ppc_thread_state64_t)) {
- return entry;
- }
- entry = reinterpret_cast<const details::ppc_thread_state64_t*>(state_.data())->srr0;
- break;
+ {
+ if (state_.size() < sizeof(details::ppc_thread_state64_t)) {
+ return entry;
}
+ entry = from_big_endian(
+ reinterpret_cast<const details::ppc_thread_state64_t*>(state_.data())
+ ->srr0
+ );
+ break;
+ }
default:
- {
- LIEF_ERR("Unknown architecture");
- }
+ {
+ LIEF_ERR("Unknown architecture");
+ }
}
return entry;
}
@@ -112,11 +134,10 @@ void ThreadCommand::accept(Visitor& visitor) const {
std::ostream& ThreadCommand::print(std::ostream& os) const {
LoadCommand::print(os) << '\n';
- os << fmt::format("flavor=0x{:x}, count=0x{:x}, pc=0x{:06x}",
- flavor(), count(), pc());
+ os << fmt::format("flavor={:#x}, count={:#x}, pc={:#08x}", flavor(), count(),
+ pc());
return os;
}
}
-}
diff --git a/deps/LIEF/src/MachO/ThreadLocalVariables.cpp b/deps/LIEF/src/MachO/ThreadLocalVariables.cpp
new file mode 100644
index 00000000000..e87875591cd
--- /dev/null
+++ b/deps/LIEF/src/MachO/ThreadLocalVariables.cpp
@@ -0,0 +1,113 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "LIEF/MachO/ThreadLocalVariables.hpp"
+#include "LIEF/MachO/Relocation.hpp"
+#include "LIEF/MachO/SegmentCommand.hpp"
+#include "logging.hpp"
+
+#include <spdlog/fmt/fmt.h>
+
+namespace LIEF::MachO {
+namespace details {
+template<class T>
+struct Thunk {
+ using ptr_t = T;
+ ptr_t func;
+ ptr_t key;
+ ptr_t offset;
+};
+
+using Thunk32 = Thunk<uint32_t>;
+using Thunk64 = Thunk<uint64_t>;
+
+static_assert(sizeof(Thunk64) == 24);
+static_assert(sizeof(Thunk32) == 12);
+
+template<class T>
+optional<ThreadLocalVariables::Thunk> get_impl(size_t idx,
+ span<const uint8_t> buffer) {
+ if (idx >= buffer.size() / sizeof(T)) {
+ return nullopt();
+ }
+
+ const uint64_t offset = idx * sizeof(T);
+ const auto* raw = reinterpret_cast<const T*>(buffer.data() + offset);
+ return ThreadLocalVariables::Thunk{raw->func, raw->key, raw->offset};
+}
+
+template<class T>
+bool set_impl(size_t idx, const ThreadLocalVariables::Thunk& thunk,
+ span<uint8_t> buffer) {
+ using ptr_t = typename T::ptr_t;
+
+ if (idx >= buffer.size() / sizeof(T)) {
+ return false;
+ }
+
+ const uint64_t offset = idx * sizeof(T);
+ auto* raw = reinterpret_cast<T*>(buffer.data() + offset);
+ raw->func = (ptr_t)thunk.func;
+ raw->key = (ptr_t)thunk.key;
+ raw->offset = (ptr_t)thunk.offset;
+ return true;
+}
+
+}
+
+inline bool is_32bit(const ThreadLocalVariables& thiz) {
+ // NOTE(romain): This check is not perfect but it simplifies
+ // the logic to identify which Thunk layout to use.
+ assert(thiz.segment() != nullptr);
+ LoadCommand::TYPE cmd = thiz.segment()->command();
+ assert(cmd == LoadCommand::TYPE::SEGMENT ||
+ cmd == LoadCommand::TYPE::SEGMENT_64);
+
+ return cmd == LoadCommand::TYPE::SEGMENT ? true : false;
+}
+
+
+ThreadLocalVariables::ThreadLocalVariables() :
+ LIEF::MachO::Section() {
+ type(TYPE::THREAD_LOCAL_VARIABLES);
+}
+
+optional<ThreadLocalVariables::Thunk> ThreadLocalVariables::get(size_t idx) const {
+ return is_32bit(*this) ? details::get_impl<details::Thunk32>(idx, content()) :
+ details::get_impl<details::Thunk64>(idx, content());
+}
+
+
+void ThreadLocalVariables::set(size_t idx, const Thunk& thunk) {
+ bool ok = is_32bit(*this) ?
+ details::set_impl<details::Thunk32>(idx, thunk, content()) :
+ details::set_impl<details::Thunk64>(idx, thunk, content());
+ if (!ok) {
+ LIEF_ERR("Can't set thunk {} at idx #{}", thunk.to_string(), idx);
+ }
+}
+
+size_t ThreadLocalVariables::nb_thunks() const {
+ auto sizeof_ =
+ is_32bit(*this) ? sizeof(details::Thunk32) : sizeof(details::Thunk64);
+ return content().size() / sizeof_;
+}
+
+std::string ThreadLocalVariables::Thunk::to_string() const {
+ return fmt::format("func={:#08x}, key={:#08x}, offset={:#08x}", func, key,
+ offset);
+}
+
+}
diff --git a/deps/LIEF/src/MachO/TrieNode.cpp b/deps/LIEF/src/MachO/TrieNode.cpp
index 217876c1558..b0d788c0608 100644
--- a/deps/LIEF/src/MachO/TrieNode.cpp
+++ b/deps/LIEF/src/MachO/TrieNode.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,15 +22,17 @@
#include "LIEF/MachO/ExportInfo.hpp"
#include "LIEF/iostream.hpp"
-namespace LIEF {
-namespace MachO {
+namespace LIEF::MachO {
-// Mainly inspired from LLVM: lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp
-TrieNode& TrieNode::add_symbol(const ExportInfo& info, TrieNode::node_list_t& nodes) {
+
+// Mainly inspired from LLVM:
+// lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp
+TrieNode::node_list_t TrieNode::add_symbol(const ExportInfo& info) {
+ node_list_t nodes;
if (!info.has_symbol()) {
- LIEF_ERR("Missing symbol in the Trie node");
- return *this;
+ LIEF_ERR("Missing symbol in trie node");
+ return nodes;
}
const Symbol& sym = *info.symbol();
std::string partial_str = sym.name().substr(cummulative_string_.size());
@@ -40,15 +42,18 @@ TrieNode& TrieNode::add_symbol(const ExportInfo& info, TrieNode::node_list_t& no
std::string edge_string = edge->substr;
if (partial_str.find(edge_string) == 0) {
- edge->child->add_symbol(info, nodes);
- return *this;
+ node_list_t subnodes = edge->child->add_symbol(info);
+ nodes.insert(nodes.end(), std::make_move_iterator(subnodes.begin()),
+ std::make_move_iterator(subnodes.end()));
+ return nodes;
}
for (int n = edge_string.size() - 1; n > 0; --n) {
if (partial_str.substr(0, n) == edge_string.substr(0, n)) {
std::string b_node_str = edge->child->cummulative_string_;
- b_node_str = b_node_str.substr(0, b_node_str.size() + n - edge_string.size()); // drop front
+ b_node_str = b_node_str.substr(0, b_node_str.size() + n -
+ edge_string.size()); // drop front
std::unique_ptr<TrieNode> b_new_node = TrieNode::create(b_node_str);
@@ -64,10 +69,11 @@ TrieNode& TrieNode::add_symbol(const ExportInfo& info, TrieNode::node_list_t& no
std::unique_ptr<TrieEdge> bc_edge = TrieEdge::create(bc_edge_str, c_node);
b_new_node->children_.push_back(std::move(bc_edge));
- b_new_node->add_symbol(info, nodes);
-
+ node_list_t subnodes = b_new_node->add_symbol(info);
+ nodes.insert(nodes.end(), std::make_move_iterator(subnodes.begin()),
+ std::make_move_iterator(subnodes.end()));
nodes.push_back(std::move(b_new_node));
- return *this;
+ return nodes;
}
}
}
@@ -84,8 +90,8 @@ TrieNode& TrieNode::add_symbol(const ExportInfo& info, TrieNode::node_list_t& no
std::unique_ptr<TrieEdge> new_edge = TrieEdge::create(partial_str, *new_node);
new_node->address_ = info.address();
- new_node->flags_ = info.flags();
- new_node->other_ = info.other();
+ new_node->flags_ = info.flags();
+ new_node->other_ = info.other();
if (info.has(ExportInfo::FLAGS::REEXPORT)) {
new_node->imported_name_ = "";
@@ -98,48 +104,55 @@ TrieNode& TrieNode::add_symbol(const ExportInfo& info, TrieNode::node_list_t& no
children_.push_back(std::move(new_edge));
nodes.push_back(std::move(new_node));
- return *this;
+ return nodes;
}
-// Mainly inspired from LLVM: lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp - addOrderedNodes
-// Add info in nodes making sure every parents node is inserted before
-TrieNode& TrieNode::add_ordered_nodes(const ExportInfo& info, std::vector<TrieNode*>& nodes) {
+// Mainly inspired from LLVM:
+// lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp - addOrderedNodes
+// Add info in nodes making sure every parent node is inserted before
+std::vector<TrieNode*> TrieNode::add_ordered_nodes(const ExportInfo& info) {
+ std::vector<TrieNode*> nodes;
if (!ordered_) {
nodes.push_back(this);
ordered_ = true;
}
if (!info.has_symbol()) {
- LIEF_ERR("Missing symbol can process add_ordered_nodes");
- return *this;
+ LIEF_ERR("Missing symbol for add_ordered_nodes");
+ return nodes;
}
- std::string partial_str = info.symbol()->name().substr(cummulative_string_.size());
+ std::string partial_str =
+ info.symbol()->name().substr(cummulative_string_.size());
for (std::unique_ptr<TrieEdge>& edge : children_) {
std::string edge_string = edge->substr;
if (partial_str.find(edge_string) == 0) {
- edge->child->add_ordered_nodes(info, nodes);
- return *this;
+ std::vector<TrieNode*> subnodes = edge->child->add_ordered_nodes(info);
+ nodes.insert(nodes.end(), subnodes.begin(), subnodes.end());
+ return nodes;
}
}
- return *this;
+ return nodes;
}
-// Mainly inspired from LLVM: lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp - updateOffset
+// Mainly inspired from LLVM:
+// lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp - updateOffset
bool TrieNode::update_offset(uint32_t& offset) {
uint32_t node_size = 1;
if (has_export_info_) {
- if ((flags_ & static_cast<uint64_t>(ExportInfo::FLAGS::REEXPORT)) != 0u) {
+ if ((flags_ & static_cast<uint64_t>(ExportInfo::FLAGS::REEXPORT)) != 0u) {
node_size = vector_iostream::uleb128_size(flags_);
node_size += vector_iostream::uleb128_size(other_);
node_size += imported_name_.size() + 1;
} else {
node_size = vector_iostream::uleb128_size(flags_);
node_size += vector_iostream::uleb128_size(address_);
- if ((flags_ & static_cast<uint64_t>(ExportInfo::FLAGS::STUB_AND_RESOLVER)) != 0u) {
+ if ((flags_ & static_cast<uint64_t>(ExportInfo::FLAGS::STUB_AND_RESOLVER)) !=
+ 0u)
+ {
node_size += vector_iostream::uleb128_size(other_);
}
}
@@ -169,52 +182,48 @@ TrieNode& TrieNode::write(vector_iostream& buffer) {
node_size += vector_iostream::uleb128_size(other_);
node_size += imported_name_.size() + 1;
- buffer
- .write<uint8_t>(node_size)
- .write_uleb128(flags_)
- .write_uleb128(other_)
- .write(imported_name_);
+ buffer.write<uint8_t>(node_size)
+ .write_uleb128(flags_)
+ .write_uleb128(other_)
+ .write(imported_name_);
} else {
uint32_t node_size = 0;
node_size += vector_iostream::uleb128_size(flags_);
node_size += vector_iostream::uleb128_size(other_);
node_size += 1;
- buffer
- .write<uint8_t>(node_size)
- .write_uleb128(flags_)
- .write_uleb128(other_)
- .write<uint8_t>('\0');
+ buffer.write<uint8_t>(node_size)
+ .write_uleb128(flags_)
+ .write_uleb128(other_)
+ .write<uint8_t>('\0');
}
- }
- else if ((flags_ & static_cast<uint64_t>(ExportInfo::FLAGS::STUB_AND_RESOLVER)) != 0u) {
+ } else if ((flags_ &
+ static_cast<uint64_t>(ExportInfo::FLAGS::STUB_AND_RESOLVER)) != 0u)
+ {
uint32_t node_size = 0;
node_size += vector_iostream::uleb128_size(flags_);
node_size += vector_iostream::uleb128_size(address_);
node_size += vector_iostream::uleb128_size(other_);
- buffer
- .write<uint8_t>(node_size)
- .write_uleb128(flags_)
- .write_uleb128(address_)
- .write_uleb128(other_);
- }
- else {
+ buffer.write<uint8_t>(node_size)
+ .write_uleb128(flags_)
+ .write_uleb128(address_)
+ .write_uleb128(other_);
+ } else {
uint32_t node_size = 0;
node_size += vector_iostream::uleb128_size(flags_);
node_size += vector_iostream::uleb128_size(address_);
- buffer
- .write<uint8_t>(node_size)
- .write_uleb128(flags_)
- .write_uleb128(address_);
+ buffer.write<uint8_t>(node_size).write_uleb128(flags_).write_uleb128(
+ address_
+ );
}
} else { // not has_export_info_
buffer.write<uint8_t>(0);
}
- // Number of childs
+ // Number of children
if (children_.size() >= 256) {
LIEF_WARN("Too many children ({:d})", children_.size());
return *this;
@@ -222,10 +231,8 @@ TrieNode& TrieNode::write(vector_iostream& buffer) {
buffer.write<uint8_t>(children_.size());
for (std::unique_ptr<TrieEdge>& edge : children_) {
- buffer.write(edge->substr)
- .write_uleb128(edge->child->trie_offset_);
+ buffer.write(edge->substr).write_uleb128(edge->child->trie_offset_);
}
return *this;
}
}
-}
diff --git a/deps/LIEF/src/MachO/TrieNode.hpp b/deps/LIEF/src/MachO/TrieNode.hpp
index 6bdde9ec6b0..3eb1eec8474 100644
--- a/deps/LIEF/src/MachO/TrieNode.hpp
+++ b/deps/LIEF/src/MachO/TrieNode.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -37,8 +37,7 @@ class LIEF_LOCAL TrieEdge {
TrieEdge() = delete;
TrieEdge(std::string str, TrieNode& node) :
substr(std::move(str)),
- child(&node)
- {}
+ child(&node) {}
~TrieEdge() = default;
@@ -60,13 +59,12 @@ class LIEF_LOCAL TrieNode {
TrieNode() = delete;
TrieNode(std::string str) :
- cummulative_string_(std::move(str))
- {}
+ cummulative_string_(std::move(str)) {}
~TrieNode() = default;
- TrieNode& add_symbol(const ExportInfo& info, node_list_t& nodes);
- TrieNode& add_ordered_nodes(const ExportInfo& info, std::vector<TrieNode*>& nodes);
+ node_list_t add_symbol(const ExportInfo& info);
+ std::vector<TrieNode*> add_ordered_nodes(const ExportInfo& info);
bool update_offset(uint32_t& offset);
TrieNode& write(vector_iostream& buffer);
diff --git a/deps/LIEF/src/MachO/TwoLevelHints.cpp b/deps/LIEF/src/MachO/TwoLevelHints.cpp
index a859b6ef561..119f28568c1 100644
--- a/deps/LIEF/src/MachO/TwoLevelHints.cpp
+++ b/deps/LIEF/src/MachO/TwoLevelHints.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,14 +18,13 @@
#include "LIEF/MachO/TwoLevelHints.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
TwoLevelHints::TwoLevelHints(const details::twolevel_hints_command& cmd) :
LoadCommand::LoadCommand{LoadCommand::TYPE(cmd.cmd), cmd.cmdsize},
offset_{cmd.offset},
- original_nb_hints_{cmd.nhints}
-{}
+ original_nb_hints_{cmd.nhints} {}
void TwoLevelHints::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -38,4 +37,3 @@ std::ostream& TwoLevelHints::print(std::ostream& os) const {
}
-}
diff --git a/deps/LIEF/src/MachO/UUIDCommand.cpp b/deps/LIEF/src/MachO/UUIDCommand.cpp
index 4d1a7ebfdf6..f26960fe365 100644
--- a/deps/LIEF/src/MachO/UUIDCommand.cpp
+++ b/deps/LIEF/src/MachO/UUIDCommand.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,13 +19,12 @@
#include "LIEF/MachO/UUIDCommand.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
UUIDCommand::UUIDCommand(const details::uuid_command& uuid) :
- LoadCommand::LoadCommand{LoadCommand::TYPE(uuid.cmd), uuid.cmdsize}
-{
+ LoadCommand::LoadCommand{LoadCommand::TYPE(uuid.cmd), uuid.cmdsize} {
std::copy(std::begin(uuid.uuid), std::end(uuid.uuid), std::begin(uuid_));
}
@@ -44,4 +43,3 @@ std::ostream& UUIDCommand::print(std::ostream& os) const {
}
-}
diff --git a/deps/LIEF/src/MachO/UnknownCommand.cpp b/deps/LIEF/src/MachO/UnknownCommand.cpp
index 9c4301bde71..34d00b92464 100644
--- a/deps/LIEF/src/MachO/UnknownCommand.cpp
+++ b/deps/LIEF/src/MachO/UnknownCommand.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2024 - 2025 R. Thomas
+/* Copyright 2024 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/src/MachO/VersionMin.cpp b/deps/LIEF/src/MachO/VersionMin.cpp
index e80509ca4a1..e9571997ac3 100644
--- a/deps/LIEF/src/MachO/VersionMin.cpp
+++ b/deps/LIEF/src/MachO/VersionMin.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,23 +20,18 @@
#include "LIEF/MachO/VersionMin.hpp"
#include "MachO/Structures.hpp"
-namespace LIEF {
-namespace MachO {
+
+namespace LIEF::MachO {
VersionMin::VersionMin(const details::version_min_command& version_cmd) :
- LoadCommand::LoadCommand{LoadCommand::TYPE(version_cmd.cmd), version_cmd.cmdsize},
- version_{{
- static_cast<uint32_t>((version_cmd.version >> 16) & 0xFFFF),
- static_cast<uint32_t>((version_cmd.version >> 8) & 0xFF),
- static_cast<uint32_t>((version_cmd.version >> 0) & 0xFF)
- }},
- sdk_{{
- static_cast<uint32_t>((version_cmd.sdk >> 16) & 0xFFFF),
- static_cast<uint32_t>((version_cmd.sdk >> 8) & 0xFF),
- static_cast<uint32_t>((version_cmd.sdk >> 0) & 0xFF)
- }}
-{
-}
+ LoadCommand::LoadCommand{LoadCommand::TYPE(version_cmd.cmd),
+ version_cmd.cmdsize},
+ version_{{static_cast<uint32_t>((version_cmd.version >> 16) & 0xFFFF),
+ static_cast<uint32_t>((version_cmd.version >> 8) & 0xFF),
+ static_cast<uint32_t>((version_cmd.version >> 0) & 0xFF)}},
+ sdk_{{static_cast<uint32_t>((version_cmd.sdk >> 16) & 0xFFFF),
+ static_cast<uint32_t>((version_cmd.sdk >> 8) & 0xFF),
+ static_cast<uint32_t>((version_cmd.sdk >> 0) & 0xFF)}} {}
void VersionMin::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -51,4 +46,3 @@ std::ostream& VersionMin::print(std::ostream& os) const {
}
-}
diff --git a/deps/LIEF/src/MachO/dyld_opcodes.hpp b/deps/LIEF/src/MachO/dyld_opcodes.hpp
new file mode 100644
index 00000000000..7a945f7acb1
--- /dev/null
+++ b/deps/LIEF/src/MachO/dyld_opcodes.hpp
@@ -0,0 +1,49 @@
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef LIEF_MACHO_DYLD_OPCODES_H
+#define LIEF_MACHO_DYLD_OPCODES_H
+#include <cstdint>
+
+#include "logging.hpp"
+#include "LIEF/MachO/SegmentCommand.hpp"
+
+namespace LIEF::MachO {
+
+template<class T>
+inline T safe_dyld_opcode_count(const SegmentCommand* segment,
+ uint64_t segment_offset, uint64_t pointer_size,
+ uint64_t count) {
+ if (segment == nullptr || pointer_size == 0) {
+ return count;
+ }
+ const uint64_t seg_size = segment->content().size();
+ uint64_t remaining = 0;
+ if (segment_offset < seg_size) {
+ remaining = seg_size - segment_offset;
+ }
+
+ const uint64_t max_count = remaining / pointer_size + 1;
+
+ if (count > max_count) {
+ LIEF_WARN("dyld opcode repeat count ({}) is too large ({})", count, max_count);
+ return static_cast<T>(max_count);
+ }
+
+ return static_cast<T>(count);
+}
+
+}
+#endif
diff --git a/deps/LIEF/src/MachO/endianness_support.cpp b/deps/LIEF/src/MachO/endianness_support.cpp
index 426fb958109..1d485729283 100644
--- a/deps/LIEF/src/MachO/endianness_support.cpp
+++ b/deps/LIEF/src/MachO/endianness_support.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -30,7 +30,9 @@ void swap_endian<MachO::details::mach_header>(MachO::details::mach_header* hdr)
}
template<>
-void swap_endian<MachO::details::mach_header_64>(MachO::details::mach_header_64* hdr) {
+void swap_endian<MachO::details::mach_header_64>(
+ MachO::details::mach_header_64* hdr
+) {
swap_endian(&hdr->magic);
swap_endian(&hdr->cputype);
swap_endian(&hdr->cpusubtype);
@@ -47,7 +49,7 @@ void swap_endian<MachO::details::load_command>(MachO::details::load_command* hdr
swap_endian(&hdr->cmdsize);
}
-template <typename segment_command>
+template<typename segment_command>
void swap_endian_seg(segment_command* cmd) {
swap_endian(&cmd->cmd);
swap_endian(&cmd->cmdsize);
@@ -62,16 +64,20 @@ void swap_endian_seg(segment_command* cmd) {
}
template<>
-void swap_endian<MachO::details::segment_command_32>(MachO::details::segment_command_32* hdr) {
+void swap_endian<MachO::details::segment_command_32>(
+ MachO::details::segment_command_32* hdr
+) {
swap_endian_seg(hdr);
}
template<>
-void swap_endian<MachO::details::segment_command_64>(MachO::details::segment_command_64* hdr) {
+void swap_endian<MachO::details::segment_command_64>(
+ MachO::details::segment_command_64* hdr
+) {
swap_endian_seg(hdr);
}
-template <typename section>
+template<typename section>
void swap_endian_sec(section* hdr) {
swap_endian(&hdr->addr);
swap_endian(&hdr->size);
@@ -96,7 +102,9 @@ void swap_endian<MachO::details::section_64>(MachO::details::section_64* hdr) {
}
template<>
-void swap_endian<MachO::details::dylib_command>(MachO::details::dylib_command* hdr) {
+void swap_endian<MachO::details::dylib_command>(
+ MachO::details::dylib_command* hdr
+) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
swap_endian(&hdr->name);
@@ -106,35 +114,45 @@ void swap_endian<MachO::details::dylib_command>(MachO::details::dylib_command* h
}
template<>
-void swap_endian<MachO::details::sub_framework_command>(MachO::details::sub_framework_command* hdr) {
+void swap_endian<MachO::details::sub_framework_command>(
+ MachO::details::sub_framework_command* hdr
+) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
swap_endian(&hdr->umbrella);
}
template<>
-void swap_endian<MachO::details::sub_client_command>(MachO::details::sub_client_command* hdr) {
+void swap_endian<MachO::details::sub_client_command>(
+ MachO::details::sub_client_command* hdr
+) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
swap_endian(&hdr->client);
}
template<>
-void swap_endian<MachO::details::sub_umbrella_command>(MachO::details::sub_umbrella_command* hdr) {
+void swap_endian<MachO::details::sub_umbrella_command>(
+ MachO::details::sub_umbrella_command* hdr
+) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
swap_endian(&hdr->sub_umbrella);
}
template<>
-void swap_endian<MachO::details::sub_library_command>(MachO::details::sub_library_command* hdr) {
+void swap_endian<MachO::details::sub_library_command>(
+ MachO::details::sub_library_command* hdr
+) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
swap_endian(&hdr->sub_library);
}
template<>
-void swap_endian<MachO::details::prebound_dylib_command>(MachO::details::prebound_dylib_command* hdr) {
+void swap_endian<MachO::details::prebound_dylib_command>(
+ MachO::details::prebound_dylib_command* hdr
+) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
swap_endian(&hdr->name);
@@ -143,21 +161,25 @@ void swap_endian<MachO::details::prebound_dylib_command>(MachO::details::preboun
}
template<>
-void swap_endian<MachO::details::dylinker_command>(MachO::details::dylinker_command* hdr) {
+void swap_endian<MachO::details::dylinker_command>(
+ MachO::details::dylinker_command* hdr
+) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
swap_endian(&hdr->name);
}
template<>
-void swap_endian<MachO::details::thread_command>(MachO::details::thread_command* hdr) {
+void swap_endian<MachO::details::thread_command>(
+ MachO::details::thread_command* hdr
+) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
swap_endian(&hdr->flavor);
swap_endian(&hdr->count);
}
-template <typename routine>
+template<typename routine>
void swap_endian_routine(routine* hdr) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
@@ -172,17 +194,23 @@ void swap_endian_routine(routine* hdr) {
}
template<>
-void swap_endian<MachO::details::routines_command_32>(MachO::details::routines_command_32* hdr) {
+void swap_endian<MachO::details::routines_command_32>(
+ MachO::details::routines_command_32* hdr
+) {
return swap_endian_routine(hdr);
}
template<>
-void swap_endian<MachO::details::routines_command_64>(MachO::details::routines_command_64* hdr) {
+void swap_endian<MachO::details::routines_command_64>(
+ MachO::details::routines_command_64* hdr
+) {
return swap_endian_routine(hdr);
}
template<>
-void swap_endian<MachO::details::symtab_command>(MachO::details::symtab_command* hdr) {
+void swap_endian<MachO::details::symtab_command>(
+ MachO::details::symtab_command* hdr
+) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
swap_endian(&hdr->symoff);
@@ -192,7 +220,9 @@ void swap_endian<MachO::details::symtab_command>(MachO::details::symtab_command*
}
template<>
-void swap_endian<MachO::details::dysymtab_command>(MachO::details::dysymtab_command* hdr) {
+void swap_endian<MachO::details::dysymtab_command>(
+ MachO::details::dysymtab_command* hdr
+) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
swap_endian(&hdr->ilocalsym);
@@ -216,12 +246,14 @@ void swap_endian<MachO::details::dysymtab_command>(MachO::details::dysymtab_comm
}
template<>
-void swap_endian<MachO::details::dylib_table_of_contents>(MachO::details::dylib_table_of_contents* hdr) {
+void swap_endian<MachO::details::dylib_table_of_contents>(
+ MachO::details::dylib_table_of_contents* hdr
+) {
swap_endian(&hdr->symbol_index);
swap_endian(&hdr->module_index);
}
-template <typename dylib_module>
+template<typename dylib_module>
void swap_endian_module(dylib_module* hdr) {
swap_endian(&hdr->module_name);
swap_endian(&hdr->iextdefsym);
@@ -239,22 +271,30 @@ void swap_endian_module(dylib_module* hdr) {
}
template<>
-void swap_endian<MachO::details::dylib_module_64>(MachO::details::dylib_module_64* hdr) {
+void swap_endian<MachO::details::dylib_module_64>(
+ MachO::details::dylib_module_64* hdr
+) {
return swap_endian_module(hdr);
}
template<>
-void swap_endian<MachO::details::dylib_module_32>(MachO::details::dylib_module_32* hdr) {
+void swap_endian<MachO::details::dylib_module_32>(
+ MachO::details::dylib_module_32* hdr
+) {
return swap_endian_module(hdr);
}
template<>
-void swap_endian<MachO::details::dylib_reference>(MachO::details::dylib_reference* hdr) {
- swap_endian((uint32_t*)hdr);
+void swap_endian<MachO::details::dylib_reference>(
+ MachO::details::dylib_reference* hdr
+) {
+ swap_endian(reinterpret_cast<uint32_t*>(hdr));
}
template<>
-void swap_endian<MachO::details::twolevel_hints_command>(MachO::details::twolevel_hints_command* hdr) {
+void swap_endian<MachO::details::twolevel_hints_command>(
+ MachO::details::twolevel_hints_command* hdr
+) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
swap_endian(&hdr->offset);
@@ -262,13 +302,17 @@ void swap_endian<MachO::details::twolevel_hints_command>(MachO::details::twoleve
}
template<>
-void swap_endian<MachO::details::twolevel_hint>(MachO::details::twolevel_hint* hdr) {
- swap_endian((uint32_t*)hdr);
+void swap_endian<MachO::details::twolevel_hint>(
+ MachO::details::twolevel_hint* hdr
+) {
+ swap_endian(reinterpret_cast<uint32_t*>(hdr));
}
template<>
-void swap_endian<MachO::details::prebind_cksum_command>(MachO::details::prebind_cksum_command* hdr) {
+void swap_endian<MachO::details::prebind_cksum_command>(
+ MachO::details::prebind_cksum_command* hdr
+) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
swap_endian(&hdr->cksum);
@@ -281,14 +325,18 @@ void swap_endian<MachO::details::uuid_command>(MachO::details::uuid_command* hdr
}
template<>
-void swap_endian<MachO::details::rpath_command>(MachO::details::rpath_command* hdr) {
+void swap_endian<MachO::details::rpath_command>(
+ MachO::details::rpath_command* hdr
+) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
swap_endian(&hdr->path);
}
template<>
-void swap_endian<MachO::details::linkedit_data_command>(MachO::details::linkedit_data_command* hdr) {
+void swap_endian<MachO::details::linkedit_data_command>(
+ MachO::details::linkedit_data_command* hdr
+) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
swap_endian(&hdr->dataoff);
@@ -296,21 +344,36 @@ void swap_endian<MachO::details::linkedit_data_command>(MachO::details::linkedit
}
template<>
-void swap_endian<MachO::details::data_in_code_entry>(MachO::details::data_in_code_entry* hdr) {
+void swap_endian<MachO::details::data_in_code_entry>(
+ MachO::details::data_in_code_entry* hdr
+) {
swap_endian(&hdr->offset);
swap_endian(&hdr->length);
swap_endian(&hdr->kind);
}
template<>
-void swap_endian<MachO::details::source_version_command>(MachO::details::source_version_command* hdr) {
+void swap_endian<MachO::details::note_command>(MachO::details::note_command* hdr) {
+ swap_endian(&hdr->cmd);
+ swap_endian(&hdr->cmdsize);
+ // hdr->data_owner is a raw char array: skip byte-swapped.
+ swap_endian(&hdr->offset);
+ swap_endian(&hdr->size);
+}
+
+template<>
+void swap_endian<MachO::details::source_version_command>(
+ MachO::details::source_version_command* hdr
+) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
swap_endian(&hdr->version);
}
template<>
-void swap_endian<MachO::details::encryption_info_command>(MachO::details::encryption_info_command* hdr) {
+void swap_endian<MachO::details::encryption_info_command>(
+ MachO::details::encryption_info_command* hdr
+) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
swap_endian(&hdr->cryptoff);
@@ -319,7 +382,9 @@ void swap_endian<MachO::details::encryption_info_command>(MachO::details::encryp
}
template<>
-void swap_endian<MachO::details::version_min_command>(MachO::details::version_min_command* hdr) {
+void swap_endian<MachO::details::version_min_command>(
+ MachO::details::version_min_command* hdr
+) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
swap_endian(&hdr->version);
@@ -327,7 +392,9 @@ void swap_endian<MachO::details::version_min_command>(MachO::details::version_mi
}
template<>
-void swap_endian<MachO::details::build_version_command>(MachO::details::build_version_command* hdr) {
+void swap_endian<MachO::details::build_version_command>(
+ MachO::details::build_version_command* hdr
+) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
swap_endian(&hdr->platform);
@@ -337,13 +404,17 @@ void swap_endian<MachO::details::build_version_command>(MachO::details::build_ve
}
template<>
-void swap_endian<MachO::details::build_tool_version>(MachO::details::build_tool_version* hdr) {
+void swap_endian<MachO::details::build_tool_version>(
+ MachO::details::build_tool_version* hdr
+) {
swap_endian(&hdr->tool);
swap_endian(&hdr->version);
}
template<>
-void swap_endian<MachO::details::dyld_info_command>(MachO::details::dyld_info_command* hdr) {
+void swap_endian<MachO::details::dyld_info_command>(
+ MachO::details::dyld_info_command* hdr
+) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
swap_endian(&hdr->rebase_off);
@@ -359,14 +430,18 @@ void swap_endian<MachO::details::dyld_info_command>(MachO::details::dyld_info_co
}
template<>
-void swap_endian<MachO::details::linker_option_command>(MachO::details::linker_option_command* hdr) {
+void swap_endian<MachO::details::linker_option_command>(
+ MachO::details::linker_option_command* hdr
+) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
swap_endian(&hdr->count);
}
template<>
-void swap_endian<MachO::details::symseg_command>(MachO::details::symseg_command* hdr) {
+void swap_endian<MachO::details::symseg_command>(
+ MachO::details::symseg_command* hdr
+) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
swap_endian(&hdr->offset);
@@ -374,13 +449,17 @@ void swap_endian<MachO::details::symseg_command>(MachO::details::symseg_command*
}
template<>
-void swap_endian<MachO::details::ident_command>(MachO::details::ident_command* hdr) {
+void swap_endian<MachO::details::ident_command>(
+ MachO::details::ident_command* hdr
+) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
}
template<>
-void swap_endian<MachO::details::fvmfile_command>(MachO::details::fvmfile_command* hdr) {
+void swap_endian<MachO::details::fvmfile_command>(
+ MachO::details::fvmfile_command* hdr
+) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
swap_endian(&hdr->name);
@@ -388,7 +467,9 @@ void swap_endian<MachO::details::fvmfile_command>(MachO::details::fvmfile_comman
}
template<>
-void swap_endian<MachO::details::entry_point_command>(MachO::details::entry_point_command* hdr) {
+void swap_endian<MachO::details::entry_point_command>(
+ MachO::details::entry_point_command* hdr
+) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
swap_endian(&hdr->entryoff);
@@ -396,7 +477,9 @@ void swap_endian<MachO::details::entry_point_command>(MachO::details::entry_poin
}
template<>
-void swap_endian<MachO::details::fileset_entry_command>(MachO::details::fileset_entry_command* hdr) {
+void swap_endian<MachO::details::fileset_entry_command>(
+ MachO::details::fileset_entry_command* hdr
+) {
swap_endian(&hdr->cmd);
swap_endian(&hdr->cmdsize);
swap_endian(&hdr->vmaddr);
@@ -406,7 +489,9 @@ void swap_endian<MachO::details::fileset_entry_command>(MachO::details::fileset_
}
template<>
-void swap_endian<MachO::details::relocation_info>(MachO::details::relocation_info* hdr) {
+void swap_endian<MachO::details::relocation_info>(
+ MachO::details::relocation_info* hdr
+) {
struct mirror_t {
int32_t A;
uint32_t B;
@@ -417,7 +502,9 @@ void swap_endian<MachO::details::relocation_info>(MachO::details::relocation_inf
}
template<>
-void swap_endian<MachO::details::scattered_relocation_info>(MachO::details::scattered_relocation_info* hdr) {
+void swap_endian<MachO::details::scattered_relocation_info>(
+ MachO::details::scattered_relocation_info* hdr
+) {
struct mirror_t {
int32_t A;
uint32_t B;
@@ -426,7 +513,7 @@ void swap_endian<MachO::details::scattered_relocation_info>(MachO::details::scat
swap_endian(&mirror->A);
}
-template <typename nlist>
+template<typename nlist>
void swap_endian_nlist(nlist* hdr) {
swap_endian(&hdr->n_strx);
swap_endian(&hdr->n_type);
@@ -446,7 +533,9 @@ void swap_endian<MachO::details::nlist_64>(MachO::details::nlist_64* hdr) {
}
template<>
-void swap_endian<MachO::details::x86_thread_state64_t>(MachO::details::x86_thread_state64_t* hdr) {
+void swap_endian<MachO::details::x86_thread_state64_t>(
+ MachO::details::x86_thread_state64_t* hdr
+) {
swap_endian(&hdr->rax);
swap_endian(&hdr->rbx);
swap_endian(&hdr->rcx);
@@ -471,7 +560,9 @@ void swap_endian<MachO::details::x86_thread_state64_t>(MachO::details::x86_threa
}
template<>
-void swap_endian<MachO::details::x86_thread_state_t>(MachO::details::x86_thread_state_t* hdr) {
+void swap_endian<MachO::details::x86_thread_state_t>(
+ MachO::details::x86_thread_state_t* hdr
+) {
swap_endian(&hdr->eax);
swap_endian(&hdr->ebx);
swap_endian(&hdr->ecx);
@@ -491,7 +582,9 @@ void swap_endian<MachO::details::x86_thread_state_t>(MachO::details::x86_thread_
}
template<>
-void swap_endian<MachO::details::arm_thread_state_t>(MachO::details::arm_thread_state_t* hdr) {
+void swap_endian<MachO::details::arm_thread_state_t>(
+ MachO::details::arm_thread_state_t* hdr
+) {
swap_endian(&hdr->r0);
swap_endian(&hdr->r1);
swap_endian(&hdr->r2);
@@ -512,9 +605,11 @@ void swap_endian<MachO::details::arm_thread_state_t>(MachO::details::arm_thread_
}
template<>
-void swap_endian<MachO::details::arm_thread_state64_t>(MachO::details::arm_thread_state64_t* hdr) {
- for (size_t i = 0; i < 29; ++i) {
- swap_endian(&hdr->x[i]);
+void swap_endian<MachO::details::arm_thread_state64_t>(
+ MachO::details::arm_thread_state64_t* hdr
+) {
+ for (uint64_t& i : hdr->x) {
+ swap_endian(&i);
}
swap_endian(&hdr->fp);
swap_endian(&hdr->lr);
@@ -524,11 +619,13 @@ void swap_endian<MachO::details::arm_thread_state64_t>(MachO::details::arm_threa
}
template<>
-void swap_endian<MachO::details::ppc_thread_state64_t>(MachO::details::ppc_thread_state64_t* hdr) {
+void swap_endian<MachO::details::ppc_thread_state64_t>(
+ MachO::details::ppc_thread_state64_t* hdr
+) {
swap_endian(&hdr->srr0);
swap_endian(&hdr->srr1);
- for (size_t i = 0; i < 32; ++i) {
- swap_endian(&hdr->r[i]);
+ for (uint64_t& i : hdr->r) {
+ swap_endian(&i);
}
swap_endian(&hdr->cr);
swap_endian(&hdr->xer);
@@ -538,11 +635,13 @@ void swap_endian<MachO::details::ppc_thread_state64_t>(MachO::details::ppc_threa
}
template<>
-void swap_endian<MachO::details::ppc_thread_state_t>(MachO::details::ppc_thread_state_t* hdr) {
+void swap_endian<MachO::details::ppc_thread_state_t>(
+ MachO::details::ppc_thread_state_t* hdr
+) {
swap_endian(&hdr->srr0);
swap_endian(&hdr->srr1);
- for (size_t i = 0; i < 32; ++i) {
- swap_endian(&hdr->r[i]);
+ for (unsigned int& i : hdr->r) {
+ swap_endian(&i);
}
swap_endian(&hdr->cr);
swap_endian(&hdr->xer);
diff --git a/deps/LIEF/src/MachO/exports_trie.cpp b/deps/LIEF/src/MachO/exports_trie.cpp
index 1bd46e3d2a5..19e4d921a90 100644
--- a/deps/LIEF/src/MachO/exports_trie.cpp
+++ b/deps/LIEF/src/MachO/exports_trie.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,16 +17,28 @@
#include "LIEF/BinaryStream/BinaryStream.hpp"
#include "LIEF/MachO/ExportInfo.hpp"
+#include <algorithm>
+#include <unordered_set>
+
+#include <spdlog/fmt/fmt.h>
+
#include "logging.hpp"
#include "MachO/exports_trie.hpp"
#include "MachO/TrieNode.hpp"
-namespace LIEF {
-namespace MachO {
-void show_trie(std::ostream& output, std::string output_prefix,
- BinaryStream& stream, uint64_t start, uint64_t end, const std::string& prefix) {
+namespace LIEF::MachO {
+
+void show_trie_impl(std::ostream& output, std::string output_prefix,
+ BinaryStream& stream, uint64_t start, uint64_t end,
+ const std::string& prefix,
+ std::unordered_set<uint64_t>& visited, size_t depth) {
+ constexpr size_t MAX_TRIE_DEPTH = 60;
+
+ if (depth > MAX_TRIE_DEPTH) {
+ return;
+ }
if (stream.pos() >= end) {
return;
@@ -36,22 +48,23 @@ void show_trie(std::ostream& output, std::string output_prefix,
return;
}
- uint8_t terminal_size = 0;
- if (auto res = stream.read<uint8_t>()) {
- terminal_size = *res;
- } else {
- LIEF_ERR("Can't read terminal size");
+ if (!visited.insert(stream.pos()).second) {
return;
}
- uint64_t children_offset = stream.pos() + terminal_size;
+ auto terminal_size = stream.read<uint8_t>();
+ if (!terminal_size) {
+ LIEF_ERR("Failed to read terminal size");
+ return;
+ }
- if (terminal_size != 0) {
- ExportInfo::FLAGS flags;
- if (auto res = stream.read_uleb128()) {
- flags = ExportInfo::FLAGS(*res);
- } else {
- LIEF_ERR("Can't read flags");
+ uint64_t children_offset = stream.pos() + *terminal_size;
+
+ if (*terminal_size != 0) {
+ auto flags =
+ stream.read_uleb128().map([](uint64_t v) { return (ExportInfo::FLAGS)v; });
+ if (!flags) {
+ LIEF_ERR("Failed to read flags");
return;
}
uint64_t address = 0;
@@ -62,7 +75,7 @@ void show_trie(std::ostream& output, std::string output_prefix,
// REEXPORT
// ========
- if (is_true(flags & ExportInfo::FLAGS::REEXPORT)) {
+ if (is_true(*flags & ExportInfo::FLAGS::REEXPORT)) {
if (auto res = stream.read_uleb128()) {
ordinal = *res;
} else {
@@ -85,10 +98,9 @@ void show_trie(std::ostream& output, std::string output_prefix,
}
-
// STUB_AND_RESOLVER
// =================
- if (is_true(flags & ExportInfo::FLAGS::STUB_AND_RESOLVER)) {
+ if (is_true(*flags & ExportInfo::FLAGS::STUB_AND_RESOLVER)) {
if (auto res = stream.read_uleb128()) {
other = *res;
} else {
@@ -96,89 +108,89 @@ void show_trie(std::ostream& output, std::string output_prefix,
}
}
- output << output_prefix;
- output << symbol_name;
- output << "{";
- output << "addr: " << std::showbase << std::hex << address << ", ";
- output << "flags: " << std::showbase << std::hex << static_cast<uint64_t>(flags);
- if (is_true(flags & ExportInfo::FLAGS::REEXPORT)) {
- output << ", ";
- output << "re-exported from #" << std::dec << ordinal << " - " << imported_name;
+ output << fmt::format("{}{}{{addr: {:#x}, flags: {:#x}", output_prefix,
+ symbol_name, address, (uint64_t)*flags);
+ if (is_true(*flags & ExportInfo::FLAGS::REEXPORT)) {
+ output << fmt::format(", re-exported from #{} - {}", ordinal, imported_name);
}
- if (is_true(flags & ExportInfo::FLAGS::STUB_AND_RESOLVER) && other > 0) {
- output << ", ";
- output << "other:" << std::showbase << std::hex << other;
+ if (is_true(*flags & ExportInfo::FLAGS::STUB_AND_RESOLVER) && other > 0) {
+ output << fmt::format(", other:{:#x}", other);
}
- //if (!binary_->has_symbol(symbol_name)) {
- // output << " [NOT REGISTRED]";
- //}
-
- output << "}";
- output << '\n';
-
+ output << "}\n";
}
stream.setpos(children_offset);
- uint32_t nb_children = 0;
- if (auto res = stream.read_uleb128()) {
- nb_children = *res;
- } else {
+ auto nb_children = stream.read_uleb128();
+ if (!nb_children) {
+ return;
+ }
+
+ if (stream.pos() >= end) {
return;
}
+ const uint64_t remaining = end - stream.pos();
+ const uint64_t children = std::min<uint64_t>(*nb_children, remaining);
+
output_prefix += " ";
- for (size_t i = 0; i < nb_children; ++i) {
- std::string suffix;
- if (auto res = stream.read_string()) {
- suffix = std::move(*res);
- } else {
+ for (uint64_t i = 0; i < children; ++i) {
+ auto suffix = stream.read_string();
+ if (!suffix) {
break;
}
- std::string name = prefix + suffix;
- uint32_t child_node_offet = 0;
-
- if (auto res = stream.read_uleb128()) {
- child_node_offet = *res;
- } else {
+ std::string name = prefix + *suffix;
+ auto child_node_offet = stream.read_uleb128();
+ if (!child_node_offet || *child_node_offet == 0) {
break;
}
- if (child_node_offet == 0) {
+ if (*child_node_offet >= end - start) {
break;
}
- output << output_prefix << name << "@off." << std::hex << std::showbase << stream.pos() << '\n';
+ output << fmt::format("{}{}@off.{:#x}\n", output_prefix, name, stream.pos());
- size_t current_pos = stream.pos();
- stream.setpos(start + child_node_offet);
- show_trie(output, output_prefix, stream, start, end, name);
- stream.setpos(current_pos);
+ ScopedStream scope(stream, start + *child_node_offet);
+ show_trie_impl(output, output_prefix, *scope, start, end, name, visited,
+ depth + 1);
}
+}
+void show_trie(std::ostream& output, std::string output_prefix,
+ BinaryStream& stream, uint64_t start, uint64_t end,
+ const std::string& prefix) {
+ std::unordered_set<uint64_t> visited;
+ show_trie_impl(output, std::move(output_prefix), stream, start, end, prefix,
+ visited, /*depth=*/0);
}
-std::vector<uint8_t> create_trie(const exports_list_t& exports, size_t pointer_size) {
+std::vector<uint8_t> create_trie(const exports_list_t& exports,
+ size_t pointer_size) {
std::unique_ptr<TrieNode> start = TrieNode::create("");
std::vector<std::unique_ptr<TrieNode>> nodes;
- // Build the tree adding every symbole to the root.
+ // Build the tree by adding every symbol to the root.
TrieNode* start_ptr = start.get();
for (const std::unique_ptr<ExportInfo>& info : exports) {
- start_ptr->add_symbol(*info, nodes);
+ TrieNode::node_list_t sym_node = start_ptr->add_symbol(*info);
+ nodes.insert(nodes.end(), std::make_move_iterator(sym_node.begin()),
+ std::make_move_iterator(sym_node.end()));
}
- // Perform a poor topological sort to have parents before childs in ordered_nodes
+ // Perform a poor topological sort to have parents before children in
+ // ordered_nodes
std::vector<TrieNode*> ordered_nodes;
ordered_nodes.reserve(exports.size() * 2);
for (const std::unique_ptr<ExportInfo>& info : exports) {
- start_ptr->add_ordered_nodes(*info, ordered_nodes);
+ std::vector<TrieNode*> ord_nodes = start_ptr->add_ordered_nodes(*info);
+ ordered_nodes.insert(ordered_nodes.end(), ord_nodes.begin(), ord_nodes.end());
}
- bool more;
+ bool more = false;
do {
uint32_t offset = 0;
more = false;
@@ -200,4 +212,3 @@ std::vector<uint8_t> create_trie(const exports_list_t& exports, size_t pointer_s
return raw_output.raw();
}
}
-}
diff --git a/deps/LIEF/src/MachO/exports_trie.hpp b/deps/LIEF/src/MachO/exports_trie.hpp
index 4b48db3ea04..cf817a4890c 100644
--- a/deps/LIEF/src/MachO/exports_trie.hpp
+++ b/deps/LIEF/src/MachO/exports_trie.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,9 +26,11 @@ namespace MachO {
class ExportInfo;
using exports_list_t = std::vector<std::unique_ptr<ExportInfo>>;
void show_trie(std::ostream& output, std::string output_prefix,
- BinaryStream& stream, uint64_t start, uint64_t end, const std::string& prefix);
+ BinaryStream& stream, uint64_t start, uint64_t end,
+ const std::string& prefix);
-std::vector<uint8_t> create_trie(const exports_list_t& exports, size_t pointer_size);
+std::vector<uint8_t> create_trie(const exports_list_t& exports,
+ size_t pointer_size);
}
}
#endif
diff --git a/deps/LIEF/src/MachO/hash.cpp b/deps/LIEF/src/MachO/hash.cpp
index d6069ca1fe1..0fc17272559 100644
--- a/deps/LIEF/src/MachO/hash.cpp
+++ b/deps/LIEF/src/MachO/hash.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,11 +15,65 @@
*/
#include "LIEF/MachO/hash.hpp"
-#include "LIEF/MachO.hpp"
+#include "LIEF/MachO/Binary.hpp"
+#include "LIEF/MachO/BinaryParser.hpp"
+#include "LIEF/MachO/BindingInfo.hpp"
+#include "LIEF/MachO/BindingInfoIterator.hpp"
+#include "LIEF/MachO/BuildToolVersion.hpp"
+#include "LIEF/MachO/BuildVersion.hpp"
+#include "LIEF/MachO/Builder.hpp"
+#include "LIEF/MachO/ChainedBindingInfo.hpp"
+#include "LIEF/MachO/CodeSignature.hpp"
+#include "LIEF/MachO/CodeSignatureDir.hpp"
+#include "LIEF/MachO/DataCodeEntry.hpp"
+#include "LIEF/MachO/DataInCode.hpp"
+#include "LIEF/MachO/DyldBindingInfo.hpp"
+#include "LIEF/MachO/DyldChainedFixups.hpp"
+#include "LIEF/MachO/DyldChainedFixupsCreator.hpp"
+#include "LIEF/MachO/DyldEnvironment.hpp"
+#include "LIEF/MachO/DyldExportsTrie.hpp"
+#include "LIEF/MachO/DyldInfo.hpp"
+#include "LIEF/MachO/DylibCommand.hpp"
+#include "LIEF/MachO/DylinkerCommand.hpp"
+#include "LIEF/MachO/DynamicSymbolCommand.hpp"
+#include "LIEF/MachO/EncryptionInfo.hpp"
+#include "LIEF/MachO/ExportInfo.hpp"
+#include "LIEF/MachO/FatBinary.hpp"
+#include "LIEF/MachO/FilesetCommand.hpp"
+#include "LIEF/MachO/FunctionStarts.hpp"
+#include "LIEF/MachO/Header.hpp"
+#include "LIEF/MachO/LinkEdit.hpp"
+#include "LIEF/MachO/LinkerOptHint.hpp"
+#include "LIEF/MachO/LoadCommand.hpp"
+#include "LIEF/MachO/MainCommand.hpp"
+#include "LIEF/MachO/NoteCommand.hpp"
+#include "LIEF/MachO/Parser.hpp"
+#include "LIEF/MachO/RPathCommand.hpp"
+#include "LIEF/MachO/Relocation.hpp"
+#include "LIEF/MachO/RelocationDyld.hpp"
+#include "LIEF/MachO/RelocationFixup.hpp"
+#include "LIEF/MachO/RelocationObject.hpp"
+#include "LIEF/MachO/Routine.hpp"
+#include "LIEF/MachO/Section.hpp"
+#include "LIEF/MachO/SegmentCommand.hpp"
+#include "LIEF/MachO/SegmentSplitInfo.hpp"
+#include "LIEF/MachO/SourceVersion.hpp"
+#include "LIEF/MachO/Stub.hpp"
+#include "LIEF/MachO/SubFramework.hpp"
+#include "LIEF/MachO/Symbol.hpp"
+#include "LIEF/MachO/SymbolCommand.hpp"
+#include "LIEF/MachO/ThreadCommand.hpp"
+#include "LIEF/MachO/TwoLevelHints.hpp"
+#include "LIEF/MachO/UUIDCommand.hpp"
+#include "LIEF/MachO/UnknownCommand.hpp"
+#include "LIEF/MachO/VersionMin.hpp"
+#include "LIEF/MachO/hash.hpp"
+#include "LIEF/MachO/json.hpp"
+#include "LIEF/MachO/utils.hpp"
+
#include "Object.tcc"
-namespace LIEF {
-namespace MachO {
+namespace LIEF::MachO {
Hash::~Hash() = default;
@@ -29,8 +83,8 @@ size_t Hash::hash(const Object& obj) {
void Hash::visit(const Binary& binary) {
process(binary.header());
- process(std::begin(binary.commands()), std::end(binary.commands()));
- process(std::begin(binary.symbols()), std::end(binary.symbols()));
+ process(binary.commands().begin(), binary.commands().end());
+ process(binary.symbols().begin(), binary.symbols().end());
}
@@ -79,7 +133,7 @@ void Hash::visit(const SegmentCommand& segment) {
process(segment.numberof_sections());
process(segment.flags());
process(segment.content());
- process(std::begin(segment.sections()), std::end(segment.sections()));
+ process(segment.sections().begin(), segment.sections().end());
}
void Hash::visit(const Section& section) {
@@ -95,7 +149,7 @@ void Hash::visit(const Section& section) {
process(section.reserved2());
process(section.reserved3());
process(section.raw_flags());
- process(std::begin(section.relocations()), std::end(section.relocations()));
+ process(section.relocations().begin(), section.relocations().end());
}
void Hash::visit(const MainCommand& maincmd) {
@@ -179,13 +233,13 @@ void Hash::visit(const Symbol& symbol) {
process(symbol.numberof_sections());
process(symbol.description());
- //if (symbol.has_binding_info()) {
- // process(symbol.binding_info());
- //}
+ // if (symbol.has_binding_info()) {
+ // process(symbol.binding_info());
+ // }
- //if (symbol.has_export_info()) {
- // process(symbol.export_info());
- //}
+ // if (symbol.has_export_info()) {
+ // process(symbol.export_info());
+ // }
}
void Hash::visit(const Relocation& relocation) {
@@ -268,7 +322,6 @@ void Hash::visit(const FunctionStarts& fs) {
process(fs.data_offset());
process(fs.data_size());
process(fs.functions());
-
}
void Hash::visit(const CodeSignature& cs) {
@@ -281,7 +334,7 @@ void Hash::visit(const DataInCode& dic) {
visit(*dic.as<LoadCommand>());
process(dic.data_offset());
process(dic.data_size());
- process(std::begin(dic.entries()), std::end(dic.entries()));
+ process(dic.entries().begin(), dic.entries().end());
}
void Hash::visit(const DataCodeEntry& dce) {
@@ -336,7 +389,7 @@ void Hash::visit(const BuildVersion& e) {
process(e.platform());
process(e.minos());
process(e.sdk());
- process(std::begin(tools), std::end(tools));
+ process(tools.begin(), tools.end());
}
void Hash::visit(const BuildToolVersion& e) {
@@ -367,9 +420,4 @@ void Hash::visit(const LinkerOptHint& e) {
}
-
-
-
-} // namespace MachO
-} // namespace LIEF
-
+} // namespace LIEF::MachO
diff --git a/deps/LIEF/src/MachO/json.cpp b/deps/LIEF/src/MachO/json.cpp
index 012ab0b673f..616c6a56519 100644
--- a/deps/LIEF/src/MachO/json.cpp
+++ b/deps/LIEF/src/MachO/json.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,15 +14,66 @@
* limitations under the License.
*/
-
#include "MachO/json_internal.hpp"
-#include "LIEF/MachO.hpp"
+#include "LIEF/MachO/BinaryParser.hpp"
+#include "LIEF/MachO/BindingInfo.hpp"
+#include "LIEF/MachO/BindingInfoIterator.hpp"
+#include "LIEF/MachO/BuildToolVersion.hpp"
+#include "LIEF/MachO/BuildVersion.hpp"
+#include "LIEF/MachO/Builder.hpp"
+#include "LIEF/MachO/ChainedBindingInfo.hpp"
+#include "LIEF/MachO/CodeSignature.hpp"
+#include "LIEF/MachO/CodeSignatureDir.hpp"
+#include "LIEF/MachO/DataCodeEntry.hpp"
+#include "LIEF/MachO/DataInCode.hpp"
+#include "LIEF/MachO/DyldBindingInfo.hpp"
+#include "LIEF/MachO/DyldChainedFixups.hpp"
+#include "LIEF/MachO/DyldChainedFixupsCreator.hpp"
+#include "LIEF/MachO/DyldEnvironment.hpp"
+#include "LIEF/MachO/DyldExportsTrie.hpp"
+#include "LIEF/MachO/DyldInfo.hpp"
+#include "LIEF/MachO/DylibCommand.hpp"
+#include "LIEF/MachO/DylinkerCommand.hpp"
+#include "LIEF/MachO/DynamicSymbolCommand.hpp"
+#include "LIEF/MachO/EncryptionInfo.hpp"
+#include "LIEF/MachO/ExportInfo.hpp"
+#include "LIEF/MachO/FatBinary.hpp"
+#include "LIEF/MachO/FilesetCommand.hpp"
+#include "LIEF/MachO/FunctionStarts.hpp"
+#include "LIEF/MachO/Header.hpp"
+#include "LIEF/MachO/LinkEdit.hpp"
+#include "LIEF/MachO/LinkerOptHint.hpp"
+#include "LIEF/MachO/LoadCommand.hpp"
+#include "LIEF/MachO/MainCommand.hpp"
+#include "LIEF/MachO/NoteCommand.hpp"
+#include "LIEF/MachO/Parser.hpp"
+#include "LIEF/MachO/RPathCommand.hpp"
+#include "LIEF/MachO/Relocation.hpp"
+#include "LIEF/MachO/RelocationDyld.hpp"
+#include "LIEF/MachO/RelocationFixup.hpp"
+#include "LIEF/MachO/RelocationObject.hpp"
+#include "LIEF/MachO/Routine.hpp"
+#include "LIEF/MachO/Section.hpp"
+#include "LIEF/MachO/SegmentCommand.hpp"
+#include "LIEF/MachO/SegmentSplitInfo.hpp"
+#include "LIEF/MachO/SourceVersion.hpp"
+#include "LIEF/MachO/Stub.hpp"
+#include "LIEF/MachO/SubFramework.hpp"
+#include "LIEF/MachO/Symbol.hpp"
+#include "LIEF/MachO/SymbolCommand.hpp"
+#include "LIEF/MachO/ThreadCommand.hpp"
+#include "LIEF/MachO/TwoLevelHints.hpp"
+#include "LIEF/MachO/UUIDCommand.hpp"
+#include "LIEF/MachO/UnknownCommand.hpp"
+#include "LIEF/MachO/VersionMin.hpp"
+#include "LIEF/MachO/hash.hpp"
+#include "LIEF/MachO/utils.hpp"
+#include "LIEF/MachO/EnumToString.hpp"
+
#include "Object.tcc"
#include "MachO/Binary.tcc"
-namespace LIEF {
-namespace MachO {
-
+namespace LIEF::MachO {
template<class T>
inline void process_command(json& node, const Binary& bin, const char* key) {
@@ -79,12 +130,12 @@ void JsonVisitor::visit(const Binary& binary) {
}
- node_["header"] = header_visitor.get();
- node_["sections"] = sections;
- node_["segments"] = segments;
- node_["symbols"] = symbols;
+ node_["header"] = header_visitor.get();
+ node_["sections"] = sections;
+ node_["segments"] = segments;
+ node_["symbols"] = symbols;
node_["relocations"] = relocations;
- node_["libraries"] = libraries;
+ node_["libraries"] = libraries;
process_command<UUIDCommand>(node_, binary, "uuid");
process_command<MainCommand>(node_, binary, "main_command");
@@ -111,22 +162,22 @@ void JsonVisitor::visit(const Header& header) {
for (Header::FLAGS f : header.flags_list()) {
flags.emplace_back(to_string(f));
}
- node_["magic"] = to_string(header.magic());
- node_["cpu_type"] = to_string(header.cpu_type());
+ node_["magic"] = to_string(header.magic());
+ node_["cpu_type"] = to_string(header.cpu_type());
node_["cpu_subtype"] = header.cpu_subtype();
- node_["file_type"] = to_string(header.file_type());
- node_["nb_cmds"] = header.nb_cmds();
+ node_["file_type"] = to_string(header.file_type());
+ node_["nb_cmds"] = header.nb_cmds();
node_["sizeof_cmds"] = header.sizeof_cmds();
- node_["reserved"] = header.reserved();
- node_["flags"] = flags;
+ node_["reserved"] = header.reserved();
+ node_["flags"] = flags;
}
void JsonVisitor::visit(const LoadCommand& cmd) {
- node_["command"] = to_string(cmd.command());
- node_["command_size"] = cmd.size();
+ node_["command"] = to_string(cmd.command());
+ node_["command_size"] = cmd.size();
node_["command_offset"] = cmd.command_offset();
- node_["data_hash"] = LIEF::hash(cmd.data());
+ node_["data_hash"] = LIEF::hash(cmd.data());
}
void JsonVisitor::visit(const UUIDCommand& uuid) {
@@ -136,10 +187,10 @@ void JsonVisitor::visit(const UUIDCommand& uuid) {
void JsonVisitor::visit(const SymbolCommand& symbol) {
visit(*symbol.as<LoadCommand>());
- node_["symbol_offset"] = symbol.symbol_offset();
+ node_["symbol_offset"] = symbol.symbol_offset();
node_["numberof_symbols"] = symbol.numberof_symbols();
- node_["strings_offset"] = symbol.strings_offset();
- node_["strings_size"] = symbol.strings_size();
+ node_["strings_offset"] = symbol.strings_offset();
+ node_["strings_size"] = symbol.strings_size();
}
void JsonVisitor::visit(const SegmentCommand& segment) {
@@ -150,16 +201,16 @@ void JsonVisitor::visit(const SegmentCommand& segment) {
}
visit(*segment.as<LoadCommand>());
- node_["virtual_address"] = segment.virtual_address();
- node_["virtual_size"] = segment.virtual_size();
- node_["file_size"] = segment.file_size();
- node_["file_offset"] = segment.file_offset();
- node_["max_protection"] = segment.max_protection();
- node_["init_protection"] = segment.init_protection();
+ node_["virtual_address"] = segment.virtual_address();
+ node_["virtual_size"] = segment.virtual_size();
+ node_["file_size"] = segment.file_size();
+ node_["file_offset"] = segment.file_offset();
+ node_["max_protection"] = segment.max_protection();
+ node_["init_protection"] = segment.init_protection();
node_["numberof_sections"] = segment.numberof_sections();
- node_["flags"] = segment.flags();
- node_["sections"] = sections;
- node_["content_hash"] = LIEF::hash(segment.content());
+ node_["flags"] = segment.flags();
+ node_["sections"] = sections;
+ node_["content_hash"] = LIEF::hash(segment.content());
}
void JsonVisitor::visit(const Section& section) {
@@ -168,19 +219,19 @@ void JsonVisitor::visit(const Section& section) {
for (Section::FLAGS f : section.flags_list()) {
flags.emplace_back(to_string(f));
}
- node_["name"] = section.name();
- node_["virtual_address"] = section.virtual_address();
- node_["offset"] = section.offset();
- node_["size"] = section.size();
- node_["alignment"] = section.alignment();
- node_["relocation_offset"] = section.relocation_offset();
+ node_["name"] = section.name();
+ node_["virtual_address"] = section.virtual_address();
+ node_["offset"] = section.offset();
+ node_["size"] = section.size();
+ node_["alignment"] = section.alignment();
+ node_["relocation_offset"] = section.relocation_offset();
node_["numberof_relocations"] = section.numberof_relocations();
- node_["flags"] = section.flags();
- node_["type"] = to_string(section.type());
- node_["reserved1"] = section.reserved1();
- node_["reserved2"] = section.reserved2();
- node_["reserved3"] = section.reserved3();
- node_["content_hash"] = LIEF::hash(section.content());
+ node_["flags"] = section.flags();
+ node_["type"] = to_string(section.type());
+ node_["reserved1"] = section.reserved1();
+ node_["reserved2"] = section.reserved2();
+ node_["reserved3"] = section.reserved3();
+ node_["content_hash"] = LIEF::hash(section.content());
}
void JsonVisitor::visit(const MainCommand& maincmd) {
@@ -198,24 +249,29 @@ void JsonVisitor::visit(const NoteCommand& note) {
void JsonVisitor::visit(const DynamicSymbolCommand& dynamic_symbol) {
visit(*dynamic_symbol.as<LoadCommand>());
- node_["idx_local_symbol"] = dynamic_symbol.idx_local_symbol();
- node_["nb_local_symbols"] = dynamic_symbol.nb_local_symbols();
- node_["idx_external_define_symbol"] = dynamic_symbol.idx_external_define_symbol();
- node_["nb_external_define_symbols"] = dynamic_symbol.nb_external_define_symbols();
- node_["idx_undefined_symbol"] = dynamic_symbol.idx_undefined_symbol();
- node_["nb_undefined_symbols"] = dynamic_symbol.nb_undefined_symbols();
- node_["toc_offset"] = dynamic_symbol.toc_offset();
- node_["nb_toc"] = dynamic_symbol.nb_toc();
- node_["module_table_offset"] = dynamic_symbol.module_table_offset();
- node_["nb_module_table"] = dynamic_symbol.nb_module_table();
- node_["external_reference_symbol_offset"] = dynamic_symbol.external_reference_symbol_offset();
- node_["nb_external_reference_symbols"] = dynamic_symbol.nb_external_reference_symbols();
- node_["indirect_symbol_offset"] = dynamic_symbol.indirect_symbol_offset();
- node_["nb_indirect_symbols"] = dynamic_symbol.nb_indirect_symbols();
- node_["external_relocation_offset"] = dynamic_symbol.external_relocation_offset();
- node_["nb_external_relocations"] = dynamic_symbol.nb_external_relocations();
- node_["local_relocation_offset"] = dynamic_symbol.local_relocation_offset();
- node_["nb_local_relocations"] = dynamic_symbol.nb_local_relocations();
+ node_["idx_local_symbol"] = dynamic_symbol.idx_local_symbol();
+ node_["nb_local_symbols"] = dynamic_symbol.nb_local_symbols();
+ node_["idx_external_define_symbol"] =
+ dynamic_symbol.idx_external_define_symbol();
+ node_["nb_external_define_symbols"] =
+ dynamic_symbol.nb_external_define_symbols();
+ node_["idx_undefined_symbol"] = dynamic_symbol.idx_undefined_symbol();
+ node_["nb_undefined_symbols"] = dynamic_symbol.nb_undefined_symbols();
+ node_["toc_offset"] = dynamic_symbol.toc_offset();
+ node_["nb_toc"] = dynamic_symbol.nb_toc();
+ node_["module_table_offset"] = dynamic_symbol.module_table_offset();
+ node_["nb_module_table"] = dynamic_symbol.nb_module_table();
+ node_["external_reference_symbol_offset"] =
+ dynamic_symbol.external_reference_symbol_offset();
+ node_["nb_external_reference_symbols"] =
+ dynamic_symbol.nb_external_reference_symbols();
+ node_["indirect_symbol_offset"] = dynamic_symbol.indirect_symbol_offset();
+ node_["nb_indirect_symbols"] = dynamic_symbol.nb_indirect_symbols();
+ node_["external_relocation_offset"] =
+ dynamic_symbol.external_relocation_offset();
+ node_["nb_external_relocations"] = dynamic_symbol.nb_external_relocations();
+ node_["local_relocation_offset"] = dynamic_symbol.local_relocation_offset();
+ node_["nb_local_relocations"] = dynamic_symbol.nb_local_relocations();
}
void JsonVisitor::visit(const DylinkerCommand& dylinker) {
@@ -227,9 +283,9 @@ void JsonVisitor::visit(const DylinkerCommand& dylinker) {
void JsonVisitor::visit(const DylibCommand& dylib) {
visit(*dylib.as<LoadCommand>());
- node_["name"] = dylib.name();
- node_["timestamp"] = dylib.timestamp();
- node_["current_version"] = dylib.current_version();
+ node_["name"] = dylib.name();
+ node_["timestamp"] = dylib.timestamp();
+ node_["current_version"] = dylib.current_version();
node_["compatibility_version"] = dylib.compatibility_version();
}
@@ -237,8 +293,8 @@ void JsonVisitor::visit(const ThreadCommand& threadcmd) {
visit(*threadcmd.as<LoadCommand>());
node_["flavor"] = threadcmd.flavor();
- node_["count"] = threadcmd.count();
- node_["pc"] = threadcmd.pc();
+ node_["count"] = threadcmd.count();
+ node_["pc"] = threadcmd.pc();
}
void JsonVisitor::visit(const RPathCommand& rpath) {
@@ -261,15 +317,15 @@ void JsonVisitor::visit(const Routine& routine) {
}
void JsonVisitor::visit(const Symbol& symbol) {
- node_["value"] = symbol.value();
- node_["size"] = symbol.size();
- node_["name"] = symbol.name();
+ node_["value"] = symbol.value();
+ node_["size"] = symbol.size();
+ node_["name"] = symbol.name();
- node_["type"] = symbol.type();
+ node_["type"] = symbol.type();
node_["numberof_sections"] = symbol.numberof_sections();
- node_["description"] = symbol.description();
- node_["origin"] = to_string(symbol.origin());
- node_["is_external"] = symbol.is_external();
+ node_["description"] = symbol.description();
+ node_["origin"] = to_string(symbol.origin());
+ node_["is_external"] = symbol.is_external();
if (symbol.has_export_info()) {
JsonVisitor v;
@@ -287,8 +343,8 @@ void JsonVisitor::visit(const Symbol& symbol) {
void JsonVisitor::visit(const Relocation& relocation) {
node_["is_pc_relative"] = relocation.is_pc_relative();
- node_["architecture"] = to_string(relocation.architecture());
- node_["origin"] = to_string(relocation.origin());
+ node_["architecture"] = to_string(relocation.architecture());
+ node_["origin"] = to_string(relocation.origin());
if (relocation.has_symbol()) {
node_["symbol"] = relocation.symbol()->name();
}
@@ -305,7 +361,7 @@ void JsonVisitor::visit(const Relocation& relocation) {
void JsonVisitor::visit(const RelocationObject& robject) {
visit(*robject.as<Relocation>());
- node_["value"] = robject.value();
+ node_["value"] = robject.value();
node_["is_scattered"] = robject.is_scattered();
}
@@ -319,10 +375,10 @@ void JsonVisitor::visit(const RelocationFixup& fixup) {
}
void JsonVisitor::visit(const BindingInfo& binding) {
- node_["address"] = binding.address();
+ node_["address"] = binding.address();
node_["library_ordinal"] = binding.library_ordinal();
- node_["addend"] = binding.addend();
- node_["is_weak_import"] = binding.is_weak_import();
+ node_["addend"] = binding.addend();
+ node_["is_weak_import"] = binding.is_weak_import();
if (binding.has_symbol()) {
node_["symbol"] = binding.symbol()->name();
@@ -339,8 +395,8 @@ void JsonVisitor::visit(const BindingInfo& binding) {
void JsonVisitor::visit(const DyldBindingInfo& binding) {
visit(*binding.as<BindingInfo>());
- node_["binding_class"] = to_string(binding.binding_class());
- node_["binding_type"] = to_string(binding.binding_type());
+ node_["binding_class"] = to_string(binding.binding_class());
+ node_["binding_type"] = to_string(binding.binding_type());
node_["original_offset"] = binding.original_offset();
}
@@ -352,12 +408,12 @@ void JsonVisitor::visit(const ChainedBindingInfo& binding) {
void JsonVisitor::visit(const DyldExportsTrie& trie) {
visit(*trie.as<LoadCommand>());
node_["data_offset"] = trie.data_offset();
- node_["data_size"] = trie.data_size();
+ node_["data_size"] = trie.data_size();
}
void JsonVisitor::visit(const ExportInfo& einfo) {
- node_["flags"] = einfo.flags();
+ node_["flags"] = einfo.flags();
node_["address"] = einfo.address();
if (einfo.has_symbol()) {
@@ -369,14 +425,14 @@ void JsonVisitor::visit(const FunctionStarts& fs) {
visit(*fs.as<LoadCommand>());
node_["data_offset"] = fs.data_offset();
- node_["data_size"] = fs.data_size();
- node_["functions"] = fs.functions();
+ node_["data_size"] = fs.data_size();
+ node_["functions"] = fs.functions();
}
void JsonVisitor::visit(const CodeSignature& cs) {
visit(*cs.as<LoadCommand>());
node_["data_offset"] = cs.data_offset();
- node_["data_size"] = cs.data_size();
+ node_["data_size"] = cs.data_size();
}
void JsonVisitor::visit(const DataInCode& dic) {
@@ -389,14 +445,14 @@ void JsonVisitor::visit(const DataInCode& dic) {
}
node_["data_offset"] = dic.data_offset();
- node_["data_size"] = dic.data_size();
- node_["entries"] = entries;
+ node_["data_size"] = dic.data_size();
+ node_["entries"] = entries;
}
void JsonVisitor::visit(const DataCodeEntry& dce) {
node_["offset"] = dce.offset();
node_["length"] = dce.length();
- node_["type"] = to_string(dce.type());
+ node_["type"] = to_string(dce.type());
}
@@ -410,7 +466,7 @@ void JsonVisitor::visit(const VersionMin& vmin) {
visit(*vmin.as<LoadCommand>());
node_["version"] = vmin.version();
- node_["sdk"] = vmin.sdk();
+ node_["sdk"] = vmin.sdk();
}
void JsonVisitor::visit(const UnknownCommand& ukn) {
@@ -422,7 +478,7 @@ void JsonVisitor::visit(const UnknownCommand& ukn) {
void JsonVisitor::visit(const SegmentSplitInfo& ssi) {
visit(*ssi.as<LoadCommand>());
node_["data_offset"] = ssi.data_offset();
- node_["data_size"] = ssi.data_size();
+ node_["data_size"] = ssi.data_size();
}
void JsonVisitor::visit(const SubFramework& sf) {
@@ -439,8 +495,8 @@ void JsonVisitor::visit(const DyldEnvironment& dv) {
void JsonVisitor::visit(const EncryptionInfo& e) {
visit(*e.as<LoadCommand>());
node_["crypt_offset"] = e.crypt_offset();
- node_["crypt_size"] = e.crypt_size();
- node_["crypt_id"] = e.crypt_id();
+ node_["crypt_size"] = e.crypt_size();
+ node_["crypt_id"] = e.crypt_id();
}
@@ -448,8 +504,8 @@ void JsonVisitor::visit(const BuildVersion& e) {
visit(*e.as<LoadCommand>());
node_["platform"] = to_string(e.platform());
- node_["minos"] = e.minos();
- node_["sdk"] = e.sdk();
+ node_["minos"] = e.minos();
+ node_["sdk"] = e.sdk();
std::vector<json> tools;
@@ -463,35 +519,32 @@ void JsonVisitor::visit(const BuildVersion& e) {
void JsonVisitor::visit(const BuildToolVersion& e) {
- node_["tool"] = to_string(e.tool());
+ node_["tool"] = to_string(e.tool());
node_["version"] = e.version();
}
void JsonVisitor::visit(const FilesetCommand& e) {
- node_["name"] = e.name();
- node_["file_offset"] = e.file_offset();
+ node_["name"] = e.name();
+ node_["file_offset"] = e.file_offset();
node_["virtual_address"] = e.virtual_address();
}
void JsonVisitor::visit(const CodeSignatureDir& e) {
- node_["data_size"] = e.data_size();
+ node_["data_size"] = e.data_size();
node_["data_offset"] = e.data_offset();
}
void JsonVisitor::visit(const LinkerOptHint& e) {
- node_["data_size"] = e.data_size();
+ node_["data_size"] = e.data_size();
node_["data_offset"] = e.data_offset();
}
void JsonVisitor::visit(const TwoLevelHints& e) {
auto it_hints = e.hints();
- std::vector<uint32_t> hints = {std::begin(it_hints), std::end(it_hints)};
+ std::vector<uint32_t> hints = {it_hints.begin(), it_hints.end()};
node_["offset"] = e.offset();
- node_["hints"] = hints;
+ node_["hints"] = hints;
}
-
-} // namespace MachO
-} // namespace LIEF
-
+} // namespace LIEF::MachO
diff --git a/deps/LIEF/src/MachO/json_api.cpp b/deps/LIEF/src/MachO/json_api.cpp
index 8a5cb07c630..f25fac2ae00 100644
--- a/deps/LIEF/src/MachO/json_api.cpp
+++ b/deps/LIEF/src/MachO/json_api.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,17 +14,20 @@
* limitations under the License.
*/
#include "LIEF/config.h"
-#include "logging.hpp"
-#include "LIEF/MachO.hpp"
#ifdef LIEF_JSON_SUPPORT
-#include "MachO/json_internal.hpp"
+ #include "MachO/json_internal.hpp"
+#else
+ #include "logging.hpp"
#endif
namespace LIEF {
-namespace MachO {
+class Object;
+}
+
+namespace LIEF::MachO {
-std::string to_json(const Object& v) {
+std::string to_json([[maybe_unused]] const Object& v) {
#ifdef LIEF_JSON_SUPPORT
JsonVisitor visitor;
visitor(v);
@@ -35,5 +38,4 @@ std::string to_json(const Object& v) {
#endif
}
-} // namespace MachO
-} // namespace LIEF
+} // namespace LIEF::MachO
diff --git a/deps/LIEF/src/MachO/json_internal.hpp b/deps/LIEF/src/MachO/json_internal.hpp
index 79aa291173b..66237b5be04 100644
--- a/deps/LIEF/src/MachO/json_internal.hpp
+++ b/deps/LIEF/src/MachO/json_internal.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,12 +16,9 @@
#ifndef LIEF_MACHO_JSON_INTERNAL_H
#define LIEF_MACHO_JSON_INTERNAL_H
-#include "LIEF/visibility.h"
#include "visitors/json.hpp" // internal
-#include "LIEF/MachO.hpp"
-namespace LIEF {
-namespace MachO {
+namespace LIEF::MachO {
class Binary;
class BindingInfo;
@@ -73,51 +70,51 @@ class JsonVisitor : public LIEF::JsonVisitor {
using LIEF::JsonVisitor::JsonVisitor;
public:
- void visit(const Binary& binary) override;
- void visit(const BindingInfo& binding) override;
- void visit(const BuildToolVersion& e) override;
- void visit(const BuildVersion& e) override;
- void visit(const ChainedBindingInfo& binding) override;
- void visit(const CodeSignature& cs) override;
- void visit(const CodeSignatureDir& e) override;
- void visit(const DataCodeEntry& dce) override;
- void visit(const DataInCode& dic) override;
- void visit(const DyldBindingInfo& binding) override;
- void visit(const DyldEnvironment& sf) override;
- void visit(const DyldExportsTrie& trie) override;
- void visit(const DylibCommand& dylib) override;
- void visit(const DylinkerCommand& dylinker) override;
- void visit(const DynamicSymbolCommand& dynamic_symbol) override;
- void visit(const EncryptionInfo& e) override;
- void visit(const ExportInfo& einfo) override;
- void visit(const FilesetCommand& e) override;
- void visit(const FunctionStarts& fs) override;
- void visit(const Header& header) override;
- void visit(const LinkerOptHint& e) override;
- void visit(const LoadCommand& cmd) override;
- void visit(const MainCommand& maincmd) override;
- void visit(const NoteCommand& note) override;
- void visit(const Routine& rpath) override;
- void visit(const RPathCommand& rpath) override;
- void visit(const Relocation& relocation) override;
- void visit(const RelocationDyld& rdyld) override;
- void visit(const RelocationFixup& fixup) override;
- void visit(const RelocationObject& robject) override;
- void visit(const Section& section) override;
- void visit(const SegmentCommand& segment) override;
- void visit(const SegmentSplitInfo& ssi) override;
- void visit(const SourceVersion& sv) override;
- void visit(const SubFramework& sf) override;
- void visit(const Symbol& symbol) override;
- void visit(const SymbolCommand& symbol) override;
- void visit(const ThreadCommand& threadcmd) override;
- void visit(const TwoLevelHints& e) override;
- void visit(const UUIDCommand& uuid) override;
- void visit(const VersionMin& vmin) override;
- void visit(const UnknownCommand& ukn) override;
+ void visit(const Binary& binary) override;
+ void visit(const BindingInfo& binding) override;
+ void visit(const BuildToolVersion& e) override;
+ void visit(const BuildVersion& e) override;
+ void visit(const ChainedBindingInfo& binding) override;
+ void visit(const CodeSignature& cs) override;
+ void visit(const CodeSignatureDir& e) override;
+ void visit(const DataCodeEntry& dce) override;
+ void visit(const DataInCode& dic) override;
+ void visit(const DyldBindingInfo& binding) override;
+ void visit(const DyldEnvironment& sf) override;
+ void visit(const DyldExportsTrie& trie) override;
+ void visit(const DylibCommand& dylib) override;
+ void visit(const DylinkerCommand& dylinker) override;
+ void visit(const DynamicSymbolCommand& dynamic_symbol) override;
+ void visit(const EncryptionInfo& e) override;
+ void visit(const ExportInfo& einfo) override;
+ void visit(const FilesetCommand& e) override;
+ void visit(const FunctionStarts& fs) override;
+ void visit(const Header& header) override;
+ void visit(const LinkerOptHint& e) override;
+ void visit(const LoadCommand& cmd) override;
+ void visit(const MainCommand& maincmd) override;
+ void visit(const NoteCommand& note) override;
+ void visit(const Routine& rpath) override;
+ void visit(const RPathCommand& rpath) override;
+ void visit(const Relocation& relocation) override;
+ void visit(const RelocationDyld& rdyld) override;
+ void visit(const RelocationFixup& fixup) override;
+ void visit(const RelocationObject& robject) override;
+ void visit(const Section& section) override;
+ void visit(const SegmentCommand& segment) override;
+ void visit(const SegmentSplitInfo& ssi) override;
+ void visit(const SourceVersion& sv) override;
+ void visit(const SubFramework& sf) override;
+ void visit(const Symbol& symbol) override;
+ void visit(const SymbolCommand& symbol) override;
+ void visit(const ThreadCommand& threadcmd) override;
+ void visit(const TwoLevelHints& e) override;
+ void visit(const UUIDCommand& uuid) override;
+ void visit(const VersionMin& vmin) override;
+ void visit(const UnknownCommand& ukn) override;
};
}
-}
+
#endif
diff --git a/deps/LIEF/src/MachO/layout_check.cpp b/deps/LIEF/src/MachO/layout_check.cpp
index 7fea03c43e0..2c7c03e539b 100644
--- a/deps/LIEF/src/MachO/layout_check.cpp
+++ b/deps/LIEF/src/MachO/layout_check.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -12,9 +12,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+#include <cstddef>
#include <spdlog/fmt/fmt.h>
#include "MachO/Structures.hpp"
+#include "LIEF/range.hpp"
#include "LIEF/BinaryStream/SpanStream.hpp"
@@ -30,17 +32,21 @@
#include "LIEF/MachO/DyldInfo.hpp"
#include "LIEF/MachO/DylibCommand.hpp"
#include "LIEF/MachO/DynamicSymbolCommand.hpp"
+#include "LIEF/MachO/ExportInfo.hpp"
#include "LIEF/MachO/FunctionStarts.hpp"
#include "LIEF/MachO/FunctionVariants.hpp"
#include "LIEF/MachO/FunctionVariantFixups.hpp"
+#include "LIEF/MachO/LazyLoadDylibInfo.hpp"
#include "LIEF/MachO/LinkerOptHint.hpp"
#include "LIEF/MachO/MainCommand.hpp"
#include "LIEF/MachO/RPathCommand.hpp"
#include "LIEF/MachO/Section.hpp"
#include "LIEF/MachO/SegmentCommand.hpp"
#include "LIEF/MachO/SegmentSplitInfo.hpp"
+#include "LIEF/MachO/Symbol.hpp"
#include "LIEF/MachO/SymbolCommand.hpp"
#include "LIEF/MachO/ThreadCommand.hpp"
+#include "LIEF/MachO/ThreadLocalVariables.hpp"
#include "LIEF/MachO/TwoLevelHints.hpp"
#include "LIEF/MachO/utils.hpp"
#include "LIEF/utils.hpp"
@@ -50,7 +56,9 @@
#include "logging.hpp"
#include "Object.tcc"
+#include <algorithm>
#include <string>
+#include <unordered_set>
namespace LIEF::MachO {
template<typename T, typename U>
@@ -73,8 +81,7 @@ class LayoutChecker {
public:
LayoutChecker() = delete;
LayoutChecker(const Binary& macho) :
- binary(macho)
- {}
+ binary(macho) {}
bool check();
@@ -84,9 +91,9 @@ class LayoutChecker {
return false;
}
- template <typename... Args>
- bool error(const char *fmt, const Args &... args) {
- error_msg = fmt::format(fmt, args...);
+ template<typename... Args>
+ bool error(const char* fmt, const Args&... args) {
+ error_msg = fmt::format(fmt::runtime(fmt), args...);
return false;
}
@@ -114,6 +121,10 @@ class LayoutChecker {
// Mirror ChainedFixups::valid
bool check_chained_fixups();
+ // Mirror of mach_o::ExportsTrie::valid (dyld's mach_o/ExportsTrie.cpp)
+ // combined with the maxVmOffset computation from Image::validLinkedit.
+ bool check_exports_trie();
+
// Check from PR #1136
// See: https://github.com/lief-project/LIEF/pull/1136/files#r1882625692
bool check_section_contiguity();
@@ -121,11 +132,22 @@ class LayoutChecker {
// From FunctionVariants::valid()
bool check_function_variants();
+ // Consistency of LC_FUNCTION_VARIANT_FIXUPS (cf. dyld's interpretation of
+ // FunctionVariantFixups::InternalFixup)
+ bool check_function_variant_fixups();
+
+ // Mirror of mach_o::LazyLoadDylib::valid() for LC_LAZY_LOAD_DYLIB_INFO
+ bool check_lazy_load_dylib_infos();
+
bool check_linkedit_end();
+ bool check_tls();
+
+ bool check_export(uint64_t imagebase, uint64_t max_vm_offset,
+ const ExportInfo& info);
+
size_t ptr_size() const {
- return binary.header().is_32bit() ? sizeof(uint32_t) :
- sizeof(uint64_t);
+ return binary.header().is_32bit() ? sizeof(uint32_t) : sizeof(uint64_t);
}
const std::string& get_error() const {
@@ -150,9 +172,9 @@ bool LayoutChecker::check_initializers() {
using base_t::base_t;
bool contain(uint64_t addr) const {
- return std::find_if(begin(), end(), [addr] (const range_t& R) {
- return R.va_start <= addr && addr < (R.va_start + R.va_end);
- }) != end();
+ return std::find_if(begin(), end(), [addr](const range_t& R) {
+ return R.va_start <= addr && addr < (R.va_start + R.va_end);
+ }) != end();
}
};
@@ -163,10 +185,9 @@ bool LayoutChecker::check_initializers() {
ranges.reserve(binary.segments().size());
for (const SegmentCommand& segment : binary.segments()) {
if (segment.is(SegmentCommand::VM_PROTECTIONS::EXECUTE)) {
- ranges.push_back({
- segment.virtual_address(), segment.virtual_address() + segment.virtual_size(),
- segment.file_size()
- });
+ ranges.push_back({segment.virtual_address(),
+ segment.virtual_address() + segment.virtual_size(),
+ segment.file_size()});
}
}
@@ -182,27 +203,30 @@ bool LayoutChecker::check_initializers() {
uint64_t init_addr = routines->init_address();
if (!ranges.contain(init_addr)) {
- return error("LC_ROUTINE/64 initializer 0x{:016x} is not an offset "
- "to an executable segment", init_addr);
+ return error("LC_ROUTINE/64 initializer {:#018x} is not an offset "
+ "to an executable segment",
+ init_addr);
}
}
for (const Section& section : binary.sections()) {
const bool contains_init_ptr =
- section.type() == Section::TYPE::MOD_INIT_FUNC_POINTERS ||
- section.type() == Section::TYPE::MOD_TERM_FUNC_POINTERS;
+ section.type() == Section::TYPE::MOD_INIT_FUNC_POINTERS ||
+ section.type() == Section::TYPE::MOD_TERM_FUNC_POINTERS;
if (!contains_init_ptr) {
continue;
}
if (section.size() % ptr_size != 0) {
- return error("Section '{}' size (0x{:08x}) is not a multiple of pointer-size",
- section.name(), section.size());
+ return error(
+ "Section '{}' size ({:#010x}) is not a multiple of pointer-size",
+ section.name(), section.size()
+ );
}
if (section.address() % ptr_size != 0) {
- return error("Section '{}' address (0x{:08x}) is not pointer aligned",
+ return error("Section '{}' address ({:#010x}) is not pointer aligned",
section.name(), section.address());
}
@@ -212,8 +236,8 @@ bool LayoutChecker::check_initializers() {
if (ptr_size == sizeof(uint32_t)) {
auto res = stream.read<uint32_t>();
if (!res) {
- return error("Can't read pointer at 0x{:04x} in {}",
- stream.pos(), section.name());
+ return error("Can't read pointer at {:#06x} in {}", stream.pos(),
+ section.name());
}
// As mentioned in the dyld documentation:
@@ -223,8 +247,8 @@ bool LayoutChecker::check_initializers() {
} else {
auto res = stream.read<uint64_t>();
if (!res) {
- return error("Can't read pointer at 0x{:04x} in {}",
- stream.pos(), section.name());
+ return error("Can't read pointer at {:#06x} in {}", stream.pos(),
+ section.name());
}
// As mentioned in the dyld documentation:
// > FIXME: as a quick hack, the low 32-bits with either rebase opcodes
@@ -232,8 +256,10 @@ bool LayoutChecker::check_initializers() {
ptr = *res & 0x03FFFFFF;
}
if (!ranges.contain(imagebase + ptr)) {
- return error("initializer at 0x{:06x} in {} is not in an executable segment",
- stream.pos(), section.name());
+ return error(
+ "initializer at {:#08x} in {} is not in an executable segment",
+ stream.pos(), section.name()
+ );
}
}
}
@@ -244,8 +270,10 @@ bool LayoutChecker::check_initializers() {
continue;
}
if (section.segment()->is(SegmentCommand::VM_PROTECTIONS::WRITE)) {
- return error("initializer offsets section {}/{} must be in read-only segment",
- section.segment_name(), section.name());
+ return error(
+ "initializer offsets section {}/{} must be in read-only segment",
+ section.segment_name(), section.name()
+ );
}
if (section.size() % 4 != 0) {
@@ -263,26 +291,28 @@ bool LayoutChecker::check_initializers() {
while (stream) {
auto res = stream.read<uint32_t>();
if (!res) {
- return error("Can't read pointer at 0x{:04} in {}",
- stream.pos(), section.name());
+ return error("Can't read pointer at {:#06x} in {}", stream.pos(),
+ section.name());
}
if (!ranges.contain(imagebase + *res)) {
- return error("initializer 0x{:08x} is not an offset to an executable "
- "segment", *res);
+ return error("initializer {:#010x} is not an offset to an executable "
+ "segment",
+ *res);
}
}
-
}
return true;
}
bool LayoutChecker::check_segments() {
const size_t sizeof_segment_hdr = binary.header().is_32bit() ?
- sizeof(details::segment_command_32) : sizeof(details::segment_command_64);
+ sizeof(details::segment_command_32) :
+ sizeof(details::segment_command_64);
const size_t sizeof_section_hdr = binary.header().is_32bit() ?
- sizeof(details::section_32) : sizeof(details::section_64);
+ sizeof(details::section_32) :
+ sizeof(details::section_64);
for (const SegmentCommand& segment : binary.segments()) {
int32_t section_space = segment.size() - sizeof_segment_hdr;
@@ -292,17 +322,21 @@ bool LayoutChecker::check_segments() {
}
if ((section_space % sizeof_section_hdr) != 0) {
- return error("segment load command size {}: 0x{:04x} will not fit "
- "whole number of sections", segment.name(), segment.size());
+ return error("segment load command size {}: {:#06x} will not fit "
+ "whole number of sections",
+ segment.name(), segment.size());
}
- if ((uint32_t)section_space != segment.numberof_sections() * sizeof_section_hdr) {
+ if ((uint32_t)section_space !=
+ segment.numberof_sections() * sizeof_section_hdr)
+ {
return error("segment {} does not match nsects", segment.name(),
segment.numberof_sections());
}
if ((segment.file_size() > segment.virtual_size()) &&
- (segment.virtual_size() != 0 || (segment.flags() & (uint32_t)SegmentCommand::FLAGS::NORELOC) != 0))
+ (segment.virtual_size() != 0 ||
+ (segment.flags() & (uint32_t)SegmentCommand::FLAGS::NORELOC) != 0))
{
return error("in segment {}, filesize exceeds vmsize", segment.name());
}
@@ -332,44 +366,56 @@ bool LayoutChecker::check_segments() {
bool LayoutChecker::check_overlapping() {
for (const SegmentCommand& lhs : binary.segments()) {
- const uint64_t lhs_vm_end = lhs.virtual_address() + lhs.virtual_size();
+ const uint64_t lhs_vm_end = lhs.virtual_address() + lhs.virtual_size();
const uint64_t lhs_file_end = lhs.file_offset() + lhs.file_size();
for (const SegmentCommand& rhs : binary.segments()) {
if (lhs.index() == rhs.index()) {
continue;
}
- const uint64_t rhs_vm_end = rhs.virtual_address() + rhs.virtual_size();
+ const uint64_t rhs_vm_end = rhs.virtual_address() + rhs.virtual_size();
const uint64_t rhs_file_end = rhs.file_offset() + rhs.file_size();
- const bool vm_overalp = (rhs.virtual_address() <= lhs.virtual_address() && rhs_vm_end > lhs.virtual_address() && lhs_vm_end > lhs.virtual_address()) ||
- (rhs.virtual_address() >= lhs.virtual_address() && rhs.virtual_address() < lhs_vm_end && rhs_vm_end > rhs.virtual_address());
+ const bool vm_overalp = (rhs.virtual_address() <= lhs.virtual_address() &&
+ rhs_vm_end > lhs.virtual_address() &&
+ lhs_vm_end > lhs.virtual_address()) ||
+ (rhs.virtual_address() >= lhs.virtual_address() &&
+ rhs.virtual_address() < lhs_vm_end &&
+ rhs_vm_end > rhs.virtual_address());
if (vm_overalp) {
error(R"delim(
Segments '{}' and '{}' overlap (virtual addresses):
- [0x{:08x}, 0x{:08x}] [0x{:08x}, 0x{:08x}]
- )delim", lhs.name(), rhs.name(),
- lhs.virtual_address(), lhs_vm_end, rhs.virtual_address(), rhs_vm_end);
+ [{:#010x}, {:#010x}] [{:#010x}, {:#010x}]
+ )delim",
+ lhs.name(), rhs.name(), lhs.virtual_address(), lhs_vm_end,
+ rhs.virtual_address(), rhs_vm_end);
return true;
}
- const bool file_overlap = (rhs.file_offset() <= lhs.file_offset() && rhs_file_end > lhs.file_offset() && lhs_file_end > lhs.file_offset()) ||
- (rhs.file_offset() >= lhs.file_offset() && rhs.file_offset() < lhs_file_end && rhs_file_end > rhs.file_offset());
+ const bool file_overlap =
+ (rhs.file_offset() <= lhs.file_offset() &&
+ rhs_file_end > lhs.file_offset() && lhs_file_end > lhs.file_offset()) ||
+ (rhs.file_offset() >= lhs.file_offset() &&
+ rhs.file_offset() < lhs_file_end && rhs_file_end > rhs.file_offset());
if (file_overlap) {
error(R"delim(
Segments '{}' and '{}' overlap (file offsets):
- [0x{:08x}, 0x{:08x}] [0x{:08x}, 0x{:08x}]
- )delim", lhs.name(), rhs.name(),
- lhs.file_offset(), lhs_file_end, rhs.file_offset(), rhs_file_end);
+ [{:#010x}, {:#010x}] [{:#010x}, {:#010x}]
+ )delim",
+ lhs.name(), rhs.name(), lhs.file_offset(), lhs_file_end,
+ rhs.file_offset(), rhs_file_end);
return true;
}
if (lhs.index() < rhs.index()) {
- const bool wrong_order = lhs.virtual_address() > rhs.virtual_address() ||
- (lhs.file_offset() > rhs.file_offset() && lhs.file_offset() != 0 && rhs.file_offset() != 0);
+ const bool wrong_order =
+ lhs.virtual_address() > rhs.virtual_address() ||
+ (lhs.file_offset() > rhs.file_offset() && lhs.file_offset() != 0 &&
+ rhs.file_offset() != 0);
if (wrong_order) {
error(R"delim(
Segments '{}' and '{}' are wrongly ordered
- )delim", lhs.name(), rhs.name());
+ )delim",
+ lhs.name(), rhs.name());
return true;
}
}
@@ -381,9 +427,9 @@ bool LayoutChecker::check_overlapping() {
// Mirror MachOAnalyzer::validLoadCommands
bool LayoutChecker::check_load_commands() {
- const size_t sizeof_header =
- binary.header().is_32bit() ? sizeof(details::mach_header) :
- sizeof(details::mach_header_64);
+ const size_t sizeof_header = binary.header().is_32bit() ?
+ sizeof(details::mach_header) :
+ sizeof(details::mach_header_64);
const size_t last_cmd_offset = sizeof_header + binary.header().sizeof_cmds();
@@ -426,7 +472,8 @@ bool LayoutChecker::check_load_commands() {
const auto start = raw.begin() + rpath->path_offset();
auto it = std::find(start, raw.end(), '\0');
if (it == raw.end()) {
- return error("{}: string extends beyond end of load command", rpath->path());
+ return error("{}: string extends beyond end of load command",
+ rpath->path());
}
}
}
@@ -445,7 +492,8 @@ bool LayoutChecker::check_main() {
if (const MainCommand* cmd = binary.main_command()) {
has_main = true;
uint64_t start_address = binary.imagebase() + cmd->entrypoint();
- const SegmentCommand* segment = binary.segment_from_virtual_address(start_address);
+ const SegmentCommand* segment =
+ binary.segment_from_virtual_address(start_address);
if (segment == nullptr) {
return error("LC_MAIN entryoff is out of range");
}
@@ -463,7 +511,8 @@ bool LayoutChecker::check_main() {
return error("LC_UNIXTHREAD not valid for the current arch");
}
- const SegmentCommand* segment = binary.segment_from_virtual_address(start_address);
+ const SegmentCommand* segment =
+ binary.segment_from_virtual_address(start_address);
if (segment == nullptr) {
return error("LC_MAIN entryoff is out of range");
}
@@ -487,31 +536,33 @@ bool LayoutChecker::check_main() {
// Mirror of MachOAnalyzer::validEmbeddedPaths
bool LayoutChecker::check_valid_paths() {
bool has_install_name = false;
- int dependents_count = 0;
+ int dependents_count = 0;
for (const LoadCommand& cmd : binary.commands()) {
switch (cmd.command()) {
case LoadCommand::TYPE::ID_DYLIB:
- {
- has_install_name = true;
- [[fallthrough]];
- }
+ {
+ has_install_name = true;
+ [[fallthrough]];
+ }
case LoadCommand::TYPE::LOAD_DYLIB:
case LoadCommand::TYPE::LOAD_WEAK_DYLIB:
case LoadCommand::TYPE::REEXPORT_DYLIB:
case LoadCommand::TYPE::LOAD_UPWARD_DYLIB:
- {
- if (!DylibCommand::classof(&cmd)) {
- LIEF_ERR("{} is not associated with a DylibCommand which should be the case",
- to_string(cmd.command()));
- break;
- }
- auto& dylib = *cmd.as<DylibCommand>();
- if (dylib.command() != LoadCommand::TYPE::ID_DYLIB) {
- ++dependents_count;
- }
+ {
+ if (!DylibCommand::classof(&cmd)) {
+ LIEF_ERR("{} is not associated with a DylibCommand",
+ to_string(cmd.command()));
break;
}
- default: {}
+ auto& dylib = *cmd.as<DylibCommand>();
+ if (dylib.command() != LoadCommand::TYPE::ID_DYLIB) {
+ ++dependents_count;
+ }
+ break;
+ }
+ default:
+ {
+ }
}
}
@@ -525,8 +576,8 @@ bool LayoutChecker::check_valid_paths() {
return error("LC_ID_DYLIB command found in a non MH_DYLIB file");
}
}
- const bool is_dynamic_exe =
- ftype == Header::FILE_TYPE::EXECUTE && binary.has(LoadCommand::TYPE::LOAD_DYLINKER);
+ const bool is_dynamic_exe = ftype == Header::FILE_TYPE::EXECUTE &&
+ binary.has(LoadCommand::TYPE::LOAD_DYLINKER);
if (dependents_count == 0 && is_dynamic_exe) {
return error("Missing libraries. It must link with at least one library "
"(like libSystem.dylib)");
@@ -539,10 +590,15 @@ bool LayoutChecker::check_linkedit() {
struct chunk_t {
enum class KIND {
UNKNOWN = 0,
- SYMTAB, SYMTAB_STR,
- DYSYMTAB_LOC_REL, DYSYMTAB_EXT_REL, DYSYMTAB_INDIRECT_SYM,
- DYLD_INFO_REBASES, DYLD_INFO_BIND,
- DYLD_INFO_WEAK_BIND, DYLD_INFO_LAZY_BIND,
+ SYMTAB,
+ SYMTAB_STR,
+ DYSYMTAB_LOC_REL,
+ DYSYMTAB_EXT_REL,
+ DYSYMTAB_INDIRECT_SYM,
+ DYLD_INFO_REBASES,
+ DYLD_INFO_BIND,
+ DYLD_INFO_WEAK_BIND,
+ DYLD_INFO_LAZY_BIND,
DYLD_INFO_EXPORT,
SEGMENT_SPLIT_INFO,
ATOM_INFO,
@@ -550,7 +606,7 @@ bool LayoutChecker::check_linkedit() {
DATA_IN_CODE,
CODE_SIGNATURE,
DYLD_EXPORT_TRIE,
- DYLD_CHAINED_FIXUPS
+ DYLD_CHAINED_FIXUPS,
};
static const char* to_string(KIND kind) {
switch (kind) {
@@ -577,14 +633,18 @@ bool LayoutChecker::check_linkedit() {
}
chunk_t() = delete;
chunk_t(KIND kind, uint32_t align, uint32_t off, size_t size) :
- kind(kind), alignment(align), file_offset(off), size(size)
- {}
+ kind(kind),
+ alignment(align),
+ file_offset(off),
+ size(size) {}
chunk_t(const chunk_t&) = default;
chunk_t& operator=(const chunk_t&) = default;
chunk_t(chunk_t&&) = default;
chunk_t& operator=(chunk_t&&) = default;
+ ~chunk_t() = default;
+
KIND kind = KIND::UNKNOWN;
uint32_t alignment = 0;
uint32_t file_offset = 0;
@@ -595,7 +655,7 @@ bool LayoutChecker::check_linkedit() {
chunks_t chunks;
chunks.reserve(binary.commands().size());
- static const auto sort_chunks = [] (chunks_t& chunks) {
+ static const auto sort_chunks = [](chunks_t& chunks) {
const size_t count = chunks.size();
for (size_t i = 0; i < count; ++i) {
bool done = true;
@@ -625,12 +685,12 @@ bool LayoutChecker::check_linkedit() {
if (sym_count > 0x10000000) {
return error("LC_SYMTAB: symbol table too large ({})", sym_count);
}
- chunks.emplace_back(chunk_t::KIND::SYMTAB, ptr_size,
- symtab->symbol_offset(), symtab->symbol_table().size());
+ chunks.emplace_back(chunk_t::KIND::SYMTAB, ptr_size, symtab->symbol_offset(),
+ symtab->symbol_table().size());
if (symtab->strings_size() > 0) {
- chunks.emplace_back(chunk_t::KIND::SYMTAB_STR, 1,
- symtab->strings_offset(), symtab->strings_size());
+ chunks.emplace_back(chunk_t::KIND::SYMTAB_STR, 1, symtab->strings_offset(),
+ symtab->strings_size());
}
}
@@ -662,17 +722,20 @@ bool LayoutChecker::check_linkedit() {
"iundefsym != iextdefsym+nextdefsym");
}
- ind_sym_count = dynsym->idx_undefined_symbol() + dynsym->nb_undefined_symbols();
+ ind_sym_count =
+ dynsym->idx_undefined_symbol() + dynsym->nb_undefined_symbols();
if (dynsym->nb_local_relocations() != 0) {
chunks.emplace_back(chunk_t::KIND::DYSYMTAB_LOC_REL, ptr_size,
dynsym->local_relocation_offset(),
- dynsym->nb_local_relocations() * sizeof(details::relocation_info));
+ dynsym->nb_local_relocations() *
+ sizeof(details::relocation_info));
}
if (dynsym->nb_external_relocations() != 0) {
chunks.emplace_back(chunk_t::KIND::DYSYMTAB_EXT_REL, ptr_size,
dynsym->external_relocation_offset(),
- dynsym->nb_external_relocations() * sizeof(details::relocation_info));
+ dynsym->nb_external_relocations() *
+ sizeof(details::relocation_info));
}
if (dynsym->nb_indirect_symbols() != 0) {
chunks.emplace_back(chunk_t::KIND::DYSYMTAB_INDIRECT_SYM, 4,
@@ -683,13 +746,13 @@ bool LayoutChecker::check_linkedit() {
if (const auto* dyldinfo = cmd.cast<DyldInfo>()) {
if (auto info = dyldinfo->rebase(); info.second != 0) {
- chunks.emplace_back(chunk_t::KIND::DYLD_INFO_REBASES, ptr_size,
- info.first, info.second);
+ chunks.emplace_back(chunk_t::KIND::DYLD_INFO_REBASES, ptr_size, info.first,
+ info.second);
}
if (auto info = dyldinfo->bind(); info.second != 0) {
- chunks.emplace_back(chunk_t::KIND::DYLD_INFO_BIND, ptr_size,
- info.first, info.second);
+ chunks.emplace_back(chunk_t::KIND::DYLD_INFO_BIND, ptr_size, info.first,
+ info.second);
}
if (auto info = dyldinfo->weak_bind(); info.second != 0) {
@@ -703,8 +766,8 @@ bool LayoutChecker::check_linkedit() {
}
if (auto info = dyldinfo->export_info(); info.second != 0) {
- chunks.emplace_back(chunk_t::KIND::DYLD_INFO_EXPORT, ptr_size,
- info.first, info.second);
+ chunks.emplace_back(chunk_t::KIND::DYLD_INFO_EXPORT, ptr_size, info.first,
+ info.second);
}
}
@@ -759,11 +822,14 @@ bool LayoutChecker::check_linkedit() {
}
if (has_ind_sym_tab && sym_count != ind_sym_count) {
- return error("symbol count from symbol table and dynamic symbol table differ.");
+ return error(
+ "symbol count from symbol table and dynamic symbol table differ."
+ );
}
const bool has_dyld_info = binary.has(LoadCommand::TYPE::DYLD_INFO_ONLY);
- const bool has_dyld_chained_fixups = binary.has(LoadCommand::TYPE::DYLD_CHAINED_FIXUPS);
+ const bool has_dyld_chained_fixups =
+ binary.has(LoadCommand::TYPE::DYLD_CHAINED_FIXUPS);
if (has_dyld_info && has_dyld_chained_fixups) {
return error("Contains LC_DYLD_INFO and LC_DYLD_CHAINED_FIXUPS.");
@@ -786,8 +852,9 @@ bool LayoutChecker::check_linkedit() {
binary.header().file_type() == Header::FILE_TYPE::PRELOAD)
{
for (const Section& section : binary.sections()) {
- const bool is_zero_fill = section.type() == Section::TYPE::ZEROFILL ||
- section.type() == Section::TYPE::THREAD_LOCAL_ZEROFILL;
+ const bool is_zero_fill =
+ section.type() == Section::TYPE::ZEROFILL ||
+ section.type() == Section::TYPE::THREAD_LOCAL_ZEROFILL;
if (is_zero_fill) {
continue;
}
@@ -798,13 +865,14 @@ bool LayoutChecker::check_linkedit() {
}
linkedit_file_offset_end = binary.original_size();
if (linkedit_file_offset_start == 0) {
- if (const auto* cmd = binary.get(LoadCommand::TYPE::SYMTAB)->cast<SymbolCommand>()) {
+ if (const auto* cmd =
+ binary.get(LoadCommand::TYPE::SYMTAB)->cast<SymbolCommand>())
+ {
linkedit_file_offset_start = cmd->symbol_offset();
}
}
}
- }
- else {
+ } else {
if (const SegmentCommand* segment = binary.get_segment("__LINKEDIT")) {
linkedit_file_offset_start = segment->file_offset();
linkedit_file_offset_end = segment->file_offset() + segment->file_size();
@@ -825,24 +893,24 @@ bool LayoutChecker::check_linkedit() {
uint64_t prev_end = linkedit_file_offset_start;
const char* prev_name = "start of __LINKEDIT";
- for (size_t i = 0; i < chunks.size(); ++i) {
- const chunk_t& chunk = chunks[i];
+ for (const chunk_t& chunk : chunks) {
if (chunk.file_offset < prev_end) {
- return error("LINKEDIT overlap of {} and {}",
- prev_name, chunk_t::to_string(chunk.kind));
+ return error("LINKEDIT overlap of {} and {}", prev_name,
+ chunk_t::to_string(chunk.kind));
}
- if (greater_than_add_or_overflow<uint64_t>(
- chunk.file_offset, chunk.size, linkedit_file_offset_end))
+ if (greater_than_add_or_overflow<uint64_t>(chunk.file_offset, chunk.size,
+ linkedit_file_offset_end))
{
return error("LINKEDIT content '{}' extends beyond end of segment",
chunk_t::to_string(chunk.kind));
}
if (chunk.file_offset & (chunk.alignment - 1)) {
- // In the source code of dyld this is enforced only the provided
- // policy ask to, but we might want to enforce it by default
- return error("mis-aligned LINKEDIT content: {}", chunk_t::to_string(chunk.kind));
+ // In the source code of dyld this is enforced only if the provided
+ // policy asks for it, but we might want to enforce it by default
+ return error("mis-aligned LINKEDIT content: {}",
+ chunk_t::to_string(chunk.kind));
}
prev_end = chunk.file_offset + chunk.size;
@@ -878,10 +946,10 @@ bool LayoutChecker::check_section_contiguity() {
// LIEF allocates space for new/extended sections between the last load command
// and the first section in the first segment.
- // We are not willing to change the distance between the end of the `__text` section
- // and start of `__DATA` segment, keeping `__text` section in a "fixed" position.
- // Due to above there might happen a "reverse" alignment gap between `__text` section
- // and a section that was allocated in front of it.
+ // We do not want to change the distance between the end of the `__text`
+ // section and start of `__DATA` segment, keeping `__text` section in a "fixed"
+ // position. Due to the above, there might be a "reverse" alignment gap between
+ // `__text` section and a section that was allocated in front of it.
auto is_gap_reversed = [](const Section* LHS, const Section* RHS) {
return align_down(RHS->offset() - LHS->size(), LHS->alignment());
};
@@ -910,7 +978,7 @@ bool LayoutChecker::check_section_contiguity() {
}
std::sort(sections_vec.begin(), sections_vec.end(),
- [] (const Section* LHS, const Section* RHS) {
+ [](const Section* LHS, const Section* RHS) {
return LHS->offset() < RHS->offset();
});
@@ -920,19 +988,23 @@ bool LayoutChecker::check_section_contiguity() {
const uint32_t alignment = 1 << section->alignment();
if ((section->offset() % alignment) != 0) {
return error("section '{}' offset ({:#06x}) is misaligned (align={:#06x})",
- section->name(), section->virtual_address(),
- alignment);
+ section->name(), section->virtual_address(), alignment);
}
next_expected_offset = align(next_expected_offset, alignment);
if (section->offset() != next_expected_offset) {
- auto message = fmt::format("section '{}' is not at the expected offset: {:#06x} "
- "(expected={:#06x}, align={:#06x})",
- section->name(), section->offset(),
- next_expected_offset, alignment);
- if (it != sections_vec.begin() && is_gap_reversed(*std::prev(it), *it) && section->name() == "__text") {
- LIEF_WARN("Permitting section gap which could be caused by LIEF add_section/extend_section: {}", message);
+ auto message =
+ fmt::format("section '{}' is not at the expected offset: {:#06x} "
+ "(expected={:#06x}, align={:#06x})",
+ section->name(), section->offset(), next_expected_offset,
+ alignment);
+ if (it != sections_vec.begin() && is_gap_reversed(*std::prev(it), *it) &&
+ section->name() == "__text")
+ {
+ LIEF_WARN("Permitting section gap (possibly caused by "
+ "add_section/extend_section): {}",
+ message);
next_expected_offset = section->offset();
} else {
return error(message);
@@ -981,10 +1053,22 @@ bool LayoutChecker::check() {
return false;
}
+ if (!check_exports_trie()) {
+ return false;
+ }
+
if (!check_function_variants()) {
return false;
}
+ if (!check_function_variant_fixups()) {
+ return false;
+ }
+
+ if (!check_lazy_load_dylib_infos()) {
+ return false;
+ }
+
if (!check_section_contiguity()) {
return false;
}
@@ -993,7 +1077,9 @@ bool LayoutChecker::check() {
return false;
}
-
+ if (!check_tls()) {
+ return false;
+ }
// The following checks are only relevant for non-object files
if (binary.header().file_type() == Header::FILE_TYPE::OBJECT) {
@@ -1013,50 +1099,40 @@ bool LayoutChecker::check() {
if (dyld_info->rebase().first != offset) {
return error(R"delim(
__LINKEDIT does not start with LC_DYLD_INFO.rebase:
- Expecting offset: 0x{:x} while it is 0x{:x}
- )delim", offset, dyld_info->rebase().first);
+ Expecting offset: {:#x} while it is {:#x}
+ )delim",
+ offset, dyld_info->rebase().first);
}
- }
-
- else if (dyld_info->bind().first != 0) {
+ } else if (dyld_info->bind().first != 0) {
if (dyld_info->bind().first != offset) {
return error(R"delim(
__LINKEDIT does not start with LC_DYLD_INFO.bind:
- Expecting offset: 0x{:x} while it is 0x{:x}
- )delim", offset, dyld_info->bind().first);
+ Expecting offset: {:#x} while it is {:#x}
+ )delim",
+ offset, dyld_info->bind().first);
}
- }
-
- else if (dyld_info->export_info().first != 0) {
+ } else if (dyld_info->export_info().first != 0) {
if (dyld_info->export_info().first != offset &&
- dyld_info->weak_bind().first != 0 &&
- dyld_info->lazy_bind().first != 0 )
+ dyld_info->weak_bind().first != 0 && dyld_info->lazy_bind().first != 0)
{
return error(R"delim(
LC_DYLD_INFO.exports out of place:
- Expecting offset: 0x{:x} while it is 0x{:x}
- )delim", offset, dyld_info->export_info().first);
+ Expecting offset: {:#x} while it is {:#x}
+ )delim",
+ offset, dyld_info->export_info().first);
}
}
// Update Offset to end of dyld_info->contents
if (dyld_info->export_info().second != 0) {
offset = dyld_info->export_info().first + dyld_info->export_info().second;
- }
-
- else if (dyld_info->lazy_bind().second != 0) {
+ } else if (dyld_info->lazy_bind().second != 0) {
offset = dyld_info->lazy_bind().first + dyld_info->lazy_bind().second;
- }
-
- else if (dyld_info->weak_bind().second != 0) {
+ } else if (dyld_info->weak_bind().second != 0) {
offset = dyld_info->weak_bind().first + dyld_info->weak_bind().second;
- }
-
- else if (dyld_info->bind().second != 0) {
+ } else if (dyld_info->bind().second != 0) {
offset = dyld_info->bind().first + dyld_info->bind().second;
- }
-
- else if (dyld_info->rebase().second != 0) {
+ } else if (dyld_info->rebase().second != 0) {
offset = dyld_info->rebase().first + dyld_info->rebase().second;
}
}
@@ -1067,8 +1143,9 @@ bool LayoutChecker::check() {
if (fixups->data_offset() != offset) {
return error(R"delim(
__LINKEDIT does not start with LC_DYLD_CHAINED_FIXUPS:
- Expecting offset: 0x{:x} while it is 0x{:x}
- )delim", offset, fixups->data_offset());
+ Expecting offset: {:#x} while it is {:#x}
+ )delim",
+ offset, fixups->data_offset());
}
offset += fixups->data_size();
}
@@ -1079,8 +1156,9 @@ bool LayoutChecker::check() {
if (exports->data_offset() != offset) {
return error(R"delim(
LC_DYLD_EXPORTS_TRIE out of place in __LINKEDIT:
- Expecting offset: 0x{:x} while it is 0x{:x}
- )delim", offset, exports->data_offset());
+ Expecting offset: {:#x} while it is {:#x}
+ )delim",
+ offset, exports->data_offset());
}
}
offset += exports->data_size();
@@ -1091,8 +1169,9 @@ bool LayoutChecker::check() {
if (variants->data_offset() != offset) {
return error(R"delim(
LC_FUNCTION_VARIANTS out of place in __LINKEDIT:
- Expecting offset: 0x{:x} while it is 0x{:x}
- )delim", offset, variants->data_offset());
+ Expecting offset: {:#x} while it is {:#x}
+ )delim",
+ offset, variants->data_offset());
}
}
offset += variants->data_size();
@@ -1103,8 +1182,9 @@ bool LayoutChecker::check() {
if (fixups->data_offset() != offset) {
return error(R"delim(
LC_FUNCTION_VARIANT_FIXUPS out of place in __LINKEDIT:
- Expecting offset: 0x{:x} while it is 0x{:x}
- )delim", offset, fixups->data_offset());
+ Expecting offset: {:#x} while it is {:#x}
+ )delim",
+ offset, fixups->data_offset());
}
}
offset += fixups->data_size();
@@ -1119,8 +1199,9 @@ bool LayoutChecker::check() {
if (dyst->local_relocation_offset() != offset) {
return error(R"delim(
LC_DYSYMTAB local relocations out of place:
- Expecting offset: 0x{:x} while it is 0x{:x}
- )delim", offset, dyst->local_relocation_offset());
+ Expecting offset: {:#x} while it is {:#x}
+ )delim",
+ offset, dyst->local_relocation_offset());
}
offset += dyst->nb_local_relocations() * sizeof(details::relocation_info);
}
@@ -1130,19 +1211,38 @@ bool LayoutChecker::check() {
if (spi->data_offset() != 0 && spi->data_offset() != offset) {
return error(R"delim(
LC_SEGMENT_SPLIT_INFO out of place:
- Expecting offset: 0x{:x} while it is 0x{:x}
- )delim", offset, spi->data_offset());
+ Expecting offset: {:#x} while it is {:#x}
+ )delim",
+ offset, spi->data_offset());
}
offset += spi->data_size();
}
+ for (const LoadCommand& cmd : binary.commands()) {
+ const auto* lazy = cmd.cast<LazyLoadDylibInfo>();
+ if (lazy == nullptr) {
+ continue;
+ }
+ if (lazy->data_offset() != 0) {
+ if (lazy->data_offset() != offset) {
+ return error(R"delim(
+ LC_LAZY_LOAD_DYLIB_INFO out of place in __LINKEDIT:
+ Expecting offset: {:#x} while it is {:#x}
+ )delim",
+ offset, lazy->data_offset());
+ }
+ }
+ offset += lazy->data_size();
+ }
+
// Check consistency of Function starts
if (const FunctionStarts* fs = binary.function_starts()) {
if (fs->data_offset() != 0 && fs->data_offset() != offset) {
return error(R"delim(
LC_FUNCTION_STARTS out of place:
- Expecting offset: 0x{:x} while it is 0x{:x}
- )delim", offset, fs->data_offset());
+ Expecting offset: {:#x} while it is {:#x}
+ )delim",
+ offset, fs->data_offset());
}
offset += fs->data_size();
}
@@ -1152,8 +1252,9 @@ bool LayoutChecker::check() {
if (dic->data_offset() != 0 && dic->data_offset() != offset) {
return error(R"delim(
LC_DATA_IN_CODE out of place:
- Expecting offset: 0x{:x} while it is 0x{:x}
- )delim", offset, dic->data_offset());
+ Expecting offset: {:#x} while it is {:#x}
+ )delim",
+ offset, dic->data_offset());
}
offset += dic->data_size();
}
@@ -1162,8 +1263,9 @@ bool LayoutChecker::check() {
if (info->data_offset() != 0 && info->data_offset() != offset) {
return error(R"delim(
LC_ATOM_INFO out of place:
- Expecting offset: 0x{:x} while it is 0x{:x}
- )delim", offset, info->data_offset());
+ Expecting offset: {:#x} while it is {:#x}
+ )delim",
+ offset, info->data_offset());
}
offset += info->data_size();
}
@@ -1172,8 +1274,9 @@ bool LayoutChecker::check() {
if (cs->data_offset() != 0 && cs->data_offset() != offset) {
return error(R"delim(
LC_DYLIB_CODE_SIGN_DRS out of place:
- Expecting offset: 0x{:x} while it is 0x{:x}
- )delim", offset, cs->data_offset());
+ Expecting offset: {:#x} while it is {:#x}
+ )delim",
+ offset, cs->data_offset());
}
offset += cs->data_size();
}
@@ -1182,8 +1285,9 @@ bool LayoutChecker::check() {
if (opt->data_offset() != 0 && opt->data_offset() != offset) {
return error(R"delim(
LC_LINKER_OPTIMIZATION_HINT out of place:
- Expecting offset: 0x{:x} while it is 0x{:x}
- )delim", offset, opt->data_offset());
+ Expecting offset: {:#x} while it is {:#x}
+ )delim",
+ offset, opt->data_offset());
}
offset += opt->data_size();
}
@@ -1198,10 +1302,12 @@ bool LayoutChecker::check() {
if (st->symbol_offset() != offset) {
return error(R"delim(
LC_SYMTAB.nlist out of place:
- Expecting offset: 0x{:x} while it is 0x{:x}
- )delim", offset, st->symbol_offset());
+ Expecting offset: {:#x} while it is {:#x}
+ )delim",
+ offset, st->symbol_offset());
}
- offset += st->numberof_symbols() * (is64 ? sizeof(details::nlist_64) : sizeof(details::nlist_32));
+ offset += st->numberof_symbols() *
+ (is64 ? sizeof(details::nlist_64) : sizeof(details::nlist_32));
}
size_t isym = 0;
@@ -1211,7 +1317,8 @@ bool LayoutChecker::check() {
return error(R"delim(
LC_DYSYMTAB.nlocalsym out of place:
Expecting index: {} while it is {}
- )delim", isym, dyst->idx_local_symbol());
+ )delim",
+ isym, dyst->idx_local_symbol());
}
isym += dyst->nb_local_symbols();
}
@@ -1222,7 +1329,8 @@ bool LayoutChecker::check() {
return error(R"delim(
LC_DYSYMTAB.iextdefsym out of place:
Expecting index: {} while it is {}
- )delim", isym, dyst->idx_external_define_symbol());
+ )delim",
+ isym, dyst->idx_external_define_symbol());
}
isym += dyst->nb_external_define_symbols();
}
@@ -1232,7 +1340,8 @@ bool LayoutChecker::check() {
return error(R"delim(
LC_DYSYMTAB.nundefsym out of place:
Expecting index: {} while it is {}
- )delim", isym, dyst->idx_undefined_symbol());
+ )delim",
+ isym, dyst->idx_undefined_symbol());
}
isym += dyst->nb_undefined_symbols();
}
@@ -1242,8 +1351,9 @@ bool LayoutChecker::check() {
if (two->offset() != 0 && two->offset() != offset) {
return error(R"delim(
LC_TWOLEVEL_HINTS out of place:
- Expecting offset: 0x{:x} while it is 0x{:x}
- )delim", offset, two->offset());
+ Expecting offset: {:#x} while it is {:#x}
+ )delim",
+ offset, two->offset());
}
offset += two->hints().size() * sizeof(details::twolevel_hint);
}
@@ -1253,8 +1363,9 @@ bool LayoutChecker::check() {
if (dyst->external_relocation_offset() != offset) {
return error(R"delim(
LC_DYSYMTAB.extrel out of place:
- Expecting offset: 0x{:x} while it is 0x{:x}
- )delim", offset, dyst->external_relocation_offset());
+ Expecting offset: {:#x} while it is {:#x}
+ )delim",
+ offset, dyst->external_relocation_offset());
}
offset += dyst->nb_external_relocations() * sizeof(details::relocation_info);
@@ -1265,8 +1376,9 @@ bool LayoutChecker::check() {
if (dyst->indirect_symbol_offset() != offset) {
return error(R"delim(
LC_DYSYMTAB.nindirect out of place:
- Expecting offset: 0x{:x} while it is 0x{:x}
- )delim", offset, dyst->indirect_symbol_offset());
+ Expecting offset: {:#x} while it is {:#x}
+ )delim",
+ offset, dyst->indirect_symbol_offset());
}
offset += dyst->nb_indirect_symbols() * sizeof(uint32_t);
@@ -1282,63 +1394,71 @@ bool LayoutChecker::check() {
if (dyst->toc_offset() != offset && dyst->toc_offset() != rounded_offset) {
return error(R"delim(
LC_DYSYMTAB.toc out of place:
- Expecting offsets: 0x{:x} or 0x{:x} while it is 0x{:x}
- )delim", offset, rounded_offset, dyst->toc_offset());
+ Expecting offsets: {:#x} or {:#x} while it is {:#x}
+ )delim",
+ offset, rounded_offset, dyst->toc_offset());
}
if (dyst->toc_offset() == offset) {
- offset += dyst->nb_toc() * sizeof(details::dylib_table_of_contents);
+ offset += dyst->nb_toc() * sizeof(details::dylib_table_of_contents);
rounded_offset = offset;
- }
- else if (dyst->toc_offset() == rounded_offset) {
+ } else if (dyst->toc_offset() == rounded_offset) {
input_indirectsym_pad = rounded_offset - offset;
rounded_offset += dyst->nb_toc() * sizeof(details::dylib_table_of_contents);
- offset = rounded_offset;
+ offset = rounded_offset;
}
}
if (dyst->nb_module_table() != 0) {
- if (dyst->module_table_offset() != offset && dyst->module_table_offset() != rounded_offset) {
+ if (dyst->module_table_offset() != offset &&
+ dyst->module_table_offset() != rounded_offset)
+ {
return error(R"delim(
LC_DYSYMTAB.modtab out of place:
- Expecting offsets: 0x{:x} or 0x{:x} while it is 0x{:x}
- )delim", offset, rounded_offset, dyst->module_table_offset());
+ Expecting offsets: {:#x} or {:#x} while it is {:#x}
+ )delim",
+ offset, rounded_offset, dyst->module_table_offset());
}
if (is64) {
if (dyst->module_table_offset() == offset) {
- offset += dyst->nb_module_table() * sizeof(details::dylib_module_64);
+ offset += dyst->nb_module_table() * sizeof(details::dylib_module_64);
rounded_offset = offset;
- }
- else if (dyst->module_table_offset() == rounded_offset) {
+ } else if (dyst->module_table_offset() == rounded_offset) {
input_indirectsym_pad = rounded_offset - offset;
- rounded_offset += dyst->nb_module_table() * sizeof(details::dylib_module_64);
- offset = rounded_offset;
+ rounded_offset +=
+ dyst->nb_module_table() * sizeof(details::dylib_module_64);
+ offset = rounded_offset;
}
} else {
- offset += dyst->nb_module_table() * sizeof(details::dylib_module_32);
+ offset += dyst->nb_module_table() * sizeof(details::dylib_module_32);
rounded_offset = offset;
}
}
if (dyst->nb_external_reference_symbols() != 0) {
- if (dyst->external_reference_symbol_offset() != offset && dyst->external_reference_symbol_offset() != rounded_offset) {
+ if (dyst->external_reference_symbol_offset() != offset &&
+ dyst->external_reference_symbol_offset() != rounded_offset)
+ {
return error(R"delim(
LC_DYSYMTAB.extrefsym out of place:
- Expecting offsets: 0x{:x} or 0x{:x} while it is 0x{:x}
- )delim", offset, rounded_offset, dyst->external_reference_symbol_offset());
+ Expecting offsets: {:#x} or {:#x} while it is {:#x}
+ )delim",
+ offset, rounded_offset,
+ dyst->external_reference_symbol_offset());
}
if (dyst->external_reference_symbol_offset() == offset) {
- offset += dyst->nb_external_reference_symbols() * sizeof(details::dylib_reference);
+ offset +=
+ dyst->nb_external_reference_symbols() * sizeof(details::dylib_reference);
rounded_offset = offset;
- }
- else if (dyst->external_reference_symbol_offset() == rounded_offset) {
+ } else if (dyst->external_reference_symbol_offset() == rounded_offset) {
input_indirectsym_pad = rounded_offset - offset;
- rounded_offset += dyst->nb_external_reference_symbols() * sizeof(details::dylib_reference);
- offset = rounded_offset;
+ rounded_offset +=
+ dyst->nb_external_reference_symbols() * sizeof(details::dylib_reference);
+ offset = rounded_offset;
}
}
@@ -1347,19 +1467,19 @@ bool LayoutChecker::check() {
if (st->strings_offset() != offset && st->strings_offset() != rounded_offset) {
return error(R"delim(
LC_SYMTAB.strings out of place:
- Expecting offsets: 0x{:x} or 0x{:x} while it is 0x{:x}
- )delim", offset, rounded_offset, st->strings_offset());
+ Expecting offsets: {:#x} or {:#x} while it is {:#x}
+ )delim",
+ offset, rounded_offset, st->strings_offset());
}
if (st->strings_offset() == offset) {
- offset += st->strings_size();
+ offset += st->strings_size();
rounded_offset = offset;
- }
- else if (st->strings_offset() == rounded_offset) {
+ } else if (st->strings_offset() == rounded_offset) {
input_indirectsym_pad = rounded_offset - offset;
rounded_offset += st->strings_size();
- offset = rounded_offset;
+ offset = rounded_offset;
}
}
@@ -1368,8 +1488,9 @@ bool LayoutChecker::check() {
if (cs->data_offset() != rounded_offset) {
return error(R"delim(
LC_CODE_SIGNATURE out of place:
- Expecting offsets: 0x{:x} while it is 0x{:x}
- )delim", offset, cs->data_offset());
+ Expecting offsets: {:#x} while it is {:#x}
+ )delim",
+ offset, cs->data_offset());
}
rounded_offset += cs->data_size();
offset = rounded_offset;
@@ -1379,14 +1500,15 @@ bool LayoutChecker::check() {
const uint64_t object_size = linkedit->file_offset() + linkedit->file_size();
if (offset != object_size && rounded_offset != object_size) {
return error(R"delim(
- __LINKEDIT.end (0x{:x}) does not match 0x{:x} nor 0x{:x}
- )delim", object_size, offset, rounded_offset);
+ __LINKEDIT.end ({:#x}) does not match {:#x} nor {:#x}
+ )delim",
+ object_size, offset, rounded_offset);
}
return true;
}
bool LayoutChecker::check_chained_fixups() {
- static constexpr auto DYLD_CHAINED_PTR_START_NONE = 0xFFFF;
+ static constexpr auto DYLD_CHAINED_PTR_START_NONE = 0xFFFF;
static constexpr auto DYLD_CHAINED_PTR_START_MULTI = 0x8000;
const DyldChainedFixups* fixups = binary.dyld_chained_fixups();
if (fixups == nullptr) {
@@ -1399,11 +1521,15 @@ bool LayoutChecker::check_chained_fixups() {
}
if (fixups->starts_offset() >= fixups->data_size()) {
- return error("chained fixups, starts_offset exceeds LC_DYLD_CHAINED_FIXUPS size");
+ return error(
+ "chained fixups, starts_offset exceeds LC_DYLD_CHAINED_FIXUPS size"
+ );
}
if (fixups->imports_offset() >= fixups->data_size()) {
- return error("chained fixups, starts_offset exceeds LC_DYLD_CHAINED_FIXUPS size");
+ return error(
+ "chained fixups, starts_offset exceeds LC_DYLD_CHAINED_FIXUPS size"
+ );
}
uint32_t fmt_entry_size = 0;
@@ -1425,7 +1551,9 @@ bool LayoutChecker::check_chained_fixups() {
}
if (greater_than_add_or_overflow<uint32_t>(fixups->imports_offset(),
- fmt_entry_size * fixups->imports_count(), fixups->symbols_offset()))
+ fmt_entry_size *
+ fixups->imports_count(),
+ fixups->symbols_offset()))
{
return error("chained fixups, imports array overlaps symbols");
}
@@ -1450,24 +1578,30 @@ bool LayoutChecker::check_chained_fixups() {
const uint64_t end_of_start = fixups->imports_offset();
uint32_t max_valid_pointer_seen = 0;
size_t idx = 0;
- result<DYLD_CHAINED_PTR_FORMAT> ptr_format_for_all = make_error_code(lief_errors::not_found);
+ result<DYLD_CHAINED_PTR_FORMAT> ptr_format_for_all =
+ make_error_code(lief_errors::not_found);
- for (const DyldChainedFixups::chained_starts_in_segment& seg_start : starts_info) {
+ for (const DyldChainedFixups::chained_starts_in_segment& seg_start : starts_info)
+ {
if (seg_start.offset == 0) {
continue;
}
if (seg_start.size > end_of_start - seg_start.offset) {
return error("chained fixups, dyld_chained_starts_in_segment for segment "
- "#{} overruns imports table", idx);
+ "#{} overruns imports table",
+ idx);
}
if (seg_start.page_size != 0x1000 && seg_start.page_size != 0x4000) {
return error("chained fixups, page_size not 4KB or 16KB in segment "
- "#{} (page_size: 0x{:04x})", idx, seg_start.page_size);
+ "#{} (page_size: {:#06x})",
+ idx, seg_start.page_size);
}
- if ((int)seg_start.pointer_format > (int)DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SHARED_CACHE) {
+ if ((int)seg_start.pointer_format >
+ (int)DYLD_CHAINED_PTR_FORMAT::PTR_ARM64E_SHARED_CACHE)
+ {
return error("chained fixups, unknown pointer_format in segment #{}", idx);
}
@@ -1476,16 +1610,18 @@ bool LayoutChecker::check_chained_fixups() {
}
if (seg_start.pointer_format != ptr_format_for_all) {
- return error("chained fixups, pointer_format not same for all segments {} and {}",
- to_string(seg_start.pointer_format), to_string(*ptr_format_for_all));
+ return error(
+ "chained fixups, pointer_format not same for all segments {} and {}",
+ to_string(seg_start.pointer_format), to_string(*ptr_format_for_all)
+ );
}
if (seg_start.max_valid_pointer != 0) {
if (max_valid_pointer_seen == 0) {
max_valid_pointer_seen = seg_start.max_valid_pointer;
- }
- else if (max_valid_pointer_seen != seg_start.max_valid_pointer) {
- return error("chained fixups, different max_valid_pointer values seen in different segments");
+ } else if (max_valid_pointer_seen != seg_start.max_valid_pointer) {
+ return error("chained fixups, different max_valid_pointer values seen in "
+ "different segments");
}
}
if (seg_start.page_start.size() * sizeof(uint16_t) > seg_start.size) {
@@ -1493,7 +1629,8 @@ bool LayoutChecker::check_chained_fixups() {
}
[[maybe_unused]] uint32_t max_overflow_idx =
- (seg_start.size - sizeof(details::dyld_chained_starts_in_segment)) / sizeof(uint16_t);
+ (seg_start.size - sizeof(details::dyld_chained_starts_in_segment)) /
+ sizeof(uint16_t);
for (size_t page_idx = 0; page_idx < seg_start.page_count(); ++page_idx) {
uint16_t offset_in_page = seg_start.page_start[page_idx];
@@ -1503,11 +1640,11 @@ bool LayoutChecker::check_chained_fixups() {
if ((offset_in_page & DYLD_CHAINED_PTR_START_MULTI) == 0) {
if (offset_in_page > seg_start.page_size) {
- return error("chained fixups, in segment #{} page_start[{}]=0x{:04x} exceeds page size",
+ return error("chained fixups, in segment #{} page_start[{}]={:#06x} "
+ "exceeds page size",
idx, page_idx, offset_in_page);
}
- }
- else {
+ } else {
// TODO(romain): to implement
}
}
@@ -1516,47 +1653,379 @@ bool LayoutChecker::check_chained_fixups() {
return true;
}
+bool LayoutChecker::check_export(uint64_t imagebase, uint64_t max_vm_offset,
+ const ExportInfo& info) {
+ // skip other exports than regular and thread-local
+ if (info.has(ExportInfo::FLAGS::REEXPORT) ||
+ info.kind() == ExportInfo::KIND::ABSOLUTE_KIND)
+ {
+ return true;
+ }
+
+ uint64_t vm_offset = info.address();
+ if ((int64_t)vm_offset < 0) {
+ // Segments with an address lower than __TEXT
+ vm_offset = imagebase - vm_offset;
+ }
+
+ if (vm_offset > max_vm_offset) {
+ return error("vmOffset too large for {}",
+ info.has_symbol() ? info.symbol()->name() : "<empty>");
+ }
+ return true;
+}
+
+
+bool LayoutChecker::check_exports_trie() {
+ const DyldInfo* dyld_info = binary.dyld_info();
+ const DyldExportsTrie* exports_trie = binary.dyld_exports_trie();
+
+ if (dyld_info == nullptr && exports_trie == nullptr) {
+ return true;
+ }
+
+ // maxVmOffset is computed in Image::validLinkedit as the highest
+ // `runtimeOffset + runtimeSize` over all the segments except __LINKEDIT, with a
+ // lowest value of 0x4000. __PAGEZERO is *not* excluded.
+ uint64_t max_vm_offset = 0x4000;
+ uint64_t text_vmaddr = 0;
+ for (const SegmentCommand& seg : binary.segments()) {
+ if (seg.name() == "__TEXT") {
+ text_vmaddr = seg.virtual_address();
+ }
+ if (seg.name() == "__LINKEDIT") {
+ continue;
+ }
+ const uint64_t runtime_offset = seg.virtual_address() - text_vmaddr;
+ max_vm_offset =
+ std::max<uint64_t>(max_vm_offset, runtime_offset + seg.virtual_size());
+ }
+
+ const uint64_t imagebase = binary.imagebase();
+
+ if (exports_trie != nullptr) {
+ for (const ExportInfo& info : exports_trie->exports()) {
+ if (!check_export(imagebase, max_vm_offset, info)) {
+ return false;
+ }
+ }
+ }
+
+ if (dyld_info != nullptr) {
+ for (const ExportInfo& info : dyld_info->exports()) {
+ if (!check_export(imagebase, max_vm_offset, info)) {
+ return false;
+ }
+ }
+ }
+
+ return true;
+}
+
bool LayoutChecker::check_function_variants() {
using KIND = FunctionVariants::RuntimeTable::KIND;
+ using RuntimeTableEntry = FunctionVariants::RuntimeTableEntry;
const FunctionVariants* variants = binary.function_variants();
if (variants == nullptr) {
return true;
}
+ const FunctionStarts* func_starts = binary.function_starts();
+ const uint64_t imagebase = binary.imagebase();
+
+ // Check that the impl for RuntimeTableEntry target a function that is
+ // listed in LC_FUNCTION_STARTS. This is pretty conservative and dyld could relax
+ // this condition but this can be used to identify malformed modifications.
+ std::unordered_set<uint64_t> starts;
+ if (func_starts != nullptr) {
+ const std::vector<uint64_t>& fn = func_starts->functions();
+ starts.insert(fn.begin(), fn.end());
+ }
+
for (const FunctionVariants::RuntimeTable& entry : variants->runtime_table()) {
switch (entry.kind()) {
case KIND::ARM64:
case KIND::PER_PROCESS:
case KIND::SYSTEM_WIDE:
- case KIND::X86_64:
- break;
+ case KIND::X86_64: break;
default:
return error("unknown FunctionVariants::RuntimeTable::KIND ({})",
- (uint32_t)entry.kind());
+ (uint32_t)entry.kind());
}
// Check that the last entry is "default"
auto entries = entry.entries();
if (entries.empty()) {
- return error("Missing entries in FunctionVariants::RuntimeTable (offset=0x{:06x})", entry.offset());
+ return error(
+ "Missing entries in FunctionVariants::RuntimeTable (offset={:#08x})",
+ entry.offset()
+ );
}
- const FunctionVariants::RuntimeTableEntry& last = entries[entries.size() - 1];
+ const RuntimeTableEntry& last = entries[entries.size() - 1];
if (last.flag_bit_nums()[0] != 0) {
- return error("last entry in FunctionVariants::RuntimeTable entries is not 'default'");
+ return error(
+ "last entry in FunctionVariants::RuntimeTable entries is not 'default'"
+ );
+ }
+
+ if (func_starts == nullptr) {
+ continue;
+ }
+
+ for (const RuntimeTableEntry& impl_entry : entries) {
+ if (impl_entry.another_table()) {
+ continue;
+ }
+
+ const uint64_t va = imagebase + impl_entry.impl();
+ if (binary.segment_from_virtual_address(va) == nullptr) {
+ // tolerated
+ continue;
+ }
+
+ if (starts.find(impl_entry.impl()) == starts.end()) {
+ return error(
+ "FunctionVariants impl offset {:#x} (va: {:#x}) does not match any "
+ "LC_FUNCTION_STARTS entry",
+ impl_entry.impl(), va
+ );
+ }
}
}
return true;
}
+bool LayoutChecker::check_function_variant_fixups() {
+ const FunctionVariantFixups* fixups = binary.function_variant_fixups();
+ if (fixups == nullptr) {
+ return true;
+ }
+
+ // The payload is a bare array of fixed-size entries: a trailing partial
+ // entry would be silently dropped by dyld (it does size / sizeof(entry)).
+ if (fixups->data_size() % sizeof(details::function_variant_fixup_t) != 0) {
+ return error(
+ "LC_FUNCTION_VARIANT_FIXUPS payload size ({:#x}) is not a multiple of "
+ "the fixup entry size ({})",
+ fixups->data_size(), sizeof(details::function_variant_fixup_t)
+ );
+ }
+
+ auto segments = binary.segments();
+ const size_t nb_segments = segments.size();
+
+ // variant_index selects a FunctionVariants runtime table. dyld resolves a
+ // fixup as `image.segment(segIndex) + segOffset` pointing at table
+ // `#variantIndex`, so both indices must be in range.
+ const FunctionVariants* variants = binary.function_variants();
+
+ const size_t nb_tables =
+ variants == nullptr ? 0 : variants->runtime_table().size();
+
+ size_t idx = 0;
+ for (const FunctionVariantFixups::Fixup& fixup : fixups->fixups()) {
+ if (fixup.seg_index() >= nb_segments) {
+ return error(
+ "LC_FUNCTION_VARIANT_FIXUPS fixup #{} references segment #{} but the "
+ "binary only has {} segment(s)",
+ idx, fixup.seg_index(), nb_segments
+ );
+ }
+
+ const SegmentCommand& segment = segments[fixup.seg_index()];
+ if (fixup.seg_offset() + ptr_size() > segment.virtual_size()) {
+ return error(
+ "LC_FUNCTION_VARIANT_FIXUPS fixup #{} points outside of segment '{}' "
+ "(seg_offset={:#x}, vmsize={:#x})",
+ idx, segment.name(), fixup.seg_offset(), segment.virtual_size()
+ );
+ }
+
+ if (fixup.variant_index() >= nb_tables) {
+ return error(
+ "LC_FUNCTION_VARIANT_FIXUPS fixup #{} references function-variant "
+ "table #{} but the binary defines {} table(s)",
+ idx, fixup.variant_index(), nb_tables
+ );
+ }
+ ++idx;
+ }
+
+ return true;
+}
+
+
+bool LayoutChecker::check_lazy_load_dylib_infos() {
+ // clang-format off
+ //
+ // NOTE(romain): this is a 1x1 copy of the definition in dyld (mach_o/LazyLoadDylib.h)
+ struct LazyLoadDylibLinkEdit
+ {
+ uint32_t loadPathOffset; // path of dylib to load
+ uint32_t flagImageOffset; // image offset to flags global
+ uint16_t flags; // weak linked or not
+ uint16_t pointerFormat; // e.g. DYLD_CHAINED_PTR_ARM64E_USERLAND
+ uint32_t chainStartImageOffset; // image offset to fixup chain start
+ uint32_t symbolsCount; // how many symbol names to bind
+ uint32_t symbolStringArrayOffset; // offset of each symbol name within blob
+ // room for future fields here
+ // path string
+ // symbols strings
+ };
+ static constexpr size_t HEADER_SIZE = sizeof(LazyLoadDylibLinkEdit);
+ static_assert(HEADER_SIZE == 24);
+ // clang-format on
+
+ // 0x4000 according to Image::validStructureLinkedit
+ uint64_t max_vm_offset = 0x4000;
+ const uint64_t imagebase = binary.imagebase();
+ for (const SegmentCommand& seg : binary.segments()) {
+ if (seg.name() == "__LINKEDIT" || seg.name() == "__PAGEZERO") {
+ continue;
+ }
+ const uint64_t runtime_off =
+ seg.virtual_address() >= imagebase ? seg.virtual_address() - imagebase : 0;
+ max_vm_offset =
+ std::max<uint64_t>(max_vm_offset, runtime_off + seg.virtual_size());
+ }
+
+ for (const LoadCommand& cmd : binary.commands()) {
+ const auto* lazy = cmd.cast<LazyLoadDylibInfo>();
+ if (lazy == nullptr) {
+ continue;
+ }
+
+ span<const uint8_t> content = lazy->content();
+ if (content.size() < HEADER_SIZE) {
+ return error("LC_LAZY_LOAD_DYLIB_INFO payload size ({}) is too small "
+ "(minimum is {})",
+ content.size(), HEADER_SIZE);
+ }
+
+ SpanStream stream(content);
+ auto header = stream.peek<LazyLoadDylibLinkEdit>();
+ if (!header) {
+ return error("LC_LAZY_LOAD_DYLIB_INFO failed to read the header");
+ }
+
+ // sanity check loadPathOffset and its string terminator
+ if (header->loadPathOffset > content.size()) {
+ return error("LC_LAZY_LOAD_DYLIB_INFO loadPathOffset ({}) out of range "
+ "(max {})",
+ header->loadPathOffset, content.size());
+ }
+
+ const auto path_start = content.begin() + header->loadPathOffset;
+ if (std::find(path_start, content.end(), '\0') == content.end()) {
+ return error("LC_LAZY_LOAD_DYLIB_INFO load path is not null terminated");
+ }
+
+ // Ensure that `flagImageOffset` targets a valid segment.
+ // NOTE(romain): should we check for RW- permission?
+ if (header->flagImageOffset > max_vm_offset) {
+ return error("LC_LAZY_LOAD_DYLIB_INFO flagImageOffset ({:#x}) beyond max "
+ "vm offset ({:#x})",
+ header->flagImageOffset, max_vm_offset);
+ }
+
+ if (header->chainStartImageOffset > max_vm_offset) {
+ return error("LC_LAZY_LOAD_DYLIB_INFO chainStartImageOffset ({:#x}) beyond "
+ "max vm offset ({:#x})",
+ header->chainStartImageOffset, max_vm_offset);
+ }
+
+ // sanity check the symbol string-offset array bounds
+ const bool overflow = greater_than_add_or_overflow<uint64_t>(
+ header->symbolStringArrayOffset,
+ (uint64_t)header->symbolsCount * sizeof(uint32_t), content.size()
+ );
+ if (overflow) {
+ return error("LC_LAZY_LOAD_DYLIB_INFO symbolsCount ({}) too large to fit "
+ "in payload (size {})",
+ header->symbolsCount, content.size());
+ }
+
+ // sanity check each symbol string offset
+ for (uint32_t i = 0; i < header->symbolsCount; ++i) {
+ const uint64_t pos =
+ header->symbolStringArrayOffset + (uint64_t)i * sizeof(uint32_t);
+ auto sym_off = stream.peek<uint32_t>(pos);
+ if (!sym_off || *sym_off > content.size()) {
+ return error("LC_LAZY_LOAD_DYLIB_INFO symbolStringOffsets[{}] ({}) out "
+ "of range (max {})",
+ i, sym_off ? *sym_off : 0, content.size());
+ }
+ }
+ }
+
+ return true;
+}
+
+
+bool LayoutChecker::check_tls() {
+ const bool is32 = ptr_size() == sizeof(uint32_t);
+ const bool is64 = ptr_size() == sizeof(uint64_t);
+ assert(is32 || is64);
+ const ThreadLocalVariables* sec_vars = nullptr;
+ const Binary::range_t initial_content = binary.tlv_initial_content_range();
+ for (const Section& S : binary.sections()) {
+ if (const auto* sec = S.cast<ThreadLocalVariables>()) {
+ sec_vars = sec;
+ }
+
+ // See ThreadLocalVariables.cpp
+ const size_t sizeof_ = 3 * ptr_size();
+
+ if (sec_vars != nullptr) {
+ const size_t size = sec_vars->content().size();
+ if (size % sizeof_ != 0) {
+ return error(
+ "size ({}) of thread-locals section {} is not a multiple of {}", size,
+ sec_vars->name(), sizeof_
+ );
+ }
+ }
+ }
+
+ if (is64 && initial_content.size() > 4_GB) {
+ return error("unsupported thread-local, larger than 4GB");
+ }
+
+ if (is32 && initial_content.size() > 4_GB) {
+ return error("unsupported thread-local, larger than 4GB");
+ }
+
+ if (sec_vars != nullptr) {
+ for (const ThreadLocalVariables::Thunk& thunk : sec_vars->thunks()) {
+ if (thunk.offset > initial_content.size()) {
+ return error("malformed thread-local, offset={:#08x} is larger than total "
+ "size={:#08x}",
+ thunk.offset, initial_content.size());
+ }
+ if (is64 && thunk.key > std::numeric_limits<uint32_t>::max()) {
+ return error("thread_key_t {}, larger than uint32_t", thunk.key);
+ }
+
+ if (is32 && thunk.key > std::numeric_limits<uint16_t>::max()) {
+ return error("thread_key_t {}, larger than uint16_t", thunk.key);
+ }
+ }
+ }
+
+ return true;
+}
+
bool check_layout(const FatBinary& fat, std::string* error) {
bool is_ok = true;
for (Binary& bin : fat) {
LayoutChecker checker(bin);
if (!checker.check()) {
is_ok = false;
- if (error) { *error += checker.get_error() + '\n'; }
+ if (error) {
+ *error += checker.get_error() + '\n';
+ }
}
}
return is_ok;
@@ -1566,7 +2035,9 @@ bool check_layout(const FatBinary& fat, std::string* error) {
bool check_layout(const Binary& binary, std::string* error) {
LayoutChecker checker(binary);
if (!checker.check()) {
- if (error) { *error += checker.get_error() + '\n'; }
+ if (error) {
+ *error += checker.get_error() + '\n';
+ }
return false;
}
return true;
diff --git a/deps/LIEF/src/MachO/utils.cpp b/deps/LIEF/src/MachO/utils.cpp
index b7f3a046aa0..c8665c85260 100644
--- a/deps/LIEF/src/MachO/utils.cpp
+++ b/deps/LIEF/src/MachO/utils.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,8 +31,7 @@
#include "logging.hpp"
-namespace LIEF {
-namespace MachO {
+namespace LIEF::MachO {
inline result<MACHO_TYPES> magic_from_stream(BinaryStream& stream,
bool keep_offset = false) {
@@ -48,17 +47,47 @@ inline result<MACHO_TYPES> magic_from_stream(BinaryStream& stream,
}
bool is_macho(BinaryStream& stream) {
- if (auto magic_res = magic_from_stream(stream)) {
- const MACHO_TYPES magic = *magic_res;
- return (magic == MACHO_TYPES::MAGIC ||
- magic == MACHO_TYPES::CIGAM ||
- magic == MACHO_TYPES::MAGIC_64 ||
- magic == MACHO_TYPES::CIGAM_64 ||
- magic == MACHO_TYPES::MAGIC_FAT ||
- magic == MACHO_TYPES::CIGAM_FAT ||
- magic == MACHO_TYPES::NEURAL_MODEL);
+ ScopedStream scoped(stream, 0);
+
+ std::array<uint8_t, 8> header = {0};
+ if (!scoped->peek_array(header)) {
+ return false;
}
- return false;
+
+ // Check for Java class file: CA FE BA BE + valid minor/major version
+ if (header[0] == 0xCA && header[1] == 0xFE && header[2] == 0xBA &&
+ header[3] == 0xBE)
+ {
+ static constexpr auto MIN_JAVA_VERSION = 45;
+ static constexpr auto MAX_JAVA_VERSION = 69;
+
+ // combine bytes 4 & 5 to get the minor version
+ uint16_t minor = (header[4] << 8) | header[5];
+ // combine bytes 6 & 7 to get the major version
+ uint16_t major = (header[6] << 8) | header[7];
+
+ // ranges of current java minor and major versions
+ if (minor <= std::numeric_limits<uint16_t>::max() &&
+ MIN_JAVA_VERSION <= major && major <= MAX_JAVA_VERSION)
+ {
+ // This is a Java file
+ return false;
+ }
+ }
+
+ auto magic_res = MachO::magic_from_stream(*scoped);
+ if (!magic_res) {
+ return false;
+ }
+ const MachO::MACHO_TYPES magic = *magic_res;
+
+ return (magic == MachO::MACHO_TYPES::MAGIC ||
+ magic == MachO::MACHO_TYPES::CIGAM ||
+ magic == MachO::MACHO_TYPES::MAGIC_64 ||
+ magic == MachO::MACHO_TYPES::CIGAM_64 ||
+ magic == MachO::MACHO_TYPES::MAGIC_FAT ||
+ magic == MachO::MACHO_TYPES::CIGAM_FAT ||
+ magic == MachO::MACHO_TYPES::NEURAL_MODEL);
}
bool is_macho(const std::string& file) {
@@ -79,8 +108,7 @@ bool is_fat(const std::string& file) {
if (auto stream = FileStream::from_file(file)) {
if (auto magic_res = magic_from_stream(*stream)) {
const MACHO_TYPES magic = *magic_res;
- return magic == MACHO_TYPES::MAGIC_FAT ||
- magic == MACHO_TYPES::CIGAM_FAT;
+ return magic == MACHO_TYPES::MAGIC_FAT || magic == MACHO_TYPES::CIGAM_FAT;
}
}
return false;
@@ -90,8 +118,7 @@ bool is_64(BinaryStream& stream) {
ScopedStream scoped(stream, 0);
if (auto magic_res = magic_from_stream(*scoped)) {
const MACHO_TYPES magic = *magic_res;
- return magic == MACHO_TYPES::MAGIC_64 ||
- magic == MACHO_TYPES::CIGAM_64;
+ return magic == MACHO_TYPES::MAGIC_64 || magic == MACHO_TYPES::CIGAM_64;
}
return false;
}
@@ -105,7 +132,7 @@ bool is_64(const std::string& file) {
template<class MACHO_T>
-void foreach_segment_impl(BinaryStream& stream, const segment_callback_t cbk) {
+void foreach_segment_impl(BinaryStream& stream, const segment_callback_t& cbk) {
using header_t = typename MACHO_T::header;
using segment_command_t = typename MACHO_T::segment_command;
auto res_hdr = stream.read<header_t>();
@@ -114,14 +141,25 @@ void foreach_segment_impl(BinaryStream& stream, const segment_callback_t cbk) {
}
const auto& hdr = *res_hdr;
+ const uint64_t cmds_start = stream.pos(); // right after the header
+ const uint64_t cmds_end = cmds_start + hdr.sizeofcmds;
+
for (size_t i = 0; i < hdr.ncmds; ++i) {
+ if ((stream.pos() + sizeof(details::load_command)) > cmds_end) {
+ break;
+ }
const auto raw_cmd = stream.peek<details::load_command>();
if (!raw_cmd) {
break;
}
+ if (raw_cmd->cmdsize < sizeof(details::load_command) ||
+ (stream.pos() + raw_cmd->cmdsize) > cmds_end)
+ {
+ break;
+ }
const auto cmd = LoadCommand::TYPE(raw_cmd->cmd);
- const bool is_segment = cmd == LoadCommand::TYPE::SEGMENT ||
- cmd == LoadCommand::TYPE::SEGMENT_64;
+ const bool is_segment =
+ cmd == LoadCommand::TYPE::SEGMENT || cmd == LoadCommand::TYPE::SEGMENT_64;
if (is_segment) {
auto res_segment = stream.peek<segment_command_t>();
if (!res_segment) {
@@ -136,7 +174,7 @@ void foreach_segment_impl(BinaryStream& stream, const segment_callback_t cbk) {
}
}
-void foreach_segment(BinaryStream& stream, const segment_callback_t cbk) {
+void foreach_segment(BinaryStream& stream, const segment_callback_t& cbk) {
ScopedStream scoped(stream);
auto magic_res = magic_from_stream(*scoped, /*keep_offset=*/true);
if (!magic_res) {
@@ -146,15 +184,14 @@ void foreach_segment(BinaryStream& stream, const segment_callback_t cbk) {
const MACHO_TYPES magic = *magic_res;
if (magic == MACHO_TYPES::MAGIC_FAT || magic == MACHO_TYPES::CIGAM_FAT) {
- LIEF_WARN("Can't get the file size of a FAT Macho-O");
+ LIEF_WARN("Cannot determine file size of a FAT Mach-O");
return;
}
- const bool is64 = magic == MACHO_TYPES::MAGIC_64 ||
- magic == MACHO_TYPES::CIGAM_64;
+ const bool is64 =
+ magic == MACHO_TYPES::MAGIC_64 || magic == MACHO_TYPES::CIGAM_64;
- const bool is32 = magic == MACHO_TYPES::MAGIC ||
- magic == MACHO_TYPES::CIGAM;
+ const bool is32 = magic == MACHO_TYPES::MAGIC || magic == MACHO_TYPES::CIGAM;
if (!is64 && !is32) {
return;
@@ -165,5 +202,3 @@ void foreach_segment(BinaryStream& stream, const segment_callback_t cbk) {
}
}
-}
-
diff --git a/deps/LIEF/src/OAT/Binary.cpp b/deps/LIEF/src/OAT/Binary.cpp
index 775bd6199a7..cc9b3492983 100644
--- a/deps/LIEF/src/OAT/Binary.cpp
+++ b/deps/LIEF/src/OAT/Binary.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,12 +27,11 @@
#if defined(LIEF_JSON_SUPPORT)
-#include "visitors/json.hpp"
+ #include "visitors/json.hpp"
#endif
-namespace LIEF {
-namespace OAT {
+namespace LIEF::OAT {
Binary::Binary() {
format_ = LIEF::Binary::FORMATS::OAT;
@@ -80,19 +79,22 @@ Binary::it_classes Binary::classes() {
}
bool Binary::has_class(const std::string& class_name) const {
- return classes_.find(DEX::Class::fullname_normalized(class_name)) != std::end(classes_);
+ return classes_.find(DEX::Class::fullname_normalized(class_name)) !=
+ classes_.end();
}
const Class* Binary::get_class(const std::string& class_name) const {
auto it = classes_.find(DEX::Class::fullname_normalized(class_name));
- if (it == std::end(classes_)) {
+ if (it == classes_.end()) {
return nullptr;
}
return it->second;
}
Class* Binary::get_class(const std::string& class_name) {
- return const_cast<Class*>(static_cast<const Binary*>(this)->get_class(class_name));
+ return const_cast<Class*>(
+ static_cast<const Binary*>(this)->get_class(class_name)
+ );
}
@@ -101,12 +103,12 @@ const Class* Binary::get_class(size_t index) const {
return nullptr;
}
- const auto it = std::find_if(std::begin(classes_), std::end(classes_),
- [index] (const std::pair<std::string, Class*>& p) {
- return p.second->index() == index;
- });
+ const auto it = std::find_if(classes_.begin(), classes_.end(),
+ [index](const std::pair<std::string, Class*>& p) {
+ return p.second->index() == index;
+ });
- if (it == std::end(classes_)) {
+ if (it == classes_.end()) {
return nullptr;
}
return it->second;
@@ -147,7 +149,6 @@ std::string Binary::dex2dex_json_info() {
#else
return "";
#endif
-
}
void Binary::add_class(std::unique_ptr<Class> cls) {
@@ -160,7 +161,6 @@ void Binary::accept(Visitor& visitor) const {
}
-
std::ostream& operator<<(std::ostream& os, const Binary& binary) {
os << "Header" << '\n';
@@ -185,4 +185,3 @@ std::ostream& operator<<(std::ostream& os, const Binary& binary) {
}
-}
diff --git a/deps/LIEF/src/OAT/Class.cpp b/deps/LIEF/src/OAT/Class.cpp
index 5dd62b5afe1..c610d9d06ce 100644
--- a/deps/LIEF/src/OAT/Class.cpp
+++ b/deps/LIEF/src/OAT/Class.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,25 +27,24 @@
#include "logging.hpp"
#if defined(_MSC_VER)
-# include <intrin.h>
-# define __builtin_popcount __popcnt
+ #include <intrin.h>
+ #define __builtin_popcount __popcnt
#endif
-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {
Class::Class(const Class&) = default;
Class& Class::operator=(const Class&) = default;
Class::Class() = default;
-Class::Class(OAT_CLASS_STATUS status, OAT_CLASS_TYPES type,
- DEX::Class* dex_class, std::vector<uint32_t> bitmap) :
+Class::Class(OAT_CLASS_STATUS status, OAT_CLASS_TYPES type, DEX::Class* dex_class,
+ std::vector<uint32_t> bitmap) :
dex_class_{dex_class},
status_{status},
type_{type},
- method_bitmap_{std::move(bitmap)}
-{}
+ method_bitmap_{std::move(bitmap)} {}
bool Class::has_dex_class() const {
@@ -110,19 +109,17 @@ bool Class::is_quickened(const DEX::Method& m) const {
}
const auto& methods = cls.methods();
- const auto it_method_index = std::find_if(std::begin(methods), std::end(methods),
- [&m] (const DEX::Method& mth) {
- return &m == &mth;
- });
+ const auto it_method_index =
+ std::find_if(methods.begin(), methods.end(),
+ [&m](const DEX::Method& mth) { return &m == &mth; });
- if (it_method_index == std::end(methods)) {
- LIEF_ERR("Can't find '{}' in {}", m.name(), cls.fullname());
+ if (it_method_index == methods.end()) {
+ LIEF_ERR("Method '{}' not found in {}", m.name(), cls.fullname());
return false;
}
- uint32_t relative_index = std::distance(std::begin(methods), it_method_index);
+ uint32_t relative_index = std::distance(methods.begin(), it_method_index);
return is_quickened(relative_index);
-
}
bool Class::is_quickened(uint32_t relative_index) const {
@@ -135,10 +132,10 @@ bool Class::is_quickened(uint32_t relative_index) const {
}
if (type() == OAT_CLASS_TYPES::OAT_CLASS_SOME_COMPILED) {
- const uint32_t bitmap_idx = relative_index >> 5;
+ const uint32_t bitmap_idx = relative_index >> 5;
const uint32_t bitmap_mask = 1 << (relative_index & 0x1F);
if (bitmap_idx > method_bitmap_.size()) {
- LIEF_ERR("bitmap_idx: 0x{:x} is corrupted", bitmap_idx);
+ LIEF_ERR("Corrupted bitmap index: {:#x}", bitmap_idx);
return false;
}
@@ -154,23 +151,24 @@ uint32_t Class::method_offsets_index(const DEX::Method& m) const {
const DEX::Class& cls = *dex_class();
const auto& methods = cls.methods();
- const auto it_method_index = std::find_if(std::begin(methods), std::end(methods),
- [&m] (const DEX::Method& mth) {
- return &m == &mth;
- });
+ const auto it_method_index =
+ std::find_if(methods.begin(), methods.end(),
+ [&m](const DEX::Method& mth) { return &m == &mth; });
- if (it_method_index == std::end(methods)) {
- LIEF_ERR("Can't find '{}' in {}", m.name(), cls.fullname());
+ if (it_method_index == methods.end()) {
+ LIEF_ERR("Method '{}' not found in {}", m.name(), cls.fullname());
return UINT_MAX;
}
- uint32_t relative_index = std::distance(std::begin(methods), it_method_index);
+ uint32_t relative_index = std::distance(methods.begin(), it_method_index);
return method_offsets_index(relative_index);
}
uint32_t Class::method_offsets_index(uint32_t relative_index) const {
- if (!is_quickened(relative_index) || type() == OAT_CLASS_TYPES::OAT_CLASS_NONE_COMPILED) {
+ if (!is_quickened(relative_index) ||
+ type() == OAT_CLASS_TYPES::OAT_CLASS_NONE_COMPILED)
+ {
return UINT_MAX;
}
@@ -179,7 +177,7 @@ uint32_t Class::method_offsets_index(uint32_t relative_index) const {
}
if (type() == OAT_CLASS_TYPES::OAT_CLASS_SOME_COMPILED) {
- const uint32_t bitmap_end_idx = relative_index >> 5;
+ const uint32_t bitmap_end_idx = relative_index >> 5;
const uint32_t partial_word_bits = relative_index & 0x1f;
uint32_t count = 0;
for (uint32_t word = 0; word < bitmap_end_idx; ++word) {
@@ -187,7 +185,8 @@ uint32_t Class::method_offsets_index(uint32_t relative_index) const {
}
if (partial_word_bits != 0) {
- count += __builtin_popcount(method_bitmap_[bitmap_end_idx] & ~(0xffffffffu << partial_word_bits));
+ count += __builtin_popcount(method_bitmap_[bitmap_end_idx] &
+ ~(0xffffffffu << partial_word_bits));
}
return count;
@@ -203,17 +202,16 @@ uint32_t Class::relative_index(const DEX::Method& m) const {
const DEX::Class& cls = *dex_class();
const auto& methods = cls.methods();
- const auto it_method_index = std::find_if(std::begin(methods), std::end(methods),
- [&m] (const DEX::Method& mth) {
- return &m == &mth;
- });
+ const auto it_method_index =
+ std::find_if(methods.begin(), methods.end(),
+ [&m](const DEX::Method& mth) { return &m == &mth; });
- if (it_method_index == std::end(methods)) {
- LIEF_ERR("Can't find '{}' in {}", m.name(), cls.fullname());
+ if (it_method_index == methods.end()) {
+ LIEF_ERR("Method '{}' not found in {}", m.name(), cls.fullname());
return UINT_MAX;
}
- return std::distance(std::begin(methods), it_method_index);
+ return std::distance(methods.begin(), it_method_index);
}
uint32_t Class::relative_index(uint32_t method_absolute_index) const {
@@ -223,18 +221,19 @@ uint32_t Class::relative_index(uint32_t method_absolute_index) const {
const DEX::Class& cls = *dex_class();
const auto& methods = cls.methods();
- const auto it_method_index = std::find_if(std::begin(methods), std::end(methods),
- [method_absolute_index] (const DEX::Method& mth) {
- return mth.index() == method_absolute_index;
- });
-
- if (it_method_index == std::end(methods)) {
- LIEF_ERR("Can't find find method with index {:d} in {}", method_absolute_index, cls.fullname());
+ const auto it_method_index =
+ std::find_if(methods.begin(), methods.end(),
+ [method_absolute_index](const DEX::Method& mth) {
+ return mth.index() == method_absolute_index;
+ });
+
+ if (it_method_index == methods.end()) {
+ LIEF_ERR("Method index {:d} not found in {}", method_absolute_index,
+ cls.fullname());
return UINT_MAX;
}
- return std::distance(std::begin(methods), it_method_index);
-
+ return std::distance(methods.begin(), it_method_index);
}
@@ -243,18 +242,14 @@ void Class::accept(Visitor& visitor) const {
}
-
std::ostream& operator<<(std::ostream& os, const Class& cls) {
- os << cls.fullname() << " - "
- << to_string(cls.status()) << " - "
- << to_string(cls.type()) << " - "
- << std::dec << cls.methods().size() << " methods";
+ os << cls.fullname() << " - " << to_string(cls.status()) << " - "
+ << to_string(cls.type()) << " - " << std::dec << cls.methods().size()
+ << " methods";
return os;
}
Class::~Class() = default;
-
-}
}
diff --git a/deps/LIEF/src/OAT/DexFile.cpp b/deps/LIEF/src/OAT/DexFile.cpp
index e0fb4410ec3..c06fd382cbb 100644
--- a/deps/LIEF/src/OAT/DexFile.cpp
+++ b/deps/LIEF/src/OAT/DexFile.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,8 +18,8 @@
#include "LIEF/OAT/hash.hpp"
#include <ostream>
-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {
DexFile::DexFile(const DexFile&) = default;
DexFile& DexFile::operator=(const DexFile&) = default;
@@ -83,15 +83,13 @@ void DexFile::accept(Visitor& visitor) const {
}
-
std::ostream& operator<<(std::ostream& os, const DexFile& dex_file) {
- os << dex_file.location() << " - " << std::hex << std::showbase << "(Checksum: " << dex_file.checksum() << ")";
+ os << dex_file.location() << " - " << std::hex << std::showbase
+ << "(Checksum: " << dex_file.checksum() << ")";
return os;
}
DexFile::~DexFile() = default;
-
-}
}
diff --git a/deps/LIEF/src/OAT/EnumToString.cpp b/deps/LIEF/src/OAT/EnumToString.cpp
index 5647104849d..04df09341ce 100644
--- a/deps/LIEF/src/OAT/EnumToString.cpp
+++ b/deps/LIEF/src/OAT/EnumToString.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,14 +18,15 @@
#include "frozen.hpp"
-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {
const char* to_string(OAT_CLASS_TYPES e) {
- CONST_MAP(OAT_CLASS_TYPES, const char*, 3) enumStrings {
- { OAT_CLASS_TYPES::OAT_CLASS_ALL_COMPILED, "ALL_COMPILED" },
- { OAT_CLASS_TYPES::OAT_CLASS_SOME_COMPILED, "SOME_COMPILED" },
- { OAT_CLASS_TYPES::OAT_CLASS_NONE_COMPILED, "NONE_COMPILED" },
+ CONST_MAP(OAT_CLASS_TYPES, const char*, 3)
+ enumStrings{
+ {OAT_CLASS_TYPES::OAT_CLASS_ALL_COMPILED, "ALL_COMPILED"},
+ {OAT_CLASS_TYPES::OAT_CLASS_SOME_COMPILED, "SOME_COMPILED"},
+ {OAT_CLASS_TYPES::OAT_CLASS_NONE_COMPILED, "NONE_COMPILED"},
};
const auto it = enumStrings.find(e);
@@ -33,20 +34,22 @@ const char* to_string(OAT_CLASS_TYPES e) {
}
const char* to_string(OAT_CLASS_STATUS e) {
- CONST_MAP(OAT_CLASS_STATUS, const char*, 13) enumStrings {
- { OAT_CLASS_STATUS::STATUS_RETIRED, "RETIRED" },
- { OAT_CLASS_STATUS::STATUS_ERROR, "ERROR" },
- { OAT_CLASS_STATUS::STATUS_NOTREADY, "NOTREADY" },
- { OAT_CLASS_STATUS::STATUS_IDX, "IDX" },
- { OAT_CLASS_STATUS::STATUS_LOADED, "LOADED" },
- { OAT_CLASS_STATUS::STATUS_RESOLVING, "RESOLVING" },
- { OAT_CLASS_STATUS::STATUS_RESOLVED, "RESOLVED" },
- { OAT_CLASS_STATUS::STATUS_VERIFYING, "VERIFYING" },
- { OAT_CLASS_STATUS::STATUS_RETRY_VERIFICATION_AT_RUNTIME, "VERIFICATION_AT_RUNTIME" },
- { OAT_CLASS_STATUS::STATUS_VERIFYING_AT_RUNTIME, "VERIFYING_AT_RUNTIME" },
- { OAT_CLASS_STATUS::STATUS_VERIFIED, "VERIFIED" },
- { OAT_CLASS_STATUS::STATUS_INITIALIZING, "INITIALIZING" },
- { OAT_CLASS_STATUS::STATUS_INITIALIZED, "INITIALIZED" },
+ CONST_MAP(OAT_CLASS_STATUS, const char*, 13)
+ enumStrings{
+ {OAT_CLASS_STATUS::STATUS_RETIRED, "RETIRED"},
+ {OAT_CLASS_STATUS::STATUS_ERROR, "ERROR"},
+ {OAT_CLASS_STATUS::STATUS_NOTREADY, "NOTREADY"},
+ {OAT_CLASS_STATUS::STATUS_IDX, "IDX"},
+ {OAT_CLASS_STATUS::STATUS_LOADED, "LOADED"},
+ {OAT_CLASS_STATUS::STATUS_RESOLVING, "RESOLVING"},
+ {OAT_CLASS_STATUS::STATUS_RESOLVED, "RESOLVED"},
+ {OAT_CLASS_STATUS::STATUS_VERIFYING, "VERIFYING"},
+ {OAT_CLASS_STATUS::STATUS_RETRY_VERIFICATION_AT_RUNTIME,
+ "VERIFICATION_AT_RUNTIME"},
+ {OAT_CLASS_STATUS::STATUS_VERIFYING_AT_RUNTIME, "VERIFYING_AT_RUNTIME"},
+ {OAT_CLASS_STATUS::STATUS_VERIFIED, "VERIFIED"},
+ {OAT_CLASS_STATUS::STATUS_INITIALIZING, "INITIALIZING"},
+ {OAT_CLASS_STATUS::STATUS_INITIALIZED, "INITIALIZED"},
};
const auto it = enumStrings.find(e);
@@ -55,18 +58,19 @@ const char* to_string(OAT_CLASS_STATUS e) {
const char* to_string(HEADER_KEYS e) {
- CONST_MAP(HEADER_KEYS, const char*, 11) enumStrings {
- { HEADER_KEYS::KEY_IMAGE_LOCATION, "IMAGE_LOCATION" },
- { HEADER_KEYS::KEY_DEX2OAT_CMD_LINE, "DEX2OAT_CMD_LINE" },
- { HEADER_KEYS::KEY_DEX2OAT_HOST, "DEX2OAT_HOST" },
- { HEADER_KEYS::KEY_PIC, "PIC" },
- { HEADER_KEYS::KEY_HAS_PATCH_INFO, "HAS_PATCH_INFO" },
- { HEADER_KEYS::KEY_DEBUGGABLE, "DEBUGGABLE" },
- { HEADER_KEYS::KEY_NATIVE_DEBUGGABLE, "NATIVE_DEBUGGABLE" },
- { HEADER_KEYS::KEY_COMPILER_FILTER, "COMPILER_FILTER" },
- { HEADER_KEYS::KEY_CLASS_PATH, "CLASS_PATH" },
- { HEADER_KEYS::KEY_BOOT_CLASS_PATH, "BOOT_CLASS_PATH" },
- { HEADER_KEYS::KEY_CONCURRENT_COPYING, "CONCURRENT_COPYING" },
+ CONST_MAP(HEADER_KEYS, const char*, 11)
+ enumStrings{
+ {HEADER_KEYS::KEY_IMAGE_LOCATION, "IMAGE_LOCATION"},
+ {HEADER_KEYS::KEY_DEX2OAT_CMD_LINE, "DEX2OAT_CMD_LINE"},
+ {HEADER_KEYS::KEY_DEX2OAT_HOST, "DEX2OAT_HOST"},
+ {HEADER_KEYS::KEY_PIC, "PIC"},
+ {HEADER_KEYS::KEY_HAS_PATCH_INFO, "HAS_PATCH_INFO"},
+ {HEADER_KEYS::KEY_DEBUGGABLE, "DEBUGGABLE"},
+ {HEADER_KEYS::KEY_NATIVE_DEBUGGABLE, "NATIVE_DEBUGGABLE"},
+ {HEADER_KEYS::KEY_COMPILER_FILTER, "COMPILER_FILTER"},
+ {HEADER_KEYS::KEY_CLASS_PATH, "CLASS_PATH"},
+ {HEADER_KEYS::KEY_BOOT_CLASS_PATH, "BOOT_CLASS_PATH"},
+ {HEADER_KEYS::KEY_CONCURRENT_COPYING, "CONCURRENT_COPYING"},
};
const auto it = enumStrings.find(e);
@@ -75,15 +79,16 @@ const char* to_string(HEADER_KEYS e) {
const char* to_string(INSTRUCTION_SETS e) {
- CONST_MAP(INSTRUCTION_SETS, const char*, 8) enumStrings {
- { INSTRUCTION_SETS::INST_SET_NONE, "NONE" },
- { INSTRUCTION_SETS::INST_SET_ARM, "ARM" },
- { INSTRUCTION_SETS::INST_SET_ARM_64, "ARM_64" },
- { INSTRUCTION_SETS::INST_SET_THUMB2, "THUMB2" },
- { INSTRUCTION_SETS::INST_SET_X86, "X86" },
- { INSTRUCTION_SETS::INST_SET_X86_64, "X86_64" },
- { INSTRUCTION_SETS::INST_SET_MIPS, "MIPS" },
- { INSTRUCTION_SETS::INST_SET_MIPS_64, "MIPS_64" },
+ CONST_MAP(INSTRUCTION_SETS, const char*, 8)
+ enumStrings{
+ {INSTRUCTION_SETS::INST_SET_NONE, "NONE"},
+ {INSTRUCTION_SETS::INST_SET_ARM, "ARM"},
+ {INSTRUCTION_SETS::INST_SET_ARM_64, "ARM_64"},
+ {INSTRUCTION_SETS::INST_SET_THUMB2, "THUMB2"},
+ {INSTRUCTION_SETS::INST_SET_X86, "X86"},
+ {INSTRUCTION_SETS::INST_SET_X86_64, "X86_64"},
+ {INSTRUCTION_SETS::INST_SET_MIPS, "MIPS"},
+ {INSTRUCTION_SETS::INST_SET_MIPS_64, "MIPS_64"},
};
const auto it = enumStrings.find(e);
@@ -91,11 +96,4 @@ const char* to_string(INSTRUCTION_SETS e) {
}
-
-
-
-} // namespace OAT
-} // namespace LIEF
-
-
-
+} // namespace LIEF::OAT
diff --git a/deps/LIEF/src/OAT/Header.cpp b/deps/LIEF/src/OAT/Header.cpp
index aa4e6784d55..5d30b62119b 100644
--- a/deps/LIEF/src/OAT/Header.cpp
+++ b/deps/LIEF/src/OAT/Header.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,34 +22,33 @@
#include <iomanip>
#include <sstream>
-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {
Header::Header(const Header&) = default;
Header& Header::operator=(const Header&) = default;
Header::Header() :
- magic_{{'o', 'a', 't', '\n'}}
-{}
+ magic_{{'o', 'a', 't', '\n'}} {}
std::string Header::key_to_string(HEADER_KEYS key) {
const static std::map<HEADER_KEYS, const char*> keys2str = {
- { HEADER_KEYS::KEY_IMAGE_LOCATION, "image-location" },
- { HEADER_KEYS::KEY_DEX2OAT_CMD_LINE, "dex2oat-cmdline" },
- { HEADER_KEYS::KEY_DEX2OAT_HOST, "dex2oat-host" },
- { HEADER_KEYS::KEY_PIC, "pic" },
- { HEADER_KEYS::KEY_HAS_PATCH_INFO, "has-patch-info" },
- { HEADER_KEYS::KEY_DEBUGGABLE, "debuggable" },
- { HEADER_KEYS::KEY_NATIVE_DEBUGGABLE, "native-debuggable" },
- { HEADER_KEYS::KEY_COMPILER_FILTER, "compiler-filter" },
- { HEADER_KEYS::KEY_CLASS_PATH, "classpath" },
- { HEADER_KEYS::KEY_BOOT_CLASS_PATH, "bootclasspath" },
- { HEADER_KEYS::KEY_CONCURRENT_COPYING, "concurrent-copying" },
- { HEADER_KEYS::KE_COMPILATION_REASON, "compilation-reason" },
+ {HEADER_KEYS::KEY_IMAGE_LOCATION, "image-location"},
+ {HEADER_KEYS::KEY_DEX2OAT_CMD_LINE, "dex2oat-cmdline"},
+ {HEADER_KEYS::KEY_DEX2OAT_HOST, "dex2oat-host"},
+ {HEADER_KEYS::KEY_PIC, "pic"},
+ {HEADER_KEYS::KEY_HAS_PATCH_INFO, "has-patch-info"},
+ {HEADER_KEYS::KEY_DEBUGGABLE, "debuggable"},
+ {HEADER_KEYS::KEY_NATIVE_DEBUGGABLE, "native-debuggable"},
+ {HEADER_KEYS::KEY_COMPILER_FILTER, "compiler-filter"},
+ {HEADER_KEYS::KEY_CLASS_PATH, "classpath"},
+ {HEADER_KEYS::KEY_BOOT_CLASS_PATH, "bootclasspath"},
+ {HEADER_KEYS::KEY_CONCURRENT_COPYING, "concurrent-copying"},
+ {HEADER_KEYS::KE_COMPILATION_REASON, "compilation-reason"},
};
- auto it = keys2str.find(key);
+ auto it = keys2str.find(key);
return it == keys2str.end() ? "UNKNOWN" : it->second;
}
@@ -132,7 +131,7 @@ Header::it_key_values_t Header::key_values() {
it_key_values_t::container_type key_values_list;
key_values_list.reserve(dex2oat_context_.size());
- for (auto& [k, v] :dex2oat_context_) {
+ for (auto& [k, v] : dex2oat_context_) {
HEADER_KEYS key = k;
std::string& value = v;
key_values_list.emplace_back(key, value);
@@ -145,7 +144,7 @@ Header::it_const_key_values_t Header::key_values() const {
std::remove_const<it_const_key_values_t::container_type>::type key_values_list;
key_values_list.reserve(dex2oat_context_.size());
- for (const auto& [k, v] :dex2oat_context_) {
+ for (const auto& [k, v] : dex2oat_context_) {
HEADER_KEYS key = k;
const std::string& value = v;
key_values_list.emplace_back(key, value);
@@ -175,7 +174,7 @@ Header::values_t Header::values() const {
const std::string* Header::get(HEADER_KEYS key) const {
const auto it = dex2oat_context_.find(key);
- if (it == std::end(dex2oat_context_)) {
+ if (it == dex2oat_context_.end()) {
return nullptr;
}
return &it->second;
@@ -188,8 +187,8 @@ std::string* Header::get(HEADER_KEYS key) {
Header& Header::set(HEADER_KEYS key, const std::string& value) {
const auto it = dex2oat_context_.find(key);
- if (it == std::end(dex2oat_context_)) {
- LIEF_WARN("Can't find the key {}", to_string(key));
+ if (it == dex2oat_context_.end()) {
+ LIEF_WARN("Key {} not found", to_string(key));
return *this;
}
@@ -210,56 +209,76 @@ void Header::accept(Visitor& visitor) const {
}
-
-
-
std::ostream& operator<<(std::ostream& os, const Header& hdr) {
static constexpr size_t WIDTH = 45;
os << std::hex << std::left << std::showbase;
- //os << std::setw(33) << std::setfill(' ') << "Version:" << ident_magic << '\n';
- //os << std::setw(33) << std::setfill(' ') << "Location:" << ident_magic << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Checksum:" << std::hex << hdr.checksum() << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Instruction set:" << to_string(hdr.instruction_set()) << '\n';
- //os << std::setw(33) << std::setfill(' ') << "Instruction set features:" << ident_magic << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Dex file count:" << std::dec << hdr.nb_dex_files() << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Executable offset:" << std::hex << hdr.executable_offset() << '\n';
+ // os << std::setw(33) << std::setfill(' ') << "Version:" << ident_magic <<
+ // '\n'; os << std::setw(33) << std::setfill(' ') << "Location:" << ident_magic
+ // << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ') << "Checksum:" << std::hex
+ << hdr.checksum() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ')
+ << "Instruction set:" << to_string(hdr.instruction_set()) << '\n';
+ // os << std::setw(33) << std::setfill(' ') << "Instruction set features:" <<
+ // ident_magic << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ') << "Dex file count:" << std::dec
+ << hdr.nb_dex_files() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ') << "Executable offset:" << std::hex
+ << hdr.executable_offset() << '\n';
os << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Interpreter to Interpreter Bridge Offset:" << std::hex << hdr.i2i_bridge_offset() << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Interpreter to Compiled Code Bridge Offset:" << std::hex << hdr.i2c_code_bridge_offset() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ')
+ << "Interpreter to Interpreter Bridge Offset:" << std::hex
+ << hdr.i2i_bridge_offset() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ')
+ << "Interpreter to Compiled Code Bridge Offset:" << std::hex
+ << hdr.i2c_code_bridge_offset() << '\n';
os << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "JNI dlsym lookup offset:" << std::hex << hdr.jni_dlsym_lookup_offset() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ')
+ << "JNI dlsym lookup offset:" << std::hex << hdr.jni_dlsym_lookup_offset()
+ << '\n';
os << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Quick Generic JNI Trampoline Offset:" << std::hex << hdr.quick_generic_jni_trampoline_offset() << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Quick IMT Conflict Trampoline Offset:" << std::hex << hdr.quick_imt_conflict_trampoline_offset() << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Quick Resolution Trampoline Offset:" << std::hex << hdr.quick_resolution_trampoline_offset() << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Quick to Interpreter Bridge Offset:" << std::hex << hdr.quick_to_interpreter_bridge_offset() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ')
+ << "Quick Generic JNI Trampoline Offset:" << std::hex
+ << hdr.quick_generic_jni_trampoline_offset() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ')
+ << "Quick IMT Conflict Trampoline Offset:" << std::hex
+ << hdr.quick_imt_conflict_trampoline_offset() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ')
+ << "Quick Resolution Trampoline Offset:" << std::hex
+ << hdr.quick_resolution_trampoline_offset() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ')
+ << "Quick to Interpreter Bridge Offset:" << std::hex
+ << hdr.quick_to_interpreter_bridge_offset() << '\n';
os << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Image Patch Delta:" << std::dec << hdr.image_patch_delta() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ') << "Image Patch Delta:" << std::dec
+ << hdr.image_patch_delta() << '\n';
os << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Image File Location OAT Checksum:" << std::hex << hdr.image_file_location_oat_checksum() << '\n';
- os << std::setw(WIDTH) << std::setfill(' ') << "Image File Location OAT Begin:" << std::hex << hdr.image_file_location_oat_data_begin() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ')
+ << "Image File Location OAT Checksum:" << std::hex
+ << hdr.image_file_location_oat_checksum() << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ')
+ << "Image File Location OAT Begin:" << std::hex
+ << hdr.image_file_location_oat_data_begin() << '\n';
os << '\n';
for (const auto& p : hdr.key_values()) {
- os << std::setw(WIDTH) << std::setfill(' ') << Header::key_to_string(p.key) + ":" << *p.value << '\n';
+ os << std::setw(WIDTH) << std::setfill(' ')
+ << Header::key_to_string(p.key) + ":" << *p.value << '\n';
}
return os;
}
-
-
-}
}
diff --git a/deps/LIEF/src/OAT/Header.tcc b/deps/LIEF/src/OAT/Header.tcc
index a05c122d901..1effa48ec64 100644
--- a/deps/LIEF/src/OAT/Header.tcc
+++ b/deps/LIEF/src/OAT/Header.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,86 +16,88 @@
#include <string>
#include "LIEF/OAT/Header.hpp"
#include "OAT/Structures.hpp"
-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {
template<class T>
Header::Header(const T* header) :
magic_{},
- version_{0},
+
checksum_{header->adler32_checksum},
instruction_set_{static_cast<INSTRUCTION_SETS>(header->instruction_set)},
instruction_set_features_bitmap_{header->instruction_set_features_bitmap},
dex_file_count_{header->dex_file_count},
- oat_dex_files_offset_{0}, // (OAT 131)
executable_offset_{header->executable_offset},
i2i_bridge_offset_{header->i2i_bridge_offset},
i2c_code_bridge_offset_{header->i2c_code_bridge_offset},
jni_dlsym_lookup_offset_{header->jni_dlsym_lookup_offset},
- quick_generic_jni_trampoline_offset_{header->quick_generic_jni_trampoline_offset},
- quick_imt_conflict_trampoline_offset_{header->quick_imt_conflict_trampoline_offset},
+ quick_generic_jni_trampoline_offset_{
+ header->quick_generic_jni_trampoline_offset
+ },
+ quick_imt_conflict_trampoline_offset_{
+ header->quick_imt_conflict_trampoline_offset
+ },
quick_resolution_trampoline_offset_{header->quick_resolution_trampoline_offset},
quick_to_interpreter_bridge_offset_{header->quick_to_interpreter_bridge_offset},
image_patch_delta_{header->image_patch_delta},
image_file_location_oat_checksum_{header->image_file_location_oat_checksum},
image_file_location_oat_data_begin_{header->image_file_location_oat_data_begin},
key_value_store_size_{header->key_value_store_size},
- dex2oat_context_{}
-{
+ dex2oat_context_{} {
std::copy(std::begin(header->magic), std::end(header->magic),
- std::begin(magic_)
- );
- if (std::all_of(std::begin(header->oat_version), std::end(header->oat_version) - 1,
- ::isdigit))
+ std::begin(magic_));
+ if (std::all_of(std::begin(header->oat_version),
+ std::end(header->oat_version) - 1, ::isdigit))
{
version_ = static_cast<uint32_t>(
- std::stoi(
- std::string{reinterpret_cast<const char*>(header->oat_version), sizeof(header->oat_version)}));
+ std::stoi(std::string{reinterpret_cast<const char*>(header->oat_version),
+ sizeof(header->oat_version)})
+ );
}
-
}
template<>
Header::Header(const details::OAT_131::oat_header* header) :
magic_{},
- version_{0},
+
checksum_{header->adler32_checksum},
instruction_set_{static_cast<INSTRUCTION_SETS>(header->instruction_set)},
instruction_set_features_bitmap_{header->instruction_set_features_bitmap},
dex_file_count_{header->dex_file_count},
- oat_dex_files_offset_{header->oat_dex_files_offset}, // Since OAT 131 / Android 8.1.0
+ oat_dex_files_offset_{
+ header->oat_dex_files_offset
+ }, // Since OAT 131 / Android 8.1.0
executable_offset_{header->executable_offset},
i2i_bridge_offset_{header->i2i_bridge_offset},
i2c_code_bridge_offset_{header->i2c_code_bridge_offset},
jni_dlsym_lookup_offset_{header->jni_dlsym_lookup_offset},
- quick_generic_jni_trampoline_offset_{header->quick_generic_jni_trampoline_offset},
- quick_imt_conflict_trampoline_offset_{header->quick_imt_conflict_trampoline_offset},
+ quick_generic_jni_trampoline_offset_{
+ header->quick_generic_jni_trampoline_offset
+ },
+ quick_imt_conflict_trampoline_offset_{
+ header->quick_imt_conflict_trampoline_offset
+ },
quick_resolution_trampoline_offset_{header->quick_resolution_trampoline_offset},
quick_to_interpreter_bridge_offset_{header->quick_to_interpreter_bridge_offset},
image_patch_delta_{header->image_patch_delta},
image_file_location_oat_checksum_{header->image_file_location_oat_checksum},
image_file_location_oat_data_begin_{header->image_file_location_oat_data_begin},
key_value_store_size_{header->key_value_store_size},
- dex2oat_context_{}
-{
+ dex2oat_context_{} {
- std::copy(
- std::begin(header->magic),
- std::end(header->magic),
- std::begin(magic_)
- );
- if (std::all_of(
- std::begin(header->oat_version),
- std::end(header->oat_version) - 1,
- ::isdigit))
+ std::copy(std::begin(header->magic), std::end(header->magic),
+ std::begin(magic_));
+ if (std::all_of(std::begin(header->oat_version),
+ std::end(header->oat_version) - 1, ::isdigit))
{
- version_ = static_cast<uint32_t>(std::stoi(std::string{reinterpret_cast<const char*>(header->oat_version), sizeof(header->oat_version)}));
+ version_ = static_cast<uint32_t>(
+ std::stoi(std::string{reinterpret_cast<const char*>(header->oat_version),
+ sizeof(header->oat_version)})
+ );
}
-
}
-} // namespace OAT
-} // namespace LIEF
+} // namespace LIEF::OAT
diff --git a/deps/LIEF/src/OAT/Method.cpp b/deps/LIEF/src/OAT/Method.cpp
index 6209f3ea37e..915d38aa03f 100644
--- a/deps/LIEF/src/OAT/Method.cpp
+++ b/deps/LIEF/src/OAT/Method.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,18 +21,18 @@
#include "LIEF/OAT/Class.hpp"
#include "LIEF/DEX/Method.hpp"
-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {
Method::Method() = default;
Method::Method(const Method&) = default;
Method& Method::operator=(const Method&) = default;
-Method::Method(DEX::Method* method, Class* oat_class, std::vector<uint8_t> quick_code) :
+Method::Method(DEX::Method* method, Class* oat_class,
+ std::vector<uint8_t> quick_code) :
dex_method_{method},
class_{oat_class},
- quick_code_{std::move(quick_code)}
-{}
+ quick_code_{std::move(quick_code)} {}
const Class* Method::oat_class() const {
return class_;
@@ -90,7 +90,6 @@ void Method::accept(Visitor& visitor) const {
}
-
std::ostream& operator<<(std::ostream& os, const Method& meth) {
std::string pretty_name = meth.oat_class()->fullname();
pretty_name = pretty_name.substr(1, pretty_name.size() - 2);
@@ -110,6 +109,4 @@ std::ostream& operator<<(std::ostream& os, const Method& meth) {
Method::~Method() = default;
-
-}
}
diff --git a/deps/LIEF/src/OAT/Parser.cpp b/deps/LIEF/src/OAT/Parser.cpp
index 5f3851cf73b..7dfc94383a0 100644
--- a/deps/LIEF/src/OAT/Parser.cpp
+++ b/deps/LIEF/src/OAT/Parser.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,28 +29,31 @@
#include "Parser.tcc"
-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {
Parser::~Parser() = default;
-Parser::Parser() = default;
+Parser::Parser() = default;
std::unique_ptr<Binary> Parser::parse(const std::string& oat_file) {
if (!is_oat(oat_file)) {
- LIEF_ERR("{} is not an OAT", oat_file);
+ LIEF_ERR("'{}' is not an OAT file", oat_file);
return nullptr;
}
Parser parser{oat_file};
parser.init();
- std::unique_ptr<Binary> oat_binary{static_cast<Binary*>(parser.binary_.release())};
+ std::unique_ptr<Binary> oat_binary{
+ static_cast<Binary*>(parser.binary_.release())
+ };
return oat_binary;
}
-std::unique_ptr<Binary> Parser::parse(const std::string& oat_file, const std::string& vdex_file) {
+std::unique_ptr<Binary> Parser::parse(const std::string& oat_file,
+ const std::string& vdex_file) {
if (!is_oat(oat_file)) {
return nullptr;
}
@@ -63,25 +66,28 @@ std::unique_ptr<Binary> Parser::parse(const std::string& oat_file, const std::st
if (std::unique_ptr<VDEX::File> vdex = VDEX::Parser::parse(vdex_file)) {
parser.vdex_file_ = std::move(vdex);
} else {
- LIEF_WARN("Can't parse the VDEX file '{}'", vdex_file);
+ LIEF_WARN("Failed to parse VDEX file '{}'", vdex_file);
}
parser.init();
- std::unique_ptr<Binary> oat_binary{static_cast<Binary*>(parser.binary_.release())};
+ std::unique_ptr<Binary> oat_binary{
+ static_cast<Binary*>(parser.binary_.release())
+ };
return oat_binary;
-
}
std::unique_ptr<Binary> Parser::parse(std::vector<uint8_t> data) {
Parser parser{std::move(data)};
parser.init();
- std::unique_ptr<Binary> oat_binary{static_cast<Binary*>(parser.binary_.release())};
+ std::unique_ptr<Binary> oat_binary{
+ static_cast<Binary*>(parser.binary_.release())
+ };
return oat_binary;
}
Parser::Parser(std::vector<uint8_t> data) {
- stream_ = std::make_unique<VectorStream>(std::move(data));
- binary_ = std::unique_ptr<Binary>(new Binary{});
+ stream_ = std::make_unique<VectorStream>(std::move(data));
+ binary_ = std::unique_ptr<Binary>(new Binary{});
config_.count_mtd = ELF::ParserConfig::DYNSYM_COUNT::AUTO;
}
@@ -89,11 +95,27 @@ Parser::Parser(const std::string& file) {
if (auto s = VectorStream::from_file(file)) {
stream_ = std::make_unique<VectorStream>(std::move(*s));
}
- binary_ = std::unique_ptr<Binary>(new Binary{});
+ binary_ = std::unique_ptr<Binary>(new Binary{});
config_.count_mtd = ELF::ParserConfig::DYNSYM_COUNT::AUTO;
}
+result<uint64_t> Parser::oat_data_exec_gap() const {
+ static constexpr uint64_t MAX_GAP = 64_MB;
+
+ const uint64_t data_end = data_address_ + data_size_;
+ if (data_end < data_address_ || exec_start_ < data_end) {
+ return make_error_code(lief_errors::corrupted);
+ }
+
+ const uint64_t gap = exec_start_ - data_end;
+ if (gap > MAX_GAP) {
+ return make_error_code(lief_errors::corrupted);
+ }
+
+ return gap;
+}
+
bool Parser::has_vdex() const {
return vdex_file_ != nullptr;
}
@@ -110,7 +132,7 @@ void Parser::init() {
oat_bin.vdex_ = std::move(vdex_file_);
if (!oat_bin.has_vdex() && version > details::OAT_088::oat_version) {
- LIEF_INFO("No VDEX provided with this OAT file. Parsing will be incomplete");
+ LIEF_INFO("No VDEX provided, OAT parsing will be incomplete");
}
if (version <= details::OAT_064::oat_version) {
@@ -136,8 +158,6 @@ void Parser::init() {
if (version <= details::OAT_138::oat_version) {
return parse_binary<details::OAT138_t>();
}
-
}
-} // namespace OAT
-} // namespace LIEF
+} // namespace LIEF::OAT
diff --git a/deps/LIEF/src/OAT/Parser.tcc b/deps/LIEF/src/OAT/Parser.tcc
index 8149724ccf3..9661b764e35 100644
--- a/deps/LIEF/src/OAT/Parser.tcc
+++ b/deps/LIEF/src/OAT/Parser.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -37,8 +37,8 @@
#include "oat_131.tcc"
#include "LIEF/OAT/Parser.hpp"
-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {
template<>
@@ -59,40 +59,47 @@ void Parser::parse_binary<details::OAT64_t>() {
std::vector<uint8_t> raw_oat;
auto& oat = oat_binary();
- const auto* oat_data = oat.get_symbol("oatdata")->as<ELF::Symbol>();
+ const auto* oat_data_sym = oat.get_symbol("oatdata");
+ const auto* oat_data =
+ oat_data_sym != nullptr ? oat_data_sym->as<ELF::Symbol>() : nullptr;
if (oat_data != nullptr) {
- raw_oat.reserve(oat_data->size());
-
span<const uint8_t> raw_data =
- oat.get_content_from_virtual_address(oat_data->value(), oat_data->size());
+ oat.get_content_from_virtual_address(oat_data->value(), oat_data->size());
- std::copy(std::begin(raw_data), std::end(raw_data),
- std::back_inserter(raw_oat));
+ raw_oat.reserve(raw_data.size());
+
+ std::copy(raw_data.begin(), raw_data.end(), std::back_inserter(raw_oat));
data_address_ = oat_data->value();
- data_size_ = oat_data->size();
+ data_size_ = oat_data->size();
}
- const auto* oat_exec = oat.get_symbol("oatexec")->as<ELF::Symbol>();
+ const auto* oat_exec_sym = oat.get_symbol("oatexec");
+ const auto* oat_exec =
+ oat_exec_sym != nullptr ? oat_exec_sym->as<ELF::Symbol>() : nullptr;
if (oat_exec != nullptr) {
exec_start_ = oat_exec->value();
- exec_size_ = oat_exec->size();
+ exec_size_ = oat_exec->size();
span<const uint8_t> raw_oatexec =
- oat.get_content_from_virtual_address(oat_exec->value(), oat_exec->size());
+ oat.get_content_from_virtual_address(oat_exec->value(), oat_exec->size());
- uint32_t padding = exec_start_ - (data_address_ + data_size_);
+ auto gap = oat_data_exec_gap();
+ if (!gap) {
+ LIEF_WARN("Corrupted OAT layout: inconsistent oatdata/oatexec ranges");
+ return;
+ }
+ const uint64_t padding = *gap;
- raw_oat.reserve(raw_oat.size() + oat_exec->size() + padding);
- raw_oat.insert(std::end(raw_oat), padding, 0);
+ raw_oat.reserve(raw_oat.size() + raw_oatexec.size() + padding);
+ raw_oat.insert(raw_oat.end(), padding, 0);
- std::copy(std::begin(raw_oatexec), std::end(raw_oatexec),
- std::back_inserter(raw_oat));
+ std::copy(raw_oatexec.begin(), raw_oatexec.end(), std::back_inserter(raw_oat));
}
uint32_t padding = align(raw_oat.size(), sizeof(uint32_t) * 8) - raw_oat.size();
- raw_oat.insert(std::end(raw_oat), padding, 0);
+ raw_oat.insert(raw_oat.end(), padding, 0);
stream_ = std::make_unique<VectorStream>(std::move(raw_oat));
@@ -106,39 +113,46 @@ void Parser::parse_binary<details::OAT79_t>() {
std::vector<uint8_t> raw_oat;
auto& oat = oat_binary();
- const auto* oat_data = oat.get_symbol("oatdata")->as<ELF::Symbol>();
+ const auto* oat_data_sym = oat.get_symbol("oatdata");
+ const auto* oat_data =
+ oat_data_sym != nullptr ? oat_data_sym->as<ELF::Symbol>() : nullptr;
if (oat_data != nullptr) {
- raw_oat.reserve(oat_data->size());
-
span<const uint8_t> raw_data =
- oat.get_content_from_virtual_address(oat_data->value(), oat_data->size());
- std::move(std::begin(raw_data), std::end(raw_data),
- std::back_inserter(raw_oat));
+ oat.get_content_from_virtual_address(oat_data->value(), oat_data->size());
+
+ raw_oat.reserve(raw_data.size());
+ std::move(raw_data.begin(), raw_data.end(), std::back_inserter(raw_oat));
data_address_ = oat_data->value();
- data_size_ = oat_data->size();
+ data_size_ = oat_data->size();
}
- const auto* oat_exec = oat.get_symbol("oatexec")->as<ELF::Symbol>();
+ const auto* oat_exec_sym = oat.get_symbol("oatexec");
+ const auto* oat_exec =
+ oat_exec_sym != nullptr ? oat_exec_sym->as<ELF::Symbol>() : nullptr;
if (oat_exec != nullptr) {
exec_start_ = oat_exec->value();
- exec_size_ = oat_exec->size();
+ exec_size_ = oat_exec->size();
span<const uint8_t> raw_oatexec =
- oat.get_content_from_virtual_address(oat_exec->value(), oat_exec->size());
+ oat.get_content_from_virtual_address(oat_exec->value(), oat_exec->size());
- uint32_t padding = exec_start_ - (data_address_ + data_size_);
+ auto gap = oat_data_exec_gap();
+ if (!gap) {
+ LIEF_WARN("Corrupted OAT layout: inconsistent oatdata/oatexec ranges");
+ return;
+ }
+ const uint64_t padding = *gap;
- raw_oat.reserve(raw_oat.size() + oat_exec->size() + padding);
- raw_oat.insert(std::end(raw_oat), padding, 0);
+ raw_oat.reserve(raw_oat.size() + raw_oatexec.size() + padding);
+ raw_oat.insert(raw_oat.end(), padding, 0);
- std::copy(std::begin(raw_oatexec), std::end(raw_oatexec),
- std::back_inserter(raw_oat));
+ std::copy(raw_oatexec.begin(), raw_oatexec.end(), std::back_inserter(raw_oat));
}
uint32_t padding = align(raw_oat.size(), sizeof(uint32_t) * 8) - raw_oat.size();
- raw_oat.insert(std::end(raw_oat), padding, 0);
+ raw_oat.insert(raw_oat.end(), padding, 0);
stream_ = std::make_unique<VectorStream>(std::move(raw_oat));
@@ -154,38 +168,45 @@ template<>
void Parser::parse_binary<details::OAT88_t>() {
std::vector<uint8_t> raw_oat;
auto& oat = oat_binary();
- const auto* oat_data = oat.get_symbol("oatdata")->as<ELF::Symbol>();
+ const auto* oat_data_sym = oat.get_symbol("oatdata");
+ const auto* oat_data =
+ oat_data_sym != nullptr ? oat_data_sym->as<ELF::Symbol>() : nullptr;
if (oat_data != nullptr) {
- raw_oat.reserve(oat_data->size());
-
span<const uint8_t> raw_data =
- oat.get_content_from_virtual_address(oat_data->value(), oat_data->size());
- std::copy(std::begin(raw_data), std::end(raw_data),
- std::back_inserter(raw_oat));
+ oat.get_content_from_virtual_address(oat_data->value(), oat_data->size());
+
+ raw_oat.reserve(raw_data.size());
+ std::copy(raw_data.begin(), raw_data.end(), std::back_inserter(raw_oat));
data_address_ = oat_data->value();
- data_size_ = oat_data->size();
+ data_size_ = oat_data->size();
}
- const auto* oat_exec = oat.get_symbol("oatexec")->as<ELF::Symbol>();
+ const auto* oat_exec_sym = oat.get_symbol("oatexec");
+ const auto* oat_exec =
+ oat_exec_sym != nullptr ? oat_exec_sym->as<ELF::Symbol>() : nullptr;
if (oat_exec != nullptr) {
exec_start_ = oat_exec->value();
- exec_size_ = oat_exec->size();
+ exec_size_ = oat_exec->size();
span<const uint8_t> raw_oatexec =
- oat.get_content_from_virtual_address(oat_exec->value(), oat_exec->size());
+ oat.get_content_from_virtual_address(oat_exec->value(), oat_exec->size());
- uint32_t padding = exec_start_ - (data_address_ + data_size_);
+ auto gap = oat_data_exec_gap();
+ if (!gap) {
+ LIEF_WARN("Corrupted OAT layout: inconsistent oatdata/oatexec ranges");
+ return;
+ }
+ const uint64_t padding = *gap;
- raw_oat.reserve(raw_oat.size() + oat_exec->size() + padding);
- raw_oat.insert(std::end(raw_oat), padding, 0);
+ raw_oat.reserve(raw_oat.size() + raw_oatexec.size() + padding);
+ raw_oat.insert(raw_oat.end(), padding, 0);
- std::copy(std::begin(raw_oatexec), std::end(raw_oatexec),
- std::back_inserter(raw_oat));
+ std::copy(raw_oatexec.begin(), raw_oatexec.end(), std::back_inserter(raw_oat));
}
uint32_t padding = align(raw_oat.size(), sizeof(uint32_t) * 8) - raw_oat.size();
- raw_oat.insert(std::end(raw_oat), padding, 0);
+ raw_oat.insert(raw_oat.end(), padding, 0);
stream_ = std::make_unique<VectorStream>(std::move(raw_oat));
@@ -201,38 +222,45 @@ template<>
void Parser::parse_binary<details::OAT124_t>() {
std::vector<uint8_t> raw_oat;
auto& oat = oat_binary();
- const auto* oat_data = oat.get_symbol("oatdata")->as<ELF::Symbol>();
+ const auto* oat_data_sym = oat.get_symbol("oatdata");
+ const auto* oat_data =
+ oat_data_sym != nullptr ? oat_data_sym->as<ELF::Symbol>() : nullptr;
if (oat_data != nullptr) {
- raw_oat.reserve(oat_data->size());
-
span<const uint8_t> raw_data =
- oat.get_content_from_virtual_address(oat_data->value(), oat_data->size());
- std::copy(std::begin(raw_data), std::end(raw_data),
- std::back_inserter(raw_oat));
+ oat.get_content_from_virtual_address(oat_data->value(), oat_data->size());
+
+ raw_oat.reserve(raw_data.size());
+ std::copy(raw_data.begin(), raw_data.end(), std::back_inserter(raw_oat));
data_address_ = oat_data->value();
- data_size_ = oat_data->size();
+ data_size_ = oat_data->size();
}
- const auto* oat_exec = oat.get_symbol("oatexec")->as<ELF::Symbol>();
+ const auto* oat_exec_sym = oat.get_symbol("oatexec");
+ const auto* oat_exec =
+ oat_exec_sym != nullptr ? oat_exec_sym->as<ELF::Symbol>() : nullptr;
if (oat_exec != nullptr) {
exec_start_ = oat_exec->value();
- exec_size_ = oat_exec->size();
+ exec_size_ = oat_exec->size();
span<const uint8_t> raw_oatexec =
- oat.get_content_from_virtual_address(oat_exec->value(), oat_exec->size());
+ oat.get_content_from_virtual_address(oat_exec->value(), oat_exec->size());
- uint32_t padding = exec_start_ - (data_address_ + data_size_);
+ auto gap = oat_data_exec_gap();
+ if (!gap) {
+ LIEF_WARN("Corrupted OAT layout: inconsistent oatdata/oatexec ranges");
+ return;
+ }
+ const uint64_t padding = *gap;
- raw_oat.reserve(raw_oat.size() + oat_exec->size() + padding);
- raw_oat.insert(std::end(raw_oat), padding, 0);
+ raw_oat.reserve(raw_oat.size() + raw_oatexec.size() + padding);
+ raw_oat.insert(raw_oat.end(), padding, 0);
- std::copy(std::begin(raw_oatexec), std::end(raw_oatexec),
- std::back_inserter(raw_oat));
+ std::copy(raw_oatexec.begin(), raw_oatexec.end(), std::back_inserter(raw_oat));
}
uint32_t padding = align(raw_oat.size(), sizeof(uint32_t) * 8) - raw_oat.size();
- raw_oat.insert(std::end(raw_oat), padding, 0);
+ raw_oat.insert(raw_oat.end(), padding, 0);
stream_ = std::make_unique<VectorStream>(std::move(raw_oat));
@@ -248,38 +276,45 @@ template<>
void Parser::parse_binary<details::OAT131_t>() {
std::vector<uint8_t> raw_oat;
auto& oat = oat_binary();
- const auto* oat_data = oat.get_symbol("oatdata")->as<ELF::Symbol>();
+ const auto* oat_data_sym = oat.get_symbol("oatdata");
+ const auto* oat_data =
+ oat_data_sym != nullptr ? oat_data_sym->as<ELF::Symbol>() : nullptr;
if (oat_data != nullptr) {
- raw_oat.reserve(oat_data->size());
-
span<const uint8_t> raw_data =
- oat.get_content_from_virtual_address(oat_data->value(), oat_data->size());
- std::copy(std::begin(raw_data), std::end(raw_data),
- std::back_inserter(raw_oat));
+ oat.get_content_from_virtual_address(oat_data->value(), oat_data->size());
+
+ raw_oat.reserve(raw_data.size());
+ std::copy(raw_data.begin(), raw_data.end(), std::back_inserter(raw_oat));
data_address_ = oat_data->value();
- data_size_ = oat_data->size();
+ data_size_ = oat_data->size();
}
- const auto* oat_exec = oat.get_symbol("oatexec")->as<ELF::Symbol>();
+ const auto* oat_exec_sym = oat.get_symbol("oatexec");
+ const auto* oat_exec =
+ oat_exec_sym != nullptr ? oat_exec_sym->as<ELF::Symbol>() : nullptr;
if (oat_exec != nullptr) {
exec_start_ = oat_exec->value();
- exec_size_ = oat_exec->size();
+ exec_size_ = oat_exec->size();
span<const uint8_t> raw_oatexec =
- oat.get_content_from_virtual_address(oat_exec->value(), oat_exec->size());
+ oat.get_content_from_virtual_address(oat_exec->value(), oat_exec->size());
- uint32_t padding = exec_start_ - (data_address_ + data_size_);
+ auto gap = oat_data_exec_gap();
+ if (!gap) {
+ LIEF_WARN("Corrupted OAT layout: inconsistent oatdata/oatexec ranges");
+ return;
+ }
+ const uint64_t padding = *gap;
- raw_oat.reserve(raw_oat.size() + oat_exec->size() + padding);
- raw_oat.insert(std::end(raw_oat), padding, 0);
+ raw_oat.reserve(raw_oat.size() + raw_oatexec.size() + padding);
+ raw_oat.insert(raw_oat.end(), padding, 0);
- std::copy(std::begin(raw_oatexec), std::end(raw_oatexec),
- std::back_inserter(raw_oat));
+ std::copy(raw_oatexec.begin(), raw_oatexec.end(), std::back_inserter(raw_oat));
}
uint32_t padding = align(raw_oat.size(), sizeof(uint32_t) * 8) - raw_oat.size();
- raw_oat.insert(std::end(raw_oat), padding, 0);
+ raw_oat.insert(raw_oat.end(), padding, 0);
stream_ = std::make_unique<VectorStream>(std::move(raw_oat));
@@ -290,7 +325,7 @@ void Parser::parse_binary<details::OAT131_t>() {
parse_type_lookup_table<details::OAT131_t>();
parse_oat_classes<details::OAT131_t>();
} else {
- LIEF_WARN("No VDEX found. Can't parse the OAT Classes and the Lookup Table");
+ LIEF_WARN("No VDEX found, cannot parse OAT classes and lookup table");
}
}
@@ -301,7 +336,6 @@ void Parser::parse_binary<details::OAT138_t>() {
}
-
template<typename OAT_T>
void Parser::parse_header() {
using oat_header = typename OAT_T::oat_header;
@@ -314,8 +348,8 @@ void Parser::parse_header() {
}
const auto oat_hdr = std::move(*res_oat_hdr);
oat.header_ = &oat_hdr;
- LIEF_DEBUG("Nb dex files: #{:d}", oat.header_.nb_dex_files());
- //LIEF_DEBUG("OAT version: {}", oat_hdr.oat_version);
+ LIEF_DEBUG("DEX file count: #{:d}", oat.header_.nb_dex_files());
+ // LIEF_DEBUG("OAT version: {}", oat_hdr.oat_version);
parse_header_keys<OAT_T>();
}
@@ -336,42 +370,55 @@ void Parser::parse_header_keys() {
}
for (HEADER_KEYS key : header_keys_list) {
- std::string key_str = std::string{'\0'} + Header::key_to_string(key);
+ const std::string key_str = std::string{'\0'} + Header::key_to_string(key);
- size_t pos = key_values.find(key_str);
+ const size_t pos = key_values.find(key_str);
+ if (pos == std::string::npos) {
+ continue;
+ }
- if (pos != std::string::npos) {
- std::string value = std::string{key_values.data() + pos + key_str.size() + 1};
- oat.header_.dex2oat_context_.emplace(key, value);
+ const size_t value_start = pos + key_str.size() + 1;
+ if (value_start > key_values.size()) {
+ continue;
}
+
+ const size_t value_end = key_values.find('\0', value_start);
+
+ std::string value =
+ value_end == std::string::npos ?
+ key_values.substr(value_start) :
+ key_values.substr(value_start, value_end - value_start);
+ oat.header_.dex2oat_context_.emplace(key, std::move(value));
}
}
-
template<typename OAT_T>
void Parser::parse_type_lookup_table() {
- //using oat_header = typename OAT_T::oat_header;
- //using dex_file = typename OAT_T::dex_file;
- //using lookup_table_entry_t = typename OAT_T::lookup_table_entry_t;
+ // using oat_header = typename OAT_T::oat_header;
+ // using dex_file = typename OAT_T::dex_file;
+ // using lookup_table_entry_t = typename OAT_T::lookup_table_entry_t;
- //VLOG(VDEBUG) << "Parsing TypeLookupTable";
- //for (size_t i = 0; i < oat.dex_files_.size(); ++i) {
+ // VLOG(VDEBUG) << "Parsing TypeLookupTable";
+ // for (size_t i = 0; i < oat.dex_files_.size(); ++i) {
// const DexFile* oat_dex_file = oat.oat_dex_files_[i];
// uint64_t tlt_offset = oat_dex_file->lookup_table_offset();
// VLOG(VDEBUG) << "Getting TypeLookupTable for DexFile "
// << oat_dex_file->location()
- // << " (#" << std::dec << oat_dex_file->dex_file().header().nb_classes() << ")";
+ // << " (#" << std::dec <<
+ // oat_dex_file->dex_file().header().nb_classes() << ")";
// for (size_t j = 0; j < oat_dex_file->dex_file().header().nb_classes();) {
- // const lookup_table_entry_t* entry = reinterpret_cast<const lookup_table_entry_t*>(stream_->read(tlt_offset, sizeof(lookup_table_entry_t)));
+ // const lookup_table_entry_t* entry = reinterpret_cast<const
+ // lookup_table_entry_t*>(stream_->read(tlt_offset,
+ // sizeof(lookup_table_entry_t)));
// if (entry->str_offset) {
// uint64_t string_offset = oat_dex_file->dex_offset() + entry->str_offset;
- // std::pair<uint64_t, uint64_t> len_size = stream_->read_uleb128(string_offset);
- // string_offset += len_size.second;
+ // std::pair<uint64_t, uint64_t> len_size =
+ // stream_->read_uleb128(string_offset); string_offset += len_size.second;
// std::string class_name = stream_->get_string(string_offset);
// //VLOG(VDEBUG) << " " << "#" << std::dec << j << " " << class_name;
// ++j;
@@ -384,13 +431,13 @@ void Parser::parse_type_lookup_table() {
template<typename OAT_T>
void Parser::parse_oat_classes() {
- LIEF_DEBUG("Parsing OAT Classes");
+ LIEF_DEBUG("Parsing OAT classes");
auto& oat = oat_binary();
for (size_t dex_idx = 0; dex_idx < oat.oat_dex_files_.size(); ++dex_idx) {
std::unique_ptr<DexFile>& oat_dex_file = oat.oat_dex_files_[dex_idx];
const DEX::File* dex_file_ptr = oat_dex_file->dex_file();
if (dex_file_ptr == nullptr) {
- LIEF_ERR("Can't find the original DEX File associated with the OAT DEX File #{}", dex_idx);
+ LIEF_ERR("Original DEX file not found for OAT DEX file #{}", dex_idx);
continue;
}
@@ -398,23 +445,23 @@ void Parser::parse_oat_classes() {
const std::vector<uint32_t>& classes_offsets = oat_dex_file->classes_offsets();
uint32_t nb_classes = dex_file.header().nb_classes();
- LIEF_DEBUG("Dealing with DexFile #{:d} (#classes: {:d})", dex_idx, nb_classes);
+ LIEF_DEBUG("Processing DEX file #{:d} ({:d} classes)", dex_idx, nb_classes);
for (size_t class_idx = 0; class_idx < nb_classes; ++class_idx) {
const DEX::Class* cls = dex_file.get_class(class_idx);
if (cls == nullptr) {
- LIEF_ERR("Can't find the class at index #{}", class_idx);
+ LIEF_ERR("Class not found at index #{}", class_idx);
continue;
}
if (cls->index() >= classes_offsets.size()) {
- LIEF_WARN("cls.index() is not valid");
+ LIEF_WARN("Invalid class index");
continue;
}
uint32_t oat_class_offset = classes_offsets[cls->index()];
stream_->setpos(oat_class_offset);
// OAT Status
- auto res_status = stream_->read<int16_t>();
+ auto res_status = stream_->read<int16_t>();
if (!res_status) {
break;
}
@@ -446,7 +493,9 @@ void Parser::parse_oat_classes() {
}
}
- auto oat_class = std::make_unique<Class>(status, type, const_cast<DEX::Class*>(cls), bitmap);
+ auto oat_class =
+ std::make_unique<Class>(status, type, const_cast<DEX::Class*>(cls),
+ bitmap);
Class& oat_cls_ref = *oat_class;
oat.add_class(std::move(oat_class));
@@ -459,7 +508,8 @@ void Parser::parse_oat_classes() {
}
template<typename OAT_T>
-void Parser::parse_oat_methods(uint64_t methods_offsets, Class& clazz, const DEX::Class& dex_class) {
+void Parser::parse_oat_methods(uint64_t methods_offsets, Class& clazz,
+ const DEX::Class& dex_class) {
using oat_quick_method_header = typename OAT_T::oat_quick_method_header;
DEX::Class::it_const_methods methods = dex_class.methods();
@@ -470,7 +520,8 @@ void Parser::parse_oat_methods(uint64_t methods_offsets, Class& clazz, const DEX
}
uint32_t computed_index = clazz.method_offsets_index(method);
- auto code_off = stream_->peek<uint32_t>(methods_offsets + computed_index * sizeof(uint32_t));
+ auto code_off = stream_->peek<uint32_t>(methods_offsets +
+ computed_index * sizeof(uint32_t));
if (!code_off) {
break;
}
@@ -479,7 +530,8 @@ void Parser::parse_oat_methods(uint64_t methods_offsets, Class& clazz, const DEX
uint32_t quick_method_header_off = *code_off - sizeof(oat_quick_method_header);
quick_method_header_off &= ~1u;
- const auto res_quick_header = stream_->peek<oat_quick_method_header>(quick_method_header_off);
+ const auto res_quick_header =
+ stream_->peek<oat_quick_method_header>(quick_method_header_off);
if (!res_quick_header) {
break;
}
@@ -488,11 +540,13 @@ void Parser::parse_oat_methods(uint64_t methods_offsets, Class& clazz, const DEX
uint32_t vmap_table_offset = *code_off - quick_header.vmap_table_offset;
- auto oat_method = std::make_unique<Method>(const_cast<DEX::Method*>(&method), &clazz);
+ auto oat_method =
+ std::make_unique<Method>(const_cast<DEX::Method*>(&method), &clazz);
if (quick_header.code_size > 0) {
- const auto* code = stream_->peek_array<uint8_t>(*code_off, quick_header.code_size);
+ const auto* code =
+ stream_->peek_array<uint8_t>(*code_off, quick_header.code_size);
if (code != nullptr) {
oat_method->quick_code_ = {code, code + quick_header.code_size};
}
@@ -534,13 +588,10 @@ void Parser::parse_oat_methods(uint64_t methods_offsets, Class& clazz, const DEX
auto index = static_cast<uint32_t>(*res_index);
oat_method->dex_method()->insert_dex2dex_info(pc, index);
}
-
}
clazz.methods_.push_back(oat_method.get());
oat.methods_.push_back(std::move(oat_method));
}
-
}
}
-}
diff --git a/deps/LIEF/src/OAT/Structures.hpp b/deps/LIEF/src/OAT/Structures.hpp
index 6d8c3b59eba..58e5e3c21f1 100644
--- a/deps/LIEF/src/OAT/Structures.hpp
+++ b/deps/LIEF/src/OAT/Structures.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -37,14 +37,14 @@
// Android 9.0.0 OAT 138
// ======================
-namespace LIEF {
+
/// Namespace related to the LIEF's OAT module
-namespace OAT {
-namespace details {
+
+namespace LIEF::OAT::details {
using oat_version_t = uint32_t;
-static constexpr uint8_t oat_magic[] = { 'o', 'a', 't', '\n' };
+static constexpr uint8_t oat_magic[] = {'o', 'a', 't', '\n'};
static constexpr oat_version_t oat_version = 0;
// =======================
@@ -74,7 +74,7 @@ struct oat_header {
uint32_t image_file_location_oat_data_begin;
uint32_t key_value_store_size;
- //uint8_t key_value_store[0]; // note variable width data at end
+ // uint8_t key_value_store[0]; // note variable width data at end
};
struct oat_dex_file {
@@ -86,28 +86,28 @@ struct oat_dex_file {
struct dex_file {
uint8_t magic[8];
- uint32_t checksum; // See also location_checksum_
+ uint32_t checksum; // See also location_checksum_
uint8_t signature[20];
- uint32_t file_size; // size of entire file
- uint32_t header_size; // offset to start of next section
+ uint32_t file_size; // size of entire file
+ uint32_t header_size; // offset to start of next section
uint32_t endian_tag;
- uint32_t link_size; // unused
- uint32_t link_off; // unused
- uint32_t map_off; // unused
- uint32_t string_ids_size; // number of StringIds
+ uint32_t link_size; // unused
+ uint32_t link_off; // unused
+ uint32_t map_off; // unused
+ uint32_t string_ids_size; // number of StringIds
uint32_t string_ids_off; // file offset of StringIds array
- uint32_t type_ids_size; // number of TypeIds, we don't support more than 65535
- uint32_t type_ids_off; // file offset of TypeIds array
+ uint32_t type_ids_size; // number of TypeIds, we don't support more than 65535
+ uint32_t type_ids_off; // file offset of TypeIds array
uint32_t proto_ids_size; // number of ProtoIds, we don't support more than 65535
- uint32_t proto_ids_off; // file offset of ProtoIds array
+ uint32_t proto_ids_off; // file offset of ProtoIds array
uint32_t field_ids_size; // number of FieldIds
- uint32_t field_ids_off; // file offset of FieldIds array
- uint32_t method_ids_size; // number of MethodIds
+ uint32_t field_ids_off; // file offset of FieldIds array
+ uint32_t method_ids_size; // number of MethodIds
uint32_t method_ids_off; // file offset of MethodIds array
- uint32_t class_defs_size; // number of ClassDefs
+ uint32_t class_defs_size; // number of ClassDefs
uint32_t class_defs_off; // file offset of ClassDef array
- uint32_t data_size; // unused
- uint32_t data_off; // unused
+ uint32_t data_size; // unused
+ uint32_t data_off; // unused
};
@@ -125,7 +125,6 @@ struct oat_quick_method_header {
};
-
}
// OAT 079 - Android 7.0.0
@@ -211,7 +210,7 @@ struct oat_header {
uint32_t instruction_set;
uint32_t instruction_set_features_bitmap;
uint32_t dex_file_count;
- uint32_t oat_dex_files_offset; // ADDED in OAT 131
+ uint32_t oat_dex_files_offset; // ADDED in OAT 131
uint32_t executable_offset;
uint32_t i2i_bridge_offset;
uint32_t i2c_code_bridge_offset;
@@ -227,7 +226,7 @@ struct oat_header {
uint32_t image_file_location_oat_data_begin;
uint32_t key_value_store_size;
- //uint8_t key_value_store[0]; // note variable width data at end
+ // uint8_t key_value_store[0]; // note variable width data at end
};
using OAT_124::oat_dex_file;
@@ -239,7 +238,7 @@ using OAT_124::lookup_table_entry_t;
// OAT 138 - Android 9.0.0
-namespace OAT_138 {
+namespace OAT_138 {
static constexpr oat_version_t oat_version = 138;
using OAT_131::oat_header;
using OAT_131::oat_dex_file;
@@ -252,18 +251,18 @@ using OAT_131::lookup_table_entry_t;
class OAT64_t {
public:
static constexpr oat_version_t oat_version = OAT_064::oat_version;
- using oat_header = OAT_064::oat_header;
+ using oat_header = OAT_064::oat_header;
using oat_dex_file = OAT_064::oat_dex_file;
- using dex_file = OAT_064::dex_file;
+ using dex_file = OAT_064::dex_file;
using oat_quick_method_header = OAT_064::oat_quick_method_header;
};
class OAT79_t {
public:
static constexpr oat_version_t oat_version = OAT_079::oat_version;
- using oat_header = OAT_079::oat_header;
+ using oat_header = OAT_079::oat_header;
using oat_dex_file = OAT_079::oat_dex_file;
- using dex_file = OAT_079::dex_file;
+ using dex_file = OAT_079::dex_file;
using oat_quick_method_header = OAT_079::oat_quick_method_header;
using lookup_table_entry_t = OAT_079::lookup_table_entry_t;
@@ -272,9 +271,9 @@ class OAT79_t {
class OAT88_t {
public:
static constexpr oat_version_t oat_version = OAT_088::oat_version;
- using oat_header = OAT_088::oat_header;
+ using oat_header = OAT_088::oat_header;
using oat_dex_file = OAT_088::oat_dex_file;
- using dex_file = OAT_088::dex_file;
+ using dex_file = OAT_088::dex_file;
using oat_quick_method_header = OAT_088::oat_quick_method_header;
using lookup_table_entry_t = OAT_088::lookup_table_entry_t;
@@ -283,9 +282,9 @@ class OAT88_t {
class OAT124_t {
public:
static constexpr oat_version_t oat_version = OAT_124::oat_version;
- using oat_header = OAT_124::oat_header;
+ using oat_header = OAT_124::oat_header;
using oat_dex_file = OAT_124::oat_dex_file;
- using dex_file = OAT_124::dex_file;
+ using dex_file = OAT_124::dex_file;
using oat_quick_method_header = OAT_124::oat_quick_method_header;
using lookup_table_entry_t = OAT_124::lookup_table_entry_t;
@@ -295,9 +294,9 @@ class OAT124_t {
class OAT131_t {
public:
static constexpr oat_version_t oat_version = OAT_131::oat_version;
- using oat_header = OAT_131::oat_header;
+ using oat_header = OAT_131::oat_header;
using oat_dex_file = OAT_131::oat_dex_file;
- using dex_file = OAT_131::dex_file;
+ using dex_file = OAT_131::dex_file;
using oat_quick_method_header = OAT_124::oat_quick_method_header;
using lookup_table_entry_t = OAT_131::lookup_table_entry_t;
@@ -306,15 +305,14 @@ class OAT131_t {
class OAT138_t {
public:
static constexpr oat_version_t oat_version = OAT_138::oat_version;
- using oat_header = OAT_138::oat_header;
- using oat_dex_file = OAT_138::oat_dex_file;
- using dex_file = OAT_138::dex_file;
+ using oat_header = OAT_138::oat_header;
+ using oat_dex_file = OAT_138::oat_dex_file;
+ using dex_file = OAT_138::dex_file;
using oat_quick_method_header = OAT_138::oat_quick_method_header;
- using lookup_table_entry_t = OAT_138::lookup_table_entry_t;
+ using lookup_table_entry_t = OAT_138::lookup_table_entry_t;
};
-} /* end namespace details */
-} /* end namespace OAT */
-} /* end namespace LIEF */
-#endif
+} // namespace LIEF::OAT::details
+
+#endif
diff --git a/deps/LIEF/src/OAT/hash.cpp b/deps/LIEF/src/OAT/hash.cpp
index 6853150c793..972ed3349cf 100644
--- a/deps/LIEF/src/OAT/hash.cpp
+++ b/deps/LIEF/src/OAT/hash.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,8 +27,8 @@
#include "LIEF/DEX/Class.hpp"
#include "LIEF/DEX/hash.hpp"
-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {
Hash::~Hash() = default;
@@ -40,9 +40,9 @@ size_t Hash::hash(const Object& obj) {
void Hash::visit(const Binary& binary) {
process(binary.header());
- process(std::begin(binary.oat_dex_files()), std::end(binary.oat_dex_files()));
- process(std::begin(binary.classes()), std::end(binary.classes()));
- process(std::begin(binary.methods()), std::end(binary.methods()));
+ process(binary.oat_dex_files().begin(), binary.oat_dex_files().end());
+ process(binary.classes().begin(), binary.classes().end());
+ process(binary.methods().begin(), binary.methods().end());
}
@@ -66,8 +66,8 @@ void Hash::visit(const Header& header) {
process(header.image_file_location_oat_data_begin());
process(header.key_value_size());
- process(std::begin(header.keys()), std::end(header.keys()));
- process(std::begin(header.values()), std::end(header.values()));
+ process(header.keys().begin(), header.keys().end());
+ process(header.values().begin(), header.values().end());
}
@@ -93,7 +93,7 @@ void Hash::visit(const Class& cls) {
process(cls.fullname());
process(cls.bitmap());
Class::it_const_methods it = cls.methods();
- process(std::begin(it), std::end(it));
+ process(it.begin(), it.end());
}
@@ -107,7 +107,4 @@ void Hash::visit(const Method& meth) {
}
-
-} // namespace OAT
-} // namespace LIEF
-
+} // namespace LIEF::OAT
diff --git a/deps/LIEF/src/OAT/json.cpp b/deps/LIEF/src/OAT/json.cpp
index 826e5d3065f..b0c98476c0e 100644
--- a/deps/LIEF/src/OAT/json.cpp
+++ b/deps/LIEF/src/OAT/json.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,8 +18,8 @@
#include "OAT/json_internal.hpp"
#include "LIEF/OAT.hpp"
-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {
void JsonVisitor::visit(const Binary& binary) {
JsonVisitor header_visitor;
@@ -46,33 +46,39 @@ void JsonVisitor::visit(const Binary& binary) {
methods.emplace_back(method_visitor.get());
}
- node_["header"] = header_visitor.get();
+ node_["header"] = header_visitor.get();
node_["dex_files"] = dex_files;
- node_["classes"] = classes;
- node_["methods"] = methods;
+ node_["classes"] = classes;
+ node_["methods"] = methods;
}
void JsonVisitor::visit(const Header& header) {
- node_["magic"] = header.magic();
- node_["version"] = header.version();
- node_["checksum"] = header.checksum();
- node_["instruction_set"] = to_string(header.instruction_set());
- node_["nb_dex_files"] = header.nb_dex_files();
- node_["oat_dex_files_offset"] = header.oat_dex_files_offset();
- node_["executable_offset"] = header.executable_offset();
- node_["i2i_bridge_offset"] = header.i2i_bridge_offset();
- node_["i2c_code_bridge_offset"] = header.i2c_code_bridge_offset();
- node_["jni_dlsym_lookup_offset"] = header.jni_dlsym_lookup_offset();
-
- node_["quick_generic_jni_trampoline_offset"] = header.quick_generic_jni_trampoline_offset();
- node_["quick_imt_conflict_trampoline_offset"] = header.quick_imt_conflict_trampoline_offset();
- node_["quick_resolution_trampoline_offset"] = header.quick_resolution_trampoline_offset();
- node_["quick_to_interpreter_bridge_offset"] = header.quick_to_interpreter_bridge_offset();
-
- node_["image_patch_delta"] = header.image_patch_delta();
- node_["image_file_location_oat_checksum"] = header.image_file_location_oat_checksum();
- node_["image_file_location_oat_data_begin"] = header.image_file_location_oat_data_begin();
- node_["key_value_size"] = header.key_value_size();
+ node_["magic"] = header.magic();
+ node_["version"] = header.version();
+ node_["checksum"] = header.checksum();
+ node_["instruction_set"] = to_string(header.instruction_set());
+ node_["nb_dex_files"] = header.nb_dex_files();
+ node_["oat_dex_files_offset"] = header.oat_dex_files_offset();
+ node_["executable_offset"] = header.executable_offset();
+ node_["i2i_bridge_offset"] = header.i2i_bridge_offset();
+ node_["i2c_code_bridge_offset"] = header.i2c_code_bridge_offset();
+ node_["jni_dlsym_lookup_offset"] = header.jni_dlsym_lookup_offset();
+
+ node_["quick_generic_jni_trampoline_offset"] =
+ header.quick_generic_jni_trampoline_offset();
+ node_["quick_imt_conflict_trampoline_offset"] =
+ header.quick_imt_conflict_trampoline_offset();
+ node_["quick_resolution_trampoline_offset"] =
+ header.quick_resolution_trampoline_offset();
+ node_["quick_to_interpreter_bridge_offset"] =
+ header.quick_to_interpreter_bridge_offset();
+
+ node_["image_patch_delta"] = header.image_patch_delta();
+ node_["image_file_location_oat_checksum"] =
+ header.image_file_location_oat_checksum();
+ node_["image_file_location_oat_data_begin"] =
+ header.image_file_location_oat_data_begin();
+ node_["key_value_size"] = header.key_value_size();
node_["keys_values"] = std::vector<json>{};
for (const auto& key_val : header.key_values()) {
@@ -82,28 +88,26 @@ void JsonVisitor::visit(const Header& header) {
}
void JsonVisitor::visit(const DexFile& dex_file) {
- node_["location"] = dex_file.location();
- node_["checksum"] = dex_file.checksum();
- node_["dex_offset"] = dex_file.dex_offset();
- node_["classes_offsets"] = dex_file.classes_offsets();
+ node_["location"] = dex_file.location();
+ node_["checksum"] = dex_file.checksum();
+ node_["dex_offset"] = dex_file.dex_offset();
+ node_["classes_offsets"] = dex_file.classes_offsets();
node_["lookup_table_offset"] = dex_file.lookup_table_offset();
node_["lookup_table_offset"] = dex_file.lookup_table_offset();
}
void JsonVisitor::visit(const Class& cls) {
- node_["status"] = to_string(cls.status());
- node_["type"] = to_string(cls.type());
- node_["fullname"] = cls.fullname();
- node_["index"] = cls.index();
+ node_["status"] = to_string(cls.status());
+ node_["type"] = to_string(cls.type());
+ node_["fullname"] = cls.fullname();
+ node_["index"] = cls.index();
}
void JsonVisitor::visit(const Method& method) {
- node_["name"] = method.name();
- node_["is_compiled"] = method.is_compiled();
+ node_["name"] = method.name();
+ node_["is_compiled"] = method.is_compiled();
node_["is_dex2dex_optimized"] = method.is_dex2dex_optimized();
}
-
-} // namespace OAT
-} // namespace LIEF
+} // namespace LIEF::OAT
diff --git a/deps/LIEF/src/OAT/json_api.cpp b/deps/LIEF/src/OAT/json_api.cpp
index f56429186f0..4b895379c71 100644
--- a/deps/LIEF/src/OAT/json_api.cpp
+++ b/deps/LIEF/src/OAT/json_api.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,13 +19,13 @@
#include "LIEF/OAT/json.hpp"
#ifdef LIEF_JSON_SUPPORT
-#include "OAT/json_internal.hpp"
+ #include "OAT/json_internal.hpp"
#endif
#include "LIEF/OAT.hpp"
-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {
std::string to_json(const Object& v) {
#ifdef LIEF_JSON_SUPPORT
@@ -38,5 +38,4 @@ std::string to_json(const Object& v) {
#endif
}
-} // namespace OAT
-} // namespace LIEF
+} // namespace LIEF::OAT
diff --git a/deps/LIEF/src/OAT/json_internal.hpp b/deps/LIEF/src/OAT/json_internal.hpp
index 872a5ee12f3..747caf00170 100644
--- a/deps/LIEF/src/OAT/json_internal.hpp
+++ b/deps/LIEF/src/OAT/json_internal.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,22 +20,21 @@
#include "LIEF/visibility.h"
#include "visitors/json.hpp"
-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {
class JsonVisitor : public LIEF::JsonVisitor {
public:
using LIEF::JsonVisitor::JsonVisitor;
public:
- void visit(const Binary& binary) override;
- void visit(const Header& header) override;
- void visit(const DexFile& dex_file) override;
- void visit(const Class& cls) override;
- void visit(const Method& method) override;
+ void visit(const Binary& binary) override;
+ void visit(const Header& header) override;
+ void visit(const DexFile& dex_file) override;
+ void visit(const Class& cls) override;
+ void visit(const Method& method) override;
};
}
-}
-#endif // LIEF_JSON_SUPPORT
+#endif
diff --git a/deps/LIEF/src/OAT/oat_124.tcc b/deps/LIEF/src/OAT/oat_124.tcc
index 91a5858ea1a..a1133a9b82a 100644
--- a/deps/LIEF/src/OAT/oat_124.tcc
+++ b/deps/LIEF/src/OAT/oat_124.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,6 +14,7 @@
* limitations under the License.
*/
+#include <memory>
#include <type_traits>
#include "logging.hpp"
@@ -30,8 +31,8 @@
#include "OAT/Structures.hpp"
-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {
template<>
void Parser::parse_dex_files<details::OAT124_t>() {
@@ -43,17 +44,22 @@ void Parser::parse_dex_files<details::OAT124_t>() {
uint64_t dexfiles_offset = sizeof(oat_header) + oat.header_.key_value_size();
- LIEF_DEBUG("OAT DEX file located at offset: 0x{:x}", dexfiles_offset);
+ LIEF_DEBUG("OAT DEX files offset: {:#x}", dexfiles_offset);
std::vector<uint32_t> classes_offsets_offset;
- classes_offsets_offset.reserve(nb_dex_files);
+ if (dexfiles_offset < stream_->size()) {
+ const uint64_t max_records =
+ (stream_->size() - dexfiles_offset) / sizeof(uint32_t);
+ auto reserve = std::min<size_t>(nb_dex_files, max_records);
+ classes_offsets_offset.reserve(reserve);
+ }
stream_->setpos(dexfiles_offset);
- for (size_t i = 0; i < nb_dex_files; ++i ) {
+ for (size_t i = 0; i < nb_dex_files; ++i) {
- LIEF_DEBUG("Dealing with OAT DEX file #{:d}", i);
+ LIEF_DEBUG("Processing OAT DEX file #{:d}", i);
- std::unique_ptr<DexFile> dex_file{new DexFile{}};
+ std::unique_ptr<DexFile> dex_file = std::make_unique<DexFile>();
auto location_size = stream_->read<uint32_t>();
if (!location_size) {
@@ -99,7 +105,7 @@ void Parser::parse_dex_files<details::OAT124_t>() {
if (oat_binary().has_vdex()) {
VDEX::File::it_dex_files dexfiles = oat_binary().vdex_->dex_files();
if (dexfiles.size() != oat.oat_dex_files_.size()) {
- LIEF_WARN("Inconsistent number of vdex files");
+ LIEF_WARN("Inconsistent VDEX file count");
return;
}
for (size_t i = 0; i < dexfiles.size(); ++i) {
@@ -110,9 +116,19 @@ void Parser::parse_dex_files<details::OAT124_t>() {
const uint32_t nb_classes = dexfiles[i].header().nb_classes();
uint32_t classes_offset = classes_offsets_offset[i];
- oat_dex_file->classes_offsets_.reserve(nb_classes);
+ const uint64_t stream_size = stream_->size();
+
+ if (classes_offset < stream_size) {
+ const uint64_t max_offsets =
+ (stream_size - classes_offset) / sizeof(uint32_t);
+ auto reserve = std::min<size_t>(nb_classes, max_offsets);
+ oat_dex_file->classes_offsets_.reserve(reserve);
+ }
+
for (size_t cls_idx = 0; cls_idx < nb_classes; ++cls_idx) {
- if (auto res = stream_->peek<uint32_t>(classes_offset + cls_idx * sizeof(uint32_t))) {
+ if (auto res = stream_->peek<uint32_t>(classes_offset +
+ cls_idx * sizeof(uint32_t)))
+ {
oat_dex_file->classes_offsets_.push_back(*res);
} else {
break;
@@ -123,5 +139,4 @@ void Parser::parse_dex_files<details::OAT124_t>() {
}
-} // Namespace OAT
-} // Namespace LIEF
+} // namespace LIEF::OAT
diff --git a/deps/LIEF/src/OAT/oat_131.tcc b/deps/LIEF/src/OAT/oat_131.tcc
index 17ffcd1f38a..4892255367f 100644
--- a/deps/LIEF/src/OAT/oat_131.tcc
+++ b/deps/LIEF/src/OAT/oat_131.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,8 +29,8 @@
#include "LIEF/VDEX/File.hpp"
#include "OAT/Structures.hpp"
-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {
template<>
void Parser::parse_dex_files<details::OAT131_t>() {
@@ -39,15 +39,20 @@ void Parser::parse_dex_files<details::OAT131_t>() {
uint64_t oat_dex_files_offset = oat.header().oat_dex_files_offset();
- LIEF_DEBUG("OAT DEX file located at offset: 0x{:x}", oat_dex_files_offset);
+ LIEF_DEBUG("OAT DEX files offset: {:#x}", oat_dex_files_offset);
std::vector<uint32_t> classes_offsets_offset;
- classes_offsets_offset.reserve(nb_dex_files);
+ if (oat_dex_files_offset < stream_->size()) {
+ const uint64_t max_records =
+ (stream_->size() - oat_dex_files_offset) / sizeof(uint32_t);
+ const auto reserve = std::min<size_t>(max_records, nb_dex_files);
+ classes_offsets_offset.reserve(reserve);
+ }
stream_->setpos(oat_dex_files_offset);
for (size_t i = 0; i < nb_dex_files; ++i) {
- LIEF_DEBUG("Dealing with OAT DEX file #{:d}", i);
+ LIEF_DEBUG("Processing OAT DEX file #{:d}", i);
auto dex_file = std::make_unique<DexFile>();
@@ -99,7 +104,7 @@ void Parser::parse_dex_files<details::OAT131_t>() {
if (oat_binary().has_vdex()) {
VDEX::File::it_dex_files dexfiles = oat_binary().vdex_->dex_files();
if (dexfiles.size() != oat.oat_dex_files_.size()) {
- LIEF_WARN("Inconsistent number of vdex files");
+ LIEF_WARN("Inconsistent VDEX file count");
return;
}
for (size_t i = 0; i < dexfiles.size(); ++i) {
@@ -109,9 +114,18 @@ void Parser::parse_dex_files<details::OAT131_t>() {
const uint32_t nb_classes = dexfiles[i].header().nb_classes();
uint32_t classes_offset = classes_offsets_offset[i];
- oat_dex_file->classes_offsets_.reserve(nb_classes);
+ const uint64_t stream_size = stream_->size();
+ if (classes_offset < stream_size) {
+ const uint64_t max_offsets =
+ (stream_size - classes_offset) / sizeof(uint32_t);
+ const auto reserve = std::min<size_t>(nb_classes, max_offsets);
+ oat_dex_file->classes_offsets_.reserve(reserve);
+ }
+
for (size_t cls_idx = 0; cls_idx < nb_classes; ++cls_idx) {
- if (auto off = stream_->peek<uint32_t>(classes_offset + cls_idx * sizeof(uint32_t))) {
+ if (auto off = stream_->peek<uint32_t>(classes_offset +
+ cls_idx * sizeof(uint32_t)))
+ {
oat_dex_file->classes_offsets_.push_back(*off);
} else {
break;
@@ -122,10 +136,4 @@ void Parser::parse_dex_files<details::OAT131_t>() {
}
-
-
-
-
-
-} // Namespace OAT
-} // Namespace LIEF
+} // namespace LIEF::OAT
diff --git a/deps/LIEF/src/OAT/oat_64.tcc b/deps/LIEF/src/OAT/oat_64.tcc
index 9aac23fad54..946bb341c04 100644
--- a/deps/LIEF/src/OAT/oat_64.tcc
+++ b/deps/LIEF/src/OAT/oat_64.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,13 +28,13 @@
#include "DEX/Structures.hpp"
#include "OAT/Structures.hpp"
-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {
template<>
void Parser::parse_dex_files<details::OAT64_t>() {
using oat_header = typename details::OAT64_t::oat_header;
- using dex35_header_t = DEX::details::DEX35::dex_header;
+ using dex35_header_t = DEX::details::DEX35::dex_header;
auto& oat = oat_binary();
@@ -42,12 +42,12 @@ void Parser::parse_dex_files<details::OAT64_t>() {
uint64_t dexfiles_offset = sizeof(oat_header) + oat.header_.key_value_size();
- LIEF_DEBUG("OAT DEX file located at offset: 0x{:x}", dexfiles_offset);
+ LIEF_DEBUG("OAT DEX files offset: {:#x}", dexfiles_offset);
stream_->setpos(dexfiles_offset);
- for (size_t i = 0; i < nb_dex_files; ++i ) {
+ for (size_t i = 0; i < nb_dex_files; ++i) {
- LIEF_DEBUG("Dealing with OAT DEX file #{:d}", i);
+ LIEF_DEBUG("Processing OAT DEX file #{:d}", i);
auto dex_file = std::make_unique<DexFile>();
auto location_size = stream_->read<uint32_t>();
@@ -81,7 +81,16 @@ void Parser::parse_dex_files<details::OAT64_t>() {
const auto dex_hdr = *res_dex_hdr;
- dex_file->classes_offsets_.reserve(dex_hdr.class_defs_size);
+ const uint64_t stream_size = stream_->size();
+ const uint64_t pos = stream_->pos();
+ if (pos < stream_size) {
+ const uint64_t max_offsets = (stream_size - pos) / sizeof(uint32_t);
+
+ const uint64_t nb_class_defs = dex_hdr.class_defs_size;
+ auto reserve = std::min<size_t>(nb_class_defs, max_offsets);
+ dex_file->classes_offsets_.reserve(reserve);
+ }
+
for (size_t cls_idx = 0; cls_idx < dex_hdr.class_defs_size; ++cls_idx) {
if (auto res = stream_->read<uint32_t>()) {
dex_file->classes_offsets_.push_back(*res);
@@ -95,12 +104,12 @@ void Parser::parse_dex_files<details::OAT64_t>() {
for (size_t i = 0; i < nb_dex_files; ++i) {
if (i >= oat.oat_dex_files_.size()) {
- LIEF_WARN("DEX file #{} is out of bound", i);
+ LIEF_WARN("DEX file #{} out of bounds", i);
break;
}
uint64_t offset = oat.oat_dex_files_[i]->dex_offset();
- LIEF_DEBUG("Dealing with OAT DEX file #{:d} at offset 0x{:x}", i, offset);
+ LIEF_DEBUG("Processing OAT DEX file #{:d} at offset {:#x}", i, offset);
const auto res_hdr = stream_->peek<dex35_header_t>(offset);
if (!res_hdr) {
@@ -123,19 +132,17 @@ void Parser::parse_dex_files<details::OAT64_t>() {
std::unique_ptr<DexFile>& oat_dex_file = oat.oat_dex_files_[i];
if (DEX::is_dex(data_v)) {
- std::unique_ptr<DEX::File> dexfile = DEX::Parser::parse(std::move(data_v), name);
+ std::unique_ptr<DEX::File> dexfile =
+ DEX::Parser::parse(std::move(data_v), name);
dexfile->location(oat_dex_file->location());
oat_dex_file->dex_file_ = dexfile.get();
oat.dex_files_.push_back(std::move(dexfile));
} else {
- LIEF_WARN("{} ({}) at 0x{:x} is not a DEX file", name, oat_dex_file->location(), stream_->pos());
+ LIEF_WARN("{} ({}) at {:#x} is not a DEX file", name,
+ oat_dex_file->location(), stream_->pos());
}
}
}
-
-
-} // Namespace OAT
-} // Namespace LIEF
-
+} // namespace LIEF::OAT
diff --git a/deps/LIEF/src/OAT/oat_79.tcc b/deps/LIEF/src/OAT/oat_79.tcc
index 0dbc2efdde4..7d24fa09b82 100644
--- a/deps/LIEF/src/OAT/oat_79.tcc
+++ b/deps/LIEF/src/OAT/oat_79.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,6 +14,7 @@
* limitations under the License.
*/
+#include <memory>
#include <type_traits>
#include "logging.hpp"
@@ -28,31 +29,35 @@
#include "LIEF/OAT/DexFile.hpp"
#include "LIEF/OAT/Binary.hpp"
-namespace LIEF {
-namespace OAT {
+
+namespace LIEF::OAT {
template<>
void Parser::parse_dex_files<details::OAT79_t>() {
using oat_header = typename details::OAT79_t::oat_header;
- using dex35_header_t = DEX::details::DEX35::dex_header;
+ using dex35_header_t = DEX::details::DEX35::dex_header;
auto& oat = oat_binary();
size_t nb_dex_files = oat.header_.nb_dex_files();
uint64_t dexfiles_offset = sizeof(oat_header) + oat.header_.key_value_size();
- LIEF_DEBUG("OAT DEX file located at offset: 0x{:x}", dexfiles_offset);
+ LIEF_DEBUG("OAT DEX files offset: {:#x}", dexfiles_offset);
std::vector<uint32_t> classes_offsets_offset;
- classes_offsets_offset.reserve(nb_dex_files);
-
+ if (dexfiles_offset < stream_->size()) {
+ const uint64_t max_records =
+ (stream_->size() - dexfiles_offset) / sizeof(uint32_t);
+ auto reserve = std::min<size_t>(nb_dex_files, max_records);
+ classes_offsets_offset.reserve(reserve);
+ }
stream_->setpos(dexfiles_offset);
- for (size_t i = 0; i < nb_dex_files; ++i ) {
+ for (size_t i = 0; i < nb_dex_files; ++i) {
- LIEF_DEBUG("Dealing with OAT DEX file #{:d}", i);
- std::unique_ptr<DexFile> dex_file{new DexFile{}};
+ LIEF_DEBUG("Processing OAT DEX file #{:d}", i);
+ std::unique_ptr<DexFile> dex_file = std::make_unique<DexFile>();
auto location_size = stream_->read<uint32_t>();
if (!location_size) {
break;
@@ -97,12 +102,12 @@ void Parser::parse_dex_files<details::OAT79_t>() {
for (size_t i = 0; i < nb_dex_files; ++i) {
if (i >= oat.oat_dex_files_.size()) {
- LIEF_WARN("DEX file #{} is out of bound", i);
+ LIEF_WARN("DEX file #{} out of bounds", i);
break;
}
uint64_t offset = oat.oat_dex_files_[i]->dex_offset();
- LIEF_DEBUG("Dealing with DEX file #{:d} at offset 0x{:x}", i, offset);
+ LIEF_DEBUG("Processing DEX file #{:d} at offset {:#x}", i, offset);
const auto res_dex_hdr = stream_->peek<dex35_header_t>(offset);
if (!res_dex_hdr) {
@@ -124,7 +129,8 @@ void Parser::parse_dex_files<details::OAT79_t>() {
std::unique_ptr<DexFile>& oat_dex_file = oat.oat_dex_files_[i];
if (DEX::is_dex(data_v)) {
- std::unique_ptr<DEX::File> dexfile = DEX::Parser::parse(std::move(data_v), name);
+ std::unique_ptr<DEX::File> dexfile =
+ DEX::Parser::parse(std::move(data_v), name);
dexfile->location(oat_dex_file->location());
const uint32_t nb_classes = dexfile->header().nb_classes();
@@ -132,22 +138,29 @@ void Parser::parse_dex_files<details::OAT79_t>() {
oat.dex_files_.push_back(std::move(dexfile));
uint32_t classes_offset = classes_offsets_offset[i];
- oat_dex_file->classes_offsets_.reserve(nb_classes);
+ const uint64_t stream_size = stream_->size();
+ if (classes_offset < stream_size) {
+ const uint64_t max_offsets =
+ (stream_size - classes_offset) / sizeof(uint32_t);
+ const auto reserve = std::min<size_t>(max_offsets, nb_classes);
+ oat_dex_file->classes_offsets_.reserve(reserve);
+ }
for (size_t cls_idx = 0; cls_idx < nb_classes; ++cls_idx) {
- if (auto off = stream_->peek<uint32_t>(classes_offset + cls_idx * sizeof(uint32_t))) {
+ if (auto off = stream_->peek<uint32_t>(classes_offset +
+ cls_idx * sizeof(uint32_t)))
+ {
oat_dex_file->classes_offsets_.push_back(*off);
} else {
break;
}
}
} else {
- LIEF_WARN("{} ({}) at 0x{:x} is not a DEX file", name, oat_dex_file->location(), stream_->pos());
+ LIEF_WARN("{} ({}) at {:#x} is not a DEX file", name,
+ oat_dex_file->location(), stream_->pos());
}
}
}
-
-} // Namespace OAT
-} // Namespace LIEF
+} // namespace LIEF::OAT
diff --git a/deps/LIEF/src/OAT/utils.cpp b/deps/LIEF/src/OAT/utils.cpp
index 81a57f18e8a..815cb207f6e 100644
--- a/deps/LIEF/src/OAT/utils.cpp
+++ b/deps/LIEF/src/OAT/utils.cpp
@@ -1,6 +1,6 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,8 +23,10 @@
#include "LIEF/ELF/utils.hpp"
#include "frozen.hpp"
-namespace LIEF {
-namespace OAT {
+#include "internal_utils.hpp"
+
+
+namespace LIEF::OAT {
bool is_oat(const std::string& file) {
if (!ELF::is_elf(file)) {
@@ -48,10 +50,10 @@ bool is_oat(const std::vector<uint8_t>& raw) {
bool is_oat(const ELF::Binary& elf) {
if (const auto* oatdata = elf.get_dynamic_symbol("oatdata")) {
span<const uint8_t> header =
- elf.get_content_from_virtual_address(oatdata->value(), sizeof(details::oat_magic));
+ elf.get_content_from_virtual_address(oatdata->value(),
+ sizeof(details::oat_magic));
return std::equal(std::begin(header), std::end(header),
std::begin(details::oat_magic));
-
}
return false;
}
@@ -81,35 +83,36 @@ oat_version_t version(const std::vector<uint8_t>& raw) {
oat_version_t version(const ELF::Binary& elf) {
if (const auto* oatdata = elf.get_dynamic_symbol("oatdata")) {
- span<const uint8_t> header =
- elf.get_content_from_virtual_address(oatdata->value() + sizeof(details::oat_magic),
- sizeof(details::oat_version));
+ span<const uint8_t> header = elf.get_content_from_virtual_address(
+ oatdata->value() + sizeof(details::oat_magic), sizeof(details::oat_version)
+ );
if (header.size() != sizeof(details::oat_version)) {
return 0;
}
- return std::stoul(std::string(reinterpret_cast<const char*>(header.data()), 3));
+
+ return static_cast<oat_version_t>(parse_android_version(
+ reinterpret_cast<const char*>(header.data()), header.size()
+ ));
}
return 0;
}
Android::ANDROID_VERSIONS android_version(oat_version_t version) {
- CONST_MAP(oat_version_t, Android::ANDROID_VERSIONS, 6) oat2android {
- { 64, Android::ANDROID_VERSIONS::VERSION_601 },
- { 79, Android::ANDROID_VERSIONS::VERSION_700 },
- { 88, Android::ANDROID_VERSIONS::VERSION_712 },
- { 124, Android::ANDROID_VERSIONS::VERSION_800 },
- { 131, Android::ANDROID_VERSIONS::VERSION_810 },
- { 138, Android::ANDROID_VERSIONS::VERSION_900 },
+ CONST_MAP(oat_version_t, Android::ANDROID_VERSIONS, 6)
+ oat2android{
+ {64, Android::ANDROID_VERSIONS::VERSION_601},
+ {79, Android::ANDROID_VERSIONS::VERSION_700},
+ {88, Android::ANDROID_VERSIONS::VERSION_712},
+ {124, Android::ANDROID_VERSIONS::VERSION_800},
+ {131, Android::ANDROID_VERSIONS::VERSION_810},
+ {138, Android::ANDROID_VERSIONS::VERSION_900},
};
- auto it = oat2android.lower_bound(version);
- return it == oat2android.end() ?
- Android::ANDROID_VERSIONS::VERSION_UNKNOWN : it->second;
+ auto it = oat2android.lower_bound(version);
+ return it == oat2android.end() ? Android::ANDROID_VERSIONS::VERSION_UNKNOWN :
+ it->second;
}
-
-
-} // namespace OAT
-} // namespace LIEF
+} // namespace LIEF::OAT
diff --git a/deps/LIEF/src/ObjC/objc.cpp b/deps/LIEF/src/ObjC/objc.cpp
index 509781bd06b..e80fe7a7d0b 100644
--- a/deps/LIEF/src/ObjC/objc.cpp
+++ b/deps/LIEF/src/ObjC/objc.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -12,8 +12,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+// NOLINTBEGIN
#include "LIEF/ObjC/Metadata.hpp"
#include "LIEF/ObjC/Class.hpp"
+#include "LIEF/ObjC/Category.hpp"
#include "LIEF/MachO/Binary.hpp"
#include "logging.hpp"
@@ -43,6 +45,9 @@ class MethodIt {};
class Protocol {};
class ProtocolIt {};
+class Category {};
+class CategoryIt {};
+
class IVar {};
class IVarIt {};
@@ -54,8 +59,7 @@ class PropertyIt {};
// ObjC/Metadata.hpp
// ----------------------------------------------------------------------------
Metadata::Metadata(std::unique_ptr<details::Metadata>) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
std::string Metadata::to_decl(const DeclOpt&) const {
return "";
@@ -69,11 +73,16 @@ Metadata::protocols_it Metadata::protocols() const {
return make_empty_iterator<Protocol>();
}
-std::unique_ptr<Class> Metadata::get_class(const std::string&/*name*/) const {
+Metadata::categories_it Metadata::categories() const {
+ return make_empty_iterator<Category>();
+}
+
+std::unique_ptr<Class> Metadata::get_class(const std::string& /*name*/) const {
return nullptr;
}
-std::unique_ptr<Protocol> Metadata::get_protocol(const std::string&/*name*/) const {
+std::unique_ptr<Protocol>
+ Metadata::get_protocol(const std::string& /*name*/) const {
return nullptr;
}
@@ -82,27 +91,30 @@ Metadata::~Metadata() = default;
// ----------------------------------------------------------------------------
// ObjC/Class.hpp
// ----------------------------------------------------------------------------
+Class::Iterator::Iterator() :
+ impl_(nullptr) {}
+
Class::Iterator::Iterator(std::unique_ptr<details::ClassIt>) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
Class::Iterator::Iterator(const Iterator&) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
+
+Class::Iterator& Class::Iterator::operator=(const Iterator&) {
+ return *this;
+}
-Class::Iterator::Iterator(Iterator&&) noexcept :
- impl_(nullptr)
-{}
+Class::Iterator::Iterator(Iterator&&) noexcept = default;
+Class::Iterator& Class::Iterator::operator=(Iterator&&) noexcept = default;
Class::Iterator::~Iterator() = default;
-bool operator==(const Class::Iterator&,
- const Class::Iterator&)
-{
+bool operator==(const Class::Iterator&, const Class::Iterator&) {
return true;
}
Class::Iterator& Class::Iterator::operator++() {
+ cached_.reset();
return *this;
}
@@ -110,13 +122,22 @@ Class::Iterator& Class::Iterator::operator--() {
return *this;
}
-std::unique_ptr<Class> Class::Iterator::operator*() const {
+void Class::Iterator::load() const {}
+
+const Class& Class::Iterator::operator*() const {
+ return *cached_;
+}
+
+const Class* Class::Iterator::operator->() const {
+ return nullptr;
+}
+
+std::unique_ptr<Class> Class::Iterator::yield() {
return nullptr;
}
Class::Class(std::unique_ptr<details::Class> impl) :
- impl_(std::move(impl))
-{}
+ impl_(std::move(impl)) {}
std::string Class::name() const {
return "";
@@ -135,6 +156,14 @@ std::unique_ptr<Class> Class::super_class() const {
return nullptr;
}
+std::string Class::super_name() const {
+ return "";
+}
+
+std::string Class::demangled_super_name() const {
+ return "";
+}
+
bool Class::is_meta() const {
return false;
}
@@ -160,23 +189,25 @@ Class::~Class() = default;
// ----------------------------------------------------------------------------
// ObjC/Protocol.hpp
// ----------------------------------------------------------------------------
+Protocol::Iterator::Iterator() :
+ impl_(nullptr) {}
+
Protocol::Iterator::Iterator(std::unique_ptr<details::ProtocolIt>) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
Protocol::Iterator::Iterator(const Iterator&) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
+
+Protocol::Iterator& Protocol::Iterator::operator=(const Iterator&) {
+ return *this;
+}
-Protocol::Iterator::Iterator(Iterator&&) noexcept :
- impl_(nullptr)
-{}
+Protocol::Iterator::Iterator(Iterator&&) noexcept = default;
+Protocol::Iterator& Protocol::Iterator::operator=(Iterator&&) noexcept = default;
Protocol::Iterator::~Iterator() = default;
-bool operator==(const Protocol::Iterator&,
- const Protocol::Iterator&)
-{
+bool operator==(const Protocol::Iterator&, const Protocol::Iterator&) {
return true;
}
@@ -188,13 +219,22 @@ Protocol::Iterator& Protocol::Iterator::operator--() {
return *this;
}
-std::unique_ptr<Protocol> Protocol::Iterator::operator*() const {
+void Protocol::Iterator::load() const {}
+
+const Protocol& Protocol::Iterator::operator*() const {
+ return *cached_;
+}
+
+const Protocol* Protocol::Iterator::operator->() const {
+ return nullptr;
+}
+
+std::unique_ptr<Protocol> Protocol::Iterator::yield() {
return nullptr;
}
Protocol::Protocol(std::unique_ptr<details::Protocol> impl) :
- impl_(std::move(impl))
-{}
+ impl_(std::move(impl)) {}
Protocol::~Protocol() = default;
@@ -202,6 +242,10 @@ std::string Protocol::mangled_name() const {
return "";
}
+Protocol::protocols_it Protocol::protocols() const {
+ return make_empty_iterator<Protocol>();
+}
+
std::string Protocol::to_decl(const DeclOpt&) const {
return "";
}
@@ -218,26 +262,104 @@ Protocol::properties_it Protocol::properties() const {
return make_empty_iterator<Property>();
}
+// ----------------------------------------------------------------------------
+// ObjC/Category.hpp
+// ----------------------------------------------------------------------------
+Category::Iterator::Iterator() :
+ impl_(nullptr) {}
+
+Category::Iterator::Iterator(std::unique_ptr<details::CategoryIt>) :
+ impl_(nullptr) {}
+
+Category::Iterator::Iterator(const Iterator&) :
+ impl_(nullptr) {}
+
+Category::Iterator& Category::Iterator::operator=(const Iterator&) {
+ return *this;
+}
+
+Category::Iterator::Iterator(Iterator&&) noexcept = default;
+Category::Iterator& Category::Iterator::operator=(Iterator&&) noexcept = default;
+
+Category::Iterator::~Iterator() = default;
+
+bool operator==(const Category::Iterator&, const Category::Iterator&) {
+ return true;
+}
+
+Category::Iterator& Category::Iterator::operator++() {
+ return *this;
+}
+
+Category::Iterator& Category::Iterator::operator--() {
+ return *this;
+}
+
+void Category::Iterator::load() const {}
+
+const Category& Category::Iterator::operator*() const {
+ return *cached_;
+}
+
+const Category* Category::Iterator::operator->() const {
+ return nullptr;
+}
+
+std::unique_ptr<Category> Category::Iterator::yield() {
+ return nullptr;
+}
+
+Category::Category(std::unique_ptr<details::Category> impl) :
+ impl_(std::move(impl)) {}
+
+Category::~Category() = default;
+
+std::string Category::name() const {
+ return "";
+}
+
+std::string Category::class_name() const {
+ return "";
+}
+
+std::string Category::to_decl(const DeclOpt&) const {
+ return "";
+}
+
+Category::methods_t Category::methods() const {
+ return make_empty_iterator<Method>();
+}
+
+Category::protocols_t Category::protocols() const {
+ return make_empty_iterator<Protocol>();
+}
+
+Category::properties_t Category::properties() const {
+ return make_empty_iterator<Property>();
+}
+
// ----------------------------------------------------------------------------
// ObjC/Property.hpp
// ----------------------------------------------------------------------------
+Property::Iterator::Iterator() :
+ impl_(nullptr) {}
+
Property::Iterator::Iterator(std::unique_ptr<details::PropertyIt>) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
Property::Iterator::Iterator(const Iterator&) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
-Property::Iterator::Iterator(Iterator&&) noexcept :
- impl_(nullptr)
-{}
+Property::Iterator& Property::Iterator::operator=(const Iterator&) {
+ return *this;
+}
+
+Property::Iterator::Iterator(Iterator&&) noexcept = default;
+Property::Iterator& Property::Iterator::operator=(Iterator&&) noexcept = default;
Property::Iterator::~Iterator() = default;
-bool operator==(const Property::Iterator&,
- const Property::Iterator&)
-{
+bool operator==(const Property::Iterator&, const Property::Iterator&) {
return true;
}
@@ -249,13 +371,22 @@ Property::Iterator& Property::Iterator::operator--() {
return *this;
}
-std::unique_ptr<Property> Property::Iterator::operator*() const {
+void Property::Iterator::load() const {}
+
+const Property& Property::Iterator::operator*() const {
+ return *cached_;
+}
+
+const Property* Property::Iterator::operator->() const {
+ return nullptr;
+}
+
+std::unique_ptr<Property> Property::Iterator::yield() {
return nullptr;
}
Property::Property(std::unique_ptr<details::Property> impl) :
- impl_(std::move(impl))
-{}
+ impl_(std::move(impl)) {}
Property::~Property() = default;
@@ -271,23 +402,25 @@ std::string Property::attribute() const {
// ----------------------------------------------------------------------------
// ObjC/Method.hpp
// ----------------------------------------------------------------------------
+Method::Iterator::Iterator() :
+ impl_(nullptr) {}
+
Method::Iterator::Iterator(std::unique_ptr<details::MethodIt>) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
Method::Iterator::Iterator(const Iterator&) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
+
+Method::Iterator& Method::Iterator::operator=(const Iterator&) {
+ return *this;
+}
-Method::Iterator::Iterator(Iterator&&) noexcept :
- impl_(nullptr)
-{}
+Method::Iterator::Iterator(Iterator&&) noexcept = default;
+Method::Iterator& Method::Iterator::operator=(Iterator&&) noexcept = default;
Method::Iterator::~Iterator() = default;
-bool operator==(const Method::Iterator&,
- const Method::Iterator&)
-{
+bool operator==(const Method::Iterator&, const Method::Iterator&) {
return true;
}
@@ -299,13 +432,22 @@ Method::Iterator& Method::Iterator::operator--() {
return *this;
}
-std::unique_ptr<Method> Method::Iterator::operator*() const {
+void Method::Iterator::load() const {}
+
+const Method& Method::Iterator::operator*() const {
+ return *cached_;
+}
+
+const Method* Method::Iterator::operator->() const {
+ return nullptr;
+}
+
+std::unique_ptr<Method> Method::Iterator::yield() {
return nullptr;
}
Method::Method(std::unique_ptr<details::Method> impl) :
- impl_(std::move(impl))
-{}
+ impl_(std::move(impl)) {}
Method::~Method() = default;
@@ -328,23 +470,25 @@ bool Method::is_instance() const {
// ----------------------------------------------------------------------------
// ObjC/IVar.hpp
// ----------------------------------------------------------------------------
+IVar::Iterator::Iterator() :
+ impl_(nullptr) {}
+
IVar::Iterator::Iterator(std::unique_ptr<details::IVarIt>) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
IVar::Iterator::Iterator(const Iterator&) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
+
+IVar::Iterator& IVar::Iterator::operator=(const Iterator&) {
+ return *this;
+}
-IVar::Iterator::Iterator(Iterator&&) noexcept :
- impl_(nullptr)
-{}
+IVar::Iterator::Iterator(Iterator&&) noexcept = default;
+IVar::Iterator& IVar::Iterator::operator=(Iterator&&) noexcept = default;
IVar::Iterator::~Iterator() = default;
-bool operator==(const IVar::Iterator&,
- const IVar::Iterator&)
-{
+bool operator==(const IVar::Iterator&, const IVar::Iterator&) {
return true;
}
@@ -356,13 +500,22 @@ IVar::Iterator& IVar::Iterator::operator--() {
return *this;
}
-std::unique_ptr<IVar> IVar::Iterator::operator*() const {
+void IVar::Iterator::load() const {}
+
+const IVar& IVar::Iterator::operator*() const {
+ return *cached_;
+}
+
+const IVar* IVar::Iterator::operator->() const {
+ return nullptr;
+}
+
+std::unique_ptr<IVar> IVar::Iterator::yield() {
return nullptr;
}
IVar::IVar(std::unique_ptr<details::IVar> impl) :
- impl_(std::move(impl))
-{}
+ impl_(std::move(impl)) {}
IVar::~IVar() = default;
@@ -375,3 +528,4 @@ std::string IVar::mangled_type() const {
}
}
+// NOLINTEND
diff --git a/deps/LIEF/src/Object.cpp b/deps/LIEF/src/Object.cpp
index 141b5888160..f8e4161f63d 100644
--- a/deps/LIEF/src/Object.cpp
+++ b/deps/LIEF/src/Object.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/src/Object.tcc b/deps/LIEF/src/Object.tcc
index ad411d47723..f3ad44ae823 100644
--- a/deps/LIEF/src/Object.tcc
+++ b/deps/LIEF/src/Object.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -30,4 +30,3 @@ Object::output_const_t<T> Object::as() const {
} // namespace LIEF
-
diff --git a/deps/LIEF/src/PDB/pdb.cpp b/deps/LIEF/src/PDB/pdb.cpp
index ee323a941e0..1e1d121ab2f 100644
--- a/deps/LIEF/src/PDB/pdb.cpp
+++ b/deps/LIEF/src/PDB/pdb.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2022 - 2025 R. Thomas
+/* Copyright 2022 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -12,6 +12,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
+// NOLINTBEGIN
#include "LIEF/PDB/DebugInfo.hpp"
#include "LIEF/PDB/CompilationUnit.hpp"
#include "LIEF/PDB/PublicSymbol.hpp"
@@ -62,6 +64,8 @@ class AttributeIt {};
class Method {};
class MethodIt {};
+
+class EnumEntry {};
}
// ----------------------------------------------------------------------------
@@ -79,7 +83,11 @@ DebugInfo::types_it DebugInfo::types() const {
return make_empty_iterator<Type>();
}
-std::unique_ptr<Type> DebugInfo::find_type(const std::string&/*name*/) const {
+std::unique_ptr<Type> DebugInfo::find_type(const std::string& /*name*/) const {
+ return nullptr;
+}
+
+std::unique_ptr<Type> DebugInfo::find_type(uint32_t /*index*/) const {
return nullptr;
}
@@ -96,7 +104,7 @@ std::string DebugInfo::to_string() const {
}
std::unique_ptr<PublicSymbol>
-DebugInfo::find_public_symbol(const std::string&) const {
+ DebugInfo::find_public_symbol(const std::string&) const {
return nullptr;
}
@@ -105,7 +113,8 @@ std::unique_ptr<DebugInfo> DebugInfo::from_file(const std::string&) {
return nullptr;
}
-optional<uint64_t> DebugInfo::find_function_address(const std::string& /*name*/) const {
+optional<uint64_t>
+ DebugInfo::find_function_address(const std::string& /*name*/) const {
return nullopt();
}
@@ -121,8 +130,7 @@ bool is_pdb(const std::string& /*path*/) {
// PDB/CompilationUnit.hpp
// ----------------------------------------------------------------------------
CompilationUnit::CompilationUnit(std::unique_ptr<details::CompilationUnit> impl) :
- impl_(std::move(impl))
-{}
+ impl_(std::move(impl)) {}
CompilationUnit::~CompilationUnit() = default;
@@ -148,23 +156,27 @@ std::unique_ptr<BuildMetadata> CompilationUnit::build_metadata() const {
return nullptr;
}
+CompilationUnit::Iterator::Iterator() :
+ impl_(nullptr) {}
+
CompilationUnit::Iterator::Iterator(std::unique_ptr<details::CompilationUnitIt>) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
CompilationUnit::Iterator::Iterator(const Iterator&) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
+
+CompilationUnit::Iterator& CompilationUnit::Iterator::operator=(const Iterator&) {
+ return *this;
+}
-CompilationUnit::Iterator::Iterator(Iterator&&) :
- impl_(nullptr)
-{}
+CompilationUnit::Iterator::Iterator(Iterator&&) noexcept = default;
+CompilationUnit::Iterator&
+ CompilationUnit::Iterator::operator=(Iterator&&) noexcept = default;
CompilationUnit::Iterator::~Iterator() = default;
bool operator==(const CompilationUnit::Iterator&,
- const CompilationUnit::Iterator&)
-{
+ const CompilationUnit::Iterator&) {
return true;
}
@@ -176,7 +188,17 @@ CompilationUnit::Iterator& CompilationUnit::Iterator::operator--() {
return *this;
}
-std::unique_ptr<CompilationUnit> CompilationUnit::Iterator::operator*() const {
+void CompilationUnit::Iterator::load() const {}
+
+const CompilationUnit& CompilationUnit::Iterator::operator*() const {
+ return *cached_;
+}
+
+const CompilationUnit* CompilationUnit::Iterator::operator->() const {
+ return nullptr;
+}
+
+std::unique_ptr<CompilationUnit> CompilationUnit::Iterator::yield() {
return nullptr;
}
@@ -184,33 +206,39 @@ std::string CompilationUnit::to_string() const {
return "";
}
+std::string CompilationUnit::to_decl(const DeclOpt& /*opt*/) const {
+ return "";
+}
+
// ----------------------------------------------------------------------------
// PDB/PublicSymbol.hpp
// ----------------------------------------------------------------------------
PublicSymbol::PublicSymbol(std::unique_ptr<details::PublicSymbol> impl) :
- impl_(std::move(impl))
-{}
+ impl_(std::move(impl)) {}
PublicSymbol::~PublicSymbol() = default;
+PublicSymbol::Iterator::Iterator() :
+ impl_(nullptr) {}
+
PublicSymbol::Iterator::Iterator(std::unique_ptr<details::PublicSymbolIt>) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
PublicSymbol::Iterator::Iterator(const Iterator&) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
+
+PublicSymbol::Iterator& PublicSymbol::Iterator::operator=(const Iterator&) {
+ return *this;
+}
-PublicSymbol::Iterator::Iterator(Iterator&&) :
- impl_(nullptr)
-{}
+PublicSymbol::Iterator::Iterator(Iterator&&) noexcept = default;
+PublicSymbol::Iterator&
+ PublicSymbol::Iterator::operator=(Iterator&&) noexcept = default;
PublicSymbol::Iterator::~Iterator() = default;
-bool operator==(const PublicSymbol::Iterator&,
- const PublicSymbol::Iterator&)
-{
+bool operator==(const PublicSymbol::Iterator&, const PublicSymbol::Iterator&) {
return true;
}
@@ -218,7 +246,17 @@ PublicSymbol::Iterator& PublicSymbol::Iterator::operator++() {
return *this;
}
-std::unique_ptr<PublicSymbol> PublicSymbol::Iterator::operator*() const {
+void PublicSymbol::Iterator::load() const {}
+
+const PublicSymbol& PublicSymbol::Iterator::operator*() const {
+ return *cached_;
+}
+
+const PublicSymbol* PublicSymbol::Iterator::operator->() const {
+ return nullptr;
+}
+
+std::unique_ptr<PublicSymbol> PublicSymbol::Iterator::yield() {
return nullptr;
}
@@ -246,29 +284,30 @@ std::string PublicSymbol::to_string() const {
// PDB/Function.hpp
// ----------------------------------------------------------------------------
Function::Function(std::unique_ptr<details::Function> impl) :
- impl_(std::move(impl))
-{}
+ impl_(std::move(impl)) {}
Function::~Function() = default;
+Function::Iterator::Iterator() :
+ impl_(nullptr) {}
+
Function::Iterator::Iterator(std::unique_ptr<details::FunctionIt>) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
Function::Iterator::Iterator(const Iterator&) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
-Function::Iterator::Iterator(Iterator&&) :
- impl_(nullptr)
-{}
+Function::Iterator& Function::Iterator::operator=(const Iterator&) {
+ return *this;
+}
+
+Function::Iterator::Iterator(Iterator&&) noexcept = default;
+Function::Iterator& Function::Iterator::operator=(Iterator&&) noexcept = default;
Function::Iterator::~Iterator() = default;
-bool operator==(const Function::Iterator&,
- const Function::Iterator&)
-{
+bool operator==(const Function::Iterator&, const Function::Iterator&) {
return true;
}
@@ -276,7 +315,17 @@ Function::Iterator& Function::Iterator::operator++() {
return *this;
}
-std::unique_ptr<Function> Function::Iterator::operator*() const {
+void Function::Iterator::load() const {}
+
+const Function& Function::Iterator::operator*() const {
+ return *cached_;
+}
+
+const Function* Function::Iterator::operator->() const {
+ return nullptr;
+}
+
+std::unique_ptr<Function> Function::Iterator::yield() {
return nullptr;
}
@@ -304,10 +353,14 @@ std::string Function::to_string() const {
return "";
}
+std::string Function::to_decl(const DeclOpt& /*opt*/) const {
+ return "";
+}
+
// ----------------------------------------------------------------------------
// PDB/Type.hpp
// ----------------------------------------------------------------------------
-std::unique_ptr<Type> Type::create(std::unique_ptr<details::Type>/* impl*/) {
+std::unique_ptr<Type> Type::create(std::unique_ptr<details::Type> /* impl*/) {
return nullptr;
}
@@ -315,30 +368,43 @@ Type::KIND Type::kind() const {
return Type::KIND::UNKNOWN;
}
+optional<std::string> Type::name() const {
+ return nullopt();
+}
+
+optional<uint64_t> Type::size() const {
+ return nullopt();
+}
+
+std::string Type::to_decl(const DeclOpt& /*opt*/) const {
+ return "";
+}
+
Type::~Type() = default;
Type::Type(std::unique_ptr<details::Type> impl) :
- impl_(std::move(impl))
-{}
+ impl_(std::move(impl)) {}
+
+Type::Iterator::Iterator() :
+ impl_(nullptr) {}
Type::Iterator::Iterator(std::unique_ptr<details::TypeIt>) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
Type::Iterator::Iterator(const Iterator&) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
+
+Type::Iterator& Type::Iterator::operator=(const Iterator&) {
+ return *this;
+}
-Type::Iterator::Iterator(Iterator&&) noexcept :
- impl_(nullptr)
-{}
+Type::Iterator::Iterator(Iterator&&) noexcept = default;
+Type::Iterator& Type::Iterator::operator=(Iterator&&) noexcept = default;
Type::Iterator::~Iterator() = default;
-bool operator==(const Type::Iterator&,
- const Type::Iterator&)
-{
+bool operator==(const Type::Iterator&, const Type::Iterator&) {
return true;
}
@@ -346,7 +412,17 @@ Type::Iterator& Type::Iterator::operator++() {
return *this;
}
-std::unique_ptr<Type> Type::Iterator::operator*() const {
+void Type::Iterator::load() const {}
+
+const Type& Type::Iterator::operator*() const {
+ return *cached_;
+}
+
+const Type* Type::Iterator::operator->() const {
+ return nullptr;
+}
+
+std::unique_ptr<Type> Type::Iterator::yield() {
return nullptr;
}
@@ -355,11 +431,31 @@ namespace types {
// ----------------------------------------------------------------------------
// PDB/types/Simple.hpp
// ----------------------------------------------------------------------------
+Simple::TYPES Simple::type() const {
+ return TYPES::UNKNOWN;
+}
+
+Simple::MODES Simple::modes() const {
+ return MODES::DIRECT;
+}
+
Simple::~Simple() = default;
// ----------------------------------------------------------------------------
// PDB/types/Array.hpp
// ----------------------------------------------------------------------------
+size_t Array::numberof_elements() const {
+ return 0;
+}
+
+std::unique_ptr<Type> Array::element_type() const {
+ return nullptr;
+}
+
+std::unique_ptr<Type> Array::index_type() const {
+ return nullptr;
+}
+
Array::~Array() = default;
// ----------------------------------------------------------------------------
@@ -378,18 +474,10 @@ ClassLike::methods_iterator ClassLike::methods() const {
return make_empty_iterator<Method>();
}
-std::string ClassLike::name() const {
- return "";
-}
-
std::string ClassLike::unique_name() const {
return "";
}
-uint64_t ClassLike::size() const {
- return 0;
-}
-
ClassLike::~ClassLike() = default;
Class::~Class() = default;
@@ -399,11 +487,51 @@ Interface::~Interface() = default;
// ----------------------------------------------------------------------------
// PDB/types/Enum.hpp
// ----------------------------------------------------------------------------
+Enum::Entry::Entry(Entry&& other) noexcept = default;
+Enum::Entry& Enum::Entry::operator=(Entry&& other) noexcept = default;
+
+Enum::Entry::~Entry() = default;
+
+Enum::Entry::Entry(std::unique_ptr<details::EnumEntry> impl) :
+ impl_(std::move(impl)) {}
+
+std::string Enum::Entry::name() const {
+ return "";
+}
+
+int64_t Enum::Entry::value() const {
+ return 0;
+}
+
+std::string Enum::unique_name() const {
+ return "";
+}
+
+std::vector<Enum::Entry> Enum::entries() const {
+ return {};
+}
+
+const Type* Enum::underlying_type() const {
+ return nullptr;
+}
+
+optional<Enum::Entry> Enum::find_entry(int64_t /*value*/) const {
+ return nullopt();
+}
+
Enum::~Enum() = default;
// ----------------------------------------------------------------------------
// PDB/types/Function.hpp
// ----------------------------------------------------------------------------
+std::unique_ptr<Type> Function::return_type() const {
+ return nullptr;
+}
+
+Function::parameters_t Function::parameters() const {
+ return {};
+}
+
Function::~Function() = default;
// ----------------------------------------------------------------------------
@@ -433,26 +561,27 @@ Union::~Union() = default;
// PDB/types/Attribute.hpp
// ----------------------------------------------------------------------------
Attribute::Attribute(std::unique_ptr<details::Attribute> impl) :
- impl_(std::move(impl))
-{}
+ impl_(std::move(impl)) {}
+
+Attribute::Iterator::Iterator() :
+ impl_(nullptr) {}
Attribute::Iterator::Iterator(std::unique_ptr<details::AttributeIt>) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
Attribute::Iterator::Iterator(const Iterator&) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
-Attribute::Iterator::Iterator(Iterator&&) noexcept :
- impl_(nullptr)
-{}
+Attribute::Iterator& Attribute::Iterator::operator=(const Iterator&) {
+ return *this;
+}
+
+Attribute::Iterator::Iterator(Iterator&&) noexcept = default;
+Attribute::Iterator& Attribute::Iterator::operator=(Iterator&&) noexcept = default;
Attribute::Iterator::~Iterator() = default;
-bool operator==(const Attribute::Iterator&,
- const Attribute::Iterator&)
-{
+bool operator==(const Attribute::Iterator&, const Attribute::Iterator&) {
return true;
}
@@ -460,7 +589,17 @@ Attribute::Iterator& Attribute::Iterator::operator++() {
return *this;
}
-std::unique_ptr<Attribute> Attribute::Iterator::operator*() const {
+void Attribute::Iterator::load() const {}
+
+const Attribute& Attribute::Iterator::operator*() const {
+ return *cached_;
+}
+
+const Attribute* Attribute::Iterator::operator->() const {
+ return nullptr;
+}
+
+std::unique_ptr<Attribute> Attribute::Iterator::yield() {
return nullptr;
}
@@ -482,26 +621,27 @@ Attribute::~Attribute() = default;
// PDB/types/Method.hpp
// ----------------------------------------------------------------------------
Method::Method(std::unique_ptr<details::Method> impl) :
- impl_(std::move(impl))
-{}
+ impl_(std::move(impl)) {}
+
+Method::Iterator::Iterator() :
+ impl_(nullptr) {}
Method::Iterator::Iterator(std::unique_ptr<details::MethodIt>) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
Method::Iterator::Iterator(const Iterator&) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
+
+Method::Iterator& Method::Iterator::operator=(const Iterator&) {
+ return *this;
+}
-Method::Iterator::Iterator(Iterator&&) noexcept :
- impl_(nullptr)
-{}
+Method::Iterator::Iterator(Iterator&&) noexcept = default;
+Method::Iterator& Method::Iterator::operator=(Iterator&&) noexcept = default;
Method::Iterator::~Iterator() = default;
-bool operator==(const Method::Iterator&,
- const Method::Iterator&)
-{
+bool operator==(const Method::Iterator&, const Method::Iterator&) {
return true;
}
@@ -509,7 +649,17 @@ Method::Iterator& Method::Iterator::operator++() {
return *this;
}
-std::unique_ptr<Method> Method::Iterator::operator*() const {
+void Method::Iterator::load() const {}
+
+const Method& Method::Iterator::operator*() const {
+ return *cached_;
+}
+
+const Method* Method::Iterator::operator->() const {
+ return nullptr;
+}
+
+std::unique_ptr<Method> Method::Iterator::yield() {
return nullptr;
}
@@ -517,6 +667,14 @@ std::string Method::name() const {
return "";
}
+Method::TYPE Method::type() const {
+ return TYPE::VANILLA;
+}
+
+Method::ACCESS Method::access() const {
+ return ACCESS::NONE;
+}
+
Method::~Method() = default;
}
@@ -525,8 +683,7 @@ Method::~Method() = default;
// PDB/BuildMetadata.hpp
// ----------------------------------------------------------------------------
BuildMetadata::BuildMetadata(std::unique_ptr<details::BuildMetadata> /*impl*/) :
- impl_(nullptr)
-{}
+ impl_(nullptr) {}
BuildMetadata::~BuildMetadata() = default;
@@ -565,8 +722,11 @@ std::vector<std::string> BuildMetadata::env() const {
const char* to_string(BuildMetadata::CPU) {
return "";
}
+
const char* to_string(BuildMetadata::LANG) {
return "";
}
+// NOLINTEND
+
}
diff --git a/deps/LIEF/src/PE/Binary.cpp b/deps/LIEF/src/PE/Binary.cpp
index b11a3369b44..43a5d186599 100644
--- a/deps/LIEF/src/PE/Binary.cpp
+++ b/deps/LIEF/src/PE/Binary.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,7 +16,6 @@
#include <utility>
#include <algorithm>
#include <iterator>
-#include <map>
#include <numeric>
#include <limits>
@@ -25,13 +24,20 @@
#include "internal_utils.hpp"
#include "LIEF/utils.hpp"
-#include "LIEF/BinaryStream/SpanStream.hpp"
#include "LIEF/PE/hash.hpp"
#include "LIEF/PE/Binary.hpp"
#include "LIEF/PE/Builder.hpp"
#include "LIEF/PE/DataDirectory.hpp"
-#include "LIEF/PE/Debug.hpp"
+#include <LIEF/PE/debug/Debug.hpp>
+#include <LIEF/PE/debug/CodeView.hpp>
+#include <LIEF/PE/debug/Pogo.hpp>
+#include <LIEF/PE/debug/PogoEntry.hpp>
+#include <LIEF/PE/debug/Repro.hpp>
+#include <LIEF/PE/debug/CodeViewPDB.hpp>
+#include <LIEF/PE/debug/VCFeature.hpp>
+#include <LIEF/PE/debug/ExDllCharacteristics.hpp>
+#include <LIEF/PE/debug/FPO.hpp>
#include "LIEF/PE/EnumToString.hpp"
#include "LIEF/PE/Export.hpp"
#include "LIEF/PE/ExportEntry.hpp"
@@ -43,11 +49,8 @@
#include "LIEF/PE/ResourceDirectory.hpp"
#include "LIEF/PE/ResourcesManager.hpp"
#include "LIEF/PE/RichHeader.hpp"
-#include "LIEF/PE/RichEntry.hpp"
#include "LIEF/PE/Section.hpp"
#include "LIEF/PE/ExceptionInfo.hpp"
-#include "LIEF/PE/LoadConfigurations/VolatileMetadata.hpp"
-#include "LIEF/PE/exceptions_info/RuntimeFunctionAArch64.hpp"
#include "LIEF/PE/exceptions_info/RuntimeFunctionX64.hpp"
#include "LIEF/PE/TLS.hpp"
#include "LIEF/PE/utils.hpp"
@@ -63,13 +66,12 @@
#include "internal_utils.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
Binary::~Binary() = default;
Binary::Binary() :
- LIEF::Binary(Binary::FORMATS::PE)
-{}
+ LIEF::Binary(Binary::FORMATS::PE) {}
inline bool has_hybrid_metadata_ptr(const Binary& pe) {
const LoadConfiguration* LC = pe.load_configuration();
@@ -85,23 +87,20 @@ inline bool has_hybrid_metadata_ptr(const Binary& pe) {
template<typename T>
inline std::unique_ptr<Builder>
- write_impl(Binary& binary, const Builder::config_t& config, T&& dest)
-{
+ write_impl(Binary& binary, const Builder::config_t& config, T&& dest) {
auto builder = std::make_unique<Builder>(binary, config);
builder->build();
builder->write(dest);
return builder;
}
-std::unique_ptr<Builder>
- Binary::write(const std::string& filename, const Builder::config_t& config)
-{
+std::unique_ptr<Builder> Binary::write(const std::string& filename,
+ const Builder::config_t& config) {
return write_impl(*this, config, filename);
}
-std::unique_ptr<Builder>
- Binary::write(std::ostream& os, const Builder::config_t& config)
-{
+std::unique_ptr<Builder> Binary::write(std::ostream& os,
+ const Builder::config_t& config) {
return write_impl(*this, config, os);
}
@@ -119,8 +118,14 @@ void Binary::remove_tls() {
return;
}
DataDirectory* tls_dir = this->tls_dir();
+
+ if (tls_dir == nullptr) {
+ return;
+ }
+
const size_t ptr_size = optional_header().magic() == PE_TYPE::PE32 ?
- sizeof(uint32_t) : sizeof(uint64_t);
+ sizeof(uint32_t) :
+ sizeof(uint64_t);
const uint64_t imagebase = optional_header().imagebase();
@@ -131,12 +136,12 @@ void Binary::remove_tls() {
uint32_t tls_cbk_end = 0;
// Clear the TLS header with 0
- fill_address(tls_dir->RVA(), tls_dir->size(), 0);
+ fill_address(tls_dir->RVA(), tls_dir->size(), /*value=*/0, VA_TYPES::RVA);
// Clear the callbacks
if (uint64_t addr = tls_->addressof_callbacks(); addr > 0) {
const size_t cbk_size = tls_->callbacks().size() * ptr_size;
- fill_address(addr, cbk_size, 0);
+ fill_address(addr, cbk_size, /*value=*/0, Binary::VA_TYPES::VA);
tls_cbk_start = addr - imagebase;
tls_cbk_end = tls_cbk_start + cbk_size;
}
@@ -144,25 +149,26 @@ void Binary::remove_tls() {
// Clear the template data
if (const auto& data = tls_->addressof_raw_data(); data.first > 0) {
const size_t size = data.second - data.first;
- fill_address(data.first, size, 0);
+ fill_address(data.first, size, 0, Binary::VA_TYPES::VA);
}
// Remove relocations associated with the TLS structure
for (Relocation& R : relocations()) {
R.entries_.erase(
- std::remove_if(R.entries_.begin(), R.entries_.end(),
- [&] (const std::unique_ptr<RelocationEntry>& E) {
- const uint32_t addr = E->address();
- if (tls_cbk_start <= addr && addr < tls_cbk_end) {
- return true;
- }
-
- if (tls_hdr_start <= addr && addr < tls_hdr_end) {
- return true;
- }
- return false;
- }
- ), R.entries_.end());
+ std::remove_if(R.entries_.begin(), R.entries_.end(),
+ [&](const std::unique_ptr<RelocationEntry>& E) {
+ const uint32_t addr = E->address();
+ if (tls_cbk_start <= addr && addr < tls_cbk_end) {
+ return true;
+ }
+
+ if (tls_hdr_start <= addr && addr < tls_hdr_end) {
+ return true;
+ }
+ return false;
+ }),
+ R.entries_.end()
+ );
}
// Reset the DataDirectory RVA/size
tls_dir->RVA(0);
@@ -172,37 +178,32 @@ void Binary::remove_tls() {
tls_.reset(nullptr);
}
-result<uint64_t> Binary::offset_to_virtual_address(uint64_t offset, uint64_t slide) const {
- const auto it_section = std::find_if(std::begin(sections_), std::end(sections_),
- [offset] (const std::unique_ptr<Section>& section) {
- return (offset >= section->offset() &&
- offset < (section->offset() + section->sizeof_raw_data()));
- });
+result<uint64_t> Binary::offset_to_virtual_address(uint64_t offset,
+ uint64_t slide) const {
+ const uint64_t imagebase = slide > 0 ? slide : optional_header().imagebase();
+ return imagebase + offset_to_rva(offset);
+}
- if (it_section == std::end(sections_)) {
- if (slide > 0) {
- return slide + offset;
- }
- return offset;
+uint64_t Binary::offset_to_rva(uint64_t offset) const {
+ if (const Section* section = section_from_offset(offset)) {
+ const uint64_t base_rva = section->virtual_address() - section->offset();
+ return base_rva + offset;
}
- const std::unique_ptr<Section>& section = *it_section;
- const uint64_t base_rva = section->virtual_address() - section->offset();
- if (slide > 0) {
- return slide + base_rva + offset;
- }
-
- return base_rva + offset;
+ return offset;
}
uint64_t Binary::rva_to_offset(uint64_t RVA) const {
- const auto it_section = std::find_if(std::begin(sections_), std::end(sections_),
- [RVA] (const std::unique_ptr<Section>& section) {
- const auto vsize_adj = std::max<uint64_t>(section->virtual_size(), section->sizeof_raw_data());
- return section->virtual_address() <= RVA &&
- RVA < (section->virtual_address() + vsize_adj);
- });
-
- if (it_section == std::end(sections_)) {
+ const auto it_section =
+ std::find_if(sections_.begin(), sections_.end(),
+ [RVA](const std::unique_ptr<Section>& section) {
+ const auto vsize_adj =
+ std::max<uint64_t>(section->virtual_size(),
+ section->sizeof_raw_data());
+ return section->virtual_address() <= RVA &&
+ RVA < (section->virtual_address() + vsize_adj);
+ });
+
+ if (it_section == sections_.end()) {
// If not found within a section,
// we assume that rva == offset
return RVA;
@@ -211,27 +212,29 @@ uint64_t Binary::rva_to_offset(uint64_t RVA) const {
// rva - virtual_address + pointer_to_raw_data
uint32_t section_alignment = optional_header().section_alignment();
- uint32_t file_alignment = optional_header().file_alignment();
+ uint32_t file_alignment = optional_header().file_alignment();
if (section_alignment < 0x1000) {
section_alignment = file_alignment;
}
- uint64_t section_va = section->virtual_address();
+ uint64_t section_va = section->virtual_address();
uint64_t section_offset = section->pointerto_raw_data();
- section_va = align(section_va, section_alignment);
+ section_va = align(section_va, section_alignment);
section_offset = align(section_offset, file_alignment);
return ((RVA - section_va) + section_offset);
}
const Section* Binary::section_from_offset(uint64_t offset) const {
- const auto it_section = std::find_if(std::begin(sections_), std::end(sections_),
- [&offset] (const std::unique_ptr<Section>& section) {
- return section->pointerto_raw_data() <= offset &&
- offset < (section->pointerto_raw_data() + section->sizeof_raw_data());
- });
-
- if (it_section == std::end(sections_)) {
+ const auto it_section =
+ std::find_if(sections_.begin(), sections_.end(),
+ [offset](const std::unique_ptr<Section>& section) {
+ return section->pointerto_raw_data() <= offset &&
+ offset < (section->pointerto_raw_data() +
+ section->sizeof_raw_data());
+ });
+
+ if (it_section == sections_.end()) {
return nullptr;
}
@@ -239,13 +242,15 @@ const Section* Binary::section_from_offset(uint64_t offset) const {
}
const Section* Binary::section_from_rva(uint64_t virtual_address) const {
- const auto it_section = std::find_if(std::begin(sections_), std::end(sections_),
- [virtual_address] (const std::unique_ptr<Section>& section) {
- return section->virtual_address() <= virtual_address &&
- virtual_address < (section->virtual_address() + section->virtual_size());
- });
-
- if (it_section == std::end(sections_)) {
+ const auto it_section =
+ std::find_if(sections_.begin(), sections_.end(),
+ [virtual_address](const std::unique_ptr<Section>& section) {
+ return section->virtual_address() <= virtual_address &&
+ virtual_address < (section->virtual_address() +
+ section->virtual_size());
+ });
+
+ if (it_section == sections_.end()) {
return nullptr;
}
@@ -254,7 +259,8 @@ const Section* Binary::section_from_rva(uint64_t virtual_address) const {
const DataDirectory* Binary::data_directory(DataDirectory::TYPES index) const {
if (static_cast<size_t>(index) < data_directories_.size() &&
- data_directories_[static_cast<size_t>(index)] != nullptr) {
+ data_directories_[static_cast<size_t>(index)] != nullptr)
+ {
return data_directories_[static_cast<size_t>(index)].get();
}
return nullptr;
@@ -262,9 +268,9 @@ const DataDirectory* Binary::data_directory(DataDirectory::TYPES index) const {
bool Binary::is_reproducible_build() const {
const auto it = std::find_if(debug_.begin(), debug_.end(),
- [] (const std::unique_ptr<Debug>& dbg) {
- return Repro::classof(dbg.get());
- });
+ [](const std::unique_ptr<Debug>& dbg) {
+ return Repro::classof(dbg.get());
+ });
return it != debug_.end();
}
@@ -300,26 +306,23 @@ LIEF::Binary::symbols_t Binary::get_abstract_symbols() {
}
-
LIEF::Binary::sections_t Binary::get_abstract_sections() {
LIEF::Binary::sections_t secs;
secs.reserve(sections_.size());
- std::transform(std::begin(sections_), std::end(sections_),
- std::back_inserter(secs),
- [] (const std::unique_ptr<Section>& s) {
- return s.get();
- });
+ std::transform(sections_.begin(), sections_.end(), std::back_inserter(secs),
+ [](const std::unique_ptr<Section>& s) { return s.get(); });
return secs;
}
const Section* Binary::get_section(const std::string& name) const {
- const auto section_it = std::find_if(std::begin(sections_), std::end(sections_),
- [&name] (const std::unique_ptr<Section>& section) {
- return section->name() == name;
- });
+ const auto section_it =
+ std::find_if(sections_.begin(), sections_.end(),
+ [&name](const std::unique_ptr<Section>& section) {
+ return section->name() == name;
+ });
- if (section_it == std::end(sections_)) {
+ if (section_it == sections_.end()) {
return nullptr;
}
return section_it->get();
@@ -359,7 +362,8 @@ uint32_t Binary::sizeof_headers() const {
size += sizeof(details::pe_data_directory) * data_directories_.size();
size += sizeof(details::pe_section) * sections_.size();
- size = static_cast<uint32_t>(LIEF::align(size, optional_header().file_alignment()));
+ size =
+ static_cast<uint32_t>(LIEF::align(size, optional_header().file_alignment()));
return size;
}
@@ -368,7 +372,7 @@ void Binary::remove_section(const std::string& name, bool clear) {
Section* sec = get_section(name);
if (sec == nullptr) {
- LIEF_ERR("Unable to find the section: '{}'", name);
+ LIEF_ERR("Section '{}' not found", name);
return;
}
@@ -376,26 +380,29 @@ void Binary::remove_section(const std::string& name, bool clear) {
}
void Binary::remove(const Section& section, bool clear) {
- const auto it_section = std::find_if(std::begin(sections_), std::end(sections_),
- [§ion] (const std::unique_ptr<Section>& s) {
- return *s == section;
- });
-
- if (it_section == std::end(sections_)) {
- LIEF_ERR("Unable to find section: '{}'", section.name());
+ const auto it_section =
+ std::find_if(sections_.begin(), sections_.end(),
+ [§ion](const std::unique_ptr<Section>& s) {
+ return *s == section;
+ });
+
+ if (it_section == sections_.end()) {
+ LIEF_ERR("Section '{}' not found", section.name());
return;
}
std::unique_ptr<Section>& to_remove = *it_section;
- const size_t section_index = std::distance(std::begin(sections_), it_section);
+ const size_t section_index = std::distance(sections_.begin(), it_section);
if (section_index < (sections_.size() - 1) && section_index > 0) {
std::unique_ptr<Section>& previous = sections_[section_index - 1];
- const size_t raw_size_gap = (to_remove->offset() + to_remove->size()) - (previous->offset() + previous->size());
+ const size_t raw_size_gap = (to_remove->offset() + to_remove->size()) -
+ (previous->offset() + previous->size());
previous->size(previous->size() + raw_size_gap);
- const size_t vsize_size_gap = (to_remove->virtual_address() + to_remove->virtual_size()) -
- (previous->virtual_address() + previous->virtual_size());
+ const size_t vsize_size_gap =
+ (to_remove->virtual_address() + to_remove->virtual_size()) -
+ (previous->virtual_address() + previous->virtual_size());
previous->virtual_size(previous->virtual_size() + vsize_size_gap);
}
@@ -413,14 +420,14 @@ void Binary::remove(const Section& section, bool clear) {
}
result<uint64_t> Binary::make_space_for_new_section() {
- const uint32_t shift_value = align(sizeof(details::pe_section), optional_header().file_alignment());
+ const uint32_t shift_value =
+ align(sizeof(details::pe_section), optional_header().file_alignment());
const uint64_t section_table_offset =
- dos_header().addressof_new_exeheader() +
- sizeof(details::pe_header) +
- header().sizeof_optional_header() +
- sizeof(details::pe_data_directory) * data_directories_.size() +
- sizeof(details::pe_section) * sections_.size();
+ dos_header().addressof_new_exeheader() + sizeof(details::pe_header) +
+ header().sizeof_optional_header() +
+ sizeof(details::pe_data_directory) * data_directories_.size() +
+ sizeof(details::pe_section) * sections_.size();
shift(section_table_offset, shift_value);
@@ -436,10 +443,12 @@ void Binary::shift(uint64_t /*from*/, uint64_t by) {
uint64_t Binary::last_section_offset() const {
uint64_t offset = std::accumulate(
- std::begin(sections_), std::end(sections_), static_cast<uint64_t>(sizeof_headers()),
- [] (uint64_t offset, const std::unique_ptr<Section>& s) {
- return std::max<uint64_t>(s->pointerto_raw_data() + s->sizeof_raw_data(), offset);
- });
+ sections_.begin(), sections_.end(), static_cast<uint64_t>(sizeof_headers()),
+ [](uint64_t offset, const std::unique_ptr<Section>& s) {
+ return std::max<uint64_t>(s->pointerto_raw_data() + s->sizeof_raw_data(),
+ offset);
+ }
+ );
return offset;
}
@@ -450,29 +459,35 @@ Section* Binary::add_section(const Section& section) {
}
auto new_section = std::make_unique<Section>(section);
- std::vector<uint8_t> content = as_vector(new_section->content());
- const auto section_size = static_cast<uint32_t>(content.size());
- const auto section_size_aligned = static_cast<uint32_t>(align(section_size, optional_header().file_alignment()));
- const uint32_t virtual_size = section_size;
+ std::vector<uint8_t> content = as_vector(new_section->content());
+ const auto section_size = static_cast<uint32_t>(content.size());
+ const auto section_size_aligned =
+ static_cast<uint32_t>(align(section_size,
+ optional_header().file_alignment()));
+ const uint32_t virtual_size = section_size;
content.insert(content.end(), section_size_aligned - section_size, 0);
new_section->content(content);
// Compute new section offset
- uint64_t new_section_offset = align(
- last_section_offset(), optional_header().file_alignment());
+ uint64_t new_section_offset =
+ align(last_section_offset(), optional_header().file_alignment());
- LIEF_DEBUG("New section offset: 0x{:010x}", new_section_offset);
+ LIEF_DEBUG("New section offset: {:#012x}", new_section_offset);
// Compute new section Virtual address
- const auto section_align = static_cast<uint64_t>(optional_header().section_alignment());
- const uint64_t new_section_va = align(std::accumulate(
- std::begin(sections_), std::end(sections_), section_align,
- [] (uint64_t va, const std::unique_ptr<Section>& s) {
- return std::max<uint64_t>(s->virtual_address() + s->virtual_size(), va);
- }), section_align);
-
- LIEF_DEBUG("New section VA: 0x{:010x}", new_section_va);
+ const auto section_align =
+ static_cast<uint64_t>(optional_header().section_alignment());
+ const uint64_t new_section_va =
+ align(std::accumulate(sections_.begin(), sections_.end(), section_align,
+ [](uint64_t va, const std::unique_ptr<Section>& s) {
+ return std::max<uint64_t>(
+ s->virtual_address() + s->virtual_size(), va
+ );
+ }),
+ section_align);
+
+ LIEF_DEBUG("New section VA: {:#012x}", new_section_va);
if (new_section->pointerto_raw_data() == 0) {
new_section->pointerto_raw_data(new_section_offset);
@@ -491,7 +506,7 @@ Section* Binary::add_section(const Section& section) {
}
if (sections_.size() >= std::numeric_limits<uint16_t>::max()) {
- LIEF_INFO("Binary reachs its maximum number of sections");
+ LIEF_INFO("Binary reached maximum number of sections");
return nullptr;
}
@@ -533,8 +548,9 @@ LIEF::Binary::relocations_t Binary::get_abstract_relocations() {
bool Binary::remove_import(const std::string& name) {
auto it = std::find_if(imports_.begin(), imports_.end(),
- [&name] (const std::unique_ptr<Import>& imp) { return imp->name() == name; }
- );
+ [&name](const std::unique_ptr<Import>& imp) {
+ return imp->name() == name;
+ });
if (it == imports_.end()) {
return false;
@@ -545,12 +561,13 @@ bool Binary::remove_import(const std::string& name) {
}
const Import* Binary::get_import(const std::string& import_name) const {
- const auto it_import = std::find_if(std::begin(imports_), std::end(imports_),
- [&import_name] (const std::unique_ptr<Import>& import) {
- return import->name() == import_name;
- });
+ const auto it_import =
+ std::find_if(imports_.begin(), imports_.end(),
+ [&import_name](const std::unique_ptr<Import>& import) {
+ return import->name() == import_name;
+ });
- if (it_import == std::end(imports_)) {
+ if (it_import == imports_.end()) {
return nullptr;
}
@@ -567,116 +584,111 @@ ResourceNode* Binary::set_resources(std::unique_ptr<ResourceNode> root) {
}
uint32_t Binary::compute_checksum() const {
- const size_t sizeof_ptr = type_ == PE_TYPE::PE32 ? sizeof(uint32_t) :
- sizeof(uint64_t);
+ const size_t sizeof_ptr =
+ type_ == PE_TYPE::PE32 ? sizeof(uint32_t) : sizeof(uint64_t);
ChecksumStream cs(optional_header_.checksum());
cs // Hash dos header
- .write(dos_header_.magic())
- .write(dos_header_.used_bytes_in_last_page())
- .write(dos_header_.file_size_in_pages())
- .write(dos_header_.numberof_relocation())
- .write(dos_header_.header_size_in_paragraphs())
- .write(dos_header_.minimum_extra_paragraphs())
- .write(dos_header_.maximum_extra_paragraphs())
- .write(dos_header_.initial_relative_ss())
- .write(dos_header_.initial_sp())
- .write(dos_header_.checksum())
- .write(dos_header_.initial_ip())
- .write(dos_header_.initial_relative_cs())
- .write(dos_header_.addressof_relocation_table())
- .write(dos_header_.overlay_number())
- .write(dos_header_.reserved())
- .write(dos_header_.oem_id())
- .write(dos_header_.oem_info())
- .write(dos_header_.reserved2())
- .write(dos_header_.addressof_new_exeheader())
- .write(dos_stub_);
+ .write(dos_header_.magic())
+ .write(dos_header_.used_bytes_in_last_page())
+ .write(dos_header_.file_size_in_pages())
+ .write(dos_header_.numberof_relocation())
+ .write(dos_header_.header_size_in_paragraphs())
+ .write(dos_header_.minimum_extra_paragraphs())
+ .write(dos_header_.maximum_extra_paragraphs())
+ .write(dos_header_.initial_relative_ss())
+ .write(dos_header_.initial_sp())
+ .write(dos_header_.checksum())
+ .write(dos_header_.initial_ip())
+ .write(dos_header_.initial_relative_cs())
+ .write(dos_header_.addressof_relocation_table())
+ .write(dos_header_.overlay_number())
+ .write(dos_header_.reserved())
+ .write(dos_header_.oem_id())
+ .write(dos_header_.oem_info())
+ .write(dos_header_.reserved2())
+ .write(dos_header_.addressof_new_exeheader())
+ .write(dos_stub_);
cs // Hash PE Header
- .write(header_.signature())
- .write(static_cast<uint16_t>(header_.machine()))
- .write(header_.numberof_sections())
- .write(header_.time_date_stamp())
- .write(header_.pointerto_symbol_table())
- .write(header_.numberof_symbols())
- .write(header_.sizeof_optional_header())
- .write(static_cast<uint16_t>(header_.characteristics()));
+ .write(header_.signature())
+ .write(static_cast<uint16_t>(header_.machine()))
+ .write(header_.numberof_sections())
+ .write(header_.time_date_stamp())
+ .write(header_.pointerto_symbol_table())
+ .write(header_.numberof_symbols())
+ .write(header_.sizeof_optional_header())
+ .write(static_cast<uint16_t>(header_.characteristics()));
cs // Hash OptionalHeader
- .write(static_cast<uint16_t>(optional_header_.magic()))
- .write(optional_header_.major_linker_version())
- .write(optional_header_.minor_linker_version())
- .write(optional_header_.sizeof_code())
- .write(optional_header_.sizeof_initialized_data())
- .write(optional_header_.sizeof_uninitialized_data())
- .write(optional_header_.addressof_entrypoint())
- .write(optional_header_.baseof_code());
+ .write(static_cast<uint16_t>(optional_header_.magic()))
+ .write(optional_header_.major_linker_version())
+ .write(optional_header_.minor_linker_version())
+ .write(optional_header_.sizeof_code())
+ .write(optional_header_.sizeof_initialized_data())
+ .write(optional_header_.sizeof_uninitialized_data())
+ .write(optional_header_.addressof_entrypoint())
+ .write(optional_header_.baseof_code());
if (type_ == PE_TYPE::PE32) {
cs.write(optional_header_.baseof_data());
}
cs // Continuation of optional header
- .write_sized_int(optional_header_.imagebase(), sizeof_ptr)
- .write(optional_header_.section_alignment())
- .write(optional_header_.file_alignment())
- .write(optional_header_.major_operating_system_version())
- .write(optional_header_.minor_operating_system_version())
- .write(optional_header_.major_image_version())
- .write(optional_header_.minor_image_version())
- .write(optional_header_.major_subsystem_version())
- .write(optional_header_.minor_subsystem_version())
- .write(optional_header_.win32_version_value())
- .write(optional_header_.sizeof_image())
- .write(optional_header_.sizeof_headers())
- .write(optional_header_.checksum())
- .write(static_cast<uint16_t>(optional_header_.subsystem()))
- .write(static_cast<uint16_t>(optional_header_.dll_characteristics()))
- .write_sized_int(optional_header_.sizeof_stack_reserve(), sizeof_ptr)
- .write_sized_int(optional_header_.sizeof_stack_commit(), sizeof_ptr)
- .write_sized_int(optional_header_.sizeof_heap_reserve(), sizeof_ptr)
- .write_sized_int(optional_header_.sizeof_heap_commit(), sizeof_ptr)
- .write(optional_header_.loader_flags())
- .write(optional_header_.numberof_rva_and_size());
+ .write_sized_int(optional_header_.imagebase(), sizeof_ptr)
+ .write(optional_header_.section_alignment())
+ .write(optional_header_.file_alignment())
+ .write(optional_header_.major_operating_system_version())
+ .write(optional_header_.minor_operating_system_version())
+ .write(optional_header_.major_image_version())
+ .write(optional_header_.minor_image_version())
+ .write(optional_header_.major_subsystem_version())
+ .write(optional_header_.minor_subsystem_version())
+ .write(optional_header_.win32_version_value())
+ .write(optional_header_.sizeof_image())
+ .write(optional_header_.sizeof_headers())
+ .write(optional_header_.checksum())
+ .write(static_cast<uint16_t>(optional_header_.subsystem()))
+ .write(static_cast<uint16_t>(optional_header_.dll_characteristics()))
+ .write_sized_int(optional_header_.sizeof_stack_reserve(), sizeof_ptr)
+ .write_sized_int(optional_header_.sizeof_stack_commit(), sizeof_ptr)
+ .write_sized_int(optional_header_.sizeof_heap_reserve(), sizeof_ptr)
+ .write_sized_int(optional_header_.sizeof_heap_commit(), sizeof_ptr)
+ .write(optional_header_.loader_flags())
+ .write(optional_header_.numberof_rva_and_size());
for (const std::unique_ptr<DataDirectory>& dir : data_directories_) {
- cs
- .write(dir->RVA())
- .write(dir->size());
+ cs.write(dir->RVA()).write(dir->size());
}
// Section headers
for (const std::unique_ptr<Section>& sec : sections_) {
std::array<char, 8> name = {0};
const std::string& sec_name = sec->fullname();
uint32_t name_length = std::min<uint32_t>(sec_name.size() + 1, sizeof(name));
- std::copy(sec_name.c_str(), sec_name.c_str() + name_length, std::begin(name));
- cs
- .write(name)
- .write(sec->virtual_size())
- .write<uint32_t>(sec->virtual_address())
- .write(sec->sizeof_raw_data())
- .write(sec->pointerto_raw_data())
- .write(sec->pointerto_relocation())
- .write(sec->pointerto_line_numbers())
- .write(sec->numberof_relocations())
- .write(sec->numberof_line_numbers())
- .write(static_cast<uint32_t>(sec->characteristics()));
+ std::copy(sec_name.c_str(), sec_name.c_str() + name_length, name.begin());
+ cs.write(name)
+ .write(sec->virtual_size())
+ .write<uint32_t>(sec->virtual_address())
+ .write(sec->sizeof_raw_data())
+ .write(sec->pointerto_raw_data())
+ .write(sec->pointerto_relocation())
+ .write(sec->pointerto_line_numbers())
+ .write(sec->numberof_relocations())
+ .write(sec->numberof_line_numbers())
+ .write(static_cast<uint32_t>(sec->characteristics()));
}
cs.write(section_offset_padding_);
std::vector<Section*> sections;
sections.reserve(sections_.size());
- std::transform(
- std::begin(sections_), std::end(sections_), std::back_inserter(sections),
- [] (const std::unique_ptr<Section>& s) { return s.get(); });
+ std::transform(sections_.begin(), sections_.end(), std::back_inserter(sections),
+ [](const std::unique_ptr<Section>& s) { return s.get(); });
// Sort by file offset
- std::sort(std::begin(sections), std::end(sections),
- [] (const Section* lhs, const Section* rhs) {
- return lhs->pointerto_raw_data() < rhs->pointerto_raw_data();
- }
- );
+ std::sort(sections.begin(), sections.end(),
+ [](const Section* lhs, const Section* rhs) {
+ return lhs->pointerto_raw_data() < rhs->pointerto_raw_data();
+ });
uint64_t position = 0;
for (const Section* sec : sections) {
@@ -690,16 +702,12 @@ uint32_t Binary::compute_checksum() const {
if (position <= sec->offset() + content.size()) {
const uint64_t start_p = position - sec->offset();
const uint64_t size = content.size() - start_p;
- cs
- .write(content.data() + start_p, size)
- .write(pad);
+ cs.write(content.data() + start_p, size).write(pad);
} else {
- LIEF_WARN("Overlapping in the padding area");
+ LIEF_WARN("Overlap detected in padding area");
}
} else {
- cs
- .write(content.data(), content.size())
- .write(pad);
+ cs.write(content.data(), content.size()).write(pad);
}
position = sec->offset() + content.size() + pad.size();
}
@@ -711,130 +719,125 @@ uint32_t Binary::compute_checksum() const {
std::vector<uint8_t> Binary::authentihash(ALGORITHMS algo) const {
CONST_MAP_ALT HMAP = {
- std::pair(ALGORITHMS::MD5, hashstream::HASH::MD5),
- std::pair(ALGORITHMS::SHA_1, hashstream::HASH::SHA1),
- std::pair(ALGORITHMS::SHA_256, hashstream::HASH::SHA256),
- std::pair(ALGORITHMS::SHA_384, hashstream::HASH::SHA384),
- std::pair(ALGORITHMS::SHA_512, hashstream::HASH::SHA512),
+ std::pair(ALGORITHMS::MD5, hashstream::HASH::MD5),
+ std::pair(ALGORITHMS::SHA_1, hashstream::HASH::SHA1),
+ std::pair(ALGORITHMS::SHA_256, hashstream::HASH::SHA256),
+ std::pair(ALGORITHMS::SHA_384, hashstream::HASH::SHA384),
+ std::pair(ALGORITHMS::SHA_512, hashstream::HASH::SHA512),
};
auto it_hash = HMAP.find(algo);
- if (it_hash == std::end(HMAP)) {
+ if (it_hash == HMAP.end()) {
LIEF_WARN("Unsupported hash algorithm: {}", to_string(algo));
return {};
}
- const size_t sizeof_ptr = type_ == PE_TYPE::PE32 ? sizeof(uint32_t) : sizeof(uint64_t);
+ const size_t sizeof_ptr =
+ type_ == PE_TYPE::PE32 ? sizeof(uint32_t) : sizeof(uint64_t);
const hashstream::HASH hash_type = it_hash->second;
hashstream ios(hash_type);
- //vector_iostream ios;
+ // vector_iostream ios;
ios // Hash dos header
- .write(dos_header_.magic())
- .write(dos_header_.used_bytes_in_last_page())
- .write(dos_header_.file_size_in_pages())
- .write(dos_header_.numberof_relocation())
- .write(dos_header_.header_size_in_paragraphs())
- .write(dos_header_.minimum_extra_paragraphs())
- .write(dos_header_.maximum_extra_paragraphs())
- .write(dos_header_.initial_relative_ss())
- .write(dos_header_.initial_sp())
- .write(dos_header_.checksum())
- .write(dos_header_.initial_ip())
- .write(dos_header_.initial_relative_cs())
- .write(dos_header_.addressof_relocation_table())
- .write(dos_header_.overlay_number())
- .write(dos_header_.reserved())
- .write(dos_header_.oem_id())
- .write(dos_header_.oem_info())
- .write(dos_header_.reserved2())
- .write(dos_header_.addressof_new_exeheader())
- .write(dos_stub_);
+ .write(dos_header_.magic())
+ .write(dos_header_.used_bytes_in_last_page())
+ .write(dos_header_.file_size_in_pages())
+ .write(dos_header_.numberof_relocation())
+ .write(dos_header_.header_size_in_paragraphs())
+ .write(dos_header_.minimum_extra_paragraphs())
+ .write(dos_header_.maximum_extra_paragraphs())
+ .write(dos_header_.initial_relative_ss())
+ .write(dos_header_.initial_sp())
+ .write(dos_header_.checksum())
+ .write(dos_header_.initial_ip())
+ .write(dos_header_.initial_relative_cs())
+ .write(dos_header_.addressof_relocation_table())
+ .write(dos_header_.overlay_number())
+ .write(dos_header_.reserved())
+ .write(dos_header_.oem_id())
+ .write(dos_header_.oem_info())
+ .write(dos_header_.reserved2())
+ .write(dos_header_.addressof_new_exeheader())
+ .write(dos_stub_);
ios // Hash PE Header
- .write(header_.signature())
- .write(static_cast<uint16_t>(header_.machine()))
- .write(header_.numberof_sections())
- .write(header_.time_date_stamp())
- .write(header_.pointerto_symbol_table())
- .write(header_.numberof_symbols())
- .write(header_.sizeof_optional_header())
- .write(static_cast<uint16_t>(header_.characteristics()));
+ .write(header_.signature())
+ .write(static_cast<uint16_t>(header_.machine()))
+ .write(header_.numberof_sections())
+ .write(header_.time_date_stamp())
+ .write(header_.pointerto_symbol_table())
+ .write(header_.numberof_symbols())
+ .write(header_.sizeof_optional_header())
+ .write(static_cast<uint16_t>(header_.characteristics()));
ios // Hash OptionalHeader
- .write(static_cast<uint16_t>(optional_header_.magic()))
- .write(optional_header_.major_linker_version())
- .write(optional_header_.minor_linker_version())
- .write(optional_header_.sizeof_code())
- .write(optional_header_.sizeof_initialized_data())
- .write(optional_header_.sizeof_uninitialized_data())
- .write(optional_header_.addressof_entrypoint())
- .write(optional_header_.baseof_code());
+ .write(static_cast<uint16_t>(optional_header_.magic()))
+ .write(optional_header_.major_linker_version())
+ .write(optional_header_.minor_linker_version())
+ .write(optional_header_.sizeof_code())
+ .write(optional_header_.sizeof_initialized_data())
+ .write(optional_header_.sizeof_uninitialized_data())
+ .write(optional_header_.addressof_entrypoint())
+ .write(optional_header_.baseof_code());
if (type_ == PE_TYPE::PE32) {
ios.write(optional_header_.baseof_data());
}
ios // Continuation of optional header
- .write_sized_int(optional_header_.imagebase(), sizeof_ptr)
- .write(optional_header_.section_alignment())
- .write(optional_header_.file_alignment())
- .write(optional_header_.major_operating_system_version())
- .write(optional_header_.minor_operating_system_version())
- .write(optional_header_.major_image_version())
- .write(optional_header_.minor_image_version())
- .write(optional_header_.major_subsystem_version())
- .write(optional_header_.minor_subsystem_version())
- .write(optional_header_.win32_version_value())
- .write(optional_header_.sizeof_image())
- .write(optional_header_.sizeof_headers())
- // optional_header_.checksum()) is not a part of the hash
- .write(static_cast<uint16_t>(optional_header_.subsystem()))
- .write(static_cast<uint16_t>(optional_header_.dll_characteristics()))
- .write_sized_int(optional_header_.sizeof_stack_reserve(), sizeof_ptr)
- .write_sized_int(optional_header_.sizeof_stack_commit(), sizeof_ptr)
- .write_sized_int(optional_header_.sizeof_heap_reserve(), sizeof_ptr)
- .write_sized_int(optional_header_.sizeof_heap_commit(), sizeof_ptr)
- .write(optional_header_.loader_flags())
- .write(optional_header_.numberof_rva_and_size());
+ .write_sized_int(optional_header_.imagebase(), sizeof_ptr)
+ .write(optional_header_.section_alignment())
+ .write(optional_header_.file_alignment())
+ .write(optional_header_.major_operating_system_version())
+ .write(optional_header_.minor_operating_system_version())
+ .write(optional_header_.major_image_version())
+ .write(optional_header_.minor_image_version())
+ .write(optional_header_.major_subsystem_version())
+ .write(optional_header_.minor_subsystem_version())
+ .write(optional_header_.win32_version_value())
+ .write(optional_header_.sizeof_image())
+ .write(optional_header_.sizeof_headers())
+ // optional_header_.checksum() is not part of the hash
+ .write(static_cast<uint16_t>(optional_header_.subsystem()))
+ .write(static_cast<uint16_t>(optional_header_.dll_characteristics()))
+ .write_sized_int(optional_header_.sizeof_stack_reserve(), sizeof_ptr)
+ .write_sized_int(optional_header_.sizeof_stack_commit(), sizeof_ptr)
+ .write_sized_int(optional_header_.sizeof_heap_reserve(), sizeof_ptr)
+ .write_sized_int(optional_header_.sizeof_heap_commit(), sizeof_ptr)
+ .write(optional_header_.loader_flags())
+ .write(optional_header_.numberof_rva_and_size());
for (const std::unique_ptr<DataDirectory>& dir : data_directories_) {
if (dir->type() == DataDirectory::TYPES::CERTIFICATE_TABLE) {
continue;
}
- ios
- .write(dir->RVA())
- .write(dir->size());
+ ios.write(dir->RVA()).write(dir->size());
}
for (const std::unique_ptr<Section>& sec : sections_) {
std::array<char, 8> name = {0};
const std::string& sec_name = sec->fullname();
uint32_t name_length = std::min<uint32_t>(sec_name.size() + 1, sizeof(name));
- std::copy(sec_name.c_str(), sec_name.c_str() + name_length, std::begin(name));
- ios
- .write(name)
- .write(sec->virtual_size())
- .write<uint32_t>(sec->virtual_address())
- .write(sec->sizeof_raw_data())
- .write(sec->pointerto_raw_data())
- .write(sec->pointerto_relocation())
- .write(sec->pointerto_line_numbers())
- .write(sec->numberof_relocations())
- .write(sec->numberof_line_numbers())
- .write(static_cast<uint32_t>(sec->characteristics()));
- }
- //LIEF_DEBUG("Section padding at 0x{:x}", ios.tellp());
+ std::copy(sec_name.c_str(), sec_name.c_str() + name_length, name.begin());
+ ios.write(name)
+ .write(sec->virtual_size())
+ .write<uint32_t>(sec->virtual_address())
+ .write(sec->sizeof_raw_data())
+ .write(sec->pointerto_raw_data())
+ .write(sec->pointerto_relocation())
+ .write(sec->pointerto_line_numbers())
+ .write(sec->numberof_relocations())
+ .write(sec->numberof_line_numbers())
+ .write(static_cast<uint32_t>(sec->characteristics()));
+ }
+ // LIEF_DEBUG("Section padding at {:#x}", ios.tellp());
ios.write(section_offset_padding_);
std::vector<Section*> sections;
sections.reserve(sections_.size());
- std::transform(std::begin(sections_), std::end(sections_),
- std::back_inserter(sections),
- [] (const std::unique_ptr<Section>& s) {
- return s.get();
- });
+ std::transform(sections_.begin(), sections_.end(), std::back_inserter(sections),
+ [](const std::unique_ptr<Section>& s) { return s.get(); });
// Sort by file offset
- std::sort(std::begin(sections), std::end(sections),
- [] (const Section* lhs, const Section* rhs) {
- return lhs->pointerto_raw_data() < rhs->pointerto_raw_data();
+ std::sort(sections.begin(), sections.end(),
+ [](const Section* lhs, const Section* rhs) {
+ return lhs->pointerto_raw_data() < rhs->pointerto_raw_data();
});
uint64_t position = 0;
@@ -844,48 +847,47 @@ std::vector<uint8_t> Binary::authentihash(ALGORITHMS algo) const {
}
span<const uint8_t> pad = sec->padding();
span<const uint8_t> content = sec->content();
- LIEF_DEBUG("Authentihash: Append section {:<8}: [0x{:04x}, 0x{:04x}] + "
- "[0x{:04x}] = [0x{:04x}, 0x{:04x}]",
- sec->name(),
- sec->offset(), sec->offset() + content.size(), pad.size(),
- sec->offset(), sec->offset() + content.size() + pad.size());
+ LIEF_DEBUG("Authentihash: Append section {:<8}: [{:#06x}, {:#06x}] + "
+ "[{:#06x}] = [{:#06x}, {:#06x}]",
+ sec->name(), sec->offset(), sec->offset() + content.size(),
+ pad.size(), sec->offset(),
+ sec->offset() + content.size() + pad.size());
if (/* overlapping */ sec->offset() < position) {
// Trunc the beginning of the overlap
if (position <= sec->offset() + content.size()) {
const uint64_t start_p = position - sec->offset();
const uint64_t size = content.size() - start_p;
- ios
- .write(content.data() + start_p, size)
- .write(pad);
+ ios.write(content.data() + start_p, size).write(pad);
} else {
- LIEF_WARN("Overlapping in the padding area");
+ LIEF_WARN("Overlap detected in padding area");
}
} else {
- ios
- .write(content.data(), content.size())
- .write(pad);
+ ios.write(content.data(), content.size()).write(pad);
}
position = sec->offset() + content.size() + pad.size();
}
if (!overlay_.empty()) {
const DataDirectory* cert_dir = this->cert_dir();
if (cert_dir == nullptr) {
- LIEF_ERR("Can't find the data directory for CERTIFICATE_TABLE");
+ LIEF_ERR("CERTIFICATE_TABLE data directory not found");
return {};
}
- LIEF_DEBUG("Add overlay and omit 0x{:08x} - 0x{:08x}",
- cert_dir->RVA(), cert_dir->RVA() + cert_dir->size());
- if (cert_dir->RVA() > 0 && cert_dir->size() > 0 && cert_dir->RVA() >= overlay_offset_) {
+ LIEF_DEBUG("Add overlay and omit {:#010x} - {:#010x}", cert_dir->RVA(),
+ cert_dir->RVA() + cert_dir->size());
+ if (cert_dir->RVA() > 0 && cert_dir->size() > 0 &&
+ cert_dir->RVA() >= overlay_offset_)
+ {
const uint64_t start_cert_offset = cert_dir->RVA() - overlay_offset_;
- const uint64_t end_cert_offset = start_cert_offset + cert_dir->size();
+ const uint64_t end_cert_offset = start_cert_offset + cert_dir->size();
if (end_cert_offset <= overlay_.size()) {
- LIEF_DEBUG("Add [0x{:x}, 0x{:x}]", overlay_offset_, overlay_offset_ + start_cert_offset);
- LIEF_DEBUG("Add [0x{:x}, 0x{:x}]",
- overlay_offset_ + end_cert_offset,
- overlay_offset_ + end_cert_offset + overlay_.size() - end_cert_offset);
- ios
- .write(overlay_.data(), start_cert_offset)
- .write(overlay_.data() + end_cert_offset, overlay_.size() - end_cert_offset);
+ LIEF_DEBUG("Add [{:#x}, {:#x}]", overlay_offset_,
+ overlay_offset_ + start_cert_offset);
+ LIEF_DEBUG("Add [{:#x}, {:#x}]", overlay_offset_ + end_cert_offset,
+ overlay_offset_ + end_cert_offset + overlay_.size() -
+ end_cert_offset);
+ ios.write(overlay_.data(), start_cert_offset)
+ .write(overlay_.data() + end_cert_offset,
+ overlay_.size() - end_cert_offset);
} else {
ios.write(overlay());
}
@@ -895,11 +897,11 @@ std::vector<uint8_t> Binary::authentihash(ALGORITHMS algo) const {
}
// When something gets wrong with the hash:
// std::vector<uint8_t> out = ios.raw();
- // std::ofstream output_file{"/tmp/hash.blob", std::ios::out | std::ios::binary | std::ios::trunc};
- // if (output_file) {
+ // std::ofstream output_file{"/tmp/hash.blob", std::ios::out | std::ios::binary |
+ // std::ios::trunc}; if (output_file) {
// std::copy(
- // std::begin(out),
- // std::end(out),
+ // out.begin(),
+ // out.end(),
// std::ostreambuf_iterator<char>(output_file));
// }
// std::vector<uint8_t> hash = hashstream(hash_type).write(out).raw();
@@ -909,7 +911,8 @@ std::vector<uint8_t> Binary::authentihash(ALGORITHMS algo) const {
return hash;
}
-Signature::VERIFICATION_FLAGS Binary::verify_signature(Signature::VERIFICATION_CHECKS checks) const {
+Signature::VERIFICATION_FLAGS
+ Binary::verify_signature(Signature::VERIFICATION_CHECKS checks) const {
if (!has_signatures()) {
return Signature::VERIFICATION_FLAGS::NO_SIGNATURE;
}
@@ -920,14 +923,17 @@ Signature::VERIFICATION_FLAGS Binary::verify_signature(Signature::VERIFICATION_C
const Signature& sig = signatures_[i];
flags |= verify_signature(sig, checks);
if (flags != Signature::VERIFICATION_FLAGS::OK) {
- LIEF_INFO("Verification failed for signature #{:d} (0b{:b})", i, static_cast<uintptr_t>(flags));
+ LIEF_INFO("Verification failed for signature #{:d} (0b{:b})", i,
+ static_cast<uintptr_t>(flags));
break;
}
}
return flags;
}
-Signature::VERIFICATION_FLAGS Binary::verify_signature(const Signature& sig, Signature::VERIFICATION_CHECKS checks) const {
+Signature::VERIFICATION_FLAGS
+ Binary::verify_signature(const Signature& sig,
+ Signature::VERIFICATION_CHECKS checks) const {
Signature::VERIFICATION_FLAGS flags = Signature::VERIFICATION_FLAGS::OK;
if (!is_true(checks & Signature::VERIFICATION_CHECKS::HASH_ONLY)) {
const Signature::VERIFICATION_FLAGS value = sig.check(checks);
@@ -940,17 +946,17 @@ Signature::VERIFICATION_FLAGS Binary::verify_signature(const Signature& sig, Sig
const ContentInfo::Content& content = sig.content_info().value();
if (!SpcIndirectData::classof(&content)) {
- LIEF_INFO("Expecting SpcIndirectData");
+ LIEF_INFO("Expected SpcIndirectData content");
flags |= Signature::VERIFICATION_FLAGS::CORRUPTED_CONTENT_INFO;
return flags;
}
const auto& spc_indirect_data = static_cast<const SpcIndirectData&>(content);
- // Check that the authentihash matches Content Info's digest
+ // Check that the authentihash matches ContentInfo's digest
const std::vector<uint8_t>& authhash = authentihash(sig.digest_algorithm());
const span<const uint8_t> chash = spc_indirect_data.digest();
if (authhash != std::vector<uint8_t>(chash.begin(), chash.end())) {
- LIEF_INFO("Authentihash and Content info's digest does not match:\n {}\n {}",
+ LIEF_INFO("Authentihash and content info digest mismatch:\n {}\n {}",
hex_dump(authhash), hex_dump(chash));
flags |= Signature::VERIFICATION_FLAGS::BAD_DIGEST;
}
@@ -966,7 +972,7 @@ LIEF::Binary::functions_t Binary::get_abstract_exported_functions() const {
if (const Export* exp = get_export()) {
for (const ExportEntry& entry : exp->entries()) {
const std::string& name = entry.name();
- if(!name.empty()) {
+ if (!name.empty()) {
result.emplace_back(name, entry.address(), Function::FLAGS::EXPORTED);
}
}
@@ -983,7 +989,7 @@ LIEF::Binary::functions_t Binary::get_abstract_imported_functions() const {
}
for (const ImportEntry& entry : resolved.entries()) {
const std::string& name = entry.name();
- if(!name.empty()) {
+ if (!name.empty()) {
result.emplace_back(name, entry.iat_address(), Function::FLAGS::IMPORTED);
}
}
@@ -996,7 +1002,7 @@ LIEF::Binary::functions_t Binary::get_abstract_imported_functions() const {
continue;
}
const std::string& name = entry.name();
- if(!name.empty()) {
+ if (!name.empty()) {
result.emplace_back(name, entry.value(), Function::FLAGS::IMPORTED);
}
}
@@ -1017,8 +1023,7 @@ std::vector<std::string> Binary::get_abstract_imported_libraries() const {
}
void Binary::fill_address(uint64_t address, size_t size, uint8_t value,
- VA_TYPES addr_type)
-{
+ VA_TYPES addr_type) {
uint64_t rva = address;
if (addr_type == VA_TYPES::VA || addr_type == VA_TYPES::AUTO) {
@@ -1031,21 +1036,22 @@ void Binary::fill_address(uint64_t address, size_t size, uint8_t value,
Section* section_topatch = section_from_rva(rva);
if (section_topatch == nullptr) {
- LIEF_ERR("Can't find section with the rva: 0x{:x}", rva);
+ LIEF_ERR("Section not found for RVA {:#x}", rva);
return;
}
const uint64_t offset = rva - section_topatch->virtual_address();
span<uint8_t> content = section_topatch->writable_content();
if (offset + size > content.size()) {
- LIEF_ERR("Can't write {} bytes at 0x{:x} (limit: 0x{:x})",
- size, offset, content.size());
+ LIEF_ERR("Cannot write {} bytes at {:#x} (limit: {:#x})", size, offset,
+ content.size());
return;
}
std::fill_n(content.begin() + offset, size, value);
}
-void Binary::patch_address(uint64_t address, const std::vector<uint8_t>& patch_value,
+void Binary::patch_address(uint64_t address,
+ const std::vector<uint8_t>& patch_value,
VA_TYPES addr_type) {
uint64_t rva = address;
@@ -1060,32 +1066,32 @@ void Binary::patch_address(uint64_t address, const std::vector<uint8_t>& patch_v
// Find the section associated with the virtual address
Section* section_topatch = section_from_rva(rva);
if (section_topatch == nullptr) {
- LIEF_ERR("Can't find section with the rva: 0x{:x}", rva);
+ LIEF_ERR("Section not found for RVA {:#x}", rva);
return;
}
const uint64_t offset = rva - section_topatch->virtual_address();
span<uint8_t> content = section_topatch->writable_content();
if (offset + patch_value.size() > content.size()) {
- LIEF_ERR("The patch value ({} bytes @0x{:x}) is out of bounds of the section (limit: 0x{:x})",
+ LIEF_ERR("Patch value ({} bytes @{:#x}) out of section bounds (limit: {:#x})",
patch_value.size(), offset, content.size());
return;
}
- std::copy(std::begin(patch_value), std::end(patch_value),
- content.data() + offset);
-
+ std::copy(patch_value.begin(), patch_value.end(), content.data() + offset);
}
-void Binary::patch_address(uint64_t address, uint64_t patch_value,
- size_t size, LIEF::Binary::VA_TYPES addr_type) {
+void Binary::patch_address(uint64_t address, uint64_t patch_value, size_t size,
+ LIEF::Binary::VA_TYPES addr_type) {
if (size > sizeof(patch_value)) {
- LIEF_ERR("Invalid size (0x{:x})", size);
+ LIEF_ERR("Invalid size ({:#x})", size);
return;
}
uint64_t rva = address;
- if (addr_type == LIEF::Binary::VA_TYPES::VA || addr_type == LIEF::Binary::VA_TYPES::AUTO) {
+ if (addr_type == LIEF::Binary::VA_TYPES::VA ||
+ addr_type == LIEF::Binary::VA_TYPES::AUTO)
+ {
const int64_t delta = address - optional_header().imagebase();
if (delta > 0 || addr_type == LIEF::Binary::VA_TYPES::VA) {
@@ -1095,58 +1101,61 @@ void Binary::patch_address(uint64_t address, uint64_t patch_value,
Section* section_topatch = section_from_rva(rva);
if (section_topatch == nullptr) {
- LIEF_ERR("Can't find section with the rva: 0x{:x}", rva);
+ LIEF_ERR("Section not found for RVA {:#x}", rva);
return;
}
const uint64_t offset = rva - section_topatch->virtual_address();
span<uint8_t> content = section_topatch->writable_content();
if (offset > content.size() || (offset + size) > content.size()) {
- LIEF_ERR("The patch value ({} bytes @0x{:x}) is out of bounds of the section (limit: 0x{:x})",
+ LIEF_ERR("Patch value ({} bytes @{:#x}) out of section bounds (limit: {:#x})",
size, offset, content.size());
}
switch (size) {
case sizeof(uint8_t):
- {
- auto X = static_cast<uint8_t>(patch_value);
- memcpy(content.data() + offset, &X, sizeof(uint8_t));
- break;
- }
+ {
+ auto X = static_cast<uint8_t>(patch_value);
+ memcpy(content.data() + offset, &X, sizeof(uint8_t));
+ break;
+ }
case sizeof(uint16_t):
- {
- auto X = static_cast<uint16_t>(patch_value);
- memcpy(content.data() + offset, &X, sizeof(uint16_t));
- break;
- }
+ {
+ auto X = static_cast<uint16_t>(patch_value);
+ memcpy(content.data() + offset, &X, sizeof(uint16_t));
+ break;
+ }
case sizeof(uint32_t):
- {
- auto X = static_cast<uint32_t>(patch_value);
- memcpy(content.data() + offset, &X, sizeof(uint32_t));
- break;
- }
+ {
+ auto X = static_cast<uint32_t>(patch_value);
+ memcpy(content.data() + offset, &X, sizeof(uint32_t));
+ break;
+ }
case sizeof(uint64_t):
- {
- auto X = static_cast<uint64_t>(patch_value);
- memcpy(content.data() + offset, &X, sizeof(uint64_t));
- break;
- }
+ {
+ auto X = static_cast<uint64_t>(patch_value);
+ memcpy(content.data() + offset, &X, sizeof(uint64_t));
+ break;
+ }
default:
- {
- LIEF_ERR("The provided size ({}) does not match the size of an integer", size);
- return;
- }
+ {
+ LIEF_ERR("Provided size ({}) does not match integer size", size);
+ return;
+ }
}
}
-span<const uint8_t> Binary::get_content_from_virtual_address(uint64_t virtual_address,
- uint64_t size, LIEF::Binary::VA_TYPES addr_type) const {
+span<const uint8_t> Binary::get_content_from_virtual_address(
+ uint64_t virtual_address, uint64_t size, LIEF::Binary::VA_TYPES addr_type
+) const {
uint64_t rva = virtual_address;
- if (addr_type == LIEF::Binary::VA_TYPES::VA || addr_type == LIEF::Binary::VA_TYPES::AUTO) {
+ if (addr_type == LIEF::Binary::VA_TYPES::VA ||
+ addr_type == LIEF::Binary::VA_TYPES::AUTO)
+ {
const int64_t delta = virtual_address - optional_header().imagebase();
if (delta > 0 || addr_type == LIEF::Binary::VA_TYPES::VA) {
@@ -1155,7 +1164,7 @@ span<const uint8_t> Binary::get_content_from_virtual_address(uint64_t virtual_ad
}
const Section* section = section_from_rva(rva);
if (section == nullptr) {
- LIEF_ERR("Can't find the section with the rva 0x{:x}", rva);
+ LIEF_ERR("Section not found for RVA {:#x}", rva);
return {};
}
span<const uint8_t> content = section->content();
@@ -1164,14 +1173,13 @@ span<const uint8_t> Binary::get_content_from_virtual_address(uint64_t virtual_ad
if ((offset + checked_size) > content.size()) {
uint64_t delta_off = offset + checked_size - content.size();
if (checked_size < delta_off) {
- LIEF_ERR("Can't access section data due to a section end overflow.");
- return {};
+ LIEF_ERR("Section end overflow prevents data access");
+ return {};
}
checked_size = checked_size - delta_off;
}
return {content.data() + offset, static_cast<size_t>(checked_size)};
-
}
void Binary::rich_header(const RichHeader& rich_header) {
@@ -1196,7 +1204,6 @@ LIEF::Binary::functions_t Binary::ctor_functions() const {
for (size_t i = 0; i < clbs.size(); ++i) {
functions.emplace_back("tls_" + std::to_string(i), clbs[i],
Function::FLAGS::CONSTRUCTOR);
-
}
}
return functions;
@@ -1205,25 +1212,25 @@ LIEF::Binary::functions_t Binary::ctor_functions() const {
LIEF::Binary::functions_t Binary::functions() const {
- static const auto func_cmd = [] (const Function& lhs, const Function& rhs) {
+ static const auto func_cmd = [](const Function& lhs, const Function& rhs) {
return lhs.address() < rhs.address();
};
std::set<Function, decltype(func_cmd)> functions_set(func_cmd);
LIEF::Binary::functions_t exception_functions = this->exception_functions();
- LIEF::Binary::functions_t exported = get_abstract_exported_functions();
- LIEF::Binary::functions_t ctors = ctor_functions();
+ LIEF::Binary::functions_t exported = get_abstract_exported_functions();
+ LIEF::Binary::functions_t ctors = ctor_functions();
- std::move(std::begin(exception_functions), std::end(exception_functions),
- std::inserter(functions_set, std::end(functions_set)));
+ std::move(exception_functions.begin(), exception_functions.end(),
+ std::inserter(functions_set, functions_set.end()));
- std::move(std::begin(exported), std::end(exported),
- std::inserter(functions_set, std::end(functions_set)));
+ std::move(exported.begin(), exported.end(),
+ std::inserter(functions_set, functions_set.end()));
- std::move(std::begin(ctors), std::end(ctors),
- std::inserter(functions_set, std::end(functions_set)));
+ std::move(ctors.begin(), ctors.end(),
+ std::inserter(functions_set, functions_set.end()));
- return {std::begin(functions_set), std::end(functions_set)};
+ return {functions_set.begin(), functions_set.end()};
}
LIEF::Binary::functions_t Binary::exception_functions() const {
@@ -1243,12 +1250,13 @@ LIEF::Binary::functions_t Binary::exception_functions() const {
}
const DelayImport* Binary::get_delay_import(const std::string& import_name) const {
- const auto it_import = std::find_if(std::begin(delay_imports_), std::end(delay_imports_),
- [&import_name] (const std::unique_ptr<DelayImport>& import) {
- return import->name() == import_name;
- });
+ const auto it_import =
+ std::find_if(delay_imports_.begin(), delay_imports_.end(),
+ [&import_name](const std::unique_ptr<DelayImport>& import) {
+ return import->name() == import_name;
+ });
- if (it_import == std::end(delay_imports_)) {
+ if (it_import == delay_imports_.end()) {
return nullptr;
}
@@ -1261,10 +1269,9 @@ const CodeViewPDB* Binary::codeview_pdb() const {
}
const auto it = std::find_if(debug_.begin(), debug_.end(),
- [] (const std::unique_ptr<Debug>& debug) {
- return CodeViewPDB::classof(debug.get());
- }
- );
+ [](const std::unique_ptr<Debug>& debug) {
+ return CodeViewPDB::classof(debug.get());
+ });
if (it == debug_.end()) {
return nullptr;
}
@@ -1280,9 +1287,9 @@ Debug* Binary::add_debug_info(const Debug& entry) {
bool Binary::remove_debug(const Debug& entry) {
auto it = std::find_if(debug_.begin(), debug_.end(),
- [&entry] (const std::unique_ptr<Debug>& dbg) {
- return dbg.get() == &entry;
- });
+ [&entry](const std::unique_ptr<Debug>& dbg) {
+ return dbg.get() == &entry;
+ });
if (it == debug_.end()) {
return false;
@@ -1300,6 +1307,9 @@ bool Binary::remove_debug(const Debug& entry) {
bool Binary::clear_debug() {
DataDirectory* dbg_dir = this->debug_dir();
+ if (dbg_dir == nullptr) {
+ return false;
+ }
for (std::unique_ptr<Debug>& dbg : debug_) {
span<uint8_t> payload = dbg->payload();
if (payload.empty()) {
@@ -1309,7 +1319,8 @@ bool Binary::clear_debug() {
}
debug_.clear();
- this->fill_address(dbg_dir->RVA(), dbg_dir->size());
+ fill_address(dbg_dir->RVA(), dbg_dir->size(), /*value=*/0,
+ Binary::VA_TYPES::RVA);
dbg_dir->RVA(0);
dbg_dir->size(0);
return true;
@@ -1318,10 +1329,9 @@ bool Binary::clear_debug() {
ExceptionInfo* Binary::find_exception_at(uint32_t rva) {
auto it = std::find_if(exceptions_.begin(), exceptions_.end(),
- [rva] (const std::unique_ptr<ExceptionInfo>& info) {
- return info->rva_start() == rva;
- }
- );
+ [rva](const std::unique_ptr<ExceptionInfo>& info) {
+ return info->rva_start() == rva;
+ });
if (it == exceptions_.end()) {
return nullptr;
@@ -1373,30 +1383,20 @@ void Binary::accept(Visitor& visitor) const {
}
std::ostream& Binary::print(std::ostream& os) const {
- using namespace fmt;
- os << "DOS Header {\n"
- << indent(LIEF::to_string(dos_header()), 2)
- << "}\n";
+ os << "DOS Header {\n" << indent(LIEF::to_string(dos_header()), 2) << "}\n";
if (auto stub = dos_stub(); !stub.empty()) {
- os << "DOS Sub {\n"
- << indent(LIEF::dump(stub), 2)
- << "}\n";
+ os << "DOS Sub {\n" << indent(LIEF::dump(stub), 2) << "}\n";
}
if (const RichHeader* rich = rich_header()) {
- os << "Rich Header {\n"
- << indent(LIEF::to_string(*rich), 2)
- << "}\n";
+ os << "Rich Header {\n" << indent(LIEF::to_string(*rich), 2) << "}\n";
}
- os << "Header {\n"
- << indent(LIEF::to_string(header()), 2)
- << "}\n";
+ os << "Header {\n" << indent(LIEF::to_string(header()), 2) << "}\n";
os << "Optional Header {\n"
- << indent(LIEF::to_string(optional_header()), 2)
- << "}\n";
+ << indent(LIEF::to_string(optional_header()), 2) << "}\n";
os << "Data Directories:\n";
for (const DataDirectory& dir : data_directories()) {
@@ -1407,29 +1407,23 @@ std::ostream& Binary::print(std::ostream& os) const {
const auto secs = sections();
for (size_t i = 0; i < secs.size(); ++i) {
os << fmt::format("Section #{:02} {{\n", i)
- << indent(LIEF::to_string(secs[i]), 2)
- << "}\n";
+ << indent(LIEF::to_string(secs[i]), 2) << "}\n";
}
}
if (const TLS* tls_obj = tls()) {
- os << "TLS: {\n"
- << indent(LIEF::to_string(*tls_obj), 2)
- << "}\n";
+ os << "TLS: {\n" << indent(LIEF::to_string(*tls_obj), 2) << "}\n";
}
if (const LoadConfiguration* lconf = load_configuration()) {
- os << "Load Configuration: {\n"
- << indent(LIEF::to_string(*lconf), 2)
- << "}\n";
+ os << "Load Configuration: {\n" << indent(LIEF::to_string(*lconf), 2) << "}\n";
}
if (auto entries = debug(); !entries.empty()) {
os << fmt::format("Debug Entries (#{}):\n", entries.size());
for (size_t i = 0; i < entries.size(); ++i) {
os << fmt::format(" Entry[{:02}] {{\n", i)
- << indent(LIEF::to_string(entries[i]), 4)
- << " }\n";
+ << indent(LIEF::to_string(entries[i]), 4) << " }\n";
}
os << "}\n";
}
@@ -1467,16 +1461,14 @@ std::ostream& Binary::print(std::ostream& os) const {
}
if (const ResourceNode* root = resources()) {
- os << "Resources:\n"
- << indent(LIEF::to_string(*root), 2);
+ os << "Resources:\n" << indent(LIEF::to_string(*root), 2);
}
if (auto syms = symbols(); !syms.empty()) {
os << fmt::format("COFF Symbols (#{})\n", syms.size());
for (size_t i = 0; i < syms.size(); ++i) {
os << fmt::format("Symbol[{:02d}] {{\n", i)
- << indent(LIEF::to_string(syms[i]), 2)
- << "}\n";
+ << indent(LIEF::to_string(syms[i]), 2) << "}\n";
}
}
@@ -1488,13 +1480,10 @@ std::ostream& Binary::print(std::ostream& os) const {
}
if (const Binary* nested = nested_pe_binary()) {
- os << "Nested PE Binary {\n"
- << indent(LIEF::to_string(*nested), 2)
- << "}";
+ os << "Nested PE Binary {\n" << indent(LIEF::to_string(*nested), 2) << "}";
}
return os;
}
} // namesapce PE
-} // namespace LIEF
diff --git a/deps/LIEF/src/PE/Builder.cpp b/deps/LIEF/src/PE/Builder.cpp
index 1b1fe300399..c6fdbfdc474 100644
--- a/deps/LIEF/src/PE/Builder.cpp
+++ b/deps/LIEF/src/PE/Builder.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,21 +21,26 @@
#include "logging.hpp"
#include "LIEF/PE/Builder.hpp"
-#include "LIEF/PE/ResourceData.hpp"
-#include "LIEF/PE/utils.hpp"
-#include "LIEF/PE/ImportEntry.hpp"
-#include "LIEF/PE/Import.hpp"
-#include "LIEF/PE/Debug.hpp"
-#include "LIEF/PE/debug/PDBChecksum.hpp"
-#include "LIEF/PE/debug/ExDllCharacteristics.hpp"
-#include "LIEF/PE/debug/FPO.hpp"
-#include "LIEF/PE/Section.hpp"
-#include "LIEF/PE/ResourceDirectory.hpp"
#include "LIEF/PE/DataDirectory.hpp"
-#include "LIEF/PE/Relocation.hpp"
-#include "LIEF/PE/RelocationEntry.hpp"
#include "LIEF/PE/Export.hpp"
#include "LIEF/PE/ExportEntry.hpp"
+#include "LIEF/PE/Import.hpp"
+#include "LIEF/PE/ImportEntry.hpp"
+#include "LIEF/PE/Relocation.hpp"
+#include "LIEF/PE/RelocationEntry.hpp"
+#include "LIEF/PE/ResourceData.hpp"
+#include "LIEF/PE/ResourceDirectory.hpp"
+#include "LIEF/PE/Section.hpp"
+#include "LIEF/PE/debug/CodeView.hpp"
+#include "LIEF/PE/debug/CodeViewPDB.hpp"
+#include "LIEF/PE/debug/Debug.hpp"
+#include "LIEF/PE/debug/ExDllCharacteristics.hpp"
+#include "LIEF/PE/debug/PDBChecksum.hpp"
+#include "LIEF/PE/debug/Pogo.hpp"
+#include "LIEF/PE/debug/PogoEntry.hpp"
+#include "LIEF/PE/debug/Repro.hpp"
+#include "LIEF/PE/debug/VCFeature.hpp"
+#include "LIEF/PE/utils.hpp"
#include "LIEF/utils.hpp"
#include "PE/Structures.hpp"
@@ -43,18 +48,17 @@
#include "Builder.tcc"
#include "internal_utils.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
Builder::~Builder() = default;
void Builder::write(const std::string& filename) const {
- static constexpr auto DEFAULT_MODE = std::ios::out |
- std::ios::binary |
- std::ios::trunc;
+ static constexpr auto DEFAULT_MODE =
+ std::ios::out | std::ios::binary | std::ios::trunc;
std::ofstream output_file(filename, DEFAULT_MODE);
if (!output_file) {
- LIEF_ERR("Can't write in {}", filename);
+ LIEF_ERR("Failed to write to {}", filename);
return;
}
write(output_file);
@@ -74,45 +78,39 @@ ok_error_t Builder::build() {
// TLS reconstruction could change relocations. Thus, it needs to be done
// BEFORE build_relocations. Moreover, because of some relocation
// optimization, it should be done as early as possible.
- auto res = is_64bit ? build_tls<details::PE64>() :
- build_tls<details::PE32>();
+ auto res = is_64bit ? build_tls<details::PE64>() : build_tls<details::PE32>();
if (!res) {
- LIEF_WARN("Something went wrong while re-building TLS: {}",
- to_string(res.error()));
+ LIEF_WARN("Failed to rebuild TLS: {}", to_string(res.error()));
}
}
if (config_.resources) {
auto is_ok = build_resources();
if (!is_ok) {
- LIEF_WARN("Something went wrong while re-building resource tree: {}",
- to_string(is_ok.error()));
+ LIEF_WARN("Failed to rebuild resource tree: {}", to_string(is_ok.error()));
}
}
if (config_.relocations) {
auto is_ok = build_relocations();
if (!is_ok) {
- LIEF_WARN("Something went wrong while re-building relocations: {}",
- to_string(is_ok.error()));
+ LIEF_WARN("Failed to rebuild relocations: {}", to_string(is_ok.error()));
}
}
if (config_.imports) {
- auto is_ok = is_64bit ? build_imports<details::PE64>() :
- build_imports<details::PE32>();
+ auto is_ok =
+ is_64bit ? build_imports<details::PE64>() : build_imports<details::PE32>();
if (!is_ok) {
- LIEF_WARN("Something went wrong while re-building imports: {}",
- to_string(is_ok.error()));
+ LIEF_WARN("Failed to rebuild imports: {}", to_string(is_ok.error()));
}
}
if (config_.exports) {
auto is_ok = build_exports();
if (!is_ok) {
- LIEF_WARN("Something went wrong while re-building exports: {}",
- to_string(is_ok.error()));
+ LIEF_WARN("Failed to rebuild exports: {}", to_string(is_ok.error()));
}
}
@@ -121,51 +119,46 @@ ok_error_t Builder::build() {
build_load_config<details::PE32>();
if (!is_ok) {
- LIEF_WARN("Something went wrong while re-building load config: {}",
- to_string(is_ok.error()));
+ LIEF_WARN("Failed to rebuild load config: {}", to_string(is_ok.error()));
}
}
if (config_.debug) {
auto is_ok = build_debug_info();
if (!is_ok) {
- LIEF_WARN("Something went wrong while re-building debug entries: {}",
- to_string(is_ok.error()));
+ LIEF_WARN("Failed to rebuild debug entries: {}", to_string(is_ok.error()));
}
}
auto is_ok = build(binary_->dos_header());
if (!is_ok) {
- LIEF_WARN("Something went wrong while re-building DOS header: {}",
- to_string(is_ok.error()));
+ LIEF_WARN("Failed to rebuild DOS header: {}", to_string(is_ok.error()));
}
is_ok = build(binary_->header());
if (!is_ok) {
- LIEF_WARN("Something went wrong while re-building regular header: {}",
- to_string(is_ok.error()));
+ LIEF_WARN("Failed to rebuild header: {}", to_string(is_ok.error()));
}
is_ok = build(binary_->optional_header());
if (!is_ok) {
- LIEF_WARN("Something went wrong while re-building optional header: {}",
- to_string(is_ok.error()));
+ LIEF_WARN("Failed to rebuild optional header: {}", to_string(is_ok.error()));
}
for (const DataDirectory& dir : binary_->data_directories()) {
auto is_ok = build(dir);
if (!is_ok) {
- LIEF_WARN("Something went wrong while re-building data directory '{}': {}",
- to_string(dir.type()), to_string(is_ok.error()));
+ LIEF_WARN("Failed to rebuild data directory '{}': {}", to_string(dir.type()),
+ to_string(is_ok.error()));
}
}
for (const Section& sec : binary_->sections()) {
auto is_ok = build(sec);
if (!is_ok) {
- LIEF_WARN("Something went wrong while re-building section '{}': {}",
- sec.name(), to_string(is_ok.error()));
+ LIEF_WARN("Failed to rebuild section '{}': {}", sec.name(),
+ to_string(is_ok.error()));
}
}
@@ -182,27 +175,25 @@ ok_error_t Builder::build(const DosHeader& dos_header) {
vector_iostream dos_hdr_strm;
dos_hdr_strm.reserve(sizeof(details::pe_dos_header));
- dos_hdr_strm
- .write<uint16_t>(dos_header.magic())
- .write<uint16_t>(dos_header.used_bytes_in_last_page())
- .write<uint16_t>(dos_header.file_size_in_pages())
- .write<uint16_t>(dos_header.numberof_relocation())
- .write<uint16_t>(dos_header.header_size_in_paragraphs())
- .write<uint16_t>(dos_header.minimum_extra_paragraphs())
- .write<uint16_t>(dos_header.maximum_extra_paragraphs())
- .write<uint16_t>(dos_header.initial_relative_ss())
- .write<uint16_t>(dos_header.initial_sp())
- .write<uint16_t>(dos_header.checksum())
- .write<uint16_t>(dos_header.initial_ip())
- .write<uint16_t>(dos_header.initial_relative_cs())
- .write<uint16_t>(dos_header.addressof_relocation_table())
- .write<uint16_t>(dos_header.overlay_number())
- .write<uint16_t>(dos_header.reserved())
- .write<uint16_t>(dos_header.oem_id())
- .write<uint16_t>(dos_header.oem_info())
- .write<uint16_t>(dos_header.reserved2())
- .write<uint32_t>(dos_header.addressof_new_exeheader())
- ;
+ dos_hdr_strm.write<uint16_t>(dos_header.magic())
+ .write<uint16_t>(dos_header.used_bytes_in_last_page())
+ .write<uint16_t>(dos_header.file_size_in_pages())
+ .write<uint16_t>(dos_header.numberof_relocation())
+ .write<uint16_t>(dos_header.header_size_in_paragraphs())
+ .write<uint16_t>(dos_header.minimum_extra_paragraphs())
+ .write<uint16_t>(dos_header.maximum_extra_paragraphs())
+ .write<uint16_t>(dos_header.initial_relative_ss())
+ .write<uint16_t>(dos_header.initial_sp())
+ .write<uint16_t>(dos_header.checksum())
+ .write<uint16_t>(dos_header.initial_ip())
+ .write<uint16_t>(dos_header.initial_relative_cs())
+ .write<uint16_t>(dos_header.addressof_relocation_table())
+ .write<uint16_t>(dos_header.overlay_number())
+ .write<uint16_t>(dos_header.reserved())
+ .write<uint16_t>(dos_header.oem_id())
+ .write<uint16_t>(dos_header.oem_info())
+ .write<uint16_t>(dos_header.reserved2())
+ .write<uint32_t>(dos_header.addressof_new_exeheader());
assert(dos_hdr_strm.size() == sizeof(details::pe_dos_header));
@@ -210,10 +201,10 @@ ok_error_t Builder::build(const DosHeader& dos_header) {
ios_.write(dos_hdr_strm);
if (!binary_->dos_stub().empty() && config_.dos_stub) {
- const uint64_t e_lfanew = sizeof(details::pe_dos_header) +
- binary_->dos_stub().size();
+ const uint64_t e_lfanew =
+ sizeof(details::pe_dos_header) + binary_->dos_stub().size();
if (e_lfanew > dos_header.addressof_new_exeheader()) {
- LIEF_WARN("Inconsistent 'addressof_new_exeheader': 0x{:x}",
+ LIEF_WARN("Inconsistent 'addressof_new_exeheader': {:#x}",
dos_header.addressof_new_exeheader());
} else {
ios_.write(binary_->dos_stub());
@@ -228,77 +219,66 @@ ok_error_t Builder::build(const Header& header) {
vector_iostream pe_hdr_strm;
pe_hdr_strm.reserve(sizeof(details::pe_header));
- pe_hdr_strm
- .write(header.signature())
- .write<uint16_t>((int)header.machine())
- .write<uint16_t>(binary_->sections_.size())
- .write<uint32_t>(header.time_date_stamp())
- .write<uint32_t>(header.pointerto_symbol_table())
- .write<uint32_t>(header.numberof_symbols())
- .write<uint16_t>(header.sizeof_optional_header())
- .write<uint16_t>(header.characteristics())
- ;
+ pe_hdr_strm.write(header.signature())
+ .write<uint16_t>((int)header.machine())
+ .write<uint16_t>(binary_->sections_.size())
+ .write<uint32_t>(header.time_date_stamp())
+ .write<uint32_t>(header.pointerto_symbol_table())
+ .write<uint32_t>(header.numberof_symbols())
+ .write<uint16_t>(header.sizeof_optional_header())
+ .write<uint16_t>(header.characteristics());
assert(pe_hdr_strm.size() == sizeof(details::pe_header));
- ios_
- .seekp(binary_->dos_header().addressof_new_exeheader())
- .write(pe_hdr_strm);
+ ios_.seekp(binary_->dos_header().addressof_new_exeheader()).write(pe_hdr_strm);
return ok();
}
ok_error_t Builder::build(const OptionalHeader& optional_header) {
return binary_->type() == PE_TYPE::PE32 ?
- build_optional_header<details::PE32>(optional_header) :
- build_optional_header<details::PE64>(optional_header);
+ build_optional_header<details::PE32>(optional_header) :
+ build_optional_header<details::PE64>(optional_header);
}
ok_error_t Builder::build(const DataDirectory& data_directory) {
- ios_
- .write<uint32_t>(data_directory.RVA())
- .write<uint32_t>(data_directory.size());
+ ios_.write<uint32_t>(data_directory.RVA())
+ .write<uint32_t>(data_directory.size());
return ok();
}
ok_error_t Builder::build(const Section& section) {
- std::array<char, 8> section_name;
- std::memset(section_name.data(), 0, section_name.size());
+ std::array<char, 8> section_name{};
const std::string& sec_name = section.fullname();
- uint32_t name_length = std::min<uint32_t>(sec_name.size() + 1, section_name.size());
+ uint32_t name_length =
+ std::min<uint32_t>(sec_name.size() + 1, section_name.size());
std::copy(sec_name.c_str(), sec_name.c_str() + name_length,
- std::begin(section_name));
- ios_
- .increase_capacity(sizeof(details::pe_section))
- .write(section_name)
- .write<uint32_t>(section.virtual_size())
- .write<uint32_t>(section.virtual_address())
- .write<uint32_t>(section.size())
- .write<uint32_t>(section.pointerto_raw_data())
- .write<uint32_t>(section.pointerto_relocation())
- .write<uint32_t>(section.pointerto_line_numbers())
- .write<uint16_t>(section.numberof_relocations())
- .write<uint16_t>(section.numberof_line_numbers())
- .write<uint32_t>(section.characteristics())
- ;
+ section_name.begin());
+ ios_.increase_capacity(sizeof(details::pe_section))
+ .write(section_name)
+ .write<uint32_t>(section.virtual_size())
+ .write<uint32_t>(section.virtual_address())
+ .write<uint32_t>(section.size())
+ .write<uint32_t>(section.pointerto_raw_data())
+ .write<uint32_t>(section.pointerto_relocation())
+ .write<uint32_t>(section.pointerto_line_numbers())
+ .write<uint16_t>(section.numberof_relocations())
+ .write<uint16_t>(section.numberof_line_numbers())
+ .write<uint32_t>(section.characteristics());
size_t pad_length = 0;
if (section.content().size() > section.size()) {
- LIEF_WARN("{} content size is bigger than section's header size",
- section.name());
- }
- else {
+ LIEF_WARN("{} content size exceeds section header size", section.name());
+ } else {
pad_length = section.size() - section.content().size();
}
{
ScopeOStream scoped(ios_, section.offset());
- (*scoped)
- .write(section.content())
- .pad(pad_length);
+ (*scoped).write(section.content()).pad(pad_length);
}
return ok();
@@ -308,12 +288,11 @@ ok_error_t Builder::build(const Section& section) {
ok_error_t Builder::build_overlay() {
const uint64_t last_section_offset = binary_->last_section_offset();
- LIEF_DEBUG("Overlay offset: 0x{:x}", last_section_offset);
- LIEF_DEBUG("Overlay size: 0x{:x}", binary_->overlay().size());
+ LIEF_DEBUG("Overlay offset: {:#x}", last_section_offset);
+ LIEF_DEBUG("Overlay size: {:#x}", binary_->overlay().size());
ScopeOStream scoped(ios_, last_section_offset);
- (*scoped)
- .write(binary_->overlay());
+ (*scoped).write(binary_->overlay());
return ok();
}
@@ -322,6 +301,10 @@ ok_error_t Builder::build_relocations() {
vector_iostream ios;
DataDirectory* reloc_dir = binary_->relocation_dir();
+ if (reloc_dir == nullptr) {
+ return ok();
+ }
+
const uint32_t original_size = reloc_dir->size();
ios.reserve(original_size);
@@ -331,44 +314,43 @@ ok_error_t Builder::build_relocations() {
}
const uint32_t block_size =
- static_cast<uint32_t>((reloc.entries().size()) * sizeof(uint16_t) +
- sizeof(details::pe_base_relocation_block));
+ static_cast<uint32_t>((reloc.entries().size()) * sizeof(uint16_t) +
+ sizeof(details::pe_base_relocation_block));
+
+ ios.write<uint32_t>(reloc.virtual_address())
+ .write<uint32_t>(align(block_size, sizeof(uint32_t)));
- ios
- .write<uint32_t>(reloc.virtual_address())
- .write<uint32_t>(align(block_size, sizeof(uint32_t)))
- ;
for (const RelocationEntry& entry : reloc.entries()) {
ios.write(entry.data());
}
+
+ ios.align(sizeof(uint32_t));
}
- ios
- .align(sizeof(uint32_t))
- .move(reloc_data_);
+
+ ios.align(sizeof(uint32_t)).move(reloc_data_);
if (reloc_data_.size() > original_size || config_.force_relocating) {
- LIEF_DEBUG("Need to relocated BASE_RELOCATION_TABLE (0x{:06x} new bytes)",
+ LIEF_DEBUG("Need to relocate BASE_RELOCATION_TABLE ({:#08x} new bytes)",
reloc_data_.size() - original_size);
Section reloc_section(config_.reloc_section);
const size_t relocated_size =
- align(reloc_data_.size(), binary_->optional_header().file_alignment());
+ align(reloc_data_.size(), binary_->optional_header().file_alignment());
- reloc_section
- .reserve(relocated_size)
- .add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
- .add_characteristic(Section::CHARACTERISTICS::MEM_READ)
- .add_characteristic(Section::CHARACTERISTICS::MEM_DISCARDABLE);
+ reloc_section.reserve(relocated_size)
+ .add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
+ .add_characteristic(Section::CHARACTERISTICS::MEM_READ)
+ .add_characteristic(Section::CHARACTERISTICS::MEM_DISCARDABLE);
Section* new_reloc_section = binary_->add_section(reloc_section);
new_reloc_section->edit().write(reloc_data_);
reloc_dir->RVA(new_reloc_section->virtual_address());
reloc_dir->size(reloc_data_.size());
} else {
- LIEF_DEBUG("BASE_RELOCATION_TABLE -0x{:06x}",
+ LIEF_DEBUG("BASE_RELOCATION_TABLE -{:#08x}",
original_size - reloc_data_.size());
- binary_->patch_address(reloc_dir->RVA(), reloc_data_);
+ binary_->patch_address(reloc_dir->RVA(), reloc_data_, Binary::VA_TYPES::RVA);
}
return ok();
@@ -376,14 +358,24 @@ ok_error_t Builder::build_relocations() {
ok_error_t Builder::build_resources() {
DataDirectory* rsrc_dir = binary_->rsrc_dir();
+
+ if (rsrc_dir == nullptr) {
+ return ok();
+ }
+
ResourceNode* node = binary_->resources();
if (node == nullptr) {
+ if (rsrc_dir->section() == nullptr) {
+ return ok(); // No resources, no resources section, nothing to do
+ }
+
if (rsrc_dir->RVA() == 0 && rsrc_dir->size() == 0) {
return ok();
}
- binary_->fill_address(rsrc_dir->RVA(), rsrc_dir->size());
+ binary_->fill_address(rsrc_dir->RVA(), rsrc_dir->size(), /*value=*/0,
+ Binary::VA_TYPES::RVA);
rsrc_dir->RVA(0);
rsrc_dir->size(0);
return ok();
@@ -400,30 +392,29 @@ ok_error_t Builder::build_resources() {
ctx.offset_name = ctx.offset_header + sizes_info.header_size;
ctx.offset_data = align(ctx.offset_name + sizes_info.name_size, 4);
- LIEF_DEBUG(".rsrc[header].offset: 0x{:04x}", ctx.offset_header);
- LIEF_DEBUG(".rsrc[names].offset: 0x{:04x}", ctx.offset_name);
- LIEF_DEBUG(".rsrc[data].offset: 0x{:04x}", ctx.offset_data);
+ LIEF_DEBUG(".rsrc[header].offset: {:#06x}", ctx.offset_header);
+ LIEF_DEBUG(".rsrc[names].offset: {:#06x}", ctx.offset_name);
+ LIEF_DEBUG(".rsrc[data].offset: {:#06x}", ctx.offset_data);
construct_resource(rsrc_stream, *node, ctx);
rsrc_stream.align(sizeof(uint32_t));
const uint32_t original_size = rsrc_dir->size();
const uint32_t new_size = rsrc_stream.size();
- const uint32_t expected_size = align(sizes_info.data_size + sizes_info.header_size + sizes_info.name_size, 4);
- LIEF_DEBUG("New size: new_size=0x{:016x} vs original_size=0x{:016x} vs expected_size=0x{:016x}", new_size, original_size, expected_size);
+ const uint32_t expected_size =
+ align(sizes_info.data_size + sizes_info.header_size + sizes_info.name_size,
+ 4);
+ LIEF_DEBUG("New size: new_size={:#018x} vs original_size={:#018x} vs "
+ "expected_size={:#018x}",
+ new_size, original_size, expected_size);
if (new_size > original_size || config_.force_relocating) {
const uint64_t delta = new_size - original_size;
- LIEF_DEBUG("Need to relocate RESOURCE_TABLE (0x{:06x} new bytes)", delta);
- Section* section = rsrc_dir->section();
- if (section == nullptr) {
- LIEF_ERR("Can't find section associated with the RESOURCE_TABLE");
- return make_error_code(lief_errors::build_error);
- }
+ LIEF_DEBUG("Need to relocate RESOURCE_TABLE ({:#08x} new bytes)", delta);
// Note(romain): We could/should leverage this optimization:
//
- // If the the `.rsrc` section has some kind of padding that is large
+ // If the `.rsrc` section has some kind of padding that is large
// enough, then we can use this area to avoid relocating the `.rsrc` location
//
// const bool padding_is_large = section->padding().size() >= delta;
@@ -432,9 +423,11 @@ ok_error_t Builder::build_resources() {
// // Now check that the rsrc content is at the "end" of the section
// const uint64_t rsrc_offset = binary_->rva_to_offset(rsrc_dir->RVA());
// const uint64_t section_size = section->virtual_size() > 0 ?
- // std::min(section->virtual_size(), section->sizeof_raw_data()) :
+ // std::min(section->virtual_size(),
+ // section->sizeof_raw_data()) :
// section->sizeof_raw_data();
- // if ((section->offset() + section_size) - (rsrc_offset + original_size) == 0) {
+ // if ((section->offset() + section_size) - (rsrc_offset + original_size) ==
+ // 0) {
// LIEF_ERR("ok");
// }
// }
@@ -442,15 +435,14 @@ ok_error_t Builder::build_resources() {
Section rsrc_section(config_.rsrc_section);
rsrc_section.reserve(rsrc_stream.size());
- rsrc_section
- .add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
- .add_characteristic(Section::CHARACTERISTICS::MEM_READ);
+ rsrc_section.add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
+ .add_characteristic(Section::CHARACTERISTICS::MEM_READ);
// TODO(romain): Make sure we add this section before the FIRST
// MEM_DISCARDABLE section.
Section* new_rsrc_section = binary_->add_section(rsrc_section);
if (new_rsrc_section == nullptr) {
- LIEF_ERR("Can't add a new rsrc section");
+ LIEF_ERR("Failed to add new rsrc section");
return make_error_code(lief_errors::build_error);
}
@@ -467,11 +459,11 @@ ok_error_t Builder::build_resources() {
return ok();
}
- LIEF_DEBUG("RESOURCE_TABLE: -0x{:06x}", original_size - new_size);
+ LIEF_DEBUG("RESOURCE_TABLE: -{:#08x}", original_size - new_size);
// Fill the original content with 0
const uint64_t rva = rsrc_dir->RVA();
- binary_->patch_address(
- rva, std::vector<uint8_t>(original_size, 0), Binary::VA_TYPES::RVA);
+ binary_->patch_address(rva, std::vector<uint8_t>(original_size, 0),
+ Binary::VA_TYPES::RVA);
const uint64_t rsrc_rva = rsrc_dir->RVA();
for (uint64_t fixup : ctx.rva_fixups) {
@@ -485,9 +477,8 @@ ok_error_t Builder::build_resources() {
return ok();
}
-ok_error_t Builder::compute_resources_size(
- const ResourceNode& node, rsrc_sizing_info_t& info)
-{
+ok_error_t Builder::compute_resources_size(const ResourceNode& node,
+ rsrc_sizing_info_t& info) {
if (!node.name().empty() || node.has_name()) {
LIEF_DEBUG("{}", u16tou8(node.name()));
info.name_size += sizeof(uint16_t) + node.name().size() * sizeof(char16_t);
@@ -495,8 +486,9 @@ ok_error_t Builder::compute_resources_size(
if (const auto* _ = node.cast<ResourceDirectory>()) {
- info.header_size += sizeof(details::pe_resource_directory_table) +
- sizeof(details::pe_resource_directory_entries) * node.childs().size();
+ info.header_size +=
+ sizeof(details::pe_resource_directory_table) +
+ sizeof(details::pe_resource_directory_entries) * node.childs().size();
for (const ResourceNode& child : node.childs()) {
compute_resources_size(child, info);
}
@@ -505,53 +497,50 @@ ok_error_t Builder::compute_resources_size(
if (const auto* data = node.cast<ResourceData>()) {
info.header_size += sizeof(details::pe_resource_data_entry);
- info.data_size += align(data->content().size(), sizeof(uint32_t));
+ info.data_size += align(data->content().size(), sizeof(uint32_t));
return ok();
}
return ok();
}
-ok_error_t Builder::construct_resource(
- vector_iostream& ios, ResourceDirectory& dir, rsrc_build_context_t& ctx)
-{
- LIEF_DEBUG("[rsrc] writing directory header at 0x{:04x} (depth={}, id={}, #children={})",
- ctx.offset_header, dir.depth(), dir.id(), dir.childs().size());
- ios
- .seekp(ctx.offset_header)
- .increase_capacity(sizeof(details::pe_resource_directory_table))
- .write<uint32_t>(dir.characteristics())
- .write<uint32_t>(dir.time_date_stamp())
- .write<uint16_t>(dir.major_version())
- .write<uint16_t>(dir.minor_version())
- .write<uint16_t>(dir.numberof_name_entries())
- .write<uint16_t>(dir.numberof_id_entries())
- ;
+ok_error_t Builder::construct_resource(vector_iostream& ios,
+ ResourceDirectory& dir,
+ rsrc_build_context_t& ctx) {
+ LIEF_DEBUG(
+ "[rsrc] writing directory header at {:#06x} (depth={}, id={}, #children={})",
+ ctx.offset_header, dir.depth(), dir.id(), dir.childs().size()
+ );
+ ios.seekp(ctx.offset_header)
+ .increase_capacity(sizeof(details::pe_resource_directory_table))
+ .write<uint32_t>(dir.characteristics())
+ .write<uint32_t>(dir.time_date_stamp())
+ .write<uint16_t>(dir.major_version())
+ .write<uint16_t>(dir.minor_version())
+ .write<uint16_t>(dir.numberof_name_entries())
+ .write<uint16_t>(dir.numberof_id_entries());
ctx.offset_header = ios.tellp();
uint32_t current_offset = ctx.offset_header;
- ctx.offset_header += dir.childs().size() * sizeof(details::pe_resource_directory_entries);
+ ctx.offset_header +=
+ dir.childs().size() * sizeof(details::pe_resource_directory_entries);
for (ResourceNode& child : dir.childs()) {
if (child.has_name() || !child.name().empty()) {
const std::u16string& name = child.name();
child.id(0x80000000 | ctx.offset_name);
- LIEF_DEBUG("[rsrc] writing name '{}' at 0x{:04x} (depth={}, id={})",
- u16tou8(child.name()), ctx.offset_name,
- dir.depth(), dir.id());
- ios
- .seekp(ctx.offset_name)
- .write<uint16_t>(name.size())
- .write(name, /*with_null_char=*/false);
+ LIEF_DEBUG("[rsrc] writing name '{}' at {:#06x} (depth={}, id={})",
+ u16tou8(child.name()), ctx.offset_name, dir.depth(), dir.id());
+ ios.seekp(ctx.offset_name)
+ .write<uint16_t>(name.size())
+ .write(name, /*with_null_char=*/false);
ctx.offset_name = ios.tellp();
}
const uint32_t mask = child.is_directory() ? 0x80000000 : 0;
- ios
- .seekp(current_offset)
- .write<uint32_t>(child.id())
- .write<uint32_t>(mask | ctx.offset_header)
- ;
+ ios.seekp(current_offset)
+ .write<uint32_t>(child.id())
+ .write<uint32_t>(mask | ctx.offset_header);
current_offset = ios.tellp();
++ctx.depth;
@@ -561,40 +550,37 @@ ok_error_t Builder::construct_resource(
}
-ok_error_t Builder::construct_resource(
- vector_iostream& ios, ResourceData& data, rsrc_build_context_t& ctx)
-{
+ok_error_t Builder::construct_resource(vector_iostream& ios, ResourceData& data,
+ rsrc_build_context_t& ctx) {
span<const uint8_t> content = data.content();
ctx.rva_fixups.push_back(ctx.offset_header);
- LIEF_DEBUG("[rsrc] writing data header at 0x{:04x} (depth={}, id={})",
+ LIEF_DEBUG("[rsrc] writing data header at {:#06x} (depth={}, id={})",
ctx.offset_header, data.depth(), data.id());
- ios
- .seekp(ctx.offset_header)
- .increase_capacity(sizeof(details::pe_resource_data_entry))
- .write<uint32_t>(ctx.offset_data)
- .write<uint32_t>(content.size())
- .write<uint32_t>(data.code_page())
- .write<uint32_t>(data.reserved())
- ;
+ ios.seekp(ctx.offset_header)
+ .increase_capacity(sizeof(details::pe_resource_data_entry))
+ .write<uint32_t>(ctx.offset_data)
+ .write<uint32_t>(content.size())
+ .write<uint32_t>(data.code_page())
+ .write<uint32_t>(data.reserved());
ctx.offset_header = ios.tellp();
- LIEF_DEBUG("[rsrc] writing data content at 0x{:04x} (depth={}, id={}, size=0x{:04x})",
- ctx.offset_data, data.depth(), data.id(), content.size());
- ios
- .seekp(ctx.offset_data)
- .write(content.data(), content.size())
- .align(sizeof(uint32_t));
+ LIEF_DEBUG(
+ "[rsrc] writing data content at {:#06x} (depth={}, id={}, size={:#06x})",
+ ctx.offset_data, data.depth(), data.id(), content.size()
+ );
+ ios.seekp(ctx.offset_data)
+ .write(content.data(), content.size())
+ .align(sizeof(uint32_t));
ctx.offset_data = ios.tellp();
return ok();
}
-ok_error_t Builder::construct_resource(
- vector_iostream& ios, ResourceNode& node, rsrc_build_context_t& ctx)
-{
+ok_error_t Builder::construct_resource(vector_iostream& ios, ResourceNode& node,
+ rsrc_build_context_t& ctx) {
if (auto* dir = node.cast<ResourceDirectory>()) {
return construct_resource(ios, *dir, ctx);
}
@@ -612,43 +598,38 @@ ok_error_t build_codeview(const CodeView& CV, vector_iostream& ios) {
if (cv_pdb == nullptr) {
return make_error_code(lief_errors::not_supported);
}
- ios
- .write<uint32_t>((uint32_t)CV.signature())
- .write(cv_pdb->signature())
- .write<uint32_t>(cv_pdb->age())
- .write(cv_pdb->filename())
- ;
+ ios.write<uint32_t>((uint32_t)CV.signature())
+ .write(cv_pdb->signature())
+ .write<uint32_t>(cv_pdb->age())
+ .write(cv_pdb->filename());
return ok();
}
ok_error_t build_pogo(const Pogo& pgo, vector_iostream& ios) {
switch (pgo.signature()) {
- default:
- return make_error_code(lief_errors::not_supported);
+ default: return make_error_code(lief_errors::not_supported);
case Pogo::SIGNATURES::ZERO:
case Pogo::SIGNATURES::LCTG:
- {
- ios.write<uint32_t>((uint32_t)pgo.signature());
- for (const PogoEntry& entry : pgo.entries()) {
- ios
- .write<uint32_t>(entry.start_rva())
+ case Pogo::SIGNATURES::SPGO:
+ case Pogo::SIGNATURES::PGI:
+ case Pogo::SIGNATURES::PGU:
+ {
+ ios.write<uint32_t>((uint32_t)pgo.signature());
+ for (const PogoEntry& entry : pgo.entries()) {
+ ios.write<uint32_t>(entry.start_rva())
.write<uint32_t>(entry.size())
.write(entry.name())
- .align(4)
- ;
- }
- return ok();
+ .align(4);
}
+ return ok();
+ }
}
return ok();
}
ok_error_t build_repro(const Repro& repro, vector_iostream& ios) {
span<const uint8_t> hash = repro.hash();
- ios
- .write<uint32_t>(hash.size())
- .write(hash)
- ;
+ ios.write<uint32_t>(hash.size()).write(hash);
return ok();
}
@@ -660,10 +641,7 @@ ok_error_t build_pdbchecksum(const PDBChecksum& checksum, vector_iostream& ios)
const std::string& algo_name = to_string(checksum.algorithm());
assert(algo_name != "UNKNOWN");
- ios
- .write(algo_name)
- .write(checksum.hash())
- ;
+ ios.write(algo_name).write(checksum.hash());
return ok();
}
@@ -697,8 +675,7 @@ ok_error_t build_vcfeatures(const VCFeature& vcfeature, vector_iostream& ios) {
}
ok_error_t build_exdllcharacteristics(const ExDllCharacteristics& characteristics,
- vector_iostream& ios)
-{
+ vector_iostream& ios) {
if (characteristics.sizeof_data() != sizeof(uint32_t)) {
return make_error_code(lief_errors::not_supported);
}
@@ -713,9 +690,14 @@ ok_error_t Builder::build_debug_info() {
static constexpr auto FX_BASE_OFFSET = 1;
DataDirectory* debug_dir = binary_->debug_dir();
+ if (debug_dir == nullptr) {
+ return ok();
+ }
+
if (binary_->debug_.empty()) {
if (debug_dir->RVA() > 0 && debug_dir->size() > 0) {
- binary_->fill_address(debug_dir->RVA(), debug_dir->size());
+ binary_->fill_address(debug_dir->RVA(), debug_dir->size(),
+ /*value=*/0, Binary::VA_TYPES::RVA);
}
debug_dir->RVA(0);
debug_dir->size(0);
@@ -743,27 +725,23 @@ ok_error_t Builder::build_debug_info() {
uint32_t hdr_pos = hdr_start + i * sizeof(details::pe_debug);
span<uint8_t> payload = dbg->payload();
- header_stream
- .write<uint32_t>(dbg->characteristics())
- .write<uint32_t>(dbg->timestamp())
- .write<uint16_t>(dbg->major_version())
- .write<uint16_t>(dbg->minor_version())
- .write<uint32_t>((uint32_t)dbg->type())
- ;
- LIEF_DEBUG(" - Header pos: 0x{:06x}", hdr_pos);
- LIEF_DEBUG(" - Payload pos: 0x{:06x}", payload_offset);
+ header_stream.write<uint32_t>(dbg->characteristics())
+ .write<uint32_t>(dbg->timestamp())
+ .write<uint16_t>(dbg->major_version())
+ .write<uint16_t>(dbg->minor_version())
+ .write<uint32_t>((uint32_t)dbg->type());
+ LIEF_DEBUG(" - Header pos: {:#08x}", hdr_pos);
+ LIEF_DEBUG(" - Payload pos: {:#08x}", payload_offset);
- const bool has_offset_rva = dbg->addressof_rawdata() != 0 ||
- dbg->pointerto_rawdata() != 0;
+ const bool has_offset_rva =
+ dbg->addressof_rawdata() != 0 || dbg->pointerto_rawdata() != 0;
if (payload.empty() && has_offset_rva) {
- LIEF_INFO("Empty payload. Can't rebuild the content of {}",
+ LIEF_INFO("Empty payload, cannot rebuild content of {}",
to_string(dbg->type()));
- header_stream
- .write<uint32_t>(dbg->sizeof_data())
- .write<uint32_t>(dbg->addressof_rawdata())
- .write<uint32_t>(dbg->pointerto_rawdata())
- ;
+ header_stream.write<uint32_t>(dbg->sizeof_data())
+ .write<uint32_t>(dbg->addressof_rawdata())
+ .write<uint32_t>(dbg->pointerto_rawdata());
continue;
}
@@ -775,28 +753,24 @@ ok_error_t Builder::build_debug_info() {
}
header_stream.write<uint32_t>(ios_cv.size());
- LIEF_DEBUG("codeview - original size 0x{:06x}", dbg->sizeof_data());
- LIEF_DEBUG("codeview - new size 0x{:06x}", ios_cv.size());
+ LIEF_DEBUG("Codeview original size: {:#08x}", dbg->sizeof_data());
+ LIEF_DEBUG("Codeview new size: {:#08x}", ios_cv.size());
const int32_t delta = (int32_t)ios_cv.size() - dbg->sizeof_data();
if (delta <= 0) {
std::memset(payload.data(), 0, payload.size());
std::copy(ios_cv.begin(), ios_cv.end(), payload.begin());
- header_stream
- .write<uint32_t>(dbg->addressof_rawdata())
- .write<uint32_t>(dbg->pointerto_rawdata())
- ;
+ header_stream.write<uint32_t>(dbg->addressof_rawdata())
+ .write<uint32_t>(dbg->pointerto_rawdata());
} else {
LIEF_DEBUG("Need to relocate entry #{} +{} bytes", i, delta);
const size_t payload_off = payload_stream.tellp();
payload_stream.write(ios_cv);
- header_stream
- .record_fixup(FX_BASE_RVA)
- .write<uint32_t>(payload_off)
- .record_fixup(FX_BASE_OFFSET)
- .write<uint32_t>(payload_off)
- ;
+ header_stream.record_fixup(FX_BASE_RVA)
+ .write<uint32_t>(payload_off)
+ .record_fixup(FX_BASE_OFFSET)
+ .write<uint32_t>(payload_off);
}
continue;
}
@@ -809,28 +783,24 @@ ok_error_t Builder::build_debug_info() {
}
header_stream.write<uint32_t>(ios_pogo.size());
- LIEF_DEBUG("pogo - original size 0x{:06x}", dbg->sizeof_data());
- LIEF_DEBUG("pogo - new size 0x{:06x}", ios_pogo.size());
+ LIEF_DEBUG("POGO original size: {:#08x}", dbg->sizeof_data());
+ LIEF_DEBUG("POGO new size: {:#08x}", ios_pogo.size());
const int32_t delta = (int32_t)ios_pogo.size() - dbg->sizeof_data();
if (delta <= 0) {
std::memset(payload.data(), 0, payload.size());
std::copy(ios_pogo.begin(), ios_pogo.end(), payload.begin());
- header_stream
- .write<uint32_t>(dbg->addressof_rawdata())
- .write<uint32_t>(dbg->pointerto_rawdata())
- ;
+ header_stream.write<uint32_t>(dbg->addressof_rawdata())
+ .write<uint32_t>(dbg->pointerto_rawdata());
} else {
LIEF_DEBUG("Need to relocate entry #{} +{} bytes", i, delta);
const size_t payload_off = payload_stream.tellp();
payload_stream.write(ios_pogo);
- header_stream
- .record_fixup(FX_BASE_RVA)
- .write<uint32_t>(payload_off)
- .record_fixup(FX_BASE_OFFSET)
- .write<uint32_t>(payload_off)
- ;
+ header_stream.record_fixup(FX_BASE_RVA)
+ .write<uint32_t>(payload_off)
+ .record_fixup(FX_BASE_OFFSET)
+ .write<uint32_t>(payload_off);
}
continue;
}
@@ -843,28 +813,24 @@ ok_error_t Builder::build_debug_info() {
}
header_stream.write<uint32_t>(ios_repro.size());
- LIEF_DEBUG("repro - original size 0x{:06x}", dbg->sizeof_data());
- LIEF_DEBUG("repro - new size 0x{:06x}", ios_repro.size());
+ LIEF_DEBUG("Repro original size: {:#08x}", dbg->sizeof_data());
+ LIEF_DEBUG("Repro new size: {:#08x}", ios_repro.size());
const int32_t delta = (int32_t)ios_repro.size() - dbg->sizeof_data();
if (delta <= 0) {
std::memset(payload.data(), 0, payload.size());
std::copy(ios_repro.begin(), ios_repro.end(), payload.begin());
- header_stream
- .write<uint32_t>(dbg->addressof_rawdata())
- .write<uint32_t>(dbg->pointerto_rawdata())
- ;
+ header_stream.write<uint32_t>(dbg->addressof_rawdata())
+ .write<uint32_t>(dbg->pointerto_rawdata());
} else {
LIEF_DEBUG("Need to relocate entry #{} +{} bytes", i, delta);
const size_t payload_off = payload_stream.tellp();
payload_stream.write(ios_repro);
- header_stream
- .record_fixup(FX_BASE_RVA)
- .write<uint32_t>(payload_off)
- .record_fixup(FX_BASE_OFFSET)
- .write<uint32_t>(payload_off)
- ;
+ header_stream.record_fixup(FX_BASE_RVA)
+ .write<uint32_t>(payload_off)
+ .record_fixup(FX_BASE_OFFSET)
+ .write<uint32_t>(payload_off);
}
continue;
}
@@ -877,28 +843,24 @@ ok_error_t Builder::build_debug_info() {
}
header_stream.write<uint32_t>(ios_repro.size());
- LIEF_DEBUG("pdbchecksum - original size 0x{:06x}", dbg->sizeof_data());
- LIEF_DEBUG("pdbchecksum - new size 0x{:06x}", ios_repro.size());
+ LIEF_DEBUG("PDB checksum original size: {:#08x}", dbg->sizeof_data());
+ LIEF_DEBUG("PDB checksum new size: {:#08x}", ios_repro.size());
const int32_t delta = (int32_t)ios_repro.size() - dbg->sizeof_data();
if (delta <= 0) {
std::memset(payload.data(), 0, payload.size());
std::copy(ios_repro.begin(), ios_repro.end(), payload.begin());
- header_stream
- .write<uint32_t>(dbg->addressof_rawdata())
- .write<uint32_t>(dbg->pointerto_rawdata())
- ;
+ header_stream.write<uint32_t>(dbg->addressof_rawdata())
+ .write<uint32_t>(dbg->pointerto_rawdata());
} else {
LIEF_DEBUG("Need to relocate entry #{} +{} bytes", i, delta);
const size_t payload_off = payload_stream.tellp();
payload_stream.write(ios_repro);
- header_stream
- .record_fixup(FX_BASE_RVA)
- .write<uint32_t>(payload_off)
- .record_fixup(FX_BASE_OFFSET)
- .write<uint32_t>(payload_off)
- ;
+ header_stream.record_fixup(FX_BASE_RVA)
+ .write<uint32_t>(payload_off)
+ .record_fixup(FX_BASE_OFFSET)
+ .write<uint32_t>(payload_off);
}
continue;
}
@@ -911,28 +873,24 @@ ok_error_t Builder::build_debug_info() {
}
header_stream.write<uint32_t>(ios_vcfeat.size());
- LIEF_DEBUG("vcfeature - original size 0x{:06x}", dbg->sizeof_data());
- LIEF_DEBUG("vcfeature - new size 0x{:06x}", ios_vcfeat.size());
+ LIEF_DEBUG("VC feature original size: {:#08x}", dbg->sizeof_data());
+ LIEF_DEBUG("VC feature new size: {:#08x}", ios_vcfeat.size());
const int32_t delta = (int32_t)ios_vcfeat.size() - dbg->sizeof_data();
if (delta <= 0) {
std::memset(payload.data(), 0, payload.size());
std::copy(ios_vcfeat.begin(), ios_vcfeat.end(), payload.begin());
- header_stream
- .write<uint32_t>(dbg->addressof_rawdata())
- .write<uint32_t>(dbg->pointerto_rawdata())
- ;
+ header_stream.write<uint32_t>(dbg->addressof_rawdata())
+ .write<uint32_t>(dbg->pointerto_rawdata());
} else {
LIEF_DEBUG("Need to relocate entry #{} +{} bytes", i, delta);
const size_t payload_off = payload_stream.tellp();
payload_stream.write(ios_vcfeat);
- header_stream
- .record_fixup(FX_BASE_RVA)
- .write<uint32_t>(payload_off)
- .record_fixup(FX_BASE_OFFSET)
- .write<uint32_t>(payload_off)
- ;
+ header_stream.record_fixup(FX_BASE_RVA)
+ .write<uint32_t>(payload_off)
+ .record_fixup(FX_BASE_OFFSET)
+ .write<uint32_t>(payload_off);
}
continue;
}
@@ -945,39 +903,34 @@ ok_error_t Builder::build_debug_info() {
}
header_stream.write<uint32_t>(ios_exdll.size());
- LIEF_DEBUG("ExDllCharacteristics - original size 0x{:06x}", dbg->sizeof_data());
- LIEF_DEBUG("ExDllCharacteristics - new size 0x{:06x}", ios_exdll.size());
+ LIEF_DEBUG("ExDllCharacteristics - original size {:#08x}",
+ dbg->sizeof_data());
+ LIEF_DEBUG("ExDllCharacteristics - new size {:#08x}", ios_exdll.size());
const int32_t delta = (int32_t)ios_exdll.size() - dbg->sizeof_data();
if (delta <= 0) {
std::memset(payload.data(), 0, payload.size());
std::copy(ios_exdll.begin(), ios_exdll.end(), payload.begin());
- header_stream
- .write<uint32_t>(dbg->addressof_rawdata())
- .write<uint32_t>(dbg->pointerto_rawdata())
- ;
+ header_stream.write<uint32_t>(dbg->addressof_rawdata())
+ .write<uint32_t>(dbg->pointerto_rawdata());
} else {
LIEF_DEBUG("Need to relocate entry #{} +{} bytes", i, delta);
const size_t payload_off = payload_stream.tellp();
payload_stream.write(ios_exdll);
- header_stream
- .record_fixup(FX_BASE_RVA)
- .write<uint32_t>(payload_off)
- .record_fixup(FX_BASE_OFFSET)
- .write<uint32_t>(payload_off)
- ;
+ header_stream.record_fixup(FX_BASE_RVA)
+ .write<uint32_t>(payload_off)
+ .record_fixup(FX_BASE_OFFSET)
+ .write<uint32_t>(payload_off);
}
continue;
}
- LIEF_DEBUG("original size 0x{:06x}", dbg->sizeof_data());
- LIEF_DEBUG("new size 0x{:06x}", payload.size());
+ LIEF_DEBUG("Original size: {:#08x}", dbg->sizeof_data());
+ LIEF_DEBUG("New size: {:#08x}", payload.size());
header_stream.write<uint32_t>(payload.size());
- header_stream
- .write<uint32_t>(dbg->addressof_rawdata())
- .write<uint32_t>(dbg->pointerto_rawdata())
- ;
+ header_stream.write<uint32_t>(dbg->addressof_rawdata())
+ .write<uint32_t>(dbg->pointerto_rawdata());
continue;
}
@@ -987,41 +940,41 @@ ok_error_t Builder::build_debug_info() {
bool relocate_hdr = false;
{
- // Clear the original headers since it will be either: relocated or
+ // Clear the original headers since they will be either relocated or
// overwritten
span<uint8_t> raw = debug_dir->content();
std::memset(raw.data(), 0, raw.size());
}
if (hdr_size > debug_dir->size()) {
- LIEF_DEBUG("Need to relocated debug directory (for headers)");
+ LIEF_DEBUG("Need to relocate debug directory (for headers)");
relocated_size += header_stream.size();
relocate_hdr = true;
}
if (relocated_size > 0) {
- relocated_size = align(relocated_size,
- binary_->optional_header().file_alignment());
+ relocated_size =
+ align(relocated_size, binary_->optional_header().file_alignment());
Section dbg_section(config_.debug_section);
dbg_section.reserve(relocated_size);
- dbg_section
- .add_characteristic(Section::CHARACTERISTICS::MEM_DISCARDABLE)
- .add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
- .add_characteristic(Section::CHARACTERISTICS::MEM_READ);
+ dbg_section.add_characteristic(Section::CHARACTERISTICS::MEM_DISCARDABLE)
+ .add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
+ .add_characteristic(Section::CHARACTERISTICS::MEM_READ);
Section* new_dbg_section = binary_->add_section(dbg_section);
if (new_dbg_section == nullptr) {
- LIEF_ERR("Can't add a new dbg section");
+ LIEF_ERR("Failed to add new dbg section");
return make_error_code(lief_errors::build_error);
}
- LIEF_DEBUG("{:10}: VA: 0x{:08x}", new_dbg_section->name(),
+ LIEF_DEBUG("{:10}: VA: {:#010x}", new_dbg_section->name(),
new_dbg_section->virtual_address());
- LIEF_DEBUG("{:10}: OFF: 0x{:08x}", new_dbg_section->name(),
+ LIEF_DEBUG("{:10}: OFF: {:#010x}", new_dbg_section->name(),
new_dbg_section->offset());
- header_stream.apply_fixup<uint32_t>(FX_BASE_RVA, new_dbg_section->virtual_address());
+ header_stream.apply_fixup<uint32_t>(FX_BASE_RVA,
+ new_dbg_section->virtual_address());
header_stream.apply_fixup<uint32_t>(FX_BASE_OFFSET, new_dbg_section->offset());
vector_iostream sec_strm = new_dbg_section->edit();
@@ -1066,11 +1019,16 @@ ok_error_t Builder::build_exports() {
// +-----------------------------+ <-------+ + Size
DataDirectory* exp_dir = binary_->export_dir();
+ if (exp_dir == nullptr) {
+ return ok();
+ }
+
Export* exp = binary_->get_export();
if (exp == nullptr) {
if (exp_dir->RVA() > 0 && exp_dir->size() > 0) {
- binary_->fill_address(exp_dir->RVA(), exp_dir->size());
+ binary_->fill_address(exp_dir->RVA(), exp_dir->size(),
+ /*value=*/0, Binary::VA_TYPES::RVA);
}
exp_dir->RVA(0);
exp_dir->size(0);
@@ -1088,16 +1046,17 @@ ok_error_t Builder::build_exports() {
std::vector<ExportEntry*> entries;
entries.reserve(exp->entries_.size());
std::transform(exp->entries_.begin(), exp->entries_.end(),
- std::back_inserter(entries), [] (std::unique_ptr<ExportEntry>& E) { return E.get(); });
+ std::back_inserter(entries),
+ [](std::unique_ptr<ExportEntry>& E) { return E.get(); });
std::stable_sort(entries.begin(), entries.end(),
- [] (const ExportEntry* lhs, const ExportEntry* rhs) {
- return lhs->name() < rhs->name();
- }
- );
+ [](const ExportEntry* lhs, const ExportEntry* rhs) {
+ return lhs->name() < rhs->name();
+ });
for (const ExportEntry* entry : entries) {
- LIEF_DEBUG("{}: 0x{:06x} (ord={})", entry->name(), entry->function_rva(), entry->ordinal());
+ LIEF_DEBUG("{}: {:#08x} (ord={})", entry->name(), entry->function_rva(),
+ entry->ordinal());
base_ord = std::min<uint32_t>(entry->ordinal(), base_ord);
max_ord = std::max<uint32_t>(entry->ordinal(), max_ord);
bool has_name = false;
@@ -1117,31 +1076,37 @@ ok_error_t Builder::build_exports() {
size_t addr_table_cnt = max_ord;
size_t offset_counter = 0;
- std::vector<std::string> strings_opt =
- optimize(strings, [] (const std::string& s) { return s; }, offset_counter,
- &strmap_offset);
+ std::vector<std::string> strings_opt = optimize(
+ strings, [](const std::string& s) { return s; }, offset_counter,
+ &strmap_offset
+ );
uint32_t head_off = 0;
uint32_t addr_table_off = head_off + sizeof(details::pe_export_directory_table);
uint32_t names_table_off = addr_table_off + addr_table_cnt * sizeof(uint32_t);
uint32_t ord_table_off = names_table_off + name_table_cnt * sizeof(uint32_t);
uint32_t str_table_off = ord_table_off + name_table_cnt * sizeof(uint16_t);
- const uint32_t tail_off = align(str_table_off + offset_counter, sizeof(uint32_t));
+ const uint32_t tail_off =
+ align(str_table_off + offset_counter, sizeof(uint32_t));
LIEF_DEBUG("Address table count: #{:03d}", addr_table_cnt);
LIEF_DEBUG("Name table count: #{:03d}", name_table_cnt);
LIEF_DEBUG("Base ordinal: #{:03d}", base_ord);
LIEF_DEBUG("Max ordinal: #{:03d}", max_ord);
- LIEF_DEBUG("String table size: 0x{:06x}", offset_counter);
- LIEF_DEBUG("Original size: 0x{:06x}", exp_dir->size());
- LIEF_DEBUG("New size: 0x{:06x}", tail_off);
- LIEF_DEBUG("Delta size: {:d}", (int32_t)tail_off - (int32_t)exp_dir->size());
+ LIEF_DEBUG("String table size: {:#08x}", offset_counter);
+ LIEF_DEBUG("Original size: {:#08x}", exp_dir->size());
+ LIEF_DEBUG("New size: {:#08x}", tail_off);
+ LIEF_DEBUG("Delta size: {:d}",
+ (int32_t)tail_off - (int32_t)exp_dir->size());
LIEF_DEBUG("Offsets");
- LIEF_DEBUG(" - Header: [0x{:04x}, 0x{:08x}]", head_off, addr_table_off);
- LIEF_DEBUG(" - Address Table: [0x{:04x}, 0x{:08x}]", addr_table_off, names_table_off);
- LIEF_DEBUG(" - Names Table: [0x{:04x}, 0x{:08x}]", names_table_off, ord_table_off);
- LIEF_DEBUG(" - Ord Table: [0x{:04x}, 0x{:08x}]", ord_table_off, str_table_off);
- LIEF_DEBUG(" - Str Table: [0x{:04x}, 0x{:08x}]", str_table_off, tail_off);
+ LIEF_DEBUG(" - Header: [{:#06x}, {:#010x}]", head_off, addr_table_off);
+ LIEF_DEBUG(" - Address Table: [{:#06x}, {:#010x}]", addr_table_off,
+ names_table_off);
+ LIEF_DEBUG(" - Names Table: [{:#06x}, {:#010x}]", names_table_off,
+ ord_table_off);
+ LIEF_DEBUG(" - Ord Table: [{:#06x}, {:#010x}]", ord_table_off,
+ str_table_off);
+ LIEF_DEBUG(" - Str Table: [{:#06x}, {:#010x}]", str_table_off, tail_off);
vector_iostream ios;
static constexpr auto FX_BASE_RVA = 0;
@@ -1150,28 +1115,27 @@ ok_error_t Builder::build_exports() {
if (auto it = strmap_offset.find(exp->name()); it != strmap_offset.end()) {
name_off = str_table_off + it->second;
} else {
- LIEF_ERR("Can't find '{}' in the optimized string table");
+ LIEF_ERR("Entry '{}' not found in optimized string table");
return make_error_code(lief_errors::build_error);
}
- ios
- .reserve(tail_off).init_fixups(1)
- .write<uint32_t>(exp->export_flags())
- .write<uint32_t>(exp->timestamp())
- .write<uint16_t>(exp->major_version())
- .write<uint16_t>(exp->minor_version())
- .record_fixup(FX_BASE_RVA)
- .write<uint32_t>(name_off)
- .write<uint32_t>(base_ord)
- .write<uint32_t>(addr_table_cnt)
- .write<uint32_t>(name_table_cnt)
- .record_fixup(FX_BASE_RVA)
- .write<uint32_t>(addr_table_off)
- .record_fixup(FX_BASE_RVA)
- .write<uint32_t>(names_table_off)
- .record_fixup(FX_BASE_RVA)
- .write<uint32_t>(ord_table_off)
- ;
+ ios.reserve(tail_off)
+ .init_fixups(1)
+ .write<uint32_t>(exp->export_flags())
+ .write<uint32_t>(exp->timestamp())
+ .write<uint16_t>(exp->major_version())
+ .write<uint16_t>(exp->minor_version())
+ .record_fixup(FX_BASE_RVA)
+ .write<uint32_t>(name_off)
+ .write<uint32_t>(base_ord)
+ .write<uint32_t>(addr_table_cnt)
+ .write<uint32_t>(name_table_cnt)
+ .record_fixup(FX_BASE_RVA)
+ .write<uint32_t>(addr_table_off)
+ .record_fixup(FX_BASE_RVA)
+ .write<uint32_t>(names_table_off)
+ .record_fixup(FX_BASE_RVA)
+ .write<uint32_t>(ord_table_off);
size_t name_idx = 0;
for (const ExportEntry* E : entries) {
int32_t idx = E->ordinal() - base_ord;
@@ -1186,45 +1150,44 @@ ok_error_t Builder::build_exports() {
LIEF_DEBUG("Writing back fwd: {}", fwd_key);
auto it = strmap_offset.find(fwd_key);
if (it == strmap_offset.end()) {
- LIEF_ERR("Can't find forwarded key '{}' in the optimized string table",
+ LIEF_ERR("Forwarded key '{}' not found in optimized string table",
fwd_key);
return make_error_code(lief_errors::build_error);
}
auto it_name = strmap_offset.find(E->name());
if (it_name == strmap_offset.end()) {
- LIEF_ERR("Can't find name '{}' in the optimized string table", E->name());
+ LIEF_ERR("Name '{}' not found in optimized string table", E->name());
return make_error_code(lief_errors::build_error);
}
ios
- // Write addr table
- .seekp(addr_table_off + idx * sizeof(uint32_t))
- .record_fixup(FX_BASE_RVA)
- .write<uint32_t>(str_table_off + it->second)
- // Write ordinal value
- .seekp(ord_table_off + name_idx * sizeof(uint16_t))
- .write<uint16_t>(E->ordinal() - base_ord)
- // Write name table
- .seekp(names_table_off + name_idx * sizeof(uint32_t))
- .record_fixup(FX_BASE_RVA)
- .write<uint32_t>(str_table_off + it_name->second);
+ // Write addr table
+ .seekp(addr_table_off + idx * sizeof(uint32_t))
+ .record_fixup(FX_BASE_RVA)
+ .write<uint32_t>(str_table_off + it->second)
+ // Write ordinal value
+ .seekp(ord_table_off + name_idx * sizeof(uint16_t))
+ .write<uint16_t>(E->ordinal() - base_ord)
+ // Write name table
+ .seekp(names_table_off + name_idx * sizeof(uint32_t))
+ .record_fixup(FX_BASE_RVA)
+ .write<uint32_t>(str_table_off + it_name->second);
++name_idx;
- } else if (const std::string& name = E->name(); !name.empty()){
+ } else if (const std::string& name = E->name(); !name.empty()) {
auto it = strmap_offset.find(name);
if (it == strmap_offset.end()) {
- LIEF_ERR("Can't find '{}' in the optimized string table", name);
+ LIEF_ERR("Entry '{}' not found in optimized string table", name);
return make_error_code(lief_errors::build_error);
}
- ios
- .seekp(addr_table_off + idx * sizeof(uint32_t))
- .write<uint32_t>(rva)
- .seekp(ord_table_off + name_idx * sizeof(uint16_t))
- .write<uint16_t>(E->ordinal() - base_ord)
- .seekp(names_table_off + name_idx * sizeof(uint32_t))
- .record_fixup(FX_BASE_RVA)
- .write<uint32_t>(str_table_off + it->second);
+ ios.seekp(addr_table_off + idx * sizeof(uint32_t))
+ .write<uint32_t>(rva)
+ .seekp(ord_table_off + name_idx * sizeof(uint16_t))
+ .write<uint16_t>(E->ordinal() - base_ord)
+ .seekp(names_table_off + name_idx * sizeof(uint32_t))
+ .record_fixup(FX_BASE_RVA)
+ .write<uint32_t>(str_table_off + it->second);
;
++name_idx;
}
@@ -1238,19 +1201,18 @@ ok_error_t Builder::build_exports() {
ios.align(sizeof(uint32_t));
- const size_t relocated_size = align(tail_off,
- binary_->optional_header().file_alignment());
+ const size_t relocated_size =
+ align(tail_off, binary_->optional_header().file_alignment());
Section edata_section(config_.export_section);
edata_section.reserve(relocated_size);
- edata_section
- .add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
- .add_characteristic(Section::CHARACTERISTICS::MEM_READ);
+ edata_section.add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
+ .add_characteristic(Section::CHARACTERISTICS::MEM_READ);
Section* new_edata_section = binary_->add_section(edata_section);
if (new_edata_section == nullptr) {
- LIEF_ERR("Can't add a new edata section");
+ LIEF_ERR("Failed to add new edata section");
return make_error_code(lief_errors::build_error);
}
exp_dir->RVA(new_edata_section->virtual_address());
@@ -1263,4 +1225,3 @@ ok_error_t Builder::build_exports() {
}
}
-}
diff --git a/deps/LIEF/src/PE/Builder.tcc b/deps/LIEF/src/PE/Builder.tcc
index 0f8ec91798b..f0d9d88897a 100644
--- a/deps/LIEF/src/PE/Builder.tcc
+++ b/deps/LIEF/src/PE/Builder.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,71 +28,66 @@
#include "logging.hpp"
#include "LIEF/utils.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
template<typename PE_T>
ok_error_t Builder::build_optional_header(const OptionalHeader& optional_header) {
- using uint__ = typename PE_T::uint;
+ using uint__ = typename PE_T::uint;
using pe_optional_header = typename PE_T::pe_optional_header;
// Build optional header
- binary_->optional_header()
- .sizeof_image(static_cast<uint32_t>(binary_->virtual_size()));
- binary_->optional_header()
- .sizeof_headers(static_cast<uint32_t>(binary_->sizeof_headers()));
+ binary_->optional_header().sizeof_image(
+ static_cast<uint32_t>(binary_->virtual_size())
+ );
+ binary_->optional_header().sizeof_headers(
+ static_cast<uint32_t>(binary_->sizeof_headers())
+ );
vector_iostream pe_opt_hdr_strm;
pe_opt_hdr_strm.reserve(sizeof(pe_optional_header));
- pe_opt_hdr_strm
- .write<uint16_t>((int)optional_header.magic())
- .write<uint8_t>(optional_header.major_linker_version())
- .write<uint8_t>(optional_header.minor_linker_version())
- .write<uint32_t>(optional_header.sizeof_code())
- .write<uint32_t>(optional_header.sizeof_initialized_data())
- .write<uint32_t>(optional_header.sizeof_uninitialized_data())
- .write<uint32_t>(optional_header.addressof_entrypoint())
- .write<uint32_t>(optional_header.baseof_code())
- ;
+ pe_opt_hdr_strm.write<uint16_t>((int)optional_header.magic())
+ .write<uint8_t>(optional_header.major_linker_version())
+ .write<uint8_t>(optional_header.minor_linker_version())
+ .write<uint32_t>(optional_header.sizeof_code())
+ .write<uint32_t>(optional_header.sizeof_initialized_data())
+ .write<uint32_t>(optional_header.sizeof_uninitialized_data())
+ .write<uint32_t>(optional_header.addressof_entrypoint())
+ .write<uint32_t>(optional_header.baseof_code());
if constexpr (std::is_same_v<PE_T, details::PE32>) {
pe_opt_hdr_strm.write<uint32_t>(optional_header.baseof_data());
}
- pe_opt_hdr_strm
- .template write<uint__>(optional_header.imagebase())
- .template write<uint32_t>(optional_header.section_alignment())
- .template write<uint32_t>(optional_header.file_alignment())
- .template write<uint16_t>(optional_header.major_operating_system_version())
- .template write<uint16_t>(optional_header.minor_operating_system_version())
- .template write<uint16_t>(optional_header.major_image_version())
- .template write<uint16_t>(optional_header.minor_image_version())
- .template write<uint16_t>(optional_header.major_subsystem_version())
- .template write<uint16_t>(optional_header.minor_subsystem_version())
- .template write<uint32_t>(optional_header.win32_version_value())
- .template write<uint32_t>(optional_header.sizeof_image())
- .template write<uint32_t>(optional_header.sizeof_headers())
- .template write<uint32_t>(optional_header.checksum())
- .template write<uint16_t>((int)optional_header.subsystem())
- .template write<uint16_t>((int)optional_header.dll_characteristics())
- .template write<uint__>(optional_header.sizeof_stack_reserve())
- .template write<uint__>(optional_header.sizeof_stack_commit())
- .template write<uint__>(optional_header.sizeof_heap_reserve())
- .template write<uint__>(optional_header.sizeof_heap_commit())
- .template write<uint32_t>(optional_header.loader_flags())
- .template write<uint32_t>(optional_header.numberof_rva_and_size())
- ;
+ pe_opt_hdr_strm.template write<uint__>(optional_header.imagebase())
+ .template write<uint32_t>(optional_header.section_alignment())
+ .template write<uint32_t>(optional_header.file_alignment())
+ .template write<uint16_t>(optional_header.major_operating_system_version())
+ .template write<uint16_t>(optional_header.minor_operating_system_version())
+ .template write<uint16_t>(optional_header.major_image_version())
+ .template write<uint16_t>(optional_header.minor_image_version())
+ .template write<uint16_t>(optional_header.major_subsystem_version())
+ .template write<uint16_t>(optional_header.minor_subsystem_version())
+ .template write<uint32_t>(optional_header.win32_version_value())
+ .template write<uint32_t>(optional_header.sizeof_image())
+ .template write<uint32_t>(optional_header.sizeof_headers())
+ .template write<uint32_t>(optional_header.checksum())
+ .template write<uint16_t>((int)optional_header.subsystem())
+ .template write<uint16_t>((int)optional_header.dll_characteristics())
+ .template write<uint__>(optional_header.sizeof_stack_reserve())
+ .template write<uint__>(optional_header.sizeof_stack_commit())
+ .template write<uint__>(optional_header.sizeof_heap_reserve())
+ .template write<uint__>(optional_header.sizeof_heap_commit())
+ .template write<uint32_t>(optional_header.loader_flags())
+ .template write<uint32_t>(optional_header.numberof_rva_and_size());
assert(pe_opt_hdr_strm.size() == sizeof(pe_optional_header));
const uint32_t address_next_header =
- binary_->dos_header().addressof_new_exeheader() +
- sizeof(details::pe_header);
+ binary_->dos_header().addressof_new_exeheader() + sizeof(details::pe_header);
- ios_
- .seekp(address_next_header)
- .write(pe_opt_hdr_strm);
+ ios_.seekp(address_next_header).write(pe_opt_hdr_strm);
return ok();
}
@@ -110,12 +105,17 @@ ok_error_t Builder::build_tls() {
const bool is64_bit = binary_->optional_header().magic() == PE_TYPE::PE32_PLUS;
DataDirectory* tls_dir = binary_->tls_dir();
+ DataDirectory* reloc_dir = binary_->relocation_dir();
+
+ if (tls_dir == nullptr || reloc_dir == nullptr) {
+ return ok();
+ }
// True if the TLS object has been created and was not
// originally present in the binary
const bool is_created = tls_dir->RVA() == 0 || tls_dir->size() == 0;
- LIEF_DEBUG("TLS: [0x{:08x}, 0x{:08x}]", tls_dir->RVA(),
+ LIEF_DEBUG("TLS: [{:#010x}, {:#010x}]", tls_dir->RVA(),
tls_dir->RVA() + tls_dir->size());
vector_iostream ios_callbacks;
@@ -130,11 +130,14 @@ ok_error_t Builder::build_tls() {
}
/// 0 ending is on uint32_t not uint64_t
- const size_t original_callback_size = binary_->sizing_info_.nb_tls_callbacks > 0 ?
- binary_->sizing_info_.nb_tls_callbacks * sizeof(uint__) + sizeof(uint32_t) : 0;
+ const size_t original_callback_size =
+ binary_->sizing_info_.nb_tls_callbacks > 0 ?
+ binary_->sizing_info_.nb_tls_callbacks * sizeof(uint__) +
+ sizeof(uint32_t) :
+ 0;
const uint64_t imagebase = binary_->optional_header().imagebase();
- // addressof_callbacks is a VA not a RVA
+ // addressof_callbacks is a VA, not an RVA
uint32_t tls_callbacks_start = 0;
uint32_t tls_callbacks_end = 0;
@@ -156,22 +159,18 @@ ok_error_t Builder::build_tls() {
LIEF_DEBUG("Need to create a TLS section");
Section tls_section(config_.tls_section);
const size_t allocated_size =
- align(tls_data_.callbacks.size() + sizeof(tls_header) +
- /* index */ sizeof(uint__),
- binary_->optional_header().file_alignment());
+ align(tls_data_.callbacks.size() + sizeof(tls_header) +
+ /* index */ sizeof(uint__),
+ binary_->optional_header().file_alignment());
- tls_section
- .reserve(allocated_size)
- .add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
- .add_characteristic(Section::CHARACTERISTICS::MEM_READ)
- .add_characteristic(Section::CHARACTERISTICS::MEM_WRITE);
+ tls_section.reserve(allocated_size)
+ .add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
+ .add_characteristic(Section::CHARACTERISTICS::MEM_READ)
+ .add_characteristic(Section::CHARACTERISTICS::MEM_WRITE);
Section* new_tls_section = binary_->add_section(tls_section);
vector_iostream write_strm = new_tls_section->edit();
- write_strm
- .write(tls_data_.callbacks)
- .write(sizeof(tls_header), 0)
- .write(0);
+ write_strm.write(tls_data_.callbacks).write(sizeof(tls_header), 0).write(0);
tls_dir->RVA(new_tls_section->virtual_address() + write_strm.tellp());
tls_dir->size(sizeof(tls_header));
@@ -184,8 +183,8 @@ ok_error_t Builder::build_tls() {
if (tls->addressof_callbacks() != 0) {
LIEF_WARN("Replacing existing address of callbacks from "
- "0x{:016x} to 0x{:016x}", tls->addressof_callbacks(),
- new_tls_section->virtual_address());
+ "{:#018x} to {:#018x}",
+ tls->addressof_callbacks(), new_tls_section->virtual_address());
}
tls->addressof_callbacks(imagebase + new_tls_section->virtual_address());
@@ -198,60 +197,67 @@ ok_error_t Builder::build_tls() {
RelocationEntry::BASE_TYPES::HIGHLOW;
// Create relocations
- if (auto addr_raw = tls->addressof_raw_data(); addr_raw.first > 0) {
+ if (auto [raw_start, raw_end] = tls->addressof_raw_data(); raw_start > 0) {
const size_t pos = tls_header_start + offsetof(tls_header, RawDataStartVA);
- assert(pos >= r_base_addr && (pos - r_base_addr) < RelocationEntry::MAX_ADDR);
+ assert(pos >= r_base_addr &&
+ (pos - r_base_addr) < RelocationEntry::MAX_ADDR);
r_base.add_entry({(uint16_t)(pos - r_base_addr), default_ty});
}
- if (auto addr_raw = tls->addressof_raw_data(); addr_raw.second > 0) {
+ if (auto [raw_start, raw_end] = tls->addressof_raw_data(); raw_end > 0) {
const size_t pos = tls_header_start + offsetof(tls_header, RawDataEndVA);
- assert(pos >= r_base_addr && (pos - r_base_addr) < RelocationEntry::MAX_ADDR);
+ assert(pos >= r_base_addr &&
+ (pos - r_base_addr) < RelocationEntry::MAX_ADDR);
r_base.add_entry({(uint16_t)(pos - r_base_addr), default_ty});
}
if (auto addr = tls->addressof_index(); addr > 0) {
const size_t pos = tls_header_start + offsetof(tls_header, AddressOfIndex);
- assert(pos >= r_base_addr && (pos - r_base_addr) < RelocationEntry::MAX_ADDR);
+ assert(pos >= r_base_addr &&
+ (pos - r_base_addr) < RelocationEntry::MAX_ADDR);
r_base.add_entry({(uint16_t)(pos - r_base_addr), default_ty});
}
if (auto addr = tls->addressof_callbacks(); addr > 0) {
- const size_t pos = tls_header_start + offsetof(tls_header, AddressOfCallback);
- assert(pos >= r_base_addr && (pos - r_base_addr) < RelocationEntry::MAX_ADDR);
+ const size_t pos =
+ tls_header_start + offsetof(tls_header, AddressOfCallback);
+ assert(pos >= r_base_addr &&
+ (pos - r_base_addr) < RelocationEntry::MAX_ADDR);
r_base.add_entry({(uint16_t)(pos - r_base_addr), default_ty});
}
for (size_t i = 0; i < tls->callbacks().size(); ++i) {
const size_t pos = tls_cbk_start + i * sizeof(uint__);
- assert(pos >= r_base_addr && (pos - r_base_addr) < RelocationEntry::MAX_ADDR);
+ assert(pos >= r_base_addr &&
+ (pos - r_base_addr) < RelocationEntry::MAX_ADDR);
r_base.add_entry({(uint16_t)(pos - r_base_addr), default_ty});
}
binary_->add_relocation(r_base);
}
// User added new callbacks
- else if (tls_data_.callbacks.size() > original_callback_size || config_.force_relocating) {
- LIEF_DEBUG("Need to relocated TLS Callbacks (0x{:06x} new bytes)",
+ else if (tls_data_.callbacks.size() > original_callback_size ||
+ config_.force_relocating)
+ {
+ LIEF_DEBUG("Need to relocate TLS callbacks ({:#08x} new bytes)",
tls_data_.callbacks.size() - original_callback_size);
Section tls_section(config_.tls_section);
- // We don't necessary need to relocate the TLS header but it can be worth
- // reserving this space ahead of a potential need. In the "worse" case
+ // We don't necessarily need to relocate the TLS header but it can be worth
+ // reserving this space ahead of a potential need. In the worst case
// of a PE32+, 36 bytes are reserved.
const size_t relocated_size =
- align(tls_data_.callbacks.size() + sizeof(tls_header),
- binary_->optional_header().file_alignment());
+ align(tls_data_.callbacks.size() + sizeof(tls_header),
+ binary_->optional_header().file_alignment());
- tls_section
- .reserve(relocated_size)
- .add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
- .add_characteristic(Section::CHARACTERISTICS::MEM_READ)
- .add_characteristic(Section::CHARACTERISTICS::MEM_WRITE);
+ tls_section.reserve(relocated_size)
+ .add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
+ .add_characteristic(Section::CHARACTERISTICS::MEM_READ)
+ .add_characteristic(Section::CHARACTERISTICS::MEM_WRITE);
Section* new_tls_section = binary_->add_section(tls_section);
new_tls_section->edit().write(tls_data_.callbacks);
tls->addressof_callbacks(imagebase + new_tls_section->virtual_address());
- LIEF_DEBUG("TLS new callbacks address: 0x{:08x} (0x{:016x})",
+ LIEF_DEBUG("TLS new callbacks address: {:#010x} ({:#018x})",
new_tls_section->virtual_address(), tls->addressof_callbacks());
// Process relocations to make sure they are consistent with the new
@@ -269,13 +275,13 @@ ok_error_t Builder::build_tls() {
bool in_cbk = tls_callbacks_start <= addr && addr < tls_callbacks_end;
if (in_hdr) {
- LIEF_DEBUG("{:16}: 0x{:04x} ({})", "TLS reloc header", addr,
+ LIEF_DEBUG("{:16}: {:#06x} ({})", "TLS reloc header", addr,
to_string(E->type()));
hdr_relocations.push_back(E.get());
}
if (in_cbk) {
- LIEF_DEBUG("{:16}: 0x{:04x} ({})", "TLS reloc cbk", addr,
+ LIEF_DEBUG("{:16}: {:#06x} ({})", "TLS reloc cbk", addr,
to_string(E->type()));
cbk_relocations.push_back(E.get());
}
@@ -286,6 +292,7 @@ ok_error_t Builder::build_tls() {
LIEF_DEBUG("relocations[callbacks]: #{:04d}", cbk_relocations.size());
// Erase relocations associated with callbacks
+ size_t rm_entries = 0;
for (RelocationEntry* E : cbk_relocations) {
Relocation* parent = E->parent();
@@ -293,15 +300,22 @@ ok_error_t Builder::build_tls() {
LIEF_WARN("Missing parent relocation");
continue;
}
-
+ size_t count = parent->entries_.size();
parent->entries_.erase(
- std::remove_if(parent->entries_.begin(), parent->entries_.end(),
- [E] (std::unique_ptr<RelocationEntry>& F) {
- return E == F.get();
- }), parent->entries_.end());
+ std::remove_if(parent->entries_.begin(), parent->entries_.end(),
+ [E](std::unique_ptr<RelocationEntry>& F) {
+ return E == F.get();
+ }),
+ parent->entries_.end()
+ );
+ rm_entries += count - parent->entries_.size();
}
- // Relocation that need to be created:
+ uint64_t reloc_size = reloc_dir->size();
+ reloc_size -= rm_entries * sizeof(uint16_t);
+ reloc_dir->size(reloc_size);
+
+ // Relocations that need to be created:
const size_t req_relocs = tls->callbacks().size();
LIEF_DEBUG("Need to create #{} relocations", req_relocs);
@@ -312,7 +326,7 @@ ok_error_t Builder::build_tls() {
RelocationEntry::BASE_TYPES::HIGHLOW;
for (size_t i = 0; i < req_relocs; ++i) {
const uint16_t pos = i * sizeof(uint__);
- assert (pos < RelocationEntry::MAX_ADDR);
+ assert(pos < RelocationEntry::MAX_ADDR);
reloc_base.add_entry(RelocationEntry(pos, default_ty));
}
@@ -320,51 +334,59 @@ ok_error_t Builder::build_tls() {
} else /* We can write the TLS callbacks without relocating the table */ {
[[maybe_unused]]
- int64_t delta_size = original_callback_size - tls_data_.callbacks.size();
- LIEF_DEBUG("TLS Callbacks -0x{:06x}", delta_size);
+ int64_t delta_size = original_callback_size - tls_data_.callbacks.size();
+ LIEF_DEBUG("TLS Callbacks -{:#08x}", delta_size);
if (tls_data_.callbacks.empty() && original_callback_size != 0) {
// The callbacks have been removed. In this case, we need to remove any
- // relocation pointing in the current callback section, set addressof_callbacks
- // to 0 and fill the existing callback bytes with 0
+ // relocation pointing in the current callback section, set
+ // addressof_callbacks to 0 and fill the existing callback bytes with 0
for (Relocation& R : binary_->relocations()) {
auto& entries = R.entries_;
[[maybe_unused]] const size_t S1 = R.entries_.size();
- entries.erase(
- std::remove_if(entries.begin(), entries.end(),
- [tls_callbacks_start, tls_callbacks_end] (std::unique_ptr<RelocationEntry>& E)
- {
- uint32_t addr = E->address();
- return tls_callbacks_start <= addr && addr < tls_callbacks_end;
- }
- ), entries.end());
- [[maybe_unused]] const size_t S2 = R.entries_.size();
- LIEF_DEBUG("#{} relocation deleted", S1 - S2);
+ entries.erase(std::remove_if(entries.begin(), entries.end(),
+ [tls_callbacks_start, tls_callbacks_end](
+ std::unique_ptr<RelocationEntry>& E
+ ) {
+ uint32_t addr = E->address();
+ return tls_callbacks_start <= addr &&
+ addr < tls_callbacks_end;
+ }),
+ entries.end());
+ const size_t S2 = R.entries_.size();
+ size_t rm_count = S1 - S2;
+ LIEF_DEBUG("#{} relocation deleted", rm_count);
+ uint64_t reloc_size = reloc_dir->size();
+ reloc_size -= rm_count * sizeof(uint16_t);
+ reloc_dir->size(reloc_size);
}
- binary_->fill_address(tls_callbacks_start, original_callback_size, 0);
+ binary_->fill_address(tls_callbacks_start, original_callback_size, 0,
+ Binary::VA_TYPES::RVA);
tls->addressof_callbacks(0);
} else {
- binary_->patch_address(tls_callbacks_start, tls_data_.callbacks);
+ binary_->patch_address(tls_callbacks_start, tls_data_.callbacks,
+ Binary::VA_TYPES::RVA);
}
}
vector_iostream ios_header;
ios_header.reserve(sizeof(tls_header));
- ios_header
- .template write<uint__>(tls->addressof_raw_data())
- .template write<uint__>(tls->addressof_index())
- .template write<uint__>(tls->addressof_callbacks())
- .template write<uint32_t>(tls->sizeof_zero_fill())
- .template write<uint32_t>(tls->characteristics())
- ;
+ ios_header.template write<uint__>(tls->addressof_raw_data())
+ .template write<uint__>(tls->addressof_index())
+ .template write<uint__>(tls->addressof_callbacks())
+ .template write<uint32_t>(tls->sizeof_zero_fill())
+ .template write<uint32_t>(tls->characteristics());
ios_header.move(tls_data_.header);
- if (const DataDirectory* dir = binary_->tls_dir(); dir->RVA() > 0) {
+ if (const DataDirectory* dir = binary_->tls_dir();
+ dir != nullptr && dir->RVA() > 0)
+ {
if (dir->size() < tls_data_.header.size()) {
- LIEF_WARN("TLS Header is larger than the original. original=0x{:08x}, "
- "new=0x{:08x}", dir->size(), tls_data_.header.size());
+ LIEF_WARN("TLS header larger than original (original={:#010x}, "
+ "new={:#010x})",
+ dir->size(), tls_data_.header.size());
}
- binary_->patch_address(dir->RVA(), tls_data_.header);
+ binary_->patch_address(dir->RVA(), tls_data_.header, Binary::VA_TYPES::RVA);
}
return ok();
@@ -428,7 +450,7 @@ ok_error_t Builder::build_imports() {
// | DLL Names |
// +--------------------------+
//
- // and the layout for PE compiled with MinGW is also different [...].
+ // and the layout for PE files compiled with MinGW is also different [...].
// Thus, we can't make any assumptions about a standardized layout of the
// imports.
//
@@ -502,6 +524,11 @@ ok_error_t Builder::build_imports() {
LIEF_DEBUG("Rebuilding imports");
DataDirectory* import_dir = binary_->import_dir();
+
+ if (import_dir == nullptr) {
+ return ok();
+ }
+
if (binary_->imports_.empty()) {
import_dir->RVA(0);
import_dir->size(0);
@@ -520,28 +547,26 @@ ok_error_t Builder::build_imports() {
const std::string& imp_name = imp.name();
if (auto it = names_offset.find(imp_name); it == names_offset.end()) {
names_offset[imp_name] = names_stream.tellp();
- names_stream
- .write(imp_name);
+ names_stream.write(imp_name);
}
for (const ImportEntry& entry : imp.entries()) {
const std::string& entry_name = entry.name();
if (auto it = names_offset.find(entry_name); it == names_offset.end()) {
names_offset[entry_name] = names_stream.tellp();
- names_stream
- .write<uint16_t>(entry.hint())
- .write(entry_name)
- .align(2);
+ names_stream.write<uint16_t>(entry.hint()).write(entry_name).align(2);
}
}
- nb_imported_functions += imp.nb_original_func() > 0 ? imp.nb_original_func() :
- imp.entries().size();
+ nb_imported_functions +=
+ imp.nb_original_func() > 0 ? imp.nb_original_func() : imp.entries().size();
++nb_imported_functions; // For the null entry
}
uint32_t headers_offset = 0;
- uint32_t ilt_offsets = headers_offset + (binary_->imports().size() + 1) * sizeof(details::pe_import);
+ uint32_t ilt_offsets = headers_offset + (binary_->imports().size() + 1) *
+ sizeof(details::pe_import);
uint32_t strings_offset = ilt_offsets + nb_imported_functions * sizeof(uint__);
- uint32_t iat_offset = align(strings_offset + names_stream.size(), sizeof(uint16_t));
+ uint32_t iat_offset =
+ align(strings_offset + names_stream.size(), sizeof(uint16_t));
headers_ilt.init_fixups(_FX_CNT);
iat_stream.init_fixups(_FX_CNT);
@@ -553,22 +578,21 @@ ok_error_t Builder::build_imports() {
const auto it = names_offset.find(imp_name);
if (it == names_offset.end()) {
- LIEF_ERR("Can't find offset for name: {}", imp_name);
+ LIEF_ERR("Offset not found for name: {}", imp_name);
return make_error_code(lief_errors::build_error);
}
- uint32_t iat_rva = has_existing_iat ? imp.import_address_table_rva() :
- iat_offset + (uint32_t)iat_stream.tellp();
- headers_ilt
- .seekp(headers_offset)
- .record_fixup(FX_IMPORT_TABLE)
- .template write<uint32_t>(/*ImportLookupTableRVA=*/ilt_offsets)
- .template write<uint32_t>(/*TimeDateStamp=*/imp.timedatestamp())
- .template write<uint32_t>(/*ForwarderChain=*/imp.forwarder_chain())
- .record_fixup(FX_IMPORT_TABLE)
- .template write<uint32_t>(/*NameRVA=*/strings_offset + it->second)
- .record_fixup(FX_IMPORT_TABLE, !has_existing_iat)
- .template write<uint32_t>(/*ImportAddressTableRVA=*/iat_rva)
- ;
+ uint32_t iat_rva = has_existing_iat ?
+ imp.import_address_table_rva() :
+ iat_offset + (uint32_t)iat_stream.tellp();
+ headers_ilt.seekp(headers_offset)
+ .record_fixup(FX_IMPORT_TABLE)
+ .template write<uint32_t>(ilt_offsets)
+ .template write<uint32_t>(imp.timedatestamp())
+ .template write<uint32_t>(imp.forwarder_chain())
+ .record_fixup(FX_IMPORT_TABLE)
+ .template write<uint32_t>(strings_offset + it->second) // Name RVA
+ .record_fixup(FX_IMPORT_TABLE, !has_existing_iat)
+ .template write<uint32_t>(iat_rva);
headers_offset = headers_ilt.tellp();
headers_ilt.seekp(ilt_offsets);
@@ -579,17 +603,18 @@ ok_error_t Builder::build_imports() {
if (has_existing_iat && entry.iat_address() != IAT_pos) {
if (entry.iat_address() > IAT_pos) {
// This case can happen when a function (or multiple functions)
- // has been removed from the current Import. To fill this gap,
+ // have been removed from the current Import. To fill this gap,
// we can pad the missing ILT/IAT entries with the current one
uint64_t delta = entry.iat_address() - IAT_pos;
assert(delta % sizeof(uint__) == 0);
count += delta / sizeof(uint__);
- LIEF_DEBUG("padding count: {}", delta / sizeof(uint__));
+ LIEF_DEBUG("Padding count: {}", delta / sizeof(uint__));
} else {
LIEF_WARN("IAT location mismatch for {}:{} "
- "(RVA=0x{:08x}, Expected=0x{:08x})",
- imp_name, entry.is_ordinal() ?
- '#' + std::to_string(entry.ordinal()) : entry.name(),
+ "(RVA={:#010x}, Expected={:#010x})",
+ imp_name,
+ entry.is_ordinal() ? '#' + std::to_string(entry.ordinal()) :
+ entry.name(),
IAT_pos, entry.iat_address());
}
}
@@ -598,7 +623,7 @@ ok_error_t Builder::build_imports() {
if (!entry.is_ordinal()) {
auto it_name = names_offset.find(entry.name());
if (it_name == names_offset.end()) {
- LIEF_ERR("Can't find name offset for the function: {}", entry.name());
+ LIEF_ERR("Name offset not found for function: {}", entry.name());
}
ilt_value = strings_offset + it_name->second;
}
@@ -607,19 +632,19 @@ ok_error_t Builder::build_imports() {
const bool is_last = i == (count - 1);
headers_ilt
- // ilt_value is the name RVA, hence the FX_IMPORT_TABLE fixup
- .record_fixup(FX_IMPORT_TABLE, !entry.is_ordinal())
- .template write<uint__>(ilt_value);
+ // ilt_value is the name RVA, hence the FX_IMPORT_TABLE fixup
+ .record_fixup(FX_IMPORT_TABLE, !entry.is_ordinal())
+ .template write<uint__>(ilt_value);
if (!has_existing_iat) {
entry.iat_address((iat_offset + iat_stream.tellp()) | RELOCATED_IAT);
- iat_stream
- .record_fixup(FX_IMPORT_TABLE, !entry.is_ordinal())
- .template write<uint__>(ilt_value);
+ iat_stream.record_fixup(FX_IMPORT_TABLE, !entry.is_ordinal())
+ .template write<uint__>(ilt_value);
}
if (!is_last && has_existing_iat) {
- binary_->patch_address(IAT_pos, entry.iat_value(), sizeof(uint__));
+ binary_->patch_address(IAT_pos, entry.iat_value(), sizeof(uint__),
+ Binary::VA_TYPES::RVA);
}
IAT_pos += sizeof(uint__);
}
@@ -628,9 +653,7 @@ ok_error_t Builder::build_imports() {
}
// Null entry
- headers_ilt
- .seekp(ilt_offsets)
- .write<uint__>(0);
+ headers_ilt.seekp(ilt_offsets).write<uint__>(0);
if (!has_existing_iat) {
iat_stream.write<uint__>(0);
@@ -639,9 +662,7 @@ ok_error_t Builder::build_imports() {
}
// Null entry at the end
- headers_ilt
- .seekp(headers_offset)
- .write(sizeof(details::pe_import), 0);
+ headers_ilt.seekp(headers_offset).write(sizeof(details::pe_import), 0);
headers_offset = headers_ilt.tellp();
@@ -650,9 +671,8 @@ ok_error_t Builder::build_imports() {
Section idata_section(config_.idata_section);
idata_section.reserve(relocated_size);
- idata_section
- .add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
- .add_characteristic(Section::CHARACTERISTICS::MEM_READ);
+ idata_section.add_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)
+ .add_characteristic(Section::CHARACTERISTICS::MEM_READ);
if (!iat_stream.empty()) {
/* The additional (lief-created) IAT associated with imports added by the
@@ -666,7 +686,7 @@ ok_error_t Builder::build_imports() {
* "Access violation - code c0000005" when the loader tries to write the
* resolved symbol in our custom IAT.
*
- * It seems that windows loader set implicit permissions for the memory
+ * It seems that the Windows loader sets implicit permissions for the memory
* page wrapped by the IAT DataDirectory:
*
* 0:000> !address 0x7ff7bfdb3f00 <--- Address in the genuine IAT
@@ -696,17 +716,16 @@ ok_error_t Builder::build_imports() {
* Allocation Protect: 00000080 PAGE_EXECUTE_WRITECOPY
*
* To make sure we don't get a memory access violation when the loader
- * writes the resolved symbol in our IAT, we need to **both**
+ * writes the resolved symbol in our IAT, we need **both**
* characteristics: MEM_WRITE | CNT_CODE.
*/
- idata_section
- .add_characteristic(Section::CHARACTERISTICS::MEM_WRITE)
- .add_characteristic(Section::CHARACTERISTICS::CNT_CODE);
+ idata_section.add_characteristic(Section::CHARACTERISTICS::MEM_WRITE)
+ .add_characteristic(Section::CHARACTERISTICS::CNT_CODE);
}
Section* new_idata_section = binary_->add_section(idata_section);
if (new_idata_section == nullptr) {
- LIEF_ERR("Can't add a new idata section");
+ LIEF_ERR("Failed to add new idata section");
return make_error_code(lief_errors::build_error);
}
import_dir->RVA(new_idata_section->virtual_address());
@@ -719,11 +738,10 @@ ok_error_t Builder::build_imports() {
headers_ilt.apply_fixup<uint32_t>(FX_IMPORT_TABLE, import_dir->RVA());
iat_stream.apply_fixup<uint32_t>(FX_IMPORT_TABLE, import_dir->RVA());
- headers_ilt
- .seekp(strings_offset)
- .write(names_stream.raw())
- .align(sizeof(uint16_t))
- .write(iat_stream.raw());
+ headers_ilt.seekp(strings_offset)
+ .write(names_stream.raw())
+ .align(sizeof(uint16_t))
+ .write(iat_stream.raw());
new_idata_section->content(headers_ilt.raw());
@@ -745,73 +763,72 @@ ok_error_t Builder::build_imports() {
}
template<class PE_T>
-ok_error_t write_load_config(const LoadConfiguration& config, vector_iostream& ios) {
+ok_error_t write_load_config(const LoadConfiguration& config,
+ vector_iostream& ios) {
using uint__ = typename PE_T::uint;
- ios
- .template write<uint32_t>(config.characteristics())
- .template write<uint32_t>(config.timedatestamp())
- .template write<uint16_t>(config.major_version())
- .template write<uint16_t>(config.minor_version())
- .template write<uint32_t>(config.global_flags_clear())
- .template write<uint32_t>(config.global_flags_set())
- .template write<uint32_t>(config.critical_section_default_timeout())
- .template write<uint__>(config.decommit_free_block_threshold())
- .template write<uint__>(config.decommit_total_free_threshold())
- .template write<uint__>(config.lock_prefix_table())
- .template write<uint__>(config.maximum_allocation_size())
- .template write<uint__>(config.virtual_memory_threshold())
- .template write<uint__>(config.process_affinity_mask())
- .template write<uint32_t>(config.process_heap_flags())
- .template write<uint16_t>(config.csd_version())
- .template write<uint16_t>(config.reserved1())
- .template write<uint__>(config.editlist())
- .template write<uint__>(config.security_cookie())
-
- .template write<uint__>(config.se_handler_table())
- .template write<uint__>(config.se_handler_count())
-
- .template write<uint__>(config.guard_cf_check_function_pointer())
- .template write<uint__>(config.guard_cf_dispatch_function_pointer())
- .template write<uint__>(config.guard_cf_function_table())
- .template write<uint__>(config.guard_cf_function_count())
- .template write<uint32_t>(config.guard_flags())
- ;
+ ios.template write<uint32_t>(config.characteristics())
+ .template write<uint32_t>(config.timedatestamp())
+ .template write<uint16_t>(config.major_version())
+ .template write<uint16_t>(config.minor_version())
+ .template write<uint32_t>(config.global_flags_clear())
+ .template write<uint32_t>(config.global_flags_set())
+ .template write<uint32_t>(config.critical_section_default_timeout())
+ .template write<uint__>(config.decommit_free_block_threshold())
+ .template write<uint__>(config.decommit_total_free_threshold())
+ .template write<uint__>(config.lock_prefix_table())
+ .template write<uint__>(config.maximum_allocation_size())
+ .template write<uint__>(config.virtual_memory_threshold())
+ .template write<uint__>(config.process_affinity_mask())
+ .template write<uint32_t>(config.process_heap_flags())
+ .template write<uint16_t>(config.csd_version())
+ .template write<uint16_t>(config.reserved1())
+ .template write<uint__>(config.editlist())
+ .template write<uint__>(config.security_cookie())
+
+ .template write<uint__>(config.se_handler_table())
+ .template write<uint__>(config.se_handler_count())
+
+ .template write<uint__>(config.guard_cf_check_function_pointer())
+ .template write<uint__>(config.guard_cf_dispatch_function_pointer())
+ .template write<uint__>(config.guard_cf_function_table())
+ .template write<uint__>(config.guard_cf_function_count())
+ .template write<uint32_t>(config.guard_flags());
if (const CodeIntegrity* integrity = config.code_integrity()) {
- ios
- .write<uint16_t>(integrity->flags())
- .write<uint16_t>(integrity->catalog())
- .write<uint32_t>(integrity->catalog_offset())
- .write<uint32_t>(integrity->reserved());
+ ios.write<uint16_t>(integrity->flags())
+ .write<uint16_t>(integrity->catalog())
+ .write<uint32_t>(integrity->catalog_offset())
+ .write<uint32_t>(integrity->reserved());
}
- ios
- .template write<uint__>(config.guard_address_taken_iat_entry_table())
- .template write<uint__>(config.guard_address_taken_iat_entry_count())
- .template write<uint__>(config.guard_long_jump_target_table())
- .template write<uint__>(config.guard_long_jump_target_count())
-
- .template write<uint__>(config.dynamic_value_reloc_table())
- .template write<uint__>(config.hybrid_metadata_pointer())
-
- .template write<uint__>(config.guard_rf_failure_routine())
- .template write<uint__>(config.guard_rf_failure_routine_function_pointer())
- .template write<uint32_t>(config.dynamic_value_reloctable_offset())
- .template write<uint16_t>(config.dynamic_value_reloctable_section())
- .template write<uint16_t>(config.reserved2())
-
- .template write<uint__>(config.guard_rf_verify_stackpointer_function_pointer())
- .template write<uint32_t>(config.hotpatch_table_offset())
- .template write<uint32_t>(config.reserved3())
- .template write<uint__>(config.enclave_configuration_ptr())
- .template write<uint__>(config.volatile_metadata_pointer())
- .template write<uint__>(config.guard_eh_continuation_table())
- .template write<uint__>(config.guard_eh_continuation_count())
- .template write<uint__>(config.guard_xfg_check_function_pointer())
- .template write<uint__>(config.guard_xfg_dispatch_function_pointer())
- .template write<uint__>(config.guard_xfg_table_dispatch_function_pointer())
- .template write<uint__>(config.cast_guard_os_determined_failure_mode())
- .template write<uint__>(config.guard_memcpy_function_pointer());
+ ios.template write<uint__>(config.guard_address_taken_iat_entry_table())
+ .template write<uint__>(config.guard_address_taken_iat_entry_count())
+ .template write<uint__>(config.guard_long_jump_target_table())
+ .template write<uint__>(config.guard_long_jump_target_count())
+
+ .template write<uint__>(config.dynamic_value_reloc_table())
+ .template write<uint__>(config.hybrid_metadata_pointer())
+
+ .template write<uint__>(config.guard_rf_failure_routine())
+ .template write<uint__>(config.guard_rf_failure_routine_function_pointer())
+ .template write<uint32_t>(config.dynamic_value_reloctable_offset())
+ .template write<uint16_t>(config.dynamic_value_reloctable_section())
+ .template write<uint16_t>(config.reserved2())
+
+ .template write<uint__>(
+ config.guard_rf_verify_stackpointer_function_pointer()
+ )
+ .template write<uint32_t>(config.hotpatch_table_offset())
+ .template write<uint32_t>(config.reserved3())
+ .template write<uint__>(config.enclave_configuration_ptr())
+ .template write<uint__>(config.volatile_metadata_pointer())
+ .template write<uint__>(config.guard_eh_continuation_table())
+ .template write<uint__>(config.guard_eh_continuation_count())
+ .template write<uint__>(config.guard_xfg_check_function_pointer())
+ .template write<uint__>(config.guard_xfg_dispatch_function_pointer())
+ .template write<uint__>(config.guard_xfg_table_dispatch_function_pointer())
+ .template write<uint__>(config.cast_guard_os_determined_failure_mode())
+ .template write<uint__>(config.guard_memcpy_function_pointer());
return ok();
}
@@ -820,12 +837,16 @@ ok_error_t Builder::build_load_config() {
DataDirectory* lconf_dir = binary_->load_config_dir();
LoadConfiguration* lconf = binary_->load_configuration();
+ if (lconf_dir == nullptr) {
+ return ok();
+ }
LIEF_DEBUG("Writing load config");
if (lconf == nullptr) {
if (lconf_dir->RVA() > 0 && lconf_dir->size() > 0) {
- binary_->fill_address(lconf_dir->RVA(), lconf_dir->size());
+ binary_->fill_address(lconf_dir->RVA(), lconf_dir->size(), /*value=*/0,
+ Binary::VA_TYPES::RVA);
}
lconf_dir->RVA(0);
lconf_dir->size(0);
@@ -836,10 +857,10 @@ ok_error_t Builder::build_load_config() {
/* Not supported yet since relocating this structure also means
* patching relocations.
*/
- LIEF_DEBUG("LoadConfiguration.size: 0x{:08x}", lconf->size());
- LIEF_DEBUG("IMAGE_DIRECTORY_LOAD_CONFIG.size: 0x{:08x}", lconf_dir->size());
+ LIEF_DEBUG("LoadConfiguration.size: {:#010x}", lconf->size());
+ LIEF_DEBUG("IMAGE_DIRECTORY_LOAD_CONFIG.size: {:#010x}", lconf_dir->size());
- LIEF_WARN("Larger load config directory is not supported");
+ LIEF_WARN("Larger load config directory not supported");
return make_error_code(lief_errors::not_supported);
}
@@ -860,4 +881,3 @@ ok_error_t Builder::build_load_config() {
}
}
-}
diff --git a/deps/LIEF/src/PE/CodeIntegrity.cpp b/deps/LIEF/src/PE/CodeIntegrity.cpp
index c357bbce94d..7a1da94ad0b 100644
--- a/deps/LIEF/src/PE/CodeIntegrity.cpp
+++ b/deps/LIEF/src/PE/CodeIntegrity.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,8 +19,8 @@
#include "LIEF/Visitor.hpp"
#include "LIEF/BinaryStream/BinaryStream.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
result<CodeIntegrity> CodeIntegrity::parse(Parser&, BinaryStream& stream) {
auto flags = stream.read<uint16_t>();
@@ -45,11 +45,10 @@ result<CodeIntegrity> CodeIntegrity::parse(Parser&, BinaryStream& stream) {
CodeIntegrity code_integrity;
- code_integrity
- .flags(*flags)
- .catalog(*catalog)
- .catalog_offset(*catalog_offset)
- .reserved(*reserved);
+ code_integrity.flags(*flags)
+ .catalog(*catalog)
+ .catalog_offset(*catalog_offset)
+ .reserved(*reserved);
return code_integrity;
}
@@ -59,12 +58,11 @@ void CodeIntegrity::accept(LIEF::Visitor& visitor) const {
}
std::ostream& operator<<(std::ostream& os, const CodeIntegrity& entry) {
- os << fmt::format("Flags 0x{:x}\n", entry.flags())
- << fmt::format("Catalog 0x{:x}\n", entry.catalog())
- << fmt::format("Catalog offset 0x{:x}\n", entry.catalog_offset())
- << fmt::format("Reserved 0x{:x}\n", entry.reserved());
+ os << fmt::format("Flags {:#x}\n", entry.flags())
+ << fmt::format("Catalog {:#x}\n", entry.catalog())
+ << fmt::format("Catalog offset {:#x}\n", entry.catalog_offset())
+ << fmt::format("Reserved {:#x}\n", entry.reserved());
return os;
}
}
-}
diff --git a/deps/LIEF/src/PE/CodePage.cpp b/deps/LIEF/src/PE/CodePage.cpp
index 55a29231122..97b24b18fc1 100644
--- a/deps/LIEF/src/PE/CodePage.cpp
+++ b/deps/LIEF/src/PE/CodePage.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,150 +18,150 @@
namespace LIEF::PE {
const char* to_string(CODE_PAGES e) {
- #define ENTRY(X) std::pair(CODE_PAGES::X, #X)
- STRING_MAP enums2str {
- ENTRY(IBM037),
- ENTRY(IBM437),
- ENTRY(IBM500),
- ENTRY(ASMO_708),
- ENTRY(DOS_720),
- ENTRY(IBM737),
- ENTRY(IBM775),
- ENTRY(IBM850),
- ENTRY(IBM852),
- ENTRY(IBM855),
- ENTRY(IBM857),
- ENTRY(IBM00858),
- ENTRY(IBM860),
- ENTRY(IBM861),
- ENTRY(DOS_862),
- ENTRY(IBM863),
- ENTRY(IBM864),
- ENTRY(IBM865),
- ENTRY(CP866),
- ENTRY(IBM869),
- ENTRY(IBM870),
- ENTRY(WINDOWS_874),
- ENTRY(CP875),
- ENTRY(SHIFT_JIS),
- ENTRY(GB2312),
- ENTRY(KS_C_5601_1987),
- ENTRY(BIG5),
- ENTRY(IBM1026),
- ENTRY(IBM01047),
- ENTRY(IBM01140),
- ENTRY(IBM01141),
- ENTRY(IBM01142),
- ENTRY(IBM01143),
- ENTRY(IBM01144),
- ENTRY(IBM01145),
- ENTRY(IBM01146),
- ENTRY(IBM01147),
- ENTRY(IBM01148),
- ENTRY(IBM01149),
- ENTRY(UTF_16),
- ENTRY(UNICODEFFFE),
- ENTRY(WINDOWS_1250),
- ENTRY(WINDOWS_1251),
- ENTRY(WINDOWS_1252),
- ENTRY(WINDOWS_1253),
- ENTRY(WINDOWS_1254),
- ENTRY(WINDOWS_1255),
- ENTRY(WINDOWS_1256),
- ENTRY(WINDOWS_1257),
- ENTRY(WINDOWS_1258),
- ENTRY(JOHAB),
- ENTRY(MACINTOSH),
- ENTRY(X_MAC_JAPANESE),
- ENTRY(X_MAC_CHINESETRAD),
- ENTRY(X_MAC_KOREAN),
- ENTRY(X_MAC_ARABIC),
- ENTRY(X_MAC_HEBREW),
- ENTRY(X_MAC_GREEK),
- ENTRY(X_MAC_CYRILLIC),
- ENTRY(X_MAC_CHINESESIMP),
- ENTRY(X_MAC_ROMANIAN),
- ENTRY(X_MAC_UKRAINIAN),
- ENTRY(X_MAC_THAI),
- ENTRY(X_MAC_CE),
- ENTRY(X_MAC_ICELANDIC),
- ENTRY(X_MAC_TURKISH),
- ENTRY(X_MAC_CROATIAN),
- ENTRY(UTF_32),
- ENTRY(UTF_32BE),
- ENTRY(X_CHINESE_CNS),
- ENTRY(X_CP20001),
- ENTRY(X_CHINESE_ETEN),
- ENTRY(X_CP20003),
- ENTRY(X_CP20004),
- ENTRY(X_CP20005),
- ENTRY(X_IA5),
- ENTRY(X_IA5_GERMAN),
- ENTRY(X_IA5_SWEDISH),
- ENTRY(X_IA5_NORWEGIAN),
- ENTRY(US_ASCII),
- ENTRY(X_CP20261),
- ENTRY(X_CP20269),
- ENTRY(IBM273),
- ENTRY(IBM277),
- ENTRY(IBM278),
- ENTRY(IBM280),
- ENTRY(IBM284),
- ENTRY(IBM285),
- ENTRY(IBM290),
- ENTRY(IBM297),
- ENTRY(IBM420),
- ENTRY(IBM423),
- ENTRY(IBM424),
- ENTRY(X_EBCDIC_KOREANEXTENDED),
- ENTRY(IBM_THAI),
- ENTRY(KOI8_R),
- ENTRY(IBM871),
- ENTRY(IBM880),
- ENTRY(IBM905),
- ENTRY(IBM00924),
- ENTRY(EUC_JP_JIS),
- ENTRY(X_CP20936),
- ENTRY(X_CP20949),
- ENTRY(CP1025),
- ENTRY(KOI8_U),
- ENTRY(ISO_8859_1),
- ENTRY(ISO_8859_2),
- ENTRY(ISO_8859_3),
- ENTRY(ISO_8859_4),
- ENTRY(ISO_8859_5),
- ENTRY(ISO_8859_6),
- ENTRY(ISO_8859_7),
- ENTRY(ISO_8859_8),
- ENTRY(ISO_8859_9),
- ENTRY(ISO_8859_13),
- ENTRY(ISO_8859_15),
- ENTRY(X_EUROPA),
- ENTRY(ISO_8859_8_I),
- ENTRY(ISO_2022_JP),
- ENTRY(CSISO2022JP),
- ENTRY(ISO_2022_JP_JIS),
- ENTRY(ISO_2022_KR),
- ENTRY(X_CP50227),
- ENTRY(EUC_JP),
- ENTRY(EUC_CN),
- ENTRY(EUC_KR),
- ENTRY(HZ_GB_2312),
- ENTRY(GB18030),
- ENTRY(X_ISCII_DE),
- ENTRY(X_ISCII_BE),
- ENTRY(X_ISCII_TA),
- ENTRY(X_ISCII_TE),
- ENTRY(X_ISCII_AS),
- ENTRY(X_ISCII_OR),
- ENTRY(X_ISCII_KA),
- ENTRY(X_ISCII_MA),
- ENTRY(X_ISCII_GU),
- ENTRY(X_ISCII_PA),
- ENTRY(UTF_7),
- ENTRY(UTF_8),
+#define ENTRY(X) std::pair(CODE_PAGES::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(IBM037),
+ ENTRY(IBM437),
+ ENTRY(IBM500),
+ ENTRY(ASMO_708),
+ ENTRY(DOS_720),
+ ENTRY(IBM737),
+ ENTRY(IBM775),
+ ENTRY(IBM850),
+ ENTRY(IBM852),
+ ENTRY(IBM855),
+ ENTRY(IBM857),
+ ENTRY(IBM00858),
+ ENTRY(IBM860),
+ ENTRY(IBM861),
+ ENTRY(DOS_862),
+ ENTRY(IBM863),
+ ENTRY(IBM864),
+ ENTRY(IBM865),
+ ENTRY(CP866),
+ ENTRY(IBM869),
+ ENTRY(IBM870),
+ ENTRY(WINDOWS_874),
+ ENTRY(CP875),
+ ENTRY(SHIFT_JIS),
+ ENTRY(GB2312),
+ ENTRY(KS_C_5601_1987),
+ ENTRY(BIG5),
+ ENTRY(IBM1026),
+ ENTRY(IBM01047),
+ ENTRY(IBM01140),
+ ENTRY(IBM01141),
+ ENTRY(IBM01142),
+ ENTRY(IBM01143),
+ ENTRY(IBM01144),
+ ENTRY(IBM01145),
+ ENTRY(IBM01146),
+ ENTRY(IBM01147),
+ ENTRY(IBM01148),
+ ENTRY(IBM01149),
+ ENTRY(UTF_16),
+ ENTRY(UNICODEFFFE),
+ ENTRY(WINDOWS_1250),
+ ENTRY(WINDOWS_1251),
+ ENTRY(WINDOWS_1252),
+ ENTRY(WINDOWS_1253),
+ ENTRY(WINDOWS_1254),
+ ENTRY(WINDOWS_1255),
+ ENTRY(WINDOWS_1256),
+ ENTRY(WINDOWS_1257),
+ ENTRY(WINDOWS_1258),
+ ENTRY(JOHAB),
+ ENTRY(MACINTOSH),
+ ENTRY(X_MAC_JAPANESE),
+ ENTRY(X_MAC_CHINESETRAD),
+ ENTRY(X_MAC_KOREAN),
+ ENTRY(X_MAC_ARABIC),
+ ENTRY(X_MAC_HEBREW),
+ ENTRY(X_MAC_GREEK),
+ ENTRY(X_MAC_CYRILLIC),
+ ENTRY(X_MAC_CHINESESIMP),
+ ENTRY(X_MAC_ROMANIAN),
+ ENTRY(X_MAC_UKRAINIAN),
+ ENTRY(X_MAC_THAI),
+ ENTRY(X_MAC_CE),
+ ENTRY(X_MAC_ICELANDIC),
+ ENTRY(X_MAC_TURKISH),
+ ENTRY(X_MAC_CROATIAN),
+ ENTRY(UTF_32),
+ ENTRY(UTF_32BE),
+ ENTRY(X_CHINESE_CNS),
+ ENTRY(X_CP20001),
+ ENTRY(X_CHINESE_ETEN),
+ ENTRY(X_CP20003),
+ ENTRY(X_CP20004),
+ ENTRY(X_CP20005),
+ ENTRY(X_IA5),
+ ENTRY(X_IA5_GERMAN),
+ ENTRY(X_IA5_SWEDISH),
+ ENTRY(X_IA5_NORWEGIAN),
+ ENTRY(US_ASCII),
+ ENTRY(X_CP20261),
+ ENTRY(X_CP20269),
+ ENTRY(IBM273),
+ ENTRY(IBM277),
+ ENTRY(IBM278),
+ ENTRY(IBM280),
+ ENTRY(IBM284),
+ ENTRY(IBM285),
+ ENTRY(IBM290),
+ ENTRY(IBM297),
+ ENTRY(IBM420),
+ ENTRY(IBM423),
+ ENTRY(IBM424),
+ ENTRY(X_EBCDIC_KOREANEXTENDED),
+ ENTRY(IBM_THAI),
+ ENTRY(KOI8_R),
+ ENTRY(IBM871),
+ ENTRY(IBM880),
+ ENTRY(IBM905),
+ ENTRY(IBM00924),
+ ENTRY(EUC_JP_JIS),
+ ENTRY(X_CP20936),
+ ENTRY(X_CP20949),
+ ENTRY(CP1025),
+ ENTRY(KOI8_U),
+ ENTRY(ISO_8859_1),
+ ENTRY(ISO_8859_2),
+ ENTRY(ISO_8859_3),
+ ENTRY(ISO_8859_4),
+ ENTRY(ISO_8859_5),
+ ENTRY(ISO_8859_6),
+ ENTRY(ISO_8859_7),
+ ENTRY(ISO_8859_8),
+ ENTRY(ISO_8859_9),
+ ENTRY(ISO_8859_13),
+ ENTRY(ISO_8859_15),
+ ENTRY(X_EUROPA),
+ ENTRY(ISO_8859_8_I),
+ ENTRY(ISO_2022_JP),
+ ENTRY(CSISO2022JP),
+ ENTRY(ISO_2022_JP_JIS),
+ ENTRY(ISO_2022_KR),
+ ENTRY(X_CP50227),
+ ENTRY(EUC_JP),
+ ENTRY(EUC_CN),
+ ENTRY(EUC_KR),
+ ENTRY(HZ_GB_2312),
+ ENTRY(GB18030),
+ ENTRY(X_ISCII_DE),
+ ENTRY(X_ISCII_BE),
+ ENTRY(X_ISCII_TA),
+ ENTRY(X_ISCII_TE),
+ ENTRY(X_ISCII_AS),
+ ENTRY(X_ISCII_OR),
+ ENTRY(X_ISCII_KA),
+ ENTRY(X_ISCII_MA),
+ ENTRY(X_ISCII_GU),
+ ENTRY(X_ISCII_PA),
+ ENTRY(UTF_7),
+ ENTRY(UTF_8),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
diff --git a/deps/LIEF/src/PE/DataDirectory.cpp b/deps/LIEF/src/PE/DataDirectory.cpp
index a1a52c17ee2..762706a2245 100644
--- a/deps/LIEF/src/PE/DataDirectory.cpp
+++ b/deps/LIEF/src/PE/DataDirectory.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,15 +25,14 @@
#include <spdlog/fmt/fmt.h>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
DataDirectory::DataDirectory(const details::pe_data_directory& header,
DataDirectory::TYPES type) :
rva_{header.RelativeVirtualAddress},
size_{header.Size},
- type_{type}
-{}
+ type_{type} {}
void DataDirectory::accept(LIEF::Visitor& visitor) const {
visitor.visit(*this);
@@ -87,9 +86,9 @@ span<uint8_t> DataDirectory::content() {
}
std::ostream& operator<<(std::ostream& os, const DataDirectory& entry) {
- os << fmt::format("[{:>24}] [0x{:08x}, 0x{:08x}] ({} bytes)",
- to_string(entry.type()), entry.RVA(), entry.RVA() + entry.size(),
- entry.size());
+ os << fmt::format("[{:>24}] [{:#010x}, {:#010x}] ({} bytes)",
+ to_string(entry.type()), entry.RVA(),
+ entry.RVA() + entry.size(), entry.size());
if (const Section* section = entry.section()) {
os << fmt::format(" section: '{}'", section->name());
}
@@ -97,27 +96,27 @@ std::ostream& operator<<(std::ostream& os, const DataDirectory& entry) {
}
const char* to_string(DataDirectory::TYPES e) {
- #define ENTRY(X) std::pair(DataDirectory::TYPES::X, #X)
- STRING_MAP enums2str {
- ENTRY(EXPORT_TABLE),
- ENTRY(IMPORT_TABLE),
- ENTRY(RESOURCE_TABLE),
- ENTRY(EXCEPTION_TABLE),
- ENTRY(CERTIFICATE_TABLE),
- ENTRY(BASE_RELOCATION_TABLE),
- ENTRY(DEBUG_DIR),
- ENTRY(ARCHITECTURE),
- ENTRY(GLOBAL_PTR),
- ENTRY(TLS_TABLE),
- ENTRY(LOAD_CONFIG_TABLE),
- ENTRY(BOUND_IMPORT),
- ENTRY(IAT),
- ENTRY(DELAY_IMPORT_DESCRIPTOR),
- ENTRY(CLR_RUNTIME_HEADER),
- ENTRY(RESERVED),
- ENTRY(UNKNOWN),
+#define ENTRY(X) std::pair(DataDirectory::TYPES::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(EXPORT_TABLE),
+ ENTRY(IMPORT_TABLE),
+ ENTRY(RESOURCE_TABLE),
+ ENTRY(EXCEPTION_TABLE),
+ ENTRY(CERTIFICATE_TABLE),
+ ENTRY(BASE_RELOCATION_TABLE),
+ ENTRY(DEBUG_DIR),
+ ENTRY(ARCHITECTURE),
+ ENTRY(GLOBAL_PTR),
+ ENTRY(TLS_TABLE),
+ ENTRY(LOAD_CONFIG_TABLE),
+ ENTRY(BOUND_IMPORT),
+ ENTRY(IAT),
+ ENTRY(DELAY_IMPORT_DESCRIPTOR),
+ ENTRY(CLR_RUNTIME_HEADER),
+ ENTRY(RESERVED),
+ ENTRY(UNKNOWN),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
}
@@ -125,4 +124,3 @@ const char* to_string(DataDirectory::TYPES e) {
}
}
-}
diff --git a/deps/LIEF/src/PE/DelayImport.cpp b/deps/LIEF/src/PE/DelayImport.cpp
index 80364906088..6f12627fb45 100644
--- a/deps/LIEF/src/PE/DelayImport.cpp
+++ b/deps/LIEF/src/PE/DelayImport.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,20 +21,20 @@
#include "LIEF/PE/DelayImport.hpp"
#include "PE/Structures.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
void DelayImport::swap(DelayImport& other) {
- std::swap(attribute_, other.attribute_);
- std::swap(name_, other.name_);
- std::swap(handle_, other.handle_);
- std::swap(iat_, other.iat_);
+ std::swap(attribute_, other.attribute_);
+ std::swap(name_, other.name_);
+ std::swap(handle_, other.handle_);
+ std::swap(iat_, other.iat_);
std::swap(names_table_, other.names_table_);
- std::swap(bound_iat_, other.bound_iat_);
- std::swap(unload_iat_, other.unload_iat_);
- std::swap(timestamp_, other.timestamp_);
- std::swap(entries_, other.entries_);
- std::swap(type_, other.type_);
+ std::swap(bound_iat_, other.bound_iat_);
+ std::swap(unload_iat_, other.unload_iat_);
+ std::swap(timestamp_, other.timestamp_);
+ std::swap(entries_, other.entries_);
+ std::swap(type_, other.type_);
}
DelayImport::DelayImport(const details::delay_imports& import, PE_TYPE type) :
@@ -45,8 +45,7 @@ DelayImport::DelayImport(const details::delay_imports& import, PE_TYPE type) :
bound_iat_{import.bound_iat},
unload_iat_{import.unload_iat},
timestamp_{import.timestamp},
- type_{type}
-{}
+ type_{type} {}
DelayImport::DelayImport(const DelayImport& other) :
@@ -59,8 +58,7 @@ DelayImport::DelayImport(const DelayImport& other) :
bound_iat_(other.bound_iat_),
unload_iat_(other.unload_iat_),
timestamp_(other.timestamp_),
- type_(other.type_)
-{
+ type_(other.type_) {
if (!other.entries_.empty()) {
entries_.reserve(other.entries_.size());
for (const DelayImportEntry& entry : other.entries()) {
@@ -74,15 +72,14 @@ void DelayImport::accept(LIEF::Visitor& visitor) const {
}
std::ostream& operator<<(std::ostream& os, const DelayImport& entry) {
- using namespace fmt;
os << entry.name() << '\n'
- << format(" Characteristics: 0x{:08x}\n", entry.attribute())
- << format(" Address of HMODULE: 0x{:08x}\n", entry.handle())
- << format(" Import Address Table: 0x{:08x}\n", entry.iat())
- << format(" Import Name Table: 0x{:08x}\n", entry.names_table())
- << format(" Bound Import Name Table: 0x{:08x}\n", entry.biat())
- << format(" Unload Import Name Table: 0x{:08x}\n", entry.uiat())
- << format(" Timestamp: {}\n", entry.uiat())
+ << fmt::format(" Characteristics: {:#010x}\n", entry.attribute())
+ << fmt::format(" Address of HMODULE: {:#010x}\n", entry.handle())
+ << fmt::format(" Import Address Table: {:#010x}\n", entry.iat())
+ << fmt::format(" Import Name Table: {:#010x}\n", entry.names_table())
+ << fmt::format(" Bound Import Name Table: {:#010x}\n", entry.biat())
+ << fmt::format(" Unload Import Name Table: {:#010x}\n", entry.uiat())
+ << fmt::format(" Timestamp: {}\n", entry.uiat())
<< "Entries:\n";
for (const DelayImportEntry& delayed : entry.entries()) {
@@ -91,4 +88,3 @@ std::ostream& operator<<(std::ostream& os, const DelayImport& entry) {
return os;
}
}
-}
diff --git a/deps/LIEF/src/PE/DelayImportEntry.cpp b/deps/LIEF/src/PE/DelayImportEntry.cpp
index 9cb3426a8bb..a444167e257 100644
--- a/deps/LIEF/src/PE/DelayImportEntry.cpp
+++ b/deps/LIEF/src/PE/DelayImportEntry.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,8 +23,8 @@
#include "LIEF/PE/DelayImportEntry.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
std::string DelayImportEntry::demangled_name() const {
logging::needs_lief_extended();
@@ -37,8 +37,10 @@ std::string DelayImportEntry::demangled_name() const {
}
bool DelayImportEntry::is_ordinal() const {
- // See: https://docs.microsoft.com/en-us/windows/desktop/debug/pe-format#the-idata-section
- const uint64_t ORDINAL_MASK = type_ == PE_TYPE::PE32 ? 0x80000000 : 0x8000000000000000;
+ // See:
+ // https://docs.microsoft.com/en-us/windows/desktop/debug/pe-format#the-idata-section
+ const uint64_t ORDINAL_MASK =
+ type_ == PE_TYPE::PE32 ? 0x80000000 : 0x8000000000000000;
bool ordinal_bit_is_set = static_cast<bool>(data_ & ORDINAL_MASK);
// Check that bit 31 / 63 is set
@@ -55,12 +57,11 @@ void DelayImportEntry::accept(LIEF::Visitor& visitor) const {
}
std::ostream& operator<<(std::ostream& os, const DelayImportEntry& entry) {
- os << fmt::format("0x{:08x} 0x{:04x} {}",
- entry.iat_value(), entry.hint(),
+ os << fmt::format("{:#010x} {:#06x} {}", entry.iat_value(), entry.hint(),
entry.is_ordinal() ? std::to_string(entry.ordinal()) :
entry.name());
return os;
}
-} // namespace PE
-} // namepsace LIEF
+} // namespace LIEF::PE
+// namespace LIEF
diff --git a/deps/LIEF/src/PE/DosHeader.cpp b/deps/LIEF/src/PE/DosHeader.cpp
index 37c57a96221..4313e477efe 100644
--- a/deps/LIEF/src/PE/DosHeader.cpp
+++ b/deps/LIEF/src/PE/DosHeader.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,13 +16,14 @@
#include "LIEF/Visitor.hpp"
#include "LIEF/PE/DosHeader.hpp"
+#include "LIEF/PE/enums.hpp"
#include "PE/Structures.hpp"
#include "spdlog/fmt/fmt.h"
#include "spdlog/fmt/ranges.h"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
DosHeader::DosHeader(const details::pe_dos_header& header) :
magic_{header.Magic},
@@ -41,8 +42,7 @@ DosHeader::DosHeader(const details::pe_dos_header& header) :
overlay_number_{header.OverlayNumber},
oem_id_{header.OEMid},
oem_info_{header.OEMinfo},
- addr_new_exe_header_{header.AddressOfNewExeHeader}
-{
+ addr_new_exe_header_{header.AddressOfNewExeHeader} {
std::copy(std::begin(header.Reserved), std::end(header.Reserved),
std::begin(reserved_));
@@ -69,27 +69,36 @@ DosHeader DosHeader::create(PE_TYPE type) {
}
std::ostream& operator<<(std::ostream& os, const DosHeader& entry) {
- os << fmt::format("Magic: 0x{:x}\n", entry.magic())
- << fmt::format("Used bytes in last page: 0x{:x}\n", entry.used_bytes_in_last_page())
- << fmt::format("File size in pages: 0x{:x}\n", entry.file_size_in_pages())
- << fmt::format("Number of relocation: 0x{:x}\n", entry.numberof_relocation())
- << fmt::format("Header size in paragraphs: 0x{:x}\n", entry.header_size_in_paragraphs())
- << fmt::format("Min extra paragraphs: 0x{:x}\n", entry.minimum_extra_paragraphs())
- << fmt::format("Max extra paragraphs: 0x{:x}\n", entry.maximum_extra_paragraphs())
- << fmt::format("Initial relative SS: 0x{:x}\n", entry.initial_relative_ss())
- << fmt::format("Initial SP: 0x{:x}\n", entry.initial_sp())
- << fmt::format("Checksum: 0x{:x}\n", entry.checksum())
- << fmt::format("Initial IP: 0x{:x}\n", entry.initial_ip())
- << fmt::format("Initial relative CS: 0x{:x}\n", entry.initial_relative_cs())
- << fmt::format("Address of relocation table: 0x{:x}\n", entry.addressof_relocation_table())
- << fmt::format("Overlay number: 0x{:x}\n", entry.overlay_number())
- << fmt::format("OEM id: 0x{:x}\n", entry.oem_id())
- << fmt::format("OEM info: 0x{:x}\n", entry.oem_info())
- << fmt::format("Address of new exe-header: 0x{:x}\n", entry.addressof_new_exeheader())
+ os << fmt::format("Magic: {:#x}\n", entry.magic())
+ << fmt::format("Used bytes in last page: {:#x}\n",
+ entry.used_bytes_in_last_page())
+ << fmt::format("File size in pages: {:#x}\n",
+ entry.file_size_in_pages())
+ << fmt::format("Number of relocation: {:#x}\n",
+ entry.numberof_relocation())
+ << fmt::format("Header size in paragraphs: {:#x}\n",
+ entry.header_size_in_paragraphs())
+ << fmt::format("Min extra paragraphs: {:#x}\n",
+ entry.minimum_extra_paragraphs())
+ << fmt::format("Max extra paragraphs: {:#x}\n",
+ entry.maximum_extra_paragraphs())
+ << fmt::format("Initial relative SS: {:#x}\n",
+ entry.initial_relative_ss())
+ << fmt::format("Initial SP: {:#x}\n", entry.initial_sp())
+ << fmt::format("Checksum: {:#x}\n", entry.checksum())
+ << fmt::format("Initial IP: {:#x}\n", entry.initial_ip())
+ << fmt::format("Initial relative CS: {:#x}\n",
+ entry.initial_relative_cs())
+ << fmt::format("Address of relocation table: {:#x}\n",
+ entry.addressof_relocation_table())
+ << fmt::format("Overlay number: {:#x}\n", entry.overlay_number())
+ << fmt::format("OEM id: {:#x}\n", entry.oem_id())
+ << fmt::format("OEM info: {:#x}\n", entry.oem_info())
+ << fmt::format("Address of new exe-header: {:#x}\n",
+ entry.addressof_new_exeheader())
<< fmt::format("Reserved1: {}\n", entry.reserved())
<< fmt::format("Reserved2: {}\n", entry.reserved2());
return os;
}
}
-}
diff --git a/deps/LIEF/src/PE/EnumToString.cpp b/deps/LIEF/src/PE/EnumToString.cpp
index 10f30c06a7c..5063378ada7 100644
--- a/deps/LIEF/src/PE/EnumToString.cpp
+++ b/deps/LIEF/src/PE/EnumToString.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,51 +18,48 @@
#include "frozen.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
const char* to_string(PE_TYPE e) {
switch (e) {
- case PE_TYPE::PE32:
- return "PE32";
- case PE_TYPE::PE32_PLUS:
- return "PE32_PLUS";
- default:
- return "UNKNOWN";
+ case PE_TYPE::PE32: return "PE32";
+ case PE_TYPE::PE32_PLUS: return "PE32_PLUS";
+ default: return "UNKNOWN";
}
return "UNKNOWN";
}
const char* to_string(ALGORITHMS e) {
- CONST_MAP(ALGORITHMS, const char*, 20) enumStrings {
- { ALGORITHMS::UNKNOWN, "UNKNOWN" },
- { ALGORITHMS::SHA_512, "SHA_512" },
- { ALGORITHMS::SHA_384, "SHA_384" },
- { ALGORITHMS::SHA_256, "SHA_256" },
- { ALGORITHMS::SHA_1, "SHA_1" },
+ CONST_MAP(ALGORITHMS, const char*, 20)
+ enumStrings{
+ {ALGORITHMS::UNKNOWN, "UNKNOWN"},
+ {ALGORITHMS::SHA_512, "SHA_512"},
+ {ALGORITHMS::SHA_384, "SHA_384"},
+ {ALGORITHMS::SHA_256, "SHA_256"},
+ {ALGORITHMS::SHA_1, "SHA_1"},
- { ALGORITHMS::MD5, "MD5" },
- { ALGORITHMS::MD4, "MD4" },
- { ALGORITHMS::MD2, "MD2" },
+ {ALGORITHMS::MD5, "MD5"},
+ {ALGORITHMS::MD4, "MD4"},
+ {ALGORITHMS::MD2, "MD2"},
- { ALGORITHMS::RSA, "RSA" },
- { ALGORITHMS::EC, "EC" },
+ {ALGORITHMS::RSA, "RSA"},
+ {ALGORITHMS::EC, "EC"},
- { ALGORITHMS::MD5_RSA, "MD5_RSA" },
- { ALGORITHMS::SHA1_DSA, "SHA1_DSA" },
- { ALGORITHMS::SHA1_RSA, "SHA1_RSA" },
- { ALGORITHMS::SHA_256_RSA, "SHA_256_RSA" },
- { ALGORITHMS::SHA_384_RSA, "SHA_384_RSA" },
- { ALGORITHMS::SHA_512_RSA, "SHA_512_RSA" },
- { ALGORITHMS::SHA1_ECDSA, "SHA1_ECDSA" },
- { ALGORITHMS::SHA_256_ECDSA, "SHA_256_ECDSA" },
- { ALGORITHMS::SHA_384_ECDSA, "SHA_384_ECDSA" },
- { ALGORITHMS::SHA_512_ECDSA, "SHA_512_ECDSA" },
+ {ALGORITHMS::MD5_RSA, "MD5_RSA"},
+ {ALGORITHMS::SHA1_DSA, "SHA1_DSA"},
+ {ALGORITHMS::SHA1_RSA, "SHA1_RSA"},
+ {ALGORITHMS::SHA_256_RSA, "SHA_256_RSA"},
+ {ALGORITHMS::SHA_384_RSA, "SHA_384_RSA"},
+ {ALGORITHMS::SHA_512_RSA, "SHA_512_RSA"},
+ {ALGORITHMS::SHA1_ECDSA, "SHA1_ECDSA"},
+ {ALGORITHMS::SHA_256_ECDSA, "SHA_256_ECDSA"},
+ {ALGORITHMS::SHA_384_ECDSA, "SHA_384_ECDSA"},
+ {ALGORITHMS::SHA_512_ECDSA, "SHA_512_ECDSA"},
};
const auto it = enumStrings.find(e);
return it == enumStrings.end() ? "UNKNOWN" : it->second;
}
-} // namespace PE
-} // namespace LIEF
+} // namespace LIEF::PE
diff --git a/deps/LIEF/src/PE/ExceptionInfo.cpp b/deps/LIEF/src/PE/ExceptionInfo.cpp
index 13cba84d4d2..4243db71e30 100644
--- a/deps/LIEF/src/PE/ExceptionInfo.cpp
+++ b/deps/LIEF/src/PE/ExceptionInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,35 +23,35 @@
namespace LIEF::PE {
-std::unique_ptr<ExceptionInfo>
- ExceptionInfo::parse(Parser& ctx, BinaryStream& strm, Header::MACHINE_TYPES arch)
-{
+std::unique_ptr<ExceptionInfo> ExceptionInfo::parse(Parser& ctx,
+ BinaryStream& strm,
+ Header::MACHINE_TYPES arch) {
uint64_t pos = strm.pos();
switch (arch) {
case Header::MACHINE_TYPES::AMD64:
- {
- if (auto F = RuntimeFunctionX64::parse(ctx, strm)) {
- F->offset(pos);
- return F;
- }
- return nullptr;
+ {
+ if (auto F = RuntimeFunctionX64::parse(ctx, strm)) {
+ F->offset(pos);
+ return F;
}
+ return nullptr;
+ }
case Header::MACHINE_TYPES::ARM64:
- {
- if (auto F = RuntimeFunctionAArch64::parse(ctx, strm)) {
- F->offset(pos);
- return F;
- }
- return nullptr;
+ {
+ if (auto F = RuntimeFunctionAArch64::parse(ctx, strm)) {
+ F->offset(pos);
+ return F;
}
-
- default:
return nullptr;
+ }
+
+ default: return nullptr;
}
return nullptr;
}
-std::unique_ptr<ExceptionInfo> ExceptionInfo::parse(Parser& ctx, BinaryStream& strm) {
+std::unique_ptr<ExceptionInfo> ExceptionInfo::parse(Parser& ctx,
+ BinaryStream& strm) {
const Header::MACHINE_TYPES arch = ctx.bin().header().machine();
return parse(ctx, strm, arch);
}
diff --git a/deps/LIEF/src/PE/Export.cpp b/deps/LIEF/src/PE/Export.cpp
index a2b9a6433cf..65e3f713066 100644
--- a/deps/LIEF/src/PE/Export.cpp
+++ b/deps/LIEF/src/PE/Export.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -11,8 +11,8 @@
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
+ * limitations under the License.
+ */
#include "LIEF/Visitor.hpp"
#include "LIEF/config.h"
@@ -24,8 +24,8 @@
#include <spdlog/fmt/fmt.h>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
Export::Export(const details::pe_export_directory_table& header) :
export_flags_{header.ExportFlags},
@@ -38,8 +38,7 @@ Export::Export(const details::pe_export_directory_table& header) :
exp_addr_table_cnt_{header.AddressTableEntries},
names_addr_table_rva_{header.NamePointerRVA},
names_addr_table_cnt_{header.NumberOfNamePointers},
- ord_addr_table_rva_{header.OrdinalTableRVA}
-{}
+ ord_addr_table_rva_{header.OrdinalTableRVA} {}
Export::Export(const Export& other) :
@@ -56,8 +55,7 @@ Export::Export(const Export& other) :
names_addr_table_cnt_(other.names_addr_table_cnt_),
ord_addr_table_rva_(other.ord_addr_table_rva_),
max_ordinal_(other.max_ordinal_),
- name_(other.name_)
-{
+ name_(other.name_) {
if (!other.entries_.empty()) {
entries_.reserve(other.entries_.size());
for (const ExportEntry& entry : other.entries()) {
@@ -100,15 +98,15 @@ void Export::accept(Visitor& visitor) const {
const ExportEntry* Export::find_entry(const std::string& name) const {
- auto it = std::find_if(entries_.begin(), entries_.end(),
- [&name] (const std::unique_ptr<ExportEntry>& E) {
- if constexpr (lief_extended) {
- return E->name() == name || E->demangled_name() == name;
- } else {
- return E->name() == name;
- }
- }
- );
+ auto it =
+ std::find_if(entries_.begin(), entries_.end(),
+ [&name](const std::unique_ptr<ExportEntry>& E) {
+ if constexpr (lief_extended) {
+ return E->name() == name || E->demangled_name() == name;
+ } else {
+ return E->name() == name;
+ }
+ });
if (it == entries_.end()) {
return nullptr;
@@ -119,10 +117,9 @@ const ExportEntry* Export::find_entry(const std::string& name) const {
const ExportEntry* Export::find_entry(uint32_t ordinal) const {
auto it = std::find_if(entries_.begin(), entries_.end(),
- [ordinal] (const std::unique_ptr<ExportEntry>& E) {
- return E->ordinal() == ordinal;
- }
- );
+ [ordinal](const std::unique_ptr<ExportEntry>& E) {
+ return E->ordinal() == ordinal;
+ });
if (it == entries_.end()) {
return nullptr;
@@ -133,10 +130,9 @@ const ExportEntry* Export::find_entry(uint32_t ordinal) const {
const ExportEntry* Export::find_entry_at(uint32_t rva) const {
auto it = std::find_if(entries_.begin(), entries_.end(),
- [rva] (const std::unique_ptr<ExportEntry>& E) {
- return E->address() == rva;
- }
- );
+ [rva](const std::unique_ptr<ExportEntry>& E) {
+ return E->address() == rva;
+ });
if (it == entries_.end()) {
return nullptr;
@@ -156,8 +152,9 @@ ExportEntry& Export::add_entry(const ExportEntry& exp) {
bool Export::remove_entry(const ExportEntry& exp) {
auto it = std::find_if(entries_.begin(), entries_.end(),
- [&exp] (const std::unique_ptr<ExportEntry>& E) { return &exp == E.get(); }
- );
+ [&exp](const std::unique_ptr<ExportEntry>& E) {
+ return &exp == E.get();
+ });
if (it == entries_.end()) {
return false;
@@ -169,17 +166,19 @@ bool Export::remove_entry(const ExportEntry& exp) {
std::ostream& operator<<(std::ostream& os, const Export& exp) {
- using namespace fmt;
static constexpr auto WIDTH = 20;
- os << format("DLL Name: {}\n", exp.name())
- << format(" {:{}} 0x{:08x}\n", "Characteristics", WIDTH, exp.export_flags())
- << format(" {:{}} {} ({})\n", "Timestamp", WIDTH,
- exp.timestamp(), ts_to_str(exp.timestamp()))
- << format(" {:{}} {}.{}\n", "Version", WIDTH, exp.major_version(),
- exp.minor_version())
- << format(" {:{}} {}\n", "Ordinal Base", WIDTH, exp.ordinal_base())
- << format(" {:{}} {}\n", "Number of functions", WIDTH, exp.export_addr_table_cnt())
- << format(" {:{}} {}\n", "Number of names", WIDTH, exp.names_addr_table_cnt());
+ os << fmt::format("DLL Name: {}\n", exp.name())
+ << fmt::format(" {:{}} {:#010x}\n", "Characteristics", WIDTH,
+ exp.export_flags())
+ << fmt::format(" {:{}} {} ({})\n", "Timestamp", WIDTH, exp.timestamp(),
+ ts_to_str(exp.timestamp()))
+ << fmt::format(" {:{}} {}.{}\n", "Version", WIDTH, exp.major_version(),
+ exp.minor_version())
+ << fmt::format(" {:{}} {}\n", "Ordinal Base", WIDTH, exp.ordinal_base())
+ << fmt::format(" {:{}} {}\n", "Number of functions", WIDTH,
+ exp.export_addr_table_cnt())
+ << fmt::format(" {:{}} {}\n", "Number of names", WIDTH,
+ exp.names_addr_table_cnt());
for (const ExportEntry& E : exp.entries()) {
os << " " << E << '\n';
}
@@ -187,4 +186,3 @@ std::ostream& operator<<(std::ostream& os, const Export& exp) {
}
}
-}
diff --git a/deps/LIEF/src/PE/ExportEntry.cpp b/deps/LIEF/src/PE/ExportEntry.cpp
index de3ba00e4b6..d46ea8dc794 100644
--- a/deps/LIEF/src/PE/ExportEntry.cpp
+++ b/deps/LIEF/src/PE/ExportEntry.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,8 +22,8 @@
#include "internal_utils.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
std::string ExportEntry::demangled_name() const {
logging::needs_lief_extended();
@@ -39,15 +39,13 @@ void ExportEntry::accept(LIEF::Visitor& visitor) const {
}
std::ostream& operator<<(std::ostream& os, const ExportEntry& entry) {
- using namespace fmt;
- os << format("{:04d} {:5} 0x{:08x} {}",
- entry.ordinal(), entry.is_extern() ? "[EXT]" : "",
- entry.address(), entry.name());
+ os << fmt::format("{:04d} {:5} {:#010x} {}", entry.ordinal(),
+ entry.is_extern() ? "[EXT]" : "", entry.address(),
+ entry.name());
if (entry.is_forwarded()) {
- os << format(" ({})", LIEF::to_string(entry.forward_information()));
+ os << fmt::format(" ({})", LIEF::to_string(entry.forward_information()));
}
return os;
- }
-
}
+
}
diff --git a/deps/LIEF/src/PE/Factory.cpp b/deps/LIEF/src/PE/Factory.cpp
index 52cdb0f9445..4e8d63bcd92 100644
--- a/deps/LIEF/src/PE/Factory.cpp
+++ b/deps/LIEF/src/PE/Factory.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,14 +15,10 @@
*/
#include "LIEF/PE/Factory.hpp"
#include "LIEF/PE/Parser.hpp"
-#include "LIEF/PE/LoadConfigurations.hpp"
#include "LIEF/PE/TLS.hpp"
-#include "LIEF/PE/RichHeader.hpp"
#include "LIEF/PE/ResourceNode.hpp"
#include "LIEF/PE/Export.hpp"
-#include "LIEF/PE/Debug.hpp"
#include "LIEF/PE/Relocation.hpp"
-#include "LIEF/PE/RelocationEntry.hpp"
#include "LIEF/PE/Section.hpp"
#include "PE/Structures.hpp"
@@ -44,17 +40,18 @@ std::unique_ptr<Factory> Factory::create(PE_TYPE type) {
pe.header_ = Header::create(type);
pe.optional_header_ = OptionalHeader::create(type);
- pe.dos_stub_ = {
- 0x0e, 0x1f, 0xba, 0x0e, 0x00, 0xb4, 0x09, 0xcd, 0x21, 0xb8, 0x01, 0x4c,
- 0xcd, 0x21, 0x54, 0x68, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72,
- 0x61, 0x6d, 0x20, 0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65,
- 0x20, 0x72, 0x75, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x44, 0x4f, 0x53, 0x20,
- 0x6d, 0x6f, 0x64, 0x65, 0x2e, 0x24, 0x00, 0x00
- };
+ pe.dos_stub_ = {0x0e, 0x1f, 0xba, 0x0e, 0x00, 0xb4, 0x09, 0xcd, 0x21, 0xb8,
+ 0x01, 0x4c, 0xcd, 0x21, 0x54, 0x68, 0x69, 0x73, 0x20, 0x70,
+ 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x20, 0x63, 0x61, 0x6e,
+ 0x6e, 0x6f, 0x74, 0x20, 0x62, 0x65, 0x20, 0x72, 0x75, 0x6e,
+ 0x20, 0x69, 0x6e, 0x20, 0x44, 0x4f, 0x53, 0x20, 0x6d, 0x6f,
+ 0x64, 0x65, 0x2e, 0x24, 0x00, 0x00};
pe.data_directories_.reserve(DataDirectory::DEFAULT_NB);
for (size_t i = 0; i < DataDirectory::DEFAULT_NB; ++i) {
- pe.data_directories_.push_back(std::make_unique<DataDirectory>(DataDirectory::TYPES(i)));
+ pe.data_directories_.push_back(
+ std::make_unique<DataDirectory>(DataDirectory::TYPES(i))
+ );
}
return factory;
@@ -71,15 +68,19 @@ std::unique_ptr<Binary> Factory::process() {
pe_->write(oss, config);
std::string buffer = oss.str();
- return Parser::parse((const uint8_t*)buffer.data(), buffer.size());
+ return Parser::parse(reinterpret_cast<const uint8_t*>(buffer.data()),
+ buffer.size());
}
ok_error_t Factory::assign_locations() {
uint64_t last_offset = sizeof_headers();
uint64_t last_rva = section_align();
for (std::unique_ptr<Section>& section : sections_) {
- last_offset = std::max<uint64_t>(section->offset() + section->size(), last_offset);
- last_rva = std::max<uint64_t>(section->virtual_address() + section->virtual_size(), last_rva);
+ last_offset =
+ std::max<uint64_t>(section->offset() + section->size(), last_offset);
+ last_rva =
+ std::max<uint64_t>(section->virtual_address() + section->virtual_size(),
+ last_rva);
}
last_offset = align(last_offset, file_align());
@@ -104,13 +105,13 @@ ok_error_t Factory::assign_locations() {
uint32_t Factory::sizeof_headers() const {
return align(
- pe_->dos_header().addressof_new_exeheader() +
- sizeof(details::pe_header) +
- (is_32bit() ? sizeof(details::pe32_optional_header) :
- sizeof(details::pe64_optional_header)) +
- sizeof(details::pe_data_directory) * pe_->data_directories_.size() +
- sizeof(details::pe_section) * sections_.size(),
- file_align());
+ pe_->dos_header().addressof_new_exeheader() + sizeof(details::pe_header) +
+ (is_32bit() ? sizeof(details::pe32_optional_header) :
+ sizeof(details::pe64_optional_header)) +
+ sizeof(details::pe_data_directory) * pe_->data_directories_.size() +
+ sizeof(details::pe_section) * sections_.size(),
+ file_align()
+ );
}
@@ -126,7 +127,7 @@ ok_error_t Factory::move_sections() {
}
ok_error_t Factory::check_overlapping() const {
- // check that no section are overlapping
+ // Check that no sections are overlapping
return ok();
}
}
diff --git a/deps/LIEF/src/PE/Header.cpp b/deps/LIEF/src/PE/Header.cpp
index 5719b0cd83f..8b890c23398 100644
--- a/deps/LIEF/src/PE/Header.cpp
+++ b/deps/LIEF/src/PE/Header.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,25 +27,25 @@
#include <spdlog/fmt/fmt.h>
#include <spdlog/fmt/ranges.h>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
static constexpr std::array CHARACTERISTICS_LIST = {
- Header::CHARACTERISTICS::RELOCS_STRIPPED,
- Header::CHARACTERISTICS::EXECUTABLE_IMAGE,
- Header::CHARACTERISTICS::LINE_NUMS_STRIPPED,
- Header::CHARACTERISTICS::LOCAL_SYMS_STRIPPED,
- Header::CHARACTERISTICS::AGGRESSIVE_WS_TRIM,
- Header::CHARACTERISTICS::LARGE_ADDRESS_AWARE,
- Header::CHARACTERISTICS::BYTES_REVERSED_LO,
- Header::CHARACTERISTICS::NEED_32BIT_MACHINE,
- Header::CHARACTERISTICS::DEBUG_STRIPPED,
- Header::CHARACTERISTICS::REMOVABLE_RUN_FROM_SWAP,
- Header::CHARACTERISTICS::NET_RUN_FROM_SWAP,
- Header::CHARACTERISTICS::SYSTEM,
- Header::CHARACTERISTICS::DLL,
- Header::CHARACTERISTICS::UP_SYSTEM_ONLY,
- Header::CHARACTERISTICS::BYTES_REVERSED_HI
+ Header::CHARACTERISTICS::RELOCS_STRIPPED,
+ Header::CHARACTERISTICS::EXECUTABLE_IMAGE,
+ Header::CHARACTERISTICS::LINE_NUMS_STRIPPED,
+ Header::CHARACTERISTICS::LOCAL_SYMS_STRIPPED,
+ Header::CHARACTERISTICS::AGGRESSIVE_WS_TRIM,
+ Header::CHARACTERISTICS::LARGE_ADDRESS_AWARE,
+ Header::CHARACTERISTICS::BYTES_REVERSED_LO,
+ Header::CHARACTERISTICS::NEED_32BIT_MACHINE,
+ Header::CHARACTERISTICS::DEBUG_STRIPPED,
+ Header::CHARACTERISTICS::REMOVABLE_RUN_FROM_SWAP,
+ Header::CHARACTERISTICS::NET_RUN_FROM_SWAP,
+ Header::CHARACTERISTICS::SYSTEM,
+ Header::CHARACTERISTICS::DLL,
+ Header::CHARACTERISTICS::UP_SYSTEM_ONLY,
+ Header::CHARACTERISTICS::BYTES_REVERSED_HI
};
bool Header::is_known_machine(uint16_t machine) {
@@ -56,24 +56,24 @@ Header Header::create(PE_TYPE type) {
Header hdr;
const size_t sizeof_dirs = details::DEFAULT_NUMBER_DATA_DIRECTORIES *
sizeof(details::pe_data_directory);
- hdr.signature({ 'P', 'E', '\0', '\0' });
+ hdr.signature({'P', 'E', '\0', '\0'});
hdr.sizeof_optional_header(type == PE_TYPE::PE32 ?
- sizeof(details::pe32_optional_header) :
- sizeof(details::pe64_optional_header) + sizeof_dirs);
+ sizeof(details::pe32_optional_header) :
+ sizeof(details::pe64_optional_header) +
+ sizeof_dirs);
hdr.machine(MACHINE_TYPES::AMD64);
return hdr;
}
Header::Header(const details::pe_header& header) :
+ signature_{},
machine_(static_cast<MACHINE_TYPES>(header.Machine)),
nb_sections_(header.NumberOfSections),
timedatestamp_(header.TimeDateStamp),
pointerto_symtab_(header.PointerToSymbolTable),
nb_symbols_(header.NumberOfSymbols),
sizeof_opt_header_(header.SizeOfOptionalHeader),
- characteristics_(header.Characteristics)
-
-{
+ characteristics_(header.Characteristics) {
std::copy(std::begin(header.signature), std::end(header.signature),
std::begin(signature_));
}
@@ -83,7 +83,7 @@ std::vector<Header::CHARACTERISTICS> Header::characteristics_list() const {
list.reserve(3);
std::copy_if(CHARACTERISTICS_LIST.begin(), CHARACTERISTICS_LIST.end(),
std::back_inserter(list),
- [this] (CHARACTERISTICS c) { return has_characteristic(c); });
+ [this](CHARACTERISTICS c) { return has_characteristic(c); });
return list;
}
@@ -95,67 +95,43 @@ void Header::accept(LIEF::Visitor& visitor) const {
std::ostream& operator<<(std::ostream& os, const Header& entry) {
const Header::signature_t& sig = entry.signature();
const std::string& signature_str =
- fmt::format("{:02x} {:02x} {:02x} {:02x}",
- sig[0], sig[1], sig[2], sig[3]);
+ fmt::format("{:02x} {:02x} {:02x} {:02x}", sig[0], sig[1], sig[2], sig[3]);
const auto& list = entry.characteristics_list();
std::vector<std::string> list_str;
list_str.reserve(list.size());
std::transform(list.begin(), list.end(), std::back_inserter(list_str),
- [] (const auto c) { return to_string(c); });
+ [](const auto c) { return to_string(c); });
os << fmt::format("Signature: {}\n", signature_str)
<< fmt::format("Machine: {}\n", to_string(entry.machine()))
<< fmt::format("Number of sections: {}\n", entry.numberof_sections())
- << fmt::format("Pointer to symbol table: 0x{:x}\n", entry.pointerto_symbol_table())
+ << fmt::format("Pointer to symbol table: {:#x}\n",
+ entry.pointerto_symbol_table())
<< fmt::format("Number of symbols: {}\n", entry.numberof_symbols())
- << fmt::format("Size of optional header: 0x{:x}\n", entry.sizeof_optional_header())
+ << fmt::format("Size of optional header: {:#x}\n",
+ entry.sizeof_optional_header())
<< fmt::format("Characteristics: {}\n", fmt::join(list_str, ", "))
- << fmt::format("Timtestamp: {} ({})\n",
- entry.time_date_stamp(), ts_to_str(entry.time_date_stamp()));
+ << fmt::format("Timestamp: {} ({})\n", entry.time_date_stamp(),
+ ts_to_str(entry.time_date_stamp()));
return os;
-
}
const char* to_string(Header::MACHINE_TYPES e) {
- #define ENTRY(X) std::pair(Header::MACHINE_TYPES::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNKNOWN),
- ENTRY(ALPHA),
- ENTRY(ALPHA64),
- ENTRY(AM33),
- ENTRY(AMD64),
- ENTRY(ARM),
- ENTRY(ARMNT),
- ENTRY(ARM64),
- ENTRY(EBC),
- ENTRY(I386),
- ENTRY(IA64),
- ENTRY(LOONGARCH32),
- ENTRY(LOONGARCH64),
- ENTRY(M32R),
- ENTRY(MIPS16),
- ENTRY(MIPSFPU),
- ENTRY(MIPSFPU16),
- ENTRY(POWERPC),
- ENTRY(POWERPCFP),
- ENTRY(POWERPCBE),
- ENTRY(R4000),
- ENTRY(RISCV32),
- ENTRY(RISCV64),
- ENTRY(RISCV128),
- ENTRY(SH3),
- ENTRY(SH3DSP),
- ENTRY(SH4),
- ENTRY(SH5),
- ENTRY(THUMB),
- ENTRY(WCEMIPSV2),
- ENTRY(ARM64EC),
- ENTRY(ARM64X),
- ENTRY(CHPE_X86),
+#define ENTRY(X) std::pair(Header::MACHINE_TYPES::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(UNKNOWN), ENTRY(ALPHA), ENTRY(ALPHA64), ENTRY(AM33),
+ ENTRY(AMD64), ENTRY(ARM), ENTRY(ARMNT), ENTRY(ARM64),
+ ENTRY(EBC), ENTRY(I386), ENTRY(IA64), ENTRY(LOONGARCH32),
+ ENTRY(LOONGARCH64), ENTRY(M32R), ENTRY(MIPS16), ENTRY(MIPSFPU),
+ ENTRY(MIPSFPU16), ENTRY(POWERPC), ENTRY(POWERPCFP), ENTRY(POWERPCBE),
+ ENTRY(R4000), ENTRY(RISCV32), ENTRY(RISCV64), ENTRY(RISCV128),
+ ENTRY(SH3), ENTRY(SH3DSP), ENTRY(SH4), ENTRY(SH5),
+ ENTRY(THUMB), ENTRY(WCEMIPSV2), ENTRY(ARM64EC), ENTRY(ARM64X),
+ ENTRY(CHPE_X86),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -164,26 +140,26 @@ const char* to_string(Header::MACHINE_TYPES e) {
}
const char* to_string(Header::CHARACTERISTICS e) {
- #define ENTRY(X) std::pair(Header::CHARACTERISTICS::X, #X)
- STRING_MAP enums2str {
- ENTRY(NONE),
- ENTRY(RELOCS_STRIPPED),
- ENTRY(EXECUTABLE_IMAGE),
- ENTRY(LINE_NUMS_STRIPPED),
- ENTRY(LOCAL_SYMS_STRIPPED),
- ENTRY(AGGRESSIVE_WS_TRIM),
- ENTRY(LARGE_ADDRESS_AWARE),
- ENTRY(BYTES_REVERSED_LO),
- ENTRY(NEED_32BIT_MACHINE),
- ENTRY(DEBUG_STRIPPED),
- ENTRY(REMOVABLE_RUN_FROM_SWAP),
- ENTRY(NET_RUN_FROM_SWAP),
- ENTRY(SYSTEM),
- ENTRY(DLL),
- ENTRY(UP_SYSTEM_ONLY),
- ENTRY(BYTES_REVERSED_HI),
+#define ENTRY(X) std::pair(Header::CHARACTERISTICS::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(NONE),
+ ENTRY(RELOCS_STRIPPED),
+ ENTRY(EXECUTABLE_IMAGE),
+ ENTRY(LINE_NUMS_STRIPPED),
+ ENTRY(LOCAL_SYMS_STRIPPED),
+ ENTRY(AGGRESSIVE_WS_TRIM),
+ ENTRY(LARGE_ADDRESS_AWARE),
+ ENTRY(BYTES_REVERSED_LO),
+ ENTRY(NEED_32BIT_MACHINE),
+ ENTRY(DEBUG_STRIPPED),
+ ENTRY(REMOVABLE_RUN_FROM_SWAP),
+ ENTRY(NET_RUN_FROM_SWAP),
+ ENTRY(SYSTEM),
+ ENTRY(DLL),
+ ENTRY(UP_SYSTEM_ONLY),
+ ENTRY(BYTES_REVERSED_HI),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -192,7 +168,4 @@ const char* to_string(Header::CHARACTERISTICS e) {
}
-
-
-}
}
diff --git a/deps/LIEF/src/PE/Import.cpp b/deps/LIEF/src/PE/Import.cpp
index c23b671998f..6f70c15695d 100644
--- a/deps/LIEF/src/PE/Import.cpp
+++ b/deps/LIEF/src/PE/Import.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,6 @@
* limitations under the License.
*/
#include <algorithm>
-#include <iomanip>
#include "LIEF/Visitor.hpp"
@@ -24,16 +23,15 @@
#include <spdlog/fmt/fmt.h>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
Import::Import(const details::pe_import& import) :
ilt_rva_(import.ImportLookupTableRVA),
timedatestamp_(import.TimeDateStamp),
forwarder_chain_(import.ForwarderChain),
name_rva_(import.NameRVA),
- iat_rva_(import.ImportAddressTableRVA)
-{}
+ iat_rva_(import.ImportAddressTableRVA) {}
Import::Import(const Import& other) :
@@ -47,8 +45,7 @@ Import::Import(const Import& other) :
iat_rva_(other.iat_rva_),
name_(other.name_),
type_(other.type_),
- nb_original_func_(other.nb_original_func_)
-{
+ nb_original_func_(other.nb_original_func_) {
if (!other.entries_.empty()) {
entries_.reserve(other.entries_.size());
for (const ImportEntry& entry : other.entries()) {
@@ -86,10 +83,9 @@ Import& Import::operator=(const Import& other) {
bool Import::remove_entry(const std::string& name) {
auto it = std::find_if(entries_.begin(), entries_.end(),
- [&name] (const std::unique_ptr<ImportEntry>& entry) {
- return entry->name() == name;
- }
- );
+ [&name](const std::unique_ptr<ImportEntry>& entry) {
+ return entry->name() == name;
+ });
if (it == entries_.end()) {
return false;
}
@@ -99,11 +95,11 @@ bool Import::remove_entry(const std::string& name) {
}
bool Import::remove_entry(uint32_t ordinal) {
- auto it = std::find_if(entries_.begin(), entries_.end(),
- [ordinal] (const std::unique_ptr<ImportEntry>& entry) {
- return entry->is_ordinal() && entry->ordinal() == ordinal;
- }
- );
+ auto it =
+ std::find_if(entries_.begin(), entries_.end(),
+ [ordinal](const std::unique_ptr<ImportEntry>& entry) {
+ return entry->is_ordinal() && entry->ordinal() == ordinal;
+ });
if (it == entries_.end()) {
return false;
}
@@ -113,28 +109,31 @@ bool Import::remove_entry(uint32_t ordinal) {
}
const ImportEntry* Import::get_entry(const std::string& name) const {
- const auto it_entry = std::find_if(std::begin(entries_), std::end(entries_),
- [&name] (const std::unique_ptr<ImportEntry>& entry) {
- return entry->name() == name;
- });
- if (it_entry == std::end(entries_)) {
+ const auto it_entry =
+ std::find_if(entries_.begin(), entries_.end(),
+ [&name](const std::unique_ptr<ImportEntry>& entry) {
+ return entry->name() == name;
+ });
+ if (it_entry == entries_.end()) {
return nullptr;
}
return &**it_entry;
}
-result<uint32_t> Import::get_function_rva_from_iat(const std::string& function) const {
- const auto it_function = std::find_if(std::begin(entries_), std::end(entries_),
- [&function] (const std::unique_ptr<ImportEntry>& entry) {
- return entry->name() == function;
- });
+result<uint32_t>
+ Import::get_function_rva_from_iat(const std::string& function) const {
+ const auto it_function =
+ std::find_if(entries_.begin(), entries_.end(),
+ [&function](const std::unique_ptr<ImportEntry>& entry) {
+ return entry->name() == function;
+ });
- if (it_function == std::end(entries_)) {
+ if (it_function == entries_.end()) {
return make_error_code(lief_errors::not_found);
}
// Index of the function in the imported functions
- uint32_t idx = std::distance(std::begin(entries_), it_function);
+ uint32_t idx = std::distance(entries_.begin(), it_function);
if (type_ == PE_TYPE::PE32) {
return idx * sizeof(uint32_t);
@@ -148,24 +147,24 @@ void Import::accept(LIEF::Visitor& visitor) const {
std::ostream& operator<<(std::ostream& os, const Import& entry) {
os << fmt::format(
- R"delim(
+ R"delim(
Name: {} {{
- Name(RVA): 0x{:06x}
- IAT(RVA): 0x{:06x}
- ILT(RVA): 0x{:06x}
- FWD Chain: 0x{:06x}
- Timestamp: 0x{:06x}
+ Name(RVA): {:#08x}
+ IAT(RVA): {:#08x}
+ ILT(RVA): {:#08x}
+ FWD Chain: {:#08x}
+ Timestamp: {:#08x}
}}
)delim",
- entry.name(), entry.name_rva_, entry.import_address_table_rva(),
- entry.import_lookup_table_rva(), entry.forwarder_chain(),
- entry.timedatestamp());
+ entry.name(), entry.name_rva_, entry.import_address_table_rva(),
+ entry.import_lookup_table_rva(), entry.forwarder_chain(),
+ entry.timedatestamp()
+ );
os << '\n';
- for (const ImportEntry& functions: entry.entries()) {
+ for (const ImportEntry& functions : entry.entries()) {
os << " " << functions << '\n';
}
return os;
}
}
-}
diff --git a/deps/LIEF/src/PE/ImportEntry.cpp b/deps/LIEF/src/PE/ImportEntry.cpp
index d76c81e1649..93796374c02 100644
--- a/deps/LIEF/src/PE/ImportEntry.cpp
+++ b/deps/LIEF/src/PE/ImportEntry.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,8 +20,8 @@
#include "LIEF/Visitor.hpp"
#include "LIEF/PE/ImportEntry.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
std::string ImportEntry::demangled_name() const {
logging::needs_lief_extended();
@@ -34,8 +34,10 @@ std::string ImportEntry::demangled_name() const {
}
bool ImportEntry::is_ordinal() const {
- // See: https://docs.microsoft.com/en-us/windows/desktop/debug/pe-format#the-idata-section
- const uint64_t ORDINAL_MASK = (type_ == PE_TYPE::PE32) ? 0x80000000 : 0x8000000000000000;
+ // See:
+ // https://docs.microsoft.com/en-us/windows/desktop/debug/pe-format#the-idata-section
+ const uint64_t ORDINAL_MASK =
+ (type_ == PE_TYPE::PE32) ? 0x80000000 : 0x8000000000000000;
bool ordinal_bit_is_set = (data_ & ORDINAL_MASK) != 0;
// Check that bit 31 / 63 is set
@@ -53,12 +55,11 @@ void ImportEntry::accept(LIEF::Visitor& visitor) const {
}
std::ostream& operator<<(std::ostream& os, const ImportEntry& entry) {
- using namespace fmt;
os << (!entry.is_ordinal() ?
- format("0x{:04x}: {}", entry.hint(), entry.name()) :
- format("0x{:04x}: {}", entry.hint(), entry.ordinal()));
+ fmt::format("{:#06x}: {}", entry.hint(), entry.name()) :
+ fmt::format("{:#06x}: {}", entry.hint(), entry.ordinal()));
return os;
}
-} // namespace PE
-} // namepsace LIEF
+} // namespace LIEF::PE
+// namespace LIEF
diff --git a/deps/LIEF/src/PE/LoadConfigurations/CHPEMetadata/Metadata.cpp b/deps/LIEF/src/PE/LoadConfigurations/CHPEMetadata/Metadata.cpp
index 09335a23601..e3b2731da3f 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/CHPEMetadata/Metadata.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/CHPEMetadata/Metadata.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,7 +25,8 @@
#include "logging.hpp"
namespace LIEF::PE {
-std::unique_ptr<CHPEMetadata> CHPEMetadata::parse(Parser& ctx, BinaryStream& stream) {
+std::unique_ptr<CHPEMetadata> CHPEMetadata::parse(Parser& ctx,
+ BinaryStream& stream) {
LIEF_DEBUG("Parsing CHPEMetadata");
auto version = stream.read<uint32_t>();
if (!version) {
diff --git a/deps/LIEF/src/PE/LoadConfigurations/CHPEMetadata/MetadataARM64.cpp b/deps/LIEF/src/PE/LoadConfigurations/CHPEMetadata/MetadataARM64.cpp
index a90ff864f4a..889ef45f755 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/CHPEMetadata/MetadataARM64.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/CHPEMetadata/MetadataARM64.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,8 +24,7 @@
namespace LIEF::PE {
std::unique_ptr<CHPEMetadataARM64>
- CHPEMetadataARM64::parse(Parser& ctx, BinaryStream& stream, uint32_t version)
-{
+ CHPEMetadataARM64::parse(Parser& ctx, BinaryStream& stream, uint32_t version) {
// The structure defining Hybrid metadata for ARM64(EC) is located in
// `ntimage.h` and named: `_IMAGE_ARM64EC_METADATA`
//
@@ -67,49 +66,62 @@ std::unique_ptr<CHPEMetadataARM64>
auto CodeRangesToEntryPoints = stream.read<uint32_t>();
if (!CodeRangesToEntryPoints) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: CodeRangesToEntryPoints");
+ LIEF_DEBUG(
+ "Failed to read Compiled Hybrid Metadata[ARM64]: CodeRangesToEntryPoints"
+ );
return nullptr;
}
auto RedirectionMetadata = stream.read<uint32_t>();
if (!RedirectionMetadata) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: RedirectionMetadata");
+ LIEF_DEBUG(
+ "Failed to read Compiled Hybrid Metadata[ARM64]: RedirectionMetadata"
+ );
return nullptr;
}
auto __os_arm64x_dispatch_call_no_redirect = stream.read<uint32_t>();
if (!__os_arm64x_dispatch_call_no_redirect) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: __os_arm64x_dispatch_call_no_redirect");
+ LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: "
+ "__os_arm64x_dispatch_call_no_redirect");
return nullptr;
}
auto __os_arm64x_dispatch_ret = stream.read<uint32_t>();
if (!__os_arm64x_dispatch_ret) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: __os_arm64x_dispatch_ret");
+ LIEF_DEBUG(
+ "Failed to read Compiled Hybrid Metadata[ARM64]: __os_arm64x_dispatch_ret"
+ );
return nullptr;
}
auto __os_arm64x_dispatch_call = stream.read<uint32_t>();
if (!__os_arm64x_dispatch_call) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: __os_arm64x_dispatch_call");
+ LIEF_DEBUG(
+ "Failed to read Compiled Hybrid Metadata[ARM64]: __os_arm64x_dispatch_call"
+ );
return nullptr;
}
auto __os_arm64x_dispatch_icall = stream.read<uint32_t>();
if (!__os_arm64x_dispatch_icall) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: __os_arm64x_dispatch_icall");
+ LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: "
+ "__os_arm64x_dispatch_icall");
return nullptr;
}
auto __os_arm64x_dispatch_icall_cfg = stream.read<uint32_t>();
if (!__os_arm64x_dispatch_icall_cfg) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: __os_arm64x_dispatch_icall_cfg");
+ LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: "
+ "__os_arm64x_dispatch_icall_cfg");
return nullptr;
}
auto AlternateEntryPoint = stream.read<uint32_t>();
if (!AlternateEntryPoint) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: AlternateEntryPoint");
+ LIEF_DEBUG(
+ "Failed to read Compiled Hybrid Metadata[ARM64]: AlternateEntryPoint"
+ );
return nullptr;
}
@@ -121,25 +133,30 @@ std::unique_ptr<CHPEMetadataARM64>
auto CodeRangesToEntryPointsCount = stream.read<uint32_t>();
if (!CodeRangesToEntryPointsCount) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: CodeRangesToEntryPointsCount");
+ LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: "
+ "CodeRangesToEntryPointsCount");
return nullptr;
}
auto RedirectionMetadataCount = stream.read<uint32_t>();
if (!RedirectionMetadataCount) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: RedirectionMetadataCount");
+ LIEF_DEBUG(
+ "Failed to read Compiled Hybrid Metadata[ARM64]: RedirectionMetadataCount"
+ );
return nullptr;
}
auto GetX64InformationFunctionPointer = stream.read<uint32_t>();
if (!GetX64InformationFunctionPointer) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: GetX64InformationFunctionPointer");
+ LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: "
+ "GetX64InformationFunctionPointer");
return nullptr;
}
auto SetX64InformationFunctionPointer = stream.read<uint32_t>();
if (!SetX64InformationFunctionPointer) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: SetX64InformationFunctionPointer");
+ LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: "
+ "SetX64InformationFunctionPointer");
return nullptr;
}
@@ -151,13 +168,17 @@ std::unique_ptr<CHPEMetadataARM64>
auto ExtraRFETableSize = stream.read<uint32_t>();
if (!ExtraRFETableSize) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: ExtraRFETableSize");
+ LIEF_DEBUG(
+ "Failed to read Compiled Hybrid Metadata[ARM64]: ExtraRFETableSize"
+ );
return nullptr;
}
auto __os_arm64x_dispatch_fptr = stream.read<uint32_t>();
if (!__os_arm64x_dispatch_fptr) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: __os_arm64x_dispatch_fptr");
+ LIEF_DEBUG(
+ "Failed to read Compiled Hybrid Metadata[ARM64]: __os_arm64x_dispatch_fptr"
+ );
return nullptr;
}
@@ -169,13 +190,17 @@ std::unique_ptr<CHPEMetadataARM64>
auto AuxiliaryDelayImport = stream.read<uint32_t>();
if (!AuxiliaryDelayImport) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: AuxiliaryDelayImport");
+ LIEF_DEBUG(
+ "Failed to read Compiled Hybrid Metadata[ARM64]: AuxiliaryDelayImport"
+ );
return nullptr;
}
auto AuxiliaryDelayImportCopy = stream.read<uint32_t>();
if (!AuxiliaryDelayImportCopy) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[ARM64]: AuxiliaryDelayImportCopy");
+ LIEF_DEBUG(
+ "Failed to read Compiled Hybrid Metadata[ARM64]: AuxiliaryDelayImportCopy"
+ );
return nullptr;
}
@@ -188,29 +213,28 @@ std::unique_ptr<CHPEMetadataARM64>
auto metadata = std::make_unique<CHPEMetadataARM64>(version);
(*metadata)
- .code_map(*CodeMap)
- .code_map_count(*CodeMapCount)
- .code_ranges_to_entrypoints(*CodeRangesToEntryPoints)
- .redirection_metadata(*RedirectionMetadata)
- .os_arm64x_dispatch_call_no_redirect(*__os_arm64x_dispatch_call_no_redirect)
- .os_arm64x_dispatch_ret(*__os_arm64x_dispatch_ret)
- .os_arm64x_dispatch_call(*__os_arm64x_dispatch_call)
- .os_arm64x_dispatch_icall(*__os_arm64x_dispatch_icall)
- .os_arm64x_dispatch_icall_cfg(*__os_arm64x_dispatch_icall_cfg)
- .alternate_entry_point(*AlternateEntryPoint)
- .auxiliary_iat(*AuxiliaryIAT)
- .code_ranges_to_entry_points_count(*CodeRangesToEntryPointsCount)
- .redirection_metadata_count(*RedirectionMetadataCount)
- .get_x64_information_function_pointer(*GetX64InformationFunctionPointer)
- .set_x64_information_function_pointer(*SetX64InformationFunctionPointer)
- .extra_rfe_table(*ExtraRFETable)
- .extra_rfe_table_size(*ExtraRFETableSize)
- .os_arm64x_dispatch_fptr(*__os_arm64x_dispatch_fptr)
- .auxiliary_iat_copy(*AuxiliaryIATCopy)
- .auxiliary_delay_import(*AuxiliaryDelayImport)
- .auxiliary_delay_import_copy(*AuxiliaryDelayImportCopy)
- .bitfield_info(*BitfieldInfo)
- ;
+ .code_map(*CodeMap)
+ .code_map_count(*CodeMapCount)
+ .code_ranges_to_entrypoints(*CodeRangesToEntryPoints)
+ .redirection_metadata(*RedirectionMetadata)
+ .os_arm64x_dispatch_call_no_redirect(*__os_arm64x_dispatch_call_no_redirect)
+ .os_arm64x_dispatch_ret(*__os_arm64x_dispatch_ret)
+ .os_arm64x_dispatch_call(*__os_arm64x_dispatch_call)
+ .os_arm64x_dispatch_icall(*__os_arm64x_dispatch_icall)
+ .os_arm64x_dispatch_icall_cfg(*__os_arm64x_dispatch_icall_cfg)
+ .alternate_entry_point(*AlternateEntryPoint)
+ .auxiliary_iat(*AuxiliaryIAT)
+ .code_ranges_to_entry_points_count(*CodeRangesToEntryPointsCount)
+ .redirection_metadata_count(*RedirectionMetadataCount)
+ .get_x64_information_function_pointer(*GetX64InformationFunctionPointer)
+ .set_x64_information_function_pointer(*SetX64InformationFunctionPointer)
+ .extra_rfe_table(*ExtraRFETable)
+ .extra_rfe_table_size(*ExtraRFETableSize)
+ .os_arm64x_dispatch_fptr(*__os_arm64x_dispatch_fptr)
+ .auxiliary_iat_copy(*AuxiliaryIATCopy)
+ .auxiliary_delay_import(*AuxiliaryDelayImport)
+ .auxiliary_delay_import_copy(*AuxiliaryDelayImportCopy)
+ .bitfield_info(*BitfieldInfo);
if (metadata->code_map_count() > 0) {
if (!parse_code_map(ctx, *metadata)) {
@@ -235,18 +259,21 @@ std::unique_ptr<CHPEMetadataARM64>
ok_error_t CHPEMetadataARM64::parse_code_map(Parser& ctx,
- CHPEMetadataARM64& metadata)
-{
+ CHPEMetadataARM64& metadata) {
uint32_t offset = ctx.bin().rva_to_offset(metadata.code_map());
const size_t count = metadata.code_map_count();
ScopedStream stream(ctx.stream(), offset);
- // std::min to prevent corrupted count
- size_t reserved = std::min<size_t>(count, 15);
- metadata.range_entries_.reserve(reserved);
+ // Bound the loop to the number of 8-byte entries the stream can still provide
+ // so a corrupted count can't drive it (and the allocations) past the data.
+ const uint64_t available =
+ stream->size() - std::min<uint64_t>(stream->pos(), stream->size());
+ const uint64_t nb =
+ std::min<uint64_t>(count, available / (2 * sizeof(uint32_t)));
+ metadata.range_entries_.reserve(std::min<uint64_t>(nb, 15));
- for (size_t i = 0; i < count; ++i) {
+ for (size_t i = 0; i < nb; ++i) {
auto start_offset = stream->read<uint32_t>();
if (!start_offset) {
return make_error_code(start_offset.error());
@@ -265,17 +292,20 @@ ok_error_t CHPEMetadataARM64::parse_code_map(Parser& ctx,
ok_error_t CHPEMetadataARM64::parse_redirections(Parser& ctx,
- CHPEMetadataARM64& metadata)
-{
+ CHPEMetadataARM64& metadata) {
uint32_t offset = ctx.bin().rva_to_offset(metadata.redirection_metadata());
const size_t count = metadata.redirection_metadata_count();
ScopedStream stream(ctx.stream(), offset);
- // std::min to prevent corrupted count
- size_t reserved = std::min<size_t>(count, 15);
- metadata.redirection_entries_.reserve(reserved);
-
- for (size_t i = 0; i < count; ++i) {
+ // Bound the loop to the number of 8-byte entries the stream can still provide
+ // so a corrupted count can't drive it (and the allocations) past the data.
+ const uint64_t available =
+ stream->size() - std::min<uint64_t>(stream->pos(), stream->size());
+ const uint64_t nb =
+ std::min<uint64_t>(count, available / (2 * sizeof(uint32_t)));
+ metadata.redirection_entries_.reserve(std::min<uint64_t>(nb, 15));
+
+ for (size_t i = 0; i < nb; ++i) {
auto src = stream->read<uint32_t>();
if (!src) {
return make_error_code(src.error());
@@ -292,15 +322,20 @@ ok_error_t CHPEMetadataARM64::parse_redirections(Parser& ctx,
}
ok_error_t CHPEMetadataARM64::parse_code_ranges_to_entry_points(
- Parser& ctx, CHPEMetadataARM64& metadata)
-{
+ Parser& ctx, CHPEMetadataARM64& metadata
+) {
uint32_t offset = ctx.bin().rva_to_offset(metadata.code_ranges_to_entrypoints());
const size_t count = metadata.code_ranges_to_entry_points_count();
ScopedStream stream(ctx.stream(), offset);
- // std::min to prevent corrupted count
- size_t reserved = std::min<size_t>(count, 15);
- metadata.redirection_entries_.reserve(reserved);
+ // Each entry is 3 x 4-byte fields (see the struct below). Bound the loop to
+ // what the stream can still provide so a corrupted count can't drive it (and
+ // the allocations) past the data.
+ const uint64_t available =
+ stream->size() - std::min<uint64_t>(stream->pos(), stream->size());
+ const uint64_t nb =
+ std::min<uint64_t>(count, available / (3 * sizeof(uint32_t)));
+ metadata.code_range_entry_point_entries_.reserve(std::min<uint64_t>(nb, 15));
// Definition in ntimage.h:
//
@@ -311,7 +346,7 @@ ok_error_t CHPEMetadataARM64::parse_code_ranges_to_entry_points(
// ULONG EntryPoint;
// } IMAGE_ARM64EC_CODE_RANGE_ENTRY_POINT;
// ```
- for (size_t i = 0; i < count; ++i) {
+ for (size_t i = 0; i < nb; ++i) {
auto StartRva = stream->read<uint32_t>();
if (!StartRva) {
LIEF_DEBUG("Failed to read IMAGE_ARM64EC_CODE_RANGE_ENTRY_POINT.StartRva");
@@ -331,7 +366,7 @@ ok_error_t CHPEMetadataARM64::parse_code_ranges_to_entry_points(
}
metadata.code_range_entry_point_entries_.push_back(
- code_range_entry_point_t{*StartRva, *EndRva, *EntryPoint}
+ code_range_entry_point_t{*StartRva, *EndRva, *EntryPoint}
);
}
return ok();
@@ -339,68 +374,77 @@ ok_error_t CHPEMetadataARM64::parse_code_ranges_to_entry_points(
std::string CHPEMetadataARM64::to_string() const {
- using namespace fmt;
static constexpr auto WIDTH = 19;
std::ostringstream oss;
- oss << format("{:>{}} Version\n", version(), WIDTH);
- oss << format("{:>#{}x} Arm64X dispatch call function pointer (no redirection)\n",
- os_arm64x_dispatch_call_no_redirect(), WIDTH);
- oss << format("{:>#{}x} Arm64X dispatch return function pointer\n",
- os_arm64x_dispatch_ret(), WIDTH);
- oss << format("{:>#{}x} Arm64X dispatch call function pointer\n",
- os_arm64x_dispatch_call(), WIDTH);
- oss << format("{:>#{}x} Arm64X dispatch indirect call function pointer\n",
- os_arm64x_dispatch_icall(), WIDTH);
- oss << format("{:>#{}x} Arm64X dispatch indirect call function pointer (with CFG check)\n",
- os_arm64x_dispatch_icall_cfg(), WIDTH);
- oss << format("{:>#{}x} Arm64X alternative entry point\n",
- alternate_entry_point(), WIDTH);
- oss << format("{:>#{}x} Arm64X auxiliary import address table\n",
- auxiliary_iat(), WIDTH);
- oss << format("{:>#{}x} Get x64 information function pointer\n",
- get_x64_information_function_pointer(), WIDTH);
- oss << format("{:>#{}x} Set x64 information function pointer\n",
- set_x64_information_function_pointer(), WIDTH);
- oss << format("{:>{}} Arm64X x64 code ranges to entry points table\n",
- format("{:#x}[{}]", code_ranges_to_entrypoints(),
- code_ranges_to_entry_points_count()), WIDTH);
- oss << format("{:>{}} Arm64X arm64x redirection metadata table\n",
- format("{:#x}[{}]", redirection_metadata(),
- redirection_metadata_count()), WIDTH);
- oss << format("{:>{}} Arm64X extra RFE table\n",
- format("{:#x}[{:#x}]", extra_rfe_table(),
- extra_rfe_table_size()), WIDTH);
- oss << format("{:>#{}x} Arm64X dispatch function pointer\n",
- os_arm64x_dispatch_fptr(), WIDTH);
- oss << format("{:>#{}x} Arm64X copy of auxiliary import address table\n",
- auxiliary_iat_copy(), WIDTH);
- oss << format("{:>#{}x} Arm64X auxiliary delayload import address table\n",
- auxiliary_delay_import(), WIDTH);
- oss << format("{:>#{}x} Arm64X auxiliary delayload import address table copy\n",
- auxiliary_delay_import_copy(), WIDTH);
- oss << format("{:>#{}x} Arm64X hybrid image info bitfield\n",
- bitfield_info(), WIDTH);
+ oss << fmt::format("{:>{}} Version\n", version(), WIDTH);
+ oss << fmt::format(
+ "{:>#{}x} Arm64X dispatch call function pointer (no redirection)\n",
+ os_arm64x_dispatch_call_no_redirect(), WIDTH
+ );
+ oss << fmt::format("{:>#{}x} Arm64X dispatch return function pointer\n",
+ os_arm64x_dispatch_ret(), WIDTH);
+ oss << fmt::format("{:>#{}x} Arm64X dispatch call function pointer\n",
+ os_arm64x_dispatch_call(), WIDTH);
+ oss << fmt::format("{:>#{}x} Arm64X dispatch indirect call function pointer\n",
+ os_arm64x_dispatch_icall(), WIDTH);
+ oss << fmt::format(
+ "{:>#{}x} Arm64X dispatch indirect call function pointer (with CFG check)\n",
+ os_arm64x_dispatch_icall_cfg(), WIDTH
+ );
+ oss << fmt::format("{:>#{}x} Arm64X alternative entry point\n",
+ alternate_entry_point(), WIDTH);
+ oss << fmt::format("{:>#{}x} Arm64X auxiliary import address table\n",
+ auxiliary_iat(), WIDTH);
+ oss << fmt::format("{:>#{}x} Get x64 information function pointer\n",
+ get_x64_information_function_pointer(), WIDTH);
+ oss << fmt::format("{:>#{}x} Set x64 information function pointer\n",
+ set_x64_information_function_pointer(), WIDTH);
+ oss << fmt::format("{:>{}} Arm64X x64 code ranges to entry points table\n",
+ fmt::format("{:#x}[{}]", code_ranges_to_entrypoints(),
+ code_ranges_to_entry_points_count()),
+ WIDTH);
+ oss << fmt::format("{:>{}} Arm64X arm64x redirection metadata table\n",
+ fmt::format("{:#x}[{}]", redirection_metadata(),
+ redirection_metadata_count()),
+ WIDTH);
+ oss << fmt::format(
+ "{:>{}} Arm64X extra RFE table\n",
+ fmt::format("{:#x}[{:#x}]", extra_rfe_table(), extra_rfe_table_size()), WIDTH
+ );
+ oss << fmt::format("{:>#{}x} Arm64X dispatch function pointer\n",
+ os_arm64x_dispatch_fptr(), WIDTH);
+ oss << fmt::format("{:>#{}x} Arm64X copy of auxiliary import address table\n",
+ auxiliary_iat_copy(), WIDTH);
+ oss << fmt::format("{:>#{}x} Arm64X auxiliary delayload import address table\n",
+ auxiliary_delay_import(), WIDTH);
+ oss << fmt::format(
+ "{:>#{}x} Arm64X auxiliary delayload import address table copy\n",
+ auxiliary_delay_import_copy(), WIDTH
+ );
+ oss << fmt::format("{:>#{}x} Arm64X hybrid image info bitfield\n",
+ bitfield_info(), WIDTH);
if (!range_entries_.empty()) {
oss << "Address Range:\n";
for (const range_entry_t& entry : code_ranges()) {
- oss << format("{:>10} [0x{:08x}, 0x{:08x}]\n",
- LIEF::PE::to_string(entry.type()), entry.start(), entry.end());
+ oss << fmt::format("{:>10} [{:#010x}, {:#010x}]\n",
+ LIEF::PE::to_string(entry.type()), entry.start(),
+ entry.end());
}
}
if (!redirection_entries_.empty()) {
oss << "Arm64X Redirection Metadata Table:\n";
for (const redirection_entry_t& entry : redirections()) {
- oss << format(" 0x{:08x} --> 0x{:08x}\n", entry.src, entry.dst);
+ oss << fmt::format(" {:#010x} --> {:#010x}\n", entry.src, entry.dst);
}
}
if (!code_range_entry_point_entries_.empty()) {
oss << "Arm64X X64 Code Ranges to Entrypoint:\n";
for (const code_range_entry_point_t& entry : code_range_entry_point()) {
- oss << format(" [0x{:08x}, 0x{:08x}] --> 0x{:08x}\n",
- entry.start_rva, entry.end_rva, entry.entrypoint);
+ oss << fmt::format(" [{:#010x}, {:#010x}] --> {:#010x}\n", entry.start_rva,
+ entry.end_rva, entry.entrypoint);
}
}
diff --git a/deps/LIEF/src/PE/LoadConfigurations/CHPEMetadata/MetadataX86.cpp b/deps/LIEF/src/PE/LoadConfigurations/CHPEMetadata/MetadataX86.cpp
index d1bc2dd1b09..bba781b3e65 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/CHPEMetadata/MetadataX86.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/CHPEMetadata/MetadataX86.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,9 +23,9 @@
#include "logging.hpp"
namespace LIEF::PE {
-std::unique_ptr<CHPEMetadataX86>
- CHPEMetadataX86::parse(Parser&/*ctx*/, BinaryStream& stream, uint32_t version)
-{
+std::unique_ptr<CHPEMetadataX86> CHPEMetadataX86::parse(Parser& /*ctx*/,
+ BinaryStream& stream,
+ uint32_t version) {
// The structure defining Hybrid metadata for X86 is located in
// `ntimage.h` and named: `IMAGE_CHPE_METADATA_X86`
//
@@ -46,71 +46,89 @@ std::unique_ptr<CHPEMetadataX86>
auto CHPECodeAddressRangeOffset = stream.read<uint32_t>();
if (!CHPECodeAddressRangeOffset) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: CHPECodeAddressRangeOffset");
+ LIEF_DEBUG(
+ "Failed to read Compiled Hybrid Metadata[X86]: CHPECodeAddressRangeOffset"
+ );
return nullptr;
}
auto CHPECodeAddressRangeCount = stream.read<uint32_t>();
if (!CHPECodeAddressRangeCount) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: CHPECodeAddressRangeCount");
+ LIEF_DEBUG(
+ "Failed to read Compiled Hybrid Metadata[X86]: CHPECodeAddressRangeCount"
+ );
return nullptr;
}
auto WowA64ExceptionHandlerFunctionPointer = stream.read<uint32_t>();
if (!WowA64ExceptionHandlerFunctionPointer) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: WowA64ExceptionHandlerFunctionPointer");
+ LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: "
+ "WowA64ExceptionHandlerFunctionPointer");
return nullptr;
}
auto WowA64DispatchCallFunctionPointer = stream.read<uint32_t>();
if (!WowA64DispatchCallFunctionPointer) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: WowA64DispatchCallFunctionPointer");
+ LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: "
+ "WowA64DispatchCallFunctionPointer");
return nullptr;
}
auto WowA64DispatchIndirectCallFunctionPointer = stream.read<uint32_t>();
if (!WowA64DispatchIndirectCallFunctionPointer) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: WowA64DispatchIndirectCallFunctionPointer");
+ LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: "
+ "WowA64DispatchIndirectCallFunctionPointer");
return nullptr;
}
auto WowA64DispatchIndirectCallCfgFunctionPointer = stream.read<uint32_t>();
if (!WowA64DispatchIndirectCallCfgFunctionPointer) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: WowA64DispatchIndirectCallCfgFunctionPointer");
+ LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: "
+ "WowA64DispatchIndirectCallCfgFunctionPointer");
return nullptr;
}
auto WowA64DispatchRetFunctionPointer = stream.read<uint32_t>();
if (!WowA64DispatchRetFunctionPointer) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: WowA64DispatchRetFunctionPointer");
+ LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: "
+ "WowA64DispatchRetFunctionPointer");
return nullptr;
}
auto WowA64DispatchRetLeafFunctionPointer = stream.read<uint32_t>();
if (!WowA64DispatchRetLeafFunctionPointer) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: WowA64DispatchRetLeafFunctionPointer");
+ LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: "
+ "WowA64DispatchRetLeafFunctionPointer");
return nullptr;
}
auto WowA64DispatchJumpFunctionPointer = stream.read<uint32_t>();
if (!WowA64DispatchJumpFunctionPointer) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: WowA64DispatchJumpFunctionPointer");
+ LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: "
+ "WowA64DispatchJumpFunctionPointer");
return nullptr;
}
auto metadata = std::make_unique<CHPEMetadataX86>(version);
(*metadata)
- .chpe_code_address_range_offset(*CHPECodeAddressRangeOffset)
- .chpe_code_address_range_count(*CHPECodeAddressRangeCount)
- .wowa64_exception_handler_function_pointer(*WowA64ExceptionHandlerFunctionPointer)
- .wowa64_dispatch_call_function_pointer(*WowA64DispatchCallFunctionPointer)
- .wowa64_dispatch_indirect_call_function_pointer(*WowA64DispatchIndirectCallFunctionPointer)
- .wowa64_dispatch_indirect_call_cfg_function_pointer(*WowA64DispatchIndirectCallCfgFunctionPointer)
- .wowa64_dispatch_ret_function_pointer(*WowA64DispatchRetFunctionPointer)
- .wowa64_dispatch_ret_leaf_function_pointer(*WowA64DispatchRetLeafFunctionPointer)
- .wowa64_dispatch_jump_function_pointer(*WowA64DispatchJumpFunctionPointer)
- ;
+ .chpe_code_address_range_offset(*CHPECodeAddressRangeOffset)
+ .chpe_code_address_range_count(*CHPECodeAddressRangeCount)
+ .wowa64_exception_handler_function_pointer(
+ *WowA64ExceptionHandlerFunctionPointer
+ )
+ .wowa64_dispatch_call_function_pointer(*WowA64DispatchCallFunctionPointer)
+ .wowa64_dispatch_indirect_call_function_pointer(
+ *WowA64DispatchIndirectCallFunctionPointer
+ )
+ .wowa64_dispatch_indirect_call_cfg_function_pointer(
+ *WowA64DispatchIndirectCallCfgFunctionPointer
+ )
+ .wowa64_dispatch_ret_function_pointer(*WowA64DispatchRetFunctionPointer)
+ .wowa64_dispatch_ret_leaf_function_pointer(
+ *WowA64DispatchRetLeafFunctionPointer
+ )
+ .wowa64_dispatch_jump_function_pointer(*WowA64DispatchJumpFunctionPointer);
if (version < 2) {
return metadata;
@@ -128,43 +146,47 @@ std::unique_ptr<CHPEMetadataX86>
auto WowA64RdtscFunctionPointer = stream.read<uint32_t>();
if (!WowA64RdtscFunctionPointer) {
- LIEF_DEBUG("Failed to read Compiled Hybrid Metadata[X86]: WowA64RdtscFunctionPointer");
+ LIEF_DEBUG(
+ "Failed to read Compiled Hybrid Metadata[X86]: WowA64RdtscFunctionPointer"
+ );
return metadata;
}
return metadata;
}
std::string CHPEMetadataX86::to_string() const {
- using namespace fmt;
static constexpr auto WIDTH = 19;
std::ostringstream oss;
- oss << format("{:>{}} Version\n", version(), WIDTH);
- oss << format("{:>#{}x} WowA64 exception handler function pointer\n",
- wowa64_exception_handler_function_pointer(), WIDTH)
- << format("{:>#{}x} WowA64 dispatch call function pointer\n",
- wowa64_dispatch_call_function_pointer(), WIDTH)
- << format("{:>#{}x} WowA64 dispatch indirect call function pointer\n",
- wowa64_dispatch_indirect_call_function_pointer(), WIDTH)
- << format("{:>#{}x} WowA64 dispatch indirect call function pointer (with CFG check)\n",
- wowa64_dispatch_indirect_call_cfg_function_pointer(), WIDTH)
- << format("{:>#{}x} WowA64 dispatch return function pointer\n",
- wowa64_dispatch_ret_function_pointer(), WIDTH)
- << format("{:>#{}x} WowA64 dispatch leaf return function pointer\n",
- wowa64_dispatch_ret_leaf_function_pointer(), WIDTH)
- << format("{:>#{}x} WowA64 dispatch jump function pointer\n",
- wowa64_dispatch_jump_function_pointer(), WIDTH)
- << format("{:>{}} Hybrid code address range\n",
- format("{:#x}[{:#x}]", chpe_code_address_range_offset(),
- chpe_code_address_range_count()), WIDTH);
+ oss << fmt::format("{:>{}} Version\n", version(), WIDTH);
+ oss << fmt::format("{:>#{}x} WowA64 exception handler function pointer\n",
+ wowa64_exception_handler_function_pointer(), WIDTH)
+ << fmt::format("{:>#{}x} WowA64 dispatch call function pointer\n",
+ wowa64_dispatch_call_function_pointer(), WIDTH)
+ << fmt::format("{:>#{}x} WowA64 dispatch indirect call function pointer\n",
+ wowa64_dispatch_indirect_call_function_pointer(), WIDTH)
+ << fmt::format(
+ "{:>#{}x} WowA64 dispatch indirect call function pointer (with "
+ "CFG check)\n",
+ wowa64_dispatch_indirect_call_cfg_function_pointer(), WIDTH
+ )
+ << fmt::format("{:>#{}x} WowA64 dispatch return function pointer\n",
+ wowa64_dispatch_ret_function_pointer(), WIDTH)
+ << fmt::format("{:>#{}x} WowA64 dispatch leaf return function pointer\n",
+ wowa64_dispatch_ret_leaf_function_pointer(), WIDTH)
+ << fmt::format("{:>#{}x} WowA64 dispatch jump function pointer\n",
+ wowa64_dispatch_jump_function_pointer(), WIDTH)
+ << fmt::format("{:>{}} Hybrid code address range\n",
+ fmt::format("{:#x}[{:#x}]", chpe_code_address_range_offset(),
+ chpe_code_address_range_count()),
+ WIDTH);
if (auto opt = compiler_iat_pointer()) {
- oss << format("{:>#{}x} WowA64 auxiliary import address table pointer\n",
- *opt, WIDTH);
+ oss << fmt::format("{:>#{}x} WowA64 auxiliary import address table pointer\n",
+ *opt, WIDTH);
}
if (auto opt = wowa64_rdtsc_function_pointer()) {
- oss << format("{:>#{}x} WowA64 RDTSC function pointer\n",
- *opt, WIDTH);
+ oss << fmt::format("{:>#{}x} WowA64 RDTSC function pointer\n", *opt, WIDTH);
}
std::string output = oss.str();
output.pop_back();
diff --git a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixup.cpp b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixup.cpp
index d7e611e76e4..ee45023c340 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixup.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixup.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,7 +29,8 @@ namespace LIEF::PE {
using IMAGE_DYNAMIC_RELOCATION = DynamicRelocation::IMAGE_DYNAMIC_RELOCATION;
-ok_error_t DynamicFixup::parse(Parser& ctx, SpanStream& stream, DynamicRelocation& R) {
+ok_error_t DynamicFixup::parse(Parser& ctx, SpanStream& stream,
+ DynamicRelocation& R) {
auto default_ret = std::make_unique<DynamicFixupUnknown>(stream.content());
if (R.symbol() == IMAGE_DYNAMIC_RELOCATION::RELOCATION_FUNCTION_OVERRIDE) {
LIEF_DEBUG("IMAGE_DYNAMIC_RELOCATION_FUNCTION_OVERRIDE");
@@ -55,7 +56,9 @@ ok_error_t DynamicFixup::parse(Parser& ctx, SpanStream& stream, DynamicRelocatio
return make_error_code(lief_errors::parsing_error);
}
- if (R.symbol() == IMAGE_DYNAMIC_RELOCATION::RELOCATION_ARM64_KERNEL_IMPORT_CALL_TRANSFER) {
+ if (R.symbol() ==
+ IMAGE_DYNAMIC_RELOCATION::RELOCATION_ARM64_KERNEL_IMPORT_CALL_TRANSFER)
+ {
// Note(romain): According to link.exe there is a special processing for
// this symbol (c.f. 0x140164140 in link.exe from 14.42.34433)
//
@@ -70,7 +73,9 @@ ok_error_t DynamicFixup::parse(Parser& ctx, SpanStream& stream, DynamicRelocatio
return make_error_code(lief_errors::parsing_error);
}
- if (R.symbol() == IMAGE_DYNAMIC_RELOCATION::RELOCATION_GUARD_IMPORT_CONTROL_TRANSFER) {
+ if (R.symbol() ==
+ IMAGE_DYNAMIC_RELOCATION::RELOCATION_GUARD_IMPORT_CONTROL_TRANSFER)
+ {
LIEF_DEBUG("IMAGE_DYNAMIC_RELOCATION_GUARD_IMPORT_CONTROL_TRANSFER");
auto fixups = DynamicFixupControlTransfer::parse(ctx, stream);
if (fixups != nullptr) {
diff --git a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64Kernel.cpp b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64Kernel.cpp
index 49a7c2b0271..e678187c7eb 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64Kernel.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64Kernel.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,35 +24,39 @@ namespace LIEF::PE {
namespace details {
// From SDK: 10.0.26100.0
// typedef struct _IMAGE_IMPORT_CONTROL_TRANSFER_ARM64_RELOCATION {
-// +00,00 | ULONG PageRelativeOffset : 10; // Offset to the call instruction shifted right by 2 (4-byte aligned instruction)
-// +10,0A | ULONG IndirectCall : 1; // 0 if target instruction is a BR, 1 if BLR.
-// +11,0B | ULONG RegisterIndex : 5; // Register index used for the indirect call/jump.
-// +16,10 | ULONG ImportType : 1; // 0 if this refers to a static import, 1 for delayload import
-// +17,11 | ULONG IATIndex : 15; // IAT index of the corresponding import.
-// // 0x7FFF is a special value indicating no index.
+// +00,00 | ULONG PageRelativeOffset : 10; // Offset to the call instruction
+// shifted right by 2 (4-byte aligned instruction) +10,0A | ULONG IndirectCall :
+// 1; // 0 if target instruction is a BR, 1 if BLR. +11,0B | ULONG RegisterIndex
+// : 5; // Register index used for the indirect call/jump. +16,10 | ULONG
+// ImportType : 1; // 0 if this refers to a static import, 1 for
+// delayload import +17,11 | ULONG IATIndex : 15; // IAT index of the
+// corresponding import.
+// // 0x7FFF is a special value indicating no
+// index.
// } IMAGE_IMPORT_CONTROL_TRANSFER_ARM64_RELOCATION;
-// typedef IMAGE_IMPORT_CONTROL_TRANSFER_ARM64_RELOCATION UNALIGNED * PIMAGE_IMPORT_CONTROL_TRANSFER_ARM64_RELOCATION;
+// typedef IMAGE_IMPORT_CONTROL_TRANSFER_ARM64_RELOCATION UNALIGNED *
+// PIMAGE_IMPORT_CONTROL_TRANSFER_ARM64_RELOCATION;
struct arm64e_kernel_reloc_t {
uint32_t page_relative_offset : 10;
- uint32_t indirect_call : 1;
- uint32_t register_index : 5;
- uint32_t import_type : 1;
- uint32_t iat_index : 15;
+ uint32_t indirect_call : 1;
+ uint32_t register_index : 5;
+ uint32_t import_type : 1;
+ uint32_t iat_index : 15;
};
static_assert(sizeof(arm64e_kernel_reloc_t) == sizeof(uint32_t));
}
std::string DynamicFixupARM64Kernel::reloc_entry_t::to_string() const {
- using namespace fmt;
- return format("RVA: 0x{:08x} Instr: {:8} delayload: {} IAT index: {:04d}",
- rva, format("{} x{}", indirect_call ? "blr" : "br", register_index),
- import_type == IMPORT_TYPE::DELAYED, iat_index);
+ return fmt::format(
+ "RVA: {:#010x} Instr: {:8} delayload: {} IAT index: {:04d}", rva,
+ fmt::format("{} x{}", indirect_call ? "blr" : "br", register_index),
+ import_type == IMPORT_TYPE::DELAYED, iat_index
+ );
}
std::unique_ptr<DynamicFixupARM64Kernel>
- DynamicFixupARM64Kernel::parse(Parser& /*ctx*/, SpanStream& strm)
-{
+ DynamicFixupARM64Kernel::parse(Parser& /*ctx*/, SpanStream& strm) {
auto fixup = std::make_unique<DynamicFixupARM64Kernel>();
while (strm) {
auto PageRVA = strm.read<uint32_t>();
@@ -86,28 +90,30 @@ std::unique_ptr<DynamicFixupARM64Kernel>
}
const uint32_t rva = *PageRVA + (value->page_relative_offset << 2);
fixup->entries_.push_back({
- /* rva */rva,
- /* indirect_call */(bool)value->indirect_call,
- /* register_index */(uint8_t)value->register_index,
- /* import_type */(IMPORT_TYPE)value->import_type,
- /* iat_index */(uint16_t)value->iat_index,
+ /* rva */ rva,
+ /* indirect_call */ (bool)value->indirect_call,
+ /* register_index */ (uint8_t)value->register_index,
+ /* import_type */ (IMPORT_TYPE)value->import_type,
+ /* iat_index */ (uint16_t)value->iat_index,
});
- LIEF_DEBUG("PAGE=0x{:010x} RVA: 0x{:06x} IndirectCall: {}, RegIndex: {}, ImportType: {}, "
- "IATIndex: {}", *PageRVA, *PageRVA + (value->page_relative_offset << 2), value->indirect_call,
- value->register_index, value->import_type, value->iat_index);
+ LIEF_DEBUG("PAGE={:#012x} RVA: {:#08x} IndirectCall: {}, RegIndex: {}, "
+ "ImportType: {}, "
+ "IATIndex: {}",
+ *PageRVA, *PageRVA + (value->page_relative_offset << 2),
+ value->indirect_call, value->register_index, value->import_type,
+ value->iat_index);
}
}
return fixup;
}
std::string DynamicFixupARM64Kernel::to_string() const {
- using namespace fmt;
std::ostringstream oss;
oss << "Fixup RVAs (Control Transfer ARM64 Relocation)\n";
for (size_t i = 0; i < entries_.size(); ++i) {
const reloc_entry_t& entry = entries_[i];
- oss << format(" [{:04d}] {}\n", i, entry.to_string());
+ oss << fmt::format(" [{:04d}] {}\n", i, entry.to_string());
}
return oss.str();
}
diff --git a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64X.cpp b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64X.cpp
index 44c12ca5069..a63ff9af405 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64X.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupARM64X.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,24 +32,23 @@ namespace details {
// } IMAGE_DVRT_ARM64X_FIXUP_RECORD, *PIMAGE_DVRT_ARM64X_FIXUP_RECORD;
struct fixup_record {
uint16_t offset : 12;
- uint16_t type : 2;
- uint16_t size : 2;
+ uint16_t type : 2;
+ uint16_t size : 2;
};
static_assert(sizeof(fixup_record) == sizeof(uint16_t));
struct delta_record {
uint16_t offset : 12;
- uint16_t type : 2;
- uint16_t sign : 1;
- uint16_t scale : 1;
+ uint16_t type : 2;
+ uint16_t sign : 1;
+ uint16_t scale : 1;
};
}
-std::unique_ptr<DynamicFixupARM64X>
- DynamicFixupARM64X::parse(Parser& ctx, SpanStream& strm)
-{
+std::unique_ptr<DynamicFixupARM64X> DynamicFixupARM64X::parse(Parser& ctx,
+ SpanStream& strm) {
auto arm64x = std::make_unique<DynamicFixupARM64X>();
while (strm) {
auto PageRVA = strm.read<uint32_t>();
@@ -68,6 +67,11 @@ std::unique_ptr<DynamicFixupARM64X>
continue;
}
+ if (*BlockSize < 8) {
+ LIEF_WARN("Unexpected BlockSize");
+ break;
+ }
+
auto block_strm = strm.slice(strm.pos(), (*BlockSize - 8));
if (!block_strm) {
LIEF_DEBUG("Error: {}:{}", __FUNCTION__, __LINE__);
@@ -86,65 +90,75 @@ std::unique_ptr<DynamicFixupARM64X>
switch ((FIXUP_TYPE)record->type) {
case FIXUP_TYPE::ZEROFILL:
- {
- arm64x->entries_.push_back({
- /*rva=*/RVA, /*type=*/FIXUP_TYPE::ZEROFILL,
- /*size=*/size_t(1) << record->size, /*bytes=*/{},
+ {
+ arm64x->entries_.push_back({
+ /*rva=*/RVA,
+ /*type=*/FIXUP_TYPE::ZEROFILL,
+ /*size=*/size_t(1) << record->size,
+ /*bytes=*/{},
/*value=*/0,
- });
- break;
- }
+ });
+ break;
+ }
case FIXUP_TYPE::VALUE:
- {
- std::vector<uint8_t> data;
- const size_t size = 1 << record->size;
- if (!block_strm->read_data(data, size)) {
- LIEF_WARN("Can't read data associated with 'IMAGE_DVRT_ARM64X_FIXUP_TYPE_VALUE");
- break;
- }
- arm64x->entries_.push_back({
- /*rva=*/RVA, /*type=*/FIXUP_TYPE::VALUE,
- /*size=*/size, /*bytes=*/std::move(data),
+ {
+ std::vector<uint8_t> data;
+ const size_t size = 1 << record->size;
+ if (!block_strm->read_data(data, size)) {
+ LIEF_WARN(
+ "Failed to read data for IMAGE_DVRT_ARM64X_FIXUP_TYPE_VALUE"
+ );
+ break;
+ }
+ arm64x->entries_.push_back({
+ /*rva=*/RVA,
+ /*type=*/FIXUP_TYPE::VALUE,
+ /*size=*/size,
+ /*bytes=*/std::move(data),
/*value=*/0,
- });
+ });
- const auto& entry = arm64x->entries_.back();
- if (ctx.config().parse_arm64x_binary) {
- ctx.record_relocation(entry.rva, entry.bytes);
- }
- break;
+ const auto& entry = arm64x->entries_.back();
+ if (ctx.config().parse_arm64x_binary) {
+ ctx.record_relocation(entry.rva, entry.bytes);
}
+ break;
+ }
case FIXUP_TYPE::DELTA:
- {
- auto value = block_strm->read<uint16_t>();
- if (!value) {
- LIEF_WARN("Can't read value for IMAGE_DVRT_ARM64X_FIXUP_TYPE_DELTA");
- break;
- }
-
- auto& opt = *reinterpret_cast<const details::delta_record*>(&*record);
- const uint8_t size = (opt.scale ? 8llu : 4llu);
- int64_t delta = (uint64_t)(*value) * size;
- arm64x->entries_.push_back({
- /*rva=*/RVA, /*type=*/FIXUP_TYPE::DELTA,
- /*size=*/size, /*bytes=*/{},
- /*value=*/opt.sign ? -delta : delta,
- });
- const auto& entry = arm64x->entries_.back();
- if (ctx.config().parse_arm64x_binary) {
- ctx.record_delta_relocation(entry.rva, entry.value, size);
- }
+ {
+ auto value = block_strm->read<uint16_t>();
+ if (!value) {
+ LIEF_WARN(
+ "Failed to read value for IMAGE_DVRT_ARM64X_FIXUP_TYPE_DELTA"
+ );
break;
}
- default:
- {
- LIEF_WARN("Unsupported fixup type: {} (0x{:06x})",
- (int)record->type, (int)record->type);
- break;
+ auto& opt = *reinterpret_cast<const details::delta_record*>(&*record);
+ const uint8_t size = (opt.scale ? 8llu : 4llu);
+ int64_t delta = (uint64_t)(*value) * size;
+ arm64x->entries_.push_back({
+ /*rva=*/RVA,
+ /*type=*/FIXUP_TYPE::DELTA,
+ /*size=*/size,
+ /*bytes=*/{},
+ /*value=*/opt.sign ? -delta : delta,
+ });
+ const auto& entry = arm64x->entries_.back();
+ if (ctx.config().parse_arm64x_binary) {
+ ctx.record_delta_relocation(entry.rva, entry.value, size);
}
+ break;
+ }
+
+ default:
+ {
+ LIEF_WARN("Unsupported fixup type: {} ({:#08x})", (int)record->type,
+ (int)record->type);
+ break;
+ }
}
}
}
@@ -153,29 +167,27 @@ std::unique_ptr<DynamicFixupARM64X>
}
std::string DynamicFixupARM64X::reloc_entry_t::to_string() const {
- using namespace fmt;
switch (type) {
case FIXUP_TYPE::ZEROFILL:
- return format("RVA 0x{:08x}, {} bytes, zero fill", rva, size);
+ return fmt::format("RVA {:#010x}, {} bytes, zero fill", rva, size);
case FIXUP_TYPE::VALUE:
- return format("RVA 0x{:08x}, {} bytes, target value {}",
- rva, bytes.size(), hex_dump(bytes));
+ return fmt::format("RVA {:#010x}, {} bytes, target value {}", rva,
+ bytes.size(), hex_dump(bytes));
case FIXUP_TYPE::DELTA:
- return format("RVA 0x{:08x}, {} bytes, delta 0x{:08x}",
- rva, size, value);
+ return fmt::format("RVA {:#010x}, {} bytes, delta {:#010x}", rva, size,
+ value);
}
return "<unknown>";
}
std::string DynamicFixupARM64X::to_string() const {
- using namespace fmt;
std::ostringstream oss;
oss << "Fixup RVAs (ARM64X)\n";
for (size_t i = 0; i < entries_.size(); ++i) {
const reloc_entry_t& entry = entries_[i];
- oss << format(" [{:04d}] {}\n", i, entry.to_string());
+ oss << fmt::format(" [{:04d}] {}\n", i, entry.to_string());
}
return oss.str();
}
diff --git a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupControlTransfer.cpp b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupControlTransfer.cpp
index 52e9f37d276..53593331e5d 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupControlTransfer.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupControlTransfer.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,25 +27,24 @@ namespace details {
// DWORD IndirectCall : 1;
// DWORD IATIndex : 19;
// } IMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION;
-// typedef IMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION UNALIGNED * PIMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION;
+// typedef IMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION UNALIGNED *
+// PIMAGE_IMPORT_CONTROL_TRANSFER_DYNAMIC_RELOCATION;
struct control_transfer_reloc_t {
uint32_t page_relative_offset : 12;
- uint32_t indirect_call : 1;
- uint32_t iat_index : 19;
+ uint32_t indirect_call : 1;
+ uint32_t iat_index : 19;
};
static_assert(sizeof(control_transfer_reloc_t) == sizeof(uint32_t));
}
std::string DynamicFixupControlTransfer::reloc_entry_t::to_string() const {
- using namespace fmt;
- return format("RVA: 0x{:08x} Instr: {:6} IAT index: {:04d}",
- rva, is_call ? "call" : "branch", iat_index);
+ return fmt::format("RVA: {:#010x} Instr: {:6} IAT index: {:04d}", rva,
+ is_call ? "call" : "branch", iat_index);
}
std::unique_ptr<DynamicFixupControlTransfer>
- DynamicFixupControlTransfer::parse(Parser& /*ctx*/, SpanStream& strm)
-{
+ DynamicFixupControlTransfer::parse(Parser& /*ctx*/, SpanStream& strm) {
auto fixup = std::make_unique<DynamicFixupControlTransfer>();
while (strm) {
auto PageRVA = strm.read<uint32_t>();
@@ -79,9 +78,9 @@ std::unique_ptr<DynamicFixupControlTransfer>
}
const uint32_t rva = *PageRVA + value->page_relative_offset;
fixup->entries_.push_back({
- /* rva */rva,
- /* indirect_call */(bool)value->indirect_call,
- /* iat_index */(uint16_t)value->iat_index,
+ /* rva */ rva,
+ /* indirect_call */ (bool)value->indirect_call,
+ /* iat_index */ (uint16_t)value->iat_index,
});
}
}
@@ -89,12 +88,11 @@ std::unique_ptr<DynamicFixupControlTransfer>
}
std::string DynamicFixupControlTransfer::to_string() const {
- using namespace fmt;
std::ostringstream oss;
oss << "Fixup RVAs (Guard Import Control Transfer)\n";
for (size_t i = 0; i < entries_.size(); ++i) {
const reloc_entry_t& entry = entries_[i];
- oss << format(" [{:04d}] {}\n", i, entry.to_string());
+ oss << fmt::format(" [{:04d}] {}\n", i, entry.to_string());
}
return oss.str();
}
diff --git a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupGeneric.cpp b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupGeneric.cpp
index b54c1daf62d..427d58ec1da 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupGeneric.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicFixupGeneric.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,28 +25,27 @@
namespace LIEF::PE {
DynamicFixupGeneric::DynamicFixupGeneric(DynamicFixupGeneric&&) = default;
-DynamicFixupGeneric& DynamicFixupGeneric::operator=(DynamicFixupGeneric&&) = default;
+DynamicFixupGeneric&
+ DynamicFixupGeneric::operator=(DynamicFixupGeneric&&) = default;
DynamicFixupGeneric::~DynamicFixupGeneric() = default;
DynamicFixupGeneric::DynamicFixupGeneric() :
- DynamicFixup(KIND::GENERIC)
-{}
+ DynamicFixup(KIND::GENERIC) {}
DynamicFixupGeneric::DynamicFixupGeneric(const DynamicFixupGeneric& other) :
- DynamicFixup(other)
-{
+ DynamicFixup(other) {
if (!other.relocations_.empty()) {
relocations_.reserve(other.relocations_.size());
std::transform(other.relocations_.begin(), other.relocations_.end(),
std::back_inserter(relocations_),
- [] (const std::unique_ptr<Relocation>& R) {
- return std::make_unique<Relocation>(*R);
- }
- );
+ [](const std::unique_ptr<Relocation>& R) {
+ return std::make_unique<Relocation>(*R);
+ });
}
}
-DynamicFixupGeneric& DynamicFixupGeneric::operator=(const DynamicFixupGeneric& other) {
+DynamicFixupGeneric&
+ DynamicFixupGeneric::operator=(const DynamicFixupGeneric& other) {
if (this == &other) {
return *this;
}
@@ -56,35 +55,31 @@ DynamicFixupGeneric& DynamicFixupGeneric::operator=(const DynamicFixupGeneric& o
relocations_.reserve(other.relocations_.size());
std::transform(other.relocations_.begin(), other.relocations_.end(),
std::back_inserter(relocations_),
- [] (const std::unique_ptr<Relocation>& R) {
- return std::make_unique<Relocation>(*R);
- }
- );
+ [](const std::unique_ptr<Relocation>& R) {
+ return std::make_unique<Relocation>(*R);
+ });
}
return *this;
}
-std::unique_ptr<DynamicFixupGeneric>
- DynamicFixupGeneric::parse(Parser& ctx, SpanStream& strm)
-{
+std::unique_ptr<DynamicFixupGeneric> DynamicFixupGeneric::parse(Parser& ctx,
+ SpanStream& strm) {
auto generic = std::make_unique<DynamicFixupGeneric>();
generic->relocations_ = Relocation::parse(ctx, strm);
return generic;
}
std::string DynamicFixupGeneric::to_string() const {
- using namespace fmt;
std::ostringstream oss;
oss << "Fixup RVAs (Generic)\n";
size_t idx = 0;
for (const Relocation& R : relocations()) {
for (const RelocationEntry& E : R.entries()) {
- oss << format(" [{:04d}] RVA: 0x{:08x} Type: {}\n", idx++, E.address(),
- PE::to_string(E.type()));
+ oss << fmt::format(" [{:04d}] RVA: {:#010x} Type: {}\n", idx++, E.address(),
+ PE::to_string(E.type()));
}
}
return oss.str();
-
}
}
diff --git a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationBase.cpp b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationBase.cpp
index 8313c10071b..15688ce9b47 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationBase.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationBase.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,13 +19,11 @@
namespace LIEF::PE {
DynamicRelocation::DynamicRelocation(uint32_t version) :
- version_(version)
-{}
+ version_(version) {}
DynamicRelocation::DynamicRelocation(const DynamicRelocation& other) :
version_(other.version_),
- symbol_(other.symbol_)
-{
+ symbol_(other.symbol_) {
if (other.fixups_ != nullptr) {
fixups_ = other.fixups_->clone();
}
@@ -57,18 +55,18 @@ DynamicRelocation& DynamicRelocation::fixups(std::unique_ptr<DynamicFixup> F) {
const char* to_string(DynamicRelocation::IMAGE_DYNAMIC_RELOCATION e) {
using IMAGE_DYNAMIC_RELOCATION = DynamicRelocation::IMAGE_DYNAMIC_RELOCATION;
- #define ENTRY(X) std::pair(IMAGE_DYNAMIC_RELOCATION::X, #X)
- STRING_MAP enums2str {
- ENTRY(RELOCATION_GUARD_RF_PROLOGUE),
- ENTRY(RELOCATION_GUARD_RF_EPILOGUE),
- ENTRY(RELOCATION_GUARD_IMPORT_CONTROL_TRANSFER),
- ENTRY(RELOCATION_GUARD_INDIR_CONTROL_TRANSFER),
- ENTRY(RELOCATION_GUARD_SWITCHTABLE_BRANCH),
- ENTRY(RELOCATION_ARM64X),
- ENTRY(RELOCATION_FUNCTION_OVERRIDE),
- ENTRY(RELOCATION_ARM64_KERNEL_IMPORT_CALL_TRANSFER),
+#define ENTRY(X) std::pair(IMAGE_DYNAMIC_RELOCATION::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(RELOCATION_GUARD_RF_PROLOGUE),
+ ENTRY(RELOCATION_GUARD_RF_EPILOGUE),
+ ENTRY(RELOCATION_GUARD_IMPORT_CONTROL_TRANSFER),
+ ENTRY(RELOCATION_GUARD_INDIR_CONTROL_TRANSFER),
+ ENTRY(RELOCATION_GUARD_SWITCHTABLE_BRANCH),
+ ENTRY(RELOCATION_ARM64X),
+ ENTRY(RELOCATION_FUNCTION_OVERRIDE),
+ ENTRY(RELOCATION_ARM64_KERNEL_IMPORT_CALL_TRANSFER),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
diff --git a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV1.cpp b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV1.cpp
index 3e5ad91313d..af57813aaf1 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV1.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV1.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,8 +29,7 @@ namespace LIEF::PE {
template<class PE_T>
std::unique_ptr<DynamicRelocationV1>
- DynamicRelocationV1::parse(Parser& ctx, BinaryStream& strm)
-{
+ DynamicRelocationV1::parse(Parser& ctx, BinaryStream& strm) {
using ptr_t = typename PE_T::uint;
// typedef struct _IMAGE_DYNAMIC_RELOCATION32 {
// DWORD Symbol;
@@ -67,21 +66,20 @@ std::unique_ptr<DynamicRelocationV1>
SpanStream payload_strm(buffer);
if (!DynamicFixup::parse(ctx, payload_strm, *dyn_reloc)) {
- LIEF_WARN("Dynamic relocation failed to parse fixup (Symbol=0x{:016x})",
+ LIEF_WARN("Dynamic relocation failed to parse fixup (Symbol={:#018x})",
dyn_reloc->symbol());
}
return dyn_reloc;
}
std::string DynamicRelocationV1::to_string() const {
- using namespace fmt;
std::ostringstream oss;
oss << "Dynamic Value Relocation Table (version: 1)\n";
if (symbol() < IMAGE_DYNAMIC_RELOCATION::_RELOC_LAST_ENTRY) {
- oss << format("Symbol VA: 0x{:016x} ({})\n", symbol(),
- PE::to_string((IMAGE_DYNAMIC_RELOCATION)symbol()));
+ oss << fmt::format("Symbol VA: {:#018x} ({})\n", symbol(),
+ PE::to_string((IMAGE_DYNAMIC_RELOCATION)symbol()));
} else {
- oss << format("Symbol VA: 0x{:016x}\n", symbol());
+ oss << fmt::format("Symbol VA: {:#018x}\n", symbol());
}
if (const DynamicFixup* F = fixups()) {
@@ -90,11 +88,9 @@ std::string DynamicRelocationV1::to_string() const {
return oss.str();
}
-template
-std::unique_ptr<DynamicRelocationV1>
- DynamicRelocationV1::parse<details::PE32>(Parser& ctx, BinaryStream&);
+template std::unique_ptr<DynamicRelocationV1>
+ DynamicRelocationV1::parse<details::PE32>(Parser& ctx, BinaryStream&);
-template
-std::unique_ptr<DynamicRelocationV1>
- DynamicRelocationV1::parse<details::PE64>(Parser& ctx, BinaryStream&);
+template std::unique_ptr<DynamicRelocationV1>
+ DynamicRelocationV1::parse<details::PE64>(Parser& ctx, BinaryStream&);
}
diff --git a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV2.cpp b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV2.cpp
index 0b2a4bfa79a..9477448f3c3 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV2.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/DynamicRelocationV2.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,8 +22,7 @@ namespace LIEF::PE {
template<class PE_T>
std::unique_ptr<DynamicRelocationV2>
- DynamicRelocationV2::parse(Parser& /*ctx*/, BinaryStream& stream)
-{
+ DynamicRelocationV2::parse(Parser& /*ctx*/, BinaryStream& stream) {
using ptr_t = typename PE_T::uint;
auto v2 = std::make_unique<DynamicRelocationV2>();
// typedef struct _IMAGE_DYNAMIC_RELOCATION32_V2 {
@@ -78,9 +77,7 @@ std::unique_ptr<DynamicRelocationV2>
{
// Note(romain): As of now (2024-12) I couldn't find any PE that is using
// the v2 format. Hence this part is incomplete/not working.
- stream
- .increment_pos(*HeaderSize)
- .increment_pos(*FixupInfoSize);
+ stream.increment_pos(*HeaderSize).increment_pos(*FixupInfoSize);
}
}
diff --git a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/FunctionOverride.cpp b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/FunctionOverride.cpp
index 5a0233b5a87..088efa869da 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/FunctionOverride.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/FunctionOverride.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,22 +28,19 @@ namespace LIEF::PE {
using image_bdd_info_t = FunctionOverride::image_bdd_info_t;
FunctionOverride::FunctionOverride() :
- DynamicFixup(KIND::FUNCTION_OVERRIDE)
-{}
+ DynamicFixup(KIND::FUNCTION_OVERRIDE) {}
FunctionOverride::FunctionOverride(const FunctionOverride& other) :
DynamicFixup(other),
- bdd_info_(other.bdd_info_)
-{
+ bdd_info_(other.bdd_info_) {
if (!other.overriding_info_.empty()) {
overriding_info_.reserve(other.overriding_info_.size());
overriding_info_.reserve(other.overriding_info_.size());
std::transform(other.overriding_info_.begin(), other.overriding_info_.end(),
std::back_inserter(overriding_info_),
- [] (const std::unique_ptr<FunctionOverrideInfo>& func) {
- return std::make_unique<FunctionOverrideInfo>(*func);
- }
- );
+ [](const std::unique_ptr<FunctionOverrideInfo>& func) {
+ return std::make_unique<FunctionOverrideInfo>(*func);
+ });
}
}
@@ -59,10 +56,9 @@ FunctionOverride& FunctionOverride::operator=(const FunctionOverride& other) {
overriding_info_.reserve(other.overriding_info_.size());
std::transform(other.overriding_info_.begin(), other.overriding_info_.end(),
std::back_inserter(overriding_info_),
- [] (const std::unique_ptr<FunctionOverrideInfo>& func) {
- return std::make_unique<FunctionOverrideInfo>(*func);
- }
- );
+ [](const std::unique_ptr<FunctionOverrideInfo>& func) {
+ return std::make_unique<FunctionOverrideInfo>(*func);
+ });
}
return *this;
}
@@ -73,19 +69,18 @@ FunctionOverride& FunctionOverride::operator=(FunctionOverride&&) = default;
FunctionOverride::~FunctionOverride() = default;
std::string FunctionOverride::to_string() const {
- using namespace fmt;
std::ostringstream oss;
- oss << format("Function Override ({}) {{\n", overriding_info_.size());
+ oss << fmt::format("Function Override ({}) {{\n", overriding_info_.size());
for (const FunctionOverrideInfo& info : func_overriding_info()) {
oss << indent(info.to_string(), 2);
if (const image_bdd_info_t* bdd_info = find_bdd_info(info)) {
- oss << format(" BDD Version: {} ({} bytes, offset=0x{:08x})\n",
- bdd_info->version, bdd_info->original_size,
- bdd_info->original_offset);
+ oss << fmt::format(" BDD Version: {} ({} bytes, offset={:#010x})\n",
+ bdd_info->version, bdd_info->original_size,
+ bdd_info->original_offset);
for (size_t i = 0; i < bdd_info->relocations.size(); ++i) {
const image_bdd_dynamic_relocation_t& R = bdd_info->relocations[i];
- oss << format(" [{:04d}] L={:04d}, R={:04d}, V=0x{:08x}\n", i,
- R.left, R.right, R.value);
+ oss << fmt::format(" [{:04d}] L={:04d}, R={:04d}, V={:#010x}\n", i,
+ R.left, R.right, R.value);
}
} else {
oss << " <Missing IMAGE_BDD_INFO>\n";
@@ -95,9 +90,8 @@ std::string FunctionOverride::to_string() const {
return oss.str();
}
-std::unique_ptr<FunctionOverride>
- FunctionOverride::parse(Parser& ctx, SpanStream& strm)
-{
+std::unique_ptr<FunctionOverride> FunctionOverride::parse(Parser& ctx,
+ SpanStream& strm) {
auto FuncOverrideSize = strm.read<uint32_t>();
if (!FuncOverrideSize) {
LIEF_DEBUG("Error: {}: {}", __FUNCTION__, __LINE__);
@@ -108,14 +102,14 @@ std::unique_ptr<FunctionOverride>
if (FuncOverrideInfo) {
strm.increment_pos(*FuncOverrideSize);
} else {
- LIEF_WARN("Can't slice FuncOverrideInfo");
+ LIEF_WARN("Failed to slice FuncOverrideInfo");
}
auto BDDInfo = strm.slice(strm.pos());
if (BDDInfo) {
strm.increment_pos(BDDInfo->size());
} else {
- LIEF_WARN("Can't slice BDDInfo");
+ LIEF_WARN("Failed to slice BDDInfo");
}
auto func = std::make_unique<FunctionOverride>();
@@ -137,30 +131,29 @@ std::unique_ptr<FunctionOverride>
return func;
}
-ok_error_t FunctionOverride::parse_bdd_info(
- Parser&/*ctx*/, SpanStream& strm, FunctionOverride& func)
-{
+ok_error_t FunctionOverride::parse_bdd_info(Parser& /*ctx*/, SpanStream& strm,
+ FunctionOverride& func) {
image_bdd_info_t bdd_info;
bdd_info.original_offset = strm.pos();
auto Version = strm.read<uint32_t>();
if (!Version) {
- LIEF_WARN("Can't read IMAGE_BDD_INFO.Version");
+ LIEF_WARN("Failed to read IMAGE_BDD_INFO.Version");
return make_error_code(Version.error());
}
bdd_info.version = *Version;
auto BDDSize = strm.read<uint32_t>();
if (!BDDSize) {
- LIEF_WARN("Can't read IMAGE_BDD_INFO.BDDSize");
+ LIEF_WARN("Failed to read IMAGE_BDD_INFO.BDDSize");
return make_error_code(BDDSize.error());
}
if (*Version != 1) {
- LIEF_DEBUG("IMAGE_BDD_INFO unsupported version: {}", *Version);
+ LIEF_DEBUG("Unsupported IMAGE_BDD_INFO version: {}", *Version);
if (!strm.read_data(bdd_info.payload, *BDDSize)) {
- LIEF_WARN("Can't read IMAGE_BDD_INFO payload");
+ LIEF_WARN("Failed to read IMAGE_BDD_INFO payload");
}
return ok();
}
@@ -171,7 +164,7 @@ ok_error_t FunctionOverride::parse_bdd_info(
auto payload = strm.slice(strm.pos(), *BDDSize);
if (!payload) {
- LIEF_WARN("Can't slice IMAGE_BDD_INFO payload");
+ LIEF_WARN("Failed to slice IMAGE_BDD_INFO payload");
return make_error_code(payload.error());
}
@@ -204,12 +197,13 @@ image_bdd_info_t* FunctionOverride::find_bdd_info(uint32_t offset) {
// The current `parse_bdd_info` function parses the bdd_info in sequence
// with increasing offset on the stream. This means that the func.bdd_info_
// is already sorted by image_bdd_info_t::original_offset. We can leverage
- // this property to perform a binary search in O(log2(N)) instead of a O(N)
- auto it = std::lower_bound(bdd_info_.begin(), bdd_info_.end(),
- image_bdd_info_t{0, 0, offset, {}, {}},
- [] (const image_bdd_info_t& LHS, const image_bdd_info_t& RHS) {
- return LHS.original_offset < RHS.original_offset;
- });
+ // this property to perform a binary search in O(log2(N)) instead of an O(N)
+ auto it = std::lower_bound(
+ bdd_info_.begin(), bdd_info_.end(), image_bdd_info_t{0, 0, offset, {}, {}},
+ [](const image_bdd_info_t& LHS, const image_bdd_info_t& RHS) {
+ return LHS.original_offset < RHS.original_offset;
+ }
+ );
if (it == bdd_info_.end()) {
return nullptr;
@@ -217,7 +211,8 @@ image_bdd_info_t* FunctionOverride::find_bdd_info(uint32_t offset) {
return &*it;
}
-image_bdd_info_t* FunctionOverride::find_bdd_info(const FunctionOverrideInfo& info) {
+image_bdd_info_t*
+ FunctionOverride::find_bdd_info(const FunctionOverrideInfo& info) {
return find_bdd_info(info.bdd_offset());
}
}
diff --git a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/FunctionOverrideInfo.cpp b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/FunctionOverrideInfo.cpp
index 9802a4ba3a9..120447d9a59 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/FunctionOverrideInfo.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/DynamicRelocation/FunctionOverrideInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,32 +23,30 @@
namespace LIEF::PE {
-FunctionOverrideInfo::FunctionOverrideInfo(
- uint32_t original_rva, uint32_t bdd_offset, uint32_t base_reloc_size
-) :
+FunctionOverrideInfo::FunctionOverrideInfo(uint32_t original_rva,
+ uint32_t bdd_offset,
+ uint32_t base_reloc_size) :
original_rva_(original_rva),
bdd_offset_(bdd_offset),
- base_relocsz_(base_reloc_size)
-{}
+ base_relocsz_(base_reloc_size) {}
FunctionOverrideInfo::FunctionOverrideInfo(const FunctionOverrideInfo& other) :
original_rva_(other.original_rva_),
bdd_offset_(other.bdd_offset_),
base_relocsz_(other.base_relocsz_),
- rvas_(other.rvas_)
-{
+ rvas_(other.rvas_) {
if (!other.relocations_.empty()) {
relocations_.reserve(other.relocations_.size());
std::transform(other.relocations_.begin(), other.relocations_.end(),
std::back_inserter(relocations_),
- [] (const std::unique_ptr<Relocation>& R) {
- return std::make_unique<Relocation>(*R);
- }
- );
+ [](const std::unique_ptr<Relocation>& R) {
+ return std::make_unique<Relocation>(*R);
+ });
}
}
-FunctionOverrideInfo& FunctionOverrideInfo::operator=(const FunctionOverrideInfo& other) {
+FunctionOverrideInfo&
+ FunctionOverrideInfo::operator=(const FunctionOverrideInfo& other) {
if (&other == this) {
return *this;
}
@@ -62,40 +60,40 @@ FunctionOverrideInfo& FunctionOverrideInfo::operator=(const FunctionOverrideInfo
relocations_.reserve(other.relocations_.size());
std::transform(other.relocations_.begin(), other.relocations_.end(),
std::back_inserter(relocations_),
- [] (const std::unique_ptr<Relocation>& R) {
- return std::make_unique<Relocation>(*R);
- }
- );
+ [](const std::unique_ptr<Relocation>& R) {
+ return std::make_unique<Relocation>(*R);
+ });
}
return *this;
}
FunctionOverrideInfo::FunctionOverrideInfo(FunctionOverrideInfo&&) = default;
-FunctionOverrideInfo& FunctionOverrideInfo::operator=(FunctionOverrideInfo&&) = default;
+FunctionOverrideInfo&
+ FunctionOverrideInfo::operator=(FunctionOverrideInfo&&) = default;
FunctionOverrideInfo::~FunctionOverrideInfo() = default;
std::string FunctionOverrideInfo::to_string() const {
- using namespace fmt;
std::ostringstream oss;
- oss << format("Original RVA: 0x{:08x}\n", original_rva())
- << format("BDD Offset: 0x{:08x}\n", bdd_offset())
- << format("RVA array size: {}\n", rva_size())
- << format("Reloc size: 0x{:04x}\n", base_reloc_size());
+ oss << fmt::format("Original RVA: {:#010x}\n", original_rva())
+ << fmt::format("BDD Offset: {:#010x}\n", bdd_offset())
+ << fmt::format("RVA array size: {}\n", rva_size())
+ << fmt::format("Reloc size: {:#06x}\n", base_reloc_size());
if (!rvas_.empty()) {
oss << "RVAs:\n";
for (size_t i = 0; i < rvas_.size(); ++i) {
- oss << format(" [{:04d}]: 0x{:08x}\n", i, rvas_[i]);
+ oss << fmt::format(" [{:04d}]: {:#010x}\n", i, rvas_[i]);
}
}
if (!relocations_.empty()) {
oss << "Fixup RVAs:\n";
for (size_t i = 0; i < relocations_.size(); ++i) {
const Relocation& R = *relocations_[i];
- oss << format(" [{:04d}]: RVA: 0x{:08x}\n", i, R.virtual_address());
+ oss << fmt::format(" [{:04d}]: RVA: {:#010x}\n", i, R.virtual_address());
for (const RelocationEntry& E : R.entries()) {
- oss << format(" 0x{:08x} ({})\n", E.address(), PE::to_string(E.type()));
+ oss << fmt::format(" {:#010x} ({})\n", E.address(),
+ PE::to_string(E.type()));
}
}
}
@@ -103,41 +101,51 @@ std::string FunctionOverrideInfo::to_string() const {
}
std::unique_ptr<FunctionOverrideInfo>
- FunctionOverrideInfo::parse(Parser& ctx, SpanStream& strm)
-{
+ FunctionOverrideInfo::parse(Parser& ctx, SpanStream& strm) {
auto OriginalRva = strm.read<uint32_t>();
if (!OriginalRva) {
- LIEF_DEBUG("Can't read 'IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.OriginalRva");
+ LIEF_DEBUG(
+ "Failed to read IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.OriginalRva"
+ );
return nullptr;
}
auto BDDOffset = strm.read<uint32_t>();
if (!BDDOffset) {
- LIEF_DEBUG("Can't read 'IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.BDDOffset");
+ LIEF_DEBUG(
+ "Failed to read IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.BDDOffset"
+ );
return nullptr;
}
auto RvaSize = strm.read<uint32_t>();
if (!RvaSize) {
- LIEF_DEBUG("Can't read 'IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.RvaSize");
+ LIEF_DEBUG(
+ "Failed to read IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.RvaSize"
+ );
return nullptr;
}
auto BaseRelocSize = strm.read<uint32_t>();
if (!BaseRelocSize) {
- LIEF_DEBUG("Can't read 'IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.BaseRelocSize");
+ LIEF_DEBUG(
+ "Failed to read IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.BaseRelocSize"
+ );
return nullptr;
}
- auto func_override_info = std::make_unique<FunctionOverrideInfo>(
- *OriginalRva, *BDDOffset, *BaseRelocSize
- );
+ auto func_override_info =
+ std::make_unique<FunctionOverrideInfo>(*OriginalRva, *BDDOffset,
+ *BaseRelocSize);
- LIEF_DEBUG("OriginalRva: 0x{:08x}", *OriginalRva);
+ LIEF_DEBUG("OriginalRva: {:#010x}", *OriginalRva);
if (*RvaSize % sizeof(uint32_t) != 0) {
- LIEF_WARN("IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.RvaSize misaligned: 0x{:08x}", *RvaSize);
+ LIEF_WARN(
+ "IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.RvaSize misaligned: {:#010x}",
+ *RvaSize
+ );
}
const size_t count = *RvaSize / sizeof(uint32_t);
@@ -147,16 +155,21 @@ std::unique_ptr<FunctionOverrideInfo>
for (size_t i = 0; i < count; ++i) {
auto RVA = strm.read<uint32_t>();
if (!RVA) {
- LIEF_WARN("Cant read IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.RVAs[{}]", i);
+ LIEF_WARN(
+ "Failed to read IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.RVAs[{}]", i
+ );
return func_override_info;
}
- LIEF_DEBUG("IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.RVA[{}]: 0x{:08x}", i, *RVA);
+ LIEF_DEBUG("IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.RVA[{}]: {:#010x}", i,
+ *RVA);
func_override_info->rvas_.push_back(*RVA);
}
auto BaseRelocs = strm.slice(strm.pos(), *BaseRelocSize);
if (!BaseRelocs) {
- LIEF_WARN("Can't slice IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.BaseRelocs");
+ LIEF_WARN(
+ "Failed to slice IMAGE_FUNCTION_OVERRIDE_DYNAMIC_RELOCATION.BaseRelocs"
+ );
return func_override_info;
}
diff --git a/deps/LIEF/src/PE/LoadConfigurations/EnclaveConfiguration.cpp b/deps/LIEF/src/PE/LoadConfigurations/EnclaveConfiguration.cpp
index 451b3486bbc..21c0786150e 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/EnclaveConfiguration.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/EnclaveConfiguration.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+#include <algorithm>
#include <sstream>
#include "LIEF/PE/Parser.hpp"
#include "LIEF/PE/Binary.hpp"
@@ -28,30 +29,29 @@
namespace LIEF::PE {
std::string EnclaveConfiguration::to_string() const {
- using namespace fmt;
static constexpr auto WIDTH = 39;
std::ostringstream os;
- os << format("{:>{}}: 0x{:08x}\n", "Size", WIDTH, size())
- << format("{:>{}}: 0x{:08x}\n", "Minimum Required Config Size", WIDTH,
- min_required_config_size())
- << format("{:>{}}: 0x{:08x} (debuggable={})\n", "Policy Flags", WIDTH,
- policy_flags(), is_debuggable())
- << format("{:>{}}: {}\n", "Number of Enclave Import Descriptors", WIDTH,
- nb_imports())
- << format("{:>{}}: 0x{:08x}\n", "RVA to enclave imports", WIDTH,
- import_list_rva())
- << format("{:>{}}: 0x{:04x}\n", "Size of enclave import", WIDTH,
- import_entry_size())
- << format("{:>{}}: {}\n", "Image version", WIDTH, image_version())
- << format("{:>{}}: {}\n", "Security version", WIDTH, security_version())
- << format("{:>{}}: 0x{:016x}\n", "Enclave Size", WIDTH, enclave_size())
- << format("{:>{}}: {}\n", "Number of Threads", WIDTH, nb_threads())
- << format("{:>{}}: 0x{:08x}\n", "Enclave flags", WIDTH, enclave_flags());
-
- os << format("{:>{}}: {}\n", "Image ID", WIDTH,
- hex_dump(image_id(), /*sep=*/" "));
- os << format("{:>{}}: {}", "Family ID", WIDTH,
- hex_dump(family_id(), /*sep=*/" "));
+ os << fmt::format("{:>{}}: {:#010x}\n", "Size", WIDTH, size())
+ << fmt::format("{:>{}}: {:#010x}\n", "Minimum Required Config Size", WIDTH,
+ min_required_config_size())
+ << fmt::format("{:>{}}: {:#010x} (debuggable={})\n", "Policy Flags", WIDTH,
+ policy_flags(), is_debuggable())
+ << fmt::format("{:>{}}: {}\n", "Number of Enclave Import Descriptors", WIDTH,
+ nb_imports())
+ << fmt::format("{:>{}}: {:#010x}\n", "RVA to enclave imports", WIDTH,
+ import_list_rva())
+ << fmt::format("{:>{}}: {:#06x}\n", "Size of enclave import", WIDTH,
+ import_entry_size())
+ << fmt::format("{:>{}}: {}\n", "Image version", WIDTH, image_version())
+ << fmt::format("{:>{}}: {}\n", "Security version", WIDTH, security_version())
+ << fmt::format("{:>{}}: {:#018x}\n", "Enclave Size", WIDTH, enclave_size())
+ << fmt::format("{:>{}}: {}\n", "Number of Threads", WIDTH, nb_threads())
+ << fmt::format("{:>{}}: {:#010x}\n", "Enclave flags", WIDTH, enclave_flags());
+
+ os << fmt::format("{:>{}}: {}\n", "Image ID", WIDTH,
+ hex_dump(image_id(), /*sep=*/" "));
+ os << fmt::format("{:>{}}: {}", "Family ID", WIDTH,
+ hex_dump(family_id(), /*sep=*/" "));
if (!imports_.empty()) {
os << '\n';
@@ -66,9 +66,12 @@ std::string EnclaveConfiguration::to_string() const {
template<class PE_T>
std::unique_ptr<EnclaveConfiguration>
- EnclaveConfiguration::parse(Parser& ctx, BinaryStream& stream)
-{
+ EnclaveConfiguration::parse(Parser& ctx, BinaryStream& stream) {
using ptr_t = typename PE_T::uint;
+
+ static constexpr uint32_t ENCLAVE_IMPORT_SIZE = 0x50;
+ static constexpr uint32_t ENCLAVE_IMPORT_MAX_SIZE = 0x1000;
+
auto config = std::make_unique<EnclaveConfiguration>();
auto Size = stream.read<uint32_t>();
if (!Size) {
@@ -151,30 +154,39 @@ std::unique_ptr<EnclaveConfiguration>
}
(*config)
- .size(*Size)
- .min_required_config_size(*MinimumRequiredConfigSize)
- .policy_flags(*PolicyFlags)
- .import_list_rva(*ImportList)
- .import_entry_size(*ImportEntrySize)
- .image_version(*ImageVersion)
- .security_version(*SecurityVersion)
- .enclave_size(*EnclaveSize)
- .nb_threads(*NumberOfThreads)
- .enclave_flags(*EnclaveFlags)
- ;
-
- if (*ImportEntrySize == 0 || *NumberOfImports == 0) {
+ .size(*Size)
+ .min_required_config_size(*MinimumRequiredConfigSize)
+ .policy_flags(*PolicyFlags)
+ .import_list_rva(*ImportList)
+ .import_entry_size(*ImportEntrySize)
+ .image_version(*ImageVersion)
+ .security_version(*SecurityVersion)
+ .enclave_size(*EnclaveSize)
+ .nb_threads(*NumberOfThreads)
+ .enclave_flags(*EnclaveFlags);
+
+ if (*NumberOfImports == 0) {
+ return config;
+ }
+
+ if (*ImportEntrySize < ENCLAVE_IMPORT_SIZE ||
+ *ImportEntrySize > ENCLAVE_IMPORT_MAX_SIZE)
+ {
return config;
}
- if (*ImportEntrySize > 0x1000) {
+ const uint64_t base_offset = ctx.bin().rva_to_offset(*ImportList);
+ const uint64_t stream_size = ctx.stream().size();
+
+ if (base_offset >= stream_size) {
return config;
}
- uint32_t base_offset = ctx.bin().rva_to_offset(*ImportList);
+ const uint64_t max_imports = (stream_size - base_offset) / *ImportEntrySize;
+ const uint64_t nb_imports = std::min<uint64_t>(*NumberOfImports, max_imports);
- for (size_t i = 0; i < *NumberOfImports; ++i) {
- uint32_t offset = base_offset + i * (*ImportEntrySize);
+ for (size_t i = 0; i < nb_imports; ++i) {
+ const uint64_t offset = base_offset + i * (uint64_t)*ImportEntrySize;
ScopedStream scope(ctx.stream(), offset);
auto import = EnclaveImport::parse(ctx, *scope);
if (!import) {
@@ -189,9 +201,9 @@ std::unique_ptr<EnclaveConfiguration>
}
template std::unique_ptr<EnclaveConfiguration>
- EnclaveConfiguration::parse<details::PE32>(Parser& ctx, BinaryStream& stream);
+ EnclaveConfiguration::parse<details::PE32>(Parser& ctx, BinaryStream& stream);
template std::unique_ptr<EnclaveConfiguration>
- EnclaveConfiguration::parse<details::PE64>(Parser& ctx, BinaryStream& stream);
+ EnclaveConfiguration::parse<details::PE64>(Parser& ctx, BinaryStream& stream);
}
diff --git a/deps/LIEF/src/PE/LoadConfigurations/EnclaveImport.cpp b/deps/LIEF/src/PE/LoadConfigurations/EnclaveImport.cpp
index 86276a9930c..3dee3070403 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/EnclaveImport.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/EnclaveImport.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,37 +19,37 @@
#include "LIEF/PE/LoadConfigurations/EnclaveImport.hpp"
#include "LIEF/BinaryStream/BinaryStream.hpp"
-#include "logging.hpp"
#include "internal_utils.hpp"
namespace LIEF::PE {
std::string EnclaveImport::to_string() const {
- using namespace fmt;
static constexpr auto WIDTH = 26;
std::ostringstream os;
- os << format("{} (RVA: 0x{:08x})\n", import_name(), import_name_rva())
- << format(" {:{}}: {}\n", "Minimum Security Version", WIDTH, min_security_version())
- << format(" {:{}}: {}\n", "Reserved", WIDTH, reserved())
- << format(" {:{}}: {}\n", "Type", WIDTH, PE::to_string(type()))
- << format(" {:{}}: {}\n", "Family ID", WIDTH, hex_dump(family_id(), " "))
- << format(" {:{}}: {}\n", "Image ID", WIDTH, hex_dump(image_id(), " "));
+ os << fmt::format("{} (RVA: {:#010x})\n", import_name(), import_name_rva())
+ << fmt::format(" {:{}}: {}\n", "Minimum Security Version", WIDTH,
+ min_security_version())
+ << fmt::format(" {:{}}: {}\n", "Reserved", WIDTH, reserved())
+ << fmt::format(" {:{}}: {}\n", "Type", WIDTH, PE::to_string(type()))
+ << fmt::format(" {:{}}: {}\n", "Family ID", WIDTH,
+ hex_dump(family_id(), " "))
+ << fmt::format(" {:{}}: {}\n", "Image ID", WIDTH, hex_dump(image_id(), " "));
{
span<const uint8_t> id = this->id();
auto chunk_1 = id.subspan(0, 16);
auto chunk_2 = id.subspan(16);
- os << format(" {:{}}: {}\n{:{}}{}", "unique/author ID", WIDTH,
- hex_dump(chunk_1, " "), " ", WIDTH + 4, hex_dump(chunk_2, " "));
+ os << fmt::format(" {:{}}: {}\n{:{}}{}", "unique/author ID", WIDTH,
+ hex_dump(chunk_1, " "), " ", WIDTH + 4,
+ hex_dump(chunk_2, " "));
}
return os.str();
}
-result<EnclaveImport> EnclaveImport::parse(Parser& ctx, BinaryStream& stream)
-{
+result<EnclaveImport> EnclaveImport::parse(Parser& ctx, BinaryStream& stream) {
EnclaveImport imp;
auto MatchType = stream.read<uint32_t>();
if (!MatchType) {
@@ -83,12 +83,10 @@ result<EnclaveImport> EnclaveImport::parse(Parser& ctx, BinaryStream& stream)
return make_error_code(Reserved.error());
}
- imp
- .type((TYPE)*MatchType)
- .min_security_version(*MinimumSecurityVersion)
- .import_name_rva(*ImportName)
- .reserved(*Reserved)
- ;
+ imp.type((TYPE)*MatchType)
+ .min_security_version(*MinimumSecurityVersion)
+ .import_name_rva(*ImportName)
+ .reserved(*Reserved);
{
uint32_t name_offset = ctx.bin().rva_to_offset(*ImportName);
diff --git a/deps/LIEF/src/PE/LoadConfigurations/LoadConfiguration.cpp b/deps/LIEF/src/PE/LoadConfigurations/LoadConfiguration.cpp
index 07185e03b3c..4102ea6abec 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/LoadConfiguration.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/LoadConfiguration.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -40,8 +40,8 @@
FMT_FORMATTER(LIEF::PE::LoadConfiguration::IMAGE_GUARD, LIEF::PE::to_string);
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
LoadConfiguration::LoadConfiguration() = default;
LoadConfiguration::LoadConfiguration(LoadConfiguration&&) = default;
@@ -49,21 +49,21 @@ LoadConfiguration& LoadConfiguration::operator=(LoadConfiguration&&) = default;
LoadConfiguration::~LoadConfiguration() = default;
static constexpr std::array IMAGE_GUARD_LIST = {
- LoadConfiguration::IMAGE_GUARD::NONE,
- LoadConfiguration::IMAGE_GUARD::CF_INSTRUMENTED,
- LoadConfiguration::IMAGE_GUARD::CFW_INSTRUMENTED,
- LoadConfiguration::IMAGE_GUARD::CF_FUNCTION_TABLE_PRESENT,
- LoadConfiguration::IMAGE_GUARD::SECURITY_COOKIE_UNUSED,
- LoadConfiguration::IMAGE_GUARD::PROTECT_DELAYLOAD_IAT,
- LoadConfiguration::IMAGE_GUARD::DELAYLOAD_IAT_IN_ITS_OWN_SECTION,
- LoadConfiguration::IMAGE_GUARD::CF_EXPORT_SUPPRESSION_INFO_PRESENT,
- LoadConfiguration::IMAGE_GUARD::CF_ENABLE_EXPORT_SUPPRESSION,
- LoadConfiguration::IMAGE_GUARD::CF_LONGJUMP_TABLE_PRESENT,
- LoadConfiguration::IMAGE_GUARD::RF_INSTRUMENTED,
- LoadConfiguration::IMAGE_GUARD::RF_ENABLE,
- LoadConfiguration::IMAGE_GUARD::RF_STRICT,
- LoadConfiguration::IMAGE_GUARD::RETPOLINE_PRESENT,
- LoadConfiguration::IMAGE_GUARD::EH_CONTINUATION_TABLE_PRESENT,
+ LoadConfiguration::IMAGE_GUARD::NONE,
+ LoadConfiguration::IMAGE_GUARD::CF_INSTRUMENTED,
+ LoadConfiguration::IMAGE_GUARD::CFW_INSTRUMENTED,
+ LoadConfiguration::IMAGE_GUARD::CF_FUNCTION_TABLE_PRESENT,
+ LoadConfiguration::IMAGE_GUARD::SECURITY_COOKIE_UNUSED,
+ LoadConfiguration::IMAGE_GUARD::PROTECT_DELAYLOAD_IAT,
+ LoadConfiguration::IMAGE_GUARD::DELAYLOAD_IAT_IN_ITS_OWN_SECTION,
+ LoadConfiguration::IMAGE_GUARD::CF_EXPORT_SUPPRESSION_INFO_PRESENT,
+ LoadConfiguration::IMAGE_GUARD::CF_ENABLE_EXPORT_SUPPRESSION,
+ LoadConfiguration::IMAGE_GUARD::CF_LONGJUMP_TABLE_PRESENT,
+ LoadConfiguration::IMAGE_GUARD::RF_INSTRUMENTED,
+ LoadConfiguration::IMAGE_GUARD::RF_ENABLE,
+ LoadConfiguration::IMAGE_GUARD::RF_STRICT,
+ LoadConfiguration::IMAGE_GUARD::RETPOLINE_PRESENT,
+ LoadConfiguration::IMAGE_GUARD::EH_CONTINUATION_TABLE_PRESENT,
};
inline bool should_quit(uint64_t start, BinaryStream& stream, uint32_t size) {
@@ -72,8 +72,7 @@ inline bool should_quit(uint64_t start, BinaryStream& stream, uint32_t size) {
template<class T, class Func>
inline bool read_lc(Func f, LoadConfiguration* thiz, BinaryStream& stream,
- uint32_t start, uint32_t size)
-{
+ uint32_t start, uint32_t size) {
auto value = stream.read<T>();
if (!value) {
return false;
@@ -85,9 +84,8 @@ inline bool read_lc(Func f, LoadConfiguration* thiz, BinaryStream& stream,
}
template<class PE_T>
-std::unique_ptr<LoadConfiguration>
- LoadConfiguration::parse(Parser& ctx, BinaryStream& stream)
-{
+std::unique_ptr<LoadConfiguration> LoadConfiguration::parse(Parser& ctx,
+ BinaryStream& stream) {
using ptr_t = typename PE_T::uint;
const uint64_t start_off = stream.pos();
@@ -203,77 +201,85 @@ std::unique_ptr<LoadConfiguration>
auto config = std::make_unique<LoadConfiguration>();
(*config)
- .characteristics(*Characteristics)
- .timedatestamp(*TimeDateStamp)
- .major_version(*MajorVersion)
- .minor_version(*MinorVersion)
- .global_flags_clear(*GlobalFlagsClear)
- .global_flags_set(*GlobalFlagsSet)
- .critical_section_default_timeout(*CriticalSectionDefaultTimeout)
- .decommit_free_block_threshold(*DeCommitFreeBlockThreshold)
- .decommit_total_free_threshold(*DeCommitTotalFreeThreshold)
- .lock_prefix_table(*LockPrefixTable)
- .maximum_allocation_size(*MaximumAllocationSize)
- .virtual_memory_threshold(*VirtualMemoryThreshold)
- .process_affinity_mask(*ProcessAffinityMask)
- .process_heap_flags(*ProcessHeapFlags)
- .csd_version(*CSDVersion)
- .dependent_load_flags(*DependentLoadFlags)
- .editlist(*EditList)
- .security_cookie(*SecurityCookie)
- ;
+ .characteristics(*Characteristics)
+ .timedatestamp(*TimeDateStamp)
+ .major_version(*MajorVersion)
+ .minor_version(*MinorVersion)
+ .global_flags_clear(*GlobalFlagsClear)
+ .global_flags_set(*GlobalFlagsSet)
+ .critical_section_default_timeout(*CriticalSectionDefaultTimeout)
+ .decommit_free_block_threshold(*DeCommitFreeBlockThreshold)
+ .decommit_total_free_threshold(*DeCommitTotalFreeThreshold)
+ .lock_prefix_table(*LockPrefixTable)
+ .maximum_allocation_size(*MaximumAllocationSize)
+ .virtual_memory_threshold(*VirtualMemoryThreshold)
+ .process_affinity_mask(*ProcessAffinityMask)
+ .process_heap_flags(*ProcessHeapFlags)
+ .csd_version(*CSDVersion)
+ .dependent_load_flags(*DependentLoadFlags)
+ .editlist(*EditList)
+ .security_cookie(*SecurityCookie);
if (should_quit(start_off, stream, *Characteristics)) {
return config;
}
/* V0 */ {
- if (!read_lc<ptr_t>(overload_cast<uint64_t>(&LoadConfiguration::se_handler_table),
- config.get(), stream, start_off, *Characteristics))
+ if (!read_lc<ptr_t>(
+ overload_cast<uint64_t>(&LoadConfiguration::se_handler_table),
+ config.get(), stream, start_off, *Characteristics
+ ))
{
return config;
}
- if (!read_lc<ptr_t>(overload_cast<uint64_t>(&LoadConfiguration::se_handler_count),
- config.get(), stream, start_off, *Characteristics))
+ if (!read_lc<ptr_t>(
+ overload_cast<uint64_t>(&LoadConfiguration::se_handler_count),
+ config.get(), stream, start_off, *Characteristics
+ ))
{
return config;
}
}
/* V1 */ {
- if (!read_lc<ptr_t>(
- overload_cast<uint64_t>(&LoadConfiguration::guard_cf_check_function_pointer),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ if (!read_lc<ptr_t>(overload_cast<uint64_t>(
+ &LoadConfiguration::guard_cf_check_function_pointer
+ ),
+ config.get(), stream, start_off, *Characteristics))
+ {
return config;
}
- if (!read_lc<ptr_t>(
- overload_cast<uint64_t>(&LoadConfiguration::guard_cf_dispatch_function_pointer),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ if (!read_lc<ptr_t>(overload_cast<uint64_t>(
+ &LoadConfiguration::guard_cf_dispatch_function_pointer
+ ),
+ config.get(), stream, start_off, *Characteristics))
+ {
return config;
}
if (!read_lc<ptr_t>(
- overload_cast<uint64_t>(&LoadConfiguration::guard_cf_function_table),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ overload_cast<uint64_t>(&LoadConfiguration::guard_cf_function_table),
+ config.get(), stream, start_off, *Characteristics
+ ))
+ {
return config;
}
if (!read_lc<ptr_t>(
- overload_cast<uint64_t>(&LoadConfiguration::guard_cf_function_count),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ overload_cast<uint64_t>(&LoadConfiguration::guard_cf_function_count),
+ config.get(), stream, start_off, *Characteristics
+ ))
+ {
return config;
}
if (!read_lc<uint32_t>(
- overload_cast<uint32_t>(&LoadConfiguration::guard_flags),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ overload_cast<uint32_t>(&LoadConfiguration::guard_flags), config.get(),
+ stream, start_off, *Characteristics
+ ))
+ {
return config;
}
}
@@ -292,210 +298,243 @@ std::unique_ptr<LoadConfiguration>
}
/* V3 */ {
- if (!read_lc<ptr_t>(
- overload_cast<uint64_t>(&LoadConfiguration::guard_address_taken_iat_entry_table),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ if (!read_lc<ptr_t>(overload_cast<uint64_t>(
+ &LoadConfiguration::guard_address_taken_iat_entry_table
+ ),
+ config.get(), stream, start_off, *Characteristics))
+ {
return config;
}
- if (!read_lc<ptr_t>(
- overload_cast<uint64_t>(&LoadConfiguration::guard_address_taken_iat_entry_count),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ if (!read_lc<ptr_t>(overload_cast<uint64_t>(
+ &LoadConfiguration::guard_address_taken_iat_entry_count
+ ),
+ config.get(), stream, start_off, *Characteristics))
+ {
return config;
}
- if (!read_lc<ptr_t>(
- overload_cast<uint64_t>(&LoadConfiguration::guard_long_jump_target_table),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ if (!read_lc<ptr_t>(overload_cast<uint64_t>(
+ &LoadConfiguration::guard_long_jump_target_table
+ ),
+ config.get(), stream, start_off, *Characteristics))
+ {
return config;
}
- if (!read_lc<ptr_t>(
- overload_cast<uint64_t>(&LoadConfiguration::guard_long_jump_target_count),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ if (!read_lc<ptr_t>(overload_cast<uint64_t>(
+ &LoadConfiguration::guard_long_jump_target_count
+ ),
+ config.get(), stream, start_off, *Characteristics))
+ {
return config;
}
}
/* V4 */ {
if (!read_lc<ptr_t>(
- overload_cast<uint64_t>(&LoadConfiguration::dynamic_value_reloc_table),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ overload_cast<uint64_t>(&LoadConfiguration::dynamic_value_reloc_table),
+ config.get(), stream, start_off, *Characteristics
+ ))
+ {
return config;
}
if (!read_lc<ptr_t>(
- overload_cast<uint64_t>(&LoadConfiguration::hybrid_metadata_pointer),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ overload_cast<uint64_t>(&LoadConfiguration::hybrid_metadata_pointer),
+ config.get(), stream, start_off, *Characteristics
+ ))
+ {
return config;
}
}
/* V5 */ {
if (!read_lc<ptr_t>(
- overload_cast<uint64_t>(&LoadConfiguration::guard_rf_failure_routine),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ overload_cast<uint64_t>(&LoadConfiguration::guard_rf_failure_routine),
+ config.get(), stream, start_off, *Characteristics
+ ))
+ {
return config;
}
if (!read_lc<ptr_t>(
- overload_cast<uint64_t>(&LoadConfiguration::guard_rf_failure_routine_function_pointer),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ overload_cast<uint64_t>(
+ &LoadConfiguration::guard_rf_failure_routine_function_pointer
+ ),
+ config.get(), stream, start_off, *Characteristics
+ ))
+ {
return config;
}
- if (!read_lc<uint32_t>(
- overload_cast<uint32_t>(&LoadConfiguration::dynamic_value_reloctable_offset),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ if (!read_lc<uint32_t>(overload_cast<uint32_t>(
+ &LoadConfiguration::dynamic_value_reloctable_offset
+ ),
+ config.get(), stream, start_off, *Characteristics))
+ {
return config;
}
- if (!read_lc<uint16_t>(
- overload_cast<uint16_t>(&LoadConfiguration::dynamic_value_reloctable_section),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ if (!read_lc<uint16_t>(overload_cast<uint16_t>(
+ &LoadConfiguration::dynamic_value_reloctable_section
+ ),
+ config.get(), stream, start_off, *Characteristics))
+ {
return config;
}
- if (!read_lc<uint16_t>(
- overload_cast<uint16_t>(&LoadConfiguration::reserved2),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ if (!read_lc<uint16_t>(overload_cast<uint16_t>(&LoadConfiguration::reserved2),
+ config.get(), stream, start_off, *Characteristics))
+ {
return config;
}
}
/* V6 */ {
if (!read_lc<ptr_t>(
- overload_cast<uint64_t>(&LoadConfiguration::guard_rf_verify_stackpointer_function_pointer),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ overload_cast<uint64_t>(
+ &LoadConfiguration::guard_rf_verify_stackpointer_function_pointer
+ ),
+ config.get(), stream, start_off, *Characteristics
+ ))
+ {
return config;
}
if (!read_lc<uint32_t>(
- overload_cast<uint32_t>(&LoadConfiguration::hotpatch_table_offset),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ overload_cast<uint32_t>(&LoadConfiguration::hotpatch_table_offset),
+ config.get(), stream, start_off, *Characteristics
+ ))
+ {
return config;
}
}
/* V7 */ {
- if (!read_lc<uint32_t>(
- overload_cast<uint32_t>(&LoadConfiguration::reserved3),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ if (!read_lc<uint32_t>(overload_cast<uint32_t>(&LoadConfiguration::reserved3),
+ config.get(), stream, start_off, *Characteristics))
+ {
return config;
}
if (!read_lc<ptr_t>(
- overload_cast<uint64_t>(&LoadConfiguration::enclave_configuration_ptr),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ overload_cast<uint64_t>(&LoadConfiguration::enclave_configuration_ptr),
+ config.get(), stream, start_off, *Characteristics
+ ))
+ {
return config;
}
}
/* V8 */ {
if (!read_lc<ptr_t>(
- overload_cast<uint64_t>(&LoadConfiguration::volatile_metadata_pointer),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ overload_cast<uint64_t>(&LoadConfiguration::volatile_metadata_pointer),
+ config.get(), stream, start_off, *Characteristics
+ ))
+ {
return config;
}
}
/* V9 */ {
- if (!read_lc<ptr_t>(
- overload_cast<uint64_t>(&LoadConfiguration::guard_eh_continuation_table),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ if (!read_lc<ptr_t>(overload_cast<uint64_t>(
+ &LoadConfiguration::guard_eh_continuation_table
+ ),
+ config.get(), stream, start_off, *Characteristics))
+ {
return config;
}
- if (!read_lc<ptr_t>(
- overload_cast<uint64_t>(&LoadConfiguration::guard_eh_continuation_count),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ if (!read_lc<ptr_t>(overload_cast<uint64_t>(
+ &LoadConfiguration::guard_eh_continuation_count
+ ),
+ config.get(), stream, start_off, *Characteristics))
+ {
return config;
}
}
/* V10 */ {
- if (!read_lc<ptr_t>(
- overload_cast<uint64_t>(&LoadConfiguration::guard_xfg_check_function_pointer),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ if (!read_lc<ptr_t>(overload_cast<uint64_t>(
+ &LoadConfiguration::guard_xfg_check_function_pointer
+ ),
+ config.get(), stream, start_off, *Characteristics))
+ {
return config;
}
- if (!read_lc<ptr_t>(
- overload_cast<uint64_t>(&LoadConfiguration::guard_xfg_dispatch_function_pointer),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ if (!read_lc<ptr_t>(overload_cast<uint64_t>(
+ &LoadConfiguration::guard_xfg_dispatch_function_pointer
+ ),
+ config.get(), stream, start_off, *Characteristics))
+ {
return config;
}
if (!read_lc<ptr_t>(
- overload_cast<uint64_t>(&LoadConfiguration::guard_xfg_table_dispatch_function_pointer),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ overload_cast<uint64_t>(
+ &LoadConfiguration::guard_xfg_table_dispatch_function_pointer
+ ),
+ config.get(), stream, start_off, *Characteristics
+ ))
+ {
return config;
}
}
/* V11 */ {
if (!read_lc<ptr_t>(
- overload_cast<uint64_t>(&LoadConfiguration::cast_guard_os_determined_failure_mode),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ overload_cast<uint64_t>(
+ &LoadConfiguration::cast_guard_os_determined_failure_mode
+ ),
+ config.get(), stream, start_off, *Characteristics
+ ))
+ {
return config;
}
}
/* V12 */ {
- if (!read_lc<ptr_t>(
- overload_cast<uint64_t>(&LoadConfiguration::guard_memcpy_function_pointer),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ if (!read_lc<ptr_t>(overload_cast<uint64_t>(
+ &LoadConfiguration::guard_memcpy_function_pointer
+ ),
+ config.get(), stream, start_off, *Characteristics))
+ {
return config;
}
}
/* V13 */ {
if (!read_lc<ptr_t>(
- overload_cast<uint64_t>(&LoadConfiguration::uma_function_pointers),
- config.get(), stream, start_off, *Characteristics)
- ) {
+ overload_cast<uint64_t>(&LoadConfiguration::uma_function_pointers),
+ config.get(), stream, start_off, *Characteristics
+ ))
+ {
return config;
}
}
return config;
}
-ok_error_t LoadConfiguration::parse_seh_table(
- Parser& /*ctx*/, BinaryStream& stream, LoadConfiguration& config)
-{
+ok_error_t LoadConfiguration::parse_seh_table(Parser& /*ctx*/,
+ BinaryStream& stream,
+ LoadConfiguration& config) {
static constexpr auto MAX_RESERVE = 1000;
const uint64_t count = config.se_handler_count().value_or(0);
if (count == 0) {
return ok();
}
- LIEF_DEBUG("SEH Table parsing (#{})", count);
+ const uint64_t available =
+ stream.size() - std::min<uint64_t>(stream.pos(), stream.size());
+
+ const uint64_t nb = std::min<uint64_t>(count, available / sizeof(uint32_t));
- config.seh_rva_.reserve(std::min<uint64_t>(MAX_RESERVE, count));
- for (size_t i = 0; i < count; ++i) {
+ LIEF_DEBUG("SEH Table parsing (#{}, bounded to #{})", count, nb);
+
+ config.seh_rva_.reserve(std::min<uint64_t>(MAX_RESERVE, nb));
+ for (size_t i = 0; i < nb; ++i) {
auto rva = stream.read<uint32_t>();
if (!rva) {
return make_error_code(rva.error());
@@ -508,9 +547,9 @@ ok_error_t LoadConfiguration::parse_seh_table(
}
ok_error_t LoadConfiguration::parse_guard_functions(
- Parser& /*ctx*/, BinaryStream& stream, LoadConfiguration& config,
- size_t count, guard_functions_t LoadConfiguration::* dst)
-{
+ Parser& /*ctx*/, BinaryStream& stream, LoadConfiguration& config, size_t count,
+ guard_functions_t LoadConfiguration::* dst
+) {
static constexpr auto MAX_RESERVE = 1000;
if (count == 0) {
return ok();
@@ -518,16 +557,27 @@ ok_error_t LoadConfiguration::parse_guard_functions(
const uint32_t stride = config.guard_flags().value_or(0) >> 28;
- LIEF_DEBUG("Parsing GF (#{}, stride={})", count, stride);
- (config.*dst).reserve(std::min<uint64_t>(MAX_RESERVE, count));
+ uint64_t entry_size = sizeof(uint32_t);
+ if (stride >= 1) {
+ entry_size += stride;
+ }
+
+ const uint64_t available =
+ stream.size() - std::min<uint64_t>(stream.pos(), stream.size());
+
+ const uint64_t nb = std::min<uint64_t>(count, available / entry_size);
+
+ LIEF_DEBUG("Parsing GF (#{}, bounded to #{}, stride={})", count, nb, stride);
+
+ (config.*dst).reserve(std::min<uint64_t>(MAX_RESERVE, nb));
bool once_stride = false;
- for (size_t i = 0; i < count; ++i) {
+ for (size_t i = 0; i < nb; ++i) {
auto rva = stream.read<uint32_t>();
if (!rva) {
- LIEF_DEBUG("Can't read RVA index {} ({}:{})", i,
- __FUNCTION__, __LINE__);
+ LIEF_DEBUG("Failed to read RVA at index {} ({}:{})", i, __FUNCTION__,
+ __LINE__);
return make_error_code(rva.error());
}
@@ -536,7 +586,7 @@ ok_error_t LoadConfiguration::parse_guard_functions(
if (stride == 1) {
auto value = stream.read<uint8_t>();
if (!value) {
- LIEF_WARN("Can't read stride for RVA: {:#x}", *rva);
+ LIEF_WARN("Failed to read stride for RVA: {:#x}", *rva);
return make_error_code(value.error());
}
extra = *value;
@@ -557,8 +607,7 @@ ok_error_t LoadConfiguration::parse_guard_functions(
}
ok_error_t LoadConfiguration::parse_dyn_relocs(Parser& ctx,
- LoadConfiguration& lconf)
-{
+ LoadConfiguration& lconf) {
auto dyn_reloc_off = lconf.dynamic_value_reloctable_offset();
uint16_t dyn_reloc_sec = lconf.dynamic_value_reloctable_section().value_or(0);
@@ -606,31 +655,34 @@ ok_error_t LoadConfiguration::parse_dyn_relocs(Parser& ctx,
if (ctx.bin().type() == PE_TYPE::PE32) {
return *version == 1 ?
- parse_dyn_relocs_entries</*version=*/1, details::PE32>(ctx, strm,
- lconf, *size) :
- parse_dyn_relocs_entries</*version=*/2, details::PE32>(ctx, strm,
- lconf, *size);
+ parse_dyn_relocs_entries</*version=*/1, details::PE32>(ctx, strm,
+ lconf,
+ *size) :
+ parse_dyn_relocs_entries</*version=*/2, details::PE32>(ctx, strm,
+ lconf,
+ *size);
}
assert(ctx.bin().type() == PE_TYPE::PE32_PLUS);
return *version == 1 ?
- parse_dyn_relocs_entries</*version=*/1, details::PE64>(ctx, strm,
- lconf, *size) :
- parse_dyn_relocs_entries</*version=*/2, details::PE64>(ctx, strm,
- lconf, *size);
+ parse_dyn_relocs_entries</*version=*/1, details::PE64>(ctx, strm,
+ lconf, *size) :
+ parse_dyn_relocs_entries</*version=*/2, details::PE64>(ctx, strm,
+ lconf, *size);
}
template<uint8_t version, class PE_T>
-ok_error_t LoadConfiguration::parse_dyn_relocs_entries(
- Parser& ctx, BinaryStream& stream, LoadConfiguration& config, size_t size)
-{
+ok_error_t LoadConfiguration::parse_dyn_relocs_entries(Parser& ctx,
+ BinaryStream& stream,
+ LoadConfiguration& config,
+ size_t size) {
const size_t stream_start = stream.pos();
while (stream && stream.pos() < (stream_start + size)) {
if constexpr (version == 1) {
auto v1 = DynamicRelocationV1::parse<PE_T>(ctx, stream);
if (v1 == nullptr) {
- LIEF_WARN("Dynamic (v1) relocation parsing failed at offset=0x{:04x}",
+ LIEF_WARN("Dynamic (v1) relocation parsing failed at offset={:#06x}",
stream.pos());
break;
}
@@ -639,17 +691,18 @@ ok_error_t LoadConfiguration::parse_dyn_relocs_entries(
}
if constexpr (version == 2) {
- continue;
+ LIEF_WARN("Dynamic (v2) dynamic relocation parsing not implemented");
+ break;
}
}
return ok();
}
template<class PE_T>
-ok_error_t LoadConfiguration::parse_enclave_config(
- Parser& ctx, LoadConfiguration& config)
-{
- const uint64_t enclave_config_ptr = config.enclave_configuration_ptr().value_or(0);
+ok_error_t LoadConfiguration::parse_enclave_config(Parser& ctx,
+ LoadConfiguration& config) {
+ const uint64_t enclave_config_ptr =
+ config.enclave_configuration_ptr().value_or(0);
if (enclave_config_ptr == 0) {
return ok();
}
@@ -674,10 +727,10 @@ ok_error_t LoadConfiguration::parse_enclave_config(
}
-ok_error_t LoadConfiguration::parse_volatile_metadata(
- Parser& ctx, LoadConfiguration& config)
-{
- const uint64_t volatile_metadata = config.volatile_metadata_pointer().value_or(0);
+ok_error_t LoadConfiguration::parse_volatile_metadata(Parser& ctx,
+ LoadConfiguration& config) {
+ const uint64_t volatile_metadata =
+ config.volatile_metadata_pointer().value_or(0);
if (volatile_metadata == 0) {
return ok();
}
@@ -736,11 +789,15 @@ LoadConfiguration::LoadConfiguration(const LoadConfiguration& other) :
dynamic_value_reloc_table_(other.dynamic_value_reloc_table_),
hybrid_metadata_pointer_(other.hybrid_metadata_pointer_),
guard_rf_failure_routine_(other.guard_rf_failure_routine_),
- guard_rf_failure_routine_function_pointer_(other.guard_rf_failure_routine_function_pointer_),
+ guard_rf_failure_routine_function_pointer_(
+ other.guard_rf_failure_routine_function_pointer_
+ ),
dynamic_value_reloctable_offset_(other.dynamic_value_reloctable_offset_),
dynamic_value_reloctable_section_(other.dynamic_value_reloctable_section_),
reserved2_(other.reserved2_),
- guardrf_verify_stackpointer_function_pointer_(other.guardrf_verify_stackpointer_function_pointer_),
+ guardrf_verify_stackpointer_function_pointer_(
+ other.guardrf_verify_stackpointer_function_pointer_
+ ),
hotpatch_table_offset_(other.hotpatch_table_offset_),
reserved3_(other.reserved3_),
enclave_configuration_ptr_(other.enclave_configuration_ptr_),
@@ -749,8 +806,12 @@ LoadConfiguration::LoadConfiguration(const LoadConfiguration& other) :
guard_eh_continuation_count_(other.guard_eh_continuation_count_),
guard_xfg_check_function_pointer_(other.guard_xfg_check_function_pointer_),
guard_xfg_dispatch_function_pointer_(other.guard_xfg_dispatch_function_pointer_),
- guard_xfg_table_dispatch_function_pointer_(other.guard_xfg_table_dispatch_function_pointer_),
- cast_guard_os_determined_failure_mode_(other.cast_guard_os_determined_failure_mode_),
+ guard_xfg_table_dispatch_function_pointer_(
+ other.guard_xfg_table_dispatch_function_pointer_
+ ),
+ cast_guard_os_determined_failure_mode_(
+ other.cast_guard_os_determined_failure_mode_
+ ),
guard_memcpy_function_pointer_(other.guard_memcpy_function_pointer_),
uma_function_pointers_(other.uma_function_pointers_),
@@ -758,8 +819,7 @@ LoadConfiguration::LoadConfiguration(const LoadConfiguration& other) :
guard_cf_functions_(other.guard_cf_functions_),
guard_address_taken_iat_entries_(other.guard_address_taken_iat_entries_),
guard_long_jump_targets_(other.guard_long_jump_targets_),
- guard_eh_continuation_functions_(other.guard_eh_continuation_functions_)
-{
+ guard_eh_continuation_functions_(other.guard_eh_continuation_functions_) {
if (other.chpe_ != nullptr) {
chpe_ = other.chpe_->clone();
}
@@ -776,8 +836,9 @@ LoadConfiguration::LoadConfiguration(const LoadConfiguration& other) :
dynamic_relocs_.reserve(other.dynamic_relocs_.size());
std::transform(other.dynamic_relocs_.begin(), other.dynamic_relocs_.end(),
std::back_inserter(dynamic_relocs_),
- [] (const std::unique_ptr<DynamicRelocation>& R) { return R->clone(); }
- );
+ [](const std::unique_ptr<DynamicRelocation>& R) {
+ return R->clone();
+ });
}
}
@@ -812,18 +873,22 @@ LoadConfiguration& LoadConfiguration::operator=(const LoadConfiguration& other)
guard_cf_function_count_ = other.guard_cf_function_count_;
flags_ = other.flags_;
code_integrity_ = other.code_integrity_;
- guard_address_taken_iat_entry_table_ = other.guard_address_taken_iat_entry_table_;
- guard_address_taken_iat_entry_count_ = other.guard_address_taken_iat_entry_count_;
+ guard_address_taken_iat_entry_table_ =
+ other.guard_address_taken_iat_entry_table_;
+ guard_address_taken_iat_entry_count_ =
+ other.guard_address_taken_iat_entry_count_;
guard_long_jump_target_table_ = other.guard_long_jump_target_table_;
guard_long_jump_target_count_ = other.guard_long_jump_target_count_;
dynamic_value_reloc_table_ = other.dynamic_value_reloc_table_;
hybrid_metadata_pointer_ = other.hybrid_metadata_pointer_;
guard_rf_failure_routine_ = other.guard_rf_failure_routine_;
- guard_rf_failure_routine_function_pointer_ = other.guard_rf_failure_routine_function_pointer_;
+ guard_rf_failure_routine_function_pointer_ =
+ other.guard_rf_failure_routine_function_pointer_;
dynamic_value_reloctable_offset_ = other.dynamic_value_reloctable_offset_;
dynamic_value_reloctable_section_ = other.dynamic_value_reloctable_section_;
reserved2_ = other.reserved2_;
- guardrf_verify_stackpointer_function_pointer_ = other.guardrf_verify_stackpointer_function_pointer_;
+ guardrf_verify_stackpointer_function_pointer_ =
+ other.guardrf_verify_stackpointer_function_pointer_;
hotpatch_table_offset_ = other.hotpatch_table_offset_;
reserved3_ = other.reserved3_;
enclave_configuration_ptr_ = other.enclave_configuration_ptr_;
@@ -831,9 +896,12 @@ LoadConfiguration& LoadConfiguration::operator=(const LoadConfiguration& other)
guard_eh_continuation_table_ = other.guard_eh_continuation_table_;
guard_eh_continuation_count_ = other.guard_eh_continuation_count_;
guard_xfg_check_function_pointer_ = other.guard_xfg_check_function_pointer_;
- guard_xfg_dispatch_function_pointer_ = other.guard_xfg_dispatch_function_pointer_;
- guard_xfg_table_dispatch_function_pointer_ = other.guard_xfg_table_dispatch_function_pointer_;
- cast_guard_os_determined_failure_mode_ = other.cast_guard_os_determined_failure_mode_;
+ guard_xfg_dispatch_function_pointer_ =
+ other.guard_xfg_dispatch_function_pointer_;
+ guard_xfg_table_dispatch_function_pointer_ =
+ other.guard_xfg_table_dispatch_function_pointer_;
+ cast_guard_os_determined_failure_mode_ =
+ other.cast_guard_os_determined_failure_mode_;
guard_memcpy_function_pointer_ = other.guard_memcpy_function_pointer_;
uma_function_pointers_ = other.uma_function_pointers_;
@@ -859,8 +927,9 @@ LoadConfiguration& LoadConfiguration::operator=(const LoadConfiguration& other)
dynamic_relocs_.reserve(other.dynamic_relocs_.size());
std::transform(other.dynamic_relocs_.begin(), other.dynamic_relocs_.end(),
std::back_inserter(dynamic_relocs_),
- [] (const std::unique_ptr<DynamicRelocation>& R) { return R->clone(); }
- );
+ [](const std::unique_ptr<DynamicRelocation>& R) {
+ return R->clone();
+ });
}
return *this;
}
@@ -870,200 +939,247 @@ void LoadConfiguration::accept(Visitor& visitor) const {
}
std::string LoadConfiguration::to_string() const {
- using namespace fmt;
static constexpr auto WIDTH = 65;
std::ostringstream oss;
- oss << format("{:{}} 0x{:06x}\n", "Size:", WIDTH, size())
- << format("{:{}} {}\n", "Timestamp:", WIDTH, timedatestamp())
- << format("{:{}} {}.{}\n", "version:", WIDTH, major_version(), minor_version())
- << format("{:{}} {}\n", "GlobalFlags Clear:", WIDTH, global_flags_clear())
- << format("{:{}} {}\n", "GlobalFlags Set:", WIDTH, global_flags_set())
- << format("{:{}} {}\n", "Critical Section Default Timeout:", WIDTH, critical_section_default_timeout())
- << format("{:{}} {}\n", "Decommit Free Block Threshold:", WIDTH, decommit_free_block_threshold())
- << format("{:{}} {}\n", "Decommit Total Free Threshold:", WIDTH, decommit_total_free_threshold())
- << format("{:{}} {}\n", "Lock Prefix Table:", WIDTH, lock_prefix_table())
- << format("{:{}} {}\n", "Maximum Allocation Size:", WIDTH, maximum_allocation_size())
- << format("{:{}} {}\n", "Virtual Memory Threshold:", WIDTH, virtual_memory_threshold())
- << format("{:{}} {}\n", "Process Affinity Mask:", WIDTH, process_affinity_mask())
- << format("{:{}} {}\n", "Process Heap Flags:", WIDTH, process_heap_flags())
- << format("{:{}} {}\n", "CSD Version:", WIDTH, csd_version())
- << format("{:{}} {}\n", "Dependent Load Flag:", WIDTH, dependent_load_flags())
- << format("{:{}} {}\n", "Edit List:", WIDTH, editlist())
- << format("{:{}} 0x{:016x}\n", "Security Cookie:", WIDTH, security_cookie());
+ oss << fmt::format("{:{}} {:#08x}\n", "Size:", WIDTH, size())
+ << fmt::format("{:{}} {}\n", "Timestamp:", WIDTH, timedatestamp())
+ << fmt::format("{:{}} {}.{}\n", "version:", WIDTH, major_version(),
+ minor_version())
+ << fmt::format("{:{}} {}\n", "GlobalFlags Clear:", WIDTH,
+ global_flags_clear())
+ << fmt::format("{:{}} {}\n", "GlobalFlags Set:", WIDTH, global_flags_set())
+ << fmt::format("{:{}} {}\n", "Critical Section Default Timeout:", WIDTH,
+ critical_section_default_timeout())
+ << fmt::format("{:{}} {}\n", "Decommit Free Block Threshold:", WIDTH,
+ decommit_free_block_threshold())
+ << fmt::format("{:{}} {}\n", "Decommit Total Free Threshold:", WIDTH,
+ decommit_total_free_threshold())
+ << fmt::format("{:{}} {}\n", "Lock Prefix Table:", WIDTH,
+ lock_prefix_table())
+ << fmt::format("{:{}} {}\n", "Maximum Allocation Size:", WIDTH,
+ maximum_allocation_size())
+ << fmt::format("{:{}} {}\n", "Virtual Memory Threshold:", WIDTH,
+ virtual_memory_threshold())
+ << fmt::format("{:{}} {}\n", "Process Affinity Mask:", WIDTH,
+ process_affinity_mask())
+ << fmt::format("{:{}} {}\n", "Process Heap Flags:", WIDTH,
+ process_heap_flags())
+ << fmt::format("{:{}} {}\n", "CSD Version:", WIDTH, csd_version())
+ << fmt::format("{:{}} {}\n", "Dependent Load Flag:", WIDTH,
+ dependent_load_flags())
+ << fmt::format("{:{}} {}\n", "Edit List:", WIDTH, editlist())
+ << fmt::format("{:{}} {:#018x}\n", "Security Cookie:", WIDTH,
+ security_cookie());
if (auto val = se_handler_table()) {
- oss << format("{:{}} 0x{:06x}\n", "SEH Table:", WIDTH, *val);
+ oss << fmt::format("{:{}} {:#08x}\n", "SEH Table:", WIDTH, *val);
}
if (auto val = se_handler_count()) {
- oss << format("{:{}} {}\n", "SEH Count:", WIDTH, *val);
+ oss << fmt::format("{:{}} {}\n", "SEH Count:", WIDTH, *val);
}
if (auto val = guard_cf_check_function_pointer()) {
- oss << format("{:{}} 0x{:016x}\n", "Guard CF address of check-function pointer:", WIDTH, *val);
+ oss << fmt::format("{:{}} {:#018x}\n",
+ "Guard CF address of check-function pointer:", WIDTH, *val);
}
if (auto val = guard_cf_dispatch_function_pointer()) {
- oss << format("{:{}} 0x{:016x}\n", "Guard CF address of dispatch-function pointer:", WIDTH, *val);
+ oss << fmt::format("{:{}} {:#018x}\n",
+ "Guard CF address of dispatch-function pointer:", WIDTH,
+ *val);
}
if (auto val = guard_cf_function_table()) {
- oss << format("{:{}} 0x{:016x}\n", "Guard CF function table:", WIDTH, *val);
+ oss << fmt::format("{:{}} {:#018x}\n", "Guard CF function table:", WIDTH,
+ *val);
}
if (auto val = guard_cf_function_count()) {
- oss << format("{:{}} {}\n", "Guard CF function count:", WIDTH, *val);
+ oss << fmt::format("{:{}} {}\n", "Guard CF function count:", WIDTH, *val);
}
if (auto val = guard_flags(); val && *val != 0) {
- oss << format("{:{}} {}\n", "Guard Flags:", WIDTH,
- fmt::join(guard_cf_flags_list(), ","));
+ oss << fmt::format("{:{}} {}\n", "Guard Flags:", WIDTH,
+ fmt::join(guard_cf_flags_list(), ","));
}
if (const CodeIntegrity* CI = code_integrity()) {
- oss << format("{:{}} {}\n", "Code Integrity Flags:", WIDTH, CI->flags())
- << format("{:{}} 0x{:08x}\n", "Code Integrity Catalog:", WIDTH, CI->catalog())
- << format("{:{}} 0x{:08x}\n", "Code Integrity Catalog Offset:", WIDTH, CI->catalog_offset())
- << format("{:{}} {}\n", "Code Integrity Reserved:", WIDTH, CI->reserved());
+ oss << fmt::format("{:{}} {}\n", "Code Integrity Flags:", WIDTH, CI->flags())
+ << fmt::format("{:{}} {:#010x}\n", "Code Integrity Catalog:", WIDTH,
+ CI->catalog())
+ << fmt::format("{:{}} {:#010x}\n", "Code Integrity Catalog Offset:", WIDTH,
+ CI->catalog_offset())
+ << fmt::format("{:{}} {}\n", "Code Integrity Reserved:", WIDTH,
+ CI->reserved());
}
if (auto val = guard_address_taken_iat_entry_table()) {
- oss << format("{:{}} 0x{:016x}\n", "Guard CF address taken IAT entry table:", WIDTH, *val);
+ oss << fmt::format("{:{}} {:#018x}\n",
+ "Guard CF address taken IAT entry table:", WIDTH, *val);
}
if (auto val = guard_address_taken_iat_entry_count()) {
- oss << format("{:{}} {}\n", "Guard CF address taken IAT entry count:", WIDTH, *val);
+ oss << fmt::format("{:{}} {}\n",
+ "Guard CF address taken IAT entry count:", WIDTH, *val);
}
if (auto val = guard_long_jump_target_table()) {
- oss << format("{:{}} 0x{:016x}\n", "Guard CF long jump target table:", WIDTH, *val);
+ oss << fmt::format("{:{}} {:#018x}\n",
+ "Guard CF long jump target table:", WIDTH, *val);
}
if (auto val = guard_long_jump_target_count()) {
- oss << format("{:{}} {}\n", "Guard CF long jump target count:", WIDTH, *val);
+ oss << fmt::format("{:{}} {}\n", "Guard CF long jump target count:", WIDTH,
+ *val);
}
if (auto val = dynamic_value_reloc_table()) {
- oss << format("{:{}} 0x{:016x}\n", "Dynamic value relocation table:", WIDTH, *val);
+ oss << fmt::format("{:{}} {:#018x}\n",
+ "Dynamic value relocation table:", WIDTH, *val);
}
if (auto val = hybrid_metadata_pointer()) {
- oss << format("{:{}} 0x{:016x}\n", "Hybrid metadata pointer:", WIDTH, *val);
+ oss << fmt::format("{:{}} {:#018x}\n", "Hybrid metadata pointer:", WIDTH,
+ *val);
}
if (auto val = guard_rf_failure_routine()) {
- oss << format("{:{}} 0x{:016x}\n", "Guard RF address of failure-function:", WIDTH, *val);
+ oss << fmt::format("{:{}} {:#018x}\n",
+ "Guard RF address of failure-function:", WIDTH, *val);
}
if (auto val = guard_rf_failure_routine_function_pointer()) {
- oss << format("{:{}} 0x{:016x}\n", "Guard RF address of failure-function pointer:", WIDTH, *val);
+ oss << fmt::format("{:{}} {:#018x}\n",
+ "Guard RF address of failure-function pointer:", WIDTH,
+ *val);
}
if (auto val = dynamic_value_reloctable_offset()) {
- oss << format("{:{}} 0x{:016x}\n", "Dynamic value relocation table offset:", WIDTH, *val);
+ oss << fmt::format("{:{}} {:#018x}\n",
+ "Dynamic value relocation table offset:", WIDTH, *val);
}
if (auto val = dynamic_value_reloctable_section()) {
- oss << format("{:{}} {}\n", "Dynamic value relocation table section:", WIDTH, *val);
+ oss << fmt::format("{:{}} {}\n",
+ "Dynamic value relocation table section:", WIDTH, *val);
}
if (auto val = reserved2()) {
- oss << format("{:{}} {}\n", "Reserved2:", WIDTH, *val);
+ oss << fmt::format("{:{}} {}\n", "Reserved2:", WIDTH, *val);
}
if (auto val = guard_rf_verify_stackpointer_function_pointer()) {
- oss << format("{:{}} 0x{:016x}\n", "Guard RF address of stack pointer verification function pointer:", WIDTH, *val);
+ oss << fmt::format(
+ "{:{}} {:#018x}\n",
+ "Guard RF address of stack pointer verification function pointer:", WIDTH,
+ *val
+ );
}
if (auto val = hotpatch_table_offset()) {
- oss << format("{:{}} 0x{:08}\n", "Hot patching table offset:", WIDTH, *val);
+ oss << fmt::format("{:{}} {:#010x}\n", "Hot patching table offset:", WIDTH,
+ *val);
}
if (auto val = reserved3()) {
- oss << format("{:{}} {}\n", "Reserved3:", WIDTH, *val);
+ oss << fmt::format("{:{}} {}\n", "Reserved3:", WIDTH, *val);
}
if (auto val = enclave_configuration_ptr()) {
- oss << format("{:{}} 0x{:016x}\n", "Enclave configuration pointer", WIDTH, *val);
+ oss << fmt::format("{:{}} {:#018x}\n", "Enclave configuration pointer", WIDTH,
+ *val);
}
if (auto val = volatile_metadata_pointer()) {
- oss << format("{:{}} 0x{:016x}\n", "Volatile metadata pointer", WIDTH, *val);
+ oss << fmt::format("{:{}} {:#018x}\n", "Volatile metadata pointer", WIDTH,
+ *val);
}
if (auto val = guard_eh_continuation_table()) {
- oss << format("{:{}} 0x{:016x}\n", "Guard EH continuation table", WIDTH, *val);
+ oss << fmt::format("{:{}} {:#018x}\n", "Guard EH continuation table", WIDTH,
+ *val);
}
if (auto val = guard_eh_continuation_count()) {
- oss << format("{:{}} {}\n", "Guard EH continuation count", WIDTH, *val);
+ oss << fmt::format("{:{}} {}\n", "Guard EH continuation count", WIDTH, *val);
}
if (auto val = guard_xfg_check_function_pointer()) {
- oss << format("{:{}} 0x{:016x}\n", "Guard XFG address of check-function pointer", WIDTH, *val);
+ oss << fmt::format("{:{}} {:#018x}\n",
+ "Guard XFG address of check-function pointer", WIDTH, *val);
}
if (auto val = guard_xfg_dispatch_function_pointer()) {
- oss << format("{:{}} 0x{:016x}\n", "Guard XFG address of dispatch-function pointer", WIDTH, *val);
+ oss << fmt::format("{:{}} {:#018x}\n",
+ "Guard XFG address of dispatch-function pointer", WIDTH,
+ *val);
}
if (auto val = guard_xfg_table_dispatch_function_pointer()) {
- oss << format("{:{}} 0x{:016x}\n", "Guard XFG address of dispatch-table-function pointer", WIDTH, *val);
+ oss << fmt::format("{:{}} {:#018x}\n",
+ "Guard XFG address of dispatch-table-function pointer",
+ WIDTH, *val);
}
if (auto val = cast_guard_os_determined_failure_mode()) {
- oss << format("{:{}} 0x{:016x}\n", "CastGuard OS determined failure mode", WIDTH, *val);
+ oss << fmt::format("{:{}} {:#018x}\n", "CastGuard OS determined failure mode",
+ WIDTH, *val);
}
if (auto val = guard_memcpy_function_pointer()) {
- oss << format("{:{}} 0x{:016x}\n", "Guard memcpy function pointer", WIDTH, *val);
+ oss << fmt::format("{:{}} {:#018x}\n", "Guard memcpy function pointer", WIDTH,
+ *val);
}
if (auto val = uma_function_pointers()) {
- oss << format("{:{}} 0x{:016x}\n", "UMA function pointers", WIDTH, *val);
+ oss << fmt::format("{:{}} {:#018x}\n", "UMA function pointers", WIDTH, *val);
}
if (const CHPEMetadata* metadata = chpe_metadata()) {
- oss << " CHPE Metadata:\n"
- << indent(metadata->to_string(), 4);
+ oss << " CHPE Metadata:\n" << indent(metadata->to_string(), 4);
}
if (!seh_rva_.empty()) {
- oss << format(" SEH Table ({}) {{\n", seh_rva_.size()) ;
+ oss << fmt::format(" SEH Table ({}) {{\n", seh_rva_.size());
for (uint32_t RVA : seh_rva_) {
- oss << format(" 0x{:08x}\n", RVA);
+ oss << fmt::format(" {:#010x}\n", RVA);
}
oss << "}\n";
}
if (!guard_cf_functions_.empty()) {
- oss << format(" Guard CF Function ({}) {{\n", guard_cf_functions_.size()) ;
+ oss << fmt::format(" Guard CF Function ({}) {{\n",
+ guard_cf_functions_.size());
for (const guard_function_t& F : guard_cf_functions_) {
- oss << format(" 0x{:08x} ({})\n", F.rva, F.extra);
+ oss << fmt::format(" {:#010x} ({})\n", F.rva, F.extra);
}
oss << "}\n";
}
if (!guard_address_taken_iat_entries_.empty()) {
- oss << format(" Guard CF Address Taken IAT ({}) {{\n", guard_address_taken_iat_entries_.size()) ;
+ oss << fmt::format(" Guard CF Address Taken IAT ({}) {{\n",
+ guard_address_taken_iat_entries_.size());
for (const guard_function_t& F : guard_address_taken_iat_entries_) {
- oss << format(" 0x{:08x} ({})\n", F.rva, F.extra);
+ oss << fmt::format(" {:#010x} ({})\n", F.rva, F.extra);
}
oss << "}\n";
}
if (!guard_long_jump_targets_.empty()) {
- oss << format(" Guard CF Long Jump Target ({}) {{\n", guard_long_jump_targets_.size()) ;
+ oss << fmt::format(" Guard CF Long Jump Target ({}) {{\n",
+ guard_long_jump_targets_.size());
for (const guard_function_t& F : guard_long_jump_targets_) {
- oss << format(" 0x{:08x} ({})\n", F.rva, F.extra);
+ oss << fmt::format(" {:#010x} ({})\n", F.rva, F.extra);
}
oss << "}\n";
}
if (!guard_eh_continuation_functions_.empty()) {
- oss << format(" Guard EH Continuation ({}) {{\n", guard_eh_continuation_functions_.size()) ;
+ oss << fmt::format(" Guard EH Continuation ({}) {{\n",
+ guard_eh_continuation_functions_.size());
for (const guard_function_t& F : guard_eh_continuation_functions_) {
- oss << format(" 0x{:08x} ({})\n", F.rva, F.extra);
+ oss << fmt::format(" {:#010x} ({})\n", F.rva, F.extra);
}
oss << "}\n";
}
@@ -1073,41 +1189,39 @@ std::string LoadConfiguration::to_string() const {
}
if (const EnclaveConfiguration* enclave = enclave_config()) {
- oss << " Enclave Configuration:\n"
- << indent(enclave->to_string(), 4);
+ oss << " Enclave Configuration:\n" << indent(enclave->to_string(), 4);
}
if (const VolatileMetadata* metadata = volatile_metadata()) {
- oss << " Volatile Metadata:\n"
- << indent(metadata->to_string(), 4);
+ oss << " Volatile Metadata:\n" << indent(metadata->to_string(), 4);
}
return oss.str();
}
const char* to_string(LoadConfiguration::IMAGE_GUARD e) {
- #define ENTRY(X) std::pair(LoadConfiguration::IMAGE_GUARD::X, #X)
- STRING_MAP enums2str {
- ENTRY(NONE),
- ENTRY(CF_INSTRUMENTED),
- ENTRY(CFW_INSTRUMENTED),
- ENTRY(CF_FUNCTION_TABLE_PRESENT),
- ENTRY(SECURITY_COOKIE_UNUSED),
- ENTRY(PROTECT_DELAYLOAD_IAT),
- ENTRY(DELAYLOAD_IAT_IN_ITS_OWN_SECTION),
- ENTRY(CF_EXPORT_SUPPRESSION_INFO_PRESENT),
- ENTRY(CF_ENABLE_EXPORT_SUPPRESSION),
- ENTRY(CF_LONGJUMP_TABLE_PRESENT),
- ENTRY(RF_INSTRUMENTED),
- ENTRY(RF_ENABLE),
- ENTRY(RF_STRICT),
- ENTRY(RETPOLINE_PRESENT),
- ENTRY(EH_CONTINUATION_TABLE_PRESENT),
- ENTRY(XFG_ENABLED),
- ENTRY(CASTGUARD_PRESENT),
- ENTRY(MEMCPY_PRESENT),
+#define ENTRY(X) std::pair(LoadConfiguration::IMAGE_GUARD::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(NONE),
+ ENTRY(CF_INSTRUMENTED),
+ ENTRY(CFW_INSTRUMENTED),
+ ENTRY(CF_FUNCTION_TABLE_PRESENT),
+ ENTRY(SECURITY_COOKIE_UNUSED),
+ ENTRY(PROTECT_DELAYLOAD_IAT),
+ ENTRY(DELAYLOAD_IAT_IN_ITS_OWN_SECTION),
+ ENTRY(CF_EXPORT_SUPPRESSION_INFO_PRESENT),
+ ENTRY(CF_ENABLE_EXPORT_SUPPRESSION),
+ ENTRY(CF_LONGJUMP_TABLE_PRESENT),
+ ENTRY(RF_INSTRUMENTED),
+ ENTRY(RF_ENABLE),
+ ENTRY(RF_STRICT),
+ ENTRY(RETPOLINE_PRESENT),
+ ENTRY(EH_CONTINUATION_TABLE_PRESENT),
+ ENTRY(XFG_ENABLED),
+ ENTRY(CASTGUARD_PRESENT),
+ ENTRY(MEMCPY_PRESENT),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -1116,30 +1230,28 @@ const char* to_string(LoadConfiguration::IMAGE_GUARD e) {
}
std::vector<LoadConfiguration::IMAGE_GUARD>
- LoadConfiguration::guard_cf_flags_list() const
-{
+ LoadConfiguration::guard_cf_flags_list() const {
std::vector<IMAGE_GUARD> flags_list;
flags_list.reserve(3);
std::copy_if(IMAGE_GUARD_LIST.begin(), IMAGE_GUARD_LIST.end(),
std::back_inserter(flags_list),
- [this] (IMAGE_GUARD f) { return has(f); });
+ [this](IMAGE_GUARD f) { return has(f); });
return flags_list;
-
}
template std::unique_ptr<LoadConfiguration>
- LoadConfiguration::parse<details::PE32>(Parser& ctx, BinaryStream& stream);
+ LoadConfiguration::parse<details::PE32>(Parser& ctx, BinaryStream& stream);
template std::unique_ptr<LoadConfiguration>
- LoadConfiguration::parse<details::PE64>(Parser& ctx, BinaryStream& stream);
+ LoadConfiguration::parse<details::PE64>(Parser& ctx, BinaryStream& stream);
template ok_error_t LoadConfiguration::parse_enclave_config<details::PE32>(
- Parser& ctx, LoadConfiguration& config);
+ Parser& ctx, LoadConfiguration& config
+);
template ok_error_t LoadConfiguration::parse_enclave_config<details::PE64>(
- Parser& ctx, LoadConfiguration& config);
-
-} // namespace PE
-} // namespace LIEF
+ Parser& ctx, LoadConfiguration& config
+);
+} // namespace LIEF::PE
diff --git a/deps/LIEF/src/PE/LoadConfigurations/VolatileMetadata.cpp b/deps/LIEF/src/PE/LoadConfigurations/VolatileMetadata.cpp
index a5767316a63..1d7cfe8f9cb 100644
--- a/deps/LIEF/src/PE/LoadConfigurations/VolatileMetadata.cpp
+++ b/deps/LIEF/src/PE/LoadConfigurations/VolatileMetadata.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,35 +19,31 @@
#include "LIEF/PE/LoadConfigurations/VolatileMetadata.hpp"
#include "LIEF/BinaryStream/BinaryStream.hpp"
-#include "PE/Structures.hpp"
-
#include "logging.hpp"
-#include "internal_utils.hpp"
namespace LIEF::PE {
std::string VolatileMetadata::to_string() const {
- using namespace fmt;
static constexpr auto WIDTH = 30;
std::ostringstream os;
- os << format("{:{}}: 0x{:08x}\n", "Size", WIDTH, size())
- << format("{:{}}: {} (0x{:04x})\n", "Min version", WIDTH,
- min_version() & 0x7FFF, min_version())
- << format("{:{}}: {} (0x{:04x})\n", "Max version", WIDTH,
- max_version() & 0x7FFF, max_version())
- << format("{:{}}: 0x{:08x}\n", "Volatile access table RVA", WIDTH,
- access_table_rva())
- << format("{:{}}: {}\n", "Volatile access table size", WIDTH,
- access_table_size())
- << format("{:{}}: 0x{:08x}\n", "Volatile range info table RVA", WIDTH,
- info_range_rva())
- << format("{:{}}: {}\n", "Volatile range info table size", WIDTH,
- info_ranges_size());
+ os << fmt::format("{:{}}: {:#010x}\n", "Size", WIDTH, size())
+ << fmt::format("{:{}}: {} ({:#06x})\n", "Min version", WIDTH,
+ min_version() & 0x7FFF, min_version())
+ << fmt::format("{:{}}: {} ({:#06x})\n", "Max version", WIDTH,
+ max_version() & 0x7FFF, max_version())
+ << fmt::format("{:{}}: {:#010x}\n", "Volatile access table RVA", WIDTH,
+ access_table_rva())
+ << fmt::format("{:{}}: {}\n", "Volatile access table size", WIDTH,
+ access_table_size())
+ << fmt::format("{:{}}: {:#010x}\n", "Volatile range info table RVA", WIDTH,
+ info_range_rva())
+ << fmt::format("{:{}}: {}\n", "Volatile range info table size", WIDTH,
+ info_ranges_size());
if (const auto& rva_table = access_table(); !rva_table.empty()) {
os << "\nVolatile Access RVA Table: {\n";
for (uint32_t rva : rva_table) {
- os << format(" 0x{:08x}\n", rva);
+ os << fmt::format(" {:#010x}\n", rva);
}
os << "}\n";
}
@@ -55,8 +51,8 @@ std::string VolatileMetadata::to_string() const {
if (auto ranges = info_ranges(); !ranges.empty()) {
os << "\nVolatile Info Range Table: {\n";
for (const range_t& range : ranges) {
- os << format(" [0x{:08x}, 0x{:08x}] ({} bytes)\n", range.start,
- range.end(), range.size);
+ os << fmt::format(" [{:#010x}, {:#010x}] ({} bytes)\n", range.start,
+ range.end(), range.size);
}
os << "}\n";
}
@@ -64,9 +60,8 @@ std::string VolatileMetadata::to_string() const {
return os.str();
}
-std::unique_ptr<VolatileMetadata>
- VolatileMetadata::parse(Parser& ctx, BinaryStream& stream)
-{
+std::unique_ptr<VolatileMetadata> VolatileMetadata::parse(Parser& ctx,
+ BinaryStream& stream) {
auto size = stream.read<uint32_t>();
if (!size) {
LIEF_DEBUG("{}:{}", __FUNCTION__, __LINE__);
@@ -111,12 +106,11 @@ std::unique_ptr<VolatileMetadata>
auto meta = std::make_unique<VolatileMetadata>();
(*meta)
- .size(*size)
- .min_version(*min_version)
- .max_version(*max_version)
- .access_table_rva(*access_table_rva)
- .info_range_rva(*info_range_rva)
- ;
+ .size(*size)
+ .min_version(*min_version)
+ .max_version(*max_version)
+ .access_table_rva(*access_table_rva)
+ .info_range_rva(*info_range_rva);
if (*access_table_rva > 0 && *access_table_sz > 0) {
uint32_t offset = ctx.bin().rva_to_offset(*access_table_rva);
diff --git a/deps/LIEF/src/PE/OptionalHeader.cpp b/deps/LIEF/src/PE/OptionalHeader.cpp
index 6d6cd5f0062..20d3bd73617 100644
--- a/deps/LIEF/src/PE/OptionalHeader.cpp
+++ b/deps/LIEF/src/PE/OptionalHeader.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,24 +25,24 @@
#include <spdlog/fmt/fmt.h>
#include <spdlog/fmt/ranges.h>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
static constexpr std::array DLL_CHARACTERISTICS_LIST = {
- OptionalHeader::DLL_CHARACTERISTICS::HIGH_ENTROPY_VA,
- OptionalHeader::DLL_CHARACTERISTICS::DYNAMIC_BASE,
- OptionalHeader::DLL_CHARACTERISTICS::FORCE_INTEGRITY,
- OptionalHeader::DLL_CHARACTERISTICS::NX_COMPAT,
- OptionalHeader::DLL_CHARACTERISTICS::NO_ISOLATION,
- OptionalHeader::DLL_CHARACTERISTICS::NO_SEH,
- OptionalHeader::DLL_CHARACTERISTICS::NO_BIND,
- OptionalHeader::DLL_CHARACTERISTICS::APPCONTAINER,
- OptionalHeader::DLL_CHARACTERISTICS::WDM_DRIVER,
- OptionalHeader::DLL_CHARACTERISTICS::GUARD_CF,
- OptionalHeader::DLL_CHARACTERISTICS::TERMINAL_SERVER_AWARE,
+ OptionalHeader::DLL_CHARACTERISTICS::HIGH_ENTROPY_VA,
+ OptionalHeader::DLL_CHARACTERISTICS::DYNAMIC_BASE,
+ OptionalHeader::DLL_CHARACTERISTICS::FORCE_INTEGRITY,
+ OptionalHeader::DLL_CHARACTERISTICS::NX_COMPAT,
+ OptionalHeader::DLL_CHARACTERISTICS::NO_ISOLATION,
+ OptionalHeader::DLL_CHARACTERISTICS::NO_SEH,
+ OptionalHeader::DLL_CHARACTERISTICS::NO_BIND,
+ OptionalHeader::DLL_CHARACTERISTICS::APPCONTAINER,
+ OptionalHeader::DLL_CHARACTERISTICS::WDM_DRIVER,
+ OptionalHeader::DLL_CHARACTERISTICS::GUARD_CF,
+ OptionalHeader::DLL_CHARACTERISTICS::TERMINAL_SERVER_AWARE,
};
-OptionalHeader::OptionalHeader(const details::pe32_optional_header& header):
+OptionalHeader::OptionalHeader(const details::pe32_optional_header& header) :
magic_(static_cast<PE_TYPE>(header.Magic)),
major_linker_version_(header.MajorLinkerVersion),
minor_linker_version_(header.MinorLinkerVersion),
@@ -72,10 +72,9 @@ OptionalHeader::OptionalHeader(const details::pe32_optional_header& header):
sizeof_heap_reserve_(header.SizeOfHeapReserve),
sizeof_heap_commit_(header.SizeOfHeapCommit),
loader_flags_(header.LoaderFlags),
- nb_rva_size_(header.NumberOfRvaAndSize)
-{}
+ nb_rva_size_(header.NumberOfRvaAndSize) {}
-OptionalHeader::OptionalHeader(const details::pe64_optional_header& header):
+OptionalHeader::OptionalHeader(const details::pe64_optional_header& header) :
magic_(static_cast<PE_TYPE>(header.Magic)),
major_linker_version_(header.MajorLinkerVersion),
minor_linker_version_(header.MinorLinkerVersion),
@@ -84,7 +83,7 @@ OptionalHeader::OptionalHeader(const details::pe64_optional_header& header):
sizeof_uninitialized_data_(header.SizeOfUninitializedData),
entrypoint_(header.AddressOfEntryPoint),
baseof_code_(header.BaseOfCode),
- baseof_data_(0),
+
imagebase_(header.ImageBase),
section_align_(header.SectionAlignment),
file_align_(header.FileAlignment),
@@ -105,8 +104,7 @@ OptionalHeader::OptionalHeader(const details::pe64_optional_header& header):
sizeof_heap_reserve_(header.SizeOfHeapReserve),
sizeof_heap_commit_(header.SizeOfHeapCommit),
loader_flags_(header.LoaderFlags),
- nb_rva_size_(header.NumberOfRvaAndSize)
-{}
+ nb_rva_size_(header.NumberOfRvaAndSize) {}
OptionalHeader OptionalHeader::create(PE_TYPE type) {
@@ -129,12 +127,13 @@ OptionalHeader OptionalHeader::create(PE_TYPE type) {
return header;
}
-std::vector<OptionalHeader::DLL_CHARACTERISTICS> OptionalHeader::dll_characteristics_list() const {
+std::vector<OptionalHeader::DLL_CHARACTERISTICS>
+ OptionalHeader::dll_characteristics_list() const {
std::vector<DLL_CHARACTERISTICS> characteristics;
characteristics.reserve(3);
std::copy_if(DLL_CHARACTERISTICS_LIST.begin(), DLL_CHARACTERISTICS_LIST.end(),
std::back_inserter(characteristics),
- [this] (DLL_CHARACTERISTICS f) { return has(f); });
+ [this](DLL_CHARACTERISTICS f) { return has(f); });
return characteristics;
}
@@ -144,79 +143,103 @@ void OptionalHeader::accept(LIEF::Visitor& visitor) const {
}
std::ostream& operator<<(std::ostream& os, const OptionalHeader& entry) {
- const std::vector<OptionalHeader::DLL_CHARACTERISTICS> list = entry.dll_characteristics_list();
+ const std::vector<OptionalHeader::DLL_CHARACTERISTICS> list =
+ entry.dll_characteristics_list();
std::vector<std::string> list_str;
list_str.reserve(list.size());
std::transform(list.begin(), list.end(), std::back_inserter(list_str),
- [] (const auto c) { return to_string(c); });
-
- os << fmt::format("Magic: 0x{:04x} ({})\n", (uint32_t)entry.magic(), to_string(entry.magic()))
- << fmt::format("Linker version: {}.{}\n", entry.major_linker_version(), entry.minor_linker_version())
- << fmt::format("Size of code: 0x{:x}\n", entry.sizeof_code())
- << fmt::format("Size of initialized data: 0x{:x}\n", entry.sizeof_initialized_data())
- << fmt::format("Size of uninitialized data: 0x{:x}\n", entry.sizeof_uninitialized_data())
- << fmt::format("Entrypoint: 0x{:x}\n", entry.addressof_entrypoint())
- << fmt::format("Base of code: 0x{:x}\n", entry.baseof_code())
- << fmt::format("Base of data: 0x{:x}\n", entry.baseof_data())
- << fmt::format("Imagebase: 0x{:x}\n", entry.imagebase())
- << fmt::format("Section alignment: 0x{:x}\n", entry.section_alignment())
- << fmt::format("File alignment: 0x{:x}\n", entry.file_alignment())
- << fmt::format("Operating system version: {}.{}\n", entry.major_operating_system_version(), entry.minor_operating_system_version())
- << fmt::format("Image version: {}.{}\n", entry.major_image_version(), entry.minor_image_version())
- << fmt::format("Subsystem version: {}.{}\n", entry.major_subsystem_version(), entry.minor_subsystem_version())
- << fmt::format("Win32 Version Value: 0x{:x}\n", entry.win32_version_value())
- << fmt::format("Size of image: 0x{:x}\n", entry.sizeof_image())
- << fmt::format("Size of headers: 0x{:x}\n", entry.sizeof_headers())
- << fmt::format("Checksum: 0x{:x}\n", entry.checksum())
- << fmt::format("Subsystem: {}\n", to_string(entry.subsystem()))
+ [](const auto c) { return to_string(c); });
+
+ os << fmt::format("Magic: {:#06x} ({})\n",
+ (uint32_t)entry.magic(), to_string(entry.magic()))
+ << fmt::format("Linker version: {}.{}\n",
+ entry.major_linker_version(), entry.minor_linker_version())
+ << fmt::format("Size of code: {:#x}\n", entry.sizeof_code())
+ << fmt::format("Size of initialized data: {:#x}\n",
+ entry.sizeof_initialized_data())
+ << fmt::format("Size of uninitialized data: {:#x}\n",
+ entry.sizeof_uninitialized_data())
+ << fmt::format("Entrypoint: {:#x}\n",
+ entry.addressof_entrypoint())
+ << fmt::format("Base of code: {:#x}\n", entry.baseof_code())
+ << fmt::format("Base of data: {:#x}\n", entry.baseof_data())
+ << fmt::format("Imagebase: {:#x}\n", entry.imagebase())
+ << fmt::format("Section alignment: {:#x}\n",
+ entry.section_alignment())
+ << fmt::format("File alignment: {:#x}\n", entry.file_alignment())
+ << fmt::format("Operating system version: {}.{}\n",
+ entry.major_operating_system_version(),
+ entry.minor_operating_system_version())
+ << fmt::format("Image version: {}.{}\n",
+ entry.major_image_version(), entry.minor_image_version())
+ << fmt::format("Subsystem version: {}.{}\n",
+ entry.major_subsystem_version(),
+ entry.minor_subsystem_version())
+ << fmt::format("Win32 Version Value: {:#x}\n",
+ entry.win32_version_value())
+ << fmt::format("Size of image: {:#x}\n", entry.sizeof_image())
+ << fmt::format("Size of headers: {:#x}\n", entry.sizeof_headers())
+ << fmt::format("Checksum: {:#x}\n", entry.checksum())
+ << fmt::format("Subsystem: {}\n",
+ to_string(entry.subsystem()))
<< fmt::format("Dll characteristics: {}\n", fmt::join(list_str, ", "))
- << fmt::format("Size of stack reserve: 0x{:x}\n", entry.sizeof_stack_reserve())
- << fmt::format("Size of stack commit: 0x{:x}\n", entry.sizeof_stack_commit())
- << fmt::format("Size of heap reserve: 0x{:x}\n", entry.sizeof_heap_reserve())
- << fmt::format("Size of heap commit: 0x{:x}\n", entry.sizeof_heap_commit())
- << fmt::format("Loader flags: 0x{:x}\n", entry.loader_flags())
- << fmt::format("Number of directories: {}\n", entry.numberof_rva_and_size());
+ << fmt::format("Size of stack reserve: {:#x}\n",
+ entry.sizeof_stack_reserve())
+ << fmt::format("Size of stack commit: {:#x}\n",
+ entry.sizeof_stack_commit())
+ << fmt::format("Size of heap reserve: {:#x}\n",
+ entry.sizeof_heap_reserve())
+ << fmt::format("Size of heap commit: {:#x}\n",
+ entry.sizeof_heap_commit())
+ << fmt::format("Loader flags: {:#x}\n", entry.loader_flags())
+ << fmt::format("Number of directories: {}\n",
+ entry.numberof_rva_and_size());
return os;
}
const char* to_string(OptionalHeader::DLL_CHARACTERISTICS e) {
- CONST_MAP(OptionalHeader::DLL_CHARACTERISTICS, const char*, 11) enumStrings {
- { OptionalHeader::DLL_CHARACTERISTICS::HIGH_ENTROPY_VA, "HIGH_ENTROPY_VA" },
- { OptionalHeader::DLL_CHARACTERISTICS::DYNAMIC_BASE, "DYNAMIC_BASE" },
- { OptionalHeader::DLL_CHARACTERISTICS::FORCE_INTEGRITY, "FORCE_INTEGRITY" },
- { OptionalHeader::DLL_CHARACTERISTICS::NX_COMPAT, "NX_COMPAT" },
- { OptionalHeader::DLL_CHARACTERISTICS::NO_ISOLATION, "NO_ISOLATION" },
- { OptionalHeader::DLL_CHARACTERISTICS::NO_SEH, "NO_SEH" },
- { OptionalHeader::DLL_CHARACTERISTICS::NO_BIND, "NO_BIND" },
- { OptionalHeader::DLL_CHARACTERISTICS::APPCONTAINER, "APPCONTAINER" },
- { OptionalHeader::DLL_CHARACTERISTICS::WDM_DRIVER, "WDM_DRIVER" },
- { OptionalHeader::DLL_CHARACTERISTICS::GUARD_CF, "GUARD_CF" },
- { OptionalHeader::DLL_CHARACTERISTICS::TERMINAL_SERVER_AWARE, "TERMINAL_SERVER_AWARE" },
+ CONST_MAP(OptionalHeader::DLL_CHARACTERISTICS, const char*, 11)
+ enumStrings{
+ {OptionalHeader::DLL_CHARACTERISTICS::HIGH_ENTROPY_VA, "HIGH_ENTROPY_VA"},
+ {OptionalHeader::DLL_CHARACTERISTICS::DYNAMIC_BASE, "DYNAMIC_BASE"},
+ {OptionalHeader::DLL_CHARACTERISTICS::FORCE_INTEGRITY, "FORCE_INTEGRITY"},
+ {OptionalHeader::DLL_CHARACTERISTICS::NX_COMPAT, "NX_COMPAT"},
+ {OptionalHeader::DLL_CHARACTERISTICS::NO_ISOLATION, "NO_ISOLATION"},
+ {OptionalHeader::DLL_CHARACTERISTICS::NO_SEH, "NO_SEH"},
+ {OptionalHeader::DLL_CHARACTERISTICS::NO_BIND, "NO_BIND"},
+ {OptionalHeader::DLL_CHARACTERISTICS::APPCONTAINER, "APPCONTAINER"},
+ {OptionalHeader::DLL_CHARACTERISTICS::WDM_DRIVER, "WDM_DRIVER"},
+ {OptionalHeader::DLL_CHARACTERISTICS::GUARD_CF, "GUARD_CF"},
+ {OptionalHeader::DLL_CHARACTERISTICS::TERMINAL_SERVER_AWARE,
+ "TERMINAL_SERVER_AWARE"},
};
const auto it = enumStrings.find(e);
return it == enumStrings.end() ? "UNKNOWN" : it->second;
}
const char* to_string(OptionalHeader::SUBSYSTEM e) {
- CONST_MAP(OptionalHeader::SUBSYSTEM, const char*, 14) enumStrings {
- { OptionalHeader::SUBSYSTEM::UNKNOWN, "UNKNOWN" },
- { OptionalHeader::SUBSYSTEM::NATIVE, "NATIVE" },
- { OptionalHeader::SUBSYSTEM::WINDOWS_GUI, "WINDOWS_GUI" },
- { OptionalHeader::SUBSYSTEM::WINDOWS_CUI, "WINDOWS_CUI" },
- { OptionalHeader::SUBSYSTEM::OS2_CUI, "OS2_CUI" },
- { OptionalHeader::SUBSYSTEM::POSIX_CUI, "POSIX_CUI" },
- { OptionalHeader::SUBSYSTEM::NATIVE_WINDOWS, "NATIVE_WINDOWS" },
- { OptionalHeader::SUBSYSTEM::WINDOWS_CE_GUI, "WINDOWS_CE_GUI" },
- { OptionalHeader::SUBSYSTEM::EFI_APPLICATION, "EFI_APPLICATION" },
- { OptionalHeader::SUBSYSTEM::EFI_BOOT_SERVICE_DRIVER, "EFI_BOOT_SERVICE_DRIVER" },
- { OptionalHeader::SUBSYSTEM::EFI_RUNTIME_DRIVER, "EFI_RUNTIME_DRIVER" },
- { OptionalHeader::SUBSYSTEM::EFI_ROM, "EFI_ROM" },
- { OptionalHeader::SUBSYSTEM::XBOX, "XBOX" },
- { OptionalHeader::SUBSYSTEM::WINDOWS_BOOT_APPLICATION, "WINDOWS_BOOT_APPLICATION" },
+ CONST_MAP(OptionalHeader::SUBSYSTEM, const char*, 15)
+ enumStrings{
+ {OptionalHeader::SUBSYSTEM::UNKNOWN, "UNKNOWN"},
+ {OptionalHeader::SUBSYSTEM::NATIVE, "NATIVE"},
+ {OptionalHeader::SUBSYSTEM::WINDOWS_GUI, "WINDOWS_GUI"},
+ {OptionalHeader::SUBSYSTEM::WINDOWS_CUI, "WINDOWS_CUI"},
+ {OptionalHeader::SUBSYSTEM::OS2_CUI, "OS2_CUI"},
+ {OptionalHeader::SUBSYSTEM::POSIX_CUI, "POSIX_CUI"},
+ {OptionalHeader::SUBSYSTEM::NATIVE_WINDOWS, "NATIVE_WINDOWS"},
+ {OptionalHeader::SUBSYSTEM::WINDOWS_CE_GUI, "WINDOWS_CE_GUI"},
+ {OptionalHeader::SUBSYSTEM::EFI_APPLICATION, "EFI_APPLICATION"},
+ {OptionalHeader::SUBSYSTEM::EFI_BOOT_SERVICE_DRIVER,
+ "EFI_BOOT_SERVICE_DRIVER"},
+ {OptionalHeader::SUBSYSTEM::EFI_RUNTIME_DRIVER, "EFI_RUNTIME_DRIVER"},
+ {OptionalHeader::SUBSYSTEM::EFI_ROM, "EFI_ROM"},
+ {OptionalHeader::SUBSYSTEM::XBOX, "XBOX"},
+ {OptionalHeader::SUBSYSTEM::WINDOWS_BOOT_APPLICATION,
+ "WINDOWS_BOOT_APPLICATION"},
+ {OptionalHeader::SUBSYSTEM::XBOX_CODE_CATALOG, "XBOX_CODE_CATALOG"},
};
const auto it = enumStrings.find(e);
return it == enumStrings.end() ? "UNKNOWN" : it->second;
}
}
-}
diff --git a/deps/LIEF/src/PE/Parser.cpp b/deps/LIEF/src/PE/Parser.cpp
index 0b230704165..69fbb489e5b 100644
--- a/deps/LIEF/src/PE/Parser.cpp
+++ b/deps/LIEF/src/PE/Parser.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,11 +14,14 @@
* limitations under the License.
*/
#include <iterator>
+#include <memory>
#include <string>
#include <numeric>
#include "logging.hpp"
#include "LIEF/BinaryStream/SpanStream.hpp"
+#include "LIEF/BinaryStream/MemoryStream.hpp"
+#include "LIEF/BinaryStream/DumpStream.hpp"
#include "LIEF/BinaryStream/VectorStream.hpp"
#include "LIEF/PE/signature/Signature.hpp"
@@ -55,62 +58,60 @@
#include "overflow_check.hpp"
#include "Parser.tcc"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
Parser::~Parser() = default;
Parser::Parser() = default;
Parser::Parser(const std::string& file) :
- LIEF::Parser{file}
-{
+ LIEF::Parser{file} {
if (auto stream = VectorStream::from_file(file)) {
stream_ = std::make_unique<VectorStream>(std::move(*stream));
} else {
- LIEF_ERR("Can't create the stream");
+ LIEF_ERR("Failed to create stream");
}
}
Parser::Parser(std::vector<uint8_t> data) :
- Parser{std::make_unique<VectorStream>(std::move(data))}
-{}
+ Parser{std::make_unique<VectorStream>(std::move(data))} {}
Parser::Parser(std::unique_ptr<BinaryStream> stream) :
- stream_{std::move(stream)}
-{}
+ stream_{std::move(stream)} {}
ok_error_t Parser::init(const ParserConfig& config) {
stream_->setpos(0);
auto type = get_type_from_stream(*stream_);
if (!type) {
- LIEF_ERR("Can't determine PE type.");
+ LIEF_ERR("Failed to determine PE type");
return make_error_code(lief_errors::parsing_error);
}
- type_ = type.value();
- binary_ = std::unique_ptr<Binary>(new Binary{});
+ type_ = type.value();
+ binary_ = std::make_unique<Binary>();
binary_->type_ = type_;
binary_->original_size_ = stream_->size();
config_ = config;
- return type_ == PE_TYPE::PE32 ? parse<details::PE32>() :
- parse<details::PE64>();
+ return type_ == PE_TYPE::PE32 ? parse<details::PE32>() : parse<details::PE64>();
}
ok_error_t Parser::parse_dos_stub() {
const DosHeader& dos_header = binary_->dos_header();
if (dos_header.addressof_new_exeheader() < sizeof(details::pe_dos_header)) {
- LIEF_ERR("Address of new exe header is corrupted");
+ LIEF_ERR("Corrupted new exe header address");
return make_error_code(lief_errors::corrupted);
}
- const uint64_t sizeof_dos_stub = dos_header.addressof_new_exeheader() - sizeof(details::pe_dos_header);
+ const uint64_t sizeof_dos_stub =
+ dos_header.addressof_new_exeheader() - sizeof(details::pe_dos_header);
- LIEF_DEBUG("DOS stub: @0x{:x}:0x{:x}", sizeof(details::pe_dos_header), sizeof_dos_stub);
+ LIEF_DEBUG("DOS stub: @{:#x}:{:#x}", sizeof(details::pe_dos_header),
+ sizeof_dos_stub);
const uint64_t dos_stub_offset = sizeof(details::pe_dos_header);
if (!stream_->peek_data(binary_->dos_stub_, dos_stub_offset, sizeof_dos_stub)) {
- LIEF_ERR("DOS stub corrupted!");
+ LIEF_ERR("DOS stub corrupted");
return make_error_code(lief_errors::read_error);
}
return ok();
@@ -128,22 +129,24 @@ ok_error_t Parser::parse_rich_header() {
std::end(RichHeader::RICH_MAGIC));
if (it_rich == std::end(dos_stub)) {
- LIEF_DEBUG("Rich header not found!");
+ LIEF_DEBUG("Rich header not found");
return ok();
}
auto rich_header = std::make_unique<RichHeader>();
- const uint64_t end_offset_rich_header = std::distance(std::begin(dos_stub), it_rich);
- LIEF_DEBUG("Offset to rich header: 0x{:x}", end_offset_rich_header);
+ const uint64_t end_offset_rich_header = std::distance(dos_stub.begin(), it_rich);
+ LIEF_DEBUG("Offset to rich header: {:#x}", end_offset_rich_header);
- if (auto res_xor_key = stream.peek<uint32_t>(end_offset_rich_header + sizeof(RichHeader::RICH_MAGIC))) {
+ if (auto res_xor_key = stream.peek<uint32_t>(end_offset_rich_header +
+ sizeof(RichHeader::RICH_MAGIC)))
+ {
rich_header->key(*res_xor_key);
} else {
return make_error_code(lief_errors::read_error);
}
const uint32_t xor_key = rich_header->key();
- LIEF_DEBUG("XOR key: 0x{:x}", xor_key);
+ LIEF_DEBUG("XOR key: {:#x}", xor_key);
int64_t curent_offset = end_offset_rich_header - sizeof(RichHeader::RICH_MAGIC);
@@ -151,7 +154,7 @@ ok_error_t Parser::parse_rich_header() {
values.reserve(dos_stub.size() / sizeof(uint32_t));
uint32_t count = 0;
- uint32_t value;
+ uint32_t value = 0;
while (curent_offset > 0 && stream.pos() < stream.size()) {
@@ -181,11 +184,11 @@ ok_error_t Parser::parse_rich_header() {
}
const uint16_t build_number = value & 0xFFFF;
- const uint16_t id = (value >> 16) & 0xFFFF;
+ const uint16_t id = (value >> 16) & 0xFFFF;
- LIEF_DEBUG("ID: 0x{:04x}", id);
- LIEF_DEBUG("Build Number: 0x{:04x}", build_number);
- LIEF_DEBUG("Count: 0x{:d}", count);
+ LIEF_DEBUG("ID: {:#06x}", id);
+ LIEF_DEBUG("Build Number: {:#06x}", build_number);
+ LIEF_DEBUG("Count: {:d}", count);
rich_header->add_entry(id, build_number, count);
}
@@ -194,86 +197,128 @@ ok_error_t Parser::parse_rich_header() {
return ok();
}
+
+ok_error_t Parser::read_section_content(const details::pe_section& raw_sec,
+ uint32_t index, Section& section) {
+ uint32_t numberof_sections = binary_->header().numberof_sections();
+ uint32_t size_to_read = 0;
+ const uint32_t offset = raw_sec.PointerToRawData;
+
+ const bool is_memory_view = stream_->is_memory_view();
+
+ if (is_memory_view) {
+ size_to_read = raw_sec.VirtualSize;
+ } else {
+ size_to_read = raw_sec.VirtualSize > 0 ?
+ std::min(raw_sec.VirtualSize,
+ raw_sec.SizeOfRawData) : // According to Corkami
+ raw_sec.SizeOfRawData;
+ }
+
+ if (size_to_read == 0) {
+ return ok();
+ }
+
+ const uint64_t peek_target =
+ is_memory_view ? section.virtual_address() : (uint64_t)offset;
+
+ if (peek_target < stream_->size() &&
+ (peek_target + size_to_read) > stream_->size())
+ {
+ size_to_read = static_cast<uint32_t>(stream_->size() - peek_target);
+ }
+
+ if (size_to_read > Parser::MAX_DATA_SIZE) {
+ LIEF_WARN("Section '{}' data too large ({:#x})", section.name(), size_to_read);
+ return make_error_code(lief_errors::data_too_large);
+ }
+
+ if (!stream_->peek_data(section.content_, peek_target, size_to_read,
+ section.virtual_address()))
+ {
+ LIEF_ERR("Corrupted section #{:d} ({})", index, section.name());
+ }
+
+ uint64_t padding_size = 0;
+ if (size_to_read <= section.size()) {
+ padding_size = section.size() - size_to_read;
+ }
+
+ const uint64_t padding_offset = (uint64_t)offset + size_to_read;
+
+ // Treat content between two sections (that is not wrapped in a section) as
+ // 'padding'
+ uint64_t hole_size = 0;
+ if (!is_memory_view && index < numberof_sections - 1) {
+ // As we *read* at the beginning of the loop, the cursor is already on the next
+ // one
+ auto res_next_section = stream_->peek<details::pe_section>();
+ if (!res_next_section) {
+ LIEF_ERR("Failed to read section #{}", index + 1);
+ } else {
+ const details::pe_section& next_section = *res_next_section;
+ const uint64_t sec_offset = next_section.PointerToRawData;
+ if (padding_offset + padding_size < sec_offset) {
+ hole_size = sec_offset - (padding_offset + padding_size);
+ }
+ }
+ }
+
+ uint64_t padding_to_read = padding_size + hole_size;
+ if (!is_memory_view && padding_to_read > MAX_PADDING_SIZE) {
+ LIEF_WARN("Padding of section '{}' too large, "
+ "limiting to {} bytes",
+ section.name(), Parser::MAX_PADDING_SIZE);
+ padding_to_read = MAX_PADDING_SIZE;
+ }
+
+ if (is_memory_view) {
+ padding_to_read = 0;
+ }
+
+ if (!stream_->peek_data(section.padding_, padding_offset, padding_to_read)) {
+ LIEF_ERR("Failed to read padding of section '{}'", section.name());
+ }
+
+ return ok();
+}
+
ok_error_t Parser::parse_sections() {
static constexpr size_t NB_MAX_SECTIONS = 1000;
+ static constexpr uint32_t SENTINEL = std::numeric_limits<uint32_t>::max();
LIEF_DEBUG("Parsing sections");
- const uint32_t pe_header_off = binary_->dos_header().addressof_new_exeheader();
- const uint32_t opt_header_off = pe_header_off + sizeof(details::pe_header);
- const uint32_t sections_offset = opt_header_off + binary_->header().sizeof_optional_header();
+ const uint32_t pe_header_off = binary_->dos_header().addressof_new_exeheader();
+ const uint32_t opt_header_off = pe_header_off + sizeof(details::pe_header);
+ const uint32_t sections_offset =
+ opt_header_off + binary_->header().sizeof_optional_header();
- uint32_t first_section_offset = UINT_MAX;
+ uint32_t first_section_offset = SENTINEL;
uint32_t numberof_sections = binary_->header().numberof_sections();
if (numberof_sections > NB_MAX_SECTIONS) {
- LIEF_ERR("The PE binary has {} sections while the LIEF limit is {}.\n"
- "Only the first {} will be parsed", numberof_sections, NB_MAX_SECTIONS, NB_MAX_SECTIONS);
+ LIEF_ERR("PE binary has {} sections, exceeding limit of {}. "
+ "Only the first {} will be parsed",
+ numberof_sections, NB_MAX_SECTIONS, NB_MAX_SECTIONS);
numberof_sections = NB_MAX_SECTIONS;
}
stream_->setpos(sections_offset);
for (size_t i = 0; i < numberof_sections; ++i) {
- details::pe_section raw_sec;
+ details::pe_section raw_sec{};
if (auto res = stream_->read<details::pe_section>()) {
raw_sec = *res;
} else {
- LIEF_ERR("Can't read section at 0x{:x}", stream_->pos());
+ LIEF_ERR("Failed to read section at {:#x}", stream_->pos());
break;
}
auto section = std::make_unique<Section>(raw_sec);
- uint32_t size_to_read = 0;
const uint32_t offset = raw_sec.PointerToRawData;
if (offset > 0) {
first_section_offset = std::min(first_section_offset, offset);
}
- size_to_read = raw_sec.VirtualSize > 0 ?
- std::min(raw_sec.VirtualSize, raw_sec.SizeOfRawData) : // According to Corkami
- raw_sec.SizeOfRawData;
-
- if ((offset + size_to_read) > stream_->size()) {
- const uint32_t delta = (offset + size_to_read) - stream_->size();
- size_to_read = size_to_read - delta;
- }
-
- if (size_to_read > Parser::MAX_DATA_SIZE) {
- LIEF_WARN("Data of section section '{}' is too large (0x{:x})", section->name(), size_to_read);
- } else {
-
- if (!stream_->peek_data(section->content_, offset, size_to_read,
- section->virtual_address())) {
- LIEF_ERR("Section #{:d} ({}) is corrupted", i, section->name());
- }
-
- const uint64_t padding_size = section->size() - size_to_read;
-
- // Treat content between two sections (that is not wrapped in a section) as 'padding'
- uint64_t hole_size = 0;
- if (i < numberof_sections - 1) {
- // As we *read* at the beginning of the loop, the cursor is already on the next one
- auto res_next_section = stream_->peek<details::pe_section>();
- if (!res_next_section) {
- LIEF_ERR("Can't read the {} + 1 section", i + 1);
- } else {
- const details::pe_section& next_section = *res_next_section;
- const uint64_t sec_offset = next_section.PointerToRawData;
- if (offset + size_to_read + padding_size < sec_offset) {
- hole_size = sec_offset - (offset + size_to_read + padding_size);
- }
- }
- }
- uint64_t padding_to_read = padding_size + hole_size;
- if (padding_to_read > Parser::MAX_PADDING_SIZE) {
- LIEF_WARN("The padding size of section '{}' is huge. "
- "Only the first {} bytes will be taken "
- "into account", section->name(), Parser::MAX_PADDING_SIZE);
- padding_to_read = Parser::MAX_PADDING_SIZE;
- }
-
- if (!stream_->peek_data(section->padding_, offset + size_to_read, padding_to_read)) {
- LIEF_ERR("Can't read the padding content of section '{}'", section->name());
- }
- }
+ read_section_content(raw_sec, i, *section);
if (const std::string& name = section->name();
name.size() > 1 && name[0] == '/')
@@ -287,13 +332,31 @@ ok_error_t Parser::parse_sections() {
binary_->sections_.push_back(std::move(section));
}
- const uint32_t last_section_header_offset = sections_offset + numberof_sections * sizeof(details::pe_section);
+ // At this point we can bind the binary to the stream (if needed)
+ stream_->bind_binary(*binary_);
+
+ const uint32_t last_section_header_offset =
+ sections_offset + numberof_sections * sizeof(details::pe_section);
+
+ if (first_section_offset == SENTINEL ||
+ first_section_offset < last_section_header_offset)
+ {
+ binary_->available_sections_space_ = -1;
+ LIEF_DEBUG("No usable section header padding (first section offset: {:#x})",
+ first_section_offset);
+ return ok();
+ }
+
const size_t padding_size = first_section_offset - last_section_header_offset;
- if (!stream_->peek_data(binary_->section_offset_padding_, last_section_header_offset, padding_size)) {
- LIEF_ERR("Can't read the padding");
+ if (!stream_->peek_data(binary_->section_offset_padding_,
+ last_section_header_offset, padding_size))
+ {
+ LIEF_ERR("Failed to read section header padding");
}
- binary_->available_sections_space_ = (first_section_offset - last_section_header_offset) / sizeof(details::pe_section) - 1;
- LIEF_DEBUG("Number of sections that could be added: #{:d}", binary_->available_sections_space_);
+ binary_->available_sections_space_ =
+ (int32_t)(padding_size / sizeof(details::pe_section)) - 1;
+ LIEF_DEBUG("Number of sections that could be added: #{:d}",
+ binary_->available_sections_space_);
return ok();
}
@@ -313,33 +376,39 @@ ok_error_t Parser::parse_relocations() {
const uint32_t max_size = reloc_dir->size();
const uint32_t max_offset = offset + max_size;
- auto res_relocation_headers = stream_->peek<details::pe_base_relocation_block>(offset);
+ auto res_relocation_headers =
+ stream_->peek<details::pe_base_relocation_block>(offset);
if (!res_relocation_headers) {
return make_error_code(lief_errors::read_error);
}
uint32_t current_offset = offset;
- while (res_relocation_headers && current_offset < max_offset && res_relocation_headers->PageRVA != 0) {
+ while (res_relocation_headers && current_offset < max_offset &&
+ res_relocation_headers->PageRVA != 0)
+ {
const details::pe_base_relocation_block& raw_struct = *res_relocation_headers;
auto relocation = std::make_unique<Relocation>(raw_struct);
if (raw_struct.BlockSize < sizeof(details::pe_base_relocation_block)) {
- LIEF_ERR("Relocation corrupted: BlockSize is too small ({})",
+ LIEF_ERR("Corrupted relocation: BlockSize too small ({})",
raw_struct.BlockSize);
break;
}
if (raw_struct.BlockSize > binary_->optional_header().sizeof_image()) {
- LIEF_ERR("Relocation corrupted: BlockSize is out of bound the "
- "binary's virtual size: {}", raw_struct.BlockSize);
+ LIEF_ERR("Corrupted relocation: BlockSize exceeds binary virtual size: "
+ "{0} ({0:#10x})",
+ raw_struct.BlockSize);
break;
}
- size_t numberof_entries = (raw_struct.BlockSize - sizeof(details::pe_base_relocation_block)) / sizeof(uint16_t);
+ size_t numberof_entries =
+ (raw_struct.BlockSize - sizeof(details::pe_base_relocation_block)) /
+ sizeof(uint16_t);
if (numberof_entries > MAX_RELOCATION_ENTRIES) {
- LIEF_WARN("The number of relocation entries () is larger than the LIEF's limit ({})\n"
- "Only the first {} will be parsed", numberof_entries,
- MAX_RELOCATION_ENTRIES, MAX_RELOCATION_ENTRIES);
+ LIEF_WARN("Relocation entry count ({}) exceeds limit ({}), "
+ "only parsing first {}",
+ numberof_entries, MAX_RELOCATION_ENTRIES, MAX_RELOCATION_ENTRIES);
numberof_entries = MAX_RELOCATION_ENTRIES;
}
@@ -348,7 +417,7 @@ ok_error_t Parser::parse_relocations() {
for (size_t i = 0; i < numberof_entries; ++i) {
auto res_entry = stream_->read<uint16_t>();
if (!res_entry) {
- LIEF_ERR("Can't parse relocation entry #{}", i);
+ LIEF_ERR("Failed to parse relocation entry #{}", i);
break;
}
@@ -363,7 +432,8 @@ ok_error_t Parser::parse_relocations() {
binary_->relocations_.push_back(std::move(relocation));
current_offset += raw_struct.BlockSize;
- res_relocation_headers = stream_->peek<details::pe_base_relocation_block>(current_offset);
+ res_relocation_headers =
+ stream_->peek<details::pe_base_relocation_block>(current_offset);
}
return ok();
@@ -378,16 +448,16 @@ ok_error_t Parser::parse_resources() {
}
const uint32_t resources_rva = res_dir->RVA();
- LIEF_DEBUG("Resources RVA: 0x{:04x}", resources_rva);
+ LIEF_DEBUG("Resources RVA: {:#06x}", resources_rva);
const uint32_t offset = binary_->rva_to_offset(resources_rva);
- LIEF_DEBUG("Resources Offset: 0x{:04x}", offset);
+ LIEF_DEBUG("Resources Offset: {:#06x}", offset);
ScopedStream scoped(*stream_, offset);
binary_->resources_ = ResourceNode::parse(*scoped, *binary_);
if (binary_->resources_ == nullptr) {
- LIEF_WARN("Can't parse resource tree");
+ LIEF_WARN("Failed to parse resource tree");
return make_error_code(lief_errors::read_error);
}
return ok();
@@ -396,6 +466,11 @@ ok_error_t Parser::parse_resources() {
ok_error_t Parser::parse_string_table() {
// PE is using the "Symbol16" format
static constexpr auto SYMBOL16_SZ = 18;
+
+ if (stream_->is_memory_view()) {
+ return ok();
+ }
+
const Header& hdr = binary_->header();
if (hdr.pointerto_symbol_table() == 0) {
@@ -403,10 +478,17 @@ ok_error_t Parser::parse_string_table() {
}
LIEF_DEBUG("Parsing string table");
- const uint32_t string_tbl_offset =
- hdr.pointerto_symbol_table() + hdr.numberof_symbols() * SYMBOL16_SZ;
+ const uint64_t string_tbl_offset =
+ static_cast<uint64_t>(hdr.pointerto_symbol_table()) +
+ static_cast<uint64_t>(hdr.numberof_symbols()) * SYMBOL16_SZ;
- LIEF_DEBUG("String table offset: 0x{:08x}", string_tbl_offset);
+ if (string_tbl_offset + sizeof(uint32_t) > stream_->size()) {
+ LIEF_DEBUG("COFF string table offset ({:#x}) is out of bounds",
+ string_tbl_offset);
+ return ok();
+ }
+
+ LIEF_DEBUG("String table offset: {:#010x}", string_tbl_offset);
stream_->setpos(string_tbl_offset);
auto table_sz = stream_->read<uint32_t>();
if (!table_sz) {
@@ -431,7 +513,7 @@ ok_error_t Parser::parse_string_table() {
break;
}
- LIEF_DEBUG("string[0x{:06x}]: {}", pos, *str);
+ LIEF_DEBUG("string[{:#08x}]: {}", pos, *str);
memoize(COFF::String(pos, std::move(*str)));
}
LIEF_DEBUG("#{} strings found", binary_->strings_table_.size());
@@ -442,6 +524,11 @@ ok_error_t Parser::parse_string_table() {
ok_error_t Parser::parse_symbols() {
LIEF_DEBUG("Parsing symbols");
const Header& hdr = binary_->header();
+
+ if (stream_->is_memory_view()) {
+ return ok();
+ }
+
if (hdr.pointerto_symbol_table() == 0 || hdr.numberof_symbols() == 0) {
return ok();
}
@@ -450,12 +537,10 @@ ok_error_t Parser::parse_symbols() {
const uint32_t symtab_off = hdr.pointerto_symbol_table();
stream_->setpos(symtab_off);
- COFF::Symbol::parsing_context_t ctx {
- /*.find_string =*/ [this] (uint32_t offset) {
- return this->find_coff_string(offset);
- },
- /*is_bigobj=*/false
- };
+ COFF::Symbol::parsing_context_t ctx{/*.find_string =*/[this](uint32_t offset) {
+ return this->find_coff_string(offset);
+ },
+ /*is_bigobj=*/false};
for (size_t idx = 0; idx < nb_symbols;) {
std::unique_ptr<COFF::Symbol> sym = COFF::Symbol::parse(ctx, *stream_, &idx);
@@ -469,14 +554,15 @@ ok_error_t Parser::parse_symbols() {
return ok();
}
-span<uint8_t> get_payload(Binary& bin, const details::pe_debug& dbg, Section*& sec) {
+span<uint8_t> get_payload(Binary& bin, const details::pe_debug& dbg,
+ Section*& sec) {
if (dbg.SizeOfData == 0) {
return {};
}
- LIEF_DEBUG("payload.rva: 0x{:06x}", dbg.AddressOfRawData);
- LIEF_DEBUG("payload.offset: 0x{:06x}", dbg.PointerToRawData);
- LIEF_DEBUG("payload.size: 0x{:06x}", dbg.SizeOfData);
+ LIEF_DEBUG("Payload RVA: {:#08x}", dbg.AddressOfRawData);
+ LIEF_DEBUG("Payload offset: {:#08x}", dbg.PointerToRawData);
+ LIEF_DEBUG("Payload size: {:#08x}", dbg.SizeOfData);
sec = bin.section_from_offset(dbg.PointerToRawData);
if (sec == nullptr) {
@@ -495,7 +581,8 @@ span<uint8_t> get_payload(Binary& bin, const details::pe_debug& dbg, Section*& s
return {};
}
- if (check_overflow<uint64_t>((uint32_t)delta, dbg.SizeOfData, overlay.size())) {
+ if (check_overflow<uint64_t>((uint32_t)delta, dbg.SizeOfData, overlay.size()))
+ {
return {};
}
@@ -503,8 +590,9 @@ span<uint8_t> get_payload(Binary& bin, const details::pe_debug& dbg, Section*& s
}
if (sec == nullptr) {
- LIEF_WARN("Can't find section associated with debug payload at offset: "
- "0x{:08x}, VA: 0x{:08x}", dbg.PointerToRawData, dbg.AddressOfRawData);
+ LIEF_WARN("Section not found for debug payload at offset "
+ "{:#010x}, VA {:#010x}",
+ dbg.PointerToRawData, dbg.AddressOfRawData);
return {};
}
@@ -516,7 +604,7 @@ ok_error_t Parser::parse_debug() {
DataDirectory* dir = binary_->debug_dir();
if (dir == nullptr) {
- return make_error_code(lief_errors::not_found);
+ return ok();
}
if (dir->RVA() == 0 || dir->size() == 0) {
@@ -524,8 +612,8 @@ ok_error_t Parser::parse_debug() {
}
const uint32_t debug_rva = dir->RVA();
- uint32_t debug_off = binary_->rva_to_offset(debug_rva);
- const uint32_t debug_sz = dir->size();
+ uint32_t debug_off = binary_->rva_to_offset(debug_rva);
+ const uint32_t debug_sz = dir->size();
const uint32_t debug_end = debug_off + debug_sz;
if (debug_sz == 0) {
@@ -544,80 +632,86 @@ ok_error_t Parser::parse_debug() {
LIEF_DEBUG("Type is: {}", to_string(type));
switch (type) {
case Debug::TYPES::CODEVIEW:
- {
- if (std::unique_ptr<Debug> cv = parse_code_view(*res, sec, payload)) {
- binary_->debug_.push_back(std::move(cv));
- } else {
- LIEF_WARN("Can't parse PE CodeView");
- }
- break;
+ {
+ if (std::unique_ptr<Debug> cv = parse_code_view(*res, sec, payload)) {
+ binary_->debug_.push_back(std::move(cv));
+ } else {
+ LIEF_WARN("Failed to parse CodeView debug entry");
}
+ break;
+ }
case Debug::TYPES::POGO:
- {
- if (std::unique_ptr<Debug> pogo = parse_pogo(*res, sec, payload)) {
- binary_->debug_.push_back(std::move(pogo));
- } else {
- LIEF_WARN("Can't parse PE POGO");
- }
- break;
+ {
+ if (std::unique_ptr<Debug> pogo = parse_pogo(*res, sec, payload)) {
+ binary_->debug_.push_back(std::move(pogo));
+ } else {
+ LIEF_WARN("Failed to parse POGO debug entry");
}
+ break;
+ }
case Debug::TYPES::REPRO:
- {
- if (std::unique_ptr<Debug> repro = parse_repro(*res, sec, payload)) {
- binary_->debug_.push_back(std::move(repro));
- } else {
- LIEF_WARN("Can't parse PE Repro");
- }
- break;
+ {
+ if (std::unique_ptr<Debug> repro = parse_repro(*res, sec, payload)) {
+ binary_->debug_.push_back(std::move(repro));
+ } else {
+ LIEF_WARN("Failed to parse Repro debug entry");
}
+ break;
+ }
case Debug::TYPES::PDBCHECKSUM:
+ {
+ if (std::unique_ptr<Debug> checksum =
+ PDBChecksum::parse(*res, sec, payload))
{
- if (std::unique_ptr<Debug> checksum = PDBChecksum::parse(*res, sec, payload)) {
- binary_->debug_.push_back(std::move(checksum));
- break;
- }
- LIEF_WARN("Failed to parse PE PDB checksum");
+ binary_->debug_.push_back(std::move(checksum));
break;
}
+ LIEF_WARN("Failed to parse PE PDB checksum");
+ break;
+ }
case Debug::TYPES::VC_FEATURE:
+ {
+ if (std::unique_ptr<Debug> vcfeature =
+ VCFeature::parse(*res, sec, payload))
{
- if (std::unique_ptr<Debug> vcfeature = VCFeature::parse(*res, sec, payload)) {
- binary_->debug_.push_back(std::move(vcfeature));
- break;
- }
- LIEF_WARN("Failed to parse PE VC Feature");
+ binary_->debug_.push_back(std::move(vcfeature));
break;
}
+ LIEF_WARN("Failed to parse PE VC Feature");
+ break;
+ }
case Debug::TYPES::EX_DLLCHARACTERISTICS:
+ {
+ if (std::unique_ptr<Debug> exdll =
+ ExDllCharacteristics::parse(*res, sec, payload))
{
- if (std::unique_ptr<Debug> exdll = ExDllCharacteristics::parse(*res, sec, payload)) {
- binary_->debug_.push_back(std::move(exdll));
- break;
- }
- LIEF_WARN("Failed to parse PE EX_DLLCHARACTERISTICS");
+ binary_->debug_.push_back(std::move(exdll));
break;
}
+ LIEF_WARN("Failed to parse PE EX_DLLCHARACTERISTICS");
+ break;
+ }
case Debug::TYPES::FPO:
- {
- if (std::unique_ptr<Debug> fpo = FPO::parse(*res, sec, payload)) {
- binary_->debug_.push_back(std::move(fpo));
- break;
- }
- LIEF_WARN("Failed to parse PE FPO");
+ {
+ if (std::unique_ptr<Debug> fpo = FPO::parse(*res, sec, payload)) {
+ binary_->debug_.push_back(std::move(fpo));
break;
}
+ LIEF_WARN("Failed to parse PE FPO");
+ break;
+ }
default:
- {
- binary_->debug_.push_back(std::make_unique<Debug>(*res, sec));
- break;
- }
+ {
+ binary_->debug_.push_back(std::make_unique<Debug>(*res, sec));
+ break;
+ }
}
}
return ok();
@@ -630,11 +724,16 @@ ok_error_t Parser::parse_exceptions() {
}
const DataDirectory* exception_dir = binary_->exceptions_dir();
+
+ if (exception_dir == nullptr) {
+ return ok();
+ }
+
if (exception_dir->RVA() == 0 || exception_dir->size() == 0) {
return ok();
}
- LIEF_DEBUG("Parsing exceptions [0x{:06x}, 0x{:06x}] ({} bytes)",
+ LIEF_DEBUG("Parsing exceptions [{:#08x}, {:#08x}] ({} bytes)",
exception_dir->RVA(), exception_dir->RVA() + exception_dir->size(),
exception_dir->size());
@@ -669,20 +768,22 @@ ok_error_t Parser::parse_exceptions() {
for (auto& [f, rva] : unresolved_chains_) {
if (auto* func = f->as<RuntimeFunctionX64>()) {
- auto it = memoize_exception_info_.find(rva);
- if (it == memoize_exception_info_.end()) {
- LIEF_DEBUG("RuntimeFunctionX64 0x{:06x}: Can't find linked chained info at 0x{:06x}",
- func->rva_start(), rva);
+ if (auto it = memoize_exception_info_.find(rva);
+ it == memoize_exception_info_.end())
+ {
+ LIEF_DEBUG("RuntimeFunctionX64 {:#08x}: chained info not found at {:#08x}",
+ func->rva_start(), rva);
continue;
+ } else {
+ assert(func->unwind_info() != nullptr);
+ func->unwind_info()->chained = it->second->as<RuntimeFunctionX64>();
}
- assert(func->unwind_info() != nullptr);
- func->unwind_info()->chained = it->second->as<RuntimeFunctionX64>();
}
}
unresolved_chains_.clear();
if (!parse_chpe_exceptions()) {
- LIEF_INFO("CHPE exceptions parsing finished with errors");
+ LIEF_INFO("CHPE exception parsing finished with errors");
}
return ok();
@@ -712,7 +813,7 @@ ok_error_t Parser::parse_chpe_exceptions() {
}
std::unique_ptr<SpanStream> stream =
- stream_from_rva(arm64->extra_rfe_table(), arm64->extra_rfe_table_size());
+ stream_from_rva(arm64->extra_rfe_table(), arm64->extra_rfe_table_size());
if (stream == nullptr) {
return make_error_code(lief_errors::read_error);
@@ -727,13 +828,13 @@ ok_error_t Parser::parse_chpe_exceptions() {
target_arch = Header::MACHINE_TYPES::ARM64;
break;
- // ARM64X: CHPE is used to refer ARM64EC binary (which uses a AMD64 machine type)
+ // ARM64X: CHPE is used to refer to ARM64EC binary (which uses an AMD64 machine
+ // type)
case Header::MACHINE_TYPES::ARM64:
target_arch = Header::MACHINE_TYPES::AMD64;
break;
- default:
- break;
+ default: break;
}
[[maybe_unused]] size_t idx = 0;
@@ -752,10 +853,9 @@ ok_error_t Parser::parse_chpe_exceptions() {
return ok();
}
-std::unique_ptr<Debug>
- Parser::parse_code_view(const details::pe_debug& debug_info, Section* sec,
- span<uint8_t> payload)
-{
+std::unique_ptr<Debug> Parser::parse_code_view(const details::pe_debug& debug_info,
+ Section* sec,
+ span<uint8_t> payload) {
LIEF_DEBUG("Parsing Debug Code View (payload: {} bytes)", payload.size());
SpanStream stream(payload);
@@ -769,47 +869,45 @@ std::unique_ptr<Debug>
switch (signature) {
case CodeView::SIGNATURES::PDB_70:
- {
- const auto pdb_s = stream.read<details::pe_pdb_70>();
- if (!pdb_s) {
- return default_value;
- }
+ {
+ const auto pdb_s = stream.read<details::pe_pdb_70>();
+ if (!pdb_s) {
+ return default_value;
+ }
- auto cv_pdb70 = std::make_unique<CodeViewPDB>(debug_info, *pdb_s, sec);
- if (auto fname = stream.read_string()) {
- cv_pdb70->filename(std::move(*fname));
- }
- return cv_pdb70;
+ auto cv_pdb70 = std::make_unique<CodeViewPDB>(debug_info, *pdb_s, sec);
+ if (auto fname = stream.read_string()) {
+ cv_pdb70->filename(std::move(*fname));
}
+ return cv_pdb70;
+ }
case CodeView::SIGNATURES::PDB_20:
- {
- const auto pdb_s = stream.read<details::pe_pdb_20>();
- if (!pdb_s) {
- return default_value;
- }
+ {
+ const auto pdb_s = stream.read<details::pe_pdb_20>();
+ if (!pdb_s) {
+ return default_value;
+ }
- auto cv_pdb20 = std::make_unique<CodeViewPDB>(debug_info, *pdb_s, sec);
- if (auto fname = stream.read_string()) {
- cv_pdb20->filename(std::move(*fname));
- }
- return cv_pdb20;
+ auto cv_pdb20 = std::make_unique<CodeViewPDB>(debug_info, *pdb_s, sec);
+ if (auto fname = stream.read_string()) {
+ cv_pdb20->filename(std::move(*fname));
}
+ return cv_pdb20;
+ }
default:
- {
- LIEF_INFO("CodeView signature '{}' is not implemented yet!",
- to_string(signature));
- }
+ {
+ LIEF_INFO("CodeView signature '{}' not yet implemented",
+ to_string(signature));
+ }
}
return default_value;
}
-std::unique_ptr<Debug>
- Parser::parse_pogo(const details::pe_debug& debug_info, Section* sec,
- span<uint8_t> payload)
-{
+std::unique_ptr<Debug> Parser::parse_pogo(const details::pe_debug& debug_info,
+ Section* sec, span<uint8_t> payload) {
LIEF_DEBUG("Parsing POGO");
SpanStream stream(payload);
@@ -824,41 +922,42 @@ std::unique_ptr<Debug>
switch (signature) {
case Pogo::SIGNATURES::ZERO: // zero-signature may contain valid entries
case Pogo::SIGNATURES::LCTG:
- {
- while (stream) {
- auto raw = stream.read<details::pe_pogo>();
- if (!raw) {
- break;
- }
-
- PogoEntry entry{raw->start_rva, raw->size};
- if (auto name = stream.read_string()) {
- entry.name(std::move(*name));
- }
+ case Pogo::SIGNATURES::SPGO:
+ case Pogo::SIGNATURES::PGI:
+ case Pogo::SIGNATURES::PGU:
+ {
+ while (stream) {
+ auto raw = stream.read<details::pe_pogo>();
+ if (!raw) {
+ break;
+ }
- pogo->add(std::move(entry));
- stream.align(4);
+ PogoEntry entry{raw->start_rva, raw->size};
+ if (auto name = stream.read_string()) {
+ entry.name(std::move(*name));
}
- return pogo;
+ pogo->add(std::move(entry));
+ stream.align(4);
}
+ return pogo;
+ }
+
case Pogo::SIGNATURES::UNKNOWN:
default:
- {
- LIEF_INFO("PGO with signature 0x{:x} is not implemented yet!", *res_sig);
- }
+ {
+ LIEF_WARN("POGO signature {:#x} not yet implemented", *res_sig);
+ }
}
return pogo;
}
-std::unique_ptr<Debug>
- Parser::parse_repro(const details::pe_debug& debug_info, Section* sec,
- span<uint8_t> payload)
-{
+std::unique_ptr<Debug> Parser::parse_repro(const details::pe_debug& debug_info,
+ Section* sec, span<uint8_t> payload) {
LIEF_DEBUG("Parsing Debug Repro");
if (payload.empty()) {
- return std::make_unique<Repro>(debug_info, sec);
+ return std::make_unique<Repro>(debug_info, sec);
}
SpanStream stream(payload);
@@ -867,11 +966,11 @@ std::unique_ptr<Debug>
if (!res_size) {
return nullptr;
}
- LIEF_DEBUG("Size: 0x{:x}", *res_size);
+ LIEF_DEBUG("Size: {:#x}", *res_size);
std::vector<uint8_t> hash;
if (!stream.read_data(hash, *res_size)) {
- LIEF_INFO("Can't read debug reproducible build hash");
+ LIEF_INFO("Failed to read reproducible build hash");
}
return std::make_unique<Repro>(debug_info, std::move(hash), sec);
@@ -879,7 +978,8 @@ std::unique_ptr<Debug>
inline result<uint32_t> address_table_value(BinaryStream& stream,
- uint32_t address_table_offset, size_t i) {
+ uint32_t address_table_offset,
+ size_t i) {
using element_t = uint32_t;
const size_t element_offset = address_table_offset + i * sizeof(element_t);
if (auto res = stream.peek<element_t>(element_offset)) {
@@ -889,7 +989,8 @@ inline result<uint32_t> address_table_value(BinaryStream& stream,
}
inline result<uint16_t> ordinal_table_value(BinaryStream& stream,
- uint32_t ordinal_table_offset, size_t i) {
+ uint32_t ordinal_table_offset,
+ size_t i) {
using element_t = uint16_t;
const size_t element_offset = ordinal_table_offset + i * sizeof(element_t);
@@ -913,7 +1014,7 @@ inline result<uint32_t> name_table_value(BinaryStream& stream,
ok_error_t Parser::parse_exports() {
LIEF_DEBUG("Parsing exports");
- static constexpr uint32_t NB_ENTRIES_LIMIT = 0x1000000;
+ static constexpr uint32_t NB_ENTRIES_LIMIT = 0x1000000;
static constexpr size_t MAX_EXPORT_NAME_SIZE = 4096; // Because of C++ mangling
struct range_t {
@@ -926,49 +1027,55 @@ ok_error_t Parser::parse_exports() {
return make_error_code(lief_errors::not_found);
}
- uint32_t exports_rva = export_dir->RVA();
- uint32_t exports_size = export_dir->size();
+ uint32_t exports_rva = export_dir->RVA();
+ uint32_t exports_size = export_dir->size();
uint32_t exports_offset = binary_->rva_to_offset(exports_rva);
range_t range = {exports_rva, exports_rva + exports_size};
// First Export directory
- auto export_dir_tbl = stream_->peek<details::pe_export_directory_table>(exports_offset);
+ auto export_dir_tbl =
+ stream_->peek<details::pe_export_directory_table>(exports_offset);
if (!export_dir_tbl) {
- LIEF_WARN("Can't read the export table at 0x{:x}", exports_offset);
+ LIEF_WARN("Failed to read export table at {:#x}", exports_offset);
return make_error_code(lief_errors::read_error);
}
auto export_object = std::make_unique<Export>(*export_dir_tbl);
uint32_t name_offset = binary_->rva_to_offset(export_dir_tbl->NameRVA);
- if (auto res_name = stream_->peek_string_at(name_offset, Parser::MAX_DLL_NAME_SIZE)) {
+ if (auto res_name =
+ stream_->peek_string_at(name_offset, Parser::MAX_DLL_NAME_SIZE))
+ {
std::string name = *res_name;
if (is_valid_dll_name(name)) {
export_object->name_ = std::move(name);
- LIEF_DEBUG("Export name {}@0x{:x}", export_object->name_, name_offset);
+ LIEF_DEBUG("Export name {}@{:#x}", export_object->name_, name_offset);
} else {
if (name.empty()) {
LIEF_DEBUG("Export name is empty");
} else {
- LIEF_DEBUG("'{}' is not a valid export name", printable_string(name));
+ LIEF_DEBUG("Invalid export name '{}'", printable_string(name));
}
}
} else {
- LIEF_INFO("DLL name seems corrupted");
+ LIEF_INFO("DLL name appears corrupted");
}
const uint32_t nbof_addr_entries = export_dir_tbl->AddressTableEntries;
- const uint32_t nbof_name_ptr = export_dir_tbl->NumberOfNamePointers;
+ const uint32_t nbof_name_ptr = export_dir_tbl->NumberOfNamePointers;
const uint16_t ordinal_base = export_dir_tbl->OrdinalBase;
- const uint32_t address_table_offset = binary_->rva_to_offset(export_dir_tbl->ExportAddressTableRVA);
- const uint32_t ordinal_table_offset = binary_->rva_to_offset(export_dir_tbl->OrdinalTableRVA);
- const uint32_t name_table_offset = binary_->rva_to_offset(export_dir_tbl->NamePointerRVA);
+ const uint32_t address_table_offset =
+ binary_->rva_to_offset(export_dir_tbl->ExportAddressTableRVA);
+ const uint32_t ordinal_table_offset =
+ binary_->rva_to_offset(export_dir_tbl->OrdinalTableRVA);
+ const uint32_t name_table_offset =
+ binary_->rva_to_offset(export_dir_tbl->NamePointerRVA);
LIEF_DEBUG("Number of entries: {}", nbof_addr_entries);
LIEF_DEBUG("Number of names ptr: {}", nbof_name_ptr);
LIEF_DEBUG("Ordinal Base: {}", ordinal_base);
- LIEF_DEBUG("External Range: 0x{:06x} - 0x{:06x}", range.start, range.end);
+ LIEF_DEBUG("External Range: {:#08x} - {:#08x}", range.start, range.end);
if (nbof_addr_entries > NB_ENTRIES_LIMIT) {
LIEF_WARN("Export.AddressTableEntries is too large ({})", nbof_addr_entries);
@@ -993,15 +1100,16 @@ ok_error_t Parser::parse_exports() {
if (auto res = address_table_value(*stream_, address_table_offset, i)) {
addr_value = *res;
} else {
- LIEF_WARN("Can't read the Export.address_table[{}]", i);
+ LIEF_WARN("Failed to read Export.address_table[{}]", i);
break;
}
- LIEF_DEBUG("Export.address_table[{}].addr_value: 0x{:04x}", i, addr_value);
+ LIEF_DEBUG("Export.address_table[{}].addr_value: {:#06x}", i, addr_value);
const uint16_t ordinal = i + ordinal_base;
- const bool is_extern = range.start <= addr_value && addr_value < range.end;
+ const bool is_extern = range.start <= addr_value && addr_value < range.end;
const uint32_t address = is_extern ? 0 : addr_value;
- auto entry = std::make_unique<ExportEntry>(address, is_extern, ordinal, addr_value);
+ auto entry =
+ std::make_unique<ExportEntry>(address, is_extern, ordinal, addr_value);
if (addr_value == 0) {
corrupted_entries.insert(ordinal);
}
@@ -1010,9 +1118,12 @@ ok_error_t Parser::parse_exports() {
uint32_t name_offset = binary_->rva_to_offset(addr_value);
if (auto res = stream_->peek_string_at(name_offset)) {
entry->name_ = std::move(*res);
- if (entry->name_.size() > MAX_EXPORT_NAME_SIZE || !is_printable(entry->name_)) {
- LIEF_INFO("'{}' is not a valid export name", printable_string(entry->name_));
- entry = std::make_unique<ExportEntry>(address, is_extern, ordinal, addr_value);
+ if (entry->name_.size() > MAX_EXPORT_NAME_SIZE ||
+ !is_printable(entry->name_))
+ {
+ LIEF_INFO("Invalid export name '{}'", printable_string(entry->name_));
+ entry = std::make_unique<ExportEntry>(address, is_extern, ordinal,
+ addr_value);
entry->name_.clear();
}
}
@@ -1026,12 +1137,15 @@ ok_error_t Parser::parse_exports() {
if (auto res = ordinal_table_value(*stream_, ordinal_table_offset, i)) {
ordinal = *res;
} else {
- LIEF_WARN("Can't read the Export.ordinal_table[{}]", i);
+ LIEF_WARN("Failed to read Export.ordinal_table[{}]", i);
break;
}
if (ordinal >= export_entries.size()) {
- LIEF_WARN("Ordinal value ordinal_table[{}]: {} is out of range the export entries", i, ordinal);
+ LIEF_WARN(
+ "Ordinal value ordinal_table[{}]: {} out of range for export entries", i,
+ ordinal
+ );
break;
}
@@ -1042,23 +1156,24 @@ ok_error_t Parser::parse_exports() {
if (auto res = name_table_value(*stream_, name_table_offset, i)) {
name_offset = binary_->rva_to_offset(*res);
} else {
- LIEF_WARN("Can't read the Export.name_table[{}]", i);
+ LIEF_WARN("Failed to read Export.name_table[{}]", i);
corrupted_entries.insert(entry.ordinal_);
continue;
}
- LIEF_DEBUG("names[{:03d}]: 0x{:06x}", i, name_offset);
+ LIEF_DEBUG("names[{:03d}]: {:#08x}", i, name_offset);
if (auto res = stream_->peek_string_at(name_offset)) {
std::string name = *res;
if (name.empty() || name.size() > MAX_EXPORT_NAME_SIZE) {
if (!name.empty()) {
- LIEF_WARN("'{}' is not a valid export name", printable_string(name));
+ LIEF_WARN("Invalid export name '{}'", printable_string(name));
}
corrupted_entries.insert(entry.ordinal_);
} else {
entry.name_ = std::move(name);
}
} else {
- LIEF_WARN("Can't read the Export.enries[{}].name at 0x{:x}", i, name_offset);
+ LIEF_WARN("Failed to read Export.entries[{}].name at {:#x}", i,
+ name_offset);
corrupted_entries.insert(entry.ordinal_);
}
}
@@ -1071,14 +1186,15 @@ ok_error_t Parser::parse_exports() {
// Split on '.'
const size_t dot_pos = fwd_str.find('.');
if (dot_pos != std::string::npos) {
- library = fwd_str.substr(0, dot_pos);
+ library = fwd_str.substr(0, dot_pos);
function = fwd_str.substr(dot_pos + 1);
if (auto name_rva = name_table_value(*stream_, name_table_offset, i)) {
uint32_t name_offset = binary_->rva_to_offset(*name_rva);
if (auto name = stream_->peek_string_at(name_offset)) {
const bool is_valid = !name->empty() &&
- name->size() <= MAX_EXPORT_NAME_SIZE && is_printable(*name);
+ name->size() <= MAX_EXPORT_NAME_SIZE &&
+ is_printable(*name);
if (is_valid) {
entry.name_ = std::move(*name);
}
@@ -1094,7 +1210,7 @@ ok_error_t Parser::parse_exports() {
continue;
}
export_object->max_ordinal_ =
- std::max<uint32_t>(export_object->max_ordinal_, entry->ordinal());
+ std::max<uint32_t>(export_object->max_ordinal_, entry->ordinal());
export_object->entries_.push_back(std::move(entry));
}
@@ -1104,6 +1220,10 @@ ok_error_t Parser::parse_exports() {
ok_error_t Parser::parse_signature() {
LIEF_DEBUG("Parsing signature");
+ if (stream_->is_memory_view()) {
+ return ok();
+ }
+
static constexpr size_t SIZEOF_HEADER = 8;
/*** /!\ In this data directory, RVA is used as an **OFFSET** /!\ ****/
@@ -1113,12 +1233,12 @@ ok_error_t Parser::parse_signature() {
return make_error_code(lief_errors::not_found);
}
- const uint32_t signature_offset = cert_dir->RVA();
- const uint32_t signature_size = cert_dir->size();
+ const uint32_t signature_offset = cert_dir->RVA();
+ const uint32_t signature_size = cert_dir->size();
const uint64_t end_p = signature_offset + signature_size;
- LIEF_DEBUG("Signature Offset: 0x{:04x}", signature_offset);
- LIEF_DEBUG("Signature Size: 0x{:04x}", signature_size);
+ LIEF_DEBUG("Signature Offset: {:#06x}", signature_offset);
+ LIEF_DEBUG("Signature Size: {:#06x}", signature_size);
stream_->setpos(signature_offset);
while (stream_->pos() < end_p) {
@@ -1135,36 +1255,37 @@ ok_error_t Parser::parse_signature() {
}
if (length <= SIZEOF_HEADER) {
- LIEF_WARN("The signature seems corrupted!");
+ LIEF_WARN("Signature appears corrupted");
break;
}
if (auto res = stream_->read<uint16_t>()) {
revision = *res;
} else {
- LIEF_ERR("Can't parse signature revision");
+ LIEF_ERR("Failed to parse signature revision");
break;
}
if (auto res = stream_->read<uint16_t>()) {
certificate_type = *res;
} else {
- LIEF_ERR("Can't read certificate_type");
+ LIEF_ERR("Failed to read certificate type");
break;
}
- LIEF_DEBUG("Signature {}r0x{:x} (0x{:x} bytes)", certificate_type, revision, length);
+ LIEF_DEBUG("Signature {}r{:#x} ({:#x} bytes)", certificate_type, revision,
+ length);
std::vector<uint8_t> raw_signature;
if (!stream_->read_data(raw_signature, length - SIZEOF_HEADER)) {
- LIEF_INFO("Can't read 0x{:x} bytes", length);
+ LIEF_INFO("Failed to read {:#x} bytes", length);
break;
}
if (auto sign = SignatureParser::parse(std::move(raw_signature))) {
binary_->signatures_.push_back(std::move(*sign));
} else {
- LIEF_INFO("Unable to parse the signature");
+ LIEF_INFO("Failed to parse signature");
}
stream_->align(8);
if (stream_->pos() <= current_p) {
@@ -1177,18 +1298,24 @@ ok_error_t Parser::parse_signature() {
ok_error_t Parser::parse_overlay() {
LIEF_DEBUG("Parsing Overlay");
+
+ if (stream_->is_memory_view()) {
+ return ok();
+ }
+
const uint64_t last_section_offset = std::accumulate(
- std::begin(binary_->sections_), std::end(binary_->sections_), uint64_t{ 0u },
- [] (uint64_t offset, const std::unique_ptr<Section>& section) {
+ binary_->sections_.begin(), binary_->sections_.end(), uint64_t{0u},
+ [](uint64_t offset, const std::unique_ptr<Section>& section) {
return std::max<uint64_t>(section->offset() + section->size(), offset);
- });
+ }
+ );
- LIEF_DEBUG("Overlay offset: 0x{:x}", last_section_offset);
+ LIEF_DEBUG("Overlay offset: {:#x}", last_section_offset);
if (last_section_offset < stream_->size()) {
const uint64_t overlay_size = stream_->size() - last_section_offset;
- LIEF_DEBUG("Overlay size: 0x{:x}", overlay_size);
+ LIEF_DEBUG("Overlay size: {:#x}", overlay_size);
if (stream_->peek_data(binary_->overlay_, last_section_offset, overlay_size)) {
binary_->overlay_offset_ = last_section_offset;
}
@@ -1197,7 +1324,6 @@ ok_error_t Parser::parse_overlay() {
}
-
std::unique_ptr<Binary> Parser::parse(const std::string& filename,
const ParserConfig& conf) {
if (!is_pe(filename)) {
@@ -1241,16 +1367,11 @@ std::unique_ptr<Binary> Parser::parse(std::unique_ptr<BinaryStream> stream,
bool Parser::is_valid_import_name(const std::string& name) {
- // According to https://stackoverflow.com/a/23340781
- static constexpr unsigned MAX_IMPORT_NAME_SIZE = 0x1000;
-
if (name.empty() || name.size() > MAX_IMPORT_NAME_SIZE) {
return false;
}
- const bool valid_chars = std::all_of(std::begin(name), std::end(name),
- [] (char c) {
- return ::isprint(c);
- });
+ const bool valid_chars =
+ std::all_of(name.begin(), name.end(), [](char c) { return ::isprint(c); });
return valid_chars;
}
@@ -1283,11 +1404,10 @@ void Parser::memoize(COFF::String str) {
COFF::String* Parser::find_coff_string(uint32_t offset) const {
- auto it = memoize_coff_str_.find(offset);
- if (it == memoize_coff_str_.end()) {
- return nullptr;
+ if (auto it = memoize_coff_str_.find(offset); it != memoize_coff_str_.end()) {
+ return &binary_->strings_table_[it->second];
}
- return &binary_->strings_table_[it->second];
+ return nullptr;
}
std::unique_ptr<SpanStream> Parser::stream_from_rva(uint32_t rva, size_t size) {
@@ -1306,7 +1426,9 @@ std::unique_ptr<SpanStream> Parser::stream_from_rva(uint32_t rva, size_t size) {
return std::make_unique<SpanStream>(nullptr, 0);
}
- if ((uint64_t)delta >= content.size() || ((uint64_t)delta + size) > content.size()) {
+ if ((uint64_t)delta >= content.size() ||
+ ((uint64_t)delta + size) > content.size())
+ {
return std::make_unique<SpanStream>(nullptr, 0);
}
@@ -1338,76 +1460,125 @@ void Parser::record_relocation(uint32_t rva, span<const uint8_t> data) {
break;
default:
- LIEF_DEBUG("Error: {}:{}: unsupported size ({})", __FUNCTION__,
- __LINE__, data.size());
+ LIEF_DEBUG("Error: {}:{}: unsupported size ({})", __FUNCTION__, __LINE__,
+ data.size());
return;
}
uint32_t offset = bin().rva_to_offset(rva);
- LIEF_DEBUG("ARM64X[0x{:08x}]: 0x{:08x} ({} bytes)", rva, value, data.size());
+ LIEF_DEBUG("ARM64X[{:#010x}]: {:#010x} ({} bytes)", rva, value, data.size());
dyn_hdr_relocs_.insert({offset, {data.size(), value}});
}
-ok_error_t Parser::record_delta_relocation(uint32_t rva, int64_t delta, size_t size) {
+ok_error_t Parser::record_delta_relocation(uint32_t rva, int64_t delta,
+ size_t size) {
uint32_t offset = bin().rva_to_offset(rva);
switch (size) {
case sizeof(uint8_t):
- {
- auto value = stream_->peek<uint8_t>(offset);
- if (!value) {
- return make_error_code(value.error());
- }
- LIEF_DEBUG("ARM64X[0x{:08x}]: 0x{:08x} (1 bytes)", rva,
- (uint64_t)((int64_t)*value + delta));
- dyn_hdr_relocs_.insert({offset, {size, (uint64_t)((int64_t)*value + delta)}});
- return ok();
+ {
+ auto value = stream_->peek<uint8_t>(offset);
+ if (!value) {
+ return make_error_code(value.error());
}
+ LIEF_DEBUG("ARM64X[{:#010x}]: {:#010x} (1 bytes)", rva,
+ (uint64_t)((int64_t)*value + delta));
+ dyn_hdr_relocs_.insert({offset,
+ {size, (uint64_t)((int64_t)*value + delta)}});
+ return ok();
+ }
case sizeof(uint16_t):
- {
- auto value = stream_->peek<uint16_t>(offset);
- if (!value) {
- return make_error_code(value.error());
- }
- LIEF_DEBUG("ARM64X[0x{:08x}]: 0x{:08x} (2 bytes)", rva,
- (uint64_t)((int64_t)*value + delta));
- dyn_hdr_relocs_.insert({offset, {size, (uint64_t)((int64_t)*value + delta)}});
- return ok();
+ {
+ auto value = stream_->peek<uint16_t>(offset);
+ if (!value) {
+ return make_error_code(value.error());
}
+ LIEF_DEBUG("ARM64X[{:#010x}]: {:#010x} (2 bytes)", rva,
+ (uint64_t)((int64_t)*value + delta));
+ dyn_hdr_relocs_.insert({offset,
+ {size, (uint64_t)((int64_t)*value + delta)}});
+ return ok();
+ }
case sizeof(uint32_t):
- {
- auto value = stream_->peek<uint32_t>(offset);
- if (!value) {
- return make_error_code(value.error());
- }
- LIEF_DEBUG("ARM64X[0x{:08x}]: 0x{:08x} (4 bytes)", rva,
- (uint64_t)((int64_t)*value + delta));
- dyn_hdr_relocs_.insert({offset, {size, (uint64_t)((int64_t)*value + delta)}});
- return ok();
+ {
+ auto value = stream_->peek<uint32_t>(offset);
+ if (!value) {
+ return make_error_code(value.error());
}
+ LIEF_DEBUG("ARM64X[{:#010x}]: {:#010x} (4 bytes)", rva,
+ (uint64_t)((int64_t)*value + delta));
+ dyn_hdr_relocs_.insert({offset,
+ {size, (uint64_t)((int64_t)*value + delta)}});
+ return ok();
+ }
case sizeof(uint64_t):
- {
- auto value = stream_->peek<uint64_t>(offset);
- if (!value) {
- return make_error_code(value.error());
- }
- LIEF_DEBUG("ARM64X[0x{:08x}]: 0x{:08x} (8 bytes)", rva,
- (uint64_t)((int64_t)*value + delta));
- dyn_hdr_relocs_.insert({offset, {size, (uint64_t)((int64_t)*value + delta)}});
- return ok();
+ {
+ auto value = stream_->peek<uint64_t>(offset);
+ if (!value) {
+ return make_error_code(value.error());
}
+ LIEF_DEBUG("ARM64X[{:#010x}]: {:#010x} (8 bytes)", rva,
+ (uint64_t)((int64_t)*value + delta));
+ dyn_hdr_relocs_.insert({offset,
+ {size, (uint64_t)((int64_t)*value + delta)}});
+ return ok();
+ }
default:
- LIEF_DEBUG("Error: {}:{}: unsupported size ({})", __FUNCTION__,
- __LINE__, size);
+ LIEF_DEBUG("Error: {}:{}: unsupported size ({})", __FUNCTION__, __LINE__,
+ size);
return make_error_code(lief_errors::not_supported);
}
return make_error_code(lief_errors::not_supported);
}
+
+std::unique_ptr<Binary> Parser::parse_from_memory(uintptr_t address,
+ const ParserConfig& config) {
+ static constexpr size_t MAX_SIZE = std::numeric_limits<size_t>::max() >> 2;
+ return parse_from_memory(address, MAX_SIZE, config);
+}
+
+std::unique_ptr<Binary> Parser::parse_from_memory(uintptr_t address, size_t size,
+ const ParserConfig& config) {
+ auto stream = std::make_unique<MemoryStream>(address, size);
+ if (!is_pe(*stream)) {
+ return nullptr;
+ }
+
+ Parser parser{std::move(stream)};
+ parser.init(config);
+ return std::move(parser.binary_);
+}
+
+std::unique_ptr<Binary> Parser::parse_from_dump(const std::string& filepath,
+ uint64_t addr,
+ const ParserConfig& config) {
+ auto stream = VectorStream::from_file(filepath);
+ if (!stream) {
+ return nullptr;
+ }
+ return parse_from_dump(std::make_unique<VectorStream>(std::move(*stream)), addr,
+ config);
+}
+
+std::unique_ptr<Binary> Parser::parse_from_dump(BinaryStream& stream,
+ uint64_t addr,
+ const ParserConfig& config) {
+ return parse(std::make_unique<DumpStream>(addr, stream), config);
}
+
+std::unique_ptr<Binary>
+ Parser::parse_from_dump(std::unique_ptr<BinaryStream> stream, uint64_t addr,
+ const ParserConfig& config) {
+ if (stream == nullptr) {
+ return nullptr;
+ }
+ return parse(std::make_unique<DumpStream>(addr, std::move(stream)), config);
+}
+
}
diff --git a/deps/LIEF/src/PE/Parser.tcc b/deps/LIEF/src/PE/Parser.tcc
index adaec0c81fc..967d49c7e5e 100644
--- a/deps/LIEF/src/PE/Parser.tcc
+++ b/deps/LIEF/src/PE/Parser.tcc
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,25 +18,29 @@
#include "logging.hpp"
#include "LIEF/BinaryStream/BinaryStream.hpp"
+#include "LIEF/BinaryStream/MemoryStream.hpp"
#include "LIEF/BinaryStream/SpanStream.hpp"
#include "LIEF/PE/LoadConfigurations.hpp"
#include "LIEF/PE/LoadConfigurations/CHPEMetadata.hpp"
#include "LIEF/PE/LoadConfigurations/LoadConfiguration.hpp"
#include "LIEF/PE/Parser.hpp"
+#include "LIEF/PE/TLS.hpp"
#include "LIEF/PE/Binary.hpp"
#include "LIEF/PE/DataDirectory.hpp"
-#include "LIEF/PE/DataDirectory.hpp"
+#include "LIEF/PE/Relocation.hpp"
+#include "LIEF/PE/RelocationEntry.hpp"
#include "LIEF/PE/EnumToString.hpp"
#include "LIEF/PE/Section.hpp"
#include "LIEF/PE/ImportEntry.hpp"
-#include "internal_utils.hpp"
-#include "frozen.hpp"
#include "PE/Structures.hpp"
-#include "LIEF/PE/Parser.hpp"
-namespace LIEF {
-namespace PE {
+namespace LIEF::PE {
+
+inline uint64_t delta(const Parser& parser) {
+ assert(parser.bin().optional_header().imagebase() >= *parser.config().rebase);
+ return parser.bin().optional_header().imagebase() - *parser.config().rebase;
+}
bool inline warn_missing_section(const DataDirectory& dir) {
return dir.type() != DataDirectory::TYPES::CERTIFICATE_TABLE &&
@@ -76,11 +80,11 @@ ok_error_t Parser::parse() {
}
if (!parse_exceptions()) {
- LIEF_WARN("Failed to parse exceptions entries");
+ LIEF_WARN("Failed to parse exception entries");
}
if (!parse_overlay()) {
- LIEF_WARN("Failed to parse the overlay");
+ LIEF_WARN("Failed to parse overlay");
}
if (!parse_debug()) {
@@ -95,17 +99,248 @@ ok_error_t Parser::parse() {
LIEF_WARN("Nested PE ARM64X parsed with errors");
}
+ if (stream_->is_memory_view() && config_.rebase) {
+ const uint64_t imagebase = binary_->optional_header().imagebase();
+ if (imagebase < *config_.rebase) {
+ LIEF_WARN("Can't revert the memory layout: the image base ({:#x}) is "
+ "smaller than the rebase address ({:#x})",
+ imagebase, *config_.rebase);
+ } else {
+ LIEF_DEBUG("Rebase delta: ({0:#010x})", delta(*this));
+ undo_relocations<PE_T>();
+ fix_iat<PE_T>();
+ fix_tls<PE_T>();
+ fix_load_config<PE_T>();
+
+ binary_->optional_header().imagebase(*config_.rebase);
+ }
+ }
+
+ return ok();
+}
+
+template<typename PE_T>
+ok_error_t Parser::fix_load_config() {
+ LoadConfiguration* lconf = binary_->load_configuration();
+ if (lconf == nullptr) {
+ return ok();
+ }
+ const uint64_t D = delta(*this);
+ const uint64_t imagebase = binary_->optional_header().imagebase();
+
+ if (uint64_t addr = lconf->security_cookie(); addr > 0 && addr >= imagebase) {
+ lconf->security_cookie(addr - D);
+ }
+
+ if (uint64_t addr = lconf->lock_prefix_table(); addr > 0 && addr >= imagebase) {
+ lconf->lock_prefix_table(addr - D);
+ }
+
+ if (uint64_t addr = lconf->se_handler_table().value_or(0);
+ addr > 0 && addr >= imagebase)
+ {
+ lconf->se_handler_table(addr - D);
+ }
+
+ if (uint64_t addr = lconf->guard_cf_check_function_pointer().value_or(0);
+ addr > 0 && addr >= imagebase)
+ {
+ lconf->guard_cf_check_function_pointer(addr - D);
+ }
+
+ if (uint64_t addr = lconf->guard_cf_dispatch_function_pointer().value_or(0);
+ addr > 0 && addr >= imagebase)
+ {
+ lconf->guard_cf_dispatch_function_pointer(addr - D);
+ }
+
+ if (uint64_t addr = lconf->guard_address_taken_iat_entry_table().value_or(0);
+ addr > 0 && addr >= imagebase)
+ {
+ lconf->guard_address_taken_iat_entry_table(addr - D);
+ }
+
+ if (uint64_t addr = lconf->guard_long_jump_target_table().value_or(0);
+ addr > 0 && addr >= imagebase)
+ {
+ lconf->guard_long_jump_target_table(addr - D);
+ }
+
+ if (uint64_t addr = lconf->dynamic_value_reloc_table().value_or(0);
+ addr > 0 && addr >= imagebase)
+ {
+ lconf->dynamic_value_reloc_table(addr - D);
+ }
+
+ if (uint64_t addr = lconf->hybrid_metadata_pointer().value_or(0);
+ addr > 0 && addr >= imagebase)
+ {
+ lconf->hybrid_metadata_pointer(addr - D);
+ }
+
+ if (uint64_t addr = lconf->guard_rf_failure_routine().value_or(0);
+ addr > 0 && addr >= imagebase)
+ {
+ lconf->guard_rf_failure_routine(addr - D);
+ }
+
+ if (uint64_t addr =
+ lconf->guard_rf_failure_routine_function_pointer().value_or(0);
+ addr > 0 && addr >= imagebase)
+ {
+ lconf->guard_rf_failure_routine_function_pointer(addr - D);
+ }
+
+ if (uint64_t addr =
+ lconf->guard_rf_verify_stackpointer_function_pointer().value_or(0);
+ addr > 0 && addr >= imagebase)
+ {
+ lconf->guard_rf_verify_stackpointer_function_pointer(addr - D);
+ }
+
+ if (uint64_t addr = lconf->enclave_configuration_ptr().value_or(0);
+ addr > 0 && addr >= imagebase)
+ {
+ lconf->enclave_configuration_ptr(addr - D);
+ }
+
+ if (uint64_t addr = lconf->volatile_metadata_pointer().value_or(0);
+ addr > 0 && addr >= imagebase)
+ {
+ lconf->volatile_metadata_pointer(addr - D);
+ }
+
+ if (uint64_t addr = lconf->guard_eh_continuation_table().value_or(0);
+ addr > 0 && addr >= imagebase)
+ {
+ lconf->guard_eh_continuation_table(addr - D);
+ }
+
+ if (uint64_t addr = lconf->guard_xfg_check_function_pointer().value_or(0);
+ addr > 0 && addr >= imagebase)
+ {
+ lconf->guard_xfg_check_function_pointer(addr - D);
+ }
+
+ if (uint64_t addr = lconf->guard_xfg_dispatch_function_pointer().value_or(0);
+ addr > 0 && addr >= imagebase)
+ {
+ lconf->guard_xfg_dispatch_function_pointer(addr - D);
+ }
+
+ if (uint64_t addr =
+ lconf->guard_xfg_table_dispatch_function_pointer().value_or(0);
+ addr > 0 && addr >= imagebase)
+ {
+ lconf->guard_xfg_table_dispatch_function_pointer(addr - D);
+ }
+
+ if (uint64_t addr = lconf->cast_guard_os_determined_failure_mode().value_or(0);
+ addr > 0 && addr >= imagebase)
+ {
+ lconf->cast_guard_os_determined_failure_mode(addr - D);
+ }
+
+ if (uint64_t addr = lconf->guard_memcpy_function_pointer().value_or(0);
+ addr > 0 && addr >= imagebase)
+ {
+ lconf->guard_memcpy_function_pointer(addr - D);
+ }
+
+ if (uint64_t addr = lconf->uma_function_pointers().value_or(0);
+ addr > 0 && addr >= imagebase)
+ {
+ lconf->uma_function_pointers(addr - D);
+ }
+ return ok();
+}
+
+template<typename PE_T>
+ok_error_t Parser::fix_tls() {
+ TLS* tls = binary_->tls();
+ if (tls == nullptr) {
+ return ok();
+ }
+
+ const uint64_t D = delta(*this);
+ tls->addressof_index(tls->addressof_index() - D);
+ tls->addressof_callbacks(tls->addressof_callbacks() - D);
+ /* Address of raw data */ {
+ const auto& [start, end] = tls->addressof_raw_data();
+ tls->addressof_raw_data(std::make_pair(start - D, end - D));
+ }
+ /* Callbacks */ {
+ std::vector<uint64_t> callbacks = tls->callbacks();
+ for (size_t i = 0; i < callbacks.size(); ++i) {
+ callbacks[i] -= D;
+ }
+ tls->callbacks(std::move(callbacks));
+ }
return ok();
}
+template<typename PE_T>
+ok_error_t Parser::fix_iat() {
+ for (Import& imp : binary_->imports()) {
+ for (ImportEntry& entry : imp.entries()) {
+ entry.iat_value(entry.ilt_value());
+ }
+ }
+ return ok();
+}
+
+template<typename PE_T>
+ok_error_t Parser::undo_relocations() {
+ const uint64_t D = delta(*this);
+ for (const Relocation& R : binary_->relocations()) {
+ for (const RelocationEntry& entry : R.entries()) {
+ if (entry.type() == RelocationEntry::BASE_TYPES::ABS) {
+ continue;
+ }
+
+ const uint64_t rva = entry.address();
+ Section* sec = binary_->section_from_rva(rva);
+
+ if (sec == nullptr) {
+ continue;
+ }
+
+ span<uint8_t> buffer = sec->writable_content();
+ const uint64_t rel_offset = rva - sec->virtual_address();
+
+ switch (entry.type()) {
+ case RelocationEntry::BASE_TYPES::DIR64:
+ {
+ if (rel_offset > buffer.size() ||
+ buffer.size() - rel_offset < sizeof(uint64_t))
+ {
+ LIEF_WARN("Relocation at RVA {:#x} is out of the section's "
+ "content bounds",
+ rva);
+ continue;
+ }
+ uint64_t value = 0;
+ std::memcpy(&value, buffer.data() + rel_offset, sizeof(value));
+ value -= D;
+ std::memcpy(buffer.data() + rel_offset, &value, sizeof(value));
+ break;
+ }
+
+ default:
+ LIEF_WARN("Unsupported reloc type: {}", to_string(entry.type()));
+ continue;
+ }
+ }
+ }
+ return ok();
+}
template<typename PE_T>
ok_error_t Parser::parse_nested_relocated() {
class RelocatedStream : public BinaryStream {
public:
RelocatedStream(Parser& parent) :
- parent_(&parent)
- {}
+ parent_(&parent) {}
~RelocatedStream() override = default;
@@ -132,8 +367,7 @@ ok_error_t Parser::parse_nested_relocated() {
}
// Exact match
- if (it_value->first == offset && (offset + it_value->second.size) <= size)
- {
+ if (it_value->first == offset && (offset + it_value->second.size) <= size) {
const relocation_t& R = it_value->second;
std::memcpy(dst, &R.value, R.size);
@@ -158,8 +392,7 @@ ok_error_t Parser::parse_nested_relocated() {
}
result<const void*> read_at(uint64_t /*offset*/, uint64_t /*size*/,
- uint64_t /*va*/) const override
- {
+ uint64_t /*va*/) const override {
return make_error_code(lief_errors::not_supported);
}
@@ -192,7 +425,7 @@ ok_error_t Parser::parse_headers() {
auto dos_hdr = stream_->peek<details::pe_dos_header>(0);
if (!dos_hdr) {
- LIEF_ERR("Can't read the DOS Header");
+ LIEF_ERR("Failed to read DOS header");
return make_error_code(dos_hdr.error());
}
@@ -202,7 +435,7 @@ ok_error_t Parser::parse_headers() {
{
auto pe_header = stream_->peek<details::pe_header>(addr_new_exe);
if (!pe_header) {
- LIEF_ERR("Can't read the PE header");
+ LIEF_ERR("Failed to read PE header");
return make_error_code(pe_header.error());
}
binary_->header_ = *pe_header;
@@ -212,7 +445,7 @@ ok_error_t Parser::parse_headers() {
const uint64_t offset = addr_new_exe + sizeof(details::pe_header);
auto opt_header = stream_->peek<pe_optional_header>(offset);
if (!opt_header) {
- LIEF_ERR("Can't read the optional header");
+ LIEF_ERR("Failed to read optional header");
return make_error_code(opt_header.error());
}
binary_->optional_header_ = *opt_header;
@@ -224,27 +457,31 @@ ok_error_t Parser::parse_headers() {
template<typename PE_T>
ok_error_t Parser::parse_data_directories() {
using pe_optional_header = typename PE_T::pe_optional_header;
- const uint32_t directories_offset = binary_->dos_header().addressof_new_exeheader() +
- sizeof(details::pe_header) + sizeof(pe_optional_header);
- static constexpr auto NB_DIR = DataDirectory::DEFAULT_NB;
- binary_->data_directories_.resize(NB_DIR);
- // Make sure the data_directory array is correctly initialized
- for (size_t i = 0; i < NB_DIR; ++i) {
- binary_->data_directories_[i] = std::make_unique<DataDirectory>();
- }
+ const uint32_t directories_offset =
+ binary_->dos_header().addressof_new_exeheader() +
+ sizeof(details::pe_header) + sizeof(pe_optional_header);
+ static constexpr auto DEFAULT_NB = DataDirectory::DEFAULT_NB;
+ static constexpr auto MAX_DATA_DIRECTORIES = 30;
+ binary_->data_directories_.reserve(DEFAULT_NB);
stream_->setpos(directories_offset);
-
// WARNING: The PE specifications require that the data directory table ends
// with a null entry (RVA / Size, set to 0).
//
// Nevertheless it seems that this requirement is not enforced by the PE loader.
- // The binary bc203f2b6a928f1457e9ca99456747bcb7adbbfff789d1c47e9479aac11598af contains a non-null final
- // data directory (watermarking?)
- for (size_t i = 0; i < NB_DIR; ++i) {
+ // The binary bc203f2b6a928f1457e9ca99456747bcb7adbbfff789d1c47e9479aac11598af
+ // contains a non-null final data directory (watermarking?)
+ uint32_t nb_dir = binary_->optional_header().numberof_rva_and_size();
+ if (nb_dir > MAX_DATA_DIRECTORIES) {
+ LIEF_WARN("The number of data directories ({}) is larger than the maximum "
+ "value ({}). The extra entries are ignored",
+ nb_dir, MAX_DATA_DIRECTORIES);
+ nb_dir = MAX_DATA_DIRECTORIES;
+ }
+ for (size_t i = 0; i < nb_dir; ++i) {
auto raw_dir = stream_->read<details::pe_data_directory>();
if (!raw_dir) {
- LIEF_ERR("Can't read data directory at #{}", i);
+ LIEF_ERR("Failed to read data directory #{}", i);
return make_error_code(lief_errors::read_error);
}
const auto dir_type = DataDirectory::TYPES(i);
@@ -252,13 +489,12 @@ ok_error_t Parser::parse_data_directories() {
if (directory->RVA() > 0) {
const uint64_t offset = binary_->rva_to_offset(directory->RVA());
- directory->section_ = binary_->section_from_offset(offset);
+ directory->section_ = binary_->section_from_offset(offset);
if (directory->section_ == nullptr && warn_missing_section(*directory)) {
- LIEF_WARN("Unable to find the section associated with {}",
- to_string(dir_type));
+ LIEF_WARN("Section not found for {}", to_string(dir_type));
}
}
- binary_->data_directories_[i] = std::move(directory);
+ binary_->data_directories_.push_back(std::move(directory));
}
// Import Table
@@ -308,7 +544,7 @@ ok_error_t Parser::parse_data_directories() {
if (dir->RVA() > 0) {
auto is_ok = parse_delay_imports<PE_T>();
if (!is_ok) {
- LIEF_WARN("The parsing of delay imports has failed or is incomplete ('{}')",
+ LIEF_WARN("Delay imports parsing failed or incomplete ('{}')",
to_string(get_error(is_ok)));
}
}
@@ -321,82 +557,87 @@ template<typename PE_T>
ok_error_t Parser::parse_import_table() {
using uint = typename PE_T::uint;
DataDirectory* import_dir = binary_->import_dir();
- DataDirectory* iat_dir = binary_->iat_dir();
+ DataDirectory* iat_dir = binary_->iat_dir();
if (import_dir == nullptr || iat_dir == nullptr) {
return make_error_code(lief_errors::not_found);
}
- const uint32_t import_rva = import_dir->RVA();
+ const uint32_t import_rva = import_dir->RVA();
const uint64_t import_offset = binary_->rva_to_offset(import_rva);
- const size_t import_end = import_offset + import_dir->size();
+ const size_t import_end = import_offset + import_dir->size();
uint64_t last_imp_offset = 0;
stream_->setpos(import_offset);
result<details::pe_import> imp_res;
- while (stream_->pos() < import_end && (imp_res = stream_->read<details::pe_import>())) {
+ while (stream_->pos() < import_end &&
+ (imp_res = stream_->read<details::pe_import>()))
+ {
const auto raw_imp = *imp_res;
if (BinaryStream::is_all_zero(raw_imp)) {
break;
}
auto import = std::make_unique<Import>(raw_imp);
- import->directory_ = import_dir;
- import->iat_directory_ = iat_dir;
- import->type_ = type_;
+ import->directory_ = import_dir;
+ import->iat_directory_ = iat_dir;
+ import->type_ = type_;
if (import->name_rva_ == 0) {
- LIEF_DEBUG("Name's RVA is null");
+ LIEF_DEBUG("Name RVA is null");
break;
}
// Offset to the Import (Library) name
const uint64_t offset_name = binary_->rva_to_offset(import->name_rva_);
- if (auto res_name = stream_->peek_string_at(offset_name)) {
+ if (auto res_name = stream_->peek_string_at(offset_name)) {
import->name_ = std::move(*res_name);
} else {
- LIEF_ERR("Can't read the import name (offset: 0x{:x})", offset_name);
+ LIEF_ERR("Failed to read import name (offset: {:#x})", offset_name);
continue;
}
- // We assume that a DLL name should be at least 4 length size and "printable
+ // We assume that a DLL name should be at least 4 characters long and printable
const std::string& imp_name = import->name();
if (!is_valid_dll_name(imp_name)) {
if (!imp_name.empty()) {
- LIEF_WARN("'{}' is not a valid import name and will be discarded", imp_name);
+ LIEF_WARN("Invalid import name '{}', discarding", imp_name);
continue;
}
continue; // skip
}
- last_imp_offset = std::max<uint64_t>(last_imp_offset, offset_name + imp_name.size() + 1);
+ last_imp_offset =
+ std::max<uint64_t>(last_imp_offset, offset_name + imp_name.size() + 1);
// Offset to import lookup table
- uint64_t LT_offset = import->import_lookup_table_rva() > 0 ?
- binary_->rva_to_offset(import->import_lookup_table_rva()) :
- 0;
+ uint64_t LT_offset =
+ import->import_lookup_table_rva() > 0 ?
+ binary_->rva_to_offset(import->import_lookup_table_rva()) :
+ 0;
// Offset to the import address table
- uint64_t IAT_offset = import->import_address_table_rva() > 0 ?
- binary_->rva_to_offset(import->import_address_table_rva()) :
- 0;
- LIEF_DEBUG("IAT Offset: 0x{:08x}", IAT_offset);
- LIEF_DEBUG("IAT RVA: 0x{:08x}", import->import_address_table_rva());
- LIEF_DEBUG("ILT Offset: 0x{:08x}", LT_offset);
- LIEF_DEBUG("ILT RVA: 0x{:08x}", import->import_lookup_table_rva());
+ uint64_t IAT_offset =
+ import->import_address_table_rva() > 0 ?
+ binary_->rva_to_offset(import->import_address_table_rva()) :
+ 0;
+ LIEF_DEBUG("IAT Offset: {:#010x}", IAT_offset);
+ LIEF_DEBUG("IAT RVA: {:#010x}", import->import_address_table_rva());
+ LIEF_DEBUG("ILT Offset: {:#010x}", LT_offset);
+ LIEF_DEBUG("ILT RVA: {:#010x}", import->import_lookup_table_rva());
uint IAT = 0;
uint table = 0;
if (IAT_offset > 0) {
if (auto res_iat = stream_->peek<uint>(IAT_offset)) {
- IAT = *res_iat;
+ IAT = *res_iat;
table = IAT;
IAT_offset += sizeof(uint);
}
@@ -404,44 +645,48 @@ ok_error_t Parser::parse_import_table() {
if (LT_offset > 0) {
if (auto res_lt = stream_->peek<uint>(LT_offset)) {
- table = *res_lt;
+ table = *res_lt;
LT_offset += sizeof(uint);
}
}
size_t idx = 0;
- while (table != 0 || IAT != 0) {
+ while ((table != 0 || IAT != 0) && idx < Parser::MAX_IMPORT_ENTRIES) {
auto entry = std::make_unique<ImportEntry>();
entry->iat_value_ = IAT;
entry->ilt_value_ = table;
- entry->data_ = table > 0 ? table : IAT; // In some cases, ILT can be corrupted
- entry->type_ = type_;
- entry->rva_ = import->iat_rva_ + sizeof(uint) * (idx++);
+ entry->data_ =
+ table > 0 ? table : IAT; // In some cases, ILT can be corrupted
+ entry->type_ = type_;
+ entry->rva_ = import->iat_rva_ + sizeof(uint) * (idx++);
- LIEF_DEBUG("IAT: 0x{:08x} | ILT: 0x{:08x}", IAT, table);
+ LIEF_DEBUG("IAT: {:#010x} | ILT: {:#010x}", IAT, table);
if (!entry->is_ordinal()) {
const size_t hint_off = binary_->rva_to_offset(entry->hint_name_rva());
const size_t name_off = hint_off + sizeof(uint16_t);
- if (auto entry_name = stream_->peek_string_at(name_off)) {
+ if (auto entry_name =
+ stream_->peek_string_at(name_off, MAX_IMPORT_NAME_SIZE))
+ {
entry->name_ = std::move(*entry_name);
} else {
- LIEF_ERR("Can't read import entry name");
+ LIEF_ERR("Failed to read import entry name");
}
if (auto hint = stream_->peek<uint16_t>(hint_off)) {
entry->hint_ = *hint;
} else {
- LIEF_INFO("Can't read hint value @0x{:x}", hint_off);
+ LIEF_INFO("Failed to read hint value @{:#x}", hint_off);
}
- last_imp_offset = std::max<uint64_t>(last_imp_offset, name_off + entry->name().size() + 1);
+ last_imp_offset = std::max<uint64_t>(last_imp_offset,
+ name_off + entry->name().size() + 1);
// Check that the import name is valid
if (is_valid_import_name(entry->name())) {
import->entries_.push_back(std::move(entry));
- } else if (!entry->name().empty()){
- LIEF_INFO("'{}' is an invalid import name and will be discarded", entry->name());
+ } else if (!entry->name().empty()) {
+ LIEF_INFO("Invalid import name '{}', discarding", entry->name());
}
} else {
import->entries_.push_back(std::move(entry));
@@ -452,7 +697,7 @@ ok_error_t Parser::parse_import_table() {
IAT = *iat;
IAT_offset += sizeof(uint);
} else {
- LIEF_ERR("Can't read the IAT value at 0x{:x}", IAT_offset);
+ LIEF_ERR("Failed to read IAT value at {:#x}", IAT_offset);
IAT = 0;
}
} else {
@@ -465,13 +710,21 @@ ok_error_t Parser::parse_import_table() {
table = *lt;
LT_offset += sizeof(uint);
} else {
- LIEF_ERR("Can't read the Lookup Table value at 0x{:x}", LT_offset);
+ LIEF_ERR("Failed to read lookup table value at {:#x}", LT_offset);
table = 0;
}
} else {
table = 0;
}
}
+
+ if (idx >= MAX_IMPORT_ENTRIES) {
+ LIEF_WARN(
+ "Import '{}' exceeded max entries ({}), IAT may lack null terminator",
+ import->name(), MAX_IMPORT_ENTRIES
+ );
+ }
+
import->nb_original_func_ = import->entries_.size();
binary_->imports_.push_back(std::move(import));
}
@@ -483,34 +736,42 @@ ok_error_t Parser::parse_import_table() {
template<class PE_T>
ok_error_t Parser::parse_delay_names_table(DelayImport& import,
uint32_t names_offset,
- uint32_t iat_offset)
-{
+ uint32_t iat_offset) {
using ptr_t = typename PE_T::uint;
ScopedStream nstream(*stream_, names_offset);
auto entry_val = nstream->read<ptr_t>();
if (!entry_val) {
- LIEF_ERR("Can't read delay_imports.names_table[0]");
+ LIEF_ERR("Failed to read delay_imports.names_table[0]");
return make_error_code(entry_val.error());
}
while (*nstream && entry_val && *entry_val != 0) {
- auto entry = std::make_unique<DelayImportEntry>(*entry_val, type_);
// Index of the current entry (-1 as we start with a read())
const size_t index = (nstream->pos() - names_offset) / sizeof(ptr_t) - 1;
+
+ if (index >= MAX_IMPORT_ENTRIES) {
+ LIEF_WARN("Delay import '{}' exceeded the max number of entries ({})",
+ import.name(), MAX_IMPORT_ENTRIES);
+ break;
+ }
+
+ auto entry = std::make_unique<DelayImportEntry>(*entry_val, type_);
const uint32_t iat_pos = index * sizeof(ptr_t);
if (auto iat_value = stream_->peek<ptr_t>(iat_offset + iat_pos)) {
- entry->value_ =import.iat() + iat_pos; // Symbol's value for the base class
+ entry->value_ = import.iat() + iat_pos; // Symbol's value for the base class
entry->iat_value_ = *iat_value;
- LIEF_DEBUG(" [{}].iat : 0x{:010x}", index, entry->iat_value_);
+ LIEF_DEBUG(" [{}].iat : {:#012x}", index, entry->iat_value_);
}
if (!entry->is_ordinal()) {
uint64_t hint_off = binary_->rva_to_offset(entry->hint_name_rva());
const uint64_t name_off = hint_off + sizeof(uint16_t);
- if (auto entry_name = stream_->peek_string_at(name_off)) {
+ if (auto entry_name =
+ stream_->peek_string_at(name_off, MAX_IMPORT_NAME_SIZE))
+ {
entry->name_ = std::move(*entry_name);
}
@@ -521,8 +782,7 @@ ok_error_t Parser::parse_delay_names_table(DelayImport& import,
if (Parser::is_valid_import_name(entry->name())) {
import.entries_.push_back(std::move(entry));
}
- }
- else /* is ordinal */ {
+ } else /* is ordinal */ {
import.entries_.push_back(std::move(entry));
}
entry_val = nstream->read<ptr_t>();
@@ -554,7 +814,7 @@ ok_error_t Parser::parse_delay_imports() {
while (stream) {
auto import = stream->read<details::delay_imports>();
if (!import) {
- LIEF_DEBUG("Error: {}:{}", __FUNCTION__, __LINE__);
+ LIEF_DEBUG("Failed to read delay import at {}:{}", __FUNCTION__, __LINE__);
return make_error_code(import.error());
}
@@ -571,29 +831,28 @@ ok_error_t Parser::parse_delay_imports() {
imp->name_ = std::move(*dll_name);
}
- LIEF_DEBUG(" delay_imports.name: {}", imp->name_);
- LIEF_DEBUG(" delay_imports.attribute: {}", import->attribute);
- LIEF_DEBUG(" delay_imports.handle: 0x{:04x}", import->handle);
- LIEF_DEBUG(" delay_imports.iat: 0x{:04x}", import->iat);
- LIEF_DEBUG(" delay_imports.name_table: 0x{:04x}", import->name_table);
- LIEF_DEBUG(" delay_imports.bound_iat: 0x{:04x}", import->bound_iat);
- LIEF_DEBUG(" delay_imports.unload_iat: 0x{:04x}", import->unload_iat);
- LIEF_DEBUG(" delay_imports.timestamp: 0x{:04x}", import->timestamp);
+ LIEF_DEBUG(" delay_imports.name: {}", imp->name_);
+ LIEF_DEBUG(" delay_imports.attribute: {}", import->attribute);
+ LIEF_DEBUG(" delay_imports.handle: {:#06x}", import->handle);
+ LIEF_DEBUG(" delay_imports.iat: {:#06x}", import->iat);
+ LIEF_DEBUG(" delay_imports.name_table: {:#06x}", import->name_table);
+ LIEF_DEBUG(" delay_imports.bound_iat: {:#06x}", import->bound_iat);
+ LIEF_DEBUG(" delay_imports.unload_iat: {:#06x}", import->unload_iat);
+ LIEF_DEBUG(" delay_imports.timestamp: {:#06x}", import->timestamp);
// Offset to Delay Import Name Table
uint64_t names_offset =
- import->name_table > 0 ? binary_->rva_to_offset(import->name_table) : 0;
+ import->name_table > 0 ? binary_->rva_to_offset(import->name_table) : 0;
// Offset to the import address table
uint64_t IAT_offset =
- import->iat > 0 ? binary_->rva_to_offset(import->iat) : 0;
+ import->iat > 0 ? binary_->rva_to_offset(import->iat) : 0;
- LIEF_DEBUG(" [IAT ]: 0x{:04x}", IAT_offset);
- LIEF_DEBUG(" [Names]: 0x{:04x}", names_offset);
+ LIEF_DEBUG(" [IAT ]: {:#06x}", IAT_offset);
+ LIEF_DEBUG(" [Names]: {:#06x}", names_offset);
if (names_offset > 0) {
- auto is_ok = parse_delay_names_table<PE_T>(*imp, names_offset,
- IAT_offset);
+ auto is_ok = parse_delay_names_table<PE_T>(*imp, names_offset, IAT_offset);
if (!is_ok) {
LIEF_WARN("Delay imports names table parsed with errors ('{}')",
to_string(get_error(is_ok)));
@@ -619,7 +878,7 @@ ok_error_t Parser::parse_tls() {
return make_error_code(lief_errors::not_found);
}
const uint32_t tls_rva = tls_dir->RVA();
- const uint64_t offset = binary_->rva_to_offset(tls_rva);
+ const uint64_t offset = binary_->rva_to_offset(tls_rva);
stream_->setpos(offset);
@@ -633,26 +892,31 @@ ok_error_t Parser::parse_tls() {
const uint64_t imagebase = binary_->optional_header().imagebase();
- if (tls_header->RawDataStartVA >= imagebase && tls_header->RawDataEndVA > tls_header->RawDataStartVA) {
+ if (tls_header->RawDataStartVA >= imagebase &&
+ tls_header->RawDataEndVA > tls_header->RawDataStartVA)
+ {
const uint64_t start_data_rva = tls_header->RawDataStartVA - imagebase;
- const uint64_t stop_data_rva = tls_header->RawDataEndVA - imagebase;
+ const uint64_t stop_data_rva = tls_header->RawDataEndVA - imagebase;
const uint start_template_offset = binary_->rva_to_offset(start_data_rva);
- const uint end_template_offset = binary_->rva_to_offset(stop_data_rva);
+ const uint end_template_offset = binary_->rva_to_offset(stop_data_rva);
const size_t size_to_read = end_template_offset - start_template_offset;
if (size_to_read > Parser::MAX_DATA_SIZE) {
- LIEF_DEBUG("TLS's template is too large!");
+ LIEF_DEBUG("TLS template is too large");
} else {
- if (!stream_->peek_data(tls->data_template_, start_template_offset, size_to_read)) {
- LIEF_WARN("TLS's template corrupted");
+ if (!stream_->peek_data(tls->data_template_, start_template_offset,
+ size_to_read))
+ {
+ LIEF_WARN("TLS template corrupted");
}
}
}
if (tls->addressof_callbacks() > imagebase) {
- uint64_t callbacks_offset = binary_->rva_to_offset(tls->addressof_callbacks() - imagebase);
+ uint64_t callbacks_offset =
+ binary_->rva_to_offset(tls->addressof_callbacks() - imagebase);
stream_->setpos(callbacks_offset);
size_t count = 0;
while (count++ < Parser::MAX_TLS_CALLBACKS) {
@@ -681,7 +945,9 @@ ok_error_t Parser::parse_tls() {
template<typename PE_T>
ok_error_t Parser::parse_load_config() {
const DataDirectory* lconf_dir = bin().load_config_dir();
- assert(lconf_dir != nullptr);
+ if (lconf_dir == nullptr) {
+ return ok();
+ }
if (lconf_dir->RVA() == 0 || lconf_dir->size() == 0) {
return ok();
@@ -723,52 +989,53 @@ ok_error_t Parser::process_load_config(LoadConfiguration& lconf) {
auto dst = &LoadConfiguration::guard_cf_functions_;
const size_t count = lconf.guard_cf_function_count().value_or(0);
- auto is_ok = LoadConfiguration::parse_guard_functions(
- *this, *stream, lconf, count, dst);
+ auto is_ok = LoadConfiguration::parse_guard_functions(*this, *stream, lconf,
+ count, dst);
if (!is_ok) {
LIEF_WARN("Guard CF table processing finished with errors");
}
}
if (uint64_t addr = lconf.guard_address_taken_iat_entry_table().value_or((0));
- addr > 0) {
+ addr > 0)
+ {
uint64_t offset = bin().va_to_offset(addr);
ScopedStream stream(*stream_, offset);
auto dst = &LoadConfiguration::guard_address_taken_iat_entries_;
const size_t count = lconf.guard_address_taken_iat_entry_count().value_or(0);
- auto is_ok = LoadConfiguration::parse_guard_functions(
- *this, *stream, lconf, count, dst);
+ auto is_ok = LoadConfiguration::parse_guard_functions(*this, *stream, lconf,
+ count, dst);
if (!is_ok) {
LIEF_WARN("Guard CF Address Taken IAT Entry Table processing finished "
"with errors");
}
}
- if (uint64_t addr = lconf.guard_long_jump_target_table().value_or((0));
- addr > 0) {
+ if (uint64_t addr = lconf.guard_long_jump_target_table().value_or((0)); addr > 0)
+ {
uint64_t offset = bin().va_to_offset(addr);
ScopedStream stream(*stream_, offset);
auto dst = &LoadConfiguration::guard_long_jump_targets_;
const size_t count = lconf.guard_long_jump_target_count().value_or(0);
- auto is_ok = LoadConfiguration::parse_guard_functions(
- *this, *stream, lconf, count, dst);
+ auto is_ok = LoadConfiguration::parse_guard_functions(*this, *stream, lconf,
+ count, dst);
if (!is_ok) {
LIEF_WARN("Guard CF long jump target processing finished with errors");
}
}
- if (uint64_t addr = lconf.guard_eh_continuation_table().value_or((0));
- addr > 0) {
+ if (uint64_t addr = lconf.guard_eh_continuation_table().value_or((0)); addr > 0)
+ {
uint64_t offset = bin().va_to_offset(addr);
ScopedStream stream(*stream_, offset);
auto dst = &LoadConfiguration::guard_eh_continuation_functions_;
const size_t count = lconf.guard_eh_continuation_count().value_or(0);
- auto is_ok = LoadConfiguration::parse_guard_functions(
- *this, *stream, lconf, count, dst);
+ auto is_ok = LoadConfiguration::parse_guard_functions(*this, *stream, lconf,
+ count, dst);
if (!is_ok) {
LIEF_WARN("Guard EH continuation function processing finished with errors");
@@ -800,4 +1067,3 @@ ok_error_t Parser::process_load_config(LoadConfiguration& lconf) {
}
}
-}
diff --git a/deps/LIEF/src/PE/ParserConfig.cpp b/deps/LIEF/src/PE/ParserConfig.cpp
index 0195c5221fd..a3fdfb72a66 100644
--- a/deps/LIEF/src/PE/ParserConfig.cpp
+++ b/deps/LIEF/src/PE/ParserConfig.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,16 +20,16 @@
namespace LIEF::PE {
std::string ParserConfig::to_string() const {
static constexpr auto WIDTH = 20;
- using namespace fmt;
std::ostringstream os;
os << "ParserConfig {\n"
- << format(" {:{}}: {}\n", "parse_signature", WIDTH, parse_signature)
- << format(" {:{}}: {}\n", "parse_exports", WIDTH, parse_exports)
- << format(" {:{}}: {}\n", "parse_imports", WIDTH, parse_imports)
- << format(" {:{}}: {}\n", "parse_rsrc", WIDTH, parse_rsrc)
- << format(" {:{}}: {}\n", "parse_reloc", WIDTH, parse_reloc)
- << format(" {:{}}: {}\n", "parse_exceptions", WIDTH, parse_exceptions)
- << format(" {:{}}: {}\n", "parse_arm64x_binary", WIDTH, parse_arm64x_binary)
+ << fmt::format(" {:{}}: {}\n", "parse_signature", WIDTH, parse_signature)
+ << fmt::format(" {:{}}: {}\n", "parse_exports", WIDTH, parse_exports)
+ << fmt::format(" {:{}}: {}\n", "parse_imports", WIDTH, parse_imports)
+ << fmt::format(" {:{}}: {}\n", "parse_rsrc", WIDTH, parse_rsrc)
+ << fmt::format(" {:{}}: {}\n", "parse_reloc", WIDTH, parse_reloc)
+ << fmt::format(" {:{}}: {}\n", "parse_exceptions", WIDTH, parse_exceptions)
+ << fmt::format(" {:{}}: {}\n", "parse_arm64x_binary", WIDTH,
+ parse_arm64x_binary)
<< "}\n";
return os.str();
}
diff --git a/deps/LIEF/src/PE/Relocation.cpp b/deps/LIEF/src/PE/Relocation.cpp
index d70e5b38ba9..8081dce9ea9 100644
--- a/deps/LIEF/src/PE/Relocation.cpp
+++ b/deps/LIEF/src/PE/Relocation.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,8 +27,8 @@
#include "logging.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
Relocation::Relocation(Relocation&&) = default;
Relocation& Relocation::operator=(Relocation&& other) = default;
@@ -39,18 +39,15 @@ Relocation::Relocation() = default;
Relocation::Relocation(uint32_t base, uint32_t block_size) :
Object(),
block_size_(block_size),
- virtual_address_(base)
-{}
+ virtual_address_(base) {}
Relocation::Relocation(uint32_t base) :
- Relocation(base, 0)
-{}
+ Relocation(base, 0) {}
Relocation::Relocation(const Relocation& other) :
Object{other},
block_size_{other.block_size_},
- virtual_address_{other.virtual_address_}
-{
+ virtual_address_{other.virtual_address_} {
entries_.reserve(other.entries_.size());
for (const std::unique_ptr<RelocationEntry>& r : other.entries_) {
auto copy = std::make_unique<RelocationEntry>(*r);
@@ -66,14 +63,13 @@ Relocation& Relocation::operator=(Relocation other) {
Relocation::Relocation(const details::pe_base_relocation_block& header) :
block_size_{header.BlockSize},
- virtual_address_{header.PageRVA}
-{}
+ virtual_address_{header.PageRVA} {}
void Relocation::swap(Relocation& other) {
- std::swap(block_size_, other.block_size_);
+ std::swap(block_size_, other.block_size_);
std::swap(virtual_address_, other.virtual_address_);
- std::swap(entries_, other.entries_);
+ std::swap(entries_, other.entries_);
}
RelocationEntry& Relocation::add_entry(const RelocationEntry& entry) {
@@ -88,9 +84,8 @@ void Relocation::accept(LIEF::Visitor& visitor) const {
}
std::ostream& operator<<(std::ostream& os, const Relocation& relocation) {
- using namespace fmt;
- os << format("Page RVA: 0x{:08x} (SizeOfBlock: {} bytes)\n",
- relocation.virtual_address(), relocation.block_size());
+ os << fmt::format("Page RVA: {:#010x} (SizeOfBlock: {} bytes)\n",
+ relocation.virtual_address(), relocation.block_size());
for (const RelocationEntry& entry : relocation.entries()) {
os << " " << entry << '\n';
}
@@ -104,13 +99,13 @@ Relocation::relocations_t Relocation::parse(Parser& ctx, BinaryStream& stream) {
while (stream) {
auto PageRVA = stream.read<uint32_t>();
if (!PageRVA) {
- LIEF_DEBUG("Error: {}:{}", __FUNCTION__, __LINE__);
+ LIEF_DEBUG("Failed to read page RVA at {}:{}", __FUNCTION__, __LINE__);
return relocs;
}
auto BlockSize = stream.read<uint32_t>();
if (!BlockSize) {
- LIEF_DEBUG("Error: {}:{}", __FUNCTION__, __LINE__);
+ LIEF_DEBUG("Failed to read block size at {}:{}", __FUNCTION__, __LINE__);
return relocs;
}
@@ -127,12 +122,14 @@ Relocation::relocations_t Relocation::parse(Parser& ctx, BinaryStream& stream) {
for (size_t i = 0; i < nb_entries; ++i) {
auto data = block_strm->read<uint16_t>();
if (!data) {
- LIEF_DEBUG("Error: {}:{} (entry: {})", __FUNCTION__, __LINE__, i);
+ LIEF_DEBUG("Failed to read entry at {}:{} (entry: {})", __FUNCTION__,
+ __LINE__, i);
break;
}
uint16_t pos = RelocationEntry::get_position(*data);
- RelocationEntry::BASE_TYPES ty = RelocationEntry::type_from_data(arch, *data);
+ RelocationEntry::BASE_TYPES ty =
+ RelocationEntry::type_from_data(arch, *data);
auto entry = std::make_unique<RelocationEntry>(pos, ty);
entry->relocation_ = relocation.get();
relocation->entries_.push_back(std::move(entry));
@@ -145,4 +142,3 @@ Relocation::relocations_t Relocation::parse(Parser& ctx, BinaryStream& stream) {
}
}
-}
diff --git a/deps/LIEF/src/PE/RelocationEntry.cpp b/deps/LIEF/src/PE/RelocationEntry.cpp
index 842de4ff4fc..3671daaac6a 100644
--- a/deps/LIEF/src/PE/RelocationEntry.cpp
+++ b/deps/LIEF/src/PE/RelocationEntry.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,14 +25,13 @@
FMT_FORMATTER(LIEF::PE::RelocationEntry::BASE_TYPES, LIEF::PE::to_string);
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
RelocationEntry::BASE_TYPES
- RelocationEntry::type_from_data(Header::MACHINE_TYPES arch, uint16_t data)
-{
+ RelocationEntry::type_from_data(Header::MACHINE_TYPES arch, uint16_t data) {
uint8_t raw_type = get_type(data);
- // Discriminate the type based on the the provided architecture
+ // Discriminate the type based on the provided architecture
// for the values that depend on the arch.
if (raw_type == 5) {
if (Header::is_mips(arch)) {
@@ -84,18 +83,18 @@ uint64_t RelocationEntry::address() const {
void RelocationEntry::address(uint64_t address) {
if (relocation_ == nullptr) {
- LIEF_ERR("parent relocation is not set");
+ LIEF_ERR("Parent relocation is not set");
return;
}
int32_t delta = address - relocation_->virtual_address();
if (delta < 0) {
- LIEF_ERR("Invalid address: 0x{:04x} (base address=0x{:04x})",
- address, relocation_->virtual_address());
+ LIEF_ERR("Invalid address: {:#06x} (base address={:#06x})", address,
+ relocation_->virtual_address());
return;
}
if (delta > MAX_ADDR) {
- LIEF_ERR("0x{:04x} does not fit in a 12-bit encoding");
+ LIEF_ERR("{:#06x} does not fit in a 12-bit encoding");
return;
}
@@ -106,8 +105,7 @@ size_t RelocationEntry::size() const {
switch (type()) {
case BASE_TYPES::LOW:
case BASE_TYPES::HIGH:
- case BASE_TYPES::HIGHADJ:
- return 16;
+ case BASE_TYPES::HIGHADJ: return 16;
case BASE_TYPES::HIGHLOW: // Addr += delta
return 32;
@@ -116,14 +114,13 @@ size_t RelocationEntry::size() const {
return 64;
case BASE_TYPES::ABS:
- default:
- return 0;
+ default: return 0;
}
return 0;
}
void RelocationEntry::size(size_t /*size*/) {
- LIEF_WARN("Setting size of a PE relocation is not supported!");
+ LIEF_WARN("Setting PE relocation size is not supported");
}
void RelocationEntry::accept(Visitor& visitor) const {
@@ -131,32 +128,24 @@ void RelocationEntry::accept(Visitor& visitor) const {
}
std::ostream& operator<<(std::ostream& os, const RelocationEntry& entry) {
- os << fmt::format("0x{:04x} {:14} 0x{:08x}",
- entry.data(), PE::to_string(entry.type()), entry.address());
+ os << fmt::format("{:#06x} {:14} {:#010x}", entry.data(),
+ PE::to_string(entry.type()), entry.address());
return os;
}
const char* to_string(RelocationEntry::BASE_TYPES type) {
- #define ENTRY(X) std::pair(RelocationEntry::BASE_TYPES::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNKNOWN),
- ENTRY(ABS),
- ENTRY(HIGH),
- ENTRY(LOW),
- ENTRY(HIGHLOW),
- ENTRY(HIGHADJ),
- ENTRY(MIPS_JMPADDR),
- ENTRY(ARM_MOV32),
- ENTRY(RISCV_HI20),
- ENTRY(SECTION),
- ENTRY(THUMB_MOV32),
- ENTRY(RISCV_LOW12I),
- ENTRY(RISCV_LOW12S),
- ENTRY(MIPS_JMPADDR16),
- ENTRY(DIR64),
- ENTRY(HIGH3ADJ),
+#define ENTRY(X) std::pair(RelocationEntry::BASE_TYPES::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(UNKNOWN), ENTRY(ABS),
+ ENTRY(HIGH), ENTRY(LOW),
+ ENTRY(HIGHLOW), ENTRY(HIGHADJ),
+ ENTRY(MIPS_JMPADDR), ENTRY(ARM_MOV32),
+ ENTRY(RISCV_HI20), ENTRY(SECTION),
+ ENTRY(THUMB_MOV32), ENTRY(RISCV_LOW12I),
+ ENTRY(RISCV_LOW12S), ENTRY(MIPS_JMPADDR16),
+ ENTRY(DIR64), ENTRY(HIGH3ADJ),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(type); it != enums2str.end()) {
return it->second;
@@ -167,4 +156,3 @@ const char* to_string(RelocationEntry::BASE_TYPES type) {
}
-}
diff --git a/deps/LIEF/src/PE/ResourceData.cpp b/deps/LIEF/src/PE/ResourceData.cpp
index 5e0f002788a..2d1f3fb94f8 100644
--- a/deps/LIEF/src/PE/ResourceData.cpp
+++ b/deps/LIEF/src/PE/ResourceData.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,15 +19,15 @@
#include "LIEF/PE/ResourceData.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
void ResourceData::swap(ResourceData& other) noexcept {
ResourceNode::swap(other);
- std::swap(content_, other.content_);
- std::swap(code_page_, other.code_page_);
- std::swap(reserved_, other.reserved_);
+ std::swap(content_, other.content_);
+ std::swap(code_page_, other.code_page_);
+ std::swap(reserved_, other.reserved_);
}
void ResourceData::accept(Visitor& visitor) const {
@@ -36,4 +36,3 @@ void ResourceData::accept(Visitor& visitor) const {
}
-}
diff --git a/deps/LIEF/src/PE/ResourceDirectory.cpp b/deps/LIEF/src/PE/ResourceDirectory.cpp
index ac70107366d..90c266760ed 100644
--- a/deps/LIEF/src/PE/ResourceDirectory.cpp
+++ b/deps/LIEF/src/PE/ResourceDirectory.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,32 +18,32 @@
#include "LIEF/PE/ResourceDirectory.hpp"
#include "PE/Structures.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
void ResourceDirectory::swap(ResourceDirectory& other) noexcept {
ResourceNode::swap(other);
- std::swap(characteristics_, other.characteristics_);
- std::swap(timedatestamp_, other.timedatestamp_);
- std::swap(majorversion_, other.majorversion_);
- std::swap(numberof_id_entries_, other.numberof_id_entries_);
+ std::swap(characteristics_, other.characteristics_);
+ std::swap(timedatestamp_, other.timedatestamp_);
+ std::swap(majorversion_, other.majorversion_);
+ std::swap(numberof_id_entries_, other.numberof_id_entries_);
std::swap(numberof_name_entries_, other.numberof_name_entries_);
- std::swap(numberof_id_entries_, other.numberof_id_entries_);
+ std::swap(numberof_id_entries_, other.numberof_id_entries_);
}
-ResourceDirectory::ResourceDirectory(const details::pe_resource_directory_table& header) :
+ResourceDirectory::ResourceDirectory(
+ const details::pe_resource_directory_table& header
+) :
ResourceNode(ResourceNode::TYPE::DIRECTORY),
characteristics_(header.Characteristics),
timedatestamp_(header.TimeDateStamp),
majorversion_(header.MajorVersion),
minorversion_(header.MajorVersion),
numberof_name_entries_(header.NumberOfNameEntries),
- numberof_id_entries_(header.NumberOfIDEntries)
-{}
+ numberof_id_entries_(header.NumberOfIDEntries) {}
void ResourceDirectory::accept(Visitor& visitor) const {
visitor.visit(*this);
}
}
-}
diff --git a/deps/LIEF/src/PE/ResourceNode.cpp b/deps/LIEF/src/PE/ResourceNode.cpp
index e506510f764..f2f45c069a9 100644
--- a/deps/LIEF/src/PE/ResourceNode.cpp
+++ b/deps/LIEF/src/PE/ResourceNode.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,11 +28,9 @@
#include "LIEF/BinaryStream/SpanStream.hpp"
-#include "internal_utils.hpp"
#include "PE/Structures.hpp"
-namespace LIEF {
-namespace PE {
+namespace LIEF::PE {
class TreeParser {
public:
@@ -40,18 +38,17 @@ class TreeParser {
TreeParser(BinaryStream& stream, uint64_t base_rva) :
stream_(stream),
base_offset_(stream.pos()),
- base_rva_(base_rva)
- {}
+ base_rva_(base_rva) {}
TreeParser(BinaryStream& stream, Binary& pe) :
stream_(stream),
base_offset_(stream.pos()),
- base_rva_(0),
- pe_(&pe)
- {}
+
+ pe_(&pe) {}
std::unique_ptr<ResourceNode> parse() {
- const auto res_directory_table = stream_.peek<details::pe_resource_directory_table>();
+ const auto res_directory_table =
+ stream_.peek<details::pe_resource_directory_table>();
if (!res_directory_table) {
return nullptr;
}
@@ -61,7 +58,8 @@ class TreeParser {
std::unique_ptr<ResourceNode> parse_resource_node(
const details::pe_resource_directory_table& directory_table,
- uint32_t base_offset, uint32_t current_offset, uint32_t depth = 0);
+ uint32_t base_offset, uint32_t current_offset, uint32_t depth = 0
+ );
result<uint64_t> rva_to_offset(uint64_t rva) const {
if (pe_ != nullptr) {
@@ -82,84 +80,90 @@ class TreeParser {
};
std::unique_ptr<ResourceNode> TreeParser::parse_resource_node(
- const details::pe_resource_directory_table& directory_table,
- uint32_t base_offset, uint32_t current_offset, uint32_t depth)
-{
- const uint32_t numberof_ID_entries = directory_table.NumberOfIDEntries;
- const uint32_t numberof_name_entries = directory_table.NumberOfNameEntries;
-
- size_t directory_array_offset = current_offset + sizeof(details::pe_resource_directory_table);
- details::pe_resource_directory_entries entries_array;
+ const details::pe_resource_directory_table& directory_table,
+ uint32_t base_offset, uint32_t current_offset, uint32_t depth
+) {
+ static constexpr auto MAX_DEPTH = 60;
+ if (depth > MAX_DEPTH) {
+ LIEF_WARN("Tree max depth reached (max: {})", MAX_DEPTH);
+ return nullptr;
+ }
- if (auto res_entries_array = stream_.peek<details::pe_resource_directory_entries>(directory_array_offset)) {
- entries_array = *res_entries_array;
- } else {
+ if (!visited_.insert(base_offset + current_offset).second) {
+ if (visited_.size() == 1) {
+ // Only print once
+ LIEF_WARN("Infinite loop detected in resources");
+ }
return nullptr;
}
+ const uint32_t numberof_ID_entries = directory_table.NumberOfIDEntries;
+ const uint32_t numberof_name_entries = directory_table.NumberOfNameEntries;
+ size_t directory_array_offset =
+ current_offset + sizeof(details::pe_resource_directory_table);
+ auto entries_array =
+ stream_.peek<details::pe_resource_directory_entries>(directory_array_offset);
+ if (!entries_array) {
+ return nullptr;
+ }
auto directory = std::make_unique<ResourceDirectory>(directory_table);
directory->set_depth(depth);
- // Iterate over the childs
- for (size_t idx = 0; idx < (numberof_name_entries + numberof_ID_entries); ++idx) {
-
- uint32_t data_rva = entries_array.RVA;
- uint32_t id = entries_array.NameID.IntegerID;
-
- directory_array_offset += sizeof(details::pe_resource_directory_entries);
- if (auto res_entries_array = stream_.peek<details::pe_resource_directory_entries>(directory_array_offset)) {
- entries_array = *res_entries_array;
- } else {
+ // Iterate over the children
+ for (size_t idx = 0; idx < (numberof_name_entries + numberof_ID_entries); ++idx)
+ {
+ auto entry = stream_.peek<details::pe_resource_directory_entries>(
+ directory_array_offset
+ );
+ if (!entry) {
break;
}
+ directory_array_offset += sizeof(details::pe_resource_directory_entries);
+
+ uint32_t data_rva = entry->RVA;
+ uint32_t id = entry->NameID.IntegerID;
result<std::u16string> name;
// Get the resource name
if ((id & 0x80000000) != 0u) {
- uint32_t offset = id & (~ 0x80000000);
+ uint32_t offset = id & (~0x80000000);
uint32_t string_offset = base_offset + offset;
- LIEF_DEBUG("base_offset=0x{:04x}, string_offset=0x{:04x}",
- base_offset, string_offset);
+ LIEF_DEBUG("base_offset={:#06x}, string_offset={:#06x}", base_offset,
+ string_offset);
- auto res_length = stream_.peek<uint16_t>(string_offset);
- if (res_length && *res_length <= 100) {
- name = stream_.peek_u16string_at(string_offset + sizeof(uint16_t), *res_length);
+ auto length = stream_.peek<uint16_t>(string_offset);
+ if (length && *length <= 100) {
+ name =
+ stream_.peek_u16string_at(string_offset + sizeof(uint16_t), *length);
if (!name) {
- LIEF_ERR("Node's name for the node id: {} is corrupted", id);
+ LIEF_ERR("Corrupted node name for node id {}", id);
}
}
}
if ((0x80000000 & data_rva) == 0) { // We are on a leaf
uint32_t offset = base_offset + data_rva;
- details::pe_resource_data_entry data_entry;
-
- if (!visited_.insert(offset).second) {
- if (visited_.size() == 1) {
- // Only print once
- LIEF_WARN("Infinite loop detected on resources");
- }
+ auto data_entry = stream_.peek<details::pe_resource_data_entry>(offset);
+ if (!data_entry) {
break;
}
- if (auto res_data_entry = stream_.peek<details::pe_resource_data_entry>(offset)) {
- data_entry = *res_data_entry;
- } else {
+ if (!visited_.insert(offset).second) {
break;
}
- auto content_offset = rva_to_offset(data_entry.DataRVA);
+ auto content_offset = rva_to_offset(data_entry->DataRVA);
- uint32_t content_size = data_entry.Size;
- uint32_t code_page = data_entry.Codepage;
+ uint32_t content_size = data_entry->Size;
+ uint32_t code_page = data_entry->Codepage;
std::vector<uint8_t> leaf_data;
- if (content_offset &&
- stream_.peek_data(leaf_data, *content_offset, content_size,
- data_entry.DataRVA))
+ if (content_offset && stream_.peek_data(leaf_data, *content_offset,
+ content_size, data_entry->DataRVA))
{
- auto node = std::make_unique<ResourceData>(std::move(leaf_data), code_page);
+ auto node =
+ std::make_unique<ResourceData>(std::move(leaf_data), code_page);
node->set_depth(depth + 1);
node->id(id);
@@ -170,58 +174,48 @@ std::unique_ptr<ResourceNode> TreeParser::parse_resource_node(
directory->push_child(std::move(node));
} else {
- LIEF_DEBUG("The leaf of the node id {} is corrupted", id);
+ LIEF_DEBUG("Corrupted leaf for node id {}", id);
break;
}
} else { // We are on a directory
- const uint32_t directory_rva = data_rva & (~ 0x80000000);
- const uint32_t offset = base_offset + directory_rva;
- if (!visited_.insert(offset).second) {
- if (visited_.size() == 1) {
- // Only print once
- LIEF_WARN("Infinite loop detected on resources");
- }
+ const uint32_t directory_rva = data_rva & (~0x80000000);
+ const uint32_t offset = base_offset + directory_rva;
+ auto next_dir_table =
+ stream_.peek<details::pe_resource_directory_table>(offset);
+ if (!next_dir_table) {
+ LIEF_WARN("Corrupted directory for node id {}", id);
break;
}
-
- if (auto res_next_dir_table = stream_.peek<details::pe_resource_directory_table>(offset)) {
- if (auto node = parse_resource_node(*res_next_dir_table, base_offset, offset, depth + 1)) {
- if (name) {
- node->name(*name);
- }
- node->id(id);
- directory->push_child(std::move(node));
- } else {
- // node is a nullptr
- continue;
- }
- } else {
- LIEF_WARN("The directory of the node id {} is corrupted", id);
- break;
+ auto node =
+ parse_resource_node(*next_dir_table, base_offset, offset, depth + 1);
+ if (node == nullptr) {
+ continue;
}
+ if (name) {
+ node->name(*name);
+ }
+ node->id(id);
+ directory->push_child(std::move(node));
}
}
return directory;
}
-std::unique_ptr<ResourceNode>
- ResourceNode::parse(BinaryStream& stream, uint64_t rva)
-{
+std::unique_ptr<ResourceNode> ResourceNode::parse(BinaryStream& stream,
+ uint64_t rva) {
TreeParser parser(stream, rva);
return parser.parse();
}
-std::unique_ptr<ResourceNode>
- ResourceNode::parse(const uint8_t* buffer, size_t size, uint64_t rva)
-{
+std::unique_ptr<ResourceNode> ResourceNode::parse(const uint8_t* buffer,
+ size_t size, uint64_t rva) {
SpanStream stream(buffer, size);
return parse(stream, rva);
}
-std::unique_ptr<ResourceNode>
- ResourceNode::parse(BinaryStream& stream, const Binary& bin)
-{
+std::unique_ptr<ResourceNode> ResourceNode::parse(BinaryStream& stream,
+ const Binary& bin) {
TreeParser parser(stream, const_cast<Binary&>(bin));
return parser.parse();
}
@@ -233,8 +227,7 @@ ResourceNode::ResourceNode(const ResourceNode& other) :
type_{other.type_},
id_{other.id_},
name_{other.name_},
- depth_{other.depth_}
-{
+ depth_{other.depth_} {
childs_.reserve(other.childs_.size());
for (const std::unique_ptr<ResourceNode>& node : other.childs_) {
childs_.push_back(node->clone());
@@ -245,10 +238,10 @@ ResourceNode& ResourceNode::operator=(const ResourceNode& other) {
if (this == &other) {
return *this;
}
- type_ = other.type_;
- id_ = other.id_;
- name_ = other.name_;
- depth_ = other.depth_;
+ type_ = other.type_;
+ id_ = other.id_;
+ name_ = other.name_;
+ depth_ = other.depth_;
childs_.reserve(other.childs_.size());
for (const std::unique_ptr<ResourceNode>& node : other.childs_) {
@@ -258,11 +251,11 @@ ResourceNode& ResourceNode::operator=(const ResourceNode& other) {
}
void ResourceNode::swap(ResourceNode& other) {
- std::swap(type_, other.type_);
- std::swap(id_, other.id_);
- std::swap(name_, other.name_);
+ std::swap(type_, other.type_);
+ std::swap(id_, other.id_);
+ std::swap(name_, other.name_);
std::swap(childs_, other.childs_);
- std::swap(depth_, other.depth_);
+ std::swap(depth_, other.depth_);
}
std::string ResourceNode::utf8_name() const {
@@ -273,8 +266,9 @@ ResourceNode& ResourceNode::add_child(std::unique_ptr<ResourceNode> child) {
child->depth_ = depth_ + 1;
if (auto* dir = cast<ResourceDirectory>()) {
- child->has_name() ? dir->numberof_name_entries(dir->numberof_name_entries() + 1) :
- dir->numberof_id_entries(dir->numberof_id_entries() + 1);
+ child->has_name() ?
+ dir->numberof_name_entries(dir->numberof_name_entries() + 1) :
+ dir->numberof_id_entries(dir->numberof_id_entries() + 1);
return **insert_child(std::move(child));
}
@@ -283,13 +277,14 @@ ResourceNode& ResourceNode::add_child(std::unique_ptr<ResourceNode> child) {
}
void ResourceNode::delete_child(uint32_t id) {
- const auto it_node = std::find_if(std::begin(childs_), std::end(childs_),
- [id] (const std::unique_ptr<ResourceNode>& node) {
- return node->id() == id;
- });
-
- if (it_node == std::end(childs_)) {
- LIEF_ERR("Unable to find the node with the id {:d}", id);
+ const auto it_node =
+ std::find_if(childs_.begin(), childs_.end(),
+ [id](const std::unique_ptr<ResourceNode>& node) {
+ return node->id() == id;
+ });
+
+ if (it_node == childs_.end()) {
+ LIEF_ERR("Node with id {:d} not found", id);
return;
}
@@ -297,13 +292,14 @@ void ResourceNode::delete_child(uint32_t id) {
}
void ResourceNode::delete_child(const ResourceNode& node) {
- const auto it_node = std::find_if(std::begin(childs_), std::end(childs_),
- [&node] (const std::unique_ptr<ResourceNode>& intree_node) {
- return *intree_node == node;
- });
-
- if (it_node == std::end(childs_)) {
- LIEF_ERR("Unable to find the node with id: {}", node.id());
+ const auto it_node =
+ std::find_if(childs_.begin(), childs_.end(),
+ [&node](const std::unique_ptr<ResourceNode>& intree_node) {
+ return *intree_node == node;
+ });
+
+ if (it_node == childs_.end()) {
+ LIEF_ERR("Node with id {} not found", node.id());
return;
}
@@ -324,30 +320,35 @@ void ResourceNode::name(const std::string& name) {
if (auto res = u8tou16(name)) {
return this->name(std::move(*res));
}
- LIEF_WARN("{} can't be converted to a UTF-16 string", name);
+ LIEF_WARN("{} cannot be converted to UTF-16", name);
}
// This logic follows the description from the Microsoft documentation at
// https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#resource-directory-table
//
-// "(remember that all the Name entries precede all the ID entries for the table). All entries for the table
-// "are sorted in ascending order: the Name entries by case-sensitive string and the ID entries by numeric value."
-ResourceNode::childs_t::iterator ResourceNode::insert_child(std::unique_ptr<ResourceNode> child) {
- const auto it = std::upper_bound(childs_.begin(), childs_.end(), child,
- [] (const std::unique_ptr<ResourceNode>& lhs, const std::unique_ptr<ResourceNode>& rhs) {
- if (lhs->has_name() && rhs->has_name()) {
- // Case-sensitive string sort
- return std::lexicographical_compare(
- lhs->name().begin(), lhs->name().end(),
- rhs->name().begin(), rhs->name().end());
- } else if (!lhs->has_name() && !rhs->has_name()) {
- return lhs->id() < rhs->id();
- } else {
- // Named entries come first
- return lhs->has_name();
- }
- });
+// "(remember that all the Name entries precede all the ID entries for the table).
+// All entries for the table "are sorted in ascending order: the Name entries by
+// case-sensitive string and the ID entries by numeric value."
+ResourceNode::childs_t::iterator
+ ResourceNode::insert_child(std::unique_ptr<ResourceNode> child) {
+ const auto it =
+ std::upper_bound(childs_.begin(), childs_.end(), child,
+ [](const std::unique_ptr<ResourceNode>& lhs,
+ const std::unique_ptr<ResourceNode>& rhs) {
+ if (lhs->has_name() && rhs->has_name()) {
+ // Case-sensitive string sort
+ return std::lexicographical_compare(lhs->name().begin(),
+ lhs->name().end(),
+ rhs->name().begin(),
+ rhs->name().end());
+ } else if (!lhs->has_name() && !rhs->has_name()) {
+ return lhs->id() < rhs->id();
+ } else {
+ // Named entries come first
+ return lhs->has_name();
+ }
+ });
return childs_.insert(it, std::move(child));
}
@@ -356,10 +357,9 @@ const ResourceNode& ResourceNode::safe_get_at(size_t idx) const {
class InvalidNode : public ResourceNode {
public:
InvalidNode() :
- ResourceNode(ResourceNode::TYPE::UNKNOWN)
- {}
+ ResourceNode(ResourceNode::TYPE::UNKNOWN) {}
- std::unique_ptr<ResourceNode> clone() const {
+ std::unique_ptr<ResourceNode> clone() const override {
return nullptr;
}
};
@@ -453,9 +453,7 @@ std::ostream& operator<<(std::ostream& os, const ResourceNode& node) {
ResourcesManager manager(const_cast<ResourceNode&>(node));
os << manager.print();
return os;
-
}
}
-}
diff --git a/deps/LIEF/src/PE/ResourcesManager.cpp b/deps/LIEF/src/PE/ResourcesManager.cpp
index cea6f5ffece..62e7e2798c8 100644
--- a/deps/LIEF/src/PE/ResourcesManager.cpp
+++ b/deps/LIEF/src/PE/ResourcesManager.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -34,35 +34,36 @@
FMT_FORMATTER(LIEF::PE::ResourcesManager::TYPE, LIEF::PE::to_string);
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
static constexpr auto RESOURCE_TYPES = {
- ResourcesManager::TYPE::CURSOR, ResourcesManager::TYPE::BITMAP,
- ResourcesManager::TYPE::ICON, ResourcesManager::TYPE::MENU,
- ResourcesManager::TYPE::DIALOG, ResourcesManager::TYPE::STRING,
- ResourcesManager::TYPE::FONTDIR, ResourcesManager::TYPE::FONT,
- ResourcesManager::TYPE::ACCELERATOR, ResourcesManager::TYPE::RCDATA,
- ResourcesManager::TYPE::MESSAGETABLE, ResourcesManager::TYPE::GROUP_CURSOR,
- ResourcesManager::TYPE::GROUP_ICON, ResourcesManager::TYPE::VERSION,
- ResourcesManager::TYPE::DLGINCLUDE, ResourcesManager::TYPE::PLUGPLAY,
- ResourcesManager::TYPE::VXD, ResourcesManager::TYPE::ANICURSOR,
- ResourcesManager::TYPE::ANIICON, ResourcesManager::TYPE::HTML,
- ResourcesManager::TYPE::MANIFEST,
+ ResourcesManager::TYPE::CURSOR, ResourcesManager::TYPE::BITMAP,
+ ResourcesManager::TYPE::ICON, ResourcesManager::TYPE::MENU,
+ ResourcesManager::TYPE::DIALOG, ResourcesManager::TYPE::STRING,
+ ResourcesManager::TYPE::FONTDIR, ResourcesManager::TYPE::FONT,
+ ResourcesManager::TYPE::ACCELERATOR, ResourcesManager::TYPE::RCDATA,
+ ResourcesManager::TYPE::MESSAGETABLE, ResourcesManager::TYPE::GROUP_CURSOR,
+ ResourcesManager::TYPE::GROUP_ICON, ResourcesManager::TYPE::VERSION,
+ ResourcesManager::TYPE::DLGINCLUDE, ResourcesManager::TYPE::PLUGPLAY,
+ ResourcesManager::TYPE::VXD, ResourcesManager::TYPE::ANICURSOR,
+ ResourcesManager::TYPE::ANIICON, ResourcesManager::TYPE::HTML,
+ ResourcesManager::TYPE::MANIFEST,
};
std::string ResourcesManager::string_entry_t::string_u8() const {
return u16tou8(string);
}
-const ResourceNode* ResourcesManager::get_node_type(ResourcesManager::TYPE type) const {
+const ResourceNode*
+ ResourcesManager::get_node_type(ResourcesManager::TYPE type) const {
ResourceNode::it_childs nodes = resources_->childs();
- const auto it_node = std::find_if(std::begin(nodes), std::end(nodes),
- [type] (const ResourceNode& node) {
+ const auto it_node =
+ std::find_if(nodes.begin(), nodes.end(), [type](const ResourceNode& node) {
return TYPE(node.id()) == type;
});
- if (it_node == std::end(nodes)) {
+ if (it_node == nodes.end()) {
return nullptr;
}
@@ -72,12 +73,10 @@ const ResourceNode* ResourcesManager::get_node_type(ResourcesManager::TYPE type)
std::vector<ResourcesManager::TYPE> ResourcesManager::get_types() const {
std::vector<TYPE> types;
for (const ResourceNode& node : resources_->childs()) {
- const auto it = std::find_if(std::begin(RESOURCE_TYPES), std::end(RESOURCE_TYPES),
- [&node] (TYPE t) {
- return t == TYPE(node.id());
- });
+ const auto it = std::find_if(RESOURCE_TYPES.begin(), RESOURCE_TYPES.end(),
+ [&node](TYPE t) { return t == TYPE(node.id()); });
- if (it != std::end(RESOURCE_TYPES)) {
+ if (it != RESOURCE_TYPES.end()) {
types.push_back(*it);
}
}
@@ -91,15 +90,15 @@ std::string ResourcesManager::manifest() const {
}
const auto* data_node =
- root_node->safe_get_at(0).safe_get_at(0).cast<ResourceData>();
+ root_node->safe_get_at(0).safe_get_at(0).cast<ResourceData>();
if (data_node == nullptr) {
- LIEF_WARN("Manifest node seems corrupted");
+ LIEF_WARN("Corrupted manifest node");
return "";
}
span<const uint8_t> content = data_node->content();
- return std::string{std::begin(content), std::end(content)};
+ return std::string{content.begin(), content.end()};
}
void ResourcesManager::manifest(const std::string& manifest) {
@@ -110,23 +109,23 @@ void ResourcesManager::manifest(const std::string& manifest) {
auto L3 = std::make_unique<ResourceData>(manifest);
(*resources_)
- .add_child(std::move(L1))
- .add_child(std::move(L2))
- .add_child(std::move(L3));
+ .add_child(std::move(L1))
+ .add_child(std::move(L2))
+ .add_child(std::move(L3));
manifest_node = get_node_type(TYPE::MANIFEST);
}
if (manifest_node == nullptr) {
- LIEF_WARN("Manifest node seems corrupted");
+ LIEF_WARN("Corrupted manifest node");
return;
}
auto* data_node =
- manifest_node->safe_get_at(0).safe_get_at(0).cast<ResourceData>();
+ manifest_node->safe_get_at(0).safe_get_at(0).cast<ResourceData>();
if (data_node == nullptr) {
- LIEF_WARN("Manifest node seems corrupted");
+ LIEF_WARN("Corrupted manifest node");
return;
}
@@ -160,7 +159,7 @@ std::vector<ResourceVersion> ResourcesManager::version() const {
ResourcesManager::it_const_icons ResourcesManager::icons() const {
std::vector<ResourceIcon> icons;
- const ResourceNode* root_icon = get_node_type(TYPE::ICON);
+ const ResourceNode* root_icon = get_node_type(TYPE::ICON);
const ResourceNode* root_grp_icon = get_node_type(TYPE::GROUP_ICON);
if (root_icon == nullptr) {
LIEF_ERR("Missing '{}' entry", to_string(TYPE::ICON));
@@ -176,7 +175,7 @@ ResourcesManager::it_const_icons ResourcesManager::icons() const {
for (const ResourceNode& grp_icon_lvl3 : grp_icon_lvl2.childs()) {
const auto* icon_group_node = grp_icon_lvl3.cast<ResourceData>();
if (icon_group_node == nullptr) {
- LIEF_WARN("Expecting a data node for node id: {}", grp_icon_lvl3.id());
+ LIEF_WARN("Expected data node for node id {}", grp_icon_lvl3.id());
continue;
}
const uint32_t id = icon_group_node->id();
@@ -189,11 +188,11 @@ ResourcesManager::it_const_icons ResourcesManager::icons() const {
}
SpanStream stream(icon_group_content);
- details::pe_resource_icon_dir group_icon_header;
+ details::pe_resource_icon_dir group_icon_header{};
if (auto res = stream.read<details::pe_resource_icon_dir>()) {
group_icon_header = *res;
} else {
- LIEF_WARN("Can't read GRPICONDIR for resource node id: {}", id);
+ LIEF_WARN("Failed to read GRPICONDIR for resource node id {}", id);
continue;
}
@@ -202,16 +201,16 @@ ResourcesManager::it_const_icons ResourcesManager::icons() const {
// Some checks
if (group_icon_header.type != 1) {
- LIEF_ERR("Group icon type should be equal to 1 (vs {})", group_icon_header.type);
+ LIEF_ERR("Group icon type should be 1 (got {})", group_icon_header.type);
return icons;
}
for (size_t i = 0; i < group_icon_header.count; ++i) {
- details::pe_resource_icon_group entry;
+ details::pe_resource_icon_group entry{};
if (auto res = stream.read<details::pe_resource_icon_group>()) {
entry = *res;
} else {
- LIEF_WARN("Can't read GRPICONDIR.idEntries[{}]", i);
+ LIEF_WARN("Failed to read GRPICONDIR.idEntries[{}]", i);
break;
}
@@ -219,29 +218,31 @@ ResourcesManager::it_const_icons ResourcesManager::icons() const {
icon.lang_ = lang_from_id(grp_icon_lvl3.id());
icon.sublang_ = sublang_from_id(grp_icon_lvl3.id());
- // Find the icon the RESOURCE_TYPES::ICON tree that matched entry.ID
+ // Find the icon in the RESOURCE_TYPES::ICON tree that matches entry.ID
ResourceNode::it_const_childs sub_nodes_icons = root_icon->childs();
- const auto it = std::find_if(std::begin(sub_nodes_icons), std::end(sub_nodes_icons),
- [&entry] (const ResourceNode& node) {
- return node.id() == entry.ID;
- });
- if (it == std::end(sub_nodes_icons)) {
- LIEF_WARN("Unable to find the icon associated with id: {:d}", entry.ID);
+ const auto it =
+ std::find_if(sub_nodes_icons.begin(), sub_nodes_icons.end(),
+ [&entry](const ResourceNode& node) {
+ return node.id() == entry.ID;
+ });
+ if (it == sub_nodes_icons.end()) {
+ LIEF_WARN("Icon with id {:d} not found", entry.ID);
continue;
}
ResourceNode::it_childs icons_childs = it->childs();
if (icons_childs.empty()) {
- LIEF_WARN("Resources nodes looks corrupted");
+ LIEF_WARN("Resource nodes appear corrupted");
continue;
}
const ResourceNode& icon_node = icons_childs[0];
if (!icon_node.is_data()) {
- LIEF_WARN("Expecting a Data node for node id: {}", icon_node.id());
+ LIEF_WARN("Expected data node for node id {}", icon_node.id());
continue;
}
- span<const uint8_t> pixels = static_cast<const ResourceData&>(icon_node).content();
- icon.pixels_ = std::vector<uint8_t>(std::begin(pixels), std::end(pixels));
+ span<const uint8_t> pixels =
+ static_cast<const ResourceData&>(icon_node).content();
+ icon.pixels_ = std::vector<uint8_t>(pixels.begin(), pixels.end());
icons.push_back(std::move(icon));
}
}
@@ -286,11 +287,10 @@ void ResourcesManager::add_icon(const ResourceIcon& icon) {
sizeof(details::pe_icon_header));
ios
- // pe_resource_icon_dir
- .write<uint16_t>(/*reserved*/0)
- .write<uint16_t>(/*type*/1)
- .write<uint16_t>(/*count*/0)
- ;
+ // pe_resource_icon_dir
+ .write<uint16_t>(/*reserved*/ 0)
+ .write<uint16_t>(/*type*/ 1)
+ .write<uint16_t>(/*count*/ 0);
std::vector<uint8_t> raw_header;
ios.move(raw_header);
@@ -309,48 +309,47 @@ void ResourcesManager::add_icon(const ResourceIcon& icon) {
}
auto* icon_group_data =
- icon_grp_node->safe_get_at(0).safe_get_at(0).cast<ResourceData>();
+ icon_grp_node->safe_get_at(0).safe_get_at(0).cast<ResourceData>();
- auto* icon_dir =
- icon_node->safe_get_at(0).cast<ResourceDirectory>();
+ auto* icon_dir = icon_node->safe_get_at(0).cast<ResourceDirectory>();
if (icon_group_data == nullptr) {
- LIEF_ERR("Can't find data node for the icon group headers");
+ LIEF_ERR("Icon group headers data node not found");
return;
}
if (icon_dir == nullptr) {
- LIEF_ERR("Can't find data node for the icon headers");
+ LIEF_ERR("Icon headers data node not found");
return;
}
vector_iostream icon_group = icon_group_data->edit();
- if (icon_group.size() < /* reserved + type + count */3 * sizeof(uint16_t)) {
+ if (icon_group.size() < /* reserved + type + count */ 3 * sizeof(uint16_t)) {
LIEF_ERR("Icon group header too small");
return;
}
++icon_group.edit_as<details::pe_resource_icon_dir>()->count;
- icon_group
- .seek_end()
- .write<uint8_t>(icon.width())
- .write<uint8_t>(icon.height())
- .write<uint8_t>(icon.color_count())
- .write<uint8_t>(icon.reserved())
- .write<uint16_t>(icon.planes())
- .write<uint16_t>(icon.bit_count())
- .write<uint16_t>(icon.size())
- .write<uint16_t>(new_id)
- ;
+ icon_group.seek_end()
+ .write<uint8_t>(icon.width())
+ .write<uint8_t>(icon.height())
+ .write<uint8_t>(icon.color_count())
+ .write<uint8_t>(icon.reserved())
+ .write<uint16_t>(icon.planes())
+ .write<uint16_t>(icon.bit_count())
+ .write<uint16_t>(icon.size())
+ .write<uint16_t>(new_id);
auto pixel_node = std::make_unique<ResourceData>(as_vector(icon.pixels()));
- pixel_node->id(static_cast<int>(icon.sublang()) << 10 | static_cast<int>(icon.lang()));
+ pixel_node->id(static_cast<int>(icon.sublang()) << 10 |
+ static_cast<int>(icon.lang()));
icon_dir->add_child(std::move(pixel_node));
}
-void ResourcesManager::change_icon(const ResourceIcon& original, const ResourceIcon& newone) {
+void ResourcesManager::change_icon(const ResourceIcon& original,
+ const ResourceIcon& newone) {
ResourceNode* icon_node = get_node_type(TYPE::ICON);
ResourceNode* icon_grp_node = get_node_type(TYPE::GROUP_ICON);
@@ -364,20 +363,20 @@ void ResourcesManager::change_icon(const ResourceIcon& original, const ResourceI
return;
}
- // Update group in which the icon is registred
+ // Update group in which the icon is registered
for (ResourceNode& grp_icon_lvl2 : icon_grp_node->childs()) {
for (ResourceNode& grp_icon_lvl3 : grp_icon_lvl2.childs()) {
auto* icon_group_node = grp_icon_lvl3.cast<ResourceData>();
if (icon_group_node == nullptr) {
- LIEF_WARN("Resource group icon corrupted");
+ LIEF_WARN("Corrupted resource group icon");
continue;
}
vector_iostream editor = icon_group_node->edit();
SpanStream stream = icon_group_node->content();
- /* reserved */stream.read<uint16_t>().value_or(0);
+ /* reserved */ stream.read<uint16_t>().value_or(0);
/* type */ stream.read<uint16_t>().value_or(0);
size_t count = stream.read<uint16_t>().value_or(0);
@@ -410,11 +409,13 @@ void ResourcesManager::change_icon(const ResourceIcon& original, const ResourceI
ResourceDirectory new_icon_dir_node(newone.id());
ResourceData new_icon_data_node(as_vector(newone.pixels()));
new_icon_data_node.id((int)encode_lang(newone.lang(), newone.sublang()));
- new_icon_dir_node.add_child(std::move(new_icon_data_node));
- icon_node->add_child(std::move(new_icon_dir_node));
+ new_icon_dir_node.add_child(new_icon_data_node);
+ icon_node->add_child(new_icon_dir_node);
}
ResourcesManager::it_const_dialogs ResourcesManager::dialogs() const {
+ static std::mutex DIALOG_CACHE_MU;
+ std::scoped_lock lock(DIALOG_CACHE_MU);
dialogs_.clear();
const ResourceNode* dialog_node = get_node_type(TYPE::DIALOG);
if (dialog_node == nullptr) {
@@ -424,7 +425,7 @@ ResourcesManager::it_const_dialogs ResourcesManager::dialogs() const {
const auto* dialog_dir = dialog_node->cast<ResourceDirectory>();
if (dialog_dir == nullptr) {
- LIEF_INFO("Expecting a Directory node for the Dialog Node");
+ LIEF_INFO("Expected directory node for dialog node");
return dialogs_;
}
@@ -440,7 +441,7 @@ ResourcesManager::it_const_dialogs ResourcesManager::dialogs() const {
for (size_t j = 0; j < langs.size(); ++j) {
const auto* data_node = langs[j].cast<ResourceData>();
if (data_node == nullptr) {
- LIEF_INFO("Expecting a Data node for child #{}->{}", i, j);
+ LIEF_INFO("Expected data node for child #{}->{}", i, j);
continue;
}
@@ -467,7 +468,7 @@ ResourcesManager::strings_table_t ResourcesManager::string_table() const {
for (const ResourceNode& child_l2 : child_l1.childs()) {
const auto* data_node = child_l2.cast<ResourceData>();
if (data_node == nullptr) {
- LIEF_WARN("Expecting a data not for the string node id {}", child_l2.id());
+ LIEF_WARN("Expected data node for string node id {}", child_l2.id());
continue;
}
span<const uint8_t> content = data_node->content();
@@ -515,17 +516,17 @@ std::vector<std::string> ResourcesManager::html() const {
for (const ResourceNode& child_l1 : root_node->childs()) {
for (const ResourceNode& child_l2 : child_l1.childs()) {
if (!child_l2.is_data()) {
- LIEF_ERR("html node corrupted");
+ LIEF_ERR("HTML node corrupted");
continue;
}
const auto& html_node = static_cast<const ResourceData&>(child_l2);
span<const uint8_t> content = html_node.content();
if (content.empty()) {
- LIEF_ERR("html content is empty");
+ LIEF_ERR("HTML content is empty");
continue;
}
- html.push_back(std::string{std::begin(content), std::end(content)});
+ html.emplace_back(content.begin(), content.end());
}
}
@@ -544,7 +545,7 @@ ResourcesManager::it_const_accelerators ResourcesManager::accelerator() const {
for (const ResourceNode& child_l2 : child_l1.childs()) {
const auto* accelerator_node = child_l2.cast<ResourceData>();
if (accelerator_node == nullptr) {
- LIEF_ERR("Expecting a Data node for node id: {}", child_l2.id());
+ LIEF_ERR("Expected data node for node id {}", child_l2.id());
continue;
}
@@ -560,7 +561,7 @@ ResourcesManager::it_const_accelerators ResourcesManager::accelerator() const {
while (stream) {
auto res_entry = stream.read<details::pe_resource_acceltableentry>();
if (!res_entry) {
- LIEF_ERR("Can't read pe_resource_acceltableentry");
+ LIEF_ERR("Failed to read pe_resource_acceltableentry");
break;
}
accelerator.emplace_back(*res_entry);
@@ -569,7 +570,7 @@ ResourcesManager::it_const_accelerators ResourcesManager::accelerator() const {
if (!accelerator.empty()) {
ResourceAccelerator& acc = accelerator.back();
if (!acc.has(ResourceAccelerator::FLAGS::END)) {
- LIEF_ERR("Accelerator resources might be corrupted");
+ LIEF_ERR("Possibly corrupted accelerator resources");
}
}
}
@@ -585,11 +586,11 @@ std::string ResourcesManager::print(uint32_t depth) const {
return oss.str();
}
-void ResourcesManager::print_tree(const ResourceNode& node, std::ostringstream& output,
+void ResourcesManager::print_tree(const ResourceNode& node,
+ std::ostringstream& output,
uint32_t current_depth, uint32_t max_depth,
- const ResourceNode*/*parent*/, std::string header,
- bool is_last) const
-{
+ const ResourceNode* /*parent*/,
+ std::string header, bool is_last) const {
static constexpr auto ELBOW = "└──";
static constexpr auto PIPE = "│ ";
static constexpr auto TEE = "├──";
@@ -600,32 +601,31 @@ void ResourcesManager::print_tree(const ResourceNode& node, std::ostringstream&
}
std::string type = node.is_directory() ? "Directory" : "Data";
- std::string info = fmt::format("{} ID: {:04d} (0x{:04x})",
- type, node.id(), node.id());
+ std::string info =
+ fmt::format("{} ID: {:04d} ({:#06x})", type, node.id(), node.id());
if (node.has_name()) {
info += fmt::format(" name: {}", u16tou8(node.name()));
} else if (std::string ty = to_string(TYPE(node.id()));
ty != "UNKNOWN" && node.depth() == 1)
{
info += fmt::format(" type: {}", ty);
- }
- else if (current_depth == 3) {
+ } else if (current_depth == 3) {
uint32_t lang = lang_from_id(node.id());
uint32_t sub_lang = sublang_from_id(node.id());
- info += fmt::format(" Lang: 0x{:02x} / Sublang: 0x{:02x}", lang, sub_lang);
+ info += fmt::format(" Lang: {:#04x} / Sublang: {:#04x}", lang, sub_lang);
}
if (const auto* data = node.cast<ResourceData>()) {
const size_t size = data->content().size();
- info += fmt::format(" length={} (0x{:06x}), offset: 0x{:04x}",
- size, size, data->offset());
+ info += fmt::format(" length={} ({:#08x}), offset: {:#06x}", size, size,
+ data->offset());
}
if (const auto* dir = node.cast<ResourceDirectory>()) {
info += fmt::format(" children={}", dir->childs().size());
}
- output << fmt::format("{}{} {}\n", header, is_last ? ELBOW : TEE , info);
+ output << fmt::format("{}{} {}\n", header, is_last ? ELBOW : TEE, info);
if (const auto* data = node.cast<ResourceData>()) {
std::string hex_content;
std::string str_content;
@@ -649,9 +649,8 @@ void ResourcesManager::print_tree(const ResourceNode& node, std::ostringstream&
auto children = node.childs();
for (size_t i = 0; i < children.size(); ++i) {
- print_tree(children[i], output, current_depth + 1, max_depth,
- &node, header + (is_last ? BLANK : PIPE),
- i == (children.size() - 1));
+ print_tree(children[i], output, current_depth + 1, max_depth, &node,
+ header + (is_last ? BLANK : PIPE), i == (children.size() - 1));
}
}
@@ -695,31 +694,17 @@ std::ostream& operator<<(std::ostream& os, const ResourcesManager& rsrc) {
}
const char* to_string(ResourcesManager::TYPE type) {
- #define ENTRY(X) std::pair(ResourcesManager::TYPE::X, #X)
- STRING_MAP enums2str {
- ENTRY(CURSOR),
- ENTRY(BITMAP),
- ENTRY(ICON),
- ENTRY(MENU),
- ENTRY(DIALOG),
- ENTRY(STRING),
- ENTRY(FONTDIR),
- ENTRY(FONT),
- ENTRY(ACCELERATOR),
- ENTRY(RCDATA),
- ENTRY(MESSAGETABLE),
- ENTRY(GROUP_CURSOR),
- ENTRY(GROUP_ICON),
- ENTRY(VERSION),
- ENTRY(DLGINCLUDE),
- ENTRY(PLUGPLAY),
- ENTRY(VXD),
- ENTRY(ANICURSOR),
- ENTRY(ANIICON),
- ENTRY(HTML),
- ENTRY(MANIFEST),
+#define ENTRY(X) std::pair(ResourcesManager::TYPE::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(CURSOR), ENTRY(BITMAP), ENTRY(ICON),
+ ENTRY(MENU), ENTRY(DIALOG), ENTRY(STRING),
+ ENTRY(FONTDIR), ENTRY(FONT), ENTRY(ACCELERATOR),
+ ENTRY(RCDATA), ENTRY(MESSAGETABLE), ENTRY(GROUP_CURSOR),
+ ENTRY(GROUP_ICON), ENTRY(VERSION), ENTRY(DLGINCLUDE),
+ ENTRY(PLUGPLAY), ENTRY(VXD), ENTRY(ANICURSOR),
+ ENTRY(ANIICON), ENTRY(HTML), ENTRY(MANIFEST),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(type); it != enums2str.end()) {
return it->second;
@@ -729,5 +714,4 @@ const char* to_string(ResourcesManager::TYPE type) {
}
-} // namespace PE
-} // namespace LIEF
+} // namespace LIEF::PE
diff --git a/deps/LIEF/src/PE/RichEntry.cpp b/deps/LIEF/src/PE/RichEntry.cpp
index c92f09ca181..438194eff45 100644
--- a/deps/LIEF/src/PE/RichEntry.cpp
+++ b/deps/LIEF/src/PE/RichEntry.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,19 +19,17 @@
#include "LIEF/PE/RichEntry.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
void RichEntry::accept(LIEF::Visitor& visitor) const {
visitor.visit(*this);
}
std::ostream& operator<<(std::ostream& os, const RichEntry& entry) {
- using namespace fmt;
- os << format("ID: 0x{:04x}, Build ID: 0x{:04x}, Count: {}",
- entry.id(), entry.build_id(), entry.count());
+ os << fmt::format("ID: {:#06x}, Build ID: {:#06x}, Count: {}", entry.id(),
+ entry.build_id(), entry.count());
return os;
}
}
-}
diff --git a/deps/LIEF/src/PE/RichHeader.cpp b/deps/LIEF/src/PE/RichHeader.cpp
index 6f076d1f41f..e26e17a031d 100644
--- a/deps/LIEF/src/PE/RichHeader.cpp
+++ b/deps/LIEF/src/PE/RichHeader.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,8 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include <iomanip>
-
#include "LIEF/PE/hash.hpp"
#include "LIEF/PE/RichHeader.hpp"
#include "LIEF/iostream.hpp"
@@ -25,8 +23,8 @@
#include "hash_stream.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
void RichHeader::accept(LIEF::Visitor& visitor) const {
visitor.visit(*this);
@@ -36,39 +34,39 @@ std::vector<uint8_t> RichHeader::raw(uint32_t xor_key) const {
vector_iostream wstream;
wstream
- .write(DANS_MAGIC_NUMBER ^ xor_key)
- /*
- * The first chunk needs to be aligned on 64-bit and padded
- * with 0-xor. We can't use vector_iostream::align as it would not
- * be encoded.
- */
- .write<uint32_t>(0 ^ xor_key)
- .write<uint32_t>(0 ^ xor_key)
- .write<uint32_t>(0 ^ xor_key);
+ .write(DANS_MAGIC_NUMBER ^ xor_key)
+ /*
+ * The first chunk needs to be aligned on 64-bit and padded
+ * with 0-xor. We can't use vector_iostream::align as it would not
+ * be encoded.
+ */
+ .write<uint32_t>(0 ^ xor_key)
+ .write<uint32_t>(0 ^ xor_key)
+ .write<uint32_t>(0 ^ xor_key);
for (auto it = entries_.crbegin(); it != entries_.crend(); ++it) {
const RichEntry& entry = *it;
- const uint32_t value = (static_cast<uint32_t>(entry.id()) << 16) | entry.build_id();
- wstream
- .write(value ^ xor_key).write(entry.count() ^ xor_key);
+ const uint32_t value =
+ (static_cast<uint32_t>(entry.id()) << 16) | entry.build_id();
+ wstream.write(value ^ xor_key).write(entry.count() ^ xor_key);
}
- wstream
- .write(RICH_MAGIC, std::size(RICH_MAGIC)).write(xor_key);
+ wstream.write(RICH_MAGIC, std::size(RICH_MAGIC)).write(xor_key);
return wstream.raw();
}
std::vector<uint8_t> RichHeader::hash(ALGORITHMS algo, uint32_t xor_key) const {
- CONST_MAP(ALGORITHMS, hashstream::HASH, 5) HMAP = {
- {ALGORITHMS::MD5, hashstream::HASH::MD5},
- {ALGORITHMS::SHA_1, hashstream::HASH::SHA1},
- {ALGORITHMS::SHA_256, hashstream::HASH::SHA256},
- {ALGORITHMS::SHA_384, hashstream::HASH::SHA384},
- {ALGORITHMS::SHA_512, hashstream::HASH::SHA512},
+ CONST_MAP(ALGORITHMS, hashstream::HASH, 5)
+ HMAP = {
+ {ALGORITHMS::MD5, hashstream::HASH::MD5},
+ {ALGORITHMS::SHA_1, hashstream::HASH::SHA1},
+ {ALGORITHMS::SHA_256, hashstream::HASH::SHA256},
+ {ALGORITHMS::SHA_384, hashstream::HASH::SHA384},
+ {ALGORITHMS::SHA_512, hashstream::HASH::SHA512},
};
const auto it_hash = HMAP.find(algo);
- if (it_hash == std::end(HMAP)) {
+ if (it_hash == HMAP.end()) {
LIEF_WARN("Unsupported hash algorithm: {}", to_string(algo));
return {};
}
@@ -81,9 +79,8 @@ std::vector<uint8_t> RichHeader::hash(ALGORITHMS algo, uint32_t xor_key) const {
}
std::ostream& operator<<(std::ostream& os, const RichHeader& rich_header) {
- using namespace fmt;
- os << format("Key: 0x{:08x} ({} entries)\n", rich_header.key(),
- rich_header.entries().size());
+ os << fmt::format("Key: {:#010x} ({} entries)\n", rich_header.key(),
+ rich_header.entries().size());
for (const RichEntry& entry : rich_header.entries()) {
os << " " << entry << '\n';
}
@@ -91,4 +88,3 @@ std::ostream& operator<<(std::ostream& os, const RichHeader& rich_header) {
}
}
-}
diff --git a/deps/LIEF/src/PE/Section.cpp b/deps/LIEF/src/PE/Section.cpp
index 0239855294a..2a5eb1f4f2a 100644
--- a/deps/LIEF/src/PE/Section.cpp
+++ b/deps/LIEF/src/PE/Section.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,45 +27,45 @@
#include "LIEF/PE/Section.hpp"
#include "LIEF/COFF/String.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
static constexpr std::array CHARACTERISTICS_LIST = {
- Section::CHARACTERISTICS::TYPE_NO_PAD,
- Section::CHARACTERISTICS::CNT_CODE,
- Section::CHARACTERISTICS::CNT_INITIALIZED_DATA,
- Section::CHARACTERISTICS::CNT_UNINITIALIZED_DATA,
- Section::CHARACTERISTICS::LNK_OTHER,
- Section::CHARACTERISTICS::LNK_INFO,
- Section::CHARACTERISTICS::LNK_REMOVE,
- Section::CHARACTERISTICS::LNK_COMDAT,
- Section::CHARACTERISTICS::GPREL,
- Section::CHARACTERISTICS::MEM_PURGEABLE,
- Section::CHARACTERISTICS::MEM_16BIT,
- Section::CHARACTERISTICS::MEM_LOCKED,
- Section::CHARACTERISTICS::MEM_PRELOAD,
- Section::CHARACTERISTICS::ALIGN_1BYTES,
- Section::CHARACTERISTICS::ALIGN_2BYTES,
- Section::CHARACTERISTICS::ALIGN_4BYTES,
- Section::CHARACTERISTICS::ALIGN_8BYTES,
- Section::CHARACTERISTICS::ALIGN_16BYTES,
- Section::CHARACTERISTICS::ALIGN_32BYTES,
- Section::CHARACTERISTICS::ALIGN_64BYTES,
- Section::CHARACTERISTICS::ALIGN_128BYTES,
- Section::CHARACTERISTICS::ALIGN_256BYTES,
- Section::CHARACTERISTICS::ALIGN_512BYTES,
- Section::CHARACTERISTICS::ALIGN_1024BYTES,
- Section::CHARACTERISTICS::ALIGN_2048BYTES,
- Section::CHARACTERISTICS::ALIGN_4096BYTES,
- Section::CHARACTERISTICS::ALIGN_8192BYTES,
- Section::CHARACTERISTICS::LNK_NRELOC_OVFL,
- Section::CHARACTERISTICS::MEM_DISCARDABLE,
- Section::CHARACTERISTICS::MEM_NOT_CACHED,
- Section::CHARACTERISTICS::MEM_NOT_PAGED,
- Section::CHARACTERISTICS::MEM_SHARED,
- Section::CHARACTERISTICS::MEM_EXECUTE,
- Section::CHARACTERISTICS::MEM_READ,
- Section::CHARACTERISTICS::MEM_WRITE,
+ Section::CHARACTERISTICS::TYPE_NO_PAD,
+ Section::CHARACTERISTICS::CNT_CODE,
+ Section::CHARACTERISTICS::CNT_INITIALIZED_DATA,
+ Section::CHARACTERISTICS::CNT_UNINITIALIZED_DATA,
+ Section::CHARACTERISTICS::LNK_OTHER,
+ Section::CHARACTERISTICS::LNK_INFO,
+ Section::CHARACTERISTICS::LNK_REMOVE,
+ Section::CHARACTERISTICS::LNK_COMDAT,
+ Section::CHARACTERISTICS::GPREL,
+ Section::CHARACTERISTICS::MEM_PURGEABLE,
+ Section::CHARACTERISTICS::MEM_16BIT,
+ Section::CHARACTERISTICS::MEM_LOCKED,
+ Section::CHARACTERISTICS::MEM_PRELOAD,
+ Section::CHARACTERISTICS::ALIGN_1BYTES,
+ Section::CHARACTERISTICS::ALIGN_2BYTES,
+ Section::CHARACTERISTICS::ALIGN_4BYTES,
+ Section::CHARACTERISTICS::ALIGN_8BYTES,
+ Section::CHARACTERISTICS::ALIGN_16BYTES,
+ Section::CHARACTERISTICS::ALIGN_32BYTES,
+ Section::CHARACTERISTICS::ALIGN_64BYTES,
+ Section::CHARACTERISTICS::ALIGN_128BYTES,
+ Section::CHARACTERISTICS::ALIGN_256BYTES,
+ Section::CHARACTERISTICS::ALIGN_512BYTES,
+ Section::CHARACTERISTICS::ALIGN_1024BYTES,
+ Section::CHARACTERISTICS::ALIGN_2048BYTES,
+ Section::CHARACTERISTICS::ALIGN_4096BYTES,
+ Section::CHARACTERISTICS::ALIGN_8192BYTES,
+ Section::CHARACTERISTICS::LNK_NRELOC_OVFL,
+ Section::CHARACTERISTICS::MEM_DISCARDABLE,
+ Section::CHARACTERISTICS::MEM_NOT_CACHED,
+ Section::CHARACTERISTICS::MEM_NOT_PAGED,
+ Section::CHARACTERISTICS::MEM_SHARED,
+ Section::CHARACTERISTICS::MEM_EXECUTE,
+ Section::CHARACTERISTICS::MEM_READ,
+ Section::CHARACTERISTICS::MEM_WRITE,
};
Section::Section(const details::pe_section& header) :
@@ -74,18 +74,16 @@ Section::Section(const details::pe_section& header) :
pointer_to_linenumbers_{header.PointerToLineNumbers},
number_of_relocations_{header.NumberOfRelocations},
number_of_linenumbers_{header.NumberOfLineNumbers},
- characteristics_{header.Characteristics}
-{
- name_ = std::string(header.Name, sizeof(header.Name));
+ characteristics_{header.Characteristics} {
+ name_ = std::string(header.Name, sizeof(header.Name));
virtual_address_ = header.VirtualAddress;
- size_ = header.SizeOfRawData;
- offset_ = header.PointerToRawData;
+ size_ = header.SizeOfRawData;
+ offset_ = header.PointerToRawData;
}
void Section::name(std::string name) {
if (name.size() > MAX_SECTION_NAME) {
- LIEF_ERR("The max size of a section's name is {} vs {}", MAX_SECTION_NAME,
- name.size());
+ LIEF_ERR("Section name too long: max {} vs {}", MAX_SECTION_NAME, name.size());
return;
}
name_ = std::move(name);
@@ -99,12 +97,13 @@ uint32_t Section::pointerto_raw_data() const {
return offset();
}
-std::vector<Section::CHARACTERISTICS> Section::characteristics_to_list(uint32_t value) {
+std::vector<Section::CHARACTERISTICS>
+ Section::characteristics_to_list(uint32_t value) {
std::vector<Section::CHARACTERISTICS> list;
list.reserve(3);
std::copy_if(CHARACTERISTICS_LIST.begin(), CHARACTERISTICS_LIST.end(),
std::back_inserter(list),
- [value] (CHARACTERISTICS c) { return (value & (uint32_t)c) != 0; });
+ [value](CHARACTERISTICS c) { return (value & (uint32_t)c) != 0; });
return list;
}
@@ -122,90 +121,99 @@ std::unique_ptr<SpanStream> Section::stream() const {
}
void Section::clear(uint8_t c) {
- std::fill(std::begin(content_), std::end(content_), c);
+ std::fill(content_.begin(), content_.end(), c);
}
std::ostream& operator<<(std::ostream& os, const Section& section) {
- using namespace fmt;
static constexpr auto WIDTH = 24;
const auto& list = section.characteristics_list();
std::vector<std::string> list_str;
list_str.reserve(list.size());
std::transform(list.begin(), list.end(), std::back_inserter(list_str),
- [] (const auto c) { return to_string(c); });
+ [](const auto c) { return to_string(c); });
std::vector<std::string> fullname_hex;
fullname_hex.reserve(section.name().size());
std::transform(section.fullname().begin(), section.fullname().end(),
std::back_inserter(fullname_hex),
- [] (const char c) { return format("{:02x}", c); });
+ [](const char c) { return fmt::format("{:02x}", c); });
if (const COFF::String* coff_str = section.coff_string()) {
- os << format("{:{}} {} ({}, {})\n", "Name:", WIDTH, section.name(),
- join(fullname_hex, " "), coff_str->str());
+ os << fmt::format("{:{}} {} ({}, {})\n", "Name:", WIDTH, section.name(),
+ fmt::join(fullname_hex, " "), coff_str->str());
} else {
- os << format("{:{}} {} ({})\n", "Name:", WIDTH, section.name(),
- join(fullname_hex, " "));
+ os << fmt::format("{:{}} {} ({})\n", "Name:", WIDTH, section.name(),
+ fmt::join(fullname_hex, " "));
}
- os << format("{:{}} 0x{:x}\n", "Virtual Size", WIDTH, section.virtual_size())
- << format("{:{}} 0x{:x}\n", "Virtual Address", WIDTH, section.virtual_address())
- << format("{:{}} [0x{:08x}, 0x{:08x}]\n", "Range", WIDTH,
- section.virtual_address(), section.virtual_address() + section.virtual_size())
- << format("{:{}} 0x{:x}\n", "Size of raw data", WIDTH, section.sizeof_raw_data())
- << format("{:{}} 0x{:x}\n", "Pointer to raw data", WIDTH, section.pointerto_raw_data())
- << format("{:{}} [0x{:08x}, 0x{:08x}]\n", "Range", WIDTH,
- section.pointerto_raw_data(), section.pointerto_raw_data() + section.sizeof_raw_data())
- << format("{:{}} 0x{:x}\n", "Pointer to relocations", WIDTH, section.pointerto_relocation())
- << format("{:{}} 0x{:x}\n", "Pointer to line numbers", WIDTH, section.pointerto_line_numbers())
- << format("{:{}} 0x{:x}\n", "Number of relocations", WIDTH, section.numberof_relocations())
- << format("{:{}} 0x{:x}\n", "Number of lines", WIDTH, section.numberof_line_numbers())
- << format("{:{}} {}", "Characteristics", WIDTH, join(list_str, ", "));
+ os << fmt::format("{:{}} {:#x}\n", "Virtual Size", WIDTH, section.virtual_size())
+ << fmt::format("{:{}} {:#x}\n", "Virtual Address", WIDTH,
+ section.virtual_address())
+ << fmt::format("{:{}} [{:#010x}, {:#010x}]\n", "Range", WIDTH,
+ section.virtual_address(),
+ section.virtual_address() + section.virtual_size())
+ << fmt::format("{:{}} {:#x}\n", "Size of raw data", WIDTH,
+ section.sizeof_raw_data())
+ << fmt::format("{:{}} {:#x}\n", "Pointer to raw data", WIDTH,
+ section.pointerto_raw_data())
+ << fmt::format("{:{}} [{:#010x}, {:#010x}]\n", "Range", WIDTH,
+ section.pointerto_raw_data(),
+ section.pointerto_raw_data() + section.sizeof_raw_data())
+ << fmt::format("{:{}} {:#x}\n", "Pointer to relocations", WIDTH,
+ section.pointerto_relocation())
+ << fmt::format("{:{}} {:#x}\n", "Pointer to line numbers", WIDTH,
+ section.pointerto_line_numbers())
+ << fmt::format("{:{}} {:#x}\n", "Number of relocations", WIDTH,
+ section.numberof_relocations())
+ << fmt::format("{:{}} {:#x}\n", "Number of lines", WIDTH,
+ section.numberof_line_numbers())
+ << fmt::format("{:{}} {}", "Characteristics", WIDTH,
+ fmt::join(list_str, ", "));
return os;
}
const char* to_string(Section::CHARACTERISTICS e) {
- CONST_MAP(Section::CHARACTERISTICS, const char*, 35) enumStrings {
- { Section::CHARACTERISTICS::TYPE_NO_PAD, "TYPE_NO_PAD" },
- { Section::CHARACTERISTICS::CNT_CODE, "CNT_CODE" },
- { Section::CHARACTERISTICS::CNT_INITIALIZED_DATA, "CNT_INITIALIZED_DATA" },
- { Section::CHARACTERISTICS::CNT_UNINITIALIZED_DATA, "CNT_UNINITIALIZED_DATA" },
- { Section::CHARACTERISTICS::LNK_OTHER, "LNK_OTHER" },
- { Section::CHARACTERISTICS::LNK_INFO, "LNK_INFO" },
- { Section::CHARACTERISTICS::LNK_REMOVE, "LNK_REMOVE" },
- { Section::CHARACTERISTICS::LNK_COMDAT, "LNK_COMDAT" },
- { Section::CHARACTERISTICS::GPREL, "GPREL" },
- { Section::CHARACTERISTICS::MEM_PURGEABLE, "MEM_PURGEABLE" },
- { Section::CHARACTERISTICS::MEM_16BIT, "MEM_16BIT" },
- { Section::CHARACTERISTICS::MEM_LOCKED, "MEM_LOCKED" },
- { Section::CHARACTERISTICS::MEM_PRELOAD, "MEM_PRELOAD" },
- { Section::CHARACTERISTICS::ALIGN_1BYTES, "ALIGN_1BYTES" },
- { Section::CHARACTERISTICS::ALIGN_2BYTES, "ALIGN_2BYTES" },
- { Section::CHARACTERISTICS::ALIGN_4BYTES, "ALIGN_4BYTES" },
- { Section::CHARACTERISTICS::ALIGN_8BYTES, "ALIGN_8BYTES" },
- { Section::CHARACTERISTICS::ALIGN_16BYTES, "ALIGN_16BYTES" },
- { Section::CHARACTERISTICS::ALIGN_32BYTES, "ALIGN_32BYTES" },
- { Section::CHARACTERISTICS::ALIGN_64BYTES, "ALIGN_64BYTES" },
- { Section::CHARACTERISTICS::ALIGN_128BYTES, "ALIGN_128BYTES" },
- { Section::CHARACTERISTICS::ALIGN_256BYTES, "ALIGN_256BYTES" },
- { Section::CHARACTERISTICS::ALIGN_512BYTES, "ALIGN_512BYTES" },
- { Section::CHARACTERISTICS::ALIGN_1024BYTES, "ALIGN_1024BYTES" },
- { Section::CHARACTERISTICS::ALIGN_2048BYTES, "ALIGN_2048BYTES" },
- { Section::CHARACTERISTICS::ALIGN_4096BYTES, "ALIGN_4096BYTES" },
- { Section::CHARACTERISTICS::ALIGN_8192BYTES, "ALIGN_8192BYTES" },
- { Section::CHARACTERISTICS::LNK_NRELOC_OVFL, "LNK_NRELOC_OVFL" },
- { Section::CHARACTERISTICS::MEM_DISCARDABLE, "MEM_DISCARDABLE" },
- { Section::CHARACTERISTICS::MEM_NOT_CACHED, "MEM_NOT_CACHED" },
- { Section::CHARACTERISTICS::MEM_NOT_PAGED, "MEM_NOT_PAGED" },
- { Section::CHARACTERISTICS::MEM_SHARED, "MEM_SHARED" },
- { Section::CHARACTERISTICS::MEM_EXECUTE, "MEM_EXECUTE" },
- { Section::CHARACTERISTICS::MEM_READ, "MEM_READ" },
- { Section::CHARACTERISTICS::MEM_WRITE, "MEM_WRITE" }
+ CONST_MAP(Section::CHARACTERISTICS, const char*, 35)
+ enumStrings{
+ {Section::CHARACTERISTICS::TYPE_NO_PAD, "TYPE_NO_PAD"},
+ {Section::CHARACTERISTICS::CNT_CODE, "CNT_CODE"},
+ {Section::CHARACTERISTICS::CNT_INITIALIZED_DATA, "CNT_INITIALIZED_DATA"},
+ {Section::CHARACTERISTICS::CNT_UNINITIALIZED_DATA, "CNT_UNINITIALIZED_DATA"},
+ {Section::CHARACTERISTICS::LNK_OTHER, "LNK_OTHER"},
+ {Section::CHARACTERISTICS::LNK_INFO, "LNK_INFO"},
+ {Section::CHARACTERISTICS::LNK_REMOVE, "LNK_REMOVE"},
+ {Section::CHARACTERISTICS::LNK_COMDAT, "LNK_COMDAT"},
+ {Section::CHARACTERISTICS::GPREL, "GPREL"},
+ {Section::CHARACTERISTICS::MEM_PURGEABLE, "MEM_PURGEABLE"},
+ {Section::CHARACTERISTICS::MEM_16BIT, "MEM_16BIT"},
+ {Section::CHARACTERISTICS::MEM_LOCKED, "MEM_LOCKED"},
+ {Section::CHARACTERISTICS::MEM_PRELOAD, "MEM_PRELOAD"},
+ {Section::CHARACTERISTICS::ALIGN_1BYTES, "ALIGN_1BYTES"},
+ {Section::CHARACTERISTICS::ALIGN_2BYTES, "ALIGN_2BYTES"},
+ {Section::CHARACTERISTICS::ALIGN_4BYTES, "ALIGN_4BYTES"},
+ {Section::CHARACTERISTICS::ALIGN_8BYTES, "ALIGN_8BYTES"},
+ {Section::CHARACTERISTICS::ALIGN_16BYTES, "ALIGN_16BYTES"},
+ {Section::CHARACTERISTICS::ALIGN_32BYTES, "ALIGN_32BYTES"},
+ {Section::CHARACTERISTICS::ALIGN_64BYTES, "ALIGN_64BYTES"},
+ {Section::CHARACTERISTICS::ALIGN_128BYTES, "ALIGN_128BYTES"},
+ {Section::CHARACTERISTICS::ALIGN_256BYTES, "ALIGN_256BYTES"},
+ {Section::CHARACTERISTICS::ALIGN_512BYTES, "ALIGN_512BYTES"},
+ {Section::CHARACTERISTICS::ALIGN_1024BYTES, "ALIGN_1024BYTES"},
+ {Section::CHARACTERISTICS::ALIGN_2048BYTES, "ALIGN_2048BYTES"},
+ {Section::CHARACTERISTICS::ALIGN_4096BYTES, "ALIGN_4096BYTES"},
+ {Section::CHARACTERISTICS::ALIGN_8192BYTES, "ALIGN_8192BYTES"},
+ {Section::CHARACTERISTICS::LNK_NRELOC_OVFL, "LNK_NRELOC_OVFL"},
+ {Section::CHARACTERISTICS::MEM_DISCARDABLE, "MEM_DISCARDABLE"},
+ {Section::CHARACTERISTICS::MEM_NOT_CACHED, "MEM_NOT_CACHED"},
+ {Section::CHARACTERISTICS::MEM_NOT_PAGED, "MEM_NOT_PAGED"},
+ {Section::CHARACTERISTICS::MEM_SHARED, "MEM_SHARED"},
+ {Section::CHARACTERISTICS::MEM_EXECUTE, "MEM_EXECUTE"},
+ {Section::CHARACTERISTICS::MEM_READ, "MEM_READ"},
+ {Section::CHARACTERISTICS::MEM_WRITE, "MEM_WRITE"}
};
const auto it = enumStrings.find(e);
return it == enumStrings.end() ? "UNKNOWN" : it->second;
}
}
-}
diff --git a/deps/LIEF/src/PE/Structures.hpp b/deps/LIEF/src/PE/Structures.hpp
index 4adc3e1de9b..b0489b8cfc7 100644
--- a/deps/LIEF/src/PE/Structures.hpp
+++ b/deps/LIEF/src/PE/Structures.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,36 +14,23 @@
*/
#ifndef LIEF_PE_STRUCTURES_H
#define LIEF_PE_STRUCTURES_H
-#include <type_traits>
-#include <map>
-
-#include "LIEF/types.hpp"
-
-#include "LIEF/PE/enums.hpp"
-
-namespace LIEF {
-
-/// Namespace related to the LIEF's PE module
-///
/// Some parts come from llvm/Support/COFF.h
-namespace PE {
-
-namespace details {
+namespace LIEF::PE::details {
/// Sizes in bytes of various things in the COFF format.
namespace sizes {
- static constexpr size_t HEADER_16 = 20;
- static constexpr size_t HEADER_32 = 56;
- static constexpr size_t SECTION_NAME = 8;
- static constexpr size_t SYMBOL_16 = 18;
- static constexpr size_t SYMBOL_32 = 20;
- static constexpr size_t SECTION = 40;
- static constexpr size_t RELOCATION = 10;
- static constexpr size_t BASE_RELOCATION_BLOCK = 8;
- static constexpr size_t IMPORT_DIRECTORY_TABLE_ENTRY = 20;
- static constexpr size_t RESOURCE_DIRECTORY_TABLE = 16;
- static constexpr size_t RESOURCE_DIRECTORY_ENTRIES = 8;
- static constexpr size_t RESOURCE_DATA_ENTRY = 16;
+static constexpr size_t HEADER_16 = 20;
+static constexpr size_t HEADER_32 = 56;
+static constexpr size_t SECTION_NAME = 8;
+static constexpr size_t SYMBOL_16 = 18;
+static constexpr size_t SYMBOL_32 = 20;
+static constexpr size_t SECTION = 40;
+static constexpr size_t RELOCATION = 10;
+static constexpr size_t BASE_RELOCATION_BLOCK = 8;
+static constexpr size_t IMPORT_DIRECTORY_TABLE_ENTRY = 20;
+static constexpr size_t RESOURCE_DIRECTORY_TABLE = 16;
+static constexpr size_t RESOURCE_DIRECTORY_ENTRIES = 8;
+static constexpr size_t RESOURCE_DATA_ENTRY = 16;
}
struct delay_imports {
@@ -62,7 +49,7 @@ static_assert(sizeof(delay_imports) == 32, "Wrong sizeof(delay_imports)");
#include "structures.inc"
// From Virtualbox - include/iprt/formats/pecoff.h
-template <typename T>
+template<typename T>
struct load_configuration {
uint32_t Characteristics;
uint32_t TimeDateStamp;
@@ -71,20 +58,20 @@ struct load_configuration {
uint32_t GlobalFlagsClear;
uint32_t GlobalFlagsSet;
uint32_t CriticalSectionDefaultTimeout;
- T DeCommitFreeBlockThreshold;
- T DeCommitTotalFreeThreshold;
- T LockPrefixTable;
- T MaximumAllocationSize;
- T VirtualMemoryThreshold;
- T ProcessAffinityMask;
+ T DeCommitFreeBlockThreshold;
+ T DeCommitTotalFreeThreshold;
+ T LockPrefixTable;
+ T MaximumAllocationSize;
+ T VirtualMemoryThreshold;
+ T ProcessAffinityMask;
uint32_t ProcessHeapFlags;
uint16_t CSDVersion;
uint16_t Reserved1;
- T EditList;
- T SecurityCookie;
+ T EditList;
+ T SecurityCookie;
};
-template <typename T>
+template<typename T>
struct load_configuration_v0 : load_configuration<T> {
T SEHandlerTable;
T SEHandlerCount;
@@ -94,25 +81,25 @@ struct load_configuration_v0 : load_configuration<T> {
#pragma pack(4)
// Windows 10 - 9879
-template <typename T>
+template<typename T>
struct load_configuration_v1 : load_configuration_v0<T> {
- T GuardCFCheckFunctionPointer;
- T GuardCFDispatchFunctionPointer;
- T GuardCFFunctionTable;
- T GuardCFFunctionCount;
+ T GuardCFCheckFunctionPointer;
+ T GuardCFDispatchFunctionPointer;
+ T GuardCFFunctionTable;
+ T GuardCFFunctionCount;
uint32_t GuardFlags;
};
#pragma pack()
// Windows 10 - 9879
-template <typename T>
+template<typename T>
struct load_configuration_v2 : load_configuration_v1<T> {
pe_code_integrity CodeIntegrity;
};
-template <typename T>
+template<typename T>
struct load_configuration_v3 : load_configuration_v2<T> {
T GuardAddressTakenIatEntryTable;
T GuardAddressTakenIatEntryCount;
@@ -121,17 +108,17 @@ struct load_configuration_v3 : load_configuration_v2<T> {
};
-template <typename T>
+template<typename T>
struct load_configuration_v4 : load_configuration_v3<T> {
T DynamicValueRelocTable;
T HybridMetadataPointer;
};
-template <typename T>
+template<typename T>
struct load_configuration_v5 : load_configuration_v4<T> {
- T GuardRFFailureRoutine;
- T GuardRFFailureRoutineFunctionPointer;
+ T GuardRFFailureRoutine;
+ T GuardRFFailureRoutineFunctionPointer;
uint32_t DynamicValueRelocTableOffset;
uint16_t DynamicValueRelocTableSection;
uint16_t Reserved2;
@@ -139,38 +126,38 @@ struct load_configuration_v5 : load_configuration_v4<T> {
#pragma pack(4)
-template <typename T>
+template<typename T>
struct load_configuration_v6 : load_configuration_v5<T> {
- T GuardRFVerifyStackPointerFunctionPointer;
+ T GuardRFVerifyStackPointerFunctionPointer;
uint32_t HotPatchTableOffset;
};
#pragma pack()
-template <typename T>
+template<typename T>
struct load_configuration_v7 : load_configuration_v6<T> {
uint32_t Reserved3;
- T AddressOfSomeUnicodeString;
+ T AddressOfSomeUnicodeString;
};
-template <typename T>
+template<typename T>
struct load_configuration_v8 : load_configuration_v7<T> {
T VolatileMetadataPointer;
};
-template <typename T>
+template<typename T>
struct load_configuration_v9 : load_configuration_v8<T> {
T GuardEHContinuationTable;
T GuardEHContinuationCount;
};
-template <typename T>
+template<typename T>
struct load_configuration_v10 : load_configuration_v9<T> {
T GuardXFGCheckFunctionPointer;
T GuardXFGDispatchFunctionPointer;
T GuardXFGTableDispatchFunctionPointer;
};
-template <typename T>
+template<typename T>
struct load_configuration_v11 : load_configuration_v10<T> {
T CastGuardOsDeterminedFailureMode;
};
@@ -178,78 +165,78 @@ struct load_configuration_v11 : load_configuration_v10<T> {
class PE32 {
public:
- using pe_optional_header = pe32_optional_header;
- using pe_tls = pe32_tls;
- using uint = uint32_t;
-
- using load_configuration_t = load_configuration<uint32_t>;
- using load_configuration_v0_t = load_configuration_v0<uint32_t>;
- using load_configuration_v1_t = load_configuration_v1<uint32_t>;
- using load_configuration_v2_t = load_configuration_v2<uint32_t>;
- using load_configuration_v3_t = load_configuration_v3<uint32_t>;
- using load_configuration_v4_t = load_configuration_v4<uint32_t>;
- using load_configuration_v5_t = load_configuration_v5<uint32_t>;
- using load_configuration_v6_t = load_configuration_v6<uint32_t>;
- using load_configuration_v7_t = load_configuration_v7<uint32_t>;
- using load_configuration_v8_t = load_configuration_v8<uint32_t>;
- using load_configuration_v9_t = load_configuration_v9<uint32_t>;
- using load_configuration_v10_t = load_configuration_v10<uint32_t>;
- using load_configuration_v11_t = load_configuration_v11<uint32_t>;
-
- static_assert(sizeof(load_configuration_t) == 0x40);
- static_assert(sizeof(load_configuration_v0_t) == 0x48);
- static_assert(sizeof(load_configuration_v1_t) == 0x5c);
- static_assert(sizeof(load_configuration_v2_t) == 0x68);
- static_assert(sizeof(load_configuration_v3_t) == 0x78);
- static_assert(sizeof(load_configuration_v4_t) == 0x80);
- static_assert(sizeof(load_configuration_v5_t) == 0x90);
- static_assert(sizeof(load_configuration_v6_t) == 0x98);
- static_assert(sizeof(load_configuration_v7_t) == 0xA0);
- static_assert(sizeof(load_configuration_v8_t) == 0xA4);
- static_assert(sizeof(load_configuration_v9_t) == 0xAC);
- static_assert(sizeof(load_configuration_v10_t) == 0xB8);
- static_assert(sizeof(load_configuration_v11_t) == 0xBC);
- };
+ using pe_optional_header = pe32_optional_header;
+ using pe_tls = pe32_tls;
+ using uint = uint32_t;
+
+ using load_configuration_t = load_configuration<uint32_t>;
+ using load_configuration_v0_t = load_configuration_v0<uint32_t>;
+ using load_configuration_v1_t = load_configuration_v1<uint32_t>;
+ using load_configuration_v2_t = load_configuration_v2<uint32_t>;
+ using load_configuration_v3_t = load_configuration_v3<uint32_t>;
+ using load_configuration_v4_t = load_configuration_v4<uint32_t>;
+ using load_configuration_v5_t = load_configuration_v5<uint32_t>;
+ using load_configuration_v6_t = load_configuration_v6<uint32_t>;
+ using load_configuration_v7_t = load_configuration_v7<uint32_t>;
+ using load_configuration_v8_t = load_configuration_v8<uint32_t>;
+ using load_configuration_v9_t = load_configuration_v9<uint32_t>;
+ using load_configuration_v10_t = load_configuration_v10<uint32_t>;
+ using load_configuration_v11_t = load_configuration_v11<uint32_t>;
+
+ static_assert(sizeof(load_configuration_t) == 0x40);
+ static_assert(sizeof(load_configuration_v0_t) == 0x48);
+ static_assert(sizeof(load_configuration_v1_t) == 0x5c);
+ static_assert(sizeof(load_configuration_v2_t) == 0x68);
+ static_assert(sizeof(load_configuration_v3_t) == 0x78);
+ static_assert(sizeof(load_configuration_v4_t) == 0x80);
+ static_assert(sizeof(load_configuration_v5_t) == 0x90);
+ static_assert(sizeof(load_configuration_v6_t) == 0x98);
+ static_assert(sizeof(load_configuration_v7_t) == 0xA0);
+ static_assert(sizeof(load_configuration_v8_t) == 0xA4);
+ static_assert(sizeof(load_configuration_v9_t) == 0xAC);
+ static_assert(sizeof(load_configuration_v10_t) == 0xB8);
+ static_assert(sizeof(load_configuration_v11_t) == 0xBC);
+};
class PE64 {
public:
- using pe_optional_header = pe64_optional_header;
- using pe_tls = pe64_tls;
- using uint = uint64_t;
-
- using load_configuration_t = load_configuration<uint64_t>;
- using load_configuration_v0_t = load_configuration_v0<uint64_t>;
- using load_configuration_v1_t = load_configuration_v1<uint64_t>;
- using load_configuration_v2_t = load_configuration_v2<uint64_t>;
- using load_configuration_v3_t = load_configuration_v3<uint64_t>;
- using load_configuration_v4_t = load_configuration_v4<uint64_t>;
- using load_configuration_v5_t = load_configuration_v5<uint64_t>;
- using load_configuration_v6_t = load_configuration_v6<uint64_t>;
- using load_configuration_v7_t = load_configuration_v7<uint64_t>;
- using load_configuration_v8_t = load_configuration_v8<uint64_t>;
- using load_configuration_v9_t = load_configuration_v9<uint64_t>;
- using load_configuration_v10_t = load_configuration_v10<uint64_t>;
- using load_configuration_v11_t = load_configuration_v11<uint64_t>;
-
- static_assert(sizeof(load_configuration_t) == 0x60);
- static_assert(sizeof(load_configuration_v0_t) == 0x70);
- static_assert(sizeof(load_configuration_v1_t) == 0x94);
- static_assert(sizeof(load_configuration_v2_t) == 0xA0);
- static_assert(sizeof(load_configuration_v3_t) == 0xC0);
- static_assert(sizeof(load_configuration_v4_t) == 0xD0);
- static_assert(sizeof(load_configuration_v5_t) == 0xE8);
- static_assert(sizeof(load_configuration_v6_t) == 0xF4);
- static_assert(sizeof(load_configuration_v7_t) == 0x100);
- static_assert(sizeof(load_configuration_v8_t) == 0x108);
- static_assert(sizeof(load_configuration_v9_t) == 0x118);
- static_assert(sizeof(load_configuration_v10_t) == 0x130);
- static_assert(sizeof(load_configuration_v11_t) == 0x138);
+ using pe_optional_header = pe64_optional_header;
+ using pe_tls = pe64_tls;
+ using uint = uint64_t;
+
+ using load_configuration_t = load_configuration<uint64_t>;
+ using load_configuration_v0_t = load_configuration_v0<uint64_t>;
+ using load_configuration_v1_t = load_configuration_v1<uint64_t>;
+ using load_configuration_v2_t = load_configuration_v2<uint64_t>;
+ using load_configuration_v3_t = load_configuration_v3<uint64_t>;
+ using load_configuration_v4_t = load_configuration_v4<uint64_t>;
+ using load_configuration_v5_t = load_configuration_v5<uint64_t>;
+ using load_configuration_v6_t = load_configuration_v6<uint64_t>;
+ using load_configuration_v7_t = load_configuration_v7<uint64_t>;
+ using load_configuration_v8_t = load_configuration_v8<uint64_t>;
+ using load_configuration_v9_t = load_configuration_v9<uint64_t>;
+ using load_configuration_v10_t = load_configuration_v10<uint64_t>;
+ using load_configuration_v11_t = load_configuration_v11<uint64_t>;
+
+ static_assert(sizeof(load_configuration_t) == 0x60);
+ static_assert(sizeof(load_configuration_v0_t) == 0x70);
+ static_assert(sizeof(load_configuration_v1_t) == 0x94);
+ static_assert(sizeof(load_configuration_v2_t) == 0xA0);
+ static_assert(sizeof(load_configuration_v3_t) == 0xC0);
+ static_assert(sizeof(load_configuration_v4_t) == 0xD0);
+ static_assert(sizeof(load_configuration_v5_t) == 0xE8);
+ static_assert(sizeof(load_configuration_v6_t) == 0xF4);
+ static_assert(sizeof(load_configuration_v7_t) == 0x100);
+ static_assert(sizeof(load_configuration_v8_t) == 0x108);
+ static_assert(sizeof(load_configuration_v9_t) == 0x118);
+ static_assert(sizeof(load_configuration_v10_t) == 0x130);
+ static_assert(sizeof(load_configuration_v11_t) == 0x138);
};
}
-} // end namesapce PE
-}
+// end namesapce PE
+
#endif
diff --git a/deps/LIEF/src/PE/TLS.cpp b/deps/LIEF/src/PE/TLS.cpp
index 3207d57703c..05d23ee636d 100644
--- a/deps/LIEF/src/PE/TLS.cpp
+++ b/deps/LIEF/src/PE/TLS.cpp
@@ -1,5 +1,5 @@
- /* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,65 +13,60 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include <algorithm>
#include "LIEF/Visitor.hpp"
#include "LIEF/PE/TLS.hpp"
#include "LIEF/PE/Section.hpp"
#include "PE/Structures.hpp"
-#include "spdlog/fmt/fmt.h"
-#include "spdlog/fmt/ranges.h"
+#include <spdlog/fmt/fmt.h>
+#include <spdlog/fmt/ranges.h>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
TLS::TLS(const details::pe32_tls& header) :
va_rawdata_{header.RawDataStartVA, header.RawDataEndVA},
addressof_index_{header.AddressOfIndex},
addressof_callbacks_{header.AddressOfCallback},
sizeof_zero_fill_{header.SizeOfZeroFill},
- characteristics_{header.Characteristics}
-{}
+ characteristics_{header.Characteristics} {}
TLS::TLS(const details::pe64_tls& header) :
va_rawdata_{header.RawDataStartVA, header.RawDataEndVA},
addressof_index_{header.AddressOfIndex},
addressof_callbacks_{header.AddressOfCallback},
sizeof_zero_fill_{header.SizeOfZeroFill},
- characteristics_{header.Characteristics}
-{}
+ characteristics_{header.Characteristics} {}
void TLS::accept(LIEF::Visitor& visitor) const {
visitor.visit(*this);
}
std::ostream& operator<<(std::ostream& os, const TLS& entry) {
- using namespace fmt;
- os << format("Address of index: 0x{:016x}\n", entry.addressof_index())
- << format("Address of callbacks: 0x{:016x}\n", entry.addressof_callbacks())
- << format("Address of raw data: [0x{:016x}, 0x{:016x}] ({} bytes)\n",
- entry.addressof_raw_data().first,
- entry.addressof_raw_data().second,
- entry.addressof_raw_data().second -
- entry.addressof_raw_data().first)
- << format("Size of zerofill: {:#x}\n", entry.sizeof_zero_fill())
- << format("Characteristics: {:#x}\n", entry.characteristics());
+ os << fmt::format("Address of index: {:#018x}\n", entry.addressof_index())
+ << fmt::format("Address of callbacks: {:#018x}\n",
+ entry.addressof_callbacks())
+ << fmt::format("Address of raw data: [{:#018x}, {:#018x}] ({} bytes)\n",
+ entry.addressof_raw_data().first,
+ entry.addressof_raw_data().second,
+ entry.addressof_raw_data().second -
+ entry.addressof_raw_data().first)
+ << fmt::format("Size of zerofill: {:#x}\n", entry.sizeof_zero_fill())
+ << fmt::format("Characteristics: {:#x}\n", entry.characteristics());
if (const Section* section = entry.section()) {
- os << format("Section: '{}'\n", section->name());
+ os << fmt::format("Section: '{}'\n", section->name());
}
if (const std::vector<uint64_t>& cbk = entry.callbacks(); !cbk.empty()) {
- os << format("Callbacks (#{}):\n", cbk.size());
- for (size_t i = 0; i < cbk.size(); ++i) {
- os << format(" [{:02d}]: 0x{:016x}\n", i, cbk[i]);
- }
+ os << fmt::format("Callbacks (#{}):\n", cbk.size());
+ for (size_t i = 0; i < cbk.size(); ++i) {
+ os << fmt::format(" [{:02d}]: {:#018x}\n", i, cbk[i]);
+ }
}
return os;
}
-} // namespace PE
-} // namespace LIEF
-
+} // namespace LIEF::PE
diff --git a/deps/LIEF/src/PE/checksum.cpp b/deps/LIEF/src/PE/checksum.cpp
index 3888da778cf..28c23d3b3e8 100644
--- a/deps/LIEF/src/PE/checksum.cpp
+++ b/deps/LIEF/src/PE/checksum.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -34,7 +34,8 @@ ChecksumStream& ChecksumStream::write(BinaryStream& chk_stream) {
}
const uint64_t file_length = chk_stream.size() - chk_stream.pos();
- uint64_t nb_chunk = (file_length + 1) / sizeof(uint16_t); // Number of uint16_t chunks
+ uint64_t nb_chunk =
+ (file_length + 1) / sizeof(uint16_t); // Number of uint16_t chunks
while (chk_stream) {
uint16_t chunk = 0;
@@ -66,7 +67,8 @@ uint32_t ChecksumStream::finalize() {
partial_sum_ = (partial_sum_ >> 16) + (partial_sum_ & 0xffff);
}
- auto partial_sum_res = static_cast<uint16_t>(((partial_sum_ >> 16) + partial_sum_) & 0xffff);
+ auto partial_sum_res =
+ static_cast<uint16_t>(((partial_sum_ >> 16) + partial_sum_) & 0xffff);
const uint32_t binary_checksum = checksum_;
const uint32_t adjust_sum_lsb = binary_checksum & 0xFFFF;
const uint32_t adjust_sum_msb = binary_checksum >> 16;
diff --git a/deps/LIEF/src/PE/checksum.hpp b/deps/LIEF/src/PE/checksum.hpp
index c6d4b99a299..1b4115be6a5 100644
--- a/deps/LIEF/src/PE/checksum.hpp
+++ b/deps/LIEF/src/PE/checksum.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2024 - 2025 R. Thomas
+/* Copyright 2024 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,8 +27,7 @@ class ChecksumStream {
static constexpr auto LEFTOVER_BIT = 30;
ChecksumStream() = default;
ChecksumStream(uint32_t checksum) :
- checksum_(checksum)
- {}
+ checksum_(checksum) {}
ChecksumStream& put(uint8_t c) {
write(&c, 1);
@@ -61,9 +60,10 @@ class ChecksumStream {
return write(reinterpret_cast<const uint8_t*>(&value), size);
}
- template<class T, typename = typename std::enable_if<
- (std::is_standard_layout_v<T> && std::is_trivial_v<T>) || std::is_integral_v<T>
- >::type>
+ template<class T,
+ typename = typename std::enable_if<(std::is_standard_layout_v<T> &&
+ std::is_trivial_v<T>) ||
+ std::is_integral_v<T>>::type>
ChecksumStream& write(const T& t) {
return write(reinterpret_cast<const uint8_t*>(&t), sizeof(T));
}
diff --git a/deps/LIEF/src/PE/debug/CodeView.cpp b/deps/LIEF/src/PE/debug/CodeView.cpp
index 87415dcf194..59b42fb454a 100644
--- a/deps/LIEF/src/PE/debug/CodeView.cpp
+++ b/deps/LIEF/src/PE/debug/CodeView.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,8 +20,8 @@
#include "spdlog/fmt/fmt.h"
#include "frozen.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
void CodeView::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -36,15 +36,11 @@ std::string CodeView::to_string() const {
}
const char* to_string(CodeView::SIGNATURES e) {
- #define ENTRY(X) std::pair(CodeView::SIGNATURES::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNKNOWN),
- ENTRY(PDB_70),
- ENTRY(PDB_20),
- ENTRY(CV_50),
- ENTRY(CV_41),
+#define ENTRY(X) std::pair(CodeView::SIGNATURES::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(UNKNOWN), ENTRY(PDB_70), ENTRY(PDB_20), ENTRY(CV_50), ENTRY(CV_41),
};
- #undef ENTRY
+#undef ENTRY
if (const auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
}
@@ -52,4 +48,3 @@ const char* to_string(CodeView::SIGNATURES e) {
}
}
-}
diff --git a/deps/LIEF/src/PE/debug/CodeViewPDB.cpp b/deps/LIEF/src/PE/debug/CodeViewPDB.cpp
index 0d7ab88de04..8e1342e4466 100644
--- a/deps/LIEF/src/PE/debug/CodeViewPDB.cpp
+++ b/deps/LIEF/src/PE/debug/CodeViewPDB.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,7 +18,6 @@
#include "LIEF/PE/debug/CodeViewPDB.hpp"
#include "LIEF/Visitor.hpp"
#include "LIEF/BinaryStream/SpanStream.hpp"
-#include "LIEF/endianness_support.hpp"
#include "internal_utils.hpp"
#include "spdlog/fmt/fmt.h"
@@ -26,14 +25,13 @@
#include "PE/Structures.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
CodeViewPDB::CodeViewPDB(const details::pe_debug& debug_info,
const details::pe_pdb_70& pdb_70, Section* sec) :
CodeView{debug_info, SIGNATURES::PDB_70, sec},
- age_{pdb_70.age}
-{
+ age_{pdb_70.age} {
std::move(std::begin(pdb_70.signature), std::end(pdb_70.signature),
std::begin(signature_));
}
@@ -41,9 +39,7 @@ CodeViewPDB::CodeViewPDB(const details::pe_debug& debug_info,
CodeViewPDB::CodeViewPDB(const details::pe_debug& debug_info,
const details::pe_pdb_20& pdb_20, Section* sec) :
CodeView{debug_info, SIGNATURES::PDB_20, sec},
- age_{pdb_20.age}
-{
-}
+ age_{pdb_20.age} {}
void CodeViewPDB::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -64,21 +60,18 @@ std::string CodeViewPDB::guid() const {
const auto chunk5 = endian->read<uint16_t>().value_or(0);
const auto chunk6 = endian->read<uint32_t>().value_or(0);
- return fmt::format("{:08x}-{:04x}-{:04x}-{:04x}-{:04x}{:08x}",
- chunk1, chunk2, chunk3, chunk4, chunk5, chunk6
- );
+ return fmt::format("{:08x}-{:04x}-{:04x}-{:04x}-{:04x}{:08x}", chunk1, chunk2,
+ chunk3, chunk4, chunk5, chunk6);
}
std::string CodeViewPDB::to_string() const {
- using namespace fmt;
std::ostringstream os;
os << CodeView::to_string() << '\n'
- << format(" age: {}\n", age())
- << format(" signature: {}\n", to_hex(signature(), 19))
- << format(" GUID: {}\n", guid())
- << format(" filename: {}", filename());
+ << fmt::format(" age: {}\n", age())
+ << fmt::format(" signature: {}\n", to_hex(signature(), 19))
+ << fmt::format(" GUID: {}\n", guid())
+ << fmt::format(" filename: {}", filename());
return os.str();
}
}
-}
diff --git a/deps/LIEF/src/PE/debug/Debug.cpp b/deps/LIEF/src/PE/debug/Debug.cpp
index a2bf4facaf7..2119dea831f 100644
--- a/deps/LIEF/src/PE/debug/Debug.cpp
+++ b/deps/LIEF/src/PE/debug/Debug.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,22 +13,21 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+#include <sstream>
#include "LIEF/Visitor.hpp"
#include "LIEF/PE/debug/Debug.hpp"
#include "LIEF/PE/Section.hpp"
#include "PE/Structures.hpp"
#include "frozen.hpp"
-#include "logging.hpp"
#include "spdlog/fmt/fmt.h"
#include "overflow_check.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
span<uint8_t> Debug::get_payload(Section& section, uint32_t /*rva*/,
- uint32_t offset, uint32_t size)
-{
+ uint32_t offset, uint32_t size) {
span<uint8_t> content = section.writable_content();
if (size == 0 || content.empty() || content.size() < size) {
return {};
@@ -39,7 +38,8 @@ span<uint8_t> Debug::get_payload(Section& section, uint32_t /*rva*/,
return {};
}
- if ((size_t)rel_offset >= content.size() || (rel_offset + size) > content.size()) {
+ if ((size_t)rel_offset >= content.size() || (rel_offset + size) > content.size())
+ {
return {};
}
@@ -64,8 +64,7 @@ Debug::Debug(const details::pe_debug& debug_s, Section* sec) :
sizeof_data_{debug_s.SizeOfData},
addressof_rawdata_{debug_s.AddressOfRawData},
pointerto_rawdata_{debug_s.PointerToRawData},
- section_{sec}
-{}
+ section_{sec} {}
span<uint8_t> Debug::payload() {
if (section_ == nullptr) {
@@ -79,42 +78,42 @@ void Debug::accept(Visitor& visitor) const {
}
std::string Debug::to_string() const {
- using namespace fmt;
std::ostringstream os;
- os << format("Characteristics: 0x{:x}\n", characteristics())
- << format("Timestamp: 0x{:x}\n", timestamp())
- << format("Major/Minor version: {}.{}\n", major_version(), minor_version())
- << format("Type: {}\n", PE::to_string(type()))
- << format("Size of data: 0x{:x}\n", sizeof_data())
- << format("Address of rawdata: 0x{:x}\n", addressof_rawdata())
- << format("Pointer to rawdata: 0x{:x}", pointerto_rawdata());
+ os << fmt::format("Characteristics: {:#x}\n", characteristics())
+ << fmt::format("Timestamp: {:#x}\n", timestamp())
+ << fmt::format("Major/Minor version: {}.{}\n", major_version(),
+ minor_version())
+ << fmt::format("Type: {}\n", PE::to_string(type()))
+ << fmt::format("Size of data: {:#x}\n", sizeof_data())
+ << fmt::format("Address of rawdata: {:#x}\n", addressof_rawdata())
+ << fmt::format("Pointer to rawdata: {:#x}", pointerto_rawdata());
return os.str();
}
const char* to_string(Debug::TYPES e) {
- #define ENTRY(X) std::pair(Debug::TYPES::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNKNOWN),
- ENTRY(COFF),
- ENTRY(CODEVIEW),
- ENTRY(FPO),
- ENTRY(MISC),
- ENTRY(EXCEPTION),
- ENTRY(FIXUP),
- ENTRY(OMAP_TO_SRC),
- ENTRY(OMAP_FROM_SRC),
- ENTRY(BORLAND),
- ENTRY(RESERVED10),
- ENTRY(CLSID),
- ENTRY(VC_FEATURE),
- ENTRY(POGO),
- ENTRY(ILTCG),
- ENTRY(MPX),
- ENTRY(REPRO),
- ENTRY(PDBCHECKSUM),
- ENTRY(EX_DLLCHARACTERISTICS),
+#define ENTRY(X) std::pair(Debug::TYPES::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(UNKNOWN),
+ ENTRY(COFF),
+ ENTRY(CODEVIEW),
+ ENTRY(FPO),
+ ENTRY(MISC),
+ ENTRY(EXCEPTION),
+ ENTRY(FIXUP),
+ ENTRY(OMAP_TO_SRC),
+ ENTRY(OMAP_FROM_SRC),
+ ENTRY(BORLAND),
+ ENTRY(RESERVED10),
+ ENTRY(CLSID),
+ ENTRY(VC_FEATURE),
+ ENTRY(POGO),
+ ENTRY(ILTCG),
+ ENTRY(MPX),
+ ENTRY(REPRO),
+ ENTRY(PDBCHECKSUM),
+ ENTRY(EX_DLLCHARACTERISTICS),
};
- #undef ENTRY
+#undef ENTRY
if (const auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -123,5 +122,3 @@ const char* to_string(Debug::TYPES e) {
}
}
-}
-
diff --git a/deps/LIEF/src/PE/debug/ExDllCharacteristics.cpp b/deps/LIEF/src/PE/debug/ExDllCharacteristics.cpp
index e148258b832..216b0f092c3 100644
--- a/deps/LIEF/src/PE/debug/ExDllCharacteristics.cpp
+++ b/deps/LIEF/src/PE/debug/ExDllCharacteristics.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,30 +13,33 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+#include <sstream>
#include <algorithm>
#include "LIEF/PE/debug/ExDllCharacteristics.hpp"
-#include "logging.hpp"
#include "fmt_formatter.hpp"
-FMT_FORMATTER(LIEF::PE::ExDllCharacteristics::CHARACTERISTICS, LIEF::PE::to_string);
+FMT_FORMATTER(LIEF::PE::ExDllCharacteristics::CHARACTERISTICS,
+ LIEF::PE::to_string);
namespace LIEF::PE {
+using CHARACTERISTICS = ExDllCharacteristics::CHARACTERISTICS;
+
static constexpr auto CHARACTERISTICS_ARRAY = {
- ExDllCharacteristics::CHARACTERISTICS::CET_COMPAT,
- ExDllCharacteristics::CHARACTERISTICS::CET_COMPAT_STRICT_MODE,
- ExDllCharacteristics::CHARACTERISTICS::CET_SET_CONTEXT_IP_VALIDATION_RELAXED_MODE,
- ExDllCharacteristics::CHARACTERISTICS::CET_DYNAMIC_APIS_ALLOW_IN_PROC,
- ExDllCharacteristics::CHARACTERISTICS::CET_RESERVED_1,
- ExDllCharacteristics::CHARACTERISTICS::CET_RESERVED_2,
- ExDllCharacteristics::CHARACTERISTICS::FORWARD_CFI_COMPAT,
- ExDllCharacteristics::CHARACTERISTICS::HOTPATCH_COMPATIBLE,
+ CHARACTERISTICS::CET_COMPAT,
+ CHARACTERISTICS::CET_COMPAT_STRICT_MODE,
+ CHARACTERISTICS::CET_SET_CONTEXT_IP_VALIDATION_RELAXED_MODE,
+ CHARACTERISTICS::CET_DYNAMIC_APIS_ALLOW_IN_PROC,
+ CHARACTERISTICS::CET_RESERVED_1,
+ CHARACTERISTICS::CET_RESERVED_2,
+ CHARACTERISTICS::FORWARD_CFI_COMPAT,
+ CHARACTERISTICS::HOTPATCH_COMPATIBLE,
};
-std::unique_ptr<ExDllCharacteristics> ExDllCharacteristics::parse(
- const details::pe_debug& hdr, Section* section, span<uint8_t> payload)
-{
+std::unique_ptr<ExDllCharacteristics>
+ ExDllCharacteristics::parse(const details::pe_debug& hdr, Section* section,
+ span<uint8_t> payload) {
if (payload.size() < sizeof(uint32_t)) {
return nullptr;
}
@@ -45,45 +48,38 @@ std::unique_ptr<ExDllCharacteristics> ExDllCharacteristics::parse(
return std::make_unique<ExDllCharacteristics>(hdr, section, value);
}
-std::vector<ExDllCharacteristics::CHARACTERISTICS> ExDllCharacteristics::characteristics_list() const {
+std::vector<ExDllCharacteristics::CHARACTERISTICS>
+ ExDllCharacteristics::characteristics_list() const {
std::vector<CHARACTERISTICS> out;
out.reserve(3);
std::copy_if(CHARACTERISTICS_ARRAY.begin(), CHARACTERISTICS_ARRAY.end(),
std::back_inserter(out),
- [this] (CHARACTERISTICS c) { return has(c); });
+ [this](CHARACTERISTICS c) { return has(c); });
return out;
}
std::string ExDllCharacteristics::to_string() const {
std::ostringstream os;
- using namespace fmt;
os << Debug::to_string() << '\n'
- << format(" Characteristics: {}", join(characteristics_list(), ", "));
+ << fmt::format(" Characteristics: {}",
+ fmt::join(characteristics_list(), ", "));
return os.str();
}
-const char* to_string(ExDllCharacteristics::CHARACTERISTICS e) {
- using CHARACTERISTICS = ExDllCharacteristics::CHARACTERISTICS;
+const char* to_string(CHARACTERISTICS e) {
switch (e) {
- default:
- return "UNKNOWN";
- case CHARACTERISTICS::CET_COMPAT:
- return "CET_COMPAT";
- case CHARACTERISTICS::CET_COMPAT_STRICT_MODE:
- return "CET_COMPAT_STRICT_MODE";
+ default: return "UNKNOWN";
+ case CHARACTERISTICS::CET_COMPAT: return "CET_COMPAT";
+ case CHARACTERISTICS::CET_COMPAT_STRICT_MODE: return "CET_COMPAT_STRICT_MODE";
case CHARACTERISTICS::CET_SET_CONTEXT_IP_VALIDATION_RELAXED_MODE:
return "CET_SET_CONTEXT_IP_VALIDATION_RELAXED_MODE";
case CHARACTERISTICS::CET_DYNAMIC_APIS_ALLOW_IN_PROC:
return "CET_DYNAMIC_APIS_ALLOW_IN_PROC";
- case CHARACTERISTICS::CET_RESERVED_1:
- return "CET_RESERVED_1";
- case CHARACTERISTICS::CET_RESERVED_2:
- return "CET_RESERVED_2";
- case CHARACTERISTICS::FORWARD_CFI_COMPAT:
- return "FORWARD_CFI_COMPAT";
- case CHARACTERISTICS::HOTPATCH_COMPATIBLE:
- return "HOTPATCH_COMPATIBLE";
+ case CHARACTERISTICS::CET_RESERVED_1: return "CET_RESERVED_1";
+ case CHARACTERISTICS::CET_RESERVED_2: return "CET_RESERVED_2";
+ case CHARACTERISTICS::FORWARD_CFI_COMPAT: return "FORWARD_CFI_COMPAT";
+ case CHARACTERISTICS::HOTPATCH_COMPATIBLE: return "HOTPATCH_COMPATIBLE";
}
return "UNKNOWN";
}
diff --git a/deps/LIEF/src/PE/debug/FPO.cpp b/deps/LIEF/src/PE/debug/FPO.cpp
index a59377349c8..d307b41cfd3 100644
--- a/deps/LIEF/src/PE/debug/FPO.cpp
+++ b/deps/LIEF/src/PE/debug/FPO.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,10 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+#include <sstream>
+#include <spdlog/fmt/fmt.h>
#include "LIEF/PE/debug/FPO.hpp"
#include "LIEF/BinaryStream/SpanStream.hpp"
-#include "logging.hpp"
#include "PE/Structures.hpp"
namespace LIEF::PE {
@@ -24,24 +25,23 @@ namespace LIEF::PE {
namespace details {
// From um/winnt.h -- typedef struct _FPO_DATA { ... } FPO_DATA, *PFPO_DATA
struct FPO_DATA {
- uint32_t ulOffStart; // offset 1st byte of function code
- uint32_t cbProcSize; // # bytes in function
- uint32_t cdwLocals; // # bytes in locals/4
- uint16_t cdwParams; // # bytes in params/4
- uint16_t cbProlog : 8; // # bytes in prolog
- uint16_t cbRegs : 3; // # regs saved
- uint16_t fHasSEH : 1; // TRUE if SEH in func
- uint16_t fUseBP : 1; // TRUE if EBP has been allocated
- uint16_t reserved : 1; // reserved for future use
- uint16_t cbFrame : 2; // frame type
+ uint32_t ulOffStart; // offset 1st byte of function code
+ uint32_t cbProcSize; // # bytes in function
+ uint32_t cdwLocals; // # bytes in locals/4
+ uint16_t cdwParams; // # bytes in params/4
+ uint16_t cbProlog : 8; // # bytes in prolog
+ uint16_t cbRegs : 3; // # regs saved
+ uint16_t fHasSEH : 1; // TRUE if SEH in func
+ uint16_t fUseBP : 1; // TRUE if EBP has been allocated
+ uint16_t reserved : 1; // reserved for future use
+ uint16_t cbFrame : 2; // frame type
};
static_assert(sizeof(FPO_DATA) == 16, "Wrong size");
}
-std::unique_ptr<FPO> FPO::parse(
- const details::pe_debug& hdr, Section* section, span<uint8_t> payload)
-{
+std::unique_ptr<FPO> FPO::parse(const details::pe_debug& hdr, Section* section,
+ span<uint8_t> payload) {
SpanStream stream(payload);
auto fpo = std::make_unique<FPO>(hdr, section);
@@ -52,37 +52,35 @@ std::unique_ptr<FPO> FPO::parse(
break;
}
fpo->entries_.push_back({
- /*rva=*/ entry->ulOffStart,
- /*proc_size=*/ entry->cbProcSize,
- /*nb_locals=*/entry->cdwLocals * 4,
- /*parameters_size=*/(uint32_t)entry->cdwParams * 4,
- /*prolog_size=*/(uint16_t)entry->cbProcSize,
- /*nb_saved_regs=*/(uint16_t)entry->cbRegs,
- /*use_seh=*/(bool)entry->fHasSEH,
- /*use_bp=*/(bool)entry->fUseBP,
- /*reserved=*/(uint16_t)entry->reserved,
- /*type=*/(FRAME_TYPE)entry->cbFrame,
+ /*rva=*/entry->ulOffStart,
+ /*proc_size=*/entry->cbProcSize,
+ /*nb_locals=*/entry->cdwLocals * 4,
+ /*parameters_size=*/(uint32_t)entry->cdwParams * 4,
+ /*prolog_size=*/(uint16_t)entry->cbProcSize,
+ /*nb_saved_regs=*/(uint16_t)entry->cbRegs,
+ /*use_seh=*/(bool)entry->fHasSEH,
+ /*use_bp=*/(bool)entry->fUseBP,
+ /*reserved=*/(uint16_t)entry->reserved,
+ /*type=*/(FRAME_TYPE)entry->cbFrame,
});
}
return fpo;
}
std::string FPO::entry_t::to_string() const {
- using namespace fmt;
std::ostringstream os;
- os << format("{:10} {:<13} {:<9} {:<8} {:<9} {:<5} {:<6} {:<8} {}",
- format("0x{:08x}", rva),
- proc_size, nb_locals, nb_saved_regs, prolog_size, use_bp ? 'Y' : 'N',
- use_seh ? 'Y' : 'N', PE::to_string(type), parameters_size
- );
+ os << fmt::format("{:10} {:<13} {:<9} {:<8} {:<9} {:<5} {:<6} {:<8} {}",
+ fmt::format("{:#010x}", rva), proc_size, nb_locals,
+ nb_saved_regs, prolog_size, use_bp ? 'Y' : 'N',
+ use_seh ? 'Y' : 'N', PE::to_string(type), parameters_size);
return os.str();
}
std::string FPO::to_string() const {
- using namespace fmt;
std::ostringstream os;
- os << format("{:10} {:13} {:9} {:8} {:9} {:5} {:6} {:8} {}\n", "RVA", "Proc Size",
- "Locals", "Regs", "Prolog", "BP", "SEH", "Type", "Params");
+ os << fmt::format("{:10} {:13} {:9} {:8} {:9} {:5} {:6} {:8} {}\n", "RVA",
+ "Proc Size", "Locals", "Regs", "Prolog", "BP", "SEH", "Type",
+ "Params");
for (const entry_t& entry : entries()) {
os << entry.to_string() << '\n';
}
diff --git a/deps/LIEF/src/PE/debug/PDBChecksum.cpp b/deps/LIEF/src/PE/debug/PDBChecksum.cpp
index 7d631d48a15..f80dcbfe49f 100644
--- a/deps/LIEF/src/PE/debug/PDBChecksum.cpp
+++ b/deps/LIEF/src/PE/debug/PDBChecksum.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -31,9 +31,9 @@ HASH_ALGO from_string(const std::string& str) {
return HASH_ALGO::UNKNOWN;
}
-std::unique_ptr<PDBChecksum> PDBChecksum::parse(
- const details::pe_debug& hdr, Section* section, span<uint8_t> payload
-) {
+std::unique_ptr<PDBChecksum> PDBChecksum::parse(const details::pe_debug& hdr,
+ Section* section,
+ span<uint8_t> payload) {
SpanStream strm(payload);
auto algo_name = strm.read_string();
if (!algo_name) {
@@ -54,12 +54,11 @@ std::unique_ptr<PDBChecksum> PDBChecksum::parse(
}
std::string PDBChecksum::to_string() const {
- using namespace fmt;
std::ostringstream os;
os << Debug::to_string() << '\n'
<< "PDB Checksum:\n"
- << format(" Algorithm: {}\n", PE::to_string(algorithm()))
- << format(" Hash: {}", to_hex(hash(), 30));
+ << fmt::format(" Algorithm: {}\n", PE::to_string(algorithm()))
+ << fmt::format(" Hash: {}", to_hex(hash(), 30));
return os.str();
}
@@ -67,11 +66,9 @@ std::string PDBChecksum::to_string() const {
const char* to_string(PDBChecksum::HASH_ALGO e) {
switch (e) {
case HASH_ALGO::UNKNOWN:
- default:
- return "UNKNOWN";
+ default: return "UNKNOWN";
- case HASH_ALGO::SHA256:
- return "SHA256";
+ case HASH_ALGO::SHA256: return "SHA256";
}
return "UNKNOWN";
}
diff --git a/deps/LIEF/src/PE/debug/Pogo.cpp b/deps/LIEF/src/PE/debug/Pogo.cpp
index 1e0bab11ca9..6fd86046939 100644
--- a/deps/LIEF/src/PE/debug/Pogo.cpp
+++ b/deps/LIEF/src/PE/debug/Pogo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,20 +22,19 @@
#include <spdlog/fmt/fmt.h>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
void Pogo::accept(Visitor& visitor) const {
visitor.visit(*this);
}
std::string Pogo::to_string() const {
- using namespace fmt;
std::ostringstream os;
os << Debug::to_string() << '\n'
<< "Pogo:\n"
- << format(" Signature: {} (0x{:06x})\n",
- PE::to_string(signature()), (uint32_t)signature());
+ << fmt::format(" Signature: {} ({:#08x})\n", PE::to_string(signature()),
+ (uint32_t)signature());
for (const PogoEntry& pentry : entries()) {
os << " " << pentry << '\n';
@@ -45,19 +44,23 @@ std::string Pogo::to_string() const {
}
const char* to_string(Pogo::SIGNATURES e) {
- #define ENTRY(X) std::pair(Pogo::SIGNATURES::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNKNOWN),
- ENTRY(ZERO),
- ENTRY(LCTG),
- ENTRY(PGI),
+ // clang-format off
+#define ENTRY(X) std::pair(Pogo::SIGNATURES::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(UNKNOWN),
+ ENTRY(ZERO),
+ ENTRY(LCTG),
+ ENTRY(PGI),
+ ENTRY(PGO),
+ ENTRY(PGU),
+ ENTRY(SPGO),
};
- #undef ENTRY
+#undef ENTRY
+ // clang-format on
if (const auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
}
return "UNKNOWN";
}
-} // namespace PE
-} // namespace LIEF
+} // namespace LIEF::PE
diff --git a/deps/LIEF/src/PE/debug/PogoEntry.cpp b/deps/LIEF/src/PE/debug/PogoEntry.cpp
index 6a73b4cfef9..c1ff37c2062 100644
--- a/deps/LIEF/src/PE/debug/PogoEntry.cpp
+++ b/deps/LIEF/src/PE/debug/PogoEntry.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,19 +18,17 @@
#include "spdlog/fmt/fmt.h"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
void PogoEntry::accept(Visitor& visitor) const {
visitor.visit(*this);
}
std::ostream& operator<<(std::ostream& os, const PogoEntry& entry) {
- os << fmt::format("[0x{:06x}, 0x{:06x}] {:20} ({} bytes)",
- entry.start_rva(), entry.start_rva() + entry.size(),
- entry.name(), entry.size());
+ os << fmt::format("[{:#08x}, {:#08x}] {:20} ({} bytes)", entry.start_rva(),
+ entry.start_rva() + entry.size(), entry.name(), entry.size());
return os;
}
-} // namespace PE
-} // namespace LIEF
+} // namespace LIEF::PE
diff --git a/deps/LIEF/src/PE/debug/Repro.cpp b/deps/LIEF/src/PE/debug/Repro.cpp
index 0edec484e4b..b00a249ef3c 100644
--- a/deps/LIEF/src/PE/debug/Repro.cpp
+++ b/deps/LIEF/src/PE/debug/Repro.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,8 +22,8 @@
#include <spdlog/fmt/fmt.h>
#include <spdlog/fmt/ranges.h>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
void Repro::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -40,5 +40,4 @@ std::string Repro::to_string() const {
return os.str();
}
-} // namespace PE
-} // namespace LIEF
+} // namespace LIEF::PE
diff --git a/deps/LIEF/src/PE/debug/VCFeature.cpp b/deps/LIEF/src/PE/debug/VCFeature.cpp
index 6dcd211b30b..4b333c202d8 100644
--- a/deps/LIEF/src/PE/debug/VCFeature.cpp
+++ b/deps/LIEF/src/PE/debug/VCFeature.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,16 +13,16 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+#include <sstream>
+#include <spdlog/fmt/fmt.h>
#include "LIEF/PE/debug/VCFeature.hpp"
#include "LIEF/BinaryStream/SpanStream.hpp"
-#include "logging.hpp"
-
namespace LIEF::PE {
-std::unique_ptr<VCFeature> VCFeature::parse(
- const details::pe_debug& hdr, Section* section, span<uint8_t> payload)
-{
+std::unique_ptr<VCFeature> VCFeature::parse(const details::pe_debug& hdr,
+ Section* section,
+ span<uint8_t> payload) {
SpanStream stream(payload);
auto pre_vc = stream.read<uint32_t>().value_or(0);
@@ -31,15 +31,15 @@ std::unique_ptr<VCFeature> VCFeature::parse(
auto sdk = stream.read<uint32_t>().value_or(0);
auto guardn = stream.read<uint32_t>().value_or(0);
- return std::make_unique<VCFeature>(hdr, section, pre_vc, c_cpp, gs, sdk,
- guardn);
+ return std::make_unique<VCFeature>(hdr, section, pre_vc, c_cpp, gs, sdk, guardn);
}
std::string VCFeature::to_string() const {
std::ostringstream os;
os << Debug::to_string() << '\n'
<< fmt::format(" Counts: Pre-VC++ 11.00={}, C/C++={}, /GS={}, /sdl={}, "
- "guardN={}", pre_vcpp(), c_cpp(), gs(), sdl(), guards());
+ "guardN={}",
+ pre_vcpp(), c_cpp(), gs(), sdl(), guards());
return os.str();
}
diff --git a/deps/LIEF/src/PE/endianness_support.cpp b/deps/LIEF/src/PE/endianness_support.cpp
index a7033cc8848..d610b38a901 100644
--- a/deps/LIEF/src/PE/endianness_support.cpp
+++ b/deps/LIEF/src/PE/endianness_support.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2021 - 2025 R. Thomas
+/* Copyright 2021 - 2026 R. Thomas
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -12,5 +12,4 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-namespace LIEF::PE {
-}
+namespace LIEF::PE {}
diff --git a/deps/LIEF/src/PE/exceptions_info/AArch64/PackedFunction.cpp b/deps/LIEF/src/PE/exceptions_info/AArch64/PackedFunction.cpp
index db45f56ad85..e4551c89273 100644
--- a/deps/LIEF/src/PE/exceptions_info/AArch64/PackedFunction.cpp
+++ b/deps/LIEF/src/PE/exceptions_info/AArch64/PackedFunction.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,40 +20,39 @@
#include "LIEF/PE/exceptions_info/internal_arm64.hpp"
namespace LIEF::PE::unwind_aarch64 {
-std::unique_ptr<PackedFunction> PackedFunction::parse(
- Parser& /*ctx*/, BinaryStream& /*strm*/, uint32_t rva, uint32_t unwind_data
-) {
+std::unique_ptr<PackedFunction> PackedFunction::parse(Parser& /*ctx*/,
+ BinaryStream& /*strm*/,
+ uint32_t rva,
+ uint32_t unwind_data) {
static constexpr auto WIDTH = 20;
auto packed_info = details::arm64_packed_t{unwind_data};
- LIEF_DEBUG("Parsing packed function 0x{:08x}", rva);
+ LIEF_DEBUG("Parsing packed function {:#010x}", rva);
const auto flag = PACKED_FLAGS(unwind_data & 0x3);
- auto func = std::make_unique<PackedFunction>(
- rva, packed_info.function_length(), flag
- );
+ auto func =
+ std::make_unique<PackedFunction>(rva, packed_info.function_length(), flag);
- LIEF_DEBUG(" {:{}}: 0x{:08x}", "Raw Data", WIDTH, unwind_data);
- LIEF_DEBUG(" {:{}}: 0x{:04x}", "Function RVA", WIDTH, rva);
- LIEF_DEBUG(" {:{}}: 0x{:04x}", "Function Length", WIDTH, packed_info.function_length());
- LIEF_DEBUG(" {:{}}: 0x{:04x}", "Frame size", WIDTH, packed_info.frame_size());
+ LIEF_DEBUG(" {:{}}: {:#010x}", "Raw Data", WIDTH, unwind_data);
+ LIEF_DEBUG(" {:{}}: {:#010x}", "Function RVA", WIDTH, rva);
+ LIEF_DEBUG(" {:{}}: {:#010x}", "Function Length", WIDTH,
+ packed_info.function_length());
+ LIEF_DEBUG(" {:{}}: {:#010x}", "Frame size", WIDTH, packed_info.frame_size());
(*func)
- .reg_F(packed_info.RF())
- .reg_I(packed_info.RI())
- .H(packed_info.H())
- .CR(packed_info.CR())
- .frame_size(packed_info.frame_size() * 16)
- ;
+ .reg_F(packed_info.RF())
+ .reg_I(packed_info.RI())
+ .H(packed_info.H())
+ .CR(packed_info.CR())
+ .frame_size(packed_info.frame_size() * 16);
return func;
}
std::string PackedFunction::to_string() const {
- using namespace fmt;
std::ostringstream oss;
oss << "Runtime Packed AArch64 Function {\n"
- << format(" Range(RVA): 0x{:08x} - 0x{:08x}\n", rva_start(), rva_end())
- << format(" Length={} FrameSize=0x{:02x} RegF={} RegI={} H={} CR={}\n",
- length(), frame_size(), reg_F(), reg_I(), H(), CR());
+ << fmt::format(" Range(RVA): {:#010x} - {:#010x}\n", rva_start(), rva_end())
+ << fmt::format(" Length={} FrameSize={:#04x} RegF={} RegI={} H={} CR={}\n",
+ length(), frame_size(), reg_F(), reg_I(), H(), CR());
oss << '}';
return oss.str();
}
diff --git a/deps/LIEF/src/PE/exceptions_info/AArch64/UnpackedFunction.cpp b/deps/LIEF/src/PE/exceptions_info/AArch64/UnpackedFunction.cpp
index d1ca8861212..8f0788d915e 100644
--- a/deps/LIEF/src/PE/exceptions_info/AArch64/UnpackedFunction.cpp
+++ b/deps/LIEF/src/PE/exceptions_info/AArch64/UnpackedFunction.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,19 +29,21 @@ namespace LIEF::PE::unwind_aarch64 {
using epilog_scope_t = UnpackedFunction::epilog_scope_t;
-std::unique_ptr<UnpackedFunction> UnpackedFunction::parse(
- Parser& /*ctx*/, BinaryStream& strm, uint32_t xdata_rva, uint32_t rva
-) {
+std::unique_ptr<UnpackedFunction> UnpackedFunction::parse(Parser& /*ctx*/,
+ BinaryStream& strm,
+ uint32_t xdata_rva,
+ uint32_t rva) {
static constexpr auto WIDTH = 20;
details::arm64_unpacked_t unpacked;
- LIEF_DEBUG("Parsing unpacked function 0x{:08x}", rva);
+ LIEF_DEBUG("Parsing unpacked function {:#010x}", rva);
const uint64_t strm_offset = strm.pos();
auto word1 = strm.read<uint32_t>();
if (!word1) {
- LIEF_WARN("Can't read unpacked exception info (word1, line: {})", __LINE__);
+ LIEF_WARN("Failed to read unpacked exception info (word1, line: {})",
+ __LINE__);
return nullptr;
}
@@ -50,7 +52,8 @@ std::unique_ptr<UnpackedFunction> UnpackedFunction::parse(
if (unpacked.is_extended()) {
auto word2 = strm.read<uint32_t>();
if (!word2) {
- LIEF_WARN("Can't read unpacked exception info (word2, line: {})", __LINE__);
+ LIEF_WARN("Failed to read unpacked exception info (word2, line: {})",
+ __LINE__);
return nullptr;
}
unpacked.data[1] = *word2;
@@ -59,19 +62,19 @@ std::unique_ptr<UnpackedFunction> UnpackedFunction::parse(
auto func = std::make_unique<UnpackedFunction>(rva, unpacked.function_length());
(*func)
- .xdata_rva(xdata_rva)
- .version(unpacked.version())
- .X(unpacked.X())
- .E(unpacked.E())
- .epilog_cnt_offset(unpacked.epilog_count())
- .code_words(unpacked.code_words())
- .is_extended(unpacked.is_extended())
- ;
+ .xdata_rva(xdata_rva)
+ .version(unpacked.version())
+ .X(unpacked.X())
+ .E(unpacked.E())
+ .epilog_cnt_offset(unpacked.epilog_count())
+ .code_words(unpacked.code_words())
+ .is_extended(unpacked.is_extended());
LIEF_DEBUG(" {:{}}: {}", "Extended", WIDTH, unpacked.is_extended());
- LIEF_DEBUG(" {:{}}: 0x{:04x}", "Function RVA", WIDTH, rva);
- LIEF_DEBUG(" {:{}}: 0x{:04x}", "Function Length", WIDTH, unpacked.function_length());
- LIEF_DEBUG(" {:{}}: 0x{:04x}", "Version", WIDTH, unpacked.version());
+ LIEF_DEBUG(" {:{}}: {:#06x}", "Function RVA", WIDTH, rva);
+ LIEF_DEBUG(" {:{}}: {:#06x}", "Function Length", WIDTH,
+ unpacked.function_length());
+ LIEF_DEBUG(" {:{}}: {:#06x}", "Version", WIDTH, unpacked.version());
LIEF_DEBUG(" {:{}}: {}", "Exception Data", WIDTH, unpacked.X());
LIEF_DEBUG(" {:{}}: {}", "Epilog Packed", WIDTH, unpacked.E());
LIEF_DEBUG(" {:{}}: {}", "Code Words", WIDTH, unpacked.code_words());
@@ -89,22 +92,22 @@ std::unique_ptr<UnpackedFunction> UnpackedFunction::parse(
if (unpacked.E() == 0) {
func->epilog_scopes_offset_ = strm.pos() - strm_offset;
if (!strm.read_objects(scopes, ecount)) {
- LIEF_DEBUG("Can't read #{} epilog scopes", ecount);
+ LIEF_DEBUG("Failed to read #{} epilog scopes", ecount);
return func;
}
LIEF_DEBUG(" {:{}}: {}", "Number of scopes (packed)", WIDTH, ecount);
func->epilog_scopes_.reserve(ecount);
std::transform(scopes.begin(), scopes.end(),
std::back_inserter(func->epilog_scopes_),
- [] (uint32_t raw) { return epilog_scope_t::from_raw(raw); }
- );
+ [](uint32_t raw) { return epilog_scope_t::from_raw(raw); });
}
{
func->unwind_code_offset_ = strm.pos() - strm_offset;
std::vector<uint8_t> unwind_bytecode;
- if (!strm.read_data(unwind_bytecode, unpacked.code_words() * sizeof(uint32_t))) {
- LIEF_DEBUG("Can't read unwind bytecode");
+ if (!strm.read_data(unwind_bytecode, unpacked.code_words() * sizeof(uint32_t)))
+ {
+ LIEF_DEBUG("Failed to read unwind bytecode");
return func;
}
func->unwind_code(std::move(unwind_bytecode));
@@ -114,11 +117,11 @@ std::unique_ptr<UnpackedFunction> UnpackedFunction::parse(
func->exception_handler_offset_ = strm.pos() - strm_offset;
auto ehandler_rva = strm.read<uint32_t>();
if (!ehandler_rva) {
- LIEF_DEBUG("Can't read Exception Handler RVA");
+ LIEF_DEBUG("Failed to read exception handler RVA");
return func;
}
- LIEF_DEBUG(" {:{}}: 0x{:08x}", "Exception Handler", WIDTH, *ehandler_rva);
+ LIEF_DEBUG(" {:{}}: {:#010x}", "Exception Handler", WIDTH, *ehandler_rva);
func->exception_handler(*ehandler_rva);
}
@@ -129,29 +132,29 @@ epilog_scope_t epilog_scope_t::from_raw(uint32_t raw) {
details::arm64_epilog_scope_t scope{raw};
return {
- /* .start_offset = */ scope.start_offset(),
- /* .start_index = */scope.start_index(),
- /* .reserved = */scope.reserved(),
+ /* .start_offset = */ scope.start_offset(),
+ /* .start_index = */ scope.start_index(),
+ /* .reserved = */ scope.reserved(),
};
}
std::string UnpackedFunction::to_string() const {
- using namespace fmt;
std::ostringstream oss;
oss << "Runtime Unpacked AArch64 Function {\n";
- oss << format(" Range(RVA): 0x{:08x} - 0x{:08x}\n", rva_start(), rva_end());
- oss << format(" Unwind location (RVA): 0x{:08x}\n", xdata_rva());
- oss << format(" Length={} Vers={} X={} E={}, CodeWords={}\n",
- length(), version(), X(), E(), code_words());
+ oss << fmt::format(" Range(RVA): {:#010x} - {:#010x}\n", rva_start(),
+ rva_end());
+ oss << fmt::format(" Unwind location (RVA): {:#010x}\n", xdata_rva());
+ oss << fmt::format(" Length={} Vers={} X={} E={}, CodeWords={}\n", length(),
+ version(), X(), E(), code_words());
if (X() == 1) {
- oss << format(" Exception Handler: 0x{:08x}\n", exception_handler());
+ oss << fmt::format(" Exception Handler: {:#010x}\n", exception_handler());
}
if (E() == 0) {
- oss << format(" Epilogs={}\n", epilog_count());
+ oss << fmt::format(" Epilogs={}\n", epilog_count());
}
if (E() == 1) {
- oss << format(" Epilogs (offset)=0x{:06x}\n", epilog_offset());
+ oss << fmt::format(" Epilogs (offset)={:#08x}\n", epilog_offset());
}
if (E() == 0) {
@@ -165,10 +168,13 @@ std::string UnpackedFunction::to_string() const {
for (size_t i = 0; i < epilog_scopes_.size(); ++i) {
const epilog_scope_t& scope = epilog_scopes_[i];
- oss << format(" Epilog #{} unwind: (Offset={}, Index={}, Reserved={})\n", i + 1,
- scope.start_offset, scope.start_index, scope.reserved);
+ oss << fmt::format(
+ " Epilog #{} unwind: (Offset={}, Index={}, Reserved={})\n", i + 1,
+ scope.start_offset, scope.start_index, scope.reserved
+ );
- if (uint32_t offset = scope.start_index; offset > 0 && offset < code.size()) {
+ if (uint32_t offset = scope.start_index; offset > 0 && offset < code.size())
+ {
span<const uint8_t> epilog_code = code.subspan(scope.start_index);
SpanStream unwind_stream(epilog_code);
std::ostringstream pretty_code;
diff --git a/deps/LIEF/src/PE/exceptions_info/RuntimeFunctionAArch64.cpp b/deps/LIEF/src/PE/exceptions_info/RuntimeFunctionAArch64.cpp
index fd405ca3013..bdb652dea95 100644
--- a/deps/LIEF/src/PE/exceptions_info/RuntimeFunctionAArch64.cpp
+++ b/deps/LIEF/src/PE/exceptions_info/RuntimeFunctionAArch64.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,17 +29,17 @@
namespace LIEF::PE {
std::unique_ptr<RuntimeFunctionAArch64>
- RuntimeFunctionAArch64::parse(Parser& ctx, BinaryStream& strm)
-{
+ RuntimeFunctionAArch64::parse(Parser& ctx, BinaryStream& strm) {
auto rva_start = strm.read<uint32_t>();
if (!rva_start) {
- LIEF_WARN("Can't read exception info RVA start (line: {})", __LINE__);
+ LIEF_WARN("Failed to read exception info RVA start (line: {})", __LINE__);
return nullptr;
}
auto unwind_data = strm.read<uint32_t>();
if (!unwind_data) {
- LIEF_DEBUG("Can't read exception info unwind data (line: {}, RVA=0x{:08x}, pos={}, size={})",
+ LIEF_DEBUG("Failed to read exception info unwind data (line: {}, "
+ "RVA={:#010x}, pos={}, size={})",
__LINE__, *rva_start, strm.pos(), strm.size());
return nullptr;
}
@@ -59,15 +59,14 @@ std::unique_ptr<RuntimeFunctionAArch64>
*rva_start);
}
- return std::make_unique<RuntimeFunctionAArch64>(*rva_start, /*length*/0, flag);
+ return std::make_unique<RuntimeFunctionAArch64>(*rva_start, /*length*/ 0, flag);
}
std::string RuntimeFunctionAArch64::to_string() const {
- using namespace fmt;
std::ostringstream oss;
oss << "Runtime Unpacked AArch64 Function {\n"
- << format(" Start (RVA): 0x{:08x}\n", rva_start())
- << format(" Flag: {}\n", (int)flag());
+ << fmt::format(" Start (RVA): {:#010x}\n", rva_start())
+ << fmt::format(" Flag: {}\n", (int)flag());
oss << "}\n";
return oss.str();
}
diff --git a/deps/LIEF/src/PE/exceptions_info/RuntimeFunctionX64.cpp b/deps/LIEF/src/PE/exceptions_info/RuntimeFunctionX64.cpp
index 2802d64ae3a..a3e9f496c66 100644
--- a/deps/LIEF/src/PE/exceptions_info/RuntimeFunctionX64.cpp
+++ b/deps/LIEF/src/PE/exceptions_info/RuntimeFunctionX64.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,8 +26,6 @@
#include "frozen.hpp"
#include "internal_utils.hpp"
-#include "LIEF/PE/exceptions_info/internal_x64.hpp"
-
namespace LIEF::PE {
inline bool should_have_handler(const RuntimeFunctionX64::unwind_info_t& info) {
@@ -36,32 +34,31 @@ inline bool should_have_handler(const RuntimeFunctionX64::unwind_info_t& info) {
}
std::unique_ptr<RuntimeFunctionX64>
- RuntimeFunctionX64::parse(Parser& ctx, BinaryStream& strm, bool skip_unwind)
-{
+ RuntimeFunctionX64::parse(Parser& ctx, BinaryStream& strm, bool skip_unwind) {
// From the documentation:
// > The RUNTIME_FUNCTION structure must be DWORD aligned in memory.
strm.align(sizeof(uint32_t));
auto rva_start = strm.read<uint32_t>();
if (!rva_start) {
- LIEF_WARN("Can't read exception info RVA start (line: {})", __LINE__);
+ LIEF_WARN("Failed to read exception info RVA start (line: {})", __LINE__);
return nullptr;
}
auto rva_end = strm.read<uint32_t>();
if (!rva_end) {
- LIEF_WARN("Can't read exception info RVA end (line: {})", __LINE__);
+ LIEF_WARN("Failed to read exception info RVA end (line: {})", __LINE__);
return nullptr;
}
auto unwind_rva = strm.read<uint32_t>();
if (!unwind_rva) {
- LIEF_WARN("Can't read exception info unwind rva (line: {})", __LINE__);
+ LIEF_WARN("Failed to read exception info unwind RVA (line: {})", __LINE__);
return nullptr;
}
auto rfunc =
- std::make_unique<RuntimeFunctionX64>(*rva_start, *rva_end, *unwind_rva);
+ std::make_unique<RuntimeFunctionX64>(*rva_start, *rva_end, *unwind_rva);
if (!skip_unwind) {
ctx.memoize(*rfunc);
@@ -75,7 +72,7 @@ std::unique_ptr<RuntimeFunctionX64>
{
ScopedStream unwind_strm(ctx.stream(), unwind_off);
if (auto is_ok = parse_unwind(ctx, *unwind_strm, *rfunc); !is_ok) {
- LIEF_DEBUG("Failed to parse unwind data for function: 0x{:06x}",
+ LIEF_DEBUG("Failed to parse unwind data for function: {:#08x}",
rfunc->rva_start());
return rfunc;
}
@@ -85,8 +82,7 @@ std::unique_ptr<RuntimeFunctionX64>
}
ok_error_t RuntimeFunctionX64::parse_unwind(Parser& ctx, BinaryStream& strm,
- RuntimeFunctionX64& func)
-{
+ RuntimeFunctionX64& func) {
auto VersionFlags = strm.read<uint8_t>();
if (!VersionFlags) {
return make_error_code(VersionFlags.error());
@@ -113,7 +109,7 @@ ok_error_t RuntimeFunctionX64::parse_unwind(Parser& ctx, BinaryStream& strm,
const uint8_t frame_reg = *FrameInfo & 0x0f;
const uint8_t frame_off = (*VersionFlags >> 4) & 0x0f;
- LIEF_DEBUG("Parsing unwind info for function 0x{:08x}", func.rva_start());
+ LIEF_DEBUG("Parsing unwind info for function {:#010x}", func.rva_start());
LIEF_DEBUG(" Version: {}", version);
LIEF_DEBUG(" Flags: {}", flags);
LIEF_DEBUG(" SizeOfProlog: {}", *SizeOfProlog);
@@ -143,30 +139,33 @@ ok_error_t RuntimeFunctionX64::parse_unwind(Parser& ctx, BinaryStream& strm,
if (!handler) {
return make_error_code(handler.error());
}
- LIEF_DEBUG(" Handler: 0x{:06x}", *handler);
+ LIEF_DEBUG(" Handler: {:#08x}", *handler);
info.handler = *handler;
}
if (info.has(UNWIND_FLAGS::CHAIN_INFO)) {
- LIEF_DEBUG(" Chained!");
- std::unique_ptr<RuntimeFunctionX64> chained = parse(ctx, strm, /*skip_unwind=*/true);
+ LIEF_DEBUG(" Chained");
+ std::unique_ptr<RuntimeFunctionX64> chained =
+ parse(ctx, strm, /*skip_unwind=*/true);
if (chained != nullptr) {
- LIEF_DEBUG(" chain: 0x{:08x} - 0x{:08x} - 0x{:08x}",
- chained->rva_start(), chained->rva_end(), chained->unwind_rva());
+ LIEF_DEBUG(" chain: {:#010x} - {:#010x} - {:#010x}", chained->rva_start(),
+ chained->rva_end(), chained->unwind_rva());
ExceptionInfo* link = ctx.find_exception_info(chained->rva_start());
if (link != nullptr) {
- LIEF_DEBUG(" chain (found): 0x{:08x} - 0x{:08x} - 0x{:08x}",
+ LIEF_DEBUG(" chain (found): {:#010x} - {:#010x} - {:#010x}",
link->rva_start(), link->as<RuntimeFunctionX64>()->rva_end(),
link->as<RuntimeFunctionX64>()->unwind_rva());
assert(link->arch() == ExceptionInfo::ARCH::X86_64);
info.chained = link->as<RuntimeFunctionX64>();
} else {
- LIEF_DEBUG("RuntimeFunctionX64 0x{:06x}: Can't find linked chained info",
- func.rva_start());
+ LIEF_DEBUG(
+ "RuntimeFunctionX64 {:#08x}: Failed to find linked chained info",
+ func.rva_start()
+ );
ctx.add_non_resolved(func, chained->rva_start());
}
} else {
- LIEF_WARN("RuntimeFunctionX64 0x{:06x}: chained info corrupted",
+ LIEF_WARN("RuntimeFunctionX64 {:#08x}: chained info corrupted",
func.rva_start());
}
}
@@ -176,8 +175,7 @@ ok_error_t RuntimeFunctionX64::parse_unwind(Parser& ctx, BinaryStream& strm,
}
RuntimeFunctionX64::unwind_info_t::opcodes_t
- RuntimeFunctionX64::unwind_info_t::opcodes() const
-{
+ RuntimeFunctionX64::unwind_info_t::opcodes() const {
using namespace unwind_x64;
opcodes_t out;
@@ -210,9 +208,9 @@ std::string RuntimeFunctionX64::unwind_info_t::to_string() const {
<< " Flags: " << (int)flags << '\n'
<< " Size of prologue: " << (int)sizeof_prologue << '\n';
- opcodes_t opcodes = this->opcodes();
- oss
- << fmt::format(" Nb opcodes: {} ({})\n", (int)count_opcodes, opcodes.size());
+ opcodes_t opcodes = this->opcodes();
+ oss << fmt::format(" Nb opcodes: {} ({})\n", (int)count_opcodes,
+ opcodes.size());
if (!opcodes.empty()) {
oss << " Opcodes: [\n";
@@ -224,14 +222,14 @@ std::string RuntimeFunctionX64::unwind_info_t::to_string() const {
if (chained != nullptr) {
oss << " Chained: {\n"
- << fmt::format(" RVA: [0x{:06x}, 0x{:06x}]\n", chained->rva_start(),
+ << fmt::format(" RVA: [{:#08x}, {:#08x}]\n", chained->rva_start(),
chained->rva_end())
- << fmt::format(" Unwind RVA: 0x{:06x}\n", chained->unwind_rva())
+ << fmt::format(" Unwind RVA: {:#08x}\n", chained->unwind_rva())
<< " }\n";
}
if (handler) {
- oss << fmt::format(" Handler: 0x{:06x}\n", *handler);
+ oss << fmt::format(" Handler: {:#08x}\n", *handler);
}
oss << "}";
return oss.str();
@@ -240,9 +238,9 @@ std::string RuntimeFunctionX64::unwind_info_t::to_string() const {
std::string RuntimeFunctionX64::to_string() const {
std::ostringstream oss;
oss << "RuntimeFunctionX64 {\n";
- oss << fmt::format(" RVA: [0x{:06x}, 0x{:06x}] ({} bytes)\n",
- rva_start(), rva_end(), rva_end() - rva_start())
- << fmt::format(" Unwind info RVA: 0x{:06x}\n", unwind_rva());
+ oss << fmt::format(" RVA: [{:#08x}, {:#08x}] ({} bytes)\n", rva_start(),
+ rva_end(), rva_end() - rva_start())
+ << fmt::format(" Unwind info RVA: {:#08x}\n", unwind_rva());
if (const unwind_info_t* info = unwind_info()) {
oss << indent(info->to_string(), 2);
}
@@ -251,21 +249,14 @@ std::string RuntimeFunctionX64::to_string() const {
}
const char* to_string(RuntimeFunctionX64::UNWIND_OPCODES e) {
- #define ENTRY(X) std::pair(RuntimeFunctionX64::UNWIND_OPCODES::X, #X)
- STRING_MAP enums2str {
- ENTRY(ALLOC_LARGE),
- ENTRY(ALLOC_SMALL),
- ENTRY(EPILOG),
- ENTRY(PUSH_MACHFRAME),
- ENTRY(PUSH_NONVOL),
- ENTRY(SAVE_NONVOL),
- ENTRY(SAVE_NONVOL_FAR),
- ENTRY(SAVE_XMM128),
- ENTRY(SAVE_XMM128_FAR),
- ENTRY(SET_FPREG),
- ENTRY(SPARE),
+#define ENTRY(X) std::pair(RuntimeFunctionX64::UNWIND_OPCODES::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(ALLOC_LARGE), ENTRY(ALLOC_SMALL), ENTRY(EPILOG),
+ ENTRY(PUSH_MACHFRAME), ENTRY(PUSH_NONVOL), ENTRY(SAVE_NONVOL),
+ ENTRY(SAVE_NONVOL_FAR), ENTRY(SAVE_XMM128), ENTRY(SAVE_XMM128_FAR),
+ ENTRY(SET_FPREG), ENTRY(SPARE),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -274,26 +265,13 @@ const char* to_string(RuntimeFunctionX64::UNWIND_OPCODES e) {
}
const char* to_string(RuntimeFunctionX64::UNWIND_REG e) {
- #define ENTRY(X) std::pair(RuntimeFunctionX64::UNWIND_REG::X, #X)
- STRING_MAP enums2str {
- ENTRY(R10),
- ENTRY(R11),
- ENTRY(R12),
- ENTRY(R13),
- ENTRY(R14),
- ENTRY(R15),
- ENTRY(R8),
- ENTRY(R9),
- ENTRY(RAX),
- ENTRY(RBP),
- ENTRY(RBX),
- ENTRY(RCX),
- ENTRY(RDI),
- ENTRY(RDX),
- ENTRY(RSI),
- ENTRY(RSP),
+#define ENTRY(X) std::pair(RuntimeFunctionX64::UNWIND_REG::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(R10), ENTRY(R11), ENTRY(R12), ENTRY(R13), ENTRY(R14), ENTRY(R15),
+ ENTRY(R8), ENTRY(R9), ENTRY(RAX), ENTRY(RBP), ENTRY(RBX), ENTRY(RCX),
+ ENTRY(RDI), ENTRY(RDX), ENTRY(RSI), ENTRY(RSP),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -303,11 +281,9 @@ const char* to_string(RuntimeFunctionX64::UNWIND_REG e) {
const char* to_string(RuntimeFunctionX64::UNWIND_FLAGS op) {
- switch(op) {
- default:
- return "UNKNOWN";
- case RuntimeFunctionX64::UNWIND_FLAGS::CHAIN_INFO:
- return "CHAIN_INFO";
+ switch (op) {
+ default: return "UNKNOWN";
+ case RuntimeFunctionX64::UNWIND_FLAGS::CHAIN_INFO: return "CHAIN_INFO";
case RuntimeFunctionX64::UNWIND_FLAGS::EXCEPTION_HANDLER:
return "EXCEPTION_HANDLER";
case RuntimeFunctionX64::UNWIND_FLAGS::TERMINATE_HANDLER:
diff --git a/deps/LIEF/src/PE/exceptions_info/UnwindAArch64Decoder.cpp b/deps/LIEF/src/PE/exceptions_info/UnwindAArch64Decoder.cpp
index d71845ea216..620a901b3fb 100644
--- a/deps/LIEF/src/PE/exceptions_info/UnwindAArch64Decoder.cpp
+++ b/deps/LIEF/src/PE/exceptions_info/UnwindAArch64Decoder.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,7 +19,6 @@
#include "logging.hpp"
namespace LIEF::PE::unwind_aarch64 {
-using namespace fmt;
template<>
bool Decoder::decode<OPCODES::ALLOC_S>(bool is_prologue) {
@@ -69,8 +68,7 @@ bool Decoder::decode<OPCODES::SAVE_REGP>(bool is_prologue) {
uint32_t reg = ((((chunk_1 & 0x03) << 8) | (chunk_2 & 0xC0)) >> 6) + 19;
uint32_t off = (chunk_2 & 0x3F) << 3;
- log("{} x{}, x{}, [sp, #{}]", is_prologue ? "stp" : "ldp",
- reg, reg + 1, off);
+ log("{} x{}, x{}, [sp, #{}]", is_prologue ? "stp" : "ldp", reg, reg + 1, off);
return false;
}
@@ -207,8 +205,7 @@ bool Decoder::decode<OPCODES::ALLOC_L>(bool is_prologue) {
template<>
bool Decoder::decode<OPCODES::SETFP>(bool is_prologue) {
[[maybe_unused]] auto _ = read_u8();
- log("mov {}, {}", is_prologue ? "fp" : "sp",
- is_prologue ? "sp" : "fp");
+ log("mov {}, {}", is_prologue ? "fp" : "sp", is_prologue ? "sp" : "fp");
return false;
}
@@ -218,21 +215,20 @@ bool Decoder::decode<OPCODES::ADDFP>(bool is_prologue) {
auto CH1 = read_u8();
uint32_t nb_bytes = CH1 << 3;
- log("{} {}, {}, #{}", is_prologue ? "add" : "sub",
- is_prologue ? "fp" : "sp",
- is_prologue ? "sp" : "fp", nb_bytes);
+ log("{} {}, {}, #{}", is_prologue ? "add" : "sub", is_prologue ? "fp" : "sp",
+ is_prologue ? "sp" : "fp", nb_bytes);
return false;
}
template<>
-bool Decoder::decode<OPCODES::NOP>(bool/*is_prologue*/) {
+bool Decoder::decode<OPCODES::NOP>(bool /*is_prologue*/) {
[[maybe_unused]] auto _ = read_u8();
log("nop");
return false;
}
template<>
-bool Decoder::decode<OPCODES::END>(bool/*is_prologue*/) {
+bool Decoder::decode<OPCODES::END>(bool /*is_prologue*/) {
[[maybe_unused]] auto _ = read_u8();
log("end");
return true;
@@ -307,14 +303,13 @@ bool Decoder::decode<OPCODES::SAVE_ANY_REG>(bool is_prologue) {
if (is_paired) {
lognf("{} ", is_paired ? (is_prologue ? "stp" : "ldp") :
- (is_prologue ? "str" : "ldr"));
+ (is_prologue ? "str" : "ldr"));
}
char reg_prefix = 'x';
if (reg_kind == 1) {
reg_prefix = 'd';
- }
- else if (reg_kind == 2) {
+ } else if (reg_kind == 2) {
reg_prefix = 'q';
}
@@ -325,8 +320,7 @@ bool Decoder::decode<OPCODES::SAVE_ANY_REG>(bool is_prologue) {
}
if (write_back) {
- is_prologue ? log("[sp, #-{}]!", stack_off) :
- log("[sp], #{}", stack_off);
+ is_prologue ? log("[sp, #-{}]!", stack_off) : log("[sp], #{}", stack_off);
} else {
log("[sp, #{}]", stack_off);
}
@@ -442,35 +436,36 @@ bool Decoder::decode<OPCODES::PAC_SIGN_LR>(bool is_prologue) {
}
static constexpr auto HANDLERS = {
- std::make_tuple(0xe0, 0x00, 1, &Decoder::decode<OPCODES::ALLOC_S>),
- std::make_tuple(0xe0, 0x20, 1, &Decoder::decode<OPCODES::SAVE_R19R20_X>),
- std::make_tuple(0xc0, 0x40, 1, &Decoder::decode<OPCODES::SAVE_FPLR>),
- std::make_tuple(0xc0, 0x80, 1, &Decoder::decode<OPCODES::SAVE_FPLR_X>),
- std::make_tuple(0xf8, 0xc0, 2, &Decoder::decode<OPCODES::ALLOC_M>),
- std::make_tuple(0xfc, 0xc8, 2, &Decoder::decode<OPCODES::SAVE_REGP>),
- std::make_tuple(0xfc, 0xcc, 2, &Decoder::decode<OPCODES::SAVE_REGP_X>),
- std::make_tuple(0xfc, 0xd0, 2, &Decoder::decode<OPCODES::SAVE_REG>),
- std::make_tuple(0xfe, 0xd4, 2, &Decoder::decode<OPCODES::SAVE_REG_X>),
- std::make_tuple(0xfe, 0xd6, 2, &Decoder::decode<OPCODES::SAVE_LRPAIR>),
- std::make_tuple(0xfe, 0xd8, 2, &Decoder::decode<OPCODES::SAVE_FREGP>),
- std::make_tuple(0xfe, 0xda, 2, &Decoder::decode<OPCODES::SAVE_FREGP_X>),
- std::make_tuple(0xfe, 0xdc, 2, &Decoder::decode<OPCODES::SAVE_FREG>),
- std::make_tuple(0xff, 0xde, 2, &Decoder::decode<OPCODES::SAVE_FREG_X>),
- std::make_tuple(0xff, 0xdf, 2, &Decoder::decode<OPCODES::ALLOC_Z>),
- std::make_tuple(0xff, 0xe0, 4, &Decoder::decode<OPCODES::ALLOC_L>),
- std::make_tuple(0xff, 0xe1, 1, &Decoder::decode<OPCODES::SETFP>),
- std::make_tuple(0xff, 0xe2, 2, &Decoder::decode<OPCODES::ADDFP>),
- std::make_tuple(0xff, 0xe3, 1, &Decoder::decode<OPCODES::NOP>),
- std::make_tuple(0xff, 0xe4, 1, &Decoder::decode<OPCODES::END>),
- std::make_tuple(0xff, 0xe5, 1, &Decoder::decode<OPCODES::END_C>),
- std::make_tuple(0xff, 0xe6, 1, &Decoder::decode<OPCODES::SAVE_NEXT>),
- std::make_tuple(0xff, 0xe7, 3, &Decoder::decode<OPCODES::E7>),
- std::make_tuple(0xff, 0xe8, 1, &Decoder::decode<OPCODES::TRAP_FRAME>),
- std::make_tuple(0xff, 0xe9, 1, &Decoder::decode<OPCODES::MACHINE_FRAME>),
- std::make_tuple(0xff, 0xea, 1, &Decoder::decode<OPCODES::CONTEXT>),
- std::make_tuple(0xff, 0xeb, 1, &Decoder::decode<OPCODES::EC_CONTEXT>),
- std::make_tuple(0xff, 0xec, 1, &Decoder::decode<OPCODES::CLEAR_UNWOUND_TO_CALL>),
- std::make_tuple(0xff, 0xfc, 1, &Decoder::decode<OPCODES::PAC_SIGN_LR>),
+ std::make_tuple(0xe0, 0x00, 1, &Decoder::decode<OPCODES::ALLOC_S>),
+ std::make_tuple(0xe0, 0x20, 1, &Decoder::decode<OPCODES::SAVE_R19R20_X>),
+ std::make_tuple(0xc0, 0x40, 1, &Decoder::decode<OPCODES::SAVE_FPLR>),
+ std::make_tuple(0xc0, 0x80, 1, &Decoder::decode<OPCODES::SAVE_FPLR_X>),
+ std::make_tuple(0xf8, 0xc0, 2, &Decoder::decode<OPCODES::ALLOC_M>),
+ std::make_tuple(0xfc, 0xc8, 2, &Decoder::decode<OPCODES::SAVE_REGP>),
+ std::make_tuple(0xfc, 0xcc, 2, &Decoder::decode<OPCODES::SAVE_REGP_X>),
+ std::make_tuple(0xfc, 0xd0, 2, &Decoder::decode<OPCODES::SAVE_REG>),
+ std::make_tuple(0xfe, 0xd4, 2, &Decoder::decode<OPCODES::SAVE_REG_X>),
+ std::make_tuple(0xfe, 0xd6, 2, &Decoder::decode<OPCODES::SAVE_LRPAIR>),
+ std::make_tuple(0xfe, 0xd8, 2, &Decoder::decode<OPCODES::SAVE_FREGP>),
+ std::make_tuple(0xfe, 0xda, 2, &Decoder::decode<OPCODES::SAVE_FREGP_X>),
+ std::make_tuple(0xfe, 0xdc, 2, &Decoder::decode<OPCODES::SAVE_FREG>),
+ std::make_tuple(0xff, 0xde, 2, &Decoder::decode<OPCODES::SAVE_FREG_X>),
+ std::make_tuple(0xff, 0xdf, 2, &Decoder::decode<OPCODES::ALLOC_Z>),
+ std::make_tuple(0xff, 0xe0, 4, &Decoder::decode<OPCODES::ALLOC_L>),
+ std::make_tuple(0xff, 0xe1, 1, &Decoder::decode<OPCODES::SETFP>),
+ std::make_tuple(0xff, 0xe2, 2, &Decoder::decode<OPCODES::ADDFP>),
+ std::make_tuple(0xff, 0xe3, 1, &Decoder::decode<OPCODES::NOP>),
+ std::make_tuple(0xff, 0xe4, 1, &Decoder::decode<OPCODES::END>),
+ std::make_tuple(0xff, 0xe5, 1, &Decoder::decode<OPCODES::END_C>),
+ std::make_tuple(0xff, 0xe6, 1, &Decoder::decode<OPCODES::SAVE_NEXT>),
+ std::make_tuple(0xff, 0xe7, 3, &Decoder::decode<OPCODES::E7>),
+ std::make_tuple(0xff, 0xe8, 1, &Decoder::decode<OPCODES::TRAP_FRAME>),
+ std::make_tuple(0xff, 0xe9, 1, &Decoder::decode<OPCODES::MACHINE_FRAME>),
+ std::make_tuple(0xff, 0xea, 1, &Decoder::decode<OPCODES::CONTEXT>),
+ std::make_tuple(0xff, 0xeb, 1, &Decoder::decode<OPCODES::EC_CONTEXT>),
+ std::make_tuple(0xff, 0xec, 1,
+ &Decoder::decode<OPCODES::CLEAR_UNWOUND_TO_CALL>),
+ std::make_tuple(0xff, 0xfc, 1, &Decoder::decode<OPCODES::PAC_SIGN_LR>),
};
ok_error_t Decoder::run(bool prologue) {
@@ -491,7 +486,7 @@ ok_error_t Decoder::run(bool prologue) {
found = true;
- lognf("0x{:04x} ", start_pos);
+ lognf("{:#06x} ", start_pos);
{
ScopedStream scoped(*stream_);
std::vector<uint8_t> bytes;
@@ -528,7 +523,6 @@ ok_error_t Decoder::run(bool prologue) {
LIEF_DEBUG("{}:{}", __FUNCTION__, __LINE__);
return make_error_code(lief_errors::read_error);
}
-
}
return ok();
}
diff --git a/deps/LIEF/src/PE/exceptions_info/UnwindAArch64Decoder.hpp b/deps/LIEF/src/PE/exceptions_info/UnwindAArch64Decoder.hpp
index be40cb14242..5618f3a753d 100644
--- a/deps/LIEF/src/PE/exceptions_info/UnwindAArch64Decoder.hpp
+++ b/deps/LIEF/src/PE/exceptions_info/UnwindAArch64Decoder.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -41,20 +41,16 @@ class Decoder {
};
Decoder() = delete;
Decoder(BinaryStream& stream) :
- ostream_(nullptr),
- stream_(&stream)
- {}
+ stream_(&stream) {}
Decoder(BinaryStream& stream, std::ostream& os) :
ostream_(&os),
- stream_(&stream)
- {}
+ stream_(&stream) {}
Decoder(BinaryStream& stream, std::ostream& os, const outstream_opt_t& opt) :
ostream_(&os),
stream_(&stream),
- opt_(opt)
- {}
+ opt_(opt) {}
ok_error_t run(bool prologue);
@@ -77,13 +73,13 @@ class Decoder {
return *this;
}
- template <typename... Args>
- Decoder& log(const char *fmt, const Args &... args) {
+ template<typename... Args>
+ Decoder& log(const char* fmt, const Args&... args) {
return log(fmt::format(fmt::runtime(fmt), args...));
}
- template <typename... Args>
- Decoder& lognf(const char *fmt, const Args &... args) {
+ template<typename... Args>
+ Decoder& lognf(const char* fmt, const Args&... args) {
return log(fmt::format(fmt::runtime(fmt), args...), /*flush=*/false);
}
@@ -110,5 +106,3 @@ class Decoder {
}
#endif
-
-
diff --git a/deps/LIEF/src/PE/exceptions_info/UnwindCodeX64.cpp b/deps/LIEF/src/PE/exceptions_info/UnwindCodeX64.cpp
index 8c00bc8f2ea..0afba8b800d 100644
--- a/deps/LIEF/src/PE/exceptions_info/UnwindCodeX64.cpp
+++ b/deps/LIEF/src/PE/exceptions_info/UnwindCodeX64.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,9 +22,9 @@
namespace LIEF::PE::unwind_x64 {
-std::unique_ptr<Code> Code::create_from(
- const RuntimeFunctionX64::unwind_info_t& info, SpanStream& stream)
-{
+std::unique_ptr<Code>
+ Code::create_from(const RuntimeFunctionX64::unwind_info_t& info,
+ SpanStream& stream) {
auto op = stream.read<details::unwind_code_t>();
if (!op) {
return nullptr;
@@ -37,21 +37,21 @@ std::unique_ptr<Code> Code::create_from(
return std::make_unique<PushNonVol>(REG(op->op_info()), pos);
case OPCODE::ALLOC_LARGE:
- {
- if (op->op_info() == 0) {
- auto size = stream.read<uint16_t>();
- if (!size) {
- return nullptr;
- }
- return std::make_unique<Alloc>(opcode, pos, *size * 8);
- }
-
- auto size = stream.read<uint32_t>();
+ {
+ if (op->op_info() == 0) {
+ auto size = stream.read<uint16_t>();
if (!size) {
return nullptr;
}
- return std::make_unique<Alloc>(opcode, pos, *size);
+ return std::make_unique<Alloc>(opcode, pos, *size * 8);
+ }
+
+ auto size = stream.read<uint32_t>();
+ if (!size) {
+ return nullptr;
}
+ return std::make_unique<Alloc>(opcode, pos, *size);
+ }
case OPCODE::ALLOC_SMALL:
return std::make_unique<Alloc>(opcode, pos, (op->op_info() + 1) * 8);
@@ -60,82 +60,81 @@ std::unique_ptr<Code> Code::create_from(
return std::make_unique<SetFPReg>(REG(info.frame_reg), pos);
case OPCODE::SAVE_NONVOL:
- {
- auto offset = stream.read<uint16_t>();
- if (!offset) {
- return nullptr;
- }
- return std::make_unique<SaveNonVolatile>(opcode, REG(op->op_info()),
- pos, *offset * 8);
+ {
+ auto offset = stream.read<uint16_t>();
+ if (!offset) {
+ return nullptr;
}
+ return std::make_unique<SaveNonVolatile>(opcode, REG(op->op_info()), pos,
+ *offset * 8);
+ }
case OPCODE::SAVE_NONVOL_FAR:
- {
- auto offset = stream.read<uint32_t>();
- if (!offset) {
- return nullptr;
- }
- return std::make_unique<SaveNonVolatile>(opcode, REG(op->op_info()),
- pos, *offset);
+ {
+ auto offset = stream.read<uint32_t>();
+ if (!offset) {
+ return nullptr;
}
+ return std::make_unique<SaveNonVolatile>(opcode, REG(op->op_info()), pos,
+ *offset);
+ }
case OPCODE::SAVE_XMM128:
- {
- auto offset = stream.read<uint16_t>();
- if (!offset) {
- return nullptr;
- }
- return std::make_unique<SaveXMM128>(opcode, op->op_info(), pos, *offset * 16);
+ {
+ auto offset = stream.read<uint16_t>();
+ if (!offset) {
+ return nullptr;
}
+ return std::make_unique<SaveXMM128>(opcode, op->op_info(), pos,
+ *offset * 16);
+ }
case OPCODE::SAVE_XMM128_FAR:
- {
- auto offset = stream.read<uint32_t>();
- if (!offset) {
- return nullptr;
- }
- return std::make_unique<SaveXMM128>(opcode, op->op_info(), pos, *offset);
+ {
+ auto offset = stream.read<uint32_t>();
+ if (!offset) {
+ return nullptr;
}
+ return std::make_unique<SaveXMM128>(opcode, op->op_info(), pos, *offset);
+ }
case OPCODE::PUSH_MACHFRAME:
return std::make_unique<PushMachFrame>(op->op_info(), pos);
case OPCODE::EPILOG:
- {
- auto offset = stream.read<uint16_t>();
- if (!offset) {
- return nullptr;
- }
+ {
+ auto offset = stream.read<uint16_t>();
+ if (!offset) {
+ return nullptr;
+ }
- if (info.version == 1) {
- return std::make_unique<SaveXMM128>(OPCODE::SAVE_XMM128, op->op_info(),
- pos, *offset * 16);
- }
- return std::make_unique<Epilog>(op->op_info(), op->opcode.code_offset);
+ if (info.version == 1) {
+ return std::make_unique<SaveXMM128>(OPCODE::SAVE_XMM128, op->op_info(),
+ pos, *offset * 16);
}
+ return std::make_unique<Epilog>(op->op_info(), op->opcode.code_offset);
+ }
case OPCODE::SPARE:
- {
- auto offset = stream.read<uint32_t>();
- if (!offset) {
- return nullptr;
- }
+ {
+ auto offset = stream.read<uint32_t>();
+ if (!offset) {
+ return nullptr;
+ }
- if (info.version == 1) {
- return std::make_unique<SaveXMM128>(opcode, op->op_info(), pos, *offset);
- }
- return std::make_unique<Spare>();
+ if (info.version == 1) {
+ return std::make_unique<SaveXMM128>(opcode, op->op_info(), pos, *offset);
}
+ return std::make_unique<Spare>();
+ }
- default:
- LIEF_WARN("Unknown opcode: {}", op->op());
- return nullptr;
+ default: LIEF_WARN("Unknown opcode: {}", op->op()); return nullptr;
}
return nullptr;
}
std::string Code::to_string() const {
- return fmt::format("0x{:02x} {}", pos_, LIEF::PE::to_string(opcode_));
+ return fmt::format("{:#04x} {}", pos_, LIEF::PE::to_string(opcode_));
}
std::string Alloc::to_string() const {
@@ -143,33 +142,29 @@ std::string Alloc::to_string() const {
}
std::string PushNonVol::to_string() const {
- return fmt::format("{} reg={}", Code::to_string(),
- LIEF::PE::to_string(reg()));
+ return fmt::format("{} reg={}", Code::to_string(), LIEF::PE::to_string(reg()));
}
std::string PushMachFrame::to_string() const {
- return fmt::format("{} value={}", Code::to_string(),
- (bool)value());
+ return fmt::format("{} value={}", Code::to_string(), (bool)value());
}
std::string SetFPReg::to_string() const {
- return fmt::format("{} reg={} ", Code::to_string(),
- LIEF::PE::to_string(reg()));
+ return fmt::format("{} reg={} ", Code::to_string(), LIEF::PE::to_string(reg()));
}
std::string SaveNonVolatile::to_string() const {
- return fmt::format("{} reg={}, offset=0x{:06x}", Code::to_string(),
+ return fmt::format("{} reg={}, offset={:#08x}", Code::to_string(),
LIEF::PE::to_string(reg()), offset());
}
std::string SaveXMM128::to_string() const {
- return fmt::format("{} reg=XMM{}, offset=0x{:06x}", Code::to_string(),
- num(), offset());
+ return fmt::format("{} reg=XMM{}, offset={:#08x}", Code::to_string(), num(),
+ offset());
}
std::string Epilog::to_string() const {
- return fmt::format("EPILOG flags={}, size={}",
- flags(), size());
+ return fmt::format("EPILOG flags={}, size={}", flags(), size());
}
}
diff --git a/deps/LIEF/src/PE/hash.cpp b/deps/LIEF/src/PE/hash.cpp
index 428db39823f..c8b3db625e6 100644
--- a/deps/LIEF/src/PE/hash.cpp
+++ b/deps/LIEF/src/PE/hash.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,11 +15,79 @@
*/
#include "LIEF/PE/hash.hpp"
-#include "LIEF/PE.hpp"
+#include "LIEF/PE/Parser.hpp"
+#include "LIEF/PE/Section.hpp"
+#include "LIEF/PE/TLS.hpp"
+#include "LIEF/PE/Export.hpp"
+#include "LIEF/PE/ExportEntry.hpp"
+#include "LIEF/PE/Import.hpp"
+#include "LIEF/PE/ImportEntry.hpp"
+#include "LIEF/PE/DelayImport.hpp"
+#include "LIEF/PE/DelayImportEntry.hpp"
+#include "LIEF/PE/DataDirectory.hpp"
+#include "LIEF/PE/ResourcesManager.hpp"
+#include "LIEF/PE/ResourceData.hpp"
+#include "LIEF/PE/ResourceNode.hpp"
+#include "LIEF/PE/ResourceDirectory.hpp"
+#include "LIEF/PE/resources/ResourceAccelerator.hpp"
+#include "LIEF/PE/resources/ResourceDialog.hpp"
+#include "LIEF/PE/resources/ResourceDialogRegular.hpp"
+#include "LIEF/PE/resources/ResourceDialogExtended.hpp"
+#include "LIEF/PE/resources/ResourceIcon.hpp"
+#include "LIEF/PE/resources/ResourceStringFileInfo.hpp"
+#include "LIEF/PE/resources/ResourceStringTable.hpp"
+#include "LIEF/PE/resources/ResourceVarFileInfo.hpp"
+#include "LIEF/PE/resources/ResourceVar.hpp"
+#include "LIEF/PE/resources/ResourceVersion.hpp"
+#include "LIEF/PE/RichEntry.hpp"
+#include "LIEF/PE/RichHeader.hpp"
+#include "LIEF/PE/Relocation.hpp"
+#include "LIEF/PE/RelocationEntry.hpp"
+#include "LIEF/PE/Builder.hpp"
+#include "LIEF/PE/Binary.hpp"
+#include "LIEF/PE/debug/Debug.hpp"
+#include "LIEF/PE/debug/CodeView.hpp"
+#include "LIEF/PE/debug/Pogo.hpp"
+#include "LIEF/PE/debug/PogoEntry.hpp"
+#include "LIEF/PE/debug/Repro.hpp"
+#include "LIEF/PE/debug/CodeViewPDB.hpp"
+#include "LIEF/PE/DosHeader.hpp"
+#include "LIEF/PE/Header.hpp"
+#include "LIEF/PE/OptionalHeader.hpp"
+#include "LIEF/PE/LoadConfigurations/LoadConfiguration.hpp"
+#include "LIEF/PE/CodeIntegrity.hpp"
+#include "LIEF/PE/signature/Attribute.hpp"
+#include "LIEF/PE/signature/ContentInfo.hpp"
+#include "LIEF/PE/signature/GenericContent.hpp"
+#include "LIEF/PE/signature/Signature.hpp"
+#include "LIEF/PE/signature/SignerInfo.hpp"
+#include "LIEF/PE/signature/SpcIndirectData.hpp"
+#include "LIEF/PE/signature/attributes/ContentType.hpp"
+#include "LIEF/PE/signature/attributes/GenericType.hpp"
+#include "LIEF/PE/signature/attributes/MsCounterSign.hpp"
+#include "LIEF/PE/signature/attributes/MsManifestBinaryID.hpp"
+#include "LIEF/PE/signature/attributes/MsSpcNestedSignature.hpp"
+#include "LIEF/PE/signature/attributes/MsSpcStatementType.hpp"
+#include "LIEF/PE/signature/attributes/PKCS9AtSequenceNumber.hpp"
+#include "LIEF/PE/signature/attributes/PKCS9CounterSignature.hpp"
+#include "LIEF/PE/signature/attributes/PKCS9MessageDigest.hpp"
+#include "LIEF/PE/signature/attributes/PKCS9SigningTime.hpp"
+#include "LIEF/PE/signature/attributes/SigningCertificateV2.hpp"
+#include "LIEF/PE/signature/attributes/SpcSpOpusInfo.hpp"
+#include "LIEF/PE/signature/attributes/SpcRelaxedPeMarkerCheck.hpp"
+#include "LIEF/PE/signature/x509.hpp"
+#include "LIEF/PE/signature/RsaInfo.hpp"
+#include "LIEF/PE/signature/SpcIndirectData.hpp"
+#include "LIEF/PE/signature/GenericContent.hpp"
+#include "LIEF/PE/hash.hpp"
+#include "LIEF/PE/enums.hpp"
+#include "LIEF/PE/EnumToString.hpp"
+#include "LIEF/PE/utils.hpp"
+
#include "Object.tcc"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
Hash::~Hash() = default;
@@ -32,14 +100,14 @@ void Hash::visit(const Binary& binary) {
process(binary.header());
process(binary.optional_header());
- process(std::begin(binary.data_directories()), std::end(binary.data_directories()));
- process(std::begin(binary.sections()), std::end(binary.sections()));
- process(std::begin(binary.imports()), std::end(binary.imports()));
- process(std::begin(binary.delay_imports()), std::end(binary.delay_imports()));
- process(std::begin(binary.relocations()), std::end(binary.relocations()));
+ process(binary.data_directories().begin(), binary.data_directories().end());
+ process(binary.sections().begin(), binary.sections().end());
+ process(binary.imports().begin(), binary.imports().end());
+ process(binary.delay_imports().begin(), binary.delay_imports().end());
+ process(binary.relocations().begin(), binary.relocations().end());
if (binary.has_debug()) {
- process(std::begin(binary.debug()), std::end(binary.debug()));
+ process(binary.debug().begin(), binary.debug().end());
}
if (const Export* exp = binary.get_export()) {
@@ -53,7 +121,6 @@ void Hash::visit(const Binary& binary) {
if (const RichHeader* rheader = binary.rich_header()) {
process(*rheader);
}
-
}
@@ -135,7 +202,6 @@ void Hash::visit(const OptionalHeader& optional_header) {
process(optional_header.sizeof_heap_commit());
process(optional_header.loader_flags());
process(optional_header.numberof_rva_and_size());
-
}
void Hash::visit(const DataDirectory& data_directory) {
@@ -158,19 +224,17 @@ void Hash::visit(const Section& section) {
process(section.numberof_line_numbers());
process(section.characteristics());
process(section.content());
-
}
void Hash::visit(const Relocation& relocation) {
process(relocation.virtual_address());
- process(std::begin(relocation.entries()), std::end(relocation.entries()));
+ process(relocation.entries().begin(), relocation.entries().end());
}
void Hash::visit(const RelocationEntry& relocation_entry) {
process(relocation_entry.data());
process(relocation_entry.position());
process(relocation_entry.type());
-
}
void Hash::visit(const Export& export_) {
@@ -180,7 +244,7 @@ void Hash::visit(const Export& export_) {
process(export_.minor_version());
process(export_.ordinal_base());
process(export_.name());
- process(std::begin(export_.entries()), std::end(export_.entries()));
+ process(export_.entries().begin(), export_.entries().end());
}
void Hash::visit(const ExportEntry& export_entry) {
@@ -230,7 +294,7 @@ void Hash::visit(const Import& import) {
process(import.import_address_table_rva());
process(import.import_lookup_table_rva());
process(import.name());
- process(std::begin(import.entries()), std::end(import.entries()));
+ process(import.entries().begin(), import.entries().end());
}
void Hash::visit(const ImportEntry& import_entry) {
@@ -268,7 +332,7 @@ void Hash::visit(const ResourceNode& resource_node) {
process(resource_node.name());
}
- process(std::begin(resource_node.childs()), std::end(resource_node.childs()));
+ process(resource_node.childs().begin(), resource_node.childs().end());
}
void Hash::visit(const ResourceData& resource_data) {
@@ -297,11 +361,12 @@ void Hash::visit(const ResourcesManager& resources_manager) {
}
if (resources_manager.has_icons()) {
- process(std::begin(resources_manager.icons()), std::end(resources_manager.icons()));
+ process(resources_manager.icons().begin(), resources_manager.icons().end());
}
if (resources_manager.has_dialogs()) {
- process(std::begin(resources_manager.dialogs()), std::end(resources_manager.dialogs()));
+ process(resources_manager.dialogs().begin(),
+ resources_manager.dialogs().end());
}
}
@@ -369,7 +434,6 @@ void Hash::visit(const ResourceIcon& resource_icon) {
process(resource_icon.planes());
process(resource_icon.bit_count());
process(resource_icon.pixels());
-
}
void Hash::visit(const ResourceStringTable& table) {
@@ -390,8 +454,8 @@ void Hash::visit(const Signature& signature) {
process(signature.version());
process(signature.digest_algorithm());
process(signature.content_info());
- process(std::begin(signature.certificates()), std::end(signature.certificates()));
- process(std::begin(signature.signers()), std::end(signature.signers()));
+ process(signature.certificates().begin(), signature.certificates().end());
+ process(signature.signers().begin(), signature.signers().end());
}
void Hash::visit(const x509& x509) {
@@ -411,8 +475,10 @@ void Hash::visit(const SignerInfo& signerinfo) {
process(signerinfo.encryption_algorithm());
process(signerinfo.digest_algorithm());
process(signerinfo.encrypted_digest());
- process(std::begin(signerinfo.authenticated_attributes()), std::end(signerinfo.authenticated_attributes()));
- process(std::begin(signerinfo.unauthenticated_attributes()), std::end(signerinfo.unauthenticated_attributes()));
+ process(signerinfo.authenticated_attributes().begin(),
+ signerinfo.authenticated_attributes().end());
+ process(signerinfo.unauthenticated_attributes().begin(),
+ signerinfo.unauthenticated_attributes().end());
}
void Hash::visit(const Attribute& attr) {
@@ -434,7 +500,6 @@ void Hash::visit(const SpcIndirectData& content) {
process(content.file());
process(content.digest());
process(content.digest_algorithm());
-
}
@@ -502,7 +567,7 @@ void Hash::visit(const SpcRelaxedPeMarkerCheck& attr) {
void Hash::visit(const SigningCertificateV2& attr) {
visit(*attr.as<Attribute>());
- //TODO
+ // TODO
}
void Hash::visit(const CodeIntegrity& code_integrity) {
@@ -569,7 +634,7 @@ void Hash::visit(const Pogo& pogo) {
Pogo::it_const_entries entries = pogo.entries();
visit(static_cast<const Debug&>(pogo));
process(pogo.signature());
- process(std::begin(entries), std::end(entries));
+ process(entries.begin(), entries.end());
}
@@ -644,9 +709,6 @@ void Hash::visit(const ResourceDialogExtended& dialog) {
process(item.title().string);
process(item.creation_data());
}
-
}
-} // namespace PE
-} // namespace LIEF
-
+} // namespace LIEF::PE
diff --git a/deps/LIEF/src/PE/json.cpp b/deps/LIEF/src/PE/json.cpp
index 9f6d2b8646a..d6c2cfeb019 100644
--- a/deps/LIEF/src/PE/json.cpp
+++ b/deps/LIEF/src/PE/json.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,16 +13,50 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-#include "logging.hpp"
-
#include "PE/json_internal.hpp"
-#include "LIEF/PE.hpp"
+
+#include "LIEF/utils.hpp"
+#include "LIEF/hash.hpp"
+
+#include "LIEF/PE/EnumToString.hpp"
+#include "LIEF/PE/Binary.hpp"
+#include "LIEF/PE/ResourceNode.hpp"
+#include "LIEF/PE/ResourceData.hpp"
+#include "LIEF/PE/ResourceDirectory.hpp"
+#include "LIEF/PE/resources/ResourceDialog.hpp"
+#include "LIEF/PE/resources/ResourceDialogExtended.hpp"
+#include "LIEF/PE/resources/ResourceDialogRegular.hpp"
+#include "LIEF/PE/LoadConfigurations/LoadConfiguration.hpp"
+#include "LIEF/PE/RichHeader.hpp"
+#include "LIEF/PE/Section.hpp"
+#include "LIEF/PE/Relocation.hpp"
+#include "LIEF/PE/RelocationEntry.hpp"
+#include "LIEF/PE/Export.hpp"
+#include "LIEF/PE/TLS.hpp"
+#include "LIEF/PE/debug/Debug.hpp"
+#include "LIEF/PE/debug/CodeView.hpp"
+#include "LIEF/PE/debug/Pogo.hpp"
+#include "LIEF/PE/debug/Repro.hpp"
+#include "LIEF/PE/debug/CodeViewPDB.hpp"
+#include "LIEF/PE/signature/attributes/ContentType.hpp"
+#include "LIEF/PE/signature/attributes/GenericType.hpp"
+#include "LIEF/PE/signature/attributes/MsCounterSign.hpp"
+#include "LIEF/PE/signature/attributes/MsManifestBinaryID.hpp"
+#include "LIEF/PE/signature/attributes/MsSpcNestedSignature.hpp"
+#include "LIEF/PE/signature/attributes/MsSpcStatementType.hpp"
+#include "LIEF/PE/signature/attributes/PKCS9AtSequenceNumber.hpp"
+#include "LIEF/PE/signature/attributes/PKCS9CounterSignature.hpp"
+#include "LIEF/PE/signature/attributes/PKCS9MessageDigest.hpp"
+#include "LIEF/PE/signature/attributes/PKCS9SigningTime.hpp"
+#include "LIEF/PE/signature/attributes/SigningCertificateV2.hpp"
+#include "LIEF/PE/signature/attributes/SpcSpOpusInfo.hpp"
+#include "LIEF/PE/signature/attributes/SpcRelaxedPeMarkerCheck.hpp"
+#include "LIEF/PE/signature/SpcIndirectData.hpp"
+#include "LIEF/PE/signature/GenericContent.hpp"
#include "Object.tcc"
-namespace LIEF {
-namespace PE {
+namespace LIEF::PE {
std::string to_hex(const char c) {
std::stringstream ss;
@@ -45,7 +79,7 @@ std::string escape_non_ascii(const std::string& s) {
}
void JsonVisitor::visit(const Binary& binary) {
- node_["entrypoint"] = binary.entrypoint();
+ node_["entrypoint"] = binary.entrypoint();
node_["virtual_size"] = binary.virtual_size();
// DOS Header
@@ -67,8 +101,8 @@ void JsonVisitor::visit(const Binary& binary) {
JsonVisitor optional_header_visitor;
optional_header_visitor(binary.optional_header());
- node_["dos_header"] = dos_header_visitor.get();
- node_["header"] = header_visitor.get();
+ node_["dos_header"] = dos_header_visitor.get();
+ node_["header"] = header_visitor.get();
node_["optional_header"] = optional_header_visitor.get();
// Data directories
@@ -161,7 +195,7 @@ void JsonVisitor::visit(const Binary& binary) {
manager->accept(manager_visitor);
}
- node_["resources_tree"] = visitor.get();
+ node_["resources_tree"] = visitor.get();
node_["resources_manager"] = manager_visitor.get();
}
@@ -184,30 +218,29 @@ void JsonVisitor::visit(const Binary& binary) {
config->accept(visitor);
node_["load_configuration"] = visitor.get();
}
-
}
void JsonVisitor::visit(const DosHeader& dos_header) {
- node_["magic"] = dos_header.magic();
- node_["used_bytes_in_last_page"] = dos_header.used_bytes_in_last_page();
- node_["file_size_in_pages"] = dos_header.file_size_in_pages();
- node_["numberof_relocation"] = dos_header.numberof_relocation();
- node_["header_size_in_paragraphs"] = dos_header.header_size_in_paragraphs();
- node_["minimum_extra_paragraphs"] = dos_header.minimum_extra_paragraphs();
- node_["maximum_extra_paragraphs"] = dos_header.maximum_extra_paragraphs();
- node_["initial_relative_ss"] = dos_header.initial_relative_ss();
- node_["initial_sp"] = dos_header.initial_sp();
- node_["checksum"] = dos_header.checksum();
- node_["initial_ip"] = dos_header.initial_ip();
- node_["initial_relative_cs"] = dos_header.initial_relative_cs();
- node_["addressof_relocation_table"] = dos_header.addressof_relocation_table();
- node_["overlay_number"] = dos_header.overlay_number();
- node_["reserved"] = dos_header.reserved();
- node_["oem_id"] = dos_header.oem_id();
- node_["oem_info"] = dos_header.oem_info();
- node_["reserved2"] = dos_header.reserved2();
- node_["addressof_new_exeheader"] = dos_header.addressof_new_exeheader();
+ node_["magic"] = dos_header.magic();
+ node_["used_bytes_in_last_page"] = dos_header.used_bytes_in_last_page();
+ node_["file_size_in_pages"] = dos_header.file_size_in_pages();
+ node_["numberof_relocation"] = dos_header.numberof_relocation();
+ node_["header_size_in_paragraphs"] = dos_header.header_size_in_paragraphs();
+ node_["minimum_extra_paragraphs"] = dos_header.minimum_extra_paragraphs();
+ node_["maximum_extra_paragraphs"] = dos_header.maximum_extra_paragraphs();
+ node_["initial_relative_ss"] = dos_header.initial_relative_ss();
+ node_["initial_sp"] = dos_header.initial_sp();
+ node_["checksum"] = dos_header.checksum();
+ node_["initial_ip"] = dos_header.initial_ip();
+ node_["initial_relative_cs"] = dos_header.initial_relative_cs();
+ node_["addressof_relocation_table"] = dos_header.addressof_relocation_table();
+ node_["overlay_number"] = dos_header.overlay_number();
+ node_["reserved"] = dos_header.reserved();
+ node_["oem_id"] = dos_header.oem_id();
+ node_["oem_info"] = dos_header.oem_info();
+ node_["reserved2"] = dos_header.reserved2();
+ node_["addressof_new_exeheader"] = dos_header.addressof_new_exeheader();
}
void JsonVisitor::visit(const RichHeader& rich_header) {
@@ -218,68 +251,70 @@ void JsonVisitor::visit(const RichHeader& rich_header) {
entries.emplace_back(visitor.get());
}
- node_["key"] = rich_header.key();
+ node_["key"] = rich_header.key();
node_["entries"] = entries;
}
void JsonVisitor::visit(const RichEntry& rich_entry) {
- node_["id"] = rich_entry.id();
+ node_["id"] = rich_entry.id();
node_["build_id"] = rich_entry.build_id();
- node_["count"] = rich_entry.count();
+ node_["count"] = rich_entry.count();
}
void JsonVisitor::visit(const Header& header) {
- node_["signature"] = header.signature();
- node_["machine"] = to_string(header.machine());
- node_["numberof_sections"] = header.numberof_sections();
- node_["time_date_stamp"] = header.time_date_stamp();
+ node_["signature"] = header.signature();
+ node_["machine"] = to_string(header.machine());
+ node_["numberof_sections"] = header.numberof_sections();
+ node_["time_date_stamp"] = header.time_date_stamp();
node_["pointerto_symbol_table"] = header.pointerto_symbol_table();
- node_["numberof_symbols"] = header.numberof_symbols();
+ node_["numberof_symbols"] = header.numberof_symbols();
node_["sizeof_optional_header"] = header.sizeof_optional_header();
- node_["characteristics"] = static_cast<size_t>(header.characteristics());
+ node_["characteristics"] = static_cast<size_t>(header.characteristics());
}
void JsonVisitor::visit(const OptionalHeader& optional_header) {
- node_["magic"] = to_string(optional_header.magic());
- node_["major_linker_version"] = optional_header.major_linker_version();
- node_["minor_linker_version"] = optional_header.minor_linker_version();
- node_["sizeof_code"] = optional_header.sizeof_code();
- node_["sizeof_initialized_data"] = optional_header.sizeof_initialized_data();
- node_["sizeof_uninitialized_data"] = optional_header.sizeof_uninitialized_data();
- node_["addressof_entrypoint"] = optional_header.addressof_entrypoint();
- node_["baseof_code"] = optional_header.baseof_code();
+ node_["magic"] = to_string(optional_header.magic());
+ node_["major_linker_version"] = optional_header.major_linker_version();
+ node_["minor_linker_version"] = optional_header.minor_linker_version();
+ node_["sizeof_code"] = optional_header.sizeof_code();
+ node_["sizeof_initialized_data"] = optional_header.sizeof_initialized_data();
+ node_["sizeof_uninitialized_data"] = optional_header.sizeof_uninitialized_data();
+ node_["addressof_entrypoint"] = optional_header.addressof_entrypoint();
+ node_["baseof_code"] = optional_header.baseof_code();
if (optional_header.magic() == PE_TYPE::PE32) {
- node_["baseof_data"] = optional_header.baseof_data();
- }
- node_["imagebase"] = optional_header.imagebase();
- node_["section_alignment"] = optional_header.section_alignment();
- node_["file_alignment"] = optional_header.file_alignment();
- node_["major_operating_system_version"] = optional_header.major_operating_system_version();
- node_["minor_operating_system_version"] = optional_header.minor_operating_system_version();
- node_["major_image_version"] = optional_header.major_image_version();
- node_["minor_image_version"] = optional_header.minor_image_version();
- node_["major_subsystem_version"] = optional_header.major_subsystem_version();
- node_["minor_subsystem_version"] = optional_header.minor_subsystem_version();
- node_["win32_version_value"] = optional_header.win32_version_value();
- node_["sizeof_image"] = optional_header.sizeof_image();
- node_["sizeof_headers"] = optional_header.sizeof_headers();
- node_["checksum"] = optional_header.checksum();
- node_["subsystem"] = to_string(optional_header.subsystem());
- node_["dll_characteristics"] = optional_header.dll_characteristics();
- node_["sizeof_stack_reserve"] = optional_header.sizeof_stack_reserve();
- node_["sizeof_stack_commit"] = optional_header.sizeof_stack_commit();
- node_["sizeof_heap_reserve"] = optional_header.sizeof_heap_reserve();
- node_["sizeof_heap_commit"] = optional_header.sizeof_heap_commit();
- node_["loader_flags"] = optional_header.loader_flags();
- node_["numberof_rva_and_size"] = optional_header.numberof_rva_and_size();
+ node_["baseof_data"] = optional_header.baseof_data();
+ }
+ node_["imagebase"] = optional_header.imagebase();
+ node_["section_alignment"] = optional_header.section_alignment();
+ node_["file_alignment"] = optional_header.file_alignment();
+ node_["major_operating_system_version"] =
+ optional_header.major_operating_system_version();
+ node_["minor_operating_system_version"] =
+ optional_header.minor_operating_system_version();
+ node_["major_image_version"] = optional_header.major_image_version();
+ node_["minor_image_version"] = optional_header.minor_image_version();
+ node_["major_subsystem_version"] = optional_header.major_subsystem_version();
+ node_["minor_subsystem_version"] = optional_header.minor_subsystem_version();
+ node_["win32_version_value"] = optional_header.win32_version_value();
+ node_["sizeof_image"] = optional_header.sizeof_image();
+ node_["sizeof_headers"] = optional_header.sizeof_headers();
+ node_["checksum"] = optional_header.checksum();
+ node_["subsystem"] = to_string(optional_header.subsystem());
+ node_["dll_characteristics"] = optional_header.dll_characteristics();
+ node_["sizeof_stack_reserve"] = optional_header.sizeof_stack_reserve();
+ node_["sizeof_stack_commit"] = optional_header.sizeof_stack_commit();
+ node_["sizeof_heap_reserve"] = optional_header.sizeof_heap_reserve();
+ node_["sizeof_heap_commit"] = optional_header.sizeof_heap_commit();
+ node_["loader_flags"] = optional_header.loader_flags();
+ node_["numberof_rva_and_size"] = optional_header.numberof_rva_and_size();
}
void JsonVisitor::visit(const DataDirectory& data_directory) {
- node_["RVA"] = data_directory.RVA();
+ node_["RVA"] = data_directory.RVA();
node_["size"] = data_directory.size();
node_["type"] = to_string(data_directory.type());
if (data_directory.has_section()) {
@@ -293,13 +328,13 @@ void JsonVisitor::visit(const Section& section) {
characteristics.emplace_back(to_string(c));
}
- node_["name"] = escape_non_ascii(section.name());
- node_["pointerto_relocation"] = section.pointerto_relocation();
+ node_["name"] = escape_non_ascii(section.name());
+ node_["pointerto_relocation"] = section.pointerto_relocation();
node_["pointerto_line_numbers"] = section.pointerto_line_numbers();
- node_["numberof_relocations"] = section.numberof_relocations();
- node_["numberof_line_numbers"] = section.numberof_line_numbers();
- node_["entropy"] = section.entropy();
- node_["characteristics"] = characteristics;
+ node_["numberof_relocations"] = section.numberof_relocations();
+ node_["numberof_line_numbers"] = section.numberof_line_numbers();
+ node_["entropy"] = section.entropy();
+ node_["characteristics"] = characteristics;
}
void JsonVisitor::visit(const Relocation& relocation) {
@@ -312,15 +347,15 @@ void JsonVisitor::visit(const Relocation& relocation) {
}
node_["virtual_address"] = relocation.virtual_address();
- node_["block_size"] = relocation.block_size();
- node_["entries"] = entries;
+ node_["block_size"] = relocation.block_size();
+ node_["entries"] = entries;
}
void JsonVisitor::visit(const RelocationEntry& relocation_entry) {
- node_["data"] = relocation_entry.data();
+ node_["data"] = relocation_entry.data();
node_["position"] = relocation_entry.position();
- node_["type"] = to_string(relocation_entry.type());
+ node_["type"] = to_string(relocation_entry.type());
}
void JsonVisitor::visit(const Export& export_) {
@@ -331,39 +366,42 @@ void JsonVisitor::visit(const Export& export_) {
visitor(entry);
entries.emplace_back(visitor.get());
}
- node_["export_flags"] = export_.export_flags();
- node_["timestamp"] = export_.timestamp();
+ node_["export_flags"] = export_.export_flags();
+ node_["timestamp"] = export_.timestamp();
node_["major_version"] = export_.major_version();
node_["minor_version"] = export_.minor_version();
- node_["ordinal_base"] = export_.ordinal_base();
- node_["name"] = escape_non_ascii(export_.name());
- node_["entries"] = entries;
+ node_["ordinal_base"] = export_.ordinal_base();
+ node_["name"] = escape_non_ascii(export_.name());
+ node_["entries"] = entries;
}
void JsonVisitor::visit(const ExportEntry& export_entry) {
- node_["name"] = escape_non_ascii(export_entry.name());
- node_["ordinal"] = export_entry.ordinal();
- node_["address"] = export_entry.address();
+ node_["name"] = escape_non_ascii(export_entry.name());
+ node_["ordinal"] = export_entry.ordinal();
+ node_["address"] = export_entry.address();
node_["is_extern"] = export_entry.is_extern();
if (export_entry.is_forwarded()) {
- const ExportEntry::forward_information_t& fwd_info = export_entry.forward_information();
+ const ExportEntry::forward_information_t& fwd_info =
+ export_entry.forward_information();
node_["forward_information"] = {
- {"library", fwd_info.library},
- {"function", fwd_info.function},
+ {"library", fwd_info.library},
+ {"function", fwd_info.function},
};
}
}
void JsonVisitor::visit(const TLS& tls) {
- node_["callbacks"] = tls.callbacks();
- node_["addressof_raw_data"] = std::vector<uint64_t>{tls.addressof_raw_data().first, tls.addressof_raw_data().second};
- node_["addressof_index"] = tls.addressof_index();
+ node_["callbacks"] = tls.callbacks();
+ node_["addressof_raw_data"] =
+ std::vector<uint64_t>{tls.addressof_raw_data().first,
+ tls.addressof_raw_data().second};
+ node_["addressof_index"] = tls.addressof_index();
node_["addressof_callbacks"] = tls.addressof_callbacks();
- node_["sizeof_zero_fill"] = tls.sizeof_zero_fill();
- node_["characteristics"] = tls.characteristics();
+ node_["sizeof_zero_fill"] = tls.sizeof_zero_fill();
+ node_["characteristics"] = tls.characteristics();
if (tls.has_data_directory()) {
node_["data_directory"] = to_string(tls.directory()->type());
@@ -375,12 +413,12 @@ void JsonVisitor::visit(const TLS& tls) {
}
void JsonVisitor::visit(const Debug& debug) {
- node_["characteristics"] = debug.characteristics();
- node_["timestamp"] = debug.timestamp();
- node_["major_version"] = debug.major_version();
- node_["minor_version"] = debug.minor_version();
- node_["type"] = to_string(debug.type());
- node_["sizeof_data"] = debug.sizeof_data();
+ node_["characteristics"] = debug.characteristics();
+ node_["timestamp"] = debug.timestamp();
+ node_["major_version"] = debug.major_version();
+ node_["minor_version"] = debug.minor_version();
+ node_["type"] = to_string(debug.type());
+ node_["sizeof_data"] = debug.sizeof_data();
node_["addressof_rawdata"] = debug.addressof_rawdata();
node_["pointerto_rawdata"] = debug.pointerto_rawdata();
}
@@ -393,8 +431,8 @@ void JsonVisitor::visit(const CodeView& cv) {
void JsonVisitor::visit(const CodeViewPDB& cvpdb) {
visit(static_cast<const CodeView&>(cvpdb));
node_["signature"] = cvpdb.signature();
- node_["age"] = cvpdb.age();
- node_["filename"] = escape_non_ascii(cvpdb.filename());
+ node_["age"] = cvpdb.age();
+ node_["filename"] = escape_non_ascii(cvpdb.filename());
}
void JsonVisitor::visit(const DelayImport& import) {
@@ -405,15 +443,15 @@ void JsonVisitor::visit(const DelayImport& import) {
visitor(entry);
entries.emplace_back(visitor.get());
}
- node_["attribute"] = import.attribute();
- node_["name"] = import.name();
- node_["handle"] = import.handle();
- node_["iat"] = import.iat();
+ node_["attribute"] = import.attribute();
+ node_["name"] = import.name();
+ node_["handle"] = import.handle();
+ node_["iat"] = import.iat();
node_["names_table"] = import.names_table();
- node_["biat"] = import.biat();
- node_["uiat"] = import.uiat();
- node_["timestamp"] = import.timestamp();
- node_["entries"] = entries;
+ node_["biat"] = import.biat();
+ node_["uiat"] = import.uiat();
+ node_["timestamp"] = import.timestamp();
+ node_["entries"] = entries;
}
void JsonVisitor::visit(const DelayImportEntry& import_entry) {
@@ -423,10 +461,10 @@ void JsonVisitor::visit(const DelayImportEntry& import_entry) {
node_["name"] = import_entry.name();
}
- node_["value"] = import_entry.value();
+ node_["value"] = import_entry.value();
node_["iat_address"] = import_entry.iat_value();
- node_["data"] = import_entry.data();
- node_["hint"] = import_entry.hint();
+ node_["data"] = import_entry.data();
+ node_["hint"] = import_entry.hint();
}
@@ -439,13 +477,12 @@ void JsonVisitor::visit(const Import& import) {
entries.emplace_back(visitor.get());
}
- node_["forwarder_chain"] = import.forwarder_chain();
- node_["timedatestamp"] = import.timedatestamp();
+ node_["forwarder_chain"] = import.forwarder_chain();
+ node_["timedatestamp"] = import.timedatestamp();
node_["import_address_table_rva"] = import.import_address_table_rva();
- node_["import_lookup_table_rva"] = import.import_lookup_table_rva();
- node_["name"] = import.name();
- node_["entries"] = entries;
-
+ node_["import_lookup_table_rva"] = import.import_lookup_table_rva();
+ node_["name"] = import.name();
+ node_["entries"] = entries;
}
void JsonVisitor::visit(const ImportEntry& import_entry) {
@@ -457,17 +494,16 @@ void JsonVisitor::visit(const ImportEntry& import_entry) {
}
node_["iat_address"] = import_entry.iat_address();
- node_["data"] = import_entry.data();
- node_["hint"] = import_entry.hint();
+ node_["data"] = import_entry.data();
+ node_["hint"] = import_entry.hint();
}
void JsonVisitor::visit(const ResourceData& resource_data) {
node_["code_page"] = resource_data.code_page();
- node_["reserved"] = resource_data.reserved();
- node_["offset"] = resource_data.offset();
- node_["hash"] = Hash::hash(resource_data.content());
-
+ node_["reserved"] = resource_data.reserved();
+ node_["offset"] = resource_data.offset();
+ node_["hash"] = Hash::hash(resource_data.content());
}
void JsonVisitor::visit(const ResourceNode& resource_node) {
@@ -488,7 +524,6 @@ void JsonVisitor::visit(const ResourceNode& resource_node) {
node_["childs"] = childs;
}
-
}
void JsonVisitor::visit(const ResourceDirectory& resource_directory) {
@@ -499,12 +534,12 @@ void JsonVisitor::visit(const ResourceDirectory& resource_directory) {
node_["name"] = u16tou8(resource_directory.name());
}
- node_["characteristics"] = resource_directory.characteristics();
- node_["time_date_stamp"] = resource_directory.time_date_stamp();
- node_["major_version"] = resource_directory.major_version();
- node_["minor_version"] = resource_directory.minor_version();
+ node_["characteristics"] = resource_directory.characteristics();
+ node_["time_date_stamp"] = resource_directory.time_date_stamp();
+ node_["major_version"] = resource_directory.major_version();
+ node_["minor_version"] = resource_directory.minor_version();
node_["numberof_name_entries"] = resource_directory.numberof_name_entries();
- node_["numberof_id_entries"] = resource_directory.numberof_id_entries();
+ node_["numberof_id_entries"] = resource_directory.numberof_id_entries();
if (!resource_directory.childs().empty()) {
std::vector<json> childs;
@@ -522,7 +557,7 @@ void JsonVisitor::visit(const ResourceDirectory& resource_directory) {
void JsonVisitor::visit(const ResourcesManager& resources_manager) {
if (resources_manager.has_manifest()) {
- node_["manifest"] = escape_non_ascii(resources_manager.manifest()) ;
+ node_["manifest"] = escape_non_ascii(resources_manager.manifest());
}
if (resources_manager.has_html()) {
@@ -569,8 +604,10 @@ void JsonVisitor::visit(const ResourcesManager& resources_manager) {
if (resources_manager.has_string_table()) {
std::vector<json> string_table_json;
- for (const ResourcesManager::string_entry_t& entry : resources_manager.string_table()) {
- string_table_json.push_back(std::make_pair(entry.string_u8(), entry.id));
+ for (const ResourcesManager::string_entry_t& entry :
+ resources_manager.string_table())
+ {
+ string_table_json.emplace_back(std::make_pair(entry.string_u8(), entry.id));
}
node_["string_table"] = string_table_json;
}
@@ -601,13 +638,13 @@ void JsonVisitor::visit(const ResourceStringFileInfo& info) {
void JsonVisitor::visit(const ResourceVarFileInfo& info) {
node_["type"] = info.type();
- node_["key"] = info.key_u8();
+ node_["key"] = info.key_u8();
std::vector<json> j_vars;
for (const ResourceVar& var : info.vars()) {
- j_vars.push_back(std::unordered_map<std::string, json> {
- std::make_pair("key", json(var.key_u8())),
- std::make_pair("type", json(var.type())),
- std::make_pair("values", json(var.values())),
+ j_vars.emplace_back(std::unordered_map<std::string, json>{
+ std::make_pair("key", json(var.key_u8())),
+ std::make_pair("type", json(var.type())),
+ std::make_pair("values", json(var.values())),
});
}
node_["values"] = std::move(j_vars);
@@ -618,20 +655,20 @@ void JsonVisitor::visit(const ResourceVersion& version) {
node_["key"] = version.key_u8();
{
const ResourceVersion::fixed_file_info_t& info = version.file_info();
- node_["file_info"] = std::unordered_map<std::string, json> {
- std::make_pair("signature", info.signature),
- std::make_pair("struct_version", info.struct_version),
- std::make_pair("file_version_ms", info.file_version_ms),
- std::make_pair("file_version_ls", info.file_version_ls),
- std::make_pair("product_version_ms", info.product_version_ms),
- std::make_pair("product_version_ls", info.product_version_ls),
- std::make_pair("file_flags_mask", info.file_flags_mask),
- std::make_pair("file_flags", info.file_flags),
- std::make_pair("file_os", info.file_os),
- std::make_pair("file_type", info.file_type),
- std::make_pair("file_subtype", info.file_subtype),
- std::make_pair("file_date_ms", info.file_date_ms),
- std::make_pair("file_date_ls", info.file_date_ls),
+ node_["file_info"] = std::unordered_map<std::string, json>{
+ std::make_pair("signature", info.signature),
+ std::make_pair("struct_version", info.struct_version),
+ std::make_pair("file_version_ms", info.file_version_ms),
+ std::make_pair("file_version_ls", info.file_version_ls),
+ std::make_pair("product_version_ms", info.product_version_ms),
+ std::make_pair("product_version_ls", info.product_version_ls),
+ std::make_pair("file_flags_mask", info.file_flags_mask),
+ std::make_pair("file_flags", info.file_flags),
+ std::make_pair("file_os", info.file_os),
+ std::make_pair("file_type", info.file_type),
+ std::make_pair("file_subtype", info.file_subtype),
+ std::make_pair("file_date_ms", info.file_date_ms),
+ std::make_pair("file_date_ls", info.file_date_ls),
};
}
@@ -649,15 +686,15 @@ void JsonVisitor::visit(const ResourceVersion& version) {
}
void JsonVisitor::visit(const ResourceIcon& resource_icon) {
- node_["id"] = resource_icon.id();
- node_["lang"] = resource_icon.lang();
- node_["sublang"] = resource_icon.sublang();
- node_["width"] = resource_icon.width();
- node_["height"] = resource_icon.height();
+ node_["id"] = resource_icon.id();
+ node_["lang"] = resource_icon.lang();
+ node_["sublang"] = resource_icon.sublang();
+ node_["width"] = resource_icon.width();
+ node_["height"] = resource_icon.height();
node_["color_count"] = resource_icon.color_count();
- node_["reserved"] = resource_icon.reserved();
- node_["planes"] = resource_icon.planes();
- node_["bit_count"] = resource_icon.bit_count();
+ node_["reserved"] = resource_icon.reserved();
+ node_["planes"] = resource_icon.planes();
+ node_["bit_count"] = resource_icon.bit_count();
}
void JsonVisitor::visit(const ResourceStringTable& table) {
@@ -666,7 +703,7 @@ void JsonVisitor::visit(const ResourceStringTable& table) {
node_["type"] = table.type();
for (const ResourceStringTable::entry_t& entry : table.entries()) {
- values.push_back(std::make_pair(entry.key_u8(), entry.value_u8()));
+ values.emplace_back(std::make_pair(entry.key_u8(), entry.value_u8()));
}
node_["values"] = std::move(values);
@@ -678,9 +715,9 @@ void JsonVisitor::visit(const ResourceAccelerator& acc) {
for (const ResourceAccelerator::FLAGS c : acc.flags_list()) {
flags.emplace_back(to_string(c));
}
- node_["flags"] = flags;
- node_["ansi"] = acc.ansi_str();
- node_["id"] = acc.id();
+ node_["flags"] = flags;
+ node_["ansi"] = acc.ansi_str();
+ node_["id"] = acc.id();
node_["padding"] = acc.padding();
}
@@ -704,21 +741,21 @@ void JsonVisitor::visit(const Signature& signature) {
}
node_["digest_algorithm"] = to_string(signature.digest_algorithm());
- node_["version"] = signature.version();
- node_["content_info"] = content_info_visitor.get();
- node_["signer_info"] = jsigners;
- node_["certificates"] = crts;
+ node_["version"] = signature.version();
+ node_["content_info"] = content_info_visitor.get();
+ node_["signer_info"] = jsigners;
+ node_["certificates"] = crts;
}
void JsonVisitor::visit(const x509& x509) {
- node_["serial_number"] = x509.serial_number();
- node_["version"] = x509.version();
- node_["issuer"] = x509.issuer();
- node_["subject"] = x509.subject();
+ node_["serial_number"] = x509.serial_number();
+ node_["version"] = x509.version();
+ node_["issuer"] = x509.issuer();
+ node_["subject"] = x509.subject();
node_["signature_algorithm"] = x509.signature_algorithm();
- node_["valid_from"] = x509.valid_from();
- node_["valid_to"] = x509.valid_to();
+ node_["valid_from"] = x509.valid_from();
+ node_["valid_to"] = x509.valid_to();
}
void JsonVisitor::visit(const SignerInfo& signerinfo) {
@@ -737,13 +774,13 @@ void JsonVisitor::visit(const SignerInfo& signerinfo) {
auth_attrs.emplace_back(visitor.get());
}
- node_["version"] = signerinfo.version();
- node_["digest_algorithm"] = to_string(signerinfo.digest_algorithm());
- node_["encryption_algorithm"] = to_string(signerinfo.encryption_algorithm());
- node_["encrypted_digest"] = signerinfo.encrypted_digest();
- node_["issuer"] = signerinfo.issuer();
- node_["serial_number"] = signerinfo.serial_number();
- node_["authenticated_attributes"] = auth_attrs;
+ node_["version"] = signerinfo.version();
+ node_["digest_algorithm"] = to_string(signerinfo.digest_algorithm());
+ node_["encryption_algorithm"] = to_string(signerinfo.encryption_algorithm());
+ node_["encrypted_digest"] = signerinfo.encrypted_digest();
+ node_["issuer"] = signerinfo.issuer();
+ node_["serial_number"] = signerinfo.serial_number();
+ node_["authenticated_attributes"] = auth_attrs;
node_["unauthenticated_attributes"] = unauth_attrs;
}
@@ -757,10 +794,10 @@ void JsonVisitor::visit(const GenericContent& content) {
}
void JsonVisitor::visit(const SpcIndirectData& content) {
- node_["file"] = content.file();
- node_["digest"] = content.digest();
+ node_["file"] = content.file();
+ node_["digest"] = content.digest();
node_["digest_algorithm"] = to_string(content.digest_algorithm());
- node_["content_type"] = content.content_type();
+ node_["content_type"] = content.content_type();
}
void JsonVisitor::visit(const Attribute& auth) {
@@ -832,7 +869,7 @@ void JsonVisitor::visit(const PKCS9SigningTime& attr) {
void JsonVisitor::visit(const SpcSpOpusInfo& attr) {
visit(*attr.as<Attribute>());
- node_["more_info"] = attr.more_info();
+ node_["more_info"] = attr.more_info();
node_["program_name"] = attr.program_name();
}
@@ -850,31 +887,32 @@ void JsonVisitor::visit(const SigningCertificateV2& attr) {
void JsonVisitor::visit(const CodeIntegrity& code_integrity) {
- node_["flags"] = code_integrity.flags();
- node_["catalog"] = code_integrity.catalog();
+ node_["flags"] = code_integrity.flags();
+ node_["catalog"] = code_integrity.catalog();
node_["catalog_offset"] = code_integrity.catalog_offset();
- node_["reserved"] = code_integrity.reserved();
+ node_["reserved"] = code_integrity.reserved();
}
void JsonVisitor::visit(const LoadConfiguration& config) {
- node_["characteristics"] = config.characteristics();
- node_["timedatestamp"] = config.timedatestamp();
- node_["major_version"] = config.major_version();
- node_["minor_version"] = config.minor_version();
- node_["global_flags_clear"] = config.global_flags_clear();
- node_["global_flags_set"] = config.global_flags_set();
- node_["critical_section_default_timeout"] = config.critical_section_default_timeout();
- node_["decommit_free_block_threshold"] = config.decommit_free_block_threshold();
- node_["decommit_total_free_threshold"] = config.decommit_total_free_threshold();
- node_["lock_prefix_table"] = config.lock_prefix_table();
- node_["maximum_allocation_size"] = config.maximum_allocation_size();
- node_["virtual_memory_threshold"] = config.virtual_memory_threshold();
- node_["process_affinity_mask"] = config.process_affinity_mask();
- node_["process_heap_flags"] = config.process_heap_flags();
- node_["csd_version"] = config.csd_version();
- node_["reserved1"] = config.reserved1();
- node_["editlist"] = config.editlist();
- node_["security_cookie"] = config.security_cookie();
+ node_["characteristics"] = config.characteristics();
+ node_["timedatestamp"] = config.timedatestamp();
+ node_["major_version"] = config.major_version();
+ node_["minor_version"] = config.minor_version();
+ node_["global_flags_clear"] = config.global_flags_clear();
+ node_["global_flags_set"] = config.global_flags_set();
+ node_["critical_section_default_timeout"] =
+ config.critical_section_default_timeout();
+ node_["decommit_free_block_threshold"] = config.decommit_free_block_threshold();
+ node_["decommit_total_free_threshold"] = config.decommit_total_free_threshold();
+ node_["lock_prefix_table"] = config.lock_prefix_table();
+ node_["maximum_allocation_size"] = config.maximum_allocation_size();
+ node_["virtual_memory_threshold"] = config.virtual_memory_threshold();
+ node_["process_affinity_mask"] = config.process_affinity_mask();
+ node_["process_heap_flags"] = config.process_heap_flags();
+ node_["csd_version"] = config.csd_version();
+ node_["reserved1"] = config.reserved1();
+ node_["editlist"] = config.editlist();
+ node_["security_cookie"] = config.security_cookie();
}
void JsonVisitor::visit(const Pogo& pogo) {
@@ -891,9 +929,9 @@ void JsonVisitor::visit(const Pogo& pogo) {
}
void JsonVisitor::visit(const PogoEntry& entry) {
- node_["name"] = entry.name();
+ node_["name"] = entry.name();
node_["start_rva"] = entry.start_rva();
- node_["size"] = entry.size();
+ node_["size"] = entry.size();
}
void JsonVisitor::visit(const Repro& repro) {
@@ -909,12 +947,12 @@ void JsonVisitor::visit(const ResourceDialogRegular& dialog) {
node_["cx"] = dialog.cx();
node_["cy"] = dialog.cy();
- if (const ResourceDialogRegular::font_t& font = dialog.font()) {
+ if (const ResourceDialogRegular::font_t& font = dialog.font()) {
node_["font"]["point_size"] = font.point_size;
node_["font"]["name"] = u16tou8(font.name);
}
- if (const ResourceDialog::ordinal_or_str_t& menu = dialog.menu()) {
+ if (const ResourceDialog::ordinal_or_str_t& menu = dialog.menu()) {
node_["menu"] = menu.to_string();
}
std::vector<json> items;
@@ -939,12 +977,12 @@ void JsonVisitor::visit(const ResourceDialogExtended& dialog) {
node_["cx"] = dialog.cx();
node_["cy"] = dialog.cy();
- if (const ResourceDialogExtended::font_t& font = dialog.font()) {
+ if (const ResourceDialogExtended::font_t& font = dialog.font()) {
node_["font"]["point_size"] = font.point_size;
node_["font"]["name"] = u16tou8(font.typeface);
}
- if (const ResourceDialog::ordinal_or_str_t& menu = dialog.menu()) {
+ if (const ResourceDialog::ordinal_or_str_t& menu = dialog.menu()) {
node_["menu"] = menu.to_string();
}
std::vector<json> items;
@@ -970,6 +1008,4 @@ void JsonVisitor::visit(const LIEF::Section& section) {
visit(static_cast<const LIEF::PE::Section&>(section));
}
-} // namespace PE
-} // namespace LIEF
-
+} // namespace LIEF::PE
diff --git a/deps/LIEF/src/PE/json_api.cpp b/deps/LIEF/src/PE/json_api.cpp
index ce94cb5bb22..a6e203d5db4 100644
--- a/deps/LIEF/src/PE/json_api.cpp
+++ b/deps/LIEF/src/PE/json_api.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,18 +13,22 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include "logging.hpp"
#include "LIEF/config.h"
#include "LIEF/PE/json.hpp"
#ifdef LIEF_JSON_SUPPORT
-#include "PE/json_internal.hpp"
+ #include "PE/json_internal.hpp"
+#else
+ #include "logging.hpp"
#endif
namespace LIEF {
-namespace PE {
+class Object;
+}
+
+namespace LIEF::PE {
std::string to_json([[maybe_unused]] const Object& v) {
#ifdef LIEF_JSON_SUPPORT
@@ -38,6 +42,4 @@ std::string to_json([[maybe_unused]] const Object& v) {
}
-} // namespace PE
-} // namespace LIEF
-
+} // namespace LIEF::PE
diff --git a/deps/LIEF/src/PE/json_internal.hpp b/deps/LIEF/src/PE/json_internal.hpp
index a0a96825a4d..33eefe92732 100644
--- a/deps/LIEF/src/PE/json_internal.hpp
+++ b/deps/LIEF/src/PE/json_internal.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,7 +16,6 @@
#ifndef LIEF_PE_JSON_INTERNAL_H
#define LIEF_PE_JSON_INTERNAL_H
-#include "LIEF/visibility.h"
#include "visitors/json.hpp"
namespace LIEF {
@@ -88,66 +87,66 @@ class JsonVisitor : public LIEF::JsonVisitor {
using LIEF::JsonVisitor::JsonVisitor;
public:
- void visit(const Binary& Binary) override;
- void visit(const DosHeader& dos_header) override;
- void visit(const RichHeader& rich_header) override;
- void visit(const RichEntry& rich_entry) override;
- void visit(const Header& header) override;
- void visit(const OptionalHeader& optional_header) override;
- void visit(const DataDirectory& data_directory) override;
- void visit(const Section& section) override;
- void visit(const Relocation& relocation) override;
- void visit(const RelocationEntry& relocation_entry) override;
- void visit(const Export& export_) override;
- void visit(const ExportEntry& export_entry) override;
- void visit(const TLS& tls) override;
- void visit(const Debug& debug) override;
- void visit(const CodeView& dv) override;
- void visit(const CodeViewPDB& cvpdb) override;
- void visit(const Import& import) override;
- void visit(const ImportEntry& import_entry) override;
- void visit(const DelayImport& import) override;
- void visit(const DelayImportEntry& import_entry) override;
- void visit(const ResourceNode& resource_node) override;
- void visit(const ResourceData& resource_data) override;
+ void visit(const Binary& Binary) override;
+ void visit(const DosHeader& dos_header) override;
+ void visit(const RichHeader& rich_header) override;
+ void visit(const RichEntry& rich_entry) override;
+ void visit(const Header& header) override;
+ void visit(const OptionalHeader& optional_header) override;
+ void visit(const DataDirectory& data_directory) override;
+ void visit(const Section& section) override;
+ void visit(const Relocation& relocation) override;
+ void visit(const RelocationEntry& relocation_entry) override;
+ void visit(const Export& export_) override;
+ void visit(const ExportEntry& export_entry) override;
+ void visit(const TLS& tls) override;
+ void visit(const Debug& debug) override;
+ void visit(const CodeView& dv) override;
+ void visit(const CodeViewPDB& cvpdb) override;
+ void visit(const Import& import) override;
+ void visit(const ImportEntry& import_entry) override;
+ void visit(const DelayImport& import) override;
+ void visit(const DelayImportEntry& import_entry) override;
+ void visit(const ResourceNode& resource_node) override;
+ void visit(const ResourceData& resource_data) override;
void visit(const ResourceDirectory& resource_directory) override;
- void visit(const ResourcesManager& resources_manager) override;
- void visit(const ResourceVersion& resource_version) override;
- void visit(const ResourceStringFileInfo& resource_sfi) override;
- void visit(const ResourceVarFileInfo& resource_vfi) override;
- void visit(const ResourceStringTable& resource_st) override;
- void visit(const ResourceAccelerator& resource_acc) override;
- void visit(const ResourceIcon& resource_icon) override;
- void visit(const ResourceDialogExtended& dialog) override;
- void visit(const ResourceDialogRegular& dialog) override;
- void visit(const Signature& signature) override;
- void visit(const x509& x509) override;
- void visit(const SignerInfo& signerinfo) override;
- void visit(const ContentInfo& contentinfo) override;
- void visit(const GenericContent& content) override;
- void visit(const SpcIndirectData& content) override;
- void visit(const Attribute& attr) override;
- void visit(const ContentType& attr) override;
- void visit(const GenericType& attr) override;
- void visit(const MsCounterSign& attr) override;
- void visit(const MsSpcNestedSignature& attr) override;
- void visit(const MsSpcStatementType& attr) override;
- void visit(const MsManifestBinaryID& attr) override;
- void visit(const PKCS9AtSequenceNumber& attr) override;
- void visit(const PKCS9CounterSignature& attr) override;
- void visit(const PKCS9MessageDigest& attr) override;
- void visit(const PKCS9SigningTime& attr) override;
- void visit(const SpcSpOpusInfo& attr) override;
- void visit(const SpcRelaxedPeMarkerCheck& attr) override;
- void visit(const SigningCertificateV2& attr) override;
- void visit(const CodeIntegrity& code_integrity) override;
- void visit(const LoadConfiguration& config) override;
+ void visit(const ResourcesManager& resources_manager) override;
+ void visit(const ResourceVersion& resource_version) override;
+ void visit(const ResourceStringFileInfo& resource_sfi) override;
+ void visit(const ResourceVarFileInfo& resource_vfi) override;
+ void visit(const ResourceStringTable& resource_st) override;
+ void visit(const ResourceAccelerator& resource_acc) override;
+ void visit(const ResourceIcon& resource_icon) override;
+ void visit(const ResourceDialogExtended& dialog) override;
+ void visit(const ResourceDialogRegular& dialog) override;
+ void visit(const Signature& signature) override;
+ void visit(const x509& x509) override;
+ void visit(const SignerInfo& signerinfo) override;
+ void visit(const ContentInfo& contentinfo) override;
+ void visit(const GenericContent& content) override;
+ void visit(const SpcIndirectData& content) override;
+ void visit(const Attribute& attr) override;
+ void visit(const ContentType& attr) override;
+ void visit(const GenericType& attr) override;
+ void visit(const MsCounterSign& attr) override;
+ void visit(const MsSpcNestedSignature& attr) override;
+ void visit(const MsSpcStatementType& attr) override;
+ void visit(const MsManifestBinaryID& attr) override;
+ void visit(const PKCS9AtSequenceNumber& attr) override;
+ void visit(const PKCS9CounterSignature& attr) override;
+ void visit(const PKCS9MessageDigest& attr) override;
+ void visit(const PKCS9SigningTime& attr) override;
+ void visit(const SpcSpOpusInfo& attr) override;
+ void visit(const SpcRelaxedPeMarkerCheck& attr) override;
+ void visit(const SigningCertificateV2& attr) override;
+ void visit(const CodeIntegrity& code_integrity) override;
+ void visit(const LoadConfiguration& config) override;
- void visit(const Pogo& pogo) override;
- void visit(const PogoEntry& entry) override;
- void visit(const Repro& entry) override;
+ void visit(const Pogo& pogo) override;
+ void visit(const PogoEntry& entry) override;
+ void visit(const Repro& entry) override;
- void visit(const LIEF::Binary& binary) override;
+ void visit(const LIEF::Binary& binary) override;
void visit(const LIEF::Section& section) override;
};
diff --git a/deps/LIEF/src/PE/layout_check.cpp b/deps/LIEF/src/PE/layout_check.cpp
index 6d0b526c265..b7b85721538 100644
--- a/deps/LIEF/src/PE/layout_check.cpp
+++ b/deps/LIEF/src/PE/layout_check.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2023 R. Thomas
- * Copyright 2017 - 2023 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,7 +17,7 @@
#include "LIEF/PE/Section.hpp"
#include "LIEF/PE/Relocation.hpp"
#include "LIEF/PE/RelocationEntry.hpp"
-#include "LIEF/PE/LoadConfigurations.hpp"
+#include "LIEF/PE/LoadConfigurations/LoadConfiguration.hpp"
#include "LIEF/PE/TLS.hpp"
#include "LIEF/utils.hpp"
#include "LIEF/PE/utils.hpp"
@@ -26,8 +26,10 @@
#include <spdlog/fmt/fmt.h>
-namespace LIEF {
-namespace PE {
+#include <cstddef>
+
+
+namespace LIEF::PE {
class LayoutChecker {
public:
@@ -42,8 +44,9 @@ class LayoutChecker {
filesz(bin.original_size()),
section_alignment(bin.optional_header().section_alignment()),
file_alignment(bin.optional_header().file_alignment()),
- sizeof_headers(bin.optional_header().sizeof_headers())
- {}
+ sizeof_headers(bin.optional_header().sizeof_headers()),
+ vaddr_start(bin.imagebase()),
+ vaddr_end(bin.imagebase() + bin.virtual_size()) {}
bool check_dos_header();
bool check_header();
@@ -53,6 +56,7 @@ class LayoutChecker {
bool check_load_config();
bool check_imports();
bool check_tls();
+ bool check_relocations();
bool is_legacy_arch() const {
return arch == Header::MACHINE_TYPES::I386 ||
@@ -96,6 +100,10 @@ class LayoutChecker {
return false;
}
+ if (!check_relocations()) {
+ return false;
+ }
+
return true;
}
@@ -104,9 +112,9 @@ class LayoutChecker {
return false;
}
- template <typename... Args>
- bool error(const char *fmt, const Args &... args) {
- error_msg = fmt::format(fmt, args...);
+ template<typename... Args>
+ bool error(const char* fmt, const Args&... args) {
+ error_msg = fmt::format(fmt::runtime(fmt), args...);
return false;
}
@@ -127,21 +135,34 @@ class LayoutChecker {
return pe.optional_header().magic() == PE_TYPE::PE32;
}
+ bool contains(uint64_t va) const {
+ if (va == 0) {
+ return true;
+ }
+ return vaddr_start <= va && va < vaddr_end;
+ }
+
+ bool contains(optional<uint64_t> va) const {
+ return contains(va.value_or(0));
+ }
+
private:
std::string error_msg;
const Binary& pe;
Header::MACHINE_TYPES arch;
uint32_t e_lfanew = 0;
uint64_t filesz = 0;
- uint32_t section_alignment;
- uint32_t file_alignment;
- uint64_t sizeof_headers;
+ uint32_t section_alignment = 0;
+ uint32_t file_alignment = 0;
+ uint64_t sizeof_headers = 0;
+ uint64_t vaddr_start = 0;
+ uint64_t vaddr_end = 0;
};
bool LayoutChecker::check_dos_header() {
const DosHeader& dos = pe.dos_header();
- if (dos.magic() != /* MZ */0x5A4D) {
+ if (dos.magic() != /* MZ */ 0x5A4D) {
return error("Invalid DOS Magic");
}
@@ -165,8 +186,7 @@ bool LayoutChecker::check_dos_header() {
bool LayoutChecker::check_header() {
const Header& hdr = pe.header();
- if (arch == Header::MACHINE_TYPES::UNKNOWN &&
- hdr.sizeof_optional_header() == 0)
+ if (arch == Header::MACHINE_TYPES::UNKNOWN && hdr.sizeof_optional_header() == 0)
{
return error("Header error: invalid machine type and size of optional header");
}
@@ -207,13 +227,15 @@ bool LayoutChecker::check_header() {
bool LayoutChecker::check_opt_header() {
const OptionalHeader& opt_hdr = pe.optional_header();
if (is_legacy_arch()) {
- if (!pe.header().has_characteristic(Header::CHARACTERISTICS::RELOCS_STRIPPED)) {
+ if (!pe.header().has_characteristic(Header::CHARACTERISTICS::RELOCS_STRIPPED))
+ {
if (opt_hdr.has(OptionalHeader::DLL_CHARACTERISTICS::APPCONTAINER)) {
return error("AppContainer with stripped relocations");
}
}
} else {
- if (!pe.header().has_characteristic(Header::CHARACTERISTICS::RELOCS_STRIPPED)) {
+ if (!pe.header().has_characteristic(Header::CHARACTERISTICS::RELOCS_STRIPPED))
+ {
if (!opt_hdr.has(OptionalHeader::DLL_CHARACTERISTICS::DYNAMIC_BASE)) {
return error("Missing DYNAMIC_BASE characteristic");
}
@@ -249,15 +271,13 @@ bool LayoutChecker::check_opt_header() {
}
// This check is not accurate (c.f. PE64_x86-64_binary_winhello64-mingw.exe)
- if (0) {
+ if (false) {
if (opt_hdr.major_linker_version() < 3 && opt_hdr.major_linker_version() < 5) {
return error("Bad linker version");
}
}
- if ((file_alignment & 0x1ff) != 0 &&
- file_alignment != section_alignment)
- {
+ if ((file_alignment & 0x1ff) != 0 && file_alignment != section_alignment) {
return error("Bad consistency between file/section alignment");
}
@@ -284,8 +304,10 @@ bool LayoutChecker::check_sections() {
const uint64_t sizeof_image = pe.optional_header().sizeof_image();
const uint32_t file_alignment_mask = file_alignment - 1;
- uint32_t nb_pages = (sizeof_image >> 12) + ((sizeof_image & (DEFAULT_PAGE_SIZE - 1)) != 0);
- uint32_t nb_sec_pages = align(sizeof_headers, section_alignment) / DEFAULT_PAGE_SIZE;
+ uint32_t nb_pages =
+ (sizeof_image >> 12) + ((sizeof_image & (DEFAULT_PAGE_SIZE - 1)) != 0);
+ uint32_t nb_sec_pages =
+ align(sizeof_headers, section_alignment) / DEFAULT_PAGE_SIZE;
uint64_t next_va = 0;
if (section_alignment >= DEFAULT_PAGE_SIZE) {
@@ -297,7 +319,7 @@ bool LayoutChecker::check_sections() {
return error("Invalid number of pages");
}
- next_va += nb_sec_pages * DEFAULT_PAGE_SIZE;
+ next_va += static_cast<uint64_t>(nb_sec_pages * DEFAULT_PAGE_SIZE);
} else {
nb_sec_pages = align(sizeof_image, DEFAULT_PAGE_SIZE) / DEFAULT_PAGE_SIZE;
}
@@ -307,10 +329,11 @@ bool LayoutChecker::check_sections() {
for (size_t i = 0; i < sections.size(); ++i) {
const Section& section = sections[i];
- uint32_t offset = section.sizeof_raw_data() != 0 ? section.pointerto_raw_data() : 0;
+ uint32_t offset =
+ section.sizeof_raw_data() != 0 ? section.pointerto_raw_data() : 0;
[[maybe_unused]] uint32_t end_offset = offset + section.sizeof_raw_data();
- uint32_t vsize = section.virtual_size() != 0 ? section.virtual_size() :
- section.sizeof_raw_data();
+ uint32_t vsize = section.virtual_size() != 0 ? section.virtual_size() :
+ section.sizeof_raw_data();
if (offset + section.size() < offset) {
return error("Section overflow");
@@ -342,19 +365,23 @@ bool LayoutChecker::check_sections() {
nb_pages -= nb_sec_pages;
- if (((offset + section.sizeof_raw_data() + file_alignment_mask) & ~file_alignment_mask) < section.pointerto_raw_data()) {
+ if (((offset + section.sizeof_raw_data() + file_alignment_mask) &
+ ~file_alignment_mask) < section.pointerto_raw_data())
+ {
return error("Invalid section raw size");
}
const bool is_last_section = i == (sections.size() - 1);
if (is_last_section && section.sizeof_raw_data() != 0) {
- if (section.pointerto_raw_data() + section.sizeof_raw_data() > pe.original_size()) {
+ if (section.pointerto_raw_data() + section.sizeof_raw_data() >
+ pe.original_size())
+ {
return error("File is cut");
}
}
- next_va += nb_sec_pages * DEFAULT_PAGE_SIZE;
+ next_va += static_cast<uint64_t>(nb_sec_pages * DEFAULT_PAGE_SIZE);
}
}
@@ -366,8 +393,8 @@ bool LayoutChecker::check_code_integrity() {
return error("{}:{}", __FUNCTION__, __LINE__);
}
- const size_t sizeof_nt_headers = sizeof(details::pe_header) +
- sizeof(details::pe32_optional_header);
+ const size_t sizeof_nt_headers =
+ sizeof(details::pe_header) + sizeof(details::pe32_optional_header);
if ((e_lfanew + sizeof_nt_headers) > section_alignment) {
return error("{}:{}", __FUNCTION__, __LINE__);
}
@@ -394,11 +421,9 @@ bool LayoutChecker::check_code_integrity() {
return error("{}:{}", __FUNCTION__, __LINE__);
}
- uint64_t end_of_raw =
- e_lfanew +
- sizeof(details::pe_header) +
- pe.header().sizeof_optional_header() +
- pe.sections().size() * sizeof(details::pe_section);
+ uint64_t end_of_raw = e_lfanew + sizeof(details::pe_header) +
+ pe.header().sizeof_optional_header() +
+ pe.sections().size() * sizeof(details::pe_section);
if (end_of_raw >= DEFAULT_PAGE_SIZE) {
return error("{}:{}", __FUNCTION__, __LINE__);
@@ -417,7 +442,9 @@ bool LayoutChecker::check_code_integrity() {
return error("{}:{}", __FUNCTION__, __LINE__);
}
- if ((sec.pointerto_raw_data() + sec.sizeof_raw_data()) < sec.pointerto_raw_data()) {
+ if ((sec.pointerto_raw_data() + sec.sizeof_raw_data()) <
+ sec.pointerto_raw_data())
+ {
return error("{}:{}", __FUNCTION__, __LINE__);
}
@@ -425,12 +452,15 @@ bool LayoutChecker::check_code_integrity() {
return error("{}:{}", __FUNCTION__, __LINE__);
}
- if ((sec.virtual_address() + sec.sizeof_raw_data() - 1) < sec.sizeof_raw_data()) {
+ if ((sec.virtual_address() + sec.sizeof_raw_data() - 1) <
+ sec.sizeof_raw_data())
+ {
return error("{}:{}", __FUNCTION__, __LINE__);
}
if (sec.sizeof_raw_data() != 0) {
- end_of_raw = std::max<uint64_t>(end_of_raw, sec.pointerto_raw_data() + sec.sizeof_raw_data());
+ end_of_raw = std::max<uint64_t>(end_of_raw, sec.pointerto_raw_data() +
+ sec.sizeof_raw_data());
}
}
return true;
@@ -443,8 +473,12 @@ bool LayoutChecker::check_load_config() {
}
// NOTE(romain): dynamic_value_reloctable_section starts by indexing from 1
- if (auto value = config->dynamic_value_reloctable_section(); value.value_or(0) > 0) {
- if ((*value - 1) < 0 || static_cast<size_t>((*value - 1)) >= pe.sections().size()) {
+ if (auto value = config->dynamic_value_reloctable_section();
+ value.value_or(0) > 0)
+ {
+ if ((*value - 1) < 0 ||
+ static_cast<size_t>((*value - 1)) >= pe.sections().size())
+ {
return false;
}
}
@@ -459,6 +493,149 @@ bool LayoutChecker::check_load_config() {
}
}
+ if (!contains(config->security_cookie())) {
+ return error("Security cookie out of range: {:#010x} ([{:#010x}, {:#010x}])",
+ config->security_cookie(), vaddr_start, vaddr_end);
+ }
+
+ if (!contains(config->lock_prefix_table())) {
+ return error("Lock prefix table out of range: {:#010x} ([{:#010x}, {:#010x}])",
+ config->lock_prefix_table(), vaddr_start, vaddr_end);
+ }
+
+ if (!contains(config->se_handler_table())) {
+ return error("SE handler table out of range: {:#010x} ([{:#010x}, {:#010x}])",
+ config->se_handler_table().value_or(0), vaddr_start, vaddr_end);
+ }
+
+ if (!contains(config->guard_cf_check_function_pointer())) {
+ return error("Guard CF check function pointer out of range: {:#010x} "
+ "([{:#010x}, {:#010x}])",
+ config->guard_cf_check_function_pointer().value_or(0),
+ vaddr_start, vaddr_end);
+ }
+
+ if (!contains(config->guard_cf_dispatch_function_pointer())) {
+ return error("Guard CF dispatch function pointer out of range: {:#010x} "
+ "([{:#010x}, {:#010x}])",
+ config->guard_cf_dispatch_function_pointer().value_or(0),
+ vaddr_start, vaddr_end);
+ }
+
+ if (!contains(config->guard_address_taken_iat_entry_table())) {
+ return error("Guard address taken IAT entry table out of range: {:#010x} "
+ "([{:#010x}, {:#010x}])",
+ config->guard_address_taken_iat_entry_table().value_or(0),
+ vaddr_start, vaddr_end);
+ }
+
+ if (!contains(config->guard_long_jump_target_table())) {
+ return error("Guard long jump target table out of range: {:#010x} ([{:#010x}, "
+ "{:#010x}])",
+ config->guard_long_jump_target_table().value_or(0), vaddr_start,
+ vaddr_end);
+ }
+
+ if (!contains(config->dynamic_value_reloc_table())) {
+ return error(
+ "Dynamic value reloc table out of range: {:#010x} ([{:#010x}, {:#010x}])",
+ config->dynamic_value_reloc_table().value_or(0), vaddr_start, vaddr_end
+ );
+ }
+
+ if (!contains(config->hybrid_metadata_pointer())) {
+ return error(
+ "Hybrid metadata pointer out of range: {:#010x} ([{:#010x}, {:#010x}])",
+ config->hybrid_metadata_pointer().value_or(0), vaddr_start, vaddr_end
+ );
+ }
+
+ if (!contains(config->guard_rf_failure_routine())) {
+ return error(
+ "Guard RF failure routine out of range: {:#010x} ([{:#010x}, {:#010x}])",
+ config->guard_rf_failure_routine().value_or(0), vaddr_start, vaddr_end
+ );
+ }
+
+ if (!contains(config->guard_rf_failure_routine_function_pointer())) {
+ return error("Guard RF failure routine function pointer out of range: "
+ "{:#010x} ([{:#010x}, {:#010x}])",
+ config->guard_rf_failure_routine_function_pointer().value_or(0),
+ vaddr_start, vaddr_end);
+ }
+
+ if (!contains(config->guard_rf_verify_stackpointer_function_pointer())) {
+ return error(
+ "Guard RF verify stack pointer function pointer out of range: {:#010x} "
+ "([{:#010x}, {:#010x}])",
+ config->guard_rf_verify_stackpointer_function_pointer().value_or(0),
+ vaddr_start, vaddr_end
+ );
+ }
+
+ if (!contains(config->enclave_configuration_ptr())) {
+ return error("Enclave configuration pointer out of range: {:#010x} "
+ "([{:#010x}, {:#010x}])",
+ config->enclave_configuration_ptr().value_or(0), vaddr_start,
+ vaddr_end);
+ }
+
+ if (!contains(config->volatile_metadata_pointer())) {
+ return error(
+ "Volatile metadata pointer out of range: {:#010x} ([{:#010x}, {:#010x}])",
+ config->volatile_metadata_pointer().value_or(0), vaddr_start, vaddr_end
+ );
+ }
+
+ if (!contains(config->guard_eh_continuation_table())) {
+ return error("Guard EH continuation table out of range: {:#010x} ([{:#010x}, "
+ "{:#010x}])",
+ config->guard_eh_continuation_table().value_or(0), vaddr_start,
+ vaddr_end);
+ }
+
+ if (!contains(config->guard_xfg_check_function_pointer())) {
+ return error("Guard XFG check function pointer out of range: {:#010x} "
+ "([{:#010x}, {:#010x}])",
+ config->guard_xfg_check_function_pointer().value_or(0),
+ vaddr_start, vaddr_end);
+ }
+
+ if (!contains(config->guard_xfg_dispatch_function_pointer())) {
+ return error("Guard XFG dispatch function pointer out of range: {:#010x} "
+ "([{:#010x}, {:#010x}])",
+ config->guard_xfg_dispatch_function_pointer().value_or(0),
+ vaddr_start, vaddr_end);
+ }
+
+ if (!contains(config->guard_xfg_table_dispatch_function_pointer())) {
+ return error("Guard XFG table dispatch function pointer out of range: "
+ "{:#010x} ([{:#010x}, {:#010x}])",
+ config->guard_xfg_table_dispatch_function_pointer().value_or(0),
+ vaddr_start, vaddr_end);
+ }
+
+ if (!contains(config->cast_guard_os_determined_failure_mode())) {
+ return error("Cast guard OS determined failure mode out of range: {:#010x} "
+ "([{:#010x}, {:#010x}])",
+ config->cast_guard_os_determined_failure_mode().value_or(0),
+ vaddr_start, vaddr_end);
+ }
+
+ if (!contains(config->guard_memcpy_function_pointer())) {
+ return error("Guard memcpy function pointer out of range: {:#010x} "
+ "([{:#010x}, {:#010x}])",
+ config->guard_memcpy_function_pointer().value_or(0), vaddr_start,
+ vaddr_end);
+ }
+
+ if (!contains(config->uma_function_pointers())) {
+ return error(
+ "UMA function pointers out of range: {:#010x} ([{:#010x}, {:#010x}])",
+ config->uma_function_pointers().value_or(0), vaddr_start, vaddr_end
+ );
+ }
+
return true;
}
@@ -469,17 +646,20 @@ bool LayoutChecker::check_imports() {
}
const DataDirectory* iat_dir = pe.iat_dir();
+ if (iat_dir == nullptr) {
+ return true;
+ }
for (const Import& imp : imports) {
for (const ImportEntry& entry : imp.entries()) {
const uint32_t iat_address = entry.iat_address(); // RVA
std::string entry_name = entry.is_ordinal() ?
- fmt::format("#{:04d}", entry.ordinal()) :
- entry.name();
- // 2 bytes alignment seems sufficient
+ fmt::format("#{:04d}", entry.ordinal()) :
+ entry.name();
+ // 2-byte alignment seems sufficient
if (iat_address % sizeof(uint16_t) != 0) {
- return error("{}:{} IAT is wrongly aligned: 0x{:08x}",
- imp.name(), entry_name, entry.iat_address());
+ return error("{}:{} IAT is wrongly aligned: {:#010x}", imp.name(),
+ entry_name, entry.iat_address());
}
if (iat_dir->RVA() == 0 || iat_dir->size() == 0) {
@@ -493,54 +673,63 @@ bool LayoutChecker::check_imports() {
const Section* section = pe.section_from_rva(iat_address);
if (section == nullptr) {
return error("Can't find section associated with the IAT "
- "address: 0x{:08x}", iat_address);
+ "address: {:#010x}",
+ iat_address);
}
/* Not a requirement (even though most of the PE have it)
- * if (!section->has_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)) {
- * return error(R"err(
- * {}:{} IAT: 0x{:08x} -- Missing CNT_INITIALIZED_DATA in the pointed section ('{}')
- * )err", imp.name(), entry_name, iat_address, section->name());
+ * if
+ * (!section->has_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA))
+ * { return error(R"err(
+ * {}:{} IAT: {:#010x} -- Missing CNT_INITIALIZED_DATA in the pointed
+ * section ('{}') )err", imp.name(), entry_name, iat_address,
+ * section->name());
* }
*/
if (!section->has_characteristic(Section::CHARACTERISTICS::MEM_READ)) {
return error(R"err(
- {}:{} IAT: 0x{:08x} -- Missing MEM_READ in the pointed section ('{}')
- )err", imp.name(), entry_name, iat_address, section->name());
+ {}:{} IAT: {:#010x} -- Missing MEM_READ in the pointed section ('{}')
+ )err",
+ imp.name(), entry_name, iat_address, section->name());
}
} else {
const Section* section = pe.section_from_rva(iat_address);
if (section == nullptr) {
return error("Can't find section associated with the IAT "
- "address: 0x{:08x}", iat_address);
+ "address: {:#010x}",
+ iat_address);
}
/*
- * if (!section->has_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)) {
- * return error(R"err(
- * {}:{} IAT: 0x{:08x} -- Missing CNT_INITIALIZED_DATA in the pointed section ('{}')
- * )err", imp.name(), entry_name, iat_address, section->name());
+ * if
+ * (!section->has_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA))
+ * { return error(R"err(
+ * {}:{} IAT: {:#010x} -- Missing CNT_INITIALIZED_DATA in the pointed
+ * section ('{}') )err", imp.name(), entry_name, iat_address,
+ * section->name());
* }
*/
if (!section->has_characteristic(Section::CHARACTERISTICS::MEM_READ)) {
return error(R"err(
- {}:{} IAT: 0x{:08x} -- Missing MEM_READ in the pointed section ('{}')
- )err", imp.name(), entry_name, iat_address, section->name());
+ {}:{} IAT: {:#010x} -- Missing MEM_READ in the pointed section ('{}')
+ )err",
+ imp.name(), entry_name, iat_address, section->name());
}
if (!section->has_characteristic(Section::CHARACTERISTICS::MEM_WRITE)) {
return error(R"err(
- {}:{} IAT: 0x{:08x} -- Missing MEM_WRITE in the pointed section ('{}')
- )err", imp.name(), entry_name, iat_address, section->name());
+ {}:{} IAT: {:#010x} -- Missing MEM_WRITE in the pointed section ('{}')
+ )err",
+ imp.name(), entry_name, iat_address, section->name());
}
if (!section->has_characteristic(Section::CHARACTERISTICS::CNT_CODE)) {
return error(R"err(
- {}:{} IAT: 0x{:08x} -- Missing CNT_CODE in the pointed section ('{}')
- )err", imp.name(), entry_name, iat_address, section->name());
+ {}:{} IAT: {:#010x} -- Missing CNT_CODE in the pointed section ('{}')
+ )err",
+ imp.name(), entry_name, iat_address, section->name());
}
}
-
}
}
return true;
@@ -550,7 +739,7 @@ bool LayoutChecker::check_tls() {
const TLS* tls = pe.tls();
const DataDirectory* tls_dir = pe.tls_dir();
- if (tls == nullptr) {
+ if (tls == nullptr || tls_dir == nullptr) {
return true;
}
const size_t ptr_size = this->ptr_size();
@@ -565,8 +754,10 @@ bool LayoutChecker::check_tls() {
return error("Missing MEM_READ for TLS section: '{}'", tls_sec->name());
}
- if (!tls_sec->has_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA)) {
- return error("Missing CNT_INITIALIZED_DATA for TLS section: '{}'", tls_sec->name());
+ if (!tls_sec->has_characteristic(Section::CHARACTERISTICS::CNT_INITIALIZED_DATA))
+ {
+ return error("Missing CNT_INITIALIZED_DATA for TLS section: '{}'",
+ tls_sec->name());
}
if (tls->addressof_index() == 0) {
@@ -575,21 +766,22 @@ bool LayoutChecker::check_tls() {
for (uint64_t addr : tls->callbacks()) {
if (addr <= imagebase) {
- return error("TLS callback: 0x{:016x} not in imagebase range", addr);
+ return error("TLS callback: {:#018x} not in imagebase range", addr);
}
const uint64_t rva = addr - imagebase;
const Section* sec = pe.section_from_rva(rva);
if (sec == nullptr) {
- return error("Can't find section associated with TLS callback: 0x{:016x}", addr);
+ return error("Can't find section associated with TLS callback: {:#018x}",
+ addr);
}
if (!sec->has_characteristic(Section::CHARACTERISTICS::MEM_READ)) {
- return error("Missing MEM_READ for TLS callback: 0x{:016x} ('{}')", addr,
+ return error("Missing MEM_READ for TLS callback: {:#018x} ('{}')", addr,
sec->name());
}
if (!sec->has_characteristic(Section::CHARACTERISTICS::MEM_EXECUTE)) {
- return error("Missing MEM_EXECUTE for TLS callback: 0x{:016x} ('{}')", addr,
+ return error("Missing MEM_EXECUTE for TLS callback: {:#018x} ('{}')", addr,
sec->name());
}
}
@@ -598,13 +790,14 @@ bool LayoutChecker::check_tls() {
int64_t addr_cbk_rva = addr_cbk - imagebase;
if (addr_cbk > 0 && addr_cbk_rva < 0) {
- return error("TLS's address of callbacks should be a VA. Addr=0x{:06x}, "
- "Imagebase=0x{:016x}", addr_cbk, imagebase);
+ return error("TLS's address of callbacks should be a VA. Addr={:#08x}, "
+ "Imagebase={:#018x}",
+ addr_cbk, imagebase);
}
// If the binary is pie, make sure it has relocations for the TLS structures
if (pe.is_pie()) {
- auto relocations = pe.relocations();
+ auto relocations = pe.relocations();
if (relocations.empty()) {
return error("Missing relocations for the TLS structures");
}
@@ -634,8 +827,8 @@ bool LayoutChecker::check_tls() {
}
if (nb_cbk_reloc < nb_cbk) {
- return error("Expecting #{} callback relocations. Found: #{}",
- nb_cbk, nb_cbk_reloc);
+ return error("Expecting #{} callback relocations. Found: #{}", nb_cbk,
+ nb_cbk_reloc);
}
size_t expected_hdr_reloc = 0;
@@ -652,6 +845,59 @@ bool LayoutChecker::check_tls() {
return true;
}
+
+bool LayoutChecker::check_relocations() {
+ auto relocations = pe.relocations();
+ if (relocations.empty()) {
+ return true;
+ }
+
+ const DataDirectory* reloc_dir = pe.relocation_dir();
+ if (reloc_dir == nullptr) {
+ return false;
+ }
+
+ const uint64_t vsize = pe.virtual_size();
+
+ const uint64_t size = reloc_dir->size();
+ uint64_t computed_size = 0;
+
+ for (const Relocation& R : relocations) {
+ if (R.block_size() % 4) {
+ return error("Relocation block {:#x} is not correctly aligned",
+ R.virtual_address());
+ }
+
+ if (R.virtual_address() > vsize) {
+ return error("Relocation block {:#x} is beyond the binary virtual size",
+ R.virtual_address());
+ }
+
+ if (R.entries().size() !=
+ (R.block_size() - sizeof(details::pe_base_relocation_block)) /
+ sizeof(uint16_t))
+ {
+ return error("Relocation block {:#x} is corrupted", R.virtual_address());
+ }
+
+ computed_size += R.block_size();
+
+ for (const RelocationEntry& E : R.entries()) {
+ if (E.address() > vsize) {
+ return error("Relocation {:#x} is beyond the binary virtual size",
+ E.address());
+ }
+ }
+ }
+
+ if (computed_size != size) {
+ return error("Size mismatch. DataDirectory={:#06x}, Computed={:#06x}", size,
+ computed_size);
+ }
+
+ return true;
+}
+
bool check_layout(const Binary& bin, std::string* error_info) {
LayoutChecker checker(bin);
if (!checker.check()) {
@@ -663,4 +909,3 @@ bool check_layout(const Binary& bin, std::string* error_info) {
return true;
}
}
-}
diff --git a/deps/LIEF/src/PE/resources/AcceleratorCodes.cpp b/deps/LIEF/src/PE/resources/AcceleratorCodes.cpp
index 525edc6982e..9251cc86588 100644
--- a/deps/LIEF/src/PE/resources/AcceleratorCodes.cpp
+++ b/deps/LIEF/src/PE/resources/AcceleratorCodes.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,181 +18,181 @@
namespace LIEF::PE {
const char* to_string(ACCELERATOR_CODES code) {
- #define ENTRY(X) std::pair(ACCELERATOR_CODES::X, #X)
- STRING_MAP enums2str {
- ENTRY(LBUTTON),
- ENTRY(RBUTTON),
- ENTRY(CANCEL),
- ENTRY(MBUTTON),
- ENTRY(XBUTTON1_K),
- ENTRY(XBUTTON2_K),
- ENTRY(BACK),
- ENTRY(TAB),
- ENTRY(CLEAR),
- ENTRY(RETURN),
- ENTRY(SHIFT),
- ENTRY(CONTROL),
- ENTRY(MENU),
- ENTRY(PAUSE),
- ENTRY(CAPITAL),
- ENTRY(KANA),
- ENTRY(IME_ON),
- ENTRY(JUNJA),
- ENTRY(FINAL),
- ENTRY(KANJI),
- ENTRY(IME_OFF),
- ENTRY(ESCAPE),
- ENTRY(CONVERT),
- ENTRY(NONCONVERT),
- ENTRY(ACCEPT),
- ENTRY(MODECHANGE),
- ENTRY(SPACE),
- ENTRY(PRIOR),
- ENTRY(NEXT),
- ENTRY(END),
- ENTRY(HOME),
- ENTRY(LEFT),
- ENTRY(UP),
- ENTRY(RIGHT),
- ENTRY(DOWN),
- ENTRY(SELECT),
- ENTRY(PRINT),
- ENTRY(EXECUTE),
- ENTRY(SNAPSHOT),
- ENTRY(INSERT),
- ENTRY(DELETE_K),
- ENTRY(HELP),
- ENTRY(NUM_0),
- ENTRY(NUM_1),
- ENTRY(NUM_2),
- ENTRY(NUM_3),
- ENTRY(NUM_4),
- ENTRY(NUM_5),
- ENTRY(NUM_6),
- ENTRY(NUM_7),
- ENTRY(NUM_8),
- ENTRY(NUM_9),
- ENTRY(A),
- ENTRY(B),
- ENTRY(C),
- ENTRY(D),
- ENTRY(E),
- ENTRY(F),
- ENTRY(G),
- ENTRY(H),
- ENTRY(I),
- ENTRY(J),
- ENTRY(K),
- ENTRY(L),
- ENTRY(M),
- ENTRY(N),
- ENTRY(O),
- ENTRY(P),
- ENTRY(Q),
- ENTRY(R),
- ENTRY(S),
- ENTRY(T),
- ENTRY(U),
- ENTRY(V),
- ENTRY(W),
- ENTRY(X),
- ENTRY(Y),
- ENTRY(Z),
- ENTRY(LWIN),
- ENTRY(RWIN),
- ENTRY(APPS),
- ENTRY(SLEEP),
- ENTRY(NUMPAD0),
- ENTRY(NUMPAD1),
- ENTRY(NUMPAD2),
- ENTRY(NUMPAD3),
- ENTRY(NUMPAD4),
- ENTRY(NUMPAD5),
- ENTRY(NUMPAD6),
- ENTRY(NUMPAD7),
- ENTRY(NUMPAD8),
- ENTRY(NUMPAD9),
- ENTRY(MULTIPLY),
- ENTRY(ADD),
- ENTRY(SEPARATOR),
- ENTRY(SUBTRACT),
- ENTRY(DECIMAL),
- ENTRY(DIVIDE),
- ENTRY(F1),
- ENTRY(F2),
- ENTRY(F3),
- ENTRY(F4),
- ENTRY(F5),
- ENTRY(F6),
- ENTRY(F7),
- ENTRY(F8),
- ENTRY(F9),
- ENTRY(F10),
- ENTRY(F11),
- ENTRY(F12),
- ENTRY(F13),
- ENTRY(F14),
- ENTRY(F15),
- ENTRY(F16),
- ENTRY(F17),
- ENTRY(F18),
- ENTRY(F19),
- ENTRY(F20),
- ENTRY(F21),
- ENTRY(F22),
- ENTRY(F23),
- ENTRY(F24),
- ENTRY(NUMLOCK),
- ENTRY(SCROLL),
- ENTRY(LSHIFT),
- ENTRY(RSHIFT),
- ENTRY(LCONTROL),
- ENTRY(RCONTROL),
- ENTRY(LMENU),
- ENTRY(RMENU),
- ENTRY(BROWSER_BACK),
- ENTRY(BROWSER_FORWARD),
- ENTRY(BROWSER_REFRESH),
- ENTRY(BROWSER_STOP),
- ENTRY(BROWSER_SEARCH),
- ENTRY(BROWSER_FAVORITES),
- ENTRY(BROWSER_HOME),
- ENTRY(VOLUME_MUTE),
- ENTRY(VOLUME_DOWN),
- ENTRY(VOLUME_UP),
- ENTRY(MEDIA_NEXT_TRACK),
- ENTRY(MEDIA_PREV_TRACK),
- ENTRY(MEDIA_STOP),
- ENTRY(MEDIA_PLAY_PAUSE),
- ENTRY(LAUNCH_MAIL),
- ENTRY(LAUNCH_MEDIA_SELECT),
- ENTRY(LAUNCH_APP1),
- ENTRY(LAUNCH_APP2),
- ENTRY(OEM_1),
- ENTRY(OEM_PLUS),
- ENTRY(OEM_COMMA),
- ENTRY(OEM_MINUS),
- ENTRY(OEM_PERIOD),
- ENTRY(OEM_2),
- ENTRY(OEM_4),
- ENTRY(OEM_5),
- ENTRY(OEM_6),
- ENTRY(OEM_7),
- ENTRY(OEM_8),
- ENTRY(OEM_102),
- ENTRY(PROCESSKEY),
- ENTRY(PACKET),
- ENTRY(ATTN),
- ENTRY(CRSEL),
- ENTRY(EXSEL),
- ENTRY(EREOF),
- ENTRY(PLAY),
- ENTRY(ZOOM),
- ENTRY(NONAME),
- ENTRY(PA1),
- ENTRY(OEM_CLEAR),
+#define ENTRY(X) std::pair(ACCELERATOR_CODES::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(LBUTTON),
+ ENTRY(RBUTTON),
+ ENTRY(CANCEL),
+ ENTRY(MBUTTON),
+ ENTRY(XBUTTON1_K),
+ ENTRY(XBUTTON2_K),
+ ENTRY(BACK),
+ ENTRY(TAB),
+ ENTRY(CLEAR),
+ ENTRY(RETURN),
+ ENTRY(SHIFT),
+ ENTRY(CONTROL),
+ ENTRY(MENU),
+ ENTRY(PAUSE),
+ ENTRY(CAPITAL),
+ ENTRY(KANA),
+ ENTRY(IME_ON),
+ ENTRY(JUNJA),
+ ENTRY(FINAL),
+ ENTRY(KANJI),
+ ENTRY(IME_OFF),
+ ENTRY(ESCAPE),
+ ENTRY(CONVERT),
+ ENTRY(NONCONVERT),
+ ENTRY(ACCEPT),
+ ENTRY(MODECHANGE),
+ ENTRY(SPACE),
+ ENTRY(PRIOR),
+ ENTRY(NEXT),
+ ENTRY(END),
+ ENTRY(HOME),
+ ENTRY(LEFT),
+ ENTRY(UP),
+ ENTRY(RIGHT),
+ ENTRY(DOWN),
+ ENTRY(SELECT),
+ ENTRY(PRINT),
+ ENTRY(EXECUTE),
+ ENTRY(SNAPSHOT),
+ ENTRY(INSERT),
+ ENTRY(DELETE_K),
+ ENTRY(HELP),
+ ENTRY(NUM_0),
+ ENTRY(NUM_1),
+ ENTRY(NUM_2),
+ ENTRY(NUM_3),
+ ENTRY(NUM_4),
+ ENTRY(NUM_5),
+ ENTRY(NUM_6),
+ ENTRY(NUM_7),
+ ENTRY(NUM_8),
+ ENTRY(NUM_9),
+ ENTRY(A),
+ ENTRY(B),
+ ENTRY(C),
+ ENTRY(D),
+ ENTRY(E),
+ ENTRY(F),
+ ENTRY(G),
+ ENTRY(H),
+ ENTRY(I),
+ ENTRY(J),
+ ENTRY(K),
+ ENTRY(L),
+ ENTRY(M),
+ ENTRY(N),
+ ENTRY(O),
+ ENTRY(P),
+ ENTRY(Q),
+ ENTRY(R),
+ ENTRY(S),
+ ENTRY(T),
+ ENTRY(U),
+ ENTRY(V),
+ ENTRY(W),
+ ENTRY(X),
+ ENTRY(Y),
+ ENTRY(Z),
+ ENTRY(LWIN),
+ ENTRY(RWIN),
+ ENTRY(APPS),
+ ENTRY(SLEEP),
+ ENTRY(NUMPAD0),
+ ENTRY(NUMPAD1),
+ ENTRY(NUMPAD2),
+ ENTRY(NUMPAD3),
+ ENTRY(NUMPAD4),
+ ENTRY(NUMPAD5),
+ ENTRY(NUMPAD6),
+ ENTRY(NUMPAD7),
+ ENTRY(NUMPAD8),
+ ENTRY(NUMPAD9),
+ ENTRY(MULTIPLY),
+ ENTRY(ADD),
+ ENTRY(SEPARATOR),
+ ENTRY(SUBTRACT),
+ ENTRY(DECIMAL),
+ ENTRY(DIVIDE),
+ ENTRY(F1),
+ ENTRY(F2),
+ ENTRY(F3),
+ ENTRY(F4),
+ ENTRY(F5),
+ ENTRY(F6),
+ ENTRY(F7),
+ ENTRY(F8),
+ ENTRY(F9),
+ ENTRY(F10),
+ ENTRY(F11),
+ ENTRY(F12),
+ ENTRY(F13),
+ ENTRY(F14),
+ ENTRY(F15),
+ ENTRY(F16),
+ ENTRY(F17),
+ ENTRY(F18),
+ ENTRY(F19),
+ ENTRY(F20),
+ ENTRY(F21),
+ ENTRY(F22),
+ ENTRY(F23),
+ ENTRY(F24),
+ ENTRY(NUMLOCK),
+ ENTRY(SCROLL),
+ ENTRY(LSHIFT),
+ ENTRY(RSHIFT),
+ ENTRY(LCONTROL),
+ ENTRY(RCONTROL),
+ ENTRY(LMENU),
+ ENTRY(RMENU),
+ ENTRY(BROWSER_BACK),
+ ENTRY(BROWSER_FORWARD),
+ ENTRY(BROWSER_REFRESH),
+ ENTRY(BROWSER_STOP),
+ ENTRY(BROWSER_SEARCH),
+ ENTRY(BROWSER_FAVORITES),
+ ENTRY(BROWSER_HOME),
+ ENTRY(VOLUME_MUTE),
+ ENTRY(VOLUME_DOWN),
+ ENTRY(VOLUME_UP),
+ ENTRY(MEDIA_NEXT_TRACK),
+ ENTRY(MEDIA_PREV_TRACK),
+ ENTRY(MEDIA_STOP),
+ ENTRY(MEDIA_PLAY_PAUSE),
+ ENTRY(LAUNCH_MAIL),
+ ENTRY(LAUNCH_MEDIA_SELECT),
+ ENTRY(LAUNCH_APP1),
+ ENTRY(LAUNCH_APP2),
+ ENTRY(OEM_1),
+ ENTRY(OEM_PLUS),
+ ENTRY(OEM_COMMA),
+ ENTRY(OEM_MINUS),
+ ENTRY(OEM_PERIOD),
+ ENTRY(OEM_2),
+ ENTRY(OEM_4),
+ ENTRY(OEM_5),
+ ENTRY(OEM_6),
+ ENTRY(OEM_7),
+ ENTRY(OEM_8),
+ ENTRY(OEM_102),
+ ENTRY(PROCESSKEY),
+ ENTRY(PACKET),
+ ENTRY(ATTN),
+ ENTRY(CRSEL),
+ ENTRY(EXSEL),
+ ENTRY(EREOF),
+ ENTRY(PLAY),
+ ENTRY(ZOOM),
+ ENTRY(NONAME),
+ ENTRY(PA1),
+ ENTRY(OEM_CLEAR),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(code); it != enums2str.end()) {
return it->second;
diff --git a/deps/LIEF/src/PE/resources/ResourceAccelerator.cpp b/deps/LIEF/src/PE/resources/ResourceAccelerator.cpp
index c4fb874153f..f35757d19f2 100644
--- a/deps/LIEF/src/PE/resources/ResourceAccelerator.cpp
+++ b/deps/LIEF/src/PE/resources/ResourceAccelerator.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,21 +25,22 @@
FMT_FORMATTER(LIEF::PE::ResourceAccelerator::FLAGS, LIEF::PE::to_string);
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
static constexpr auto ARRAY_FLAGS = {
- ResourceAccelerator::FLAGS::VIRTKEY, ResourceAccelerator::FLAGS::NOINVERT,
- ResourceAccelerator::FLAGS::SHIFT, ResourceAccelerator::FLAGS::CONTROL,
- ResourceAccelerator::FLAGS::ALT, ResourceAccelerator::FLAGS::END,
+ ResourceAccelerator::FLAGS::VIRTKEY, ResourceAccelerator::FLAGS::NOINVERT,
+ ResourceAccelerator::FLAGS::SHIFT, ResourceAccelerator::FLAGS::CONTROL,
+ ResourceAccelerator::FLAGS::ALT, ResourceAccelerator::FLAGS::END,
};
-ResourceAccelerator::ResourceAccelerator(const details::pe_resource_acceltableentry& entry) :
+ResourceAccelerator::ResourceAccelerator(
+ const details::pe_resource_acceltableentry& entry
+) :
flags_{entry.fFlags},
ansi_{entry.wAnsi},
id_{static_cast<uint16_t>(entry.wId)},
- padding_{entry.padding}
-{}
+ padding_{entry.padding} {}
void ResourceAccelerator::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -47,40 +48,30 @@ void ResourceAccelerator::accept(Visitor& visitor) const {
std::ostream& operator<<(std::ostream& os, const ResourceAccelerator& acc) {
const auto& flags = acc.flags_list();
- os << fmt::format("{} (0x{:04x}) id: 0x{:04x}, flags: {}",
- acc.ansi_str(), acc.ansi(), acc.id(),
- fmt::to_string(flags));
+ os << fmt::format("{} ({:#06x}) id: {:#06x}, flags: {}", acc.ansi_str(),
+ acc.ansi(), acc.id(), fmt::to_string(flags));
return os;
}
std::vector<ResourceAccelerator::FLAGS> ResourceAccelerator::flags_list() const {
std::vector<FLAGS> flags;
- std::copy_if(std::begin(ARRAY_FLAGS), std::end(ARRAY_FLAGS),
- std::back_inserter(flags),
- [this] (FLAGS f) { return has(f); });
+ std::copy_if(ARRAY_FLAGS.begin(), ARRAY_FLAGS.end(), std::back_inserter(flags),
+ [this](FLAGS f) { return has(f); });
return flags;
}
const char* to_string(ResourceAccelerator::FLAGS flag) {
switch (flag) {
- case ResourceAccelerator::FLAGS::VIRTKEY:
- return "VIRTKEY";
- case ResourceAccelerator::FLAGS::NOINVERT:
- return "NOINVERT";
- case ResourceAccelerator::FLAGS::SHIFT:
- return "SHIFT";
- case ResourceAccelerator::FLAGS::CONTROL:
- return "CONTROL";
- case ResourceAccelerator::FLAGS::ALT:
- return "ALT";
- case ResourceAccelerator::FLAGS::END:
- return "END";
- default:
- return "UNKNOWN";
+ case ResourceAccelerator::FLAGS::VIRTKEY: return "VIRTKEY";
+ case ResourceAccelerator::FLAGS::NOINVERT: return "NOINVERT";
+ case ResourceAccelerator::FLAGS::SHIFT: return "SHIFT";
+ case ResourceAccelerator::FLAGS::CONTROL: return "CONTROL";
+ case ResourceAccelerator::FLAGS::ALT: return "ALT";
+ case ResourceAccelerator::FLAGS::END: return "END";
+ default: return "UNKNOWN";
}
return "UNKNOWN";
}
}
-}
diff --git a/deps/LIEF/src/PE/resources/ResourceDialog.cpp b/deps/LIEF/src/PE/resources/ResourceDialog.cpp
index 5903a23671e..00cbb090a5d 100644
--- a/deps/LIEF/src/PE/resources/ResourceDialog.cpp
+++ b/deps/LIEF/src/PE/resources/ResourceDialog.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,7 +28,8 @@
#include "PE/resources/styles_array.hpp"
FMT_FORMATTER(LIEF::PE::ResourceDialog::DIALOG_STYLES, LIEF::PE::to_string);
-FMT_FORMATTER(LIEF::PE::ResourceDialog::WINDOW_EXTENDED_STYLES, LIEF::PE::to_string);
+FMT_FORMATTER(LIEF::PE::ResourceDialog::WINDOW_EXTENDED_STYLES,
+ LIEF::PE::to_string);
FMT_FORMATTER(LIEF::PE::ResourceDialog::WINDOW_STYLES, LIEF::PE::to_string);
namespace LIEF::PE {
@@ -40,14 +41,15 @@ static bool is_extended(BinaryStream& strm) {
return version == 1 && signature == 0xFFFF;
}
-ResourceDialog::dialogs_t ResourceDialog::parse(const uint8_t* buffer, size_t size) {
+ResourceDialog::dialogs_t ResourceDialog::parse(const uint8_t* buffer,
+ size_t size) {
if (size == 0) {
return {};
}
dialogs_t dialogs;
SpanStream strm(buffer, size);
- LIEF_DEBUG("Parsing dialogs from stream size: 0x{:08x}", size);
+ LIEF_DEBUG("Parsing dialogs from stream size: {:#010x}", size);
while (strm) {
std::unique_ptr<ResourceDialog> dia;
if (is_extended(strm)) {
@@ -76,76 +78,75 @@ ResourceDialog::dialogs_t ResourceDialog::parse(const ResourceData& node) {
return parse(content.data(), content.size());
}
-ok_error_t ResourceDialog::parse_menu(ResourceDialog& dialog, BinaryStream& stream) {
+ok_error_t ResourceDialog::parse_menu(ResourceDialog& dialog,
+ BinaryStream& stream) {
auto menu = stream.read<uint16_t>();
if (!menu) {
return make_error_code(menu.error());
}
switch (*menu) {
- case 0x0000:
- break;
+ case 0x0000: break;
case 0xFFFF:
- {
- auto ordinal = stream.read<uint16_t>();
- if (!ordinal) {
- return make_error_code(ordinal.error());
- }
- dialog.menu(*ordinal);
- break;
+ {
+ auto ordinal = stream.read<uint16_t>();
+ if (!ordinal) {
+ return make_error_code(ordinal.error());
}
+ dialog.menu(*ordinal);
+ break;
+ }
default:
- {
- stream.decrement_pos(2); // because of the first read<uint16_t>
- auto name = stream.read_u16string();
- if (!name) {
- return make_error_code(name.error());
- }
- dialog.menu(std::move(*name));
- break;
+ {
+ stream.decrement_pos(2); // because of the first read<uint16_t>
+ auto name = stream.read_u16string();
+ if (!name) {
+ return make_error_code(name.error());
}
+ dialog.menu(std::move(*name));
+ break;
+ }
}
stream.align(sizeof(uint16_t));
return ok();
}
-ok_error_t ResourceDialog::parse_class(ResourceDialog& dialog, BinaryStream& stream) {
+ok_error_t ResourceDialog::parse_class(ResourceDialog& dialog,
+ BinaryStream& stream) {
auto clazz = stream.read<uint16_t>();
if (!clazz) {
return make_error_code(clazz.error());
}
switch (*clazz) {
- case 0x0000:
- break;
+ case 0x0000: break;
case 0xFFFF:
- {
- auto ordinal = stream.read<uint16_t>();
- if (!ordinal) {
- return make_error_code(ordinal.error());
- }
- dialog.window_class(*ordinal);
- break;
+ {
+ auto ordinal = stream.read<uint16_t>();
+ if (!ordinal) {
+ return make_error_code(ordinal.error());
}
+ dialog.window_class(*ordinal);
+ break;
+ }
default:
- {
- stream.decrement_pos(2);
- auto name = stream.read_u16string();
- if (!name) {
- return make_error_code(name.error());
- }
- dialog.window_class(std::move(*name));
- break;
+ {
+ stream.decrement_pos(2);
+ auto name = stream.read_u16string();
+ if (!name) {
+ return make_error_code(name.error());
}
+ dialog.window_class(std::move(*name));
+ break;
+ }
}
stream.align(sizeof(uint16_t));
return ok();
}
ok_error_t ResourceDialog::parse_class(ResourceDialog::Item& item,
- BinaryStream& stream)
-{
+ BinaryStream& stream) {
auto clazz = stream.read<uint16_t>();
if (!clazz) {
return make_error_code(clazz.error());
@@ -153,31 +154,32 @@ ok_error_t ResourceDialog::parse_class(ResourceDialog::Item& item,
switch (*clazz) {
case 0xFFFF:
- {
- auto ordinal = stream.read<uint16_t>();
- if (!ordinal) {
- return make_error_code(ordinal.error());
- }
- item.clazz(*ordinal);
- break;
+ {
+ auto ordinal = stream.read<uint16_t>();
+ if (!ordinal) {
+ return make_error_code(ordinal.error());
}
+ item.clazz(*ordinal);
+ break;
+ }
default:
- {
- stream.decrement_pos(2);
- auto name = stream.read_u16string();
- if (!name) {
- return make_error_code(name.error());
- }
- item.clazz(std::move(*name));
- break;
+ {
+ stream.decrement_pos(2);
+ auto name = stream.read_u16string();
+ if (!name) {
+ return make_error_code(name.error());
}
+ item.clazz(std::move(*name));
+ break;
+ }
}
stream.align(sizeof(uint16_t));
return ok();
}
-ok_error_t ResourceDialog::parse_title(ResourceDialog& dialog, BinaryStream& stream) {
+ok_error_t ResourceDialog::parse_title(ResourceDialog& dialog,
+ BinaryStream& stream) {
auto title = stream.read_u16string();
if (!title) {
@@ -190,8 +192,7 @@ ok_error_t ResourceDialog::parse_title(ResourceDialog& dialog, BinaryStream& str
}
ok_error_t ResourceDialog::parse_title(ResourceDialog::Item& item,
- BinaryStream& stream)
-{
+ BinaryStream& stream) {
auto info = stream.read<uint16_t>();
if (!info) {
return make_error_code(info.error());
@@ -199,32 +200,31 @@ ok_error_t ResourceDialog::parse_title(ResourceDialog::Item& item,
switch (*info) {
case 0xFFFF:
- {
- auto ordinal = stream.read<uint16_t>();
- if (!ordinal) {
- return make_error_code(ordinal.error());
- }
- item.title(*ordinal);
- break;
+ {
+ auto ordinal = stream.read<uint16_t>();
+ if (!ordinal) {
+ return make_error_code(ordinal.error());
}
+ item.title(*ordinal);
+ break;
+ }
default:
- {
- stream.decrement_pos(2);
- auto name = stream.read_u16string();
- if (!name) {
- return make_error_code(name.error());
- }
- item.title(std::move(*name));
- break;
+ {
+ stream.decrement_pos(2);
+ auto name = stream.read_u16string();
+ if (!name) {
+ return make_error_code(name.error());
}
+ item.title(std::move(*name));
+ break;
+ }
}
stream.align(sizeof(uint16_t));
return ok();
}
-ok_error_t ResourceDialog::parse_creation_data(
- ResourceDialog::Item& item, BinaryStream& stream)
-{
+ok_error_t ResourceDialog::parse_creation_data(ResourceDialog::Item& item,
+ BinaryStream& stream) {
auto size = stream.read<uint16_t>();
if (!size) {
return make_error_code(size.error());
@@ -238,25 +238,27 @@ ok_error_t ResourceDialog::parse_creation_data(
std::vector<ResourceDialog::DIALOG_STYLES> ResourceDialog::styles_list() const {
std::vector<DIALOG_STYLES> flags;
- std::copy_if(std::begin(DIALOG_STYLES_ARRAY), std::end(DIALOG_STYLES_ARRAY),
+ std::copy_if(DIALOG_STYLES_ARRAY.begin(), DIALOG_STYLES_ARRAY.end(),
std::back_inserter(flags),
- [this] (DIALOG_STYLES f) { return has(f); });
+ [this](DIALOG_STYLES f) { return has(f); });
return flags;
}
-std::vector<ResourceDialog::WINDOW_STYLES> ResourceDialog::windows_styles_list() const {
+std::vector<ResourceDialog::WINDOW_STYLES>
+ ResourceDialog::windows_styles_list() const {
std::vector<WINDOW_STYLES> flags;
- std::copy_if(std::begin(WINDOW_STYLES_ARRAY), std::end(WINDOW_STYLES_ARRAY),
+ std::copy_if(WINDOW_STYLES_ARRAY.begin(), WINDOW_STYLES_ARRAY.end(),
std::back_inserter(flags),
- [this] (WINDOW_STYLES f) { return has(f); });
+ [this](WINDOW_STYLES f) { return has(f); });
return flags;
}
-std::vector<ResourceDialog::WINDOW_EXTENDED_STYLES> ResourceDialog::windows_ext_styles_list() const {
+std::vector<ResourceDialog::WINDOW_EXTENDED_STYLES>
+ ResourceDialog::windows_ext_styles_list() const {
std::vector<WINDOW_EXTENDED_STYLES> flags;
- std::copy_if(std::begin(WINDOW_EXTENDED_STYLES_ARRAY), std::end(WINDOW_EXTENDED_STYLES_ARRAY),
- std::back_inserter(flags),
- [this] (WINDOW_EXTENDED_STYLES f) { return has(f); });
+ std::copy_if(WINDOW_EXTENDED_STYLES_ARRAY.begin(),
+ WINDOW_EXTENDED_STYLES_ARRAY.end(), std::back_inserter(flags),
+ [this](WINDOW_EXTENDED_STYLES f) { return has(f); });
return flags;
}
@@ -273,21 +275,20 @@ std::string ResourceDialog::ordinal_or_str_t::to_string() const {
}
std::vector<ResourceDialog::WINDOW_STYLES>
- ResourceDialog::Item::window_styles() const {
+ ResourceDialog::Item::window_styles() const {
std::vector<WINDOW_STYLES> flags;
- std::copy_if(std::begin(WINDOW_STYLES_ARRAY), std::end(WINDOW_STYLES_ARRAY),
+ std::copy_if(WINDOW_STYLES_ARRAY.begin(), WINDOW_STYLES_ARRAY.end(),
std::back_inserter(flags),
- [this] (WINDOW_STYLES f) { return has(f); });
+ [this](WINDOW_STYLES f) { return has(f); });
return flags;
}
std::vector<ResourceDialog::CONTROL_STYLES>
- ResourceDialog::Item::control_styles() const
-{
+ ResourceDialog::Item::control_styles() const {
std::vector<CONTROL_STYLES> flags;
- std::copy_if(std::begin(CONTROL_STYLES_ARRAY), std::end(CONTROL_STYLES_ARRAY),
+ std::copy_if(CONTROL_STYLES_ARRAY.begin(), CONTROL_STYLES_ARRAY.end(),
std::back_inserter(flags),
- [this] (CONTROL_STYLES f) { return has(f); });
+ [this](CONTROL_STYLES f) { return has(f); });
return flags;
}
@@ -300,25 +301,15 @@ ResourceDialog& ResourceDialog::title(const std::string& title) {
const char* to_string(ResourceDialog::DIALOG_STYLES e) {
- #define ENTRY(X) std::pair(ResourceDialog::DIALOG_STYLES::X, #X)
- STRING_MAP enums2str {
- ENTRY(ABSALIGN),
- ENTRY(SYSMODAL),
- ENTRY(LOCALEDIT),
- ENTRY(SETFONT),
- ENTRY(MODALFRAME),
- ENTRY(NOIDLEMSG),
- ENTRY(SETFOREGROUND),
- ENTRY(S3DLOOK),
- ENTRY(FIXEDSYS),
- ENTRY(NOFAILCREATE),
- ENTRY(CONTROL),
- ENTRY(CENTER),
- ENTRY(CENTERMOUSE),
- ENTRY(CONTEXTHELP),
- ENTRY(SHELLFONT),
+#define ENTRY(X) std::pair(ResourceDialog::DIALOG_STYLES::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(ABSALIGN), ENTRY(SYSMODAL), ENTRY(LOCALEDIT),
+ ENTRY(SETFONT), ENTRY(MODALFRAME), ENTRY(NOIDLEMSG),
+ ENTRY(SETFOREGROUND), ENTRY(S3DLOOK), ENTRY(FIXEDSYS),
+ ENTRY(NOFAILCREATE), ENTRY(CONTROL), ENTRY(CENTER),
+ ENTRY(CENTERMOUSE), ENTRY(CONTEXTHELP), ENTRY(SHELLFONT),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -327,28 +318,15 @@ const char* to_string(ResourceDialog::DIALOG_STYLES e) {
}
const char* to_string(ResourceDialog::WINDOW_STYLES e) {
- #define ENTRY(X) std::pair(ResourceDialog::WINDOW_STYLES::X, #X)
- STRING_MAP enums2str {
- ENTRY(OVERLAPPED),
- ENTRY(POPUP),
- ENTRY(CHILD),
- ENTRY(MINIMIZE),
- ENTRY(VISIBLE),
- ENTRY(DISABLED),
- ENTRY(CLIPSIBLINGS),
- ENTRY(CLIPCHILDREN),
- ENTRY(MAXIMIZE),
- ENTRY(CAPTION),
- ENTRY(BORDER),
- ENTRY(DLGFRAME),
- ENTRY(VSCROLL),
- ENTRY(HSCROLL),
- ENTRY(SYSMENU),
- ENTRY(THICKFRAME),
- ENTRY(GROUP),
- ENTRY(TABSTOP),
+#define ENTRY(X) std::pair(ResourceDialog::WINDOW_STYLES::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(OVERLAPPED), ENTRY(POPUP), ENTRY(CHILD), ENTRY(MINIMIZE),
+ ENTRY(VISIBLE), ENTRY(DISABLED), ENTRY(CLIPSIBLINGS), ENTRY(CLIPCHILDREN),
+ ENTRY(MAXIMIZE), ENTRY(CAPTION), ENTRY(BORDER), ENTRY(DLGFRAME),
+ ENTRY(VSCROLL), ENTRY(HSCROLL), ENTRY(SYSMENU), ENTRY(THICKFRAME),
+ ENTRY(GROUP), ENTRY(TABSTOP),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -358,27 +336,16 @@ const char* to_string(ResourceDialog::WINDOW_STYLES e) {
const char* to_string(ResourceDialog::WINDOW_EXTENDED_STYLES e) {
- #define ENTRY(X) std::pair(ResourceDialog::WINDOW_EXTENDED_STYLES::X, #X)
- STRING_MAP enums2str {
- ENTRY(DLGMODALFRAME),
- ENTRY(NOPARENTNOTIFY),
- ENTRY(TOPMOST),
- ENTRY(ACCEPTFILES),
- ENTRY(TRANSPARENT_STY),
- ENTRY(MDICHILD),
- ENTRY(TOOLWINDOW),
- ENTRY(WINDOWEDGE),
- ENTRY(CLIENTEDGE),
- ENTRY(CONTEXTHELP),
- ENTRY(RIGHT),
- ENTRY(LEFT),
- ENTRY(RTLREADING),
- ENTRY(LEFTSCROLLBAR),
- ENTRY(CONTROLPARENT),
- ENTRY(STATICEDGE),
- ENTRY(APPWINDOW),
+#define ENTRY(X) std::pair(ResourceDialog::WINDOW_EXTENDED_STYLES::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(DLGMODALFRAME), ENTRY(NOPARENTNOTIFY), ENTRY(TOPMOST),
+ ENTRY(ACCEPTFILES), ENTRY(TRANSPARENT_STY), ENTRY(MDICHILD),
+ ENTRY(TOOLWINDOW), ENTRY(WINDOWEDGE), ENTRY(CLIENTEDGE),
+ ENTRY(CONTEXTHELP), ENTRY(RIGHT), ENTRY(LEFT),
+ ENTRY(RTLREADING), ENTRY(LEFTSCROLLBAR), ENTRY(CONTROLPARENT),
+ ENTRY(STATICEDGE), ENTRY(APPWINDOW),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -387,21 +354,13 @@ const char* to_string(ResourceDialog::WINDOW_EXTENDED_STYLES e) {
}
const char* to_string(ResourceDialog::CONTROL_STYLES e) {
- #define ENTRY(X) std::pair(ResourceDialog::CONTROL_STYLES::X, #X)
- STRING_MAP enums2str {
- ENTRY(TOP),
- ENTRY(NOMOVEY),
- ENTRY(BOTTOM),
- ENTRY(NORESIZE),
- ENTRY(NOPARENTALIGN),
- ENTRY(ADJUSTABLE),
- ENTRY(NODIVIDER),
- ENTRY(VERT),
- ENTRY(LEFT),
- ENTRY(RIGHT),
- ENTRY(NOMOVEX),
+#define ENTRY(X) std::pair(ResourceDialog::CONTROL_STYLES::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(TOP), ENTRY(NOMOVEY), ENTRY(BOTTOM), ENTRY(NORESIZE),
+ ENTRY(NOPARENTALIGN), ENTRY(ADJUSTABLE), ENTRY(NODIVIDER), ENTRY(VERT),
+ ENTRY(LEFT), ENTRY(RIGHT), ENTRY(NOMOVEX),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -410,4 +369,3 @@ const char* to_string(ResourceDialog::CONTROL_STYLES e) {
}
}
-
diff --git a/deps/LIEF/src/PE/resources/ResourceDialogExtended.cpp b/deps/LIEF/src/PE/resources/ResourceDialogExtended.cpp
index 8cf3b612c4b..f2d41d5a61f 100644
--- a/deps/LIEF/src/PE/resources/ResourceDialogExtended.cpp
+++ b/deps/LIEF/src/PE/resources/ResourceDialogExtended.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,13 +25,15 @@
#include "fmt_formatter.hpp"
FMT_FORMATTER(LIEF::PE::ResourceDialog::DIALOG_STYLES, LIEF::PE::to_string);
-FMT_FORMATTER(LIEF::PE::ResourceDialog::WINDOW_EXTENDED_STYLES, LIEF::PE::to_string);
+FMT_FORMATTER(LIEF::PE::ResourceDialog::WINDOW_EXTENDED_STYLES,
+ LIEF::PE::to_string);
FMT_FORMATTER(LIEF::PE::ResourceDialog::WINDOW_STYLES, LIEF::PE::to_string);
FMT_FORMATTER(LIEF::PE::ResourceDialog::CONTROL_STYLES, LIEF::PE::to_string);
namespace LIEF::PE {
-result<ResourceDialogExtended::Item> ResourceDialogExtended::Item::parse(BinaryStream& stream) {
+result<ResourceDialogExtended::Item>
+ ResourceDialogExtended::Item::parse(BinaryStream& stream) {
// typedef struct {
// DWORD helpID;
// DWORD exStyle;
@@ -88,13 +90,14 @@ result<ResourceDialogExtended::Item> ResourceDialogExtended::Item::parse(BinaryS
}
ResourceDialogExtended::Item item;
- item
- .help_id(*helpID)
- .style(*style)
- .extended_style(*exStyle)
- .x(*x).y(*y)
- .cx(*cx).cy(*cy)
- .id(*id);
+ item.help_id(*helpID)
+ .style(*style)
+ .extended_style(*exStyle)
+ .x(*x)
+ .y(*y)
+ .cx(*cx)
+ .cy(*cy)
+ .id(*id);
stream.align(sizeof(uint16_t));
@@ -147,8 +150,7 @@ ok_error_t parse_typeface(ResourceDialogExtended& dialog, BinaryStream& stream)
return make_error_code(typeface.error());
}
- dialog.font(*point_size, *weight, (bool)*italic,
- *charset, std::move(*typeface));
+ dialog.font(*point_size, *weight, (bool)*italic, *charset, std::move(*typeface));
stream.align(sizeof(uint16_t));
return ok();
@@ -156,8 +158,7 @@ ok_error_t parse_typeface(ResourceDialogExtended& dialog, BinaryStream& stream)
std::unique_ptr<ResourceDialogExtended>
- ResourceDialogExtended::create(BinaryStream& stream)
-{
+ ResourceDialogExtended::create(BinaryStream& stream) {
auto version = stream.read<uint16_t>();
if (!version) {
return nullptr;
@@ -211,14 +212,15 @@ std::unique_ptr<ResourceDialogExtended>
auto dialog = std::make_unique<ResourceDialogExtended>();
(*dialog)
- .version(*version)
- .signature(*signature)
- .help_id(*help_id)
- .extended_style(*ext_style)
- .style(*style)
- .x(*x).y(*y)
- .cx(*cx).cy(*cy)
- ;
+ .version(*version)
+ .signature(*signature)
+ .help_id(*help_id)
+ .extended_style(*ext_style)
+ .style(*style)
+ .x(*x)
+ .y(*y)
+ .cx(*cx)
+ .cy(*cy);
if (auto is_ok = parse_menu(*dialog, stream); !is_ok) {
return dialog;
@@ -236,11 +238,11 @@ std::unique_ptr<ResourceDialogExtended>
return dialog;
}
- LIEF_DEBUG("Dialog nb item: #{}", *nb_items);
+ LIEF_DEBUG("Dialog item count: {}", *nb_items);
for (size_t i = 0; i < *nb_items; ++i) {
auto item = ResourceDialogExtended::Item::parse(stream);
if (!item) {
- LIEF_INFO("Can't parse (regular) Dialog item #{:02d}", i);
+ LIEF_INFO("Failed to parse dialog item #{:02d}", i);
return dialog;
}
dialog->add_item(*item);
@@ -260,27 +262,13 @@ std::string ResourceDialogExtended::Item::to_string() const {
{
if (auto ord = clazz().ordinal) {
switch ((WINDOW_CLASS)*ord) {
- case WINDOW_CLASS::BUTTON:
- win_class_str = "Button";
- break;
- case WINDOW_CLASS::EDIT:
- win_class_str = "Edit";
- break;
- case WINDOW_CLASS::STATIC:
- win_class_str = "Static";
- break;
- case WINDOW_CLASS::LIST_BOX:
- win_class_str = "List box";
- break;
- case WINDOW_CLASS::SCROLL_BAR:
- win_class_str = "Scroll bar";
- break;
- case WINDOW_CLASS::COMBO_BOX:
- win_class_str = "Combo box";
- break;
- default:
- win_class_str = fmt::format("unknown (0x{:04x})", *ord);
- break;
+ case WINDOW_CLASS::BUTTON: win_class_str = "Button"; break;
+ case WINDOW_CLASS::EDIT: win_class_str = "Edit"; break;
+ case WINDOW_CLASS::STATIC: win_class_str = "Static"; break;
+ case WINDOW_CLASS::LIST_BOX: win_class_str = "List box"; break;
+ case WINDOW_CLASS::SCROLL_BAR: win_class_str = "Scroll bar"; break;
+ case WINDOW_CLASS::COMBO_BOX: win_class_str = "Combo box"; break;
+ default: win_class_str = fmt::format("unknown ({:#06x})", *ord); break;
}
} else {
win_class_str = u16tou8(clazz().string);
@@ -290,8 +278,7 @@ std::string ResourceDialogExtended::Item::to_string() const {
return fmt::format("CONTROL '{}', {}, {}, {} {}, {}, {}, {}, {}",
title().to_string(), id(), win_class_str,
fmt::join(control_styles(), " | "),
- fmt::join(window_styles(), " | "),
- x(), y(), cx(), cy());
+ fmt::join(window_styles(), " | "), x(), y(), cx(), cy());
}
std::string ResourceDialogExtended::to_string() const {
diff --git a/deps/LIEF/src/PE/resources/ResourceDialogRegular.cpp b/deps/LIEF/src/PE/resources/ResourceDialogRegular.cpp
index da76f521a6b..3636af6ab37 100644
--- a/deps/LIEF/src/PE/resources/ResourceDialogRegular.cpp
+++ b/deps/LIEF/src/PE/resources/ResourceDialogRegular.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,7 +25,8 @@
#include "fmt_formatter.hpp"
FMT_FORMATTER(LIEF::PE::ResourceDialog::DIALOG_STYLES, LIEF::PE::to_string);
-FMT_FORMATTER(LIEF::PE::ResourceDialog::WINDOW_EXTENDED_STYLES, LIEF::PE::to_string);
+FMT_FORMATTER(LIEF::PE::ResourceDialog::WINDOW_EXTENDED_STYLES,
+ LIEF::PE::to_string);
FMT_FORMATTER(LIEF::PE::ResourceDialog::WINDOW_STYLES, LIEF::PE::to_string);
FMT_FORMATTER(LIEF::PE::ResourceDialog::CONTROL_STYLES, LIEF::PE::to_string);
@@ -55,8 +56,7 @@ ok_error_t parse_font_info(ResourceDialogRegular& dialog, BinaryStream& stream)
}
result<ResourceDialogRegular::Item>
- ResourceDialogRegular::Item::parse(BinaryStream& stream)
-{
+ ResourceDialogRegular::Item::parse(BinaryStream& stream) {
stream.align(sizeof(uint32_t));
auto style = stream.read<uint32_t>();
@@ -95,13 +95,13 @@ result<ResourceDialogRegular::Item>
}
ResourceDialogRegular::Item item;
- item
- .style(*style)
- .extended_style(*dwExtendedStyle)
- .x(*x).y(*y)
- .cx(*cx).cy(*cy)
- .id((int32_t)*id)
- ;
+ item.style(*style)
+ .extended_style(*dwExtendedStyle)
+ .x(*x)
+ .y(*y)
+ .cx(*cx)
+ .cy(*cy)
+ .id((int32_t)*id);
stream.align(sizeof(uint16_t));
if (auto is_ok = parse_class(item, stream); !is_ok) {
@@ -120,8 +120,7 @@ result<ResourceDialogRegular::Item>
}
std::unique_ptr<ResourceDialogRegular>
- ResourceDialogRegular::create(BinaryStream& stream)
-{
+ ResourceDialogRegular::create(BinaryStream& stream) {
LIEF_DEBUG("Parsing regular dialog");
auto style = stream.read<uint32_t>();
if (!style) {
@@ -161,11 +160,12 @@ std::unique_ptr<ResourceDialogRegular>
auto dialog = std::make_unique<ResourceDialogRegular>();
(*dialog)
- .style(*style)
- .extended_style(*dwExtendedStyle)
- .x(*x).y(*y)
- .cx(*cx).cy(*cy)
- ;
+ .style(*style)
+ .extended_style(*dwExtendedStyle)
+ .x(*x)
+ .y(*y)
+ .cx(*cx)
+ .cy(*cy);
if (auto is_ok = parse_menu(*dialog, stream); !is_ok) {
return dialog;
@@ -183,11 +183,11 @@ std::unique_ptr<ResourceDialogRegular>
return dialog;
}
- LIEF_DEBUG("Dialog nb item: #{}", *nb_items);
+ LIEF_DEBUG("Dialog item count: {}", *nb_items);
for (size_t i = 0; i < *nb_items; ++i) {
auto item = ResourceDialogRegular::Item::parse(stream);
if (!item) {
- LIEF_INFO("Can't parse (regular) Dialog item #{:02d}", i);
+ LIEF_INFO("Failed to parse dialog item #{:02d}", i);
return dialog;
}
@@ -203,27 +203,13 @@ std::string ResourceDialogRegular::Item::to_string() const {
{
if (auto ord = clazz().ordinal) {
switch ((WINDOW_CLASS)*ord) {
- case WINDOW_CLASS::BUTTON:
- win_class_str = "Button";
- break;
- case WINDOW_CLASS::EDIT:
- win_class_str = "Edit";
- break;
- case WINDOW_CLASS::STATIC:
- win_class_str = "Static";
- break;
- case WINDOW_CLASS::LIST_BOX:
- win_class_str = "List box";
- break;
- case WINDOW_CLASS::SCROLL_BAR:
- win_class_str = "Scroll bar";
- break;
- case WINDOW_CLASS::COMBO_BOX:
- win_class_str = "Combo box";
- break;
- default:
- win_class_str = fmt::format("unknown (0x{:04x})", *ord);
- break;
+ case WINDOW_CLASS::BUTTON: win_class_str = "Button"; break;
+ case WINDOW_CLASS::EDIT: win_class_str = "Edit"; break;
+ case WINDOW_CLASS::STATIC: win_class_str = "Static"; break;
+ case WINDOW_CLASS::LIST_BOX: win_class_str = "List box"; break;
+ case WINDOW_CLASS::SCROLL_BAR: win_class_str = "Scroll bar"; break;
+ case WINDOW_CLASS::COMBO_BOX: win_class_str = "Combo box"; break;
+ default: win_class_str = fmt::format("unknown ({:#06x})", *ord); break;
}
} else {
win_class_str = u16tou8(clazz().string);
@@ -233,8 +219,7 @@ std::string ResourceDialogRegular::Item::to_string() const {
return fmt::format("CONTROL '{}', {}, {}, {} {}, {}, {}, {}, {}",
title().to_string(), id(), win_class_str,
fmt::join(control_styles(), " | "),
- fmt::join(window_styles(), " | "),
- x(), y(), cx(), cy());
+ fmt::join(window_styles(), " | "), x(), y(), cx(), cy());
}
std::string ResourceDialogRegular::font_t::to_string() const {
diff --git a/deps/LIEF/src/PE/resources/ResourceIcon.cpp b/deps/LIEF/src/PE/resources/ResourceIcon.cpp
index 56f1bb42704..d6b0ab4006a 100644
--- a/deps/LIEF/src/PE/resources/ResourceIcon.cpp
+++ b/deps/LIEF/src/PE/resources/ResourceIcon.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,8 +25,8 @@
#include "logging.hpp"
#include <spdlog/fmt/fmt.h>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
ResourceIcon::ResourceIcon(const details::pe_resource_icon_group& header) :
width_{header.width},
@@ -35,8 +35,7 @@ ResourceIcon::ResourceIcon(const details::pe_resource_icon_group& header) :
reserved_{header.reserved},
planes_{header.planes},
bit_count_{header.bit_count},
- id_{header.ID}
-{}
+ id_{header.ID} {}
ResourceIcon::ResourceIcon(const details::pe_icon_header& header) :
@@ -46,18 +45,18 @@ ResourceIcon::ResourceIcon(const details::pe_icon_header& header) :
reserved_{header.reserved},
planes_{header.planes},
bit_count_{header.bit_count},
- id_{static_cast<uint32_t>(-1)}
-{}
+ id_{static_cast<uint32_t>(-1)} {}
-result<ResourceIcon> ResourceIcon::from_serialization(const uint8_t* buffer, size_t size) {
- const uint32_t minsz = sizeof(details::pe_resource_icon_dir) +
- sizeof(details::pe_icon_header);
+result<ResourceIcon> ResourceIcon::from_serialization(const uint8_t* buffer,
+ size_t size) {
+ const uint32_t minsz =
+ sizeof(details::pe_resource_icon_dir) + sizeof(details::pe_icon_header);
if (size < minsz) {
return make_error_code(lief_errors::read_error);
}
SpanStream stream(buffer, size);
- /* reserved */stream.read<uint16_t>();
+ /* reserved */ stream.read<uint16_t>();
auto type = stream.read<uint16_t>().value_or(0);
if (type != 1) {
return make_error_code(lief_errors::corrupted);
@@ -102,35 +101,33 @@ std::vector<uint8_t> ResourceIcon::serialize() const {
sizeof(details::pe_icon_header) + pixels_.size());
ios
- // pe_resource_icon_dir header
- .write<uint16_t>(/*reserved*/0)
- .write<uint16_t>(/*type=icon*/1)
- .write<uint16_t>(/*count*/1)
- // pe_icon_header header
- .write<uint8_t>(width())
- .write<uint8_t>(height())
- .write<uint8_t>(color_count())
- .write<uint8_t>(reserved())
- .write<uint16_t>(planes())
- .write<uint16_t>(bit_count())
- .write<uint32_t>(size())
- .write<uint32_t>((uint32_t)ios.tellp() + sizeof(uint32_t))
- // Raw pixels
- .write(pixels())
- ;
+ // pe_resource_icon_dir header
+ .write<uint16_t>(/*reserved*/ 0)
+ .write<uint16_t>(/*type=icon*/ 1)
+ .write<uint16_t>(/*count*/ 1)
+ // pe_icon_header header
+ .write<uint8_t>(width())
+ .write<uint8_t>(height())
+ .write<uint8_t>(color_count())
+ .write<uint8_t>(reserved())
+ .write<uint16_t>(planes())
+ .write<uint16_t>(bit_count())
+ .write<uint32_t>(size())
+ .write<uint32_t>((uint32_t)ios.tellp() + sizeof(uint32_t))
+ // Raw pixels
+ .write(pixels());
return ios.raw();
}
void ResourceIcon::save(const std::string& filename) const {
std::ofstream output_file(filename,
- std::ios::out | std::ios::binary |
- std::ios::trunc);
+ std::ios::out | std::ios::binary | std::ios::trunc);
if (!output_file) {
- LIEF_ERR("Can't open {} for writing", filename);
+ LIEF_ERR("Failed to open {} for writing", filename);
return;
}
std::vector<uint8_t> raw = serialize();
- output_file.write((const char*)raw.data(), raw.size());
+ output_file.write(reinterpret_cast<const char*>(raw.data()), raw.size());
}
void ResourceIcon::accept(Visitor& visitor) const {
@@ -139,18 +136,18 @@ void ResourceIcon::accept(Visitor& visitor) const {
std::ostream& operator<<(std::ostream& os, const ResourceIcon& icon) {
static constexpr auto DEFAULT_ALIGN = 13;
- os << fmt::format("Icon id=0x{:04x}\n", icon.id());
- os << fmt::format(" {:{}}: {}x{}\n", "size", DEFAULT_ALIGN, icon.width(), icon.height());
- os << fmt::format(" {:{}}: {}\n", "color count", DEFAULT_ALIGN, icon.color_count());
+ os << fmt::format("Icon id={:#06x}\n", icon.id());
+ os << fmt::format(" {:{}}: {}x{}\n", "size", DEFAULT_ALIGN, icon.width(),
+ icon.height());
+ os << fmt::format(" {:{}}: {}\n", "color count", DEFAULT_ALIGN,
+ icon.color_count());
os << fmt::format(" {:{}}: {}\n", "reserved", DEFAULT_ALIGN, icon.reserved());
os << fmt::format(" {:{}}: {}\n", "planes", DEFAULT_ALIGN, icon.planes());
os << fmt::format(" {:{}}: {}\n", "bit count", DEFAULT_ALIGN, icon.bit_count());
- os << fmt::format(" {:{}}: 0x{:08x}\n", "pixel (hash)", DEFAULT_ALIGN, Hash::hash(icon.pixels()));
+ os << fmt::format(" {:{}}: {:#010x}\n", "pixel (hash)", DEFAULT_ALIGN,
+ Hash::hash(icon.pixels()));
return os;
}
-
}
-}
-
diff --git a/deps/LIEF/src/PE/resources/ResourceStringFileInfo.cpp b/deps/LIEF/src/PE/resources/ResourceStringFileInfo.cpp
index 636917cb50a..6580ca0472a 100644
--- a/deps/LIEF/src/PE/resources/ResourceStringFileInfo.cpp
+++ b/deps/LIEF/src/PE/resources/ResourceStringFileInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,11 +25,12 @@
#include "logging.hpp"
#include "internal_utils.hpp"
-namespace LIEF {
-namespace PE {
+namespace LIEF::PE {
-result<ResourceStringFileInfo> ResourceStringFileInfo::parse(BinaryStream& stream) {
+
+result<ResourceStringFileInfo>
+ ResourceStringFileInfo::parse(BinaryStream& stream) {
// typedef struct {
// WORD wLength;
// WORD wValueLength;
@@ -73,15 +74,14 @@ result<ResourceStringFileInfo> ResourceStringFileInfo::parse(BinaryStream& strea
return make_error_code(lief_errors::corrupted);
}
- info
- .type(*wType)
- .key(std::move(*szKey));
+ info.type(*wType).key(std::move(*szKey));
stream.align(sizeof(uint32_t));
while (stream) {
auto item = ResourceStringTable::parse(stream);
if (!item) {
- LIEF_WARN("Can't parse StringFileInfo.Children[{}]", info.children_.size());
+ LIEF_WARN("Failed to parse StringFileInfo.Children[{}]",
+ info.children_.size());
break;
}
info.add_child(std::move(*item));
@@ -111,4 +111,3 @@ std::ostream& operator<<(std::ostream& os, const ResourceStringFileInfo& info) {
}
-}
diff --git a/deps/LIEF/src/PE/resources/ResourceStringTable.cpp b/deps/LIEF/src/PE/resources/ResourceStringTable.cpp
index 3492a60429c..2478bbbdc01 100644
--- a/deps/LIEF/src/PE/resources/ResourceStringTable.cpp
+++ b/deps/LIEF/src/PE/resources/ResourceStringTable.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
+#include <spdlog/fmt/fmt.h>
#include <utility>
#include "LIEF/utils.hpp"
@@ -22,10 +22,7 @@
#include "LIEF/PE/resources/ResourceStringTable.hpp"
#include "LIEF/BinaryStream/BinaryStream.hpp"
-#include "logging.hpp"
-
-namespace LIEF {
-namespace PE {
+namespace LIEF::PE {
result<ResourceStringTable::entry_t> parse_string(BinaryStream& stream) {
// typedef struct {
@@ -37,7 +34,9 @@ result<ResourceStringTable::entry_t> parse_string(BinaryStream& stream) {
// WORD Value;
// } String;
auto wLength = stream.read<uint16_t>();
- if (!wLength) { return make_error_code(wLength.error()); }
+ if (!wLength) {
+ return make_error_code(wLength.error());
+ }
if (*wLength == 0) {
return make_error_code(lief_errors::read_error);
@@ -46,10 +45,14 @@ result<ResourceStringTable::entry_t> parse_string(BinaryStream& stream) {
const uint32_t end_offset = stream.pos() - sizeof(uint16_t) + *wLength;
auto wValueLength = stream.read<uint16_t>();
- if (!wValueLength) { return make_error_code(wValueLength.error()); }
+ if (!wValueLength) {
+ return make_error_code(wValueLength.error());
+ }
auto wType = stream.read<uint16_t>();
- if (!wType) { return make_error_code(wType.error()); }
+ if (!wType) {
+ return make_error_code(wType.error());
+ }
if (*wType != 0 && wType != 1) {
return make_error_code(lief_errors::corrupted);
@@ -58,7 +61,9 @@ result<ResourceStringTable::entry_t> parse_string(BinaryStream& stream) {
ResourceStringTable::entry_t entry;
auto szKey = stream.read_u16string();
- if (!szKey) { return make_error_code(szKey.error()); }
+ if (!szKey) {
+ return make_error_code(szKey.error());
+ }
entry.key = std::move(*szKey);
@@ -73,7 +78,9 @@ result<ResourceStringTable::entry_t> parse_string(BinaryStream& stream) {
}
auto Value = stream.read_u16string();
- if (!Value) { return entry; }
+ if (!Value) {
+ return entry;
+ }
entry.value = std::move(*Value);
@@ -92,20 +99,28 @@ result<ResourceStringTable> ResourceStringTable::parse(BinaryStream& stream) {
// } StringTable;
ResourceStringTable table;
auto wLength = stream.read<uint16_t>();
- if (!wLength) { return make_error_code(wLength.error()); }
+ if (!wLength) {
+ return make_error_code(wLength.error());
+ }
auto wValueLength = stream.read<uint16_t>();
- if (!wValueLength) { return make_error_code(wValueLength.error()); }
+ if (!wValueLength) {
+ return make_error_code(wValueLength.error());
+ }
auto wType = stream.read<uint16_t>();
- if (!wType) { return make_error_code(wType.error()); }
+ if (!wType) {
+ return make_error_code(wType.error());
+ }
if (*wType != 0 && wType != 1) {
return make_error_code(lief_errors::corrupted);
}
auto szKey = stream.read_u16string();
- if (!szKey) { return make_error_code(szKey.error()); }
+ if (!szKey) {
+ return make_error_code(szKey.error());
+ }
table.key(std::move(*szKey));
@@ -160,4 +175,3 @@ std::ostream& operator<<(std::ostream& os, const ResourceStringTable& table) {
}
}
-}
diff --git a/deps/LIEF/src/PE/resources/ResourceVar.cpp b/deps/LIEF/src/PE/resources/ResourceVar.cpp
index 90c2f14d650..5d8b391d60c 100644
--- a/deps/LIEF/src/PE/resources/ResourceVar.cpp
+++ b/deps/LIEF/src/PE/resources/ResourceVar.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,17 +13,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include <sstream>
#include "logging.hpp"
#include "LIEF/utils.hpp"
-#include "LIEF/Visitor.hpp"
#include "LIEF/PE/resources/ResourceVar.hpp"
#include "LIEF/BinaryStream/BinaryStream.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
result<ResourceVar> ResourceVar::parse(BinaryStream& stream) {
// typedef struct {
@@ -36,7 +34,9 @@ result<ResourceVar> ResourceVar::parse(BinaryStream& stream) {
// } Var;
ResourceVar var;
auto wLength = stream.read<uint16_t>();
- if (!wLength) { return make_error_code(wLength.error()); }
+ if (!wLength) {
+ return make_error_code(wLength.error());
+ }
if (*wLength == 0) {
return make_error_code(lief_errors::read_error);
@@ -45,25 +45,29 @@ result<ResourceVar> ResourceVar::parse(BinaryStream& stream) {
const uint32_t end_offset = stream.pos() - sizeof(uint16_t) + *wLength;
auto wValueLength = stream.read<uint16_t>();
- if (!wValueLength) { return make_error_code(wValueLength.error()); }
+ if (!wValueLength) {
+ return make_error_code(wValueLength.error());
+ }
auto wType = stream.read<uint16_t>();
- if (!wType) { return make_error_code(wType.error()); }
+ if (!wType) {
+ return make_error_code(wType.error());
+ }
if (*wType != 0 && wType != 1) {
return make_error_code(lief_errors::corrupted);
}
auto szKey = stream.read_u16string();
- if (!szKey) { return make_error_code(wType.error()); }
+ if (!szKey) {
+ return make_error_code(wType.error());
+ }
if (u16tou8(*szKey) != "Translation") {
return make_error_code(lief_errors::corrupted);
}
- var
- .key(std::move(*szKey))
- .type(*wType);
+ var.key(std::move(*szKey)).type(*wType);
stream.align(sizeof(uint32_t));
@@ -73,7 +77,7 @@ result<ResourceVar> ResourceVar::parse(BinaryStream& stream) {
for (size_t i = 0; i < nb_values; ++i) {
auto value = stream.read<uint32_t>();
if (!value) {
- LIEF_WARN("Can't parse value #{:02}", i);
+ LIEF_WARN("Failed to parse value #{:02}", i);
return var;
}
@@ -93,7 +97,7 @@ std::ostream& operator<<(std::ostream& os, const ResourceVar& var) {
std::vector<std::string> values;
values.reserve(var.values_.size());
for (uint32_t val : var.values()) {
- values.push_back(fmt::format("0x{:08x}", val));
+ values.push_back(fmt::format("{:#010x}", val));
}
os << fmt::format("{}: {}", var.key_u8(), fmt::join(values, ", "));
@@ -102,4 +106,3 @@ std::ostream& operator<<(std::ostream& os, const ResourceVar& var) {
}
-}
diff --git a/deps/LIEF/src/PE/resources/ResourceVarFileInfo.cpp b/deps/LIEF/src/PE/resources/ResourceVarFileInfo.cpp
index 61d3b1cefcb..3f9cdf9d000 100644
--- a/deps/LIEF/src/PE/resources/ResourceVarFileInfo.cpp
+++ b/deps/LIEF/src/PE/resources/ResourceVarFileInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,41 +25,47 @@
#include "internal_utils.hpp"
#include "logging.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
result<ResourceVarFileInfo> ResourceVarFileInfo::parse(BinaryStream& stream) {
ResourceVarFileInfo info;
auto wLength = stream.read<uint16_t>();
- if (!wLength) { return make_error_code(wLength.error()); }
+ if (!wLength) {
+ return make_error_code(wLength.error());
+ }
auto wValueLength = stream.read<uint16_t>();
- if (!wValueLength) { return make_error_code(wValueLength.error()); }
+ if (!wValueLength) {
+ return make_error_code(wValueLength.error());
+ }
auto wType = stream.read<uint16_t>();
- if (!wType) { return make_error_code(wType.error()); }
+ if (!wType) {
+ return make_error_code(wType.error());
+ }
if (*wType != 0 && wType != 1) {
return make_error_code(lief_errors::corrupted);
}
auto szKey = stream.read_u16string();
- if (!szKey) { return make_error_code(wType.error()); }
+ if (!szKey) {
+ return make_error_code(wType.error());
+ }
if (u16tou8(*szKey) != "VarFileInfo") {
return make_error_code(lief_errors::corrupted);
}
- info
- .type(*wType)
- .key(std::move(*szKey));
+ info.type(*wType).key(std::move(*szKey));
while (stream) {
stream.align(sizeof(uint32_t));
auto var = ResourceVar::parse(stream);
if (!var) {
- LIEF_WARN("Can't parse resource var #{}", info.vars_.size());
+ LIEF_WARN("Failed to parse resource var #{}", info.vars_.size());
return info;
}
info.add_var(std::move(*var));
@@ -90,4 +96,3 @@ std::ostream& operator<<(std::ostream& os, const ResourceVarFileInfo& info) {
}
-}
diff --git a/deps/LIEF/src/PE/resources/ResourceVersion.cpp b/deps/LIEF/src/PE/resources/ResourceVersion.cpp
index c3a50f86964..4e383ff690a 100644
--- a/deps/LIEF/src/PE/resources/ResourceVersion.cpp
+++ b/deps/LIEF/src/PE/resources/ResourceVersion.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -30,25 +30,29 @@
#include "frozen.hpp"
#include "fmt_formatter.hpp"
-FMT_FORMATTER(LIEF::PE::ResourceVersion::fixed_file_info_t::VERSION_OS, LIEF::PE::to_string);
-FMT_FORMATTER(LIEF::PE::ResourceVersion::fixed_file_info_t::FILE_TYPE, LIEF::PE::to_string);
-FMT_FORMATTER(LIEF::PE::ResourceVersion::fixed_file_info_t::FILE_TYPE_DETAILS, LIEF::PE::to_string);
-FMT_FORMATTER(LIEF::PE::ResourceVersion::fixed_file_info_t::FILE_FLAGS, LIEF::PE::to_string);
+FMT_FORMATTER(LIEF::PE::ResourceVersion::fixed_file_info_t::VERSION_OS,
+ LIEF::PE::to_string);
+FMT_FORMATTER(LIEF::PE::ResourceVersion::fixed_file_info_t::FILE_TYPE,
+ LIEF::PE::to_string);
+FMT_FORMATTER(LIEF::PE::ResourceVersion::fixed_file_info_t::FILE_TYPE_DETAILS,
+ LIEF::PE::to_string);
+FMT_FORMATTER(LIEF::PE::ResourceVersion::fixed_file_info_t::FILE_FLAGS,
+ LIEF::PE::to_string);
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
static constexpr auto FILE_FLAGS_ARRAY = {
- ResourceVersion::fixed_file_info_t::FILE_FLAGS::DEBUG,
- ResourceVersion::fixed_file_info_t::FILE_FLAGS::INFO_INFERRED,
- ResourceVersion::fixed_file_info_t::FILE_FLAGS::PATCHED,
- ResourceVersion::fixed_file_info_t::FILE_FLAGS::PRERELEASE,
- ResourceVersion::fixed_file_info_t::FILE_FLAGS::PRIVATEBUILD,
- ResourceVersion::fixed_file_info_t::FILE_FLAGS::SPECIALBUILD,
+ ResourceVersion::fixed_file_info_t::FILE_FLAGS::DEBUG,
+ ResourceVersion::fixed_file_info_t::FILE_FLAGS::INFO_INFERRED,
+ ResourceVersion::fixed_file_info_t::FILE_FLAGS::PATCHED,
+ ResourceVersion::fixed_file_info_t::FILE_FLAGS::PRERELEASE,
+ ResourceVersion::fixed_file_info_t::FILE_FLAGS::PRIVATEBUILD,
+ ResourceVersion::fixed_file_info_t::FILE_FLAGS::SPECIALBUILD,
};
-// True is the stream points to a StringFileInfo structure
+// True if the stream points to a StringFileInfo structure
inline bool is_string_file_info(BinaryStream& strm) {
ScopedStream scope(strm);
[[maybe_unused]] auto wLength = scope->read<uint16_t>().value_or(0);
@@ -62,7 +66,7 @@ inline bool is_string_file_info(BinaryStream& strm) {
return u16tou8(szKey) == "StringFileInfo";
}
-// True is the stream points to a VarFileInfo structure
+// True if the stream points to a VarFileInfo structure
inline bool is_var_file_info(BinaryStream& strm) {
ScopedStream scope(strm);
[[maybe_unused]] auto wLength = scope->read<uint16_t>().value_or(0);
@@ -117,14 +121,15 @@ result<ResourceVersion> ResourceVersion::parse(BinaryStream& stream) {
}
// The type of data in the version resource. This member is 1 if the version
- // resource contains text data and 0 if the version resource contains binary data.
+ // resource contains text data and 0 if the version resource contains binary
+ // data.
auto wType = stream.read<uint16_t>();
if (!wType) {
return make_error_code(wType.error());
}
if (*wType != 0 && *wType != 1) {
- LIEF_WARN("VS_VERSIONINFO.wType should be 0 or 1. Got: {}", *wType);
+ LIEF_WARN("VS_VERSIONINFO.wType should be 0 or 1, got {}", *wType);
return make_error_code(lief_errors::corrupted);
}
@@ -136,12 +141,13 @@ result<ResourceVersion> ResourceVersion::parse(BinaryStream& stream) {
std::string szKey_u8 = u16tou8(*szKey);
if (szKey_u8 != "VS_VERSION_INFO") {
- LIEF_WARN("VS_VERSIONINFO.szKey should be 'VS_VERSION_INFO'. Got: {}",
+ LIEF_WARN("VS_VERSIONINFO.szKey should be 'VS_VERSION_INFO', got {}",
szKey_u8);
return make_error_code(lief_errors::corrupted);
}
- // Contains as many zero words as necessary to align the Value member on a 32-bit boundary.
+ // Contains as many zero words as necessary to align the Value member on a 32-bit
+ // boundary.
stream.align(sizeof(uint32_t));
// Type: VS_FIXEDFILEINFO
@@ -155,7 +161,7 @@ result<ResourceVersion> ResourceVersion::parse(BinaryStream& stream) {
}
SpanStream fixed_strm(Value);
if (auto is_ok = parse_fixed_file_info(version, fixed_strm); !is_ok) {
- LIEF_WARN("Failed to parse the 'VS_FIXEDFILEINFO' structure");
+ LIEF_WARN("Failed to parse VS_FIXEDFILEINFO structure");
}
}
@@ -164,16 +170,14 @@ result<ResourceVersion> ResourceVersion::parse(BinaryStream& stream) {
// This member is optional.
stream.align(sizeof(uint32_t));
- version
- .type(*wType)
- .key(std::move(*szKey));
+ version.type(*wType).key(std::move(*szKey));
// Children:
// An array of zero or one StringFileInfo structures, and zero or one
// VarFileInfo structures that are children of the current VS_VERSIONINFO
// structure.
if (auto is_ok = parse_children(version, stream); !is_ok) {
- LIEF_WARN("Failed to parse 'VS_VERSIONINFO' children");
+ LIEF_WARN("Failed to parse VS_VERSIONINFO children");
}
LIEF_DEBUG("Bytes left: {}", stream.size() - stream.pos());
@@ -182,8 +186,7 @@ result<ResourceVersion> ResourceVersion::parse(BinaryStream& stream) {
ok_error_t ResourceVersion::parse_fixed_file_info(ResourceVersion& version,
- BinaryStream& stream)
-{
+ BinaryStream& stream) {
// typedef struct tagVS_FIXEDFILEINFO {
// DWORD dwSignature;
// DWORD dwStrucVersion;
@@ -201,50 +204,77 @@ ok_error_t ResourceVersion::parse_fixed_file_info(ResourceVersion& version,
// } VS_FIXEDFILEINFO;
// Contains the value 0xFEEF04BD. This is used with the szKey member of the
- // VS_VERSIONINFO structure when searching a file for the VS_FIXEDFILEINFO structure.
+ // VS_VERSIONINFO structure when searching a file for the VS_FIXEDFILEINFO
+ // structure.
auto dwSignature = stream.read<uint32_t>();
- if (!dwSignature) { return make_error_code(dwSignature.error()); }
+ if (!dwSignature) {
+ return make_error_code(dwSignature.error());
+ }
if (*dwSignature != fixed_file_info_t::SIGNATURE_VALUE) {
- LIEF_WARN("VS_FIXEDFILEINFO.dwSignature: expecting 0x{:08x}, got: 0x{:08x}",
+ LIEF_WARN("VS_FIXEDFILEINFO.dwSignature: expecting {:#010x}, got: {:#010x}",
fixed_file_info_t::SIGNATURE_VALUE, *dwSignature);
}
auto dwStrucVersion = stream.read<uint32_t>();
- if (!dwStrucVersion) { return make_error_code(dwStrucVersion.error()); }
+ if (!dwStrucVersion) {
+ return make_error_code(dwStrucVersion.error());
+ }
auto dwFileVersionMS = stream.read<uint32_t>();
- if (!dwFileVersionMS) { return make_error_code(dwFileVersionMS.error()); }
+ if (!dwFileVersionMS) {
+ return make_error_code(dwFileVersionMS.error());
+ }
auto dwFileVersionLS = stream.read<uint32_t>();
- if (!dwFileVersionLS) { return make_error_code(dwFileVersionLS.error()); }
+ if (!dwFileVersionLS) {
+ return make_error_code(dwFileVersionLS.error());
+ }
auto dwProductVersionMS = stream.read<uint32_t>();
- if (!dwProductVersionMS) { return make_error_code(dwProductVersionMS.error()); }
+ if (!dwProductVersionMS) {
+ return make_error_code(dwProductVersionMS.error());
+ }
auto dwProductVersionLS = stream.read<uint32_t>();
- if (!dwProductVersionLS) { return make_error_code(dwProductVersionLS.error()); }
+ if (!dwProductVersionLS) {
+ return make_error_code(dwProductVersionLS.error());
+ }
auto dwFileFlagsMask = stream.read<uint32_t>();
- if (!dwFileFlagsMask) { return make_error_code(dwFileFlagsMask.error()); }
+ if (!dwFileFlagsMask) {
+ return make_error_code(dwFileFlagsMask.error());
+ }
auto dwFileFlags = stream.read<uint32_t>();
- if (!dwFileFlags) { return make_error_code(dwFileFlags.error()); }
+ if (!dwFileFlags) {
+ return make_error_code(dwFileFlags.error());
+ }
auto dwFileOS = stream.read<uint32_t>();
- if (!dwFileOS) { return make_error_code(dwFileOS.error()); }
+ if (!dwFileOS) {
+ return make_error_code(dwFileOS.error());
+ }
auto dwFileType = stream.read<uint32_t>();
- if (!dwFileType) { return make_error_code(dwFileType.error()); }
+ if (!dwFileType) {
+ return make_error_code(dwFileType.error());
+ }
auto dwFileSubtype = stream.read<uint32_t>();
- if (!dwFileSubtype) { return make_error_code(dwFileSubtype.error()); }
+ if (!dwFileSubtype) {
+ return make_error_code(dwFileSubtype.error());
+ }
auto dwFileDateMS = stream.read<uint32_t>();
- if (!dwFileDateMS) { return make_error_code(dwFileDateMS.error()); }
+ if (!dwFileDateMS) {
+ return make_error_code(dwFileDateMS.error());
+ }
auto dwFileDateLS = stream.read<uint32_t>();
- if (!dwFileDateLS) { return make_error_code(dwFileDateLS.error()); }
+ if (!dwFileDateLS) {
+ return make_error_code(dwFileDateLS.error());
+ }
version.fixed_file_info_.signature = *dwSignature;
version.fixed_file_info_.struct_version = *dwStrucVersion;
@@ -272,7 +302,7 @@ inline std::string version_to_str(uint32_t lsb, uint32_t msb) {
std::string ResourceVersion::fixed_file_info_t::to_string() const {
static constexpr auto WIDTH = 20;
std::ostringstream oss;
- oss << fmt::format("{:{}}: 0x{:06x}\n", "Struct Version", WIDTH, struct_version);
+ oss << fmt::format("{:{}}: {:#08x}\n", "Struct Version", WIDTH, struct_version);
oss << fmt::format("{:{}}: {}\n", "File version", WIDTH,
version_to_str(file_version_ls, file_version_ms));
@@ -280,17 +310,17 @@ std::string ResourceVersion::fixed_file_info_t::to_string() const {
version_to_str(product_version_ls, product_version_ms));
if (file_flags != 0) {
- oss << fmt::format("{:{}}: {} (0x{:08x})\n", "Flags", WIDTH,
+ oss << fmt::format("{:{}}: {} ({:#010x})\n", "Flags", WIDTH,
fmt::to_string(flags()), file_flags);
}
- oss << fmt::format("{:{}}: {} (0x{:08x})\n", "File OS", WIDTH,
+ oss << fmt::format("{:{}}: {} ({:#010x})\n", "File OS", WIDTH,
VERSION_OS(file_os), file_os);
- oss << fmt::format("{:{}}: {} (0x{:08x})\n", "File Type", WIDTH,
+ oss << fmt::format("{:{}}: {} ({:#010x})\n", "File Type", WIDTH,
FILE_TYPE(file_type), file_type);
if (file_subtype > 0) {
- oss << fmt::format("{:{}}: {} (0x{:08x})\n", "File Subtype", WIDTH,
+ oss << fmt::format("{:{}}: {} ({:#010x})\n", "File Subtype", WIDTH,
file_type_details(), file_subtype);
}
@@ -303,18 +333,15 @@ std::string ResourceVersion::fixed_file_info_t::to_string() const {
}
std::vector<ResourceVersion::fixed_file_info_t::FILE_FLAGS>
- ResourceVersion::fixed_file_info_t::flags() const
-{
+ ResourceVersion::fixed_file_info_t::flags() const {
std::vector<FILE_FLAGS> out;
std::copy_if(FILE_FLAGS_ARRAY.begin(), FILE_FLAGS_ARRAY.end(),
- std::back_inserter(out),
- [this] (FILE_FLAGS c) { return has(c); });
+ std::back_inserter(out), [this](FILE_FLAGS c) { return has(c); });
return out;
}
ok_error_t ResourceVersion::parse_children(ResourceVersion& version,
- BinaryStream& stream)
-{
+ BinaryStream& stream) {
stream.align(sizeof(uint32_t));
@@ -332,7 +359,7 @@ ok_error_t ResourceVersion::parse_children(ResourceVersion& version,
SpanStream child_strm(payload);
if (auto is_ok = parse_child(version, child_strm); !is_ok) {
- LIEF_WARN("Failed to parse the first child");
+ LIEF_WARN("Failed to parse first child");
}
}
@@ -350,7 +377,7 @@ ok_error_t ResourceVersion::parse_children(ResourceVersion& version,
}
SpanStream child_strm(payload);
if (auto is_ok = parse_child(version, child_strm); !is_ok) {
- LIEF_WARN("Failed to parse the second child");
+ LIEF_WARN("Failed to parse second child");
}
}
return ok();
@@ -358,8 +385,7 @@ ok_error_t ResourceVersion::parse_children(ResourceVersion& version,
ok_error_t ResourceVersion::parse_child(ResourceVersion& version,
- BinaryStream& stream)
-{
+ BinaryStream& stream) {
if (is_var_file_info(stream)) {
return parse_var_file_info(version, stream);
}
@@ -372,8 +398,7 @@ ok_error_t ResourceVersion::parse_child(ResourceVersion& version,
}
ok_error_t ResourceVersion::parse_str_file_info(ResourceVersion& version,
- BinaryStream& stream)
-{
+ BinaryStream& stream) {
auto info = ResourceStringFileInfo::parse(stream);
if (!info) {
LIEF_DEBUG("Error: {}:{}", __FUNCTION__, __LINE__);
@@ -385,8 +410,7 @@ ok_error_t ResourceVersion::parse_str_file_info(ResourceVersion& version,
}
ok_error_t ResourceVersion::parse_var_file_info(ResourceVersion& version,
- BinaryStream& stream)
-{
+ BinaryStream& stream) {
auto info = ResourceVarFileInfo::parse(stream);
if (!info) {
LIEF_DEBUG("Error: {}:{}", __FUNCTION__, __LINE__);
@@ -420,16 +444,12 @@ std::ostream& operator<<(std::ostream& os, const ResourceVersion& version) {
}
const char* to_string(ResourceVersion::fixed_file_info_t::FILE_FLAGS e) {
- #define ENTRY(X) std::pair(ResourceVersion::fixed_file_info_t::FILE_FLAGS::X, #X)
- STRING_MAP enums2str {
- ENTRY(DEBUG),
- ENTRY(INFO_INFERRED),
- ENTRY(PATCHED),
- ENTRY(PRERELEASE),
- ENTRY(PRIVATEBUILD),
- ENTRY(SPECIALBUILD),
+#define ENTRY(X) std::pair(ResourceVersion::fixed_file_info_t::FILE_FLAGS::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(DEBUG), ENTRY(INFO_INFERRED), ENTRY(PATCHED),
+ ENTRY(PRERELEASE), ENTRY(PRIVATEBUILD), ENTRY(SPECIALBUILD),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -438,24 +458,15 @@ const char* to_string(ResourceVersion::fixed_file_info_t::FILE_FLAGS e) {
}
const char* to_string(ResourceVersion::fixed_file_info_t::VERSION_OS e) {
- #define ENTRY(X) std::pair(ResourceVersion::fixed_file_info_t::VERSION_OS::X, #X)
- STRING_MAP enums2str {
- ENTRY(DOS_WINDOWS16),
- ENTRY(DOS_WINDOWS32),
- ENTRY(NT),
- ENTRY(NT_WINDOWS32),
- ENTRY(OS216),
- ENTRY(OS216_PM16),
- ENTRY(OS232),
- ENTRY(OS232_PM32),
- ENTRY(PM16),
- ENTRY(PM32),
- ENTRY(UNKNOWN),
- ENTRY(WINCE),
- ENTRY(WINDOWS16),
- ENTRY(WINDOWS32),
+#define ENTRY(X) std::pair(ResourceVersion::fixed_file_info_t::VERSION_OS::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(DOS_WINDOWS16), ENTRY(DOS_WINDOWS32), ENTRY(NT),
+ ENTRY(NT_WINDOWS32), ENTRY(OS216), ENTRY(OS216_PM16),
+ ENTRY(OS232), ENTRY(OS232_PM32), ENTRY(PM16),
+ ENTRY(PM32), ENTRY(UNKNOWN), ENTRY(WINCE),
+ ENTRY(WINDOWS16), ENTRY(WINDOWS32),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -464,17 +475,12 @@ const char* to_string(ResourceVersion::fixed_file_info_t::VERSION_OS e) {
}
const char* to_string(ResourceVersion::fixed_file_info_t::FILE_TYPE e) {
- #define ENTRY(X) std::pair(ResourceVersion::fixed_file_info_t::FILE_TYPE::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNKNOWN),
- ENTRY(APP),
- ENTRY(DLL),
- ENTRY(DRV),
- ENTRY(FONT),
- ENTRY(STATIC_LIB),
- ENTRY(VXD),
+#define ENTRY(X) std::pair(ResourceVersion::fixed_file_info_t::FILE_TYPE::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(UNKNOWN), ENTRY(APP), ENTRY(DLL), ENTRY(DRV),
+ ENTRY(FONT), ENTRY(STATIC_LIB), ENTRY(VXD),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -483,26 +489,17 @@ const char* to_string(ResourceVersion::fixed_file_info_t::FILE_TYPE e) {
}
const char* to_string(ResourceVersion::fixed_file_info_t::FILE_TYPE_DETAILS e) {
- #define ENTRY(X) std::pair(ResourceVersion::fixed_file_info_t::FILE_TYPE_DETAILS::X, #X)
- STRING_MAP enums2str {
- ENTRY(DRV_COMM),
- ENTRY(DRV_DISPLAY),
- ENTRY(DRV_INPUTMETHOD),
- ENTRY(DRV_INSTALLABLE),
- ENTRY(DRV_KEYBOARD),
- ENTRY(DRV_LANGUAGE),
- ENTRY(DRV_MOUSE),
- ENTRY(DRV_NETWORK),
- ENTRY(DRV_PRINTER),
- ENTRY(DRV_SOUND),
- ENTRY(DRV_SYSTEM),
- ENTRY(DRV_VERSIONED_PRINTER),
- ENTRY(FONT_RASTER),
- ENTRY(FONT_TRUETYPE),
- ENTRY(FONT_VECTOR),
- ENTRY(UNKNOWN),
+#define ENTRY(X) \
+ std::pair(ResourceVersion::fixed_file_info_t::FILE_TYPE_DETAILS::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(DRV_COMM), ENTRY(DRV_DISPLAY), ENTRY(DRV_INPUTMETHOD),
+ ENTRY(DRV_INSTALLABLE), ENTRY(DRV_KEYBOARD), ENTRY(DRV_LANGUAGE),
+ ENTRY(DRV_MOUSE), ENTRY(DRV_NETWORK), ENTRY(DRV_PRINTER),
+ ENTRY(DRV_SOUND), ENTRY(DRV_SYSTEM), ENTRY(DRV_VERSIONED_PRINTER),
+ ENTRY(FONT_RASTER), ENTRY(FONT_TRUETYPE), ENTRY(FONT_VECTOR),
+ ENTRY(UNKNOWN),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -511,4 +508,3 @@ const char* to_string(ResourceVersion::fixed_file_info_t::FILE_TYPE_DETAILS e) {
}
}
-}
diff --git a/deps/LIEF/src/PE/resources/styles_array.hpp b/deps/LIEF/src/PE/resources/styles_array.hpp
index 8a5c4fb4067..eba0903134f 100644
--- a/deps/LIEF/src/PE/resources/styles_array.hpp
+++ b/deps/LIEF/src/PE/resources/styles_array.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,76 +19,76 @@
namespace LIEF::PE {
static constexpr auto DIALOG_STYLES_ARRAY = {
- ResourceDialog::DIALOG_STYLES::ABSALIGN,
- ResourceDialog::DIALOG_STYLES::SYSMODAL,
- ResourceDialog::DIALOG_STYLES::LOCALEDIT,
- ResourceDialog::DIALOG_STYLES::SETFONT,
- ResourceDialog::DIALOG_STYLES::MODALFRAME,
- ResourceDialog::DIALOG_STYLES::NOIDLEMSG,
- ResourceDialog::DIALOG_STYLES::SETFOREGROUND,
- ResourceDialog::DIALOG_STYLES::S3DLOOK,
- ResourceDialog::DIALOG_STYLES::FIXEDSYS,
- ResourceDialog::DIALOG_STYLES::NOFAILCREATE,
- ResourceDialog::DIALOG_STYLES::CONTROL,
- ResourceDialog::DIALOG_STYLES::CENTER,
- ResourceDialog::DIALOG_STYLES::CENTERMOUSE,
- ResourceDialog::DIALOG_STYLES::CONTEXTHELP,
- ResourceDialog::DIALOG_STYLES::SHELLFONT,
+ ResourceDialog::DIALOG_STYLES::ABSALIGN,
+ ResourceDialog::DIALOG_STYLES::SYSMODAL,
+ ResourceDialog::DIALOG_STYLES::LOCALEDIT,
+ ResourceDialog::DIALOG_STYLES::SETFONT,
+ ResourceDialog::DIALOG_STYLES::MODALFRAME,
+ ResourceDialog::DIALOG_STYLES::NOIDLEMSG,
+ ResourceDialog::DIALOG_STYLES::SETFOREGROUND,
+ ResourceDialog::DIALOG_STYLES::S3DLOOK,
+ ResourceDialog::DIALOG_STYLES::FIXEDSYS,
+ ResourceDialog::DIALOG_STYLES::NOFAILCREATE,
+ ResourceDialog::DIALOG_STYLES::CONTROL,
+ ResourceDialog::DIALOG_STYLES::CENTER,
+ ResourceDialog::DIALOG_STYLES::CENTERMOUSE,
+ ResourceDialog::DIALOG_STYLES::CONTEXTHELP,
+ ResourceDialog::DIALOG_STYLES::SHELLFONT,
};
static constexpr auto WINDOW_STYLES_ARRAY = {
- ResourceDialog::WINDOW_STYLES::OVERLAPPED,
- ResourceDialog::WINDOW_STYLES::POPUP,
- ResourceDialog::WINDOW_STYLES::CHILD,
- ResourceDialog::WINDOW_STYLES::MINIMIZE,
- ResourceDialog::WINDOW_STYLES::VISIBLE,
- ResourceDialog::WINDOW_STYLES::DISABLED,
- ResourceDialog::WINDOW_STYLES::CLIPSIBLINGS,
- ResourceDialog::WINDOW_STYLES::CLIPCHILDREN,
- ResourceDialog::WINDOW_STYLES::MAXIMIZE,
- ResourceDialog::WINDOW_STYLES::CAPTION,
- ResourceDialog::WINDOW_STYLES::BORDER,
- ResourceDialog::WINDOW_STYLES::DLGFRAME,
- ResourceDialog::WINDOW_STYLES::VSCROLL,
- ResourceDialog::WINDOW_STYLES::HSCROLL,
- ResourceDialog::WINDOW_STYLES::SYSMENU,
- ResourceDialog::WINDOW_STYLES::THICKFRAME,
- ResourceDialog::WINDOW_STYLES::GROUP,
- ResourceDialog::WINDOW_STYLES::TABSTOP,
+ ResourceDialog::WINDOW_STYLES::OVERLAPPED,
+ ResourceDialog::WINDOW_STYLES::POPUP,
+ ResourceDialog::WINDOW_STYLES::CHILD,
+ ResourceDialog::WINDOW_STYLES::MINIMIZE,
+ ResourceDialog::WINDOW_STYLES::VISIBLE,
+ ResourceDialog::WINDOW_STYLES::DISABLED,
+ ResourceDialog::WINDOW_STYLES::CLIPSIBLINGS,
+ ResourceDialog::WINDOW_STYLES::CLIPCHILDREN,
+ ResourceDialog::WINDOW_STYLES::MAXIMIZE,
+ ResourceDialog::WINDOW_STYLES::CAPTION,
+ ResourceDialog::WINDOW_STYLES::BORDER,
+ ResourceDialog::WINDOW_STYLES::DLGFRAME,
+ ResourceDialog::WINDOW_STYLES::VSCROLL,
+ ResourceDialog::WINDOW_STYLES::HSCROLL,
+ ResourceDialog::WINDOW_STYLES::SYSMENU,
+ ResourceDialog::WINDOW_STYLES::THICKFRAME,
+ ResourceDialog::WINDOW_STYLES::GROUP,
+ ResourceDialog::WINDOW_STYLES::TABSTOP,
};
static constexpr auto WINDOW_EXTENDED_STYLES_ARRAY = {
- ResourceDialog::WINDOW_EXTENDED_STYLES::DLGMODALFRAME,
- ResourceDialog::WINDOW_EXTENDED_STYLES::NOPARENTNOTIFY,
- ResourceDialog::WINDOW_EXTENDED_STYLES::TOPMOST,
- ResourceDialog::WINDOW_EXTENDED_STYLES::ACCEPTFILES,
- ResourceDialog::WINDOW_EXTENDED_STYLES::TRANSPARENT_STY,
- ResourceDialog::WINDOW_EXTENDED_STYLES::MDICHILD,
- ResourceDialog::WINDOW_EXTENDED_STYLES::TOOLWINDOW,
- ResourceDialog::WINDOW_EXTENDED_STYLES::WINDOWEDGE,
- ResourceDialog::WINDOW_EXTENDED_STYLES::CLIENTEDGE,
- ResourceDialog::WINDOW_EXTENDED_STYLES::CONTEXTHELP,
- ResourceDialog::WINDOW_EXTENDED_STYLES::RIGHT,
- ResourceDialog::WINDOW_EXTENDED_STYLES::LEFT,
- ResourceDialog::WINDOW_EXTENDED_STYLES::RTLREADING,
- ResourceDialog::WINDOW_EXTENDED_STYLES::LEFTSCROLLBAR,
- ResourceDialog::WINDOW_EXTENDED_STYLES::CONTROLPARENT,
- ResourceDialog::WINDOW_EXTENDED_STYLES::STATICEDGE,
- ResourceDialog::WINDOW_EXTENDED_STYLES::APPWINDOW,
+ ResourceDialog::WINDOW_EXTENDED_STYLES::DLGMODALFRAME,
+ ResourceDialog::WINDOW_EXTENDED_STYLES::NOPARENTNOTIFY,
+ ResourceDialog::WINDOW_EXTENDED_STYLES::TOPMOST,
+ ResourceDialog::WINDOW_EXTENDED_STYLES::ACCEPTFILES,
+ ResourceDialog::WINDOW_EXTENDED_STYLES::TRANSPARENT_STY,
+ ResourceDialog::WINDOW_EXTENDED_STYLES::MDICHILD,
+ ResourceDialog::WINDOW_EXTENDED_STYLES::TOOLWINDOW,
+ ResourceDialog::WINDOW_EXTENDED_STYLES::WINDOWEDGE,
+ ResourceDialog::WINDOW_EXTENDED_STYLES::CLIENTEDGE,
+ ResourceDialog::WINDOW_EXTENDED_STYLES::CONTEXTHELP,
+ ResourceDialog::WINDOW_EXTENDED_STYLES::RIGHT,
+ ResourceDialog::WINDOW_EXTENDED_STYLES::LEFT,
+ ResourceDialog::WINDOW_EXTENDED_STYLES::RTLREADING,
+ ResourceDialog::WINDOW_EXTENDED_STYLES::LEFTSCROLLBAR,
+ ResourceDialog::WINDOW_EXTENDED_STYLES::CONTROLPARENT,
+ ResourceDialog::WINDOW_EXTENDED_STYLES::STATICEDGE,
+ ResourceDialog::WINDOW_EXTENDED_STYLES::APPWINDOW,
};
static constexpr auto CONTROL_STYLES_ARRAY = {
- ResourceDialog::CONTROL_STYLES::TOP,
- ResourceDialog::CONTROL_STYLES::NOMOVEY,
- ResourceDialog::CONTROL_STYLES::BOTTOM,
- ResourceDialog::CONTROL_STYLES::NORESIZE,
- ResourceDialog::CONTROL_STYLES::NOPARENTALIGN,
- ResourceDialog::CONTROL_STYLES::ADJUSTABLE,
- ResourceDialog::CONTROL_STYLES::NODIVIDER,
- ResourceDialog::CONTROL_STYLES::VERT,
- ResourceDialog::CONTROL_STYLES::LEFT,
- ResourceDialog::CONTROL_STYLES::RIGHT,
- ResourceDialog::CONTROL_STYLES::NOMOVEX,
+ ResourceDialog::CONTROL_STYLES::TOP,
+ ResourceDialog::CONTROL_STYLES::NOMOVEY,
+ ResourceDialog::CONTROL_STYLES::BOTTOM,
+ ResourceDialog::CONTROL_STYLES::NORESIZE,
+ ResourceDialog::CONTROL_STYLES::NOPARENTALIGN,
+ ResourceDialog::CONTROL_STYLES::ADJUSTABLE,
+ ResourceDialog::CONTROL_STYLES::NODIVIDER,
+ ResourceDialog::CONTROL_STYLES::VERT,
+ ResourceDialog::CONTROL_STYLES::LEFT,
+ ResourceDialog::CONTROL_STYLES::RIGHT,
+ ResourceDialog::CONTROL_STYLES::NOMOVEX,
};
}
diff --git a/deps/LIEF/src/PE/signature/Attribute.cpp b/deps/LIEF/src/PE/signature/Attribute.cpp
index 90108a0d79d..9a532d11f89 100644
--- a/deps/LIEF/src/PE/signature/Attribute.cpp
+++ b/deps/LIEF/src/PE/signature/Attribute.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,40 +13,37 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#include <string>
-#include <ostream>
-
#include "frozen.hpp"
#include "LIEF/Visitor.hpp"
#include "LIEF/PE/signature/Attribute.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
void Attribute::accept(Visitor& visitor) const {
visitor.visit(*this);
}
const char* to_string(Attribute::TYPE e) {
- #define ENTRY(X) std::pair(Attribute::TYPE::X, #X)
- STRING_MAP enums2str {
- ENTRY(UNKNOWN),
- ENTRY(CONTENT_TYPE),
- ENTRY(GENERIC_TYPE),
- ENTRY(SIGNING_CERTIFICATE_V2),
- ENTRY(SPC_SP_OPUS_INFO),
- ENTRY(SPC_RELAXED_PE_MARKER_CHECK),
- ENTRY(MS_COUNTER_SIGN),
- ENTRY(MS_SPC_NESTED_SIGN),
- ENTRY(MS_SPC_STATEMENT_TYPE),
- ENTRY(MS_PLATFORM_MANIFEST_BINARY_ID),
- ENTRY(PKCS9_AT_SEQUENCE_NUMBER),
- ENTRY(PKCS9_COUNTER_SIGNATURE),
- ENTRY(PKCS9_MESSAGE_DIGEST),
- ENTRY(PKCS9_SIGNING_TIME),
+#define ENTRY(X) std::pair(Attribute::TYPE::X, #X)
+ STRING_MAP enums2str{
+ ENTRY(UNKNOWN),
+ ENTRY(CONTENT_TYPE),
+ ENTRY(GENERIC_TYPE),
+ ENTRY(SIGNING_CERTIFICATE_V2),
+ ENTRY(SPC_SP_OPUS_INFO),
+ ENTRY(SPC_RELAXED_PE_MARKER_CHECK),
+ ENTRY(MS_COUNTER_SIGN),
+ ENTRY(MS_SPC_NESTED_SIGN),
+ ENTRY(MS_SPC_STATEMENT_TYPE),
+ ENTRY(MS_PLATFORM_MANIFEST_BINARY_ID),
+ ENTRY(PKCS9_AT_SEQUENCE_NUMBER),
+ ENTRY(PKCS9_COUNTER_SIGNATURE),
+ ENTRY(PKCS9_MESSAGE_DIGEST),
+ ENTRY(PKCS9_SIGNING_TIME),
};
- #undef ENTRY
+#undef ENTRY
if (auto it = enums2str.find(e); it != enums2str.end()) {
return it->second;
@@ -56,4 +53,3 @@ const char* to_string(Attribute::TYPE e) {
}
}
-}
diff --git a/deps/LIEF/src/PE/signature/ContentInfo.cpp b/deps/LIEF/src/PE/signature/ContentInfo.cpp
index 33a0c74826a..7ca92f5ea4d 100644
--- a/deps/LIEF/src/PE/signature/ContentInfo.cpp
+++ b/deps/LIEF/src/PE/signature/ContentInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,18 +24,16 @@
#include <ostream>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
ContentInfo::ContentInfo() :
- value_(std::make_unique<GenericContent>())
-{}
+ value_(std::make_unique<GenericContent>()) {}
ContentInfo::ContentInfo(const ContentInfo& other) :
Object::Object(other),
- value_{other.value_->clone()}
-{}
+ value_{other.value_->clone()} {}
ContentInfo& ContentInfo::operator=(ContentInfo other) {
swap(other);
@@ -70,4 +68,3 @@ std::ostream& operator<<(std::ostream& os, const ContentInfo& content_info) {
}
}
-}
diff --git a/deps/LIEF/src/PE/signature/GenericContent.cpp b/deps/LIEF/src/PE/signature/GenericContent.cpp
index cbf50445b56..3b97ca2a7f1 100644
--- a/deps/LIEF/src/PE/signature/GenericContent.cpp
+++ b/deps/LIEF/src/PE/signature/GenericContent.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,19 +18,17 @@
#include <spdlog/fmt/fmt.h>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
static constexpr const char GENERIC_OBJID[] = "LIEF_CONTENT_GENERIC";
GenericContent::GenericContent() :
- ContentInfo::Content(GENERIC_OBJID)
-{}
+ ContentInfo::Content(GENERIC_OBJID) {}
GenericContent::GenericContent(oid_t oid) :
ContentInfo::Content(GENERIC_OBJID),
- oid_(std::move(oid))
-{}
+ oid_(std::move(oid)) {}
GenericContent::~GenericContent() = default;
@@ -48,4 +46,3 @@ void GenericContent::print(std::ostream& os) const {
}
-}
diff --git a/deps/LIEF/src/PE/signature/OIDToString.cpp b/deps/LIEF/src/PE/signature/OIDToString.cpp
index 8fe4dd49510..e64c5d861ee 100644
--- a/deps/LIEF/src/PE/signature/OIDToString.cpp
+++ b/deps/LIEF/src/PE/signature/OIDToString.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,2237 +17,2238 @@
#include "LIEF/PE/signature/OIDToString.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
const char* oid_to_string(const oid_t& oid) {
- static const std::unordered_map<oid_t, const char*> oid_to_str {
- { "0.2.262.1.10", "TELESEC" },
- { "0.2.262.1.10.0", "EXTENSION" },
- { "0.2.262.1.10.1", "MECHANISM" },
- { "0.2.262.1.10.1.0", "AUTHENTICATION" },
- { "0.2.262.1.10.1.0.1", "PASSWORD_AUTHENTICATION" },
- { "0.2.262.1.10.1.0.2", "PROTECTED_PASSWORD_AUTHENTICATION" },
- { "0.2.262.1.10.1.0.3", "ONE_WAY_X509_AUTHENTICATION" },
- { "0.2.262.1.10.1.0.4", "TWO_WAY_X509_AUTHENTICATION" },
- { "0.2.262.1.10.1.0.5", "THREE_WAY_X509_AUTHENTICATION" },
- { "0.2.262.1.10.1.0.6", "ONE_WAY_ISO9798_AUTHENTICATION" },
- { "0.2.262.1.10.1.0.7", "TWO_WAY_ISO9798_AUTHENTICATION" },
- { "0.2.262.1.10.1.0.8", "TELEKOM_AUTHENTICATION" },
- { "0.2.262.1.10.1.1", "SIGNATURE" },
- { "0.2.262.1.10.1.1.1", "MD4_WITH_RSA_AND_ISO9697" },
- { "0.2.262.1.10.1.1.2", "MD4_WITH_RSA_AND_TELESEC_SIGNATURE_STANDARD" },
- { "0.2.262.1.10.1.1.3", "MD5_WITH_RSA_AND_ISO9697" },
- { "0.2.262.1.10.1.1.4", "MD5_WITH_RSA_AND_TELESEC_SIGNATURE_STANDARD" },
- { "0.2.262.1.10.1.1.5", "RIPEMD160_WITH_RSA_AND_TELEKOM_SIGNATURE_STANDARD" },
- { "0.2.262.1.10.1.1.9", "HBCI_RSA_SIGNATURE" },
- { "0.2.262.1.10.1.2", "ENCRYPTION" },
- { "0.2.262.1.10.1.2.0", "NONE" },
- { "0.2.262.1.10.1.2.1", "RSA_TELESEC" },
- { "0.2.262.1.10.1.2.2", "DES" },
- { "0.2.262.1.10.1.2.2.1", "DES_ECB" },
- { "0.2.262.1.10.1.2.2.2", "DES_CBC" },
- { "0.2.262.1.10.1.2.2.3", "DES_OFB" },
- { "0.2.262.1.10.1.2.2.4", "DES_CFB8" },
- { "0.2.262.1.10.1.2.2.5", "DES_CFB64" },
- { "0.2.262.1.10.1.2.3", "DES3" },
- { "0.2.262.1.10.1.2.3.1", "DES3_ECB" },
- { "0.2.262.1.10.1.2.3.2", "DES3_CBC" },
- { "0.2.262.1.10.1.2.3.3", "DES3_OFB" },
- { "0.2.262.1.10.1.2.3.4", "DES3_CFB8" },
- { "0.2.262.1.10.1.2.3.5", "DES3_CFB64" },
- { "0.2.262.1.10.1.2.4", "MAGENTA" },
- { "0.2.262.1.10.1.2.5", "IDEA" },
- { "0.2.262.1.10.1.2.5.1", "IDEA_ECB" },
- { "0.2.262.1.10.1.2.5.2", "IDEA_CBC" },
- { "0.2.262.1.10.1.2.5.3", "IDEA_OFB" },
- { "0.2.262.1.10.1.2.5.4", "IDEA_CFB8" },
- { "0.2.262.1.10.1.2.5.5", "IDEA_CFB64" },
- { "0.2.262.1.10.1.3", "ONE_WAY_FUNCTION" },
- { "0.2.262.1.10.1.3.1", "MD4" },
- { "0.2.262.1.10.1.3.2", "MD5" },
- { "0.2.262.1.10.1.3.3", "SQ_MOD_NX509" },
- { "0.2.262.1.10.1.3.4", "SQ_MOD_NISO" },
- { "0.2.262.1.10.1.3.5", "RIPEMD128" },
- { "0.2.262.1.10.1.3.6", "HASH_USING_BLOCK_CIPHER" },
- { "0.2.262.1.10.1.3.7", "MAC" },
- { "0.2.262.1.10.1.3.8", "RIPEMD160" },
- { "0.2.262.1.10.1.4", "FEC_FUNCTION" },
- { "0.2.262.1.10.1.4.1", "REED_SOLOMON" },
- { "0.2.262.1.10.2", "MODULE" },
- { "0.2.262.1.10.2.0", "ALGORITHMS" },
- { "0.2.262.1.10.2.1", "ATTRIBUTE_TYPES" },
- { "0.2.262.1.10.2.2", "CERTIFICATE_TYPES" },
- { "0.2.262.1.10.2.3", "MESSAGE_TYPES" },
- { "0.2.262.1.10.2.4", "PL_PROTOCOL" },
- { "0.2.262.1.10.2.5", "SME_AND_COMPONENTS_OF_SME" },
- { "0.2.262.1.10.2.6", "FEC" },
- { "0.2.262.1.10.2.7", "USEFUL_DEFINITIONS" },
- { "0.2.262.1.10.2.8", "STEFILES" },
- { "0.2.262.1.10.2.9", "SADMIB" },
- { "0.2.262.1.10.2.10", "ELECTRONIC_ORDER" },
- { "0.2.262.1.10.2.11", "TELESEC_TTP_ASYMMETRIC_APPLICATION" },
- { "0.2.262.1.10.2.12", "TELESEC_TTP_BASIS_APPLICATION" },
- { "0.2.262.1.10.2.13", "TELESEC_TTP_MESSAGES" },
- { "0.2.262.1.10.2.14", "TELESEC_TTP_TIME_STAMP_APPLICATION" },
- { "0.2.262.1.10.3", "OBJECT_CLASS" },
- { "0.2.262.1.10.3.0", "TELESEC_OTHER_NAME" },
- { "0.2.262.1.10.3.1", "DIRECTORY" },
- { "0.2.262.1.10.3.2", "DIRECTORY_TYPE" },
- { "0.2.262.1.10.3.3", "DIRECTORY_GROUP" },
- { "0.2.262.1.10.3.4", "DIRECTORY_USER" },
- { "0.2.262.1.10.3.5", "SYMMETRIC_KEY_ENTRY" },
- { "0.2.262.1.10.4", "PACKAGE" },
- { "0.2.262.1.10.5", "PARAMETER" },
- { "0.2.262.1.10.6", "NAME_BINDING" },
- { "0.2.262.1.10.7", "ATTRIBUTE" },
- { "0.2.262.1.10.7.0", "APPLICATION_GROUP_IDENTIFIER" },
- { "0.2.262.1.10.7.1", "CERTIFICATE_TYPE" },
- { "0.2.262.1.10.7.2", "TELESEC_CERTIFICATE" },
- { "0.2.262.1.10.7.3", "CERTIFICATE_NUMBER" },
- { "0.2.262.1.10.7.4", "CERTIFICATE_REVOCATION_LIST" },
- { "0.2.262.1.10.7.5", "CREATION_DATE" },
- { "0.2.262.1.10.7.6", "ISSUER" },
- { "0.2.262.1.10.7.7", "NAMING_AUTHORITY" },
- { "0.2.262.1.10.7.8", "PUBLIC_KEY_DIRECTORY" },
- { "0.2.262.1.10.7.9", "SECURITY_DOMAIN" },
- { "0.2.262.1.10.7.10", "SUBJECT" },
- { "0.2.262.1.10.7.11", "TIME_OF_REVOCATION" },
- { "0.2.262.1.10.7.12", "USER_GROUP_REFERENCE" },
- { "0.2.262.1.10.7.13", "VALIDITY" },
- { "0.2.262.1.10.7.14", "ZERT93" },
- { "0.2.262.1.10.7.15", "SECURITY_MESS_ENV" },
- { "0.2.262.1.10.7.16", "ANONYMIZED_PUBLIC_KEY_DIRECTORY" },
- { "0.2.262.1.10.7.17", "TELESEC_GIVEN_NAME" },
- { "0.2.262.1.10.7.18", "NAME_ADDITIONS" },
- { "0.2.262.1.10.7.19", "TELESEC_POSTAL_CODE" },
- { "0.2.262.1.10.7.20", "NAME_DISTINGUISHER" },
- { "0.2.262.1.10.7.21", "TELESEC_CERTIFICATE_LIST" },
- { "0.2.262.1.10.7.22", "TELETRUST_CERTIFICATE_LIST" },
- { "0.2.262.1.10.7.23", "X509_CERTIFICATE_LIST" },
- { "0.2.262.1.10.7.24", "TIME_OF_ISSUE" },
- { "0.2.262.1.10.7.25", "PHYSICAL_CARD_NUMBER" },
- { "0.2.262.1.10.7.26", "FILE_TYPE" },
- { "0.2.262.1.10.7.27", "CTL_FILE_IS_ARCHIVE" },
- { "0.2.262.1.10.7.28", "EMAIL_ADDRESS" },
- { "0.2.262.1.10.7.29", "CERTIFICATE_TEMPLATE_LIST" },
- { "0.2.262.1.10.7.30", "DIRECTORY_NAME" },
- { "0.2.262.1.10.7.31", "DIRECTORY_TYPE_NAME" },
- { "0.2.262.1.10.7.32", "DIRECTORY_GROUP_NAME" },
- { "0.2.262.1.10.7.33", "DIRECTORY_USER_NAME" },
- { "0.2.262.1.10.7.34", "REVOCATION_FLAG" },
- { "0.2.262.1.10.7.35", "SYMMETRIC_KEY_ENTRY_NAME" },
- { "0.2.262.1.10.7.36", "GL_NUMBER" },
- { "0.2.262.1.10.7.37", "GO_NUMBER" },
- { "0.2.262.1.10.7.38", "G_KEY_DATA" },
- { "0.2.262.1.10.7.39", "Z_KEY_DATA" },
- { "0.2.262.1.10.7.40", "KT_KEY_DATA" },
- { "0.2.262.1.10.7.41", "KT_KEY_NUMBER" },
- { "0.2.262.1.10.7.51", "TIME_OF_REVOCATION_GEN" },
- { "0.2.262.1.10.7.52", "LIABILITY_TEXT" },
- { "0.2.262.1.10.8", "ATTRIBUTE_GROUP" },
- { "0.2.262.1.10.9", "ACTION" },
- { "0.2.262.1.10.10", "NOTIFICATION" },
- { "0.2.262.1.10.11", "SNMP_MIBS" },
- { "0.2.262.1.10.11.1", "SECURITY_APPLICATION" },
- { "0.2.262.1.10.12", "CERT_AND_CRL_EXTENSION_DEFINITIONS" },
- { "0.2.262.1.10.12.0", "LIABILITY_LIMITATION_FLAG" },
- { "0.2.262.1.10.12.1", "TELESEC_CERT_ID_EXT" },
- { "0.2.262.1.10.12.2", "TELESEC_POLICY_IDENTIFIER" },
- { "0.2.262.1.10.12.3", "TELESEC_POLICY_QUALIFIER_ID" },
- { "0.2.262.1.10.12.4", "TELESEC_CRL_FILTERED_EXT" },
- { "0.2.262.1.10.12.5", "TELESEC_CRL_FILTER_EXT" },
- { "0.2.262.1.10.12.6", "TELESEC_NAMING_AUTHORITY_EXT" },
- { "0.4.0.127.0.7", "BSI" },
- { "0.4.0.127.0.7.1", "BSI_ECC" },
- { "0.4.0.127.0.7.1.1", "BSIFIELD_TYPE" },
- { "0.4.0.127.0.7.1.1.1", "BSI_PRIME_FIELD" },
- { "0.4.0.127.0.7.1.1.2", "BSI_CHARACTERISTIC_TWO_FIELD" },
- { "0.4.0.127.0.7.1.1.2.2", "BSI_ECTLV_KEY_FORMAT" },
- { "0.4.0.127.0.7.1.1.2.2.1", "BSI_ECTLV_PUBLIC_KEY" },
- { "0.4.0.127.0.7.1.1.2.3", "BSI_CHARACTERISTIC_TWO_BASIS" },
- { "0.4.0.127.0.7.1.1.2.3.1", "BSI_GN_BASIS" },
- { "0.4.0.127.0.7.1.1.2.3.2", "BSI_TP_BASIS" },
- { "0.4.0.127.0.7.1.1.2.3.3", "BSI_PP_BASIS" },
- { "0.4.0.127.0.7.1.1.4.1", "BSI_ECDSA_SIGNATURES" },
- { "0.4.0.127.0.7.1.1.4.1.1", "BSI_ECDSA_WITH_SHA1" },
- { "0.4.0.127.0.7.1.1.4.1.2", "BSI_ECDSA_WITH_SHA224" },
- { "0.4.0.127.0.7.1.1.4.1.3", "BSI_ECDSA_WITH_SHA256" },
- { "0.4.0.127.0.7.1.1.4.1.4", "BSI_ECDSA_WITH_SHA384" },
- { "0.4.0.127.0.7.1.1.4.1.5", "BSI_ECDSA_WITH_SHA512" },
- { "0.4.0.127.0.7.1.1.4.1.6", "BSI_ECDSA_WITH_RIPEMD160" },
- { "0.4.0.127.0.7.1.1.5.1.1", "BSI_ECKA_EG_X963_KDF" },
- { "0.4.0.127.0.7.1.1.5.1.1.1", "BSI_ECKA_EG_X963_KDF_WITH_SHA1" },
- { "0.4.0.127.0.7.1.1.5.1.1.2", "BSI_ECKA_EG_X963_KDF_WITH_SHA224" },
- { "0.4.0.127.0.7.1.1.5.1.1.3", "BSI_ECKA_EG_X963_KDF_WITH_SHA256" },
- { "0.4.0.127.0.7.1.1.5.1.1.4", "BSI_ECKA_EG_X963_KDF_WITH_SHA384" },
- { "0.4.0.127.0.7.1.1.5.1.1.5", "BSI_ECKA_EG_X963_KDF_WITH_SHA512" },
- { "0.4.0.127.0.7.1.1.5.1.1.6", "BSI_ECKA_EG_X963_KDF_WITH_RIPEMD160" },
- { "0.4.0.127.0.7.1.1.5.1.2", "BSI_ECKA_EG_SESSION_KDF" },
- { "0.4.0.127.0.7.1.1.5.1.2.1", "BSI_ECKA_EG_SESSION_KDF_WITH3_DES" },
- { "0.4.0.127.0.7.1.1.5.1.2.2", "BSI_ECKA_EG_SESSION_KDF_WITH_AES128" },
- { "0.4.0.127.0.7.1.1.5.1.2.3", "BSI_ECKA_EG_SESSION_KDF_WITH_AES192" },
- { "0.4.0.127.0.7.1.1.5.1.2.4", "BSI_ECKA_EG_SESSION_KDF_WITH_AES256" },
- { "0.4.0.127.0.7.1.1.5.2", "BSI_ECKA_DH" },
- { "0.4.0.127.0.7.1.1.5.2.1", "BSI_ECKA_DHX963_KDF" },
- { "0.4.0.127.0.7.1.1.5.2.1.1", "BSI_ECKA_DHX963_KDF_WITH_SHA1" },
- { "0.4.0.127.0.7.1.1.5.2.1.2", "BSI_ECKA_DHX963_KDF_WITH_SHA224" },
- { "0.4.0.127.0.7.1.1.5.2.1.3", "BSI_ECKA_DHX963_KDF_WITH_SHA256" },
- { "0.4.0.127.0.7.1.1.5.2.1.4", "BSI_ECKA_DHX963_KDF_WITH_SHA384" },
- { "0.4.0.127.0.7.1.1.5.2.1.5", "BSI_ECKA_DHX963_KDF_WITH_SHA512" },
- { "0.4.0.127.0.7.1.1.5.2.1.6", "BSI_ECKA_DHX963_KDF_WITH_RIPEMD160" },
- { "0.4.0.127.0.7.1.1.5.2.2", "BSI_ECKA_DH_SESSION_KDF" },
- { "0.4.0.127.0.7.1.1.5.2.2.1", "BSI_ECKA_DH_SESSION_KDF_WITH3_DES" },
- { "0.4.0.127.0.7.1.1.5.2.2.2", "BSI_ECKA_DH_SESSION_KDF_WITH_AES128" },
- { "0.4.0.127.0.7.1.1.5.2.2.3", "BSI_ECKA_DH_SESSION_KDF_WITH_AES192" },
- { "0.4.0.127.0.7.1.1.5.2.2.4", "BSI_ECKA_DH_SESSION_KDF_WITH_AES256" },
- { "0.4.0.127.0.7.1.2", "BSI_EC_KEY_TYPE" },
- { "0.4.0.127.0.7.1.2.1", "BSI_EC_PUBLIC_KEY" },
- { "0.4.0.127.0.7.1.5.1", "BSI_KAEG" },
- { "0.4.0.127.0.7.1.5.1.1", "BSI_KAEG_WITH_X963_KDF" },
- { "0.4.0.127.0.7.1.5.1.2", "BSI_KAEG_WITH3_DESKDF" },
- { "0.4.0.127.0.7.2.2.1", "BSI_PK" },
- { "0.4.0.127.0.7.2.2.1.1", "BSI_PK_DH" },
- { "0.4.0.127.0.7.2.2.1.2", "BSI_PK_ECDH" },
- { "0.4.0.127.0.7.2.2.2", "BSI_TA" },
- { "0.4.0.127.0.7.2.2.2.1", "BSI_TA_RSA" },
- { "0.4.0.127.0.7.2.2.2.1.1", "BSI_TA_RS_AV1_5_SHA1" },
- { "0.4.0.127.0.7.2.2.2.1.2", "BSI_TA_RS_AV1_5_SHA256" },
- { "0.4.0.127.0.7.2.2.2.1.3", "BSI_TA_RSAPSS_SHA1" },
- { "0.4.0.127.0.7.2.2.2.1.4", "BSI_TA_RSAPSS_SHA256" },
- { "0.4.0.127.0.7.2.2.2.1.5", "BSI_TA_RS_AV1_5_SHA512" },
- { "0.4.0.127.0.7.2.2.2.1.6", "BSI_TA_RSAPSS_SHA512" },
- { "0.4.0.127.0.7.2.2.2.2", "BSI_TA_ECDSA" },
- { "0.4.0.127.0.7.2.2.2.2.1", "BSI_TA_ECDSA_SHA1" },
- { "0.4.0.127.0.7.2.2.2.2.2", "BSI_TA_ECDSA_SHA224" },
- { "0.4.0.127.0.7.2.2.2.2.3", "BSI_TA_ECDSA_SHA256" },
- { "0.4.0.127.0.7.2.2.2.2.4", "BSI_TA_ECDSA_SHA384" },
- { "0.4.0.127.0.7.2.2.2.2.5", "BSI_TA_ECDSA_SHA512" },
- { "0.4.0.127.0.7.2.2.3", "BSI_CA" },
- { "0.4.0.127.0.7.2.2.3.1", "BSI_CA_DH" },
- { "0.4.0.127.0.7.2.2.3.1.1", "BSI_CA_DH_3_DES_CBC_CBC" },
- { "0.4.0.127.0.7.2.2.3.1.2", "BSI_CA_DH_AES_CBC_CMAC_128" },
- { "0.4.0.127.0.7.2.2.3.1.3", "BSI_CA_DH_AES_CBC_CMAC_192" },
- { "0.4.0.127.0.7.2.2.3.1.4", "BSI_CA_DH_AES_CBC_CMAC_256" },
- { "0.4.0.127.0.7.2.2.3.2", "BSI_CA_ECDH" },
- { "0.4.0.127.0.7.2.2.3.2.1", "BSI_CA_ECDH_3_DES_CBC_CBC" },
- { "0.4.0.127.0.7.2.2.3.2.2", "BSI_CA_ECDH_AES_CBC_CMAC_128" },
- { "0.4.0.127.0.7.2.2.3.2.3", "BSI_CA_ECDH_AES_CBC_CMAC_192" },
- { "0.4.0.127.0.7.2.2.3.2.4", "BSI_CA_ECDH_AES_CBC_CMAC_256" },
- { "0.4.0.127.0.7.2.2.4", "BSI_PACE" },
- { "0.4.0.127.0.7.2.2.4.1", "BSI_PACE_DH_GM" },
- { "0.4.0.127.0.7.2.2.4.1.1", "BSI_PACE_DH_GM_3_DES_CBC_CBC" },
- { "0.4.0.127.0.7.2.2.4.1.2", "BSI_PACE_DH_GM_AES_CBC_CMAC_128" },
- { "0.4.0.127.0.7.2.2.4.1.3", "BSI_PACE_DH_GM_AES_CBC_CMAC_192" },
- { "0.4.0.127.0.7.2.2.4.1.4", "BSI_PACE_DH_GM_AES_CBC_CMAC_256" },
- { "0.4.0.127.0.7.2.2.4.2", "BSI_PACE_ECDH_GM" },
- { "0.4.0.127.0.7.2.2.4.2.1", "BSI_PACE_ECDH_GM_3_DES_CBC_CBC" },
- { "0.4.0.127.0.7.2.2.4.2.2", "BSI_PACE_ECDH_GM_AES_CBC_CMAC_128" },
- { "0.4.0.127.0.7.2.2.4.2.3", "BSI_PACE_ECDH_GM_AES_CBC_CMAC_192" },
- { "0.4.0.127.0.7.2.2.4.2.4", "BSI_PACE_ECDH_GM_AES_CBC_CMAC_256" },
- { "0.4.0.127.0.7.2.2.4.3", "BSI_PACE_DH_IM" },
- { "0.4.0.127.0.7.2.2.4.3.1", "BSI_PACE_DH_IM_3_DES_CBC_CBC" },
- { "0.4.0.127.0.7.2.2.4.3.2", "BSI_PACE_DH_IM_AES_CBC_CMAC_128" },
- { "0.4.0.127.0.7.2.2.4.3.3", "BSI_PACE_DH_IM_AES_CBC_CMAC_192" },
- { "0.4.0.127.0.7.2.2.4.3.4", "BSI_PACE_DH_IM_AES_CBC_CMAC_256" },
- { "0.4.0.127.0.7.2.2.4.4", "BSI_PACE_ECDH_IM" },
- { "0.4.0.127.0.7.2.2.4.4.1", "BSI_PACE_ECDH_IM_3_DES_CBC_CBC" },
- { "0.4.0.127.0.7.2.2.4.4.2", "BSI_PACE_ECDH_IM_AES_CBC_CMAC_128" },
- { "0.4.0.127.0.7.2.2.4.4.3", "BSI_PACE_ECDH_IM_AES_CBC_CMAC_192" },
- { "0.4.0.127.0.7.2.2.4.4.4", "BSI_PACE_ECDH_IM_AES_CBC_CMAC_256" },
- { "0.4.0.127.0.7.2.2.5", "BSI_RI" },
- { "0.4.0.127.0.7.2.2.5.1", "BSI_RI_DH" },
- { "0.4.0.127.0.7.2.2.5.1.1", "BSI_RI_DH_SHA1" },
- { "0.4.0.127.0.7.2.2.5.1.2", "BSI_RI_DH_SHA224" },
- { "0.4.0.127.0.7.2.2.5.1.3", "BSI_RI_DH_SHA256" },
- { "0.4.0.127.0.7.2.2.5.1.4", "BSI_RI_DH_SHA384" },
- { "0.4.0.127.0.7.2.2.5.1.5", "BSI_RI_DH_SHA512" },
- { "0.4.0.127.0.7.2.2.5.2", "BSI_RI_ECDH" },
- { "0.4.0.127.0.7.2.2.5.2.1", "BSI_RI_ECDH_SHA1" },
- { "0.4.0.127.0.7.2.2.5.2.2", "BSI_RI_ECDH_SHA224" },
- { "0.4.0.127.0.7.2.2.5.2.3", "BSI_RI_ECDH_SHA256" },
- { "0.4.0.127.0.7.2.2.5.2.4", "BSI_RI_ECDH_SHA384" },
- { "0.4.0.127.0.7.2.2.5.2.5", "BSI_RI_ECDH_SHA512" },
- { "0.4.0.127.0.7.2.2.6", "BSI_CARD_INFO" },
- { "0.4.0.127.0.7.2.2.7", "BSI_EID_SECURITY" },
- { "0.4.0.127.0.7.2.2.8", "BSI_PT" },
- { "0.4.0.127.0.7.3.1.2", "BSI_EAC_ROLES" },
- { "0.4.0.127.0.7.3.1.2.1", "BSI_EAC_ROLES_IS" },
- { "0.4.0.127.0.7.3.1.2.2", "BSI_EAC_ROLES_AT" },
- { "0.4.0.127.0.7.3.1.2.3", "BSI_EAC_ROLES_ST" },
- { "0.4.0.127.0.7.3.1.3", "BSI_T_AV2CE" },
- { "0.4.0.127.0.7.3.1.3.1", "BSI_T_AV2CE_DESCRIPTION" },
- { "0.4.0.127.0.7.3.1.3.1.1", "BSI_T_AV2CE_DESCRIPTION_PLAIN_TEXT" },
- { "0.4.0.127.0.7.3.1.3.1.2", "BSI_T_AV2CE_DESCRIPTION_IA5_STRING" },
- { "0.4.0.127.0.7.3.1.3.1.3", "BSI_T_AV2CE_DESCRIPTION_OCTET_STRING" },
- { "0.4.0.127.0.7.3.1.3.2", "BSI_T_AV2CE_TERMINAL_SECTOR" },
- { "0.4.0.127.0.7.3.1.4", "BSI_AUX_DATA" },
- { "0.4.0.127.0.7.3.1.4.1", "BSI_AUX_DATA_BIRTHDAY" },
- { "0.4.0.127.0.7.3.1.4.2", "BSI_AUX_DATA_EXPIRE_DATE" },
- { "0.4.0.127.0.7.3.1.4.3", "BSI_AUX_DATA_COMMUNITY_ID" },
- { "0.4.0.127.0.7.3.1.5", "BSI_DEFECT_LIST" },
- { "0.4.0.127.0.7.3.1.5.1", "BSI_DEFECT_AUTH_DEFECT" },
- { "0.4.0.127.0.7.3.1.5.1.1", "BSI_DEFECT_CERT_REVOKED" },
- { "0.4.0.127.0.7.3.1.5.1.2", "BSI_DEFECT_CERT_REPLACED" },
- { "0.4.0.127.0.7.3.1.5.1.3", "BSI_DEFECT_CHIP_AUTH_KEY_REVOKED" },
- { "0.4.0.127.0.7.3.1.5.1.4", "BSI_DEFECT_ACTIVE_AUTH_KEY_REVOKED" },
- { "0.4.0.127.0.7.3.1.5.2", "BSI_DEFECT_E_PASSPORT_DEFECT" },
- { "0.4.0.127.0.7.3.1.5.2.1", "BSI_DEFECT_E_PASSPORT_DG_MALFORMED" },
- { "0.4.0.127.0.7.3.1.5.2.2", "BSI_DEFECT_SOD_INVALID" },
- { "0.4.0.127.0.7.3.1.5.3", "BSI_DEFECT_EID_DEFECT" },
- { "0.4.0.127.0.7.3.1.5.3.1", "BSI_DEFECT_EIDDG_MALFORMED" },
- { "0.4.0.127.0.7.3.1.5.3.2", "BSI_DEFECT_EID_INTEGRITY" },
- { "0.4.0.127.0.7.3.1.5.4", "BSI_DEFECT_DOCUMENT_DEFECT" },
- { "0.4.0.127.0.7.3.1.5.4.1", "BSI_DEFECT_CARD_SECURITY_MALFORMED" },
- { "0.4.0.127.0.7.3.1.5.4.2", "BSI_DEFECT_CHIP_SECURITY_MALFORMED" },
- { "0.4.0.127.0.7.3.1.5.4.3", "BSI_DEFECT_POWER_DOWN_REQ" },
- { "0.4.0.127.0.7.3.1.6", "BSI_LIST_CONTENT_DESCRIPTION" },
- { "0.4.0.127.0.7.3.2.1", "BSI_SECURITY_OBJECT" },
- { "0.4.0.127.0.7.3.2.2", "BSI_BLACK_LIST" },
- { "0.4.0.1862", "ETSI_QCS_PROFILE" },
- { "0.4.0.1862.1", "ETSI_QCS" },
- { "0.4.0.1862.1.1", "ETSI_QCS_COMPLIANCE" },
- { "0.4.0.1862.1.2", "ETSI_QCS_LIMIT_VALUE" },
- { "0.4.0.1862.1.3", "ETSI_QCS_RETENTION_PERIOD" },
- { "0.4.0.1862.1.4", "ETSI_QCS_QC_SSCD" },
- { "0.9.2342.19200300.100.1.1", "USER_ID" },
- { "0.9.2342.19200300.100.1.3", "RFC822_MAILBOX" },
- { "0.9.2342.19200300.100.1.25", "DOMAIN_COMPONENT" },
- { "1.0.10118.3.0.49", "RIPEMD160" },
- { "1.0.10118.3.0.50", "RIPEMD128" },
- { "1.0.10118.3.0.55", "WHIRLPOOL" },
- { "1.2.36.1.3.1.1.1", "QGPKI" },
- { "1.2.36.1.3.1.1.1.1", "QGPKI_POLICIES" },
- { "1.2.36.1.3.1.1.1.1.1", "QGPKI_MED_INTERMED_CA" },
- { "1.2.36.1.3.1.1.1.1.1.1", "QGPKI_MED_INTERMED_INDIVIDUAL" },
- { "1.2.36.1.3.1.1.1.1.1.2", "QGPKI_MED_INTERMED_DEVICE_CONTROL" },
- { "1.2.36.1.3.1.1.1.1.1.3", "QGPKI_MED_INTERMED_DEVICE" },
- { "1.2.36.1.3.1.1.1.1.1.4", "QGPKI_MED_INTERMED_AUTHORISED_PARTY" },
- { "1.2.36.1.3.1.1.1.1.1.5", "QGPKI_MED_INTERMED_DEVICE_SYSTEM" },
- { "1.2.36.1.3.1.1.1.1.2", "QGPKI_MED_ISSUING_CA" },
- { "1.2.36.1.3.1.1.1.1.2.1", "QGPKI_MED_ISSUING_INDIVIDUAL" },
- { "1.2.36.1.3.1.1.1.1.2.2", "QGPKI_MED_ISSUING_DEVICE_CONTROL" },
- { "1.2.36.1.3.1.1.1.1.2.3", "QGPKI_MED_ISSUING_DEVICE" },
- { "1.2.36.1.3.1.1.1.1.2.4", "QGPKI_MED_ISSUING_AUTHORISED_PARTY" },
- { "1.2.36.1.3.1.1.1.1.2.5", "QGPKI_MED_ISSUING_CLIENT_AUTH" },
- { "1.2.36.1.3.1.1.1.1.2.6", "QGPKI_MED_ISSUING_SERVER_AUTH" },
- { "1.2.36.1.3.1.1.1.1.2.7", "QGPKI_MED_ISSUING_DATA_PROT" },
- { "1.2.36.1.3.1.1.1.1.2.8", "QGPKI_MED_ISSUING_TOKEN_AUTH" },
- { "1.2.36.1.3.1.1.1.1.3", "QGPKI_BASIC_INTERMED_CA" },
- { "1.2.36.1.3.1.1.1.1.3.1", "QGPKI_BASIC_INTERMED_DEVICE_SYSTEM" },
- { "1.2.36.1.3.1.1.1.1.4", "QGPKI_BASIC_ISSUING_CA" },
- { "1.2.36.1.3.1.1.1.1.4.1", "QGPKI_BASIC_ISSUING_CLIENT_AUTH" },
- { "1.2.36.1.3.1.1.1.1.4.2", "QGPKI_BASIC_ISSUING_SERVER_AUTH" },
- { "1.2.36.1.3.1.1.1.1.4.3", "QGPKI_BASIC_ISSUING_DATA_SIGNING" },
- { "1.2.36.1.3.1.1.1.2", "QGPKI_ASSURANCE_LEVEL" },
- { "1.2.36.1.3.1.1.1.2.1", "QGPKI_ASSURANCE_RUDIMENTARY" },
- { "1.2.36.1.3.1.1.1.2.2", "QGPKI_ASSURANCE_BASIC" },
- { "1.2.36.1.3.1.1.1.2.3", "QGPKI_ASSURANCE_MEDIUM" },
- { "1.2.36.1.3.1.1.1.2.4", "QGPKI_ASSURANCE_HIGH" },
- { "1.2.36.1.3.1.1.1.3", "QGPKI_CERT_FUNCTION" },
- { "1.2.36.1.3.1.1.1.3.1", "QGPKI_FUNCTION_INDIVIDUAL" },
- { "1.2.36.1.3.1.1.1.3.2", "QGPKI_FUNCTION_DEVICE" },
- { "1.2.36.1.3.1.1.1.3.3", "QGPKI_FUNCTION_AUTHORISED_PARTY" },
- { "1.2.36.1.3.1.1.1.3.4", "QGPKI_FUNCTION_DEVICE_CONTROL" },
- { "1.2.36.1.3.1.2", "QPSPKI" },
- { "1.2.36.1.3.1.2.1", "QPSPKI_POLICIES" },
- { "1.2.36.1.3.1.2.1.2", "QPSPKI_POLICY_BASIC" },
- { "1.2.36.1.3.1.2.1.3", "QPSPKI_POLICY_MEDIUM" },
- { "1.2.36.1.3.1.2.1.4", "QPSPKI_POLICY_HIGH" },
- { "1.2.36.1.3.1.3.2", "QTMRPKI" },
- { "1.2.36.1.3.1.3.2.1", "QTMRPKI_POLICIES" },
- { "1.2.36.1.3.1.3.2.2", "QTMRPKI_PURPOSE" },
- { "1.2.36.1.3.1.3.2.2.1", "QTMRPKI_INDIVIDUAL" },
- { "1.2.36.1.3.1.3.2.2.2", "QTMRPKI_DEVICE_CONTROL" },
- { "1.2.36.1.3.1.3.2.2.3", "QTMRPKI_DEVICE" },
- { "1.2.36.1.3.1.3.2.2.4", "QTMRPKI_AUTHORISED_PARTY" },
- { "1.2.36.1.3.1.3.2.2.5", "QTMRPKI_DEVICE_SYSTEM" },
- { "1.2.36.1.3.1.3.2.3", "QTMRPKI_DEVICE" },
- { "1.2.36.1.3.1.3.2.3.1", "QTMRPKI_DRIVER_LICENSE" },
- { "1.2.36.1.3.1.3.2.3.2", "QTMRPKI_INDUSTRY_AUTHORITY" },
- { "1.2.36.1.3.1.3.2.3.3", "QTMRPKI_MARINE_LICENSE" },
- { "1.2.36.1.3.1.3.2.3.4", "QTMRPKI_ADULT_PROOF_OF_AGE" },
- { "1.2.36.1.3.1.3.2.3.5", "QTMRPKI_SAM" },
- { "1.2.36.1.3.1.3.2.4", "QTMRPKI_AUTHORISED_PARTY" },
- { "1.2.36.1.3.1.3.2.4.1", "QTMRPKI_TRANSPORT_INSPECTOR" },
- { "1.2.36.1.3.1.3.2.4.2", "QTMRPKI_POLICE_OFFICER" },
- { "1.2.36.1.3.1.3.2.4.3", "QTMRPKI_SYSTEM" },
- { "1.2.36.1.3.1.3.2.4.4", "QTMRPKI_LIQUOR_LICENSING_INSPECTOR" },
- { "1.2.36.1.3.1.3.2.4.5", "QTMRPKI_MARINE_ENFORCEMENT_OFFICER" },
- { "1.2.36.1.333.1", "AUSTRALIAN_BUSINESS_NUMBER" },
- { "1.2.36.68980861.1.1.2", "SIGNET_PERSONAL" },
- { "1.2.36.68980861.1.1.3", "SIGNET_BUSINESS" },
- { "1.2.36.68980861.1.1.4", "SIGNET_LEGAL" },
- { "1.2.36.68980861.1.1.10", "SIGNET_PILOT" },
- { "1.2.36.68980861.1.1.11", "SIGNET_INTRA_NET" },
- { "1.2.36.68980861.1.1.20", "SIGNET_POLICY" },
- { "1.2.36.75878867.1.100.1.1", "CERTIFICATES_AUSTRALIA_POLICY" },
- { "1.2.392.200011.61.1.1.1", "MITSUBISHI_SECURITY_ALGORITHM" },
- { "1.2.392.200011.61.1.1.1.1", "MISTY1_CBC" },
- { "1.2.410.200004.1", "KISA_ALGORITHM" },
- { "1.2.410.200004.1.1", "KCDSA" },
- { "1.2.410.200004.1.2", "HAS160" },
- { "1.2.410.200004.1.3", "SEED_ECB" },
- { "1.2.410.200004.1.4", "SEED_CBC" },
- { "1.2.410.200004.1.5", "SEED_OFB" },
- { "1.2.410.200004.1.6", "SEED_CFB" },
- { "1.2.410.200004.1.7", "SEED_MAC" },
- { "1.2.410.200004.1.8", "KCDSA_WITH_HAS160" },
- { "1.2.410.200004.1.9", "KCDSA_WITH_SHA1" },
- { "1.2.410.200004.1.10", "PBE_WITH_HAS160_AND_SEED_ECB" },
- { "1.2.410.200004.1.11", "PBE_WITH_HAS160_AND_SEED_CBC" },
- { "1.2.410.200004.1.12", "PBE_WITH_HAS160_AND_SEED_CFB" },
- { "1.2.410.200004.1.13", "PBE_WITH_HAS160_AND_SEED_OFB" },
- { "1.2.410.200004.1.14", "PBE_WITH_SHA1_AND_SEED_ECB" },
- { "1.2.410.200004.1.15", "PBE_WITH_SHA1_AND_SEED_CBC" },
- { "1.2.410.200004.1.16", "PBE_WITH_SHA1_AND_SEED_CFB" },
- { "1.2.410.200004.1.17", "PBE_WITH_SHA1_AND_SEED_OFB" },
- { "1.2.410.200004.1.20", "RSA_WITH_HAS160" },
- { "1.2.410.200004.1.21", "KCDSA1" },
- { "1.2.410.200004.2", "NPKI_CP" },
- { "1.2.410.200004.2.1", "NPKI_SIGNATURE_POLICY" },
- { "1.2.410.200004.3", "NPKI_KP" },
- { "1.2.410.200004.4", "NPKI_AT" },
- { "1.2.410.200004.5", "NPKI_LCA" },
- { "1.2.410.200004.5.1", "NPKI_SIGN_KOREA" },
- { "1.2.410.200004.5.2", "NPKI_SIGN_GATE" },
- { "1.2.410.200004.5.3", "NPKI_NCA_SIGN" },
- { "1.2.410.200004.6", "NPKI_ON" },
- { "1.2.410.200004.7", "NPKI_APP" },
- { "1.2.410.200004.7.1", "NPKI_SMIME" },
- { "1.2.410.200004.7.1.1", "NPKI_SMIME_ALGO" },
- { "1.2.410.200004.7.1.1.1", "NPKI_CMS_SEED_WRAP" },
- { "1.2.410.200004.10", "NPKI" },
- { "1.2.410.200004.10.1", "NPKI_ATTRIBUTE" },
- { "1.2.410.200004.10.1.1", "NPKI_IDENTIFY_DATA" },
- { "1.2.410.200004.10.1.1.1", "NPKI_VID" },
- { "1.2.410.200004.10.1.1.2", "NPKI_ENCRYPTED_VID" },
- { "1.2.410.200004.10.1.1.3", "NPKI_RANDOM_NUM" },
- { "1.2.410.200004.10.1.1.4", "NPKI_VID" },
- { "1.2.410.200046.1.1", "ARIA1_ALGORITHM_MODES" },
- { "1.2.410.200046.1.1.1", "ARIA128_ECB" },
- { "1.2.410.200046.1.1.2", "ARIA128_CBC" },
- { "1.2.410.200046.1.1.3", "ARIA128_CFB" },
- { "1.2.410.200046.1.1.4", "ARIA128_OFB" },
- { "1.2.410.200046.1.1.5", "ARIA128_CTR" },
- { "1.2.410.200046.1.1.6", "ARIA192_ECB" },
- { "1.2.410.200046.1.1.7", "ARIA192_CBC" },
- { "1.2.410.200046.1.1.8", "ARIA192_CFB" },
- { "1.2.410.200046.1.1.9", "ARIA192_OFB" },
- { "1.2.410.200046.1.1.10", "ARIA192_CTR" },
- { "1.2.410.200046.1.1.11", "ARIA256_ECB" },
- { "1.2.410.200046.1.1.12", "ARIA256_CBC" },
- { "1.2.410.200046.1.1.13", "ARIA256_CFB" },
- { "1.2.410.200046.1.1.14", "ARIA256_OFB" },
- { "1.2.410.200046.1.1.15", "ARIA256_CTR" },
- { "1.2.410.200046.1.1.21", "ARIA128_CMAC" },
- { "1.2.410.200046.1.1.22", "ARIA192_CMAC" },
- { "1.2.410.200046.1.1.23", "ARIA256_CMAC" },
- { "1.2.410.200046.1.1.31", "ARIA128_OCB2" },
- { "1.2.410.200046.1.1.32", "ARIA192_OCB2" },
- { "1.2.410.200046.1.1.33", "ARIA256_OCB2" },
- { "1.2.410.200046.1.1.34", "ARIA128_GCM" },
- { "1.2.410.200046.1.1.35", "ARIA192_GCM" },
- { "1.2.410.200046.1.1.36", "ARIA256_GCM" },
- { "1.2.410.200046.1.1.37", "ARIA128_CCM" },
- { "1.2.410.200046.1.1.38", "ARIA192_CCM" },
- { "1.2.410.200046.1.1.39", "ARIA256_CCM" },
- { "1.2.410.200046.1.1.40", "ARIA128_KEYWRAP" },
- { "1.2.410.200046.1.1.41", "ARIA192_KEYWRAP" },
- { "1.2.410.200046.1.1.42", "ARIA256_KEYWRAP" },
- { "1.2.410.200046.1.1.43", "ARIA128_KEYWRAP_WITH_PAD" },
- { "1.2.410.200046.1.1.44", "ARIA192_KEYWRAP_WITH_PAD" },
- { "1.2.410.200046.1.1.45", "ARIA256_KEYWRAP_WITH_PAD" },
- { "1.2.643.2.2.3", "GOST_SIGNATURE" },
- { "1.2.643.2.2.4", "GOST94_SIGNATURE" },
- { "1.2.643.2.2.19", "GOST_PUBLIC_KEY" },
- { "1.2.643.2.2.20", "GOST94_PUBLIC_KEY" },
- { "1.2.643.2.2.21", "GOST_CIPHER" },
- { "1.2.643.2.2.31.0", "TEST_CIPHER_PARAMS" },
- { "1.2.643.2.2.31.1", "CRYPTO_PRO_CIPHER_A" },
- { "1.2.643.2.2.31.2", "CRYPTO_PRO_CIPHER_B" },
- { "1.2.643.2.2.31.3", "CRYPTO_PRO_CIPHER_C" },
- { "1.2.643.2.2.31.4", "CRYPTO_PRO_CIPHER_D" },
- { "1.2.643.2.2.31.5", "OSCAR11_CIPHER" },
- { "1.2.643.2.2.31.6", "OSCAR10_CIPHER" },
- { "1.2.643.2.2.31.7", "RIC1_CIPHER" },
- { "1.2.643.2.2.9", "GOST_DIGEST" },
- { "1.2.643.2.2.30.0", "TEST_DIGEST_PARAMS" },
- { "1.2.643.2.2.30.1", "CRYPTO_PRO_DIGEST_A" },
- { "1.2.643.2.2.35.0", "TEST_SIGN_PARAMS" },
- { "1.2.643.2.2.35.1", "CRYPTO_PRO_SIGN_A" },
- { "1.2.643.2.2.35.2", "CRYPTO_PRO_SIGN_B" },
- { "1.2.643.2.2.35.3", "CRYPTO_PRO_SIGN_C" },
- { "1.2.643.2.2.36.0", "CRYPTO_PRO_SIGN_XA" },
- { "1.2.643.2.2.36.1", "CRYPTO_PRO_SIGN_XB" },
- { "1.2.643.2.2.14.0", "NULL_MESHING" },
- { "1.2.643.2.2.14.1", "CRYPTO_PRO_MESHING" },
- { "1.2.643.2.2.10", "HMAC_GOST" },
- { "1.2.643.2.2.13.0", "GOST_WRAP" },
- { "1.2.643.2.2.13.1", "CRYPTO_PRO_WRAP" },
- { "1.2.643.2.2.96", "CRYPTO_PRO_ECDH_WRAP" },
- { "1.2.752.34.1", "SEIS_CP" },
- { "1.2.752.34.1.1", "SEIS_HIGH_ASSURANCE_POLICY_IDENTIFIER" },
- { "1.2.752.34.1.2", "SEIS_GAK_POLICY_IDENTIFIER" },
- { "1.2.752.34.2", "SEIS_PE" },
- { "1.2.752.34.3", "SEIS_AT" },
- { "1.2.752.34.3.1", "SEIS_AT_PERSONAL_IDENTIFIER" },
- { "1.2.840.10040.1", "MODULE" },
- { "1.2.840.10040.1.1", "X9F1_CERT_MGMT" },
- { "1.2.840.10040.2", "HOLDINSTRUCTION" },
- { "1.2.840.10040.2.1", "HOLDINSTRUCTION_NONE" },
- { "1.2.840.10040.2.2", "CALLISSUER" },
- { "1.2.840.10040.2.3", "REJECT" },
- { "1.2.840.10040.2.4", "PICKUP_TOKEN" },
- { "1.2.840.10040.3", "ATTRIBUTE" },
- { "1.2.840.10040.3.1", "COUNTER_SIGNATURE" },
- { "1.2.840.10040.3.2", "ATTRIBUTE_CERT" },
- { "1.2.840.10040.4", "ALGORITHM" },
- { "1.2.840.10040.4.1", "DSA" },
- { "1.2.840.10040.4.2", "DSA_MATCH" },
- { "1.2.840.10040.4.3", "DSA_WITH_SHA1" },
- { "1.2.840.10045.1", "FIELD_TYPE" },
- { "1.2.840.10045.1.1", "PRIME_FIELD" },
- { "1.2.840.10045.1.2", "CHARACTERISTIC_TWO_FIELD" },
- { "1.2.840.10045.1.2.3", "CHARACTERISTIC_TWO_BASIS" },
- { "1.2.840.10045.1.2.3.1", "ON_BASIS" },
- { "1.2.840.10045.1.2.3.2", "TP_BASIS" },
- { "1.2.840.10045.1.2.3.3", "PP_BASIS" },
- { "1.2.840.10045.2", "PUBLIC_KEY_TYPE" },
- { "1.2.840.10045.2.1", "EC_PUBLIC_KEY" },
- { "1.2.840.10045.3.0.1", "C2PNB163V1" },
- { "1.2.840.10045.3.0.2", "C2PNB163V2" },
- { "1.2.840.10045.3.0.3", "C2PNB163V3" },
- { "1.2.840.10045.3.0.5", "C2TNB191V1" },
- { "1.2.840.10045.3.0.6", "C2TNB191V2" },
- { "1.2.840.10045.3.0.7", "C2TNB191V3" },
- { "1.2.840.10045.3.0.10", "C2PNB208W1" },
- { "1.2.840.10045.3.0.11", "C2TNB239V1" },
- { "1.2.840.10045.3.0.12", "C2TNB239V2" },
- { "1.2.840.10045.3.0.13", "C2TNB239V3" },
- { "1.2.840.10045.3.0.16", "C2PNB272W1" },
- { "1.2.840.10045.3.0.18", "C2TNB359V1" },
- { "1.2.840.10045.3.0.19", "C2PNB368W1" },
- { "1.2.840.10045.3.0.20", "C2TNB431R1" },
- { "1.2.840.10045.3.1.1", "PRIME192V1" },
- { "1.2.840.10045.3.1.2", "PRIME192V2" },
- { "1.2.840.10045.3.1.3", "PRIME192V3" },
- { "1.2.840.10045.3.1.4", "PRIME239V1" },
- { "1.2.840.10045.3.1.5", "PRIME239V2" },
- { "1.2.840.10045.3.1.6", "PRIME239V3" },
- { "1.2.840.10045.3.1.7", "PRIME256V1" },
- { "1.2.840.10045.4.1", "ECDSA_WITH_SHA1" },
- { "1.2.840.10045.4.2", "ECDSA_WITH_RECOMMENDED" },
- { "1.2.840.10045.4.3", "ECDSA_WITH_SPECIFIED" },
- { "1.2.840.10045.4.3.1", "ECDSA_WITH_SHA224" },
- { "1.2.840.10045.4.3.2", "ECDSA_WITH_SHA256" },
- { "1.2.840.10045.4.3.3", "ECDSA_WITH_SHA384" },
- { "1.2.840.10045.4.3.4", "ECDSA_WITH_SHA512" },
- { "1.2.840.10046.1", "FIELD_TYPE" },
- { "1.2.840.10046.1.1", "GF_PRIME" },
- { "1.2.840.10046.2", "NUMBER_TYPE" },
- { "1.2.840.10046.2.1", "DH_PUBLIC_KEY" },
- { "1.2.840.10046.3", "SCHEME" },
- { "1.2.840.10046.3.1", "DH_STATIC" },
- { "1.2.840.10046.3.2", "DH_EPHEM" },
- { "1.2.840.10046.3.3", "DH_HYBRID1" },
- { "1.2.840.10046.3.4", "DH_HYBRID2" },
- { "1.2.840.10046.3.5", "MQV2" },
- { "1.2.840.10046.3.6", "MQV1" },
- { "1.2.840.10065.2.2", "?" },
- { "1.2.840.10065.2.3", "HEALTHCARE_LICENSE" },
- { "1.2.840.10065.2.3.1.1", "LICENSE?" },
- { "1.2.840.10070.", "IEC62351" },
- { "1.2.840.10070.8", "IEC62351_8" },
- { "1.2.840.10070.8.1", "IEC_USER_ROLES" },
- { "1.2.840.113533.7", "NSN" },
- { "1.2.840.113533.7.65", "NSN_CE" },
- { "1.2.840.113533.7.65.0", "ENTRUST_VERS_INFO" },
- { "1.2.840.113533.7.66", "NSN_ALG" },
- { "1.2.840.113533.7.66.3", "CAST3_CBC" },
- { "1.2.840.113533.7.66.10", "CAST5_CBC" },
- { "1.2.840.113533.7.66.11", "CAST5_MAC" },
- { "1.2.840.113533.7.66.12", "PBE_WITH_MD5_AND_CAST5_CBC" },
- { "1.2.840.113533.7.66.13", "PASSWORD_BASED_MAC" },
- { "1.2.840.113533.7.67", "NSN_OC" },
- { "1.2.840.113533.7.67.0", "ENTRUST_USER" },
- { "1.2.840.113533.7.68", "NSN_AT" },
- { "1.2.840.113533.7.68.0", "ENTRUST_CA_INFO" },
- { "1.2.840.113533.7.68.10", "ATTRIBUTE_CERTIFICATE" },
- { "1.2.840.113549.1.1", "PKCS_1" },
- { "1.2.840.113549.1.1.1", "RSA_ENCRYPTION" },
- { "1.2.840.113549.1.1.2", "MD2_WITH_RSA_ENCRYPTION" },
- { "1.2.840.113549.1.1.3", "MD4_WITH_RSA_ENCRYPTION" },
- { "1.2.840.113549.1.1.4", "MD5_WITH_RSA_ENCRYPTION" },
- { "1.2.840.113549.1.1.5", "SHA1_WITH_RSA_ENCRYPTION" },
- { "1.2.840.113549.1.1.7", "RSA_OAEP" },
- { "1.2.840.113549.1.1.8", "PKCS1_MGF" },
- { "1.2.840.113549.1.1.9", "RSA_OAEP_P_SPECIFIED" },
- { "1.2.840.113549.1.1.10", "RSA_PSS" },
- { "1.2.840.113549.1.1.11", "SHA256_WITH_RSA_ENCRYPTION" },
- { "1.2.840.113549.1.1.12", "SHA384_WITH_RSA_ENCRYPTION" },
- { "1.2.840.113549.1.1.13", "SHA512_WITH_RSA_ENCRYPTION" },
- { "1.2.840.113549.1.1.14", "SHA224_WITH_RSA_ENCRYPTION" },
- { "1.2.840.113549.1.1.6", "RSA_OAEP_ENCRYPTION_SET" },
- { "1.2.840.113549.1.2", "BSAFE_RSA_ENCR" },
- { "1.2.840.113549.1.3", "PKCS_3" },
- { "1.2.840.113549.1.3.1", "DH_KEY_AGREEMENT" },
- { "1.2.840.113549.1.5", "PKCS_5" },
- { "1.2.840.113549.1.5.1", "PBE_WITH_MD2_AND_DES_CBC" },
- { "1.2.840.113549.1.5.3", "PBE_WITH_MD5_AND_DES_CBC" },
- { "1.2.840.113549.1.5.4", "PBE_WITH_MD2_AND_RC2_CBC" },
- { "1.2.840.113549.1.5.6", "PBE_WITH_MD5_AND_RC2_CBC" },
- { "1.2.840.113549.1.5.9", "PBE_WITH_MD5_AND_XOR" },
- { "1.2.840.113549.1.5.10", "PBE_WITH_SHA_AND_DES_CBC" },
- { "1.2.840.113549.1.5.12", "PKCS5_PBKDF2" },
- { "1.2.840.113549.1.5.13", "PKCS5_PBES2" },
- { "1.2.840.113549.1.5.14", "PKCS5_PBMAC1" },
- { "1.2.840.113549.1.7", "PKCS_7" },
- { "1.2.840.113549.1.7.1", "DATA" },
- { "1.2.840.113549.1.7.2", "SIGNED_DATA" },
- { "1.2.840.113549.1.7.3", "ENVELOPED_DATA" },
- { "1.2.840.113549.1.7.4", "SIGNED_AND_ENVELOPED_DATA" },
- { "1.2.840.113549.1.7.5", "DIGESTED_DATA" },
- { "1.2.840.113549.1.7.6", "ENCRYPTED_DATA" },
- { "1.2.840.113549.1.7.7", "DATA_WITH_ATTRIBUTES" },
- { "1.2.840.113549.1.7.8", "ENCRYPTED_PRIVATE_KEY_INFO" },
- { "1.2.840.113549.1.9", "PKCS_9" },
- { "1.2.840.113549.1.9.1", "EMAIL_ADDRESS" },
- { "1.2.840.113549.1.9.2", "UNSTRUCTURED_NAME" },
- { "1.2.840.113549.1.9.3", "CONTENT_TYPE" },
- { "1.2.840.113549.1.9.4", "MESSAGE_DIGEST" },
- { "1.2.840.113549.1.9.5", "SIGNING_TIME" },
- { "1.2.840.113549.1.9.6", "COUNTER_SIGNATURE" },
- { "1.2.840.113549.1.9.7", "CHALLENGE_PASSWORD" },
- { "1.2.840.113549.1.9.8", "UNSTRUCTURED_ADDRESS" },
- { "1.2.840.113549.1.9.9", "EXTENDED_CERTIFICATE_ATTRIBUTES" },
- { "1.2.840.113549.1.9.10", "ISSUER_AND_SERIAL_NUMBER" },
- { "1.2.840.113549.1.9.11", "PASSWORD_CHECK" },
- { "1.2.840.113549.1.9.12", "PUBLIC_KEY" },
- { "1.2.840.113549.1.9.13", "SIGNING_DESCRIPTION" },
- { "1.2.840.113549.1.9.14", "EXTENSION_REQUEST" },
- { "1.2.840.113549.1.9.15", "S_MIME_CAPABILITIES" },
- { "1.2.840.113549.1.9.15.1", "PREFER_SIGNED_DATA" },
- { "1.2.840.113549.1.9.15.2", "CAN_NOT_DECRYPT_ANY" },
- { "1.2.840.113549.1.9.15.3", "RECEIPT_REQUEST" },
- { "1.2.840.113549.1.9.15.4", "RECEIPT" },
- { "1.2.840.113549.1.9.15.5", "CONTENT_HINTS" },
- { "1.2.840.113549.1.9.15.6", "ML_EXPANSION_HISTORY" },
- { "1.2.840.113549.1.9.16", "ID_S_MIME" },
- { "1.2.840.113549.1.9.16.0", "ID_MOD" },
- { "1.2.840.113549.1.9.16.0.1", "ID_MOD_CMS" },
- { "1.2.840.113549.1.9.16.0.2", "ID_MOD_ESS" },
- { "1.2.840.113549.1.9.16.0.3", "ID_MOD_OID" },
- { "1.2.840.113549.1.9.16.0.4", "ID_MOD_MSG_V3" },
- { "1.2.840.113549.1.9.16.0.5", "ID_MOD_ETS_E_SIGNATURE_88" },
- { "1.2.840.113549.1.9.16.0.6", "ID_MOD_ETS_E_SIGNATURE_97" },
- { "1.2.840.113549.1.9.16.0.7", "ID_MOD_ETS_E_SIG_POLICY_88" },
- { "1.2.840.113549.1.9.16.0.8", "ID_MOD_ETS_E_SIG_POLICY_88" },
- { "1.2.840.113549.1.9.16.1", "CONTENT_TYPE" },
- { "1.2.840.113549.1.9.16.1.1", "RECEIPT" },
- { "1.2.840.113549.1.9.16.1.2", "AUTH_DATA" },
- { "1.2.840.113549.1.9.16.1.3", "PUBLISH_CERT" },
- { "1.2.840.113549.1.9.16.1.4", "T_ST_INFO" },
- { "1.2.840.113549.1.9.16.1.5", "T_DT_INFO" },
- { "1.2.840.113549.1.9.16.1.6", "CONTENT_INFO" },
- { "1.2.840.113549.1.9.16.1.7", "D_VCS_REQUEST_DATA" },
- { "1.2.840.113549.1.9.16.1.8", "D_VCS_RESPONSE_DATA" },
- { "1.2.840.113549.1.9.16.1.9", "COMPRESSED_DATA" },
- { "1.2.840.113549.1.9.16.1.10", "SCVP_CERT_VAL_REQUEST" },
- { "1.2.840.113549.1.9.16.1.11", "SCVP_CERT_VAL_RESPONSE" },
- { "1.2.840.113549.1.9.16.1.12", "SCVP_VAL_POL_REQUEST" },
- { "1.2.840.113549.1.9.16.1.13", "SCVP_VAL_POL_RESPONSE" },
- { "1.2.840.113549.1.9.16.1.14", "ATTR_CERT_ENC_ATTRS" },
- { "1.2.840.113549.1.9.16.1.15", "T_S_REQ" },
- { "1.2.840.113549.1.9.16.1.16", "FIRMWARE_PACKAGE" },
- { "1.2.840.113549.1.9.16.1.17", "FIRMWARE_LOAD_RECEIPT" },
- { "1.2.840.113549.1.9.16.1.18", "FIRMWARE_LOAD_ERROR" },
- { "1.2.840.113549.1.9.16.1.19", "CONTENT_COLLECTION" },
- { "1.2.840.113549.1.9.16.1.20", "CONTENT_WITH_ATTRS" },
- { "1.2.840.113549.1.9.16.1.21", "ENC_KEY_WITH_ID" },
- { "1.2.840.113549.1.9.16.1.22", "ENC_PEPSI" },
- { "1.2.840.113549.1.9.16.1.23", "AUTH_ENVELOPED_DATA" },
- { "1.2.840.113549.1.9.16.1.24", "ROUTE_ORIGIN_ATTEST" },
- { "1.2.840.113549.1.9.16.1.25", "SYMMETRIC_KEY_PACKAGE" },
- { "1.2.840.113549.1.9.16.1.26", "RPKI_MANIFEST" },
- { "1.2.840.113549.1.9.16.1.27", "ASCII_TEXT_WITH_CRLF" },
- { "1.2.840.113549.1.9.16.1.28", "XML" },
- { "1.2.840.113549.1.9.16.1.29", "PDF" },
- { "1.2.840.113549.1.9.16.1.30", "POSTSCRIPT" },
- { "1.2.840.113549.1.9.16.1.31", "TIMESTAMPED_DATA" },
- { "1.2.840.113549.1.9.16.1.32", "AS_ADJACENCY_ATTEST" },
- { "1.2.840.113549.1.9.16.1.33", "RPKI_TRUST_ANCHOR" },
- { "1.2.840.113549.1.9.16.1.34", "TRUST_ANCHOR_LIST" },
- { "1.2.840.113549.1.9.16.2", "AUTHENTICATED_ATTRIBUTES" },
- { "1.2.840.113549.1.9.16.2.1", "RECEIPT_REQUEST" },
- { "1.2.840.113549.1.9.16.2.2", "SECURITY_LABEL" },
- { "1.2.840.113549.1.9.16.2.3", "ML_EXPAND_HISTORY" },
- { "1.2.840.113549.1.9.16.2.4", "CONTENT_HINT" },
- { "1.2.840.113549.1.9.16.2.5", "MSG_SIG_DIGEST" },
- { "1.2.840.113549.1.9.16.2.6", "ENCAP_CONTENT_TYPE" },
- { "1.2.840.113549.1.9.16.2.7", "CONTENT_IDENTIFIER" },
- { "1.2.840.113549.1.9.16.2.8", "MAC_VALUE" },
- { "1.2.840.113549.1.9.16.2.9", "EQUIVALENT_LABELS" },
- { "1.2.840.113549.1.9.16.2.10", "CONTENT_REFERENCE" },
- { "1.2.840.113549.1.9.16.2.11", "ENCRYP_KEY_PREF" },
- { "1.2.840.113549.1.9.16.2.12", "SIGNING_CERTIFICATE" },
- { "1.2.840.113549.1.9.16.2.13", "SMIME_ENCRYPT_CERTS" },
- { "1.2.840.113549.1.9.16.2.14", "TIME_STAMP_TOKEN" },
- { "1.2.840.113549.1.9.16.2.15", "SIG_POLICY_ID" },
- { "1.2.840.113549.1.9.16.2.16", "COMMITMENT_TYPE" },
- { "1.2.840.113549.1.9.16.2.17", "SIGNER_LOCATION" },
- { "1.2.840.113549.1.9.16.2.18", "SIGNER_ATTR" },
- { "1.2.840.113549.1.9.16.2.19", "OTHER_SIG_CERT" },
- { "1.2.840.113549.1.9.16.2.20", "CONTENT_TIMESTAMP" },
- { "1.2.840.113549.1.9.16.2.21", "CERTIFICATE_REFS" },
- { "1.2.840.113549.1.9.16.2.22", "REVOCATION_REFS" },
- { "1.2.840.113549.1.9.16.2.23", "CERT_VALUES" },
- { "1.2.840.113549.1.9.16.2.24", "REVOCATION_VALUES" },
- { "1.2.840.113549.1.9.16.2.25", "ESC_TIME_STAMP" },
- { "1.2.840.113549.1.9.16.2.26", "CERT_CRL_TIMESTAMP" },
- { "1.2.840.113549.1.9.16.2.27", "ARCHIVE_TIME_STAMP" },
- { "1.2.840.113549.1.9.16.2.28", "SIGNATURE_TYPE" },
- { "1.2.840.113549.1.9.16.2.29", "DVCS_DVC" },
- { "1.2.840.113549.1.9.16.2.30", "CEK_REFERENCE" },
- { "1.2.840.113549.1.9.16.2.31", "MAX_CEK_DECRYPTS" },
- { "1.2.840.113549.1.9.16.2.32", "KEK_DERIVATION_ALG" },
- { "1.2.840.113549.1.9.16.2.33", "INTENDED_RECIPIENTS" },
- { "1.2.840.113549.1.9.16.2.34", "CMC_UNSIGNED_DATA" },
- { "1.2.840.113549.1.9.16.2.35", "FW_PACKAGE_ID" },
- { "1.2.840.113549.1.9.16.2.36", "FW_TARGET_HARDWARE_I_DS" },
- { "1.2.840.113549.1.9.16.2.37", "FW_DECRYPT_KEY_ID" },
- { "1.2.840.113549.1.9.16.2.38", "FW_IMPL_CRYPT_ALGS" },
- { "1.2.840.113549.1.9.16.2.39", "FW_WRAPPED_FIRMWARE_KEY" },
- { "1.2.840.113549.1.9.16.2.40", "FW_COMMUNITY_IDENTIFIERS" },
- { "1.2.840.113549.1.9.16.2.41", "FW_PKG_MESSAGE_DIGEST" },
- { "1.2.840.113549.1.9.16.2.42", "FW_PACKAGE_INFO" },
- { "1.2.840.113549.1.9.16.2.43", "FW_IMPL_COMPRESS_ALGS" },
- { "1.2.840.113549.1.9.16.2.44", "ETS_ATTR_CERTIFICATE_REFS" },
- { "1.2.840.113549.1.9.16.2.45", "ETS_ATTR_REVOCATION_REFS" },
- { "1.2.840.113549.1.9.16.2.46", "BINARY_SIGNING_TIME" },
- { "1.2.840.113549.1.9.16.2.47", "SIGNING_CERTIFICATE_V2" },
- { "1.2.840.113549.1.9.16.2.48", "ETS_ARCHIVE_TIME_STAMP_V2" },
- { "1.2.840.113549.1.9.16.2.49", "ER_INTERNAL" },
- { "1.2.840.113549.1.9.16.2.50", "ER_EXTERNAL" },
- { "1.2.840.113549.1.9.16.2.51", "MULTIPLE_SIGNATURES" },
- { "1.2.840.113549.1.9.16.3.1", "ES_D_HWITH3_DES" },
- { "1.2.840.113549.1.9.16.3.2", "ES_D_HWITH_RC2" },
- { "1.2.840.113549.1.9.16.3.3", "3DES_WRAP" },
- { "1.2.840.113549.1.9.16.3.4", "RC2_WRAP" },
- { "1.2.840.113549.1.9.16.3.5", "ES_DH" },
- { "1.2.840.113549.1.9.16.3.6", "CMS3_DE_SWRAP" },
- { "1.2.840.113549.1.9.16.3.7", "CMS_RC2WRAP" },
- { "1.2.840.113549.1.9.16.3.8", "ZLIB" },
- { "1.2.840.113549.1.9.16.3.9", "PWRI_KEK" },
- { "1.2.840.113549.1.9.16.3.10", "SS_DH" },
- { "1.2.840.113549.1.9.16.3.11", "HMAC_WITH3_DE_SWRAP" },
- { "1.2.840.113549.1.9.16.3.12", "HMAC_WITH_AE_SWRAP" },
- { "1.2.840.113549.1.9.16.3.13", "MD5_XOR_EXPERIMENT" },
- { "1.2.840.113549.1.9.16.3.14", "RSA_KEM" },
- { "1.2.840.113549.1.9.16.3.15", "AUTH_ENC128" },
- { "1.2.840.113549.1.9.16.3.16", "AUTH_ENC256" },
- { "1.2.840.113549.1.9.16.4.1", "CERT_DIST_LDAP" },
- { "1.2.840.113549.1.9.16.5.1", "SIG_POLICY_QUALIFIER_SPURI_X" },
- { "1.2.840.113549.1.9.16.5.2", "SIG_POLICY_QUALIFIER_SP_USER_NOTICE" },
- { "1.2.840.113549.1.9.16.6.1", "PROOF_OF_ORIGIN" },
- { "1.2.840.113549.1.9.16.6.2", "PROOF_OF_RECEIPT" },
- { "1.2.840.113549.1.9.16.6.3", "PROOF_OF_DELIVERY" },
- { "1.2.840.113549.1.9.16.6.4", "PROOF_OF_SENDER" },
- { "1.2.840.113549.1.9.16.6.5", "PROOF_OF_APPROVAL" },
- { "1.2.840.113549.1.9.16.6.6", "PROOF_OF_CREATION" },
- { "1.2.840.113549.1.9.16.8.1", "GL_USE_KEK" },
- { "1.2.840.113549.1.9.16.8.2", "GL_DELETE" },
- { "1.2.840.113549.1.9.16.8.3", "GL_ADD_MEMBER" },
- { "1.2.840.113549.1.9.16.8.4", "GL_DELETE_MEMBER" },
- { "1.2.840.113549.1.9.16.8.5", "GL_REKEY" },
- { "1.2.840.113549.1.9.16.8.6", "GL_ADD_OWNER" },
- { "1.2.840.113549.1.9.16.8.7", "GL_REMOVE_OWNER" },
- { "1.2.840.113549.1.9.16.8.8", "GLK_COMPROMISE" },
- { "1.2.840.113549.1.9.16.8.9", "GLK_REFRESH" },
- { "1.2.840.113549.1.9.16.8.10", "GL_FAIL_INFO" },
- { "1.2.840.113549.1.9.16.8.11", "GLA_QUERY_REQUEST" },
- { "1.2.840.113549.1.9.16.8.12", "GLA_QUERY_RESPONSE" },
- { "1.2.840.113549.1.9.16.8.13", "GL_PROVIDE_CERT" },
- { "1.2.840.113549.1.9.16.8.14", "GL_UPDATE_CERT" },
- { "1.2.840.113549.1.9.16.8.15", "GL_KEY" },
- { "1.2.840.113549.1.9.16.9", "SIGNATURE_TYPE_IDENTIFIER" },
- { "1.2.840.113549.1.9.16.9.1", "ORIGINATOR_SIG" },
- { "1.2.840.113549.1.9.16.9.2", "DOMAIN_SIG" },
- { "1.2.840.113549.1.9.16.9.3", "ADDITIONAL_ATTRIBUTES_SIG" },
- { "1.2.840.113549.1.9.16.9.4", "REVIEW_SIG" },
- { "1.2.840.113549.1.9.16.11", "CAPABILITIES" },
- { "1.2.840.113549.1.9.16.11.1", "PREFER_BINARY_INSIDE" },
- { "1.2.840.113549.1.9.20", "FRIENDLY_NAME_(FOR_PKCS_#12)" },
- { "1.2.840.113549.1.9.21", "LOCAL_KEY_ID_(FOR_PKCS_#12)" },
- { "1.2.840.113549.1.9.22", "CERT_TYPES_(FOR_PKCS_#12)" },
- { "1.2.840.113549.1.9.22.1", "X509_CERTIFICATE_(FOR_PKCS_#12)" },
- { "1.2.840.113549.1.9.22.2", "SDSI_CERTIFICATE_(FOR_PKCS_#12)" },
- { "1.2.840.113549.1.9.23", "CRL_TYPES_(FOR_PKCS_#12)" },
- { "1.2.840.113549.1.9.23.1", "X509_CRL_(FOR_PKCS_#12)" },
- { "1.2.840.113549.1.9.24", "PKCS9OBJECT_CLASS" },
- { "1.2.840.113549.1.9.25", "PKCS9ATTRIBUTES" },
- { "1.2.840.113549.1.9.25.1", "PKCS15_TOKEN" },
- { "1.2.840.113549.1.9.25.2", "ENCRYPTED_PRIVATE_KEY_INFO" },
- { "1.2.840.113549.1.9.25.3", "RANDOM_NONCE" },
- { "1.2.840.113549.1.9.25.4", "SEQUENCE_NUMBER" },
- { "1.2.840.113549.1.9.25.5", "PKCS7_PDU" },
- { "1.2.840.113549.1.9.26", "PKCS9SYNTAX" },
- { "1.2.840.113549.1.9.27", "PKCS9MATCHING_RULES" },
- { "1.2.840.113549.1.12", "PKCS_12" },
- { "1.2.840.113549.1.12.1", "PKCS_12_PBE_IDS" },
- { "1.2.840.113549.1.12.1.1", "PBE_WITH_SHA_AND128_BIT_RC4" },
- { "1.2.840.113549.1.12.1.2", "PBE_WITH_SHA_AND40_BIT_RC4" },
- { "1.2.840.113549.1.12.1.3", "PBE_WITH_SHA_AND3_KEY_TRIPLE_DES_CBC" },
- { "1.2.840.113549.1.12.1.4", "PBE_WITH_SHA_AND2_KEY_TRIPLE_DES_CBC" },
- { "1.2.840.113549.1.12.1.5", "PBE_WITH_SHA_AND128_BIT_RC2_CBC" },
- { "1.2.840.113549.1.12.1.6", "PBE_WITH_SHA_AND40_BIT_RC2_CBC" },
- { "1.2.840.113549.1.12.2", "PKCS_12_ESPVKID" },
- { "1.2.840.113549.1.12.2.1", "PKCS_12_PKCS8_KEY_SHROUDING" },
- { "1.2.840.113549.1.12.3", "PKCS_12_BAG_IDS" },
- { "1.2.840.113549.1.12.3.1", "PKCS_12_KEY_BAG_ID" },
- { "1.2.840.113549.1.12.3.2", "PKCS_12_CERT_AND_CRL_BAG_ID" },
- { "1.2.840.113549.1.12.3.3", "PKCS_12_SECRET_BAG_ID" },
- { "1.2.840.113549.1.12.3.4", "PKCS_12_SAFE_CONTENTS_ID" },
- { "1.2.840.113549.1.12.3.5", "PKCS_12_PKCS_8_SHROUDED_KEY_BAG_ID" },
- { "1.2.840.113549.1.12.4", "PKCS_12_CERT_BAG_ID" },
- { "1.2.840.113549.1.12.4.1", "PKCS_12_X509_CERT_CRL_BAG_ID" },
- { "1.2.840.113549.1.12.4.2", "PKCS_12_SDSI_CERT_BAG_ID" },
- { "1.2.840.113549.1.12.5", "PKCS_12_OID" },
- { "1.2.840.113549.1.12.5.1", "PKCS_12_PBEID" },
- { "1.2.840.113549.1.12.5.1.1", "PKCS_12_PBE_WITH_SHA1_AND128_BIT_RC4" },
- { "1.2.840.113549.1.12.5.1.2", "PKCS_12_PBE_WITH_SHA1_AND40_BIT_RC4" },
- { "1.2.840.113549.1.12.5.1.3", "PKCS_12_PBE_WITH_SHA1_AND_TRIPLE_DESCBC" },
- { "1.2.840.113549.1.12.5.1.4", "PKCS_12_PBE_WITH_SHA1_AND128_BIT_RC2_CBC" },
- { "1.2.840.113549.1.12.5.1.5", "PKCS_12_PBE_WITH_SHA1_AND40_BIT_RC2_CBC" },
- { "1.2.840.113549.1.12.5.1.6", "PKCS_12_PBE_WITH_SHA1_AND_RC4" },
- { "1.2.840.113549.1.12.5.1.7", "PKCS_12_PBE_WITH_SHA1_AND_RC2_CBC" },
- { "1.2.840.113549.1.12.5.2", "PKCS_12_ENVELOPING_ID" },
- { "1.2.840.113549.1.12.5.2.1", "PKCS_12_RSA_ENCRYPTION_WITH128_BIT_RC4" },
- { "1.2.840.113549.1.12.5.2.2", "PKCS_12_RSA_ENCRYPTION_WITH40_BIT_RC4" },
- { "1.2.840.113549.1.12.5.2.3", "PKCS_12_RSA_ENCRYPTION_WITH_TRIPLE_DES" },
- { "1.2.840.113549.1.12.5.3", "PKCS_12_SIGNATURE_ID" },
- { "1.2.840.113549.1.12.5.3.1", "PKCS_12_RSA_SIGNATURE_WITH_SHA1_DIGEST" },
- { "1.2.840.113549.1.12.10", "PKCS_12_VERSION1" },
- { "1.2.840.113549.1.12.10.1", "PKCS_12_BAD_IDS" },
- { "1.2.840.113549.1.12.10.1.1", "PKCS_12_KEY_BAG" },
- { "1.2.840.113549.1.12.10.1.2", "PKCS_12_PKCS_8_SHROUDED_KEY_BAG" },
- { "1.2.840.113549.1.12.10.1.3", "PKCS_12_CERT_BAG" },
- { "1.2.840.113549.1.12.10.1.4", "PKCS_12_CRL_BAG" },
- { "1.2.840.113549.1.12.10.1.5", "PKCS_12_SECRET_BAG" },
- { "1.2.840.113549.1.12.10.1.6", "PKCS_12_SAFE_CONTENTS_BAG" },
- { "1.2.840.113549.1.15.1", "PKCS15MODULES" },
- { "1.2.840.113549.1.15.2", "PKCS15ATTRIBUTES" },
- { "1.2.840.113549.1.15.3", "PKCS15CONTENT_TYPE" },
- { "1.2.840.113549.1.15.3.1", "PKCS15CONTENT" },
- { "1.2.840.113549.2", "DIGEST_ALGORITHM" },
- { "1.2.840.113549.2.2", "MD2" },
- { "1.2.840.113549.2.4", "MD4" },
- { "1.2.840.113549.2.5", "MD5" },
- { "1.2.840.113549.2.7", "HMAC_WITH_SHA1" },
- { "1.2.840.113549.2.8", "HMAC_WITH_SHA224" },
- { "1.2.840.113549.2.9", "HMAC_WITH_SHA256" },
- { "1.2.840.113549.2.10", "HMAC_WITH_SHA384" },
- { "1.2.840.113549.2.11", "HMAC_WITH_SHA512" },
- { "1.2.840.113549.3", "ENCRYPTION_ALGORITHM" },
- { "1.2.840.113549.3.2", "RC2_CBC" },
- { "1.2.840.113549.3.3", "RC2_ECB" },
- { "1.2.840.113549.3.4", "RC4" },
- { "1.2.840.113549.3.5", "RC4_WITH_MAC" },
- { "1.2.840.113549.3.6", "DESX_CBC" },
- { "1.2.840.113549.3.7", "DES_EDE3_CBC" },
- { "1.2.840.113549.3.8", "RC5_CBC" },
- { "1.2.840.113549.3.9", "RC5_CBC_PAD" },
- { "1.2.840.113549.3.10", "DES_CDMF" },
- { "1.2.840.114021.1.6.1", "IDENTRUS_UNKNOWN_POLICY_IDENTIFIER" },
- { "1.2.840.114021.4.1", "IDENTRUS_OCSP" },
- { "1.2.840.113556.1.2.241", "DELIVERY_MECHANISM" },
- { "1.2.840.113556.1.2.281", "NT_SECURITY_DESCRIPTOR" },
- { "1.2.840.113556.1.3.0", "SITE_ADDRESSING" },
- { "1.2.840.113556.1.3.13", "CLASS_SCHEMA" },
- { "1.2.840.113556.1.3.14", "ATTRIBUTE_SCHEMA" },
- { "1.2.840.113556.1.3.17", "MAILBOX_AGENT" },
- { "1.2.840.113556.1.3.22", "MAILBOX" },
- { "1.2.840.113556.1.3.23", "CONTAINER" },
- { "1.2.840.113556.1.3.46", "MAIL_RECIPIENT" },
- { "1.2.840.113556.1.4.145", "REVISION" },
- { "1.2.840.113556.1.4.1327", "P_KI_DEFAULT_KEY_SPEC" },
- { "1.2.840.113556.1.4.1328", "P_KI_KEY_USAGE" },
- { "1.2.840.113556.1.4.1329", "P_KI_MAX_ISSUING_DEPTH" },
- { "1.2.840.113556.1.4.1330", "P_KI_CRITICAL_EXTENSIONS" },
- { "1.2.840.113556.1.4.1331", "P_KI_EXPIRATION_PERIOD" },
- { "1.2.840.113556.1.4.1332", "P_KI_OVERLAP_PERIOD" },
- { "1.2.840.113556.1.4.1333", "P_KI_EXTENDED_KEY_USAGE" },
- { "1.2.840.113556.1.4.1334", "P_KI_DEFAULT_CS_PS" },
- { "1.2.840.113556.1.4.1335", "P_KI_ENROLLMENT_ACCESS" },
- { "1.2.840.113556.1.4.1429", "MS_PKI_RA_SIGNATURE" },
- { "1.2.840.113556.1.4.1430", "MS_PKI_ENROLLMENT_FLAG" },
- { "1.2.840.113556.1.4.1431", "MS_PKI_PRIVATE_KEY_FLAG" },
- { "1.2.840.113556.1.4.1432", "MS_PKI_CERTIFICATE_NAME_FLAG" },
- { "1.2.840.113556.1.4.1433", "MS_PKI_MINIMAL_KEY_SIZE" },
- { "1.2.840.113556.1.4.1434", "MS_PKI_TEMPLATE_SCHEMA_VERSION" },
- { "1.2.840.113556.1.4.1435", "MS_PKI_TEMPLATE_MINOR_REVISION" },
- { "1.2.840.113556.1.4.1436", "MS_PKI_CERT_TEMPLATE_OID" },
- { "1.2.840.113556.1.4.1437", "MS_PKI_SUPERSEDE_TEMPLATES" },
- { "1.2.840.113556.1.4.1438", "MS_PKI_RA_POLICIES" },
- { "1.2.840.113556.1.4.1439", "MS_PKI_CERTIFICATE_POLICY" },
- { "1.2.840.113556.1.4.1674", "MS_PKI_CERTIFICATE_APPLICATION_POLICY" },
- { "1.2.840.113556.1.4.1675", "MS_PKI_RA_APPLICATION_POLICIES" },
- { "1.2.840.113556.4.3", "MICROSOFT_EXCEL" },
- { "1.2.840.113556.4.4", "TITLED_WITH_OID" },
- { "1.2.840.113556.4.5", "MICROSOFT_POWER_POINT" },
- { "1.2.840.113583.1", "ADOBE_ACROBAT" },
- { "1.2.840.113583.1.1", "ACROBAT_SECURITY" },
- { "1.2.840.113583.1.1.1", "PDF_PASSWORD" },
- { "1.2.840.113583.1.1.2", "PDF_DEFAULT_SIGNING_CREDENTIAL" },
- { "1.2.840.113583.1.1.3", "PDF_DEFAULT_ENCRYPTION_CREDENTIAL" },
- { "1.2.840.113583.1.1.4", "PDF_PASSWORD_TIMEOUT" },
- { "1.2.840.113583.1.1.5", "PDF_AUTHENTIC_DOCUMENTS_TRUST" },
- { "1.2.840.113583.1.1.6", "PDF_DYNAMIC_CONTENT_TRUST" },
- { "1.2.840.113583.1.1.7", "PDF_UBIQUITY_TRUST" },
- { "1.2.840.113583.1.1.8", "PDF_REVOCATION_INFO_ARCHIVAL" },
- { "1.2.840.113583.1.1.9", "PDF_X509_EXTENSION" },
- { "1.2.840.113583.1.1.9.1", "PDF_TIME_STAMP" },
- { "1.2.840.113583.1.1.9.2", "PDF_ARCHIVE_REV_INFO" },
- { "1.2.840.113583.1.1.10", "PDF_PPLK_LITE_CREDENTIAL" },
- { "1.2.840.113583.1.2.", "ACROBAT_CPS" },
- { "1.2.840.113583.1.2.1", "PDF_AUTHENTIC_DOCUMENTS_CPS" },
- { "1.2.840.113583.1.2.2", "PDF_TEST_CPS" },
- { "1.2.840.113583.1.2.3", "PDF_UBIQUITY_CPS" },
- { "1.2.840.113583.1.2.4", "PDF_ADHOC_CPS" },
- { "1.2.840.113583.1.7", "ACROBAT_UBIQUITY" },
- { "1.2.840.113583.1.7.1", "PDF_UBIQUITY_SUB_RIGHTS" },
- { "1.2.840.113583.1.9", "ACROBAT_EXTENSION" },
- { "1.2.840.113628.114.1.7", "ADOBE_PKCS7" },
- { "1.2.840.113635.100", "APPLE_DATA_SECURITY" },
- { "1.2.840.113635.100.1", "APPLE_TRUST_POLICY" },
- { "1.2.840.113635.100.1.1", "APPLE_I_SIGN_TP" },
- { "1.2.840.113635.100.1.2", "APPLE_X509_BASIC" },
- { "1.2.840.113635.100.1.3", "APPLE_SSL_POLICY" },
- { "1.2.840.113635.100.1.4", "APPLE_LOCAL_CERT_GEN_POLICY" },
- { "1.2.840.113635.100.1.5", "APPLE_CSR_GEN_POLICY" },
- { "1.2.840.113635.100.1.6", "APPLE_CRL_POLICY" },
- { "1.2.840.113635.100.1.7", "APPLE_OCSP_POLICY" },
- { "1.2.840.113635.100.1.8", "APPLE_SMIME_POLICY" },
- { "1.2.840.113635.100.1.9", "APPLE_EAP_POLICY" },
- { "1.2.840.113635.100.1.10", "APPLE_SW_UPDATE_SIGNING_POLICY" },
- { "1.2.840.113635.100.1.11", "APPLE_IP_SEC_POLICY" },
- { "1.2.840.113635.100.1.12", "APPLE_I_CHAT_POLICY" },
- { "1.2.840.113635.100.1.13", "APPLE_RESOURCE_SIGN_POLICY" },
- { "1.2.840.113635.100.1.14", "APPLE_PKINIT_CLIENT_POLICY" },
- { "1.2.840.113635.100.1.15", "APPLE_PKINIT_SERVER_POLICY" },
- { "1.2.840.113635.100.1.16", "APPLE_CODE_SIGNING_POLICY" },
- { "1.2.840.113635.100.1.17", "APPLE_PACKAGE_SIGNING_POLICY" },
- { "1.2.840.113635.100.2", "APPLE_SECURITY_ALGORITHM" },
- { "1.2.840.113635.100.2.1", "APPLE_FEE" },
- { "1.2.840.113635.100.2.2", "APPLE_ASC" },
- { "1.2.840.113635.100.2.3", "APPLE_FEE_MD5" },
- { "1.2.840.113635.100.2.4", "APPLE_FEE_SHA1" },
- { "1.2.840.113635.100.2.5", "APPLE_FEED" },
- { "1.2.840.113635.100.2.6", "APPLE_FEEDEXP" },
- { "1.2.840.113635.100.2.7", "APPLE_ECDSA" },
- { "1.2.840.113635.100.3", "APPLE_DOT_MAC_CERTIFICATE" },
- { "1.2.840.113635.100.3.1", "APPLE_DOT_MAC_CERTIFICATE_REQUEST" },
- { "1.2.840.113635.100.3.2", "APPLE_DOT_MAC_CERTIFICATE_EXTENSION" },
- { "1.2.840.113635.100.3.3", "APPLE_DOT_MAC_CERTIFICATE_REQUEST_VALUES" },
- { "1.2.840.113635.100.4", "APPLE_EXTENDED_KEY_USAGE" },
- { "1.2.840.113635.100.4.1", "APPLE_CODE_SIGNING" },
- { "1.2.840.113635.100.4.1.1", "APPLE_CODE_SIGNING_DEVELOPMENT" },
- { "1.2.840.113635.100.4.1.2", "APPLE_SOFTWARE_UPDATE_SIGNING" },
- { "1.2.840.113635.100.4.1.3", "APPLE_CODE_SIGNING_THIRD_PARTY" },
- { "1.2.840.113635.100.4.1.4", "APPLE_RESOURCE_SIGNING" },
- { "1.2.840.113635.100.4.2", "APPLE_I_CHAT_SIGNING" },
- { "1.2.840.113635.100.4.3", "APPLE_I_CHAT_ENCRYPTION" },
- { "1.2.840.113635.100.4.4", "APPLE_SYSTEM_IDENTITY" },
- { "1.2.840.113635.100.4.5", "APPLE_CRYPTO_ENV" },
- { "1.2.840.113635.100.4.5.1", "APPLE_CRYPTO_PRODUCTION_ENV" },
- { "1.2.840.113635.100.4.5.2", "APPLE_CRYPTO_MAINTENANCE_ENV" },
- { "1.2.840.113635.100.4.5.3", "APPLE_CRYPTO_TEST_ENV" },
- { "1.2.840.113635.100.4.5.4", "APPLE_CRYPTO_DEVELOPMENT_ENV" },
- { "1.2.840.113635.100.4.6", "APPLE_CRYPTO_QO_S" },
- { "1.2.840.113635.100.4.6.1", "APPLE_CRYPTO_TIER0_QO_S" },
- { "1.2.840.113635.100.4.6.2", "APPLE_CRYPTO_TIER1_QO_S" },
- { "1.2.840.113635.100.4.6.3", "APPLE_CRYPTO_TIER2_QO_S" },
- { "1.2.840.113635.100.4.6.4", "APPLE_CRYPTO_TIER3_QO_S" },
- { "1.2.840.113635.100.5", "APPLE_CERTIFICATE_POLICIES" },
- { "1.2.840.113635.100.5.1", "APPLE_CERTIFICATE_POLICY_ID" },
- { "1.2.840.113635.100.5.2", "APPLE_DOT_MAC_CERTIFICATE_POLICY_ID" },
- { "1.2.840.113635.100.5.3", "APPLE_ADC_CERTIFICATE_POLICY_ID" },
- { "1.2.840.113635.100.6", "APPLE_CERTIFICATE_EXTENSIONS" },
- { "1.2.840.113635.100.6.1", "APPLE_CERTIFICATE_EXTENSION_CODE_SIGNING" },
- { "1.2.840.113635.100.6.1.1", "APPLE_CERTIFICATE_EXTENSION_APPLE_SIGNING" },
- { "1.2.840.113635.100.6.1.2", "APPLE_CERTIFICATE_EXTENSION_ADC_DEVELOPER_SIGNING" },
- { "1.2.840.113635.100.6.1.3", "APPLE_CERTIFICATE_EXTENSION_ADC_APPLE_SIGNING" },
- { "1.3.6.1.4.1.311.2.1.4", "SPC_INDIRECT_DATA_CONTENT" },
- { "1.3.6.1.4.1.311.2.1.10", "SPC_AGENCY_INFO" },
- { "1.3.6.1.4.1.311.2.1.11", "SPC_STATEMENT_TYPE" },
- { "1.3.6.1.4.1.311.2.1.12", "SPC_SP_OPUS_INFO" },
- { "1.3.6.1.4.1.311.2.1.14", "CERT_REQ_EXTENSIONS" },
- { "1.3.6.1.4.1.311.2.1.15", "SPC_PE_IMAGE_DATA" },
- { "1.3.6.1.4.1.311.2.1.18", "SPC_RAW_FILE_DATA" },
- { "1.3.6.1.4.1.311.2.1.19", "SPC_STRUCTURED_STORAGE_DATA" },
- { "1.3.6.1.4.1.311.2.1.20", "SPC_JAVA_CLASS_DATA_(TYPE_1)" },
- { "1.3.6.1.4.1.311.2.1.21", "INDIVIDUAL_CODE_SIGNING" },
- { "1.3.6.1.4.1.311.2.1.22", "COMMERCIAL_CODE_SIGNING" },
- { "1.3.6.1.4.1.311.2.1.25", "SPC_LINK_(TYPE_2)" },
- { "1.3.6.1.4.1.311.2.1.26", "SPC_MINIMAL_CRITERIA_INFO" },
- { "1.3.6.1.4.1.311.2.1.27", "SPC_FINANCIAL_CRITERIA_INFO" },
- { "1.3.6.1.4.1.311.2.1.28", "SPC_LINK_(TYPE_3)" },
- { "1.3.6.1.4.1.311.2.1.29", "SPC_HASH_INFO_OBJ_ID" },
- { "1.3.6.1.4.1.311.2.1.30", "SPC_SIP_INFO_OBJ_ID" },
- { "1.3.6.1.4.1.311.2.2", "CTL" },
- { "1.3.6.1.4.1.311.2.2.1", "CTL_TRUSTED_CODESIGNING_CA_LIST" },
- { "1.3.6.1.4.1.311.2.2.2", "CTL_TRUSTED_CLIENT_AUTH_CA_LIST" },
- { "1.3.6.1.4.1.311.2.2.3", "CTL_TRUSTED_SERVER_AUTH_CA_LIST" },
- { "1.3.6.1.4.1.311.2.4.1", "SPC_NESTED_SIGNATURES" },
- { "1.3.6.1.4.1.311.3.2.1", "TIMESTAMP_REQUEST" },
- { "1.3.6.1.4.1.311.10.1", "CERT_TRUST_LIST" },
- { "1.3.6.1.4.1.311.10.1.1", "SORTED_CTL" },
- { "1.3.6.1.4.1.311.10.2", "NEXT_UPDATE_LOCATION" },
- { "1.3.6.1.4.1.311.10.3.1", "CERT_TRUST_LIST_SIGNING" },
- { "1.3.6.1.4.1.311.10.3.2", "TIME_STAMP_SIGNING" },
- { "1.3.6.1.4.1.311.10.3.3", "SERVER_GATED_CRYPTO" },
- { "1.3.6.1.4.1.311.10.3.3.1", "SERIALIZED" },
- { "1.3.6.1.4.1.311.10.3.4", "ENCRYPTED_FILE_SYSTEM" },
- { "1.3.6.1.4.1.311.10.3.5", "WHQL_CRYPTO" },
- { "1.3.6.1.4.1.311.10.3.6", "NT5_CRYPTO" },
- { "1.3.6.1.4.1.311.10.3.7", "OEM_WHQL_CRYPTO" },
- { "1.3.6.1.4.1.311.10.3.8", "EMBEDDED_NT_CRYPTO" },
- { "1.3.6.1.4.1.311.10.3.9", "ROOT_LIST_SIGNER" },
- { "1.3.6.1.4.1.311.10.3.10", "QUALIFIED_SUBORDINATION" },
- { "1.3.6.1.4.1.311.10.3.11", "KEY_RECOVERY" },
- { "1.3.6.1.4.1.311.10.3.12", "DOCUMENT_SIGNING" },
- { "1.3.6.1.4.1.311.10.3.13", "LIFETIME_SIGNING" },
- { "1.3.6.1.4.1.311.10.3.14", "MOBILE_DEVICE_SOFTWARE" },
- { "1.3.6.1.4.1.311.10.3.15", "SMART_DISPLAY" },
- { "1.3.6.1.4.1.311.10.3.16", "CSP_SIGNATURE" },
- { "1.3.6.1.4.1.311.10.3.4.1", "EFS_RECOVERY" },
- { "1.3.6.1.4.1.311.10.4.1", "YESNO_TRUST_ATTR" },
- { "1.3.6.1.4.1.311.10.5.1", "DRM" },
- { "1.3.6.1.4.1.311.10.5.2", "DRM_INDIVIDUALIZATION" },
- { "1.3.6.1.4.1.311.10.6.1", "LICENSES" },
- { "1.3.6.1.4.1.311.10.6.2", "LICENSE_SERVER" },
- { "1.3.6.1.4.1.311.10.7.1", "KEYID_RDN" },
- { "1.3.6.1.4.1.311.10.8.1", "REMOVE_CERTIFICATE" },
- { "1.3.6.1.4.1.311.10.9.1", "CROSS_CERT_DIST_POINTS" },
- { "1.3.6.1.4.1.311.10.10.1", "CMC_ADD_ATTRIBUTES" },
- { "1.3.6.1.4.1.311.10.11", "CERT_PROP_ID_PREFIX" },
- { "1.3.6.1.4.1.311.10.11.4", "CERT_MD5_HASH_PROP_ID" },
- { "1.3.6.1.4.1.311.10.11.20", "CERT_KEY_IDENTIFIER_PROP_ID" },
- { "1.3.6.1.4.1.311.10.11.28", "CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID" },
- { "1.3.6.1.4.1.311.10.11.29", "CERT_SUBJECT_NAME_MD5_HASH_PROP_ID" },
- { "1.3.6.1.4.1.311.10.12.1", "ANY_APPLICATION_POLICY" },
- { "1.3.6.1.4.1.311.12", "CATALOG" },
- { "1.3.6.1.4.1.311.12.1.1", "CATALOG_LIST" },
- { "1.3.6.1.4.1.311.12.1.2", "CATALOG_LIST_MEMBER" },
- { "1.3.6.1.4.1.311.12.2.1", "CATALOG_NAME_VALUE_OBJ_ID" },
- { "1.3.6.1.4.1.311.12.2.2", "CATALOG_MEMBER_INFO_OBJ_ID" },
- { "1.3.6.1.4.1.311.13.1", "RENEWAL_CERTIFICATE" },
- { "1.3.6.1.4.1.311.13.2.1", "ENROLMENT_NAME_VALUE_PAIR" },
- { "1.3.6.1.4.1.311.13.2.2", "ENROLMENT_CSP" },
- { "1.3.6.1.4.1.311.13.2.3", "OS_VERSION" },
- { "1.3.6.1.4.1.311.16.4", "MICROSOFT_RECIPIENT_INFO" },
- { "1.3.6.1.4.1.311.17.1", "PKCS12_KEY_PROVIDER_NAME_ATTR" },
- { "1.3.6.1.4.1.311.17.2", "LOCAL_MACHINE_KEYSET" },
- { "1.3.6.1.4.1.311.17.3", "PKCS12_EXTENDED_ATTRIBUTES" },
- { "1.3.6.1.4.1.311.20.1", "AUTO_ENROLL_CTL_USAGE" },
- { "1.3.6.1.4.1.311.20.2", "ENROLL_CERTTYPE_EXTENSION" },
- { "1.3.6.1.4.1.311.20.2.1", "ENROLLMENT_AGENT" },
- { "1.3.6.1.4.1.311.20.2.2", "SMARTCARD_LOGON" },
- { "1.3.6.1.4.1.311.20.2.3", "UNIVERSAL_PRINCIPAL_NAME" },
- { "1.3.6.1.4.1.311.20.3", "CERT_MANIFOLD" },
- { "1.3.6.1.4.1.311.21.1", "C_A_KEY_CERT_INDEX_PAIR" },
- { "1.3.6.1.4.1.311.21.2", "CERT_SRV_PREVIOUS_CERT_HASH" },
- { "1.3.6.1.4.1.311.21.3", "CRL_VIRTUAL_BASE" },
- { "1.3.6.1.4.1.311.21.4", "CRL_NEXT_PUBLISH" },
- { "1.3.6.1.4.1.311.21.5", "CA_EXCHANGE" },
- { "1.3.6.1.4.1.311.21.6", "KEY_RECOVERY" },
- { "1.3.6.1.4.1.311.21.7", "CERTIFICATE_TEMPLATE" },
- { "1.3.6.1.4.1.311.21.9", "RDN_DUMMY_SIGNER" },
- { "1.3.6.1.4.1.311.21.10", "APPLICATION_CERT_POLICIES" },
- { "1.3.6.1.4.1.311.21.11", "APPLICATION_POLICY_MAPPINGS" },
- { "1.3.6.1.4.1.311.21.12", "APPLICATION_POLICY_CONSTRAINTS" },
- { "1.3.6.1.4.1.311.21.13", "ARCHIVED_KEY" },
- { "1.3.6.1.4.1.311.21.14", "CRL_SELF_CDP" },
- { "1.3.6.1.4.1.311.21.15", "REQUIRE_CERT_CHAIN_POLICY" },
- { "1.3.6.1.4.1.311.21.16", "ARCHIVED_KEY_CERT_HASH" },
- { "1.3.6.1.4.1.311.21.17", "ISSUED_CERT_HASH" },
- { "1.3.6.1.4.1.311.21.19", "DS_EMAIL_REPLICATION" },
- { "1.3.6.1.4.1.311.21.20", "REQUEST_CLIENT_INFO" },
- { "1.3.6.1.4.1.311.21.21", "ENCRYPTED_KEY_HASH" },
- { "1.3.6.1.4.1.311.21.22", "CERTSRV_CROSS_CA_VERSION" },
- { "1.3.6.1.4.1.311.25.1", "NTDS_REPLICATION" },
- { "1.3.6.1.4.1.311.31.1", "PRODUCT_UPDATE" },
- { "1.3.6.1.4.1.311.47.1.1", "SYSTEM_HEALTH" },
- { "1.3.6.1.4.1.311.47.1.3", "SYSTEM_HEALTH_LOOPHOLE" },
- { "1.3.6.1.4.1.311.60.1.1", "ROOT_PROGRAM_FLAGS" },
- { "1.3.6.1.4.1.311.61.1.1", "KERNEL_MODE_CODE_SIGNING" },
- { "1.3.6.1.4.1.311.60.2.1.1", "JURISDICTION_OF_INCORPORATION_L" },
- { "1.3.6.1.4.1.311.60.2.1.2", "JURISDICTION_OF_INCORPORATION_SP" },
- { "1.3.6.1.4.1.311.60.2.1.3", "JURISDICTION_OF_INCORPORATION_C" },
- { "1.3.6.1.4.1.311.88", "CAPI_COM" },
- { "1.3.6.1.4.1.311.88.1", "CAPI_COM_VERSION" },
- { "1.3.6.1.4.1.311.88.2", "CAPI_COM_ATTRIBUTE" },
- { "1.3.6.1.4.1.311.88.2.1", "CAPI_COM_DOCUMENT_NAME" },
- { "1.3.6.1.4.1.311.88.2.2", "CAPI_COM_DOCUMENT_DESCRIPTION" },
- { "1.3.6.1.4.1.311.88.3", "CAPI_COM_ENCRYPTED_DATA" },
- { "1.3.6.1.4.1.311.88.3.1", "CAPI_COM_ENCRYPTED_CONTENT" },
- { "1.3.6.1.4.1.188.7.1.1", "ASCOM" },
- { "1.3.6.1.4.1.188.7.1.1.1", "IDEA_ECB" },
- { "1.3.6.1.4.1.188.7.1.1.2", "IDEA_CBC" },
- { "1.3.6.1.4.1.188.7.1.1.3", "IDEA_CFB" },
- { "1.3.6.1.4.1.188.7.1.1.4", "IDEA_OFB" },
- { "1.3.6.1.4.1.2428.10.1.1", "UNINETT_POLICY_IDENTIFIER" },
- { "1.3.6.1.4.1.2712.10", "ICE_TEL_POLICY_IDENTIFIER" },
- { "1.3.6.1.4.1.2786.1.1.1", "ICE_TEL_ITALIAN_POLICY_IDENTIFIER" },
- { "1.3.6.1.4.1.3029.1.1.1", "BLOWFISH_ECB" },
- { "1.3.6.1.4.1.3029.1.1.2", "BLOWFISH_CBC" },
- { "1.3.6.1.4.1.3029.1.1.3", "BLOWFISH_CFB" },
- { "1.3.6.1.4.1.3029.1.1.4", "BLOWFISH_OFB" },
- { "1.3.6.1.4.1.3029.1.2.1", "ELGAMAL" },
- { "1.3.6.1.4.1.3029.1.2.1.1", "ELGAMAL_WITH_SHA_1" },
- { "1.3.6.1.4.1.3029.1.2.1.2", "ELGAMAL_WITH_RIPEMD_160" },
- { "1.3.6.1.4.1.3029.3.1.1", "CRYPTLIB_PRESENCE_CHECK" },
- { "1.3.6.1.4.1.3029.3.1.2", "PKI_BOOT" },
- { "1.3.6.1.4.1.3029.3.1.4", "CRL_EXT_REASON" },
- { "1.3.6.1.4.1.3029.3.1.5", "KEY_FEATURES" },
- { "1.3.6.1.4.1.3029.4.1", "CRYPTLIB_CONTENT" },
- { "1.3.6.1.4.1.3029.4.1.1", "CRYPTLIB_CONFIG_DATA" },
- { "1.3.6.1.4.1.3029.4.1.2", "CRYPTLIB_USER_INDEX" },
- { "1.3.6.1.4.1.3029.4.1.3", "CRYPTLIB_USER_INFO" },
- { "1.3.6.1.4.1.3029.4.1.4", "RTCS_REQUEST" },
- { "1.3.6.1.4.1.3029.4.1.5", "RTCS_RESPONSE" },
- { "1.3.6.1.4.1.3029.4.1.6", "RTCS_RESPONSE_EXT" },
- { "1.3.6.1.4.1.3029.42.11172.1", "MPEG_1" },
- { "1.3.6.1.4.1.3029.54.11940.54", "TSA_POLICY" },
- { "1.3.6.1.4.1.3029.88.89.90.90.89", "X_YZZY_POLICY_IDENTIFIER" },
- { "1.3.6.1.4.1.3401.8.1.1", "PGP_EXTENSION" },
- { "1.3.6.1.4.1.3576.7", "ECIA_ASC_X12_EDI" },
- { "1.3.6.1.4.1.3576.7.1", "PLAIN_ED_IMESSAGE" },
- { "1.3.6.1.4.1.3576.7.2", "SIGNED_ED_IMESSAGE" },
- { "1.3.6.1.4.1.3576.7.5", "INTEGRITY_ED_IMESSAGE" },
- { "1.3.6.1.4.1.3576.7.65", "IA_RECEIPT_MESSAGE" },
- { "1.3.6.1.4.1.3576.7.97", "IA_STATUS_MESSAGE" },
- { "1.3.6.1.4.1.3576.8", "ECIA_EDIFACT" },
- { "1.3.6.1.4.1.3576.9", "ECIA_NON_EDI" },
- { "1.3.6.1.4.1.4146", "GLOBALSIGN" },
- { "1.3.6.1.4.1.4146.1", "GLOBALSIGN_POLICY" },
- { "1.3.6.1.4.1.4146.1.10", "GLOBALSIGN_DV_POLICY" },
- { "1.3.6.1.4.1.4146.1.20", "GLOBALSIGN_OV_POLICY" },
- { "1.3.6.1.4.1.4146.1.30", "GLOBALSIGN_TSA_POLICY" },
- { "1.3.6.1.4.1.4146.1.40", "GLOBALSIGN_CLIENT_CERT_POLICY" },
- { "1.3.6.1.4.1.4146.1.50", "GLOBALSIGN_CODE_SIGN_POLICY" },
- { "1.3.6.1.4.1.4146.1.60", "GLOBALSIGN_ROOT_SIGN_POLICY" },
- { "1.3.6.1.4.1.4146.1.70", "GLOBALSIGN_TRUSTED_ROOT_POLICY" },
- { "1.3.6.1.4.1.4146.1.80", "GLOBALSIGN_EDI_CLIENT_POLICY" },
- { "1.3.6.1.4.1.4146.1.81", "GLOBALSIGN_EDI_SERVER_POLICY" },
- { "1.3.6.1.4.1.4146.1.90", "GLOBALSIGN_TPM_ROOT_POLICY" },
- { "1.3.6.1.4.1.4146.1.95", "GLOBALSIGN_OCSP_POLICY" },
- { "1.3.6.1.4.1.5309.1", "EDEL_WEB_POLICY" },
- { "1.3.6.1.4.1.5309.1.2", "EDEL_WEB_CUSTOMER_POLICY" },
- { "1.3.6.1.4.1.5309.1.2.1", "EDEL_WEB_CLEPSYDRE_POLICY" },
- { "1.3.6.1.4.1.5309.1.2.2", "EDEL_WEB_EXPERIMENTAL_TSA_POLICY" },
- { "1.3.6.1.4.1.5309.1.2.3", "EDEL_WEB_OPEN_EVIDENCE_TSA_POLICY" },
- { "1.3.6.1.4.1.5472", "TIMEPROOF" },
- { "1.3.6.1.4.1.5472.1", "TSS" },
- { "1.3.6.1.4.1.5472.1.1", "TSS80" },
- { "1.3.6.1.4.1.5472.1.2", "TSS380" },
- { "1.3.6.1.4.1.5472.1.3", "TSS400" },
- { "1.3.6.1.4.1.5770.0.3", "SECONDARY_PRACTICES" },
- { "1.3.6.1.4.1.5770.0.4", "PHYSICIAN_IDENTIFIERS" },
- { "1.3.6.1.4.1.6449.1.2.1.3.1", "COMODO_POLICY" },
- { "1.3.6.1.4.1.6449.1.2.2.15", "WOTRUST_POLICY" },
- { "1.3.6.1.4.1.6449.1.3.5.2", "COMODO_CERTIFIED_DELIVERY_SERVICE" },
- { "1.3.6.1.4.1.6449.2.1.1", "COMODO_TIMESTAMPING_POLICY" },
- { "1.3.6.1.4.1.8301.3.5.1", "VALIDITY_MODEL_CHAIN" },
- { "1.3.6.1.4.1.8301.3.5.2", "VALIDITY_MODEL_SHELL" },
- { "1.3.6.1.4.1.8231.1", "ROL_UNICO_NACIONAL" },
- { "1.3.6.1.4.1.11591", "GNU" },
- { "1.3.6.1.4.1.11591.1", "GNU_RADIUS" },
- { "1.3.6.1.4.1.11591.3", "GNU_RADAR" },
- { "1.3.6.1.4.1.11591.12", "GNU_DIGEST_ALGORITHM" },
- { "1.3.6.1.4.1.11591.12.2", "TIGER" },
- { "1.3.6.1.4.1.11591.13", "GNU_ENCRYPTION_ALGORITHM" },
- { "1.3.6.1.4.1.11591.13.2", "SERPENT" },
- { "1.3.6.1.4.1.11591.13.2.1", "SERPENT128_ECB" },
- { "1.3.6.1.4.1.11591.13.2.2", "SERPENT128_CBC" },
- { "1.3.6.1.4.1.11591.13.2.3", "SERPENT128_OFB" },
- { "1.3.6.1.4.1.11591.13.2.4", "SERPENT128_CFB" },
- { "1.3.6.1.4.1.11591.13.2.21", "SERPENT192_ECB" },
- { "1.3.6.1.4.1.11591.13.2.22", "SERPENT192_CBC" },
- { "1.3.6.1.4.1.11591.13.2.23", "SERPENT192_OFB" },
- { "1.3.6.1.4.1.11591.13.2.24", "SERPENT192_CFB" },
- { "1.3.6.1.4.1.11591.13.2.41", "SERPENT256_ECB" },
- { "1.3.6.1.4.1.11591.13.2.42", "SERPENT256_CBC" },
- { "1.3.6.1.4.1.11591.13.2.43", "SERPENT256_OFB" },
- { "1.3.6.1.4.1.11591.13.2.44", "SERPENT256_CFB" },
- { "1.3.6.1.4.1.16334.509.1.1", "NORTHROP_GRUMMAN_EXT_KEY_USAGE?" },
- { "1.3.6.1.4.1.16334.509.2.1", "NGC_CLASS1" },
- { "1.3.6.1.4.1.16334.509.2.2", "NGC_CLASS2" },
- { "1.3.6.1.4.1.16334.509.2.3", "NGC_CLASS3" },
- { "1.3.6.1.4.1.23629.1.4.2.1.1", "SAFENET_USAGE_LIMIT" },
- { "1.3.6.1.4.1.23629.1.4.2.1.2", "SAFENET_END_DATE" },
- { "1.3.6.1.4.1.23629.1.4.2.1.3", "SAFENET_START_DATE" },
- { "1.3.6.1.4.1.23629.1.4.2.1.4", "SAFENET_ADMIN_CERT" },
- { "1.3.6.1.4.1.23629.1.4.2.2.1", "SAFENET_KEY_DIGEST" },
- { "1.3.6.1.5.5.7", "PKIX" },
- { "1.3.6.1.5.5.7.0.12", "ATTRIBUTE_CERT" },
- { "1.3.6.1.5.5.7.1", "PRIVATE_EXTENSION" },
- { "1.3.6.1.5.5.7.1.1", "AUTHORITY_INFO_ACCESS" },
- { "1.3.6.1.5.5.7.1.2", "BIOMETRIC_INFO" },
- { "1.3.6.1.5.5.7.1.3", "QC_STATEMENTS" },
- { "1.3.6.1.5.5.7.1.4", "AC_AUDIT_IDENTITY" },
- { "1.3.6.1.5.5.7.1.5", "AC_TARGETING" },
- { "1.3.6.1.5.5.7.1.6", "AC_AA_CONTROLS" },
- { "1.3.6.1.5.5.7.1.7", "IP_ADDR_BLOCKS" },
- { "1.3.6.1.5.5.7.1.8", "AUTONOMOUS_SYS_IDS" },
- { "1.3.6.1.5.5.7.1.9", "ROUTER_IDENTIFIER" },
- { "1.3.6.1.5.5.7.1.10", "AC_PROXYING" },
- { "1.3.6.1.5.5.7.1.11", "SUBJECT_INFO_ACCESS" },
- { "1.3.6.1.5.5.7.1.12", "LOGO_TYPE" },
- { "1.3.6.1.5.5.7.1.13", "WLAN_SSID" },
- { "1.3.6.1.5.5.7.2", "POLICY_QUALIFIER_IDS" },
- { "1.3.6.1.5.5.7.2.1", "CPS" },
- { "1.3.6.1.5.5.7.2.2", "UNOTICE" },
- { "1.3.6.1.5.5.7.2.3", "TEXT_NOTICE" },
- { "1.3.6.1.5.5.7.3", "KEY_PURPOSE" },
- { "1.3.6.1.5.5.7.3.1", "SERVER_AUTH" },
- { "1.3.6.1.5.5.7.3.2", "CLIENT_AUTH" },
- { "1.3.6.1.5.5.7.3.3", "CODE_SIGNING" },
- { "1.3.6.1.5.5.7.3.4", "EMAIL_PROTECTION" },
- { "1.3.6.1.5.5.7.3.5", "IPSEC_END_SYSTEM" },
- { "1.3.6.1.5.5.7.3.6", "IPSEC_TUNNEL" },
- { "1.3.6.1.5.5.7.3.7", "IPSEC_USER" },
- { "1.3.6.1.5.5.7.3.8", "TIME_STAMPING" },
- { "1.3.6.1.5.5.7.3.9", "OCSP_SIGNING" },
- { "1.3.6.1.5.5.7.3.10", "DVCS" },
- { "1.3.6.1.5.5.7.3.11", "SBGP_CERT_AA_SERVER_AUTH" },
- { "1.3.6.1.5.5.7.3.13", "EAP_OVER_PPP" },
- { "1.3.6.1.5.5.7.3.14", "EAP_OVER_LAN" },
- { "1.3.6.1.5.5.7.4", "CMP_INFORMATION_TYPES" },
- { "1.3.6.1.5.5.7.4.1", "CA_PROT_ENC_CERT" },
- { "1.3.6.1.5.5.7.4.2", "SIGN_KEY_PAIR_TYPES" },
- { "1.3.6.1.5.5.7.4.3", "ENC_KEY_PAIR_TYPES" },
- { "1.3.6.1.5.5.7.4.4", "PREFERRED_SYMM_ALG" },
- { "1.3.6.1.5.5.7.4.5", "CA_KEY_UPDATE_INFO" },
- { "1.3.6.1.5.5.7.4.6", "CURRENT_CRL" },
- { "1.3.6.1.5.5.7.4.7", "UNSUPPORTED_OI_DS" },
- { "1.3.6.1.5.5.7.4.10", "KEY_PAIR_PARAM_REQ" },
- { "1.3.6.1.5.5.7.4.11", "KEY_PAIR_PARAM_REP" },
- { "1.3.6.1.5.5.7.4.12", "REV_PASSPHRASE" },
- { "1.3.6.1.5.5.7.4.13", "IMPLICIT_CONFIRM" },
- { "1.3.6.1.5.5.7.4.14", "CONFIRM_WAIT_TIME" },
- { "1.3.6.1.5.5.7.4.15", "ORIG_PKI_MESSAGE" },
- { "1.3.6.1.5.5.7.4.16", "SUPP_LANG_TAGS" },
- { "1.3.6.1.5.5.7.5", "CRMF_REGISTRATION" },
- { "1.3.6.1.5.5.7.5.1", "REG_CTRL" },
- { "1.3.6.1.5.5.7.5.1.1", "REG_TOKEN" },
- { "1.3.6.1.5.5.7.5.1.2", "AUTHENTICATOR" },
- { "1.3.6.1.5.5.7.5.1.3", "PKI_PUBLICATION_INFO" },
- { "1.3.6.1.5.5.7.5.1.4", "PKI_ARCHIVE_OPTIONS" },
- { "1.3.6.1.5.5.7.5.1.5", "OLD_CERT_ID" },
- { "1.3.6.1.5.5.7.5.1.6", "PROTOCOL_ENCR_KEY" },
- { "1.3.6.1.5.5.7.5.1.7", "ALT_CERT_TEMPLATE" },
- { "1.3.6.1.5.5.7.5.1.8", "WTLS_TEMPLATE" },
- { "1.3.6.1.5.5.7.5.2", "UTF8_PAIRS" },
- { "1.3.6.1.5.5.7.5.2.1", "UTF8_PAIRS" },
- { "1.3.6.1.5.5.7.5.2.2", "CERT_REQ" },
- { "1.3.6.1.5.5.7.6", "ALGORITHMS" },
- { "1.3.6.1.5.5.7.6.1", "DES40" },
- { "1.3.6.1.5.5.7.6.2", "NO_SIGNATURE" },
- { "1.3.6.1.5.5.7.6.3", "DH_SIG_HMAC_SHA1" },
- { "1.3.6.1.5.5.7.6.4", "DH_POP" },
- { "1.3.6.1.5.5.7.7", "CMC_CONTROLS" },
- { "1.3.6.1.5.5.7.8", "OTHER_NAMES" },
- { "1.3.6.1.5.5.7.8.1", "PERSONAL_DATA" },
- { "1.3.6.1.5.5.7.8.2", "USER_GROUP" },
- { "1.3.6.1.5.5.7.8.5", "XMPP_ADDR" },
- { "1.3.6.1.5.5.7.9", "PERSONAL_DATA" },
- { "1.3.6.1.5.5.7.9.1", "DATE_OF_BIRTH" },
- { "1.3.6.1.5.5.7.9.2", "PLACE_OF_BIRTH" },
- { "1.3.6.1.5.5.7.9.3", "GENDER" },
- { "1.3.6.1.5.5.7.9.4", "COUNTRY_OF_CITIZENSHIP" },
- { "1.3.6.1.5.5.7.9.5", "COUNTRY_OF_RESIDENCE" },
- { "1.3.6.1.5.5.7.10", "ATTRIBUTE_CERTIFICATE" },
- { "1.3.6.1.5.5.7.10.1", "AUTHENTICATION_INFO" },
- { "1.3.6.1.5.5.7.10.2", "ACCESS_IDENTITY" },
- { "1.3.6.1.5.5.7.10.3", "CHARGING_IDENTITY" },
- { "1.3.6.1.5.5.7.10.4", "GROUP" },
- { "1.3.6.1.5.5.7.10.5", "ROLE" },
- { "1.3.6.1.5.5.7.10.6", "WLAN_SSID" },
- { "1.3.6.1.5.5.7.11", "PERSONAL_DATA" },
- { "1.3.6.1.5.5.7.11.1", "PKIX_QC_SYNTAX_V1" },
- { "1.3.6.1.5.5.7.14.2", "RESOURCE_CERTIFICATE_POLICY" },
- { "1.3.6.1.5.5.7.20", "LOGO" },
- { "1.3.6.1.5.5.7.20.1", "LOGO_LOYALTY" },
- { "1.3.6.1.5.5.7.20.2", "LOGO_BACKGROUND" },
- { "1.3.6.1.5.5.7.48.1", "OCSP" },
- { "1.3.6.1.5.5.7.48.1.1", "OCSP_BASIC" },
- { "1.3.6.1.5.5.7.48.1.2", "OCSP_NONCE" },
- { "1.3.6.1.5.5.7.48.1.3", "OCSP_CRL" },
- { "1.3.6.1.5.5.7.48.1.4", "OCSP_RESPONSE" },
- { "1.3.6.1.5.5.7.48.1.5", "OCSP_NO_CHECK" },
- { "1.3.6.1.5.5.7.48.1.6", "OCSP_ARCHIVE_CUTOFF" },
- { "1.3.6.1.5.5.7.48.1.7", "OCSP_SERVICE_LOCATOR" },
- { "1.3.6.1.5.5.7.48.2", "CA_ISSUERS" },
- { "1.3.6.1.5.5.7.48.3", "TIME_STAMPING" },
- { "1.3.6.1.5.5.7.48.4", "DVCS" },
- { "1.3.6.1.5.5.7.48.5", "CA_REPOSITORY" },
- { "1.3.6.1.5.5.7.48.7", "SIGNED_OBJECT_REPOSITORY" },
- { "1.3.6.1.5.5.7.48.10", "RPKI_MANIFEST" },
- { "1.3.6.1.5.5.7.48.11", "SIGNED_OBJECT" },
- { "1.3.6.1.5.5.8.1.1", "HMAC_MD5" },
- { "1.3.6.1.5.5.8.1.2", "HMAC_SHA" },
- { "1.3.6.1.5.5.8.1.3", "HMAC_TIGER" },
- { "1.3.6.1.5.5.8.2.2", "I_KE_INTERMEDIATE" },
- { "1.3.12.2.1011.7.1", "DEC_ENCRYPTION_ALGORITHM" },
- { "1.3.12.2.1011.7.1.2", "DEC_DEA" },
- { "1.3.12.2.1011.7.2", "DEC_HASH_ALGORITHM" },
- { "1.3.12.2.1011.7.2.1", "DEC_MD2" },
- { "1.3.12.2.1011.7.2.2", "DEC_MD4" },
- { "1.3.12.2.1011.7.3", "DEC_SIGNATURE_ALGORITHM" },
- { "1.3.12.2.1011.7.3.1", "DEC_MD2WITH_RSA" },
- { "1.3.12.2.1011.7.3.2", "DEC_MD4WITH_RSA" },
- { "1.3.12.2.1011.7.3.3", "DEC_DEAMAC" },
- { "1.3.14.2.26.5", "SHA" },
- { "1.3.14.3.2.1.1", "RSA" },
- { "1.3.14.3.2.2", "MD4_WIT_RSA" },
- { "1.3.14.3.2.3", "MD5_WITH_RSA" },
- { "1.3.14.3.2.4", "MD4_WITH_RSA_ENCRYPTION" },
- { "1.3.14.3.2.2.1", "SQMOD_N" },
- { "1.3.14.3.2.3.1", "SQMOD_NWITH_RSA" },
- { "1.3.14.3.2.6", "DES_ECB" },
- { "1.3.14.3.2.7", "DES_CBC" },
- { "1.3.14.3.2.8", "DES_OFB" },
- { "1.3.14.3.2.9", "DES_CFB" },
- { "1.3.14.3.2.10", "DES_MAC" },
- { "1.3.14.3.2.11", "RSA_SIGNATURE" },
- { "1.3.14.3.2.12", "DSA" },
- { "1.3.14.3.2.13", "DSA_WITH_SHA" },
- { "1.3.14.3.2.14", "MDC2_WITH_RSA_SIGNATURE" },
- { "1.3.14.3.2.15", "SHA_WITH_RSA_SIGNATURE" },
- { "1.3.14.3.2.16", "DH_WITH_COMMON_MODULUS" },
- { "1.3.14.3.2.17", "DES_EDE" },
- { "1.3.14.3.2.18", "SHA" },
- { "1.3.14.3.2.19", "MDC_2" },
- { "1.3.14.3.2.20", "DSA_COMMON" },
- { "1.3.14.3.2.21", "DSA_COMMON_WITH_SHA" },
- { "1.3.14.3.2.22", "RSA_KEY_TRANSPORT" },
- { "1.3.14.3.2.23", "KEYED_HASH_SEAL" },
- { "1.3.14.3.2.24", "MD2_WITH_RSA_SIGNATURE" },
- { "1.3.14.3.2.25", "MD5_WITH_RSA_SIGNATURE" },
- { "1.3.14.3.2.26", "SHA1" },
- { "1.3.14.3.2.27", "DSA_WITH_SHA1" },
- { "1.3.14.3.2.28", "DSA_WITH_COMMON_SHA1" },
- { "1.3.14.3.2.29", "SHA_1_WITH_RSA_ENCRYPTION" },
- { "1.3.14.3.3.1", "SIMPLE_STRONG_AUTH_MECHANISM" },
- { "1.3.14.7.2.1.1", "EL_GAMAL" },
- { "1.3.14.7.2.3.1", "MD2_WITH_RSA" },
- { "1.3.14.7.2.3.2", "MD2_WITH_EL_GAMAL" },
- { "1.3.36.1", "DOCUMENT" },
- { "1.3.36.1.1", "FINAL_VERSION" },
- { "1.3.36.1.2", "DRAFT" },
- { "1.3.36.2", "SIO" },
- { "1.3.36.2.1", "SEDU" },
- { "1.3.36.3", "ALGORITHM" },
- { "1.3.36.3.1", "ENCRYPTION_ALGORITHM" },
- { "1.3.36.3.1.1", "DES" },
- { "1.3.36.3.1.1.1", "DES_ECB_PAD" },
- { "1.3.36.3.1.1.1.1", "DES_ECB_IS_OPAD" },
- { "1.3.36.3.1.1.2.1", "DES_CBC_PAD" },
- { "1.3.36.3.1.1.2.1.1", "DES_CBC_IS_OPAD" },
- { "1.3.36.3.1.3", "DES_3" },
- { "1.3.36.3.1.3.1.1", "DES_3_ECB_PAD" },
- { "1.3.36.3.1.3.1.1.1", "DES_3_ECB_IS_OPAD" },
- { "1.3.36.3.1.3.2.1", "DES_3_CBC_PAD" },
- { "1.3.36.3.1.3.2.1.1", "DES_3_CBC_IS_OPAD" },
- { "1.3.36.3.1.2", "IDEA" },
- { "1.3.36.3.1.2.1", "IDEA_ECB" },
- { "1.3.36.3.1.2.1.1", "IDEA_ECB_PAD" },
- { "1.3.36.3.1.2.1.1.1", "IDEA_ECB_IS_OPAD" },
- { "1.3.36.3.1.2.2", "IDEA_CBC" },
- { "1.3.36.3.1.2.2.1", "IDEA_CBC_PAD" },
- { "1.3.36.3.1.2.2.1.1", "IDEA_CBC_IS_OPAD" },
- { "1.3.36.3.1.2.3", "IDEA_OFB" },
- { "1.3.36.3.1.2.4", "IDEA_CFB" },
- { "1.3.36.3.1.4", "RSA_ENCRYPTION" },
- { "1.3.36.3.1.4.512.17", "RSA_ENCRYPTION_WITHLMOD512EXPE17" },
- { "1.3.36.3.1.5", "BSI_1" },
- { "1.3.36.3.1.5.1", "BSI_1_ECB_PAD" },
- { "1.3.36.3.1.5.2", "BSI_1_CBC_PAD" },
- { "1.3.36.3.1.5.2.1", "BSI_1_CBC_PE_MPAD" },
- { "1.3.36.3.2", "HASH_ALGORITHM" },
- { "1.3.36.3.2.1", "RIPEMD160" },
- { "1.3.36.3.2.2", "RIPEMD128" },
- { "1.3.36.3.2.3", "RIPEMD256" },
- { "1.3.36.3.2.4", "MDC2SINGLE_LENGTH" },
- { "1.3.36.3.2.5", "MDC2DOUBLE_LENGTH" },
- { "1.3.36.3.3", "SIGNATURE_ALGORITHM" },
- { "1.3.36.3.3.1", "RSA_SIGNATURE" },
- { "1.3.36.3.3.1.1", "RSA_SIGNATURE_WITHSHA1" },
- { "1.3.36.3.3.1.1.1024.11", "RSA_SIGNATURE_WITHSHA1_L1024_L11" },
- { "1.3.36.3.3.1.2", "RSA_SIGNATURE_WITHRIPEMD160" },
- { "1.3.36.3.3.1.2.1024.11", "RSA_SIGNATURE_WITHRIPEMD160_L1024_L11" },
- { "1.3.36.3.3.1.3", "RSA_SIGNATURE_WITHRIMPEMD128" },
- { "1.3.36.3.3.1.4", "RSA_SIGNATURE_WITHRIMPEMD256" },
- { "1.3.36.3.3.2", "ECSIE_SIGN" },
- { "1.3.36.3.3.2.1", "ECSIE_SIGN_WITHSHA1" },
- { "1.3.36.3.3.2.2", "ECSIE_SIGN_WITHRIPEMD160" },
- { "1.3.36.3.3.2.3", "ECSIE_SIGN_WITHMD2" },
- { "1.3.36.3.3.2.4", "ECSIE_SIGN_WITHMD5" },
- { "1.3.36.3.3.2.8.1.1.1", "BRAINPOOL_P160R1" },
- { "1.3.36.3.3.2.8.1.1.2", "BRAINPOOL_P160T1" },
- { "1.3.36.3.3.2.8.1.1.3", "BRAINPOOL_P192R1" },
- { "1.3.36.3.3.2.8.1.1.4", "BRAINPOOL_P192T1" },
- { "1.3.36.3.3.2.8.1.1.5", "BRAINPOOL_P224R1" },
- { "1.3.36.3.3.2.8.1.1.6", "BRAINPOOL_P224T1" },
- { "1.3.36.3.3.2.8.1.1.7", "BRAINPOOL_P256R1" },
- { "1.3.36.3.3.2.8.1.1.8", "BRAINPOOL_P256T1" },
- { "1.3.36.3.3.2.8.1.1.9", "BRAINPOOL_P320R1" },
- { "1.3.36.3.3.2.8.1.1.10", "BRAINPOOL_P320T1" },
- { "1.3.36.3.3.2.8.1.1.11", "BRAINPOOL_P384R1" },
- { "1.3.36.3.3.2.8.1.1.12", "BRAINPOOL_P384T1" },
- { "1.3.36.3.3.2.8.1.1.13", "BRAINPOOL_P512R1" },
- { "1.3.36.3.3.2.8.1.1.14", "BRAINPOOL_P512T1" },
- { "1.3.36.3.4", "SIGNATURE_SCHEME" },
- { "1.3.36.3.4.1", "SIG_S_ISO9796_1" },
- { "1.3.36.3.4.2", "SIG_S_ISO9796_2" },
- { "1.3.36.3.4.2.1", "SIG_S_ISO9796_2_WITHRED" },
- { "1.3.36.3.4.2.2", "SIG_S_ISO9796_2_WITHRSA" },
- { "1.3.36.3.4.2.3", "SIG_S_ISO9796_2_WITHRND" },
- { "1.3.36.4", "ATTRIBUTE" },
- { "1.3.36.5", "POLICY" },
- { "1.3.36.6", "API" },
- { "1.3.36.6.1", "MANUFACTURER_SPECIFIC_API" },
- { "1.3.36.6.1.1", "UTIMACO_API" },
- { "1.3.36.6.2", "FUNCTIONALITY_SPECIFIC_API" },
- { "1.3.36.7", "KEYMGMNT" },
- { "1.3.36.7.1", "KEYAGREE" },
- { "1.3.36.7.1.1", "BSI_PKE" },
- { "1.3.36.7.2", "KEYTRANS" },
- { "1.3.36.7.2.1", "ENC_ISO9796_2_WITHRSA" },
- { "1.3.36.8.1.1", "TELETRUST_SIG_G_CONFORM_POLICY_IDENTIFIER" },
- { "1.3.36.8.2.1", "DIRECTORY_SERVICE" },
- { "1.3.36.8.3.1", "DATE_OF_CERT_GEN" },
- { "1.3.36.8.3.2", "PROCURATION" },
- { "1.3.36.8.3.3", "ADMISSION" },
- { "1.3.36.8.3.4", "MONETARY_LIMIT" },
- { "1.3.36.8.3.5", "DECLARATION_OF_MAJORITY" },
- { "1.3.36.8.3.6", "INTEGRATED_CIRCUIT_CARD_SERIAL_NUMBER" },
- { "1.3.36.8.3.7", "P_K_REFERENCE" },
- { "1.3.36.8.3.8", "RESTRICTION" },
- { "1.3.36.8.3.9", "RETRIEVE_IF_ALLOWED" },
- { "1.3.36.8.3.10", "REQUESTED_CERTIFICATE" },
- { "1.3.36.8.3.11", "NAMING_AUTHORITIES" },
- { "1.3.36.8.3.11.1", "RECHT_WIRTSCHAFT_STEUERN" },
- { "1.3.36.8.3.11.1.1", "RECHTSANWAELTIN" },
- { "1.3.36.8.3.11.1.2", "RECHTSANWALT" },
- { "1.3.36.8.3.11.1.3", "RECHTS_BEISTAND" },
- { "1.3.36.8.3.11.1.4", "STEUER_BERATERIN" },
- { "1.3.36.8.3.11.1.5", "STEUER_BERATER" },
- { "1.3.36.8.3.11.1.6", "STEUER_BEVOLLMAECHTIGTE" },
- { "1.3.36.8.3.11.1.7", "STEUER_BEVOLLMAECHTIGTER" },
- { "1.3.36.8.3.11.1.8", "NOTARIN" },
- { "1.3.36.8.3.11.1.9", "NOTAR" },
- { "1.3.36.8.3.11.1.10", "NOTAR_VERTRETERIN" },
- { "1.3.36.8.3.11.1.11", "NOTAR_VERTRETER" },
- { "1.3.36.8.3.11.1.12", "NOTARIATS_VERWALTERIN" },
- { "1.3.36.8.3.11.1.13", "NOTARIATS_VERWALTER" },
- { "1.3.36.8.3.11.1.14", "WIRTSCHAFTS_PRUEFERIN" },
- { "1.3.36.8.3.11.1.15", "WIRTSCHAFTS_PRUEFER" },
- { "1.3.36.8.3.11.1.16", "VEREIDIGTE_BUCHPRUEFERIN" },
- { "1.3.36.8.3.11.1.17", "VEREIDIGTER_BUCHPRUEFER" },
- { "1.3.36.8.3.11.1.18", "PATENT_ANWAELTIN" },
- { "1.3.36.8.3.11.1.19", "PATENT_ANWALT" },
- { "1.3.36.8.3.12", "CERT_IN_DIR_SINCE" },
- { "1.3.36.8.3.13", "CERT_HASH" },
- { "1.3.36.8.3.14", "NAME_AT_BIRTH" },
- { "1.3.36.8.3.15", "ADDITIONAL_INFORMATION" },
- { "1.3.36.8.4.1", "PERSONAL_DATA" },
- { "1.3.36.8.4.8", "RESTRICTION" },
- { "1.3.36.8.5.1.1.1", "RSA_INDICATE_SHA1" },
- { "1.3.36.8.5.1.1.2", "RSA_INDICATE_RIPEMD160" },
- { "1.3.36.8.5.1.1.3", "RSA_WITH_SHA1" },
- { "1.3.36.8.5.1.1.4", "RSA_WITH_RIPEMD160" },
- { "1.3.36.8.5.1.2.1", "DSA_EXTENDED" },
- { "1.3.36.8.5.1.2.2", "DSA_WITH_RIPEMD160" },
- { "1.3.36.8.6.1", "CERT" },
- { "1.3.36.8.6.2", "CERT_REF" },
- { "1.3.36.8.6.3", "ATTR_CERT" },
- { "1.3.36.8.6.4", "ATTR_REF" },
- { "1.3.36.8.6.5", "FILE_NAME" },
- { "1.3.36.8.6.6", "STORAGE_TIME" },
- { "1.3.36.8.6.7", "FILE_SIZE" },
- { "1.3.36.8.6.8", "LOCATION" },
- { "1.3.36.8.6.9", "SIG_NUMBER" },
- { "1.3.36.8.6.10", "AUTO_GEN" },
- { "1.3.36.8.7.1.1", "PT_ADOBE_ILL" },
- { "1.3.36.8.7.1.2", "PT_AMI_PRO" },
- { "1.3.36.8.7.1.3", "PT_AUTO_CAD" },
- { "1.3.36.8.7.1.4", "PT_BINARY" },
- { "1.3.36.8.7.1.5", "PT_BMP" },
- { "1.3.36.8.7.1.6", "PT_CGM" },
- { "1.3.36.8.7.1.7", "PT_COREL_CRT" },
- { "1.3.36.8.7.1.8", "PT_COREL_DRW" },
- { "1.3.36.8.7.1.9", "PT_COREL_EXC" },
- { "1.3.36.8.7.1.10", "PT_COREL_PHT" },
- { "1.3.36.8.7.1.11", "PT_DRAW" },
- { "1.3.36.8.7.1.12", "PT_DVI" },
- { "1.3.36.8.7.1.13", "PT_EPS" },
- { "1.3.36.8.7.1.14", "PT_EXCEL" },
- { "1.3.36.8.7.1.15", "PT_GEM" },
- { "1.3.36.8.7.1.16", "PT_GIF" },
- { "1.3.36.8.7.1.17", "PT_HPGL" },
- { "1.3.36.8.7.1.18", "PT_JPEG" },
- { "1.3.36.8.7.1.19", "PT_KODAK" },
- { "1.3.36.8.7.1.20", "PT_LA_TE_X" },
- { "1.3.36.8.7.1.21", "PT_LOTUS" },
- { "1.3.36.8.7.1.22", "PT_LOTUS_PIC" },
- { "1.3.36.8.7.1.23", "PT_MAC_PICT" },
- { "1.3.36.8.7.1.24", "PT_MAC_WORD" },
- { "1.3.36.8.7.1.25", "PT_MS_WF_D" },
- { "1.3.36.8.7.1.26", "PT_MS_WORD" },
- { "1.3.36.8.7.1.27", "PT_MS_WORD2" },
- { "1.3.36.8.7.1.28", "PT_MS_WORD6" },
- { "1.3.36.8.7.1.29", "PT_MS_WORD8" },
- { "1.3.36.8.7.1.30", "PT_PDF" },
- { "1.3.36.8.7.1.31", "PT_PIF" },
- { "1.3.36.8.7.1.32", "PT_POSTSCRIPT" },
- { "1.3.36.8.7.1.33", "PT_RTF" },
- { "1.3.36.8.7.1.34", "PT_SCITEX" },
- { "1.3.36.8.7.1.35", "PT_TAR" },
- { "1.3.36.8.7.1.36", "PT_TARGA" },
- { "1.3.36.8.7.1.37", "PT_TE_X" },
- { "1.3.36.8.7.1.38", "PT_TEXT" },
- { "1.3.36.8.7.1.39", "PT_TIFF" },
- { "1.3.36.8.7.1.40", "PT_TIFF_FC" },
- { "1.3.36.8.7.1.41", "PT_UID" },
- { "1.3.36.8.7.1.42", "PT_UU_ENCODE" },
- { "1.3.36.8.7.1.43", "PT_WMF" },
- { "1.3.36.8.7.1.44", "PT_WORD_PERFECT" },
- { "1.3.36.8.7.1.45", "PT_WP_GRPH" },
- { "1.3.101.1.4", "THAWTE_CE" },
- { "1.3.101.1.4.1", "STRONG_EXTRANET" },
- { "1.3.132.0.1", "SECT163K1" },
- { "1.3.132.0.2", "SECT163R1" },
- { "1.3.132.0.3", "SECT239K1" },
- { "1.3.132.0.4", "SECT113R1" },
- { "1.3.132.0.5", "SECT113R2" },
- { "1.3.132.0.6", "SECP112R1" },
- { "1.3.132.0.7", "SECP112R2" },
- { "1.3.132.0.8", "SECP160R1" },
- { "1.3.132.0.9", "SECP160K1" },
- { "1.3.132.0.10", "SECP256K1" },
- { "1.3.132.0.15", "SECT163R2" },
- { "1.3.132.0.16", "SECT283K1" },
- { "1.3.132.0.17", "SECT283R1" },
- { "1.3.132.0.22", "SECT131R1" },
- { "1.3.132.0.23", "SECT131R2" },
- { "1.3.132.0.24", "SECT193R1" },
- { "1.3.132.0.25", "SECT193R2" },
- { "1.3.132.0.26", "SECT233K1" },
- { "1.3.132.0.27", "SECT233R1" },
- { "1.3.132.0.28", "SECP128R1" },
- { "1.3.132.0.29", "SECP128R2" },
- { "1.3.132.0.30", "SECP160R2" },
- { "1.3.132.0.31", "SECP192K1" },
- { "1.3.132.0.32", "SECP224K1" },
- { "1.3.132.0.33", "SECP224R1" },
- { "1.3.132.0.34", "SECP384R1" },
- { "1.3.132.0.35", "SECP521R1" },
- { "1.3.132.0.36", "SECT409K1" },
- { "1.3.132.0.37", "SECT409R1" },
- { "1.3.132.0.38", "SECT571K1" },
- { "1.3.132.0.39", "SECT571R1" },
- { "1.3.133.16.840.9.84", "X984" },
- { "1.3.133.16.840.9.84.0", "X984_MODULE" },
- { "1.3.133.16.840.9.84.0.1", "X984_BIOMETRICS" },
- { "1.3.133.16.840.9.84.0.2", "X984_CMS" },
- { "1.3.133.16.840.9.84.0.3", "X984_IDENTIFIERS" },
- { "1.3.133.16.840.9.84.1", "X984_BIOMETRIC" },
- { "1.3.133.16.840.9.84.1.0", "BIOMETRIC_UNKNOWN_TYPE" },
- { "1.3.133.16.840.9.84.1.1", "BIOMETRIC_BODY_ODOR" },
- { "1.3.133.16.840.9.84.1.2", "BIOMETRIC_DNA" },
- { "1.3.133.16.840.9.84.1.3", "BIOMETRIC_EAR_SHAPE" },
- { "1.3.133.16.840.9.84.1.4", "BIOMETRIC_FACIAL_FEATURES" },
- { "1.3.133.16.840.9.84.1.5", "BIOMETRIC_FINGER_IMAGE" },
- { "1.3.133.16.840.9.84.1.6", "BIOMETRIC_FINGER_GEOMETRY" },
- { "1.3.133.16.840.9.84.1.7", "BIOMETRIC_HAND_GEOMETRY" },
- { "1.3.133.16.840.9.84.1.8", "BIOMETRIC_IRIS_FEATURES" },
- { "1.3.133.16.840.9.84.1.9", "BIOMETRIC_KEYSTROKE_DYNAMICS" },
- { "1.3.133.16.840.9.84.1.10", "BIOMETRIC_PALM" },
- { "1.3.133.16.840.9.84.1.11", "BIOMETRIC_RETINA" },
- { "1.3.133.16.840.9.84.1.12", "BIOMETRIC_SIGNATURE" },
- { "1.3.133.16.840.9.84.1.13", "BIOMETRIC_SPEECH_PATTERN" },
- { "1.3.133.16.840.9.84.1.14", "BIOMETRIC_THERMAL_IMAGE" },
- { "1.3.133.16.840.9.84.1.15", "BIOMETRIC_VEIN_PATTERN" },
- { "1.3.133.16.840.9.84.1.16", "BIOMETRIC_THERMAL_FACE_IMAGE" },
- { "1.3.133.16.840.9.84.1.17", "BIOMETRIC_THERMAL_HAND_IMAGE" },
- { "1.3.133.16.840.9.84.1.18", "BIOMETRIC_LIP_MOVEMENT" },
- { "1.3.133.16.840.9.84.1.19", "BIOMETRIC_GAIT" },
- { "1.3.133.16.840.9.84.3", "X984_MATCHING_METHOD" },
- { "1.3.133.16.840.9.84.4", "X984_FORMAT_OWNER" },
- { "1.3.133.16.840.9.84.4.0", "X984_CBEFF_OWNER" },
- { "1.3.133.16.840.9.84.4.1", "X984_IBIA_OWNER" },
- { "1.3.133.16.840.9.84.4.1.1", "IBIA_OWNER_SAFLINK" },
- { "1.3.133.16.840.9.84.4.1.2", "IBIA_OWNER_BIOSCRYPT" },
- { "1.3.133.16.840.9.84.4.1.3", "IBIA_OWNER_VISIONICS" },
- { "1.3.133.16.840.9.84.4.1.4", "IBIA_OWNER_INFINEON_TECHNOLOGIES_AG" },
- { "1.3.133.16.840.9.84.4.1.5", "IBIA_OWNER_IRIDIAN_TECHNOLOGIES" },
- { "1.3.133.16.840.9.84.4.1.6", "IBIA_OWNER_VERIDICOM" },
- { "1.3.133.16.840.9.84.4.1.7", "IBIA_OWNER_CYBER_SIGN" },
- { "1.3.133.16.840.9.84.4.1.8", "IBIA_OWNERE_CRYP" },
- { "1.3.133.16.840.9.84.4.1.9", "IBIA_OWNER_FINGERPRINT_CARDS_AB" },
- { "1.3.133.16.840.9.84.4.1.10", "IBIA_OWNER_SECU_GEN" },
- { "1.3.133.16.840.9.84.4.1.11", "IBIA_OWNER_PRECISE_BIOMETRIC" },
- { "1.3.133.16.840.9.84.4.1.12", "IBIA_OWNER_IDENTIX" },
- { "1.3.133.16.840.9.84.4.1.13", "IBIA_OWNER_DERMALOG" },
- { "1.3.133.16.840.9.84.4.1.14", "IBIA_OWNER_LOGICO" },
- { "1.3.133.16.840.9.84.4.1.15", "IBIA_OWNER_NIST" },
- { "1.3.133.16.840.9.84.4.1.16", "IBIA_OWNER_A3_VISION" },
- { "1.3.133.16.840.9.84.4.1.17", "IBIA_OWNER_NEC" },
- { "1.3.133.16.840.9.84.4.1.18", "IBIA_OWNER_ST_MICROELECTRONICS" },
- { "2.5.4.0", "OBJECT_CLASS" },
- { "2.5.4.1", "ALIASED_ENTRY_NAME" },
- { "2.5.4.2", "KNOWLEDGE_INFORMATION" },
- { "2.5.4.3", "COMMON_NAME" },
- { "2.5.4.4", "SURNAME" },
- { "2.5.4.5", "SERIAL_NUMBER" },
- { "2.5.4.6", "COUNTRY_NAME" },
- { "2.5.4.7", "LOCALITY_NAME" },
- { "2.5.4.7.1", "COLLECTIVE_LOCALITY_NAME" },
- { "2.5.4.8", "STATE_OR_PROVINCE_NAME" },
- { "2.5.4.8.1", "COLLECTIVE_STATE_OR_PROVINCE_NAME" },
- { "2.5.4.9", "STREET_ADDRESS" },
- { "2.5.4.9.1", "COLLECTIVE_STREET_ADDRESS" },
- { "2.5.4.10", "ORGANIZATION_NAME" },
- { "2.5.4.10.1", "COLLECTIVE_ORGANIZATION_NAME" },
- { "2.5.4.11", "ORGANIZATIONAL_UNIT_NAME" },
- { "2.5.4.11.1", "COLLECTIVE_ORGANIZATIONAL_UNIT_NAME" },
- { "2.5.4.12", "TITLE" },
- { "2.5.4.13", "DESCRIPTION" },
- { "2.5.4.14", "SEARCH_GUIDE" },
- { "2.5.4.15", "BUSINESS_CATEGORY" },
- { "2.5.4.16", "POSTAL_ADDRESS" },
- { "2.5.4.16.1", "COLLECTIVE_POSTAL_ADDRESS" },
- { "2.5.4.17", "POSTAL_CODE" },
- { "2.5.4.17.1", "COLLECTIVE_POSTAL_CODE" },
- { "2.5.4.18", "POST_OFFICE_BOX" },
- { "2.5.4.18.1", "COLLECTIVE_POST_OFFICE_BOX" },
- { "2.5.4.19", "PHYSICAL_DELIVERY_OFFICE_NAME" },
- { "2.5.4.19.1", "COLLECTIVE_PHYSICAL_DELIVERY_OFFICE_NAME" },
- { "2.5.4.20", "TELEPHONE_NUMBER" },
- { "2.5.4.20.1", "COLLECTIVE_TELEPHONE_NUMBER" },
- { "2.5.4.21", "TELEX_NUMBER" },
- { "2.5.4.21.1", "COLLECTIVE_TELEX_NUMBER" },
- { "2.5.4.22", "TELETEX_TERMINAL_IDENTIFIER" },
- { "2.5.4.22.1", "COLLECTIVE_TELETEX_TERMINAL_IDENTIFIER" },
- { "2.5.4.23", "FACSIMILE_TELEPHONE_NUMBER" },
- { "2.5.4.23.1", "COLLECTIVE_FACSIMILE_TELEPHONE_NUMBER" },
- { "2.5.4.24", "X121_ADDRESS" },
- { "2.5.4.25", "INTERNATIONAL_ISDN_NUMBER" },
- { "2.5.4.25.1", "COLLECTIVE_INTERNATIONAL_ISDN_NUMBER" },
- { "2.5.4.26", "REGISTERED_ADDRESS" },
- { "2.5.4.27", "DESTINATION_INDICATOR" },
- { "2.5.4.28", "PREFERRED_DELIVERY_MEHTOD" },
- { "2.5.4.29", "PRESENTATION_ADDRESS" },
- { "2.5.4.30", "SUPPORTED_APPLICATION_CONTEXT" },
- { "2.5.4.31", "MEMBER" },
- { "2.5.4.32", "OWNER" },
- { "2.5.4.33", "ROLE_OCCUPANT" },
- { "2.5.4.34", "SEE_ALSO" },
- { "2.5.4.35", "USER_PASSWORD" },
- { "2.5.4.36", "USER_CERTIFICATE" },
- { "2.5.4.37", "CA_CERTIFICATE" },
- { "2.5.4.38", "AUTHORITY_REVOCATION_LIST" },
- { "2.5.4.39", "CERTIFICATE_REVOCATION_LIST" },
- { "2.5.4.40", "CROSS_CERTIFICATE_PAIR" },
- { "2.5.4.41", "NAME" },
- { "2.5.4.42", "GIVEN_NAME" },
- { "2.5.4.43", "INITIALS" },
- { "2.5.4.44", "GENERATION_QUALIFIER" },
- { "2.5.4.45", "UNIQUE_IDENTIFIER" },
- { "2.5.4.46", "DN_QUALIFIER" },
- { "2.5.4.47", "ENHANCED_SEARCH_GUIDE" },
- { "2.5.4.48", "PROTOCOL_INFORMATION" },
- { "2.5.4.49", "DISTINGUISHED_NAME" },
- { "2.5.4.50", "UNIQUE_MEMBER" },
- { "2.5.4.51", "HOUSE_IDENTIFIER" },
- { "2.5.4.52", "SUPPORTED_ALGORITHMS" },
- { "2.5.4.53", "DELTA_REVOCATION_LIST" },
- { "2.5.4.54", "DMD_NAME" },
- { "2.5.4.55", "CLEARANCE" },
- { "2.5.4.56", "DEFAULT_DIR_QOP" },
- { "2.5.4.57", "ATTRIBUTE_INTEGRITY_INFO" },
- { "2.5.4.58", "ATTRIBUTE_CERTIFICATE" },
- { "2.5.4.59", "ATTRIBUTE_CERTIFICATE_REVOCATION_LIST" },
- { "2.5.4.60", "CONF_KEY_INFO" },
- { "2.5.4.61", "A_A_CERTIFICATE" },
- { "2.5.4.62", "ATTRIBUTE_DESCRIPTOR_CERTIFICATE" },
- { "2.5.4.63", "ATTRIBUTE_AUTHORITY_REVOCATION_LIST" },
- { "2.5.4.64", "FAMILY_INFORMATION" },
- { "2.5.4.65", "PSEUDONYM" },
- { "2.5.4.66", "COMMUNICATIONS_SERVICE" },
- { "2.5.4.67", "COMMUNICATIONS_NETWORK" },
- { "2.5.4.68", "CERTIFICATION_PRACTICE_STMT" },
- { "2.5.4.69", "CERTIFICATE_POLICY" },
- { "2.5.4.70", "PKI_PATH" },
- { "2.5.4.71", "PRIV_POLICY" },
- { "2.5.4.72", "ROLE" },
- { "2.5.4.73", "DELEGATION_PATH" },
- { "2.5.4.74", "PROT_PRIV_POLICY" },
- { "2.5.4.75", "X_ML_PRIVILEGE_INFO" },
- { "2.5.4.76", "XML_PRIV_POLICY" },
- { "2.5.4.82", "PERMISSION" },
- { "2.5.6.0", "TOP" },
- { "2.5.6.1", "ALIAS" },
- { "2.5.6.2", "COUNTRY" },
- { "2.5.6.3", "LOCALITY" },
- { "2.5.6.4", "ORGANIZATION" },
- { "2.5.6.5", "ORGANIZATIONAL_UNIT" },
- { "2.5.6.6", "PERSON" },
- { "2.5.6.7", "ORGANIZATIONAL_PERSON" },
- { "2.5.6.8", "ORGANIZATIONAL_ROLE" },
- { "2.5.6.9", "GROUP_OF_NAMES" },
- { "2.5.6.10", "RESIDENTIAL_PERSON" },
- { "2.5.6.11", "APPLICATION_PROCESS" },
- { "2.5.6.12", "APPLICATION_ENTITY" },
- { "2.5.6.13", "D_SA" },
- { "2.5.6.14", "DEVICE" },
- { "2.5.6.15", "STRONG_AUTHENTICATION_USER" },
- { "2.5.6.16", "CERTIFICATE_AUTHORITY" },
- { "2.5.6.17", "GROUP_OF_UNIQUE_NAMES" },
- { "2.5.6.21", "PKI_USER" },
- { "2.5.6.22", "PKI_CA" },
- { "2.5.8.1.1", "RSA" },
- { "2.5.29.1", "AUTHORITY_KEY_IDENTIFIER" },
- { "2.5.29.2", "KEY_ATTRIBUTES" },
- { "2.5.29.3", "CERTIFICATE_POLICIES" },
- { "2.5.29.4", "KEY_USAGE_RESTRICTION" },
- { "2.5.29.5", "POLICY_MAPPING" },
- { "2.5.29.6", "SUBTREES_CONSTRAINT" },
- { "2.5.29.7", "SUBJECT_ALT_NAME" },
- { "2.5.29.8", "ISSUER_ALT_NAME" },
- { "2.5.29.9", "SUBJECT_DIRECTORY_ATTRIBUTES" },
- { "2.5.29.10", "BASIC_CONSTRAINTS" },
- { "2.5.29.11", "NAME_CONSTRAINTS" },
- { "2.5.29.12", "POLICY_CONSTRAINTS" },
- { "2.5.29.13", "BASIC_CONSTRAINTS" },
- { "2.5.29.14", "SUBJECT_KEY_IDENTIFIER" },
- { "2.5.29.15", "KEY_USAGE" },
- { "2.5.29.16", "PRIVATE_KEY_USAGE_PERIOD" },
- { "2.5.29.17", "SUBJECT_ALT_NAME" },
- { "2.5.29.18", "ISSUER_ALT_NAME" },
- { "2.5.29.19", "BASIC_CONSTRAINTS" },
- { "2.5.29.20", "C_RL_NUMBER" },
- { "2.5.29.21", "C_RL_REASON" },
- { "2.5.29.22", "EXPIRATION_DATE" },
- { "2.5.29.23", "INSTRUCTION_CODE" },
- { "2.5.29.24", "INVALIDITY_DATE" },
- { "2.5.29.25", "C_RL_DISTRIBUTION_POINTS" },
- { "2.5.29.26", "ISSUING_DISTRIBUTION_POINT" },
- { "2.5.29.27", "DELTA_CRL_INDICATOR" },
- { "2.5.29.28", "ISSUING_DISTRIBUTION_POINT" },
- { "2.5.29.29", "CERTIFICATE_ISSUER" },
- { "2.5.29.30", "NAME_CONSTRAINTS" },
- { "2.5.29.31", "C_RL_DISTRIBUTION_POINTS" },
- { "2.5.29.32", "CERTIFICATE_POLICIES" },
- { "2.5.29.32.0", "ANY_POLICY" },
- { "2.5.29.33", "POLICY_MAPPINGS" },
- { "2.5.29.34", "POLICY_CONSTRAINTS" },
- { "2.5.29.35", "AUTHORITY_KEY_IDENTIFIER" },
- { "2.5.29.36", "POLICY_CONSTRAINTS" },
- { "2.5.29.37", "EXT_KEY_USAGE" },
- { "2.5.29.37.0", "ANY_EXTENDED_KEY_USAGE" },
- { "2.5.29.38", "AUTHORITY_ATTRIBUTE_IDENTIFIER" },
- { "2.5.29.39", "ROLE_SPEC_CERT_IDENTIFIER" },
- { "2.5.29.40", "C_RL_STREAM_IDENTIFIER" },
- { "2.5.29.41", "BASIC_ATT_CONSTRAINTS" },
- { "2.5.29.42", "DELEGATED_NAME_CONSTRAINTS" },
- { "2.5.29.43", "TIME_SPECIFICATION" },
- { "2.5.29.44", "C_RL_SCOPE" },
- { "2.5.29.45", "STATUS_REFERRALS" },
- { "2.5.29.46", "FRESHEST_CRL" },
- { "2.5.29.47", "ORDERED_LIST" },
- { "2.5.29.48", "ATTRIBUTE_DESCRIPTOR" },
- { "2.5.29.49", "USER_NOTICE" },
- { "2.5.29.50", "S_OA_IDENTIFIER" },
- { "2.5.29.51", "BASE_UPDATE_TIME" },
- { "2.5.29.52", "ACCEPTABLE_CERT_POLICIES" },
- { "2.5.29.53", "DELTA_INFO" },
- { "2.5.29.54", "INHIBIT_ANY_POLICY" },
- { "2.5.29.55", "TARGET_INFORMATION" },
- { "2.5.29.56", "NO_REV_AVAIL" },
- { "2.5.29.57", "ACCEPTABLE_PRIVILEGE_POLICIES" },
- { "2.5.29.58", "TO_BE_REVOKED" },
- { "2.5.29.59", "REVOKED_GROUPS" },
- { "2.5.29.60", "EXPIRED_CERTS_ON_CRL" },
- { "2.5.29.61", "INDIRECT_ISSUER" },
- { "2.5.29.62", "NO_ASSERTION" },
- { "2.5.29.63", "A_AISSUING_DISTRIBUTION_POINT" },
- { "2.5.29.64", "ISSUED_ON_BEHALF_OF" },
- { "2.5.29.65", "SINGLE_USE" },
- { "2.5.29.66", "GROUP_AC" },
- { "2.5.29.67", "ALLOWED_ATT_ASS" },
- { "2.5.29.68", "ATTRIBUTE_MAPPINGS" },
- { "2.5.29.69", "HOLDER_NAME_CONSTRAINTS" },
- { "2.16.724.1.2.2.4.1", "PERSONAL_DATA_INFO" },
- { "2.16.840.1.101.2.1.1.1", "SDNS_SIGNATURE_ALGORITHM" },
- { "2.16.840.1.101.2.1.1.2", "FORTEZZA_SIGNATURE_ALGORITHM" },
- { "2.16.840.1.101.2.1.1.3", "SDNS_CONFIDENTIALITY_ALGORITHM" },
- { "2.16.840.1.101.2.1.1.4", "FORTEZZA_CONFIDENTIALITY_ALGORITHM" },
- { "2.16.840.1.101.2.1.1.5", "SDNS_INTEGRITY_ALGORITHM" },
- { "2.16.840.1.101.2.1.1.6", "FORTEZZA_INTEGRITY_ALGORITHM" },
- { "2.16.840.1.101.2.1.1.7", "SDNS_TOKEN_PROTECTION_ALGORITHM" },
- { "2.16.840.1.101.2.1.1.8", "FORTEZZA_TOKEN_PROTECTION_ALGORITHM" },
- { "2.16.840.1.101.2.1.1.9", "SDNS_KEY_MANAGEMENT_ALGORITHM" },
- { "2.16.840.1.101.2.1.1.10", "FORTEZZA_KEY_MANAGEMENT_ALGORITHM" },
- { "2.16.840.1.101.2.1.1.11", "SDNS_K_MAND_SIG_ALGORITHM" },
- { "2.16.840.1.101.2.1.1.12", "FORTEZZA_K_MAND_SIG_ALGORITHM" },
- { "2.16.840.1.101.2.1.1.13", "SUITE_A_SIGNATURE_ALGORITHM" },
- { "2.16.840.1.101.2.1.1.14", "SUITE_A_CONFIDENTIALITY_ALGORITHM" },
- { "2.16.840.1.101.2.1.1.15", "SUITE_A_INTEGRITY_ALGORITHM" },
- { "2.16.840.1.101.2.1.1.16", "SUITE_A_TOKEN_PROTECTION_ALGORITHM" },
- { "2.16.840.1.101.2.1.1.17", "SUITE_A_KEY_MANAGEMENT_ALGORITHM" },
- { "2.16.840.1.101.2.1.1.18", "SUITE_AK_MAND_SIG_ALGORITHM" },
- { "2.16.840.1.101.2.1.1.19", "FORTEZZA_UPDATED_SIG_ALGORITHM" },
- { "2.16.840.1.101.2.1.1.20", "FORTEZZA_K_MAND_UPD_SIG_ALGORITHMS" },
- { "2.16.840.1.101.2.1.1.21", "FORTEZZA_UPDATED_INTEG_ALGORITHM" },
- { "2.16.840.1.101.2.1.1.22", "KEY_EXCHANGE_ALGORITHM" },
- { "2.16.840.1.101.2.1.1.23", "FORTEZZA_WRAP80_ALGORITHM" },
- { "2.16.840.1.101.2.1.1.24", "K_EA_KEY_ENCRYPTION_ALGORITHM" },
- { "2.16.840.1.101.2.1.2.1", "RFC822_MESSAGE_FORMAT" },
- { "2.16.840.1.101.2.1.2.2", "EMPTY_CONTENT" },
- { "2.16.840.1.101.2.1.2.3", "CSP_CONTENT_TYPE" },
- { "2.16.840.1.101.2.1.2.42", "MSP_REV3_CONTENT_TYPE" },
- { "2.16.840.1.101.2.1.2.48", "MSP_CONTENT_TYPE" },
- { "2.16.840.1.101.2.1.2.49", "MSP_REKEY_AGENT_PROTOCOL" },
- { "2.16.840.1.101.2.1.2.50", "MSP_MMP" },
- { "2.16.840.1.101.2.1.2.66", "MSP_REV3_1_CONTENT_TYPE" },
- { "2.16.840.1.101.2.1.2.72", "FORWARDED_MSP_MESSAGE_BODY_PART" },
- { "2.16.840.1.101.2.1.2.73", "MSP_FORWARDED_MESSAGE_PARAMETERS" },
- { "2.16.840.1.101.2.1.2.74", "FORWARDED_CSP_MSG_BODY_PART" },
- { "2.16.840.1.101.2.1.2.75", "CSP_FORWARDED_MESSAGE_PARAMETERS" },
- { "2.16.840.1.101.2.1.2.76", "MSP_MMP2" },
- { "2.16.840.1.101.2.1.3.1", "SDNS_SECURITY_POLICY" },
- { "2.16.840.1.101.2.1.3.2", "SDNS_PRBAC" },
- { "2.16.840.1.101.2.1.3.3", "MOSAIC_PRBAC" },
- { "2.16.840.1.101.2.1.3.10", "SI_SECURITY_POLICY" },
- { "2.16.840.1.101.2.1.3.10.0", "SI_NASP" },
- { "2.16.840.1.101.2.1.3.10.1", "SI_ELCO" },
- { "2.16.840.1.101.2.1.3.10.2", "SI_TK" },
- { "2.16.840.1.101.2.1.3.10.3", "SI_DSAP" },
- { "2.16.840.1.101.2.1.3.10.4", "SI_SSSS" },
- { "2.16.840.1.101.2.1.3.10.5", "SI_DNASP" },
- { "2.16.840.1.101.2.1.3.10.6", "SI_BYEMAN" },
- { "2.16.840.1.101.2.1.3.10.7", "SI_REL_US" },
- { "2.16.840.1.101.2.1.3.10.8", "SI_REL_AUS" },
- { "2.16.840.1.101.2.1.3.10.9", "SI_REL_CAN" },
- { "2.16.840.1.101.2.1.3.10.10", "SI_REL_UK" },
- { "2.16.840.1.101.2.1.3.10.11", "SI_REL_NZ" },
- { "2.16.840.1.101.2.1.3.10.12", "SI_GENERIC" },
- { "2.16.840.1.101.2.1.3.11", "GENSER" },
- { "2.16.840.1.101.2.1.3.11.0", "GENSER_NATIONS" },
- { "2.16.840.1.101.2.1.3.11.1", "GENSER_COMSEC" },
- { "2.16.840.1.101.2.1.3.11.2", "GENSER_ACQUISITION" },
- { "2.16.840.1.101.2.1.3.11.3", "GENSER_SECURITY_CATEGORIES" },
- { "2.16.840.1.101.2.1.3.11.3.0", "GENSER_TAG_SET_NAME" },
- { "2.16.840.1.101.2.1.3.12", "DEFAULT_SECURITY_POLICY" },
- { "2.16.840.1.101.2.1.3.13", "CAPCO_MARKINGS" },
- { "2.16.840.1.101.2.1.3.13.0", "CAPCO_SECURITY_CATEGORIES" },
- { "2.16.840.1.101.2.1.3.13.0.1", "CAPCO_TAG_SET_NAME1" },
- { "2.16.840.1.101.2.1.3.13.0.2", "CAPCO_TAG_SET_NAME2" },
- { "2.16.840.1.101.2.1.3.13.0.3", "CAPCO_TAG_SET_NAME3" },
- { "2.16.840.1.101.2.1.3.13.0.4", "CAPCO_TAG_SET_NAME4" },
- { "2.16.840.1.101.2.1.5.1", "SDNS_KEY_MANAGEMENT_CERTIFICATE" },
- { "2.16.840.1.101.2.1.5.2", "SDNS_USER_SIGNATURE_CERTIFICATE" },
- { "2.16.840.1.101.2.1.5.3", "SDNS_K_MAND_SIG_CERTIFICATE" },
- { "2.16.840.1.101.2.1.5.4", "FORTEZZA_KEY_MANAGEMENT_CERTIFICATE" },
- { "2.16.840.1.101.2.1.5.5", "FORTEZZA_K_MAND_SIG_CERTIFICATE" },
- { "2.16.840.1.101.2.1.5.6", "FORTEZZA_USER_SIGNATURE_CERTIFICATE" },
- { "2.16.840.1.101.2.1.5.7", "FORTEZZA_CA_SIGNATURE_CERTIFICATE" },
- { "2.16.840.1.101.2.1.5.8", "SDNS_CA_SIGNATURE_CERTIFICATE" },
- { "2.16.840.1.101.2.1.5.10", "AUXILIARY_VECTOR" },
- { "2.16.840.1.101.2.1.5.11", "ML_RECEIPT_POLICY" },
- { "2.16.840.1.101.2.1.5.12", "ML_MEMBERSHIP" },
- { "2.16.840.1.101.2.1.5.13", "ML_ADMINISTRATORS" },
- { "2.16.840.1.101.2.1.5.14", "ALID" },
- { "2.16.840.1.101.2.1.5.20", "JAN_UK_MS" },
- { "2.16.840.1.101.2.1.5.21", "FEB_UK_MS" },
- { "2.16.840.1.101.2.1.5.22", "MAR_UK_MS" },
- { "2.16.840.1.101.2.1.5.23", "APR_UK_MS" },
- { "2.16.840.1.101.2.1.5.24", "MAY_UK_MS" },
- { "2.16.840.1.101.2.1.5.25", "JUN_UK_MS" },
- { "2.16.840.1.101.2.1.5.26", "JUL_UK_MS" },
- { "2.16.840.1.101.2.1.5.27", "AUG_UK_MS" },
- { "2.16.840.1.101.2.1.5.28", "SEP_UK_MS" },
- { "2.16.840.1.101.2.1.5.29", "OCT_UK_MS" },
- { "2.16.840.1.101.2.1.5.30", "NOV_UK_MS" },
- { "2.16.840.1.101.2.1.5.31", "DEC_UK_MS" },
- { "2.16.840.1.101.2.1.5.40", "META_SDN_SCKL" },
- { "2.16.840.1.101.2.1.5.41", "SDNS_CKL" },
- { "2.16.840.1.101.2.1.5.42", "META_SDN_SSIGNATURE_CKL" },
- { "2.16.840.1.101.2.1.5.43", "SDNS_SIGNATURE_CKL" },
- { "2.16.840.1.101.2.1.5.44", "SDNS_CERTIFICATE_REVOCATION_LIST" },
- { "2.16.840.1.101.2.1.5.45", "FORTEZZA_CERTIFICATE_REVOCATION_LIST" },
- { "2.16.840.1.101.2.1.5.46", "FORTEZZA_CKL" },
- { "2.16.840.1.101.2.1.5.47", "AL_EXEMPTED_ADDRESS_PROCESSOR" },
- { "2.16.840.1.101.2.1.5.48", "GUARD" },
- { "2.16.840.1.101.2.1.5.49", "ALGORITHMS_SUPPORTED" },
- { "2.16.840.1.101.2.1.5.50", "SUITE_A_KEY_MANAGEMENT_CERTIFICATE" },
- { "2.16.840.1.101.2.1.5.51", "SUITE_AK_MAND_SIG_CERTIFICATE" },
- { "2.16.840.1.101.2.1.5.52", "SUITE_A_USER_SIGNATURE_CERTIFICATE" },
- { "2.16.840.1.101.2.1.5.53", "PRBAC_INFO" },
- { "2.16.840.1.101.2.1.5.54", "PRBAC_CA_CONSTRAINTS" },
- { "2.16.840.1.101.2.1.5.55", "SIG_OR_KM_PRIVILEGES" },
- { "2.16.840.1.101.2.1.5.56", "COMM_PRIVILEGES" },
- { "2.16.840.1.101.2.1.5.57", "LABELED_ATTRIBUTE" },
- { "2.16.840.1.101.2.1.5.58", "POLICY_INFORMATION_FILE" },
- { "2.16.840.1.101.2.1.5.59", "SEC_POLICY_INFORMATION_FILE" },
- { "2.16.840.1.101.2.1.5.60", "C_A_CLEARANCE_CONSTRAINT" },
- { "2.16.840.1.101.2.1.7.1", "CSP_EXTNS" },
- { "2.16.840.1.101.2.1.7.1.0", "CSP_CS_EXTN" },
- { "2.16.840.1.101.2.1.8.1", "M_ISSI_SECURITY_CATEGORIES" },
- { "2.16.840.1.101.2.1.8.2", "STANDARD_SECURITY_LABEL_PRIVILEGES" },
- { "2.16.840.1.101.2.1.10.1", "SIG_PRIVILEGES" },
- { "2.16.840.1.101.2.1.10.2", "KM_PRIVILEGES" },
- { "2.16.840.1.101.2.1.10.3", "NAMED_TAG_SET_PRIVILEGE" },
- { "2.16.840.1.101.2.1.11.1", "UK_DEMO" },
- { "2.16.840.1.101.2.1.11.2", "US_DOD_CLASS2" },
- { "2.16.840.1.101.2.1.11.3", "US_MEDIUM_PILOT" },
- { "2.16.840.1.101.2.1.11.4", "US_DOD_CLASS4" },
- { "2.16.840.1.101.2.1.11.5", "US_DOD_CLASS3" },
- { "2.16.840.1.101.2.1.11.6", "US_DOD_CLASS5" },
- { "2.16.840.1.101.2.1.12.0", "TEST_SECURITY_POLICY" },
- { "2.16.840.1.101.2.1.12.0.1", "TSP1" },
- { "2.16.840.1.101.2.1.12.0.1.0", "TSP1_SECURITY_CATEGORIES" },
- { "2.16.840.1.101.2.1.12.0.1.0.0", "TSP1_TAG_SET_ZERO" },
- { "2.16.840.1.101.2.1.12.0.1.0.1", "TSP1_TAG_SET_ONE" },
- { "2.16.840.1.101.2.1.12.0.1.0.2", "TSP1_TAG_SET_TWO" },
- { "2.16.840.1.101.2.1.12.0.2", "TSP2" },
- { "2.16.840.1.101.2.1.12.0.2.0", "TSP2_SECURITY_CATEGORIES" },
- { "2.16.840.1.101.2.1.12.0.2.0.0", "TSP2_TAG_SET_ZERO" },
- { "2.16.840.1.101.2.1.12.0.2.0.1", "TSP2_TAG_SET_ONE" },
- { "2.16.840.1.101.2.1.12.0.2.0.2", "TSP2_TAG_SET_TWO" },
- { "2.16.840.1.101.2.1.12.0.3", "KAFKA" },
- { "2.16.840.1.101.2.1.12.0.3.0", "KAFKA_SECURITY_CATEGORIES" },
- { "2.16.840.1.101.2.1.12.0.3.0.1", "KAFKA_TAG_SET_NAME1" },
- { "2.16.840.1.101.2.1.12.0.3.0.2", "KAFKA_TAG_SET_NAME2" },
- { "2.16.840.1.101.2.1.12.0.3.0.3", "KAFKA_TAG_SET_NAME3" },
- { "2.16.840.1.101.2.1.12.1.1", "TCP1" },
- { "2.16.840.1.101.3.1", "SLABEL" },
- { "2.16.840.1.101.3.2", "PKI" },
- { "2.16.840.1.101.3.2.1", "NIST_POLICY_IDENTIFIER" },
- { "2.16.840.1.101.3.2.1.3.1", "FBCA_RUDIMENTARY_POLICY" },
- { "2.16.840.1.101.3.2.1.3.2", "FBCA_BASIC_POLICY" },
- { "2.16.840.1.101.3.2.1.3.3", "FBCA_MEDIUM_POLICY" },
- { "2.16.840.1.101.3.2.1.3.4", "FBCA_HIGH_POLICY" },
- { "2.16.840.1.101.3.2.1.48.1", "NIST_TEST_POLICY1" },
- { "2.16.840.1.101.3.2.1.48.2", "NIST_TEST_POLICY2" },
- { "2.16.840.1.101.3.2.1.48.3", "NIST_TEST_POLICY3" },
- { "2.16.840.1.101.3.2.1.48.4", "NIST_TEST_POLICY4" },
- { "2.16.840.1.101.3.2.1.48.5", "NIST_TEST_POLICY5" },
- { "2.16.840.1.101.3.2.1.48.6", "NIST_TEST_POLICY6" },
- { "2.16.840.1.101.3.2.2", "GAK" },
- { "2.16.840.1.101.3.2.2.1", "K_RA_KEY" },
- { "2.16.840.1.101.3.2.3", "EXTENSIONS" },
- { "2.16.840.1.101.3.2.3.1", "K_R_TECHNIQUE" },
- { "2.16.840.1.101.3.2.3.2", "K_RECOVERY_CAPABLE" },
- { "2.16.840.1.101.3.2.3.3", "K_R" },
- { "2.16.840.1.101.3.2.4", "KEY_RECOVERY_SCHEMES" },
- { "2.16.840.1.101.3.2.5", "KRAPOLA" },
- { "2.16.840.1.101.3.3", "ARPA" },
- { "2.16.840.1.101.3.4", "NIST_ALGORITHM" },
- { "2.16.840.1.101.3.4.1", "AES" },
- { "2.16.840.1.101.3.4.1.1", "AES128_ECB" },
- { "2.16.840.1.101.3.4.1.2", "AES128_CBC" },
- { "2.16.840.1.101.3.4.1.3", "AES128_OFB" },
- { "2.16.840.1.101.3.4.1.4", "AES128_CFB" },
- { "2.16.840.1.101.3.4.1.5", "AES128_WRAP" },
- { "2.16.840.1.101.3.4.1.6", "AES128_GCM" },
- { "2.16.840.1.101.3.4.1.7", "AES128_CCM" },
- { "2.16.840.1.101.3.4.1.8", "AES128_WRAP_PAD" },
- { "2.16.840.1.101.3.4.1.21", "AES192_ECB" },
- { "2.16.840.1.101.3.4.1.22", "AES192_CBC" },
- { "2.16.840.1.101.3.4.1.23", "AES192_OFB" },
- { "2.16.840.1.101.3.4.1.24", "AES192_CFB" },
- { "2.16.840.1.101.3.4.1.25", "AES192_WRAP" },
- { "2.16.840.1.101.3.4.1.26", "AES192_GCM" },
- { "2.16.840.1.101.3.4.1.27", "AES192_CCM" },
- { "2.16.840.1.101.3.4.1.28", "AES192_WRAP_PAD" },
- { "2.16.840.1.101.3.4.1.41", "AES256_ECB" },
- { "2.16.840.1.101.3.4.1.42", "AES256_CBC" },
- { "2.16.840.1.101.3.4.1.43", "AES256_OFB" },
- { "2.16.840.1.101.3.4.1.44", "AES256_CFB" },
- { "2.16.840.1.101.3.4.1.45", "AES256_WRAP" },
- { "2.16.840.1.101.3.4.1.46", "AES256_GCM" },
- { "2.16.840.1.101.3.4.1.47", "AES256_CCM" },
- { "2.16.840.1.101.3.4.1.48", "AES256_WRAP_PAD" },
- { "2.16.840.1.101.3.4.2", "HASH_ALGOS" },
- { "2.16.840.1.101.3.4.2.1", "SHA_256" },
- { "2.16.840.1.101.3.4.2.2", "SHA_384" },
- { "2.16.840.1.101.3.4.2.3", "SHA_512" },
- { "2.16.840.1.101.3.4.2.4", "SHA_224" },
- { "2.16.840.1.101.3.4.3.1", "DSA_WITH_SHA224" },
- { "2.16.840.1.101.3.4.3.2", "DSA_WITH_SHA256" },
- { "2.16.840.1.113719.1.2.8", "NOVELL_ALGORITHM" },
- { "2.16.840.1.113719.1.2.8.22", "DES_CBC_IV8" },
- { "2.16.840.1.113719.1.2.8.23", "DES_CBC_PAD_IV8" },
- { "2.16.840.1.113719.1.2.8.24", "DES_EDE2_CBC_IV8" },
- { "2.16.840.1.113719.1.2.8.25", "DES_EDE2_CBC_PAD_IV8" },
- { "2.16.840.1.113719.1.2.8.26", "DES_EDE3_CBC_IV8" },
- { "2.16.840.1.113719.1.2.8.27", "DES_EDE3_CBC_PAD_IV8" },
- { "2.16.840.1.113719.1.2.8.28", "RC5_CBC_PAD" },
- { "2.16.840.1.113719.1.2.8.29", "MD2_WITH_RSA_ENCRYPTION_B_SAFE1" },
- { "2.16.840.1.113719.1.2.8.30", "MD5_WITH_RSA_ENCRYPTION_B_SAFE1" },
- { "2.16.840.1.113719.1.2.8.31", "SHA1_WITH_RSA_ENCRYPTION_B_SAFE1" },
- { "2.16.840.1.113719.1.2.8.32", "LM_DIGEST" },
- { "2.16.840.1.113719.1.2.8.40", "MD2" },
- { "2.16.840.1.113719.1.2.8.50", "MD5" },
- { "2.16.840.1.113719.1.2.8.51", "IKE_HMAC_WITH_SHA1_RSA" },
- { "2.16.840.1.113719.1.2.8.52", "IKE_HMAC_WITH_MD5_RSA" },
- { "2.16.840.1.113719.1.2.8.69", "RC2_CBC_PAD" },
- { "2.16.840.1.113719.1.2.8.82", "SHA_1" },
- { "2.16.840.1.113719.1.2.8.92", "RC2_B_SAFE1_CBC" },
- { "2.16.840.1.113719.1.2.8.95", "MD4" },
- { "2.16.840.1.113719.1.2.8.130", "MD4_PACKET" },
- { "2.16.840.1.113719.1.2.8.131", "RSA_ENCRYPTION_BSAFE1" },
- { "2.16.840.1.113719.1.2.8.132", "NW_PASSWORD" },
- { "2.16.840.1.113719.1.2.8.133", "NOVELL_OBFUSCATE_1" },
- { "2.16.840.1.113719.1.9", "PKI" },
- { "2.16.840.1.113719.1.9.4", "PKI_ATTRIBUTE_TYPE" },
- { "2.16.840.1.113719.1.9.4.1", "SECURITY_ATTRIBUTES" },
- { "2.16.840.1.113719.1.9.4.2", "RELIANCE_LIMIT" },
- { "2.16.840.1.113730.1", "CERT_EXTENSION" },
- { "2.16.840.1.113730.1.1", "NETSCAPE_CERT_TYPE" },
- { "2.16.840.1.113730.1.2", "NETSCAPE_BASE_URL" },
- { "2.16.840.1.113730.1.3", "NETSCAPE_REVOCATION_URL" },
- { "2.16.840.1.113730.1.4", "NETSCAPE_CA_REVOCATION_URL" },
- { "2.16.840.1.113730.1.7", "NETSCAPE_CERT_RENEWAL_URL" },
- { "2.16.840.1.113730.1.8", "NETSCAPE_CA_POLICY_URL" },
- { "2.16.840.1.113730.1.9", "HOME_PAGE_URL" },
- { "2.16.840.1.113730.1.10", "ENTITY_LOGO" },
- { "2.16.840.1.113730.1.11", "USER_PICTURE" },
- { "2.16.840.1.113730.1.12", "NETSCAPE_SSL_SERVER_NAME" },
- { "2.16.840.1.113730.1.13", "NETSCAPE_COMMENT" },
- { "2.16.840.1.113730.2", "DATA_TYPE" },
- { "2.16.840.1.113730.2.1", "DATA_GIF" },
- { "2.16.840.1.113730.2.2", "DATA_JPEG" },
- { "2.16.840.1.113730.2.3", "DATA_URL" },
- { "2.16.840.1.113730.2.4", "DATA_HTML" },
- { "2.16.840.1.113730.2.5", "CERT_SEQUENCE" },
- { "2.16.840.1.113730.2.6", "CERT_URL" },
- { "2.16.840.1.113730.3", "DIRECTORY" },
- { "2.16.840.1.113730.3.1", "LDAP_DEFINITIONS" },
- { "2.16.840.1.113730.3.1.1", "CAR_LICENSE" },
- { "2.16.840.1.113730.3.1.2", "DEPARTMENT_NUMBER" },
- { "2.16.840.1.113730.3.1.3", "EMPLOYEE_NUMBER" },
- { "2.16.840.1.113730.3.1.4", "EMPLOYEE_TYPE" },
- { "2.16.840.1.113730.3.2.2", "INET_ORG_PERSON" },
- { "2.16.840.1.113730.4.1", "SERVER_GATED_CRYPTO" },
- { "2.16.840.1.113733.1.6.3", "VERISIGN_CZAG" },
- { "2.16.840.1.113733.1.6.6", "VERISIGN_IN_BOX" },
- { "2.16.840.1.113733.1.6.11", "VERISIGN_ONSITE_JURISDICTION_HASH" },
- { "2.16.840.1.113733.1.6.13", "UNKNOWN_VERISIGN_VPN_EXTENSION" },
- { "2.16.840.1.113733.1.6.15", "VERISIGN_SERVER_ID" },
- { "2.16.840.1.113733.1.7.1.1", "VERISIGN_CERT_POLICIES95_QUALIFIER1" },
- { "2.16.840.1.113733.1.7.1.1.1", "VERISIGN_CP_SV1NOTICE" },
- { "2.16.840.1.113733.1.7.1.1.2", "VERISIGN_CP_SV1NSI" },
- { "2.16.840.1.113733.1.8.1", "VERISIGN_ISS_STRONG_CRYPTO" },
- { "2.16.840.1.113733.1", "PKI" },
- { "2.16.840.1.113733.1.9", "PKCS7_ATTRIBUTE" },
- { "2.16.840.1.113733.1.9.2", "MESSAGE_TYPE" },
- { "2.16.840.1.113733.1.9.3", "PKI_STATUS" },
- { "2.16.840.1.113733.1.9.4", "FAIL_INFO" },
- { "2.16.840.1.113733.1.9.5", "SENDER_NONCE" },
- { "2.16.840.1.113733.1.9.6", "RECIPIENT_NONCE" },
- { "2.16.840.1.113733.1.9.7", "TRANS_ID" },
- { "2.16.840.1.113733.1.9.8", "EXTENSION_REQ" },
- { "2.16.840.1.113741.2", "INTEL_CDSA" },
- { "2.16.840.1.114412.1", "DIGI_CERT_NON_EV_CERTS" },
- { "2.16.840.1.114412.1.1", "DIGI_CERT_OV_CERT" },
- { "2.16.840.1.114412.1.2", "DIGI_CERT_DV_CERT" },
- { "2.16.840.1.114412.1.11", "DIGI_CERT_FEDERATED_DEVICE_CERT" },
- { "2.16.840.1.114412.1.3.0.1", "DIGI_CERT_GLOBAL_CA_POLICY" },
- { "2.16.840.1.114412.1.3.0.2", "DIGI_CERT_HIGH_ASSURANCE_EVCA_POLICY" },
- { "2.16.840.1.114412.1.3.0.3", "DIGI_CERT_GLOBAL_ROOT_CA_POLICY" },
- { "2.16.840.1.114412.1.3.0.4", "DIGI_CERT_ASSURED_ID_ROOT_CA_POLICY" },
- { "2.16.840.1.114412.2.2", "DIGI_CERT_EV_CERT" },
- { "2.16.840.1.114412.2.3", "DIGI_CERT_OBJECT_SIGNING_CERT" },
- { "2.16.840.1.114412.2.3.1", "DIGI_CERT_CODE_SIGNING_CERT" },
- { "2.16.840.1.114412.2.3.2", "DIGI_CERT_EV_CODE_SIGNING_CERT" },
- { "2.16.840.1.114412.2.3.11", "DIGI_CERT_KERNEL_CODE_SIGNING_CERT" },
- { "2.16.840.1.114412.2.3.21", "DIGI_CERT_DOCUMENT_SIGNING_CERT" },
- { "2.16.840.1.114412.2.4", "DIGI_CERT_CLIENT_CERT" },
- { "2.16.840.1.114412.2.4.1.1", "DIGI_CERT_LEVEL1_PERSONAL_CLIENT_CERT" },
- { "2.16.840.1.114412.2.4.1.2", "DIGI_CERT_LEVEL1_ENTERPRISE_CLIENT_CERT" },
- { "2.16.840.1.114412.2.4.2", "DIGI_CERT_LEVEL2_CLIENT_CERT" },
- { "2.16.840.1.114412.2.4.3.1", "DIGI_CERT_LEVEL3_US_CLIENT_CERT" },
- { "2.16.840.1.114412.2.4.3.2", "DIGI_CERT_LEVEL3_CBP_CLIENT_CERT" },
- { "2.16.840.1.114412.2.4.4.1", "DIGI_CERT_LEVEL4_US_CLIENT_CERT" },
- { "2.16.840.1.114412.2.4.4.2", "DIGI_CERT_LEVEL4_CBP_CLIENT_CERT" },
- { "2.16.840.1.114412.2.4.5.1", "DIGI_CERT_PIV_HARDWARE_CERT" },
- { "2.16.840.1.114412.2.4.5.2", "DIGI_CERT_PIV_CARD_AUTH_CERT" },
- { "2.16.840.1.114412.2.4.5.3", "DIGI_CERT_PIV_CONTENT_SIGNING_CERT" },
- { "2.16.840.1.114412.4.31", "DIGI_CERT_GRID_CLASSIC_CERT" },
- { "2.16.840.1.114412.4.31.5", "DIGI_CERT_GRID_INTEGRATED_CERT" },
- { "2.16.840.1.114412.31.4.31.1", "DIGI_CERT_GRID_HOST_CERT" },
- { "2.23.42.0", "CONTENT_TYPE" },
- { "2.23.42.0.0", "PAN_DATA" },
- { "2.23.42.0.1", "PAN_TOKEN" },
- { "2.23.42.0.2", "PAN_ONLY" },
- { "2.23.42.1", "MSG_EXT" },
- { "2.23.42.2", "FIELD" },
- { "2.23.42.2.0", "FULL_NAME" },
- { "2.23.42.2.1", "GIVEN_NAME" },
- { "2.23.42.2.2", "FAMILY_NAME" },
- { "2.23.42.2.3", "BIRTH_FAMILY_NAME" },
- { "2.23.42.2.4", "PLACE_NAME" },
- { "2.23.42.2.5", "IDENTIFICATION_NUMBER" },
- { "2.23.42.2.6", "MONTH" },
- { "2.23.42.2.7", "DATE" },
- { "2.23.42.2.8", "ADDRESS" },
- { "2.23.42.2.9", "TELEPHONE" },
- { "2.23.42.2.10", "AMOUNT" },
- { "2.23.42.2.11", "ACCOUNT_NUMBER" },
- { "2.23.42.2.12", "PASS_PHRASE" },
- { "2.23.42.3", "ATTRIBUTE" },
- { "2.23.42.3.0", "CERT" },
- { "2.23.42.3.0.0", "ROOT_KEY_THUMB" },
- { "2.23.42.3.0.1", "ADDITIONAL_POLICY" },
- { "2.23.42.4", "ALGORITHM" },
- { "2.23.42.5", "POLICY" },
- { "2.23.42.5.0", "ROOT" },
- { "2.23.42.6", "MODULE" },
- { "2.23.42.7", "CERT_EXT" },
- { "2.23.42.7.0", "HASHED_ROOT_KEY" },
- { "2.23.42.7.1", "CERTIFICATE_TYPE" },
- { "2.23.42.7.2", "MERCHANT_DATA" },
- { "2.23.42.7.3", "CARD_CERT_REQUIRED" },
- { "2.23.42.7.4", "TUNNELING" },
- { "2.23.42.7.5", "SET_EXTENSIONS" },
- { "2.23.42.7.6", "SET_QUALIFIER" },
- { "2.23.42.8", "BRAND" },
- { "2.23.42.8.1", "IATA_ATA" },
- { "2.23.42.8.4", "VISA" },
- { "2.23.42.8.5", "MASTER_CARD" },
- { "2.23.42.8.30", "DINERS" },
- { "2.23.42.8.34", "AMERICAN_EXPRESS" },
- { "2.23.42.8.6011", "NOVUS" },
- { "2.23.42.9", "VENDOR" },
- { "2.23.42.9.0", "GLOBE_SET" },
- { "2.23.42.9.1", "IBM" },
- { "2.23.42.9.2", "CYBER_CASH" },
- { "2.23.42.9.3", "TERISA" },
- { "2.23.42.9.4", "RSADSI" },
- { "2.23.42.9.5", "VERI_FONE" },
- { "2.23.42.9.6", "TRIN_TECH" },
- { "2.23.42.9.7", "BANK_GATE" },
- { "2.23.42.9.8", "GTE" },
- { "2.23.42.9.9", "COMPU_SOURCE" },
- { "2.23.42.9.10", "GRIFFIN" },
- { "2.23.42.9.11", "CERTICOM" },
- { "2.23.42.9.12", "OSS" },
- { "2.23.42.9.13", "TENTH_MOUNTAIN" },
- { "2.23.42.9.14", "ANTARES" },
- { "2.23.42.9.15", "ECC" },
- { "2.23.42.9.16", "MAITHEAN" },
- { "2.23.42.9.17", "NETSCAPE" },
- { "2.23.42.9.18", "VERISIGN" },
- { "2.23.42.9.19", "BLUE_MONEY" },
- { "2.23.42.9.20", "LACERTE" },
- { "2.23.42.9.21", "FUJITSU" },
- { "2.23.42.9.22", "E_LAB" },
- { "2.23.42.9.23", "ENTRUST" },
- { "2.23.42.9.24", "VI_ANET" },
- { "2.23.42.9.25", "III" },
- { "2.23.42.9.26", "OPEN_MARKET" },
- { "2.23.42.9.27", "LEXEM" },
- { "2.23.42.9.28", "INTERTRADER" },
- { "2.23.42.9.29", "PERSIMMON" },
- { "2.23.42.9.30", "NABLE" },
- { "2.23.42.9.31", "ESPACE_NET" },
- { "2.23.42.9.32", "HITACHI" },
- { "2.23.42.9.33", "MICROSOFT" },
- { "2.23.42.9.34", "NEC" },
- { "2.23.42.9.35", "MITSUBISHI" },
- { "2.23.42.9.36", "NCR" },
- { "2.23.42.9.37", "E_COMM" },
- { "2.23.42.9.38", "GEMPLUS" },
- { "2.23.42.10", "NATIONAL" },
- { "2.23.42.10.392", "JAPAN" },
- { "2.23.43.1.4", "W_TLS_ECC" },
- { "2.23.43.1.4.1", "W_TLS_ECC_CURVE1" },
- { "2.23.43.1.4.6", "W_TLS_ECC_CURVE6" },
- { "2.23.43.1.4.8", "W_TLS_ECC_CURVE8" },
- { "2.23.43.1.4.9", "W_TLS_ECC_CURVE9" },
- { "2.23.133", "T_CPA" },
- { "2.23.133.1", "TCPA_SPEC_VERSION" },
- { "2.23.133.2", "TCPA_ATTRIBUTE" },
- { "2.23.133.2.1", "TCPA_TPM_MANUFACTURER" },
- { "2.23.133.2.2", "TCPA_TPM_MODEL" },
- { "2.23.133.2.3", "TCPA_TPM_VERSION" },
- { "2.23.133.2.4", "TCPA_PLATFORM_MANUFACTURER" },
- { "2.23.133.2.5", "TCPA_PLATFORM_MODEL" },
- { "2.23.133.2.6", "TCPA_PLATFORM_VERSION" },
- { "2.23.133.2.7", "TCPA_COMPONENT_MANUFACTURER" },
- { "2.23.133.2.8", "TCPA_COMPONENT_MODEL" },
- { "2.23.133.2.9", "TCPA_COMPONENT_VERSION" },
- { "2.23.133.2.10", "TCPA_SECURITY_QUALITIES" },
- { "2.23.133.2.11", "TCPA_TPM_PROTECTION_PROFILE" },
- { "2.23.133.2.12", "TCPA_TPM_SECURITY_TARGET" },
- { "2.23.133.2.13", "TCPA_FOUNDATION_PROTECTION_PROFILE" },
- { "2.23.133.2.14", "TCPA_FOUNDATION_SECURITY_TARGET" },
- { "2.23.133.2.15", "TCPA_TPM_ID_LABEL" },
- { "2.23.133.3", "TCPA_PROTOCOL" },
- { "2.23.133.3.1", "TCPA_PRTT_TPM_ID_PROTOCOL" },
- { "2.23.134.1.4.2.1", "POST_SIGNUM_ROOT_QCA" },
- { "2.23.134.1.2.2.3", "POST_SIGNUM_PUBLIC_CA" },
- { "2.23.134.1.2.1.8.210", "POST_SIGNUM_COMMERCIAL_SERVER_POLICY" },
- { "2.23.136.1.1.1", "M_RTD_SIGNATURE_DATA" },
- { "2.54.1775.2", "HASHED_ROOT_KEY" },
- { "2.54.1775.3", "CERTIFICATE_TYPE" },
- { "2.54.1775.4", "MERCHANT_DATA" },
- { "2.54.1775.5", "CARD_CERT_REQUIRED" },
- { "2.54.1775.6", "TUNNELING" },
- { "2.54.1775.7", "SET_QUALIFIER" },
- { "2.54.1775.99", "SET_DATA" },
- { "1.2.40.0.17.1.22", "A_TRUST_EV_POLICY" },
- { "1.3.6.1.4.1.34697.2.1", "AFFIRM_TRUST_EV_POLICY" },
- { "1.3.6.1.4.1.34697.2.2", "AFFIRM_TRUST_EV_POLICY" },
- { "1.3.6.1.4.1.34697.2.3", "AFFIRM_TRUST_EV_POLICY" },
- { "1.3.6.1.4.1.34697.2.4", "AFFIRM_TRUST_EV_POLICY" },
- { "2.16.578.1.26.1.3.3", "BUY_PASS_EV_POLICY" },
- { "1.3.6.1.4.1.17326.10.14.2.1.2", "CAMERFIRMA_EV_POLICY" },
- { "1.3.6.1.4.1.17326.10.8.12.1.2", "CAMERFIRMA_EV_POLICY" },
- { "1.3.6.1.4.1.22234.2.5.2.3.1", "CERT_PLUS_EV_POLICY" },
- { "1.3.6.1.4.1.6449.1.2.1.5.1", "COMODO_EV_POLICY" },
- { "1.3.6.1.4.1.6334.1.100.1", "CYBERTRUST_EV_POLICY" },
- { "1.3.6.1.4.1.4788.2.202.1", "D_TRUST_EV_POLICY" },
- { "2.16.840.1.114412.2.1", "DIGI_CERT_EV_POLICY" },
- { "2.16.528.1.1001.1.1.1.12.6.1.1.1", "DIGI_NOTAR_EV_POLICY" },
- { "2.16.840.1.114028.10.1.2", "ENTRUST_EV_POLICY" },
- { "1.3.6.1.4.1.14370.1.6", "GEO_TRUST_EV_POLICY" },
- { "1.3.6.1.4.1.4146.1.1", "GLOBAL_SIGN_EV_POLICY" },
- { "2.16.840.1.114413.1.7.23.3", "GO_DADDY_EV_POLICY" },
- { "1.3.6.1.4.1.14777.6.1.1", "IZENPE_EV_POLICY" },
- { "1.3.6.1.4.1.14777.6.1.2", "IZENPE_EV_POLICY" },
- { "1.3.6.1.4.1.782.1.2.1.8.1", "NETWORK_SOLUTIONS_EV_POLICY" },
- { "1.3.6.1.4.1.8024.0.2.100.1.2", "QUO_VADIS_EV_POLICY" },
- { "1.2.392.200091.100.721.1", "SECURITY_COMMUNICATION_(SECOM)_EV_POLICY" },
- { "2.16.840.1.114414.1.7.23.3", "STARFIELD_EV_POLICY" },
- { "1.3.6.1.4.1.23223.1.1.1", "START_COM_EV_POLICY" },
- { "2.16.756.1.89.1.2.1.1", "SWISS_SIGN_EV_POLICY" },
- { "1.3.6.1.4.1.7879.13.24.1", "T_TELE_SEC_EV_POLICY" },
- { "2.16.840.1.113733.1.7.48.1", "THAWTE_EV_POLICY" },
- { "2.16.840.1.114404.1.1.2.4.1", "TRUST_WAVE_EV_POLICY" },
- { "1.3.6.1.4.1.40869.1.1.22.3", "TWCA_EV_POLICY" },
- { "2.16.840.1.113733.1.7.23.6", "VERI_SIGN_EV_POLICY" },
- { "2.16.840.1.114171.500.9", "WELLS_FARGO_EV_POLICY" },
- { "1.3.6.1.4.1.311.3.3.1", "MS_COUNTER_SIGN" },
- { "1.3.6.1.4.1.311.10.3.28", "szOID_PLATFORM_MANIFEST_BINARY_ID" },
- { "1.3.6.1.4.1.311.2.6.1", "SPC_RELAXED_PE_MARKER_CHECK_OBJID" },
+ static const std::unordered_map<oid_t, const char*> oid_to_str{
+ {"0.2.262.1.10", "TELESEC"},
+ {"0.2.262.1.10.0", "EXTENSION"},
+ {"0.2.262.1.10.1", "MECHANISM"},
+ {"0.2.262.1.10.1.0", "AUTHENTICATION"},
+ {"0.2.262.1.10.1.0.1", "PASSWORD_AUTHENTICATION"},
+ {"0.2.262.1.10.1.0.2", "PROTECTED_PASSWORD_AUTHENTICATION"},
+ {"0.2.262.1.10.1.0.3", "ONE_WAY_X509_AUTHENTICATION"},
+ {"0.2.262.1.10.1.0.4", "TWO_WAY_X509_AUTHENTICATION"},
+ {"0.2.262.1.10.1.0.5", "THREE_WAY_X509_AUTHENTICATION"},
+ {"0.2.262.1.10.1.0.6", "ONE_WAY_ISO9798_AUTHENTICATION"},
+ {"0.2.262.1.10.1.0.7", "TWO_WAY_ISO9798_AUTHENTICATION"},
+ {"0.2.262.1.10.1.0.8", "TELEKOM_AUTHENTICATION"},
+ {"0.2.262.1.10.1.1", "SIGNATURE"},
+ {"0.2.262.1.10.1.1.1", "MD4_WITH_RSA_AND_ISO9697"},
+ {"0.2.262.1.10.1.1.2", "MD4_WITH_RSA_AND_TELESEC_SIGNATURE_STANDARD"},
+ {"0.2.262.1.10.1.1.3", "MD5_WITH_RSA_AND_ISO9697"},
+ {"0.2.262.1.10.1.1.4", "MD5_WITH_RSA_AND_TELESEC_SIGNATURE_STANDARD"},
+ {"0.2.262.1.10.1.1.5", "RIPEMD160_WITH_RSA_AND_TELEKOM_SIGNATURE_STANDARD"},
+ {"0.2.262.1.10.1.1.9", "HBCI_RSA_SIGNATURE"},
+ {"0.2.262.1.10.1.2", "ENCRYPTION"},
+ {"0.2.262.1.10.1.2.0", "NONE"},
+ {"0.2.262.1.10.1.2.1", "RSA_TELESEC"},
+ {"0.2.262.1.10.1.2.2", "DES"},
+ {"0.2.262.1.10.1.2.2.1", "DES_ECB"},
+ {"0.2.262.1.10.1.2.2.2", "DES_CBC"},
+ {"0.2.262.1.10.1.2.2.3", "DES_OFB"},
+ {"0.2.262.1.10.1.2.2.4", "DES_CFB8"},
+ {"0.2.262.1.10.1.2.2.5", "DES_CFB64"},
+ {"0.2.262.1.10.1.2.3", "DES3"},
+ {"0.2.262.1.10.1.2.3.1", "DES3_ECB"},
+ {"0.2.262.1.10.1.2.3.2", "DES3_CBC"},
+ {"0.2.262.1.10.1.2.3.3", "DES3_OFB"},
+ {"0.2.262.1.10.1.2.3.4", "DES3_CFB8"},
+ {"0.2.262.1.10.1.2.3.5", "DES3_CFB64"},
+ {"0.2.262.1.10.1.2.4", "MAGENTA"},
+ {"0.2.262.1.10.1.2.5", "IDEA"},
+ {"0.2.262.1.10.1.2.5.1", "IDEA_ECB"},
+ {"0.2.262.1.10.1.2.5.2", "IDEA_CBC"},
+ {"0.2.262.1.10.1.2.5.3", "IDEA_OFB"},
+ {"0.2.262.1.10.1.2.5.4", "IDEA_CFB8"},
+ {"0.2.262.1.10.1.2.5.5", "IDEA_CFB64"},
+ {"0.2.262.1.10.1.3", "ONE_WAY_FUNCTION"},
+ {"0.2.262.1.10.1.3.1", "MD4"},
+ {"0.2.262.1.10.1.3.2", "MD5"},
+ {"0.2.262.1.10.1.3.3", "SQ_MOD_NX509"},
+ {"0.2.262.1.10.1.3.4", "SQ_MOD_NISO"},
+ {"0.2.262.1.10.1.3.5", "RIPEMD128"},
+ {"0.2.262.1.10.1.3.6", "HASH_USING_BLOCK_CIPHER"},
+ {"0.2.262.1.10.1.3.7", "MAC"},
+ {"0.2.262.1.10.1.3.8", "RIPEMD160"},
+ {"0.2.262.1.10.1.4", "FEC_FUNCTION"},
+ {"0.2.262.1.10.1.4.1", "REED_SOLOMON"},
+ {"0.2.262.1.10.2", "MODULE"},
+ {"0.2.262.1.10.2.0", "ALGORITHMS"},
+ {"0.2.262.1.10.2.1", "ATTRIBUTE_TYPES"},
+ {"0.2.262.1.10.2.2", "CERTIFICATE_TYPES"},
+ {"0.2.262.1.10.2.3", "MESSAGE_TYPES"},
+ {"0.2.262.1.10.2.4", "PL_PROTOCOL"},
+ {"0.2.262.1.10.2.5", "SME_AND_COMPONENTS_OF_SME"},
+ {"0.2.262.1.10.2.6", "FEC"},
+ {"0.2.262.1.10.2.7", "USEFUL_DEFINITIONS"},
+ {"0.2.262.1.10.2.8", "STEFILES"},
+ {"0.2.262.1.10.2.9", "SADMIB"},
+ {"0.2.262.1.10.2.10", "ELECTRONIC_ORDER"},
+ {"0.2.262.1.10.2.11", "TELESEC_TTP_ASYMMETRIC_APPLICATION"},
+ {"0.2.262.1.10.2.12", "TELESEC_TTP_BASIS_APPLICATION"},
+ {"0.2.262.1.10.2.13", "TELESEC_TTP_MESSAGES"},
+ {"0.2.262.1.10.2.14", "TELESEC_TTP_TIME_STAMP_APPLICATION"},
+ {"0.2.262.1.10.3", "OBJECT_CLASS"},
+ {"0.2.262.1.10.3.0", "TELESEC_OTHER_NAME"},
+ {"0.2.262.1.10.3.1", "DIRECTORY"},
+ {"0.2.262.1.10.3.2", "DIRECTORY_TYPE"},
+ {"0.2.262.1.10.3.3", "DIRECTORY_GROUP"},
+ {"0.2.262.1.10.3.4", "DIRECTORY_USER"},
+ {"0.2.262.1.10.3.5", "SYMMETRIC_KEY_ENTRY"},
+ {"0.2.262.1.10.4", "PACKAGE"},
+ {"0.2.262.1.10.5", "PARAMETER"},
+ {"0.2.262.1.10.6", "NAME_BINDING"},
+ {"0.2.262.1.10.7", "ATTRIBUTE"},
+ {"0.2.262.1.10.7.0", "APPLICATION_GROUP_IDENTIFIER"},
+ {"0.2.262.1.10.7.1", "CERTIFICATE_TYPE"},
+ {"0.2.262.1.10.7.2", "TELESEC_CERTIFICATE"},
+ {"0.2.262.1.10.7.3", "CERTIFICATE_NUMBER"},
+ {"0.2.262.1.10.7.4", "CERTIFICATE_REVOCATION_LIST"},
+ {"0.2.262.1.10.7.5", "CREATION_DATE"},
+ {"0.2.262.1.10.7.6", "ISSUER"},
+ {"0.2.262.1.10.7.7", "NAMING_AUTHORITY"},
+ {"0.2.262.1.10.7.8", "PUBLIC_KEY_DIRECTORY"},
+ {"0.2.262.1.10.7.9", "SECURITY_DOMAIN"},
+ {"0.2.262.1.10.7.10", "SUBJECT"},
+ {"0.2.262.1.10.7.11", "TIME_OF_REVOCATION"},
+ {"0.2.262.1.10.7.12", "USER_GROUP_REFERENCE"},
+ {"0.2.262.1.10.7.13", "VALIDITY"},
+ {"0.2.262.1.10.7.14", "ZERT93"},
+ {"0.2.262.1.10.7.15", "SECURITY_MESS_ENV"},
+ {"0.2.262.1.10.7.16", "ANONYMIZED_PUBLIC_KEY_DIRECTORY"},
+ {"0.2.262.1.10.7.17", "TELESEC_GIVEN_NAME"},
+ {"0.2.262.1.10.7.18", "NAME_ADDITIONS"},
+ {"0.2.262.1.10.7.19", "TELESEC_POSTAL_CODE"},
+ {"0.2.262.1.10.7.20", "NAME_DISTINGUISHER"},
+ {"0.2.262.1.10.7.21", "TELESEC_CERTIFICATE_LIST"},
+ {"0.2.262.1.10.7.22", "TELETRUST_CERTIFICATE_LIST"},
+ {"0.2.262.1.10.7.23", "X509_CERTIFICATE_LIST"},
+ {"0.2.262.1.10.7.24", "TIME_OF_ISSUE"},
+ {"0.2.262.1.10.7.25", "PHYSICAL_CARD_NUMBER"},
+ {"0.2.262.1.10.7.26", "FILE_TYPE"},
+ {"0.2.262.1.10.7.27", "CTL_FILE_IS_ARCHIVE"},
+ {"0.2.262.1.10.7.28", "EMAIL_ADDRESS"},
+ {"0.2.262.1.10.7.29", "CERTIFICATE_TEMPLATE_LIST"},
+ {"0.2.262.1.10.7.30", "DIRECTORY_NAME"},
+ {"0.2.262.1.10.7.31", "DIRECTORY_TYPE_NAME"},
+ {"0.2.262.1.10.7.32", "DIRECTORY_GROUP_NAME"},
+ {"0.2.262.1.10.7.33", "DIRECTORY_USER_NAME"},
+ {"0.2.262.1.10.7.34", "REVOCATION_FLAG"},
+ {"0.2.262.1.10.7.35", "SYMMETRIC_KEY_ENTRY_NAME"},
+ {"0.2.262.1.10.7.36", "GL_NUMBER"},
+ {"0.2.262.1.10.7.37", "GO_NUMBER"},
+ {"0.2.262.1.10.7.38", "G_KEY_DATA"},
+ {"0.2.262.1.10.7.39", "Z_KEY_DATA"},
+ {"0.2.262.1.10.7.40", "KT_KEY_DATA"},
+ {"0.2.262.1.10.7.41", "KT_KEY_NUMBER"},
+ {"0.2.262.1.10.7.51", "TIME_OF_REVOCATION_GEN"},
+ {"0.2.262.1.10.7.52", "LIABILITY_TEXT"},
+ {"0.2.262.1.10.8", "ATTRIBUTE_GROUP"},
+ {"0.2.262.1.10.9", "ACTION"},
+ {"0.2.262.1.10.10", "NOTIFICATION"},
+ {"0.2.262.1.10.11", "SNMP_MIBS"},
+ {"0.2.262.1.10.11.1", "SECURITY_APPLICATION"},
+ {"0.2.262.1.10.12", "CERT_AND_CRL_EXTENSION_DEFINITIONS"},
+ {"0.2.262.1.10.12.0", "LIABILITY_LIMITATION_FLAG"},
+ {"0.2.262.1.10.12.1", "TELESEC_CERT_ID_EXT"},
+ {"0.2.262.1.10.12.2", "TELESEC_POLICY_IDENTIFIER"},
+ {"0.2.262.1.10.12.3", "TELESEC_POLICY_QUALIFIER_ID"},
+ {"0.2.262.1.10.12.4", "TELESEC_CRL_FILTERED_EXT"},
+ {"0.2.262.1.10.12.5", "TELESEC_CRL_FILTER_EXT"},
+ {"0.2.262.1.10.12.6", "TELESEC_NAMING_AUTHORITY_EXT"},
+ {"0.4.0.127.0.7", "BSI"},
+ {"0.4.0.127.0.7.1", "BSI_ECC"},
+ {"0.4.0.127.0.7.1.1", "BSIFIELD_TYPE"},
+ {"0.4.0.127.0.7.1.1.1", "BSI_PRIME_FIELD"},
+ {"0.4.0.127.0.7.1.1.2", "BSI_CHARACTERISTIC_TWO_FIELD"},
+ {"0.4.0.127.0.7.1.1.2.2", "BSI_ECTLV_KEY_FORMAT"},
+ {"0.4.0.127.0.7.1.1.2.2.1", "BSI_ECTLV_PUBLIC_KEY"},
+ {"0.4.0.127.0.7.1.1.2.3", "BSI_CHARACTERISTIC_TWO_BASIS"},
+ {"0.4.0.127.0.7.1.1.2.3.1", "BSI_GN_BASIS"},
+ {"0.4.0.127.0.7.1.1.2.3.2", "BSI_TP_BASIS"},
+ {"0.4.0.127.0.7.1.1.2.3.3", "BSI_PP_BASIS"},
+ {"0.4.0.127.0.7.1.1.4.1", "BSI_ECDSA_SIGNATURES"},
+ {"0.4.0.127.0.7.1.1.4.1.1", "BSI_ECDSA_WITH_SHA1"},
+ {"0.4.0.127.0.7.1.1.4.1.2", "BSI_ECDSA_WITH_SHA224"},
+ {"0.4.0.127.0.7.1.1.4.1.3", "BSI_ECDSA_WITH_SHA256"},
+ {"0.4.0.127.0.7.1.1.4.1.4", "BSI_ECDSA_WITH_SHA384"},
+ {"0.4.0.127.0.7.1.1.4.1.5", "BSI_ECDSA_WITH_SHA512"},
+ {"0.4.0.127.0.7.1.1.4.1.6", "BSI_ECDSA_WITH_RIPEMD160"},
+ {"0.4.0.127.0.7.1.1.5.1.1", "BSI_ECKA_EG_X963_KDF"},
+ {"0.4.0.127.0.7.1.1.5.1.1.1", "BSI_ECKA_EG_X963_KDF_WITH_SHA1"},
+ {"0.4.0.127.0.7.1.1.5.1.1.2", "BSI_ECKA_EG_X963_KDF_WITH_SHA224"},
+ {"0.4.0.127.0.7.1.1.5.1.1.3", "BSI_ECKA_EG_X963_KDF_WITH_SHA256"},
+ {"0.4.0.127.0.7.1.1.5.1.1.4", "BSI_ECKA_EG_X963_KDF_WITH_SHA384"},
+ {"0.4.0.127.0.7.1.1.5.1.1.5", "BSI_ECKA_EG_X963_KDF_WITH_SHA512"},
+ {"0.4.0.127.0.7.1.1.5.1.1.6", "BSI_ECKA_EG_X963_KDF_WITH_RIPEMD160"},
+ {"0.4.0.127.0.7.1.1.5.1.2", "BSI_ECKA_EG_SESSION_KDF"},
+ {"0.4.0.127.0.7.1.1.5.1.2.1", "BSI_ECKA_EG_SESSION_KDF_WITH3_DES"},
+ {"0.4.0.127.0.7.1.1.5.1.2.2", "BSI_ECKA_EG_SESSION_KDF_WITH_AES128"},
+ {"0.4.0.127.0.7.1.1.5.1.2.3", "BSI_ECKA_EG_SESSION_KDF_WITH_AES192"},
+ {"0.4.0.127.0.7.1.1.5.1.2.4", "BSI_ECKA_EG_SESSION_KDF_WITH_AES256"},
+ {"0.4.0.127.0.7.1.1.5.2", "BSI_ECKA_DH"},
+ {"0.4.0.127.0.7.1.1.5.2.1", "BSI_ECKA_DHX963_KDF"},
+ {"0.4.0.127.0.7.1.1.5.2.1.1", "BSI_ECKA_DHX963_KDF_WITH_SHA1"},
+ {"0.4.0.127.0.7.1.1.5.2.1.2", "BSI_ECKA_DHX963_KDF_WITH_SHA224"},
+ {"0.4.0.127.0.7.1.1.5.2.1.3", "BSI_ECKA_DHX963_KDF_WITH_SHA256"},
+ {"0.4.0.127.0.7.1.1.5.2.1.4", "BSI_ECKA_DHX963_KDF_WITH_SHA384"},
+ {"0.4.0.127.0.7.1.1.5.2.1.5", "BSI_ECKA_DHX963_KDF_WITH_SHA512"},
+ {"0.4.0.127.0.7.1.1.5.2.1.6", "BSI_ECKA_DHX963_KDF_WITH_RIPEMD160"},
+ {"0.4.0.127.0.7.1.1.5.2.2", "BSI_ECKA_DH_SESSION_KDF"},
+ {"0.4.0.127.0.7.1.1.5.2.2.1", "BSI_ECKA_DH_SESSION_KDF_WITH3_DES"},
+ {"0.4.0.127.0.7.1.1.5.2.2.2", "BSI_ECKA_DH_SESSION_KDF_WITH_AES128"},
+ {"0.4.0.127.0.7.1.1.5.2.2.3", "BSI_ECKA_DH_SESSION_KDF_WITH_AES192"},
+ {"0.4.0.127.0.7.1.1.5.2.2.4", "BSI_ECKA_DH_SESSION_KDF_WITH_AES256"},
+ {"0.4.0.127.0.7.1.2", "BSI_EC_KEY_TYPE"},
+ {"0.4.0.127.0.7.1.2.1", "BSI_EC_PUBLIC_KEY"},
+ {"0.4.0.127.0.7.1.5.1", "BSI_KAEG"},
+ {"0.4.0.127.0.7.1.5.1.1", "BSI_KAEG_WITH_X963_KDF"},
+ {"0.4.0.127.0.7.1.5.1.2", "BSI_KAEG_WITH3_DESKDF"},
+ {"0.4.0.127.0.7.2.2.1", "BSI_PK"},
+ {"0.4.0.127.0.7.2.2.1.1", "BSI_PK_DH"},
+ {"0.4.0.127.0.7.2.2.1.2", "BSI_PK_ECDH"},
+ {"0.4.0.127.0.7.2.2.2", "BSI_TA"},
+ {"0.4.0.127.0.7.2.2.2.1", "BSI_TA_RSA"},
+ {"0.4.0.127.0.7.2.2.2.1.1", "BSI_TA_RS_AV1_5_SHA1"},
+ {"0.4.0.127.0.7.2.2.2.1.2", "BSI_TA_RS_AV1_5_SHA256"},
+ {"0.4.0.127.0.7.2.2.2.1.3", "BSI_TA_RSAPSS_SHA1"},
+ {"0.4.0.127.0.7.2.2.2.1.4", "BSI_TA_RSAPSS_SHA256"},
+ {"0.4.0.127.0.7.2.2.2.1.5", "BSI_TA_RS_AV1_5_SHA512"},
+ {"0.4.0.127.0.7.2.2.2.1.6", "BSI_TA_RSAPSS_SHA512"},
+ {"0.4.0.127.0.7.2.2.2.2", "BSI_TA_ECDSA"},
+ {"0.4.0.127.0.7.2.2.2.2.1", "BSI_TA_ECDSA_SHA1"},
+ {"0.4.0.127.0.7.2.2.2.2.2", "BSI_TA_ECDSA_SHA224"},
+ {"0.4.0.127.0.7.2.2.2.2.3", "BSI_TA_ECDSA_SHA256"},
+ {"0.4.0.127.0.7.2.2.2.2.4", "BSI_TA_ECDSA_SHA384"},
+ {"0.4.0.127.0.7.2.2.2.2.5", "BSI_TA_ECDSA_SHA512"},
+ {"0.4.0.127.0.7.2.2.3", "BSI_CA"},
+ {"0.4.0.127.0.7.2.2.3.1", "BSI_CA_DH"},
+ {"0.4.0.127.0.7.2.2.3.1.1", "BSI_CA_DH_3_DES_CBC_CBC"},
+ {"0.4.0.127.0.7.2.2.3.1.2", "BSI_CA_DH_AES_CBC_CMAC_128"},
+ {"0.4.0.127.0.7.2.2.3.1.3", "BSI_CA_DH_AES_CBC_CMAC_192"},
+ {"0.4.0.127.0.7.2.2.3.1.4", "BSI_CA_DH_AES_CBC_CMAC_256"},
+ {"0.4.0.127.0.7.2.2.3.2", "BSI_CA_ECDH"},
+ {"0.4.0.127.0.7.2.2.3.2.1", "BSI_CA_ECDH_3_DES_CBC_CBC"},
+ {"0.4.0.127.0.7.2.2.3.2.2", "BSI_CA_ECDH_AES_CBC_CMAC_128"},
+ {"0.4.0.127.0.7.2.2.3.2.3", "BSI_CA_ECDH_AES_CBC_CMAC_192"},
+ {"0.4.0.127.0.7.2.2.3.2.4", "BSI_CA_ECDH_AES_CBC_CMAC_256"},
+ {"0.4.0.127.0.7.2.2.4", "BSI_PACE"},
+ {"0.4.0.127.0.7.2.2.4.1", "BSI_PACE_DH_GM"},
+ {"0.4.0.127.0.7.2.2.4.1.1", "BSI_PACE_DH_GM_3_DES_CBC_CBC"},
+ {"0.4.0.127.0.7.2.2.4.1.2", "BSI_PACE_DH_GM_AES_CBC_CMAC_128"},
+ {"0.4.0.127.0.7.2.2.4.1.3", "BSI_PACE_DH_GM_AES_CBC_CMAC_192"},
+ {"0.4.0.127.0.7.2.2.4.1.4", "BSI_PACE_DH_GM_AES_CBC_CMAC_256"},
+ {"0.4.0.127.0.7.2.2.4.2", "BSI_PACE_ECDH_GM"},
+ {"0.4.0.127.0.7.2.2.4.2.1", "BSI_PACE_ECDH_GM_3_DES_CBC_CBC"},
+ {"0.4.0.127.0.7.2.2.4.2.2", "BSI_PACE_ECDH_GM_AES_CBC_CMAC_128"},
+ {"0.4.0.127.0.7.2.2.4.2.3", "BSI_PACE_ECDH_GM_AES_CBC_CMAC_192"},
+ {"0.4.0.127.0.7.2.2.4.2.4", "BSI_PACE_ECDH_GM_AES_CBC_CMAC_256"},
+ {"0.4.0.127.0.7.2.2.4.3", "BSI_PACE_DH_IM"},
+ {"0.4.0.127.0.7.2.2.4.3.1", "BSI_PACE_DH_IM_3_DES_CBC_CBC"},
+ {"0.4.0.127.0.7.2.2.4.3.2", "BSI_PACE_DH_IM_AES_CBC_CMAC_128"},
+ {"0.4.0.127.0.7.2.2.4.3.3", "BSI_PACE_DH_IM_AES_CBC_CMAC_192"},
+ {"0.4.0.127.0.7.2.2.4.3.4", "BSI_PACE_DH_IM_AES_CBC_CMAC_256"},
+ {"0.4.0.127.0.7.2.2.4.4", "BSI_PACE_ECDH_IM"},
+ {"0.4.0.127.0.7.2.2.4.4.1", "BSI_PACE_ECDH_IM_3_DES_CBC_CBC"},
+ {"0.4.0.127.0.7.2.2.4.4.2", "BSI_PACE_ECDH_IM_AES_CBC_CMAC_128"},
+ {"0.4.0.127.0.7.2.2.4.4.3", "BSI_PACE_ECDH_IM_AES_CBC_CMAC_192"},
+ {"0.4.0.127.0.7.2.2.4.4.4", "BSI_PACE_ECDH_IM_AES_CBC_CMAC_256"},
+ {"0.4.0.127.0.7.2.2.5", "BSI_RI"},
+ {"0.4.0.127.0.7.2.2.5.1", "BSI_RI_DH"},
+ {"0.4.0.127.0.7.2.2.5.1.1", "BSI_RI_DH_SHA1"},
+ {"0.4.0.127.0.7.2.2.5.1.2", "BSI_RI_DH_SHA224"},
+ {"0.4.0.127.0.7.2.2.5.1.3", "BSI_RI_DH_SHA256"},
+ {"0.4.0.127.0.7.2.2.5.1.4", "BSI_RI_DH_SHA384"},
+ {"0.4.0.127.0.7.2.2.5.1.5", "BSI_RI_DH_SHA512"},
+ {"0.4.0.127.0.7.2.2.5.2", "BSI_RI_ECDH"},
+ {"0.4.0.127.0.7.2.2.5.2.1", "BSI_RI_ECDH_SHA1"},
+ {"0.4.0.127.0.7.2.2.5.2.2", "BSI_RI_ECDH_SHA224"},
+ {"0.4.0.127.0.7.2.2.5.2.3", "BSI_RI_ECDH_SHA256"},
+ {"0.4.0.127.0.7.2.2.5.2.4", "BSI_RI_ECDH_SHA384"},
+ {"0.4.0.127.0.7.2.2.5.2.5", "BSI_RI_ECDH_SHA512"},
+ {"0.4.0.127.0.7.2.2.6", "BSI_CARD_INFO"},
+ {"0.4.0.127.0.7.2.2.7", "BSI_EID_SECURITY"},
+ {"0.4.0.127.0.7.2.2.8", "BSI_PT"},
+ {"0.4.0.127.0.7.3.1.2", "BSI_EAC_ROLES"},
+ {"0.4.0.127.0.7.3.1.2.1", "BSI_EAC_ROLES_IS"},
+ {"0.4.0.127.0.7.3.1.2.2", "BSI_EAC_ROLES_AT"},
+ {"0.4.0.127.0.7.3.1.2.3", "BSI_EAC_ROLES_ST"},
+ {"0.4.0.127.0.7.3.1.3", "BSI_T_AV2CE"},
+ {"0.4.0.127.0.7.3.1.3.1", "BSI_T_AV2CE_DESCRIPTION"},
+ {"0.4.0.127.0.7.3.1.3.1.1", "BSI_T_AV2CE_DESCRIPTION_PLAIN_TEXT"},
+ {"0.4.0.127.0.7.3.1.3.1.2", "BSI_T_AV2CE_DESCRIPTION_IA5_STRING"},
+ {"0.4.0.127.0.7.3.1.3.1.3", "BSI_T_AV2CE_DESCRIPTION_OCTET_STRING"},
+ {"0.4.0.127.0.7.3.1.3.2", "BSI_T_AV2CE_TERMINAL_SECTOR"},
+ {"0.4.0.127.0.7.3.1.4", "BSI_AUX_DATA"},
+ {"0.4.0.127.0.7.3.1.4.1", "BSI_AUX_DATA_BIRTHDAY"},
+ {"0.4.0.127.0.7.3.1.4.2", "BSI_AUX_DATA_EXPIRE_DATE"},
+ {"0.4.0.127.0.7.3.1.4.3", "BSI_AUX_DATA_COMMUNITY_ID"},
+ {"0.4.0.127.0.7.3.1.5", "BSI_DEFECT_LIST"},
+ {"0.4.0.127.0.7.3.1.5.1", "BSI_DEFECT_AUTH_DEFECT"},
+ {"0.4.0.127.0.7.3.1.5.1.1", "BSI_DEFECT_CERT_REVOKED"},
+ {"0.4.0.127.0.7.3.1.5.1.2", "BSI_DEFECT_CERT_REPLACED"},
+ {"0.4.0.127.0.7.3.1.5.1.3", "BSI_DEFECT_CHIP_AUTH_KEY_REVOKED"},
+ {"0.4.0.127.0.7.3.1.5.1.4", "BSI_DEFECT_ACTIVE_AUTH_KEY_REVOKED"},
+ {"0.4.0.127.0.7.3.1.5.2", "BSI_DEFECT_E_PASSPORT_DEFECT"},
+ {"0.4.0.127.0.7.3.1.5.2.1", "BSI_DEFECT_E_PASSPORT_DG_MALFORMED"},
+ {"0.4.0.127.0.7.3.1.5.2.2", "BSI_DEFECT_SOD_INVALID"},
+ {"0.4.0.127.0.7.3.1.5.3", "BSI_DEFECT_EID_DEFECT"},
+ {"0.4.0.127.0.7.3.1.5.3.1", "BSI_DEFECT_EIDDG_MALFORMED"},
+ {"0.4.0.127.0.7.3.1.5.3.2", "BSI_DEFECT_EID_INTEGRITY"},
+ {"0.4.0.127.0.7.3.1.5.4", "BSI_DEFECT_DOCUMENT_DEFECT"},
+ {"0.4.0.127.0.7.3.1.5.4.1", "BSI_DEFECT_CARD_SECURITY_MALFORMED"},
+ {"0.4.0.127.0.7.3.1.5.4.2", "BSI_DEFECT_CHIP_SECURITY_MALFORMED"},
+ {"0.4.0.127.0.7.3.1.5.4.3", "BSI_DEFECT_POWER_DOWN_REQ"},
+ {"0.4.0.127.0.7.3.1.6", "BSI_LIST_CONTENT_DESCRIPTION"},
+ {"0.4.0.127.0.7.3.2.1", "BSI_SECURITY_OBJECT"},
+ {"0.4.0.127.0.7.3.2.2", "BSI_BLACK_LIST"},
+ {"0.4.0.1862", "ETSI_QCS_PROFILE"},
+ {"0.4.0.1862.1", "ETSI_QCS"},
+ {"0.4.0.1862.1.1", "ETSI_QCS_COMPLIANCE"},
+ {"0.4.0.1862.1.2", "ETSI_QCS_LIMIT_VALUE"},
+ {"0.4.0.1862.1.3", "ETSI_QCS_RETENTION_PERIOD"},
+ {"0.4.0.1862.1.4", "ETSI_QCS_QC_SSCD"},
+ {"0.9.2342.19200300.100.1.1", "USER_ID"},
+ {"0.9.2342.19200300.100.1.3", "RFC822_MAILBOX"},
+ {"0.9.2342.19200300.100.1.25", "DOMAIN_COMPONENT"},
+ {"1.0.10118.3.0.49", "RIPEMD160"},
+ {"1.0.10118.3.0.50", "RIPEMD128"},
+ {"1.0.10118.3.0.55", "WHIRLPOOL"},
+ {"1.2.36.1.3.1.1.1", "QGPKI"},
+ {"1.2.36.1.3.1.1.1.1", "QGPKI_POLICIES"},
+ {"1.2.36.1.3.1.1.1.1.1", "QGPKI_MED_INTERMED_CA"},
+ {"1.2.36.1.3.1.1.1.1.1.1", "QGPKI_MED_INTERMED_INDIVIDUAL"},
+ {"1.2.36.1.3.1.1.1.1.1.2", "QGPKI_MED_INTERMED_DEVICE_CONTROL"},
+ {"1.2.36.1.3.1.1.1.1.1.3", "QGPKI_MED_INTERMED_DEVICE"},
+ {"1.2.36.1.3.1.1.1.1.1.4", "QGPKI_MED_INTERMED_AUTHORISED_PARTY"},
+ {"1.2.36.1.3.1.1.1.1.1.5", "QGPKI_MED_INTERMED_DEVICE_SYSTEM"},
+ {"1.2.36.1.3.1.1.1.1.2", "QGPKI_MED_ISSUING_CA"},
+ {"1.2.36.1.3.1.1.1.1.2.1", "QGPKI_MED_ISSUING_INDIVIDUAL"},
+ {"1.2.36.1.3.1.1.1.1.2.2", "QGPKI_MED_ISSUING_DEVICE_CONTROL"},
+ {"1.2.36.1.3.1.1.1.1.2.3", "QGPKI_MED_ISSUING_DEVICE"},
+ {"1.2.36.1.3.1.1.1.1.2.4", "QGPKI_MED_ISSUING_AUTHORISED_PARTY"},
+ {"1.2.36.1.3.1.1.1.1.2.5", "QGPKI_MED_ISSUING_CLIENT_AUTH"},
+ {"1.2.36.1.3.1.1.1.1.2.6", "QGPKI_MED_ISSUING_SERVER_AUTH"},
+ {"1.2.36.1.3.1.1.1.1.2.7", "QGPKI_MED_ISSUING_DATA_PROT"},
+ {"1.2.36.1.3.1.1.1.1.2.8", "QGPKI_MED_ISSUING_TOKEN_AUTH"},
+ {"1.2.36.1.3.1.1.1.1.3", "QGPKI_BASIC_INTERMED_CA"},
+ {"1.2.36.1.3.1.1.1.1.3.1", "QGPKI_BASIC_INTERMED_DEVICE_SYSTEM"},
+ {"1.2.36.1.3.1.1.1.1.4", "QGPKI_BASIC_ISSUING_CA"},
+ {"1.2.36.1.3.1.1.1.1.4.1", "QGPKI_BASIC_ISSUING_CLIENT_AUTH"},
+ {"1.2.36.1.3.1.1.1.1.4.2", "QGPKI_BASIC_ISSUING_SERVER_AUTH"},
+ {"1.2.36.1.3.1.1.1.1.4.3", "QGPKI_BASIC_ISSUING_DATA_SIGNING"},
+ {"1.2.36.1.3.1.1.1.2", "QGPKI_ASSURANCE_LEVEL"},
+ {"1.2.36.1.3.1.1.1.2.1", "QGPKI_ASSURANCE_RUDIMENTARY"},
+ {"1.2.36.1.3.1.1.1.2.2", "QGPKI_ASSURANCE_BASIC"},
+ {"1.2.36.1.3.1.1.1.2.3", "QGPKI_ASSURANCE_MEDIUM"},
+ {"1.2.36.1.3.1.1.1.2.4", "QGPKI_ASSURANCE_HIGH"},
+ {"1.2.36.1.3.1.1.1.3", "QGPKI_CERT_FUNCTION"},
+ {"1.2.36.1.3.1.1.1.3.1", "QGPKI_FUNCTION_INDIVIDUAL"},
+ {"1.2.36.1.3.1.1.1.3.2", "QGPKI_FUNCTION_DEVICE"},
+ {"1.2.36.1.3.1.1.1.3.3", "QGPKI_FUNCTION_AUTHORISED_PARTY"},
+ {"1.2.36.1.3.1.1.1.3.4", "QGPKI_FUNCTION_DEVICE_CONTROL"},
+ {"1.2.36.1.3.1.2", "QPSPKI"},
+ {"1.2.36.1.3.1.2.1", "QPSPKI_POLICIES"},
+ {"1.2.36.1.3.1.2.1.2", "QPSPKI_POLICY_BASIC"},
+ {"1.2.36.1.3.1.2.1.3", "QPSPKI_POLICY_MEDIUM"},
+ {"1.2.36.1.3.1.2.1.4", "QPSPKI_POLICY_HIGH"},
+ {"1.2.36.1.3.1.3.2", "QTMRPKI"},
+ {"1.2.36.1.3.1.3.2.1", "QTMRPKI_POLICIES"},
+ {"1.2.36.1.3.1.3.2.2", "QTMRPKI_PURPOSE"},
+ {"1.2.36.1.3.1.3.2.2.1", "QTMRPKI_INDIVIDUAL"},
+ {"1.2.36.1.3.1.3.2.2.2", "QTMRPKI_DEVICE_CONTROL"},
+ {"1.2.36.1.3.1.3.2.2.3", "QTMRPKI_DEVICE"},
+ {"1.2.36.1.3.1.3.2.2.4", "QTMRPKI_AUTHORISED_PARTY"},
+ {"1.2.36.1.3.1.3.2.2.5", "QTMRPKI_DEVICE_SYSTEM"},
+ {"1.2.36.1.3.1.3.2.3", "QTMRPKI_DEVICE"},
+ {"1.2.36.1.3.1.3.2.3.1", "QTMRPKI_DRIVER_LICENSE"},
+ {"1.2.36.1.3.1.3.2.3.2", "QTMRPKI_INDUSTRY_AUTHORITY"},
+ {"1.2.36.1.3.1.3.2.3.3", "QTMRPKI_MARINE_LICENSE"},
+ {"1.2.36.1.3.1.3.2.3.4", "QTMRPKI_ADULT_PROOF_OF_AGE"},
+ {"1.2.36.1.3.1.3.2.3.5", "QTMRPKI_SAM"},
+ {"1.2.36.1.3.1.3.2.4", "QTMRPKI_AUTHORISED_PARTY"},
+ {"1.2.36.1.3.1.3.2.4.1", "QTMRPKI_TRANSPORT_INSPECTOR"},
+ {"1.2.36.1.3.1.3.2.4.2", "QTMRPKI_POLICE_OFFICER"},
+ {"1.2.36.1.3.1.3.2.4.3", "QTMRPKI_SYSTEM"},
+ {"1.2.36.1.3.1.3.2.4.4", "QTMRPKI_LIQUOR_LICENSING_INSPECTOR"},
+ {"1.2.36.1.3.1.3.2.4.5", "QTMRPKI_MARINE_ENFORCEMENT_OFFICER"},
+ {"1.2.36.1.333.1", "AUSTRALIAN_BUSINESS_NUMBER"},
+ {"1.2.36.68980861.1.1.2", "SIGNET_PERSONAL"},
+ {"1.2.36.68980861.1.1.3", "SIGNET_BUSINESS"},
+ {"1.2.36.68980861.1.1.4", "SIGNET_LEGAL"},
+ {"1.2.36.68980861.1.1.10", "SIGNET_PILOT"},
+ {"1.2.36.68980861.1.1.11", "SIGNET_INTRA_NET"},
+ {"1.2.36.68980861.1.1.20", "SIGNET_POLICY"},
+ {"1.2.36.75878867.1.100.1.1", "CERTIFICATES_AUSTRALIA_POLICY"},
+ {"1.2.392.200011.61.1.1.1", "MITSUBISHI_SECURITY_ALGORITHM"},
+ {"1.2.392.200011.61.1.1.1.1", "MISTY1_CBC"},
+ {"1.2.410.200004.1", "KISA_ALGORITHM"},
+ {"1.2.410.200004.1.1", "KCDSA"},
+ {"1.2.410.200004.1.2", "HAS160"},
+ {"1.2.410.200004.1.3", "SEED_ECB"},
+ {"1.2.410.200004.1.4", "SEED_CBC"},
+ {"1.2.410.200004.1.5", "SEED_OFB"},
+ {"1.2.410.200004.1.6", "SEED_CFB"},
+ {"1.2.410.200004.1.7", "SEED_MAC"},
+ {"1.2.410.200004.1.8", "KCDSA_WITH_HAS160"},
+ {"1.2.410.200004.1.9", "KCDSA_WITH_SHA1"},
+ {"1.2.410.200004.1.10", "PBE_WITH_HAS160_AND_SEED_ECB"},
+ {"1.2.410.200004.1.11", "PBE_WITH_HAS160_AND_SEED_CBC"},
+ {"1.2.410.200004.1.12", "PBE_WITH_HAS160_AND_SEED_CFB"},
+ {"1.2.410.200004.1.13", "PBE_WITH_HAS160_AND_SEED_OFB"},
+ {"1.2.410.200004.1.14", "PBE_WITH_SHA1_AND_SEED_ECB"},
+ {"1.2.410.200004.1.15", "PBE_WITH_SHA1_AND_SEED_CBC"},
+ {"1.2.410.200004.1.16", "PBE_WITH_SHA1_AND_SEED_CFB"},
+ {"1.2.410.200004.1.17", "PBE_WITH_SHA1_AND_SEED_OFB"},
+ {"1.2.410.200004.1.20", "RSA_WITH_HAS160"},
+ {"1.2.410.200004.1.21", "KCDSA1"},
+ {"1.2.410.200004.2", "NPKI_CP"},
+ {"1.2.410.200004.2.1", "NPKI_SIGNATURE_POLICY"},
+ {"1.2.410.200004.3", "NPKI_KP"},
+ {"1.2.410.200004.4", "NPKI_AT"},
+ {"1.2.410.200004.5", "NPKI_LCA"},
+ {"1.2.410.200004.5.1", "NPKI_SIGN_KOREA"},
+ {"1.2.410.200004.5.2", "NPKI_SIGN_GATE"},
+ {"1.2.410.200004.5.3", "NPKI_NCA_SIGN"},
+ {"1.2.410.200004.6", "NPKI_ON"},
+ {"1.2.410.200004.7", "NPKI_APP"},
+ {"1.2.410.200004.7.1", "NPKI_SMIME"},
+ {"1.2.410.200004.7.1.1", "NPKI_SMIME_ALGO"},
+ {"1.2.410.200004.7.1.1.1", "NPKI_CMS_SEED_WRAP"},
+ {"1.2.410.200004.10", "NPKI"},
+ {"1.2.410.200004.10.1", "NPKI_ATTRIBUTE"},
+ {"1.2.410.200004.10.1.1", "NPKI_IDENTIFY_DATA"},
+ {"1.2.410.200004.10.1.1.1", "NPKI_VID"},
+ {"1.2.410.200004.10.1.1.2", "NPKI_ENCRYPTED_VID"},
+ {"1.2.410.200004.10.1.1.3", "NPKI_RANDOM_NUM"},
+ {"1.2.410.200004.10.1.1.4", "NPKI_VID"},
+ {"1.2.410.200046.1.1", "ARIA1_ALGORITHM_MODES"},
+ {"1.2.410.200046.1.1.1", "ARIA128_ECB"},
+ {"1.2.410.200046.1.1.2", "ARIA128_CBC"},
+ {"1.2.410.200046.1.1.3", "ARIA128_CFB"},
+ {"1.2.410.200046.1.1.4", "ARIA128_OFB"},
+ {"1.2.410.200046.1.1.5", "ARIA128_CTR"},
+ {"1.2.410.200046.1.1.6", "ARIA192_ECB"},
+ {"1.2.410.200046.1.1.7", "ARIA192_CBC"},
+ {"1.2.410.200046.1.1.8", "ARIA192_CFB"},
+ {"1.2.410.200046.1.1.9", "ARIA192_OFB"},
+ {"1.2.410.200046.1.1.10", "ARIA192_CTR"},
+ {"1.2.410.200046.1.1.11", "ARIA256_ECB"},
+ {"1.2.410.200046.1.1.12", "ARIA256_CBC"},
+ {"1.2.410.200046.1.1.13", "ARIA256_CFB"},
+ {"1.2.410.200046.1.1.14", "ARIA256_OFB"},
+ {"1.2.410.200046.1.1.15", "ARIA256_CTR"},
+ {"1.2.410.200046.1.1.21", "ARIA128_CMAC"},
+ {"1.2.410.200046.1.1.22", "ARIA192_CMAC"},
+ {"1.2.410.200046.1.1.23", "ARIA256_CMAC"},
+ {"1.2.410.200046.1.1.31", "ARIA128_OCB2"},
+ {"1.2.410.200046.1.1.32", "ARIA192_OCB2"},
+ {"1.2.410.200046.1.1.33", "ARIA256_OCB2"},
+ {"1.2.410.200046.1.1.34", "ARIA128_GCM"},
+ {"1.2.410.200046.1.1.35", "ARIA192_GCM"},
+ {"1.2.410.200046.1.1.36", "ARIA256_GCM"},
+ {"1.2.410.200046.1.1.37", "ARIA128_CCM"},
+ {"1.2.410.200046.1.1.38", "ARIA192_CCM"},
+ {"1.2.410.200046.1.1.39", "ARIA256_CCM"},
+ {"1.2.410.200046.1.1.40", "ARIA128_KEYWRAP"},
+ {"1.2.410.200046.1.1.41", "ARIA192_KEYWRAP"},
+ {"1.2.410.200046.1.1.42", "ARIA256_KEYWRAP"},
+ {"1.2.410.200046.1.1.43", "ARIA128_KEYWRAP_WITH_PAD"},
+ {"1.2.410.200046.1.1.44", "ARIA192_KEYWRAP_WITH_PAD"},
+ {"1.2.410.200046.1.1.45", "ARIA256_KEYWRAP_WITH_PAD"},
+ {"1.2.643.2.2.3", "GOST_SIGNATURE"},
+ {"1.2.643.2.2.4", "GOST94_SIGNATURE"},
+ {"1.2.643.2.2.19", "GOST_PUBLIC_KEY"},
+ {"1.2.643.2.2.20", "GOST94_PUBLIC_KEY"},
+ {"1.2.643.2.2.21", "GOST_CIPHER"},
+ {"1.2.643.2.2.31.0", "TEST_CIPHER_PARAMS"},
+ {"1.2.643.2.2.31.1", "CRYPTO_PRO_CIPHER_A"},
+ {"1.2.643.2.2.31.2", "CRYPTO_PRO_CIPHER_B"},
+ {"1.2.643.2.2.31.3", "CRYPTO_PRO_CIPHER_C"},
+ {"1.2.643.2.2.31.4", "CRYPTO_PRO_CIPHER_D"},
+ {"1.2.643.2.2.31.5", "OSCAR11_CIPHER"},
+ {"1.2.643.2.2.31.6", "OSCAR10_CIPHER"},
+ {"1.2.643.2.2.31.7", "RIC1_CIPHER"},
+ {"1.2.643.2.2.9", "GOST_DIGEST"},
+ {"1.2.643.2.2.30.0", "TEST_DIGEST_PARAMS"},
+ {"1.2.643.2.2.30.1", "CRYPTO_PRO_DIGEST_A"},
+ {"1.2.643.2.2.35.0", "TEST_SIGN_PARAMS"},
+ {"1.2.643.2.2.35.1", "CRYPTO_PRO_SIGN_A"},
+ {"1.2.643.2.2.35.2", "CRYPTO_PRO_SIGN_B"},
+ {"1.2.643.2.2.35.3", "CRYPTO_PRO_SIGN_C"},
+ {"1.2.643.2.2.36.0", "CRYPTO_PRO_SIGN_XA"},
+ {"1.2.643.2.2.36.1", "CRYPTO_PRO_SIGN_XB"},
+ {"1.2.643.2.2.14.0", "NULL_MESHING"},
+ {"1.2.643.2.2.14.1", "CRYPTO_PRO_MESHING"},
+ {"1.2.643.2.2.10", "HMAC_GOST"},
+ {"1.2.643.2.2.13.0", "GOST_WRAP"},
+ {"1.2.643.2.2.13.1", "CRYPTO_PRO_WRAP"},
+ {"1.2.643.2.2.96", "CRYPTO_PRO_ECDH_WRAP"},
+ {"1.2.752.34.1", "SEIS_CP"},
+ {"1.2.752.34.1.1", "SEIS_HIGH_ASSURANCE_POLICY_IDENTIFIER"},
+ {"1.2.752.34.1.2", "SEIS_GAK_POLICY_IDENTIFIER"},
+ {"1.2.752.34.2", "SEIS_PE"},
+ {"1.2.752.34.3", "SEIS_AT"},
+ {"1.2.752.34.3.1", "SEIS_AT_PERSONAL_IDENTIFIER"},
+ {"1.2.840.10040.1", "MODULE"},
+ {"1.2.840.10040.1.1", "X9F1_CERT_MGMT"},
+ {"1.2.840.10040.2", "HOLDINSTRUCTION"},
+ {"1.2.840.10040.2.1", "HOLDINSTRUCTION_NONE"},
+ {"1.2.840.10040.2.2", "CALLISSUER"},
+ {"1.2.840.10040.2.3", "REJECT"},
+ {"1.2.840.10040.2.4", "PICKUP_TOKEN"},
+ {"1.2.840.10040.3", "ATTRIBUTE"},
+ {"1.2.840.10040.3.1", "COUNTER_SIGNATURE"},
+ {"1.2.840.10040.3.2", "ATTRIBUTE_CERT"},
+ {"1.2.840.10040.4", "ALGORITHM"},
+ {"1.2.840.10040.4.1", "DSA"},
+ {"1.2.840.10040.4.2", "DSA_MATCH"},
+ {"1.2.840.10040.4.3", "DSA_WITH_SHA1"},
+ {"1.2.840.10045.1", "FIELD_TYPE"},
+ {"1.2.840.10045.1.1", "PRIME_FIELD"},
+ {"1.2.840.10045.1.2", "CHARACTERISTIC_TWO_FIELD"},
+ {"1.2.840.10045.1.2.3", "CHARACTERISTIC_TWO_BASIS"},
+ {"1.2.840.10045.1.2.3.1", "ON_BASIS"},
+ {"1.2.840.10045.1.2.3.2", "TP_BASIS"},
+ {"1.2.840.10045.1.2.3.3", "PP_BASIS"},
+ {"1.2.840.10045.2", "PUBLIC_KEY_TYPE"},
+ {"1.2.840.10045.2.1", "EC_PUBLIC_KEY"},
+ {"1.2.840.10045.3.0.1", "C2PNB163V1"},
+ {"1.2.840.10045.3.0.2", "C2PNB163V2"},
+ {"1.2.840.10045.3.0.3", "C2PNB163V3"},
+ {"1.2.840.10045.3.0.5", "C2TNB191V1"},
+ {"1.2.840.10045.3.0.6", "C2TNB191V2"},
+ {"1.2.840.10045.3.0.7", "C2TNB191V3"},
+ {"1.2.840.10045.3.0.10", "C2PNB208W1"},
+ {"1.2.840.10045.3.0.11", "C2TNB239V1"},
+ {"1.2.840.10045.3.0.12", "C2TNB239V2"},
+ {"1.2.840.10045.3.0.13", "C2TNB239V3"},
+ {"1.2.840.10045.3.0.16", "C2PNB272W1"},
+ {"1.2.840.10045.3.0.18", "C2TNB359V1"},
+ {"1.2.840.10045.3.0.19", "C2PNB368W1"},
+ {"1.2.840.10045.3.0.20", "C2TNB431R1"},
+ {"1.2.840.10045.3.1.1", "PRIME192V1"},
+ {"1.2.840.10045.3.1.2", "PRIME192V2"},
+ {"1.2.840.10045.3.1.3", "PRIME192V3"},
+ {"1.2.840.10045.3.1.4", "PRIME239V1"},
+ {"1.2.840.10045.3.1.5", "PRIME239V2"},
+ {"1.2.840.10045.3.1.6", "PRIME239V3"},
+ {"1.2.840.10045.3.1.7", "PRIME256V1"},
+ {"1.2.840.10045.4.1", "ECDSA_WITH_SHA1"},
+ {"1.2.840.10045.4.2", "ECDSA_WITH_RECOMMENDED"},
+ {"1.2.840.10045.4.3", "ECDSA_WITH_SPECIFIED"},
+ {"1.2.840.10045.4.3.1", "ECDSA_WITH_SHA224"},
+ {"1.2.840.10045.4.3.2", "ECDSA_WITH_SHA256"},
+ {"1.2.840.10045.4.3.3", "ECDSA_WITH_SHA384"},
+ {"1.2.840.10045.4.3.4", "ECDSA_WITH_SHA512"},
+ {"1.2.840.10046.1", "FIELD_TYPE"},
+ {"1.2.840.10046.1.1", "GF_PRIME"},
+ {"1.2.840.10046.2", "NUMBER_TYPE"},
+ {"1.2.840.10046.2.1", "DH_PUBLIC_KEY"},
+ {"1.2.840.10046.3", "SCHEME"},
+ {"1.2.840.10046.3.1", "DH_STATIC"},
+ {"1.2.840.10046.3.2", "DH_EPHEM"},
+ {"1.2.840.10046.3.3", "DH_HYBRID1"},
+ {"1.2.840.10046.3.4", "DH_HYBRID2"},
+ {"1.2.840.10046.3.5", "MQV2"},
+ {"1.2.840.10046.3.6", "MQV1"},
+ {"1.2.840.10065.2.2", "?"},
+ {"1.2.840.10065.2.3", "HEALTHCARE_LICENSE"},
+ {"1.2.840.10065.2.3.1.1", "LICENSE?"},
+ {"1.2.840.10070.", "IEC62351"},
+ {"1.2.840.10070.8", "IEC62351_8"},
+ {"1.2.840.10070.8.1", "IEC_USER_ROLES"},
+ {"1.2.840.113533.7", "NSN"},
+ {"1.2.840.113533.7.65", "NSN_CE"},
+ {"1.2.840.113533.7.65.0", "ENTRUST_VERS_INFO"},
+ {"1.2.840.113533.7.66", "NSN_ALG"},
+ {"1.2.840.113533.7.66.3", "CAST3_CBC"},
+ {"1.2.840.113533.7.66.10", "CAST5_CBC"},
+ {"1.2.840.113533.7.66.11", "CAST5_MAC"},
+ {"1.2.840.113533.7.66.12", "PBE_WITH_MD5_AND_CAST5_CBC"},
+ {"1.2.840.113533.7.66.13", "PASSWORD_BASED_MAC"},
+ {"1.2.840.113533.7.67", "NSN_OC"},
+ {"1.2.840.113533.7.67.0", "ENTRUST_USER"},
+ {"1.2.840.113533.7.68", "NSN_AT"},
+ {"1.2.840.113533.7.68.0", "ENTRUST_CA_INFO"},
+ {"1.2.840.113533.7.68.10", "ATTRIBUTE_CERTIFICATE"},
+ {"1.2.840.113549.1.1", "PKCS_1"},
+ {"1.2.840.113549.1.1.1", "RSA_ENCRYPTION"},
+ {"1.2.840.113549.1.1.2", "MD2_WITH_RSA_ENCRYPTION"},
+ {"1.2.840.113549.1.1.3", "MD4_WITH_RSA_ENCRYPTION"},
+ {"1.2.840.113549.1.1.4", "MD5_WITH_RSA_ENCRYPTION"},
+ {"1.2.840.113549.1.1.5", "SHA1_WITH_RSA_ENCRYPTION"},
+ {"1.2.840.113549.1.1.7", "RSA_OAEP"},
+ {"1.2.840.113549.1.1.8", "PKCS1_MGF"},
+ {"1.2.840.113549.1.1.9", "RSA_OAEP_P_SPECIFIED"},
+ {"1.2.840.113549.1.1.10", "RSA_PSS"},
+ {"1.2.840.113549.1.1.11", "SHA256_WITH_RSA_ENCRYPTION"},
+ {"1.2.840.113549.1.1.12", "SHA384_WITH_RSA_ENCRYPTION"},
+ {"1.2.840.113549.1.1.13", "SHA512_WITH_RSA_ENCRYPTION"},
+ {"1.2.840.113549.1.1.14", "SHA224_WITH_RSA_ENCRYPTION"},
+ {"1.2.840.113549.1.1.6", "RSA_OAEP_ENCRYPTION_SET"},
+ {"1.2.840.113549.1.2", "BSAFE_RSA_ENCR"},
+ {"1.2.840.113549.1.3", "PKCS_3"},
+ {"1.2.840.113549.1.3.1", "DH_KEY_AGREEMENT"},
+ {"1.2.840.113549.1.5", "PKCS_5"},
+ {"1.2.840.113549.1.5.1", "PBE_WITH_MD2_AND_DES_CBC"},
+ {"1.2.840.113549.1.5.3", "PBE_WITH_MD5_AND_DES_CBC"},
+ {"1.2.840.113549.1.5.4", "PBE_WITH_MD2_AND_RC2_CBC"},
+ {"1.2.840.113549.1.5.6", "PBE_WITH_MD5_AND_RC2_CBC"},
+ {"1.2.840.113549.1.5.9", "PBE_WITH_MD5_AND_XOR"},
+ {"1.2.840.113549.1.5.10", "PBE_WITH_SHA_AND_DES_CBC"},
+ {"1.2.840.113549.1.5.12", "PKCS5_PBKDF2"},
+ {"1.2.840.113549.1.5.13", "PKCS5_PBES2"},
+ {"1.2.840.113549.1.5.14", "PKCS5_PBMAC1"},
+ {"1.2.840.113549.1.7", "PKCS_7"},
+ {"1.2.840.113549.1.7.1", "DATA"},
+ {"1.2.840.113549.1.7.2", "SIGNED_DATA"},
+ {"1.2.840.113549.1.7.3", "ENVELOPED_DATA"},
+ {"1.2.840.113549.1.7.4", "SIGNED_AND_ENVELOPED_DATA"},
+ {"1.2.840.113549.1.7.5", "DIGESTED_DATA"},
+ {"1.2.840.113549.1.7.6", "ENCRYPTED_DATA"},
+ {"1.2.840.113549.1.7.7", "DATA_WITH_ATTRIBUTES"},
+ {"1.2.840.113549.1.7.8", "ENCRYPTED_PRIVATE_KEY_INFO"},
+ {"1.2.840.113549.1.9", "PKCS_9"},
+ {"1.2.840.113549.1.9.1", "EMAIL_ADDRESS"},
+ {"1.2.840.113549.1.9.2", "UNSTRUCTURED_NAME"},
+ {"1.2.840.113549.1.9.3", "CONTENT_TYPE"},
+ {"1.2.840.113549.1.9.4", "MESSAGE_DIGEST"},
+ {"1.2.840.113549.1.9.5", "SIGNING_TIME"},
+ {"1.2.840.113549.1.9.6", "COUNTER_SIGNATURE"},
+ {"1.2.840.113549.1.9.7", "CHALLENGE_PASSWORD"},
+ {"1.2.840.113549.1.9.8", "UNSTRUCTURED_ADDRESS"},
+ {"1.2.840.113549.1.9.9", "EXTENDED_CERTIFICATE_ATTRIBUTES"},
+ {"1.2.840.113549.1.9.10", "ISSUER_AND_SERIAL_NUMBER"},
+ {"1.2.840.113549.1.9.11", "PASSWORD_CHECK"},
+ {"1.2.840.113549.1.9.12", "PUBLIC_KEY"},
+ {"1.2.840.113549.1.9.13", "SIGNING_DESCRIPTION"},
+ {"1.2.840.113549.1.9.14", "EXTENSION_REQUEST"},
+ {"1.2.840.113549.1.9.15", "S_MIME_CAPABILITIES"},
+ {"1.2.840.113549.1.9.15.1", "PREFER_SIGNED_DATA"},
+ {"1.2.840.113549.1.9.15.2", "CAN_NOT_DECRYPT_ANY"},
+ {"1.2.840.113549.1.9.15.3", "RECEIPT_REQUEST"},
+ {"1.2.840.113549.1.9.15.4", "RECEIPT"},
+ {"1.2.840.113549.1.9.15.5", "CONTENT_HINTS"},
+ {"1.2.840.113549.1.9.15.6", "ML_EXPANSION_HISTORY"},
+ {"1.2.840.113549.1.9.16", "ID_S_MIME"},
+ {"1.2.840.113549.1.9.16.0", "ID_MOD"},
+ {"1.2.840.113549.1.9.16.0.1", "ID_MOD_CMS"},
+ {"1.2.840.113549.1.9.16.0.2", "ID_MOD_ESS"},
+ {"1.2.840.113549.1.9.16.0.3", "ID_MOD_OID"},
+ {"1.2.840.113549.1.9.16.0.4", "ID_MOD_MSG_V3"},
+ {"1.2.840.113549.1.9.16.0.5", "ID_MOD_ETS_E_SIGNATURE_88"},
+ {"1.2.840.113549.1.9.16.0.6", "ID_MOD_ETS_E_SIGNATURE_97"},
+ {"1.2.840.113549.1.9.16.0.7", "ID_MOD_ETS_E_SIG_POLICY_88"},
+ {"1.2.840.113549.1.9.16.0.8", "ID_MOD_ETS_E_SIG_POLICY_88"},
+ {"1.2.840.113549.1.9.16.1", "CONTENT_TYPE"},
+ {"1.2.840.113549.1.9.16.1.1", "RECEIPT"},
+ {"1.2.840.113549.1.9.16.1.2", "AUTH_DATA"},
+ {"1.2.840.113549.1.9.16.1.3", "PUBLISH_CERT"},
+ {"1.2.840.113549.1.9.16.1.4", "T_ST_INFO"},
+ {"1.2.840.113549.1.9.16.1.5", "T_DT_INFO"},
+ {"1.2.840.113549.1.9.16.1.6", "CONTENT_INFO"},
+ {"1.2.840.113549.1.9.16.1.7", "D_VCS_REQUEST_DATA"},
+ {"1.2.840.113549.1.9.16.1.8", "D_VCS_RESPONSE_DATA"},
+ {"1.2.840.113549.1.9.16.1.9", "COMPRESSED_DATA"},
+ {"1.2.840.113549.1.9.16.1.10", "SCVP_CERT_VAL_REQUEST"},
+ {"1.2.840.113549.1.9.16.1.11", "SCVP_CERT_VAL_RESPONSE"},
+ {"1.2.840.113549.1.9.16.1.12", "SCVP_VAL_POL_REQUEST"},
+ {"1.2.840.113549.1.9.16.1.13", "SCVP_VAL_POL_RESPONSE"},
+ {"1.2.840.113549.1.9.16.1.14", "ATTR_CERT_ENC_ATTRS"},
+ {"1.2.840.113549.1.9.16.1.15", "T_S_REQ"},
+ {"1.2.840.113549.1.9.16.1.16", "FIRMWARE_PACKAGE"},
+ {"1.2.840.113549.1.9.16.1.17", "FIRMWARE_LOAD_RECEIPT"},
+ {"1.2.840.113549.1.9.16.1.18", "FIRMWARE_LOAD_ERROR"},
+ {"1.2.840.113549.1.9.16.1.19", "CONTENT_COLLECTION"},
+ {"1.2.840.113549.1.9.16.1.20", "CONTENT_WITH_ATTRS"},
+ {"1.2.840.113549.1.9.16.1.21", "ENC_KEY_WITH_ID"},
+ {"1.2.840.113549.1.9.16.1.22", "ENC_PEPSI"},
+ {"1.2.840.113549.1.9.16.1.23", "AUTH_ENVELOPED_DATA"},
+ {"1.2.840.113549.1.9.16.1.24", "ROUTE_ORIGIN_ATTEST"},
+ {"1.2.840.113549.1.9.16.1.25", "SYMMETRIC_KEY_PACKAGE"},
+ {"1.2.840.113549.1.9.16.1.26", "RPKI_MANIFEST"},
+ {"1.2.840.113549.1.9.16.1.27", "ASCII_TEXT_WITH_CRLF"},
+ {"1.2.840.113549.1.9.16.1.28", "XML"},
+ {"1.2.840.113549.1.9.16.1.29", "PDF"},
+ {"1.2.840.113549.1.9.16.1.30", "POSTSCRIPT"},
+ {"1.2.840.113549.1.9.16.1.31", "TIMESTAMPED_DATA"},
+ {"1.2.840.113549.1.9.16.1.32", "AS_ADJACENCY_ATTEST"},
+ {"1.2.840.113549.1.9.16.1.33", "RPKI_TRUST_ANCHOR"},
+ {"1.2.840.113549.1.9.16.1.34", "TRUST_ANCHOR_LIST"},
+ {"1.2.840.113549.1.9.16.2", "AUTHENTICATED_ATTRIBUTES"},
+ {"1.2.840.113549.1.9.16.2.1", "RECEIPT_REQUEST"},
+ {"1.2.840.113549.1.9.16.2.2", "SECURITY_LABEL"},
+ {"1.2.840.113549.1.9.16.2.3", "ML_EXPAND_HISTORY"},
+ {"1.2.840.113549.1.9.16.2.4", "CONTENT_HINT"},
+ {"1.2.840.113549.1.9.16.2.5", "MSG_SIG_DIGEST"},
+ {"1.2.840.113549.1.9.16.2.6", "ENCAP_CONTENT_TYPE"},
+ {"1.2.840.113549.1.9.16.2.7", "CONTENT_IDENTIFIER"},
+ {"1.2.840.113549.1.9.16.2.8", "MAC_VALUE"},
+ {"1.2.840.113549.1.9.16.2.9", "EQUIVALENT_LABELS"},
+ {"1.2.840.113549.1.9.16.2.10", "CONTENT_REFERENCE"},
+ {"1.2.840.113549.1.9.16.2.11", "ENCRYP_KEY_PREF"},
+ {"1.2.840.113549.1.9.16.2.12", "SIGNING_CERTIFICATE"},
+ {"1.2.840.113549.1.9.16.2.13", "SMIME_ENCRYPT_CERTS"},
+ {"1.2.840.113549.1.9.16.2.14", "TIME_STAMP_TOKEN"},
+ {"1.2.840.113549.1.9.16.2.15", "SIG_POLICY_ID"},
+ {"1.2.840.113549.1.9.16.2.16", "COMMITMENT_TYPE"},
+ {"1.2.840.113549.1.9.16.2.17", "SIGNER_LOCATION"},
+ {"1.2.840.113549.1.9.16.2.18", "SIGNER_ATTR"},
+ {"1.2.840.113549.1.9.16.2.19", "OTHER_SIG_CERT"},
+ {"1.2.840.113549.1.9.16.2.20", "CONTENT_TIMESTAMP"},
+ {"1.2.840.113549.1.9.16.2.21", "CERTIFICATE_REFS"},
+ {"1.2.840.113549.1.9.16.2.22", "REVOCATION_REFS"},
+ {"1.2.840.113549.1.9.16.2.23", "CERT_VALUES"},
+ {"1.2.840.113549.1.9.16.2.24", "REVOCATION_VALUES"},
+ {"1.2.840.113549.1.9.16.2.25", "ESC_TIME_STAMP"},
+ {"1.2.840.113549.1.9.16.2.26", "CERT_CRL_TIMESTAMP"},
+ {"1.2.840.113549.1.9.16.2.27", "ARCHIVE_TIME_STAMP"},
+ {"1.2.840.113549.1.9.16.2.28", "SIGNATURE_TYPE"},
+ {"1.2.840.113549.1.9.16.2.29", "DVCS_DVC"},
+ {"1.2.840.113549.1.9.16.2.30", "CEK_REFERENCE"},
+ {"1.2.840.113549.1.9.16.2.31", "MAX_CEK_DECRYPTS"},
+ {"1.2.840.113549.1.9.16.2.32", "KEK_DERIVATION_ALG"},
+ {"1.2.840.113549.1.9.16.2.33", "INTENDED_RECIPIENTS"},
+ {"1.2.840.113549.1.9.16.2.34", "CMC_UNSIGNED_DATA"},
+ {"1.2.840.113549.1.9.16.2.35", "FW_PACKAGE_ID"},
+ {"1.2.840.113549.1.9.16.2.36", "FW_TARGET_HARDWARE_I_DS"},
+ {"1.2.840.113549.1.9.16.2.37", "FW_DECRYPT_KEY_ID"},
+ {"1.2.840.113549.1.9.16.2.38", "FW_IMPL_CRYPT_ALGS"},
+ {"1.2.840.113549.1.9.16.2.39", "FW_WRAPPED_FIRMWARE_KEY"},
+ {"1.2.840.113549.1.9.16.2.40", "FW_COMMUNITY_IDENTIFIERS"},
+ {"1.2.840.113549.1.9.16.2.41", "FW_PKG_MESSAGE_DIGEST"},
+ {"1.2.840.113549.1.9.16.2.42", "FW_PACKAGE_INFO"},
+ {"1.2.840.113549.1.9.16.2.43", "FW_IMPL_COMPRESS_ALGS"},
+ {"1.2.840.113549.1.9.16.2.44", "ETS_ATTR_CERTIFICATE_REFS"},
+ {"1.2.840.113549.1.9.16.2.45", "ETS_ATTR_REVOCATION_REFS"},
+ {"1.2.840.113549.1.9.16.2.46", "BINARY_SIGNING_TIME"},
+ {"1.2.840.113549.1.9.16.2.47", "SIGNING_CERTIFICATE_V2"},
+ {"1.2.840.113549.1.9.16.2.48", "ETS_ARCHIVE_TIME_STAMP_V2"},
+ {"1.2.840.113549.1.9.16.2.49", "ER_INTERNAL"},
+ {"1.2.840.113549.1.9.16.2.50", "ER_EXTERNAL"},
+ {"1.2.840.113549.1.9.16.2.51", "MULTIPLE_SIGNATURES"},
+ {"1.2.840.113549.1.9.16.3.1", "ES_D_HWITH3_DES"},
+ {"1.2.840.113549.1.9.16.3.2", "ES_D_HWITH_RC2"},
+ {"1.2.840.113549.1.9.16.3.3", "3DES_WRAP"},
+ {"1.2.840.113549.1.9.16.3.4", "RC2_WRAP"},
+ {"1.2.840.113549.1.9.16.3.5", "ES_DH"},
+ {"1.2.840.113549.1.9.16.3.6", "CMS3_DE_SWRAP"},
+ {"1.2.840.113549.1.9.16.3.7", "CMS_RC2WRAP"},
+ {"1.2.840.113549.1.9.16.3.8", "ZLIB"},
+ {"1.2.840.113549.1.9.16.3.9", "PWRI_KEK"},
+ {"1.2.840.113549.1.9.16.3.10", "SS_DH"},
+ {"1.2.840.113549.1.9.16.3.11", "HMAC_WITH3_DE_SWRAP"},
+ {"1.2.840.113549.1.9.16.3.12", "HMAC_WITH_AE_SWRAP"},
+ {"1.2.840.113549.1.9.16.3.13", "MD5_XOR_EXPERIMENT"},
+ {"1.2.840.113549.1.9.16.3.14", "RSA_KEM"},
+ {"1.2.840.113549.1.9.16.3.15", "AUTH_ENC128"},
+ {"1.2.840.113549.1.9.16.3.16", "AUTH_ENC256"},
+ {"1.2.840.113549.1.9.16.4.1", "CERT_DIST_LDAP"},
+ {"1.2.840.113549.1.9.16.5.1", "SIG_POLICY_QUALIFIER_SPURI_X"},
+ {"1.2.840.113549.1.9.16.5.2", "SIG_POLICY_QUALIFIER_SP_USER_NOTICE"},
+ {"1.2.840.113549.1.9.16.6.1", "PROOF_OF_ORIGIN"},
+ {"1.2.840.113549.1.9.16.6.2", "PROOF_OF_RECEIPT"},
+ {"1.2.840.113549.1.9.16.6.3", "PROOF_OF_DELIVERY"},
+ {"1.2.840.113549.1.9.16.6.4", "PROOF_OF_SENDER"},
+ {"1.2.840.113549.1.9.16.6.5", "PROOF_OF_APPROVAL"},
+ {"1.2.840.113549.1.9.16.6.6", "PROOF_OF_CREATION"},
+ {"1.2.840.113549.1.9.16.8.1", "GL_USE_KEK"},
+ {"1.2.840.113549.1.9.16.8.2", "GL_DELETE"},
+ {"1.2.840.113549.1.9.16.8.3", "GL_ADD_MEMBER"},
+ {"1.2.840.113549.1.9.16.8.4", "GL_DELETE_MEMBER"},
+ {"1.2.840.113549.1.9.16.8.5", "GL_REKEY"},
+ {"1.2.840.113549.1.9.16.8.6", "GL_ADD_OWNER"},
+ {"1.2.840.113549.1.9.16.8.7", "GL_REMOVE_OWNER"},
+ {"1.2.840.113549.1.9.16.8.8", "GLK_COMPROMISE"},
+ {"1.2.840.113549.1.9.16.8.9", "GLK_REFRESH"},
+ {"1.2.840.113549.1.9.16.8.10", "GL_FAIL_INFO"},
+ {"1.2.840.113549.1.9.16.8.11", "GLA_QUERY_REQUEST"},
+ {"1.2.840.113549.1.9.16.8.12", "GLA_QUERY_RESPONSE"},
+ {"1.2.840.113549.1.9.16.8.13", "GL_PROVIDE_CERT"},
+ {"1.2.840.113549.1.9.16.8.14", "GL_UPDATE_CERT"},
+ {"1.2.840.113549.1.9.16.8.15", "GL_KEY"},
+ {"1.2.840.113549.1.9.16.9", "SIGNATURE_TYPE_IDENTIFIER"},
+ {"1.2.840.113549.1.9.16.9.1", "ORIGINATOR_SIG"},
+ {"1.2.840.113549.1.9.16.9.2", "DOMAIN_SIG"},
+ {"1.2.840.113549.1.9.16.9.3", "ADDITIONAL_ATTRIBUTES_SIG"},
+ {"1.2.840.113549.1.9.16.9.4", "REVIEW_SIG"},
+ {"1.2.840.113549.1.9.16.11", "CAPABILITIES"},
+ {"1.2.840.113549.1.9.16.11.1", "PREFER_BINARY_INSIDE"},
+ {"1.2.840.113549.1.9.20", "FRIENDLY_NAME_(FOR_PKCS_#12)"},
+ {"1.2.840.113549.1.9.21", "LOCAL_KEY_ID_(FOR_PKCS_#12)"},
+ {"1.2.840.113549.1.9.22", "CERT_TYPES_(FOR_PKCS_#12)"},
+ {"1.2.840.113549.1.9.22.1", "X509_CERTIFICATE_(FOR_PKCS_#12)"},
+ {"1.2.840.113549.1.9.22.2", "SDSI_CERTIFICATE_(FOR_PKCS_#12)"},
+ {"1.2.840.113549.1.9.23", "CRL_TYPES_(FOR_PKCS_#12)"},
+ {"1.2.840.113549.1.9.23.1", "X509_CRL_(FOR_PKCS_#12)"},
+ {"1.2.840.113549.1.9.24", "PKCS9OBJECT_CLASS"},
+ {"1.2.840.113549.1.9.25", "PKCS9ATTRIBUTES"},
+ {"1.2.840.113549.1.9.25.1", "PKCS15_TOKEN"},
+ {"1.2.840.113549.1.9.25.2", "ENCRYPTED_PRIVATE_KEY_INFO"},
+ {"1.2.840.113549.1.9.25.3", "RANDOM_NONCE"},
+ {"1.2.840.113549.1.9.25.4", "SEQUENCE_NUMBER"},
+ {"1.2.840.113549.1.9.25.5", "PKCS7_PDU"},
+ {"1.2.840.113549.1.9.26", "PKCS9SYNTAX"},
+ {"1.2.840.113549.1.9.27", "PKCS9MATCHING_RULES"},
+ {"1.2.840.113549.1.12", "PKCS_12"},
+ {"1.2.840.113549.1.12.1", "PKCS_12_PBE_IDS"},
+ {"1.2.840.113549.1.12.1.1", "PBE_WITH_SHA_AND128_BIT_RC4"},
+ {"1.2.840.113549.1.12.1.2", "PBE_WITH_SHA_AND40_BIT_RC4"},
+ {"1.2.840.113549.1.12.1.3", "PBE_WITH_SHA_AND3_KEY_TRIPLE_DES_CBC"},
+ {"1.2.840.113549.1.12.1.4", "PBE_WITH_SHA_AND2_KEY_TRIPLE_DES_CBC"},
+ {"1.2.840.113549.1.12.1.5", "PBE_WITH_SHA_AND128_BIT_RC2_CBC"},
+ {"1.2.840.113549.1.12.1.6", "PBE_WITH_SHA_AND40_BIT_RC2_CBC"},
+ {"1.2.840.113549.1.12.2", "PKCS_12_ESPVKID"},
+ {"1.2.840.113549.1.12.2.1", "PKCS_12_PKCS8_KEY_SHROUDING"},
+ {"1.2.840.113549.1.12.3", "PKCS_12_BAG_IDS"},
+ {"1.2.840.113549.1.12.3.1", "PKCS_12_KEY_BAG_ID"},
+ {"1.2.840.113549.1.12.3.2", "PKCS_12_CERT_AND_CRL_BAG_ID"},
+ {"1.2.840.113549.1.12.3.3", "PKCS_12_SECRET_BAG_ID"},
+ {"1.2.840.113549.1.12.3.4", "PKCS_12_SAFE_CONTENTS_ID"},
+ {"1.2.840.113549.1.12.3.5", "PKCS_12_PKCS_8_SHROUDED_KEY_BAG_ID"},
+ {"1.2.840.113549.1.12.4", "PKCS_12_CERT_BAG_ID"},
+ {"1.2.840.113549.1.12.4.1", "PKCS_12_X509_CERT_CRL_BAG_ID"},
+ {"1.2.840.113549.1.12.4.2", "PKCS_12_SDSI_CERT_BAG_ID"},
+ {"1.2.840.113549.1.12.5", "PKCS_12_OID"},
+ {"1.2.840.113549.1.12.5.1", "PKCS_12_PBEID"},
+ {"1.2.840.113549.1.12.5.1.1", "PKCS_12_PBE_WITH_SHA1_AND128_BIT_RC4"},
+ {"1.2.840.113549.1.12.5.1.2", "PKCS_12_PBE_WITH_SHA1_AND40_BIT_RC4"},
+ {"1.2.840.113549.1.12.5.1.3", "PKCS_12_PBE_WITH_SHA1_AND_TRIPLE_DESCBC"},
+ {"1.2.840.113549.1.12.5.1.4", "PKCS_12_PBE_WITH_SHA1_AND128_BIT_RC2_CBC"},
+ {"1.2.840.113549.1.12.5.1.5", "PKCS_12_PBE_WITH_SHA1_AND40_BIT_RC2_CBC"},
+ {"1.2.840.113549.1.12.5.1.6", "PKCS_12_PBE_WITH_SHA1_AND_RC4"},
+ {"1.2.840.113549.1.12.5.1.7", "PKCS_12_PBE_WITH_SHA1_AND_RC2_CBC"},
+ {"1.2.840.113549.1.12.5.2", "PKCS_12_ENVELOPING_ID"},
+ {"1.2.840.113549.1.12.5.2.1", "PKCS_12_RSA_ENCRYPTION_WITH128_BIT_RC4"},
+ {"1.2.840.113549.1.12.5.2.2", "PKCS_12_RSA_ENCRYPTION_WITH40_BIT_RC4"},
+ {"1.2.840.113549.1.12.5.2.3", "PKCS_12_RSA_ENCRYPTION_WITH_TRIPLE_DES"},
+ {"1.2.840.113549.1.12.5.3", "PKCS_12_SIGNATURE_ID"},
+ {"1.2.840.113549.1.12.5.3.1", "PKCS_12_RSA_SIGNATURE_WITH_SHA1_DIGEST"},
+ {"1.2.840.113549.1.12.10", "PKCS_12_VERSION1"},
+ {"1.2.840.113549.1.12.10.1", "PKCS_12_BAD_IDS"},
+ {"1.2.840.113549.1.12.10.1.1", "PKCS_12_KEY_BAG"},
+ {"1.2.840.113549.1.12.10.1.2", "PKCS_12_PKCS_8_SHROUDED_KEY_BAG"},
+ {"1.2.840.113549.1.12.10.1.3", "PKCS_12_CERT_BAG"},
+ {"1.2.840.113549.1.12.10.1.4", "PKCS_12_CRL_BAG"},
+ {"1.2.840.113549.1.12.10.1.5", "PKCS_12_SECRET_BAG"},
+ {"1.2.840.113549.1.12.10.1.6", "PKCS_12_SAFE_CONTENTS_BAG"},
+ {"1.2.840.113549.1.15.1", "PKCS15MODULES"},
+ {"1.2.840.113549.1.15.2", "PKCS15ATTRIBUTES"},
+ {"1.2.840.113549.1.15.3", "PKCS15CONTENT_TYPE"},
+ {"1.2.840.113549.1.15.3.1", "PKCS15CONTENT"},
+ {"1.2.840.113549.2", "DIGEST_ALGORITHM"},
+ {"1.2.840.113549.2.2", "MD2"},
+ {"1.2.840.113549.2.4", "MD4"},
+ {"1.2.840.113549.2.5", "MD5"},
+ {"1.2.840.113549.2.7", "HMAC_WITH_SHA1"},
+ {"1.2.840.113549.2.8", "HMAC_WITH_SHA224"},
+ {"1.2.840.113549.2.9", "HMAC_WITH_SHA256"},
+ {"1.2.840.113549.2.10", "HMAC_WITH_SHA384"},
+ {"1.2.840.113549.2.11", "HMAC_WITH_SHA512"},
+ {"1.2.840.113549.3", "ENCRYPTION_ALGORITHM"},
+ {"1.2.840.113549.3.2", "RC2_CBC"},
+ {"1.2.840.113549.3.3", "RC2_ECB"},
+ {"1.2.840.113549.3.4", "RC4"},
+ {"1.2.840.113549.3.5", "RC4_WITH_MAC"},
+ {"1.2.840.113549.3.6", "DESX_CBC"},
+ {"1.2.840.113549.3.7", "DES_EDE3_CBC"},
+ {"1.2.840.113549.3.8", "RC5_CBC"},
+ {"1.2.840.113549.3.9", "RC5_CBC_PAD"},
+ {"1.2.840.113549.3.10", "DES_CDMF"},
+ {"1.2.840.114021.1.6.1", "IDENTRUS_UNKNOWN_POLICY_IDENTIFIER"},
+ {"1.2.840.114021.4.1", "IDENTRUS_OCSP"},
+ {"1.2.840.113556.1.2.241", "DELIVERY_MECHANISM"},
+ {"1.2.840.113556.1.2.281", "NT_SECURITY_DESCRIPTOR"},
+ {"1.2.840.113556.1.3.0", "SITE_ADDRESSING"},
+ {"1.2.840.113556.1.3.13", "CLASS_SCHEMA"},
+ {"1.2.840.113556.1.3.14", "ATTRIBUTE_SCHEMA"},
+ {"1.2.840.113556.1.3.17", "MAILBOX_AGENT"},
+ {"1.2.840.113556.1.3.22", "MAILBOX"},
+ {"1.2.840.113556.1.3.23", "CONTAINER"},
+ {"1.2.840.113556.1.3.46", "MAIL_RECIPIENT"},
+ {"1.2.840.113556.1.4.145", "REVISION"},
+ {"1.2.840.113556.1.4.1327", "P_KI_DEFAULT_KEY_SPEC"},
+ {"1.2.840.113556.1.4.1328", "P_KI_KEY_USAGE"},
+ {"1.2.840.113556.1.4.1329", "P_KI_MAX_ISSUING_DEPTH"},
+ {"1.2.840.113556.1.4.1330", "P_KI_CRITICAL_EXTENSIONS"},
+ {"1.2.840.113556.1.4.1331", "P_KI_EXPIRATION_PERIOD"},
+ {"1.2.840.113556.1.4.1332", "P_KI_OVERLAP_PERIOD"},
+ {"1.2.840.113556.1.4.1333", "P_KI_EXTENDED_KEY_USAGE"},
+ {"1.2.840.113556.1.4.1334", "P_KI_DEFAULT_CS_PS"},
+ {"1.2.840.113556.1.4.1335", "P_KI_ENROLLMENT_ACCESS"},
+ {"1.2.840.113556.1.4.1429", "MS_PKI_RA_SIGNATURE"},
+ {"1.2.840.113556.1.4.1430", "MS_PKI_ENROLLMENT_FLAG"},
+ {"1.2.840.113556.1.4.1431", "MS_PKI_PRIVATE_KEY_FLAG"},
+ {"1.2.840.113556.1.4.1432", "MS_PKI_CERTIFICATE_NAME_FLAG"},
+ {"1.2.840.113556.1.4.1433", "MS_PKI_MINIMAL_KEY_SIZE"},
+ {"1.2.840.113556.1.4.1434", "MS_PKI_TEMPLATE_SCHEMA_VERSION"},
+ {"1.2.840.113556.1.4.1435", "MS_PKI_TEMPLATE_MINOR_REVISION"},
+ {"1.2.840.113556.1.4.1436", "MS_PKI_CERT_TEMPLATE_OID"},
+ {"1.2.840.113556.1.4.1437", "MS_PKI_SUPERSEDE_TEMPLATES"},
+ {"1.2.840.113556.1.4.1438", "MS_PKI_RA_POLICIES"},
+ {"1.2.840.113556.1.4.1439", "MS_PKI_CERTIFICATE_POLICY"},
+ {"1.2.840.113556.1.4.1674", "MS_PKI_CERTIFICATE_APPLICATION_POLICY"},
+ {"1.2.840.113556.1.4.1675", "MS_PKI_RA_APPLICATION_POLICIES"},
+ {"1.2.840.113556.4.3", "MICROSOFT_EXCEL"},
+ {"1.2.840.113556.4.4", "TITLED_WITH_OID"},
+ {"1.2.840.113556.4.5", "MICROSOFT_POWER_POINT"},
+ {"1.2.840.113583.1", "ADOBE_ACROBAT"},
+ {"1.2.840.113583.1.1", "ACROBAT_SECURITY"},
+ {"1.2.840.113583.1.1.1", "PDF_PASSWORD"},
+ {"1.2.840.113583.1.1.2", "PDF_DEFAULT_SIGNING_CREDENTIAL"},
+ {"1.2.840.113583.1.1.3", "PDF_DEFAULT_ENCRYPTION_CREDENTIAL"},
+ {"1.2.840.113583.1.1.4", "PDF_PASSWORD_TIMEOUT"},
+ {"1.2.840.113583.1.1.5", "PDF_AUTHENTIC_DOCUMENTS_TRUST"},
+ {"1.2.840.113583.1.1.6", "PDF_DYNAMIC_CONTENT_TRUST"},
+ {"1.2.840.113583.1.1.7", "PDF_UBIQUITY_TRUST"},
+ {"1.2.840.113583.1.1.8", "PDF_REVOCATION_INFO_ARCHIVAL"},
+ {"1.2.840.113583.1.1.9", "PDF_X509_EXTENSION"},
+ {"1.2.840.113583.1.1.9.1", "PDF_TIME_STAMP"},
+ {"1.2.840.113583.1.1.9.2", "PDF_ARCHIVE_REV_INFO"},
+ {"1.2.840.113583.1.1.10", "PDF_PPLK_LITE_CREDENTIAL"},
+ {"1.2.840.113583.1.2.", "ACROBAT_CPS"},
+ {"1.2.840.113583.1.2.1", "PDF_AUTHENTIC_DOCUMENTS_CPS"},
+ {"1.2.840.113583.1.2.2", "PDF_TEST_CPS"},
+ {"1.2.840.113583.1.2.3", "PDF_UBIQUITY_CPS"},
+ {"1.2.840.113583.1.2.4", "PDF_ADHOC_CPS"},
+ {"1.2.840.113583.1.7", "ACROBAT_UBIQUITY"},
+ {"1.2.840.113583.1.7.1", "PDF_UBIQUITY_SUB_RIGHTS"},
+ {"1.2.840.113583.1.9", "ACROBAT_EXTENSION"},
+ {"1.2.840.113628.114.1.7", "ADOBE_PKCS7"},
+ {"1.2.840.113635.100", "APPLE_DATA_SECURITY"},
+ {"1.2.840.113635.100.1", "APPLE_TRUST_POLICY"},
+ {"1.2.840.113635.100.1.1", "APPLE_I_SIGN_TP"},
+ {"1.2.840.113635.100.1.2", "APPLE_X509_BASIC"},
+ {"1.2.840.113635.100.1.3", "APPLE_SSL_POLICY"},
+ {"1.2.840.113635.100.1.4", "APPLE_LOCAL_CERT_GEN_POLICY"},
+ {"1.2.840.113635.100.1.5", "APPLE_CSR_GEN_POLICY"},
+ {"1.2.840.113635.100.1.6", "APPLE_CRL_POLICY"},
+ {"1.2.840.113635.100.1.7", "APPLE_OCSP_POLICY"},
+ {"1.2.840.113635.100.1.8", "APPLE_SMIME_POLICY"},
+ {"1.2.840.113635.100.1.9", "APPLE_EAP_POLICY"},
+ {"1.2.840.113635.100.1.10", "APPLE_SW_UPDATE_SIGNING_POLICY"},
+ {"1.2.840.113635.100.1.11", "APPLE_IP_SEC_POLICY"},
+ {"1.2.840.113635.100.1.12", "APPLE_I_CHAT_POLICY"},
+ {"1.2.840.113635.100.1.13", "APPLE_RESOURCE_SIGN_POLICY"},
+ {"1.2.840.113635.100.1.14", "APPLE_PKINIT_CLIENT_POLICY"},
+ {"1.2.840.113635.100.1.15", "APPLE_PKINIT_SERVER_POLICY"},
+ {"1.2.840.113635.100.1.16", "APPLE_CODE_SIGNING_POLICY"},
+ {"1.2.840.113635.100.1.17", "APPLE_PACKAGE_SIGNING_POLICY"},
+ {"1.2.840.113635.100.2", "APPLE_SECURITY_ALGORITHM"},
+ {"1.2.840.113635.100.2.1", "APPLE_FEE"},
+ {"1.2.840.113635.100.2.2", "APPLE_ASC"},
+ {"1.2.840.113635.100.2.3", "APPLE_FEE_MD5"},
+ {"1.2.840.113635.100.2.4", "APPLE_FEE_SHA1"},
+ {"1.2.840.113635.100.2.5", "APPLE_FEED"},
+ {"1.2.840.113635.100.2.6", "APPLE_FEEDEXP"},
+ {"1.2.840.113635.100.2.7", "APPLE_ECDSA"},
+ {"1.2.840.113635.100.3", "APPLE_DOT_MAC_CERTIFICATE"},
+ {"1.2.840.113635.100.3.1", "APPLE_DOT_MAC_CERTIFICATE_REQUEST"},
+ {"1.2.840.113635.100.3.2", "APPLE_DOT_MAC_CERTIFICATE_EXTENSION"},
+ {"1.2.840.113635.100.3.3", "APPLE_DOT_MAC_CERTIFICATE_REQUEST_VALUES"},
+ {"1.2.840.113635.100.4", "APPLE_EXTENDED_KEY_USAGE"},
+ {"1.2.840.113635.100.4.1", "APPLE_CODE_SIGNING"},
+ {"1.2.840.113635.100.4.1.1", "APPLE_CODE_SIGNING_DEVELOPMENT"},
+ {"1.2.840.113635.100.4.1.2", "APPLE_SOFTWARE_UPDATE_SIGNING"},
+ {"1.2.840.113635.100.4.1.3", "APPLE_CODE_SIGNING_THIRD_PARTY"},
+ {"1.2.840.113635.100.4.1.4", "APPLE_RESOURCE_SIGNING"},
+ {"1.2.840.113635.100.4.2", "APPLE_I_CHAT_SIGNING"},
+ {"1.2.840.113635.100.4.3", "APPLE_I_CHAT_ENCRYPTION"},
+ {"1.2.840.113635.100.4.4", "APPLE_SYSTEM_IDENTITY"},
+ {"1.2.840.113635.100.4.5", "APPLE_CRYPTO_ENV"},
+ {"1.2.840.113635.100.4.5.1", "APPLE_CRYPTO_PRODUCTION_ENV"},
+ {"1.2.840.113635.100.4.5.2", "APPLE_CRYPTO_MAINTENANCE_ENV"},
+ {"1.2.840.113635.100.4.5.3", "APPLE_CRYPTO_TEST_ENV"},
+ {"1.2.840.113635.100.4.5.4", "APPLE_CRYPTO_DEVELOPMENT_ENV"},
+ {"1.2.840.113635.100.4.6", "APPLE_CRYPTO_QO_S"},
+ {"1.2.840.113635.100.4.6.1", "APPLE_CRYPTO_TIER0_QO_S"},
+ {"1.2.840.113635.100.4.6.2", "APPLE_CRYPTO_TIER1_QO_S"},
+ {"1.2.840.113635.100.4.6.3", "APPLE_CRYPTO_TIER2_QO_S"},
+ {"1.2.840.113635.100.4.6.4", "APPLE_CRYPTO_TIER3_QO_S"},
+ {"1.2.840.113635.100.5", "APPLE_CERTIFICATE_POLICIES"},
+ {"1.2.840.113635.100.5.1", "APPLE_CERTIFICATE_POLICY_ID"},
+ {"1.2.840.113635.100.5.2", "APPLE_DOT_MAC_CERTIFICATE_POLICY_ID"},
+ {"1.2.840.113635.100.5.3", "APPLE_ADC_CERTIFICATE_POLICY_ID"},
+ {"1.2.840.113635.100.6", "APPLE_CERTIFICATE_EXTENSIONS"},
+ {"1.2.840.113635.100.6.1", "APPLE_CERTIFICATE_EXTENSION_CODE_SIGNING"},
+ {"1.2.840.113635.100.6.1.1", "APPLE_CERTIFICATE_EXTENSION_APPLE_SIGNING"},
+ {"1.2.840.113635.100.6.1.2",
+ "APPLE_CERTIFICATE_EXTENSION_ADC_DEVELOPER_SIGNING"},
+ {"1.2.840.113635.100.6.1.3",
+ "APPLE_CERTIFICATE_EXTENSION_ADC_APPLE_SIGNING"},
+ {"1.3.6.1.4.1.311.2.1.4", "SPC_INDIRECT_DATA_CONTENT"},
+ {"1.3.6.1.4.1.311.2.1.10", "SPC_AGENCY_INFO"},
+ {"1.3.6.1.4.1.311.2.1.11", "SPC_STATEMENT_TYPE"},
+ {"1.3.6.1.4.1.311.2.1.12", "SPC_SP_OPUS_INFO"},
+ {"1.3.6.1.4.1.311.2.1.14", "CERT_REQ_EXTENSIONS"},
+ {"1.3.6.1.4.1.311.2.1.15", "SPC_PE_IMAGE_DATA"},
+ {"1.3.6.1.4.1.311.2.1.18", "SPC_RAW_FILE_DATA"},
+ {"1.3.6.1.4.1.311.2.1.19", "SPC_STRUCTURED_STORAGE_DATA"},
+ {"1.3.6.1.4.1.311.2.1.20", "SPC_JAVA_CLASS_DATA_(TYPE_1)"},
+ {"1.3.6.1.4.1.311.2.1.21", "INDIVIDUAL_CODE_SIGNING"},
+ {"1.3.6.1.4.1.311.2.1.22", "COMMERCIAL_CODE_SIGNING"},
+ {"1.3.6.1.4.1.311.2.1.25", "SPC_LINK_(TYPE_2)"},
+ {"1.3.6.1.4.1.311.2.1.26", "SPC_MINIMAL_CRITERIA_INFO"},
+ {"1.3.6.1.4.1.311.2.1.27", "SPC_FINANCIAL_CRITERIA_INFO"},
+ {"1.3.6.1.4.1.311.2.1.28", "SPC_LINK_(TYPE_3)"},
+ {"1.3.6.1.4.1.311.2.1.29", "SPC_HASH_INFO_OBJ_ID"},
+ {"1.3.6.1.4.1.311.2.1.30", "SPC_SIP_INFO_OBJ_ID"},
+ {"1.3.6.1.4.1.311.2.2", "CTL"},
+ {"1.3.6.1.4.1.311.2.2.1", "CTL_TRUSTED_CODESIGNING_CA_LIST"},
+ {"1.3.6.1.4.1.311.2.2.2", "CTL_TRUSTED_CLIENT_AUTH_CA_LIST"},
+ {"1.3.6.1.4.1.311.2.2.3", "CTL_TRUSTED_SERVER_AUTH_CA_LIST"},
+ {"1.3.6.1.4.1.311.2.4.1", "SPC_NESTED_SIGNATURES"},
+ {"1.3.6.1.4.1.311.3.2.1", "TIMESTAMP_REQUEST"},
+ {"1.3.6.1.4.1.311.10.1", "CERT_TRUST_LIST"},
+ {"1.3.6.1.4.1.311.10.1.1", "SORTED_CTL"},
+ {"1.3.6.1.4.1.311.10.2", "NEXT_UPDATE_LOCATION"},
+ {"1.3.6.1.4.1.311.10.3.1", "CERT_TRUST_LIST_SIGNING"},
+ {"1.3.6.1.4.1.311.10.3.2", "TIME_STAMP_SIGNING"},
+ {"1.3.6.1.4.1.311.10.3.3", "SERVER_GATED_CRYPTO"},
+ {"1.3.6.1.4.1.311.10.3.3.1", "SERIALIZED"},
+ {"1.3.6.1.4.1.311.10.3.4", "ENCRYPTED_FILE_SYSTEM"},
+ {"1.3.6.1.4.1.311.10.3.5", "WHQL_CRYPTO"},
+ {"1.3.6.1.4.1.311.10.3.6", "NT5_CRYPTO"},
+ {"1.3.6.1.4.1.311.10.3.7", "OEM_WHQL_CRYPTO"},
+ {"1.3.6.1.4.1.311.10.3.8", "EMBEDDED_NT_CRYPTO"},
+ {"1.3.6.1.4.1.311.10.3.9", "ROOT_LIST_SIGNER"},
+ {"1.3.6.1.4.1.311.10.3.10", "QUALIFIED_SUBORDINATION"},
+ {"1.3.6.1.4.1.311.10.3.11", "KEY_RECOVERY"},
+ {"1.3.6.1.4.1.311.10.3.12", "DOCUMENT_SIGNING"},
+ {"1.3.6.1.4.1.311.10.3.13", "LIFETIME_SIGNING"},
+ {"1.3.6.1.4.1.311.10.3.14", "MOBILE_DEVICE_SOFTWARE"},
+ {"1.3.6.1.4.1.311.10.3.15", "SMART_DISPLAY"},
+ {"1.3.6.1.4.1.311.10.3.16", "CSP_SIGNATURE"},
+ {"1.3.6.1.4.1.311.10.3.4.1", "EFS_RECOVERY"},
+ {"1.3.6.1.4.1.311.10.4.1", "YESNO_TRUST_ATTR"},
+ {"1.3.6.1.4.1.311.10.5.1", "DRM"},
+ {"1.3.6.1.4.1.311.10.5.2", "DRM_INDIVIDUALIZATION"},
+ {"1.3.6.1.4.1.311.10.6.1", "LICENSES"},
+ {"1.3.6.1.4.1.311.10.6.2", "LICENSE_SERVER"},
+ {"1.3.6.1.4.1.311.10.7.1", "KEYID_RDN"},
+ {"1.3.6.1.4.1.311.10.8.1", "REMOVE_CERTIFICATE"},
+ {"1.3.6.1.4.1.311.10.9.1", "CROSS_CERT_DIST_POINTS"},
+ {"1.3.6.1.4.1.311.10.10.1", "CMC_ADD_ATTRIBUTES"},
+ {"1.3.6.1.4.1.311.10.11", "CERT_PROP_ID_PREFIX"},
+ {"1.3.6.1.4.1.311.10.11.4", "CERT_MD5_HASH_PROP_ID"},
+ {"1.3.6.1.4.1.311.10.11.20", "CERT_KEY_IDENTIFIER_PROP_ID"},
+ {"1.3.6.1.4.1.311.10.11.28", "CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID"},
+ {"1.3.6.1.4.1.311.10.11.29", "CERT_SUBJECT_NAME_MD5_HASH_PROP_ID"},
+ {"1.3.6.1.4.1.311.10.12.1", "ANY_APPLICATION_POLICY"},
+ {"1.3.6.1.4.1.311.12", "CATALOG"},
+ {"1.3.6.1.4.1.311.12.1.1", "CATALOG_LIST"},
+ {"1.3.6.1.4.1.311.12.1.2", "CATALOG_LIST_MEMBER"},
+ {"1.3.6.1.4.1.311.12.2.1", "CATALOG_NAME_VALUE_OBJ_ID"},
+ {"1.3.6.1.4.1.311.12.2.2", "CATALOG_MEMBER_INFO_OBJ_ID"},
+ {"1.3.6.1.4.1.311.13.1", "RENEWAL_CERTIFICATE"},
+ {"1.3.6.1.4.1.311.13.2.1", "ENROLMENT_NAME_VALUE_PAIR"},
+ {"1.3.6.1.4.1.311.13.2.2", "ENROLMENT_CSP"},
+ {"1.3.6.1.4.1.311.13.2.3", "OS_VERSION"},
+ {"1.3.6.1.4.1.311.16.4", "MICROSOFT_RECIPIENT_INFO"},
+ {"1.3.6.1.4.1.311.17.1", "PKCS12_KEY_PROVIDER_NAME_ATTR"},
+ {"1.3.6.1.4.1.311.17.2", "LOCAL_MACHINE_KEYSET"},
+ {"1.3.6.1.4.1.311.17.3", "PKCS12_EXTENDED_ATTRIBUTES"},
+ {"1.3.6.1.4.1.311.20.1", "AUTO_ENROLL_CTL_USAGE"},
+ {"1.3.6.1.4.1.311.20.2", "ENROLL_CERTTYPE_EXTENSION"},
+ {"1.3.6.1.4.1.311.20.2.1", "ENROLLMENT_AGENT"},
+ {"1.3.6.1.4.1.311.20.2.2", "SMARTCARD_LOGON"},
+ {"1.3.6.1.4.1.311.20.2.3", "UNIVERSAL_PRINCIPAL_NAME"},
+ {"1.3.6.1.4.1.311.20.3", "CERT_MANIFOLD"},
+ {"1.3.6.1.4.1.311.21.1", "C_A_KEY_CERT_INDEX_PAIR"},
+ {"1.3.6.1.4.1.311.21.2", "CERT_SRV_PREVIOUS_CERT_HASH"},
+ {"1.3.6.1.4.1.311.21.3", "CRL_VIRTUAL_BASE"},
+ {"1.3.6.1.4.1.311.21.4", "CRL_NEXT_PUBLISH"},
+ {"1.3.6.1.4.1.311.21.5", "CA_EXCHANGE"},
+ {"1.3.6.1.4.1.311.21.6", "KEY_RECOVERY"},
+ {"1.3.6.1.4.1.311.21.7", "CERTIFICATE_TEMPLATE"},
+ {"1.3.6.1.4.1.311.21.9", "RDN_DUMMY_SIGNER"},
+ {"1.3.6.1.4.1.311.21.10", "APPLICATION_CERT_POLICIES"},
+ {"1.3.6.1.4.1.311.21.11", "APPLICATION_POLICY_MAPPINGS"},
+ {"1.3.6.1.4.1.311.21.12", "APPLICATION_POLICY_CONSTRAINTS"},
+ {"1.3.6.1.4.1.311.21.13", "ARCHIVED_KEY"},
+ {"1.3.6.1.4.1.311.21.14", "CRL_SELF_CDP"},
+ {"1.3.6.1.4.1.311.21.15", "REQUIRE_CERT_CHAIN_POLICY"},
+ {"1.3.6.1.4.1.311.21.16", "ARCHIVED_KEY_CERT_HASH"},
+ {"1.3.6.1.4.1.311.21.17", "ISSUED_CERT_HASH"},
+ {"1.3.6.1.4.1.311.21.19", "DS_EMAIL_REPLICATION"},
+ {"1.3.6.1.4.1.311.21.20", "REQUEST_CLIENT_INFO"},
+ {"1.3.6.1.4.1.311.21.21", "ENCRYPTED_KEY_HASH"},
+ {"1.3.6.1.4.1.311.21.22", "CERTSRV_CROSS_CA_VERSION"},
+ {"1.3.6.1.4.1.311.25.1", "NTDS_REPLICATION"},
+ {"1.3.6.1.4.1.311.31.1", "PRODUCT_UPDATE"},
+ {"1.3.6.1.4.1.311.47.1.1", "SYSTEM_HEALTH"},
+ {"1.3.6.1.4.1.311.47.1.3", "SYSTEM_HEALTH_LOOPHOLE"},
+ {"1.3.6.1.4.1.311.60.1.1", "ROOT_PROGRAM_FLAGS"},
+ {"1.3.6.1.4.1.311.61.1.1", "KERNEL_MODE_CODE_SIGNING"},
+ {"1.3.6.1.4.1.311.60.2.1.1", "JURISDICTION_OF_INCORPORATION_L"},
+ {"1.3.6.1.4.1.311.60.2.1.2", "JURISDICTION_OF_INCORPORATION_SP"},
+ {"1.3.6.1.4.1.311.60.2.1.3", "JURISDICTION_OF_INCORPORATION_C"},
+ {"1.3.6.1.4.1.311.88", "CAPI_COM"},
+ {"1.3.6.1.4.1.311.88.1", "CAPI_COM_VERSION"},
+ {"1.3.6.1.4.1.311.88.2", "CAPI_COM_ATTRIBUTE"},
+ {"1.3.6.1.4.1.311.88.2.1", "CAPI_COM_DOCUMENT_NAME"},
+ {"1.3.6.1.4.1.311.88.2.2", "CAPI_COM_DOCUMENT_DESCRIPTION"},
+ {"1.3.6.1.4.1.311.88.3", "CAPI_COM_ENCRYPTED_DATA"},
+ {"1.3.6.1.4.1.311.88.3.1", "CAPI_COM_ENCRYPTED_CONTENT"},
+ {"1.3.6.1.4.1.188.7.1.1", "ASCOM"},
+ {"1.3.6.1.4.1.188.7.1.1.1", "IDEA_ECB"},
+ {"1.3.6.1.4.1.188.7.1.1.2", "IDEA_CBC"},
+ {"1.3.6.1.4.1.188.7.1.1.3", "IDEA_CFB"},
+ {"1.3.6.1.4.1.188.7.1.1.4", "IDEA_OFB"},
+ {"1.3.6.1.4.1.2428.10.1.1", "UNINETT_POLICY_IDENTIFIER"},
+ {"1.3.6.1.4.1.2712.10", "ICE_TEL_POLICY_IDENTIFIER"},
+ {"1.3.6.1.4.1.2786.1.1.1", "ICE_TEL_ITALIAN_POLICY_IDENTIFIER"},
+ {"1.3.6.1.4.1.3029.1.1.1", "BLOWFISH_ECB"},
+ {"1.3.6.1.4.1.3029.1.1.2", "BLOWFISH_CBC"},
+ {"1.3.6.1.4.1.3029.1.1.3", "BLOWFISH_CFB"},
+ {"1.3.6.1.4.1.3029.1.1.4", "BLOWFISH_OFB"},
+ {"1.3.6.1.4.1.3029.1.2.1", "ELGAMAL"},
+ {"1.3.6.1.4.1.3029.1.2.1.1", "ELGAMAL_WITH_SHA_1"},
+ {"1.3.6.1.4.1.3029.1.2.1.2", "ELGAMAL_WITH_RIPEMD_160"},
+ {"1.3.6.1.4.1.3029.3.1.1", "CRYPTLIB_PRESENCE_CHECK"},
+ {"1.3.6.1.4.1.3029.3.1.2", "PKI_BOOT"},
+ {"1.3.6.1.4.1.3029.3.1.4", "CRL_EXT_REASON"},
+ {"1.3.6.1.4.1.3029.3.1.5", "KEY_FEATURES"},
+ {"1.3.6.1.4.1.3029.4.1", "CRYPTLIB_CONTENT"},
+ {"1.3.6.1.4.1.3029.4.1.1", "CRYPTLIB_CONFIG_DATA"},
+ {"1.3.6.1.4.1.3029.4.1.2", "CRYPTLIB_USER_INDEX"},
+ {"1.3.6.1.4.1.3029.4.1.3", "CRYPTLIB_USER_INFO"},
+ {"1.3.6.1.4.1.3029.4.1.4", "RTCS_REQUEST"},
+ {"1.3.6.1.4.1.3029.4.1.5", "RTCS_RESPONSE"},
+ {"1.3.6.1.4.1.3029.4.1.6", "RTCS_RESPONSE_EXT"},
+ {"1.3.6.1.4.1.3029.42.11172.1", "MPEG_1"},
+ {"1.3.6.1.4.1.3029.54.11940.54", "TSA_POLICY"},
+ {"1.3.6.1.4.1.3029.88.89.90.90.89", "X_YZZY_POLICY_IDENTIFIER"},
+ {"1.3.6.1.4.1.3401.8.1.1", "PGP_EXTENSION"},
+ {"1.3.6.1.4.1.3576.7", "ECIA_ASC_X12_EDI"},
+ {"1.3.6.1.4.1.3576.7.1", "PLAIN_ED_IMESSAGE"},
+ {"1.3.6.1.4.1.3576.7.2", "SIGNED_ED_IMESSAGE"},
+ {"1.3.6.1.4.1.3576.7.5", "INTEGRITY_ED_IMESSAGE"},
+ {"1.3.6.1.4.1.3576.7.65", "IA_RECEIPT_MESSAGE"},
+ {"1.3.6.1.4.1.3576.7.97", "IA_STATUS_MESSAGE"},
+ {"1.3.6.1.4.1.3576.8", "ECIA_EDIFACT"},
+ {"1.3.6.1.4.1.3576.9", "ECIA_NON_EDI"},
+ {"1.3.6.1.4.1.4146", "GLOBALSIGN"},
+ {"1.3.6.1.4.1.4146.1", "GLOBALSIGN_POLICY"},
+ {"1.3.6.1.4.1.4146.1.10", "GLOBALSIGN_DV_POLICY"},
+ {"1.3.6.1.4.1.4146.1.20", "GLOBALSIGN_OV_POLICY"},
+ {"1.3.6.1.4.1.4146.1.30", "GLOBALSIGN_TSA_POLICY"},
+ {"1.3.6.1.4.1.4146.1.40", "GLOBALSIGN_CLIENT_CERT_POLICY"},
+ {"1.3.6.1.4.1.4146.1.50", "GLOBALSIGN_CODE_SIGN_POLICY"},
+ {"1.3.6.1.4.1.4146.1.60", "GLOBALSIGN_ROOT_SIGN_POLICY"},
+ {"1.3.6.1.4.1.4146.1.70", "GLOBALSIGN_TRUSTED_ROOT_POLICY"},
+ {"1.3.6.1.4.1.4146.1.80", "GLOBALSIGN_EDI_CLIENT_POLICY"},
+ {"1.3.6.1.4.1.4146.1.81", "GLOBALSIGN_EDI_SERVER_POLICY"},
+ {"1.3.6.1.4.1.4146.1.90", "GLOBALSIGN_TPM_ROOT_POLICY"},
+ {"1.3.6.1.4.1.4146.1.95", "GLOBALSIGN_OCSP_POLICY"},
+ {"1.3.6.1.4.1.5309.1", "EDEL_WEB_POLICY"},
+ {"1.3.6.1.4.1.5309.1.2", "EDEL_WEB_CUSTOMER_POLICY"},
+ {"1.3.6.1.4.1.5309.1.2.1", "EDEL_WEB_CLEPSYDRE_POLICY"},
+ {"1.3.6.1.4.1.5309.1.2.2", "EDEL_WEB_EXPERIMENTAL_TSA_POLICY"},
+ {"1.3.6.1.4.1.5309.1.2.3", "EDEL_WEB_OPEN_EVIDENCE_TSA_POLICY"},
+ {"1.3.6.1.4.1.5472", "TIMEPROOF"},
+ {"1.3.6.1.4.1.5472.1", "TSS"},
+ {"1.3.6.1.4.1.5472.1.1", "TSS80"},
+ {"1.3.6.1.4.1.5472.1.2", "TSS380"},
+ {"1.3.6.1.4.1.5472.1.3", "TSS400"},
+ {"1.3.6.1.4.1.5770.0.3", "SECONDARY_PRACTICES"},
+ {"1.3.6.1.4.1.5770.0.4", "PHYSICIAN_IDENTIFIERS"},
+ {"1.3.6.1.4.1.6449.1.2.1.3.1", "COMODO_POLICY"},
+ {"1.3.6.1.4.1.6449.1.2.2.15", "WOTRUST_POLICY"},
+ {"1.3.6.1.4.1.6449.1.3.5.2", "COMODO_CERTIFIED_DELIVERY_SERVICE"},
+ {"1.3.6.1.4.1.6449.2.1.1", "COMODO_TIMESTAMPING_POLICY"},
+ {"1.3.6.1.4.1.8301.3.5.1", "VALIDITY_MODEL_CHAIN"},
+ {"1.3.6.1.4.1.8301.3.5.2", "VALIDITY_MODEL_SHELL"},
+ {"1.3.6.1.4.1.8231.1", "ROL_UNICO_NACIONAL"},
+ {"1.3.6.1.4.1.11591", "GNU"},
+ {"1.3.6.1.4.1.11591.1", "GNU_RADIUS"},
+ {"1.3.6.1.4.1.11591.3", "GNU_RADAR"},
+ {"1.3.6.1.4.1.11591.12", "GNU_DIGEST_ALGORITHM"},
+ {"1.3.6.1.4.1.11591.12.2", "TIGER"},
+ {"1.3.6.1.4.1.11591.13", "GNU_ENCRYPTION_ALGORITHM"},
+ {"1.3.6.1.4.1.11591.13.2", "SERPENT"},
+ {"1.3.6.1.4.1.11591.13.2.1", "SERPENT128_ECB"},
+ {"1.3.6.1.4.1.11591.13.2.2", "SERPENT128_CBC"},
+ {"1.3.6.1.4.1.11591.13.2.3", "SERPENT128_OFB"},
+ {"1.3.6.1.4.1.11591.13.2.4", "SERPENT128_CFB"},
+ {"1.3.6.1.4.1.11591.13.2.21", "SERPENT192_ECB"},
+ {"1.3.6.1.4.1.11591.13.2.22", "SERPENT192_CBC"},
+ {"1.3.6.1.4.1.11591.13.2.23", "SERPENT192_OFB"},
+ {"1.3.6.1.4.1.11591.13.2.24", "SERPENT192_CFB"},
+ {"1.3.6.1.4.1.11591.13.2.41", "SERPENT256_ECB"},
+ {"1.3.6.1.4.1.11591.13.2.42", "SERPENT256_CBC"},
+ {"1.3.6.1.4.1.11591.13.2.43", "SERPENT256_OFB"},
+ {"1.3.6.1.4.1.11591.13.2.44", "SERPENT256_CFB"},
+ {"1.3.6.1.4.1.16334.509.1.1", "NORTHROP_GRUMMAN_EXT_KEY_USAGE?"},
+ {"1.3.6.1.4.1.16334.509.2.1", "NGC_CLASS1"},
+ {"1.3.6.1.4.1.16334.509.2.2", "NGC_CLASS2"},
+ {"1.3.6.1.4.1.16334.509.2.3", "NGC_CLASS3"},
+ {"1.3.6.1.4.1.23629.1.4.2.1.1", "SAFENET_USAGE_LIMIT"},
+ {"1.3.6.1.4.1.23629.1.4.2.1.2", "SAFENET_END_DATE"},
+ {"1.3.6.1.4.1.23629.1.4.2.1.3", "SAFENET_START_DATE"},
+ {"1.3.6.1.4.1.23629.1.4.2.1.4", "SAFENET_ADMIN_CERT"},
+ {"1.3.6.1.4.1.23629.1.4.2.2.1", "SAFENET_KEY_DIGEST"},
+ {"1.3.6.1.5.5.7", "PKIX"},
+ {"1.3.6.1.5.5.7.0.12", "ATTRIBUTE_CERT"},
+ {"1.3.6.1.5.5.7.1", "PRIVATE_EXTENSION"},
+ {"1.3.6.1.5.5.7.1.1", "AUTHORITY_INFO_ACCESS"},
+ {"1.3.6.1.5.5.7.1.2", "BIOMETRIC_INFO"},
+ {"1.3.6.1.5.5.7.1.3", "QC_STATEMENTS"},
+ {"1.3.6.1.5.5.7.1.4", "AC_AUDIT_IDENTITY"},
+ {"1.3.6.1.5.5.7.1.5", "AC_TARGETING"},
+ {"1.3.6.1.5.5.7.1.6", "AC_AA_CONTROLS"},
+ {"1.3.6.1.5.5.7.1.7", "IP_ADDR_BLOCKS"},
+ {"1.3.6.1.5.5.7.1.8", "AUTONOMOUS_SYS_IDS"},
+ {"1.3.6.1.5.5.7.1.9", "ROUTER_IDENTIFIER"},
+ {"1.3.6.1.5.5.7.1.10", "AC_PROXYING"},
+ {"1.3.6.1.5.5.7.1.11", "SUBJECT_INFO_ACCESS"},
+ {"1.3.6.1.5.5.7.1.12", "LOGO_TYPE"},
+ {"1.3.6.1.5.5.7.1.13", "WLAN_SSID"},
+ {"1.3.6.1.5.5.7.2", "POLICY_QUALIFIER_IDS"},
+ {"1.3.6.1.5.5.7.2.1", "CPS"},
+ {"1.3.6.1.5.5.7.2.2", "UNOTICE"},
+ {"1.3.6.1.5.5.7.2.3", "TEXT_NOTICE"},
+ {"1.3.6.1.5.5.7.3", "KEY_PURPOSE"},
+ {"1.3.6.1.5.5.7.3.1", "SERVER_AUTH"},
+ {"1.3.6.1.5.5.7.3.2", "CLIENT_AUTH"},
+ {"1.3.6.1.5.5.7.3.3", "CODE_SIGNING"},
+ {"1.3.6.1.5.5.7.3.4", "EMAIL_PROTECTION"},
+ {"1.3.6.1.5.5.7.3.5", "IPSEC_END_SYSTEM"},
+ {"1.3.6.1.5.5.7.3.6", "IPSEC_TUNNEL"},
+ {"1.3.6.1.5.5.7.3.7", "IPSEC_USER"},
+ {"1.3.6.1.5.5.7.3.8", "TIME_STAMPING"},
+ {"1.3.6.1.5.5.7.3.9", "OCSP_SIGNING"},
+ {"1.3.6.1.5.5.7.3.10", "DVCS"},
+ {"1.3.6.1.5.5.7.3.11", "SBGP_CERT_AA_SERVER_AUTH"},
+ {"1.3.6.1.5.5.7.3.13", "EAP_OVER_PPP"},
+ {"1.3.6.1.5.5.7.3.14", "EAP_OVER_LAN"},
+ {"1.3.6.1.5.5.7.4", "CMP_INFORMATION_TYPES"},
+ {"1.3.6.1.5.5.7.4.1", "CA_PROT_ENC_CERT"},
+ {"1.3.6.1.5.5.7.4.2", "SIGN_KEY_PAIR_TYPES"},
+ {"1.3.6.1.5.5.7.4.3", "ENC_KEY_PAIR_TYPES"},
+ {"1.3.6.1.5.5.7.4.4", "PREFERRED_SYMM_ALG"},
+ {"1.3.6.1.5.5.7.4.5", "CA_KEY_UPDATE_INFO"},
+ {"1.3.6.1.5.5.7.4.6", "CURRENT_CRL"},
+ {"1.3.6.1.5.5.7.4.7", "UNSUPPORTED_OI_DS"},
+ {"1.3.6.1.5.5.7.4.10", "KEY_PAIR_PARAM_REQ"},
+ {"1.3.6.1.5.5.7.4.11", "KEY_PAIR_PARAM_REP"},
+ {"1.3.6.1.5.5.7.4.12", "REV_PASSPHRASE"},
+ {"1.3.6.1.5.5.7.4.13", "IMPLICIT_CONFIRM"},
+ {"1.3.6.1.5.5.7.4.14", "CONFIRM_WAIT_TIME"},
+ {"1.3.6.1.5.5.7.4.15", "ORIG_PKI_MESSAGE"},
+ {"1.3.6.1.5.5.7.4.16", "SUPP_LANG_TAGS"},
+ {"1.3.6.1.5.5.7.5", "CRMF_REGISTRATION"},
+ {"1.3.6.1.5.5.7.5.1", "REG_CTRL"},
+ {"1.3.6.1.5.5.7.5.1.1", "REG_TOKEN"},
+ {"1.3.6.1.5.5.7.5.1.2", "AUTHENTICATOR"},
+ {"1.3.6.1.5.5.7.5.1.3", "PKI_PUBLICATION_INFO"},
+ {"1.3.6.1.5.5.7.5.1.4", "PKI_ARCHIVE_OPTIONS"},
+ {"1.3.6.1.5.5.7.5.1.5", "OLD_CERT_ID"},
+ {"1.3.6.1.5.5.7.5.1.6", "PROTOCOL_ENCR_KEY"},
+ {"1.3.6.1.5.5.7.5.1.7", "ALT_CERT_TEMPLATE"},
+ {"1.3.6.1.5.5.7.5.1.8", "WTLS_TEMPLATE"},
+ {"1.3.6.1.5.5.7.5.2", "UTF8_PAIRS"},
+ {"1.3.6.1.5.5.7.5.2.1", "UTF8_PAIRS"},
+ {"1.3.6.1.5.5.7.5.2.2", "CERT_REQ"},
+ {"1.3.6.1.5.5.7.6", "ALGORITHMS"},
+ {"1.3.6.1.5.5.7.6.1", "DES40"},
+ {"1.3.6.1.5.5.7.6.2", "NO_SIGNATURE"},
+ {"1.3.6.1.5.5.7.6.3", "DH_SIG_HMAC_SHA1"},
+ {"1.3.6.1.5.5.7.6.4", "DH_POP"},
+ {"1.3.6.1.5.5.7.7", "CMC_CONTROLS"},
+ {"1.3.6.1.5.5.7.8", "OTHER_NAMES"},
+ {"1.3.6.1.5.5.7.8.1", "PERSONAL_DATA"},
+ {"1.3.6.1.5.5.7.8.2", "USER_GROUP"},
+ {"1.3.6.1.5.5.7.8.5", "XMPP_ADDR"},
+ {"1.3.6.1.5.5.7.9", "PERSONAL_DATA"},
+ {"1.3.6.1.5.5.7.9.1", "DATE_OF_BIRTH"},
+ {"1.3.6.1.5.5.7.9.2", "PLACE_OF_BIRTH"},
+ {"1.3.6.1.5.5.7.9.3", "GENDER"},
+ {"1.3.6.1.5.5.7.9.4", "COUNTRY_OF_CITIZENSHIP"},
+ {"1.3.6.1.5.5.7.9.5", "COUNTRY_OF_RESIDENCE"},
+ {"1.3.6.1.5.5.7.10", "ATTRIBUTE_CERTIFICATE"},
+ {"1.3.6.1.5.5.7.10.1", "AUTHENTICATION_INFO"},
+ {"1.3.6.1.5.5.7.10.2", "ACCESS_IDENTITY"},
+ {"1.3.6.1.5.5.7.10.3", "CHARGING_IDENTITY"},
+ {"1.3.6.1.5.5.7.10.4", "GROUP"},
+ {"1.3.6.1.5.5.7.10.5", "ROLE"},
+ {"1.3.6.1.5.5.7.10.6", "WLAN_SSID"},
+ {"1.3.6.1.5.5.7.11", "PERSONAL_DATA"},
+ {"1.3.6.1.5.5.7.11.1", "PKIX_QC_SYNTAX_V1"},
+ {"1.3.6.1.5.5.7.14.2", "RESOURCE_CERTIFICATE_POLICY"},
+ {"1.3.6.1.5.5.7.20", "LOGO"},
+ {"1.3.6.1.5.5.7.20.1", "LOGO_LOYALTY"},
+ {"1.3.6.1.5.5.7.20.2", "LOGO_BACKGROUND"},
+ {"1.3.6.1.5.5.7.48.1", "OCSP"},
+ {"1.3.6.1.5.5.7.48.1.1", "OCSP_BASIC"},
+ {"1.3.6.1.5.5.7.48.1.2", "OCSP_NONCE"},
+ {"1.3.6.1.5.5.7.48.1.3", "OCSP_CRL"},
+ {"1.3.6.1.5.5.7.48.1.4", "OCSP_RESPONSE"},
+ {"1.3.6.1.5.5.7.48.1.5", "OCSP_NO_CHECK"},
+ {"1.3.6.1.5.5.7.48.1.6", "OCSP_ARCHIVE_CUTOFF"},
+ {"1.3.6.1.5.5.7.48.1.7", "OCSP_SERVICE_LOCATOR"},
+ {"1.3.6.1.5.5.7.48.2", "CA_ISSUERS"},
+ {"1.3.6.1.5.5.7.48.3", "TIME_STAMPING"},
+ {"1.3.6.1.5.5.7.48.4", "DVCS"},
+ {"1.3.6.1.5.5.7.48.5", "CA_REPOSITORY"},
+ {"1.3.6.1.5.5.7.48.7", "SIGNED_OBJECT_REPOSITORY"},
+ {"1.3.6.1.5.5.7.48.10", "RPKI_MANIFEST"},
+ {"1.3.6.1.5.5.7.48.11", "SIGNED_OBJECT"},
+ {"1.3.6.1.5.5.8.1.1", "HMAC_MD5"},
+ {"1.3.6.1.5.5.8.1.2", "HMAC_SHA"},
+ {"1.3.6.1.5.5.8.1.3", "HMAC_TIGER"},
+ {"1.3.6.1.5.5.8.2.2", "I_KE_INTERMEDIATE"},
+ {"1.3.12.2.1011.7.1", "DEC_ENCRYPTION_ALGORITHM"},
+ {"1.3.12.2.1011.7.1.2", "DEC_DEA"},
+ {"1.3.12.2.1011.7.2", "DEC_HASH_ALGORITHM"},
+ {"1.3.12.2.1011.7.2.1", "DEC_MD2"},
+ {"1.3.12.2.1011.7.2.2", "DEC_MD4"},
+ {"1.3.12.2.1011.7.3", "DEC_SIGNATURE_ALGORITHM"},
+ {"1.3.12.2.1011.7.3.1", "DEC_MD2WITH_RSA"},
+ {"1.3.12.2.1011.7.3.2", "DEC_MD4WITH_RSA"},
+ {"1.3.12.2.1011.7.3.3", "DEC_DEAMAC"},
+ {"1.3.14.2.26.5", "SHA"},
+ {"1.3.14.3.2.1.1", "RSA"},
+ {"1.3.14.3.2.2", "MD4_WIT_RSA"},
+ {"1.3.14.3.2.3", "MD5_WITH_RSA"},
+ {"1.3.14.3.2.4", "MD4_WITH_RSA_ENCRYPTION"},
+ {"1.3.14.3.2.2.1", "SQMOD_N"},
+ {"1.3.14.3.2.3.1", "SQMOD_NWITH_RSA"},
+ {"1.3.14.3.2.6", "DES_ECB"},
+ {"1.3.14.3.2.7", "DES_CBC"},
+ {"1.3.14.3.2.8", "DES_OFB"},
+ {"1.3.14.3.2.9", "DES_CFB"},
+ {"1.3.14.3.2.10", "DES_MAC"},
+ {"1.3.14.3.2.11", "RSA_SIGNATURE"},
+ {"1.3.14.3.2.12", "DSA"},
+ {"1.3.14.3.2.13", "DSA_WITH_SHA"},
+ {"1.3.14.3.2.14", "MDC2_WITH_RSA_SIGNATURE"},
+ {"1.3.14.3.2.15", "SHA_WITH_RSA_SIGNATURE"},
+ {"1.3.14.3.2.16", "DH_WITH_COMMON_MODULUS"},
+ {"1.3.14.3.2.17", "DES_EDE"},
+ {"1.3.14.3.2.18", "SHA"},
+ {"1.3.14.3.2.19", "MDC_2"},
+ {"1.3.14.3.2.20", "DSA_COMMON"},
+ {"1.3.14.3.2.21", "DSA_COMMON_WITH_SHA"},
+ {"1.3.14.3.2.22", "RSA_KEY_TRANSPORT"},
+ {"1.3.14.3.2.23", "KEYED_HASH_SEAL"},
+ {"1.3.14.3.2.24", "MD2_WITH_RSA_SIGNATURE"},
+ {"1.3.14.3.2.25", "MD5_WITH_RSA_SIGNATURE"},
+ {"1.3.14.3.2.26", "SHA1"},
+ {"1.3.14.3.2.27", "DSA_WITH_SHA1"},
+ {"1.3.14.3.2.28", "DSA_WITH_COMMON_SHA1"},
+ {"1.3.14.3.2.29", "SHA_1_WITH_RSA_ENCRYPTION"},
+ {"1.3.14.3.3.1", "SIMPLE_STRONG_AUTH_MECHANISM"},
+ {"1.3.14.7.2.1.1", "EL_GAMAL"},
+ {"1.3.14.7.2.3.1", "MD2_WITH_RSA"},
+ {"1.3.14.7.2.3.2", "MD2_WITH_EL_GAMAL"},
+ {"1.3.36.1", "DOCUMENT"},
+ {"1.3.36.1.1", "FINAL_VERSION"},
+ {"1.3.36.1.2", "DRAFT"},
+ {"1.3.36.2", "SIO"},
+ {"1.3.36.2.1", "SEDU"},
+ {"1.3.36.3", "ALGORITHM"},
+ {"1.3.36.3.1", "ENCRYPTION_ALGORITHM"},
+ {"1.3.36.3.1.1", "DES"},
+ {"1.3.36.3.1.1.1", "DES_ECB_PAD"},
+ {"1.3.36.3.1.1.1.1", "DES_ECB_IS_OPAD"},
+ {"1.3.36.3.1.1.2.1", "DES_CBC_PAD"},
+ {"1.3.36.3.1.1.2.1.1", "DES_CBC_IS_OPAD"},
+ {"1.3.36.3.1.3", "DES_3"},
+ {"1.3.36.3.1.3.1.1", "DES_3_ECB_PAD"},
+ {"1.3.36.3.1.3.1.1.1", "DES_3_ECB_IS_OPAD"},
+ {"1.3.36.3.1.3.2.1", "DES_3_CBC_PAD"},
+ {"1.3.36.3.1.3.2.1.1", "DES_3_CBC_IS_OPAD"},
+ {"1.3.36.3.1.2", "IDEA"},
+ {"1.3.36.3.1.2.1", "IDEA_ECB"},
+ {"1.3.36.3.1.2.1.1", "IDEA_ECB_PAD"},
+ {"1.3.36.3.1.2.1.1.1", "IDEA_ECB_IS_OPAD"},
+ {"1.3.36.3.1.2.2", "IDEA_CBC"},
+ {"1.3.36.3.1.2.2.1", "IDEA_CBC_PAD"},
+ {"1.3.36.3.1.2.2.1.1", "IDEA_CBC_IS_OPAD"},
+ {"1.3.36.3.1.2.3", "IDEA_OFB"},
+ {"1.3.36.3.1.2.4", "IDEA_CFB"},
+ {"1.3.36.3.1.4", "RSA_ENCRYPTION"},
+ {"1.3.36.3.1.4.512.17", "RSA_ENCRYPTION_WITHLMOD512EXPE17"},
+ {"1.3.36.3.1.5", "BSI_1"},
+ {"1.3.36.3.1.5.1", "BSI_1_ECB_PAD"},
+ {"1.3.36.3.1.5.2", "BSI_1_CBC_PAD"},
+ {"1.3.36.3.1.5.2.1", "BSI_1_CBC_PE_MPAD"},
+ {"1.3.36.3.2", "HASH_ALGORITHM"},
+ {"1.3.36.3.2.1", "RIPEMD160"},
+ {"1.3.36.3.2.2", "RIPEMD128"},
+ {"1.3.36.3.2.3", "RIPEMD256"},
+ {"1.3.36.3.2.4", "MDC2SINGLE_LENGTH"},
+ {"1.3.36.3.2.5", "MDC2DOUBLE_LENGTH"},
+ {"1.3.36.3.3", "SIGNATURE_ALGORITHM"},
+ {"1.3.36.3.3.1", "RSA_SIGNATURE"},
+ {"1.3.36.3.3.1.1", "RSA_SIGNATURE_WITHSHA1"},
+ {"1.3.36.3.3.1.1.1024.11", "RSA_SIGNATURE_WITHSHA1_L1024_L11"},
+ {"1.3.36.3.3.1.2", "RSA_SIGNATURE_WITHRIPEMD160"},
+ {"1.3.36.3.3.1.2.1024.11", "RSA_SIGNATURE_WITHRIPEMD160_L1024_L11"},
+ {"1.3.36.3.3.1.3", "RSA_SIGNATURE_WITHRIMPEMD128"},
+ {"1.3.36.3.3.1.4", "RSA_SIGNATURE_WITHRIMPEMD256"},
+ {"1.3.36.3.3.2", "ECSIE_SIGN"},
+ {"1.3.36.3.3.2.1", "ECSIE_SIGN_WITHSHA1"},
+ {"1.3.36.3.3.2.2", "ECSIE_SIGN_WITHRIPEMD160"},
+ {"1.3.36.3.3.2.3", "ECSIE_SIGN_WITHMD2"},
+ {"1.3.36.3.3.2.4", "ECSIE_SIGN_WITHMD5"},
+ {"1.3.36.3.3.2.8.1.1.1", "BRAINPOOL_P160R1"},
+ {"1.3.36.3.3.2.8.1.1.2", "BRAINPOOL_P160T1"},
+ {"1.3.36.3.3.2.8.1.1.3", "BRAINPOOL_P192R1"},
+ {"1.3.36.3.3.2.8.1.1.4", "BRAINPOOL_P192T1"},
+ {"1.3.36.3.3.2.8.1.1.5", "BRAINPOOL_P224R1"},
+ {"1.3.36.3.3.2.8.1.1.6", "BRAINPOOL_P224T1"},
+ {"1.3.36.3.3.2.8.1.1.7", "BRAINPOOL_P256R1"},
+ {"1.3.36.3.3.2.8.1.1.8", "BRAINPOOL_P256T1"},
+ {"1.3.36.3.3.2.8.1.1.9", "BRAINPOOL_P320R1"},
+ {"1.3.36.3.3.2.8.1.1.10", "BRAINPOOL_P320T1"},
+ {"1.3.36.3.3.2.8.1.1.11", "BRAINPOOL_P384R1"},
+ {"1.3.36.3.3.2.8.1.1.12", "BRAINPOOL_P384T1"},
+ {"1.3.36.3.3.2.8.1.1.13", "BRAINPOOL_P512R1"},
+ {"1.3.36.3.3.2.8.1.1.14", "BRAINPOOL_P512T1"},
+ {"1.3.36.3.4", "SIGNATURE_SCHEME"},
+ {"1.3.36.3.4.1", "SIG_S_ISO9796_1"},
+ {"1.3.36.3.4.2", "SIG_S_ISO9796_2"},
+ {"1.3.36.3.4.2.1", "SIG_S_ISO9796_2_WITHRED"},
+ {"1.3.36.3.4.2.2", "SIG_S_ISO9796_2_WITHRSA"},
+ {"1.3.36.3.4.2.3", "SIG_S_ISO9796_2_WITHRND"},
+ {"1.3.36.4", "ATTRIBUTE"},
+ {"1.3.36.5", "POLICY"},
+ {"1.3.36.6", "API"},
+ {"1.3.36.6.1", "MANUFACTURER_SPECIFIC_API"},
+ {"1.3.36.6.1.1", "UTIMACO_API"},
+ {"1.3.36.6.2", "FUNCTIONALITY_SPECIFIC_API"},
+ {"1.3.36.7", "KEYMGMNT"},
+ {"1.3.36.7.1", "KEYAGREE"},
+ {"1.3.36.7.1.1", "BSI_PKE"},
+ {"1.3.36.7.2", "KEYTRANS"},
+ {"1.3.36.7.2.1", "ENC_ISO9796_2_WITHRSA"},
+ {"1.3.36.8.1.1", "TELETRUST_SIG_G_CONFORM_POLICY_IDENTIFIER"},
+ {"1.3.36.8.2.1", "DIRECTORY_SERVICE"},
+ {"1.3.36.8.3.1", "DATE_OF_CERT_GEN"},
+ {"1.3.36.8.3.2", "PROCURATION"},
+ {"1.3.36.8.3.3", "ADMISSION"},
+ {"1.3.36.8.3.4", "MONETARY_LIMIT"},
+ {"1.3.36.8.3.5", "DECLARATION_OF_MAJORITY"},
+ {"1.3.36.8.3.6", "INTEGRATED_CIRCUIT_CARD_SERIAL_NUMBER"},
+ {"1.3.36.8.3.7", "P_K_REFERENCE"},
+ {"1.3.36.8.3.8", "RESTRICTION"},
+ {"1.3.36.8.3.9", "RETRIEVE_IF_ALLOWED"},
+ {"1.3.36.8.3.10", "REQUESTED_CERTIFICATE"},
+ {"1.3.36.8.3.11", "NAMING_AUTHORITIES"},
+ {"1.3.36.8.3.11.1", "RECHT_WIRTSCHAFT_STEUERN"},
+ {"1.3.36.8.3.11.1.1", "RECHTSANWAELTIN"},
+ {"1.3.36.8.3.11.1.2", "RECHTSANWALT"},
+ {"1.3.36.8.3.11.1.3", "RECHTS_BEISTAND"},
+ {"1.3.36.8.3.11.1.4", "STEUER_BERATERIN"},
+ {"1.3.36.8.3.11.1.5", "STEUER_BERATER"},
+ {"1.3.36.8.3.11.1.6", "STEUER_BEVOLLMAECHTIGTE"},
+ {"1.3.36.8.3.11.1.7", "STEUER_BEVOLLMAECHTIGTER"},
+ {"1.3.36.8.3.11.1.8", "NOTARIN"},
+ {"1.3.36.8.3.11.1.9", "NOTAR"},
+ {"1.3.36.8.3.11.1.10", "NOTAR_VERTRETERIN"},
+ {"1.3.36.8.3.11.1.11", "NOTAR_VERTRETER"},
+ {"1.3.36.8.3.11.1.12", "NOTARIATS_VERWALTERIN"},
+ {"1.3.36.8.3.11.1.13", "NOTARIATS_VERWALTER"},
+ {"1.3.36.8.3.11.1.14", "WIRTSCHAFTS_PRUEFERIN"},
+ {"1.3.36.8.3.11.1.15", "WIRTSCHAFTS_PRUEFER"},
+ {"1.3.36.8.3.11.1.16", "VEREIDIGTE_BUCHPRUEFERIN"},
+ {"1.3.36.8.3.11.1.17", "VEREIDIGTER_BUCHPRUEFER"},
+ {"1.3.36.8.3.11.1.18", "PATENT_ANWAELTIN"},
+ {"1.3.36.8.3.11.1.19", "PATENT_ANWALT"},
+ {"1.3.36.8.3.12", "CERT_IN_DIR_SINCE"},
+ {"1.3.36.8.3.13", "CERT_HASH"},
+ {"1.3.36.8.3.14", "NAME_AT_BIRTH"},
+ {"1.3.36.8.3.15", "ADDITIONAL_INFORMATION"},
+ {"1.3.36.8.4.1", "PERSONAL_DATA"},
+ {"1.3.36.8.4.8", "RESTRICTION"},
+ {"1.3.36.8.5.1.1.1", "RSA_INDICATE_SHA1"},
+ {"1.3.36.8.5.1.1.2", "RSA_INDICATE_RIPEMD160"},
+ {"1.3.36.8.5.1.1.3", "RSA_WITH_SHA1"},
+ {"1.3.36.8.5.1.1.4", "RSA_WITH_RIPEMD160"},
+ {"1.3.36.8.5.1.2.1", "DSA_EXTENDED"},
+ {"1.3.36.8.5.1.2.2", "DSA_WITH_RIPEMD160"},
+ {"1.3.36.8.6.1", "CERT"},
+ {"1.3.36.8.6.2", "CERT_REF"},
+ {"1.3.36.8.6.3", "ATTR_CERT"},
+ {"1.3.36.8.6.4", "ATTR_REF"},
+ {"1.3.36.8.6.5", "FILE_NAME"},
+ {"1.3.36.8.6.6", "STORAGE_TIME"},
+ {"1.3.36.8.6.7", "FILE_SIZE"},
+ {"1.3.36.8.6.8", "LOCATION"},
+ {"1.3.36.8.6.9", "SIG_NUMBER"},
+ {"1.3.36.8.6.10", "AUTO_GEN"},
+ {"1.3.36.8.7.1.1", "PT_ADOBE_ILL"},
+ {"1.3.36.8.7.1.2", "PT_AMI_PRO"},
+ {"1.3.36.8.7.1.3", "PT_AUTO_CAD"},
+ {"1.3.36.8.7.1.4", "PT_BINARY"},
+ {"1.3.36.8.7.1.5", "PT_BMP"},
+ {"1.3.36.8.7.1.6", "PT_CGM"},
+ {"1.3.36.8.7.1.7", "PT_COREL_CRT"},
+ {"1.3.36.8.7.1.8", "PT_COREL_DRW"},
+ {"1.3.36.8.7.1.9", "PT_COREL_EXC"},
+ {"1.3.36.8.7.1.10", "PT_COREL_PHT"},
+ {"1.3.36.8.7.1.11", "PT_DRAW"},
+ {"1.3.36.8.7.1.12", "PT_DVI"},
+ {"1.3.36.8.7.1.13", "PT_EPS"},
+ {"1.3.36.8.7.1.14", "PT_EXCEL"},
+ {"1.3.36.8.7.1.15", "PT_GEM"},
+ {"1.3.36.8.7.1.16", "PT_GIF"},
+ {"1.3.36.8.7.1.17", "PT_HPGL"},
+ {"1.3.36.8.7.1.18", "PT_JPEG"},
+ {"1.3.36.8.7.1.19", "PT_KODAK"},
+ {"1.3.36.8.7.1.20", "PT_LA_TE_X"},
+ {"1.3.36.8.7.1.21", "PT_LOTUS"},
+ {"1.3.36.8.7.1.22", "PT_LOTUS_PIC"},
+ {"1.3.36.8.7.1.23", "PT_MAC_PICT"},
+ {"1.3.36.8.7.1.24", "PT_MAC_WORD"},
+ {"1.3.36.8.7.1.25", "PT_MS_WF_D"},
+ {"1.3.36.8.7.1.26", "PT_MS_WORD"},
+ {"1.3.36.8.7.1.27", "PT_MS_WORD2"},
+ {"1.3.36.8.7.1.28", "PT_MS_WORD6"},
+ {"1.3.36.8.7.1.29", "PT_MS_WORD8"},
+ {"1.3.36.8.7.1.30", "PT_PDF"},
+ {"1.3.36.8.7.1.31", "PT_PIF"},
+ {"1.3.36.8.7.1.32", "PT_POSTSCRIPT"},
+ {"1.3.36.8.7.1.33", "PT_RTF"},
+ {"1.3.36.8.7.1.34", "PT_SCITEX"},
+ {"1.3.36.8.7.1.35", "PT_TAR"},
+ {"1.3.36.8.7.1.36", "PT_TARGA"},
+ {"1.3.36.8.7.1.37", "PT_TE_X"},
+ {"1.3.36.8.7.1.38", "PT_TEXT"},
+ {"1.3.36.8.7.1.39", "PT_TIFF"},
+ {"1.3.36.8.7.1.40", "PT_TIFF_FC"},
+ {"1.3.36.8.7.1.41", "PT_UID"},
+ {"1.3.36.8.7.1.42", "PT_UU_ENCODE"},
+ {"1.3.36.8.7.1.43", "PT_WMF"},
+ {"1.3.36.8.7.1.44", "PT_WORD_PERFECT"},
+ {"1.3.36.8.7.1.45", "PT_WP_GRPH"},
+ {"1.3.101.1.4", "THAWTE_CE"},
+ {"1.3.101.1.4.1", "STRONG_EXTRANET"},
+ {"1.3.132.0.1", "SECT163K1"},
+ {"1.3.132.0.2", "SECT163R1"},
+ {"1.3.132.0.3", "SECT239K1"},
+ {"1.3.132.0.4", "SECT113R1"},
+ {"1.3.132.0.5", "SECT113R2"},
+ {"1.3.132.0.6", "SECP112R1"},
+ {"1.3.132.0.7", "SECP112R2"},
+ {"1.3.132.0.8", "SECP160R1"},
+ {"1.3.132.0.9", "SECP160K1"},
+ {"1.3.132.0.10", "SECP256K1"},
+ {"1.3.132.0.15", "SECT163R2"},
+ {"1.3.132.0.16", "SECT283K1"},
+ {"1.3.132.0.17", "SECT283R1"},
+ {"1.3.132.0.22", "SECT131R1"},
+ {"1.3.132.0.23", "SECT131R2"},
+ {"1.3.132.0.24", "SECT193R1"},
+ {"1.3.132.0.25", "SECT193R2"},
+ {"1.3.132.0.26", "SECT233K1"},
+ {"1.3.132.0.27", "SECT233R1"},
+ {"1.3.132.0.28", "SECP128R1"},
+ {"1.3.132.0.29", "SECP128R2"},
+ {"1.3.132.0.30", "SECP160R2"},
+ {"1.3.132.0.31", "SECP192K1"},
+ {"1.3.132.0.32", "SECP224K1"},
+ {"1.3.132.0.33", "SECP224R1"},
+ {"1.3.132.0.34", "SECP384R1"},
+ {"1.3.132.0.35", "SECP521R1"},
+ {"1.3.132.0.36", "SECT409K1"},
+ {"1.3.132.0.37", "SECT409R1"},
+ {"1.3.132.0.38", "SECT571K1"},
+ {"1.3.132.0.39", "SECT571R1"},
+ {"1.3.133.16.840.9.84", "X984"},
+ {"1.3.133.16.840.9.84.0", "X984_MODULE"},
+ {"1.3.133.16.840.9.84.0.1", "X984_BIOMETRICS"},
+ {"1.3.133.16.840.9.84.0.2", "X984_CMS"},
+ {"1.3.133.16.840.9.84.0.3", "X984_IDENTIFIERS"},
+ {"1.3.133.16.840.9.84.1", "X984_BIOMETRIC"},
+ {"1.3.133.16.840.9.84.1.0", "BIOMETRIC_UNKNOWN_TYPE"},
+ {"1.3.133.16.840.9.84.1.1", "BIOMETRIC_BODY_ODOR"},
+ {"1.3.133.16.840.9.84.1.2", "BIOMETRIC_DNA"},
+ {"1.3.133.16.840.9.84.1.3", "BIOMETRIC_EAR_SHAPE"},
+ {"1.3.133.16.840.9.84.1.4", "BIOMETRIC_FACIAL_FEATURES"},
+ {"1.3.133.16.840.9.84.1.5", "BIOMETRIC_FINGER_IMAGE"},
+ {"1.3.133.16.840.9.84.1.6", "BIOMETRIC_FINGER_GEOMETRY"},
+ {"1.3.133.16.840.9.84.1.7", "BIOMETRIC_HAND_GEOMETRY"},
+ {"1.3.133.16.840.9.84.1.8", "BIOMETRIC_IRIS_FEATURES"},
+ {"1.3.133.16.840.9.84.1.9", "BIOMETRIC_KEYSTROKE_DYNAMICS"},
+ {"1.3.133.16.840.9.84.1.10", "BIOMETRIC_PALM"},
+ {"1.3.133.16.840.9.84.1.11", "BIOMETRIC_RETINA"},
+ {"1.3.133.16.840.9.84.1.12", "BIOMETRIC_SIGNATURE"},
+ {"1.3.133.16.840.9.84.1.13", "BIOMETRIC_SPEECH_PATTERN"},
+ {"1.3.133.16.840.9.84.1.14", "BIOMETRIC_THERMAL_IMAGE"},
+ {"1.3.133.16.840.9.84.1.15", "BIOMETRIC_VEIN_PATTERN"},
+ {"1.3.133.16.840.9.84.1.16", "BIOMETRIC_THERMAL_FACE_IMAGE"},
+ {"1.3.133.16.840.9.84.1.17", "BIOMETRIC_THERMAL_HAND_IMAGE"},
+ {"1.3.133.16.840.9.84.1.18", "BIOMETRIC_LIP_MOVEMENT"},
+ {"1.3.133.16.840.9.84.1.19", "BIOMETRIC_GAIT"},
+ {"1.3.133.16.840.9.84.3", "X984_MATCHING_METHOD"},
+ {"1.3.133.16.840.9.84.4", "X984_FORMAT_OWNER"},
+ {"1.3.133.16.840.9.84.4.0", "X984_CBEFF_OWNER"},
+ {"1.3.133.16.840.9.84.4.1", "X984_IBIA_OWNER"},
+ {"1.3.133.16.840.9.84.4.1.1", "IBIA_OWNER_SAFLINK"},
+ {"1.3.133.16.840.9.84.4.1.2", "IBIA_OWNER_BIOSCRYPT"},
+ {"1.3.133.16.840.9.84.4.1.3", "IBIA_OWNER_VISIONICS"},
+ {"1.3.133.16.840.9.84.4.1.4", "IBIA_OWNER_INFINEON_TECHNOLOGIES_AG"},
+ {"1.3.133.16.840.9.84.4.1.5", "IBIA_OWNER_IRIDIAN_TECHNOLOGIES"},
+ {"1.3.133.16.840.9.84.4.1.6", "IBIA_OWNER_VERIDICOM"},
+ {"1.3.133.16.840.9.84.4.1.7", "IBIA_OWNER_CYBER_SIGN"},
+ {"1.3.133.16.840.9.84.4.1.8", "IBIA_OWNERE_CRYP"},
+ {"1.3.133.16.840.9.84.4.1.9", "IBIA_OWNER_FINGERPRINT_CARDS_AB"},
+ {"1.3.133.16.840.9.84.4.1.10", "IBIA_OWNER_SECU_GEN"},
+ {"1.3.133.16.840.9.84.4.1.11", "IBIA_OWNER_PRECISE_BIOMETRIC"},
+ {"1.3.133.16.840.9.84.4.1.12", "IBIA_OWNER_IDENTIX"},
+ {"1.3.133.16.840.9.84.4.1.13", "IBIA_OWNER_DERMALOG"},
+ {"1.3.133.16.840.9.84.4.1.14", "IBIA_OWNER_LOGICO"},
+ {"1.3.133.16.840.9.84.4.1.15", "IBIA_OWNER_NIST"},
+ {"1.3.133.16.840.9.84.4.1.16", "IBIA_OWNER_A3_VISION"},
+ {"1.3.133.16.840.9.84.4.1.17", "IBIA_OWNER_NEC"},
+ {"1.3.133.16.840.9.84.4.1.18", "IBIA_OWNER_ST_MICROELECTRONICS"},
+ {"2.5.4.0", "OBJECT_CLASS"},
+ {"2.5.4.1", "ALIASED_ENTRY_NAME"},
+ {"2.5.4.2", "KNOWLEDGE_INFORMATION"},
+ {"2.5.4.3", "COMMON_NAME"},
+ {"2.5.4.4", "SURNAME"},
+ {"2.5.4.5", "SERIAL_NUMBER"},
+ {"2.5.4.6", "COUNTRY_NAME"},
+ {"2.5.4.7", "LOCALITY_NAME"},
+ {"2.5.4.7.1", "COLLECTIVE_LOCALITY_NAME"},
+ {"2.5.4.8", "STATE_OR_PROVINCE_NAME"},
+ {"2.5.4.8.1", "COLLECTIVE_STATE_OR_PROVINCE_NAME"},
+ {"2.5.4.9", "STREET_ADDRESS"},
+ {"2.5.4.9.1", "COLLECTIVE_STREET_ADDRESS"},
+ {"2.5.4.10", "ORGANIZATION_NAME"},
+ {"2.5.4.10.1", "COLLECTIVE_ORGANIZATION_NAME"},
+ {"2.5.4.11", "ORGANIZATIONAL_UNIT_NAME"},
+ {"2.5.4.11.1", "COLLECTIVE_ORGANIZATIONAL_UNIT_NAME"},
+ {"2.5.4.12", "TITLE"},
+ {"2.5.4.13", "DESCRIPTION"},
+ {"2.5.4.14", "SEARCH_GUIDE"},
+ {"2.5.4.15", "BUSINESS_CATEGORY"},
+ {"2.5.4.16", "POSTAL_ADDRESS"},
+ {"2.5.4.16.1", "COLLECTIVE_POSTAL_ADDRESS"},
+ {"2.5.4.17", "POSTAL_CODE"},
+ {"2.5.4.17.1", "COLLECTIVE_POSTAL_CODE"},
+ {"2.5.4.18", "POST_OFFICE_BOX"},
+ {"2.5.4.18.1", "COLLECTIVE_POST_OFFICE_BOX"},
+ {"2.5.4.19", "PHYSICAL_DELIVERY_OFFICE_NAME"},
+ {"2.5.4.19.1", "COLLECTIVE_PHYSICAL_DELIVERY_OFFICE_NAME"},
+ {"2.5.4.20", "TELEPHONE_NUMBER"},
+ {"2.5.4.20.1", "COLLECTIVE_TELEPHONE_NUMBER"},
+ {"2.5.4.21", "TELEX_NUMBER"},
+ {"2.5.4.21.1", "COLLECTIVE_TELEX_NUMBER"},
+ {"2.5.4.22", "TELETEX_TERMINAL_IDENTIFIER"},
+ {"2.5.4.22.1", "COLLECTIVE_TELETEX_TERMINAL_IDENTIFIER"},
+ {"2.5.4.23", "FACSIMILE_TELEPHONE_NUMBER"},
+ {"2.5.4.23.1", "COLLECTIVE_FACSIMILE_TELEPHONE_NUMBER"},
+ {"2.5.4.24", "X121_ADDRESS"},
+ {"2.5.4.25", "INTERNATIONAL_ISDN_NUMBER"},
+ {"2.5.4.25.1", "COLLECTIVE_INTERNATIONAL_ISDN_NUMBER"},
+ {"2.5.4.26", "REGISTERED_ADDRESS"},
+ {"2.5.4.27", "DESTINATION_INDICATOR"},
+ {"2.5.4.28", "PREFERRED_DELIVERY_MEHTOD"},
+ {"2.5.4.29", "PRESENTATION_ADDRESS"},
+ {"2.5.4.30", "SUPPORTED_APPLICATION_CONTEXT"},
+ {"2.5.4.31", "MEMBER"},
+ {"2.5.4.32", "OWNER"},
+ {"2.5.4.33", "ROLE_OCCUPANT"},
+ {"2.5.4.34", "SEE_ALSO"},
+ {"2.5.4.35", "USER_PASSWORD"},
+ {"2.5.4.36", "USER_CERTIFICATE"},
+ {"2.5.4.37", "CA_CERTIFICATE"},
+ {"2.5.4.38", "AUTHORITY_REVOCATION_LIST"},
+ {"2.5.4.39", "CERTIFICATE_REVOCATION_LIST"},
+ {"2.5.4.40", "CROSS_CERTIFICATE_PAIR"},
+ {"2.5.4.41", "NAME"},
+ {"2.5.4.42", "GIVEN_NAME"},
+ {"2.5.4.43", "INITIALS"},
+ {"2.5.4.44", "GENERATION_QUALIFIER"},
+ {"2.5.4.45", "UNIQUE_IDENTIFIER"},
+ {"2.5.4.46", "DN_QUALIFIER"},
+ {"2.5.4.47", "ENHANCED_SEARCH_GUIDE"},
+ {"2.5.4.48", "PROTOCOL_INFORMATION"},
+ {"2.5.4.49", "DISTINGUISHED_NAME"},
+ {"2.5.4.50", "UNIQUE_MEMBER"},
+ {"2.5.4.51", "HOUSE_IDENTIFIER"},
+ {"2.5.4.52", "SUPPORTED_ALGORITHMS"},
+ {"2.5.4.53", "DELTA_REVOCATION_LIST"},
+ {"2.5.4.54", "DMD_NAME"},
+ {"2.5.4.55", "CLEARANCE"},
+ {"2.5.4.56", "DEFAULT_DIR_QOP"},
+ {"2.5.4.57", "ATTRIBUTE_INTEGRITY_INFO"},
+ {"2.5.4.58", "ATTRIBUTE_CERTIFICATE"},
+ {"2.5.4.59", "ATTRIBUTE_CERTIFICATE_REVOCATION_LIST"},
+ {"2.5.4.60", "CONF_KEY_INFO"},
+ {"2.5.4.61", "A_A_CERTIFICATE"},
+ {"2.5.4.62", "ATTRIBUTE_DESCRIPTOR_CERTIFICATE"},
+ {"2.5.4.63", "ATTRIBUTE_AUTHORITY_REVOCATION_LIST"},
+ {"2.5.4.64", "FAMILY_INFORMATION"},
+ {"2.5.4.65", "PSEUDONYM"},
+ {"2.5.4.66", "COMMUNICATIONS_SERVICE"},
+ {"2.5.4.67", "COMMUNICATIONS_NETWORK"},
+ {"2.5.4.68", "CERTIFICATION_PRACTICE_STMT"},
+ {"2.5.4.69", "CERTIFICATE_POLICY"},
+ {"2.5.4.70", "PKI_PATH"},
+ {"2.5.4.71", "PRIV_POLICY"},
+ {"2.5.4.72", "ROLE"},
+ {"2.5.4.73", "DELEGATION_PATH"},
+ {"2.5.4.74", "PROT_PRIV_POLICY"},
+ {"2.5.4.75", "X_ML_PRIVILEGE_INFO"},
+ {"2.5.4.76", "XML_PRIV_POLICY"},
+ {"2.5.4.82", "PERMISSION"},
+ {"2.5.6.0", "TOP"},
+ {"2.5.6.1", "ALIAS"},
+ {"2.5.6.2", "COUNTRY"},
+ {"2.5.6.3", "LOCALITY"},
+ {"2.5.6.4", "ORGANIZATION"},
+ {"2.5.6.5", "ORGANIZATIONAL_UNIT"},
+ {"2.5.6.6", "PERSON"},
+ {"2.5.6.7", "ORGANIZATIONAL_PERSON"},
+ {"2.5.6.8", "ORGANIZATIONAL_ROLE"},
+ {"2.5.6.9", "GROUP_OF_NAMES"},
+ {"2.5.6.10", "RESIDENTIAL_PERSON"},
+ {"2.5.6.11", "APPLICATION_PROCESS"},
+ {"2.5.6.12", "APPLICATION_ENTITY"},
+ {"2.5.6.13", "D_SA"},
+ {"2.5.6.14", "DEVICE"},
+ {"2.5.6.15", "STRONG_AUTHENTICATION_USER"},
+ {"2.5.6.16", "CERTIFICATE_AUTHORITY"},
+ {"2.5.6.17", "GROUP_OF_UNIQUE_NAMES"},
+ {"2.5.6.21", "PKI_USER"},
+ {"2.5.6.22", "PKI_CA"},
+ {"2.5.8.1.1", "RSA"},
+ {"2.5.29.1", "AUTHORITY_KEY_IDENTIFIER"},
+ {"2.5.29.2", "KEY_ATTRIBUTES"},
+ {"2.5.29.3", "CERTIFICATE_POLICIES"},
+ {"2.5.29.4", "KEY_USAGE_RESTRICTION"},
+ {"2.5.29.5", "POLICY_MAPPING"},
+ {"2.5.29.6", "SUBTREES_CONSTRAINT"},
+ {"2.5.29.7", "SUBJECT_ALT_NAME"},
+ {"2.5.29.8", "ISSUER_ALT_NAME"},
+ {"2.5.29.9", "SUBJECT_DIRECTORY_ATTRIBUTES"},
+ {"2.5.29.10", "BASIC_CONSTRAINTS"},
+ {"2.5.29.11", "NAME_CONSTRAINTS"},
+ {"2.5.29.12", "POLICY_CONSTRAINTS"},
+ {"2.5.29.13", "BASIC_CONSTRAINTS"},
+ {"2.5.29.14", "SUBJECT_KEY_IDENTIFIER"},
+ {"2.5.29.15", "KEY_USAGE"},
+ {"2.5.29.16", "PRIVATE_KEY_USAGE_PERIOD"},
+ {"2.5.29.17", "SUBJECT_ALT_NAME"},
+ {"2.5.29.18", "ISSUER_ALT_NAME"},
+ {"2.5.29.19", "BASIC_CONSTRAINTS"},
+ {"2.5.29.20", "C_RL_NUMBER"},
+ {"2.5.29.21", "C_RL_REASON"},
+ {"2.5.29.22", "EXPIRATION_DATE"},
+ {"2.5.29.23", "INSTRUCTION_CODE"},
+ {"2.5.29.24", "INVALIDITY_DATE"},
+ {"2.5.29.25", "C_RL_DISTRIBUTION_POINTS"},
+ {"2.5.29.26", "ISSUING_DISTRIBUTION_POINT"},
+ {"2.5.29.27", "DELTA_CRL_INDICATOR"},
+ {"2.5.29.28", "ISSUING_DISTRIBUTION_POINT"},
+ {"2.5.29.29", "CERTIFICATE_ISSUER"},
+ {"2.5.29.30", "NAME_CONSTRAINTS"},
+ {"2.5.29.31", "C_RL_DISTRIBUTION_POINTS"},
+ {"2.5.29.32", "CERTIFICATE_POLICIES"},
+ {"2.5.29.32.0", "ANY_POLICY"},
+ {"2.5.29.33", "POLICY_MAPPINGS"},
+ {"2.5.29.34", "POLICY_CONSTRAINTS"},
+ {"2.5.29.35", "AUTHORITY_KEY_IDENTIFIER"},
+ {"2.5.29.36", "POLICY_CONSTRAINTS"},
+ {"2.5.29.37", "EXT_KEY_USAGE"},
+ {"2.5.29.37.0", "ANY_EXTENDED_KEY_USAGE"},
+ {"2.5.29.38", "AUTHORITY_ATTRIBUTE_IDENTIFIER"},
+ {"2.5.29.39", "ROLE_SPEC_CERT_IDENTIFIER"},
+ {"2.5.29.40", "C_RL_STREAM_IDENTIFIER"},
+ {"2.5.29.41", "BASIC_ATT_CONSTRAINTS"},
+ {"2.5.29.42", "DELEGATED_NAME_CONSTRAINTS"},
+ {"2.5.29.43", "TIME_SPECIFICATION"},
+ {"2.5.29.44", "C_RL_SCOPE"},
+ {"2.5.29.45", "STATUS_REFERRALS"},
+ {"2.5.29.46", "FRESHEST_CRL"},
+ {"2.5.29.47", "ORDERED_LIST"},
+ {"2.5.29.48", "ATTRIBUTE_DESCRIPTOR"},
+ {"2.5.29.49", "USER_NOTICE"},
+ {"2.5.29.50", "S_OA_IDENTIFIER"},
+ {"2.5.29.51", "BASE_UPDATE_TIME"},
+ {"2.5.29.52", "ACCEPTABLE_CERT_POLICIES"},
+ {"2.5.29.53", "DELTA_INFO"},
+ {"2.5.29.54", "INHIBIT_ANY_POLICY"},
+ {"2.5.29.55", "TARGET_INFORMATION"},
+ {"2.5.29.56", "NO_REV_AVAIL"},
+ {"2.5.29.57", "ACCEPTABLE_PRIVILEGE_POLICIES"},
+ {"2.5.29.58", "TO_BE_REVOKED"},
+ {"2.5.29.59", "REVOKED_GROUPS"},
+ {"2.5.29.60", "EXPIRED_CERTS_ON_CRL"},
+ {"2.5.29.61", "INDIRECT_ISSUER"},
+ {"2.5.29.62", "NO_ASSERTION"},
+ {"2.5.29.63", "A_AISSUING_DISTRIBUTION_POINT"},
+ {"2.5.29.64", "ISSUED_ON_BEHALF_OF"},
+ {"2.5.29.65", "SINGLE_USE"},
+ {"2.5.29.66", "GROUP_AC"},
+ {"2.5.29.67", "ALLOWED_ATT_ASS"},
+ {"2.5.29.68", "ATTRIBUTE_MAPPINGS"},
+ {"2.5.29.69", "HOLDER_NAME_CONSTRAINTS"},
+ {"2.16.724.1.2.2.4.1", "PERSONAL_DATA_INFO"},
+ {"2.16.840.1.101.2.1.1.1", "SDNS_SIGNATURE_ALGORITHM"},
+ {"2.16.840.1.101.2.1.1.2", "FORTEZZA_SIGNATURE_ALGORITHM"},
+ {"2.16.840.1.101.2.1.1.3", "SDNS_CONFIDENTIALITY_ALGORITHM"},
+ {"2.16.840.1.101.2.1.1.4", "FORTEZZA_CONFIDENTIALITY_ALGORITHM"},
+ {"2.16.840.1.101.2.1.1.5", "SDNS_INTEGRITY_ALGORITHM"},
+ {"2.16.840.1.101.2.1.1.6", "FORTEZZA_INTEGRITY_ALGORITHM"},
+ {"2.16.840.1.101.2.1.1.7", "SDNS_TOKEN_PROTECTION_ALGORITHM"},
+ {"2.16.840.1.101.2.1.1.8", "FORTEZZA_TOKEN_PROTECTION_ALGORITHM"},
+ {"2.16.840.1.101.2.1.1.9", "SDNS_KEY_MANAGEMENT_ALGORITHM"},
+ {"2.16.840.1.101.2.1.1.10", "FORTEZZA_KEY_MANAGEMENT_ALGORITHM"},
+ {"2.16.840.1.101.2.1.1.11", "SDNS_K_MAND_SIG_ALGORITHM"},
+ {"2.16.840.1.101.2.1.1.12", "FORTEZZA_K_MAND_SIG_ALGORITHM"},
+ {"2.16.840.1.101.2.1.1.13", "SUITE_A_SIGNATURE_ALGORITHM"},
+ {"2.16.840.1.101.2.1.1.14", "SUITE_A_CONFIDENTIALITY_ALGORITHM"},
+ {"2.16.840.1.101.2.1.1.15", "SUITE_A_INTEGRITY_ALGORITHM"},
+ {"2.16.840.1.101.2.1.1.16", "SUITE_A_TOKEN_PROTECTION_ALGORITHM"},
+ {"2.16.840.1.101.2.1.1.17", "SUITE_A_KEY_MANAGEMENT_ALGORITHM"},
+ {"2.16.840.1.101.2.1.1.18", "SUITE_AK_MAND_SIG_ALGORITHM"},
+ {"2.16.840.1.101.2.1.1.19", "FORTEZZA_UPDATED_SIG_ALGORITHM"},
+ {"2.16.840.1.101.2.1.1.20", "FORTEZZA_K_MAND_UPD_SIG_ALGORITHMS"},
+ {"2.16.840.1.101.2.1.1.21", "FORTEZZA_UPDATED_INTEG_ALGORITHM"},
+ {"2.16.840.1.101.2.1.1.22", "KEY_EXCHANGE_ALGORITHM"},
+ {"2.16.840.1.101.2.1.1.23", "FORTEZZA_WRAP80_ALGORITHM"},
+ {"2.16.840.1.101.2.1.1.24", "K_EA_KEY_ENCRYPTION_ALGORITHM"},
+ {"2.16.840.1.101.2.1.2.1", "RFC822_MESSAGE_FORMAT"},
+ {"2.16.840.1.101.2.1.2.2", "EMPTY_CONTENT"},
+ {"2.16.840.1.101.2.1.2.3", "CSP_CONTENT_TYPE"},
+ {"2.16.840.1.101.2.1.2.42", "MSP_REV3_CONTENT_TYPE"},
+ {"2.16.840.1.101.2.1.2.48", "MSP_CONTENT_TYPE"},
+ {"2.16.840.1.101.2.1.2.49", "MSP_REKEY_AGENT_PROTOCOL"},
+ {"2.16.840.1.101.2.1.2.50", "MSP_MMP"},
+ {"2.16.840.1.101.2.1.2.66", "MSP_REV3_1_CONTENT_TYPE"},
+ {"2.16.840.1.101.2.1.2.72", "FORWARDED_MSP_MESSAGE_BODY_PART"},
+ {"2.16.840.1.101.2.1.2.73", "MSP_FORWARDED_MESSAGE_PARAMETERS"},
+ {"2.16.840.1.101.2.1.2.74", "FORWARDED_CSP_MSG_BODY_PART"},
+ {"2.16.840.1.101.2.1.2.75", "CSP_FORWARDED_MESSAGE_PARAMETERS"},
+ {"2.16.840.1.101.2.1.2.76", "MSP_MMP2"},
+ {"2.16.840.1.101.2.1.3.1", "SDNS_SECURITY_POLICY"},
+ {"2.16.840.1.101.2.1.3.2", "SDNS_PRBAC"},
+ {"2.16.840.1.101.2.1.3.3", "MOSAIC_PRBAC"},
+ {"2.16.840.1.101.2.1.3.10", "SI_SECURITY_POLICY"},
+ {"2.16.840.1.101.2.1.3.10.0", "SI_NASP"},
+ {"2.16.840.1.101.2.1.3.10.1", "SI_ELCO"},
+ {"2.16.840.1.101.2.1.3.10.2", "SI_TK"},
+ {"2.16.840.1.101.2.1.3.10.3", "SI_DSAP"},
+ {"2.16.840.1.101.2.1.3.10.4", "SI_SSSS"},
+ {"2.16.840.1.101.2.1.3.10.5", "SI_DNASP"},
+ {"2.16.840.1.101.2.1.3.10.6", "SI_BYEMAN"},
+ {"2.16.840.1.101.2.1.3.10.7", "SI_REL_US"},
+ {"2.16.840.1.101.2.1.3.10.8", "SI_REL_AUS"},
+ {"2.16.840.1.101.2.1.3.10.9", "SI_REL_CAN"},
+ {"2.16.840.1.101.2.1.3.10.10", "SI_REL_UK"},
+ {"2.16.840.1.101.2.1.3.10.11", "SI_REL_NZ"},
+ {"2.16.840.1.101.2.1.3.10.12", "SI_GENERIC"},
+ {"2.16.840.1.101.2.1.3.11", "GENSER"},
+ {"2.16.840.1.101.2.1.3.11.0", "GENSER_NATIONS"},
+ {"2.16.840.1.101.2.1.3.11.1", "GENSER_COMSEC"},
+ {"2.16.840.1.101.2.1.3.11.2", "GENSER_ACQUISITION"},
+ {"2.16.840.1.101.2.1.3.11.3", "GENSER_SECURITY_CATEGORIES"},
+ {"2.16.840.1.101.2.1.3.11.3.0", "GENSER_TAG_SET_NAME"},
+ {"2.16.840.1.101.2.1.3.12", "DEFAULT_SECURITY_POLICY"},
+ {"2.16.840.1.101.2.1.3.13", "CAPCO_MARKINGS"},
+ {"2.16.840.1.101.2.1.3.13.0", "CAPCO_SECURITY_CATEGORIES"},
+ {"2.16.840.1.101.2.1.3.13.0.1", "CAPCO_TAG_SET_NAME1"},
+ {"2.16.840.1.101.2.1.3.13.0.2", "CAPCO_TAG_SET_NAME2"},
+ {"2.16.840.1.101.2.1.3.13.0.3", "CAPCO_TAG_SET_NAME3"},
+ {"2.16.840.1.101.2.1.3.13.0.4", "CAPCO_TAG_SET_NAME4"},
+ {"2.16.840.1.101.2.1.5.1", "SDNS_KEY_MANAGEMENT_CERTIFICATE"},
+ {"2.16.840.1.101.2.1.5.2", "SDNS_USER_SIGNATURE_CERTIFICATE"},
+ {"2.16.840.1.101.2.1.5.3", "SDNS_K_MAND_SIG_CERTIFICATE"},
+ {"2.16.840.1.101.2.1.5.4", "FORTEZZA_KEY_MANAGEMENT_CERTIFICATE"},
+ {"2.16.840.1.101.2.1.5.5", "FORTEZZA_K_MAND_SIG_CERTIFICATE"},
+ {"2.16.840.1.101.2.1.5.6", "FORTEZZA_USER_SIGNATURE_CERTIFICATE"},
+ {"2.16.840.1.101.2.1.5.7", "FORTEZZA_CA_SIGNATURE_CERTIFICATE"},
+ {"2.16.840.1.101.2.1.5.8", "SDNS_CA_SIGNATURE_CERTIFICATE"},
+ {"2.16.840.1.101.2.1.5.10", "AUXILIARY_VECTOR"},
+ {"2.16.840.1.101.2.1.5.11", "ML_RECEIPT_POLICY"},
+ {"2.16.840.1.101.2.1.5.12", "ML_MEMBERSHIP"},
+ {"2.16.840.1.101.2.1.5.13", "ML_ADMINISTRATORS"},
+ {"2.16.840.1.101.2.1.5.14", "ALID"},
+ {"2.16.840.1.101.2.1.5.20", "JAN_UK_MS"},
+ {"2.16.840.1.101.2.1.5.21", "FEB_UK_MS"},
+ {"2.16.840.1.101.2.1.5.22", "MAR_UK_MS"},
+ {"2.16.840.1.101.2.1.5.23", "APR_UK_MS"},
+ {"2.16.840.1.101.2.1.5.24", "MAY_UK_MS"},
+ {"2.16.840.1.101.2.1.5.25", "JUN_UK_MS"},
+ {"2.16.840.1.101.2.1.5.26", "JUL_UK_MS"},
+ {"2.16.840.1.101.2.1.5.27", "AUG_UK_MS"},
+ {"2.16.840.1.101.2.1.5.28", "SEP_UK_MS"},
+ {"2.16.840.1.101.2.1.5.29", "OCT_UK_MS"},
+ {"2.16.840.1.101.2.1.5.30", "NOV_UK_MS"},
+ {"2.16.840.1.101.2.1.5.31", "DEC_UK_MS"},
+ {"2.16.840.1.101.2.1.5.40", "META_SDN_SCKL"},
+ {"2.16.840.1.101.2.1.5.41", "SDNS_CKL"},
+ {"2.16.840.1.101.2.1.5.42", "META_SDN_SSIGNATURE_CKL"},
+ {"2.16.840.1.101.2.1.5.43", "SDNS_SIGNATURE_CKL"},
+ {"2.16.840.1.101.2.1.5.44", "SDNS_CERTIFICATE_REVOCATION_LIST"},
+ {"2.16.840.1.101.2.1.5.45", "FORTEZZA_CERTIFICATE_REVOCATION_LIST"},
+ {"2.16.840.1.101.2.1.5.46", "FORTEZZA_CKL"},
+ {"2.16.840.1.101.2.1.5.47", "AL_EXEMPTED_ADDRESS_PROCESSOR"},
+ {"2.16.840.1.101.2.1.5.48", "GUARD"},
+ {"2.16.840.1.101.2.1.5.49", "ALGORITHMS_SUPPORTED"},
+ {"2.16.840.1.101.2.1.5.50", "SUITE_A_KEY_MANAGEMENT_CERTIFICATE"},
+ {"2.16.840.1.101.2.1.5.51", "SUITE_AK_MAND_SIG_CERTIFICATE"},
+ {"2.16.840.1.101.2.1.5.52", "SUITE_A_USER_SIGNATURE_CERTIFICATE"},
+ {"2.16.840.1.101.2.1.5.53", "PRBAC_INFO"},
+ {"2.16.840.1.101.2.1.5.54", "PRBAC_CA_CONSTRAINTS"},
+ {"2.16.840.1.101.2.1.5.55", "SIG_OR_KM_PRIVILEGES"},
+ {"2.16.840.1.101.2.1.5.56", "COMM_PRIVILEGES"},
+ {"2.16.840.1.101.2.1.5.57", "LABELED_ATTRIBUTE"},
+ {"2.16.840.1.101.2.1.5.58", "POLICY_INFORMATION_FILE"},
+ {"2.16.840.1.101.2.1.5.59", "SEC_POLICY_INFORMATION_FILE"},
+ {"2.16.840.1.101.2.1.5.60", "C_A_CLEARANCE_CONSTRAINT"},
+ {"2.16.840.1.101.2.1.7.1", "CSP_EXTNS"},
+ {"2.16.840.1.101.2.1.7.1.0", "CSP_CS_EXTN"},
+ {"2.16.840.1.101.2.1.8.1", "M_ISSI_SECURITY_CATEGORIES"},
+ {"2.16.840.1.101.2.1.8.2", "STANDARD_SECURITY_LABEL_PRIVILEGES"},
+ {"2.16.840.1.101.2.1.10.1", "SIG_PRIVILEGES"},
+ {"2.16.840.1.101.2.1.10.2", "KM_PRIVILEGES"},
+ {"2.16.840.1.101.2.1.10.3", "NAMED_TAG_SET_PRIVILEGE"},
+ {"2.16.840.1.101.2.1.11.1", "UK_DEMO"},
+ {"2.16.840.1.101.2.1.11.2", "US_DOD_CLASS2"},
+ {"2.16.840.1.101.2.1.11.3", "US_MEDIUM_PILOT"},
+ {"2.16.840.1.101.2.1.11.4", "US_DOD_CLASS4"},
+ {"2.16.840.1.101.2.1.11.5", "US_DOD_CLASS3"},
+ {"2.16.840.1.101.2.1.11.6", "US_DOD_CLASS5"},
+ {"2.16.840.1.101.2.1.12.0", "TEST_SECURITY_POLICY"},
+ {"2.16.840.1.101.2.1.12.0.1", "TSP1"},
+ {"2.16.840.1.101.2.1.12.0.1.0", "TSP1_SECURITY_CATEGORIES"},
+ {"2.16.840.1.101.2.1.12.0.1.0.0", "TSP1_TAG_SET_ZERO"},
+ {"2.16.840.1.101.2.1.12.0.1.0.1", "TSP1_TAG_SET_ONE"},
+ {"2.16.840.1.101.2.1.12.0.1.0.2", "TSP1_TAG_SET_TWO"},
+ {"2.16.840.1.101.2.1.12.0.2", "TSP2"},
+ {"2.16.840.1.101.2.1.12.0.2.0", "TSP2_SECURITY_CATEGORIES"},
+ {"2.16.840.1.101.2.1.12.0.2.0.0", "TSP2_TAG_SET_ZERO"},
+ {"2.16.840.1.101.2.1.12.0.2.0.1", "TSP2_TAG_SET_ONE"},
+ {"2.16.840.1.101.2.1.12.0.2.0.2", "TSP2_TAG_SET_TWO"},
+ {"2.16.840.1.101.2.1.12.0.3", "KAFKA"},
+ {"2.16.840.1.101.2.1.12.0.3.0", "KAFKA_SECURITY_CATEGORIES"},
+ {"2.16.840.1.101.2.1.12.0.3.0.1", "KAFKA_TAG_SET_NAME1"},
+ {"2.16.840.1.101.2.1.12.0.3.0.2", "KAFKA_TAG_SET_NAME2"},
+ {"2.16.840.1.101.2.1.12.0.3.0.3", "KAFKA_TAG_SET_NAME3"},
+ {"2.16.840.1.101.2.1.12.1.1", "TCP1"},
+ {"2.16.840.1.101.3.1", "SLABEL"},
+ {"2.16.840.1.101.3.2", "PKI"},
+ {"2.16.840.1.101.3.2.1", "NIST_POLICY_IDENTIFIER"},
+ {"2.16.840.1.101.3.2.1.3.1", "FBCA_RUDIMENTARY_POLICY"},
+ {"2.16.840.1.101.3.2.1.3.2", "FBCA_BASIC_POLICY"},
+ {"2.16.840.1.101.3.2.1.3.3", "FBCA_MEDIUM_POLICY"},
+ {"2.16.840.1.101.3.2.1.3.4", "FBCA_HIGH_POLICY"},
+ {"2.16.840.1.101.3.2.1.48.1", "NIST_TEST_POLICY1"},
+ {"2.16.840.1.101.3.2.1.48.2", "NIST_TEST_POLICY2"},
+ {"2.16.840.1.101.3.2.1.48.3", "NIST_TEST_POLICY3"},
+ {"2.16.840.1.101.3.2.1.48.4", "NIST_TEST_POLICY4"},
+ {"2.16.840.1.101.3.2.1.48.5", "NIST_TEST_POLICY5"},
+ {"2.16.840.1.101.3.2.1.48.6", "NIST_TEST_POLICY6"},
+ {"2.16.840.1.101.3.2.2", "GAK"},
+ {"2.16.840.1.101.3.2.2.1", "K_RA_KEY"},
+ {"2.16.840.1.101.3.2.3", "EXTENSIONS"},
+ {"2.16.840.1.101.3.2.3.1", "K_R_TECHNIQUE"},
+ {"2.16.840.1.101.3.2.3.2", "K_RECOVERY_CAPABLE"},
+ {"2.16.840.1.101.3.2.3.3", "K_R"},
+ {"2.16.840.1.101.3.2.4", "KEY_RECOVERY_SCHEMES"},
+ {"2.16.840.1.101.3.2.5", "KRAPOLA"},
+ {"2.16.840.1.101.3.3", "ARPA"},
+ {"2.16.840.1.101.3.4", "NIST_ALGORITHM"},
+ {"2.16.840.1.101.3.4.1", "AES"},
+ {"2.16.840.1.101.3.4.1.1", "AES128_ECB"},
+ {"2.16.840.1.101.3.4.1.2", "AES128_CBC"},
+ {"2.16.840.1.101.3.4.1.3", "AES128_OFB"},
+ {"2.16.840.1.101.3.4.1.4", "AES128_CFB"},
+ {"2.16.840.1.101.3.4.1.5", "AES128_WRAP"},
+ {"2.16.840.1.101.3.4.1.6", "AES128_GCM"},
+ {"2.16.840.1.101.3.4.1.7", "AES128_CCM"},
+ {"2.16.840.1.101.3.4.1.8", "AES128_WRAP_PAD"},
+ {"2.16.840.1.101.3.4.1.21", "AES192_ECB"},
+ {"2.16.840.1.101.3.4.1.22", "AES192_CBC"},
+ {"2.16.840.1.101.3.4.1.23", "AES192_OFB"},
+ {"2.16.840.1.101.3.4.1.24", "AES192_CFB"},
+ {"2.16.840.1.101.3.4.1.25", "AES192_WRAP"},
+ {"2.16.840.1.101.3.4.1.26", "AES192_GCM"},
+ {"2.16.840.1.101.3.4.1.27", "AES192_CCM"},
+ {"2.16.840.1.101.3.4.1.28", "AES192_WRAP_PAD"},
+ {"2.16.840.1.101.3.4.1.41", "AES256_ECB"},
+ {"2.16.840.1.101.3.4.1.42", "AES256_CBC"},
+ {"2.16.840.1.101.3.4.1.43", "AES256_OFB"},
+ {"2.16.840.1.101.3.4.1.44", "AES256_CFB"},
+ {"2.16.840.1.101.3.4.1.45", "AES256_WRAP"},
+ {"2.16.840.1.101.3.4.1.46", "AES256_GCM"},
+ {"2.16.840.1.101.3.4.1.47", "AES256_CCM"},
+ {"2.16.840.1.101.3.4.1.48", "AES256_WRAP_PAD"},
+ {"2.16.840.1.101.3.4.2", "HASH_ALGOS"},
+ {"2.16.840.1.101.3.4.2.1", "SHA_256"},
+ {"2.16.840.1.101.3.4.2.2", "SHA_384"},
+ {"2.16.840.1.101.3.4.2.3", "SHA_512"},
+ {"2.16.840.1.101.3.4.2.4", "SHA_224"},
+ {"2.16.840.1.101.3.4.3.1", "DSA_WITH_SHA224"},
+ {"2.16.840.1.101.3.4.3.2", "DSA_WITH_SHA256"},
+ {"2.16.840.1.113719.1.2.8", "NOVELL_ALGORITHM"},
+ {"2.16.840.1.113719.1.2.8.22", "DES_CBC_IV8"},
+ {"2.16.840.1.113719.1.2.8.23", "DES_CBC_PAD_IV8"},
+ {"2.16.840.1.113719.1.2.8.24", "DES_EDE2_CBC_IV8"},
+ {"2.16.840.1.113719.1.2.8.25", "DES_EDE2_CBC_PAD_IV8"},
+ {"2.16.840.1.113719.1.2.8.26", "DES_EDE3_CBC_IV8"},
+ {"2.16.840.1.113719.1.2.8.27", "DES_EDE3_CBC_PAD_IV8"},
+ {"2.16.840.1.113719.1.2.8.28", "RC5_CBC_PAD"},
+ {"2.16.840.1.113719.1.2.8.29", "MD2_WITH_RSA_ENCRYPTION_B_SAFE1"},
+ {"2.16.840.1.113719.1.2.8.30", "MD5_WITH_RSA_ENCRYPTION_B_SAFE1"},
+ {"2.16.840.1.113719.1.2.8.31", "SHA1_WITH_RSA_ENCRYPTION_B_SAFE1"},
+ {"2.16.840.1.113719.1.2.8.32", "LM_DIGEST"},
+ {"2.16.840.1.113719.1.2.8.40", "MD2"},
+ {"2.16.840.1.113719.1.2.8.50", "MD5"},
+ {"2.16.840.1.113719.1.2.8.51", "IKE_HMAC_WITH_SHA1_RSA"},
+ {"2.16.840.1.113719.1.2.8.52", "IKE_HMAC_WITH_MD5_RSA"},
+ {"2.16.840.1.113719.1.2.8.69", "RC2_CBC_PAD"},
+ {"2.16.840.1.113719.1.2.8.82", "SHA_1"},
+ {"2.16.840.1.113719.1.2.8.92", "RC2_B_SAFE1_CBC"},
+ {"2.16.840.1.113719.1.2.8.95", "MD4"},
+ {"2.16.840.1.113719.1.2.8.130", "MD4_PACKET"},
+ {"2.16.840.1.113719.1.2.8.131", "RSA_ENCRYPTION_BSAFE1"},
+ {"2.16.840.1.113719.1.2.8.132", "NW_PASSWORD"},
+ {"2.16.840.1.113719.1.2.8.133", "NOVELL_OBFUSCATE_1"},
+ {"2.16.840.1.113719.1.9", "PKI"},
+ {"2.16.840.1.113719.1.9.4", "PKI_ATTRIBUTE_TYPE"},
+ {"2.16.840.1.113719.1.9.4.1", "SECURITY_ATTRIBUTES"},
+ {"2.16.840.1.113719.1.9.4.2", "RELIANCE_LIMIT"},
+ {"2.16.840.1.113730.1", "CERT_EXTENSION"},
+ {"2.16.840.1.113730.1.1", "NETSCAPE_CERT_TYPE"},
+ {"2.16.840.1.113730.1.2", "NETSCAPE_BASE_URL"},
+ {"2.16.840.1.113730.1.3", "NETSCAPE_REVOCATION_URL"},
+ {"2.16.840.1.113730.1.4", "NETSCAPE_CA_REVOCATION_URL"},
+ {"2.16.840.1.113730.1.7", "NETSCAPE_CERT_RENEWAL_URL"},
+ {"2.16.840.1.113730.1.8", "NETSCAPE_CA_POLICY_URL"},
+ {"2.16.840.1.113730.1.9", "HOME_PAGE_URL"},
+ {"2.16.840.1.113730.1.10", "ENTITY_LOGO"},
+ {"2.16.840.1.113730.1.11", "USER_PICTURE"},
+ {"2.16.840.1.113730.1.12", "NETSCAPE_SSL_SERVER_NAME"},
+ {"2.16.840.1.113730.1.13", "NETSCAPE_COMMENT"},
+ {"2.16.840.1.113730.2", "DATA_TYPE"},
+ {"2.16.840.1.113730.2.1", "DATA_GIF"},
+ {"2.16.840.1.113730.2.2", "DATA_JPEG"},
+ {"2.16.840.1.113730.2.3", "DATA_URL"},
+ {"2.16.840.1.113730.2.4", "DATA_HTML"},
+ {"2.16.840.1.113730.2.5", "CERT_SEQUENCE"},
+ {"2.16.840.1.113730.2.6", "CERT_URL"},
+ {"2.16.840.1.113730.3", "DIRECTORY"},
+ {"2.16.840.1.113730.3.1", "LDAP_DEFINITIONS"},
+ {"2.16.840.1.113730.3.1.1", "CAR_LICENSE"},
+ {"2.16.840.1.113730.3.1.2", "DEPARTMENT_NUMBER"},
+ {"2.16.840.1.113730.3.1.3", "EMPLOYEE_NUMBER"},
+ {"2.16.840.1.113730.3.1.4", "EMPLOYEE_TYPE"},
+ {"2.16.840.1.113730.3.2.2", "INET_ORG_PERSON"},
+ {"2.16.840.1.113730.4.1", "SERVER_GATED_CRYPTO"},
+ {"2.16.840.1.113733.1.6.3", "VERISIGN_CZAG"},
+ {"2.16.840.1.113733.1.6.6", "VERISIGN_IN_BOX"},
+ {"2.16.840.1.113733.1.6.11", "VERISIGN_ONSITE_JURISDICTION_HASH"},
+ {"2.16.840.1.113733.1.6.13", "UNKNOWN_VERISIGN_VPN_EXTENSION"},
+ {"2.16.840.1.113733.1.6.15", "VERISIGN_SERVER_ID"},
+ {"2.16.840.1.113733.1.7.1.1", "VERISIGN_CERT_POLICIES95_QUALIFIER1"},
+ {"2.16.840.1.113733.1.7.1.1.1", "VERISIGN_CP_SV1NOTICE"},
+ {"2.16.840.1.113733.1.7.1.1.2", "VERISIGN_CP_SV1NSI"},
+ {"2.16.840.1.113733.1.8.1", "VERISIGN_ISS_STRONG_CRYPTO"},
+ {"2.16.840.1.113733.1", "PKI"},
+ {"2.16.840.1.113733.1.9", "PKCS7_ATTRIBUTE"},
+ {"2.16.840.1.113733.1.9.2", "MESSAGE_TYPE"},
+ {"2.16.840.1.113733.1.9.3", "PKI_STATUS"},
+ {"2.16.840.1.113733.1.9.4", "FAIL_INFO"},
+ {"2.16.840.1.113733.1.9.5", "SENDER_NONCE"},
+ {"2.16.840.1.113733.1.9.6", "RECIPIENT_NONCE"},
+ {"2.16.840.1.113733.1.9.7", "TRANS_ID"},
+ {"2.16.840.1.113733.1.9.8", "EXTENSION_REQ"},
+ {"2.16.840.1.113741.2", "INTEL_CDSA"},
+ {"2.16.840.1.114412.1", "DIGI_CERT_NON_EV_CERTS"},
+ {"2.16.840.1.114412.1.1", "DIGI_CERT_OV_CERT"},
+ {"2.16.840.1.114412.1.2", "DIGI_CERT_DV_CERT"},
+ {"2.16.840.1.114412.1.11", "DIGI_CERT_FEDERATED_DEVICE_CERT"},
+ {"2.16.840.1.114412.1.3.0.1", "DIGI_CERT_GLOBAL_CA_POLICY"},
+ {"2.16.840.1.114412.1.3.0.2", "DIGI_CERT_HIGH_ASSURANCE_EVCA_POLICY"},
+ {"2.16.840.1.114412.1.3.0.3", "DIGI_CERT_GLOBAL_ROOT_CA_POLICY"},
+ {"2.16.840.1.114412.1.3.0.4", "DIGI_CERT_ASSURED_ID_ROOT_CA_POLICY"},
+ {"2.16.840.1.114412.2.2", "DIGI_CERT_EV_CERT"},
+ {"2.16.840.1.114412.2.3", "DIGI_CERT_OBJECT_SIGNING_CERT"},
+ {"2.16.840.1.114412.2.3.1", "DIGI_CERT_CODE_SIGNING_CERT"},
+ {"2.16.840.1.114412.2.3.2", "DIGI_CERT_EV_CODE_SIGNING_CERT"},
+ {"2.16.840.1.114412.2.3.11", "DIGI_CERT_KERNEL_CODE_SIGNING_CERT"},
+ {"2.16.840.1.114412.2.3.21", "DIGI_CERT_DOCUMENT_SIGNING_CERT"},
+ {"2.16.840.1.114412.2.4", "DIGI_CERT_CLIENT_CERT"},
+ {"2.16.840.1.114412.2.4.1.1", "DIGI_CERT_LEVEL1_PERSONAL_CLIENT_CERT"},
+ {"2.16.840.1.114412.2.4.1.2", "DIGI_CERT_LEVEL1_ENTERPRISE_CLIENT_CERT"},
+ {"2.16.840.1.114412.2.4.2", "DIGI_CERT_LEVEL2_CLIENT_CERT"},
+ {"2.16.840.1.114412.2.4.3.1", "DIGI_CERT_LEVEL3_US_CLIENT_CERT"},
+ {"2.16.840.1.114412.2.4.3.2", "DIGI_CERT_LEVEL3_CBP_CLIENT_CERT"},
+ {"2.16.840.1.114412.2.4.4.1", "DIGI_CERT_LEVEL4_US_CLIENT_CERT"},
+ {"2.16.840.1.114412.2.4.4.2", "DIGI_CERT_LEVEL4_CBP_CLIENT_CERT"},
+ {"2.16.840.1.114412.2.4.5.1", "DIGI_CERT_PIV_HARDWARE_CERT"},
+ {"2.16.840.1.114412.2.4.5.2", "DIGI_CERT_PIV_CARD_AUTH_CERT"},
+ {"2.16.840.1.114412.2.4.5.3", "DIGI_CERT_PIV_CONTENT_SIGNING_CERT"},
+ {"2.16.840.1.114412.4.31", "DIGI_CERT_GRID_CLASSIC_CERT"},
+ {"2.16.840.1.114412.4.31.5", "DIGI_CERT_GRID_INTEGRATED_CERT"},
+ {"2.16.840.1.114412.31.4.31.1", "DIGI_CERT_GRID_HOST_CERT"},
+ {"2.23.42.0", "CONTENT_TYPE"},
+ {"2.23.42.0.0", "PAN_DATA"},
+ {"2.23.42.0.1", "PAN_TOKEN"},
+ {"2.23.42.0.2", "PAN_ONLY"},
+ {"2.23.42.1", "MSG_EXT"},
+ {"2.23.42.2", "FIELD"},
+ {"2.23.42.2.0", "FULL_NAME"},
+ {"2.23.42.2.1", "GIVEN_NAME"},
+ {"2.23.42.2.2", "FAMILY_NAME"},
+ {"2.23.42.2.3", "BIRTH_FAMILY_NAME"},
+ {"2.23.42.2.4", "PLACE_NAME"},
+ {"2.23.42.2.5", "IDENTIFICATION_NUMBER"},
+ {"2.23.42.2.6", "MONTH"},
+ {"2.23.42.2.7", "DATE"},
+ {"2.23.42.2.8", "ADDRESS"},
+ {"2.23.42.2.9", "TELEPHONE"},
+ {"2.23.42.2.10", "AMOUNT"},
+ {"2.23.42.2.11", "ACCOUNT_NUMBER"},
+ {"2.23.42.2.12", "PASS_PHRASE"},
+ {"2.23.42.3", "ATTRIBUTE"},
+ {"2.23.42.3.0", "CERT"},
+ {"2.23.42.3.0.0", "ROOT_KEY_THUMB"},
+ {"2.23.42.3.0.1", "ADDITIONAL_POLICY"},
+ {"2.23.42.4", "ALGORITHM"},
+ {"2.23.42.5", "POLICY"},
+ {"2.23.42.5.0", "ROOT"},
+ {"2.23.42.6", "MODULE"},
+ {"2.23.42.7", "CERT_EXT"},
+ {"2.23.42.7.0", "HASHED_ROOT_KEY"},
+ {"2.23.42.7.1", "CERTIFICATE_TYPE"},
+ {"2.23.42.7.2", "MERCHANT_DATA"},
+ {"2.23.42.7.3", "CARD_CERT_REQUIRED"},
+ {"2.23.42.7.4", "TUNNELING"},
+ {"2.23.42.7.5", "SET_EXTENSIONS"},
+ {"2.23.42.7.6", "SET_QUALIFIER"},
+ {"2.23.42.8", "BRAND"},
+ {"2.23.42.8.1", "IATA_ATA"},
+ {"2.23.42.8.4", "VISA"},
+ {"2.23.42.8.5", "MASTER_CARD"},
+ {"2.23.42.8.30", "DINERS"},
+ {"2.23.42.8.34", "AMERICAN_EXPRESS"},
+ {"2.23.42.8.6011", "NOVUS"},
+ {"2.23.42.9", "VENDOR"},
+ {"2.23.42.9.0", "GLOBE_SET"},
+ {"2.23.42.9.1", "IBM"},
+ {"2.23.42.9.2", "CYBER_CASH"},
+ {"2.23.42.9.3", "TERISA"},
+ {"2.23.42.9.4", "RSADSI"},
+ {"2.23.42.9.5", "VERI_FONE"},
+ {"2.23.42.9.6", "TRIN_TECH"},
+ {"2.23.42.9.7", "BANK_GATE"},
+ {"2.23.42.9.8", "GTE"},
+ {"2.23.42.9.9", "COMPU_SOURCE"},
+ {"2.23.42.9.10", "GRIFFIN"},
+ {"2.23.42.9.11", "CERTICOM"},
+ {"2.23.42.9.12", "OSS"},
+ {"2.23.42.9.13", "TENTH_MOUNTAIN"},
+ {"2.23.42.9.14", "ANTARES"},
+ {"2.23.42.9.15", "ECC"},
+ {"2.23.42.9.16", "MAITHEAN"},
+ {"2.23.42.9.17", "NETSCAPE"},
+ {"2.23.42.9.18", "VERISIGN"},
+ {"2.23.42.9.19", "BLUE_MONEY"},
+ {"2.23.42.9.20", "LACERTE"},
+ {"2.23.42.9.21", "FUJITSU"},
+ {"2.23.42.9.22", "E_LAB"},
+ {"2.23.42.9.23", "ENTRUST"},
+ {"2.23.42.9.24", "VI_ANET"},
+ {"2.23.42.9.25", "III"},
+ {"2.23.42.9.26", "OPEN_MARKET"},
+ {"2.23.42.9.27", "LEXEM"},
+ {"2.23.42.9.28", "INTERTRADER"},
+ {"2.23.42.9.29", "PERSIMMON"},
+ {"2.23.42.9.30", "NABLE"},
+ {"2.23.42.9.31", "ESPACE_NET"},
+ {"2.23.42.9.32", "HITACHI"},
+ {"2.23.42.9.33", "MICROSOFT"},
+ {"2.23.42.9.34", "NEC"},
+ {"2.23.42.9.35", "MITSUBISHI"},
+ {"2.23.42.9.36", "NCR"},
+ {"2.23.42.9.37", "E_COMM"},
+ {"2.23.42.9.38", "GEMPLUS"},
+ {"2.23.42.10", "NATIONAL"},
+ {"2.23.42.10.392", "JAPAN"},
+ {"2.23.43.1.4", "W_TLS_ECC"},
+ {"2.23.43.1.4.1", "W_TLS_ECC_CURVE1"},
+ {"2.23.43.1.4.6", "W_TLS_ECC_CURVE6"},
+ {"2.23.43.1.4.8", "W_TLS_ECC_CURVE8"},
+ {"2.23.43.1.4.9", "W_TLS_ECC_CURVE9"},
+ {"2.23.133", "T_CPA"},
+ {"2.23.133.1", "TCPA_SPEC_VERSION"},
+ {"2.23.133.2", "TCPA_ATTRIBUTE"},
+ {"2.23.133.2.1", "TCPA_TPM_MANUFACTURER"},
+ {"2.23.133.2.2", "TCPA_TPM_MODEL"},
+ {"2.23.133.2.3", "TCPA_TPM_VERSION"},
+ {"2.23.133.2.4", "TCPA_PLATFORM_MANUFACTURER"},
+ {"2.23.133.2.5", "TCPA_PLATFORM_MODEL"},
+ {"2.23.133.2.6", "TCPA_PLATFORM_VERSION"},
+ {"2.23.133.2.7", "TCPA_COMPONENT_MANUFACTURER"},
+ {"2.23.133.2.8", "TCPA_COMPONENT_MODEL"},
+ {"2.23.133.2.9", "TCPA_COMPONENT_VERSION"},
+ {"2.23.133.2.10", "TCPA_SECURITY_QUALITIES"},
+ {"2.23.133.2.11", "TCPA_TPM_PROTECTION_PROFILE"},
+ {"2.23.133.2.12", "TCPA_TPM_SECURITY_TARGET"},
+ {"2.23.133.2.13", "TCPA_FOUNDATION_PROTECTION_PROFILE"},
+ {"2.23.133.2.14", "TCPA_FOUNDATION_SECURITY_TARGET"},
+ {"2.23.133.2.15", "TCPA_TPM_ID_LABEL"},
+ {"2.23.133.3", "TCPA_PROTOCOL"},
+ {"2.23.133.3.1", "TCPA_PRTT_TPM_ID_PROTOCOL"},
+ {"2.23.134.1.4.2.1", "POST_SIGNUM_ROOT_QCA"},
+ {"2.23.134.1.2.2.3", "POST_SIGNUM_PUBLIC_CA"},
+ {"2.23.134.1.2.1.8.210", "POST_SIGNUM_COMMERCIAL_SERVER_POLICY"},
+ {"2.23.136.1.1.1", "M_RTD_SIGNATURE_DATA"},
+ {"2.54.1775.2", "HASHED_ROOT_KEY"},
+ {"2.54.1775.3", "CERTIFICATE_TYPE"},
+ {"2.54.1775.4", "MERCHANT_DATA"},
+ {"2.54.1775.5", "CARD_CERT_REQUIRED"},
+ {"2.54.1775.6", "TUNNELING"},
+ {"2.54.1775.7", "SET_QUALIFIER"},
+ {"2.54.1775.99", "SET_DATA"},
+ {"1.2.40.0.17.1.22", "A_TRUST_EV_POLICY"},
+ {"1.3.6.1.4.1.34697.2.1", "AFFIRM_TRUST_EV_POLICY"},
+ {"1.3.6.1.4.1.34697.2.2", "AFFIRM_TRUST_EV_POLICY"},
+ {"1.3.6.1.4.1.34697.2.3", "AFFIRM_TRUST_EV_POLICY"},
+ {"1.3.6.1.4.1.34697.2.4", "AFFIRM_TRUST_EV_POLICY"},
+ {"2.16.578.1.26.1.3.3", "BUY_PASS_EV_POLICY"},
+ {"1.3.6.1.4.1.17326.10.14.2.1.2", "CAMERFIRMA_EV_POLICY"},
+ {"1.3.6.1.4.1.17326.10.8.12.1.2", "CAMERFIRMA_EV_POLICY"},
+ {"1.3.6.1.4.1.22234.2.5.2.3.1", "CERT_PLUS_EV_POLICY"},
+ {"1.3.6.1.4.1.6449.1.2.1.5.1", "COMODO_EV_POLICY"},
+ {"1.3.6.1.4.1.6334.1.100.1", "CYBERTRUST_EV_POLICY"},
+ {"1.3.6.1.4.1.4788.2.202.1", "D_TRUST_EV_POLICY"},
+ {"2.16.840.1.114412.2.1", "DIGI_CERT_EV_POLICY"},
+ {"2.16.528.1.1001.1.1.1.12.6.1.1.1", "DIGI_NOTAR_EV_POLICY"},
+ {"2.16.840.1.114028.10.1.2", "ENTRUST_EV_POLICY"},
+ {"1.3.6.1.4.1.14370.1.6", "GEO_TRUST_EV_POLICY"},
+ {"1.3.6.1.4.1.4146.1.1", "GLOBAL_SIGN_EV_POLICY"},
+ {"2.16.840.1.114413.1.7.23.3", "GO_DADDY_EV_POLICY"},
+ {"1.3.6.1.4.1.14777.6.1.1", "IZENPE_EV_POLICY"},
+ {"1.3.6.1.4.1.14777.6.1.2", "IZENPE_EV_POLICY"},
+ {"1.3.6.1.4.1.782.1.2.1.8.1", "NETWORK_SOLUTIONS_EV_POLICY"},
+ {"1.3.6.1.4.1.8024.0.2.100.1.2", "QUO_VADIS_EV_POLICY"},
+ {"1.2.392.200091.100.721.1", "SECURITY_COMMUNICATION_(SECOM)_EV_POLICY"},
+ {"2.16.840.1.114414.1.7.23.3", "STARFIELD_EV_POLICY"},
+ {"1.3.6.1.4.1.23223.1.1.1", "START_COM_EV_POLICY"},
+ {"2.16.756.1.89.1.2.1.1", "SWISS_SIGN_EV_POLICY"},
+ {"1.3.6.1.4.1.7879.13.24.1", "T_TELE_SEC_EV_POLICY"},
+ {"2.16.840.1.113733.1.7.48.1", "THAWTE_EV_POLICY"},
+ {"2.16.840.1.114404.1.1.2.4.1", "TRUST_WAVE_EV_POLICY"},
+ {"1.3.6.1.4.1.40869.1.1.22.3", "TWCA_EV_POLICY"},
+ {"2.16.840.1.113733.1.7.23.6", "VERI_SIGN_EV_POLICY"},
+ {"2.16.840.1.114171.500.9", "WELLS_FARGO_EV_POLICY"},
+ {"1.3.6.1.4.1.311.3.3.1", "MS_COUNTER_SIGN"},
+ {"1.3.6.1.4.1.311.10.3.28", "szOID_PLATFORM_MANIFEST_BINARY_ID"},
+ {"1.3.6.1.4.1.311.2.6.1", "SPC_RELAXED_PE_MARKER_CHECK_OBJID"},
};
- auto it = oid_to_str.find(oid);
+ auto it = oid_to_str.find(oid);
return it == oid_to_str.end() ? oid.c_str() : it->second;
}
}
-}
diff --git a/deps/LIEF/src/PE/signature/PKCS9TSTInfo.cpp b/deps/LIEF/src/PE/signature/PKCS9TSTInfo.cpp
index 459642da6da..9237e796646 100644
--- a/deps/LIEF/src/PE/signature/PKCS9TSTInfo.cpp
+++ b/deps/LIEF/src/PE/signature/PKCS9TSTInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,12 +15,11 @@
*/
#include "LIEF/PE/signature/PKCS9TSTInfo.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
void PKCS9TSTInfo::accept(Visitor& visitor) const {
visitor.visit(*this);
}
}
-}
diff --git a/deps/LIEF/src/PE/signature/RsaInfo.cpp b/deps/LIEF/src/PE/signature/RsaInfo.cpp
index f24c650d3df..a1d2263d79b 100644
--- a/deps/LIEF/src/PE/signature/RsaInfo.cpp
+++ b/deps/LIEF/src/PE/signature/RsaInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,13 +16,17 @@
#include "LIEF/PE/signature/RsaInfo.hpp"
-#include <mbedtls/bignum.h>
+#ifndef MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS
+ #define MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS
+#endif
+
+#include <mbedtls/private/bignum.h>
#include <mbedtls/md.h>
-#include <mbedtls/rsa.h>
+#include <mbedtls/private/rsa.h>
#include <utility>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
RsaInfo::RsaInfo() = default;
@@ -37,8 +41,7 @@ RsaInfo::RsaInfo(const RsaInfo::rsa_ctx_handle ctx) {
ctx_ = reinterpret_cast<RsaInfo::rsa_ctx_handle>(local_ctx);
}
-RsaInfo::RsaInfo(const RsaInfo& other)
-{
+RsaInfo::RsaInfo(const RsaInfo& other) {
if (other.ctx_ != nullptr) {
const auto* octx = reinterpret_cast<const mbedtls_rsa_context*>(other.ctx_);
auto* local_ctx = new mbedtls_rsa_context{};
@@ -53,8 +56,7 @@ RsaInfo::RsaInfo(const RsaInfo& other)
RsaInfo::RsaInfo(RsaInfo&& other) :
- ctx_{other.ctx_}
-{}
+ ctx_{other.ctx_} {}
RsaInfo& RsaInfo::operator=(RsaInfo other) {
swap(other);
@@ -141,4 +143,3 @@ std::ostream& operator<<(std::ostream& os, const RsaInfo& info) {
}
}
-}
diff --git a/deps/LIEF/src/PE/signature/Signature.cpp b/deps/LIEF/src/PE/signature/Signature.cpp
index 5b0c2809282..2d2c5891a6e 100644
--- a/deps/LIEF/src/PE/signature/Signature.cpp
+++ b/deps/LIEF/src/PE/signature/Signature.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,8 @@
*/
#include "logging.hpp"
+#include "mbedtls_wraps.h"
+
#include "LIEF/utils.hpp"
#include "LIEF/Visitor.hpp"
@@ -25,18 +27,15 @@
#include "LIEF/PE/signature/Attribute.hpp"
#include "LIEF/PE/signature/attributes.hpp"
#include "LIEF/PE/signature/SpcIndirectData.hpp"
+#include "LIEF/PE/signature/RsaInfo.hpp"
-#include <mbedtls/sha512.h>
-#include <mbedtls/sha256.h>
-#include <mbedtls/sha1.h>
-
-#include <mbedtls/md5.h>
+#include <psa/crypto_builtin_primitives.h>
#include "frozen.hpp"
#include "internal_utils.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
Signature::Signature() = default;
Signature::Signature(const Signature&) = default;
@@ -47,42 +46,49 @@ Signature& Signature::operator=(Signature&&) = default;
inline std::string time_to_string(const x509::date_t& date) {
- return fmt::format("{:d}/{:02d}/{:02d} - {:02d}:{:02d}:{:02d}",
- date[0], date[1], date[2],
- date[3], date[4], date[5]);
+ return fmt::format("{:d}/{:02d}/{:02d} - {:02d}:{:02d}:{:02d}", date[0], date[1],
+ date[2], date[3], date[4], date[5]);
}
std::string Signature::flag_to_string(Signature::VERIFICATION_FLAGS flag) {
- CONST_MAP(VERIFICATION_FLAGS, const char*, 13) enumStrings {
- { Signature::VERIFICATION_FLAGS::OK, "OK"},
- { Signature::VERIFICATION_FLAGS::INVALID_SIGNER, "INVALID_SIGNER"},
- { Signature::VERIFICATION_FLAGS::UNSUPPORTED_ALGORITHM, "UNSUPPORTED_ALGORITHM"},
- { Signature::VERIFICATION_FLAGS::INCONSISTENT_DIGEST_ALGORITHM, "INCONSISTENT_DIGEST_ALGORITHM"},
- { Signature::VERIFICATION_FLAGS::CERT_NOT_FOUND, "CERT_NOT_FOUND"},
- { Signature::VERIFICATION_FLAGS::CORRUPTED_CONTENT_INFO, "CORRUPTED_CONTENT_INFO"},
- { Signature::VERIFICATION_FLAGS::CORRUPTED_AUTH_DATA, "CORRUPTED_AUTH_DATA"},
- { Signature::VERIFICATION_FLAGS::MISSING_PKCS9_MESSAGE_DIGEST, "MISSING_PKCS9_MESSAGE_DIGEST"},
- { Signature::VERIFICATION_FLAGS::BAD_DIGEST, "BAD_DIGEST"},
- { Signature::VERIFICATION_FLAGS::BAD_SIGNATURE, "BAD_SIGNATURE"},
- { Signature::VERIFICATION_FLAGS::NO_SIGNATURE, "NO_SIGNATURE"},
- { Signature::VERIFICATION_FLAGS::CERT_EXPIRED, "CERT_EXPIRED"},
- { Signature::VERIFICATION_FLAGS::CERT_FUTURE, "CERT_FUTURE"},
+ CONST_MAP(VERIFICATION_FLAGS, const char*, 13)
+ enumStrings{
+ {Signature::VERIFICATION_FLAGS::OK, "OK"},
+ {Signature::VERIFICATION_FLAGS::INVALID_SIGNER, "INVALID_SIGNER"},
+ {Signature::VERIFICATION_FLAGS::UNSUPPORTED_ALGORITHM,
+ "UNSUPPORTED_ALGORITHM"},
+ {Signature::VERIFICATION_FLAGS::INCONSISTENT_DIGEST_ALGORITHM,
+ "INCONSISTENT_DIGEST_ALGORITHM"},
+ {Signature::VERIFICATION_FLAGS::CERT_NOT_FOUND, "CERT_NOT_FOUND"},
+ {Signature::VERIFICATION_FLAGS::CORRUPTED_CONTENT_INFO,
+ "CORRUPTED_CONTENT_INFO"},
+ {Signature::VERIFICATION_FLAGS::CORRUPTED_AUTH_DATA, "CORRUPTED_AUTH_DATA"},
+ {Signature::VERIFICATION_FLAGS::MISSING_PKCS9_MESSAGE_DIGEST,
+ "MISSING_PKCS9_MESSAGE_DIGEST"},
+ {Signature::VERIFICATION_FLAGS::BAD_DIGEST, "BAD_DIGEST"},
+ {Signature::VERIFICATION_FLAGS::BAD_SIGNATURE, "BAD_SIGNATURE"},
+ {Signature::VERIFICATION_FLAGS::NO_SIGNATURE, "NO_SIGNATURE"},
+ {Signature::VERIFICATION_FLAGS::CERT_EXPIRED, "CERT_EXPIRED"},
+ {Signature::VERIFICATION_FLAGS::CERT_FUTURE, "CERT_FUTURE"},
};
const auto it = enumStrings.find(flag);
return it == enumStrings.end() ? "UNDEFINED" : it->second;
}
-Signature::VERIFICATION_FLAGS verify_ts_counter_signature(const SignerInfo& signer,
- const PKCS9CounterSignature& cs, Signature::VERIFICATION_CHECKS checks) {
+Signature::VERIFICATION_FLAGS
+ verify_ts_counter_signature(const SignerInfo& signer,
+ const PKCS9CounterSignature& cs,
+ Signature::VERIFICATION_CHECKS checks) {
LIEF_DEBUG("PKCS #9 Counter signature found");
Signature::VERIFICATION_FLAGS flags = Signature::VERIFICATION_FLAGS::OK;
- const SignerInfo& cs_signer = cs.signer();
+ const SignerInfo& cs_signer = cs.signer();
if (cs_signer.cert() == nullptr) {
- LIEF_WARN("Can't find x509 certificate associated with Counter Signature's signer");
+ LIEF_WARN("Failed to find x509 certificate for counter signature's signer");
return flags | Signature::VERIFICATION_FLAGS::CERT_NOT_FOUND;
}
const x509& cs_cert = *cs_signer.cert();
- const SignerInfo::encrypted_digest_t& cs_enc_digest = cs_signer.encrypted_digest();
+ const SignerInfo::encrypted_digest_t& cs_enc_digest =
+ cs_signer.encrypted_digest();
std::vector<uint8_t> cs_auth_data = as_vector(cs_signer.raw_auth_data());
// According to the RFC:
@@ -91,20 +97,24 @@ Signature::VERIFICATION_FLAGS verify_ts_counter_signature(const SignerInfo& sign
// the SET OF tag, rather than of the IMPLICIT [0] tag [...]"
cs_auth_data[0] = /* SET OF */ 0x31;
const ALGORITHMS cs_digest_algo = cs_signer.digest_algorithm();
- const std::vector<uint8_t>& cs_hash = Signature::hash(cs_auth_data, cs_digest_algo);
+ const std::vector<uint8_t>& cs_hash =
+ Signature::hash(cs_auth_data, cs_digest_algo);
LIEF_DEBUG("Signed data digest: {}", hex_dump(cs_hash));
bool check_sig = cs_cert.check_signature(cs_hash, cs_enc_digest, cs_digest_algo);
if (!check_sig) {
LIEF_WARN("Authenticated signature (counter signature) mismatch");
- //return flags | VERIFICATION_FLAGS::BAD_SIGNATURE;
+ // return flags | VERIFICATION_FLAGS::BAD_SIGNATURE;
}
/* According to Microsoft documentation:
- * The Authenticode timestamp SignerInfo structure contains the following authenticated attributes values:
- * 1. ContentType (1.2.840.113549.1.9.3) is set to PKCS #7 Data (1.2.840.113549.1.7.1).
- * 2. Signing Time (1.2.840.113549.1.9.5) is set to the UTC time of timestamp generation time.
+ * The Authenticode timestamp SignerInfo structure contains the following
+ * authenticated attributes values:
+ * 1. ContentType (1.2.840.113549.1.9.3) is set to PKCS #7 Data
+ * (1.2.840.113549.1.7.1).
+ * 2. Signing Time (1.2.840.113549.1.9.5) is set to the UTC time of timestamp
+ * generation time.
* 3. Message Digest (1.2.840.113549.1.9.4) is set to the hash value of the
* SignerInfo structure's encryptedDigest value. The hash algorithm that
* is used to calculate the hash value is the same as that specified in the
@@ -112,26 +122,34 @@ Signature::VERIFICATION_FLAGS verify_ts_counter_signature(const SignerInfo& sign
*/
// Verify 1.
- const auto* content_type_data = static_cast<const ContentType*>(cs_signer.get_auth_attribute(Attribute::TYPE::CONTENT_TYPE));
+ const auto* content_type_data = static_cast<const ContentType*>(
+ cs_signer.get_auth_attribute(Attribute::TYPE::CONTENT_TYPE)
+ );
if (content_type_data == nullptr) {
- LIEF_WARN("Missing ContentType in authenticated attributes in the counter signature's signer");
+ LIEF_WARN("Missing ContentType in authenticated attributes in the counter "
+ "signature's signer");
return flags | Signature::VERIFICATION_FLAGS::INVALID_SIGNER;
}
if (content_type_data->oid() != /* PKCS #7 Data */ "1.2.840.113549.1.7.1") {
- LIEF_WARN("Bad OID for ContentType in authenticated attributes in the counter signature's signer ({})",
- content_type_data->oid());
+ LIEF_WARN("Bad OID for ContentType in authenticated attributes in the counter "
+ "signature's signer ({})",
+ content_type_data->oid());
return flags | Signature::VERIFICATION_FLAGS::INVALID_SIGNER;
}
// Verify 3.
- const auto* message_dg = static_cast<const PKCS9MessageDigest*>(cs_signer.get_auth_attribute(Attribute::TYPE::PKCS9_MESSAGE_DIGEST));
+ const auto* message_dg = static_cast<const PKCS9MessageDigest*>(
+ cs_signer.get_auth_attribute(Attribute::TYPE::PKCS9_MESSAGE_DIGEST)
+ );
if (message_dg == nullptr) {
- LIEF_WARN("Missing MessageDigest in authenticated attributes in the counter signature's signer");
+ LIEF_WARN("Missing MessageDigest in authenticated attributes in the counter "
+ "signature's signer");
return flags | Signature::VERIFICATION_FLAGS::INVALID_SIGNER;
}
const std::vector<uint8_t>& dg_value = as_vector(message_dg->digest());
- const std::vector<uint8_t> dg_cs_hash = Signature::hash(signer.encrypted_digest(), cs_digest_algo);
+ const std::vector<uint8_t> dg_cs_hash =
+ Signature::hash(signer.encrypted_digest(), cs_digest_algo);
if (dg_value != dg_cs_hash) {
LIEF_WARN("MessageDigest mismatch with Hash(signer ED)");
return flags | Signature::VERIFICATION_FLAGS::INVALID_SIGNER;
@@ -141,8 +159,12 @@ Signature::VERIFICATION_FLAGS verify_ts_counter_signature(const SignerInfo& sign
* Verify that signing's time is valid within the signer's certificate
* validity window.
*/
- const auto* signing_time = static_cast<const PKCS9SigningTime*>(cs_signer.get_auth_attribute(Attribute::TYPE::PKCS9_SIGNING_TIME));
- if (signing_time != nullptr && !is_true(checks & Signature::VERIFICATION_CHECKS::SKIP_CERT_TIME)) {
+ const auto* signing_time = static_cast<const PKCS9SigningTime*>(
+ cs_signer.get_auth_attribute(Attribute::TYPE::PKCS9_SIGNING_TIME)
+ );
+ if (signing_time != nullptr &&
+ !is_true(checks & Signature::VERIFICATION_CHECKS::SKIP_CERT_TIME))
+ {
LIEF_DEBUG("PKCS #9 signing time found");
PKCS9SigningTime::time_t time = signing_time->time();
if (!x509::check_time(time, cs_cert.valid_to())) {
@@ -161,69 +183,70 @@ Signature::VERIFICATION_FLAGS verify_ts_counter_signature(const SignerInfo& sign
}
-std::vector<uint8_t> Signature::hash(const uint8_t* buffer, size_t size, ALGORITHMS algo) {
+std::vector<uint8_t> Signature::hash(const uint8_t* buffer, size_t size,
+ ALGORITHMS algo) {
switch (algo) {
case ALGORITHMS::SHA_512:
- {
- std::vector<uint8_t> out(64);
- int ret = mbedtls_sha512(buffer, size, out.data(), /* is384 */ 0);
- if (ret != 0) {
- LIEF_ERR("Hashing {} bytes with SHA-512 failed! (ret: 0x{:x})", size, ret);
- return {};
- }
- return out;
+ {
+ std::vector<uint8_t> out(64);
+ int ret = mbedtls_sha512(buffer, size, out.data(), /* is384 */ 0);
+ if (ret != 0) {
+ LIEF_ERR("Hashing {} bytes with SHA-512 failed (ret: {:#x})", size, ret);
+ return {};
}
+ return out;
+ }
case ALGORITHMS::SHA_384:
- {
- std::vector<uint8_t> out(64);
- int ret = mbedtls_sha512(buffer, size, out.data(), /* is384 */ 1);
- if (ret != 0) {
- LIEF_ERR("Hashing {} bytes with SHA-384 failed! (ret: 0x{:x})", size, ret);
- return {};
- }
- out.resize(48);
- return out;
+ {
+ std::vector<uint8_t> out(64);
+ int ret = mbedtls_sha512(buffer, size, out.data(), /* is384 */ 1);
+ if (ret != 0) {
+ LIEF_ERR("Hashing {} bytes with SHA-384 failed (ret: {:#x})", size, ret);
+ return {};
}
+ out.resize(48);
+ return out;
+ }
case ALGORITHMS::SHA_256:
- {
- std::vector<uint8_t> out(32);
- int ret = mbedtls_sha256(buffer, size, out.data(), /* is224 */ 0);
- if (ret != 0) {
- LIEF_ERR("Hashing {} bytes with SHA-256 failed! (ret: 0x{:x})", size, ret);
- return {};
- }
- return out;
+ {
+ std::vector<uint8_t> out(32);
+ int ret = mbedtls_sha256(buffer, size, out.data(), /* is224 */ 0);
+ if (ret != 0) {
+ LIEF_ERR("Hashing {} bytes with SHA-256 failed (ret: {:#x})", size, ret);
+ return {};
}
+ return out;
+ }
case ALGORITHMS::SHA_1:
- {
- std::vector<uint8_t> out(20);
- int ret = mbedtls_sha1(buffer, size, out.data());
- if (ret != 0) {
- LIEF_ERR("Hashing {} bytes with SHA-1 failed! (ret: 0x{:x})", size, ret);
- return {};
- }
- return out;
+ {
+ std::vector<uint8_t> out(20);
+ int ret = mbedtls_sha1(buffer, size, out.data());
+ if (ret != 0) {
+ LIEF_ERR("Hashing {} bytes with SHA-1 failed (ret: {:#x})", size, ret);
+ return {};
}
+ return out;
+ }
case ALGORITHMS::MD5:
- {
- std::vector<uint8_t> out(16);
- int ret = mbedtls_md5(buffer, size, out.data());
- if (ret != 0) {
- LIEF_ERR("Hashing {} bytes with MD5 failed! (ret: 0x{:x})", size, ret);
- return {};
- }
- return out;
+ {
+ std::vector<uint8_t> out(16);
+ int ret = mbedtls_md5(buffer, size, out.data());
+ if (ret != 0) {
+ LIEF_ERR("Hashing {} bytes with MD5 failed (ret: {:#x})", size, ret);
+ return {};
}
+ return out;
+ }
default:
- {
- LIEF_ERR("Unsupported hash algorithm {}", to_string(algo));
- }
+ {
+ LIEF_ERR("Unsupported hash algorithm {}", to_string(algo));
+ }
}
return {};
}
@@ -239,7 +262,7 @@ Signature::VERIFICATION_FLAGS Signature::check(VERIFICATION_CHECKS checks) const
}
if (nb_signers > 1) {
- LIEF_WARN("More than ONE signer ({:d} signers)", nb_signers);
+ LIEF_WARN("More than one signer ({:d} signers)", nb_signers);
return flags | VERIFICATION_FLAGS::INVALID_SIGNER;
}
const SignerInfo& signer = signers_.back();
@@ -248,7 +271,8 @@ Signature::VERIFICATION_FLAGS Signature::check(VERIFICATION_CHECKS checks) const
LIEF_WARN("ContentInfo type is not SpcIndirectData");
return flags | VERIFICATION_FLAGS::CORRUPTED_CONTENT_INFO;
}
- const auto& spc_indirect_data = static_cast<const SpcIndirectData&>(content_info_.value());
+ const auto& spc_indirect_data =
+ static_cast<const SpcIndirectData&>(content_info_.value());
// Check that Signature.digest_algorithm matches:
// - SignerInfo.digest_algorithm
@@ -272,7 +296,7 @@ Signature::VERIFICATION_FLAGS Signature::check(VERIFICATION_CHECKS checks) const
const ALGORITHMS digest_algo = spc_indirect_data.digest_algorithm();
if (signer.cert() == nullptr) {
- LIEF_WARN("Can't find certificate for which the issuer is {}", signer.issuer());
+ LIEF_WARN("Failed to find certificate for issuer {}", signer.issuer());
return flags | VERIFICATION_FLAGS::CERT_NOT_FOUND;
}
const x509& cert = *signer.cert();
@@ -284,7 +308,7 @@ Signature::VERIFICATION_FLAGS Signature::check(VERIFICATION_CHECKS checks) const
* value for code signing, or the entire certificate chain must contain no
* EKUs. The following is the EKU value for code signing"
*/
- //TODO(romain)
+ // TODO(romain)
/*
* Verify certificate validity
@@ -300,11 +324,12 @@ Signature::VERIFICATION_FLAGS Signature::check(VERIFICATION_CHECKS checks) const
}
std::vector<uint8_t> raw_content_info = {
- std::begin(original_raw_signature_) + content_info_start_,
- std::begin(original_raw_signature_) + content_info_end_
+ original_raw_signature_.begin() + content_info_start_,
+ original_raw_signature_.begin() + content_info_end_
};
- const std::vector<uint8_t> content_info_hash = Signature::hash(raw_content_info, digest_algo);
+ const std::vector<uint8_t> content_info_hash =
+ Signature::hash(raw_content_info, digest_algo);
// Copy authenticated attributes
@@ -318,7 +343,8 @@ Signature::VERIFICATION_FLAGS Signature::check(VERIFICATION_CHECKS checks) const
// the SET OF tag, rather than of the IMPLICIT [0] tag [...]"
auth_data[0] = /* SET OF */ 0x31;
- const std::vector<uint8_t> auth_attr_hash = Signature::hash(auth_data, digest_algo);
+ const std::vector<uint8_t> auth_attr_hash =
+ Signature::hash(auth_data, digest_algo);
LIEF_DEBUG("Authenticated attribute digest: {}", hex_dump(auth_attr_hash));
bool check_sig = cert.check_signature(auth_attr_hash, enc_digest, digest_algo);
@@ -328,24 +354,28 @@ Signature::VERIFICATION_FLAGS Signature::check(VERIFICATION_CHECKS checks) const
}
// Check that content_info_hash matches pkcs9-message-digest
- auto it_pkcs9_digest = std::find_if(std::begin(auth_attrs), std::end(auth_attrs),
- [] (const Attribute& attr) {
- return attr.type() == Attribute::TYPE::PKCS9_MESSAGE_DIGEST;
- });
-
- if (it_pkcs9_digest == std::end(auth_attrs)) {
- LIEF_WARN("Can't find the authenticated attribute: 'pkcs9-message-digest'");
+ auto it_pkcs9_digest =
+ std::find_if(auth_attrs.begin(), auth_attrs.end(),
+ [](const Attribute& attr) {
+ return attr.type() == Attribute::TYPE::PKCS9_MESSAGE_DIGEST;
+ });
+
+ if (it_pkcs9_digest == auth_attrs.end()) {
+ LIEF_WARN("Missing authenticated attribute 'pkcs9-message-digest'");
return flags | VERIFICATION_FLAGS::MISSING_PKCS9_MESSAGE_DIGEST;
}
- const auto& digest_attr = static_cast<const PKCS9MessageDigest&>(*it_pkcs9_digest);
- LIEF_DEBUG("pkcs9-message-digest:\n {}\n {}", hex_dump(digest_attr.digest()), hex_dump(content_info_hash));
+ const auto& digest_attr =
+ static_cast<const PKCS9MessageDigest&>(*it_pkcs9_digest);
+ LIEF_DEBUG("PKCS9 message digest:\n {}\n {}", hex_dump(digest_attr.digest()),
+ hex_dump(content_info_hash));
if (as_vector(digest_attr.digest()) != content_info_hash) {
return flags | VERIFICATION_FLAGS::BAD_DIGEST;
}
} else {
/*
- * If there is no authenticated attributes, then the encrypted digested should match ENC(content_info_hash)
+ * If there is no authenticated attributes, then the encrypted digested should
+ * match ENC(content_info_hash)
*/
if (!cert.check_signature(content_info_hash, enc_digest, digest_algo)) {
return flags | VERIFICATION_FLAGS::BAD_SIGNATURE;
@@ -355,21 +385,27 @@ Signature::VERIFICATION_FLAGS Signature::check(VERIFICATION_CHECKS checks) const
/*
* CounterSignature Checks
*/
- const auto* counter = static_cast<const PKCS9CounterSignature*>(signer.get_unauth_attribute(Attribute::TYPE::PKCS9_COUNTER_SIGNATURE));
- bool has_ms_counter_sig = signer.get_unauth_attribute(Attribute::TYPE::MS_COUNTER_SIGN) != nullptr;
+ const auto* counter = static_cast<const PKCS9CounterSignature*>(
+ signer.get_unauth_attribute(Attribute::TYPE::PKCS9_COUNTER_SIGNATURE)
+ );
+ bool has_ms_counter_sig =
+ signer.get_unauth_attribute(Attribute::TYPE::MS_COUNTER_SIGN) != nullptr;
bool timeless_signature = false;
if (counter != nullptr) {
- VERIFICATION_FLAGS cs_flags = verify_ts_counter_signature(signer, *counter, checks);
+ VERIFICATION_FLAGS cs_flags =
+ verify_ts_counter_signature(signer, *counter, checks);
if (cs_flags == VERIFICATION_FLAGS::OK) {
timeless_signature = true;
}
} else if (has_ms_counter_sig) {
timeless_signature = true;
}
- bool should_check_cert_time = !timeless_signature || is_true(checks & VERIFICATION_CHECKS::LIFETIME_SIGNING);
+ bool should_check_cert_time =
+ !timeless_signature ||
+ is_true(checks & VERIFICATION_CHECKS::LIFETIME_SIGNING);
if (is_true(checks & VERIFICATION_CHECKS::SKIP_CERT_TIME)) {
- should_check_cert_time = false;
+ should_check_cert_time = false;
}
if (should_check_cert_time) {
/*
@@ -382,18 +418,17 @@ Signature::VERIFICATION_FLAGS Signature::check(VERIFICATION_CHECKS checks) const
if (x509::time_is_future(cert.valid_from())) {
return flags | VERIFICATION_FLAGS::CERT_FUTURE;
}
-
}
return flags;
}
const x509* Signature::find_crt(const std::vector<uint8_t>& serialno) const {
- auto it_cert = std::find_if(std::begin(certificates_), std::end(certificates_),
- [&serialno] (const x509& cert) {
- return cert.serial_number() == serialno;
- });
- if (it_cert == std::end(certificates_)) {
+ auto it_cert = std::find_if(certificates_.begin(), certificates_.end(),
+ [&serialno](const x509& cert) {
+ return cert.serial_number() == serialno;
+ });
+ if (it_cert == certificates_.end()) {
return nullptr;
}
return &(*it_cert);
@@ -401,44 +436,50 @@ const x509* Signature::find_crt(const std::vector<uint8_t>& serialno) const {
const x509* Signature::find_crt_subject(const std::string& subject) const {
- auto it_cert = std::find_if(std::begin(certificates_), std::end(certificates_),
- [&subject] (const x509& cert) {
- return cert.subject() == subject;
- });
- if (it_cert == std::end(certificates_)) {
+ auto it_cert = std::find_if(certificates_.begin(), certificates_.end(),
+ [&subject](const x509& cert) {
+ return cert.subject() == subject;
+ });
+ if (it_cert == certificates_.end()) {
return nullptr;
}
return &(*it_cert);
}
-const x509* Signature::find_crt_subject(const std::string& subject, const std::vector<uint8_t>& serialno) const {
- auto it_cert = std::find_if(std::begin(certificates_), std::end(certificates_),
- [&subject, &serialno] (const x509& cert) {
- return cert.subject() == subject && cert.serial_number() == serialno;
- });
- if (it_cert == std::end(certificates_)) {
+const x509*
+ Signature::find_crt_subject(const std::string& subject,
+ const std::vector<uint8_t>& serialno) const {
+ auto it_cert = std::find_if(certificates_.begin(), certificates_.end(),
+ [&subject, &serialno](const x509& cert) {
+ return cert.subject() == subject &&
+ cert.serial_number() == serialno;
+ });
+ if (it_cert == certificates_.end()) {
return nullptr;
}
return &(*it_cert);
}
const x509* Signature::find_crt_issuer(const std::string& issuer) const {
- auto it_cert = std::find_if(std::begin(certificates_), std::end(certificates_),
- [&issuer] (const x509& cert) {
- return cert.issuer() == issuer;
- });
- if (it_cert == std::end(certificates_)) {
+ auto it_cert = std::find_if(certificates_.begin(), certificates_.end(),
+ [&issuer](const x509& cert) {
+ return cert.issuer() == issuer;
+ });
+ if (it_cert == certificates_.end()) {
return nullptr;
}
return &(*it_cert);
}
-const x509* Signature::find_crt_issuer(const std::string& issuer, const std::vector<uint8_t>& serialno) const {
- auto it_cert = std::find_if(std::begin(certificates_), std::end(certificates_),
- [&issuer, &serialno] (const x509& cert) {
- return cert.issuer() == issuer && cert.serial_number() == serialno;
- });
- if (it_cert == std::end(certificates_)) {
+const x509*
+ Signature::find_crt_issuer(const std::string& issuer,
+ const std::vector<uint8_t>& serialno) const {
+ auto it_cert = std::find_if(certificates_.begin(), certificates_.end(),
+ [&issuer, &serialno](const x509& cert) {
+ return cert.issuer() == issuer &&
+ cert.serial_number() == serialno;
+ });
+ if (it_cert == certificates_.end()) {
return nullptr;
}
return &(*it_cert);
@@ -448,106 +489,108 @@ void Signature::accept(Visitor& visitor) const {
visitor.visit(*this);
}
-inline void print_attr(SignerInfo::it_const_attributes_t& attrs, std::ostream& os) {
+inline void print_attr(SignerInfo::it_const_attributes_t& attrs,
+ std::ostream& os) {
for (const Attribute& attr : attrs) {
std::string suffix;
switch (attr.type()) {
case Attribute::TYPE::CONTENT_TYPE:
- {
- const auto& ct = static_cast<const ContentType&>(attr);
- suffix = ct.oid() + " (" + oid_to_string(ct.oid()) + ")";
- break;
- }
+ {
+ const auto& ct = static_cast<const ContentType&>(attr);
+ suffix = ct.oid() + " (" + oid_to_string(ct.oid()) + ")";
+ break;
+ }
case Attribute::TYPE::MS_SPC_STATEMENT_TYPE:
- {
- const auto& ct = static_cast<const MsSpcStatementType&>(attr);
- suffix = ct.oid() + " (" + oid_to_string(ct.oid()) + ")";
- break;
- }
+ {
+ const auto& ct = static_cast<const MsSpcStatementType&>(attr);
+ suffix = ct.oid() + " (" + oid_to_string(ct.oid()) + ")";
+ break;
+ }
case Attribute::TYPE::SPC_SP_OPUS_INFO:
- {
- const auto& ct = static_cast<const SpcSpOpusInfo&>(attr);
- if (!ct.program_name().empty()) {
- suffix = ct.program_name();
- }
- if (!ct.more_info().empty()) {
- if (!suffix.empty()) {
- suffix += " - ";
- }
- suffix += ct.more_info();
+ {
+ const auto& ct = static_cast<const SpcSpOpusInfo&>(attr);
+ if (!ct.program_name().empty()) {
+ suffix = ct.program_name();
+ }
+ if (!ct.more_info().empty()) {
+ if (!suffix.empty()) {
+ suffix += " - ";
}
- break;
+ suffix += ct.more_info();
}
+ break;
+ }
case Attribute::TYPE::PKCS9_MESSAGE_DIGEST:
- {
- const auto& ct = static_cast<const PKCS9MessageDigest&>(attr);
- suffix = hex_dump(ct.digest()).substr(0, 41) + "...";
- break;
- }
+ {
+ const auto& ct = static_cast<const PKCS9MessageDigest&>(attr);
+ suffix = hex_dump(ct.digest()).substr(0, 41) + "...";
+ break;
+ }
case Attribute::TYPE::MS_SPC_NESTED_SIGN:
- {
- const auto& nested_attr = static_cast<const MsSpcNestedSignature&>(attr);
- const Signature& ct = nested_attr.sig();
- auto signers = ct.signers();
- auto crts = ct.certificates();
- if (!signers.empty()) {
- suffix = signers[0].issuer();
- } else if (!crts.empty()) {
- suffix = crts[0].issuer();
- }
- break;
+ {
+ const auto& nested_attr = static_cast<const MsSpcNestedSignature&>(attr);
+ const Signature& ct = nested_attr.sig();
+ auto signers = ct.signers();
+ auto crts = ct.certificates();
+ if (!signers.empty()) {
+ suffix = signers[0].issuer();
+ } else if (!crts.empty()) {
+ suffix = crts[0].issuer();
}
+ break;
+ }
case Attribute::TYPE::GENERIC_TYPE:
- {
- const auto& ct = static_cast<const GenericType&>(attr);
- suffix = ct.oid();
- break;
- }
+ {
+ const auto& ct = static_cast<const GenericType&>(attr);
+ suffix = ct.oid();
+ break;
+ }
case Attribute::TYPE::PKCS9_AT_SEQUENCE_NUMBER:
- {
- const auto& ct = static_cast<const PKCS9AtSequenceNumber&>(attr);
- suffix = std::to_string(ct.number());
- break;
- }
+ {
+ const auto& ct = static_cast<const PKCS9AtSequenceNumber&>(attr);
+ suffix = std::to_string(ct.number());
+ break;
+ }
case Attribute::TYPE::PKCS9_COUNTER_SIGNATURE:
- {
- const auto& ct = static_cast<const PKCS9CounterSignature&>(attr);
- const SignerInfo& signer = ct.signer();
- suffix = signer.issuer();
- break;
- }
+ {
+ const auto& ct = static_cast<const PKCS9CounterSignature&>(attr);
+ const SignerInfo& signer = ct.signer();
+ suffix = signer.issuer();
+ break;
+ }
case Attribute::TYPE::PKCS9_SIGNING_TIME:
- {
- const auto& ct = static_cast<const PKCS9SigningTime&>(attr);
- const PKCS9SigningTime::time_t time = ct.time();
- suffix = fmt::format("{}/{}/{} - {}:{}:{}",
- time[0], time[1], time[2], time[3], time[4], time[5]);
- break;
- }
+ {
+ const auto& ct = static_cast<const PKCS9SigningTime&>(attr);
+ const PKCS9SigningTime::time_t time = ct.time();
+ suffix = fmt::format("{}/{}/{} - {}:{}:{}", time[0], time[1], time[2],
+ time[3], time[4], time[5]);
+ break;
+ }
default:
- {
- }
+ {
+ }
}
os << fmt::format(" {}: {}\n", to_string(attr.type()), suffix);
-
}
}
std::ostream& operator<<(std::ostream& os, const Signature& signature) {
const ContentInfo& cinfo = signature.content_info();
os << fmt::format("Version: {:d}\n", signature.version());
- os << fmt::format("Digest Algorithm: {}\n", to_string(signature.digest_algorithm()));
+ os << fmt::format("Digest Algorithm: {}\n",
+ to_string(signature.digest_algorithm()));
if (const auto* spc_indirect_data = cinfo.value().cast<SpcIndirectData>()) {
- os << fmt::format("Content Info Digest: {}\n", hex_dump(spc_indirect_data->digest()));
+ os << fmt::format("Content Info Digest: {}\n",
+ hex_dump(spc_indirect_data->digest()));
if (!spc_indirect_data->file().empty()) {
os << fmt::format("Content Info File: {}\n", spc_indirect_data->file());
}
@@ -556,7 +599,26 @@ std::ostream& operator<<(std::ostream& os, const Signature& signature) {
Signature::it_const_crt certs = signature.certificates();
os << fmt::format("#{:d} certificate(s):\n", certs.size());
for (const x509& crt : certs) {
- os << fmt::format(" - {}\n", crt.issuer()); // TODO(romain): RSA-2048, ...
+ std::string key_info;
+ switch (crt.key_type()) {
+ case x509::KEY_TYPES::RSA:
+ case x509::KEY_TYPES::RSA_ALT:
+ case x509::KEY_TYPES::RSASSA_PSS:
+ {
+ std::unique_ptr<RsaInfo> rsa = crt.rsa_info();
+ key_info = rsa != nullptr ? fmt::format("RSA-{}", rsa->key_size()) : "RSA";
+ break;
+ }
+ case x509::KEY_TYPES::ECKEY:
+ case x509::KEY_TYPES::ECKEY_DH:
+ case x509::KEY_TYPES::ECDSA: key_info = "EC"; break;
+ default: break;
+ }
+ if (key_info.empty()) {
+ os << fmt::format(" - {}\n", crt.issuer());
+ } else {
+ os << fmt::format(" - {} ({})\n", crt.issuer(), key_info);
+ }
}
Signature::it_const_signers_t signers = signature.signers();
@@ -564,24 +626,27 @@ std::ostream& operator<<(std::ostream& os, const Signature& signature) {
for (const SignerInfo& signer : signers) {
os << fmt::format("Issuer: {}\n", signer.issuer());
os << fmt::format("Digest: {}\n", to_string(signer.digest_algorithm()));
- os << fmt::format("Encryption: {}\n", to_string(signer.encryption_algorithm()));
- os << fmt::format("Encrypted DG: {} ...\n", hex_dump(signer.encrypted_digest()).substr(0, 41));
- SignerInfo::it_const_attributes_t auth_attr = signer.authenticated_attributes();
+ os << fmt::format("Encryption: {}\n",
+ to_string(signer.encryption_algorithm()));
+ os << fmt::format("Encrypted DG: {} ...\n",
+ hex_dump(signer.encrypted_digest()).substr(0, 41));
+ SignerInfo::it_const_attributes_t auth_attr =
+ signer.authenticated_attributes();
if (!auth_attr.empty()) {
os << fmt::format("#{:d} authenticated attributes:\n", auth_attr.size());
print_attr(auth_attr, os);
}
- SignerInfo::it_const_attributes_t unauth_attr = signer.unauthenticated_attributes();
+ SignerInfo::it_const_attributes_t unauth_attr =
+ signer.unauthenticated_attributes();
if (!unauth_attr.empty()) {
- os << fmt::format("#{:d} un-authenticated attributes:\n", unauth_attr.size());
+ os << fmt::format("#{:d} un-authenticated attributes:\n",
+ unauth_attr.size());
print_attr(unauth_attr, os);
}
-
}
return os;
}
}
-}
diff --git a/deps/LIEF/src/PE/signature/SignatureParser.cpp b/deps/LIEF/src/PE/signature/SignatureParser.cpp
index bc654b8ed3b..99fe18357b3 100644
--- a/deps/LIEF/src/PE/signature/SignatureParser.cpp
+++ b/deps/LIEF/src/PE/signature/SignatureParser.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -53,11 +53,10 @@
#include "LIEF/PE/signature/OIDToString.hpp"
#include "logging.hpp"
-#include "messages.hpp"
#include "internal_utils.hpp"
+#include "mbedtls_init.hpp"
-namespace LIEF {
-namespace PE {
+namespace LIEF::PE {
inline uint8_t stream_get_tag(BinaryStream& stream) {
if (auto tag = stream.peek<uint8_t>()) {
@@ -69,7 +68,7 @@ inline uint8_t stream_get_tag(BinaryStream& stream) {
result<Signature> SignatureParser::parse(const std::string& path) {
std::ifstream binary(path, std::ios::in | std::ios::binary);
if (!binary) {
- LIEF_ERR("Can't open {}", path);
+ LIEF_ERR("Failed to open {}", path);
return make_error_code(lief_errors::file_error);
}
binary.unsetf(std::ios::skipws);
@@ -81,7 +80,8 @@ result<Signature> SignatureParser::parse(const std::string& path) {
return SignatureParser::parse(std::move(raw_blob));
}
-result<Signature> SignatureParser::parse(std::vector<uint8_t> data, bool skip_header) {
+result<Signature> SignatureParser::parse(std::vector<uint8_t> data,
+ bool skip_header) {
if (data.size() < 10) {
return make_error_code(lief_errors::read_error);
}
@@ -92,7 +92,7 @@ result<Signature> SignatureParser::parse(std::vector<uint8_t> data, bool skip_he
auto sig = SignatureParser::parse_signature(*stream);
if (!sig) {
- LIEF_ERR("Error while parsing the signature");
+ LIEF_ERR("Failed to parse signature");
return make_error_code(sig.error());
}
return sig.value();
@@ -107,9 +107,12 @@ result<Signature> SignatureParser::parse(BinaryStream& stream, bool skip_header)
}
result<Signature> SignatureParser::parse_signature(BinaryStream& stream) {
+ mbedtls_init();
+
Signature signature;
if (VectorStream::classof(stream)) {
- signature.original_raw_signature_ = static_cast<VectorStream&>(stream).content();
+ signature.original_raw_signature_ =
+ static_cast<VectorStream&>(stream).content();
} else if (SpanStream::classof(stream)) {
signature.original_raw_signature_ = static_cast<SpanStream&>(stream).content();
}
@@ -122,18 +125,19 @@ result<Signature> SignatureParser::parse_signature(BinaryStream& stream) {
auto oid = asn1r.read_oid();
if (!oid) {
- LIEF_INFO("Can't read OID value (pos: {})", stream.pos());
+ LIEF_INFO("Failed to read OID value (pos: {})", stream.pos());
return make_error_code(oid.error());
}
std::string& oid_str = oid.value();
if (oid_str != /* pkcs7-signedData */ "1.2.840.113549.1.7.2") {
- LIEF_INFO("Expecting OID pkcs7-signed-data at {:d} but got {}",
- stream.pos(), oid_to_string(oid_str));
+ LIEF_INFO("Expected OID pkcs7-signed-data at {:d} but got {}", stream.pos(),
+ oid_to_string(oid_str));
return make_error_code(lief_errors::read_error);
}
- tag = asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | 0);
+ tag =
+ asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | 0);
if (!tag) {
LIEF_INFO("Wrong tag: {} (pos: {:d})", asn1r.get_str_tag(), stream.pos());
return make_error_code(tag.error());
@@ -184,13 +188,13 @@ result<Signature> SignatureParser::parse_signature(BinaryStream& stream) {
// ==============================================================================
auto version = asn1r.read_int();
if (!version) {
- LIEF_INFO("Can't parse version (pos: {:d})", stream.pos());
+ LIEF_INFO("Failed to parse version (pos: {:d})", stream.pos());
return make_error_code(version.error());
}
const int32_t version_val = version.value();
- LIEF_DEBUG("pkcs7-signed-data.version: {:d}", version_val);
+ LIEF_DEBUG("PKCS7 signed data version: {:d}", version_val);
if (version_val != 1) {
- LIEF_INFO("pkcs7-signed-data.version is not 1 ({:d})", version_val);
+ LIEF_INFO("PKCS7 signed data version is not 1 ({:d})", version_val);
return make_error_code(lief_errors::not_supported);
}
signature.version_ = version_val;
@@ -211,23 +215,27 @@ result<Signature> SignatureParser::parse_signature(BinaryStream& stream) {
const size_t current_p = stream.pos();
auto alg = asn1r.read_alg();
if (!alg) {
- LIEF_INFO("Can't parse signed data digest algorithm (pos: {:d})", stream.pos());
+ LIEF_INFO("Failed to parse signed data digest algorithm (pos: {:d})",
+ stream.pos());
break;
}
if (stream.pos() == current_p) {
break;
}
- LIEF_DEBUG("pkcs7-signed-data.digest-algorithms: {}", oid_to_string(alg.value()));
+ LIEF_DEBUG("PKCS7 signed data digest algorithms: {}",
+ oid_to_string(alg.value()));
algorithms.push_back(std::move(alg.value()));
}
if (algorithms.empty()) {
- LIEF_INFO("pkcs7-signed-data.digest-algorithms no algorithms found");
+ LIEF_INFO("PKCS7 signed data digest algorithms: No algorithms found");
return make_error_code(lief_errors::read_error);
}
if (algorithms.size() > 1) {
- LIEF_INFO("pkcs7-signed-data.digest-algorithms {:d} algorithms found. Expecting only 1", algorithms.size());
+ LIEF_INFO("PKCS7 signed data digest algorithms: {:d} algorithms found, "
+ "expecting only 1",
+ algorithms.size());
return make_error_code(lief_errors::read_error);
}
@@ -243,7 +251,7 @@ result<Signature> SignatureParser::parse_signature(BinaryStream& stream) {
// =========================================================
tag = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
if (!tag) {
- LIEF_INFO("Wrong tag: {} can't parse content info (pos: {:d})",
+ LIEF_INFO("Wrong tag: {}, failed to parse content info (pos: {:d})",
asn1r.get_str_tag(), stream.pos());
return make_error_code(tag.error());
}
@@ -258,18 +266,21 @@ result<Signature> SignatureParser::parse_signature(BinaryStream& stream) {
content_info_stream.setpos(0);
ASN1Reader asn1r(content_info_stream);
auto content_type = asn1r.read_oid();
+ if (!content_type) {
+ return make_error_code(content_type.error());
+ }
const std::string& ctype_str = content_type.value();
- LIEF_WARN("Expecting SPC_INDIRECT_DATA at {:d} but got {}",
- stream.pos(), oid_to_string(ctype_str));
+ LIEF_WARN("Expecting SPC_INDIRECT_DATA at {:d} but got {}", stream.pos(),
+ oid_to_string(ctype_str));
return make_error_code(lief_errors::read_error);
}
- signature.content_info_ = std::move(*content_info);
+ signature.content_info_ = std::move(*content_info);
signature.content_info_start_ = stream.pos() + range.start;
- signature.content_info_end_ = stream.pos() + range.end;
- LIEF_DEBUG("ContentInfo range: {:d} -> {:d}",
- signature.content_info_start_, signature.content_info_end_);
+ signature.content_info_end_ = stream.pos() + range.end;
+ LIEF_DEBUG("ContentInfo range: {:d} -> {:d}", signature.content_info_start_,
+ signature.content_info_end_);
} else {
- LIEF_INFO("Fail to parse pkcs7-signed-data.content-info");
+ LIEF_INFO("Failed to parse pkcs7-signed-data.content-info");
}
stream.increment_pos(raw_content_size);
}
@@ -278,7 +289,8 @@ result<Signature> SignatureParser::parse_signature(BinaryStream& stream) {
// =========================================================
tag = asn1r.read_tag(/* certificates */
- MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC);
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC
+ );
if (tag) {
LIEF_DEBUG("Parse pkcs7-signed-data.certificates offset: {:d}", stream.pos());
SpanStream certificate_stream{stream.p(), tag.value()};
@@ -289,14 +301,15 @@ result<Signature> SignatureParser::parse_signature(BinaryStream& stream) {
// Makes chain
signature.certificates_ = std::move(*certificates);
} else {
- LIEF_INFO("Fail to parse pkcs7-signed-data.certificates");
+ LIEF_INFO("Failed to parse pkcs7-signed-data.certificates");
}
}
// CRLS (optional)
// =========================================================
tag = asn1r.read_tag(/* certificates */
- MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC | 1);
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC | 1
+ );
if (tag) {
LIEF_DEBUG("Parse pkcs7-signed-data.crls offset: {:d}", stream.pos());
const size_t crls_size = tag.value();
@@ -314,7 +327,7 @@ result<Signature> SignatureParser::parse_signature(BinaryStream& stream) {
stream.increment_pos(raw_content_size);
auto signer_info = parse_signer_infos(signers_stream);
if (!signer_info) {
- LIEF_INFO("Fail to parse pkcs7-signed-data.signer-infos");
+ LIEF_INFO("Failed to parse pkcs7-signed-data.signer-infos");
} else {
signature.signers_ = std::move(signer_info.value());
}
@@ -322,20 +335,27 @@ result<Signature> SignatureParser::parse_signature(BinaryStream& stream) {
// Tied signer info with x509 certificates
for (SignerInfo& signer : signature.signers_) {
- const x509* crt = signature.find_crt_issuer(signer.issuer(), as_vector(signer.serial_number()));
+ const x509* crt = signature.find_crt_issuer(signer.issuer(),
+ as_vector(signer.serial_number()));
if (crt != nullptr) {
signer.cert_ = std::make_unique<x509>(*crt);
} else {
- LIEF_INFO("Can't find x509 certificate associated with signer '{}'", signer.issuer());
+ LIEF_INFO("Failed to find x509 certificate associated with signer '{}'",
+ signer.issuer());
}
- const auto* cs = static_cast<const PKCS9CounterSignature*>(signer.get_attribute(Attribute::TYPE::PKCS9_COUNTER_SIGNATURE));
+ const auto* cs = static_cast<const PKCS9CounterSignature*>(
+ signer.get_attribute(Attribute::TYPE::PKCS9_COUNTER_SIGNATURE)
+ );
if (cs != nullptr) {
SignerInfo& cs_signer = const_cast<PKCS9CounterSignature*>(cs)->signer_;
- const x509* crt = signature.find_crt_issuer(cs_signer.issuer(), as_vector(cs_signer.serial_number()));
+ const x509* crt =
+ signature.find_crt_issuer(cs_signer.issuer(),
+ as_vector(cs_signer.serial_number()));
if (crt != nullptr) {
cs_signer.cert_ = std::make_unique<x509>(*crt);
} else {
- LIEF_INFO("Can't find x509 certificate associated with signer '{}'", signer.issuer());
+ LIEF_INFO("Failed to find x509 certificate associated with signer '{}'",
+ signer.issuer());
}
}
}
@@ -343,8 +363,8 @@ result<Signature> SignatureParser::parse_signature(BinaryStream& stream) {
return signature;
}
-result<ContentInfo>
-SignatureParser::parse_content_info(BinaryStream& stream, range_t& range) {
+result<ContentInfo> SignatureParser::parse_content_info(BinaryStream& stream,
+ range_t& range) {
// ==============================================================================
// ContentInfo
// ContentInfo ::= SEQUENCE {
@@ -358,12 +378,13 @@ SignatureParser::parse_content_info(BinaryStream& stream, range_t& range) {
auto content_type = asn1r.read_oid();
if (!content_type) {
- LIEF_INFO("Can't parse content-info.content-type (pos: {:d})", stream.pos());
+ LIEF_INFO("Failed to parse content-info.content-type (pos: {:d})",
+ stream.pos());
return make_error_code(content_type.error());
}
const std::string& ctype_str = content_type.value();
- LIEF_DEBUG("content-info.content-type: {}", oid_to_string(ctype_str));
+ LIEF_DEBUG("Content info content type: {}", oid_to_string(ctype_str));
if (ctype_str == /* SPC_INDIRECT_DATA_CONTEXT */ "1.3.6.1.4.1.311.2.1.4") {
auto spc_indirect_data = parse_spc_indirect_data(stream, range);
@@ -372,7 +393,7 @@ SignatureParser::parse_content_info(BinaryStream& stream, range_t& range) {
return content_info;
}
- LIEF_WARN("Can't parse SPC_INDIRECT_DATA (pos={})", stream.pos());
+ LIEF_WARN("Failed to parse SPC_INDIRECT_DATA (pos={})", stream.pos());
auto generic = std::make_unique<GenericContent>(ctype_str);
stream.setpos(0);
generic->raw_ = {stream.p(), stream.end()};
@@ -386,7 +407,7 @@ SignatureParser::parse_content_info(BinaryStream& stream, range_t& range) {
content_info.value_ = std::move(*tstinfo);
return content_info;
}
- LIEF_WARN("Can't parse PKCS9 TSTInfo (pos={})", stream.pos());
+ LIEF_WARN("Failed to parse PKCS9 TSTInfo (pos={})", stream.pos());
auto generic = std::make_unique<GenericContent>(ctype_str);
stream.setpos(0);
generic->raw_ = {stream.p(), stream.end()};
@@ -402,7 +423,8 @@ SignatureParser::parse_content_info(BinaryStream& stream, range_t& range) {
}
result<std::unique_ptr<SpcIndirectData>>
-SignatureParser::parse_spc_indirect_data(BinaryStream& stream, range_t& range) {
+ SignatureParser::parse_spc_indirect_data(BinaryStream& stream,
+ range_t& range) {
// ==============================================================================
// Then process SpcIndirectDataContent, which has this structure:
//
@@ -428,16 +450,19 @@ SignatureParser::parse_spc_indirect_data(BinaryStream& stream, range_t& range) {
// ==============================================================================
ASN1Reader asn1r(stream);
auto indirect_data = std::make_unique<SpcIndirectData>();
- auto tag = asn1r.read_tag(/* [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL */
- MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED);
+ auto tag =
+ asn1r.read_tag(/* [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL */
+ MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED
+ );
if (!tag) {
LIEF_INFO("Wrong tag: {} (pos: {:d})", asn1r.get_str_tag(), stream.pos());
return make_error_code(tag.error());
}
- range.end = stream.size();
+ range.end = stream.size();
tag = asn1r.read_tag(/* SpcIndirectDataContent */
- MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE
+ );
if (!tag) {
LIEF_INFO("Wrong tag: {} (pos: {:d})", asn1r.get_str_tag(), stream.pos());
return make_error_code(tag.error());
@@ -445,7 +470,8 @@ SignatureParser::parse_spc_indirect_data(BinaryStream& stream, range_t& range) {
range.start = stream.pos();
tag = asn1r.read_tag(/* SpcAttributeTypeAndOptionalValue */
- MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE
+ );
if (!tag) {
LIEF_INFO("Wrong tag: {} (pos: {:d})", asn1r.get_str_tag(), stream.pos());
return make_error_code(tag.error());
@@ -454,14 +480,19 @@ SignatureParser::parse_spc_indirect_data(BinaryStream& stream, range_t& range) {
// SpcAttributeTypeAndOptionalValue.type
auto spc_attr_type = asn1r.read_oid();
if (!spc_attr_type) {
- LIEF_INFO("Can't parse spc-attribute-type-and-optional-value.type (pos: {:d})", stream.pos());
+ LIEF_INFO(
+ "Failed to parse spc-attribute-type-and-optional-value.type (pos: {:d})",
+ stream.pos()
+ );
return make_error_code(spc_attr_type.error());
}
const std::string& spc_attr_type_str = spc_attr_type.value();
- LIEF_DEBUG("spc-attribute-type-and-optional-value.type: {}", oid_to_string(spc_attr_type_str));
+ LIEF_DEBUG("SPC attribute type and optional value type: {}",
+ oid_to_string(spc_attr_type_str));
if (spc_attr_type_str == /* SPC_PE_IMAGE_DATA */ "1.3.6.1.4.1.311.2.1.15") {
tag = asn1r.read_tag(/* SpcPeImageData ::= SEQUENCE */
- MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE
+ );
if (!tag) {
LIEF_INFO("Wrong tag: {} (pos: {:d})", asn1r.get_str_tag(), stream.pos());
@@ -470,40 +501,40 @@ SignatureParser::parse_spc_indirect_data(BinaryStream& stream, range_t& range) {
/* SpcPeImageData */ {
const size_t length = tag.value();
- SpanStream spc_data_stream{ stream.p(), length };
+ SpanStream spc_data_stream{stream.p(), length};
stream.increment_pos(spc_data_stream.size());
if (auto spc_data = parse_spc_pe_image_data(spc_data_stream)) {
const SpcPeImageData& spc_data_value = *spc_data;
indirect_data->file_ = spc_data_value.file;
indirect_data->flags_ = spc_data_value.flags;
- }
- else {
- LIEF_INFO("Can't parse SpcPeImageData");
+ } else {
+ LIEF_INFO("Failed to parse SpcPeImageData");
}
}
- }
- else if (spc_attr_type_str == /* SPC_LINK_(TYPE_2) */ "1.3.6.1.4.1.311.2.1.25" ||
- spc_attr_type_str == /* SPC_LINK_(TYPE_3) */ "1.3.6.1.4.1.311.2.1.28")
+ } else if (spc_attr_type_str ==
+ /* SPC_LINK_(TYPE_2) */ "1.3.6.1.4.1.311.2.1.25" ||
+ spc_attr_type_str == /* SPC_LINK_(TYPE_3) */ "1.3.6.1.4.1.311.2.1.28")
{
tag = asn1r.read_tag(/* SpcLink / URL ::= STRING */
- MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_INTEGER);
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC |
+ MBEDTLS_ASN1_INTEGER
+ );
if (!tag) {
LIEF_INFO("Wrong tag: {} (pos: {:d})", asn1r.get_str_tag(), stream.pos());
return make_error_code(tag.error());
}
const size_t length = tag.value();
- SpanStream spc_data_stream{ stream.p(), length };
+ SpanStream spc_data_stream{stream.p(), length};
stream.increment_pos(spc_data_stream.size());
if (auto link = parse_spc_link(spc_data_stream)) {
LIEF_DEBUG("SpcIndirectData.url = {}", *link);
indirect_data->url_ = link.value();
} else {
- LIEF_INFO("Can't parse SpcLink");
+ LIEF_INFO("Failed to parse SpcLink");
}
- }
- else {
+ } else {
LIEF_WARN("Expecting OID SPC_PE_IMAGE_DATA or SPC_LINK at {:d} but got {}",
stream.pos(), oid_to_string(spc_attr_type_str));
return make_error_code(lief_errors::read_error);
@@ -513,7 +544,8 @@ SignatureParser::parse_spc_indirect_data(BinaryStream& stream, range_t& range) {
// DigestInfo ::= SEQUENCE
// ================================================
tag = asn1r.read_tag(/* DigestInfo */
- MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE
+ );
if (!tag) {
LIEF_INFO("Wrong tag {} for DigestInfo ::= SEQUENCE (pos: {:d})",
@@ -523,12 +555,14 @@ SignatureParser::parse_spc_indirect_data(BinaryStream& stream, range_t& range) {
auto alg_identifier = asn1r.read_alg();
if (!alg_identifier) {
- LIEF_INFO("Can't parse SignedData.contentInfo.messageDigest.digestAlgorithm (pos: {:d})",
+ LIEF_INFO("Failed to parse "
+ "SignedData.contentInfo.messageDigest.digestAlgorithm (pos: {:d})",
stream.pos());
return make_error_code(alg_identifier.error());
}
- LIEF_DEBUG("spc-indirect-data-content.digest-algorithm {}", oid_to_string(alg_identifier.value()));
+ LIEF_DEBUG("SPC indirect data content digest algorithm: {}",
+ oid_to_string(alg_identifier.value()));
ALGORITHMS algo = algo_from_oid(alg_identifier.value());
if (algo == ALGORITHMS::UNKNOWN) {
LIEF_WARN("LIEF does not handle {}", alg_identifier.value());
@@ -541,25 +575,50 @@ SignatureParser::parse_spc_indirect_data(BinaryStream& stream, range_t& range) {
// in SignerInfo and the parent PKCS #7 digestAlgorithms fields.
auto digest = asn1r.read_octet_string();
if (!digest) {
- LIEF_INFO("Can't parse SignedData.contentInfo.messageDigest.digest (pos={})",
- stream.pos());
+ LIEF_INFO(
+ "Failed to parse SignedData.contentInfo.messageDigest.digest (pos={})",
+ stream.pos()
+ );
return make_error_code(digest.error());
}
indirect_data->digest_ = std::move(digest.value());
- LIEF_DEBUG("spc-indirect-data-content.digest: {}",
+ LIEF_DEBUG("SPC indirect data content digest: {}",
hex_dump(indirect_data->digest_));
return indirect_data;
}
-result<SignatureParser::x509_certificates_t> SignatureParser::parse_certificates(BinaryStream& stream) {
+result<SignatureParser::x509_certificates_t>
+ SignatureParser::parse_certificates(BinaryStream& stream) {
ASN1Reader asn1r(stream);
x509_certificates_t certificates;
const uint64_t cert_end_p = stream.size();
while (stream.pos() < cert_end_p) {
+ // CMS CertificateChoices (RFC 5652) allows non-X509 entries
+ // tagged [0]..[3] IMPLICIT (extendedCertificate, v1AttrCert, v2AttrCert,
+ // otherCertificateFormat). mbedtls only handles the plain X509 SEQUENCE,
+ // so peek the tag and skip those alternates.
+ const uint8_t tag = stream_get_tag(stream);
+ if ((tag & MBEDTLS_ASN1_CONTEXT_SPECIFIC) == MBEDTLS_ASN1_CONTEXT_SPECIFIC) {
+ // TODO(romain): We might want to process these certificates
+ auto skipped = asn1r.read_tag(tag);
+ if (!skipped) {
+ LIEF_WARN("Failed to skip non-X509 CertificateChoices entry "
+ "(tag: {:#04x}, pos: {:d}, idx: {})",
+ tag, stream.pos(), certificates.size());
+ return certificates;
+ }
+ LIEF_DEBUG("Skipping non-X509 CertificateChoices entry "
+ "(tag: {:#04x}, size: {}, idx: {})",
+ tag, *skipped, certificates.size());
+ stream.increment_pos(*skipped);
+ continue;
+ }
auto cert = asn1r.read_cert();
if (!cert) {
- LIEF_INFO("Can't parse X509 cert pkcs7-signed-data.certificates (pos: {:d})", stream.pos());
+ LIEF_WARN("Failed to parse X509 cert pkcs7-signed-data.certificates (pos: "
+ "{:d}, idx: {})",
+ stream.pos(), certificates.size());
return certificates;
}
@@ -576,7 +635,8 @@ result<SignatureParser::x509_certificates_t> SignatureParser::parse_certificates
}
-result<SignatureParser::signer_infos_t> SignatureParser::parse_signer_infos(BinaryStream& stream) {
+result<SignatureParser::signer_infos_t>
+ SignatureParser::parse_signer_infos(BinaryStream& stream) {
const uintptr_t end_set = stream.size();
signer_infos_t infos;
@@ -588,10 +648,13 @@ result<SignatureParser::signer_infos_t> SignatureParser::parse_signer_infos(Bina
const size_t current_p = stream.pos();
auto tag = asn1r.read_tag(/* SignerInfo */
- MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE
+ );
if (!tag) {
- LIEF_INFO("Wrong tag: {} for pkcs7-signed-data.signer-infos SEQUENCE (pos: {:d})",
- asn1r.get_str_tag(), stream.pos());
+ LIEF_INFO(
+ "Wrong tag: {} for pkcs7-signed-data.signer-infos SEQUENCE (pos: {:d})",
+ asn1r.get_str_tag(), stream.pos()
+ );
break;
}
@@ -600,14 +663,18 @@ result<SignatureParser::signer_infos_t> SignatureParser::parse_signer_infos(Bina
// =======================================================
auto version = asn1r.read_int();
if (!version) {
- LIEF_INFO("Can't parse pkcs7-signed-data.signer-info.version (pos: {:d})", stream.pos());
+ LIEF_INFO(
+ "Failed to parse pkcs7-signed-data.signer-info.version (pos: {:d})",
+ stream.pos()
+ );
break;
}
int32_t version_val = version.value();
- LIEF_DEBUG("pkcs7-signed-data.signer-info.version: {}", version_val);
+ LIEF_DEBUG("PKCS7 signed data signer info version: {}", version_val);
if (version_val != 1) {
- LIEF_DEBUG("pkcs7-signed-data.signer-info.version: Bad version ({:d})", version_val);
+ LIEF_DEBUG("PKCS7 signed data signer info version: Bad version ({:d})",
+ version_val);
break;
}
signer.version_ = version_val;
@@ -618,36 +685,47 @@ result<SignatureParser::signer_infos_t> SignatureParser::parse_signer_infos(Bina
// serialNumber CertificateSerialNumber
// }
//
- // For Name see: https://github.com/ARMmbed/mbedtls/blob/9e4d4387f07326fff227a40f76c25e5181b1b1e2/library/x509_crt.c#L1180
+ // For Name see:
+ // https://github.com/ARMmbed/mbedtls/blob/9e4d4387f07326fff227a40f76c25e5181b1b1e2/library/x509_crt.c#L1180
// =======================================================
tag = asn1r.read_tag(/* Name */
- MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE
+ );
if (!tag) {
LIEF_INFO("Wrong tag: {} for "
- "pkcs7-signed-data.signer-infos.issuer-and-serial-number.issuer (pos: {:d})",
+ "pkcs7-signed-data.signer-infos.issuer-and-serial-number.issuer "
+ "(pos: {:d})",
asn1r.get_str_tag(), stream.pos());
break;
}
auto issuer = asn1r.x509_read_names();
if (!issuer) {
- LIEF_INFO("Can't parse pkcs7-signed-data.signer-infos.issuer-and-serial-number.issuer (pos: {:d})",
+ LIEF_INFO("Failed to parse "
+ "pkcs7-signed-data.signer-infos.issuer-and-serial-number.issuer "
+ "(pos: {:d})",
stream.pos());
break;
}
- LIEF_DEBUG("pkcs7-signed-data.signer-infos.issuer-and-serial-number.issuer: {} (pos: {:d})",
+ LIEF_DEBUG("PKCS7 signed data signer infos issuer and serial number issuer: "
+ "{} (pos: {:d})",
issuer.value(), stream.pos());
signer.issuer_ = std::move(issuer.value());
auto sn = asn1r.x509_read_serial();
if (!sn) {
- LIEF_INFO("Can't parse pkcs7-signed-data.signer-infos.issuer-and-serial-number.serial-number (pos: {:d})",
+ LIEF_INFO("Failed to parse "
+ "pkcs7-signed-data.signer-infos.issuer-and-serial-number.serial-"
+ "number (pos: {:d})",
stream.pos());
break;
}
- LIEF_DEBUG("pkcs7-signed-data.signer-infos.issuer-and-serial-number.serial-number {}", hex_dump(sn.value()));
+ LIEF_DEBUG(
+ "pkcs7-signed-data.signer-infos.issuer-and-serial-number.serial-number {}",
+ hex_dump(sn.value())
+ );
signer.serialno_ = std::move(sn.value());
// =======================================================
@@ -657,10 +735,13 @@ result<SignatureParser::signer_infos_t> SignatureParser::parse_signer_infos(Bina
auto digest_alg = asn1r.read_alg();
if (!digest_alg) {
- LIEF_INFO("Can't parse pkcs7-signed-data.signer-infos.digest-algorithm (pos: {:d})", stream.pos());
+ LIEF_INFO("Failed to parse "
+ "pkcs7-signed-data.signer-infos.digest-algorithm (pos: {:d})",
+ stream.pos());
break;
}
- LIEF_DEBUG("pkcs7-signed-data.signer-infos.digest-algorithm: {}", oid_to_string(digest_alg.value()));
+ LIEF_DEBUG("PKCS7 signed data signer infos digest algorithm: {}",
+ oid_to_string(digest_alg.value()));
ALGORITHMS dg_algo = algo_from_oid(digest_alg.value());
if (dg_algo == ALGORITHMS::UNKNOWN) {
@@ -675,19 +756,24 @@ result<SignatureParser::signer_infos_t> SignatureParser::parse_signer_infos(Bina
// =======================================================
{
const uint64_t auth_attr_start = stream.pos();
- tag = asn1r.read_tag(/* authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL */
- MBEDTLS_ASN1_CONSTRUCTED |
- MBEDTLS_ASN1_CONTEXT_SPECIFIC | 0);
+ tag = asn1r.read_tag(/* authenticatedAttributes [0] IMPLICIT Attributes
+ OPTIONAL */
+ MBEDTLS_ASN1_CONSTRUCTED |
+ MBEDTLS_ASN1_CONTEXT_SPECIFIC | 0
+ );
if (tag) {
const uint64_t auth_attr_end = stream.pos() + tag.value();
SpanStream auth_stream(stream.p(), tag.value());
stream.increment_pos(auth_stream.size());
auto authenticated_attributes = parse_attributes(auth_stream);
if (!authenticated_attributes) {
- LIEF_INFO("Fail to parse pkcs7-signed-data.signer-infos.authenticated-attributes");
+ LIEF_INFO("Failed to parse "
+ "pkcs7-signed-data.signer-infos.authenticated-attributes");
} else {
- signer.raw_auth_data_ = {stream.start() + auth_attr_start, stream.start() + auth_attr_end};
- signer.authenticated_attributes_ = std::move(authenticated_attributes.value());
+ signer.raw_auth_data_ = {stream.start() + auth_attr_start,
+ stream.start() + auth_attr_end};
+ signer.authenticated_attributes_ =
+ std::move(authenticated_attributes.value());
}
}
}
@@ -698,11 +784,13 @@ result<SignatureParser::signer_infos_t> SignatureParser::parse_signer_infos(Bina
{
auto digest_enc_alg = asn1r.read_alg();
if (!digest_enc_alg) {
- LIEF_INFO("Can't parse pkcs7-signed-data.signer-infos.digest-encryption-algorithm (pos: {:d})",
+ LIEF_INFO("Failed to parse "
+ "pkcs7-signed-data.signer-infos.digest-encryption-algorithm "
+ "(pos: {:d})",
stream.pos());
return make_error_code(digest_enc_alg.error());
}
- LIEF_DEBUG("pkcs7-signed-data.signer-infos.digest-encryption-algorithm: {}",
+ LIEF_DEBUG("PKCS7 signed data signer infos digest encryption algorithm: {}",
oid_to_string(digest_enc_alg.value()));
ALGORITHMS dg_enc_algo = algo_from_oid(digest_enc_alg.value());
@@ -719,10 +807,12 @@ result<SignatureParser::signer_infos_t> SignatureParser::parse_signer_infos(Bina
{
auto enc_digest = asn1r.read_octet_string();
if (!enc_digest) {
- LIEF_INFO("Can't parse pkcs7-signed-data.signer-infos.encrypted-digest (pos: {:d})", stream.pos());
+ LIEF_INFO("Failed to parse "
+ "pkcs7-signed-data.signer-infos.encrypted-digest (pos: {:d})",
+ stream.pos());
return make_error_code(enc_digest.error());
}
- LIEF_DEBUG("pkcs7-signed-data.signer-infos.encrypted-digest: {}",
+ LIEF_DEBUG("PKCS7 signed data signer infos encrypted digest: {}",
hex_dump(enc_digest.value()).substr(0, 10));
signer.encrypted_digest_ = enc_digest.value();
}
@@ -731,17 +821,21 @@ result<SignatureParser::signer_infos_t> SignatureParser::parse_signer_infos(Bina
// Unauthenticated Attributes
// =======================================================
{
- tag = asn1r.read_tag(/* unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL */
- MBEDTLS_ASN1_CONSTRUCTED |
- MBEDTLS_ASN1_CONTEXT_SPECIFIC | 1);
+ tag = asn1r.read_tag(/* unauthenticatedAttributes [1] IMPLICIT Attributes
+ OPTIONAL */
+ MBEDTLS_ASN1_CONSTRUCTED |
+ MBEDTLS_ASN1_CONTEXT_SPECIFIC | 1
+ );
if (tag) {
SpanStream unauth_stream(stream.p(), tag.value());
stream.increment_pos(unauth_stream.size());
auto unauthenticated_attributes = parse_attributes(unauth_stream);
if (!unauthenticated_attributes) {
- LIEF_INFO("Fail to parse pkcs7-signed-data.signer-infos.unauthenticated-attributes");
+ LIEF_INFO("Failed to parse "
+ "pkcs7-signed-data.signer-infos.unauthenticated-attributes");
} else {
- signer.unauthenticated_attributes_ = std::move(unauthenticated_attributes.value());
+ signer.unauthenticated_attributes_ =
+ std::move(unauthenticated_attributes.value());
}
}
}
@@ -756,7 +850,7 @@ result<SignatureParser::signer_infos_t> SignatureParser::parse_signer_infos(Bina
result<SignatureParser::attributes_t>
-SignatureParser::parse_attributes(BinaryStream& stream) {
+ SignatureParser::parse_attributes(BinaryStream& stream) {
// Attributes ::= SET OF Attribute
//
// Attribute ::= SEQUENCE
@@ -769,25 +863,28 @@ SignatureParser::parse_attributes(BinaryStream& stream) {
while (stream) {
auto tag = asn1r.read_tag(/* Attribute ::= SEQUENCE */
- MBEDTLS_ASN1_SEQUENCE | MBEDTLS_ASN1_CONSTRUCTED);
+ MBEDTLS_ASN1_SEQUENCE | MBEDTLS_ASN1_CONSTRUCTED
+ );
if (!tag) {
- LIEF_INFO("Can't parse attribute (pos: {:d})", stream.pos());
+ LIEF_INFO("Failed to parse attribute (pos: {:d})", stream.pos());
break;
}
auto oid = asn1r.read_oid();
if (!oid) {
- LIEF_INFO("Can't parse attribute.type (pos: {:d})", stream.pos());
+ LIEF_INFO("Failed to parse attribute.type (pos: {:d})", stream.pos());
break;
}
tag = asn1r.read_tag(/* AttributeSetValue */
- MBEDTLS_ASN1_SET | MBEDTLS_ASN1_CONSTRUCTED);
+ MBEDTLS_ASN1_SET | MBEDTLS_ASN1_CONSTRUCTED
+ );
if (!tag) {
- LIEF_DEBUG("attribute.values: Unable to get set for {}", oid.value());
+ LIEF_DEBUG("Attribute values: Failed to get set for {}", oid.value());
break;
}
const size_t value_set_size = tag.value();
- LIEF_DEBUG("attribute.values: {} ({:d} bytes)", oid_to_string(oid.value()), value_set_size);
+ LIEF_DEBUG("Attribute values: {} ({:d} bytes)", oid_to_string(oid.value()),
+ value_set_size);
SpanStream value_stream(stream.p(), value_set_size);
@@ -798,124 +895,121 @@ SignatureParser::parse_attributes(BinaryStream& stream) {
if (oid_str == /* contentType */ "1.2.840.113549.1.9.3") {
auto res = parse_content_type(value_stream);
if (!res || res.value() == nullptr) {
- LIEF_INFO("Can't parse content-type attribute");
+ LIEF_INFO("Failed to parse content-type attribute");
} else {
attributes.push_back(std::move(res.value()));
}
- }
-
- else if (oid_str == /* SpcSpOpusInfo */ "1.3.6.1.4.1.311.2.1.12") {
+ } else if (oid_str == /* SpcSpOpusInfo */ "1.3.6.1.4.1.311.2.1.12") {
auto res = parse_spc_sp_opus_info(value_stream);
if (!res) {
- LIEF_INFO("Can't parse spc-sp-opus-info attribute");
+ LIEF_INFO("Failed to parse spc-sp-opus-info attribute");
} else {
SpcSpOpusInfo info = std::move(res.value());
- attributes.push_back(std::make_unique<PE::SpcSpOpusInfo>(std::move(info.program_name),
- std::move(info.more_info)));
+ attributes.push_back(std::make_unique<PE::SpcSpOpusInfo>(
+ std::move(info.program_name), std::move(info.more_info)
+ ));
}
- }
-
- else if (oid_str == /* Ms-CounterSign */ "1.3.6.1.4.1.311.3.3.1") {
+ } else if (oid_str == /* Ms-CounterSign */ "1.3.6.1.4.1.311.3.3.1") {
if (auto res = parse_ms_counter_sign(value_stream)) {
attributes.push_back(std::move(*res));
} else {
- LIEF_INFO("Can't parse ms-counter-sign attribute");
+ LIEF_INFO("Failed to parse ms-counter-sign attribute");
}
- }
-
- else if (oid_str == /* pkcs9-CounterSignature */ "1.2.840.113549.1.9.6") {
+ } else if (oid_str == /* pkcs9-CounterSignature */ "1.2.840.113549.1.9.6") {
auto res = parse_pkcs9_counter_sign(value_stream);
if (!res) {
- LIEF_INFO("Can't parse pkcs9-counter-sign attribute");
+ LIEF_INFO("Failed to parse pkcs9-counter-sign attribute");
} else {
const std::vector<SignerInfo>& signers = res.value();
if (signers.empty()) {
- LIEF_INFO("Can't parse signer info associated with the pkcs9-counter-sign");
+ LIEF_INFO("No signer info in pkcs9-counter-sign");
} else if (signers.size() > 1) {
- LIEF_INFO("More than one signer info associated with the pkcs9-counter-sign");
+ LIEF_INFO(
+ "More than one signer info associated with the pkcs9-counter-sign"
+ );
} else {
- attributes.push_back(std::make_unique<PKCS9CounterSignature>(signers.back()));
+ attributes.push_back(
+ std::make_unique<PKCS9CounterSignature>(signers.back())
+ );
}
}
- }
-
- else if (oid_str == /* Ms-SpcNestedSignature */ "1.3.6.1.4.1.311.2.4.1") {
+ } else if (oid_str == /* Ms-SpcNestedSignature */ "1.3.6.1.4.1.311.2.4.1") {
auto res = parse_ms_spc_nested_signature(value_stream);
if (!res) {
- LIEF_INFO("Can't parse ms-spc-nested-signature attribute");
+ LIEF_INFO("Failed to parse ms-spc-nested-signature attribute");
} else {
- attributes.push_back(std::make_unique<MsSpcNestedSignature>(std::move(res.value())));
+ attributes.push_back(
+ std::make_unique<MsSpcNestedSignature>(std::move(res.value()))
+ );
}
- }
-
- else if (oid_str == /* pkcs9-MessageDigest */ "1.2.840.113549.1.9.4") {
+ } else if (oid_str == /* pkcs9-MessageDigest */ "1.2.840.113549.1.9.4") {
auto res = parse_pkcs9_message_digest(value_stream);
if (!res) {
- LIEF_INFO("Can't parse pkcs9-message-digest attribute");
+ LIEF_INFO("Failed to parse pkcs9-message-digest attribute");
} else {
- attributes.push_back(std::make_unique<PKCS9MessageDigest>(std::move(res.value())));
+ attributes.push_back(
+ std::make_unique<PKCS9MessageDigest>(std::move(res.value()))
+ );
}
- }
-
- else if (oid_str == /* Ms-SpcStatementType */ "1.3.6.1.4.1.311.2.1.11") {
+ } else if (oid_str == /* Ms-SpcStatementType */ "1.3.6.1.4.1.311.2.1.11") {
auto res = parse_ms_spc_statement_type(value_stream);
if (!res) {
- LIEF_INFO("Can't parse ms-spc-statement-type attribute");
+ LIEF_INFO("Failed to parse ms-spc-statement-type attribute");
} else {
- attributes.push_back(std::make_unique<MsSpcStatementType>(std::move(res.value())));
+ attributes.push_back(
+ std::make_unique<MsSpcStatementType>(std::move(res.value()))
+ );
}
- }
-
- else if (oid_str == /* pkcs9-at-SequenceNumber */ "1.2.840.113549.1.9.25.4") {
+ } else if (oid_str ==
+ /* pkcs9-at-SequenceNumber */ "1.2.840.113549.1.9.25.4")
+ {
auto res = parse_pkcs9_at_sequence_number(value_stream);
if (!res) {
- LIEF_INFO("Can't parse pkcs9-at-SequenceNumber attribute");
+ LIEF_INFO("Failed to parse pkcs9-at-SequenceNumber attribute");
} else {
attributes.push_back(std::make_unique<PKCS9AtSequenceNumber>(*res));
}
- }
-
- else if (oid_str == /* pkcs9-signing-time */ "1.2.840.113549.1.9.5") {
+ } else if (oid_str == /* pkcs9-signing-time */ "1.2.840.113549.1.9.5") {
auto res = parse_pkcs9_signing_time(value_stream);
if (!res) {
- LIEF_INFO("Can't parse pkcs9-signing-time attribute");
+ LIEF_INFO("Failed to parse pkcs9-signing-time attribute");
} else {
attributes.push_back(std::make_unique<PKCS9SigningTime>(*res));
}
- }
-
- else if (oid_str == /* szOID_PLATFORM_MANIFEST_BINARY_ID */ "1.3.6.1.4.1.311.10.3.28") {
+ } else if (oid_str ==
+ /* szOID_PLATFORM_MANIFEST_BINARY_ID */ "1.3.6.1.4.1.311.10.3.28")
+ {
if (auto res = parse_ms_platform_manifest_binary_id(value_stream)) {
attributes.push_back(std::move(*res));
} else {
- LIEF_INFO("Can't parse ms-szoid-platform-manifest-binary-id");
+ LIEF_INFO("Failed to parse ms-szoid-platform-manifest-binary-id");
}
- }
-
- else if (oid_str == /* SPC_RELAXED_PE_MARKER_CHECK_OBJID */ "1.3.6.1.4.1.311.2.6.1") {
+ } else if (oid_str ==
+ /* SPC_RELAXED_PE_MARKER_CHECK_OBJID */ "1.3.6.1.4.1.311.2.6.1")
+ {
if (auto res = parse_spc_relaxed_pe_marker_check(value_stream)) {
attributes.push_back(std::move(*res));
} else {
- LIEF_INFO("Can't parse spc-relaxed-pe-marker-check");
+ LIEF_INFO("Failed to parse spc-relaxed-pe-marker-check");
}
- }
-
- else if (oid_str == /* SIGNING_CERTIFICATE_V2 */ "1.2.840.113549.1.9.16.2.47") {
+ } else if (oid_str ==
+ /* SIGNING_CERTIFICATE_V2 */ "1.2.840.113549.1.9.16.2.47")
+ {
if (auto res = parse_signing_certificate_v2(value_stream)) {
attributes.push_back(std::move(*res));
} else {
- LIEF_INFO("Can't parse signing-certificate-v2");
+ LIEF_INFO("Failed to parse signing-certificate-v2");
}
- }
-
- else {
+ } else {
LIEF_INFO("Unknown OID: {}", oid_str);
- attributes.push_back(std::make_unique<GenericType>(oid_str, value_stream.content()));
+ attributes.push_back(
+ std::make_unique<GenericType>(oid_str, value_stream.content())
+ );
break;
}
if (current_p >= value_stream.pos()) {
- LIEF_INFO("Endless loop detected!");
+ LIEF_INFO("Endless loop detected");
break;
}
@@ -929,7 +1023,8 @@ SignatureParser::parse_attributes(BinaryStream& stream) {
return attributes;
}
-result<std::unique_ptr<Attribute>> SignatureParser::parse_content_type(BinaryStream& stream) {
+result<std::unique_ptr<Attribute>>
+ SignatureParser::parse_content_type(BinaryStream& stream) {
/*
*
* ContentType ::= OBJECT IDENTIFIER
@@ -939,16 +1034,17 @@ result<std::unique_ptr<Attribute>> SignatureParser::parse_content_type(BinaryStr
ASN1Reader asn1r(stream);
auto oid = asn1r.read_oid();
if (!oid) {
- LIEF_INFO("Can't parse content-type.oid (pos: {:d})", stream.pos());
+ LIEF_INFO("Failed to parse content-type.oid (pos: {:d})", stream.pos());
return make_error_code(oid.error());
}
const std::string& oid_str = oid.value();
- LIEF_DEBUG("content-type.oid: {}", oid_to_string(oid_str));
- LIEF_DEBUG("content-type remaining bytes: {}", stream.size() - stream.pos());
+ LIEF_DEBUG("Content type OID: {}", oid_to_string(oid_str));
+ LIEF_DEBUG("Content type remaining bytes: {}", stream.size() - stream.pos());
return std::unique_ptr<Attribute>{new ContentType{oid_str}};
}
-result<SignatureParser::SpcSpOpusInfo> SignatureParser::parse_spc_sp_opus_info(BinaryStream& stream) {
+result<SignatureParser::SpcSpOpusInfo>
+ SignatureParser::parse_spc_sp_opus_info(BinaryStream& stream) {
// SpcSpOpusInfo ::= SEQUENCE {
// programName [0] EXPLICIT SpcString OPTIONAL,
// moreInfo [1] EXPLICIT SpcLink OPTIONAL
@@ -957,32 +1053,35 @@ result<SignatureParser::SpcSpOpusInfo> SignatureParser::parse_spc_sp_opus_info(B
ASN1Reader asn1r(stream);
SpcSpOpusInfo info;
auto tag = asn1r.read_tag(/* SpcSpOpusInfo ::= SEQUENCE */
- MBEDTLS_ASN1_SEQUENCE | MBEDTLS_ASN1_CONSTRUCTED);
+ MBEDTLS_ASN1_SEQUENCE | MBEDTLS_ASN1_CONSTRUCTED
+ );
if (!tag) {
- LIEF_INFO("Wrong tag for spc-sp-opus-info SEQUENCE : {} (pos: {:d})",
+ LIEF_INFO("Wrong tag for spc-sp-opus-info SEQUENCE: {} (pos: {:d})",
asn1r.get_str_tag(), stream.pos());
return make_error_code(tag.error());
}
tag = asn1r.read_tag(/* programName [0] EXPLICIT SpcString OPTIONAL */
- MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED);
+ MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED
+ );
if (tag) {
SpanStream spc_string_stream(stream.p(), tag.value());
auto program_name = parse_spc_string(spc_string_stream);
if (!program_name) {
- LIEF_INFO("Fail to parse spc-sp-opus-info.program-name");
+ LIEF_INFO("Failed to parse spc-sp-opus-info.program-name");
} else {
info.program_name = program_name.value();
}
stream.increment_pos(spc_string_stream.size());
}
tag = asn1r.read_tag(/* moreInfo [1] EXPLICIT SpcLink OPTIONAL */
- MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | 1);
+ MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | 1
+ );
if (tag) {
SpanStream spc_link_stream(stream.p(), tag.value());
auto more_info = parse_spc_link(spc_link_stream);
if (!more_info) {
- LIEF_INFO("Fail to parse spc-sp-opus-info.more-info");
+ LIEF_INFO("Failed to parse spc-sp-opus-info.more-info");
} else {
info.more_info = more_info.value();
}
@@ -991,7 +1090,8 @@ result<SignatureParser::SpcSpOpusInfo> SignatureParser::parse_spc_sp_opus_info(B
return info;
}
-result<std::unique_ptr<Attribute>> SignatureParser::parse_ms_counter_sign(BinaryStream& stream) {
+result<std::unique_ptr<Attribute>>
+ SignatureParser::parse_ms_counter_sign(BinaryStream& stream) {
/*
*
* SignedData ::= SEQUENCE {
@@ -1017,18 +1117,19 @@ result<std::unique_ptr<Attribute>> SignatureParser::parse_ms_counter_sign(Binary
auto oid = asn1r.read_oid();
if (!oid) {
- LIEF_INFO("Can't read OID value (pos: {})", stream.pos());
+ LIEF_INFO("Failed to read OID value (pos: {})", stream.pos());
return make_error_code(oid.error());
}
std::string& oid_str = oid.value();
if (oid_str != /* pkcs7-signedData */ "1.2.840.113549.1.7.2") {
- LIEF_INFO("Expecting OID pkcs7-signed-data at {:d} but got {}",
- stream.pos(), oid_to_string(oid_str));
+ LIEF_INFO("Expected OID pkcs7-signed-data at {:d} but got {}", stream.pos(),
+ oid_to_string(oid_str));
return make_error_code(lief_errors::read_error);
}
- tag = asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | 0);
+ tag =
+ asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | 0);
if (!tag) {
LIEF_INFO("Wrong tag: {} (pos: {:d})", asn1r.get_str_tag(), stream.pos());
return make_error_code(tag.error());
@@ -1050,11 +1151,12 @@ result<std::unique_ptr<Attribute>> SignatureParser::parse_ms_counter_sign(Binary
{
auto version = asn1r.read_int();
if (!version) {
- LIEF_INFO("Can't parse version (pos: {:d})", stream.pos());
+ LIEF_INFO("Failed to parse version (pos: {:d})", stream.pos());
return make_error_code(version.error());
}
const int32_t version_val = version.value();
- LIEF_DEBUG("ms_counter_sig.pkcs7-signed-data.version: {:d}", version_val);
+ LIEF_DEBUG("MS counter signature PKCS7 signed data version: {:d}",
+ version_val);
counter_sig->version_ = version.value();
}
@@ -1080,24 +1182,30 @@ result<std::unique_ptr<Attribute>> SignatureParser::parse_ms_counter_sign(Binary
const size_t current_p = stream.pos();
auto alg = asn1r.read_alg();
if (!alg) {
- LIEF_INFO("Can't parse signed data digest algorithm (pos: {:d})", stream.pos());
+ LIEF_INFO("Failed to parse signed data digest algorithm (pos: {:d})",
+ stream.pos());
break;
}
if (stream.pos() == current_p) {
break;
}
- LIEF_DEBUG("ms_counter_sig.pkcs7-signed-data.digest-algorithms: {}", oid_to_string(alg.value()));
+ LIEF_DEBUG("MS counter signature PKCS7 signed data digest algorithms: {}",
+ oid_to_string(alg.value()));
algorithms.push_back(std::move(alg.value()));
}
if (algorithms.empty()) {
- LIEF_INFO("ms_counter_sig.pkcs7-signed-data.digest-algorithms no algorithms found");
+ LIEF_INFO(
+ "ms_counter_sig.pkcs7-signed-data.digest-algorithms no algorithms found"
+ );
return make_error_code(lief_errors::read_error);
}
if (algorithms.size() > 1) {
- LIEF_INFO("ms_counter_sig.pkcs7-signed-data.digest-algorithms multiple algorithms");
+ LIEF_INFO(
+ "ms_counter_sig.pkcs7-signed-data.digest-algorithms multiple algorithms"
+ );
return make_error_code(lief_errors::read_error);
}
counter_sig->digest_algorithm_ = algo_from_oid(algorithms.back());
@@ -1114,7 +1222,7 @@ result<std::unique_ptr<Attribute>> SignatureParser::parse_ms_counter_sign(Binary
{
auto tag = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
if (!tag) {
- LIEF_INFO("Wrong tag: {} can't parse content info (pos: {:d})",
+ LIEF_INFO("Wrong tag: {}, failed to parse content info (pos: {:d})",
asn1r.get_str_tag(), stream.pos());
return make_error_code(tag.error());
}
@@ -1124,11 +1232,11 @@ result<std::unique_ptr<Attribute>> SignatureParser::parse_ms_counter_sign(Binary
range_t range = {0, 0};
if (auto content_info = parse_content_info(content_info_stream, range)) {
counter_sig->content_info_ = std::move(*content_info);
- //signature.content_info_start_ = stream.pos() + range.start;
- //signature.content_info_end_ = stream.pos() + range.end;
+ // signature.content_info_start_ = stream.pos() + range.start;
+ // signature.content_info_end_ = stream.pos() + range.end;
LIEF_DEBUG("ContentInfo range: {} -> {}", range.start, range.end);
} else {
- LIEF_INFO("Fail to parse ms_counter_sig.pkcs7-signed-data.content-info");
+ LIEF_INFO("Failed to parse ms_counter_sig.pkcs7-signed-data.content-info");
}
stream.increment_pos(raw_content_size);
}
@@ -1145,8 +1253,10 @@ result<std::unique_ptr<Attribute>> SignatureParser::parse_ms_counter_sign(Binary
auto tag = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED |
MBEDTLS_ASN1_CONTEXT_SPECIFIC | 0);
if (tag) {
- LIEF_DEBUG("ms_counter_sig.pkcs7-signed-data.certificates (offset={}, size={})",
- stream.pos(), *tag);
+ LIEF_DEBUG(
+ "ms_counter_sig.pkcs7-signed-data.certificates (offset={}, size={})",
+ stream.pos(), *tag
+ );
SpanStream certificate_stream{stream.p(), *tag};
stream.increment_pos(*tag);
@@ -1154,7 +1264,7 @@ result<std::unique_ptr<Attribute>> SignatureParser::parse_ms_counter_sign(Binary
if (certificates) {
counter_sig->certificates_ = std::move(*certificates);
} else {
- LIEF_INFO("Fail to parse ms_counter_sig.pkcs7-signed-data.certificates");
+ LIEF_INFO("Failed to parse ms_counter_sig.pkcs7-signed-data.certificates");
}
}
}
@@ -1170,7 +1280,8 @@ result<std::unique_ptr<Attribute>> SignatureParser::parse_ms_counter_sign(Binary
auto tag = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED |
MBEDTLS_ASN1_CONTEXT_SPECIFIC | 1);
if (tag) {
- LIEF_DEBUG("ms_counter_sig.pkcs7-signed-data.crls offset: {:d}", stream.pos());
+ LIEF_DEBUG("MS counter signature PKCS7 signed data CRLs offset: {:d}",
+ stream.pos());
// TODO(romain): process
SpanStream crls_stream{stream.p(), tag.value()};
stream.increment_pos(tag.value());
@@ -1189,23 +1300,28 @@ result<std::unique_ptr<Attribute>> SignatureParser::parse_ms_counter_sign(Binary
{
auto tag = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SET);
if (tag) {
- LIEF_DEBUG("ms_counter_sig.pkcs7-signed-data.signer-infos offset: {:d}", stream.pos());
+ LIEF_DEBUG(
+ "MS counter signature PKCS7 signed data signer infos offset: {:d}",
+ stream.pos()
+ );
const size_t raw_content_size = tag.value();
SpanStream signers_stream{stream.p(), raw_content_size};
stream.increment_pos(raw_content_size);
if (auto signer_info = parse_signer_infos(signers_stream)) {
counter_sig->signers_ = std::move(signer_info.value());
} else {
- LIEF_INFO("Fail to parse ms_counter_sig.pkcs7-signed-data.signer-infos");
+ LIEF_INFO("Failed to parse ms_counter_sig.pkcs7-signed-data.signer-infos");
}
}
}
- LIEF_DEBUG("Ms-CounterSignature remaining bytes: {}", stream.size() - stream.pos());
+ LIEF_DEBUG("Ms-CounterSignature remaining bytes: {}",
+ stream.size() - stream.pos());
return counter_sig;
}
-result<SignatureParser::signer_infos_t> SignatureParser::parse_pkcs9_counter_sign(BinaryStream& stream) {
+result<SignatureParser::signer_infos_t>
+ SignatureParser::parse_pkcs9_counter_sign(BinaryStream& stream) {
// counterSignature ATTRIBUTE ::= {
// WITH SYNTAX SignerInfo
// ID pkcs-9-at-counterSignature
@@ -1213,36 +1329,42 @@ result<SignatureParser::signer_infos_t> SignatureParser::parse_pkcs9_counter_sig
LIEF_DEBUG("Parsing pkcs9-CounterSign ({} bytes)", stream.size());
auto counter_sig = parse_signer_infos(stream);
if (!counter_sig) {
- LIEF_INFO("Fail to parse pkcs9-counter-signature");
+ LIEF_INFO("Failed to parse pkcs9-counter-signature");
return make_error_code(counter_sig.error());
}
- LIEF_DEBUG("pkcs9-counter-signature remaining bytes: {}", stream.size() - stream.pos());
+ LIEF_DEBUG("PKCS9 counter signature remaining bytes: {}",
+ stream.size() - stream.pos());
return counter_sig.value();
}
-result<Signature> SignatureParser::parse_ms_spc_nested_signature(BinaryStream& stream) {
+result<Signature>
+ SignatureParser::parse_ms_spc_nested_signature(BinaryStream& stream) {
// SET of pkcs7-signed data
LIEF_DEBUG("Parsing Ms-SpcNestedSignature ({} bytes)", stream.size());
auto sign = SignatureParser::parse(stream, /* skip header */ false);
if (!sign) {
- LIEF_INFO("Ms-SpcNestedSignature finished with errors");
+ LIEF_INFO("Failed to parse Ms-SpcNestedSignature");
return make_error_code(sign.error());
}
- LIEF_DEBUG("ms-spc-nested-signature remaining bytes: {}", stream.size() - stream.pos());
+ LIEF_DEBUG("MS SPC nested signature remaining bytes: {}",
+ stream.size() - stream.pos());
return sign.value();
}
-result<std::vector<uint8_t>> SignatureParser::parse_pkcs9_message_digest(BinaryStream& stream) {
+result<std::vector<uint8_t>>
+ SignatureParser::parse_pkcs9_message_digest(BinaryStream& stream) {
ASN1Reader asn1r(stream);
auto digest = asn1r.read_octet_string();
if (!digest) {
- LIEF_INFO("Can't process OCTET STREAM for attribute.pkcs9-message-digest (pos: {})",
+ LIEF_INFO("Failed to process OCTET STREAM for attribute.pkcs9-message-digest "
+ "(pos: {})",
stream.pos());
return make_error_code(digest.error());
}
const std::vector<uint8_t>& raw_digest = digest.value();
- LIEF_DEBUG("attribute.pkcs9-message-digest {}", hex_dump(raw_digest));
- LIEF_DEBUG("pkcs9-message-digest remaining bytes: {}", stream.size() - stream.pos());
+ LIEF_DEBUG("Attribute PKCS9 message digest: {}", hex_dump(raw_digest));
+ LIEF_DEBUG("PKCS9 message digest remaining bytes: {}",
+ stream.size() - stream.pos());
return raw_digest;
}
@@ -1259,25 +1381,29 @@ result<oid_t> SignatureParser::parse_ms_spc_statement_type(BinaryStream& stream)
auto oid = asn1r.read_oid();
if (!oid) {
- LIEF_INFO("Can't parse ms-spc-statement-type.oid (pos: {:d})", stream.pos());
+ LIEF_INFO("Failed to parse ms-spc-statement-type.oid (pos: {:d})",
+ stream.pos());
return make_error_code(oid.error());
}
const oid_t& oid_str = oid.value();
- LIEF_DEBUG("ms-spc-statement-type.oid: {}", oid_to_string(oid_str));
- LIEF_DEBUG("ms-spc-statement-type remaining bytes: {}", stream.size() - stream.pos());
+ LIEF_DEBUG("MS SPC statement type OID: {}", oid_to_string(oid_str));
+ LIEF_DEBUG("MS SPC statement type remaining bytes: {}",
+ stream.size() - stream.pos());
return oid_str;
}
-result<int32_t> SignatureParser::parse_pkcs9_at_sequence_number(BinaryStream& stream) {
+result<int32_t>
+ SignatureParser::parse_pkcs9_at_sequence_number(BinaryStream& stream) {
LIEF_DEBUG("Parsing pkcs9-at-SequenceNumber ({} bytes)", stream.size());
ASN1Reader asn1r(stream);
auto value = asn1r.read_int();
if (!value) {
- LIEF_INFO("pkcs9-at-sequence-number: Can't parse integer");
+ LIEF_INFO("PKCS9 at sequence number: Failed to parse integer");
return make_error_code(value.error());
}
- LIEF_DEBUG("pkcs9-at-sequence-number.int: {}", value.value());
- LIEF_DEBUG("pkcs9-at-sequence-number remaining bytes: {}", stream.size() - stream.pos());
+ LIEF_DEBUG("PKCS9 at sequence number int: {}", value.value());
+ LIEF_DEBUG("PKCS9 at sequence number remaining bytes: {}",
+ stream.size() - stream.pos());
return value.value();
}
@@ -1292,37 +1418,39 @@ result<std::string> SignatureParser::parse_spc_string(BinaryStream& stream) {
if (choice) {
LIEF_DEBUG("SpcString: Unicode choice");
const size_t length = choice.value();
- LIEF_DEBUG("spc-string.program-name length: {} (pos: {})", length, stream.pos());
+ LIEF_DEBUG("SPC string program name length: {} (pos: {})", length,
+ stream.pos());
if (!stream.can_read<char16_t>(length / sizeof(char16_t))) {
- LIEF_INFO("Can't read spc-string.program-name");
+ LIEF_INFO("Failed to read spc-string.program-name");
return make_error_code(lief_errors::read_error);
}
ToggleEndianness endian(stream);
auto progname = endian->read_u16string(length / sizeof(char16_t));
if (!progname) {
- LIEF_INFO("Can't read spc-string.program-name");
+ LIEF_INFO("Failed to read spc-string.program-name");
return make_error_code(lief_errors::read_error);
}
return u16tou8(*progname);
}
+ // NOLINTNEXTLINE(bugprone-assignment-in-if-condition)
if ((choice = asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | 1))) {
LIEF_DEBUG("SpcString: ASCII choice");
const size_t length = choice.value();
const char* str = stream.read_array<char>(length);
if (str == nullptr) {
- LIEF_INFO("Can't read spc-string.program-name");
+ LIEF_INFO("Failed to read spc-string.program-name");
return make_error_code(lief_errors::read_error);
}
std::string u8progname{str, str + length};
- LIEF_DEBUG("spc-string.program-name: {}", u8progname);
+ LIEF_DEBUG("SPC string program name: {}", u8progname);
return u8progname;
}
- LIEF_INFO("Can't select choice for SpcString (pos: {})", stream.pos());
+ LIEF_INFO("Failed to select choice for SpcString (pos: {})", stream.pos());
return make_error_code(lief_errors::read_error);
}
@@ -1339,76 +1467,86 @@ result<std::string> SignatureParser::parse_spc_link(BinaryStream& stream) {
const size_t length = choice.value();
const char* str = stream.read_array<char>(length);
if (str == nullptr) {
- LIEF_INFO("Can't read spc-link.url");
+ LIEF_INFO("Failed to read spc-link.url");
return make_error_code(lief_errors::read_error);
}
std::string url{str, str + length};
- LIEF_DEBUG("spc-link.url: {}", url);
+ LIEF_DEBUG("SPC link URL: {}", url);
return url;
}
+ // NOLINTNEXTLINE(bugprone-assignment-in-if-condition)
if ((choice = asn1r.read_tag(/* moniker */ MBEDTLS_ASN1_CONTEXT_SPECIFIC | 1))) {
LIEF_INFO("Parsing spc-link.moniker is not supported");
return make_error_code(lief_errors::not_supported);
}
+ // NOLINTNEXTLINE(bugprone-assignment-in-if-condition)
if ((choice = asn1r.read_tag(/* file */ MBEDTLS_ASN1_CONTEXT_SPECIFIC | 2))) {
LIEF_INFO("Parsing spc-link.file is not supported");
return make_error_code(lief_errors::not_supported);
}
- LIEF_INFO("Corrupted choice for spc-link (choice: 0x{:x})", stream_get_tag(stream));
+ LIEF_INFO("Corrupted choice for spc-link (choice: {:#x})",
+ stream_get_tag(stream));
return make_error_code(lief_errors::corrupted);
}
-result<SignatureParser::time_t> SignatureParser::parse_pkcs9_signing_time(BinaryStream& stream) {
+result<SignatureParser::time_t>
+ SignatureParser::parse_pkcs9_signing_time(BinaryStream& stream) {
// See: https://tools.ietf.org/html/rfc2985#page-20
// UTCTIME :171116220536Z
ASN1Reader asn1r(stream);
auto tm = asn1r.x509_read_time();
if (!tm) {
- LIEF_INFO("Can't read pkcs9-signing-time (pos: {})", stream.pos());
+ LIEF_INFO("Failed to read pkcs9-signing-time (pos: {})", stream.pos());
return make_error_code(tm.error());
}
std::unique_ptr<mbedtls_x509_time> time = std::move(tm.value());
- LIEF_DEBUG("pkcs9-signing-time {}/{}/{}", time->day, time->mon, time->year);
+ LIEF_DEBUG("PKCS9 signing time {}/{}/{}", time->day, time->mon, time->year);
return SignatureParser::time_t{time->year, time->mon, time->day,
time->hour, time->min, time->sec};
}
-result<std::unique_ptr<Attribute>> SignatureParser::parse_ms_platform_manifest_binary_id(BinaryStream& stream) {
+result<std::unique_ptr<Attribute>>
+ SignatureParser::parse_ms_platform_manifest_binary_id(BinaryStream& stream) {
// SET of UTF8STRING
- LIEF_DEBUG("Parsing szOID_PLATFORM_MANIFEST_BINARY_ID ({} bytes)", stream.size());
+ LIEF_DEBUG("Parsing szOID_PLATFORM_MANIFEST_BINARY_ID ({} bytes)",
+ stream.size());
ASN1Reader asn1r(stream);
auto res = asn1r.read_utf8_string();
if (res) {
LIEF_DEBUG(" ID: {} (pos={})", *res, stream.pos());
- LIEF_DEBUG("ms-platform-manifest-binary-id remaining bytes: {}", stream.size() - stream.pos());
+ LIEF_DEBUG("MS platform manifest binary ID remaining bytes: {}",
+ stream.size() - stream.pos());
return std::make_unique<MsManifestBinaryID>(std::move(*res));
}
return make_error_code(res.error());
}
-result<std::unique_ptr<PKCS9TSTInfo>> SignatureParser::parse_pkcs9_tstinfo(BinaryStream& stream) {
+result<std::unique_ptr<PKCS9TSTInfo>>
+ SignatureParser::parse_pkcs9_tstinfo(BinaryStream& stream) {
// TODO(romain): Expose an API for this structure
auto tstinfo = std::make_unique<PKCS9TSTInfo>();
ASN1Reader asn1r(stream);
{
- auto tag = asn1r.read_tag(/* [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL */
- MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED);
+ auto tag =
+ asn1r.read_tag(/* [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL */
+ MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED
+ );
if (!tag) {
- LIEF_INFO("Wrong tag for pkcs9-tstinfo: {} (pos: {:d})",
- asn1r.get_str_tag(), stream.pos());
+ LIEF_INFO("Wrong tag for pkcs9-tstinfo: {} (pos: {:d})", asn1r.get_str_tag(),
+ stream.pos());
return make_error_code(tag.error());
}
}
auto raw = asn1r.read_octet_string();
if (!raw) {
- LIEF_INFO("Can't read pkcs9-tstinfo encapsulated content");
+ LIEF_INFO("Failed to read pkcs9-tstinfo encapsulated content");
return make_error_code(raw.error());
}
SpanStream substream(*raw);
@@ -1417,25 +1555,25 @@ result<std::unique_ptr<PKCS9TSTInfo>> SignatureParser::parse_pkcs9_tstinfo(Binar
auto tag = reader.read_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
if (!tag) {
- LIEF_INFO("Wrong tag for pkcs9-tstinfo: {} (pos: {:d})",
- reader.get_str_tag(), substream.pos());
+ LIEF_INFO("Wrong tag for pkcs9-tstinfo: {} (pos: {:d})", reader.get_str_tag(),
+ substream.pos());
return make_error_code(tag.error());
}
/* version INTEGER { v1(1) } */ {
if (auto res = reader.read_int()) {
uint32_t version = *res;
- LIEF_DEBUG("pkcs9-tstinfo.version: {}", version);
+ LIEF_DEBUG("PKCS9 TST info version: {}", version);
} else {
- LIEF_INFO("Can't read pkcs9-tstinfo.version (pos: {})", substream.pos());
+ LIEF_INFO("Failed to read pkcs9-tstinfo.version (pos: {})", substream.pos());
return make_error_code(res.error());
}
}
/* policy TSAPolicyId */ {
if (auto res = reader.read_oid()) {
- LIEF_DEBUG("pkcs9-tstinfo.policy: {}", *res);
+ LIEF_DEBUG("PKCS9 TST info policy: {}", *res);
} else {
- LIEF_INFO("Can't read pkcs9-tstinfo.policy (pos: {})", substream.pos());
+ LIEF_INFO("Failed to read pkcs9-tstinfo.policy (pos: {})", substream.pos());
return make_error_code(res.error());
}
}
@@ -1449,31 +1587,36 @@ result<std::unique_ptr<PKCS9TSTInfo>> SignatureParser::parse_pkcs9_tstinfo(Binar
}
if (auto res = reader.read_alg()) {
- LIEF_DEBUG("pkcs9-tstinfo.message_imprint.hash_algorithm: {}", *res);
+ LIEF_DEBUG("PKCS9 TST info message imprint hash algorithm: {}", *res);
// TODO
} else {
- LIEF_INFO("Can't read pkcs9-tstinfo.message_imprint.hash_algorithm (pos: {})",
- substream.pos());
+ LIEF_INFO(
+ "Failed to read pkcs9-tstinfo.message_imprint.hash_algorithm (pos: {})",
+ substream.pos()
+ );
return make_error_code(res.error());
}
if (auto res = reader.read_octet_string()) {
- LIEF_DEBUG("pkcs9-tstinfo.message_imprint.hash_message: {}", hex_dump(*res));
+ LIEF_DEBUG("PKCS9 TST info message imprint hash message: {}",
+ hex_dump(*res));
// TODO
} else {
- LIEF_INFO("Can't read pkcs9-tstinfo.message_imprint.hash_message (pos: {})",
- substream.pos());
+ LIEF_INFO(
+ "Failed to read pkcs9-tstinfo.message_imprint.hash_message (pos: {})",
+ substream.pos()
+ );
return make_error_code(res.error());
}
}
/* serial_number INTEGER */ {
if (auto res = reader.read_large_int()) {
- LIEF_DEBUG("pkcs9-tstinfo.serial_number: {}", hex_dump(*res));
+ LIEF_DEBUG("PKCS9 TST info serial number: {}", hex_dump(*res));
// TODO
} else {
- LIEF_INFO("Can't read pkcs9-tstinfo.serial_number (pos: {} {} {})",
- substream.pos(), to_string(get_error(res)), substream.size());
+ LIEF_INFO("Failed to read pkcs9-tstinfo.serial_number (pos: {} {} {})",
+ substream.pos(), to_string(get_error(res)), substream.size());
return make_error_code(res.error());
}
}
@@ -1481,13 +1624,13 @@ result<std::unique_ptr<PKCS9TSTInfo>> SignatureParser::parse_pkcs9_tstinfo(Binar
/* genTime GeneralizedTime */ {
if (auto tag = reader.read_tag(MBEDTLS_ASN1_GENERALIZED_TIME)) {
substream.increment_pos(*tag);
- //std::unique_ptr<mbedtls_x509_time> time = std::move(*res);
- //LIEF_DEBUG("pkcs9-tstinfo.gen_time {}/{}/{}",
- // time->day, time->mon, time->year);
- // TODO
+ // std::unique_ptr<mbedtls_x509_time> time = std::move(*res);
+ // LIEF_DEBUG("pkcs9-tstinfo.gen_time {}/{}/{}",
+ // time->day, time->mon, time->year);
+ // TODO
} else {
- LIEF_INFO("Can't read pkcs9-tstinfo.gen_time (pos: {})",
- substream.pos());
+ LIEF_INFO("Failed to read pkcs9-tstinfo.gen_time (pos: {})",
+ substream.pos());
return make_error_code(tag.error());
}
}
@@ -1500,11 +1643,14 @@ result<std::unique_ptr<PKCS9TSTInfo>> SignatureParser::parse_pkcs9_tstinfo(Binar
/* accuracy Accuracy (OPTIONAL) */ {
auto res = reader.is_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
if (res && *res) {
- if (auto tag = reader.read_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) {
+ if (auto tag =
+ reader.read_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE))
+ {
substream.increment_pos(*tag);
// TODO(romain): Read accuracy
} else {
- LIEF_INFO("Can't read pkcs9-tstinfo.accuracy (pos: {})", substream.pos());
+ LIEF_INFO("Failed to read pkcs9-tstinfo.accuracy (pos: {})",
+ substream.pos());
return make_error_code(tag.error());
}
}
@@ -1514,10 +1660,11 @@ result<std::unique_ptr<PKCS9TSTInfo>> SignatureParser::parse_pkcs9_tstinfo(Binar
auto res = reader.is_tag(MBEDTLS_ASN1_BOOLEAN);
if (res && *res) {
if (auto ordering = reader.read_bool()) {
- LIEF_DEBUG("pkcs9-tstinfo.ordering: {}", *ordering);
+ LIEF_DEBUG("PKCS9 TST info ordering: {}", *ordering);
// TODO(romain): add field
} else {
- LIEF_INFO("Can't read pkcs9-tstinfo.ordering (pos: {})", substream.pos());
+ LIEF_INFO("Failed to read pkcs9-tstinfo.ordering (pos: {})",
+ substream.pos());
return make_error_code(ordering.error());
}
}
@@ -1527,61 +1674,67 @@ result<std::unique_ptr<PKCS9TSTInfo>> SignatureParser::parse_pkcs9_tstinfo(Binar
auto res = reader.is_tag(MBEDTLS_ASN1_INTEGER);
if (res && *res) {
if (auto nonce = reader.read_int64()) {
- LIEF_DEBUG("pkcs9-tstinfo.nonce: {}", *nonce);
+ LIEF_DEBUG("PKCS9 TST info nonce: {}", *nonce);
// TODO(romain): add field
} else {
- LIEF_INFO("Can't read pkcs9-tstinfo.nonce (pos: {})", substream.pos());
+ LIEF_INFO("Failed to read pkcs9-tstinfo.nonce (pos: {})", substream.pos());
return make_error_code(nonce.error());
}
}
}
/* tsa [0] GeneralName (OPTIONAL) */ {
- static constexpr auto CTX_SPEC_0 = MBEDTLS_ASN1_CONSTRUCTED |
- MBEDTLS_ASN1_CONTEXT_SPECIFIC | 0;
+ static constexpr auto CTX_SPEC_0 =
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC | 0;
auto res = reader.is_tag(CTX_SPEC_0);
if (/* optional check */ res && *res) {
if (auto ctx = reader.read_tag(CTX_SPEC_0)) {
- //LIEF_ERR("LEN: {} ({} / {})", *ctx, substream.pos(), substream.size());
- //LIEF_ERR("pos: {} {:b}", substream.pos(), *substream.peek<uint8_t>());
- //LIEF_ERR("foo: {:b}", MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC | 4);
- if (auto choice = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC | 4)) {
+ // LIEF_ERR("LEN: {} ({} / {})", *ctx, substream.pos(), substream.size());
+ // LIEF_ERR("pos: {} {:b}", substream.pos(), *substream.peek<uint8_t>());
+ // LIEF_ERR("foo: {:b}", MBEDTLS_ASN1_CONSTRUCTED |
+ // MBEDTLS_ASN1_CONTEXT_SPECIFIC | 4);
+ if (auto choice = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED |
+ MBEDTLS_ASN1_CONTEXT_SPECIFIC | 4))
+ {
} else {
- LIEF_INFO("error: {}", to_string(get_error(choice)));
+ LIEF_INFO("Error: {}", to_string(get_error(choice)));
}
substream.increment_pos(*ctx);
// TODO
} else {
- LIEF_INFO("Can't read pkcs9-tstinfo.tsa (pos: {})", substream.pos());
+ LIEF_INFO("Failed to read pkcs9-tstinfo.tsa (pos: {})", substream.pos());
return make_error_code(ctx.error());
}
}
}
- LIEF_DEBUG("pkcs9-tstinfo remaining bytes: {}", substream.size() - substream.pos());
+ LIEF_DEBUG("PKCS9 TST info remaining bytes: {}",
+ substream.size() - substream.pos());
return tstinfo;
}
-result<std::unique_ptr<Attribute>> SignatureParser::parse_spc_relaxed_pe_marker_check(BinaryStream& stream) {
+result<std::unique_ptr<Attribute>>
+ SignatureParser::parse_spc_relaxed_pe_marker_check(BinaryStream& stream) {
auto attr = std::make_unique<SpcRelaxedPeMarkerCheck>();
ASN1Reader asn1r(stream);
if (auto res = asn1r.read_int()) {
int value = *res;
attr->value(value);
- LIEF_DEBUG("spc-relaxed-pe-marker-check: {}", value);
+ LIEF_DEBUG("SPC relaxed PE marker check: {}", value);
} else {
- LIEF_INFO("Fail to read spc-relaxed-pe-marker-check");
+ LIEF_INFO("Failed to read spc-relaxed-pe-marker-check");
return make_error_code(res.error());
}
- LIEF_DEBUG("spc-relaxed-pe-marker-check remaining bytes: {}", stream.size() - stream.pos());
+ LIEF_DEBUG("SPC relaxed PE marker check remaining bytes: {}",
+ stream.size() - stream.pos());
return attr;
}
result<std::unique_ptr<Attribute>>
-SignatureParser::parse_signing_certificate_v2(BinaryStream& stream) {
+ SignatureParser::parse_signing_certificate_v2(BinaryStream& stream) {
auto scertv2 = std::make_unique<SigningCertificateV2>();
ASN1Reader asn1r(stream);
uint64_t nextpos = stream.pos();
@@ -1608,7 +1761,8 @@ SignatureParser::parse_signing_certificate_v2(BinaryStream& stream) {
} else {
// Empty -> default value
if (!asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) {
- LIEF_INFO("Wrong tag: {} (pos: {:d})", asn1r.get_str_tag(), stream.pos());
+ LIEF_INFO("Wrong tag: {} (pos: {:d})", asn1r.get_str_tag(),
+ stream.pos());
return make_error_code(lief_errors::read_error);
}
// Default is algorithm id-sha256
@@ -1617,8 +1771,10 @@ SignatureParser::parse_signing_certificate_v2(BinaryStream& stream) {
if (auto res = asn1r.read_octet_string()) {
LIEF_DEBUG("SigningCertificateV2.certs.certHash: {}", hex_dump(*res));
} else {
- LIEF_INFO("Can't read SigningCertificateV2.certs.certHash. {} (pos: {:d})",
- asn1r.get_str_tag(), stream.pos());
+ LIEF_INFO(
+ "Failed to read SigningCertificateV2.certs.certHash: {} (pos: {:d})",
+ asn1r.get_str_tag(), stream.pos()
+ );
return make_error_code(res.error());
}
@@ -1626,12 +1782,17 @@ SignatureParser::parse_signing_certificate_v2(BinaryStream& stream) {
tag = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
if (tag && *tag) {
/* issuer GeneralNames */
- if (auto tag = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) {
+ if (auto tag =
+ asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE))
+ {
// TODO(romain): Parse "GeneralNames"
stream.increment_pos(*tag);
} else {
- LIEF_INFO("Can't read SigningCertificateV2.certs.issuerSerial.issuer {} (pos: {:d})",
- asn1r.get_str_tag(), stream.pos());
+ LIEF_INFO(
+ "Failed to read SigningCertificateV2.certs.issuerSerial.issuer {} "
+ "(pos: {:d})",
+ asn1r.get_str_tag(), stream.pos()
+ );
return make_error_code(tag.error());
}
/* serialNumber CertificateSerialNumber := INTEGER */
@@ -1639,8 +1800,11 @@ SignatureParser::parse_signing_certificate_v2(BinaryStream& stream) {
LIEF_DEBUG("SigningCertificateV2.certs.issuerSerial.serial: {}",
hex_dump(*serial));
} else {
- LIEF_INFO("Can't read SigningCertificateV2.certs.issuerSerial.serial {} (pos: {:d})",
- asn1r.get_str_tag(), stream.pos());
+ LIEF_INFO(
+ "Failed to read SigningCertificateV2.certs.issuerSerial.serial {} "
+ "(pos: {:d})",
+ asn1r.get_str_tag(), stream.pos()
+ );
return make_error_code(serial.error());
}
}
@@ -1651,13 +1815,14 @@ SignatureParser::parse_signing_certificate_v2(BinaryStream& stream) {
/* policies SEQUENCE OF PolicyInformation OPTIONAL */
// TODO(romain): to parse
}
- //auto res = reader.is_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
- LIEF_DEBUG("signing-certificate-v2 remaining bytes: {}", stream.size() - stream.pos());
+ // auto res = reader.is_tag(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE);
+ LIEF_DEBUG("Signing certificate v2 remaining bytes: {}",
+ stream.size() - stream.pos());
return scertv2;
}
result<SignatureParser::SpcPeImageData>
-SignatureParser::parse_spc_pe_image_data(BinaryStream& stream) {
+ SignatureParser::parse_spc_pe_image_data(BinaryStream& stream) {
LIEF_DEBUG("Parsing SpcPeImageData");
ASN1Reader asn1r(stream);
@@ -1670,39 +1835,31 @@ SignatureParser::parse_spc_pe_image_data(BinaryStream& stream) {
/* file SpcLink [0] Optional. /!\ According to the documentation, it is not
* optional.
*/
- if (auto file = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED |
+ if (auto file = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED |
MBEDTLS_ASN1_CONTEXT_SPECIFIC | 0))
{
- if (auto url = asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | 0))
- {
+ if (auto url = asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | 0)) {
LIEF_DEBUG("SpcPeImageData.url");
- //LIEF_WARN(SUBMISSION_MSG);
- }
- else if (auto moniker = asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | 1))
- {
+ // LIEF_WARN(SUBMISSION_MSG);
+ } else if (auto moniker = asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | 1)) {
LIEF_DEBUG("SpcPeImageData.moniker");
- //LIEF_WARN(SUBMISSION_MSG);
- }
- else if (auto file = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED |
- MBEDTLS_ASN1_CONTEXT_SPECIFIC | 2))
+ // LIEF_WARN(SUBMISSION_MSG);
+ } else if (auto file = asn1r.read_tag(MBEDTLS_ASN1_CONSTRUCTED |
+ MBEDTLS_ASN1_CONTEXT_SPECIFIC | 2))
{
LIEF_DEBUG("SpcPeImageData.file");
- if (auto unicode = asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | 0))
- {
+ if (auto unicode = asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | 0)) {
size_t len = *unicode;
LIEF_DEBUG("SpcPeImageData.file.unicode (len: {})", len);
if (len > 0) {
- //LIEF_WARN(SUBMISSION_MSG);
+ // LIEF_WARN(SUBMISSION_MSG);
}
- }
- else if (auto ascii = asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | 1))
- {
+ } else if (auto ascii = asn1r.read_tag(MBEDTLS_ASN1_CONTEXT_SPECIFIC | 1)) {
LIEF_DEBUG("SpcPeImageData.file.ascii");
- //LIEF_WARN(SUBMISSION_MSG);
+ // LIEF_WARN(SUBMISSION_MSG);
} else {
LIEF_INFO("SpcPeImageData.file: unknown type");
}
-
}
}
@@ -1732,4 +1889,3 @@ SignatureParser::parse_spc_pe_image_data(BinaryStream& stream) {
}
-}
diff --git a/deps/LIEF/src/PE/signature/SignerInfo.cpp b/deps/LIEF/src/PE/signature/SignerInfo.cpp
index f8d78b0f3fc..7e9b4d1ee80 100644
--- a/deps/LIEF/src/PE/signature/SignerInfo.cpp
+++ b/deps/LIEF/src/PE/signature/SignerInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,6 @@
* limitations under the License.
*/
#include <memory>
-#include <sstream>
#include <spdlog/fmt/fmt.h>
@@ -26,8 +25,8 @@
#include "LIEF/PE/EnumToString.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
SignerInfo::SignerInfo() = default;
SignerInfo::~SignerInfo() = default;
@@ -43,13 +42,13 @@ SignerInfo::SignerInfo(const SignerInfo& other) :
digest_algorithm_{other.digest_algorithm_},
digest_enc_algorithm_{other.digest_enc_algorithm_},
encrypted_digest_{other.encrypted_digest_},
- raw_auth_data_{other.raw_auth_data_}
-{
+ raw_auth_data_{other.raw_auth_data_} {
for (const std::unique_ptr<Attribute>& attr : other.authenticated_attributes_) {
authenticated_attributes_.push_back(attr->clone());
}
- for (const std::unique_ptr<Attribute>& attr : other.unauthenticated_attributes_) {
+ for (const std::unique_ptr<Attribute>& attr : other.unauthenticated_attributes_)
+ {
unauthenticated_attributes_.push_back(attr->clone());
}
@@ -64,16 +63,16 @@ SignerInfo& SignerInfo::operator=(SignerInfo other) {
}
void SignerInfo::swap(SignerInfo& other) {
- std::swap(version_, other.version_);
- std::swap(issuer_, other.issuer_);
- std::swap(serialno_, other.serialno_);
- std::swap(digest_algorithm_, other.digest_algorithm_);
- std::swap(digest_enc_algorithm_, other.digest_enc_algorithm_);
- std::swap(encrypted_digest_, other.encrypted_digest_);
- std::swap(raw_auth_data_, other.raw_auth_data_);
- std::swap(authenticated_attributes_, other.authenticated_attributes_);
+ std::swap(version_, other.version_);
+ std::swap(issuer_, other.issuer_);
+ std::swap(serialno_, other.serialno_);
+ std::swap(digest_algorithm_, other.digest_algorithm_);
+ std::swap(digest_enc_algorithm_, other.digest_enc_algorithm_);
+ std::swap(encrypted_digest_, other.encrypted_digest_);
+ std::swap(raw_auth_data_, other.raw_auth_data_);
+ std::swap(authenticated_attributes_, other.authenticated_attributes_);
std::swap(unauthenticated_attributes_, other.unauthenticated_attributes_);
- std::swap(cert_, other.cert_);
+ std::swap(cert_, other.cert_);
}
const Attribute* SignerInfo::get_attribute(Attribute::TYPE type) const {
@@ -90,24 +89,24 @@ const Attribute* SignerInfo::get_attribute(Attribute::TYPE type) const {
}
const Attribute* SignerInfo::get_auth_attribute(Attribute::TYPE type) const {
- auto it_auth = std::find_if(
- std::begin(authenticated_attributes_), std::end(authenticated_attributes_),
- [type] (const std::unique_ptr<Attribute>& attr) {
- return attr->type() == type;
- });
- if (it_auth != std::end(authenticated_attributes_)) {
+ auto it_auth = std::find_if(authenticated_attributes_.begin(),
+ authenticated_attributes_.end(),
+ [type](const std::unique_ptr<Attribute>& attr) {
+ return attr->type() == type;
+ });
+ if (it_auth != authenticated_attributes_.end()) {
return it_auth->get();
}
return nullptr;
}
const Attribute* SignerInfo::get_unauth_attribute(Attribute::TYPE type) const {
- auto it_uauth = std::find_if(
- std::begin(unauthenticated_attributes_), std::end(unauthenticated_attributes_),
- [type] (const std::unique_ptr<Attribute>& attr) {
- return attr->type() == type;
- });
- if (it_uauth != std::end(unauthenticated_attributes_)) {
+ auto it_uauth = std::find_if(unauthenticated_attributes_.begin(),
+ unauthenticated_attributes_.end(),
+ [type](const std::unique_ptr<Attribute>& attr) {
+ return attr->type() == type;
+ });
+ if (it_uauth != unauthenticated_attributes_.end()) {
return it_uauth->get();
}
return nullptr;
@@ -121,13 +120,12 @@ void SignerInfo::accept(Visitor& visitor) const {
std::ostream& operator<<(std::ostream& os, const SignerInfo& signer_info) {
os << fmt::format("{}/{} - {} - {:d} auth attr - {:d} unauth attr",
- to_string(signer_info.digest_algorithm()),
- to_string(signer_info.encryption_algorithm()),
- signer_info.issuer(),
- signer_info.authenticated_attributes().size(),
- signer_info.unauthenticated_attributes().size());
+ to_string(signer_info.digest_algorithm()),
+ to_string(signer_info.encryption_algorithm()),
+ signer_info.issuer(),
+ signer_info.authenticated_attributes().size(),
+ signer_info.unauthenticated_attributes().size());
return os;
}
}
-}
diff --git a/deps/LIEF/src/PE/signature/SpcIndirectData.cpp b/deps/LIEF/src/PE/signature/SpcIndirectData.cpp
index c249a6f5e75..7c59a822c7c 100644
--- a/deps/LIEF/src/PE/signature/SpcIndirectData.cpp
+++ b/deps/LIEF/src/PE/signature/SpcIndirectData.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,8 +21,8 @@
#include <spdlog/fmt/fmt.h>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
void SpcIndirectData::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -30,12 +30,12 @@ void SpcIndirectData::accept(Visitor& visitor) const {
void SpcIndirectData::print(std::ostream& os) const {
if (!file().empty()) {
- os << fmt::format("{} - {} - {}\n", to_string(digest_algorithm()),
- file(), hex_dump(digest()));
+ os << fmt::format("{} - {} - {}\n", to_string(digest_algorithm()), file(),
+ hex_dump(digest()));
} else {
- os << fmt::format("{}: {}\n", to_string(digest_algorithm()), hex_dump(digest()));
+ os << fmt::format("{}: {}\n", to_string(digest_algorithm()),
+ hex_dump(digest()));
}
}
}
-}
diff --git a/deps/LIEF/src/PE/signature/attributes/ContentType.cpp b/deps/LIEF/src/PE/signature/attributes/ContentType.cpp
index fdb8dcf4f30..7c0265ee398 100644
--- a/deps/LIEF/src/PE/signature/attributes/ContentType.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/ContentType.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,8 +18,8 @@
#include "LIEF/Visitor.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
void ContentType::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -30,4 +30,3 @@ std::string ContentType::print() const {
}
}
-}
diff --git a/deps/LIEF/src/PE/signature/attributes/GenericType.cpp b/deps/LIEF/src/PE/signature/attributes/GenericType.cpp
index 5df987abcf2..d998efff81c 100644
--- a/deps/LIEF/src/PE/signature/attributes/GenericType.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/GenericType.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,8 @@
#include "LIEF/Visitor.hpp"
#include "LIEF/PE/signature/attributes/GenericType.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
void GenericType::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -28,4 +28,3 @@ std::string GenericType::print() const {
}
}
-}
diff --git a/deps/LIEF/src/PE/signature/attributes/MsCounterSign.cpp b/deps/LIEF/src/PE/signature/attributes/MsCounterSign.cpp
index fe84f1709be..cc108aea38a 100644
--- a/deps/LIEF/src/PE/signature/attributes/MsCounterSign.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/MsCounterSign.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,8 @@
#include "LIEF/PE/signature/attributes/MsCounterSign.hpp"
#include <sstream>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
void MsCounterSign::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -33,4 +33,3 @@ std::string MsCounterSign::print() const {
}
}
-}
diff --git a/deps/LIEF/src/PE/signature/attributes/MsManifestBinaryID.cpp b/deps/LIEF/src/PE/signature/attributes/MsManifestBinaryID.cpp
index 10c609a690e..3f7bb4e667b 100644
--- a/deps/LIEF/src/PE/signature/attributes/MsManifestBinaryID.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/MsManifestBinaryID.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,12 +15,11 @@
*/
#include "LIEF/Visitor.hpp"
#include "LIEF/PE/signature/attributes/MsManifestBinaryID.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
void MsManifestBinaryID::accept(Visitor& visitor) const {
visitor.visit(*this);
}
}
-}
diff --git a/deps/LIEF/src/PE/signature/attributes/MsSpcNestedSignature.cpp b/deps/LIEF/src/PE/signature/attributes/MsSpcNestedSignature.cpp
index 1eb95b96568..155693e275c 100644
--- a/deps/LIEF/src/PE/signature/attributes/MsSpcNestedSignature.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/MsSpcNestedSignature.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,8 +18,8 @@
#include "LIEF/Visitor.hpp"
#include "LIEF/PE/signature/attributes/MsSpcNestedSignature.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
void MsSpcNestedSignature::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -34,4 +34,3 @@ std::string MsSpcNestedSignature::print() const {
}
-}
diff --git a/deps/LIEF/src/PE/signature/attributes/MsSpcStatementType.cpp b/deps/LIEF/src/PE/signature/attributes/MsSpcStatementType.cpp
index f1a070a26e9..1bc7cae9404 100644
--- a/deps/LIEF/src/PE/signature/attributes/MsSpcStatementType.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/MsSpcStatementType.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,8 @@
#include "LIEF/Visitor.hpp"
#include "LIEF/PE/signature/attributes/MsSpcStatementType.hpp"
#include "LIEF/PE/signature/OIDToString.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
void MsSpcStatementType::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -27,4 +27,3 @@ std::string MsSpcStatementType::print() const {
return oid() + " (" + oid_to_string(oid()) + ")";
}
}
-}
diff --git a/deps/LIEF/src/PE/signature/attributes/PKCS9AtSequenceNumber.cpp b/deps/LIEF/src/PE/signature/attributes/PKCS9AtSequenceNumber.cpp
index 20f6738c02c..e4844696b91 100644
--- a/deps/LIEF/src/PE/signature/attributes/PKCS9AtSequenceNumber.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/PKCS9AtSequenceNumber.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,8 @@
#include "LIEF/Visitor.hpp"
#include "LIEF/PE/signature/attributes/PKCS9AtSequenceNumber.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
void PKCS9AtSequenceNumber::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -28,4 +28,3 @@ std::string PKCS9AtSequenceNumber::print() const {
}
}
-}
diff --git a/deps/LIEF/src/PE/signature/attributes/PKCS9CounterSignature.cpp b/deps/LIEF/src/PE/signature/attributes/PKCS9CounterSignature.cpp
index 599706a7d3d..9d02c131568 100644
--- a/deps/LIEF/src/PE/signature/attributes/PKCS9CounterSignature.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/PKCS9CounterSignature.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,8 @@
#include "LIEF/Visitor.hpp"
#include <sstream>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
void PKCS9CounterSignature::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -32,4 +32,3 @@ std::string PKCS9CounterSignature::print() const {
}
-}
diff --git a/deps/LIEF/src/PE/signature/attributes/PKCS9MessageDigest.cpp b/deps/LIEF/src/PE/signature/attributes/PKCS9MessageDigest.cpp
index c6e73fc3965..f45a911a4f8 100644
--- a/deps/LIEF/src/PE/signature/attributes/PKCS9MessageDigest.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/PKCS9MessageDigest.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,8 +17,8 @@
#include "LIEF/PE/signature/attributes/PKCS9MessageDigest.hpp"
#include "internal_utils.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
void PKCS9MessageDigest::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -28,4 +28,3 @@ std::string PKCS9MessageDigest::print() const {
return hex_dump(digest());
}
}
-}
diff --git a/deps/LIEF/src/PE/signature/attributes/PKCS9SigningTime.cpp b/deps/LIEF/src/PE/signature/attributes/PKCS9SigningTime.cpp
index 2e7158907b5..145fc9200a9 100644
--- a/deps/LIEF/src/PE/signature/attributes/PKCS9SigningTime.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/PKCS9SigningTime.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,8 @@
#include <spdlog/fmt/fmt.h>
#include "LIEF/Visitor.hpp"
#include "LIEF/PE/signature/attributes/PKCS9SigningTime.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
void PKCS9SigningTime::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -25,9 +25,8 @@ void PKCS9SigningTime::accept(Visitor& visitor) const {
std::string PKCS9SigningTime::print() const {
const time_t& time = this->time();
- return fmt::format("{}/{}/{} - {}:{}:{}",
- time[0], time[1], time[2], time[3], time[4], time[5]);
+ return fmt::format("{}/{}/{} - {}:{}:{}", time[0], time[1], time[2], time[3],
+ time[4], time[5]);
}
}
-}
diff --git a/deps/LIEF/src/PE/signature/attributes/SigningCertificateV2.cpp b/deps/LIEF/src/PE/signature/attributes/SigningCertificateV2.cpp
index 02a8fbb1b1c..77aceadb8e8 100644
--- a/deps/LIEF/src/PE/signature/attributes/SigningCertificateV2.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/SigningCertificateV2.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,8 @@
#include "LIEF/Visitor.hpp"
#include "LIEF/PE/signature/attributes/SigningCertificateV2.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
void SigningCertificateV2::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -28,5 +28,3 @@ std::string SigningCertificateV2::print() const {
}
}
-}
-
diff --git a/deps/LIEF/src/PE/signature/attributes/SpcRelaxedPeMarkerCheck.cpp b/deps/LIEF/src/PE/signature/attributes/SpcRelaxedPeMarkerCheck.cpp
index f2fb1cd33e6..31a4dba5a26 100644
--- a/deps/LIEF/src/PE/signature/attributes/SpcRelaxedPeMarkerCheck.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/SpcRelaxedPeMarkerCheck.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,13 +15,11 @@
*/
#include "LIEF/Visitor.hpp"
#include "LIEF/PE/signature/attributes/SpcRelaxedPeMarkerCheck.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
void SpcRelaxedPeMarkerCheck::accept(Visitor& visitor) const {
visitor.visit(*this);
}
}
-}
-
diff --git a/deps/LIEF/src/PE/signature/attributes/SpcSpOpusInfo.cpp b/deps/LIEF/src/PE/signature/attributes/SpcSpOpusInfo.cpp
index 3ec3f298f4d..2e74a88ef15 100644
--- a/deps/LIEF/src/PE/signature/attributes/SpcSpOpusInfo.cpp
+++ b/deps/LIEF/src/PE/signature/attributes/SpcSpOpusInfo.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2021 - 2025 R. Thomas
- * Copyright 2021 - 2025 Quarkslab
+/* Copyright 2021 - 2026 R. Thomas
+ * Copyright 2021 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,8 +15,8 @@
*/
#include "LIEF/Visitor.hpp"
#include "LIEF/PE/signature/attributes/SpcSpOpusInfo.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
void SpcSpOpusInfo::accept(Visitor& visitor) const {
visitor.visit(*this);
@@ -38,4 +38,3 @@ std::string SpcSpOpusInfo::print() const {
}
-}
diff --git a/deps/LIEF/src/PE/signature/pkcs7.h b/deps/LIEF/src/PE/signature/pkcs7.h
index 619b00f35dc..371a4fb5e24 100644
--- a/deps/LIEF/src/PE/signature/pkcs7.h
+++ b/deps/LIEF/src/PE/signature/pkcs7.h
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,28 +18,38 @@
#include "mbedtls/oid.h"
-#define MBEDTLS_OID_PKCS7 MBEDTLS_OID_PKCS "\x07" /**< pkcs-7 OBJECT IDENTIFIER ::= { iso(1) member-body(2) US(840) rsadsi(113549) pkcs(1) 7 } */
+#define MBEDTLS_OID_PKCS7 \
+ MBEDTLS_OID_PKCS "\x07" /**< pkcs-7 OBJECT IDENTIFIER ::= { iso(1) \
+ member-body(2) US(840) rsadsi(113549) pkcs(1) 7 } */
/*
* PKCS#7 OIDs
*/
-#define MBEDTLS_OID_PKCS7_DATA MBEDTLS_OID_PKCS7 "\x01" /**< data OBJECT IDENTIFIER ::= { pkcs-7 1 } */
-#define MBEDTLS_OID_PKCS7_SIGNED_DATA MBEDTLS_OID_PKCS7 "\x02" /**< signedData OBJECT IDENTIFIER ::= { pkcs-7 2 } */
-#define MBEDTLS_OID_PKCS7_ENVELOPED_DATA MBEDTLS_OID_PKCS7 "\x03" /**< data OBJECT IDENTIFIER ::= { pkcs-7 1 } */
-#define MBEDTLS_OID_PKCS7_SIGNED_AND_ENVELOPED_DATA MBEDTLS_OID_PKCS7 "\x04" /**< data OBJECT IDENTIFIER ::= { pkcs-7 1 } */
-#define MBEDTLS_OID_PKCS7_DIGESTED_DATA MBEDTLS_OID_PKCS7 "\x05" /**< data OBJECT IDENTIFIER ::= { pkcs-7 1 } */
-#define MBEDTLS_OID_PKCS7_ENCRYPTED_DATA MBEDTLS_OID_PKCS7 "\x06" /**< data OBJECT IDENTIFIER ::= { pkcs-7 1 } */
+#define MBEDTLS_OID_PKCS7_DATA \
+ MBEDTLS_OID_PKCS7 "\x01" /**< data OBJECT IDENTIFIER ::= { pkcs-7 1 } */
+#define MBEDTLS_OID_PKCS7_SIGNED_DATA \
+ MBEDTLS_OID_PKCS7 "\x02" /**< signedData OBJECT IDENTIFIER ::= { pkcs-7 2 } */
+#define MBEDTLS_OID_PKCS7_ENVELOPED_DATA \
+ MBEDTLS_OID_PKCS7 "\x03" /**< data OBJECT IDENTIFIER ::= { pkcs-7 1 } */
+#define MBEDTLS_OID_PKCS7_SIGNED_AND_ENVELOPED_DATA \
+ MBEDTLS_OID_PKCS7 "\x04" /**< data OBJECT IDENTIFIER ::= { pkcs-7 1 } */
+#define MBEDTLS_OID_PKCS7_DIGESTED_DATA \
+ MBEDTLS_OID_PKCS7 "\x05" /**< data OBJECT IDENTIFIER ::= { pkcs-7 1 } */
+#define MBEDTLS_OID_PKCS7_ENCRYPTED_DATA \
+ MBEDTLS_OID_PKCS7 "\x06" /**< data OBJECT IDENTIFIER ::= { pkcs-7 1 } */
/*
* PE Authenticode OID
*/
-#define MBEDTLS_SPC_INDIRECT_DATA_OBJID "\x2B\x06\x01\x04\x01\x82\x37\x02\x01\x04"
-#define MBEDTLS_SPC_SP_OPUS_INFO_OBJID "\x2B\x06\x01\x04\x01\x82\x37\x02\x01\x0C"
-#define MBEDTLS_SPC_PE_IMAGE_DATAOBJ_OBJID "\x2B\x06\x01\x04\x01\x82\x37\x02\x01\x0F"
+#define MBEDTLS_SPC_INDIRECT_DATA_OBJID "\x2B\x06\x01\x04\x01\x82\x37\x02\x01\x04"
+#define MBEDTLS_SPC_SP_OPUS_INFO_OBJID "\x2B\x06\x01\x04\x01\x82\x37\x02\x01\x0C"
+#define MBEDTLS_SPC_PE_IMAGE_DATAOBJ_OBJID \
+ "\x2B\x06\x01\x04\x01\x82\x37\x02\x01\x0F"
/* MS Specific OID */
-#define MS_SZOID_PLATFORM_MANIFEST_BINARY_ID "\x06\x0A\x2B\x06\x01\x04\x01\x82\x37\x0A\x03\x1C"
-#define MS_COUNTER_SIGNATURE "\x06\x0A\x2B\x06\x01\x04\x01\x82\x37\x03\x03\x01"
+#define MS_SZOID_PLATFORM_MANIFEST_BINARY_ID \
+ "\x06\x0A\x2B\x06\x01\x04\x01\x82\x37\x0A\x03\x1C"
+#define MS_COUNTER_SIGNATURE "\x06\x0A\x2B\x06\x01\x04\x01\x82\x37\x03\x03\x01"
#endif
diff --git a/deps/LIEF/src/PE/signature/x509.cpp b/deps/LIEF/src/PE/signature/x509.cpp
index 6c49eaf3194..2eb8334f71c 100644
--- a/deps/LIEF/src/PE/signature/x509.cpp
+++ b/deps/LIEF/src/PE/signature/x509.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,12 +16,13 @@
#include <cstring>
#include <map>
#include <fstream>
+#include <memory>
#include <mbedtls/platform.h>
-#include "mbedtls/x509_crt.h"
-#include "mbedtls/asn1.h"
-#include "mbedtls/oid.h"
-#include "mbedtls/error.h"
+#include <mbedtls/x509_crt.h>
+#include <mbedtls/asn1.h>
+#include <mbedtls/asn1write.h>
+#include <mbedtls/error.h>
#include "logging.hpp"
#include "frozen.hpp"
@@ -37,37 +38,40 @@
#include "LIEF/PE/EnumToString.hpp"
#include "LIEF/PE/signature/OIDToString.hpp"
-namespace {
- // Copy this function from mbedtls since it is not exported
- inline int x509_get_current_time( mbedtls_x509_time *now )
- {
- struct tm *lt, tm_buf;
- mbedtls_time_t tt;
- int ret = 0;
-
- tt = mbedtls_time(nullptr);
- lt = mbedtls_platform_gmtime_r( &tt, &tm_buf );
-
- if (lt == nullptr) {
- ret = -1;
- } else {
- now->year = lt->tm_year + 1900;
- now->mon = lt->tm_mon + 1;
- now->day = lt->tm_mday;
- now->hour = lt->tm_hour;
- now->min = lt->tm_min;
- now->sec = lt->tm_sec;
- }
-
- return( ret );
- }
+#include "mbedtls_wraps.h"
-/* mbedtls escapes non printable character with '?' which can be an issue as described
- * in https://github.com/lief-project/LIEF/issues/703.
- * As there is no way to programmatically tweak this behavior, here is a copy
- * of the original function (from <src>/library/x509.c) which skips the non printable character.
- * It seems that Windows follows this behavior as descbied in the Github's issue
+namespace {
+// Copied from mbedtls since this function is not exported
+inline int x509_get_current_time(mbedtls_x509_time* now) {
+ struct tm *lt = nullptr, tm_buf{};
+ mbedtls_time_t tt{};
+ int ret = 0;
+
+ tt = mbedtls_time(nullptr);
+ lt = mbedtls_platform_gmtime_r(&tt, &tm_buf);
+
+ if (lt == nullptr) {
+ ret = -1;
+ } else {
+ now->year = lt->tm_year + 1900;
+ now->mon = lt->tm_mon + 1;
+ now->day = lt->tm_mday;
+ now->hour = lt->tm_hour;
+ now->min = lt->tm_min;
+ now->sec = lt->tm_sec;
+ }
+
+ return (ret);
+}
+
+/* mbedtls escapes non-printable characters with '?' which can be an issue as
+ * described in https://github.com/lief-project/LIEF/issues/703. As there is no way
+ * to programmatically tweak this behavior, here is a copy of the original function
+ * (from <src>/library/x509.c) which skips non-printable characters. It seems
+ * that Windows follows this behavior as described in the GitHub issue
*/
+// NOLINTBEGIN
+// clang-format off
int lief_mbedtls_x509_dn_gets( char *buf, size_t size, const mbedtls_x509_name *dn )
{
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
@@ -98,7 +102,7 @@ int lief_mbedtls_x509_dn_gets( char *buf, size_t size, const mbedtls_x509_name *
MBEDTLS_X509_SAFE_SNPRINTF;
}
- ret = mbedtls_oid_get_attr_short_name( &name->oid, &short_name );
+ ret = mbedtls_x509_oid_get_attr_short_name( &name->oid, &short_name );
if( ret == 0 ) {
ret = mbedtls_snprintf( p, n, "%s=", short_name );
@@ -106,7 +110,7 @@ int lief_mbedtls_x509_dn_gets( char *buf, size_t size, const mbedtls_x509_name *
// Get OID numeric string and return x509 friendly name or OID numeric string
std::string oid_str(64, 0);
int size = mbedtls_oid_get_numeric_string(oid_str.data(), oid_str.size(), &name->oid);
- if (size >= 0 && size != MBEDTLS_ERR_OID_BUF_TOO_SMALL) {
+ if (size >= 0 && size != PSA_ERROR_BUFFER_TOO_SMALL) {
oid_str.resize(size);
const char* friendly_name = LIEF::PE::oid_to_string(oid_str);
ret = mbedtls_snprintf(p, n, "%s=", friendly_name);
@@ -149,34 +153,43 @@ int lief_mbedtls_x509_dn_gets( char *buf, size_t size, const mbedtls_x509_name *
return( (int) ( size - n ) );
}
+// clang-format on
+// NOLINTEND
}
-namespace LIEF {
-namespace PE {
+namespace LIEF::PE {
inline x509::VERIFICATION_FLAGS from_mbedtls_err(uint32_t err) {
- CONST_MAP(uint32_t, x509::VERIFICATION_FLAGS, 20) MBEDTLS_ERR_TO_LIEF = {
- { MBEDTLS_X509_BADCERT_EXPIRED, x509::VERIFICATION_FLAGS::BADCERT_EXPIRED},
- { MBEDTLS_X509_BADCERT_REVOKED, x509::VERIFICATION_FLAGS::BADCERT_REVOKED},
- { MBEDTLS_X509_BADCERT_CN_MISMATCH, x509::VERIFICATION_FLAGS::BADCERT_CN_MISMATCH},
- { MBEDTLS_X509_BADCERT_NOT_TRUSTED, x509::VERIFICATION_FLAGS::BADCERT_NOT_TRUSTED},
- { MBEDTLS_X509_BADCRL_NOT_TRUSTED, x509::VERIFICATION_FLAGS::BADCRL_NOT_TRUSTED},
- { MBEDTLS_X509_BADCRL_EXPIRED, x509::VERIFICATION_FLAGS::BADCRL_EXPIRED},
- { MBEDTLS_X509_BADCERT_MISSING, x509::VERIFICATION_FLAGS::BADCERT_MISSING},
- { MBEDTLS_X509_BADCERT_SKIP_VERIFY, x509::VERIFICATION_FLAGS::BADCERT_SKIP_VERIFY},
- { MBEDTLS_X509_BADCERT_OTHER, x509::VERIFICATION_FLAGS::BADCERT_OTHER},
- { MBEDTLS_X509_BADCERT_FUTURE, x509::VERIFICATION_FLAGS::BADCERT_FUTURE},
- { MBEDTLS_X509_BADCRL_FUTURE, x509::VERIFICATION_FLAGS::BADCRL_FUTURE},
- { MBEDTLS_X509_BADCERT_KEY_USAGE, x509::VERIFICATION_FLAGS::BADCERT_KEY_USAGE},
- { MBEDTLS_X509_BADCERT_EXT_KEY_USAGE, x509::VERIFICATION_FLAGS::BADCERT_EXT_KEY_USAGE},
- { MBEDTLS_X509_BADCERT_NS_CERT_TYPE, x509::VERIFICATION_FLAGS::BADCERT_NS_CERT_TYPE},
- { MBEDTLS_X509_BADCERT_BAD_MD, x509::VERIFICATION_FLAGS::BADCERT_BAD_MD},
- { MBEDTLS_X509_BADCERT_BAD_PK, x509::VERIFICATION_FLAGS::BADCERT_BAD_PK},
- { MBEDTLS_X509_BADCERT_BAD_KEY, x509::VERIFICATION_FLAGS::BADCERT_BAD_KEY},
- { MBEDTLS_X509_BADCRL_BAD_MD, x509::VERIFICATION_FLAGS::BADCRL_BAD_MD},
- { MBEDTLS_X509_BADCRL_BAD_PK, x509::VERIFICATION_FLAGS::BADCRL_BAD_PK},
- { MBEDTLS_X509_BADCRL_BAD_KEY, x509::VERIFICATION_FLAGS::BADCRL_BAD_KEY},
+ CONST_MAP(uint32_t, x509::VERIFICATION_FLAGS, 20)
+ MBEDTLS_ERR_TO_LIEF = {
+ {MBEDTLS_X509_BADCERT_EXPIRED, x509::VERIFICATION_FLAGS::BADCERT_EXPIRED},
+ {MBEDTLS_X509_BADCERT_REVOKED, x509::VERIFICATION_FLAGS::BADCERT_REVOKED},
+ {MBEDTLS_X509_BADCERT_CN_MISMATCH,
+ x509::VERIFICATION_FLAGS::BADCERT_CN_MISMATCH},
+ {MBEDTLS_X509_BADCERT_NOT_TRUSTED,
+ x509::VERIFICATION_FLAGS::BADCERT_NOT_TRUSTED},
+ {MBEDTLS_X509_BADCRL_NOT_TRUSTED,
+ x509::VERIFICATION_FLAGS::BADCRL_NOT_TRUSTED},
+ {MBEDTLS_X509_BADCRL_EXPIRED, x509::VERIFICATION_FLAGS::BADCRL_EXPIRED},
+ {MBEDTLS_X509_BADCERT_MISSING, x509::VERIFICATION_FLAGS::BADCERT_MISSING},
+ {MBEDTLS_X509_BADCERT_SKIP_VERIFY,
+ x509::VERIFICATION_FLAGS::BADCERT_SKIP_VERIFY},
+ {MBEDTLS_X509_BADCERT_OTHER, x509::VERIFICATION_FLAGS::BADCERT_OTHER},
+ {MBEDTLS_X509_BADCERT_FUTURE, x509::VERIFICATION_FLAGS::BADCERT_FUTURE},
+ {MBEDTLS_X509_BADCRL_FUTURE, x509::VERIFICATION_FLAGS::BADCRL_FUTURE},
+ {MBEDTLS_X509_BADCERT_KEY_USAGE,
+ x509::VERIFICATION_FLAGS::BADCERT_KEY_USAGE},
+ {MBEDTLS_X509_BADCERT_EXT_KEY_USAGE,
+ x509::VERIFICATION_FLAGS::BADCERT_EXT_KEY_USAGE},
+ {MBEDTLS_X509_BADCERT_NS_CERT_TYPE,
+ x509::VERIFICATION_FLAGS::BADCERT_NS_CERT_TYPE},
+ {MBEDTLS_X509_BADCERT_BAD_MD, x509::VERIFICATION_FLAGS::BADCERT_BAD_MD},
+ {MBEDTLS_X509_BADCERT_BAD_PK, x509::VERIFICATION_FLAGS::BADCERT_BAD_PK},
+ {MBEDTLS_X509_BADCERT_BAD_KEY, x509::VERIFICATION_FLAGS::BADCERT_BAD_KEY},
+ {MBEDTLS_X509_BADCRL_BAD_MD, x509::VERIFICATION_FLAGS::BADCRL_BAD_MD},
+ {MBEDTLS_X509_BADCRL_BAD_PK, x509::VERIFICATION_FLAGS::BADCRL_BAD_PK},
+ {MBEDTLS_X509_BADCRL_BAD_KEY, x509::VERIFICATION_FLAGS::BADCRL_BAD_KEY},
};
x509::VERIFICATION_FLAGS flags = x509::VERIFICATION_FLAGS::OK;
for (const auto& p : MBEDTLS_ERR_TO_LIEF) {
@@ -188,21 +201,14 @@ inline x509::VERIFICATION_FLAGS from_mbedtls_err(uint32_t err) {
}
inline x509::date_t from_mbedtls(const mbedtls_x509_time& time) {
- return {
- time.year,
- time.mon,
- time.day,
- time.hour,
- time.min,
- time.sec
- };
+ return {time.year, time.mon, time.day, time.hour, time.min, time.sec};
}
x509::certificates_t x509::parse(const std::string& path) {
std::ifstream cert_fs(path);
if (!cert_fs) {
- LIEF_WARN("Can't open {}", path);
+ LIEF_WARN("Failed to open {}", path);
return {};
}
cert_fs.unsetf(std::ios::skipws);
@@ -216,7 +222,7 @@ x509::certificates_t x509::parse(const std::string& path) {
}
x509::certificates_t x509::parse(const std::vector<uint8_t>& content) {
- std::unique_ptr<mbedtls_x509_crt> ca{new mbedtls_x509_crt{}};
+ auto ca = std::make_unique<mbedtls_x509_crt>(mbedtls_x509_crt{});
mbedtls_x509_crt_init(ca.get());
int ret = mbedtls_x509_crt_parse(ca.get(), content.data(), content.size());
if (ret != 0) {
@@ -228,7 +234,7 @@ x509::certificates_t x509::parse(const std::vector<uint8_t>& content) {
}
// If ret > 0, it contains the number of certificates that the parser did not
// manage to parse
- LIEF_WARN("{} certificates are not parsed", ret);
+ LIEF_WARN("{} certificates were not parsed", ret);
}
std::vector<x509> crts;
@@ -246,77 +252,47 @@ x509::certificates_t x509::parse(const std::vector<uint8_t>& content) {
bool x509::check_time(const date_t& before, const date_t& after) {
- // Implementation taken
- // from https://github.com/ARMmbed/mbedtls/blob/1c54b5410fd48d6bcada97e30cac417c5c7eea67/library/x509.c#L926-L962
+ // Implementation taken from
+ // https://github.com/ARMmbed/mbedtls/blob/1c54b5410fd48d6bcada97e30cac417c5c7eea67/library/x509.c#L926-L962
if (before[0] > after[0]) {
LIEF_DEBUG("{} > {}", before[0], after[0]);
return false;
}
- if (
- before[0] == after[0] &&
- before[1] > after[1]
- )
- {
+ if (before[0] == after[0] && before[1] > after[1]) {
LIEF_DEBUG("{} > {}", before[1], after[1]);
return false;
}
- if (
- before[0] == after[0] &&
- before[1] == after[1] &&
- before[2] > after[2]
- )
- {
+ if (before[0] == after[0] && before[1] == after[1] && before[2] > after[2]) {
LIEF_DEBUG("{} > {}", before[2], after[2]);
return false;
}
- if (
- before[0] == after[0] &&
- before[1] == after[1] &&
- before[2] == after[2] &&
- before[3] > after[3]
- )
+ if (before[0] == after[0] && before[1] == after[1] && before[2] == after[2] &&
+ before[3] > after[3])
{
LIEF_DEBUG("{} > {}", before[3], after[3]);
return false;
}
- if (
- before[0] == after[0] &&
- before[1] == after[1] &&
- before[2] == after[2] &&
- before[3] == after[3] &&
- before[4] > after[4]
- )
+ if (before[0] == after[0] && before[1] == after[1] && before[2] == after[2] &&
+ before[3] == after[3] && before[4] > after[4])
{
LIEF_DEBUG("{} > {}", before[4], after[4]);
return false;
}
- if (
- before[0] == after[0] &&
- before[1] == after[1] &&
- before[2] == after[2] &&
- before[3] == after[3] &&
- before[4] == after[4] &&
- before[5] > after[5]
- )
+ if (before[0] == after[0] && before[1] == after[1] && before[2] == after[2] &&
+ before[3] == after[3] && before[4] == after[4] && before[5] > after[5])
{
LIEF_DEBUG("{} > {}", before[5], after[5]);
return false;
}
- if (
- before[0] == after[0] &&
- before[1] == after[1] &&
- before[2] == after[2] &&
- before[3] == after[3] &&
- before[4] == after[4] &&
- before[5] == after[5] &&
- before[6] > after[6]
- )
+ if (before[0] == after[0] && before[1] == after[1] && before[2] == after[2] &&
+ before[3] == after[3] && before[4] == after[4] && before[5] == after[5] &&
+ before[6] > after[6])
{
LIEF_DEBUG("{} > {}", before[6], after[6]);
return false;
@@ -347,12 +323,10 @@ bool x509::time_is_future(const date_t& from) {
x509::x509() = default;
x509::x509(mbedtls_x509_crt* ca) :
- x509_cert_{ca}
-{}
+ x509_cert_{ca} {}
x509::x509(const x509& other) :
- Object::Object{other}
-{
+ Object::Object{other} {
auto* crt = new mbedtls_x509_crt{};
mbedtls_x509_crt_init(crt);
int ret = mbedtls_x509_crt_parse_der(crt, other.x509_cert_->raw.p,
@@ -381,15 +355,14 @@ uint32_t x509::version() const {
}
std::vector<uint8_t> x509::serial_number() const {
- return {x509_cert_->serial.p,
- x509_cert_->serial.p + x509_cert_->serial.len};
+ return {x509_cert_->serial.p, x509_cert_->serial.p + x509_cert_->serial.len};
}
oid_t x509::signature_algorithm() const {
- std::array<char, 256> oid_str;
- mbedtls_oid_get_numeric_string(oid_str.data(), oid_str.size(), &x509_cert_->sig_oid);
+ std::array<char, 256> oid_str{};
+ mbedtls_oid_get_numeric_string(oid_str.data(), oid_str.size(),
+ &x509_cert_->sig_oid);
return oid_t{oid_str.data()};
-
}
x509::date_t x509::valid_from() const {
@@ -402,39 +375,38 @@ x509::date_t x509::valid_to() const {
std::string x509::issuer() const {
- std::array<char, 1024> buffer;
+ std::array<char, 1024> buffer{};
lief_mbedtls_x509_dn_gets(buffer.data(), buffer.size(), &x509_cert_->issuer);
return buffer.data();
}
std::string x509::subject() const {
- std::array<char, 1024> buffer;
+ std::array<char, 1024> buffer{};
lief_mbedtls_x509_dn_gets(buffer.data(), buffer.size(), &x509_cert_->subject);
return buffer.data();
}
std::vector<uint8_t> x509::raw() const {
- return {x509_cert_->raw.p,
- x509_cert_->raw.p + x509_cert_->raw.len};
+ return {x509_cert_->raw.p, x509_cert_->raw.p + x509_cert_->raw.len};
}
x509::KEY_TYPES x509::key_type() const {
- CONST_MAP(mbedtls_pk_type_t, x509::KEY_TYPES, 7) mtype2asi = {
- {MBEDTLS_PK_NONE, KEY_TYPES::NONE },
- {MBEDTLS_PK_RSA, KEY_TYPES::RSA },
- {MBEDTLS_PK_ECKEY, KEY_TYPES::ECKEY },
- {MBEDTLS_PK_ECKEY_DH, KEY_TYPES::ECKEY_DH },
- {MBEDTLS_PK_ECDSA, KEY_TYPES::ECDSA },
- {MBEDTLS_PK_RSA_ALT, KEY_TYPES::RSA_ALT },
- {MBEDTLS_PK_RSASSA_PSS, KEY_TYPES::RSASSA_PSS },
+ CONST_MAP(mbedtls_pk_type_t, x509::KEY_TYPES, 6)
+ mtype2asi = {
+ {MBEDTLS_PK_NONE, KEY_TYPES::NONE},
+ {MBEDTLS_PK_RSA, KEY_TYPES::RSA},
+ {MBEDTLS_PK_ECKEY, KEY_TYPES::ECKEY},
+ {MBEDTLS_PK_ECKEY_DH, KEY_TYPES::ECKEY_DH},
+ {MBEDTLS_PK_ECDSA, KEY_TYPES::ECDSA},
+ {MBEDTLS_PK_RSASSA_PSS, KEY_TYPES::RSASSA_PSS},
};
mbedtls_pk_context* ctx = &(x509_cert_->pk);
- mbedtls_pk_type_t type = mbedtls_pk_get_type(ctx);
+ mbedtls_pk_type_t type = mbedtls_pk_get_type(ctx);
const auto it_key = mtype2asi.find(type);
- if (it_key != std::end(mtype2asi)) {
+ if (it_key != mtype2asi.end()) {
return it_key->second;
}
return KEY_TYPES::NONE;
@@ -443,8 +415,12 @@ x509::KEY_TYPES x509::key_type() const {
std::unique_ptr<RsaInfo> x509::rsa_info() const {
if (key_type() == KEY_TYPES::RSA) {
- mbedtls_rsa_context* rsa_ctx = mbedtls_pk_rsa(x509_cert_->pk);
- return std::unique_ptr<RsaInfo>{new RsaInfo{rsa_ctx}};
+ mbedtls_rsa_context ctx_rsa;
+ mbedtls_rsa_init(&ctx_rsa);
+ rsa_from_pk(&x509_cert_->pk, &ctx_rsa);
+ auto info = std::unique_ptr<RsaInfo>{new RsaInfo{&ctx_rsa}};
+ mbedtls_rsa_free(&ctx_rsa);
+ return info;
}
return nullptr;
}
@@ -455,7 +431,7 @@ std::vector<uint8_t> pkcs1_15_unpad(const std::vector<uint8_t>& input) {
return {};
}
- // According ot the RFC, the leading byte must be 0:
+ // According to the RFC, the leading byte must be 0:
if (input[0] != 0x00) {
return {};
}
@@ -471,13 +447,13 @@ std::vector<uint8_t> pkcs1_15_unpad(const std::vector<uint8_t>& input) {
auto padding_start = input.begin() + 2;
auto padding_end = std::find_if(padding_start, input.end(),
- [] (uint8_t x) { return x != 0xFF; });
+ [](uint8_t x) { return x != 0xFF; });
if (padding_end == input.end()) {
return {};
}
auto content_start = padding_end + 1;
- size_t content_size = input.size() - (content_start - input.begin());
+ size_t content_size = input.size() - (content_start - input.begin());
if (content_start == input.end()) {
return {};
}
@@ -513,51 +489,62 @@ std::vector<uint8_t> pkcs1_15_unpad(const std::vector<uint8_t>& input) {
return stream.content();
}
-bool x509::check_signature(const std::vector<uint8_t>& hash, const std::vector<uint8_t>& signature, ALGORITHMS algo) const {
- CONST_MAP(ALGORITHMS, mbedtls_md_type_t, 5) LIEF2MBED_MD = {
- //{ALGORITHMS::MD2, MBEDTLS_MD_MD2},
- //{ALGORITHMS::MD4, MBEDTLS_MD_MD4},
- {ALGORITHMS::MD5, MBEDTLS_MD_MD5},
+bool x509::check_signature(const std::vector<uint8_t>& hash,
+ const std::vector<uint8_t>& signature,
+ ALGORITHMS algo) const {
+ CONST_MAP(ALGORITHMS, mbedtls_md_type_t, 5)
+ LIEF2MBED_MD = {
+ //{ALGORITHMS::MD2, MBEDTLS_MD_MD2},
+ //{ALGORITHMS::MD4, MBEDTLS_MD_MD4},
+ {ALGORITHMS::MD5, MBEDTLS_MD_MD5},
- {ALGORITHMS::SHA_1, MBEDTLS_MD_SHA1},
- {ALGORITHMS::SHA_256, MBEDTLS_MD_SHA256},
- {ALGORITHMS::SHA_384, MBEDTLS_MD_SHA384},
- {ALGORITHMS::SHA_512, MBEDTLS_MD_SHA512},
+ {ALGORITHMS::SHA_1, MBEDTLS_MD_SHA1},
+ {ALGORITHMS::SHA_256, MBEDTLS_MD_SHA256},
+ {ALGORITHMS::SHA_384, MBEDTLS_MD_SHA384},
+ {ALGORITHMS::SHA_512, MBEDTLS_MD_SHA512},
};
auto it_md = LIEF2MBED_MD.find(algo);
- if (it_md == std::end(LIEF2MBED_MD)) {
- LIEF_ERR("Can't find algorithm {}", to_string(algo));
+ if (it_md == LIEF2MBED_MD.end()) {
+ LIEF_ERR("Unsupported algorithm {}", to_string(algo));
return false;
}
mbedtls_pk_context& ctx = x509_cert_->pk;
int ret = mbedtls_pk_verify(&ctx,
- /* MD_HASH_ALGO */ it_md->second,
- /* Input Hash */ hash.data(), hash.size(),
- /* Signature provided */ signature.data(), signature.size());
+ /* MD_HASH_ALGO */ it_md->second,
+ /* Input Hash */ hash.data(), hash.size(),
+ /* Signature provided */ signature.data(),
+ signature.size());
/* If the verification failed with mbedtls_pk_verify it
- * does notnecessity means that the signatures don't match.
+ * does not necessarily mean that the signatures don't match.
*
- * For RSA public-key scheme, mbedtls encodes the hash with rsa_rsassa_pkcs1_v15_encode() so that it expands
- * the hash value with encoded data. On some samples, this encoding failed.
+ * For RSA public-key scheme, mbedtls encodes the hash with
+ * rsa_rsassa_pkcs1_v15_encode() so that it expands the hash value with encoded
+ * data. On some samples, this encoding failed.
*
- * In the approach below, we manually decrypt and unpad the output of the DEC(signature)
- * as defined in the RFC #2313
+ * In the approach below, we manually decrypt and unpad the output of the
+ * DEC(signature) as defined in the RFC #2313
*/
if (ret != 0) {
if (mbedtls_pk_get_type(&ctx) == MBEDTLS_PK_RSA) {
- auto* ctx_rsa = reinterpret_cast<mbedtls_rsa_context*>(ctx.private_pk_ctx);
- if ((ctx_rsa->private_len * 8) < 100 || (ctx_rsa->private_len * 8) > 2048llu * 10) {
- LIEF_INFO("RSA Key length is not valid ({} bits)", ctx_rsa->private_len * 8);
+ size_t bitlen = mbedtls_pk_get_bitlen(&ctx);
+ if ((bitlen * 8) < 100 || (bitlen * 8) > 2048llu * 10) {
+ LIEF_INFO("Invalid RSA key length ({} bits)", bitlen * 8);
return false;
}
- std::vector<uint8_t> decrypted(ctx_rsa->private_len);
+ std::vector<uint8_t> decrypted(bitlen);
+ mbedtls_rsa_context ctx_rsa;
+ rsa_from_pk(&ctx, &ctx_rsa);
+
+ int ret_rsa_public =
+ mbedtls_rsa_public(&ctx_rsa, signature.data(), decrypted.data());
+ mbedtls_rsa_free(&ctx_rsa);
- int ret_rsa_public = mbedtls_rsa_public(ctx_rsa, signature.data(), decrypted.data());
if (ret_rsa_public != 0) {
std::string strerr(1024, 0);
- mbedtls_strerror(ret_rsa_public, const_cast<char*>(strerr.data()), strerr.size());
+ mbedtls_strerror(ret_rsa_public, const_cast<char*>(strerr.data()),
+ strerr.size());
LIEF_INFO("RSA public key operation failed: '{}'", strerr);
return false;
}
@@ -585,7 +572,10 @@ x509::VERIFICATION_FLAGS x509::is_trusted_by(const std::vector<x509>& ca) const
LIEF_WARN("Certificate chain is empty");
return VERIFICATION_FLAGS::BADCERT_MISSING;
}
- std::vector<x509> ca_list = ca; // Explicit copy since we will modify mbedtls_x509_crt->next
+ // Explicit copy since we will modify mbedtls_x509_crt->next
+ // NOLINTNEXTLINE(performance-unnecessary-copy-initialization)
+ std::vector<x509> ca_list = ca;
+
for (size_t i = 0; i < ca_list.size() - 1; ++i) {
ca_list[i].x509_cert_->next = ca_list[i + 1].x509_cert_;
}
@@ -593,15 +583,15 @@ x509::VERIFICATION_FLAGS x509::is_trusted_by(const std::vector<x509>& ca) const
VERIFICATION_FLAGS result = VERIFICATION_FLAGS::OK;
uint32_t flags = 0;
mbedtls_x509_crt_profile profile = {
- MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_MD5) |
- MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA1) |
- MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA224) |
- MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA256) |
- MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA384) |
- MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA512),
- 0xFFFFFFF, /* Any PK alg */
- 0xFFFFFFF, /* Any curve */
- 1 /* Min RSA key */,
+ MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_MD5) |
+ MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA1) |
+ MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA224) |
+ MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA256) |
+ MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA384) |
+ MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA512),
+ 0xFFFFFFF, /* Any PK alg */
+ 0xFFFFFFF, /* Any curve */
+ 1 /* Min RSA key */,
};
int ret = mbedtls_x509_crt_verify_with_profile(
@@ -612,19 +602,21 @@ x509::VERIFICATION_FLAGS x509::is_trusted_by(const std::vector<x509>& ca) const
/* Common Name */ nullptr,
/* Verification */ &flags,
/* verification function */ nullptr,
- /* verification params */ nullptr);
+ /* verification params */ nullptr
+ );
if (ret != 0) {
std::string strerr(1024, 0);
mbedtls_strerror(ret, const_cast<char*>(strerr.data()), strerr.size());
std::string out(1024, 0);
- mbedtls_x509_crt_verify_info(const_cast<char*>(out.data()), out.size(), "", flags);
- LIEF_WARN("X509 verify failed with: {} (0x{:x})\n{}", strerr, ret, out);
+ mbedtls_x509_crt_verify_info(const_cast<char*>(out.data()), out.size(), "",
+ flags);
+ LIEF_WARN("X509 verify failed with: {} ({:#x})\n{}", strerr, ret, out);
result = from_mbedtls_err(flags);
}
// Clear the chain since ~x509() will delete each object
- for (size_t i = 0; i < ca_list.size(); ++i) {
+ for (size_t i = 0; i < ca_list.size(); ++i) { // NOLINT(modernize-loop-convert)
ca_list[i].x509_cert_->next = nullptr;
}
return result;
@@ -634,14 +626,14 @@ x509::VERIFICATION_FLAGS x509::verify(const x509& ca) const {
uint32_t flags = 0;
VERIFICATION_FLAGS result = VERIFICATION_FLAGS::OK;
mbedtls_x509_crt_profile profile = {
- MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA1) |
- MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA224) |
- MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA256) |
- MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA384) |
- MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA512),
- 0xFFFFFFF, /* Any PK alg */
- 0xFFFFFFF, /* Any curve */
- 1 /* Min RSA key */,
+ MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA1) |
+ MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA224) |
+ MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA256) |
+ MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA384) |
+ MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA512),
+ 0xFFFFFFF, /* Any PK alg */
+ 0xFFFFFFF, /* Any curve */
+ 1 /* Min RSA key */,
};
int ret = mbedtls_x509_crt_verify_with_profile(
@@ -652,14 +644,16 @@ x509::VERIFICATION_FLAGS x509::verify(const x509& ca) const {
/* Common Name */ nullptr,
/* Verification */ &flags,
/* verification function */ nullptr,
- /* verification params */ nullptr);
+ /* verification params */ nullptr
+ );
if (ret != 0) {
std::string strerr(1024, 0);
mbedtls_strerror(ret, const_cast<char*>(strerr.data()), strerr.size());
std::string out(1024, 0);
- mbedtls_x509_crt_verify_info(const_cast<char*>(out.data()), out.size(), "", flags);
- LIEF_WARN("X509 verify failed with: {} (0x{:x})\n{}", strerr, ret, out);
+ mbedtls_x509_crt_verify_info(const_cast<char*>(out.data()), out.size(), "",
+ flags);
+ LIEF_WARN("X509 verify failed with: {} ({:#x})\n{}", strerr, ret, out);
result = from_mbedtls_err(flags);
}
return result;
@@ -673,8 +667,9 @@ std::vector<oid_t> x509::ext_key_usage() const {
std::vector<oid_t> oids;
while (current != nullptr) {
char oid_str[256] = {0};
- int ret = mbedtls_oid_get_numeric_string(oid_str, sizeof(oid_str), ¤t->buf);
- if (ret != MBEDTLS_ERR_OID_BUF_TOO_SMALL) {
+ int ret =
+ mbedtls_oid_get_numeric_string(oid_str, sizeof(oid_str), ¤t->buf);
+ if (ret != MBEDTLS_ERR_ASN1_BUF_TOO_SMALL) {
LIEF_DEBUG("OID: {}", oid_str);
oids.emplace_back(oid_str);
} else {
@@ -691,7 +686,8 @@ std::vector<oid_t> x509::ext_key_usage() const {
}
std::vector<oid_t> x509::certificate_policies() const {
- if ((x509_cert_->private_ext_types & MBEDTLS_OID_X509_EXT_CERTIFICATE_POLICIES) == 0) {
+ if ((x509_cert_->private_ext_types & MBEDTLS_X509_EXT_CERTIFICATE_POLICIES) == 0)
+ {
return {};
}
@@ -700,8 +696,9 @@ std::vector<oid_t> x509::certificate_policies() const {
std::vector<oid_t> oids;
while (current != nullptr) {
char oid_str[256] = {0};
- int ret = mbedtls_oid_get_numeric_string(oid_str, sizeof(oid_str), ¤t->buf);
- if (ret != MBEDTLS_ERR_OID_BUF_TOO_SMALL) {
+ int ret =
+ mbedtls_oid_get_numeric_string(oid_str, sizeof(oid_str), ¤t->buf);
+ if (ret != MBEDTLS_ERR_ASN1_BUF_TOO_SMALL) {
oids.emplace_back(oid_str);
} else {
std::string strerr(1024, 0);
@@ -725,15 +722,15 @@ bool x509::is_ca() const {
std::vector<x509::KEY_USAGE> x509::key_usage() const {
static const std::map<uint32_t, KEY_USAGE> MBEDTLS_MAP = {
- {MBEDTLS_X509_KU_DIGITAL_SIGNATURE, KEY_USAGE::DIGITAL_SIGNATURE},
- {MBEDTLS_X509_KU_NON_REPUDIATION, KEY_USAGE::NON_REPUDIATION},
- {MBEDTLS_X509_KU_KEY_ENCIPHERMENT, KEY_USAGE::KEY_ENCIPHERMENT},
- {MBEDTLS_X509_KU_DATA_ENCIPHERMENT, KEY_USAGE::DATA_ENCIPHERMENT},
- {MBEDTLS_X509_KU_KEY_AGREEMENT, KEY_USAGE::KEY_AGREEMENT},
- {MBEDTLS_X509_KU_KEY_CERT_SIGN, KEY_USAGE::KEY_CERT_SIGN},
- {MBEDTLS_X509_KU_CRL_SIGN, KEY_USAGE::CRL_SIGN},
- {MBEDTLS_X509_KU_ENCIPHER_ONLY, KEY_USAGE::ENCIPHER_ONLY},
- {MBEDTLS_X509_KU_DECIPHER_ONLY, KEY_USAGE::DECIPHER_ONLY},
+ {MBEDTLS_X509_KU_DIGITAL_SIGNATURE, KEY_USAGE::DIGITAL_SIGNATURE},
+ {MBEDTLS_X509_KU_NON_REPUDIATION, KEY_USAGE::NON_REPUDIATION},
+ {MBEDTLS_X509_KU_KEY_ENCIPHERMENT, KEY_USAGE::KEY_ENCIPHERMENT},
+ {MBEDTLS_X509_KU_DATA_ENCIPHERMENT, KEY_USAGE::DATA_ENCIPHERMENT},
+ {MBEDTLS_X509_KU_KEY_AGREEMENT, KEY_USAGE::KEY_AGREEMENT},
+ {MBEDTLS_X509_KU_KEY_CERT_SIGN, KEY_USAGE::KEY_CERT_SIGN},
+ {MBEDTLS_X509_KU_CRL_SIGN, KEY_USAGE::CRL_SIGN},
+ {MBEDTLS_X509_KU_ENCIPHER_ONLY, KEY_USAGE::ENCIPHER_ONLY},
+ {MBEDTLS_X509_KU_DECIPHER_ONLY, KEY_USAGE::DECIPHER_ONLY},
};
if ((x509_cert_->private_ext_types & MBEDTLS_X509_EXT_KEY_USAGE) == 0) {
@@ -751,7 +748,7 @@ std::vector<x509::KEY_USAGE> x509::key_usage() const {
}
std::vector<uint8_t> x509::signature() const {
- mbedtls_x509_buf sig = x509_cert_->private_sig;
+ mbedtls_x509_buf sig = x509_cert_->private_sig;
return {sig.p, sig.p + sig.len};
}
@@ -766,7 +763,8 @@ x509::~x509() {
std::ostream& operator<<(std::ostream& os, const x509& x509_cert) {
std::vector<char> buffer(2048, 0);
- int ret = mbedtls_x509_crt_info(buffer.data(), buffer.size(), "", x509_cert.x509_cert_);
+ int ret = mbedtls_x509_crt_info(buffer.data(), buffer.size(), "",
+ x509_cert.x509_cert_);
if (ret < 0) {
os << "Can't print certificate information\n";
return os;
@@ -777,4 +775,3 @@ std::ostream& operator<<(std::ostream& os, const x509& x509_cert) {
}
}
-}
diff --git a/deps/LIEF/src/PE/utils.cpp b/deps/LIEF/src/PE/utils.cpp
index e24c48579d9..0c44521557a 100644
--- a/deps/LIEF/src/PE/utils.cpp
+++ b/deps/LIEF/src/PE/utils.cpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,12 @@
#include <algorithm>
#include <iterator>
+#ifndef MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS
+ #define MBEDTLS_DECLARE_PRIVATE_IDENTIFIERS
+#endif
+
#include "logging.hpp"
-#include "mbedtls/md5.h"
+#include "psa/crypto_builtin_primitives.h"
#include "LIEF/PE/utils.hpp"
#include "LIEF/PE/Binary.hpp"
@@ -36,16 +40,15 @@
#include "hash_stream.hpp"
#include "internal_utils.hpp"
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
static constexpr size_t SIZEOF_OPT_HEADER_32 = 0xE0;
static constexpr size_t SIZEOF_OPT_HEADER_64 = 0xF0;
inline std::string to_lower(std::string str) {
std::string lower = str;
- std::transform(std::begin(str), std::end(str),
- std::begin(lower), ::tolower);
+ std::transform(str.begin(), str.end(), lower.begin(), ::tolower);
return lower;
}
@@ -53,7 +56,7 @@ bool is_pe(BinaryStream& stream) {
using signature_t = std::array<char, sizeof(details::PE_Magic)>;
ScopedStream scoped(stream, 0);
if (auto dos_header = scoped->read<details::pe_dos_header>()) {
- if (dos_header->Magic != /* MZ */0x5a4d) {
+ if (dos_header->Magic != /* MZ */ 0x5a4d) {
return false;
}
scoped->setpos(dos_header->AddressOfNewExeHeader);
@@ -87,30 +90,34 @@ result<PE_TYPE> get_type_from_stream(BinaryStream& stream) {
stream.setpos(0);
auto dos_hdr = stream.read<details::pe_dos_header>();
if (!dos_hdr) {
- LIEF_ERR("Can't read the DOS Header structure");
+ LIEF_ERR("Failed to read the DOS header structure");
return make_error_code(dos_hdr.error());
}
stream.setpos(dos_hdr->AddressOfNewExeHeader);
if (!stream.can_read<details::pe_header>()) {
- LIEF_ERR("Can't read the PE header");
+ LIEF_ERR("Failed to read the PE header");
return make_error_code(lief_errors::read_error);
}
auto header = stream.read<details::pe_header>();
if (!header) {
- LIEF_ERR("Can't read the PE header");
+ LIEF_ERR("Failed to read the PE header");
return make_error_code(header.error());
}
const size_t sizeof_opt_header = header->SizeOfOptionalHeader;
if (sizeof_opt_header != SIZEOF_OPT_HEADER_32 &&
- sizeof_opt_header != SIZEOF_OPT_HEADER_64) {
- LIEF_WARN("The value of the SizeOfOptionalHeader in the PE header seems corrupted 0x{:x}", sizeof_opt_header);
+ sizeof_opt_header != SIZEOF_OPT_HEADER_64)
+ {
+ LIEF_WARN(
+ "SizeOfOptionalHeader seems invalid: {:#x}. Expecting {:#x} or {:#x}",
+ sizeof_opt_header, SIZEOF_OPT_HEADER_32, SIZEOF_OPT_HEADER_64
+ );
}
auto opt_hdr = stream.read<details::pe32_optional_header>();
if (!opt_hdr) {
- LIEF_ERR("Can't read the PE optional header");
+ LIEF_ERR("Failed to read the PE optional header");
return make_error_code(opt_hdr.error());
}
const auto type = static_cast<PE_TYPE>(opt_hdr->Magic);
@@ -136,7 +143,7 @@ result<PE_TYPE> get_type_from_stream(BinaryStream& stream) {
return PE_TYPE::PE32_PLUS;
}
- LIEF_ERR("Can't determine the PE's type (PE32 / PE32+)");
+ LIEF_ERR("Failed to determine PE type (PE32 / PE32+)");
return make_error_code(lief_errors::file_format_error);
}
@@ -166,7 +173,9 @@ std::string get_imphash_std(const Binary& binary) {
hashstream hs(hashstream::HASH::MD5);
for (const Import& imp : binary.imports()) {
Import resolved = imp;
- if (auto resolution = resolve_ordinals(imp, /* strict */ false, /* use_std */ true)) {
+ if (auto resolution =
+ resolve_ordinals(imp, /* strict */ false, /* use_std */ true))
+ {
resolved = std::move(*resolution);
}
@@ -176,7 +185,7 @@ std::string get_imphash_std(const Binary& binary) {
if (ext_idx != std::string::npos) {
ext = to_lower(resolved.name().substr(ext_idx + 1));
}
- if (ALLOWED_EXT.find(ext) != std::end(ALLOWED_EXT)) {
+ if (ALLOWED_EXT.find(ext) != ALLOWED_EXT.end()) {
name = name.substr(0, ext_idx);
}
@@ -201,7 +210,8 @@ std::string get_imphash_std(const Binary& binary) {
}
lstr += to_lower(entries_string);
- // use write(uint8_t*, size_t) instead of write(const std::string&) to avoid null char
+ // Use write(uint8_t*, size_t) instead of write(const std::string&) to avoid
+ // including the null terminator
hs.write(reinterpret_cast<const uint8_t*>(lstr.data()), lstr.size());
lstr.clear();
}
@@ -236,79 +246,73 @@ std::string get_imphash_lief(const Binary& binary) {
for (const ImportEntry& e : resolved.entries()) {
if (e.is_ordinal()) {
entries_string.append(name_without_ext)
- .append(".#")
- .append(std::to_string(e.ordinal()));
+ .append(".#")
+ .append(std::to_string(e.ordinal()));
} else {
- entries_string.append(name_without_ext)
- .append(".")
- .append(e.name());
+ entries_string.append(name_without_ext).append(".").append(e.name());
}
}
import_list += to_lower(entries_string);
}
- std::sort(std::begin(import_list), std::end(import_list),
- std::less<>());
+ std::sort(import_list.begin(), import_list.end(), std::less<>());
- mbedtls_md5(
- reinterpret_cast<const uint8_t*>(import_list.data()),
- import_list.size(),
- md5_buffer.data());
+ mbedtls_md5(reinterpret_cast<const uint8_t*>(import_list.data()),
+ import_list.size(), md5_buffer.data());
return hex_dump(md5_buffer, "");
}
std::string get_imphash(const Binary& binary, IMPHASH_MODE mode) {
switch (mode) {
case IMPHASH_MODE::LIEF:
- {
- return get_imphash_lief(binary);
- }
+ {
+ return get_imphash_lief(binary);
+ }
case IMPHASH_MODE::PEFILE:
- {
- return get_imphash_std(binary);
- }
+ {
+ return get_imphash_std(binary);
+ }
}
return "";
}
result<Import> resolve_ordinals(const Import& import, bool strict, bool use_std) {
static const std::unordered_map<std::string, const char* (*)(uint32_t)>
- ordinals_library_tables =
- {
- { "kernel32.dll", &kernel32_dll_lookup },
- { "ntdll.dll", &ntdll_dll_lookup },
- { "advapi32.dll", &advapi32_dll_lookup },
- { "msvcp110.dll", &msvcp110_dll_lookup },
- { "msvcp120.dll", &msvcp120_dll_lookup },
- { "msvcr100.dll", &msvcr100_dll_lookup },
- { "msvcr110.dll", &msvcr110_dll_lookup },
- { "msvcr120.dll", &msvcr120_dll_lookup },
- { "user32.dll", &user32_dll_lookup },
- { "comctl32.dll", &comctl32_dll_lookup },
- { "ws2_32.dll", &ws2_32_dll_lookup },
- { "shcore.dll", &shcore_dll_lookup },
- { "oleaut32.dll", &oleaut32_dll_lookup },
- { "mfc42u.dll", &mfc42u_dll_lookup },
- { "shlwapi.dll", &shlwapi_dll_lookup },
- { "gdi32.dll", &gdi32_dll_lookup },
- { "shell32.dll", &shell32_dll_lookup },
+ ordinals_library_tables = {
+ {"kernel32.dll", &kernel32_dll_lookup},
+ {"ntdll.dll", &ntdll_dll_lookup},
+ {"advapi32.dll", &advapi32_dll_lookup},
+ {"msvcp110.dll", &msvcp110_dll_lookup},
+ {"msvcp120.dll", &msvcp120_dll_lookup},
+ {"msvcr100.dll", &msvcr100_dll_lookup},
+ {"msvcr110.dll", &msvcr110_dll_lookup},
+ {"msvcr120.dll", &msvcr120_dll_lookup},
+ {"user32.dll", &user32_dll_lookup},
+ {"comctl32.dll", &comctl32_dll_lookup},
+ {"ws2_32.dll", &ws2_32_dll_lookup},
+ {"shcore.dll", &shcore_dll_lookup},
+ {"oleaut32.dll", &oleaut32_dll_lookup},
+ {"mfc42u.dll", &mfc42u_dll_lookup},
+ {"shlwapi.dll", &shlwapi_dll_lookup},
+ {"gdi32.dll", &gdi32_dll_lookup},
+ {"shell32.dll", &shell32_dll_lookup},
};
static const std::unordered_map<std::string, const char* (*)(uint32_t)>
- imphashstd_ordinals_library_tables =
- {
- { "ws2_32.dll", &ws2_32_dll_lookup },
- { "wsock32.dll", &ws2_32_dll_lookup },
- { "oleaut32.dll", &oleaut32_dll_lookup },
+ imphashstd_ordinals_library_tables = {
+ {"ws2_32.dll", &ws2_32_dll_lookup},
+ {"wsock32.dll", &ws2_32_dll_lookup},
+ {"oleaut32.dll", &oleaut32_dll_lookup},
};
- using ordinal_resolver_t = const char*(*)(uint32_t);
+ using ordinal_resolver_t = const char* (*)(uint32_t);
Import::it_const_entries entries = import.entries();
- if (std::all_of(std::begin(entries), std::end(entries),
- [] (const ImportEntry& entry) { return !entry.is_ordinal(); })) {
- //LIEF_DEBUG("All imports use name. No ordinal!");
+ if (std::all_of(entries.begin(), entries.end(),
+ [](const ImportEntry& entry) { return !entry.is_ordinal(); }))
+ {
+ // LIEF_DEBUG("All imports use name. No ordinal!");
return import;
}
@@ -317,12 +321,12 @@ result<Import> resolve_ordinals(const Import& import, bool strict, bool use_std)
ordinal_resolver_t ordinal_resolver = nullptr;
if (use_std) {
auto it = imphashstd_ordinals_library_tables.find(name);
- if (it != std::end(imphashstd_ordinals_library_tables)) {
+ if (it != imphashstd_ordinals_library_tables.end()) {
ordinal_resolver = it->second;
}
} else {
auto it = ordinals_library_tables.find(name);
- if (it != std::end(ordinals_library_tables)) {
+ if (it != ordinals_library_tables.end()) {
ordinal_resolver = it->second;
}
}
@@ -339,12 +343,13 @@ result<Import> resolve_ordinals(const Import& import, bool strict, bool use_std)
for (ImportEntry& entry : resolved_import.entries()) {
if (entry.is_ordinal()) {
LIEF_DEBUG("Dealing with: {}", to_string(entry));
- const char* entry_name = ordinal_resolver(static_cast<uint32_t>(entry.ordinal()));
+ const char* entry_name =
+ ordinal_resolver(static_cast<uint32_t>(entry.ordinal()));
if (entry_name == nullptr) {
if (strict) {
return make_error_code(lief_errors::not_supported);
}
- LIEF_DEBUG("Unable to resolve ordinal: #{:d}", entry.ordinal());
+ LIEF_DEBUG("Failed to resolve ordinal: #{:d}", entry.ordinal());
continue;
}
entry.data(0);
@@ -356,37 +361,36 @@ result<Import> resolve_ordinals(const Import& import, bool strict, bool use_std)
}
ALGORITHMS algo_from_oid(const std::string& oid) {
static const std::unordered_map<std::string, ALGORITHMS> OID_MAP = {
- { "2.16.840.1.101.3.4.2.3", ALGORITHMS::SHA_512 },
- { "2.16.840.1.101.3.4.2.2", ALGORITHMS::SHA_384 },
- { "2.16.840.1.101.3.4.2.1", ALGORITHMS::SHA_256 },
- { "1.3.14.3.2.26", ALGORITHMS::SHA_1 },
-
- { "1.2.840.113549.2.5", ALGORITHMS::MD5 },
- { "1.2.840.113549.2.4", ALGORITHMS::MD4 },
- { "1.2.840.113549.2.2", ALGORITHMS::MD2 },
-
- { "1.2.840.113549.1.1.1", ALGORITHMS::RSA },
- { "1.2.840.10045.2.1", ALGORITHMS::EC },
-
- { "1.2.840.113549.1.1.4", ALGORITHMS::MD5_RSA },
- { "1.2.840.10040.4.3", ALGORITHMS::SHA1_DSA },
- { "1.2.840.113549.1.1.5", ALGORITHMS::SHA1_RSA },
- { "1.2.840.113549.1.1.11", ALGORITHMS::SHA_256_RSA },
- { "1.2.840.113549.1.1.12", ALGORITHMS::SHA_384_RSA },
- { "1.2.840.113549.1.1.13", ALGORITHMS::SHA_512_RSA },
- { "1.2.840.10045.4.1", ALGORITHMS::SHA1_ECDSA },
- { "1.2.840.10045.4.3.2", ALGORITHMS::SHA_256_ECDSA },
- { "1.2.840.10045.4.3.3", ALGORITHMS::SHA_384_ECDSA },
- { "1.2.840.10045.4.3.4", ALGORITHMS::SHA_512_ECDSA },
+ {"2.16.840.1.101.3.4.2.3", ALGORITHMS::SHA_512},
+ {"2.16.840.1.101.3.4.2.2", ALGORITHMS::SHA_384},
+ {"2.16.840.1.101.3.4.2.1", ALGORITHMS::SHA_256},
+ {"1.3.14.3.2.26", ALGORITHMS::SHA_1},
+
+ {"1.2.840.113549.2.5", ALGORITHMS::MD5},
+ {"1.2.840.113549.2.4", ALGORITHMS::MD4},
+ {"1.2.840.113549.2.2", ALGORITHMS::MD2},
+
+ {"1.2.840.113549.1.1.1", ALGORITHMS::RSA},
+ {"1.2.840.10045.2.1", ALGORITHMS::EC},
+
+ {"1.2.840.113549.1.1.4", ALGORITHMS::MD5_RSA},
+ {"1.2.840.10040.4.3", ALGORITHMS::SHA1_DSA},
+ {"1.2.840.113549.1.1.5", ALGORITHMS::SHA1_RSA},
+ {"1.2.840.113549.1.1.11", ALGORITHMS::SHA_256_RSA},
+ {"1.2.840.113549.1.1.12", ALGORITHMS::SHA_384_RSA},
+ {"1.2.840.113549.1.1.13", ALGORITHMS::SHA_512_RSA},
+ {"1.2.840.10045.4.1", ALGORITHMS::SHA1_ECDSA},
+ {"1.2.840.10045.4.3.2", ALGORITHMS::SHA_256_ECDSA},
+ {"1.2.840.10045.4.3.3", ALGORITHMS::SHA_384_ECDSA},
+ {"1.2.840.10045.4.3.4", ALGORITHMS::SHA_512_ECDSA},
};
const auto it = OID_MAP.find(oid.c_str());
- if (it == std::end(OID_MAP)) {
+ if (it == OID_MAP.end()) {
return ALGORITHMS::UNKNOWN;
}
return it->second;
}
}
-}
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/advapi32_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/advapi32_dll_lookup.hpp
index f47dc5300eb..2c9eea818d2 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/advapi32_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/advapi32_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,693 +17,692 @@
#define LIEF_PE_ADVAPI32_DLL_LOOKUP_H
#include <cstdint>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
inline const char* advapi32_dll_lookup(uint32_t i) {
- switch(i) {
- case 0x0002: return "A_SHAFinal";
- case 0x0003: return "A_SHAInit";
- case 0x0004: return "A_SHAUpdate";
- case 0x0005: return "AbortSystemShutdownA";
- case 0x0006: return "AbortSystemShutdownW";
- case 0x0007: return "AccessCheck";
- case 0x0008: return "AccessCheckAndAuditAlarmA";
- case 0x0009: return "AccessCheckAndAuditAlarmW";
- case 0x000a: return "AccessCheckByType";
- case 0x000b: return "AccessCheckByTypeAndAuditAlarmA";
- case 0x000c: return "AccessCheckByTypeAndAuditAlarmW";
- case 0x000d: return "AccessCheckByTypeResultList";
- case 0x000e: return "AccessCheckByTypeResultListAndAuditAlarmA";
- case 0x000f: return "AccessCheckByTypeResultListAndAuditAlarmByHandleA";
- case 0x0010: return "AccessCheckByTypeResultListAndAuditAlarmByHandleW";
- case 0x0011: return "AccessCheckByTypeResultListAndAuditAlarmW";
- case 0x0012: return "AddAccessAllowedAce";
- case 0x0013: return "AddAccessAllowedAceEx";
- case 0x0014: return "AddAccessAllowedObjectAce";
- case 0x0015: return "AddAccessDeniedAce";
- case 0x0016: return "AddAccessDeniedAceEx";
- case 0x0017: return "AddAccessDeniedObjectAce";
- case 0x0018: return "AddAce";
- case 0x0019: return "AddAuditAccessAce";
- case 0x001a: return "AddAuditAccessAceEx";
- case 0x001b: return "AddAuditAccessObjectAce";
- case 0x001c: return "AddUsersToEncryptedFile";
- case 0x001d: return "AdjustTokenGroups";
- case 0x001e: return "AdjustTokenPrivileges";
- case 0x001f: return "AllocateAndInitializeSid";
- case 0x0020: return "AllocateLocallyUniqueId";
- case 0x0021: return "AreAllAccessesGranted";
- case 0x0022: return "AreAnyAccessesGranted";
- case 0x0023: return "BackupEventLogA";
- case 0x0024: return "BackupEventLogW";
- case 0x0025: return "BuildExplicitAccessWithNameA";
- case 0x0026: return "BuildExplicitAccessWithNameW";
- case 0x0027: return "BuildImpersonateExplicitAccessWithNameA";
- case 0x0028: return "BuildImpersonateExplicitAccessWithNameW";
- case 0x0029: return "BuildImpersonateTrusteeA";
- case 0x002a: return "BuildImpersonateTrusteeW";
- case 0x002b: return "BuildSecurityDescriptorA";
- case 0x002c: return "BuildSecurityDescriptorW";
- case 0x002d: return "BuildTrusteeWithNameA";
- case 0x002e: return "BuildTrusteeWithNameW";
- case 0x002f: return "BuildTrusteeWithObjectsAndNameA";
- case 0x0030: return "BuildTrusteeWithObjectsAndNameW";
- case 0x0031: return "BuildTrusteeWithObjectsAndSidA";
- case 0x0032: return "BuildTrusteeWithObjectsAndSidW";
- case 0x0033: return "BuildTrusteeWithSidA";
- case 0x0034: return "BuildTrusteeWithSidW";
- case 0x0035: return "CancelOverlappedAccess";
- case 0x0036: return "ChangeServiceConfig2A";
- case 0x0037: return "ChangeServiceConfig2W";
- case 0x0038: return "ChangeServiceConfigA";
- case 0x0039: return "ChangeServiceConfigW";
- case 0x003a: return "CheckTokenMembership";
- case 0x003b: return "ClearEventLogA";
- case 0x003c: return "ClearEventLogW";
- case 0x003d: return "CloseCodeAuthzLevel";
- case 0x003e: return "CloseEncryptedFileRaw";
- case 0x003f: return "CloseEventLog";
- case 0x0040: return "CloseServiceHandle";
- case 0x0041: return "CloseTrace";
- case 0x0042: return "CommandLineFromMsiDescriptor";
- case 0x0043: return "ComputeAccessTokenFromCodeAuthzLevel";
- case 0x0044: return "ControlService";
- case 0x0045: return "ControlTraceA";
- case 0x0046: return "ControlTraceW";
- case 0x0047: return "ConvertAccessToSecurityDescriptorA";
- case 0x0048: return "ConvertAccessToSecurityDescriptorW";
- case 0x0049: return "ConvertSDToStringSDRootDomainA";
- case 0x004a: return "ConvertSDToStringSDRootDomainW";
- case 0x004b: return "ConvertSecurityDescriptorToAccessA";
- case 0x004c: return "ConvertSecurityDescriptorToAccessNamedA";
- case 0x004d: return "ConvertSecurityDescriptorToAccessNamedW";
- case 0x004e: return "ConvertSecurityDescriptorToAccessW";
- case 0x004f: return "ConvertSecurityDescriptorToStringSecurityDescriptorA";
- case 0x0050: return "ConvertSecurityDescriptorToStringSecurityDescriptorW";
- case 0x0051: return "ConvertSidToStringSidA";
- case 0x0052: return "ConvertSidToStringSidW";
- case 0x0053: return "ConvertStringSDToSDDomainA";
- case 0x0054: return "ConvertStringSDToSDDomainW";
- case 0x0055: return "ConvertStringSDToSDRootDomainA";
- case 0x0056: return "ConvertStringSDToSDRootDomainW";
- case 0x0057: return "ConvertStringSecurityDescriptorToSecurityDescriptorA";
- case 0x0058: return "ConvertStringSecurityDescriptorToSecurityDescriptorW";
- case 0x0059: return "ConvertStringSidToSidA";
- case 0x005a: return "ConvertStringSidToSidW";
- case 0x005b: return "ConvertToAutoInheritPrivateObjectSecurity";
- case 0x005c: return "CopySid";
- case 0x005d: return "CreateCodeAuthzLevel";
- case 0x005e: return "CreatePrivateObjectSecurity";
- case 0x005f: return "CreatePrivateObjectSecurityEx";
- case 0x0060: return "CreatePrivateObjectSecurityWithMultipleInheritance";
- case 0x0061: return "CreateProcessAsUserA";
- case 0x0062: return "CreateProcessAsUserSecure";
- case 0x0063: return "CreateProcessAsUserW";
- case 0x0064: return "CreateProcessWithLogonW";
- case 0x0065: return "CreateRestrictedToken";
- case 0x0066: return "CreateServiceA";
- case 0x0067: return "CreateServiceW";
- case 0x0068: return "CreateTraceInstanceId";
- case 0x0069: return "CreateWellKnownSid";
- case 0x006a: return "CredDeleteA";
- case 0x006b: return "CredDeleteW";
- case 0x006c: return "CredEnumerateA";
- case 0x006d: return "CredEnumerateW";
- case 0x006e: return "CredFree";
- case 0x006f: return "CredGetSessionTypes";
- case 0x0070: return "CredGetTargetInfoA";
- case 0x0071: return "CredGetTargetInfoW";
- case 0x0072: return "CredIsMarshaledCredentialA";
- case 0x0073: return "CredIsMarshaledCredentialW";
- case 0x0074: return "CredMarshalCredentialA";
- case 0x0075: return "CredMarshalCredentialW";
- case 0x0076: return "CredProfileLoaded";
- case 0x0077: return "CredReadA";
- case 0x0078: return "CredReadDomainCredentialsA";
- case 0x0079: return "CredReadDomainCredentialsW";
- case 0x007a: return "CredReadW";
- case 0x007b: return "CredRenameA";
- case 0x007c: return "CredRenameW";
- case 0x007d: return "CredUnmarshalCredentialA";
- case 0x007e: return "CredUnmarshalCredentialW";
- case 0x007f: return "CredWriteA";
- case 0x0080: return "CredWriteDomainCredentialsA";
- case 0x0081: return "CredWriteDomainCredentialsW";
- case 0x0082: return "CredWriteW";
- case 0x0083: return "CredpConvertCredential";
- case 0x0084: return "CredpConvertTargetInfo";
- case 0x0085: return "CredpDecodeCredential";
- case 0x0086: return "CredpEncodeCredential";
- case 0x0087: return "CryptAcquireContextA";
- case 0x0088: return "CryptAcquireContextW";
- case 0x0089: return "CryptContextAddRef";
- case 0x008a: return "CryptCreateHash";
- case 0x008b: return "CryptDecrypt";
- case 0x008c: return "CryptDeriveKey";
- case 0x008d: return "CryptDestroyHash";
- case 0x008e: return "CryptDestroyKey";
- case 0x008f: return "CryptDuplicateHash";
- case 0x0090: return "CryptDuplicateKey";
- case 0x0091: return "CryptEncrypt";
- case 0x0092: return "CryptEnumProviderTypesA";
- case 0x0093: return "CryptEnumProviderTypesW";
- case 0x0094: return "CryptEnumProvidersA";
- case 0x0095: return "CryptEnumProvidersW";
- case 0x0096: return "CryptExportKey";
- case 0x0097: return "CryptGenKey";
- case 0x0098: return "CryptGenRandom";
- case 0x0099: return "CryptGetDefaultProviderA";
- case 0x009a: return "CryptGetDefaultProviderW";
- case 0x009b: return "CryptGetHashParam";
- case 0x009c: return "CryptGetKeyParam";
- case 0x009d: return "CryptGetProvParam";
- case 0x009e: return "CryptGetUserKey";
- case 0x009f: return "CryptHashData";
- case 0x00a0: return "CryptHashSessionKey";
- case 0x00a1: return "CryptImportKey";
- case 0x00a2: return "CryptReleaseContext";
- case 0x00a3: return "CryptSetHashParam";
- case 0x00a4: return "CryptSetKeyParam";
- case 0x00a5: return "CryptSetProvParam";
- case 0x00a6: return "CryptSetProviderA";
- case 0x00a7: return "CryptSetProviderExA";
- case 0x00a8: return "CryptSetProviderExW";
- case 0x00a9: return "CryptSetProviderW";
- case 0x00aa: return "CryptSignHashA";
- case 0x00ab: return "CryptSignHashW";
- case 0x00ac: return "CryptVerifySignatureA";
- case 0x00ad: return "CryptVerifySignatureW";
- case 0x00ae: return "DecryptFileA";
- case 0x00af: return "DecryptFileW";
- case 0x00b0: return "DeleteAce";
- case 0x00b1: return "DeleteService";
- case 0x00b2: return "DeregisterEventSource";
- case 0x00b3: return "DestroyPrivateObjectSecurity";
- case 0x00b4: return "DuplicateEncryptionInfoFile";
- case 0x00b5: return "DuplicateToken";
- case 0x00b6: return "DuplicateTokenEx";
- case 0x00b7: return "ElfBackupEventLogFileA";
- case 0x00b8: return "ElfBackupEventLogFileW";
- case 0x00b9: return "ElfChangeNotify";
- case 0x00ba: return "ElfClearEventLogFileA";
- case 0x00bb: return "ElfClearEventLogFileW";
- case 0x00bc: return "ElfCloseEventLog";
- case 0x00bd: return "ElfDeregisterEventSource";
- case 0x00be: return "ElfFlushEventLog";
- case 0x00bf: return "ElfNumberOfRecords";
- case 0x00c0: return "ElfOldestRecord";
- case 0x00c1: return "ElfOpenBackupEventLogA";
- case 0x00c2: return "ElfOpenBackupEventLogW";
- case 0x00c3: return "ElfOpenEventLogA";
- case 0x00c4: return "ElfOpenEventLogW";
- case 0x00c5: return "ElfReadEventLogA";
- case 0x00c6: return "ElfReadEventLogW";
- case 0x00c7: return "ElfRegisterEventSourceA";
- case 0x00c8: return "ElfRegisterEventSourceW";
- case 0x00c9: return "ElfReportEventA";
- case 0x00ca: return "ElfReportEventW";
- case 0x00cb: return "EnableTrace";
- case 0x00cc: return "EncryptFileA";
- case 0x00cd: return "EncryptFileW";
- case 0x00ce: return "EncryptedFileKeyInfo";
- case 0x00cf: return "EncryptionDisable";
- case 0x00d0: return "EnumDependentServicesA";
- case 0x00d1: return "EnumDependentServicesW";
- case 0x00d2: return "EnumServiceGroupW";
- case 0x00d3: return "EnumServicesStatusA";
- case 0x00d4: return "EnumServicesStatusExA";
- case 0x00d5: return "EnumServicesStatusExW";
- case 0x00d6: return "EnumServicesStatusW";
- case 0x00d7: return "EnumerateTraceGuids";
- case 0x00d8: return "EqualDomainSid";
- case 0x00d9: return "EqualPrefixSid";
- case 0x00da: return "EqualSid";
- case 0x00db: return "FileEncryptionStatusA";
- case 0x00dc: return "FileEncryptionStatusW";
- case 0x00dd: return "FindFirstFreeAce";
- case 0x00de: return "FlushTraceA";
- case 0x00df: return "FlushTraceW";
- case 0x00e0: return "FreeEncryptedFileKeyInfo";
- case 0x00e1: return "FreeEncryptionCertificateHashList";
- case 0x00e2: return "FreeInheritedFromArray";
- case 0x00e3: return "FreeSid";
- case 0x00e4: return "GetAccessPermissionsForObjectA";
- case 0x00e5: return "GetAccessPermissionsForObjectW";
- case 0x00e6: return "GetAce";
- case 0x00e7: return "GetAclInformation";
- case 0x00e8: return "GetAuditedPermissionsFromAclA";
- case 0x00e9: return "GetAuditedPermissionsFromAclW";
- case 0x00ea: return "GetCurrentHwProfileA";
- case 0x00eb: return "GetCurrentHwProfileW";
- case 0x00ec: return "GetEffectiveRightsFromAclA";
- case 0x00ed: return "GetEffectiveRightsFromAclW";
- case 0x00ee: return "GetEventLogInformation";
- case 0x00ef: return "GetExplicitEntriesFromAclA";
- case 0x00f0: return "GetExplicitEntriesFromAclW";
- case 0x00f1: return "GetFileSecurityA";
- case 0x00f2: return "GetFileSecurityW";
- case 0x00f3: return "GetInformationCodeAuthzLevelW";
- case 0x00f4: return "GetInformationCodeAuthzPolicyW";
- case 0x00f5: return "GetInheritanceSourceA";
- case 0x00f6: return "GetInheritanceSourceW";
- case 0x00f7: return "GetKernelObjectSecurity";
- case 0x00f8: return "GetLengthSid";
- case 0x00f9: return "GetLocalManagedApplicationData";
- case 0x00fa: return "GetLocalManagedApplications";
- case 0x00fb: return "GetManagedApplicationCategories";
- case 0x00fc: return "GetManagedApplications";
- case 0x00fd: return "GetMultipleTrusteeA";
- case 0x00fe: return "GetMultipleTrusteeOperationA";
- case 0x00ff: return "GetMultipleTrusteeOperationW";
- case 0x0100: return "GetMultipleTrusteeW";
- case 0x0101: return "GetNamedSecurityInfoA";
- case 0x0102: return "GetNamedSecurityInfoExA";
- case 0x0103: return "GetNamedSecurityInfoExW";
- case 0x0104: return "GetNamedSecurityInfoW";
- case 0x0105: return "GetNumberOfEventLogRecords";
- case 0x0106: return "GetOldestEventLogRecord";
- case 0x0107: return "GetOverlappedAccessResults";
- case 0x0108: return "GetPrivateObjectSecurity";
- case 0x0109: return "GetSecurityDescriptorControl";
- case 0x010a: return "GetSecurityDescriptorDacl";
- case 0x010b: return "GetSecurityDescriptorGroup";
- case 0x010c: return "GetSecurityDescriptorLength";
- case 0x010d: return "GetSecurityDescriptorOwner";
- case 0x010e: return "GetSecurityDescriptorRMControl";
- case 0x010f: return "GetSecurityDescriptorSacl";
- case 0x0110: return "GetSecurityInfo";
- case 0x0111: return "GetSecurityInfoExA";
- case 0x0112: return "GetSecurityInfoExW";
- case 0x0113: return "GetServiceDisplayNameA";
- case 0x0114: return "GetServiceDisplayNameW";
- case 0x0115: return "GetServiceKeyNameA";
- case 0x0116: return "GetServiceKeyNameW";
- case 0x0117: return "GetSidIdentifierAuthority";
- case 0x0118: return "GetSidLengthRequired";
- case 0x0119: return "GetSidSubAuthority";
- case 0x011a: return "GetSidSubAuthorityCount";
- case 0x011b: return "GetTokenInformation";
- case 0x011c: return "GetTraceEnableFlags";
- case 0x011d: return "GetTraceEnableLevel";
- case 0x011e: return "GetTraceLoggerHandle";
- case 0x011f: return "GetTrusteeFormA";
- case 0x0120: return "GetTrusteeFormW";
- case 0x0121: return "GetTrusteeNameA";
- case 0x0122: return "GetTrusteeNameW";
- case 0x0123: return "GetTrusteeTypeA";
- case 0x0124: return "GetTrusteeTypeW";
- case 0x0125: return "GetUserNameA";
- case 0x0126: return "GetUserNameW";
- case 0x0127: return "GetWindowsAccountDomainSid";
- case 0x0001: return "I_ScGetCurrentGroupStateW";
- case 0x0128: return "I_ScIsSecurityProcess";
- case 0x0129: return "I_ScPnPGetServiceName";
- case 0x012a: return "I_ScSendTSMessage";
- case 0x012b: return "I_ScSetServiceBitsA";
- case 0x012c: return "I_ScSetServiceBitsW";
- case 0x012d: return "IdentifyCodeAuthzLevelW";
- case 0x012e: return "ImpersonateAnonymousToken";
- case 0x012f: return "ImpersonateLoggedOnUser";
- case 0x0130: return "ImpersonateNamedPipeClient";
- case 0x0131: return "ImpersonateSelf";
- case 0x0132: return "InitializeAcl";
- case 0x0133: return "InitializeSecurityDescriptor";
- case 0x0134: return "InitializeSid";
- case 0x0135: return "InitiateSystemShutdownA";
- case 0x0136: return "InitiateSystemShutdownExA";
- case 0x0137: return "InitiateSystemShutdownExW";
- case 0x0138: return "InitiateSystemShutdownW";
- case 0x0139: return "InstallApplication";
- case 0x013a: return "IsTextUnicode";
- case 0x013b: return "IsTokenRestricted";
- case 0x013c: return "IsTokenUntrusted";
- case 0x013d: return "IsValidAcl";
- case 0x013e: return "IsValidSecurityDescriptor";
- case 0x013f: return "IsValidSid";
- case 0x0140: return "IsWellKnownSid";
- case 0x0141: return "LockServiceDatabase";
- case 0x0142: return "LogonUserA";
- case 0x0143: return "LogonUserExA";
- case 0x0144: return "LogonUserExW";
- case 0x0145: return "LogonUserW";
- case 0x0146: return "LookupAccountNameA";
- case 0x0147: return "LookupAccountNameW";
- case 0x0148: return "LookupAccountSidA";
- case 0x0149: return "LookupAccountSidW";
- case 0x014a: return "LookupPrivilegeDisplayNameA";
- case 0x014b: return "LookupPrivilegeDisplayNameW";
- case 0x014c: return "LookupPrivilegeNameA";
- case 0x014d: return "LookupPrivilegeNameW";
- case 0x014e: return "LookupPrivilegeValueA";
- case 0x014f: return "LookupPrivilegeValueW";
- case 0x0150: return "LookupSecurityDescriptorPartsA";
- case 0x0151: return "LookupSecurityDescriptorPartsW";
- case 0x0152: return "LsaAddAccountRights";
- case 0x0153: return "LsaAddPrivilegesToAccount";
- case 0x0154: return "LsaClearAuditLog";
- case 0x0155: return "LsaClose";
- case 0x0156: return "LsaCreateAccount";
- case 0x0157: return "LsaCreateSecret";
- case 0x0158: return "LsaCreateTrustedDomain";
- case 0x0159: return "LsaCreateTrustedDomainEx";
- case 0x015a: return "LsaDelete";
- case 0x015b: return "LsaDeleteTrustedDomain";
- case 0x015c: return "LsaEnumerateAccountRights";
- case 0x015d: return "LsaEnumerateAccounts";
- case 0x015e: return "LsaEnumerateAccountsWithUserRight";
- case 0x015f: return "LsaEnumeratePrivileges";
- case 0x0160: return "LsaEnumeratePrivilegesOfAccount";
- case 0x0161: return "LsaEnumerateTrustedDomains";
- case 0x0162: return "LsaEnumerateTrustedDomainsEx";
- case 0x0163: return "LsaFreeMemory";
- case 0x0164: return "LsaGetQuotasForAccount";
- case 0x0165: return "LsaGetRemoteUserName";
- case 0x0166: return "LsaGetSystemAccessAccount";
- case 0x0167: return "LsaGetUserName";
- case 0x0168: return "LsaICLookupNames";
- case 0x0169: return "LsaICLookupNamesWithCreds";
- case 0x016a: return "LsaICLookupSids";
- case 0x016b: return "LsaICLookupSidsWithCreds";
- case 0x016d: return "LsaLookupNames";
- case 0x016c: return "LsaLookupNames2";
- case 0x016e: return "LsaLookupPrivilegeDisplayName";
- case 0x016f: return "LsaLookupPrivilegeName";
- case 0x0170: return "LsaLookupPrivilegeValue";
- case 0x0171: return "LsaLookupSids";
- case 0x0172: return "LsaNtStatusToWinError";
- case 0x0173: return "LsaOpenAccount";
- case 0x0174: return "LsaOpenPolicy";
- case 0x0175: return "LsaOpenPolicySce";
- case 0x0176: return "LsaOpenSecret";
- case 0x0177: return "LsaOpenTrustedDomain";
- case 0x0178: return "LsaOpenTrustedDomainByName";
- case 0x0179: return "LsaQueryDomainInformationPolicy";
- case 0x017a: return "LsaQueryForestTrustInformation";
- case 0x017b: return "LsaQueryInfoTrustedDomain";
- case 0x017c: return "LsaQueryInformationPolicy";
- case 0x017d: return "LsaQuerySecret";
- case 0x017e: return "LsaQuerySecurityObject";
- case 0x017f: return "LsaQueryTrustedDomainInfo";
- case 0x0180: return "LsaQueryTrustedDomainInfoByName";
- case 0x0181: return "LsaRemoveAccountRights";
- case 0x0182: return "LsaRemovePrivilegesFromAccount";
- case 0x0183: return "LsaRetrievePrivateData";
- case 0x0184: return "LsaSetDomainInformationPolicy";
- case 0x0185: return "LsaSetForestTrustInformation";
- case 0x0186: return "LsaSetInformationPolicy";
- case 0x0187: return "LsaSetInformationTrustedDomain";
- case 0x0188: return "LsaSetQuotasForAccount";
- case 0x0189: return "LsaSetSecret";
- case 0x018a: return "LsaSetSecurityObject";
- case 0x018b: return "LsaSetSystemAccessAccount";
- case 0x018c: return "LsaSetTrustedDomainInfoByName";
- case 0x018d: return "LsaSetTrustedDomainInformation";
- case 0x018e: return "LsaStorePrivateData";
- case 0x018f: return "MD4Final";
- case 0x0190: return "MD4Init";
- case 0x0191: return "MD4Update";
- case 0x0192: return "MD5Final";
- case 0x0193: return "MD5Init";
- case 0x0194: return "MD5Update";
- case 0x0196: return "MSChapSrvChangePassword";
- case 0x0195: return "MSChapSrvChangePassword2";
- case 0x0198: return "MakeAbsoluteSD";
- case 0x0197: return "MakeAbsoluteSD2";
- case 0x0199: return "MakeSelfRelativeSD";
- case 0x019a: return "MapGenericMask";
- case 0x019b: return "NotifyBootConfigStatus";
- case 0x019c: return "NotifyChangeEventLog";
- case 0x019d: return "ObjectCloseAuditAlarmA";
- case 0x019e: return "ObjectCloseAuditAlarmW";
- case 0x019f: return "ObjectDeleteAuditAlarmA";
- case 0x01a0: return "ObjectDeleteAuditAlarmW";
- case 0x01a1: return "ObjectOpenAuditAlarmA";
- case 0x01a2: return "ObjectOpenAuditAlarmW";
- case 0x01a3: return "ObjectPrivilegeAuditAlarmA";
- case 0x01a4: return "ObjectPrivilegeAuditAlarmW";
- case 0x01a5: return "OpenBackupEventLogA";
- case 0x01a6: return "OpenBackupEventLogW";
- case 0x01a7: return "OpenEncryptedFileRawA";
- case 0x01a8: return "OpenEncryptedFileRawW";
- case 0x01a9: return "OpenEventLogA";
- case 0x01aa: return "OpenEventLogW";
- case 0x01ab: return "OpenProcessToken";
- case 0x01ac: return "OpenSCManagerA";
- case 0x01ad: return "OpenSCManagerW";
- case 0x01ae: return "OpenServiceA";
- case 0x01af: return "OpenServiceW";
- case 0x01b0: return "OpenThreadToken";
- case 0x01b1: return "OpenTraceA";
- case 0x01b2: return "OpenTraceW";
- case 0x01b3: return "PrivilegeCheck";
- case 0x01b4: return "PrivilegedServiceAuditAlarmA";
- case 0x01b5: return "PrivilegedServiceAuditAlarmW";
- case 0x01b6: return "ProcessIdleTasks";
- case 0x01b7: return "ProcessTrace";
- case 0x01b8: return "QueryAllTracesA";
- case 0x01b9: return "QueryAllTracesW";
- case 0x01ba: return "QueryRecoveryAgentsOnEncryptedFile";
- case 0x01bb: return "QueryServiceConfig2A";
- case 0x01bc: return "QueryServiceConfig2W";
- case 0x01bd: return "QueryServiceConfigA";
- case 0x01be: return "QueryServiceConfigW";
- case 0x01bf: return "QueryServiceLockStatusA";
- case 0x01c0: return "QueryServiceLockStatusW";
- case 0x01c1: return "QueryServiceObjectSecurity";
- case 0x01c2: return "QueryServiceStatus";
- case 0x01c3: return "QueryServiceStatusEx";
- case 0x01c4: return "QueryTraceA";
- case 0x01c5: return "QueryTraceW";
- case 0x01c6: return "QueryUsersOnEncryptedFile";
- case 0x01c7: return "QueryWindows31FilesMigration";
- case 0x01c8: return "ReadEncryptedFileRaw";
- case 0x01c9: return "ReadEventLogA";
- case 0x01ca: return "ReadEventLogW";
- case 0x01cb: return "RegCloseKey";
- case 0x01cc: return "RegConnectRegistryA";
- case 0x01cd: return "RegConnectRegistryW";
- case 0x01ce: return "RegCreateKeyA";
- case 0x01cf: return "RegCreateKeyExA";
- case 0x01d0: return "RegCreateKeyExW";
- case 0x01d1: return "RegCreateKeyW";
- case 0x01d2: return "RegDeleteKeyA";
- case 0x01d3: return "RegDeleteKeyW";
- case 0x01d4: return "RegDeleteValueA";
- case 0x01d5: return "RegDeleteValueW";
- case 0x01d6: return "RegDisablePredefinedCache";
- case 0x01d7: return "RegEnumKeyA";
- case 0x01d8: return "RegEnumKeyExA";
- case 0x01d9: return "RegEnumKeyExW";
- case 0x01da: return "RegEnumKeyW";
- case 0x01db: return "RegEnumValueA";
- case 0x01dc: return "RegEnumValueW";
- case 0x01dd: return "RegFlushKey";
- case 0x01de: return "RegGetKeySecurity";
- case 0x01df: return "RegLoadKeyA";
- case 0x01e0: return "RegLoadKeyW";
- case 0x01e1: return "RegNotifyChangeKeyValue";
- case 0x01e2: return "RegOpenCurrentUser";
- case 0x01e3: return "RegOpenKeyA";
- case 0x01e4: return "RegOpenKeyExA";
- case 0x01e5: return "RegOpenKeyExW";
- case 0x01e6: return "RegOpenKeyW";
- case 0x01e7: return "RegOpenUserClassesRoot";
- case 0x01e8: return "RegOverridePredefKey";
- case 0x01e9: return "RegQueryInfoKeyA";
- case 0x01ea: return "RegQueryInfoKeyW";
- case 0x01eb: return "RegQueryMultipleValuesA";
- case 0x01ec: return "RegQueryMultipleValuesW";
- case 0x01ed: return "RegQueryValueA";
- case 0x01ee: return "RegQueryValueExA";
- case 0x01ef: return "RegQueryValueExW";
- case 0x01f0: return "RegQueryValueW";
- case 0x01f1: return "RegReplaceKeyA";
- case 0x01f2: return "RegReplaceKeyW";
- case 0x01f3: return "RegRestoreKeyA";
- case 0x01f4: return "RegRestoreKeyW";
- case 0x01f5: return "RegSaveKeyA";
- case 0x01f6: return "RegSaveKeyExA";
- case 0x01f7: return "RegSaveKeyExW";
- case 0x01f8: return "RegSaveKeyW";
- case 0x01f9: return "RegSetKeySecurity";
- case 0x01fa: return "RegSetValueA";
- case 0x01fb: return "RegSetValueExA";
- case 0x01fc: return "RegSetValueExW";
- case 0x01fd: return "RegSetValueW";
- case 0x01fe: return "RegUnLoadKeyA";
- case 0x01ff: return "RegUnLoadKeyW";
- case 0x0200: return "RegisterEventSourceA";
- case 0x0201: return "RegisterEventSourceW";
- case 0x0202: return "RegisterIdleTask";
- case 0x0203: return "RegisterServiceCtrlHandlerA";
- case 0x0204: return "RegisterServiceCtrlHandlerExA";
- case 0x0205: return "RegisterServiceCtrlHandlerExW";
- case 0x0206: return "RegisterServiceCtrlHandlerW";
- case 0x0207: return "RegisterTraceGuidsA";
- case 0x0208: return "RegisterTraceGuidsW";
- case 0x0209: return "RemoveTraceCallback";
- case 0x020a: return "RemoveUsersFromEncryptedFile";
- case 0x020b: return "ReportEventA";
- case 0x020c: return "ReportEventW";
- case 0x020d: return "RevertToSelf";
- case 0x020e: return "SaferCloseLevel";
- case 0x020f: return "SaferComputeTokenFromLevel";
- case 0x0210: return "SaferCreateLevel";
- case 0x0211: return "SaferGetLevelInformation";
- case 0x0212: return "SaferGetPolicyInformation";
- case 0x0213: return "SaferIdentifyLevel";
- case 0x0214: return "SaferRecordEventLogEntry";
- case 0x0215: return "SaferSetLevelInformation";
- case 0x0216: return "SaferSetPolicyInformation";
- case 0x0217: return "SaferiChangeRegistryScope";
- case 0x0218: return "SaferiCompareTokenLevels";
- case 0x0219: return "SaferiIsExecutableFileType";
- case 0x021a: return "SaferiPopulateDefaultsInRegistry";
- case 0x021b: return "SaferiRecordEventLogEntry";
- case 0x021c: return "SaferiReplaceProcessThreadTokens";
- case 0x021d: return "SaferiSearchMatchingHashRules";
- case 0x021e: return "SetAclInformation";
- case 0x021f: return "SetEntriesInAccessListA";
- case 0x0220: return "SetEntriesInAccessListW";
- case 0x0221: return "SetEntriesInAclA";
- case 0x0222: return "SetEntriesInAclW";
- case 0x0223: return "SetEntriesInAuditListA";
- case 0x0224: return "SetEntriesInAuditListW";
- case 0x0225: return "SetFileSecurityA";
- case 0x0226: return "SetFileSecurityW";
- case 0x0227: return "SetInformationCodeAuthzLevelW";
- case 0x0228: return "SetInformationCodeAuthzPolicyW";
- case 0x0229: return "SetKernelObjectSecurity";
- case 0x022a: return "SetNamedSecurityInfoA";
- case 0x022b: return "SetNamedSecurityInfoExA";
- case 0x022c: return "SetNamedSecurityInfoExW";
- case 0x022d: return "SetNamedSecurityInfoW";
- case 0x022e: return "SetPrivateObjectSecurity";
- case 0x022f: return "SetPrivateObjectSecurityEx";
- case 0x0230: return "SetSecurityDescriptorControl";
- case 0x0231: return "SetSecurityDescriptorDacl";
- case 0x0232: return "SetSecurityDescriptorGroup";
- case 0x0233: return "SetSecurityDescriptorOwner";
- case 0x0234: return "SetSecurityDescriptorRMControl";
- case 0x0235: return "SetSecurityDescriptorSacl";
- case 0x0236: return "SetSecurityInfo";
- case 0x0237: return "SetSecurityInfoExA";
- case 0x0238: return "SetSecurityInfoExW";
- case 0x0239: return "SetServiceBits";
- case 0x023a: return "SetServiceObjectSecurity";
- case 0x023b: return "SetServiceStatus";
- case 0x023c: return "SetThreadToken";
- case 0x023d: return "SetTokenInformation";
- case 0x023e: return "SetTraceCallback";
- case 0x023f: return "SetUserFileEncryptionKey";
- case 0x0240: return "StartServiceA";
- case 0x0241: return "StartServiceCtrlDispatcherA";
- case 0x0242: return "StartServiceCtrlDispatcherW";
- case 0x0243: return "StartServiceW";
- case 0x0244: return "StartTraceA";
- case 0x0245: return "StartTraceW";
- case 0x0246: return "StopTraceA";
- case 0x0247: return "StopTraceW";
- case 0x0248: return "SynchronizeWindows31FilesAndWindowsNTRegistry";
- case 0x0249: return "SystemFunction001";
- case 0x024a: return "SystemFunction002";
- case 0x024b: return "SystemFunction003";
- case 0x024c: return "SystemFunction004";
- case 0x024d: return "SystemFunction005";
- case 0x024e: return "SystemFunction006";
- case 0x024f: return "SystemFunction007";
- case 0x0250: return "SystemFunction008";
- case 0x0251: return "SystemFunction009";
- case 0x0252: return "SystemFunction010";
- case 0x0253: return "SystemFunction011";
- case 0x0254: return "SystemFunction012";
- case 0x0255: return "SystemFunction013";
- case 0x0256: return "SystemFunction014";
- case 0x0257: return "SystemFunction015";
- case 0x0258: return "SystemFunction016";
- case 0x0259: return "SystemFunction017";
- case 0x025a: return "SystemFunction018";
- case 0x025b: return "SystemFunction019";
- case 0x025c: return "SystemFunction020";
- case 0x025d: return "SystemFunction021";
- case 0x025e: return "SystemFunction022";
- case 0x025f: return "SystemFunction023";
- case 0x0260: return "SystemFunction024";
- case 0x0261: return "SystemFunction025";
- case 0x0262: return "SystemFunction026";
- case 0x0263: return "SystemFunction027";
- case 0x0264: return "SystemFunction028";
- case 0x0265: return "SystemFunction029";
- case 0x0266: return "SystemFunction030";
- case 0x0267: return "SystemFunction031";
- case 0x0268: return "SystemFunction032";
- case 0x0269: return "SystemFunction033";
- case 0x026a: return "SystemFunction034";
- case 0x026b: return "SystemFunction035";
- case 0x026c: return "SystemFunction036";
- case 0x026d: return "SystemFunction040";
- case 0x026e: return "SystemFunction041";
- case 0x026f: return "TraceEvent";
- case 0x0270: return "TraceEventInstance";
- case 0x0271: return "TraceMessage";
- case 0x0272: return "TraceMessageVa";
- case 0x0273: return "TreeResetNamedSecurityInfoA";
- case 0x0274: return "TreeResetNamedSecurityInfoW";
- case 0x0275: return "TrusteeAccessToObjectA";
- case 0x0276: return "TrusteeAccessToObjectW";
- case 0x0277: return "UninstallApplication";
- case 0x0278: return "UnlockServiceDatabase";
- case 0x0279: return "UnregisterIdleTask";
- case 0x027a: return "UnregisterTraceGuids";
- case 0x027b: return "UpdateTraceA";
- case 0x027c: return "UpdateTraceW";
- case 0x027d: return "WdmWmiServiceMain";
- case 0x027e: return "WmiCloseBlock";
- case 0x027f: return "WmiCloseTraceWithCursor";
- case 0x0280: return "WmiConvertTimestamp";
- case 0x0281: return "WmiDevInstToInstanceNameA";
- case 0x0282: return "WmiDevInstToInstanceNameW";
- case 0x0283: return "WmiEnumerateGuids";
- case 0x0284: return "WmiExecuteMethodA";
- case 0x0285: return "WmiExecuteMethodW";
- case 0x0286: return "WmiFileHandleToInstanceNameA";
- case 0x0287: return "WmiFileHandleToInstanceNameW";
- case 0x0288: return "WmiFreeBuffer";
- case 0x0289: return "WmiGetFirstTraceOffset";
- case 0x028a: return "WmiGetNextEvent";
- case 0x028b: return "WmiGetTraceHeader";
- case 0x028c: return "WmiMofEnumerateResourcesA";
- case 0x028d: return "WmiMofEnumerateResourcesW";
- case 0x028e: return "WmiNotificationRegistrationA";
- case 0x028f: return "WmiNotificationRegistrationW";
- case 0x0290: return "WmiOpenBlock";
- case 0x0291: return "WmiOpenTraceWithCursor";
- case 0x0292: return "WmiParseTraceEvent";
- case 0x0293: return "WmiQueryAllDataA";
- case 0x0294: return "WmiQueryAllDataMultipleA";
- case 0x0295: return "WmiQueryAllDataMultipleW";
- case 0x0296: return "WmiQueryAllDataW";
- case 0x0297: return "WmiQueryGuidInformation";
- case 0x0298: return "WmiQuerySingleInstanceA";
- case 0x0299: return "WmiQuerySingleInstanceMultipleA";
- case 0x029a: return "WmiQuerySingleInstanceMultipleW";
- case 0x029b: return "WmiQuerySingleInstanceW";
- case 0x029c: return "WmiReceiveNotificationsA";
- case 0x029d: return "WmiReceiveNotificationsW";
- case 0x029e: return "WmiSetSingleInstanceA";
- case 0x029f: return "WmiSetSingleInstanceW";
- case 0x02a0: return "WmiSetSingleItemA";
- case 0x02a1: return "WmiSetSingleItemW";
- case 0x02a2: return "Wow64Win32ApiEntry";
- case 0x02a3: return "WriteEncryptedFileRaw";
+ switch (i) {
+ case 0x0002: return "A_SHAFinal";
+ case 0x0003: return "A_SHAInit";
+ case 0x0004: return "A_SHAUpdate";
+ case 0x0005: return "AbortSystemShutdownA";
+ case 0x0006: return "AbortSystemShutdownW";
+ case 0x0007: return "AccessCheck";
+ case 0x0008: return "AccessCheckAndAuditAlarmA";
+ case 0x0009: return "AccessCheckAndAuditAlarmW";
+ case 0x000a: return "AccessCheckByType";
+ case 0x000b: return "AccessCheckByTypeAndAuditAlarmA";
+ case 0x000c: return "AccessCheckByTypeAndAuditAlarmW";
+ case 0x000d: return "AccessCheckByTypeResultList";
+ case 0x000e: return "AccessCheckByTypeResultListAndAuditAlarmA";
+ case 0x000f: return "AccessCheckByTypeResultListAndAuditAlarmByHandleA";
+ case 0x0010: return "AccessCheckByTypeResultListAndAuditAlarmByHandleW";
+ case 0x0011: return "AccessCheckByTypeResultListAndAuditAlarmW";
+ case 0x0012: return "AddAccessAllowedAce";
+ case 0x0013: return "AddAccessAllowedAceEx";
+ case 0x0014: return "AddAccessAllowedObjectAce";
+ case 0x0015: return "AddAccessDeniedAce";
+ case 0x0016: return "AddAccessDeniedAceEx";
+ case 0x0017: return "AddAccessDeniedObjectAce";
+ case 0x0018: return "AddAce";
+ case 0x0019: return "AddAuditAccessAce";
+ case 0x001a: return "AddAuditAccessAceEx";
+ case 0x001b: return "AddAuditAccessObjectAce";
+ case 0x001c: return "AddUsersToEncryptedFile";
+ case 0x001d: return "AdjustTokenGroups";
+ case 0x001e: return "AdjustTokenPrivileges";
+ case 0x001f: return "AllocateAndInitializeSid";
+ case 0x0020: return "AllocateLocallyUniqueId";
+ case 0x0021: return "AreAllAccessesGranted";
+ case 0x0022: return "AreAnyAccessesGranted";
+ case 0x0023: return "BackupEventLogA";
+ case 0x0024: return "BackupEventLogW";
+ case 0x0025: return "BuildExplicitAccessWithNameA";
+ case 0x0026: return "BuildExplicitAccessWithNameW";
+ case 0x0027: return "BuildImpersonateExplicitAccessWithNameA";
+ case 0x0028: return "BuildImpersonateExplicitAccessWithNameW";
+ case 0x0029: return "BuildImpersonateTrusteeA";
+ case 0x002a: return "BuildImpersonateTrusteeW";
+ case 0x002b: return "BuildSecurityDescriptorA";
+ case 0x002c: return "BuildSecurityDescriptorW";
+ case 0x002d: return "BuildTrusteeWithNameA";
+ case 0x002e: return "BuildTrusteeWithNameW";
+ case 0x002f: return "BuildTrusteeWithObjectsAndNameA";
+ case 0x0030: return "BuildTrusteeWithObjectsAndNameW";
+ case 0x0031: return "BuildTrusteeWithObjectsAndSidA";
+ case 0x0032: return "BuildTrusteeWithObjectsAndSidW";
+ case 0x0033: return "BuildTrusteeWithSidA";
+ case 0x0034: return "BuildTrusteeWithSidW";
+ case 0x0035: return "CancelOverlappedAccess";
+ case 0x0036: return "ChangeServiceConfig2A";
+ case 0x0037: return "ChangeServiceConfig2W";
+ case 0x0038: return "ChangeServiceConfigA";
+ case 0x0039: return "ChangeServiceConfigW";
+ case 0x003a: return "CheckTokenMembership";
+ case 0x003b: return "ClearEventLogA";
+ case 0x003c: return "ClearEventLogW";
+ case 0x003d: return "CloseCodeAuthzLevel";
+ case 0x003e: return "CloseEncryptedFileRaw";
+ case 0x003f: return "CloseEventLog";
+ case 0x0040: return "CloseServiceHandle";
+ case 0x0041: return "CloseTrace";
+ case 0x0042: return "CommandLineFromMsiDescriptor";
+ case 0x0043: return "ComputeAccessTokenFromCodeAuthzLevel";
+ case 0x0044: return "ControlService";
+ case 0x0045: return "ControlTraceA";
+ case 0x0046: return "ControlTraceW";
+ case 0x0047: return "ConvertAccessToSecurityDescriptorA";
+ case 0x0048: return "ConvertAccessToSecurityDescriptorW";
+ case 0x0049: return "ConvertSDToStringSDRootDomainA";
+ case 0x004a: return "ConvertSDToStringSDRootDomainW";
+ case 0x004b: return "ConvertSecurityDescriptorToAccessA";
+ case 0x004c: return "ConvertSecurityDescriptorToAccessNamedA";
+ case 0x004d: return "ConvertSecurityDescriptorToAccessNamedW";
+ case 0x004e: return "ConvertSecurityDescriptorToAccessW";
+ case 0x004f: return "ConvertSecurityDescriptorToStringSecurityDescriptorA";
+ case 0x0050: return "ConvertSecurityDescriptorToStringSecurityDescriptorW";
+ case 0x0051: return "ConvertSidToStringSidA";
+ case 0x0052: return "ConvertSidToStringSidW";
+ case 0x0053: return "ConvertStringSDToSDDomainA";
+ case 0x0054: return "ConvertStringSDToSDDomainW";
+ case 0x0055: return "ConvertStringSDToSDRootDomainA";
+ case 0x0056: return "ConvertStringSDToSDRootDomainW";
+ case 0x0057: return "ConvertStringSecurityDescriptorToSecurityDescriptorA";
+ case 0x0058: return "ConvertStringSecurityDescriptorToSecurityDescriptorW";
+ case 0x0059: return "ConvertStringSidToSidA";
+ case 0x005a: return "ConvertStringSidToSidW";
+ case 0x005b: return "ConvertToAutoInheritPrivateObjectSecurity";
+ case 0x005c: return "CopySid";
+ case 0x005d: return "CreateCodeAuthzLevel";
+ case 0x005e: return "CreatePrivateObjectSecurity";
+ case 0x005f: return "CreatePrivateObjectSecurityEx";
+ case 0x0060: return "CreatePrivateObjectSecurityWithMultipleInheritance";
+ case 0x0061: return "CreateProcessAsUserA";
+ case 0x0062: return "CreateProcessAsUserSecure";
+ case 0x0063: return "CreateProcessAsUserW";
+ case 0x0064: return "CreateProcessWithLogonW";
+ case 0x0065: return "CreateRestrictedToken";
+ case 0x0066: return "CreateServiceA";
+ case 0x0067: return "CreateServiceW";
+ case 0x0068: return "CreateTraceInstanceId";
+ case 0x0069: return "CreateWellKnownSid";
+ case 0x006a: return "CredDeleteA";
+ case 0x006b: return "CredDeleteW";
+ case 0x006c: return "CredEnumerateA";
+ case 0x006d: return "CredEnumerateW";
+ case 0x006e: return "CredFree";
+ case 0x006f: return "CredGetSessionTypes";
+ case 0x0070: return "CredGetTargetInfoA";
+ case 0x0071: return "CredGetTargetInfoW";
+ case 0x0072: return "CredIsMarshaledCredentialA";
+ case 0x0073: return "CredIsMarshaledCredentialW";
+ case 0x0074: return "CredMarshalCredentialA";
+ case 0x0075: return "CredMarshalCredentialW";
+ case 0x0076: return "CredProfileLoaded";
+ case 0x0077: return "CredReadA";
+ case 0x0078: return "CredReadDomainCredentialsA";
+ case 0x0079: return "CredReadDomainCredentialsW";
+ case 0x007a: return "CredReadW";
+ case 0x007b: return "CredRenameA";
+ case 0x007c: return "CredRenameW";
+ case 0x007d: return "CredUnmarshalCredentialA";
+ case 0x007e: return "CredUnmarshalCredentialW";
+ case 0x007f: return "CredWriteA";
+ case 0x0080: return "CredWriteDomainCredentialsA";
+ case 0x0081: return "CredWriteDomainCredentialsW";
+ case 0x0082: return "CredWriteW";
+ case 0x0083: return "CredpConvertCredential";
+ case 0x0084: return "CredpConvertTargetInfo";
+ case 0x0085: return "CredpDecodeCredential";
+ case 0x0086: return "CredpEncodeCredential";
+ case 0x0087: return "CryptAcquireContextA";
+ case 0x0088: return "CryptAcquireContextW";
+ case 0x0089: return "CryptContextAddRef";
+ case 0x008a: return "CryptCreateHash";
+ case 0x008b: return "CryptDecrypt";
+ case 0x008c: return "CryptDeriveKey";
+ case 0x008d: return "CryptDestroyHash";
+ case 0x008e: return "CryptDestroyKey";
+ case 0x008f: return "CryptDuplicateHash";
+ case 0x0090: return "CryptDuplicateKey";
+ case 0x0091: return "CryptEncrypt";
+ case 0x0092: return "CryptEnumProviderTypesA";
+ case 0x0093: return "CryptEnumProviderTypesW";
+ case 0x0094: return "CryptEnumProvidersA";
+ case 0x0095: return "CryptEnumProvidersW";
+ case 0x0096: return "CryptExportKey";
+ case 0x0097: return "CryptGenKey";
+ case 0x0098: return "CryptGenRandom";
+ case 0x0099: return "CryptGetDefaultProviderA";
+ case 0x009a: return "CryptGetDefaultProviderW";
+ case 0x009b: return "CryptGetHashParam";
+ case 0x009c: return "CryptGetKeyParam";
+ case 0x009d: return "CryptGetProvParam";
+ case 0x009e: return "CryptGetUserKey";
+ case 0x009f: return "CryptHashData";
+ case 0x00a0: return "CryptHashSessionKey";
+ case 0x00a1: return "CryptImportKey";
+ case 0x00a2: return "CryptReleaseContext";
+ case 0x00a3: return "CryptSetHashParam";
+ case 0x00a4: return "CryptSetKeyParam";
+ case 0x00a5: return "CryptSetProvParam";
+ case 0x00a6: return "CryptSetProviderA";
+ case 0x00a7: return "CryptSetProviderExA";
+ case 0x00a8: return "CryptSetProviderExW";
+ case 0x00a9: return "CryptSetProviderW";
+ case 0x00aa: return "CryptSignHashA";
+ case 0x00ab: return "CryptSignHashW";
+ case 0x00ac: return "CryptVerifySignatureA";
+ case 0x00ad: return "CryptVerifySignatureW";
+ case 0x00ae: return "DecryptFileA";
+ case 0x00af: return "DecryptFileW";
+ case 0x00b0: return "DeleteAce";
+ case 0x00b1: return "DeleteService";
+ case 0x00b2: return "DeregisterEventSource";
+ case 0x00b3: return "DestroyPrivateObjectSecurity";
+ case 0x00b4: return "DuplicateEncryptionInfoFile";
+ case 0x00b5: return "DuplicateToken";
+ case 0x00b6: return "DuplicateTokenEx";
+ case 0x00b7: return "ElfBackupEventLogFileA";
+ case 0x00b8: return "ElfBackupEventLogFileW";
+ case 0x00b9: return "ElfChangeNotify";
+ case 0x00ba: return "ElfClearEventLogFileA";
+ case 0x00bb: return "ElfClearEventLogFileW";
+ case 0x00bc: return "ElfCloseEventLog";
+ case 0x00bd: return "ElfDeregisterEventSource";
+ case 0x00be: return "ElfFlushEventLog";
+ case 0x00bf: return "ElfNumberOfRecords";
+ case 0x00c0: return "ElfOldestRecord";
+ case 0x00c1: return "ElfOpenBackupEventLogA";
+ case 0x00c2: return "ElfOpenBackupEventLogW";
+ case 0x00c3: return "ElfOpenEventLogA";
+ case 0x00c4: return "ElfOpenEventLogW";
+ case 0x00c5: return "ElfReadEventLogA";
+ case 0x00c6: return "ElfReadEventLogW";
+ case 0x00c7: return "ElfRegisterEventSourceA";
+ case 0x00c8: return "ElfRegisterEventSourceW";
+ case 0x00c9: return "ElfReportEventA";
+ case 0x00ca: return "ElfReportEventW";
+ case 0x00cb: return "EnableTrace";
+ case 0x00cc: return "EncryptFileA";
+ case 0x00cd: return "EncryptFileW";
+ case 0x00ce: return "EncryptedFileKeyInfo";
+ case 0x00cf: return "EncryptionDisable";
+ case 0x00d0: return "EnumDependentServicesA";
+ case 0x00d1: return "EnumDependentServicesW";
+ case 0x00d2: return "EnumServiceGroupW";
+ case 0x00d3: return "EnumServicesStatusA";
+ case 0x00d4: return "EnumServicesStatusExA";
+ case 0x00d5: return "EnumServicesStatusExW";
+ case 0x00d6: return "EnumServicesStatusW";
+ case 0x00d7: return "EnumerateTraceGuids";
+ case 0x00d8: return "EqualDomainSid";
+ case 0x00d9: return "EqualPrefixSid";
+ case 0x00da: return "EqualSid";
+ case 0x00db: return "FileEncryptionStatusA";
+ case 0x00dc: return "FileEncryptionStatusW";
+ case 0x00dd: return "FindFirstFreeAce";
+ case 0x00de: return "FlushTraceA";
+ case 0x00df: return "FlushTraceW";
+ case 0x00e0: return "FreeEncryptedFileKeyInfo";
+ case 0x00e1: return "FreeEncryptionCertificateHashList";
+ case 0x00e2: return "FreeInheritedFromArray";
+ case 0x00e3: return "FreeSid";
+ case 0x00e4: return "GetAccessPermissionsForObjectA";
+ case 0x00e5: return "GetAccessPermissionsForObjectW";
+ case 0x00e6: return "GetAce";
+ case 0x00e7: return "GetAclInformation";
+ case 0x00e8: return "GetAuditedPermissionsFromAclA";
+ case 0x00e9: return "GetAuditedPermissionsFromAclW";
+ case 0x00ea: return "GetCurrentHwProfileA";
+ case 0x00eb: return "GetCurrentHwProfileW";
+ case 0x00ec: return "GetEffectiveRightsFromAclA";
+ case 0x00ed: return "GetEffectiveRightsFromAclW";
+ case 0x00ee: return "GetEventLogInformation";
+ case 0x00ef: return "GetExplicitEntriesFromAclA";
+ case 0x00f0: return "GetExplicitEntriesFromAclW";
+ case 0x00f1: return "GetFileSecurityA";
+ case 0x00f2: return "GetFileSecurityW";
+ case 0x00f3: return "GetInformationCodeAuthzLevelW";
+ case 0x00f4: return "GetInformationCodeAuthzPolicyW";
+ case 0x00f5: return "GetInheritanceSourceA";
+ case 0x00f6: return "GetInheritanceSourceW";
+ case 0x00f7: return "GetKernelObjectSecurity";
+ case 0x00f8: return "GetLengthSid";
+ case 0x00f9: return "GetLocalManagedApplicationData";
+ case 0x00fa: return "GetLocalManagedApplications";
+ case 0x00fb: return "GetManagedApplicationCategories";
+ case 0x00fc: return "GetManagedApplications";
+ case 0x00fd: return "GetMultipleTrusteeA";
+ case 0x00fe: return "GetMultipleTrusteeOperationA";
+ case 0x00ff: return "GetMultipleTrusteeOperationW";
+ case 0x0100: return "GetMultipleTrusteeW";
+ case 0x0101: return "GetNamedSecurityInfoA";
+ case 0x0102: return "GetNamedSecurityInfoExA";
+ case 0x0103: return "GetNamedSecurityInfoExW";
+ case 0x0104: return "GetNamedSecurityInfoW";
+ case 0x0105: return "GetNumberOfEventLogRecords";
+ case 0x0106: return "GetOldestEventLogRecord";
+ case 0x0107: return "GetOverlappedAccessResults";
+ case 0x0108: return "GetPrivateObjectSecurity";
+ case 0x0109: return "GetSecurityDescriptorControl";
+ case 0x010a: return "GetSecurityDescriptorDacl";
+ case 0x010b: return "GetSecurityDescriptorGroup";
+ case 0x010c: return "GetSecurityDescriptorLength";
+ case 0x010d: return "GetSecurityDescriptorOwner";
+ case 0x010e: return "GetSecurityDescriptorRMControl";
+ case 0x010f: return "GetSecurityDescriptorSacl";
+ case 0x0110: return "GetSecurityInfo";
+ case 0x0111: return "GetSecurityInfoExA";
+ case 0x0112: return "GetSecurityInfoExW";
+ case 0x0113: return "GetServiceDisplayNameA";
+ case 0x0114: return "GetServiceDisplayNameW";
+ case 0x0115: return "GetServiceKeyNameA";
+ case 0x0116: return "GetServiceKeyNameW";
+ case 0x0117: return "GetSidIdentifierAuthority";
+ case 0x0118: return "GetSidLengthRequired";
+ case 0x0119: return "GetSidSubAuthority";
+ case 0x011a: return "GetSidSubAuthorityCount";
+ case 0x011b: return "GetTokenInformation";
+ case 0x011c: return "GetTraceEnableFlags";
+ case 0x011d: return "GetTraceEnableLevel";
+ case 0x011e: return "GetTraceLoggerHandle";
+ case 0x011f: return "GetTrusteeFormA";
+ case 0x0120: return "GetTrusteeFormW";
+ case 0x0121: return "GetTrusteeNameA";
+ case 0x0122: return "GetTrusteeNameW";
+ case 0x0123: return "GetTrusteeTypeA";
+ case 0x0124: return "GetTrusteeTypeW";
+ case 0x0125: return "GetUserNameA";
+ case 0x0126: return "GetUserNameW";
+ case 0x0127: return "GetWindowsAccountDomainSid";
+ case 0x0001: return "I_ScGetCurrentGroupStateW";
+ case 0x0128: return "I_ScIsSecurityProcess";
+ case 0x0129: return "I_ScPnPGetServiceName";
+ case 0x012a: return "I_ScSendTSMessage";
+ case 0x012b: return "I_ScSetServiceBitsA";
+ case 0x012c: return "I_ScSetServiceBitsW";
+ case 0x012d: return "IdentifyCodeAuthzLevelW";
+ case 0x012e: return "ImpersonateAnonymousToken";
+ case 0x012f: return "ImpersonateLoggedOnUser";
+ case 0x0130: return "ImpersonateNamedPipeClient";
+ case 0x0131: return "ImpersonateSelf";
+ case 0x0132: return "InitializeAcl";
+ case 0x0133: return "InitializeSecurityDescriptor";
+ case 0x0134: return "InitializeSid";
+ case 0x0135: return "InitiateSystemShutdownA";
+ case 0x0136: return "InitiateSystemShutdownExA";
+ case 0x0137: return "InitiateSystemShutdownExW";
+ case 0x0138: return "InitiateSystemShutdownW";
+ case 0x0139: return "InstallApplication";
+ case 0x013a: return "IsTextUnicode";
+ case 0x013b: return "IsTokenRestricted";
+ case 0x013c: return "IsTokenUntrusted";
+ case 0x013d: return "IsValidAcl";
+ case 0x013e: return "IsValidSecurityDescriptor";
+ case 0x013f: return "IsValidSid";
+ case 0x0140: return "IsWellKnownSid";
+ case 0x0141: return "LockServiceDatabase";
+ case 0x0142: return "LogonUserA";
+ case 0x0143: return "LogonUserExA";
+ case 0x0144: return "LogonUserExW";
+ case 0x0145: return "LogonUserW";
+ case 0x0146: return "LookupAccountNameA";
+ case 0x0147: return "LookupAccountNameW";
+ case 0x0148: return "LookupAccountSidA";
+ case 0x0149: return "LookupAccountSidW";
+ case 0x014a: return "LookupPrivilegeDisplayNameA";
+ case 0x014b: return "LookupPrivilegeDisplayNameW";
+ case 0x014c: return "LookupPrivilegeNameA";
+ case 0x014d: return "LookupPrivilegeNameW";
+ case 0x014e: return "LookupPrivilegeValueA";
+ case 0x014f: return "LookupPrivilegeValueW";
+ case 0x0150: return "LookupSecurityDescriptorPartsA";
+ case 0x0151: return "LookupSecurityDescriptorPartsW";
+ case 0x0152: return "LsaAddAccountRights";
+ case 0x0153: return "LsaAddPrivilegesToAccount";
+ case 0x0154: return "LsaClearAuditLog";
+ case 0x0155: return "LsaClose";
+ case 0x0156: return "LsaCreateAccount";
+ case 0x0157: return "LsaCreateSecret";
+ case 0x0158: return "LsaCreateTrustedDomain";
+ case 0x0159: return "LsaCreateTrustedDomainEx";
+ case 0x015a: return "LsaDelete";
+ case 0x015b: return "LsaDeleteTrustedDomain";
+ case 0x015c: return "LsaEnumerateAccountRights";
+ case 0x015d: return "LsaEnumerateAccounts";
+ case 0x015e: return "LsaEnumerateAccountsWithUserRight";
+ case 0x015f: return "LsaEnumeratePrivileges";
+ case 0x0160: return "LsaEnumeratePrivilegesOfAccount";
+ case 0x0161: return "LsaEnumerateTrustedDomains";
+ case 0x0162: return "LsaEnumerateTrustedDomainsEx";
+ case 0x0163: return "LsaFreeMemory";
+ case 0x0164: return "LsaGetQuotasForAccount";
+ case 0x0165: return "LsaGetRemoteUserName";
+ case 0x0166: return "LsaGetSystemAccessAccount";
+ case 0x0167: return "LsaGetUserName";
+ case 0x0168: return "LsaICLookupNames";
+ case 0x0169: return "LsaICLookupNamesWithCreds";
+ case 0x016a: return "LsaICLookupSids";
+ case 0x016b: return "LsaICLookupSidsWithCreds";
+ case 0x016d: return "LsaLookupNames";
+ case 0x016c: return "LsaLookupNames2";
+ case 0x016e: return "LsaLookupPrivilegeDisplayName";
+ case 0x016f: return "LsaLookupPrivilegeName";
+ case 0x0170: return "LsaLookupPrivilegeValue";
+ case 0x0171: return "LsaLookupSids";
+ case 0x0172: return "LsaNtStatusToWinError";
+ case 0x0173: return "LsaOpenAccount";
+ case 0x0174: return "LsaOpenPolicy";
+ case 0x0175: return "LsaOpenPolicySce";
+ case 0x0176: return "LsaOpenSecret";
+ case 0x0177: return "LsaOpenTrustedDomain";
+ case 0x0178: return "LsaOpenTrustedDomainByName";
+ case 0x0179: return "LsaQueryDomainInformationPolicy";
+ case 0x017a: return "LsaQueryForestTrustInformation";
+ case 0x017b: return "LsaQueryInfoTrustedDomain";
+ case 0x017c: return "LsaQueryInformationPolicy";
+ case 0x017d: return "LsaQuerySecret";
+ case 0x017e: return "LsaQuerySecurityObject";
+ case 0x017f: return "LsaQueryTrustedDomainInfo";
+ case 0x0180: return "LsaQueryTrustedDomainInfoByName";
+ case 0x0181: return "LsaRemoveAccountRights";
+ case 0x0182: return "LsaRemovePrivilegesFromAccount";
+ case 0x0183: return "LsaRetrievePrivateData";
+ case 0x0184: return "LsaSetDomainInformationPolicy";
+ case 0x0185: return "LsaSetForestTrustInformation";
+ case 0x0186: return "LsaSetInformationPolicy";
+ case 0x0187: return "LsaSetInformationTrustedDomain";
+ case 0x0188: return "LsaSetQuotasForAccount";
+ case 0x0189: return "LsaSetSecret";
+ case 0x018a: return "LsaSetSecurityObject";
+ case 0x018b: return "LsaSetSystemAccessAccount";
+ case 0x018c: return "LsaSetTrustedDomainInfoByName";
+ case 0x018d: return "LsaSetTrustedDomainInformation";
+ case 0x018e: return "LsaStorePrivateData";
+ case 0x018f: return "MD4Final";
+ case 0x0190: return "MD4Init";
+ case 0x0191: return "MD4Update";
+ case 0x0192: return "MD5Final";
+ case 0x0193: return "MD5Init";
+ case 0x0194: return "MD5Update";
+ case 0x0196: return "MSChapSrvChangePassword";
+ case 0x0195: return "MSChapSrvChangePassword2";
+ case 0x0198: return "MakeAbsoluteSD";
+ case 0x0197: return "MakeAbsoluteSD2";
+ case 0x0199: return "MakeSelfRelativeSD";
+ case 0x019a: return "MapGenericMask";
+ case 0x019b: return "NotifyBootConfigStatus";
+ case 0x019c: return "NotifyChangeEventLog";
+ case 0x019d: return "ObjectCloseAuditAlarmA";
+ case 0x019e: return "ObjectCloseAuditAlarmW";
+ case 0x019f: return "ObjectDeleteAuditAlarmA";
+ case 0x01a0: return "ObjectDeleteAuditAlarmW";
+ case 0x01a1: return "ObjectOpenAuditAlarmA";
+ case 0x01a2: return "ObjectOpenAuditAlarmW";
+ case 0x01a3: return "ObjectPrivilegeAuditAlarmA";
+ case 0x01a4: return "ObjectPrivilegeAuditAlarmW";
+ case 0x01a5: return "OpenBackupEventLogA";
+ case 0x01a6: return "OpenBackupEventLogW";
+ case 0x01a7: return "OpenEncryptedFileRawA";
+ case 0x01a8: return "OpenEncryptedFileRawW";
+ case 0x01a9: return "OpenEventLogA";
+ case 0x01aa: return "OpenEventLogW";
+ case 0x01ab: return "OpenProcessToken";
+ case 0x01ac: return "OpenSCManagerA";
+ case 0x01ad: return "OpenSCManagerW";
+ case 0x01ae: return "OpenServiceA";
+ case 0x01af: return "OpenServiceW";
+ case 0x01b0: return "OpenThreadToken";
+ case 0x01b1: return "OpenTraceA";
+ case 0x01b2: return "OpenTraceW";
+ case 0x01b3: return "PrivilegeCheck";
+ case 0x01b4: return "PrivilegedServiceAuditAlarmA";
+ case 0x01b5: return "PrivilegedServiceAuditAlarmW";
+ case 0x01b6: return "ProcessIdleTasks";
+ case 0x01b7: return "ProcessTrace";
+ case 0x01b8: return "QueryAllTracesA";
+ case 0x01b9: return "QueryAllTracesW";
+ case 0x01ba: return "QueryRecoveryAgentsOnEncryptedFile";
+ case 0x01bb: return "QueryServiceConfig2A";
+ case 0x01bc: return "QueryServiceConfig2W";
+ case 0x01bd: return "QueryServiceConfigA";
+ case 0x01be: return "QueryServiceConfigW";
+ case 0x01bf: return "QueryServiceLockStatusA";
+ case 0x01c0: return "QueryServiceLockStatusW";
+ case 0x01c1: return "QueryServiceObjectSecurity";
+ case 0x01c2: return "QueryServiceStatus";
+ case 0x01c3: return "QueryServiceStatusEx";
+ case 0x01c4: return "QueryTraceA";
+ case 0x01c5: return "QueryTraceW";
+ case 0x01c6: return "QueryUsersOnEncryptedFile";
+ case 0x01c7: return "QueryWindows31FilesMigration";
+ case 0x01c8: return "ReadEncryptedFileRaw";
+ case 0x01c9: return "ReadEventLogA";
+ case 0x01ca: return "ReadEventLogW";
+ case 0x01cb: return "RegCloseKey";
+ case 0x01cc: return "RegConnectRegistryA";
+ case 0x01cd: return "RegConnectRegistryW";
+ case 0x01ce: return "RegCreateKeyA";
+ case 0x01cf: return "RegCreateKeyExA";
+ case 0x01d0: return "RegCreateKeyExW";
+ case 0x01d1: return "RegCreateKeyW";
+ case 0x01d2: return "RegDeleteKeyA";
+ case 0x01d3: return "RegDeleteKeyW";
+ case 0x01d4: return "RegDeleteValueA";
+ case 0x01d5: return "RegDeleteValueW";
+ case 0x01d6: return "RegDisablePredefinedCache";
+ case 0x01d7: return "RegEnumKeyA";
+ case 0x01d8: return "RegEnumKeyExA";
+ case 0x01d9: return "RegEnumKeyExW";
+ case 0x01da: return "RegEnumKeyW";
+ case 0x01db: return "RegEnumValueA";
+ case 0x01dc: return "RegEnumValueW";
+ case 0x01dd: return "RegFlushKey";
+ case 0x01de: return "RegGetKeySecurity";
+ case 0x01df: return "RegLoadKeyA";
+ case 0x01e0: return "RegLoadKeyW";
+ case 0x01e1: return "RegNotifyChangeKeyValue";
+ case 0x01e2: return "RegOpenCurrentUser";
+ case 0x01e3: return "RegOpenKeyA";
+ case 0x01e4: return "RegOpenKeyExA";
+ case 0x01e5: return "RegOpenKeyExW";
+ case 0x01e6: return "RegOpenKeyW";
+ case 0x01e7: return "RegOpenUserClassesRoot";
+ case 0x01e8: return "RegOverridePredefKey";
+ case 0x01e9: return "RegQueryInfoKeyA";
+ case 0x01ea: return "RegQueryInfoKeyW";
+ case 0x01eb: return "RegQueryMultipleValuesA";
+ case 0x01ec: return "RegQueryMultipleValuesW";
+ case 0x01ed: return "RegQueryValueA";
+ case 0x01ee: return "RegQueryValueExA";
+ case 0x01ef: return "RegQueryValueExW";
+ case 0x01f0: return "RegQueryValueW";
+ case 0x01f1: return "RegReplaceKeyA";
+ case 0x01f2: return "RegReplaceKeyW";
+ case 0x01f3: return "RegRestoreKeyA";
+ case 0x01f4: return "RegRestoreKeyW";
+ case 0x01f5: return "RegSaveKeyA";
+ case 0x01f6: return "RegSaveKeyExA";
+ case 0x01f7: return "RegSaveKeyExW";
+ case 0x01f8: return "RegSaveKeyW";
+ case 0x01f9: return "RegSetKeySecurity";
+ case 0x01fa: return "RegSetValueA";
+ case 0x01fb: return "RegSetValueExA";
+ case 0x01fc: return "RegSetValueExW";
+ case 0x01fd: return "RegSetValueW";
+ case 0x01fe: return "RegUnLoadKeyA";
+ case 0x01ff: return "RegUnLoadKeyW";
+ case 0x0200: return "RegisterEventSourceA";
+ case 0x0201: return "RegisterEventSourceW";
+ case 0x0202: return "RegisterIdleTask";
+ case 0x0203: return "RegisterServiceCtrlHandlerA";
+ case 0x0204: return "RegisterServiceCtrlHandlerExA";
+ case 0x0205: return "RegisterServiceCtrlHandlerExW";
+ case 0x0206: return "RegisterServiceCtrlHandlerW";
+ case 0x0207: return "RegisterTraceGuidsA";
+ case 0x0208: return "RegisterTraceGuidsW";
+ case 0x0209: return "RemoveTraceCallback";
+ case 0x020a: return "RemoveUsersFromEncryptedFile";
+ case 0x020b: return "ReportEventA";
+ case 0x020c: return "ReportEventW";
+ case 0x020d: return "RevertToSelf";
+ case 0x020e: return "SaferCloseLevel";
+ case 0x020f: return "SaferComputeTokenFromLevel";
+ case 0x0210: return "SaferCreateLevel";
+ case 0x0211: return "SaferGetLevelInformation";
+ case 0x0212: return "SaferGetPolicyInformation";
+ case 0x0213: return "SaferIdentifyLevel";
+ case 0x0214: return "SaferRecordEventLogEntry";
+ case 0x0215: return "SaferSetLevelInformation";
+ case 0x0216: return "SaferSetPolicyInformation";
+ case 0x0217: return "SaferiChangeRegistryScope";
+ case 0x0218: return "SaferiCompareTokenLevels";
+ case 0x0219: return "SaferiIsExecutableFileType";
+ case 0x021a: return "SaferiPopulateDefaultsInRegistry";
+ case 0x021b: return "SaferiRecordEventLogEntry";
+ case 0x021c: return "SaferiReplaceProcessThreadTokens";
+ case 0x021d: return "SaferiSearchMatchingHashRules";
+ case 0x021e: return "SetAclInformation";
+ case 0x021f: return "SetEntriesInAccessListA";
+ case 0x0220: return "SetEntriesInAccessListW";
+ case 0x0221: return "SetEntriesInAclA";
+ case 0x0222: return "SetEntriesInAclW";
+ case 0x0223: return "SetEntriesInAuditListA";
+ case 0x0224: return "SetEntriesInAuditListW";
+ case 0x0225: return "SetFileSecurityA";
+ case 0x0226: return "SetFileSecurityW";
+ case 0x0227: return "SetInformationCodeAuthzLevelW";
+ case 0x0228: return "SetInformationCodeAuthzPolicyW";
+ case 0x0229: return "SetKernelObjectSecurity";
+ case 0x022a: return "SetNamedSecurityInfoA";
+ case 0x022b: return "SetNamedSecurityInfoExA";
+ case 0x022c: return "SetNamedSecurityInfoExW";
+ case 0x022d: return "SetNamedSecurityInfoW";
+ case 0x022e: return "SetPrivateObjectSecurity";
+ case 0x022f: return "SetPrivateObjectSecurityEx";
+ case 0x0230: return "SetSecurityDescriptorControl";
+ case 0x0231: return "SetSecurityDescriptorDacl";
+ case 0x0232: return "SetSecurityDescriptorGroup";
+ case 0x0233: return "SetSecurityDescriptorOwner";
+ case 0x0234: return "SetSecurityDescriptorRMControl";
+ case 0x0235: return "SetSecurityDescriptorSacl";
+ case 0x0236: return "SetSecurityInfo";
+ case 0x0237: return "SetSecurityInfoExA";
+ case 0x0238: return "SetSecurityInfoExW";
+ case 0x0239: return "SetServiceBits";
+ case 0x023a: return "SetServiceObjectSecurity";
+ case 0x023b: return "SetServiceStatus";
+ case 0x023c: return "SetThreadToken";
+ case 0x023d: return "SetTokenInformation";
+ case 0x023e: return "SetTraceCallback";
+ case 0x023f: return "SetUserFileEncryptionKey";
+ case 0x0240: return "StartServiceA";
+ case 0x0241: return "StartServiceCtrlDispatcherA";
+ case 0x0242: return "StartServiceCtrlDispatcherW";
+ case 0x0243: return "StartServiceW";
+ case 0x0244: return "StartTraceA";
+ case 0x0245: return "StartTraceW";
+ case 0x0246: return "StopTraceA";
+ case 0x0247: return "StopTraceW";
+ case 0x0248: return "SynchronizeWindows31FilesAndWindowsNTRegistry";
+ case 0x0249: return "SystemFunction001";
+ case 0x024a: return "SystemFunction002";
+ case 0x024b: return "SystemFunction003";
+ case 0x024c: return "SystemFunction004";
+ case 0x024d: return "SystemFunction005";
+ case 0x024e: return "SystemFunction006";
+ case 0x024f: return "SystemFunction007";
+ case 0x0250: return "SystemFunction008";
+ case 0x0251: return "SystemFunction009";
+ case 0x0252: return "SystemFunction010";
+ case 0x0253: return "SystemFunction011";
+ case 0x0254: return "SystemFunction012";
+ case 0x0255: return "SystemFunction013";
+ case 0x0256: return "SystemFunction014";
+ case 0x0257: return "SystemFunction015";
+ case 0x0258: return "SystemFunction016";
+ case 0x0259: return "SystemFunction017";
+ case 0x025a: return "SystemFunction018";
+ case 0x025b: return "SystemFunction019";
+ case 0x025c: return "SystemFunction020";
+ case 0x025d: return "SystemFunction021";
+ case 0x025e: return "SystemFunction022";
+ case 0x025f: return "SystemFunction023";
+ case 0x0260: return "SystemFunction024";
+ case 0x0261: return "SystemFunction025";
+ case 0x0262: return "SystemFunction026";
+ case 0x0263: return "SystemFunction027";
+ case 0x0264: return "SystemFunction028";
+ case 0x0265: return "SystemFunction029";
+ case 0x0266: return "SystemFunction030";
+ case 0x0267: return "SystemFunction031";
+ case 0x0268: return "SystemFunction032";
+ case 0x0269: return "SystemFunction033";
+ case 0x026a: return "SystemFunction034";
+ case 0x026b: return "SystemFunction035";
+ case 0x026c: return "SystemFunction036";
+ case 0x026d: return "SystemFunction040";
+ case 0x026e: return "SystemFunction041";
+ case 0x026f: return "TraceEvent";
+ case 0x0270: return "TraceEventInstance";
+ case 0x0271: return "TraceMessage";
+ case 0x0272: return "TraceMessageVa";
+ case 0x0273: return "TreeResetNamedSecurityInfoA";
+ case 0x0274: return "TreeResetNamedSecurityInfoW";
+ case 0x0275: return "TrusteeAccessToObjectA";
+ case 0x0276: return "TrusteeAccessToObjectW";
+ case 0x0277: return "UninstallApplication";
+ case 0x0278: return "UnlockServiceDatabase";
+ case 0x0279: return "UnregisterIdleTask";
+ case 0x027a: return "UnregisterTraceGuids";
+ case 0x027b: return "UpdateTraceA";
+ case 0x027c: return "UpdateTraceW";
+ case 0x027d: return "WdmWmiServiceMain";
+ case 0x027e: return "WmiCloseBlock";
+ case 0x027f: return "WmiCloseTraceWithCursor";
+ case 0x0280: return "WmiConvertTimestamp";
+ case 0x0281: return "WmiDevInstToInstanceNameA";
+ case 0x0282: return "WmiDevInstToInstanceNameW";
+ case 0x0283: return "WmiEnumerateGuids";
+ case 0x0284: return "WmiExecuteMethodA";
+ case 0x0285: return "WmiExecuteMethodW";
+ case 0x0286: return "WmiFileHandleToInstanceNameA";
+ case 0x0287: return "WmiFileHandleToInstanceNameW";
+ case 0x0288: return "WmiFreeBuffer";
+ case 0x0289: return "WmiGetFirstTraceOffset";
+ case 0x028a: return "WmiGetNextEvent";
+ case 0x028b: return "WmiGetTraceHeader";
+ case 0x028c: return "WmiMofEnumerateResourcesA";
+ case 0x028d: return "WmiMofEnumerateResourcesW";
+ case 0x028e: return "WmiNotificationRegistrationA";
+ case 0x028f: return "WmiNotificationRegistrationW";
+ case 0x0290: return "WmiOpenBlock";
+ case 0x0291: return "WmiOpenTraceWithCursor";
+ case 0x0292: return "WmiParseTraceEvent";
+ case 0x0293: return "WmiQueryAllDataA";
+ case 0x0294: return "WmiQueryAllDataMultipleA";
+ case 0x0295: return "WmiQueryAllDataMultipleW";
+ case 0x0296: return "WmiQueryAllDataW";
+ case 0x0297: return "WmiQueryGuidInformation";
+ case 0x0298: return "WmiQuerySingleInstanceA";
+ case 0x0299: return "WmiQuerySingleInstanceMultipleA";
+ case 0x029a: return "WmiQuerySingleInstanceMultipleW";
+ case 0x029b: return "WmiQuerySingleInstanceW";
+ case 0x029c: return "WmiReceiveNotificationsA";
+ case 0x029d: return "WmiReceiveNotificationsW";
+ case 0x029e: return "WmiSetSingleInstanceA";
+ case 0x029f: return "WmiSetSingleInstanceW";
+ case 0x02a0: return "WmiSetSingleItemA";
+ case 0x02a1: return "WmiSetSingleItemW";
+ case 0x02a2: return "Wow64Win32ApiEntry";
+ case 0x02a3: return "WriteEncryptedFileRaw";
}
return nullptr;
}
-}
}
-#endif
+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/comctl32_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/comctl32_dll_lookup.hpp
index 27d7c4840f9..765251ba4ac 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/comctl32_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/comctl32_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,166 +17,165 @@
#define LIEF_PE_COMCTL32_DLL_LOOKUP_H
#include <cstdint>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
inline const char* comctl32_dll_lookup(uint32_t i) {
- switch(i) {
- case 0x0191: return "AddMRUStringW";
- case 0x00cf: return "AttachScrollBars";
- case 0x00d2: return "CCEnableScrollBar";
- case 0x00d1: return "CCGetScrollInfo";
- case 0x00d0: return "CCSetScrollInfo";
- case 0x0190: return "CreateMRUListW";
- case 0x0008: return "CreateMappedBitmap";
- case 0x000c: return "CreatePropertySheetPage";
- case 0x0013: return "CreatePropertySheetPageA";
- case 0x0014: return "CreatePropertySheetPageW";
- case 0x0015: return "CreateStatusWindow";
- case 0x0006: return "CreateStatusWindowA";
- case 0x0016: return "CreateStatusWindowW";
- case 0x0007: return "CreateToolbar";
- case 0x0017: return "CreateToolbarEx";
- case 0x0010: return "CreateUpDownControl";
- case 0x014b: return "DPA_Clone";
- case 0x0148: return "DPA_Create";
- case 0x0154: return "DPA_CreateEx";
- case 0x0151: return "DPA_DeleteAllPtrs";
- case 0x0150: return "DPA_DeletePtr";
- case 0x0149: return "DPA_Destroy";
- case 0x0182: return "DPA_DestroyCallback";
- case 0x0181: return "DPA_EnumCallback";
- case 0x014c: return "DPA_GetPtr";
- case 0x014d: return "DPA_GetPtrIndex";
- case 0x015b: return "DPA_GetSize";
- case 0x014a: return "DPA_Grow";
- case 0x014e: return "DPA_InsertPtr";
- case 0x0009: return "DPA_LoadStream";
- case 0x000b: return "DPA_Merge";
- case 0x000a: return "DPA_SaveStream";
- case 0x0153: return "DPA_Search";
- case 0x014f: return "DPA_SetPtr";
- case 0x0152: return "DPA_Sort";
- case 0x0157: return "DSA_Clone";
- case 0x0140: return "DSA_Create";
- case 0x0147: return "DSA_DeleteAllItems";
- case 0x0146: return "DSA_DeleteItem";
- case 0x0141: return "DSA_Destroy";
- case 0x0184: return "DSA_DestroyCallback";
- case 0x0183: return "DSA_EnumCallback";
- case 0x0142: return "DSA_GetItem";
- case 0x0143: return "DSA_GetItemPtr";
- case 0x015c: return "DSA_GetSize";
- case 0x0144: return "DSA_InsertItem";
- case 0x0145: return "DSA_SetItem";
- case 0x015a: return "DSA_Sort";
- case 0x019d: return "DefSubclassProc";
- case 0x0018: return "DestroyPropertySheetPage";
- case 0x00ce: return "DetachScrollBars";
- case 0x0019: return "DllGetVersion";
- case 0x001a: return "DllInstall";
- case 0x000f: return "DrawInsert";
- case 0x00c9: return "DrawScrollBar";
- case 0x001b: return "DrawShadowText";
- case 0x00c8: return "DrawSizeBox";
- case 0x001c: return "DrawStatusText";
- case 0x0005: return "DrawStatusTextA";
- case 0x001d: return "DrawStatusTextW";
- case 0x0193: return "EnumMRUListW";
- case 0x001e: return "FlatSB_EnableScrollBar";
- case 0x001f: return "FlatSB_GetScrollInfo";
- case 0x0020: return "FlatSB_GetScrollPos";
- case 0x0021: return "FlatSB_GetScrollProp";
- case 0x0022: return "FlatSB_GetScrollPropPtr";
- case 0x0023: return "FlatSB_GetScrollRange";
- case 0x0024: return "FlatSB_SetScrollInfo";
- case 0x0025: return "FlatSB_SetScrollPos";
- case 0x0026: return "FlatSB_SetScrollProp";
- case 0x0027: return "FlatSB_SetScrollRange";
- case 0x0028: return "FlatSB_ShowScrollBar";
- case 0x0098: return "FreeMRUList";
- case 0x0004: return "GetEffectiveClientRect";
- case 0x0029: return "GetMUILanguage";
- case 0x019b: return "GetWindowSubclass";
- case 0x002a: return "HIMAGELIST_QueryInterface";
- case 0x00cd: return "HandleScrollCmd";
- case 0x002b: return "ImageList_Add";
- case 0x002c: return "ImageList_AddIcon";
- case 0x002d: return "ImageList_AddMasked";
- case 0x002e: return "ImageList_BeginDrag";
- case 0x002f: return "ImageList_CoCreateInstance";
- case 0x0030: return "ImageList_Copy";
- case 0x0031: return "ImageList_Create";
- case 0x0032: return "ImageList_Destroy";
- case 0x0033: return "ImageList_DestroyShared";
- case 0x0034: return "ImageList_DragEnter";
- case 0x0035: return "ImageList_DragLeave";
- case 0x0036: return "ImageList_DragMove";
- case 0x0037: return "ImageList_DragShowNolock";
- case 0x0038: return "ImageList_Draw";
- case 0x0039: return "ImageList_DrawEx";
- case 0x003a: return "ImageList_DrawIndirect";
- case 0x003b: return "ImageList_Duplicate";
- case 0x003c: return "ImageList_EndDrag";
- case 0x003d: return "ImageList_GetBkColor";
- case 0x003e: return "ImageList_GetDragImage";
- case 0x003f: return "ImageList_GetFlags";
- case 0x0040: return "ImageList_GetIcon";
- case 0x0041: return "ImageList_GetIconSize";
- case 0x0042: return "ImageList_GetImageCount";
- case 0x0043: return "ImageList_GetImageInfo";
- case 0x0044: return "ImageList_GetImageRect";
- case 0x0045: return "ImageList_LoadImage";
- case 0x0046: return "ImageList_LoadImageA";
- case 0x004b: return "ImageList_LoadImageW";
- case 0x004c: return "ImageList_Merge";
- case 0x004d: return "ImageList_Read";
- case 0x004e: return "ImageList_ReadEx";
- case 0x004f: return "ImageList_Remove";
- case 0x0050: return "ImageList_Replace";
- case 0x0051: return "ImageList_ReplaceIcon";
- case 0x0052: return "ImageList_Resize";
- case 0x0053: return "ImageList_SetBkColor";
- case 0x0054: return "ImageList_SetDragCursorImage";
- case 0x0055: return "ImageList_SetFilter";
- case 0x0056: return "ImageList_SetFlags";
- case 0x0057: return "ImageList_SetIconSize";
- case 0x0058: return "ImageList_SetImageCount";
- case 0x0059: return "ImageList_SetOverlayImage";
- case 0x005a: return "ImageList_Write";
- case 0x005b: return "ImageList_WriteEx";
- case 0x0011: return "InitCommonControls";
- case 0x005c: return "InitCommonControlsEx";
- case 0x005d: return "InitMUILanguage";
- case 0x005e: return "InitializeFlatSB";
- case 0x000e: return "LBItemFromPt";
- case 0x017c: return "LoadIconMetric";
- case 0x017d: return "LoadIconWithScaleDown";
- case 0x000d: return "MakeDragList";
- case 0x0002: return "MenuHelp";
- case 0x005f: return "PropertySheet";
- case 0x0060: return "PropertySheetA";
- case 0x0061: return "PropertySheetW";
- case 0x018a: return "QuerySystemGestureStatus";
- case 0x0062: return "RegisterClassNameW";
- case 0x019c: return "RemoveWindowSubclass";
- case 0x00cc: return "ScrollBar_Menu";
- case 0x00cb: return "ScrollBar_MouseMove";
- case 0x019a: return "SetWindowSubclass";
- case 0x0003: return "ShowHideMenuCtl";
- case 0x00ca: return "SizeBoxHwnd";
- case 0x00ec: return "Str_SetPtrW";
- case 0x0158: return "TaskDialog";
- case 0x0159: return "TaskDialogIndirect";
- case 0x0063: return "UninitializeFlatSB";
- case 0x0064: return "_TrackMouseEvent";
+ switch (i) {
+ case 0x0191: return "AddMRUStringW";
+ case 0x00cf: return "AttachScrollBars";
+ case 0x00d2: return "CCEnableScrollBar";
+ case 0x00d1: return "CCGetScrollInfo";
+ case 0x00d0: return "CCSetScrollInfo";
+ case 0x0190: return "CreateMRUListW";
+ case 0x0008: return "CreateMappedBitmap";
+ case 0x000c: return "CreatePropertySheetPage";
+ case 0x0013: return "CreatePropertySheetPageA";
+ case 0x0014: return "CreatePropertySheetPageW";
+ case 0x0015: return "CreateStatusWindow";
+ case 0x0006: return "CreateStatusWindowA";
+ case 0x0016: return "CreateStatusWindowW";
+ case 0x0007: return "CreateToolbar";
+ case 0x0017: return "CreateToolbarEx";
+ case 0x0010: return "CreateUpDownControl";
+ case 0x014b: return "DPA_Clone";
+ case 0x0148: return "DPA_Create";
+ case 0x0154: return "DPA_CreateEx";
+ case 0x0151: return "DPA_DeleteAllPtrs";
+ case 0x0150: return "DPA_DeletePtr";
+ case 0x0149: return "DPA_Destroy";
+ case 0x0182: return "DPA_DestroyCallback";
+ case 0x0181: return "DPA_EnumCallback";
+ case 0x014c: return "DPA_GetPtr";
+ case 0x014d: return "DPA_GetPtrIndex";
+ case 0x015b: return "DPA_GetSize";
+ case 0x014a: return "DPA_Grow";
+ case 0x014e: return "DPA_InsertPtr";
+ case 0x0009: return "DPA_LoadStream";
+ case 0x000b: return "DPA_Merge";
+ case 0x000a: return "DPA_SaveStream";
+ case 0x0153: return "DPA_Search";
+ case 0x014f: return "DPA_SetPtr";
+ case 0x0152: return "DPA_Sort";
+ case 0x0157: return "DSA_Clone";
+ case 0x0140: return "DSA_Create";
+ case 0x0147: return "DSA_DeleteAllItems";
+ case 0x0146: return "DSA_DeleteItem";
+ case 0x0141: return "DSA_Destroy";
+ case 0x0184: return "DSA_DestroyCallback";
+ case 0x0183: return "DSA_EnumCallback";
+ case 0x0142: return "DSA_GetItem";
+ case 0x0143: return "DSA_GetItemPtr";
+ case 0x015c: return "DSA_GetSize";
+ case 0x0144: return "DSA_InsertItem";
+ case 0x0145: return "DSA_SetItem";
+ case 0x015a: return "DSA_Sort";
+ case 0x019d: return "DefSubclassProc";
+ case 0x0018: return "DestroyPropertySheetPage";
+ case 0x00ce: return "DetachScrollBars";
+ case 0x0019: return "DllGetVersion";
+ case 0x001a: return "DllInstall";
+ case 0x000f: return "DrawInsert";
+ case 0x00c9: return "DrawScrollBar";
+ case 0x001b: return "DrawShadowText";
+ case 0x00c8: return "DrawSizeBox";
+ case 0x001c: return "DrawStatusText";
+ case 0x0005: return "DrawStatusTextA";
+ case 0x001d: return "DrawStatusTextW";
+ case 0x0193: return "EnumMRUListW";
+ case 0x001e: return "FlatSB_EnableScrollBar";
+ case 0x001f: return "FlatSB_GetScrollInfo";
+ case 0x0020: return "FlatSB_GetScrollPos";
+ case 0x0021: return "FlatSB_GetScrollProp";
+ case 0x0022: return "FlatSB_GetScrollPropPtr";
+ case 0x0023: return "FlatSB_GetScrollRange";
+ case 0x0024: return "FlatSB_SetScrollInfo";
+ case 0x0025: return "FlatSB_SetScrollPos";
+ case 0x0026: return "FlatSB_SetScrollProp";
+ case 0x0027: return "FlatSB_SetScrollRange";
+ case 0x0028: return "FlatSB_ShowScrollBar";
+ case 0x0098: return "FreeMRUList";
+ case 0x0004: return "GetEffectiveClientRect";
+ case 0x0029: return "GetMUILanguage";
+ case 0x019b: return "GetWindowSubclass";
+ case 0x002a: return "HIMAGELIST_QueryInterface";
+ case 0x00cd: return "HandleScrollCmd";
+ case 0x002b: return "ImageList_Add";
+ case 0x002c: return "ImageList_AddIcon";
+ case 0x002d: return "ImageList_AddMasked";
+ case 0x002e: return "ImageList_BeginDrag";
+ case 0x002f: return "ImageList_CoCreateInstance";
+ case 0x0030: return "ImageList_Copy";
+ case 0x0031: return "ImageList_Create";
+ case 0x0032: return "ImageList_Destroy";
+ case 0x0033: return "ImageList_DestroyShared";
+ case 0x0034: return "ImageList_DragEnter";
+ case 0x0035: return "ImageList_DragLeave";
+ case 0x0036: return "ImageList_DragMove";
+ case 0x0037: return "ImageList_DragShowNolock";
+ case 0x0038: return "ImageList_Draw";
+ case 0x0039: return "ImageList_DrawEx";
+ case 0x003a: return "ImageList_DrawIndirect";
+ case 0x003b: return "ImageList_Duplicate";
+ case 0x003c: return "ImageList_EndDrag";
+ case 0x003d: return "ImageList_GetBkColor";
+ case 0x003e: return "ImageList_GetDragImage";
+ case 0x003f: return "ImageList_GetFlags";
+ case 0x0040: return "ImageList_GetIcon";
+ case 0x0041: return "ImageList_GetIconSize";
+ case 0x0042: return "ImageList_GetImageCount";
+ case 0x0043: return "ImageList_GetImageInfo";
+ case 0x0044: return "ImageList_GetImageRect";
+ case 0x0045: return "ImageList_LoadImage";
+ case 0x0046: return "ImageList_LoadImageA";
+ case 0x004b: return "ImageList_LoadImageW";
+ case 0x004c: return "ImageList_Merge";
+ case 0x004d: return "ImageList_Read";
+ case 0x004e: return "ImageList_ReadEx";
+ case 0x004f: return "ImageList_Remove";
+ case 0x0050: return "ImageList_Replace";
+ case 0x0051: return "ImageList_ReplaceIcon";
+ case 0x0052: return "ImageList_Resize";
+ case 0x0053: return "ImageList_SetBkColor";
+ case 0x0054: return "ImageList_SetDragCursorImage";
+ case 0x0055: return "ImageList_SetFilter";
+ case 0x0056: return "ImageList_SetFlags";
+ case 0x0057: return "ImageList_SetIconSize";
+ case 0x0058: return "ImageList_SetImageCount";
+ case 0x0059: return "ImageList_SetOverlayImage";
+ case 0x005a: return "ImageList_Write";
+ case 0x005b: return "ImageList_WriteEx";
+ case 0x0011: return "InitCommonControls";
+ case 0x005c: return "InitCommonControlsEx";
+ case 0x005d: return "InitMUILanguage";
+ case 0x005e: return "InitializeFlatSB";
+ case 0x000e: return "LBItemFromPt";
+ case 0x017c: return "LoadIconMetric";
+ case 0x017d: return "LoadIconWithScaleDown";
+ case 0x000d: return "MakeDragList";
+ case 0x0002: return "MenuHelp";
+ case 0x005f: return "PropertySheet";
+ case 0x0060: return "PropertySheetA";
+ case 0x0061: return "PropertySheetW";
+ case 0x018a: return "QuerySystemGestureStatus";
+ case 0x0062: return "RegisterClassNameW";
+ case 0x019c: return "RemoveWindowSubclass";
+ case 0x00cc: return "ScrollBar_Menu";
+ case 0x00cb: return "ScrollBar_MouseMove";
+ case 0x019a: return "SetWindowSubclass";
+ case 0x0003: return "ShowHideMenuCtl";
+ case 0x00ca: return "SizeBoxHwnd";
+ case 0x00ec: return "Str_SetPtrW";
+ case 0x0158: return "TaskDialog";
+ case 0x0159: return "TaskDialogIndirect";
+ case 0x0063: return "UninitializeFlatSB";
+ case 0x0064: return "_TrackMouseEvent";
}
return nullptr;
}
-}
}
-#endif
+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/gdi32_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/gdi32_dll_lookup.hpp
index 9f978e88caa..436660f2036 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/gdi32_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/gdi32_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,627 +17,626 @@
#define LIEF_PE_GDI32_DLL_LOOKUP_H
#include <cstdint>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
inline const char* gdi32_dll_lookup(uint32_t i) {
- switch(i) {
- case 0x0001: return "AbortDoc";
- case 0x0002: return "AbortPath";
- case 0x0003: return "AddFontMemResourceEx";
- case 0x0004: return "AddFontResourceA";
- case 0x0005: return "AddFontResourceExA";
- case 0x0006: return "AddFontResourceExW";
- case 0x0007: return "AddFontResourceTracking";
- case 0x0008: return "AddFontResourceW";
- case 0x0009: return "AngleArc";
- case 0x000a: return "AnimatePalette";
- case 0x000b: return "AnyLinkedFonts";
- case 0x000c: return "Arc";
- case 0x000d: return "ArcTo";
- case 0x000e: return "BRUSHOBJ_hGetColorTransform";
- case 0x000f: return "BRUSHOBJ_pvAllocRbrush";
- case 0x0010: return "BRUSHOBJ_pvGetRbrush";
- case 0x0011: return "BRUSHOBJ_ulGetBrushColor";
- case 0x0012: return "BeginPath";
- case 0x0013: return "BitBlt";
- case 0x0014: return "CLIPOBJ_bEnum";
- case 0x0015: return "CLIPOBJ_cEnumStart";
- case 0x0016: return "CLIPOBJ_ppoGetPath";
- case 0x0017: return "CancelDC";
- case 0x0018: return "CheckColorsInGamut";
- case 0x0019: return "ChoosePixelFormat";
- case 0x001a: return "Chord";
- case 0x001b: return "ClearBitmapAttributes";
- case 0x001c: return "ClearBrushAttributes";
- case 0x001d: return "CloseEnhMetaFile";
- case 0x001e: return "CloseFigure";
- case 0x001f: return "CloseMetaFile";
- case 0x0020: return "ColorCorrectPalette";
- case 0x0021: return "ColorMatchToTarget";
- case 0x0022: return "CombineRgn";
- case 0x0023: return "CombineTransform";
- case 0x0024: return "CopyEnhMetaFileA";
- case 0x0025: return "CopyEnhMetaFileW";
- case 0x0026: return "CopyMetaFileA";
- case 0x0027: return "CopyMetaFileW";
- case 0x0028: return "CreateBitmap";
- case 0x0029: return "CreateBitmapIndirect";
- case 0x002a: return "CreateBrushIndirect";
- case 0x002b: return "CreateColorSpaceA";
- case 0x002c: return "CreateColorSpaceW";
- case 0x002d: return "CreateCompatibleBitmap";
- case 0x002e: return "CreateCompatibleDC";
- case 0x002f: return "CreateDCA";
- case 0x0030: return "CreateDCW";
- case 0x0031: return "CreateDIBPatternBrush";
- case 0x0032: return "CreateDIBPatternBrushPt";
- case 0x0033: return "CreateDIBSection";
- case 0x0034: return "CreateDIBitmap";
- case 0x0035: return "CreateDiscardableBitmap";
- case 0x0036: return "CreateEllipticRgn";
- case 0x0037: return "CreateEllipticRgnIndirect";
- case 0x0038: return "CreateEnhMetaFileA";
- case 0x0039: return "CreateEnhMetaFileW";
- case 0x003a: return "CreateFontA";
- case 0x003b: return "CreateFontIndirectA";
- case 0x003c: return "CreateFontIndirectExA";
- case 0x003d: return "CreateFontIndirectExW";
- case 0x003e: return "CreateFontIndirectW";
- case 0x003f: return "CreateFontW";
- case 0x0040: return "CreateHalftonePalette";
- case 0x0041: return "CreateHatchBrush";
- case 0x0042: return "CreateICA";
- case 0x0043: return "CreateICW";
- case 0x0044: return "CreateMetaFileA";
- case 0x0045: return "CreateMetaFileW";
- case 0x0046: return "CreatePalette";
- case 0x0047: return "CreatePatternBrush";
- case 0x0048: return "CreatePen";
- case 0x0049: return "CreatePenIndirect";
- case 0x004a: return "CreatePolyPolygonRgn";
- case 0x004b: return "CreatePolygonRgn";
- case 0x004c: return "CreateRectRgn";
- case 0x004d: return "CreateRectRgnIndirect";
- case 0x004e: return "CreateRoundRectRgn";
- case 0x004f: return "CreateScalableFontResourceA";
- case 0x0050: return "CreateScalableFontResourceW";
- case 0x0051: return "CreateSolidBrush";
- case 0x0052: return "DPtoLP";
- case 0x0053: return "DdEntry0";
- case 0x005e: return "DdEntry1";
- case 0x0054: return "DdEntry10";
- case 0x0055: return "DdEntry11";
- case 0x0056: return "DdEntry12";
- case 0x0057: return "DdEntry13";
- case 0x0058: return "DdEntry14";
- case 0x0059: return "DdEntry15";
- case 0x005a: return "DdEntry16";
- case 0x005b: return "DdEntry17";
- case 0x005c: return "DdEntry18";
- case 0x005d: return "DdEntry19";
- case 0x0069: return "DdEntry2";
- case 0x005f: return "DdEntry20";
- case 0x0060: return "DdEntry21";
- case 0x0061: return "DdEntry22";
- case 0x0062: return "DdEntry23";
- case 0x0063: return "DdEntry24";
- case 0x0064: return "DdEntry25";
- case 0x0065: return "DdEntry26";
- case 0x0066: return "DdEntry27";
- case 0x0067: return "DdEntry28";
- case 0x0068: return "DdEntry29";
- case 0x0074: return "DdEntry3";
- case 0x006a: return "DdEntry30";
- case 0x006b: return "DdEntry31";
- case 0x006c: return "DdEntry32";
- case 0x006d: return "DdEntry33";
- case 0x006e: return "DdEntry34";
- case 0x006f: return "DdEntry35";
- case 0x0070: return "DdEntry36";
- case 0x0071: return "DdEntry37";
- case 0x0072: return "DdEntry38";
- case 0x0073: return "DdEntry39";
- case 0x007f: return "DdEntry4";
- case 0x0075: return "DdEntry40";
- case 0x0076: return "DdEntry41";
- case 0x0077: return "DdEntry42";
- case 0x0078: return "DdEntry43";
- case 0x0079: return "DdEntry44";
- case 0x007a: return "DdEntry45";
- case 0x007b: return "DdEntry46";
- case 0x007c: return "DdEntry47";
- case 0x007d: return "DdEntry48";
- case 0x007e: return "DdEntry49";
- case 0x0087: return "DdEntry5";
- case 0x0080: return "DdEntry50";
- case 0x0081: return "DdEntry51";
- case 0x0082: return "DdEntry52";
- case 0x0083: return "DdEntry53";
- case 0x0084: return "DdEntry54";
- case 0x0085: return "DdEntry55";
- case 0x0086: return "DdEntry56";
- case 0x0088: return "DdEntry6";
- case 0x0089: return "DdEntry7";
- case 0x008a: return "DdEntry8";
- case 0x008b: return "DdEntry9";
- case 0x008c: return "DeleteColorSpace";
- case 0x008d: return "DeleteDC";
- case 0x008e: return "DeleteEnhMetaFile";
- case 0x008f: return "DeleteMetaFile";
- case 0x0090: return "DeleteObject";
- case 0x0091: return "DescribePixelFormat";
- case 0x0092: return "DeviceCapabilitiesExA";
- case 0x0093: return "DeviceCapabilitiesExW";
- case 0x0094: return "DrawEscape";
- case 0x0095: return "Ellipse";
- case 0x0096: return "EnableEUDC";
- case 0x0097: return "EndDoc";
- case 0x0098: return "EndFormPage";
- case 0x0099: return "EndPage";
- case 0x009a: return "EndPath";
- case 0x009b: return "EngAcquireSemaphore";
- case 0x009c: return "EngAlphaBlend";
- case 0x009d: return "EngAssociateSurface";
- case 0x009e: return "EngBitBlt";
- case 0x009f: return "EngCheckAbort";
- case 0x00a0: return "EngComputeGlyphSet";
- case 0x00a1: return "EngCopyBits";
- case 0x00a2: return "EngCreateBitmap";
- case 0x00a3: return "EngCreateClip";
- case 0x00a4: return "EngCreateDeviceBitmap";
- case 0x00a5: return "EngCreateDeviceSurface";
- case 0x00a6: return "EngCreatePalette";
- case 0x00a7: return "EngCreateSemaphore";
- case 0x00a8: return "EngDeleteClip";
- case 0x00a9: return "EngDeletePalette";
- case 0x00aa: return "EngDeletePath";
- case 0x00ab: return "EngDeleteSemaphore";
- case 0x00ac: return "EngDeleteSurface";
- case 0x00ad: return "EngEraseSurface";
- case 0x00ae: return "EngFillPath";
- case 0x00af: return "EngFindResource";
- case 0x00b0: return "EngFreeModule";
- case 0x00b1: return "EngGetCurrentCodePage";
- case 0x00b2: return "EngGetDriverName";
- case 0x00b3: return "EngGetPrinterDataFileName";
- case 0x00b4: return "EngGradientFill";
- case 0x00b5: return "EngLineTo";
- case 0x00b6: return "EngLoadModule";
- case 0x00b7: return "EngLockSurface";
- case 0x00b8: return "EngMarkBandingSurface";
- case 0x00b9: return "EngMultiByteToUnicodeN";
- case 0x00ba: return "EngMultiByteToWideChar";
- case 0x00bb: return "EngPaint";
- case 0x00bc: return "EngPlgBlt";
- case 0x00bd: return "EngQueryEMFInfo";
- case 0x00be: return "EngQueryLocalTime";
- case 0x00bf: return "EngReleaseSemaphore";
- case 0x00c0: return "EngStretchBlt";
- case 0x00c1: return "EngStretchBltROP";
- case 0x00c2: return "EngStrokeAndFillPath";
- case 0x00c3: return "EngStrokePath";
- case 0x00c4: return "EngTextOut";
- case 0x00c5: return "EngTransparentBlt";
- case 0x00c6: return "EngUnicodeToMultiByteN";
- case 0x00c7: return "EngUnlockSurface";
- case 0x00c8: return "EngWideCharToMultiByte";
- case 0x00c9: return "EnumEnhMetaFile";
- case 0x00ca: return "EnumFontFamiliesA";
- case 0x00cb: return "EnumFontFamiliesExA";
- case 0x00cc: return "EnumFontFamiliesExW";
- case 0x00cd: return "EnumFontFamiliesW";
- case 0x00ce: return "EnumFontsA";
- case 0x00cf: return "EnumFontsW";
- case 0x00d0: return "EnumICMProfilesA";
- case 0x00d1: return "EnumICMProfilesW";
- case 0x00d2: return "EnumMetaFile";
- case 0x00d3: return "EnumObjects";
- case 0x00d4: return "EqualRgn";
- case 0x00d5: return "Escape";
- case 0x00d6: return "EudcLoadLinkW";
- case 0x00d7: return "EudcUnloadLinkW";
- case 0x00d8: return "ExcludeClipRect";
- case 0x00d9: return "ExtCreatePen";
- case 0x00da: return "ExtCreateRegion";
- case 0x00db: return "ExtEscape";
- case 0x00dc: return "ExtFloodFill";
- case 0x00dd: return "ExtSelectClipRgn";
- case 0x00de: return "ExtTextOutA";
- case 0x00df: return "ExtTextOutW";
- case 0x00e0: return "FONTOBJ_cGetAllGlyphHandles";
- case 0x00e1: return "FONTOBJ_cGetGlyphs";
- case 0x00e2: return "FONTOBJ_pQueryGlyphAttrs";
- case 0x00e3: return "FONTOBJ_pfdg";
- case 0x00e4: return "FONTOBJ_pifi";
- case 0x00e5: return "FONTOBJ_pvTrueTypeFontFile";
- case 0x00e6: return "FONTOBJ_pxoGetXform";
- case 0x00e7: return "FONTOBJ_vGetInfo";
- case 0x00e8: return "FillPath";
- case 0x00e9: return "FillRgn";
- case 0x00ea: return "FixBrushOrgEx";
- case 0x00eb: return "FlattenPath";
- case 0x00ec: return "FloodFill";
- case 0x00ed: return "FontIsLinked";
- case 0x00ee: return "FrameRgn";
- case 0x00ef: return "GdiAddFontResourceW";
- case 0x00f0: return "GdiAddGlsBounds";
- case 0x00f1: return "GdiAddGlsRecord";
- case 0x00f2: return "GdiAlphaBlend";
- case 0x00f3: return "GdiArtificialDecrementDriver";
- case 0x00f4: return "GdiCleanCacheDC";
- case 0x00f5: return "GdiComment";
- case 0x00f6: return "GdiConsoleTextOut";
- case 0x00f7: return "GdiConvertAndCheckDC";
- case 0x00f8: return "GdiConvertBitmap";
- case 0x00f9: return "GdiConvertBitmapV5";
- case 0x00fa: return "GdiConvertBrush";
- case 0x00fb: return "GdiConvertDC";
- case 0x00fc: return "GdiConvertEnhMetaFile";
- case 0x00fd: return "GdiConvertFont";
- case 0x00fe: return "GdiConvertMetaFilePict";
- case 0x00ff: return "GdiConvertPalette";
- case 0x0100: return "GdiConvertRegion";
- case 0x0101: return "GdiConvertToDevmodeW";
- case 0x0102: return "GdiCreateLocalEnhMetaFile";
- case 0x0103: return "GdiCreateLocalMetaFilePict";
- case 0x0104: return "GdiDeleteLocalDC";
- case 0x0105: return "GdiDeleteSpoolFileHandle";
- case 0x0106: return "GdiDescribePixelFormat";
- case 0x0107: return "GdiDllInitialize";
- case 0x0108: return "GdiDrawStream";
- case 0x0109: return "GdiEndDocEMF";
- case 0x010a: return "GdiEndPageEMF";
- case 0x0112: return "GdiEntry1";
- case 0x010b: return "GdiEntry10";
- case 0x010c: return "GdiEntry11";
- case 0x010d: return "GdiEntry12";
- case 0x010e: return "GdiEntry13";
- case 0x010f: return "GdiEntry14";
- case 0x0110: return "GdiEntry15";
- case 0x0111: return "GdiEntry16";
- case 0x0113: return "GdiEntry2";
- case 0x0114: return "GdiEntry3";
- case 0x0115: return "GdiEntry4";
- case 0x0116: return "GdiEntry5";
- case 0x0117: return "GdiEntry6";
- case 0x0118: return "GdiEntry7";
- case 0x0119: return "GdiEntry8";
- case 0x011a: return "GdiEntry9";
- case 0x011b: return "GdiFixUpHandle";
- case 0x011c: return "GdiFlush";
- case 0x011d: return "GdiFullscreenControl";
- case 0x011e: return "GdiGetBatchLimit";
- case 0x011f: return "GdiGetCharDimensions";
- case 0x0120: return "GdiGetCodePage";
- case 0x0121: return "GdiGetDC";
- case 0x0122: return "GdiGetDevmodeForPage";
- case 0x0123: return "GdiGetLocalBrush";
- case 0x0124: return "GdiGetLocalDC";
- case 0x0125: return "GdiGetLocalFont";
- case 0x0126: return "GdiGetPageCount";
- case 0x0127: return "GdiGetPageHandle";
- case 0x0128: return "GdiGetSpoolFileHandle";
- case 0x0129: return "GdiGetSpoolMessage";
- case 0x012a: return "GdiGradientFill";
- case 0x012b: return "GdiInitSpool";
- case 0x012c: return "GdiInitializeLanguagePack";
- case 0x012d: return "GdiIsMetaFileDC";
- case 0x012e: return "GdiIsMetaPrintDC";
- case 0x012f: return "GdiIsPlayMetafileDC";
- case 0x0130: return "GdiPlayDCScript";
- case 0x0131: return "GdiPlayEMF";
- case 0x0132: return "GdiPlayJournal";
- case 0x0133: return "GdiPlayPageEMF";
- case 0x0134: return "GdiPlayPrivatePageEMF";
- case 0x0135: return "GdiPlayScript";
- case 0x0136: return "GdiPrinterThunk";
- case 0x0137: return "GdiProcessSetup";
- case 0x0138: return "GdiQueryFonts";
- case 0x0139: return "GdiQueryTable";
- case 0x013a: return "GdiRealizationInfo";
- case 0x013b: return "GdiReleaseDC";
- case 0x013c: return "GdiReleaseLocalDC";
- case 0x013d: return "GdiResetDCEMF";
- case 0x013e: return "GdiSetAttrs";
- case 0x013f: return "GdiSetBatchLimit";
- case 0x0140: return "GdiSetLastError";
- case 0x0141: return "GdiSetPixelFormat";
- case 0x0142: return "GdiSetServerAttr";
- case 0x0143: return "GdiStartDocEMF";
- case 0x0144: return "GdiStartPageEMF";
- case 0x0145: return "GdiSwapBuffers";
- case 0x0146: return "GdiTransparentBlt";
- case 0x0147: return "GdiValidateHandle";
- case 0x0148: return "GetArcDirection";
- case 0x0149: return "GetAspectRatioFilterEx";
- case 0x014a: return "GetBitmapAttributes";
- case 0x014b: return "GetBitmapBits";
- case 0x014c: return "GetBitmapDimensionEx";
- case 0x014d: return "GetBkColor";
- case 0x014e: return "GetBkMode";
- case 0x014f: return "GetBoundsRect";
- case 0x0150: return "GetBrushAttributes";
- case 0x0151: return "GetBrushOrgEx";
- case 0x0152: return "GetCharABCWidthsA";
- case 0x0153: return "GetCharABCWidthsFloatA";
- case 0x0154: return "GetCharABCWidthsFloatW";
- case 0x0155: return "GetCharABCWidthsI";
- case 0x0156: return "GetCharABCWidthsW";
- case 0x0157: return "GetCharWidth32A";
- case 0x0158: return "GetCharWidth32W";
- case 0x0159: return "GetCharWidthA";
- case 0x015a: return "GetCharWidthFloatA";
- case 0x015b: return "GetCharWidthFloatW";
- case 0x015c: return "GetCharWidthI";
- case 0x015d: return "GetCharWidthInfo";
- case 0x015e: return "GetCharWidthW";
- case 0x015f: return "GetCharacterPlacementA";
- case 0x0160: return "GetCharacterPlacementW";
- case 0x0161: return "GetClipBox";
- case 0x0162: return "GetClipRgn";
- case 0x0163: return "GetColorAdjustment";
- case 0x0164: return "GetColorSpace";
- case 0x0165: return "GetCurrentObject";
- case 0x0166: return "GetCurrentPositionEx";
- case 0x0167: return "GetDCBrushColor";
- case 0x0168: return "GetDCOrgEx";
- case 0x0169: return "GetDCPenColor";
- case 0x016a: return "GetDIBColorTable";
- case 0x016b: return "GetDIBits";
- case 0x016c: return "GetDeviceCaps";
- case 0x016d: return "GetDeviceGammaRamp";
- case 0x016e: return "GetETM";
- case 0x016f: return "GetEUDCTimeStamp";
- case 0x0170: return "GetEUDCTimeStampExW";
- case 0x0171: return "GetEnhMetaFileA";
- case 0x0172: return "GetEnhMetaFileBits";
- case 0x0173: return "GetEnhMetaFileDescriptionA";
- case 0x0174: return "GetEnhMetaFileDescriptionW";
- case 0x0175: return "GetEnhMetaFileHeader";
- case 0x0176: return "GetEnhMetaFilePaletteEntries";
- case 0x0177: return "GetEnhMetaFilePixelFormat";
- case 0x0178: return "GetEnhMetaFileW";
- case 0x0179: return "GetFontAssocStatus";
- case 0x017a: return "GetFontData";
- case 0x017b: return "GetFontLanguageInfo";
- case 0x017c: return "GetFontResourceInfoW";
- case 0x017d: return "GetFontUnicodeRanges";
- case 0x017e: return "GetGlyphIndicesA";
- case 0x017f: return "GetGlyphIndicesW";
- case 0x0180: return "GetGlyphOutline";
- case 0x0181: return "GetGlyphOutlineA";
- case 0x0182: return "GetGlyphOutlineW";
- case 0x0183: return "GetGlyphOutlineWow";
- case 0x0184: return "GetGraphicsMode";
- case 0x0185: return "GetHFONT";
- case 0x0186: return "GetICMProfileA";
- case 0x0187: return "GetICMProfileW";
- case 0x0188: return "GetKerningPairs";
- case 0x0189: return "GetKerningPairsA";
- case 0x018a: return "GetKerningPairsW";
- case 0x018b: return "GetLayout";
- case 0x018c: return "GetLogColorSpaceA";
- case 0x018d: return "GetLogColorSpaceW";
- case 0x018e: return "GetMapMode";
- case 0x018f: return "GetMetaFileA";
- case 0x0190: return "GetMetaFileBitsEx";
- case 0x0191: return "GetMetaFileW";
- case 0x0192: return "GetMetaRgn";
- case 0x0193: return "GetMiterLimit";
- case 0x0194: return "GetNearestColor";
- case 0x0195: return "GetNearestPaletteIndex";
- case 0x0196: return "GetObjectA";
- case 0x0197: return "GetObjectType";
- case 0x0198: return "GetObjectW";
- case 0x0199: return "GetOutlineTextMetricsA";
- case 0x019a: return "GetOutlineTextMetricsW";
- case 0x019b: return "GetPaletteEntries";
- case 0x019c: return "GetPath";
- case 0x019d: return "GetPixel";
- case 0x019e: return "GetPixelFormat";
- case 0x019f: return "GetPolyFillMode";
- case 0x01a0: return "GetROP2";
- case 0x01a1: return "GetRandomRgn";
- case 0x01a2: return "GetRasterizerCaps";
- case 0x01a3: return "GetRegionData";
- case 0x01a4: return "GetRelAbs";
- case 0x01a5: return "GetRgnBox";
- case 0x01a6: return "GetStockObject";
- case 0x01a7: return "GetStretchBltMode";
- case 0x01a8: return "GetStringBitmapA";
- case 0x01a9: return "GetStringBitmapW";
- case 0x01aa: return "GetSystemPaletteEntries";
- case 0x01ab: return "GetSystemPaletteUse";
- case 0x01ac: return "GetTextAlign";
- case 0x01ad: return "GetTextCharacterExtra";
- case 0x01ae: return "GetTextCharset";
- case 0x01af: return "GetTextCharsetInfo";
- case 0x01b0: return "GetTextColor";
- case 0x01b1: return "GetTextExtentExPointA";
- case 0x01b2: return "GetTextExtentExPointI";
- case 0x01b3: return "GetTextExtentExPointW";
- case 0x01b4: return "GetTextExtentExPointWPri";
- case 0x01b5: return "GetTextExtentPoint32A";
- case 0x01b6: return "GetTextExtentPoint32W";
- case 0x01b7: return "GetTextExtentPointA";
- case 0x01b8: return "GetTextExtentPointI";
- case 0x01b9: return "GetTextExtentPointW";
- case 0x01ba: return "GetTextFaceA";
- case 0x01bb: return "GetTextFaceAliasW";
- case 0x01bc: return "GetTextFaceW";
- case 0x01bd: return "GetTextMetricsA";
- case 0x01be: return "GetTextMetricsW";
- case 0x01bf: return "GetTransform";
- case 0x01c0: return "GetViewportExtEx";
- case 0x01c1: return "GetViewportOrgEx";
- case 0x01c2: return "GetWinMetaFileBits";
- case 0x01c3: return "GetWindowExtEx";
- case 0x01c4: return "GetWindowOrgEx";
- case 0x01c5: return "GetWorldTransform";
- case 0x01c6: return "HT_Get8BPPFormatPalette";
- case 0x01c7: return "HT_Get8BPPMaskPalette";
- case 0x01c8: return "IntersectClipRect";
- case 0x01c9: return "InvertRgn";
- case 0x01ca: return "IsValidEnhMetaRecord";
- case 0x01cb: return "IsValidEnhMetaRecordOffExt";
- case 0x01cc: return "LPtoDP";
- case 0x01cd: return "LineDDA";
- case 0x01ce: return "LineTo";
- case 0x01cf: return "MaskBlt";
- case 0x01d0: return "MirrorRgn";
- case 0x01d1: return "ModifyWorldTransform";
- case 0x01d2: return "MoveToEx";
- case 0x01d3: return "NamedEscape";
- case 0x01d4: return "OffsetClipRgn";
- case 0x01d5: return "OffsetRgn";
- case 0x01d6: return "OffsetViewportOrgEx";
- case 0x01d7: return "OffsetWindowOrgEx";
- case 0x01d8: return "PATHOBJ_bEnum";
- case 0x01d9: return "PATHOBJ_bEnumClipLines";
- case 0x01da: return "PATHOBJ_vEnumStart";
- case 0x01db: return "PATHOBJ_vEnumStartClipLines";
- case 0x01dc: return "PATHOBJ_vGetBounds";
- case 0x01dd: return "PaintRgn";
- case 0x01de: return "PatBlt";
- case 0x01df: return "PathToRegion";
- case 0x01e0: return "Pie";
- case 0x01e1: return "PlayEnhMetaFile";
- case 0x01e2: return "PlayEnhMetaFileRecord";
- case 0x01e3: return "PlayMetaFile";
- case 0x01e4: return "PlayMetaFileRecord";
- case 0x01e5: return "PlgBlt";
- case 0x01e6: return "PolyBezier";
- case 0x01e7: return "PolyBezierTo";
- case 0x01e8: return "PolyDraw";
- case 0x01e9: return "PolyPatBlt";
- case 0x01ea: return "PolyPolygon";
- case 0x01eb: return "PolyPolyline";
- case 0x01ec: return "PolyTextOutA";
- case 0x01ed: return "PolyTextOutW";
- case 0x01ee: return "Polygon";
- case 0x01ef: return "Polyline";
- case 0x01f0: return "PolylineTo";
- case 0x01f1: return "PtInRegion";
- case 0x01f2: return "PtVisible";
- case 0x01f3: return "QueryFontAssocStatus";
- case 0x01f4: return "RealizePalette";
- case 0x01f5: return "RectInRegion";
- case 0x01f6: return "RectVisible";
- case 0x01f7: return "Rectangle";
- case 0x01f8: return "RemoveFontMemResourceEx";
- case 0x01f9: return "RemoveFontResourceA";
- case 0x01fa: return "RemoveFontResourceExA";
- case 0x01fb: return "RemoveFontResourceExW";
- case 0x01fc: return "RemoveFontResourceTracking";
- case 0x01fd: return "RemoveFontResourceW";
- case 0x01fe: return "ResetDCA";
- case 0x01ff: return "ResetDCW";
- case 0x0200: return "ResizePalette";
- case 0x0201: return "RestoreDC";
- case 0x0202: return "RoundRect";
- case 0x0203: return "STROBJ_bEnum";
- case 0x0204: return "STROBJ_bEnumPositionsOnly";
- case 0x0205: return "STROBJ_bGetAdvanceWidths";
- case 0x0206: return "STROBJ_dwGetCodePage";
- case 0x0207: return "STROBJ_vEnumStart";
- case 0x0208: return "SaveDC";
- case 0x0209: return "ScaleViewportExtEx";
- case 0x020a: return "ScaleWindowExtEx";
- case 0x020b: return "SelectBrushLocal";
- case 0x020c: return "SelectClipPath";
- case 0x020d: return "SelectClipRgn";
- case 0x020e: return "SelectFontLocal";
- case 0x020f: return "SelectObject";
- case 0x0210: return "SelectPalette";
- case 0x0211: return "SetAbortProc";
- case 0x0212: return "SetArcDirection";
- case 0x0213: return "SetBitmapAttributes";
- case 0x0214: return "SetBitmapBits";
- case 0x0215: return "SetBitmapDimensionEx";
- case 0x0216: return "SetBkColor";
- case 0x0217: return "SetBkMode";
- case 0x0218: return "SetBoundsRect";
- case 0x0219: return "SetBrushAttributes";
- case 0x021a: return "SetBrushOrgEx";
- case 0x021b: return "SetColorAdjustment";
- case 0x021c: return "SetColorSpace";
- case 0x021d: return "SetDCBrushColor";
- case 0x021e: return "SetDCPenColor";
- case 0x021f: return "SetDIBColorTable";
- case 0x0220: return "SetDIBits";
- case 0x0221: return "SetDIBitsToDevice";
- case 0x0222: return "SetDeviceGammaRamp";
- case 0x0223: return "SetEnhMetaFileBits";
- case 0x0224: return "SetFontEnumeration";
- case 0x0225: return "SetGraphicsMode";
- case 0x0226: return "SetICMMode";
- case 0x0227: return "SetICMProfileA";
- case 0x0228: return "SetICMProfileW";
- case 0x0229: return "SetLayout";
- case 0x022a: return "SetLayoutWidth";
- case 0x022b: return "SetMagicColors";
- case 0x022c: return "SetMapMode";
- case 0x022d: return "SetMapperFlags";
- case 0x022e: return "SetMetaFileBitsEx";
- case 0x022f: return "SetMetaRgn";
- case 0x0230: return "SetMiterLimit";
- case 0x0231: return "SetPaletteEntries";
- case 0x0232: return "SetPixel";
- case 0x0233: return "SetPixelFormat";
- case 0x0234: return "SetPixelV";
- case 0x0235: return "SetPolyFillMode";
- case 0x0236: return "SetROP2";
- case 0x0237: return "SetRectRgn";
- case 0x0238: return "SetRelAbs";
- case 0x0239: return "SetStretchBltMode";
- case 0x023a: return "SetSystemPaletteUse";
- case 0x023b: return "SetTextAlign";
- case 0x023c: return "SetTextCharacterExtra";
- case 0x023d: return "SetTextColor";
- case 0x023e: return "SetTextJustification";
- case 0x023f: return "SetViewportExtEx";
- case 0x0240: return "SetViewportOrgEx";
- case 0x0241: return "SetVirtualResolution";
- case 0x0242: return "SetWinMetaFileBits";
- case 0x0243: return "SetWindowExtEx";
- case 0x0244: return "SetWindowOrgEx";
- case 0x0245: return "SetWorldTransform";
- case 0x0246: return "StartDocA";
- case 0x0247: return "StartDocW";
- case 0x0248: return "StartFormPage";
- case 0x0249: return "StartPage";
- case 0x024a: return "StretchBlt";
- case 0x024b: return "StretchDIBits";
- case 0x024c: return "StrokeAndFillPath";
- case 0x024d: return "StrokePath";
- case 0x024e: return "SwapBuffers";
- case 0x024f: return "TextOutA";
- case 0x0250: return "TextOutW";
- case 0x0251: return "TranslateCharsetInfo";
- case 0x0252: return "UnloadNetworkFonts";
- case 0x0253: return "UnrealizeObject";
- case 0x0254: return "UpdateColors";
- case 0x0255: return "UpdateICMRegKeyA";
- case 0x0256: return "UpdateICMRegKeyW";
- case 0x0257: return "WidenPath";
- case 0x0258: return "XFORMOBJ_bApplyXform";
- case 0x0259: return "XFORMOBJ_iGetXform";
- case 0x025a: return "XLATEOBJ_cGetPalette";
- case 0x025b: return "XLATEOBJ_hGetColorTransform";
- case 0x025c: return "XLATEOBJ_iXlate";
- case 0x025d: return "XLATEOBJ_piVector";
- case 0x025e: return "bInitSystemAndFontsDirectoriesW";
- case 0x025f: return "bMakePathNameW";
- case 0x0260: return "cGetTTFFromFOT";
- case 0x0261: return "gdiPlaySpoolStream";
+ switch (i) {
+ case 0x0001: return "AbortDoc";
+ case 0x0002: return "AbortPath";
+ case 0x0003: return "AddFontMemResourceEx";
+ case 0x0004: return "AddFontResourceA";
+ case 0x0005: return "AddFontResourceExA";
+ case 0x0006: return "AddFontResourceExW";
+ case 0x0007: return "AddFontResourceTracking";
+ case 0x0008: return "AddFontResourceW";
+ case 0x0009: return "AngleArc";
+ case 0x000a: return "AnimatePalette";
+ case 0x000b: return "AnyLinkedFonts";
+ case 0x000c: return "Arc";
+ case 0x000d: return "ArcTo";
+ case 0x000e: return "BRUSHOBJ_hGetColorTransform";
+ case 0x000f: return "BRUSHOBJ_pvAllocRbrush";
+ case 0x0010: return "BRUSHOBJ_pvGetRbrush";
+ case 0x0011: return "BRUSHOBJ_ulGetBrushColor";
+ case 0x0012: return "BeginPath";
+ case 0x0013: return "BitBlt";
+ case 0x0014: return "CLIPOBJ_bEnum";
+ case 0x0015: return "CLIPOBJ_cEnumStart";
+ case 0x0016: return "CLIPOBJ_ppoGetPath";
+ case 0x0017: return "CancelDC";
+ case 0x0018: return "CheckColorsInGamut";
+ case 0x0019: return "ChoosePixelFormat";
+ case 0x001a: return "Chord";
+ case 0x001b: return "ClearBitmapAttributes";
+ case 0x001c: return "ClearBrushAttributes";
+ case 0x001d: return "CloseEnhMetaFile";
+ case 0x001e: return "CloseFigure";
+ case 0x001f: return "CloseMetaFile";
+ case 0x0020: return "ColorCorrectPalette";
+ case 0x0021: return "ColorMatchToTarget";
+ case 0x0022: return "CombineRgn";
+ case 0x0023: return "CombineTransform";
+ case 0x0024: return "CopyEnhMetaFileA";
+ case 0x0025: return "CopyEnhMetaFileW";
+ case 0x0026: return "CopyMetaFileA";
+ case 0x0027: return "CopyMetaFileW";
+ case 0x0028: return "CreateBitmap";
+ case 0x0029: return "CreateBitmapIndirect";
+ case 0x002a: return "CreateBrushIndirect";
+ case 0x002b: return "CreateColorSpaceA";
+ case 0x002c: return "CreateColorSpaceW";
+ case 0x002d: return "CreateCompatibleBitmap";
+ case 0x002e: return "CreateCompatibleDC";
+ case 0x002f: return "CreateDCA";
+ case 0x0030: return "CreateDCW";
+ case 0x0031: return "CreateDIBPatternBrush";
+ case 0x0032: return "CreateDIBPatternBrushPt";
+ case 0x0033: return "CreateDIBSection";
+ case 0x0034: return "CreateDIBitmap";
+ case 0x0035: return "CreateDiscardableBitmap";
+ case 0x0036: return "CreateEllipticRgn";
+ case 0x0037: return "CreateEllipticRgnIndirect";
+ case 0x0038: return "CreateEnhMetaFileA";
+ case 0x0039: return "CreateEnhMetaFileW";
+ case 0x003a: return "CreateFontA";
+ case 0x003b: return "CreateFontIndirectA";
+ case 0x003c: return "CreateFontIndirectExA";
+ case 0x003d: return "CreateFontIndirectExW";
+ case 0x003e: return "CreateFontIndirectW";
+ case 0x003f: return "CreateFontW";
+ case 0x0040: return "CreateHalftonePalette";
+ case 0x0041: return "CreateHatchBrush";
+ case 0x0042: return "CreateICA";
+ case 0x0043: return "CreateICW";
+ case 0x0044: return "CreateMetaFileA";
+ case 0x0045: return "CreateMetaFileW";
+ case 0x0046: return "CreatePalette";
+ case 0x0047: return "CreatePatternBrush";
+ case 0x0048: return "CreatePen";
+ case 0x0049: return "CreatePenIndirect";
+ case 0x004a: return "CreatePolyPolygonRgn";
+ case 0x004b: return "CreatePolygonRgn";
+ case 0x004c: return "CreateRectRgn";
+ case 0x004d: return "CreateRectRgnIndirect";
+ case 0x004e: return "CreateRoundRectRgn";
+ case 0x004f: return "CreateScalableFontResourceA";
+ case 0x0050: return "CreateScalableFontResourceW";
+ case 0x0051: return "CreateSolidBrush";
+ case 0x0052: return "DPtoLP";
+ case 0x0053: return "DdEntry0";
+ case 0x005e: return "DdEntry1";
+ case 0x0054: return "DdEntry10";
+ case 0x0055: return "DdEntry11";
+ case 0x0056: return "DdEntry12";
+ case 0x0057: return "DdEntry13";
+ case 0x0058: return "DdEntry14";
+ case 0x0059: return "DdEntry15";
+ case 0x005a: return "DdEntry16";
+ case 0x005b: return "DdEntry17";
+ case 0x005c: return "DdEntry18";
+ case 0x005d: return "DdEntry19";
+ case 0x0069: return "DdEntry2";
+ case 0x005f: return "DdEntry20";
+ case 0x0060: return "DdEntry21";
+ case 0x0061: return "DdEntry22";
+ case 0x0062: return "DdEntry23";
+ case 0x0063: return "DdEntry24";
+ case 0x0064: return "DdEntry25";
+ case 0x0065: return "DdEntry26";
+ case 0x0066: return "DdEntry27";
+ case 0x0067: return "DdEntry28";
+ case 0x0068: return "DdEntry29";
+ case 0x0074: return "DdEntry3";
+ case 0x006a: return "DdEntry30";
+ case 0x006b: return "DdEntry31";
+ case 0x006c: return "DdEntry32";
+ case 0x006d: return "DdEntry33";
+ case 0x006e: return "DdEntry34";
+ case 0x006f: return "DdEntry35";
+ case 0x0070: return "DdEntry36";
+ case 0x0071: return "DdEntry37";
+ case 0x0072: return "DdEntry38";
+ case 0x0073: return "DdEntry39";
+ case 0x007f: return "DdEntry4";
+ case 0x0075: return "DdEntry40";
+ case 0x0076: return "DdEntry41";
+ case 0x0077: return "DdEntry42";
+ case 0x0078: return "DdEntry43";
+ case 0x0079: return "DdEntry44";
+ case 0x007a: return "DdEntry45";
+ case 0x007b: return "DdEntry46";
+ case 0x007c: return "DdEntry47";
+ case 0x007d: return "DdEntry48";
+ case 0x007e: return "DdEntry49";
+ case 0x0087: return "DdEntry5";
+ case 0x0080: return "DdEntry50";
+ case 0x0081: return "DdEntry51";
+ case 0x0082: return "DdEntry52";
+ case 0x0083: return "DdEntry53";
+ case 0x0084: return "DdEntry54";
+ case 0x0085: return "DdEntry55";
+ case 0x0086: return "DdEntry56";
+ case 0x0088: return "DdEntry6";
+ case 0x0089: return "DdEntry7";
+ case 0x008a: return "DdEntry8";
+ case 0x008b: return "DdEntry9";
+ case 0x008c: return "DeleteColorSpace";
+ case 0x008d: return "DeleteDC";
+ case 0x008e: return "DeleteEnhMetaFile";
+ case 0x008f: return "DeleteMetaFile";
+ case 0x0090: return "DeleteObject";
+ case 0x0091: return "DescribePixelFormat";
+ case 0x0092: return "DeviceCapabilitiesExA";
+ case 0x0093: return "DeviceCapabilitiesExW";
+ case 0x0094: return "DrawEscape";
+ case 0x0095: return "Ellipse";
+ case 0x0096: return "EnableEUDC";
+ case 0x0097: return "EndDoc";
+ case 0x0098: return "EndFormPage";
+ case 0x0099: return "EndPage";
+ case 0x009a: return "EndPath";
+ case 0x009b: return "EngAcquireSemaphore";
+ case 0x009c: return "EngAlphaBlend";
+ case 0x009d: return "EngAssociateSurface";
+ case 0x009e: return "EngBitBlt";
+ case 0x009f: return "EngCheckAbort";
+ case 0x00a0: return "EngComputeGlyphSet";
+ case 0x00a1: return "EngCopyBits";
+ case 0x00a2: return "EngCreateBitmap";
+ case 0x00a3: return "EngCreateClip";
+ case 0x00a4: return "EngCreateDeviceBitmap";
+ case 0x00a5: return "EngCreateDeviceSurface";
+ case 0x00a6: return "EngCreatePalette";
+ case 0x00a7: return "EngCreateSemaphore";
+ case 0x00a8: return "EngDeleteClip";
+ case 0x00a9: return "EngDeletePalette";
+ case 0x00aa: return "EngDeletePath";
+ case 0x00ab: return "EngDeleteSemaphore";
+ case 0x00ac: return "EngDeleteSurface";
+ case 0x00ad: return "EngEraseSurface";
+ case 0x00ae: return "EngFillPath";
+ case 0x00af: return "EngFindResource";
+ case 0x00b0: return "EngFreeModule";
+ case 0x00b1: return "EngGetCurrentCodePage";
+ case 0x00b2: return "EngGetDriverName";
+ case 0x00b3: return "EngGetPrinterDataFileName";
+ case 0x00b4: return "EngGradientFill";
+ case 0x00b5: return "EngLineTo";
+ case 0x00b6: return "EngLoadModule";
+ case 0x00b7: return "EngLockSurface";
+ case 0x00b8: return "EngMarkBandingSurface";
+ case 0x00b9: return "EngMultiByteToUnicodeN";
+ case 0x00ba: return "EngMultiByteToWideChar";
+ case 0x00bb: return "EngPaint";
+ case 0x00bc: return "EngPlgBlt";
+ case 0x00bd: return "EngQueryEMFInfo";
+ case 0x00be: return "EngQueryLocalTime";
+ case 0x00bf: return "EngReleaseSemaphore";
+ case 0x00c0: return "EngStretchBlt";
+ case 0x00c1: return "EngStretchBltROP";
+ case 0x00c2: return "EngStrokeAndFillPath";
+ case 0x00c3: return "EngStrokePath";
+ case 0x00c4: return "EngTextOut";
+ case 0x00c5: return "EngTransparentBlt";
+ case 0x00c6: return "EngUnicodeToMultiByteN";
+ case 0x00c7: return "EngUnlockSurface";
+ case 0x00c8: return "EngWideCharToMultiByte";
+ case 0x00c9: return "EnumEnhMetaFile";
+ case 0x00ca: return "EnumFontFamiliesA";
+ case 0x00cb: return "EnumFontFamiliesExA";
+ case 0x00cc: return "EnumFontFamiliesExW";
+ case 0x00cd: return "EnumFontFamiliesW";
+ case 0x00ce: return "EnumFontsA";
+ case 0x00cf: return "EnumFontsW";
+ case 0x00d0: return "EnumICMProfilesA";
+ case 0x00d1: return "EnumICMProfilesW";
+ case 0x00d2: return "EnumMetaFile";
+ case 0x00d3: return "EnumObjects";
+ case 0x00d4: return "EqualRgn";
+ case 0x00d5: return "Escape";
+ case 0x00d6: return "EudcLoadLinkW";
+ case 0x00d7: return "EudcUnloadLinkW";
+ case 0x00d8: return "ExcludeClipRect";
+ case 0x00d9: return "ExtCreatePen";
+ case 0x00da: return "ExtCreateRegion";
+ case 0x00db: return "ExtEscape";
+ case 0x00dc: return "ExtFloodFill";
+ case 0x00dd: return "ExtSelectClipRgn";
+ case 0x00de: return "ExtTextOutA";
+ case 0x00df: return "ExtTextOutW";
+ case 0x00e0: return "FONTOBJ_cGetAllGlyphHandles";
+ case 0x00e1: return "FONTOBJ_cGetGlyphs";
+ case 0x00e2: return "FONTOBJ_pQueryGlyphAttrs";
+ case 0x00e3: return "FONTOBJ_pfdg";
+ case 0x00e4: return "FONTOBJ_pifi";
+ case 0x00e5: return "FONTOBJ_pvTrueTypeFontFile";
+ case 0x00e6: return "FONTOBJ_pxoGetXform";
+ case 0x00e7: return "FONTOBJ_vGetInfo";
+ case 0x00e8: return "FillPath";
+ case 0x00e9: return "FillRgn";
+ case 0x00ea: return "FixBrushOrgEx";
+ case 0x00eb: return "FlattenPath";
+ case 0x00ec: return "FloodFill";
+ case 0x00ed: return "FontIsLinked";
+ case 0x00ee: return "FrameRgn";
+ case 0x00ef: return "GdiAddFontResourceW";
+ case 0x00f0: return "GdiAddGlsBounds";
+ case 0x00f1: return "GdiAddGlsRecord";
+ case 0x00f2: return "GdiAlphaBlend";
+ case 0x00f3: return "GdiArtificialDecrementDriver";
+ case 0x00f4: return "GdiCleanCacheDC";
+ case 0x00f5: return "GdiComment";
+ case 0x00f6: return "GdiConsoleTextOut";
+ case 0x00f7: return "GdiConvertAndCheckDC";
+ case 0x00f8: return "GdiConvertBitmap";
+ case 0x00f9: return "GdiConvertBitmapV5";
+ case 0x00fa: return "GdiConvertBrush";
+ case 0x00fb: return "GdiConvertDC";
+ case 0x00fc: return "GdiConvertEnhMetaFile";
+ case 0x00fd: return "GdiConvertFont";
+ case 0x00fe: return "GdiConvertMetaFilePict";
+ case 0x00ff: return "GdiConvertPalette";
+ case 0x0100: return "GdiConvertRegion";
+ case 0x0101: return "GdiConvertToDevmodeW";
+ case 0x0102: return "GdiCreateLocalEnhMetaFile";
+ case 0x0103: return "GdiCreateLocalMetaFilePict";
+ case 0x0104: return "GdiDeleteLocalDC";
+ case 0x0105: return "GdiDeleteSpoolFileHandle";
+ case 0x0106: return "GdiDescribePixelFormat";
+ case 0x0107: return "GdiDllInitialize";
+ case 0x0108: return "GdiDrawStream";
+ case 0x0109: return "GdiEndDocEMF";
+ case 0x010a: return "GdiEndPageEMF";
+ case 0x0112: return "GdiEntry1";
+ case 0x010b: return "GdiEntry10";
+ case 0x010c: return "GdiEntry11";
+ case 0x010d: return "GdiEntry12";
+ case 0x010e: return "GdiEntry13";
+ case 0x010f: return "GdiEntry14";
+ case 0x0110: return "GdiEntry15";
+ case 0x0111: return "GdiEntry16";
+ case 0x0113: return "GdiEntry2";
+ case 0x0114: return "GdiEntry3";
+ case 0x0115: return "GdiEntry4";
+ case 0x0116: return "GdiEntry5";
+ case 0x0117: return "GdiEntry6";
+ case 0x0118: return "GdiEntry7";
+ case 0x0119: return "GdiEntry8";
+ case 0x011a: return "GdiEntry9";
+ case 0x011b: return "GdiFixUpHandle";
+ case 0x011c: return "GdiFlush";
+ case 0x011d: return "GdiFullscreenControl";
+ case 0x011e: return "GdiGetBatchLimit";
+ case 0x011f: return "GdiGetCharDimensions";
+ case 0x0120: return "GdiGetCodePage";
+ case 0x0121: return "GdiGetDC";
+ case 0x0122: return "GdiGetDevmodeForPage";
+ case 0x0123: return "GdiGetLocalBrush";
+ case 0x0124: return "GdiGetLocalDC";
+ case 0x0125: return "GdiGetLocalFont";
+ case 0x0126: return "GdiGetPageCount";
+ case 0x0127: return "GdiGetPageHandle";
+ case 0x0128: return "GdiGetSpoolFileHandle";
+ case 0x0129: return "GdiGetSpoolMessage";
+ case 0x012a: return "GdiGradientFill";
+ case 0x012b: return "GdiInitSpool";
+ case 0x012c: return "GdiInitializeLanguagePack";
+ case 0x012d: return "GdiIsMetaFileDC";
+ case 0x012e: return "GdiIsMetaPrintDC";
+ case 0x012f: return "GdiIsPlayMetafileDC";
+ case 0x0130: return "GdiPlayDCScript";
+ case 0x0131: return "GdiPlayEMF";
+ case 0x0132: return "GdiPlayJournal";
+ case 0x0133: return "GdiPlayPageEMF";
+ case 0x0134: return "GdiPlayPrivatePageEMF";
+ case 0x0135: return "GdiPlayScript";
+ case 0x0136: return "GdiPrinterThunk";
+ case 0x0137: return "GdiProcessSetup";
+ case 0x0138: return "GdiQueryFonts";
+ case 0x0139: return "GdiQueryTable";
+ case 0x013a: return "GdiRealizationInfo";
+ case 0x013b: return "GdiReleaseDC";
+ case 0x013c: return "GdiReleaseLocalDC";
+ case 0x013d: return "GdiResetDCEMF";
+ case 0x013e: return "GdiSetAttrs";
+ case 0x013f: return "GdiSetBatchLimit";
+ case 0x0140: return "GdiSetLastError";
+ case 0x0141: return "GdiSetPixelFormat";
+ case 0x0142: return "GdiSetServerAttr";
+ case 0x0143: return "GdiStartDocEMF";
+ case 0x0144: return "GdiStartPageEMF";
+ case 0x0145: return "GdiSwapBuffers";
+ case 0x0146: return "GdiTransparentBlt";
+ case 0x0147: return "GdiValidateHandle";
+ case 0x0148: return "GetArcDirection";
+ case 0x0149: return "GetAspectRatioFilterEx";
+ case 0x014a: return "GetBitmapAttributes";
+ case 0x014b: return "GetBitmapBits";
+ case 0x014c: return "GetBitmapDimensionEx";
+ case 0x014d: return "GetBkColor";
+ case 0x014e: return "GetBkMode";
+ case 0x014f: return "GetBoundsRect";
+ case 0x0150: return "GetBrushAttributes";
+ case 0x0151: return "GetBrushOrgEx";
+ case 0x0152: return "GetCharABCWidthsA";
+ case 0x0153: return "GetCharABCWidthsFloatA";
+ case 0x0154: return "GetCharABCWidthsFloatW";
+ case 0x0155: return "GetCharABCWidthsI";
+ case 0x0156: return "GetCharABCWidthsW";
+ case 0x0157: return "GetCharWidth32A";
+ case 0x0158: return "GetCharWidth32W";
+ case 0x0159: return "GetCharWidthA";
+ case 0x015a: return "GetCharWidthFloatA";
+ case 0x015b: return "GetCharWidthFloatW";
+ case 0x015c: return "GetCharWidthI";
+ case 0x015d: return "GetCharWidthInfo";
+ case 0x015e: return "GetCharWidthW";
+ case 0x015f: return "GetCharacterPlacementA";
+ case 0x0160: return "GetCharacterPlacementW";
+ case 0x0161: return "GetClipBox";
+ case 0x0162: return "GetClipRgn";
+ case 0x0163: return "GetColorAdjustment";
+ case 0x0164: return "GetColorSpace";
+ case 0x0165: return "GetCurrentObject";
+ case 0x0166: return "GetCurrentPositionEx";
+ case 0x0167: return "GetDCBrushColor";
+ case 0x0168: return "GetDCOrgEx";
+ case 0x0169: return "GetDCPenColor";
+ case 0x016a: return "GetDIBColorTable";
+ case 0x016b: return "GetDIBits";
+ case 0x016c: return "GetDeviceCaps";
+ case 0x016d: return "GetDeviceGammaRamp";
+ case 0x016e: return "GetETM";
+ case 0x016f: return "GetEUDCTimeStamp";
+ case 0x0170: return "GetEUDCTimeStampExW";
+ case 0x0171: return "GetEnhMetaFileA";
+ case 0x0172: return "GetEnhMetaFileBits";
+ case 0x0173: return "GetEnhMetaFileDescriptionA";
+ case 0x0174: return "GetEnhMetaFileDescriptionW";
+ case 0x0175: return "GetEnhMetaFileHeader";
+ case 0x0176: return "GetEnhMetaFilePaletteEntries";
+ case 0x0177: return "GetEnhMetaFilePixelFormat";
+ case 0x0178: return "GetEnhMetaFileW";
+ case 0x0179: return "GetFontAssocStatus";
+ case 0x017a: return "GetFontData";
+ case 0x017b: return "GetFontLanguageInfo";
+ case 0x017c: return "GetFontResourceInfoW";
+ case 0x017d: return "GetFontUnicodeRanges";
+ case 0x017e: return "GetGlyphIndicesA";
+ case 0x017f: return "GetGlyphIndicesW";
+ case 0x0180: return "GetGlyphOutline";
+ case 0x0181: return "GetGlyphOutlineA";
+ case 0x0182: return "GetGlyphOutlineW";
+ case 0x0183: return "GetGlyphOutlineWow";
+ case 0x0184: return "GetGraphicsMode";
+ case 0x0185: return "GetHFONT";
+ case 0x0186: return "GetICMProfileA";
+ case 0x0187: return "GetICMProfileW";
+ case 0x0188: return "GetKerningPairs";
+ case 0x0189: return "GetKerningPairsA";
+ case 0x018a: return "GetKerningPairsW";
+ case 0x018b: return "GetLayout";
+ case 0x018c: return "GetLogColorSpaceA";
+ case 0x018d: return "GetLogColorSpaceW";
+ case 0x018e: return "GetMapMode";
+ case 0x018f: return "GetMetaFileA";
+ case 0x0190: return "GetMetaFileBitsEx";
+ case 0x0191: return "GetMetaFileW";
+ case 0x0192: return "GetMetaRgn";
+ case 0x0193: return "GetMiterLimit";
+ case 0x0194: return "GetNearestColor";
+ case 0x0195: return "GetNearestPaletteIndex";
+ case 0x0196: return "GetObjectA";
+ case 0x0197: return "GetObjectType";
+ case 0x0198: return "GetObjectW";
+ case 0x0199: return "GetOutlineTextMetricsA";
+ case 0x019a: return "GetOutlineTextMetricsW";
+ case 0x019b: return "GetPaletteEntries";
+ case 0x019c: return "GetPath";
+ case 0x019d: return "GetPixel";
+ case 0x019e: return "GetPixelFormat";
+ case 0x019f: return "GetPolyFillMode";
+ case 0x01a0: return "GetROP2";
+ case 0x01a1: return "GetRandomRgn";
+ case 0x01a2: return "GetRasterizerCaps";
+ case 0x01a3: return "GetRegionData";
+ case 0x01a4: return "GetRelAbs";
+ case 0x01a5: return "GetRgnBox";
+ case 0x01a6: return "GetStockObject";
+ case 0x01a7: return "GetStretchBltMode";
+ case 0x01a8: return "GetStringBitmapA";
+ case 0x01a9: return "GetStringBitmapW";
+ case 0x01aa: return "GetSystemPaletteEntries";
+ case 0x01ab: return "GetSystemPaletteUse";
+ case 0x01ac: return "GetTextAlign";
+ case 0x01ad: return "GetTextCharacterExtra";
+ case 0x01ae: return "GetTextCharset";
+ case 0x01af: return "GetTextCharsetInfo";
+ case 0x01b0: return "GetTextColor";
+ case 0x01b1: return "GetTextExtentExPointA";
+ case 0x01b2: return "GetTextExtentExPointI";
+ case 0x01b3: return "GetTextExtentExPointW";
+ case 0x01b4: return "GetTextExtentExPointWPri";
+ case 0x01b5: return "GetTextExtentPoint32A";
+ case 0x01b6: return "GetTextExtentPoint32W";
+ case 0x01b7: return "GetTextExtentPointA";
+ case 0x01b8: return "GetTextExtentPointI";
+ case 0x01b9: return "GetTextExtentPointW";
+ case 0x01ba: return "GetTextFaceA";
+ case 0x01bb: return "GetTextFaceAliasW";
+ case 0x01bc: return "GetTextFaceW";
+ case 0x01bd: return "GetTextMetricsA";
+ case 0x01be: return "GetTextMetricsW";
+ case 0x01bf: return "GetTransform";
+ case 0x01c0: return "GetViewportExtEx";
+ case 0x01c1: return "GetViewportOrgEx";
+ case 0x01c2: return "GetWinMetaFileBits";
+ case 0x01c3: return "GetWindowExtEx";
+ case 0x01c4: return "GetWindowOrgEx";
+ case 0x01c5: return "GetWorldTransform";
+ case 0x01c6: return "HT_Get8BPPFormatPalette";
+ case 0x01c7: return "HT_Get8BPPMaskPalette";
+ case 0x01c8: return "IntersectClipRect";
+ case 0x01c9: return "InvertRgn";
+ case 0x01ca: return "IsValidEnhMetaRecord";
+ case 0x01cb: return "IsValidEnhMetaRecordOffExt";
+ case 0x01cc: return "LPtoDP";
+ case 0x01cd: return "LineDDA";
+ case 0x01ce: return "LineTo";
+ case 0x01cf: return "MaskBlt";
+ case 0x01d0: return "MirrorRgn";
+ case 0x01d1: return "ModifyWorldTransform";
+ case 0x01d2: return "MoveToEx";
+ case 0x01d3: return "NamedEscape";
+ case 0x01d4: return "OffsetClipRgn";
+ case 0x01d5: return "OffsetRgn";
+ case 0x01d6: return "OffsetViewportOrgEx";
+ case 0x01d7: return "OffsetWindowOrgEx";
+ case 0x01d8: return "PATHOBJ_bEnum";
+ case 0x01d9: return "PATHOBJ_bEnumClipLines";
+ case 0x01da: return "PATHOBJ_vEnumStart";
+ case 0x01db: return "PATHOBJ_vEnumStartClipLines";
+ case 0x01dc: return "PATHOBJ_vGetBounds";
+ case 0x01dd: return "PaintRgn";
+ case 0x01de: return "PatBlt";
+ case 0x01df: return "PathToRegion";
+ case 0x01e0: return "Pie";
+ case 0x01e1: return "PlayEnhMetaFile";
+ case 0x01e2: return "PlayEnhMetaFileRecord";
+ case 0x01e3: return "PlayMetaFile";
+ case 0x01e4: return "PlayMetaFileRecord";
+ case 0x01e5: return "PlgBlt";
+ case 0x01e6: return "PolyBezier";
+ case 0x01e7: return "PolyBezierTo";
+ case 0x01e8: return "PolyDraw";
+ case 0x01e9: return "PolyPatBlt";
+ case 0x01ea: return "PolyPolygon";
+ case 0x01eb: return "PolyPolyline";
+ case 0x01ec: return "PolyTextOutA";
+ case 0x01ed: return "PolyTextOutW";
+ case 0x01ee: return "Polygon";
+ case 0x01ef: return "Polyline";
+ case 0x01f0: return "PolylineTo";
+ case 0x01f1: return "PtInRegion";
+ case 0x01f2: return "PtVisible";
+ case 0x01f3: return "QueryFontAssocStatus";
+ case 0x01f4: return "RealizePalette";
+ case 0x01f5: return "RectInRegion";
+ case 0x01f6: return "RectVisible";
+ case 0x01f7: return "Rectangle";
+ case 0x01f8: return "RemoveFontMemResourceEx";
+ case 0x01f9: return "RemoveFontResourceA";
+ case 0x01fa: return "RemoveFontResourceExA";
+ case 0x01fb: return "RemoveFontResourceExW";
+ case 0x01fc: return "RemoveFontResourceTracking";
+ case 0x01fd: return "RemoveFontResourceW";
+ case 0x01fe: return "ResetDCA";
+ case 0x01ff: return "ResetDCW";
+ case 0x0200: return "ResizePalette";
+ case 0x0201: return "RestoreDC";
+ case 0x0202: return "RoundRect";
+ case 0x0203: return "STROBJ_bEnum";
+ case 0x0204: return "STROBJ_bEnumPositionsOnly";
+ case 0x0205: return "STROBJ_bGetAdvanceWidths";
+ case 0x0206: return "STROBJ_dwGetCodePage";
+ case 0x0207: return "STROBJ_vEnumStart";
+ case 0x0208: return "SaveDC";
+ case 0x0209: return "ScaleViewportExtEx";
+ case 0x020a: return "ScaleWindowExtEx";
+ case 0x020b: return "SelectBrushLocal";
+ case 0x020c: return "SelectClipPath";
+ case 0x020d: return "SelectClipRgn";
+ case 0x020e: return "SelectFontLocal";
+ case 0x020f: return "SelectObject";
+ case 0x0210: return "SelectPalette";
+ case 0x0211: return "SetAbortProc";
+ case 0x0212: return "SetArcDirection";
+ case 0x0213: return "SetBitmapAttributes";
+ case 0x0214: return "SetBitmapBits";
+ case 0x0215: return "SetBitmapDimensionEx";
+ case 0x0216: return "SetBkColor";
+ case 0x0217: return "SetBkMode";
+ case 0x0218: return "SetBoundsRect";
+ case 0x0219: return "SetBrushAttributes";
+ case 0x021a: return "SetBrushOrgEx";
+ case 0x021b: return "SetColorAdjustment";
+ case 0x021c: return "SetColorSpace";
+ case 0x021d: return "SetDCBrushColor";
+ case 0x021e: return "SetDCPenColor";
+ case 0x021f: return "SetDIBColorTable";
+ case 0x0220: return "SetDIBits";
+ case 0x0221: return "SetDIBitsToDevice";
+ case 0x0222: return "SetDeviceGammaRamp";
+ case 0x0223: return "SetEnhMetaFileBits";
+ case 0x0224: return "SetFontEnumeration";
+ case 0x0225: return "SetGraphicsMode";
+ case 0x0226: return "SetICMMode";
+ case 0x0227: return "SetICMProfileA";
+ case 0x0228: return "SetICMProfileW";
+ case 0x0229: return "SetLayout";
+ case 0x022a: return "SetLayoutWidth";
+ case 0x022b: return "SetMagicColors";
+ case 0x022c: return "SetMapMode";
+ case 0x022d: return "SetMapperFlags";
+ case 0x022e: return "SetMetaFileBitsEx";
+ case 0x022f: return "SetMetaRgn";
+ case 0x0230: return "SetMiterLimit";
+ case 0x0231: return "SetPaletteEntries";
+ case 0x0232: return "SetPixel";
+ case 0x0233: return "SetPixelFormat";
+ case 0x0234: return "SetPixelV";
+ case 0x0235: return "SetPolyFillMode";
+ case 0x0236: return "SetROP2";
+ case 0x0237: return "SetRectRgn";
+ case 0x0238: return "SetRelAbs";
+ case 0x0239: return "SetStretchBltMode";
+ case 0x023a: return "SetSystemPaletteUse";
+ case 0x023b: return "SetTextAlign";
+ case 0x023c: return "SetTextCharacterExtra";
+ case 0x023d: return "SetTextColor";
+ case 0x023e: return "SetTextJustification";
+ case 0x023f: return "SetViewportExtEx";
+ case 0x0240: return "SetViewportOrgEx";
+ case 0x0241: return "SetVirtualResolution";
+ case 0x0242: return "SetWinMetaFileBits";
+ case 0x0243: return "SetWindowExtEx";
+ case 0x0244: return "SetWindowOrgEx";
+ case 0x0245: return "SetWorldTransform";
+ case 0x0246: return "StartDocA";
+ case 0x0247: return "StartDocW";
+ case 0x0248: return "StartFormPage";
+ case 0x0249: return "StartPage";
+ case 0x024a: return "StretchBlt";
+ case 0x024b: return "StretchDIBits";
+ case 0x024c: return "StrokeAndFillPath";
+ case 0x024d: return "StrokePath";
+ case 0x024e: return "SwapBuffers";
+ case 0x024f: return "TextOutA";
+ case 0x0250: return "TextOutW";
+ case 0x0251: return "TranslateCharsetInfo";
+ case 0x0252: return "UnloadNetworkFonts";
+ case 0x0253: return "UnrealizeObject";
+ case 0x0254: return "UpdateColors";
+ case 0x0255: return "UpdateICMRegKeyA";
+ case 0x0256: return "UpdateICMRegKeyW";
+ case 0x0257: return "WidenPath";
+ case 0x0258: return "XFORMOBJ_bApplyXform";
+ case 0x0259: return "XFORMOBJ_iGetXform";
+ case 0x025a: return "XLATEOBJ_cGetPalette";
+ case 0x025b: return "XLATEOBJ_hGetColorTransform";
+ case 0x025c: return "XLATEOBJ_iXlate";
+ case 0x025d: return "XLATEOBJ_piVector";
+ case 0x025e: return "bInitSystemAndFontsDirectoriesW";
+ case 0x025f: return "bMakePathNameW";
+ case 0x0260: return "cGetTTFFromFOT";
+ case 0x0261: return "gdiPlaySpoolStream";
}
return nullptr;
}
-}
}
-#endif
+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/kernel32_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/kernel32_dll_lookup.hpp
index e6020c43e03..b9a13208965 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/kernel32_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/kernel32_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,967 +17,966 @@
#define LIEF_PE_KERNEL32_DLL_LOOKUP_H
#include <cstdint>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
inline const char* kernel32_dll_lookup(uint32_t i) {
- switch(i) {
- case 0x0001: return "ActivateActCtx";
- case 0x0002: return "AddAtomA";
- case 0x0003: return "AddAtomW";
- case 0x0004: return "AddConsoleAliasA";
- case 0x0005: return "AddConsoleAliasW";
- case 0x0006: return "AddLocalAlternateComputerNameA";
- case 0x0007: return "AddLocalAlternateComputerNameW";
- case 0x0008: return "AddRefActCtx";
- case 0x0009: return "AddVectoredExceptionHandler";
- case 0x000a: return "AllocConsole";
- case 0x000b: return "AllocateUserPhysicalPages";
- case 0x000c: return "AreFileApisANSI";
- case 0x000d: return "AssignProcessToJobObject";
- case 0x000e: return "AttachConsole";
- case 0x000f: return "BackupRead";
- case 0x0010: return "BackupSeek";
- case 0x0011: return "BackupWrite";
- case 0x0012: return "BaseCheckAppcompatCache";
- case 0x0013: return "BaseCleanupAppcompatCache";
- case 0x0014: return "BaseCleanupAppcompatCacheSupport";
- case 0x0015: return "BaseDumpAppcompatCache";
- case 0x0016: return "BaseFlushAppcompatCache";
- case 0x0017: return "BaseInitAppcompatCache";
- case 0x0018: return "BaseInitAppcompatCacheSupport";
- case 0x0019: return "BaseProcessInitPostImport";
- case 0x001a: return "BaseQueryModuleData";
- case 0x001b: return "BaseUpdateAppcompatCache";
- case 0x001c: return "BasepCheckWinSaferRestrictions";
- case 0x001d: return "Beep";
- case 0x001e: return "BeginUpdateResourceA";
- case 0x001f: return "BeginUpdateResourceW";
- case 0x0020: return "BindIoCompletionCallback";
- case 0x0021: return "BuildCommDCBA";
- case 0x0022: return "BuildCommDCBAndTimeoutsA";
- case 0x0023: return "BuildCommDCBAndTimeoutsW";
- case 0x0024: return "BuildCommDCBW";
- case 0x0025: return "CallNamedPipeA";
- case 0x0026: return "CallNamedPipeW";
- case 0x0027: return "CancelDeviceWakeupRequest";
- case 0x0028: return "CancelIo";
- case 0x0029: return "CancelTimerQueueTimer";
- case 0x002a: return "CancelWaitableTimer";
- case 0x002b: return "ChangeTimerQueueTimer";
- case 0x002c: return "CheckNameLegalDOS8Dot3A";
- case 0x002d: return "CheckNameLegalDOS8Dot3W";
- case 0x002e: return "CheckRemoteDebuggerPresent";
- case 0x002f: return "ClearCommBreak";
- case 0x0030: return "ClearCommError";
- case 0x0031: return "CloseConsoleHandle";
- case 0x0032: return "CloseHandle";
- case 0x0033: return "CloseProfileUserMapping";
- case 0x0034: return "CmdBatNotification";
- case 0x0035: return "CommConfigDialogA";
- case 0x0036: return "CommConfigDialogW";
- case 0x0037: return "CompareFileTime";
- case 0x0038: return "CompareStringA";
- case 0x0039: return "CompareStringW";
- case 0x003a: return "ConnectNamedPipe";
- case 0x003b: return "ConsoleMenuControl";
- case 0x003c: return "ContinueDebugEvent";
- case 0x003d: return "ConvertDefaultLocale";
- case 0x003e: return "ConvertFiberToThread";
- case 0x003f: return "ConvertThreadToFiber";
- case 0x0040: return "CopyFileA";
- case 0x0041: return "CopyFileExA";
- case 0x0042: return "CopyFileExW";
- case 0x0043: return "CopyFileW";
- case 0x0044: return "CopyLZFile";
- case 0x0045: return "CreateActCtxA";
- case 0x0046: return "CreateActCtxW";
- case 0x0047: return "CreateConsoleScreenBuffer";
- case 0x0048: return "CreateDirectoryA";
- case 0x0049: return "CreateDirectoryExA";
- case 0x004a: return "CreateDirectoryExW";
- case 0x004b: return "CreateDirectoryW";
- case 0x004c: return "CreateEventA";
- case 0x004d: return "CreateEventW";
- case 0x004e: return "CreateFiber";
- case 0x004f: return "CreateFiberEx";
- case 0x0050: return "CreateFileA";
- case 0x0051: return "CreateFileMappingA";
- case 0x0052: return "CreateFileMappingW";
- case 0x0053: return "CreateFileW";
- case 0x0054: return "CreateHardLinkA";
- case 0x0055: return "CreateHardLinkW";
- case 0x0056: return "CreateIoCompletionPort";
- case 0x0057: return "CreateJobObjectA";
- case 0x0058: return "CreateJobObjectW";
- case 0x0059: return "CreateJobSet";
- case 0x005a: return "CreateMailslotA";
- case 0x005b: return "CreateMailslotW";
- case 0x005c: return "CreateMemoryResourceNotification";
- case 0x005d: return "CreateMutexA";
- case 0x005e: return "CreateMutexW";
- case 0x005f: return "CreateNamedPipeA";
- case 0x0060: return "CreateNamedPipeW";
- case 0x0061: return "CreateNlsSecurityDescriptor";
- case 0x0062: return "CreatePipe";
- case 0x0063: return "CreateProcessA";
- case 0x0064: return "CreateProcessInternalA";
- case 0x0065: return "CreateProcessInternalW";
- case 0x0066: return "CreateProcessInternalWSecure";
- case 0x0067: return "CreateProcessW";
- case 0x0068: return "CreateRemoteThread";
- case 0x0069: return "CreateSemaphoreA";
- case 0x006a: return "CreateSemaphoreW";
- case 0x006b: return "CreateSocketHandle";
- case 0x006c: return "CreateTapePartition";
- case 0x006d: return "CreateThread";
- case 0x006e: return "CreateTimerQueue";
- case 0x006f: return "CreateTimerQueueTimer";
- case 0x0070: return "CreateToolhelp32Snapshot";
- case 0x0071: return "CreateVirtualBuffer";
- case 0x0072: return "CreateWaitableTimerA";
- case 0x0073: return "CreateWaitableTimerW";
- case 0x0074: return "DeactivateActCtx";
- case 0x0075: return "DebugActiveProcess";
- case 0x0076: return "DebugActiveProcessStop";
- case 0x0077: return "DebugBreak";
- case 0x0078: return "DebugBreakProcess";
- case 0x0079: return "DebugSetProcessKillOnExit";
- case 0x007a: return "DecodePointer";
- case 0x007b: return "DecodeSystemPointer";
- case 0x007c: return "DefineDosDeviceA";
- case 0x007d: return "DefineDosDeviceW";
- case 0x007e: return "DelayLoadFailureHook";
- case 0x007f: return "DeleteAtom";
- case 0x0080: return "DeleteCriticalSection";
- case 0x0081: return "DeleteFiber";
- case 0x0082: return "DeleteFileA";
- case 0x0083: return "DeleteFileW";
- case 0x0084: return "DeleteTimerQueue";
- case 0x0085: return "DeleteTimerQueueEx";
- case 0x0086: return "DeleteTimerQueueTimer";
- case 0x0087: return "DeleteVolumeMountPointA";
- case 0x0088: return "DeleteVolumeMountPointW";
- case 0x0089: return "DeviceIoControl";
- case 0x008a: return "DisableThreadLibraryCalls";
- case 0x008b: return "DisconnectNamedPipe";
- case 0x008c: return "DnsHostnameToComputerNameA";
- case 0x008d: return "DnsHostnameToComputerNameW";
- case 0x008e: return "DosDateTimeToFileTime";
- case 0x008f: return "DosPathToSessionPathA";
- case 0x0090: return "DosPathToSessionPathW";
- case 0x0091: return "DuplicateConsoleHandle";
- case 0x0092: return "DuplicateHandle";
- case 0x0093: return "EncodePointer";
- case 0x0094: return "EncodeSystemPointer";
- case 0x0095: return "EndUpdateResourceA";
- case 0x0096: return "EndUpdateResourceW";
- case 0x0097: return "EnterCriticalSection";
- case 0x0098: return "EnumCalendarInfoA";
- case 0x0099: return "EnumCalendarInfoExA";
- case 0x009a: return "EnumCalendarInfoExW";
- case 0x009b: return "EnumCalendarInfoW";
- case 0x009c: return "EnumDateFormatsA";
- case 0x009d: return "EnumDateFormatsExA";
- case 0x009e: return "EnumDateFormatsExW";
- case 0x009f: return "EnumDateFormatsW";
- case 0x00a0: return "EnumLanguageGroupLocalesA";
- case 0x00a1: return "EnumLanguageGroupLocalesW";
- case 0x00a2: return "EnumResourceLanguagesA";
- case 0x00a3: return "EnumResourceLanguagesW";
- case 0x00a4: return "EnumResourceNamesA";
- case 0x00a5: return "EnumResourceNamesW";
- case 0x00a6: return "EnumResourceTypesA";
- case 0x00a7: return "EnumResourceTypesW";
- case 0x00a8: return "EnumSystemCodePagesA";
- case 0x00a9: return "EnumSystemCodePagesW";
- case 0x00aa: return "EnumSystemGeoID";
- case 0x00ab: return "EnumSystemLanguageGroupsA";
- case 0x00ac: return "EnumSystemLanguageGroupsW";
- case 0x00ad: return "EnumSystemLocalesA";
- case 0x00ae: return "EnumSystemLocalesW";
- case 0x00af: return "EnumTimeFormatsA";
- case 0x00b0: return "EnumTimeFormatsW";
- case 0x00b1: return "EnumUILanguagesA";
- case 0x00b2: return "EnumUILanguagesW";
- case 0x00b3: return "EnumerateLocalComputerNamesA";
- case 0x00b4: return "EnumerateLocalComputerNamesW";
- case 0x00b5: return "EraseTape";
- case 0x00b6: return "EscapeCommFunction";
- case 0x00b7: return "ExitProcess";
- case 0x00b8: return "ExitThread";
- case 0x00b9: return "ExitVDM";
- case 0x00ba: return "ExpandEnvironmentStringsA";
- case 0x00bb: return "ExpandEnvironmentStringsW";
- case 0x00bc: return "ExpungeConsoleCommandHistoryA";
- case 0x00bd: return "ExpungeConsoleCommandHistoryW";
- case 0x00be: return "ExtendVirtualBuffer";
- case 0x00bf: return "FatalAppExitA";
- case 0x00c0: return "FatalAppExitW";
- case 0x00c1: return "FatalExit";
- case 0x00c2: return "FileTimeToDosDateTime";
- case 0x00c3: return "FileTimeToLocalFileTime";
- case 0x00c4: return "FileTimeToSystemTime";
- case 0x00c5: return "FillConsoleOutputAttribute";
- case 0x00c6: return "FillConsoleOutputCharacterA";
- case 0x00c7: return "FillConsoleOutputCharacterW";
- case 0x00c8: return "FindActCtxSectionGuid";
- case 0x00c9: return "FindActCtxSectionStringA";
- case 0x00ca: return "FindActCtxSectionStringW";
- case 0x00cb: return "FindAtomA";
- case 0x00cc: return "FindAtomW";
- case 0x00cd: return "FindClose";
- case 0x00ce: return "FindCloseChangeNotification";
- case 0x00cf: return "FindFirstChangeNotificationA";
- case 0x00d0: return "FindFirstChangeNotificationW";
- case 0x00d1: return "FindFirstFileA";
- case 0x00d2: return "FindFirstFileExA";
- case 0x00d3: return "FindFirstFileExW";
- case 0x00d4: return "FindFirstFileW";
- case 0x00d5: return "FindFirstVolumeA";
- case 0x00d6: return "FindFirstVolumeMountPointA";
- case 0x00d7: return "FindFirstVolumeMountPointW";
- case 0x00d8: return "FindFirstVolumeW";
- case 0x00d9: return "FindNextChangeNotification";
- case 0x00da: return "FindNextFileA";
- case 0x00db: return "FindNextFileW";
- case 0x00dc: return "FindNextVolumeA";
- case 0x00dd: return "FindNextVolumeMountPointA";
- case 0x00de: return "FindNextVolumeMountPointW";
- case 0x00df: return "FindNextVolumeW";
- case 0x00e0: return "FindResourceA";
- case 0x00e1: return "FindResourceExA";
- case 0x00e2: return "FindResourceExW";
- case 0x00e3: return "FindResourceW";
- case 0x00e4: return "FindVolumeClose";
- case 0x00e5: return "FindVolumeMountPointClose";
- case 0x00e6: return "FlushConsoleInputBuffer";
- case 0x00e7: return "FlushFileBuffers";
- case 0x00e8: return "FlushInstructionCache";
- case 0x00e9: return "FlushViewOfFile";
- case 0x00ea: return "FoldStringA";
- case 0x00eb: return "FoldStringW";
- case 0x00ec: return "FormatMessageA";
- case 0x00ed: return "FormatMessageW";
- case 0x00ee: return "FreeConsole";
- case 0x00ef: return "FreeEnvironmentStringsA";
- case 0x00f0: return "FreeEnvironmentStringsW";
- case 0x00f1: return "FreeLibrary";
- case 0x00f2: return "FreeLibraryAndExitThread";
- case 0x00f3: return "FreeResource";
- case 0x00f4: return "FreeUserPhysicalPages";
- case 0x00f5: return "FreeVirtualBuffer";
- case 0x00f6: return "GenerateConsoleCtrlEvent";
- case 0x00f7: return "GetACP";
- case 0x00f8: return "GetAtomNameA";
- case 0x00f9: return "GetAtomNameW";
- case 0x00fa: return "GetBinaryType";
- case 0x00fb: return "GetBinaryTypeA";
- case 0x00fc: return "GetBinaryTypeW";
- case 0x00fd: return "GetCPFileNameFromRegistry";
- case 0x00fe: return "GetCPInfo";
- case 0x00ff: return "GetCPInfoExA";
- case 0x0100: return "GetCPInfoExW";
- case 0x0101: return "GetCalendarInfoA";
- case 0x0102: return "GetCalendarInfoW";
- case 0x0103: return "GetComPlusPackageInstallStatus";
- case 0x0104: return "GetCommConfig";
- case 0x0105: return "GetCommMask";
- case 0x0106: return "GetCommModemStatus";
- case 0x0107: return "GetCommProperties";
- case 0x0108: return "GetCommState";
- case 0x0109: return "GetCommTimeouts";
- case 0x010a: return "GetCommandLineA";
- case 0x010b: return "GetCommandLineW";
- case 0x010c: return "GetCompressedFileSizeA";
- case 0x010d: return "GetCompressedFileSizeW";
- case 0x010e: return "GetComputerNameA";
- case 0x010f: return "GetComputerNameExA";
- case 0x0110: return "GetComputerNameExW";
- case 0x0111: return "GetComputerNameW";
- case 0x0112: return "GetConsoleAliasA";
- case 0x0113: return "GetConsoleAliasExesA";
- case 0x0114: return "GetConsoleAliasExesLengthA";
- case 0x0115: return "GetConsoleAliasExesLengthW";
- case 0x0116: return "GetConsoleAliasExesW";
- case 0x0117: return "GetConsoleAliasW";
- case 0x0118: return "GetConsoleAliasesA";
- case 0x0119: return "GetConsoleAliasesLengthA";
- case 0x011a: return "GetConsoleAliasesLengthW";
- case 0x011b: return "GetConsoleAliasesW";
- case 0x011c: return "GetConsoleCP";
- case 0x011d: return "GetConsoleCharType";
- case 0x011e: return "GetConsoleCommandHistoryA";
- case 0x011f: return "GetConsoleCommandHistoryLengthA";
- case 0x0120: return "GetConsoleCommandHistoryLengthW";
- case 0x0121: return "GetConsoleCommandHistoryW";
- case 0x0122: return "GetConsoleCursorInfo";
- case 0x0123: return "GetConsoleCursorMode";
- case 0x0124: return "GetConsoleDisplayMode";
- case 0x0125: return "GetConsoleFontInfo";
- case 0x0126: return "GetConsoleFontSize";
- case 0x0127: return "GetConsoleHardwareState";
- case 0x0128: return "GetConsoleInputExeNameA";
- case 0x0129: return "GetConsoleInputExeNameW";
- case 0x012a: return "GetConsoleInputWaitHandle";
- case 0x012b: return "GetConsoleKeyboardLayoutNameA";
- case 0x012c: return "GetConsoleKeyboardLayoutNameW";
- case 0x012d: return "GetConsoleMode";
- case 0x012e: return "GetConsoleNlsMode";
- case 0x012f: return "GetConsoleOutputCP";
- case 0x0130: return "GetConsoleProcessList";
- case 0x0131: return "GetConsoleScreenBufferInfo";
- case 0x0132: return "GetConsoleSelectionInfo";
- case 0x0133: return "GetConsoleTitleA";
- case 0x0134: return "GetConsoleTitleW";
- case 0x0135: return "GetConsoleWindow";
- case 0x0136: return "GetCurrencyFormatA";
- case 0x0137: return "GetCurrencyFormatW";
- case 0x0138: return "GetCurrentActCtx";
- case 0x0139: return "GetCurrentConsoleFont";
- case 0x013a: return "GetCurrentDirectoryA";
- case 0x013b: return "GetCurrentDirectoryW";
- case 0x013c: return "GetCurrentProcess";
- case 0x013d: return "GetCurrentProcessId";
- case 0x013e: return "GetCurrentThread";
- case 0x013f: return "GetCurrentThreadId";
- case 0x0140: return "GetDateFormatA";
- case 0x0141: return "GetDateFormatW";
- case 0x0142: return "GetDefaultCommConfigA";
- case 0x0143: return "GetDefaultCommConfigW";
- case 0x0144: return "GetDefaultSortkeySize";
- case 0x0145: return "GetDevicePowerState";
- case 0x0146: return "GetDiskFreeSpaceA";
- case 0x0147: return "GetDiskFreeSpaceExA";
- case 0x0148: return "GetDiskFreeSpaceExW";
- case 0x0149: return "GetDiskFreeSpaceW";
- case 0x014a: return "GetDllDirectoryA";
- case 0x014b: return "GetDllDirectoryW";
- case 0x014c: return "GetDriveTypeA";
- case 0x014d: return "GetDriveTypeW";
- case 0x014e: return "GetEnvironmentStrings";
- case 0x014f: return "GetEnvironmentStringsA";
- case 0x0150: return "GetEnvironmentStringsW";
- case 0x0151: return "GetEnvironmentVariableA";
- case 0x0152: return "GetEnvironmentVariableW";
- case 0x0153: return "GetExitCodeProcess";
- case 0x0154: return "GetExitCodeThread";
- case 0x0155: return "GetExpandedNameA";
- case 0x0156: return "GetExpandedNameW";
- case 0x0157: return "GetFileAttributesA";
- case 0x0158: return "GetFileAttributesExA";
- case 0x0159: return "GetFileAttributesExW";
- case 0x015a: return "GetFileAttributesW";
- case 0x015b: return "GetFileInformationByHandle";
- case 0x015c: return "GetFileSize";
- case 0x015d: return "GetFileSizeEx";
- case 0x015e: return "GetFileTime";
- case 0x015f: return "GetFileType";
- case 0x0160: return "GetFirmwareEnvironmentVariableA";
- case 0x0161: return "GetFirmwareEnvironmentVariableW";
- case 0x0162: return "GetFullPathNameA";
- case 0x0163: return "GetFullPathNameW";
- case 0x0164: return "GetGeoInfoA";
- case 0x0165: return "GetGeoInfoW";
- case 0x0166: return "GetHandleContext";
- case 0x0167: return "GetHandleInformation";
- case 0x0168: return "GetLargestConsoleWindowSize";
- case 0x0169: return "GetLastError";
- case 0x016a: return "GetLinguistLangSize";
- case 0x016b: return "GetLocalTime";
- case 0x016c: return "GetLocaleInfoA";
- case 0x016d: return "GetLocaleInfoW";
- case 0x016e: return "GetLogicalDriveStringsA";
- case 0x016f: return "GetLogicalDriveStringsW";
- case 0x0170: return "GetLogicalDrives";
- case 0x0171: return "GetLongPathNameA";
- case 0x0172: return "GetLongPathNameW";
- case 0x0173: return "GetMailslotInfo";
- case 0x0174: return "GetModuleFileNameA";
- case 0x0175: return "GetModuleFileNameW";
- case 0x0176: return "GetModuleHandleA";
- case 0x0177: return "GetModuleHandleExA";
- case 0x0178: return "GetModuleHandleExW";
- case 0x0179: return "GetModuleHandleW";
- case 0x017a: return "GetNamedPipeHandleStateA";
- case 0x017b: return "GetNamedPipeHandleStateW";
- case 0x017c: return "GetNamedPipeInfo";
- case 0x017d: return "GetNativeSystemInfo";
- case 0x017e: return "GetNextVDMCommand";
- case 0x017f: return "GetNlsSectionName";
- case 0x0180: return "GetNumaAvailableMemory";
- case 0x0181: return "GetNumaAvailableMemoryNode";
- case 0x0182: return "GetNumaHighestNodeNumber";
- case 0x0183: return "GetNumaNodeProcessorMask";
- case 0x0184: return "GetNumaProcessorMap";
- case 0x0185: return "GetNumaProcessorNode";
- case 0x0186: return "GetNumberFormatA";
- case 0x0187: return "GetNumberFormatW";
- case 0x0188: return "GetNumberOfConsoleFonts";
- case 0x0189: return "GetNumberOfConsoleInputEvents";
- case 0x018a: return "GetNumberOfConsoleMouseButtons";
- case 0x018b: return "GetOEMCP";
- case 0x018c: return "GetOverlappedResult";
- case 0x018d: return "GetPriorityClass";
- case 0x018e: return "GetPrivateProfileIntA";
- case 0x018f: return "GetPrivateProfileIntW";
- case 0x0190: return "GetPrivateProfileSectionA";
- case 0x0191: return "GetPrivateProfileSectionNamesA";
- case 0x0192: return "GetPrivateProfileSectionNamesW";
- case 0x0193: return "GetPrivateProfileSectionW";
- case 0x0194: return "GetPrivateProfileStringA";
- case 0x0195: return "GetPrivateProfileStringW";
- case 0x0196: return "GetPrivateProfileStructA";
- case 0x0197: return "GetPrivateProfileStructW";
- case 0x0198: return "GetProcAddress";
- case 0x0199: return "GetProcessAffinityMask";
- case 0x019a: return "GetProcessHandleCount";
- case 0x019b: return "GetProcessHeap";
- case 0x019c: return "GetProcessHeaps";
- case 0x019d: return "GetProcessId";
- case 0x019e: return "GetProcessIoCounters";
- case 0x019f: return "GetProcessPriorityBoost";
- case 0x01a0: return "GetProcessShutdownParameters";
- case 0x01a1: return "GetProcessTimes";
- case 0x01a2: return "GetProcessVersion";
- case 0x01a3: return "GetProcessWorkingSetSize";
- case 0x01a4: return "GetProfileIntA";
- case 0x01a5: return "GetProfileIntW";
- case 0x01a6: return "GetProfileSectionA";
- case 0x01a7: return "GetProfileSectionW";
- case 0x01a8: return "GetProfileStringA";
- case 0x01a9: return "GetProfileStringW";
- case 0x01aa: return "GetQueuedCompletionStatus";
- case 0x01ab: return "GetShortPathNameA";
- case 0x01ac: return "GetShortPathNameW";
- case 0x01ad: return "GetStartupInfoA";
- case 0x01ae: return "GetStartupInfoW";
- case 0x01af: return "GetStdHandle";
- case 0x01b0: return "GetStringTypeA";
- case 0x01b1: return "GetStringTypeExA";
- case 0x01b2: return "GetStringTypeExW";
- case 0x01b3: return "GetStringTypeW";
- case 0x01b4: return "GetSystemDefaultLCID";
- case 0x01b5: return "GetSystemDefaultLangID";
- case 0x01b6: return "GetSystemDefaultUILanguage";
- case 0x01b7: return "GetSystemDirectoryA";
- case 0x01b8: return "GetSystemDirectoryW";
- case 0x01b9: return "GetSystemInfo";
- case 0x01ba: return "GetSystemPowerStatus";
- case 0x01bb: return "GetSystemRegistryQuota";
- case 0x01bc: return "GetSystemTime";
- case 0x01bd: return "GetSystemTimeAdjustment";
- case 0x01be: return "GetSystemTimeAsFileTime";
- case 0x01bf: return "GetSystemTimes";
- case 0x01c0: return "GetSystemWindowsDirectoryA";
- case 0x01c1: return "GetSystemWindowsDirectoryW";
- case 0x01c2: return "GetSystemWow64DirectoryA";
- case 0x01c3: return "GetSystemWow64DirectoryW";
- case 0x01c4: return "GetTapeParameters";
- case 0x01c5: return "GetTapePosition";
- case 0x01c6: return "GetTapeStatus";
- case 0x01c7: return "GetTempFileNameA";
- case 0x01c8: return "GetTempFileNameW";
- case 0x01c9: return "GetTempPathA";
- case 0x01ca: return "GetTempPathW";
- case 0x01cb: return "GetThreadContext";
- case 0x01cc: return "GetThreadIOPendingFlag";
- case 0x01cd: return "GetThreadLocale";
- case 0x01ce: return "GetThreadPriority";
- case 0x01cf: return "GetThreadPriorityBoost";
- case 0x01d0: return "GetThreadSelectorEntry";
- case 0x01d1: return "GetThreadTimes";
- case 0x01d2: return "GetTickCount";
- case 0x01d3: return "GetTimeFormatA";
- case 0x01d4: return "GetTimeFormatW";
- case 0x01d5: return "GetTimeZoneInformation";
- case 0x01d6: return "GetUserDefaultLCID";
- case 0x01d7: return "GetUserDefaultLangID";
- case 0x01d8: return "GetUserDefaultUILanguage";
- case 0x01d9: return "GetUserGeoID";
- case 0x01da: return "GetVDMCurrentDirectories";
- case 0x01db: return "GetVersion";
- case 0x01dc: return "GetVersionExA";
- case 0x01dd: return "GetVersionExW";
- case 0x01de: return "GetVolumeInformationA";
- case 0x01df: return "GetVolumeInformationW";
- case 0x01e0: return "GetVolumeNameForVolumeMountPointA";
- case 0x01e1: return "GetVolumeNameForVolumeMountPointW";
- case 0x01e2: return "GetVolumePathNameA";
- case 0x01e3: return "GetVolumePathNameW";
- case 0x01e4: return "GetVolumePathNamesForVolumeNameA";
- case 0x01e5: return "GetVolumePathNamesForVolumeNameW";
- case 0x01e6: return "GetWindowsDirectoryA";
- case 0x01e7: return "GetWindowsDirectoryW";
- case 0x01e8: return "GetWriteWatch";
- case 0x01e9: return "GlobalAddAtomA";
- case 0x01ea: return "GlobalAddAtomW";
- case 0x01eb: return "GlobalAlloc";
- case 0x01ec: return "GlobalCompact";
- case 0x01ed: return "GlobalDeleteAtom";
- case 0x01ee: return "GlobalFindAtomA";
- case 0x01ef: return "GlobalFindAtomW";
- case 0x01f0: return "GlobalFix";
- case 0x01f1: return "GlobalFlags";
- case 0x01f2: return "GlobalFree";
- case 0x01f3: return "GlobalGetAtomNameA";
- case 0x01f4: return "GlobalGetAtomNameW";
- case 0x01f5: return "GlobalHandle";
- case 0x01f6: return "GlobalLock";
- case 0x01f7: return "GlobalMemoryStatus";
- case 0x01f8: return "GlobalMemoryStatusEx";
- case 0x01f9: return "GlobalReAlloc";
- case 0x01fa: return "GlobalSize";
- case 0x01fb: return "GlobalUnWire";
- case 0x01fc: return "GlobalUnfix";
- case 0x01fd: return "GlobalUnlock";
- case 0x01fe: return "GlobalWire";
- case 0x01ff: return "Heap32First";
- case 0x0200: return "Heap32ListFirst";
- case 0x0201: return "Heap32ListNext";
- case 0x0202: return "Heap32Next";
- case 0x0203: return "HeapAlloc";
- case 0x0204: return "HeapCompact";
- case 0x0205: return "HeapCreate";
- case 0x0206: return "HeapCreateTagsW";
- case 0x0207: return "HeapDestroy";
- case 0x0208: return "HeapExtend";
- case 0x0209: return "HeapFree";
- case 0x020a: return "HeapLock";
- case 0x020b: return "HeapQueryInformation";
- case 0x020c: return "HeapQueryTagW";
- case 0x020d: return "HeapReAlloc";
- case 0x020e: return "HeapSetInformation";
- case 0x020f: return "HeapSize";
- case 0x0210: return "HeapSummary";
- case 0x0211: return "HeapUnlock";
- case 0x0212: return "HeapUsage";
- case 0x0213: return "HeapValidate";
- case 0x0214: return "HeapWalk";
- case 0x0215: return "InitAtomTable";
- case 0x0216: return "InitializeCriticalSection";
- case 0x0217: return "InitializeCriticalSectionAndSpinCount";
- case 0x0218: return "InitializeSListHead";
- case 0x0219: return "InterlockedCompareExchange";
- case 0x021a: return "InterlockedDecrement";
- case 0x021b: return "InterlockedExchange";
- case 0x021c: return "InterlockedExchangeAdd";
- case 0x021d: return "InterlockedFlushSList";
- case 0x021e: return "InterlockedIncrement";
- case 0x021f: return "InterlockedPopEntrySList";
- case 0x0220: return "InterlockedPushEntrySList";
- case 0x0221: return "InvalidateConsoleDIBits";
- case 0x0222: return "IsBadCodePtr";
- case 0x0223: return "IsBadHugeReadPtr";
- case 0x0224: return "IsBadHugeWritePtr";
- case 0x0225: return "IsBadReadPtr";
- case 0x0226: return "IsBadStringPtrA";
- case 0x0227: return "IsBadStringPtrW";
- case 0x0228: return "IsBadWritePtr";
- case 0x0229: return "IsDBCSLeadByte";
- case 0x022a: return "IsDBCSLeadByteEx";
- case 0x022b: return "IsDebuggerPresent";
- case 0x022c: return "IsProcessInJob";
- case 0x022d: return "IsProcessorFeaturePresent";
- case 0x022e: return "IsSystemResumeAutomatic";
- case 0x022f: return "IsValidCodePage";
- case 0x0230: return "IsValidLanguageGroup";
- case 0x0231: return "IsValidLocale";
- case 0x0232: return "IsValidUILanguage";
- case 0x0233: return "IsWow64Process";
- case 0x0234: return "LCMapStringA";
- case 0x0235: return "LCMapStringW";
- case 0x0236: return "LZClose";
- case 0x0237: return "LZCloseFile";
- case 0x0238: return "LZCopy";
- case 0x0239: return "LZCreateFileW";
- case 0x023a: return "LZDone";
- case 0x023b: return "LZInit";
- case 0x023c: return "LZOpenFileA";
- case 0x023d: return "LZOpenFileW";
- case 0x023e: return "LZRead";
- case 0x023f: return "LZSeek";
- case 0x0240: return "LZStart";
- case 0x0241: return "LeaveCriticalSection";
- case 0x0242: return "LoadLibraryA";
- case 0x0243: return "LoadLibraryExA";
- case 0x0244: return "LoadLibraryExW";
- case 0x0245: return "LoadLibraryW";
- case 0x0246: return "LoadModule";
- case 0x0247: return "LoadResource";
- case 0x0248: return "LocalAlloc";
- case 0x0249: return "LocalCompact";
- case 0x024a: return "LocalFileTimeToFileTime";
- case 0x024b: return "LocalFlags";
- case 0x024c: return "LocalFree";
- case 0x024d: return "LocalHandle";
- case 0x024e: return "LocalLock";
- case 0x024f: return "LocalReAlloc";
- case 0x0250: return "LocalShrink";
- case 0x0251: return "LocalSize";
- case 0x0252: return "LocalUnlock";
- case 0x0253: return "LockFile";
- case 0x0254: return "LockFileEx";
- case 0x0255: return "LockResource";
- case 0x0256: return "MapUserPhysicalPages";
- case 0x0257: return "MapUserPhysicalPagesScatter";
- case 0x0258: return "MapViewOfFile";
- case 0x0259: return "MapViewOfFileEx";
- case 0x025a: return "Module32First";
- case 0x025b: return "Module32FirstW";
- case 0x025c: return "Module32Next";
- case 0x025d: return "Module32NextW";
- case 0x025e: return "MoveFileA";
- case 0x025f: return "MoveFileExA";
- case 0x0260: return "MoveFileExW";
- case 0x0261: return "MoveFileW";
- case 0x0262: return "MoveFileWithProgressA";
- case 0x0263: return "MoveFileWithProgressW";
- case 0x0264: return "MulDiv";
- case 0x0265: return "MultiByteToWideChar";
- case 0x0266: return "NlsConvertIntegerToString";
- case 0x0267: return "NlsGetCacheUpdateCount";
- case 0x0268: return "NlsResetProcessLocale";
- case 0x0269: return "NumaVirtualQueryNode";
- case 0x026a: return "OpenConsoleW";
- case 0x026b: return "OpenDataFile";
- case 0x026c: return "OpenEventA";
- case 0x026d: return "OpenEventW";
- case 0x026e: return "OpenFile";
- case 0x026f: return "OpenFileMappingA";
- case 0x0270: return "OpenFileMappingW";
- case 0x0271: return "OpenJobObjectA";
- case 0x0272: return "OpenJobObjectW";
- case 0x0273: return "OpenMutexA";
- case 0x0274: return "OpenMutexW";
- case 0x0275: return "OpenProcess";
- case 0x0276: return "OpenProfileUserMapping";
- case 0x0277: return "OpenSemaphoreA";
- case 0x0278: return "OpenSemaphoreW";
- case 0x0279: return "OpenThread";
- case 0x027a: return "OpenWaitableTimerA";
- case 0x027b: return "OpenWaitableTimerW";
- case 0x027c: return "OutputDebugStringA";
- case 0x027d: return "OutputDebugStringW";
- case 0x027e: return "PeekConsoleInputA";
- case 0x027f: return "PeekConsoleInputW";
- case 0x0280: return "PeekNamedPipe";
- case 0x0281: return "PostQueuedCompletionStatus";
- case 0x0282: return "PrepareTape";
- case 0x0283: return "PrivCopyFileExW";
- case 0x0284: return "PrivMoveFileIdentityW";
- case 0x0285: return "Process32First";
- case 0x0286: return "Process32FirstW";
- case 0x0287: return "Process32Next";
- case 0x0288: return "Process32NextW";
- case 0x0289: return "ProcessIdToSessionId";
- case 0x028a: return "PulseEvent";
- case 0x028b: return "PurgeComm";
- case 0x028c: return "QueryActCtxW";
- case 0x028d: return "QueryDepthSList";
- case 0x028e: return "QueryDosDeviceA";
- case 0x028f: return "QueryDosDeviceW";
- case 0x0290: return "QueryInformationJobObject";
- case 0x0291: return "QueryMemoryResourceNotification";
- case 0x0292: return "QueryPerformanceCounter";
- case 0x0293: return "QueryPerformanceFrequency";
- case 0x0294: return "QueryWin31IniFilesMappedToRegistry";
- case 0x0295: return "QueueUserAPC";
- case 0x0296: return "QueueUserWorkItem";
- case 0x0297: return "RaiseException";
- case 0x0298: return "ReadConsoleA";
- case 0x0299: return "ReadConsoleInputA";
- case 0x029a: return "ReadConsoleInputExA";
- case 0x029b: return "ReadConsoleInputExW";
- case 0x029c: return "ReadConsoleInputW";
- case 0x029d: return "ReadConsoleOutputA";
- case 0x029e: return "ReadConsoleOutputAttribute";
- case 0x029f: return "ReadConsoleOutputCharacterA";
- case 0x02a0: return "ReadConsoleOutputCharacterW";
- case 0x02a1: return "ReadConsoleOutputW";
- case 0x02a2: return "ReadConsoleW";
- case 0x02a3: return "ReadDirectoryChangesW";
- case 0x02a4: return "ReadFile";
- case 0x02a5: return "ReadFileEx";
- case 0x02a6: return "ReadFileScatter";
- case 0x02a7: return "ReadProcessMemory";
- case 0x02a8: return "RegisterConsoleIME";
- case 0x02a9: return "RegisterConsoleOS2";
- case 0x02aa: return "RegisterConsoleVDM";
- case 0x02ab: return "RegisterWaitForInputIdle";
- case 0x02ac: return "RegisterWaitForSingleObject";
- case 0x02ad: return "RegisterWaitForSingleObjectEx";
- case 0x02ae: return "RegisterWowBaseHandlers";
- case 0x02af: return "RegisterWowExec";
- case 0x02b0: return "ReleaseActCtx";
- case 0x02b1: return "ReleaseMutex";
- case 0x02b2: return "ReleaseSemaphore";
- case 0x02b3: return "RemoveDirectoryA";
- case 0x02b4: return "RemoveDirectoryW";
- case 0x02b5: return "RemoveLocalAlternateComputerNameA";
- case 0x02b6: return "RemoveLocalAlternateComputerNameW";
- case 0x02b7: return "RemoveVectoredExceptionHandler";
- case 0x02b8: return "ReplaceFile";
- case 0x02b9: return "ReplaceFileA";
- case 0x02ba: return "ReplaceFileW";
- case 0x02bb: return "RequestDeviceWakeup";
- case 0x02bc: return "RequestWakeupLatency";
- case 0x02bd: return "ResetEvent";
- case 0x02be: return "ResetWriteWatch";
- case 0x02bf: return "RestoreLastError";
- case 0x02c0: return "ResumeThread";
- case 0x02c1: return "RtlCaptureContext";
- case 0x02c2: return "RtlCaptureStackBackTrace";
- case 0x02c3: return "RtlFillMemory";
- case 0x02c4: return "RtlMoveMemory";
- case 0x02c5: return "RtlUnwind";
- case 0x02c6: return "RtlZeroMemory";
- case 0x02c7: return "ScrollConsoleScreenBufferA";
- case 0x02c8: return "ScrollConsoleScreenBufferW";
- case 0x02c9: return "SearchPathA";
- case 0x02ca: return "SearchPathW";
- case 0x02cb: return "SetCPGlobal";
- case 0x02cc: return "SetCalendarInfoA";
- case 0x02cd: return "SetCalendarInfoW";
- case 0x02ce: return "SetClientTimeZoneInformation";
- case 0x02cf: return "SetComPlusPackageInstallStatus";
- case 0x02d0: return "SetCommBreak";
- case 0x02d1: return "SetCommConfig";
- case 0x02d2: return "SetCommMask";
- case 0x02d3: return "SetCommState";
- case 0x02d4: return "SetCommTimeouts";
- case 0x02d5: return "SetComputerNameA";
- case 0x02d6: return "SetComputerNameExA";
- case 0x02d7: return "SetComputerNameExW";
- case 0x02d8: return "SetComputerNameW";
- case 0x02d9: return "SetConsoleActiveScreenBuffer";
- case 0x02da: return "SetConsoleCP";
- case 0x02db: return "SetConsoleCommandHistoryMode";
- case 0x02dc: return "SetConsoleCtrlHandler";
- case 0x02dd: return "SetConsoleCursor";
- case 0x02de: return "SetConsoleCursorInfo";
- case 0x02df: return "SetConsoleCursorMode";
- case 0x02e0: return "SetConsoleCursorPosition";
- case 0x02e1: return "SetConsoleDisplayMode";
- case 0x02e2: return "SetConsoleFont";
- case 0x02e3: return "SetConsoleHardwareState";
- case 0x02e4: return "SetConsoleIcon";
- case 0x02e5: return "SetConsoleInputExeNameA";
- case 0x02e6: return "SetConsoleInputExeNameW";
- case 0x02e7: return "SetConsoleKeyShortcuts";
- case 0x02e8: return "SetConsoleLocalEUDC";
- case 0x02e9: return "SetConsoleMaximumWindowSize";
- case 0x02ea: return "SetConsoleMenuClose";
- case 0x02eb: return "SetConsoleMode";
- case 0x02ec: return "SetConsoleNlsMode";
- case 0x02ed: return "SetConsoleNumberOfCommandsA";
- case 0x02ee: return "SetConsoleNumberOfCommandsW";
- case 0x02ef: return "SetConsoleOS2OemFormat";
- case 0x02f0: return "SetConsoleOutputCP";
- case 0x02f1: return "SetConsolePalette";
- case 0x02f2: return "SetConsoleScreenBufferSize";
- case 0x02f3: return "SetConsoleTextAttribute";
- case 0x02f4: return "SetConsoleTitleA";
- case 0x02f5: return "SetConsoleTitleW";
- case 0x02f6: return "SetConsoleWindowInfo";
- case 0x02f7: return "SetCriticalSectionSpinCount";
- case 0x02f8: return "SetCurrentDirectoryA";
- case 0x02f9: return "SetCurrentDirectoryW";
- case 0x02fa: return "SetDefaultCommConfigA";
- case 0x02fb: return "SetDefaultCommConfigW";
- case 0x02fc: return "SetDllDirectoryA";
- case 0x02fd: return "SetDllDirectoryW";
- case 0x02fe: return "SetEndOfFile";
- case 0x02ff: return "SetEnvironmentVariableA";
- case 0x0300: return "SetEnvironmentVariableW";
- case 0x0301: return "SetErrorMode";
- case 0x0302: return "SetEvent";
- case 0x0303: return "SetFileApisToANSI";
- case 0x0304: return "SetFileApisToOEM";
- case 0x0305: return "SetFileAttributesA";
- case 0x0306: return "SetFileAttributesW";
- case 0x0307: return "SetFilePointer";
- case 0x0308: return "SetFilePointerEx";
- case 0x0309: return "SetFileShortNameA";
- case 0x030a: return "SetFileShortNameW";
- case 0x030b: return "SetFileTime";
- case 0x030c: return "SetFileValidData";
- case 0x030d: return "SetFirmwareEnvironmentVariableA";
- case 0x030e: return "SetFirmwareEnvironmentVariableW";
- case 0x030f: return "SetHandleContext";
- case 0x0310: return "SetHandleCount";
- case 0x0311: return "SetHandleInformation";
- case 0x0312: return "SetInformationJobObject";
- case 0x0313: return "SetLastConsoleEventActive";
- case 0x0314: return "SetLastError";
- case 0x0315: return "SetLocalPrimaryComputerNameA";
- case 0x0316: return "SetLocalPrimaryComputerNameW";
- case 0x0317: return "SetLocalTime";
- case 0x0318: return "SetLocaleInfoA";
- case 0x0319: return "SetLocaleInfoW";
- case 0x031a: return "SetMailslotInfo";
- case 0x031b: return "SetMessageWaitingIndicator";
- case 0x031c: return "SetNamedPipeHandleState";
- case 0x031d: return "SetPriorityClass";
- case 0x031e: return "SetProcessAffinityMask";
- case 0x031f: return "SetProcessPriorityBoost";
- case 0x0320: return "SetProcessShutdownParameters";
- case 0x0321: return "SetProcessWorkingSetSize";
- case 0x0322: return "SetStdHandle";
- case 0x0323: return "SetSystemPowerState";
- case 0x0324: return "SetSystemTime";
- case 0x0325: return "SetSystemTimeAdjustment";
- case 0x0326: return "SetTapeParameters";
- case 0x0327: return "SetTapePosition";
- case 0x0328: return "SetTermsrvAppInstallMode";
- case 0x0329: return "SetThreadAffinityMask";
- case 0x032a: return "SetThreadContext";
- case 0x032b: return "SetThreadExecutionState";
- case 0x032c: return "SetThreadIdealProcessor";
- case 0x032d: return "SetThreadLocale";
- case 0x032e: return "SetThreadPriority";
- case 0x032f: return "SetThreadPriorityBoost";
- case 0x0330: return "SetThreadUILanguage";
- case 0x0331: return "SetTimeZoneInformation";
- case 0x0332: return "SetTimerQueueTimer";
- case 0x0333: return "SetUnhandledExceptionFilter";
- case 0x0334: return "SetUserGeoID";
- case 0x0335: return "SetVDMCurrentDirectories";
- case 0x0336: return "SetVolumeLabelA";
- case 0x0337: return "SetVolumeLabelW";
- case 0x0338: return "SetVolumeMountPointA";
- case 0x0339: return "SetVolumeMountPointW";
- case 0x033a: return "SetWaitableTimer";
- case 0x033b: return "SetupComm";
- case 0x033c: return "ShowConsoleCursor";
- case 0x033d: return "SignalObjectAndWait";
- case 0x033e: return "SizeofResource";
- case 0x033f: return "Sleep";
- case 0x0340: return "SleepEx";
- case 0x0341: return "SuspendThread";
- case 0x0342: return "SwitchToFiber";
- case 0x0343: return "SwitchToThread";
- case 0x0344: return "SystemTimeToFileTime";
- case 0x0345: return "SystemTimeToTzSpecificLocalTime";
- case 0x0346: return "TerminateJobObject";
- case 0x0347: return "TerminateProcess";
- case 0x0348: return "TerminateThread";
- case 0x0349: return "TermsrvAppInstallMode";
- case 0x034a: return "Thread32First";
- case 0x034b: return "Thread32Next";
- case 0x034c: return "TlsAlloc";
- case 0x034d: return "TlsFree";
- case 0x034e: return "TlsGetValue";
- case 0x034f: return "TlsSetValue";
- case 0x0350: return "Toolhelp32ReadProcessMemory";
- case 0x0351: return "TransactNamedPipe";
- case 0x0352: return "TransmitCommChar";
- case 0x0353: return "TrimVirtualBuffer";
- case 0x0354: return "TryEnterCriticalSection";
- case 0x0355: return "TzSpecificLocalTimeToSystemTime";
- case 0x0356: return "UTRegister";
- case 0x0357: return "UTUnRegister";
- case 0x0358: return "UnhandledExceptionFilter";
- case 0x0359: return "UnlockFile";
- case 0x035a: return "UnlockFileEx";
- case 0x035b: return "UnmapViewOfFile";
- case 0x035c: return "UnregisterConsoleIME";
- case 0x035d: return "UnregisterWait";
- case 0x035e: return "UnregisterWaitEx";
- case 0x035f: return "UpdateResourceA";
- case 0x0360: return "UpdateResourceW";
- case 0x0361: return "VDMConsoleOperation";
- case 0x0362: return "VDMOperationStarted";
- case 0x0363: return "ValidateLCType";
- case 0x0364: return "ValidateLocale";
- case 0x0365: return "VerLanguageNameA";
- case 0x0366: return "VerLanguageNameW";
- case 0x0367: return "VerSetConditionMask";
- case 0x0368: return "VerifyConsoleIoHandle";
- case 0x0369: return "VerifyVersionInfoA";
- case 0x036a: return "VerifyVersionInfoW";
- case 0x036b: return "VirtualAlloc";
- case 0x036c: return "VirtualAllocEx";
- case 0x036d: return "VirtualBufferExceptionHandler";
- case 0x036e: return "VirtualFree";
- case 0x036f: return "VirtualFreeEx";
- case 0x0370: return "VirtualLock";
- case 0x0371: return "VirtualProtect";
- case 0x0372: return "VirtualProtectEx";
- case 0x0373: return "VirtualQuery";
- case 0x0374: return "VirtualQueryEx";
- case 0x0375: return "VirtualUnlock";
- case 0x0376: return "WTSGetActiveConsoleSessionId";
- case 0x0377: return "WaitCommEvent";
- case 0x0378: return "WaitForDebugEvent";
- case 0x0379: return "WaitForMultipleObjects";
- case 0x037a: return "WaitForMultipleObjectsEx";
- case 0x037b: return "WaitForSingleObject";
- case 0x037c: return "WaitForSingleObjectEx";
- case 0x037d: return "WaitNamedPipeA";
- case 0x037e: return "WaitNamedPipeW";
- case 0x037f: return "WideCharToMultiByte";
- case 0x0380: return "WinExec";
- case 0x0381: return "WriteConsoleA";
- case 0x0382: return "WriteConsoleInputA";
- case 0x0383: return "WriteConsoleInputVDMA";
- case 0x0384: return "WriteConsoleInputVDMW";
- case 0x0385: return "WriteConsoleInputW";
- case 0x0386: return "WriteConsoleOutputA";
- case 0x0387: return "WriteConsoleOutputAttribute";
- case 0x0388: return "WriteConsoleOutputCharacterA";
- case 0x0389: return "WriteConsoleOutputCharacterW";
- case 0x038a: return "WriteConsoleOutputW";
- case 0x038b: return "WriteConsoleW";
- case 0x038c: return "WriteFile";
- case 0x038d: return "WriteFileEx";
- case 0x038e: return "WriteFileGather";
- case 0x038f: return "WritePrivateProfileSectionA";
- case 0x0390: return "WritePrivateProfileSectionW";
- case 0x0391: return "WritePrivateProfileStringA";
- case 0x0392: return "WritePrivateProfileStringW";
- case 0x0393: return "WritePrivateProfileStructA";
- case 0x0394: return "WritePrivateProfileStructW";
- case 0x0395: return "WriteProcessMemory";
- case 0x0396: return "WriteProfileSectionA";
- case 0x0397: return "WriteProfileSectionW";
- case 0x0398: return "WriteProfileStringA";
- case 0x0399: return "WriteProfileStringW";
- case 0x039a: return "WriteTapemark";
- case 0x039b: return "ZombifyActCtx";
- case 0x039c: return "_hread";
- case 0x039d: return "_hwrite";
- case 0x039e: return "_lclose";
- case 0x039f: return "_lcreat";
- case 0x03a0: return "_llseek";
- case 0x03a1: return "_lopen";
- case 0x03a2: return "_lread";
- case 0x03a3: return "_lwrite";
- case 0x03a4: return "lstrcat";
- case 0x03a5: return "lstrcatA";
- case 0x03a6: return "lstrcatW";
- case 0x03a7: return "lstrcmp";
- case 0x03a8: return "lstrcmpA";
- case 0x03a9: return "lstrcmpW";
- case 0x03aa: return "lstrcmpi";
- case 0x03ab: return "lstrcmpiA";
- case 0x03ac: return "lstrcmpiW";
- case 0x03ad: return "lstrcpy";
- case 0x03ae: return "lstrcpyA";
- case 0x03af: return "lstrcpyW";
- case 0x03b0: return "lstrcpyn";
- case 0x03b1: return "lstrcpynA";
- case 0x03b2: return "lstrcpynW";
- case 0x03b3: return "lstrlen";
- case 0x03b4: return "lstrlenA";
- case 0x03b5: return "lstrlenW";
+ switch (i) {
+ case 0x0001: return "ActivateActCtx";
+ case 0x0002: return "AddAtomA";
+ case 0x0003: return "AddAtomW";
+ case 0x0004: return "AddConsoleAliasA";
+ case 0x0005: return "AddConsoleAliasW";
+ case 0x0006: return "AddLocalAlternateComputerNameA";
+ case 0x0007: return "AddLocalAlternateComputerNameW";
+ case 0x0008: return "AddRefActCtx";
+ case 0x0009: return "AddVectoredExceptionHandler";
+ case 0x000a: return "AllocConsole";
+ case 0x000b: return "AllocateUserPhysicalPages";
+ case 0x000c: return "AreFileApisANSI";
+ case 0x000d: return "AssignProcessToJobObject";
+ case 0x000e: return "AttachConsole";
+ case 0x000f: return "BackupRead";
+ case 0x0010: return "BackupSeek";
+ case 0x0011: return "BackupWrite";
+ case 0x0012: return "BaseCheckAppcompatCache";
+ case 0x0013: return "BaseCleanupAppcompatCache";
+ case 0x0014: return "BaseCleanupAppcompatCacheSupport";
+ case 0x0015: return "BaseDumpAppcompatCache";
+ case 0x0016: return "BaseFlushAppcompatCache";
+ case 0x0017: return "BaseInitAppcompatCache";
+ case 0x0018: return "BaseInitAppcompatCacheSupport";
+ case 0x0019: return "BaseProcessInitPostImport";
+ case 0x001a: return "BaseQueryModuleData";
+ case 0x001b: return "BaseUpdateAppcompatCache";
+ case 0x001c: return "BasepCheckWinSaferRestrictions";
+ case 0x001d: return "Beep";
+ case 0x001e: return "BeginUpdateResourceA";
+ case 0x001f: return "BeginUpdateResourceW";
+ case 0x0020: return "BindIoCompletionCallback";
+ case 0x0021: return "BuildCommDCBA";
+ case 0x0022: return "BuildCommDCBAndTimeoutsA";
+ case 0x0023: return "BuildCommDCBAndTimeoutsW";
+ case 0x0024: return "BuildCommDCBW";
+ case 0x0025: return "CallNamedPipeA";
+ case 0x0026: return "CallNamedPipeW";
+ case 0x0027: return "CancelDeviceWakeupRequest";
+ case 0x0028: return "CancelIo";
+ case 0x0029: return "CancelTimerQueueTimer";
+ case 0x002a: return "CancelWaitableTimer";
+ case 0x002b: return "ChangeTimerQueueTimer";
+ case 0x002c: return "CheckNameLegalDOS8Dot3A";
+ case 0x002d: return "CheckNameLegalDOS8Dot3W";
+ case 0x002e: return "CheckRemoteDebuggerPresent";
+ case 0x002f: return "ClearCommBreak";
+ case 0x0030: return "ClearCommError";
+ case 0x0031: return "CloseConsoleHandle";
+ case 0x0032: return "CloseHandle";
+ case 0x0033: return "CloseProfileUserMapping";
+ case 0x0034: return "CmdBatNotification";
+ case 0x0035: return "CommConfigDialogA";
+ case 0x0036: return "CommConfigDialogW";
+ case 0x0037: return "CompareFileTime";
+ case 0x0038: return "CompareStringA";
+ case 0x0039: return "CompareStringW";
+ case 0x003a: return "ConnectNamedPipe";
+ case 0x003b: return "ConsoleMenuControl";
+ case 0x003c: return "ContinueDebugEvent";
+ case 0x003d: return "ConvertDefaultLocale";
+ case 0x003e: return "ConvertFiberToThread";
+ case 0x003f: return "ConvertThreadToFiber";
+ case 0x0040: return "CopyFileA";
+ case 0x0041: return "CopyFileExA";
+ case 0x0042: return "CopyFileExW";
+ case 0x0043: return "CopyFileW";
+ case 0x0044: return "CopyLZFile";
+ case 0x0045: return "CreateActCtxA";
+ case 0x0046: return "CreateActCtxW";
+ case 0x0047: return "CreateConsoleScreenBuffer";
+ case 0x0048: return "CreateDirectoryA";
+ case 0x0049: return "CreateDirectoryExA";
+ case 0x004a: return "CreateDirectoryExW";
+ case 0x004b: return "CreateDirectoryW";
+ case 0x004c: return "CreateEventA";
+ case 0x004d: return "CreateEventW";
+ case 0x004e: return "CreateFiber";
+ case 0x004f: return "CreateFiberEx";
+ case 0x0050: return "CreateFileA";
+ case 0x0051: return "CreateFileMappingA";
+ case 0x0052: return "CreateFileMappingW";
+ case 0x0053: return "CreateFileW";
+ case 0x0054: return "CreateHardLinkA";
+ case 0x0055: return "CreateHardLinkW";
+ case 0x0056: return "CreateIoCompletionPort";
+ case 0x0057: return "CreateJobObjectA";
+ case 0x0058: return "CreateJobObjectW";
+ case 0x0059: return "CreateJobSet";
+ case 0x005a: return "CreateMailslotA";
+ case 0x005b: return "CreateMailslotW";
+ case 0x005c: return "CreateMemoryResourceNotification";
+ case 0x005d: return "CreateMutexA";
+ case 0x005e: return "CreateMutexW";
+ case 0x005f: return "CreateNamedPipeA";
+ case 0x0060: return "CreateNamedPipeW";
+ case 0x0061: return "CreateNlsSecurityDescriptor";
+ case 0x0062: return "CreatePipe";
+ case 0x0063: return "CreateProcessA";
+ case 0x0064: return "CreateProcessInternalA";
+ case 0x0065: return "CreateProcessInternalW";
+ case 0x0066: return "CreateProcessInternalWSecure";
+ case 0x0067: return "CreateProcessW";
+ case 0x0068: return "CreateRemoteThread";
+ case 0x0069: return "CreateSemaphoreA";
+ case 0x006a: return "CreateSemaphoreW";
+ case 0x006b: return "CreateSocketHandle";
+ case 0x006c: return "CreateTapePartition";
+ case 0x006d: return "CreateThread";
+ case 0x006e: return "CreateTimerQueue";
+ case 0x006f: return "CreateTimerQueueTimer";
+ case 0x0070: return "CreateToolhelp32Snapshot";
+ case 0x0071: return "CreateVirtualBuffer";
+ case 0x0072: return "CreateWaitableTimerA";
+ case 0x0073: return "CreateWaitableTimerW";
+ case 0x0074: return "DeactivateActCtx";
+ case 0x0075: return "DebugActiveProcess";
+ case 0x0076: return "DebugActiveProcessStop";
+ case 0x0077: return "DebugBreak";
+ case 0x0078: return "DebugBreakProcess";
+ case 0x0079: return "DebugSetProcessKillOnExit";
+ case 0x007a: return "DecodePointer";
+ case 0x007b: return "DecodeSystemPointer";
+ case 0x007c: return "DefineDosDeviceA";
+ case 0x007d: return "DefineDosDeviceW";
+ case 0x007e: return "DelayLoadFailureHook";
+ case 0x007f: return "DeleteAtom";
+ case 0x0080: return "DeleteCriticalSection";
+ case 0x0081: return "DeleteFiber";
+ case 0x0082: return "DeleteFileA";
+ case 0x0083: return "DeleteFileW";
+ case 0x0084: return "DeleteTimerQueue";
+ case 0x0085: return "DeleteTimerQueueEx";
+ case 0x0086: return "DeleteTimerQueueTimer";
+ case 0x0087: return "DeleteVolumeMountPointA";
+ case 0x0088: return "DeleteVolumeMountPointW";
+ case 0x0089: return "DeviceIoControl";
+ case 0x008a: return "DisableThreadLibraryCalls";
+ case 0x008b: return "DisconnectNamedPipe";
+ case 0x008c: return "DnsHostnameToComputerNameA";
+ case 0x008d: return "DnsHostnameToComputerNameW";
+ case 0x008e: return "DosDateTimeToFileTime";
+ case 0x008f: return "DosPathToSessionPathA";
+ case 0x0090: return "DosPathToSessionPathW";
+ case 0x0091: return "DuplicateConsoleHandle";
+ case 0x0092: return "DuplicateHandle";
+ case 0x0093: return "EncodePointer";
+ case 0x0094: return "EncodeSystemPointer";
+ case 0x0095: return "EndUpdateResourceA";
+ case 0x0096: return "EndUpdateResourceW";
+ case 0x0097: return "EnterCriticalSection";
+ case 0x0098: return "EnumCalendarInfoA";
+ case 0x0099: return "EnumCalendarInfoExA";
+ case 0x009a: return "EnumCalendarInfoExW";
+ case 0x009b: return "EnumCalendarInfoW";
+ case 0x009c: return "EnumDateFormatsA";
+ case 0x009d: return "EnumDateFormatsExA";
+ case 0x009e: return "EnumDateFormatsExW";
+ case 0x009f: return "EnumDateFormatsW";
+ case 0x00a0: return "EnumLanguageGroupLocalesA";
+ case 0x00a1: return "EnumLanguageGroupLocalesW";
+ case 0x00a2: return "EnumResourceLanguagesA";
+ case 0x00a3: return "EnumResourceLanguagesW";
+ case 0x00a4: return "EnumResourceNamesA";
+ case 0x00a5: return "EnumResourceNamesW";
+ case 0x00a6: return "EnumResourceTypesA";
+ case 0x00a7: return "EnumResourceTypesW";
+ case 0x00a8: return "EnumSystemCodePagesA";
+ case 0x00a9: return "EnumSystemCodePagesW";
+ case 0x00aa: return "EnumSystemGeoID";
+ case 0x00ab: return "EnumSystemLanguageGroupsA";
+ case 0x00ac: return "EnumSystemLanguageGroupsW";
+ case 0x00ad: return "EnumSystemLocalesA";
+ case 0x00ae: return "EnumSystemLocalesW";
+ case 0x00af: return "EnumTimeFormatsA";
+ case 0x00b0: return "EnumTimeFormatsW";
+ case 0x00b1: return "EnumUILanguagesA";
+ case 0x00b2: return "EnumUILanguagesW";
+ case 0x00b3: return "EnumerateLocalComputerNamesA";
+ case 0x00b4: return "EnumerateLocalComputerNamesW";
+ case 0x00b5: return "EraseTape";
+ case 0x00b6: return "EscapeCommFunction";
+ case 0x00b7: return "ExitProcess";
+ case 0x00b8: return "ExitThread";
+ case 0x00b9: return "ExitVDM";
+ case 0x00ba: return "ExpandEnvironmentStringsA";
+ case 0x00bb: return "ExpandEnvironmentStringsW";
+ case 0x00bc: return "ExpungeConsoleCommandHistoryA";
+ case 0x00bd: return "ExpungeConsoleCommandHistoryW";
+ case 0x00be: return "ExtendVirtualBuffer";
+ case 0x00bf: return "FatalAppExitA";
+ case 0x00c0: return "FatalAppExitW";
+ case 0x00c1: return "FatalExit";
+ case 0x00c2: return "FileTimeToDosDateTime";
+ case 0x00c3: return "FileTimeToLocalFileTime";
+ case 0x00c4: return "FileTimeToSystemTime";
+ case 0x00c5: return "FillConsoleOutputAttribute";
+ case 0x00c6: return "FillConsoleOutputCharacterA";
+ case 0x00c7: return "FillConsoleOutputCharacterW";
+ case 0x00c8: return "FindActCtxSectionGuid";
+ case 0x00c9: return "FindActCtxSectionStringA";
+ case 0x00ca: return "FindActCtxSectionStringW";
+ case 0x00cb: return "FindAtomA";
+ case 0x00cc: return "FindAtomW";
+ case 0x00cd: return "FindClose";
+ case 0x00ce: return "FindCloseChangeNotification";
+ case 0x00cf: return "FindFirstChangeNotificationA";
+ case 0x00d0: return "FindFirstChangeNotificationW";
+ case 0x00d1: return "FindFirstFileA";
+ case 0x00d2: return "FindFirstFileExA";
+ case 0x00d3: return "FindFirstFileExW";
+ case 0x00d4: return "FindFirstFileW";
+ case 0x00d5: return "FindFirstVolumeA";
+ case 0x00d6: return "FindFirstVolumeMountPointA";
+ case 0x00d7: return "FindFirstVolumeMountPointW";
+ case 0x00d8: return "FindFirstVolumeW";
+ case 0x00d9: return "FindNextChangeNotification";
+ case 0x00da: return "FindNextFileA";
+ case 0x00db: return "FindNextFileW";
+ case 0x00dc: return "FindNextVolumeA";
+ case 0x00dd: return "FindNextVolumeMountPointA";
+ case 0x00de: return "FindNextVolumeMountPointW";
+ case 0x00df: return "FindNextVolumeW";
+ case 0x00e0: return "FindResourceA";
+ case 0x00e1: return "FindResourceExA";
+ case 0x00e2: return "FindResourceExW";
+ case 0x00e3: return "FindResourceW";
+ case 0x00e4: return "FindVolumeClose";
+ case 0x00e5: return "FindVolumeMountPointClose";
+ case 0x00e6: return "FlushConsoleInputBuffer";
+ case 0x00e7: return "FlushFileBuffers";
+ case 0x00e8: return "FlushInstructionCache";
+ case 0x00e9: return "FlushViewOfFile";
+ case 0x00ea: return "FoldStringA";
+ case 0x00eb: return "FoldStringW";
+ case 0x00ec: return "FormatMessageA";
+ case 0x00ed: return "FormatMessageW";
+ case 0x00ee: return "FreeConsole";
+ case 0x00ef: return "FreeEnvironmentStringsA";
+ case 0x00f0: return "FreeEnvironmentStringsW";
+ case 0x00f1: return "FreeLibrary";
+ case 0x00f2: return "FreeLibraryAndExitThread";
+ case 0x00f3: return "FreeResource";
+ case 0x00f4: return "FreeUserPhysicalPages";
+ case 0x00f5: return "FreeVirtualBuffer";
+ case 0x00f6: return "GenerateConsoleCtrlEvent";
+ case 0x00f7: return "GetACP";
+ case 0x00f8: return "GetAtomNameA";
+ case 0x00f9: return "GetAtomNameW";
+ case 0x00fa: return "GetBinaryType";
+ case 0x00fb: return "GetBinaryTypeA";
+ case 0x00fc: return "GetBinaryTypeW";
+ case 0x00fd: return "GetCPFileNameFromRegistry";
+ case 0x00fe: return "GetCPInfo";
+ case 0x00ff: return "GetCPInfoExA";
+ case 0x0100: return "GetCPInfoExW";
+ case 0x0101: return "GetCalendarInfoA";
+ case 0x0102: return "GetCalendarInfoW";
+ case 0x0103: return "GetComPlusPackageInstallStatus";
+ case 0x0104: return "GetCommConfig";
+ case 0x0105: return "GetCommMask";
+ case 0x0106: return "GetCommModemStatus";
+ case 0x0107: return "GetCommProperties";
+ case 0x0108: return "GetCommState";
+ case 0x0109: return "GetCommTimeouts";
+ case 0x010a: return "GetCommandLineA";
+ case 0x010b: return "GetCommandLineW";
+ case 0x010c: return "GetCompressedFileSizeA";
+ case 0x010d: return "GetCompressedFileSizeW";
+ case 0x010e: return "GetComputerNameA";
+ case 0x010f: return "GetComputerNameExA";
+ case 0x0110: return "GetComputerNameExW";
+ case 0x0111: return "GetComputerNameW";
+ case 0x0112: return "GetConsoleAliasA";
+ case 0x0113: return "GetConsoleAliasExesA";
+ case 0x0114: return "GetConsoleAliasExesLengthA";
+ case 0x0115: return "GetConsoleAliasExesLengthW";
+ case 0x0116: return "GetConsoleAliasExesW";
+ case 0x0117: return "GetConsoleAliasW";
+ case 0x0118: return "GetConsoleAliasesA";
+ case 0x0119: return "GetConsoleAliasesLengthA";
+ case 0x011a: return "GetConsoleAliasesLengthW";
+ case 0x011b: return "GetConsoleAliasesW";
+ case 0x011c: return "GetConsoleCP";
+ case 0x011d: return "GetConsoleCharType";
+ case 0x011e: return "GetConsoleCommandHistoryA";
+ case 0x011f: return "GetConsoleCommandHistoryLengthA";
+ case 0x0120: return "GetConsoleCommandHistoryLengthW";
+ case 0x0121: return "GetConsoleCommandHistoryW";
+ case 0x0122: return "GetConsoleCursorInfo";
+ case 0x0123: return "GetConsoleCursorMode";
+ case 0x0124: return "GetConsoleDisplayMode";
+ case 0x0125: return "GetConsoleFontInfo";
+ case 0x0126: return "GetConsoleFontSize";
+ case 0x0127: return "GetConsoleHardwareState";
+ case 0x0128: return "GetConsoleInputExeNameA";
+ case 0x0129: return "GetConsoleInputExeNameW";
+ case 0x012a: return "GetConsoleInputWaitHandle";
+ case 0x012b: return "GetConsoleKeyboardLayoutNameA";
+ case 0x012c: return "GetConsoleKeyboardLayoutNameW";
+ case 0x012d: return "GetConsoleMode";
+ case 0x012e: return "GetConsoleNlsMode";
+ case 0x012f: return "GetConsoleOutputCP";
+ case 0x0130: return "GetConsoleProcessList";
+ case 0x0131: return "GetConsoleScreenBufferInfo";
+ case 0x0132: return "GetConsoleSelectionInfo";
+ case 0x0133: return "GetConsoleTitleA";
+ case 0x0134: return "GetConsoleTitleW";
+ case 0x0135: return "GetConsoleWindow";
+ case 0x0136: return "GetCurrencyFormatA";
+ case 0x0137: return "GetCurrencyFormatW";
+ case 0x0138: return "GetCurrentActCtx";
+ case 0x0139: return "GetCurrentConsoleFont";
+ case 0x013a: return "GetCurrentDirectoryA";
+ case 0x013b: return "GetCurrentDirectoryW";
+ case 0x013c: return "GetCurrentProcess";
+ case 0x013d: return "GetCurrentProcessId";
+ case 0x013e: return "GetCurrentThread";
+ case 0x013f: return "GetCurrentThreadId";
+ case 0x0140: return "GetDateFormatA";
+ case 0x0141: return "GetDateFormatW";
+ case 0x0142: return "GetDefaultCommConfigA";
+ case 0x0143: return "GetDefaultCommConfigW";
+ case 0x0144: return "GetDefaultSortkeySize";
+ case 0x0145: return "GetDevicePowerState";
+ case 0x0146: return "GetDiskFreeSpaceA";
+ case 0x0147: return "GetDiskFreeSpaceExA";
+ case 0x0148: return "GetDiskFreeSpaceExW";
+ case 0x0149: return "GetDiskFreeSpaceW";
+ case 0x014a: return "GetDllDirectoryA";
+ case 0x014b: return "GetDllDirectoryW";
+ case 0x014c: return "GetDriveTypeA";
+ case 0x014d: return "GetDriveTypeW";
+ case 0x014e: return "GetEnvironmentStrings";
+ case 0x014f: return "GetEnvironmentStringsA";
+ case 0x0150: return "GetEnvironmentStringsW";
+ case 0x0151: return "GetEnvironmentVariableA";
+ case 0x0152: return "GetEnvironmentVariableW";
+ case 0x0153: return "GetExitCodeProcess";
+ case 0x0154: return "GetExitCodeThread";
+ case 0x0155: return "GetExpandedNameA";
+ case 0x0156: return "GetExpandedNameW";
+ case 0x0157: return "GetFileAttributesA";
+ case 0x0158: return "GetFileAttributesExA";
+ case 0x0159: return "GetFileAttributesExW";
+ case 0x015a: return "GetFileAttributesW";
+ case 0x015b: return "GetFileInformationByHandle";
+ case 0x015c: return "GetFileSize";
+ case 0x015d: return "GetFileSizeEx";
+ case 0x015e: return "GetFileTime";
+ case 0x015f: return "GetFileType";
+ case 0x0160: return "GetFirmwareEnvironmentVariableA";
+ case 0x0161: return "GetFirmwareEnvironmentVariableW";
+ case 0x0162: return "GetFullPathNameA";
+ case 0x0163: return "GetFullPathNameW";
+ case 0x0164: return "GetGeoInfoA";
+ case 0x0165: return "GetGeoInfoW";
+ case 0x0166: return "GetHandleContext";
+ case 0x0167: return "GetHandleInformation";
+ case 0x0168: return "GetLargestConsoleWindowSize";
+ case 0x0169: return "GetLastError";
+ case 0x016a: return "GetLinguistLangSize";
+ case 0x016b: return "GetLocalTime";
+ case 0x016c: return "GetLocaleInfoA";
+ case 0x016d: return "GetLocaleInfoW";
+ case 0x016e: return "GetLogicalDriveStringsA";
+ case 0x016f: return "GetLogicalDriveStringsW";
+ case 0x0170: return "GetLogicalDrives";
+ case 0x0171: return "GetLongPathNameA";
+ case 0x0172: return "GetLongPathNameW";
+ case 0x0173: return "GetMailslotInfo";
+ case 0x0174: return "GetModuleFileNameA";
+ case 0x0175: return "GetModuleFileNameW";
+ case 0x0176: return "GetModuleHandleA";
+ case 0x0177: return "GetModuleHandleExA";
+ case 0x0178: return "GetModuleHandleExW";
+ case 0x0179: return "GetModuleHandleW";
+ case 0x017a: return "GetNamedPipeHandleStateA";
+ case 0x017b: return "GetNamedPipeHandleStateW";
+ case 0x017c: return "GetNamedPipeInfo";
+ case 0x017d: return "GetNativeSystemInfo";
+ case 0x017e: return "GetNextVDMCommand";
+ case 0x017f: return "GetNlsSectionName";
+ case 0x0180: return "GetNumaAvailableMemory";
+ case 0x0181: return "GetNumaAvailableMemoryNode";
+ case 0x0182: return "GetNumaHighestNodeNumber";
+ case 0x0183: return "GetNumaNodeProcessorMask";
+ case 0x0184: return "GetNumaProcessorMap";
+ case 0x0185: return "GetNumaProcessorNode";
+ case 0x0186: return "GetNumberFormatA";
+ case 0x0187: return "GetNumberFormatW";
+ case 0x0188: return "GetNumberOfConsoleFonts";
+ case 0x0189: return "GetNumberOfConsoleInputEvents";
+ case 0x018a: return "GetNumberOfConsoleMouseButtons";
+ case 0x018b: return "GetOEMCP";
+ case 0x018c: return "GetOverlappedResult";
+ case 0x018d: return "GetPriorityClass";
+ case 0x018e: return "GetPrivateProfileIntA";
+ case 0x018f: return "GetPrivateProfileIntW";
+ case 0x0190: return "GetPrivateProfileSectionA";
+ case 0x0191: return "GetPrivateProfileSectionNamesA";
+ case 0x0192: return "GetPrivateProfileSectionNamesW";
+ case 0x0193: return "GetPrivateProfileSectionW";
+ case 0x0194: return "GetPrivateProfileStringA";
+ case 0x0195: return "GetPrivateProfileStringW";
+ case 0x0196: return "GetPrivateProfileStructA";
+ case 0x0197: return "GetPrivateProfileStructW";
+ case 0x0198: return "GetProcAddress";
+ case 0x0199: return "GetProcessAffinityMask";
+ case 0x019a: return "GetProcessHandleCount";
+ case 0x019b: return "GetProcessHeap";
+ case 0x019c: return "GetProcessHeaps";
+ case 0x019d: return "GetProcessId";
+ case 0x019e: return "GetProcessIoCounters";
+ case 0x019f: return "GetProcessPriorityBoost";
+ case 0x01a0: return "GetProcessShutdownParameters";
+ case 0x01a1: return "GetProcessTimes";
+ case 0x01a2: return "GetProcessVersion";
+ case 0x01a3: return "GetProcessWorkingSetSize";
+ case 0x01a4: return "GetProfileIntA";
+ case 0x01a5: return "GetProfileIntW";
+ case 0x01a6: return "GetProfileSectionA";
+ case 0x01a7: return "GetProfileSectionW";
+ case 0x01a8: return "GetProfileStringA";
+ case 0x01a9: return "GetProfileStringW";
+ case 0x01aa: return "GetQueuedCompletionStatus";
+ case 0x01ab: return "GetShortPathNameA";
+ case 0x01ac: return "GetShortPathNameW";
+ case 0x01ad: return "GetStartupInfoA";
+ case 0x01ae: return "GetStartupInfoW";
+ case 0x01af: return "GetStdHandle";
+ case 0x01b0: return "GetStringTypeA";
+ case 0x01b1: return "GetStringTypeExA";
+ case 0x01b2: return "GetStringTypeExW";
+ case 0x01b3: return "GetStringTypeW";
+ case 0x01b4: return "GetSystemDefaultLCID";
+ case 0x01b5: return "GetSystemDefaultLangID";
+ case 0x01b6: return "GetSystemDefaultUILanguage";
+ case 0x01b7: return "GetSystemDirectoryA";
+ case 0x01b8: return "GetSystemDirectoryW";
+ case 0x01b9: return "GetSystemInfo";
+ case 0x01ba: return "GetSystemPowerStatus";
+ case 0x01bb: return "GetSystemRegistryQuota";
+ case 0x01bc: return "GetSystemTime";
+ case 0x01bd: return "GetSystemTimeAdjustment";
+ case 0x01be: return "GetSystemTimeAsFileTime";
+ case 0x01bf: return "GetSystemTimes";
+ case 0x01c0: return "GetSystemWindowsDirectoryA";
+ case 0x01c1: return "GetSystemWindowsDirectoryW";
+ case 0x01c2: return "GetSystemWow64DirectoryA";
+ case 0x01c3: return "GetSystemWow64DirectoryW";
+ case 0x01c4: return "GetTapeParameters";
+ case 0x01c5: return "GetTapePosition";
+ case 0x01c6: return "GetTapeStatus";
+ case 0x01c7: return "GetTempFileNameA";
+ case 0x01c8: return "GetTempFileNameW";
+ case 0x01c9: return "GetTempPathA";
+ case 0x01ca: return "GetTempPathW";
+ case 0x01cb: return "GetThreadContext";
+ case 0x01cc: return "GetThreadIOPendingFlag";
+ case 0x01cd: return "GetThreadLocale";
+ case 0x01ce: return "GetThreadPriority";
+ case 0x01cf: return "GetThreadPriorityBoost";
+ case 0x01d0: return "GetThreadSelectorEntry";
+ case 0x01d1: return "GetThreadTimes";
+ case 0x01d2: return "GetTickCount";
+ case 0x01d3: return "GetTimeFormatA";
+ case 0x01d4: return "GetTimeFormatW";
+ case 0x01d5: return "GetTimeZoneInformation";
+ case 0x01d6: return "GetUserDefaultLCID";
+ case 0x01d7: return "GetUserDefaultLangID";
+ case 0x01d8: return "GetUserDefaultUILanguage";
+ case 0x01d9: return "GetUserGeoID";
+ case 0x01da: return "GetVDMCurrentDirectories";
+ case 0x01db: return "GetVersion";
+ case 0x01dc: return "GetVersionExA";
+ case 0x01dd: return "GetVersionExW";
+ case 0x01de: return "GetVolumeInformationA";
+ case 0x01df: return "GetVolumeInformationW";
+ case 0x01e0: return "GetVolumeNameForVolumeMountPointA";
+ case 0x01e1: return "GetVolumeNameForVolumeMountPointW";
+ case 0x01e2: return "GetVolumePathNameA";
+ case 0x01e3: return "GetVolumePathNameW";
+ case 0x01e4: return "GetVolumePathNamesForVolumeNameA";
+ case 0x01e5: return "GetVolumePathNamesForVolumeNameW";
+ case 0x01e6: return "GetWindowsDirectoryA";
+ case 0x01e7: return "GetWindowsDirectoryW";
+ case 0x01e8: return "GetWriteWatch";
+ case 0x01e9: return "GlobalAddAtomA";
+ case 0x01ea: return "GlobalAddAtomW";
+ case 0x01eb: return "GlobalAlloc";
+ case 0x01ec: return "GlobalCompact";
+ case 0x01ed: return "GlobalDeleteAtom";
+ case 0x01ee: return "GlobalFindAtomA";
+ case 0x01ef: return "GlobalFindAtomW";
+ case 0x01f0: return "GlobalFix";
+ case 0x01f1: return "GlobalFlags";
+ case 0x01f2: return "GlobalFree";
+ case 0x01f3: return "GlobalGetAtomNameA";
+ case 0x01f4: return "GlobalGetAtomNameW";
+ case 0x01f5: return "GlobalHandle";
+ case 0x01f6: return "GlobalLock";
+ case 0x01f7: return "GlobalMemoryStatus";
+ case 0x01f8: return "GlobalMemoryStatusEx";
+ case 0x01f9: return "GlobalReAlloc";
+ case 0x01fa: return "GlobalSize";
+ case 0x01fb: return "GlobalUnWire";
+ case 0x01fc: return "GlobalUnfix";
+ case 0x01fd: return "GlobalUnlock";
+ case 0x01fe: return "GlobalWire";
+ case 0x01ff: return "Heap32First";
+ case 0x0200: return "Heap32ListFirst";
+ case 0x0201: return "Heap32ListNext";
+ case 0x0202: return "Heap32Next";
+ case 0x0203: return "HeapAlloc";
+ case 0x0204: return "HeapCompact";
+ case 0x0205: return "HeapCreate";
+ case 0x0206: return "HeapCreateTagsW";
+ case 0x0207: return "HeapDestroy";
+ case 0x0208: return "HeapExtend";
+ case 0x0209: return "HeapFree";
+ case 0x020a: return "HeapLock";
+ case 0x020b: return "HeapQueryInformation";
+ case 0x020c: return "HeapQueryTagW";
+ case 0x020d: return "HeapReAlloc";
+ case 0x020e: return "HeapSetInformation";
+ case 0x020f: return "HeapSize";
+ case 0x0210: return "HeapSummary";
+ case 0x0211: return "HeapUnlock";
+ case 0x0212: return "HeapUsage";
+ case 0x0213: return "HeapValidate";
+ case 0x0214: return "HeapWalk";
+ case 0x0215: return "InitAtomTable";
+ case 0x0216: return "InitializeCriticalSection";
+ case 0x0217: return "InitializeCriticalSectionAndSpinCount";
+ case 0x0218: return "InitializeSListHead";
+ case 0x0219: return "InterlockedCompareExchange";
+ case 0x021a: return "InterlockedDecrement";
+ case 0x021b: return "InterlockedExchange";
+ case 0x021c: return "InterlockedExchangeAdd";
+ case 0x021d: return "InterlockedFlushSList";
+ case 0x021e: return "InterlockedIncrement";
+ case 0x021f: return "InterlockedPopEntrySList";
+ case 0x0220: return "InterlockedPushEntrySList";
+ case 0x0221: return "InvalidateConsoleDIBits";
+ case 0x0222: return "IsBadCodePtr";
+ case 0x0223: return "IsBadHugeReadPtr";
+ case 0x0224: return "IsBadHugeWritePtr";
+ case 0x0225: return "IsBadReadPtr";
+ case 0x0226: return "IsBadStringPtrA";
+ case 0x0227: return "IsBadStringPtrW";
+ case 0x0228: return "IsBadWritePtr";
+ case 0x0229: return "IsDBCSLeadByte";
+ case 0x022a: return "IsDBCSLeadByteEx";
+ case 0x022b: return "IsDebuggerPresent";
+ case 0x022c: return "IsProcessInJob";
+ case 0x022d: return "IsProcessorFeaturePresent";
+ case 0x022e: return "IsSystemResumeAutomatic";
+ case 0x022f: return "IsValidCodePage";
+ case 0x0230: return "IsValidLanguageGroup";
+ case 0x0231: return "IsValidLocale";
+ case 0x0232: return "IsValidUILanguage";
+ case 0x0233: return "IsWow64Process";
+ case 0x0234: return "LCMapStringA";
+ case 0x0235: return "LCMapStringW";
+ case 0x0236: return "LZClose";
+ case 0x0237: return "LZCloseFile";
+ case 0x0238: return "LZCopy";
+ case 0x0239: return "LZCreateFileW";
+ case 0x023a: return "LZDone";
+ case 0x023b: return "LZInit";
+ case 0x023c: return "LZOpenFileA";
+ case 0x023d: return "LZOpenFileW";
+ case 0x023e: return "LZRead";
+ case 0x023f: return "LZSeek";
+ case 0x0240: return "LZStart";
+ case 0x0241: return "LeaveCriticalSection";
+ case 0x0242: return "LoadLibraryA";
+ case 0x0243: return "LoadLibraryExA";
+ case 0x0244: return "LoadLibraryExW";
+ case 0x0245: return "LoadLibraryW";
+ case 0x0246: return "LoadModule";
+ case 0x0247: return "LoadResource";
+ case 0x0248: return "LocalAlloc";
+ case 0x0249: return "LocalCompact";
+ case 0x024a: return "LocalFileTimeToFileTime";
+ case 0x024b: return "LocalFlags";
+ case 0x024c: return "LocalFree";
+ case 0x024d: return "LocalHandle";
+ case 0x024e: return "LocalLock";
+ case 0x024f: return "LocalReAlloc";
+ case 0x0250: return "LocalShrink";
+ case 0x0251: return "LocalSize";
+ case 0x0252: return "LocalUnlock";
+ case 0x0253: return "LockFile";
+ case 0x0254: return "LockFileEx";
+ case 0x0255: return "LockResource";
+ case 0x0256: return "MapUserPhysicalPages";
+ case 0x0257: return "MapUserPhysicalPagesScatter";
+ case 0x0258: return "MapViewOfFile";
+ case 0x0259: return "MapViewOfFileEx";
+ case 0x025a: return "Module32First";
+ case 0x025b: return "Module32FirstW";
+ case 0x025c: return "Module32Next";
+ case 0x025d: return "Module32NextW";
+ case 0x025e: return "MoveFileA";
+ case 0x025f: return "MoveFileExA";
+ case 0x0260: return "MoveFileExW";
+ case 0x0261: return "MoveFileW";
+ case 0x0262: return "MoveFileWithProgressA";
+ case 0x0263: return "MoveFileWithProgressW";
+ case 0x0264: return "MulDiv";
+ case 0x0265: return "MultiByteToWideChar";
+ case 0x0266: return "NlsConvertIntegerToString";
+ case 0x0267: return "NlsGetCacheUpdateCount";
+ case 0x0268: return "NlsResetProcessLocale";
+ case 0x0269: return "NumaVirtualQueryNode";
+ case 0x026a: return "OpenConsoleW";
+ case 0x026b: return "OpenDataFile";
+ case 0x026c: return "OpenEventA";
+ case 0x026d: return "OpenEventW";
+ case 0x026e: return "OpenFile";
+ case 0x026f: return "OpenFileMappingA";
+ case 0x0270: return "OpenFileMappingW";
+ case 0x0271: return "OpenJobObjectA";
+ case 0x0272: return "OpenJobObjectW";
+ case 0x0273: return "OpenMutexA";
+ case 0x0274: return "OpenMutexW";
+ case 0x0275: return "OpenProcess";
+ case 0x0276: return "OpenProfileUserMapping";
+ case 0x0277: return "OpenSemaphoreA";
+ case 0x0278: return "OpenSemaphoreW";
+ case 0x0279: return "OpenThread";
+ case 0x027a: return "OpenWaitableTimerA";
+ case 0x027b: return "OpenWaitableTimerW";
+ case 0x027c: return "OutputDebugStringA";
+ case 0x027d: return "OutputDebugStringW";
+ case 0x027e: return "PeekConsoleInputA";
+ case 0x027f: return "PeekConsoleInputW";
+ case 0x0280: return "PeekNamedPipe";
+ case 0x0281: return "PostQueuedCompletionStatus";
+ case 0x0282: return "PrepareTape";
+ case 0x0283: return "PrivCopyFileExW";
+ case 0x0284: return "PrivMoveFileIdentityW";
+ case 0x0285: return "Process32First";
+ case 0x0286: return "Process32FirstW";
+ case 0x0287: return "Process32Next";
+ case 0x0288: return "Process32NextW";
+ case 0x0289: return "ProcessIdToSessionId";
+ case 0x028a: return "PulseEvent";
+ case 0x028b: return "PurgeComm";
+ case 0x028c: return "QueryActCtxW";
+ case 0x028d: return "QueryDepthSList";
+ case 0x028e: return "QueryDosDeviceA";
+ case 0x028f: return "QueryDosDeviceW";
+ case 0x0290: return "QueryInformationJobObject";
+ case 0x0291: return "QueryMemoryResourceNotification";
+ case 0x0292: return "QueryPerformanceCounter";
+ case 0x0293: return "QueryPerformanceFrequency";
+ case 0x0294: return "QueryWin31IniFilesMappedToRegistry";
+ case 0x0295: return "QueueUserAPC";
+ case 0x0296: return "QueueUserWorkItem";
+ case 0x0297: return "RaiseException";
+ case 0x0298: return "ReadConsoleA";
+ case 0x0299: return "ReadConsoleInputA";
+ case 0x029a: return "ReadConsoleInputExA";
+ case 0x029b: return "ReadConsoleInputExW";
+ case 0x029c: return "ReadConsoleInputW";
+ case 0x029d: return "ReadConsoleOutputA";
+ case 0x029e: return "ReadConsoleOutputAttribute";
+ case 0x029f: return "ReadConsoleOutputCharacterA";
+ case 0x02a0: return "ReadConsoleOutputCharacterW";
+ case 0x02a1: return "ReadConsoleOutputW";
+ case 0x02a2: return "ReadConsoleW";
+ case 0x02a3: return "ReadDirectoryChangesW";
+ case 0x02a4: return "ReadFile";
+ case 0x02a5: return "ReadFileEx";
+ case 0x02a6: return "ReadFileScatter";
+ case 0x02a7: return "ReadProcessMemory";
+ case 0x02a8: return "RegisterConsoleIME";
+ case 0x02a9: return "RegisterConsoleOS2";
+ case 0x02aa: return "RegisterConsoleVDM";
+ case 0x02ab: return "RegisterWaitForInputIdle";
+ case 0x02ac: return "RegisterWaitForSingleObject";
+ case 0x02ad: return "RegisterWaitForSingleObjectEx";
+ case 0x02ae: return "RegisterWowBaseHandlers";
+ case 0x02af: return "RegisterWowExec";
+ case 0x02b0: return "ReleaseActCtx";
+ case 0x02b1: return "ReleaseMutex";
+ case 0x02b2: return "ReleaseSemaphore";
+ case 0x02b3: return "RemoveDirectoryA";
+ case 0x02b4: return "RemoveDirectoryW";
+ case 0x02b5: return "RemoveLocalAlternateComputerNameA";
+ case 0x02b6: return "RemoveLocalAlternateComputerNameW";
+ case 0x02b7: return "RemoveVectoredExceptionHandler";
+ case 0x02b8: return "ReplaceFile";
+ case 0x02b9: return "ReplaceFileA";
+ case 0x02ba: return "ReplaceFileW";
+ case 0x02bb: return "RequestDeviceWakeup";
+ case 0x02bc: return "RequestWakeupLatency";
+ case 0x02bd: return "ResetEvent";
+ case 0x02be: return "ResetWriteWatch";
+ case 0x02bf: return "RestoreLastError";
+ case 0x02c0: return "ResumeThread";
+ case 0x02c1: return "RtlCaptureContext";
+ case 0x02c2: return "RtlCaptureStackBackTrace";
+ case 0x02c3: return "RtlFillMemory";
+ case 0x02c4: return "RtlMoveMemory";
+ case 0x02c5: return "RtlUnwind";
+ case 0x02c6: return "RtlZeroMemory";
+ case 0x02c7: return "ScrollConsoleScreenBufferA";
+ case 0x02c8: return "ScrollConsoleScreenBufferW";
+ case 0x02c9: return "SearchPathA";
+ case 0x02ca: return "SearchPathW";
+ case 0x02cb: return "SetCPGlobal";
+ case 0x02cc: return "SetCalendarInfoA";
+ case 0x02cd: return "SetCalendarInfoW";
+ case 0x02ce: return "SetClientTimeZoneInformation";
+ case 0x02cf: return "SetComPlusPackageInstallStatus";
+ case 0x02d0: return "SetCommBreak";
+ case 0x02d1: return "SetCommConfig";
+ case 0x02d2: return "SetCommMask";
+ case 0x02d3: return "SetCommState";
+ case 0x02d4: return "SetCommTimeouts";
+ case 0x02d5: return "SetComputerNameA";
+ case 0x02d6: return "SetComputerNameExA";
+ case 0x02d7: return "SetComputerNameExW";
+ case 0x02d8: return "SetComputerNameW";
+ case 0x02d9: return "SetConsoleActiveScreenBuffer";
+ case 0x02da: return "SetConsoleCP";
+ case 0x02db: return "SetConsoleCommandHistoryMode";
+ case 0x02dc: return "SetConsoleCtrlHandler";
+ case 0x02dd: return "SetConsoleCursor";
+ case 0x02de: return "SetConsoleCursorInfo";
+ case 0x02df: return "SetConsoleCursorMode";
+ case 0x02e0: return "SetConsoleCursorPosition";
+ case 0x02e1: return "SetConsoleDisplayMode";
+ case 0x02e2: return "SetConsoleFont";
+ case 0x02e3: return "SetConsoleHardwareState";
+ case 0x02e4: return "SetConsoleIcon";
+ case 0x02e5: return "SetConsoleInputExeNameA";
+ case 0x02e6: return "SetConsoleInputExeNameW";
+ case 0x02e7: return "SetConsoleKeyShortcuts";
+ case 0x02e8: return "SetConsoleLocalEUDC";
+ case 0x02e9: return "SetConsoleMaximumWindowSize";
+ case 0x02ea: return "SetConsoleMenuClose";
+ case 0x02eb: return "SetConsoleMode";
+ case 0x02ec: return "SetConsoleNlsMode";
+ case 0x02ed: return "SetConsoleNumberOfCommandsA";
+ case 0x02ee: return "SetConsoleNumberOfCommandsW";
+ case 0x02ef: return "SetConsoleOS2OemFormat";
+ case 0x02f0: return "SetConsoleOutputCP";
+ case 0x02f1: return "SetConsolePalette";
+ case 0x02f2: return "SetConsoleScreenBufferSize";
+ case 0x02f3: return "SetConsoleTextAttribute";
+ case 0x02f4: return "SetConsoleTitleA";
+ case 0x02f5: return "SetConsoleTitleW";
+ case 0x02f6: return "SetConsoleWindowInfo";
+ case 0x02f7: return "SetCriticalSectionSpinCount";
+ case 0x02f8: return "SetCurrentDirectoryA";
+ case 0x02f9: return "SetCurrentDirectoryW";
+ case 0x02fa: return "SetDefaultCommConfigA";
+ case 0x02fb: return "SetDefaultCommConfigW";
+ case 0x02fc: return "SetDllDirectoryA";
+ case 0x02fd: return "SetDllDirectoryW";
+ case 0x02fe: return "SetEndOfFile";
+ case 0x02ff: return "SetEnvironmentVariableA";
+ case 0x0300: return "SetEnvironmentVariableW";
+ case 0x0301: return "SetErrorMode";
+ case 0x0302: return "SetEvent";
+ case 0x0303: return "SetFileApisToANSI";
+ case 0x0304: return "SetFileApisToOEM";
+ case 0x0305: return "SetFileAttributesA";
+ case 0x0306: return "SetFileAttributesW";
+ case 0x0307: return "SetFilePointer";
+ case 0x0308: return "SetFilePointerEx";
+ case 0x0309: return "SetFileShortNameA";
+ case 0x030a: return "SetFileShortNameW";
+ case 0x030b: return "SetFileTime";
+ case 0x030c: return "SetFileValidData";
+ case 0x030d: return "SetFirmwareEnvironmentVariableA";
+ case 0x030e: return "SetFirmwareEnvironmentVariableW";
+ case 0x030f: return "SetHandleContext";
+ case 0x0310: return "SetHandleCount";
+ case 0x0311: return "SetHandleInformation";
+ case 0x0312: return "SetInformationJobObject";
+ case 0x0313: return "SetLastConsoleEventActive";
+ case 0x0314: return "SetLastError";
+ case 0x0315: return "SetLocalPrimaryComputerNameA";
+ case 0x0316: return "SetLocalPrimaryComputerNameW";
+ case 0x0317: return "SetLocalTime";
+ case 0x0318: return "SetLocaleInfoA";
+ case 0x0319: return "SetLocaleInfoW";
+ case 0x031a: return "SetMailslotInfo";
+ case 0x031b: return "SetMessageWaitingIndicator";
+ case 0x031c: return "SetNamedPipeHandleState";
+ case 0x031d: return "SetPriorityClass";
+ case 0x031e: return "SetProcessAffinityMask";
+ case 0x031f: return "SetProcessPriorityBoost";
+ case 0x0320: return "SetProcessShutdownParameters";
+ case 0x0321: return "SetProcessWorkingSetSize";
+ case 0x0322: return "SetStdHandle";
+ case 0x0323: return "SetSystemPowerState";
+ case 0x0324: return "SetSystemTime";
+ case 0x0325: return "SetSystemTimeAdjustment";
+ case 0x0326: return "SetTapeParameters";
+ case 0x0327: return "SetTapePosition";
+ case 0x0328: return "SetTermsrvAppInstallMode";
+ case 0x0329: return "SetThreadAffinityMask";
+ case 0x032a: return "SetThreadContext";
+ case 0x032b: return "SetThreadExecutionState";
+ case 0x032c: return "SetThreadIdealProcessor";
+ case 0x032d: return "SetThreadLocale";
+ case 0x032e: return "SetThreadPriority";
+ case 0x032f: return "SetThreadPriorityBoost";
+ case 0x0330: return "SetThreadUILanguage";
+ case 0x0331: return "SetTimeZoneInformation";
+ case 0x0332: return "SetTimerQueueTimer";
+ case 0x0333: return "SetUnhandledExceptionFilter";
+ case 0x0334: return "SetUserGeoID";
+ case 0x0335: return "SetVDMCurrentDirectories";
+ case 0x0336: return "SetVolumeLabelA";
+ case 0x0337: return "SetVolumeLabelW";
+ case 0x0338: return "SetVolumeMountPointA";
+ case 0x0339: return "SetVolumeMountPointW";
+ case 0x033a: return "SetWaitableTimer";
+ case 0x033b: return "SetupComm";
+ case 0x033c: return "ShowConsoleCursor";
+ case 0x033d: return "SignalObjectAndWait";
+ case 0x033e: return "SizeofResource";
+ case 0x033f: return "Sleep";
+ case 0x0340: return "SleepEx";
+ case 0x0341: return "SuspendThread";
+ case 0x0342: return "SwitchToFiber";
+ case 0x0343: return "SwitchToThread";
+ case 0x0344: return "SystemTimeToFileTime";
+ case 0x0345: return "SystemTimeToTzSpecificLocalTime";
+ case 0x0346: return "TerminateJobObject";
+ case 0x0347: return "TerminateProcess";
+ case 0x0348: return "TerminateThread";
+ case 0x0349: return "TermsrvAppInstallMode";
+ case 0x034a: return "Thread32First";
+ case 0x034b: return "Thread32Next";
+ case 0x034c: return "TlsAlloc";
+ case 0x034d: return "TlsFree";
+ case 0x034e: return "TlsGetValue";
+ case 0x034f: return "TlsSetValue";
+ case 0x0350: return "Toolhelp32ReadProcessMemory";
+ case 0x0351: return "TransactNamedPipe";
+ case 0x0352: return "TransmitCommChar";
+ case 0x0353: return "TrimVirtualBuffer";
+ case 0x0354: return "TryEnterCriticalSection";
+ case 0x0355: return "TzSpecificLocalTimeToSystemTime";
+ case 0x0356: return "UTRegister";
+ case 0x0357: return "UTUnRegister";
+ case 0x0358: return "UnhandledExceptionFilter";
+ case 0x0359: return "UnlockFile";
+ case 0x035a: return "UnlockFileEx";
+ case 0x035b: return "UnmapViewOfFile";
+ case 0x035c: return "UnregisterConsoleIME";
+ case 0x035d: return "UnregisterWait";
+ case 0x035e: return "UnregisterWaitEx";
+ case 0x035f: return "UpdateResourceA";
+ case 0x0360: return "UpdateResourceW";
+ case 0x0361: return "VDMConsoleOperation";
+ case 0x0362: return "VDMOperationStarted";
+ case 0x0363: return "ValidateLCType";
+ case 0x0364: return "ValidateLocale";
+ case 0x0365: return "VerLanguageNameA";
+ case 0x0366: return "VerLanguageNameW";
+ case 0x0367: return "VerSetConditionMask";
+ case 0x0368: return "VerifyConsoleIoHandle";
+ case 0x0369: return "VerifyVersionInfoA";
+ case 0x036a: return "VerifyVersionInfoW";
+ case 0x036b: return "VirtualAlloc";
+ case 0x036c: return "VirtualAllocEx";
+ case 0x036d: return "VirtualBufferExceptionHandler";
+ case 0x036e: return "VirtualFree";
+ case 0x036f: return "VirtualFreeEx";
+ case 0x0370: return "VirtualLock";
+ case 0x0371: return "VirtualProtect";
+ case 0x0372: return "VirtualProtectEx";
+ case 0x0373: return "VirtualQuery";
+ case 0x0374: return "VirtualQueryEx";
+ case 0x0375: return "VirtualUnlock";
+ case 0x0376: return "WTSGetActiveConsoleSessionId";
+ case 0x0377: return "WaitCommEvent";
+ case 0x0378: return "WaitForDebugEvent";
+ case 0x0379: return "WaitForMultipleObjects";
+ case 0x037a: return "WaitForMultipleObjectsEx";
+ case 0x037b: return "WaitForSingleObject";
+ case 0x037c: return "WaitForSingleObjectEx";
+ case 0x037d: return "WaitNamedPipeA";
+ case 0x037e: return "WaitNamedPipeW";
+ case 0x037f: return "WideCharToMultiByte";
+ case 0x0380: return "WinExec";
+ case 0x0381: return "WriteConsoleA";
+ case 0x0382: return "WriteConsoleInputA";
+ case 0x0383: return "WriteConsoleInputVDMA";
+ case 0x0384: return "WriteConsoleInputVDMW";
+ case 0x0385: return "WriteConsoleInputW";
+ case 0x0386: return "WriteConsoleOutputA";
+ case 0x0387: return "WriteConsoleOutputAttribute";
+ case 0x0388: return "WriteConsoleOutputCharacterA";
+ case 0x0389: return "WriteConsoleOutputCharacterW";
+ case 0x038a: return "WriteConsoleOutputW";
+ case 0x038b: return "WriteConsoleW";
+ case 0x038c: return "WriteFile";
+ case 0x038d: return "WriteFileEx";
+ case 0x038e: return "WriteFileGather";
+ case 0x038f: return "WritePrivateProfileSectionA";
+ case 0x0390: return "WritePrivateProfileSectionW";
+ case 0x0391: return "WritePrivateProfileStringA";
+ case 0x0392: return "WritePrivateProfileStringW";
+ case 0x0393: return "WritePrivateProfileStructA";
+ case 0x0394: return "WritePrivateProfileStructW";
+ case 0x0395: return "WriteProcessMemory";
+ case 0x0396: return "WriteProfileSectionA";
+ case 0x0397: return "WriteProfileSectionW";
+ case 0x0398: return "WriteProfileStringA";
+ case 0x0399: return "WriteProfileStringW";
+ case 0x039a: return "WriteTapemark";
+ case 0x039b: return "ZombifyActCtx";
+ case 0x039c: return "_hread";
+ case 0x039d: return "_hwrite";
+ case 0x039e: return "_lclose";
+ case 0x039f: return "_lcreat";
+ case 0x03a0: return "_llseek";
+ case 0x03a1: return "_lopen";
+ case 0x03a2: return "_lread";
+ case 0x03a3: return "_lwrite";
+ case 0x03a4: return "lstrcat";
+ case 0x03a5: return "lstrcatA";
+ case 0x03a6: return "lstrcatW";
+ case 0x03a7: return "lstrcmp";
+ case 0x03a8: return "lstrcmpA";
+ case 0x03a9: return "lstrcmpW";
+ case 0x03aa: return "lstrcmpi";
+ case 0x03ab: return "lstrcmpiA";
+ case 0x03ac: return "lstrcmpiW";
+ case 0x03ad: return "lstrcpy";
+ case 0x03ae: return "lstrcpyA";
+ case 0x03af: return "lstrcpyW";
+ case 0x03b0: return "lstrcpyn";
+ case 0x03b1: return "lstrcpynA";
+ case 0x03b2: return "lstrcpynW";
+ case 0x03b3: return "lstrlen";
+ case 0x03b4: return "lstrlenA";
+ case 0x03b5: return "lstrlenW";
}
return nullptr;
}
-}
}
-#endif
+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/libraries_table.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/libraries_table.hpp
index a933614b92f..0647c55e49a 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/libraries_table.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/libraries_table.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/mfc42u_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/mfc42u_dll_lookup.hpp
index ebc0b734fb6..b46e3764f3c 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/mfc42u_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/mfc42u_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,24 +17,26 @@
#define LIEF_PE_MFC42U_DLL_LOOKUP_H
#include <cstdint>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
inline const char* mfc42u_dll_lookup(uint32_t i) {
- switch(i) {
- case 0x0005: return "?classCCachedDataPathProperty@CCachedDataPathProperty@@2UCRuntimeClass@@B";
- case 0x0006: return "?classCDataPathProperty@CDataPathProperty@@2UCRuntimeClass@@B";
- case 0x0002: return "DllCanUnloadNow";
- case 0x0001: return "DllGetClassObject";
- case 0x0003: return "DllRegisterServer";
- case 0x0004: return "DllUnregisterServer";
+ switch (i) {
+ case 0x0005:
+ return "?classCCachedDataPathProperty@CCachedDataPathProperty@@"
+ "2UCRuntimeClass@@B";
+ case 0x0006:
+ return "?classCDataPathProperty@CDataPathProperty@@2UCRuntimeClass@@B";
+ case 0x0002: return "DllCanUnloadNow";
+ case 0x0001: return "DllGetClassObject";
+ case 0x0003: return "DllRegisterServer";
+ case 0x0004: return "DllUnregisterServer";
}
return nullptr;
}
-}
}
-#endif
+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcp110_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcp110_dll_lookup.hpp
index 68fa9bfc1de..8ee076d4fde 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcp110_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcp110_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,1609 +17,3290 @@
#define LIEF_PE_MSVCP110_DLL_LOOKUP_H
#include <cstdint>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
inline const char* msvcp110_dll_lookup(uint32_t i) {
- switch(i) {
- case 0x0001: return "??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z";
- case 0x0002: return "??$_Getvals@_W@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z";
- case 0x0003: return "??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z";
- case 0x0004: return "??0?$_Yarn@D@std@@QEAA@AEBV01@@Z";
- case 0x0005: return "??0?$_Yarn@D@std@@QEAA@PEBD@Z";
- case 0x0006: return "??0?$_Yarn@D@std@@QEAA@XZ";
- case 0x0007: return "??0?$_Yarn@_W@std@@QEAA@XZ";
- case 0x0008: return "??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ";
- case 0x0009: return "??0?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z";
- case 0x000a: return "??0?$basic_ios@GU?$char_traits@G@std@@@std@@IEAA@XZ";
- case 0x000b: return "??0?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z";
- case 0x000c: return "??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAA@XZ";
- case 0x000d: return "??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z";
- case 0x000e: return "??0?$basic_iostream@DU?$char_traits@D@std@@@std@@IEAA@$$QEAV01@@Z";
- case 0x000f: return "??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z";
- case 0x0010: return "??0?$basic_iostream@GU?$char_traits@G@std@@@std@@IEAA@$$QEAV01@@Z";
- case 0x0011: return "??0?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z";
- case 0x0012: return "??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IEAA@$$QEAV01@@Z";
- case 0x0013: return "??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z";
- case 0x0014: return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@IEAA@$$QEAV01@@Z";
- case 0x0015: return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z";
- case 0x0016: return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z";
- case 0x0017: return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z";
- case 0x0018: return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@IEAA@$$QEAV01@@Z";
- case 0x0019: return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N1@Z";
- case 0x001a: return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z";
- case 0x001b: return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z";
- case 0x001c: return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAA@$$QEAV01@@Z";
- case 0x001d: return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z";
- case 0x001e: return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z";
- case 0x001f: return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@@Z";
- case 0x0020: return "??0?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAA@$$QEAV01@@Z";
- case 0x0021: return "??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z";
- case 0x0022: return "??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z";
- case 0x0023: return "??0?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAA@$$QEAV01@@Z";
- case 0x0024: return "??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z";
- case 0x0025: return "??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z";
- case 0x0026: return "??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAA@$$QEAV01@@Z";
- case 0x0027: return "??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z";
- case 0x0028: return "??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z";
- case 0x0029: return "??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@AEBV01@@Z";
- case 0x002a: return "??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@W4_Uninitialized@1@@Z";
- case 0x002b: return "??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@XZ";
- case 0x002c: return "??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@AEBV01@@Z";
- case 0x002d: return "??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@W4_Uninitialized@1@@Z";
- case 0x002e: return "??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@XZ";
- case 0x002f: return "??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@AEBV01@@Z";
- case 0x0030: return "??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@W4_Uninitialized@1@@Z";
- case 0x0031: return "??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@XZ";
- case 0x0032: return "??0?$codecvt@DDH@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x0033: return "??0?$codecvt@DDH@std@@QEAA@_K@Z";
- case 0x0034: return "??0?$codecvt@GDH@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x0035: return "??0?$codecvt@GDH@std@@QEAA@_K@Z";
- case 0x0036: return "??0?$codecvt@_WDH@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x0037: return "??0?$codecvt@_WDH@std@@QEAA@_K@Z";
- case 0x0038: return "??0?$ctype@D@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x0039: return "??0?$ctype@D@std@@QEAA@PEBF_N_K@Z";
- case 0x003a: return "??0?$ctype@G@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x003b: return "??0?$ctype@G@std@@QEAA@_K@Z";
- case 0x003c: return "??0?$ctype@_W@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x003d: return "??0?$ctype@_W@std@@QEAA@_K@Z";
- case 0x003e: return "??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x003f: return "??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@_K@Z";
- case 0x0040: return "??0?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x0041: return "??0?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@_K@Z";
- case 0x0042: return "??0?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x0043: return "??0?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@_K@Z";
- case 0x0044: return "??0?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x0045: return "??0?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@_K@Z";
- case 0x0046: return "??0?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x0047: return "??0?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@_K@Z";
- case 0x0048: return "??0?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x0049: return "??0?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@_K@Z";
- case 0x004a: return "??0?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAA@PEBD_K@Z";
- case 0x004b: return "??0?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x004c: return "??0?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@_K@Z";
- case 0x004d: return "??0?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAA@PEBD_K@Z";
- case 0x004e: return "??0?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x004f: return "??0?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@_K@Z";
- case 0x0050: return "??0?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAA@PEBD_K@Z";
- case 0x0051: return "??0?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x0052: return "??0?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@_K@Z";
- case 0x0053: return "??0?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x0054: return "??0?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@_K@Z";
- case 0x0055: return "??0?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAA@PEBD_K@Z";
- case 0x0056: return "??0?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x0057: return "??0?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@_K@Z";
- case 0x0058: return "??0?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAA@PEBD_K@Z";
- case 0x0059: return "??0?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x005a: return "??0?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@_K@Z";
- case 0x005b: return "??0Init@ios_base@std@@QEAA@XZ";
- case 0x005c: return "??0_Concurrent_queue_base_v4@details@Concurrency@@IEAA@_K@Z";
- case 0x005d: return "??0_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAA@AEBV_Concurrent_queue_base_v4@12@@Z";
- case 0x005e: return "??0_Container_base12@std@@QEAA@AEBU01@@Z";
- case 0x005f: return "??0_Container_base12@std@@QEAA@XZ";
- case 0x0060: return "??0_Facet_base@std@@QEAA@AEBV01@@Z";
- case 0x0061: return "??0_Facet_base@std@@QEAA@XZ";
- case 0x0062: return "??0_Init_locks@std@@QEAA@XZ";
- case 0x0063: return "??0_Locimp@locale@std@@AEAA@AEBV012@@Z";
- case 0x0064: return "??0_Locimp@locale@std@@AEAA@_N@Z";
- case 0x0065: return "??0_Locinfo@std@@QEAA@HPEBD@Z";
- case 0x0066: return "??0_Locinfo@std@@QEAA@PEBD@Z";
- case 0x0067: return "??0_Lockit@std@@QEAA@H@Z";
- case 0x0068: return "??0_Lockit@std@@QEAA@XZ";
- case 0x0069: return "??0_Pad@std@@QEAA@AEBV01@@Z";
- case 0x006a: return "??0_Pad@std@@QEAA@XZ";
- case 0x006b: return "??0_Runtime_object@details@Concurrency@@QEAA@H@Z";
- case 0x006c: return "??0_Runtime_object@details@Concurrency@@QEAA@XZ";
- case 0x006d: return "??0_Timevec@std@@QEAA@AEBV01@@Z";
- case 0x006e: return "??0_Timevec@std@@QEAA@PEAX@Z";
- case 0x006f: return "??0_UShinit@std@@QEAA@XZ";
- case 0x0070: return "??0_Winit@std@@QEAA@XZ";
- case 0x0071: return "??0agent@Concurrency@@QEAA@AEAVScheduleGroup@1@@Z";
- case 0x0072: return "??0agent@Concurrency@@QEAA@AEAVScheduler@1@@Z";
- case 0x0073: return "??0agent@Concurrency@@QEAA@XZ";
- case 0x0074: return "??0codecvt_base@std@@QEAA@_K@Z";
- case 0x0075: return "??0ctype_base@std@@QEAA@_K@Z";
- case 0x0076: return "??0facet@locale@std@@IEAA@_K@Z";
- case 0x0077: return "??0id@locale@std@@QEAA@_K@Z";
- case 0x0078: return "??0ios_base@std@@IEAA@XZ";
- case 0x0079: return "??0time_base@std@@QEAA@_K@Z";
- case 0x007a: return "??1?$_Yarn@D@std@@QEAA@XZ";
- case 0x007b: return "??1?$_Yarn@_W@std@@QEAA@XZ";
- case 0x007c: return "??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ";
- case 0x007d: return "??1?$basic_ios@GU?$char_traits@G@std@@@std@@UEAA@XZ";
- case 0x007e: return "??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
- case 0x007f: return "??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UEAA@XZ";
- case 0x0080: return "??1?$basic_iostream@GU?$char_traits@G@std@@@std@@UEAA@XZ";
- case 0x0081: return "??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
- case 0x0082: return "??1?$basic_istream@DU?$char_traits@D@std@@@std@@UEAA@XZ";
- case 0x0083: return "??1?$basic_istream@GU?$char_traits@G@std@@@std@@UEAA@XZ";
- case 0x0084: return "??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
- case 0x0085: return "??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ";
- case 0x0086: return "??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UEAA@XZ";
- case 0x0087: return "??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
- case 0x0088: return "??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ";
- case 0x0089: return "??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAA@XZ";
- case 0x008a: return "??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
- case 0x008b: return "??1?$codecvt@DDH@std@@MEAA@XZ";
- case 0x008c: return "??1?$codecvt@GDH@std@@MEAA@XZ";
- case 0x008d: return "??1?$codecvt@_WDH@std@@MEAA@XZ";
- case 0x008e: return "??1?$ctype@D@std@@MEAA@XZ";
- case 0x008f: return "??1?$ctype@G@std@@MEAA@XZ";
- case 0x0090: return "??1?$ctype@_W@std@@MEAA@XZ";
- case 0x0091: return "??1?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEAA@XZ";
- case 0x0092: return "??1?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEAA@XZ";
- case 0x0093: return "??1?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEAA@XZ";
- case 0x0094: return "??1?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEAA@XZ";
- case 0x0095: return "??1?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEAA@XZ";
- case 0x0096: return "??1?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEAA@XZ";
- case 0x0097: return "??1?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEAA@XZ";
- case 0x0098: return "??1?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEAA@XZ";
- case 0x0099: return "??1?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEAA@XZ";
- case 0x009a: return "??1?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEAA@XZ";
- case 0x009b: return "??1?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEAA@XZ";
- case 0x009c: return "??1?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEAA@XZ";
- case 0x009d: return "??1Init@ios_base@std@@QEAA@XZ";
- case 0x009e: return "??1_Concurrent_queue_base_v4@details@Concurrency@@MEAA@XZ";
- case 0x009f: return "??1_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAA@XZ";
- case 0x00a0: return "??1_Concurrent_vector_base_v4@details@Concurrency@@IEAA@XZ";
- case 0x00a1: return "??1_Container_base12@std@@QEAA@XZ";
- case 0x00a2: return "??1_Facet_base@std@@UEAA@XZ";
- case 0x00a3: return "??1_Init_locks@std@@QEAA@XZ";
- case 0x00a4: return "??1_Locimp@locale@std@@MEAA@XZ";
- case 0x00a5: return "??1_Locinfo@std@@QEAA@XZ";
- case 0x00a6: return "??1_Lockit@std@@QEAA@XZ";
- case 0x00a7: return "??1_Pad@std@@QEAA@XZ";
- case 0x00a8: return "??1_Timevec@std@@QEAA@XZ";
- case 0x00a9: return "??1_UShinit@std@@QEAA@XZ";
- case 0x00aa: return "??1_Winit@std@@QEAA@XZ";
- case 0x00ab: return "??1agent@Concurrency@@UEAA@XZ";
- case 0x00ac: return "??1codecvt_base@std@@UEAA@XZ";
- case 0x00ad: return "??1ctype_base@std@@UEAA@XZ";
- case 0x00ae: return "??1facet@locale@std@@MEAA@XZ";
- case 0x00af: return "??1ios_base@std@@UEAA@XZ";
- case 0x00b0: return "??1time_base@std@@UEAA@XZ";
- case 0x00b1: return "??4?$_Iosb@H@std@@QEAAAEAV01@AEBV01@@Z";
- case 0x00b2: return "??4?$_Yarn@D@std@@QEAAAEAV01@AEBV01@@Z";
- case 0x00b3: return "??4?$_Yarn@D@std@@QEAAAEAV01@PEBD@Z";
- case 0x00b4: return "??4?$_Yarn@_W@std@@QEAAAEAV01@PEB_W@Z";
- case 0x00b5: return "??4?$basic_iostream@DU?$char_traits@D@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
- case 0x00b6: return "??4?$basic_iostream@GU?$char_traits@G@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
- case 0x00b7: return "??4?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
- case 0x00b8: return "??4?$basic_istream@DU?$char_traits@D@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
- case 0x00b9: return "??4?$basic_istream@GU?$char_traits@G@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
- case 0x00ba: return "??4?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
- case 0x00bb: return "??4?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
- case 0x00bc: return "??4?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
- case 0x00bd: return "??4?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
- case 0x00be: return "??4?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAAEAV01@AEBV01@@Z";
- case 0x00bf: return "??4?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAAEAV01@AEBV01@@Z";
- case 0x00c0: return "??4?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@AEBV01@@Z";
- case 0x00c1: return "??4Init@ios_base@std@@QEAAAEAV012@AEBV012@@Z";
- case 0x00c2: return "??4_Container_base0@std@@QEAAAEAU01@AEBU01@@Z";
- case 0x00c3: return "??4_Container_base12@std@@QEAAAEAU01@AEBU01@@Z";
- case 0x00c4: return "??4_Facet_base@std@@QEAAAEAV01@AEBV01@@Z";
- case 0x00c5: return "??4_Init_locks@std@@QEAAAEAV01@AEBV01@@Z";
- case 0x00c6: return "??4_Pad@std@@QEAAAEAV01@AEBV01@@Z";
- case 0x00c7: return "??4_Timevec@std@@QEAAAEAV01@AEBV01@@Z";
- case 0x00c8: return "??4_UShinit@std@@QEAAAEAV01@AEBV01@@Z";
- case 0x00c9: return "??4_Winit@std@@QEAAAEAV01@AEBV01@@Z";
- case 0x00ca: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAF@Z";
- case 0x00cb: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAG@Z";
- case 0x00cc: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAH@Z";
- case 0x00cd: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAI@Z";
- case 0x00ce: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAJ@Z";
- case 0x00cf: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAK@Z";
- case 0x00d0: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAM@Z";
- case 0x00d1: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAN@Z";
- case 0x00d2: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAO@Z";
- case 0x00d3: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAPEAX@Z";
- case 0x00d4: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_J@Z";
- case 0x00d5: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_K@Z";
- case 0x00d6: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_N@Z";
- case 0x00d7: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z";
- case 0x00d8: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z";
- case 0x00d9: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z";
- case 0x00da: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z";
- case 0x00db: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAF@Z";
- case 0x00dc: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAG@Z";
- case 0x00dd: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAH@Z";
- case 0x00de: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAI@Z";
- case 0x00df: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAJ@Z";
- case 0x00e0: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAK@Z";
- case 0x00e1: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAM@Z";
- case 0x00e2: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAN@Z";
- case 0x00e3: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAO@Z";
- case 0x00e4: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAPEAX@Z";
- case 0x00e5: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_J@Z";
- case 0x00e6: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_K@Z";
- case 0x00e7: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_N@Z";
- case 0x00e8: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z";
- case 0x00e9: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z";
- case 0x00ea: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z";
- case 0x00eb: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z";
- case 0x00ec: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAF@Z";
- case 0x00ed: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAG@Z";
- case 0x00ee: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAH@Z";
- case 0x00ef: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAI@Z";
- case 0x00f0: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAJ@Z";
- case 0x00f1: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAK@Z";
- case 0x00f2: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAM@Z";
- case 0x00f3: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAN@Z";
- case 0x00f4: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAO@Z";
- case 0x00f5: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAPEAX@Z";
- case 0x00f6: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_J@Z";
- case 0x00f7: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_K@Z";
- case 0x00f8: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_N@Z";
- case 0x00f9: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z";
- case 0x00fa: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z";
- case 0x00fb: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z";
- case 0x00fc: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z";
- case 0x00fd: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@F@Z";
- case 0x00fe: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@G@Z";
- case 0x00ff: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z";
- case 0x0100: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@I@Z";
- case 0x0101: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@J@Z";
- case 0x0102: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@K@Z";
- case 0x0103: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@M@Z";
- case 0x0104: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@N@Z";
- case 0x0105: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@O@Z";
- case 0x0106: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z";
- case 0x0107: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z";
- case 0x0108: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z";
- case 0x0109: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z";
- case 0x010a: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEBX@Z";
- case 0x010b: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_J@Z";
- case 0x010c: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_K@Z";
- case 0x010d: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_N@Z";
- case 0x010e: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@F@Z";
- case 0x010f: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@G@Z";
- case 0x0110: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@H@Z";
- case 0x0111: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@I@Z";
- case 0x0112: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@J@Z";
- case 0x0113: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@K@Z";
- case 0x0114: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@M@Z";
- case 0x0115: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@N@Z";
- case 0x0116: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@O@Z";
- case 0x0117: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z";
- case 0x0118: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z";
- case 0x0119: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z";
- case 0x011a: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z";
- case 0x011b: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEBX@Z";
- case 0x011c: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_J@Z";
- case 0x011d: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_K@Z";
- case 0x011e: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_N@Z";
- case 0x011f: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@F@Z";
- case 0x0120: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@G@Z";
- case 0x0121: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@H@Z";
- case 0x0122: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@I@Z";
- case 0x0123: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@J@Z";
- case 0x0124: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@K@Z";
- case 0x0125: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@M@Z";
- case 0x0126: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@N@Z";
- case 0x0127: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@O@Z";
- case 0x0128: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z";
- case 0x0129: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z";
- case 0x012a: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z";
- case 0x012b: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z";
- case 0x012c: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEBX@Z";
- case 0x012d: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_J@Z";
- case 0x012e: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_K@Z";
- case 0x012f: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_N@Z";
- case 0x0130: return "??7ios_base@std@@QEBA_NXZ";
- case 0x0131: return "??Bid@locale@std@@QEAA_KXZ";
- case 0x0132: return "??Bios_base@std@@QEBAPEAXXZ";
- case 0x0133: return "??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@";
- case 0x0134: return "??_7?$basic_ios@GU?$char_traits@G@std@@@std@@6B@";
- case 0x0135: return "??_7?$basic_ios@_WU?$char_traits@_W@std@@@std@@6B@";
- case 0x0136: return "??_7?$basic_iostream@DU?$char_traits@D@std@@@std@@6B@";
- case 0x0137: return "??_7?$basic_iostream@GU?$char_traits@G@std@@@std@@6B@";
- case 0x0138: return "??_7?$basic_iostream@_WU?$char_traits@_W@std@@@std@@6B@";
- case 0x0139: return "??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@";
- case 0x013a: return "??_7?$basic_istream@GU?$char_traits@G@std@@@std@@6B@";
- case 0x013b: return "??_7?$basic_istream@_WU?$char_traits@_W@std@@@std@@6B@";
- case 0x013c: return "??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@";
- case 0x013d: return "??_7?$basic_ostream@GU?$char_traits@G@std@@@std@@6B@";
- case 0x013e: return "??_7?$basic_ostream@_WU?$char_traits@_W@std@@@std@@6B@";
- case 0x013f: return "??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@";
- case 0x0140: return "??_7?$basic_streambuf@GU?$char_traits@G@std@@@std@@6B@";
- case 0x0141: return "??_7?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@6B@";
- case 0x0142: return "??_7?$codecvt@DDH@std@@6B@";
- case 0x0143: return "??_7?$codecvt@GDH@std@@6B@";
- case 0x0144: return "??_7?$codecvt@_WDH@std@@6B@";
- case 0x0145: return "??_7?$ctype@D@std@@6B@";
- case 0x0146: return "??_7?$ctype@G@std@@6B@";
- case 0x0147: return "??_7?$ctype@_W@std@@6B@";
- case 0x0148: return "??_7?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@";
- case 0x0149: return "??_7?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@6B@";
- case 0x014a: return "??_7?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@6B@";
- case 0x014b: return "??_7?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@";
- case 0x014c: return "??_7?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@6B@";
- case 0x014d: return "??_7?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@6B@";
- case 0x014e: return "??_7?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@";
- case 0x014f: return "??_7?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@6B@";
- case 0x0150: return "??_7?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@6B@";
- case 0x0151: return "??_7?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@";
- case 0x0152: return "??_7?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@6B@";
- case 0x0153: return "??_7?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@6B@";
- case 0x0154: return "??_7_Facet_base@std@@6B@";
- case 0x0155: return "??_7_Locimp@locale@std@@6B@";
- case 0x0156: return "??_7_Pad@std@@6B@";
- case 0x0157: return "??_7codecvt_base@std@@6B@";
- case 0x0158: return "??_7ctype_base@std@@6B@";
- case 0x0159: return "??_7facet@locale@std@@6B@";
- case 0x015a: return "??_7ios_base@std@@6B@";
- case 0x015b: return "??_7time_base@std@@6B@";
- case 0x015c: return "??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@";
- case 0x015d: return "??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@";
- case 0x015e: return "??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@";
- case 0x015f: return "??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@";
- case 0x0160: return "??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@";
- case 0x0161: return "??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@";
- case 0x0162: return "??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@";
- case 0x0163: return "??_8?$basic_istream@GU?$char_traits@G@std@@@std@@7B@";
- case 0x0164: return "??_8?$basic_istream@_WU?$char_traits@_W@std@@@std@@7B@";
- case 0x0165: return "??_8?$basic_ostream@DU?$char_traits@D@std@@@std@@7B@";
- case 0x0166: return "??_8?$basic_ostream@GU?$char_traits@G@std@@@std@@7B@";
- case 0x0167: return "??_8?$basic_ostream@_WU?$char_traits@_W@std@@@std@@7B@";
- case 0x0168: return "??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
- case 0x0169: return "??_D?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
- case 0x016a: return "??_D?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
- case 0x016b: return "??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
- case 0x016c: return "??_D?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
- case 0x016d: return "??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
- case 0x016e: return "??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
- case 0x016f: return "??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
- case 0x0170: return "??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
- case 0x0171: return "??_F?$codecvt@DDH@std@@QEAAXXZ";
- case 0x0172: return "??_F?$codecvt@GDH@std@@QEAAXXZ";
- case 0x0173: return "??_F?$codecvt@_WDH@std@@QEAAXXZ";
- case 0x0174: return "??_F?$ctype@D@std@@QEAAXXZ";
- case 0x0175: return "??_F?$ctype@G@std@@QEAAXXZ";
- case 0x0176: return "??_F?$ctype@_W@std@@QEAAXXZ";
- case 0x0177: return "??_F?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAAXXZ";
- case 0x0178: return "??_F?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAAXXZ";
- case 0x0179: return "??_F?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAAXXZ";
- case 0x017a: return "??_F?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAAXXZ";
- case 0x017b: return "??_F?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAAXXZ";
- case 0x017c: return "??_F?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAAXXZ";
- case 0x017d: return "??_F?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAAXXZ";
- case 0x017e: return "??_F?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAAXXZ";
- case 0x017f: return "??_F?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAAXXZ";
- case 0x0180: return "??_F?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAAXXZ";
- case 0x0181: return "??_F?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAAXXZ";
- case 0x0182: return "??_F?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAAXXZ";
- case 0x0183: return "??_F_Locinfo@std@@QEAAXXZ";
- case 0x0184: return "??_F_Timevec@std@@QEAAXXZ";
- case 0x0185: return "??_Fcodecvt_base@std@@QEAAXXZ";
- case 0x0186: return "??_Fctype_base@std@@QEAAXXZ";
- case 0x0187: return "??_Ffacet@locale@std@@QEAAXXZ";
- case 0x0188: return "??_Fid@locale@std@@QEAAXXZ";
- case 0x0189: return "??_Ftime_base@std@@QEAAXXZ";
- case 0x018a: return "?NFS_Allocate@details@Concurrency@@YAPEAX_K0PEAX@Z";
- case 0x018b: return "?NFS_Free@details@Concurrency@@YAXPEAX@Z";
- case 0x018c: return "?NFS_GetLineSize@details@Concurrency@@YA_KXZ";
- case 0x018d: return "?_10@placeholders@std@@3V?$_Ph@$09@2@A";
- case 0x018e: return "?_11@placeholders@std@@3V?$_Ph@$0L@@2@A";
- case 0x018f: return "?_12@placeholders@std@@3V?$_Ph@$0M@@2@A";
- case 0x0190: return "?_13@placeholders@std@@3V?$_Ph@$0N@@2@A";
- case 0x0191: return "?_14@placeholders@std@@3V?$_Ph@$0O@@2@A";
- case 0x0192: return "?_15@placeholders@std@@3V?$_Ph@$0P@@2@A";
- case 0x0193: return "?_16@placeholders@std@@3V?$_Ph@$0BA@@2@A";
- case 0x0194: return "?_17@placeholders@std@@3V?$_Ph@$0BB@@2@A";
- case 0x0195: return "?_18@placeholders@std@@3V?$_Ph@$0BC@@2@A";
- case 0x0196: return "?_19@placeholders@std@@3V?$_Ph@$0BD@@2@A";
- case 0x0197: return "?_1@placeholders@std@@3V?$_Ph@$00@2@A";
- case 0x0198: return "?_20@placeholders@std@@3V?$_Ph@$0BE@@2@A";
- case 0x0199: return "?_2@placeholders@std@@3V?$_Ph@$01@2@A";
- case 0x019a: return "?_3@placeholders@std@@3V?$_Ph@$02@2@A";
- case 0x019b: return "?_4@placeholders@std@@3V?$_Ph@$03@2@A";
- case 0x019c: return "?_5@placeholders@std@@3V?$_Ph@$04@2@A";
- case 0x019d: return "?_6@placeholders@std@@3V?$_Ph@$05@2@A";
- case 0x019e: return "?_7@placeholders@std@@3V?$_Ph@$06@2@A";
- case 0x019f: return "?_8@placeholders@std@@3V?$_Ph@$07@2@A";
- case 0x01a0: return "?_9@placeholders@std@@3V?$_Ph@$08@2@A";
- case 0x01a1: return "?_Add_vtordisp1@?$basic_ios@DU?$char_traits@D@std@@@std@@UEAAXXZ";
- case 0x01a2: return "?_Add_vtordisp1@?$basic_ios@GU?$char_traits@G@std@@@std@@UEAAXXZ";
- case 0x01a3: return "?_Add_vtordisp1@?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
- case 0x01a4: return "?_Add_vtordisp1@?$basic_istream@DU?$char_traits@D@std@@@std@@UEAAXXZ";
- case 0x01a5: return "?_Add_vtordisp1@?$basic_istream@GU?$char_traits@G@std@@@std@@UEAAXXZ";
- case 0x01a6: return "?_Add_vtordisp1@?$basic_istream@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
- case 0x01a7: return "?_Add_vtordisp2@?$basic_ios@DU?$char_traits@D@std@@@std@@UEAAXXZ";
- case 0x01a8: return "?_Add_vtordisp2@?$basic_ios@GU?$char_traits@G@std@@@std@@UEAAXXZ";
- case 0x01a9: return "?_Add_vtordisp2@?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
- case 0x01aa: return "?_Add_vtordisp2@?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAAXXZ";
- case 0x01ab: return "?_Add_vtordisp2@?$basic_ostream@GU?$char_traits@G@std@@@std@@UEAAXXZ";
- case 0x01ac: return "?_Add_vtordisp2@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
- case 0x01ad: return "?_Addcats@_Locinfo@std@@QEAAAEAV12@HPEBD@Z";
- case 0x01ae: return "?_Addfac@_Locimp@locale@std@@AEAAXPEAVfacet@23@_K@Z";
- case 0x01af: return "?_Addstd@ios_base@std@@SAXPEAV12@@Z";
- case 0x01b0: return "?_Advance@_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAAXXZ";
- case 0x01b1: return "?_Assign@_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAAXAEBV123@@Z";
- case 0x01b2: return "?_Atexit@@YAXP6AXXZ@Z";
- case 0x01b3: return "?_BADOFF@std@@3_JB";
- case 0x01b4: return "?_Byte_reverse_table@details@Concurrency@@3QBEB";
- case 0x01b5: return "?_C_str@?$_Yarn@D@std@@QEBAPEBDXZ";
- case 0x01b6: return "?_C_str@?$_Yarn@_W@std@@QEBAPEB_WXZ";
- case 0x01b7: return "?_Callfns@ios_base@std@@AEAAXW4event@12@@Z";
- case 0x01b8: return "?_Clocptr@_Locimp@locale@std@@0PEAV123@EA";
- case 0x01b9: return "?_Close_dir@sys@tr2@std@@YAXPEAX@Z";
- case 0x01ba: return "?_Copy_file@sys@tr2@std@@YAHPEBD0_N@Z";
- case 0x01bb: return "?_Copy_file@sys@tr2@std@@YAHPEB_W0_N@Z";
- case 0x01bc: return "?_Current_get@sys@tr2@std@@YAPEADPEAD@Z";
- case 0x01bd: return "?_Current_get@sys@tr2@std@@YAPEA_WPEA_W@Z";
- case 0x01be: return "?_Current_set@sys@tr2@std@@YA_NPEBD@Z";
- case 0x01bf: return "?_Current_set@sys@tr2@std@@YA_NPEB_W@Z";
- case 0x01c0: return "?_Decref@facet@locale@std@@UEAAPEAV_Facet_base@3@XZ";
- case 0x01c1: return "?_Donarrow@?$ctype@G@std@@IEBADGD@Z";
- case 0x01c2: return "?_Donarrow@?$ctype@_W@std@@IEBAD_WD@Z";
- case 0x01c3: return "?_Dowiden@?$ctype@G@std@@IEBAGD@Z";
- case 0x01c4: return "?_Dowiden@?$ctype@_W@std@@IEBA_WD@Z";
- case 0x01c5: return "?_Empty@?$_Yarn@D@std@@QEBA_NXZ";
- case 0x01c6: return "?_Empty@?$_Yarn@_W@std@@QEBA_NXZ";
- case 0x01c7: return "?_Equivalent@sys@tr2@std@@YAHPEBD0@Z";
- case 0x01c8: return "?_Equivalent@sys@tr2@std@@YAHPEB_W0@Z";
- case 0x01c9: return "?_Ffmt@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAPEADPEADDH@Z";
- case 0x01ca: return "?_Ffmt@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAPEADPEADDH@Z";
- case 0x01cb: return "?_Ffmt@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAPEADPEADDH@Z";
- case 0x01cc: return "?_File_size@sys@tr2@std@@YA_KPEBD@Z";
- case 0x01cd: return "?_File_size@sys@tr2@std@@YA_KPEB_W@Z";
- case 0x01ce: return "?_Findarr@ios_base@std@@AEAAAEAU_Iosarray@12@H@Z";
- case 0x01cf: return "?_Fiopen@std@@YAPEAU_iobuf@@PEBDHH@Z";
- case 0x01d0: return "?_Fiopen@std@@YAPEAU_iobuf@@PEBGHH@Z";
- case 0x01d1: return "?_Fiopen@std@@YAPEAU_iobuf@@PEB_WHH@Z";
- case 0x01d2: return "?_Fput@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEBD_K333@Z";
- case 0x01d3: return "?_Fput@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEBD_K333@Z";
- case 0x01d4: return "?_Fput@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBD_K444@Z";
- case 0x01d5: return "?_Future_error_map@std@@YAPEBDH@Z";
- case 0x01d6: return "?_GetCombinableSize@details@Concurrency@@YA_KXZ";
- case 0x01d7: return "?_GetCurrentThreadId@details@Concurrency@@YAKXZ";
- case 0x01d8: return "?_GetNextAsyncId@details@Concurrency@@YAIXZ";
- case 0x01d9: return "?_Get_future_error_what@std@@YAPEBDH@Z";
- case 0x01da: return "?_Getcat@?$codecvt@DDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01db: return "?_Getcat@?$codecvt@GDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01dc: return "?_Getcat@?$codecvt@_WDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01dd: return "?_Getcat@?$ctype@D@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01de: return "?_Getcat@?$ctype@G@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01df: return "?_Getcat@?$ctype@_W@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01e0: return "?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01e1: return "?_Getcat@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01e2: return "?_Getcat@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01e3: return "?_Getcat@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01e4: return "?_Getcat@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01e5: return "?_Getcat@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01e6: return "?_Getcat@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01e7: return "?_Getcat@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01e8: return "?_Getcat@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01e9: return "?_Getcat@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01ea: return "?_Getcat@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01eb: return "?_Getcat@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01ec: return "?_Getcat@facet@locale@std@@SA_KPEAPEBV123@PEBV23@@Z";
- case 0x01ed: return "?_Getcoll@_Locinfo@std@@QEBA?AU_Collvec@@XZ";
- case 0x01ee: return "?_Getctype@_Locinfo@std@@QEBA?AU_Ctypevec@@XZ";
- case 0x01ef: return "?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ";
- case 0x01f0: return "?_Getdateorder@_Locinfo@std@@QEBAHXZ";
- case 0x01f1: return "?_Getdays@_Locinfo@std@@QEBAPEBDXZ";
- case 0x01f2: return "?_Getfalse@_Locinfo@std@@QEBAPEBDXZ";
- case 0x01f3: return "?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1AEAVios_base@2@PEAH@Z";
- case 0x01f4: return "?_Getffld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@1AEAVios_base@2@PEAH@Z";
- case 0x01f5: return "?_Getffld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@1AEAVios_base@2@PEAH@Z";
- case 0x01f6: return "?_Getffldx@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1AEAVios_base@2@PEAH@Z";
- case 0x01f7: return "?_Getffldx@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@1AEAVios_base@2@PEAH@Z";
- case 0x01f8: return "?_Getffldx@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@1AEAVios_base@2@PEAH@Z";
- case 0x01f9: return "?_Getfmt@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD@Z";
- case 0x01fa: return "?_Getfmt@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD@Z";
- case 0x01fb: return "?_Getfmt@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD@Z";
- case 0x01fc: return "?_Getgloballocale@locale@std@@CAPEAV_Locimp@12@XZ";
- case 0x01fd: return "?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HAEBVlocale@2@@Z";
- case 0x01fe: return "?_Getifld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@1HAEBVlocale@2@@Z";
- case 0x01ff: return "?_Getifld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@1HAEBVlocale@2@@Z";
- case 0x0200: return "?_Getint@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@0HHAEAHAEBV?$ctype@D@2@@Z";
- case 0x0201: return "?_Getint@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@0HHAEAHAEBV?$ctype@G@2@@Z";
- case 0x0202: return "?_Getint@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@0HHAEAHAEBV?$ctype@_W@2@@Z";
- case 0x0203: return "?_Getlconv@_Locinfo@std@@QEBAPEBUlconv@@XZ";
- case 0x0204: return "?_Getmonths@_Locinfo@std@@QEBAPEBDXZ";
- case 0x0205: return "?_Getname@_Locinfo@std@@QEBAPEBDXZ";
- case 0x0206: return "?_Getpfirst@_Container_base12@std@@QEBAPEAPEAU_Iterator_base12@2@XZ";
- case 0x0207: return "?_Getptr@_Timevec@std@@QEBAPEAXXZ";
- case 0x0208: return "?_Gettnames@_Locinfo@std@@QEBA?AV_Timevec@2@XZ";
- case 0x0209: return "?_Gettrue@_Locinfo@std@@QEBAPEBDXZ";
- case 0x020a: return "?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ";
- case 0x020b: return "?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ";
- case 0x020c: return "?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ";
- case 0x020d: return "?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
- case 0x020e: return "?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
- case 0x020f: return "?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ";
- case 0x0210: return "?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
- case 0x0211: return "?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
- case 0x0212: return "?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ";
- case 0x0213: return "?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
- case 0x0214: return "?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
- case 0x0215: return "?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ";
- case 0x0216: return "?_Id_cnt@id@locale@std@@0HA";
- case 0x0217: return "?_Ifmt@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAPEADPEADPEBDH@Z";
- case 0x0218: return "?_Ifmt@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAPEADPEADPEBDH@Z";
- case 0x0219: return "?_Ifmt@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAPEADPEADPEBDH@Z";
- case 0x021a: return "?_Incref@facet@locale@std@@UEAAXXZ";
- case 0x021b: return "?_Index@ios_base@std@@0HA";
- case 0x021c: return "?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAPEAD0PEAH001@Z";
- case 0x021d: return "?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ";
- case 0x021e: return "?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAPEAG0PEAH001@Z";
- case 0x021f: return "?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXXZ";
- case 0x0220: return "?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAPEA_W0PEAH001@Z";
- case 0x0221: return "?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXXZ";
- case 0x0222: return "?_Init@?$codecvt@DDH@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x0223: return "?_Init@?$codecvt@GDH@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x0224: return "?_Init@?$codecvt@_WDH@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x0225: return "?_Init@?$ctype@D@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x0226: return "?_Init@?$ctype@G@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x0227: return "?_Init@?$ctype@_W@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x0228: return "?_Init@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x0229: return "?_Init@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x022a: return "?_Init@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x022b: return "?_Init@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x022c: return "?_Init@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x022d: return "?_Init@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x022e: return "?_Init@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x022f: return "?_Init@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x0230: return "?_Init@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x0231: return "?_Init@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x0232: return "?_Init@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x0233: return "?_Init@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x0234: return "?_Init@ios_base@std@@IEAAXXZ";
- case 0x0235: return "?_Init@locale@std@@CAPEAV_Locimp@12@_N@Z";
- case 0x0236: return "?_Init_cnt@Init@ios_base@std@@0HA";
- case 0x0237: return "?_Init_cnt@_UShinit@std@@0HA";
- case 0x0238: return "?_Init_cnt@_Winit@std@@0HA";
- case 0x0239: return "?_Init_cnt_func@Init@ios_base@std@@CAAEAHXZ";
- case 0x023a: return "?_Init_ctor@Init@ios_base@std@@CAXPEAV123@@Z";
- case 0x023b: return "?_Init_dtor@Init@ios_base@std@@CAXPEAV123@@Z";
- case 0x023c: return "?_Init_locks_ctor@_Init_locks@std@@CAXPEAV12@@Z";
- case 0x023d: return "?_Init_locks_dtor@_Init_locks@std@@CAXPEAV12@@Z";
- case 0x023e: return "?_Internal_assign@_Concurrent_vector_base_v4@details@Concurrency@@IEAAXAEBV123@_KP6AXPEAX1@ZP6AX2PEBX1@Z5@Z";
- case 0x023f: return "?_Internal_capacity@_Concurrent_vector_base_v4@details@Concurrency@@IEBA_KXZ";
- case 0x0240: return "?_Internal_clear@_Concurrent_vector_base_v4@details@Concurrency@@IEAA_KP6AXPEAX_K@Z@Z";
- case 0x0241: return "?_Internal_compact@_Concurrent_vector_base_v4@details@Concurrency@@IEAAPEAX_KPEAXP6AX10@ZP6AX1PEBX0@Z@Z";
- case 0x0242: return "?_Internal_copy@_Concurrent_vector_base_v4@details@Concurrency@@IEAAXAEBV123@_KP6AXPEAXPEBX1@Z@Z";
- case 0x0243: return "?_Internal_empty@_Concurrent_queue_base_v4@details@Concurrency@@IEBA_NXZ";
- case 0x0244: return "?_Internal_finish_clear@_Concurrent_queue_base_v4@details@Concurrency@@IEAAXXZ";
- case 0x0245: return "?_Internal_grow_by@_Concurrent_vector_base_v4@details@Concurrency@@IEAA_K_K0P6AXPEAXPEBX0@Z2@Z";
- case 0x0246: return "?_Internal_grow_to_at_least_with_result@_Concurrent_vector_base_v4@details@Concurrency@@IEAA_K_K0P6AXPEAXPEBX0@Z2@Z";
- case 0x0247: return "?_Internal_move_push@_Concurrent_queue_base_v4@details@Concurrency@@IEAAXPEAX@Z";
- case 0x0248: return "?_Internal_pop_if_present@_Concurrent_queue_base_v4@details@Concurrency@@IEAA_NPEAX@Z";
- case 0x0249: return "?_Internal_push@_Concurrent_queue_base_v4@details@Concurrency@@IEAAXPEBX@Z";
- case 0x024a: return "?_Internal_push_back@_Concurrent_vector_base_v4@details@Concurrency@@IEAAPEAX_KAEA_K@Z";
- case 0x024b: return "?_Internal_reserve@_Concurrent_vector_base_v4@details@Concurrency@@IEAAX_K00@Z";
- case 0x024c: return "?_Internal_resize@_Concurrent_vector_base_v4@details@Concurrency@@IEAAX_K00P6AXPEAX0@ZP6AX1PEBX0@Z3@Z";
- case 0x024d: return "?_Internal_size@_Concurrent_queue_base_v4@details@Concurrency@@IEBA_KXZ";
- case 0x024e: return "?_Internal_swap@_Concurrent_queue_base_v4@details@Concurrency@@IEAAXAEAV123@@Z";
- case 0x024f: return "?_Internal_swap@_Concurrent_vector_base_v4@details@Concurrency@@IEAAXAEAV123@@Z";
- case 0x0250: return "?_Internal_throw_exception@_Concurrent_queue_base_v4@details@Concurrency@@IEBAXXZ";
- case 0x0251: return "?_Internal_throw_exception@_Concurrent_vector_base_v4@details@Concurrency@@IEBAX_K@Z";
- case 0x0252: return "?_Ios_base_dtor@ios_base@std@@CAXPEAV12@@Z";
- case 0x0253: return "?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z";
- case 0x0254: return "?_Ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z";
- case 0x0255: return "?_Ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z";
- case 0x0256: return "?_Iput@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEAD_K@Z";
- case 0x0257: return "?_Iput@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEAD_K@Z";
- case 0x0258: return "?_Iput@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEAD_K@Z";
- case 0x0259: return "?_Last_write_time@sys@tr2@std@@YAXPEBD_J@Z";
- case 0x025a: return "?_Last_write_time@sys@tr2@std@@YAXPEB_W_J@Z";
- case 0x025b: return "?_Last_write_time@sys@tr2@std@@YA_JPEBD@Z";
- case 0x025c: return "?_Last_write_time@sys@tr2@std@@YA_JPEB_W@Z";
- case 0x025d: return "?_Launch@_Pad@std@@QEAAXPEAU_Thrd_imp_t@@@Z";
- case 0x025e: return "?_Link@sys@tr2@std@@YAHPEBD0@Z";
- case 0x025f: return "?_Link@sys@tr2@std@@YAHPEB_W0@Z";
- case 0x0260: return "?_Locimp_Addfac@_Locimp@locale@std@@CAXPEAV123@PEAVfacet@23@_K@Z";
- case 0x0261: return "?_Locimp_ctor@_Locimp@locale@std@@CAXPEAV123@AEBV123@@Z";
- case 0x0262: return "?_Locimp_dtor@_Locimp@locale@std@@CAXPEAV123@@Z";
- case 0x0263: return "?_Locinfo_Addcats@_Locinfo@std@@SAAEAV12@PEAV12@HPEBD@Z";
- case 0x0264: return "?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@HPEBD@Z";
- case 0x0265: return "?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@PEBD@Z";
- case 0x0266: return "?_Locinfo_dtor@_Locinfo@std@@SAXPEAV12@@Z";
- case 0x0267: return "?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAAXXZ";
- case 0x0268: return "?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAAXXZ";
- case 0x0269: return "?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
- case 0x026a: return "?_Lockit_ctor@_Lockit@std@@CAXPEAV12@@Z";
- case 0x026b: return "?_Lockit_ctor@_Lockit@std@@CAXPEAV12@H@Z";
- case 0x026c: return "?_Lockit_ctor@_Lockit@std@@SAXH@Z";
- case 0x026d: return "?_Lockit_dtor@_Lockit@std@@CAXPEAV12@@Z";
- case 0x026e: return "?_Lockit_dtor@_Lockit@std@@SAXH@Z";
- case 0x026f: return "?_Lstat@sys@tr2@std@@YA?AW4file_type@123@PEBDAEAH@Z";
- case 0x0270: return "?_Lstat@sys@tr2@std@@YA?AW4file_type@123@PEB_WAEAH@Z";
- case 0x0271: return "?_MP_Add@std@@YAXQEA_K_K@Z";
- case 0x0272: return "?_MP_Get@std@@YA_KQEA_K@Z";
- case 0x0273: return "?_MP_Mul@std@@YAXQEA_K_K1@Z";
- case 0x0274: return "?_MP_Rem@std@@YAXQEA_K_K@Z";
- case 0x0275: return "?_Make_dir@sys@tr2@std@@YAHPEBD@Z";
- case 0x0276: return "?_Make_dir@sys@tr2@std@@YAHPEB_W@Z";
- case 0x0277: return "?_Makeloc@_Locimp@locale@std@@CAPEAV123@AEBV_Locinfo@3@HPEAV123@PEBV23@@Z";
- case 0x0278: return "?_Makeushloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z";
- case 0x0279: return "?_Makewloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z";
- case 0x027a: return "?_Makexloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z";
- case 0x027b: return "?_Mtx_delete@threads@stdext@@YAXPEAX@Z";
- case 0x027c: return "?_Mtx_lock@threads@stdext@@YAXPEAX@Z";
- case 0x027d: return "?_Mtx_new@threads@stdext@@YAXAEAPEAX@Z";
- case 0x027e: return "?_Mtx_unlock@threads@stdext@@YAXPEAX@Z";
- case 0x027f: return "?_New_Locimp@_Locimp@locale@std@@CAPEAV123@AEBV123@@Z";
- case 0x0280: return "?_New_Locimp@_Locimp@locale@std@@CAPEAV123@_N@Z";
- case 0x0281: return "?_Open_dir@sys@tr2@std@@YAPEAXPEADPEBDAEAHAEAW4file_type@123@@Z";
- case 0x0282: return "?_Open_dir@sys@tr2@std@@YAPEAXPEA_WPEB_WAEAHAEAW4file_type@123@@Z";
- case 0x0283: return "?_Orphan_all@_Container_base0@std@@QEAAXXZ";
- case 0x0284: return "?_Orphan_all@_Container_base12@std@@QEAAXXZ";
- case 0x0285: return "?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
- case 0x0286: return "?_Osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
- case 0x0287: return "?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
- case 0x0288: return "?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ";
- case 0x0289: return "?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ";
- case 0x028a: return "?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ";
- case 0x028b: return "?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
- case 0x028c: return "?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
- case 0x028d: return "?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ";
- case 0x028e: return "?_Ptr_cerr@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA";
- case 0x028f: return "?_Ptr_cin@std@@3PEAV?$basic_istream@DU?$char_traits@D@std@@@1@EA";
- case 0x0290: return "?_Ptr_clog@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA";
- case 0x0291: return "?_Ptr_cout@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA";
- case 0x0292: return "?_Ptr_wcerr@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA";
- case 0x0293: return "?_Ptr_wcerr@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA";
- case 0x0294: return "?_Ptr_wcin@std@@3PEAV?$basic_istream@GU?$char_traits@G@std@@@1@EA";
- case 0x0295: return "?_Ptr_wcin@std@@3PEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@EA";
- case 0x0296: return "?_Ptr_wclog@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA";
- case 0x0297: return "?_Ptr_wclog@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA";
- case 0x0298: return "?_Ptr_wcout@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA";
- case 0x0299: return "?_Ptr_wcout@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA";
- case 0x029a: return "?_Put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@PEBD_K@Z";
- case 0x029b: return "?_Put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@PEBG_K@Z";
- case 0x029c: return "?_Put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@PEB_W_K@Z";
- case 0x029d: return "?_Raise_handler@std@@3P6AXAEBVexception@stdext@@@ZEA";
- case 0x029e: return "?_Random_device@std@@YAIXZ";
- case 0x029f: return "?_Read_dir@sys@tr2@std@@YAPEADPEADPEAXAEAW4file_type@123@@Z";
- case 0x02a0: return "?_Read_dir@sys@tr2@std@@YAPEA_WPEA_WPEAXAEAW4file_type@123@@Z";
- case 0x02a1: return "?_Release@_Pad@std@@QEAAXXZ";
- case 0x02a2: return "?_Remove_dir@sys@tr2@std@@YA_NPEBD@Z";
- case 0x02a3: return "?_Remove_dir@sys@tr2@std@@YA_NPEB_W@Z";
- case 0x02a4: return "?_Rename@sys@tr2@std@@YAHPEBD0@Z";
- case 0x02a5: return "?_Rename@sys@tr2@std@@YAHPEB_W0@Z";
- case 0x02a6: return "?_Rep@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@D_K@Z";
- case 0x02a7: return "?_Rep@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@G_K@Z";
- case 0x02a8: return "?_Rep@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@_W_K@Z";
- case 0x02a9: return "?_Rethrow_future_exception@std@@YAXVexception_ptr@1@@Z";
- case 0x02aa: return "?_Rng_abort@std@@YAXPEBD@Z";
- case 0x02ab: return "?_Segment_index_of@_Concurrent_vector_base_v4@details@Concurrency@@KA_K_K@Z";
- case 0x02ac: return "?_Setgloballocale@locale@std@@CAXPEAX@Z";
- case 0x02ad: return "?_Src@?1??_Getffldx@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
- case 0x02ae: return "?_Src@?1??_Getffldx@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
- case 0x02af: return "?_Src@?1??_Getffldx@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
- case 0x02b0: return "?_Src@?1??_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@3@1HAEBVlocale@3@@Z@4QBDB";
- case 0x02b1: return "?_Src@?1??_Getifld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@3@1HAEBVlocale@3@@Z@4QBDB";
- case 0x02b2: return "?_Src@?1??_Getifld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@3@1HAEBVlocale@3@@Z@4QBDB";
- case 0x02b3: return "?_Src@?3??_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
- case 0x02b4: return "?_Src@?3??_Getffld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
- case 0x02b5: return "?_Src@?3??_Getffld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
- case 0x02b6: return "?_Stat@sys@tr2@std@@YA?AW4file_type@123@PEBDAEAH@Z";
- case 0x02b7: return "?_Stat@sys@tr2@std@@YA?AW4file_type@123@PEB_WAEAH@Z";
- case 0x02b8: return "?_Statvfs@sys@tr2@std@@YA?AUspace_info@123@PEBD@Z";
- case 0x02b9: return "?_Statvfs@sys@tr2@std@@YA?AUspace_info@123@PEB_W@Z";
- case 0x02ba: return "?_Swap_all@_Container_base0@std@@QEAAXAEAU12@@Z";
- case 0x02bb: return "?_Swap_all@_Container_base12@std@@QEAAXAEAU12@@Z";
- case 0x02bc: return "?_Symlink@sys@tr2@std@@YAHPEBD0@Z";
- case 0x02bd: return "?_Symlink@sys@tr2@std@@YAHPEB_W0@Z";
- case 0x02be: return "?_Sync@ios_base@std@@0_NA";
- case 0x02bf: return "?_Syserror_map@std@@YAPEBDH@Z";
- case 0x02c0: return "?_Throw_C_error@std@@YAXH@Z";
- case 0x02c1: return "?_Throw_Cpp_error@std@@YAXH@Z";
- case 0x02c2: return "?_Throw_future_error@std@@YAXAEBVerror_code@1@@Z";
- case 0x02c3: return "?_Throw_lock_error@threads@stdext@@YAXXZ";
- case 0x02c4: return "?_Throw_resource_error@threads@stdext@@YAXXZ";
- case 0x02c5: return "?_Tidy@?$_Yarn@D@std@@AEAAXXZ";
- case 0x02c6: return "?_Tidy@?$_Yarn@_W@std@@AEAAXXZ";
- case 0x02c7: return "?_Tidy@?$ctype@D@std@@IEAAXXZ";
- case 0x02c8: return "?_Tidy@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEAAXXZ";
- case 0x02c9: return "?_Tidy@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEAAXXZ";
- case 0x02ca: return "?_Tidy@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEAAXXZ";
- case 0x02cb: return "?_Tidy@ios_base@std@@AEAAXXZ";
- case 0x02cc: return "?_Unlink@sys@tr2@std@@YAHPEBD@Z";
- case 0x02cd: return "?_Unlink@sys@tr2@std@@YAHPEB_W@Z";
- case 0x02ce: return "?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAAXXZ";
- case 0x02cf: return "?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAAXXZ";
- case 0x02d0: return "?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
- case 0x02d1: return "?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ";
- case 0x02d2: return "?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ";
- case 0x02d3: return "?_W_Gettnames@_Locinfo@std@@QEBA?AV_Timevec@2@XZ";
- case 0x02d4: return "?_Winerror_map@std@@YAPEBDH@Z";
- case 0x02d5: return "?_XLgamma@std@@YAMM@Z";
- case 0x02d6: return "?_XLgamma@std@@YANN@Z";
- case 0x02d7: return "?_XLgamma@std@@YAOO@Z";
- case 0x02d8: return "?_Xbad_alloc@std@@YAXXZ";
- case 0x02d9: return "?_Xbad_function_call@std@@YAXXZ";
- case 0x02da: return "?_Xinvalid_argument@std@@YAXPEBD@Z";
- case 0x02db: return "?_Xlength_error@std@@YAXPEBD@Z";
- case 0x02dc: return "?_Xout_of_range@std@@YAXPEBD@Z";
- case 0x02dd: return "?_Xoverflow_error@std@@YAXPEBD@Z";
- case 0x02de: return "?_Xregex_error@std@@YAXW4error_type@regex_constants@1@@Z";
- case 0x02df: return "?_Xruntime_error@std@@YAXPEBD@Z";
- case 0x02e0: return "?adopt_lock@std@@3Uadopt_lock_t@1@B";
- case 0x02e1: return "?always_noconv@codecvt_base@std@@QEBA_NXZ";
- case 0x02e2: return "?bad@ios_base@std@@QEBA_NXZ";
- case 0x02e3: return "?c_str@?$_Yarn@D@std@@QEBAPEBDXZ";
- case 0x02e4: return "?cancel@agent@Concurrency@@QEAA_NXZ";
- case 0x02e5: return "?cancel_current_task@Concurrency@@YAXXZ";
- case 0x02e6: return "?cerr@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A";
- case 0x02e7: return "?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A";
- case 0x02e8: return "?classic@locale@std@@SAAEBV12@XZ";
- case 0x02e9: return "?classic_table@?$ctype@D@std@@SAPEBFXZ";
- case 0x02ea: return "?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z";
- case 0x02eb: return "?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z";
- case 0x02ec: return "?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z";
- case 0x02ed: return "?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z";
- case 0x02ee: return "?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z";
- case 0x02ef: return "?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z";
- case 0x02f0: return "?clear@ios_base@std@@QEAAXH@Z";
- case 0x02f1: return "?clear@ios_base@std@@QEAAXH_N@Z";
- case 0x02f2: return "?clear@ios_base@std@@QEAAXI@Z";
- case 0x02f3: return "?clog@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A";
- case 0x02f4: return "?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEBV12@@Z";
- case 0x02f5: return "?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEBV12@@Z";
- case 0x02f6: return "?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEBV12@@Z";
- case 0x02f7: return "?copyfmt@ios_base@std@@QEAAAEAV12@AEBV12@@Z";
- case 0x02f8: return "?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A";
- case 0x02f9: return "?date_order@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AW4dateorder@time_base@2@XZ";
- case 0x02fa: return "?date_order@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AW4dateorder@time_base@2@XZ";
- case 0x02fb: return "?date_order@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AW4dateorder@time_base@2@XZ";
- case 0x02fc: return "?defer_lock@std@@3Udefer_lock_t@1@B";
- case 0x02fd: return "?do_always_noconv@?$codecvt@DDH@std@@MEBA_NXZ";
- case 0x02fe: return "?do_always_noconv@?$codecvt@GDH@std@@MEBA_NXZ";
- case 0x02ff: return "?do_always_noconv@?$codecvt@_WDH@std@@MEBA_NXZ";
- case 0x0300: return "?do_always_noconv@codecvt_base@std@@MEBA_NXZ";
- case 0x0301: return "?do_date_order@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AW4dateorder@time_base@2@XZ";
- case 0x0302: return "?do_date_order@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AW4dateorder@time_base@2@XZ";
- case 0x0303: return "?do_date_order@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AW4dateorder@time_base@2@XZ";
- case 0x0304: return "?do_encoding@?$codecvt@GDH@std@@MEBAHXZ";
- case 0x0305: return "?do_encoding@?$codecvt@_WDH@std@@MEBAHXZ";
- case 0x0306: return "?do_encoding@codecvt_base@std@@MEBAHXZ";
- case 0x0307: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z";
- case 0x0308: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z";
- case 0x0309: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
- case 0x030a: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z";
- case 0x030b: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z";
- case 0x030c: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z";
- case 0x030d: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z";
- case 0x030e: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
- case 0x030f: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
- case 0x0310: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
- case 0x0311: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
- case 0x0312: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z";
- case 0x0313: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z";
- case 0x0314: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
- case 0x0315: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z";
- case 0x0316: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z";
- case 0x0317: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z";
- case 0x0318: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z";
- case 0x0319: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
- case 0x031a: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
- case 0x031b: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
- case 0x031c: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
- case 0x031d: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z";
- case 0x031e: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z";
- case 0x031f: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
- case 0x0320: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z";
- case 0x0321: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z";
- case 0x0322: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z";
- case 0x0323: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z";
- case 0x0324: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
- case 0x0325: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
- case 0x0326: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
- case 0x0327: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
- case 0x0328: return "?do_get@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
- case 0x0329: return "?do_get@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
- case 0x032a: return "?do_get@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
- case 0x032b: return "?do_get_date@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x032c: return "?do_get_date@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x032d: return "?do_get_date@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x032e: return "?do_get_monthname@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x032f: return "?do_get_monthname@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x0330: return "?do_get_monthname@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x0331: return "?do_get_time@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x0332: return "?do_get_time@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x0333: return "?do_get_time@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x0334: return "?do_get_weekday@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x0335: return "?do_get_weekday@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x0336: return "?do_get_weekday@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x0337: return "?do_get_year@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x0338: return "?do_get_year@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x0339: return "?do_get_year@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x033a: return "?do_in@?$codecvt@DDH@std@@MEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
- case 0x033b: return "?do_in@?$codecvt@GDH@std@@MEBAHAEAHPEBD1AEAPEBDPEAG3AEAPEAG@Z";
- case 0x033c: return "?do_in@?$codecvt@_WDH@std@@MEBAHAEAHPEBD1AEAPEBDPEA_W3AEAPEA_W@Z";
- case 0x033d: return "?do_is@?$ctype@G@std@@MEBAPEBGPEBG0PEAF@Z";
- case 0x033e: return "?do_is@?$ctype@G@std@@MEBA_NFG@Z";
- case 0x033f: return "?do_is@?$ctype@_W@std@@MEBAPEB_WPEB_W0PEAF@Z";
- case 0x0340: return "?do_is@?$ctype@_W@std@@MEBA_NF_W@Z";
- case 0x0341: return "?do_length@?$codecvt@DDH@std@@MEBAHAEAHPEBD1_K@Z";
- case 0x0342: return "?do_length@?$codecvt@GDH@std@@MEBAHAEAHPEBD1_K@Z";
- case 0x0343: return "?do_length@?$codecvt@_WDH@std@@MEBAHAEAHPEBD1_K@Z";
- case 0x0344: return "?do_max_length@?$codecvt@GDH@std@@MEBAHXZ";
- case 0x0345: return "?do_max_length@?$codecvt@_WDH@std@@MEBAHXZ";
- case 0x0346: return "?do_max_length@codecvt_base@std@@MEBAHXZ";
- case 0x0347: return "?do_narrow@?$ctype@D@std@@MEBADDD@Z";
- case 0x0348: return "?do_narrow@?$ctype@D@std@@MEBAPEBDPEBD0DPEAD@Z";
- case 0x0349: return "?do_narrow@?$ctype@G@std@@MEBADGD@Z";
- case 0x034a: return "?do_narrow@?$ctype@G@std@@MEBAPEBGPEBG0DPEAD@Z";
- case 0x034b: return "?do_narrow@?$ctype@_W@std@@MEBAD_WD@Z";
- case 0x034c: return "?do_narrow@?$ctype@_W@std@@MEBAPEB_WPEB_W0DPEAD@Z";
- case 0x034d: return "?do_out@?$codecvt@DDH@std@@MEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
- case 0x034e: return "?do_out@?$codecvt@GDH@std@@MEBAHAEAHPEBG1AEAPEBGPEAD3AEAPEAD@Z";
- case 0x034f: return "?do_out@?$codecvt@_WDH@std@@MEBAHAEAHPEB_W1AEAPEB_WPEAD3AEAPEAD@Z";
- case 0x0350: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DJ@Z";
- case 0x0351: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DK@Z";
- case 0x0352: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DN@Z";
- case 0x0353: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DO@Z";
- case 0x0354: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEBX@Z";
- case 0x0355: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@D_J@Z";
- case 0x0356: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@D_K@Z";
- case 0x0357: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@D_N@Z";
- case 0x0358: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GJ@Z";
- case 0x0359: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GK@Z";
- case 0x035a: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GN@Z";
- case 0x035b: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GO@Z";
- case 0x035c: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEBX@Z";
- case 0x035d: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@G_J@Z";
- case 0x035e: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@G_K@Z";
- case 0x035f: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@G_N@Z";
- case 0x0360: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WJ@Z";
- case 0x0361: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WK@Z";
- case 0x0362: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WN@Z";
- case 0x0363: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WO@Z";
- case 0x0364: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBX@Z";
- case 0x0365: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_W_J@Z";
- case 0x0366: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_W_K@Z";
- case 0x0367: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_W_N@Z";
- case 0x0368: return "?do_put@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEBUtm@@DD@Z";
- case 0x0369: return "?do_put@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEBUtm@@DD@Z";
- case 0x036a: return "?do_put@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBUtm@@DD@Z";
- case 0x036b: return "?do_scan_is@?$ctype@G@std@@MEBAPEBGFPEBG0@Z";
- case 0x036c: return "?do_scan_is@?$ctype@_W@std@@MEBAPEB_WFPEB_W0@Z";
- case 0x036d: return "?do_scan_not@?$ctype@G@std@@MEBAPEBGFPEBG0@Z";
- case 0x036e: return "?do_scan_not@?$ctype@_W@std@@MEBAPEB_WFPEB_W0@Z";
- case 0x036f: return "?do_tolower@?$ctype@D@std@@MEBADD@Z";
- case 0x0370: return "?do_tolower@?$ctype@D@std@@MEBAPEBDPEADPEBD@Z";
- case 0x0371: return "?do_tolower@?$ctype@G@std@@MEBAGG@Z";
- case 0x0372: return "?do_tolower@?$ctype@G@std@@MEBAPEBGPEAGPEBG@Z";
- case 0x0373: return "?do_tolower@?$ctype@_W@std@@MEBAPEB_WPEA_WPEB_W@Z";
- case 0x0374: return "?do_tolower@?$ctype@_W@std@@MEBA_W_W@Z";
- case 0x0375: return "?do_toupper@?$ctype@D@std@@MEBADD@Z";
- case 0x0376: return "?do_toupper@?$ctype@D@std@@MEBAPEBDPEADPEBD@Z";
- case 0x0377: return "?do_toupper@?$ctype@G@std@@MEBAGG@Z";
- case 0x0378: return "?do_toupper@?$ctype@G@std@@MEBAPEBGPEAGPEBG@Z";
- case 0x0379: return "?do_toupper@?$ctype@_W@std@@MEBAPEB_WPEA_WPEB_W@Z";
- case 0x037a: return "?do_toupper@?$ctype@_W@std@@MEBA_W_W@Z";
- case 0x037b: return "?do_unshift@?$codecvt@DDH@std@@MEBAHAEAHPEAD1AEAPEAD@Z";
- case 0x037c: return "?do_unshift@?$codecvt@GDH@std@@MEBAHAEAHPEAD1AEAPEAD@Z";
- case 0x037d: return "?do_unshift@?$codecvt@_WDH@std@@MEBAHAEAHPEAD1AEAPEAD@Z";
- case 0x037e: return "?do_widen@?$ctype@D@std@@MEBADD@Z";
- case 0x037f: return "?do_widen@?$ctype@D@std@@MEBAPEBDPEBD0PEAD@Z";
- case 0x0380: return "?do_widen@?$ctype@G@std@@MEBAGD@Z";
- case 0x0381: return "?do_widen@?$ctype@G@std@@MEBAPEBDPEBD0PEAG@Z";
- case 0x0382: return "?do_widen@?$ctype@_W@std@@MEBAPEBDPEBD0PEA_W@Z";
- case 0x0383: return "?do_widen@?$ctype@_W@std@@MEBA_WD@Z";
- case 0x0384: return "?done@agent@Concurrency@@IEAA_NXZ";
- case 0x0385: return "?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
- case 0x0386: return "?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
- case 0x0387: return "?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
- case 0x0388: return "?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
- case 0x0389: return "?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
- case 0x038a: return "?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
- case 0x038b: return "?empty@?$_Yarn@D@std@@QEBA_NXZ";
- case 0x038c: return "?empty@locale@std@@SA?AV12@XZ";
- case 0x038d: return "?encoding@codecvt_base@std@@QEBAHXZ";
- case 0x038e: return "?endl@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z";
- case 0x038f: return "?endl@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z";
- case 0x0390: return "?endl@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z";
- case 0x0391: return "?ends@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z";
- case 0x0392: return "?ends@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z";
- case 0x0393: return "?ends@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z";
- case 0x0394: return "?eof@ios_base@std@@QEBA_NXZ";
- case 0x0395: return "?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
- case 0x0396: return "?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
- case 0x0397: return "?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
- case 0x0398: return "?exceptions@ios_base@std@@QEAAXH@Z";
- case 0x0399: return "?exceptions@ios_base@std@@QEAAXI@Z";
- case 0x039a: return "?exceptions@ios_base@std@@QEBAHXZ";
- case 0x039b: return "?fail@ios_base@std@@QEBA_NXZ";
- case 0x039c: return "?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z";
- case 0x039d: return "?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ";
- case 0x039e: return "?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAGG@Z";
- case 0x039f: return "?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGXZ";
- case 0x03a0: return "?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA_W_W@Z";
- case 0x03a1: return "?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WXZ";
- case 0x03a2: return "?flags@ios_base@std@@QEAAHH@Z";
- case 0x03a3: return "?flags@ios_base@std@@QEBAHXZ";
- case 0x03a4: return "?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ";
- case 0x03a5: return "?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ";
- case 0x03a6: return "?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ";
- case 0x03a7: return "?flush@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z";
- case 0x03a8: return "?flush@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z";
- case 0x03a9: return "?flush@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z";
- case 0x03aa: return "?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z";
- case 0x03ab: return "?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z";
- case 0x03ac: return "?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z";
- case 0x03ad: return "?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QEBA_JXZ";
- case 0x03ae: return "?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QEBA_JXZ";
- case 0x03af: return "?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEBA_JXZ";
- case 0x03b0: return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAD@Z";
- case 0x03b1: return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z";
- case 0x03b2: return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@D@Z";
- case 0x03b3: return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z";
- case 0x03b4: return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z";
- case 0x03b5: return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ";
- case 0x03b6: return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAG@Z";
- case 0x03b7: return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@@Z";
- case 0x03b8: return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@G@Z";
- case 0x03b9: return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z";
- case 0x03ba: return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_JG@Z";
- case 0x03bb: return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ";
- case 0x03bc: return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z";
- case 0x03bd: return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_W@Z";
- case 0x03be: return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEA_W@Z";
- case 0x03bf: return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z";
- case 0x03c0: return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J_W@Z";
- case 0x03c1: return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
- case 0x03c2: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z";
- case 0x03c3: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z";
- case 0x03c4: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
- case 0x03c5: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z";
- case 0x03c6: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z";
- case 0x03c7: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z";
- case 0x03c8: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z";
- case 0x03c9: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
- case 0x03ca: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
- case 0x03cb: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
- case 0x03cc: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
- case 0x03cd: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z";
- case 0x03ce: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z";
- case 0x03cf: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
- case 0x03d0: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z";
- case 0x03d1: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z";
- case 0x03d2: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z";
- case 0x03d3: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z";
- case 0x03d4: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
- case 0x03d5: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
- case 0x03d6: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
- case 0x03d7: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
- case 0x03d8: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z";
- case 0x03d9: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z";
- case 0x03da: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
- case 0x03db: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z";
- case 0x03dc: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z";
- case 0x03dd: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z";
- case 0x03de: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z";
- case 0x03df: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
- case 0x03e0: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
- case 0x03e1: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
- case 0x03e2: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
- case 0x03e3: return "?get@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
- case 0x03e4: return "?get@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD4@Z";
- case 0x03e5: return "?get@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
- case 0x03e6: return "?get@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEBG4@Z";
- case 0x03e7: return "?get@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
- case 0x03e8: return "?get@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEB_W4@Z";
- case 0x03e9: return "?get_date@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03ea: return "?get_date@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03eb: return "?get_date@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03ec: return "?get_monthname@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03ed: return "?get_monthname@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03ee: return "?get_monthname@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03ef: return "?get_new_handler@std@@YAP6AXXZXZ";
- case 0x03f0: return "?get_time@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03f1: return "?get_time@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03f2: return "?get_time@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03f3: return "?get_weekday@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03f4: return "?get_weekday@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03f5: return "?get_weekday@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03f6: return "?get_year@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03f7: return "?get_year@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03f8: return "?get_year@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03f9: return "?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z";
- case 0x03fa: return "?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z";
- case 0x03fb: return "?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z";
- case 0x03fc: return "?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_JG@Z";
- case 0x03fd: return "?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z";
- case 0x03fe: return "?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J_W@Z";
- case 0x03ff: return "?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEBA?AVlocale@2@XZ";
- case 0x0400: return "?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEBA?AVlocale@2@XZ";
- case 0x0401: return "?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEBA?AVlocale@2@XZ";
- case 0x0402: return "?getloc@ios_base@std@@QEBA?AVlocale@2@XZ";
- case 0x0403: return "?global@locale@std@@SA?AV12@AEBV12@@Z";
- case 0x0404: return "?good@ios_base@std@@QEBA_NXZ";
- case 0x0405: return "?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
- case 0x0406: return "?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
- case 0x0407: return "?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
- case 0x0408: return "?id@?$codecvt@DDH@std@@2V0locale@2@A";
- case 0x0409: return "?id@?$codecvt@GDH@std@@2V0locale@2@A";
- case 0x040a: return "?id@?$codecvt@_WDH@std@@2V0locale@2@A";
- case 0x040b: return "?id@?$collate@D@std@@2V0locale@2@A";
- case 0x040c: return "?id@?$collate@G@std@@2V0locale@2@A";
- case 0x040d: return "?id@?$collate@_W@std@@2V0locale@2@A";
- case 0x040e: return "?id@?$ctype@D@std@@2V0locale@2@A";
- case 0x040f: return "?id@?$ctype@G@std@@2V0locale@2@A";
- case 0x0410: return "?id@?$ctype@_W@std@@2V0locale@2@A";
- case 0x0411: return "?id@?$messages@D@std@@2V0locale@2@A";
- case 0x0412: return "?id@?$messages@G@std@@2V0locale@2@A";
- case 0x0413: return "?id@?$messages@_W@std@@2V0locale@2@A";
- case 0x0414: return "?id@?$money_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A";
- case 0x0415: return "?id@?$money_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@2V0locale@2@A";
- case 0x0416: return "?id@?$money_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@2V0locale@2@A";
- case 0x0417: return "?id@?$money_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A";
- case 0x0418: return "?id@?$money_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@2V0locale@2@A";
- case 0x0419: return "?id@?$money_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@2V0locale@2@A";
- case 0x041a: return "?id@?$moneypunct@D$00@std@@2V0locale@2@A";
- case 0x041b: return "?id@?$moneypunct@D$0A@@std@@2V0locale@2@A";
- case 0x041c: return "?id@?$moneypunct@G$00@std@@2V0locale@2@A";
- case 0x041d: return "?id@?$moneypunct@G$0A@@std@@2V0locale@2@A";
- case 0x041e: return "?id@?$moneypunct@_W$00@std@@2V0locale@2@A";
- case 0x041f: return "?id@?$moneypunct@_W$0A@@std@@2V0locale@2@A";
- case 0x0420: return "?id@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A";
- case 0x0421: return "?id@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@2V0locale@2@A";
- case 0x0422: return "?id@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@2V0locale@2@A";
- case 0x0423: return "?id@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A";
- case 0x0424: return "?id@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@2V0locale@2@A";
- case 0x0425: return "?id@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@2V0locale@2@A";
- case 0x0426: return "?id@?$numpunct@D@std@@2V0locale@2@A";
- case 0x0427: return "?id@?$numpunct@G@std@@2V0locale@2@A";
- case 0x0428: return "?id@?$numpunct@_W@std@@2V0locale@2@A";
- case 0x0429: return "?id@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A";
- case 0x042a: return "?id@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@2V0locale@2@A";
- case 0x042b: return "?id@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@2V0locale@2@A";
- case 0x042c: return "?id@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A";
- case 0x042d: return "?id@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@2V0locale@2@A";
- case 0x042e: return "?id@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@2V0locale@2@A";
- case 0x042f: return "?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z";
- case 0x0430: return "?ignore@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JG@Z";
- case 0x0431: return "?ignore@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JG@Z";
- case 0x0432: return "?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z";
- case 0x0433: return "?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z";
- case 0x0434: return "?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z";
- case 0x0435: return "?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z";
- case 0x0436: return "?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAXAEBVlocale@2@@Z";
- case 0x0437: return "?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAXAEBVlocale@2@@Z";
- case 0x0438: return "?imbue@ios_base@std@@QEAA?AVlocale@2@AEBV32@@Z";
- case 0x0439: return "?in@?$codecvt@DDH@std@@QEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
- case 0x043a: return "?in@?$codecvt@GDH@std@@QEBAHAEAHPEBD1AEAPEBDPEAG3AEAPEAG@Z";
- case 0x043b: return "?in@?$codecvt@_WDH@std@@QEBAHAEAHPEBD1AEAPEBDPEA_W3AEAPEA_W@Z";
- case 0x043c: return "?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JXZ";
- case 0x043d: return "?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JXZ";
- case 0x043e: return "?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JXZ";
- case 0x043f: return "?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z";
- case 0x0440: return "?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@_N@Z";
- case 0x0441: return "?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_N@Z";
- case 0x0442: return "?intl@?$moneypunct@D$00@std@@2_NB";
- case 0x0443: return "?intl@?$moneypunct@D$0A@@std@@2_NB";
- case 0x0444: return "?intl@?$moneypunct@G$00@std@@2_NB";
- case 0x0445: return "?intl@?$moneypunct@G$0A@@std@@2_NB";
- case 0x0446: return "?intl@?$moneypunct@_W$00@std@@2_NB";
- case 0x0447: return "?intl@?$moneypunct@_W$0A@@std@@2_NB";
- case 0x0448: return "?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z";
- case 0x0449: return "?ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z";
- case 0x044a: return "?ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z";
- case 0x044b: return "?is@?$ctype@D@std@@QEBAPEBDPEBD0PEAF@Z";
- case 0x044c: return "?is@?$ctype@D@std@@QEBA_NFD@Z";
- case 0x044d: return "?is@?$ctype@G@std@@QEBAPEBGPEBG0PEAF@Z";
- case 0x044e: return "?is@?$ctype@G@std@@QEBA_NFG@Z";
- case 0x044f: return "?is@?$ctype@_W@std@@QEBAPEB_WPEB_W0PEAF@Z";
- case 0x0450: return "?is@?$ctype@_W@std@@QEBA_NF_W@Z";
- case 0x0451: return "?is_current_task_group_canceling@Concurrency@@YA_NXZ";
- case 0x0452: return "?is_task_cancellation_requested@Concurrency@@YA_NXZ";
- case 0x0453: return "?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
- case 0x0454: return "?isfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
- case 0x0455: return "?isfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
- case 0x0456: return "?iword@ios_base@std@@QEAAAEAJH@Z";
- case 0x0457: return "?length@?$codecvt@DDH@std@@QEBAHAEAHPEBD1_K@Z";
- case 0x0458: return "?length@?$codecvt@GDH@std@@QEBAHAEAHPEBD1_K@Z";
- case 0x0459: return "?length@?$codecvt@_WDH@std@@QEBAHAEAHPEBD1_K@Z";
- case 0x045a: return "?max_length@codecvt_base@std@@QEBAHXZ";
- case 0x045b: return "?move@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAX$$QEAV12@@Z";
- case 0x045c: return "?move@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z";
- case 0x045d: return "?move@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAX$$QEAV12@@Z";
- case 0x045e: return "?move@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z";
- case 0x045f: return "?move@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAX$$QEAV12@@Z";
- case 0x0460: return "?move@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z";
- case 0x0461: return "?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADDD@Z";
- case 0x0462: return "?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBADGD@Z";
- case 0x0463: return "?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAD_WD@Z";
- case 0x0464: return "?narrow@?$ctype@D@std@@QEBADDD@Z";
- case 0x0465: return "?narrow@?$ctype@D@std@@QEBAPEBDPEBD0DPEAD@Z";
- case 0x0466: return "?narrow@?$ctype@G@std@@QEBADGD@Z";
- case 0x0467: return "?narrow@?$ctype@G@std@@QEBAPEBGPEBG0DPEAD@Z";
- case 0x0468: return "?narrow@?$ctype@_W@std@@QEBAD_WD@Z";
- case 0x0469: return "?narrow@?$ctype@_W@std@@QEBAPEB_WPEB_W0DPEAD@Z";
- case 0x046a: return "?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA_NXZ";
- case 0x046b: return "?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA_NXZ";
- case 0x046c: return "?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA_NXZ";
- case 0x046d: return "?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
- case 0x046e: return "?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
- case 0x046f: return "?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
- case 0x0470: return "?out@?$codecvt@DDH@std@@QEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
- case 0x0471: return "?out@?$codecvt@GDH@std@@QEBAHAEAHPEBG1AEAPEBGPEAD3AEAPEAD@Z";
- case 0x0472: return "?out@?$codecvt@_WDH@std@@QEBAHAEAHPEB_W1AEAPEB_WPEAD3AEAPEAD@Z";
- case 0x0473: return "?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z";
- case 0x0474: return "?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z";
- case 0x0475: return "?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z";
- case 0x0476: return "?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z";
- case 0x0477: return "?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z";
- case 0x0478: return "?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z";
- case 0x0479: return "?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
- case 0x047a: return "?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
- case 0x047b: return "?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
- case 0x047c: return "?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z";
- case 0x047d: return "?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z";
- case 0x047e: return "?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z";
- case 0x047f: return "?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ";
- case 0x0480: return "?peek@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ";
- case 0x0481: return "?peek@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
- case 0x0482: return "?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
- case 0x0483: return "?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
- case 0x0484: return "?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
- case 0x0485: return "?precision@ios_base@std@@QEAA_J_J@Z";
- case 0x0486: return "?precision@ios_base@std@@QEBA_JXZ";
- case 0x0487: return "?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z";
- case 0x0488: return "?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z";
- case 0x0489: return "?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z";
- case 0x048a: return "?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z";
- case 0x048b: return "?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z";
- case 0x048c: return "?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z";
- case 0x048d: return "?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z";
- case 0x048e: return "?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z";
- case 0x048f: return "?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z";
- case 0x0490: return "?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z";
- case 0x0491: return "?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z";
- case 0x0492: return "?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z";
- case 0x0493: return "?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z";
- case 0x0494: return "?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z";
- case 0x0495: return "?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z";
- case 0x0496: return "?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEAD_J@Z";
- case 0x0497: return "?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEAG_J@Z";
- case 0x0498: return "?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEA_W_J@Z";
- case 0x0499: return "?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
- case 0x049a: return "?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHXZ";
- case 0x049b: return "?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAHXZ";
- case 0x049c: return "?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z";
- case 0x049d: return "?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z";
- case 0x049e: return "?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z";
- case 0x049f: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DJ@Z";
- case 0x04a0: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DK@Z";
- case 0x04a1: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DN@Z";
- case 0x04a2: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DO@Z";
- case 0x04a3: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEBX@Z";
- case 0x04a4: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@D_J@Z";
- case 0x04a5: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@D_K@Z";
- case 0x04a6: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@D_N@Z";
- case 0x04a7: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GJ@Z";
- case 0x04a8: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GK@Z";
- case 0x04a9: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GN@Z";
- case 0x04aa: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GO@Z";
- case 0x04ab: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEBX@Z";
- case 0x04ac: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@G_J@Z";
- case 0x04ad: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@G_K@Z";
- case 0x04ae: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@G_N@Z";
- case 0x04af: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WJ@Z";
- case 0x04b0: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WK@Z";
- case 0x04b1: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WN@Z";
- case 0x04b2: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WO@Z";
- case 0x04b3: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBX@Z";
- case 0x04b4: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_W_J@Z";
- case 0x04b5: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_W_K@Z";
- case 0x04b6: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_W_N@Z";
- case 0x04b7: return "?put@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEBUtm@@DD@Z";
- case 0x04b8: return "?put@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEBUtm@@PEBD3@Z";
- case 0x04b9: return "?put@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEBUtm@@DD@Z";
- case 0x04ba: return "?put@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEBUtm@@PEBG3@Z";
- case 0x04bb: return "?put@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBUtm@@DD@Z";
- case 0x04bc: return "?put@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBUtm@@PEB_W4@Z";
- case 0x04bd: return "?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z";
- case 0x04be: return "?putback@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z";
- case 0x04bf: return "?putback@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z";
- case 0x04c0: return "?pword@ios_base@std@@QEAAAEAPEAXH@Z";
- case 0x04c1: return "?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAV32@@Z";
- case 0x04c2: return "?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ";
- case 0x04c3: return "?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PEAV32@@Z";
- case 0x04c4: return "?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@XZ";
- case 0x04c5: return "?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PEAV32@@Z";
- case 0x04c6: return "?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ";
- case 0x04c7: return "?rdstate@ios_base@std@@QEBAHXZ";
- case 0x04c8: return "?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z";
- case 0x04c9: return "?read@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z";
- case 0x04ca: return "?read@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z";
- case 0x04cb: return "?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z";
- case 0x04cc: return "?readsome@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z";
- case 0x04cd: return "?readsome@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z";
- case 0x04ce: return "?register_callback@ios_base@std@@QEAAXP6AXW4event@12@AEAV12@H@ZH@Z";
- case 0x04cf: return "?resetiosflags@std@@YA?AU?$_Smanip@H@1@H@Z";
- case 0x04d0: return "?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
- case 0x04d1: return "?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
- case 0x04d2: return "?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
- case 0x04d3: return "?scan_is@?$ctype@D@std@@QEBAPEBDFPEBD0@Z";
- case 0x04d4: return "?scan_is@?$ctype@G@std@@QEBAPEBGFPEBG0@Z";
- case 0x04d5: return "?scan_is@?$ctype@_W@std@@QEBAPEB_WFPEB_W0@Z";
- case 0x04d6: return "?scan_not@?$ctype@D@std@@QEBAPEBDFPEBD0@Z";
- case 0x04d7: return "?scan_not@?$ctype@G@std@@QEBAPEBGFPEBG0@Z";
- case 0x04d8: return "?scan_not@?$ctype@_W@std@@QEBAPEB_WFPEB_W0@Z";
- case 0x04d9: return "?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z";
- case 0x04da: return "?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z";
- case 0x04db: return "?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z";
- case 0x04dc: return "?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@Z";
- case 0x04dd: return "?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z";
- case 0x04de: return "?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z";
- case 0x04df: return "?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z";
- case 0x04e0: return "?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z";
- case 0x04e1: return "?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z";
- case 0x04e2: return "?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z";
- case 0x04e3: return "?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z";
- case 0x04e4: return "?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z";
- case 0x04e5: return "?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@Z";
- case 0x04e6: return "?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z";
- case 0x04e7: return "?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z";
- case 0x04e8: return "?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z";
- case 0x04e9: return "?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z";
- case 0x04ea: return "?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z";
- case 0x04eb: return "?set_new_handler@std@@YAP6AXXZP6AXXZ@Z";
- case 0x04ec: return "?set_rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z";
- case 0x04ed: return "?set_rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@@Z";
- case 0x04ee: return "?set_rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z";
- case 0x04ef: return "?setbase@std@@YA?AU?$_Smanip@H@1@H@Z";
- case 0x04f0: return "?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAPEAV12@PEAD_J@Z";
- case 0x04f1: return "?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAPEAV12@PEAG_J@Z";
- case 0x04f2: return "?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV12@PEA_W_J@Z";
- case 0x04f3: return "?setf@ios_base@std@@QEAAHH@Z";
- case 0x04f4: return "?setf@ios_base@std@@QEAAHHH@Z";
- case 0x04f5: return "?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z";
- case 0x04f6: return "?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z";
- case 0x04f7: return "?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z";
- case 0x04f8: return "?setiosflags@std@@YA?AU?$_Smanip@H@1@H@Z";
- case 0x04f9: return "?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z";
- case 0x04fa: return "?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD0@Z";
- case 0x04fb: return "?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z";
- case 0x04fc: return "?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG0@Z";
- case 0x04fd: return "?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z";
- case 0x04fe: return "?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W0@Z";
- case 0x04ff: return "?setprecision@std@@YA?AU?$_Smanip@_J@1@_J@Z";
- case 0x0500: return "?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z";
- case 0x0501: return "?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z";
- case 0x0502: return "?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z";
- case 0x0503: return "?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z";
- case 0x0504: return "?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z";
- case 0x0505: return "?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z";
- case 0x0506: return "?setstate@ios_base@std@@QEAAXH@Z";
- case 0x0507: return "?setstate@ios_base@std@@QEAAXH_N@Z";
- case 0x0508: return "?setstate@ios_base@std@@QEAAXI@Z";
- case 0x0509: return "?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z";
- case 0x050a: return "?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
- case 0x050b: return "?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
- case 0x050c: return "?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
- case 0x050d: return "?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z";
- case 0x050e: return "?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z";
- case 0x050f: return "?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z";
- case 0x0510: return "?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JXZ";
- case 0x0511: return "?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JXZ";
- case 0x0512: return "?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JXZ";
- case 0x0513: return "?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
- case 0x0514: return "?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
- case 0x0515: return "?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
- case 0x0516: return "?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z";
- case 0x0517: return "?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z";
- case 0x0518: return "?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z";
- case 0x0519: return "?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z";
- case 0x051a: return "?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z";
- case 0x051b: return "?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z";
- case 0x051c: return "?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEBD_J@Z";
- case 0x051d: return "?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEBG_J@Z";
- case 0x051e: return "?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEB_W_J@Z";
- case 0x051f: return "?start@agent@Concurrency@@QEAA_NXZ";
- case 0x0520: return "?status@agent@Concurrency@@QEAA?AW4agent_status@2@XZ";
- case 0x0521: return "?status_port@agent@Concurrency@@QEAAPEAV?$ISource@W4agent_status@Concurrency@@@2@XZ";
- case 0x0522: return "?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ";
- case 0x0523: return "?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ";
- case 0x0524: return "?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
- case 0x0525: return "?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
- case 0x0526: return "?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
- case 0x0527: return "?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
- case 0x0528: return "?swap@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z";
- case 0x0529: return "?swap@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z";
- case 0x052a: return "?swap@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z";
- case 0x052b: return "?swap@?$basic_iostream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
- case 0x052c: return "?swap@?$basic_iostream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
- case 0x052d: return "?swap@?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z";
- case 0x052e: return "?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
- case 0x052f: return "?swap@?$basic_istream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
- case 0x0530: return "?swap@?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z";
- case 0x0531: return "?swap@?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
- case 0x0532: return "?swap@?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
- case 0x0533: return "?swap@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z";
- case 0x0534: return "?swap@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
- case 0x0535: return "?swap@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
- case 0x0536: return "?swap@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z";
- case 0x0537: return "?swap@ios_base@std@@QEAAXAEAV12@@Z";
- case 0x0538: return "?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ";
- case 0x0539: return "?sync@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAHXZ";
- case 0x053a: return "?sync@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAHXZ";
- case 0x053b: return "?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ";
- case 0x053c: return "?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAHXZ";
- case 0x053d: return "?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ";
- case 0x053e: return "?sync_with_stdio@ios_base@std@@SA_N_N@Z";
- case 0x053f: return "?table@?$ctype@D@std@@QEBAPEBFXZ";
- case 0x0540: return "?table_size@?$ctype@D@std@@2_KB";
- case 0x0541: return "?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ";
- case 0x0542: return "?tellg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@XZ";
- case 0x0543: return "?tellg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ";
- case 0x0544: return "?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ";
- case 0x0545: return "?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@XZ";
- case 0x0546: return "?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ";
- case 0x0547: return "?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@PEAV32@@Z";
- case 0x0548: return "?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ";
- case 0x0549: return "?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@PEAV32@@Z";
- case 0x054a: return "?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@XZ";
- case 0x054b: return "?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@PEAV32@@Z";
- case 0x054c: return "?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ";
- case 0x054d: return "?tolower@?$ctype@D@std@@QEBADD@Z";
- case 0x054e: return "?tolower@?$ctype@D@std@@QEBAPEBDPEADPEBD@Z";
- case 0x054f: return "?tolower@?$ctype@G@std@@QEBAGG@Z";
- case 0x0550: return "?tolower@?$ctype@G@std@@QEBAPEBGPEAGPEBG@Z";
- case 0x0551: return "?tolower@?$ctype@_W@std@@QEBAPEB_WPEA_WPEB_W@Z";
- case 0x0552: return "?tolower@?$ctype@_W@std@@QEBA_W_W@Z";
- case 0x0553: return "?toupper@?$ctype@D@std@@QEBADD@Z";
- case 0x0554: return "?toupper@?$ctype@D@std@@QEBAPEBDPEADPEBD@Z";
- case 0x0555: return "?toupper@?$ctype@G@std@@QEBAGG@Z";
- case 0x0556: return "?toupper@?$ctype@G@std@@QEBAPEBGPEAGPEBG@Z";
- case 0x0557: return "?toupper@?$ctype@_W@std@@QEBAPEB_WPEA_WPEB_W@Z";
- case 0x0558: return "?toupper@?$ctype@_W@std@@QEBA_W_W@Z";
- case 0x0559: return "?try_to_lock@std@@3Utry_to_lock_t@1@B";
- case 0x055a: return "?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ";
- case 0x055b: return "?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ";
- case 0x055c: return "?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ";
- case 0x055d: return "?uncaught_exception@std@@YA_NXZ";
- case 0x055e: return "?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ";
- case 0x055f: return "?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ";
- case 0x0560: return "?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ";
- case 0x0561: return "?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ";
- case 0x0562: return "?unget@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ";
- case 0x0563: return "?unget@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ";
- case 0x0564: return "?unsetf@ios_base@std@@QEAAXH@Z";
- case 0x0565: return "?unshift@?$codecvt@DDH@std@@QEBAHAEAHPEAD1AEAPEAD@Z";
- case 0x0566: return "?unshift@?$codecvt@GDH@std@@QEBAHAEAHPEAD1AEAPEAD@Z";
- case 0x0567: return "?unshift@?$codecvt@_WDH@std@@QEBAHAEAHPEAD1AEAPEAD@Z";
- case 0x0568: return "?wait@agent@Concurrency@@SA?AW4agent_status@2@PEAV12@I@Z";
- case 0x0569: return "?wait_for_all@agent@Concurrency@@SAX_KPEAPEAV12@PEAW4agent_status@2@I@Z";
- case 0x056a: return "?wait_for_one@agent@Concurrency@@SAX_KPEAPEAV12@AEAW4agent_status@2@AEA_KI@Z";
- case 0x056b: return "?wcerr@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A";
- case 0x056c: return "?wcerr@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A";
- case 0x056d: return "?wcin@std@@3V?$basic_istream@GU?$char_traits@G@std@@@1@A";
- case 0x056e: return "?wcin@std@@3V?$basic_istream@_WU?$char_traits@_W@std@@@1@A";
- case 0x056f: return "?wclog@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A";
- case 0x0570: return "?wclog@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A";
- case 0x0571: return "?wcout@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A";
- case 0x0572: return "?wcout@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A";
- case 0x0573: return "?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADD@Z";
- case 0x0574: return "?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGD@Z";
- case 0x0575: return "?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WD@Z";
- case 0x0576: return "?widen@?$ctype@D@std@@QEBADD@Z";
- case 0x0577: return "?widen@?$ctype@D@std@@QEBAPEBDPEBD0PEAD@Z";
- case 0x0578: return "?widen@?$ctype@G@std@@QEBAGD@Z";
- case 0x0579: return "?widen@?$ctype@G@std@@QEBAPEBDPEBD0PEAG@Z";
- case 0x057a: return "?widen@?$ctype@_W@std@@QEBAPEBDPEBD0PEA_W@Z";
- case 0x057b: return "?widen@?$ctype@_W@std@@QEBA_WD@Z";
- case 0x057c: return "?width@ios_base@std@@QEAA_J_J@Z";
- case 0x057d: return "?width@ios_base@std@@QEBA_JXZ";
- case 0x057e: return "?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_J@Z";
- case 0x057f: return "?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEBG_J@Z";
- case 0x0580: return "?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEB_W_J@Z";
- case 0x0581: return "?ws@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@1@AEAV21@@Z";
- case 0x0582: return "?ws@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@1@AEAV21@@Z";
- case 0x0583: return "?ws@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z";
- case 0x0584: return "?xalloc@ios_base@std@@SAHXZ";
- case 0x0585: return "?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z";
- case 0x0586: return "?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_J@Z";
- case 0x0587: return "?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_J@Z";
- case 0x0588: return "?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z";
- case 0x0589: return "?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEBG_J@Z";
- case 0x058a: return "?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEB_W_J@Z";
- case 0x058b: return "_Call_once";
- case 0x058c: return "_Call_onceEx";
- case 0x058d: return "_Cnd_broadcast";
- case 0x058e: return "_Cnd_destroy";
- case 0x058f: return "_Cnd_do_broadcast_at_thread_exit";
- case 0x0590: return "_Cnd_init";
- case 0x0591: return "_Cnd_register_at_thread_exit";
- case 0x0592: return "_Cnd_signal";
- case 0x0593: return "_Cnd_timedwait";
- case 0x0594: return "_Cnd_unregister_at_thread_exit";
- case 0x0595: return "_Cnd_wait";
- case 0x0596: return "_Cosh";
- case 0x0597: return "_Denorm";
- case 0x0598: return "_Dint";
- case 0x0599: return "_Dnorm";
- case 0x059a: return "_Do_call";
- case 0x059b: return "_Dscale";
- case 0x059c: return "_Dtento";
- case 0x059d: return "_Dtest";
- case 0x059e: return "_Dunscale";
- case 0x059f: return "_Eps";
- case 0x05a0: return "_Exp";
- case 0x05a1: return "_FCosh";
- case 0x05a2: return "_FDenorm";
- case 0x05a3: return "_FDint";
- case 0x05a4: return "_FDnorm";
- case 0x05a5: return "_FDscale";
- case 0x05a6: return "_FDtento";
- case 0x05a7: return "_FDtest";
- case 0x05a8: return "_FDunscale";
- case 0x05a9: return "_FEps";
- case 0x05aa: return "_FExp";
- case 0x05ab: return "_FInf";
- case 0x05ac: return "_FNan";
- case 0x05ad: return "_FRteps";
- case 0x05ae: return "_FSinh";
- case 0x05af: return "_FSnan";
- case 0x05b0: return "_FXbig";
- case 0x05b1: return "_FXp_addh";
- case 0x05b2: return "_FXp_addx";
- case 0x05b3: return "_FXp_getw";
- case 0x05b4: return "_FXp_invx";
- case 0x05b5: return "_FXp_ldexpx";
- case 0x05b6: return "_FXp_movx";
- case 0x05b7: return "_FXp_mulh";
- case 0x05b8: return "_FXp_mulx";
- case 0x05b9: return "_FXp_setn";
- case 0x05ba: return "_FXp_setw";
- case 0x05bb: return "_FXp_sqrtx";
- case 0x05bc: return "_FXp_subx";
- case 0x05bd: return "_FZero";
- case 0x05be: return "_Getcoll";
- case 0x05bf: return "_Getctype";
- case 0x05c0: return "_Getcvt";
- case 0x05c1: return "_Getdateorder";
- case 0x05c2: return "_Getwctype";
- case 0x05c3: return "_Getwctypes";
- case 0x05c4: return "_Hugeval";
- case 0x05c5: return "_Inf";
- case 0x05c6: return "_LCosh";
- case 0x05c7: return "_LDenorm";
- case 0x05c8: return "_LDint";
- case 0x05c9: return "_LDscale";
- case 0x05ca: return "_LDtento";
- case 0x05cb: return "_LDtest";
- case 0x05cc: return "_LDunscale";
- case 0x05cd: return "_LEps";
- case 0x05ce: return "_LExp";
- case 0x05cf: return "_LInf";
- case 0x05d0: return "_LNan";
- case 0x05d1: return "_LPoly";
- case 0x05d2: return "_LRteps";
- case 0x05d3: return "_LSinh";
- case 0x05d4: return "_LSnan";
- case 0x05d5: return "_LXbig";
- case 0x05d6: return "_LXp_addh";
- case 0x05d7: return "_LXp_addx";
- case 0x05d8: return "_LXp_getw";
- case 0x05d9: return "_LXp_invx";
- case 0x05da: return "_LXp_ldexpx";
- case 0x05db: return "_LXp_movx";
- case 0x05dc: return "_LXp_mulh";
- case 0x05dd: return "_LXp_mulx";
- case 0x05de: return "_LXp_setn";
- case 0x05df: return "_LXp_setw";
- case 0x05e0: return "_LXp_sqrtx";
- case 0x05e1: return "_LXp_subx";
- case 0x05e2: return "_LZero";
- case 0x05e3: return "_Lock_shared_ptr_spin_lock";
- case 0x05e4: return "_Mbrtowc";
- case 0x05e5: return "_Mtx_clear_owner";
- case 0x05e6: return "_Mtx_current_owns";
- case 0x05e7: return "_Mtx_destroy";
- case 0x05e8: return "_Mtx_getconcrtcs";
- case 0x05e9: return "_Mtx_init";
- case 0x05ea: return "_Mtx_lock";
- case 0x05eb: return "_Mtx_reset_owner";
- case 0x05ec: return "_Mtx_timedlock";
- case 0x05ed: return "_Mtx_trylock";
- case 0x05ee: return "_Mtx_unlock";
- case 0x05ef: return "_Mtxdst";
- case 0x05f0: return "_Mtxinit";
- case 0x05f1: return "_Mtxlock";
- case 0x05f2: return "_Mtxunlock";
- case 0x05f3: return "_Nan";
- case 0x05f4: return "_Once";
- case 0x05f5: return "_Poly";
- case 0x05f6: return "_Rteps";
- case 0x05f7: return "_Sinh";
- case 0x05f8: return "_Snan";
- case 0x05f9: return "_Stod";
- case 0x05fa: return "_Stodx";
- case 0x05fb: return "_Stof";
- case 0x05fc: return "_Stoflt";
- case 0x05fd: return "_Stofx";
- case 0x05fe: return "_Stold";
- case 0x05ff: return "_Stoldx";
- case 0x0600: return "_Stoll";
- case 0x0601: return "_Stollx";
- case 0x0602: return "_Stolx";
- case 0x0603: return "_Stopfx";
- case 0x0604: return "_Stoul";
- case 0x0605: return "_Stoull";
- case 0x0606: return "_Stoullx";
- case 0x0607: return "_Stoulx";
- case 0x0608: return "_Stoxflt";
- case 0x0609: return "_Strcoll";
- case 0x060a: return "_Strxfrm";
- case 0x060b: return "_Thrd_abort";
- case 0x060c: return "_Thrd_create";
- case 0x060d: return "_Thrd_current";
- case 0x060e: return "_Thrd_detach";
- case 0x060f: return "_Thrd_equal";
- case 0x0610: return "_Thrd_exit";
- case 0x0611: return "_Thrd_join";
- case 0x0612: return "_Thrd_lt";
- case 0x0613: return "_Thrd_sleep";
- case 0x0614: return "_Thrd_start";
- case 0x0615: return "_Thrd_yield";
- case 0x0616: return "_Tolower";
- case 0x0617: return "_Toupper";
- case 0x0618: return "_Towlower";
- case 0x0619: return "_Towupper";
- case 0x061a: return "_Tss_create";
- case 0x061b: return "_Tss_delete";
- case 0x061c: return "_Tss_get";
- case 0x061d: return "_Tss_set";
- case 0x061e: return "_Unlock_shared_ptr_spin_lock";
- case 0x061f: return "_Wcrtomb";
- case 0x0620: return "_Wcscoll";
- case 0x0621: return "_Wcsxfrm";
- case 0x0622: return "_Xbig";
- case 0x0623: return "_Xp_addh";
- case 0x0624: return "_Xp_addx";
- case 0x0625: return "_Xp_getw";
- case 0x0626: return "_Xp_invx";
- case 0x0627: return "_Xp_ldexpx";
- case 0x0628: return "_Xp_movx";
- case 0x0629: return "_Xp_mulh";
- case 0x062a: return "_Xp_mulx";
- case 0x062b: return "_Xp_setn";
- case 0x062c: return "_Xp_setw";
- case 0x062d: return "_Xp_sqrtx";
- case 0x062e: return "_Xp_subx";
- case 0x062f: return "_Xtime_diff_to_millis";
- case 0x0630: return "_Xtime_diff_to_millis2";
- case 0x0631: return "_Xtime_get_ticks";
- case 0x0632: return "_Zero";
- case 0x0633: return "__Wcrtomb_lk";
- case 0x0634: return "towctrans";
- case 0x0635: return "wctrans";
- case 0x0636: return "wctype";
- case 0x0637: return "xtime_get";
+ switch (i) {
+ case 0x0001:
+ return "??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+ "std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z";
+ case 0x0002:
+ return "??$_Getvals@_W@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+ "std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z";
+ case 0x0003:
+ return "??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@"
+ "_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z";
+ case 0x0004: return "??0?$_Yarn@D@std@@QEAA@AEBV01@@Z";
+ case 0x0005: return "??0?$_Yarn@D@std@@QEAA@PEBD@Z";
+ case 0x0006: return "??0?$_Yarn@D@std@@QEAA@XZ";
+ case 0x0007: return "??0?$_Yarn@_W@std@@QEAA@XZ";
+ case 0x0008: return "??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ";
+ case 0x0009:
+ return "??0?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@DU?$char_traits@D@std@@@1@@Z";
+ case 0x000a: return "??0?$basic_ios@GU?$char_traits@G@std@@@std@@IEAA@XZ";
+ case 0x000b:
+ return "??0?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@GU?$char_traits@G@std@@@1@@Z";
+ case 0x000c: return "??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAA@XZ";
+ case 0x000d:
+ return "??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@_WU?$char_traits@_W@std@@@1@@Z";
+ case 0x000e:
+ return "??0?$basic_iostream@DU?$char_traits@D@std@@@std@@IEAA@$$QEAV01@@Z";
+ case 0x000f:
+ return "??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@DU?$char_traits@D@std@@@1@@Z";
+ case 0x0010:
+ return "??0?$basic_iostream@GU?$char_traits@G@std@@@std@@IEAA@$$QEAV01@@Z";
+ case 0x0011:
+ return "??0?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@GU?$char_traits@G@std@@@1@@Z";
+ case 0x0012:
+ return "??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IEAA@$$QEAV01@@Z";
+ case 0x0013:
+ return "??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@_WU?$char_traits@_W@std@@@1@@Z";
+ case 0x0014:
+ return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@IEAA@$$QEAV01@@Z";
+ case 0x0015:
+ return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@DU?$char_traits@D@std@@@1@_N1@Z";
+ case 0x0016:
+ return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@DU?$char_traits@D@std@@@1@_N@Z";
+ case 0x0017:
+ return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@W4_"
+ "Uninitialized@1@@Z";
+ case 0x0018:
+ return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@IEAA@$$QEAV01@@Z";
+ case 0x0019:
+ return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@GU?$char_traits@G@std@@@1@_N1@Z";
+ case 0x001a:
+ return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@GU?$char_traits@G@std@@@1@_N@Z";
+ case 0x001b:
+ return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@W4_"
+ "Uninitialized@1@@Z";
+ case 0x001c:
+ return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAA@$$QEAV01@@Z";
+ case 0x001d:
+ return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z";
+ case 0x001e:
+ return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@_WU?$char_traits@_W@std@@@1@_N@Z";
+ case 0x001f:
+ return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_"
+ "Uninitialized@1@@Z";
+ case 0x0020:
+ return "??0?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAA@$$QEAV01@@Z";
+ case 0x0021:
+ return "??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@DU?$char_traits@D@std@@@1@_N@Z";
+ case 0x0022:
+ return "??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@W4_"
+ "Uninitialized@1@_N@Z";
+ case 0x0023:
+ return "??0?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAA@$$QEAV01@@Z";
+ case 0x0024:
+ return "??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@GU?$char_traits@G@std@@@1@_N@Z";
+ case 0x0025:
+ return "??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@W4_"
+ "Uninitialized@1@_N@Z";
+ case 0x0026:
+ return "??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAA@$$QEAV01@@Z";
+ case 0x0027:
+ return "??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@_WU?$char_traits@_W@std@@@1@_N@Z";
+ case 0x0028:
+ return "??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_"
+ "Uninitialized@1@_N@Z";
+ case 0x0029:
+ return "??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@AEBV01@@Z";
+ case 0x002a:
+ return "??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@W4_"
+ "Uninitialized@1@@Z";
+ case 0x002b:
+ return "??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@XZ";
+ case 0x002c:
+ return "??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@AEBV01@@Z";
+ case 0x002d:
+ return "??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@W4_"
+ "Uninitialized@1@@Z";
+ case 0x002e:
+ return "??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@XZ";
+ case 0x002f:
+ return "??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@AEBV01@@Z";
+ case 0x0030:
+ return "??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@W4_"
+ "Uninitialized@1@@Z";
+ case 0x0031:
+ return "??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@XZ";
+ case 0x0032: return "??0?$codecvt@DDH@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x0033: return "??0?$codecvt@DDH@std@@QEAA@_K@Z";
+ case 0x0034: return "??0?$codecvt@GDH@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x0035: return "??0?$codecvt@GDH@std@@QEAA@_K@Z";
+ case 0x0036: return "??0?$codecvt@_WDH@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x0037: return "??0?$codecvt@_WDH@std@@QEAA@_K@Z";
+ case 0x0038: return "??0?$ctype@D@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x0039: return "??0?$ctype@D@std@@QEAA@PEBF_N_K@Z";
+ case 0x003a: return "??0?$ctype@G@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x003b: return "??0?$ctype@G@std@@QEAA@_K@Z";
+ case 0x003c: return "??0?$ctype@_W@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x003d: return "??0?$ctype@_W@std@@QEAA@_K@Z";
+ case 0x003e:
+ return "??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x003f:
+ return "??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@QEAA@_K@Z";
+ case 0x0040:
+ return "??0?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x0041:
+ return "??0?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@QEAA@_K@Z";
+ case 0x0042:
+ return "??0?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@"
+ "@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x0043:
+ return "??0?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@"
+ "@@std@@QEAA@_K@Z";
+ case 0x0044:
+ return "??0?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x0045:
+ return "??0?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@QEAA@_K@Z";
+ case 0x0046:
+ return "??0?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x0047:
+ return "??0?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@QEAA@_K@Z";
+ case 0x0048:
+ return "??0?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@"
+ "@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x0049:
+ return "??0?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@"
+ "@@std@@QEAA@_K@Z";
+ case 0x004a:
+ return "??0?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@IEAA@PEBD_K@Z";
+ case 0x004b:
+ return "??0?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x004c:
+ return "??0?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@QEAA@_K@Z";
+ case 0x004d:
+ return "??0?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@IEAA@PEBD_K@Z";
+ case 0x004e:
+ return "??0?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x004f:
+ return "??0?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@QEAA@_K@Z";
+ case 0x0050:
+ return "??0?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@IEAA@PEBD_K@Z";
+ case 0x0051:
+ return "??0?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x0052:
+ return "??0?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEAA@_K@Z";
+ case 0x0053:
+ return "??0?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x0054:
+ return "??0?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@QEAA@_K@Z";
+ case 0x0055:
+ return "??0?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@IEAA@PEBD_K@Z";
+ case 0x0056:
+ return "??0?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x0057:
+ return "??0?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@QEAA@_K@Z";
+ case 0x0058:
+ return "??0?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@IEAA@PEBD_K@Z";
+ case 0x0059:
+ return "??0?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x005a:
+ return "??0?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEAA@_K@Z";
+ case 0x005b: return "??0Init@ios_base@std@@QEAA@XZ";
+ case 0x005c:
+ return "??0_Concurrent_queue_base_v4@details@Concurrency@@IEAA@_K@Z";
+ case 0x005d:
+ return "??0_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAA@"
+ "AEBV_Concurrent_queue_base_v4@12@@Z";
+ case 0x005e: return "??0_Container_base12@std@@QEAA@AEBU01@@Z";
+ case 0x005f: return "??0_Container_base12@std@@QEAA@XZ";
+ case 0x0060: return "??0_Facet_base@std@@QEAA@AEBV01@@Z";
+ case 0x0061: return "??0_Facet_base@std@@QEAA@XZ";
+ case 0x0062: return "??0_Init_locks@std@@QEAA@XZ";
+ case 0x0063: return "??0_Locimp@locale@std@@AEAA@AEBV012@@Z";
+ case 0x0064: return "??0_Locimp@locale@std@@AEAA@_N@Z";
+ case 0x0065: return "??0_Locinfo@std@@QEAA@HPEBD@Z";
+ case 0x0066: return "??0_Locinfo@std@@QEAA@PEBD@Z";
+ case 0x0067: return "??0_Lockit@std@@QEAA@H@Z";
+ case 0x0068: return "??0_Lockit@std@@QEAA@XZ";
+ case 0x0069: return "??0_Pad@std@@QEAA@AEBV01@@Z";
+ case 0x006a: return "??0_Pad@std@@QEAA@XZ";
+ case 0x006b: return "??0_Runtime_object@details@Concurrency@@QEAA@H@Z";
+ case 0x006c: return "??0_Runtime_object@details@Concurrency@@QEAA@XZ";
+ case 0x006d: return "??0_Timevec@std@@QEAA@AEBV01@@Z";
+ case 0x006e: return "??0_Timevec@std@@QEAA@PEAX@Z";
+ case 0x006f: return "??0_UShinit@std@@QEAA@XZ";
+ case 0x0070: return "??0_Winit@std@@QEAA@XZ";
+ case 0x0071: return "??0agent@Concurrency@@QEAA@AEAVScheduleGroup@1@@Z";
+ case 0x0072: return "??0agent@Concurrency@@QEAA@AEAVScheduler@1@@Z";
+ case 0x0073: return "??0agent@Concurrency@@QEAA@XZ";
+ case 0x0074: return "??0codecvt_base@std@@QEAA@_K@Z";
+ case 0x0075: return "??0ctype_base@std@@QEAA@_K@Z";
+ case 0x0076: return "??0facet@locale@std@@IEAA@_K@Z";
+ case 0x0077: return "??0id@locale@std@@QEAA@_K@Z";
+ case 0x0078: return "??0ios_base@std@@IEAA@XZ";
+ case 0x0079: return "??0time_base@std@@QEAA@_K@Z";
+ case 0x007a: return "??1?$_Yarn@D@std@@QEAA@XZ";
+ case 0x007b: return "??1?$_Yarn@_W@std@@QEAA@XZ";
+ case 0x007c: return "??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ";
+ case 0x007d: return "??1?$basic_ios@GU?$char_traits@G@std@@@std@@UEAA@XZ";
+ case 0x007e: return "??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
+ case 0x007f: return "??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UEAA@XZ";
+ case 0x0080: return "??1?$basic_iostream@GU?$char_traits@G@std@@@std@@UEAA@XZ";
+ case 0x0081:
+ return "??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
+ case 0x0082: return "??1?$basic_istream@DU?$char_traits@D@std@@@std@@UEAA@XZ";
+ case 0x0083: return "??1?$basic_istream@GU?$char_traits@G@std@@@std@@UEAA@XZ";
+ case 0x0084:
+ return "??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
+ case 0x0085: return "??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ";
+ case 0x0086: return "??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UEAA@XZ";
+ case 0x0087:
+ return "??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
+ case 0x0088:
+ return "??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ";
+ case 0x0089:
+ return "??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAA@XZ";
+ case 0x008a:
+ return "??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
+ case 0x008b: return "??1?$codecvt@DDH@std@@MEAA@XZ";
+ case 0x008c: return "??1?$codecvt@GDH@std@@MEAA@XZ";
+ case 0x008d: return "??1?$codecvt@_WDH@std@@MEAA@XZ";
+ case 0x008e: return "??1?$ctype@D@std@@MEAA@XZ";
+ case 0x008f: return "??1?$ctype@G@std@@MEAA@XZ";
+ case 0x0090: return "??1?$ctype@_W@std@@MEAA@XZ";
+ case 0x0091:
+ return "??1?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@MEAA@XZ";
+ case 0x0092:
+ return "??1?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@MEAA@XZ";
+ case 0x0093:
+ return "??1?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@"
+ "@@std@@MEAA@XZ";
+ case 0x0094:
+ return "??1?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@MEAA@XZ";
+ case 0x0095:
+ return "??1?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@MEAA@XZ";
+ case 0x0096:
+ return "??1?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@"
+ "@@std@@MEAA@XZ";
+ case 0x0097:
+ return "??1?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@MEAA@XZ";
+ case 0x0098:
+ return "??1?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@MEAA@XZ";
+ case 0x0099:
+ return "??1?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@MEAA@XZ";
+ case 0x009a:
+ return "??1?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@MEAA@XZ";
+ case 0x009b:
+ return "??1?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@MEAA@XZ";
+ case 0x009c:
+ return "??1?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@MEAA@XZ";
+ case 0x009d: return "??1Init@ios_base@std@@QEAA@XZ";
+ case 0x009e:
+ return "??1_Concurrent_queue_base_v4@details@Concurrency@@MEAA@XZ";
+ case 0x009f:
+ return "??1_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAA@XZ";
+ case 0x00a0:
+ return "??1_Concurrent_vector_base_v4@details@Concurrency@@IEAA@XZ";
+ case 0x00a1: return "??1_Container_base12@std@@QEAA@XZ";
+ case 0x00a2: return "??1_Facet_base@std@@UEAA@XZ";
+ case 0x00a3: return "??1_Init_locks@std@@QEAA@XZ";
+ case 0x00a4: return "??1_Locimp@locale@std@@MEAA@XZ";
+ case 0x00a5: return "??1_Locinfo@std@@QEAA@XZ";
+ case 0x00a6: return "??1_Lockit@std@@QEAA@XZ";
+ case 0x00a7: return "??1_Pad@std@@QEAA@XZ";
+ case 0x00a8: return "??1_Timevec@std@@QEAA@XZ";
+ case 0x00a9: return "??1_UShinit@std@@QEAA@XZ";
+ case 0x00aa: return "??1_Winit@std@@QEAA@XZ";
+ case 0x00ab: return "??1agent@Concurrency@@UEAA@XZ";
+ case 0x00ac: return "??1codecvt_base@std@@UEAA@XZ";
+ case 0x00ad: return "??1ctype_base@std@@UEAA@XZ";
+ case 0x00ae: return "??1facet@locale@std@@MEAA@XZ";
+ case 0x00af: return "??1ios_base@std@@UEAA@XZ";
+ case 0x00b0: return "??1time_base@std@@UEAA@XZ";
+ case 0x00b1: return "??4?$_Iosb@H@std@@QEAAAEAV01@AEBV01@@Z";
+ case 0x00b2: return "??4?$_Yarn@D@std@@QEAAAEAV01@AEBV01@@Z";
+ case 0x00b3: return "??4?$_Yarn@D@std@@QEAAAEAV01@PEBD@Z";
+ case 0x00b4: return "??4?$_Yarn@_W@std@@QEAAAEAV01@PEB_W@Z";
+ case 0x00b5:
+ return "??4?$basic_iostream@DU?$char_traits@D@std@@@std@@IEAAAEAV01@$$"
+ "QEAV01@@Z";
+ case 0x00b6:
+ return "??4?$basic_iostream@GU?$char_traits@G@std@@@std@@IEAAAEAV01@$$"
+ "QEAV01@@Z";
+ case 0x00b7:
+ return "??4?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@$$"
+ "QEAV01@@Z";
+ case 0x00b8:
+ return "??4?$basic_istream@DU?$char_traits@D@std@@@std@@IEAAAEAV01@$$QEAV01@"
+ "@Z";
+ case 0x00b9:
+ return "??4?$basic_istream@GU?$char_traits@G@std@@@std@@IEAAAEAV01@$$QEAV01@"
+ "@Z";
+ case 0x00ba:
+ return "??4?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@$$"
+ "QEAV01@@Z";
+ case 0x00bb:
+ return "??4?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAAAEAV01@$$QEAV01@"
+ "@Z";
+ case 0x00bc:
+ return "??4?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAAAEAV01@$$QEAV01@"
+ "@Z";
+ case 0x00bd:
+ return "??4?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@$$"
+ "QEAV01@@Z";
+ case 0x00be:
+ return "??4?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAAEAV01@AEBV01@"
+ "@Z";
+ case 0x00bf:
+ return "??4?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAAEAV01@AEBV01@"
+ "@Z";
+ case 0x00c0:
+ return "??4?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@"
+ "AEBV01@@Z";
+ case 0x00c1: return "??4Init@ios_base@std@@QEAAAEAV012@AEBV012@@Z";
+ case 0x00c2: return "??4_Container_base0@std@@QEAAAEAU01@AEBU01@@Z";
+ case 0x00c3: return "??4_Container_base12@std@@QEAAAEAU01@AEBU01@@Z";
+ case 0x00c4: return "??4_Facet_base@std@@QEAAAEAV01@AEBV01@@Z";
+ case 0x00c5: return "??4_Init_locks@std@@QEAAAEAV01@AEBV01@@Z";
+ case 0x00c6: return "??4_Pad@std@@QEAAAEAV01@AEBV01@@Z";
+ case 0x00c7: return "??4_Timevec@std@@QEAAAEAV01@AEBV01@@Z";
+ case 0x00c8: return "??4_UShinit@std@@QEAAAEAV01@AEBV01@@Z";
+ case 0x00c9: return "??4_Winit@std@@QEAAAEAV01@AEBV01@@Z";
+ case 0x00ca:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAF@Z";
+ case 0x00cb:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAG@Z";
+ case 0x00cc:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAH@Z";
+ case 0x00cd:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAI@Z";
+ case 0x00ce:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAJ@Z";
+ case 0x00cf:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAK@Z";
+ case 0x00d0:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAM@Z";
+ case 0x00d1:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAN@Z";
+ case 0x00d2:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAO@Z";
+ case 0x00d3:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAPEAX@"
+ "Z";
+ case 0x00d4:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_J@Z";
+ case 0x00d5:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_K@Z";
+ case 0x00d6:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_N@Z";
+ case 0x00d7:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@"
+ "P6AAEAV01@AEAV01@@Z@Z";
+ case 0x00d8:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$"
+ "basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z";
+ case 0x00d9:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@"
+ "P6AAEAVios_base@1@AEAV21@@Z@Z";
+ case 0x00da:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$"
+ "basic_streambuf@DU?$char_traits@D@std@@@1@@Z";
+ case 0x00db:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAF@Z";
+ case 0x00dc:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAG@Z";
+ case 0x00dd:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAH@Z";
+ case 0x00de:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAI@Z";
+ case 0x00df:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAJ@Z";
+ case 0x00e0:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAK@Z";
+ case 0x00e1:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAM@Z";
+ case 0x00e2:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAN@Z";
+ case 0x00e3:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAO@Z";
+ case 0x00e4:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAPEAX@"
+ "Z";
+ case 0x00e5:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_J@Z";
+ case 0x00e6:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_K@Z";
+ case 0x00e7:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_N@Z";
+ case 0x00e8:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@"
+ "P6AAEAV01@AEAV01@@Z@Z";
+ case 0x00e9:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$"
+ "basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z";
+ case 0x00ea:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@"
+ "P6AAEAVios_base@1@AEAV21@@Z@Z";
+ case 0x00eb:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$"
+ "basic_streambuf@GU?$char_traits@G@std@@@1@@Z";
+ case 0x00ec:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAF@Z";
+ case 0x00ed:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAG@Z";
+ case 0x00ee:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAH@Z";
+ case 0x00ef:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAI@Z";
+ case 0x00f0:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAJ@Z";
+ case 0x00f1:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAK@Z";
+ case 0x00f2:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAM@Z";
+ case 0x00f3:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAN@Z";
+ case 0x00f4:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAO@Z";
+ case 0x00f5:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+ "AEAPEAX@Z";
+ case 0x00f6:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_J@"
+ "Z";
+ case 0x00f7:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_K@"
+ "Z";
+ case 0x00f8:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_N@"
+ "Z";
+ case 0x00f9:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+ "P6AAEAV01@AEAV01@@Z@Z";
+ case 0x00fa:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+ "P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z";
+ case 0x00fb:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+ "P6AAEAVios_base@1@AEAV21@@Z@Z";
+ case 0x00fc:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$"
+ "basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z";
+ case 0x00fd:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@F@Z";
+ case 0x00fe:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@G@Z";
+ case 0x00ff:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z";
+ case 0x0100:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@I@Z";
+ case 0x0101:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@J@Z";
+ case 0x0102:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@K@Z";
+ case 0x0103:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@M@Z";
+ case 0x0104:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@N@Z";
+ case 0x0105:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@O@Z";
+ case 0x0106:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@"
+ "P6AAEAV01@AEAV01@@Z@Z";
+ case 0x0107:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$"
+ "basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z";
+ case 0x0108:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@"
+ "P6AAEAVios_base@1@AEAV21@@Z@Z";
+ case 0x0109:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$"
+ "basic_streambuf@DU?$char_traits@D@std@@@1@@Z";
+ case 0x010a:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEBX@Z";
+ case 0x010b:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_J@Z";
+ case 0x010c:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_K@Z";
+ case 0x010d:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_N@Z";
+ case 0x010e:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@F@Z";
+ case 0x010f:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@G@Z";
+ case 0x0110:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@H@Z";
+ case 0x0111:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@I@Z";
+ case 0x0112:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@J@Z";
+ case 0x0113:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@K@Z";
+ case 0x0114:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@M@Z";
+ case 0x0115:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@N@Z";
+ case 0x0116:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@O@Z";
+ case 0x0117:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@"
+ "P6AAEAV01@AEAV01@@Z@Z";
+ case 0x0118:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$"
+ "basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z";
+ case 0x0119:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@"
+ "P6AAEAVios_base@1@AEAV21@@Z@Z";
+ case 0x011a:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$"
+ "basic_streambuf@GU?$char_traits@G@std@@@1@@Z";
+ case 0x011b:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEBX@Z";
+ case 0x011c:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_J@Z";
+ case 0x011d:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_K@Z";
+ case 0x011e:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_N@Z";
+ case 0x011f:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@F@Z";
+ case 0x0120:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@G@Z";
+ case 0x0121:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@H@Z";
+ case 0x0122:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@I@Z";
+ case 0x0123:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@J@Z";
+ case 0x0124:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@K@Z";
+ case 0x0125:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@M@Z";
+ case 0x0126:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@N@Z";
+ case 0x0127:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@O@Z";
+ case 0x0128:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+ "P6AAEAV01@AEAV01@@Z@Z";
+ case 0x0129:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+ "P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z";
+ case 0x012a:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+ "P6AAEAVios_base@1@AEAV21@@Z@Z";
+ case 0x012b:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$"
+ "basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z";
+ case 0x012c:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEBX@Z";
+ case 0x012d:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_J@Z";
+ case 0x012e:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_K@Z";
+ case 0x012f:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_N@Z";
+ case 0x0130: return "??7ios_base@std@@QEBA_NXZ";
+ case 0x0131: return "??Bid@locale@std@@QEAA_KXZ";
+ case 0x0132: return "??Bios_base@std@@QEBAPEAXXZ";
+ case 0x0133: return "??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@";
+ case 0x0134: return "??_7?$basic_ios@GU?$char_traits@G@std@@@std@@6B@";
+ case 0x0135: return "??_7?$basic_ios@_WU?$char_traits@_W@std@@@std@@6B@";
+ case 0x0136: return "??_7?$basic_iostream@DU?$char_traits@D@std@@@std@@6B@";
+ case 0x0137: return "??_7?$basic_iostream@GU?$char_traits@G@std@@@std@@6B@";
+ case 0x0138: return "??_7?$basic_iostream@_WU?$char_traits@_W@std@@@std@@6B@";
+ case 0x0139: return "??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@";
+ case 0x013a: return "??_7?$basic_istream@GU?$char_traits@G@std@@@std@@6B@";
+ case 0x013b: return "??_7?$basic_istream@_WU?$char_traits@_W@std@@@std@@6B@";
+ case 0x013c: return "??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@";
+ case 0x013d: return "??_7?$basic_ostream@GU?$char_traits@G@std@@@std@@6B@";
+ case 0x013e: return "??_7?$basic_ostream@_WU?$char_traits@_W@std@@@std@@6B@";
+ case 0x013f: return "??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@";
+ case 0x0140: return "??_7?$basic_streambuf@GU?$char_traits@G@std@@@std@@6B@";
+ case 0x0141: return "??_7?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@6B@";
+ case 0x0142: return "??_7?$codecvt@DDH@std@@6B@";
+ case 0x0143: return "??_7?$codecvt@GDH@std@@6B@";
+ case 0x0144: return "??_7?$codecvt@_WDH@std@@6B@";
+ case 0x0145: return "??_7?$ctype@D@std@@6B@";
+ case 0x0146: return "??_7?$ctype@G@std@@6B@";
+ case 0x0147: return "??_7?$ctype@_W@std@@6B@";
+ case 0x0148:
+ return "??_7?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@6B@";
+ case 0x0149:
+ return "??_7?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@6B@";
+ case 0x014a:
+ return "??_7?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@6B@";
+ case 0x014b:
+ return "??_7?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@6B@";
+ case 0x014c:
+ return "??_7?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@6B@";
+ case 0x014d:
+ return "??_7?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@6B@";
+ case 0x014e:
+ return "??_7?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@6B@";
+ case 0x014f:
+ return "??_7?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@6B@";
+ case 0x0150:
+ return "??_7?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@6B@";
+ case 0x0151:
+ return "??_7?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@6B@";
+ case 0x0152:
+ return "??_7?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@6B@";
+ case 0x0153:
+ return "??_7?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@6B@";
+ case 0x0154: return "??_7_Facet_base@std@@6B@";
+ case 0x0155: return "??_7_Locimp@locale@std@@6B@";
+ case 0x0156: return "??_7_Pad@std@@6B@";
+ case 0x0157: return "??_7codecvt_base@std@@6B@";
+ case 0x0158: return "??_7ctype_base@std@@6B@";
+ case 0x0159: return "??_7facet@locale@std@@6B@";
+ case 0x015a: return "??_7ios_base@std@@6B@";
+ case 0x015b: return "??_7time_base@std@@6B@";
+ case 0x015c:
+ return "??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@"
+ "DU?$char_traits@D@std@@@1@@";
+ case 0x015d:
+ return "??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@"
+ "DU?$char_traits@D@std@@@1@@";
+ case 0x015e:
+ return "??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@"
+ "GU?$char_traits@G@std@@@1@@";
+ case 0x015f:
+ return "??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@"
+ "GU?$char_traits@G@std@@@1@@";
+ case 0x0160:
+ return "??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_"
+ "istream@_WU?$char_traits@_W@std@@@1@@";
+ case 0x0161:
+ return "??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_"
+ "ostream@_WU?$char_traits@_W@std@@@1@@";
+ case 0x0162: return "??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@";
+ case 0x0163: return "??_8?$basic_istream@GU?$char_traits@G@std@@@std@@7B@";
+ case 0x0164: return "??_8?$basic_istream@_WU?$char_traits@_W@std@@@std@@7B@";
+ case 0x0165: return "??_8?$basic_ostream@DU?$char_traits@D@std@@@std@@7B@";
+ case 0x0166: return "??_8?$basic_ostream@GU?$char_traits@G@std@@@std@@7B@";
+ case 0x0167: return "??_8?$basic_ostream@_WU?$char_traits@_W@std@@@std@@7B@";
+ case 0x0168:
+ return "??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+ case 0x0169:
+ return "??_D?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+ case 0x016a:
+ return "??_D?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+ case 0x016b: return "??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+ case 0x016c: return "??_D?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+ case 0x016d:
+ return "??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+ case 0x016e: return "??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+ case 0x016f: return "??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+ case 0x0170:
+ return "??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+ case 0x0171: return "??_F?$codecvt@DDH@std@@QEAAXXZ";
+ case 0x0172: return "??_F?$codecvt@GDH@std@@QEAAXXZ";
+ case 0x0173: return "??_F?$codecvt@_WDH@std@@QEAAXXZ";
+ case 0x0174: return "??_F?$ctype@D@std@@QEAAXXZ";
+ case 0x0175: return "??_F?$ctype@G@std@@QEAAXXZ";
+ case 0x0176: return "??_F?$ctype@_W@std@@QEAAXXZ";
+ case 0x0177:
+ return "??_F?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@QEAAXXZ";
+ case 0x0178:
+ return "??_F?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@QEAAXXZ";
+ case 0x0179:
+ return "??_F?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEAAXXZ";
+ case 0x017a:
+ return "??_F?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@QEAAXXZ";
+ case 0x017b:
+ return "??_F?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@QEAAXXZ";
+ case 0x017c:
+ return "??_F?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEAAXXZ";
+ case 0x017d:
+ return "??_F?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEAAXXZ";
+ case 0x017e:
+ return "??_F?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEAAXXZ";
+ case 0x017f:
+ return "??_F?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEAAXXZ";
+ case 0x0180:
+ return "??_F?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEAAXXZ";
+ case 0x0181:
+ return "??_F?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEAAXXZ";
+ case 0x0182:
+ return "??_F?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEAAXXZ";
+ case 0x0183: return "??_F_Locinfo@std@@QEAAXXZ";
+ case 0x0184: return "??_F_Timevec@std@@QEAAXXZ";
+ case 0x0185: return "??_Fcodecvt_base@std@@QEAAXXZ";
+ case 0x0186: return "??_Fctype_base@std@@QEAAXXZ";
+ case 0x0187: return "??_Ffacet@locale@std@@QEAAXXZ";
+ case 0x0188: return "??_Fid@locale@std@@QEAAXXZ";
+ case 0x0189: return "??_Ftime_base@std@@QEAAXXZ";
+ case 0x018a: return "?NFS_Allocate@details@Concurrency@@YAPEAX_K0PEAX@Z";
+ case 0x018b: return "?NFS_Free@details@Concurrency@@YAXPEAX@Z";
+ case 0x018c: return "?NFS_GetLineSize@details@Concurrency@@YA_KXZ";
+ case 0x018d: return "?_10@placeholders@std@@3V?$_Ph@$09@2@A";
+ case 0x018e: return "?_11@placeholders@std@@3V?$_Ph@$0L@@2@A";
+ case 0x018f: return "?_12@placeholders@std@@3V?$_Ph@$0M@@2@A";
+ case 0x0190: return "?_13@placeholders@std@@3V?$_Ph@$0N@@2@A";
+ case 0x0191: return "?_14@placeholders@std@@3V?$_Ph@$0O@@2@A";
+ case 0x0192: return "?_15@placeholders@std@@3V?$_Ph@$0P@@2@A";
+ case 0x0193: return "?_16@placeholders@std@@3V?$_Ph@$0BA@@2@A";
+ case 0x0194: return "?_17@placeholders@std@@3V?$_Ph@$0BB@@2@A";
+ case 0x0195: return "?_18@placeholders@std@@3V?$_Ph@$0BC@@2@A";
+ case 0x0196: return "?_19@placeholders@std@@3V?$_Ph@$0BD@@2@A";
+ case 0x0197: return "?_1@placeholders@std@@3V?$_Ph@$00@2@A";
+ case 0x0198: return "?_20@placeholders@std@@3V?$_Ph@$0BE@@2@A";
+ case 0x0199: return "?_2@placeholders@std@@3V?$_Ph@$01@2@A";
+ case 0x019a: return "?_3@placeholders@std@@3V?$_Ph@$02@2@A";
+ case 0x019b: return "?_4@placeholders@std@@3V?$_Ph@$03@2@A";
+ case 0x019c: return "?_5@placeholders@std@@3V?$_Ph@$04@2@A";
+ case 0x019d: return "?_6@placeholders@std@@3V?$_Ph@$05@2@A";
+ case 0x019e: return "?_7@placeholders@std@@3V?$_Ph@$06@2@A";
+ case 0x019f: return "?_8@placeholders@std@@3V?$_Ph@$07@2@A";
+ case 0x01a0: return "?_9@placeholders@std@@3V?$_Ph@$08@2@A";
+ case 0x01a1:
+ return "?_Add_vtordisp1@?$basic_ios@DU?$char_traits@D@std@@@std@@UEAAXXZ";
+ case 0x01a2:
+ return "?_Add_vtordisp1@?$basic_ios@GU?$char_traits@G@std@@@std@@UEAAXXZ";
+ case 0x01a3:
+ return "?_Add_vtordisp1@?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
+ case 0x01a4:
+ return "?_Add_vtordisp1@?$basic_istream@DU?$char_traits@D@std@@@std@@"
+ "UEAAXXZ";
+ case 0x01a5:
+ return "?_Add_vtordisp1@?$basic_istream@GU?$char_traits@G@std@@@std@@"
+ "UEAAXXZ";
+ case 0x01a6:
+ return "?_Add_vtordisp1@?$basic_istream@_WU?$char_traits@_W@std@@@std@@"
+ "UEAAXXZ";
+ case 0x01a7:
+ return "?_Add_vtordisp2@?$basic_ios@DU?$char_traits@D@std@@@std@@UEAAXXZ";
+ case 0x01a8:
+ return "?_Add_vtordisp2@?$basic_ios@GU?$char_traits@G@std@@@std@@UEAAXXZ";
+ case 0x01a9:
+ return "?_Add_vtordisp2@?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
+ case 0x01aa:
+ return "?_Add_vtordisp2@?$basic_ostream@DU?$char_traits@D@std@@@std@@"
+ "UEAAXXZ";
+ case 0x01ab:
+ return "?_Add_vtordisp2@?$basic_ostream@GU?$char_traits@G@std@@@std@@"
+ "UEAAXXZ";
+ case 0x01ac:
+ return "?_Add_vtordisp2@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@"
+ "UEAAXXZ";
+ case 0x01ad: return "?_Addcats@_Locinfo@std@@QEAAAEAV12@HPEBD@Z";
+ case 0x01ae: return "?_Addfac@_Locimp@locale@std@@AEAAXPEAVfacet@23@_K@Z";
+ case 0x01af: return "?_Addstd@ios_base@std@@SAXPEAV12@@Z";
+ case 0x01b0:
+ return "?_Advance@_Concurrent_queue_iterator_base_v4@details@Concurrency@@"
+ "IEAAXXZ";
+ case 0x01b1:
+ return "?_Assign@_Concurrent_queue_iterator_base_v4@details@Concurrency@@"
+ "IEAAXAEBV123@@Z";
+ case 0x01b2: return "?_Atexit@@YAXP6AXXZ@Z";
+ case 0x01b3: return "?_BADOFF@std@@3_JB";
+ case 0x01b4: return "?_Byte_reverse_table@details@Concurrency@@3QBEB";
+ case 0x01b5: return "?_C_str@?$_Yarn@D@std@@QEBAPEBDXZ";
+ case 0x01b6: return "?_C_str@?$_Yarn@_W@std@@QEBAPEB_WXZ";
+ case 0x01b7: return "?_Callfns@ios_base@std@@AEAAXW4event@12@@Z";
+ case 0x01b8: return "?_Clocptr@_Locimp@locale@std@@0PEAV123@EA";
+ case 0x01b9: return "?_Close_dir@sys@tr2@std@@YAXPEAX@Z";
+ case 0x01ba: return "?_Copy_file@sys@tr2@std@@YAHPEBD0_N@Z";
+ case 0x01bb: return "?_Copy_file@sys@tr2@std@@YAHPEB_W0_N@Z";
+ case 0x01bc: return "?_Current_get@sys@tr2@std@@YAPEADPEAD@Z";
+ case 0x01bd: return "?_Current_get@sys@tr2@std@@YAPEA_WPEA_W@Z";
+ case 0x01be: return "?_Current_set@sys@tr2@std@@YA_NPEBD@Z";
+ case 0x01bf: return "?_Current_set@sys@tr2@std@@YA_NPEB_W@Z";
+ case 0x01c0: return "?_Decref@facet@locale@std@@UEAAPEAV_Facet_base@3@XZ";
+ case 0x01c1: return "?_Donarrow@?$ctype@G@std@@IEBADGD@Z";
+ case 0x01c2: return "?_Donarrow@?$ctype@_W@std@@IEBAD_WD@Z";
+ case 0x01c3: return "?_Dowiden@?$ctype@G@std@@IEBAGD@Z";
+ case 0x01c4: return "?_Dowiden@?$ctype@_W@std@@IEBA_WD@Z";
+ case 0x01c5: return "?_Empty@?$_Yarn@D@std@@QEBA_NXZ";
+ case 0x01c6: return "?_Empty@?$_Yarn@_W@std@@QEBA_NXZ";
+ case 0x01c7: return "?_Equivalent@sys@tr2@std@@YAHPEBD0@Z";
+ case 0x01c8: return "?_Equivalent@sys@tr2@std@@YAHPEB_W0@Z";
+ case 0x01c9:
+ return "?_Ffmt@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@AEBAPEADPEADDH@Z";
+ case 0x01ca:
+ return "?_Ffmt@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@AEBAPEADPEADDH@Z";
+ case 0x01cb:
+ return "?_Ffmt@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@AEBAPEADPEADDH@Z";
+ case 0x01cc: return "?_File_size@sys@tr2@std@@YA_KPEBD@Z";
+ case 0x01cd: return "?_File_size@sys@tr2@std@@YA_KPEB_W@Z";
+ case 0x01ce: return "?_Findarr@ios_base@std@@AEAAAEAU_Iosarray@12@H@Z";
+ case 0x01cf: return "?_Fiopen@std@@YAPEAU_iobuf@@PEBDHH@Z";
+ case 0x01d0: return "?_Fiopen@std@@YAPEAU_iobuf@@PEBGHH@Z";
+ case 0x01d1: return "?_Fiopen@std@@YAPEAU_iobuf@@PEB_WHH@Z";
+ case 0x01d2:
+ return "?_Fput@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@AEAVios_base@2@DPEBD_K333@Z";
+ case 0x01d3:
+ return "?_Fput@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@AEAVios_base@2@GPEBD_K333@Z";
+ case 0x01d4:
+ return "?_Fput@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@AEAVios_base@2@_WPEBD_K444@Z";
+ case 0x01d5: return "?_Future_error_map@std@@YAPEBDH@Z";
+ case 0x01d6: return "?_GetCombinableSize@details@Concurrency@@YA_KXZ";
+ case 0x01d7: return "?_GetCurrentThreadId@details@Concurrency@@YAKXZ";
+ case 0x01d8: return "?_GetNextAsyncId@details@Concurrency@@YAIXZ";
+ case 0x01d9: return "?_Get_future_error_what@std@@YAPEBDH@Z";
+ case 0x01da:
+ return "?_Getcat@?$codecvt@DDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01db:
+ return "?_Getcat@?$codecvt@GDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01dc:
+ return "?_Getcat@?$codecvt@_WDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01dd:
+ return "?_Getcat@?$ctype@D@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01de:
+ return "?_Getcat@?$ctype@G@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01df:
+ return "?_Getcat@?$ctype@_W@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01e0:
+ return "?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01e1:
+ return "?_Getcat@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01e2:
+ return "?_Getcat@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@"
+ "@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01e3:
+ return "?_Getcat@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01e4:
+ return "?_Getcat@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01e5:
+ return "?_Getcat@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@"
+ "@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01e6:
+ return "?_Getcat@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01e7:
+ return "?_Getcat@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01e8:
+ return "?_Getcat@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01e9:
+ return "?_Getcat@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01ea:
+ return "?_Getcat@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01eb:
+ return "?_Getcat@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01ec: return "?_Getcat@facet@locale@std@@SA_KPEAPEBV123@PEBV23@@Z";
+ case 0x01ed: return "?_Getcoll@_Locinfo@std@@QEBA?AU_Collvec@@XZ";
+ case 0x01ee: return "?_Getctype@_Locinfo@std@@QEBA?AU_Ctypevec@@XZ";
+ case 0x01ef: return "?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ";
+ case 0x01f0: return "?_Getdateorder@_Locinfo@std@@QEBAHXZ";
+ case 0x01f1: return "?_Getdays@_Locinfo@std@@QEBAPEBDXZ";
+ case 0x01f2: return "?_Getfalse@_Locinfo@std@@QEBAPEBDXZ";
+ case 0x01f3:
+ return "?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@"
+ "@@2@1AEAVios_base@2@PEAH@Z";
+ case 0x01f4:
+ return "?_Getffld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@"
+ "@@2@1AEAVios_base@2@PEAH@Z";
+ case 0x01f5:
+ return "?_Getffld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_"
+ "traits@_W@std@@@2@1AEAVios_base@2@PEAH@Z";
+ case 0x01f6:
+ return "?_Getffldx@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@"
+ "@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@"
+ "std@@@2@1AEAVios_base@2@PEAH@Z";
+ case 0x01f7:
+ return "?_Getffldx@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@"
+ "@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@"
+ "std@@@2@1AEAVios_base@2@PEAH@Z";
+ case 0x01f8:
+ return "?_Getffldx@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_"
+ "traits@_W@std@@@2@1AEAVios_base@2@PEAH@Z";
+ case 0x01f9:
+ return "?_Getfmt@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@IEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD@Z";
+ case 0x01fa:
+ return "?_Getfmt@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@IEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD@Z";
+ case 0x01fb:
+ return "?_Getfmt@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@std@@@std@@IEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD@Z";
+ case 0x01fc: return "?_Getgloballocale@locale@std@@CAPEAV_Locimp@12@XZ";
+ case 0x01fd:
+ return "?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@"
+ "@@2@1HAEBVlocale@2@@Z";
+ case 0x01fe:
+ return "?_Getifld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@"
+ "@@2@1HAEBVlocale@2@@Z";
+ case 0x01ff:
+ return "?_Getifld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_"
+ "traits@_W@std@@@2@1HAEBVlocale@2@@Z";
+ case 0x0200:
+ return "?_Getint@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@AEBAHAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "0HHAEAHAEBV?$ctype@D@2@@Z";
+ case 0x0201:
+ return "?_Getint@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@AEBAHAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "0HHAEAHAEBV?$ctype@G@2@@Z";
+ case 0x0202:
+ return "?_Getint@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@std@@@std@@AEBAHAEAV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@2@0HHAEAHAEBV?$ctype@_W@2@@Z";
+ case 0x0203: return "?_Getlconv@_Locinfo@std@@QEBAPEBUlconv@@XZ";
+ case 0x0204: return "?_Getmonths@_Locinfo@std@@QEBAPEBDXZ";
+ case 0x0205: return "?_Getname@_Locinfo@std@@QEBAPEBDXZ";
+ case 0x0206:
+ return "?_Getpfirst@_Container_base12@std@@QEBAPEAPEAU_Iterator_base12@2@XZ";
+ case 0x0207: return "?_Getptr@_Timevec@std@@QEBAPEAXXZ";
+ case 0x0208: return "?_Gettnames@_Locinfo@std@@QEBA?AV_Timevec@2@XZ";
+ case 0x0209: return "?_Gettrue@_Locinfo@std@@QEBAPEBDXZ";
+ case 0x020a:
+ return "?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ";
+ case 0x020b:
+ return "?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ";
+ case 0x020c:
+ return "?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ";
+ case 0x020d:
+ return "?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
+ case 0x020e:
+ return "?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
+ case 0x020f:
+ return "?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_"
+ "WXZ";
+ case 0x0210:
+ return "?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
+ case 0x0211:
+ return "?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
+ case 0x0212:
+ return "?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_"
+ "WXZ";
+ case 0x0213:
+ return "?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@"
+ "IEAAPEADXZ";
+ case 0x0214:
+ return "?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@"
+ "IEAAPEAGXZ";
+ case 0x0215:
+ return "?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_"
+ "WXZ";
+ case 0x0216: return "?_Id_cnt@id@locale@std@@0HA";
+ case 0x0217:
+ return "?_Ifmt@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@AEBAPEADPEADPEBDH@Z";
+ case 0x0218:
+ return "?_Ifmt@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@AEBAPEADPEADPEBDH@Z";
+ case 0x0219:
+ return "?_Ifmt@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@AEBAPEADPEADPEBDH@Z";
+ case 0x021a: return "?_Incref@facet@locale@std@@UEAAXXZ";
+ case 0x021b: return "?_Index@ios_base@std@@0HA";
+ case 0x021c:
+ return "?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@"
+ "IEAAXPEAPEAD0PEAH001@Z";
+ case 0x021d:
+ return "?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ";
+ case 0x021e:
+ return "?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@"
+ "IEAAXPEAPEAG0PEAH001@Z";
+ case 0x021f:
+ return "?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXXZ";
+ case 0x0220:
+ return "?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAPEA_"
+ "W0PEAH001@Z";
+ case 0x0221:
+ return "?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXXZ";
+ case 0x0222: return "?_Init@?$codecvt@DDH@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x0223: return "?_Init@?$codecvt@GDH@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x0224: return "?_Init@?$codecvt@_WDH@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x0225: return "?_Init@?$ctype@D@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x0226: return "?_Init@?$ctype@G@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x0227: return "?_Init@?$ctype@_W@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x0228:
+ return "?_Init@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x0229:
+ return "?_Init@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x022a:
+ return "?_Init@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x022b:
+ return "?_Init@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x022c:
+ return "?_Init@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x022d:
+ return "?_Init@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x022e:
+ return "?_Init@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x022f:
+ return "?_Init@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x0230:
+ return "?_Init@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x0231:
+ return "?_Init@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x0232:
+ return "?_Init@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x0233:
+ return "?_Init@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x0234: return "?_Init@ios_base@std@@IEAAXXZ";
+ case 0x0235: return "?_Init@locale@std@@CAPEAV_Locimp@12@_N@Z";
+ case 0x0236: return "?_Init_cnt@Init@ios_base@std@@0HA";
+ case 0x0237: return "?_Init_cnt@_UShinit@std@@0HA";
+ case 0x0238: return "?_Init_cnt@_Winit@std@@0HA";
+ case 0x0239: return "?_Init_cnt_func@Init@ios_base@std@@CAAEAHXZ";
+ case 0x023a: return "?_Init_ctor@Init@ios_base@std@@CAXPEAV123@@Z";
+ case 0x023b: return "?_Init_dtor@Init@ios_base@std@@CAXPEAV123@@Z";
+ case 0x023c: return "?_Init_locks_ctor@_Init_locks@std@@CAXPEAV12@@Z";
+ case 0x023d: return "?_Init_locks_dtor@_Init_locks@std@@CAXPEAV12@@Z";
+ case 0x023e:
+ return "?_Internal_assign@_Concurrent_vector_base_v4@details@Concurrency@@"
+ "IEAAXAEBV123@_KP6AXPEAX1@ZP6AX2PEBX1@Z5@Z";
+ case 0x023f:
+ return "?_Internal_capacity@_Concurrent_vector_base_v4@details@Concurrency@@"
+ "IEBA_KXZ";
+ case 0x0240:
+ return "?_Internal_clear@_Concurrent_vector_base_v4@details@Concurrency@@"
+ "IEAA_KP6AXPEAX_K@Z@Z";
+ case 0x0241:
+ return "?_Internal_compact@_Concurrent_vector_base_v4@details@Concurrency@@"
+ "IEAAPEAX_KPEAXP6AX10@ZP6AX1PEBX0@Z@Z";
+ case 0x0242:
+ return "?_Internal_copy@_Concurrent_vector_base_v4@details@Concurrency@@"
+ "IEAAXAEBV123@_KP6AXPEAXPEBX1@Z@Z";
+ case 0x0243:
+ return "?_Internal_empty@_Concurrent_queue_base_v4@details@Concurrency@@"
+ "IEBA_NXZ";
+ case 0x0244:
+ return "?_Internal_finish_clear@_Concurrent_queue_base_v4@details@"
+ "Concurrency@@IEAAXXZ";
+ case 0x0245:
+ return "?_Internal_grow_by@_Concurrent_vector_base_v4@details@Concurrency@@"
+ "IEAA_K_K0P6AXPEAXPEBX0@Z2@Z";
+ case 0x0246:
+ return "?_Internal_grow_to_at_least_with_result@_Concurrent_vector_base_v4@"
+ "details@Concurrency@@IEAA_K_K0P6AXPEAXPEBX0@Z2@Z";
+ case 0x0247:
+ return "?_Internal_move_push@_Concurrent_queue_base_v4@details@Concurrency@@"
+ "IEAAXPEAX@Z";
+ case 0x0248:
+ return "?_Internal_pop_if_present@_Concurrent_queue_base_v4@details@"
+ "Concurrency@@IEAA_NPEAX@Z";
+ case 0x0249:
+ return "?_Internal_push@_Concurrent_queue_base_v4@details@Concurrency@@"
+ "IEAAXPEBX@Z";
+ case 0x024a:
+ return "?_Internal_push_back@_Concurrent_vector_base_v4@details@Concurrency@"
+ "@IEAAPEAX_KAEA_K@Z";
+ case 0x024b:
+ return "?_Internal_reserve@_Concurrent_vector_base_v4@details@Concurrency@@"
+ "IEAAX_K00@Z";
+ case 0x024c:
+ return "?_Internal_resize@_Concurrent_vector_base_v4@details@Concurrency@@"
+ "IEAAX_K00P6AXPEAX0@ZP6AX1PEBX0@Z3@Z";
+ case 0x024d:
+ return "?_Internal_size@_Concurrent_queue_base_v4@details@Concurrency@@IEBA_"
+ "KXZ";
+ case 0x024e:
+ return "?_Internal_swap@_Concurrent_queue_base_v4@details@Concurrency@@"
+ "IEAAXAEAV123@@Z";
+ case 0x024f:
+ return "?_Internal_swap@_Concurrent_vector_base_v4@details@Concurrency@@"
+ "IEAAXAEAV123@@Z";
+ case 0x0250:
+ return "?_Internal_throw_exception@_Concurrent_queue_base_v4@details@"
+ "Concurrency@@IEBAXXZ";
+ case 0x0251:
+ return "?_Internal_throw_exception@_Concurrent_vector_base_v4@details@"
+ "Concurrency@@IEBAX_K@Z";
+ case 0x0252: return "?_Ios_base_dtor@ios_base@std@@CAXPEAV12@@Z";
+ case 0x0253:
+ return "?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z";
+ case 0x0254:
+ return "?_Ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z";
+ case 0x0255:
+ return "?_Ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z";
+ case 0x0256:
+ return "?_Iput@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@AEAVios_base@2@DPEAD_K@Z";
+ case 0x0257:
+ return "?_Iput@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@AEAVios_base@2@GPEAD_K@Z";
+ case 0x0258:
+ return "?_Iput@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@AEAVios_base@2@_WPEAD_K@Z";
+ case 0x0259: return "?_Last_write_time@sys@tr2@std@@YAXPEBD_J@Z";
+ case 0x025a: return "?_Last_write_time@sys@tr2@std@@YAXPEB_W_J@Z";
+ case 0x025b: return "?_Last_write_time@sys@tr2@std@@YA_JPEBD@Z";
+ case 0x025c: return "?_Last_write_time@sys@tr2@std@@YA_JPEB_W@Z";
+ case 0x025d: return "?_Launch@_Pad@std@@QEAAXPEAU_Thrd_imp_t@@@Z";
+ case 0x025e: return "?_Link@sys@tr2@std@@YAHPEBD0@Z";
+ case 0x025f: return "?_Link@sys@tr2@std@@YAHPEB_W0@Z";
+ case 0x0260:
+ return "?_Locimp_Addfac@_Locimp@locale@std@@CAXPEAV123@PEAVfacet@23@_K@Z";
+ case 0x0261: return "?_Locimp_ctor@_Locimp@locale@std@@CAXPEAV123@AEBV123@@Z";
+ case 0x0262: return "?_Locimp_dtor@_Locimp@locale@std@@CAXPEAV123@@Z";
+ case 0x0263: return "?_Locinfo_Addcats@_Locinfo@std@@SAAEAV12@PEAV12@HPEBD@Z";
+ case 0x0264: return "?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@HPEBD@Z";
+ case 0x0265: return "?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@PEBD@Z";
+ case 0x0266: return "?_Locinfo_dtor@_Locinfo@std@@SAXPEAV12@@Z";
+ case 0x0267:
+ return "?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAAXXZ";
+ case 0x0268:
+ return "?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAAXXZ";
+ case 0x0269:
+ return "?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
+ case 0x026a: return "?_Lockit_ctor@_Lockit@std@@CAXPEAV12@@Z";
+ case 0x026b: return "?_Lockit_ctor@_Lockit@std@@CAXPEAV12@H@Z";
+ case 0x026c: return "?_Lockit_ctor@_Lockit@std@@SAXH@Z";
+ case 0x026d: return "?_Lockit_dtor@_Lockit@std@@CAXPEAV12@@Z";
+ case 0x026e: return "?_Lockit_dtor@_Lockit@std@@SAXH@Z";
+ case 0x026f: return "?_Lstat@sys@tr2@std@@YA?AW4file_type@123@PEBDAEAH@Z";
+ case 0x0270: return "?_Lstat@sys@tr2@std@@YA?AW4file_type@123@PEB_WAEAH@Z";
+ case 0x0271: return "?_MP_Add@std@@YAXQEA_K_K@Z";
+ case 0x0272: return "?_MP_Get@std@@YA_KQEA_K@Z";
+ case 0x0273: return "?_MP_Mul@std@@YAXQEA_K_K1@Z";
+ case 0x0274: return "?_MP_Rem@std@@YAXQEA_K_K@Z";
+ case 0x0275: return "?_Make_dir@sys@tr2@std@@YAHPEBD@Z";
+ case 0x0276: return "?_Make_dir@sys@tr2@std@@YAHPEB_W@Z";
+ case 0x0277:
+ return "?_Makeloc@_Locimp@locale@std@@CAPEAV123@AEBV_Locinfo@3@HPEAV123@"
+ "PEBV23@@Z";
+ case 0x0278:
+ return "?_Makeushloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@"
+ "Z";
+ case 0x0279:
+ return "?_Makewloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z";
+ case 0x027a:
+ return "?_Makexloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z";
+ case 0x027b: return "?_Mtx_delete@threads@stdext@@YAXPEAX@Z";
+ case 0x027c: return "?_Mtx_lock@threads@stdext@@YAXPEAX@Z";
+ case 0x027d: return "?_Mtx_new@threads@stdext@@YAXAEAPEAX@Z";
+ case 0x027e: return "?_Mtx_unlock@threads@stdext@@YAXPEAX@Z";
+ case 0x027f: return "?_New_Locimp@_Locimp@locale@std@@CAPEAV123@AEBV123@@Z";
+ case 0x0280: return "?_New_Locimp@_Locimp@locale@std@@CAPEAV123@_N@Z";
+ case 0x0281:
+ return "?_Open_dir@sys@tr2@std@@YAPEAXPEADPEBDAEAHAEAW4file_type@123@@Z";
+ case 0x0282:
+ return "?_Open_dir@sys@tr2@std@@YAPEAXPEA_WPEB_WAEAHAEAW4file_type@123@@Z";
+ case 0x0283: return "?_Orphan_all@_Container_base0@std@@QEAAXXZ";
+ case 0x0284: return "?_Orphan_all@_Container_base12@std@@QEAAXXZ";
+ case 0x0285:
+ return "?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+ case 0x0286:
+ return "?_Osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+ case 0x0287:
+ return "?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+ case 0x0288:
+ return "?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ";
+ case 0x0289:
+ return "?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ";
+ case 0x028a:
+ return "?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ";
+ case 0x028b:
+ return "?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
+ case 0x028c:
+ return "?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
+ case 0x028d:
+ return "?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_"
+ "WXZ";
+ case 0x028e:
+ return "?_Ptr_cerr@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA";
+ case 0x028f:
+ return "?_Ptr_cin@std@@3PEAV?$basic_istream@DU?$char_traits@D@std@@@1@EA";
+ case 0x0290:
+ return "?_Ptr_clog@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA";
+ case 0x0291:
+ return "?_Ptr_cout@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA";
+ case 0x0292:
+ return "?_Ptr_wcerr@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA";
+ case 0x0293:
+ return "?_Ptr_wcerr@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@"
+ "EA";
+ case 0x0294:
+ return "?_Ptr_wcin@std@@3PEAV?$basic_istream@GU?$char_traits@G@std@@@1@EA";
+ case 0x0295:
+ return "?_Ptr_wcin@std@@3PEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@EA";
+ case 0x0296:
+ return "?_Ptr_wclog@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA";
+ case 0x0297:
+ return "?_Ptr_wclog@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@"
+ "EA";
+ case 0x0298:
+ return "?_Ptr_wcout@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA";
+ case 0x0299:
+ return "?_Ptr_wcout@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@"
+ "EA";
+ case 0x029a:
+ return "?_Put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@"
+ "@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "PEBD_K@Z";
+ case 0x029b:
+ return "?_Put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@"
+ "@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "PEBG_K@Z";
+ case 0x029c:
+ return "?_Put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@PEB_W_K@Z";
+ case 0x029d: return "?_Raise_handler@std@@3P6AXAEBVexception@stdext@@@ZEA";
+ case 0x029e: return "?_Random_device@std@@YAIXZ";
+ case 0x029f:
+ return "?_Read_dir@sys@tr2@std@@YAPEADPEADPEAXAEAW4file_type@123@@Z";
+ case 0x02a0:
+ return "?_Read_dir@sys@tr2@std@@YAPEA_WPEA_WPEAXAEAW4file_type@123@@Z";
+ case 0x02a1: return "?_Release@_Pad@std@@QEAAXXZ";
+ case 0x02a2: return "?_Remove_dir@sys@tr2@std@@YA_NPEBD@Z";
+ case 0x02a3: return "?_Remove_dir@sys@tr2@std@@YA_NPEB_W@Z";
+ case 0x02a4: return "?_Rename@sys@tr2@std@@YAHPEBD0@Z";
+ case 0x02a5: return "?_Rename@sys@tr2@std@@YAHPEB_W0@Z";
+ case 0x02a6:
+ return "?_Rep@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@"
+ "@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@D_"
+ "K@Z";
+ case 0x02a7:
+ return "?_Rep@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@"
+ "@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@G_"
+ "K@Z";
+ case 0x02a8:
+ return "?_Rep@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@_W_K@Z";
+ case 0x02a9: return "?_Rethrow_future_exception@std@@YAXVexception_ptr@1@@Z";
+ case 0x02aa: return "?_Rng_abort@std@@YAXPEBD@Z";
+ case 0x02ab:
+ return "?_Segment_index_of@_Concurrent_vector_base_v4@details@Concurrency@@"
+ "KA_K_K@Z";
+ case 0x02ac: return "?_Setgloballocale@locale@std@@CAXPEAX@Z";
+ case 0x02ad:
+ return "?_Src@?1??_Getffldx@?$num_get@DV?$istreambuf_iterator@DU?$char_"
+ "traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$"
+ "char_traits@D@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
+ case 0x02ae:
+ return "?_Src@?1??_Getffldx@?$num_get@GV?$istreambuf_iterator@GU?$char_"
+ "traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$"
+ "char_traits@G@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
+ case 0x02af:
+ return "?_Src@?1??_Getffldx@?$num_get@_WV?$istreambuf_iterator@_WU?$char_"
+ "traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$"
+ "char_traits@_W@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
+ case 0x02b0:
+ return "?_Src@?1??_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_"
+ "traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$"
+ "char_traits@D@std@@@3@1HAEBVlocale@3@@Z@4QBDB";
+ case 0x02b1:
+ return "?_Src@?1??_Getifld@?$num_get@GV?$istreambuf_iterator@GU?$char_"
+ "traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$"
+ "char_traits@G@std@@@3@1HAEBVlocale@3@@Z@4QBDB";
+ case 0x02b2:
+ return "?_Src@?1??_Getifld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_"
+ "traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$"
+ "char_traits@_W@std@@@3@1HAEBVlocale@3@@Z@4QBDB";
+ case 0x02b3:
+ return "?_Src@?3??_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_"
+ "traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$"
+ "char_traits@D@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
+ case 0x02b4:
+ return "?_Src@?3??_Getffld@?$num_get@GV?$istreambuf_iterator@GU?$char_"
+ "traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$"
+ "char_traits@G@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
+ case 0x02b5:
+ return "?_Src@?3??_Getffld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_"
+ "traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$"
+ "char_traits@_W@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
+ case 0x02b6: return "?_Stat@sys@tr2@std@@YA?AW4file_type@123@PEBDAEAH@Z";
+ case 0x02b7: return "?_Stat@sys@tr2@std@@YA?AW4file_type@123@PEB_WAEAH@Z";
+ case 0x02b8: return "?_Statvfs@sys@tr2@std@@YA?AUspace_info@123@PEBD@Z";
+ case 0x02b9: return "?_Statvfs@sys@tr2@std@@YA?AUspace_info@123@PEB_W@Z";
+ case 0x02ba: return "?_Swap_all@_Container_base0@std@@QEAAXAEAU12@@Z";
+ case 0x02bb: return "?_Swap_all@_Container_base12@std@@QEAAXAEAU12@@Z";
+ case 0x02bc: return "?_Symlink@sys@tr2@std@@YAHPEBD0@Z";
+ case 0x02bd: return "?_Symlink@sys@tr2@std@@YAHPEB_W0@Z";
+ case 0x02be: return "?_Sync@ios_base@std@@0_NA";
+ case 0x02bf: return "?_Syserror_map@std@@YAPEBDH@Z";
+ case 0x02c0: return "?_Throw_C_error@std@@YAXH@Z";
+ case 0x02c1: return "?_Throw_Cpp_error@std@@YAXH@Z";
+ case 0x02c2: return "?_Throw_future_error@std@@YAXAEBVerror_code@1@@Z";
+ case 0x02c3: return "?_Throw_lock_error@threads@stdext@@YAXXZ";
+ case 0x02c4: return "?_Throw_resource_error@threads@stdext@@YAXXZ";
+ case 0x02c5: return "?_Tidy@?$_Yarn@D@std@@AEAAXXZ";
+ case 0x02c6: return "?_Tidy@?$_Yarn@_W@std@@AEAAXXZ";
+ case 0x02c7: return "?_Tidy@?$ctype@D@std@@IEAAXXZ";
+ case 0x02c8:
+ return "?_Tidy@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@AEAAXXZ";
+ case 0x02c9:
+ return "?_Tidy@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@AEAAXXZ";
+ case 0x02ca:
+ return "?_Tidy@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@AEAAXXZ";
+ case 0x02cb: return "?_Tidy@ios_base@std@@AEAAXXZ";
+ case 0x02cc: return "?_Unlink@sys@tr2@std@@YAHPEBD@Z";
+ case 0x02cd: return "?_Unlink@sys@tr2@std@@YAHPEB_W@Z";
+ case 0x02ce:
+ return "?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAAXXZ";
+ case 0x02cf:
+ return "?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAAXXZ";
+ case 0x02d0:
+ return "?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
+ case 0x02d1: return "?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ";
+ case 0x02d2: return "?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ";
+ case 0x02d3: return "?_W_Gettnames@_Locinfo@std@@QEBA?AV_Timevec@2@XZ";
+ case 0x02d4: return "?_Winerror_map@std@@YAPEBDH@Z";
+ case 0x02d5: return "?_XLgamma@std@@YAMM@Z";
+ case 0x02d6: return "?_XLgamma@std@@YANN@Z";
+ case 0x02d7: return "?_XLgamma@std@@YAOO@Z";
+ case 0x02d8: return "?_Xbad_alloc@std@@YAXXZ";
+ case 0x02d9: return "?_Xbad_function_call@std@@YAXXZ";
+ case 0x02da: return "?_Xinvalid_argument@std@@YAXPEBD@Z";
+ case 0x02db: return "?_Xlength_error@std@@YAXPEBD@Z";
+ case 0x02dc: return "?_Xout_of_range@std@@YAXPEBD@Z";
+ case 0x02dd: return "?_Xoverflow_error@std@@YAXPEBD@Z";
+ case 0x02de: return "?_Xregex_error@std@@YAXW4error_type@regex_constants@1@@Z";
+ case 0x02df: return "?_Xruntime_error@std@@YAXPEBD@Z";
+ case 0x02e0: return "?adopt_lock@std@@3Uadopt_lock_t@1@B";
+ case 0x02e1: return "?always_noconv@codecvt_base@std@@QEBA_NXZ";
+ case 0x02e2: return "?bad@ios_base@std@@QEBA_NXZ";
+ case 0x02e3: return "?c_str@?$_Yarn@D@std@@QEBAPEBDXZ";
+ case 0x02e4: return "?cancel@agent@Concurrency@@QEAA_NXZ";
+ case 0x02e5: return "?cancel_current_task@Concurrency@@YAXXZ";
+ case 0x02e6: return "?cerr@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A";
+ case 0x02e7: return "?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A";
+ case 0x02e8: return "?classic@locale@std@@SAAEBV12@XZ";
+ case 0x02e9: return "?classic_table@?$ctype@D@std@@SAPEBFXZ";
+ case 0x02ea:
+ return "?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z";
+ case 0x02eb: return "?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z";
+ case 0x02ec:
+ return "?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z";
+ case 0x02ed: return "?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z";
+ case 0x02ee:
+ return "?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z";
+ case 0x02ef:
+ return "?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z";
+ case 0x02f0: return "?clear@ios_base@std@@QEAAXH@Z";
+ case 0x02f1: return "?clear@ios_base@std@@QEAAXH_N@Z";
+ case 0x02f2: return "?clear@ios_base@std@@QEAAXI@Z";
+ case 0x02f3: return "?clog@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A";
+ case 0x02f4:
+ return "?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEBV12@"
+ "@Z";
+ case 0x02f5:
+ return "?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEBV12@"
+ "@Z";
+ case 0x02f6:
+ return "?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@"
+ "AEBV12@@Z";
+ case 0x02f7: return "?copyfmt@ios_base@std@@QEAAAEAV12@AEBV12@@Z";
+ case 0x02f8: return "?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A";
+ case 0x02f9:
+ return "?date_order@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+ "std@@@std@@@std@@QEBA?AW4dateorder@time_base@2@XZ";
+ case 0x02fa:
+ return "?date_order@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+ "std@@@std@@@std@@QEBA?AW4dateorder@time_base@2@XZ";
+ case 0x02fb:
+ return "?date_order@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@std@@@std@@QEBA?AW4dateorder@time_base@2@XZ";
+ case 0x02fc: return "?defer_lock@std@@3Udefer_lock_t@1@B";
+ case 0x02fd: return "?do_always_noconv@?$codecvt@DDH@std@@MEBA_NXZ";
+ case 0x02fe: return "?do_always_noconv@?$codecvt@GDH@std@@MEBA_NXZ";
+ case 0x02ff: return "?do_always_noconv@?$codecvt@_WDH@std@@MEBA_NXZ";
+ case 0x0300: return "?do_always_noconv@codecvt_base@std@@MEBA_NXZ";
+ case 0x0301:
+ return "?do_date_order@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+ "std@@@std@@@std@@MEBA?AW4dateorder@time_base@2@XZ";
+ case 0x0302:
+ return "?do_date_order@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+ "std@@@std@@@std@@MEBA?AW4dateorder@time_base@2@XZ";
+ case 0x0303:
+ return "?do_date_order@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@"
+ "_W@std@@@std@@@std@@MEBA?AW4dateorder@time_base@2@XZ";
+ case 0x0304: return "?do_encoding@?$codecvt@GDH@std@@MEBAHXZ";
+ case 0x0305: return "?do_encoding@?$codecvt@_WDH@std@@MEBAHXZ";
+ case 0x0306: return "?do_encoding@codecvt_base@std@@MEBAHXZ";
+ case 0x0307:
+ return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAG@Z";
+ case 0x0308:
+ return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAI@Z";
+ case 0x0309:
+ return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAJ@Z";
+ case 0x030a:
+ return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAK@Z";
+ case 0x030b:
+ return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAM@Z";
+ case 0x030c:
+ return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAN@Z";
+ case 0x030d:
+ return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAO@Z";
+ case 0x030e:
+ return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
+ case 0x030f:
+ return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEA_J@Z";
+ case 0x0310:
+ return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEA_K@Z";
+ case 0x0311:
+ return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEA_N@Z";
+ case 0x0312:
+ return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAG@Z";
+ case 0x0313:
+ return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAI@Z";
+ case 0x0314:
+ return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAJ@Z";
+ case 0x0315:
+ return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAK@Z";
+ case 0x0316:
+ return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAM@Z";
+ case 0x0317:
+ return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAN@Z";
+ case 0x0318:
+ return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAO@Z";
+ case 0x0319:
+ return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
+ case 0x031a:
+ return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEA_J@Z";
+ case 0x031b:
+ return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEA_K@Z";
+ case 0x031c:
+ return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEA_N@Z";
+ case 0x031d:
+ return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@0AEAVios_base@2@AEAHAEAG@Z";
+ case 0x031e:
+ return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@0AEAVios_base@2@AEAHAEAI@Z";
+ case 0x031f:
+ return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
+ case 0x0320:
+ return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@0AEAVios_base@2@AEAHAEAK@Z";
+ case 0x0321:
+ return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@0AEAVios_base@2@AEAHAEAM@Z";
+ case 0x0322:
+ return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@0AEAVios_base@2@AEAHAEAN@Z";
+ case 0x0323:
+ return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@0AEAVios_base@2@AEAHAEAO@Z";
+ case 0x0324:
+ return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
+ case 0x0325:
+ return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
+ case 0x0326:
+ return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
+ case 0x0327:
+ return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
+ case 0x0328:
+ return "?do_get@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
+ case 0x0329:
+ return "?do_get@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
+ case 0x032a:
+ return "?do_get@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@"
+ "@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
+ case 0x032b:
+ return "?do_get_date@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+ "std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@"
+ "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x032c:
+ return "?do_get_date@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+ "std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@"
+ "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x032d:
+ return "?do_get_date@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_"
+ "W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x032e:
+ return "?do_get_monthname@?$time_get@DV?$istreambuf_iterator@DU?$char_"
+ "traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_"
+ "traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x032f:
+ return "?do_get_monthname@?$time_get@GV?$istreambuf_iterator@GU?$char_"
+ "traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_"
+ "traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x0330:
+ return "?do_get_monthname@?$time_get@_WV?$istreambuf_iterator@_WU?$char_"
+ "traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_"
+ "traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x0331:
+ return "?do_get_time@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+ "std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@"
+ "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x0332:
+ return "?do_get_time@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+ "std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@"
+ "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x0333:
+ return "?do_get_time@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_"
+ "W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x0334:
+ return "?do_get_weekday@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@"
+ "D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@"
+ "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x0335:
+ return "?do_get_weekday@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@"
+ "G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@"
+ "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x0336:
+ return "?do_get_weekday@?$time_get@_WV?$istreambuf_iterator@_WU?$char_"
+ "traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_"
+ "traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x0337:
+ return "?do_get_year@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+ "std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@"
+ "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x0338:
+ return "?do_get_year@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+ "std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@"
+ "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x0339:
+ return "?do_get_year@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_"
+ "W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x033a:
+ return "?do_in@?$codecvt@DDH@std@@MEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
+ case 0x033b:
+ return "?do_in@?$codecvt@GDH@std@@MEBAHAEAHPEBD1AEAPEBDPEAG3AEAPEAG@Z";
+ case 0x033c:
+ return "?do_in@?$codecvt@_WDH@std@@MEBAHAEAHPEBD1AEAPEBDPEA_W3AEAPEA_W@Z";
+ case 0x033d: return "?do_is@?$ctype@G@std@@MEBAPEBGPEBG0PEAF@Z";
+ case 0x033e: return "?do_is@?$ctype@G@std@@MEBA_NFG@Z";
+ case 0x033f: return "?do_is@?$ctype@_W@std@@MEBAPEB_WPEB_W0PEAF@Z";
+ case 0x0340: return "?do_is@?$ctype@_W@std@@MEBA_NF_W@Z";
+ case 0x0341: return "?do_length@?$codecvt@DDH@std@@MEBAHAEAHPEBD1_K@Z";
+ case 0x0342: return "?do_length@?$codecvt@GDH@std@@MEBAHAEAHPEBD1_K@Z";
+ case 0x0343: return "?do_length@?$codecvt@_WDH@std@@MEBAHAEAHPEBD1_K@Z";
+ case 0x0344: return "?do_max_length@?$codecvt@GDH@std@@MEBAHXZ";
+ case 0x0345: return "?do_max_length@?$codecvt@_WDH@std@@MEBAHXZ";
+ case 0x0346: return "?do_max_length@codecvt_base@std@@MEBAHXZ";
+ case 0x0347: return "?do_narrow@?$ctype@D@std@@MEBADDD@Z";
+ case 0x0348: return "?do_narrow@?$ctype@D@std@@MEBAPEBDPEBD0DPEAD@Z";
+ case 0x0349: return "?do_narrow@?$ctype@G@std@@MEBADGD@Z";
+ case 0x034a: return "?do_narrow@?$ctype@G@std@@MEBAPEBGPEBG0DPEAD@Z";
+ case 0x034b: return "?do_narrow@?$ctype@_W@std@@MEBAD_WD@Z";
+ case 0x034c: return "?do_narrow@?$ctype@_W@std@@MEBAPEB_WPEB_W0DPEAD@Z";
+ case 0x034d:
+ return "?do_out@?$codecvt@DDH@std@@MEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
+ case 0x034e:
+ return "?do_out@?$codecvt@GDH@std@@MEBAHAEAHPEBG1AEAPEBGPEAD3AEAPEAD@Z";
+ case 0x034f:
+ return "?do_out@?$codecvt@_WDH@std@@MEBAHAEAHPEB_W1AEAPEB_WPEAD3AEAPEAD@Z";
+ case 0x0350:
+ return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@AEAVios_base@2@DJ@Z";
+ case 0x0351:
+ return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@AEAVios_base@2@DK@Z";
+ case 0x0352:
+ return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@AEAVios_base@2@DN@Z";
+ case 0x0353:
+ return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@AEAVios_base@2@DO@Z";
+ case 0x0354:
+ return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@AEAVios_base@2@DPEBX@Z";
+ case 0x0355:
+ return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@AEAVios_base@2@D_J@Z";
+ case 0x0356:
+ return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@AEAVios_base@2@D_K@Z";
+ case 0x0357:
+ return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@AEAVios_base@2@D_N@Z";
+ case 0x0358:
+ return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@AEAVios_base@2@GJ@Z";
+ case 0x0359:
+ return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@AEAVios_base@2@GK@Z";
+ case 0x035a:
+ return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@AEAVios_base@2@GN@Z";
+ case 0x035b:
+ return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@AEAVios_base@2@GO@Z";
+ case 0x035c:
+ return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@AEAVios_base@2@GPEBX@Z";
+ case 0x035d:
+ return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@AEAVios_base@2@G_J@Z";
+ case 0x035e:
+ return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@AEAVios_base@2@G_K@Z";
+ case 0x035f:
+ return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@AEAVios_base@2@G_N@Z";
+ case 0x0360:
+ return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@AEAVios_base@2@_WJ@Z";
+ case 0x0361:
+ return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@AEAVios_base@2@_WK@Z";
+ case 0x0362:
+ return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@AEAVios_base@2@_WN@Z";
+ case 0x0363:
+ return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@AEAVios_base@2@_WO@Z";
+ case 0x0364:
+ return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@AEAVios_base@2@_WPEBX@Z";
+ case 0x0365:
+ return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@AEAVios_base@2@_W_J@Z";
+ case 0x0366:
+ return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@AEAVios_base@2@_W_K@Z";
+ case 0x0367:
+ return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@AEAVios_base@2@_W_N@Z";
+ case 0x0368:
+ return "?do_put@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@AEAVios_base@2@DPEBUtm@@DD@Z";
+ case 0x0369:
+ return "?do_put@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@AEAVios_base@2@GPEBUtm@@DD@Z";
+ case 0x036a:
+ return "?do_put@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@"
+ "@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@AEAVios_base@2@_WPEBUtm@@DD@Z";
+ case 0x036b: return "?do_scan_is@?$ctype@G@std@@MEBAPEBGFPEBG0@Z";
+ case 0x036c: return "?do_scan_is@?$ctype@_W@std@@MEBAPEB_WFPEB_W0@Z";
+ case 0x036d: return "?do_scan_not@?$ctype@G@std@@MEBAPEBGFPEBG0@Z";
+ case 0x036e: return "?do_scan_not@?$ctype@_W@std@@MEBAPEB_WFPEB_W0@Z";
+ case 0x036f: return "?do_tolower@?$ctype@D@std@@MEBADD@Z";
+ case 0x0370: return "?do_tolower@?$ctype@D@std@@MEBAPEBDPEADPEBD@Z";
+ case 0x0371: return "?do_tolower@?$ctype@G@std@@MEBAGG@Z";
+ case 0x0372: return "?do_tolower@?$ctype@G@std@@MEBAPEBGPEAGPEBG@Z";
+ case 0x0373: return "?do_tolower@?$ctype@_W@std@@MEBAPEB_WPEA_WPEB_W@Z";
+ case 0x0374: return "?do_tolower@?$ctype@_W@std@@MEBA_W_W@Z";
+ case 0x0375: return "?do_toupper@?$ctype@D@std@@MEBADD@Z";
+ case 0x0376: return "?do_toupper@?$ctype@D@std@@MEBAPEBDPEADPEBD@Z";
+ case 0x0377: return "?do_toupper@?$ctype@G@std@@MEBAGG@Z";
+ case 0x0378: return "?do_toupper@?$ctype@G@std@@MEBAPEBGPEAGPEBG@Z";
+ case 0x0379: return "?do_toupper@?$ctype@_W@std@@MEBAPEB_WPEA_WPEB_W@Z";
+ case 0x037a: return "?do_toupper@?$ctype@_W@std@@MEBA_W_W@Z";
+ case 0x037b: return "?do_unshift@?$codecvt@DDH@std@@MEBAHAEAHPEAD1AEAPEAD@Z";
+ case 0x037c: return "?do_unshift@?$codecvt@GDH@std@@MEBAHAEAHPEAD1AEAPEAD@Z";
+ case 0x037d: return "?do_unshift@?$codecvt@_WDH@std@@MEBAHAEAHPEAD1AEAPEAD@Z";
+ case 0x037e: return "?do_widen@?$ctype@D@std@@MEBADD@Z";
+ case 0x037f: return "?do_widen@?$ctype@D@std@@MEBAPEBDPEBD0PEAD@Z";
+ case 0x0380: return "?do_widen@?$ctype@G@std@@MEBAGD@Z";
+ case 0x0381: return "?do_widen@?$ctype@G@std@@MEBAPEBDPEBD0PEAG@Z";
+ case 0x0382: return "?do_widen@?$ctype@_W@std@@MEBAPEBDPEBD0PEA_W@Z";
+ case 0x0383: return "?do_widen@?$ctype@_W@std@@MEBA_WD@Z";
+ case 0x0384: return "?done@agent@Concurrency@@IEAA_NXZ";
+ case 0x0385:
+ return "?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
+ case 0x0386:
+ return "?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
+ case 0x0387:
+ return "?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
+ case 0x0388:
+ return "?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
+ case 0x0389:
+ return "?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
+ case 0x038a:
+ return "?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
+ case 0x038b: return "?empty@?$_Yarn@D@std@@QEBA_NXZ";
+ case 0x038c: return "?empty@locale@std@@SA?AV12@XZ";
+ case 0x038d: return "?encoding@codecvt_base@std@@QEBAHXZ";
+ case 0x038e:
+ return "?endl@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@"
+ "Z";
+ case 0x038f:
+ return "?endl@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@"
+ "Z";
+ case 0x0390:
+ return "?endl@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@"
+ "@Z";
+ case 0x0391:
+ return "?ends@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@"
+ "Z";
+ case 0x0392:
+ return "?ends@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@"
+ "Z";
+ case 0x0393:
+ return "?ends@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@AEAV21@"
+ "@Z";
+ case 0x0394: return "?eof@ios_base@std@@QEBA_NXZ";
+ case 0x0395:
+ return "?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
+ case 0x0396:
+ return "?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
+ case 0x0397:
+ return "?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
+ case 0x0398: return "?exceptions@ios_base@std@@QEAAXH@Z";
+ case 0x0399: return "?exceptions@ios_base@std@@QEAAXI@Z";
+ case 0x039a: return "?exceptions@ios_base@std@@QEBAHXZ";
+ case 0x039b: return "?fail@ios_base@std@@QEBA_NXZ";
+ case 0x039c: return "?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z";
+ case 0x039d: return "?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ";
+ case 0x039e: return "?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAGG@Z";
+ case 0x039f: return "?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGXZ";
+ case 0x03a0:
+ return "?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA_W_W@Z";
+ case 0x03a1:
+ return "?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WXZ";
+ case 0x03a2: return "?flags@ios_base@std@@QEAAHH@Z";
+ case 0x03a3: return "?flags@ios_base@std@@QEBAHXZ";
+ case 0x03a4:
+ return "?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ";
+ case 0x03a5:
+ return "?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ";
+ case 0x03a6:
+ return "?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ";
+ case 0x03a7:
+ return "?flush@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@"
+ "Z";
+ case 0x03a8:
+ return "?flush@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@"
+ "Z";
+ case 0x03a9:
+ return "?flush@std@@YAAEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@"
+ "AEAV21@@Z";
+ case 0x03aa:
+ return "?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z";
+ case 0x03ab:
+ return "?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z";
+ case 0x03ac:
+ return "?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z";
+ case 0x03ad:
+ return "?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QEBA_JXZ";
+ case 0x03ae:
+ return "?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QEBA_JXZ";
+ case 0x03af:
+ return "?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEBA_JXZ";
+ case 0x03b0:
+ return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAD@Z";
+ case 0x03b1:
+ return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$"
+ "basic_streambuf@DU?$char_traits@D@std@@@2@@Z";
+ case 0x03b2:
+ return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$"
+ "basic_streambuf@DU?$char_traits@D@std@@@2@D@Z";
+ case 0x03b3:
+ return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@"
+ "Z";
+ case 0x03b4:
+ return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_"
+ "JD@Z";
+ case 0x03b5:
+ return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+ case 0x03b6:
+ return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAG@Z";
+ case 0x03b7:
+ return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$"
+ "basic_streambuf@GU?$char_traits@G@std@@@2@@Z";
+ case 0x03b8:
+ return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$"
+ "basic_streambuf@GU?$char_traits@G@std@@@2@G@Z";
+ case 0x03b9:
+ return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@"
+ "Z";
+ case 0x03ba:
+ return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_"
+ "JG@Z";
+ case 0x03bb:
+ return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ";
+ case 0x03bc:
+ return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?"
+ "$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z";
+ case 0x03bd:
+ return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?"
+ "$basic_streambuf@_WU?$char_traits@_W@std@@@2@_W@Z";
+ case 0x03be:
+ return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEA_"
+ "W@Z";
+ case 0x03bf:
+ return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_"
+ "W_J@Z";
+ case 0x03c0:
+ return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_"
+ "W_J_W@Z";
+ case 0x03c1:
+ return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
+ case 0x03c2:
+ return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAG@Z";
+ case 0x03c3:
+ return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAI@Z";
+ case 0x03c4:
+ return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAJ@Z";
+ case 0x03c5:
+ return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAK@Z";
+ case 0x03c6:
+ return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAM@Z";
+ case 0x03c7:
+ return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAN@Z";
+ case 0x03c8:
+ return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAO@Z";
+ case 0x03c9:
+ return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAPEAX@Z";
+ case 0x03ca:
+ return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEA_J@Z";
+ case 0x03cb:
+ return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEA_K@Z";
+ case 0x03cc:
+ return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEA_N@Z";
+ case 0x03cd:
+ return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAG@Z";
+ case 0x03ce:
+ return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAI@Z";
+ case 0x03cf:
+ return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAJ@Z";
+ case 0x03d0:
+ return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAK@Z";
+ case 0x03d1:
+ return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAM@Z";
+ case 0x03d2:
+ return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAN@Z";
+ case 0x03d3:
+ return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAO@Z";
+ case 0x03d4:
+ return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAPEAX@Z";
+ case 0x03d5:
+ return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEA_J@Z";
+ case 0x03d6:
+ return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEA_K@Z";
+ case 0x03d7:
+ return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEA_N@Z";
+ case 0x03d8:
+ return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAG@Z";
+ case 0x03d9:
+ return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAI@Z";
+ case 0x03da:
+ return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAJ@Z";
+ case 0x03db:
+ return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAK@Z";
+ case 0x03dc:
+ return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAM@Z";
+ case 0x03dd:
+ return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAN@Z";
+ case 0x03de:
+ return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAO@Z";
+ case 0x03df:
+ return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
+ case 0x03e0:
+ return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEA_J@Z";
+ case 0x03e1:
+ return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEA_K@Z";
+ case 0x03e2:
+ return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEA_N@Z";
+ case 0x03e3:
+ return "?get@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@"
+ "@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
+ case 0x03e4:
+ return "?get@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@"
+ "@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHPEAUtm@@PEBD4@Z";
+ case 0x03e5:
+ return "?get@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@"
+ "@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
+ case 0x03e6:
+ return "?get@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@"
+ "@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHPEAUtm@@PEBG4@Z";
+ case 0x03e7:
+ return "?get@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
+ case 0x03e8:
+ return "?get@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHPEAUtm@@PEB_W4@Z";
+ case 0x03e9:
+ return "?get_date@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@"
+ "@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03ea:
+ return "?get_date@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@"
+ "@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03eb:
+ return "?get_date@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03ec:
+ return "?get_monthname@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+ "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@"
+ "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03ed:
+ return "?get_monthname@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+ "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@"
+ "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03ee:
+ return "?get_monthname@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@"
+ "_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_"
+ "W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03ef: return "?get_new_handler@std@@YAP6AXXZXZ";
+ case 0x03f0:
+ return "?get_time@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@"
+ "@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03f1:
+ return "?get_time@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@"
+ "@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03f2:
+ return "?get_time@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03f3:
+ return "?get_weekday@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+ "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@"
+ "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03f4:
+ return "?get_weekday@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+ "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@"
+ "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03f5:
+ return "?get_weekday@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_"
+ "W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03f6:
+ return "?get_year@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@"
+ "@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03f7:
+ return "?get_year@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@"
+ "@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03f8:
+ return "?get_year@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03f9:
+ return "?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@"
+ "PEAD_J@Z";
+ case 0x03fa:
+ return "?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@"
+ "PEAD_JD@Z";
+ case 0x03fb:
+ return "?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@"
+ "PEAG_J@Z";
+ case 0x03fc:
+ return "?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@"
+ "PEAG_JG@Z";
+ case 0x03fd:
+ return "?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@"
+ "PEA_W_J@Z";
+ case 0x03fe:
+ return "?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@"
+ "PEA_W_J_W@Z";
+ case 0x03ff:
+ return "?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEBA?"
+ "AVlocale@2@XZ";
+ case 0x0400:
+ return "?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEBA?"
+ "AVlocale@2@XZ";
+ case 0x0401:
+ return "?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEBA?"
+ "AVlocale@2@XZ";
+ case 0x0402: return "?getloc@ios_base@std@@QEBA?AVlocale@2@XZ";
+ case 0x0403: return "?global@locale@std@@SA?AV12@AEBV12@@Z";
+ case 0x0404: return "?good@ios_base@std@@QEBA_NXZ";
+ case 0x0405:
+ return "?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
+ case 0x0406:
+ return "?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
+ case 0x0407:
+ return "?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
+ case 0x0408: return "?id@?$codecvt@DDH@std@@2V0locale@2@A";
+ case 0x0409: return "?id@?$codecvt@GDH@std@@2V0locale@2@A";
+ case 0x040a: return "?id@?$codecvt@_WDH@std@@2V0locale@2@A";
+ case 0x040b: return "?id@?$collate@D@std@@2V0locale@2@A";
+ case 0x040c: return "?id@?$collate@G@std@@2V0locale@2@A";
+ case 0x040d: return "?id@?$collate@_W@std@@2V0locale@2@A";
+ case 0x040e: return "?id@?$ctype@D@std@@2V0locale@2@A";
+ case 0x040f: return "?id@?$ctype@G@std@@2V0locale@2@A";
+ case 0x0410: return "?id@?$ctype@_W@std@@2V0locale@2@A";
+ case 0x0411: return "?id@?$messages@D@std@@2V0locale@2@A";
+ case 0x0412: return "?id@?$messages@G@std@@2V0locale@2@A";
+ case 0x0413: return "?id@?$messages@_W@std@@2V0locale@2@A";
+ case 0x0414:
+ return "?id@?$money_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@"
+ "@@std@@2V0locale@2@A";
+ case 0x0415:
+ return "?id@?$money_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@"
+ "@@std@@2V0locale@2@A";
+ case 0x0416:
+ return "?id@?$money_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@2V0locale@2@A";
+ case 0x0417:
+ return "?id@?$money_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@"
+ "@@std@@2V0locale@2@A";
+ case 0x0418:
+ return "?id@?$money_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@"
+ "@@std@@2V0locale@2@A";
+ case 0x0419:
+ return "?id@?$money_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@2V0locale@2@A";
+ case 0x041a: return "?id@?$moneypunct@D$00@std@@2V0locale@2@A";
+ case 0x041b: return "?id@?$moneypunct@D$0A@@std@@2V0locale@2@A";
+ case 0x041c: return "?id@?$moneypunct@G$00@std@@2V0locale@2@A";
+ case 0x041d: return "?id@?$moneypunct@G$0A@@std@@2V0locale@2@A";
+ case 0x041e: return "?id@?$moneypunct@_W$00@std@@2V0locale@2@A";
+ case 0x041f: return "?id@?$moneypunct@_W$0A@@std@@2V0locale@2@A";
+ case 0x0420:
+ return "?id@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@2V0locale@2@A";
+ case 0x0421:
+ return "?id@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@2V0locale@2@A";
+ case 0x0422:
+ return "?id@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@2V0locale@2@A";
+ case 0x0423:
+ return "?id@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@2V0locale@2@A";
+ case 0x0424:
+ return "?id@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@2V0locale@2@A";
+ case 0x0425:
+ return "?id@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@2V0locale@2@A";
+ case 0x0426: return "?id@?$numpunct@D@std@@2V0locale@2@A";
+ case 0x0427: return "?id@?$numpunct@G@std@@2V0locale@2@A";
+ case 0x0428: return "?id@?$numpunct@_W@std@@2V0locale@2@A";
+ case 0x0429:
+ return "?id@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@2V0locale@2@A";
+ case 0x042a:
+ return "?id@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@2V0locale@2@A";
+ case 0x042b:
+ return "?id@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@2V0locale@2@A";
+ case 0x042c:
+ return "?id@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@2V0locale@2@A";
+ case 0x042d:
+ return "?id@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@2V0locale@2@A";
+ case 0x042e:
+ return "?id@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@2V0locale@2@A";
+ case 0x042f:
+ return "?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@"
+ "Z";
+ case 0x0430:
+ return "?ignore@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JG@"
+ "Z";
+ case 0x0431:
+ return "?ignore@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_"
+ "JG@Z";
+ case 0x0432:
+ return "?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@"
+ "AEBV32@@Z";
+ case 0x0433:
+ return "?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@"
+ "AEBV32@@Z";
+ case 0x0434:
+ return "?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@"
+ "AEBV32@@Z";
+ case 0x0435:
+ return "?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@"
+ "MEAAXAEBVlocale@2@@Z";
+ case 0x0436:
+ return "?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@"
+ "MEAAXAEBVlocale@2@@Z";
+ case 0x0437:
+ return "?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@"
+ "MEAAXAEBVlocale@2@@Z";
+ case 0x0438: return "?imbue@ios_base@std@@QEAA?AVlocale@2@AEBV32@@Z";
+ case 0x0439:
+ return "?in@?$codecvt@DDH@std@@QEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
+ case 0x043a:
+ return "?in@?$codecvt@GDH@std@@QEBAHAEAHPEBD1AEAPEBDPEAG3AEAPEAG@Z";
+ case 0x043b:
+ return "?in@?$codecvt@_WDH@std@@QEBAHAEAHPEBD1AEAPEBDPEA_W3AEAPEA_W@Z";
+ case 0x043c:
+ return "?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JXZ";
+ case 0x043d:
+ return "?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JXZ";
+ case 0x043e:
+ return "?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JXZ";
+ case 0x043f:
+ return "?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$basic_"
+ "streambuf@DU?$char_traits@D@std@@@2@_N@Z";
+ case 0x0440:
+ return "?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$basic_"
+ "streambuf@GU?$char_traits@G@std@@@2@_N@Z";
+ case 0x0441:
+ return "?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$basic_"
+ "streambuf@_WU?$char_traits@_W@std@@@2@_N@Z";
+ case 0x0442: return "?intl@?$moneypunct@D$00@std@@2_NB";
+ case 0x0443: return "?intl@?$moneypunct@D$0A@@std@@2_NB";
+ case 0x0444: return "?intl@?$moneypunct@G$00@std@@2_NB";
+ case 0x0445: return "?intl@?$moneypunct@G$0A@@std@@2_NB";
+ case 0x0446: return "?intl@?$moneypunct@_W$00@std@@2_NB";
+ case 0x0447: return "?intl@?$moneypunct@_W$0A@@std@@2_NB";
+ case 0x0448:
+ return "?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z";
+ case 0x0449:
+ return "?ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z";
+ case 0x044a:
+ return "?ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z";
+ case 0x044b: return "?is@?$ctype@D@std@@QEBAPEBDPEBD0PEAF@Z";
+ case 0x044c: return "?is@?$ctype@D@std@@QEBA_NFD@Z";
+ case 0x044d: return "?is@?$ctype@G@std@@QEBAPEBGPEBG0PEAF@Z";
+ case 0x044e: return "?is@?$ctype@G@std@@QEBA_NFG@Z";
+ case 0x044f: return "?is@?$ctype@_W@std@@QEBAPEB_WPEB_W0PEAF@Z";
+ case 0x0450: return "?is@?$ctype@_W@std@@QEBA_NF_W@Z";
+ case 0x0451: return "?is_current_task_group_canceling@Concurrency@@YA_NXZ";
+ case 0x0452: return "?is_task_cancellation_requested@Concurrency@@YA_NXZ";
+ case 0x0453:
+ return "?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+ case 0x0454:
+ return "?isfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+ case 0x0455:
+ return "?isfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+ case 0x0456: return "?iword@ios_base@std@@QEAAAEAJH@Z";
+ case 0x0457: return "?length@?$codecvt@DDH@std@@QEBAHAEAHPEBD1_K@Z";
+ case 0x0458: return "?length@?$codecvt@GDH@std@@QEBAHAEAHPEBD1_K@Z";
+ case 0x0459: return "?length@?$codecvt@_WDH@std@@QEBAHAEAHPEBD1_K@Z";
+ case 0x045a: return "?max_length@codecvt_base@std@@QEBAHXZ";
+ case 0x045b:
+ return "?move@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAX$$QEAV12@@Z";
+ case 0x045c:
+ return "?move@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z";
+ case 0x045d:
+ return "?move@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAX$$QEAV12@@Z";
+ case 0x045e:
+ return "?move@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z";
+ case 0x045f:
+ return "?move@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAX$$QEAV12@@Z";
+ case 0x0460:
+ return "?move@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z";
+ case 0x0461:
+ return "?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADDD@Z";
+ case 0x0462:
+ return "?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBADGD@Z";
+ case 0x0463:
+ return "?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAD_WD@Z";
+ case 0x0464: return "?narrow@?$ctype@D@std@@QEBADDD@Z";
+ case 0x0465: return "?narrow@?$ctype@D@std@@QEBAPEBDPEBD0DPEAD@Z";
+ case 0x0466: return "?narrow@?$ctype@G@std@@QEBADGD@Z";
+ case 0x0467: return "?narrow@?$ctype@G@std@@QEBAPEBGPEBG0DPEAD@Z";
+ case 0x0468: return "?narrow@?$ctype@_W@std@@QEBAD_WD@Z";
+ case 0x0469: return "?narrow@?$ctype@_W@std@@QEBAPEB_WPEB_W0DPEAD@Z";
+ case 0x046a:
+ return "?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA_NXZ";
+ case 0x046b:
+ return "?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA_NXZ";
+ case 0x046c:
+ return "?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA_NXZ";
+ case 0x046d:
+ return "?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+ case 0x046e:
+ return "?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+ case 0x046f:
+ return "?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+ case 0x0470:
+ return "?out@?$codecvt@DDH@std@@QEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
+ case 0x0471:
+ return "?out@?$codecvt@GDH@std@@QEBAHAEAHPEBG1AEAPEBGPEAD3AEAPEAD@Z";
+ case 0x0472:
+ return "?out@?$codecvt@_WDH@std@@QEBAHAEAHPEB_W1AEAPEB_WPEAD3AEAPEAD@Z";
+ case 0x0473:
+ return "?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z";
+ case 0x0474:
+ return "?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z";
+ case 0x0475:
+ return "?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z";
+ case 0x0476:
+ return "?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z";
+ case 0x0477:
+ return "?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z";
+ case 0x0478:
+ return "?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@"
+ "Z";
+ case 0x0479:
+ return "?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
+ case 0x047a:
+ return "?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
+ case 0x047b:
+ return "?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
+ case 0x047c:
+ return "?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z";
+ case 0x047d:
+ return "?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z";
+ case 0x047e:
+ return "?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z";
+ case 0x047f:
+ return "?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+ case 0x0480:
+ return "?peek@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ";
+ case 0x0481:
+ return "?peek@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
+ case 0x0482:
+ return "?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
+ case 0x0483:
+ return "?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
+ case 0x0484:
+ return "?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
+ case 0x0485: return "?precision@ios_base@std@@QEAA_J_J@Z";
+ case 0x0486: return "?precision@ios_base@std@@QEBA_JXZ";
+ case 0x0487:
+ return "?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?"
+ "AVlocale@2@AEBV32@@Z";
+ case 0x0488:
+ return "?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?"
+ "AVlocale@2@AEBV32@@Z";
+ case 0x0489:
+ return "?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?"
+ "AVlocale@2@AEBV32@@Z";
+ case 0x048a:
+ return "?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$"
+ "fpos@H@2@_JHH@Z";
+ case 0x048b:
+ return "?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$"
+ "fpos@H@2@_JII@Z";
+ case 0x048c:
+ return "?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$"
+ "fpos@H@2@_JHH@Z";
+ case 0x048d:
+ return "?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$"
+ "fpos@H@2@_JII@Z";
+ case 0x048e:
+ return "?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?"
+ "AV?$fpos@H@2@_JHH@Z";
+ case 0x048f:
+ return "?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?"
+ "AV?$fpos@H@2@_JII@Z";
+ case 0x0490:
+ return "?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$"
+ "fpos@H@2@V32@H@Z";
+ case 0x0491:
+ return "?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$"
+ "fpos@H@2@V32@I@Z";
+ case 0x0492:
+ return "?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$"
+ "fpos@H@2@V32@H@Z";
+ case 0x0493:
+ return "?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$"
+ "fpos@H@2@V32@I@Z";
+ case 0x0494:
+ return "?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?"
+ "AV?$fpos@H@2@V32@H@Z";
+ case 0x0495:
+ return "?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?"
+ "AV?$fpos@H@2@V32@I@Z";
+ case 0x0496:
+ return "?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@"
+ "QEAAPEAV12@PEAD_J@Z";
+ case 0x0497:
+ return "?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@"
+ "QEAAPEAV12@PEAG_J@Z";
+ case 0x0498:
+ return "?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@"
+ "QEAAPEAV12@PEA_W_J@Z";
+ case 0x0499:
+ return "?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+ case 0x049a:
+ return "?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHXZ";
+ case 0x049b:
+ return "?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAHXZ";
+ case 0x049c:
+ return "?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z";
+ case 0x049d:
+ return "?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z";
+ case 0x049e:
+ return "?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z";
+ case 0x049f:
+ return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "AEAVios_base@2@DJ@Z";
+ case 0x04a0:
+ return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "AEAVios_base@2@DK@Z";
+ case 0x04a1:
+ return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "AEAVios_base@2@DN@Z";
+ case 0x04a2:
+ return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "AEAVios_base@2@DO@Z";
+ case 0x04a3:
+ return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "AEAVios_base@2@DPEBX@Z";
+ case 0x04a4:
+ return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "AEAVios_base@2@D_J@Z";
+ case 0x04a5:
+ return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "AEAVios_base@2@D_K@Z";
+ case 0x04a6:
+ return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "AEAVios_base@2@D_N@Z";
+ case 0x04a7:
+ return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "AEAVios_base@2@GJ@Z";
+ case 0x04a8:
+ return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "AEAVios_base@2@GK@Z";
+ case 0x04a9:
+ return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "AEAVios_base@2@GN@Z";
+ case 0x04aa:
+ return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "AEAVios_base@2@GO@Z";
+ case 0x04ab:
+ return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "AEAVios_base@2@GPEBX@Z";
+ case 0x04ac:
+ return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "AEAVios_base@2@G_J@Z";
+ case 0x04ad:
+ return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "AEAVios_base@2@G_K@Z";
+ case 0x04ae:
+ return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "AEAVios_base@2@G_N@Z";
+ case 0x04af:
+ return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@AEAVios_base@2@_WJ@Z";
+ case 0x04b0:
+ return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@AEAVios_base@2@_WK@Z";
+ case 0x04b1:
+ return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@AEAVios_base@2@_WN@Z";
+ case 0x04b2:
+ return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@AEAVios_base@2@_WO@Z";
+ case 0x04b3:
+ return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@AEAVios_base@2@_WPEBX@Z";
+ case 0x04b4:
+ return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@AEAVios_base@2@_W_J@Z";
+ case 0x04b5:
+ return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@AEAVios_base@2@_W_K@Z";
+ case 0x04b6:
+ return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@AEAVios_base@2@_W_N@Z";
+ case 0x04b7:
+ return "?put@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@"
+ "@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "AEAVios_base@2@DPEBUtm@@DD@Z";
+ case 0x04b8:
+ return "?put@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@"
+ "@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "AEAVios_base@2@DPEBUtm@@PEBD3@Z";
+ case 0x04b9:
+ return "?put@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@"
+ "@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "AEAVios_base@2@GPEBUtm@@DD@Z";
+ case 0x04ba:
+ return "?put@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@"
+ "@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "AEAVios_base@2@GPEBUtm@@PEBG3@Z";
+ case 0x04bb:
+ return "?put@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@AEAVios_base@2@_WPEBUtm@@DD@Z";
+ case 0x04bc:
+ return "?put@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@AEAVios_base@2@_WPEBUtm@@PEB_W4@Z";
+ case 0x04bd:
+ return "?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@"
+ "Z";
+ case 0x04be:
+ return "?putback@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@"
+ "Z";
+ case 0x04bf:
+ return "?putback@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_"
+ "W@Z";
+ case 0x04c0: return "?pword@ios_base@std@@QEAAAEAPEAXH@Z";
+ case 0x04c1:
+ return "?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_"
+ "streambuf@DU?$char_traits@D@std@@@2@PEAV32@@Z";
+ case 0x04c2:
+ return "?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_"
+ "streambuf@DU?$char_traits@D@std@@@2@XZ";
+ case 0x04c3:
+ return "?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_"
+ "streambuf@GU?$char_traits@G@std@@@2@PEAV32@@Z";
+ case 0x04c4:
+ return "?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_"
+ "streambuf@GU?$char_traits@G@std@@@2@XZ";
+ case 0x04c5:
+ return "?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_"
+ "streambuf@_WU?$char_traits@_W@std@@@2@PEAV32@@Z";
+ case 0x04c6:
+ return "?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_"
+ "streambuf@_WU?$char_traits@_W@std@@@2@XZ";
+ case 0x04c7: return "?rdstate@ios_base@std@@QEBAHXZ";
+ case 0x04c8:
+ return "?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_"
+ "J@Z";
+ case 0x04c9:
+ return "?read@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_"
+ "J@Z";
+ case 0x04ca:
+ return "?read@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_"
+ "W_J@Z";
+ case 0x04cb:
+ return "?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@"
+ "Z";
+ case 0x04cc:
+ return "?readsome@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@"
+ "Z";
+ case 0x04cd:
+ return "?readsome@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_"
+ "W_J@Z";
+ case 0x04ce:
+ return "?register_callback@ios_base@std@@QEAAXP6AXW4event@12@AEAV12@H@ZH@Z";
+ case 0x04cf: return "?resetiosflags@std@@YA?AU?$_Smanip@H@1@H@Z";
+ case 0x04d0:
+ return "?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+ case 0x04d1:
+ return "?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
+ case 0x04d2:
+ return "?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
+ case 0x04d3: return "?scan_is@?$ctype@D@std@@QEBAPEBDFPEBD0@Z";
+ case 0x04d4: return "?scan_is@?$ctype@G@std@@QEBAPEBGFPEBG0@Z";
+ case 0x04d5: return "?scan_is@?$ctype@_W@std@@QEBAPEB_WFPEB_W0@Z";
+ case 0x04d6: return "?scan_not@?$ctype@D@std@@QEBAPEBDFPEBD0@Z";
+ case 0x04d7: return "?scan_not@?$ctype@G@std@@QEBAPEBGFPEBG0@Z";
+ case 0x04d8: return "?scan_not@?$ctype@_W@std@@QEBAPEB_WFPEB_W0@Z";
+ case 0x04d9:
+ return "?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$"
+ "fpos@H@2@@Z";
+ case 0x04da:
+ return "?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@"
+ "Z";
+ case 0x04db:
+ return "?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$"
+ "fpos@H@2@@Z";
+ case 0x04dc:
+ return "?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@"
+ "Z";
+ case 0x04dd:
+ return "?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$"
+ "fpos@H@2@@Z";
+ case 0x04de:
+ return "?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_"
+ "JH@Z";
+ case 0x04df:
+ return "?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$"
+ "fpos@H@2@_JHH@Z";
+ case 0x04e0:
+ return "?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$"
+ "fpos@H@2@_JHH@Z";
+ case 0x04e1:
+ return "?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$"
+ "fpos@H@2@_JHH@Z";
+ case 0x04e2:
+ return "?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$"
+ "fpos@H@2@@Z";
+ case 0x04e3:
+ return "?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@"
+ "Z";
+ case 0x04e4:
+ return "?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$"
+ "fpos@H@2@@Z";
+ case 0x04e5:
+ return "?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@"
+ "Z";
+ case 0x04e6:
+ return "?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$"
+ "fpos@H@2@@Z";
+ case 0x04e7:
+ return "?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_"
+ "JH@Z";
+ case 0x04e8:
+ return "?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$"
+ "fpos@H@2@V32@H@Z";
+ case 0x04e9:
+ return "?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$"
+ "fpos@H@2@V32@H@Z";
+ case 0x04ea:
+ return "?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$"
+ "fpos@H@2@V32@H@Z";
+ case 0x04eb: return "?set_new_handler@std@@YAP6AXXZP6AXXZ@Z";
+ case 0x04ec:
+ return "?set_rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXPEAV?$"
+ "basic_streambuf@DU?$char_traits@D@std@@@2@@Z";
+ case 0x04ed:
+ return "?set_rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXPEAV?$"
+ "basic_streambuf@GU?$char_traits@G@std@@@2@@Z";
+ case 0x04ee:
+ return "?set_rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXPEAV?$"
+ "basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z";
+ case 0x04ef: return "?setbase@std@@YA?AU?$_Smanip@H@1@H@Z";
+ case 0x04f0:
+ return "?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAPEAV12@"
+ "PEAD_J@Z";
+ case 0x04f1:
+ return "?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAPEAV12@"
+ "PEAG_J@Z";
+ case 0x04f2:
+ return "?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV12@"
+ "PEA_W_J@Z";
+ case 0x04f3: return "?setf@ios_base@std@@QEAAHH@Z";
+ case 0x04f4: return "?setf@ios_base@std@@QEAAHHH@Z";
+ case 0x04f5:
+ return "?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z";
+ case 0x04f6:
+ return "?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z";
+ case 0x04f7:
+ return "?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@"
+ "Z";
+ case 0x04f8: return "?setiosflags@std@@YA?AU?$_Smanip@H@1@H@Z";
+ case 0x04f9:
+ return "?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z";
+ case 0x04fa:
+ return "?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD0@Z";
+ case 0x04fb:
+ return "?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z";
+ case 0x04fc:
+ return "?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG0@Z";
+ case 0x04fd:
+ return "?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@"
+ "Z";
+ case 0x04fe:
+ return "?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W0@"
+ "Z";
+ case 0x04ff: return "?setprecision@std@@YA?AU?$_Smanip@_J@1@_J@Z";
+ case 0x0500:
+ return "?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z";
+ case 0x0501:
+ return "?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z";
+ case 0x0502:
+ return "?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z";
+ case 0x0503:
+ return "?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z";
+ case 0x0504:
+ return "?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z";
+ case 0x0505:
+ return "?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z";
+ case 0x0506: return "?setstate@ios_base@std@@QEAAXH@Z";
+ case 0x0507: return "?setstate@ios_base@std@@QEAAXH_N@Z";
+ case 0x0508: return "?setstate@ios_base@std@@QEAAXI@Z";
+ case 0x0509: return "?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z";
+ case 0x050a:
+ return "?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+ case 0x050b:
+ return "?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
+ case 0x050c:
+ return "?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
+ case 0x050d:
+ return "?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@"
+ "Z";
+ case 0x050e:
+ return "?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@"
+ "Z";
+ case 0x050f:
+ return "?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_"
+ "J@Z";
+ case 0x0510:
+ return "?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JXZ";
+ case 0x0511:
+ return "?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JXZ";
+ case 0x0512:
+ return "?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_"
+ "JXZ";
+ case 0x0513:
+ return "?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+ case 0x0514:
+ return "?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
+ case 0x0515:
+ return "?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
+ case 0x0516:
+ return "?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z";
+ case 0x0517:
+ return "?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z";
+ case 0x0518:
+ return "?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@"
+ "Z";
+ case 0x0519:
+ return "?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z";
+ case 0x051a:
+ return "?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z";
+ case 0x051b:
+ return "?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z";
+ case 0x051c:
+ return "?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEBD_J@"
+ "Z";
+ case 0x051d:
+ return "?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEBG_J@"
+ "Z";
+ case 0x051e:
+ return "?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEB_W_"
+ "J@Z";
+ case 0x051f: return "?start@agent@Concurrency@@QEAA_NXZ";
+ case 0x0520: return "?status@agent@Concurrency@@QEAA?AW4agent_status@2@XZ";
+ case 0x0521:
+ return "?status_port@agent@Concurrency@@QEAAPEAV?$ISource@W4agent_status@"
+ "Concurrency@@@2@XZ";
+ case 0x0522:
+ return "?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+ case 0x0523:
+ return "?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+ case 0x0524:
+ return "?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+ case 0x0525:
+ return "?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+ case 0x0526:
+ return "?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
+ case 0x0527:
+ return "?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
+ case 0x0528:
+ return "?swap@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z";
+ case 0x0529:
+ return "?swap@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z";
+ case 0x052a:
+ return "?swap@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z";
+ case 0x052b:
+ return "?swap@?$basic_iostream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
+ case 0x052c:
+ return "?swap@?$basic_iostream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
+ case 0x052d:
+ return "?swap@?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@"
+ "Z";
+ case 0x052e:
+ return "?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
+ case 0x052f:
+ return "?swap@?$basic_istream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
+ case 0x0530:
+ return "?swap@?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z";
+ case 0x0531:
+ return "?swap@?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
+ case 0x0532:
+ return "?swap@?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
+ case 0x0533:
+ return "?swap@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z";
+ case 0x0534:
+ return "?swap@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
+ case 0x0535:
+ return "?swap@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
+ case 0x0536:
+ return "?swap@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@"
+ "Z";
+ case 0x0537: return "?swap@ios_base@std@@QEAAXAEAV12@@Z";
+ case 0x0538:
+ return "?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+ case 0x0539:
+ return "?sync@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAHXZ";
+ case 0x053a:
+ return "?sync@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAHXZ";
+ case 0x053b:
+ return "?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ";
+ case 0x053c:
+ return "?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAHXZ";
+ case 0x053d:
+ return "?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ";
+ case 0x053e: return "?sync_with_stdio@ios_base@std@@SA_N_N@Z";
+ case 0x053f: return "?table@?$ctype@D@std@@QEBAPEBFXZ";
+ case 0x0540: return "?table_size@?$ctype@D@std@@2_KB";
+ case 0x0541:
+ return "?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@"
+ "2@XZ";
+ case 0x0542:
+ return "?tellg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@"
+ "2@XZ";
+ case 0x0543:
+ return "?tellg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@"
+ "H@2@XZ";
+ case 0x0544:
+ return "?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@"
+ "2@XZ";
+ case 0x0545:
+ return "?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@"
+ "2@XZ";
+ case 0x0546:
+ return "?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@"
+ "H@2@XZ";
+ case 0x0547:
+ return "?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_"
+ "ostream@DU?$char_traits@D@std@@@2@PEAV32@@Z";
+ case 0x0548:
+ return "?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_"
+ "ostream@DU?$char_traits@D@std@@@2@XZ";
+ case 0x0549:
+ return "?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_"
+ "ostream@GU?$char_traits@G@std@@@2@PEAV32@@Z";
+ case 0x054a:
+ return "?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_"
+ "ostream@GU?$char_traits@G@std@@@2@XZ";
+ case 0x054b:
+ return "?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_"
+ "ostream@_WU?$char_traits@_W@std@@@2@PEAV32@@Z";
+ case 0x054c:
+ return "?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_"
+ "ostream@_WU?$char_traits@_W@std@@@2@XZ";
+ case 0x054d: return "?tolower@?$ctype@D@std@@QEBADD@Z";
+ case 0x054e: return "?tolower@?$ctype@D@std@@QEBAPEBDPEADPEBD@Z";
+ case 0x054f: return "?tolower@?$ctype@G@std@@QEBAGG@Z";
+ case 0x0550: return "?tolower@?$ctype@G@std@@QEBAPEBGPEAGPEBG@Z";
+ case 0x0551: return "?tolower@?$ctype@_W@std@@QEBAPEB_WPEA_WPEB_W@Z";
+ case 0x0552: return "?tolower@?$ctype@_W@std@@QEBA_W_W@Z";
+ case 0x0553: return "?toupper@?$ctype@D@std@@QEBADD@Z";
+ case 0x0554: return "?toupper@?$ctype@D@std@@QEBAPEBDPEADPEBD@Z";
+ case 0x0555: return "?toupper@?$ctype@G@std@@QEBAGG@Z";
+ case 0x0556: return "?toupper@?$ctype@G@std@@QEBAPEBGPEAGPEBG@Z";
+ case 0x0557: return "?toupper@?$ctype@_W@std@@QEBAPEB_WPEA_WPEB_W@Z";
+ case 0x0558: return "?toupper@?$ctype@_W@std@@QEBA_W_W@Z";
+ case 0x0559: return "?try_to_lock@std@@3Utry_to_lock_t@1@B";
+ case 0x055a:
+ return "?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ";
+ case 0x055b:
+ return "?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ";
+ case 0x055c:
+ return "?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ";
+ case 0x055d: return "?uncaught_exception@std@@YA_NXZ";
+ case 0x055e:
+ return "?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ";
+ case 0x055f:
+ return "?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ";
+ case 0x0560:
+ return "?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ";
+ case 0x0561:
+ return "?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ";
+ case 0x0562:
+ return "?unget@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ";
+ case 0x0563:
+ return "?unget@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ";
+ case 0x0564: return "?unsetf@ios_base@std@@QEAAXH@Z";
+ case 0x0565: return "?unshift@?$codecvt@DDH@std@@QEBAHAEAHPEAD1AEAPEAD@Z";
+ case 0x0566: return "?unshift@?$codecvt@GDH@std@@QEBAHAEAHPEAD1AEAPEAD@Z";
+ case 0x0567: return "?unshift@?$codecvt@_WDH@std@@QEBAHAEAHPEAD1AEAPEAD@Z";
+ case 0x0568: return "?wait@agent@Concurrency@@SA?AW4agent_status@2@PEAV12@I@Z";
+ case 0x0569:
+ return "?wait_for_all@agent@Concurrency@@SAX_KPEAPEAV12@PEAW4agent_status@2@"
+ "I@Z";
+ case 0x056a:
+ return "?wait_for_one@agent@Concurrency@@SAX_KPEAPEAV12@AEAW4agent_status@2@"
+ "AEA_KI@Z";
+ case 0x056b:
+ return "?wcerr@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A";
+ case 0x056c:
+ return "?wcerr@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A";
+ case 0x056d: return "?wcin@std@@3V?$basic_istream@GU?$char_traits@G@std@@@1@A";
+ case 0x056e:
+ return "?wcin@std@@3V?$basic_istream@_WU?$char_traits@_W@std@@@1@A";
+ case 0x056f:
+ return "?wclog@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A";
+ case 0x0570:
+ return "?wclog@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A";
+ case 0x0571:
+ return "?wcout@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A";
+ case 0x0572:
+ return "?wcout@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A";
+ case 0x0573: return "?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADD@Z";
+ case 0x0574: return "?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGD@Z";
+ case 0x0575:
+ return "?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WD@Z";
+ case 0x0576: return "?widen@?$ctype@D@std@@QEBADD@Z";
+ case 0x0577: return "?widen@?$ctype@D@std@@QEBAPEBDPEBD0PEAD@Z";
+ case 0x0578: return "?widen@?$ctype@G@std@@QEBAGD@Z";
+ case 0x0579: return "?widen@?$ctype@G@std@@QEBAPEBDPEBD0PEAG@Z";
+ case 0x057a: return "?widen@?$ctype@_W@std@@QEBAPEBDPEBD0PEA_W@Z";
+ case 0x057b: return "?widen@?$ctype@_W@std@@QEBA_WD@Z";
+ case 0x057c: return "?width@ios_base@std@@QEAA_J_J@Z";
+ case 0x057d: return "?width@ios_base@std@@QEBA_JXZ";
+ case 0x057e:
+ return "?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_"
+ "J@Z";
+ case 0x057f:
+ return "?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEBG_"
+ "J@Z";
+ case 0x0580:
+ return "?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@"
+ "PEB_W_J@Z";
+ case 0x0581:
+ return "?ws@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@1@AEAV21@@Z";
+ case 0x0582:
+ return "?ws@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@1@AEAV21@@Z";
+ case 0x0583:
+ return "?ws@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@AEAV21@@"
+ "Z";
+ case 0x0584: return "?xalloc@ios_base@std@@SAHXZ";
+ case 0x0585:
+ return "?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@"
+ "Z";
+ case 0x0586:
+ return "?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_J@"
+ "Z";
+ case 0x0587:
+ return "?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_"
+ "W_J@Z";
+ case 0x0588:
+ return "?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@"
+ "Z";
+ case 0x0589:
+ return "?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEBG_J@"
+ "Z";
+ case 0x058a:
+ return "?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEB_"
+ "W_J@Z";
+ case 0x058b: return "_Call_once";
+ case 0x058c: return "_Call_onceEx";
+ case 0x058d: return "_Cnd_broadcast";
+ case 0x058e: return "_Cnd_destroy";
+ case 0x058f: return "_Cnd_do_broadcast_at_thread_exit";
+ case 0x0590: return "_Cnd_init";
+ case 0x0591: return "_Cnd_register_at_thread_exit";
+ case 0x0592: return "_Cnd_signal";
+ case 0x0593: return "_Cnd_timedwait";
+ case 0x0594: return "_Cnd_unregister_at_thread_exit";
+ case 0x0595: return "_Cnd_wait";
+ case 0x0596: return "_Cosh";
+ case 0x0597: return "_Denorm";
+ case 0x0598: return "_Dint";
+ case 0x0599: return "_Dnorm";
+ case 0x059a: return "_Do_call";
+ case 0x059b: return "_Dscale";
+ case 0x059c: return "_Dtento";
+ case 0x059d: return "_Dtest";
+ case 0x059e: return "_Dunscale";
+ case 0x059f: return "_Eps";
+ case 0x05a0: return "_Exp";
+ case 0x05a1: return "_FCosh";
+ case 0x05a2: return "_FDenorm";
+ case 0x05a3: return "_FDint";
+ case 0x05a4: return "_FDnorm";
+ case 0x05a5: return "_FDscale";
+ case 0x05a6: return "_FDtento";
+ case 0x05a7: return "_FDtest";
+ case 0x05a8: return "_FDunscale";
+ case 0x05a9: return "_FEps";
+ case 0x05aa: return "_FExp";
+ case 0x05ab: return "_FInf";
+ case 0x05ac: return "_FNan";
+ case 0x05ad: return "_FRteps";
+ case 0x05ae: return "_FSinh";
+ case 0x05af: return "_FSnan";
+ case 0x05b0: return "_FXbig";
+ case 0x05b1: return "_FXp_addh";
+ case 0x05b2: return "_FXp_addx";
+ case 0x05b3: return "_FXp_getw";
+ case 0x05b4: return "_FXp_invx";
+ case 0x05b5: return "_FXp_ldexpx";
+ case 0x05b6: return "_FXp_movx";
+ case 0x05b7: return "_FXp_mulh";
+ case 0x05b8: return "_FXp_mulx";
+ case 0x05b9: return "_FXp_setn";
+ case 0x05ba: return "_FXp_setw";
+ case 0x05bb: return "_FXp_sqrtx";
+ case 0x05bc: return "_FXp_subx";
+ case 0x05bd: return "_FZero";
+ case 0x05be: return "_Getcoll";
+ case 0x05bf: return "_Getctype";
+ case 0x05c0: return "_Getcvt";
+ case 0x05c1: return "_Getdateorder";
+ case 0x05c2: return "_Getwctype";
+ case 0x05c3: return "_Getwctypes";
+ case 0x05c4: return "_Hugeval";
+ case 0x05c5: return "_Inf";
+ case 0x05c6: return "_LCosh";
+ case 0x05c7: return "_LDenorm";
+ case 0x05c8: return "_LDint";
+ case 0x05c9: return "_LDscale";
+ case 0x05ca: return "_LDtento";
+ case 0x05cb: return "_LDtest";
+ case 0x05cc: return "_LDunscale";
+ case 0x05cd: return "_LEps";
+ case 0x05ce: return "_LExp";
+ case 0x05cf: return "_LInf";
+ case 0x05d0: return "_LNan";
+ case 0x05d1: return "_LPoly";
+ case 0x05d2: return "_LRteps";
+ case 0x05d3: return "_LSinh";
+ case 0x05d4: return "_LSnan";
+ case 0x05d5: return "_LXbig";
+ case 0x05d6: return "_LXp_addh";
+ case 0x05d7: return "_LXp_addx";
+ case 0x05d8: return "_LXp_getw";
+ case 0x05d9: return "_LXp_invx";
+ case 0x05da: return "_LXp_ldexpx";
+ case 0x05db: return "_LXp_movx";
+ case 0x05dc: return "_LXp_mulh";
+ case 0x05dd: return "_LXp_mulx";
+ case 0x05de: return "_LXp_setn";
+ case 0x05df: return "_LXp_setw";
+ case 0x05e0: return "_LXp_sqrtx";
+ case 0x05e1: return "_LXp_subx";
+ case 0x05e2: return "_LZero";
+ case 0x05e3: return "_Lock_shared_ptr_spin_lock";
+ case 0x05e4: return "_Mbrtowc";
+ case 0x05e5: return "_Mtx_clear_owner";
+ case 0x05e6: return "_Mtx_current_owns";
+ case 0x05e7: return "_Mtx_destroy";
+ case 0x05e8: return "_Mtx_getconcrtcs";
+ case 0x05e9: return "_Mtx_init";
+ case 0x05ea: return "_Mtx_lock";
+ case 0x05eb: return "_Mtx_reset_owner";
+ case 0x05ec: return "_Mtx_timedlock";
+ case 0x05ed: return "_Mtx_trylock";
+ case 0x05ee: return "_Mtx_unlock";
+ case 0x05ef: return "_Mtxdst";
+ case 0x05f0: return "_Mtxinit";
+ case 0x05f1: return "_Mtxlock";
+ case 0x05f2: return "_Mtxunlock";
+ case 0x05f3: return "_Nan";
+ case 0x05f4: return "_Once";
+ case 0x05f5: return "_Poly";
+ case 0x05f6: return "_Rteps";
+ case 0x05f7: return "_Sinh";
+ case 0x05f8: return "_Snan";
+ case 0x05f9: return "_Stod";
+ case 0x05fa: return "_Stodx";
+ case 0x05fb: return "_Stof";
+ case 0x05fc: return "_Stoflt";
+ case 0x05fd: return "_Stofx";
+ case 0x05fe: return "_Stold";
+ case 0x05ff: return "_Stoldx";
+ case 0x0600: return "_Stoll";
+ case 0x0601: return "_Stollx";
+ case 0x0602: return "_Stolx";
+ case 0x0603: return "_Stopfx";
+ case 0x0604: return "_Stoul";
+ case 0x0605: return "_Stoull";
+ case 0x0606: return "_Stoullx";
+ case 0x0607: return "_Stoulx";
+ case 0x0608: return "_Stoxflt";
+ case 0x0609: return "_Strcoll";
+ case 0x060a: return "_Strxfrm";
+ case 0x060b: return "_Thrd_abort";
+ case 0x060c: return "_Thrd_create";
+ case 0x060d: return "_Thrd_current";
+ case 0x060e: return "_Thrd_detach";
+ case 0x060f: return "_Thrd_equal";
+ case 0x0610: return "_Thrd_exit";
+ case 0x0611: return "_Thrd_join";
+ case 0x0612: return "_Thrd_lt";
+ case 0x0613: return "_Thrd_sleep";
+ case 0x0614: return "_Thrd_start";
+ case 0x0615: return "_Thrd_yield";
+ case 0x0616: return "_Tolower";
+ case 0x0617: return "_Toupper";
+ case 0x0618: return "_Towlower";
+ case 0x0619: return "_Towupper";
+ case 0x061a: return "_Tss_create";
+ case 0x061b: return "_Tss_delete";
+ case 0x061c: return "_Tss_get";
+ case 0x061d: return "_Tss_set";
+ case 0x061e: return "_Unlock_shared_ptr_spin_lock";
+ case 0x061f: return "_Wcrtomb";
+ case 0x0620: return "_Wcscoll";
+ case 0x0621: return "_Wcsxfrm";
+ case 0x0622: return "_Xbig";
+ case 0x0623: return "_Xp_addh";
+ case 0x0624: return "_Xp_addx";
+ case 0x0625: return "_Xp_getw";
+ case 0x0626: return "_Xp_invx";
+ case 0x0627: return "_Xp_ldexpx";
+ case 0x0628: return "_Xp_movx";
+ case 0x0629: return "_Xp_mulh";
+ case 0x062a: return "_Xp_mulx";
+ case 0x062b: return "_Xp_setn";
+ case 0x062c: return "_Xp_setw";
+ case 0x062d: return "_Xp_sqrtx";
+ case 0x062e: return "_Xp_subx";
+ case 0x062f: return "_Xtime_diff_to_millis";
+ case 0x0630: return "_Xtime_diff_to_millis2";
+ case 0x0631: return "_Xtime_get_ticks";
+ case 0x0632: return "_Zero";
+ case 0x0633: return "__Wcrtomb_lk";
+ case 0x0634: return "towctrans";
+ case 0x0635: return "wctrans";
+ case 0x0636: return "wctype";
+ case 0x0637: return "xtime_get";
}
return nullptr;
}
-}
}
-#endif
+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcp120_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcp120_dll_lookup.hpp
index b8c18066860..5fec596a78b 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcp120_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcp120_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,1587 +17,3234 @@
#define LIEF_PE_MSVCP120_DLL_LOOKUP_H
#include <cstdint>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
inline const char* msvcp120_dll_lookup(uint32_t i) {
- switch(i) {
- case 0x0001: return "??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z";
- case 0x0002: return "??$_Getvals@_W@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z";
- case 0x0003: return "??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z";
- case 0x0004: return "??0?$_Yarn@D@std@@QEAA@AEBV01@@Z";
- case 0x0005: return "??0?$_Yarn@D@std@@QEAA@PEBD@Z";
- case 0x0006: return "??0?$_Yarn@D@std@@QEAA@XZ";
- case 0x0007: return "??0?$_Yarn@_W@std@@QEAA@XZ";
- case 0x0008: return "??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ";
- case 0x0009: return "??0?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z";
- case 0x000a: return "??0?$basic_ios@GU?$char_traits@G@std@@@std@@IEAA@XZ";
- case 0x000b: return "??0?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z";
- case 0x000c: return "??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAA@XZ";
- case 0x000d: return "??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z";
- case 0x000e: return "??0?$basic_iostream@DU?$char_traits@D@std@@@std@@IEAA@$$QEAV01@@Z";
- case 0x000f: return "??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z";
- case 0x0010: return "??0?$basic_iostream@GU?$char_traits@G@std@@@std@@IEAA@$$QEAV01@@Z";
- case 0x0011: return "??0?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z";
- case 0x0012: return "??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IEAA@$$QEAV01@@Z";
- case 0x0013: return "??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z";
- case 0x0014: return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@IEAA@$$QEAV01@@Z";
- case 0x0015: return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z";
- case 0x0016: return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z";
- case 0x0017: return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z";
- case 0x0018: return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@IEAA@$$QEAV01@@Z";
- case 0x0019: return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N1@Z";
- case 0x001a: return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z";
- case 0x001b: return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z";
- case 0x001c: return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAA@$$QEAV01@@Z";
- case 0x001d: return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z";
- case 0x001e: return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z";
- case 0x001f: return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@@Z";
- case 0x0020: return "??0?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAA@$$QEAV01@@Z";
- case 0x0021: return "??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z";
- case 0x0022: return "??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z";
- case 0x0023: return "??0?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAA@$$QEAV01@@Z";
- case 0x0024: return "??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z";
- case 0x0025: return "??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z";
- case 0x0026: return "??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAA@$$QEAV01@@Z";
- case 0x0027: return "??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z";
- case 0x0028: return "??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_Uninitialized@1@_N@Z";
- case 0x0029: return "??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@AEBV01@@Z";
- case 0x002a: return "??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@W4_Uninitialized@1@@Z";
- case 0x002b: return "??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@XZ";
- case 0x002c: return "??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@AEBV01@@Z";
- case 0x002d: return "??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@W4_Uninitialized@1@@Z";
- case 0x002e: return "??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@XZ";
- case 0x002f: return "??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@AEBV01@@Z";
- case 0x0030: return "??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@W4_Uninitialized@1@@Z";
- case 0x0031: return "??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@XZ";
- case 0x0032: return "??0?$codecvt@DDH@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x0033: return "??0?$codecvt@DDH@std@@QEAA@_K@Z";
- case 0x0034: return "??0?$codecvt@GDH@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x0035: return "??0?$codecvt@GDH@std@@QEAA@_K@Z";
- case 0x0036: return "??0?$codecvt@_WDH@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x0037: return "??0?$codecvt@_WDH@std@@QEAA@_K@Z";
- case 0x0038: return "??0?$ctype@D@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x0039: return "??0?$ctype@D@std@@QEAA@PEBF_N_K@Z";
- case 0x003a: return "??0?$ctype@G@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x003b: return "??0?$ctype@G@std@@QEAA@_K@Z";
- case 0x003c: return "??0?$ctype@_W@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x003d: return "??0?$ctype@_W@std@@QEAA@_K@Z";
- case 0x003e: return "??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x003f: return "??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@_K@Z";
- case 0x0040: return "??0?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x0041: return "??0?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@_K@Z";
- case 0x0042: return "??0?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x0043: return "??0?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@_K@Z";
- case 0x0044: return "??0?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x0045: return "??0?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@_K@Z";
- case 0x0046: return "??0?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x0047: return "??0?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@_K@Z";
- case 0x0048: return "??0?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x0049: return "??0?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@_K@Z";
- case 0x004a: return "??0?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAA@PEBD_K@Z";
- case 0x004b: return "??0?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x004c: return "??0?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@_K@Z";
- case 0x004d: return "??0?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAA@PEBD_K@Z";
- case 0x004e: return "??0?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x004f: return "??0?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@_K@Z";
- case 0x0050: return "??0?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAA@PEBD_K@Z";
- case 0x0051: return "??0?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x0052: return "??0?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@_K@Z";
- case 0x0053: return "??0?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x0054: return "??0?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAA@_K@Z";
- case 0x0055: return "??0?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAA@PEBD_K@Z";
- case 0x0056: return "??0?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x0057: return "??0?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAA@_K@Z";
- case 0x0058: return "??0?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAA@PEBD_K@Z";
- case 0x0059: return "??0?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
- case 0x005a: return "??0?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAA@_K@Z";
- case 0x005b: return "??0Init@ios_base@std@@QEAA@XZ";
- case 0x005c: return "??0_Concurrent_queue_base_v4@details@Concurrency@@IEAA@_K@Z";
- case 0x005d: return "??0_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAA@AEBV_Concurrent_queue_base_v4@12@@Z";
- case 0x005e: return "??0_Container_base12@std@@QEAA@AEBU01@@Z";
- case 0x005f: return "??0_Container_base12@std@@QEAA@XZ";
- case 0x0060: return "??0_Facet_base@std@@QEAA@AEBV01@@Z";
- case 0x0061: return "??0_Facet_base@std@@QEAA@XZ";
- case 0x0062: return "??0_Init_locks@std@@QEAA@XZ";
- case 0x0063: return "??0_Locimp@locale@std@@AEAA@AEBV012@@Z";
- case 0x0064: return "??0_Locimp@locale@std@@AEAA@_N@Z";
- case 0x0065: return "??0_Locinfo@std@@QEAA@HPEBD@Z";
- case 0x0066: return "??0_Locinfo@std@@QEAA@PEBD@Z";
- case 0x0067: return "??0_Lockit@std@@QEAA@H@Z";
- case 0x0068: return "??0_Lockit@std@@QEAA@XZ";
- case 0x0069: return "??0_Pad@std@@QEAA@AEBV01@@Z";
- case 0x006a: return "??0_Pad@std@@QEAA@XZ";
- case 0x006b: return "??0_Runtime_object@details@Concurrency@@QEAA@H@Z";
- case 0x006c: return "??0_Runtime_object@details@Concurrency@@QEAA@XZ";
- case 0x006d: return "??0_Timevec@std@@QEAA@AEBV01@@Z";
- case 0x006e: return "??0_Timevec@std@@QEAA@PEAX@Z";
- case 0x006f: return "??0_UShinit@std@@QEAA@XZ";
- case 0x0070: return "??0_Winit@std@@QEAA@XZ";
- case 0x0071: return "??0agent@Concurrency@@QEAA@AEAVScheduleGroup@1@@Z";
- case 0x0072: return "??0agent@Concurrency@@QEAA@AEAVScheduler@1@@Z";
- case 0x0073: return "??0agent@Concurrency@@QEAA@XZ";
- case 0x0074: return "??0codecvt_base@std@@QEAA@_K@Z";
- case 0x0075: return "??0ctype_base@std@@QEAA@_K@Z";
- case 0x0076: return "??0facet@locale@std@@IEAA@_K@Z";
- case 0x0077: return "??0id@locale@std@@QEAA@_K@Z";
- case 0x0078: return "??0ios_base@std@@IEAA@XZ";
- case 0x0079: return "??0time_base@std@@QEAA@_K@Z";
- case 0x007a: return "??1?$_Yarn@D@std@@QEAA@XZ";
- case 0x007b: return "??1?$_Yarn@_W@std@@QEAA@XZ";
- case 0x007c: return "??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ";
- case 0x007d: return "??1?$basic_ios@GU?$char_traits@G@std@@@std@@UEAA@XZ";
- case 0x007e: return "??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
- case 0x007f: return "??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UEAA@XZ";
- case 0x0080: return "??1?$basic_iostream@GU?$char_traits@G@std@@@std@@UEAA@XZ";
- case 0x0081: return "??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
- case 0x0082: return "??1?$basic_istream@DU?$char_traits@D@std@@@std@@UEAA@XZ";
- case 0x0083: return "??1?$basic_istream@GU?$char_traits@G@std@@@std@@UEAA@XZ";
- case 0x0084: return "??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
- case 0x0085: return "??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ";
- case 0x0086: return "??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UEAA@XZ";
- case 0x0087: return "??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
- case 0x0088: return "??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ";
- case 0x0089: return "??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAA@XZ";
- case 0x008a: return "??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
- case 0x008b: return "??1?$codecvt@DDH@std@@MEAA@XZ";
- case 0x008c: return "??1?$codecvt@GDH@std@@MEAA@XZ";
- case 0x008d: return "??1?$codecvt@_WDH@std@@MEAA@XZ";
- case 0x008e: return "??1?$ctype@D@std@@MEAA@XZ";
- case 0x008f: return "??1?$ctype@G@std@@MEAA@XZ";
- case 0x0090: return "??1?$ctype@_W@std@@MEAA@XZ";
- case 0x0091: return "??1?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEAA@XZ";
- case 0x0092: return "??1?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEAA@XZ";
- case 0x0093: return "??1?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEAA@XZ";
- case 0x0094: return "??1?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEAA@XZ";
- case 0x0095: return "??1?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEAA@XZ";
- case 0x0096: return "??1?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEAA@XZ";
- case 0x0097: return "??1?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEAA@XZ";
- case 0x0098: return "??1?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEAA@XZ";
- case 0x0099: return "??1?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEAA@XZ";
- case 0x009a: return "??1?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEAA@XZ";
- case 0x009b: return "??1?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEAA@XZ";
- case 0x009c: return "??1?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEAA@XZ";
- case 0x009d: return "??1Init@ios_base@std@@QEAA@XZ";
- case 0x009e: return "??1_Concurrent_queue_base_v4@details@Concurrency@@MEAA@XZ";
- case 0x009f: return "??1_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAA@XZ";
- case 0x00a0: return "??1_Concurrent_vector_base_v4@details@Concurrency@@IEAA@XZ";
- case 0x00a1: return "??1_Container_base12@std@@QEAA@XZ";
- case 0x00a2: return "??1_Facet_base@std@@UEAA@XZ";
- case 0x00a3: return "??1_Init_locks@std@@QEAA@XZ";
- case 0x00a4: return "??1_Locimp@locale@std@@MEAA@XZ";
- case 0x00a5: return "??1_Locinfo@std@@QEAA@XZ";
- case 0x00a6: return "??1_Lockit@std@@QEAA@XZ";
- case 0x00a7: return "??1_Pad@std@@QEAA@XZ";
- case 0x00a8: return "??1_Timevec@std@@QEAA@XZ";
- case 0x00a9: return "??1_UShinit@std@@QEAA@XZ";
- case 0x00aa: return "??1_Winit@std@@QEAA@XZ";
- case 0x00ab: return "??1agent@Concurrency@@UEAA@XZ";
- case 0x00ac: return "??1codecvt_base@std@@UEAA@XZ";
- case 0x00ad: return "??1ctype_base@std@@UEAA@XZ";
- case 0x00ae: return "??1facet@locale@std@@MEAA@XZ";
- case 0x00af: return "??1ios_base@std@@UEAA@XZ";
- case 0x00b0: return "??1time_base@std@@UEAA@XZ";
- case 0x00b1: return "??4?$_Iosb@H@std@@QEAAAEAV01@AEBV01@@Z";
- case 0x00b2: return "??4?$_Yarn@D@std@@QEAAAEAV01@AEBV01@@Z";
- case 0x00b3: return "??4?$_Yarn@D@std@@QEAAAEAV01@PEBD@Z";
- case 0x00b4: return "??4?$_Yarn@_W@std@@QEAAAEAV01@PEB_W@Z";
- case 0x00b5: return "??4?$basic_iostream@DU?$char_traits@D@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
- case 0x00b6: return "??4?$basic_iostream@GU?$char_traits@G@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
- case 0x00b7: return "??4?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
- case 0x00b8: return "??4?$basic_istream@DU?$char_traits@D@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
- case 0x00b9: return "??4?$basic_istream@GU?$char_traits@G@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
- case 0x00ba: return "??4?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
- case 0x00bb: return "??4?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
- case 0x00bc: return "??4?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
- case 0x00bd: return "??4?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@$$QEAV01@@Z";
- case 0x00be: return "??4?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAAEAV01@AEBV01@@Z";
- case 0x00bf: return "??4?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAAEAV01@AEBV01@@Z";
- case 0x00c0: return "??4?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@AEBV01@@Z";
- case 0x00c1: return "??4Init@ios_base@std@@QEAAAEAV012@AEBV012@@Z";
- case 0x00c2: return "??4_Container_base0@std@@QEAAAEAU01@AEBU01@@Z";
- case 0x00c3: return "??4_Container_base12@std@@QEAAAEAU01@AEBU01@@Z";
- case 0x00c4: return "??4_Facet_base@std@@QEAAAEAV01@AEBV01@@Z";
- case 0x00c5: return "??4_Init_locks@std@@QEAAAEAV01@AEBV01@@Z";
- case 0x00c6: return "??4_Pad@std@@QEAAAEAV01@AEBV01@@Z";
- case 0x00c7: return "??4_Timevec@std@@QEAAAEAV01@AEBV01@@Z";
- case 0x00c8: return "??4_UShinit@std@@QEAAAEAV01@AEBV01@@Z";
- case 0x00c9: return "??4_Winit@std@@QEAAAEAV01@AEBV01@@Z";
- case 0x00ca: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAF@Z";
- case 0x00cb: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAG@Z";
- case 0x00cc: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAH@Z";
- case 0x00cd: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAI@Z";
- case 0x00ce: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAJ@Z";
- case 0x00cf: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAK@Z";
- case 0x00d0: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAM@Z";
- case 0x00d1: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAN@Z";
- case 0x00d2: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAO@Z";
- case 0x00d3: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAPEAX@Z";
- case 0x00d4: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_J@Z";
- case 0x00d5: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_K@Z";
- case 0x00d6: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_N@Z";
- case 0x00d7: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z";
- case 0x00d8: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z";
- case 0x00d9: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z";
- case 0x00da: return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z";
- case 0x00db: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAF@Z";
- case 0x00dc: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAG@Z";
- case 0x00dd: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAH@Z";
- case 0x00de: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAI@Z";
- case 0x00df: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAJ@Z";
- case 0x00e0: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAK@Z";
- case 0x00e1: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAM@Z";
- case 0x00e2: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAN@Z";
- case 0x00e3: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAO@Z";
- case 0x00e4: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAPEAX@Z";
- case 0x00e5: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_J@Z";
- case 0x00e6: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_K@Z";
- case 0x00e7: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_N@Z";
- case 0x00e8: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z";
- case 0x00e9: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z";
- case 0x00ea: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z";
- case 0x00eb: return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z";
- case 0x00ec: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAF@Z";
- case 0x00ed: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAG@Z";
- case 0x00ee: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAH@Z";
- case 0x00ef: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAI@Z";
- case 0x00f0: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAJ@Z";
- case 0x00f1: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAK@Z";
- case 0x00f2: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAM@Z";
- case 0x00f3: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAN@Z";
- case 0x00f4: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAO@Z";
- case 0x00f5: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAPEAX@Z";
- case 0x00f6: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_J@Z";
- case 0x00f7: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_K@Z";
- case 0x00f8: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_N@Z";
- case 0x00f9: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z";
- case 0x00fa: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z";
- case 0x00fb: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z";
- case 0x00fc: return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z";
- case 0x00fd: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@F@Z";
- case 0x00fe: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@G@Z";
- case 0x00ff: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z";
- case 0x0100: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@I@Z";
- case 0x0101: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@J@Z";
- case 0x0102: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@K@Z";
- case 0x0103: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@M@Z";
- case 0x0104: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@N@Z";
- case 0x0105: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@O@Z";
- case 0x0106: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z";
- case 0x0107: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z";
- case 0x0108: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z";
- case 0x0109: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z";
- case 0x010a: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEBX@Z";
- case 0x010b: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_J@Z";
- case 0x010c: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_K@Z";
- case 0x010d: return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_N@Z";
- case 0x010e: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@F@Z";
- case 0x010f: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@G@Z";
- case 0x0110: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@H@Z";
- case 0x0111: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@I@Z";
- case 0x0112: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@J@Z";
- case 0x0113: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@K@Z";
- case 0x0114: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@M@Z";
- case 0x0115: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@N@Z";
- case 0x0116: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@O@Z";
- case 0x0117: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z";
- case 0x0118: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z";
- case 0x0119: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z";
- case 0x011a: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z";
- case 0x011b: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEBX@Z";
- case 0x011c: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_J@Z";
- case 0x011d: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_K@Z";
- case 0x011e: return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_N@Z";
- case 0x011f: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@F@Z";
- case 0x0120: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@G@Z";
- case 0x0121: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@H@Z";
- case 0x0122: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@I@Z";
- case 0x0123: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@J@Z";
- case 0x0124: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@K@Z";
- case 0x0125: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@M@Z";
- case 0x0126: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@N@Z";
- case 0x0127: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@O@Z";
- case 0x0128: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z";
- case 0x0129: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z";
- case 0x012a: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z";
- case 0x012b: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z";
- case 0x012c: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEBX@Z";
- case 0x012d: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_J@Z";
- case 0x012e: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_K@Z";
- case 0x012f: return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_N@Z";
- case 0x0130: return "??7ios_base@std@@QEBA_NXZ";
- case 0x0131: return "??Bid@locale@std@@QEAA_KXZ";
- case 0x0132: return "??Bios_base@std@@QEBA_NXZ";
- case 0x0133: return "??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@";
- case 0x0134: return "??_7?$basic_ios@GU?$char_traits@G@std@@@std@@6B@";
- case 0x0135: return "??_7?$basic_ios@_WU?$char_traits@_W@std@@@std@@6B@";
- case 0x0136: return "??_7?$basic_iostream@DU?$char_traits@D@std@@@std@@6B@";
- case 0x0137: return "??_7?$basic_iostream@GU?$char_traits@G@std@@@std@@6B@";
- case 0x0138: return "??_7?$basic_iostream@_WU?$char_traits@_W@std@@@std@@6B@";
- case 0x0139: return "??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@";
- case 0x013a: return "??_7?$basic_istream@GU?$char_traits@G@std@@@std@@6B@";
- case 0x013b: return "??_7?$basic_istream@_WU?$char_traits@_W@std@@@std@@6B@";
- case 0x013c: return "??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@";
- case 0x013d: return "??_7?$basic_ostream@GU?$char_traits@G@std@@@std@@6B@";
- case 0x013e: return "??_7?$basic_ostream@_WU?$char_traits@_W@std@@@std@@6B@";
- case 0x013f: return "??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@";
- case 0x0140: return "??_7?$basic_streambuf@GU?$char_traits@G@std@@@std@@6B@";
- case 0x0141: return "??_7?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@6B@";
- case 0x0142: return "??_7?$codecvt@DDH@std@@6B@";
- case 0x0143: return "??_7?$codecvt@GDH@std@@6B@";
- case 0x0144: return "??_7?$codecvt@_WDH@std@@6B@";
- case 0x0145: return "??_7?$ctype@D@std@@6B@";
- case 0x0146: return "??_7?$ctype@G@std@@6B@";
- case 0x0147: return "??_7?$ctype@_W@std@@6B@";
- case 0x0148: return "??_7?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@";
- case 0x0149: return "??_7?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@6B@";
- case 0x014a: return "??_7?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@6B@";
- case 0x014b: return "??_7?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@";
- case 0x014c: return "??_7?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@6B@";
- case 0x014d: return "??_7?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@6B@";
- case 0x014e: return "??_7?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@";
- case 0x014f: return "??_7?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@6B@";
- case 0x0150: return "??_7?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@6B@";
- case 0x0151: return "??_7?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@6B@";
- case 0x0152: return "??_7?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@6B@";
- case 0x0153: return "??_7?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@6B@";
- case 0x0154: return "??_7_Facet_base@std@@6B@";
- case 0x0155: return "??_7_Locimp@locale@std@@6B@";
- case 0x0156: return "??_7_Pad@std@@6B@";
- case 0x0157: return "??_7codecvt_base@std@@6B@";
- case 0x0158: return "??_7ctype_base@std@@6B@";
- case 0x0159: return "??_7facet@locale@std@@6B@";
- case 0x015a: return "??_7ios_base@std@@6B@";
- case 0x015b: return "??_7time_base@std@@6B@";
- case 0x015c: return "??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@";
- case 0x015d: return "??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@";
- case 0x015e: return "??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@";
- case 0x015f: return "??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@";
- case 0x0160: return "??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_istream@_WU?$char_traits@_W@std@@@1@@";
- case 0x0161: return "??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_ostream@_WU?$char_traits@_W@std@@@1@@";
- case 0x0162: return "??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@";
- case 0x0163: return "??_8?$basic_istream@GU?$char_traits@G@std@@@std@@7B@";
- case 0x0164: return "??_8?$basic_istream@_WU?$char_traits@_W@std@@@std@@7B@";
- case 0x0165: return "??_8?$basic_ostream@DU?$char_traits@D@std@@@std@@7B@";
- case 0x0166: return "??_8?$basic_ostream@GU?$char_traits@G@std@@@std@@7B@";
- case 0x0167: return "??_8?$basic_ostream@_WU?$char_traits@_W@std@@@std@@7B@";
- case 0x0168: return "??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
- case 0x0169: return "??_D?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
- case 0x016a: return "??_D?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
- case 0x016b: return "??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
- case 0x016c: return "??_D?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
- case 0x016d: return "??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
- case 0x016e: return "??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
- case 0x016f: return "??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
- case 0x0170: return "??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
- case 0x0171: return "??_F?$codecvt@DDH@std@@QEAAXXZ";
- case 0x0172: return "??_F?$codecvt@GDH@std@@QEAAXXZ";
- case 0x0173: return "??_F?$codecvt@_WDH@std@@QEAAXXZ";
- case 0x0174: return "??_F?$ctype@D@std@@QEAAXXZ";
- case 0x0175: return "??_F?$ctype@G@std@@QEAAXXZ";
- case 0x0176: return "??_F?$ctype@_W@std@@QEAAXXZ";
- case 0x0177: return "??_F?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAAXXZ";
- case 0x0178: return "??_F?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAAXXZ";
- case 0x0179: return "??_F?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAAXXZ";
- case 0x017a: return "??_F?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAAXXZ";
- case 0x017b: return "??_F?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAAXXZ";
- case 0x017c: return "??_F?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAAXXZ";
- case 0x017d: return "??_F?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAAXXZ";
- case 0x017e: return "??_F?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAAXXZ";
- case 0x017f: return "??_F?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAAXXZ";
- case 0x0180: return "??_F?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEAAXXZ";
- case 0x0181: return "??_F?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEAAXXZ";
- case 0x0182: return "??_F?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEAAXXZ";
- case 0x0183: return "??_F_Locinfo@std@@QEAAXXZ";
- case 0x0184: return "??_F_Timevec@std@@QEAAXXZ";
- case 0x0185: return "??_Fcodecvt_base@std@@QEAAXXZ";
- case 0x0186: return "??_Fctype_base@std@@QEAAXXZ";
- case 0x0187: return "??_Ffacet@locale@std@@QEAAXXZ";
- case 0x0188: return "??_Fid@locale@std@@QEAAXXZ";
- case 0x0189: return "??_Ftime_base@std@@QEAAXXZ";
- case 0x018a: return "?GetNextAsyncId@platform@details@Concurrency@@YAIXZ";
- case 0x018b: return "?NFS_Allocate@details@Concurrency@@YAPEAX_K0PEAX@Z";
- case 0x018c: return "?NFS_Free@details@Concurrency@@YAXPEAX@Z";
- case 0x018d: return "?NFS_GetLineSize@details@Concurrency@@YA_KXZ";
- case 0x018e: return "?_10@placeholders@std@@3V?$_Ph@$09@2@A";
- case 0x018f: return "?_11@placeholders@std@@3V?$_Ph@$0L@@2@A";
- case 0x0190: return "?_12@placeholders@std@@3V?$_Ph@$0M@@2@A";
- case 0x0191: return "?_13@placeholders@std@@3V?$_Ph@$0N@@2@A";
- case 0x0192: return "?_14@placeholders@std@@3V?$_Ph@$0O@@2@A";
- case 0x0193: return "?_15@placeholders@std@@3V?$_Ph@$0P@@2@A";
- case 0x0194: return "?_16@placeholders@std@@3V?$_Ph@$0BA@@2@A";
- case 0x0195: return "?_17@placeholders@std@@3V?$_Ph@$0BB@@2@A";
- case 0x0196: return "?_18@placeholders@std@@3V?$_Ph@$0BC@@2@A";
- case 0x0197: return "?_19@placeholders@std@@3V?$_Ph@$0BD@@2@A";
- case 0x0198: return "?_1@placeholders@std@@3V?$_Ph@$00@2@A";
- case 0x0199: return "?_20@placeholders@std@@3V?$_Ph@$0BE@@2@A";
- case 0x019a: return "?_2@placeholders@std@@3V?$_Ph@$01@2@A";
- case 0x019b: return "?_3@placeholders@std@@3V?$_Ph@$02@2@A";
- case 0x019c: return "?_4@placeholders@std@@3V?$_Ph@$03@2@A";
- case 0x019d: return "?_5@placeholders@std@@3V?$_Ph@$04@2@A";
- case 0x019e: return "?_6@placeholders@std@@3V?$_Ph@$05@2@A";
- case 0x019f: return "?_7@placeholders@std@@3V?$_Ph@$06@2@A";
- case 0x01a0: return "?_8@placeholders@std@@3V?$_Ph@$07@2@A";
- case 0x01a1: return "?_9@placeholders@std@@3V?$_Ph@$08@2@A";
- case 0x01a2: return "?_Addcats@_Locinfo@std@@QEAAAEAV12@HPEBD@Z";
- case 0x01a3: return "?_Addfac@_Locimp@locale@std@@AEAAXPEAVfacet@23@_K@Z";
- case 0x01a4: return "?_Addstd@ios_base@std@@SAXPEAV12@@Z";
- case 0x01a5: return "?_Advance@_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAAXXZ";
- case 0x01a6: return "?_Assign@_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAAXAEBV123@@Z";
- case 0x01a7: return "?_Atexit@@YAXP6AXXZ@Z";
- case 0x01a8: return "?_BADOFF@std@@3_JB";
- case 0x01a9: return "?_Byte_reverse_table@details@Concurrency@@3QBEB";
- case 0x01aa: return "?_C_str@?$_Yarn@D@std@@QEBAPEBDXZ";
- case 0x01ab: return "?_C_str@?$_Yarn@_W@std@@QEBAPEB_WXZ";
- case 0x01ac: return "?_Callfns@ios_base@std@@AEAAXW4event@12@@Z";
- case 0x01ad: return "?_Clocptr@_Locimp@locale@std@@0PEAV123@EA";
- case 0x01ae: return "?_Close_dir@sys@tr2@std@@YAXPEAX@Z";
- case 0x01af: return "?_Copy_file@sys@tr2@std@@YAHPEBD0_N@Z";
- case 0x01b0: return "?_Copy_file@sys@tr2@std@@YAHPEB_W0_N@Z";
- case 0x01b1: return "?_Current_get@sys@tr2@std@@YAPEADAEAY0BAE@D@Z";
- case 0x01b2: return "?_Current_get@sys@tr2@std@@YAPEA_WAEAY0BAE@_W@Z";
- case 0x01b3: return "?_Current_set@sys@tr2@std@@YA_NPEBD@Z";
- case 0x01b4: return "?_Current_set@sys@tr2@std@@YA_NPEB_W@Z";
- case 0x01b5: return "?_Decref@facet@locale@std@@UEAAPEAV_Facet_base@3@XZ";
- case 0x01b6: return "?_Donarrow@?$ctype@G@std@@IEBADGD@Z";
- case 0x01b7: return "?_Donarrow@?$ctype@_W@std@@IEBAD_WD@Z";
- case 0x01b8: return "?_Dowiden@?$ctype@G@std@@IEBAGD@Z";
- case 0x01b9: return "?_Dowiden@?$ctype@_W@std@@IEBA_WD@Z";
- case 0x01ba: return "?_Empty@?$_Yarn@D@std@@QEBA_NXZ";
- case 0x01bb: return "?_Empty@?$_Yarn@_W@std@@QEBA_NXZ";
- case 0x01bc: return "?_Equivalent@sys@tr2@std@@YAHPEBD0@Z";
- case 0x01bd: return "?_Equivalent@sys@tr2@std@@YAHPEB_W0@Z";
- case 0x01be: return "?_Ffmt@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAPEADPEADDH@Z";
- case 0x01bf: return "?_Ffmt@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAPEADPEADDH@Z";
- case 0x01c0: return "?_Ffmt@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAPEADPEADDH@Z";
- case 0x01c1: return "?_File_size@sys@tr2@std@@YA_KPEBD@Z";
- case 0x01c2: return "?_File_size@sys@tr2@std@@YA_KPEB_W@Z";
- case 0x01c3: return "?_Findarr@ios_base@std@@AEAAAEAU_Iosarray@12@H@Z";
- case 0x01c4: return "?_Fiopen@std@@YAPEAU_iobuf@@PEBDHH@Z";
- case 0x01c5: return "?_Fiopen@std@@YAPEAU_iobuf@@PEBGHH@Z";
- case 0x01c6: return "?_Fiopen@std@@YAPEAU_iobuf@@PEB_WHH@Z";
- case 0x01c7: return "?_Fput@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEBD_K333@Z";
- case 0x01c8: return "?_Fput@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEBD_K333@Z";
- case 0x01c9: return "?_Fput@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBD_K444@Z";
- case 0x01ca: return "?_Future_error_map@std@@YAPEBDH@Z";
- case 0x01cb: return "?_GetCombinableSize@details@Concurrency@@YA_KXZ";
- case 0x01cc: return "?_Getcat@?$codecvt@DDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01cd: return "?_Getcat@?$codecvt@GDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01ce: return "?_Getcat@?$codecvt@_WDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01cf: return "?_Getcat@?$ctype@D@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01d0: return "?_Getcat@?$ctype@G@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01d1: return "?_Getcat@?$ctype@_W@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01d2: return "?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01d3: return "?_Getcat@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01d4: return "?_Getcat@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01d5: return "?_Getcat@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01d6: return "?_Getcat@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01d7: return "?_Getcat@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01d8: return "?_Getcat@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01d9: return "?_Getcat@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01da: return "?_Getcat@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01db: return "?_Getcat@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01dc: return "?_Getcat@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01dd: return "?_Getcat@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
- case 0x01de: return "?_Getcat@facet@locale@std@@SA_KPEAPEBV123@PEBV23@@Z";
- case 0x01df: return "?_Getcoll@_Locinfo@std@@QEBA?AU_Collvec@@XZ";
- case 0x01e0: return "?_Getctype@_Locinfo@std@@QEBA?AU_Ctypevec@@XZ";
- case 0x01e1: return "?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ";
- case 0x01e2: return "?_Getdateorder@_Locinfo@std@@QEBAHXZ";
- case 0x01e3: return "?_Getdays@_Locinfo@std@@QEBAPEBDXZ";
- case 0x01e4: return "?_Getfalse@_Locinfo@std@@QEBAPEBDXZ";
- case 0x01e5: return "?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1AEAVios_base@2@PEAH@Z";
- case 0x01e6: return "?_Getffld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@1AEAVios_base@2@PEAH@Z";
- case 0x01e7: return "?_Getffld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@1AEAVios_base@2@PEAH@Z";
- case 0x01e8: return "?_Getffldx@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1AEAVios_base@2@PEAH@Z";
- case 0x01e9: return "?_Getffldx@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@1AEAVios_base@2@PEAH@Z";
- case 0x01ea: return "?_Getffldx@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@1AEAVios_base@2@PEAH@Z";
- case 0x01eb: return "?_Getfmt@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD@Z";
- case 0x01ec: return "?_Getfmt@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD@Z";
- case 0x01ed: return "?_Getfmt@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD@Z";
- case 0x01ee: return "?_Getgloballocale@locale@std@@CAPEAV_Locimp@12@XZ";
- case 0x01ef: return "?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@1HAEBVlocale@2@@Z";
- case 0x01f0: return "?_Getifld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@1HAEBVlocale@2@@Z";
- case 0x01f1: return "?_Getifld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@1HAEBVlocale@2@@Z";
- case 0x01f2: return "?_Getint@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@0HHAEAHAEBV?$ctype@D@2@@Z";
- case 0x01f3: return "?_Getint@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@0HHAEAHAEBV?$ctype@G@2@@Z";
- case 0x01f4: return "?_Getint@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@0HHAEAHAEBV?$ctype@_W@2@@Z";
- case 0x01f5: return "?_Getlconv@_Locinfo@std@@QEBAPEBUlconv@@XZ";
- case 0x01f6: return "?_Getmonths@_Locinfo@std@@QEBAPEBDXZ";
- case 0x01f7: return "?_Getname@_Locinfo@std@@QEBAPEBDXZ";
- case 0x01f8: return "?_Getpfirst@_Container_base12@std@@QEBAPEAPEAU_Iterator_base12@2@XZ";
- case 0x01f9: return "?_Getptr@_Timevec@std@@QEBAPEAXXZ";
- case 0x01fa: return "?_Gettnames@_Locinfo@std@@QEBA?AV_Timevec@2@XZ";
- case 0x01fb: return "?_Gettrue@_Locinfo@std@@QEBAPEBDXZ";
- case 0x01fc: return "?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ";
- case 0x01fd: return "?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ";
- case 0x01fe: return "?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ";
- case 0x01ff: return "?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
- case 0x0200: return "?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
- case 0x0201: return "?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ";
- case 0x0202: return "?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
- case 0x0203: return "?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
- case 0x0204: return "?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ";
- case 0x0205: return "?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
- case 0x0206: return "?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
- case 0x0207: return "?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ";
- case 0x0208: return "?_Id_cnt@id@locale@std@@0HA";
- case 0x0209: return "?_Ifmt@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAPEADPEADPEBDH@Z";
- case 0x020a: return "?_Ifmt@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAPEADPEADPEBDH@Z";
- case 0x020b: return "?_Ifmt@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAPEADPEADPEBDH@Z";
- case 0x020c: return "?_Incref@facet@locale@std@@UEAAXXZ";
- case 0x020d: return "?_Index@ios_base@std@@0HA";
- case 0x020e: return "?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAPEAD0PEAH001@Z";
- case 0x020f: return "?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ";
- case 0x0210: return "?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAPEAG0PEAH001@Z";
- case 0x0211: return "?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXXZ";
- case 0x0212: return "?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAPEA_W0PEAH001@Z";
- case 0x0213: return "?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXXZ";
- case 0x0214: return "?_Init@?$codecvt@DDH@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x0215: return "?_Init@?$codecvt@GDH@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x0216: return "?_Init@?$codecvt@_WDH@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x0217: return "?_Init@?$ctype@D@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x0218: return "?_Init@?$ctype@G@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x0219: return "?_Init@?$ctype@_W@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x021a: return "?_Init@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x021b: return "?_Init@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x021c: return "?_Init@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x021d: return "?_Init@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x021e: return "?_Init@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x021f: return "?_Init@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x0220: return "?_Init@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x0221: return "?_Init@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x0222: return "?_Init@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x0223: return "?_Init@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x0224: return "?_Init@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x0225: return "?_Init@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
- case 0x0226: return "?_Init@ios_base@std@@IEAAXXZ";
- case 0x0227: return "?_Init@locale@std@@CAPEAV_Locimp@12@_N@Z";
- case 0x0228: return "?_Init_cnt@Init@ios_base@std@@0HA";
- case 0x0229: return "?_Init_cnt@_UShinit@std@@0HA";
- case 0x022a: return "?_Init_cnt@_Winit@std@@0HA";
- case 0x022b: return "?_Init_cnt_func@Init@ios_base@std@@CAAEAHXZ";
- case 0x022c: return "?_Init_ctor@Init@ios_base@std@@CAXPEAV123@@Z";
- case 0x022d: return "?_Init_dtor@Init@ios_base@std@@CAXPEAV123@@Z";
- case 0x022e: return "?_Init_locks_ctor@_Init_locks@std@@CAXPEAV12@@Z";
- case 0x022f: return "?_Init_locks_dtor@_Init_locks@std@@CAXPEAV12@@Z";
- case 0x0230: return "?_Internal_assign@_Concurrent_vector_base_v4@details@Concurrency@@IEAAXAEBV123@_KP6AXPEAX1@ZP6AX2PEBX1@Z5@Z";
- case 0x0231: return "?_Internal_capacity@_Concurrent_vector_base_v4@details@Concurrency@@IEBA_KXZ";
- case 0x0232: return "?_Internal_clear@_Concurrent_vector_base_v4@details@Concurrency@@IEAA_KP6AXPEAX_K@Z@Z";
- case 0x0233: return "?_Internal_compact@_Concurrent_vector_base_v4@details@Concurrency@@IEAAPEAX_KPEAXP6AX10@ZP6AX1PEBX0@Z@Z";
- case 0x0234: return "?_Internal_copy@_Concurrent_vector_base_v4@details@Concurrency@@IEAAXAEBV123@_KP6AXPEAXPEBX1@Z@Z";
- case 0x0235: return "?_Internal_empty@_Concurrent_queue_base_v4@details@Concurrency@@IEBA_NXZ";
- case 0x0236: return "?_Internal_finish_clear@_Concurrent_queue_base_v4@details@Concurrency@@IEAAXXZ";
- case 0x0237: return "?_Internal_grow_by@_Concurrent_vector_base_v4@details@Concurrency@@IEAA_K_K0P6AXPEAXPEBX0@Z2@Z";
- case 0x0238: return "?_Internal_grow_to_at_least_with_result@_Concurrent_vector_base_v4@details@Concurrency@@IEAA_K_K0P6AXPEAXPEBX0@Z2@Z";
- case 0x0239: return "?_Internal_move_push@_Concurrent_queue_base_v4@details@Concurrency@@IEAAXPEAX@Z";
- case 0x023a: return "?_Internal_pop_if_present@_Concurrent_queue_base_v4@details@Concurrency@@IEAA_NPEAX@Z";
- case 0x023b: return "?_Internal_push@_Concurrent_queue_base_v4@details@Concurrency@@IEAAXPEBX@Z";
- case 0x023c: return "?_Internal_push_back@_Concurrent_vector_base_v4@details@Concurrency@@IEAAPEAX_KAEA_K@Z";
- case 0x023d: return "?_Internal_reserve@_Concurrent_vector_base_v4@details@Concurrency@@IEAAX_K00@Z";
- case 0x023e: return "?_Internal_resize@_Concurrent_vector_base_v4@details@Concurrency@@IEAAX_K00P6AXPEAX0@ZP6AX1PEBX0@Z3@Z";
- case 0x023f: return "?_Internal_size@_Concurrent_queue_base_v4@details@Concurrency@@IEBA_KXZ";
- case 0x0240: return "?_Internal_swap@_Concurrent_queue_base_v4@details@Concurrency@@IEAAXAEAV123@@Z";
- case 0x0241: return "?_Internal_swap@_Concurrent_vector_base_v4@details@Concurrency@@IEAAXAEAV123@@Z";
- case 0x0242: return "?_Internal_throw_exception@_Concurrent_queue_base_v4@details@Concurrency@@IEBAXXZ";
- case 0x0243: return "?_Internal_throw_exception@_Concurrent_vector_base_v4@details@Concurrency@@IEBAX_K@Z";
- case 0x0244: return "?_Ios_base_dtor@ios_base@std@@CAXPEAV12@@Z";
- case 0x0245: return "?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z";
- case 0x0246: return "?_Ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z";
- case 0x0247: return "?_Ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z";
- case 0x0248: return "?_Iput@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEAD_K@Z";
- case 0x0249: return "?_Iput@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEAD_K@Z";
- case 0x024a: return "?_Iput@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEAD_K@Z";
- case 0x024b: return "?_Last_write_time@sys@tr2@std@@YAXPEBD_J@Z";
- case 0x024c: return "?_Last_write_time@sys@tr2@std@@YAXPEB_W_J@Z";
- case 0x024d: return "?_Last_write_time@sys@tr2@std@@YA_JPEBD@Z";
- case 0x024e: return "?_Last_write_time@sys@tr2@std@@YA_JPEB_W@Z";
- case 0x024f: return "?_Launch@_Pad@std@@QEAAXPEAU_Thrd_imp_t@@@Z";
- case 0x0250: return "?_Link@sys@tr2@std@@YAHPEBD0@Z";
- case 0x0251: return "?_Link@sys@tr2@std@@YAHPEB_W0@Z";
- case 0x0252: return "?_Locimp_Addfac@_Locimp@locale@std@@CAXPEAV123@PEAVfacet@23@_K@Z";
- case 0x0253: return "?_Locimp_ctor@_Locimp@locale@std@@CAXPEAV123@AEBV123@@Z";
- case 0x0254: return "?_Locimp_dtor@_Locimp@locale@std@@CAXPEAV123@@Z";
- case 0x0255: return "?_Locinfo_Addcats@_Locinfo@std@@SAAEAV12@PEAV12@HPEBD@Z";
- case 0x0256: return "?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@HPEBD@Z";
- case 0x0257: return "?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@PEBD@Z";
- case 0x0258: return "?_Locinfo_dtor@_Locinfo@std@@SAXPEAV12@@Z";
- case 0x0259: return "?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAAXXZ";
- case 0x025a: return "?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAAXXZ";
- case 0x025b: return "?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
- case 0x025c: return "?_Lockit_ctor@_Lockit@std@@CAXPEAV12@@Z";
- case 0x025d: return "?_Lockit_ctor@_Lockit@std@@CAXPEAV12@H@Z";
- case 0x025e: return "?_Lockit_ctor@_Lockit@std@@SAXH@Z";
- case 0x025f: return "?_Lockit_dtor@_Lockit@std@@CAXPEAV12@@Z";
- case 0x0260: return "?_Lockit_dtor@_Lockit@std@@SAXH@Z";
- case 0x0261: return "?_Lstat@sys@tr2@std@@YA?AW4file_type@123@PEBDAEAH@Z";
- case 0x0262: return "?_Lstat@sys@tr2@std@@YA?AW4file_type@123@PEB_WAEAH@Z";
- case 0x0263: return "?_MP_Add@std@@YAXQEA_K_K@Z";
- case 0x0264: return "?_MP_Get@std@@YA_KQEA_K@Z";
- case 0x0265: return "?_MP_Mul@std@@YAXQEA_K_K1@Z";
- case 0x0266: return "?_MP_Rem@std@@YAXQEA_K_K@Z";
- case 0x0267: return "?_Make_dir@sys@tr2@std@@YAHPEBD@Z";
- case 0x0268: return "?_Make_dir@sys@tr2@std@@YAHPEB_W@Z";
- case 0x0269: return "?_Makeloc@_Locimp@locale@std@@CAPEAV123@AEBV_Locinfo@3@HPEAV123@PEBV23@@Z";
- case 0x026a: return "?_Makeushloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z";
- case 0x026b: return "?_Makewloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z";
- case 0x026c: return "?_Makexloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z";
- case 0x026d: return "?_Mtx_delete@threads@stdext@@YAXPEAX@Z";
- case 0x026e: return "?_Mtx_lock@threads@stdext@@YAXPEAX@Z";
- case 0x026f: return "?_Mtx_new@threads@stdext@@YAXAEAPEAX@Z";
- case 0x0270: return "?_Mtx_unlock@threads@stdext@@YAXPEAX@Z";
- case 0x0271: return "?_New_Locimp@_Locimp@locale@std@@CAPEAV123@AEBV123@@Z";
- case 0x0272: return "?_New_Locimp@_Locimp@locale@std@@CAPEAV123@_N@Z";
- case 0x0273: return "?_Open_dir@sys@tr2@std@@YAPEAXAEAY0BAE@DPEBDAEAHAEAW4file_type@123@@Z";
- case 0x0274: return "?_Open_dir@sys@tr2@std@@YAPEAXAEAY0BAE@_WPEB_WAEAHAEAW4file_type@123@@Z";
- case 0x0275: return "?_Orphan_all@_Container_base0@std@@QEAAXXZ";
- case 0x0276: return "?_Orphan_all@_Container_base12@std@@QEAAXXZ";
- case 0x0277: return "?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
- case 0x0278: return "?_Osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
- case 0x0279: return "?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
- case 0x027a: return "?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ";
- case 0x027b: return "?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ";
- case 0x027c: return "?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ";
- case 0x027d: return "?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
- case 0x027e: return "?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
- case 0x027f: return "?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_WXZ";
- case 0x0280: return "?_Ptr_cerr@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA";
- case 0x0281: return "?_Ptr_cin@std@@3PEAV?$basic_istream@DU?$char_traits@D@std@@@1@EA";
- case 0x0282: return "?_Ptr_clog@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA";
- case 0x0283: return "?_Ptr_cout@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA";
- case 0x0284: return "?_Ptr_wcerr@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA";
- case 0x0285: return "?_Ptr_wcerr@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA";
- case 0x0286: return "?_Ptr_wcin@std@@3PEAV?$basic_istream@GU?$char_traits@G@std@@@1@EA";
- case 0x0287: return "?_Ptr_wcin@std@@3PEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@EA";
- case 0x0288: return "?_Ptr_wclog@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA";
- case 0x0289: return "?_Ptr_wclog@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA";
- case 0x028a: return "?_Ptr_wcout@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA";
- case 0x028b: return "?_Ptr_wcout@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA";
- case 0x028c: return "?_Put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@PEBD_K@Z";
- case 0x028d: return "?_Put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@PEBG_K@Z";
- case 0x028e: return "?_Put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@PEB_W_K@Z";
- case 0x028f: return "?_Raise_handler@std@@3P6AXAEBVexception@stdext@@@ZEA";
- case 0x0290: return "?_Random_device@std@@YAIXZ";
- case 0x0291: return "?_Read_dir@sys@tr2@std@@YAPEADAEAY0BAE@DPEAXAEAW4file_type@123@@Z";
- case 0x0292: return "?_Read_dir@sys@tr2@std@@YAPEA_WAEAY0BAE@_WPEAXAEAW4file_type@123@@Z";
- case 0x0293: return "?_Release@_Pad@std@@QEAAXXZ";
- case 0x0294: return "?_Remove_dir@sys@tr2@std@@YA_NPEBD@Z";
- case 0x0295: return "?_Remove_dir@sys@tr2@std@@YA_NPEB_W@Z";
- case 0x0296: return "?_Rename@sys@tr2@std@@YAHPEBD0@Z";
- case 0x0297: return "?_Rename@sys@tr2@std@@YAHPEB_W0@Z";
- case 0x0298: return "?_Rep@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@D_K@Z";
- case 0x0299: return "?_Rep@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@G_K@Z";
- case 0x029a: return "?_Rep@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@_W_K@Z";
- case 0x029b: return "?_Rethrow_future_exception@std@@YAXVexception_ptr@1@@Z";
- case 0x029c: return "?_Rng_abort@std@@YAXPEBD@Z";
- case 0x029d: return "?_Segment_index_of@_Concurrent_vector_base_v4@details@Concurrency@@KA_K_K@Z";
- case 0x029e: return "?_Setgloballocale@locale@std@@CAXPEAX@Z";
- case 0x029f: return "?_Src@?1??_Getffldx@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
- case 0x02a0: return "?_Src@?1??_Getffldx@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
- case 0x02a1: return "?_Src@?1??_Getffldx@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
- case 0x02a2: return "?_Src@?1??_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@3@1HAEBVlocale@3@@Z@4QBDB";
- case 0x02a3: return "?_Src@?1??_Getifld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@3@1HAEBVlocale@3@@Z@4QBDB";
- case 0x02a4: return "?_Src@?1??_Getifld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@3@1HAEBVlocale@3@@Z@4QBDB";
- case 0x02a5: return "?_Src@?3??_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
- case 0x02a6: return "?_Src@?3??_Getffld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
- case 0x02a7: return "?_Src@?3??_Getffld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
- case 0x02a8: return "?_Stat@sys@tr2@std@@YA?AW4file_type@123@PEBDAEAH@Z";
- case 0x02a9: return "?_Stat@sys@tr2@std@@YA?AW4file_type@123@PEB_WAEAH@Z";
- case 0x02aa: return "?_Statvfs@sys@tr2@std@@YA?AUspace_info@123@PEBD@Z";
- case 0x02ab: return "?_Statvfs@sys@tr2@std@@YA?AUspace_info@123@PEB_W@Z";
- case 0x02ac: return "?_Swap_all@_Container_base0@std@@QEAAXAEAU12@@Z";
- case 0x02ad: return "?_Swap_all@_Container_base12@std@@QEAAXAEAU12@@Z";
- case 0x02ae: return "?_Symlink@sys@tr2@std@@YAHPEBD0@Z";
- case 0x02af: return "?_Symlink@sys@tr2@std@@YAHPEB_W0@Z";
- case 0x02b0: return "?_Sync@ios_base@std@@0_NA";
- case 0x02b1: return "?_Syserror_map@std@@YAPEBDH@Z";
- case 0x02b2: return "?_Throw_C_error@std@@YAXH@Z";
- case 0x02b3: return "?_Throw_Cpp_error@std@@YAXH@Z";
- case 0x02b4: return "?_Throw_future_error@std@@YAXAEBVerror_code@1@@Z";
- case 0x02b5: return "?_Throw_lock_error@threads@stdext@@YAXXZ";
- case 0x02b6: return "?_Throw_resource_error@threads@stdext@@YAXXZ";
- case 0x02b7: return "?_Tidy@?$_Yarn@D@std@@AEAAXXZ";
- case 0x02b8: return "?_Tidy@?$_Yarn@_W@std@@AEAAXXZ";
- case 0x02b9: return "?_Tidy@?$ctype@D@std@@IEAAXXZ";
- case 0x02ba: return "?_Tidy@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@AEAAXXZ";
- case 0x02bb: return "?_Tidy@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@AEAAXXZ";
- case 0x02bc: return "?_Tidy@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@AEAAXXZ";
- case 0x02bd: return "?_Tidy@ios_base@std@@AEAAXXZ";
- case 0x02be: return "?_Unlink@sys@tr2@std@@YAHPEBD@Z";
- case 0x02bf: return "?_Unlink@sys@tr2@std@@YAHPEB_W@Z";
- case 0x02c0: return "?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAAXXZ";
- case 0x02c1: return "?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAAXXZ";
- case 0x02c2: return "?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
- case 0x02c3: return "?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ";
- case 0x02c4: return "?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ";
- case 0x02c5: return "?_W_Gettnames@_Locinfo@std@@QEBA?AV_Timevec@2@XZ";
- case 0x02c6: return "?_Winerror_map@std@@YAPEBDH@Z";
- case 0x02c7: return "?_XLgamma@std@@YAMM@Z";
- case 0x02c8: return "?_XLgamma@std@@YANN@Z";
- case 0x02c9: return "?_XLgamma@std@@YAOO@Z";
- case 0x02ca: return "?_Xbad_alloc@std@@YAXXZ";
- case 0x02cb: return "?_Xbad_function_call@std@@YAXXZ";
- case 0x02cc: return "?_Xinvalid_argument@std@@YAXPEBD@Z";
- case 0x02cd: return "?_Xlength_error@std@@YAXPEBD@Z";
- case 0x02ce: return "?_Xout_of_range@std@@YAXPEBD@Z";
- case 0x02cf: return "?_Xoverflow_error@std@@YAXPEBD@Z";
- case 0x02d0: return "?_Xregex_error@std@@YAXW4error_type@regex_constants@1@@Z";
- case 0x02d1: return "?_Xruntime_error@std@@YAXPEBD@Z";
- case 0x02d2: return "?adopt_lock@std@@3Uadopt_lock_t@1@B";
- case 0x02d3: return "?always_noconv@codecvt_base@std@@QEBA_NXZ";
- case 0x02d4: return "?bad@ios_base@std@@QEBA_NXZ";
- case 0x02d5: return "?c_str@?$_Yarn@D@std@@QEBAPEBDXZ";
- case 0x02d6: return "?cancel@agent@Concurrency@@QEAA_NXZ";
- case 0x02d7: return "?cerr@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A";
- case 0x02d8: return "?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A";
- case 0x02d9: return "?classic@locale@std@@SAAEBV12@XZ";
- case 0x02da: return "?classic_table@?$ctype@D@std@@SAPEBFXZ";
- case 0x02db: return "?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z";
- case 0x02dc: return "?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z";
- case 0x02dd: return "?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z";
- case 0x02de: return "?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z";
- case 0x02df: return "?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z";
- case 0x02e0: return "?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z";
- case 0x02e1: return "?clear@ios_base@std@@QEAAXH@Z";
- case 0x02e2: return "?clear@ios_base@std@@QEAAXH_N@Z";
- case 0x02e3: return "?clear@ios_base@std@@QEAAXI@Z";
- case 0x02e4: return "?clog@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A";
- case 0x02e5: return "?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEBV12@@Z";
- case 0x02e6: return "?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEBV12@@Z";
- case 0x02e7: return "?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEBV12@@Z";
- case 0x02e8: return "?copyfmt@ios_base@std@@QEAAAEAV12@AEBV12@@Z";
- case 0x02e9: return "?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A";
- case 0x02ea: return "?date_order@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AW4dateorder@time_base@2@XZ";
- case 0x02eb: return "?date_order@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AW4dateorder@time_base@2@XZ";
- case 0x02ec: return "?date_order@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AW4dateorder@time_base@2@XZ";
- case 0x02ed: return "?defer_lock@std@@3Udefer_lock_t@1@B";
- case 0x02ee: return "?do_always_noconv@?$codecvt@DDH@std@@MEBA_NXZ";
- case 0x02ef: return "?do_always_noconv@?$codecvt@GDH@std@@MEBA_NXZ";
- case 0x02f0: return "?do_always_noconv@?$codecvt@_WDH@std@@MEBA_NXZ";
- case 0x02f1: return "?do_always_noconv@codecvt_base@std@@MEBA_NXZ";
- case 0x02f2: return "?do_date_order@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AW4dateorder@time_base@2@XZ";
- case 0x02f3: return "?do_date_order@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AW4dateorder@time_base@2@XZ";
- case 0x02f4: return "?do_date_order@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AW4dateorder@time_base@2@XZ";
- case 0x02f5: return "?do_encoding@?$codecvt@GDH@std@@MEBAHXZ";
- case 0x02f6: return "?do_encoding@?$codecvt@_WDH@std@@MEBAHXZ";
- case 0x02f7: return "?do_encoding@codecvt_base@std@@MEBAHXZ";
- case 0x02f8: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z";
- case 0x02f9: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z";
- case 0x02fa: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
- case 0x02fb: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z";
- case 0x02fc: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z";
- case 0x02fd: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z";
- case 0x02fe: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z";
- case 0x02ff: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
- case 0x0300: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
- case 0x0301: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
- case 0x0302: return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
- case 0x0303: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z";
- case 0x0304: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z";
- case 0x0305: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
- case 0x0306: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z";
- case 0x0307: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z";
- case 0x0308: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z";
- case 0x0309: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z";
- case 0x030a: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
- case 0x030b: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
- case 0x030c: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
- case 0x030d: return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
- case 0x030e: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z";
- case 0x030f: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z";
- case 0x0310: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
- case 0x0311: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z";
- case 0x0312: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z";
- case 0x0313: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z";
- case 0x0314: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z";
- case 0x0315: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
- case 0x0316: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
- case 0x0317: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
- case 0x0318: return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
- case 0x0319: return "?do_get@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
- case 0x031a: return "?do_get@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
- case 0x031b: return "?do_get@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
- case 0x031c: return "?do_get_date@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x031d: return "?do_get_date@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x031e: return "?do_get_date@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x031f: return "?do_get_monthname@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x0320: return "?do_get_monthname@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x0321: return "?do_get_monthname@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x0322: return "?do_get_time@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x0323: return "?do_get_time@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x0324: return "?do_get_time@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x0325: return "?do_get_weekday@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x0326: return "?do_get_weekday@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x0327: return "?do_get_weekday@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x0328: return "?do_get_year@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x0329: return "?do_get_year@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x032a: return "?do_get_year@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x032b: return "?do_in@?$codecvt@DDH@std@@MEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
- case 0x032c: return "?do_in@?$codecvt@GDH@std@@MEBAHAEAHPEBD1AEAPEBDPEAG3AEAPEAG@Z";
- case 0x032d: return "?do_in@?$codecvt@_WDH@std@@MEBAHAEAHPEBD1AEAPEBDPEA_W3AEAPEA_W@Z";
- case 0x032e: return "?do_is@?$ctype@G@std@@MEBAPEBGPEBG0PEAF@Z";
- case 0x032f: return "?do_is@?$ctype@G@std@@MEBA_NFG@Z";
- case 0x0330: return "?do_is@?$ctype@_W@std@@MEBAPEB_WPEB_W0PEAF@Z";
- case 0x0331: return "?do_is@?$ctype@_W@std@@MEBA_NF_W@Z";
- case 0x0332: return "?do_length@?$codecvt@DDH@std@@MEBAHAEAHPEBD1_K@Z";
- case 0x0333: return "?do_length@?$codecvt@GDH@std@@MEBAHAEAHPEBD1_K@Z";
- case 0x0334: return "?do_length@?$codecvt@_WDH@std@@MEBAHAEAHPEBD1_K@Z";
- case 0x0335: return "?do_max_length@?$codecvt@GDH@std@@MEBAHXZ";
- case 0x0336: return "?do_max_length@?$codecvt@_WDH@std@@MEBAHXZ";
- case 0x0337: return "?do_max_length@codecvt_base@std@@MEBAHXZ";
- case 0x0338: return "?do_narrow@?$ctype@D@std@@MEBADDD@Z";
- case 0x0339: return "?do_narrow@?$ctype@D@std@@MEBAPEBDPEBD0DPEAD@Z";
- case 0x033a: return "?do_narrow@?$ctype@G@std@@MEBADGD@Z";
- case 0x033b: return "?do_narrow@?$ctype@G@std@@MEBAPEBGPEBG0DPEAD@Z";
- case 0x033c: return "?do_narrow@?$ctype@_W@std@@MEBAD_WD@Z";
- case 0x033d: return "?do_narrow@?$ctype@_W@std@@MEBAPEB_WPEB_W0DPEAD@Z";
- case 0x033e: return "?do_out@?$codecvt@DDH@std@@MEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
- case 0x033f: return "?do_out@?$codecvt@GDH@std@@MEBAHAEAHPEBG1AEAPEBGPEAD3AEAPEAD@Z";
- case 0x0340: return "?do_out@?$codecvt@_WDH@std@@MEBAHAEAHPEB_W1AEAPEB_WPEAD3AEAPEAD@Z";
- case 0x0341: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DJ@Z";
- case 0x0342: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DK@Z";
- case 0x0343: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DN@Z";
- case 0x0344: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DO@Z";
- case 0x0345: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEBX@Z";
- case 0x0346: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@D_J@Z";
- case 0x0347: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@D_K@Z";
- case 0x0348: return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@D_N@Z";
- case 0x0349: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GJ@Z";
- case 0x034a: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GK@Z";
- case 0x034b: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GN@Z";
- case 0x034c: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GO@Z";
- case 0x034d: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEBX@Z";
- case 0x034e: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@G_J@Z";
- case 0x034f: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@G_K@Z";
- case 0x0350: return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@G_N@Z";
- case 0x0351: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WJ@Z";
- case 0x0352: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WK@Z";
- case 0x0353: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WN@Z";
- case 0x0354: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WO@Z";
- case 0x0355: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBX@Z";
- case 0x0356: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_W_J@Z";
- case 0x0357: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_W_K@Z";
- case 0x0358: return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_W_N@Z";
- case 0x0359: return "?do_put@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEBUtm@@DD@Z";
- case 0x035a: return "?do_put@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEBUtm@@DD@Z";
- case 0x035b: return "?do_put@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBUtm@@DD@Z";
- case 0x035c: return "?do_scan_is@?$ctype@G@std@@MEBAPEBGFPEBG0@Z";
- case 0x035d: return "?do_scan_is@?$ctype@_W@std@@MEBAPEB_WFPEB_W0@Z";
- case 0x035e: return "?do_scan_not@?$ctype@G@std@@MEBAPEBGFPEBG0@Z";
- case 0x035f: return "?do_scan_not@?$ctype@_W@std@@MEBAPEB_WFPEB_W0@Z";
- case 0x0360: return "?do_tolower@?$ctype@D@std@@MEBADD@Z";
- case 0x0361: return "?do_tolower@?$ctype@D@std@@MEBAPEBDPEADPEBD@Z";
- case 0x0362: return "?do_tolower@?$ctype@G@std@@MEBAGG@Z";
- case 0x0363: return "?do_tolower@?$ctype@G@std@@MEBAPEBGPEAGPEBG@Z";
- case 0x0364: return "?do_tolower@?$ctype@_W@std@@MEBAPEB_WPEA_WPEB_W@Z";
- case 0x0365: return "?do_tolower@?$ctype@_W@std@@MEBA_W_W@Z";
- case 0x0366: return "?do_toupper@?$ctype@D@std@@MEBADD@Z";
- case 0x0367: return "?do_toupper@?$ctype@D@std@@MEBAPEBDPEADPEBD@Z";
- case 0x0368: return "?do_toupper@?$ctype@G@std@@MEBAGG@Z";
- case 0x0369: return "?do_toupper@?$ctype@G@std@@MEBAPEBGPEAGPEBG@Z";
- case 0x036a: return "?do_toupper@?$ctype@_W@std@@MEBAPEB_WPEA_WPEB_W@Z";
- case 0x036b: return "?do_toupper@?$ctype@_W@std@@MEBA_W_W@Z";
- case 0x036c: return "?do_unshift@?$codecvt@DDH@std@@MEBAHAEAHPEAD1AEAPEAD@Z";
- case 0x036d: return "?do_unshift@?$codecvt@GDH@std@@MEBAHAEAHPEAD1AEAPEAD@Z";
- case 0x036e: return "?do_unshift@?$codecvt@_WDH@std@@MEBAHAEAHPEAD1AEAPEAD@Z";
- case 0x036f: return "?do_widen@?$ctype@D@std@@MEBADD@Z";
- case 0x0370: return "?do_widen@?$ctype@D@std@@MEBAPEBDPEBD0PEAD@Z";
- case 0x0371: return "?do_widen@?$ctype@G@std@@MEBAGD@Z";
- case 0x0372: return "?do_widen@?$ctype@G@std@@MEBAPEBDPEBD0PEAG@Z";
- case 0x0373: return "?do_widen@?$ctype@_W@std@@MEBAPEBDPEBD0PEA_W@Z";
- case 0x0374: return "?do_widen@?$ctype@_W@std@@MEBA_WD@Z";
- case 0x0375: return "?done@agent@Concurrency@@IEAA_NXZ";
- case 0x0376: return "?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
- case 0x0377: return "?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
- case 0x0378: return "?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
- case 0x0379: return "?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
- case 0x037a: return "?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
- case 0x037b: return "?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
- case 0x037c: return "?empty@?$_Yarn@D@std@@QEBA_NXZ";
- case 0x037d: return "?empty@locale@std@@SA?AV12@XZ";
- case 0x037e: return "?encoding@codecvt_base@std@@QEBAHXZ";
- case 0x037f: return "?eof@ios_base@std@@QEBA_NXZ";
- case 0x0380: return "?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
- case 0x0381: return "?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
- case 0x0382: return "?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
- case 0x0383: return "?exceptions@ios_base@std@@QEAAXH@Z";
- case 0x0384: return "?exceptions@ios_base@std@@QEAAXI@Z";
- case 0x0385: return "?exceptions@ios_base@std@@QEBAHXZ";
- case 0x0386: return "?fail@ios_base@std@@QEBA_NXZ";
- case 0x0387: return "?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z";
- case 0x0388: return "?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ";
- case 0x0389: return "?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAGG@Z";
- case 0x038a: return "?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGXZ";
- case 0x038b: return "?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA_W_W@Z";
- case 0x038c: return "?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WXZ";
- case 0x038d: return "?flags@ios_base@std@@QEAAHH@Z";
- case 0x038e: return "?flags@ios_base@std@@QEBAHXZ";
- case 0x038f: return "?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ";
- case 0x0390: return "?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ";
- case 0x0391: return "?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ";
- case 0x0392: return "?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z";
- case 0x0393: return "?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z";
- case 0x0394: return "?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z";
- case 0x0395: return "?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QEBA_JXZ";
- case 0x0396: return "?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QEBA_JXZ";
- case 0x0397: return "?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEBA_JXZ";
- case 0x0398: return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAD@Z";
- case 0x0399: return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z";
- case 0x039a: return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@D@Z";
- case 0x039b: return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z";
- case 0x039c: return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z";
- case 0x039d: return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ";
- case 0x039e: return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAG@Z";
- case 0x039f: return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@@Z";
- case 0x03a0: return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@G@Z";
- case 0x03a1: return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z";
- case 0x03a2: return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_JG@Z";
- case 0x03a3: return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ";
- case 0x03a4: return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z";
- case 0x03a5: return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_W@Z";
- case 0x03a6: return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEA_W@Z";
- case 0x03a7: return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z";
- case 0x03a8: return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J_W@Z";
- case 0x03a9: return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
- case 0x03aa: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z";
- case 0x03ab: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z";
- case 0x03ac: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
- case 0x03ad: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z";
- case 0x03ae: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z";
- case 0x03af: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z";
- case 0x03b0: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z";
- case 0x03b1: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
- case 0x03b2: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
- case 0x03b3: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
- case 0x03b4: return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
- case 0x03b5: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z";
- case 0x03b6: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z";
- case 0x03b7: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
- case 0x03b8: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z";
- case 0x03b9: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z";
- case 0x03ba: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z";
- case 0x03bb: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z";
- case 0x03bc: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
- case 0x03bd: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
- case 0x03be: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
- case 0x03bf: return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
- case 0x03c0: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAG@Z";
- case 0x03c1: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAI@Z";
- case 0x03c2: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
- case 0x03c3: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAK@Z";
- case 0x03c4: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAM@Z";
- case 0x03c5: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAN@Z";
- case 0x03c6: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAO@Z";
- case 0x03c7: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
- case 0x03c8: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
- case 0x03c9: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
- case 0x03ca: return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
- case 0x03cb: return "?get@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
- case 0x03cc: return "?get@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD4@Z";
- case 0x03cd: return "?get@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
- case 0x03ce: return "?get@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEBG4@Z";
- case 0x03cf: return "?get@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
- case 0x03d0: return "?get@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEB_W4@Z";
- case 0x03d1: return "?get_date@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03d2: return "?get_date@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03d3: return "?get_date@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03d4: return "?get_monthname@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03d5: return "?get_monthname@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03d6: return "?get_monthname@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03d7: return "?get_new_handler@std@@YAP6AXXZXZ";
- case 0x03d8: return "?get_time@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03d9: return "?get_time@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03da: return "?get_time@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03db: return "?get_weekday@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03dc: return "?get_weekday@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03dd: return "?get_weekday@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03de: return "?get_year@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03df: return "?get_year@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03e0: return "?get_year@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
- case 0x03e1: return "?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z";
- case 0x03e2: return "?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z";
- case 0x03e3: return "?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z";
- case 0x03e4: return "?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_JG@Z";
- case 0x03e5: return "?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z";
- case 0x03e6: return "?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J_W@Z";
- case 0x03e7: return "?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEBA?AVlocale@2@XZ";
- case 0x03e8: return "?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEBA?AVlocale@2@XZ";
- case 0x03e9: return "?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEBA?AVlocale@2@XZ";
- case 0x03ea: return "?getloc@ios_base@std@@QEBA?AVlocale@2@XZ";
- case 0x03eb: return "?global@locale@std@@SA?AV12@AEBV12@@Z";
- case 0x03ec: return "?good@ios_base@std@@QEBA_NXZ";
- case 0x03ed: return "?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
- case 0x03ee: return "?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
- case 0x03ef: return "?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
- case 0x03f0: return "?id@?$codecvt@DDH@std@@2V0locale@2@A";
- case 0x03f1: return "?id@?$codecvt@GDH@std@@2V0locale@2@A";
- case 0x03f2: return "?id@?$codecvt@_WDH@std@@2V0locale@2@A";
- case 0x03f3: return "?id@?$collate@D@std@@2V0locale@2@A";
- case 0x03f4: return "?id@?$collate@G@std@@2V0locale@2@A";
- case 0x03f5: return "?id@?$collate@_W@std@@2V0locale@2@A";
- case 0x03f6: return "?id@?$ctype@D@std@@2V0locale@2@A";
- case 0x03f7: return "?id@?$ctype@G@std@@2V0locale@2@A";
- case 0x03f8: return "?id@?$ctype@_W@std@@2V0locale@2@A";
- case 0x03f9: return "?id@?$messages@D@std@@2V0locale@2@A";
- case 0x03fa: return "?id@?$messages@G@std@@2V0locale@2@A";
- case 0x03fb: return "?id@?$messages@_W@std@@2V0locale@2@A";
- case 0x03fc: return "?id@?$money_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A";
- case 0x03fd: return "?id@?$money_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@2V0locale@2@A";
- case 0x03fe: return "?id@?$money_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@2V0locale@2@A";
- case 0x03ff: return "?id@?$money_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A";
- case 0x0400: return "?id@?$money_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@2V0locale@2@A";
- case 0x0401: return "?id@?$money_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@2V0locale@2@A";
- case 0x0402: return "?id@?$moneypunct@D$00@std@@2V0locale@2@A";
- case 0x0403: return "?id@?$moneypunct@D$0A@@std@@2V0locale@2@A";
- case 0x0404: return "?id@?$moneypunct@G$00@std@@2V0locale@2@A";
- case 0x0405: return "?id@?$moneypunct@G$0A@@std@@2V0locale@2@A";
- case 0x0406: return "?id@?$moneypunct@_W$00@std@@2V0locale@2@A";
- case 0x0407: return "?id@?$moneypunct@_W$0A@@std@@2V0locale@2@A";
- case 0x0408: return "?id@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A";
- case 0x0409: return "?id@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@2V0locale@2@A";
- case 0x040a: return "?id@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@2V0locale@2@A";
- case 0x040b: return "?id@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A";
- case 0x040c: return "?id@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@2V0locale@2@A";
- case 0x040d: return "?id@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@2V0locale@2@A";
- case 0x040e: return "?id@?$numpunct@D@std@@2V0locale@2@A";
- case 0x040f: return "?id@?$numpunct@G@std@@2V0locale@2@A";
- case 0x0410: return "?id@?$numpunct@_W@std@@2V0locale@2@A";
- case 0x0411: return "?id@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A";
- case 0x0412: return "?id@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@2V0locale@2@A";
- case 0x0413: return "?id@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@2V0locale@2@A";
- case 0x0414: return "?id@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@2V0locale@2@A";
- case 0x0415: return "?id@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@2V0locale@2@A";
- case 0x0416: return "?id@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@2V0locale@2@A";
- case 0x0417: return "?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z";
- case 0x0418: return "?ignore@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JG@Z";
- case 0x0419: return "?ignore@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JG@Z";
- case 0x041a: return "?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z";
- case 0x041b: return "?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z";
- case 0x041c: return "?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z";
- case 0x041d: return "?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z";
- case 0x041e: return "?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAXAEBVlocale@2@@Z";
- case 0x041f: return "?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAXAEBVlocale@2@@Z";
- case 0x0420: return "?imbue@ios_base@std@@QEAA?AVlocale@2@AEBV32@@Z";
- case 0x0421: return "?in@?$codecvt@DDH@std@@QEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
- case 0x0422: return "?in@?$codecvt@GDH@std@@QEBAHAEAHPEBD1AEAPEBDPEAG3AEAPEAG@Z";
- case 0x0423: return "?in@?$codecvt@_WDH@std@@QEBAHAEAHPEBD1AEAPEBDPEA_W3AEAPEA_W@Z";
- case 0x0424: return "?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JXZ";
- case 0x0425: return "?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JXZ";
- case 0x0426: return "?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JXZ";
- case 0x0427: return "?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z";
- case 0x0428: return "?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@_N@Z";
- case 0x0429: return "?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@_N@Z";
- case 0x042a: return "?intl@?$moneypunct@D$00@std@@2_NB";
- case 0x042b: return "?intl@?$moneypunct@D$0A@@std@@2_NB";
- case 0x042c: return "?intl@?$moneypunct@G$00@std@@2_NB";
- case 0x042d: return "?intl@?$moneypunct@G$0A@@std@@2_NB";
- case 0x042e: return "?intl@?$moneypunct@_W$00@std@@2_NB";
- case 0x042f: return "?intl@?$moneypunct@_W$0A@@std@@2_NB";
- case 0x0430: return "?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z";
- case 0x0431: return "?ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z";
- case 0x0432: return "?ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z";
- case 0x0433: return "?is@?$ctype@D@std@@QEBAPEBDPEBD0PEAF@Z";
- case 0x0434: return "?is@?$ctype@D@std@@QEBA_NFD@Z";
- case 0x0435: return "?is@?$ctype@G@std@@QEBAPEBGPEBG0PEAF@Z";
- case 0x0436: return "?is@?$ctype@G@std@@QEBA_NFG@Z";
- case 0x0437: return "?is@?$ctype@_W@std@@QEBAPEB_WPEB_W0PEAF@Z";
- case 0x0438: return "?is@?$ctype@_W@std@@QEBA_NF_W@Z";
- case 0x0439: return "?is_current_task_group_canceling@Concurrency@@YA_NXZ";
- case 0x043a: return "?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
- case 0x043b: return "?isfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
- case 0x043c: return "?isfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
- case 0x043d: return "?iword@ios_base@std@@QEAAAEAJH@Z";
- case 0x043e: return "?length@?$codecvt@DDH@std@@QEBAHAEAHPEBD1_K@Z";
- case 0x043f: return "?length@?$codecvt@GDH@std@@QEBAHAEAHPEBD1_K@Z";
- case 0x0440: return "?length@?$codecvt@_WDH@std@@QEBAHAEAHPEBD1_K@Z";
- case 0x0441: return "?max_length@codecvt_base@std@@QEBAHXZ";
- case 0x0442: return "?move@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAX$$QEAV12@@Z";
- case 0x0443: return "?move@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z";
- case 0x0444: return "?move@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAX$$QEAV12@@Z";
- case 0x0445: return "?move@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z";
- case 0x0446: return "?move@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAX$$QEAV12@@Z";
- case 0x0447: return "?move@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z";
- case 0x0448: return "?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADDD@Z";
- case 0x0449: return "?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBADGD@Z";
- case 0x044a: return "?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAD_WD@Z";
- case 0x044b: return "?narrow@?$ctype@D@std@@QEBADDD@Z";
- case 0x044c: return "?narrow@?$ctype@D@std@@QEBAPEBDPEBD0DPEAD@Z";
- case 0x044d: return "?narrow@?$ctype@G@std@@QEBADGD@Z";
- case 0x044e: return "?narrow@?$ctype@G@std@@QEBAPEBGPEBG0DPEAD@Z";
- case 0x044f: return "?narrow@?$ctype@_W@std@@QEBAD_WD@Z";
- case 0x0450: return "?narrow@?$ctype@_W@std@@QEBAPEB_WPEB_W0DPEAD@Z";
- case 0x0451: return "?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA_NXZ";
- case 0x0452: return "?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA_NXZ";
- case 0x0453: return "?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA_NXZ";
- case 0x0454: return "?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
- case 0x0455: return "?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
- case 0x0456: return "?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
- case 0x0457: return "?out@?$codecvt@DDH@std@@QEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
- case 0x0458: return "?out@?$codecvt@GDH@std@@QEBAHAEAHPEBG1AEAPEBGPEAD3AEAPEAD@Z";
- case 0x0459: return "?out@?$codecvt@_WDH@std@@QEBAHAEAHPEB_W1AEAPEB_WPEAD3AEAPEAD@Z";
- case 0x045a: return "?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z";
- case 0x045b: return "?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z";
- case 0x045c: return "?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z";
- case 0x045d: return "?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z";
- case 0x045e: return "?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z";
- case 0x045f: return "?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z";
- case 0x0460: return "?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
- case 0x0461: return "?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
- case 0x0462: return "?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
- case 0x0463: return "?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z";
- case 0x0464: return "?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z";
- case 0x0465: return "?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z";
- case 0x0466: return "?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ";
- case 0x0467: return "?peek@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ";
- case 0x0468: return "?peek@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
- case 0x0469: return "?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
- case 0x046a: return "?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
- case 0x046b: return "?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
- case 0x046c: return "?precision@ios_base@std@@QEAA_J_J@Z";
- case 0x046d: return "?precision@ios_base@std@@QEBA_JXZ";
- case 0x046e: return "?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z";
- case 0x046f: return "?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z";
- case 0x0470: return "?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z";
- case 0x0471: return "?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z";
- case 0x0472: return "?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z";
- case 0x0473: return "?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z";
- case 0x0474: return "?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z";
- case 0x0475: return "?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z";
- case 0x0476: return "?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z";
- case 0x0477: return "?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z";
- case 0x0478: return "?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z";
- case 0x0479: return "?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z";
- case 0x047a: return "?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z";
- case 0x047b: return "?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z";
- case 0x047c: return "?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z";
- case 0x047d: return "?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEAD_J@Z";
- case 0x047e: return "?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEAG_J@Z";
- case 0x047f: return "?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAPEAV12@PEA_W_J@Z";
- case 0x0480: return "?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
- case 0x0481: return "?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHXZ";
- case 0x0482: return "?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAHXZ";
- case 0x0483: return "?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z";
- case 0x0484: return "?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z";
- case 0x0485: return "?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z";
- case 0x0486: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DJ@Z";
- case 0x0487: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DK@Z";
- case 0x0488: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DN@Z";
- case 0x0489: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DO@Z";
- case 0x048a: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEBX@Z";
- case 0x048b: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@D_J@Z";
- case 0x048c: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@D_K@Z";
- case 0x048d: return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@D_N@Z";
- case 0x048e: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GJ@Z";
- case 0x048f: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GK@Z";
- case 0x0490: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GN@Z";
- case 0x0491: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GO@Z";
- case 0x0492: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEBX@Z";
- case 0x0493: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@G_J@Z";
- case 0x0494: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@G_K@Z";
- case 0x0495: return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@G_N@Z";
- case 0x0496: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WJ@Z";
- case 0x0497: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WK@Z";
- case 0x0498: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WN@Z";
- case 0x0499: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WO@Z";
- case 0x049a: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBX@Z";
- case 0x049b: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_W_J@Z";
- case 0x049c: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_W_K@Z";
- case 0x049d: return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_W_N@Z";
- case 0x049e: return "?put@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEBUtm@@DD@Z";
- case 0x049f: return "?put@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@AEAVios_base@2@DPEBUtm@@PEBD3@Z";
- case 0x04a0: return "?put@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEBUtm@@DD@Z";
- case 0x04a1: return "?put@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@AEAVios_base@2@GPEBUtm@@PEBG3@Z";
- case 0x04a2: return "?put@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBUtm@@DD@Z";
- case 0x04a3: return "?put@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@V32@AEAVios_base@2@_WPEBUtm@@PEB_W4@Z";
- case 0x04a4: return "?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z";
- case 0x04a5: return "?putback@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z";
- case 0x04a6: return "?putback@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z";
- case 0x04a7: return "?pword@ios_base@std@@QEAAAEAPEAXH@Z";
- case 0x04a8: return "?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAV32@@Z";
- case 0x04a9: return "?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ";
- case 0x04aa: return "?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PEAV32@@Z";
- case 0x04ab: return "?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@XZ";
- case 0x04ac: return "?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@PEAV32@@Z";
- case 0x04ad: return "?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@XZ";
- case 0x04ae: return "?rdstate@ios_base@std@@QEBAHXZ";
- case 0x04af: return "?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z";
- case 0x04b0: return "?read@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z";
- case 0x04b1: return "?read@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_W_J@Z";
- case 0x04b2: return "?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z";
- case 0x04b3: return "?readsome@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z";
- case 0x04b4: return "?readsome@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z";
- case 0x04b5: return "?register_callback@ios_base@std@@QEAAXP6AXW4event@12@AEAV12@H@ZH@Z";
- case 0x04b6: return "?resetiosflags@std@@YA?AU?$_Smanip@H@1@H@Z";
- case 0x04b7: return "?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
- case 0x04b8: return "?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
- case 0x04b9: return "?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
- case 0x04ba: return "?scan_is@?$ctype@D@std@@QEBAPEBDFPEBD0@Z";
- case 0x04bb: return "?scan_is@?$ctype@G@std@@QEBAPEBGFPEBG0@Z";
- case 0x04bc: return "?scan_is@?$ctype@_W@std@@QEBAPEB_WFPEB_W0@Z";
- case 0x04bd: return "?scan_not@?$ctype@D@std@@QEBAPEBDFPEBD0@Z";
- case 0x04be: return "?scan_not@?$ctype@G@std@@QEBAPEBGFPEBG0@Z";
- case 0x04bf: return "?scan_not@?$ctype@_W@std@@QEBAPEB_WFPEB_W0@Z";
- case 0x04c0: return "?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z";
- case 0x04c1: return "?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z";
- case 0x04c2: return "?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z";
- case 0x04c3: return "?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@Z";
- case 0x04c4: return "?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z";
- case 0x04c5: return "?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z";
- case 0x04c6: return "?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z";
- case 0x04c7: return "?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z";
- case 0x04c8: return "?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z";
- case 0x04c9: return "?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z";
- case 0x04ca: return "?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z";
- case 0x04cb: return "?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z";
- case 0x04cc: return "?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@Z";
- case 0x04cd: return "?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z";
- case 0x04ce: return "?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_JH@Z";
- case 0x04cf: return "?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z";
- case 0x04d0: return "?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z";
- case 0x04d1: return "?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z";
- case 0x04d2: return "?set_new_handler@std@@YAP6AXXZP6AXXZ@Z";
- case 0x04d3: return "?set_rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z";
- case 0x04d4: return "?set_rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@@Z";
- case 0x04d5: return "?set_rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXPEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z";
- case 0x04d6: return "?setbase@std@@YA?AU?$_Smanip@H@1@H@Z";
- case 0x04d7: return "?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAPEAV12@PEAD_J@Z";
- case 0x04d8: return "?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAPEAV12@PEAG_J@Z";
- case 0x04d9: return "?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV12@PEA_W_J@Z";
- case 0x04da: return "?setf@ios_base@std@@QEAAHH@Z";
- case 0x04db: return "?setf@ios_base@std@@QEAAHHH@Z";
- case 0x04dc: return "?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z";
- case 0x04dd: return "?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z";
- case 0x04de: return "?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z";
- case 0x04df: return "?setiosflags@std@@YA?AU?$_Smanip@H@1@H@Z";
- case 0x04e0: return "?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z";
- case 0x04e1: return "?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD0@Z";
- case 0x04e2: return "?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z";
- case 0x04e3: return "?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG0@Z";
- case 0x04e4: return "?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@Z";
- case 0x04e5: return "?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W0@Z";
- case 0x04e6: return "?setprecision@std@@YA?AU?$_Smanip@_J@1@_J@Z";
- case 0x04e7: return "?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z";
- case 0x04e8: return "?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z";
- case 0x04e9: return "?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z";
- case 0x04ea: return "?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z";
- case 0x04eb: return "?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z";
- case 0x04ec: return "?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z";
- case 0x04ed: return "?setstate@ios_base@std@@QEAAXH@Z";
- case 0x04ee: return "?setstate@ios_base@std@@QEAAXH_N@Z";
- case 0x04ef: return "?setstate@ios_base@std@@QEAAXI@Z";
- case 0x04f0: return "?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z";
- case 0x04f1: return "?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
- case 0x04f2: return "?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
- case 0x04f3: return "?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
- case 0x04f4: return "?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z";
- case 0x04f5: return "?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z";
- case 0x04f6: return "?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_J@Z";
- case 0x04f7: return "?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JXZ";
- case 0x04f8: return "?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JXZ";
- case 0x04f9: return "?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JXZ";
- case 0x04fa: return "?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
- case 0x04fb: return "?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
- case 0x04fc: return "?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
- case 0x04fd: return "?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z";
- case 0x04fe: return "?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z";
- case 0x04ff: return "?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z";
- case 0x0500: return "?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z";
- case 0x0501: return "?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z";
- case 0x0502: return "?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z";
- case 0x0503: return "?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEBD_J@Z";
- case 0x0504: return "?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEBG_J@Z";
- case 0x0505: return "?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEB_W_J@Z";
- case 0x0506: return "?start@agent@Concurrency@@QEAA_NXZ";
- case 0x0507: return "?status@agent@Concurrency@@QEAA?AW4agent_status@2@XZ";
- case 0x0508: return "?status_port@agent@Concurrency@@QEAAPEAV?$ISource@W4agent_status@Concurrency@@@2@XZ";
- case 0x0509: return "?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ";
- case 0x050a: return "?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ";
- case 0x050b: return "?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
- case 0x050c: return "?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
- case 0x050d: return "?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
- case 0x050e: return "?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
- case 0x050f: return "?swap@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z";
- case 0x0510: return "?swap@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z";
- case 0x0511: return "?swap@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z";
- case 0x0512: return "?swap@?$basic_iostream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
- case 0x0513: return "?swap@?$basic_iostream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
- case 0x0514: return "?swap@?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z";
- case 0x0515: return "?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
- case 0x0516: return "?swap@?$basic_istream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
- case 0x0517: return "?swap@?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z";
- case 0x0518: return "?swap@?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
- case 0x0519: return "?swap@?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
- case 0x051a: return "?swap@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z";
- case 0x051b: return "?swap@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
- case 0x051c: return "?swap@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
- case 0x051d: return "?swap@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z";
- case 0x051e: return "?swap@ios_base@std@@QEAAXAEAV12@@Z";
- case 0x051f: return "?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ";
- case 0x0520: return "?sync@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAHXZ";
- case 0x0521: return "?sync@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAHXZ";
- case 0x0522: return "?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ";
- case 0x0523: return "?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAHXZ";
- case 0x0524: return "?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ";
- case 0x0525: return "?sync_with_stdio@ios_base@std@@SA_N_N@Z";
- case 0x0526: return "?table@?$ctype@D@std@@QEBAPEBFXZ";
- case 0x0527: return "?table_size@?$ctype@D@std@@2_KB";
- case 0x0528: return "?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ";
- case 0x0529: return "?tellg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@XZ";
- case 0x052a: return "?tellg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ";
- case 0x052b: return "?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ";
- case 0x052c: return "?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@XZ";
- case 0x052d: return "?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@H@2@XZ";
- case 0x052e: return "?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@PEAV32@@Z";
- case 0x052f: return "?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ";
- case 0x0530: return "?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@PEAV32@@Z";
- case 0x0531: return "?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@XZ";
- case 0x0532: return "?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@PEAV32@@Z";
- case 0x0533: return "?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_ostream@_WU?$char_traits@_W@std@@@2@XZ";
- case 0x0534: return "?tolower@?$ctype@D@std@@QEBADD@Z";
- case 0x0535: return "?tolower@?$ctype@D@std@@QEBAPEBDPEADPEBD@Z";
- case 0x0536: return "?tolower@?$ctype@G@std@@QEBAGG@Z";
- case 0x0537: return "?tolower@?$ctype@G@std@@QEBAPEBGPEAGPEBG@Z";
- case 0x0538: return "?tolower@?$ctype@_W@std@@QEBAPEB_WPEA_WPEB_W@Z";
- case 0x0539: return "?tolower@?$ctype@_W@std@@QEBA_W_W@Z";
- case 0x053a: return "?toupper@?$ctype@D@std@@QEBADD@Z";
- case 0x053b: return "?toupper@?$ctype@D@std@@QEBAPEBDPEADPEBD@Z";
- case 0x053c: return "?toupper@?$ctype@G@std@@QEBAGG@Z";
- case 0x053d: return "?toupper@?$ctype@G@std@@QEBAPEBGPEAGPEBG@Z";
- case 0x053e: return "?toupper@?$ctype@_W@std@@QEBAPEB_WPEA_WPEB_W@Z";
- case 0x053f: return "?toupper@?$ctype@_W@std@@QEBA_W_W@Z";
- case 0x0540: return "?try_to_lock@std@@3Utry_to_lock_t@1@B";
- case 0x0541: return "?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ";
- case 0x0542: return "?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ";
- case 0x0543: return "?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ";
- case 0x0544: return "?uncaught_exception@std@@YA_NXZ";
- case 0x0545: return "?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ";
- case 0x0546: return "?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ";
- case 0x0547: return "?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ";
- case 0x0548: return "?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ";
- case 0x0549: return "?unget@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ";
- case 0x054a: return "?unget@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ";
- case 0x054b: return "?unsetf@ios_base@std@@QEAAXH@Z";
- case 0x054c: return "?unshift@?$codecvt@DDH@std@@QEBAHAEAHPEAD1AEAPEAD@Z";
- case 0x054d: return "?unshift@?$codecvt@GDH@std@@QEBAHAEAHPEAD1AEAPEAD@Z";
- case 0x054e: return "?unshift@?$codecvt@_WDH@std@@QEBAHAEAHPEAD1AEAPEAD@Z";
- case 0x054f: return "?wait@agent@Concurrency@@SA?AW4agent_status@2@PEAV12@I@Z";
- case 0x0550: return "?wait_for_all@agent@Concurrency@@SAX_KPEAPEAV12@PEAW4agent_status@2@I@Z";
- case 0x0551: return "?wait_for_one@agent@Concurrency@@SAX_KPEAPEAV12@AEAW4agent_status@2@AEA_KI@Z";
- case 0x0552: return "?wcerr@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A";
- case 0x0553: return "?wcerr@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A";
- case 0x0554: return "?wcin@std@@3V?$basic_istream@GU?$char_traits@G@std@@@1@A";
- case 0x0555: return "?wcin@std@@3V?$basic_istream@_WU?$char_traits@_W@std@@@1@A";
- case 0x0556: return "?wclog@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A";
- case 0x0557: return "?wclog@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A";
- case 0x0558: return "?wcout@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A";
- case 0x0559: return "?wcout@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A";
- case 0x055a: return "?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADD@Z";
- case 0x055b: return "?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGD@Z";
- case 0x055c: return "?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WD@Z";
- case 0x055d: return "?widen@?$ctype@D@std@@QEBADD@Z";
- case 0x055e: return "?widen@?$ctype@D@std@@QEBAPEBDPEBD0PEAD@Z";
- case 0x055f: return "?widen@?$ctype@G@std@@QEBAGD@Z";
- case 0x0560: return "?widen@?$ctype@G@std@@QEBAPEBDPEBD0PEAG@Z";
- case 0x0561: return "?widen@?$ctype@_W@std@@QEBAPEBDPEBD0PEA_W@Z";
- case 0x0562: return "?widen@?$ctype@_W@std@@QEBA_WD@Z";
- case 0x0563: return "?width@ios_base@std@@QEAA_J_J@Z";
- case 0x0564: return "?width@ios_base@std@@QEBA_JXZ";
- case 0x0565: return "?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_J@Z";
- case 0x0566: return "?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEBG_J@Z";
- case 0x0567: return "?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEB_W_J@Z";
- case 0x0568: return "?ws@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@1@AEAV21@@Z";
- case 0x0569: return "?ws@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@1@AEAV21@@Z";
- case 0x056a: return "?ws@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@AEAV21@@Z";
- case 0x056b: return "?xalloc@ios_base@std@@SAHXZ";
- case 0x056c: return "?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z";
- case 0x056d: return "?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_J@Z";
- case 0x056e: return "?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_W_J@Z";
- case 0x056f: return "?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z";
- case 0x0570: return "?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEBG_J@Z";
- case 0x0571: return "?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEB_W_J@Z";
- case 0x0572: return "_Call_once";
- case 0x0573: return "_Call_onceEx";
- case 0x0574: return "_Cnd_broadcast";
- case 0x0575: return "_Cnd_destroy";
- case 0x0576: return "_Cnd_do_broadcast_at_thread_exit";
- case 0x0577: return "_Cnd_init";
- case 0x0578: return "_Cnd_register_at_thread_exit";
- case 0x0579: return "_Cnd_signal";
- case 0x057a: return "_Cnd_timedwait";
- case 0x057b: return "_Cnd_unregister_at_thread_exit";
- case 0x057c: return "_Cnd_wait";
- case 0x057d: return "_Cosh";
- case 0x057e: return "_Denorm";
- case 0x057f: return "_Dint";
- case 0x0580: return "_Dnorm";
- case 0x0581: return "_Do_call";
- case 0x0582: return "_Dscale";
- case 0x0583: return "_Dtento";
- case 0x0584: return "_Dtest";
- case 0x0585: return "_Dunscale";
- case 0x0586: return "_Eps";
- case 0x0587: return "_Exp";
- case 0x0588: return "_FCosh";
- case 0x0589: return "_FDenorm";
- case 0x058a: return "_FDint";
- case 0x058b: return "_FDnorm";
- case 0x058c: return "_FDscale";
- case 0x058d: return "_FDtento";
- case 0x058e: return "_FDtest";
- case 0x058f: return "_FDunscale";
- case 0x0590: return "_FEps";
- case 0x0591: return "_FExp";
- case 0x0592: return "_FInf";
- case 0x0593: return "_FNan";
- case 0x0594: return "_FPlsw";
- case 0x0595: return "_FPmsw";
- case 0x0596: return "_FRteps";
- case 0x0597: return "_FSinh";
- case 0x0598: return "_FSnan";
- case 0x0599: return "_FXbig";
- case 0x059a: return "_FXp_addh";
- case 0x059b: return "_FXp_addx";
- case 0x059c: return "_FXp_getw";
- case 0x059d: return "_FXp_invx";
- case 0x059e: return "_FXp_ldexpx";
- case 0x059f: return "_FXp_movx";
- case 0x05a0: return "_FXp_mulh";
- case 0x05a1: return "_FXp_mulx";
- case 0x05a2: return "_FXp_setn";
- case 0x05a3: return "_FXp_setw";
- case 0x05a4: return "_FXp_sqrtx";
- case 0x05a5: return "_FXp_subx";
- case 0x05a6: return "_FZero";
- case 0x05a7: return "_Getcoll";
- case 0x05a8: return "_Getctype";
- case 0x05a9: return "_Getcvt";
- case 0x05aa: return "_Getdateorder";
- case 0x05ab: return "_Getwctype";
- case 0x05ac: return "_Getwctypes";
- case 0x05ad: return "_Hugeval";
- case 0x05ae: return "_Inf";
- case 0x05af: return "_LCosh";
- case 0x05b0: return "_LDenorm";
- case 0x05b1: return "_LDint";
- case 0x05b2: return "_LDscale";
- case 0x05b3: return "_LDtento";
- case 0x05b4: return "_LDtest";
- case 0x05b5: return "_LDunscale";
- case 0x05b6: return "_LEps";
- case 0x05b7: return "_LExp";
- case 0x05b8: return "_LInf";
- case 0x05b9: return "_LNan";
- case 0x05ba: return "_LPlsw";
- case 0x05bb: return "_LPmsw";
- case 0x05bc: return "_LPoly";
- case 0x05bd: return "_LRteps";
- case 0x05be: return "_LSinh";
- case 0x05bf: return "_LSnan";
- case 0x05c0: return "_LXbig";
- case 0x05c1: return "_LXp_addh";
- case 0x05c2: return "_LXp_addx";
- case 0x05c3: return "_LXp_getw";
- case 0x05c4: return "_LXp_invx";
- case 0x05c5: return "_LXp_ldexpx";
- case 0x05c6: return "_LXp_movx";
- case 0x05c7: return "_LXp_mulh";
- case 0x05c8: return "_LXp_mulx";
- case 0x05c9: return "_LXp_setn";
- case 0x05ca: return "_LXp_setw";
- case 0x05cb: return "_LXp_sqrtx";
- case 0x05cc: return "_LXp_subx";
- case 0x05cd: return "_LZero";
- case 0x05ce: return "_Lock_shared_ptr_spin_lock";
- case 0x05cf: return "_Mbrtowc";
- case 0x05d0: return "_Mtx_clear_owner";
- case 0x05d1: return "_Mtx_current_owns";
- case 0x05d2: return "_Mtx_destroy";
- case 0x05d3: return "_Mtx_getconcrtcs";
- case 0x05d4: return "_Mtx_init";
- case 0x05d5: return "_Mtx_lock";
- case 0x05d6: return "_Mtx_reset_owner";
- case 0x05d7: return "_Mtx_timedlock";
- case 0x05d8: return "_Mtx_trylock";
- case 0x05d9: return "_Mtx_unlock";
- case 0x05da: return "_Mtxdst";
- case 0x05db: return "_Mtxinit";
- case 0x05dc: return "_Mtxlock";
- case 0x05dd: return "_Mtxunlock";
- case 0x05de: return "_Nan";
- case 0x05df: return "_Once";
- case 0x05e0: return "_Plsw";
- case 0x05e1: return "_Pmsw";
- case 0x05e2: return "_Poly";
- case 0x05e3: return "_Rteps";
- case 0x05e4: return "_Sinh";
- case 0x05e5: return "_Snan";
- case 0x05e6: return "_Stod";
- case 0x05e7: return "_Stodx";
- case 0x05e8: return "_Stof";
- case 0x05e9: return "_Stoflt";
- case 0x05ea: return "_Stofx";
- case 0x05eb: return "_Stold";
- case 0x05ec: return "_Stoldx";
- case 0x05ed: return "_Stoll";
- case 0x05ee: return "_Stollx";
- case 0x05ef: return "_Stolx";
- case 0x05f0: return "_Stopfx";
- case 0x05f1: return "_Stoul";
- case 0x05f2: return "_Stoull";
- case 0x05f3: return "_Stoullx";
- case 0x05f4: return "_Stoulx";
- case 0x05f5: return "_Stoxflt";
- case 0x05f6: return "_Strcoll";
- case 0x05f7: return "_Strxfrm";
- case 0x05f8: return "_Thrd_abort";
- case 0x05f9: return "_Thrd_create";
- case 0x05fa: return "_Thrd_current";
- case 0x05fb: return "_Thrd_detach";
- case 0x05fc: return "_Thrd_equal";
- case 0x05fd: return "_Thrd_exit";
- case 0x05fe: return "_Thrd_join";
- case 0x05ff: return "_Thrd_lt";
- case 0x0600: return "_Thrd_sleep";
- case 0x0601: return "_Thrd_start";
- case 0x0602: return "_Thrd_yield";
- case 0x0603: return "_Tolower";
- case 0x0604: return "_Toupper";
- case 0x0605: return "_Towlower";
- case 0x0606: return "_Towupper";
- case 0x0607: return "_Tss_create";
- case 0x0608: return "_Tss_delete";
- case 0x0609: return "_Tss_get";
- case 0x060a: return "_Tss_set";
- case 0x060b: return "_Unlock_shared_ptr_spin_lock";
- case 0x060c: return "_Wcrtomb";
- case 0x060d: return "_Wcscoll";
- case 0x060e: return "_Wcsxfrm";
- case 0x060f: return "_Xbig";
- case 0x0610: return "_Xp_addh";
- case 0x0611: return "_Xp_addx";
- case 0x0612: return "_Xp_getw";
- case 0x0613: return "_Xp_invx";
- case 0x0614: return "_Xp_ldexpx";
- case 0x0615: return "_Xp_movx";
- case 0x0616: return "_Xp_mulh";
- case 0x0617: return "_Xp_mulx";
- case 0x0618: return "_Xp_setn";
- case 0x0619: return "_Xp_setw";
- case 0x061a: return "_Xp_sqrtx";
- case 0x061b: return "_Xp_subx";
- case 0x061c: return "_Xtime_diff_to_millis";
- case 0x061d: return "_Xtime_diff_to_millis2";
- case 0x061e: return "_Xtime_get_ticks";
- case 0x061f: return "_Zero";
- case 0x0620: return "__Wcrtomb_lk";
- case 0x0621: return "xtime_get";
+ switch (i) {
+ case 0x0001:
+ return "??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+ "std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z";
+ case 0x0002:
+ return "??$_Getvals@_W@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+ "std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z";
+ case 0x0003:
+ return "??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@"
+ "_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z";
+ case 0x0004: return "??0?$_Yarn@D@std@@QEAA@AEBV01@@Z";
+ case 0x0005: return "??0?$_Yarn@D@std@@QEAA@PEBD@Z";
+ case 0x0006: return "??0?$_Yarn@D@std@@QEAA@XZ";
+ case 0x0007: return "??0?$_Yarn@_W@std@@QEAA@XZ";
+ case 0x0008: return "??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ";
+ case 0x0009:
+ return "??0?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@DU?$char_traits@D@std@@@1@@Z";
+ case 0x000a: return "??0?$basic_ios@GU?$char_traits@G@std@@@std@@IEAA@XZ";
+ case 0x000b:
+ return "??0?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@GU?$char_traits@G@std@@@1@@Z";
+ case 0x000c: return "??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAA@XZ";
+ case 0x000d:
+ return "??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@_WU?$char_traits@_W@std@@@1@@Z";
+ case 0x000e:
+ return "??0?$basic_iostream@DU?$char_traits@D@std@@@std@@IEAA@$$QEAV01@@Z";
+ case 0x000f:
+ return "??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@DU?$char_traits@D@std@@@1@@Z";
+ case 0x0010:
+ return "??0?$basic_iostream@GU?$char_traits@G@std@@@std@@IEAA@$$QEAV01@@Z";
+ case 0x0011:
+ return "??0?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@GU?$char_traits@G@std@@@1@@Z";
+ case 0x0012:
+ return "??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IEAA@$$QEAV01@@Z";
+ case 0x0013:
+ return "??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@_WU?$char_traits@_W@std@@@1@@Z";
+ case 0x0014:
+ return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@IEAA@$$QEAV01@@Z";
+ case 0x0015:
+ return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@DU?$char_traits@D@std@@@1@_N1@Z";
+ case 0x0016:
+ return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@DU?$char_traits@D@std@@@1@_N@Z";
+ case 0x0017:
+ return "??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@W4_"
+ "Uninitialized@1@@Z";
+ case 0x0018:
+ return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@IEAA@$$QEAV01@@Z";
+ case 0x0019:
+ return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@GU?$char_traits@G@std@@@1@_N1@Z";
+ case 0x001a:
+ return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@GU?$char_traits@G@std@@@1@_N@Z";
+ case 0x001b:
+ return "??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@W4_"
+ "Uninitialized@1@@Z";
+ case 0x001c:
+ return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAA@$$QEAV01@@Z";
+ case 0x001d:
+ return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z";
+ case 0x001e:
+ return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@_WU?$char_traits@_W@std@@@1@_N@Z";
+ case 0x001f:
+ return "??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_"
+ "Uninitialized@1@@Z";
+ case 0x0020:
+ return "??0?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAA@$$QEAV01@@Z";
+ case 0x0021:
+ return "??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@DU?$char_traits@D@std@@@1@_N@Z";
+ case 0x0022:
+ return "??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@W4_"
+ "Uninitialized@1@_N@Z";
+ case 0x0023:
+ return "??0?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAA@$$QEAV01@@Z";
+ case 0x0024:
+ return "??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@GU?$char_traits@G@std@@@1@_N@Z";
+ case 0x0025:
+ return "??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@W4_"
+ "Uninitialized@1@_N@Z";
+ case 0x0026:
+ return "??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAA@$$QEAV01@@Z";
+ case 0x0027:
+ return "??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_"
+ "streambuf@_WU?$char_traits@_W@std@@@1@_N@Z";
+ case 0x0028:
+ return "??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@W4_"
+ "Uninitialized@1@_N@Z";
+ case 0x0029:
+ return "??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@AEBV01@@Z";
+ case 0x002a:
+ return "??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@W4_"
+ "Uninitialized@1@@Z";
+ case 0x002b:
+ return "??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@XZ";
+ case 0x002c:
+ return "??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@AEBV01@@Z";
+ case 0x002d:
+ return "??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@W4_"
+ "Uninitialized@1@@Z";
+ case 0x002e:
+ return "??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@XZ";
+ case 0x002f:
+ return "??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@AEBV01@@Z";
+ case 0x0030:
+ return "??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@W4_"
+ "Uninitialized@1@@Z";
+ case 0x0031:
+ return "??0?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAA@XZ";
+ case 0x0032: return "??0?$codecvt@DDH@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x0033: return "??0?$codecvt@DDH@std@@QEAA@_K@Z";
+ case 0x0034: return "??0?$codecvt@GDH@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x0035: return "??0?$codecvt@GDH@std@@QEAA@_K@Z";
+ case 0x0036: return "??0?$codecvt@_WDH@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x0037: return "??0?$codecvt@_WDH@std@@QEAA@_K@Z";
+ case 0x0038: return "??0?$ctype@D@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x0039: return "??0?$ctype@D@std@@QEAA@PEBF_N_K@Z";
+ case 0x003a: return "??0?$ctype@G@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x003b: return "??0?$ctype@G@std@@QEAA@_K@Z";
+ case 0x003c: return "??0?$ctype@_W@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x003d: return "??0?$ctype@_W@std@@QEAA@_K@Z";
+ case 0x003e:
+ return "??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x003f:
+ return "??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@QEAA@_K@Z";
+ case 0x0040:
+ return "??0?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x0041:
+ return "??0?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@QEAA@_K@Z";
+ case 0x0042:
+ return "??0?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@"
+ "@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x0043:
+ return "??0?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@"
+ "@@std@@QEAA@_K@Z";
+ case 0x0044:
+ return "??0?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x0045:
+ return "??0?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@QEAA@_K@Z";
+ case 0x0046:
+ return "??0?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x0047:
+ return "??0?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@QEAA@_K@Z";
+ case 0x0048:
+ return "??0?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@"
+ "@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x0049:
+ return "??0?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@"
+ "@@std@@QEAA@_K@Z";
+ case 0x004a:
+ return "??0?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@IEAA@PEBD_K@Z";
+ case 0x004b:
+ return "??0?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x004c:
+ return "??0?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@QEAA@_K@Z";
+ case 0x004d:
+ return "??0?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@IEAA@PEBD_K@Z";
+ case 0x004e:
+ return "??0?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x004f:
+ return "??0?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@QEAA@_K@Z";
+ case 0x0050:
+ return "??0?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@IEAA@PEBD_K@Z";
+ case 0x0051:
+ return "??0?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x0052:
+ return "??0?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEAA@_K@Z";
+ case 0x0053:
+ return "??0?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x0054:
+ return "??0?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@QEAA@_K@Z";
+ case 0x0055:
+ return "??0?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@IEAA@PEBD_K@Z";
+ case 0x0056:
+ return "??0?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x0057:
+ return "??0?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@QEAA@_K@Z";
+ case 0x0058:
+ return "??0?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@IEAA@PEBD_K@Z";
+ case 0x0059:
+ return "??0?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEAA@AEBV_Locinfo@1@_K@Z";
+ case 0x005a:
+ return "??0?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEAA@_K@Z";
+ case 0x005b: return "??0Init@ios_base@std@@QEAA@XZ";
+ case 0x005c:
+ return "??0_Concurrent_queue_base_v4@details@Concurrency@@IEAA@_K@Z";
+ case 0x005d:
+ return "??0_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAA@"
+ "AEBV_Concurrent_queue_base_v4@12@@Z";
+ case 0x005e: return "??0_Container_base12@std@@QEAA@AEBU01@@Z";
+ case 0x005f: return "??0_Container_base12@std@@QEAA@XZ";
+ case 0x0060: return "??0_Facet_base@std@@QEAA@AEBV01@@Z";
+ case 0x0061: return "??0_Facet_base@std@@QEAA@XZ";
+ case 0x0062: return "??0_Init_locks@std@@QEAA@XZ";
+ case 0x0063: return "??0_Locimp@locale@std@@AEAA@AEBV012@@Z";
+ case 0x0064: return "??0_Locimp@locale@std@@AEAA@_N@Z";
+ case 0x0065: return "??0_Locinfo@std@@QEAA@HPEBD@Z";
+ case 0x0066: return "??0_Locinfo@std@@QEAA@PEBD@Z";
+ case 0x0067: return "??0_Lockit@std@@QEAA@H@Z";
+ case 0x0068: return "??0_Lockit@std@@QEAA@XZ";
+ case 0x0069: return "??0_Pad@std@@QEAA@AEBV01@@Z";
+ case 0x006a: return "??0_Pad@std@@QEAA@XZ";
+ case 0x006b: return "??0_Runtime_object@details@Concurrency@@QEAA@H@Z";
+ case 0x006c: return "??0_Runtime_object@details@Concurrency@@QEAA@XZ";
+ case 0x006d: return "??0_Timevec@std@@QEAA@AEBV01@@Z";
+ case 0x006e: return "??0_Timevec@std@@QEAA@PEAX@Z";
+ case 0x006f: return "??0_UShinit@std@@QEAA@XZ";
+ case 0x0070: return "??0_Winit@std@@QEAA@XZ";
+ case 0x0071: return "??0agent@Concurrency@@QEAA@AEAVScheduleGroup@1@@Z";
+ case 0x0072: return "??0agent@Concurrency@@QEAA@AEAVScheduler@1@@Z";
+ case 0x0073: return "??0agent@Concurrency@@QEAA@XZ";
+ case 0x0074: return "??0codecvt_base@std@@QEAA@_K@Z";
+ case 0x0075: return "??0ctype_base@std@@QEAA@_K@Z";
+ case 0x0076: return "??0facet@locale@std@@IEAA@_K@Z";
+ case 0x0077: return "??0id@locale@std@@QEAA@_K@Z";
+ case 0x0078: return "??0ios_base@std@@IEAA@XZ";
+ case 0x0079: return "??0time_base@std@@QEAA@_K@Z";
+ case 0x007a: return "??1?$_Yarn@D@std@@QEAA@XZ";
+ case 0x007b: return "??1?$_Yarn@_W@std@@QEAA@XZ";
+ case 0x007c: return "??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ";
+ case 0x007d: return "??1?$basic_ios@GU?$char_traits@G@std@@@std@@UEAA@XZ";
+ case 0x007e: return "??1?$basic_ios@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
+ case 0x007f: return "??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UEAA@XZ";
+ case 0x0080: return "??1?$basic_iostream@GU?$char_traits@G@std@@@std@@UEAA@XZ";
+ case 0x0081:
+ return "??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
+ case 0x0082: return "??1?$basic_istream@DU?$char_traits@D@std@@@std@@UEAA@XZ";
+ case 0x0083: return "??1?$basic_istream@GU?$char_traits@G@std@@@std@@UEAA@XZ";
+ case 0x0084:
+ return "??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
+ case 0x0085: return "??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ";
+ case 0x0086: return "??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UEAA@XZ";
+ case 0x0087:
+ return "??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
+ case 0x0088:
+ return "??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ";
+ case 0x0089:
+ return "??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAA@XZ";
+ case 0x008a:
+ return "??1?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAA@XZ";
+ case 0x008b: return "??1?$codecvt@DDH@std@@MEAA@XZ";
+ case 0x008c: return "??1?$codecvt@GDH@std@@MEAA@XZ";
+ case 0x008d: return "??1?$codecvt@_WDH@std@@MEAA@XZ";
+ case 0x008e: return "??1?$ctype@D@std@@MEAA@XZ";
+ case 0x008f: return "??1?$ctype@G@std@@MEAA@XZ";
+ case 0x0090: return "??1?$ctype@_W@std@@MEAA@XZ";
+ case 0x0091:
+ return "??1?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@MEAA@XZ";
+ case 0x0092:
+ return "??1?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@MEAA@XZ";
+ case 0x0093:
+ return "??1?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@"
+ "@@std@@MEAA@XZ";
+ case 0x0094:
+ return "??1?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@MEAA@XZ";
+ case 0x0095:
+ return "??1?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@MEAA@XZ";
+ case 0x0096:
+ return "??1?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@std@"
+ "@@std@@MEAA@XZ";
+ case 0x0097:
+ return "??1?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@MEAA@XZ";
+ case 0x0098:
+ return "??1?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@MEAA@XZ";
+ case 0x0099:
+ return "??1?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@MEAA@XZ";
+ case 0x009a:
+ return "??1?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@MEAA@XZ";
+ case 0x009b:
+ return "??1?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@MEAA@XZ";
+ case 0x009c:
+ return "??1?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@MEAA@XZ";
+ case 0x009d: return "??1Init@ios_base@std@@QEAA@XZ";
+ case 0x009e:
+ return "??1_Concurrent_queue_base_v4@details@Concurrency@@MEAA@XZ";
+ case 0x009f:
+ return "??1_Concurrent_queue_iterator_base_v4@details@Concurrency@@IEAA@XZ";
+ case 0x00a0:
+ return "??1_Concurrent_vector_base_v4@details@Concurrency@@IEAA@XZ";
+ case 0x00a1: return "??1_Container_base12@std@@QEAA@XZ";
+ case 0x00a2: return "??1_Facet_base@std@@UEAA@XZ";
+ case 0x00a3: return "??1_Init_locks@std@@QEAA@XZ";
+ case 0x00a4: return "??1_Locimp@locale@std@@MEAA@XZ";
+ case 0x00a5: return "??1_Locinfo@std@@QEAA@XZ";
+ case 0x00a6: return "??1_Lockit@std@@QEAA@XZ";
+ case 0x00a7: return "??1_Pad@std@@QEAA@XZ";
+ case 0x00a8: return "??1_Timevec@std@@QEAA@XZ";
+ case 0x00a9: return "??1_UShinit@std@@QEAA@XZ";
+ case 0x00aa: return "??1_Winit@std@@QEAA@XZ";
+ case 0x00ab: return "??1agent@Concurrency@@UEAA@XZ";
+ case 0x00ac: return "??1codecvt_base@std@@UEAA@XZ";
+ case 0x00ad: return "??1ctype_base@std@@UEAA@XZ";
+ case 0x00ae: return "??1facet@locale@std@@MEAA@XZ";
+ case 0x00af: return "??1ios_base@std@@UEAA@XZ";
+ case 0x00b0: return "??1time_base@std@@UEAA@XZ";
+ case 0x00b1: return "??4?$_Iosb@H@std@@QEAAAEAV01@AEBV01@@Z";
+ case 0x00b2: return "??4?$_Yarn@D@std@@QEAAAEAV01@AEBV01@@Z";
+ case 0x00b3: return "??4?$_Yarn@D@std@@QEAAAEAV01@PEBD@Z";
+ case 0x00b4: return "??4?$_Yarn@_W@std@@QEAAAEAV01@PEB_W@Z";
+ case 0x00b5:
+ return "??4?$basic_iostream@DU?$char_traits@D@std@@@std@@IEAAAEAV01@$$"
+ "QEAV01@@Z";
+ case 0x00b6:
+ return "??4?$basic_iostream@GU?$char_traits@G@std@@@std@@IEAAAEAV01@$$"
+ "QEAV01@@Z";
+ case 0x00b7:
+ return "??4?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@$$"
+ "QEAV01@@Z";
+ case 0x00b8:
+ return "??4?$basic_istream@DU?$char_traits@D@std@@@std@@IEAAAEAV01@$$QEAV01@"
+ "@Z";
+ case 0x00b9:
+ return "??4?$basic_istream@GU?$char_traits@G@std@@@std@@IEAAAEAV01@$$QEAV01@"
+ "@Z";
+ case 0x00ba:
+ return "??4?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@$$"
+ "QEAV01@@Z";
+ case 0x00bb:
+ return "??4?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAAAEAV01@$$QEAV01@"
+ "@Z";
+ case 0x00bc:
+ return "??4?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAAAEAV01@$$QEAV01@"
+ "@Z";
+ case 0x00bd:
+ return "??4?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@$$"
+ "QEAV01@@Z";
+ case 0x00be:
+ return "??4?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAAEAV01@AEBV01@"
+ "@Z";
+ case 0x00bf:
+ return "??4?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAAEAV01@AEBV01@"
+ "@Z";
+ case 0x00c0:
+ return "??4?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAAEAV01@"
+ "AEBV01@@Z";
+ case 0x00c1: return "??4Init@ios_base@std@@QEAAAEAV012@AEBV012@@Z";
+ case 0x00c2: return "??4_Container_base0@std@@QEAAAEAU01@AEBU01@@Z";
+ case 0x00c3: return "??4_Container_base12@std@@QEAAAEAU01@AEBU01@@Z";
+ case 0x00c4: return "??4_Facet_base@std@@QEAAAEAV01@AEBV01@@Z";
+ case 0x00c5: return "??4_Init_locks@std@@QEAAAEAV01@AEBV01@@Z";
+ case 0x00c6: return "??4_Pad@std@@QEAAAEAV01@AEBV01@@Z";
+ case 0x00c7: return "??4_Timevec@std@@QEAAAEAV01@AEBV01@@Z";
+ case 0x00c8: return "??4_UShinit@std@@QEAAAEAV01@AEBV01@@Z";
+ case 0x00c9: return "??4_Winit@std@@QEAAAEAV01@AEBV01@@Z";
+ case 0x00ca:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAF@Z";
+ case 0x00cb:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAG@Z";
+ case 0x00cc:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAH@Z";
+ case 0x00cd:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAI@Z";
+ case 0x00ce:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAJ@Z";
+ case 0x00cf:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAK@Z";
+ case 0x00d0:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAM@Z";
+ case 0x00d1:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAN@Z";
+ case 0x00d2:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAO@Z";
+ case 0x00d3:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAPEAX@"
+ "Z";
+ case 0x00d4:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_J@Z";
+ case 0x00d5:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_K@Z";
+ case 0x00d6:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_N@Z";
+ case 0x00d7:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@"
+ "P6AAEAV01@AEAV01@@Z@Z";
+ case 0x00d8:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$"
+ "basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z";
+ case 0x00d9:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@"
+ "P6AAEAVios_base@1@AEAV21@@Z@Z";
+ case 0x00da:
+ return "??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$"
+ "basic_streambuf@DU?$char_traits@D@std@@@1@@Z";
+ case 0x00db:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAF@Z";
+ case 0x00dc:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAG@Z";
+ case 0x00dd:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAH@Z";
+ case 0x00de:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAI@Z";
+ case 0x00df:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAJ@Z";
+ case 0x00e0:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAK@Z";
+ case 0x00e1:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAM@Z";
+ case 0x00e2:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAN@Z";
+ case 0x00e3:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAO@Z";
+ case 0x00e4:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAPEAX@"
+ "Z";
+ case 0x00e5:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_J@Z";
+ case 0x00e6:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_K@Z";
+ case 0x00e7:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_N@Z";
+ case 0x00e8:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@"
+ "P6AAEAV01@AEAV01@@Z@Z";
+ case 0x00e9:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$"
+ "basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z";
+ case 0x00ea:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@"
+ "P6AAEAVios_base@1@AEAV21@@Z@Z";
+ case 0x00eb:
+ return "??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$"
+ "basic_streambuf@GU?$char_traits@G@std@@@1@@Z";
+ case 0x00ec:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAF@Z";
+ case 0x00ed:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAG@Z";
+ case 0x00ee:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAH@Z";
+ case 0x00ef:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAI@Z";
+ case 0x00f0:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAJ@Z";
+ case 0x00f1:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAK@Z";
+ case 0x00f2:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAM@Z";
+ case 0x00f3:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAN@Z";
+ case 0x00f4:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEAO@Z";
+ case 0x00f5:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+ "AEAPEAX@Z";
+ case 0x00f6:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_J@"
+ "Z";
+ case 0x00f7:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_K@"
+ "Z";
+ case 0x00f8:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@AEA_N@"
+ "Z";
+ case 0x00f9:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+ "P6AAEAV01@AEAV01@@Z@Z";
+ case 0x00fa:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+ "P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z";
+ case 0x00fb:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+ "P6AAEAVios_base@1@AEAV21@@Z@Z";
+ case 0x00fc:
+ return "??5?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$"
+ "basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z";
+ case 0x00fd:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@F@Z";
+ case 0x00fe:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@G@Z";
+ case 0x00ff:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z";
+ case 0x0100:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@I@Z";
+ case 0x0101:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@J@Z";
+ case 0x0102:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@K@Z";
+ case 0x0103:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@M@Z";
+ case 0x0104:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@N@Z";
+ case 0x0105:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@O@Z";
+ case 0x0106:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@"
+ "P6AAEAV01@AEAV01@@Z@Z";
+ case 0x0107:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$"
+ "basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z";
+ case 0x0108:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@"
+ "P6AAEAVios_base@1@AEAV21@@Z@Z";
+ case 0x0109:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$"
+ "basic_streambuf@DU?$char_traits@D@std@@@1@@Z";
+ case 0x010a:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEBX@Z";
+ case 0x010b:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_J@Z";
+ case 0x010c:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_K@Z";
+ case 0x010d:
+ return "??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_N@Z";
+ case 0x010e:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@F@Z";
+ case 0x010f:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@G@Z";
+ case 0x0110:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@H@Z";
+ case 0x0111:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@I@Z";
+ case 0x0112:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@J@Z";
+ case 0x0113:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@K@Z";
+ case 0x0114:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@M@Z";
+ case 0x0115:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@N@Z";
+ case 0x0116:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@O@Z";
+ case 0x0117:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@"
+ "P6AAEAV01@AEAV01@@Z@Z";
+ case 0x0118:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$"
+ "basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z";
+ case 0x0119:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@"
+ "P6AAEAVios_base@1@AEAV21@@Z@Z";
+ case 0x011a:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$"
+ "basic_streambuf@GU?$char_traits@G@std@@@1@@Z";
+ case 0x011b:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEBX@Z";
+ case 0x011c:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_J@Z";
+ case 0x011d:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_K@Z";
+ case 0x011e:
+ return "??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_N@Z";
+ case 0x011f:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@F@Z";
+ case 0x0120:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@G@Z";
+ case 0x0121:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@H@Z";
+ case 0x0122:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@I@Z";
+ case 0x0123:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@J@Z";
+ case 0x0124:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@K@Z";
+ case 0x0125:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@M@Z";
+ case 0x0126:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@N@Z";
+ case 0x0127:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@O@Z";
+ case 0x0128:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+ "P6AAEAV01@AEAV01@@Z@Z";
+ case 0x0129:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+ "P6AAEAV?$basic_ios@_WU?$char_traits@_W@std@@@1@AEAV21@@Z@Z";
+ case 0x012a:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@"
+ "P6AAEAVios_base@1@AEAV21@@Z@Z";
+ case 0x012b:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEAV?$"
+ "basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z";
+ case 0x012c:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@PEBX@Z";
+ case 0x012d:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_J@Z";
+ case 0x012e:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_K@Z";
+ case 0x012f:
+ return "??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@_N@Z";
+ case 0x0130: return "??7ios_base@std@@QEBA_NXZ";
+ case 0x0131: return "??Bid@locale@std@@QEAA_KXZ";
+ case 0x0132: return "??Bios_base@std@@QEBA_NXZ";
+ case 0x0133: return "??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@";
+ case 0x0134: return "??_7?$basic_ios@GU?$char_traits@G@std@@@std@@6B@";
+ case 0x0135: return "??_7?$basic_ios@_WU?$char_traits@_W@std@@@std@@6B@";
+ case 0x0136: return "??_7?$basic_iostream@DU?$char_traits@D@std@@@std@@6B@";
+ case 0x0137: return "??_7?$basic_iostream@GU?$char_traits@G@std@@@std@@6B@";
+ case 0x0138: return "??_7?$basic_iostream@_WU?$char_traits@_W@std@@@std@@6B@";
+ case 0x0139: return "??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@";
+ case 0x013a: return "??_7?$basic_istream@GU?$char_traits@G@std@@@std@@6B@";
+ case 0x013b: return "??_7?$basic_istream@_WU?$char_traits@_W@std@@@std@@6B@";
+ case 0x013c: return "??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@";
+ case 0x013d: return "??_7?$basic_ostream@GU?$char_traits@G@std@@@std@@6B@";
+ case 0x013e: return "??_7?$basic_ostream@_WU?$char_traits@_W@std@@@std@@6B@";
+ case 0x013f: return "??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@";
+ case 0x0140: return "??_7?$basic_streambuf@GU?$char_traits@G@std@@@std@@6B@";
+ case 0x0141: return "??_7?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@6B@";
+ case 0x0142: return "??_7?$codecvt@DDH@std@@6B@";
+ case 0x0143: return "??_7?$codecvt@GDH@std@@6B@";
+ case 0x0144: return "??_7?$codecvt@_WDH@std@@6B@";
+ case 0x0145: return "??_7?$ctype@D@std@@6B@";
+ case 0x0146: return "??_7?$ctype@G@std@@6B@";
+ case 0x0147: return "??_7?$ctype@_W@std@@6B@";
+ case 0x0148:
+ return "??_7?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@6B@";
+ case 0x0149:
+ return "??_7?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@6B@";
+ case 0x014a:
+ return "??_7?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@6B@";
+ case 0x014b:
+ return "??_7?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@6B@";
+ case 0x014c:
+ return "??_7?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@6B@";
+ case 0x014d:
+ return "??_7?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@6B@";
+ case 0x014e:
+ return "??_7?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@6B@";
+ case 0x014f:
+ return "??_7?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@6B@";
+ case 0x0150:
+ return "??_7?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@6B@";
+ case 0x0151:
+ return "??_7?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@6B@";
+ case 0x0152:
+ return "??_7?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@6B@";
+ case 0x0153:
+ return "??_7?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@6B@";
+ case 0x0154: return "??_7_Facet_base@std@@6B@";
+ case 0x0155: return "??_7_Locimp@locale@std@@6B@";
+ case 0x0156: return "??_7_Pad@std@@6B@";
+ case 0x0157: return "??_7codecvt_base@std@@6B@";
+ case 0x0158: return "??_7ctype_base@std@@6B@";
+ case 0x0159: return "??_7facet@locale@std@@6B@";
+ case 0x015a: return "??_7ios_base@std@@6B@";
+ case 0x015b: return "??_7time_base@std@@6B@";
+ case 0x015c:
+ return "??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@"
+ "DU?$char_traits@D@std@@@1@@";
+ case 0x015d:
+ return "??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@"
+ "DU?$char_traits@D@std@@@1@@";
+ case 0x015e:
+ return "??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@"
+ "GU?$char_traits@G@std@@@1@@";
+ case 0x015f:
+ return "??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@"
+ "GU?$char_traits@G@std@@@1@@";
+ case 0x0160:
+ return "??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_"
+ "istream@_WU?$char_traits@_W@std@@@1@@";
+ case 0x0161:
+ return "??_8?$basic_iostream@_WU?$char_traits@_W@std@@@std@@7B?$basic_"
+ "ostream@_WU?$char_traits@_W@std@@@1@@";
+ case 0x0162: return "??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@";
+ case 0x0163: return "??_8?$basic_istream@GU?$char_traits@G@std@@@std@@7B@";
+ case 0x0164: return "??_8?$basic_istream@_WU?$char_traits@_W@std@@@std@@7B@";
+ case 0x0165: return "??_8?$basic_ostream@DU?$char_traits@D@std@@@std@@7B@";
+ case 0x0166: return "??_8?$basic_ostream@GU?$char_traits@G@std@@@std@@7B@";
+ case 0x0167: return "??_8?$basic_ostream@_WU?$char_traits@_W@std@@@std@@7B@";
+ case 0x0168:
+ return "??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+ case 0x0169:
+ return "??_D?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+ case 0x016a:
+ return "??_D?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+ case 0x016b: return "??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+ case 0x016c: return "??_D?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+ case 0x016d:
+ return "??_D?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+ case 0x016e: return "??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+ case 0x016f: return "??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+ case 0x0170:
+ return "??_D?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+ case 0x0171: return "??_F?$codecvt@DDH@std@@QEAAXXZ";
+ case 0x0172: return "??_F?$codecvt@GDH@std@@QEAAXXZ";
+ case 0x0173: return "??_F?$codecvt@_WDH@std@@QEAAXXZ";
+ case 0x0174: return "??_F?$ctype@D@std@@QEAAXXZ";
+ case 0x0175: return "??_F?$ctype@G@std@@QEAAXXZ";
+ case 0x0176: return "??_F?$ctype@_W@std@@QEAAXXZ";
+ case 0x0177:
+ return "??_F?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@QEAAXXZ";
+ case 0x0178:
+ return "??_F?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@QEAAXXZ";
+ case 0x0179:
+ return "??_F?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEAAXXZ";
+ case 0x017a:
+ return "??_F?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@QEAAXXZ";
+ case 0x017b:
+ return "??_F?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@QEAAXXZ";
+ case 0x017c:
+ return "??_F?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEAAXXZ";
+ case 0x017d:
+ return "??_F?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEAAXXZ";
+ case 0x017e:
+ return "??_F?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEAAXXZ";
+ case 0x017f:
+ return "??_F?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEAAXXZ";
+ case 0x0180:
+ return "??_F?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEAAXXZ";
+ case 0x0181:
+ return "??_F?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEAAXXZ";
+ case 0x0182:
+ return "??_F?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEAAXXZ";
+ case 0x0183: return "??_F_Locinfo@std@@QEAAXXZ";
+ case 0x0184: return "??_F_Timevec@std@@QEAAXXZ";
+ case 0x0185: return "??_Fcodecvt_base@std@@QEAAXXZ";
+ case 0x0186: return "??_Fctype_base@std@@QEAAXXZ";
+ case 0x0187: return "??_Ffacet@locale@std@@QEAAXXZ";
+ case 0x0188: return "??_Fid@locale@std@@QEAAXXZ";
+ case 0x0189: return "??_Ftime_base@std@@QEAAXXZ";
+ case 0x018a: return "?GetNextAsyncId@platform@details@Concurrency@@YAIXZ";
+ case 0x018b: return "?NFS_Allocate@details@Concurrency@@YAPEAX_K0PEAX@Z";
+ case 0x018c: return "?NFS_Free@details@Concurrency@@YAXPEAX@Z";
+ case 0x018d: return "?NFS_GetLineSize@details@Concurrency@@YA_KXZ";
+ case 0x018e: return "?_10@placeholders@std@@3V?$_Ph@$09@2@A";
+ case 0x018f: return "?_11@placeholders@std@@3V?$_Ph@$0L@@2@A";
+ case 0x0190: return "?_12@placeholders@std@@3V?$_Ph@$0M@@2@A";
+ case 0x0191: return "?_13@placeholders@std@@3V?$_Ph@$0N@@2@A";
+ case 0x0192: return "?_14@placeholders@std@@3V?$_Ph@$0O@@2@A";
+ case 0x0193: return "?_15@placeholders@std@@3V?$_Ph@$0P@@2@A";
+ case 0x0194: return "?_16@placeholders@std@@3V?$_Ph@$0BA@@2@A";
+ case 0x0195: return "?_17@placeholders@std@@3V?$_Ph@$0BB@@2@A";
+ case 0x0196: return "?_18@placeholders@std@@3V?$_Ph@$0BC@@2@A";
+ case 0x0197: return "?_19@placeholders@std@@3V?$_Ph@$0BD@@2@A";
+ case 0x0198: return "?_1@placeholders@std@@3V?$_Ph@$00@2@A";
+ case 0x0199: return "?_20@placeholders@std@@3V?$_Ph@$0BE@@2@A";
+ case 0x019a: return "?_2@placeholders@std@@3V?$_Ph@$01@2@A";
+ case 0x019b: return "?_3@placeholders@std@@3V?$_Ph@$02@2@A";
+ case 0x019c: return "?_4@placeholders@std@@3V?$_Ph@$03@2@A";
+ case 0x019d: return "?_5@placeholders@std@@3V?$_Ph@$04@2@A";
+ case 0x019e: return "?_6@placeholders@std@@3V?$_Ph@$05@2@A";
+ case 0x019f: return "?_7@placeholders@std@@3V?$_Ph@$06@2@A";
+ case 0x01a0: return "?_8@placeholders@std@@3V?$_Ph@$07@2@A";
+ case 0x01a1: return "?_9@placeholders@std@@3V?$_Ph@$08@2@A";
+ case 0x01a2: return "?_Addcats@_Locinfo@std@@QEAAAEAV12@HPEBD@Z";
+ case 0x01a3: return "?_Addfac@_Locimp@locale@std@@AEAAXPEAVfacet@23@_K@Z";
+ case 0x01a4: return "?_Addstd@ios_base@std@@SAXPEAV12@@Z";
+ case 0x01a5:
+ return "?_Advance@_Concurrent_queue_iterator_base_v4@details@Concurrency@@"
+ "IEAAXXZ";
+ case 0x01a6:
+ return "?_Assign@_Concurrent_queue_iterator_base_v4@details@Concurrency@@"
+ "IEAAXAEBV123@@Z";
+ case 0x01a7: return "?_Atexit@@YAXP6AXXZ@Z";
+ case 0x01a8: return "?_BADOFF@std@@3_JB";
+ case 0x01a9: return "?_Byte_reverse_table@details@Concurrency@@3QBEB";
+ case 0x01aa: return "?_C_str@?$_Yarn@D@std@@QEBAPEBDXZ";
+ case 0x01ab: return "?_C_str@?$_Yarn@_W@std@@QEBAPEB_WXZ";
+ case 0x01ac: return "?_Callfns@ios_base@std@@AEAAXW4event@12@@Z";
+ case 0x01ad: return "?_Clocptr@_Locimp@locale@std@@0PEAV123@EA";
+ case 0x01ae: return "?_Close_dir@sys@tr2@std@@YAXPEAX@Z";
+ case 0x01af: return "?_Copy_file@sys@tr2@std@@YAHPEBD0_N@Z";
+ case 0x01b0: return "?_Copy_file@sys@tr2@std@@YAHPEB_W0_N@Z";
+ case 0x01b1: return "?_Current_get@sys@tr2@std@@YAPEADAEAY0BAE@D@Z";
+ case 0x01b2: return "?_Current_get@sys@tr2@std@@YAPEA_WAEAY0BAE@_W@Z";
+ case 0x01b3: return "?_Current_set@sys@tr2@std@@YA_NPEBD@Z";
+ case 0x01b4: return "?_Current_set@sys@tr2@std@@YA_NPEB_W@Z";
+ case 0x01b5: return "?_Decref@facet@locale@std@@UEAAPEAV_Facet_base@3@XZ";
+ case 0x01b6: return "?_Donarrow@?$ctype@G@std@@IEBADGD@Z";
+ case 0x01b7: return "?_Donarrow@?$ctype@_W@std@@IEBAD_WD@Z";
+ case 0x01b8: return "?_Dowiden@?$ctype@G@std@@IEBAGD@Z";
+ case 0x01b9: return "?_Dowiden@?$ctype@_W@std@@IEBA_WD@Z";
+ case 0x01ba: return "?_Empty@?$_Yarn@D@std@@QEBA_NXZ";
+ case 0x01bb: return "?_Empty@?$_Yarn@_W@std@@QEBA_NXZ";
+ case 0x01bc: return "?_Equivalent@sys@tr2@std@@YAHPEBD0@Z";
+ case 0x01bd: return "?_Equivalent@sys@tr2@std@@YAHPEB_W0@Z";
+ case 0x01be:
+ return "?_Ffmt@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@AEBAPEADPEADDH@Z";
+ case 0x01bf:
+ return "?_Ffmt@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@AEBAPEADPEADDH@Z";
+ case 0x01c0:
+ return "?_Ffmt@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@AEBAPEADPEADDH@Z";
+ case 0x01c1: return "?_File_size@sys@tr2@std@@YA_KPEBD@Z";
+ case 0x01c2: return "?_File_size@sys@tr2@std@@YA_KPEB_W@Z";
+ case 0x01c3: return "?_Findarr@ios_base@std@@AEAAAEAU_Iosarray@12@H@Z";
+ case 0x01c4: return "?_Fiopen@std@@YAPEAU_iobuf@@PEBDHH@Z";
+ case 0x01c5: return "?_Fiopen@std@@YAPEAU_iobuf@@PEBGHH@Z";
+ case 0x01c6: return "?_Fiopen@std@@YAPEAU_iobuf@@PEB_WHH@Z";
+ case 0x01c7:
+ return "?_Fput@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@AEAVios_base@2@DPEBD_K333@Z";
+ case 0x01c8:
+ return "?_Fput@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@AEAVios_base@2@GPEBD_K333@Z";
+ case 0x01c9:
+ return "?_Fput@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@AEAVios_base@2@_WPEBD_K444@Z";
+ case 0x01ca: return "?_Future_error_map@std@@YAPEBDH@Z";
+ case 0x01cb: return "?_GetCombinableSize@details@Concurrency@@YA_KXZ";
+ case 0x01cc:
+ return "?_Getcat@?$codecvt@DDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01cd:
+ return "?_Getcat@?$codecvt@GDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01ce:
+ return "?_Getcat@?$codecvt@_WDH@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01cf:
+ return "?_Getcat@?$ctype@D@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01d0:
+ return "?_Getcat@?$ctype@G@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01d1:
+ return "?_Getcat@?$ctype@_W@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01d2:
+ return "?_Getcat@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01d3:
+ return "?_Getcat@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01d4:
+ return "?_Getcat@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@"
+ "@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01d5:
+ return "?_Getcat@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01d6:
+ return "?_Getcat@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01d7:
+ return "?_Getcat@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@"
+ "@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01d8:
+ return "?_Getcat@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01d9:
+ return "?_Getcat@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01da:
+ return "?_Getcat@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01db:
+ return "?_Getcat@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01dc:
+ return "?_Getcat@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01dd:
+ return "?_Getcat@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@std@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z";
+ case 0x01de: return "?_Getcat@facet@locale@std@@SA_KPEAPEBV123@PEBV23@@Z";
+ case 0x01df: return "?_Getcoll@_Locinfo@std@@QEBA?AU_Collvec@@XZ";
+ case 0x01e0: return "?_Getctype@_Locinfo@std@@QEBA?AU_Ctypevec@@XZ";
+ case 0x01e1: return "?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ";
+ case 0x01e2: return "?_Getdateorder@_Locinfo@std@@QEBAHXZ";
+ case 0x01e3: return "?_Getdays@_Locinfo@std@@QEBAPEBDXZ";
+ case 0x01e4: return "?_Getfalse@_Locinfo@std@@QEBAPEBDXZ";
+ case 0x01e5:
+ return "?_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@"
+ "@@2@1AEAVios_base@2@PEAH@Z";
+ case 0x01e6:
+ return "?_Getffld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@"
+ "@@2@1AEAVios_base@2@PEAH@Z";
+ case 0x01e7:
+ return "?_Getffld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_"
+ "traits@_W@std@@@2@1AEAVios_base@2@PEAH@Z";
+ case 0x01e8:
+ return "?_Getffldx@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@"
+ "@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@"
+ "std@@@2@1AEAVios_base@2@PEAH@Z";
+ case 0x01e9:
+ return "?_Getffldx@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@"
+ "@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@"
+ "std@@@2@1AEAVios_base@2@PEAH@Z";
+ case 0x01ea:
+ return "?_Getffldx@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_"
+ "traits@_W@std@@@2@1AEAVios_base@2@PEAH@Z";
+ case 0x01eb:
+ return "?_Getfmt@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@IEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD@Z";
+ case 0x01ec:
+ return "?_Getfmt@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@IEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD@Z";
+ case 0x01ed:
+ return "?_Getfmt@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@std@@@std@@IEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@PEBD@Z";
+ case 0x01ee: return "?_Getgloballocale@locale@std@@CAPEAV_Locimp@12@XZ";
+ case 0x01ef:
+ return "?_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$char_traits@D@std@"
+ "@@2@1HAEBVlocale@2@@Z";
+ case 0x01f0:
+ return "?_Getifld@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$char_traits@G@std@"
+ "@@2@1HAEBVlocale@2@@Z";
+ case 0x01f1:
+ return "?_Getifld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$char_"
+ "traits@_W@std@@@2@1HAEBVlocale@2@@Z";
+ case 0x01f2:
+ return "?_Getint@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@AEBAHAEAV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "0HHAEAHAEBV?$ctype@D@2@@Z";
+ case 0x01f3:
+ return "?_Getint@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@AEBAHAEAV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "0HHAEAHAEBV?$ctype@G@2@@Z";
+ case 0x01f4:
+ return "?_Getint@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@std@@@std@@AEBAHAEAV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@2@0HHAEAHAEBV?$ctype@_W@2@@Z";
+ case 0x01f5: return "?_Getlconv@_Locinfo@std@@QEBAPEBUlconv@@XZ";
+ case 0x01f6: return "?_Getmonths@_Locinfo@std@@QEBAPEBDXZ";
+ case 0x01f7: return "?_Getname@_Locinfo@std@@QEBAPEBDXZ";
+ case 0x01f8:
+ return "?_Getpfirst@_Container_base12@std@@QEBAPEAPEAU_Iterator_base12@2@XZ";
+ case 0x01f9: return "?_Getptr@_Timevec@std@@QEBAPEAXXZ";
+ case 0x01fa: return "?_Gettnames@_Locinfo@std@@QEBA?AV_Timevec@2@XZ";
+ case 0x01fb: return "?_Gettrue@_Locinfo@std@@QEBAPEBDXZ";
+ case 0x01fc:
+ return "?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ";
+ case 0x01fd:
+ return "?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ";
+ case 0x01fe:
+ return "?_Gnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ";
+ case 0x01ff:
+ return "?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
+ case 0x0200:
+ return "?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
+ case 0x0201:
+ return "?_Gndec@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_"
+ "WXZ";
+ case 0x0202:
+ return "?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
+ case 0x0203:
+ return "?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
+ case 0x0204:
+ return "?_Gninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_"
+ "WXZ";
+ case 0x0205:
+ return "?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@"
+ "IEAAPEADXZ";
+ case 0x0206:
+ return "?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@"
+ "IEAAPEAGXZ";
+ case 0x0207:
+ return "?_Gnpreinc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_"
+ "WXZ";
+ case 0x0208: return "?_Id_cnt@id@locale@std@@0HA";
+ case 0x0209:
+ return "?_Ifmt@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@AEBAPEADPEADPEBDH@Z";
+ case 0x020a:
+ return "?_Ifmt@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@AEBAPEADPEADPEBDH@Z";
+ case 0x020b:
+ return "?_Ifmt@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@AEBAPEADPEADPEBDH@Z";
+ case 0x020c: return "?_Incref@facet@locale@std@@UEAAXXZ";
+ case 0x020d: return "?_Index@ios_base@std@@0HA";
+ case 0x020e:
+ return "?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@"
+ "IEAAXPEAPEAD0PEAH001@Z";
+ case 0x020f:
+ return "?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ";
+ case 0x0210:
+ return "?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@"
+ "IEAAXPEAPEAG0PEAH001@Z";
+ case 0x0211:
+ return "?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXXZ";
+ case 0x0212:
+ return "?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEAPEA_"
+ "W0PEAH001@Z";
+ case 0x0213:
+ return "?_Init@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXXZ";
+ case 0x0214: return "?_Init@?$codecvt@DDH@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x0215: return "?_Init@?$codecvt@GDH@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x0216: return "?_Init@?$codecvt@_WDH@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x0217: return "?_Init@?$ctype@D@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x0218: return "?_Init@?$ctype@G@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x0219: return "?_Init@?$ctype@_W@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x021a:
+ return "?_Init@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x021b:
+ return "?_Init@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x021c:
+ return "?_Init@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x021d:
+ return "?_Init@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x021e:
+ return "?_Init@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x021f:
+ return "?_Init@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x0220:
+ return "?_Init@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x0221:
+ return "?_Init@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x0222:
+ return "?_Init@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x0223:
+ return "?_Init@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x0224:
+ return "?_Init@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x0225:
+ return "?_Init@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@IEAAXAEBV_Locinfo@2@@Z";
+ case 0x0226: return "?_Init@ios_base@std@@IEAAXXZ";
+ case 0x0227: return "?_Init@locale@std@@CAPEAV_Locimp@12@_N@Z";
+ case 0x0228: return "?_Init_cnt@Init@ios_base@std@@0HA";
+ case 0x0229: return "?_Init_cnt@_UShinit@std@@0HA";
+ case 0x022a: return "?_Init_cnt@_Winit@std@@0HA";
+ case 0x022b: return "?_Init_cnt_func@Init@ios_base@std@@CAAEAHXZ";
+ case 0x022c: return "?_Init_ctor@Init@ios_base@std@@CAXPEAV123@@Z";
+ case 0x022d: return "?_Init_dtor@Init@ios_base@std@@CAXPEAV123@@Z";
+ case 0x022e: return "?_Init_locks_ctor@_Init_locks@std@@CAXPEAV12@@Z";
+ case 0x022f: return "?_Init_locks_dtor@_Init_locks@std@@CAXPEAV12@@Z";
+ case 0x0230:
+ return "?_Internal_assign@_Concurrent_vector_base_v4@details@Concurrency@@"
+ "IEAAXAEBV123@_KP6AXPEAX1@ZP6AX2PEBX1@Z5@Z";
+ case 0x0231:
+ return "?_Internal_capacity@_Concurrent_vector_base_v4@details@Concurrency@@"
+ "IEBA_KXZ";
+ case 0x0232:
+ return "?_Internal_clear@_Concurrent_vector_base_v4@details@Concurrency@@"
+ "IEAA_KP6AXPEAX_K@Z@Z";
+ case 0x0233:
+ return "?_Internal_compact@_Concurrent_vector_base_v4@details@Concurrency@@"
+ "IEAAPEAX_KPEAXP6AX10@ZP6AX1PEBX0@Z@Z";
+ case 0x0234:
+ return "?_Internal_copy@_Concurrent_vector_base_v4@details@Concurrency@@"
+ "IEAAXAEBV123@_KP6AXPEAXPEBX1@Z@Z";
+ case 0x0235:
+ return "?_Internal_empty@_Concurrent_queue_base_v4@details@Concurrency@@"
+ "IEBA_NXZ";
+ case 0x0236:
+ return "?_Internal_finish_clear@_Concurrent_queue_base_v4@details@"
+ "Concurrency@@IEAAXXZ";
+ case 0x0237:
+ return "?_Internal_grow_by@_Concurrent_vector_base_v4@details@Concurrency@@"
+ "IEAA_K_K0P6AXPEAXPEBX0@Z2@Z";
+ case 0x0238:
+ return "?_Internal_grow_to_at_least_with_result@_Concurrent_vector_base_v4@"
+ "details@Concurrency@@IEAA_K_K0P6AXPEAXPEBX0@Z2@Z";
+ case 0x0239:
+ return "?_Internal_move_push@_Concurrent_queue_base_v4@details@Concurrency@@"
+ "IEAAXPEAX@Z";
+ case 0x023a:
+ return "?_Internal_pop_if_present@_Concurrent_queue_base_v4@details@"
+ "Concurrency@@IEAA_NPEAX@Z";
+ case 0x023b:
+ return "?_Internal_push@_Concurrent_queue_base_v4@details@Concurrency@@"
+ "IEAAXPEBX@Z";
+ case 0x023c:
+ return "?_Internal_push_back@_Concurrent_vector_base_v4@details@Concurrency@"
+ "@IEAAPEAX_KAEA_K@Z";
+ case 0x023d:
+ return "?_Internal_reserve@_Concurrent_vector_base_v4@details@Concurrency@@"
+ "IEAAX_K00@Z";
+ case 0x023e:
+ return "?_Internal_resize@_Concurrent_vector_base_v4@details@Concurrency@@"
+ "IEAAX_K00P6AXPEAX0@ZP6AX1PEBX0@Z3@Z";
+ case 0x023f:
+ return "?_Internal_size@_Concurrent_queue_base_v4@details@Concurrency@@IEBA_"
+ "KXZ";
+ case 0x0240:
+ return "?_Internal_swap@_Concurrent_queue_base_v4@details@Concurrency@@"
+ "IEAAXAEAV123@@Z";
+ case 0x0241:
+ return "?_Internal_swap@_Concurrent_vector_base_v4@details@Concurrency@@"
+ "IEAAXAEAV123@@Z";
+ case 0x0242:
+ return "?_Internal_throw_exception@_Concurrent_queue_base_v4@details@"
+ "Concurrency@@IEBAXXZ";
+ case 0x0243:
+ return "?_Internal_throw_exception@_Concurrent_vector_base_v4@details@"
+ "Concurrency@@IEBAX_K@Z";
+ case 0x0244: return "?_Ios_base_dtor@ios_base@std@@CAXPEAV12@@Z";
+ case 0x0245:
+ return "?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z";
+ case 0x0246:
+ return "?_Ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z";
+ case 0x0247:
+ return "?_Ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z";
+ case 0x0248:
+ return "?_Iput@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@AEAVios_base@2@DPEAD_K@Z";
+ case 0x0249:
+ return "?_Iput@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@AEAVios_base@2@GPEAD_K@Z";
+ case 0x024a:
+ return "?_Iput@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@AEAVios_base@2@_WPEAD_K@Z";
+ case 0x024b: return "?_Last_write_time@sys@tr2@std@@YAXPEBD_J@Z";
+ case 0x024c: return "?_Last_write_time@sys@tr2@std@@YAXPEB_W_J@Z";
+ case 0x024d: return "?_Last_write_time@sys@tr2@std@@YA_JPEBD@Z";
+ case 0x024e: return "?_Last_write_time@sys@tr2@std@@YA_JPEB_W@Z";
+ case 0x024f: return "?_Launch@_Pad@std@@QEAAXPEAU_Thrd_imp_t@@@Z";
+ case 0x0250: return "?_Link@sys@tr2@std@@YAHPEBD0@Z";
+ case 0x0251: return "?_Link@sys@tr2@std@@YAHPEB_W0@Z";
+ case 0x0252:
+ return "?_Locimp_Addfac@_Locimp@locale@std@@CAXPEAV123@PEAVfacet@23@_K@Z";
+ case 0x0253: return "?_Locimp_ctor@_Locimp@locale@std@@CAXPEAV123@AEBV123@@Z";
+ case 0x0254: return "?_Locimp_dtor@_Locimp@locale@std@@CAXPEAV123@@Z";
+ case 0x0255: return "?_Locinfo_Addcats@_Locinfo@std@@SAAEAV12@PEAV12@HPEBD@Z";
+ case 0x0256: return "?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@HPEBD@Z";
+ case 0x0257: return "?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@PEBD@Z";
+ case 0x0258: return "?_Locinfo_dtor@_Locinfo@std@@SAXPEAV12@@Z";
+ case 0x0259:
+ return "?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAAXXZ";
+ case 0x025a:
+ return "?_Lock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAAXXZ";
+ case 0x025b:
+ return "?_Lock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
+ case 0x025c: return "?_Lockit_ctor@_Lockit@std@@CAXPEAV12@@Z";
+ case 0x025d: return "?_Lockit_ctor@_Lockit@std@@CAXPEAV12@H@Z";
+ case 0x025e: return "?_Lockit_ctor@_Lockit@std@@SAXH@Z";
+ case 0x025f: return "?_Lockit_dtor@_Lockit@std@@CAXPEAV12@@Z";
+ case 0x0260: return "?_Lockit_dtor@_Lockit@std@@SAXH@Z";
+ case 0x0261: return "?_Lstat@sys@tr2@std@@YA?AW4file_type@123@PEBDAEAH@Z";
+ case 0x0262: return "?_Lstat@sys@tr2@std@@YA?AW4file_type@123@PEB_WAEAH@Z";
+ case 0x0263: return "?_MP_Add@std@@YAXQEA_K_K@Z";
+ case 0x0264: return "?_MP_Get@std@@YA_KQEA_K@Z";
+ case 0x0265: return "?_MP_Mul@std@@YAXQEA_K_K1@Z";
+ case 0x0266: return "?_MP_Rem@std@@YAXQEA_K_K@Z";
+ case 0x0267: return "?_Make_dir@sys@tr2@std@@YAHPEBD@Z";
+ case 0x0268: return "?_Make_dir@sys@tr2@std@@YAHPEB_W@Z";
+ case 0x0269:
+ return "?_Makeloc@_Locimp@locale@std@@CAPEAV123@AEBV_Locinfo@3@HPEAV123@"
+ "PEBV23@@Z";
+ case 0x026a:
+ return "?_Makeushloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@"
+ "Z";
+ case 0x026b:
+ return "?_Makewloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z";
+ case 0x026c:
+ return "?_Makexloc@_Locimp@locale@std@@CAXAEBV_Locinfo@3@HPEAV123@PEBV23@@Z";
+ case 0x026d: return "?_Mtx_delete@threads@stdext@@YAXPEAX@Z";
+ case 0x026e: return "?_Mtx_lock@threads@stdext@@YAXPEAX@Z";
+ case 0x026f: return "?_Mtx_new@threads@stdext@@YAXAEAPEAX@Z";
+ case 0x0270: return "?_Mtx_unlock@threads@stdext@@YAXPEAX@Z";
+ case 0x0271: return "?_New_Locimp@_Locimp@locale@std@@CAPEAV123@AEBV123@@Z";
+ case 0x0272: return "?_New_Locimp@_Locimp@locale@std@@CAPEAV123@_N@Z";
+ case 0x0273:
+ return "?_Open_dir@sys@tr2@std@@YAPEAXAEAY0BAE@DPEBDAEAHAEAW4file_type@123@@"
+ "Z";
+ case 0x0274:
+ return "?_Open_dir@sys@tr2@std@@YAPEAXAEAY0BAE@_WPEB_WAEAHAEAW4file_type@"
+ "123@@Z";
+ case 0x0275: return "?_Orphan_all@_Container_base0@std@@QEAAXXZ";
+ case 0x0276: return "?_Orphan_all@_Container_base12@std@@QEAAXXZ";
+ case 0x0277:
+ return "?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+ case 0x0278:
+ return "?_Osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+ case 0x0279:
+ return "?_Osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+ case 0x027a:
+ return "?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ";
+ case 0x027b:
+ return "?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ";
+ case 0x027c:
+ return "?_Pnavail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBA_JXZ";
+ case 0x027d:
+ return "?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ";
+ case 0x027e:
+ return "?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ";
+ case 0x027f:
+ return "?_Pninc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAPEA_"
+ "WXZ";
+ case 0x0280:
+ return "?_Ptr_cerr@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA";
+ case 0x0281:
+ return "?_Ptr_cin@std@@3PEAV?$basic_istream@DU?$char_traits@D@std@@@1@EA";
+ case 0x0282:
+ return "?_Ptr_clog@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA";
+ case 0x0283:
+ return "?_Ptr_cout@std@@3PEAV?$basic_ostream@DU?$char_traits@D@std@@@1@EA";
+ case 0x0284:
+ return "?_Ptr_wcerr@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA";
+ case 0x0285:
+ return "?_Ptr_wcerr@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@"
+ "EA";
+ case 0x0286:
+ return "?_Ptr_wcin@std@@3PEAV?$basic_istream@GU?$char_traits@G@std@@@1@EA";
+ case 0x0287:
+ return "?_Ptr_wcin@std@@3PEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@EA";
+ case 0x0288:
+ return "?_Ptr_wclog@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA";
+ case 0x0289:
+ return "?_Ptr_wclog@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@"
+ "EA";
+ case 0x028a:
+ return "?_Ptr_wcout@std@@3PEAV?$basic_ostream@GU?$char_traits@G@std@@@1@EA";
+ case 0x028b:
+ return "?_Ptr_wcout@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@"
+ "EA";
+ case 0x028c:
+ return "?_Put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@"
+ "@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "PEBD_K@Z";
+ case 0x028d:
+ return "?_Put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@"
+ "@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "PEBG_K@Z";
+ case 0x028e:
+ return "?_Put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@PEB_W_K@Z";
+ case 0x028f: return "?_Raise_handler@std@@3P6AXAEBVexception@stdext@@@ZEA";
+ case 0x0290: return "?_Random_device@std@@YAIXZ";
+ case 0x0291:
+ return "?_Read_dir@sys@tr2@std@@YAPEADAEAY0BAE@DPEAXAEAW4file_type@123@@Z";
+ case 0x0292:
+ return "?_Read_dir@sys@tr2@std@@YAPEA_WAEAY0BAE@_WPEAXAEAW4file_type@123@@Z";
+ case 0x0293: return "?_Release@_Pad@std@@QEAAXXZ";
+ case 0x0294: return "?_Remove_dir@sys@tr2@std@@YA_NPEBD@Z";
+ case 0x0295: return "?_Remove_dir@sys@tr2@std@@YA_NPEB_W@Z";
+ case 0x0296: return "?_Rename@sys@tr2@std@@YAHPEBD0@Z";
+ case 0x0297: return "?_Rename@sys@tr2@std@@YAHPEB_W0@Z";
+ case 0x0298:
+ return "?_Rep@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@"
+ "@@std@@AEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@D_"
+ "K@Z";
+ case 0x0299:
+ return "?_Rep@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@"
+ "@@std@@AEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@G_"
+ "K@Z";
+ case 0x029a:
+ return "?_Rep@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@AEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@_W_K@Z";
+ case 0x029b: return "?_Rethrow_future_exception@std@@YAXVexception_ptr@1@@Z";
+ case 0x029c: return "?_Rng_abort@std@@YAXPEBD@Z";
+ case 0x029d:
+ return "?_Segment_index_of@_Concurrent_vector_base_v4@details@Concurrency@@"
+ "KA_K_K@Z";
+ case 0x029e: return "?_Setgloballocale@locale@std@@CAXPEAX@Z";
+ case 0x029f:
+ return "?_Src@?1??_Getffldx@?$num_get@DV?$istreambuf_iterator@DU?$char_"
+ "traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$"
+ "char_traits@D@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
+ case 0x02a0:
+ return "?_Src@?1??_Getffldx@?$num_get@GV?$istreambuf_iterator@GU?$char_"
+ "traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$"
+ "char_traits@G@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
+ case 0x02a1:
+ return "?_Src@?1??_Getffldx@?$num_get@_WV?$istreambuf_iterator@_WU?$char_"
+ "traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$"
+ "char_traits@_W@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
+ case 0x02a2:
+ return "?_Src@?1??_Getifld@?$num_get@DV?$istreambuf_iterator@DU?$char_"
+ "traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$"
+ "char_traits@D@std@@@3@1HAEBVlocale@3@@Z@4QBDB";
+ case 0x02a3:
+ return "?_Src@?1??_Getifld@?$num_get@GV?$istreambuf_iterator@GU?$char_"
+ "traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$"
+ "char_traits@G@std@@@3@1HAEBVlocale@3@@Z@4QBDB";
+ case 0x02a4:
+ return "?_Src@?1??_Getifld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_"
+ "traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$"
+ "char_traits@_W@std@@@3@1HAEBVlocale@3@@Z@4QBDB";
+ case 0x02a5:
+ return "?_Src@?3??_Getffld@?$num_get@DV?$istreambuf_iterator@DU?$char_"
+ "traits@D@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@DU?$"
+ "char_traits@D@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
+ case 0x02a6:
+ return "?_Src@?3??_Getffld@?$num_get@GV?$istreambuf_iterator@GU?$char_"
+ "traits@G@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@GU?$"
+ "char_traits@G@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
+ case 0x02a7:
+ return "?_Src@?3??_Getffld@?$num_get@_WV?$istreambuf_iterator@_WU?$char_"
+ "traits@_W@std@@@std@@@std@@AEBAHPEADAEAV?$istreambuf_iterator@_WU?$"
+ "char_traits@_W@std@@@3@1AEAVios_base@3@PEAH@Z@4QBDB";
+ case 0x02a8: return "?_Stat@sys@tr2@std@@YA?AW4file_type@123@PEBDAEAH@Z";
+ case 0x02a9: return "?_Stat@sys@tr2@std@@YA?AW4file_type@123@PEB_WAEAH@Z";
+ case 0x02aa: return "?_Statvfs@sys@tr2@std@@YA?AUspace_info@123@PEBD@Z";
+ case 0x02ab: return "?_Statvfs@sys@tr2@std@@YA?AUspace_info@123@PEB_W@Z";
+ case 0x02ac: return "?_Swap_all@_Container_base0@std@@QEAAXAEAU12@@Z";
+ case 0x02ad: return "?_Swap_all@_Container_base12@std@@QEAAXAEAU12@@Z";
+ case 0x02ae: return "?_Symlink@sys@tr2@std@@YAHPEBD0@Z";
+ case 0x02af: return "?_Symlink@sys@tr2@std@@YAHPEB_W0@Z";
+ case 0x02b0: return "?_Sync@ios_base@std@@0_NA";
+ case 0x02b1: return "?_Syserror_map@std@@YAPEBDH@Z";
+ case 0x02b2: return "?_Throw_C_error@std@@YAXH@Z";
+ case 0x02b3: return "?_Throw_Cpp_error@std@@YAXH@Z";
+ case 0x02b4: return "?_Throw_future_error@std@@YAXAEBVerror_code@1@@Z";
+ case 0x02b5: return "?_Throw_lock_error@threads@stdext@@YAXXZ";
+ case 0x02b6: return "?_Throw_resource_error@threads@stdext@@YAXXZ";
+ case 0x02b7: return "?_Tidy@?$_Yarn@D@std@@AEAAXXZ";
+ case 0x02b8: return "?_Tidy@?$_Yarn@_W@std@@AEAAXXZ";
+ case 0x02b9: return "?_Tidy@?$ctype@D@std@@IEAAXXZ";
+ case 0x02ba:
+ return "?_Tidy@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@AEAAXXZ";
+ case 0x02bb:
+ return "?_Tidy@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@AEAAXXZ";
+ case 0x02bc:
+ return "?_Tidy@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@AEAAXXZ";
+ case 0x02bd: return "?_Tidy@ios_base@std@@AEAAXXZ";
+ case 0x02be: return "?_Unlink@sys@tr2@std@@YAHPEBD@Z";
+ case 0x02bf: return "?_Unlink@sys@tr2@std@@YAHPEB_W@Z";
+ case 0x02c0:
+ return "?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAAXXZ";
+ case 0x02c1:
+ return "?_Unlock@?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAAXXZ";
+ case 0x02c2:
+ return "?_Unlock@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@UEAAXXZ";
+ case 0x02c3: return "?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ";
+ case 0x02c4: return "?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ";
+ case 0x02c5: return "?_W_Gettnames@_Locinfo@std@@QEBA?AV_Timevec@2@XZ";
+ case 0x02c6: return "?_Winerror_map@std@@YAPEBDH@Z";
+ case 0x02c7: return "?_XLgamma@std@@YAMM@Z";
+ case 0x02c8: return "?_XLgamma@std@@YANN@Z";
+ case 0x02c9: return "?_XLgamma@std@@YAOO@Z";
+ case 0x02ca: return "?_Xbad_alloc@std@@YAXXZ";
+ case 0x02cb: return "?_Xbad_function_call@std@@YAXXZ";
+ case 0x02cc: return "?_Xinvalid_argument@std@@YAXPEBD@Z";
+ case 0x02cd: return "?_Xlength_error@std@@YAXPEBD@Z";
+ case 0x02ce: return "?_Xout_of_range@std@@YAXPEBD@Z";
+ case 0x02cf: return "?_Xoverflow_error@std@@YAXPEBD@Z";
+ case 0x02d0: return "?_Xregex_error@std@@YAXW4error_type@regex_constants@1@@Z";
+ case 0x02d1: return "?_Xruntime_error@std@@YAXPEBD@Z";
+ case 0x02d2: return "?adopt_lock@std@@3Uadopt_lock_t@1@B";
+ case 0x02d3: return "?always_noconv@codecvt_base@std@@QEBA_NXZ";
+ case 0x02d4: return "?bad@ios_base@std@@QEBA_NXZ";
+ case 0x02d5: return "?c_str@?$_Yarn@D@std@@QEBAPEBDXZ";
+ case 0x02d6: return "?cancel@agent@Concurrency@@QEAA_NXZ";
+ case 0x02d7: return "?cerr@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A";
+ case 0x02d8: return "?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A";
+ case 0x02d9: return "?classic@locale@std@@SAAEBV12@XZ";
+ case 0x02da: return "?classic_table@?$ctype@D@std@@SAPEBFXZ";
+ case 0x02db:
+ return "?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z";
+ case 0x02dc: return "?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z";
+ case 0x02dd:
+ return "?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z";
+ case 0x02de: return "?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z";
+ case 0x02df:
+ return "?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z";
+ case 0x02e0:
+ return "?clear@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z";
+ case 0x02e1: return "?clear@ios_base@std@@QEAAXH@Z";
+ case 0x02e2: return "?clear@ios_base@std@@QEAAXH_N@Z";
+ case 0x02e3: return "?clear@ios_base@std@@QEAAXI@Z";
+ case 0x02e4: return "?clog@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A";
+ case 0x02e5:
+ return "?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEBV12@"
+ "@Z";
+ case 0x02e6:
+ return "?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEBV12@"
+ "@Z";
+ case 0x02e7:
+ return "?copyfmt@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@"
+ "AEBV12@@Z";
+ case 0x02e8: return "?copyfmt@ios_base@std@@QEAAAEAV12@AEBV12@@Z";
+ case 0x02e9: return "?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A";
+ case 0x02ea:
+ return "?date_order@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+ "std@@@std@@@std@@QEBA?AW4dateorder@time_base@2@XZ";
+ case 0x02eb:
+ return "?date_order@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+ "std@@@std@@@std@@QEBA?AW4dateorder@time_base@2@XZ";
+ case 0x02ec:
+ return "?date_order@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@std@@@std@@QEBA?AW4dateorder@time_base@2@XZ";
+ case 0x02ed: return "?defer_lock@std@@3Udefer_lock_t@1@B";
+ case 0x02ee: return "?do_always_noconv@?$codecvt@DDH@std@@MEBA_NXZ";
+ case 0x02ef: return "?do_always_noconv@?$codecvt@GDH@std@@MEBA_NXZ";
+ case 0x02f0: return "?do_always_noconv@?$codecvt@_WDH@std@@MEBA_NXZ";
+ case 0x02f1: return "?do_always_noconv@codecvt_base@std@@MEBA_NXZ";
+ case 0x02f2:
+ return "?do_date_order@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+ "std@@@std@@@std@@MEBA?AW4dateorder@time_base@2@XZ";
+ case 0x02f3:
+ return "?do_date_order@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+ "std@@@std@@@std@@MEBA?AW4dateorder@time_base@2@XZ";
+ case 0x02f4:
+ return "?do_date_order@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@"
+ "_W@std@@@std@@@std@@MEBA?AW4dateorder@time_base@2@XZ";
+ case 0x02f5: return "?do_encoding@?$codecvt@GDH@std@@MEBAHXZ";
+ case 0x02f6: return "?do_encoding@?$codecvt@_WDH@std@@MEBAHXZ";
+ case 0x02f7: return "?do_encoding@codecvt_base@std@@MEBAHXZ";
+ case 0x02f8:
+ return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAG@Z";
+ case 0x02f9:
+ return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAI@Z";
+ case 0x02fa:
+ return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAJ@Z";
+ case 0x02fb:
+ return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAK@Z";
+ case 0x02fc:
+ return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAM@Z";
+ case 0x02fd:
+ return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAN@Z";
+ case 0x02fe:
+ return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAO@Z";
+ case 0x02ff:
+ return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
+ case 0x0300:
+ return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEA_J@Z";
+ case 0x0301:
+ return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEA_K@Z";
+ case 0x0302:
+ return "?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEA_N@Z";
+ case 0x0303:
+ return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAG@Z";
+ case 0x0304:
+ return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAI@Z";
+ case 0x0305:
+ return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAJ@Z";
+ case 0x0306:
+ return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAK@Z";
+ case 0x0307:
+ return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAM@Z";
+ case 0x0308:
+ return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAN@Z";
+ case 0x0309:
+ return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAO@Z";
+ case 0x030a:
+ return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
+ case 0x030b:
+ return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEA_J@Z";
+ case 0x030c:
+ return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEA_K@Z";
+ case 0x030d:
+ return "?do_get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEA_N@Z";
+ case 0x030e:
+ return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@0AEAVios_base@2@AEAHAEAG@Z";
+ case 0x030f:
+ return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@0AEAVios_base@2@AEAHAEAI@Z";
+ case 0x0310:
+ return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@0AEAVios_base@2@AEAHAEAJ@Z";
+ case 0x0311:
+ return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@0AEAVios_base@2@AEAHAEAK@Z";
+ case 0x0312:
+ return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@0AEAVios_base@2@AEAHAEAM@Z";
+ case 0x0313:
+ return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@0AEAVios_base@2@AEAHAEAN@Z";
+ case 0x0314:
+ return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@0AEAVios_base@2@AEAHAEAO@Z";
+ case 0x0315:
+ return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
+ case 0x0316:
+ return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@0AEAVios_base@2@AEAHAEA_J@Z";
+ case 0x0317:
+ return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@0AEAVios_base@2@AEAHAEA_K@Z";
+ case 0x0318:
+ return "?do_get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@0AEAVios_base@2@AEAHAEA_N@Z";
+ case 0x0319:
+ return "?do_get@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
+ case 0x031a:
+ return "?do_get@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
+ case 0x031b:
+ return "?do_get@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@"
+ "@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
+ case 0x031c:
+ return "?do_get_date@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+ "std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@"
+ "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x031d:
+ return "?do_get_date@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+ "std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@"
+ "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x031e:
+ return "?do_get_date@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_"
+ "W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x031f:
+ return "?do_get_monthname@?$time_get@DV?$istreambuf_iterator@DU?$char_"
+ "traits@D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_"
+ "traits@D@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x0320:
+ return "?do_get_monthname@?$time_get@GV?$istreambuf_iterator@GU?$char_"
+ "traits@G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_"
+ "traits@G@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x0321:
+ return "?do_get_monthname@?$time_get@_WV?$istreambuf_iterator@_WU?$char_"
+ "traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_"
+ "traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x0322:
+ return "?do_get_time@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+ "std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@"
+ "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x0323:
+ return "?do_get_time@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+ "std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@"
+ "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x0324:
+ return "?do_get_time@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_"
+ "W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x0325:
+ return "?do_get_weekday@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@"
+ "D@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@"
+ "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x0326:
+ return "?do_get_weekday@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@"
+ "G@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@"
+ "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x0327:
+ return "?do_get_weekday@?$time_get@_WV?$istreambuf_iterator@_WU?$char_"
+ "traits@_W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_"
+ "traits@_W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x0328:
+ return "?do_get_year@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+ "std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@"
+ "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x0329:
+ return "?do_get_year@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+ "std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@"
+ "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x032a:
+ return "?do_get_year@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_"
+ "W@std@@@std@@@std@@MEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x032b:
+ return "?do_in@?$codecvt@DDH@std@@MEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
+ case 0x032c:
+ return "?do_in@?$codecvt@GDH@std@@MEBAHAEAHPEBD1AEAPEBDPEAG3AEAPEAG@Z";
+ case 0x032d:
+ return "?do_in@?$codecvt@_WDH@std@@MEBAHAEAHPEBD1AEAPEBDPEA_W3AEAPEA_W@Z";
+ case 0x032e: return "?do_is@?$ctype@G@std@@MEBAPEBGPEBG0PEAF@Z";
+ case 0x032f: return "?do_is@?$ctype@G@std@@MEBA_NFG@Z";
+ case 0x0330: return "?do_is@?$ctype@_W@std@@MEBAPEB_WPEB_W0PEAF@Z";
+ case 0x0331: return "?do_is@?$ctype@_W@std@@MEBA_NF_W@Z";
+ case 0x0332: return "?do_length@?$codecvt@DDH@std@@MEBAHAEAHPEBD1_K@Z";
+ case 0x0333: return "?do_length@?$codecvt@GDH@std@@MEBAHAEAHPEBD1_K@Z";
+ case 0x0334: return "?do_length@?$codecvt@_WDH@std@@MEBAHAEAHPEBD1_K@Z";
+ case 0x0335: return "?do_max_length@?$codecvt@GDH@std@@MEBAHXZ";
+ case 0x0336: return "?do_max_length@?$codecvt@_WDH@std@@MEBAHXZ";
+ case 0x0337: return "?do_max_length@codecvt_base@std@@MEBAHXZ";
+ case 0x0338: return "?do_narrow@?$ctype@D@std@@MEBADDD@Z";
+ case 0x0339: return "?do_narrow@?$ctype@D@std@@MEBAPEBDPEBD0DPEAD@Z";
+ case 0x033a: return "?do_narrow@?$ctype@G@std@@MEBADGD@Z";
+ case 0x033b: return "?do_narrow@?$ctype@G@std@@MEBAPEBGPEBG0DPEAD@Z";
+ case 0x033c: return "?do_narrow@?$ctype@_W@std@@MEBAD_WD@Z";
+ case 0x033d: return "?do_narrow@?$ctype@_W@std@@MEBAPEB_WPEB_W0DPEAD@Z";
+ case 0x033e:
+ return "?do_out@?$codecvt@DDH@std@@MEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
+ case 0x033f:
+ return "?do_out@?$codecvt@GDH@std@@MEBAHAEAHPEBG1AEAPEBGPEAD3AEAPEAD@Z";
+ case 0x0340:
+ return "?do_out@?$codecvt@_WDH@std@@MEBAHAEAHPEB_W1AEAPEB_WPEAD3AEAPEAD@Z";
+ case 0x0341:
+ return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@AEAVios_base@2@DJ@Z";
+ case 0x0342:
+ return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@AEAVios_base@2@DK@Z";
+ case 0x0343:
+ return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@AEAVios_base@2@DN@Z";
+ case 0x0344:
+ return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@AEAVios_base@2@DO@Z";
+ case 0x0345:
+ return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@AEAVios_base@2@DPEBX@Z";
+ case 0x0346:
+ return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@AEAVios_base@2@D_J@Z";
+ case 0x0347:
+ return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@AEAVios_base@2@D_K@Z";
+ case 0x0348:
+ return "?do_put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@AEAVios_base@2@D_N@Z";
+ case 0x0349:
+ return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@AEAVios_base@2@GJ@Z";
+ case 0x034a:
+ return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@AEAVios_base@2@GK@Z";
+ case 0x034b:
+ return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@AEAVios_base@2@GN@Z";
+ case 0x034c:
+ return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@AEAVios_base@2@GO@Z";
+ case 0x034d:
+ return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@AEAVios_base@2@GPEBX@Z";
+ case 0x034e:
+ return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@AEAVios_base@2@G_J@Z";
+ case 0x034f:
+ return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@AEAVios_base@2@G_K@Z";
+ case 0x0350:
+ return "?do_put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@AEAVios_base@2@G_N@Z";
+ case 0x0351:
+ return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@AEAVios_base@2@_WJ@Z";
+ case 0x0352:
+ return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@AEAVios_base@2@_WK@Z";
+ case 0x0353:
+ return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@AEAVios_base@2@_WN@Z";
+ case 0x0354:
+ return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@AEAVios_base@2@_WO@Z";
+ case 0x0355:
+ return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@AEAVios_base@2@_WPEBX@Z";
+ case 0x0356:
+ return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@AEAVios_base@2@_W_J@Z";
+ case 0x0357:
+ return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@AEAVios_base@2@_W_K@Z";
+ case 0x0358:
+ return "?do_put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@"
+ "@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@AEAVios_base@2@_W_N@Z";
+ case 0x0359:
+ return "?do_put@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@AEAVios_base@2@DPEBUtm@@DD@Z";
+ case 0x035a:
+ return "?do_put@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@"
+ "std@@@std@@MEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@AEAVios_base@2@GPEBUtm@@DD@Z";
+ case 0x035b:
+ return "?do_put@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@"
+ "@@std@@@std@@MEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "2@V32@AEAVios_base@2@_WPEBUtm@@DD@Z";
+ case 0x035c: return "?do_scan_is@?$ctype@G@std@@MEBAPEBGFPEBG0@Z";
+ case 0x035d: return "?do_scan_is@?$ctype@_W@std@@MEBAPEB_WFPEB_W0@Z";
+ case 0x035e: return "?do_scan_not@?$ctype@G@std@@MEBAPEBGFPEBG0@Z";
+ case 0x035f: return "?do_scan_not@?$ctype@_W@std@@MEBAPEB_WFPEB_W0@Z";
+ case 0x0360: return "?do_tolower@?$ctype@D@std@@MEBADD@Z";
+ case 0x0361: return "?do_tolower@?$ctype@D@std@@MEBAPEBDPEADPEBD@Z";
+ case 0x0362: return "?do_tolower@?$ctype@G@std@@MEBAGG@Z";
+ case 0x0363: return "?do_tolower@?$ctype@G@std@@MEBAPEBGPEAGPEBG@Z";
+ case 0x0364: return "?do_tolower@?$ctype@_W@std@@MEBAPEB_WPEA_WPEB_W@Z";
+ case 0x0365: return "?do_tolower@?$ctype@_W@std@@MEBA_W_W@Z";
+ case 0x0366: return "?do_toupper@?$ctype@D@std@@MEBADD@Z";
+ case 0x0367: return "?do_toupper@?$ctype@D@std@@MEBAPEBDPEADPEBD@Z";
+ case 0x0368: return "?do_toupper@?$ctype@G@std@@MEBAGG@Z";
+ case 0x0369: return "?do_toupper@?$ctype@G@std@@MEBAPEBGPEAGPEBG@Z";
+ case 0x036a: return "?do_toupper@?$ctype@_W@std@@MEBAPEB_WPEA_WPEB_W@Z";
+ case 0x036b: return "?do_toupper@?$ctype@_W@std@@MEBA_W_W@Z";
+ case 0x036c: return "?do_unshift@?$codecvt@DDH@std@@MEBAHAEAHPEAD1AEAPEAD@Z";
+ case 0x036d: return "?do_unshift@?$codecvt@GDH@std@@MEBAHAEAHPEAD1AEAPEAD@Z";
+ case 0x036e: return "?do_unshift@?$codecvt@_WDH@std@@MEBAHAEAHPEAD1AEAPEAD@Z";
+ case 0x036f: return "?do_widen@?$ctype@D@std@@MEBADD@Z";
+ case 0x0370: return "?do_widen@?$ctype@D@std@@MEBAPEBDPEBD0PEAD@Z";
+ case 0x0371: return "?do_widen@?$ctype@G@std@@MEBAGD@Z";
+ case 0x0372: return "?do_widen@?$ctype@G@std@@MEBAPEBDPEBD0PEAG@Z";
+ case 0x0373: return "?do_widen@?$ctype@_W@std@@MEBAPEBDPEBD0PEA_W@Z";
+ case 0x0374: return "?do_widen@?$ctype@_W@std@@MEBA_WD@Z";
+ case 0x0375: return "?done@agent@Concurrency@@IEAA_NXZ";
+ case 0x0376:
+ return "?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
+ case 0x0377:
+ return "?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
+ case 0x0378:
+ return "?eback@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
+ case 0x0379:
+ return "?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
+ case 0x037a:
+ return "?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
+ case 0x037b:
+ return "?egptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
+ case 0x037c: return "?empty@?$_Yarn@D@std@@QEBA_NXZ";
+ case 0x037d: return "?empty@locale@std@@SA?AV12@XZ";
+ case 0x037e: return "?encoding@codecvt_base@std@@QEBAHXZ";
+ case 0x037f: return "?eof@ios_base@std@@QEBA_NXZ";
+ case 0x0380:
+ return "?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
+ case 0x0381:
+ return "?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
+ case 0x0382:
+ return "?epptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
+ case 0x0383: return "?exceptions@ios_base@std@@QEAAXH@Z";
+ case 0x0384: return "?exceptions@ios_base@std@@QEAAXI@Z";
+ case 0x0385: return "?exceptions@ios_base@std@@QEBAHXZ";
+ case 0x0386: return "?fail@ios_base@std@@QEBA_NXZ";
+ case 0x0387: return "?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z";
+ case 0x0388: return "?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ";
+ case 0x0389: return "?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAGG@Z";
+ case 0x038a: return "?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGXZ";
+ case 0x038b:
+ return "?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA_W_W@Z";
+ case 0x038c:
+ return "?fill@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WXZ";
+ case 0x038d: return "?flags@ios_base@std@@QEAAHH@Z";
+ case 0x038e: return "?flags@ios_base@std@@QEBAHXZ";
+ case 0x038f:
+ return "?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ";
+ case 0x0390:
+ return "?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ";
+ case 0x0391:
+ return "?flush@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ";
+ case 0x0392:
+ return "?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z";
+ case 0x0393:
+ return "?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z";
+ case 0x0394:
+ return "?gbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z";
+ case 0x0395:
+ return "?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QEBA_JXZ";
+ case 0x0396:
+ return "?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QEBA_JXZ";
+ case 0x0397:
+ return "?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEBA_JXZ";
+ case 0x0398:
+ return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAD@Z";
+ case 0x0399:
+ return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$"
+ "basic_streambuf@DU?$char_traits@D@std@@@2@@Z";
+ case 0x039a:
+ return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$"
+ "basic_streambuf@DU?$char_traits@D@std@@@2@D@Z";
+ case 0x039b:
+ return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@"
+ "Z";
+ case 0x039c:
+ return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_"
+ "JD@Z";
+ case 0x039d:
+ return "?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+ case 0x039e:
+ return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAG@Z";
+ case 0x039f:
+ return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$"
+ "basic_streambuf@GU?$char_traits@G@std@@@2@@Z";
+ case 0x03a0:
+ return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$"
+ "basic_streambuf@GU?$char_traits@G@std@@@2@G@Z";
+ case 0x03a1:
+ return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@"
+ "Z";
+ case 0x03a2:
+ return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_"
+ "JG@Z";
+ case 0x03a3:
+ return "?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ";
+ case 0x03a4:
+ return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?"
+ "$basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z";
+ case 0x03a5:
+ return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEAV?"
+ "$basic_streambuf@_WU?$char_traits@_W@std@@@2@_W@Z";
+ case 0x03a6:
+ return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@AEA_"
+ "W@Z";
+ case 0x03a7:
+ return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_"
+ "W_J@Z";
+ case 0x03a8:
+ return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_"
+ "W_J_W@Z";
+ case 0x03a9:
+ return "?get@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
+ case 0x03aa:
+ return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAG@Z";
+ case 0x03ab:
+ return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAI@Z";
+ case 0x03ac:
+ return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAJ@Z";
+ case 0x03ad:
+ return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAK@Z";
+ case 0x03ae:
+ return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAM@Z";
+ case 0x03af:
+ return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAN@Z";
+ case 0x03b0:
+ return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAO@Z";
+ case 0x03b1:
+ return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAPEAX@Z";
+ case 0x03b2:
+ return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEA_J@Z";
+ case 0x03b3:
+ return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEA_K@Z";
+ case 0x03b4:
+ return "?get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEA_N@Z";
+ case 0x03b5:
+ return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAG@Z";
+ case 0x03b6:
+ return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAI@Z";
+ case 0x03b7:
+ return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAJ@Z";
+ case 0x03b8:
+ return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAK@Z";
+ case 0x03b9:
+ return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAM@Z";
+ case 0x03ba:
+ return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAN@Z";
+ case 0x03bb:
+ return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAO@Z";
+ case 0x03bc:
+ return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEAPEAX@Z";
+ case 0x03bd:
+ return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEA_J@Z";
+ case 0x03be:
+ return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEA_K@Z";
+ case 0x03bf:
+ return "?get@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHAEA_N@Z";
+ case 0x03c0:
+ return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAG@Z";
+ case 0x03c1:
+ return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAI@Z";
+ case 0x03c2:
+ return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAJ@Z";
+ case 0x03c3:
+ return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAK@Z";
+ case 0x03c4:
+ return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAM@Z";
+ case 0x03c5:
+ return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAN@Z";
+ case 0x03c6:
+ return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAO@Z";
+ case 0x03c7:
+ return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEAPEAX@Z";
+ case 0x03c8:
+ return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEA_J@Z";
+ case 0x03c9:
+ return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEA_K@Z";
+ case 0x03ca:
+ return "?get@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHAEA_N@Z";
+ case 0x03cb:
+ return "?get@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@"
+ "@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
+ case 0x03cc:
+ return "?get@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@"
+ "@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHPEAUtm@@PEBD4@Z";
+ case 0x03cd:
+ return "?get@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@"
+ "@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
+ case 0x03ce:
+ return "?get@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@"
+ "@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "0AEAVios_base@2@AEAHPEAUtm@@PEBG4@Z";
+ case 0x03cf:
+ return "?get@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHPEAUtm@@DD@Z";
+ case 0x03d0:
+ return "?get@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHPEAUtm@@PEB_W4@Z";
+ case 0x03d1:
+ return "?get_date@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@"
+ "@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03d2:
+ return "?get_date@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@"
+ "@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03d3:
+ return "?get_date@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03d4:
+ return "?get_monthname@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+ "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@"
+ "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03d5:
+ return "?get_monthname@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+ "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@"
+ "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03d6:
+ return "?get_monthname@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@"
+ "_W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_"
+ "W@std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03d7: return "?get_new_handler@std@@YAP6AXXZXZ";
+ case 0x03d8:
+ return "?get_time@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@"
+ "@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03d9:
+ return "?get_time@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@"
+ "@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03da:
+ return "?get_time@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03db:
+ return "?get_weekday@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@"
+ "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@"
+ "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03dc:
+ return "?get_weekday@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@"
+ "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@"
+ "@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03dd:
+ return "?get_weekday@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_"
+ "W@std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03de:
+ return "?get_year@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@"
+ "@std@@@std@@QEBA?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03df:
+ return "?get_year@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@"
+ "@std@@@std@@QEBA?AV?$istreambuf_iterator@GU?$char_traits@G@std@@@2@"
+ "V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03e0:
+ return "?get_year@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@std@@@std@@QEBA?AV?$istreambuf_iterator@_WU?$char_traits@_W@"
+ "std@@@2@V32@0AEAVios_base@2@AEAHPEAUtm@@@Z";
+ case 0x03e1:
+ return "?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@"
+ "PEAD_J@Z";
+ case 0x03e2:
+ return "?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@"
+ "PEAD_JD@Z";
+ case 0x03e3:
+ return "?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@"
+ "PEAG_J@Z";
+ case 0x03e4:
+ return "?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@"
+ "PEAG_JG@Z";
+ case 0x03e5:
+ return "?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@"
+ "PEA_W_J@Z";
+ case 0x03e6:
+ return "?getline@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@"
+ "PEA_W_J_W@Z";
+ case 0x03e7:
+ return "?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEBA?"
+ "AVlocale@2@XZ";
+ case 0x03e8:
+ return "?getloc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEBA?"
+ "AVlocale@2@XZ";
+ case 0x03e9:
+ return "?getloc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEBA?"
+ "AVlocale@2@XZ";
+ case 0x03ea: return "?getloc@ios_base@std@@QEBA?AVlocale@2@XZ";
+ case 0x03eb: return "?global@locale@std@@SA?AV12@AEBV12@@Z";
+ case 0x03ec: return "?good@ios_base@std@@QEBA_NXZ";
+ case 0x03ed:
+ return "?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
+ case 0x03ee:
+ return "?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
+ case 0x03ef:
+ return "?gptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
+ case 0x03f0: return "?id@?$codecvt@DDH@std@@2V0locale@2@A";
+ case 0x03f1: return "?id@?$codecvt@GDH@std@@2V0locale@2@A";
+ case 0x03f2: return "?id@?$codecvt@_WDH@std@@2V0locale@2@A";
+ case 0x03f3: return "?id@?$collate@D@std@@2V0locale@2@A";
+ case 0x03f4: return "?id@?$collate@G@std@@2V0locale@2@A";
+ case 0x03f5: return "?id@?$collate@_W@std@@2V0locale@2@A";
+ case 0x03f6: return "?id@?$ctype@D@std@@2V0locale@2@A";
+ case 0x03f7: return "?id@?$ctype@G@std@@2V0locale@2@A";
+ case 0x03f8: return "?id@?$ctype@_W@std@@2V0locale@2@A";
+ case 0x03f9: return "?id@?$messages@D@std@@2V0locale@2@A";
+ case 0x03fa: return "?id@?$messages@G@std@@2V0locale@2@A";
+ case 0x03fb: return "?id@?$messages@_W@std@@2V0locale@2@A";
+ case 0x03fc:
+ return "?id@?$money_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@"
+ "@@std@@2V0locale@2@A";
+ case 0x03fd:
+ return "?id@?$money_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@"
+ "@@std@@2V0locale@2@A";
+ case 0x03fe:
+ return "?id@?$money_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@2V0locale@2@A";
+ case 0x03ff:
+ return "?id@?$money_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@"
+ "@@std@@2V0locale@2@A";
+ case 0x0400:
+ return "?id@?$money_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@"
+ "@@std@@2V0locale@2@A";
+ case 0x0401:
+ return "?id@?$money_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@2V0locale@2@A";
+ case 0x0402: return "?id@?$moneypunct@D$00@std@@2V0locale@2@A";
+ case 0x0403: return "?id@?$moneypunct@D$0A@@std@@2V0locale@2@A";
+ case 0x0404: return "?id@?$moneypunct@G$00@std@@2V0locale@2@A";
+ case 0x0405: return "?id@?$moneypunct@G$0A@@std@@2V0locale@2@A";
+ case 0x0406: return "?id@?$moneypunct@_W$00@std@@2V0locale@2@A";
+ case 0x0407: return "?id@?$moneypunct@_W$0A@@std@@2V0locale@2@A";
+ case 0x0408:
+ return "?id@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@2V0locale@2@A";
+ case 0x0409:
+ return "?id@?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@2V0locale@2@A";
+ case 0x040a:
+ return "?id@?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@2V0locale@2@A";
+ case 0x040b:
+ return "?id@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@@"
+ "std@@2V0locale@2@A";
+ case 0x040c:
+ return "?id@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@"
+ "std@@2V0locale@2@A";
+ case 0x040d:
+ return "?id@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@2V0locale@2@A";
+ case 0x040e: return "?id@?$numpunct@D@std@@2V0locale@2@A";
+ case 0x040f: return "?id@?$numpunct@G@std@@2V0locale@2@A";
+ case 0x0410: return "?id@?$numpunct@_W@std@@2V0locale@2@A";
+ case 0x0411:
+ return "?id@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@2V0locale@2@A";
+ case 0x0412:
+ return "?id@?$time_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@2V0locale@2@A";
+ case 0x0413:
+ return "?id@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@2V0locale@2@A";
+ case 0x0414:
+ return "?id@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@2V0locale@2@A";
+ case 0x0415:
+ return "?id@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@2V0locale@2@A";
+ case 0x0416:
+ return "?id@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@2V0locale@2@A";
+ case 0x0417:
+ return "?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@"
+ "Z";
+ case 0x0418:
+ return "?ignore@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JG@"
+ "Z";
+ case 0x0419:
+ return "?ignore@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_"
+ "JG@Z";
+ case 0x041a:
+ return "?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@"
+ "AEBV32@@Z";
+ case 0x041b:
+ return "?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@"
+ "AEBV32@@Z";
+ case 0x041c:
+ return "?imbue@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAA?AVlocale@2@"
+ "AEBV32@@Z";
+ case 0x041d:
+ return "?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@"
+ "MEAAXAEBVlocale@2@@Z";
+ case 0x041e:
+ return "?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@"
+ "MEAAXAEBVlocale@2@@Z";
+ case 0x041f:
+ return "?imbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@"
+ "MEAAXAEBVlocale@2@@Z";
+ case 0x0420: return "?imbue@ios_base@std@@QEAA?AVlocale@2@AEBV32@@Z";
+ case 0x0421:
+ return "?in@?$codecvt@DDH@std@@QEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
+ case 0x0422:
+ return "?in@?$codecvt@GDH@std@@QEBAHAEAHPEBD1AEAPEBDPEAG3AEAPEAG@Z";
+ case 0x0423:
+ return "?in@?$codecvt@_WDH@std@@QEBAHAEAHPEBD1AEAPEBDPEA_W3AEAPEA_W@Z";
+ case 0x0424:
+ return "?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JXZ";
+ case 0x0425:
+ return "?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JXZ";
+ case 0x0426:
+ return "?in_avail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JXZ";
+ case 0x0427:
+ return "?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$basic_"
+ "streambuf@DU?$char_traits@D@std@@@2@_N@Z";
+ case 0x0428:
+ return "?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$basic_"
+ "streambuf@GU?$char_traits@G@std@@@2@_N@Z";
+ case 0x0429:
+ return "?init@?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAAXPEAV?$basic_"
+ "streambuf@_WU?$char_traits@_W@std@@@2@_N@Z";
+ case 0x042a: return "?intl@?$moneypunct@D$00@std@@2_NB";
+ case 0x042b: return "?intl@?$moneypunct@D$0A@@std@@2_NB";
+ case 0x042c: return "?intl@?$moneypunct@G$00@std@@2_NB";
+ case 0x042d: return "?intl@?$moneypunct@G$0A@@std@@2_NB";
+ case 0x042e: return "?intl@?$moneypunct@_W$00@std@@2_NB";
+ case 0x042f: return "?intl@?$moneypunct@_W$0A@@std@@2_NB";
+ case 0x0430:
+ return "?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z";
+ case 0x0431:
+ return "?ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z";
+ case 0x0432:
+ return "?ipfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_N_N@Z";
+ case 0x0433: return "?is@?$ctype@D@std@@QEBAPEBDPEBD0PEAF@Z";
+ case 0x0434: return "?is@?$ctype@D@std@@QEBA_NFD@Z";
+ case 0x0435: return "?is@?$ctype@G@std@@QEBAPEBGPEBG0PEAF@Z";
+ case 0x0436: return "?is@?$ctype@G@std@@QEBA_NFG@Z";
+ case 0x0437: return "?is@?$ctype@_W@std@@QEBAPEB_WPEB_W0PEAF@Z";
+ case 0x0438: return "?is@?$ctype@_W@std@@QEBA_NF_W@Z";
+ case 0x0439: return "?is_current_task_group_canceling@Concurrency@@YA_NXZ";
+ case 0x043a:
+ return "?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+ case 0x043b:
+ return "?isfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+ case 0x043c:
+ return "?isfx@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+ case 0x043d: return "?iword@ios_base@std@@QEAAAEAJH@Z";
+ case 0x043e: return "?length@?$codecvt@DDH@std@@QEBAHAEAHPEBD1_K@Z";
+ case 0x043f: return "?length@?$codecvt@GDH@std@@QEBAHAEAHPEBD1_K@Z";
+ case 0x0440: return "?length@?$codecvt@_WDH@std@@QEBAHAEAHPEBD1_K@Z";
+ case 0x0441: return "?max_length@codecvt_base@std@@QEBAHXZ";
+ case 0x0442:
+ return "?move@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAX$$QEAV12@@Z";
+ case 0x0443:
+ return "?move@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z";
+ case 0x0444:
+ return "?move@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAX$$QEAV12@@Z";
+ case 0x0445:
+ return "?move@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z";
+ case 0x0446:
+ return "?move@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAX$$QEAV12@@Z";
+ case 0x0447:
+ return "?move@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z";
+ case 0x0448:
+ return "?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADDD@Z";
+ case 0x0449:
+ return "?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBADGD@Z";
+ case 0x044a:
+ return "?narrow@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAD_WD@Z";
+ case 0x044b: return "?narrow@?$ctype@D@std@@QEBADDD@Z";
+ case 0x044c: return "?narrow@?$ctype@D@std@@QEBAPEBDPEBD0DPEAD@Z";
+ case 0x044d: return "?narrow@?$ctype@G@std@@QEBADGD@Z";
+ case 0x044e: return "?narrow@?$ctype@G@std@@QEBAPEBGPEBG0DPEAD@Z";
+ case 0x044f: return "?narrow@?$ctype@_W@std@@QEBAD_WD@Z";
+ case 0x0450: return "?narrow@?$ctype@_W@std@@QEBAPEB_WPEB_W0DPEAD@Z";
+ case 0x0451:
+ return "?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA_NXZ";
+ case 0x0452:
+ return "?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA_NXZ";
+ case 0x0453:
+ return "?opfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA_NXZ";
+ case 0x0454:
+ return "?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+ case 0x0455:
+ return "?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+ case 0x0456:
+ return "?osfx@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+ case 0x0457:
+ return "?out@?$codecvt@DDH@std@@QEBAHAEAHPEBD1AEAPEBDPEAD3AEAPEAD@Z";
+ case 0x0458:
+ return "?out@?$codecvt@GDH@std@@QEBAHAEAHPEBG1AEAPEBGPEAD3AEAPEAD@Z";
+ case 0x0459:
+ return "?out@?$codecvt@_WDH@std@@QEBAHAEAHPEB_W1AEAPEB_WPEAD3AEAPEAD@Z";
+ case 0x045a:
+ return "?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z";
+ case 0x045b:
+ return "?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z";
+ case 0x045c:
+ return "?overflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@Z";
+ case 0x045d:
+ return "?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z";
+ case 0x045e:
+ return "?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z";
+ case 0x045f:
+ return "?pbackfail@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGG@"
+ "Z";
+ case 0x0460:
+ return "?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
+ case 0x0461:
+ return "?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
+ case 0x0462:
+ return "?pbase@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
+ case 0x0463:
+ return "?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z";
+ case 0x0464:
+ return "?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z";
+ case 0x0465:
+ return "?pbump@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXH@Z";
+ case 0x0466:
+ return "?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+ case 0x0467:
+ return "?peek@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ";
+ case 0x0468:
+ return "?peek@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
+ case 0x0469:
+ return "?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ";
+ case 0x046a:
+ return "?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ";
+ case 0x046b:
+ return "?pptr@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEBAPEA_WXZ";
+ case 0x046c: return "?precision@ios_base@std@@QEAA_J_J@Z";
+ case 0x046d: return "?precision@ios_base@std@@QEBA_JXZ";
+ case 0x046e:
+ return "?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?"
+ "AVlocale@2@AEBV32@@Z";
+ case 0x046f:
+ return "?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?"
+ "AVlocale@2@AEBV32@@Z";
+ case 0x0470:
+ return "?pubimbue@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?"
+ "AVlocale@2@AEBV32@@Z";
+ case 0x0471:
+ return "?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$"
+ "fpos@H@2@_JHH@Z";
+ case 0x0472:
+ return "?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$"
+ "fpos@H@2@_JII@Z";
+ case 0x0473:
+ return "?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$"
+ "fpos@H@2@_JHH@Z";
+ case 0x0474:
+ return "?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$"
+ "fpos@H@2@_JII@Z";
+ case 0x0475:
+ return "?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?"
+ "AV?$fpos@H@2@_JHH@Z";
+ case 0x0476:
+ return "?pubseekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?"
+ "AV?$fpos@H@2@_JII@Z";
+ case 0x0477:
+ return "?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$"
+ "fpos@H@2@V32@H@Z";
+ case 0x0478:
+ return "?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$"
+ "fpos@H@2@V32@I@Z";
+ case 0x0479:
+ return "?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$"
+ "fpos@H@2@V32@H@Z";
+ case 0x047a:
+ return "?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$"
+ "fpos@H@2@V32@I@Z";
+ case 0x047b:
+ return "?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?"
+ "AV?$fpos@H@2@V32@H@Z";
+ case 0x047c:
+ return "?pubseekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA?"
+ "AV?$fpos@H@2@V32@I@Z";
+ case 0x047d:
+ return "?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@"
+ "QEAAPEAV12@PEAD_J@Z";
+ case 0x047e:
+ return "?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@"
+ "QEAAPEAV12@PEAG_J@Z";
+ case 0x047f:
+ return "?pubsetbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@"
+ "QEAAPEAV12@PEA_W_J@Z";
+ case 0x0480:
+ return "?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+ case 0x0481:
+ return "?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHXZ";
+ case 0x0482:
+ return "?pubsync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAHXZ";
+ case 0x0483:
+ return "?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z";
+ case 0x0484:
+ return "?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z";
+ case 0x0485:
+ return "?put@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_W@Z";
+ case 0x0486:
+ return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "AEAVios_base@2@DJ@Z";
+ case 0x0487:
+ return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "AEAVios_base@2@DK@Z";
+ case 0x0488:
+ return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "AEAVios_base@2@DN@Z";
+ case 0x0489:
+ return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "AEAVios_base@2@DO@Z";
+ case 0x048a:
+ return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "AEAVios_base@2@DPEBX@Z";
+ case 0x048b:
+ return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "AEAVios_base@2@D_J@Z";
+ case 0x048c:
+ return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "AEAVios_base@2@D_K@Z";
+ case 0x048d:
+ return "?put@?$num_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "AEAVios_base@2@D_N@Z";
+ case 0x048e:
+ return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "AEAVios_base@2@GJ@Z";
+ case 0x048f:
+ return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "AEAVios_base@2@GK@Z";
+ case 0x0490:
+ return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "AEAVios_base@2@GN@Z";
+ case 0x0491:
+ return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "AEAVios_base@2@GO@Z";
+ case 0x0492:
+ return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "AEAVios_base@2@GPEBX@Z";
+ case 0x0493:
+ return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "AEAVios_base@2@G_J@Z";
+ case 0x0494:
+ return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "AEAVios_base@2@G_K@Z";
+ case 0x0495:
+ return "?put@?$num_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@"
+ "@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "AEAVios_base@2@G_N@Z";
+ case 0x0496:
+ return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@AEAVios_base@2@_WJ@Z";
+ case 0x0497:
+ return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@AEAVios_base@2@_WK@Z";
+ case 0x0498:
+ return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@AEAVios_base@2@_WN@Z";
+ case 0x0499:
+ return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@AEAVios_base@2@_WO@Z";
+ case 0x049a:
+ return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@AEAVios_base@2@_WPEBX@Z";
+ case 0x049b:
+ return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@AEAVios_base@2@_W_J@Z";
+ case 0x049c:
+ return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@AEAVios_base@2@_W_K@Z";
+ case 0x049d:
+ return "?put@?$num_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@AEAVios_base@2@_W_N@Z";
+ case 0x049e:
+ return "?put@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@"
+ "@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "AEAVios_base@2@DPEBUtm@@DD@Z";
+ case 0x049f:
+ return "?put@?$time_put@DV?$ostreambuf_iterator@DU?$char_traits@D@std@@@std@"
+ "@@std@@QEBA?AV?$ostreambuf_iterator@DU?$char_traits@D@std@@@2@V32@"
+ "AEAVios_base@2@DPEBUtm@@PEBD3@Z";
+ case 0x04a0:
+ return "?put@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@"
+ "@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "AEAVios_base@2@GPEBUtm@@DD@Z";
+ case 0x04a1:
+ return "?put@?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@"
+ "@@std@@QEBA?AV?$ostreambuf_iterator@GU?$char_traits@G@std@@@2@V32@"
+ "AEAVios_base@2@GPEBUtm@@PEBG3@Z";
+ case 0x04a2:
+ return "?put@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@AEAVios_base@2@_WPEBUtm@@DD@Z";
+ case 0x04a3:
+ return "?put@?$time_put@_WV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@"
+ "std@@@std@@QEBA?AV?$ostreambuf_iterator@_WU?$char_traits@_W@std@@@2@"
+ "V32@AEAVios_base@2@_WPEBUtm@@PEB_W4@Z";
+ case 0x04a4:
+ return "?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@"
+ "Z";
+ case 0x04a5:
+ return "?putback@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@"
+ "Z";
+ case 0x04a6:
+ return "?putback@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_"
+ "W@Z";
+ case 0x04a7: return "?pword@ios_base@std@@QEAAAEAPEAXH@Z";
+ case 0x04a8:
+ return "?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_"
+ "streambuf@DU?$char_traits@D@std@@@2@PEAV32@@Z";
+ case 0x04a9:
+ return "?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_"
+ "streambuf@DU?$char_traits@D@std@@@2@XZ";
+ case 0x04aa:
+ return "?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_"
+ "streambuf@GU?$char_traits@G@std@@@2@PEAV32@@Z";
+ case 0x04ab:
+ return "?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_"
+ "streambuf@GU?$char_traits@G@std@@@2@XZ";
+ case 0x04ac:
+ return "?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_"
+ "streambuf@_WU?$char_traits@_W@std@@@2@PEAV32@@Z";
+ case 0x04ad:
+ return "?rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_"
+ "streambuf@_WU?$char_traits@_W@std@@@2@XZ";
+ case 0x04ae: return "?rdstate@ios_base@std@@QEBAHXZ";
+ case 0x04af:
+ return "?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_"
+ "J@Z";
+ case 0x04b0:
+ return "?read@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_"
+ "J@Z";
+ case 0x04b1:
+ return "?read@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@PEA_"
+ "W_J@Z";
+ case 0x04b2:
+ return "?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@"
+ "Z";
+ case 0x04b3:
+ return "?readsome@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@"
+ "Z";
+ case 0x04b4:
+ return "?readsome@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_"
+ "W_J@Z";
+ case 0x04b5:
+ return "?register_callback@ios_base@std@@QEAAXP6AXW4event@12@AEAV12@H@ZH@Z";
+ case 0x04b6: return "?resetiosflags@std@@YA?AU?$_Smanip@H@1@H@Z";
+ case 0x04b7:
+ return "?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+ case 0x04b8:
+ return "?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
+ case 0x04b9:
+ return "?sbumpc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
+ case 0x04ba: return "?scan_is@?$ctype@D@std@@QEBAPEBDFPEBD0@Z";
+ case 0x04bb: return "?scan_is@?$ctype@G@std@@QEBAPEBGFPEBG0@Z";
+ case 0x04bc: return "?scan_is@?$ctype@_W@std@@QEBAPEB_WFPEB_W0@Z";
+ case 0x04bd: return "?scan_not@?$ctype@D@std@@QEBAPEBDFPEBD0@Z";
+ case 0x04be: return "?scan_not@?$ctype@G@std@@QEBAPEBGFPEBG0@Z";
+ case 0x04bf: return "?scan_not@?$ctype@_W@std@@QEBAPEB_WFPEB_W0@Z";
+ case 0x04c0:
+ return "?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$"
+ "fpos@H@2@@Z";
+ case 0x04c1:
+ return "?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@"
+ "Z";
+ case 0x04c2:
+ return "?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$"
+ "fpos@H@2@@Z";
+ case 0x04c3:
+ return "?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@"
+ "Z";
+ case 0x04c4:
+ return "?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$"
+ "fpos@H@2@@Z";
+ case 0x04c5:
+ return "?seekg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_"
+ "JH@Z";
+ case 0x04c6:
+ return "?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$"
+ "fpos@H@2@_JHH@Z";
+ case 0x04c7:
+ return "?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$"
+ "fpos@H@2@_JHH@Z";
+ case 0x04c8:
+ return "?seekoff@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$"
+ "fpos@H@2@_JHH@Z";
+ case 0x04c9:
+ return "?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$"
+ "fpos@H@2@@Z";
+ case 0x04ca:
+ return "?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@"
+ "Z";
+ case 0x04cb:
+ return "?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$"
+ "fpos@H@2@@Z";
+ case 0x04cc:
+ return "?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@"
+ "Z";
+ case 0x04cd:
+ return "?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@V?$"
+ "fpos@H@2@@Z";
+ case 0x04ce:
+ return "?seekp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@_"
+ "JH@Z";
+ case 0x04cf:
+ return "?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$"
+ "fpos@H@2@V32@H@Z";
+ case 0x04d0:
+ return "?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$"
+ "fpos@H@2@V32@H@Z";
+ case 0x04d1:
+ return "?seekpos@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA?AV?$"
+ "fpos@H@2@V32@H@Z";
+ case 0x04d2: return "?set_new_handler@std@@YAP6AXXZP6AXXZ@Z";
+ case 0x04d3:
+ return "?set_rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXPEAV?$"
+ "basic_streambuf@DU?$char_traits@D@std@@@2@@Z";
+ case 0x04d4:
+ return "?set_rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXPEAV?$"
+ "basic_streambuf@GU?$char_traits@G@std@@@2@@Z";
+ case 0x04d5:
+ return "?set_rdbuf@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXPEAV?$"
+ "basic_streambuf@_WU?$char_traits@_W@std@@@2@@Z";
+ case 0x04d6: return "?setbase@std@@YA?AU?$_Smanip@H@1@H@Z";
+ case 0x04d7:
+ return "?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAPEAV12@"
+ "PEAD_J@Z";
+ case 0x04d8:
+ return "?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAPEAV12@"
+ "PEAG_J@Z";
+ case 0x04d9:
+ return "?setbuf@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAPEAV12@"
+ "PEA_W_J@Z";
+ case 0x04da: return "?setf@ios_base@std@@QEAAHH@Z";
+ case 0x04db: return "?setf@ios_base@std@@QEAAHHH@Z";
+ case 0x04dc:
+ return "?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z";
+ case 0x04dd:
+ return "?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z";
+ case 0x04de:
+ return "?setg@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@"
+ "Z";
+ case 0x04df: return "?setiosflags@std@@YA?AU?$_Smanip@H@1@H@Z";
+ case 0x04e0:
+ return "?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z";
+ case 0x04e1:
+ return "?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD0@Z";
+ case 0x04e2:
+ return "?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z";
+ case 0x04e3:
+ return "?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG0@Z";
+ case 0x04e4:
+ return "?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W00@"
+ "Z";
+ case 0x04e5:
+ return "?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXPEA_W0@"
+ "Z";
+ case 0x04e6: return "?setprecision@std@@YA?AU?$_Smanip@_J@1@_J@Z";
+ case 0x04e7:
+ return "?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z";
+ case 0x04e8:
+ return "?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z";
+ case 0x04e9:
+ return "?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z";
+ case 0x04ea:
+ return "?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z";
+ case 0x04eb:
+ return "?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXH_N@Z";
+ case 0x04ec:
+ return "?setstate@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXI@Z";
+ case 0x04ed: return "?setstate@ios_base@std@@QEAAXH@Z";
+ case 0x04ee: return "?setstate@ios_base@std@@QEAAXH_N@Z";
+ case 0x04ef: return "?setstate@ios_base@std@@QEAAXI@Z";
+ case 0x04f0: return "?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z";
+ case 0x04f1:
+ return "?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+ case 0x04f2:
+ return "?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
+ case 0x04f3:
+ return "?sgetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
+ case 0x04f4:
+ return "?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@"
+ "Z";
+ case 0x04f5:
+ return "?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@"
+ "Z";
+ case 0x04f6:
+ return "?sgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEA_W_"
+ "J@Z";
+ case 0x04f7:
+ return "?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JXZ";
+ case 0x04f8:
+ return "?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JXZ";
+ case 0x04f9:
+ return "?showmanyc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_"
+ "JXZ";
+ case 0x04fa:
+ return "?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+ case 0x04fb:
+ return "?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
+ case 0x04fc:
+ return "?snextc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
+ case 0x04fd:
+ return "?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z";
+ case 0x04fe:
+ return "?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z";
+ case 0x04ff:
+ return "?sputbackc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@"
+ "Z";
+ case 0x0500:
+ return "?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z";
+ case 0x0501:
+ return "?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z";
+ case 0x0502:
+ return "?sputc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAG_W@Z";
+ case 0x0503:
+ return "?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEBD_J@"
+ "Z";
+ case 0x0504:
+ return "?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEBG_J@"
+ "Z";
+ case 0x0505:
+ return "?sputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAA_JPEB_W_"
+ "J@Z";
+ case 0x0506: return "?start@agent@Concurrency@@QEAA_NXZ";
+ case 0x0507: return "?status@agent@Concurrency@@QEAA?AW4agent_status@2@XZ";
+ case 0x0508:
+ return "?status_port@agent@Concurrency@@QEAAPEAV?$ISource@W4agent_status@"
+ "Concurrency@@@2@XZ";
+ case 0x0509:
+ return "?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ";
+ case 0x050a:
+ return "?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ";
+ case 0x050b:
+ return "?stossc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAXXZ";
+ case 0x050c:
+ return "?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+ case 0x050d:
+ return "?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ";
+ case 0x050e:
+ return "?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ";
+ case 0x050f:
+ return "?swap@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z";
+ case 0x0510:
+ return "?swap@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z";
+ case 0x0511:
+ return "?swap@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z";
+ case 0x0512:
+ return "?swap@?$basic_iostream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
+ case 0x0513:
+ return "?swap@?$basic_iostream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
+ case 0x0514:
+ return "?swap@?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@"
+ "Z";
+ case 0x0515:
+ return "?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
+ case 0x0516:
+ return "?swap@?$basic_istream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
+ case 0x0517:
+ return "?swap@?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z";
+ case 0x0518:
+ return "?swap@?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
+ case 0x0519:
+ return "?swap@?$basic_ostream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
+ case 0x051a:
+ return "?swap@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z";
+ case 0x051b:
+ return "?swap@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z";
+ case 0x051c:
+ return "?swap@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z";
+ case 0x051d:
+ return "?swap@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@"
+ "Z";
+ case 0x051e: return "?swap@ios_base@std@@QEAAXAEAV12@@Z";
+ case 0x051f:
+ return "?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ";
+ case 0x0520:
+ return "?sync@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAHXZ";
+ case 0x0521:
+ return "?sync@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAHXZ";
+ case 0x0522:
+ return "?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ";
+ case 0x0523:
+ return "?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAHXZ";
+ case 0x0524:
+ return "?sync@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAHXZ";
+ case 0x0525: return "?sync_with_stdio@ios_base@std@@SA_N_N@Z";
+ case 0x0526: return "?table@?$ctype@D@std@@QEBAPEBFXZ";
+ case 0x0527: return "?table_size@?$ctype@D@std@@2_KB";
+ case 0x0528:
+ return "?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@"
+ "2@XZ";
+ case 0x0529:
+ return "?tellg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@"
+ "2@XZ";
+ case 0x052a:
+ return "?tellg@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@"
+ "H@2@XZ";
+ case 0x052b:
+ return "?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@"
+ "2@XZ";
+ case 0x052c:
+ return "?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@"
+ "2@XZ";
+ case 0x052d:
+ return "?tellp@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA?AV?$fpos@"
+ "H@2@XZ";
+ case 0x052e:
+ return "?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_"
+ "ostream@DU?$char_traits@D@std@@@2@PEAV32@@Z";
+ case 0x052f:
+ return "?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_"
+ "ostream@DU?$char_traits@D@std@@@2@XZ";
+ case 0x0530:
+ return "?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_"
+ "ostream@GU?$char_traits@G@std@@@2@PEAV32@@Z";
+ case 0x0531:
+ return "?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_"
+ "ostream@GU?$char_traits@G@std@@@2@XZ";
+ case 0x0532:
+ return "?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAPEAV?$basic_"
+ "ostream@_WU?$char_traits@_W@std@@@2@PEAV32@@Z";
+ case 0x0533:
+ return "?tie@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBAPEAV?$basic_"
+ "ostream@_WU?$char_traits@_W@std@@@2@XZ";
+ case 0x0534: return "?tolower@?$ctype@D@std@@QEBADD@Z";
+ case 0x0535: return "?tolower@?$ctype@D@std@@QEBAPEBDPEADPEBD@Z";
+ case 0x0536: return "?tolower@?$ctype@G@std@@QEBAGG@Z";
+ case 0x0537: return "?tolower@?$ctype@G@std@@QEBAPEBGPEAGPEBG@Z";
+ case 0x0538: return "?tolower@?$ctype@_W@std@@QEBAPEB_WPEA_WPEB_W@Z";
+ case 0x0539: return "?tolower@?$ctype@_W@std@@QEBA_W_W@Z";
+ case 0x053a: return "?toupper@?$ctype@D@std@@QEBADD@Z";
+ case 0x053b: return "?toupper@?$ctype@D@std@@QEBAPEBDPEADPEBD@Z";
+ case 0x053c: return "?toupper@?$ctype@G@std@@QEBAGG@Z";
+ case 0x053d: return "?toupper@?$ctype@G@std@@QEBAPEBGPEAGPEBG@Z";
+ case 0x053e: return "?toupper@?$ctype@_W@std@@QEBAPEB_WPEA_WPEB_W@Z";
+ case 0x053f: return "?toupper@?$ctype@_W@std@@QEBA_W_W@Z";
+ case 0x0540: return "?try_to_lock@std@@3Utry_to_lock_t@1@B";
+ case 0x0541:
+ return "?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ";
+ case 0x0542:
+ return "?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ";
+ case 0x0543:
+ return "?uflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ";
+ case 0x0544: return "?uncaught_exception@std@@YA_NXZ";
+ case 0x0545:
+ return "?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ";
+ case 0x0546:
+ return "?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ";
+ case 0x0547:
+ return "?underflow@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAAGXZ";
+ case 0x0548:
+ return "?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ";
+ case 0x0549:
+ return "?unget@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ";
+ case 0x054a:
+ return "?unget@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@XZ";
+ case 0x054b: return "?unsetf@ios_base@std@@QEAAXH@Z";
+ case 0x054c: return "?unshift@?$codecvt@DDH@std@@QEBAHAEAHPEAD1AEAPEAD@Z";
+ case 0x054d: return "?unshift@?$codecvt@GDH@std@@QEBAHAEAHPEAD1AEAPEAD@Z";
+ case 0x054e: return "?unshift@?$codecvt@_WDH@std@@QEBAHAEAHPEAD1AEAPEAD@Z";
+ case 0x054f: return "?wait@agent@Concurrency@@SA?AW4agent_status@2@PEAV12@I@Z";
+ case 0x0550:
+ return "?wait_for_all@agent@Concurrency@@SAX_KPEAPEAV12@PEAW4agent_status@2@"
+ "I@Z";
+ case 0x0551:
+ return "?wait_for_one@agent@Concurrency@@SAX_KPEAPEAV12@AEAW4agent_status@2@"
+ "AEA_KI@Z";
+ case 0x0552:
+ return "?wcerr@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A";
+ case 0x0553:
+ return "?wcerr@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A";
+ case 0x0554: return "?wcin@std@@3V?$basic_istream@GU?$char_traits@G@std@@@1@A";
+ case 0x0555:
+ return "?wcin@std@@3V?$basic_istream@_WU?$char_traits@_W@std@@@1@A";
+ case 0x0556:
+ return "?wclog@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A";
+ case 0x0557:
+ return "?wclog@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A";
+ case 0x0558:
+ return "?wcout@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A";
+ case 0x0559:
+ return "?wcout@std@@3V?$basic_ostream@_WU?$char_traits@_W@std@@@1@A";
+ case 0x055a: return "?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADD@Z";
+ case 0x055b: return "?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGD@Z";
+ case 0x055c:
+ return "?widen@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEBA_WD@Z";
+ case 0x055d: return "?widen@?$ctype@D@std@@QEBADD@Z";
+ case 0x055e: return "?widen@?$ctype@D@std@@QEBAPEBDPEBD0PEAD@Z";
+ case 0x055f: return "?widen@?$ctype@G@std@@QEBAGD@Z";
+ case 0x0560: return "?widen@?$ctype@G@std@@QEBAPEBDPEBD0PEAG@Z";
+ case 0x0561: return "?widen@?$ctype@_W@std@@QEBAPEBDPEBD0PEA_W@Z";
+ case 0x0562: return "?widen@?$ctype@_W@std@@QEBA_WD@Z";
+ case 0x0563: return "?width@ios_base@std@@QEAA_J_J@Z";
+ case 0x0564: return "?width@ios_base@std@@QEBA_JXZ";
+ case 0x0565:
+ return "?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_"
+ "J@Z";
+ case 0x0566:
+ return "?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEBG_"
+ "J@Z";
+ case 0x0567:
+ return "?write@?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV12@"
+ "PEB_W_J@Z";
+ case 0x0568:
+ return "?ws@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@1@AEAV21@@Z";
+ case 0x0569:
+ return "?ws@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@1@AEAV21@@Z";
+ case 0x056a:
+ return "?ws@std@@YAAEAV?$basic_istream@_WU?$char_traits@_W@std@@@1@AEAV21@@"
+ "Z";
+ case 0x056b: return "?xalloc@ios_base@std@@SAHXZ";
+ case 0x056c:
+ return "?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@"
+ "Z";
+ case 0x056d:
+ return "?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_J@"
+ "Z";
+ case 0x056e:
+ return "?xsgetn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEA_"
+ "W_J@Z";
+ case 0x056f:
+ return "?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@"
+ "Z";
+ case 0x0570:
+ return "?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEBG_J@"
+ "Z";
+ case 0x0571:
+ return "?xsputn@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@MEAA_JPEB_"
+ "W_J@Z";
+ case 0x0572: return "_Call_once";
+ case 0x0573: return "_Call_onceEx";
+ case 0x0574: return "_Cnd_broadcast";
+ case 0x0575: return "_Cnd_destroy";
+ case 0x0576: return "_Cnd_do_broadcast_at_thread_exit";
+ case 0x0577: return "_Cnd_init";
+ case 0x0578: return "_Cnd_register_at_thread_exit";
+ case 0x0579: return "_Cnd_signal";
+ case 0x057a: return "_Cnd_timedwait";
+ case 0x057b: return "_Cnd_unregister_at_thread_exit";
+ case 0x057c: return "_Cnd_wait";
+ case 0x057d: return "_Cosh";
+ case 0x057e: return "_Denorm";
+ case 0x057f: return "_Dint";
+ case 0x0580: return "_Dnorm";
+ case 0x0581: return "_Do_call";
+ case 0x0582: return "_Dscale";
+ case 0x0583: return "_Dtento";
+ case 0x0584: return "_Dtest";
+ case 0x0585: return "_Dunscale";
+ case 0x0586: return "_Eps";
+ case 0x0587: return "_Exp";
+ case 0x0588: return "_FCosh";
+ case 0x0589: return "_FDenorm";
+ case 0x058a: return "_FDint";
+ case 0x058b: return "_FDnorm";
+ case 0x058c: return "_FDscale";
+ case 0x058d: return "_FDtento";
+ case 0x058e: return "_FDtest";
+ case 0x058f: return "_FDunscale";
+ case 0x0590: return "_FEps";
+ case 0x0591: return "_FExp";
+ case 0x0592: return "_FInf";
+ case 0x0593: return "_FNan";
+ case 0x0594: return "_FPlsw";
+ case 0x0595: return "_FPmsw";
+ case 0x0596: return "_FRteps";
+ case 0x0597: return "_FSinh";
+ case 0x0598: return "_FSnan";
+ case 0x0599: return "_FXbig";
+ case 0x059a: return "_FXp_addh";
+ case 0x059b: return "_FXp_addx";
+ case 0x059c: return "_FXp_getw";
+ case 0x059d: return "_FXp_invx";
+ case 0x059e: return "_FXp_ldexpx";
+ case 0x059f: return "_FXp_movx";
+ case 0x05a0: return "_FXp_mulh";
+ case 0x05a1: return "_FXp_mulx";
+ case 0x05a2: return "_FXp_setn";
+ case 0x05a3: return "_FXp_setw";
+ case 0x05a4: return "_FXp_sqrtx";
+ case 0x05a5: return "_FXp_subx";
+ case 0x05a6: return "_FZero";
+ case 0x05a7: return "_Getcoll";
+ case 0x05a8: return "_Getctype";
+ case 0x05a9: return "_Getcvt";
+ case 0x05aa: return "_Getdateorder";
+ case 0x05ab: return "_Getwctype";
+ case 0x05ac: return "_Getwctypes";
+ case 0x05ad: return "_Hugeval";
+ case 0x05ae: return "_Inf";
+ case 0x05af: return "_LCosh";
+ case 0x05b0: return "_LDenorm";
+ case 0x05b1: return "_LDint";
+ case 0x05b2: return "_LDscale";
+ case 0x05b3: return "_LDtento";
+ case 0x05b4: return "_LDtest";
+ case 0x05b5: return "_LDunscale";
+ case 0x05b6: return "_LEps";
+ case 0x05b7: return "_LExp";
+ case 0x05b8: return "_LInf";
+ case 0x05b9: return "_LNan";
+ case 0x05ba: return "_LPlsw";
+ case 0x05bb: return "_LPmsw";
+ case 0x05bc: return "_LPoly";
+ case 0x05bd: return "_LRteps";
+ case 0x05be: return "_LSinh";
+ case 0x05bf: return "_LSnan";
+ case 0x05c0: return "_LXbig";
+ case 0x05c1: return "_LXp_addh";
+ case 0x05c2: return "_LXp_addx";
+ case 0x05c3: return "_LXp_getw";
+ case 0x05c4: return "_LXp_invx";
+ case 0x05c5: return "_LXp_ldexpx";
+ case 0x05c6: return "_LXp_movx";
+ case 0x05c7: return "_LXp_mulh";
+ case 0x05c8: return "_LXp_mulx";
+ case 0x05c9: return "_LXp_setn";
+ case 0x05ca: return "_LXp_setw";
+ case 0x05cb: return "_LXp_sqrtx";
+ case 0x05cc: return "_LXp_subx";
+ case 0x05cd: return "_LZero";
+ case 0x05ce: return "_Lock_shared_ptr_spin_lock";
+ case 0x05cf: return "_Mbrtowc";
+ case 0x05d0: return "_Mtx_clear_owner";
+ case 0x05d1: return "_Mtx_current_owns";
+ case 0x05d2: return "_Mtx_destroy";
+ case 0x05d3: return "_Mtx_getconcrtcs";
+ case 0x05d4: return "_Mtx_init";
+ case 0x05d5: return "_Mtx_lock";
+ case 0x05d6: return "_Mtx_reset_owner";
+ case 0x05d7: return "_Mtx_timedlock";
+ case 0x05d8: return "_Mtx_trylock";
+ case 0x05d9: return "_Mtx_unlock";
+ case 0x05da: return "_Mtxdst";
+ case 0x05db: return "_Mtxinit";
+ case 0x05dc: return "_Mtxlock";
+ case 0x05dd: return "_Mtxunlock";
+ case 0x05de: return "_Nan";
+ case 0x05df: return "_Once";
+ case 0x05e0: return "_Plsw";
+ case 0x05e1: return "_Pmsw";
+ case 0x05e2: return "_Poly";
+ case 0x05e3: return "_Rteps";
+ case 0x05e4: return "_Sinh";
+ case 0x05e5: return "_Snan";
+ case 0x05e6: return "_Stod";
+ case 0x05e7: return "_Stodx";
+ case 0x05e8: return "_Stof";
+ case 0x05e9: return "_Stoflt";
+ case 0x05ea: return "_Stofx";
+ case 0x05eb: return "_Stold";
+ case 0x05ec: return "_Stoldx";
+ case 0x05ed: return "_Stoll";
+ case 0x05ee: return "_Stollx";
+ case 0x05ef: return "_Stolx";
+ case 0x05f0: return "_Stopfx";
+ case 0x05f1: return "_Stoul";
+ case 0x05f2: return "_Stoull";
+ case 0x05f3: return "_Stoullx";
+ case 0x05f4: return "_Stoulx";
+ case 0x05f5: return "_Stoxflt";
+ case 0x05f6: return "_Strcoll";
+ case 0x05f7: return "_Strxfrm";
+ case 0x05f8: return "_Thrd_abort";
+ case 0x05f9: return "_Thrd_create";
+ case 0x05fa: return "_Thrd_current";
+ case 0x05fb: return "_Thrd_detach";
+ case 0x05fc: return "_Thrd_equal";
+ case 0x05fd: return "_Thrd_exit";
+ case 0x05fe: return "_Thrd_join";
+ case 0x05ff: return "_Thrd_lt";
+ case 0x0600: return "_Thrd_sleep";
+ case 0x0601: return "_Thrd_start";
+ case 0x0602: return "_Thrd_yield";
+ case 0x0603: return "_Tolower";
+ case 0x0604: return "_Toupper";
+ case 0x0605: return "_Towlower";
+ case 0x0606: return "_Towupper";
+ case 0x0607: return "_Tss_create";
+ case 0x0608: return "_Tss_delete";
+ case 0x0609: return "_Tss_get";
+ case 0x060a: return "_Tss_set";
+ case 0x060b: return "_Unlock_shared_ptr_spin_lock";
+ case 0x060c: return "_Wcrtomb";
+ case 0x060d: return "_Wcscoll";
+ case 0x060e: return "_Wcsxfrm";
+ case 0x060f: return "_Xbig";
+ case 0x0610: return "_Xp_addh";
+ case 0x0611: return "_Xp_addx";
+ case 0x0612: return "_Xp_getw";
+ case 0x0613: return "_Xp_invx";
+ case 0x0614: return "_Xp_ldexpx";
+ case 0x0615: return "_Xp_movx";
+ case 0x0616: return "_Xp_mulh";
+ case 0x0617: return "_Xp_mulx";
+ case 0x0618: return "_Xp_setn";
+ case 0x0619: return "_Xp_setw";
+ case 0x061a: return "_Xp_sqrtx";
+ case 0x061b: return "_Xp_subx";
+ case 0x061c: return "_Xtime_diff_to_millis";
+ case 0x061d: return "_Xtime_diff_to_millis2";
+ case 0x061e: return "_Xtime_get_ticks";
+ case 0x061f: return "_Zero";
+ case 0x0620: return "__Wcrtomb_lk";
+ case 0x0621: return "xtime_get";
}
return nullptr;
}
-}
}
-#endif
+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcr100_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcr100_dll_lookup.hpp
index d4e0c0aa1f3..d177334e4bb 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcr100_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcr100_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,1639 +17,1720 @@
#define LIEF_PE_MSVCR100_DLL_LOOKUP_H
#include <cstdint>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
inline const char* msvcr100_dll_lookup(uint32_t i) {
- switch(i) {
- case 0x010f: return "$I10_OUTPUT";
- case 0x0001: return "??0?$_SpinWait@$00@details@Concurrency@@QAE@P6AXXZ@Z";
- case 0x0002: return "??0?$_SpinWait@$0A@@details@Concurrency@@QAE@P6AXXZ@Z";
- case 0x0003: return "??0SchedulerPolicy@Concurrency@@QAA@IZZ";
- case 0x0004: return "??0SchedulerPolicy@Concurrency@@QAE@ABV01@@Z";
- case 0x0005: return "??0SchedulerPolicy@Concurrency@@QAE@XZ";
- case 0x0006: return "??0_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ";
- case 0x0007: return "??0_NonReentrantPPLLock@details@Concurrency@@QAE@XZ";
- case 0x0008: return "??0_ReaderWriterLock@details@Concurrency@@QAE@XZ";
- case 0x0009: return "??0_ReentrantBlockingLock@details@Concurrency@@QAE@XZ";
- case 0x000a: return "??0_ReentrantLock@details@Concurrency@@QAE@XZ";
- case 0x000b: return "??0_ReentrantPPLLock@details@Concurrency@@QAE@XZ";
- case 0x000c: return "??0_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@AAV123@@Z";
- case 0x000d: return "??0_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@AAV123@@Z";
- case 0x000e: return "??0_SpinLock@details@Concurrency@@QAE@ACJ@Z";
- case 0x000f: return "??0_TaskCollection@details@Concurrency@@QAE@XZ";
- case 0x0010: return "??0_Timer@details@Concurrency@@IAE@I_N@Z";
- case 0x0011: return "??0__non_rtti_object@std@@QAE@ABV01@@Z";
- case 0x0012: return "??0__non_rtti_object@std@@QAE@PBD@Z";
- case 0x0013: return "??0bad_cast@std@@AAE@PBQBD@Z";
- case 0x0014: return "??0bad_cast@std@@QAE@ABV01@@Z";
- case 0x0015: return "??0bad_cast@std@@QAE@PBD@Z";
- case 0x0016: return "??0bad_target@Concurrency@@QAE@PBD@Z";
- case 0x0017: return "??0bad_target@Concurrency@@QAE@XZ";
- case 0x0018: return "??0bad_typeid@std@@QAE@ABV01@@Z";
- case 0x0019: return "??0bad_typeid@std@@QAE@PBD@Z";
- case 0x001a: return "??0context_self_unblock@Concurrency@@QAE@PBD@Z";
- case 0x001b: return "??0context_self_unblock@Concurrency@@QAE@XZ";
- case 0x001c: return "??0context_unblock_unbalanced@Concurrency@@QAE@PBD@Z";
- case 0x001d: return "??0context_unblock_unbalanced@Concurrency@@QAE@XZ";
- case 0x001e: return "??0critical_section@Concurrency@@QAE@XZ";
- case 0x001f: return "??0default_scheduler_exists@Concurrency@@QAE@PBD@Z";
- case 0x0020: return "??0default_scheduler_exists@Concurrency@@QAE@XZ";
- case 0x0021: return "??0event@Concurrency@@QAE@XZ";
- case 0x0022: return "??0exception@std@@QAE@ABQBD@Z";
- case 0x0023: return "??0exception@std@@QAE@ABQBDH@Z";
- case 0x0024: return "??0exception@std@@QAE@ABV01@@Z";
- case 0x0025: return "??0exception@std@@QAE@XZ";
- case 0x0026: return "??0improper_lock@Concurrency@@QAE@PBD@Z";
- case 0x0027: return "??0improper_lock@Concurrency@@QAE@XZ";
- case 0x0028: return "??0improper_scheduler_attach@Concurrency@@QAE@PBD@Z";
- case 0x0029: return "??0improper_scheduler_attach@Concurrency@@QAE@XZ";
- case 0x002a: return "??0improper_scheduler_detach@Concurrency@@QAE@PBD@Z";
- case 0x002b: return "??0improper_scheduler_detach@Concurrency@@QAE@XZ";
- case 0x002c: return "??0improper_scheduler_reference@Concurrency@@QAE@PBD@Z";
- case 0x002d: return "??0improper_scheduler_reference@Concurrency@@QAE@XZ";
- case 0x002e: return "??0invalid_link_target@Concurrency@@QAE@PBD@Z";
- case 0x002f: return "??0invalid_link_target@Concurrency@@QAE@XZ";
- case 0x0030: return "??0invalid_multiple_scheduling@Concurrency@@QAE@PBD@Z";
- case 0x0031: return "??0invalid_multiple_scheduling@Concurrency@@QAE@XZ";
- case 0x0032: return "??0invalid_operation@Concurrency@@QAE@PBD@Z";
- case 0x0033: return "??0invalid_operation@Concurrency@@QAE@XZ";
- case 0x0034: return "??0invalid_oversubscribe_operation@Concurrency@@QAE@PBD@Z";
- case 0x0035: return "??0invalid_oversubscribe_operation@Concurrency@@QAE@XZ";
- case 0x0036: return "??0invalid_scheduler_policy_key@Concurrency@@QAE@PBD@Z";
- case 0x0037: return "??0invalid_scheduler_policy_key@Concurrency@@QAE@XZ";
- case 0x0038: return "??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@PBD@Z";
- case 0x0039: return "??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@XZ";
- case 0x003a: return "??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z";
- case 0x003b: return "??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ";
- case 0x003c: return "??0message_not_found@Concurrency@@QAE@PBD@Z";
- case 0x003d: return "??0message_not_found@Concurrency@@QAE@XZ";
- case 0x003e: return "??0missing_wait@Concurrency@@QAE@PBD@Z";
- case 0x003f: return "??0missing_wait@Concurrency@@QAE@XZ";
- case 0x0040: return "??0nested_scheduler_missing_detach@Concurrency@@QAE@PBD@Z";
- case 0x0041: return "??0nested_scheduler_missing_detach@Concurrency@@QAE@XZ";
- case 0x0042: return "??0operation_timed_out@Concurrency@@QAE@PBD@Z";
- case 0x0043: return "??0operation_timed_out@Concurrency@@QAE@XZ";
- case 0x0044: return "??0reader_writer_lock@Concurrency@@QAE@XZ";
- case 0x0045: return "??0scheduler_not_attached@Concurrency@@QAE@PBD@Z";
- case 0x0046: return "??0scheduler_not_attached@Concurrency@@QAE@XZ";
- case 0x0047: return "??0scheduler_resource_allocation_error@Concurrency@@QAE@J@Z";
- case 0x0048: return "??0scheduler_resource_allocation_error@Concurrency@@QAE@PBDJ@Z";
- case 0x0049: return "??0scoped_lock@critical_section@Concurrency@@QAE@AAV12@@Z";
- case 0x004a: return "??0scoped_lock@reader_writer_lock@Concurrency@@QAE@AAV12@@Z";
- case 0x004b: return "??0scoped_lock_read@reader_writer_lock@Concurrency@@QAE@AAV12@@Z";
- case 0x004c: return "??0task_canceled@details@Concurrency@@QAE@PBD@Z";
- case 0x004d: return "??0task_canceled@details@Concurrency@@QAE@XZ";
- case 0x004e: return "??0unsupported_os@Concurrency@@QAE@PBD@Z";
- case 0x004f: return "??0unsupported_os@Concurrency@@QAE@XZ";
- case 0x0050: return "??1SchedulerPolicy@Concurrency@@QAE@XZ";
- case 0x0051: return "??1_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ";
- case 0x0052: return "??1_ReentrantBlockingLock@details@Concurrency@@QAE@XZ";
- case 0x0053: return "??1_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@XZ";
- case 0x0054: return "??1_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@XZ";
- case 0x0055: return "??1_SpinLock@details@Concurrency@@QAE@XZ";
- case 0x0056: return "??1_TaskCollection@details@Concurrency@@QAE@XZ";
- case 0x0057: return "??1_Timer@details@Concurrency@@IAE@XZ";
- case 0x0058: return "??1__non_rtti_object@std@@UAE@XZ";
- case 0x0059: return "??1bad_cast@std@@UAE@XZ";
- case 0x005a: return "??1bad_typeid@std@@UAE@XZ";
- case 0x005b: return "??1critical_section@Concurrency@@QAE@XZ";
- case 0x005c: return "??1event@Concurrency@@QAE@XZ";
- case 0x005d: return "??1exception@std@@UAE@XZ";
- case 0x005e: return "??1reader_writer_lock@Concurrency@@QAE@XZ";
- case 0x005f: return "??1scoped_lock@critical_section@Concurrency@@QAE@XZ";
- case 0x0060: return "??1scoped_lock@reader_writer_lock@Concurrency@@QAE@XZ";
- case 0x0061: return "??1scoped_lock_read@reader_writer_lock@Concurrency@@QAE@XZ";
- case 0x0062: return "??1type_info@@UAE@XZ";
- case 0x0063: return "??2@YAPAXI@Z";
- case 0x0064: return "??2@YAPAXIHPBDH@Z";
- case 0x0065: return "??3@YAXPAX@Z";
- case 0x0066: return "??4?$_SpinWait@$00@details@Concurrency@@QAEAAV012@ABV012@@Z";
- case 0x0067: return "??4?$_SpinWait@$0A@@details@Concurrency@@QAEAAV012@ABV012@@Z";
- case 0x0068: return "??4SchedulerPolicy@Concurrency@@QAEAAV01@ABV01@@Z";
- case 0x0069: return "??4__non_rtti_object@std@@QAEAAV01@ABV01@@Z";
- case 0x006a: return "??4bad_cast@std@@QAEAAV01@ABV01@@Z";
- case 0x006b: return "??4bad_typeid@std@@QAEAAV01@ABV01@@Z";
- case 0x006c: return "??4exception@std@@QAEAAV01@ABV01@@Z";
- case 0x006d: return "??8type_info@@QBE_NABV0@@Z";
- case 0x006e: return "??9type_info@@QBE_NABV0@@Z";
- case 0x006f: return "??_7__non_rtti_object@std@@6B@";
- case 0x0070: return "??_7bad_cast@std@@6B@";
- case 0x0071: return "??_7bad_typeid@std@@6B@";
- case 0x0072: return "??_7exception@@6B@";
- case 0x0073: return "??_7exception@std@@6B@";
- case 0x0074: return "??_F?$_SpinWait@$00@details@Concurrency@@QAEXXZ";
- case 0x0075: return "??_F?$_SpinWait@$0A@@details@Concurrency@@QAEXXZ";
- case 0x0076: return "??_Fbad_cast@std@@QAEXXZ";
- case 0x0077: return "??_Fbad_typeid@std@@QAEXXZ";
- case 0x0078: return "??_U@YAPAXI@Z";
- case 0x0079: return "??_U@YAPAXIHPBDH@Z";
- case 0x007a: return "??_V@YAXPAX@Z";
- case 0x007b: return "?Alloc@Concurrency@@YAPAXI@Z";
- case 0x007c: return "?Block@Context@Concurrency@@SAXXZ";
- case 0x007d: return "?Create@CurrentScheduler@Concurrency@@SAXABVSchedulerPolicy@2@@Z";
- case 0x007e: return "?Create@Scheduler@Concurrency@@SAPAV12@ABVSchedulerPolicy@2@@Z";
- case 0x007f: return "?CreateResourceManager@Concurrency@@YAPAUIResourceManager@1@XZ";
- case 0x0080: return "?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPAVScheduleGroup@2@XZ";
- case 0x0081: return "?CurrentContext@Context@Concurrency@@SAPAV12@XZ";
- case 0x0082: return "?Detach@CurrentScheduler@Concurrency@@SAXXZ";
- case 0x0083: return "?DisableTracing@Concurrency@@YAJXZ";
- case 0x0084: return "?EnableTracing@Concurrency@@YAJXZ";
- case 0x0085: return "?Free@Concurrency@@YAXPAX@Z";
- case 0x0086: return "?Get@CurrentScheduler@Concurrency@@SAPAVScheduler@2@XZ";
- case 0x0087: return "?GetExecutionContextId@Concurrency@@YAIXZ";
- case 0x0088: return "?GetNumberOfVirtualProcessors@CurrentScheduler@Concurrency@@SAIXZ";
- case 0x0089: return "?GetOSVersion@Concurrency@@YA?AW4OSVersion@IResourceManager@1@XZ";
- case 0x008a: return "?GetPolicy@CurrentScheduler@Concurrency@@SA?AVSchedulerPolicy@2@XZ";
- case 0x008b: return "?GetPolicyValue@SchedulerPolicy@Concurrency@@QBEIW4PolicyElementKey@2@@Z";
- case 0x008c: return "?GetProcessorCount@Concurrency@@YAIXZ";
- case 0x008d: return "?GetProcessorNodeCount@Concurrency@@YAIXZ";
- case 0x008e: return "?GetSchedulerId@Concurrency@@YAIXZ";
- case 0x008f: return "?GetSharedTimerQueue@details@Concurrency@@YAPAXXZ";
- case 0x0090: return "?Id@Context@Concurrency@@SAIXZ";
- case 0x0091: return "?Id@CurrentScheduler@Concurrency@@SAIXZ";
- case 0x0092: return "?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ";
- case 0x0093: return "?Log2@details@Concurrency@@YAKI@Z";
- case 0x0094: return "?Oversubscribe@Context@Concurrency@@SAX_N@Z";
- case 0x0095: return "?RegisterShutdownEvent@CurrentScheduler@Concurrency@@SAXPAX@Z";
- case 0x0096: return "?ResetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXXZ";
- case 0x0097: return "?ScheduleGroupId@Context@Concurrency@@SAIXZ";
- case 0x0098: return "?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0@Z";
- case 0x0099: return "?SetConcurrencyLimits@SchedulerPolicy@Concurrency@@QAEXII@Z";
- case 0x009a: return "?SetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXABVSchedulerPolicy@2@@Z";
- case 0x009b: return "?SetPolicyValue@SchedulerPolicy@Concurrency@@QAEIW4PolicyElementKey@2@I@Z";
- case 0x009c: return "?VirtualProcessorId@Context@Concurrency@@SAIXZ";
- case 0x009d: return "?Yield@Context@Concurrency@@SAXXZ";
- case 0x009e: return "?_Abort@_StructuredTaskCollection@details@Concurrency@@AAEXXZ";
- case 0x009f: return "?_Acquire@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ";
- case 0x00a0: return "?_Acquire@_NonReentrantPPLLock@details@Concurrency@@QAEXPAX@Z";
- case 0x00a1: return "?_Acquire@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ";
- case 0x00a2: return "?_Acquire@_ReentrantLock@details@Concurrency@@QAEXXZ";
- case 0x00a3: return "?_Acquire@_ReentrantPPLLock@details@Concurrency@@QAEXPAX@Z";
- case 0x00a4: return "?_AcquireRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
- case 0x00a5: return "?_AcquireWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
- case 0x00a6: return "?_Cancel@_StructuredTaskCollection@details@Concurrency@@QAEXXZ";
- case 0x00a7: return "?_Cancel@_TaskCollection@details@Concurrency@@QAEXXZ";
- case 0x00a8: return "?_CheckTaskCollection@_UnrealizedChore@details@Concurrency@@IAEXXZ";
- case 0x00a9: return "?_ConcRT_Assert@details@Concurrency@@YAXPBD0H@Z";
- case 0x00aa: return "?_ConcRT_CoreAssert@details@Concurrency@@YAXPBD0H@Z";
- case 0x00ab: return "?_ConcRT_DumpMessage@details@Concurrency@@YAXPB_WZZ";
- case 0x00ac: return "?_ConcRT_Trace@details@Concurrency@@YAXHPB_WZZ";
- case 0x00ad: return "?_Copy_str@exception@std@@AAEXPBD@Z";
- case 0x00ae: return "?_DoYield@?$_SpinWait@$00@details@Concurrency@@IAEXXZ";
- case 0x00af: return "?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ";
- case 0x00b0: return "?_IsCanceling@_StructuredTaskCollection@details@Concurrency@@QAE_NXZ";
- case 0x00b1: return "?_IsCanceling@_TaskCollection@details@Concurrency@@QAE_NXZ";
- case 0x00b2: return "?_Name_base@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z";
- case 0x00b3: return "?_Name_base_internal@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z";
- case 0x00b4: return "?_NumberOfSpins@?$_SpinWait@$00@details@Concurrency@@IAEKXZ";
- case 0x00b5: return "?_NumberOfSpins@?$_SpinWait@$0A@@details@Concurrency@@IAEKXZ";
- case 0x00b6: return "?_Release@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ";
- case 0x00b7: return "?_Release@_NonReentrantPPLLock@details@Concurrency@@QAEXXZ";
- case 0x00b8: return "?_Release@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ";
- case 0x00b9: return "?_Release@_ReentrantLock@details@Concurrency@@QAEXXZ";
- case 0x00ba: return "?_Release@_ReentrantPPLLock@details@Concurrency@@QAEXXZ";
- case 0x00bb: return "?_ReleaseRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
- case 0x00bc: return "?_ReleaseWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
- case 0x00bd: return "?_Reset@?$_SpinWait@$00@details@Concurrency@@IAEXXZ";
- case 0x00be: return "?_Reset@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ";
- case 0x00bf: return "?_RunAndWait@_StructuredTaskCollection@details@Concurrency@@QAG?AW4_TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z";
- case 0x00c0: return "?_RunAndWait@_TaskCollection@details@Concurrency@@QAG?AW4_TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z";
- case 0x00c1: return "?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@@Z";
- case 0x00c2: return "?_Schedule@_TaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@@Z";
- case 0x00c3: return "?_SetSpinCount@?$_SpinWait@$00@details@Concurrency@@QAEXI@Z";
- case 0x00c4: return "?_SetSpinCount@?$_SpinWait@$0A@@details@Concurrency@@QAEXI@Z";
- case 0x00c5: return "?_ShouldSpinAgain@?$_SpinWait@$00@details@Concurrency@@IAE_NXZ";
- case 0x00c6: return "?_ShouldSpinAgain@?$_SpinWait@$0A@@details@Concurrency@@IAE_NXZ";
- case 0x00c7: return "?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QAE_NXZ";
- case 0x00c8: return "?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAE_NXZ";
- case 0x00c9: return "?_SpinYield@Context@Concurrency@@SAXXZ";
- case 0x00ca: return "?_Start@_Timer@details@Concurrency@@IAEXXZ";
- case 0x00cb: return "?_Stop@_Timer@details@Concurrency@@IAEXXZ";
- case 0x00cc: return "?_Tidy@exception@std@@AAEXXZ";
- case 0x00cd: return "?_Trace_ppl_function@Concurrency@@YAXABU_GUID@@EW4ConcRT_EventType@1@@Z";
- case 0x00ce: return "?_TryAcquire@_NonReentrantBlockingLock@details@Concurrency@@QAE_NXZ";
- case 0x00cf: return "?_TryAcquire@_ReentrantBlockingLock@details@Concurrency@@QAE_NXZ";
- case 0x00d0: return "?_TryAcquire@_ReentrantLock@details@Concurrency@@QAE_NXZ";
- case 0x00d1: return "?_TryAcquireWrite@_ReaderWriterLock@details@Concurrency@@QAE_NXZ";
- case 0x00d2: return "?_Type_info_dtor@type_info@@CAXPAV1@@Z";
- case 0x00d3: return "?_Type_info_dtor_internal@type_info@@CAXPAV1@@Z";
- case 0x00d4: return "?_UnderlyingYield@details@Concurrency@@YAXXZ";
- case 0x00d5: return "?_ValidateExecute@@YAHP6GHXZ@Z";
- case 0x00d6: return "?_ValidateRead@@YAHPBXI@Z";
- case 0x00d7: return "?_ValidateWrite@@YAHPAXI@Z";
- case 0x00d8: return "?_Value@_SpinCount@details@Concurrency@@SAIXZ";
- case 0x00d9: return "?__ExceptionPtrAssign@@YAXPAXPBX@Z";
- case 0x00da: return "?__ExceptionPtrCompare@@YA_NPBX0@Z";
- case 0x00db: return "?__ExceptionPtrCopy@@YAXPAXPBX@Z";
- case 0x00dc: return "?__ExceptionPtrCopyException@@YAXPAXPBX1@Z";
- case 0x00dd: return "?__ExceptionPtrCreate@@YAXPAX@Z";
- case 0x00de: return "?__ExceptionPtrCurrentException@@YAXPAX@Z";
- case 0x00df: return "?__ExceptionPtrDestroy@@YAXPAX@Z";
- case 0x00e0: return "?__ExceptionPtrRethrow@@YAXPBX@Z";
- case 0x00e2: return "?_inconsistency@@YAXXZ";
- case 0x00e3: return "?_invalid_parameter@@YAXPBG00II@Z";
- case 0x00e4: return "?_is_exception_typeof@@YAHABVtype_info@@PAU_EXCEPTION_POINTERS@@@Z";
- case 0x00e5: return "?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z";
- case 0x00e6: return "?_open@@YAHPBDHH@Z";
- case 0x00e7: return "?_query_new_handler@@YAP6AHI@ZXZ";
- case 0x00e8: return "?_query_new_mode@@YAHXZ";
- case 0x00e9: return "?_set_new_handler@@YAP6AHI@ZH@Z";
- case 0x00ea: return "?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z";
- case 0x00eb: return "?_set_new_mode@@YAHH@Z";
- case 0x00ec: return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZH@Z";
- case 0x00ed: return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z";
- case 0x00ee: return "?_sopen@@YAHPBDHHH@Z";
- case 0x00ef: return "?_type_info_dtor_internal_method@type_info@@QAEXXZ";
- case 0x00f0: return "?_wopen@@YAHPB_WHH@Z";
- case 0x00f1: return "?_wsopen@@YAHPB_WHHH@Z";
- case 0x00f2: return "?before@type_info@@QBEHABV1@@Z";
- case 0x00f3: return "?get_error_code@scheduler_resource_allocation_error@Concurrency@@QBEJXZ";
- case 0x00f4: return "?lock@critical_section@Concurrency@@QAEXXZ";
- case 0x00f5: return "?lock@reader_writer_lock@Concurrency@@QAEXXZ";
- case 0x00f6: return "?lock_read@reader_writer_lock@Concurrency@@QAEXXZ";
- case 0x00f7: return "?name@type_info@@QBEPBDPAU__type_info_node@@@Z";
- case 0x00f8: return "?native_handle@critical_section@Concurrency@@QAEAAV12@XZ";
- case 0x00f9: return "?raw_name@type_info@@QBEPBDXZ";
- case 0x00fa: return "?reset@event@Concurrency@@QAEXXZ";
- case 0x00fb: return "?set@event@Concurrency@@QAEXXZ";
- case 0x00fc: return "?set_new_handler@@YAP6AXXZP6AXXZ@Z";
- case 0x00fd: return "?set_terminate@@YAP6AXXZH@Z";
- case 0x00fe: return "?set_terminate@@YAP6AXXZP6AXXZ@Z";
- case 0x00ff: return "?set_unexpected@@YAP6AXXZH@Z";
- case 0x0100: return "?set_unexpected@@YAP6AXXZP6AXXZ@Z";
- case 0x0101: return "?swprintf@@YAHPAGIPBGZZ";
- case 0x0102: return "?swprintf@@YAHPA_WIPB_WZZ";
- case 0x0103: return "?terminate@@YAXXZ";
- case 0x0104: return "?try_lock@critical_section@Concurrency@@QAE_NXZ";
- case 0x0105: return "?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ";
- case 0x0106: return "?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ";
- case 0x0107: return "?unexpected@@YAXXZ";
- case 0x0108: return "?unlock@critical_section@Concurrency@@QAEXXZ";
- case 0x0109: return "?unlock@reader_writer_lock@Concurrency@@QAEXXZ";
- case 0x010a: return "?vswprintf@@YAHPA_WIPB_WPAD@Z";
- case 0x010b: return "?wait@Concurrency@@YAXI@Z";
- case 0x010c: return "?wait@event@Concurrency@@QAEII@Z";
- case 0x010d: return "?wait_for_multiple@event@Concurrency@@SAIPAPAV12@I_NI@Z";
- case 0x010e: return "?what@exception@std@@UBEPBDXZ";
- case 0x0110: return "_CIacos";
- case 0x0111: return "_CIasin";
- case 0x0112: return "_CIatan";
- case 0x0113: return "_CIatan2";
- case 0x0114: return "_CIcos";
- case 0x0115: return "_CIcosh";
- case 0x0116: return "_CIexp";
- case 0x0117: return "_CIfmod";
- case 0x0118: return "_CIlog";
- case 0x0119: return "_CIlog10";
- case 0x011a: return "_CIpow";
- case 0x011b: return "_CIsin";
- case 0x011c: return "_CIsinh";
- case 0x011d: return "_CIsqrt";
- case 0x011e: return "_CItan";
- case 0x011f: return "_CItanh";
- case 0x0120: return "_CRT_RTC_INIT";
- case 0x0121: return "_CRT_RTC_INITW";
- case 0x0122: return "_CreateFrameInfo";
- case 0x0123: return "_CxxThrowException";
- case 0x0124: return "_EH_prolog";
- case 0x0125: return "_FindAndUnlinkFrame";
- case 0x0126: return "_Getdays";
- case 0x0127: return "_Getmonths";
- case 0x0128: return "_Gettnames";
- case 0x0129: return "_HUGE";
- case 0x012a: return "_IsExceptionObjectToBeDestroyed";
- case 0x012b: return "_NLG_Dispatch2";
- case 0x012c: return "_NLG_Return";
- case 0x012d: return "_NLG_Return2";
- case 0x012e: return "_Strftime";
- case 0x012f: return "_XcptFilter";
- case 0x0130: return "__AdjustPointer";
- case 0x0131: return "__BuildCatchObject";
- case 0x0132: return "__BuildCatchObjectHelper";
- case 0x0133: return "__CppXcptFilter";
- case 0x0134: return "__CxxCallUnwindDelDtor";
- case 0x0135: return "__CxxCallUnwindDtor";
- case 0x0136: return "__CxxCallUnwindStdDelDtor";
- case 0x0137: return "__CxxCallUnwindVecDtor";
- case 0x0138: return "__CxxDetectRethrow";
- case 0x0139: return "__CxxExceptionFilter";
- case 0x013a: return "__CxxFrameHandler";
- case 0x013b: return "__CxxFrameHandler2";
- case 0x013c: return "__CxxFrameHandler3";
- case 0x013d: return "__CxxLongjmpUnwind";
- case 0x013e: return "__CxxQueryExceptionSize";
- case 0x013f: return "__CxxRegisterExceptionObject";
- case 0x0140: return "__CxxUnregisterExceptionObject";
- case 0x0141: return "__DestructExceptionObject";
- case 0x0142: return "__FrameUnwindFilter";
- case 0x0143: return "__RTCastToVoid";
- case 0x0144: return "__RTDynamicCast";
- case 0x0145: return "__RTtypeid";
- case 0x0146: return "__STRINGTOLD";
- case 0x0147: return "__STRINGTOLD_L";
- case 0x0148: return "__TypeMatch";
- case 0x015e: return "___fls_getvalue@4";
- case 0x015f: return "___fls_setvalue@8";
- case 0x0149: return "___lc_codepage_func";
- case 0x014a: return "___lc_collate_cp_func";
- case 0x014b: return "___lc_handle_func";
- case 0x014c: return "___mb_cur_max_func";
- case 0x014d: return "___mb_cur_max_l_func";
- case 0x014e: return "___setlc_active_func";
- case 0x014f: return "___unguarded_readlc_active_add_func";
- case 0x0150: return "__argc";
- case 0x0151: return "__argv";
- case 0x0152: return "__badioinfo";
- case 0x0153: return "__clean_type_info_names_internal";
- case 0x0154: return "__control87_2";
- case 0x0155: return "__create_locale";
- case 0x0156: return "__crtCompareStringA";
- case 0x0157: return "__crtCompareStringW";
- case 0x0158: return "__crtLCMapStringA";
- case 0x0159: return "__crtLCMapStringW";
- case 0x015a: return "__daylight";
- case 0x015b: return "__dllonexit";
- case 0x015c: return "__doserrno";
- case 0x015d: return "__dstbias";
- case 0x0160: return "__fpecode";
- case 0x0161: return "__free_locale";
- case 0x0162: return "__get_current_locale";
- case 0x0163: return "__get_flsindex";
- case 0x0164: return "__get_tlsindex";
- case 0x0165: return "__getmainargs";
- case 0x0166: return "__initenv";
- case 0x0167: return "__iob_func";
- case 0x0168: return "__isascii";
- case 0x0169: return "__iscsym";
- case 0x016a: return "__iscsymf";
- case 0x016b: return "__iswcsym";
- case 0x016c: return "__iswcsymf";
- case 0x016d: return "__lconv";
- case 0x016e: return "__lconv_init";
- case 0x016f: return "__libm_sse2_acos";
- case 0x0170: return "__libm_sse2_acosf";
- case 0x0171: return "__libm_sse2_asin";
- case 0x0172: return "__libm_sse2_asinf";
- case 0x0173: return "__libm_sse2_atan";
- case 0x0174: return "__libm_sse2_atan2";
- case 0x0175: return "__libm_sse2_atanf";
- case 0x0176: return "__libm_sse2_cos";
- case 0x0177: return "__libm_sse2_cosf";
- case 0x0178: return "__libm_sse2_exp";
- case 0x0179: return "__libm_sse2_expf";
- case 0x017a: return "__libm_sse2_log";
- case 0x017b: return "__libm_sse2_log10";
- case 0x017c: return "__libm_sse2_log10f";
- case 0x017d: return "__libm_sse2_logf";
- case 0x017e: return "__libm_sse2_pow";
- case 0x017f: return "__libm_sse2_powf";
- case 0x0180: return "__libm_sse2_sin";
- case 0x0181: return "__libm_sse2_sinf";
- case 0x0182: return "__libm_sse2_tan";
- case 0x0183: return "__libm_sse2_tanf";
- case 0x0184: return "__mb_cur_max";
- case 0x0185: return "__p___argc";
- case 0x0186: return "__p___argv";
- case 0x0187: return "__p___initenv";
- case 0x0188: return "__p___mb_cur_max";
- case 0x0189: return "__p___wargv";
- case 0x018a: return "__p___winitenv";
- case 0x018b: return "__p__acmdln";
- case 0x018c: return "__p__commode";
- case 0x018d: return "__p__daylight";
- case 0x018e: return "__p__dstbias";
- case 0x018f: return "__p__environ";
- case 0x0190: return "__p__fmode";
- case 0x0191: return "__p__iob";
- case 0x0192: return "__p__mbcasemap";
- case 0x0193: return "__p__mbctype";
- case 0x0194: return "__p__pctype";
- case 0x0195: return "__p__pgmptr";
- case 0x0196: return "__p__pwctype";
- case 0x0197: return "__p__timezone";
- case 0x0198: return "__p__tzname";
- case 0x0199: return "__p__wcmdln";
- case 0x019a: return "__p__wenviron";
- case 0x019b: return "__p__wpgmptr";
- case 0x019c: return "__pctype_func";
- case 0x019d: return "__pioinfo";
- case 0x019e: return "__pwctype_func";
- case 0x019f: return "__pxcptinfoptrs";
- case 0x01a0: return "__report_gsfailure";
- case 0x01a1: return "__set_app_type";
- case 0x01a2: return "__set_flsgetvalue";
- case 0x01a3: return "__setlc_active";
- case 0x01a4: return "__setusermatherr";
- case 0x01a5: return "__strncnt";
- case 0x01a6: return "__swprintf_l";
- case 0x01a7: return "__sys_errlist";
- case 0x01a8: return "__sys_nerr";
- case 0x01a9: return "__threadhandle";
- case 0x01aa: return "__threadid";
- case 0x01ab: return "__timezone";
- case 0x01ac: return "__toascii";
- case 0x01ad: return "__tzname";
- case 0x01ae: return "__unDName";
- case 0x01af: return "__unDNameEx";
- case 0x01b0: return "__unDNameHelper";
- case 0x00e1: return "__uncaught_exception";
- case 0x01b1: return "__unguarded_readlc_active";
- case 0x01b2: return "__vswprintf_l";
- case 0x01b3: return "__wargv";
- case 0x01b4: return "__wcserror";
- case 0x01b5: return "__wcserror_s";
- case 0x01b6: return "__wcsncnt";
- case 0x01b7: return "__wgetmainargs";
- case 0x01b8: return "__winitenv";
- case 0x01b9: return "_abnormal_termination";
- case 0x01ba: return "_abs64";
- case 0x01bb: return "_access";
- case 0x01bc: return "_access_s";
- case 0x01bd: return "_acmdln";
- case 0x01be: return "_aligned_free";
- case 0x01bf: return "_aligned_malloc";
- case 0x01c0: return "_aligned_msize";
- case 0x01c1: return "_aligned_offset_malloc";
- case 0x01c2: return "_aligned_offset_realloc";
- case 0x01c3: return "_aligned_offset_recalloc";
- case 0x01c4: return "_aligned_realloc";
- case 0x01c5: return "_aligned_recalloc";
- case 0x01c6: return "_amsg_exit";
- case 0x01c7: return "_assert";
- case 0x01c8: return "_atodbl";
- case 0x01c9: return "_atodbl_l";
- case 0x01ca: return "_atof_l";
- case 0x01cb: return "_atoflt";
- case 0x01cc: return "_atoflt_l";
- case 0x01cd: return "_atoi64";
- case 0x01ce: return "_atoi64_l";
- case 0x01cf: return "_atoi_l";
- case 0x01d0: return "_atol_l";
- case 0x01d1: return "_atoldbl";
- case 0x01d2: return "_atoldbl_l";
- case 0x01d3: return "_beep";
- case 0x01d4: return "_beginthread";
- case 0x01d5: return "_beginthreadex";
- case 0x01d6: return "_byteswap_uint64";
- case 0x01d7: return "_byteswap_ulong";
- case 0x01d8: return "_byteswap_ushort";
- case 0x01d9: return "_c_exit";
- case 0x01da: return "_cabs";
- case 0x01db: return "_callnewh";
- case 0x01dc: return "_calloc_crt";
- case 0x01dd: return "_cexit";
- case 0x01de: return "_cgets";
- case 0x01df: return "_cgets_s";
- case 0x01e0: return "_cgetws";
- case 0x01e1: return "_cgetws_s";
- case 0x01e2: return "_chdir";
- case 0x01e3: return "_chdrive";
- case 0x01e4: return "_chgsign";
- case 0x01e5: return "_chkesp";
- case 0x01e6: return "_chmod";
- case 0x01e7: return "_chsize";
- case 0x01e8: return "_chsize_s";
- case 0x01e9: return "_clearfp";
- case 0x01ea: return "_close";
- case 0x01eb: return "_commit";
- case 0x01ec: return "_commode";
- case 0x01ed: return "_configthreadlocale";
- case 0x01ee: return "_control87";
- case 0x01ef: return "_controlfp";
- case 0x01f0: return "_controlfp_s";
- case 0x01f1: return "_copysign";
- case 0x01f2: return "_cprintf";
- case 0x01f3: return "_cprintf_l";
- case 0x01f4: return "_cprintf_p";
- case 0x01f5: return "_cprintf_p_l";
- case 0x01f6: return "_cprintf_s";
- case 0x01f7: return "_cprintf_s_l";
- case 0x01f8: return "_cputs";
- case 0x01f9: return "_cputws";
- case 0x01fa: return "_creat";
- case 0x01fb: return "_create_locale";
- case 0x01fc: return "_crt_debugger_hook";
- case 0x01fd: return "_cscanf";
- case 0x01fe: return "_cscanf_l";
- case 0x01ff: return "_cscanf_s";
- case 0x0200: return "_cscanf_s_l";
- case 0x0201: return "_ctime32";
- case 0x0202: return "_ctime32_s";
- case 0x0203: return "_ctime64";
- case 0x0204: return "_ctime64_s";
- case 0x0205: return "_cwait";
- case 0x0206: return "_cwprintf";
- case 0x0207: return "_cwprintf_l";
- case 0x0208: return "_cwprintf_p";
- case 0x0209: return "_cwprintf_p_l";
- case 0x020a: return "_cwprintf_s";
- case 0x020b: return "_cwprintf_s_l";
- case 0x020c: return "_cwscanf";
- case 0x020d: return "_cwscanf_l";
- case 0x020e: return "_cwscanf_s";
- case 0x020f: return "_cwscanf_s_l";
- case 0x0210: return "_daylight";
- case 0x0211: return "_difftime32";
- case 0x0212: return "_difftime64";
- case 0x0213: return "_dosmaperr";
- case 0x0214: return "_dstbias";
- case 0x0215: return "_dup";
- case 0x0216: return "_dup2";
- case 0x0217: return "_dupenv_s";
- case 0x0218: return "_ecvt";
- case 0x0219: return "_ecvt_s";
- case 0x021a: return "_encoded_null";
- case 0x021b: return "_endthread";
- case 0x021c: return "_endthreadex";
- case 0x021d: return "_environ";
- case 0x021e: return "_eof";
- case 0x021f: return "_errno";
- case 0x0220: return "_except_handler2";
- case 0x0221: return "_except_handler3";
- case 0x0222: return "_except_handler4_common";
- case 0x0223: return "_execl";
- case 0x0224: return "_execle";
- case 0x0225: return "_execlp";
- case 0x0226: return "_execlpe";
- case 0x0227: return "_execv";
- case 0x0228: return "_execve";
- case 0x0229: return "_execvp";
- case 0x022a: return "_execvpe";
- case 0x022b: return "_exit";
- case 0x022c: return "_expand";
- case 0x022d: return "_fclose_nolock";
- case 0x022e: return "_fcloseall";
- case 0x022f: return "_fcvt";
- case 0x0230: return "_fcvt_s";
- case 0x0231: return "_fdopen";
- case 0x0232: return "_fflush_nolock";
- case 0x0233: return "_fgetchar";
- case 0x0234: return "_fgetwc_nolock";
- case 0x0235: return "_fgetwchar";
- case 0x0236: return "_filbuf";
- case 0x0237: return "_filelength";
- case 0x0238: return "_filelengthi64";
- case 0x0239: return "_fileno";
- case 0x023a: return "_findclose";
- case 0x023b: return "_findfirst32";
- case 0x023c: return "_findfirst32i64";
- case 0x023d: return "_findfirst64";
- case 0x023e: return "_findfirst64i32";
- case 0x023f: return "_findnext32";
- case 0x0240: return "_findnext32i64";
- case 0x0241: return "_findnext64";
- case 0x0242: return "_findnext64i32";
- case 0x0243: return "_finite";
- case 0x0244: return "_flsbuf";
- case 0x0245: return "_flushall";
- case 0x0246: return "_fmode";
- case 0x0247: return "_fpclass";
- case 0x0248: return "_fpieee_flt";
- case 0x0249: return "_fpreset";
- case 0x024a: return "_fprintf_l";
- case 0x024b: return "_fprintf_p";
- case 0x024c: return "_fprintf_p_l";
- case 0x024d: return "_fprintf_s_l";
- case 0x024e: return "_fputchar";
- case 0x024f: return "_fputwc_nolock";
- case 0x0250: return "_fputwchar";
- case 0x0251: return "_fread_nolock";
- case 0x0252: return "_fread_nolock_s";
- case 0x0253: return "_free_locale";
- case 0x0254: return "_freea";
- case 0x0255: return "_freea_s";
- case 0x0256: return "_freefls";
- case 0x0257: return "_fscanf_l";
- case 0x0258: return "_fscanf_s_l";
- case 0x0259: return "_fseek_nolock";
- case 0x025a: return "_fseeki64";
- case 0x025b: return "_fseeki64_nolock";
- case 0x025c: return "_fsopen";
- case 0x025d: return "_fstat32";
- case 0x025e: return "_fstat32i64";
- case 0x025f: return "_fstat64";
- case 0x0260: return "_fstat64i32";
- case 0x0261: return "_ftell_nolock";
- case 0x0262: return "_ftelli64";
- case 0x0263: return "_ftelli64_nolock";
- case 0x0264: return "_ftime32";
- case 0x0265: return "_ftime32_s";
- case 0x0266: return "_ftime64";
- case 0x0267: return "_ftime64_s";
- case 0x0268: return "_ftol";
- case 0x0269: return "_fullpath";
- case 0x026a: return "_futime32";
- case 0x026b: return "_futime64";
- case 0x026c: return "_fwprintf_l";
- case 0x026d: return "_fwprintf_p";
- case 0x026e: return "_fwprintf_p_l";
- case 0x026f: return "_fwprintf_s_l";
- case 0x0270: return "_fwrite_nolock";
- case 0x0271: return "_fwscanf_l";
- case 0x0272: return "_fwscanf_s_l";
- case 0x0273: return "_gcvt";
- case 0x0274: return "_gcvt_s";
- case 0x0275: return "_get_current_locale";
- case 0x0276: return "_get_daylight";
- case 0x0277: return "_get_doserrno";
- case 0x0278: return "_get_dstbias";
- case 0x0279: return "_get_errno";
- case 0x027a: return "_get_fmode";
- case 0x027b: return "_get_heap_handle";
- case 0x027c: return "_get_invalid_parameter_handler";
- case 0x027d: return "_get_osfhandle";
- case 0x027e: return "_get_output_format";
- case 0x027f: return "_get_pgmptr";
- case 0x0280: return "_get_printf_count_output";
- case 0x0281: return "_get_purecall_handler";
- case 0x0282: return "_get_terminate";
- case 0x0283: return "_get_timezone";
- case 0x0284: return "_get_tzname";
- case 0x0285: return "_get_unexpected";
- case 0x0286: return "_get_wpgmptr";
- case 0x0287: return "_getc_nolock";
- case 0x0288: return "_getch";
- case 0x0289: return "_getch_nolock";
- case 0x028a: return "_getche";
- case 0x028b: return "_getche_nolock";
- case 0x028c: return "_getcwd";
- case 0x028d: return "_getdcwd";
- case 0x028e: return "_getdcwd_nolock";
- case 0x028f: return "_getdiskfree";
- case 0x0290: return "_getdllprocaddr";
- case 0x0291: return "_getdrive";
- case 0x0292: return "_getdrives";
- case 0x0293: return "_getmaxstdio";
- case 0x0294: return "_getmbcp";
- case 0x0295: return "_getpid";
- case 0x0296: return "_getptd";
- case 0x0297: return "_getsystime";
- case 0x0298: return "_getw";
- case 0x0299: return "_getwch";
- case 0x029a: return "_getwch_nolock";
- case 0x029b: return "_getwche";
- case 0x029c: return "_getwche_nolock";
- case 0x029d: return "_getws";
- case 0x029e: return "_getws_s";
- case 0x029f: return "_global_unwind2";
- case 0x02a0: return "_gmtime32";
- case 0x02a1: return "_gmtime32_s";
- case 0x02a2: return "_gmtime64";
- case 0x02a3: return "_gmtime64_s";
- case 0x02a4: return "_heapadd";
- case 0x02a5: return "_heapchk";
- case 0x02a6: return "_heapmin";
- case 0x02a7: return "_heapset";
- case 0x02a8: return "_heapused";
- case 0x02a9: return "_heapwalk";
- case 0x02aa: return "_hypot";
- case 0x02ab: return "_hypotf";
- case 0x02ac: return "_i64toa";
- case 0x02ad: return "_i64toa_s";
- case 0x02ae: return "_i64tow";
- case 0x02af: return "_i64tow_s";
- case 0x02b0: return "_initptd";
- case 0x02b1: return "_initterm";
- case 0x02b2: return "_initterm_e";
- case 0x02b3: return "_inp";
- case 0x02b4: return "_inpd";
- case 0x02b5: return "_inpw";
- case 0x02b6: return "_invalid_parameter";
- case 0x02b7: return "_invalid_parameter_noinfo";
- case 0x02b8: return "_invalid_parameter_noinfo_noreturn";
- case 0x02b9: return "_invoke_watson";
- case 0x02ba: return "_iob";
- case 0x02bb: return "_isalnum_l";
- case 0x02bc: return "_isalpha_l";
- case 0x02bd: return "_isatty";
- case 0x02be: return "_iscntrl_l";
- case 0x02bf: return "_isctype";
- case 0x02c0: return "_isctype_l";
- case 0x02c1: return "_isdigit_l";
- case 0x02c2: return "_isgraph_l";
- case 0x02c3: return "_isleadbyte_l";
- case 0x02c4: return "_islower_l";
- case 0x02c5: return "_ismbbalnum";
- case 0x02c6: return "_ismbbalnum_l";
- case 0x02c7: return "_ismbbalpha";
- case 0x02c8: return "_ismbbalpha_l";
- case 0x02c9: return "_ismbbgraph";
- case 0x02ca: return "_ismbbgraph_l";
- case 0x02cb: return "_ismbbkalnum";
- case 0x02cc: return "_ismbbkalnum_l";
- case 0x02cd: return "_ismbbkana";
- case 0x02ce: return "_ismbbkana_l";
- case 0x02cf: return "_ismbbkprint";
- case 0x02d0: return "_ismbbkprint_l";
- case 0x02d1: return "_ismbbkpunct";
- case 0x02d2: return "_ismbbkpunct_l";
- case 0x02d3: return "_ismbblead";
- case 0x02d4: return "_ismbblead_l";
- case 0x02d5: return "_ismbbprint";
- case 0x02d6: return "_ismbbprint_l";
- case 0x02d7: return "_ismbbpunct";
- case 0x02d8: return "_ismbbpunct_l";
- case 0x02d9: return "_ismbbtrail";
- case 0x02da: return "_ismbbtrail_l";
- case 0x02db: return "_ismbcalnum";
- case 0x02dc: return "_ismbcalnum_l";
- case 0x02dd: return "_ismbcalpha";
- case 0x02de: return "_ismbcalpha_l";
- case 0x02df: return "_ismbcdigit";
- case 0x02e0: return "_ismbcdigit_l";
- case 0x02e1: return "_ismbcgraph";
- case 0x02e2: return "_ismbcgraph_l";
- case 0x02e3: return "_ismbchira";
- case 0x02e4: return "_ismbchira_l";
- case 0x02e5: return "_ismbckata";
- case 0x02e6: return "_ismbckata_l";
- case 0x02e7: return "_ismbcl0";
- case 0x02e8: return "_ismbcl0_l";
- case 0x02e9: return "_ismbcl1";
- case 0x02ea: return "_ismbcl1_l";
- case 0x02eb: return "_ismbcl2";
- case 0x02ec: return "_ismbcl2_l";
- case 0x02ed: return "_ismbclegal";
- case 0x02ee: return "_ismbclegal_l";
- case 0x02ef: return "_ismbclower";
- case 0x02f0: return "_ismbclower_l";
- case 0x02f1: return "_ismbcprint";
- case 0x02f2: return "_ismbcprint_l";
- case 0x02f3: return "_ismbcpunct";
- case 0x02f4: return "_ismbcpunct_l";
- case 0x02f5: return "_ismbcspace";
- case 0x02f6: return "_ismbcspace_l";
- case 0x02f7: return "_ismbcsymbol";
- case 0x02f8: return "_ismbcsymbol_l";
- case 0x02f9: return "_ismbcupper";
- case 0x02fa: return "_ismbcupper_l";
- case 0x02fb: return "_ismbslead";
- case 0x02fc: return "_ismbslead_l";
- case 0x02fd: return "_ismbstrail";
- case 0x02fe: return "_ismbstrail_l";
- case 0x02ff: return "_isnan";
- case 0x0300: return "_isprint_l";
- case 0x0301: return "_ispunct_l";
- case 0x0302: return "_isspace_l";
- case 0x0303: return "_isupper_l";
- case 0x0304: return "_iswalnum_l";
- case 0x0305: return "_iswalpha_l";
- case 0x0306: return "_iswcntrl_l";
- case 0x0307: return "_iswcsym_l";
- case 0x0308: return "_iswcsymf_l";
- case 0x0309: return "_iswctype_l";
- case 0x030a: return "_iswdigit_l";
- case 0x030b: return "_iswgraph_l";
- case 0x030c: return "_iswlower_l";
- case 0x030d: return "_iswprint_l";
- case 0x030e: return "_iswpunct_l";
- case 0x030f: return "_iswspace_l";
- case 0x0310: return "_iswupper_l";
- case 0x0311: return "_iswxdigit_l";
- case 0x0312: return "_isxdigit_l";
- case 0x0313: return "_itoa";
- case 0x0314: return "_itoa_s";
- case 0x0315: return "_itow";
- case 0x0316: return "_itow_s";
- case 0x0317: return "_j0";
- case 0x0318: return "_j1";
- case 0x0319: return "_jn";
- case 0x031a: return "_kbhit";
- case 0x031b: return "_lfind";
- case 0x031c: return "_lfind_s";
- case 0x031d: return "_loaddll";
- case 0x031e: return "_local_unwind2";
- case 0x031f: return "_local_unwind4";
- case 0x0320: return "_localtime32";
- case 0x0321: return "_localtime32_s";
- case 0x0322: return "_localtime64";
- case 0x0323: return "_localtime64_s";
- case 0x0324: return "_lock";
- case 0x0325: return "_lock_file";
- case 0x0326: return "_locking";
- case 0x0327: return "_logb";
- case 0x0328: return "_longjmpex";
- case 0x0329: return "_lrotl";
- case 0x032a: return "_lrotr";
- case 0x032b: return "_lsearch";
- case 0x032c: return "_lsearch_s";
- case 0x032d: return "_lseek";
- case 0x032e: return "_lseeki64";
- case 0x032f: return "_ltoa";
- case 0x0330: return "_ltoa_s";
- case 0x0331: return "_ltow";
- case 0x0332: return "_ltow_s";
- case 0x0333: return "_makepath";
- case 0x0334: return "_makepath_s";
- case 0x0335: return "_malloc_crt";
- case 0x0336: return "_mbbtombc";
- case 0x0337: return "_mbbtombc_l";
- case 0x0338: return "_mbbtype";
- case 0x0339: return "_mbbtype_l";
- case 0x033a: return "_mbcasemap";
- case 0x033b: return "_mbccpy";
- case 0x033c: return "_mbccpy_l";
- case 0x033d: return "_mbccpy_s";
- case 0x033e: return "_mbccpy_s_l";
- case 0x033f: return "_mbcjistojms";
- case 0x0340: return "_mbcjistojms_l";
- case 0x0341: return "_mbcjmstojis";
- case 0x0342: return "_mbcjmstojis_l";
- case 0x0343: return "_mbclen";
- case 0x0344: return "_mbclen_l";
- case 0x0345: return "_mbctohira";
- case 0x0346: return "_mbctohira_l";
- case 0x0347: return "_mbctokata";
- case 0x0348: return "_mbctokata_l";
- case 0x0349: return "_mbctolower";
- case 0x034a: return "_mbctolower_l";
- case 0x034b: return "_mbctombb";
- case 0x034c: return "_mbctombb_l";
- case 0x034d: return "_mbctoupper";
- case 0x034e: return "_mbctoupper_l";
- case 0x034f: return "_mbctype";
- case 0x0350: return "_mblen_l";
- case 0x0351: return "_mbsbtype";
- case 0x0352: return "_mbsbtype_l";
- case 0x0353: return "_mbscat_s";
- case 0x0354: return "_mbscat_s_l";
- case 0x0355: return "_mbschr";
- case 0x0356: return "_mbschr_l";
- case 0x0357: return "_mbscmp";
- case 0x0358: return "_mbscmp_l";
- case 0x0359: return "_mbscoll";
- case 0x035a: return "_mbscoll_l";
- case 0x035b: return "_mbscpy_s";
- case 0x035c: return "_mbscpy_s_l";
- case 0x035d: return "_mbscspn";
- case 0x035e: return "_mbscspn_l";
- case 0x035f: return "_mbsdec";
- case 0x0360: return "_mbsdec_l";
- case 0x0361: return "_mbsicmp";
- case 0x0362: return "_mbsicmp_l";
- case 0x0363: return "_mbsicoll";
- case 0x0364: return "_mbsicoll_l";
- case 0x0365: return "_mbsinc";
- case 0x0366: return "_mbsinc_l";
- case 0x0367: return "_mbslen";
- case 0x0368: return "_mbslen_l";
- case 0x0369: return "_mbslwr";
- case 0x036a: return "_mbslwr_l";
- case 0x036b: return "_mbslwr_s";
- case 0x036c: return "_mbslwr_s_l";
- case 0x036d: return "_mbsnbcat";
- case 0x036e: return "_mbsnbcat_l";
- case 0x036f: return "_mbsnbcat_s";
- case 0x0370: return "_mbsnbcat_s_l";
- case 0x0371: return "_mbsnbcmp";
- case 0x0372: return "_mbsnbcmp_l";
- case 0x0373: return "_mbsnbcnt";
- case 0x0374: return "_mbsnbcnt_l";
- case 0x0375: return "_mbsnbcoll";
- case 0x0376: return "_mbsnbcoll_l";
- case 0x0377: return "_mbsnbcpy";
- case 0x0378: return "_mbsnbcpy_l";
- case 0x0379: return "_mbsnbcpy_s";
- case 0x037a: return "_mbsnbcpy_s_l";
- case 0x037b: return "_mbsnbicmp";
- case 0x037c: return "_mbsnbicmp_l";
- case 0x037d: return "_mbsnbicoll";
- case 0x037e: return "_mbsnbicoll_l";
- case 0x037f: return "_mbsnbset";
- case 0x0380: return "_mbsnbset_l";
- case 0x0381: return "_mbsnbset_s";
- case 0x0382: return "_mbsnbset_s_l";
- case 0x0383: return "_mbsncat";
- case 0x0384: return "_mbsncat_l";
- case 0x0385: return "_mbsncat_s";
- case 0x0386: return "_mbsncat_s_l";
- case 0x0387: return "_mbsnccnt";
- case 0x0388: return "_mbsnccnt_l";
- case 0x0389: return "_mbsncmp";
- case 0x038a: return "_mbsncmp_l";
- case 0x038b: return "_mbsncoll";
- case 0x038c: return "_mbsncoll_l";
- case 0x038d: return "_mbsncpy";
- case 0x038e: return "_mbsncpy_l";
- case 0x038f: return "_mbsncpy_s";
- case 0x0390: return "_mbsncpy_s_l";
- case 0x0391: return "_mbsnextc";
- case 0x0392: return "_mbsnextc_l";
- case 0x0393: return "_mbsnicmp";
- case 0x0394: return "_mbsnicmp_l";
- case 0x0395: return "_mbsnicoll";
- case 0x0396: return "_mbsnicoll_l";
- case 0x0397: return "_mbsninc";
- case 0x0398: return "_mbsninc_l";
- case 0x0399: return "_mbsnlen";
- case 0x039a: return "_mbsnlen_l";
- case 0x039b: return "_mbsnset";
- case 0x039c: return "_mbsnset_l";
- case 0x039d: return "_mbsnset_s";
- case 0x039e: return "_mbsnset_s_l";
- case 0x039f: return "_mbspbrk";
- case 0x03a0: return "_mbspbrk_l";
- case 0x03a1: return "_mbsrchr";
- case 0x03a2: return "_mbsrchr_l";
- case 0x03a3: return "_mbsrev";
- case 0x03a4: return "_mbsrev_l";
- case 0x03a5: return "_mbsset";
- case 0x03a6: return "_mbsset_l";
- case 0x03a7: return "_mbsset_s";
- case 0x03a8: return "_mbsset_s_l";
- case 0x03a9: return "_mbsspn";
- case 0x03aa: return "_mbsspn_l";
- case 0x03ab: return "_mbsspnp";
- case 0x03ac: return "_mbsspnp_l";
- case 0x03ad: return "_mbsstr";
- case 0x03ae: return "_mbsstr_l";
- case 0x03af: return "_mbstok";
- case 0x03b0: return "_mbstok_l";
- case 0x03b1: return "_mbstok_s";
- case 0x03b2: return "_mbstok_s_l";
- case 0x03b3: return "_mbstowcs_l";
- case 0x03b4: return "_mbstowcs_s_l";
- case 0x03b5: return "_mbstrlen";
- case 0x03b6: return "_mbstrlen_l";
- case 0x03b7: return "_mbstrnlen";
- case 0x03b8: return "_mbstrnlen_l";
- case 0x03b9: return "_mbsupr";
- case 0x03ba: return "_mbsupr_l";
- case 0x03bb: return "_mbsupr_s";
- case 0x03bc: return "_mbsupr_s_l";
- case 0x03bd: return "_mbtowc_l";
- case 0x03be: return "_memccpy";
- case 0x03bf: return "_memicmp";
- case 0x03c0: return "_memicmp_l";
- case 0x03c1: return "_mkdir";
- case 0x03c2: return "_mkgmtime32";
- case 0x03c3: return "_mkgmtime64";
- case 0x03c4: return "_mktemp";
- case 0x03c5: return "_mktemp_s";
- case 0x03c6: return "_mktime32";
- case 0x03c7: return "_mktime64";
- case 0x03c8: return "_msize";
- case 0x03c9: return "_nextafter";
- case 0x03ca: return "_onexit";
- case 0x03cb: return "_open";
- case 0x03cc: return "_open_osfhandle";
- case 0x03cd: return "_outp";
- case 0x03ce: return "_outpd";
- case 0x03cf: return "_outpw";
- case 0x03d0: return "_pclose";
- case 0x03d1: return "_pctype";
- case 0x03d2: return "_pgmptr";
- case 0x03d3: return "_pipe";
- case 0x03d4: return "_popen";
- case 0x03d5: return "_printf_l";
- case 0x03d6: return "_printf_p";
- case 0x03d7: return "_printf_p_l";
- case 0x03d8: return "_printf_s_l";
- case 0x03d9: return "_purecall";
- case 0x03da: return "_putch";
- case 0x03db: return "_putch_nolock";
- case 0x03dc: return "_putenv";
- case 0x03dd: return "_putenv_s";
- case 0x03de: return "_putw";
- case 0x03df: return "_putwch";
- case 0x03e0: return "_putwch_nolock";
- case 0x03e1: return "_putws";
- case 0x03e2: return "_pwctype";
- case 0x03e3: return "_read";
- case 0x03e4: return "_realloc_crt";
- case 0x03e5: return "_recalloc";
- case 0x03e6: return "_recalloc_crt";
- case 0x03e7: return "_resetstkoflw";
- case 0x03e8: return "_rmdir";
- case 0x03e9: return "_rmtmp";
- case 0x03ea: return "_rotl";
- case 0x03eb: return "_rotl64";
- case 0x03ec: return "_rotr";
- case 0x03ed: return "_rotr64";
- case 0x03ee: return "_scalb";
- case 0x03ef: return "_scanf_l";
- case 0x03f0: return "_scanf_s_l";
- case 0x03f1: return "_scprintf";
- case 0x03f2: return "_scprintf_l";
- case 0x03f3: return "_scprintf_p";
- case 0x03f4: return "_scprintf_p_l";
- case 0x03f5: return "_scwprintf";
- case 0x03f6: return "_scwprintf_l";
- case 0x03f7: return "_scwprintf_p";
- case 0x03f8: return "_scwprintf_p_l";
- case 0x03f9: return "_searchenv";
- case 0x03fa: return "_searchenv_s";
- case 0x03fc: return "_seh_longjmp_unwind";
- case 0x03fb: return "_seh_longjmp_unwind4";
- case 0x03fd: return "_set_SSE2_enable";
- case 0x03fe: return "_set_abort_behavior";
- case 0x03ff: return "_set_controlfp";
- case 0x0400: return "_set_doserrno";
- case 0x0401: return "_set_errno";
- case 0x0402: return "_set_error_mode";
- case 0x0403: return "_set_fmode";
- case 0x0404: return "_set_invalid_parameter_handler";
- case 0x0405: return "_set_malloc_crt_max_wait";
- case 0x0406: return "_set_output_format";
- case 0x0407: return "_set_printf_count_output";
- case 0x0408: return "_set_purecall_handler";
- case 0x0409: return "_seterrormode";
- case 0x040a: return "_setjmp";
- case 0x040b: return "_setjmp3";
- case 0x040c: return "_setmaxstdio";
- case 0x040d: return "_setmbcp";
- case 0x040e: return "_setmode";
- case 0x040f: return "_setsystime";
- case 0x0410: return "_sleep";
- case 0x0411: return "_snprintf";
- case 0x0412: return "_snprintf_c";
- case 0x0413: return "_snprintf_c_l";
- case 0x0414: return "_snprintf_l";
- case 0x0415: return "_snprintf_s";
- case 0x0416: return "_snprintf_s_l";
- case 0x0417: return "_snscanf";
- case 0x0418: return "_snscanf_l";
- case 0x0419: return "_snscanf_s";
- case 0x041a: return "_snscanf_s_l";
- case 0x041b: return "_snwprintf";
- case 0x041c: return "_snwprintf_l";
- case 0x041d: return "_snwprintf_s";
- case 0x041e: return "_snwprintf_s_l";
- case 0x041f: return "_snwscanf";
- case 0x0420: return "_snwscanf_l";
- case 0x0421: return "_snwscanf_s";
- case 0x0422: return "_snwscanf_s_l";
- case 0x0423: return "_sopen";
- case 0x0424: return "_sopen_s";
- case 0x0425: return "_spawnl";
- case 0x0426: return "_spawnle";
- case 0x0427: return "_spawnlp";
- case 0x0428: return "_spawnlpe";
- case 0x0429: return "_spawnv";
- case 0x042a: return "_spawnve";
- case 0x042b: return "_spawnvp";
- case 0x042c: return "_spawnvpe";
- case 0x042d: return "_splitpath";
- case 0x042e: return "_splitpath_s";
- case 0x042f: return "_sprintf_l";
- case 0x0430: return "_sprintf_p";
- case 0x0431: return "_sprintf_p_l";
- case 0x0432: return "_sprintf_s_l";
- case 0x0433: return "_sscanf_l";
- case 0x0434: return "_sscanf_s_l";
- case 0x0435: return "_stat32";
- case 0x0436: return "_stat32i64";
- case 0x0437: return "_stat64";
- case 0x0438: return "_stat64i32";
- case 0x0439: return "_statusfp";
- case 0x043a: return "_statusfp2";
- case 0x043b: return "_strcoll_l";
- case 0x043c: return "_strdate";
- case 0x043d: return "_strdate_s";
- case 0x043e: return "_strdup";
- case 0x043f: return "_strerror";
- case 0x0440: return "_strerror_s";
- case 0x0441: return "_strftime_l";
- case 0x0442: return "_stricmp";
- case 0x0443: return "_stricmp_l";
- case 0x0444: return "_stricoll";
- case 0x0445: return "_stricoll_l";
- case 0x0446: return "_strlwr";
- case 0x0447: return "_strlwr_l";
- case 0x0448: return "_strlwr_s";
- case 0x0449: return "_strlwr_s_l";
- case 0x044a: return "_strncoll";
- case 0x044b: return "_strncoll_l";
- case 0x044c: return "_strnicmp";
- case 0x044d: return "_strnicmp_l";
- case 0x044e: return "_strnicoll";
- case 0x044f: return "_strnicoll_l";
- case 0x0450: return "_strnset";
- case 0x0451: return "_strnset_s";
- case 0x0452: return "_strrev";
- case 0x0453: return "_strset";
- case 0x0454: return "_strset_s";
- case 0x0455: return "_strtime";
- case 0x0456: return "_strtime_s";
- case 0x0457: return "_strtod_l";
- case 0x0458: return "_strtoi64";
- case 0x0459: return "_strtoi64_l";
- case 0x045a: return "_strtol_l";
- case 0x045b: return "_strtoui64";
- case 0x045c: return "_strtoui64_l";
- case 0x045d: return "_strtoul_l";
- case 0x045e: return "_strupr";
- case 0x045f: return "_strupr_l";
- case 0x0460: return "_strupr_s";
- case 0x0461: return "_strupr_s_l";
- case 0x0462: return "_strxfrm_l";
- case 0x0463: return "_swab";
- case 0x0464: return "_swprintf";
- case 0x0465: return "_swprintf_c";
- case 0x0466: return "_swprintf_c_l";
- case 0x0467: return "_swprintf_p";
- case 0x0468: return "_swprintf_p_l";
- case 0x0469: return "_swprintf_s_l";
- case 0x046a: return "_swscanf_l";
- case 0x046b: return "_swscanf_s_l";
- case 0x046c: return "_sys_errlist";
- case 0x046d: return "_sys_nerr";
- case 0x046e: return "_tell";
- case 0x046f: return "_telli64";
- case 0x0470: return "_tempnam";
- case 0x0471: return "_time32";
- case 0x0472: return "_time64";
- case 0x0473: return "_timezone";
- case 0x0474: return "_tolower";
- case 0x0475: return "_tolower_l";
- case 0x0476: return "_toupper";
- case 0x0477: return "_toupper_l";
- case 0x0478: return "_towlower_l";
- case 0x0479: return "_towupper_l";
- case 0x047a: return "_tzname";
- case 0x047b: return "_tzset";
- case 0x047c: return "_ui64toa";
- case 0x047d: return "_ui64toa_s";
- case 0x047e: return "_ui64tow";
- case 0x047f: return "_ui64tow_s";
- case 0x0480: return "_ultoa";
- case 0x0481: return "_ultoa_s";
- case 0x0482: return "_ultow";
- case 0x0483: return "_ultow_s";
- case 0x0484: return "_umask";
- case 0x0485: return "_umask_s";
- case 0x0486: return "_ungetc_nolock";
- case 0x0487: return "_ungetch";
- case 0x0488: return "_ungetch_nolock";
- case 0x0489: return "_ungetwc_nolock";
- case 0x048a: return "_ungetwch";
- case 0x048b: return "_ungetwch_nolock";
- case 0x048c: return "_unlink";
- case 0x048d: return "_unloaddll";
- case 0x048e: return "_unlock";
- case 0x048f: return "_unlock_file";
- case 0x0490: return "_utime32";
- case 0x0491: return "_utime64";
- case 0x0492: return "_vcprintf";
- case 0x0493: return "_vcprintf_l";
- case 0x0494: return "_vcprintf_p";
- case 0x0495: return "_vcprintf_p_l";
- case 0x0496: return "_vcprintf_s";
- case 0x0497: return "_vcprintf_s_l";
- case 0x0498: return "_vcwprintf";
- case 0x0499: return "_vcwprintf_l";
- case 0x049a: return "_vcwprintf_p";
- case 0x049b: return "_vcwprintf_p_l";
- case 0x049c: return "_vcwprintf_s";
- case 0x049d: return "_vcwprintf_s_l";
- case 0x049e: return "_vfprintf_l";
- case 0x049f: return "_vfprintf_p";
- case 0x04a0: return "_vfprintf_p_l";
- case 0x04a1: return "_vfprintf_s_l";
- case 0x04a2: return "_vfwprintf_l";
- case 0x04a3: return "_vfwprintf_p";
- case 0x04a4: return "_vfwprintf_p_l";
- case 0x04a5: return "_vfwprintf_s_l";
- case 0x04a6: return "_vprintf_l";
- case 0x04a7: return "_vprintf_p";
- case 0x04a8: return "_vprintf_p_l";
- case 0x04a9: return "_vprintf_s_l";
- case 0x04aa: return "_vscprintf";
- case 0x04ab: return "_vscprintf_l";
- case 0x04ac: return "_vscprintf_p";
- case 0x04ad: return "_vscprintf_p_l";
- case 0x04ae: return "_vscwprintf";
- case 0x04af: return "_vscwprintf_l";
- case 0x04b0: return "_vscwprintf_p";
- case 0x04b1: return "_vscwprintf_p_l";
- case 0x04b2: return "_vsnprintf";
- case 0x04b3: return "_vsnprintf_c";
- case 0x04b4: return "_vsnprintf_c_l";
- case 0x04b5: return "_vsnprintf_l";
- case 0x04b6: return "_vsnprintf_s";
- case 0x04b7: return "_vsnprintf_s_l";
- case 0x04b8: return "_vsnwprintf";
- case 0x04b9: return "_vsnwprintf_l";
- case 0x04ba: return "_vsnwprintf_s";
- case 0x04bb: return "_vsnwprintf_s_l";
- case 0x04bc: return "_vsprintf_l";
- case 0x04bd: return "_vsprintf_p";
- case 0x04be: return "_vsprintf_p_l";
- case 0x04bf: return "_vsprintf_s_l";
- case 0x04c0: return "_vswprintf";
- case 0x04c1: return "_vswprintf_c";
- case 0x04c2: return "_vswprintf_c_l";
- case 0x04c3: return "_vswprintf_l";
- case 0x04c4: return "_vswprintf_p";
- case 0x04c5: return "_vswprintf_p_l";
- case 0x04c6: return "_vswprintf_s_l";
- case 0x04c7: return "_vwprintf_l";
- case 0x04c8: return "_vwprintf_p";
- case 0x04c9: return "_vwprintf_p_l";
- case 0x04ca: return "_vwprintf_s_l";
- case 0x04cb: return "_waccess";
- case 0x04cc: return "_waccess_s";
- case 0x04cd: return "_wasctime";
- case 0x04ce: return "_wasctime_s";
- case 0x04cf: return "_wassert";
- case 0x04d0: return "_wchdir";
- case 0x04d1: return "_wchmod";
- case 0x04d2: return "_wcmdln";
- case 0x04d3: return "_wcreat";
- case 0x04d4: return "_wcscoll_l";
- case 0x04d5: return "_wcsdup";
- case 0x04d6: return "_wcserror";
- case 0x04d7: return "_wcserror_s";
- case 0x04d8: return "_wcsftime_l";
- case 0x04d9: return "_wcsicmp";
- case 0x04da: return "_wcsicmp_l";
- case 0x04db: return "_wcsicoll";
- case 0x04dc: return "_wcsicoll_l";
- case 0x04dd: return "_wcslwr";
- case 0x04de: return "_wcslwr_l";
- case 0x04df: return "_wcslwr_s";
- case 0x04e0: return "_wcslwr_s_l";
- case 0x04e1: return "_wcsncoll";
- case 0x04e2: return "_wcsncoll_l";
- case 0x04e3: return "_wcsnicmp";
- case 0x04e4: return "_wcsnicmp_l";
- case 0x04e5: return "_wcsnicoll";
- case 0x04e6: return "_wcsnicoll_l";
- case 0x04e7: return "_wcsnset";
- case 0x04e8: return "_wcsnset_s";
- case 0x04e9: return "_wcsrev";
- case 0x04ea: return "_wcsset";
- case 0x04eb: return "_wcsset_s";
- case 0x04ec: return "_wcstod_l";
- case 0x04ed: return "_wcstoi64";
- case 0x04ee: return "_wcstoi64_l";
- case 0x04ef: return "_wcstol_l";
- case 0x04f0: return "_wcstombs_l";
- case 0x04f1: return "_wcstombs_s_l";
- case 0x04f2: return "_wcstoui64";
- case 0x04f3: return "_wcstoui64_l";
- case 0x04f4: return "_wcstoul_l";
- case 0x04f5: return "_wcsupr";
- case 0x04f6: return "_wcsupr_l";
- case 0x04f7: return "_wcsupr_s";
- case 0x04f8: return "_wcsupr_s_l";
- case 0x04f9: return "_wcsxfrm_l";
- case 0x04fa: return "_wctime32";
- case 0x04fb: return "_wctime32_s";
- case 0x04fc: return "_wctime64";
- case 0x04fd: return "_wctime64_s";
- case 0x04fe: return "_wctomb_l";
- case 0x04ff: return "_wctomb_s_l";
- case 0x0500: return "_wctype";
- case 0x0501: return "_wdupenv_s";
- case 0x0502: return "_wenviron";
- case 0x0503: return "_wexecl";
- case 0x0504: return "_wexecle";
- case 0x0505: return "_wexeclp";
- case 0x0506: return "_wexeclpe";
- case 0x0507: return "_wexecv";
- case 0x0508: return "_wexecve";
- case 0x0509: return "_wexecvp";
- case 0x050a: return "_wexecvpe";
- case 0x050b: return "_wfdopen";
- case 0x050c: return "_wfindfirst32";
- case 0x050d: return "_wfindfirst32i64";
- case 0x050e: return "_wfindfirst64";
- case 0x050f: return "_wfindfirst64i32";
- case 0x0510: return "_wfindnext32";
- case 0x0511: return "_wfindnext32i64";
- case 0x0512: return "_wfindnext64";
- case 0x0513: return "_wfindnext64i32";
- case 0x0514: return "_wfopen";
- case 0x0515: return "_wfopen_s";
- case 0x0516: return "_wfreopen";
- case 0x0517: return "_wfreopen_s";
- case 0x0518: return "_wfsopen";
- case 0x0519: return "_wfullpath";
- case 0x051a: return "_wgetcwd";
- case 0x051b: return "_wgetdcwd";
- case 0x051c: return "_wgetdcwd_nolock";
- case 0x051d: return "_wgetenv";
- case 0x051e: return "_wgetenv_s";
- case 0x051f: return "_wmakepath";
- case 0x0520: return "_wmakepath_s";
- case 0x0521: return "_wmkdir";
- case 0x0522: return "_wmktemp";
- case 0x0523: return "_wmktemp_s";
- case 0x0524: return "_wopen";
- case 0x0525: return "_wperror";
- case 0x0526: return "_wpgmptr";
- case 0x0527: return "_wpopen";
- case 0x0528: return "_wprintf_l";
- case 0x0529: return "_wprintf_p";
- case 0x052a: return "_wprintf_p_l";
- case 0x052b: return "_wprintf_s_l";
- case 0x052c: return "_wputenv";
- case 0x052d: return "_wputenv_s";
- case 0x052e: return "_wremove";
- case 0x052f: return "_wrename";
- case 0x0530: return "_write";
- case 0x0531: return "_wrmdir";
- case 0x0532: return "_wscanf_l";
- case 0x0533: return "_wscanf_s_l";
- case 0x0534: return "_wsearchenv";
- case 0x0535: return "_wsearchenv_s";
- case 0x0536: return "_wsetlocale";
- case 0x0537: return "_wsopen";
- case 0x0538: return "_wsopen_s";
- case 0x0539: return "_wspawnl";
- case 0x053a: return "_wspawnle";
- case 0x053b: return "_wspawnlp";
- case 0x053c: return "_wspawnlpe";
- case 0x053d: return "_wspawnv";
- case 0x053e: return "_wspawnve";
- case 0x053f: return "_wspawnvp";
- case 0x0540: return "_wspawnvpe";
- case 0x0541: return "_wsplitpath";
- case 0x0542: return "_wsplitpath_s";
- case 0x0543: return "_wstat32";
- case 0x0544: return "_wstat32i64";
- case 0x0545: return "_wstat64";
- case 0x0546: return "_wstat64i32";
- case 0x0547: return "_wstrdate";
- case 0x0548: return "_wstrdate_s";
- case 0x0549: return "_wstrtime";
- case 0x054a: return "_wstrtime_s";
- case 0x054b: return "_wsystem";
- case 0x054c: return "_wtempnam";
- case 0x054d: return "_wtmpnam";
- case 0x054e: return "_wtmpnam_s";
- case 0x054f: return "_wtof";
- case 0x0550: return "_wtof_l";
- case 0x0551: return "_wtoi";
- case 0x0552: return "_wtoi64";
- case 0x0553: return "_wtoi64_l";
- case 0x0554: return "_wtoi_l";
- case 0x0555: return "_wtol";
- case 0x0556: return "_wtol_l";
- case 0x0557: return "_wunlink";
- case 0x0558: return "_wutime32";
- case 0x0559: return "_wutime64";
- case 0x055a: return "_y0";
- case 0x055b: return "_y1";
- case 0x055c: return "_yn";
- case 0x055d: return "abort";
- case 0x055e: return "abs";
- case 0x055f: return "acos";
- case 0x0560: return "asctime";
- case 0x0561: return "asctime_s";
- case 0x0562: return "asin";
- case 0x0563: return "atan";
- case 0x0564: return "atan2";
- case 0x0565: return "atexit";
- case 0x0566: return "atof";
- case 0x0567: return "atoi";
- case 0x0568: return "atol";
- case 0x0569: return "bsearch";
- case 0x056a: return "bsearch_s";
- case 0x056b: return "btowc";
- case 0x056c: return "calloc";
- case 0x056d: return "ceil";
- case 0x056e: return "clearerr";
- case 0x056f: return "clearerr_s";
- case 0x0570: return "clock";
- case 0x0571: return "cos";
- case 0x0572: return "cosh";
- case 0x0573: return "div";
- case 0x0574: return "exit";
- case 0x0575: return "exp";
- case 0x0576: return "fabs";
- case 0x0577: return "fclose";
- case 0x0578: return "feof";
- case 0x0579: return "ferror";
- case 0x057a: return "fflush";
- case 0x057b: return "fgetc";
- case 0x057c: return "fgetpos";
- case 0x057d: return "fgets";
- case 0x057e: return "fgetwc";
- case 0x057f: return "fgetws";
- case 0x0580: return "floor";
- case 0x0581: return "fmod";
- case 0x0582: return "fopen";
- case 0x0583: return "fopen_s";
- case 0x0584: return "fprintf";
- case 0x0585: return "fprintf_s";
- case 0x0586: return "fputc";
- case 0x0587: return "fputs";
- case 0x0588: return "fputwc";
- case 0x0589: return "fputws";
- case 0x058a: return "fread";
- case 0x058b: return "fread_s";
- case 0x058c: return "free";
- case 0x058d: return "freopen";
- case 0x058e: return "freopen_s";
- case 0x058f: return "frexp";
- case 0x0590: return "fscanf";
- case 0x0591: return "fscanf_s";
- case 0x0592: return "fseek";
- case 0x0593: return "fsetpos";
- case 0x0594: return "ftell";
- case 0x0595: return "fwprintf";
- case 0x0596: return "fwprintf_s";
- case 0x0597: return "fwrite";
- case 0x0598: return "fwscanf";
- case 0x0599: return "fwscanf_s";
- case 0x059a: return "getc";
- case 0x059b: return "getchar";
- case 0x059c: return "getenv";
- case 0x059d: return "getenv_s";
- case 0x059e: return "gets";
- case 0x059f: return "gets_s";
- case 0x05a0: return "getwc";
- case 0x05a1: return "getwchar";
- case 0x05a2: return "is_wctype";
- case 0x05a3: return "isalnum";
- case 0x05a4: return "isalpha";
- case 0x05a5: return "iscntrl";
- case 0x05a6: return "isdigit";
- case 0x05a7: return "isgraph";
- case 0x05a8: return "isleadbyte";
- case 0x05a9: return "islower";
- case 0x05aa: return "isprint";
- case 0x05ab: return "ispunct";
- case 0x05ac: return "isspace";
- case 0x05ad: return "isupper";
- case 0x05ae: return "iswalnum";
- case 0x05af: return "iswalpha";
- case 0x05b0: return "iswascii";
- case 0x05b1: return "iswcntrl";
- case 0x05b2: return "iswctype";
- case 0x05b3: return "iswdigit";
- case 0x05b4: return "iswgraph";
- case 0x05b5: return "iswlower";
- case 0x05b6: return "iswprint";
- case 0x05b7: return "iswpunct";
- case 0x05b8: return "iswspace";
- case 0x05b9: return "iswupper";
- case 0x05ba: return "iswxdigit";
- case 0x05bb: return "isxdigit";
- case 0x05bc: return "labs";
- case 0x05bd: return "ldexp";
- case 0x05be: return "ldiv";
- case 0x05bf: return "llabs";
- case 0x05c0: return "lldiv";
- case 0x05c1: return "localeconv";
- case 0x05c2: return "log";
- case 0x05c3: return "log10";
- case 0x05c4: return "longjmp";
- case 0x05c5: return "malloc";
- case 0x05c6: return "mblen";
- case 0x05c7: return "mbrlen";
- case 0x05c8: return "mbrtowc";
- case 0x05c9: return "mbsrtowcs";
- case 0x05ca: return "mbsrtowcs_s";
- case 0x05cb: return "mbstowcs";
- case 0x05cc: return "mbstowcs_s";
- case 0x05cd: return "mbtowc";
- case 0x05ce: return "memchr";
- case 0x05cf: return "memcmp";
- case 0x05d0: return "memcpy";
- case 0x05d1: return "memcpy_s";
- case 0x05d2: return "memmove";
- case 0x05d3: return "memmove_s";
- case 0x05d4: return "memset";
- case 0x05d5: return "modf";
- case 0x05d6: return "perror";
- case 0x05d7: return "pow";
- case 0x05d8: return "printf";
- case 0x05d9: return "printf_s";
- case 0x05da: return "putc";
- case 0x05db: return "putchar";
- case 0x05dc: return "puts";
- case 0x05dd: return "putwc";
- case 0x05de: return "putwchar";
- case 0x05df: return "qsort";
- case 0x05e0: return "qsort_s";
- case 0x05e1: return "raise";
- case 0x05e2: return "rand";
- case 0x05e3: return "rand_s";
- case 0x05e4: return "realloc";
- case 0x05e5: return "remove";
- case 0x05e6: return "rename";
- case 0x05e7: return "rewind";
- case 0x05e8: return "scanf";
- case 0x05e9: return "scanf_s";
- case 0x05ea: return "setbuf";
- case 0x05eb: return "setlocale";
- case 0x05ec: return "setvbuf";
- case 0x05ed: return "signal";
- case 0x05ee: return "sin";
- case 0x05ef: return "sinh";
- case 0x05f0: return "sprintf";
- case 0x05f1: return "sprintf_s";
- case 0x05f2: return "sqrt";
- case 0x05f3: return "srand";
- case 0x05f4: return "sscanf";
- case 0x05f5: return "sscanf_s";
- case 0x05f6: return "strcat";
- case 0x05f7: return "strcat_s";
- case 0x05f8: return "strchr";
- case 0x05f9: return "strcmp";
- case 0x05fa: return "strcoll";
- case 0x05fb: return "strcpy";
- case 0x05fc: return "strcpy_s";
- case 0x05fd: return "strcspn";
- case 0x05fe: return "strerror";
- case 0x05ff: return "strerror_s";
- case 0x0600: return "strftime";
- case 0x0601: return "strlen";
- case 0x0602: return "strncat";
- case 0x0603: return "strncat_s";
- case 0x0604: return "strncmp";
- case 0x0605: return "strncpy";
- case 0x0606: return "strncpy_s";
- case 0x0607: return "strnlen";
- case 0x0608: return "strpbrk";
- case 0x0609: return "strrchr";
- case 0x060a: return "strspn";
- case 0x060b: return "strstr";
- case 0x060c: return "strtod";
- case 0x060d: return "strtok";
- case 0x060e: return "strtok_s";
- case 0x060f: return "strtol";
- case 0x0610: return "strtoul";
- case 0x0611: return "strxfrm";
- case 0x0612: return "swprintf_s";
- case 0x0613: return "swscanf";
- case 0x0614: return "swscanf_s";
- case 0x0615: return "system";
- case 0x0616: return "tan";
- case 0x0617: return "tanh";
- case 0x0618: return "tmpfile";
- case 0x0619: return "tmpfile_s";
- case 0x061a: return "tmpnam";
- case 0x061b: return "tmpnam_s";
- case 0x061c: return "tolower";
- case 0x061d: return "toupper";
- case 0x061e: return "towlower";
- case 0x061f: return "towupper";
- case 0x0620: return "ungetc";
- case 0x0621: return "ungetwc";
- case 0x0622: return "vfprintf";
- case 0x0623: return "vfprintf_s";
- case 0x0624: return "vfwprintf";
- case 0x0625: return "vfwprintf_s";
- case 0x0626: return "vprintf";
- case 0x0627: return "vprintf_s";
- case 0x0628: return "vsprintf";
- case 0x0629: return "vsprintf_s";
- case 0x062a: return "vswprintf_s";
- case 0x062b: return "vwprintf";
- case 0x062c: return "vwprintf_s";
- case 0x062d: return "wcrtomb";
- case 0x062e: return "wcrtomb_s";
- case 0x062f: return "wcscat";
- case 0x0630: return "wcscat_s";
- case 0x0631: return "wcschr";
- case 0x0632: return "wcscmp";
- case 0x0633: return "wcscoll";
- case 0x0634: return "wcscpy";
- case 0x0635: return "wcscpy_s";
- case 0x0636: return "wcscspn";
- case 0x0637: return "wcsftime";
- case 0x0638: return "wcslen";
- case 0x0639: return "wcsncat";
- case 0x063a: return "wcsncat_s";
- case 0x063b: return "wcsncmp";
- case 0x063c: return "wcsncpy";
- case 0x063d: return "wcsncpy_s";
- case 0x063e: return "wcsnlen";
- case 0x063f: return "wcspbrk";
- case 0x0640: return "wcsrchr";
- case 0x0641: return "wcsrtombs";
- case 0x0642: return "wcsrtombs_s";
- case 0x0643: return "wcsspn";
- case 0x0644: return "wcsstr";
- case 0x0645: return "wcstod";
- case 0x0646: return "wcstok";
- case 0x0647: return "wcstok_s";
- case 0x0648: return "wcstol";
- case 0x0649: return "wcstombs";
- case 0x064a: return "wcstombs_s";
- case 0x064b: return "wcstoul";
- case 0x064c: return "wcsxfrm";
- case 0x064d: return "wctob";
- case 0x064e: return "wctomb";
- case 0x064f: return "wctomb_s";
- case 0x0650: return "wmemcpy_s";
- case 0x0651: return "wmemmove_s";
- case 0x0652: return "wprintf";
- case 0x0653: return "wprintf_s";
- case 0x0654: return "wscanf";
- case 0x0655: return "wscanf_s";
+ switch (i) {
+ case 0x010f: return "$I10_OUTPUT";
+ case 0x0001: return "??0?$_SpinWait@$00@details@Concurrency@@QAE@P6AXXZ@Z";
+ case 0x0002: return "??0?$_SpinWait@$0A@@details@Concurrency@@QAE@P6AXXZ@Z";
+ case 0x0003: return "??0SchedulerPolicy@Concurrency@@QAA@IZZ";
+ case 0x0004: return "??0SchedulerPolicy@Concurrency@@QAE@ABV01@@Z";
+ case 0x0005: return "??0SchedulerPolicy@Concurrency@@QAE@XZ";
+ case 0x0006: return "??0_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ";
+ case 0x0007: return "??0_NonReentrantPPLLock@details@Concurrency@@QAE@XZ";
+ case 0x0008: return "??0_ReaderWriterLock@details@Concurrency@@QAE@XZ";
+ case 0x0009: return "??0_ReentrantBlockingLock@details@Concurrency@@QAE@XZ";
+ case 0x000a: return "??0_ReentrantLock@details@Concurrency@@QAE@XZ";
+ case 0x000b: return "??0_ReentrantPPLLock@details@Concurrency@@QAE@XZ";
+ case 0x000c:
+ return "??0_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@"
+ "AAV123@@Z";
+ case 0x000d:
+ return "??0_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@AAV123@@"
+ "Z";
+ case 0x000e: return "??0_SpinLock@details@Concurrency@@QAE@ACJ@Z";
+ case 0x000f: return "??0_TaskCollection@details@Concurrency@@QAE@XZ";
+ case 0x0010: return "??0_Timer@details@Concurrency@@IAE@I_N@Z";
+ case 0x0011: return "??0__non_rtti_object@std@@QAE@ABV01@@Z";
+ case 0x0012: return "??0__non_rtti_object@std@@QAE@PBD@Z";
+ case 0x0013: return "??0bad_cast@std@@AAE@PBQBD@Z";
+ case 0x0014: return "??0bad_cast@std@@QAE@ABV01@@Z";
+ case 0x0015: return "??0bad_cast@std@@QAE@PBD@Z";
+ case 0x0016: return "??0bad_target@Concurrency@@QAE@PBD@Z";
+ case 0x0017: return "??0bad_target@Concurrency@@QAE@XZ";
+ case 0x0018: return "??0bad_typeid@std@@QAE@ABV01@@Z";
+ case 0x0019: return "??0bad_typeid@std@@QAE@PBD@Z";
+ case 0x001a: return "??0context_self_unblock@Concurrency@@QAE@PBD@Z";
+ case 0x001b: return "??0context_self_unblock@Concurrency@@QAE@XZ";
+ case 0x001c: return "??0context_unblock_unbalanced@Concurrency@@QAE@PBD@Z";
+ case 0x001d: return "??0context_unblock_unbalanced@Concurrency@@QAE@XZ";
+ case 0x001e: return "??0critical_section@Concurrency@@QAE@XZ";
+ case 0x001f: return "??0default_scheduler_exists@Concurrency@@QAE@PBD@Z";
+ case 0x0020: return "??0default_scheduler_exists@Concurrency@@QAE@XZ";
+ case 0x0021: return "??0event@Concurrency@@QAE@XZ";
+ case 0x0022: return "??0exception@std@@QAE@ABQBD@Z";
+ case 0x0023: return "??0exception@std@@QAE@ABQBDH@Z";
+ case 0x0024: return "??0exception@std@@QAE@ABV01@@Z";
+ case 0x0025: return "??0exception@std@@QAE@XZ";
+ case 0x0026: return "??0improper_lock@Concurrency@@QAE@PBD@Z";
+ case 0x0027: return "??0improper_lock@Concurrency@@QAE@XZ";
+ case 0x0028: return "??0improper_scheduler_attach@Concurrency@@QAE@PBD@Z";
+ case 0x0029: return "??0improper_scheduler_attach@Concurrency@@QAE@XZ";
+ case 0x002a: return "??0improper_scheduler_detach@Concurrency@@QAE@PBD@Z";
+ case 0x002b: return "??0improper_scheduler_detach@Concurrency@@QAE@XZ";
+ case 0x002c: return "??0improper_scheduler_reference@Concurrency@@QAE@PBD@Z";
+ case 0x002d: return "??0improper_scheduler_reference@Concurrency@@QAE@XZ";
+ case 0x002e: return "??0invalid_link_target@Concurrency@@QAE@PBD@Z";
+ case 0x002f: return "??0invalid_link_target@Concurrency@@QAE@XZ";
+ case 0x0030: return "??0invalid_multiple_scheduling@Concurrency@@QAE@PBD@Z";
+ case 0x0031: return "??0invalid_multiple_scheduling@Concurrency@@QAE@XZ";
+ case 0x0032: return "??0invalid_operation@Concurrency@@QAE@PBD@Z";
+ case 0x0033: return "??0invalid_operation@Concurrency@@QAE@XZ";
+ case 0x0034:
+ return "??0invalid_oversubscribe_operation@Concurrency@@QAE@PBD@Z";
+ case 0x0035: return "??0invalid_oversubscribe_operation@Concurrency@@QAE@XZ";
+ case 0x0036: return "??0invalid_scheduler_policy_key@Concurrency@@QAE@PBD@Z";
+ case 0x0037: return "??0invalid_scheduler_policy_key@Concurrency@@QAE@XZ";
+ case 0x0038:
+ return "??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@"
+ "PBD@Z";
+ case 0x0039:
+ return "??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@"
+ "XZ";
+ case 0x003a: return "??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z";
+ case 0x003b: return "??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ";
+ case 0x003c: return "??0message_not_found@Concurrency@@QAE@PBD@Z";
+ case 0x003d: return "??0message_not_found@Concurrency@@QAE@XZ";
+ case 0x003e: return "??0missing_wait@Concurrency@@QAE@PBD@Z";
+ case 0x003f: return "??0missing_wait@Concurrency@@QAE@XZ";
+ case 0x0040:
+ return "??0nested_scheduler_missing_detach@Concurrency@@QAE@PBD@Z";
+ case 0x0041: return "??0nested_scheduler_missing_detach@Concurrency@@QAE@XZ";
+ case 0x0042: return "??0operation_timed_out@Concurrency@@QAE@PBD@Z";
+ case 0x0043: return "??0operation_timed_out@Concurrency@@QAE@XZ";
+ case 0x0044: return "??0reader_writer_lock@Concurrency@@QAE@XZ";
+ case 0x0045: return "??0scheduler_not_attached@Concurrency@@QAE@PBD@Z";
+ case 0x0046: return "??0scheduler_not_attached@Concurrency@@QAE@XZ";
+ case 0x0047:
+ return "??0scheduler_resource_allocation_error@Concurrency@@QAE@J@Z";
+ case 0x0048:
+ return "??0scheduler_resource_allocation_error@Concurrency@@QAE@PBDJ@Z";
+ case 0x0049:
+ return "??0scoped_lock@critical_section@Concurrency@@QAE@AAV12@@Z";
+ case 0x004a:
+ return "??0scoped_lock@reader_writer_lock@Concurrency@@QAE@AAV12@@Z";
+ case 0x004b:
+ return "??0scoped_lock_read@reader_writer_lock@Concurrency@@QAE@AAV12@@Z";
+ case 0x004c: return "??0task_canceled@details@Concurrency@@QAE@PBD@Z";
+ case 0x004d: return "??0task_canceled@details@Concurrency@@QAE@XZ";
+ case 0x004e: return "??0unsupported_os@Concurrency@@QAE@PBD@Z";
+ case 0x004f: return "??0unsupported_os@Concurrency@@QAE@XZ";
+ case 0x0050: return "??1SchedulerPolicy@Concurrency@@QAE@XZ";
+ case 0x0051: return "??1_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ";
+ case 0x0052: return "??1_ReentrantBlockingLock@details@Concurrency@@QAE@XZ";
+ case 0x0053:
+ return "??1_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@XZ";
+ case 0x0054:
+ return "??1_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@XZ";
+ case 0x0055: return "??1_SpinLock@details@Concurrency@@QAE@XZ";
+ case 0x0056: return "??1_TaskCollection@details@Concurrency@@QAE@XZ";
+ case 0x0057: return "??1_Timer@details@Concurrency@@IAE@XZ";
+ case 0x0058: return "??1__non_rtti_object@std@@UAE@XZ";
+ case 0x0059: return "??1bad_cast@std@@UAE@XZ";
+ case 0x005a: return "??1bad_typeid@std@@UAE@XZ";
+ case 0x005b: return "??1critical_section@Concurrency@@QAE@XZ";
+ case 0x005c: return "??1event@Concurrency@@QAE@XZ";
+ case 0x005d: return "??1exception@std@@UAE@XZ";
+ case 0x005e: return "??1reader_writer_lock@Concurrency@@QAE@XZ";
+ case 0x005f: return "??1scoped_lock@critical_section@Concurrency@@QAE@XZ";
+ case 0x0060: return "??1scoped_lock@reader_writer_lock@Concurrency@@QAE@XZ";
+ case 0x0061:
+ return "??1scoped_lock_read@reader_writer_lock@Concurrency@@QAE@XZ";
+ case 0x0062: return "??1type_info@@UAE@XZ";
+ case 0x0063: return "??2@YAPAXI@Z";
+ case 0x0064: return "??2@YAPAXIHPBDH@Z";
+ case 0x0065: return "??3@YAXPAX@Z";
+ case 0x0066:
+ return "??4?$_SpinWait@$00@details@Concurrency@@QAEAAV012@ABV012@@Z";
+ case 0x0067:
+ return "??4?$_SpinWait@$0A@@details@Concurrency@@QAEAAV012@ABV012@@Z";
+ case 0x0068: return "??4SchedulerPolicy@Concurrency@@QAEAAV01@ABV01@@Z";
+ case 0x0069: return "??4__non_rtti_object@std@@QAEAAV01@ABV01@@Z";
+ case 0x006a: return "??4bad_cast@std@@QAEAAV01@ABV01@@Z";
+ case 0x006b: return "??4bad_typeid@std@@QAEAAV01@ABV01@@Z";
+ case 0x006c: return "??4exception@std@@QAEAAV01@ABV01@@Z";
+ case 0x006d: return "??8type_info@@QBE_NABV0@@Z";
+ case 0x006e: return "??9type_info@@QBE_NABV0@@Z";
+ case 0x006f: return "??_7__non_rtti_object@std@@6B@";
+ case 0x0070: return "??_7bad_cast@std@@6B@";
+ case 0x0071: return "??_7bad_typeid@std@@6B@";
+ case 0x0072: return "??_7exception@@6B@";
+ case 0x0073: return "??_7exception@std@@6B@";
+ case 0x0074: return "??_F?$_SpinWait@$00@details@Concurrency@@QAEXXZ";
+ case 0x0075: return "??_F?$_SpinWait@$0A@@details@Concurrency@@QAEXXZ";
+ case 0x0076: return "??_Fbad_cast@std@@QAEXXZ";
+ case 0x0077: return "??_Fbad_typeid@std@@QAEXXZ";
+ case 0x0078: return "??_U@YAPAXI@Z";
+ case 0x0079: return "??_U@YAPAXIHPBDH@Z";
+ case 0x007a: return "??_V@YAXPAX@Z";
+ case 0x007b: return "?Alloc@Concurrency@@YAPAXI@Z";
+ case 0x007c: return "?Block@Context@Concurrency@@SAXXZ";
+ case 0x007d:
+ return "?Create@CurrentScheduler@Concurrency@@SAXABVSchedulerPolicy@2@@Z";
+ case 0x007e:
+ return "?Create@Scheduler@Concurrency@@SAPAV12@ABVSchedulerPolicy@2@@Z";
+ case 0x007f:
+ return "?CreateResourceManager@Concurrency@@YAPAUIResourceManager@1@XZ";
+ case 0x0080:
+ return "?CreateScheduleGroup@CurrentScheduler@Concurrency@@"
+ "SAPAVScheduleGroup@2@XZ";
+ case 0x0081: return "?CurrentContext@Context@Concurrency@@SAPAV12@XZ";
+ case 0x0082: return "?Detach@CurrentScheduler@Concurrency@@SAXXZ";
+ case 0x0083: return "?DisableTracing@Concurrency@@YAJXZ";
+ case 0x0084: return "?EnableTracing@Concurrency@@YAJXZ";
+ case 0x0085: return "?Free@Concurrency@@YAXPAX@Z";
+ case 0x0086: return "?Get@CurrentScheduler@Concurrency@@SAPAVScheduler@2@XZ";
+ case 0x0087: return "?GetExecutionContextId@Concurrency@@YAIXZ";
+ case 0x0088:
+ return "?GetNumberOfVirtualProcessors@CurrentScheduler@Concurrency@@SAIXZ";
+ case 0x0089:
+ return "?GetOSVersion@Concurrency@@YA?AW4OSVersion@IResourceManager@1@XZ";
+ case 0x008a:
+ return "?GetPolicy@CurrentScheduler@Concurrency@@SA?AVSchedulerPolicy@2@XZ";
+ case 0x008b:
+ return "?GetPolicyValue@SchedulerPolicy@Concurrency@@QBEIW4PolicyElementKey@"
+ "2@@Z";
+ case 0x008c: return "?GetProcessorCount@Concurrency@@YAIXZ";
+ case 0x008d: return "?GetProcessorNodeCount@Concurrency@@YAIXZ";
+ case 0x008e: return "?GetSchedulerId@Concurrency@@YAIXZ";
+ case 0x008f: return "?GetSharedTimerQueue@details@Concurrency@@YAPAXXZ";
+ case 0x0090: return "?Id@Context@Concurrency@@SAIXZ";
+ case 0x0091: return "?Id@CurrentScheduler@Concurrency@@SAIXZ";
+ case 0x0092:
+ return "?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ";
+ case 0x0093: return "?Log2@details@Concurrency@@YAKI@Z";
+ case 0x0094: return "?Oversubscribe@Context@Concurrency@@SAX_N@Z";
+ case 0x0095:
+ return "?RegisterShutdownEvent@CurrentScheduler@Concurrency@@SAXPAX@Z";
+ case 0x0096:
+ return "?ResetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXXZ";
+ case 0x0097: return "?ScheduleGroupId@Context@Concurrency@@SAIXZ";
+ case 0x0098:
+ return "?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0@Z";
+ case 0x0099:
+ return "?SetConcurrencyLimits@SchedulerPolicy@Concurrency@@QAEXII@Z";
+ case 0x009a:
+ return "?SetDefaultSchedulerPolicy@Scheduler@Concurrency@@"
+ "SAXABVSchedulerPolicy@2@@Z";
+ case 0x009b:
+ return "?SetPolicyValue@SchedulerPolicy@Concurrency@@QAEIW4PolicyElementKey@"
+ "2@I@Z";
+ case 0x009c: return "?VirtualProcessorId@Context@Concurrency@@SAIXZ";
+ case 0x009d: return "?Yield@Context@Concurrency@@SAXXZ";
+ case 0x009e:
+ return "?_Abort@_StructuredTaskCollection@details@Concurrency@@AAEXXZ";
+ case 0x009f:
+ return "?_Acquire@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ";
+ case 0x00a0:
+ return "?_Acquire@_NonReentrantPPLLock@details@Concurrency@@QAEXPAX@Z";
+ case 0x00a1:
+ return "?_Acquire@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ";
+ case 0x00a2: return "?_Acquire@_ReentrantLock@details@Concurrency@@QAEXXZ";
+ case 0x00a3:
+ return "?_Acquire@_ReentrantPPLLock@details@Concurrency@@QAEXPAX@Z";
+ case 0x00a4:
+ return "?_AcquireRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
+ case 0x00a5:
+ return "?_AcquireWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
+ case 0x00a6:
+ return "?_Cancel@_StructuredTaskCollection@details@Concurrency@@QAEXXZ";
+ case 0x00a7: return "?_Cancel@_TaskCollection@details@Concurrency@@QAEXXZ";
+ case 0x00a8:
+ return "?_CheckTaskCollection@_UnrealizedChore@details@Concurrency@@IAEXXZ";
+ case 0x00a9: return "?_ConcRT_Assert@details@Concurrency@@YAXPBD0H@Z";
+ case 0x00aa: return "?_ConcRT_CoreAssert@details@Concurrency@@YAXPBD0H@Z";
+ case 0x00ab: return "?_ConcRT_DumpMessage@details@Concurrency@@YAXPB_WZZ";
+ case 0x00ac: return "?_ConcRT_Trace@details@Concurrency@@YAXHPB_WZZ";
+ case 0x00ad: return "?_Copy_str@exception@std@@AAEXPBD@Z";
+ case 0x00ae: return "?_DoYield@?$_SpinWait@$00@details@Concurrency@@IAEXXZ";
+ case 0x00af: return "?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ";
+ case 0x00b0:
+ return "?_IsCanceling@_StructuredTaskCollection@details@Concurrency@@QAE_"
+ "NXZ";
+ case 0x00b1:
+ return "?_IsCanceling@_TaskCollection@details@Concurrency@@QAE_NXZ";
+ case 0x00b2: return "?_Name_base@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z";
+ case 0x00b3:
+ return "?_Name_base_internal@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z";
+ case 0x00b4:
+ return "?_NumberOfSpins@?$_SpinWait@$00@details@Concurrency@@IAEKXZ";
+ case 0x00b5:
+ return "?_NumberOfSpins@?$_SpinWait@$0A@@details@Concurrency@@IAEKXZ";
+ case 0x00b6:
+ return "?_Release@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ";
+ case 0x00b7:
+ return "?_Release@_NonReentrantPPLLock@details@Concurrency@@QAEXXZ";
+ case 0x00b8:
+ return "?_Release@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ";
+ case 0x00b9: return "?_Release@_ReentrantLock@details@Concurrency@@QAEXXZ";
+ case 0x00ba: return "?_Release@_ReentrantPPLLock@details@Concurrency@@QAEXXZ";
+ case 0x00bb:
+ return "?_ReleaseRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
+ case 0x00bc:
+ return "?_ReleaseWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
+ case 0x00bd: return "?_Reset@?$_SpinWait@$00@details@Concurrency@@IAEXXZ";
+ case 0x00be: return "?_Reset@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ";
+ case 0x00bf:
+ return "?_RunAndWait@_StructuredTaskCollection@details@Concurrency@@QAG?AW4_"
+ "TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z";
+ case 0x00c0:
+ return "?_RunAndWait@_TaskCollection@details@Concurrency@@QAG?AW4_"
+ "TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z";
+ case 0x00c1:
+ return "?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_"
+ "UnrealizedChore@23@@Z";
+ case 0x00c2:
+ return "?_Schedule@_TaskCollection@details@Concurrency@@QAEXPAV_"
+ "UnrealizedChore@23@@Z";
+ case 0x00c3:
+ return "?_SetSpinCount@?$_SpinWait@$00@details@Concurrency@@QAEXI@Z";
+ case 0x00c4:
+ return "?_SetSpinCount@?$_SpinWait@$0A@@details@Concurrency@@QAEXI@Z";
+ case 0x00c5:
+ return "?_ShouldSpinAgain@?$_SpinWait@$00@details@Concurrency@@IAE_NXZ";
+ case 0x00c6:
+ return "?_ShouldSpinAgain@?$_SpinWait@$0A@@details@Concurrency@@IAE_NXZ";
+ case 0x00c7: return "?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QAE_NXZ";
+ case 0x00c8: return "?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAE_NXZ";
+ case 0x00c9: return "?_SpinYield@Context@Concurrency@@SAXXZ";
+ case 0x00ca: return "?_Start@_Timer@details@Concurrency@@IAEXXZ";
+ case 0x00cb: return "?_Stop@_Timer@details@Concurrency@@IAEXXZ";
+ case 0x00cc: return "?_Tidy@exception@std@@AAEXXZ";
+ case 0x00cd:
+ return "?_Trace_ppl_function@Concurrency@@YAXABU_GUID@@EW4ConcRT_EventType@"
+ "1@@Z";
+ case 0x00ce:
+ return "?_TryAcquire@_NonReentrantBlockingLock@details@Concurrency@@QAE_NXZ";
+ case 0x00cf:
+ return "?_TryAcquire@_ReentrantBlockingLock@details@Concurrency@@QAE_NXZ";
+ case 0x00d0: return "?_TryAcquire@_ReentrantLock@details@Concurrency@@QAE_NXZ";
+ case 0x00d1:
+ return "?_TryAcquireWrite@_ReaderWriterLock@details@Concurrency@@QAE_NXZ";
+ case 0x00d2: return "?_Type_info_dtor@type_info@@CAXPAV1@@Z";
+ case 0x00d3: return "?_Type_info_dtor_internal@type_info@@CAXPAV1@@Z";
+ case 0x00d4: return "?_UnderlyingYield@details@Concurrency@@YAXXZ";
+ case 0x00d5: return "?_ValidateExecute@@YAHP6GHXZ@Z";
+ case 0x00d6: return "?_ValidateRead@@YAHPBXI@Z";
+ case 0x00d7: return "?_ValidateWrite@@YAHPAXI@Z";
+ case 0x00d8: return "?_Value@_SpinCount@details@Concurrency@@SAIXZ";
+ case 0x00d9: return "?__ExceptionPtrAssign@@YAXPAXPBX@Z";
+ case 0x00da: return "?__ExceptionPtrCompare@@YA_NPBX0@Z";
+ case 0x00db: return "?__ExceptionPtrCopy@@YAXPAXPBX@Z";
+ case 0x00dc: return "?__ExceptionPtrCopyException@@YAXPAXPBX1@Z";
+ case 0x00dd: return "?__ExceptionPtrCreate@@YAXPAX@Z";
+ case 0x00de: return "?__ExceptionPtrCurrentException@@YAXPAX@Z";
+ case 0x00df: return "?__ExceptionPtrDestroy@@YAXPAX@Z";
+ case 0x00e0: return "?__ExceptionPtrRethrow@@YAXPBX@Z";
+ case 0x00e2: return "?_inconsistency@@YAXXZ";
+ case 0x00e3: return "?_invalid_parameter@@YAXPBG00II@Z";
+ case 0x00e4:
+ return "?_is_exception_typeof@@YAHABVtype_info@@PAU_EXCEPTION_POINTERS@@@Z";
+ case 0x00e5:
+ return "?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z";
+ case 0x00e6: return "?_open@@YAHPBDHH@Z";
+ case 0x00e7: return "?_query_new_handler@@YAP6AHI@ZXZ";
+ case 0x00e8: return "?_query_new_mode@@YAHXZ";
+ case 0x00e9: return "?_set_new_handler@@YAP6AHI@ZH@Z";
+ case 0x00ea: return "?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z";
+ case 0x00eb: return "?_set_new_mode@@YAHH@Z";
+ case 0x00ec:
+ return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZH@Z";
+ case 0x00ed:
+ return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z";
+ case 0x00ee: return "?_sopen@@YAHPBDHHH@Z";
+ case 0x00ef: return "?_type_info_dtor_internal_method@type_info@@QAEXXZ";
+ case 0x00f0: return "?_wopen@@YAHPB_WHH@Z";
+ case 0x00f1: return "?_wsopen@@YAHPB_WHHH@Z";
+ case 0x00f2: return "?before@type_info@@QBEHABV1@@Z";
+ case 0x00f3:
+ return "?get_error_code@scheduler_resource_allocation_error@Concurrency@@"
+ "QBEJXZ";
+ case 0x00f4: return "?lock@critical_section@Concurrency@@QAEXXZ";
+ case 0x00f5: return "?lock@reader_writer_lock@Concurrency@@QAEXXZ";
+ case 0x00f6: return "?lock_read@reader_writer_lock@Concurrency@@QAEXXZ";
+ case 0x00f7: return "?name@type_info@@QBEPBDPAU__type_info_node@@@Z";
+ case 0x00f8: return "?native_handle@critical_section@Concurrency@@QAEAAV12@XZ";
+ case 0x00f9: return "?raw_name@type_info@@QBEPBDXZ";
+ case 0x00fa: return "?reset@event@Concurrency@@QAEXXZ";
+ case 0x00fb: return "?set@event@Concurrency@@QAEXXZ";
+ case 0x00fc: return "?set_new_handler@@YAP6AXXZP6AXXZ@Z";
+ case 0x00fd: return "?set_terminate@@YAP6AXXZH@Z";
+ case 0x00fe: return "?set_terminate@@YAP6AXXZP6AXXZ@Z";
+ case 0x00ff: return "?set_unexpected@@YAP6AXXZH@Z";
+ case 0x0100: return "?set_unexpected@@YAP6AXXZP6AXXZ@Z";
+ case 0x0101: return "?swprintf@@YAHPAGIPBGZZ";
+ case 0x0102: return "?swprintf@@YAHPA_WIPB_WZZ";
+ case 0x0103: return "?terminate@@YAXXZ";
+ case 0x0104: return "?try_lock@critical_section@Concurrency@@QAE_NXZ";
+ case 0x0105: return "?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ";
+ case 0x0106: return "?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ";
+ case 0x0107: return "?unexpected@@YAXXZ";
+ case 0x0108: return "?unlock@critical_section@Concurrency@@QAEXXZ";
+ case 0x0109: return "?unlock@reader_writer_lock@Concurrency@@QAEXXZ";
+ case 0x010a: return "?vswprintf@@YAHPA_WIPB_WPAD@Z";
+ case 0x010b: return "?wait@Concurrency@@YAXI@Z";
+ case 0x010c: return "?wait@event@Concurrency@@QAEII@Z";
+ case 0x010d: return "?wait_for_multiple@event@Concurrency@@SAIPAPAV12@I_NI@Z";
+ case 0x010e: return "?what@exception@std@@UBEPBDXZ";
+ case 0x0110: return "_CIacos";
+ case 0x0111: return "_CIasin";
+ case 0x0112: return "_CIatan";
+ case 0x0113: return "_CIatan2";
+ case 0x0114: return "_CIcos";
+ case 0x0115: return "_CIcosh";
+ case 0x0116: return "_CIexp";
+ case 0x0117: return "_CIfmod";
+ case 0x0118: return "_CIlog";
+ case 0x0119: return "_CIlog10";
+ case 0x011a: return "_CIpow";
+ case 0x011b: return "_CIsin";
+ case 0x011c: return "_CIsinh";
+ case 0x011d: return "_CIsqrt";
+ case 0x011e: return "_CItan";
+ case 0x011f: return "_CItanh";
+ case 0x0120: return "_CRT_RTC_INIT";
+ case 0x0121: return "_CRT_RTC_INITW";
+ case 0x0122: return "_CreateFrameInfo";
+ case 0x0123: return "_CxxThrowException";
+ case 0x0124: return "_EH_prolog";
+ case 0x0125: return "_FindAndUnlinkFrame";
+ case 0x0126: return "_Getdays";
+ case 0x0127: return "_Getmonths";
+ case 0x0128: return "_Gettnames";
+ case 0x0129: return "_HUGE";
+ case 0x012a: return "_IsExceptionObjectToBeDestroyed";
+ case 0x012b: return "_NLG_Dispatch2";
+ case 0x012c: return "_NLG_Return";
+ case 0x012d: return "_NLG_Return2";
+ case 0x012e: return "_Strftime";
+ case 0x012f: return "_XcptFilter";
+ case 0x0130: return "__AdjustPointer";
+ case 0x0131: return "__BuildCatchObject";
+ case 0x0132: return "__BuildCatchObjectHelper";
+ case 0x0133: return "__CppXcptFilter";
+ case 0x0134: return "__CxxCallUnwindDelDtor";
+ case 0x0135: return "__CxxCallUnwindDtor";
+ case 0x0136: return "__CxxCallUnwindStdDelDtor";
+ case 0x0137: return "__CxxCallUnwindVecDtor";
+ case 0x0138: return "__CxxDetectRethrow";
+ case 0x0139: return "__CxxExceptionFilter";
+ case 0x013a: return "__CxxFrameHandler";
+ case 0x013b: return "__CxxFrameHandler2";
+ case 0x013c: return "__CxxFrameHandler3";
+ case 0x013d: return "__CxxLongjmpUnwind";
+ case 0x013e: return "__CxxQueryExceptionSize";
+ case 0x013f: return "__CxxRegisterExceptionObject";
+ case 0x0140: return "__CxxUnregisterExceptionObject";
+ case 0x0141: return "__DestructExceptionObject";
+ case 0x0142: return "__FrameUnwindFilter";
+ case 0x0143: return "__RTCastToVoid";
+ case 0x0144: return "__RTDynamicCast";
+ case 0x0145: return "__RTtypeid";
+ case 0x0146: return "__STRINGTOLD";
+ case 0x0147: return "__STRINGTOLD_L";
+ case 0x0148: return "__TypeMatch";
+ case 0x015e: return "___fls_getvalue@4";
+ case 0x015f: return "___fls_setvalue@8";
+ case 0x0149: return "___lc_codepage_func";
+ case 0x014a: return "___lc_collate_cp_func";
+ case 0x014b: return "___lc_handle_func";
+ case 0x014c: return "___mb_cur_max_func";
+ case 0x014d: return "___mb_cur_max_l_func";
+ case 0x014e: return "___setlc_active_func";
+ case 0x014f: return "___unguarded_readlc_active_add_func";
+ case 0x0150: return "__argc";
+ case 0x0151: return "__argv";
+ case 0x0152: return "__badioinfo";
+ case 0x0153: return "__clean_type_info_names_internal";
+ case 0x0154: return "__control87_2";
+ case 0x0155: return "__create_locale";
+ case 0x0156: return "__crtCompareStringA";
+ case 0x0157: return "__crtCompareStringW";
+ case 0x0158: return "__crtLCMapStringA";
+ case 0x0159: return "__crtLCMapStringW";
+ case 0x015a: return "__daylight";
+ case 0x015b: return "__dllonexit";
+ case 0x015c: return "__doserrno";
+ case 0x015d: return "__dstbias";
+ case 0x0160: return "__fpecode";
+ case 0x0161: return "__free_locale";
+ case 0x0162: return "__get_current_locale";
+ case 0x0163: return "__get_flsindex";
+ case 0x0164: return "__get_tlsindex";
+ case 0x0165: return "__getmainargs";
+ case 0x0166: return "__initenv";
+ case 0x0167: return "__iob_func";
+ case 0x0168: return "__isascii";
+ case 0x0169: return "__iscsym";
+ case 0x016a: return "__iscsymf";
+ case 0x016b: return "__iswcsym";
+ case 0x016c: return "__iswcsymf";
+ case 0x016d: return "__lconv";
+ case 0x016e: return "__lconv_init";
+ case 0x016f: return "__libm_sse2_acos";
+ case 0x0170: return "__libm_sse2_acosf";
+ case 0x0171: return "__libm_sse2_asin";
+ case 0x0172: return "__libm_sse2_asinf";
+ case 0x0173: return "__libm_sse2_atan";
+ case 0x0174: return "__libm_sse2_atan2";
+ case 0x0175: return "__libm_sse2_atanf";
+ case 0x0176: return "__libm_sse2_cos";
+ case 0x0177: return "__libm_sse2_cosf";
+ case 0x0178: return "__libm_sse2_exp";
+ case 0x0179: return "__libm_sse2_expf";
+ case 0x017a: return "__libm_sse2_log";
+ case 0x017b: return "__libm_sse2_log10";
+ case 0x017c: return "__libm_sse2_log10f";
+ case 0x017d: return "__libm_sse2_logf";
+ case 0x017e: return "__libm_sse2_pow";
+ case 0x017f: return "__libm_sse2_powf";
+ case 0x0180: return "__libm_sse2_sin";
+ case 0x0181: return "__libm_sse2_sinf";
+ case 0x0182: return "__libm_sse2_tan";
+ case 0x0183: return "__libm_sse2_tanf";
+ case 0x0184: return "__mb_cur_max";
+ case 0x0185: return "__p___argc";
+ case 0x0186: return "__p___argv";
+ case 0x0187: return "__p___initenv";
+ case 0x0188: return "__p___mb_cur_max";
+ case 0x0189: return "__p___wargv";
+ case 0x018a: return "__p___winitenv";
+ case 0x018b: return "__p__acmdln";
+ case 0x018c: return "__p__commode";
+ case 0x018d: return "__p__daylight";
+ case 0x018e: return "__p__dstbias";
+ case 0x018f: return "__p__environ";
+ case 0x0190: return "__p__fmode";
+ case 0x0191: return "__p__iob";
+ case 0x0192: return "__p__mbcasemap";
+ case 0x0193: return "__p__mbctype";
+ case 0x0194: return "__p__pctype";
+ case 0x0195: return "__p__pgmptr";
+ case 0x0196: return "__p__pwctype";
+ case 0x0197: return "__p__timezone";
+ case 0x0198: return "__p__tzname";
+ case 0x0199: return "__p__wcmdln";
+ case 0x019a: return "__p__wenviron";
+ case 0x019b: return "__p__wpgmptr";
+ case 0x019c: return "__pctype_func";
+ case 0x019d: return "__pioinfo";
+ case 0x019e: return "__pwctype_func";
+ case 0x019f: return "__pxcptinfoptrs";
+ case 0x01a0: return "__report_gsfailure";
+ case 0x01a1: return "__set_app_type";
+ case 0x01a2: return "__set_flsgetvalue";
+ case 0x01a3: return "__setlc_active";
+ case 0x01a4: return "__setusermatherr";
+ case 0x01a5: return "__strncnt";
+ case 0x01a6: return "__swprintf_l";
+ case 0x01a7: return "__sys_errlist";
+ case 0x01a8: return "__sys_nerr";
+ case 0x01a9: return "__threadhandle";
+ case 0x01aa: return "__threadid";
+ case 0x01ab: return "__timezone";
+ case 0x01ac: return "__toascii";
+ case 0x01ad: return "__tzname";
+ case 0x01ae: return "__unDName";
+ case 0x01af: return "__unDNameEx";
+ case 0x01b0: return "__unDNameHelper";
+ case 0x00e1: return "__uncaught_exception";
+ case 0x01b1: return "__unguarded_readlc_active";
+ case 0x01b2: return "__vswprintf_l";
+ case 0x01b3: return "__wargv";
+ case 0x01b4: return "__wcserror";
+ case 0x01b5: return "__wcserror_s";
+ case 0x01b6: return "__wcsncnt";
+ case 0x01b7: return "__wgetmainargs";
+ case 0x01b8: return "__winitenv";
+ case 0x01b9: return "_abnormal_termination";
+ case 0x01ba: return "_abs64";
+ case 0x01bb: return "_access";
+ case 0x01bc: return "_access_s";
+ case 0x01bd: return "_acmdln";
+ case 0x01be: return "_aligned_free";
+ case 0x01bf: return "_aligned_malloc";
+ case 0x01c0: return "_aligned_msize";
+ case 0x01c1: return "_aligned_offset_malloc";
+ case 0x01c2: return "_aligned_offset_realloc";
+ case 0x01c3: return "_aligned_offset_recalloc";
+ case 0x01c4: return "_aligned_realloc";
+ case 0x01c5: return "_aligned_recalloc";
+ case 0x01c6: return "_amsg_exit";
+ case 0x01c7: return "_assert";
+ case 0x01c8: return "_atodbl";
+ case 0x01c9: return "_atodbl_l";
+ case 0x01ca: return "_atof_l";
+ case 0x01cb: return "_atoflt";
+ case 0x01cc: return "_atoflt_l";
+ case 0x01cd: return "_atoi64";
+ case 0x01ce: return "_atoi64_l";
+ case 0x01cf: return "_atoi_l";
+ case 0x01d0: return "_atol_l";
+ case 0x01d1: return "_atoldbl";
+ case 0x01d2: return "_atoldbl_l";
+ case 0x01d3: return "_beep";
+ case 0x01d4: return "_beginthread";
+ case 0x01d5: return "_beginthreadex";
+ case 0x01d6: return "_byteswap_uint64";
+ case 0x01d7: return "_byteswap_ulong";
+ case 0x01d8: return "_byteswap_ushort";
+ case 0x01d9: return "_c_exit";
+ case 0x01da: return "_cabs";
+ case 0x01db: return "_callnewh";
+ case 0x01dc: return "_calloc_crt";
+ case 0x01dd: return "_cexit";
+ case 0x01de: return "_cgets";
+ case 0x01df: return "_cgets_s";
+ case 0x01e0: return "_cgetws";
+ case 0x01e1: return "_cgetws_s";
+ case 0x01e2: return "_chdir";
+ case 0x01e3: return "_chdrive";
+ case 0x01e4: return "_chgsign";
+ case 0x01e5: return "_chkesp";
+ case 0x01e6: return "_chmod";
+ case 0x01e7: return "_chsize";
+ case 0x01e8: return "_chsize_s";
+ case 0x01e9: return "_clearfp";
+ case 0x01ea: return "_close";
+ case 0x01eb: return "_commit";
+ case 0x01ec: return "_commode";
+ case 0x01ed: return "_configthreadlocale";
+ case 0x01ee: return "_control87";
+ case 0x01ef: return "_controlfp";
+ case 0x01f0: return "_controlfp_s";
+ case 0x01f1: return "_copysign";
+ case 0x01f2: return "_cprintf";
+ case 0x01f3: return "_cprintf_l";
+ case 0x01f4: return "_cprintf_p";
+ case 0x01f5: return "_cprintf_p_l";
+ case 0x01f6: return "_cprintf_s";
+ case 0x01f7: return "_cprintf_s_l";
+ case 0x01f8: return "_cputs";
+ case 0x01f9: return "_cputws";
+ case 0x01fa: return "_creat";
+ case 0x01fb: return "_create_locale";
+ case 0x01fc: return "_crt_debugger_hook";
+ case 0x01fd: return "_cscanf";
+ case 0x01fe: return "_cscanf_l";
+ case 0x01ff: return "_cscanf_s";
+ case 0x0200: return "_cscanf_s_l";
+ case 0x0201: return "_ctime32";
+ case 0x0202: return "_ctime32_s";
+ case 0x0203: return "_ctime64";
+ case 0x0204: return "_ctime64_s";
+ case 0x0205: return "_cwait";
+ case 0x0206: return "_cwprintf";
+ case 0x0207: return "_cwprintf_l";
+ case 0x0208: return "_cwprintf_p";
+ case 0x0209: return "_cwprintf_p_l";
+ case 0x020a: return "_cwprintf_s";
+ case 0x020b: return "_cwprintf_s_l";
+ case 0x020c: return "_cwscanf";
+ case 0x020d: return "_cwscanf_l";
+ case 0x020e: return "_cwscanf_s";
+ case 0x020f: return "_cwscanf_s_l";
+ case 0x0210: return "_daylight";
+ case 0x0211: return "_difftime32";
+ case 0x0212: return "_difftime64";
+ case 0x0213: return "_dosmaperr";
+ case 0x0214: return "_dstbias";
+ case 0x0215: return "_dup";
+ case 0x0216: return "_dup2";
+ case 0x0217: return "_dupenv_s";
+ case 0x0218: return "_ecvt";
+ case 0x0219: return "_ecvt_s";
+ case 0x021a: return "_encoded_null";
+ case 0x021b: return "_endthread";
+ case 0x021c: return "_endthreadex";
+ case 0x021d: return "_environ";
+ case 0x021e: return "_eof";
+ case 0x021f: return "_errno";
+ case 0x0220: return "_except_handler2";
+ case 0x0221: return "_except_handler3";
+ case 0x0222: return "_except_handler4_common";
+ case 0x0223: return "_execl";
+ case 0x0224: return "_execle";
+ case 0x0225: return "_execlp";
+ case 0x0226: return "_execlpe";
+ case 0x0227: return "_execv";
+ case 0x0228: return "_execve";
+ case 0x0229: return "_execvp";
+ case 0x022a: return "_execvpe";
+ case 0x022b: return "_exit";
+ case 0x022c: return "_expand";
+ case 0x022d: return "_fclose_nolock";
+ case 0x022e: return "_fcloseall";
+ case 0x022f: return "_fcvt";
+ case 0x0230: return "_fcvt_s";
+ case 0x0231: return "_fdopen";
+ case 0x0232: return "_fflush_nolock";
+ case 0x0233: return "_fgetchar";
+ case 0x0234: return "_fgetwc_nolock";
+ case 0x0235: return "_fgetwchar";
+ case 0x0236: return "_filbuf";
+ case 0x0237: return "_filelength";
+ case 0x0238: return "_filelengthi64";
+ case 0x0239: return "_fileno";
+ case 0x023a: return "_findclose";
+ case 0x023b: return "_findfirst32";
+ case 0x023c: return "_findfirst32i64";
+ case 0x023d: return "_findfirst64";
+ case 0x023e: return "_findfirst64i32";
+ case 0x023f: return "_findnext32";
+ case 0x0240: return "_findnext32i64";
+ case 0x0241: return "_findnext64";
+ case 0x0242: return "_findnext64i32";
+ case 0x0243: return "_finite";
+ case 0x0244: return "_flsbuf";
+ case 0x0245: return "_flushall";
+ case 0x0246: return "_fmode";
+ case 0x0247: return "_fpclass";
+ case 0x0248: return "_fpieee_flt";
+ case 0x0249: return "_fpreset";
+ case 0x024a: return "_fprintf_l";
+ case 0x024b: return "_fprintf_p";
+ case 0x024c: return "_fprintf_p_l";
+ case 0x024d: return "_fprintf_s_l";
+ case 0x024e: return "_fputchar";
+ case 0x024f: return "_fputwc_nolock";
+ case 0x0250: return "_fputwchar";
+ case 0x0251: return "_fread_nolock";
+ case 0x0252: return "_fread_nolock_s";
+ case 0x0253: return "_free_locale";
+ case 0x0254: return "_freea";
+ case 0x0255: return "_freea_s";
+ case 0x0256: return "_freefls";
+ case 0x0257: return "_fscanf_l";
+ case 0x0258: return "_fscanf_s_l";
+ case 0x0259: return "_fseek_nolock";
+ case 0x025a: return "_fseeki64";
+ case 0x025b: return "_fseeki64_nolock";
+ case 0x025c: return "_fsopen";
+ case 0x025d: return "_fstat32";
+ case 0x025e: return "_fstat32i64";
+ case 0x025f: return "_fstat64";
+ case 0x0260: return "_fstat64i32";
+ case 0x0261: return "_ftell_nolock";
+ case 0x0262: return "_ftelli64";
+ case 0x0263: return "_ftelli64_nolock";
+ case 0x0264: return "_ftime32";
+ case 0x0265: return "_ftime32_s";
+ case 0x0266: return "_ftime64";
+ case 0x0267: return "_ftime64_s";
+ case 0x0268: return "_ftol";
+ case 0x0269: return "_fullpath";
+ case 0x026a: return "_futime32";
+ case 0x026b: return "_futime64";
+ case 0x026c: return "_fwprintf_l";
+ case 0x026d: return "_fwprintf_p";
+ case 0x026e: return "_fwprintf_p_l";
+ case 0x026f: return "_fwprintf_s_l";
+ case 0x0270: return "_fwrite_nolock";
+ case 0x0271: return "_fwscanf_l";
+ case 0x0272: return "_fwscanf_s_l";
+ case 0x0273: return "_gcvt";
+ case 0x0274: return "_gcvt_s";
+ case 0x0275: return "_get_current_locale";
+ case 0x0276: return "_get_daylight";
+ case 0x0277: return "_get_doserrno";
+ case 0x0278: return "_get_dstbias";
+ case 0x0279: return "_get_errno";
+ case 0x027a: return "_get_fmode";
+ case 0x027b: return "_get_heap_handle";
+ case 0x027c: return "_get_invalid_parameter_handler";
+ case 0x027d: return "_get_osfhandle";
+ case 0x027e: return "_get_output_format";
+ case 0x027f: return "_get_pgmptr";
+ case 0x0280: return "_get_printf_count_output";
+ case 0x0281: return "_get_purecall_handler";
+ case 0x0282: return "_get_terminate";
+ case 0x0283: return "_get_timezone";
+ case 0x0284: return "_get_tzname";
+ case 0x0285: return "_get_unexpected";
+ case 0x0286: return "_get_wpgmptr";
+ case 0x0287: return "_getc_nolock";
+ case 0x0288: return "_getch";
+ case 0x0289: return "_getch_nolock";
+ case 0x028a: return "_getche";
+ case 0x028b: return "_getche_nolock";
+ case 0x028c: return "_getcwd";
+ case 0x028d: return "_getdcwd";
+ case 0x028e: return "_getdcwd_nolock";
+ case 0x028f: return "_getdiskfree";
+ case 0x0290: return "_getdllprocaddr";
+ case 0x0291: return "_getdrive";
+ case 0x0292: return "_getdrives";
+ case 0x0293: return "_getmaxstdio";
+ case 0x0294: return "_getmbcp";
+ case 0x0295: return "_getpid";
+ case 0x0296: return "_getptd";
+ case 0x0297: return "_getsystime";
+ case 0x0298: return "_getw";
+ case 0x0299: return "_getwch";
+ case 0x029a: return "_getwch_nolock";
+ case 0x029b: return "_getwche";
+ case 0x029c: return "_getwche_nolock";
+ case 0x029d: return "_getws";
+ case 0x029e: return "_getws_s";
+ case 0x029f: return "_global_unwind2";
+ case 0x02a0: return "_gmtime32";
+ case 0x02a1: return "_gmtime32_s";
+ case 0x02a2: return "_gmtime64";
+ case 0x02a3: return "_gmtime64_s";
+ case 0x02a4: return "_heapadd";
+ case 0x02a5: return "_heapchk";
+ case 0x02a6: return "_heapmin";
+ case 0x02a7: return "_heapset";
+ case 0x02a8: return "_heapused";
+ case 0x02a9: return "_heapwalk";
+ case 0x02aa: return "_hypot";
+ case 0x02ab: return "_hypotf";
+ case 0x02ac: return "_i64toa";
+ case 0x02ad: return "_i64toa_s";
+ case 0x02ae: return "_i64tow";
+ case 0x02af: return "_i64tow_s";
+ case 0x02b0: return "_initptd";
+ case 0x02b1: return "_initterm";
+ case 0x02b2: return "_initterm_e";
+ case 0x02b3: return "_inp";
+ case 0x02b4: return "_inpd";
+ case 0x02b5: return "_inpw";
+ case 0x02b6: return "_invalid_parameter";
+ case 0x02b7: return "_invalid_parameter_noinfo";
+ case 0x02b8: return "_invalid_parameter_noinfo_noreturn";
+ case 0x02b9: return "_invoke_watson";
+ case 0x02ba: return "_iob";
+ case 0x02bb: return "_isalnum_l";
+ case 0x02bc: return "_isalpha_l";
+ case 0x02bd: return "_isatty";
+ case 0x02be: return "_iscntrl_l";
+ case 0x02bf: return "_isctype";
+ case 0x02c0: return "_isctype_l";
+ case 0x02c1: return "_isdigit_l";
+ case 0x02c2: return "_isgraph_l";
+ case 0x02c3: return "_isleadbyte_l";
+ case 0x02c4: return "_islower_l";
+ case 0x02c5: return "_ismbbalnum";
+ case 0x02c6: return "_ismbbalnum_l";
+ case 0x02c7: return "_ismbbalpha";
+ case 0x02c8: return "_ismbbalpha_l";
+ case 0x02c9: return "_ismbbgraph";
+ case 0x02ca: return "_ismbbgraph_l";
+ case 0x02cb: return "_ismbbkalnum";
+ case 0x02cc: return "_ismbbkalnum_l";
+ case 0x02cd: return "_ismbbkana";
+ case 0x02ce: return "_ismbbkana_l";
+ case 0x02cf: return "_ismbbkprint";
+ case 0x02d0: return "_ismbbkprint_l";
+ case 0x02d1: return "_ismbbkpunct";
+ case 0x02d2: return "_ismbbkpunct_l";
+ case 0x02d3: return "_ismbblead";
+ case 0x02d4: return "_ismbblead_l";
+ case 0x02d5: return "_ismbbprint";
+ case 0x02d6: return "_ismbbprint_l";
+ case 0x02d7: return "_ismbbpunct";
+ case 0x02d8: return "_ismbbpunct_l";
+ case 0x02d9: return "_ismbbtrail";
+ case 0x02da: return "_ismbbtrail_l";
+ case 0x02db: return "_ismbcalnum";
+ case 0x02dc: return "_ismbcalnum_l";
+ case 0x02dd: return "_ismbcalpha";
+ case 0x02de: return "_ismbcalpha_l";
+ case 0x02df: return "_ismbcdigit";
+ case 0x02e0: return "_ismbcdigit_l";
+ case 0x02e1: return "_ismbcgraph";
+ case 0x02e2: return "_ismbcgraph_l";
+ case 0x02e3: return "_ismbchira";
+ case 0x02e4: return "_ismbchira_l";
+ case 0x02e5: return "_ismbckata";
+ case 0x02e6: return "_ismbckata_l";
+ case 0x02e7: return "_ismbcl0";
+ case 0x02e8: return "_ismbcl0_l";
+ case 0x02e9: return "_ismbcl1";
+ case 0x02ea: return "_ismbcl1_l";
+ case 0x02eb: return "_ismbcl2";
+ case 0x02ec: return "_ismbcl2_l";
+ case 0x02ed: return "_ismbclegal";
+ case 0x02ee: return "_ismbclegal_l";
+ case 0x02ef: return "_ismbclower";
+ case 0x02f0: return "_ismbclower_l";
+ case 0x02f1: return "_ismbcprint";
+ case 0x02f2: return "_ismbcprint_l";
+ case 0x02f3: return "_ismbcpunct";
+ case 0x02f4: return "_ismbcpunct_l";
+ case 0x02f5: return "_ismbcspace";
+ case 0x02f6: return "_ismbcspace_l";
+ case 0x02f7: return "_ismbcsymbol";
+ case 0x02f8: return "_ismbcsymbol_l";
+ case 0x02f9: return "_ismbcupper";
+ case 0x02fa: return "_ismbcupper_l";
+ case 0x02fb: return "_ismbslead";
+ case 0x02fc: return "_ismbslead_l";
+ case 0x02fd: return "_ismbstrail";
+ case 0x02fe: return "_ismbstrail_l";
+ case 0x02ff: return "_isnan";
+ case 0x0300: return "_isprint_l";
+ case 0x0301: return "_ispunct_l";
+ case 0x0302: return "_isspace_l";
+ case 0x0303: return "_isupper_l";
+ case 0x0304: return "_iswalnum_l";
+ case 0x0305: return "_iswalpha_l";
+ case 0x0306: return "_iswcntrl_l";
+ case 0x0307: return "_iswcsym_l";
+ case 0x0308: return "_iswcsymf_l";
+ case 0x0309: return "_iswctype_l";
+ case 0x030a: return "_iswdigit_l";
+ case 0x030b: return "_iswgraph_l";
+ case 0x030c: return "_iswlower_l";
+ case 0x030d: return "_iswprint_l";
+ case 0x030e: return "_iswpunct_l";
+ case 0x030f: return "_iswspace_l";
+ case 0x0310: return "_iswupper_l";
+ case 0x0311: return "_iswxdigit_l";
+ case 0x0312: return "_isxdigit_l";
+ case 0x0313: return "_itoa";
+ case 0x0314: return "_itoa_s";
+ case 0x0315: return "_itow";
+ case 0x0316: return "_itow_s";
+ case 0x0317: return "_j0";
+ case 0x0318: return "_j1";
+ case 0x0319: return "_jn";
+ case 0x031a: return "_kbhit";
+ case 0x031b: return "_lfind";
+ case 0x031c: return "_lfind_s";
+ case 0x031d: return "_loaddll";
+ case 0x031e: return "_local_unwind2";
+ case 0x031f: return "_local_unwind4";
+ case 0x0320: return "_localtime32";
+ case 0x0321: return "_localtime32_s";
+ case 0x0322: return "_localtime64";
+ case 0x0323: return "_localtime64_s";
+ case 0x0324: return "_lock";
+ case 0x0325: return "_lock_file";
+ case 0x0326: return "_locking";
+ case 0x0327: return "_logb";
+ case 0x0328: return "_longjmpex";
+ case 0x0329: return "_lrotl";
+ case 0x032a: return "_lrotr";
+ case 0x032b: return "_lsearch";
+ case 0x032c: return "_lsearch_s";
+ case 0x032d: return "_lseek";
+ case 0x032e: return "_lseeki64";
+ case 0x032f: return "_ltoa";
+ case 0x0330: return "_ltoa_s";
+ case 0x0331: return "_ltow";
+ case 0x0332: return "_ltow_s";
+ case 0x0333: return "_makepath";
+ case 0x0334: return "_makepath_s";
+ case 0x0335: return "_malloc_crt";
+ case 0x0336: return "_mbbtombc";
+ case 0x0337: return "_mbbtombc_l";
+ case 0x0338: return "_mbbtype";
+ case 0x0339: return "_mbbtype_l";
+ case 0x033a: return "_mbcasemap";
+ case 0x033b: return "_mbccpy";
+ case 0x033c: return "_mbccpy_l";
+ case 0x033d: return "_mbccpy_s";
+ case 0x033e: return "_mbccpy_s_l";
+ case 0x033f: return "_mbcjistojms";
+ case 0x0340: return "_mbcjistojms_l";
+ case 0x0341: return "_mbcjmstojis";
+ case 0x0342: return "_mbcjmstojis_l";
+ case 0x0343: return "_mbclen";
+ case 0x0344: return "_mbclen_l";
+ case 0x0345: return "_mbctohira";
+ case 0x0346: return "_mbctohira_l";
+ case 0x0347: return "_mbctokata";
+ case 0x0348: return "_mbctokata_l";
+ case 0x0349: return "_mbctolower";
+ case 0x034a: return "_mbctolower_l";
+ case 0x034b: return "_mbctombb";
+ case 0x034c: return "_mbctombb_l";
+ case 0x034d: return "_mbctoupper";
+ case 0x034e: return "_mbctoupper_l";
+ case 0x034f: return "_mbctype";
+ case 0x0350: return "_mblen_l";
+ case 0x0351: return "_mbsbtype";
+ case 0x0352: return "_mbsbtype_l";
+ case 0x0353: return "_mbscat_s";
+ case 0x0354: return "_mbscat_s_l";
+ case 0x0355: return "_mbschr";
+ case 0x0356: return "_mbschr_l";
+ case 0x0357: return "_mbscmp";
+ case 0x0358: return "_mbscmp_l";
+ case 0x0359: return "_mbscoll";
+ case 0x035a: return "_mbscoll_l";
+ case 0x035b: return "_mbscpy_s";
+ case 0x035c: return "_mbscpy_s_l";
+ case 0x035d: return "_mbscspn";
+ case 0x035e: return "_mbscspn_l";
+ case 0x035f: return "_mbsdec";
+ case 0x0360: return "_mbsdec_l";
+ case 0x0361: return "_mbsicmp";
+ case 0x0362: return "_mbsicmp_l";
+ case 0x0363: return "_mbsicoll";
+ case 0x0364: return "_mbsicoll_l";
+ case 0x0365: return "_mbsinc";
+ case 0x0366: return "_mbsinc_l";
+ case 0x0367: return "_mbslen";
+ case 0x0368: return "_mbslen_l";
+ case 0x0369: return "_mbslwr";
+ case 0x036a: return "_mbslwr_l";
+ case 0x036b: return "_mbslwr_s";
+ case 0x036c: return "_mbslwr_s_l";
+ case 0x036d: return "_mbsnbcat";
+ case 0x036e: return "_mbsnbcat_l";
+ case 0x036f: return "_mbsnbcat_s";
+ case 0x0370: return "_mbsnbcat_s_l";
+ case 0x0371: return "_mbsnbcmp";
+ case 0x0372: return "_mbsnbcmp_l";
+ case 0x0373: return "_mbsnbcnt";
+ case 0x0374: return "_mbsnbcnt_l";
+ case 0x0375: return "_mbsnbcoll";
+ case 0x0376: return "_mbsnbcoll_l";
+ case 0x0377: return "_mbsnbcpy";
+ case 0x0378: return "_mbsnbcpy_l";
+ case 0x0379: return "_mbsnbcpy_s";
+ case 0x037a: return "_mbsnbcpy_s_l";
+ case 0x037b: return "_mbsnbicmp";
+ case 0x037c: return "_mbsnbicmp_l";
+ case 0x037d: return "_mbsnbicoll";
+ case 0x037e: return "_mbsnbicoll_l";
+ case 0x037f: return "_mbsnbset";
+ case 0x0380: return "_mbsnbset_l";
+ case 0x0381: return "_mbsnbset_s";
+ case 0x0382: return "_mbsnbset_s_l";
+ case 0x0383: return "_mbsncat";
+ case 0x0384: return "_mbsncat_l";
+ case 0x0385: return "_mbsncat_s";
+ case 0x0386: return "_mbsncat_s_l";
+ case 0x0387: return "_mbsnccnt";
+ case 0x0388: return "_mbsnccnt_l";
+ case 0x0389: return "_mbsncmp";
+ case 0x038a: return "_mbsncmp_l";
+ case 0x038b: return "_mbsncoll";
+ case 0x038c: return "_mbsncoll_l";
+ case 0x038d: return "_mbsncpy";
+ case 0x038e: return "_mbsncpy_l";
+ case 0x038f: return "_mbsncpy_s";
+ case 0x0390: return "_mbsncpy_s_l";
+ case 0x0391: return "_mbsnextc";
+ case 0x0392: return "_mbsnextc_l";
+ case 0x0393: return "_mbsnicmp";
+ case 0x0394: return "_mbsnicmp_l";
+ case 0x0395: return "_mbsnicoll";
+ case 0x0396: return "_mbsnicoll_l";
+ case 0x0397: return "_mbsninc";
+ case 0x0398: return "_mbsninc_l";
+ case 0x0399: return "_mbsnlen";
+ case 0x039a: return "_mbsnlen_l";
+ case 0x039b: return "_mbsnset";
+ case 0x039c: return "_mbsnset_l";
+ case 0x039d: return "_mbsnset_s";
+ case 0x039e: return "_mbsnset_s_l";
+ case 0x039f: return "_mbspbrk";
+ case 0x03a0: return "_mbspbrk_l";
+ case 0x03a1: return "_mbsrchr";
+ case 0x03a2: return "_mbsrchr_l";
+ case 0x03a3: return "_mbsrev";
+ case 0x03a4: return "_mbsrev_l";
+ case 0x03a5: return "_mbsset";
+ case 0x03a6: return "_mbsset_l";
+ case 0x03a7: return "_mbsset_s";
+ case 0x03a8: return "_mbsset_s_l";
+ case 0x03a9: return "_mbsspn";
+ case 0x03aa: return "_mbsspn_l";
+ case 0x03ab: return "_mbsspnp";
+ case 0x03ac: return "_mbsspnp_l";
+ case 0x03ad: return "_mbsstr";
+ case 0x03ae: return "_mbsstr_l";
+ case 0x03af: return "_mbstok";
+ case 0x03b0: return "_mbstok_l";
+ case 0x03b1: return "_mbstok_s";
+ case 0x03b2: return "_mbstok_s_l";
+ case 0x03b3: return "_mbstowcs_l";
+ case 0x03b4: return "_mbstowcs_s_l";
+ case 0x03b5: return "_mbstrlen";
+ case 0x03b6: return "_mbstrlen_l";
+ case 0x03b7: return "_mbstrnlen";
+ case 0x03b8: return "_mbstrnlen_l";
+ case 0x03b9: return "_mbsupr";
+ case 0x03ba: return "_mbsupr_l";
+ case 0x03bb: return "_mbsupr_s";
+ case 0x03bc: return "_mbsupr_s_l";
+ case 0x03bd: return "_mbtowc_l";
+ case 0x03be: return "_memccpy";
+ case 0x03bf: return "_memicmp";
+ case 0x03c0: return "_memicmp_l";
+ case 0x03c1: return "_mkdir";
+ case 0x03c2: return "_mkgmtime32";
+ case 0x03c3: return "_mkgmtime64";
+ case 0x03c4: return "_mktemp";
+ case 0x03c5: return "_mktemp_s";
+ case 0x03c6: return "_mktime32";
+ case 0x03c7: return "_mktime64";
+ case 0x03c8: return "_msize";
+ case 0x03c9: return "_nextafter";
+ case 0x03ca: return "_onexit";
+ case 0x03cb: return "_open";
+ case 0x03cc: return "_open_osfhandle";
+ case 0x03cd: return "_outp";
+ case 0x03ce: return "_outpd";
+ case 0x03cf: return "_outpw";
+ case 0x03d0: return "_pclose";
+ case 0x03d1: return "_pctype";
+ case 0x03d2: return "_pgmptr";
+ case 0x03d3: return "_pipe";
+ case 0x03d4: return "_popen";
+ case 0x03d5: return "_printf_l";
+ case 0x03d6: return "_printf_p";
+ case 0x03d7: return "_printf_p_l";
+ case 0x03d8: return "_printf_s_l";
+ case 0x03d9: return "_purecall";
+ case 0x03da: return "_putch";
+ case 0x03db: return "_putch_nolock";
+ case 0x03dc: return "_putenv";
+ case 0x03dd: return "_putenv_s";
+ case 0x03de: return "_putw";
+ case 0x03df: return "_putwch";
+ case 0x03e0: return "_putwch_nolock";
+ case 0x03e1: return "_putws";
+ case 0x03e2: return "_pwctype";
+ case 0x03e3: return "_read";
+ case 0x03e4: return "_realloc_crt";
+ case 0x03e5: return "_recalloc";
+ case 0x03e6: return "_recalloc_crt";
+ case 0x03e7: return "_resetstkoflw";
+ case 0x03e8: return "_rmdir";
+ case 0x03e9: return "_rmtmp";
+ case 0x03ea: return "_rotl";
+ case 0x03eb: return "_rotl64";
+ case 0x03ec: return "_rotr";
+ case 0x03ed: return "_rotr64";
+ case 0x03ee: return "_scalb";
+ case 0x03ef: return "_scanf_l";
+ case 0x03f0: return "_scanf_s_l";
+ case 0x03f1: return "_scprintf";
+ case 0x03f2: return "_scprintf_l";
+ case 0x03f3: return "_scprintf_p";
+ case 0x03f4: return "_scprintf_p_l";
+ case 0x03f5: return "_scwprintf";
+ case 0x03f6: return "_scwprintf_l";
+ case 0x03f7: return "_scwprintf_p";
+ case 0x03f8: return "_scwprintf_p_l";
+ case 0x03f9: return "_searchenv";
+ case 0x03fa: return "_searchenv_s";
+ case 0x03fc: return "_seh_longjmp_unwind";
+ case 0x03fb: return "_seh_longjmp_unwind4";
+ case 0x03fd: return "_set_SSE2_enable";
+ case 0x03fe: return "_set_abort_behavior";
+ case 0x03ff: return "_set_controlfp";
+ case 0x0400: return "_set_doserrno";
+ case 0x0401: return "_set_errno";
+ case 0x0402: return "_set_error_mode";
+ case 0x0403: return "_set_fmode";
+ case 0x0404: return "_set_invalid_parameter_handler";
+ case 0x0405: return "_set_malloc_crt_max_wait";
+ case 0x0406: return "_set_output_format";
+ case 0x0407: return "_set_printf_count_output";
+ case 0x0408: return "_set_purecall_handler";
+ case 0x0409: return "_seterrormode";
+ case 0x040a: return "_setjmp";
+ case 0x040b: return "_setjmp3";
+ case 0x040c: return "_setmaxstdio";
+ case 0x040d: return "_setmbcp";
+ case 0x040e: return "_setmode";
+ case 0x040f: return "_setsystime";
+ case 0x0410: return "_sleep";
+ case 0x0411: return "_snprintf";
+ case 0x0412: return "_snprintf_c";
+ case 0x0413: return "_snprintf_c_l";
+ case 0x0414: return "_snprintf_l";
+ case 0x0415: return "_snprintf_s";
+ case 0x0416: return "_snprintf_s_l";
+ case 0x0417: return "_snscanf";
+ case 0x0418: return "_snscanf_l";
+ case 0x0419: return "_snscanf_s";
+ case 0x041a: return "_snscanf_s_l";
+ case 0x041b: return "_snwprintf";
+ case 0x041c: return "_snwprintf_l";
+ case 0x041d: return "_snwprintf_s";
+ case 0x041e: return "_snwprintf_s_l";
+ case 0x041f: return "_snwscanf";
+ case 0x0420: return "_snwscanf_l";
+ case 0x0421: return "_snwscanf_s";
+ case 0x0422: return "_snwscanf_s_l";
+ case 0x0423: return "_sopen";
+ case 0x0424: return "_sopen_s";
+ case 0x0425: return "_spawnl";
+ case 0x0426: return "_spawnle";
+ case 0x0427: return "_spawnlp";
+ case 0x0428: return "_spawnlpe";
+ case 0x0429: return "_spawnv";
+ case 0x042a: return "_spawnve";
+ case 0x042b: return "_spawnvp";
+ case 0x042c: return "_spawnvpe";
+ case 0x042d: return "_splitpath";
+ case 0x042e: return "_splitpath_s";
+ case 0x042f: return "_sprintf_l";
+ case 0x0430: return "_sprintf_p";
+ case 0x0431: return "_sprintf_p_l";
+ case 0x0432: return "_sprintf_s_l";
+ case 0x0433: return "_sscanf_l";
+ case 0x0434: return "_sscanf_s_l";
+ case 0x0435: return "_stat32";
+ case 0x0436: return "_stat32i64";
+ case 0x0437: return "_stat64";
+ case 0x0438: return "_stat64i32";
+ case 0x0439: return "_statusfp";
+ case 0x043a: return "_statusfp2";
+ case 0x043b: return "_strcoll_l";
+ case 0x043c: return "_strdate";
+ case 0x043d: return "_strdate_s";
+ case 0x043e: return "_strdup";
+ case 0x043f: return "_strerror";
+ case 0x0440: return "_strerror_s";
+ case 0x0441: return "_strftime_l";
+ case 0x0442: return "_stricmp";
+ case 0x0443: return "_stricmp_l";
+ case 0x0444: return "_stricoll";
+ case 0x0445: return "_stricoll_l";
+ case 0x0446: return "_strlwr";
+ case 0x0447: return "_strlwr_l";
+ case 0x0448: return "_strlwr_s";
+ case 0x0449: return "_strlwr_s_l";
+ case 0x044a: return "_strncoll";
+ case 0x044b: return "_strncoll_l";
+ case 0x044c: return "_strnicmp";
+ case 0x044d: return "_strnicmp_l";
+ case 0x044e: return "_strnicoll";
+ case 0x044f: return "_strnicoll_l";
+ case 0x0450: return "_strnset";
+ case 0x0451: return "_strnset_s";
+ case 0x0452: return "_strrev";
+ case 0x0453: return "_strset";
+ case 0x0454: return "_strset_s";
+ case 0x0455: return "_strtime";
+ case 0x0456: return "_strtime_s";
+ case 0x0457: return "_strtod_l";
+ case 0x0458: return "_strtoi64";
+ case 0x0459: return "_strtoi64_l";
+ case 0x045a: return "_strtol_l";
+ case 0x045b: return "_strtoui64";
+ case 0x045c: return "_strtoui64_l";
+ case 0x045d: return "_strtoul_l";
+ case 0x045e: return "_strupr";
+ case 0x045f: return "_strupr_l";
+ case 0x0460: return "_strupr_s";
+ case 0x0461: return "_strupr_s_l";
+ case 0x0462: return "_strxfrm_l";
+ case 0x0463: return "_swab";
+ case 0x0464: return "_swprintf";
+ case 0x0465: return "_swprintf_c";
+ case 0x0466: return "_swprintf_c_l";
+ case 0x0467: return "_swprintf_p";
+ case 0x0468: return "_swprintf_p_l";
+ case 0x0469: return "_swprintf_s_l";
+ case 0x046a: return "_swscanf_l";
+ case 0x046b: return "_swscanf_s_l";
+ case 0x046c: return "_sys_errlist";
+ case 0x046d: return "_sys_nerr";
+ case 0x046e: return "_tell";
+ case 0x046f: return "_telli64";
+ case 0x0470: return "_tempnam";
+ case 0x0471: return "_time32";
+ case 0x0472: return "_time64";
+ case 0x0473: return "_timezone";
+ case 0x0474: return "_tolower";
+ case 0x0475: return "_tolower_l";
+ case 0x0476: return "_toupper";
+ case 0x0477: return "_toupper_l";
+ case 0x0478: return "_towlower_l";
+ case 0x0479: return "_towupper_l";
+ case 0x047a: return "_tzname";
+ case 0x047b: return "_tzset";
+ case 0x047c: return "_ui64toa";
+ case 0x047d: return "_ui64toa_s";
+ case 0x047e: return "_ui64tow";
+ case 0x047f: return "_ui64tow_s";
+ case 0x0480: return "_ultoa";
+ case 0x0481: return "_ultoa_s";
+ case 0x0482: return "_ultow";
+ case 0x0483: return "_ultow_s";
+ case 0x0484: return "_umask";
+ case 0x0485: return "_umask_s";
+ case 0x0486: return "_ungetc_nolock";
+ case 0x0487: return "_ungetch";
+ case 0x0488: return "_ungetch_nolock";
+ case 0x0489: return "_ungetwc_nolock";
+ case 0x048a: return "_ungetwch";
+ case 0x048b: return "_ungetwch_nolock";
+ case 0x048c: return "_unlink";
+ case 0x048d: return "_unloaddll";
+ case 0x048e: return "_unlock";
+ case 0x048f: return "_unlock_file";
+ case 0x0490: return "_utime32";
+ case 0x0491: return "_utime64";
+ case 0x0492: return "_vcprintf";
+ case 0x0493: return "_vcprintf_l";
+ case 0x0494: return "_vcprintf_p";
+ case 0x0495: return "_vcprintf_p_l";
+ case 0x0496: return "_vcprintf_s";
+ case 0x0497: return "_vcprintf_s_l";
+ case 0x0498: return "_vcwprintf";
+ case 0x0499: return "_vcwprintf_l";
+ case 0x049a: return "_vcwprintf_p";
+ case 0x049b: return "_vcwprintf_p_l";
+ case 0x049c: return "_vcwprintf_s";
+ case 0x049d: return "_vcwprintf_s_l";
+ case 0x049e: return "_vfprintf_l";
+ case 0x049f: return "_vfprintf_p";
+ case 0x04a0: return "_vfprintf_p_l";
+ case 0x04a1: return "_vfprintf_s_l";
+ case 0x04a2: return "_vfwprintf_l";
+ case 0x04a3: return "_vfwprintf_p";
+ case 0x04a4: return "_vfwprintf_p_l";
+ case 0x04a5: return "_vfwprintf_s_l";
+ case 0x04a6: return "_vprintf_l";
+ case 0x04a7: return "_vprintf_p";
+ case 0x04a8: return "_vprintf_p_l";
+ case 0x04a9: return "_vprintf_s_l";
+ case 0x04aa: return "_vscprintf";
+ case 0x04ab: return "_vscprintf_l";
+ case 0x04ac: return "_vscprintf_p";
+ case 0x04ad: return "_vscprintf_p_l";
+ case 0x04ae: return "_vscwprintf";
+ case 0x04af: return "_vscwprintf_l";
+ case 0x04b0: return "_vscwprintf_p";
+ case 0x04b1: return "_vscwprintf_p_l";
+ case 0x04b2: return "_vsnprintf";
+ case 0x04b3: return "_vsnprintf_c";
+ case 0x04b4: return "_vsnprintf_c_l";
+ case 0x04b5: return "_vsnprintf_l";
+ case 0x04b6: return "_vsnprintf_s";
+ case 0x04b7: return "_vsnprintf_s_l";
+ case 0x04b8: return "_vsnwprintf";
+ case 0x04b9: return "_vsnwprintf_l";
+ case 0x04ba: return "_vsnwprintf_s";
+ case 0x04bb: return "_vsnwprintf_s_l";
+ case 0x04bc: return "_vsprintf_l";
+ case 0x04bd: return "_vsprintf_p";
+ case 0x04be: return "_vsprintf_p_l";
+ case 0x04bf: return "_vsprintf_s_l";
+ case 0x04c0: return "_vswprintf";
+ case 0x04c1: return "_vswprintf_c";
+ case 0x04c2: return "_vswprintf_c_l";
+ case 0x04c3: return "_vswprintf_l";
+ case 0x04c4: return "_vswprintf_p";
+ case 0x04c5: return "_vswprintf_p_l";
+ case 0x04c6: return "_vswprintf_s_l";
+ case 0x04c7: return "_vwprintf_l";
+ case 0x04c8: return "_vwprintf_p";
+ case 0x04c9: return "_vwprintf_p_l";
+ case 0x04ca: return "_vwprintf_s_l";
+ case 0x04cb: return "_waccess";
+ case 0x04cc: return "_waccess_s";
+ case 0x04cd: return "_wasctime";
+ case 0x04ce: return "_wasctime_s";
+ case 0x04cf: return "_wassert";
+ case 0x04d0: return "_wchdir";
+ case 0x04d1: return "_wchmod";
+ case 0x04d2: return "_wcmdln";
+ case 0x04d3: return "_wcreat";
+ case 0x04d4: return "_wcscoll_l";
+ case 0x04d5: return "_wcsdup";
+ case 0x04d6: return "_wcserror";
+ case 0x04d7: return "_wcserror_s";
+ case 0x04d8: return "_wcsftime_l";
+ case 0x04d9: return "_wcsicmp";
+ case 0x04da: return "_wcsicmp_l";
+ case 0x04db: return "_wcsicoll";
+ case 0x04dc: return "_wcsicoll_l";
+ case 0x04dd: return "_wcslwr";
+ case 0x04de: return "_wcslwr_l";
+ case 0x04df: return "_wcslwr_s";
+ case 0x04e0: return "_wcslwr_s_l";
+ case 0x04e1: return "_wcsncoll";
+ case 0x04e2: return "_wcsncoll_l";
+ case 0x04e3: return "_wcsnicmp";
+ case 0x04e4: return "_wcsnicmp_l";
+ case 0x04e5: return "_wcsnicoll";
+ case 0x04e6: return "_wcsnicoll_l";
+ case 0x04e7: return "_wcsnset";
+ case 0x04e8: return "_wcsnset_s";
+ case 0x04e9: return "_wcsrev";
+ case 0x04ea: return "_wcsset";
+ case 0x04eb: return "_wcsset_s";
+ case 0x04ec: return "_wcstod_l";
+ case 0x04ed: return "_wcstoi64";
+ case 0x04ee: return "_wcstoi64_l";
+ case 0x04ef: return "_wcstol_l";
+ case 0x04f0: return "_wcstombs_l";
+ case 0x04f1: return "_wcstombs_s_l";
+ case 0x04f2: return "_wcstoui64";
+ case 0x04f3: return "_wcstoui64_l";
+ case 0x04f4: return "_wcstoul_l";
+ case 0x04f5: return "_wcsupr";
+ case 0x04f6: return "_wcsupr_l";
+ case 0x04f7: return "_wcsupr_s";
+ case 0x04f8: return "_wcsupr_s_l";
+ case 0x04f9: return "_wcsxfrm_l";
+ case 0x04fa: return "_wctime32";
+ case 0x04fb: return "_wctime32_s";
+ case 0x04fc: return "_wctime64";
+ case 0x04fd: return "_wctime64_s";
+ case 0x04fe: return "_wctomb_l";
+ case 0x04ff: return "_wctomb_s_l";
+ case 0x0500: return "_wctype";
+ case 0x0501: return "_wdupenv_s";
+ case 0x0502: return "_wenviron";
+ case 0x0503: return "_wexecl";
+ case 0x0504: return "_wexecle";
+ case 0x0505: return "_wexeclp";
+ case 0x0506: return "_wexeclpe";
+ case 0x0507: return "_wexecv";
+ case 0x0508: return "_wexecve";
+ case 0x0509: return "_wexecvp";
+ case 0x050a: return "_wexecvpe";
+ case 0x050b: return "_wfdopen";
+ case 0x050c: return "_wfindfirst32";
+ case 0x050d: return "_wfindfirst32i64";
+ case 0x050e: return "_wfindfirst64";
+ case 0x050f: return "_wfindfirst64i32";
+ case 0x0510: return "_wfindnext32";
+ case 0x0511: return "_wfindnext32i64";
+ case 0x0512: return "_wfindnext64";
+ case 0x0513: return "_wfindnext64i32";
+ case 0x0514: return "_wfopen";
+ case 0x0515: return "_wfopen_s";
+ case 0x0516: return "_wfreopen";
+ case 0x0517: return "_wfreopen_s";
+ case 0x0518: return "_wfsopen";
+ case 0x0519: return "_wfullpath";
+ case 0x051a: return "_wgetcwd";
+ case 0x051b: return "_wgetdcwd";
+ case 0x051c: return "_wgetdcwd_nolock";
+ case 0x051d: return "_wgetenv";
+ case 0x051e: return "_wgetenv_s";
+ case 0x051f: return "_wmakepath";
+ case 0x0520: return "_wmakepath_s";
+ case 0x0521: return "_wmkdir";
+ case 0x0522: return "_wmktemp";
+ case 0x0523: return "_wmktemp_s";
+ case 0x0524: return "_wopen";
+ case 0x0525: return "_wperror";
+ case 0x0526: return "_wpgmptr";
+ case 0x0527: return "_wpopen";
+ case 0x0528: return "_wprintf_l";
+ case 0x0529: return "_wprintf_p";
+ case 0x052a: return "_wprintf_p_l";
+ case 0x052b: return "_wprintf_s_l";
+ case 0x052c: return "_wputenv";
+ case 0x052d: return "_wputenv_s";
+ case 0x052e: return "_wremove";
+ case 0x052f: return "_wrename";
+ case 0x0530: return "_write";
+ case 0x0531: return "_wrmdir";
+ case 0x0532: return "_wscanf_l";
+ case 0x0533: return "_wscanf_s_l";
+ case 0x0534: return "_wsearchenv";
+ case 0x0535: return "_wsearchenv_s";
+ case 0x0536: return "_wsetlocale";
+ case 0x0537: return "_wsopen";
+ case 0x0538: return "_wsopen_s";
+ case 0x0539: return "_wspawnl";
+ case 0x053a: return "_wspawnle";
+ case 0x053b: return "_wspawnlp";
+ case 0x053c: return "_wspawnlpe";
+ case 0x053d: return "_wspawnv";
+ case 0x053e: return "_wspawnve";
+ case 0x053f: return "_wspawnvp";
+ case 0x0540: return "_wspawnvpe";
+ case 0x0541: return "_wsplitpath";
+ case 0x0542: return "_wsplitpath_s";
+ case 0x0543: return "_wstat32";
+ case 0x0544: return "_wstat32i64";
+ case 0x0545: return "_wstat64";
+ case 0x0546: return "_wstat64i32";
+ case 0x0547: return "_wstrdate";
+ case 0x0548: return "_wstrdate_s";
+ case 0x0549: return "_wstrtime";
+ case 0x054a: return "_wstrtime_s";
+ case 0x054b: return "_wsystem";
+ case 0x054c: return "_wtempnam";
+ case 0x054d: return "_wtmpnam";
+ case 0x054e: return "_wtmpnam_s";
+ case 0x054f: return "_wtof";
+ case 0x0550: return "_wtof_l";
+ case 0x0551: return "_wtoi";
+ case 0x0552: return "_wtoi64";
+ case 0x0553: return "_wtoi64_l";
+ case 0x0554: return "_wtoi_l";
+ case 0x0555: return "_wtol";
+ case 0x0556: return "_wtol_l";
+ case 0x0557: return "_wunlink";
+ case 0x0558: return "_wutime32";
+ case 0x0559: return "_wutime64";
+ case 0x055a: return "_y0";
+ case 0x055b: return "_y1";
+ case 0x055c: return "_yn";
+ case 0x055d: return "abort";
+ case 0x055e: return "abs";
+ case 0x055f: return "acos";
+ case 0x0560: return "asctime";
+ case 0x0561: return "asctime_s";
+ case 0x0562: return "asin";
+ case 0x0563: return "atan";
+ case 0x0564: return "atan2";
+ case 0x0565: return "atexit";
+ case 0x0566: return "atof";
+ case 0x0567: return "atoi";
+ case 0x0568: return "atol";
+ case 0x0569: return "bsearch";
+ case 0x056a: return "bsearch_s";
+ case 0x056b: return "btowc";
+ case 0x056c: return "calloc";
+ case 0x056d: return "ceil";
+ case 0x056e: return "clearerr";
+ case 0x056f: return "clearerr_s";
+ case 0x0570: return "clock";
+ case 0x0571: return "cos";
+ case 0x0572: return "cosh";
+ case 0x0573: return "div";
+ case 0x0574: return "exit";
+ case 0x0575: return "exp";
+ case 0x0576: return "fabs";
+ case 0x0577: return "fclose";
+ case 0x0578: return "feof";
+ case 0x0579: return "ferror";
+ case 0x057a: return "fflush";
+ case 0x057b: return "fgetc";
+ case 0x057c: return "fgetpos";
+ case 0x057d: return "fgets";
+ case 0x057e: return "fgetwc";
+ case 0x057f: return "fgetws";
+ case 0x0580: return "floor";
+ case 0x0581: return "fmod";
+ case 0x0582: return "fopen";
+ case 0x0583: return "fopen_s";
+ case 0x0584: return "fprintf";
+ case 0x0585: return "fprintf_s";
+ case 0x0586: return "fputc";
+ case 0x0587: return "fputs";
+ case 0x0588: return "fputwc";
+ case 0x0589: return "fputws";
+ case 0x058a: return "fread";
+ case 0x058b: return "fread_s";
+ case 0x058c: return "free";
+ case 0x058d: return "freopen";
+ case 0x058e: return "freopen_s";
+ case 0x058f: return "frexp";
+ case 0x0590: return "fscanf";
+ case 0x0591: return "fscanf_s";
+ case 0x0592: return "fseek";
+ case 0x0593: return "fsetpos";
+ case 0x0594: return "ftell";
+ case 0x0595: return "fwprintf";
+ case 0x0596: return "fwprintf_s";
+ case 0x0597: return "fwrite";
+ case 0x0598: return "fwscanf";
+ case 0x0599: return "fwscanf_s";
+ case 0x059a: return "getc";
+ case 0x059b: return "getchar";
+ case 0x059c: return "getenv";
+ case 0x059d: return "getenv_s";
+ case 0x059e: return "gets";
+ case 0x059f: return "gets_s";
+ case 0x05a0: return "getwc";
+ case 0x05a1: return "getwchar";
+ case 0x05a2: return "is_wctype";
+ case 0x05a3: return "isalnum";
+ case 0x05a4: return "isalpha";
+ case 0x05a5: return "iscntrl";
+ case 0x05a6: return "isdigit";
+ case 0x05a7: return "isgraph";
+ case 0x05a8: return "isleadbyte";
+ case 0x05a9: return "islower";
+ case 0x05aa: return "isprint";
+ case 0x05ab: return "ispunct";
+ case 0x05ac: return "isspace";
+ case 0x05ad: return "isupper";
+ case 0x05ae: return "iswalnum";
+ case 0x05af: return "iswalpha";
+ case 0x05b0: return "iswascii";
+ case 0x05b1: return "iswcntrl";
+ case 0x05b2: return "iswctype";
+ case 0x05b3: return "iswdigit";
+ case 0x05b4: return "iswgraph";
+ case 0x05b5: return "iswlower";
+ case 0x05b6: return "iswprint";
+ case 0x05b7: return "iswpunct";
+ case 0x05b8: return "iswspace";
+ case 0x05b9: return "iswupper";
+ case 0x05ba: return "iswxdigit";
+ case 0x05bb: return "isxdigit";
+ case 0x05bc: return "labs";
+ case 0x05bd: return "ldexp";
+ case 0x05be: return "ldiv";
+ case 0x05bf: return "llabs";
+ case 0x05c0: return "lldiv";
+ case 0x05c1: return "localeconv";
+ case 0x05c2: return "log";
+ case 0x05c3: return "log10";
+ case 0x05c4: return "longjmp";
+ case 0x05c5: return "malloc";
+ case 0x05c6: return "mblen";
+ case 0x05c7: return "mbrlen";
+ case 0x05c8: return "mbrtowc";
+ case 0x05c9: return "mbsrtowcs";
+ case 0x05ca: return "mbsrtowcs_s";
+ case 0x05cb: return "mbstowcs";
+ case 0x05cc: return "mbstowcs_s";
+ case 0x05cd: return "mbtowc";
+ case 0x05ce: return "memchr";
+ case 0x05cf: return "memcmp";
+ case 0x05d0: return "memcpy";
+ case 0x05d1: return "memcpy_s";
+ case 0x05d2: return "memmove";
+ case 0x05d3: return "memmove_s";
+ case 0x05d4: return "memset";
+ case 0x05d5: return "modf";
+ case 0x05d6: return "perror";
+ case 0x05d7: return "pow";
+ case 0x05d8: return "printf";
+ case 0x05d9: return "printf_s";
+ case 0x05da: return "putc";
+ case 0x05db: return "putchar";
+ case 0x05dc: return "puts";
+ case 0x05dd: return "putwc";
+ case 0x05de: return "putwchar";
+ case 0x05df: return "qsort";
+ case 0x05e0: return "qsort_s";
+ case 0x05e1: return "raise";
+ case 0x05e2: return "rand";
+ case 0x05e3: return "rand_s";
+ case 0x05e4: return "realloc";
+ case 0x05e5: return "remove";
+ case 0x05e6: return "rename";
+ case 0x05e7: return "rewind";
+ case 0x05e8: return "scanf";
+ case 0x05e9: return "scanf_s";
+ case 0x05ea: return "setbuf";
+ case 0x05eb: return "setlocale";
+ case 0x05ec: return "setvbuf";
+ case 0x05ed: return "signal";
+ case 0x05ee: return "sin";
+ case 0x05ef: return "sinh";
+ case 0x05f0: return "sprintf";
+ case 0x05f1: return "sprintf_s";
+ case 0x05f2: return "sqrt";
+ case 0x05f3: return "srand";
+ case 0x05f4: return "sscanf";
+ case 0x05f5: return "sscanf_s";
+ case 0x05f6: return "strcat";
+ case 0x05f7: return "strcat_s";
+ case 0x05f8: return "strchr";
+ case 0x05f9: return "strcmp";
+ case 0x05fa: return "strcoll";
+ case 0x05fb: return "strcpy";
+ case 0x05fc: return "strcpy_s";
+ case 0x05fd: return "strcspn";
+ case 0x05fe: return "strerror";
+ case 0x05ff: return "strerror_s";
+ case 0x0600: return "strftime";
+ case 0x0601: return "strlen";
+ case 0x0602: return "strncat";
+ case 0x0603: return "strncat_s";
+ case 0x0604: return "strncmp";
+ case 0x0605: return "strncpy";
+ case 0x0606: return "strncpy_s";
+ case 0x0607: return "strnlen";
+ case 0x0608: return "strpbrk";
+ case 0x0609: return "strrchr";
+ case 0x060a: return "strspn";
+ case 0x060b: return "strstr";
+ case 0x060c: return "strtod";
+ case 0x060d: return "strtok";
+ case 0x060e: return "strtok_s";
+ case 0x060f: return "strtol";
+ case 0x0610: return "strtoul";
+ case 0x0611: return "strxfrm";
+ case 0x0612: return "swprintf_s";
+ case 0x0613: return "swscanf";
+ case 0x0614: return "swscanf_s";
+ case 0x0615: return "system";
+ case 0x0616: return "tan";
+ case 0x0617: return "tanh";
+ case 0x0618: return "tmpfile";
+ case 0x0619: return "tmpfile_s";
+ case 0x061a: return "tmpnam";
+ case 0x061b: return "tmpnam_s";
+ case 0x061c: return "tolower";
+ case 0x061d: return "toupper";
+ case 0x061e: return "towlower";
+ case 0x061f: return "towupper";
+ case 0x0620: return "ungetc";
+ case 0x0621: return "ungetwc";
+ case 0x0622: return "vfprintf";
+ case 0x0623: return "vfprintf_s";
+ case 0x0624: return "vfwprintf";
+ case 0x0625: return "vfwprintf_s";
+ case 0x0626: return "vprintf";
+ case 0x0627: return "vprintf_s";
+ case 0x0628: return "vsprintf";
+ case 0x0629: return "vsprintf_s";
+ case 0x062a: return "vswprintf_s";
+ case 0x062b: return "vwprintf";
+ case 0x062c: return "vwprintf_s";
+ case 0x062d: return "wcrtomb";
+ case 0x062e: return "wcrtomb_s";
+ case 0x062f: return "wcscat";
+ case 0x0630: return "wcscat_s";
+ case 0x0631: return "wcschr";
+ case 0x0632: return "wcscmp";
+ case 0x0633: return "wcscoll";
+ case 0x0634: return "wcscpy";
+ case 0x0635: return "wcscpy_s";
+ case 0x0636: return "wcscspn";
+ case 0x0637: return "wcsftime";
+ case 0x0638: return "wcslen";
+ case 0x0639: return "wcsncat";
+ case 0x063a: return "wcsncat_s";
+ case 0x063b: return "wcsncmp";
+ case 0x063c: return "wcsncpy";
+ case 0x063d: return "wcsncpy_s";
+ case 0x063e: return "wcsnlen";
+ case 0x063f: return "wcspbrk";
+ case 0x0640: return "wcsrchr";
+ case 0x0641: return "wcsrtombs";
+ case 0x0642: return "wcsrtombs_s";
+ case 0x0643: return "wcsspn";
+ case 0x0644: return "wcsstr";
+ case 0x0645: return "wcstod";
+ case 0x0646: return "wcstok";
+ case 0x0647: return "wcstok_s";
+ case 0x0648: return "wcstol";
+ case 0x0649: return "wcstombs";
+ case 0x064a: return "wcstombs_s";
+ case 0x064b: return "wcstoul";
+ case 0x064c: return "wcsxfrm";
+ case 0x064d: return "wctob";
+ case 0x064e: return "wctomb";
+ case 0x064f: return "wctomb_s";
+ case 0x0650: return "wmemcpy_s";
+ case 0x0651: return "wmemmove_s";
+ case 0x0652: return "wprintf";
+ case 0x0653: return "wprintf_s";
+ case 0x0654: return "wscanf";
+ case 0x0655: return "wscanf_s";
}
return nullptr;
}
-}
}
-#endif
+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcr110_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcr110_dll_lookup.hpp
index 4ed5bc57fda..3f15846288b 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcr110_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcr110_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,1728 +17,1862 @@
#define LIEF_PE_MSVCR110_DLL_LOOKUP_H
#include <cstdint>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
inline const char* msvcr110_dll_lookup(uint32_t i) {
- switch(i) {
- case 0x014b: return "$I10_OUTPUT";
- case 0x0001: return "??0?$_SpinWait@$00@details@Concurrency@@QAE@P6AXXZ@Z";
- case 0x0002: return "??0?$_SpinWait@$0A@@details@Concurrency@@QAE@P6AXXZ@Z";
- case 0x0003: return "??0SchedulerPolicy@Concurrency@@QAA@IZZ";
- case 0x0004: return "??0SchedulerPolicy@Concurrency@@QAE@ABV01@@Z";
- case 0x0005: return "??0SchedulerPolicy@Concurrency@@QAE@XZ";
- case 0x0006: return "??0_CancellationTokenState@details@Concurrency@@AAE@XZ";
- case 0x0007: return "??0_Cancellation_beacon@details@Concurrency@@QAE@XZ";
- case 0x0008: return "??0_Condition_variable@details@Concurrency@@QAE@XZ";
- case 0x0009: return "??0_Context@details@Concurrency@@QAE@PAVContext@2@@Z";
- case 0x000a: return "??0_Interruption_exception@details@Concurrency@@QAE@PBD@Z";
- case 0x000b: return "??0_Interruption_exception@details@Concurrency@@QAE@XZ";
- case 0x000c: return "??0_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ";
- case 0x000d: return "??0_NonReentrantPPLLock@details@Concurrency@@QAE@XZ";
- case 0x000e: return "??0_ReaderWriterLock@details@Concurrency@@QAE@XZ";
- case 0x000f: return "??0_ReentrantBlockingLock@details@Concurrency@@QAE@XZ";
- case 0x0010: return "??0_ReentrantLock@details@Concurrency@@QAE@XZ";
- case 0x0011: return "??0_ReentrantPPLLock@details@Concurrency@@QAE@XZ";
- case 0x0012: return "??0_Scheduler@details@Concurrency@@QAE@PAVScheduler@2@@Z";
- case 0x0013: return "??0_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@AAV123@@Z";
- case 0x0014: return "??0_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@AAV123@@Z";
- case 0x0015: return "??0_SpinLock@details@Concurrency@@QAE@ACJ@Z";
- case 0x0016: return "??0_StructuredTaskCollection@details@Concurrency@@QAE@PAV_CancellationTokenState@12@@Z";
- case 0x0017: return "??0_TaskCollection@details@Concurrency@@QAE@PAV_CancellationTokenState@12@@Z";
- case 0x0018: return "??0_TaskCollection@details@Concurrency@@QAE@XZ";
- case 0x0019: return "??0_Timer@details@Concurrency@@IAE@I_N@Z";
- case 0x001a: return "??0__non_rtti_object@std@@QAE@ABV01@@Z";
- case 0x001b: return "??0__non_rtti_object@std@@QAE@PBD@Z";
- case 0x001c: return "??0bad_cast@std@@AAE@PBQBD@Z";
- case 0x001d: return "??0bad_cast@std@@QAE@ABV01@@Z";
- case 0x001e: return "??0bad_cast@std@@QAE@PBD@Z";
- case 0x001f: return "??0bad_target@Concurrency@@QAE@PBD@Z";
- case 0x0020: return "??0bad_target@Concurrency@@QAE@XZ";
- case 0x0021: return "??0bad_typeid@std@@QAE@ABV01@@Z";
- case 0x0022: return "??0bad_typeid@std@@QAE@PBD@Z";
- case 0x0023: return "??0context_self_unblock@Concurrency@@QAE@PBD@Z";
- case 0x0024: return "??0context_self_unblock@Concurrency@@QAE@XZ";
- case 0x0025: return "??0context_unblock_unbalanced@Concurrency@@QAE@PBD@Z";
- case 0x0026: return "??0context_unblock_unbalanced@Concurrency@@QAE@XZ";
- case 0x0027: return "??0critical_section@Concurrency@@QAE@XZ";
- case 0x0028: return "??0default_scheduler_exists@Concurrency@@QAE@PBD@Z";
- case 0x0029: return "??0default_scheduler_exists@Concurrency@@QAE@XZ";
- case 0x002a: return "??0event@Concurrency@@QAE@XZ";
- case 0x002b: return "??0exception@std@@QAE@ABQBD@Z";
- case 0x002c: return "??0exception@std@@QAE@ABQBDH@Z";
- case 0x002d: return "??0exception@std@@QAE@ABV01@@Z";
- case 0x002e: return "??0exception@std@@QAE@XZ";
- case 0x002f: return "??0improper_lock@Concurrency@@QAE@PBD@Z";
- case 0x0030: return "??0improper_lock@Concurrency@@QAE@XZ";
- case 0x0031: return "??0improper_scheduler_attach@Concurrency@@QAE@PBD@Z";
- case 0x0032: return "??0improper_scheduler_attach@Concurrency@@QAE@XZ";
- case 0x0033: return "??0improper_scheduler_detach@Concurrency@@QAE@PBD@Z";
- case 0x0034: return "??0improper_scheduler_detach@Concurrency@@QAE@XZ";
- case 0x0035: return "??0improper_scheduler_reference@Concurrency@@QAE@PBD@Z";
- case 0x0036: return "??0improper_scheduler_reference@Concurrency@@QAE@XZ";
- case 0x0037: return "??0invalid_link_target@Concurrency@@QAE@PBD@Z";
- case 0x0038: return "??0invalid_link_target@Concurrency@@QAE@XZ";
- case 0x0039: return "??0invalid_multiple_scheduling@Concurrency@@QAE@PBD@Z";
- case 0x003a: return "??0invalid_multiple_scheduling@Concurrency@@QAE@XZ";
- case 0x003b: return "??0invalid_operation@Concurrency@@QAE@PBD@Z";
- case 0x003c: return "??0invalid_operation@Concurrency@@QAE@XZ";
- case 0x003d: return "??0invalid_oversubscribe_operation@Concurrency@@QAE@PBD@Z";
- case 0x003e: return "??0invalid_oversubscribe_operation@Concurrency@@QAE@XZ";
- case 0x003f: return "??0invalid_scheduler_policy_key@Concurrency@@QAE@PBD@Z";
- case 0x0040: return "??0invalid_scheduler_policy_key@Concurrency@@QAE@XZ";
- case 0x0041: return "??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@PBD@Z";
- case 0x0042: return "??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@XZ";
- case 0x0043: return "??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z";
- case 0x0044: return "??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ";
- case 0x0045: return "??0message_not_found@Concurrency@@QAE@PBD@Z";
- case 0x0046: return "??0message_not_found@Concurrency@@QAE@XZ";
- case 0x0047: return "??0missing_wait@Concurrency@@QAE@PBD@Z";
- case 0x0048: return "??0missing_wait@Concurrency@@QAE@XZ";
- case 0x0049: return "??0nested_scheduler_missing_detach@Concurrency@@QAE@PBD@Z";
- case 0x004a: return "??0nested_scheduler_missing_detach@Concurrency@@QAE@XZ";
- case 0x004b: return "??0operation_timed_out@Concurrency@@QAE@PBD@Z";
- case 0x004c: return "??0operation_timed_out@Concurrency@@QAE@XZ";
- case 0x004d: return "??0reader_writer_lock@Concurrency@@QAE@XZ";
- case 0x004e: return "??0scheduler_not_attached@Concurrency@@QAE@PBD@Z";
- case 0x004f: return "??0scheduler_not_attached@Concurrency@@QAE@XZ";
- case 0x0050: return "??0scheduler_resource_allocation_error@Concurrency@@QAE@J@Z";
- case 0x0051: return "??0scheduler_resource_allocation_error@Concurrency@@QAE@PBDJ@Z";
- case 0x0052: return "??0scheduler_worker_creation_error@Concurrency@@QAE@J@Z";
- case 0x0053: return "??0scheduler_worker_creation_error@Concurrency@@QAE@PBDJ@Z";
- case 0x0054: return "??0scoped_lock@critical_section@Concurrency@@QAE@AAV12@@Z";
- case 0x0055: return "??0scoped_lock@reader_writer_lock@Concurrency@@QAE@AAV12@@Z";
- case 0x0056: return "??0scoped_lock_read@reader_writer_lock@Concurrency@@QAE@AAV12@@Z";
- case 0x0057: return "??0task_canceled@Concurrency@@QAE@PBD@Z";
- case 0x0058: return "??0task_canceled@Concurrency@@QAE@XZ";
- case 0x0059: return "??0unsupported_os@Concurrency@@QAE@PBD@Z";
- case 0x005a: return "??0unsupported_os@Concurrency@@QAE@XZ";
- case 0x005b: return "??1SchedulerPolicy@Concurrency@@QAE@XZ";
- case 0x005c: return "??1_CancellationTokenState@details@Concurrency@@UAE@XZ";
- case 0x005d: return "??1_Cancellation_beacon@details@Concurrency@@QAE@XZ";
- case 0x005e: return "??1_Condition_variable@details@Concurrency@@QAE@XZ";
- case 0x005f: return "??1_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ";
- case 0x0060: return "??1_ReentrantBlockingLock@details@Concurrency@@QAE@XZ";
- case 0x0061: return "??1_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@XZ";
- case 0x0062: return "??1_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@XZ";
- case 0x0063: return "??1_SpinLock@details@Concurrency@@QAE@XZ";
- case 0x0064: return "??1_TaskCollection@details@Concurrency@@QAE@XZ";
- case 0x0065: return "??1_Timer@details@Concurrency@@MAE@XZ";
- case 0x0066: return "??1__non_rtti_object@std@@UAE@XZ";
- case 0x0067: return "??1bad_cast@std@@UAE@XZ";
- case 0x0068: return "??1bad_typeid@std@@UAE@XZ";
- case 0x0069: return "??1critical_section@Concurrency@@QAE@XZ";
- case 0x006a: return "??1event@Concurrency@@QAE@XZ";
- case 0x006b: return "??1exception@std@@UAE@XZ";
- case 0x006c: return "??1reader_writer_lock@Concurrency@@QAE@XZ";
- case 0x006d: return "??1scoped_lock@critical_section@Concurrency@@QAE@XZ";
- case 0x006e: return "??1scoped_lock@reader_writer_lock@Concurrency@@QAE@XZ";
- case 0x006f: return "??1scoped_lock_read@reader_writer_lock@Concurrency@@QAE@XZ";
- case 0x0070: return "??1type_info@@UAE@XZ";
- case 0x0071: return "??2@YAPAXI@Z";
- case 0x0072: return "??2@YAPAXIHPBDH@Z";
- case 0x0073: return "??3@YAXPAX@Z";
- case 0x0074: return "??3@YAXPAXHPBDH@Z";
- case 0x0075: return "??4?$_SpinWait@$00@details@Concurrency@@QAEAAV012@ABV012@@Z";
- case 0x0076: return "??4?$_SpinWait@$0A@@details@Concurrency@@QAEAAV012@ABV012@@Z";
- case 0x0077: return "??4SchedulerPolicy@Concurrency@@QAEAAV01@ABV01@@Z";
- case 0x0078: return "??4__non_rtti_object@std@@QAEAAV01@ABV01@@Z";
- case 0x0079: return "??4bad_cast@std@@QAEAAV01@ABV01@@Z";
- case 0x007a: return "??4bad_typeid@std@@QAEAAV01@ABV01@@Z";
- case 0x007b: return "??4exception@std@@QAEAAV01@ABV01@@Z";
- case 0x007c: return "??8type_info@@QBE_NABV0@@Z";
- case 0x007d: return "??9type_info@@QBE_NABV0@@Z";
- case 0x007e: return "??_7__non_rtti_object@std@@6B@";
- case 0x007f: return "??_7bad_cast@std@@6B@";
- case 0x0080: return "??_7bad_typeid@std@@6B@";
- case 0x0081: return "??_7exception@std@@6B@";
- case 0x0082: return "??_F?$_SpinWait@$00@details@Concurrency@@QAEXXZ";
- case 0x0083: return "??_F?$_SpinWait@$0A@@details@Concurrency@@QAEXXZ";
- case 0x0084: return "??_F_Context@details@Concurrency@@QAEXXZ";
- case 0x0085: return "??_F_Scheduler@details@Concurrency@@QAEXXZ";
- case 0x0086: return "??_Fbad_cast@std@@QAEXXZ";
- case 0x0087: return "??_Fbad_typeid@std@@QAEXXZ";
- case 0x0088: return "??_U@YAPAXI@Z";
- case 0x0089: return "??_U@YAPAXIHPBDH@Z";
- case 0x008a: return "??_V@YAXPAX@Z";
- case 0x008b: return "??_V@YAXPAXHPBDH@Z";
- case 0x008c: return "?Alloc@Concurrency@@YAPAXI@Z";
- case 0x008d: return "?Block@Context@Concurrency@@SAXXZ";
- case 0x008e: return "?Create@CurrentScheduler@Concurrency@@SAXABVSchedulerPolicy@2@@Z";
- case 0x008f: return "?Create@Scheduler@Concurrency@@SAPAV12@ABVSchedulerPolicy@2@@Z";
- case 0x0090: return "?CreateResourceManager@Concurrency@@YAPAUIResourceManager@1@XZ";
- case 0x0091: return "?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPAVScheduleGroup@2@AAVlocation@2@@Z";
- case 0x0092: return "?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPAVScheduleGroup@2@XZ";
- case 0x0093: return "?CurrentContext@Context@Concurrency@@SAPAV12@XZ";
- case 0x0094: return "?Detach@CurrentScheduler@Concurrency@@SAXXZ";
- case 0x0095: return "?DisableTracing@Concurrency@@YAJXZ";
- case 0x0096: return "?EnableTracing@Concurrency@@YAJXZ";
- case 0x0097: return "?Free@Concurrency@@YAXPAX@Z";
- case 0x0098: return "?Get@CurrentScheduler@Concurrency@@SAPAVScheduler@2@XZ";
- case 0x0099: return "?GetExecutionContextId@Concurrency@@YAIXZ";
- case 0x009a: return "?GetNumberOfVirtualProcessors@CurrentScheduler@Concurrency@@SAIXZ";
- case 0x009b: return "?GetOSVersion@Concurrency@@YA?AW4OSVersion@IResourceManager@1@XZ";
- case 0x009c: return "?GetPolicy@CurrentScheduler@Concurrency@@SA?AVSchedulerPolicy@2@XZ";
- case 0x009d: return "?GetPolicyValue@SchedulerPolicy@Concurrency@@QBEIW4PolicyElementKey@2@@Z";
- case 0x009e: return "?GetProcessorCount@Concurrency@@YAIXZ";
- case 0x009f: return "?GetProcessorNodeCount@Concurrency@@YAIXZ";
- case 0x00a0: return "?GetSchedulerId@Concurrency@@YAIXZ";
- case 0x00a1: return "?GetSharedTimerQueue@details@Concurrency@@YAPAXXZ";
- case 0x00a2: return "?Id@Context@Concurrency@@SAIXZ";
- case 0x00a3: return "?Id@CurrentScheduler@Concurrency@@SAIXZ";
- case 0x00a4: return "?IsAvailableLocation@CurrentScheduler@Concurrency@@SA_NABVlocation@2@@Z";
- case 0x00a5: return "?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ";
- case 0x00a6: return "?Log2@details@Concurrency@@YAKI@Z";
- case 0x00a7: return "?Oversubscribe@Context@Concurrency@@SAX_N@Z";
- case 0x00a8: return "?RegisterShutdownEvent@CurrentScheduler@Concurrency@@SAXPAX@Z";
- case 0x00a9: return "?ResetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXXZ";
- case 0x00aa: return "?ScheduleGroupId@Context@Concurrency@@SAIXZ";
- case 0x00ab: return "?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0@Z";
- case 0x00ac: return "?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0AAVlocation@2@@Z";
- case 0x00ad: return "?SetConcurrencyLimits@SchedulerPolicy@Concurrency@@QAEXII@Z";
- case 0x00ae: return "?SetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXABVSchedulerPolicy@2@@Z";
- case 0x00af: return "?SetPolicyValue@SchedulerPolicy@Concurrency@@QAEIW4PolicyElementKey@2@I@Z";
- case 0x00b0: return "?VirtualProcessorId@Context@Concurrency@@SAIXZ";
- case 0x00b1: return "?Yield@Context@Concurrency@@SAXXZ";
- case 0x00b2: return "?_Abort@_StructuredTaskCollection@details@Concurrency@@AAEXXZ";
- case 0x00b3: return "?_Acquire@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ";
- case 0x00b4: return "?_Acquire@_NonReentrantPPLLock@details@Concurrency@@QAEXPAX@Z";
- case 0x00b5: return "?_Acquire@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ";
- case 0x00b6: return "?_Acquire@_ReentrantLock@details@Concurrency@@QAEXXZ";
- case 0x00b7: return "?_Acquire@_ReentrantPPLLock@details@Concurrency@@QAEXPAX@Z";
- case 0x00b8: return "?_AcquireRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
- case 0x00b9: return "?_AcquireWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
- case 0x00ba: return "?_Cancel@_CancellationTokenState@details@Concurrency@@QAEXXZ";
- case 0x00bb: return "?_Cancel@_StructuredTaskCollection@details@Concurrency@@QAEXXZ";
- case 0x00bc: return "?_Cancel@_TaskCollection@details@Concurrency@@QAEXXZ";
- case 0x00bd: return "?_CheckTaskCollection@_UnrealizedChore@details@Concurrency@@IAEXXZ";
- case 0x00be: return "?_CleanupToken@_StructuredTaskCollection@details@Concurrency@@AAEXXZ";
- case 0x00bf: return "?_ConcRT_CoreAssert@details@Concurrency@@YAXPBD0H@Z";
- case 0x00c0: return "?_ConcRT_Trace@details@Concurrency@@YAXHPB_WZZ";
- case 0x00c1: return "?_Confirm_cancel@_Cancellation_beacon@details@Concurrency@@QAE_NXZ";
- case 0x00c2: return "?_Copy_str@exception@std@@AAEXPBD@Z";
- case 0x00c3: return "?_CurrentContext@_Context@details@Concurrency@@SA?AV123@XZ";
- case 0x00c4: return "?_Current_node@location@Concurrency@@SA?AV12@XZ";
- case 0x00c5: return "?_DeregisterCallback@_CancellationTokenState@details@Concurrency@@QAEXPAV_CancellationTokenRegistration@23@@Z";
- case 0x00c6: return "?_Destroy@_AsyncTaskCollection@details@Concurrency@@EAEXXZ";
- case 0x00c7: return "?_Destroy@_CancellationTokenState@details@Concurrency@@EAEXXZ";
- case 0x00c8: return "?_DoYield@?$_SpinWait@$00@details@Concurrency@@IAEXXZ";
- case 0x00c9: return "?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ";
- case 0x00ca: return "?_Get@_CurrentScheduler@details@Concurrency@@SA?AV_Scheduler@23@XZ";
- case 0x00cb: return "?_GetConcRTTraceInfo@Concurrency@@YAPBU_CONCRT_TRACE_INFO@details@1@XZ";
- case 0x00cc: return "?_GetConcurrency@details@Concurrency@@YAIXZ";
- case 0x00cd: return "?_GetCurrentInlineDepth@_StackGuard@details@Concurrency@@CAAAIXZ";
- case 0x00ce: return "?_GetNumberOfVirtualProcessors@_CurrentScheduler@details@Concurrency@@SAIXZ";
- case 0x00cf: return "?_GetScheduler@_Scheduler@details@Concurrency@@QAEPAVScheduler@3@XZ";
- case 0x00d0: return "?_Id@_CurrentScheduler@details@Concurrency@@SAIXZ";
- case 0x00d1: return "?_Invoke@_CancellationTokenRegistration@details@Concurrency@@AAEXXZ";
- case 0x00d2: return "?_IsCanceling@_StructuredTaskCollection@details@Concurrency@@QAE_NXZ";
- case 0x00d3: return "?_IsCanceling@_TaskCollection@details@Concurrency@@QAE_NXZ";
- case 0x00d4: return "?_IsSynchronouslyBlocked@_Context@details@Concurrency@@QBE_NXZ";
- case 0x00d5: return "?_Name_base@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z";
- case 0x00d6: return "?_Name_base_internal@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z";
- case 0x00d7: return "?_NewCollection@_AsyncTaskCollection@details@Concurrency@@SAPAV123@PAV_CancellationTokenState@23@@Z";
- case 0x00d8: return "?_NewTokenState@_CancellationTokenState@details@Concurrency@@SAPAV123@XZ";
- case 0x00d9: return "?_NumberOfSpins@?$_SpinWait@$00@details@Concurrency@@IAEKXZ";
- case 0x00da: return "?_NumberOfSpins@?$_SpinWait@$0A@@details@Concurrency@@IAEKXZ";
- case 0x00db: return "?_Oversubscribe@_Context@details@Concurrency@@SAX_N@Z";
- case 0x00dc: return "?_Reference@_Scheduler@details@Concurrency@@QAEIXZ";
- case 0x00dd: return "?_RegisterCallback@_CancellationTokenState@details@Concurrency@@QAEPAV_CancellationTokenRegistration@23@P6AXPAX@Z0H@Z";
- case 0x00de: return "?_RegisterCallback@_CancellationTokenState@details@Concurrency@@QAEXPAV_CancellationTokenRegistration@23@@Z";
- case 0x00df: return "?_Release@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ";
- case 0x00e0: return "?_Release@_NonReentrantPPLLock@details@Concurrency@@QAEXXZ";
- case 0x00e1: return "?_Release@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ";
- case 0x00e2: return "?_Release@_ReentrantLock@details@Concurrency@@QAEXXZ";
- case 0x00e3: return "?_Release@_ReentrantPPLLock@details@Concurrency@@QAEXXZ";
- case 0x00e4: return "?_Release@_Scheduler@details@Concurrency@@QAEIXZ";
- case 0x00e5: return "?_ReleaseRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
- case 0x00e6: return "?_ReleaseWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
- case 0x00e7: return "?_ReportUnobservedException@details@Concurrency@@YAXXZ";
- case 0x00e8: return "?_Reset@?$_SpinWait@$00@details@Concurrency@@IAEXXZ";
- case 0x00e9: return "?_Reset@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ";
- case 0x00ea: return "?_RunAndWait@_StructuredTaskCollection@details@Concurrency@@QAG?AW4_TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z";
- case 0x00eb: return "?_RunAndWait@_TaskCollection@details@Concurrency@@QAG?AW4_TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z";
- case 0x00ec: return "?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@@Z";
- case 0x00ed: return "?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@PAVlocation@3@@Z";
- case 0x00ee: return "?_Schedule@_TaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@@Z";
- case 0x00ef: return "?_Schedule@_TaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@PAVlocation@3@@Z";
- case 0x00f0: return "?_ScheduleTask@_CurrentScheduler@details@Concurrency@@SAXP6AXPAX@Z0@Z";
- case 0x00f1: return "?_SetSpinCount@?$_SpinWait@$00@details@Concurrency@@QAEXI@Z";
- case 0x00f2: return "?_SetSpinCount@?$_SpinWait@$0A@@details@Concurrency@@QAEXI@Z";
- case 0x00f3: return "?_SetUnobservedExceptionHandler@details@Concurrency@@YAXP6AXXZ@Z";
- case 0x00f4: return "?_ShouldSpinAgain@?$_SpinWait@$00@details@Concurrency@@IAE_NXZ";
- case 0x00f5: return "?_ShouldSpinAgain@?$_SpinWait@$0A@@details@Concurrency@@IAE_NXZ";
- case 0x00f6: return "?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QAE_NXZ";
- case 0x00f7: return "?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAE_NXZ";
- case 0x00f8: return "?_SpinYield@Context@Concurrency@@SAXXZ";
- case 0x00f9: return "?_Start@_Timer@details@Concurrency@@IAEXXZ";
- case 0x00fa: return "?_Stop@_Timer@details@Concurrency@@IAEXXZ";
- case 0x00fb: return "?_Tidy@exception@std@@AAEXXZ";
- case 0x00fc: return "?_Trace_agents@Concurrency@@YAXW4Agents_EventType@1@_JZZ";
- case 0x00fd: return "?_Trace_ppl_function@Concurrency@@YAXABU_GUID@@EW4ConcRT_EventType@1@@Z";
- case 0x00fe: return "?_TryAcquire@_NonReentrantBlockingLock@details@Concurrency@@QAE_NXZ";
- case 0x00ff: return "?_TryAcquire@_ReentrantBlockingLock@details@Concurrency@@QAE_NXZ";
- case 0x0100: return "?_TryAcquire@_ReentrantLock@details@Concurrency@@QAE_NXZ";
- case 0x0101: return "?_TryAcquireWrite@_ReaderWriterLock@details@Concurrency@@QAE_NXZ";
- case 0x0102: return "?_Type_info_dtor@type_info@@CAXPAV1@@Z";
- case 0x0103: return "?_Type_info_dtor_internal@type_info@@CAXPAV1@@Z";
- case 0x0104: return "?_UnderlyingYield@details@Concurrency@@YAXXZ";
- case 0x0105: return "?_ValidateExecute@@YAHP6GHXZ@Z";
- case 0x0106: return "?_ValidateRead@@YAHPBXI@Z";
- case 0x0107: return "?_ValidateWrite@@YAHPAXI@Z";
- case 0x0108: return "?_Value@_SpinCount@details@Concurrency@@SAIXZ";
- case 0x0109: return "?_Yield@_Context@details@Concurrency@@SAXXZ";
- case 0x010a: return "?__ExceptionPtrAssign@@YAXPAXPBX@Z";
- case 0x010b: return "?__ExceptionPtrCompare@@YA_NPBX0@Z";
- case 0x010c: return "?__ExceptionPtrCopy@@YAXPAXPBX@Z";
- case 0x010d: return "?__ExceptionPtrCopyException@@YAXPAXPBX1@Z";
- case 0x010e: return "?__ExceptionPtrCreate@@YAXPAX@Z";
- case 0x010f: return "?__ExceptionPtrCurrentException@@YAXPAX@Z";
- case 0x0110: return "?__ExceptionPtrDestroy@@YAXPAX@Z";
- case 0x0111: return "?__ExceptionPtrRethrow@@YAXPBX@Z";
- case 0x0112: return "?__ExceptionPtrSwap@@YAXPAX0@Z";
- case 0x0113: return "?__ExceptionPtrToBool@@YA_NPBX@Z";
- case 0x0115: return "?_inconsistency@@YAXXZ";
- case 0x0116: return "?_invalid_parameter@@YAXPBG00II@Z";
- case 0x0117: return "?_is_exception_typeof@@YAHABVtype_info@@PAU_EXCEPTION_POINTERS@@@Z";
- case 0x0118: return "?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z";
- case 0x0119: return "?_open@@YAHPBDHH@Z";
- case 0x011a: return "?_query_new_handler@@YAP6AHI@ZXZ";
- case 0x011b: return "?_query_new_mode@@YAHXZ";
- case 0x011c: return "?_set_new_handler@@YAP6AHI@ZH@Z";
- case 0x011d: return "?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z";
- case 0x011e: return "?_set_new_mode@@YAHH@Z";
- case 0x011f: return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZH@Z";
- case 0x0120: return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z";
- case 0x0121: return "?_sopen@@YAHPBDHHH@Z";
- case 0x0122: return "?_type_info_dtor_internal_method@type_info@@QAEXXZ";
- case 0x0123: return "?_wopen@@YAHPB_WHH@Z";
- case 0x0124: return "?_wsopen@@YAHPB_WHHH@Z";
- case 0x0125: return "?before@type_info@@QBE_NABV1@@Z";
- case 0x0126: return "?current@location@Concurrency@@SA?AV12@XZ";
- case 0x0127: return "?from_numa_node@location@Concurrency@@SA?AV12@G@Z";
- case 0x0128: return "?get_error_code@scheduler_resource_allocation_error@Concurrency@@QBEJXZ";
- case 0x0129: return "?lock@critical_section@Concurrency@@QAEXXZ";
- case 0x012a: return "?lock@reader_writer_lock@Concurrency@@QAEXXZ";
- case 0x012b: return "?lock_read@reader_writer_lock@Concurrency@@QAEXXZ";
- case 0x012c: return "?name@type_info@@QBEPBDPAU__type_info_node@@@Z";
- case 0x012d: return "?native_handle@critical_section@Concurrency@@QAEAAV12@XZ";
- case 0x012e: return "?notify_all@_Condition_variable@details@Concurrency@@QAEXXZ";
- case 0x012f: return "?notify_one@_Condition_variable@details@Concurrency@@QAEXXZ";
- case 0x0130: return "?raw_name@type_info@@QBEPBDXZ";
- case 0x0131: return "?reset@event@Concurrency@@QAEXXZ";
- case 0x0132: return "?set@event@Concurrency@@QAEXXZ";
- case 0x0133: return "?set_new_handler@@YAP6AXXZP6AXXZ@Z";
- case 0x0134: return "?set_task_execution_resources@Concurrency@@YAXGPAU_GROUP_AFFINITY@@@Z";
- case 0x0135: return "?set_task_execution_resources@Concurrency@@YAXK@Z";
- case 0x0136: return "?set_terminate@@YAP6AXXZH@Z";
- case 0x0137: return "?set_terminate@@YAP6AXXZP6AXXZ@Z";
- case 0x0138: return "?set_unexpected@@YAP6AXXZH@Z";
- case 0x0139: return "?set_unexpected@@YAP6AXXZP6AXXZ@Z";
- case 0x013a: return "?swprintf@@YAHPAGIPBGZZ";
- case 0x013b: return "?swprintf@@YAHPA_WIPB_WZZ";
- case 0x013c: return "?terminate@@YAXXZ";
- case 0x013d: return "?try_lock@critical_section@Concurrency@@QAE_NXZ";
- case 0x013e: return "?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ";
- case 0x013f: return "?try_lock_for@critical_section@Concurrency@@QAE_NI@Z";
- case 0x0140: return "?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ";
- case 0x0141: return "?unexpected@@YAXXZ";
- case 0x0142: return "?unlock@critical_section@Concurrency@@QAEXXZ";
- case 0x0143: return "?unlock@reader_writer_lock@Concurrency@@QAEXXZ";
- case 0x0144: return "?vswprintf@@YAHPA_WIPB_WPAD@Z";
- case 0x0145: return "?wait@Concurrency@@YAXI@Z";
- case 0x0146: return "?wait@_Condition_variable@details@Concurrency@@QAEXAAVcritical_section@3@@Z";
- case 0x0147: return "?wait@event@Concurrency@@QAEII@Z";
- case 0x0148: return "?wait_for@_Condition_variable@details@Concurrency@@QAE_NAAVcritical_section@3@I@Z";
- case 0x0149: return "?wait_for_multiple@event@Concurrency@@SAIPAPAV12@I_NI@Z";
- case 0x014a: return "?what@exception@std@@UBEPBDXZ";
- case 0x014c: return "_CIacos";
- case 0x014d: return "_CIasin";
- case 0x014e: return "_CIatan";
- case 0x014f: return "_CIatan2";
- case 0x0150: return "_CIcos";
- case 0x0151: return "_CIcosh";
- case 0x0152: return "_CIexp";
- case 0x0153: return "_CIfmod";
- case 0x0154: return "_CIlog";
- case 0x0155: return "_CIlog10";
- case 0x0156: return "_CIpow";
- case 0x0157: return "_CIsin";
- case 0x0158: return "_CIsinh";
- case 0x0159: return "_CIsqrt";
- case 0x015a: return "_CItan";
- case 0x015b: return "_CItanh";
- case 0x015c: return "_CRT_RTC_INIT";
- case 0x015d: return "_CRT_RTC_INITW";
- case 0x015e: return "_CreateFrameInfo";
- case 0x015f: return "_CxxThrowException";
- case 0x0160: return "_EH_prolog";
- case 0x0161: return "_FindAndUnlinkFrame";
- case 0x0162: return "_Getdays";
- case 0x0163: return "_Getmonths";
- case 0x0164: return "_Gettnames";
- case 0x0165: return "_HUGE";
- case 0x0166: return "_IsExceptionObjectToBeDestroyed";
- case 0x0167: return "_Lock_shared_ptr_spin_lock";
- case 0x0168: return "_NLG_Dispatch2";
- case 0x0169: return "_NLG_Return";
- case 0x016a: return "_NLG_Return2";
- case 0x016b: return "_Strftime";
- case 0x016c: return "_Unlock_shared_ptr_spin_lock";
- case 0x016d: return "_W_Getdays";
- case 0x016e: return "_W_Getmonths";
- case 0x016f: return "_W_Gettnames";
- case 0x0170: return "_Wcsftime";
- case 0x0171: return "_XcptFilter";
- case 0x0172: return "__AdjustPointer";
- case 0x0173: return "__BuildCatchObject";
- case 0x0174: return "__BuildCatchObjectHelper";
- case 0x0175: return "__CppXcptFilter";
- case 0x0176: return "__CxxDetectRethrow";
- case 0x0177: return "__CxxExceptionFilter";
- case 0x0178: return "__CxxFrameHandler";
- case 0x0179: return "__CxxFrameHandler2";
- case 0x017a: return "__CxxFrameHandler3";
- case 0x017b: return "__CxxLongjmpUnwind";
- case 0x017c: return "__CxxQueryExceptionSize";
- case 0x017d: return "__CxxRegisterExceptionObject";
- case 0x017e: return "__CxxUnregisterExceptionObject";
- case 0x017f: return "__DestructExceptionObject";
- case 0x0180: return "__FrameUnwindFilter";
- case 0x0181: return "__RTCastToVoid";
- case 0x0182: return "__RTDynamicCast";
- case 0x0183: return "__RTtypeid";
- case 0x0184: return "__STRINGTOLD";
- case 0x0185: return "__STRINGTOLD_L";
- case 0x0186: return "__TypeMatch";
- case 0x0197: return "___crtCreateSemaphoreExW@24";
- case 0x0187: return "___lc_codepage_func";
- case 0x0188: return "___lc_collate_cp_func";
- case 0x0189: return "___lc_locale_name_func";
- case 0x018a: return "___mb_cur_max_func";
- case 0x018b: return "___mb_cur_max_l_func";
- case 0x018c: return "___setlc_active_func";
- case 0x018d: return "___unguarded_readlc_active_add_func";
- case 0x018e: return "__argc";
- case 0x018f: return "__argv";
- case 0x0190: return "__badioinfo";
- case 0x0191: return "__clean_type_info_names_internal";
- case 0x0192: return "__control87_2";
- case 0x0193: return "__create_locale";
- case 0x0194: return "__crtCompareStringA";
- case 0x0195: return "__crtCompareStringEx";
- case 0x0196: return "__crtCompareStringW";
- case 0x0198: return "__crtCreateSymbolicLinkW";
- case 0x0199: return "__crtEnumSystemLocalesEx";
- case 0x019a: return "__crtFlsAlloc";
- case 0x019b: return "__crtFlsFree";
- case 0x019c: return "__crtFlsGetValue";
- case 0x019d: return "__crtFlsSetValue";
- case 0x019e: return "__crtGetDateFormatEx";
- case 0x019f: return "__crtGetLocaleInfoEx";
- case 0x01a0: return "__crtGetShowWindowMode";
- case 0x01a1: return "__crtGetTimeFormatEx";
- case 0x01a2: return "__crtGetUserDefaultLocaleName";
- case 0x01a3: return "__crtInitializeCriticalSectionEx";
- case 0x01a4: return "__crtIsPackagedApp";
- case 0x01a5: return "__crtIsValidLocaleName";
- case 0x01a6: return "__crtLCMapStringA";
- case 0x01a7: return "__crtLCMapStringEx";
- case 0x01a8: return "__crtLCMapStringW";
- case 0x01a9: return "__crtSetThreadStackGuarantee";
- case 0x01aa: return "__crtSetUnhandledExceptionFilter";
- case 0x01ab: return "__crtTerminateProcess";
- case 0x01ac: return "__crtUnhandledException";
- case 0x01ad: return "__daylight";
- case 0x01ae: return "__dllonexit";
- case 0x01af: return "__doserrno";
- case 0x01b0: return "__dstbias";
- case 0x01b1: return "__fpecode";
- case 0x01b2: return "__free_locale";
- case 0x01b3: return "__get_current_locale";
- case 0x01b4: return "__get_flsindex";
- case 0x01b5: return "__get_tlsindex";
- case 0x01b6: return "__getmainargs";
- case 0x01b7: return "__initenv";
- case 0x01b8: return "__iob_func";
- case 0x01b9: return "__isascii";
- case 0x01ba: return "__iscsym";
- case 0x01bb: return "__iscsymf";
- case 0x01bc: return "__iswcsym";
- case 0x01bd: return "__iswcsymf";
- case 0x01be: return "__lconv";
- case 0x01bf: return "__lconv_init";
- case 0x01c0: return "__libm_sse2_acos";
- case 0x01c1: return "__libm_sse2_acosf";
- case 0x01c2: return "__libm_sse2_asin";
- case 0x01c3: return "__libm_sse2_asinf";
- case 0x01c4: return "__libm_sse2_atan";
- case 0x01c5: return "__libm_sse2_atan2";
- case 0x01c6: return "__libm_sse2_atanf";
- case 0x01c7: return "__libm_sse2_cos";
- case 0x01c8: return "__libm_sse2_cosf";
- case 0x01c9: return "__libm_sse2_exp";
- case 0x01ca: return "__libm_sse2_expf";
- case 0x01cb: return "__libm_sse2_log";
- case 0x01cc: return "__libm_sse2_log10";
- case 0x01cd: return "__libm_sse2_log10f";
- case 0x01ce: return "__libm_sse2_logf";
- case 0x01cf: return "__libm_sse2_pow";
- case 0x01d0: return "__libm_sse2_powf";
- case 0x01d1: return "__libm_sse2_sin";
- case 0x01d2: return "__libm_sse2_sinf";
- case 0x01d3: return "__libm_sse2_tan";
- case 0x01d4: return "__libm_sse2_tanf";
- case 0x01d5: return "__mb_cur_max";
- case 0x01d6: return "__p___argc";
- case 0x01d7: return "__p___argv";
- case 0x01d8: return "__p___initenv";
- case 0x01d9: return "__p___mb_cur_max";
- case 0x01da: return "__p___wargv";
- case 0x01db: return "__p___winitenv";
- case 0x01dc: return "__p__acmdln";
- case 0x01dd: return "__p__commode";
- case 0x01de: return "__p__daylight";
- case 0x01df: return "__p__dstbias";
- case 0x01e0: return "__p__environ";
- case 0x01e1: return "__p__fmode";
- case 0x01e2: return "__p__iob";
- case 0x01e3: return "__p__mbcasemap";
- case 0x01e4: return "__p__mbctype";
- case 0x01e5: return "__p__pctype";
- case 0x01e6: return "__p__pgmptr";
- case 0x01e7: return "__p__pwctype";
- case 0x01e8: return "__p__timezone";
- case 0x01e9: return "__p__tzname";
- case 0x01ea: return "__p__wcmdln";
- case 0x01eb: return "__p__wenviron";
- case 0x01ec: return "__p__wpgmptr";
- case 0x01ed: return "__pctype_func";
- case 0x01ee: return "__pioinfo";
- case 0x01ef: return "__pwctype_func";
- case 0x01f0: return "__pxcptinfoptrs";
- case 0x01f1: return "__report_gsfailure";
- case 0x01f2: return "__set_app_type";
- case 0x01f3: return "__setlc_active";
- case 0x01f4: return "__setusermatherr";
- case 0x01f5: return "__strncnt";
- case 0x01f6: return "__swprintf_l";
- case 0x01f7: return "__sys_errlist";
- case 0x01f8: return "__sys_nerr";
- case 0x01f9: return "__threadhandle";
- case 0x01fa: return "__threadid";
- case 0x01fb: return "__timezone";
- case 0x01fc: return "__toascii";
- case 0x01fd: return "__tzname";
- case 0x01fe: return "__unDName";
- case 0x01ff: return "__unDNameEx";
- case 0x0200: return "__unDNameHelper";
- case 0x0114: return "__uncaught_exception";
- case 0x0201: return "__unguarded_readlc_active";
- case 0x0202: return "__vswprintf_l";
- case 0x0203: return "__wargv";
- case 0x0204: return "__wcserror";
- case 0x0205: return "__wcserror_s";
- case 0x0206: return "__wcsncnt";
- case 0x0207: return "__wgetmainargs";
- case 0x0208: return "__winitenv";
- case 0x0209: return "_abnormal_termination";
- case 0x020a: return "_abs64";
- case 0x020b: return "_access";
- case 0x020c: return "_access_s";
- case 0x020d: return "_acmdln";
- case 0x020e: return "_aligned_free";
- case 0x020f: return "_aligned_malloc";
- case 0x0210: return "_aligned_msize";
- case 0x0211: return "_aligned_offset_malloc";
- case 0x0212: return "_aligned_offset_realloc";
- case 0x0213: return "_aligned_offset_recalloc";
- case 0x0214: return "_aligned_realloc";
- case 0x0215: return "_aligned_recalloc";
- case 0x0216: return "_amsg_exit";
- case 0x0217: return "_assert";
- case 0x0218: return "_atodbl";
- case 0x0219: return "_atodbl_l";
- case 0x021a: return "_atof_l";
- case 0x021b: return "_atoflt";
- case 0x021c: return "_atoflt_l";
- case 0x021d: return "_atoi64";
- case 0x021e: return "_atoi64_l";
- case 0x021f: return "_atoi_l";
- case 0x0220: return "_atol_l";
- case 0x0221: return "_atoldbl";
- case 0x0222: return "_atoldbl_l";
- case 0x0223: return "_beep";
- case 0x0224: return "_beginthread";
- case 0x0225: return "_beginthreadex";
- case 0x0226: return "_byteswap_uint64";
- case 0x0227: return "_byteswap_ulong";
- case 0x0228: return "_byteswap_ushort";
- case 0x0229: return "_c_exit";
- case 0x022a: return "_cabs";
- case 0x022b: return "_callnewh";
- case 0x022c: return "_calloc_crt";
- case 0x022d: return "_cexit";
- case 0x022e: return "_cgets";
- case 0x022f: return "_cgets_s";
- case 0x0230: return "_cgetws";
- case 0x0231: return "_cgetws_s";
- case 0x0232: return "_chdir";
- case 0x0233: return "_chdrive";
- case 0x0234: return "_chgsign";
- case 0x0235: return "_chkesp";
- case 0x0236: return "_chmod";
- case 0x0237: return "_chsize";
- case 0x0238: return "_chsize_s";
- case 0x0239: return "_clearfp";
- case 0x023a: return "_close";
- case 0x023b: return "_commit";
- case 0x023c: return "_commode";
- case 0x023d: return "_configthreadlocale";
- case 0x023e: return "_control87";
- case 0x023f: return "_controlfp";
- case 0x0240: return "_controlfp_s";
- case 0x0241: return "_copysign";
- case 0x0242: return "_cprintf";
- case 0x0243: return "_cprintf_l";
- case 0x0244: return "_cprintf_p";
- case 0x0245: return "_cprintf_p_l";
- case 0x0246: return "_cprintf_s";
- case 0x0247: return "_cprintf_s_l";
- case 0x0248: return "_cputs";
- case 0x0249: return "_cputws";
- case 0x024a: return "_creat";
- case 0x024b: return "_create_locale";
- case 0x024c: return "_crt_debugger_hook";
- case 0x024d: return "_cscanf";
- case 0x024e: return "_cscanf_l";
- case 0x024f: return "_cscanf_s";
- case 0x0250: return "_cscanf_s_l";
- case 0x0251: return "_ctime32";
- case 0x0252: return "_ctime32_s";
- case 0x0253: return "_ctime64";
- case 0x0254: return "_ctime64_s";
- case 0x0255: return "_cwait";
- case 0x0256: return "_cwprintf";
- case 0x0257: return "_cwprintf_l";
- case 0x0258: return "_cwprintf_p";
- case 0x0259: return "_cwprintf_p_l";
- case 0x025a: return "_cwprintf_s";
- case 0x025b: return "_cwprintf_s_l";
- case 0x025c: return "_cwscanf";
- case 0x025d: return "_cwscanf_l";
- case 0x025e: return "_cwscanf_s";
- case 0x025f: return "_cwscanf_s_l";
- case 0x0260: return "_daylight";
- case 0x0261: return "_difftime32";
- case 0x0262: return "_difftime64";
- case 0x0263: return "_dosmaperr";
- case 0x0264: return "_dstbias";
- case 0x0265: return "_dup";
- case 0x0266: return "_dup2";
- case 0x0267: return "_dupenv_s";
- case 0x0268: return "_ecvt";
- case 0x0269: return "_ecvt_s";
- case 0x026a: return "_endthread";
- case 0x026b: return "_endthreadex";
- case 0x026c: return "_environ";
- case 0x026d: return "_eof";
- case 0x026e: return "_errno";
- case 0x026f: return "_except_handler2";
- case 0x0270: return "_except_handler3";
- case 0x0271: return "_except_handler4_common";
- case 0x0272: return "_execl";
- case 0x0273: return "_execle";
- case 0x0274: return "_execlp";
- case 0x0275: return "_execlpe";
- case 0x0276: return "_execv";
- case 0x0277: return "_execve";
- case 0x0278: return "_execvp";
- case 0x0279: return "_execvpe";
- case 0x027a: return "_exit";
- case 0x027b: return "_expand";
- case 0x027c: return "_fclose_nolock";
- case 0x027d: return "_fcloseall";
- case 0x027e: return "_fcvt";
- case 0x027f: return "_fcvt_s";
- case 0x0280: return "_fdopen";
- case 0x0281: return "_fflush_nolock";
- case 0x0282: return "_fgetchar";
- case 0x0283: return "_fgetwc_nolock";
- case 0x0284: return "_fgetwchar";
- case 0x0285: return "_filbuf";
- case 0x0286: return "_filelength";
- case 0x0287: return "_filelengthi64";
- case 0x0288: return "_fileno";
- case 0x0289: return "_findclose";
- case 0x028a: return "_findfirst32";
- case 0x028b: return "_findfirst32i64";
- case 0x028c: return "_findfirst64";
- case 0x028d: return "_findfirst64i32";
- case 0x028e: return "_findnext32";
- case 0x028f: return "_findnext32i64";
- case 0x0290: return "_findnext64";
- case 0x0291: return "_findnext64i32";
- case 0x0292: return "_finite";
- case 0x0293: return "_flsbuf";
- case 0x0294: return "_flushall";
- case 0x0295: return "_fmode";
- case 0x0296: return "_fpclass";
- case 0x0297: return "_fpieee_flt";
- case 0x0298: return "_fpreset";
- case 0x0299: return "_fprintf_l";
- case 0x029a: return "_fprintf_p";
- case 0x029b: return "_fprintf_p_l";
- case 0x029c: return "_fprintf_s_l";
- case 0x029d: return "_fputchar";
- case 0x029e: return "_fputwc_nolock";
- case 0x029f: return "_fputwchar";
- case 0x02a0: return "_fread_nolock";
- case 0x02a1: return "_fread_nolock_s";
- case 0x02a2: return "_free_locale";
- case 0x02a3: return "_freea";
- case 0x02a4: return "_freea_s";
- case 0x02a5: return "_freefls";
- case 0x02a6: return "_fscanf_l";
- case 0x02a7: return "_fscanf_s_l";
- case 0x02a8: return "_fseek_nolock";
- case 0x02a9: return "_fseeki64";
- case 0x02aa: return "_fseeki64_nolock";
- case 0x02ab: return "_fsopen";
- case 0x02ac: return "_fstat32";
- case 0x02ad: return "_fstat32i64";
- case 0x02ae: return "_fstat64";
- case 0x02af: return "_fstat64i32";
- case 0x02b0: return "_ftell_nolock";
- case 0x02b1: return "_ftelli64";
- case 0x02b2: return "_ftelli64_nolock";
- case 0x02b3: return "_ftime32";
- case 0x02b4: return "_ftime32_s";
- case 0x02b5: return "_ftime64";
- case 0x02b6: return "_ftime64_s";
- case 0x02b7: return "_ftol";
- case 0x02b8: return "_fullpath";
- case 0x02b9: return "_futime32";
- case 0x02ba: return "_futime64";
- case 0x02bb: return "_fwprintf_l";
- case 0x02bc: return "_fwprintf_p";
- case 0x02bd: return "_fwprintf_p_l";
- case 0x02be: return "_fwprintf_s_l";
- case 0x02bf: return "_fwrite_nolock";
- case 0x02c0: return "_fwscanf_l";
- case 0x02c1: return "_fwscanf_s_l";
- case 0x02c2: return "_gcvt";
- case 0x02c3: return "_gcvt_s";
- case 0x02c4: return "_get_current_locale";
- case 0x02c5: return "_get_daylight";
- case 0x02c6: return "_get_doserrno";
- case 0x02c7: return "_get_dstbias";
- case 0x02c8: return "_get_errno";
- case 0x02c9: return "_get_fmode";
- case 0x02ca: return "_get_heap_handle";
- case 0x02cb: return "_get_invalid_parameter_handler";
- case 0x02cc: return "_get_osfhandle";
- case 0x02cd: return "_get_output_format";
- case 0x02ce: return "_get_pgmptr";
- case 0x02cf: return "_get_printf_count_output";
- case 0x02d0: return "_get_purecall_handler";
- case 0x02d1: return "_get_terminate";
- case 0x02d2: return "_get_timezone";
- case 0x02d3: return "_get_tzname";
- case 0x02d4: return "_get_unexpected";
- case 0x02d5: return "_get_wpgmptr";
- case 0x02d6: return "_getc_nolock";
- case 0x02d7: return "_getch";
- case 0x02d8: return "_getch_nolock";
- case 0x02d9: return "_getche";
- case 0x02da: return "_getche_nolock";
- case 0x02db: return "_getcwd";
- case 0x02dc: return "_getdcwd";
- case 0x02dd: return "_getdiskfree";
- case 0x02de: return "_getdllprocaddr";
- case 0x02df: return "_getdrive";
- case 0x02e0: return "_getdrives";
- case 0x02e1: return "_getmaxstdio";
- case 0x02e2: return "_getmbcp";
- case 0x02e3: return "_getpid";
- case 0x02e4: return "_getptd";
- case 0x02e5: return "_getsystime";
- case 0x02e6: return "_getw";
- case 0x02e7: return "_getwch";
- case 0x02e8: return "_getwch_nolock";
- case 0x02e9: return "_getwche";
- case 0x02ea: return "_getwche_nolock";
- case 0x02eb: return "_getws";
- case 0x02ec: return "_getws_s";
- case 0x02ed: return "_global_unwind2";
- case 0x02ee: return "_gmtime32";
- case 0x02ef: return "_gmtime32_s";
- case 0x02f0: return "_gmtime64";
- case 0x02f1: return "_gmtime64_s";
- case 0x02f2: return "_heapadd";
- case 0x02f3: return "_heapchk";
- case 0x02f4: return "_heapmin";
- case 0x02f5: return "_heapset";
- case 0x02f6: return "_heapused";
- case 0x02f7: return "_heapwalk";
- case 0x02f8: return "_hypot";
- case 0x02f9: return "_hypotf";
- case 0x02fa: return "_i64toa";
- case 0x02fb: return "_i64toa_s";
- case 0x02fc: return "_i64tow";
- case 0x02fd: return "_i64tow_s";
- case 0x02fe: return "_initptd";
- case 0x02ff: return "_initterm";
- case 0x0300: return "_initterm_e";
- case 0x0301: return "_inp";
- case 0x0302: return "_inpd";
- case 0x0303: return "_inpw";
- case 0x0304: return "_invalid_parameter";
- case 0x0305: return "_invalid_parameter_noinfo";
- case 0x0306: return "_invalid_parameter_noinfo_noreturn";
- case 0x0307: return "_invoke_watson";
- case 0x0308: return "_iob";
- case 0x0309: return "_isalnum_l";
- case 0x030a: return "_isalpha_l";
- case 0x030b: return "_isatty";
- case 0x030c: return "_iscntrl_l";
- case 0x030d: return "_isctype";
- case 0x030e: return "_isctype_l";
- case 0x030f: return "_isdigit_l";
- case 0x0310: return "_isgraph_l";
- case 0x0311: return "_isleadbyte_l";
- case 0x0312: return "_islower_l";
- case 0x0313: return "_ismbbalnum";
- case 0x0314: return "_ismbbalnum_l";
- case 0x0315: return "_ismbbalpha";
- case 0x0316: return "_ismbbalpha_l";
- case 0x0317: return "_ismbbgraph";
- case 0x0318: return "_ismbbgraph_l";
- case 0x0319: return "_ismbbkalnum";
- case 0x031a: return "_ismbbkalnum_l";
- case 0x031b: return "_ismbbkana";
- case 0x031c: return "_ismbbkana_l";
- case 0x031d: return "_ismbbkprint";
- case 0x031e: return "_ismbbkprint_l";
- case 0x031f: return "_ismbbkpunct";
- case 0x0320: return "_ismbbkpunct_l";
- case 0x0321: return "_ismbblead";
- case 0x0322: return "_ismbblead_l";
- case 0x0323: return "_ismbbprint";
- case 0x0324: return "_ismbbprint_l";
- case 0x0325: return "_ismbbpunct";
- case 0x0326: return "_ismbbpunct_l";
- case 0x0327: return "_ismbbtrail";
- case 0x0328: return "_ismbbtrail_l";
- case 0x0329: return "_ismbcalnum";
- case 0x032a: return "_ismbcalnum_l";
- case 0x032b: return "_ismbcalpha";
- case 0x032c: return "_ismbcalpha_l";
- case 0x032d: return "_ismbcdigit";
- case 0x032e: return "_ismbcdigit_l";
- case 0x032f: return "_ismbcgraph";
- case 0x0330: return "_ismbcgraph_l";
- case 0x0331: return "_ismbchira";
- case 0x0332: return "_ismbchira_l";
- case 0x0333: return "_ismbckata";
- case 0x0334: return "_ismbckata_l";
- case 0x0335: return "_ismbcl0";
- case 0x0336: return "_ismbcl0_l";
- case 0x0337: return "_ismbcl1";
- case 0x0338: return "_ismbcl1_l";
- case 0x0339: return "_ismbcl2";
- case 0x033a: return "_ismbcl2_l";
- case 0x033b: return "_ismbclegal";
- case 0x033c: return "_ismbclegal_l";
- case 0x033d: return "_ismbclower";
- case 0x033e: return "_ismbclower_l";
- case 0x033f: return "_ismbcprint";
- case 0x0340: return "_ismbcprint_l";
- case 0x0341: return "_ismbcpunct";
- case 0x0342: return "_ismbcpunct_l";
- case 0x0343: return "_ismbcspace";
- case 0x0344: return "_ismbcspace_l";
- case 0x0345: return "_ismbcsymbol";
- case 0x0346: return "_ismbcsymbol_l";
- case 0x0347: return "_ismbcupper";
- case 0x0348: return "_ismbcupper_l";
- case 0x0349: return "_ismbslead";
- case 0x034a: return "_ismbslead_l";
- case 0x034b: return "_ismbstrail";
- case 0x034c: return "_ismbstrail_l";
- case 0x034d: return "_isnan";
- case 0x034e: return "_isprint_l";
- case 0x034f: return "_ispunct_l";
- case 0x0350: return "_isspace_l";
- case 0x0351: return "_isupper_l";
- case 0x0352: return "_iswalnum_l";
- case 0x0353: return "_iswalpha_l";
- case 0x0354: return "_iswcntrl_l";
- case 0x0355: return "_iswcsym_l";
- case 0x0356: return "_iswcsymf_l";
- case 0x0357: return "_iswctype_l";
- case 0x0358: return "_iswdigit_l";
- case 0x0359: return "_iswgraph_l";
- case 0x035a: return "_iswlower_l";
- case 0x035b: return "_iswprint_l";
- case 0x035c: return "_iswpunct_l";
- case 0x035d: return "_iswspace_l";
- case 0x035e: return "_iswupper_l";
- case 0x035f: return "_iswxdigit_l";
- case 0x0360: return "_isxdigit_l";
- case 0x0361: return "_itoa";
- case 0x0362: return "_itoa_s";
- case 0x0363: return "_itow";
- case 0x0364: return "_itow_s";
- case 0x0365: return "_j0";
- case 0x0366: return "_j1";
- case 0x0367: return "_jn";
- case 0x0368: return "_kbhit";
- case 0x0369: return "_lfind";
- case 0x036a: return "_lfind_s";
- case 0x036b: return "_libm_sse2_acos_precise";
- case 0x036c: return "_libm_sse2_asin_precise";
- case 0x036d: return "_libm_sse2_atan_precise";
- case 0x036e: return "_libm_sse2_cos_precise";
- case 0x036f: return "_libm_sse2_exp_precise";
- case 0x0370: return "_libm_sse2_log10_precise";
- case 0x0371: return "_libm_sse2_log_precise";
- case 0x0372: return "_libm_sse2_pow_precise";
- case 0x0373: return "_libm_sse2_sin_precise";
- case 0x0374: return "_libm_sse2_sqrt_precise";
- case 0x0375: return "_libm_sse2_tan_precise";
- case 0x0376: return "_loaddll";
- case 0x0377: return "_local_unwind2";
- case 0x0378: return "_local_unwind4";
- case 0x0379: return "_localtime32";
- case 0x037a: return "_localtime32_s";
- case 0x037b: return "_localtime64";
- case 0x037c: return "_localtime64_s";
- case 0x037d: return "_lock";
- case 0x037e: return "_lock_file";
- case 0x037f: return "_locking";
- case 0x0380: return "_logb";
- case 0x0381: return "_longjmpex";
- case 0x0382: return "_lrotl";
- case 0x0383: return "_lrotr";
- case 0x0384: return "_lsearch";
- case 0x0385: return "_lsearch_s";
- case 0x0386: return "_lseek";
- case 0x0387: return "_lseeki64";
- case 0x0388: return "_ltoa";
- case 0x0389: return "_ltoa_s";
- case 0x038a: return "_ltow";
- case 0x038b: return "_ltow_s";
- case 0x038c: return "_makepath";
- case 0x038d: return "_makepath_s";
- case 0x038e: return "_malloc_crt";
- case 0x038f: return "_mbbtombc";
- case 0x0390: return "_mbbtombc_l";
- case 0x0391: return "_mbbtype";
- case 0x0392: return "_mbbtype_l";
- case 0x0393: return "_mbcasemap";
- case 0x0394: return "_mbccpy";
- case 0x0395: return "_mbccpy_l";
- case 0x0396: return "_mbccpy_s";
- case 0x0397: return "_mbccpy_s_l";
- case 0x0398: return "_mbcjistojms";
- case 0x0399: return "_mbcjistojms_l";
- case 0x039a: return "_mbcjmstojis";
- case 0x039b: return "_mbcjmstojis_l";
- case 0x039c: return "_mbclen";
- case 0x039d: return "_mbclen_l";
- case 0x039e: return "_mbctohira";
- case 0x039f: return "_mbctohira_l";
- case 0x03a0: return "_mbctokata";
- case 0x03a1: return "_mbctokata_l";
- case 0x03a2: return "_mbctolower";
- case 0x03a3: return "_mbctolower_l";
- case 0x03a4: return "_mbctombb";
- case 0x03a5: return "_mbctombb_l";
- case 0x03a6: return "_mbctoupper";
- case 0x03a7: return "_mbctoupper_l";
- case 0x03a8: return "_mbctype";
- case 0x03a9: return "_mblen_l";
- case 0x03aa: return "_mbsbtype";
- case 0x03ab: return "_mbsbtype_l";
- case 0x03ac: return "_mbscat_s";
- case 0x03ad: return "_mbscat_s_l";
- case 0x03ae: return "_mbschr";
- case 0x03af: return "_mbschr_l";
- case 0x03b0: return "_mbscmp";
- case 0x03b1: return "_mbscmp_l";
- case 0x03b2: return "_mbscoll";
- case 0x03b3: return "_mbscoll_l";
- case 0x03b4: return "_mbscpy_s";
- case 0x03b5: return "_mbscpy_s_l";
- case 0x03b6: return "_mbscspn";
- case 0x03b7: return "_mbscspn_l";
- case 0x03b8: return "_mbsdec";
- case 0x03b9: return "_mbsdec_l";
- case 0x03ba: return "_mbsicmp";
- case 0x03bb: return "_mbsicmp_l";
- case 0x03bc: return "_mbsicoll";
- case 0x03bd: return "_mbsicoll_l";
- case 0x03be: return "_mbsinc";
- case 0x03bf: return "_mbsinc_l";
- case 0x03c0: return "_mbslen";
- case 0x03c1: return "_mbslen_l";
- case 0x03c2: return "_mbslwr";
- case 0x03c3: return "_mbslwr_l";
- case 0x03c4: return "_mbslwr_s";
- case 0x03c5: return "_mbslwr_s_l";
- case 0x03c6: return "_mbsnbcat";
- case 0x03c7: return "_mbsnbcat_l";
- case 0x03c8: return "_mbsnbcat_s";
- case 0x03c9: return "_mbsnbcat_s_l";
- case 0x03ca: return "_mbsnbcmp";
- case 0x03cb: return "_mbsnbcmp_l";
- case 0x03cc: return "_mbsnbcnt";
- case 0x03cd: return "_mbsnbcnt_l";
- case 0x03ce: return "_mbsnbcoll";
- case 0x03cf: return "_mbsnbcoll_l";
- case 0x03d0: return "_mbsnbcpy";
- case 0x03d1: return "_mbsnbcpy_l";
- case 0x03d2: return "_mbsnbcpy_s";
- case 0x03d3: return "_mbsnbcpy_s_l";
- case 0x03d4: return "_mbsnbicmp";
- case 0x03d5: return "_mbsnbicmp_l";
- case 0x03d6: return "_mbsnbicoll";
- case 0x03d7: return "_mbsnbicoll_l";
- case 0x03d8: return "_mbsnbset";
- case 0x03d9: return "_mbsnbset_l";
- case 0x03da: return "_mbsnbset_s";
- case 0x03db: return "_mbsnbset_s_l";
- case 0x03dc: return "_mbsncat";
- case 0x03dd: return "_mbsncat_l";
- case 0x03de: return "_mbsncat_s";
- case 0x03df: return "_mbsncat_s_l";
- case 0x03e0: return "_mbsnccnt";
- case 0x03e1: return "_mbsnccnt_l";
- case 0x03e2: return "_mbsncmp";
- case 0x03e3: return "_mbsncmp_l";
- case 0x03e4: return "_mbsncoll";
- case 0x03e5: return "_mbsncoll_l";
- case 0x03e6: return "_mbsncpy";
- case 0x03e7: return "_mbsncpy_l";
- case 0x03e8: return "_mbsncpy_s";
- case 0x03e9: return "_mbsncpy_s_l";
- case 0x03ea: return "_mbsnextc";
- case 0x03eb: return "_mbsnextc_l";
- case 0x03ec: return "_mbsnicmp";
- case 0x03ed: return "_mbsnicmp_l";
- case 0x03ee: return "_mbsnicoll";
- case 0x03ef: return "_mbsnicoll_l";
- case 0x03f0: return "_mbsninc";
- case 0x03f1: return "_mbsninc_l";
- case 0x03f2: return "_mbsnlen";
- case 0x03f3: return "_mbsnlen_l";
- case 0x03f4: return "_mbsnset";
- case 0x03f5: return "_mbsnset_l";
- case 0x03f6: return "_mbsnset_s";
- case 0x03f7: return "_mbsnset_s_l";
- case 0x03f8: return "_mbspbrk";
- case 0x03f9: return "_mbspbrk_l";
- case 0x03fa: return "_mbsrchr";
- case 0x03fb: return "_mbsrchr_l";
- case 0x03fc: return "_mbsrev";
- case 0x03fd: return "_mbsrev_l";
- case 0x03fe: return "_mbsset";
- case 0x03ff: return "_mbsset_l";
- case 0x0400: return "_mbsset_s";
- case 0x0401: return "_mbsset_s_l";
- case 0x0402: return "_mbsspn";
- case 0x0403: return "_mbsspn_l";
- case 0x0404: return "_mbsspnp";
- case 0x0405: return "_mbsspnp_l";
- case 0x0406: return "_mbsstr";
- case 0x0407: return "_mbsstr_l";
- case 0x0408: return "_mbstok";
- case 0x0409: return "_mbstok_l";
- case 0x040a: return "_mbstok_s";
- case 0x040b: return "_mbstok_s_l";
- case 0x040c: return "_mbstowcs_l";
- case 0x040d: return "_mbstowcs_s_l";
- case 0x040e: return "_mbstrlen";
- case 0x040f: return "_mbstrlen_l";
- case 0x0410: return "_mbstrnlen";
- case 0x0411: return "_mbstrnlen_l";
- case 0x0412: return "_mbsupr";
- case 0x0413: return "_mbsupr_l";
- case 0x0414: return "_mbsupr_s";
- case 0x0415: return "_mbsupr_s_l";
- case 0x0416: return "_mbtowc_l";
- case 0x0417: return "_memccpy";
- case 0x0418: return "_memicmp";
- case 0x0419: return "_memicmp_l";
- case 0x041a: return "_mkdir";
- case 0x041b: return "_mkgmtime32";
- case 0x041c: return "_mkgmtime64";
- case 0x041d: return "_mktemp";
- case 0x041e: return "_mktemp_s";
- case 0x041f: return "_mktime32";
- case 0x0420: return "_mktime64";
- case 0x0421: return "_msize";
- case 0x0422: return "_nextafter";
- case 0x0423: return "_onexit";
- case 0x0424: return "_open";
- case 0x0425: return "_open_osfhandle";
- case 0x0426: return "_outp";
- case 0x0427: return "_outpd";
- case 0x0428: return "_outpw";
- case 0x0429: return "_pclose";
- case 0x042a: return "_pctype";
- case 0x042b: return "_pgmptr";
- case 0x042c: return "_pipe";
- case 0x042d: return "_popen";
- case 0x042e: return "_printf_l";
- case 0x042f: return "_printf_p";
- case 0x0430: return "_printf_p_l";
- case 0x0431: return "_printf_s_l";
- case 0x0432: return "_purecall";
- case 0x0433: return "_putch";
- case 0x0434: return "_putch_nolock";
- case 0x0435: return "_putenv";
- case 0x0436: return "_putenv_s";
- case 0x0437: return "_putw";
- case 0x0438: return "_putwch";
- case 0x0439: return "_putwch_nolock";
- case 0x043a: return "_putws";
- case 0x043b: return "_pwctype";
- case 0x043c: return "_read";
- case 0x043d: return "_realloc_crt";
- case 0x043e: return "_recalloc";
- case 0x043f: return "_recalloc_crt";
- case 0x0440: return "_resetstkoflw";
- case 0x0441: return "_rmdir";
- case 0x0442: return "_rmtmp";
- case 0x0443: return "_rotl";
- case 0x0444: return "_rotl64";
- case 0x0445: return "_rotr";
- case 0x0446: return "_rotr64";
- case 0x0447: return "_scalb";
- case 0x0448: return "_scanf_l";
- case 0x0449: return "_scanf_s_l";
- case 0x044a: return "_scprintf";
- case 0x044b: return "_scprintf_l";
- case 0x044c: return "_scprintf_p";
- case 0x044d: return "_scprintf_p_l";
- case 0x044e: return "_scwprintf";
- case 0x044f: return "_scwprintf_l";
- case 0x0450: return "_scwprintf_p";
- case 0x0451: return "_scwprintf_p_l";
- case 0x0452: return "_searchenv";
- case 0x0453: return "_searchenv_s";
- case 0x0455: return "_seh_longjmp_unwind";
- case 0x0454: return "_seh_longjmp_unwind4";
- case 0x0456: return "_set_SSE2_enable";
- case 0x0457: return "_set_abort_behavior";
- case 0x0458: return "_set_controlfp";
- case 0x0459: return "_set_doserrno";
- case 0x045a: return "_set_errno";
- case 0x045b: return "_set_error_mode";
- case 0x045c: return "_set_fmode";
- case 0x045d: return "_set_invalid_parameter_handler";
- case 0x045e: return "_set_malloc_crt_max_wait";
- case 0x045f: return "_set_output_format";
- case 0x0460: return "_set_printf_count_output";
- case 0x0461: return "_set_purecall_handler";
- case 0x0462: return "_seterrormode";
- case 0x0463: return "_setjmp";
- case 0x0464: return "_setjmp3";
- case 0x0465: return "_setmaxstdio";
- case 0x0466: return "_setmbcp";
- case 0x0467: return "_setmode";
- case 0x0468: return "_setsystime";
- case 0x0469: return "_sleep";
- case 0x046a: return "_snprintf";
- case 0x046b: return "_snprintf_c";
- case 0x046c: return "_snprintf_c_l";
- case 0x046d: return "_snprintf_l";
- case 0x046e: return "_snprintf_s";
- case 0x046f: return "_snprintf_s_l";
- case 0x0470: return "_snscanf";
- case 0x0471: return "_snscanf_l";
- case 0x0472: return "_snscanf_s";
- case 0x0473: return "_snscanf_s_l";
- case 0x0474: return "_snwprintf";
- case 0x0475: return "_snwprintf_l";
- case 0x0476: return "_snwprintf_s";
- case 0x0477: return "_snwprintf_s_l";
- case 0x0478: return "_snwscanf";
- case 0x0479: return "_snwscanf_l";
- case 0x047a: return "_snwscanf_s";
- case 0x047b: return "_snwscanf_s_l";
- case 0x047c: return "_sopen";
- case 0x047d: return "_sopen_s";
- case 0x047e: return "_spawnl";
- case 0x047f: return "_spawnle";
- case 0x0480: return "_spawnlp";
- case 0x0481: return "_spawnlpe";
- case 0x0482: return "_spawnv";
- case 0x0483: return "_spawnve";
- case 0x0484: return "_spawnvp";
- case 0x0485: return "_spawnvpe";
- case 0x0486: return "_splitpath";
- case 0x0487: return "_splitpath_s";
- case 0x0488: return "_sprintf_l";
- case 0x0489: return "_sprintf_p";
- case 0x048a: return "_sprintf_p_l";
- case 0x048b: return "_sprintf_s_l";
- case 0x048c: return "_sscanf_l";
- case 0x048d: return "_sscanf_s_l";
- case 0x048e: return "_stat32";
- case 0x048f: return "_stat32i64";
- case 0x0490: return "_stat64";
- case 0x0491: return "_stat64i32";
- case 0x0492: return "_statusfp";
- case 0x0493: return "_statusfp2";
- case 0x0494: return "_strcoll_l";
- case 0x0495: return "_strdate";
- case 0x0496: return "_strdate_s";
- case 0x0497: return "_strdup";
- case 0x0498: return "_strerror";
- case 0x0499: return "_strerror_s";
- case 0x049a: return "_strftime_l";
- case 0x049b: return "_stricmp";
- case 0x049c: return "_stricmp_l";
- case 0x049d: return "_stricoll";
- case 0x049e: return "_stricoll_l";
- case 0x049f: return "_strlwr";
- case 0x04a0: return "_strlwr_l";
- case 0x04a1: return "_strlwr_s";
- case 0x04a2: return "_strlwr_s_l";
- case 0x04a3: return "_strncoll";
- case 0x04a4: return "_strncoll_l";
- case 0x04a5: return "_strnicmp";
- case 0x04a6: return "_strnicmp_l";
- case 0x04a7: return "_strnicoll";
- case 0x04a8: return "_strnicoll_l";
- case 0x04a9: return "_strnset";
- case 0x04aa: return "_strnset_s";
- case 0x04ab: return "_strrev";
- case 0x04ac: return "_strset";
- case 0x04ad: return "_strset_s";
- case 0x04ae: return "_strtime";
- case 0x04af: return "_strtime_s";
- case 0x04b0: return "_strtod_l";
- case 0x04b1: return "_strtoi64";
- case 0x04b2: return "_strtoi64_l";
- case 0x04b3: return "_strtol_l";
- case 0x04b4: return "_strtoui64";
- case 0x04b5: return "_strtoui64_l";
- case 0x04b6: return "_strtoul_l";
- case 0x04b7: return "_strupr";
- case 0x04b8: return "_strupr_l";
- case 0x04b9: return "_strupr_s";
- case 0x04ba: return "_strupr_s_l";
- case 0x04bb: return "_strxfrm_l";
- case 0x04bc: return "_swab";
- case 0x04bd: return "_swprintf";
- case 0x04be: return "_swprintf_c";
- case 0x04bf: return "_swprintf_c_l";
- case 0x04c0: return "_swprintf_p";
- case 0x04c1: return "_swprintf_p_l";
- case 0x04c2: return "_swprintf_s_l";
- case 0x04c3: return "_swscanf_l";
- case 0x04c4: return "_swscanf_s_l";
- case 0x04c5: return "_sys_errlist";
- case 0x04c6: return "_sys_nerr";
- case 0x04c7: return "_tell";
- case 0x04c8: return "_telli64";
- case 0x04c9: return "_tempnam";
- case 0x04ca: return "_time32";
- case 0x04cb: return "_time64";
- case 0x04cc: return "_timezone";
- case 0x04cd: return "_tolower";
- case 0x04ce: return "_tolower_l";
- case 0x04cf: return "_toupper";
- case 0x04d0: return "_toupper_l";
- case 0x04d1: return "_towlower_l";
- case 0x04d2: return "_towupper_l";
- case 0x04d3: return "_tzname";
- case 0x04d4: return "_tzset";
- case 0x04d5: return "_ui64toa";
- case 0x04d6: return "_ui64toa_s";
- case 0x04d7: return "_ui64tow";
- case 0x04d8: return "_ui64tow_s";
- case 0x04d9: return "_ultoa";
- case 0x04da: return "_ultoa_s";
- case 0x04db: return "_ultow";
- case 0x04dc: return "_ultow_s";
- case 0x04dd: return "_umask";
- case 0x04de: return "_umask_s";
- case 0x04df: return "_ungetc_nolock";
- case 0x04e0: return "_ungetch";
- case 0x04e1: return "_ungetch_nolock";
- case 0x04e2: return "_ungetwc_nolock";
- case 0x04e3: return "_ungetwch";
- case 0x04e4: return "_ungetwch_nolock";
- case 0x04e5: return "_unlink";
- case 0x04e6: return "_unloaddll";
- case 0x04e7: return "_unlock";
- case 0x04e8: return "_unlock_file";
- case 0x04e9: return "_utime32";
- case 0x04ea: return "_utime64";
- case 0x04eb: return "_vcprintf";
- case 0x04ec: return "_vcprintf_l";
- case 0x04ed: return "_vcprintf_p";
- case 0x04ee: return "_vcprintf_p_l";
- case 0x04ef: return "_vcprintf_s";
- case 0x04f0: return "_vcprintf_s_l";
- case 0x04f1: return "_vcwprintf";
- case 0x04f2: return "_vcwprintf_l";
- case 0x04f3: return "_vcwprintf_p";
- case 0x04f4: return "_vcwprintf_p_l";
- case 0x04f5: return "_vcwprintf_s";
- case 0x04f6: return "_vcwprintf_s_l";
- case 0x04f7: return "_vfprintf_l";
- case 0x04f8: return "_vfprintf_p";
- case 0x04f9: return "_vfprintf_p_l";
- case 0x04fa: return "_vfprintf_s_l";
- case 0x04fb: return "_vfwprintf_l";
- case 0x04fc: return "_vfwprintf_p";
- case 0x04fd: return "_vfwprintf_p_l";
- case 0x04fe: return "_vfwprintf_s_l";
- case 0x04ff: return "_vprintf_l";
- case 0x0500: return "_vprintf_p";
- case 0x0501: return "_vprintf_p_l";
- case 0x0502: return "_vprintf_s_l";
- case 0x0503: return "_vscprintf";
- case 0x0504: return "_vscprintf_l";
- case 0x0505: return "_vscprintf_p";
- case 0x0506: return "_vscprintf_p_l";
- case 0x0507: return "_vscwprintf";
- case 0x0508: return "_vscwprintf_l";
- case 0x0509: return "_vscwprintf_p";
- case 0x050a: return "_vscwprintf_p_l";
- case 0x050b: return "_vsnprintf";
- case 0x050c: return "_vsnprintf_c";
- case 0x050d: return "_vsnprintf_c_l";
- case 0x050e: return "_vsnprintf_l";
- case 0x050f: return "_vsnprintf_s";
- case 0x0510: return "_vsnprintf_s_l";
- case 0x0511: return "_vsnwprintf";
- case 0x0512: return "_vsnwprintf_l";
- case 0x0513: return "_vsnwprintf_s";
- case 0x0514: return "_vsnwprintf_s_l";
- case 0x0515: return "_vsprintf_l";
- case 0x0516: return "_vsprintf_p";
- case 0x0517: return "_vsprintf_p_l";
- case 0x0518: return "_vsprintf_s_l";
- case 0x0519: return "_vswprintf";
- case 0x051a: return "_vswprintf_c";
- case 0x051b: return "_vswprintf_c_l";
- case 0x051c: return "_vswprintf_l";
- case 0x051d: return "_vswprintf_p";
- case 0x051e: return "_vswprintf_p_l";
- case 0x051f: return "_vswprintf_s_l";
- case 0x0520: return "_vwprintf_l";
- case 0x0521: return "_vwprintf_p";
- case 0x0522: return "_vwprintf_p_l";
- case 0x0523: return "_vwprintf_s_l";
- case 0x0524: return "_waccess";
- case 0x0525: return "_waccess_s";
- case 0x0526: return "_wasctime";
- case 0x0527: return "_wasctime_s";
- case 0x0528: return "_wassert";
- case 0x0529: return "_wchdir";
- case 0x052a: return "_wchmod";
- case 0x052b: return "_wcmdln";
- case 0x052c: return "_wcreat";
- case 0x052d: return "_wcreate_locale";
- case 0x052e: return "_wcscoll_l";
- case 0x052f: return "_wcsdup";
- case 0x0530: return "_wcserror";
- case 0x0531: return "_wcserror_s";
- case 0x0532: return "_wcsftime_l";
- case 0x0533: return "_wcsicmp";
- case 0x0534: return "_wcsicmp_l";
- case 0x0535: return "_wcsicoll";
- case 0x0536: return "_wcsicoll_l";
- case 0x0537: return "_wcslwr";
- case 0x0538: return "_wcslwr_l";
- case 0x0539: return "_wcslwr_s";
- case 0x053a: return "_wcslwr_s_l";
- case 0x053b: return "_wcsncoll";
- case 0x053c: return "_wcsncoll_l";
- case 0x053d: return "_wcsnicmp";
- case 0x053e: return "_wcsnicmp_l";
- case 0x053f: return "_wcsnicoll";
- case 0x0540: return "_wcsnicoll_l";
- case 0x0541: return "_wcsnset";
- case 0x0542: return "_wcsnset_s";
- case 0x0543: return "_wcsrev";
- case 0x0544: return "_wcsset";
- case 0x0545: return "_wcsset_s";
- case 0x0546: return "_wcstod_l";
- case 0x0547: return "_wcstoi64";
- case 0x0548: return "_wcstoi64_l";
- case 0x0549: return "_wcstol_l";
- case 0x054a: return "_wcstombs_l";
- case 0x054b: return "_wcstombs_s_l";
- case 0x054c: return "_wcstoui64";
- case 0x054d: return "_wcstoui64_l";
- case 0x054e: return "_wcstoul_l";
- case 0x054f: return "_wcsupr";
- case 0x0550: return "_wcsupr_l";
- case 0x0551: return "_wcsupr_s";
- case 0x0552: return "_wcsupr_s_l";
- case 0x0553: return "_wcsxfrm_l";
- case 0x0554: return "_wctime32";
- case 0x0555: return "_wctime32_s";
- case 0x0556: return "_wctime64";
- case 0x0557: return "_wctime64_s";
- case 0x0558: return "_wctomb_l";
- case 0x0559: return "_wctomb_s_l";
- case 0x055a: return "_wctype";
- case 0x055b: return "_wdupenv_s";
- case 0x055c: return "_wenviron";
- case 0x055d: return "_wexecl";
- case 0x055e: return "_wexecle";
- case 0x055f: return "_wexeclp";
- case 0x0560: return "_wexeclpe";
- case 0x0561: return "_wexecv";
- case 0x0562: return "_wexecve";
- case 0x0563: return "_wexecvp";
- case 0x0564: return "_wexecvpe";
- case 0x0565: return "_wfdopen";
- case 0x0566: return "_wfindfirst32";
- case 0x0567: return "_wfindfirst32i64";
- case 0x0568: return "_wfindfirst64";
- case 0x0569: return "_wfindfirst64i32";
- case 0x056a: return "_wfindnext32";
- case 0x056b: return "_wfindnext32i64";
- case 0x056c: return "_wfindnext64";
- case 0x056d: return "_wfindnext64i32";
- case 0x056e: return "_wfopen";
- case 0x056f: return "_wfopen_s";
- case 0x0570: return "_wfreopen";
- case 0x0571: return "_wfreopen_s";
- case 0x0572: return "_wfsopen";
- case 0x0573: return "_wfullpath";
- case 0x0574: return "_wgetcwd";
- case 0x0575: return "_wgetdcwd";
- case 0x0576: return "_wgetenv";
- case 0x0577: return "_wgetenv_s";
- case 0x0578: return "_wmakepath";
- case 0x0579: return "_wmakepath_s";
- case 0x057a: return "_wmkdir";
- case 0x057b: return "_wmktemp";
- case 0x057c: return "_wmktemp_s";
- case 0x057d: return "_wopen";
- case 0x057e: return "_wperror";
- case 0x057f: return "_wpgmptr";
- case 0x0580: return "_wpopen";
- case 0x0581: return "_wprintf_l";
- case 0x0582: return "_wprintf_p";
- case 0x0583: return "_wprintf_p_l";
- case 0x0584: return "_wprintf_s_l";
- case 0x0585: return "_wputenv";
- case 0x0586: return "_wputenv_s";
- case 0x0587: return "_wremove";
- case 0x0588: return "_wrename";
- case 0x0589: return "_write";
- case 0x058a: return "_wrmdir";
- case 0x058b: return "_wscanf_l";
- case 0x058c: return "_wscanf_s_l";
- case 0x058d: return "_wsearchenv";
- case 0x058e: return "_wsearchenv_s";
- case 0x058f: return "_wsetlocale";
- case 0x0590: return "_wsopen";
- case 0x0591: return "_wsopen_s";
- case 0x0592: return "_wspawnl";
- case 0x0593: return "_wspawnle";
- case 0x0594: return "_wspawnlp";
- case 0x0595: return "_wspawnlpe";
- case 0x0596: return "_wspawnv";
- case 0x0597: return "_wspawnve";
- case 0x0598: return "_wspawnvp";
- case 0x0599: return "_wspawnvpe";
- case 0x059a: return "_wsplitpath";
- case 0x059b: return "_wsplitpath_s";
- case 0x059c: return "_wstat32";
- case 0x059d: return "_wstat32i64";
- case 0x059e: return "_wstat64";
- case 0x059f: return "_wstat64i32";
- case 0x05a0: return "_wstrdate";
- case 0x05a1: return "_wstrdate_s";
- case 0x05a2: return "_wstrtime";
- case 0x05a3: return "_wstrtime_s";
- case 0x05a4: return "_wsystem";
- case 0x05a5: return "_wtempnam";
- case 0x05a6: return "_wtmpnam";
- case 0x05a7: return "_wtmpnam_s";
- case 0x05a8: return "_wtof";
- case 0x05a9: return "_wtof_l";
- case 0x05aa: return "_wtoi";
- case 0x05ab: return "_wtoi64";
- case 0x05ac: return "_wtoi64_l";
- case 0x05ad: return "_wtoi_l";
- case 0x05ae: return "_wtol";
- case 0x05af: return "_wtol_l";
- case 0x05b0: return "_wunlink";
- case 0x05b1: return "_wutime32";
- case 0x05b2: return "_wutime64";
- case 0x05b3: return "_y0";
- case 0x05b4: return "_y1";
- case 0x05b5: return "_yn";
- case 0x05b6: return "abort";
- case 0x05b7: return "abs";
- case 0x05b8: return "acos";
- case 0x05b9: return "asctime";
- case 0x05ba: return "asctime_s";
- case 0x05bb: return "asin";
- case 0x05bc: return "atan";
- case 0x05bd: return "atan2";
- case 0x05be: return "atexit";
- case 0x05bf: return "atof";
- case 0x05c0: return "atoi";
- case 0x05c1: return "atol";
- case 0x05c2: return "bsearch";
- case 0x05c3: return "bsearch_s";
- case 0x05c4: return "btowc";
- case 0x05c5: return "calloc";
- case 0x05c6: return "ceil";
- case 0x05c7: return "clearerr";
- case 0x05c8: return "clearerr_s";
- case 0x05c9: return "clock";
- case 0x05ca: return "cos";
- case 0x05cb: return "cosh";
- case 0x05cc: return "div";
- case 0x05cd: return "exit";
- case 0x05ce: return "exp";
- case 0x05cf: return "fabs";
- case 0x05d0: return "fclose";
- case 0x05d1: return "feof";
- case 0x05d2: return "ferror";
- case 0x05d3: return "fflush";
- case 0x05d4: return "fgetc";
- case 0x05d5: return "fgetpos";
- case 0x05d6: return "fgets";
- case 0x05d7: return "fgetwc";
- case 0x05d8: return "fgetws";
- case 0x05d9: return "floor";
- case 0x05da: return "fmod";
- case 0x05db: return "fopen";
- case 0x05dc: return "fopen_s";
- case 0x05dd: return "fprintf";
- case 0x05de: return "fprintf_s";
- case 0x05df: return "fputc";
- case 0x05e0: return "fputs";
- case 0x05e1: return "fputwc";
- case 0x05e2: return "fputws";
- case 0x05e3: return "fread";
- case 0x05e4: return "fread_s";
- case 0x05e5: return "free";
- case 0x05e6: return "freopen";
- case 0x05e7: return "freopen_s";
- case 0x05e8: return "frexp";
- case 0x05e9: return "fscanf";
- case 0x05ea: return "fscanf_s";
- case 0x05eb: return "fseek";
- case 0x05ec: return "fsetpos";
- case 0x05ed: return "ftell";
- case 0x05ee: return "fwprintf";
- case 0x05ef: return "fwprintf_s";
- case 0x05f0: return "fwrite";
- case 0x05f1: return "fwscanf";
- case 0x05f2: return "fwscanf_s";
- case 0x05f3: return "getc";
- case 0x05f4: return "getchar";
- case 0x05f5: return "getenv";
- case 0x05f6: return "getenv_s";
- case 0x05f7: return "gets";
- case 0x05f8: return "gets_s";
- case 0x05f9: return "getwc";
- case 0x05fa: return "getwchar";
- case 0x05fb: return "is_wctype";
- case 0x05fc: return "isalnum";
- case 0x05fd: return "isalpha";
- case 0x05fe: return "iscntrl";
- case 0x05ff: return "isdigit";
- case 0x0600: return "isgraph";
- case 0x0601: return "isleadbyte";
- case 0x0602: return "islower";
- case 0x0603: return "isprint";
- case 0x0604: return "ispunct";
- case 0x0605: return "isspace";
- case 0x0606: return "isupper";
- case 0x0607: return "iswalnum";
- case 0x0608: return "iswalpha";
- case 0x0609: return "iswascii";
- case 0x060a: return "iswcntrl";
- case 0x060b: return "iswctype";
- case 0x060c: return "iswdigit";
- case 0x060d: return "iswgraph";
- case 0x060e: return "iswlower";
- case 0x060f: return "iswprint";
- case 0x0610: return "iswpunct";
- case 0x0611: return "iswspace";
- case 0x0612: return "iswupper";
- case 0x0613: return "iswxdigit";
- case 0x0614: return "isxdigit";
- case 0x0615: return "labs";
- case 0x0616: return "ldexp";
- case 0x0617: return "ldiv";
- case 0x0618: return "llabs";
- case 0x0619: return "lldiv";
- case 0x061a: return "localeconv";
- case 0x061b: return "log";
- case 0x061c: return "log10";
- case 0x061d: return "longjmp";
- case 0x061e: return "malloc";
- case 0x061f: return "mblen";
- case 0x0620: return "mbrlen";
- case 0x0621: return "mbrtowc";
- case 0x0622: return "mbsrtowcs";
- case 0x0623: return "mbsrtowcs_s";
- case 0x0624: return "mbstowcs";
- case 0x0625: return "mbstowcs_s";
- case 0x0626: return "mbtowc";
- case 0x0627: return "memchr";
- case 0x0628: return "memcmp";
- case 0x0629: return "memcpy";
- case 0x062a: return "memcpy_s";
- case 0x062b: return "memmove";
- case 0x062c: return "memmove_s";
- case 0x062d: return "memset";
- case 0x062e: return "modf";
- case 0x062f: return "perror";
- case 0x0630: return "pow";
- case 0x0631: return "printf";
- case 0x0632: return "printf_s";
- case 0x0633: return "putc";
- case 0x0634: return "putchar";
- case 0x0635: return "puts";
- case 0x0636: return "putwc";
- case 0x0637: return "putwchar";
- case 0x0638: return "qsort";
- case 0x0639: return "qsort_s";
- case 0x063a: return "raise";
- case 0x063b: return "rand";
- case 0x063c: return "rand_s";
- case 0x063d: return "realloc";
- case 0x063e: return "remove";
- case 0x063f: return "rename";
- case 0x0640: return "rewind";
- case 0x0641: return "scanf";
- case 0x0642: return "scanf_s";
- case 0x0643: return "setbuf";
- case 0x0644: return "setlocale";
- case 0x0645: return "setvbuf";
- case 0x0646: return "signal";
- case 0x0647: return "sin";
- case 0x0648: return "sinh";
- case 0x0649: return "sprintf";
- case 0x064a: return "sprintf_s";
- case 0x064b: return "sqrt";
- case 0x064c: return "srand";
- case 0x064d: return "sscanf";
- case 0x064e: return "sscanf_s";
- case 0x064f: return "strcat";
- case 0x0650: return "strcat_s";
- case 0x0651: return "strchr";
- case 0x0652: return "strcmp";
- case 0x0653: return "strcoll";
- case 0x0654: return "strcpy";
- case 0x0655: return "strcpy_s";
- case 0x0656: return "strcspn";
- case 0x0657: return "strerror";
- case 0x0658: return "strerror_s";
- case 0x0659: return "strftime";
- case 0x065a: return "strlen";
- case 0x065b: return "strncat";
- case 0x065c: return "strncat_s";
- case 0x065d: return "strncmp";
- case 0x065e: return "strncpy";
- case 0x065f: return "strncpy_s";
- case 0x0660: return "strnlen";
- case 0x0661: return "strpbrk";
- case 0x0662: return "strrchr";
- case 0x0663: return "strspn";
- case 0x0664: return "strstr";
- case 0x0665: return "strtod";
- case 0x0666: return "strtok";
- case 0x0667: return "strtok_s";
- case 0x0668: return "strtol";
- case 0x0669: return "strtoul";
- case 0x066a: return "strxfrm";
- case 0x066b: return "swprintf_s";
- case 0x066c: return "swscanf";
- case 0x066d: return "swscanf_s";
- case 0x066e: return "system";
- case 0x066f: return "tan";
- case 0x0670: return "tanh";
- case 0x0671: return "tmpfile";
- case 0x0672: return "tmpfile_s";
- case 0x0673: return "tmpnam";
- case 0x0674: return "tmpnam_s";
- case 0x0675: return "tolower";
- case 0x0676: return "toupper";
- case 0x0677: return "towlower";
- case 0x0678: return "towupper";
- case 0x0679: return "ungetc";
- case 0x067a: return "ungetwc";
- case 0x067b: return "vfprintf";
- case 0x067c: return "vfprintf_s";
- case 0x067d: return "vfwprintf";
- case 0x067e: return "vfwprintf_s";
- case 0x067f: return "vprintf";
- case 0x0680: return "vprintf_s";
- case 0x0681: return "vsprintf";
- case 0x0682: return "vsprintf_s";
- case 0x0683: return "vswprintf_s";
- case 0x0684: return "vwprintf";
- case 0x0685: return "vwprintf_s";
- case 0x0686: return "wcrtomb";
- case 0x0687: return "wcrtomb_s";
- case 0x0688: return "wcscat";
- case 0x0689: return "wcscat_s";
- case 0x068a: return "wcschr";
- case 0x068b: return "wcscmp";
- case 0x068c: return "wcscoll";
- case 0x068d: return "wcscpy";
- case 0x068e: return "wcscpy_s";
- case 0x068f: return "wcscspn";
- case 0x0690: return "wcsftime";
- case 0x0691: return "wcslen";
- case 0x0692: return "wcsncat";
- case 0x0693: return "wcsncat_s";
- case 0x0694: return "wcsncmp";
- case 0x0695: return "wcsncpy";
- case 0x0696: return "wcsncpy_s";
- case 0x0697: return "wcsnlen";
- case 0x0698: return "wcspbrk";
- case 0x0699: return "wcsrchr";
- case 0x069a: return "wcsrtombs";
- case 0x069b: return "wcsrtombs_s";
- case 0x069c: return "wcsspn";
- case 0x069d: return "wcsstr";
- case 0x069e: return "wcstod";
- case 0x069f: return "wcstok";
- case 0x06a0: return "wcstok_s";
- case 0x06a1: return "wcstol";
- case 0x06a2: return "wcstombs";
- case 0x06a3: return "wcstombs_s";
- case 0x06a4: return "wcstoul";
- case 0x06a5: return "wcsxfrm";
- case 0x06a6: return "wctob";
- case 0x06a7: return "wctomb";
- case 0x06a8: return "wctomb_s";
- case 0x06a9: return "wmemcpy_s";
- case 0x06aa: return "wmemmove_s";
- case 0x06ab: return "wprintf";
- case 0x06ac: return "wprintf_s";
- case 0x06ad: return "wscanf";
- case 0x06ae: return "wscanf_s";
+ switch (i) {
+ case 0x014b: return "$I10_OUTPUT";
+ case 0x0001: return "??0?$_SpinWait@$00@details@Concurrency@@QAE@P6AXXZ@Z";
+ case 0x0002: return "??0?$_SpinWait@$0A@@details@Concurrency@@QAE@P6AXXZ@Z";
+ case 0x0003: return "??0SchedulerPolicy@Concurrency@@QAA@IZZ";
+ case 0x0004: return "??0SchedulerPolicy@Concurrency@@QAE@ABV01@@Z";
+ case 0x0005: return "??0SchedulerPolicy@Concurrency@@QAE@XZ";
+ case 0x0006: return "??0_CancellationTokenState@details@Concurrency@@AAE@XZ";
+ case 0x0007: return "??0_Cancellation_beacon@details@Concurrency@@QAE@XZ";
+ case 0x0008: return "??0_Condition_variable@details@Concurrency@@QAE@XZ";
+ case 0x0009: return "??0_Context@details@Concurrency@@QAE@PAVContext@2@@Z";
+ case 0x000a:
+ return "??0_Interruption_exception@details@Concurrency@@QAE@PBD@Z";
+ case 0x000b: return "??0_Interruption_exception@details@Concurrency@@QAE@XZ";
+ case 0x000c: return "??0_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ";
+ case 0x000d: return "??0_NonReentrantPPLLock@details@Concurrency@@QAE@XZ";
+ case 0x000e: return "??0_ReaderWriterLock@details@Concurrency@@QAE@XZ";
+ case 0x000f: return "??0_ReentrantBlockingLock@details@Concurrency@@QAE@XZ";
+ case 0x0010: return "??0_ReentrantLock@details@Concurrency@@QAE@XZ";
+ case 0x0011: return "??0_ReentrantPPLLock@details@Concurrency@@QAE@XZ";
+ case 0x0012: return "??0_Scheduler@details@Concurrency@@QAE@PAVScheduler@2@@Z";
+ case 0x0013:
+ return "??0_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@"
+ "AAV123@@Z";
+ case 0x0014:
+ return "??0_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@AAV123@@"
+ "Z";
+ case 0x0015: return "??0_SpinLock@details@Concurrency@@QAE@ACJ@Z";
+ case 0x0016:
+ return "??0_StructuredTaskCollection@details@Concurrency@@QAE@PAV_"
+ "CancellationTokenState@12@@Z";
+ case 0x0017:
+ return "??0_TaskCollection@details@Concurrency@@QAE@PAV_"
+ "CancellationTokenState@12@@Z";
+ case 0x0018: return "??0_TaskCollection@details@Concurrency@@QAE@XZ";
+ case 0x0019: return "??0_Timer@details@Concurrency@@IAE@I_N@Z";
+ case 0x001a: return "??0__non_rtti_object@std@@QAE@ABV01@@Z";
+ case 0x001b: return "??0__non_rtti_object@std@@QAE@PBD@Z";
+ case 0x001c: return "??0bad_cast@std@@AAE@PBQBD@Z";
+ case 0x001d: return "??0bad_cast@std@@QAE@ABV01@@Z";
+ case 0x001e: return "??0bad_cast@std@@QAE@PBD@Z";
+ case 0x001f: return "??0bad_target@Concurrency@@QAE@PBD@Z";
+ case 0x0020: return "??0bad_target@Concurrency@@QAE@XZ";
+ case 0x0021: return "??0bad_typeid@std@@QAE@ABV01@@Z";
+ case 0x0022: return "??0bad_typeid@std@@QAE@PBD@Z";
+ case 0x0023: return "??0context_self_unblock@Concurrency@@QAE@PBD@Z";
+ case 0x0024: return "??0context_self_unblock@Concurrency@@QAE@XZ";
+ case 0x0025: return "??0context_unblock_unbalanced@Concurrency@@QAE@PBD@Z";
+ case 0x0026: return "??0context_unblock_unbalanced@Concurrency@@QAE@XZ";
+ case 0x0027: return "??0critical_section@Concurrency@@QAE@XZ";
+ case 0x0028: return "??0default_scheduler_exists@Concurrency@@QAE@PBD@Z";
+ case 0x0029: return "??0default_scheduler_exists@Concurrency@@QAE@XZ";
+ case 0x002a: return "??0event@Concurrency@@QAE@XZ";
+ case 0x002b: return "??0exception@std@@QAE@ABQBD@Z";
+ case 0x002c: return "??0exception@std@@QAE@ABQBDH@Z";
+ case 0x002d: return "??0exception@std@@QAE@ABV01@@Z";
+ case 0x002e: return "??0exception@std@@QAE@XZ";
+ case 0x002f: return "??0improper_lock@Concurrency@@QAE@PBD@Z";
+ case 0x0030: return "??0improper_lock@Concurrency@@QAE@XZ";
+ case 0x0031: return "??0improper_scheduler_attach@Concurrency@@QAE@PBD@Z";
+ case 0x0032: return "??0improper_scheduler_attach@Concurrency@@QAE@XZ";
+ case 0x0033: return "??0improper_scheduler_detach@Concurrency@@QAE@PBD@Z";
+ case 0x0034: return "??0improper_scheduler_detach@Concurrency@@QAE@XZ";
+ case 0x0035: return "??0improper_scheduler_reference@Concurrency@@QAE@PBD@Z";
+ case 0x0036: return "??0improper_scheduler_reference@Concurrency@@QAE@XZ";
+ case 0x0037: return "??0invalid_link_target@Concurrency@@QAE@PBD@Z";
+ case 0x0038: return "??0invalid_link_target@Concurrency@@QAE@XZ";
+ case 0x0039: return "??0invalid_multiple_scheduling@Concurrency@@QAE@PBD@Z";
+ case 0x003a: return "??0invalid_multiple_scheduling@Concurrency@@QAE@XZ";
+ case 0x003b: return "??0invalid_operation@Concurrency@@QAE@PBD@Z";
+ case 0x003c: return "??0invalid_operation@Concurrency@@QAE@XZ";
+ case 0x003d:
+ return "??0invalid_oversubscribe_operation@Concurrency@@QAE@PBD@Z";
+ case 0x003e: return "??0invalid_oversubscribe_operation@Concurrency@@QAE@XZ";
+ case 0x003f: return "??0invalid_scheduler_policy_key@Concurrency@@QAE@PBD@Z";
+ case 0x0040: return "??0invalid_scheduler_policy_key@Concurrency@@QAE@XZ";
+ case 0x0041:
+ return "??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@"
+ "PBD@Z";
+ case 0x0042:
+ return "??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@"
+ "XZ";
+ case 0x0043: return "??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z";
+ case 0x0044: return "??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ";
+ case 0x0045: return "??0message_not_found@Concurrency@@QAE@PBD@Z";
+ case 0x0046: return "??0message_not_found@Concurrency@@QAE@XZ";
+ case 0x0047: return "??0missing_wait@Concurrency@@QAE@PBD@Z";
+ case 0x0048: return "??0missing_wait@Concurrency@@QAE@XZ";
+ case 0x0049:
+ return "??0nested_scheduler_missing_detach@Concurrency@@QAE@PBD@Z";
+ case 0x004a: return "??0nested_scheduler_missing_detach@Concurrency@@QAE@XZ";
+ case 0x004b: return "??0operation_timed_out@Concurrency@@QAE@PBD@Z";
+ case 0x004c: return "??0operation_timed_out@Concurrency@@QAE@XZ";
+ case 0x004d: return "??0reader_writer_lock@Concurrency@@QAE@XZ";
+ case 0x004e: return "??0scheduler_not_attached@Concurrency@@QAE@PBD@Z";
+ case 0x004f: return "??0scheduler_not_attached@Concurrency@@QAE@XZ";
+ case 0x0050:
+ return "??0scheduler_resource_allocation_error@Concurrency@@QAE@J@Z";
+ case 0x0051:
+ return "??0scheduler_resource_allocation_error@Concurrency@@QAE@PBDJ@Z";
+ case 0x0052: return "??0scheduler_worker_creation_error@Concurrency@@QAE@J@Z";
+ case 0x0053:
+ return "??0scheduler_worker_creation_error@Concurrency@@QAE@PBDJ@Z";
+ case 0x0054:
+ return "??0scoped_lock@critical_section@Concurrency@@QAE@AAV12@@Z";
+ case 0x0055:
+ return "??0scoped_lock@reader_writer_lock@Concurrency@@QAE@AAV12@@Z";
+ case 0x0056:
+ return "??0scoped_lock_read@reader_writer_lock@Concurrency@@QAE@AAV12@@Z";
+ case 0x0057: return "??0task_canceled@Concurrency@@QAE@PBD@Z";
+ case 0x0058: return "??0task_canceled@Concurrency@@QAE@XZ";
+ case 0x0059: return "??0unsupported_os@Concurrency@@QAE@PBD@Z";
+ case 0x005a: return "??0unsupported_os@Concurrency@@QAE@XZ";
+ case 0x005b: return "??1SchedulerPolicy@Concurrency@@QAE@XZ";
+ case 0x005c: return "??1_CancellationTokenState@details@Concurrency@@UAE@XZ";
+ case 0x005d: return "??1_Cancellation_beacon@details@Concurrency@@QAE@XZ";
+ case 0x005e: return "??1_Condition_variable@details@Concurrency@@QAE@XZ";
+ case 0x005f: return "??1_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ";
+ case 0x0060: return "??1_ReentrantBlockingLock@details@Concurrency@@QAE@XZ";
+ case 0x0061:
+ return "??1_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@XZ";
+ case 0x0062:
+ return "??1_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@XZ";
+ case 0x0063: return "??1_SpinLock@details@Concurrency@@QAE@XZ";
+ case 0x0064: return "??1_TaskCollection@details@Concurrency@@QAE@XZ";
+ case 0x0065: return "??1_Timer@details@Concurrency@@MAE@XZ";
+ case 0x0066: return "??1__non_rtti_object@std@@UAE@XZ";
+ case 0x0067: return "??1bad_cast@std@@UAE@XZ";
+ case 0x0068: return "??1bad_typeid@std@@UAE@XZ";
+ case 0x0069: return "??1critical_section@Concurrency@@QAE@XZ";
+ case 0x006a: return "??1event@Concurrency@@QAE@XZ";
+ case 0x006b: return "??1exception@std@@UAE@XZ";
+ case 0x006c: return "??1reader_writer_lock@Concurrency@@QAE@XZ";
+ case 0x006d: return "??1scoped_lock@critical_section@Concurrency@@QAE@XZ";
+ case 0x006e: return "??1scoped_lock@reader_writer_lock@Concurrency@@QAE@XZ";
+ case 0x006f:
+ return "??1scoped_lock_read@reader_writer_lock@Concurrency@@QAE@XZ";
+ case 0x0070: return "??1type_info@@UAE@XZ";
+ case 0x0071: return "??2@YAPAXI@Z";
+ case 0x0072: return "??2@YAPAXIHPBDH@Z";
+ case 0x0073: return "??3@YAXPAX@Z";
+ case 0x0074: return "??3@YAXPAXHPBDH@Z";
+ case 0x0075:
+ return "??4?$_SpinWait@$00@details@Concurrency@@QAEAAV012@ABV012@@Z";
+ case 0x0076:
+ return "??4?$_SpinWait@$0A@@details@Concurrency@@QAEAAV012@ABV012@@Z";
+ case 0x0077: return "??4SchedulerPolicy@Concurrency@@QAEAAV01@ABV01@@Z";
+ case 0x0078: return "??4__non_rtti_object@std@@QAEAAV01@ABV01@@Z";
+ case 0x0079: return "??4bad_cast@std@@QAEAAV01@ABV01@@Z";
+ case 0x007a: return "??4bad_typeid@std@@QAEAAV01@ABV01@@Z";
+ case 0x007b: return "??4exception@std@@QAEAAV01@ABV01@@Z";
+ case 0x007c: return "??8type_info@@QBE_NABV0@@Z";
+ case 0x007d: return "??9type_info@@QBE_NABV0@@Z";
+ case 0x007e: return "??_7__non_rtti_object@std@@6B@";
+ case 0x007f: return "??_7bad_cast@std@@6B@";
+ case 0x0080: return "??_7bad_typeid@std@@6B@";
+ case 0x0081: return "??_7exception@std@@6B@";
+ case 0x0082: return "??_F?$_SpinWait@$00@details@Concurrency@@QAEXXZ";
+ case 0x0083: return "??_F?$_SpinWait@$0A@@details@Concurrency@@QAEXXZ";
+ case 0x0084: return "??_F_Context@details@Concurrency@@QAEXXZ";
+ case 0x0085: return "??_F_Scheduler@details@Concurrency@@QAEXXZ";
+ case 0x0086: return "??_Fbad_cast@std@@QAEXXZ";
+ case 0x0087: return "??_Fbad_typeid@std@@QAEXXZ";
+ case 0x0088: return "??_U@YAPAXI@Z";
+ case 0x0089: return "??_U@YAPAXIHPBDH@Z";
+ case 0x008a: return "??_V@YAXPAX@Z";
+ case 0x008b: return "??_V@YAXPAXHPBDH@Z";
+ case 0x008c: return "?Alloc@Concurrency@@YAPAXI@Z";
+ case 0x008d: return "?Block@Context@Concurrency@@SAXXZ";
+ case 0x008e:
+ return "?Create@CurrentScheduler@Concurrency@@SAXABVSchedulerPolicy@2@@Z";
+ case 0x008f:
+ return "?Create@Scheduler@Concurrency@@SAPAV12@ABVSchedulerPolicy@2@@Z";
+ case 0x0090:
+ return "?CreateResourceManager@Concurrency@@YAPAUIResourceManager@1@XZ";
+ case 0x0091:
+ return "?CreateScheduleGroup@CurrentScheduler@Concurrency@@"
+ "SAPAVScheduleGroup@2@AAVlocation@2@@Z";
+ case 0x0092:
+ return "?CreateScheduleGroup@CurrentScheduler@Concurrency@@"
+ "SAPAVScheduleGroup@2@XZ";
+ case 0x0093: return "?CurrentContext@Context@Concurrency@@SAPAV12@XZ";
+ case 0x0094: return "?Detach@CurrentScheduler@Concurrency@@SAXXZ";
+ case 0x0095: return "?DisableTracing@Concurrency@@YAJXZ";
+ case 0x0096: return "?EnableTracing@Concurrency@@YAJXZ";
+ case 0x0097: return "?Free@Concurrency@@YAXPAX@Z";
+ case 0x0098: return "?Get@CurrentScheduler@Concurrency@@SAPAVScheduler@2@XZ";
+ case 0x0099: return "?GetExecutionContextId@Concurrency@@YAIXZ";
+ case 0x009a:
+ return "?GetNumberOfVirtualProcessors@CurrentScheduler@Concurrency@@SAIXZ";
+ case 0x009b:
+ return "?GetOSVersion@Concurrency@@YA?AW4OSVersion@IResourceManager@1@XZ";
+ case 0x009c:
+ return "?GetPolicy@CurrentScheduler@Concurrency@@SA?AVSchedulerPolicy@2@XZ";
+ case 0x009d:
+ return "?GetPolicyValue@SchedulerPolicy@Concurrency@@QBEIW4PolicyElementKey@"
+ "2@@Z";
+ case 0x009e: return "?GetProcessorCount@Concurrency@@YAIXZ";
+ case 0x009f: return "?GetProcessorNodeCount@Concurrency@@YAIXZ";
+ case 0x00a0: return "?GetSchedulerId@Concurrency@@YAIXZ";
+ case 0x00a1: return "?GetSharedTimerQueue@details@Concurrency@@YAPAXXZ";
+ case 0x00a2: return "?Id@Context@Concurrency@@SAIXZ";
+ case 0x00a3: return "?Id@CurrentScheduler@Concurrency@@SAIXZ";
+ case 0x00a4:
+ return "?IsAvailableLocation@CurrentScheduler@Concurrency@@SA_NABVlocation@"
+ "2@@Z";
+ case 0x00a5:
+ return "?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ";
+ case 0x00a6: return "?Log2@details@Concurrency@@YAKI@Z";
+ case 0x00a7: return "?Oversubscribe@Context@Concurrency@@SAX_N@Z";
+ case 0x00a8:
+ return "?RegisterShutdownEvent@CurrentScheduler@Concurrency@@SAXPAX@Z";
+ case 0x00a9:
+ return "?ResetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXXZ";
+ case 0x00aa: return "?ScheduleGroupId@Context@Concurrency@@SAIXZ";
+ case 0x00ab:
+ return "?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0@Z";
+ case 0x00ac:
+ return "?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@"
+ "Z0AAVlocation@2@@Z";
+ case 0x00ad:
+ return "?SetConcurrencyLimits@SchedulerPolicy@Concurrency@@QAEXII@Z";
+ case 0x00ae:
+ return "?SetDefaultSchedulerPolicy@Scheduler@Concurrency@@"
+ "SAXABVSchedulerPolicy@2@@Z";
+ case 0x00af:
+ return "?SetPolicyValue@SchedulerPolicy@Concurrency@@QAEIW4PolicyElementKey@"
+ "2@I@Z";
+ case 0x00b0: return "?VirtualProcessorId@Context@Concurrency@@SAIXZ";
+ case 0x00b1: return "?Yield@Context@Concurrency@@SAXXZ";
+ case 0x00b2:
+ return "?_Abort@_StructuredTaskCollection@details@Concurrency@@AAEXXZ";
+ case 0x00b3:
+ return "?_Acquire@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ";
+ case 0x00b4:
+ return "?_Acquire@_NonReentrantPPLLock@details@Concurrency@@QAEXPAX@Z";
+ case 0x00b5:
+ return "?_Acquire@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ";
+ case 0x00b6: return "?_Acquire@_ReentrantLock@details@Concurrency@@QAEXXZ";
+ case 0x00b7:
+ return "?_Acquire@_ReentrantPPLLock@details@Concurrency@@QAEXPAX@Z";
+ case 0x00b8:
+ return "?_AcquireRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
+ case 0x00b9:
+ return "?_AcquireWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
+ case 0x00ba:
+ return "?_Cancel@_CancellationTokenState@details@Concurrency@@QAEXXZ";
+ case 0x00bb:
+ return "?_Cancel@_StructuredTaskCollection@details@Concurrency@@QAEXXZ";
+ case 0x00bc: return "?_Cancel@_TaskCollection@details@Concurrency@@QAEXXZ";
+ case 0x00bd:
+ return "?_CheckTaskCollection@_UnrealizedChore@details@Concurrency@@IAEXXZ";
+ case 0x00be:
+ return "?_CleanupToken@_StructuredTaskCollection@details@Concurrency@@"
+ "AAEXXZ";
+ case 0x00bf: return "?_ConcRT_CoreAssert@details@Concurrency@@YAXPBD0H@Z";
+ case 0x00c0: return "?_ConcRT_Trace@details@Concurrency@@YAXHPB_WZZ";
+ case 0x00c1:
+ return "?_Confirm_cancel@_Cancellation_beacon@details@Concurrency@@QAE_NXZ";
+ case 0x00c2: return "?_Copy_str@exception@std@@AAEXPBD@Z";
+ case 0x00c3:
+ return "?_CurrentContext@_Context@details@Concurrency@@SA?AV123@XZ";
+ case 0x00c4: return "?_Current_node@location@Concurrency@@SA?AV12@XZ";
+ case 0x00c5:
+ return "?_DeregisterCallback@_CancellationTokenState@details@Concurrency@@"
+ "QAEXPAV_CancellationTokenRegistration@23@@Z";
+ case 0x00c6:
+ return "?_Destroy@_AsyncTaskCollection@details@Concurrency@@EAEXXZ";
+ case 0x00c7:
+ return "?_Destroy@_CancellationTokenState@details@Concurrency@@EAEXXZ";
+ case 0x00c8: return "?_DoYield@?$_SpinWait@$00@details@Concurrency@@IAEXXZ";
+ case 0x00c9: return "?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ";
+ case 0x00ca:
+ return "?_Get@_CurrentScheduler@details@Concurrency@@SA?AV_Scheduler@23@XZ";
+ case 0x00cb:
+ return "?_GetConcRTTraceInfo@Concurrency@@YAPBU_CONCRT_TRACE_INFO@details@1@"
+ "XZ";
+ case 0x00cc: return "?_GetConcurrency@details@Concurrency@@YAIXZ";
+ case 0x00cd:
+ return "?_GetCurrentInlineDepth@_StackGuard@details@Concurrency@@CAAAIXZ";
+ case 0x00ce:
+ return "?_GetNumberOfVirtualProcessors@_CurrentScheduler@details@"
+ "Concurrency@@SAIXZ";
+ case 0x00cf:
+ return "?_GetScheduler@_Scheduler@details@Concurrency@@QAEPAVScheduler@3@XZ";
+ case 0x00d0: return "?_Id@_CurrentScheduler@details@Concurrency@@SAIXZ";
+ case 0x00d1:
+ return "?_Invoke@_CancellationTokenRegistration@details@Concurrency@@AAEXXZ";
+ case 0x00d2:
+ return "?_IsCanceling@_StructuredTaskCollection@details@Concurrency@@QAE_"
+ "NXZ";
+ case 0x00d3:
+ return "?_IsCanceling@_TaskCollection@details@Concurrency@@QAE_NXZ";
+ case 0x00d4:
+ return "?_IsSynchronouslyBlocked@_Context@details@Concurrency@@QBE_NXZ";
+ case 0x00d5: return "?_Name_base@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z";
+ case 0x00d6:
+ return "?_Name_base_internal@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z";
+ case 0x00d7:
+ return "?_NewCollection@_AsyncTaskCollection@details@Concurrency@@SAPAV123@"
+ "PAV_CancellationTokenState@23@@Z";
+ case 0x00d8:
+ return "?_NewTokenState@_CancellationTokenState@details@Concurrency@@"
+ "SAPAV123@XZ";
+ case 0x00d9:
+ return "?_NumberOfSpins@?$_SpinWait@$00@details@Concurrency@@IAEKXZ";
+ case 0x00da:
+ return "?_NumberOfSpins@?$_SpinWait@$0A@@details@Concurrency@@IAEKXZ";
+ case 0x00db: return "?_Oversubscribe@_Context@details@Concurrency@@SAX_N@Z";
+ case 0x00dc: return "?_Reference@_Scheduler@details@Concurrency@@QAEIXZ";
+ case 0x00dd:
+ return "?_RegisterCallback@_CancellationTokenState@details@Concurrency@@"
+ "QAEPAV_CancellationTokenRegistration@23@P6AXPAX@Z0H@Z";
+ case 0x00de:
+ return "?_RegisterCallback@_CancellationTokenState@details@Concurrency@@"
+ "QAEXPAV_CancellationTokenRegistration@23@@Z";
+ case 0x00df:
+ return "?_Release@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ";
+ case 0x00e0:
+ return "?_Release@_NonReentrantPPLLock@details@Concurrency@@QAEXXZ";
+ case 0x00e1:
+ return "?_Release@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ";
+ case 0x00e2: return "?_Release@_ReentrantLock@details@Concurrency@@QAEXXZ";
+ case 0x00e3: return "?_Release@_ReentrantPPLLock@details@Concurrency@@QAEXXZ";
+ case 0x00e4: return "?_Release@_Scheduler@details@Concurrency@@QAEIXZ";
+ case 0x00e5:
+ return "?_ReleaseRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
+ case 0x00e6:
+ return "?_ReleaseWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
+ case 0x00e7: return "?_ReportUnobservedException@details@Concurrency@@YAXXZ";
+ case 0x00e8: return "?_Reset@?$_SpinWait@$00@details@Concurrency@@IAEXXZ";
+ case 0x00e9: return "?_Reset@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ";
+ case 0x00ea:
+ return "?_RunAndWait@_StructuredTaskCollection@details@Concurrency@@QAG?AW4_"
+ "TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z";
+ case 0x00eb:
+ return "?_RunAndWait@_TaskCollection@details@Concurrency@@QAG?AW4_"
+ "TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z";
+ case 0x00ec:
+ return "?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_"
+ "UnrealizedChore@23@@Z";
+ case 0x00ed:
+ return "?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_"
+ "UnrealizedChore@23@PAVlocation@3@@Z";
+ case 0x00ee:
+ return "?_Schedule@_TaskCollection@details@Concurrency@@QAEXPAV_"
+ "UnrealizedChore@23@@Z";
+ case 0x00ef:
+ return "?_Schedule@_TaskCollection@details@Concurrency@@QAEXPAV_"
+ "UnrealizedChore@23@PAVlocation@3@@Z";
+ case 0x00f0:
+ return "?_ScheduleTask@_CurrentScheduler@details@Concurrency@@SAXP6AXPAX@Z0@"
+ "Z";
+ case 0x00f1:
+ return "?_SetSpinCount@?$_SpinWait@$00@details@Concurrency@@QAEXI@Z";
+ case 0x00f2:
+ return "?_SetSpinCount@?$_SpinWait@$0A@@details@Concurrency@@QAEXI@Z";
+ case 0x00f3:
+ return "?_SetUnobservedExceptionHandler@details@Concurrency@@YAXP6AXXZ@Z";
+ case 0x00f4:
+ return "?_ShouldSpinAgain@?$_SpinWait@$00@details@Concurrency@@IAE_NXZ";
+ case 0x00f5:
+ return "?_ShouldSpinAgain@?$_SpinWait@$0A@@details@Concurrency@@IAE_NXZ";
+ case 0x00f6: return "?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QAE_NXZ";
+ case 0x00f7: return "?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAE_NXZ";
+ case 0x00f8: return "?_SpinYield@Context@Concurrency@@SAXXZ";
+ case 0x00f9: return "?_Start@_Timer@details@Concurrency@@IAEXXZ";
+ case 0x00fa: return "?_Stop@_Timer@details@Concurrency@@IAEXXZ";
+ case 0x00fb: return "?_Tidy@exception@std@@AAEXXZ";
+ case 0x00fc: return "?_Trace_agents@Concurrency@@YAXW4Agents_EventType@1@_JZZ";
+ case 0x00fd:
+ return "?_Trace_ppl_function@Concurrency@@YAXABU_GUID@@EW4ConcRT_EventType@"
+ "1@@Z";
+ case 0x00fe:
+ return "?_TryAcquire@_NonReentrantBlockingLock@details@Concurrency@@QAE_NXZ";
+ case 0x00ff:
+ return "?_TryAcquire@_ReentrantBlockingLock@details@Concurrency@@QAE_NXZ";
+ case 0x0100: return "?_TryAcquire@_ReentrantLock@details@Concurrency@@QAE_NXZ";
+ case 0x0101:
+ return "?_TryAcquireWrite@_ReaderWriterLock@details@Concurrency@@QAE_NXZ";
+ case 0x0102: return "?_Type_info_dtor@type_info@@CAXPAV1@@Z";
+ case 0x0103: return "?_Type_info_dtor_internal@type_info@@CAXPAV1@@Z";
+ case 0x0104: return "?_UnderlyingYield@details@Concurrency@@YAXXZ";
+ case 0x0105: return "?_ValidateExecute@@YAHP6GHXZ@Z";
+ case 0x0106: return "?_ValidateRead@@YAHPBXI@Z";
+ case 0x0107: return "?_ValidateWrite@@YAHPAXI@Z";
+ case 0x0108: return "?_Value@_SpinCount@details@Concurrency@@SAIXZ";
+ case 0x0109: return "?_Yield@_Context@details@Concurrency@@SAXXZ";
+ case 0x010a: return "?__ExceptionPtrAssign@@YAXPAXPBX@Z";
+ case 0x010b: return "?__ExceptionPtrCompare@@YA_NPBX0@Z";
+ case 0x010c: return "?__ExceptionPtrCopy@@YAXPAXPBX@Z";
+ case 0x010d: return "?__ExceptionPtrCopyException@@YAXPAXPBX1@Z";
+ case 0x010e: return "?__ExceptionPtrCreate@@YAXPAX@Z";
+ case 0x010f: return "?__ExceptionPtrCurrentException@@YAXPAX@Z";
+ case 0x0110: return "?__ExceptionPtrDestroy@@YAXPAX@Z";
+ case 0x0111: return "?__ExceptionPtrRethrow@@YAXPBX@Z";
+ case 0x0112: return "?__ExceptionPtrSwap@@YAXPAX0@Z";
+ case 0x0113: return "?__ExceptionPtrToBool@@YA_NPBX@Z";
+ case 0x0115: return "?_inconsistency@@YAXXZ";
+ case 0x0116: return "?_invalid_parameter@@YAXPBG00II@Z";
+ case 0x0117:
+ return "?_is_exception_typeof@@YAHABVtype_info@@PAU_EXCEPTION_POINTERS@@@Z";
+ case 0x0118:
+ return "?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z";
+ case 0x0119: return "?_open@@YAHPBDHH@Z";
+ case 0x011a: return "?_query_new_handler@@YAP6AHI@ZXZ";
+ case 0x011b: return "?_query_new_mode@@YAHXZ";
+ case 0x011c: return "?_set_new_handler@@YAP6AHI@ZH@Z";
+ case 0x011d: return "?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z";
+ case 0x011e: return "?_set_new_mode@@YAHH@Z";
+ case 0x011f:
+ return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZH@Z";
+ case 0x0120:
+ return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z";
+ case 0x0121: return "?_sopen@@YAHPBDHHH@Z";
+ case 0x0122: return "?_type_info_dtor_internal_method@type_info@@QAEXXZ";
+ case 0x0123: return "?_wopen@@YAHPB_WHH@Z";
+ case 0x0124: return "?_wsopen@@YAHPB_WHHH@Z";
+ case 0x0125: return "?before@type_info@@QBE_NABV1@@Z";
+ case 0x0126: return "?current@location@Concurrency@@SA?AV12@XZ";
+ case 0x0127: return "?from_numa_node@location@Concurrency@@SA?AV12@G@Z";
+ case 0x0128:
+ return "?get_error_code@scheduler_resource_allocation_error@Concurrency@@"
+ "QBEJXZ";
+ case 0x0129: return "?lock@critical_section@Concurrency@@QAEXXZ";
+ case 0x012a: return "?lock@reader_writer_lock@Concurrency@@QAEXXZ";
+ case 0x012b: return "?lock_read@reader_writer_lock@Concurrency@@QAEXXZ";
+ case 0x012c: return "?name@type_info@@QBEPBDPAU__type_info_node@@@Z";
+ case 0x012d: return "?native_handle@critical_section@Concurrency@@QAEAAV12@XZ";
+ case 0x012e:
+ return "?notify_all@_Condition_variable@details@Concurrency@@QAEXXZ";
+ case 0x012f:
+ return "?notify_one@_Condition_variable@details@Concurrency@@QAEXXZ";
+ case 0x0130: return "?raw_name@type_info@@QBEPBDXZ";
+ case 0x0131: return "?reset@event@Concurrency@@QAEXXZ";
+ case 0x0132: return "?set@event@Concurrency@@QAEXXZ";
+ case 0x0133: return "?set_new_handler@@YAP6AXXZP6AXXZ@Z";
+ case 0x0134:
+ return "?set_task_execution_resources@Concurrency@@YAXGPAU_GROUP_AFFINITY@@@"
+ "Z";
+ case 0x0135: return "?set_task_execution_resources@Concurrency@@YAXK@Z";
+ case 0x0136: return "?set_terminate@@YAP6AXXZH@Z";
+ case 0x0137: return "?set_terminate@@YAP6AXXZP6AXXZ@Z";
+ case 0x0138: return "?set_unexpected@@YAP6AXXZH@Z";
+ case 0x0139: return "?set_unexpected@@YAP6AXXZP6AXXZ@Z";
+ case 0x013a: return "?swprintf@@YAHPAGIPBGZZ";
+ case 0x013b: return "?swprintf@@YAHPA_WIPB_WZZ";
+ case 0x013c: return "?terminate@@YAXXZ";
+ case 0x013d: return "?try_lock@critical_section@Concurrency@@QAE_NXZ";
+ case 0x013e: return "?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ";
+ case 0x013f: return "?try_lock_for@critical_section@Concurrency@@QAE_NI@Z";
+ case 0x0140: return "?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ";
+ case 0x0141: return "?unexpected@@YAXXZ";
+ case 0x0142: return "?unlock@critical_section@Concurrency@@QAEXXZ";
+ case 0x0143: return "?unlock@reader_writer_lock@Concurrency@@QAEXXZ";
+ case 0x0144: return "?vswprintf@@YAHPA_WIPB_WPAD@Z";
+ case 0x0145: return "?wait@Concurrency@@YAXI@Z";
+ case 0x0146:
+ return "?wait@_Condition_variable@details@Concurrency@@QAEXAAVcritical_"
+ "section@3@@Z";
+ case 0x0147: return "?wait@event@Concurrency@@QAEII@Z";
+ case 0x0148:
+ return "?wait_for@_Condition_variable@details@Concurrency@@QAE_NAAVcritical_"
+ "section@3@I@Z";
+ case 0x0149: return "?wait_for_multiple@event@Concurrency@@SAIPAPAV12@I_NI@Z";
+ case 0x014a: return "?what@exception@std@@UBEPBDXZ";
+ case 0x014c: return "_CIacos";
+ case 0x014d: return "_CIasin";
+ case 0x014e: return "_CIatan";
+ case 0x014f: return "_CIatan2";
+ case 0x0150: return "_CIcos";
+ case 0x0151: return "_CIcosh";
+ case 0x0152: return "_CIexp";
+ case 0x0153: return "_CIfmod";
+ case 0x0154: return "_CIlog";
+ case 0x0155: return "_CIlog10";
+ case 0x0156: return "_CIpow";
+ case 0x0157: return "_CIsin";
+ case 0x0158: return "_CIsinh";
+ case 0x0159: return "_CIsqrt";
+ case 0x015a: return "_CItan";
+ case 0x015b: return "_CItanh";
+ case 0x015c: return "_CRT_RTC_INIT";
+ case 0x015d: return "_CRT_RTC_INITW";
+ case 0x015e: return "_CreateFrameInfo";
+ case 0x015f: return "_CxxThrowException";
+ case 0x0160: return "_EH_prolog";
+ case 0x0161: return "_FindAndUnlinkFrame";
+ case 0x0162: return "_Getdays";
+ case 0x0163: return "_Getmonths";
+ case 0x0164: return "_Gettnames";
+ case 0x0165: return "_HUGE";
+ case 0x0166: return "_IsExceptionObjectToBeDestroyed";
+ case 0x0167: return "_Lock_shared_ptr_spin_lock";
+ case 0x0168: return "_NLG_Dispatch2";
+ case 0x0169: return "_NLG_Return";
+ case 0x016a: return "_NLG_Return2";
+ case 0x016b: return "_Strftime";
+ case 0x016c: return "_Unlock_shared_ptr_spin_lock";
+ case 0x016d: return "_W_Getdays";
+ case 0x016e: return "_W_Getmonths";
+ case 0x016f: return "_W_Gettnames";
+ case 0x0170: return "_Wcsftime";
+ case 0x0171: return "_XcptFilter";
+ case 0x0172: return "__AdjustPointer";
+ case 0x0173: return "__BuildCatchObject";
+ case 0x0174: return "__BuildCatchObjectHelper";
+ case 0x0175: return "__CppXcptFilter";
+ case 0x0176: return "__CxxDetectRethrow";
+ case 0x0177: return "__CxxExceptionFilter";
+ case 0x0178: return "__CxxFrameHandler";
+ case 0x0179: return "__CxxFrameHandler2";
+ case 0x017a: return "__CxxFrameHandler3";
+ case 0x017b: return "__CxxLongjmpUnwind";
+ case 0x017c: return "__CxxQueryExceptionSize";
+ case 0x017d: return "__CxxRegisterExceptionObject";
+ case 0x017e: return "__CxxUnregisterExceptionObject";
+ case 0x017f: return "__DestructExceptionObject";
+ case 0x0180: return "__FrameUnwindFilter";
+ case 0x0181: return "__RTCastToVoid";
+ case 0x0182: return "__RTDynamicCast";
+ case 0x0183: return "__RTtypeid";
+ case 0x0184: return "__STRINGTOLD";
+ case 0x0185: return "__STRINGTOLD_L";
+ case 0x0186: return "__TypeMatch";
+ case 0x0197: return "___crtCreateSemaphoreExW@24";
+ case 0x0187: return "___lc_codepage_func";
+ case 0x0188: return "___lc_collate_cp_func";
+ case 0x0189: return "___lc_locale_name_func";
+ case 0x018a: return "___mb_cur_max_func";
+ case 0x018b: return "___mb_cur_max_l_func";
+ case 0x018c: return "___setlc_active_func";
+ case 0x018d: return "___unguarded_readlc_active_add_func";
+ case 0x018e: return "__argc";
+ case 0x018f: return "__argv";
+ case 0x0190: return "__badioinfo";
+ case 0x0191: return "__clean_type_info_names_internal";
+ case 0x0192: return "__control87_2";
+ case 0x0193: return "__create_locale";
+ case 0x0194: return "__crtCompareStringA";
+ case 0x0195: return "__crtCompareStringEx";
+ case 0x0196: return "__crtCompareStringW";
+ case 0x0198: return "__crtCreateSymbolicLinkW";
+ case 0x0199: return "__crtEnumSystemLocalesEx";
+ case 0x019a: return "__crtFlsAlloc";
+ case 0x019b: return "__crtFlsFree";
+ case 0x019c: return "__crtFlsGetValue";
+ case 0x019d: return "__crtFlsSetValue";
+ case 0x019e: return "__crtGetDateFormatEx";
+ case 0x019f: return "__crtGetLocaleInfoEx";
+ case 0x01a0: return "__crtGetShowWindowMode";
+ case 0x01a1: return "__crtGetTimeFormatEx";
+ case 0x01a2: return "__crtGetUserDefaultLocaleName";
+ case 0x01a3: return "__crtInitializeCriticalSectionEx";
+ case 0x01a4: return "__crtIsPackagedApp";
+ case 0x01a5: return "__crtIsValidLocaleName";
+ case 0x01a6: return "__crtLCMapStringA";
+ case 0x01a7: return "__crtLCMapStringEx";
+ case 0x01a8: return "__crtLCMapStringW";
+ case 0x01a9: return "__crtSetThreadStackGuarantee";
+ case 0x01aa: return "__crtSetUnhandledExceptionFilter";
+ case 0x01ab: return "__crtTerminateProcess";
+ case 0x01ac: return "__crtUnhandledException";
+ case 0x01ad: return "__daylight";
+ case 0x01ae: return "__dllonexit";
+ case 0x01af: return "__doserrno";
+ case 0x01b0: return "__dstbias";
+ case 0x01b1: return "__fpecode";
+ case 0x01b2: return "__free_locale";
+ case 0x01b3: return "__get_current_locale";
+ case 0x01b4: return "__get_flsindex";
+ case 0x01b5: return "__get_tlsindex";
+ case 0x01b6: return "__getmainargs";
+ case 0x01b7: return "__initenv";
+ case 0x01b8: return "__iob_func";
+ case 0x01b9: return "__isascii";
+ case 0x01ba: return "__iscsym";
+ case 0x01bb: return "__iscsymf";
+ case 0x01bc: return "__iswcsym";
+ case 0x01bd: return "__iswcsymf";
+ case 0x01be: return "__lconv";
+ case 0x01bf: return "__lconv_init";
+ case 0x01c0: return "__libm_sse2_acos";
+ case 0x01c1: return "__libm_sse2_acosf";
+ case 0x01c2: return "__libm_sse2_asin";
+ case 0x01c3: return "__libm_sse2_asinf";
+ case 0x01c4: return "__libm_sse2_atan";
+ case 0x01c5: return "__libm_sse2_atan2";
+ case 0x01c6: return "__libm_sse2_atanf";
+ case 0x01c7: return "__libm_sse2_cos";
+ case 0x01c8: return "__libm_sse2_cosf";
+ case 0x01c9: return "__libm_sse2_exp";
+ case 0x01ca: return "__libm_sse2_expf";
+ case 0x01cb: return "__libm_sse2_log";
+ case 0x01cc: return "__libm_sse2_log10";
+ case 0x01cd: return "__libm_sse2_log10f";
+ case 0x01ce: return "__libm_sse2_logf";
+ case 0x01cf: return "__libm_sse2_pow";
+ case 0x01d0: return "__libm_sse2_powf";
+ case 0x01d1: return "__libm_sse2_sin";
+ case 0x01d2: return "__libm_sse2_sinf";
+ case 0x01d3: return "__libm_sse2_tan";
+ case 0x01d4: return "__libm_sse2_tanf";
+ case 0x01d5: return "__mb_cur_max";
+ case 0x01d6: return "__p___argc";
+ case 0x01d7: return "__p___argv";
+ case 0x01d8: return "__p___initenv";
+ case 0x01d9: return "__p___mb_cur_max";
+ case 0x01da: return "__p___wargv";
+ case 0x01db: return "__p___winitenv";
+ case 0x01dc: return "__p__acmdln";
+ case 0x01dd: return "__p__commode";
+ case 0x01de: return "__p__daylight";
+ case 0x01df: return "__p__dstbias";
+ case 0x01e0: return "__p__environ";
+ case 0x01e1: return "__p__fmode";
+ case 0x01e2: return "__p__iob";
+ case 0x01e3: return "__p__mbcasemap";
+ case 0x01e4: return "__p__mbctype";
+ case 0x01e5: return "__p__pctype";
+ case 0x01e6: return "__p__pgmptr";
+ case 0x01e7: return "__p__pwctype";
+ case 0x01e8: return "__p__timezone";
+ case 0x01e9: return "__p__tzname";
+ case 0x01ea: return "__p__wcmdln";
+ case 0x01eb: return "__p__wenviron";
+ case 0x01ec: return "__p__wpgmptr";
+ case 0x01ed: return "__pctype_func";
+ case 0x01ee: return "__pioinfo";
+ case 0x01ef: return "__pwctype_func";
+ case 0x01f0: return "__pxcptinfoptrs";
+ case 0x01f1: return "__report_gsfailure";
+ case 0x01f2: return "__set_app_type";
+ case 0x01f3: return "__setlc_active";
+ case 0x01f4: return "__setusermatherr";
+ case 0x01f5: return "__strncnt";
+ case 0x01f6: return "__swprintf_l";
+ case 0x01f7: return "__sys_errlist";
+ case 0x01f8: return "__sys_nerr";
+ case 0x01f9: return "__threadhandle";
+ case 0x01fa: return "__threadid";
+ case 0x01fb: return "__timezone";
+ case 0x01fc: return "__toascii";
+ case 0x01fd: return "__tzname";
+ case 0x01fe: return "__unDName";
+ case 0x01ff: return "__unDNameEx";
+ case 0x0200: return "__unDNameHelper";
+ case 0x0114: return "__uncaught_exception";
+ case 0x0201: return "__unguarded_readlc_active";
+ case 0x0202: return "__vswprintf_l";
+ case 0x0203: return "__wargv";
+ case 0x0204: return "__wcserror";
+ case 0x0205: return "__wcserror_s";
+ case 0x0206: return "__wcsncnt";
+ case 0x0207: return "__wgetmainargs";
+ case 0x0208: return "__winitenv";
+ case 0x0209: return "_abnormal_termination";
+ case 0x020a: return "_abs64";
+ case 0x020b: return "_access";
+ case 0x020c: return "_access_s";
+ case 0x020d: return "_acmdln";
+ case 0x020e: return "_aligned_free";
+ case 0x020f: return "_aligned_malloc";
+ case 0x0210: return "_aligned_msize";
+ case 0x0211: return "_aligned_offset_malloc";
+ case 0x0212: return "_aligned_offset_realloc";
+ case 0x0213: return "_aligned_offset_recalloc";
+ case 0x0214: return "_aligned_realloc";
+ case 0x0215: return "_aligned_recalloc";
+ case 0x0216: return "_amsg_exit";
+ case 0x0217: return "_assert";
+ case 0x0218: return "_atodbl";
+ case 0x0219: return "_atodbl_l";
+ case 0x021a: return "_atof_l";
+ case 0x021b: return "_atoflt";
+ case 0x021c: return "_atoflt_l";
+ case 0x021d: return "_atoi64";
+ case 0x021e: return "_atoi64_l";
+ case 0x021f: return "_atoi_l";
+ case 0x0220: return "_atol_l";
+ case 0x0221: return "_atoldbl";
+ case 0x0222: return "_atoldbl_l";
+ case 0x0223: return "_beep";
+ case 0x0224: return "_beginthread";
+ case 0x0225: return "_beginthreadex";
+ case 0x0226: return "_byteswap_uint64";
+ case 0x0227: return "_byteswap_ulong";
+ case 0x0228: return "_byteswap_ushort";
+ case 0x0229: return "_c_exit";
+ case 0x022a: return "_cabs";
+ case 0x022b: return "_callnewh";
+ case 0x022c: return "_calloc_crt";
+ case 0x022d: return "_cexit";
+ case 0x022e: return "_cgets";
+ case 0x022f: return "_cgets_s";
+ case 0x0230: return "_cgetws";
+ case 0x0231: return "_cgetws_s";
+ case 0x0232: return "_chdir";
+ case 0x0233: return "_chdrive";
+ case 0x0234: return "_chgsign";
+ case 0x0235: return "_chkesp";
+ case 0x0236: return "_chmod";
+ case 0x0237: return "_chsize";
+ case 0x0238: return "_chsize_s";
+ case 0x0239: return "_clearfp";
+ case 0x023a: return "_close";
+ case 0x023b: return "_commit";
+ case 0x023c: return "_commode";
+ case 0x023d: return "_configthreadlocale";
+ case 0x023e: return "_control87";
+ case 0x023f: return "_controlfp";
+ case 0x0240: return "_controlfp_s";
+ case 0x0241: return "_copysign";
+ case 0x0242: return "_cprintf";
+ case 0x0243: return "_cprintf_l";
+ case 0x0244: return "_cprintf_p";
+ case 0x0245: return "_cprintf_p_l";
+ case 0x0246: return "_cprintf_s";
+ case 0x0247: return "_cprintf_s_l";
+ case 0x0248: return "_cputs";
+ case 0x0249: return "_cputws";
+ case 0x024a: return "_creat";
+ case 0x024b: return "_create_locale";
+ case 0x024c: return "_crt_debugger_hook";
+ case 0x024d: return "_cscanf";
+ case 0x024e: return "_cscanf_l";
+ case 0x024f: return "_cscanf_s";
+ case 0x0250: return "_cscanf_s_l";
+ case 0x0251: return "_ctime32";
+ case 0x0252: return "_ctime32_s";
+ case 0x0253: return "_ctime64";
+ case 0x0254: return "_ctime64_s";
+ case 0x0255: return "_cwait";
+ case 0x0256: return "_cwprintf";
+ case 0x0257: return "_cwprintf_l";
+ case 0x0258: return "_cwprintf_p";
+ case 0x0259: return "_cwprintf_p_l";
+ case 0x025a: return "_cwprintf_s";
+ case 0x025b: return "_cwprintf_s_l";
+ case 0x025c: return "_cwscanf";
+ case 0x025d: return "_cwscanf_l";
+ case 0x025e: return "_cwscanf_s";
+ case 0x025f: return "_cwscanf_s_l";
+ case 0x0260: return "_daylight";
+ case 0x0261: return "_difftime32";
+ case 0x0262: return "_difftime64";
+ case 0x0263: return "_dosmaperr";
+ case 0x0264: return "_dstbias";
+ case 0x0265: return "_dup";
+ case 0x0266: return "_dup2";
+ case 0x0267: return "_dupenv_s";
+ case 0x0268: return "_ecvt";
+ case 0x0269: return "_ecvt_s";
+ case 0x026a: return "_endthread";
+ case 0x026b: return "_endthreadex";
+ case 0x026c: return "_environ";
+ case 0x026d: return "_eof";
+ case 0x026e: return "_errno";
+ case 0x026f: return "_except_handler2";
+ case 0x0270: return "_except_handler3";
+ case 0x0271: return "_except_handler4_common";
+ case 0x0272: return "_execl";
+ case 0x0273: return "_execle";
+ case 0x0274: return "_execlp";
+ case 0x0275: return "_execlpe";
+ case 0x0276: return "_execv";
+ case 0x0277: return "_execve";
+ case 0x0278: return "_execvp";
+ case 0x0279: return "_execvpe";
+ case 0x027a: return "_exit";
+ case 0x027b: return "_expand";
+ case 0x027c: return "_fclose_nolock";
+ case 0x027d: return "_fcloseall";
+ case 0x027e: return "_fcvt";
+ case 0x027f: return "_fcvt_s";
+ case 0x0280: return "_fdopen";
+ case 0x0281: return "_fflush_nolock";
+ case 0x0282: return "_fgetchar";
+ case 0x0283: return "_fgetwc_nolock";
+ case 0x0284: return "_fgetwchar";
+ case 0x0285: return "_filbuf";
+ case 0x0286: return "_filelength";
+ case 0x0287: return "_filelengthi64";
+ case 0x0288: return "_fileno";
+ case 0x0289: return "_findclose";
+ case 0x028a: return "_findfirst32";
+ case 0x028b: return "_findfirst32i64";
+ case 0x028c: return "_findfirst64";
+ case 0x028d: return "_findfirst64i32";
+ case 0x028e: return "_findnext32";
+ case 0x028f: return "_findnext32i64";
+ case 0x0290: return "_findnext64";
+ case 0x0291: return "_findnext64i32";
+ case 0x0292: return "_finite";
+ case 0x0293: return "_flsbuf";
+ case 0x0294: return "_flushall";
+ case 0x0295: return "_fmode";
+ case 0x0296: return "_fpclass";
+ case 0x0297: return "_fpieee_flt";
+ case 0x0298: return "_fpreset";
+ case 0x0299: return "_fprintf_l";
+ case 0x029a: return "_fprintf_p";
+ case 0x029b: return "_fprintf_p_l";
+ case 0x029c: return "_fprintf_s_l";
+ case 0x029d: return "_fputchar";
+ case 0x029e: return "_fputwc_nolock";
+ case 0x029f: return "_fputwchar";
+ case 0x02a0: return "_fread_nolock";
+ case 0x02a1: return "_fread_nolock_s";
+ case 0x02a2: return "_free_locale";
+ case 0x02a3: return "_freea";
+ case 0x02a4: return "_freea_s";
+ case 0x02a5: return "_freefls";
+ case 0x02a6: return "_fscanf_l";
+ case 0x02a7: return "_fscanf_s_l";
+ case 0x02a8: return "_fseek_nolock";
+ case 0x02a9: return "_fseeki64";
+ case 0x02aa: return "_fseeki64_nolock";
+ case 0x02ab: return "_fsopen";
+ case 0x02ac: return "_fstat32";
+ case 0x02ad: return "_fstat32i64";
+ case 0x02ae: return "_fstat64";
+ case 0x02af: return "_fstat64i32";
+ case 0x02b0: return "_ftell_nolock";
+ case 0x02b1: return "_ftelli64";
+ case 0x02b2: return "_ftelli64_nolock";
+ case 0x02b3: return "_ftime32";
+ case 0x02b4: return "_ftime32_s";
+ case 0x02b5: return "_ftime64";
+ case 0x02b6: return "_ftime64_s";
+ case 0x02b7: return "_ftol";
+ case 0x02b8: return "_fullpath";
+ case 0x02b9: return "_futime32";
+ case 0x02ba: return "_futime64";
+ case 0x02bb: return "_fwprintf_l";
+ case 0x02bc: return "_fwprintf_p";
+ case 0x02bd: return "_fwprintf_p_l";
+ case 0x02be: return "_fwprintf_s_l";
+ case 0x02bf: return "_fwrite_nolock";
+ case 0x02c0: return "_fwscanf_l";
+ case 0x02c1: return "_fwscanf_s_l";
+ case 0x02c2: return "_gcvt";
+ case 0x02c3: return "_gcvt_s";
+ case 0x02c4: return "_get_current_locale";
+ case 0x02c5: return "_get_daylight";
+ case 0x02c6: return "_get_doserrno";
+ case 0x02c7: return "_get_dstbias";
+ case 0x02c8: return "_get_errno";
+ case 0x02c9: return "_get_fmode";
+ case 0x02ca: return "_get_heap_handle";
+ case 0x02cb: return "_get_invalid_parameter_handler";
+ case 0x02cc: return "_get_osfhandle";
+ case 0x02cd: return "_get_output_format";
+ case 0x02ce: return "_get_pgmptr";
+ case 0x02cf: return "_get_printf_count_output";
+ case 0x02d0: return "_get_purecall_handler";
+ case 0x02d1: return "_get_terminate";
+ case 0x02d2: return "_get_timezone";
+ case 0x02d3: return "_get_tzname";
+ case 0x02d4: return "_get_unexpected";
+ case 0x02d5: return "_get_wpgmptr";
+ case 0x02d6: return "_getc_nolock";
+ case 0x02d7: return "_getch";
+ case 0x02d8: return "_getch_nolock";
+ case 0x02d9: return "_getche";
+ case 0x02da: return "_getche_nolock";
+ case 0x02db: return "_getcwd";
+ case 0x02dc: return "_getdcwd";
+ case 0x02dd: return "_getdiskfree";
+ case 0x02de: return "_getdllprocaddr";
+ case 0x02df: return "_getdrive";
+ case 0x02e0: return "_getdrives";
+ case 0x02e1: return "_getmaxstdio";
+ case 0x02e2: return "_getmbcp";
+ case 0x02e3: return "_getpid";
+ case 0x02e4: return "_getptd";
+ case 0x02e5: return "_getsystime";
+ case 0x02e6: return "_getw";
+ case 0x02e7: return "_getwch";
+ case 0x02e8: return "_getwch_nolock";
+ case 0x02e9: return "_getwche";
+ case 0x02ea: return "_getwche_nolock";
+ case 0x02eb: return "_getws";
+ case 0x02ec: return "_getws_s";
+ case 0x02ed: return "_global_unwind2";
+ case 0x02ee: return "_gmtime32";
+ case 0x02ef: return "_gmtime32_s";
+ case 0x02f0: return "_gmtime64";
+ case 0x02f1: return "_gmtime64_s";
+ case 0x02f2: return "_heapadd";
+ case 0x02f3: return "_heapchk";
+ case 0x02f4: return "_heapmin";
+ case 0x02f5: return "_heapset";
+ case 0x02f6: return "_heapused";
+ case 0x02f7: return "_heapwalk";
+ case 0x02f8: return "_hypot";
+ case 0x02f9: return "_hypotf";
+ case 0x02fa: return "_i64toa";
+ case 0x02fb: return "_i64toa_s";
+ case 0x02fc: return "_i64tow";
+ case 0x02fd: return "_i64tow_s";
+ case 0x02fe: return "_initptd";
+ case 0x02ff: return "_initterm";
+ case 0x0300: return "_initterm_e";
+ case 0x0301: return "_inp";
+ case 0x0302: return "_inpd";
+ case 0x0303: return "_inpw";
+ case 0x0304: return "_invalid_parameter";
+ case 0x0305: return "_invalid_parameter_noinfo";
+ case 0x0306: return "_invalid_parameter_noinfo_noreturn";
+ case 0x0307: return "_invoke_watson";
+ case 0x0308: return "_iob";
+ case 0x0309: return "_isalnum_l";
+ case 0x030a: return "_isalpha_l";
+ case 0x030b: return "_isatty";
+ case 0x030c: return "_iscntrl_l";
+ case 0x030d: return "_isctype";
+ case 0x030e: return "_isctype_l";
+ case 0x030f: return "_isdigit_l";
+ case 0x0310: return "_isgraph_l";
+ case 0x0311: return "_isleadbyte_l";
+ case 0x0312: return "_islower_l";
+ case 0x0313: return "_ismbbalnum";
+ case 0x0314: return "_ismbbalnum_l";
+ case 0x0315: return "_ismbbalpha";
+ case 0x0316: return "_ismbbalpha_l";
+ case 0x0317: return "_ismbbgraph";
+ case 0x0318: return "_ismbbgraph_l";
+ case 0x0319: return "_ismbbkalnum";
+ case 0x031a: return "_ismbbkalnum_l";
+ case 0x031b: return "_ismbbkana";
+ case 0x031c: return "_ismbbkana_l";
+ case 0x031d: return "_ismbbkprint";
+ case 0x031e: return "_ismbbkprint_l";
+ case 0x031f: return "_ismbbkpunct";
+ case 0x0320: return "_ismbbkpunct_l";
+ case 0x0321: return "_ismbblead";
+ case 0x0322: return "_ismbblead_l";
+ case 0x0323: return "_ismbbprint";
+ case 0x0324: return "_ismbbprint_l";
+ case 0x0325: return "_ismbbpunct";
+ case 0x0326: return "_ismbbpunct_l";
+ case 0x0327: return "_ismbbtrail";
+ case 0x0328: return "_ismbbtrail_l";
+ case 0x0329: return "_ismbcalnum";
+ case 0x032a: return "_ismbcalnum_l";
+ case 0x032b: return "_ismbcalpha";
+ case 0x032c: return "_ismbcalpha_l";
+ case 0x032d: return "_ismbcdigit";
+ case 0x032e: return "_ismbcdigit_l";
+ case 0x032f: return "_ismbcgraph";
+ case 0x0330: return "_ismbcgraph_l";
+ case 0x0331: return "_ismbchira";
+ case 0x0332: return "_ismbchira_l";
+ case 0x0333: return "_ismbckata";
+ case 0x0334: return "_ismbckata_l";
+ case 0x0335: return "_ismbcl0";
+ case 0x0336: return "_ismbcl0_l";
+ case 0x0337: return "_ismbcl1";
+ case 0x0338: return "_ismbcl1_l";
+ case 0x0339: return "_ismbcl2";
+ case 0x033a: return "_ismbcl2_l";
+ case 0x033b: return "_ismbclegal";
+ case 0x033c: return "_ismbclegal_l";
+ case 0x033d: return "_ismbclower";
+ case 0x033e: return "_ismbclower_l";
+ case 0x033f: return "_ismbcprint";
+ case 0x0340: return "_ismbcprint_l";
+ case 0x0341: return "_ismbcpunct";
+ case 0x0342: return "_ismbcpunct_l";
+ case 0x0343: return "_ismbcspace";
+ case 0x0344: return "_ismbcspace_l";
+ case 0x0345: return "_ismbcsymbol";
+ case 0x0346: return "_ismbcsymbol_l";
+ case 0x0347: return "_ismbcupper";
+ case 0x0348: return "_ismbcupper_l";
+ case 0x0349: return "_ismbslead";
+ case 0x034a: return "_ismbslead_l";
+ case 0x034b: return "_ismbstrail";
+ case 0x034c: return "_ismbstrail_l";
+ case 0x034d: return "_isnan";
+ case 0x034e: return "_isprint_l";
+ case 0x034f: return "_ispunct_l";
+ case 0x0350: return "_isspace_l";
+ case 0x0351: return "_isupper_l";
+ case 0x0352: return "_iswalnum_l";
+ case 0x0353: return "_iswalpha_l";
+ case 0x0354: return "_iswcntrl_l";
+ case 0x0355: return "_iswcsym_l";
+ case 0x0356: return "_iswcsymf_l";
+ case 0x0357: return "_iswctype_l";
+ case 0x0358: return "_iswdigit_l";
+ case 0x0359: return "_iswgraph_l";
+ case 0x035a: return "_iswlower_l";
+ case 0x035b: return "_iswprint_l";
+ case 0x035c: return "_iswpunct_l";
+ case 0x035d: return "_iswspace_l";
+ case 0x035e: return "_iswupper_l";
+ case 0x035f: return "_iswxdigit_l";
+ case 0x0360: return "_isxdigit_l";
+ case 0x0361: return "_itoa";
+ case 0x0362: return "_itoa_s";
+ case 0x0363: return "_itow";
+ case 0x0364: return "_itow_s";
+ case 0x0365: return "_j0";
+ case 0x0366: return "_j1";
+ case 0x0367: return "_jn";
+ case 0x0368: return "_kbhit";
+ case 0x0369: return "_lfind";
+ case 0x036a: return "_lfind_s";
+ case 0x036b: return "_libm_sse2_acos_precise";
+ case 0x036c: return "_libm_sse2_asin_precise";
+ case 0x036d: return "_libm_sse2_atan_precise";
+ case 0x036e: return "_libm_sse2_cos_precise";
+ case 0x036f: return "_libm_sse2_exp_precise";
+ case 0x0370: return "_libm_sse2_log10_precise";
+ case 0x0371: return "_libm_sse2_log_precise";
+ case 0x0372: return "_libm_sse2_pow_precise";
+ case 0x0373: return "_libm_sse2_sin_precise";
+ case 0x0374: return "_libm_sse2_sqrt_precise";
+ case 0x0375: return "_libm_sse2_tan_precise";
+ case 0x0376: return "_loaddll";
+ case 0x0377: return "_local_unwind2";
+ case 0x0378: return "_local_unwind4";
+ case 0x0379: return "_localtime32";
+ case 0x037a: return "_localtime32_s";
+ case 0x037b: return "_localtime64";
+ case 0x037c: return "_localtime64_s";
+ case 0x037d: return "_lock";
+ case 0x037e: return "_lock_file";
+ case 0x037f: return "_locking";
+ case 0x0380: return "_logb";
+ case 0x0381: return "_longjmpex";
+ case 0x0382: return "_lrotl";
+ case 0x0383: return "_lrotr";
+ case 0x0384: return "_lsearch";
+ case 0x0385: return "_lsearch_s";
+ case 0x0386: return "_lseek";
+ case 0x0387: return "_lseeki64";
+ case 0x0388: return "_ltoa";
+ case 0x0389: return "_ltoa_s";
+ case 0x038a: return "_ltow";
+ case 0x038b: return "_ltow_s";
+ case 0x038c: return "_makepath";
+ case 0x038d: return "_makepath_s";
+ case 0x038e: return "_malloc_crt";
+ case 0x038f: return "_mbbtombc";
+ case 0x0390: return "_mbbtombc_l";
+ case 0x0391: return "_mbbtype";
+ case 0x0392: return "_mbbtype_l";
+ case 0x0393: return "_mbcasemap";
+ case 0x0394: return "_mbccpy";
+ case 0x0395: return "_mbccpy_l";
+ case 0x0396: return "_mbccpy_s";
+ case 0x0397: return "_mbccpy_s_l";
+ case 0x0398: return "_mbcjistojms";
+ case 0x0399: return "_mbcjistojms_l";
+ case 0x039a: return "_mbcjmstojis";
+ case 0x039b: return "_mbcjmstojis_l";
+ case 0x039c: return "_mbclen";
+ case 0x039d: return "_mbclen_l";
+ case 0x039e: return "_mbctohira";
+ case 0x039f: return "_mbctohira_l";
+ case 0x03a0: return "_mbctokata";
+ case 0x03a1: return "_mbctokata_l";
+ case 0x03a2: return "_mbctolower";
+ case 0x03a3: return "_mbctolower_l";
+ case 0x03a4: return "_mbctombb";
+ case 0x03a5: return "_mbctombb_l";
+ case 0x03a6: return "_mbctoupper";
+ case 0x03a7: return "_mbctoupper_l";
+ case 0x03a8: return "_mbctype";
+ case 0x03a9: return "_mblen_l";
+ case 0x03aa: return "_mbsbtype";
+ case 0x03ab: return "_mbsbtype_l";
+ case 0x03ac: return "_mbscat_s";
+ case 0x03ad: return "_mbscat_s_l";
+ case 0x03ae: return "_mbschr";
+ case 0x03af: return "_mbschr_l";
+ case 0x03b0: return "_mbscmp";
+ case 0x03b1: return "_mbscmp_l";
+ case 0x03b2: return "_mbscoll";
+ case 0x03b3: return "_mbscoll_l";
+ case 0x03b4: return "_mbscpy_s";
+ case 0x03b5: return "_mbscpy_s_l";
+ case 0x03b6: return "_mbscspn";
+ case 0x03b7: return "_mbscspn_l";
+ case 0x03b8: return "_mbsdec";
+ case 0x03b9: return "_mbsdec_l";
+ case 0x03ba: return "_mbsicmp";
+ case 0x03bb: return "_mbsicmp_l";
+ case 0x03bc: return "_mbsicoll";
+ case 0x03bd: return "_mbsicoll_l";
+ case 0x03be: return "_mbsinc";
+ case 0x03bf: return "_mbsinc_l";
+ case 0x03c0: return "_mbslen";
+ case 0x03c1: return "_mbslen_l";
+ case 0x03c2: return "_mbslwr";
+ case 0x03c3: return "_mbslwr_l";
+ case 0x03c4: return "_mbslwr_s";
+ case 0x03c5: return "_mbslwr_s_l";
+ case 0x03c6: return "_mbsnbcat";
+ case 0x03c7: return "_mbsnbcat_l";
+ case 0x03c8: return "_mbsnbcat_s";
+ case 0x03c9: return "_mbsnbcat_s_l";
+ case 0x03ca: return "_mbsnbcmp";
+ case 0x03cb: return "_mbsnbcmp_l";
+ case 0x03cc: return "_mbsnbcnt";
+ case 0x03cd: return "_mbsnbcnt_l";
+ case 0x03ce: return "_mbsnbcoll";
+ case 0x03cf: return "_mbsnbcoll_l";
+ case 0x03d0: return "_mbsnbcpy";
+ case 0x03d1: return "_mbsnbcpy_l";
+ case 0x03d2: return "_mbsnbcpy_s";
+ case 0x03d3: return "_mbsnbcpy_s_l";
+ case 0x03d4: return "_mbsnbicmp";
+ case 0x03d5: return "_mbsnbicmp_l";
+ case 0x03d6: return "_mbsnbicoll";
+ case 0x03d7: return "_mbsnbicoll_l";
+ case 0x03d8: return "_mbsnbset";
+ case 0x03d9: return "_mbsnbset_l";
+ case 0x03da: return "_mbsnbset_s";
+ case 0x03db: return "_mbsnbset_s_l";
+ case 0x03dc: return "_mbsncat";
+ case 0x03dd: return "_mbsncat_l";
+ case 0x03de: return "_mbsncat_s";
+ case 0x03df: return "_mbsncat_s_l";
+ case 0x03e0: return "_mbsnccnt";
+ case 0x03e1: return "_mbsnccnt_l";
+ case 0x03e2: return "_mbsncmp";
+ case 0x03e3: return "_mbsncmp_l";
+ case 0x03e4: return "_mbsncoll";
+ case 0x03e5: return "_mbsncoll_l";
+ case 0x03e6: return "_mbsncpy";
+ case 0x03e7: return "_mbsncpy_l";
+ case 0x03e8: return "_mbsncpy_s";
+ case 0x03e9: return "_mbsncpy_s_l";
+ case 0x03ea: return "_mbsnextc";
+ case 0x03eb: return "_mbsnextc_l";
+ case 0x03ec: return "_mbsnicmp";
+ case 0x03ed: return "_mbsnicmp_l";
+ case 0x03ee: return "_mbsnicoll";
+ case 0x03ef: return "_mbsnicoll_l";
+ case 0x03f0: return "_mbsninc";
+ case 0x03f1: return "_mbsninc_l";
+ case 0x03f2: return "_mbsnlen";
+ case 0x03f3: return "_mbsnlen_l";
+ case 0x03f4: return "_mbsnset";
+ case 0x03f5: return "_mbsnset_l";
+ case 0x03f6: return "_mbsnset_s";
+ case 0x03f7: return "_mbsnset_s_l";
+ case 0x03f8: return "_mbspbrk";
+ case 0x03f9: return "_mbspbrk_l";
+ case 0x03fa: return "_mbsrchr";
+ case 0x03fb: return "_mbsrchr_l";
+ case 0x03fc: return "_mbsrev";
+ case 0x03fd: return "_mbsrev_l";
+ case 0x03fe: return "_mbsset";
+ case 0x03ff: return "_mbsset_l";
+ case 0x0400: return "_mbsset_s";
+ case 0x0401: return "_mbsset_s_l";
+ case 0x0402: return "_mbsspn";
+ case 0x0403: return "_mbsspn_l";
+ case 0x0404: return "_mbsspnp";
+ case 0x0405: return "_mbsspnp_l";
+ case 0x0406: return "_mbsstr";
+ case 0x0407: return "_mbsstr_l";
+ case 0x0408: return "_mbstok";
+ case 0x0409: return "_mbstok_l";
+ case 0x040a: return "_mbstok_s";
+ case 0x040b: return "_mbstok_s_l";
+ case 0x040c: return "_mbstowcs_l";
+ case 0x040d: return "_mbstowcs_s_l";
+ case 0x040e: return "_mbstrlen";
+ case 0x040f: return "_mbstrlen_l";
+ case 0x0410: return "_mbstrnlen";
+ case 0x0411: return "_mbstrnlen_l";
+ case 0x0412: return "_mbsupr";
+ case 0x0413: return "_mbsupr_l";
+ case 0x0414: return "_mbsupr_s";
+ case 0x0415: return "_mbsupr_s_l";
+ case 0x0416: return "_mbtowc_l";
+ case 0x0417: return "_memccpy";
+ case 0x0418: return "_memicmp";
+ case 0x0419: return "_memicmp_l";
+ case 0x041a: return "_mkdir";
+ case 0x041b: return "_mkgmtime32";
+ case 0x041c: return "_mkgmtime64";
+ case 0x041d: return "_mktemp";
+ case 0x041e: return "_mktemp_s";
+ case 0x041f: return "_mktime32";
+ case 0x0420: return "_mktime64";
+ case 0x0421: return "_msize";
+ case 0x0422: return "_nextafter";
+ case 0x0423: return "_onexit";
+ case 0x0424: return "_open";
+ case 0x0425: return "_open_osfhandle";
+ case 0x0426: return "_outp";
+ case 0x0427: return "_outpd";
+ case 0x0428: return "_outpw";
+ case 0x0429: return "_pclose";
+ case 0x042a: return "_pctype";
+ case 0x042b: return "_pgmptr";
+ case 0x042c: return "_pipe";
+ case 0x042d: return "_popen";
+ case 0x042e: return "_printf_l";
+ case 0x042f: return "_printf_p";
+ case 0x0430: return "_printf_p_l";
+ case 0x0431: return "_printf_s_l";
+ case 0x0432: return "_purecall";
+ case 0x0433: return "_putch";
+ case 0x0434: return "_putch_nolock";
+ case 0x0435: return "_putenv";
+ case 0x0436: return "_putenv_s";
+ case 0x0437: return "_putw";
+ case 0x0438: return "_putwch";
+ case 0x0439: return "_putwch_nolock";
+ case 0x043a: return "_putws";
+ case 0x043b: return "_pwctype";
+ case 0x043c: return "_read";
+ case 0x043d: return "_realloc_crt";
+ case 0x043e: return "_recalloc";
+ case 0x043f: return "_recalloc_crt";
+ case 0x0440: return "_resetstkoflw";
+ case 0x0441: return "_rmdir";
+ case 0x0442: return "_rmtmp";
+ case 0x0443: return "_rotl";
+ case 0x0444: return "_rotl64";
+ case 0x0445: return "_rotr";
+ case 0x0446: return "_rotr64";
+ case 0x0447: return "_scalb";
+ case 0x0448: return "_scanf_l";
+ case 0x0449: return "_scanf_s_l";
+ case 0x044a: return "_scprintf";
+ case 0x044b: return "_scprintf_l";
+ case 0x044c: return "_scprintf_p";
+ case 0x044d: return "_scprintf_p_l";
+ case 0x044e: return "_scwprintf";
+ case 0x044f: return "_scwprintf_l";
+ case 0x0450: return "_scwprintf_p";
+ case 0x0451: return "_scwprintf_p_l";
+ case 0x0452: return "_searchenv";
+ case 0x0453: return "_searchenv_s";
+ case 0x0455: return "_seh_longjmp_unwind";
+ case 0x0454: return "_seh_longjmp_unwind4";
+ case 0x0456: return "_set_SSE2_enable";
+ case 0x0457: return "_set_abort_behavior";
+ case 0x0458: return "_set_controlfp";
+ case 0x0459: return "_set_doserrno";
+ case 0x045a: return "_set_errno";
+ case 0x045b: return "_set_error_mode";
+ case 0x045c: return "_set_fmode";
+ case 0x045d: return "_set_invalid_parameter_handler";
+ case 0x045e: return "_set_malloc_crt_max_wait";
+ case 0x045f: return "_set_output_format";
+ case 0x0460: return "_set_printf_count_output";
+ case 0x0461: return "_set_purecall_handler";
+ case 0x0462: return "_seterrormode";
+ case 0x0463: return "_setjmp";
+ case 0x0464: return "_setjmp3";
+ case 0x0465: return "_setmaxstdio";
+ case 0x0466: return "_setmbcp";
+ case 0x0467: return "_setmode";
+ case 0x0468: return "_setsystime";
+ case 0x0469: return "_sleep";
+ case 0x046a: return "_snprintf";
+ case 0x046b: return "_snprintf_c";
+ case 0x046c: return "_snprintf_c_l";
+ case 0x046d: return "_snprintf_l";
+ case 0x046e: return "_snprintf_s";
+ case 0x046f: return "_snprintf_s_l";
+ case 0x0470: return "_snscanf";
+ case 0x0471: return "_snscanf_l";
+ case 0x0472: return "_snscanf_s";
+ case 0x0473: return "_snscanf_s_l";
+ case 0x0474: return "_snwprintf";
+ case 0x0475: return "_snwprintf_l";
+ case 0x0476: return "_snwprintf_s";
+ case 0x0477: return "_snwprintf_s_l";
+ case 0x0478: return "_snwscanf";
+ case 0x0479: return "_snwscanf_l";
+ case 0x047a: return "_snwscanf_s";
+ case 0x047b: return "_snwscanf_s_l";
+ case 0x047c: return "_sopen";
+ case 0x047d: return "_sopen_s";
+ case 0x047e: return "_spawnl";
+ case 0x047f: return "_spawnle";
+ case 0x0480: return "_spawnlp";
+ case 0x0481: return "_spawnlpe";
+ case 0x0482: return "_spawnv";
+ case 0x0483: return "_spawnve";
+ case 0x0484: return "_spawnvp";
+ case 0x0485: return "_spawnvpe";
+ case 0x0486: return "_splitpath";
+ case 0x0487: return "_splitpath_s";
+ case 0x0488: return "_sprintf_l";
+ case 0x0489: return "_sprintf_p";
+ case 0x048a: return "_sprintf_p_l";
+ case 0x048b: return "_sprintf_s_l";
+ case 0x048c: return "_sscanf_l";
+ case 0x048d: return "_sscanf_s_l";
+ case 0x048e: return "_stat32";
+ case 0x048f: return "_stat32i64";
+ case 0x0490: return "_stat64";
+ case 0x0491: return "_stat64i32";
+ case 0x0492: return "_statusfp";
+ case 0x0493: return "_statusfp2";
+ case 0x0494: return "_strcoll_l";
+ case 0x0495: return "_strdate";
+ case 0x0496: return "_strdate_s";
+ case 0x0497: return "_strdup";
+ case 0x0498: return "_strerror";
+ case 0x0499: return "_strerror_s";
+ case 0x049a: return "_strftime_l";
+ case 0x049b: return "_stricmp";
+ case 0x049c: return "_stricmp_l";
+ case 0x049d: return "_stricoll";
+ case 0x049e: return "_stricoll_l";
+ case 0x049f: return "_strlwr";
+ case 0x04a0: return "_strlwr_l";
+ case 0x04a1: return "_strlwr_s";
+ case 0x04a2: return "_strlwr_s_l";
+ case 0x04a3: return "_strncoll";
+ case 0x04a4: return "_strncoll_l";
+ case 0x04a5: return "_strnicmp";
+ case 0x04a6: return "_strnicmp_l";
+ case 0x04a7: return "_strnicoll";
+ case 0x04a8: return "_strnicoll_l";
+ case 0x04a9: return "_strnset";
+ case 0x04aa: return "_strnset_s";
+ case 0x04ab: return "_strrev";
+ case 0x04ac: return "_strset";
+ case 0x04ad: return "_strset_s";
+ case 0x04ae: return "_strtime";
+ case 0x04af: return "_strtime_s";
+ case 0x04b0: return "_strtod_l";
+ case 0x04b1: return "_strtoi64";
+ case 0x04b2: return "_strtoi64_l";
+ case 0x04b3: return "_strtol_l";
+ case 0x04b4: return "_strtoui64";
+ case 0x04b5: return "_strtoui64_l";
+ case 0x04b6: return "_strtoul_l";
+ case 0x04b7: return "_strupr";
+ case 0x04b8: return "_strupr_l";
+ case 0x04b9: return "_strupr_s";
+ case 0x04ba: return "_strupr_s_l";
+ case 0x04bb: return "_strxfrm_l";
+ case 0x04bc: return "_swab";
+ case 0x04bd: return "_swprintf";
+ case 0x04be: return "_swprintf_c";
+ case 0x04bf: return "_swprintf_c_l";
+ case 0x04c0: return "_swprintf_p";
+ case 0x04c1: return "_swprintf_p_l";
+ case 0x04c2: return "_swprintf_s_l";
+ case 0x04c3: return "_swscanf_l";
+ case 0x04c4: return "_swscanf_s_l";
+ case 0x04c5: return "_sys_errlist";
+ case 0x04c6: return "_sys_nerr";
+ case 0x04c7: return "_tell";
+ case 0x04c8: return "_telli64";
+ case 0x04c9: return "_tempnam";
+ case 0x04ca: return "_time32";
+ case 0x04cb: return "_time64";
+ case 0x04cc: return "_timezone";
+ case 0x04cd: return "_tolower";
+ case 0x04ce: return "_tolower_l";
+ case 0x04cf: return "_toupper";
+ case 0x04d0: return "_toupper_l";
+ case 0x04d1: return "_towlower_l";
+ case 0x04d2: return "_towupper_l";
+ case 0x04d3: return "_tzname";
+ case 0x04d4: return "_tzset";
+ case 0x04d5: return "_ui64toa";
+ case 0x04d6: return "_ui64toa_s";
+ case 0x04d7: return "_ui64tow";
+ case 0x04d8: return "_ui64tow_s";
+ case 0x04d9: return "_ultoa";
+ case 0x04da: return "_ultoa_s";
+ case 0x04db: return "_ultow";
+ case 0x04dc: return "_ultow_s";
+ case 0x04dd: return "_umask";
+ case 0x04de: return "_umask_s";
+ case 0x04df: return "_ungetc_nolock";
+ case 0x04e0: return "_ungetch";
+ case 0x04e1: return "_ungetch_nolock";
+ case 0x04e2: return "_ungetwc_nolock";
+ case 0x04e3: return "_ungetwch";
+ case 0x04e4: return "_ungetwch_nolock";
+ case 0x04e5: return "_unlink";
+ case 0x04e6: return "_unloaddll";
+ case 0x04e7: return "_unlock";
+ case 0x04e8: return "_unlock_file";
+ case 0x04e9: return "_utime32";
+ case 0x04ea: return "_utime64";
+ case 0x04eb: return "_vcprintf";
+ case 0x04ec: return "_vcprintf_l";
+ case 0x04ed: return "_vcprintf_p";
+ case 0x04ee: return "_vcprintf_p_l";
+ case 0x04ef: return "_vcprintf_s";
+ case 0x04f0: return "_vcprintf_s_l";
+ case 0x04f1: return "_vcwprintf";
+ case 0x04f2: return "_vcwprintf_l";
+ case 0x04f3: return "_vcwprintf_p";
+ case 0x04f4: return "_vcwprintf_p_l";
+ case 0x04f5: return "_vcwprintf_s";
+ case 0x04f6: return "_vcwprintf_s_l";
+ case 0x04f7: return "_vfprintf_l";
+ case 0x04f8: return "_vfprintf_p";
+ case 0x04f9: return "_vfprintf_p_l";
+ case 0x04fa: return "_vfprintf_s_l";
+ case 0x04fb: return "_vfwprintf_l";
+ case 0x04fc: return "_vfwprintf_p";
+ case 0x04fd: return "_vfwprintf_p_l";
+ case 0x04fe: return "_vfwprintf_s_l";
+ case 0x04ff: return "_vprintf_l";
+ case 0x0500: return "_vprintf_p";
+ case 0x0501: return "_vprintf_p_l";
+ case 0x0502: return "_vprintf_s_l";
+ case 0x0503: return "_vscprintf";
+ case 0x0504: return "_vscprintf_l";
+ case 0x0505: return "_vscprintf_p";
+ case 0x0506: return "_vscprintf_p_l";
+ case 0x0507: return "_vscwprintf";
+ case 0x0508: return "_vscwprintf_l";
+ case 0x0509: return "_vscwprintf_p";
+ case 0x050a: return "_vscwprintf_p_l";
+ case 0x050b: return "_vsnprintf";
+ case 0x050c: return "_vsnprintf_c";
+ case 0x050d: return "_vsnprintf_c_l";
+ case 0x050e: return "_vsnprintf_l";
+ case 0x050f: return "_vsnprintf_s";
+ case 0x0510: return "_vsnprintf_s_l";
+ case 0x0511: return "_vsnwprintf";
+ case 0x0512: return "_vsnwprintf_l";
+ case 0x0513: return "_vsnwprintf_s";
+ case 0x0514: return "_vsnwprintf_s_l";
+ case 0x0515: return "_vsprintf_l";
+ case 0x0516: return "_vsprintf_p";
+ case 0x0517: return "_vsprintf_p_l";
+ case 0x0518: return "_vsprintf_s_l";
+ case 0x0519: return "_vswprintf";
+ case 0x051a: return "_vswprintf_c";
+ case 0x051b: return "_vswprintf_c_l";
+ case 0x051c: return "_vswprintf_l";
+ case 0x051d: return "_vswprintf_p";
+ case 0x051e: return "_vswprintf_p_l";
+ case 0x051f: return "_vswprintf_s_l";
+ case 0x0520: return "_vwprintf_l";
+ case 0x0521: return "_vwprintf_p";
+ case 0x0522: return "_vwprintf_p_l";
+ case 0x0523: return "_vwprintf_s_l";
+ case 0x0524: return "_waccess";
+ case 0x0525: return "_waccess_s";
+ case 0x0526: return "_wasctime";
+ case 0x0527: return "_wasctime_s";
+ case 0x0528: return "_wassert";
+ case 0x0529: return "_wchdir";
+ case 0x052a: return "_wchmod";
+ case 0x052b: return "_wcmdln";
+ case 0x052c: return "_wcreat";
+ case 0x052d: return "_wcreate_locale";
+ case 0x052e: return "_wcscoll_l";
+ case 0x052f: return "_wcsdup";
+ case 0x0530: return "_wcserror";
+ case 0x0531: return "_wcserror_s";
+ case 0x0532: return "_wcsftime_l";
+ case 0x0533: return "_wcsicmp";
+ case 0x0534: return "_wcsicmp_l";
+ case 0x0535: return "_wcsicoll";
+ case 0x0536: return "_wcsicoll_l";
+ case 0x0537: return "_wcslwr";
+ case 0x0538: return "_wcslwr_l";
+ case 0x0539: return "_wcslwr_s";
+ case 0x053a: return "_wcslwr_s_l";
+ case 0x053b: return "_wcsncoll";
+ case 0x053c: return "_wcsncoll_l";
+ case 0x053d: return "_wcsnicmp";
+ case 0x053e: return "_wcsnicmp_l";
+ case 0x053f: return "_wcsnicoll";
+ case 0x0540: return "_wcsnicoll_l";
+ case 0x0541: return "_wcsnset";
+ case 0x0542: return "_wcsnset_s";
+ case 0x0543: return "_wcsrev";
+ case 0x0544: return "_wcsset";
+ case 0x0545: return "_wcsset_s";
+ case 0x0546: return "_wcstod_l";
+ case 0x0547: return "_wcstoi64";
+ case 0x0548: return "_wcstoi64_l";
+ case 0x0549: return "_wcstol_l";
+ case 0x054a: return "_wcstombs_l";
+ case 0x054b: return "_wcstombs_s_l";
+ case 0x054c: return "_wcstoui64";
+ case 0x054d: return "_wcstoui64_l";
+ case 0x054e: return "_wcstoul_l";
+ case 0x054f: return "_wcsupr";
+ case 0x0550: return "_wcsupr_l";
+ case 0x0551: return "_wcsupr_s";
+ case 0x0552: return "_wcsupr_s_l";
+ case 0x0553: return "_wcsxfrm_l";
+ case 0x0554: return "_wctime32";
+ case 0x0555: return "_wctime32_s";
+ case 0x0556: return "_wctime64";
+ case 0x0557: return "_wctime64_s";
+ case 0x0558: return "_wctomb_l";
+ case 0x0559: return "_wctomb_s_l";
+ case 0x055a: return "_wctype";
+ case 0x055b: return "_wdupenv_s";
+ case 0x055c: return "_wenviron";
+ case 0x055d: return "_wexecl";
+ case 0x055e: return "_wexecle";
+ case 0x055f: return "_wexeclp";
+ case 0x0560: return "_wexeclpe";
+ case 0x0561: return "_wexecv";
+ case 0x0562: return "_wexecve";
+ case 0x0563: return "_wexecvp";
+ case 0x0564: return "_wexecvpe";
+ case 0x0565: return "_wfdopen";
+ case 0x0566: return "_wfindfirst32";
+ case 0x0567: return "_wfindfirst32i64";
+ case 0x0568: return "_wfindfirst64";
+ case 0x0569: return "_wfindfirst64i32";
+ case 0x056a: return "_wfindnext32";
+ case 0x056b: return "_wfindnext32i64";
+ case 0x056c: return "_wfindnext64";
+ case 0x056d: return "_wfindnext64i32";
+ case 0x056e: return "_wfopen";
+ case 0x056f: return "_wfopen_s";
+ case 0x0570: return "_wfreopen";
+ case 0x0571: return "_wfreopen_s";
+ case 0x0572: return "_wfsopen";
+ case 0x0573: return "_wfullpath";
+ case 0x0574: return "_wgetcwd";
+ case 0x0575: return "_wgetdcwd";
+ case 0x0576: return "_wgetenv";
+ case 0x0577: return "_wgetenv_s";
+ case 0x0578: return "_wmakepath";
+ case 0x0579: return "_wmakepath_s";
+ case 0x057a: return "_wmkdir";
+ case 0x057b: return "_wmktemp";
+ case 0x057c: return "_wmktemp_s";
+ case 0x057d: return "_wopen";
+ case 0x057e: return "_wperror";
+ case 0x057f: return "_wpgmptr";
+ case 0x0580: return "_wpopen";
+ case 0x0581: return "_wprintf_l";
+ case 0x0582: return "_wprintf_p";
+ case 0x0583: return "_wprintf_p_l";
+ case 0x0584: return "_wprintf_s_l";
+ case 0x0585: return "_wputenv";
+ case 0x0586: return "_wputenv_s";
+ case 0x0587: return "_wremove";
+ case 0x0588: return "_wrename";
+ case 0x0589: return "_write";
+ case 0x058a: return "_wrmdir";
+ case 0x058b: return "_wscanf_l";
+ case 0x058c: return "_wscanf_s_l";
+ case 0x058d: return "_wsearchenv";
+ case 0x058e: return "_wsearchenv_s";
+ case 0x058f: return "_wsetlocale";
+ case 0x0590: return "_wsopen";
+ case 0x0591: return "_wsopen_s";
+ case 0x0592: return "_wspawnl";
+ case 0x0593: return "_wspawnle";
+ case 0x0594: return "_wspawnlp";
+ case 0x0595: return "_wspawnlpe";
+ case 0x0596: return "_wspawnv";
+ case 0x0597: return "_wspawnve";
+ case 0x0598: return "_wspawnvp";
+ case 0x0599: return "_wspawnvpe";
+ case 0x059a: return "_wsplitpath";
+ case 0x059b: return "_wsplitpath_s";
+ case 0x059c: return "_wstat32";
+ case 0x059d: return "_wstat32i64";
+ case 0x059e: return "_wstat64";
+ case 0x059f: return "_wstat64i32";
+ case 0x05a0: return "_wstrdate";
+ case 0x05a1: return "_wstrdate_s";
+ case 0x05a2: return "_wstrtime";
+ case 0x05a3: return "_wstrtime_s";
+ case 0x05a4: return "_wsystem";
+ case 0x05a5: return "_wtempnam";
+ case 0x05a6: return "_wtmpnam";
+ case 0x05a7: return "_wtmpnam_s";
+ case 0x05a8: return "_wtof";
+ case 0x05a9: return "_wtof_l";
+ case 0x05aa: return "_wtoi";
+ case 0x05ab: return "_wtoi64";
+ case 0x05ac: return "_wtoi64_l";
+ case 0x05ad: return "_wtoi_l";
+ case 0x05ae: return "_wtol";
+ case 0x05af: return "_wtol_l";
+ case 0x05b0: return "_wunlink";
+ case 0x05b1: return "_wutime32";
+ case 0x05b2: return "_wutime64";
+ case 0x05b3: return "_y0";
+ case 0x05b4: return "_y1";
+ case 0x05b5: return "_yn";
+ case 0x05b6: return "abort";
+ case 0x05b7: return "abs";
+ case 0x05b8: return "acos";
+ case 0x05b9: return "asctime";
+ case 0x05ba: return "asctime_s";
+ case 0x05bb: return "asin";
+ case 0x05bc: return "atan";
+ case 0x05bd: return "atan2";
+ case 0x05be: return "atexit";
+ case 0x05bf: return "atof";
+ case 0x05c0: return "atoi";
+ case 0x05c1: return "atol";
+ case 0x05c2: return "bsearch";
+ case 0x05c3: return "bsearch_s";
+ case 0x05c4: return "btowc";
+ case 0x05c5: return "calloc";
+ case 0x05c6: return "ceil";
+ case 0x05c7: return "clearerr";
+ case 0x05c8: return "clearerr_s";
+ case 0x05c9: return "clock";
+ case 0x05ca: return "cos";
+ case 0x05cb: return "cosh";
+ case 0x05cc: return "div";
+ case 0x05cd: return "exit";
+ case 0x05ce: return "exp";
+ case 0x05cf: return "fabs";
+ case 0x05d0: return "fclose";
+ case 0x05d1: return "feof";
+ case 0x05d2: return "ferror";
+ case 0x05d3: return "fflush";
+ case 0x05d4: return "fgetc";
+ case 0x05d5: return "fgetpos";
+ case 0x05d6: return "fgets";
+ case 0x05d7: return "fgetwc";
+ case 0x05d8: return "fgetws";
+ case 0x05d9: return "floor";
+ case 0x05da: return "fmod";
+ case 0x05db: return "fopen";
+ case 0x05dc: return "fopen_s";
+ case 0x05dd: return "fprintf";
+ case 0x05de: return "fprintf_s";
+ case 0x05df: return "fputc";
+ case 0x05e0: return "fputs";
+ case 0x05e1: return "fputwc";
+ case 0x05e2: return "fputws";
+ case 0x05e3: return "fread";
+ case 0x05e4: return "fread_s";
+ case 0x05e5: return "free";
+ case 0x05e6: return "freopen";
+ case 0x05e7: return "freopen_s";
+ case 0x05e8: return "frexp";
+ case 0x05e9: return "fscanf";
+ case 0x05ea: return "fscanf_s";
+ case 0x05eb: return "fseek";
+ case 0x05ec: return "fsetpos";
+ case 0x05ed: return "ftell";
+ case 0x05ee: return "fwprintf";
+ case 0x05ef: return "fwprintf_s";
+ case 0x05f0: return "fwrite";
+ case 0x05f1: return "fwscanf";
+ case 0x05f2: return "fwscanf_s";
+ case 0x05f3: return "getc";
+ case 0x05f4: return "getchar";
+ case 0x05f5: return "getenv";
+ case 0x05f6: return "getenv_s";
+ case 0x05f7: return "gets";
+ case 0x05f8: return "gets_s";
+ case 0x05f9: return "getwc";
+ case 0x05fa: return "getwchar";
+ case 0x05fb: return "is_wctype";
+ case 0x05fc: return "isalnum";
+ case 0x05fd: return "isalpha";
+ case 0x05fe: return "iscntrl";
+ case 0x05ff: return "isdigit";
+ case 0x0600: return "isgraph";
+ case 0x0601: return "isleadbyte";
+ case 0x0602: return "islower";
+ case 0x0603: return "isprint";
+ case 0x0604: return "ispunct";
+ case 0x0605: return "isspace";
+ case 0x0606: return "isupper";
+ case 0x0607: return "iswalnum";
+ case 0x0608: return "iswalpha";
+ case 0x0609: return "iswascii";
+ case 0x060a: return "iswcntrl";
+ case 0x060b: return "iswctype";
+ case 0x060c: return "iswdigit";
+ case 0x060d: return "iswgraph";
+ case 0x060e: return "iswlower";
+ case 0x060f: return "iswprint";
+ case 0x0610: return "iswpunct";
+ case 0x0611: return "iswspace";
+ case 0x0612: return "iswupper";
+ case 0x0613: return "iswxdigit";
+ case 0x0614: return "isxdigit";
+ case 0x0615: return "labs";
+ case 0x0616: return "ldexp";
+ case 0x0617: return "ldiv";
+ case 0x0618: return "llabs";
+ case 0x0619: return "lldiv";
+ case 0x061a: return "localeconv";
+ case 0x061b: return "log";
+ case 0x061c: return "log10";
+ case 0x061d: return "longjmp";
+ case 0x061e: return "malloc";
+ case 0x061f: return "mblen";
+ case 0x0620: return "mbrlen";
+ case 0x0621: return "mbrtowc";
+ case 0x0622: return "mbsrtowcs";
+ case 0x0623: return "mbsrtowcs_s";
+ case 0x0624: return "mbstowcs";
+ case 0x0625: return "mbstowcs_s";
+ case 0x0626: return "mbtowc";
+ case 0x0627: return "memchr";
+ case 0x0628: return "memcmp";
+ case 0x0629: return "memcpy";
+ case 0x062a: return "memcpy_s";
+ case 0x062b: return "memmove";
+ case 0x062c: return "memmove_s";
+ case 0x062d: return "memset";
+ case 0x062e: return "modf";
+ case 0x062f: return "perror";
+ case 0x0630: return "pow";
+ case 0x0631: return "printf";
+ case 0x0632: return "printf_s";
+ case 0x0633: return "putc";
+ case 0x0634: return "putchar";
+ case 0x0635: return "puts";
+ case 0x0636: return "putwc";
+ case 0x0637: return "putwchar";
+ case 0x0638: return "qsort";
+ case 0x0639: return "qsort_s";
+ case 0x063a: return "raise";
+ case 0x063b: return "rand";
+ case 0x063c: return "rand_s";
+ case 0x063d: return "realloc";
+ case 0x063e: return "remove";
+ case 0x063f: return "rename";
+ case 0x0640: return "rewind";
+ case 0x0641: return "scanf";
+ case 0x0642: return "scanf_s";
+ case 0x0643: return "setbuf";
+ case 0x0644: return "setlocale";
+ case 0x0645: return "setvbuf";
+ case 0x0646: return "signal";
+ case 0x0647: return "sin";
+ case 0x0648: return "sinh";
+ case 0x0649: return "sprintf";
+ case 0x064a: return "sprintf_s";
+ case 0x064b: return "sqrt";
+ case 0x064c: return "srand";
+ case 0x064d: return "sscanf";
+ case 0x064e: return "sscanf_s";
+ case 0x064f: return "strcat";
+ case 0x0650: return "strcat_s";
+ case 0x0651: return "strchr";
+ case 0x0652: return "strcmp";
+ case 0x0653: return "strcoll";
+ case 0x0654: return "strcpy";
+ case 0x0655: return "strcpy_s";
+ case 0x0656: return "strcspn";
+ case 0x0657: return "strerror";
+ case 0x0658: return "strerror_s";
+ case 0x0659: return "strftime";
+ case 0x065a: return "strlen";
+ case 0x065b: return "strncat";
+ case 0x065c: return "strncat_s";
+ case 0x065d: return "strncmp";
+ case 0x065e: return "strncpy";
+ case 0x065f: return "strncpy_s";
+ case 0x0660: return "strnlen";
+ case 0x0661: return "strpbrk";
+ case 0x0662: return "strrchr";
+ case 0x0663: return "strspn";
+ case 0x0664: return "strstr";
+ case 0x0665: return "strtod";
+ case 0x0666: return "strtok";
+ case 0x0667: return "strtok_s";
+ case 0x0668: return "strtol";
+ case 0x0669: return "strtoul";
+ case 0x066a: return "strxfrm";
+ case 0x066b: return "swprintf_s";
+ case 0x066c: return "swscanf";
+ case 0x066d: return "swscanf_s";
+ case 0x066e: return "system";
+ case 0x066f: return "tan";
+ case 0x0670: return "tanh";
+ case 0x0671: return "tmpfile";
+ case 0x0672: return "tmpfile_s";
+ case 0x0673: return "tmpnam";
+ case 0x0674: return "tmpnam_s";
+ case 0x0675: return "tolower";
+ case 0x0676: return "toupper";
+ case 0x0677: return "towlower";
+ case 0x0678: return "towupper";
+ case 0x0679: return "ungetc";
+ case 0x067a: return "ungetwc";
+ case 0x067b: return "vfprintf";
+ case 0x067c: return "vfprintf_s";
+ case 0x067d: return "vfwprintf";
+ case 0x067e: return "vfwprintf_s";
+ case 0x067f: return "vprintf";
+ case 0x0680: return "vprintf_s";
+ case 0x0681: return "vsprintf";
+ case 0x0682: return "vsprintf_s";
+ case 0x0683: return "vswprintf_s";
+ case 0x0684: return "vwprintf";
+ case 0x0685: return "vwprintf_s";
+ case 0x0686: return "wcrtomb";
+ case 0x0687: return "wcrtomb_s";
+ case 0x0688: return "wcscat";
+ case 0x0689: return "wcscat_s";
+ case 0x068a: return "wcschr";
+ case 0x068b: return "wcscmp";
+ case 0x068c: return "wcscoll";
+ case 0x068d: return "wcscpy";
+ case 0x068e: return "wcscpy_s";
+ case 0x068f: return "wcscspn";
+ case 0x0690: return "wcsftime";
+ case 0x0691: return "wcslen";
+ case 0x0692: return "wcsncat";
+ case 0x0693: return "wcsncat_s";
+ case 0x0694: return "wcsncmp";
+ case 0x0695: return "wcsncpy";
+ case 0x0696: return "wcsncpy_s";
+ case 0x0697: return "wcsnlen";
+ case 0x0698: return "wcspbrk";
+ case 0x0699: return "wcsrchr";
+ case 0x069a: return "wcsrtombs";
+ case 0x069b: return "wcsrtombs_s";
+ case 0x069c: return "wcsspn";
+ case 0x069d: return "wcsstr";
+ case 0x069e: return "wcstod";
+ case 0x069f: return "wcstok";
+ case 0x06a0: return "wcstok_s";
+ case 0x06a1: return "wcstol";
+ case 0x06a2: return "wcstombs";
+ case 0x06a3: return "wcstombs_s";
+ case 0x06a4: return "wcstoul";
+ case 0x06a5: return "wcsxfrm";
+ case 0x06a6: return "wctob";
+ case 0x06a7: return "wctomb";
+ case 0x06a8: return "wctomb_s";
+ case 0x06a9: return "wmemcpy_s";
+ case 0x06aa: return "wmemmove_s";
+ case 0x06ab: return "wprintf";
+ case 0x06ac: return "wprintf_s";
+ case 0x06ad: return "wscanf";
+ case 0x06ae: return "wscanf_s";
}
return nullptr;
}
-}
}
-#endif
+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcr120_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcr120_dll_lookup.hpp
index 00f43df3112..bd3d2ae2bd7 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcr120_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcr120_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,1984 +17,2108 @@
#define LIEF_PE_MSVCR120_DLL_LOOKUP_H
#include <cstdint>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
inline const char* msvcr120_dll_lookup(uint32_t i) {
- switch(i) {
- case 0x0145: return "$I10_OUTPUT";
- case 0x0001: return "??0?$_SpinWait@$00@details@Concurrency@@QAE@P6AXXZ@Z";
- case 0x0002: return "??0?$_SpinWait@$0A@@details@Concurrency@@QAE@P6AXXZ@Z";
- case 0x0003: return "??0SchedulerPolicy@Concurrency@@QAA@IZZ";
- case 0x0004: return "??0SchedulerPolicy@Concurrency@@QAE@ABV01@@Z";
- case 0x0005: return "??0SchedulerPolicy@Concurrency@@QAE@XZ";
- case 0x0006: return "??0_Cancellation_beacon@details@Concurrency@@QAE@XZ";
- case 0x0007: return "??0_Condition_variable@details@Concurrency@@QAE@XZ";
- case 0x0008: return "??0_Context@details@Concurrency@@QAE@PAVContext@2@@Z";
- case 0x0009: return "??0_Interruption_exception@details@Concurrency@@QAE@PBD@Z";
- case 0x000a: return "??0_Interruption_exception@details@Concurrency@@QAE@XZ";
- case 0x000b: return "??0_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ";
- case 0x000c: return "??0_NonReentrantPPLLock@details@Concurrency@@QAE@XZ";
- case 0x000d: return "??0_ReaderWriterLock@details@Concurrency@@QAE@XZ";
- case 0x000e: return "??0_ReentrantBlockingLock@details@Concurrency@@QAE@XZ";
- case 0x000f: return "??0_ReentrantLock@details@Concurrency@@QAE@XZ";
- case 0x0010: return "??0_ReentrantPPLLock@details@Concurrency@@QAE@XZ";
- case 0x0011: return "??0_Scheduler@details@Concurrency@@QAE@PAVScheduler@2@@Z";
- case 0x0012: return "??0_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@AAV123@@Z";
- case 0x0013: return "??0_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@AAV123@@Z";
- case 0x0014: return "??0_SpinLock@details@Concurrency@@QAE@ACJ@Z";
- case 0x0015: return "??0_StructuredTaskCollection@details@Concurrency@@QAE@PAV_CancellationTokenState@12@@Z";
- case 0x0016: return "??0_TaskCollection@details@Concurrency@@QAE@PAV_CancellationTokenState@12@@Z";
- case 0x0017: return "??0_TaskCollection@details@Concurrency@@QAE@XZ";
- case 0x0018: return "??0_Timer@details@Concurrency@@IAE@I_N@Z";
- case 0x0019: return "??0__non_rtti_object@std@@QAE@ABV01@@Z";
- case 0x001a: return "??0__non_rtti_object@std@@QAE@PBD@Z";
- case 0x001b: return "??0bad_cast@std@@AAE@PBQBD@Z";
- case 0x001c: return "??0bad_cast@std@@QAE@ABV01@@Z";
- case 0x001d: return "??0bad_cast@std@@QAE@PBD@Z";
- case 0x001e: return "??0bad_target@Concurrency@@QAE@PBD@Z";
- case 0x001f: return "??0bad_target@Concurrency@@QAE@XZ";
- case 0x0020: return "??0bad_typeid@std@@QAE@ABV01@@Z";
- case 0x0021: return "??0bad_typeid@std@@QAE@PBD@Z";
- case 0x0022: return "??0context_self_unblock@Concurrency@@QAE@PBD@Z";
- case 0x0023: return "??0context_self_unblock@Concurrency@@QAE@XZ";
- case 0x0024: return "??0context_unblock_unbalanced@Concurrency@@QAE@PBD@Z";
- case 0x0025: return "??0context_unblock_unbalanced@Concurrency@@QAE@XZ";
- case 0x0026: return "??0critical_section@Concurrency@@QAE@XZ";
- case 0x0027: return "??0default_scheduler_exists@Concurrency@@QAE@PBD@Z";
- case 0x0028: return "??0default_scheduler_exists@Concurrency@@QAE@XZ";
- case 0x0029: return "??0event@Concurrency@@QAE@XZ";
- case 0x002a: return "??0exception@std@@QAE@ABQBD@Z";
- case 0x002b: return "??0exception@std@@QAE@ABQBDH@Z";
- case 0x002c: return "??0exception@std@@QAE@ABV01@@Z";
- case 0x002d: return "??0exception@std@@QAE@XZ";
- case 0x002e: return "??0improper_lock@Concurrency@@QAE@PBD@Z";
- case 0x002f: return "??0improper_lock@Concurrency@@QAE@XZ";
- case 0x0030: return "??0improper_scheduler_attach@Concurrency@@QAE@PBD@Z";
- case 0x0031: return "??0improper_scheduler_attach@Concurrency@@QAE@XZ";
- case 0x0032: return "??0improper_scheduler_detach@Concurrency@@QAE@PBD@Z";
- case 0x0033: return "??0improper_scheduler_detach@Concurrency@@QAE@XZ";
- case 0x0034: return "??0improper_scheduler_reference@Concurrency@@QAE@PBD@Z";
- case 0x0035: return "??0improper_scheduler_reference@Concurrency@@QAE@XZ";
- case 0x0036: return "??0invalid_link_target@Concurrency@@QAE@PBD@Z";
- case 0x0037: return "??0invalid_link_target@Concurrency@@QAE@XZ";
- case 0x0038: return "??0invalid_multiple_scheduling@Concurrency@@QAE@PBD@Z";
- case 0x0039: return "??0invalid_multiple_scheduling@Concurrency@@QAE@XZ";
- case 0x003a: return "??0invalid_operation@Concurrency@@QAE@PBD@Z";
- case 0x003b: return "??0invalid_operation@Concurrency@@QAE@XZ";
- case 0x003c: return "??0invalid_oversubscribe_operation@Concurrency@@QAE@PBD@Z";
- case 0x003d: return "??0invalid_oversubscribe_operation@Concurrency@@QAE@XZ";
- case 0x003e: return "??0invalid_scheduler_policy_key@Concurrency@@QAE@PBD@Z";
- case 0x003f: return "??0invalid_scheduler_policy_key@Concurrency@@QAE@XZ";
- case 0x0040: return "??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@PBD@Z";
- case 0x0041: return "??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@XZ";
- case 0x0042: return "??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z";
- case 0x0043: return "??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ";
- case 0x0044: return "??0message_not_found@Concurrency@@QAE@PBD@Z";
- case 0x0045: return "??0message_not_found@Concurrency@@QAE@XZ";
- case 0x0046: return "??0missing_wait@Concurrency@@QAE@PBD@Z";
- case 0x0047: return "??0missing_wait@Concurrency@@QAE@XZ";
- case 0x0048: return "??0nested_scheduler_missing_detach@Concurrency@@QAE@PBD@Z";
- case 0x0049: return "??0nested_scheduler_missing_detach@Concurrency@@QAE@XZ";
- case 0x004a: return "??0operation_timed_out@Concurrency@@QAE@PBD@Z";
- case 0x004b: return "??0operation_timed_out@Concurrency@@QAE@XZ";
- case 0x004c: return "??0reader_writer_lock@Concurrency@@QAE@XZ";
- case 0x004d: return "??0scheduler_not_attached@Concurrency@@QAE@PBD@Z";
- case 0x004e: return "??0scheduler_not_attached@Concurrency@@QAE@XZ";
- case 0x004f: return "??0scheduler_resource_allocation_error@Concurrency@@QAE@J@Z";
- case 0x0050: return "??0scheduler_resource_allocation_error@Concurrency@@QAE@PBDJ@Z";
- case 0x0051: return "??0scheduler_worker_creation_error@Concurrency@@QAE@J@Z";
- case 0x0052: return "??0scheduler_worker_creation_error@Concurrency@@QAE@PBDJ@Z";
- case 0x0053: return "??0scoped_lock@critical_section@Concurrency@@QAE@AAV12@@Z";
- case 0x0054: return "??0scoped_lock@reader_writer_lock@Concurrency@@QAE@AAV12@@Z";
- case 0x0055: return "??0scoped_lock_read@reader_writer_lock@Concurrency@@QAE@AAV12@@Z";
- case 0x0056: return "??0task_canceled@Concurrency@@QAE@PBD@Z";
- case 0x0057: return "??0task_canceled@Concurrency@@QAE@XZ";
- case 0x0058: return "??0unsupported_os@Concurrency@@QAE@PBD@Z";
- case 0x0059: return "??0unsupported_os@Concurrency@@QAE@XZ";
- case 0x005a: return "??1SchedulerPolicy@Concurrency@@QAE@XZ";
- case 0x005b: return "??1_Cancellation_beacon@details@Concurrency@@QAE@XZ";
- case 0x005c: return "??1_Condition_variable@details@Concurrency@@QAE@XZ";
- case 0x005d: return "??1_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ";
- case 0x005e: return "??1_ReentrantBlockingLock@details@Concurrency@@QAE@XZ";
- case 0x005f: return "??1_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@XZ";
- case 0x0060: return "??1_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@XZ";
- case 0x0061: return "??1_SpinLock@details@Concurrency@@QAE@XZ";
- case 0x0062: return "??1_StructuredTaskCollection@details@Concurrency@@QAE@XZ";
- case 0x0063: return "??1_TaskCollection@details@Concurrency@@QAE@XZ";
- case 0x0064: return "??1_Timer@details@Concurrency@@MAE@XZ";
- case 0x0065: return "??1__non_rtti_object@std@@UAE@XZ";
- case 0x0066: return "??1bad_cast@std@@UAE@XZ";
- case 0x0067: return "??1bad_typeid@std@@UAE@XZ";
- case 0x0068: return "??1critical_section@Concurrency@@QAE@XZ";
- case 0x0069: return "??1event@Concurrency@@QAE@XZ";
- case 0x006a: return "??1exception@std@@UAE@XZ";
- case 0x006b: return "??1reader_writer_lock@Concurrency@@QAE@XZ";
- case 0x006c: return "??1scoped_lock@critical_section@Concurrency@@QAE@XZ";
- case 0x006d: return "??1scoped_lock@reader_writer_lock@Concurrency@@QAE@XZ";
- case 0x006e: return "??1scoped_lock_read@reader_writer_lock@Concurrency@@QAE@XZ";
- case 0x006f: return "??1type_info@@UAE@XZ";
- case 0x0070: return "??2@YAPAXI@Z";
- case 0x0071: return "??2@YAPAXIHPBDH@Z";
- case 0x0072: return "??3@YAXPAX@Z";
- case 0x0073: return "??3@YAXPAXHPBDH@Z";
- case 0x0074: return "??4?$_SpinWait@$00@details@Concurrency@@QAEAAV012@ABV012@@Z";
- case 0x0075: return "??4?$_SpinWait@$0A@@details@Concurrency@@QAEAAV012@ABV012@@Z";
- case 0x0076: return "??4SchedulerPolicy@Concurrency@@QAEAAV01@ABV01@@Z";
- case 0x0077: return "??4__non_rtti_object@std@@QAEAAV01@ABV01@@Z";
- case 0x0078: return "??4bad_cast@std@@QAEAAV01@ABV01@@Z";
- case 0x0079: return "??4bad_typeid@std@@QAEAAV01@ABV01@@Z";
- case 0x007a: return "??4exception@std@@QAEAAV01@ABV01@@Z";
- case 0x007b: return "??8type_info@@QBE_NABV0@@Z";
- case 0x007c: return "??9type_info@@QBE_NABV0@@Z";
- case 0x007d: return "??_7__non_rtti_object@std@@6B@";
- case 0x007e: return "??_7bad_cast@std@@6B@";
- case 0x007f: return "??_7bad_typeid@std@@6B@";
- case 0x0080: return "??_7exception@std@@6B@";
- case 0x0081: return "??_F?$_SpinWait@$00@details@Concurrency@@QAEXXZ";
- case 0x0082: return "??_F?$_SpinWait@$0A@@details@Concurrency@@QAEXXZ";
- case 0x0083: return "??_F_Context@details@Concurrency@@QAEXXZ";
- case 0x0084: return "??_F_Scheduler@details@Concurrency@@QAEXXZ";
- case 0x0085: return "??_Fbad_cast@std@@QAEXXZ";
- case 0x0086: return "??_Fbad_typeid@std@@QAEXXZ";
- case 0x0087: return "??_U@YAPAXI@Z";
- case 0x0088: return "??_U@YAPAXIHPBDH@Z";
- case 0x0089: return "??_V@YAXPAX@Z";
- case 0x008a: return "??_V@YAXPAXHPBDH@Z";
- case 0x008b: return "?Alloc@Concurrency@@YAPAXI@Z";
- case 0x008c: return "?Block@Context@Concurrency@@SAXXZ";
- case 0x008d: return "?CaptureCallstack@platform@details@Concurrency@@YAIPAPAXII@Z";
- case 0x008e: return "?Create@CurrentScheduler@Concurrency@@SAXABVSchedulerPolicy@2@@Z";
- case 0x008f: return "?Create@Scheduler@Concurrency@@SAPAV12@ABVSchedulerPolicy@2@@Z";
- case 0x0090: return "?CreateResourceManager@Concurrency@@YAPAUIResourceManager@1@XZ";
- case 0x0091: return "?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPAVScheduleGroup@2@AAVlocation@2@@Z";
- case 0x0092: return "?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPAVScheduleGroup@2@XZ";
- case 0x0093: return "?CurrentContext@Context@Concurrency@@SAPAV12@XZ";
- case 0x0094: return "?Detach@CurrentScheduler@Concurrency@@SAXXZ";
- case 0x0095: return "?DisableTracing@Concurrency@@YAJXZ";
- case 0x0096: return "?EnableTracing@Concurrency@@YAJXZ";
- case 0x0097: return "?Free@Concurrency@@YAXPAX@Z";
- case 0x0098: return "?Get@CurrentScheduler@Concurrency@@SAPAVScheduler@2@XZ";
- case 0x0099: return "?GetCurrentThreadId@platform@details@Concurrency@@YAJXZ";
- case 0x009a: return "?GetExecutionContextId@Concurrency@@YAIXZ";
- case 0x009b: return "?GetNumberOfVirtualProcessors@CurrentScheduler@Concurrency@@SAIXZ";
- case 0x009c: return "?GetOSVersion@Concurrency@@YA?AW4OSVersion@IResourceManager@1@XZ";
- case 0x009d: return "?GetPolicy@CurrentScheduler@Concurrency@@SA?AVSchedulerPolicy@2@XZ";
- case 0x009e: return "?GetPolicyValue@SchedulerPolicy@Concurrency@@QBEIW4PolicyElementKey@2@@Z";
- case 0x009f: return "?GetProcessorCount@Concurrency@@YAIXZ";
- case 0x00a0: return "?GetProcessorNodeCount@Concurrency@@YAIXZ";
- case 0x00a1: return "?GetSchedulerId@Concurrency@@YAIXZ";
- case 0x00a2: return "?GetSharedTimerQueue@details@Concurrency@@YAPAXXZ";
- case 0x00a3: return "?Id@Context@Concurrency@@SAIXZ";
- case 0x00a4: return "?Id@CurrentScheduler@Concurrency@@SAIXZ";
- case 0x00a5: return "?IsAvailableLocation@CurrentScheduler@Concurrency@@SA_NABVlocation@2@@Z";
- case 0x00a6: return "?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ";
- case 0x00a7: return "?Log2@details@Concurrency@@YAKI@Z";
- case 0x00a8: return "?Oversubscribe@Context@Concurrency@@SAX_N@Z";
- case 0x00a9: return "?RegisterShutdownEvent@CurrentScheduler@Concurrency@@SAXPAX@Z";
- case 0x00aa: return "?ResetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXXZ";
- case 0x00ab: return "?ScheduleGroupId@Context@Concurrency@@SAIXZ";
- case 0x00ac: return "?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0@Z";
- case 0x00ad: return "?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0AAVlocation@2@@Z";
- case 0x00ae: return "?SetConcurrencyLimits@SchedulerPolicy@Concurrency@@QAEXII@Z";
- case 0x00af: return "?SetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXABVSchedulerPolicy@2@@Z";
- case 0x00b0: return "?SetPolicyValue@SchedulerPolicy@Concurrency@@QAEIW4PolicyElementKey@2@I@Z";
- case 0x00b1: return "?VirtualProcessorId@Context@Concurrency@@SAIXZ";
- case 0x00b2: return "?Yield@Context@Concurrency@@SAXXZ";
- case 0x00b3: return "?_Abort@_StructuredTaskCollection@details@Concurrency@@AAEXXZ";
- case 0x00b4: return "?_Acquire@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ";
- case 0x00b5: return "?_Acquire@_NonReentrantPPLLock@details@Concurrency@@QAEXPAX@Z";
- case 0x00b6: return "?_Acquire@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ";
- case 0x00b7: return "?_Acquire@_ReentrantLock@details@Concurrency@@QAEXXZ";
- case 0x00b8: return "?_Acquire@_ReentrantPPLLock@details@Concurrency@@QAEXPAX@Z";
- case 0x00b9: return "?_AcquireRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
- case 0x00ba: return "?_AcquireWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
- case 0x00bb: return "?_Cancel@_StructuredTaskCollection@details@Concurrency@@QAEXXZ";
- case 0x00bc: return "?_Cancel@_TaskCollection@details@Concurrency@@QAEXXZ";
- case 0x00bd: return "?_CheckTaskCollection@_UnrealizedChore@details@Concurrency@@IAEXXZ";
- case 0x00be: return "?_CleanupToken@_StructuredTaskCollection@details@Concurrency@@AAEXXZ";
- case 0x00bf: return "?_ConcRT_CoreAssert@details@Concurrency@@YAXPBD0H@Z";
- case 0x00c0: return "?_ConcRT_Trace@details@Concurrency@@YAXHPB_WZZ";
- case 0x00c1: return "?_Confirm_cancel@_Cancellation_beacon@details@Concurrency@@QAE_NXZ";
- case 0x00c2: return "?_Copy_str@exception@std@@AAEXPBD@Z";
- case 0x00c3: return "?_CurrentContext@_Context@details@Concurrency@@SA?AV123@XZ";
- case 0x00c4: return "?_Current_node@location@Concurrency@@SA?AV12@XZ";
- case 0x00c5: return "?_Destroy@_AsyncTaskCollection@details@Concurrency@@EAEXXZ";
- case 0x00c6: return "?_DoYield@?$_SpinWait@$00@details@Concurrency@@IAEXXZ";
- case 0x00c7: return "?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ";
- case 0x00c8: return "?_Get@_CurrentScheduler@details@Concurrency@@SA?AV_Scheduler@23@XZ";
- case 0x00c9: return "?_GetConcRTTraceInfo@Concurrency@@YAPBU_CONCRT_TRACE_INFO@details@1@XZ";
- case 0x00ca: return "?_GetConcurrency@details@Concurrency@@YAIXZ";
- case 0x00cb: return "?_GetCurrentInlineDepth@_StackGuard@details@Concurrency@@CAAAIXZ";
- case 0x00cc: return "?_GetNumberOfVirtualProcessors@_CurrentScheduler@details@Concurrency@@SAIXZ";
- case 0x00cd: return "?_GetScheduler@_Scheduler@details@Concurrency@@QAEPAVScheduler@3@XZ";
- case 0x00ce: return "?_Id@_CurrentScheduler@details@Concurrency@@SAIXZ";
- case 0x00cf: return "?_IsCanceling@_StructuredTaskCollection@details@Concurrency@@QAE_NXZ";
- case 0x00d0: return "?_IsCanceling@_TaskCollection@details@Concurrency@@QAE_NXZ";
- case 0x00d1: return "?_IsSynchronouslyBlocked@_Context@details@Concurrency@@QBE_NXZ";
- case 0x00d2: return "?_Name_base@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z";
- case 0x00d3: return "?_Name_base_internal@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z";
- case 0x00d4: return "?_NewCollection@_AsyncTaskCollection@details@Concurrency@@SAPAV123@PAV_CancellationTokenState@23@@Z";
- case 0x00d5: return "?_NumberOfSpins@?$_SpinWait@$00@details@Concurrency@@IAEKXZ";
- case 0x00d6: return "?_NumberOfSpins@?$_SpinWait@$0A@@details@Concurrency@@IAEKXZ";
- case 0x00d7: return "?_Oversubscribe@_Context@details@Concurrency@@SAX_N@Z";
- case 0x00d8: return "?_Reference@_Scheduler@details@Concurrency@@QAEIXZ";
- case 0x00d9: return "?_Release@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ";
- case 0x00da: return "?_Release@_NonReentrantPPLLock@details@Concurrency@@QAEXXZ";
- case 0x00db: return "?_Release@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ";
- case 0x00dc: return "?_Release@_ReentrantLock@details@Concurrency@@QAEXXZ";
- case 0x00dd: return "?_Release@_ReentrantPPLLock@details@Concurrency@@QAEXXZ";
- case 0x00de: return "?_Release@_Scheduler@details@Concurrency@@QAEIXZ";
- case 0x00df: return "?_ReleaseRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
- case 0x00e0: return "?_ReleaseWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
- case 0x00e1: return "?_ReportUnobservedException@details@Concurrency@@YAXXZ";
- case 0x00e2: return "?_Reset@?$_SpinWait@$00@details@Concurrency@@IAEXXZ";
- case 0x00e3: return "?_Reset@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ";
- case 0x00e4: return "?_RunAndWait@_StructuredTaskCollection@details@Concurrency@@QAG?AW4_TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z";
- case 0x00e5: return "?_RunAndWait@_TaskCollection@details@Concurrency@@QAG?AW4_TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z";
- case 0x00e6: return "?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@@Z";
- case 0x00e7: return "?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@PAVlocation@3@@Z";
- case 0x00e8: return "?_Schedule@_TaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@@Z";
- case 0x00e9: return "?_Schedule@_TaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@PAVlocation@3@@Z";
- case 0x00ea: return "?_ScheduleTask@_CurrentScheduler@details@Concurrency@@SAXP6AXPAX@Z0@Z";
- case 0x00eb: return "?_SetSpinCount@?$_SpinWait@$00@details@Concurrency@@QAEXI@Z";
- case 0x00ec: return "?_SetSpinCount@?$_SpinWait@$0A@@details@Concurrency@@QAEXI@Z";
- case 0x00ed: return "?_SetUnobservedExceptionHandler@details@Concurrency@@YAXP6AXXZ@Z";
- case 0x00ee: return "?_ShouldSpinAgain@?$_SpinWait@$00@details@Concurrency@@IAE_NXZ";
- case 0x00ef: return "?_ShouldSpinAgain@?$_SpinWait@$0A@@details@Concurrency@@IAE_NXZ";
- case 0x00f0: return "?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QAE_NXZ";
- case 0x00f1: return "?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAE_NXZ";
- case 0x00f2: return "?_SpinYield@Context@Concurrency@@SAXXZ";
- case 0x00f3: return "?_Start@_Timer@details@Concurrency@@IAEXXZ";
- case 0x00f4: return "?_Stop@_Timer@details@Concurrency@@IAEXXZ";
- case 0x00f5: return "?_Tidy@exception@std@@AAEXXZ";
- case 0x00f6: return "?_Trace_agents@Concurrency@@YAXW4Agents_EventType@1@_JZZ";
- case 0x00f7: return "?_Trace_ppl_function@Concurrency@@YAXABU_GUID@@EW4ConcRT_EventType@1@@Z";
- case 0x00f8: return "?_TryAcquire@_NonReentrantBlockingLock@details@Concurrency@@QAE_NXZ";
- case 0x00f9: return "?_TryAcquire@_ReentrantBlockingLock@details@Concurrency@@QAE_NXZ";
- case 0x00fa: return "?_TryAcquire@_ReentrantLock@details@Concurrency@@QAE_NXZ";
- case 0x00fb: return "?_TryAcquireWrite@_ReaderWriterLock@details@Concurrency@@QAE_NXZ";
- case 0x00fc: return "?_Type_info_dtor@type_info@@CAXPAV1@@Z";
- case 0x00fd: return "?_Type_info_dtor_internal@type_info@@CAXPAV1@@Z";
- case 0x00fe: return "?_UnderlyingYield@details@Concurrency@@YAXXZ";
- case 0x00ff: return "?_ValidateExecute@@YAHP6GHXZ@Z";
- case 0x0100: return "?_ValidateRead@@YAHPBXI@Z";
- case 0x0101: return "?_ValidateWrite@@YAHPAXI@Z";
- case 0x0102: return "?_Value@_SpinCount@details@Concurrency@@SAIXZ";
- case 0x0103: return "?_Yield@_Context@details@Concurrency@@SAXXZ";
- case 0x0104: return "?__ExceptionPtrAssign@@YAXPAXPBX@Z";
- case 0x0105: return "?__ExceptionPtrCompare@@YA_NPBX0@Z";
- case 0x0106: return "?__ExceptionPtrCopy@@YAXPAXPBX@Z";
- case 0x0107: return "?__ExceptionPtrCopyException@@YAXPAXPBX1@Z";
- case 0x0108: return "?__ExceptionPtrCreate@@YAXPAX@Z";
- case 0x0109: return "?__ExceptionPtrCurrentException@@YAXPAX@Z";
- case 0x010a: return "?__ExceptionPtrDestroy@@YAXPAX@Z";
- case 0x010b: return "?__ExceptionPtrRethrow@@YAXPBX@Z";
- case 0x010c: return "?__ExceptionPtrSwap@@YAXPAX0@Z";
- case 0x010d: return "?__ExceptionPtrToBool@@YA_NPBX@Z";
- case 0x010f: return "?_inconsistency@@YAXXZ";
- case 0x0110: return "?_invalid_parameter@@YAXPBG00II@Z";
- case 0x0111: return "?_is_exception_typeof@@YAHABVtype_info@@PAU_EXCEPTION_POINTERS@@@Z";
- case 0x0112: return "?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z";
- case 0x0113: return "?_open@@YAHPBDHH@Z";
- case 0x0114: return "?_query_new_handler@@YAP6AHI@ZXZ";
- case 0x0115: return "?_query_new_mode@@YAHXZ";
- case 0x0116: return "?_set_new_handler@@YAP6AHI@ZH@Z";
- case 0x0117: return "?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z";
- case 0x0118: return "?_set_new_mode@@YAHH@Z";
- case 0x0119: return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZH@Z";
- case 0x011a: return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z";
- case 0x011b: return "?_sopen@@YAHPBDHHH@Z";
- case 0x011c: return "?_type_info_dtor_internal_method@type_info@@QAEXXZ";
- case 0x011d: return "?_wopen@@YAHPB_WHH@Z";
- case 0x011e: return "?_wsopen@@YAHPB_WHHH@Z";
- case 0x011f: return "?before@type_info@@QBE_NABV1@@Z";
- case 0x0120: return "?current@location@Concurrency@@SA?AV12@XZ";
- case 0x0121: return "?from_numa_node@location@Concurrency@@SA?AV12@G@Z";
- case 0x0122: return "?get_error_code@scheduler_resource_allocation_error@Concurrency@@QBEJXZ";
- case 0x0123: return "?lock@critical_section@Concurrency@@QAEXXZ";
- case 0x0124: return "?lock@reader_writer_lock@Concurrency@@QAEXXZ";
- case 0x0125: return "?lock_read@reader_writer_lock@Concurrency@@QAEXXZ";
- case 0x0126: return "?name@type_info@@QBEPBDPAU__type_info_node@@@Z";
- case 0x0127: return "?native_handle@critical_section@Concurrency@@QAEAAV12@XZ";
- case 0x0128: return "?notify_all@_Condition_variable@details@Concurrency@@QAEXXZ";
- case 0x0129: return "?notify_one@_Condition_variable@details@Concurrency@@QAEXXZ";
- case 0x012a: return "?raw_name@type_info@@QBEPBDXZ";
- case 0x012b: return "?reset@event@Concurrency@@QAEXXZ";
- case 0x012c: return "?set@event@Concurrency@@QAEXXZ";
- case 0x012d: return "?set_new_handler@@YAP6AXXZP6AXXZ@Z";
- case 0x012e: return "?set_task_execution_resources@Concurrency@@YAXGPAU_GROUP_AFFINITY@@@Z";
- case 0x012f: return "?set_task_execution_resources@Concurrency@@YAXK@Z";
- case 0x0130: return "?set_terminate@@YAP6AXXZH@Z";
- case 0x0131: return "?set_terminate@@YAP6AXXZP6AXXZ@Z";
- case 0x0132: return "?set_unexpected@@YAP6AXXZH@Z";
- case 0x0133: return "?set_unexpected@@YAP6AXXZP6AXXZ@Z";
- case 0x0134: return "?swprintf@@YAHPAGIPBGZZ";
- case 0x0135: return "?swprintf@@YAHPA_WIPB_WZZ";
- case 0x0136: return "?terminate@@YAXXZ";
- case 0x0137: return "?try_lock@critical_section@Concurrency@@QAE_NXZ";
- case 0x0138: return "?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ";
- case 0x0139: return "?try_lock_for@critical_section@Concurrency@@QAE_NI@Z";
- case 0x013a: return "?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ";
- case 0x013b: return "?unexpected@@YAXXZ";
- case 0x013c: return "?unlock@critical_section@Concurrency@@QAEXXZ";
- case 0x013d: return "?unlock@reader_writer_lock@Concurrency@@QAEXXZ";
- case 0x013e: return "?vswprintf@@YAHPA_WIPB_WPAD@Z";
- case 0x013f: return "?wait@Concurrency@@YAXI@Z";
- case 0x0140: return "?wait@_Condition_variable@details@Concurrency@@QAEXAAVcritical_section@3@@Z";
- case 0x0141: return "?wait@event@Concurrency@@QAEII@Z";
- case 0x0142: return "?wait_for@_Condition_variable@details@Concurrency@@QAE_NAAVcritical_section@3@I@Z";
- case 0x0143: return "?wait_for_multiple@event@Concurrency@@SAIPAPAV12@I_NI@Z";
- case 0x0144: return "?what@exception@std@@UBEPBDXZ";
- case 0x0146: return "_CIacos";
- case 0x0147: return "_CIasin";
- case 0x0148: return "_CIatan";
- case 0x0149: return "_CIatan2";
- case 0x014a: return "_CIcos";
- case 0x014b: return "_CIcosh";
- case 0x014c: return "_CIexp";
- case 0x014d: return "_CIfmod";
- case 0x014e: return "_CIlog";
- case 0x014f: return "_CIlog10";
- case 0x0150: return "_CIpow";
- case 0x0151: return "_CIsin";
- case 0x0152: return "_CIsinh";
- case 0x0153: return "_CIsqrt";
- case 0x0154: return "_CItan";
- case 0x0155: return "_CItanh";
- case 0x0156: return "_CRT_RTC_INIT";
- case 0x0157: return "_CRT_RTC_INITW";
- case 0x0158: return "_Cbuild";
- case 0x0159: return "_CreateFrameInfo";
- case 0x015a: return "_CxxThrowException";
- case 0x015b: return "_EH_prolog";
- case 0x015c: return "_FCbuild";
- case 0x015d: return "_FindAndUnlinkFrame";
- case 0x015e: return "_Getdays";
- case 0x015f: return "_Getmonths";
- case 0x0160: return "_Gettnames";
- case 0x0161: return "_HUGE";
- case 0x0162: return "_IsExceptionObjectToBeDestroyed";
- case 0x0163: return "_LCbuild";
- case 0x0164: return "_NLG_Dispatch2";
- case 0x0165: return "_NLG_Return";
- case 0x0166: return "_NLG_Return2";
- case 0x0167: return "_SetWinRTOutOfMemoryExceptionCallback";
- case 0x0168: return "_Strftime";
- case 0x0169: return "_W_Getdays";
- case 0x016a: return "_W_Getmonths";
- case 0x016b: return "_W_Gettnames";
- case 0x016c: return "_Wcsftime";
- case 0x016d: return "_XcptFilter";
- case 0x016e: return "__AdjustPointer";
- case 0x016f: return "__BuildCatchObject";
- case 0x0170: return "__BuildCatchObjectHelper";
- case 0x0171: return "__CppXcptFilter";
- case 0x0172: return "__CxxDetectRethrow";
- case 0x0173: return "__CxxExceptionFilter";
- case 0x0174: return "__CxxFrameHandler";
- case 0x0175: return "__CxxFrameHandler2";
- case 0x0176: return "__CxxFrameHandler3";
- case 0x0177: return "__CxxLongjmpUnwind";
- case 0x0178: return "__CxxQueryExceptionSize";
- case 0x0179: return "__CxxRegisterExceptionObject";
- case 0x017a: return "__CxxUnregisterExceptionObject";
- case 0x017b: return "__DestructExceptionObject";
- case 0x017c: return "__FrameUnwindFilter";
- case 0x017d: return "__GetPlatformExceptionInfo";
- case 0x017e: return "__RTCastToVoid";
- case 0x017f: return "__RTDynamicCast";
- case 0x0180: return "__RTtypeid";
- case 0x0181: return "__STRINGTOLD";
- case 0x0182: return "__STRINGTOLD_L";
- case 0x0183: return "__TypeMatch";
- case 0x0184: return "___lc_codepage_func";
- case 0x0185: return "___lc_collate_cp_func";
- case 0x0186: return "___lc_locale_name_func";
- case 0x0187: return "___mb_cur_max_func";
- case 0x0188: return "___mb_cur_max_l_func";
- case 0x0189: return "___setlc_active_func";
- case 0x018a: return "___unguarded_readlc_active_add_func";
- case 0x018b: return "__argc";
- case 0x018c: return "__argv";
- case 0x018d: return "__badioinfo";
- case 0x018e: return "__clean_type_info_names_internal";
- case 0x018f: return "__control87_2";
- case 0x0190: return "__create_locale";
- case 0x0191: return "__crtCompareStringA";
- case 0x0192: return "__crtCompareStringEx";
- case 0x0193: return "__crtCompareStringW";
- case 0x0194: return "__crtCreateEventExW";
- case 0x0195: return "__crtCreateSemaphoreExW";
- case 0x0196: return "__crtCreateSymbolicLinkW";
- case 0x0197: return "__crtEnumSystemLocalesEx";
- case 0x0198: return "__crtFlsAlloc";
- case 0x0199: return "__crtFlsFree";
- case 0x019a: return "__crtFlsGetValue";
- case 0x019b: return "__crtFlsSetValue";
- case 0x019c: return "__crtGetDateFormatEx";
- case 0x019d: return "__crtGetFileInformationByHandleEx";
- case 0x019e: return "__crtGetLocaleInfoEx";
- case 0x019f: return "__crtGetShowWindowMode";
- case 0x01a0: return "__crtGetTickCount64";
- case 0x01a1: return "__crtGetTimeFormatEx";
- case 0x01a2: return "__crtGetUserDefaultLocaleName";
- case 0x01a3: return "__crtInitializeCriticalSectionEx";
- case 0x01a4: return "__crtIsPackagedApp";
- case 0x01a5: return "__crtIsValidLocaleName";
- case 0x01a6: return "__crtLCMapStringA";
- case 0x01a7: return "__crtLCMapStringEx";
- case 0x01a8: return "__crtLCMapStringW";
- case 0x01a9: return "__crtSetFileInformationByHandle";
- case 0x01aa: return "__crtSetThreadStackGuarantee";
- case 0x01ab: return "__crtSetUnhandledExceptionFilter";
- case 0x01ac: return "__crtSleep";
- case 0x01ad: return "__crtTerminateProcess";
- case 0x01ae: return "__crtUnhandledException";
- case 0x01af: return "__daylight";
- case 0x01b0: return "__dllonexit";
- case 0x01b1: return "__doserrno";
- case 0x01b2: return "__dstbias";
- case 0x01b3: return "__fpecode";
- case 0x01b4: return "__free_locale";
- case 0x01b5: return "__get_current_locale";
- case 0x01b6: return "__get_flsindex";
- case 0x01b7: return "__get_tlsindex";
- case 0x01b8: return "__getmainargs";
- case 0x01b9: return "__initenv";
- case 0x01ba: return "__iob_func";
- case 0x01bb: return "__isascii";
- case 0x01bc: return "__iscsym";
- case 0x01bd: return "__iscsymf";
- case 0x01be: return "__iswcsym";
- case 0x01bf: return "__iswcsymf";
- case 0x01c0: return "__lconv";
- case 0x01c1: return "__lconv_init";
- case 0x01c2: return "__libm_sse2_acos";
- case 0x01c3: return "__libm_sse2_acosf";
- case 0x01c4: return "__libm_sse2_asin";
- case 0x01c5: return "__libm_sse2_asinf";
- case 0x01c6: return "__libm_sse2_atan";
- case 0x01c7: return "__libm_sse2_atan2";
- case 0x01c8: return "__libm_sse2_atanf";
- case 0x01c9: return "__libm_sse2_cos";
- case 0x01ca: return "__libm_sse2_cosf";
- case 0x01cb: return "__libm_sse2_exp";
- case 0x01cc: return "__libm_sse2_expf";
- case 0x01cd: return "__libm_sse2_log";
- case 0x01ce: return "__libm_sse2_log10";
- case 0x01cf: return "__libm_sse2_log10f";
- case 0x01d0: return "__libm_sse2_logf";
- case 0x01d1: return "__libm_sse2_pow";
- case 0x01d2: return "__libm_sse2_powf";
- case 0x01d3: return "__libm_sse2_sin";
- case 0x01d4: return "__libm_sse2_sinf";
- case 0x01d5: return "__libm_sse2_tan";
- case 0x01d6: return "__libm_sse2_tanf";
- case 0x01d7: return "__mb_cur_max";
- case 0x01d8: return "__p___argc";
- case 0x01d9: return "__p___argv";
- case 0x01da: return "__p___initenv";
- case 0x01db: return "__p___mb_cur_max";
- case 0x01dc: return "__p___wargv";
- case 0x01dd: return "__p___winitenv";
- case 0x01de: return "__p__acmdln";
- case 0x01df: return "__p__commode";
- case 0x01e0: return "__p__daylight";
- case 0x01e1: return "__p__dstbias";
- case 0x01e2: return "__p__environ";
- case 0x01e3: return "__p__fmode";
- case 0x01e4: return "__p__iob";
- case 0x01e5: return "__p__mbcasemap";
- case 0x01e6: return "__p__mbctype";
- case 0x01e7: return "__p__pctype";
- case 0x01e8: return "__p__pgmptr";
- case 0x01e9: return "__p__pwctype";
- case 0x01ea: return "__p__timezone";
- case 0x01eb: return "__p__tzname";
- case 0x01ec: return "__p__wcmdln";
- case 0x01ed: return "__p__wenviron";
- case 0x01ee: return "__p__wpgmptr";
- case 0x01ef: return "__pctype_func";
- case 0x01f0: return "__pioinfo";
- case 0x01f1: return "__pwctype_func";
- case 0x01f2: return "__pxcptinfoptrs";
- case 0x01f3: return "__report_gsfailure";
- case 0x01f4: return "__set_app_type";
- case 0x01f5: return "__setlc_active";
- case 0x01f6: return "__setusermatherr";
- case 0x01f7: return "__strncnt";
- case 0x01f8: return "__swprintf_l";
- case 0x01f9: return "__sys_errlist";
- case 0x01fa: return "__sys_nerr";
- case 0x01fb: return "__threadhandle";
- case 0x01fc: return "__threadid";
- case 0x01fd: return "__timezone";
- case 0x01fe: return "__toascii";
- case 0x01ff: return "__tzname";
- case 0x0200: return "__unDName";
- case 0x0201: return "__unDNameEx";
- case 0x0202: return "__unDNameHelper";
- case 0x010e: return "__uncaught_exception";
- case 0x0203: return "__unguarded_readlc_active";
- case 0x0204: return "__vswprintf_l";
- case 0x0205: return "__wargv";
- case 0x0206: return "__wcserror";
- case 0x0207: return "__wcserror_s";
- case 0x0208: return "__wcsncnt";
- case 0x0209: return "__wgetmainargs";
- case 0x020a: return "__winitenv";
- case 0x020b: return "_abnormal_termination";
- case 0x020c: return "_abs64";
- case 0x020d: return "_access";
- case 0x020e: return "_access_s";
- case 0x020f: return "_acmdln";
- case 0x0210: return "_aligned_free";
- case 0x0211: return "_aligned_malloc";
- case 0x0212: return "_aligned_msize";
- case 0x0213: return "_aligned_offset_malloc";
- case 0x0214: return "_aligned_offset_realloc";
- case 0x0215: return "_aligned_offset_recalloc";
- case 0x0216: return "_aligned_realloc";
- case 0x0217: return "_aligned_recalloc";
- case 0x0218: return "_amsg_exit";
- case 0x0219: return "_assert";
- case 0x021a: return "_atodbl";
- case 0x021b: return "_atodbl_l";
- case 0x021c: return "_atof_l";
- case 0x021d: return "_atoflt";
- case 0x021e: return "_atoflt_l";
- case 0x021f: return "_atoi64";
- case 0x0220: return "_atoi64_l";
- case 0x0221: return "_atoi_l";
- case 0x0222: return "_atol_l";
- case 0x0223: return "_atoldbl";
- case 0x0224: return "_atoldbl_l";
- case 0x0225: return "_atoll_l";
- case 0x0226: return "_beep";
- case 0x0227: return "_beginthread";
- case 0x0228: return "_beginthreadex";
- case 0x0229: return "_byteswap_uint64";
- case 0x022a: return "_byteswap_ulong";
- case 0x022b: return "_byteswap_ushort";
- case 0x022c: return "_c_exit";
- case 0x022d: return "_cabs";
- case 0x022e: return "_callnewh";
- case 0x022f: return "_calloc_crt";
- case 0x0230: return "_cexit";
- case 0x0231: return "_cgets";
- case 0x0232: return "_cgets_s";
- case 0x0233: return "_cgetws";
- case 0x0234: return "_cgetws_s";
- case 0x0235: return "_chdir";
- case 0x0236: return "_chdrive";
- case 0x0237: return "_chgsign";
- case 0x0238: return "_chgsignf";
- case 0x0239: return "_chkesp";
- case 0x023a: return "_chmod";
- case 0x023b: return "_chsize";
- case 0x023c: return "_chsize_s";
- case 0x023d: return "_clearfp";
- case 0x023e: return "_close";
- case 0x023f: return "_commit";
- case 0x0240: return "_commode";
- case 0x0241: return "_configthreadlocale";
- case 0x0242: return "_control87";
- case 0x0243: return "_controlfp";
- case 0x0244: return "_controlfp_s";
- case 0x0245: return "_copysign";
- case 0x0246: return "_copysignf";
- case 0x0247: return "_cprintf";
- case 0x0248: return "_cprintf_l";
- case 0x0249: return "_cprintf_p";
- case 0x024a: return "_cprintf_p_l";
- case 0x024b: return "_cprintf_s";
- case 0x024c: return "_cprintf_s_l";
- case 0x024d: return "_cputs";
- case 0x024e: return "_cputws";
- case 0x024f: return "_creat";
- case 0x0250: return "_create_locale";
- case 0x0251: return "_crt_debugger_hook";
- case 0x0252: return "_cscanf";
- case 0x0253: return "_cscanf_l";
- case 0x0254: return "_cscanf_s";
- case 0x0255: return "_cscanf_s_l";
- case 0x0256: return "_ctime32";
- case 0x0257: return "_ctime32_s";
- case 0x0258: return "_ctime64";
- case 0x0259: return "_ctime64_s";
- case 0x025a: return "_cwait";
- case 0x025b: return "_cwprintf";
- case 0x025c: return "_cwprintf_l";
- case 0x025d: return "_cwprintf_p";
- case 0x025e: return "_cwprintf_p_l";
- case 0x025f: return "_cwprintf_s";
- case 0x0260: return "_cwprintf_s_l";
- case 0x0261: return "_cwscanf";
- case 0x0262: return "_cwscanf_l";
- case 0x0263: return "_cwscanf_s";
- case 0x0264: return "_cwscanf_s_l";
- case 0x0265: return "_daylight";
- case 0x0266: return "_dclass";
- case 0x0267: return "_difftime32";
- case 0x0268: return "_difftime64";
- case 0x0269: return "_dosmaperr";
- case 0x026a: return "_dpcomp";
- case 0x026b: return "_dsign";
- case 0x026c: return "_dstbias";
- case 0x026d: return "_dtest";
- case 0x026e: return "_dup";
- case 0x026f: return "_dup2";
- case 0x0270: return "_dupenv_s";
- case 0x0271: return "_ecvt";
- case 0x0272: return "_ecvt_s";
- case 0x0273: return "_endthread";
- case 0x0274: return "_endthreadex";
- case 0x0275: return "_environ";
- case 0x0276: return "_eof";
- case 0x0277: return "_errno";
- case 0x0278: return "_except1";
- case 0x0279: return "_except_handler2";
- case 0x027a: return "_except_handler3";
- case 0x027b: return "_except_handler4_common";
- case 0x027c: return "_execl";
- case 0x027d: return "_execle";
- case 0x027e: return "_execlp";
- case 0x027f: return "_execlpe";
- case 0x0280: return "_execv";
- case 0x0281: return "_execve";
- case 0x0282: return "_execvp";
- case 0x0283: return "_execvpe";
- case 0x0284: return "_exit";
- case 0x0285: return "_expand";
- case 0x0286: return "_fclose_nolock";
- case 0x0287: return "_fcloseall";
- case 0x0288: return "_fcvt";
- case 0x0289: return "_fcvt_s";
- case 0x028a: return "_fdclass";
- case 0x028b: return "_fdopen";
- case 0x028c: return "_fdpcomp";
- case 0x028d: return "_fdsign";
- case 0x028e: return "_fdtest";
- case 0x028f: return "_fflush_nolock";
- case 0x0290: return "_fgetchar";
- case 0x0291: return "_fgetwc_nolock";
- case 0x0292: return "_fgetwchar";
- case 0x0293: return "_filbuf";
- case 0x0294: return "_filelength";
- case 0x0295: return "_filelengthi64";
- case 0x0296: return "_fileno";
- case 0x0297: return "_findclose";
- case 0x0298: return "_findfirst32";
- case 0x0299: return "_findfirst32i64";
- case 0x029a: return "_findfirst64";
- case 0x029b: return "_findfirst64i32";
- case 0x029c: return "_findnext32";
- case 0x029d: return "_findnext32i64";
- case 0x029e: return "_findnext64";
- case 0x029f: return "_findnext64i32";
- case 0x02a0: return "_finite";
- case 0x02a1: return "_flsbuf";
- case 0x02a2: return "_flushall";
- case 0x02a3: return "_fmode";
- case 0x02a4: return "_fpclass";
- case 0x02a5: return "_fpieee_flt";
- case 0x02a6: return "_fpreset";
- case 0x02a7: return "_fprintf_l";
- case 0x02a8: return "_fprintf_p";
- case 0x02a9: return "_fprintf_p_l";
- case 0x02aa: return "_fprintf_s_l";
- case 0x02ab: return "_fputchar";
- case 0x02ac: return "_fputwc_nolock";
- case 0x02ad: return "_fputwchar";
- case 0x02ae: return "_fread_nolock";
- case 0x02af: return "_fread_nolock_s";
- case 0x02b0: return "_free_locale";
- case 0x02b1: return "_freea";
- case 0x02b2: return "_freea_s";
- case 0x02b3: return "_freefls";
- case 0x02b4: return "_fscanf_l";
- case 0x02b5: return "_fscanf_s_l";
- case 0x02b6: return "_fseek_nolock";
- case 0x02b7: return "_fseeki64";
- case 0x02b8: return "_fseeki64_nolock";
- case 0x02b9: return "_fsopen";
- case 0x02ba: return "_fstat32";
- case 0x02bb: return "_fstat32i64";
- case 0x02bc: return "_fstat64";
- case 0x02bd: return "_fstat64i32";
- case 0x02be: return "_ftell_nolock";
- case 0x02bf: return "_ftelli64";
- case 0x02c0: return "_ftelli64_nolock";
- case 0x02c1: return "_ftime32";
- case 0x02c2: return "_ftime32_s";
- case 0x02c3: return "_ftime64";
- case 0x02c4: return "_ftime64_s";
- case 0x02c5: return "_ftol";
- case 0x02c6: return "_fullpath";
- case 0x02c7: return "_futime32";
- case 0x02c8: return "_futime64";
- case 0x02c9: return "_fwprintf_l";
- case 0x02ca: return "_fwprintf_p";
- case 0x02cb: return "_fwprintf_p_l";
- case 0x02cc: return "_fwprintf_s_l";
- case 0x02cd: return "_fwrite_nolock";
- case 0x02ce: return "_fwscanf_l";
- case 0x02cf: return "_fwscanf_s_l";
- case 0x02d0: return "_gcvt";
- case 0x02d1: return "_gcvt_s";
- case 0x02d2: return "_get_current_locale";
- case 0x02d3: return "_get_daylight";
- case 0x02d4: return "_get_doserrno";
- case 0x02d5: return "_get_dstbias";
- case 0x02d6: return "_get_errno";
- case 0x02d7: return "_get_fmode";
- case 0x02d8: return "_get_heap_handle";
- case 0x02d9: return "_get_invalid_parameter_handler";
- case 0x02da: return "_get_osfhandle";
- case 0x02db: return "_get_output_format";
- case 0x02dc: return "_get_pgmptr";
- case 0x02dd: return "_get_printf_count_output";
- case 0x02de: return "_get_purecall_handler";
- case 0x02df: return "_get_terminate";
- case 0x02e0: return "_get_timezone";
- case 0x02e1: return "_get_tzname";
- case 0x02e2: return "_get_unexpected";
- case 0x02e3: return "_get_wpgmptr";
- case 0x02e4: return "_getc_nolock";
- case 0x02e5: return "_getch";
- case 0x02e6: return "_getch_nolock";
- case 0x02e7: return "_getche";
- case 0x02e8: return "_getche_nolock";
- case 0x02e9: return "_getcwd";
- case 0x02ea: return "_getdcwd";
- case 0x02eb: return "_getdiskfree";
- case 0x02ec: return "_getdllprocaddr";
- case 0x02ed: return "_getdrive";
- case 0x02ee: return "_getdrives";
- case 0x02ef: return "_getmaxstdio";
- case 0x02f0: return "_getmbcp";
- case 0x02f1: return "_getpid";
- case 0x02f2: return "_getptd";
- case 0x02f3: return "_getsystime";
- case 0x02f4: return "_getw";
- case 0x02f5: return "_getwch";
- case 0x02f6: return "_getwch_nolock";
- case 0x02f7: return "_getwche";
- case 0x02f8: return "_getwche_nolock";
- case 0x02f9: return "_getws";
- case 0x02fa: return "_getws_s";
- case 0x02fb: return "_global_unwind2";
- case 0x02fc: return "_gmtime32";
- case 0x02fd: return "_gmtime32_s";
- case 0x02fe: return "_gmtime64";
- case 0x02ff: return "_gmtime64_s";
- case 0x0300: return "_heapadd";
- case 0x0301: return "_heapchk";
- case 0x0302: return "_heapmin";
- case 0x0303: return "_heapset";
- case 0x0304: return "_heapused";
- case 0x0305: return "_heapwalk";
- case 0x0306: return "_hypot";
- case 0x0307: return "_hypotf";
- case 0x0308: return "_i64toa";
- case 0x0309: return "_i64toa_s";
- case 0x030a: return "_i64tow";
- case 0x030b: return "_i64tow_s";
- case 0x030c: return "_initptd";
- case 0x030d: return "_initterm";
- case 0x030e: return "_initterm_e";
- case 0x030f: return "_inp";
- case 0x0310: return "_inpd";
- case 0x0311: return "_inpw";
- case 0x0312: return "_invalid_parameter";
- case 0x0313: return "_invalid_parameter_noinfo";
- case 0x0314: return "_invalid_parameter_noinfo_noreturn";
- case 0x0315: return "_invoke_watson";
- case 0x0316: return "_iob";
- case 0x0317: return "_isalnum_l";
- case 0x0318: return "_isalpha_l";
- case 0x0319: return "_isatty";
- case 0x031a: return "_isblank_l";
- case 0x031b: return "_iscntrl_l";
- case 0x031c: return "_isctype";
- case 0x031d: return "_isctype_l";
- case 0x031e: return "_isdigit_l";
- case 0x031f: return "_isgraph_l";
- case 0x0320: return "_isleadbyte_l";
- case 0x0321: return "_islower_l";
- case 0x0322: return "_ismbbalnum";
- case 0x0323: return "_ismbbalnum_l";
- case 0x0324: return "_ismbbalpha";
- case 0x0325: return "_ismbbalpha_l";
- case 0x0326: return "_ismbbblank";
- case 0x0327: return "_ismbbblank_l";
- case 0x0328: return "_ismbbgraph";
- case 0x0329: return "_ismbbgraph_l";
- case 0x032a: return "_ismbbkalnum";
- case 0x032b: return "_ismbbkalnum_l";
- case 0x032c: return "_ismbbkana";
- case 0x032d: return "_ismbbkana_l";
- case 0x032e: return "_ismbbkprint";
- case 0x032f: return "_ismbbkprint_l";
- case 0x0330: return "_ismbbkpunct";
- case 0x0331: return "_ismbbkpunct_l";
- case 0x0332: return "_ismbblead";
- case 0x0333: return "_ismbblead_l";
- case 0x0334: return "_ismbbprint";
- case 0x0335: return "_ismbbprint_l";
- case 0x0336: return "_ismbbpunct";
- case 0x0337: return "_ismbbpunct_l";
- case 0x0338: return "_ismbbtrail";
- case 0x0339: return "_ismbbtrail_l";
- case 0x033a: return "_ismbcalnum";
- case 0x033b: return "_ismbcalnum_l";
- case 0x033c: return "_ismbcalpha";
- case 0x033d: return "_ismbcalpha_l";
- case 0x033e: return "_ismbcblank";
- case 0x033f: return "_ismbcblank_l";
- case 0x0340: return "_ismbcdigit";
- case 0x0341: return "_ismbcdigit_l";
- case 0x0342: return "_ismbcgraph";
- case 0x0343: return "_ismbcgraph_l";
- case 0x0344: return "_ismbchira";
- case 0x0345: return "_ismbchira_l";
- case 0x0346: return "_ismbckata";
- case 0x0347: return "_ismbckata_l";
- case 0x0348: return "_ismbcl0";
- case 0x0349: return "_ismbcl0_l";
- case 0x034a: return "_ismbcl1";
- case 0x034b: return "_ismbcl1_l";
- case 0x034c: return "_ismbcl2";
- case 0x034d: return "_ismbcl2_l";
- case 0x034e: return "_ismbclegal";
- case 0x034f: return "_ismbclegal_l";
- case 0x0350: return "_ismbclower";
- case 0x0351: return "_ismbclower_l";
- case 0x0352: return "_ismbcprint";
- case 0x0353: return "_ismbcprint_l";
- case 0x0354: return "_ismbcpunct";
- case 0x0355: return "_ismbcpunct_l";
- case 0x0356: return "_ismbcspace";
- case 0x0357: return "_ismbcspace_l";
- case 0x0358: return "_ismbcsymbol";
- case 0x0359: return "_ismbcsymbol_l";
- case 0x035a: return "_ismbcupper";
- case 0x035b: return "_ismbcupper_l";
- case 0x035c: return "_ismbslead";
- case 0x035d: return "_ismbslead_l";
- case 0x035e: return "_ismbstrail";
- case 0x035f: return "_ismbstrail_l";
- case 0x0360: return "_isnan";
- case 0x0361: return "_isprint_l";
- case 0x0362: return "_ispunct_l";
- case 0x0363: return "_isspace_l";
- case 0x0364: return "_isupper_l";
- case 0x0365: return "_iswalnum_l";
- case 0x0366: return "_iswalpha_l";
- case 0x0367: return "_iswblank_l";
- case 0x0368: return "_iswcntrl_l";
- case 0x0369: return "_iswcsym_l";
- case 0x036a: return "_iswcsymf_l";
- case 0x036b: return "_iswctype_l";
- case 0x036c: return "_iswdigit_l";
- case 0x036d: return "_iswgraph_l";
- case 0x036e: return "_iswlower_l";
- case 0x036f: return "_iswprint_l";
- case 0x0370: return "_iswpunct_l";
- case 0x0371: return "_iswspace_l";
- case 0x0372: return "_iswupper_l";
- case 0x0373: return "_iswxdigit_l";
- case 0x0374: return "_isxdigit_l";
- case 0x0375: return "_itoa";
- case 0x0376: return "_itoa_s";
- case 0x0377: return "_itow";
- case 0x0378: return "_itow_s";
- case 0x0379: return "_j0";
- case 0x037a: return "_j1";
- case 0x037b: return "_jn";
- case 0x037c: return "_kbhit";
- case 0x037d: return "_ldclass";
- case 0x037e: return "_ldpcomp";
- case 0x037f: return "_ldsign";
- case 0x0380: return "_ldtest";
- case 0x0381: return "_lfind";
- case 0x0382: return "_lfind_s";
- case 0x0383: return "_libm_sse2_acos_precise";
- case 0x0384: return "_libm_sse2_asin_precise";
- case 0x0385: return "_libm_sse2_atan_precise";
- case 0x0386: return "_libm_sse2_cos_precise";
- case 0x0387: return "_libm_sse2_exp_precise";
- case 0x0388: return "_libm_sse2_log10_precise";
- case 0x0389: return "_libm_sse2_log_precise";
- case 0x038a: return "_libm_sse2_pow_precise";
- case 0x038b: return "_libm_sse2_sin_precise";
- case 0x038c: return "_libm_sse2_sqrt_precise";
- case 0x038d: return "_libm_sse2_tan_precise";
- case 0x038e: return "_loaddll";
- case 0x038f: return "_local_unwind2";
- case 0x0390: return "_local_unwind4";
- case 0x0391: return "_localtime32";
- case 0x0392: return "_localtime32_s";
- case 0x0393: return "_localtime64";
- case 0x0394: return "_localtime64_s";
- case 0x0395: return "_lock";
- case 0x0396: return "_lock_file";
- case 0x0397: return "_locking";
- case 0x0398: return "_logb";
- case 0x0399: return "_longjmpex";
- case 0x039a: return "_lrotl";
- case 0x039b: return "_lrotr";
- case 0x039c: return "_lsearch";
- case 0x039d: return "_lsearch_s";
- case 0x039e: return "_lseek";
- case 0x039f: return "_lseeki64";
- case 0x03a0: return "_ltoa";
- case 0x03a1: return "_ltoa_s";
- case 0x03a2: return "_ltow";
- case 0x03a3: return "_ltow_s";
- case 0x03a4: return "_makepath";
- case 0x03a5: return "_makepath_s";
- case 0x03a6: return "_malloc_crt";
- case 0x03a7: return "_mbbtombc";
- case 0x03a8: return "_mbbtombc_l";
- case 0x03a9: return "_mbbtype";
- case 0x03aa: return "_mbbtype_l";
- case 0x03ab: return "_mbcasemap";
- case 0x03ac: return "_mbccpy";
- case 0x03ad: return "_mbccpy_l";
- case 0x03ae: return "_mbccpy_s";
- case 0x03af: return "_mbccpy_s_l";
- case 0x03b0: return "_mbcjistojms";
- case 0x03b1: return "_mbcjistojms_l";
- case 0x03b2: return "_mbcjmstojis";
- case 0x03b3: return "_mbcjmstojis_l";
- case 0x03b4: return "_mbclen";
- case 0x03b5: return "_mbclen_l";
- case 0x03b6: return "_mbctohira";
- case 0x03b7: return "_mbctohira_l";
- case 0x03b8: return "_mbctokata";
- case 0x03b9: return "_mbctokata_l";
- case 0x03ba: return "_mbctolower";
- case 0x03bb: return "_mbctolower_l";
- case 0x03bc: return "_mbctombb";
- case 0x03bd: return "_mbctombb_l";
- case 0x03be: return "_mbctoupper";
- case 0x03bf: return "_mbctoupper_l";
- case 0x03c0: return "_mbctype";
- case 0x03c1: return "_mblen_l";
- case 0x03c2: return "_mbsbtype";
- case 0x03c3: return "_mbsbtype_l";
- case 0x03c4: return "_mbscat_s";
- case 0x03c5: return "_mbscat_s_l";
- case 0x03c6: return "_mbschr";
- case 0x03c7: return "_mbschr_l";
- case 0x03c8: return "_mbscmp";
- case 0x03c9: return "_mbscmp_l";
- case 0x03ca: return "_mbscoll";
- case 0x03cb: return "_mbscoll_l";
- case 0x03cc: return "_mbscpy_s";
- case 0x03cd: return "_mbscpy_s_l";
- case 0x03ce: return "_mbscspn";
- case 0x03cf: return "_mbscspn_l";
- case 0x03d0: return "_mbsdec";
- case 0x03d1: return "_mbsdec_l";
- case 0x03d2: return "_mbsicmp";
- case 0x03d3: return "_mbsicmp_l";
- case 0x03d4: return "_mbsicoll";
- case 0x03d5: return "_mbsicoll_l";
- case 0x03d6: return "_mbsinc";
- case 0x03d7: return "_mbsinc_l";
- case 0x03d8: return "_mbslen";
- case 0x03d9: return "_mbslen_l";
- case 0x03da: return "_mbslwr";
- case 0x03db: return "_mbslwr_l";
- case 0x03dc: return "_mbslwr_s";
- case 0x03dd: return "_mbslwr_s_l";
- case 0x03de: return "_mbsnbcat";
- case 0x03df: return "_mbsnbcat_l";
- case 0x03e0: return "_mbsnbcat_s";
- case 0x03e1: return "_mbsnbcat_s_l";
- case 0x03e2: return "_mbsnbcmp";
- case 0x03e3: return "_mbsnbcmp_l";
- case 0x03e4: return "_mbsnbcnt";
- case 0x03e5: return "_mbsnbcnt_l";
- case 0x03e6: return "_mbsnbcoll";
- case 0x03e7: return "_mbsnbcoll_l";
- case 0x03e8: return "_mbsnbcpy";
- case 0x03e9: return "_mbsnbcpy_l";
- case 0x03ea: return "_mbsnbcpy_s";
- case 0x03eb: return "_mbsnbcpy_s_l";
- case 0x03ec: return "_mbsnbicmp";
- case 0x03ed: return "_mbsnbicmp_l";
- case 0x03ee: return "_mbsnbicoll";
- case 0x03ef: return "_mbsnbicoll_l";
- case 0x03f0: return "_mbsnbset";
- case 0x03f1: return "_mbsnbset_l";
- case 0x03f2: return "_mbsnbset_s";
- case 0x03f3: return "_mbsnbset_s_l";
- case 0x03f4: return "_mbsncat";
- case 0x03f5: return "_mbsncat_l";
- case 0x03f6: return "_mbsncat_s";
- case 0x03f7: return "_mbsncat_s_l";
- case 0x03f8: return "_mbsnccnt";
- case 0x03f9: return "_mbsnccnt_l";
- case 0x03fa: return "_mbsncmp";
- case 0x03fb: return "_mbsncmp_l";
- case 0x03fc: return "_mbsncoll";
- case 0x03fd: return "_mbsncoll_l";
- case 0x03fe: return "_mbsncpy";
- case 0x03ff: return "_mbsncpy_l";
- case 0x0400: return "_mbsncpy_s";
- case 0x0401: return "_mbsncpy_s_l";
- case 0x0402: return "_mbsnextc";
- case 0x0403: return "_mbsnextc_l";
- case 0x0404: return "_mbsnicmp";
- case 0x0405: return "_mbsnicmp_l";
- case 0x0406: return "_mbsnicoll";
- case 0x0407: return "_mbsnicoll_l";
- case 0x0408: return "_mbsninc";
- case 0x0409: return "_mbsninc_l";
- case 0x040a: return "_mbsnlen";
- case 0x040b: return "_mbsnlen_l";
- case 0x040c: return "_mbsnset";
- case 0x040d: return "_mbsnset_l";
- case 0x040e: return "_mbsnset_s";
- case 0x040f: return "_mbsnset_s_l";
- case 0x0410: return "_mbspbrk";
- case 0x0411: return "_mbspbrk_l";
- case 0x0412: return "_mbsrchr";
- case 0x0413: return "_mbsrchr_l";
- case 0x0414: return "_mbsrev";
- case 0x0415: return "_mbsrev_l";
- case 0x0416: return "_mbsset";
- case 0x0417: return "_mbsset_l";
- case 0x0418: return "_mbsset_s";
- case 0x0419: return "_mbsset_s_l";
- case 0x041a: return "_mbsspn";
- case 0x041b: return "_mbsspn_l";
- case 0x041c: return "_mbsspnp";
- case 0x041d: return "_mbsspnp_l";
- case 0x041e: return "_mbsstr";
- case 0x041f: return "_mbsstr_l";
- case 0x0420: return "_mbstok";
- case 0x0421: return "_mbstok_l";
- case 0x0422: return "_mbstok_s";
- case 0x0423: return "_mbstok_s_l";
- case 0x0424: return "_mbstowcs_l";
- case 0x0425: return "_mbstowcs_s_l";
- case 0x0426: return "_mbstrlen";
- case 0x0427: return "_mbstrlen_l";
- case 0x0428: return "_mbstrnlen";
- case 0x0429: return "_mbstrnlen_l";
- case 0x042a: return "_mbsupr";
- case 0x042b: return "_mbsupr_l";
- case 0x042c: return "_mbsupr_s";
- case 0x042d: return "_mbsupr_s_l";
- case 0x042e: return "_mbtowc_l";
- case 0x042f: return "_memccpy";
- case 0x0430: return "_memicmp";
- case 0x0431: return "_memicmp_l";
- case 0x0432: return "_mkdir";
- case 0x0433: return "_mkgmtime32";
- case 0x0434: return "_mkgmtime64";
- case 0x0435: return "_mktemp";
- case 0x0436: return "_mktemp_s";
- case 0x0437: return "_mktime32";
- case 0x0438: return "_mktime64";
- case 0x0439: return "_msize";
- case 0x043a: return "_nextafter";
- case 0x043b: return "_onexit";
- case 0x043c: return "_open";
- case 0x043d: return "_open_osfhandle";
- case 0x043e: return "_outp";
- case 0x043f: return "_outpd";
- case 0x0440: return "_outpw";
- case 0x0441: return "_pclose";
- case 0x0442: return "_pctype";
- case 0x0443: return "_pgmptr";
- case 0x0444: return "_pipe";
- case 0x0445: return "_popen";
- case 0x0446: return "_printf_l";
- case 0x0447: return "_printf_p";
- case 0x0448: return "_printf_p_l";
- case 0x0449: return "_printf_s_l";
- case 0x044a: return "_purecall";
- case 0x044b: return "_putch";
- case 0x044c: return "_putch_nolock";
- case 0x044d: return "_putenv";
- case 0x044e: return "_putenv_s";
- case 0x044f: return "_putw";
- case 0x0450: return "_putwch";
- case 0x0451: return "_putwch_nolock";
- case 0x0452: return "_putws";
- case 0x0453: return "_pwctype";
- case 0x0454: return "_read";
- case 0x0455: return "_realloc_crt";
- case 0x0456: return "_recalloc";
- case 0x0457: return "_recalloc_crt";
- case 0x0458: return "_resetstkoflw";
- case 0x0459: return "_rmdir";
- case 0x045a: return "_rmtmp";
- case 0x045b: return "_rotl";
- case 0x045c: return "_rotl64";
- case 0x045d: return "_rotr";
- case 0x045e: return "_rotr64";
- case 0x045f: return "_scalb";
- case 0x0460: return "_scanf_l";
- case 0x0461: return "_scanf_s_l";
- case 0x0462: return "_scprintf";
- case 0x0463: return "_scprintf_l";
- case 0x0464: return "_scprintf_p";
- case 0x0465: return "_scprintf_p_l";
- case 0x0466: return "_scwprintf";
- case 0x0467: return "_scwprintf_l";
- case 0x0468: return "_scwprintf_p";
- case 0x0469: return "_scwprintf_p_l";
- case 0x046a: return "_searchenv";
- case 0x046b: return "_searchenv_s";
- case 0x046d: return "_seh_longjmp_unwind";
- case 0x046c: return "_seh_longjmp_unwind4";
- case 0x046e: return "_set_SSE2_enable";
- case 0x046f: return "_set_abort_behavior";
- case 0x0470: return "_set_controlfp";
- case 0x0471: return "_set_doserrno";
- case 0x0472: return "_set_errno";
- case 0x0473: return "_set_error_mode";
- case 0x0474: return "_set_fmode";
- case 0x0475: return "_set_invalid_parameter_handler";
- case 0x0476: return "_set_malloc_crt_max_wait";
- case 0x0477: return "_set_output_format";
- case 0x0478: return "_set_printf_count_output";
- case 0x0479: return "_set_purecall_handler";
- case 0x047a: return "_seterrormode";
- case 0x047b: return "_setjmp";
- case 0x047c: return "_setjmp3";
- case 0x047d: return "_setmaxstdio";
- case 0x047e: return "_setmbcp";
- case 0x047f: return "_setmode";
- case 0x0480: return "_setsystime";
- case 0x0481: return "_sleep";
- case 0x0482: return "_snprintf";
- case 0x0483: return "_snprintf_c";
- case 0x0484: return "_snprintf_c_l";
- case 0x0485: return "_snprintf_l";
- case 0x0486: return "_snprintf_s";
- case 0x0487: return "_snprintf_s_l";
- case 0x0488: return "_snscanf";
- case 0x0489: return "_snscanf_l";
- case 0x048a: return "_snscanf_s";
- case 0x048b: return "_snscanf_s_l";
- case 0x048c: return "_snwprintf";
- case 0x048d: return "_snwprintf_l";
- case 0x048e: return "_snwprintf_s";
- case 0x048f: return "_snwprintf_s_l";
- case 0x0490: return "_snwscanf";
- case 0x0491: return "_snwscanf_l";
- case 0x0492: return "_snwscanf_s";
- case 0x0493: return "_snwscanf_s_l";
- case 0x0494: return "_sopen";
- case 0x0495: return "_sopen_s";
- case 0x0496: return "_spawnl";
- case 0x0497: return "_spawnle";
- case 0x0498: return "_spawnlp";
- case 0x0499: return "_spawnlpe";
- case 0x049a: return "_spawnv";
- case 0x049b: return "_spawnve";
- case 0x049c: return "_spawnvp";
- case 0x049d: return "_spawnvpe";
- case 0x049e: return "_splitpath";
- case 0x049f: return "_splitpath_s";
- case 0x04a0: return "_sprintf_l";
- case 0x04a1: return "_sprintf_p";
- case 0x04a2: return "_sprintf_p_l";
- case 0x04a3: return "_sprintf_s_l";
- case 0x04a4: return "_sscanf_l";
- case 0x04a5: return "_sscanf_s_l";
- case 0x04a6: return "_stat32";
- case 0x04a7: return "_stat32i64";
- case 0x04a8: return "_stat64";
- case 0x04a9: return "_stat64i32";
- case 0x04aa: return "_statusfp";
- case 0x04ab: return "_statusfp2";
- case 0x04ac: return "_strcoll_l";
- case 0x04ad: return "_strdate";
- case 0x04ae: return "_strdate_s";
- case 0x04af: return "_strdup";
- case 0x04b0: return "_strerror";
- case 0x04b1: return "_strerror_s";
- case 0x04b2: return "_strftime_l";
- case 0x04b3: return "_stricmp";
- case 0x04b4: return "_stricmp_l";
- case 0x04b5: return "_stricoll";
- case 0x04b6: return "_stricoll_l";
- case 0x04b7: return "_strlwr";
- case 0x04b8: return "_strlwr_l";
- case 0x04b9: return "_strlwr_s";
- case 0x04ba: return "_strlwr_s_l";
- case 0x04bb: return "_strncoll";
- case 0x04bc: return "_strncoll_l";
- case 0x04bd: return "_strnicmp";
- case 0x04be: return "_strnicmp_l";
- case 0x04bf: return "_strnicoll";
- case 0x04c0: return "_strnicoll_l";
- case 0x04c1: return "_strnset";
- case 0x04c2: return "_strnset_s";
- case 0x04c3: return "_strrev";
- case 0x04c4: return "_strset";
- case 0x04c5: return "_strset_s";
- case 0x04c6: return "_strtime";
- case 0x04c7: return "_strtime_s";
- case 0x04c8: return "_strtod_l";
- case 0x04c9: return "_strtof_l";
- case 0x04ca: return "_strtoi64";
- case 0x04cb: return "_strtoi64_l";
- case 0x04cc: return "_strtoimax_l";
- case 0x04cd: return "_strtol_l";
- case 0x04ce: return "_strtold_l";
- case 0x04cf: return "_strtoll_l";
- case 0x04d0: return "_strtoui64";
- case 0x04d1: return "_strtoui64_l";
- case 0x04d2: return "_strtoul_l";
- case 0x04d3: return "_strtoull_l";
- case 0x04d4: return "_strtoumax_l";
- case 0x04d5: return "_strupr";
- case 0x04d6: return "_strupr_l";
- case 0x04d7: return "_strupr_s";
- case 0x04d8: return "_strupr_s_l";
- case 0x04d9: return "_strxfrm_l";
- case 0x04da: return "_swab";
- case 0x04db: return "_swprintf";
- case 0x04dc: return "_swprintf_c";
- case 0x04dd: return "_swprintf_c_l";
- case 0x04de: return "_swprintf_p";
- case 0x04df: return "_swprintf_p_l";
- case 0x04e0: return "_swprintf_s_l";
- case 0x04e1: return "_swscanf_l";
- case 0x04e2: return "_swscanf_s_l";
- case 0x04e3: return "_sys_errlist";
- case 0x04e4: return "_sys_nerr";
- case 0x04e5: return "_tell";
- case 0x04e6: return "_telli64";
- case 0x04e7: return "_tempnam";
- case 0x04e8: return "_time32";
- case 0x04e9: return "_time64";
- case 0x04ea: return "_timezone";
- case 0x04eb: return "_tolower";
- case 0x04ec: return "_tolower_l";
- case 0x04ed: return "_toupper";
- case 0x04ee: return "_toupper_l";
- case 0x04ef: return "_towlower_l";
- case 0x04f0: return "_towupper_l";
- case 0x04f1: return "_tzname";
- case 0x04f2: return "_tzset";
- case 0x04f3: return "_ui64toa";
- case 0x04f4: return "_ui64toa_s";
- case 0x04f5: return "_ui64tow";
- case 0x04f6: return "_ui64tow_s";
- case 0x04f7: return "_ultoa";
- case 0x04f8: return "_ultoa_s";
- case 0x04f9: return "_ultow";
- case 0x04fa: return "_ultow_s";
- case 0x04fb: return "_umask";
- case 0x04fc: return "_umask_s";
- case 0x04fd: return "_ungetc_nolock";
- case 0x04fe: return "_ungetch";
- case 0x04ff: return "_ungetch_nolock";
- case 0x0500: return "_ungetwc_nolock";
- case 0x0501: return "_ungetwch";
- case 0x0502: return "_ungetwch_nolock";
- case 0x0503: return "_unlink";
- case 0x0504: return "_unloaddll";
- case 0x0505: return "_unlock";
- case 0x0506: return "_unlock_file";
- case 0x0507: return "_utime32";
- case 0x0508: return "_utime64";
- case 0x0509: return "_vacopy";
- case 0x050a: return "_vcprintf";
- case 0x050b: return "_vcprintf_l";
- case 0x050c: return "_vcprintf_p";
- case 0x050d: return "_vcprintf_p_l";
- case 0x050e: return "_vcprintf_s";
- case 0x050f: return "_vcprintf_s_l";
- case 0x0510: return "_vcwprintf";
- case 0x0511: return "_vcwprintf_l";
- case 0x0512: return "_vcwprintf_p";
- case 0x0513: return "_vcwprintf_p_l";
- case 0x0514: return "_vcwprintf_s";
- case 0x0515: return "_vcwprintf_s_l";
- case 0x0516: return "_vfprintf_l";
- case 0x0517: return "_vfprintf_p";
- case 0x0518: return "_vfprintf_p_l";
- case 0x0519: return "_vfprintf_s_l";
- case 0x051a: return "_vfwprintf_l";
- case 0x051b: return "_vfwprintf_p";
- case 0x051c: return "_vfwprintf_p_l";
- case 0x051d: return "_vfwprintf_s_l";
- case 0x051e: return "_vprintf_l";
- case 0x051f: return "_vprintf_p";
- case 0x0520: return "_vprintf_p_l";
- case 0x0521: return "_vprintf_s_l";
- case 0x0522: return "_vscprintf";
- case 0x0523: return "_vscprintf_l";
- case 0x0524: return "_vscprintf_p";
- case 0x0525: return "_vscprintf_p_l";
- case 0x0526: return "_vscwprintf";
- case 0x0527: return "_vscwprintf_l";
- case 0x0528: return "_vscwprintf_p";
- case 0x0529: return "_vscwprintf_p_l";
- case 0x052a: return "_vsnprintf";
- case 0x052b: return "_vsnprintf_c";
- case 0x052c: return "_vsnprintf_c_l";
- case 0x052d: return "_vsnprintf_l";
- case 0x052e: return "_vsnprintf_s";
- case 0x052f: return "_vsnprintf_s_l";
- case 0x0530: return "_vsnwprintf";
- case 0x0531: return "_vsnwprintf_l";
- case 0x0532: return "_vsnwprintf_s";
- case 0x0533: return "_vsnwprintf_s_l";
- case 0x0534: return "_vsprintf_l";
- case 0x0535: return "_vsprintf_p";
- case 0x0536: return "_vsprintf_p_l";
- case 0x0537: return "_vsprintf_s_l";
- case 0x0538: return "_vswprintf";
- case 0x0539: return "_vswprintf_c";
- case 0x053a: return "_vswprintf_c_l";
- case 0x053b: return "_vswprintf_l";
- case 0x053c: return "_vswprintf_p";
- case 0x053d: return "_vswprintf_p_l";
- case 0x053e: return "_vswprintf_s_l";
- case 0x053f: return "_vwprintf_l";
- case 0x0540: return "_vwprintf_p";
- case 0x0541: return "_vwprintf_p_l";
- case 0x0542: return "_vwprintf_s_l";
- case 0x0543: return "_waccess";
- case 0x0544: return "_waccess_s";
- case 0x0545: return "_wasctime";
- case 0x0546: return "_wasctime_s";
- case 0x0547: return "_wassert";
- case 0x0548: return "_wchdir";
- case 0x0549: return "_wchmod";
- case 0x054a: return "_wcmdln";
- case 0x054b: return "_wcreat";
- case 0x054c: return "_wcreate_locale";
- case 0x054d: return "_wcscoll_l";
- case 0x054e: return "_wcsdup";
- case 0x054f: return "_wcserror";
- case 0x0550: return "_wcserror_s";
- case 0x0551: return "_wcsftime_l";
- case 0x0552: return "_wcsicmp";
- case 0x0553: return "_wcsicmp_l";
- case 0x0554: return "_wcsicoll";
- case 0x0555: return "_wcsicoll_l";
- case 0x0556: return "_wcslwr";
- case 0x0557: return "_wcslwr_l";
- case 0x0558: return "_wcslwr_s";
- case 0x0559: return "_wcslwr_s_l";
- case 0x055a: return "_wcsncoll";
- case 0x055b: return "_wcsncoll_l";
- case 0x055c: return "_wcsnicmp";
- case 0x055d: return "_wcsnicmp_l";
- case 0x055e: return "_wcsnicoll";
- case 0x055f: return "_wcsnicoll_l";
- case 0x0560: return "_wcsnset";
- case 0x0561: return "_wcsnset_s";
- case 0x0562: return "_wcsrev";
- case 0x0563: return "_wcsset";
- case 0x0564: return "_wcsset_s";
- case 0x0565: return "_wcstod_l";
- case 0x0566: return "_wcstof_l";
- case 0x0567: return "_wcstoi64";
- case 0x0568: return "_wcstoi64_l";
- case 0x0569: return "_wcstoimax_l";
- case 0x056a: return "_wcstol_l";
- case 0x056b: return "_wcstold_l";
- case 0x056c: return "_wcstoll_l";
- case 0x056d: return "_wcstombs_l";
- case 0x056e: return "_wcstombs_s_l";
- case 0x056f: return "_wcstoui64";
- case 0x0570: return "_wcstoui64_l";
- case 0x0571: return "_wcstoul_l";
- case 0x0572: return "_wcstoull_l";
- case 0x0573: return "_wcstoumax_l";
- case 0x0574: return "_wcsupr";
- case 0x0575: return "_wcsupr_l";
- case 0x0576: return "_wcsupr_s";
- case 0x0577: return "_wcsupr_s_l";
- case 0x0578: return "_wcsxfrm_l";
- case 0x0579: return "_wctime32";
- case 0x057a: return "_wctime32_s";
- case 0x057b: return "_wctime64";
- case 0x057c: return "_wctime64_s";
- case 0x057d: return "_wctomb_l";
- case 0x057e: return "_wctomb_s_l";
- case 0x057f: return "_wctype";
- case 0x0580: return "_wdupenv_s";
- case 0x0581: return "_wenviron";
- case 0x0582: return "_wexecl";
- case 0x0583: return "_wexecle";
- case 0x0584: return "_wexeclp";
- case 0x0585: return "_wexeclpe";
- case 0x0586: return "_wexecv";
- case 0x0587: return "_wexecve";
- case 0x0588: return "_wexecvp";
- case 0x0589: return "_wexecvpe";
- case 0x058a: return "_wfdopen";
- case 0x058b: return "_wfindfirst32";
- case 0x058c: return "_wfindfirst32i64";
- case 0x058d: return "_wfindfirst64";
- case 0x058e: return "_wfindfirst64i32";
- case 0x058f: return "_wfindnext32";
- case 0x0590: return "_wfindnext32i64";
- case 0x0591: return "_wfindnext64";
- case 0x0592: return "_wfindnext64i32";
- case 0x0593: return "_wfopen";
- case 0x0594: return "_wfopen_s";
- case 0x0595: return "_wfreopen";
- case 0x0596: return "_wfreopen_s";
- case 0x0597: return "_wfsopen";
- case 0x0598: return "_wfullpath";
- case 0x0599: return "_wgetcwd";
- case 0x059a: return "_wgetdcwd";
- case 0x059b: return "_wgetenv";
- case 0x059c: return "_wgetenv_s";
- case 0x059d: return "_wmakepath";
- case 0x059e: return "_wmakepath_s";
- case 0x059f: return "_wmkdir";
- case 0x05a0: return "_wmktemp";
- case 0x05a1: return "_wmktemp_s";
- case 0x05a2: return "_wopen";
- case 0x05a3: return "_wperror";
- case 0x05a4: return "_wpgmptr";
- case 0x05a5: return "_wpopen";
- case 0x05a6: return "_wprintf_l";
- case 0x05a7: return "_wprintf_p";
- case 0x05a8: return "_wprintf_p_l";
- case 0x05a9: return "_wprintf_s_l";
- case 0x05aa: return "_wputenv";
- case 0x05ab: return "_wputenv_s";
- case 0x05ac: return "_wremove";
- case 0x05ad: return "_wrename";
- case 0x05ae: return "_write";
- case 0x05af: return "_wrmdir";
- case 0x05b0: return "_wscanf_l";
- case 0x05b1: return "_wscanf_s_l";
- case 0x05b2: return "_wsearchenv";
- case 0x05b3: return "_wsearchenv_s";
- case 0x05b4: return "_wsetlocale";
- case 0x05b5: return "_wsopen";
- case 0x05b6: return "_wsopen_s";
- case 0x05b7: return "_wspawnl";
- case 0x05b8: return "_wspawnle";
- case 0x05b9: return "_wspawnlp";
- case 0x05ba: return "_wspawnlpe";
- case 0x05bb: return "_wspawnv";
- case 0x05bc: return "_wspawnve";
- case 0x05bd: return "_wspawnvp";
- case 0x05be: return "_wspawnvpe";
- case 0x05bf: return "_wsplitpath";
- case 0x05c0: return "_wsplitpath_s";
- case 0x05c1: return "_wstat32";
- case 0x05c2: return "_wstat32i64";
- case 0x05c3: return "_wstat64";
- case 0x05c4: return "_wstat64i32";
- case 0x05c5: return "_wstrdate";
- case 0x05c6: return "_wstrdate_s";
- case 0x05c7: return "_wstrtime";
- case 0x05c8: return "_wstrtime_s";
- case 0x05c9: return "_wsystem";
- case 0x05ca: return "_wtempnam";
- case 0x05cb: return "_wtmpnam";
- case 0x05cc: return "_wtmpnam_s";
- case 0x05cd: return "_wtof";
- case 0x05ce: return "_wtof_l";
- case 0x05cf: return "_wtoi";
- case 0x05d0: return "_wtoi64";
- case 0x05d1: return "_wtoi64_l";
- case 0x05d2: return "_wtoi_l";
- case 0x05d3: return "_wtol";
- case 0x05d4: return "_wtol_l";
- case 0x05d5: return "_wtoll";
- case 0x05d6: return "_wtoll_l";
- case 0x05d7: return "_wunlink";
- case 0x05d8: return "_wutime32";
- case 0x05d9: return "_wutime64";
- case 0x05da: return "_y0";
- case 0x05db: return "_y1";
- case 0x05dc: return "_yn";
- case 0x05dd: return "abort";
- case 0x05de: return "abs";
- case 0x05df: return "acos";
- case 0x05e0: return "acosh";
- case 0x05e1: return "acoshf";
- case 0x05e2: return "acoshl";
- case 0x05e3: return "asctime";
- case 0x05e4: return "asctime_s";
- case 0x05e5: return "asin";
- case 0x05e6: return "asinh";
- case 0x05e7: return "asinhf";
- case 0x05e8: return "asinhl";
- case 0x05e9: return "atan";
- case 0x05ea: return "atan2";
- case 0x05eb: return "atanh";
- case 0x05ec: return "atanhf";
- case 0x05ed: return "atanhl";
- case 0x05ee: return "atexit";
- case 0x05ef: return "atof";
- case 0x05f0: return "atoi";
- case 0x05f1: return "atol";
- case 0x05f2: return "atoll";
- case 0x05f3: return "bsearch";
- case 0x05f4: return "bsearch_s";
- case 0x05f5: return "btowc";
- case 0x05f6: return "cabs";
- case 0x05f7: return "cabsf";
- case 0x05f8: return "cabsl";
- case 0x05f9: return "cacos";
- case 0x05fa: return "cacosf";
- case 0x05fb: return "cacosh";
- case 0x05fc: return "cacoshf";
- case 0x05fd: return "cacoshl";
- case 0x05fe: return "cacosl";
- case 0x05ff: return "calloc";
- case 0x0600: return "carg";
- case 0x0601: return "cargf";
- case 0x0602: return "cargl";
- case 0x0603: return "casin";
- case 0x0604: return "casinf";
- case 0x0605: return "casinh";
- case 0x0606: return "casinhf";
- case 0x0607: return "casinhl";
- case 0x0608: return "casinl";
- case 0x0609: return "catan";
- case 0x060a: return "catanf";
- case 0x060b: return "catanh";
- case 0x060c: return "catanhf";
- case 0x060d: return "catanhl";
- case 0x060e: return "catanl";
- case 0x060f: return "cbrt";
- case 0x0610: return "cbrtf";
- case 0x0611: return "cbrtl";
- case 0x0612: return "ccos";
- case 0x0613: return "ccosf";
- case 0x0614: return "ccosh";
- case 0x0615: return "ccoshf";
- case 0x0616: return "ccoshl";
- case 0x0617: return "ccosl";
- case 0x0618: return "ceil";
- case 0x0619: return "cexp";
- case 0x061a: return "cexpf";
- case 0x061b: return "cexpl";
- case 0x061c: return "cimag";
- case 0x061d: return "cimagf";
- case 0x061e: return "cimagl";
- case 0x061f: return "clearerr";
- case 0x0620: return "clearerr_s";
- case 0x0621: return "clock";
- case 0x0622: return "clog";
- case 0x0623: return "clog10";
- case 0x0624: return "clog10f";
- case 0x0625: return "clog10l";
- case 0x0626: return "clogf";
- case 0x0627: return "clogl";
- case 0x0628: return "conj";
- case 0x0629: return "conjf";
- case 0x062a: return "conjl";
- case 0x062b: return "copysign";
- case 0x062c: return "copysignf";
- case 0x062d: return "copysignl";
- case 0x062e: return "cos";
- case 0x062f: return "cosh";
- case 0x0630: return "cpow";
- case 0x0631: return "cpowf";
- case 0x0632: return "cpowl";
- case 0x0633: return "cproj";
- case 0x0634: return "cprojf";
- case 0x0635: return "cprojl";
- case 0x0636: return "creal";
- case 0x0637: return "crealf";
- case 0x0638: return "creall";
- case 0x0639: return "csin";
- case 0x063a: return "csinf";
- case 0x063b: return "csinh";
- case 0x063c: return "csinhf";
- case 0x063d: return "csinhl";
- case 0x063e: return "csinl";
- case 0x063f: return "csqrt";
- case 0x0640: return "csqrtf";
- case 0x0641: return "csqrtl";
- case 0x0642: return "ctan";
- case 0x0643: return "ctanf";
- case 0x0644: return "ctanh";
- case 0x0645: return "ctanhf";
- case 0x0646: return "ctanhl";
- case 0x0647: return "ctanl";
- case 0x0648: return "div";
- case 0x0649: return "erf";
- case 0x064a: return "erfc";
- case 0x064b: return "erfcf";
- case 0x064c: return "erfcl";
- case 0x064d: return "erff";
- case 0x064e: return "erfl";
- case 0x064f: return "exit";
- case 0x0650: return "exp";
- case 0x0651: return "exp2";
- case 0x0652: return "exp2f";
- case 0x0653: return "exp2l";
- case 0x0654: return "expm1";
- case 0x0655: return "expm1f";
- case 0x0656: return "expm1l";
- case 0x0657: return "fabs";
- case 0x0658: return "fclose";
- case 0x0659: return "fdim";
- case 0x065a: return "fdimf";
- case 0x065b: return "fdiml";
- case 0x065c: return "feclearexcept";
- case 0x065d: return "fegetenv";
- case 0x065e: return "fegetexceptflag";
- case 0x065f: return "fegetround";
- case 0x0660: return "feholdexcept";
- case 0x0661: return "feof";
- case 0x0662: return "feraiseexcept";
- case 0x0663: return "ferror";
- case 0x0664: return "fesetenv";
- case 0x0665: return "fesetexceptflag";
- case 0x0666: return "fesetround";
- case 0x0667: return "fetestexcept";
- case 0x0668: return "feupdateenv";
- case 0x0669: return "fflush";
- case 0x066a: return "fgetc";
- case 0x066b: return "fgetpos";
- case 0x066c: return "fgets";
- case 0x066d: return "fgetwc";
- case 0x066e: return "fgetws";
- case 0x066f: return "floor";
- case 0x0670: return "fma";
- case 0x0671: return "fmaf";
- case 0x0672: return "fmal";
- case 0x0673: return "fmax";
- case 0x0674: return "fmaxf";
- case 0x0675: return "fmaxl";
- case 0x0676: return "fmin";
- case 0x0677: return "fminf";
- case 0x0678: return "fminl";
- case 0x0679: return "fmod";
- case 0x067a: return "fopen";
- case 0x067b: return "fopen_s";
- case 0x067c: return "fprintf";
- case 0x067d: return "fprintf_s";
- case 0x067e: return "fputc";
- case 0x067f: return "fputs";
- case 0x0680: return "fputwc";
- case 0x0681: return "fputws";
- case 0x0682: return "fread";
- case 0x0683: return "fread_s";
- case 0x0684: return "free";
- case 0x0685: return "freopen";
- case 0x0686: return "freopen_s";
- case 0x0687: return "frexp";
- case 0x0688: return "fscanf";
- case 0x0689: return "fscanf_s";
- case 0x068a: return "fseek";
- case 0x068b: return "fsetpos";
- case 0x068c: return "ftell";
- case 0x068d: return "fwprintf";
- case 0x068e: return "fwprintf_s";
- case 0x068f: return "fwrite";
- case 0x0690: return "fwscanf";
- case 0x0691: return "fwscanf_s";
- case 0x0692: return "getc";
- case 0x0693: return "getchar";
- case 0x0694: return "getenv";
- case 0x0695: return "getenv_s";
- case 0x0696: return "gets";
- case 0x0697: return "gets_s";
- case 0x0698: return "getwc";
- case 0x0699: return "getwchar";
- case 0x069a: return "ilogb";
- case 0x069b: return "ilogbf";
- case 0x069c: return "ilogbl";
- case 0x069d: return "imaxabs";
- case 0x069e: return "imaxdiv";
- case 0x069f: return "is_wctype";
- case 0x06a0: return "isalnum";
- case 0x06a1: return "isalpha";
- case 0x06a2: return "isblank";
- case 0x06a3: return "iscntrl";
- case 0x06a4: return "isdigit";
- case 0x06a5: return "isgraph";
- case 0x06a6: return "isleadbyte";
- case 0x06a7: return "islower";
- case 0x06a8: return "isprint";
- case 0x06a9: return "ispunct";
- case 0x06aa: return "isspace";
- case 0x06ab: return "isupper";
- case 0x06ac: return "iswalnum";
- case 0x06ad: return "iswalpha";
- case 0x06ae: return "iswascii";
- case 0x06af: return "iswblank";
- case 0x06b0: return "iswcntrl";
- case 0x06b1: return "iswctype";
- case 0x06b2: return "iswdigit";
- case 0x06b3: return "iswgraph";
- case 0x06b4: return "iswlower";
- case 0x06b5: return "iswprint";
- case 0x06b6: return "iswpunct";
- case 0x06b7: return "iswspace";
- case 0x06b8: return "iswupper";
- case 0x06b9: return "iswxdigit";
- case 0x06ba: return "isxdigit";
- case 0x06bb: return "labs";
- case 0x06bc: return "ldexp";
- case 0x06bd: return "ldiv";
- case 0x06be: return "lgamma";
- case 0x06bf: return "lgammaf";
- case 0x06c0: return "lgammal";
- case 0x06c1: return "llabs";
- case 0x06c2: return "lldiv";
- case 0x06c3: return "llrint";
- case 0x06c4: return "llrintf";
- case 0x06c5: return "llrintl";
- case 0x06c6: return "llround";
- case 0x06c7: return "llroundf";
- case 0x06c8: return "llroundl";
- case 0x06c9: return "localeconv";
- case 0x06ca: return "log";
- case 0x06cb: return "log10";
- case 0x06cc: return "log1p";
- case 0x06cd: return "log1pf";
- case 0x06ce: return "log1pl";
- case 0x06cf: return "log2";
- case 0x06d0: return "log2f";
- case 0x06d1: return "log2l";
- case 0x06d2: return "logb";
- case 0x06d3: return "logbf";
- case 0x06d4: return "logbl";
- case 0x06d5: return "longjmp";
- case 0x06d6: return "lrint";
- case 0x06d7: return "lrintf";
- case 0x06d8: return "lrintl";
- case 0x06d9: return "lround";
- case 0x06da: return "lroundf";
- case 0x06db: return "lroundl";
- case 0x06dc: return "malloc";
- case 0x06dd: return "mblen";
- case 0x06de: return "mbrlen";
- case 0x06df: return "mbrtowc";
- case 0x06e0: return "mbsrtowcs";
- case 0x06e1: return "mbsrtowcs_s";
- case 0x06e2: return "mbstowcs";
- case 0x06e3: return "mbstowcs_s";
- case 0x06e4: return "mbtowc";
- case 0x06e5: return "memchr";
- case 0x06e6: return "memcmp";
- case 0x06e7: return "memcpy";
- case 0x06e8: return "memcpy_s";
- case 0x06e9: return "memmove";
- case 0x06ea: return "memmove_s";
- case 0x06eb: return "memset";
- case 0x06ec: return "modf";
- case 0x06ed: return "nan";
- case 0x06ee: return "nanf";
- case 0x06ef: return "nanl";
- case 0x06f0: return "nearbyint";
- case 0x06f1: return "nearbyintf";
- case 0x06f2: return "nearbyintl";
- case 0x06f3: return "nextafter";
- case 0x06f4: return "nextafterf";
- case 0x06f5: return "nextafterl";
- case 0x06f6: return "nexttoward";
- case 0x06f7: return "nexttowardf";
- case 0x06f8: return "nexttowardl";
- case 0x06f9: return "norm";
- case 0x06fa: return "normf";
- case 0x06fb: return "norml";
- case 0x06fc: return "perror";
- case 0x06fd: return "pow";
- case 0x06fe: return "printf";
- case 0x06ff: return "printf_s";
- case 0x0700: return "putc";
- case 0x0701: return "putchar";
- case 0x0702: return "puts";
- case 0x0703: return "putwc";
- case 0x0704: return "putwchar";
- case 0x0705: return "qsort";
- case 0x0706: return "qsort_s";
- case 0x0707: return "raise";
- case 0x0708: return "rand";
- case 0x0709: return "rand_s";
- case 0x070a: return "realloc";
- case 0x070b: return "remainder";
- case 0x070c: return "remainderf";
- case 0x070d: return "remainderl";
- case 0x070e: return "remove";
- case 0x070f: return "remquo";
- case 0x0710: return "remquof";
- case 0x0711: return "remquol";
- case 0x0712: return "rename";
- case 0x0713: return "rewind";
- case 0x0714: return "rint";
- case 0x0715: return "rintf";
- case 0x0716: return "rintl";
- case 0x0717: return "round";
- case 0x0718: return "roundf";
- case 0x0719: return "roundl";
- case 0x071a: return "scalbln";
- case 0x071b: return "scalblnf";
- case 0x071c: return "scalblnl";
- case 0x071d: return "scalbn";
- case 0x071e: return "scalbnf";
- case 0x071f: return "scalbnl";
- case 0x0720: return "scanf";
- case 0x0721: return "scanf_s";
- case 0x0722: return "setbuf";
- case 0x0723: return "setlocale";
- case 0x0724: return "setvbuf";
- case 0x0725: return "signal";
- case 0x0726: return "sin";
- case 0x0727: return "sinh";
- case 0x0728: return "sprintf";
- case 0x0729: return "sprintf_s";
- case 0x072a: return "sqrt";
- case 0x072b: return "srand";
- case 0x072c: return "sscanf";
- case 0x072d: return "sscanf_s";
- case 0x072e: return "strcat";
- case 0x072f: return "strcat_s";
- case 0x0730: return "strchr";
- case 0x0731: return "strcmp";
- case 0x0732: return "strcoll";
- case 0x0733: return "strcpy";
- case 0x0734: return "strcpy_s";
- case 0x0735: return "strcspn";
- case 0x0736: return "strerror";
- case 0x0737: return "strerror_s";
- case 0x0738: return "strftime";
- case 0x0739: return "strlen";
- case 0x073a: return "strncat";
- case 0x073b: return "strncat_s";
- case 0x073c: return "strncmp";
- case 0x073d: return "strncpy";
- case 0x073e: return "strncpy_s";
- case 0x073f: return "strnlen";
- case 0x0740: return "strpbrk";
- case 0x0741: return "strrchr";
- case 0x0742: return "strspn";
- case 0x0743: return "strstr";
- case 0x0744: return "strtod";
- case 0x0745: return "strtof";
- case 0x0746: return "strtoimax";
- case 0x0747: return "strtok";
- case 0x0748: return "strtok_s";
- case 0x0749: return "strtol";
- case 0x074a: return "strtold";
- case 0x074b: return "strtoll";
- case 0x074c: return "strtoul";
- case 0x074d: return "strtoull";
- case 0x074e: return "strtoumax";
- case 0x074f: return "strxfrm";
- case 0x0750: return "swprintf_s";
- case 0x0751: return "swscanf";
- case 0x0752: return "swscanf_s";
- case 0x0753: return "system";
- case 0x0754: return "tan";
- case 0x0755: return "tanh";
- case 0x0756: return "tgamma";
- case 0x0757: return "tgammaf";
- case 0x0758: return "tgammal";
- case 0x0759: return "tmpfile";
- case 0x075a: return "tmpfile_s";
- case 0x075b: return "tmpnam";
- case 0x075c: return "tmpnam_s";
- case 0x075d: return "tolower";
- case 0x075e: return "toupper";
- case 0x075f: return "towctrans";
- case 0x0760: return "towlower";
- case 0x0761: return "towupper";
- case 0x0762: return "trunc";
- case 0x0763: return "truncf";
- case 0x0764: return "truncl";
- case 0x0765: return "ungetc";
- case 0x0766: return "ungetwc";
- case 0x0767: return "vfprintf";
- case 0x0768: return "vfprintf_s";
- case 0x0769: return "vfscanf";
- case 0x076a: return "vfscanf_s";
- case 0x076b: return "vfwprintf";
- case 0x076c: return "vfwprintf_s";
- case 0x076d: return "vfwscanf";
- case 0x076e: return "vfwscanf_s";
- case 0x076f: return "vprintf";
- case 0x0770: return "vprintf_s";
- case 0x0771: return "vscanf";
- case 0x0772: return "vscanf_s";
- case 0x0773: return "vsprintf";
- case 0x0774: return "vsprintf_s";
- case 0x0775: return "vsscanf";
- case 0x0776: return "vsscanf_s";
- case 0x0777: return "vswprintf_s";
- case 0x0778: return "vswscanf";
- case 0x0779: return "vswscanf_s";
- case 0x077a: return "vwprintf";
- case 0x077b: return "vwprintf_s";
- case 0x077c: return "vwscanf";
- case 0x077d: return "vwscanf_s";
- case 0x077e: return "wcrtomb";
- case 0x077f: return "wcrtomb_s";
- case 0x0780: return "wcscat";
- case 0x0781: return "wcscat_s";
- case 0x0782: return "wcschr";
- case 0x0783: return "wcscmp";
- case 0x0784: return "wcscoll";
- case 0x0785: return "wcscpy";
- case 0x0786: return "wcscpy_s";
- case 0x0787: return "wcscspn";
- case 0x0788: return "wcsftime";
- case 0x0789: return "wcslen";
- case 0x078a: return "wcsncat";
- case 0x078b: return "wcsncat_s";
- case 0x078c: return "wcsncmp";
- case 0x078d: return "wcsncpy";
- case 0x078e: return "wcsncpy_s";
- case 0x078f: return "wcsnlen";
- case 0x0790: return "wcspbrk";
- case 0x0791: return "wcsrchr";
- case 0x0792: return "wcsrtombs";
- case 0x0793: return "wcsrtombs_s";
- case 0x0794: return "wcsspn";
- case 0x0795: return "wcsstr";
- case 0x0796: return "wcstod";
- case 0x0797: return "wcstof";
- case 0x0798: return "wcstoimax";
- case 0x0799: return "wcstok";
- case 0x079a: return "wcstok_s";
- case 0x079b: return "wcstol";
- case 0x079c: return "wcstold";
- case 0x079d: return "wcstoll";
- case 0x079e: return "wcstombs";
- case 0x079f: return "wcstombs_s";
- case 0x07a0: return "wcstoul";
- case 0x07a1: return "wcstoull";
- case 0x07a2: return "wcstoumax";
- case 0x07a3: return "wcsxfrm";
- case 0x07a4: return "wctob";
- case 0x07a5: return "wctomb";
- case 0x07a6: return "wctomb_s";
- case 0x07a7: return "wctrans";
- case 0x07a8: return "wctype";
- case 0x07a9: return "wmemcpy_s";
- case 0x07aa: return "wmemmove_s";
- case 0x07ab: return "wprintf";
- case 0x07ac: return "wprintf_s";
- case 0x07ad: return "wscanf";
- case 0x07ae: return "wscanf_s";
+ switch (i) {
+ case 0x0145: return "$I10_OUTPUT";
+ case 0x0001: return "??0?$_SpinWait@$00@details@Concurrency@@QAE@P6AXXZ@Z";
+ case 0x0002: return "??0?$_SpinWait@$0A@@details@Concurrency@@QAE@P6AXXZ@Z";
+ case 0x0003: return "??0SchedulerPolicy@Concurrency@@QAA@IZZ";
+ case 0x0004: return "??0SchedulerPolicy@Concurrency@@QAE@ABV01@@Z";
+ case 0x0005: return "??0SchedulerPolicy@Concurrency@@QAE@XZ";
+ case 0x0006: return "??0_Cancellation_beacon@details@Concurrency@@QAE@XZ";
+ case 0x0007: return "??0_Condition_variable@details@Concurrency@@QAE@XZ";
+ case 0x0008: return "??0_Context@details@Concurrency@@QAE@PAVContext@2@@Z";
+ case 0x0009:
+ return "??0_Interruption_exception@details@Concurrency@@QAE@PBD@Z";
+ case 0x000a: return "??0_Interruption_exception@details@Concurrency@@QAE@XZ";
+ case 0x000b: return "??0_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ";
+ case 0x000c: return "??0_NonReentrantPPLLock@details@Concurrency@@QAE@XZ";
+ case 0x000d: return "??0_ReaderWriterLock@details@Concurrency@@QAE@XZ";
+ case 0x000e: return "??0_ReentrantBlockingLock@details@Concurrency@@QAE@XZ";
+ case 0x000f: return "??0_ReentrantLock@details@Concurrency@@QAE@XZ";
+ case 0x0010: return "??0_ReentrantPPLLock@details@Concurrency@@QAE@XZ";
+ case 0x0011: return "??0_Scheduler@details@Concurrency@@QAE@PAVScheduler@2@@Z";
+ case 0x0012:
+ return "??0_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@"
+ "AAV123@@Z";
+ case 0x0013:
+ return "??0_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@AAV123@@"
+ "Z";
+ case 0x0014: return "??0_SpinLock@details@Concurrency@@QAE@ACJ@Z";
+ case 0x0015:
+ return "??0_StructuredTaskCollection@details@Concurrency@@QAE@PAV_"
+ "CancellationTokenState@12@@Z";
+ case 0x0016:
+ return "??0_TaskCollection@details@Concurrency@@QAE@PAV_"
+ "CancellationTokenState@12@@Z";
+ case 0x0017: return "??0_TaskCollection@details@Concurrency@@QAE@XZ";
+ case 0x0018: return "??0_Timer@details@Concurrency@@IAE@I_N@Z";
+ case 0x0019: return "??0__non_rtti_object@std@@QAE@ABV01@@Z";
+ case 0x001a: return "??0__non_rtti_object@std@@QAE@PBD@Z";
+ case 0x001b: return "??0bad_cast@std@@AAE@PBQBD@Z";
+ case 0x001c: return "??0bad_cast@std@@QAE@ABV01@@Z";
+ case 0x001d: return "??0bad_cast@std@@QAE@PBD@Z";
+ case 0x001e: return "??0bad_target@Concurrency@@QAE@PBD@Z";
+ case 0x001f: return "??0bad_target@Concurrency@@QAE@XZ";
+ case 0x0020: return "??0bad_typeid@std@@QAE@ABV01@@Z";
+ case 0x0021: return "??0bad_typeid@std@@QAE@PBD@Z";
+ case 0x0022: return "??0context_self_unblock@Concurrency@@QAE@PBD@Z";
+ case 0x0023: return "??0context_self_unblock@Concurrency@@QAE@XZ";
+ case 0x0024: return "??0context_unblock_unbalanced@Concurrency@@QAE@PBD@Z";
+ case 0x0025: return "??0context_unblock_unbalanced@Concurrency@@QAE@XZ";
+ case 0x0026: return "??0critical_section@Concurrency@@QAE@XZ";
+ case 0x0027: return "??0default_scheduler_exists@Concurrency@@QAE@PBD@Z";
+ case 0x0028: return "??0default_scheduler_exists@Concurrency@@QAE@XZ";
+ case 0x0029: return "??0event@Concurrency@@QAE@XZ";
+ case 0x002a: return "??0exception@std@@QAE@ABQBD@Z";
+ case 0x002b: return "??0exception@std@@QAE@ABQBDH@Z";
+ case 0x002c: return "??0exception@std@@QAE@ABV01@@Z";
+ case 0x002d: return "??0exception@std@@QAE@XZ";
+ case 0x002e: return "??0improper_lock@Concurrency@@QAE@PBD@Z";
+ case 0x002f: return "??0improper_lock@Concurrency@@QAE@XZ";
+ case 0x0030: return "??0improper_scheduler_attach@Concurrency@@QAE@PBD@Z";
+ case 0x0031: return "??0improper_scheduler_attach@Concurrency@@QAE@XZ";
+ case 0x0032: return "??0improper_scheduler_detach@Concurrency@@QAE@PBD@Z";
+ case 0x0033: return "??0improper_scheduler_detach@Concurrency@@QAE@XZ";
+ case 0x0034: return "??0improper_scheduler_reference@Concurrency@@QAE@PBD@Z";
+ case 0x0035: return "??0improper_scheduler_reference@Concurrency@@QAE@XZ";
+ case 0x0036: return "??0invalid_link_target@Concurrency@@QAE@PBD@Z";
+ case 0x0037: return "??0invalid_link_target@Concurrency@@QAE@XZ";
+ case 0x0038: return "??0invalid_multiple_scheduling@Concurrency@@QAE@PBD@Z";
+ case 0x0039: return "??0invalid_multiple_scheduling@Concurrency@@QAE@XZ";
+ case 0x003a: return "??0invalid_operation@Concurrency@@QAE@PBD@Z";
+ case 0x003b: return "??0invalid_operation@Concurrency@@QAE@XZ";
+ case 0x003c:
+ return "??0invalid_oversubscribe_operation@Concurrency@@QAE@PBD@Z";
+ case 0x003d: return "??0invalid_oversubscribe_operation@Concurrency@@QAE@XZ";
+ case 0x003e: return "??0invalid_scheduler_policy_key@Concurrency@@QAE@PBD@Z";
+ case 0x003f: return "??0invalid_scheduler_policy_key@Concurrency@@QAE@XZ";
+ case 0x0040:
+ return "??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@"
+ "PBD@Z";
+ case 0x0041:
+ return "??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@"
+ "XZ";
+ case 0x0042: return "??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z";
+ case 0x0043: return "??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ";
+ case 0x0044: return "??0message_not_found@Concurrency@@QAE@PBD@Z";
+ case 0x0045: return "??0message_not_found@Concurrency@@QAE@XZ";
+ case 0x0046: return "??0missing_wait@Concurrency@@QAE@PBD@Z";
+ case 0x0047: return "??0missing_wait@Concurrency@@QAE@XZ";
+ case 0x0048:
+ return "??0nested_scheduler_missing_detach@Concurrency@@QAE@PBD@Z";
+ case 0x0049: return "??0nested_scheduler_missing_detach@Concurrency@@QAE@XZ";
+ case 0x004a: return "??0operation_timed_out@Concurrency@@QAE@PBD@Z";
+ case 0x004b: return "??0operation_timed_out@Concurrency@@QAE@XZ";
+ case 0x004c: return "??0reader_writer_lock@Concurrency@@QAE@XZ";
+ case 0x004d: return "??0scheduler_not_attached@Concurrency@@QAE@PBD@Z";
+ case 0x004e: return "??0scheduler_not_attached@Concurrency@@QAE@XZ";
+ case 0x004f:
+ return "??0scheduler_resource_allocation_error@Concurrency@@QAE@J@Z";
+ case 0x0050:
+ return "??0scheduler_resource_allocation_error@Concurrency@@QAE@PBDJ@Z";
+ case 0x0051: return "??0scheduler_worker_creation_error@Concurrency@@QAE@J@Z";
+ case 0x0052:
+ return "??0scheduler_worker_creation_error@Concurrency@@QAE@PBDJ@Z";
+ case 0x0053:
+ return "??0scoped_lock@critical_section@Concurrency@@QAE@AAV12@@Z";
+ case 0x0054:
+ return "??0scoped_lock@reader_writer_lock@Concurrency@@QAE@AAV12@@Z";
+ case 0x0055:
+ return "??0scoped_lock_read@reader_writer_lock@Concurrency@@QAE@AAV12@@Z";
+ case 0x0056: return "??0task_canceled@Concurrency@@QAE@PBD@Z";
+ case 0x0057: return "??0task_canceled@Concurrency@@QAE@XZ";
+ case 0x0058: return "??0unsupported_os@Concurrency@@QAE@PBD@Z";
+ case 0x0059: return "??0unsupported_os@Concurrency@@QAE@XZ";
+ case 0x005a: return "??1SchedulerPolicy@Concurrency@@QAE@XZ";
+ case 0x005b: return "??1_Cancellation_beacon@details@Concurrency@@QAE@XZ";
+ case 0x005c: return "??1_Condition_variable@details@Concurrency@@QAE@XZ";
+ case 0x005d: return "??1_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ";
+ case 0x005e: return "??1_ReentrantBlockingLock@details@Concurrency@@QAE@XZ";
+ case 0x005f:
+ return "??1_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@XZ";
+ case 0x0060:
+ return "??1_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@XZ";
+ case 0x0061: return "??1_SpinLock@details@Concurrency@@QAE@XZ";
+ case 0x0062: return "??1_StructuredTaskCollection@details@Concurrency@@QAE@XZ";
+ case 0x0063: return "??1_TaskCollection@details@Concurrency@@QAE@XZ";
+ case 0x0064: return "??1_Timer@details@Concurrency@@MAE@XZ";
+ case 0x0065: return "??1__non_rtti_object@std@@UAE@XZ";
+ case 0x0066: return "??1bad_cast@std@@UAE@XZ";
+ case 0x0067: return "??1bad_typeid@std@@UAE@XZ";
+ case 0x0068: return "??1critical_section@Concurrency@@QAE@XZ";
+ case 0x0069: return "??1event@Concurrency@@QAE@XZ";
+ case 0x006a: return "??1exception@std@@UAE@XZ";
+ case 0x006b: return "??1reader_writer_lock@Concurrency@@QAE@XZ";
+ case 0x006c: return "??1scoped_lock@critical_section@Concurrency@@QAE@XZ";
+ case 0x006d: return "??1scoped_lock@reader_writer_lock@Concurrency@@QAE@XZ";
+ case 0x006e:
+ return "??1scoped_lock_read@reader_writer_lock@Concurrency@@QAE@XZ";
+ case 0x006f: return "??1type_info@@UAE@XZ";
+ case 0x0070: return "??2@YAPAXI@Z";
+ case 0x0071: return "??2@YAPAXIHPBDH@Z";
+ case 0x0072: return "??3@YAXPAX@Z";
+ case 0x0073: return "??3@YAXPAXHPBDH@Z";
+ case 0x0074:
+ return "??4?$_SpinWait@$00@details@Concurrency@@QAEAAV012@ABV012@@Z";
+ case 0x0075:
+ return "??4?$_SpinWait@$0A@@details@Concurrency@@QAEAAV012@ABV012@@Z";
+ case 0x0076: return "??4SchedulerPolicy@Concurrency@@QAEAAV01@ABV01@@Z";
+ case 0x0077: return "??4__non_rtti_object@std@@QAEAAV01@ABV01@@Z";
+ case 0x0078: return "??4bad_cast@std@@QAEAAV01@ABV01@@Z";
+ case 0x0079: return "??4bad_typeid@std@@QAEAAV01@ABV01@@Z";
+ case 0x007a: return "??4exception@std@@QAEAAV01@ABV01@@Z";
+ case 0x007b: return "??8type_info@@QBE_NABV0@@Z";
+ case 0x007c: return "??9type_info@@QBE_NABV0@@Z";
+ case 0x007d: return "??_7__non_rtti_object@std@@6B@";
+ case 0x007e: return "??_7bad_cast@std@@6B@";
+ case 0x007f: return "??_7bad_typeid@std@@6B@";
+ case 0x0080: return "??_7exception@std@@6B@";
+ case 0x0081: return "??_F?$_SpinWait@$00@details@Concurrency@@QAEXXZ";
+ case 0x0082: return "??_F?$_SpinWait@$0A@@details@Concurrency@@QAEXXZ";
+ case 0x0083: return "??_F_Context@details@Concurrency@@QAEXXZ";
+ case 0x0084: return "??_F_Scheduler@details@Concurrency@@QAEXXZ";
+ case 0x0085: return "??_Fbad_cast@std@@QAEXXZ";
+ case 0x0086: return "??_Fbad_typeid@std@@QAEXXZ";
+ case 0x0087: return "??_U@YAPAXI@Z";
+ case 0x0088: return "??_U@YAPAXIHPBDH@Z";
+ case 0x0089: return "??_V@YAXPAX@Z";
+ case 0x008a: return "??_V@YAXPAXHPBDH@Z";
+ case 0x008b: return "?Alloc@Concurrency@@YAPAXI@Z";
+ case 0x008c: return "?Block@Context@Concurrency@@SAXXZ";
+ case 0x008d:
+ return "?CaptureCallstack@platform@details@Concurrency@@YAIPAPAXII@Z";
+ case 0x008e:
+ return "?Create@CurrentScheduler@Concurrency@@SAXABVSchedulerPolicy@2@@Z";
+ case 0x008f:
+ return "?Create@Scheduler@Concurrency@@SAPAV12@ABVSchedulerPolicy@2@@Z";
+ case 0x0090:
+ return "?CreateResourceManager@Concurrency@@YAPAUIResourceManager@1@XZ";
+ case 0x0091:
+ return "?CreateScheduleGroup@CurrentScheduler@Concurrency@@"
+ "SAPAVScheduleGroup@2@AAVlocation@2@@Z";
+ case 0x0092:
+ return "?CreateScheduleGroup@CurrentScheduler@Concurrency@@"
+ "SAPAVScheduleGroup@2@XZ";
+ case 0x0093: return "?CurrentContext@Context@Concurrency@@SAPAV12@XZ";
+ case 0x0094: return "?Detach@CurrentScheduler@Concurrency@@SAXXZ";
+ case 0x0095: return "?DisableTracing@Concurrency@@YAJXZ";
+ case 0x0096: return "?EnableTracing@Concurrency@@YAJXZ";
+ case 0x0097: return "?Free@Concurrency@@YAXPAX@Z";
+ case 0x0098: return "?Get@CurrentScheduler@Concurrency@@SAPAVScheduler@2@XZ";
+ case 0x0099: return "?GetCurrentThreadId@platform@details@Concurrency@@YAJXZ";
+ case 0x009a: return "?GetExecutionContextId@Concurrency@@YAIXZ";
+ case 0x009b:
+ return "?GetNumberOfVirtualProcessors@CurrentScheduler@Concurrency@@SAIXZ";
+ case 0x009c:
+ return "?GetOSVersion@Concurrency@@YA?AW4OSVersion@IResourceManager@1@XZ";
+ case 0x009d:
+ return "?GetPolicy@CurrentScheduler@Concurrency@@SA?AVSchedulerPolicy@2@XZ";
+ case 0x009e:
+ return "?GetPolicyValue@SchedulerPolicy@Concurrency@@QBEIW4PolicyElementKey@"
+ "2@@Z";
+ case 0x009f: return "?GetProcessorCount@Concurrency@@YAIXZ";
+ case 0x00a0: return "?GetProcessorNodeCount@Concurrency@@YAIXZ";
+ case 0x00a1: return "?GetSchedulerId@Concurrency@@YAIXZ";
+ case 0x00a2: return "?GetSharedTimerQueue@details@Concurrency@@YAPAXXZ";
+ case 0x00a3: return "?Id@Context@Concurrency@@SAIXZ";
+ case 0x00a4: return "?Id@CurrentScheduler@Concurrency@@SAIXZ";
+ case 0x00a5:
+ return "?IsAvailableLocation@CurrentScheduler@Concurrency@@SA_NABVlocation@"
+ "2@@Z";
+ case 0x00a6:
+ return "?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ";
+ case 0x00a7: return "?Log2@details@Concurrency@@YAKI@Z";
+ case 0x00a8: return "?Oversubscribe@Context@Concurrency@@SAX_N@Z";
+ case 0x00a9:
+ return "?RegisterShutdownEvent@CurrentScheduler@Concurrency@@SAXPAX@Z";
+ case 0x00aa:
+ return "?ResetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXXZ";
+ case 0x00ab: return "?ScheduleGroupId@Context@Concurrency@@SAIXZ";
+ case 0x00ac:
+ return "?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0@Z";
+ case 0x00ad:
+ return "?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@"
+ "Z0AAVlocation@2@@Z";
+ case 0x00ae:
+ return "?SetConcurrencyLimits@SchedulerPolicy@Concurrency@@QAEXII@Z";
+ case 0x00af:
+ return "?SetDefaultSchedulerPolicy@Scheduler@Concurrency@@"
+ "SAXABVSchedulerPolicy@2@@Z";
+ case 0x00b0:
+ return "?SetPolicyValue@SchedulerPolicy@Concurrency@@QAEIW4PolicyElementKey@"
+ "2@I@Z";
+ case 0x00b1: return "?VirtualProcessorId@Context@Concurrency@@SAIXZ";
+ case 0x00b2: return "?Yield@Context@Concurrency@@SAXXZ";
+ case 0x00b3:
+ return "?_Abort@_StructuredTaskCollection@details@Concurrency@@AAEXXZ";
+ case 0x00b4:
+ return "?_Acquire@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ";
+ case 0x00b5:
+ return "?_Acquire@_NonReentrantPPLLock@details@Concurrency@@QAEXPAX@Z";
+ case 0x00b6:
+ return "?_Acquire@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ";
+ case 0x00b7: return "?_Acquire@_ReentrantLock@details@Concurrency@@QAEXXZ";
+ case 0x00b8:
+ return "?_Acquire@_ReentrantPPLLock@details@Concurrency@@QAEXPAX@Z";
+ case 0x00b9:
+ return "?_AcquireRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
+ case 0x00ba:
+ return "?_AcquireWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
+ case 0x00bb:
+ return "?_Cancel@_StructuredTaskCollection@details@Concurrency@@QAEXXZ";
+ case 0x00bc: return "?_Cancel@_TaskCollection@details@Concurrency@@QAEXXZ";
+ case 0x00bd:
+ return "?_CheckTaskCollection@_UnrealizedChore@details@Concurrency@@IAEXXZ";
+ case 0x00be:
+ return "?_CleanupToken@_StructuredTaskCollection@details@Concurrency@@"
+ "AAEXXZ";
+ case 0x00bf: return "?_ConcRT_CoreAssert@details@Concurrency@@YAXPBD0H@Z";
+ case 0x00c0: return "?_ConcRT_Trace@details@Concurrency@@YAXHPB_WZZ";
+ case 0x00c1:
+ return "?_Confirm_cancel@_Cancellation_beacon@details@Concurrency@@QAE_NXZ";
+ case 0x00c2: return "?_Copy_str@exception@std@@AAEXPBD@Z";
+ case 0x00c3:
+ return "?_CurrentContext@_Context@details@Concurrency@@SA?AV123@XZ";
+ case 0x00c4: return "?_Current_node@location@Concurrency@@SA?AV12@XZ";
+ case 0x00c5:
+ return "?_Destroy@_AsyncTaskCollection@details@Concurrency@@EAEXXZ";
+ case 0x00c6: return "?_DoYield@?$_SpinWait@$00@details@Concurrency@@IAEXXZ";
+ case 0x00c7: return "?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ";
+ case 0x00c8:
+ return "?_Get@_CurrentScheduler@details@Concurrency@@SA?AV_Scheduler@23@XZ";
+ case 0x00c9:
+ return "?_GetConcRTTraceInfo@Concurrency@@YAPBU_CONCRT_TRACE_INFO@details@1@"
+ "XZ";
+ case 0x00ca: return "?_GetConcurrency@details@Concurrency@@YAIXZ";
+ case 0x00cb:
+ return "?_GetCurrentInlineDepth@_StackGuard@details@Concurrency@@CAAAIXZ";
+ case 0x00cc:
+ return "?_GetNumberOfVirtualProcessors@_CurrentScheduler@details@"
+ "Concurrency@@SAIXZ";
+ case 0x00cd:
+ return "?_GetScheduler@_Scheduler@details@Concurrency@@QAEPAVScheduler@3@XZ";
+ case 0x00ce: return "?_Id@_CurrentScheduler@details@Concurrency@@SAIXZ";
+ case 0x00cf:
+ return "?_IsCanceling@_StructuredTaskCollection@details@Concurrency@@QAE_"
+ "NXZ";
+ case 0x00d0:
+ return "?_IsCanceling@_TaskCollection@details@Concurrency@@QAE_NXZ";
+ case 0x00d1:
+ return "?_IsSynchronouslyBlocked@_Context@details@Concurrency@@QBE_NXZ";
+ case 0x00d2: return "?_Name_base@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z";
+ case 0x00d3:
+ return "?_Name_base_internal@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z";
+ case 0x00d4:
+ return "?_NewCollection@_AsyncTaskCollection@details@Concurrency@@SAPAV123@"
+ "PAV_CancellationTokenState@23@@Z";
+ case 0x00d5:
+ return "?_NumberOfSpins@?$_SpinWait@$00@details@Concurrency@@IAEKXZ";
+ case 0x00d6:
+ return "?_NumberOfSpins@?$_SpinWait@$0A@@details@Concurrency@@IAEKXZ";
+ case 0x00d7: return "?_Oversubscribe@_Context@details@Concurrency@@SAX_N@Z";
+ case 0x00d8: return "?_Reference@_Scheduler@details@Concurrency@@QAEIXZ";
+ case 0x00d9:
+ return "?_Release@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ";
+ case 0x00da:
+ return "?_Release@_NonReentrantPPLLock@details@Concurrency@@QAEXXZ";
+ case 0x00db:
+ return "?_Release@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ";
+ case 0x00dc: return "?_Release@_ReentrantLock@details@Concurrency@@QAEXXZ";
+ case 0x00dd: return "?_Release@_ReentrantPPLLock@details@Concurrency@@QAEXXZ";
+ case 0x00de: return "?_Release@_Scheduler@details@Concurrency@@QAEIXZ";
+ case 0x00df:
+ return "?_ReleaseRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
+ case 0x00e0:
+ return "?_ReleaseWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ";
+ case 0x00e1: return "?_ReportUnobservedException@details@Concurrency@@YAXXZ";
+ case 0x00e2: return "?_Reset@?$_SpinWait@$00@details@Concurrency@@IAEXXZ";
+ case 0x00e3: return "?_Reset@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ";
+ case 0x00e4:
+ return "?_RunAndWait@_StructuredTaskCollection@details@Concurrency@@QAG?AW4_"
+ "TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z";
+ case 0x00e5:
+ return "?_RunAndWait@_TaskCollection@details@Concurrency@@QAG?AW4_"
+ "TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z";
+ case 0x00e6:
+ return "?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_"
+ "UnrealizedChore@23@@Z";
+ case 0x00e7:
+ return "?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_"
+ "UnrealizedChore@23@PAVlocation@3@@Z";
+ case 0x00e8:
+ return "?_Schedule@_TaskCollection@details@Concurrency@@QAEXPAV_"
+ "UnrealizedChore@23@@Z";
+ case 0x00e9:
+ return "?_Schedule@_TaskCollection@details@Concurrency@@QAEXPAV_"
+ "UnrealizedChore@23@PAVlocation@3@@Z";
+ case 0x00ea:
+ return "?_ScheduleTask@_CurrentScheduler@details@Concurrency@@SAXP6AXPAX@Z0@"
+ "Z";
+ case 0x00eb:
+ return "?_SetSpinCount@?$_SpinWait@$00@details@Concurrency@@QAEXI@Z";
+ case 0x00ec:
+ return "?_SetSpinCount@?$_SpinWait@$0A@@details@Concurrency@@QAEXI@Z";
+ case 0x00ed:
+ return "?_SetUnobservedExceptionHandler@details@Concurrency@@YAXP6AXXZ@Z";
+ case 0x00ee:
+ return "?_ShouldSpinAgain@?$_SpinWait@$00@details@Concurrency@@IAE_NXZ";
+ case 0x00ef:
+ return "?_ShouldSpinAgain@?$_SpinWait@$0A@@details@Concurrency@@IAE_NXZ";
+ case 0x00f0: return "?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QAE_NXZ";
+ case 0x00f1: return "?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAE_NXZ";
+ case 0x00f2: return "?_SpinYield@Context@Concurrency@@SAXXZ";
+ case 0x00f3: return "?_Start@_Timer@details@Concurrency@@IAEXXZ";
+ case 0x00f4: return "?_Stop@_Timer@details@Concurrency@@IAEXXZ";
+ case 0x00f5: return "?_Tidy@exception@std@@AAEXXZ";
+ case 0x00f6: return "?_Trace_agents@Concurrency@@YAXW4Agents_EventType@1@_JZZ";
+ case 0x00f7:
+ return "?_Trace_ppl_function@Concurrency@@YAXABU_GUID@@EW4ConcRT_EventType@"
+ "1@@Z";
+ case 0x00f8:
+ return "?_TryAcquire@_NonReentrantBlockingLock@details@Concurrency@@QAE_NXZ";
+ case 0x00f9:
+ return "?_TryAcquire@_ReentrantBlockingLock@details@Concurrency@@QAE_NXZ";
+ case 0x00fa: return "?_TryAcquire@_ReentrantLock@details@Concurrency@@QAE_NXZ";
+ case 0x00fb:
+ return "?_TryAcquireWrite@_ReaderWriterLock@details@Concurrency@@QAE_NXZ";
+ case 0x00fc: return "?_Type_info_dtor@type_info@@CAXPAV1@@Z";
+ case 0x00fd: return "?_Type_info_dtor_internal@type_info@@CAXPAV1@@Z";
+ case 0x00fe: return "?_UnderlyingYield@details@Concurrency@@YAXXZ";
+ case 0x00ff: return "?_ValidateExecute@@YAHP6GHXZ@Z";
+ case 0x0100: return "?_ValidateRead@@YAHPBXI@Z";
+ case 0x0101: return "?_ValidateWrite@@YAHPAXI@Z";
+ case 0x0102: return "?_Value@_SpinCount@details@Concurrency@@SAIXZ";
+ case 0x0103: return "?_Yield@_Context@details@Concurrency@@SAXXZ";
+ case 0x0104: return "?__ExceptionPtrAssign@@YAXPAXPBX@Z";
+ case 0x0105: return "?__ExceptionPtrCompare@@YA_NPBX0@Z";
+ case 0x0106: return "?__ExceptionPtrCopy@@YAXPAXPBX@Z";
+ case 0x0107: return "?__ExceptionPtrCopyException@@YAXPAXPBX1@Z";
+ case 0x0108: return "?__ExceptionPtrCreate@@YAXPAX@Z";
+ case 0x0109: return "?__ExceptionPtrCurrentException@@YAXPAX@Z";
+ case 0x010a: return "?__ExceptionPtrDestroy@@YAXPAX@Z";
+ case 0x010b: return "?__ExceptionPtrRethrow@@YAXPBX@Z";
+ case 0x010c: return "?__ExceptionPtrSwap@@YAXPAX0@Z";
+ case 0x010d: return "?__ExceptionPtrToBool@@YA_NPBX@Z";
+ case 0x010f: return "?_inconsistency@@YAXXZ";
+ case 0x0110: return "?_invalid_parameter@@YAXPBG00II@Z";
+ case 0x0111:
+ return "?_is_exception_typeof@@YAHABVtype_info@@PAU_EXCEPTION_POINTERS@@@Z";
+ case 0x0112:
+ return "?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z";
+ case 0x0113: return "?_open@@YAHPBDHH@Z";
+ case 0x0114: return "?_query_new_handler@@YAP6AHI@ZXZ";
+ case 0x0115: return "?_query_new_mode@@YAHXZ";
+ case 0x0116: return "?_set_new_handler@@YAP6AHI@ZH@Z";
+ case 0x0117: return "?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z";
+ case 0x0118: return "?_set_new_mode@@YAHH@Z";
+ case 0x0119:
+ return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZH@Z";
+ case 0x011a:
+ return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z";
+ case 0x011b: return "?_sopen@@YAHPBDHHH@Z";
+ case 0x011c: return "?_type_info_dtor_internal_method@type_info@@QAEXXZ";
+ case 0x011d: return "?_wopen@@YAHPB_WHH@Z";
+ case 0x011e: return "?_wsopen@@YAHPB_WHHH@Z";
+ case 0x011f: return "?before@type_info@@QBE_NABV1@@Z";
+ case 0x0120: return "?current@location@Concurrency@@SA?AV12@XZ";
+ case 0x0121: return "?from_numa_node@location@Concurrency@@SA?AV12@G@Z";
+ case 0x0122:
+ return "?get_error_code@scheduler_resource_allocation_error@Concurrency@@"
+ "QBEJXZ";
+ case 0x0123: return "?lock@critical_section@Concurrency@@QAEXXZ";
+ case 0x0124: return "?lock@reader_writer_lock@Concurrency@@QAEXXZ";
+ case 0x0125: return "?lock_read@reader_writer_lock@Concurrency@@QAEXXZ";
+ case 0x0126: return "?name@type_info@@QBEPBDPAU__type_info_node@@@Z";
+ case 0x0127: return "?native_handle@critical_section@Concurrency@@QAEAAV12@XZ";
+ case 0x0128:
+ return "?notify_all@_Condition_variable@details@Concurrency@@QAEXXZ";
+ case 0x0129:
+ return "?notify_one@_Condition_variable@details@Concurrency@@QAEXXZ";
+ case 0x012a: return "?raw_name@type_info@@QBEPBDXZ";
+ case 0x012b: return "?reset@event@Concurrency@@QAEXXZ";
+ case 0x012c: return "?set@event@Concurrency@@QAEXXZ";
+ case 0x012d: return "?set_new_handler@@YAP6AXXZP6AXXZ@Z";
+ case 0x012e:
+ return "?set_task_execution_resources@Concurrency@@YAXGPAU_GROUP_AFFINITY@@@"
+ "Z";
+ case 0x012f: return "?set_task_execution_resources@Concurrency@@YAXK@Z";
+ case 0x0130: return "?set_terminate@@YAP6AXXZH@Z";
+ case 0x0131: return "?set_terminate@@YAP6AXXZP6AXXZ@Z";
+ case 0x0132: return "?set_unexpected@@YAP6AXXZH@Z";
+ case 0x0133: return "?set_unexpected@@YAP6AXXZP6AXXZ@Z";
+ case 0x0134: return "?swprintf@@YAHPAGIPBGZZ";
+ case 0x0135: return "?swprintf@@YAHPA_WIPB_WZZ";
+ case 0x0136: return "?terminate@@YAXXZ";
+ case 0x0137: return "?try_lock@critical_section@Concurrency@@QAE_NXZ";
+ case 0x0138: return "?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ";
+ case 0x0139: return "?try_lock_for@critical_section@Concurrency@@QAE_NI@Z";
+ case 0x013a: return "?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ";
+ case 0x013b: return "?unexpected@@YAXXZ";
+ case 0x013c: return "?unlock@critical_section@Concurrency@@QAEXXZ";
+ case 0x013d: return "?unlock@reader_writer_lock@Concurrency@@QAEXXZ";
+ case 0x013e: return "?vswprintf@@YAHPA_WIPB_WPAD@Z";
+ case 0x013f: return "?wait@Concurrency@@YAXI@Z";
+ case 0x0140:
+ return "?wait@_Condition_variable@details@Concurrency@@QAEXAAVcritical_"
+ "section@3@@Z";
+ case 0x0141: return "?wait@event@Concurrency@@QAEII@Z";
+ case 0x0142:
+ return "?wait_for@_Condition_variable@details@Concurrency@@QAE_NAAVcritical_"
+ "section@3@I@Z";
+ case 0x0143: return "?wait_for_multiple@event@Concurrency@@SAIPAPAV12@I_NI@Z";
+ case 0x0144: return "?what@exception@std@@UBEPBDXZ";
+ case 0x0146: return "_CIacos";
+ case 0x0147: return "_CIasin";
+ case 0x0148: return "_CIatan";
+ case 0x0149: return "_CIatan2";
+ case 0x014a: return "_CIcos";
+ case 0x014b: return "_CIcosh";
+ case 0x014c: return "_CIexp";
+ case 0x014d: return "_CIfmod";
+ case 0x014e: return "_CIlog";
+ case 0x014f: return "_CIlog10";
+ case 0x0150: return "_CIpow";
+ case 0x0151: return "_CIsin";
+ case 0x0152: return "_CIsinh";
+ case 0x0153: return "_CIsqrt";
+ case 0x0154: return "_CItan";
+ case 0x0155: return "_CItanh";
+ case 0x0156: return "_CRT_RTC_INIT";
+ case 0x0157: return "_CRT_RTC_INITW";
+ case 0x0158: return "_Cbuild";
+ case 0x0159: return "_CreateFrameInfo";
+ case 0x015a: return "_CxxThrowException";
+ case 0x015b: return "_EH_prolog";
+ case 0x015c: return "_FCbuild";
+ case 0x015d: return "_FindAndUnlinkFrame";
+ case 0x015e: return "_Getdays";
+ case 0x015f: return "_Getmonths";
+ case 0x0160: return "_Gettnames";
+ case 0x0161: return "_HUGE";
+ case 0x0162: return "_IsExceptionObjectToBeDestroyed";
+ case 0x0163: return "_LCbuild";
+ case 0x0164: return "_NLG_Dispatch2";
+ case 0x0165: return "_NLG_Return";
+ case 0x0166: return "_NLG_Return2";
+ case 0x0167: return "_SetWinRTOutOfMemoryExceptionCallback";
+ case 0x0168: return "_Strftime";
+ case 0x0169: return "_W_Getdays";
+ case 0x016a: return "_W_Getmonths";
+ case 0x016b: return "_W_Gettnames";
+ case 0x016c: return "_Wcsftime";
+ case 0x016d: return "_XcptFilter";
+ case 0x016e: return "__AdjustPointer";
+ case 0x016f: return "__BuildCatchObject";
+ case 0x0170: return "__BuildCatchObjectHelper";
+ case 0x0171: return "__CppXcptFilter";
+ case 0x0172: return "__CxxDetectRethrow";
+ case 0x0173: return "__CxxExceptionFilter";
+ case 0x0174: return "__CxxFrameHandler";
+ case 0x0175: return "__CxxFrameHandler2";
+ case 0x0176: return "__CxxFrameHandler3";
+ case 0x0177: return "__CxxLongjmpUnwind";
+ case 0x0178: return "__CxxQueryExceptionSize";
+ case 0x0179: return "__CxxRegisterExceptionObject";
+ case 0x017a: return "__CxxUnregisterExceptionObject";
+ case 0x017b: return "__DestructExceptionObject";
+ case 0x017c: return "__FrameUnwindFilter";
+ case 0x017d: return "__GetPlatformExceptionInfo";
+ case 0x017e: return "__RTCastToVoid";
+ case 0x017f: return "__RTDynamicCast";
+ case 0x0180: return "__RTtypeid";
+ case 0x0181: return "__STRINGTOLD";
+ case 0x0182: return "__STRINGTOLD_L";
+ case 0x0183: return "__TypeMatch";
+ case 0x0184: return "___lc_codepage_func";
+ case 0x0185: return "___lc_collate_cp_func";
+ case 0x0186: return "___lc_locale_name_func";
+ case 0x0187: return "___mb_cur_max_func";
+ case 0x0188: return "___mb_cur_max_l_func";
+ case 0x0189: return "___setlc_active_func";
+ case 0x018a: return "___unguarded_readlc_active_add_func";
+ case 0x018b: return "__argc";
+ case 0x018c: return "__argv";
+ case 0x018d: return "__badioinfo";
+ case 0x018e: return "__clean_type_info_names_internal";
+ case 0x018f: return "__control87_2";
+ case 0x0190: return "__create_locale";
+ case 0x0191: return "__crtCompareStringA";
+ case 0x0192: return "__crtCompareStringEx";
+ case 0x0193: return "__crtCompareStringW";
+ case 0x0194: return "__crtCreateEventExW";
+ case 0x0195: return "__crtCreateSemaphoreExW";
+ case 0x0196: return "__crtCreateSymbolicLinkW";
+ case 0x0197: return "__crtEnumSystemLocalesEx";
+ case 0x0198: return "__crtFlsAlloc";
+ case 0x0199: return "__crtFlsFree";
+ case 0x019a: return "__crtFlsGetValue";
+ case 0x019b: return "__crtFlsSetValue";
+ case 0x019c: return "__crtGetDateFormatEx";
+ case 0x019d: return "__crtGetFileInformationByHandleEx";
+ case 0x019e: return "__crtGetLocaleInfoEx";
+ case 0x019f: return "__crtGetShowWindowMode";
+ case 0x01a0: return "__crtGetTickCount64";
+ case 0x01a1: return "__crtGetTimeFormatEx";
+ case 0x01a2: return "__crtGetUserDefaultLocaleName";
+ case 0x01a3: return "__crtInitializeCriticalSectionEx";
+ case 0x01a4: return "__crtIsPackagedApp";
+ case 0x01a5: return "__crtIsValidLocaleName";
+ case 0x01a6: return "__crtLCMapStringA";
+ case 0x01a7: return "__crtLCMapStringEx";
+ case 0x01a8: return "__crtLCMapStringW";
+ case 0x01a9: return "__crtSetFileInformationByHandle";
+ case 0x01aa: return "__crtSetThreadStackGuarantee";
+ case 0x01ab: return "__crtSetUnhandledExceptionFilter";
+ case 0x01ac: return "__crtSleep";
+ case 0x01ad: return "__crtTerminateProcess";
+ case 0x01ae: return "__crtUnhandledException";
+ case 0x01af: return "__daylight";
+ case 0x01b0: return "__dllonexit";
+ case 0x01b1: return "__doserrno";
+ case 0x01b2: return "__dstbias";
+ case 0x01b3: return "__fpecode";
+ case 0x01b4: return "__free_locale";
+ case 0x01b5: return "__get_current_locale";
+ case 0x01b6: return "__get_flsindex";
+ case 0x01b7: return "__get_tlsindex";
+ case 0x01b8: return "__getmainargs";
+ case 0x01b9: return "__initenv";
+ case 0x01ba: return "__iob_func";
+ case 0x01bb: return "__isascii";
+ case 0x01bc: return "__iscsym";
+ case 0x01bd: return "__iscsymf";
+ case 0x01be: return "__iswcsym";
+ case 0x01bf: return "__iswcsymf";
+ case 0x01c0: return "__lconv";
+ case 0x01c1: return "__lconv_init";
+ case 0x01c2: return "__libm_sse2_acos";
+ case 0x01c3: return "__libm_sse2_acosf";
+ case 0x01c4: return "__libm_sse2_asin";
+ case 0x01c5: return "__libm_sse2_asinf";
+ case 0x01c6: return "__libm_sse2_atan";
+ case 0x01c7: return "__libm_sse2_atan2";
+ case 0x01c8: return "__libm_sse2_atanf";
+ case 0x01c9: return "__libm_sse2_cos";
+ case 0x01ca: return "__libm_sse2_cosf";
+ case 0x01cb: return "__libm_sse2_exp";
+ case 0x01cc: return "__libm_sse2_expf";
+ case 0x01cd: return "__libm_sse2_log";
+ case 0x01ce: return "__libm_sse2_log10";
+ case 0x01cf: return "__libm_sse2_log10f";
+ case 0x01d0: return "__libm_sse2_logf";
+ case 0x01d1: return "__libm_sse2_pow";
+ case 0x01d2: return "__libm_sse2_powf";
+ case 0x01d3: return "__libm_sse2_sin";
+ case 0x01d4: return "__libm_sse2_sinf";
+ case 0x01d5: return "__libm_sse2_tan";
+ case 0x01d6: return "__libm_sse2_tanf";
+ case 0x01d7: return "__mb_cur_max";
+ case 0x01d8: return "__p___argc";
+ case 0x01d9: return "__p___argv";
+ case 0x01da: return "__p___initenv";
+ case 0x01db: return "__p___mb_cur_max";
+ case 0x01dc: return "__p___wargv";
+ case 0x01dd: return "__p___winitenv";
+ case 0x01de: return "__p__acmdln";
+ case 0x01df: return "__p__commode";
+ case 0x01e0: return "__p__daylight";
+ case 0x01e1: return "__p__dstbias";
+ case 0x01e2: return "__p__environ";
+ case 0x01e3: return "__p__fmode";
+ case 0x01e4: return "__p__iob";
+ case 0x01e5: return "__p__mbcasemap";
+ case 0x01e6: return "__p__mbctype";
+ case 0x01e7: return "__p__pctype";
+ case 0x01e8: return "__p__pgmptr";
+ case 0x01e9: return "__p__pwctype";
+ case 0x01ea: return "__p__timezone";
+ case 0x01eb: return "__p__tzname";
+ case 0x01ec: return "__p__wcmdln";
+ case 0x01ed: return "__p__wenviron";
+ case 0x01ee: return "__p__wpgmptr";
+ case 0x01ef: return "__pctype_func";
+ case 0x01f0: return "__pioinfo";
+ case 0x01f1: return "__pwctype_func";
+ case 0x01f2: return "__pxcptinfoptrs";
+ case 0x01f3: return "__report_gsfailure";
+ case 0x01f4: return "__set_app_type";
+ case 0x01f5: return "__setlc_active";
+ case 0x01f6: return "__setusermatherr";
+ case 0x01f7: return "__strncnt";
+ case 0x01f8: return "__swprintf_l";
+ case 0x01f9: return "__sys_errlist";
+ case 0x01fa: return "__sys_nerr";
+ case 0x01fb: return "__threadhandle";
+ case 0x01fc: return "__threadid";
+ case 0x01fd: return "__timezone";
+ case 0x01fe: return "__toascii";
+ case 0x01ff: return "__tzname";
+ case 0x0200: return "__unDName";
+ case 0x0201: return "__unDNameEx";
+ case 0x0202: return "__unDNameHelper";
+ case 0x010e: return "__uncaught_exception";
+ case 0x0203: return "__unguarded_readlc_active";
+ case 0x0204: return "__vswprintf_l";
+ case 0x0205: return "__wargv";
+ case 0x0206: return "__wcserror";
+ case 0x0207: return "__wcserror_s";
+ case 0x0208: return "__wcsncnt";
+ case 0x0209: return "__wgetmainargs";
+ case 0x020a: return "__winitenv";
+ case 0x020b: return "_abnormal_termination";
+ case 0x020c: return "_abs64";
+ case 0x020d: return "_access";
+ case 0x020e: return "_access_s";
+ case 0x020f: return "_acmdln";
+ case 0x0210: return "_aligned_free";
+ case 0x0211: return "_aligned_malloc";
+ case 0x0212: return "_aligned_msize";
+ case 0x0213: return "_aligned_offset_malloc";
+ case 0x0214: return "_aligned_offset_realloc";
+ case 0x0215: return "_aligned_offset_recalloc";
+ case 0x0216: return "_aligned_realloc";
+ case 0x0217: return "_aligned_recalloc";
+ case 0x0218: return "_amsg_exit";
+ case 0x0219: return "_assert";
+ case 0x021a: return "_atodbl";
+ case 0x021b: return "_atodbl_l";
+ case 0x021c: return "_atof_l";
+ case 0x021d: return "_atoflt";
+ case 0x021e: return "_atoflt_l";
+ case 0x021f: return "_atoi64";
+ case 0x0220: return "_atoi64_l";
+ case 0x0221: return "_atoi_l";
+ case 0x0222: return "_atol_l";
+ case 0x0223: return "_atoldbl";
+ case 0x0224: return "_atoldbl_l";
+ case 0x0225: return "_atoll_l";
+ case 0x0226: return "_beep";
+ case 0x0227: return "_beginthread";
+ case 0x0228: return "_beginthreadex";
+ case 0x0229: return "_byteswap_uint64";
+ case 0x022a: return "_byteswap_ulong";
+ case 0x022b: return "_byteswap_ushort";
+ case 0x022c: return "_c_exit";
+ case 0x022d: return "_cabs";
+ case 0x022e: return "_callnewh";
+ case 0x022f: return "_calloc_crt";
+ case 0x0230: return "_cexit";
+ case 0x0231: return "_cgets";
+ case 0x0232: return "_cgets_s";
+ case 0x0233: return "_cgetws";
+ case 0x0234: return "_cgetws_s";
+ case 0x0235: return "_chdir";
+ case 0x0236: return "_chdrive";
+ case 0x0237: return "_chgsign";
+ case 0x0238: return "_chgsignf";
+ case 0x0239: return "_chkesp";
+ case 0x023a: return "_chmod";
+ case 0x023b: return "_chsize";
+ case 0x023c: return "_chsize_s";
+ case 0x023d: return "_clearfp";
+ case 0x023e: return "_close";
+ case 0x023f: return "_commit";
+ case 0x0240: return "_commode";
+ case 0x0241: return "_configthreadlocale";
+ case 0x0242: return "_control87";
+ case 0x0243: return "_controlfp";
+ case 0x0244: return "_controlfp_s";
+ case 0x0245: return "_copysign";
+ case 0x0246: return "_copysignf";
+ case 0x0247: return "_cprintf";
+ case 0x0248: return "_cprintf_l";
+ case 0x0249: return "_cprintf_p";
+ case 0x024a: return "_cprintf_p_l";
+ case 0x024b: return "_cprintf_s";
+ case 0x024c: return "_cprintf_s_l";
+ case 0x024d: return "_cputs";
+ case 0x024e: return "_cputws";
+ case 0x024f: return "_creat";
+ case 0x0250: return "_create_locale";
+ case 0x0251: return "_crt_debugger_hook";
+ case 0x0252: return "_cscanf";
+ case 0x0253: return "_cscanf_l";
+ case 0x0254: return "_cscanf_s";
+ case 0x0255: return "_cscanf_s_l";
+ case 0x0256: return "_ctime32";
+ case 0x0257: return "_ctime32_s";
+ case 0x0258: return "_ctime64";
+ case 0x0259: return "_ctime64_s";
+ case 0x025a: return "_cwait";
+ case 0x025b: return "_cwprintf";
+ case 0x025c: return "_cwprintf_l";
+ case 0x025d: return "_cwprintf_p";
+ case 0x025e: return "_cwprintf_p_l";
+ case 0x025f: return "_cwprintf_s";
+ case 0x0260: return "_cwprintf_s_l";
+ case 0x0261: return "_cwscanf";
+ case 0x0262: return "_cwscanf_l";
+ case 0x0263: return "_cwscanf_s";
+ case 0x0264: return "_cwscanf_s_l";
+ case 0x0265: return "_daylight";
+ case 0x0266: return "_dclass";
+ case 0x0267: return "_difftime32";
+ case 0x0268: return "_difftime64";
+ case 0x0269: return "_dosmaperr";
+ case 0x026a: return "_dpcomp";
+ case 0x026b: return "_dsign";
+ case 0x026c: return "_dstbias";
+ case 0x026d: return "_dtest";
+ case 0x026e: return "_dup";
+ case 0x026f: return "_dup2";
+ case 0x0270: return "_dupenv_s";
+ case 0x0271: return "_ecvt";
+ case 0x0272: return "_ecvt_s";
+ case 0x0273: return "_endthread";
+ case 0x0274: return "_endthreadex";
+ case 0x0275: return "_environ";
+ case 0x0276: return "_eof";
+ case 0x0277: return "_errno";
+ case 0x0278: return "_except1";
+ case 0x0279: return "_except_handler2";
+ case 0x027a: return "_except_handler3";
+ case 0x027b: return "_except_handler4_common";
+ case 0x027c: return "_execl";
+ case 0x027d: return "_execle";
+ case 0x027e: return "_execlp";
+ case 0x027f: return "_execlpe";
+ case 0x0280: return "_execv";
+ case 0x0281: return "_execve";
+ case 0x0282: return "_execvp";
+ case 0x0283: return "_execvpe";
+ case 0x0284: return "_exit";
+ case 0x0285: return "_expand";
+ case 0x0286: return "_fclose_nolock";
+ case 0x0287: return "_fcloseall";
+ case 0x0288: return "_fcvt";
+ case 0x0289: return "_fcvt_s";
+ case 0x028a: return "_fdclass";
+ case 0x028b: return "_fdopen";
+ case 0x028c: return "_fdpcomp";
+ case 0x028d: return "_fdsign";
+ case 0x028e: return "_fdtest";
+ case 0x028f: return "_fflush_nolock";
+ case 0x0290: return "_fgetchar";
+ case 0x0291: return "_fgetwc_nolock";
+ case 0x0292: return "_fgetwchar";
+ case 0x0293: return "_filbuf";
+ case 0x0294: return "_filelength";
+ case 0x0295: return "_filelengthi64";
+ case 0x0296: return "_fileno";
+ case 0x0297: return "_findclose";
+ case 0x0298: return "_findfirst32";
+ case 0x0299: return "_findfirst32i64";
+ case 0x029a: return "_findfirst64";
+ case 0x029b: return "_findfirst64i32";
+ case 0x029c: return "_findnext32";
+ case 0x029d: return "_findnext32i64";
+ case 0x029e: return "_findnext64";
+ case 0x029f: return "_findnext64i32";
+ case 0x02a0: return "_finite";
+ case 0x02a1: return "_flsbuf";
+ case 0x02a2: return "_flushall";
+ case 0x02a3: return "_fmode";
+ case 0x02a4: return "_fpclass";
+ case 0x02a5: return "_fpieee_flt";
+ case 0x02a6: return "_fpreset";
+ case 0x02a7: return "_fprintf_l";
+ case 0x02a8: return "_fprintf_p";
+ case 0x02a9: return "_fprintf_p_l";
+ case 0x02aa: return "_fprintf_s_l";
+ case 0x02ab: return "_fputchar";
+ case 0x02ac: return "_fputwc_nolock";
+ case 0x02ad: return "_fputwchar";
+ case 0x02ae: return "_fread_nolock";
+ case 0x02af: return "_fread_nolock_s";
+ case 0x02b0: return "_free_locale";
+ case 0x02b1: return "_freea";
+ case 0x02b2: return "_freea_s";
+ case 0x02b3: return "_freefls";
+ case 0x02b4: return "_fscanf_l";
+ case 0x02b5: return "_fscanf_s_l";
+ case 0x02b6: return "_fseek_nolock";
+ case 0x02b7: return "_fseeki64";
+ case 0x02b8: return "_fseeki64_nolock";
+ case 0x02b9: return "_fsopen";
+ case 0x02ba: return "_fstat32";
+ case 0x02bb: return "_fstat32i64";
+ case 0x02bc: return "_fstat64";
+ case 0x02bd: return "_fstat64i32";
+ case 0x02be: return "_ftell_nolock";
+ case 0x02bf: return "_ftelli64";
+ case 0x02c0: return "_ftelli64_nolock";
+ case 0x02c1: return "_ftime32";
+ case 0x02c2: return "_ftime32_s";
+ case 0x02c3: return "_ftime64";
+ case 0x02c4: return "_ftime64_s";
+ case 0x02c5: return "_ftol";
+ case 0x02c6: return "_fullpath";
+ case 0x02c7: return "_futime32";
+ case 0x02c8: return "_futime64";
+ case 0x02c9: return "_fwprintf_l";
+ case 0x02ca: return "_fwprintf_p";
+ case 0x02cb: return "_fwprintf_p_l";
+ case 0x02cc: return "_fwprintf_s_l";
+ case 0x02cd: return "_fwrite_nolock";
+ case 0x02ce: return "_fwscanf_l";
+ case 0x02cf: return "_fwscanf_s_l";
+ case 0x02d0: return "_gcvt";
+ case 0x02d1: return "_gcvt_s";
+ case 0x02d2: return "_get_current_locale";
+ case 0x02d3: return "_get_daylight";
+ case 0x02d4: return "_get_doserrno";
+ case 0x02d5: return "_get_dstbias";
+ case 0x02d6: return "_get_errno";
+ case 0x02d7: return "_get_fmode";
+ case 0x02d8: return "_get_heap_handle";
+ case 0x02d9: return "_get_invalid_parameter_handler";
+ case 0x02da: return "_get_osfhandle";
+ case 0x02db: return "_get_output_format";
+ case 0x02dc: return "_get_pgmptr";
+ case 0x02dd: return "_get_printf_count_output";
+ case 0x02de: return "_get_purecall_handler";
+ case 0x02df: return "_get_terminate";
+ case 0x02e0: return "_get_timezone";
+ case 0x02e1: return "_get_tzname";
+ case 0x02e2: return "_get_unexpected";
+ case 0x02e3: return "_get_wpgmptr";
+ case 0x02e4: return "_getc_nolock";
+ case 0x02e5: return "_getch";
+ case 0x02e6: return "_getch_nolock";
+ case 0x02e7: return "_getche";
+ case 0x02e8: return "_getche_nolock";
+ case 0x02e9: return "_getcwd";
+ case 0x02ea: return "_getdcwd";
+ case 0x02eb: return "_getdiskfree";
+ case 0x02ec: return "_getdllprocaddr";
+ case 0x02ed: return "_getdrive";
+ case 0x02ee: return "_getdrives";
+ case 0x02ef: return "_getmaxstdio";
+ case 0x02f0: return "_getmbcp";
+ case 0x02f1: return "_getpid";
+ case 0x02f2: return "_getptd";
+ case 0x02f3: return "_getsystime";
+ case 0x02f4: return "_getw";
+ case 0x02f5: return "_getwch";
+ case 0x02f6: return "_getwch_nolock";
+ case 0x02f7: return "_getwche";
+ case 0x02f8: return "_getwche_nolock";
+ case 0x02f9: return "_getws";
+ case 0x02fa: return "_getws_s";
+ case 0x02fb: return "_global_unwind2";
+ case 0x02fc: return "_gmtime32";
+ case 0x02fd: return "_gmtime32_s";
+ case 0x02fe: return "_gmtime64";
+ case 0x02ff: return "_gmtime64_s";
+ case 0x0300: return "_heapadd";
+ case 0x0301: return "_heapchk";
+ case 0x0302: return "_heapmin";
+ case 0x0303: return "_heapset";
+ case 0x0304: return "_heapused";
+ case 0x0305: return "_heapwalk";
+ case 0x0306: return "_hypot";
+ case 0x0307: return "_hypotf";
+ case 0x0308: return "_i64toa";
+ case 0x0309: return "_i64toa_s";
+ case 0x030a: return "_i64tow";
+ case 0x030b: return "_i64tow_s";
+ case 0x030c: return "_initptd";
+ case 0x030d: return "_initterm";
+ case 0x030e: return "_initterm_e";
+ case 0x030f: return "_inp";
+ case 0x0310: return "_inpd";
+ case 0x0311: return "_inpw";
+ case 0x0312: return "_invalid_parameter";
+ case 0x0313: return "_invalid_parameter_noinfo";
+ case 0x0314: return "_invalid_parameter_noinfo_noreturn";
+ case 0x0315: return "_invoke_watson";
+ case 0x0316: return "_iob";
+ case 0x0317: return "_isalnum_l";
+ case 0x0318: return "_isalpha_l";
+ case 0x0319: return "_isatty";
+ case 0x031a: return "_isblank_l";
+ case 0x031b: return "_iscntrl_l";
+ case 0x031c: return "_isctype";
+ case 0x031d: return "_isctype_l";
+ case 0x031e: return "_isdigit_l";
+ case 0x031f: return "_isgraph_l";
+ case 0x0320: return "_isleadbyte_l";
+ case 0x0321: return "_islower_l";
+ case 0x0322: return "_ismbbalnum";
+ case 0x0323: return "_ismbbalnum_l";
+ case 0x0324: return "_ismbbalpha";
+ case 0x0325: return "_ismbbalpha_l";
+ case 0x0326: return "_ismbbblank";
+ case 0x0327: return "_ismbbblank_l";
+ case 0x0328: return "_ismbbgraph";
+ case 0x0329: return "_ismbbgraph_l";
+ case 0x032a: return "_ismbbkalnum";
+ case 0x032b: return "_ismbbkalnum_l";
+ case 0x032c: return "_ismbbkana";
+ case 0x032d: return "_ismbbkana_l";
+ case 0x032e: return "_ismbbkprint";
+ case 0x032f: return "_ismbbkprint_l";
+ case 0x0330: return "_ismbbkpunct";
+ case 0x0331: return "_ismbbkpunct_l";
+ case 0x0332: return "_ismbblead";
+ case 0x0333: return "_ismbblead_l";
+ case 0x0334: return "_ismbbprint";
+ case 0x0335: return "_ismbbprint_l";
+ case 0x0336: return "_ismbbpunct";
+ case 0x0337: return "_ismbbpunct_l";
+ case 0x0338: return "_ismbbtrail";
+ case 0x0339: return "_ismbbtrail_l";
+ case 0x033a: return "_ismbcalnum";
+ case 0x033b: return "_ismbcalnum_l";
+ case 0x033c: return "_ismbcalpha";
+ case 0x033d: return "_ismbcalpha_l";
+ case 0x033e: return "_ismbcblank";
+ case 0x033f: return "_ismbcblank_l";
+ case 0x0340: return "_ismbcdigit";
+ case 0x0341: return "_ismbcdigit_l";
+ case 0x0342: return "_ismbcgraph";
+ case 0x0343: return "_ismbcgraph_l";
+ case 0x0344: return "_ismbchira";
+ case 0x0345: return "_ismbchira_l";
+ case 0x0346: return "_ismbckata";
+ case 0x0347: return "_ismbckata_l";
+ case 0x0348: return "_ismbcl0";
+ case 0x0349: return "_ismbcl0_l";
+ case 0x034a: return "_ismbcl1";
+ case 0x034b: return "_ismbcl1_l";
+ case 0x034c: return "_ismbcl2";
+ case 0x034d: return "_ismbcl2_l";
+ case 0x034e: return "_ismbclegal";
+ case 0x034f: return "_ismbclegal_l";
+ case 0x0350: return "_ismbclower";
+ case 0x0351: return "_ismbclower_l";
+ case 0x0352: return "_ismbcprint";
+ case 0x0353: return "_ismbcprint_l";
+ case 0x0354: return "_ismbcpunct";
+ case 0x0355: return "_ismbcpunct_l";
+ case 0x0356: return "_ismbcspace";
+ case 0x0357: return "_ismbcspace_l";
+ case 0x0358: return "_ismbcsymbol";
+ case 0x0359: return "_ismbcsymbol_l";
+ case 0x035a: return "_ismbcupper";
+ case 0x035b: return "_ismbcupper_l";
+ case 0x035c: return "_ismbslead";
+ case 0x035d: return "_ismbslead_l";
+ case 0x035e: return "_ismbstrail";
+ case 0x035f: return "_ismbstrail_l";
+ case 0x0360: return "_isnan";
+ case 0x0361: return "_isprint_l";
+ case 0x0362: return "_ispunct_l";
+ case 0x0363: return "_isspace_l";
+ case 0x0364: return "_isupper_l";
+ case 0x0365: return "_iswalnum_l";
+ case 0x0366: return "_iswalpha_l";
+ case 0x0367: return "_iswblank_l";
+ case 0x0368: return "_iswcntrl_l";
+ case 0x0369: return "_iswcsym_l";
+ case 0x036a: return "_iswcsymf_l";
+ case 0x036b: return "_iswctype_l";
+ case 0x036c: return "_iswdigit_l";
+ case 0x036d: return "_iswgraph_l";
+ case 0x036e: return "_iswlower_l";
+ case 0x036f: return "_iswprint_l";
+ case 0x0370: return "_iswpunct_l";
+ case 0x0371: return "_iswspace_l";
+ case 0x0372: return "_iswupper_l";
+ case 0x0373: return "_iswxdigit_l";
+ case 0x0374: return "_isxdigit_l";
+ case 0x0375: return "_itoa";
+ case 0x0376: return "_itoa_s";
+ case 0x0377: return "_itow";
+ case 0x0378: return "_itow_s";
+ case 0x0379: return "_j0";
+ case 0x037a: return "_j1";
+ case 0x037b: return "_jn";
+ case 0x037c: return "_kbhit";
+ case 0x037d: return "_ldclass";
+ case 0x037e: return "_ldpcomp";
+ case 0x037f: return "_ldsign";
+ case 0x0380: return "_ldtest";
+ case 0x0381: return "_lfind";
+ case 0x0382: return "_lfind_s";
+ case 0x0383: return "_libm_sse2_acos_precise";
+ case 0x0384: return "_libm_sse2_asin_precise";
+ case 0x0385: return "_libm_sse2_atan_precise";
+ case 0x0386: return "_libm_sse2_cos_precise";
+ case 0x0387: return "_libm_sse2_exp_precise";
+ case 0x0388: return "_libm_sse2_log10_precise";
+ case 0x0389: return "_libm_sse2_log_precise";
+ case 0x038a: return "_libm_sse2_pow_precise";
+ case 0x038b: return "_libm_sse2_sin_precise";
+ case 0x038c: return "_libm_sse2_sqrt_precise";
+ case 0x038d: return "_libm_sse2_tan_precise";
+ case 0x038e: return "_loaddll";
+ case 0x038f: return "_local_unwind2";
+ case 0x0390: return "_local_unwind4";
+ case 0x0391: return "_localtime32";
+ case 0x0392: return "_localtime32_s";
+ case 0x0393: return "_localtime64";
+ case 0x0394: return "_localtime64_s";
+ case 0x0395: return "_lock";
+ case 0x0396: return "_lock_file";
+ case 0x0397: return "_locking";
+ case 0x0398: return "_logb";
+ case 0x0399: return "_longjmpex";
+ case 0x039a: return "_lrotl";
+ case 0x039b: return "_lrotr";
+ case 0x039c: return "_lsearch";
+ case 0x039d: return "_lsearch_s";
+ case 0x039e: return "_lseek";
+ case 0x039f: return "_lseeki64";
+ case 0x03a0: return "_ltoa";
+ case 0x03a1: return "_ltoa_s";
+ case 0x03a2: return "_ltow";
+ case 0x03a3: return "_ltow_s";
+ case 0x03a4: return "_makepath";
+ case 0x03a5: return "_makepath_s";
+ case 0x03a6: return "_malloc_crt";
+ case 0x03a7: return "_mbbtombc";
+ case 0x03a8: return "_mbbtombc_l";
+ case 0x03a9: return "_mbbtype";
+ case 0x03aa: return "_mbbtype_l";
+ case 0x03ab: return "_mbcasemap";
+ case 0x03ac: return "_mbccpy";
+ case 0x03ad: return "_mbccpy_l";
+ case 0x03ae: return "_mbccpy_s";
+ case 0x03af: return "_mbccpy_s_l";
+ case 0x03b0: return "_mbcjistojms";
+ case 0x03b1: return "_mbcjistojms_l";
+ case 0x03b2: return "_mbcjmstojis";
+ case 0x03b3: return "_mbcjmstojis_l";
+ case 0x03b4: return "_mbclen";
+ case 0x03b5: return "_mbclen_l";
+ case 0x03b6: return "_mbctohira";
+ case 0x03b7: return "_mbctohira_l";
+ case 0x03b8: return "_mbctokata";
+ case 0x03b9: return "_mbctokata_l";
+ case 0x03ba: return "_mbctolower";
+ case 0x03bb: return "_mbctolower_l";
+ case 0x03bc: return "_mbctombb";
+ case 0x03bd: return "_mbctombb_l";
+ case 0x03be: return "_mbctoupper";
+ case 0x03bf: return "_mbctoupper_l";
+ case 0x03c0: return "_mbctype";
+ case 0x03c1: return "_mblen_l";
+ case 0x03c2: return "_mbsbtype";
+ case 0x03c3: return "_mbsbtype_l";
+ case 0x03c4: return "_mbscat_s";
+ case 0x03c5: return "_mbscat_s_l";
+ case 0x03c6: return "_mbschr";
+ case 0x03c7: return "_mbschr_l";
+ case 0x03c8: return "_mbscmp";
+ case 0x03c9: return "_mbscmp_l";
+ case 0x03ca: return "_mbscoll";
+ case 0x03cb: return "_mbscoll_l";
+ case 0x03cc: return "_mbscpy_s";
+ case 0x03cd: return "_mbscpy_s_l";
+ case 0x03ce: return "_mbscspn";
+ case 0x03cf: return "_mbscspn_l";
+ case 0x03d0: return "_mbsdec";
+ case 0x03d1: return "_mbsdec_l";
+ case 0x03d2: return "_mbsicmp";
+ case 0x03d3: return "_mbsicmp_l";
+ case 0x03d4: return "_mbsicoll";
+ case 0x03d5: return "_mbsicoll_l";
+ case 0x03d6: return "_mbsinc";
+ case 0x03d7: return "_mbsinc_l";
+ case 0x03d8: return "_mbslen";
+ case 0x03d9: return "_mbslen_l";
+ case 0x03da: return "_mbslwr";
+ case 0x03db: return "_mbslwr_l";
+ case 0x03dc: return "_mbslwr_s";
+ case 0x03dd: return "_mbslwr_s_l";
+ case 0x03de: return "_mbsnbcat";
+ case 0x03df: return "_mbsnbcat_l";
+ case 0x03e0: return "_mbsnbcat_s";
+ case 0x03e1: return "_mbsnbcat_s_l";
+ case 0x03e2: return "_mbsnbcmp";
+ case 0x03e3: return "_mbsnbcmp_l";
+ case 0x03e4: return "_mbsnbcnt";
+ case 0x03e5: return "_mbsnbcnt_l";
+ case 0x03e6: return "_mbsnbcoll";
+ case 0x03e7: return "_mbsnbcoll_l";
+ case 0x03e8: return "_mbsnbcpy";
+ case 0x03e9: return "_mbsnbcpy_l";
+ case 0x03ea: return "_mbsnbcpy_s";
+ case 0x03eb: return "_mbsnbcpy_s_l";
+ case 0x03ec: return "_mbsnbicmp";
+ case 0x03ed: return "_mbsnbicmp_l";
+ case 0x03ee: return "_mbsnbicoll";
+ case 0x03ef: return "_mbsnbicoll_l";
+ case 0x03f0: return "_mbsnbset";
+ case 0x03f1: return "_mbsnbset_l";
+ case 0x03f2: return "_mbsnbset_s";
+ case 0x03f3: return "_mbsnbset_s_l";
+ case 0x03f4: return "_mbsncat";
+ case 0x03f5: return "_mbsncat_l";
+ case 0x03f6: return "_mbsncat_s";
+ case 0x03f7: return "_mbsncat_s_l";
+ case 0x03f8: return "_mbsnccnt";
+ case 0x03f9: return "_mbsnccnt_l";
+ case 0x03fa: return "_mbsncmp";
+ case 0x03fb: return "_mbsncmp_l";
+ case 0x03fc: return "_mbsncoll";
+ case 0x03fd: return "_mbsncoll_l";
+ case 0x03fe: return "_mbsncpy";
+ case 0x03ff: return "_mbsncpy_l";
+ case 0x0400: return "_mbsncpy_s";
+ case 0x0401: return "_mbsncpy_s_l";
+ case 0x0402: return "_mbsnextc";
+ case 0x0403: return "_mbsnextc_l";
+ case 0x0404: return "_mbsnicmp";
+ case 0x0405: return "_mbsnicmp_l";
+ case 0x0406: return "_mbsnicoll";
+ case 0x0407: return "_mbsnicoll_l";
+ case 0x0408: return "_mbsninc";
+ case 0x0409: return "_mbsninc_l";
+ case 0x040a: return "_mbsnlen";
+ case 0x040b: return "_mbsnlen_l";
+ case 0x040c: return "_mbsnset";
+ case 0x040d: return "_mbsnset_l";
+ case 0x040e: return "_mbsnset_s";
+ case 0x040f: return "_mbsnset_s_l";
+ case 0x0410: return "_mbspbrk";
+ case 0x0411: return "_mbspbrk_l";
+ case 0x0412: return "_mbsrchr";
+ case 0x0413: return "_mbsrchr_l";
+ case 0x0414: return "_mbsrev";
+ case 0x0415: return "_mbsrev_l";
+ case 0x0416: return "_mbsset";
+ case 0x0417: return "_mbsset_l";
+ case 0x0418: return "_mbsset_s";
+ case 0x0419: return "_mbsset_s_l";
+ case 0x041a: return "_mbsspn";
+ case 0x041b: return "_mbsspn_l";
+ case 0x041c: return "_mbsspnp";
+ case 0x041d: return "_mbsspnp_l";
+ case 0x041e: return "_mbsstr";
+ case 0x041f: return "_mbsstr_l";
+ case 0x0420: return "_mbstok";
+ case 0x0421: return "_mbstok_l";
+ case 0x0422: return "_mbstok_s";
+ case 0x0423: return "_mbstok_s_l";
+ case 0x0424: return "_mbstowcs_l";
+ case 0x0425: return "_mbstowcs_s_l";
+ case 0x0426: return "_mbstrlen";
+ case 0x0427: return "_mbstrlen_l";
+ case 0x0428: return "_mbstrnlen";
+ case 0x0429: return "_mbstrnlen_l";
+ case 0x042a: return "_mbsupr";
+ case 0x042b: return "_mbsupr_l";
+ case 0x042c: return "_mbsupr_s";
+ case 0x042d: return "_mbsupr_s_l";
+ case 0x042e: return "_mbtowc_l";
+ case 0x042f: return "_memccpy";
+ case 0x0430: return "_memicmp";
+ case 0x0431: return "_memicmp_l";
+ case 0x0432: return "_mkdir";
+ case 0x0433: return "_mkgmtime32";
+ case 0x0434: return "_mkgmtime64";
+ case 0x0435: return "_mktemp";
+ case 0x0436: return "_mktemp_s";
+ case 0x0437: return "_mktime32";
+ case 0x0438: return "_mktime64";
+ case 0x0439: return "_msize";
+ case 0x043a: return "_nextafter";
+ case 0x043b: return "_onexit";
+ case 0x043c: return "_open";
+ case 0x043d: return "_open_osfhandle";
+ case 0x043e: return "_outp";
+ case 0x043f: return "_outpd";
+ case 0x0440: return "_outpw";
+ case 0x0441: return "_pclose";
+ case 0x0442: return "_pctype";
+ case 0x0443: return "_pgmptr";
+ case 0x0444: return "_pipe";
+ case 0x0445: return "_popen";
+ case 0x0446: return "_printf_l";
+ case 0x0447: return "_printf_p";
+ case 0x0448: return "_printf_p_l";
+ case 0x0449: return "_printf_s_l";
+ case 0x044a: return "_purecall";
+ case 0x044b: return "_putch";
+ case 0x044c: return "_putch_nolock";
+ case 0x044d: return "_putenv";
+ case 0x044e: return "_putenv_s";
+ case 0x044f: return "_putw";
+ case 0x0450: return "_putwch";
+ case 0x0451: return "_putwch_nolock";
+ case 0x0452: return "_putws";
+ case 0x0453: return "_pwctype";
+ case 0x0454: return "_read";
+ case 0x0455: return "_realloc_crt";
+ case 0x0456: return "_recalloc";
+ case 0x0457: return "_recalloc_crt";
+ case 0x0458: return "_resetstkoflw";
+ case 0x0459: return "_rmdir";
+ case 0x045a: return "_rmtmp";
+ case 0x045b: return "_rotl";
+ case 0x045c: return "_rotl64";
+ case 0x045d: return "_rotr";
+ case 0x045e: return "_rotr64";
+ case 0x045f: return "_scalb";
+ case 0x0460: return "_scanf_l";
+ case 0x0461: return "_scanf_s_l";
+ case 0x0462: return "_scprintf";
+ case 0x0463: return "_scprintf_l";
+ case 0x0464: return "_scprintf_p";
+ case 0x0465: return "_scprintf_p_l";
+ case 0x0466: return "_scwprintf";
+ case 0x0467: return "_scwprintf_l";
+ case 0x0468: return "_scwprintf_p";
+ case 0x0469: return "_scwprintf_p_l";
+ case 0x046a: return "_searchenv";
+ case 0x046b: return "_searchenv_s";
+ case 0x046d: return "_seh_longjmp_unwind";
+ case 0x046c: return "_seh_longjmp_unwind4";
+ case 0x046e: return "_set_SSE2_enable";
+ case 0x046f: return "_set_abort_behavior";
+ case 0x0470: return "_set_controlfp";
+ case 0x0471: return "_set_doserrno";
+ case 0x0472: return "_set_errno";
+ case 0x0473: return "_set_error_mode";
+ case 0x0474: return "_set_fmode";
+ case 0x0475: return "_set_invalid_parameter_handler";
+ case 0x0476: return "_set_malloc_crt_max_wait";
+ case 0x0477: return "_set_output_format";
+ case 0x0478: return "_set_printf_count_output";
+ case 0x0479: return "_set_purecall_handler";
+ case 0x047a: return "_seterrormode";
+ case 0x047b: return "_setjmp";
+ case 0x047c: return "_setjmp3";
+ case 0x047d: return "_setmaxstdio";
+ case 0x047e: return "_setmbcp";
+ case 0x047f: return "_setmode";
+ case 0x0480: return "_setsystime";
+ case 0x0481: return "_sleep";
+ case 0x0482: return "_snprintf";
+ case 0x0483: return "_snprintf_c";
+ case 0x0484: return "_snprintf_c_l";
+ case 0x0485: return "_snprintf_l";
+ case 0x0486: return "_snprintf_s";
+ case 0x0487: return "_snprintf_s_l";
+ case 0x0488: return "_snscanf";
+ case 0x0489: return "_snscanf_l";
+ case 0x048a: return "_snscanf_s";
+ case 0x048b: return "_snscanf_s_l";
+ case 0x048c: return "_snwprintf";
+ case 0x048d: return "_snwprintf_l";
+ case 0x048e: return "_snwprintf_s";
+ case 0x048f: return "_snwprintf_s_l";
+ case 0x0490: return "_snwscanf";
+ case 0x0491: return "_snwscanf_l";
+ case 0x0492: return "_snwscanf_s";
+ case 0x0493: return "_snwscanf_s_l";
+ case 0x0494: return "_sopen";
+ case 0x0495: return "_sopen_s";
+ case 0x0496: return "_spawnl";
+ case 0x0497: return "_spawnle";
+ case 0x0498: return "_spawnlp";
+ case 0x0499: return "_spawnlpe";
+ case 0x049a: return "_spawnv";
+ case 0x049b: return "_spawnve";
+ case 0x049c: return "_spawnvp";
+ case 0x049d: return "_spawnvpe";
+ case 0x049e: return "_splitpath";
+ case 0x049f: return "_splitpath_s";
+ case 0x04a0: return "_sprintf_l";
+ case 0x04a1: return "_sprintf_p";
+ case 0x04a2: return "_sprintf_p_l";
+ case 0x04a3: return "_sprintf_s_l";
+ case 0x04a4: return "_sscanf_l";
+ case 0x04a5: return "_sscanf_s_l";
+ case 0x04a6: return "_stat32";
+ case 0x04a7: return "_stat32i64";
+ case 0x04a8: return "_stat64";
+ case 0x04a9: return "_stat64i32";
+ case 0x04aa: return "_statusfp";
+ case 0x04ab: return "_statusfp2";
+ case 0x04ac: return "_strcoll_l";
+ case 0x04ad: return "_strdate";
+ case 0x04ae: return "_strdate_s";
+ case 0x04af: return "_strdup";
+ case 0x04b0: return "_strerror";
+ case 0x04b1: return "_strerror_s";
+ case 0x04b2: return "_strftime_l";
+ case 0x04b3: return "_stricmp";
+ case 0x04b4: return "_stricmp_l";
+ case 0x04b5: return "_stricoll";
+ case 0x04b6: return "_stricoll_l";
+ case 0x04b7: return "_strlwr";
+ case 0x04b8: return "_strlwr_l";
+ case 0x04b9: return "_strlwr_s";
+ case 0x04ba: return "_strlwr_s_l";
+ case 0x04bb: return "_strncoll";
+ case 0x04bc: return "_strncoll_l";
+ case 0x04bd: return "_strnicmp";
+ case 0x04be: return "_strnicmp_l";
+ case 0x04bf: return "_strnicoll";
+ case 0x04c0: return "_strnicoll_l";
+ case 0x04c1: return "_strnset";
+ case 0x04c2: return "_strnset_s";
+ case 0x04c3: return "_strrev";
+ case 0x04c4: return "_strset";
+ case 0x04c5: return "_strset_s";
+ case 0x04c6: return "_strtime";
+ case 0x04c7: return "_strtime_s";
+ case 0x04c8: return "_strtod_l";
+ case 0x04c9: return "_strtof_l";
+ case 0x04ca: return "_strtoi64";
+ case 0x04cb: return "_strtoi64_l";
+ case 0x04cc: return "_strtoimax_l";
+ case 0x04cd: return "_strtol_l";
+ case 0x04ce: return "_strtold_l";
+ case 0x04cf: return "_strtoll_l";
+ case 0x04d0: return "_strtoui64";
+ case 0x04d1: return "_strtoui64_l";
+ case 0x04d2: return "_strtoul_l";
+ case 0x04d3: return "_strtoull_l";
+ case 0x04d4: return "_strtoumax_l";
+ case 0x04d5: return "_strupr";
+ case 0x04d6: return "_strupr_l";
+ case 0x04d7: return "_strupr_s";
+ case 0x04d8: return "_strupr_s_l";
+ case 0x04d9: return "_strxfrm_l";
+ case 0x04da: return "_swab";
+ case 0x04db: return "_swprintf";
+ case 0x04dc: return "_swprintf_c";
+ case 0x04dd: return "_swprintf_c_l";
+ case 0x04de: return "_swprintf_p";
+ case 0x04df: return "_swprintf_p_l";
+ case 0x04e0: return "_swprintf_s_l";
+ case 0x04e1: return "_swscanf_l";
+ case 0x04e2: return "_swscanf_s_l";
+ case 0x04e3: return "_sys_errlist";
+ case 0x04e4: return "_sys_nerr";
+ case 0x04e5: return "_tell";
+ case 0x04e6: return "_telli64";
+ case 0x04e7: return "_tempnam";
+ case 0x04e8: return "_time32";
+ case 0x04e9: return "_time64";
+ case 0x04ea: return "_timezone";
+ case 0x04eb: return "_tolower";
+ case 0x04ec: return "_tolower_l";
+ case 0x04ed: return "_toupper";
+ case 0x04ee: return "_toupper_l";
+ case 0x04ef: return "_towlower_l";
+ case 0x04f0: return "_towupper_l";
+ case 0x04f1: return "_tzname";
+ case 0x04f2: return "_tzset";
+ case 0x04f3: return "_ui64toa";
+ case 0x04f4: return "_ui64toa_s";
+ case 0x04f5: return "_ui64tow";
+ case 0x04f6: return "_ui64tow_s";
+ case 0x04f7: return "_ultoa";
+ case 0x04f8: return "_ultoa_s";
+ case 0x04f9: return "_ultow";
+ case 0x04fa: return "_ultow_s";
+ case 0x04fb: return "_umask";
+ case 0x04fc: return "_umask_s";
+ case 0x04fd: return "_ungetc_nolock";
+ case 0x04fe: return "_ungetch";
+ case 0x04ff: return "_ungetch_nolock";
+ case 0x0500: return "_ungetwc_nolock";
+ case 0x0501: return "_ungetwch";
+ case 0x0502: return "_ungetwch_nolock";
+ case 0x0503: return "_unlink";
+ case 0x0504: return "_unloaddll";
+ case 0x0505: return "_unlock";
+ case 0x0506: return "_unlock_file";
+ case 0x0507: return "_utime32";
+ case 0x0508: return "_utime64";
+ case 0x0509: return "_vacopy";
+ case 0x050a: return "_vcprintf";
+ case 0x050b: return "_vcprintf_l";
+ case 0x050c: return "_vcprintf_p";
+ case 0x050d: return "_vcprintf_p_l";
+ case 0x050e: return "_vcprintf_s";
+ case 0x050f: return "_vcprintf_s_l";
+ case 0x0510: return "_vcwprintf";
+ case 0x0511: return "_vcwprintf_l";
+ case 0x0512: return "_vcwprintf_p";
+ case 0x0513: return "_vcwprintf_p_l";
+ case 0x0514: return "_vcwprintf_s";
+ case 0x0515: return "_vcwprintf_s_l";
+ case 0x0516: return "_vfprintf_l";
+ case 0x0517: return "_vfprintf_p";
+ case 0x0518: return "_vfprintf_p_l";
+ case 0x0519: return "_vfprintf_s_l";
+ case 0x051a: return "_vfwprintf_l";
+ case 0x051b: return "_vfwprintf_p";
+ case 0x051c: return "_vfwprintf_p_l";
+ case 0x051d: return "_vfwprintf_s_l";
+ case 0x051e: return "_vprintf_l";
+ case 0x051f: return "_vprintf_p";
+ case 0x0520: return "_vprintf_p_l";
+ case 0x0521: return "_vprintf_s_l";
+ case 0x0522: return "_vscprintf";
+ case 0x0523: return "_vscprintf_l";
+ case 0x0524: return "_vscprintf_p";
+ case 0x0525: return "_vscprintf_p_l";
+ case 0x0526: return "_vscwprintf";
+ case 0x0527: return "_vscwprintf_l";
+ case 0x0528: return "_vscwprintf_p";
+ case 0x0529: return "_vscwprintf_p_l";
+ case 0x052a: return "_vsnprintf";
+ case 0x052b: return "_vsnprintf_c";
+ case 0x052c: return "_vsnprintf_c_l";
+ case 0x052d: return "_vsnprintf_l";
+ case 0x052e: return "_vsnprintf_s";
+ case 0x052f: return "_vsnprintf_s_l";
+ case 0x0530: return "_vsnwprintf";
+ case 0x0531: return "_vsnwprintf_l";
+ case 0x0532: return "_vsnwprintf_s";
+ case 0x0533: return "_vsnwprintf_s_l";
+ case 0x0534: return "_vsprintf_l";
+ case 0x0535: return "_vsprintf_p";
+ case 0x0536: return "_vsprintf_p_l";
+ case 0x0537: return "_vsprintf_s_l";
+ case 0x0538: return "_vswprintf";
+ case 0x0539: return "_vswprintf_c";
+ case 0x053a: return "_vswprintf_c_l";
+ case 0x053b: return "_vswprintf_l";
+ case 0x053c: return "_vswprintf_p";
+ case 0x053d: return "_vswprintf_p_l";
+ case 0x053e: return "_vswprintf_s_l";
+ case 0x053f: return "_vwprintf_l";
+ case 0x0540: return "_vwprintf_p";
+ case 0x0541: return "_vwprintf_p_l";
+ case 0x0542: return "_vwprintf_s_l";
+ case 0x0543: return "_waccess";
+ case 0x0544: return "_waccess_s";
+ case 0x0545: return "_wasctime";
+ case 0x0546: return "_wasctime_s";
+ case 0x0547: return "_wassert";
+ case 0x0548: return "_wchdir";
+ case 0x0549: return "_wchmod";
+ case 0x054a: return "_wcmdln";
+ case 0x054b: return "_wcreat";
+ case 0x054c: return "_wcreate_locale";
+ case 0x054d: return "_wcscoll_l";
+ case 0x054e: return "_wcsdup";
+ case 0x054f: return "_wcserror";
+ case 0x0550: return "_wcserror_s";
+ case 0x0551: return "_wcsftime_l";
+ case 0x0552: return "_wcsicmp";
+ case 0x0553: return "_wcsicmp_l";
+ case 0x0554: return "_wcsicoll";
+ case 0x0555: return "_wcsicoll_l";
+ case 0x0556: return "_wcslwr";
+ case 0x0557: return "_wcslwr_l";
+ case 0x0558: return "_wcslwr_s";
+ case 0x0559: return "_wcslwr_s_l";
+ case 0x055a: return "_wcsncoll";
+ case 0x055b: return "_wcsncoll_l";
+ case 0x055c: return "_wcsnicmp";
+ case 0x055d: return "_wcsnicmp_l";
+ case 0x055e: return "_wcsnicoll";
+ case 0x055f: return "_wcsnicoll_l";
+ case 0x0560: return "_wcsnset";
+ case 0x0561: return "_wcsnset_s";
+ case 0x0562: return "_wcsrev";
+ case 0x0563: return "_wcsset";
+ case 0x0564: return "_wcsset_s";
+ case 0x0565: return "_wcstod_l";
+ case 0x0566: return "_wcstof_l";
+ case 0x0567: return "_wcstoi64";
+ case 0x0568: return "_wcstoi64_l";
+ case 0x0569: return "_wcstoimax_l";
+ case 0x056a: return "_wcstol_l";
+ case 0x056b: return "_wcstold_l";
+ case 0x056c: return "_wcstoll_l";
+ case 0x056d: return "_wcstombs_l";
+ case 0x056e: return "_wcstombs_s_l";
+ case 0x056f: return "_wcstoui64";
+ case 0x0570: return "_wcstoui64_l";
+ case 0x0571: return "_wcstoul_l";
+ case 0x0572: return "_wcstoull_l";
+ case 0x0573: return "_wcstoumax_l";
+ case 0x0574: return "_wcsupr";
+ case 0x0575: return "_wcsupr_l";
+ case 0x0576: return "_wcsupr_s";
+ case 0x0577: return "_wcsupr_s_l";
+ case 0x0578: return "_wcsxfrm_l";
+ case 0x0579: return "_wctime32";
+ case 0x057a: return "_wctime32_s";
+ case 0x057b: return "_wctime64";
+ case 0x057c: return "_wctime64_s";
+ case 0x057d: return "_wctomb_l";
+ case 0x057e: return "_wctomb_s_l";
+ case 0x057f: return "_wctype";
+ case 0x0580: return "_wdupenv_s";
+ case 0x0581: return "_wenviron";
+ case 0x0582: return "_wexecl";
+ case 0x0583: return "_wexecle";
+ case 0x0584: return "_wexeclp";
+ case 0x0585: return "_wexeclpe";
+ case 0x0586: return "_wexecv";
+ case 0x0587: return "_wexecve";
+ case 0x0588: return "_wexecvp";
+ case 0x0589: return "_wexecvpe";
+ case 0x058a: return "_wfdopen";
+ case 0x058b: return "_wfindfirst32";
+ case 0x058c: return "_wfindfirst32i64";
+ case 0x058d: return "_wfindfirst64";
+ case 0x058e: return "_wfindfirst64i32";
+ case 0x058f: return "_wfindnext32";
+ case 0x0590: return "_wfindnext32i64";
+ case 0x0591: return "_wfindnext64";
+ case 0x0592: return "_wfindnext64i32";
+ case 0x0593: return "_wfopen";
+ case 0x0594: return "_wfopen_s";
+ case 0x0595: return "_wfreopen";
+ case 0x0596: return "_wfreopen_s";
+ case 0x0597: return "_wfsopen";
+ case 0x0598: return "_wfullpath";
+ case 0x0599: return "_wgetcwd";
+ case 0x059a: return "_wgetdcwd";
+ case 0x059b: return "_wgetenv";
+ case 0x059c: return "_wgetenv_s";
+ case 0x059d: return "_wmakepath";
+ case 0x059e: return "_wmakepath_s";
+ case 0x059f: return "_wmkdir";
+ case 0x05a0: return "_wmktemp";
+ case 0x05a1: return "_wmktemp_s";
+ case 0x05a2: return "_wopen";
+ case 0x05a3: return "_wperror";
+ case 0x05a4: return "_wpgmptr";
+ case 0x05a5: return "_wpopen";
+ case 0x05a6: return "_wprintf_l";
+ case 0x05a7: return "_wprintf_p";
+ case 0x05a8: return "_wprintf_p_l";
+ case 0x05a9: return "_wprintf_s_l";
+ case 0x05aa: return "_wputenv";
+ case 0x05ab: return "_wputenv_s";
+ case 0x05ac: return "_wremove";
+ case 0x05ad: return "_wrename";
+ case 0x05ae: return "_write";
+ case 0x05af: return "_wrmdir";
+ case 0x05b0: return "_wscanf_l";
+ case 0x05b1: return "_wscanf_s_l";
+ case 0x05b2: return "_wsearchenv";
+ case 0x05b3: return "_wsearchenv_s";
+ case 0x05b4: return "_wsetlocale";
+ case 0x05b5: return "_wsopen";
+ case 0x05b6: return "_wsopen_s";
+ case 0x05b7: return "_wspawnl";
+ case 0x05b8: return "_wspawnle";
+ case 0x05b9: return "_wspawnlp";
+ case 0x05ba: return "_wspawnlpe";
+ case 0x05bb: return "_wspawnv";
+ case 0x05bc: return "_wspawnve";
+ case 0x05bd: return "_wspawnvp";
+ case 0x05be: return "_wspawnvpe";
+ case 0x05bf: return "_wsplitpath";
+ case 0x05c0: return "_wsplitpath_s";
+ case 0x05c1: return "_wstat32";
+ case 0x05c2: return "_wstat32i64";
+ case 0x05c3: return "_wstat64";
+ case 0x05c4: return "_wstat64i32";
+ case 0x05c5: return "_wstrdate";
+ case 0x05c6: return "_wstrdate_s";
+ case 0x05c7: return "_wstrtime";
+ case 0x05c8: return "_wstrtime_s";
+ case 0x05c9: return "_wsystem";
+ case 0x05ca: return "_wtempnam";
+ case 0x05cb: return "_wtmpnam";
+ case 0x05cc: return "_wtmpnam_s";
+ case 0x05cd: return "_wtof";
+ case 0x05ce: return "_wtof_l";
+ case 0x05cf: return "_wtoi";
+ case 0x05d0: return "_wtoi64";
+ case 0x05d1: return "_wtoi64_l";
+ case 0x05d2: return "_wtoi_l";
+ case 0x05d3: return "_wtol";
+ case 0x05d4: return "_wtol_l";
+ case 0x05d5: return "_wtoll";
+ case 0x05d6: return "_wtoll_l";
+ case 0x05d7: return "_wunlink";
+ case 0x05d8: return "_wutime32";
+ case 0x05d9: return "_wutime64";
+ case 0x05da: return "_y0";
+ case 0x05db: return "_y1";
+ case 0x05dc: return "_yn";
+ case 0x05dd: return "abort";
+ case 0x05de: return "abs";
+ case 0x05df: return "acos";
+ case 0x05e0: return "acosh";
+ case 0x05e1: return "acoshf";
+ case 0x05e2: return "acoshl";
+ case 0x05e3: return "asctime";
+ case 0x05e4: return "asctime_s";
+ case 0x05e5: return "asin";
+ case 0x05e6: return "asinh";
+ case 0x05e7: return "asinhf";
+ case 0x05e8: return "asinhl";
+ case 0x05e9: return "atan";
+ case 0x05ea: return "atan2";
+ case 0x05eb: return "atanh";
+ case 0x05ec: return "atanhf";
+ case 0x05ed: return "atanhl";
+ case 0x05ee: return "atexit";
+ case 0x05ef: return "atof";
+ case 0x05f0: return "atoi";
+ case 0x05f1: return "atol";
+ case 0x05f2: return "atoll";
+ case 0x05f3: return "bsearch";
+ case 0x05f4: return "bsearch_s";
+ case 0x05f5: return "btowc";
+ case 0x05f6: return "cabs";
+ case 0x05f7: return "cabsf";
+ case 0x05f8: return "cabsl";
+ case 0x05f9: return "cacos";
+ case 0x05fa: return "cacosf";
+ case 0x05fb: return "cacosh";
+ case 0x05fc: return "cacoshf";
+ case 0x05fd: return "cacoshl";
+ case 0x05fe: return "cacosl";
+ case 0x05ff: return "calloc";
+ case 0x0600: return "carg";
+ case 0x0601: return "cargf";
+ case 0x0602: return "cargl";
+ case 0x0603: return "casin";
+ case 0x0604: return "casinf";
+ case 0x0605: return "casinh";
+ case 0x0606: return "casinhf";
+ case 0x0607: return "casinhl";
+ case 0x0608: return "casinl";
+ case 0x0609: return "catan";
+ case 0x060a: return "catanf";
+ case 0x060b: return "catanh";
+ case 0x060c: return "catanhf";
+ case 0x060d: return "catanhl";
+ case 0x060e: return "catanl";
+ case 0x060f: return "cbrt";
+ case 0x0610: return "cbrtf";
+ case 0x0611: return "cbrtl";
+ case 0x0612: return "ccos";
+ case 0x0613: return "ccosf";
+ case 0x0614: return "ccosh";
+ case 0x0615: return "ccoshf";
+ case 0x0616: return "ccoshl";
+ case 0x0617: return "ccosl";
+ case 0x0618: return "ceil";
+ case 0x0619: return "cexp";
+ case 0x061a: return "cexpf";
+ case 0x061b: return "cexpl";
+ case 0x061c: return "cimag";
+ case 0x061d: return "cimagf";
+ case 0x061e: return "cimagl";
+ case 0x061f: return "clearerr";
+ case 0x0620: return "clearerr_s";
+ case 0x0621: return "clock";
+ case 0x0622: return "clog";
+ case 0x0623: return "clog10";
+ case 0x0624: return "clog10f";
+ case 0x0625: return "clog10l";
+ case 0x0626: return "clogf";
+ case 0x0627: return "clogl";
+ case 0x0628: return "conj";
+ case 0x0629: return "conjf";
+ case 0x062a: return "conjl";
+ case 0x062b: return "copysign";
+ case 0x062c: return "copysignf";
+ case 0x062d: return "copysignl";
+ case 0x062e: return "cos";
+ case 0x062f: return "cosh";
+ case 0x0630: return "cpow";
+ case 0x0631: return "cpowf";
+ case 0x0632: return "cpowl";
+ case 0x0633: return "cproj";
+ case 0x0634: return "cprojf";
+ case 0x0635: return "cprojl";
+ case 0x0636: return "creal";
+ case 0x0637: return "crealf";
+ case 0x0638: return "creall";
+ case 0x0639: return "csin";
+ case 0x063a: return "csinf";
+ case 0x063b: return "csinh";
+ case 0x063c: return "csinhf";
+ case 0x063d: return "csinhl";
+ case 0x063e: return "csinl";
+ case 0x063f: return "csqrt";
+ case 0x0640: return "csqrtf";
+ case 0x0641: return "csqrtl";
+ case 0x0642: return "ctan";
+ case 0x0643: return "ctanf";
+ case 0x0644: return "ctanh";
+ case 0x0645: return "ctanhf";
+ case 0x0646: return "ctanhl";
+ case 0x0647: return "ctanl";
+ case 0x0648: return "div";
+ case 0x0649: return "erf";
+ case 0x064a: return "erfc";
+ case 0x064b: return "erfcf";
+ case 0x064c: return "erfcl";
+ case 0x064d: return "erff";
+ case 0x064e: return "erfl";
+ case 0x064f: return "exit";
+ case 0x0650: return "exp";
+ case 0x0651: return "exp2";
+ case 0x0652: return "exp2f";
+ case 0x0653: return "exp2l";
+ case 0x0654: return "expm1";
+ case 0x0655: return "expm1f";
+ case 0x0656: return "expm1l";
+ case 0x0657: return "fabs";
+ case 0x0658: return "fclose";
+ case 0x0659: return "fdim";
+ case 0x065a: return "fdimf";
+ case 0x065b: return "fdiml";
+ case 0x065c: return "feclearexcept";
+ case 0x065d: return "fegetenv";
+ case 0x065e: return "fegetexceptflag";
+ case 0x065f: return "fegetround";
+ case 0x0660: return "feholdexcept";
+ case 0x0661: return "feof";
+ case 0x0662: return "feraiseexcept";
+ case 0x0663: return "ferror";
+ case 0x0664: return "fesetenv";
+ case 0x0665: return "fesetexceptflag";
+ case 0x0666: return "fesetround";
+ case 0x0667: return "fetestexcept";
+ case 0x0668: return "feupdateenv";
+ case 0x0669: return "fflush";
+ case 0x066a: return "fgetc";
+ case 0x066b: return "fgetpos";
+ case 0x066c: return "fgets";
+ case 0x066d: return "fgetwc";
+ case 0x066e: return "fgetws";
+ case 0x066f: return "floor";
+ case 0x0670: return "fma";
+ case 0x0671: return "fmaf";
+ case 0x0672: return "fmal";
+ case 0x0673: return "fmax";
+ case 0x0674: return "fmaxf";
+ case 0x0675: return "fmaxl";
+ case 0x0676: return "fmin";
+ case 0x0677: return "fminf";
+ case 0x0678: return "fminl";
+ case 0x0679: return "fmod";
+ case 0x067a: return "fopen";
+ case 0x067b: return "fopen_s";
+ case 0x067c: return "fprintf";
+ case 0x067d: return "fprintf_s";
+ case 0x067e: return "fputc";
+ case 0x067f: return "fputs";
+ case 0x0680: return "fputwc";
+ case 0x0681: return "fputws";
+ case 0x0682: return "fread";
+ case 0x0683: return "fread_s";
+ case 0x0684: return "free";
+ case 0x0685: return "freopen";
+ case 0x0686: return "freopen_s";
+ case 0x0687: return "frexp";
+ case 0x0688: return "fscanf";
+ case 0x0689: return "fscanf_s";
+ case 0x068a: return "fseek";
+ case 0x068b: return "fsetpos";
+ case 0x068c: return "ftell";
+ case 0x068d: return "fwprintf";
+ case 0x068e: return "fwprintf_s";
+ case 0x068f: return "fwrite";
+ case 0x0690: return "fwscanf";
+ case 0x0691: return "fwscanf_s";
+ case 0x0692: return "getc";
+ case 0x0693: return "getchar";
+ case 0x0694: return "getenv";
+ case 0x0695: return "getenv_s";
+ case 0x0696: return "gets";
+ case 0x0697: return "gets_s";
+ case 0x0698: return "getwc";
+ case 0x0699: return "getwchar";
+ case 0x069a: return "ilogb";
+ case 0x069b: return "ilogbf";
+ case 0x069c: return "ilogbl";
+ case 0x069d: return "imaxabs";
+ case 0x069e: return "imaxdiv";
+ case 0x069f: return "is_wctype";
+ case 0x06a0: return "isalnum";
+ case 0x06a1: return "isalpha";
+ case 0x06a2: return "isblank";
+ case 0x06a3: return "iscntrl";
+ case 0x06a4: return "isdigit";
+ case 0x06a5: return "isgraph";
+ case 0x06a6: return "isleadbyte";
+ case 0x06a7: return "islower";
+ case 0x06a8: return "isprint";
+ case 0x06a9: return "ispunct";
+ case 0x06aa: return "isspace";
+ case 0x06ab: return "isupper";
+ case 0x06ac: return "iswalnum";
+ case 0x06ad: return "iswalpha";
+ case 0x06ae: return "iswascii";
+ case 0x06af: return "iswblank";
+ case 0x06b0: return "iswcntrl";
+ case 0x06b1: return "iswctype";
+ case 0x06b2: return "iswdigit";
+ case 0x06b3: return "iswgraph";
+ case 0x06b4: return "iswlower";
+ case 0x06b5: return "iswprint";
+ case 0x06b6: return "iswpunct";
+ case 0x06b7: return "iswspace";
+ case 0x06b8: return "iswupper";
+ case 0x06b9: return "iswxdigit";
+ case 0x06ba: return "isxdigit";
+ case 0x06bb: return "labs";
+ case 0x06bc: return "ldexp";
+ case 0x06bd: return "ldiv";
+ case 0x06be: return "lgamma";
+ case 0x06bf: return "lgammaf";
+ case 0x06c0: return "lgammal";
+ case 0x06c1: return "llabs";
+ case 0x06c2: return "lldiv";
+ case 0x06c3: return "llrint";
+ case 0x06c4: return "llrintf";
+ case 0x06c5: return "llrintl";
+ case 0x06c6: return "llround";
+ case 0x06c7: return "llroundf";
+ case 0x06c8: return "llroundl";
+ case 0x06c9: return "localeconv";
+ case 0x06ca: return "log";
+ case 0x06cb: return "log10";
+ case 0x06cc: return "log1p";
+ case 0x06cd: return "log1pf";
+ case 0x06ce: return "log1pl";
+ case 0x06cf: return "log2";
+ case 0x06d0: return "log2f";
+ case 0x06d1: return "log2l";
+ case 0x06d2: return "logb";
+ case 0x06d3: return "logbf";
+ case 0x06d4: return "logbl";
+ case 0x06d5: return "longjmp";
+ case 0x06d6: return "lrint";
+ case 0x06d7: return "lrintf";
+ case 0x06d8: return "lrintl";
+ case 0x06d9: return "lround";
+ case 0x06da: return "lroundf";
+ case 0x06db: return "lroundl";
+ case 0x06dc: return "malloc";
+ case 0x06dd: return "mblen";
+ case 0x06de: return "mbrlen";
+ case 0x06df: return "mbrtowc";
+ case 0x06e0: return "mbsrtowcs";
+ case 0x06e1: return "mbsrtowcs_s";
+ case 0x06e2: return "mbstowcs";
+ case 0x06e3: return "mbstowcs_s";
+ case 0x06e4: return "mbtowc";
+ case 0x06e5: return "memchr";
+ case 0x06e6: return "memcmp";
+ case 0x06e7: return "memcpy";
+ case 0x06e8: return "memcpy_s";
+ case 0x06e9: return "memmove";
+ case 0x06ea: return "memmove_s";
+ case 0x06eb: return "memset";
+ case 0x06ec: return "modf";
+ case 0x06ed: return "nan";
+ case 0x06ee: return "nanf";
+ case 0x06ef: return "nanl";
+ case 0x06f0: return "nearbyint";
+ case 0x06f1: return "nearbyintf";
+ case 0x06f2: return "nearbyintl";
+ case 0x06f3: return "nextafter";
+ case 0x06f4: return "nextafterf";
+ case 0x06f5: return "nextafterl";
+ case 0x06f6: return "nexttoward";
+ case 0x06f7: return "nexttowardf";
+ case 0x06f8: return "nexttowardl";
+ case 0x06f9: return "norm";
+ case 0x06fa: return "normf";
+ case 0x06fb: return "norml";
+ case 0x06fc: return "perror";
+ case 0x06fd: return "pow";
+ case 0x06fe: return "printf";
+ case 0x06ff: return "printf_s";
+ case 0x0700: return "putc";
+ case 0x0701: return "putchar";
+ case 0x0702: return "puts";
+ case 0x0703: return "putwc";
+ case 0x0704: return "putwchar";
+ case 0x0705: return "qsort";
+ case 0x0706: return "qsort_s";
+ case 0x0707: return "raise";
+ case 0x0708: return "rand";
+ case 0x0709: return "rand_s";
+ case 0x070a: return "realloc";
+ case 0x070b: return "remainder";
+ case 0x070c: return "remainderf";
+ case 0x070d: return "remainderl";
+ case 0x070e: return "remove";
+ case 0x070f: return "remquo";
+ case 0x0710: return "remquof";
+ case 0x0711: return "remquol";
+ case 0x0712: return "rename";
+ case 0x0713: return "rewind";
+ case 0x0714: return "rint";
+ case 0x0715: return "rintf";
+ case 0x0716: return "rintl";
+ case 0x0717: return "round";
+ case 0x0718: return "roundf";
+ case 0x0719: return "roundl";
+ case 0x071a: return "scalbln";
+ case 0x071b: return "scalblnf";
+ case 0x071c: return "scalblnl";
+ case 0x071d: return "scalbn";
+ case 0x071e: return "scalbnf";
+ case 0x071f: return "scalbnl";
+ case 0x0720: return "scanf";
+ case 0x0721: return "scanf_s";
+ case 0x0722: return "setbuf";
+ case 0x0723: return "setlocale";
+ case 0x0724: return "setvbuf";
+ case 0x0725: return "signal";
+ case 0x0726: return "sin";
+ case 0x0727: return "sinh";
+ case 0x0728: return "sprintf";
+ case 0x0729: return "sprintf_s";
+ case 0x072a: return "sqrt";
+ case 0x072b: return "srand";
+ case 0x072c: return "sscanf";
+ case 0x072d: return "sscanf_s";
+ case 0x072e: return "strcat";
+ case 0x072f: return "strcat_s";
+ case 0x0730: return "strchr";
+ case 0x0731: return "strcmp";
+ case 0x0732: return "strcoll";
+ case 0x0733: return "strcpy";
+ case 0x0734: return "strcpy_s";
+ case 0x0735: return "strcspn";
+ case 0x0736: return "strerror";
+ case 0x0737: return "strerror_s";
+ case 0x0738: return "strftime";
+ case 0x0739: return "strlen";
+ case 0x073a: return "strncat";
+ case 0x073b: return "strncat_s";
+ case 0x073c: return "strncmp";
+ case 0x073d: return "strncpy";
+ case 0x073e: return "strncpy_s";
+ case 0x073f: return "strnlen";
+ case 0x0740: return "strpbrk";
+ case 0x0741: return "strrchr";
+ case 0x0742: return "strspn";
+ case 0x0743: return "strstr";
+ case 0x0744: return "strtod";
+ case 0x0745: return "strtof";
+ case 0x0746: return "strtoimax";
+ case 0x0747: return "strtok";
+ case 0x0748: return "strtok_s";
+ case 0x0749: return "strtol";
+ case 0x074a: return "strtold";
+ case 0x074b: return "strtoll";
+ case 0x074c: return "strtoul";
+ case 0x074d: return "strtoull";
+ case 0x074e: return "strtoumax";
+ case 0x074f: return "strxfrm";
+ case 0x0750: return "swprintf_s";
+ case 0x0751: return "swscanf";
+ case 0x0752: return "swscanf_s";
+ case 0x0753: return "system";
+ case 0x0754: return "tan";
+ case 0x0755: return "tanh";
+ case 0x0756: return "tgamma";
+ case 0x0757: return "tgammaf";
+ case 0x0758: return "tgammal";
+ case 0x0759: return "tmpfile";
+ case 0x075a: return "tmpfile_s";
+ case 0x075b: return "tmpnam";
+ case 0x075c: return "tmpnam_s";
+ case 0x075d: return "tolower";
+ case 0x075e: return "toupper";
+ case 0x075f: return "towctrans";
+ case 0x0760: return "towlower";
+ case 0x0761: return "towupper";
+ case 0x0762: return "trunc";
+ case 0x0763: return "truncf";
+ case 0x0764: return "truncl";
+ case 0x0765: return "ungetc";
+ case 0x0766: return "ungetwc";
+ case 0x0767: return "vfprintf";
+ case 0x0768: return "vfprintf_s";
+ case 0x0769: return "vfscanf";
+ case 0x076a: return "vfscanf_s";
+ case 0x076b: return "vfwprintf";
+ case 0x076c: return "vfwprintf_s";
+ case 0x076d: return "vfwscanf";
+ case 0x076e: return "vfwscanf_s";
+ case 0x076f: return "vprintf";
+ case 0x0770: return "vprintf_s";
+ case 0x0771: return "vscanf";
+ case 0x0772: return "vscanf_s";
+ case 0x0773: return "vsprintf";
+ case 0x0774: return "vsprintf_s";
+ case 0x0775: return "vsscanf";
+ case 0x0776: return "vsscanf_s";
+ case 0x0777: return "vswprintf_s";
+ case 0x0778: return "vswscanf";
+ case 0x0779: return "vswscanf_s";
+ case 0x077a: return "vwprintf";
+ case 0x077b: return "vwprintf_s";
+ case 0x077c: return "vwscanf";
+ case 0x077d: return "vwscanf_s";
+ case 0x077e: return "wcrtomb";
+ case 0x077f: return "wcrtomb_s";
+ case 0x0780: return "wcscat";
+ case 0x0781: return "wcscat_s";
+ case 0x0782: return "wcschr";
+ case 0x0783: return "wcscmp";
+ case 0x0784: return "wcscoll";
+ case 0x0785: return "wcscpy";
+ case 0x0786: return "wcscpy_s";
+ case 0x0787: return "wcscspn";
+ case 0x0788: return "wcsftime";
+ case 0x0789: return "wcslen";
+ case 0x078a: return "wcsncat";
+ case 0x078b: return "wcsncat_s";
+ case 0x078c: return "wcsncmp";
+ case 0x078d: return "wcsncpy";
+ case 0x078e: return "wcsncpy_s";
+ case 0x078f: return "wcsnlen";
+ case 0x0790: return "wcspbrk";
+ case 0x0791: return "wcsrchr";
+ case 0x0792: return "wcsrtombs";
+ case 0x0793: return "wcsrtombs_s";
+ case 0x0794: return "wcsspn";
+ case 0x0795: return "wcsstr";
+ case 0x0796: return "wcstod";
+ case 0x0797: return "wcstof";
+ case 0x0798: return "wcstoimax";
+ case 0x0799: return "wcstok";
+ case 0x079a: return "wcstok_s";
+ case 0x079b: return "wcstol";
+ case 0x079c: return "wcstold";
+ case 0x079d: return "wcstoll";
+ case 0x079e: return "wcstombs";
+ case 0x079f: return "wcstombs_s";
+ case 0x07a0: return "wcstoul";
+ case 0x07a1: return "wcstoull";
+ case 0x07a2: return "wcstoumax";
+ case 0x07a3: return "wcsxfrm";
+ case 0x07a4: return "wctob";
+ case 0x07a5: return "wctomb";
+ case 0x07a6: return "wctomb_s";
+ case 0x07a7: return "wctrans";
+ case 0x07a8: return "wctype";
+ case 0x07a9: return "wmemcpy_s";
+ case 0x07aa: return "wmemmove_s";
+ case 0x07ab: return "wprintf";
+ case 0x07ac: return "wprintf_s";
+ case 0x07ad: return "wscanf";
+ case 0x07ae: return "wscanf_s";
}
return nullptr;
}
-}
}
-#endif
+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcrt_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcrt_dll_lookup.hpp
index fae662f5751..6584d511b83 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcrt_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/msvcrt_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,848 +17,848 @@
#define LIEF_PE_MSVCRT_DLL_LOOKUP_H
#include <cstdint>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
inline const char* msvcrt_dll_lookup(uint32_t i) {
- switch(i) {
- case 0x0038: return "$I10_OUTPUT";
- case 0x0001: return "??0__non_rtti_object@@QAE@ABV0@@Z";
- case 0x0002: return "??0__non_rtti_object@@QAE@PBD@Z";
- case 0x0003: return "??0bad_cast@@AAE@PBQBD@Z";
- case 0x0004: return "??0bad_cast@@QAE@ABQBD@Z";
- case 0x0005: return "??0bad_cast@@QAE@ABV0@@Z";
- case 0x0006: return "??0bad_cast@@QAE@PBD@Z";
- case 0x0007: return "??0bad_typeid@@QAE@ABV0@@Z";
- case 0x0008: return "??0bad_typeid@@QAE@PBD@Z";
- case 0x0009: return "??0exception@@QAE@ABQBD@Z";
- case 0x000a: return "??0exception@@QAE@ABV0@@Z";
- case 0x000b: return "??0exception@@QAE@XZ";
- case 0x000c: return "??1__non_rtti_object@@UAE@XZ";
- case 0x000d: return "??1bad_cast@@UAE@XZ";
- case 0x000e: return "??1bad_typeid@@UAE@XZ";
- case 0x000f: return "??1exception@@UAE@XZ";
- case 0x0010: return "??1type_info@@UAE@XZ";
- case 0x0011: return "??2@YAPAXI@Z";
- case 0x0012: return "??3@YAXPAX@Z";
- case 0x0013: return "??4__non_rtti_object@@QAEAAV0@ABV0@@Z";
- case 0x0014: return "??4bad_cast@@QAEAAV0@ABV0@@Z";
- case 0x0015: return "??4bad_typeid@@QAEAAV0@ABV0@@Z";
- case 0x0016: return "??4exception@@QAEAAV0@ABV0@@Z";
- case 0x0017: return "??8type_info@@QBEHABV0@@Z";
- case 0x0018: return "??9type_info@@QBEHABV0@@Z";
- case 0x0019: return "??_7__non_rtti_object@@6B@";
- case 0x001a: return "??_7bad_cast@@6B@";
- case 0x001b: return "??_7bad_typeid@@6B@";
- case 0x001c: return "??_7exception@@6B@";
- case 0x001d: return "??_E__non_rtti_object@@UAEPAXI@Z";
- case 0x001e: return "??_Ebad_cast@@UAEPAXI@Z";
- case 0x001f: return "??_Ebad_typeid@@UAEPAXI@Z";
- case 0x0020: return "??_Eexception@@UAEPAXI@Z";
- case 0x0021: return "??_Fbad_cast@@QAEXXZ";
- case 0x0022: return "??_Fbad_typeid@@QAEXXZ";
- case 0x0023: return "??_G__non_rtti_object@@UAEPAXI@Z";
- case 0x0024: return "??_Gbad_cast@@UAEPAXI@Z";
- case 0x0025: return "??_Gbad_typeid@@UAEPAXI@Z";
- case 0x0026: return "??_Gexception@@UAEPAXI@Z";
- case 0x0027: return "??_U@YAPAXI@Z";
- case 0x0028: return "??_V@YAXPAX@Z";
- case 0x002a: return "?_query_new_handler@@YAP6AHI@ZXZ";
- case 0x002b: return "?_query_new_mode@@YAHXZ";
- case 0x002c: return "?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z";
- case 0x002d: return "?_set_new_mode@@YAHH@Z";
- case 0x002e: return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z";
- case 0x002f: return "?before@type_info@@QBEHABV1@@Z";
- case 0x0030: return "?name@type_info@@QBEPBDXZ";
- case 0x0031: return "?raw_name@type_info@@QBEPBDXZ";
- case 0x0032: return "?set_new_handler@@YAP6AXXZP6AXXZ@Z";
- case 0x0033: return "?set_terminate@@YAP6AXXZP6AXXZ@Z";
- case 0x0034: return "?set_unexpected@@YAP6AXXZP6AXXZ@Z";
- case 0x0035: return "?terminate@@YAXXZ";
- case 0x0036: return "?unexpected@@YAXXZ";
- case 0x0037: return "?what@exception@@UBEPBDXZ";
- case 0x0039: return "_CIacos";
- case 0x003a: return "_CIasin";
- case 0x003b: return "_CIatan";
- case 0x003c: return "_CIatan2";
- case 0x003d: return "_CIcos";
- case 0x003e: return "_CIcosh";
- case 0x003f: return "_CIexp";
- case 0x0040: return "_CIfmod";
- case 0x0041: return "_CIlog";
- case 0x0042: return "_CIlog10";
- case 0x0043: return "_CIpow";
- case 0x0044: return "_CIsin";
- case 0x0045: return "_CIsinh";
- case 0x0046: return "_CIsqrt";
- case 0x0047: return "_CItan";
- case 0x0048: return "_CItanh";
- case 0x0049: return "_CxxThrowException";
- case 0x004a: return "_EH_prolog";
- case 0x004b: return "_Getdays";
- case 0x004c: return "_Getmonths";
- case 0x004d: return "_Gettnames";
- case 0x004e: return "_HUGE";
- case 0x004f: return "_Strftime";
- case 0x0050: return "_XcptFilter";
- case 0x0051: return "__CxxCallUnwindDtor";
- case 0x0052: return "__CxxDetectRethrow";
- case 0x0053: return "__CxxExceptionFilter";
- case 0x0054: return "__CxxFrameHandler";
- case 0x0055: return "__CxxLongjmpUnwind";
- case 0x0056: return "__CxxQueryExceptionSize";
- case 0x0057: return "__CxxRegisterExceptionObject";
- case 0x0058: return "__CxxUnregisterExceptionObject";
- case 0x0059: return "__DestructExceptionObject";
- case 0x005a: return "__RTCastToVoid";
- case 0x005b: return "__RTDynamicCast";
- case 0x005c: return "__RTtypeid";
- case 0x005d: return "__STRINGTOLD";
- case 0x005e: return "___lc_codepage_func";
- case 0x005f: return "___lc_handle_func";
- case 0x0060: return "___mb_cur_max_func";
- case 0x0061: return "___setlc_active_func";
- case 0x0062: return "___unguarded_readlc_active_add_func";
- case 0x0063: return "__argc";
- case 0x0064: return "__argv";
- case 0x0065: return "__badioinfo";
- case 0x0066: return "__crtCompareStringA";
- case 0x0067: return "__crtCompareStringW";
- case 0x0068: return "__crtGetLocaleInfoW";
- case 0x0069: return "__crtGetStringTypeW";
- case 0x006a: return "__crtLCMapStringA";
- case 0x006b: return "__crtLCMapStringW";
- case 0x006c: return "__dllonexit";
- case 0x006d: return "__doserrno";
- case 0x006e: return "__fpecode";
- case 0x006f: return "__getmainargs";
- case 0x0070: return "__initenv";
- case 0x0071: return "__iob_func";
- case 0x0072: return "__isascii";
- case 0x0073: return "__iscsym";
- case 0x0074: return "__iscsymf";
- case 0x0075: return "__lc_codepage";
- case 0x0076: return "__lc_collate_cp";
- case 0x0077: return "__lc_handle";
- case 0x0078: return "__lconv_init";
- case 0x0079: return "__mb_cur_max";
- case 0x007a: return "__p___argc";
- case 0x007b: return "__p___argv";
- case 0x007c: return "__p___initenv";
- case 0x007d: return "__p___mb_cur_max";
- case 0x007e: return "__p___wargv";
- case 0x007f: return "__p___winitenv";
- case 0x0080: return "__p__acmdln";
- case 0x0081: return "__p__amblksiz";
- case 0x0082: return "__p__commode";
- case 0x0083: return "__p__daylight";
- case 0x0084: return "__p__dstbias";
- case 0x0085: return "__p__environ";
- case 0x0086: return "__p__fileinfo";
- case 0x0087: return "__p__fmode";
- case 0x0088: return "__p__iob";
- case 0x0089: return "__p__mbcasemap";
- case 0x008a: return "__p__mbctype";
- case 0x008b: return "__p__osver";
- case 0x008c: return "__p__pctype";
- case 0x008d: return "__p__pgmptr";
- case 0x008e: return "__p__pwctype";
- case 0x008f: return "__p__timezone";
- case 0x0090: return "__p__tzname";
- case 0x0091: return "__p__wcmdln";
- case 0x0092: return "__p__wenviron";
- case 0x0093: return "__p__winmajor";
- case 0x0094: return "__p__winminor";
- case 0x0095: return "__p__winver";
- case 0x0096: return "__p__wpgmptr";
- case 0x0097: return "__pctype_func";
- case 0x0098: return "__pioinfo";
- case 0x0099: return "__pxcptinfoptrs";
- case 0x009a: return "__set_app_type";
- case 0x009b: return "__setlc_active";
- case 0x009c: return "__setusermatherr";
- case 0x009d: return "__threadhandle";
- case 0x009e: return "__threadid";
- case 0x009f: return "__toascii";
- case 0x00a0: return "__unDName";
- case 0x00a1: return "__unDNameEx";
- case 0x0029: return "__uncaught_exception";
- case 0x00a2: return "__unguarded_readlc_active";
- case 0x00a3: return "__wargv";
- case 0x00a4: return "__wcserror";
- case 0x00a5: return "__wgetmainargs";
- case 0x00a6: return "__winitenv";
- case 0x00a7: return "_abnormal_termination";
- case 0x00a8: return "_access";
- case 0x00a9: return "_acmdln";
- case 0x00aa: return "_adj_fdiv_m16i";
- case 0x00ab: return "_adj_fdiv_m32";
- case 0x00ac: return "_adj_fdiv_m32i";
- case 0x00ad: return "_adj_fdiv_m64";
- case 0x00ae: return "_adj_fdiv_r";
- case 0x00af: return "_adj_fdivr_m16i";
- case 0x00b0: return "_adj_fdivr_m32";
- case 0x00b1: return "_adj_fdivr_m32i";
- case 0x00b2: return "_adj_fdivr_m64";
- case 0x00b3: return "_adj_fpatan";
- case 0x00b4: return "_adj_fprem";
- case 0x00b5: return "_adj_fprem1";
- case 0x00b6: return "_adj_fptan";
- case 0x00b7: return "_adjust_fdiv";
- case 0x00b8: return "_aexit_rtn";
- case 0x00b9: return "_aligned_free";
- case 0x00ba: return "_aligned_malloc";
- case 0x00bb: return "_aligned_offset_malloc";
- case 0x00bc: return "_aligned_offset_realloc";
- case 0x00bd: return "_aligned_realloc";
- case 0x00be: return "_amsg_exit";
- case 0x00bf: return "_assert";
- case 0x00c0: return "_atodbl";
- case 0x00c1: return "_atoi64";
- case 0x00c2: return "_atoldbl";
- case 0x00c3: return "_beep";
- case 0x00c4: return "_beginthread";
- case 0x00c5: return "_beginthreadex";
- case 0x00c6: return "_c_exit";
- case 0x00c7: return "_cabs";
- case 0x00c8: return "_callnewh";
- case 0x00c9: return "_cexit";
- case 0x00ca: return "_cgets";
- case 0x00cb: return "_cgetws";
- case 0x00cc: return "_chdir";
- case 0x00cd: return "_chdrive";
- case 0x00ce: return "_chgsign";
- case 0x00cf: return "_chkesp";
- case 0x00d0: return "_chmod";
- case 0x00d1: return "_chsize";
- case 0x00d2: return "_clearfp";
- case 0x00d3: return "_close";
- case 0x00d4: return "_commit";
- case 0x00d5: return "_commode";
- case 0x00d6: return "_control87";
- case 0x00d7: return "_controlfp";
- case 0x00d8: return "_copysign";
- case 0x00d9: return "_cprintf";
- case 0x00da: return "_cputs";
- case 0x00db: return "_cputws";
- case 0x00dc: return "_creat";
- case 0x00dd: return "_cscanf";
- case 0x00de: return "_ctime64";
- case 0x00df: return "_ctype";
- case 0x00e0: return "_cwait";
- case 0x00e1: return "_cwprintf";
- case 0x00e2: return "_cwscanf";
- case 0x00e3: return "_daylight";
- case 0x00e4: return "_dstbias";
- case 0x00e5: return "_dup";
- case 0x00e6: return "_dup2";
- case 0x00e7: return "_ecvt";
- case 0x00e8: return "_endthread";
- case 0x00e9: return "_endthreadex";
- case 0x00ea: return "_environ";
- case 0x00eb: return "_eof";
- case 0x00ec: return "_errno";
- case 0x00ed: return "_except_handler2";
- case 0x00ee: return "_except_handler3";
- case 0x00ef: return "_execl";
- case 0x00f0: return "_execle";
- case 0x00f1: return "_execlp";
- case 0x00f2: return "_execlpe";
- case 0x00f3: return "_execv";
- case 0x00f4: return "_execve";
- case 0x00f5: return "_execvp";
- case 0x00f6: return "_execvpe";
- case 0x00f7: return "_exit";
- case 0x00f8: return "_expand";
- case 0x00f9: return "_fcloseall";
- case 0x00fa: return "_fcvt";
- case 0x00fb: return "_fdopen";
- case 0x00fc: return "_fgetchar";
- case 0x00fd: return "_fgetwchar";
- case 0x00fe: return "_filbuf";
- case 0x00ff: return "_fileinfo";
- case 0x0100: return "_filelength";
- case 0x0101: return "_filelengthi64";
- case 0x0102: return "_fileno";
- case 0x0103: return "_findclose";
- case 0x0104: return "_findfirst";
- case 0x0105: return "_findfirst64";
- case 0x0106: return "_findfirsti64";
- case 0x0107: return "_findnext";
- case 0x0108: return "_findnext64";
- case 0x0109: return "_findnexti64";
- case 0x010a: return "_finite";
- case 0x010b: return "_flsbuf";
- case 0x010c: return "_flushall";
- case 0x010d: return "_fmode";
- case 0x010e: return "_fpclass";
- case 0x010f: return "_fpieee_flt";
- case 0x0110: return "_fpreset";
- case 0x0111: return "_fputchar";
- case 0x0112: return "_fputwchar";
- case 0x0113: return "_fsopen";
- case 0x0114: return "_fstat";
- case 0x0115: return "_fstat64";
- case 0x0116: return "_fstati64";
- case 0x0117: return "_ftime";
- case 0x0118: return "_ftime64";
- case 0x0119: return "_ftol";
- case 0x011a: return "_fullpath";
- case 0x011b: return "_futime";
- case 0x011c: return "_futime64";
- case 0x011d: return "_gcvt";
- case 0x011e: return "_get_heap_handle";
- case 0x011f: return "_get_osfhandle";
- case 0x0120: return "_get_sbh_threshold";
- case 0x0121: return "_getch";
- case 0x0122: return "_getche";
- case 0x0123: return "_getcwd";
- case 0x0124: return "_getdcwd";
- case 0x0125: return "_getdiskfree";
- case 0x0126: return "_getdllprocaddr";
- case 0x0127: return "_getdrive";
- case 0x0128: return "_getdrives";
- case 0x0129: return "_getmaxstdio";
- case 0x012a: return "_getmbcp";
- case 0x012b: return "_getpid";
- case 0x012c: return "_getsystime";
- case 0x012d: return "_getw";
- case 0x012e: return "_getwch";
- case 0x012f: return "_getwche";
- case 0x0130: return "_getws";
- case 0x0131: return "_global_unwind2";
- case 0x0132: return "_gmtime64";
- case 0x0133: return "_heapadd";
- case 0x0134: return "_heapchk";
- case 0x0135: return "_heapmin";
- case 0x0136: return "_heapset";
- case 0x0137: return "_heapused";
- case 0x0138: return "_heapwalk";
- case 0x0139: return "_hypot";
- case 0x013a: return "_i64toa";
- case 0x013b: return "_i64tow";
- case 0x013c: return "_initterm";
- case 0x013d: return "_inp";
- case 0x013e: return "_inpd";
- case 0x013f: return "_inpw";
- case 0x0140: return "_iob";
- case 0x0141: return "_isatty";
- case 0x0142: return "_isctype";
- case 0x0143: return "_ismbbalnum";
- case 0x0144: return "_ismbbalpha";
- case 0x0145: return "_ismbbgraph";
- case 0x0146: return "_ismbbkalnum";
- case 0x0147: return "_ismbbkana";
- case 0x0148: return "_ismbbkprint";
- case 0x0149: return "_ismbbkpunct";
- case 0x014a: return "_ismbblead";
- case 0x014b: return "_ismbbprint";
- case 0x014c: return "_ismbbpunct";
- case 0x014d: return "_ismbbtrail";
- case 0x014e: return "_ismbcalnum";
- case 0x014f: return "_ismbcalpha";
- case 0x0150: return "_ismbcdigit";
- case 0x0151: return "_ismbcgraph";
- case 0x0152: return "_ismbchira";
- case 0x0153: return "_ismbckata";
- case 0x0154: return "_ismbcl0";
- case 0x0155: return "_ismbcl1";
- case 0x0156: return "_ismbcl2";
- case 0x0157: return "_ismbclegal";
- case 0x0158: return "_ismbclower";
- case 0x0159: return "_ismbcprint";
- case 0x015a: return "_ismbcpunct";
- case 0x015b: return "_ismbcspace";
- case 0x015c: return "_ismbcsymbol";
- case 0x015d: return "_ismbcupper";
- case 0x015e: return "_ismbslead";
- case 0x015f: return "_ismbstrail";
- case 0x0160: return "_isnan";
- case 0x0161: return "_itoa";
- case 0x0162: return "_itow";
- case 0x0163: return "_j0";
- case 0x0164: return "_j1";
- case 0x0165: return "_jn";
- case 0x0166: return "_kbhit";
- case 0x0167: return "_lfind";
- case 0x0168: return "_loaddll";
- case 0x0169: return "_local_unwind2";
- case 0x016a: return "_localtime64";
- case 0x016b: return "_lock";
- case 0x016c: return "_locking";
- case 0x016d: return "_logb";
- case 0x016e: return "_longjmpex";
- case 0x016f: return "_lrotl";
- case 0x0170: return "_lrotr";
- case 0x0171: return "_lsearch";
- case 0x0172: return "_lseek";
- case 0x0173: return "_lseeki64";
- case 0x0174: return "_ltoa";
- case 0x0175: return "_ltow";
- case 0x0176: return "_makepath";
- case 0x0177: return "_mbbtombc";
- case 0x0178: return "_mbbtype";
- case 0x0179: return "_mbcasemap";
- case 0x017a: return "_mbccpy";
- case 0x017b: return "_mbcjistojms";
- case 0x017c: return "_mbcjmstojis";
- case 0x017d: return "_mbclen";
- case 0x017e: return "_mbctohira";
- case 0x017f: return "_mbctokata";
- case 0x0180: return "_mbctolower";
- case 0x0181: return "_mbctombb";
- case 0x0182: return "_mbctoupper";
- case 0x0183: return "_mbctype";
- case 0x0184: return "_mbsbtype";
- case 0x0185: return "_mbscat";
- case 0x0186: return "_mbschr";
- case 0x0187: return "_mbscmp";
- case 0x0188: return "_mbscoll";
- case 0x0189: return "_mbscpy";
- case 0x018a: return "_mbscspn";
- case 0x018b: return "_mbsdec";
- case 0x018c: return "_mbsdup";
- case 0x018d: return "_mbsicmp";
- case 0x018e: return "_mbsicoll";
- case 0x018f: return "_mbsinc";
- case 0x0190: return "_mbslen";
- case 0x0191: return "_mbslwr";
- case 0x0192: return "_mbsnbcat";
- case 0x0193: return "_mbsnbcmp";
- case 0x0194: return "_mbsnbcnt";
- case 0x0195: return "_mbsnbcoll";
- case 0x0196: return "_mbsnbcpy";
- case 0x0197: return "_mbsnbicmp";
- case 0x0198: return "_mbsnbicoll";
- case 0x0199: return "_mbsnbset";
- case 0x019a: return "_mbsncat";
- case 0x019b: return "_mbsnccnt";
- case 0x019c: return "_mbsncmp";
- case 0x019d: return "_mbsncoll";
- case 0x019e: return "_mbsncpy";
- case 0x019f: return "_mbsnextc";
- case 0x01a0: return "_mbsnicmp";
- case 0x01a1: return "_mbsnicoll";
- case 0x01a2: return "_mbsninc";
- case 0x01a3: return "_mbsnset";
- case 0x01a4: return "_mbspbrk";
- case 0x01a5: return "_mbsrchr";
- case 0x01a6: return "_mbsrev";
- case 0x01a7: return "_mbsset";
- case 0x01a8: return "_mbsspn";
- case 0x01a9: return "_mbsspnp";
- case 0x01aa: return "_mbsstr";
- case 0x01ab: return "_mbstok";
- case 0x01ac: return "_mbstrlen";
- case 0x01ad: return "_mbsupr";
- case 0x01ae: return "_memccpy";
- case 0x01af: return "_memicmp";
- case 0x01b0: return "_mkdir";
- case 0x01b1: return "_mktemp";
- case 0x01b2: return "_mktime64";
- case 0x01b3: return "_msize";
- case 0x01b4: return "_nextafter";
- case 0x01b5: return "_onexit";
- case 0x01b6: return "_open";
- case 0x01b7: return "_open_osfhandle";
- case 0x01b8: return "_osplatform";
- case 0x01b9: return "_osver";
- case 0x01ba: return "_outp";
- case 0x01bb: return "_outpd";
- case 0x01bc: return "_outpw";
- case 0x01bd: return "_pclose";
- case 0x01be: return "_pctype";
- case 0x01bf: return "_pgmptr";
- case 0x01c0: return "_pipe";
- case 0x01c1: return "_popen";
- case 0x01c2: return "_purecall";
- case 0x01c3: return "_putch";
- case 0x01c4: return "_putenv";
- case 0x01c5: return "_putw";
- case 0x01c6: return "_putwch";
- case 0x01c7: return "_putws";
- case 0x01c8: return "_pwctype";
- case 0x01c9: return "_read";
- case 0x01ca: return "_resetstkoflw";
- case 0x01cb: return "_rmdir";
- case 0x01cc: return "_rmtmp";
- case 0x01cd: return "_rotl";
- case 0x01ce: return "_rotr";
- case 0x01cf: return "_safe_fdiv";
- case 0x01d0: return "_safe_fdivr";
- case 0x01d1: return "_safe_fprem";
- case 0x01d2: return "_safe_fprem1";
- case 0x01d3: return "_scalb";
- case 0x01d4: return "_scprintf";
- case 0x01d5: return "_scwprintf";
- case 0x01d6: return "_searchenv";
- case 0x01d7: return "_seh_longjmp_unwind";
- case 0x01d8: return "_set_SSE2_enable";
- case 0x01d9: return "_set_error_mode";
- case 0x01da: return "_set_sbh_threshold";
- case 0x01db: return "_seterrormode";
- case 0x01dc: return "_setjmp";
- case 0x01dd: return "_setjmp3";
- case 0x01de: return "_setmaxstdio";
- case 0x01df: return "_setmbcp";
- case 0x01e0: return "_setmode";
- case 0x01e1: return "_setsystime";
- case 0x01e2: return "_sleep";
- case 0x01e3: return "_snprintf";
- case 0x01e4: return "_snscanf";
- case 0x01e5: return "_snwprintf";
- case 0x01e6: return "_snwscanf";
- case 0x01e7: return "_sopen";
- case 0x01e8: return "_spawnl";
- case 0x01e9: return "_spawnle";
- case 0x01ea: return "_spawnlp";
- case 0x01eb: return "_spawnlpe";
- case 0x01ec: return "_spawnv";
- case 0x01ed: return "_spawnve";
- case 0x01ee: return "_spawnvp";
- case 0x01ef: return "_spawnvpe";
- case 0x01f0: return "_splitpath";
- case 0x01f1: return "_stat";
- case 0x01f2: return "_stat64";
- case 0x01f3: return "_stati64";
- case 0x01f4: return "_statusfp";
- case 0x01f5: return "_strcmpi";
- case 0x01f6: return "_strdate";
- case 0x01f7: return "_strdup";
- case 0x01f8: return "_strerror";
- case 0x01f9: return "_stricmp";
- case 0x01fa: return "_stricoll";
- case 0x01fb: return "_strlwr";
- case 0x01fc: return "_strncoll";
- case 0x01fd: return "_strnicmp";
- case 0x01fe: return "_strnicoll";
- case 0x01ff: return "_strnset";
- case 0x0200: return "_strrev";
- case 0x0201: return "_strset";
- case 0x0202: return "_strtime";
- case 0x0203: return "_strtoi64";
- case 0x0204: return "_strtoui64";
- case 0x0205: return "_strupr";
- case 0x0206: return "_swab";
- case 0x0207: return "_sys_errlist";
- case 0x0208: return "_sys_nerr";
- case 0x0209: return "_tell";
- case 0x020a: return "_telli64";
- case 0x020b: return "_tempnam";
- case 0x020c: return "_time64";
- case 0x020d: return "_timezone";
- case 0x020e: return "_tolower";
- case 0x020f: return "_toupper";
- case 0x0210: return "_tzname";
- case 0x0211: return "_tzset";
- case 0x0212: return "_ui64toa";
- case 0x0213: return "_ui64tow";
- case 0x0214: return "_ultoa";
- case 0x0215: return "_ultow";
- case 0x0216: return "_umask";
- case 0x0217: return "_ungetch";
- case 0x0218: return "_ungetwch";
- case 0x0219: return "_unlink";
- case 0x021a: return "_unloaddll";
- case 0x021b: return "_unlock";
- case 0x021c: return "_utime";
- case 0x021d: return "_utime64";
- case 0x021e: return "_vscprintf";
- case 0x021f: return "_vscwprintf";
- case 0x0220: return "_vsnprintf";
- case 0x0221: return "_vsnwprintf";
- case 0x0222: return "_waccess";
- case 0x0223: return "_wasctime";
- case 0x0224: return "_wchdir";
- case 0x0225: return "_wchmod";
- case 0x0226: return "_wcmdln";
- case 0x0227: return "_wcreat";
- case 0x0228: return "_wcsdup";
- case 0x0229: return "_wcserror";
- case 0x022a: return "_wcsicmp";
- case 0x022b: return "_wcsicoll";
- case 0x022c: return "_wcslwr";
- case 0x022d: return "_wcsncoll";
- case 0x022e: return "_wcsnicmp";
- case 0x022f: return "_wcsnicoll";
- case 0x0230: return "_wcsnset";
- case 0x0231: return "_wcsrev";
- case 0x0232: return "_wcsset";
- case 0x0233: return "_wcstoi64";
- case 0x0234: return "_wcstoui64";
- case 0x0235: return "_wcsupr";
- case 0x0236: return "_wctime";
- case 0x0237: return "_wctime64";
- case 0x0238: return "_wenviron";
- case 0x0239: return "_wexecl";
- case 0x023a: return "_wexecle";
- case 0x023b: return "_wexeclp";
- case 0x023c: return "_wexeclpe";
- case 0x023d: return "_wexecv";
- case 0x023e: return "_wexecve";
- case 0x023f: return "_wexecvp";
- case 0x0240: return "_wexecvpe";
- case 0x0241: return "_wfdopen";
- case 0x0242: return "_wfindfirst";
- case 0x0243: return "_wfindfirst64";
- case 0x0244: return "_wfindfirsti64";
- case 0x0245: return "_wfindnext";
- case 0x0246: return "_wfindnext64";
- case 0x0247: return "_wfindnexti64";
- case 0x0248: return "_wfopen";
- case 0x0249: return "_wfreopen";
- case 0x024a: return "_wfsopen";
- case 0x024b: return "_wfullpath";
- case 0x024c: return "_wgetcwd";
- case 0x024d: return "_wgetdcwd";
- case 0x024e: return "_wgetenv";
- case 0x024f: return "_winmajor";
- case 0x0250: return "_winminor";
- case 0x0251: return "_winver";
- case 0x0252: return "_wmakepath";
- case 0x0253: return "_wmkdir";
- case 0x0254: return "_wmktemp";
- case 0x0255: return "_wopen";
- case 0x0256: return "_wperror";
- case 0x0257: return "_wpgmptr";
- case 0x0258: return "_wpopen";
- case 0x0259: return "_wputenv";
- case 0x025a: return "_wremove";
- case 0x025b: return "_wrename";
- case 0x025c: return "_write";
- case 0x025d: return "_wrmdir";
- case 0x025e: return "_wsearchenv";
- case 0x025f: return "_wsetlocale";
- case 0x0260: return "_wsopen";
- case 0x0261: return "_wspawnl";
- case 0x0262: return "_wspawnle";
- case 0x0263: return "_wspawnlp";
- case 0x0264: return "_wspawnlpe";
- case 0x0265: return "_wspawnv";
- case 0x0266: return "_wspawnve";
- case 0x0267: return "_wspawnvp";
- case 0x0268: return "_wspawnvpe";
- case 0x0269: return "_wsplitpath";
- case 0x026a: return "_wstat";
- case 0x026b: return "_wstat64";
- case 0x026c: return "_wstati64";
- case 0x026d: return "_wstrdate";
- case 0x026e: return "_wstrtime";
- case 0x026f: return "_wsystem";
- case 0x0270: return "_wtempnam";
- case 0x0271: return "_wtmpnam";
- case 0x0272: return "_wtof";
- case 0x0273: return "_wtoi";
- case 0x0274: return "_wtoi64";
- case 0x0275: return "_wtol";
- case 0x0276: return "_wunlink";
- case 0x0277: return "_wutime";
- case 0x0278: return "_wutime64";
- case 0x0279: return "_y0";
- case 0x027a: return "_y1";
- case 0x027b: return "_yn";
- case 0x027c: return "abort";
- case 0x027d: return "abs";
- case 0x027e: return "acos";
- case 0x027f: return "asctime";
- case 0x0280: return "asin";
- case 0x0281: return "atan";
- case 0x0282: return "atan2";
- case 0x0283: return "atexit";
- case 0x0284: return "atof";
- case 0x0285: return "atoi";
- case 0x0286: return "atol";
- case 0x0287: return "bsearch";
- case 0x0288: return "calloc";
- case 0x0289: return "ceil";
- case 0x028a: return "clearerr";
- case 0x028b: return "clock";
- case 0x028c: return "cos";
- case 0x028d: return "cosh";
- case 0x028e: return "ctime";
- case 0x028f: return "difftime";
- case 0x0290: return "div";
- case 0x0291: return "exit";
- case 0x0292: return "exp";
- case 0x0293: return "fabs";
- case 0x0294: return "fclose";
- case 0x0295: return "feof";
- case 0x0296: return "ferror";
- case 0x0297: return "fflush";
- case 0x0298: return "fgetc";
- case 0x0299: return "fgetpos";
- case 0x029a: return "fgets";
- case 0x029b: return "fgetwc";
- case 0x029c: return "fgetws";
- case 0x029d: return "floor";
- case 0x029e: return "fmod";
- case 0x029f: return "fopen";
- case 0x02a0: return "fprintf";
- case 0x02a1: return "fputc";
- case 0x02a2: return "fputs";
- case 0x02a3: return "fputwc";
- case 0x02a4: return "fputws";
- case 0x02a5: return "fread";
- case 0x02a6: return "free";
- case 0x02a7: return "freopen";
- case 0x02a8: return "frexp";
- case 0x02a9: return "fscanf";
- case 0x02aa: return "fseek";
- case 0x02ab: return "fsetpos";
- case 0x02ac: return "ftell";
- case 0x02ad: return "fwprintf";
- case 0x02ae: return "fwrite";
- case 0x02af: return "fwscanf";
- case 0x02b0: return "getc";
- case 0x02b1: return "getchar";
- case 0x02b2: return "getenv";
- case 0x02b3: return "gets";
- case 0x02b4: return "getwc";
- case 0x02b5: return "getwchar";
- case 0x02b6: return "gmtime";
- case 0x02b7: return "is_wctype";
- case 0x02b8: return "isalnum";
- case 0x02b9: return "isalpha";
- case 0x02ba: return "iscntrl";
- case 0x02bb: return "isdigit";
- case 0x02bc: return "isgraph";
- case 0x02bd: return "isleadbyte";
- case 0x02be: return "islower";
- case 0x02bf: return "isprint";
- case 0x02c0: return "ispunct";
- case 0x02c1: return "isspace";
- case 0x02c2: return "isupper";
- case 0x02c3: return "iswalnum";
- case 0x02c4: return "iswalpha";
- case 0x02c5: return "iswascii";
- case 0x02c6: return "iswcntrl";
- case 0x02c7: return "iswctype";
- case 0x02c8: return "iswdigit";
- case 0x02c9: return "iswgraph";
- case 0x02ca: return "iswlower";
- case 0x02cb: return "iswprint";
- case 0x02cc: return "iswpunct";
- case 0x02cd: return "iswspace";
- case 0x02ce: return "iswupper";
- case 0x02cf: return "iswxdigit";
- case 0x02d0: return "isxdigit";
- case 0x02d1: return "labs";
- case 0x02d2: return "ldexp";
- case 0x02d3: return "ldiv";
- case 0x02d4: return "localeconv";
- case 0x02d5: return "localtime";
- case 0x02d6: return "log";
- case 0x02d7: return "log10";
- case 0x02d8: return "longjmp";
- case 0x02d9: return "malloc";
- case 0x02da: return "mblen";
- case 0x02db: return "mbstowcs";
- case 0x02dc: return "mbtowc";
- case 0x02dd: return "memchr";
- case 0x02de: return "memcmp";
- case 0x02df: return "memcpy";
- case 0x02e0: return "memmove";
- case 0x02e1: return "memset";
- case 0x02e2: return "mktime";
- case 0x02e3: return "modf";
- case 0x02e4: return "perror";
- case 0x02e5: return "pow";
- case 0x02e6: return "printf";
- case 0x02e7: return "putc";
- case 0x02e8: return "putchar";
- case 0x02e9: return "puts";
- case 0x02ea: return "putwc";
- case 0x02eb: return "putwchar";
- case 0x02ec: return "qsort";
- case 0x02ed: return "raise";
- case 0x02ee: return "rand";
- case 0x02ef: return "realloc";
- case 0x02f0: return "remove";
- case 0x02f1: return "rename";
- case 0x02f2: return "rewind";
- case 0x02f3: return "scanf";
- case 0x02f4: return "setbuf";
- case 0x02f5: return "setlocale";
- case 0x02f6: return "setvbuf";
- case 0x02f7: return "signal";
- case 0x02f8: return "sin";
- case 0x02f9: return "sinh";
- case 0x02fa: return "sprintf";
- case 0x02fb: return "sqrt";
- case 0x02fc: return "srand";
- case 0x02fd: return "sscanf";
- case 0x02fe: return "strcat";
- case 0x02ff: return "strchr";
- case 0x0300: return "strcmp";
- case 0x0301: return "strcoll";
- case 0x0302: return "strcpy";
- case 0x0303: return "strcspn";
- case 0x0304: return "strerror";
- case 0x0305: return "strftime";
- case 0x0306: return "strlen";
- case 0x0307: return "strncat";
- case 0x0308: return "strncmp";
- case 0x0309: return "strncpy";
- case 0x030a: return "strpbrk";
- case 0x030b: return "strrchr";
- case 0x030c: return "strspn";
- case 0x030d: return "strstr";
- case 0x030e: return "strtod";
- case 0x030f: return "strtok";
- case 0x0310: return "strtol";
- case 0x0311: return "strtoul";
- case 0x0312: return "strxfrm";
- case 0x0313: return "swprintf";
- case 0x0314: return "swscanf";
- case 0x0315: return "system";
- case 0x0316: return "tan";
- case 0x0317: return "tanh";
- case 0x0318: return "time";
- case 0x0319: return "tmpfile";
- case 0x031a: return "tmpnam";
- case 0x031b: return "tolower";
- case 0x031c: return "toupper";
- case 0x031d: return "towlower";
- case 0x031e: return "towupper";
- case 0x031f: return "ungetc";
- case 0x0320: return "ungetwc";
- case 0x0321: return "vfprintf";
- case 0x0322: return "vfwprintf";
- case 0x0323: return "vprintf";
- case 0x0324: return "vsprintf";
- case 0x0325: return "vswprintf";
- case 0x0326: return "vwprintf";
- case 0x0327: return "wcscat";
- case 0x0328: return "wcschr";
- case 0x0329: return "wcscmp";
- case 0x032a: return "wcscoll";
- case 0x032b: return "wcscpy";
- case 0x032c: return "wcscspn";
- case 0x032d: return "wcsftime";
- case 0x032e: return "wcslen";
- case 0x032f: return "wcsncat";
- case 0x0330: return "wcsncmp";
- case 0x0331: return "wcsncpy";
- case 0x0332: return "wcspbrk";
- case 0x0333: return "wcsrchr";
- case 0x0334: return "wcsspn";
- case 0x0335: return "wcsstr";
- case 0x0336: return "wcstod";
- case 0x0337: return "wcstok";
- case 0x0338: return "wcstol";
- case 0x0339: return "wcstombs";
- case 0x033a: return "wcstoul";
- case 0x033b: return "wcsxfrm";
- case 0x033c: return "wctomb";
- case 0x033d: return "wprintf";
- case 0x033e: return "wscanf";
+ switch (i) {
+ case 0x0038: return "$I10_OUTPUT";
+ case 0x0001: return "??0__non_rtti_object@@QAE@ABV0@@Z";
+ case 0x0002: return "??0__non_rtti_object@@QAE@PBD@Z";
+ case 0x0003: return "??0bad_cast@@AAE@PBQBD@Z";
+ case 0x0004: return "??0bad_cast@@QAE@ABQBD@Z";
+ case 0x0005: return "??0bad_cast@@QAE@ABV0@@Z";
+ case 0x0006: return "??0bad_cast@@QAE@PBD@Z";
+ case 0x0007: return "??0bad_typeid@@QAE@ABV0@@Z";
+ case 0x0008: return "??0bad_typeid@@QAE@PBD@Z";
+ case 0x0009: return "??0exception@@QAE@ABQBD@Z";
+ case 0x000a: return "??0exception@@QAE@ABV0@@Z";
+ case 0x000b: return "??0exception@@QAE@XZ";
+ case 0x000c: return "??1__non_rtti_object@@UAE@XZ";
+ case 0x000d: return "??1bad_cast@@UAE@XZ";
+ case 0x000e: return "??1bad_typeid@@UAE@XZ";
+ case 0x000f: return "??1exception@@UAE@XZ";
+ case 0x0010: return "??1type_info@@UAE@XZ";
+ case 0x0011: return "??2@YAPAXI@Z";
+ case 0x0012: return "??3@YAXPAX@Z";
+ case 0x0013: return "??4__non_rtti_object@@QAEAAV0@ABV0@@Z";
+ case 0x0014: return "??4bad_cast@@QAEAAV0@ABV0@@Z";
+ case 0x0015: return "??4bad_typeid@@QAEAAV0@ABV0@@Z";
+ case 0x0016: return "??4exception@@QAEAAV0@ABV0@@Z";
+ case 0x0017: return "??8type_info@@QBEHABV0@@Z";
+ case 0x0018: return "??9type_info@@QBEHABV0@@Z";
+ case 0x0019: return "??_7__non_rtti_object@@6B@";
+ case 0x001a: return "??_7bad_cast@@6B@";
+ case 0x001b: return "??_7bad_typeid@@6B@";
+ case 0x001c: return "??_7exception@@6B@";
+ case 0x001d: return "??_E__non_rtti_object@@UAEPAXI@Z";
+ case 0x001e: return "??_Ebad_cast@@UAEPAXI@Z";
+ case 0x001f: return "??_Ebad_typeid@@UAEPAXI@Z";
+ case 0x0020: return "??_Eexception@@UAEPAXI@Z";
+ case 0x0021: return "??_Fbad_cast@@QAEXXZ";
+ case 0x0022: return "??_Fbad_typeid@@QAEXXZ";
+ case 0x0023: return "??_G__non_rtti_object@@UAEPAXI@Z";
+ case 0x0024: return "??_Gbad_cast@@UAEPAXI@Z";
+ case 0x0025: return "??_Gbad_typeid@@UAEPAXI@Z";
+ case 0x0026: return "??_Gexception@@UAEPAXI@Z";
+ case 0x0027: return "??_U@YAPAXI@Z";
+ case 0x0028: return "??_V@YAXPAX@Z";
+ case 0x002a: return "?_query_new_handler@@YAP6AHI@ZXZ";
+ case 0x002b: return "?_query_new_mode@@YAHXZ";
+ case 0x002c: return "?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z";
+ case 0x002d: return "?_set_new_mode@@YAHH@Z";
+ case 0x002e:
+ return "?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z";
+ case 0x002f: return "?before@type_info@@QBEHABV1@@Z";
+ case 0x0030: return "?name@type_info@@QBEPBDXZ";
+ case 0x0031: return "?raw_name@type_info@@QBEPBDXZ";
+ case 0x0032: return "?set_new_handler@@YAP6AXXZP6AXXZ@Z";
+ case 0x0033: return "?set_terminate@@YAP6AXXZP6AXXZ@Z";
+ case 0x0034: return "?set_unexpected@@YAP6AXXZP6AXXZ@Z";
+ case 0x0035: return "?terminate@@YAXXZ";
+ case 0x0036: return "?unexpected@@YAXXZ";
+ case 0x0037: return "?what@exception@@UBEPBDXZ";
+ case 0x0039: return "_CIacos";
+ case 0x003a: return "_CIasin";
+ case 0x003b: return "_CIatan";
+ case 0x003c: return "_CIatan2";
+ case 0x003d: return "_CIcos";
+ case 0x003e: return "_CIcosh";
+ case 0x003f: return "_CIexp";
+ case 0x0040: return "_CIfmod";
+ case 0x0041: return "_CIlog";
+ case 0x0042: return "_CIlog10";
+ case 0x0043: return "_CIpow";
+ case 0x0044: return "_CIsin";
+ case 0x0045: return "_CIsinh";
+ case 0x0046: return "_CIsqrt";
+ case 0x0047: return "_CItan";
+ case 0x0048: return "_CItanh";
+ case 0x0049: return "_CxxThrowException";
+ case 0x004a: return "_EH_prolog";
+ case 0x004b: return "_Getdays";
+ case 0x004c: return "_Getmonths";
+ case 0x004d: return "_Gettnames";
+ case 0x004e: return "_HUGE";
+ case 0x004f: return "_Strftime";
+ case 0x0050: return "_XcptFilter";
+ case 0x0051: return "__CxxCallUnwindDtor";
+ case 0x0052: return "__CxxDetectRethrow";
+ case 0x0053: return "__CxxExceptionFilter";
+ case 0x0054: return "__CxxFrameHandler";
+ case 0x0055: return "__CxxLongjmpUnwind";
+ case 0x0056: return "__CxxQueryExceptionSize";
+ case 0x0057: return "__CxxRegisterExceptionObject";
+ case 0x0058: return "__CxxUnregisterExceptionObject";
+ case 0x0059: return "__DestructExceptionObject";
+ case 0x005a: return "__RTCastToVoid";
+ case 0x005b: return "__RTDynamicCast";
+ case 0x005c: return "__RTtypeid";
+ case 0x005d: return "__STRINGTOLD";
+ case 0x005e: return "___lc_codepage_func";
+ case 0x005f: return "___lc_handle_func";
+ case 0x0060: return "___mb_cur_max_func";
+ case 0x0061: return "___setlc_active_func";
+ case 0x0062: return "___unguarded_readlc_active_add_func";
+ case 0x0063: return "__argc";
+ case 0x0064: return "__argv";
+ case 0x0065: return "__badioinfo";
+ case 0x0066: return "__crtCompareStringA";
+ case 0x0067: return "__crtCompareStringW";
+ case 0x0068: return "__crtGetLocaleInfoW";
+ case 0x0069: return "__crtGetStringTypeW";
+ case 0x006a: return "__crtLCMapStringA";
+ case 0x006b: return "__crtLCMapStringW";
+ case 0x006c: return "__dllonexit";
+ case 0x006d: return "__doserrno";
+ case 0x006e: return "__fpecode";
+ case 0x006f: return "__getmainargs";
+ case 0x0070: return "__initenv";
+ case 0x0071: return "__iob_func";
+ case 0x0072: return "__isascii";
+ case 0x0073: return "__iscsym";
+ case 0x0074: return "__iscsymf";
+ case 0x0075: return "__lc_codepage";
+ case 0x0076: return "__lc_collate_cp";
+ case 0x0077: return "__lc_handle";
+ case 0x0078: return "__lconv_init";
+ case 0x0079: return "__mb_cur_max";
+ case 0x007a: return "__p___argc";
+ case 0x007b: return "__p___argv";
+ case 0x007c: return "__p___initenv";
+ case 0x007d: return "__p___mb_cur_max";
+ case 0x007e: return "__p___wargv";
+ case 0x007f: return "__p___winitenv";
+ case 0x0080: return "__p__acmdln";
+ case 0x0081: return "__p__amblksiz";
+ case 0x0082: return "__p__commode";
+ case 0x0083: return "__p__daylight";
+ case 0x0084: return "__p__dstbias";
+ case 0x0085: return "__p__environ";
+ case 0x0086: return "__p__fileinfo";
+ case 0x0087: return "__p__fmode";
+ case 0x0088: return "__p__iob";
+ case 0x0089: return "__p__mbcasemap";
+ case 0x008a: return "__p__mbctype";
+ case 0x008b: return "__p__osver";
+ case 0x008c: return "__p__pctype";
+ case 0x008d: return "__p__pgmptr";
+ case 0x008e: return "__p__pwctype";
+ case 0x008f: return "__p__timezone";
+ case 0x0090: return "__p__tzname";
+ case 0x0091: return "__p__wcmdln";
+ case 0x0092: return "__p__wenviron";
+ case 0x0093: return "__p__winmajor";
+ case 0x0094: return "__p__winminor";
+ case 0x0095: return "__p__winver";
+ case 0x0096: return "__p__wpgmptr";
+ case 0x0097: return "__pctype_func";
+ case 0x0098: return "__pioinfo";
+ case 0x0099: return "__pxcptinfoptrs";
+ case 0x009a: return "__set_app_type";
+ case 0x009b: return "__setlc_active";
+ case 0x009c: return "__setusermatherr";
+ case 0x009d: return "__threadhandle";
+ case 0x009e: return "__threadid";
+ case 0x009f: return "__toascii";
+ case 0x00a0: return "__unDName";
+ case 0x00a1: return "__unDNameEx";
+ case 0x0029: return "__uncaught_exception";
+ case 0x00a2: return "__unguarded_readlc_active";
+ case 0x00a3: return "__wargv";
+ case 0x00a4: return "__wcserror";
+ case 0x00a5: return "__wgetmainargs";
+ case 0x00a6: return "__winitenv";
+ case 0x00a7: return "_abnormal_termination";
+ case 0x00a8: return "_access";
+ case 0x00a9: return "_acmdln";
+ case 0x00aa: return "_adj_fdiv_m16i";
+ case 0x00ab: return "_adj_fdiv_m32";
+ case 0x00ac: return "_adj_fdiv_m32i";
+ case 0x00ad: return "_adj_fdiv_m64";
+ case 0x00ae: return "_adj_fdiv_r";
+ case 0x00af: return "_adj_fdivr_m16i";
+ case 0x00b0: return "_adj_fdivr_m32";
+ case 0x00b1: return "_adj_fdivr_m32i";
+ case 0x00b2: return "_adj_fdivr_m64";
+ case 0x00b3: return "_adj_fpatan";
+ case 0x00b4: return "_adj_fprem";
+ case 0x00b5: return "_adj_fprem1";
+ case 0x00b6: return "_adj_fptan";
+ case 0x00b7: return "_adjust_fdiv";
+ case 0x00b8: return "_aexit_rtn";
+ case 0x00b9: return "_aligned_free";
+ case 0x00ba: return "_aligned_malloc";
+ case 0x00bb: return "_aligned_offset_malloc";
+ case 0x00bc: return "_aligned_offset_realloc";
+ case 0x00bd: return "_aligned_realloc";
+ case 0x00be: return "_amsg_exit";
+ case 0x00bf: return "_assert";
+ case 0x00c0: return "_atodbl";
+ case 0x00c1: return "_atoi64";
+ case 0x00c2: return "_atoldbl";
+ case 0x00c3: return "_beep";
+ case 0x00c4: return "_beginthread";
+ case 0x00c5: return "_beginthreadex";
+ case 0x00c6: return "_c_exit";
+ case 0x00c7: return "_cabs";
+ case 0x00c8: return "_callnewh";
+ case 0x00c9: return "_cexit";
+ case 0x00ca: return "_cgets";
+ case 0x00cb: return "_cgetws";
+ case 0x00cc: return "_chdir";
+ case 0x00cd: return "_chdrive";
+ case 0x00ce: return "_chgsign";
+ case 0x00cf: return "_chkesp";
+ case 0x00d0: return "_chmod";
+ case 0x00d1: return "_chsize";
+ case 0x00d2: return "_clearfp";
+ case 0x00d3: return "_close";
+ case 0x00d4: return "_commit";
+ case 0x00d5: return "_commode";
+ case 0x00d6: return "_control87";
+ case 0x00d7: return "_controlfp";
+ case 0x00d8: return "_copysign";
+ case 0x00d9: return "_cprintf";
+ case 0x00da: return "_cputs";
+ case 0x00db: return "_cputws";
+ case 0x00dc: return "_creat";
+ case 0x00dd: return "_cscanf";
+ case 0x00de: return "_ctime64";
+ case 0x00df: return "_ctype";
+ case 0x00e0: return "_cwait";
+ case 0x00e1: return "_cwprintf";
+ case 0x00e2: return "_cwscanf";
+ case 0x00e3: return "_daylight";
+ case 0x00e4: return "_dstbias";
+ case 0x00e5: return "_dup";
+ case 0x00e6: return "_dup2";
+ case 0x00e7: return "_ecvt";
+ case 0x00e8: return "_endthread";
+ case 0x00e9: return "_endthreadex";
+ case 0x00ea: return "_environ";
+ case 0x00eb: return "_eof";
+ case 0x00ec: return "_errno";
+ case 0x00ed: return "_except_handler2";
+ case 0x00ee: return "_except_handler3";
+ case 0x00ef: return "_execl";
+ case 0x00f0: return "_execle";
+ case 0x00f1: return "_execlp";
+ case 0x00f2: return "_execlpe";
+ case 0x00f3: return "_execv";
+ case 0x00f4: return "_execve";
+ case 0x00f5: return "_execvp";
+ case 0x00f6: return "_execvpe";
+ case 0x00f7: return "_exit";
+ case 0x00f8: return "_expand";
+ case 0x00f9: return "_fcloseall";
+ case 0x00fa: return "_fcvt";
+ case 0x00fb: return "_fdopen";
+ case 0x00fc: return "_fgetchar";
+ case 0x00fd: return "_fgetwchar";
+ case 0x00fe: return "_filbuf";
+ case 0x00ff: return "_fileinfo";
+ case 0x0100: return "_filelength";
+ case 0x0101: return "_filelengthi64";
+ case 0x0102: return "_fileno";
+ case 0x0103: return "_findclose";
+ case 0x0104: return "_findfirst";
+ case 0x0105: return "_findfirst64";
+ case 0x0106: return "_findfirsti64";
+ case 0x0107: return "_findnext";
+ case 0x0108: return "_findnext64";
+ case 0x0109: return "_findnexti64";
+ case 0x010a: return "_finite";
+ case 0x010b: return "_flsbuf";
+ case 0x010c: return "_flushall";
+ case 0x010d: return "_fmode";
+ case 0x010e: return "_fpclass";
+ case 0x010f: return "_fpieee_flt";
+ case 0x0110: return "_fpreset";
+ case 0x0111: return "_fputchar";
+ case 0x0112: return "_fputwchar";
+ case 0x0113: return "_fsopen";
+ case 0x0114: return "_fstat";
+ case 0x0115: return "_fstat64";
+ case 0x0116: return "_fstati64";
+ case 0x0117: return "_ftime";
+ case 0x0118: return "_ftime64";
+ case 0x0119: return "_ftol";
+ case 0x011a: return "_fullpath";
+ case 0x011b: return "_futime";
+ case 0x011c: return "_futime64";
+ case 0x011d: return "_gcvt";
+ case 0x011e: return "_get_heap_handle";
+ case 0x011f: return "_get_osfhandle";
+ case 0x0120: return "_get_sbh_threshold";
+ case 0x0121: return "_getch";
+ case 0x0122: return "_getche";
+ case 0x0123: return "_getcwd";
+ case 0x0124: return "_getdcwd";
+ case 0x0125: return "_getdiskfree";
+ case 0x0126: return "_getdllprocaddr";
+ case 0x0127: return "_getdrive";
+ case 0x0128: return "_getdrives";
+ case 0x0129: return "_getmaxstdio";
+ case 0x012a: return "_getmbcp";
+ case 0x012b: return "_getpid";
+ case 0x012c: return "_getsystime";
+ case 0x012d: return "_getw";
+ case 0x012e: return "_getwch";
+ case 0x012f: return "_getwche";
+ case 0x0130: return "_getws";
+ case 0x0131: return "_global_unwind2";
+ case 0x0132: return "_gmtime64";
+ case 0x0133: return "_heapadd";
+ case 0x0134: return "_heapchk";
+ case 0x0135: return "_heapmin";
+ case 0x0136: return "_heapset";
+ case 0x0137: return "_heapused";
+ case 0x0138: return "_heapwalk";
+ case 0x0139: return "_hypot";
+ case 0x013a: return "_i64toa";
+ case 0x013b: return "_i64tow";
+ case 0x013c: return "_initterm";
+ case 0x013d: return "_inp";
+ case 0x013e: return "_inpd";
+ case 0x013f: return "_inpw";
+ case 0x0140: return "_iob";
+ case 0x0141: return "_isatty";
+ case 0x0142: return "_isctype";
+ case 0x0143: return "_ismbbalnum";
+ case 0x0144: return "_ismbbalpha";
+ case 0x0145: return "_ismbbgraph";
+ case 0x0146: return "_ismbbkalnum";
+ case 0x0147: return "_ismbbkana";
+ case 0x0148: return "_ismbbkprint";
+ case 0x0149: return "_ismbbkpunct";
+ case 0x014a: return "_ismbblead";
+ case 0x014b: return "_ismbbprint";
+ case 0x014c: return "_ismbbpunct";
+ case 0x014d: return "_ismbbtrail";
+ case 0x014e: return "_ismbcalnum";
+ case 0x014f: return "_ismbcalpha";
+ case 0x0150: return "_ismbcdigit";
+ case 0x0151: return "_ismbcgraph";
+ case 0x0152: return "_ismbchira";
+ case 0x0153: return "_ismbckata";
+ case 0x0154: return "_ismbcl0";
+ case 0x0155: return "_ismbcl1";
+ case 0x0156: return "_ismbcl2";
+ case 0x0157: return "_ismbclegal";
+ case 0x0158: return "_ismbclower";
+ case 0x0159: return "_ismbcprint";
+ case 0x015a: return "_ismbcpunct";
+ case 0x015b: return "_ismbcspace";
+ case 0x015c: return "_ismbcsymbol";
+ case 0x015d: return "_ismbcupper";
+ case 0x015e: return "_ismbslead";
+ case 0x015f: return "_ismbstrail";
+ case 0x0160: return "_isnan";
+ case 0x0161: return "_itoa";
+ case 0x0162: return "_itow";
+ case 0x0163: return "_j0";
+ case 0x0164: return "_j1";
+ case 0x0165: return "_jn";
+ case 0x0166: return "_kbhit";
+ case 0x0167: return "_lfind";
+ case 0x0168: return "_loaddll";
+ case 0x0169: return "_local_unwind2";
+ case 0x016a: return "_localtime64";
+ case 0x016b: return "_lock";
+ case 0x016c: return "_locking";
+ case 0x016d: return "_logb";
+ case 0x016e: return "_longjmpex";
+ case 0x016f: return "_lrotl";
+ case 0x0170: return "_lrotr";
+ case 0x0171: return "_lsearch";
+ case 0x0172: return "_lseek";
+ case 0x0173: return "_lseeki64";
+ case 0x0174: return "_ltoa";
+ case 0x0175: return "_ltow";
+ case 0x0176: return "_makepath";
+ case 0x0177: return "_mbbtombc";
+ case 0x0178: return "_mbbtype";
+ case 0x0179: return "_mbcasemap";
+ case 0x017a: return "_mbccpy";
+ case 0x017b: return "_mbcjistojms";
+ case 0x017c: return "_mbcjmstojis";
+ case 0x017d: return "_mbclen";
+ case 0x017e: return "_mbctohira";
+ case 0x017f: return "_mbctokata";
+ case 0x0180: return "_mbctolower";
+ case 0x0181: return "_mbctombb";
+ case 0x0182: return "_mbctoupper";
+ case 0x0183: return "_mbctype";
+ case 0x0184: return "_mbsbtype";
+ case 0x0185: return "_mbscat";
+ case 0x0186: return "_mbschr";
+ case 0x0187: return "_mbscmp";
+ case 0x0188: return "_mbscoll";
+ case 0x0189: return "_mbscpy";
+ case 0x018a: return "_mbscspn";
+ case 0x018b: return "_mbsdec";
+ case 0x018c: return "_mbsdup";
+ case 0x018d: return "_mbsicmp";
+ case 0x018e: return "_mbsicoll";
+ case 0x018f: return "_mbsinc";
+ case 0x0190: return "_mbslen";
+ case 0x0191: return "_mbslwr";
+ case 0x0192: return "_mbsnbcat";
+ case 0x0193: return "_mbsnbcmp";
+ case 0x0194: return "_mbsnbcnt";
+ case 0x0195: return "_mbsnbcoll";
+ case 0x0196: return "_mbsnbcpy";
+ case 0x0197: return "_mbsnbicmp";
+ case 0x0198: return "_mbsnbicoll";
+ case 0x0199: return "_mbsnbset";
+ case 0x019a: return "_mbsncat";
+ case 0x019b: return "_mbsnccnt";
+ case 0x019c: return "_mbsncmp";
+ case 0x019d: return "_mbsncoll";
+ case 0x019e: return "_mbsncpy";
+ case 0x019f: return "_mbsnextc";
+ case 0x01a0: return "_mbsnicmp";
+ case 0x01a1: return "_mbsnicoll";
+ case 0x01a2: return "_mbsninc";
+ case 0x01a3: return "_mbsnset";
+ case 0x01a4: return "_mbspbrk";
+ case 0x01a5: return "_mbsrchr";
+ case 0x01a6: return "_mbsrev";
+ case 0x01a7: return "_mbsset";
+ case 0x01a8: return "_mbsspn";
+ case 0x01a9: return "_mbsspnp";
+ case 0x01aa: return "_mbsstr";
+ case 0x01ab: return "_mbstok";
+ case 0x01ac: return "_mbstrlen";
+ case 0x01ad: return "_mbsupr";
+ case 0x01ae: return "_memccpy";
+ case 0x01af: return "_memicmp";
+ case 0x01b0: return "_mkdir";
+ case 0x01b1: return "_mktemp";
+ case 0x01b2: return "_mktime64";
+ case 0x01b3: return "_msize";
+ case 0x01b4: return "_nextafter";
+ case 0x01b5: return "_onexit";
+ case 0x01b6: return "_open";
+ case 0x01b7: return "_open_osfhandle";
+ case 0x01b8: return "_osplatform";
+ case 0x01b9: return "_osver";
+ case 0x01ba: return "_outp";
+ case 0x01bb: return "_outpd";
+ case 0x01bc: return "_outpw";
+ case 0x01bd: return "_pclose";
+ case 0x01be: return "_pctype";
+ case 0x01bf: return "_pgmptr";
+ case 0x01c0: return "_pipe";
+ case 0x01c1: return "_popen";
+ case 0x01c2: return "_purecall";
+ case 0x01c3: return "_putch";
+ case 0x01c4: return "_putenv";
+ case 0x01c5: return "_putw";
+ case 0x01c6: return "_putwch";
+ case 0x01c7: return "_putws";
+ case 0x01c8: return "_pwctype";
+ case 0x01c9: return "_read";
+ case 0x01ca: return "_resetstkoflw";
+ case 0x01cb: return "_rmdir";
+ case 0x01cc: return "_rmtmp";
+ case 0x01cd: return "_rotl";
+ case 0x01ce: return "_rotr";
+ case 0x01cf: return "_safe_fdiv";
+ case 0x01d0: return "_safe_fdivr";
+ case 0x01d1: return "_safe_fprem";
+ case 0x01d2: return "_safe_fprem1";
+ case 0x01d3: return "_scalb";
+ case 0x01d4: return "_scprintf";
+ case 0x01d5: return "_scwprintf";
+ case 0x01d6: return "_searchenv";
+ case 0x01d7: return "_seh_longjmp_unwind";
+ case 0x01d8: return "_set_SSE2_enable";
+ case 0x01d9: return "_set_error_mode";
+ case 0x01da: return "_set_sbh_threshold";
+ case 0x01db: return "_seterrormode";
+ case 0x01dc: return "_setjmp";
+ case 0x01dd: return "_setjmp3";
+ case 0x01de: return "_setmaxstdio";
+ case 0x01df: return "_setmbcp";
+ case 0x01e0: return "_setmode";
+ case 0x01e1: return "_setsystime";
+ case 0x01e2: return "_sleep";
+ case 0x01e3: return "_snprintf";
+ case 0x01e4: return "_snscanf";
+ case 0x01e5: return "_snwprintf";
+ case 0x01e6: return "_snwscanf";
+ case 0x01e7: return "_sopen";
+ case 0x01e8: return "_spawnl";
+ case 0x01e9: return "_spawnle";
+ case 0x01ea: return "_spawnlp";
+ case 0x01eb: return "_spawnlpe";
+ case 0x01ec: return "_spawnv";
+ case 0x01ed: return "_spawnve";
+ case 0x01ee: return "_spawnvp";
+ case 0x01ef: return "_spawnvpe";
+ case 0x01f0: return "_splitpath";
+ case 0x01f1: return "_stat";
+ case 0x01f2: return "_stat64";
+ case 0x01f3: return "_stati64";
+ case 0x01f4: return "_statusfp";
+ case 0x01f5: return "_strcmpi";
+ case 0x01f6: return "_strdate";
+ case 0x01f7: return "_strdup";
+ case 0x01f8: return "_strerror";
+ case 0x01f9: return "_stricmp";
+ case 0x01fa: return "_stricoll";
+ case 0x01fb: return "_strlwr";
+ case 0x01fc: return "_strncoll";
+ case 0x01fd: return "_strnicmp";
+ case 0x01fe: return "_strnicoll";
+ case 0x01ff: return "_strnset";
+ case 0x0200: return "_strrev";
+ case 0x0201: return "_strset";
+ case 0x0202: return "_strtime";
+ case 0x0203: return "_strtoi64";
+ case 0x0204: return "_strtoui64";
+ case 0x0205: return "_strupr";
+ case 0x0206: return "_swab";
+ case 0x0207: return "_sys_errlist";
+ case 0x0208: return "_sys_nerr";
+ case 0x0209: return "_tell";
+ case 0x020a: return "_telli64";
+ case 0x020b: return "_tempnam";
+ case 0x020c: return "_time64";
+ case 0x020d: return "_timezone";
+ case 0x020e: return "_tolower";
+ case 0x020f: return "_toupper";
+ case 0x0210: return "_tzname";
+ case 0x0211: return "_tzset";
+ case 0x0212: return "_ui64toa";
+ case 0x0213: return "_ui64tow";
+ case 0x0214: return "_ultoa";
+ case 0x0215: return "_ultow";
+ case 0x0216: return "_umask";
+ case 0x0217: return "_ungetch";
+ case 0x0218: return "_ungetwch";
+ case 0x0219: return "_unlink";
+ case 0x021a: return "_unloaddll";
+ case 0x021b: return "_unlock";
+ case 0x021c: return "_utime";
+ case 0x021d: return "_utime64";
+ case 0x021e: return "_vscprintf";
+ case 0x021f: return "_vscwprintf";
+ case 0x0220: return "_vsnprintf";
+ case 0x0221: return "_vsnwprintf";
+ case 0x0222: return "_waccess";
+ case 0x0223: return "_wasctime";
+ case 0x0224: return "_wchdir";
+ case 0x0225: return "_wchmod";
+ case 0x0226: return "_wcmdln";
+ case 0x0227: return "_wcreat";
+ case 0x0228: return "_wcsdup";
+ case 0x0229: return "_wcserror";
+ case 0x022a: return "_wcsicmp";
+ case 0x022b: return "_wcsicoll";
+ case 0x022c: return "_wcslwr";
+ case 0x022d: return "_wcsncoll";
+ case 0x022e: return "_wcsnicmp";
+ case 0x022f: return "_wcsnicoll";
+ case 0x0230: return "_wcsnset";
+ case 0x0231: return "_wcsrev";
+ case 0x0232: return "_wcsset";
+ case 0x0233: return "_wcstoi64";
+ case 0x0234: return "_wcstoui64";
+ case 0x0235: return "_wcsupr";
+ case 0x0236: return "_wctime";
+ case 0x0237: return "_wctime64";
+ case 0x0238: return "_wenviron";
+ case 0x0239: return "_wexecl";
+ case 0x023a: return "_wexecle";
+ case 0x023b: return "_wexeclp";
+ case 0x023c: return "_wexeclpe";
+ case 0x023d: return "_wexecv";
+ case 0x023e: return "_wexecve";
+ case 0x023f: return "_wexecvp";
+ case 0x0240: return "_wexecvpe";
+ case 0x0241: return "_wfdopen";
+ case 0x0242: return "_wfindfirst";
+ case 0x0243: return "_wfindfirst64";
+ case 0x0244: return "_wfindfirsti64";
+ case 0x0245: return "_wfindnext";
+ case 0x0246: return "_wfindnext64";
+ case 0x0247: return "_wfindnexti64";
+ case 0x0248: return "_wfopen";
+ case 0x0249: return "_wfreopen";
+ case 0x024a: return "_wfsopen";
+ case 0x024b: return "_wfullpath";
+ case 0x024c: return "_wgetcwd";
+ case 0x024d: return "_wgetdcwd";
+ case 0x024e: return "_wgetenv";
+ case 0x024f: return "_winmajor";
+ case 0x0250: return "_winminor";
+ case 0x0251: return "_winver";
+ case 0x0252: return "_wmakepath";
+ case 0x0253: return "_wmkdir";
+ case 0x0254: return "_wmktemp";
+ case 0x0255: return "_wopen";
+ case 0x0256: return "_wperror";
+ case 0x0257: return "_wpgmptr";
+ case 0x0258: return "_wpopen";
+ case 0x0259: return "_wputenv";
+ case 0x025a: return "_wremove";
+ case 0x025b: return "_wrename";
+ case 0x025c: return "_write";
+ case 0x025d: return "_wrmdir";
+ case 0x025e: return "_wsearchenv";
+ case 0x025f: return "_wsetlocale";
+ case 0x0260: return "_wsopen";
+ case 0x0261: return "_wspawnl";
+ case 0x0262: return "_wspawnle";
+ case 0x0263: return "_wspawnlp";
+ case 0x0264: return "_wspawnlpe";
+ case 0x0265: return "_wspawnv";
+ case 0x0266: return "_wspawnve";
+ case 0x0267: return "_wspawnvp";
+ case 0x0268: return "_wspawnvpe";
+ case 0x0269: return "_wsplitpath";
+ case 0x026a: return "_wstat";
+ case 0x026b: return "_wstat64";
+ case 0x026c: return "_wstati64";
+ case 0x026d: return "_wstrdate";
+ case 0x026e: return "_wstrtime";
+ case 0x026f: return "_wsystem";
+ case 0x0270: return "_wtempnam";
+ case 0x0271: return "_wtmpnam";
+ case 0x0272: return "_wtof";
+ case 0x0273: return "_wtoi";
+ case 0x0274: return "_wtoi64";
+ case 0x0275: return "_wtol";
+ case 0x0276: return "_wunlink";
+ case 0x0277: return "_wutime";
+ case 0x0278: return "_wutime64";
+ case 0x0279: return "_y0";
+ case 0x027a: return "_y1";
+ case 0x027b: return "_yn";
+ case 0x027c: return "abort";
+ case 0x027d: return "abs";
+ case 0x027e: return "acos";
+ case 0x027f: return "asctime";
+ case 0x0280: return "asin";
+ case 0x0281: return "atan";
+ case 0x0282: return "atan2";
+ case 0x0283: return "atexit";
+ case 0x0284: return "atof";
+ case 0x0285: return "atoi";
+ case 0x0286: return "atol";
+ case 0x0287: return "bsearch";
+ case 0x0288: return "calloc";
+ case 0x0289: return "ceil";
+ case 0x028a: return "clearerr";
+ case 0x028b: return "clock";
+ case 0x028c: return "cos";
+ case 0x028d: return "cosh";
+ case 0x028e: return "ctime";
+ case 0x028f: return "difftime";
+ case 0x0290: return "div";
+ case 0x0291: return "exit";
+ case 0x0292: return "exp";
+ case 0x0293: return "fabs";
+ case 0x0294: return "fclose";
+ case 0x0295: return "feof";
+ case 0x0296: return "ferror";
+ case 0x0297: return "fflush";
+ case 0x0298: return "fgetc";
+ case 0x0299: return "fgetpos";
+ case 0x029a: return "fgets";
+ case 0x029b: return "fgetwc";
+ case 0x029c: return "fgetws";
+ case 0x029d: return "floor";
+ case 0x029e: return "fmod";
+ case 0x029f: return "fopen";
+ case 0x02a0: return "fprintf";
+ case 0x02a1: return "fputc";
+ case 0x02a2: return "fputs";
+ case 0x02a3: return "fputwc";
+ case 0x02a4: return "fputws";
+ case 0x02a5: return "fread";
+ case 0x02a6: return "free";
+ case 0x02a7: return "freopen";
+ case 0x02a8: return "frexp";
+ case 0x02a9: return "fscanf";
+ case 0x02aa: return "fseek";
+ case 0x02ab: return "fsetpos";
+ case 0x02ac: return "ftell";
+ case 0x02ad: return "fwprintf";
+ case 0x02ae: return "fwrite";
+ case 0x02af: return "fwscanf";
+ case 0x02b0: return "getc";
+ case 0x02b1: return "getchar";
+ case 0x02b2: return "getenv";
+ case 0x02b3: return "gets";
+ case 0x02b4: return "getwc";
+ case 0x02b5: return "getwchar";
+ case 0x02b6: return "gmtime";
+ case 0x02b7: return "is_wctype";
+ case 0x02b8: return "isalnum";
+ case 0x02b9: return "isalpha";
+ case 0x02ba: return "iscntrl";
+ case 0x02bb: return "isdigit";
+ case 0x02bc: return "isgraph";
+ case 0x02bd: return "isleadbyte";
+ case 0x02be: return "islower";
+ case 0x02bf: return "isprint";
+ case 0x02c0: return "ispunct";
+ case 0x02c1: return "isspace";
+ case 0x02c2: return "isupper";
+ case 0x02c3: return "iswalnum";
+ case 0x02c4: return "iswalpha";
+ case 0x02c5: return "iswascii";
+ case 0x02c6: return "iswcntrl";
+ case 0x02c7: return "iswctype";
+ case 0x02c8: return "iswdigit";
+ case 0x02c9: return "iswgraph";
+ case 0x02ca: return "iswlower";
+ case 0x02cb: return "iswprint";
+ case 0x02cc: return "iswpunct";
+ case 0x02cd: return "iswspace";
+ case 0x02ce: return "iswupper";
+ case 0x02cf: return "iswxdigit";
+ case 0x02d0: return "isxdigit";
+ case 0x02d1: return "labs";
+ case 0x02d2: return "ldexp";
+ case 0x02d3: return "ldiv";
+ case 0x02d4: return "localeconv";
+ case 0x02d5: return "localtime";
+ case 0x02d6: return "log";
+ case 0x02d7: return "log10";
+ case 0x02d8: return "longjmp";
+ case 0x02d9: return "malloc";
+ case 0x02da: return "mblen";
+ case 0x02db: return "mbstowcs";
+ case 0x02dc: return "mbtowc";
+ case 0x02dd: return "memchr";
+ case 0x02de: return "memcmp";
+ case 0x02df: return "memcpy";
+ case 0x02e0: return "memmove";
+ case 0x02e1: return "memset";
+ case 0x02e2: return "mktime";
+ case 0x02e3: return "modf";
+ case 0x02e4: return "perror";
+ case 0x02e5: return "pow";
+ case 0x02e6: return "printf";
+ case 0x02e7: return "putc";
+ case 0x02e8: return "putchar";
+ case 0x02e9: return "puts";
+ case 0x02ea: return "putwc";
+ case 0x02eb: return "putwchar";
+ case 0x02ec: return "qsort";
+ case 0x02ed: return "raise";
+ case 0x02ee: return "rand";
+ case 0x02ef: return "realloc";
+ case 0x02f0: return "remove";
+ case 0x02f1: return "rename";
+ case 0x02f2: return "rewind";
+ case 0x02f3: return "scanf";
+ case 0x02f4: return "setbuf";
+ case 0x02f5: return "setlocale";
+ case 0x02f6: return "setvbuf";
+ case 0x02f7: return "signal";
+ case 0x02f8: return "sin";
+ case 0x02f9: return "sinh";
+ case 0x02fa: return "sprintf";
+ case 0x02fb: return "sqrt";
+ case 0x02fc: return "srand";
+ case 0x02fd: return "sscanf";
+ case 0x02fe: return "strcat";
+ case 0x02ff: return "strchr";
+ case 0x0300: return "strcmp";
+ case 0x0301: return "strcoll";
+ case 0x0302: return "strcpy";
+ case 0x0303: return "strcspn";
+ case 0x0304: return "strerror";
+ case 0x0305: return "strftime";
+ case 0x0306: return "strlen";
+ case 0x0307: return "strncat";
+ case 0x0308: return "strncmp";
+ case 0x0309: return "strncpy";
+ case 0x030a: return "strpbrk";
+ case 0x030b: return "strrchr";
+ case 0x030c: return "strspn";
+ case 0x030d: return "strstr";
+ case 0x030e: return "strtod";
+ case 0x030f: return "strtok";
+ case 0x0310: return "strtol";
+ case 0x0311: return "strtoul";
+ case 0x0312: return "strxfrm";
+ case 0x0313: return "swprintf";
+ case 0x0314: return "swscanf";
+ case 0x0315: return "system";
+ case 0x0316: return "tan";
+ case 0x0317: return "tanh";
+ case 0x0318: return "time";
+ case 0x0319: return "tmpfile";
+ case 0x031a: return "tmpnam";
+ case 0x031b: return "tolower";
+ case 0x031c: return "toupper";
+ case 0x031d: return "towlower";
+ case 0x031e: return "towupper";
+ case 0x031f: return "ungetc";
+ case 0x0320: return "ungetwc";
+ case 0x0321: return "vfprintf";
+ case 0x0322: return "vfwprintf";
+ case 0x0323: return "vprintf";
+ case 0x0324: return "vsprintf";
+ case 0x0325: return "vswprintf";
+ case 0x0326: return "vwprintf";
+ case 0x0327: return "wcscat";
+ case 0x0328: return "wcschr";
+ case 0x0329: return "wcscmp";
+ case 0x032a: return "wcscoll";
+ case 0x032b: return "wcscpy";
+ case 0x032c: return "wcscspn";
+ case 0x032d: return "wcsftime";
+ case 0x032e: return "wcslen";
+ case 0x032f: return "wcsncat";
+ case 0x0330: return "wcsncmp";
+ case 0x0331: return "wcsncpy";
+ case 0x0332: return "wcspbrk";
+ case 0x0333: return "wcsrchr";
+ case 0x0334: return "wcsspn";
+ case 0x0335: return "wcsstr";
+ case 0x0336: return "wcstod";
+ case 0x0337: return "wcstok";
+ case 0x0338: return "wcstol";
+ case 0x0339: return "wcstombs";
+ case 0x033a: return "wcstoul";
+ case 0x033b: return "wcsxfrm";
+ case 0x033c: return "wctomb";
+ case 0x033d: return "wprintf";
+ case 0x033e: return "wscanf";
}
return nullptr;
}
-}
}
-#endif
+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/ntdll_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/ntdll_dll_lookup.hpp
index 1c62dbdb628..fe371d4a6e5 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/ntdll_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/ntdll_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,1333 +17,1332 @@
#define LIEF_PE_NTDLL_DLL_LOOKUP_H
#include <cstdint>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
inline const char* ntdll_dll_lookup(uint32_t i) {
- switch(i) {
- case 0x0008: return "CsrAllocateCaptureBuffer";
- case 0x0009: return "CsrAllocateMessagePointer";
- case 0x000a: return "CsrCaptureMessageBuffer";
- case 0x000b: return "CsrCaptureMessageMultiUnicodeStringsInPlace";
- case 0x000c: return "CsrCaptureMessageString";
- case 0x000d: return "CsrCaptureTimeout";
- case 0x000e: return "CsrClientCallServer";
- case 0x000f: return "CsrClientConnectToServer";
- case 0x0010: return "CsrFreeCaptureBuffer";
- case 0x0011: return "CsrGetProcessId";
- case 0x0012: return "CsrIdentifyAlertableThread";
- case 0x0013: return "CsrNewThread";
- case 0x0014: return "CsrProbeForRead";
- case 0x0015: return "CsrProbeForWrite";
- case 0x0016: return "CsrSetPriorityClass";
- case 0x0017: return "DbgBreakPoint";
- case 0x0018: return "DbgPrint";
- case 0x0019: return "DbgPrintEx";
- case 0x001a: return "DbgPrintReturnControlC";
- case 0x001b: return "DbgPrompt";
- case 0x001c: return "DbgQueryDebugFilterState";
- case 0x001d: return "DbgSetDebugFilterState";
- case 0x001e: return "DbgUiConnectToDbg";
- case 0x001f: return "DbgUiContinue";
- case 0x0020: return "DbgUiConvertStateChangeStructure";
- case 0x0021: return "DbgUiDebugActiveProcess";
- case 0x0022: return "DbgUiGetThreadDebugObject";
- case 0x0023: return "DbgUiIssueRemoteBreakin";
- case 0x0024: return "DbgUiRemoteBreakin";
- case 0x0025: return "DbgUiSetThreadDebugObject";
- case 0x0026: return "DbgUiStopDebugging";
- case 0x0027: return "DbgUiWaitStateChange";
- case 0x0028: return "DbgUserBreakPoint";
- case 0x0029: return "KiFastSystemCall";
- case 0x002a: return "KiFastSystemCallRet";
- case 0x002b: return "KiIntSystemCall";
- case 0x002c: return "KiRaiseUserExceptionDispatcher";
- case 0x002d: return "KiUserApcDispatcher";
- case 0x002e: return "KiUserCallbackDispatcher";
- case 0x002f: return "KiUserExceptionDispatcher";
- case 0x0030: return "LdrAccessOutOfProcessResource";
- case 0x0031: return "LdrAccessResource";
- case 0x0032: return "LdrAddRefDll";
- case 0x0033: return "LdrAlternateResourcesEnabled";
- case 0x0034: return "LdrCreateOutOfProcessImage";
- case 0x0035: return "LdrDestroyOutOfProcessImage";
- case 0x0036: return "LdrDisableThreadCalloutsForDll";
- case 0x0037: return "LdrEnumResources";
- case 0x0038: return "LdrEnumerateLoadedModules";
- case 0x0039: return "LdrFindCreateProcessManifest";
- case 0x003a: return "LdrFindEntryForAddress";
- case 0x003b: return "LdrFindResourceDirectory_U";
- case 0x003c: return "LdrFindResourceEx_U";
- case 0x003d: return "LdrFindResource_U";
- case 0x003e: return "LdrFlushAlternateResourceModules";
- case 0x003f: return "LdrGetDllHandle";
- case 0x0040: return "LdrGetDllHandleEx";
- case 0x0041: return "LdrGetProcedureAddress";
- case 0x0042: return "LdrHotPatchRoutine";
- case 0x0043: return "LdrInitShimEngineDynamic";
- case 0x0044: return "LdrInitializeThunk";
- case 0x0045: return "LdrLoadAlternateResourceModule";
- case 0x0046: return "LdrLoadDll";
- case 0x0047: return "LdrLockLoaderLock";
- case 0x0048: return "LdrProcessRelocationBlock";
- case 0x0049: return "LdrQueryImageFileExecutionOptions";
- case 0x004a: return "LdrQueryProcessModuleInformation";
- case 0x004b: return "LdrSetAppCompatDllRedirectionCallback";
- case 0x004c: return "LdrSetDllManifestProber";
- case 0x004d: return "LdrShutdownProcess";
- case 0x004e: return "LdrShutdownThread";
- case 0x004f: return "LdrUnloadAlternateResourceModule";
- case 0x0050: return "LdrUnloadDll";
- case 0x0051: return "LdrUnlockLoaderLock";
- case 0x0052: return "LdrVerifyImageMatchesChecksum";
- case 0x0053: return "NlsAnsiCodePage";
- case 0x0054: return "NlsMbCodePageTag";
- case 0x0055: return "NlsMbOemCodePageTag";
- case 0x0056: return "NtAcceptConnectPort";
- case 0x0057: return "NtAccessCheck";
- case 0x0058: return "NtAccessCheckAndAuditAlarm";
- case 0x0059: return "NtAccessCheckByType";
- case 0x005a: return "NtAccessCheckByTypeAndAuditAlarm";
- case 0x005b: return "NtAccessCheckByTypeResultList";
- case 0x005c: return "NtAccessCheckByTypeResultListAndAuditAlarm";
- case 0x005d: return "NtAccessCheckByTypeResultListAndAuditAlarmByHandle";
- case 0x005e: return "NtAddAtom";
- case 0x005f: return "NtAddBootEntry";
- case 0x0060: return "NtAdjustGroupsToken";
- case 0x0061: return "NtAdjustPrivilegesToken";
- case 0x0062: return "NtAlertResumeThread";
- case 0x0063: return "NtAlertThread";
- case 0x0064: return "NtAllocateLocallyUniqueId";
- case 0x0065: return "NtAllocateUserPhysicalPages";
- case 0x0066: return "NtAllocateUuids";
- case 0x0067: return "NtAllocateVirtualMemory";
- case 0x0068: return "NtAreMappedFilesTheSame";
- case 0x0069: return "NtAssignProcessToJobObject";
- case 0x006a: return "NtCallbackReturn";
- case 0x006b: return "NtCancelDeviceWakeupRequest";
- case 0x006c: return "NtCancelIoFile";
- case 0x006d: return "NtCancelTimer";
- case 0x006e: return "NtClearEvent";
- case 0x006f: return "NtClose";
- case 0x0070: return "NtCloseObjectAuditAlarm";
- case 0x0071: return "NtCompactKeys";
- case 0x0072: return "NtCompareTokens";
- case 0x0073: return "NtCompleteConnectPort";
- case 0x0074: return "NtCompressKey";
- case 0x0075: return "NtConnectPort";
- case 0x0076: return "NtContinue";
- case 0x0077: return "NtCreateDebugObject";
- case 0x0078: return "NtCreateDirectoryObject";
- case 0x0079: return "NtCreateEvent";
- case 0x007a: return "NtCreateEventPair";
- case 0x007b: return "NtCreateFile";
- case 0x007c: return "NtCreateIoCompletion";
- case 0x007d: return "NtCreateJobObject";
- case 0x007e: return "NtCreateJobSet";
- case 0x007f: return "NtCreateKey";
- case 0x0080: return "NtCreateKeyedEvent";
- case 0x0081: return "NtCreateMailslotFile";
- case 0x0082: return "NtCreateMutant";
- case 0x0083: return "NtCreateNamedPipeFile";
- case 0x0084: return "NtCreatePagingFile";
- case 0x0085: return "NtCreatePort";
- case 0x0086: return "NtCreateProcess";
- case 0x0087: return "NtCreateProcessEx";
- case 0x0088: return "NtCreateProfile";
- case 0x0089: return "NtCreateSection";
- case 0x008a: return "NtCreateSemaphore";
- case 0x008b: return "NtCreateSymbolicLinkObject";
- case 0x008c: return "NtCreateThread";
- case 0x008d: return "NtCreateTimer";
- case 0x008e: return "NtCreateToken";
- case 0x008f: return "NtCreateWaitablePort";
- case 0x0090: return "NtCurrentTeb";
- case 0x0091: return "NtDebugActiveProcess";
- case 0x0092: return "NtDebugContinue";
- case 0x0093: return "NtDelayExecution";
- case 0x0094: return "NtDeleteAtom";
- case 0x0095: return "NtDeleteBootEntry";
- case 0x0096: return "NtDeleteFile";
- case 0x0097: return "NtDeleteKey";
- case 0x0098: return "NtDeleteObjectAuditAlarm";
- case 0x0099: return "NtDeleteValueKey";
- case 0x009a: return "NtDeviceIoControlFile";
- case 0x009b: return "NtDisplayString";
- case 0x009c: return "NtDuplicateObject";
- case 0x009d: return "NtDuplicateToken";
- case 0x009e: return "NtEnumerateBootEntries";
- case 0x009f: return "NtEnumerateKey";
- case 0x00a0: return "NtEnumerateSystemEnvironmentValuesEx";
- case 0x00a1: return "NtEnumerateValueKey";
- case 0x00a2: return "NtExtendSection";
- case 0x00a3: return "NtFilterToken";
- case 0x00a4: return "NtFindAtom";
- case 0x00a5: return "NtFlushBuffersFile";
- case 0x00a6: return "NtFlushInstructionCache";
- case 0x00a7: return "NtFlushKey";
- case 0x00a8: return "NtFlushVirtualMemory";
- case 0x00a9: return "NtFlushWriteBuffer";
- case 0x00aa: return "NtFreeUserPhysicalPages";
- case 0x00ab: return "NtFreeVirtualMemory";
- case 0x00ac: return "NtFsControlFile";
- case 0x00ad: return "NtGetContextThread";
- case 0x00ae: return "NtGetDevicePowerState";
- case 0x00af: return "NtGetPlugPlayEvent";
- case 0x00b0: return "NtGetWriteWatch";
- case 0x00b1: return "NtImpersonateAnonymousToken";
- case 0x00b2: return "NtImpersonateClientOfPort";
- case 0x00b3: return "NtImpersonateThread";
- case 0x00b4: return "NtInitializeRegistry";
- case 0x00b5: return "NtInitiatePowerAction";
- case 0x00b6: return "NtIsProcessInJob";
- case 0x00b7: return "NtIsSystemResumeAutomatic";
- case 0x00b8: return "NtListenPort";
- case 0x00b9: return "NtLoadDriver";
- case 0x00bb: return "NtLoadKey";
- case 0x00ba: return "NtLoadKey2";
- case 0x00bc: return "NtLockFile";
- case 0x00bd: return "NtLockProductActivationKeys";
- case 0x00be: return "NtLockRegistryKey";
- case 0x00bf: return "NtLockVirtualMemory";
- case 0x00c0: return "NtMakePermanentObject";
- case 0x00c1: return "NtMakeTemporaryObject";
- case 0x00c2: return "NtMapUserPhysicalPages";
- case 0x00c3: return "NtMapUserPhysicalPagesScatter";
- case 0x00c4: return "NtMapViewOfSection";
- case 0x00c5: return "NtModifyBootEntry";
- case 0x00c6: return "NtNotifyChangeDirectoryFile";
- case 0x00c7: return "NtNotifyChangeKey";
- case 0x00c8: return "NtNotifyChangeMultipleKeys";
- case 0x00c9: return "NtOpenDirectoryObject";
- case 0x00ca: return "NtOpenEvent";
- case 0x00cb: return "NtOpenEventPair";
- case 0x00cc: return "NtOpenFile";
- case 0x00cd: return "NtOpenIoCompletion";
- case 0x00ce: return "NtOpenJobObject";
- case 0x00cf: return "NtOpenKey";
- case 0x00d0: return "NtOpenKeyedEvent";
- case 0x00d1: return "NtOpenMutant";
- case 0x00d2: return "NtOpenObjectAuditAlarm";
- case 0x00d3: return "NtOpenProcess";
- case 0x00d4: return "NtOpenProcessToken";
- case 0x00d5: return "NtOpenProcessTokenEx";
- case 0x00d6: return "NtOpenSection";
- case 0x00d7: return "NtOpenSemaphore";
- case 0x00d8: return "NtOpenSymbolicLinkObject";
- case 0x00d9: return "NtOpenThread";
- case 0x00da: return "NtOpenThreadToken";
- case 0x00db: return "NtOpenThreadTokenEx";
- case 0x00dc: return "NtOpenTimer";
- case 0x00dd: return "NtPlugPlayControl";
- case 0x00de: return "NtPowerInformation";
- case 0x00df: return "NtPrivilegeCheck";
- case 0x00e0: return "NtPrivilegeObjectAuditAlarm";
- case 0x00e1: return "NtPrivilegedServiceAuditAlarm";
- case 0x00e2: return "NtProtectVirtualMemory";
- case 0x00e3: return "NtPulseEvent";
- case 0x00e4: return "NtQueryAttributesFile";
- case 0x00e5: return "NtQueryBootEntryOrder";
- case 0x00e6: return "NtQueryBootOptions";
- case 0x00e7: return "NtQueryDebugFilterState";
- case 0x00e8: return "NtQueryDefaultLocale";
- case 0x00e9: return "NtQueryDefaultUILanguage";
- case 0x00ea: return "NtQueryDirectoryFile";
- case 0x00eb: return "NtQueryDirectoryObject";
- case 0x00ec: return "NtQueryEaFile";
- case 0x00ed: return "NtQueryEvent";
- case 0x00ee: return "NtQueryFullAttributesFile";
- case 0x00ef: return "NtQueryInformationAtom";
- case 0x00f0: return "NtQueryInformationFile";
- case 0x00f1: return "NtQueryInformationJobObject";
- case 0x00f2: return "NtQueryInformationPort";
- case 0x00f3: return "NtQueryInformationProcess";
- case 0x00f4: return "NtQueryInformationThread";
- case 0x00f5: return "NtQueryInformationToken";
- case 0x00f6: return "NtQueryInstallUILanguage";
- case 0x00f7: return "NtQueryIntervalProfile";
- case 0x00f8: return "NtQueryIoCompletion";
- case 0x00f9: return "NtQueryKey";
- case 0x00fa: return "NtQueryMultipleValueKey";
- case 0x00fb: return "NtQueryMutant";
- case 0x00fc: return "NtQueryObject";
- case 0x00fd: return "NtQueryOpenSubKeys";
- case 0x00fe: return "NtQueryPerformanceCounter";
- case 0x00ff: return "NtQueryPortInformationProcess";
- case 0x0100: return "NtQueryQuotaInformationFile";
- case 0x0101: return "NtQuerySection";
- case 0x0102: return "NtQuerySecurityObject";
- case 0x0103: return "NtQuerySemaphore";
- case 0x0104: return "NtQuerySymbolicLinkObject";
- case 0x0105: return "NtQuerySystemEnvironmentValue";
- case 0x0106: return "NtQuerySystemEnvironmentValueEx";
- case 0x0107: return "NtQuerySystemInformation";
- case 0x0108: return "NtQuerySystemTime";
- case 0x0109: return "NtQueryTimer";
- case 0x010a: return "NtQueryTimerResolution";
- case 0x010b: return "NtQueryValueKey";
- case 0x010c: return "NtQueryVirtualMemory";
- case 0x010d: return "NtQueryVolumeInformationFile";
- case 0x010e: return "NtQueueApcThread";
- case 0x010f: return "NtRaiseException";
- case 0x0110: return "NtRaiseHardError";
- case 0x0111: return "NtReadFile";
- case 0x0112: return "NtReadFileScatter";
- case 0x0113: return "NtReadRequestData";
- case 0x0114: return "NtReadVirtualMemory";
- case 0x0115: return "NtRegisterThreadTerminatePort";
- case 0x0116: return "NtReleaseKeyedEvent";
- case 0x0117: return "NtReleaseMutant";
- case 0x0118: return "NtReleaseSemaphore";
- case 0x0119: return "NtRemoveIoCompletion";
- case 0x011a: return "NtRemoveProcessDebug";
- case 0x011b: return "NtRenameKey";
- case 0x011c: return "NtReplaceKey";
- case 0x011d: return "NtReplyPort";
- case 0x011e: return "NtReplyWaitReceivePort";
- case 0x011f: return "NtReplyWaitReceivePortEx";
- case 0x0120: return "NtReplyWaitReplyPort";
- case 0x0121: return "NtRequestDeviceWakeup";
- case 0x0122: return "NtRequestPort";
- case 0x0123: return "NtRequestWaitReplyPort";
- case 0x0124: return "NtRequestWakeupLatency";
- case 0x0125: return "NtResetEvent";
- case 0x0126: return "NtResetWriteWatch";
- case 0x0127: return "NtRestoreKey";
- case 0x0128: return "NtResumeProcess";
- case 0x0129: return "NtResumeThread";
- case 0x012a: return "NtSaveKey";
- case 0x012b: return "NtSaveKeyEx";
- case 0x012c: return "NtSaveMergedKeys";
- case 0x012d: return "NtSecureConnectPort";
- case 0x012e: return "NtSetBootEntryOrder";
- case 0x012f: return "NtSetBootOptions";
- case 0x0130: return "NtSetContextThread";
- case 0x0131: return "NtSetDebugFilterState";
- case 0x0132: return "NtSetDefaultHardErrorPort";
- case 0x0133: return "NtSetDefaultLocale";
- case 0x0134: return "NtSetDefaultUILanguage";
- case 0x0135: return "NtSetEaFile";
- case 0x0136: return "NtSetEvent";
- case 0x0137: return "NtSetEventBoostPriority";
- case 0x0138: return "NtSetHighEventPair";
- case 0x0139: return "NtSetHighWaitLowEventPair";
- case 0x013a: return "NtSetInformationDebugObject";
- case 0x013b: return "NtSetInformationFile";
- case 0x013c: return "NtSetInformationJobObject";
- case 0x013d: return "NtSetInformationKey";
- case 0x013e: return "NtSetInformationObject";
- case 0x013f: return "NtSetInformationProcess";
- case 0x0140: return "NtSetInformationThread";
- case 0x0141: return "NtSetInformationToken";
- case 0x0142: return "NtSetIntervalProfile";
- case 0x0143: return "NtSetIoCompletion";
- case 0x0144: return "NtSetLdtEntries";
- case 0x0145: return "NtSetLowEventPair";
- case 0x0146: return "NtSetLowWaitHighEventPair";
- case 0x0147: return "NtSetQuotaInformationFile";
- case 0x0148: return "NtSetSecurityObject";
- case 0x0149: return "NtSetSystemEnvironmentValue";
- case 0x014a: return "NtSetSystemEnvironmentValueEx";
- case 0x014b: return "NtSetSystemInformation";
- case 0x014c: return "NtSetSystemPowerState";
- case 0x014d: return "NtSetSystemTime";
- case 0x014e: return "NtSetThreadExecutionState";
- case 0x014f: return "NtSetTimer";
- case 0x0150: return "NtSetTimerResolution";
- case 0x0151: return "NtSetUuidSeed";
- case 0x0152: return "NtSetValueKey";
- case 0x0153: return "NtSetVolumeInformationFile";
- case 0x0154: return "NtShutdownSystem";
- case 0x0155: return "NtSignalAndWaitForSingleObject";
- case 0x0156: return "NtStartProfile";
- case 0x0157: return "NtStopProfile";
- case 0x0158: return "NtSuspendProcess";
- case 0x0159: return "NtSuspendThread";
- case 0x015a: return "NtSystemDebugControl";
- case 0x015b: return "NtTerminateJobObject";
- case 0x015c: return "NtTerminateProcess";
- case 0x015d: return "NtTerminateThread";
- case 0x015e: return "NtTestAlert";
- case 0x015f: return "NtTraceEvent";
- case 0x0160: return "NtTranslateFilePath";
- case 0x0161: return "NtUnloadDriver";
- case 0x0162: return "NtUnloadKey";
- case 0x0163: return "NtUnloadKeyEx";
- case 0x0164: return "NtUnlockFile";
- case 0x0165: return "NtUnlockVirtualMemory";
- case 0x0166: return "NtUnmapViewOfSection";
- case 0x0167: return "NtVdmControl";
- case 0x0168: return "NtWaitForDebugEvent";
- case 0x0169: return "NtWaitForKeyedEvent";
- case 0x016a: return "NtWaitForMultipleObjects";
- case 0x016b: return "NtWaitForSingleObject";
- case 0x016c: return "NtWaitHighEventPair";
- case 0x016d: return "NtWaitLowEventPair";
- case 0x016e: return "NtWriteFile";
- case 0x016f: return "NtWriteFileGather";
- case 0x0170: return "NtWriteRequestData";
- case 0x0171: return "NtWriteVirtualMemory";
- case 0x0172: return "NtYieldExecution";
- case 0x0173: return "PfxFindPrefix";
- case 0x0174: return "PfxInitialize";
- case 0x0175: return "PfxInsertPrefix";
- case 0x0176: return "PfxRemovePrefix";
- case 0x0001: return "PropertyLengthAsVariant";
- case 0x0177: return "RtlAbortRXact";
- case 0x0178: return "RtlAbsoluteToSelfRelativeSD";
- case 0x0179: return "RtlAcquirePebLock";
- case 0x017a: return "RtlAcquireResourceExclusive";
- case 0x017b: return "RtlAcquireResourceShared";
- case 0x017c: return "RtlActivateActivationContext";
- case 0x017d: return "RtlActivateActivationContextEx";
- case 0x017e: return "RtlActivateActivationContextUnsafeFast";
- case 0x017f: return "RtlAddAccessAllowedAce";
- case 0x0180: return "RtlAddAccessAllowedAceEx";
- case 0x0181: return "RtlAddAccessAllowedObjectAce";
- case 0x0182: return "RtlAddAccessDeniedAce";
- case 0x0183: return "RtlAddAccessDeniedAceEx";
- case 0x0184: return "RtlAddAccessDeniedObjectAce";
- case 0x0185: return "RtlAddAce";
- case 0x0186: return "RtlAddActionToRXact";
- case 0x0187: return "RtlAddAtomToAtomTable";
- case 0x0188: return "RtlAddAttributeActionToRXact";
- case 0x0189: return "RtlAddAuditAccessAce";
- case 0x018a: return "RtlAddAuditAccessAceEx";
- case 0x018b: return "RtlAddAuditAccessObjectAce";
- case 0x018c: return "RtlAddCompoundAce";
- case 0x018d: return "RtlAddRange";
- case 0x018e: return "RtlAddRefActivationContext";
- case 0x018f: return "RtlAddRefMemoryStream";
- case 0x0190: return "RtlAddVectoredExceptionHandler";
- case 0x0191: return "RtlAddressInSectionTable";
- case 0x0192: return "RtlAdjustPrivilege";
- case 0x0193: return "RtlAllocateAndInitializeSid";
- case 0x0194: return "RtlAllocateHandle";
- case 0x0195: return "RtlAllocateHeap";
- case 0x0196: return "RtlAnsiCharToUnicodeChar";
- case 0x0197: return "RtlAnsiStringToUnicodeSize";
- case 0x0198: return "RtlAnsiStringToUnicodeString";
- case 0x0199: return "RtlAppendAsciizToString";
- case 0x019a: return "RtlAppendPathElement";
- case 0x019b: return "RtlAppendStringToString";
- case 0x019c: return "RtlAppendUnicodeStringToString";
- case 0x019d: return "RtlAppendUnicodeToString";
- case 0x019e: return "RtlApplicationVerifierStop";
- case 0x019f: return "RtlApplyRXact";
- case 0x01a0: return "RtlApplyRXactNoFlush";
- case 0x01a1: return "RtlAreAllAccessesGranted";
- case 0x01a2: return "RtlAreAnyAccessesGranted";
- case 0x01a3: return "RtlAreBitsClear";
- case 0x01a4: return "RtlAreBitsSet";
- case 0x01a6: return "RtlAssert";
- case 0x01a5: return "RtlAssert2";
- case 0x01a7: return "RtlCancelTimer";
- case 0x01a8: return "RtlCaptureContext";
- case 0x01a9: return "RtlCaptureStackBackTrace";
- case 0x01aa: return "RtlCaptureStackContext";
- case 0x01ab: return "RtlCharToInteger";
- case 0x01ac: return "RtlCheckForOrphanedCriticalSections";
- case 0x01ad: return "RtlCheckProcessParameters";
- case 0x01ae: return "RtlCheckRegistryKey";
- case 0x01af: return "RtlClearAllBits";
- case 0x01b0: return "RtlClearBits";
- case 0x01b1: return "RtlCloneMemoryStream";
- case 0x01b2: return "RtlCommitMemoryStream";
- case 0x01b3: return "RtlCompactHeap";
- case 0x01b4: return "RtlCompareMemory";
- case 0x01b5: return "RtlCompareMemoryUlong";
- case 0x01b6: return "RtlCompareString";
- case 0x01b7: return "RtlCompareUnicodeString";
- case 0x01b8: return "RtlCompressBuffer";
- case 0x01b9: return "RtlComputeCrc32";
- case 0x01ba: return "RtlComputeImportTableHash";
- case 0x01bb: return "RtlComputePrivatizedDllName_U";
- case 0x01bc: return "RtlConsoleMultiByteToUnicodeN";
- case 0x01bd: return "RtlConvertExclusiveToShared";
- case 0x01be: return "RtlConvertLongToLargeInteger";
- case 0x0002: return "RtlConvertPropertyToVariant";
- case 0x01bf: return "RtlConvertSharedToExclusive";
- case 0x01c0: return "RtlConvertSidToUnicodeString";
- case 0x01c1: return "RtlConvertToAutoInheritSecurityObject";
- case 0x01c2: return "RtlConvertUiListToApiList";
- case 0x01c3: return "RtlConvertUlongToLargeInteger";
- case 0x0003: return "RtlConvertVariantToProperty";
- case 0x01c4: return "RtlCopyLuid";
- case 0x01c5: return "RtlCopyLuidAndAttributesArray";
- case 0x01c6: return "RtlCopyMemoryStreamTo";
- case 0x01c7: return "RtlCopyOutOfProcessMemoryStreamTo";
- case 0x01c8: return "RtlCopyRangeList";
- case 0x01c9: return "RtlCopySecurityDescriptor";
- case 0x01ca: return "RtlCopySid";
- case 0x01cb: return "RtlCopySidAndAttributesArray";
- case 0x01cc: return "RtlCopyString";
- case 0x01cd: return "RtlCopyUnicodeString";
- case 0x01ce: return "RtlCreateAcl";
- case 0x01cf: return "RtlCreateActivationContext";
- case 0x01d0: return "RtlCreateAndSetSD";
- case 0x01d1: return "RtlCreateAtomTable";
- case 0x01d2: return "RtlCreateBootStatusDataFile";
- case 0x01d3: return "RtlCreateEnvironment";
- case 0x01d4: return "RtlCreateHeap";
- case 0x01d5: return "RtlCreateProcessParameters";
- case 0x01d6: return "RtlCreateQueryDebugBuffer";
- case 0x01d7: return "RtlCreateRegistryKey";
- case 0x01d8: return "RtlCreateSecurityDescriptor";
- case 0x01d9: return "RtlCreateSystemVolumeInformationFolder";
- case 0x01da: return "RtlCreateTagHeap";
- case 0x01db: return "RtlCreateTimer";
- case 0x01dc: return "RtlCreateTimerQueue";
- case 0x01dd: return "RtlCreateUnicodeString";
- case 0x01de: return "RtlCreateUnicodeStringFromAsciiz";
- case 0x01df: return "RtlCreateUserProcess";
- case 0x01e0: return "RtlCreateUserSecurityObject";
- case 0x01e1: return "RtlCreateUserThread";
- case 0x01e2: return "RtlCustomCPToUnicodeN";
- case 0x01e3: return "RtlCutoverTimeToSystemTime";
- case 0x01e4: return "RtlDeNormalizeProcessParams";
- case 0x01e5: return "RtlDeactivateActivationContext";
- case 0x01e6: return "RtlDeactivateActivationContextUnsafeFast";
- case 0x01e7: return "RtlDebugPrintTimes";
- case 0x01e8: return "RtlDecodePointer";
- case 0x01e9: return "RtlDecodeSystemPointer";
- case 0x01ea: return "RtlDecompressBuffer";
- case 0x01eb: return "RtlDecompressFragment";
- case 0x01ec: return "RtlDefaultNpAcl";
- case 0x01ed: return "RtlDelete";
- case 0x01ee: return "RtlDeleteAce";
- case 0x01ef: return "RtlDeleteAtomFromAtomTable";
- case 0x01f0: return "RtlDeleteCriticalSection";
- case 0x01f1: return "RtlDeleteElementGenericTable";
- case 0x01f2: return "RtlDeleteElementGenericTableAvl";
- case 0x01f3: return "RtlDeleteNoSplay";
- case 0x01f4: return "RtlDeleteOwnersRanges";
- case 0x01f5: return "RtlDeleteRange";
- case 0x01f6: return "RtlDeleteRegistryValue";
- case 0x01f7: return "RtlDeleteResource";
- case 0x01f8: return "RtlDeleteSecurityObject";
- case 0x01f9: return "RtlDeleteTimer";
- case 0x01fa: return "RtlDeleteTimerQueue";
- case 0x01fb: return "RtlDeleteTimerQueueEx";
- case 0x01fc: return "RtlDeregisterWait";
- case 0x01fd: return "RtlDeregisterWaitEx";
- case 0x01fe: return "RtlDestroyAtomTable";
- case 0x01ff: return "RtlDestroyEnvironment";
- case 0x0200: return "RtlDestroyHandleTable";
- case 0x0201: return "RtlDestroyHeap";
- case 0x0202: return "RtlDestroyProcessParameters";
- case 0x0203: return "RtlDestroyQueryDebugBuffer";
- case 0x0204: return "RtlDetermineDosPathNameType_U";
- case 0x0205: return "RtlDllShutdownInProgress";
- case 0x0206: return "RtlDnsHostNameToComputerName";
- case 0x0207: return "RtlDoesFileExists_U";
- case 0x0208: return "RtlDosApplyFileIsolationRedirection_Ustr";
- case 0x0209: return "RtlDosPathNameToNtPathName_U";
- case 0x020a: return "RtlDosSearchPath_U";
- case 0x020b: return "RtlDosSearchPath_Ustr";
- case 0x020c: return "RtlDowncaseUnicodeChar";
- case 0x020d: return "RtlDowncaseUnicodeString";
- case 0x020e: return "RtlDumpResource";
- case 0x020f: return "RtlDuplicateUnicodeString";
- case 0x0210: return "RtlEmptyAtomTable";
- case 0x0211: return "RtlEnableEarlyCriticalSectionEventCreation";
- case 0x0212: return "RtlEncodePointer";
- case 0x0213: return "RtlEncodeSystemPointer";
- case 0x0214: return "RtlEnlargedIntegerMultiply";
- case 0x0215: return "RtlEnlargedUnsignedDivide";
- case 0x0216: return "RtlEnlargedUnsignedMultiply";
- case 0x0217: return "RtlEnterCriticalSection";
- case 0x0218: return "RtlEnumProcessHeaps";
- case 0x0219: return "RtlEnumerateGenericTable";
- case 0x021a: return "RtlEnumerateGenericTableAvl";
- case 0x021b: return "RtlEnumerateGenericTableLikeADirectory";
- case 0x021c: return "RtlEnumerateGenericTableWithoutSplaying";
- case 0x021d: return "RtlEnumerateGenericTableWithoutSplayingAvl";
- case 0x021e: return "RtlEqualComputerName";
- case 0x021f: return "RtlEqualDomainName";
- case 0x0220: return "RtlEqualLuid";
- case 0x0221: return "RtlEqualPrefixSid";
- case 0x0222: return "RtlEqualSid";
- case 0x0223: return "RtlEqualString";
- case 0x0224: return "RtlEqualUnicodeString";
- case 0x0225: return "RtlEraseUnicodeString";
- case 0x0226: return "RtlExitUserThread";
- case 0x0227: return "RtlExpandEnvironmentStrings_U";
- case 0x0228: return "RtlExtendHeap";
- case 0x0229: return "RtlExtendedIntegerMultiply";
- case 0x022a: return "RtlExtendedLargeIntegerDivide";
- case 0x022b: return "RtlExtendedMagicDivide";
- case 0x022c: return "RtlFillMemory";
- case 0x022d: return "RtlFillMemoryUlong";
- case 0x022e: return "RtlFinalReleaseOutOfProcessMemoryStream";
- case 0x022f: return "RtlFindActivationContextSectionGuid";
- case 0x0230: return "RtlFindActivationContextSectionString";
- case 0x0231: return "RtlFindCharInUnicodeString";
- case 0x0232: return "RtlFindClearBits";
- case 0x0233: return "RtlFindClearBitsAndSet";
- case 0x0234: return "RtlFindClearRuns";
- case 0x0235: return "RtlFindLastBackwardRunClear";
- case 0x0236: return "RtlFindLeastSignificantBit";
- case 0x0237: return "RtlFindLongestRunClear";
- case 0x0238: return "RtlFindMessage";
- case 0x0239: return "RtlFindMostSignificantBit";
- case 0x023a: return "RtlFindNextForwardRunClear";
- case 0x023b: return "RtlFindRange";
- case 0x023c: return "RtlFindSetBits";
- case 0x023d: return "RtlFindSetBitsAndClear";
- case 0x023e: return "RtlFirstEntrySList";
- case 0x023f: return "RtlFirstFreeAce";
- case 0x0240: return "RtlFlushSecureMemoryCache";
- case 0x0241: return "RtlFormatCurrentUserKeyPath";
- case 0x0242: return "RtlFormatMessage";
- case 0x0243: return "RtlFreeAnsiString";
- case 0x0244: return "RtlFreeHandle";
- case 0x0245: return "RtlFreeHeap";
- case 0x0246: return "RtlFreeOemString";
- case 0x0247: return "RtlFreeRangeList";
- case 0x0248: return "RtlFreeSid";
- case 0x0249: return "RtlFreeThreadActivationContextStack";
- case 0x024a: return "RtlFreeUnicodeString";
- case 0x024b: return "RtlFreeUserThreadStack";
- case 0x024c: return "RtlGUIDFromString";
- case 0x024d: return "RtlGenerate8dot3Name";
- case 0x024e: return "RtlGetAce";
- case 0x024f: return "RtlGetActiveActivationContext";
- case 0x0250: return "RtlGetCallersAddress";
- case 0x0251: return "RtlGetCompressionWorkSpaceSize";
- case 0x0252: return "RtlGetControlSecurityDescriptor";
- case 0x0253: return "RtlGetCurrentDirectory_U";
- case 0x0254: return "RtlGetCurrentPeb";
- case 0x0255: return "RtlGetDaclSecurityDescriptor";
- case 0x0256: return "RtlGetElementGenericTable";
- case 0x0257: return "RtlGetElementGenericTableAvl";
- case 0x0258: return "RtlGetFirstRange";
- case 0x0259: return "RtlGetFrame";
- case 0x025a: return "RtlGetFullPathName_U";
- case 0x025b: return "RtlGetGroupSecurityDescriptor";
- case 0x025c: return "RtlGetLastNtStatus";
- case 0x025d: return "RtlGetLastWin32Error";
- case 0x025e: return "RtlGetLengthWithoutLastFullDosOrNtPathElement";
- case 0x025f: return "RtlGetLengthWithoutTrailingPathSeperators";
- case 0x0260: return "RtlGetLongestNtPathLength";
- case 0x0261: return "RtlGetNativeSystemInformation";
- case 0x0262: return "RtlGetNextRange";
- case 0x0263: return "RtlGetNtGlobalFlags";
- case 0x0264: return "RtlGetNtProductType";
- case 0x0265: return "RtlGetNtVersionNumbers";
- case 0x0266: return "RtlGetOwnerSecurityDescriptor";
- case 0x0267: return "RtlGetProcessHeaps";
- case 0x0268: return "RtlGetSaclSecurityDescriptor";
- case 0x0269: return "RtlGetSecurityDescriptorRMControl";
- case 0x026a: return "RtlGetSetBootStatusData";
- case 0x026b: return "RtlGetUnloadEventTrace";
- case 0x026c: return "RtlGetUserInfoHeap";
- case 0x026d: return "RtlGetVersion";
- case 0x026e: return "RtlHashUnicodeString";
- case 0x026f: return "RtlIdentifierAuthoritySid";
- case 0x0270: return "RtlImageDirectoryEntryToData";
- case 0x0271: return "RtlImageNtHeader";
- case 0x0272: return "RtlImageRvaToSection";
- case 0x0273: return "RtlImageRvaToVa";
- case 0x0274: return "RtlImpersonateSelf";
- case 0x0275: return "RtlInitAnsiString";
- case 0x0276: return "RtlInitCodePageTable";
- case 0x0277: return "RtlInitMemoryStream";
- case 0x0278: return "RtlInitNlsTables";
- case 0x0279: return "RtlInitOutOfProcessMemoryStream";
- case 0x027a: return "RtlInitString";
- case 0x027b: return "RtlInitUnicodeString";
- case 0x027c: return "RtlInitUnicodeStringEx";
- case 0x027d: return "RtlInitializeAtomPackage";
- case 0x027e: return "RtlInitializeBitMap";
- case 0x027f: return "RtlInitializeContext";
- case 0x0280: return "RtlInitializeCriticalSection";
- case 0x0281: return "RtlInitializeCriticalSectionAndSpinCount";
- case 0x0282: return "RtlInitializeGenericTable";
- case 0x0283: return "RtlInitializeGenericTableAvl";
- case 0x0284: return "RtlInitializeHandleTable";
- case 0x0285: return "RtlInitializeRXact";
- case 0x0286: return "RtlInitializeRangeList";
- case 0x0287: return "RtlInitializeResource";
- case 0x0288: return "RtlInitializeSListHead";
- case 0x0289: return "RtlInitializeSid";
- case 0x028a: return "RtlInitializeStackTraceDataBase";
- case 0x028b: return "RtlInsertElementGenericTable";
- case 0x028c: return "RtlInsertElementGenericTableAvl";
- case 0x028d: return "RtlInt64ToUnicodeString";
- case 0x028e: return "RtlIntegerToChar";
- case 0x028f: return "RtlIntegerToUnicodeString";
- case 0x0290: return "RtlInterlockedFlushSList";
- case 0x0291: return "RtlInterlockedPopEntrySList";
- case 0x0292: return "RtlInterlockedPushEntrySList";
- case 0x0004: return "RtlInterlockedPushListSList";
- case 0x0293: return "RtlInvertRangeList";
- case 0x0294: return "RtlIpv4AddressToStringA";
- case 0x0295: return "RtlIpv4AddressToStringExA";
- case 0x0296: return "RtlIpv4AddressToStringExW";
- case 0x0297: return "RtlIpv4AddressToStringW";
- case 0x0298: return "RtlIpv4StringToAddressA";
- case 0x0299: return "RtlIpv4StringToAddressExA";
- case 0x029a: return "RtlIpv4StringToAddressExW";
- case 0x029b: return "RtlIpv4StringToAddressW";
- case 0x029c: return "RtlIpv6AddressToStringA";
- case 0x029d: return "RtlIpv6AddressToStringExA";
- case 0x029e: return "RtlIpv6AddressToStringExW";
- case 0x029f: return "RtlIpv6AddressToStringW";
- case 0x02a0: return "RtlIpv6StringToAddressA";
- case 0x02a1: return "RtlIpv6StringToAddressExA";
- case 0x02a2: return "RtlIpv6StringToAddressExW";
- case 0x02a3: return "RtlIpv6StringToAddressW";
- case 0x02a4: return "RtlIsActivationContextActive";
- case 0x02a5: return "RtlIsDosDeviceName_U";
- case 0x02a6: return "RtlIsGenericTableEmpty";
- case 0x02a7: return "RtlIsGenericTableEmptyAvl";
- case 0x02a8: return "RtlIsNameLegalDOS8Dot3";
- case 0x02a9: return "RtlIsRangeAvailable";
- case 0x02aa: return "RtlIsTextUnicode";
- case 0x02ab: return "RtlIsThreadWithinLoaderCallout";
- case 0x02ac: return "RtlIsValidHandle";
- case 0x02ad: return "RtlIsValidIndexHandle";
- case 0x02ae: return "RtlLargeIntegerAdd";
- case 0x02af: return "RtlLargeIntegerArithmeticShift";
- case 0x02b0: return "RtlLargeIntegerDivide";
- case 0x02b1: return "RtlLargeIntegerNegate";
- case 0x02b2: return "RtlLargeIntegerShiftLeft";
- case 0x02b3: return "RtlLargeIntegerShiftRight";
- case 0x02b4: return "RtlLargeIntegerSubtract";
- case 0x02b5: return "RtlLargeIntegerToChar";
- case 0x02b6: return "RtlLeaveCriticalSection";
- case 0x02b7: return "RtlLengthRequiredSid";
- case 0x02b8: return "RtlLengthSecurityDescriptor";
- case 0x02b9: return "RtlLengthSid";
- case 0x02ba: return "RtlLocalTimeToSystemTime";
- case 0x02bb: return "RtlLockBootStatusData";
- case 0x02bc: return "RtlLockHeap";
- case 0x02bd: return "RtlLockMemoryStreamRegion";
- case 0x02be: return "RtlLogStackBackTrace";
- case 0x02bf: return "RtlLookupAtomInAtomTable";
- case 0x02c0: return "RtlLookupElementGenericTable";
- case 0x02c1: return "RtlLookupElementGenericTableAvl";
- case 0x02c2: return "RtlMakeSelfRelativeSD";
- case 0x02c3: return "RtlMapGenericMask";
- case 0x02c4: return "RtlMapSecurityErrorToNtStatus";
- case 0x02c5: return "RtlMergeRangeLists";
- case 0x02c6: return "RtlMoveMemory";
- case 0x02c7: return "RtlMultiAppendUnicodeStringBuffer";
- case 0x02c8: return "RtlMultiByteToUnicodeN";
- case 0x02c9: return "RtlMultiByteToUnicodeSize";
- case 0x02ca: return "RtlNewInstanceSecurityObject";
- case 0x02cb: return "RtlNewSecurityGrantedAccess";
- case 0x02cc: return "RtlNewSecurityObject";
- case 0x02cd: return "RtlNewSecurityObjectEx";
- case 0x02ce: return "RtlNewSecurityObjectWithMultipleInheritance";
- case 0x02cf: return "RtlNormalizeProcessParams";
- case 0x02d0: return "RtlNtPathNameToDosPathName";
- case 0x02d1: return "RtlNtStatusToDosError";
- case 0x02d2: return "RtlNtStatusToDosErrorNoTeb";
- case 0x02d3: return "RtlNumberGenericTableElements";
- case 0x02d4: return "RtlNumberGenericTableElementsAvl";
- case 0x02d5: return "RtlNumberOfClearBits";
- case 0x02d6: return "RtlNumberOfSetBits";
- case 0x02d7: return "RtlOemStringToUnicodeSize";
- case 0x02d8: return "RtlOemStringToUnicodeString";
- case 0x02d9: return "RtlOemToUnicodeN";
- case 0x02da: return "RtlOpenCurrentUser";
- case 0x02db: return "RtlPcToFileHeader";
- case 0x02dc: return "RtlPinAtomInAtomTable";
- case 0x02dd: return "RtlPopFrame";
- case 0x02de: return "RtlPrefixString";
- case 0x02df: return "RtlPrefixUnicodeString";
- case 0x02e0: return "RtlProtectHeap";
- case 0x02e1: return "RtlPushFrame";
- case 0x02e2: return "RtlQueryAtomInAtomTable";
- case 0x02e3: return "RtlQueryDepthSList";
- case 0x02e4: return "RtlQueryEnvironmentVariable_U";
- case 0x02e5: return "RtlQueryHeapInformation";
- case 0x02e6: return "RtlQueryInformationAcl";
- case 0x02e7: return "RtlQueryInformationActivationContext";
- case 0x02e8: return "RtlQueryInformationActiveActivationContext";
- case 0x02e9: return "RtlQueryInterfaceMemoryStream";
- case 0x02ea: return "RtlQueryProcessBackTraceInformation";
- case 0x02eb: return "RtlQueryProcessDebugInformation";
- case 0x02ec: return "RtlQueryProcessHeapInformation";
- case 0x02ed: return "RtlQueryProcessLockInformation";
- case 0x02ee: return "RtlQueryRegistryValues";
- case 0x02ef: return "RtlQuerySecurityObject";
- case 0x02f0: return "RtlQueryTagHeap";
- case 0x02f1: return "RtlQueryTimeZoneInformation";
- case 0x02f2: return "RtlQueueApcWow64Thread";
- case 0x02f3: return "RtlQueueWorkItem";
- case 0x02f4: return "RtlRaiseException";
- case 0x02f5: return "RtlRaiseStatus";
- case 0x02f6: return "RtlRandom";
- case 0x02f7: return "RtlRandomEx";
- case 0x02f8: return "RtlReAllocateHeap";
- case 0x02f9: return "RtlReadMemoryStream";
- case 0x02fa: return "RtlReadOutOfProcessMemoryStream";
- case 0x02fb: return "RtlRealPredecessor";
- case 0x02fc: return "RtlRealSuccessor";
- case 0x02fd: return "RtlRegisterSecureMemoryCacheCallback";
- case 0x02fe: return "RtlRegisterWait";
- case 0x02ff: return "RtlReleaseActivationContext";
- case 0x0300: return "RtlReleaseMemoryStream";
- case 0x0301: return "RtlReleasePebLock";
- case 0x0302: return "RtlReleaseResource";
- case 0x0303: return "RtlRemoteCall";
- case 0x0304: return "RtlRemoveVectoredExceptionHandler";
- case 0x0305: return "RtlResetRtlTranslations";
- case 0x0306: return "RtlRestoreLastWin32Error";
- case 0x0307: return "RtlRevertMemoryStream";
- case 0x0308: return "RtlRunDecodeUnicodeString";
- case 0x0309: return "RtlRunEncodeUnicodeString";
- case 0x030a: return "RtlSecondsSince1970ToTime";
- case 0x030b: return "RtlSecondsSince1980ToTime";
- case 0x030c: return "RtlSeekMemoryStream";
- case 0x030e: return "RtlSelfRelativeToAbsoluteSD";
- case 0x030d: return "RtlSelfRelativeToAbsoluteSD2";
- case 0x030f: return "RtlSetAllBits";
- case 0x0310: return "RtlSetAttributesSecurityDescriptor";
- case 0x0311: return "RtlSetBits";
- case 0x0312: return "RtlSetControlSecurityDescriptor";
- case 0x0313: return "RtlSetCriticalSectionSpinCount";
- case 0x0314: return "RtlSetCurrentDirectory_U";
- case 0x0315: return "RtlSetCurrentEnvironment";
- case 0x0316: return "RtlSetDaclSecurityDescriptor";
- case 0x0317: return "RtlSetEnvironmentVariable";
- case 0x0318: return "RtlSetGroupSecurityDescriptor";
- case 0x0319: return "RtlSetHeapInformation";
- case 0x031a: return "RtlSetInformationAcl";
- case 0x031b: return "RtlSetIoCompletionCallback";
- case 0x031c: return "RtlSetLastWin32Error";
- case 0x031d: return "RtlSetLastWin32ErrorAndNtStatusFromNtStatus";
- case 0x031e: return "RtlSetMemoryStreamSize";
- case 0x031f: return "RtlSetOwnerSecurityDescriptor";
- case 0x0320: return "RtlSetProcessIsCritical";
- case 0x0321: return "RtlSetSaclSecurityDescriptor";
- case 0x0322: return "RtlSetSecurityDescriptorRMControl";
- case 0x0323: return "RtlSetSecurityObject";
- case 0x0324: return "RtlSetSecurityObjectEx";
- case 0x0325: return "RtlSetThreadIsCritical";
- case 0x0326: return "RtlSetThreadPoolStartFunc";
- case 0x0327: return "RtlSetTimeZoneInformation";
- case 0x0328: return "RtlSetTimer";
- case 0x0329: return "RtlSetUnicodeCallouts";
- case 0x032a: return "RtlSetUserFlagsHeap";
- case 0x032b: return "RtlSetUserValueHeap";
- case 0x032c: return "RtlSizeHeap";
- case 0x032d: return "RtlSplay";
- case 0x032e: return "RtlStartRXact";
- case 0x032f: return "RtlStatMemoryStream";
- case 0x0330: return "RtlStringFromGUID";
- case 0x0331: return "RtlSubAuthorityCountSid";
- case 0x0332: return "RtlSubAuthoritySid";
- case 0x0333: return "RtlSubtreePredecessor";
- case 0x0334: return "RtlSubtreeSuccessor";
- case 0x0335: return "RtlSystemTimeToLocalTime";
- case 0x0336: return "RtlTimeFieldsToTime";
- case 0x0337: return "RtlTimeToElapsedTimeFields";
- case 0x0338: return "RtlTimeToSecondsSince1970";
- case 0x0339: return "RtlTimeToSecondsSince1980";
- case 0x033a: return "RtlTimeToTimeFields";
- case 0x033b: return "RtlTraceDatabaseAdd";
- case 0x033c: return "RtlTraceDatabaseCreate";
- case 0x033d: return "RtlTraceDatabaseDestroy";
- case 0x033e: return "RtlTraceDatabaseEnumerate";
- case 0x033f: return "RtlTraceDatabaseFind";
- case 0x0340: return "RtlTraceDatabaseLock";
- case 0x0341: return "RtlTraceDatabaseUnlock";
- case 0x0342: return "RtlTraceDatabaseValidate";
- case 0x0343: return "RtlTryEnterCriticalSection";
- case 0x0005: return "RtlUlongByteSwap";
- case 0x0006: return "RtlUlonglongByteSwap";
- case 0x0345: return "RtlUnhandledExceptionFilter";
- case 0x0344: return "RtlUnhandledExceptionFilter2";
- case 0x0346: return "RtlUnicodeStringToAnsiSize";
- case 0x0347: return "RtlUnicodeStringToAnsiString";
- case 0x0348: return "RtlUnicodeStringToCountedOemString";
- case 0x0349: return "RtlUnicodeStringToInteger";
- case 0x034a: return "RtlUnicodeStringToOemSize";
- case 0x034b: return "RtlUnicodeStringToOemString";
- case 0x034c: return "RtlUnicodeToCustomCPN";
- case 0x034d: return "RtlUnicodeToMultiByteN";
- case 0x034e: return "RtlUnicodeToMultiByteSize";
- case 0x034f: return "RtlUnicodeToOemN";
- case 0x0350: return "RtlUniform";
- case 0x0351: return "RtlUnlockBootStatusData";
- case 0x0352: return "RtlUnlockHeap";
- case 0x0353: return "RtlUnlockMemoryStreamRegion";
- case 0x0354: return "RtlUnwind";
- case 0x0355: return "RtlUpcaseUnicodeChar";
- case 0x0356: return "RtlUpcaseUnicodeString";
- case 0x0357: return "RtlUpcaseUnicodeStringToAnsiString";
- case 0x0358: return "RtlUpcaseUnicodeStringToCountedOemString";
- case 0x0359: return "RtlUpcaseUnicodeStringToOemString";
- case 0x035a: return "RtlUpcaseUnicodeToCustomCPN";
- case 0x035b: return "RtlUpcaseUnicodeToMultiByteN";
- case 0x035c: return "RtlUpcaseUnicodeToOemN";
- case 0x035d: return "RtlUpdateTimer";
- case 0x035e: return "RtlUpperChar";
- case 0x035f: return "RtlUpperString";
- case 0x0360: return "RtlUsageHeap";
- case 0x0007: return "RtlUshortByteSwap";
- case 0x0361: return "RtlValidAcl";
- case 0x0362: return "RtlValidRelativeSecurityDescriptor";
- case 0x0363: return "RtlValidSecurityDescriptor";
- case 0x0364: return "RtlValidSid";
- case 0x0365: return "RtlValidateHeap";
- case 0x0366: return "RtlValidateProcessHeaps";
- case 0x0367: return "RtlValidateUnicodeString";
- case 0x0368: return "RtlVerifyVersionInfo";
- case 0x0369: return "RtlWalkFrameChain";
- case 0x036a: return "RtlWalkHeap";
- case 0x036b: return "RtlWriteMemoryStream";
- case 0x036c: return "RtlWriteRegistryValue";
- case 0x036d: return "RtlZeroHeap";
- case 0x036e: return "RtlZeroMemory";
- case 0x036f: return "RtlZombifyActivationContext";
- case 0x0370: return "RtlpApplyLengthFunction";
- case 0x0371: return "RtlpEnsureBufferSize";
- case 0x0372: return "RtlpNotOwnerCriticalSection";
- case 0x0373: return "RtlpNtCreateKey";
- case 0x0374: return "RtlpNtEnumerateSubKey";
- case 0x0375: return "RtlpNtMakeTemporaryKey";
- case 0x0376: return "RtlpNtOpenKey";
- case 0x0377: return "RtlpNtQueryValueKey";
- case 0x0378: return "RtlpNtSetValueKey";
- case 0x0379: return "RtlpUnWaitCriticalSection";
- case 0x037a: return "RtlpWaitForCriticalSection";
- case 0x037b: return "RtlxAnsiStringToUnicodeSize";
- case 0x037c: return "RtlxOemStringToUnicodeSize";
- case 0x037d: return "RtlxUnicodeStringToAnsiSize";
- case 0x037e: return "RtlxUnicodeStringToOemSize";
- case 0x037f: return "VerSetConditionMask";
- case 0x0380: return "ZwAcceptConnectPort";
- case 0x0381: return "ZwAccessCheck";
- case 0x0382: return "ZwAccessCheckAndAuditAlarm";
- case 0x0383: return "ZwAccessCheckByType";
- case 0x0384: return "ZwAccessCheckByTypeAndAuditAlarm";
- case 0x0385: return "ZwAccessCheckByTypeResultList";
- case 0x0386: return "ZwAccessCheckByTypeResultListAndAuditAlarm";
- case 0x0387: return "ZwAccessCheckByTypeResultListAndAuditAlarmByHandle";
- case 0x0388: return "ZwAddAtom";
- case 0x0389: return "ZwAddBootEntry";
- case 0x038a: return "ZwAdjustGroupsToken";
- case 0x038b: return "ZwAdjustPrivilegesToken";
- case 0x038c: return "ZwAlertResumeThread";
- case 0x038d: return "ZwAlertThread";
- case 0x038e: return "ZwAllocateLocallyUniqueId";
- case 0x038f: return "ZwAllocateUserPhysicalPages";
- case 0x0390: return "ZwAllocateUuids";
- case 0x0391: return "ZwAllocateVirtualMemory";
- case 0x0392: return "ZwAreMappedFilesTheSame";
- case 0x0393: return "ZwAssignProcessToJobObject";
- case 0x0394: return "ZwCallbackReturn";
- case 0x0395: return "ZwCancelDeviceWakeupRequest";
- case 0x0396: return "ZwCancelIoFile";
- case 0x0397: return "ZwCancelTimer";
- case 0x0398: return "ZwClearEvent";
- case 0x0399: return "ZwClose";
- case 0x039a: return "ZwCloseObjectAuditAlarm";
- case 0x039b: return "ZwCompactKeys";
- case 0x039c: return "ZwCompareTokens";
- case 0x039d: return "ZwCompleteConnectPort";
- case 0x039e: return "ZwCompressKey";
- case 0x039f: return "ZwConnectPort";
- case 0x03a0: return "ZwContinue";
- case 0x03a1: return "ZwCreateDebugObject";
- case 0x03a2: return "ZwCreateDirectoryObject";
- case 0x03a3: return "ZwCreateEvent";
- case 0x03a4: return "ZwCreateEventPair";
- case 0x03a5: return "ZwCreateFile";
- case 0x03a6: return "ZwCreateIoCompletion";
- case 0x03a7: return "ZwCreateJobObject";
- case 0x03a8: return "ZwCreateJobSet";
- case 0x03a9: return "ZwCreateKey";
- case 0x03aa: return "ZwCreateKeyedEvent";
- case 0x03ab: return "ZwCreateMailslotFile";
- case 0x03ac: return "ZwCreateMutant";
- case 0x03ad: return "ZwCreateNamedPipeFile";
- case 0x03ae: return "ZwCreatePagingFile";
- case 0x03af: return "ZwCreatePort";
- case 0x03b0: return "ZwCreateProcess";
- case 0x03b1: return "ZwCreateProcessEx";
- case 0x03b2: return "ZwCreateProfile";
- case 0x03b3: return "ZwCreateSection";
- case 0x03b4: return "ZwCreateSemaphore";
- case 0x03b5: return "ZwCreateSymbolicLinkObject";
- case 0x03b6: return "ZwCreateThread";
- case 0x03b7: return "ZwCreateTimer";
- case 0x03b8: return "ZwCreateToken";
- case 0x03b9: return "ZwCreateWaitablePort";
- case 0x03ba: return "ZwDebugActiveProcess";
- case 0x03bb: return "ZwDebugContinue";
- case 0x03bc: return "ZwDelayExecution";
- case 0x03bd: return "ZwDeleteAtom";
- case 0x03be: return "ZwDeleteBootEntry";
- case 0x03bf: return "ZwDeleteFile";
- case 0x03c0: return "ZwDeleteKey";
- case 0x03c1: return "ZwDeleteObjectAuditAlarm";
- case 0x03c2: return "ZwDeleteValueKey";
- case 0x03c3: return "ZwDeviceIoControlFile";
- case 0x03c4: return "ZwDisplayString";
- case 0x03c5: return "ZwDuplicateObject";
- case 0x03c6: return "ZwDuplicateToken";
- case 0x03c7: return "ZwEnumerateBootEntries";
- case 0x03c8: return "ZwEnumerateKey";
- case 0x03c9: return "ZwEnumerateSystemEnvironmentValuesEx";
- case 0x03ca: return "ZwEnumerateValueKey";
- case 0x03cb: return "ZwExtendSection";
- case 0x03cc: return "ZwFilterToken";
- case 0x03cd: return "ZwFindAtom";
- case 0x03ce: return "ZwFlushBuffersFile";
- case 0x03cf: return "ZwFlushInstructionCache";
- case 0x03d0: return "ZwFlushKey";
- case 0x03d1: return "ZwFlushVirtualMemory";
- case 0x03d2: return "ZwFlushWriteBuffer";
- case 0x03d3: return "ZwFreeUserPhysicalPages";
- case 0x03d4: return "ZwFreeVirtualMemory";
- case 0x03d5: return "ZwFsControlFile";
- case 0x03d6: return "ZwGetContextThread";
- case 0x03d7: return "ZwGetDevicePowerState";
- case 0x03d8: return "ZwGetPlugPlayEvent";
- case 0x03d9: return "ZwGetWriteWatch";
- case 0x03da: return "ZwImpersonateAnonymousToken";
- case 0x03db: return "ZwImpersonateClientOfPort";
- case 0x03dc: return "ZwImpersonateThread";
- case 0x03dd: return "ZwInitializeRegistry";
- case 0x03de: return "ZwInitiatePowerAction";
- case 0x03df: return "ZwIsProcessInJob";
- case 0x03e0: return "ZwIsSystemResumeAutomatic";
- case 0x03e1: return "ZwListenPort";
- case 0x03e2: return "ZwLoadDriver";
- case 0x03e4: return "ZwLoadKey";
- case 0x03e3: return "ZwLoadKey2";
- case 0x03e5: return "ZwLockFile";
- case 0x03e6: return "ZwLockProductActivationKeys";
- case 0x03e7: return "ZwLockRegistryKey";
- case 0x03e8: return "ZwLockVirtualMemory";
- case 0x03e9: return "ZwMakePermanentObject";
- case 0x03ea: return "ZwMakeTemporaryObject";
- case 0x03eb: return "ZwMapUserPhysicalPages";
- case 0x03ec: return "ZwMapUserPhysicalPagesScatter";
- case 0x03ed: return "ZwMapViewOfSection";
- case 0x03ee: return "ZwModifyBootEntry";
- case 0x03ef: return "ZwNotifyChangeDirectoryFile";
- case 0x03f0: return "ZwNotifyChangeKey";
- case 0x03f1: return "ZwNotifyChangeMultipleKeys";
- case 0x03f2: return "ZwOpenDirectoryObject";
- case 0x03f3: return "ZwOpenEvent";
- case 0x03f4: return "ZwOpenEventPair";
- case 0x03f5: return "ZwOpenFile";
- case 0x03f6: return "ZwOpenIoCompletion";
- case 0x03f7: return "ZwOpenJobObject";
- case 0x03f8: return "ZwOpenKey";
- case 0x03f9: return "ZwOpenKeyedEvent";
- case 0x03fa: return "ZwOpenMutant";
- case 0x03fb: return "ZwOpenObjectAuditAlarm";
- case 0x03fc: return "ZwOpenProcess";
- case 0x03fd: return "ZwOpenProcessToken";
- case 0x03fe: return "ZwOpenProcessTokenEx";
- case 0x03ff: return "ZwOpenSection";
- case 0x0400: return "ZwOpenSemaphore";
- case 0x0401: return "ZwOpenSymbolicLinkObject";
- case 0x0402: return "ZwOpenThread";
- case 0x0403: return "ZwOpenThreadToken";
- case 0x0404: return "ZwOpenThreadTokenEx";
- case 0x0405: return "ZwOpenTimer";
- case 0x0406: return "ZwPlugPlayControl";
- case 0x0407: return "ZwPowerInformation";
- case 0x0408: return "ZwPrivilegeCheck";
- case 0x0409: return "ZwPrivilegeObjectAuditAlarm";
- case 0x040a: return "ZwPrivilegedServiceAuditAlarm";
- case 0x040b: return "ZwProtectVirtualMemory";
- case 0x040c: return "ZwPulseEvent";
- case 0x040d: return "ZwQueryAttributesFile";
- case 0x040e: return "ZwQueryBootEntryOrder";
- case 0x040f: return "ZwQueryBootOptions";
- case 0x0410: return "ZwQueryDebugFilterState";
- case 0x0411: return "ZwQueryDefaultLocale";
- case 0x0412: return "ZwQueryDefaultUILanguage";
- case 0x0413: return "ZwQueryDirectoryFile";
- case 0x0414: return "ZwQueryDirectoryObject";
- case 0x0415: return "ZwQueryEaFile";
- case 0x0416: return "ZwQueryEvent";
- case 0x0417: return "ZwQueryFullAttributesFile";
- case 0x0418: return "ZwQueryInformationAtom";
- case 0x0419: return "ZwQueryInformationFile";
- case 0x041a: return "ZwQueryInformationJobObject";
- case 0x041b: return "ZwQueryInformationPort";
- case 0x041c: return "ZwQueryInformationProcess";
- case 0x041d: return "ZwQueryInformationThread";
- case 0x041e: return "ZwQueryInformationToken";
- case 0x041f: return "ZwQueryInstallUILanguage";
- case 0x0420: return "ZwQueryIntervalProfile";
- case 0x0421: return "ZwQueryIoCompletion";
- case 0x0422: return "ZwQueryKey";
- case 0x0423: return "ZwQueryMultipleValueKey";
- case 0x0424: return "ZwQueryMutant";
- case 0x0425: return "ZwQueryObject";
- case 0x0426: return "ZwQueryOpenSubKeys";
- case 0x0427: return "ZwQueryPerformanceCounter";
- case 0x0428: return "ZwQueryPortInformationProcess";
- case 0x0429: return "ZwQueryQuotaInformationFile";
- case 0x042a: return "ZwQuerySection";
- case 0x042b: return "ZwQuerySecurityObject";
- case 0x042c: return "ZwQuerySemaphore";
- case 0x042d: return "ZwQuerySymbolicLinkObject";
- case 0x042e: return "ZwQuerySystemEnvironmentValue";
- case 0x042f: return "ZwQuerySystemEnvironmentValueEx";
- case 0x0430: return "ZwQuerySystemInformation";
- case 0x0431: return "ZwQuerySystemTime";
- case 0x0432: return "ZwQueryTimer";
- case 0x0433: return "ZwQueryTimerResolution";
- case 0x0434: return "ZwQueryValueKey";
- case 0x0435: return "ZwQueryVirtualMemory";
- case 0x0436: return "ZwQueryVolumeInformationFile";
- case 0x0437: return "ZwQueueApcThread";
- case 0x0438: return "ZwRaiseException";
- case 0x0439: return "ZwRaiseHardError";
- case 0x043a: return "ZwReadFile";
- case 0x043b: return "ZwReadFileScatter";
- case 0x043c: return "ZwReadRequestData";
- case 0x043d: return "ZwReadVirtualMemory";
- case 0x043e: return "ZwRegisterThreadTerminatePort";
- case 0x043f: return "ZwReleaseKeyedEvent";
- case 0x0440: return "ZwReleaseMutant";
- case 0x0441: return "ZwReleaseSemaphore";
- case 0x0442: return "ZwRemoveIoCompletion";
- case 0x0443: return "ZwRemoveProcessDebug";
- case 0x0444: return "ZwRenameKey";
- case 0x0445: return "ZwReplaceKey";
- case 0x0446: return "ZwReplyPort";
- case 0x0447: return "ZwReplyWaitReceivePort";
- case 0x0448: return "ZwReplyWaitReceivePortEx";
- case 0x0449: return "ZwReplyWaitReplyPort";
- case 0x044a: return "ZwRequestDeviceWakeup";
- case 0x044b: return "ZwRequestPort";
- case 0x044c: return "ZwRequestWaitReplyPort";
- case 0x044d: return "ZwRequestWakeupLatency";
- case 0x044e: return "ZwResetEvent";
- case 0x044f: return "ZwResetWriteWatch";
- case 0x0450: return "ZwRestoreKey";
- case 0x0451: return "ZwResumeProcess";
- case 0x0452: return "ZwResumeThread";
- case 0x0453: return "ZwSaveKey";
- case 0x0454: return "ZwSaveKeyEx";
- case 0x0455: return "ZwSaveMergedKeys";
- case 0x0456: return "ZwSecureConnectPort";
- case 0x0457: return "ZwSetBootEntryOrder";
- case 0x0458: return "ZwSetBootOptions";
- case 0x0459: return "ZwSetContextThread";
- case 0x045a: return "ZwSetDebugFilterState";
- case 0x045b: return "ZwSetDefaultHardErrorPort";
- case 0x045c: return "ZwSetDefaultLocale";
- case 0x045d: return "ZwSetDefaultUILanguage";
- case 0x045e: return "ZwSetEaFile";
- case 0x045f: return "ZwSetEvent";
- case 0x0460: return "ZwSetEventBoostPriority";
- case 0x0461: return "ZwSetHighEventPair";
- case 0x0462: return "ZwSetHighWaitLowEventPair";
- case 0x0463: return "ZwSetInformationDebugObject";
- case 0x0464: return "ZwSetInformationFile";
- case 0x0465: return "ZwSetInformationJobObject";
- case 0x0466: return "ZwSetInformationKey";
- case 0x0467: return "ZwSetInformationObject";
- case 0x0468: return "ZwSetInformationProcess";
- case 0x0469: return "ZwSetInformationThread";
- case 0x046a: return "ZwSetInformationToken";
- case 0x046b: return "ZwSetIntervalProfile";
- case 0x046c: return "ZwSetIoCompletion";
- case 0x046d: return "ZwSetLdtEntries";
- case 0x046e: return "ZwSetLowEventPair";
- case 0x046f: return "ZwSetLowWaitHighEventPair";
- case 0x0470: return "ZwSetQuotaInformationFile";
- case 0x0471: return "ZwSetSecurityObject";
- case 0x0472: return "ZwSetSystemEnvironmentValue";
- case 0x0473: return "ZwSetSystemEnvironmentValueEx";
- case 0x0474: return "ZwSetSystemInformation";
- case 0x0475: return "ZwSetSystemPowerState";
- case 0x0476: return "ZwSetSystemTime";
- case 0x0477: return "ZwSetThreadExecutionState";
- case 0x0478: return "ZwSetTimer";
- case 0x0479: return "ZwSetTimerResolution";
- case 0x047a: return "ZwSetUuidSeed";
- case 0x047b: return "ZwSetValueKey";
- case 0x047c: return "ZwSetVolumeInformationFile";
- case 0x047d: return "ZwShutdownSystem";
- case 0x047e: return "ZwSignalAndWaitForSingleObject";
- case 0x047f: return "ZwStartProfile";
- case 0x0480: return "ZwStopProfile";
- case 0x0481: return "ZwSuspendProcess";
- case 0x0482: return "ZwSuspendThread";
- case 0x0483: return "ZwSystemDebugControl";
- case 0x0484: return "ZwTerminateJobObject";
- case 0x0485: return "ZwTerminateProcess";
- case 0x0486: return "ZwTerminateThread";
- case 0x0487: return "ZwTestAlert";
- case 0x0488: return "ZwTraceEvent";
- case 0x0489: return "ZwTranslateFilePath";
- case 0x048a: return "ZwUnloadDriver";
- case 0x048b: return "ZwUnloadKey";
- case 0x048c: return "ZwUnloadKeyEx";
- case 0x048d: return "ZwUnlockFile";
- case 0x048e: return "ZwUnlockVirtualMemory";
- case 0x048f: return "ZwUnmapViewOfSection";
- case 0x0490: return "ZwVdmControl";
- case 0x0491: return "ZwWaitForDebugEvent";
- case 0x0492: return "ZwWaitForKeyedEvent";
- case 0x0493: return "ZwWaitForMultipleObjects";
- case 0x0494: return "ZwWaitForSingleObject";
- case 0x0495: return "ZwWaitHighEventPair";
- case 0x0496: return "ZwWaitLowEventPair";
- case 0x0497: return "ZwWriteFile";
- case 0x0498: return "ZwWriteFileGather";
- case 0x0499: return "ZwWriteRequestData";
- case 0x049a: return "ZwWriteVirtualMemory";
- case 0x049b: return "ZwYieldExecution";
- case 0x049c: return "_CIcos";
- case 0x049d: return "_CIlog";
- case 0x049e: return "_CIpow";
- case 0x049f: return "_CIsin";
- case 0x04a0: return "_CIsqrt";
- case 0x04a1: return "__isascii";
- case 0x04a2: return "__iscsym";
- case 0x04a3: return "__iscsymf";
- case 0x04a4: return "__toascii";
- case 0x04a5: return "_alldiv";
- case 0x04a6: return "_alldvrm";
- case 0x04a7: return "_allmul";
- case 0x04a8: return "_alloca_probe";
- case 0x04a9: return "_allrem";
- case 0x04aa: return "_allshl";
- case 0x04ab: return "_allshr";
- case 0x04ac: return "_atoi64";
- case 0x04ad: return "_aulldiv";
- case 0x04ae: return "_aulldvrm";
- case 0x04af: return "_aullrem";
- case 0x04b0: return "_aullshr";
- case 0x04b1: return "_chkstk";
- case 0x04b2: return "_fltused";
- case 0x04b3: return "_ftol";
- case 0x04b4: return "_i64toa";
- case 0x04b5: return "_i64tow";
- case 0x04b6: return "_itoa";
- case 0x04b7: return "_itow";
- case 0x04b8: return "_lfind";
- case 0x04b9: return "_ltoa";
- case 0x04ba: return "_ltow";
- case 0x04bb: return "_memccpy";
- case 0x04bc: return "_memicmp";
- case 0x04bd: return "_snprintf";
- case 0x04be: return "_snwprintf";
- case 0x04bf: return "_splitpath";
- case 0x04c0: return "_strcmpi";
- case 0x04c1: return "_stricmp";
- case 0x04c2: return "_strlwr";
- case 0x04c3: return "_strnicmp";
- case 0x04c4: return "_strupr";
- case 0x04c5: return "_tolower";
- case 0x04c6: return "_toupper";
- case 0x04c7: return "_ui64toa";
- case 0x04c8: return "_ui64tow";
- case 0x04c9: return "_ultoa";
- case 0x04ca: return "_ultow";
- case 0x04cb: return "_vsnprintf";
- case 0x04cc: return "_vsnwprintf";
- case 0x04cd: return "_wcsicmp";
- case 0x04ce: return "_wcslwr";
- case 0x04cf: return "_wcsnicmp";
- case 0x04d0: return "_wcsupr";
- case 0x04d1: return "_wtoi";
- case 0x04d2: return "_wtoi64";
- case 0x04d3: return "_wtol";
- case 0x04d4: return "abs";
- case 0x04d5: return "atan";
- case 0x04d6: return "atoi";
- case 0x04d7: return "atol";
- case 0x04d8: return "bsearch";
- case 0x04d9: return "ceil";
- case 0x04da: return "cos";
- case 0x04db: return "fabs";
- case 0x04dc: return "floor";
- case 0x04dd: return "isalnum";
- case 0x04de: return "isalpha";
- case 0x04df: return "iscntrl";
- case 0x04e0: return "isdigit";
- case 0x04e1: return "isgraph";
- case 0x04e2: return "islower";
- case 0x04e3: return "isprint";
- case 0x04e4: return "ispunct";
- case 0x04e5: return "isspace";
- case 0x04e6: return "isupper";
- case 0x04e7: return "iswalpha";
- case 0x04e8: return "iswctype";
- case 0x04e9: return "iswdigit";
- case 0x04ea: return "iswlower";
- case 0x04eb: return "iswspace";
- case 0x04ec: return "iswxdigit";
- case 0x04ed: return "isxdigit";
- case 0x04ee: return "labs";
- case 0x04ef: return "log";
- case 0x04f0: return "mbstowcs";
- case 0x04f1: return "memchr";
- case 0x04f2: return "memcmp";
- case 0x04f3: return "memcpy";
- case 0x04f4: return "memmove";
- case 0x04f5: return "memset";
- case 0x04f6: return "pow";
- case 0x04f7: return "qsort";
- case 0x04f8: return "sin";
- case 0x04f9: return "sprintf";
- case 0x04fa: return "sqrt";
- case 0x04fb: return "sscanf";
- case 0x04fc: return "strcat";
- case 0x04fd: return "strchr";
- case 0x04fe: return "strcmp";
- case 0x04ff: return "strcpy";
- case 0x0500: return "strcspn";
- case 0x0501: return "strlen";
- case 0x0502: return "strncat";
- case 0x0503: return "strncmp";
- case 0x0504: return "strncpy";
- case 0x0505: return "strpbrk";
- case 0x0506: return "strrchr";
- case 0x0507: return "strspn";
- case 0x0508: return "strstr";
- case 0x0509: return "strtol";
- case 0x050a: return "strtoul";
- case 0x050b: return "swprintf";
- case 0x050c: return "tan";
- case 0x050d: return "tolower";
- case 0x050e: return "toupper";
- case 0x050f: return "towlower";
- case 0x0510: return "towupper";
- case 0x0511: return "vDbgPrintEx";
- case 0x0512: return "vDbgPrintExWithPrefix";
- case 0x0513: return "vsprintf";
- case 0x0514: return "wcscat";
- case 0x0515: return "wcschr";
- case 0x0516: return "wcscmp";
- case 0x0517: return "wcscpy";
- case 0x0518: return "wcscspn";
- case 0x0519: return "wcslen";
- case 0x051a: return "wcsncat";
- case 0x051b: return "wcsncmp";
- case 0x051c: return "wcsncpy";
- case 0x051d: return "wcspbrk";
- case 0x051e: return "wcsrchr";
- case 0x051f: return "wcsspn";
- case 0x0520: return "wcsstr";
- case 0x0521: return "wcstol";
- case 0x0522: return "wcstombs";
- case 0x0523: return "wcstoul";
+ switch (i) {
+ case 0x0008: return "CsrAllocateCaptureBuffer";
+ case 0x0009: return "CsrAllocateMessagePointer";
+ case 0x000a: return "CsrCaptureMessageBuffer";
+ case 0x000b: return "CsrCaptureMessageMultiUnicodeStringsInPlace";
+ case 0x000c: return "CsrCaptureMessageString";
+ case 0x000d: return "CsrCaptureTimeout";
+ case 0x000e: return "CsrClientCallServer";
+ case 0x000f: return "CsrClientConnectToServer";
+ case 0x0010: return "CsrFreeCaptureBuffer";
+ case 0x0011: return "CsrGetProcessId";
+ case 0x0012: return "CsrIdentifyAlertableThread";
+ case 0x0013: return "CsrNewThread";
+ case 0x0014: return "CsrProbeForRead";
+ case 0x0015: return "CsrProbeForWrite";
+ case 0x0016: return "CsrSetPriorityClass";
+ case 0x0017: return "DbgBreakPoint";
+ case 0x0018: return "DbgPrint";
+ case 0x0019: return "DbgPrintEx";
+ case 0x001a: return "DbgPrintReturnControlC";
+ case 0x001b: return "DbgPrompt";
+ case 0x001c: return "DbgQueryDebugFilterState";
+ case 0x001d: return "DbgSetDebugFilterState";
+ case 0x001e: return "DbgUiConnectToDbg";
+ case 0x001f: return "DbgUiContinue";
+ case 0x0020: return "DbgUiConvertStateChangeStructure";
+ case 0x0021: return "DbgUiDebugActiveProcess";
+ case 0x0022: return "DbgUiGetThreadDebugObject";
+ case 0x0023: return "DbgUiIssueRemoteBreakin";
+ case 0x0024: return "DbgUiRemoteBreakin";
+ case 0x0025: return "DbgUiSetThreadDebugObject";
+ case 0x0026: return "DbgUiStopDebugging";
+ case 0x0027: return "DbgUiWaitStateChange";
+ case 0x0028: return "DbgUserBreakPoint";
+ case 0x0029: return "KiFastSystemCall";
+ case 0x002a: return "KiFastSystemCallRet";
+ case 0x002b: return "KiIntSystemCall";
+ case 0x002c: return "KiRaiseUserExceptionDispatcher";
+ case 0x002d: return "KiUserApcDispatcher";
+ case 0x002e: return "KiUserCallbackDispatcher";
+ case 0x002f: return "KiUserExceptionDispatcher";
+ case 0x0030: return "LdrAccessOutOfProcessResource";
+ case 0x0031: return "LdrAccessResource";
+ case 0x0032: return "LdrAddRefDll";
+ case 0x0033: return "LdrAlternateResourcesEnabled";
+ case 0x0034: return "LdrCreateOutOfProcessImage";
+ case 0x0035: return "LdrDestroyOutOfProcessImage";
+ case 0x0036: return "LdrDisableThreadCalloutsForDll";
+ case 0x0037: return "LdrEnumResources";
+ case 0x0038: return "LdrEnumerateLoadedModules";
+ case 0x0039: return "LdrFindCreateProcessManifest";
+ case 0x003a: return "LdrFindEntryForAddress";
+ case 0x003b: return "LdrFindResourceDirectory_U";
+ case 0x003c: return "LdrFindResourceEx_U";
+ case 0x003d: return "LdrFindResource_U";
+ case 0x003e: return "LdrFlushAlternateResourceModules";
+ case 0x003f: return "LdrGetDllHandle";
+ case 0x0040: return "LdrGetDllHandleEx";
+ case 0x0041: return "LdrGetProcedureAddress";
+ case 0x0042: return "LdrHotPatchRoutine";
+ case 0x0043: return "LdrInitShimEngineDynamic";
+ case 0x0044: return "LdrInitializeThunk";
+ case 0x0045: return "LdrLoadAlternateResourceModule";
+ case 0x0046: return "LdrLoadDll";
+ case 0x0047: return "LdrLockLoaderLock";
+ case 0x0048: return "LdrProcessRelocationBlock";
+ case 0x0049: return "LdrQueryImageFileExecutionOptions";
+ case 0x004a: return "LdrQueryProcessModuleInformation";
+ case 0x004b: return "LdrSetAppCompatDllRedirectionCallback";
+ case 0x004c: return "LdrSetDllManifestProber";
+ case 0x004d: return "LdrShutdownProcess";
+ case 0x004e: return "LdrShutdownThread";
+ case 0x004f: return "LdrUnloadAlternateResourceModule";
+ case 0x0050: return "LdrUnloadDll";
+ case 0x0051: return "LdrUnlockLoaderLock";
+ case 0x0052: return "LdrVerifyImageMatchesChecksum";
+ case 0x0053: return "NlsAnsiCodePage";
+ case 0x0054: return "NlsMbCodePageTag";
+ case 0x0055: return "NlsMbOemCodePageTag";
+ case 0x0056: return "NtAcceptConnectPort";
+ case 0x0057: return "NtAccessCheck";
+ case 0x0058: return "NtAccessCheckAndAuditAlarm";
+ case 0x0059: return "NtAccessCheckByType";
+ case 0x005a: return "NtAccessCheckByTypeAndAuditAlarm";
+ case 0x005b: return "NtAccessCheckByTypeResultList";
+ case 0x005c: return "NtAccessCheckByTypeResultListAndAuditAlarm";
+ case 0x005d: return "NtAccessCheckByTypeResultListAndAuditAlarmByHandle";
+ case 0x005e: return "NtAddAtom";
+ case 0x005f: return "NtAddBootEntry";
+ case 0x0060: return "NtAdjustGroupsToken";
+ case 0x0061: return "NtAdjustPrivilegesToken";
+ case 0x0062: return "NtAlertResumeThread";
+ case 0x0063: return "NtAlertThread";
+ case 0x0064: return "NtAllocateLocallyUniqueId";
+ case 0x0065: return "NtAllocateUserPhysicalPages";
+ case 0x0066: return "NtAllocateUuids";
+ case 0x0067: return "NtAllocateVirtualMemory";
+ case 0x0068: return "NtAreMappedFilesTheSame";
+ case 0x0069: return "NtAssignProcessToJobObject";
+ case 0x006a: return "NtCallbackReturn";
+ case 0x006b: return "NtCancelDeviceWakeupRequest";
+ case 0x006c: return "NtCancelIoFile";
+ case 0x006d: return "NtCancelTimer";
+ case 0x006e: return "NtClearEvent";
+ case 0x006f: return "NtClose";
+ case 0x0070: return "NtCloseObjectAuditAlarm";
+ case 0x0071: return "NtCompactKeys";
+ case 0x0072: return "NtCompareTokens";
+ case 0x0073: return "NtCompleteConnectPort";
+ case 0x0074: return "NtCompressKey";
+ case 0x0075: return "NtConnectPort";
+ case 0x0076: return "NtContinue";
+ case 0x0077: return "NtCreateDebugObject";
+ case 0x0078: return "NtCreateDirectoryObject";
+ case 0x0079: return "NtCreateEvent";
+ case 0x007a: return "NtCreateEventPair";
+ case 0x007b: return "NtCreateFile";
+ case 0x007c: return "NtCreateIoCompletion";
+ case 0x007d: return "NtCreateJobObject";
+ case 0x007e: return "NtCreateJobSet";
+ case 0x007f: return "NtCreateKey";
+ case 0x0080: return "NtCreateKeyedEvent";
+ case 0x0081: return "NtCreateMailslotFile";
+ case 0x0082: return "NtCreateMutant";
+ case 0x0083: return "NtCreateNamedPipeFile";
+ case 0x0084: return "NtCreatePagingFile";
+ case 0x0085: return "NtCreatePort";
+ case 0x0086: return "NtCreateProcess";
+ case 0x0087: return "NtCreateProcessEx";
+ case 0x0088: return "NtCreateProfile";
+ case 0x0089: return "NtCreateSection";
+ case 0x008a: return "NtCreateSemaphore";
+ case 0x008b: return "NtCreateSymbolicLinkObject";
+ case 0x008c: return "NtCreateThread";
+ case 0x008d: return "NtCreateTimer";
+ case 0x008e: return "NtCreateToken";
+ case 0x008f: return "NtCreateWaitablePort";
+ case 0x0090: return "NtCurrentTeb";
+ case 0x0091: return "NtDebugActiveProcess";
+ case 0x0092: return "NtDebugContinue";
+ case 0x0093: return "NtDelayExecution";
+ case 0x0094: return "NtDeleteAtom";
+ case 0x0095: return "NtDeleteBootEntry";
+ case 0x0096: return "NtDeleteFile";
+ case 0x0097: return "NtDeleteKey";
+ case 0x0098: return "NtDeleteObjectAuditAlarm";
+ case 0x0099: return "NtDeleteValueKey";
+ case 0x009a: return "NtDeviceIoControlFile";
+ case 0x009b: return "NtDisplayString";
+ case 0x009c: return "NtDuplicateObject";
+ case 0x009d: return "NtDuplicateToken";
+ case 0x009e: return "NtEnumerateBootEntries";
+ case 0x009f: return "NtEnumerateKey";
+ case 0x00a0: return "NtEnumerateSystemEnvironmentValuesEx";
+ case 0x00a1: return "NtEnumerateValueKey";
+ case 0x00a2: return "NtExtendSection";
+ case 0x00a3: return "NtFilterToken";
+ case 0x00a4: return "NtFindAtom";
+ case 0x00a5: return "NtFlushBuffersFile";
+ case 0x00a6: return "NtFlushInstructionCache";
+ case 0x00a7: return "NtFlushKey";
+ case 0x00a8: return "NtFlushVirtualMemory";
+ case 0x00a9: return "NtFlushWriteBuffer";
+ case 0x00aa: return "NtFreeUserPhysicalPages";
+ case 0x00ab: return "NtFreeVirtualMemory";
+ case 0x00ac: return "NtFsControlFile";
+ case 0x00ad: return "NtGetContextThread";
+ case 0x00ae: return "NtGetDevicePowerState";
+ case 0x00af: return "NtGetPlugPlayEvent";
+ case 0x00b0: return "NtGetWriteWatch";
+ case 0x00b1: return "NtImpersonateAnonymousToken";
+ case 0x00b2: return "NtImpersonateClientOfPort";
+ case 0x00b3: return "NtImpersonateThread";
+ case 0x00b4: return "NtInitializeRegistry";
+ case 0x00b5: return "NtInitiatePowerAction";
+ case 0x00b6: return "NtIsProcessInJob";
+ case 0x00b7: return "NtIsSystemResumeAutomatic";
+ case 0x00b8: return "NtListenPort";
+ case 0x00b9: return "NtLoadDriver";
+ case 0x00bb: return "NtLoadKey";
+ case 0x00ba: return "NtLoadKey2";
+ case 0x00bc: return "NtLockFile";
+ case 0x00bd: return "NtLockProductActivationKeys";
+ case 0x00be: return "NtLockRegistryKey";
+ case 0x00bf: return "NtLockVirtualMemory";
+ case 0x00c0: return "NtMakePermanentObject";
+ case 0x00c1: return "NtMakeTemporaryObject";
+ case 0x00c2: return "NtMapUserPhysicalPages";
+ case 0x00c3: return "NtMapUserPhysicalPagesScatter";
+ case 0x00c4: return "NtMapViewOfSection";
+ case 0x00c5: return "NtModifyBootEntry";
+ case 0x00c6: return "NtNotifyChangeDirectoryFile";
+ case 0x00c7: return "NtNotifyChangeKey";
+ case 0x00c8: return "NtNotifyChangeMultipleKeys";
+ case 0x00c9: return "NtOpenDirectoryObject";
+ case 0x00ca: return "NtOpenEvent";
+ case 0x00cb: return "NtOpenEventPair";
+ case 0x00cc: return "NtOpenFile";
+ case 0x00cd: return "NtOpenIoCompletion";
+ case 0x00ce: return "NtOpenJobObject";
+ case 0x00cf: return "NtOpenKey";
+ case 0x00d0: return "NtOpenKeyedEvent";
+ case 0x00d1: return "NtOpenMutant";
+ case 0x00d2: return "NtOpenObjectAuditAlarm";
+ case 0x00d3: return "NtOpenProcess";
+ case 0x00d4: return "NtOpenProcessToken";
+ case 0x00d5: return "NtOpenProcessTokenEx";
+ case 0x00d6: return "NtOpenSection";
+ case 0x00d7: return "NtOpenSemaphore";
+ case 0x00d8: return "NtOpenSymbolicLinkObject";
+ case 0x00d9: return "NtOpenThread";
+ case 0x00da: return "NtOpenThreadToken";
+ case 0x00db: return "NtOpenThreadTokenEx";
+ case 0x00dc: return "NtOpenTimer";
+ case 0x00dd: return "NtPlugPlayControl";
+ case 0x00de: return "NtPowerInformation";
+ case 0x00df: return "NtPrivilegeCheck";
+ case 0x00e0: return "NtPrivilegeObjectAuditAlarm";
+ case 0x00e1: return "NtPrivilegedServiceAuditAlarm";
+ case 0x00e2: return "NtProtectVirtualMemory";
+ case 0x00e3: return "NtPulseEvent";
+ case 0x00e4: return "NtQueryAttributesFile";
+ case 0x00e5: return "NtQueryBootEntryOrder";
+ case 0x00e6: return "NtQueryBootOptions";
+ case 0x00e7: return "NtQueryDebugFilterState";
+ case 0x00e8: return "NtQueryDefaultLocale";
+ case 0x00e9: return "NtQueryDefaultUILanguage";
+ case 0x00ea: return "NtQueryDirectoryFile";
+ case 0x00eb: return "NtQueryDirectoryObject";
+ case 0x00ec: return "NtQueryEaFile";
+ case 0x00ed: return "NtQueryEvent";
+ case 0x00ee: return "NtQueryFullAttributesFile";
+ case 0x00ef: return "NtQueryInformationAtom";
+ case 0x00f0: return "NtQueryInformationFile";
+ case 0x00f1: return "NtQueryInformationJobObject";
+ case 0x00f2: return "NtQueryInformationPort";
+ case 0x00f3: return "NtQueryInformationProcess";
+ case 0x00f4: return "NtQueryInformationThread";
+ case 0x00f5: return "NtQueryInformationToken";
+ case 0x00f6: return "NtQueryInstallUILanguage";
+ case 0x00f7: return "NtQueryIntervalProfile";
+ case 0x00f8: return "NtQueryIoCompletion";
+ case 0x00f9: return "NtQueryKey";
+ case 0x00fa: return "NtQueryMultipleValueKey";
+ case 0x00fb: return "NtQueryMutant";
+ case 0x00fc: return "NtQueryObject";
+ case 0x00fd: return "NtQueryOpenSubKeys";
+ case 0x00fe: return "NtQueryPerformanceCounter";
+ case 0x00ff: return "NtQueryPortInformationProcess";
+ case 0x0100: return "NtQueryQuotaInformationFile";
+ case 0x0101: return "NtQuerySection";
+ case 0x0102: return "NtQuerySecurityObject";
+ case 0x0103: return "NtQuerySemaphore";
+ case 0x0104: return "NtQuerySymbolicLinkObject";
+ case 0x0105: return "NtQuerySystemEnvironmentValue";
+ case 0x0106: return "NtQuerySystemEnvironmentValueEx";
+ case 0x0107: return "NtQuerySystemInformation";
+ case 0x0108: return "NtQuerySystemTime";
+ case 0x0109: return "NtQueryTimer";
+ case 0x010a: return "NtQueryTimerResolution";
+ case 0x010b: return "NtQueryValueKey";
+ case 0x010c: return "NtQueryVirtualMemory";
+ case 0x010d: return "NtQueryVolumeInformationFile";
+ case 0x010e: return "NtQueueApcThread";
+ case 0x010f: return "NtRaiseException";
+ case 0x0110: return "NtRaiseHardError";
+ case 0x0111: return "NtReadFile";
+ case 0x0112: return "NtReadFileScatter";
+ case 0x0113: return "NtReadRequestData";
+ case 0x0114: return "NtReadVirtualMemory";
+ case 0x0115: return "NtRegisterThreadTerminatePort";
+ case 0x0116: return "NtReleaseKeyedEvent";
+ case 0x0117: return "NtReleaseMutant";
+ case 0x0118: return "NtReleaseSemaphore";
+ case 0x0119: return "NtRemoveIoCompletion";
+ case 0x011a: return "NtRemoveProcessDebug";
+ case 0x011b: return "NtRenameKey";
+ case 0x011c: return "NtReplaceKey";
+ case 0x011d: return "NtReplyPort";
+ case 0x011e: return "NtReplyWaitReceivePort";
+ case 0x011f: return "NtReplyWaitReceivePortEx";
+ case 0x0120: return "NtReplyWaitReplyPort";
+ case 0x0121: return "NtRequestDeviceWakeup";
+ case 0x0122: return "NtRequestPort";
+ case 0x0123: return "NtRequestWaitReplyPort";
+ case 0x0124: return "NtRequestWakeupLatency";
+ case 0x0125: return "NtResetEvent";
+ case 0x0126: return "NtResetWriteWatch";
+ case 0x0127: return "NtRestoreKey";
+ case 0x0128: return "NtResumeProcess";
+ case 0x0129: return "NtResumeThread";
+ case 0x012a: return "NtSaveKey";
+ case 0x012b: return "NtSaveKeyEx";
+ case 0x012c: return "NtSaveMergedKeys";
+ case 0x012d: return "NtSecureConnectPort";
+ case 0x012e: return "NtSetBootEntryOrder";
+ case 0x012f: return "NtSetBootOptions";
+ case 0x0130: return "NtSetContextThread";
+ case 0x0131: return "NtSetDebugFilterState";
+ case 0x0132: return "NtSetDefaultHardErrorPort";
+ case 0x0133: return "NtSetDefaultLocale";
+ case 0x0134: return "NtSetDefaultUILanguage";
+ case 0x0135: return "NtSetEaFile";
+ case 0x0136: return "NtSetEvent";
+ case 0x0137: return "NtSetEventBoostPriority";
+ case 0x0138: return "NtSetHighEventPair";
+ case 0x0139: return "NtSetHighWaitLowEventPair";
+ case 0x013a: return "NtSetInformationDebugObject";
+ case 0x013b: return "NtSetInformationFile";
+ case 0x013c: return "NtSetInformationJobObject";
+ case 0x013d: return "NtSetInformationKey";
+ case 0x013e: return "NtSetInformationObject";
+ case 0x013f: return "NtSetInformationProcess";
+ case 0x0140: return "NtSetInformationThread";
+ case 0x0141: return "NtSetInformationToken";
+ case 0x0142: return "NtSetIntervalProfile";
+ case 0x0143: return "NtSetIoCompletion";
+ case 0x0144: return "NtSetLdtEntries";
+ case 0x0145: return "NtSetLowEventPair";
+ case 0x0146: return "NtSetLowWaitHighEventPair";
+ case 0x0147: return "NtSetQuotaInformationFile";
+ case 0x0148: return "NtSetSecurityObject";
+ case 0x0149: return "NtSetSystemEnvironmentValue";
+ case 0x014a: return "NtSetSystemEnvironmentValueEx";
+ case 0x014b: return "NtSetSystemInformation";
+ case 0x014c: return "NtSetSystemPowerState";
+ case 0x014d: return "NtSetSystemTime";
+ case 0x014e: return "NtSetThreadExecutionState";
+ case 0x014f: return "NtSetTimer";
+ case 0x0150: return "NtSetTimerResolution";
+ case 0x0151: return "NtSetUuidSeed";
+ case 0x0152: return "NtSetValueKey";
+ case 0x0153: return "NtSetVolumeInformationFile";
+ case 0x0154: return "NtShutdownSystem";
+ case 0x0155: return "NtSignalAndWaitForSingleObject";
+ case 0x0156: return "NtStartProfile";
+ case 0x0157: return "NtStopProfile";
+ case 0x0158: return "NtSuspendProcess";
+ case 0x0159: return "NtSuspendThread";
+ case 0x015a: return "NtSystemDebugControl";
+ case 0x015b: return "NtTerminateJobObject";
+ case 0x015c: return "NtTerminateProcess";
+ case 0x015d: return "NtTerminateThread";
+ case 0x015e: return "NtTestAlert";
+ case 0x015f: return "NtTraceEvent";
+ case 0x0160: return "NtTranslateFilePath";
+ case 0x0161: return "NtUnloadDriver";
+ case 0x0162: return "NtUnloadKey";
+ case 0x0163: return "NtUnloadKeyEx";
+ case 0x0164: return "NtUnlockFile";
+ case 0x0165: return "NtUnlockVirtualMemory";
+ case 0x0166: return "NtUnmapViewOfSection";
+ case 0x0167: return "NtVdmControl";
+ case 0x0168: return "NtWaitForDebugEvent";
+ case 0x0169: return "NtWaitForKeyedEvent";
+ case 0x016a: return "NtWaitForMultipleObjects";
+ case 0x016b: return "NtWaitForSingleObject";
+ case 0x016c: return "NtWaitHighEventPair";
+ case 0x016d: return "NtWaitLowEventPair";
+ case 0x016e: return "NtWriteFile";
+ case 0x016f: return "NtWriteFileGather";
+ case 0x0170: return "NtWriteRequestData";
+ case 0x0171: return "NtWriteVirtualMemory";
+ case 0x0172: return "NtYieldExecution";
+ case 0x0173: return "PfxFindPrefix";
+ case 0x0174: return "PfxInitialize";
+ case 0x0175: return "PfxInsertPrefix";
+ case 0x0176: return "PfxRemovePrefix";
+ case 0x0001: return "PropertyLengthAsVariant";
+ case 0x0177: return "RtlAbortRXact";
+ case 0x0178: return "RtlAbsoluteToSelfRelativeSD";
+ case 0x0179: return "RtlAcquirePebLock";
+ case 0x017a: return "RtlAcquireResourceExclusive";
+ case 0x017b: return "RtlAcquireResourceShared";
+ case 0x017c: return "RtlActivateActivationContext";
+ case 0x017d: return "RtlActivateActivationContextEx";
+ case 0x017e: return "RtlActivateActivationContextUnsafeFast";
+ case 0x017f: return "RtlAddAccessAllowedAce";
+ case 0x0180: return "RtlAddAccessAllowedAceEx";
+ case 0x0181: return "RtlAddAccessAllowedObjectAce";
+ case 0x0182: return "RtlAddAccessDeniedAce";
+ case 0x0183: return "RtlAddAccessDeniedAceEx";
+ case 0x0184: return "RtlAddAccessDeniedObjectAce";
+ case 0x0185: return "RtlAddAce";
+ case 0x0186: return "RtlAddActionToRXact";
+ case 0x0187: return "RtlAddAtomToAtomTable";
+ case 0x0188: return "RtlAddAttributeActionToRXact";
+ case 0x0189: return "RtlAddAuditAccessAce";
+ case 0x018a: return "RtlAddAuditAccessAceEx";
+ case 0x018b: return "RtlAddAuditAccessObjectAce";
+ case 0x018c: return "RtlAddCompoundAce";
+ case 0x018d: return "RtlAddRange";
+ case 0x018e: return "RtlAddRefActivationContext";
+ case 0x018f: return "RtlAddRefMemoryStream";
+ case 0x0190: return "RtlAddVectoredExceptionHandler";
+ case 0x0191: return "RtlAddressInSectionTable";
+ case 0x0192: return "RtlAdjustPrivilege";
+ case 0x0193: return "RtlAllocateAndInitializeSid";
+ case 0x0194: return "RtlAllocateHandle";
+ case 0x0195: return "RtlAllocateHeap";
+ case 0x0196: return "RtlAnsiCharToUnicodeChar";
+ case 0x0197: return "RtlAnsiStringToUnicodeSize";
+ case 0x0198: return "RtlAnsiStringToUnicodeString";
+ case 0x0199: return "RtlAppendAsciizToString";
+ case 0x019a: return "RtlAppendPathElement";
+ case 0x019b: return "RtlAppendStringToString";
+ case 0x019c: return "RtlAppendUnicodeStringToString";
+ case 0x019d: return "RtlAppendUnicodeToString";
+ case 0x019e: return "RtlApplicationVerifierStop";
+ case 0x019f: return "RtlApplyRXact";
+ case 0x01a0: return "RtlApplyRXactNoFlush";
+ case 0x01a1: return "RtlAreAllAccessesGranted";
+ case 0x01a2: return "RtlAreAnyAccessesGranted";
+ case 0x01a3: return "RtlAreBitsClear";
+ case 0x01a4: return "RtlAreBitsSet";
+ case 0x01a6: return "RtlAssert";
+ case 0x01a5: return "RtlAssert2";
+ case 0x01a7: return "RtlCancelTimer";
+ case 0x01a8: return "RtlCaptureContext";
+ case 0x01a9: return "RtlCaptureStackBackTrace";
+ case 0x01aa: return "RtlCaptureStackContext";
+ case 0x01ab: return "RtlCharToInteger";
+ case 0x01ac: return "RtlCheckForOrphanedCriticalSections";
+ case 0x01ad: return "RtlCheckProcessParameters";
+ case 0x01ae: return "RtlCheckRegistryKey";
+ case 0x01af: return "RtlClearAllBits";
+ case 0x01b0: return "RtlClearBits";
+ case 0x01b1: return "RtlCloneMemoryStream";
+ case 0x01b2: return "RtlCommitMemoryStream";
+ case 0x01b3: return "RtlCompactHeap";
+ case 0x01b4: return "RtlCompareMemory";
+ case 0x01b5: return "RtlCompareMemoryUlong";
+ case 0x01b6: return "RtlCompareString";
+ case 0x01b7: return "RtlCompareUnicodeString";
+ case 0x01b8: return "RtlCompressBuffer";
+ case 0x01b9: return "RtlComputeCrc32";
+ case 0x01ba: return "RtlComputeImportTableHash";
+ case 0x01bb: return "RtlComputePrivatizedDllName_U";
+ case 0x01bc: return "RtlConsoleMultiByteToUnicodeN";
+ case 0x01bd: return "RtlConvertExclusiveToShared";
+ case 0x01be: return "RtlConvertLongToLargeInteger";
+ case 0x0002: return "RtlConvertPropertyToVariant";
+ case 0x01bf: return "RtlConvertSharedToExclusive";
+ case 0x01c0: return "RtlConvertSidToUnicodeString";
+ case 0x01c1: return "RtlConvertToAutoInheritSecurityObject";
+ case 0x01c2: return "RtlConvertUiListToApiList";
+ case 0x01c3: return "RtlConvertUlongToLargeInteger";
+ case 0x0003: return "RtlConvertVariantToProperty";
+ case 0x01c4: return "RtlCopyLuid";
+ case 0x01c5: return "RtlCopyLuidAndAttributesArray";
+ case 0x01c6: return "RtlCopyMemoryStreamTo";
+ case 0x01c7: return "RtlCopyOutOfProcessMemoryStreamTo";
+ case 0x01c8: return "RtlCopyRangeList";
+ case 0x01c9: return "RtlCopySecurityDescriptor";
+ case 0x01ca: return "RtlCopySid";
+ case 0x01cb: return "RtlCopySidAndAttributesArray";
+ case 0x01cc: return "RtlCopyString";
+ case 0x01cd: return "RtlCopyUnicodeString";
+ case 0x01ce: return "RtlCreateAcl";
+ case 0x01cf: return "RtlCreateActivationContext";
+ case 0x01d0: return "RtlCreateAndSetSD";
+ case 0x01d1: return "RtlCreateAtomTable";
+ case 0x01d2: return "RtlCreateBootStatusDataFile";
+ case 0x01d3: return "RtlCreateEnvironment";
+ case 0x01d4: return "RtlCreateHeap";
+ case 0x01d5: return "RtlCreateProcessParameters";
+ case 0x01d6: return "RtlCreateQueryDebugBuffer";
+ case 0x01d7: return "RtlCreateRegistryKey";
+ case 0x01d8: return "RtlCreateSecurityDescriptor";
+ case 0x01d9: return "RtlCreateSystemVolumeInformationFolder";
+ case 0x01da: return "RtlCreateTagHeap";
+ case 0x01db: return "RtlCreateTimer";
+ case 0x01dc: return "RtlCreateTimerQueue";
+ case 0x01dd: return "RtlCreateUnicodeString";
+ case 0x01de: return "RtlCreateUnicodeStringFromAsciiz";
+ case 0x01df: return "RtlCreateUserProcess";
+ case 0x01e0: return "RtlCreateUserSecurityObject";
+ case 0x01e1: return "RtlCreateUserThread";
+ case 0x01e2: return "RtlCustomCPToUnicodeN";
+ case 0x01e3: return "RtlCutoverTimeToSystemTime";
+ case 0x01e4: return "RtlDeNormalizeProcessParams";
+ case 0x01e5: return "RtlDeactivateActivationContext";
+ case 0x01e6: return "RtlDeactivateActivationContextUnsafeFast";
+ case 0x01e7: return "RtlDebugPrintTimes";
+ case 0x01e8: return "RtlDecodePointer";
+ case 0x01e9: return "RtlDecodeSystemPointer";
+ case 0x01ea: return "RtlDecompressBuffer";
+ case 0x01eb: return "RtlDecompressFragment";
+ case 0x01ec: return "RtlDefaultNpAcl";
+ case 0x01ed: return "RtlDelete";
+ case 0x01ee: return "RtlDeleteAce";
+ case 0x01ef: return "RtlDeleteAtomFromAtomTable";
+ case 0x01f0: return "RtlDeleteCriticalSection";
+ case 0x01f1: return "RtlDeleteElementGenericTable";
+ case 0x01f2: return "RtlDeleteElementGenericTableAvl";
+ case 0x01f3: return "RtlDeleteNoSplay";
+ case 0x01f4: return "RtlDeleteOwnersRanges";
+ case 0x01f5: return "RtlDeleteRange";
+ case 0x01f6: return "RtlDeleteRegistryValue";
+ case 0x01f7: return "RtlDeleteResource";
+ case 0x01f8: return "RtlDeleteSecurityObject";
+ case 0x01f9: return "RtlDeleteTimer";
+ case 0x01fa: return "RtlDeleteTimerQueue";
+ case 0x01fb: return "RtlDeleteTimerQueueEx";
+ case 0x01fc: return "RtlDeregisterWait";
+ case 0x01fd: return "RtlDeregisterWaitEx";
+ case 0x01fe: return "RtlDestroyAtomTable";
+ case 0x01ff: return "RtlDestroyEnvironment";
+ case 0x0200: return "RtlDestroyHandleTable";
+ case 0x0201: return "RtlDestroyHeap";
+ case 0x0202: return "RtlDestroyProcessParameters";
+ case 0x0203: return "RtlDestroyQueryDebugBuffer";
+ case 0x0204: return "RtlDetermineDosPathNameType_U";
+ case 0x0205: return "RtlDllShutdownInProgress";
+ case 0x0206: return "RtlDnsHostNameToComputerName";
+ case 0x0207: return "RtlDoesFileExists_U";
+ case 0x0208: return "RtlDosApplyFileIsolationRedirection_Ustr";
+ case 0x0209: return "RtlDosPathNameToNtPathName_U";
+ case 0x020a: return "RtlDosSearchPath_U";
+ case 0x020b: return "RtlDosSearchPath_Ustr";
+ case 0x020c: return "RtlDowncaseUnicodeChar";
+ case 0x020d: return "RtlDowncaseUnicodeString";
+ case 0x020e: return "RtlDumpResource";
+ case 0x020f: return "RtlDuplicateUnicodeString";
+ case 0x0210: return "RtlEmptyAtomTable";
+ case 0x0211: return "RtlEnableEarlyCriticalSectionEventCreation";
+ case 0x0212: return "RtlEncodePointer";
+ case 0x0213: return "RtlEncodeSystemPointer";
+ case 0x0214: return "RtlEnlargedIntegerMultiply";
+ case 0x0215: return "RtlEnlargedUnsignedDivide";
+ case 0x0216: return "RtlEnlargedUnsignedMultiply";
+ case 0x0217: return "RtlEnterCriticalSection";
+ case 0x0218: return "RtlEnumProcessHeaps";
+ case 0x0219: return "RtlEnumerateGenericTable";
+ case 0x021a: return "RtlEnumerateGenericTableAvl";
+ case 0x021b: return "RtlEnumerateGenericTableLikeADirectory";
+ case 0x021c: return "RtlEnumerateGenericTableWithoutSplaying";
+ case 0x021d: return "RtlEnumerateGenericTableWithoutSplayingAvl";
+ case 0x021e: return "RtlEqualComputerName";
+ case 0x021f: return "RtlEqualDomainName";
+ case 0x0220: return "RtlEqualLuid";
+ case 0x0221: return "RtlEqualPrefixSid";
+ case 0x0222: return "RtlEqualSid";
+ case 0x0223: return "RtlEqualString";
+ case 0x0224: return "RtlEqualUnicodeString";
+ case 0x0225: return "RtlEraseUnicodeString";
+ case 0x0226: return "RtlExitUserThread";
+ case 0x0227: return "RtlExpandEnvironmentStrings_U";
+ case 0x0228: return "RtlExtendHeap";
+ case 0x0229: return "RtlExtendedIntegerMultiply";
+ case 0x022a: return "RtlExtendedLargeIntegerDivide";
+ case 0x022b: return "RtlExtendedMagicDivide";
+ case 0x022c: return "RtlFillMemory";
+ case 0x022d: return "RtlFillMemoryUlong";
+ case 0x022e: return "RtlFinalReleaseOutOfProcessMemoryStream";
+ case 0x022f: return "RtlFindActivationContextSectionGuid";
+ case 0x0230: return "RtlFindActivationContextSectionString";
+ case 0x0231: return "RtlFindCharInUnicodeString";
+ case 0x0232: return "RtlFindClearBits";
+ case 0x0233: return "RtlFindClearBitsAndSet";
+ case 0x0234: return "RtlFindClearRuns";
+ case 0x0235: return "RtlFindLastBackwardRunClear";
+ case 0x0236: return "RtlFindLeastSignificantBit";
+ case 0x0237: return "RtlFindLongestRunClear";
+ case 0x0238: return "RtlFindMessage";
+ case 0x0239: return "RtlFindMostSignificantBit";
+ case 0x023a: return "RtlFindNextForwardRunClear";
+ case 0x023b: return "RtlFindRange";
+ case 0x023c: return "RtlFindSetBits";
+ case 0x023d: return "RtlFindSetBitsAndClear";
+ case 0x023e: return "RtlFirstEntrySList";
+ case 0x023f: return "RtlFirstFreeAce";
+ case 0x0240: return "RtlFlushSecureMemoryCache";
+ case 0x0241: return "RtlFormatCurrentUserKeyPath";
+ case 0x0242: return "RtlFormatMessage";
+ case 0x0243: return "RtlFreeAnsiString";
+ case 0x0244: return "RtlFreeHandle";
+ case 0x0245: return "RtlFreeHeap";
+ case 0x0246: return "RtlFreeOemString";
+ case 0x0247: return "RtlFreeRangeList";
+ case 0x0248: return "RtlFreeSid";
+ case 0x0249: return "RtlFreeThreadActivationContextStack";
+ case 0x024a: return "RtlFreeUnicodeString";
+ case 0x024b: return "RtlFreeUserThreadStack";
+ case 0x024c: return "RtlGUIDFromString";
+ case 0x024d: return "RtlGenerate8dot3Name";
+ case 0x024e: return "RtlGetAce";
+ case 0x024f: return "RtlGetActiveActivationContext";
+ case 0x0250: return "RtlGetCallersAddress";
+ case 0x0251: return "RtlGetCompressionWorkSpaceSize";
+ case 0x0252: return "RtlGetControlSecurityDescriptor";
+ case 0x0253: return "RtlGetCurrentDirectory_U";
+ case 0x0254: return "RtlGetCurrentPeb";
+ case 0x0255: return "RtlGetDaclSecurityDescriptor";
+ case 0x0256: return "RtlGetElementGenericTable";
+ case 0x0257: return "RtlGetElementGenericTableAvl";
+ case 0x0258: return "RtlGetFirstRange";
+ case 0x0259: return "RtlGetFrame";
+ case 0x025a: return "RtlGetFullPathName_U";
+ case 0x025b: return "RtlGetGroupSecurityDescriptor";
+ case 0x025c: return "RtlGetLastNtStatus";
+ case 0x025d: return "RtlGetLastWin32Error";
+ case 0x025e: return "RtlGetLengthWithoutLastFullDosOrNtPathElement";
+ case 0x025f: return "RtlGetLengthWithoutTrailingPathSeperators";
+ case 0x0260: return "RtlGetLongestNtPathLength";
+ case 0x0261: return "RtlGetNativeSystemInformation";
+ case 0x0262: return "RtlGetNextRange";
+ case 0x0263: return "RtlGetNtGlobalFlags";
+ case 0x0264: return "RtlGetNtProductType";
+ case 0x0265: return "RtlGetNtVersionNumbers";
+ case 0x0266: return "RtlGetOwnerSecurityDescriptor";
+ case 0x0267: return "RtlGetProcessHeaps";
+ case 0x0268: return "RtlGetSaclSecurityDescriptor";
+ case 0x0269: return "RtlGetSecurityDescriptorRMControl";
+ case 0x026a: return "RtlGetSetBootStatusData";
+ case 0x026b: return "RtlGetUnloadEventTrace";
+ case 0x026c: return "RtlGetUserInfoHeap";
+ case 0x026d: return "RtlGetVersion";
+ case 0x026e: return "RtlHashUnicodeString";
+ case 0x026f: return "RtlIdentifierAuthoritySid";
+ case 0x0270: return "RtlImageDirectoryEntryToData";
+ case 0x0271: return "RtlImageNtHeader";
+ case 0x0272: return "RtlImageRvaToSection";
+ case 0x0273: return "RtlImageRvaToVa";
+ case 0x0274: return "RtlImpersonateSelf";
+ case 0x0275: return "RtlInitAnsiString";
+ case 0x0276: return "RtlInitCodePageTable";
+ case 0x0277: return "RtlInitMemoryStream";
+ case 0x0278: return "RtlInitNlsTables";
+ case 0x0279: return "RtlInitOutOfProcessMemoryStream";
+ case 0x027a: return "RtlInitString";
+ case 0x027b: return "RtlInitUnicodeString";
+ case 0x027c: return "RtlInitUnicodeStringEx";
+ case 0x027d: return "RtlInitializeAtomPackage";
+ case 0x027e: return "RtlInitializeBitMap";
+ case 0x027f: return "RtlInitializeContext";
+ case 0x0280: return "RtlInitializeCriticalSection";
+ case 0x0281: return "RtlInitializeCriticalSectionAndSpinCount";
+ case 0x0282: return "RtlInitializeGenericTable";
+ case 0x0283: return "RtlInitializeGenericTableAvl";
+ case 0x0284: return "RtlInitializeHandleTable";
+ case 0x0285: return "RtlInitializeRXact";
+ case 0x0286: return "RtlInitializeRangeList";
+ case 0x0287: return "RtlInitializeResource";
+ case 0x0288: return "RtlInitializeSListHead";
+ case 0x0289: return "RtlInitializeSid";
+ case 0x028a: return "RtlInitializeStackTraceDataBase";
+ case 0x028b: return "RtlInsertElementGenericTable";
+ case 0x028c: return "RtlInsertElementGenericTableAvl";
+ case 0x028d: return "RtlInt64ToUnicodeString";
+ case 0x028e: return "RtlIntegerToChar";
+ case 0x028f: return "RtlIntegerToUnicodeString";
+ case 0x0290: return "RtlInterlockedFlushSList";
+ case 0x0291: return "RtlInterlockedPopEntrySList";
+ case 0x0292: return "RtlInterlockedPushEntrySList";
+ case 0x0004: return "RtlInterlockedPushListSList";
+ case 0x0293: return "RtlInvertRangeList";
+ case 0x0294: return "RtlIpv4AddressToStringA";
+ case 0x0295: return "RtlIpv4AddressToStringExA";
+ case 0x0296: return "RtlIpv4AddressToStringExW";
+ case 0x0297: return "RtlIpv4AddressToStringW";
+ case 0x0298: return "RtlIpv4StringToAddressA";
+ case 0x0299: return "RtlIpv4StringToAddressExA";
+ case 0x029a: return "RtlIpv4StringToAddressExW";
+ case 0x029b: return "RtlIpv4StringToAddressW";
+ case 0x029c: return "RtlIpv6AddressToStringA";
+ case 0x029d: return "RtlIpv6AddressToStringExA";
+ case 0x029e: return "RtlIpv6AddressToStringExW";
+ case 0x029f: return "RtlIpv6AddressToStringW";
+ case 0x02a0: return "RtlIpv6StringToAddressA";
+ case 0x02a1: return "RtlIpv6StringToAddressExA";
+ case 0x02a2: return "RtlIpv6StringToAddressExW";
+ case 0x02a3: return "RtlIpv6StringToAddressW";
+ case 0x02a4: return "RtlIsActivationContextActive";
+ case 0x02a5: return "RtlIsDosDeviceName_U";
+ case 0x02a6: return "RtlIsGenericTableEmpty";
+ case 0x02a7: return "RtlIsGenericTableEmptyAvl";
+ case 0x02a8: return "RtlIsNameLegalDOS8Dot3";
+ case 0x02a9: return "RtlIsRangeAvailable";
+ case 0x02aa: return "RtlIsTextUnicode";
+ case 0x02ab: return "RtlIsThreadWithinLoaderCallout";
+ case 0x02ac: return "RtlIsValidHandle";
+ case 0x02ad: return "RtlIsValidIndexHandle";
+ case 0x02ae: return "RtlLargeIntegerAdd";
+ case 0x02af: return "RtlLargeIntegerArithmeticShift";
+ case 0x02b0: return "RtlLargeIntegerDivide";
+ case 0x02b1: return "RtlLargeIntegerNegate";
+ case 0x02b2: return "RtlLargeIntegerShiftLeft";
+ case 0x02b3: return "RtlLargeIntegerShiftRight";
+ case 0x02b4: return "RtlLargeIntegerSubtract";
+ case 0x02b5: return "RtlLargeIntegerToChar";
+ case 0x02b6: return "RtlLeaveCriticalSection";
+ case 0x02b7: return "RtlLengthRequiredSid";
+ case 0x02b8: return "RtlLengthSecurityDescriptor";
+ case 0x02b9: return "RtlLengthSid";
+ case 0x02ba: return "RtlLocalTimeToSystemTime";
+ case 0x02bb: return "RtlLockBootStatusData";
+ case 0x02bc: return "RtlLockHeap";
+ case 0x02bd: return "RtlLockMemoryStreamRegion";
+ case 0x02be: return "RtlLogStackBackTrace";
+ case 0x02bf: return "RtlLookupAtomInAtomTable";
+ case 0x02c0: return "RtlLookupElementGenericTable";
+ case 0x02c1: return "RtlLookupElementGenericTableAvl";
+ case 0x02c2: return "RtlMakeSelfRelativeSD";
+ case 0x02c3: return "RtlMapGenericMask";
+ case 0x02c4: return "RtlMapSecurityErrorToNtStatus";
+ case 0x02c5: return "RtlMergeRangeLists";
+ case 0x02c6: return "RtlMoveMemory";
+ case 0x02c7: return "RtlMultiAppendUnicodeStringBuffer";
+ case 0x02c8: return "RtlMultiByteToUnicodeN";
+ case 0x02c9: return "RtlMultiByteToUnicodeSize";
+ case 0x02ca: return "RtlNewInstanceSecurityObject";
+ case 0x02cb: return "RtlNewSecurityGrantedAccess";
+ case 0x02cc: return "RtlNewSecurityObject";
+ case 0x02cd: return "RtlNewSecurityObjectEx";
+ case 0x02ce: return "RtlNewSecurityObjectWithMultipleInheritance";
+ case 0x02cf: return "RtlNormalizeProcessParams";
+ case 0x02d0: return "RtlNtPathNameToDosPathName";
+ case 0x02d1: return "RtlNtStatusToDosError";
+ case 0x02d2: return "RtlNtStatusToDosErrorNoTeb";
+ case 0x02d3: return "RtlNumberGenericTableElements";
+ case 0x02d4: return "RtlNumberGenericTableElementsAvl";
+ case 0x02d5: return "RtlNumberOfClearBits";
+ case 0x02d6: return "RtlNumberOfSetBits";
+ case 0x02d7: return "RtlOemStringToUnicodeSize";
+ case 0x02d8: return "RtlOemStringToUnicodeString";
+ case 0x02d9: return "RtlOemToUnicodeN";
+ case 0x02da: return "RtlOpenCurrentUser";
+ case 0x02db: return "RtlPcToFileHeader";
+ case 0x02dc: return "RtlPinAtomInAtomTable";
+ case 0x02dd: return "RtlPopFrame";
+ case 0x02de: return "RtlPrefixString";
+ case 0x02df: return "RtlPrefixUnicodeString";
+ case 0x02e0: return "RtlProtectHeap";
+ case 0x02e1: return "RtlPushFrame";
+ case 0x02e2: return "RtlQueryAtomInAtomTable";
+ case 0x02e3: return "RtlQueryDepthSList";
+ case 0x02e4: return "RtlQueryEnvironmentVariable_U";
+ case 0x02e5: return "RtlQueryHeapInformation";
+ case 0x02e6: return "RtlQueryInformationAcl";
+ case 0x02e7: return "RtlQueryInformationActivationContext";
+ case 0x02e8: return "RtlQueryInformationActiveActivationContext";
+ case 0x02e9: return "RtlQueryInterfaceMemoryStream";
+ case 0x02ea: return "RtlQueryProcessBackTraceInformation";
+ case 0x02eb: return "RtlQueryProcessDebugInformation";
+ case 0x02ec: return "RtlQueryProcessHeapInformation";
+ case 0x02ed: return "RtlQueryProcessLockInformation";
+ case 0x02ee: return "RtlQueryRegistryValues";
+ case 0x02ef: return "RtlQuerySecurityObject";
+ case 0x02f0: return "RtlQueryTagHeap";
+ case 0x02f1: return "RtlQueryTimeZoneInformation";
+ case 0x02f2: return "RtlQueueApcWow64Thread";
+ case 0x02f3: return "RtlQueueWorkItem";
+ case 0x02f4: return "RtlRaiseException";
+ case 0x02f5: return "RtlRaiseStatus";
+ case 0x02f6: return "RtlRandom";
+ case 0x02f7: return "RtlRandomEx";
+ case 0x02f8: return "RtlReAllocateHeap";
+ case 0x02f9: return "RtlReadMemoryStream";
+ case 0x02fa: return "RtlReadOutOfProcessMemoryStream";
+ case 0x02fb: return "RtlRealPredecessor";
+ case 0x02fc: return "RtlRealSuccessor";
+ case 0x02fd: return "RtlRegisterSecureMemoryCacheCallback";
+ case 0x02fe: return "RtlRegisterWait";
+ case 0x02ff: return "RtlReleaseActivationContext";
+ case 0x0300: return "RtlReleaseMemoryStream";
+ case 0x0301: return "RtlReleasePebLock";
+ case 0x0302: return "RtlReleaseResource";
+ case 0x0303: return "RtlRemoteCall";
+ case 0x0304: return "RtlRemoveVectoredExceptionHandler";
+ case 0x0305: return "RtlResetRtlTranslations";
+ case 0x0306: return "RtlRestoreLastWin32Error";
+ case 0x0307: return "RtlRevertMemoryStream";
+ case 0x0308: return "RtlRunDecodeUnicodeString";
+ case 0x0309: return "RtlRunEncodeUnicodeString";
+ case 0x030a: return "RtlSecondsSince1970ToTime";
+ case 0x030b: return "RtlSecondsSince1980ToTime";
+ case 0x030c: return "RtlSeekMemoryStream";
+ case 0x030e: return "RtlSelfRelativeToAbsoluteSD";
+ case 0x030d: return "RtlSelfRelativeToAbsoluteSD2";
+ case 0x030f: return "RtlSetAllBits";
+ case 0x0310: return "RtlSetAttributesSecurityDescriptor";
+ case 0x0311: return "RtlSetBits";
+ case 0x0312: return "RtlSetControlSecurityDescriptor";
+ case 0x0313: return "RtlSetCriticalSectionSpinCount";
+ case 0x0314: return "RtlSetCurrentDirectory_U";
+ case 0x0315: return "RtlSetCurrentEnvironment";
+ case 0x0316: return "RtlSetDaclSecurityDescriptor";
+ case 0x0317: return "RtlSetEnvironmentVariable";
+ case 0x0318: return "RtlSetGroupSecurityDescriptor";
+ case 0x0319: return "RtlSetHeapInformation";
+ case 0x031a: return "RtlSetInformationAcl";
+ case 0x031b: return "RtlSetIoCompletionCallback";
+ case 0x031c: return "RtlSetLastWin32Error";
+ case 0x031d: return "RtlSetLastWin32ErrorAndNtStatusFromNtStatus";
+ case 0x031e: return "RtlSetMemoryStreamSize";
+ case 0x031f: return "RtlSetOwnerSecurityDescriptor";
+ case 0x0320: return "RtlSetProcessIsCritical";
+ case 0x0321: return "RtlSetSaclSecurityDescriptor";
+ case 0x0322: return "RtlSetSecurityDescriptorRMControl";
+ case 0x0323: return "RtlSetSecurityObject";
+ case 0x0324: return "RtlSetSecurityObjectEx";
+ case 0x0325: return "RtlSetThreadIsCritical";
+ case 0x0326: return "RtlSetThreadPoolStartFunc";
+ case 0x0327: return "RtlSetTimeZoneInformation";
+ case 0x0328: return "RtlSetTimer";
+ case 0x0329: return "RtlSetUnicodeCallouts";
+ case 0x032a: return "RtlSetUserFlagsHeap";
+ case 0x032b: return "RtlSetUserValueHeap";
+ case 0x032c: return "RtlSizeHeap";
+ case 0x032d: return "RtlSplay";
+ case 0x032e: return "RtlStartRXact";
+ case 0x032f: return "RtlStatMemoryStream";
+ case 0x0330: return "RtlStringFromGUID";
+ case 0x0331: return "RtlSubAuthorityCountSid";
+ case 0x0332: return "RtlSubAuthoritySid";
+ case 0x0333: return "RtlSubtreePredecessor";
+ case 0x0334: return "RtlSubtreeSuccessor";
+ case 0x0335: return "RtlSystemTimeToLocalTime";
+ case 0x0336: return "RtlTimeFieldsToTime";
+ case 0x0337: return "RtlTimeToElapsedTimeFields";
+ case 0x0338: return "RtlTimeToSecondsSince1970";
+ case 0x0339: return "RtlTimeToSecondsSince1980";
+ case 0x033a: return "RtlTimeToTimeFields";
+ case 0x033b: return "RtlTraceDatabaseAdd";
+ case 0x033c: return "RtlTraceDatabaseCreate";
+ case 0x033d: return "RtlTraceDatabaseDestroy";
+ case 0x033e: return "RtlTraceDatabaseEnumerate";
+ case 0x033f: return "RtlTraceDatabaseFind";
+ case 0x0340: return "RtlTraceDatabaseLock";
+ case 0x0341: return "RtlTraceDatabaseUnlock";
+ case 0x0342: return "RtlTraceDatabaseValidate";
+ case 0x0343: return "RtlTryEnterCriticalSection";
+ case 0x0005: return "RtlUlongByteSwap";
+ case 0x0006: return "RtlUlonglongByteSwap";
+ case 0x0345: return "RtlUnhandledExceptionFilter";
+ case 0x0344: return "RtlUnhandledExceptionFilter2";
+ case 0x0346: return "RtlUnicodeStringToAnsiSize";
+ case 0x0347: return "RtlUnicodeStringToAnsiString";
+ case 0x0348: return "RtlUnicodeStringToCountedOemString";
+ case 0x0349: return "RtlUnicodeStringToInteger";
+ case 0x034a: return "RtlUnicodeStringToOemSize";
+ case 0x034b: return "RtlUnicodeStringToOemString";
+ case 0x034c: return "RtlUnicodeToCustomCPN";
+ case 0x034d: return "RtlUnicodeToMultiByteN";
+ case 0x034e: return "RtlUnicodeToMultiByteSize";
+ case 0x034f: return "RtlUnicodeToOemN";
+ case 0x0350: return "RtlUniform";
+ case 0x0351: return "RtlUnlockBootStatusData";
+ case 0x0352: return "RtlUnlockHeap";
+ case 0x0353: return "RtlUnlockMemoryStreamRegion";
+ case 0x0354: return "RtlUnwind";
+ case 0x0355: return "RtlUpcaseUnicodeChar";
+ case 0x0356: return "RtlUpcaseUnicodeString";
+ case 0x0357: return "RtlUpcaseUnicodeStringToAnsiString";
+ case 0x0358: return "RtlUpcaseUnicodeStringToCountedOemString";
+ case 0x0359: return "RtlUpcaseUnicodeStringToOemString";
+ case 0x035a: return "RtlUpcaseUnicodeToCustomCPN";
+ case 0x035b: return "RtlUpcaseUnicodeToMultiByteN";
+ case 0x035c: return "RtlUpcaseUnicodeToOemN";
+ case 0x035d: return "RtlUpdateTimer";
+ case 0x035e: return "RtlUpperChar";
+ case 0x035f: return "RtlUpperString";
+ case 0x0360: return "RtlUsageHeap";
+ case 0x0007: return "RtlUshortByteSwap";
+ case 0x0361: return "RtlValidAcl";
+ case 0x0362: return "RtlValidRelativeSecurityDescriptor";
+ case 0x0363: return "RtlValidSecurityDescriptor";
+ case 0x0364: return "RtlValidSid";
+ case 0x0365: return "RtlValidateHeap";
+ case 0x0366: return "RtlValidateProcessHeaps";
+ case 0x0367: return "RtlValidateUnicodeString";
+ case 0x0368: return "RtlVerifyVersionInfo";
+ case 0x0369: return "RtlWalkFrameChain";
+ case 0x036a: return "RtlWalkHeap";
+ case 0x036b: return "RtlWriteMemoryStream";
+ case 0x036c: return "RtlWriteRegistryValue";
+ case 0x036d: return "RtlZeroHeap";
+ case 0x036e: return "RtlZeroMemory";
+ case 0x036f: return "RtlZombifyActivationContext";
+ case 0x0370: return "RtlpApplyLengthFunction";
+ case 0x0371: return "RtlpEnsureBufferSize";
+ case 0x0372: return "RtlpNotOwnerCriticalSection";
+ case 0x0373: return "RtlpNtCreateKey";
+ case 0x0374: return "RtlpNtEnumerateSubKey";
+ case 0x0375: return "RtlpNtMakeTemporaryKey";
+ case 0x0376: return "RtlpNtOpenKey";
+ case 0x0377: return "RtlpNtQueryValueKey";
+ case 0x0378: return "RtlpNtSetValueKey";
+ case 0x0379: return "RtlpUnWaitCriticalSection";
+ case 0x037a: return "RtlpWaitForCriticalSection";
+ case 0x037b: return "RtlxAnsiStringToUnicodeSize";
+ case 0x037c: return "RtlxOemStringToUnicodeSize";
+ case 0x037d: return "RtlxUnicodeStringToAnsiSize";
+ case 0x037e: return "RtlxUnicodeStringToOemSize";
+ case 0x037f: return "VerSetConditionMask";
+ case 0x0380: return "ZwAcceptConnectPort";
+ case 0x0381: return "ZwAccessCheck";
+ case 0x0382: return "ZwAccessCheckAndAuditAlarm";
+ case 0x0383: return "ZwAccessCheckByType";
+ case 0x0384: return "ZwAccessCheckByTypeAndAuditAlarm";
+ case 0x0385: return "ZwAccessCheckByTypeResultList";
+ case 0x0386: return "ZwAccessCheckByTypeResultListAndAuditAlarm";
+ case 0x0387: return "ZwAccessCheckByTypeResultListAndAuditAlarmByHandle";
+ case 0x0388: return "ZwAddAtom";
+ case 0x0389: return "ZwAddBootEntry";
+ case 0x038a: return "ZwAdjustGroupsToken";
+ case 0x038b: return "ZwAdjustPrivilegesToken";
+ case 0x038c: return "ZwAlertResumeThread";
+ case 0x038d: return "ZwAlertThread";
+ case 0x038e: return "ZwAllocateLocallyUniqueId";
+ case 0x038f: return "ZwAllocateUserPhysicalPages";
+ case 0x0390: return "ZwAllocateUuids";
+ case 0x0391: return "ZwAllocateVirtualMemory";
+ case 0x0392: return "ZwAreMappedFilesTheSame";
+ case 0x0393: return "ZwAssignProcessToJobObject";
+ case 0x0394: return "ZwCallbackReturn";
+ case 0x0395: return "ZwCancelDeviceWakeupRequest";
+ case 0x0396: return "ZwCancelIoFile";
+ case 0x0397: return "ZwCancelTimer";
+ case 0x0398: return "ZwClearEvent";
+ case 0x0399: return "ZwClose";
+ case 0x039a: return "ZwCloseObjectAuditAlarm";
+ case 0x039b: return "ZwCompactKeys";
+ case 0x039c: return "ZwCompareTokens";
+ case 0x039d: return "ZwCompleteConnectPort";
+ case 0x039e: return "ZwCompressKey";
+ case 0x039f: return "ZwConnectPort";
+ case 0x03a0: return "ZwContinue";
+ case 0x03a1: return "ZwCreateDebugObject";
+ case 0x03a2: return "ZwCreateDirectoryObject";
+ case 0x03a3: return "ZwCreateEvent";
+ case 0x03a4: return "ZwCreateEventPair";
+ case 0x03a5: return "ZwCreateFile";
+ case 0x03a6: return "ZwCreateIoCompletion";
+ case 0x03a7: return "ZwCreateJobObject";
+ case 0x03a8: return "ZwCreateJobSet";
+ case 0x03a9: return "ZwCreateKey";
+ case 0x03aa: return "ZwCreateKeyedEvent";
+ case 0x03ab: return "ZwCreateMailslotFile";
+ case 0x03ac: return "ZwCreateMutant";
+ case 0x03ad: return "ZwCreateNamedPipeFile";
+ case 0x03ae: return "ZwCreatePagingFile";
+ case 0x03af: return "ZwCreatePort";
+ case 0x03b0: return "ZwCreateProcess";
+ case 0x03b1: return "ZwCreateProcessEx";
+ case 0x03b2: return "ZwCreateProfile";
+ case 0x03b3: return "ZwCreateSection";
+ case 0x03b4: return "ZwCreateSemaphore";
+ case 0x03b5: return "ZwCreateSymbolicLinkObject";
+ case 0x03b6: return "ZwCreateThread";
+ case 0x03b7: return "ZwCreateTimer";
+ case 0x03b8: return "ZwCreateToken";
+ case 0x03b9: return "ZwCreateWaitablePort";
+ case 0x03ba: return "ZwDebugActiveProcess";
+ case 0x03bb: return "ZwDebugContinue";
+ case 0x03bc: return "ZwDelayExecution";
+ case 0x03bd: return "ZwDeleteAtom";
+ case 0x03be: return "ZwDeleteBootEntry";
+ case 0x03bf: return "ZwDeleteFile";
+ case 0x03c0: return "ZwDeleteKey";
+ case 0x03c1: return "ZwDeleteObjectAuditAlarm";
+ case 0x03c2: return "ZwDeleteValueKey";
+ case 0x03c3: return "ZwDeviceIoControlFile";
+ case 0x03c4: return "ZwDisplayString";
+ case 0x03c5: return "ZwDuplicateObject";
+ case 0x03c6: return "ZwDuplicateToken";
+ case 0x03c7: return "ZwEnumerateBootEntries";
+ case 0x03c8: return "ZwEnumerateKey";
+ case 0x03c9: return "ZwEnumerateSystemEnvironmentValuesEx";
+ case 0x03ca: return "ZwEnumerateValueKey";
+ case 0x03cb: return "ZwExtendSection";
+ case 0x03cc: return "ZwFilterToken";
+ case 0x03cd: return "ZwFindAtom";
+ case 0x03ce: return "ZwFlushBuffersFile";
+ case 0x03cf: return "ZwFlushInstructionCache";
+ case 0x03d0: return "ZwFlushKey";
+ case 0x03d1: return "ZwFlushVirtualMemory";
+ case 0x03d2: return "ZwFlushWriteBuffer";
+ case 0x03d3: return "ZwFreeUserPhysicalPages";
+ case 0x03d4: return "ZwFreeVirtualMemory";
+ case 0x03d5: return "ZwFsControlFile";
+ case 0x03d6: return "ZwGetContextThread";
+ case 0x03d7: return "ZwGetDevicePowerState";
+ case 0x03d8: return "ZwGetPlugPlayEvent";
+ case 0x03d9: return "ZwGetWriteWatch";
+ case 0x03da: return "ZwImpersonateAnonymousToken";
+ case 0x03db: return "ZwImpersonateClientOfPort";
+ case 0x03dc: return "ZwImpersonateThread";
+ case 0x03dd: return "ZwInitializeRegistry";
+ case 0x03de: return "ZwInitiatePowerAction";
+ case 0x03df: return "ZwIsProcessInJob";
+ case 0x03e0: return "ZwIsSystemResumeAutomatic";
+ case 0x03e1: return "ZwListenPort";
+ case 0x03e2: return "ZwLoadDriver";
+ case 0x03e4: return "ZwLoadKey";
+ case 0x03e3: return "ZwLoadKey2";
+ case 0x03e5: return "ZwLockFile";
+ case 0x03e6: return "ZwLockProductActivationKeys";
+ case 0x03e7: return "ZwLockRegistryKey";
+ case 0x03e8: return "ZwLockVirtualMemory";
+ case 0x03e9: return "ZwMakePermanentObject";
+ case 0x03ea: return "ZwMakeTemporaryObject";
+ case 0x03eb: return "ZwMapUserPhysicalPages";
+ case 0x03ec: return "ZwMapUserPhysicalPagesScatter";
+ case 0x03ed: return "ZwMapViewOfSection";
+ case 0x03ee: return "ZwModifyBootEntry";
+ case 0x03ef: return "ZwNotifyChangeDirectoryFile";
+ case 0x03f0: return "ZwNotifyChangeKey";
+ case 0x03f1: return "ZwNotifyChangeMultipleKeys";
+ case 0x03f2: return "ZwOpenDirectoryObject";
+ case 0x03f3: return "ZwOpenEvent";
+ case 0x03f4: return "ZwOpenEventPair";
+ case 0x03f5: return "ZwOpenFile";
+ case 0x03f6: return "ZwOpenIoCompletion";
+ case 0x03f7: return "ZwOpenJobObject";
+ case 0x03f8: return "ZwOpenKey";
+ case 0x03f9: return "ZwOpenKeyedEvent";
+ case 0x03fa: return "ZwOpenMutant";
+ case 0x03fb: return "ZwOpenObjectAuditAlarm";
+ case 0x03fc: return "ZwOpenProcess";
+ case 0x03fd: return "ZwOpenProcessToken";
+ case 0x03fe: return "ZwOpenProcessTokenEx";
+ case 0x03ff: return "ZwOpenSection";
+ case 0x0400: return "ZwOpenSemaphore";
+ case 0x0401: return "ZwOpenSymbolicLinkObject";
+ case 0x0402: return "ZwOpenThread";
+ case 0x0403: return "ZwOpenThreadToken";
+ case 0x0404: return "ZwOpenThreadTokenEx";
+ case 0x0405: return "ZwOpenTimer";
+ case 0x0406: return "ZwPlugPlayControl";
+ case 0x0407: return "ZwPowerInformation";
+ case 0x0408: return "ZwPrivilegeCheck";
+ case 0x0409: return "ZwPrivilegeObjectAuditAlarm";
+ case 0x040a: return "ZwPrivilegedServiceAuditAlarm";
+ case 0x040b: return "ZwProtectVirtualMemory";
+ case 0x040c: return "ZwPulseEvent";
+ case 0x040d: return "ZwQueryAttributesFile";
+ case 0x040e: return "ZwQueryBootEntryOrder";
+ case 0x040f: return "ZwQueryBootOptions";
+ case 0x0410: return "ZwQueryDebugFilterState";
+ case 0x0411: return "ZwQueryDefaultLocale";
+ case 0x0412: return "ZwQueryDefaultUILanguage";
+ case 0x0413: return "ZwQueryDirectoryFile";
+ case 0x0414: return "ZwQueryDirectoryObject";
+ case 0x0415: return "ZwQueryEaFile";
+ case 0x0416: return "ZwQueryEvent";
+ case 0x0417: return "ZwQueryFullAttributesFile";
+ case 0x0418: return "ZwQueryInformationAtom";
+ case 0x0419: return "ZwQueryInformationFile";
+ case 0x041a: return "ZwQueryInformationJobObject";
+ case 0x041b: return "ZwQueryInformationPort";
+ case 0x041c: return "ZwQueryInformationProcess";
+ case 0x041d: return "ZwQueryInformationThread";
+ case 0x041e: return "ZwQueryInformationToken";
+ case 0x041f: return "ZwQueryInstallUILanguage";
+ case 0x0420: return "ZwQueryIntervalProfile";
+ case 0x0421: return "ZwQueryIoCompletion";
+ case 0x0422: return "ZwQueryKey";
+ case 0x0423: return "ZwQueryMultipleValueKey";
+ case 0x0424: return "ZwQueryMutant";
+ case 0x0425: return "ZwQueryObject";
+ case 0x0426: return "ZwQueryOpenSubKeys";
+ case 0x0427: return "ZwQueryPerformanceCounter";
+ case 0x0428: return "ZwQueryPortInformationProcess";
+ case 0x0429: return "ZwQueryQuotaInformationFile";
+ case 0x042a: return "ZwQuerySection";
+ case 0x042b: return "ZwQuerySecurityObject";
+ case 0x042c: return "ZwQuerySemaphore";
+ case 0x042d: return "ZwQuerySymbolicLinkObject";
+ case 0x042e: return "ZwQuerySystemEnvironmentValue";
+ case 0x042f: return "ZwQuerySystemEnvironmentValueEx";
+ case 0x0430: return "ZwQuerySystemInformation";
+ case 0x0431: return "ZwQuerySystemTime";
+ case 0x0432: return "ZwQueryTimer";
+ case 0x0433: return "ZwQueryTimerResolution";
+ case 0x0434: return "ZwQueryValueKey";
+ case 0x0435: return "ZwQueryVirtualMemory";
+ case 0x0436: return "ZwQueryVolumeInformationFile";
+ case 0x0437: return "ZwQueueApcThread";
+ case 0x0438: return "ZwRaiseException";
+ case 0x0439: return "ZwRaiseHardError";
+ case 0x043a: return "ZwReadFile";
+ case 0x043b: return "ZwReadFileScatter";
+ case 0x043c: return "ZwReadRequestData";
+ case 0x043d: return "ZwReadVirtualMemory";
+ case 0x043e: return "ZwRegisterThreadTerminatePort";
+ case 0x043f: return "ZwReleaseKeyedEvent";
+ case 0x0440: return "ZwReleaseMutant";
+ case 0x0441: return "ZwReleaseSemaphore";
+ case 0x0442: return "ZwRemoveIoCompletion";
+ case 0x0443: return "ZwRemoveProcessDebug";
+ case 0x0444: return "ZwRenameKey";
+ case 0x0445: return "ZwReplaceKey";
+ case 0x0446: return "ZwReplyPort";
+ case 0x0447: return "ZwReplyWaitReceivePort";
+ case 0x0448: return "ZwReplyWaitReceivePortEx";
+ case 0x0449: return "ZwReplyWaitReplyPort";
+ case 0x044a: return "ZwRequestDeviceWakeup";
+ case 0x044b: return "ZwRequestPort";
+ case 0x044c: return "ZwRequestWaitReplyPort";
+ case 0x044d: return "ZwRequestWakeupLatency";
+ case 0x044e: return "ZwResetEvent";
+ case 0x044f: return "ZwResetWriteWatch";
+ case 0x0450: return "ZwRestoreKey";
+ case 0x0451: return "ZwResumeProcess";
+ case 0x0452: return "ZwResumeThread";
+ case 0x0453: return "ZwSaveKey";
+ case 0x0454: return "ZwSaveKeyEx";
+ case 0x0455: return "ZwSaveMergedKeys";
+ case 0x0456: return "ZwSecureConnectPort";
+ case 0x0457: return "ZwSetBootEntryOrder";
+ case 0x0458: return "ZwSetBootOptions";
+ case 0x0459: return "ZwSetContextThread";
+ case 0x045a: return "ZwSetDebugFilterState";
+ case 0x045b: return "ZwSetDefaultHardErrorPort";
+ case 0x045c: return "ZwSetDefaultLocale";
+ case 0x045d: return "ZwSetDefaultUILanguage";
+ case 0x045e: return "ZwSetEaFile";
+ case 0x045f: return "ZwSetEvent";
+ case 0x0460: return "ZwSetEventBoostPriority";
+ case 0x0461: return "ZwSetHighEventPair";
+ case 0x0462: return "ZwSetHighWaitLowEventPair";
+ case 0x0463: return "ZwSetInformationDebugObject";
+ case 0x0464: return "ZwSetInformationFile";
+ case 0x0465: return "ZwSetInformationJobObject";
+ case 0x0466: return "ZwSetInformationKey";
+ case 0x0467: return "ZwSetInformationObject";
+ case 0x0468: return "ZwSetInformationProcess";
+ case 0x0469: return "ZwSetInformationThread";
+ case 0x046a: return "ZwSetInformationToken";
+ case 0x046b: return "ZwSetIntervalProfile";
+ case 0x046c: return "ZwSetIoCompletion";
+ case 0x046d: return "ZwSetLdtEntries";
+ case 0x046e: return "ZwSetLowEventPair";
+ case 0x046f: return "ZwSetLowWaitHighEventPair";
+ case 0x0470: return "ZwSetQuotaInformationFile";
+ case 0x0471: return "ZwSetSecurityObject";
+ case 0x0472: return "ZwSetSystemEnvironmentValue";
+ case 0x0473: return "ZwSetSystemEnvironmentValueEx";
+ case 0x0474: return "ZwSetSystemInformation";
+ case 0x0475: return "ZwSetSystemPowerState";
+ case 0x0476: return "ZwSetSystemTime";
+ case 0x0477: return "ZwSetThreadExecutionState";
+ case 0x0478: return "ZwSetTimer";
+ case 0x0479: return "ZwSetTimerResolution";
+ case 0x047a: return "ZwSetUuidSeed";
+ case 0x047b: return "ZwSetValueKey";
+ case 0x047c: return "ZwSetVolumeInformationFile";
+ case 0x047d: return "ZwShutdownSystem";
+ case 0x047e: return "ZwSignalAndWaitForSingleObject";
+ case 0x047f: return "ZwStartProfile";
+ case 0x0480: return "ZwStopProfile";
+ case 0x0481: return "ZwSuspendProcess";
+ case 0x0482: return "ZwSuspendThread";
+ case 0x0483: return "ZwSystemDebugControl";
+ case 0x0484: return "ZwTerminateJobObject";
+ case 0x0485: return "ZwTerminateProcess";
+ case 0x0486: return "ZwTerminateThread";
+ case 0x0487: return "ZwTestAlert";
+ case 0x0488: return "ZwTraceEvent";
+ case 0x0489: return "ZwTranslateFilePath";
+ case 0x048a: return "ZwUnloadDriver";
+ case 0x048b: return "ZwUnloadKey";
+ case 0x048c: return "ZwUnloadKeyEx";
+ case 0x048d: return "ZwUnlockFile";
+ case 0x048e: return "ZwUnlockVirtualMemory";
+ case 0x048f: return "ZwUnmapViewOfSection";
+ case 0x0490: return "ZwVdmControl";
+ case 0x0491: return "ZwWaitForDebugEvent";
+ case 0x0492: return "ZwWaitForKeyedEvent";
+ case 0x0493: return "ZwWaitForMultipleObjects";
+ case 0x0494: return "ZwWaitForSingleObject";
+ case 0x0495: return "ZwWaitHighEventPair";
+ case 0x0496: return "ZwWaitLowEventPair";
+ case 0x0497: return "ZwWriteFile";
+ case 0x0498: return "ZwWriteFileGather";
+ case 0x0499: return "ZwWriteRequestData";
+ case 0x049a: return "ZwWriteVirtualMemory";
+ case 0x049b: return "ZwYieldExecution";
+ case 0x049c: return "_CIcos";
+ case 0x049d: return "_CIlog";
+ case 0x049e: return "_CIpow";
+ case 0x049f: return "_CIsin";
+ case 0x04a0: return "_CIsqrt";
+ case 0x04a1: return "__isascii";
+ case 0x04a2: return "__iscsym";
+ case 0x04a3: return "__iscsymf";
+ case 0x04a4: return "__toascii";
+ case 0x04a5: return "_alldiv";
+ case 0x04a6: return "_alldvrm";
+ case 0x04a7: return "_allmul";
+ case 0x04a8: return "_alloca_probe";
+ case 0x04a9: return "_allrem";
+ case 0x04aa: return "_allshl";
+ case 0x04ab: return "_allshr";
+ case 0x04ac: return "_atoi64";
+ case 0x04ad: return "_aulldiv";
+ case 0x04ae: return "_aulldvrm";
+ case 0x04af: return "_aullrem";
+ case 0x04b0: return "_aullshr";
+ case 0x04b1: return "_chkstk";
+ case 0x04b2: return "_fltused";
+ case 0x04b3: return "_ftol";
+ case 0x04b4: return "_i64toa";
+ case 0x04b5: return "_i64tow";
+ case 0x04b6: return "_itoa";
+ case 0x04b7: return "_itow";
+ case 0x04b8: return "_lfind";
+ case 0x04b9: return "_ltoa";
+ case 0x04ba: return "_ltow";
+ case 0x04bb: return "_memccpy";
+ case 0x04bc: return "_memicmp";
+ case 0x04bd: return "_snprintf";
+ case 0x04be: return "_snwprintf";
+ case 0x04bf: return "_splitpath";
+ case 0x04c0: return "_strcmpi";
+ case 0x04c1: return "_stricmp";
+ case 0x04c2: return "_strlwr";
+ case 0x04c3: return "_strnicmp";
+ case 0x04c4: return "_strupr";
+ case 0x04c5: return "_tolower";
+ case 0x04c6: return "_toupper";
+ case 0x04c7: return "_ui64toa";
+ case 0x04c8: return "_ui64tow";
+ case 0x04c9: return "_ultoa";
+ case 0x04ca: return "_ultow";
+ case 0x04cb: return "_vsnprintf";
+ case 0x04cc: return "_vsnwprintf";
+ case 0x04cd: return "_wcsicmp";
+ case 0x04ce: return "_wcslwr";
+ case 0x04cf: return "_wcsnicmp";
+ case 0x04d0: return "_wcsupr";
+ case 0x04d1: return "_wtoi";
+ case 0x04d2: return "_wtoi64";
+ case 0x04d3: return "_wtol";
+ case 0x04d4: return "abs";
+ case 0x04d5: return "atan";
+ case 0x04d6: return "atoi";
+ case 0x04d7: return "atol";
+ case 0x04d8: return "bsearch";
+ case 0x04d9: return "ceil";
+ case 0x04da: return "cos";
+ case 0x04db: return "fabs";
+ case 0x04dc: return "floor";
+ case 0x04dd: return "isalnum";
+ case 0x04de: return "isalpha";
+ case 0x04df: return "iscntrl";
+ case 0x04e0: return "isdigit";
+ case 0x04e1: return "isgraph";
+ case 0x04e2: return "islower";
+ case 0x04e3: return "isprint";
+ case 0x04e4: return "ispunct";
+ case 0x04e5: return "isspace";
+ case 0x04e6: return "isupper";
+ case 0x04e7: return "iswalpha";
+ case 0x04e8: return "iswctype";
+ case 0x04e9: return "iswdigit";
+ case 0x04ea: return "iswlower";
+ case 0x04eb: return "iswspace";
+ case 0x04ec: return "iswxdigit";
+ case 0x04ed: return "isxdigit";
+ case 0x04ee: return "labs";
+ case 0x04ef: return "log";
+ case 0x04f0: return "mbstowcs";
+ case 0x04f1: return "memchr";
+ case 0x04f2: return "memcmp";
+ case 0x04f3: return "memcpy";
+ case 0x04f4: return "memmove";
+ case 0x04f5: return "memset";
+ case 0x04f6: return "pow";
+ case 0x04f7: return "qsort";
+ case 0x04f8: return "sin";
+ case 0x04f9: return "sprintf";
+ case 0x04fa: return "sqrt";
+ case 0x04fb: return "sscanf";
+ case 0x04fc: return "strcat";
+ case 0x04fd: return "strchr";
+ case 0x04fe: return "strcmp";
+ case 0x04ff: return "strcpy";
+ case 0x0500: return "strcspn";
+ case 0x0501: return "strlen";
+ case 0x0502: return "strncat";
+ case 0x0503: return "strncmp";
+ case 0x0504: return "strncpy";
+ case 0x0505: return "strpbrk";
+ case 0x0506: return "strrchr";
+ case 0x0507: return "strspn";
+ case 0x0508: return "strstr";
+ case 0x0509: return "strtol";
+ case 0x050a: return "strtoul";
+ case 0x050b: return "swprintf";
+ case 0x050c: return "tan";
+ case 0x050d: return "tolower";
+ case 0x050e: return "toupper";
+ case 0x050f: return "towlower";
+ case 0x0510: return "towupper";
+ case 0x0511: return "vDbgPrintEx";
+ case 0x0512: return "vDbgPrintExWithPrefix";
+ case 0x0513: return "vsprintf";
+ case 0x0514: return "wcscat";
+ case 0x0515: return "wcschr";
+ case 0x0516: return "wcscmp";
+ case 0x0517: return "wcscpy";
+ case 0x0518: return "wcscspn";
+ case 0x0519: return "wcslen";
+ case 0x051a: return "wcsncat";
+ case 0x051b: return "wcsncmp";
+ case 0x051c: return "wcsncpy";
+ case 0x051d: return "wcspbrk";
+ case 0x051e: return "wcsrchr";
+ case 0x051f: return "wcsspn";
+ case 0x0520: return "wcsstr";
+ case 0x0521: return "wcstol";
+ case 0x0522: return "wcstombs";
+ case 0x0523: return "wcstoul";
}
return nullptr;
}
-}
}
-#endif
+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/ole32_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/ole32_dll_lookup.hpp
index 5f40e77a68f..091fa96879d 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/ole32_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/ole32_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,357 +18,356 @@
#include <cstdint>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
inline const char* ole32_dll_lookup(uint32_t i) {
- switch(i) {
- case 0x0002: return "BindMoniker";
- case 0x0003: return "CLIPFORMAT_UserFree";
- case 0x0004: return "CLIPFORMAT_UserMarshal";
- case 0x0005: return "CLIPFORMAT_UserSize";
- case 0x0006: return "CLIPFORMAT_UserUnmarshal";
- case 0x0007: return "CLSIDFromOle1Class";
- case 0x0008: return "CLSIDFromProgID";
- case 0x0009: return "CLSIDFromProgIDEx";
- case 0x000a: return "CLSIDFromString";
- case 0x000b: return "CoAddRefServerProcess";
- case 0x000c: return "CoAllowSetForegroundWindow";
- case 0x000d: return "CoBuildVersion";
- case 0x000e: return "CoCancelCall";
- case 0x000f: return "CoCopyProxy";
- case 0x0010: return "CoCreateFreeThreadedMarshaler";
- case 0x0011: return "CoCreateGuid";
- case 0x0012: return "CoCreateInstance";
- case 0x0013: return "CoCreateInstanceEx";
- case 0x0014: return "CoCreateObjectInContext";
- case 0x0015: return "CoDeactivateObject";
- case 0x0016: return "CoDisableCallCancellation";
- case 0x0017: return "CoDisconnectObject";
- case 0x0018: return "CoDosDateTimeToFileTime";
- case 0x0019: return "CoEnableCallCancellation";
- case 0x001a: return "CoFileTimeNow";
- case 0x001b: return "CoFileTimeToDosDateTime";
- case 0x001c: return "CoFreeAllLibraries";
- case 0x001d: return "CoFreeLibrary";
- case 0x001e: return "CoFreeUnusedLibraries";
- case 0x001f: return "CoFreeUnusedLibrariesEx";
- case 0x0020: return "CoGetApartmentID";
- case 0x0021: return "CoGetCallContext";
- case 0x0022: return "CoGetCallerTID";
- case 0x0023: return "CoGetCancelObject";
- case 0x0024: return "CoGetClassObject";
- case 0x0025: return "CoGetClassVersion";
- case 0x0026: return "CoGetComCatalog";
- case 0x0027: return "CoGetContextToken";
- case 0x0028: return "CoGetCurrentLogicalThreadId";
- case 0x0029: return "CoGetCurrentProcess";
- case 0x002a: return "CoGetDefaultContext";
- case 0x002b: return "CoGetInstanceFromFile";
- case 0x002c: return "CoGetInstanceFromIStorage";
- case 0x002d: return "CoGetInterceptor";
- case 0x002e: return "CoGetInterceptorFromTypeInfo";
- case 0x002f: return "CoGetInterfaceAndReleaseStream";
- case 0x0030: return "CoGetMalloc";
- case 0x0031: return "CoGetMarshalSizeMax";
- case 0x0032: return "CoGetObject";
- case 0x0033: return "CoGetObjectContext";
- case 0x0034: return "CoGetPSClsid";
- case 0x0035: return "CoGetProcessIdentifier";
- case 0x0036: return "CoGetStandardMarshal";
- case 0x0037: return "CoGetState";
- case 0x0038: return "CoGetStdMarshalEx";
- case 0x0039: return "CoGetSystemSecurityPermissions";
- case 0x003a: return "CoGetTreatAsClass";
- case 0x003b: return "CoImpersonateClient";
- case 0x003c: return "CoInitialize";
- case 0x003d: return "CoInitializeEx";
- case 0x003e: return "CoInitializeSecurity";
- case 0x003f: return "CoInitializeWOW";
- case 0x0040: return "CoInstall";
- case 0x0041: return "CoInvalidateRemoteMachineBindings";
- case 0x0042: return "CoIsHandlerConnected";
- case 0x0043: return "CoIsOle1Class";
- case 0x0044: return "CoLoadLibrary";
- case 0x0045: return "CoLockObjectExternal";
- case 0x0046: return "CoMarshalHresult";
- case 0x0047: return "CoMarshalInterThreadInterfaceInStream";
- case 0x0048: return "CoMarshalInterface";
- case 0x0049: return "CoPopServiceDomain";
- case 0x004a: return "CoPushServiceDomain";
- case 0x004b: return "CoQueryAuthenticationServices";
- case 0x004c: return "CoQueryClientBlanket";
- case 0x004d: return "CoQueryProxyBlanket";
- case 0x004e: return "CoQueryReleaseObject";
- case 0x004f: return "CoReactivateObject";
- case 0x0050: return "CoRegisterChannelHook";
- case 0x0051: return "CoRegisterClassObject";
- case 0x0052: return "CoRegisterInitializeSpy";
- case 0x0053: return "CoRegisterMallocSpy";
- case 0x0054: return "CoRegisterMessageFilter";
- case 0x0055: return "CoRegisterPSClsid";
- case 0x0056: return "CoRegisterSurrogate";
- case 0x0057: return "CoRegisterSurrogateEx";
- case 0x0058: return "CoReleaseMarshalData";
- case 0x0059: return "CoReleaseServerProcess";
- case 0x005a: return "CoResumeClassObjects";
- case 0x005b: return "CoRetireServer";
- case 0x005c: return "CoRevertToSelf";
- case 0x005d: return "CoRevokeClassObject";
- case 0x005e: return "CoRevokeInitializeSpy";
- case 0x005f: return "CoRevokeMallocSpy";
- case 0x0060: return "CoSetCancelObject";
- case 0x0061: return "CoSetProxyBlanket";
- case 0x0062: return "CoSetState";
- case 0x0063: return "CoSuspendClassObjects";
- case 0x0064: return "CoSwitchCallContext";
- case 0x0065: return "CoTaskMemAlloc";
- case 0x0066: return "CoTaskMemFree";
- case 0x0067: return "CoTaskMemRealloc";
- case 0x0068: return "CoTestCancel";
- case 0x0069: return "CoTreatAsClass";
- case 0x006a: return "CoUninitialize";
- case 0x006b: return "CoUnloadingWOW";
- case 0x006c: return "CoUnmarshalHresult";
- case 0x006d: return "CoUnmarshalInterface";
- case 0x006e: return "CoWaitForMultipleHandles";
- case 0x006f: return "ComPs_CStdStubBuffer_AddRef";
- case 0x0070: return "ComPs_CStdStubBuffer_Connect";
- case 0x0071: return "ComPs_CStdStubBuffer_CountRefs";
- case 0x0072: return "ComPs_CStdStubBuffer_DebugServerQueryInterface";
- case 0x0073: return "ComPs_CStdStubBuffer_DebugServerRelease";
- case 0x0074: return "ComPs_CStdStubBuffer_Disconnect";
- case 0x0075: return "ComPs_CStdStubBuffer_Invoke";
- case 0x0076: return "ComPs_CStdStubBuffer_IsIIDSupported";
- case 0x0077: return "ComPs_CStdStubBuffer_QueryInterface";
- case 0x0078: return "ComPs_IUnknown_AddRef_Proxy";
- case 0x0079: return "ComPs_IUnknown_QueryInterface_Proxy";
- case 0x007a: return "ComPs_IUnknown_Release_Proxy";
- case 0x007b: return "ComPs_NdrCStdStubBuffer2_Release";
- case 0x007c: return "ComPs_NdrCStdStubBuffer_Release";
- case 0x007d: return "ComPs_NdrClientCall2";
- case 0x007e: return "ComPs_NdrClientCall2_va";
- case 0x007f: return "ComPs_NdrDllCanUnloadNow";
- case 0x0080: return "ComPs_NdrDllGetClassObject";
- case 0x0081: return "ComPs_NdrDllRegisterProxy";
- case 0x0082: return "ComPs_NdrDllUnregisterProxy";
- case 0x0083: return "ComPs_NdrStubCall2";
- case 0x0084: return "ComPs_NdrStubForwardingFunction";
- case 0x0085: return "CreateAntiMoniker";
- case 0x0086: return "CreateBindCtx";
- case 0x0087: return "CreateClassMoniker";
- case 0x0088: return "CreateDataAdviseHolder";
- case 0x0089: return "CreateDataCache";
- case 0x008a: return "CreateErrorInfo";
- case 0x008b: return "CreateFileMoniker";
- case 0x008c: return "CreateGenericComposite";
- case 0x008d: return "CreateILockBytesOnHGlobal";
- case 0x008e: return "CreateItemMoniker";
- case 0x008f: return "CreateObjrefMoniker";
- case 0x0090: return "CreateOleAdviseHolder";
- case 0x0091: return "CreatePointerMoniker";
- case 0x0092: return "CreateStdProgressIndicator";
- case 0x0093: return "CreateStreamOnHGlobal";
- case 0x0094: return "DcomChannelSetHResult";
- case 0x0095: return "DllDebugObjectRPCHook";
- case 0x0096: return "DllGetClassObject";
- case 0x0097: return "DllGetClassObjectWOW";
- case 0x0098: return "DllRegisterServer";
- case 0x0099: return "DoDragDrop";
- case 0x009a: return "EnableHookObject";
- case 0x009b: return "FmtIdToPropStgName";
- case 0x009c: return "FreePropVariantArray";
- case 0x009d: return "GetClassFile";
- case 0x009e: return "GetConvertStg";
- case 0x009f: return "GetDocumentBitStg";
- case 0x00a0: return "GetErrorInfo";
- case 0x00a1: return "GetHGlobalFromILockBytes";
- case 0x00a2: return "GetHGlobalFromStream";
- case 0x00a3: return "GetHookInterface";
- case 0x00a4: return "GetRunningObjectTable";
- case 0x00a5: return "HACCEL_UserFree";
- case 0x00a6: return "HACCEL_UserMarshal";
- case 0x00a7: return "HACCEL_UserSize";
- case 0x00a8: return "HACCEL_UserUnmarshal";
- case 0x00a9: return "HBITMAP_UserFree";
- case 0x00aa: return "HBITMAP_UserMarshal";
- case 0x00ab: return "HBITMAP_UserSize";
- case 0x00ac: return "HBITMAP_UserUnmarshal";
- case 0x00ad: return "HBRUSH_UserFree";
- case 0x00ae: return "HBRUSH_UserMarshal";
- case 0x00af: return "HBRUSH_UserSize";
- case 0x00b0: return "HBRUSH_UserUnmarshal";
- case 0x00b1: return "HDC_UserFree";
- case 0x00b2: return "HDC_UserMarshal";
- case 0x00b3: return "HDC_UserSize";
- case 0x00b4: return "HDC_UserUnmarshal";
- case 0x00b5: return "HENHMETAFILE_UserFree";
- case 0x00b6: return "HENHMETAFILE_UserMarshal";
- case 0x00b7: return "HENHMETAFILE_UserSize";
- case 0x00b8: return "HENHMETAFILE_UserUnmarshal";
- case 0x00b9: return "HGLOBAL_UserFree";
- case 0x00ba: return "HGLOBAL_UserMarshal";
- case 0x00bb: return "HGLOBAL_UserSize";
- case 0x00bc: return "HGLOBAL_UserUnmarshal";
- case 0x00bd: return "HICON_UserFree";
- case 0x00be: return "HICON_UserMarshal";
- case 0x00bf: return "HICON_UserSize";
- case 0x00c0: return "HICON_UserUnmarshal";
- case 0x00c1: return "HMENU_UserFree";
- case 0x00c2: return "HMENU_UserMarshal";
- case 0x00c3: return "HMENU_UserSize";
- case 0x00c4: return "HMENU_UserUnmarshal";
- case 0x00c5: return "HMETAFILEPICT_UserFree";
- case 0x00c6: return "HMETAFILEPICT_UserMarshal";
- case 0x00c7: return "HMETAFILEPICT_UserSize";
- case 0x00c8: return "HMETAFILEPICT_UserUnmarshal";
- case 0x00c9: return "HMETAFILE_UserFree";
- case 0x00ca: return "HMETAFILE_UserMarshal";
- case 0x00cb: return "HMETAFILE_UserSize";
- case 0x00cc: return "HMETAFILE_UserUnmarshal";
- case 0x00cd: return "HPALETTE_UserFree";
- case 0x00ce: return "HPALETTE_UserMarshal";
- case 0x00cf: return "HPALETTE_UserSize";
- case 0x00d0: return "HPALETTE_UserUnmarshal";
- case 0x00d1: return "HWND_UserFree";
- case 0x00d2: return "HWND_UserMarshal";
- case 0x00d3: return "HWND_UserSize";
- case 0x00d4: return "HWND_UserUnmarshal";
- case 0x00d5: return "HkOleRegisterObject";
- case 0x00d6: return "IIDFromString";
- case 0x00d7: return "IsAccelerator";
- case 0x00d8: return "IsEqualGUID";
- case 0x00d9: return "IsValidIid";
- case 0x00da: return "IsValidInterface";
- case 0x00db: return "IsValidPtrIn";
- case 0x00dc: return "IsValidPtrOut";
- case 0x00dd: return "MkParseDisplayName";
- case 0x00de: return "MonikerCommonPrefixWith";
- case 0x00df: return "MonikerRelativePathTo";
- case 0x00e0: return "OleBuildVersion";
- case 0x00e1: return "OleConvertIStorageToOLESTREAM";
- case 0x00e2: return "OleConvertIStorageToOLESTREAMEx";
- case 0x00e3: return "OleConvertOLESTREAMToIStorage";
- case 0x00e4: return "OleConvertOLESTREAMToIStorageEx";
- case 0x00e5: return "OleCreate";
- case 0x00e6: return "OleCreateDefaultHandler";
- case 0x00e7: return "OleCreateEmbeddingHelper";
- case 0x00e8: return "OleCreateEx";
- case 0x00e9: return "OleCreateFromData";
- case 0x00ea: return "OleCreateFromDataEx";
- case 0x00eb: return "OleCreateFromFile";
- case 0x00ec: return "OleCreateFromFileEx";
- case 0x00ed: return "OleCreateLink";
- case 0x00ee: return "OleCreateLinkEx";
- case 0x00ef: return "OleCreateLinkFromData";
- case 0x00f0: return "OleCreateLinkFromDataEx";
- case 0x00f1: return "OleCreateLinkToFile";
- case 0x00f2: return "OleCreateLinkToFileEx";
- case 0x00f3: return "OleCreateMenuDescriptor";
- case 0x00f4: return "OleCreateStaticFromData";
- case 0x00f5: return "OleDestroyMenuDescriptor";
- case 0x00f6: return "OleDoAutoConvert";
- case 0x00f7: return "OleDraw";
- case 0x00f8: return "OleDuplicateData";
- case 0x00f9: return "OleFlushClipboard";
- case 0x00fa: return "OleGetAutoConvert";
- case 0x00fb: return "OleGetClipboard";
- case 0x00fc: return "OleGetIconOfClass";
- case 0x00fd: return "OleGetIconOfFile";
- case 0x00fe: return "OleInitialize";
- case 0x00ff: return "OleInitializeWOW";
- case 0x0100: return "OleIsCurrentClipboard";
- case 0x0101: return "OleIsRunning";
- case 0x0102: return "OleLoad";
- case 0x0103: return "OleLoadFromStream";
- case 0x0104: return "OleLockRunning";
- case 0x0105: return "OleMetafilePictFromIconAndLabel";
- case 0x0106: return "OleNoteObjectVisible";
- case 0x0107: return "OleQueryCreateFromData";
- case 0x0108: return "OleQueryLinkFromData";
- case 0x0109: return "OleRegEnumFormatEtc";
- case 0x010a: return "OleRegEnumVerbs";
- case 0x010b: return "OleRegGetMiscStatus";
- case 0x010c: return "OleRegGetUserType";
- case 0x010d: return "OleRun";
- case 0x010e: return "OleSave";
- case 0x010f: return "OleSaveToStream";
- case 0x0110: return "OleSetAutoConvert";
- case 0x0111: return "OleSetClipboard";
- case 0x0112: return "OleSetContainedObject";
- case 0x0113: return "OleSetMenuDescriptor";
- case 0x0114: return "OleTranslateAccelerator";
- case 0x0115: return "OleUninitialize";
- case 0x0116: return "OpenOrCreateStream";
- case 0x0117: return "ProgIDFromCLSID";
- case 0x0118: return "PropStgNameToFmtId";
- case 0x0119: return "PropSysAllocString";
- case 0x011a: return "PropSysFreeString";
- case 0x0001: return "PropVariantChangeType";
- case 0x011b: return "PropVariantClear";
- case 0x011c: return "PropVariantCopy";
- case 0x011d: return "ReadClassStg";
- case 0x011e: return "ReadClassStm";
- case 0x011f: return "ReadFmtUserTypeStg";
- case 0x0120: return "ReadOleStg";
- case 0x0121: return "ReadStringStream";
- case 0x0122: return "RegisterDragDrop";
- case 0x0123: return "ReleaseStgMedium";
- case 0x0124: return "RevokeDragDrop";
- case 0x0125: return "SNB_UserFree";
- case 0x0126: return "SNB_UserMarshal";
- case 0x0127: return "SNB_UserSize";
- case 0x0128: return "SNB_UserUnmarshal";
- case 0x0129: return "STGMEDIUM_UserFree";
- case 0x012a: return "STGMEDIUM_UserMarshal";
- case 0x012b: return "STGMEDIUM_UserSize";
- case 0x012c: return "STGMEDIUM_UserUnmarshal";
- case 0x012d: return "SetConvertStg";
- case 0x012e: return "SetDocumentBitStg";
- case 0x012f: return "SetErrorInfo";
- case 0x0130: return "StgConvertPropertyToVariant";
- case 0x0131: return "StgConvertVariantToProperty";
- case 0x0132: return "StgCreateDocfile";
- case 0x0133: return "StgCreateDocfileOnILockBytes";
- case 0x0134: return "StgCreatePropSetStg";
- case 0x0135: return "StgCreatePropStg";
- case 0x0136: return "StgCreateStorageEx";
- case 0x0137: return "StgGetIFillLockBytesOnFile";
- case 0x0138: return "StgGetIFillLockBytesOnILockBytes";
- case 0x0139: return "StgIsStorageFile";
- case 0x013a: return "StgIsStorageILockBytes";
- case 0x013b: return "StgOpenAsyncDocfileOnIFillLockBytes";
- case 0x013c: return "StgOpenPropStg";
- case 0x013d: return "StgOpenStorage";
- case 0x013e: return "StgOpenStorageEx";
- case 0x013f: return "StgOpenStorageOnHandle";
- case 0x0140: return "StgOpenStorageOnILockBytes";
- case 0x0141: return "StgPropertyLengthAsVariant";
- case 0x0142: return "StgSetTimes";
- case 0x0143: return "StringFromCLSID";
- case 0x0144: return "StringFromGUID2";
- case 0x0145: return "StringFromIID";
- case 0x0146: return "UpdateDCOMSettings";
- case 0x0147: return "UtConvertDvtd16toDvtd32";
- case 0x0148: return "UtConvertDvtd32toDvtd16";
- case 0x0149: return "UtGetDvtd16Info";
- case 0x014a: return "UtGetDvtd32Info";
- case 0x014b: return "WdtpInterfacePointer_UserFree";
- case 0x014c: return "WdtpInterfacePointer_UserMarshal";
- case 0x014d: return "WdtpInterfacePointer_UserSize";
- case 0x014e: return "WdtpInterfacePointer_UserUnmarshal";
- case 0x014f: return "WriteClassStg";
- case 0x0150: return "WriteClassStm";
- case 0x0151: return "WriteFmtUserTypeStg";
- case 0x0152: return "WriteOleStg";
- case 0x0153: return "WriteStringStream";
+ switch (i) {
+ case 0x0002: return "BindMoniker";
+ case 0x0003: return "CLIPFORMAT_UserFree";
+ case 0x0004: return "CLIPFORMAT_UserMarshal";
+ case 0x0005: return "CLIPFORMAT_UserSize";
+ case 0x0006: return "CLIPFORMAT_UserUnmarshal";
+ case 0x0007: return "CLSIDFromOle1Class";
+ case 0x0008: return "CLSIDFromProgID";
+ case 0x0009: return "CLSIDFromProgIDEx";
+ case 0x000a: return "CLSIDFromString";
+ case 0x000b: return "CoAddRefServerProcess";
+ case 0x000c: return "CoAllowSetForegroundWindow";
+ case 0x000d: return "CoBuildVersion";
+ case 0x000e: return "CoCancelCall";
+ case 0x000f: return "CoCopyProxy";
+ case 0x0010: return "CoCreateFreeThreadedMarshaler";
+ case 0x0011: return "CoCreateGuid";
+ case 0x0012: return "CoCreateInstance";
+ case 0x0013: return "CoCreateInstanceEx";
+ case 0x0014: return "CoCreateObjectInContext";
+ case 0x0015: return "CoDeactivateObject";
+ case 0x0016: return "CoDisableCallCancellation";
+ case 0x0017: return "CoDisconnectObject";
+ case 0x0018: return "CoDosDateTimeToFileTime";
+ case 0x0019: return "CoEnableCallCancellation";
+ case 0x001a: return "CoFileTimeNow";
+ case 0x001b: return "CoFileTimeToDosDateTime";
+ case 0x001c: return "CoFreeAllLibraries";
+ case 0x001d: return "CoFreeLibrary";
+ case 0x001e: return "CoFreeUnusedLibraries";
+ case 0x001f: return "CoFreeUnusedLibrariesEx";
+ case 0x0020: return "CoGetApartmentID";
+ case 0x0021: return "CoGetCallContext";
+ case 0x0022: return "CoGetCallerTID";
+ case 0x0023: return "CoGetCancelObject";
+ case 0x0024: return "CoGetClassObject";
+ case 0x0025: return "CoGetClassVersion";
+ case 0x0026: return "CoGetComCatalog";
+ case 0x0027: return "CoGetContextToken";
+ case 0x0028: return "CoGetCurrentLogicalThreadId";
+ case 0x0029: return "CoGetCurrentProcess";
+ case 0x002a: return "CoGetDefaultContext";
+ case 0x002b: return "CoGetInstanceFromFile";
+ case 0x002c: return "CoGetInstanceFromIStorage";
+ case 0x002d: return "CoGetInterceptor";
+ case 0x002e: return "CoGetInterceptorFromTypeInfo";
+ case 0x002f: return "CoGetInterfaceAndReleaseStream";
+ case 0x0030: return "CoGetMalloc";
+ case 0x0031: return "CoGetMarshalSizeMax";
+ case 0x0032: return "CoGetObject";
+ case 0x0033: return "CoGetObjectContext";
+ case 0x0034: return "CoGetPSClsid";
+ case 0x0035: return "CoGetProcessIdentifier";
+ case 0x0036: return "CoGetStandardMarshal";
+ case 0x0037: return "CoGetState";
+ case 0x0038: return "CoGetStdMarshalEx";
+ case 0x0039: return "CoGetSystemSecurityPermissions";
+ case 0x003a: return "CoGetTreatAsClass";
+ case 0x003b: return "CoImpersonateClient";
+ case 0x003c: return "CoInitialize";
+ case 0x003d: return "CoInitializeEx";
+ case 0x003e: return "CoInitializeSecurity";
+ case 0x003f: return "CoInitializeWOW";
+ case 0x0040: return "CoInstall";
+ case 0x0041: return "CoInvalidateRemoteMachineBindings";
+ case 0x0042: return "CoIsHandlerConnected";
+ case 0x0043: return "CoIsOle1Class";
+ case 0x0044: return "CoLoadLibrary";
+ case 0x0045: return "CoLockObjectExternal";
+ case 0x0046: return "CoMarshalHresult";
+ case 0x0047: return "CoMarshalInterThreadInterfaceInStream";
+ case 0x0048: return "CoMarshalInterface";
+ case 0x0049: return "CoPopServiceDomain";
+ case 0x004a: return "CoPushServiceDomain";
+ case 0x004b: return "CoQueryAuthenticationServices";
+ case 0x004c: return "CoQueryClientBlanket";
+ case 0x004d: return "CoQueryProxyBlanket";
+ case 0x004e: return "CoQueryReleaseObject";
+ case 0x004f: return "CoReactivateObject";
+ case 0x0050: return "CoRegisterChannelHook";
+ case 0x0051: return "CoRegisterClassObject";
+ case 0x0052: return "CoRegisterInitializeSpy";
+ case 0x0053: return "CoRegisterMallocSpy";
+ case 0x0054: return "CoRegisterMessageFilter";
+ case 0x0055: return "CoRegisterPSClsid";
+ case 0x0056: return "CoRegisterSurrogate";
+ case 0x0057: return "CoRegisterSurrogateEx";
+ case 0x0058: return "CoReleaseMarshalData";
+ case 0x0059: return "CoReleaseServerProcess";
+ case 0x005a: return "CoResumeClassObjects";
+ case 0x005b: return "CoRetireServer";
+ case 0x005c: return "CoRevertToSelf";
+ case 0x005d: return "CoRevokeClassObject";
+ case 0x005e: return "CoRevokeInitializeSpy";
+ case 0x005f: return "CoRevokeMallocSpy";
+ case 0x0060: return "CoSetCancelObject";
+ case 0x0061: return "CoSetProxyBlanket";
+ case 0x0062: return "CoSetState";
+ case 0x0063: return "CoSuspendClassObjects";
+ case 0x0064: return "CoSwitchCallContext";
+ case 0x0065: return "CoTaskMemAlloc";
+ case 0x0066: return "CoTaskMemFree";
+ case 0x0067: return "CoTaskMemRealloc";
+ case 0x0068: return "CoTestCancel";
+ case 0x0069: return "CoTreatAsClass";
+ case 0x006a: return "CoUninitialize";
+ case 0x006b: return "CoUnloadingWOW";
+ case 0x006c: return "CoUnmarshalHresult";
+ case 0x006d: return "CoUnmarshalInterface";
+ case 0x006e: return "CoWaitForMultipleHandles";
+ case 0x006f: return "ComPs_CStdStubBuffer_AddRef";
+ case 0x0070: return "ComPs_CStdStubBuffer_Connect";
+ case 0x0071: return "ComPs_CStdStubBuffer_CountRefs";
+ case 0x0072: return "ComPs_CStdStubBuffer_DebugServerQueryInterface";
+ case 0x0073: return "ComPs_CStdStubBuffer_DebugServerRelease";
+ case 0x0074: return "ComPs_CStdStubBuffer_Disconnect";
+ case 0x0075: return "ComPs_CStdStubBuffer_Invoke";
+ case 0x0076: return "ComPs_CStdStubBuffer_IsIIDSupported";
+ case 0x0077: return "ComPs_CStdStubBuffer_QueryInterface";
+ case 0x0078: return "ComPs_IUnknown_AddRef_Proxy";
+ case 0x0079: return "ComPs_IUnknown_QueryInterface_Proxy";
+ case 0x007a: return "ComPs_IUnknown_Release_Proxy";
+ case 0x007b: return "ComPs_NdrCStdStubBuffer2_Release";
+ case 0x007c: return "ComPs_NdrCStdStubBuffer_Release";
+ case 0x007d: return "ComPs_NdrClientCall2";
+ case 0x007e: return "ComPs_NdrClientCall2_va";
+ case 0x007f: return "ComPs_NdrDllCanUnloadNow";
+ case 0x0080: return "ComPs_NdrDllGetClassObject";
+ case 0x0081: return "ComPs_NdrDllRegisterProxy";
+ case 0x0082: return "ComPs_NdrDllUnregisterProxy";
+ case 0x0083: return "ComPs_NdrStubCall2";
+ case 0x0084: return "ComPs_NdrStubForwardingFunction";
+ case 0x0085: return "CreateAntiMoniker";
+ case 0x0086: return "CreateBindCtx";
+ case 0x0087: return "CreateClassMoniker";
+ case 0x0088: return "CreateDataAdviseHolder";
+ case 0x0089: return "CreateDataCache";
+ case 0x008a: return "CreateErrorInfo";
+ case 0x008b: return "CreateFileMoniker";
+ case 0x008c: return "CreateGenericComposite";
+ case 0x008d: return "CreateILockBytesOnHGlobal";
+ case 0x008e: return "CreateItemMoniker";
+ case 0x008f: return "CreateObjrefMoniker";
+ case 0x0090: return "CreateOleAdviseHolder";
+ case 0x0091: return "CreatePointerMoniker";
+ case 0x0092: return "CreateStdProgressIndicator";
+ case 0x0093: return "CreateStreamOnHGlobal";
+ case 0x0094: return "DcomChannelSetHResult";
+ case 0x0095: return "DllDebugObjectRPCHook";
+ case 0x0096: return "DllGetClassObject";
+ case 0x0097: return "DllGetClassObjectWOW";
+ case 0x0098: return "DllRegisterServer";
+ case 0x0099: return "DoDragDrop";
+ case 0x009a: return "EnableHookObject";
+ case 0x009b: return "FmtIdToPropStgName";
+ case 0x009c: return "FreePropVariantArray";
+ case 0x009d: return "GetClassFile";
+ case 0x009e: return "GetConvertStg";
+ case 0x009f: return "GetDocumentBitStg";
+ case 0x00a0: return "GetErrorInfo";
+ case 0x00a1: return "GetHGlobalFromILockBytes";
+ case 0x00a2: return "GetHGlobalFromStream";
+ case 0x00a3: return "GetHookInterface";
+ case 0x00a4: return "GetRunningObjectTable";
+ case 0x00a5: return "HACCEL_UserFree";
+ case 0x00a6: return "HACCEL_UserMarshal";
+ case 0x00a7: return "HACCEL_UserSize";
+ case 0x00a8: return "HACCEL_UserUnmarshal";
+ case 0x00a9: return "HBITMAP_UserFree";
+ case 0x00aa: return "HBITMAP_UserMarshal";
+ case 0x00ab: return "HBITMAP_UserSize";
+ case 0x00ac: return "HBITMAP_UserUnmarshal";
+ case 0x00ad: return "HBRUSH_UserFree";
+ case 0x00ae: return "HBRUSH_UserMarshal";
+ case 0x00af: return "HBRUSH_UserSize";
+ case 0x00b0: return "HBRUSH_UserUnmarshal";
+ case 0x00b1: return "HDC_UserFree";
+ case 0x00b2: return "HDC_UserMarshal";
+ case 0x00b3: return "HDC_UserSize";
+ case 0x00b4: return "HDC_UserUnmarshal";
+ case 0x00b5: return "HENHMETAFILE_UserFree";
+ case 0x00b6: return "HENHMETAFILE_UserMarshal";
+ case 0x00b7: return "HENHMETAFILE_UserSize";
+ case 0x00b8: return "HENHMETAFILE_UserUnmarshal";
+ case 0x00b9: return "HGLOBAL_UserFree";
+ case 0x00ba: return "HGLOBAL_UserMarshal";
+ case 0x00bb: return "HGLOBAL_UserSize";
+ case 0x00bc: return "HGLOBAL_UserUnmarshal";
+ case 0x00bd: return "HICON_UserFree";
+ case 0x00be: return "HICON_UserMarshal";
+ case 0x00bf: return "HICON_UserSize";
+ case 0x00c0: return "HICON_UserUnmarshal";
+ case 0x00c1: return "HMENU_UserFree";
+ case 0x00c2: return "HMENU_UserMarshal";
+ case 0x00c3: return "HMENU_UserSize";
+ case 0x00c4: return "HMENU_UserUnmarshal";
+ case 0x00c5: return "HMETAFILEPICT_UserFree";
+ case 0x00c6: return "HMETAFILEPICT_UserMarshal";
+ case 0x00c7: return "HMETAFILEPICT_UserSize";
+ case 0x00c8: return "HMETAFILEPICT_UserUnmarshal";
+ case 0x00c9: return "HMETAFILE_UserFree";
+ case 0x00ca: return "HMETAFILE_UserMarshal";
+ case 0x00cb: return "HMETAFILE_UserSize";
+ case 0x00cc: return "HMETAFILE_UserUnmarshal";
+ case 0x00cd: return "HPALETTE_UserFree";
+ case 0x00ce: return "HPALETTE_UserMarshal";
+ case 0x00cf: return "HPALETTE_UserSize";
+ case 0x00d0: return "HPALETTE_UserUnmarshal";
+ case 0x00d1: return "HWND_UserFree";
+ case 0x00d2: return "HWND_UserMarshal";
+ case 0x00d3: return "HWND_UserSize";
+ case 0x00d4: return "HWND_UserUnmarshal";
+ case 0x00d5: return "HkOleRegisterObject";
+ case 0x00d6: return "IIDFromString";
+ case 0x00d7: return "IsAccelerator";
+ case 0x00d8: return "IsEqualGUID";
+ case 0x00d9: return "IsValidIid";
+ case 0x00da: return "IsValidInterface";
+ case 0x00db: return "IsValidPtrIn";
+ case 0x00dc: return "IsValidPtrOut";
+ case 0x00dd: return "MkParseDisplayName";
+ case 0x00de: return "MonikerCommonPrefixWith";
+ case 0x00df: return "MonikerRelativePathTo";
+ case 0x00e0: return "OleBuildVersion";
+ case 0x00e1: return "OleConvertIStorageToOLESTREAM";
+ case 0x00e2: return "OleConvertIStorageToOLESTREAMEx";
+ case 0x00e3: return "OleConvertOLESTREAMToIStorage";
+ case 0x00e4: return "OleConvertOLESTREAMToIStorageEx";
+ case 0x00e5: return "OleCreate";
+ case 0x00e6: return "OleCreateDefaultHandler";
+ case 0x00e7: return "OleCreateEmbeddingHelper";
+ case 0x00e8: return "OleCreateEx";
+ case 0x00e9: return "OleCreateFromData";
+ case 0x00ea: return "OleCreateFromDataEx";
+ case 0x00eb: return "OleCreateFromFile";
+ case 0x00ec: return "OleCreateFromFileEx";
+ case 0x00ed: return "OleCreateLink";
+ case 0x00ee: return "OleCreateLinkEx";
+ case 0x00ef: return "OleCreateLinkFromData";
+ case 0x00f0: return "OleCreateLinkFromDataEx";
+ case 0x00f1: return "OleCreateLinkToFile";
+ case 0x00f2: return "OleCreateLinkToFileEx";
+ case 0x00f3: return "OleCreateMenuDescriptor";
+ case 0x00f4: return "OleCreateStaticFromData";
+ case 0x00f5: return "OleDestroyMenuDescriptor";
+ case 0x00f6: return "OleDoAutoConvert";
+ case 0x00f7: return "OleDraw";
+ case 0x00f8: return "OleDuplicateData";
+ case 0x00f9: return "OleFlushClipboard";
+ case 0x00fa: return "OleGetAutoConvert";
+ case 0x00fb: return "OleGetClipboard";
+ case 0x00fc: return "OleGetIconOfClass";
+ case 0x00fd: return "OleGetIconOfFile";
+ case 0x00fe: return "OleInitialize";
+ case 0x00ff: return "OleInitializeWOW";
+ case 0x0100: return "OleIsCurrentClipboard";
+ case 0x0101: return "OleIsRunning";
+ case 0x0102: return "OleLoad";
+ case 0x0103: return "OleLoadFromStream";
+ case 0x0104: return "OleLockRunning";
+ case 0x0105: return "OleMetafilePictFromIconAndLabel";
+ case 0x0106: return "OleNoteObjectVisible";
+ case 0x0107: return "OleQueryCreateFromData";
+ case 0x0108: return "OleQueryLinkFromData";
+ case 0x0109: return "OleRegEnumFormatEtc";
+ case 0x010a: return "OleRegEnumVerbs";
+ case 0x010b: return "OleRegGetMiscStatus";
+ case 0x010c: return "OleRegGetUserType";
+ case 0x010d: return "OleRun";
+ case 0x010e: return "OleSave";
+ case 0x010f: return "OleSaveToStream";
+ case 0x0110: return "OleSetAutoConvert";
+ case 0x0111: return "OleSetClipboard";
+ case 0x0112: return "OleSetContainedObject";
+ case 0x0113: return "OleSetMenuDescriptor";
+ case 0x0114: return "OleTranslateAccelerator";
+ case 0x0115: return "OleUninitialize";
+ case 0x0116: return "OpenOrCreateStream";
+ case 0x0117: return "ProgIDFromCLSID";
+ case 0x0118: return "PropStgNameToFmtId";
+ case 0x0119: return "PropSysAllocString";
+ case 0x011a: return "PropSysFreeString";
+ case 0x0001: return "PropVariantChangeType";
+ case 0x011b: return "PropVariantClear";
+ case 0x011c: return "PropVariantCopy";
+ case 0x011d: return "ReadClassStg";
+ case 0x011e: return "ReadClassStm";
+ case 0x011f: return "ReadFmtUserTypeStg";
+ case 0x0120: return "ReadOleStg";
+ case 0x0121: return "ReadStringStream";
+ case 0x0122: return "RegisterDragDrop";
+ case 0x0123: return "ReleaseStgMedium";
+ case 0x0124: return "RevokeDragDrop";
+ case 0x0125: return "SNB_UserFree";
+ case 0x0126: return "SNB_UserMarshal";
+ case 0x0127: return "SNB_UserSize";
+ case 0x0128: return "SNB_UserUnmarshal";
+ case 0x0129: return "STGMEDIUM_UserFree";
+ case 0x012a: return "STGMEDIUM_UserMarshal";
+ case 0x012b: return "STGMEDIUM_UserSize";
+ case 0x012c: return "STGMEDIUM_UserUnmarshal";
+ case 0x012d: return "SetConvertStg";
+ case 0x012e: return "SetDocumentBitStg";
+ case 0x012f: return "SetErrorInfo";
+ case 0x0130: return "StgConvertPropertyToVariant";
+ case 0x0131: return "StgConvertVariantToProperty";
+ case 0x0132: return "StgCreateDocfile";
+ case 0x0133: return "StgCreateDocfileOnILockBytes";
+ case 0x0134: return "StgCreatePropSetStg";
+ case 0x0135: return "StgCreatePropStg";
+ case 0x0136: return "StgCreateStorageEx";
+ case 0x0137: return "StgGetIFillLockBytesOnFile";
+ case 0x0138: return "StgGetIFillLockBytesOnILockBytes";
+ case 0x0139: return "StgIsStorageFile";
+ case 0x013a: return "StgIsStorageILockBytes";
+ case 0x013b: return "StgOpenAsyncDocfileOnIFillLockBytes";
+ case 0x013c: return "StgOpenPropStg";
+ case 0x013d: return "StgOpenStorage";
+ case 0x013e: return "StgOpenStorageEx";
+ case 0x013f: return "StgOpenStorageOnHandle";
+ case 0x0140: return "StgOpenStorageOnILockBytes";
+ case 0x0141: return "StgPropertyLengthAsVariant";
+ case 0x0142: return "StgSetTimes";
+ case 0x0143: return "StringFromCLSID";
+ case 0x0144: return "StringFromGUID2";
+ case 0x0145: return "StringFromIID";
+ case 0x0146: return "UpdateDCOMSettings";
+ case 0x0147: return "UtConvertDvtd16toDvtd32";
+ case 0x0148: return "UtConvertDvtd32toDvtd16";
+ case 0x0149: return "UtGetDvtd16Info";
+ case 0x014a: return "UtGetDvtd32Info";
+ case 0x014b: return "WdtpInterfacePointer_UserFree";
+ case 0x014c: return "WdtpInterfacePointer_UserMarshal";
+ case 0x014d: return "WdtpInterfacePointer_UserSize";
+ case 0x014e: return "WdtpInterfacePointer_UserUnmarshal";
+ case 0x014f: return "WriteClassStg";
+ case 0x0150: return "WriteClassStm";
+ case 0x0151: return "WriteFmtUserTypeStg";
+ case 0x0152: return "WriteOleStg";
+ case 0x0153: return "WriteStringStream";
}
return nullptr;
}
-}
}
-#endif
+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/oleaut32_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/oleaut32_dll_lookup.hpp
index 014132678fd..bb20f5d23a9 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/oleaut32_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/oleaut32_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,416 +17,415 @@
#define LIEF_PE_OLEAUT32_DLL_LOOKUP_H
#include <cstdint>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
inline const char* oleaut32_dll_lookup(uint32_t i) {
- switch(i) {
- case 0x011e: return "BSTR_UserFree";
- case 0x011c: return "BSTR_UserMarshal";
- case 0x011b: return "BSTR_UserSize";
- case 0x011d: return "BSTR_UserUnmarshal";
- case 0x019e: return "BstrFromVector";
- case 0x00ab: return "ClearCustData";
- case 0x001f: return "CreateDispTypeInfo";
- case 0x00ca: return "CreateErrorInfo";
- case 0x0020: return "CreateStdDispatch";
- case 0x00a0: return "CreateTypeLib";
- case 0x00b4: return "CreateTypeLib2";
- case 0x0092: return "DispCallFunc";
- case 0x001d: return "DispGetIDsOfNames";
- case 0x001c: return "DispGetParam";
- case 0x001e: return "DispInvoke";
- case 0x0090: return "DllCanUnloadNow";
- case 0x0091: return "DllGetClassObject";
- case 0x0097: return "DllRegisterServer";
- case 0x012c: return "DllUnregisterServer";
- case 0x000e: return "DosDateTimeToVariantTime";
- case 0x0023: return "GetActiveObject";
- case 0x014c: return "GetAltMonthNames";
- case 0x00c8: return "GetErrorInfo";
- case 0x0142: return "GetRecordInfoFromGuids";
- case 0x0143: return "GetRecordInfoFromTypeInfo";
- case 0x0146: return "GetVarConversionLocaleSetting";
- case 0x00a5: return "LHashValOfNameSys";
- case 0x00a6: return "LHashValOfNameSysA";
- case 0x0128: return "LPSAFEARRAY_Marshal";
- case 0x0127: return "LPSAFEARRAY_Size";
- case 0x0129: return "LPSAFEARRAY_Unmarshal";
- case 0x0126: return "LPSAFEARRAY_UserFree";
- case 0x0124: return "LPSAFEARRAY_UserMarshal";
- case 0x0123: return "LPSAFEARRAY_UserSize";
- case 0x0125: return "LPSAFEARRAY_UserUnmarshal";
- case 0x00a2: return "LoadRegTypeLib";
- case 0x00a1: return "LoadTypeLib";
- case 0x00b7: return "LoadTypeLibEx";
- case 0x012d: return "OACreateTypeLib2";
- case 0x00aa: return "OaBuildVersion";
- case 0x01a4: return "OleCreateFontIndirect";
- case 0x01a3: return "OleCreatePictureIndirect";
- case 0x01a1: return "OleCreatePropertyFrame";
- case 0x01a0: return "OleCreatePropertyFrameIndirect";
- case 0x019f: return "OleIconToCursor";
- case 0x01a2: return "OleLoadPicture";
- case 0x0191: return "OleLoadPictureEx";
- case 0x01a6: return "OleLoadPictureFile";
- case 0x0192: return "OleLoadPictureFileEx";
- case 0x01a8: return "OleLoadPicturePath";
- case 0x01a7: return "OleSavePictureFile";
- case 0x01a5: return "OleTranslateColor";
- case 0x00a4: return "QueryPathOfRegTypeLib";
- case 0x0021: return "RegisterActiveObject";
- case 0x00a3: return "RegisterTypeLib";
- case 0x01ba: return "RegisterTypeLibForUser";
- case 0x0022: return "RevokeActiveObject";
- case 0x0017: return "SafeArrayAccessData";
- case 0x0025: return "SafeArrayAllocData";
- case 0x0024: return "SafeArrayAllocDescriptor";
- case 0x0029: return "SafeArrayAllocDescriptorEx";
- case 0x001b: return "SafeArrayCopy";
- case 0x019c: return "SafeArrayCopyData";
- case 0x000f: return "SafeArrayCreate";
- case 0x002a: return "SafeArrayCreateEx";
- case 0x019b: return "SafeArrayCreateVector";
- case 0x002b: return "SafeArrayCreateVectorEx";
- case 0x0010: return "SafeArrayDestroy";
- case 0x0027: return "SafeArrayDestroyData";
- case 0x0026: return "SafeArrayDestroyDescriptor";
- case 0x0011: return "SafeArrayGetDim";
- case 0x0019: return "SafeArrayGetElement";
- case 0x0012: return "SafeArrayGetElemsize";
- case 0x0043: return "SafeArrayGetIID";
- case 0x0014: return "SafeArrayGetLBound";
- case 0x002d: return "SafeArrayGetRecordInfo";
- case 0x0013: return "SafeArrayGetUBound";
- case 0x004d: return "SafeArrayGetVartype";
- case 0x0015: return "SafeArrayLock";
- case 0x0094: return "SafeArrayPtrOfIndex";
- case 0x001a: return "SafeArrayPutElement";
- case 0x0028: return "SafeArrayRedim";
- case 0x0039: return "SafeArraySetIID";
- case 0x002c: return "SafeArraySetRecordInfo";
- case 0x0018: return "SafeArrayUnaccessData";
- case 0x0016: return "SafeArrayUnlock";
- case 0x00c9: return "SetErrorInfo";
- case 0x0147: return "SetOaNoCache";
- case 0x0145: return "SetVarConversionLocaleSetting";
- case 0x0002: return "SysAllocString";
- case 0x0096: return "SysAllocStringByteLen";
- case 0x0004: return "SysAllocStringLen";
- case 0x0006: return "SysFreeString";
- case 0x0003: return "SysReAllocString";
- case 0x0005: return "SysReAllocStringLen";
- case 0x0095: return "SysStringByteLen";
- case 0x0007: return "SysStringLen";
- case 0x00b8: return "SystemTimeToVariantTime";
- case 0x00ba: return "UnRegisterTypeLib";
- case 0x01bb: return "UnRegisterTypeLibForUser";
- case 0x0122: return "VARIANT_UserFree";
- case 0x0120: return "VARIANT_UserMarshal";
- case 0x011f: return "VARIANT_UserSize";
- case 0x0121: return "VARIANT_UserUnmarshal";
- case 0x00a8: return "VarAbs";
- case 0x008d: return "VarAdd";
- case 0x008e: return "VarAnd";
- case 0x007c: return "VarBoolFromCy";
- case 0x007b: return "VarBoolFromDate";
- case 0x00ec: return "VarBoolFromDec";
- case 0x007e: return "VarBoolFromDisp";
- case 0x00e9: return "VarBoolFromI1";
- case 0x0077: return "VarBoolFromI2";
- case 0x0078: return "VarBoolFromI4";
- case 0x0172: return "VarBoolFromI8";
- case 0x0079: return "VarBoolFromR4";
- case 0x007a: return "VarBoolFromR8";
- case 0x007d: return "VarBoolFromStr";
- case 0x0076: return "VarBoolFromUI1";
- case 0x00ea: return "VarBoolFromUI2";
- case 0x00eb: return "VarBoolFromUI4";
- case 0x0173: return "VarBoolFromUI8";
- case 0x0139: return "VarBstrCat";
- case 0x013a: return "VarBstrCmp";
- case 0x0074: return "VarBstrFromBool";
- case 0x0071: return "VarBstrFromCy";
- case 0x0072: return "VarBstrFromDate";
- case 0x00e8: return "VarBstrFromDec";
- case 0x0073: return "VarBstrFromDisp";
- case 0x00e5: return "VarBstrFromI1";
- case 0x006d: return "VarBstrFromI2";
- case 0x006e: return "VarBstrFromI4";
- case 0x0170: return "VarBstrFromI8";
- case 0x006f: return "VarBstrFromR4";
- case 0x0070: return "VarBstrFromR8";
- case 0x006c: return "VarBstrFromUI1";
- case 0x00e6: return "VarBstrFromUI2";
- case 0x00e7: return "VarBstrFromUI4";
- case 0x0171: return "VarBstrFromUI8";
- case 0x013e: return "VarCat";
- case 0x00b0: return "VarCmp";
- case 0x0132: return "VarCyAbs";
- case 0x012b: return "VarCyAdd";
- case 0x0137: return "VarCyCmp";
- case 0x0138: return "VarCyCmpR8";
- case 0x0133: return "VarCyFix";
- case 0x006a: return "VarCyFromBool";
- case 0x0067: return "VarCyFromDate";
- case 0x00e4: return "VarCyFromDec";
- case 0x0069: return "VarCyFromDisp";
- case 0x00e1: return "VarCyFromI1";
- case 0x0063: return "VarCyFromI2";
- case 0x0064: return "VarCyFromI4";
- case 0x016e: return "VarCyFromI8";
- case 0x0065: return "VarCyFromR4";
- case 0x0066: return "VarCyFromR8";
- case 0x0068: return "VarCyFromStr";
- case 0x0062: return "VarCyFromUI1";
- case 0x00e2: return "VarCyFromUI2";
- case 0x00e3: return "VarCyFromUI4";
- case 0x016f: return "VarCyFromUI8";
- case 0x0134: return "VarCyInt";
- case 0x012f: return "VarCyMul";
- case 0x0130: return "VarCyMulI4";
- case 0x0149: return "VarCyMulI8";
- case 0x0135: return "VarCyNeg";
- case 0x0136: return "VarCyRound";
- case 0x0131: return "VarCySub";
- case 0x0060: return "VarDateFromBool";
- case 0x005d: return "VarDateFromCy";
- case 0x00e0: return "VarDateFromDec";
- case 0x005f: return "VarDateFromDisp";
- case 0x00dd: return "VarDateFromI1";
- case 0x0059: return "VarDateFromI2";
- case 0x005a: return "VarDateFromI4";
- case 0x016c: return "VarDateFromI8";
- case 0x005b: return "VarDateFromR4";
- case 0x005c: return "VarDateFromR8";
- case 0x005e: return "VarDateFromStr";
- case 0x0058: return "VarDateFromUI1";
- case 0x00de: return "VarDateFromUI2";
- case 0x00df: return "VarDateFromUI4";
- case 0x016d: return "VarDateFromUI8";
- case 0x014a: return "VarDateFromUdate";
- case 0x013f: return "VarDateFromUdateEx";
- case 0x00b6: return "VarDecAbs";
- case 0x00b1: return "VarDecAdd";
- case 0x00cc: return "VarDecCmp";
- case 0x012a: return "VarDecCmpR8";
- case 0x00b2: return "VarDecDiv";
- case 0x00bb: return "VarDecFix";
- case 0x00c7: return "VarDecFromBool";
- case 0x00c4: return "VarDecFromCy";
- case 0x00c3: return "VarDecFromDate";
- case 0x00c6: return "VarDecFromDisp";
- case 0x00f1: return "VarDecFromI1";
- case 0x00bf: return "VarDecFromI2";
- case 0x00c0: return "VarDecFromI4";
- case 0x0176: return "VarDecFromI8";
- case 0x00c1: return "VarDecFromR4";
- case 0x00c2: return "VarDecFromR8";
- case 0x00c5: return "VarDecFromStr";
- case 0x00be: return "VarDecFromUI1";
- case 0x00f2: return "VarDecFromUI2";
- case 0x00f3: return "VarDecFromUI4";
- case 0x0177: return "VarDecFromUI8";
- case 0x00bc: return "VarDecInt";
- case 0x00b3: return "VarDecMul";
- case 0x00bd: return "VarDecNeg";
- case 0x00cb: return "VarDecRound";
- case 0x00b5: return "VarDecSub";
- case 0x008f: return "VarDiv";
- case 0x0098: return "VarEqv";
- case 0x00a9: return "VarFix";
- case 0x0057: return "VarFormat";
- case 0x007f: return "VarFormatCurrency";
- case 0x0061: return "VarFormatDateTime";
- case 0x008b: return "VarFormatFromTokens";
- case 0x006b: return "VarFormatNumber";
- case 0x0075: return "VarFormatPercent";
- case 0x00fd: return "VarI1FromBool";
- case 0x00fa: return "VarI1FromCy";
- case 0x00f9: return "VarI1FromDate";
- case 0x0100: return "VarI1FromDec";
- case 0x00fc: return "VarI1FromDisp";
- case 0x00f5: return "VarI1FromI2";
- case 0x00f6: return "VarI1FromI4";
- case 0x0178: return "VarI1FromI8";
- case 0x00f7: return "VarI1FromR4";
- case 0x00f8: return "VarI1FromR8";
- case 0x00fb: return "VarI1FromStr";
- case 0x00f4: return "VarI1FromUI1";
- case 0x00fe: return "VarI1FromUI2";
- case 0x00ff: return "VarI1FromUI4";
- case 0x0179: return "VarI1FromUI8";
- case 0x0038: return "VarI2FromBool";
- case 0x0034: return "VarI2FromCy";
- case 0x0035: return "VarI2FromDate";
- case 0x00d0: return "VarI2FromDec";
- case 0x0037: return "VarI2FromDisp";
- case 0x00cd: return "VarI2FromI1";
- case 0x0031: return "VarI2FromI4";
- case 0x015a: return "VarI2FromI8";
- case 0x0032: return "VarI2FromR4";
- case 0x0033: return "VarI2FromR8";
- case 0x0036: return "VarI2FromStr";
- case 0x0030: return "VarI2FromUI1";
- case 0x00ce: return "VarI2FromUI2";
- case 0x00cf: return "VarI2FromUI4";
- case 0x015b: return "VarI2FromUI8";
- case 0x0042: return "VarI4FromBool";
- case 0x003e: return "VarI4FromCy";
- case 0x003f: return "VarI4FromDate";
- case 0x00d4: return "VarI4FromDec";
- case 0x0041: return "VarI4FromDisp";
- case 0x00d1: return "VarI4FromI1";
- case 0x003b: return "VarI4FromI2";
- case 0x015c: return "VarI4FromI8";
- case 0x003c: return "VarI4FromR4";
- case 0x003d: return "VarI4FromR8";
- case 0x0040: return "VarI4FromStr";
- case 0x003a: return "VarI4FromUI1";
- case 0x00d2: return "VarI4FromUI2";
- case 0x00d3: return "VarI4FromUI4";
- case 0x015d: return "VarI4FromUI8";
- case 0x0155: return "VarI8FromBool";
- case 0x0151: return "VarI8FromCy";
- case 0x0152: return "VarI8FromDate";
- case 0x0159: return "VarI8FromDec";
- case 0x0154: return "VarI8FromDisp";
- case 0x0156: return "VarI8FromI1";
- case 0x014e: return "VarI8FromI2";
- case 0x014f: return "VarI8FromR4";
- case 0x0150: return "VarI8FromR8";
- case 0x0153: return "VarI8FromStr";
- case 0x014d: return "VarI8FromUI1";
- case 0x0157: return "VarI8FromUI2";
- case 0x0158: return "VarI8FromUI4";
- case 0x01ab: return "VarI8FromUI8";
- case 0x0099: return "VarIdiv";
- case 0x009a: return "VarImp";
- case 0x00ac: return "VarInt";
- case 0x009b: return "VarMod";
- case 0x0081: return "VarMonthName";
- case 0x009c: return "VarMul";
- case 0x00ad: return "VarNeg";
- case 0x00ae: return "VarNot";
- case 0x002f: return "VarNumFromParseNum";
- case 0x009d: return "VarOr";
- case 0x002e: return "VarParseNumFromStr";
- case 0x009e: return "VarPow";
- case 0x013c: return "VarR4CmpR8";
- case 0x004c: return "VarR4FromBool";
- case 0x0048: return "VarR4FromCy";
- case 0x0049: return "VarR4FromDate";
- case 0x00d8: return "VarR4FromDec";
- case 0x004b: return "VarR4FromDisp";
- case 0x00d5: return "VarR4FromI1";
- case 0x0045: return "VarR4FromI2";
- case 0x0046: return "VarR4FromI4";
- case 0x0168: return "VarR4FromI8";
- case 0x0047: return "VarR4FromR8";
- case 0x004a: return "VarR4FromStr";
- case 0x0044: return "VarR4FromUI1";
- case 0x00d6: return "VarR4FromUI2";
- case 0x00d7: return "VarR4FromUI4";
- case 0x0169: return "VarR4FromUI8";
- case 0x0056: return "VarR8FromBool";
- case 0x0052: return "VarR8FromCy";
- case 0x0053: return "VarR8FromDate";
- case 0x00dc: return "VarR8FromDec";
- case 0x0055: return "VarR8FromDisp";
- case 0x00d9: return "VarR8FromI1";
- case 0x004f: return "VarR8FromI2";
- case 0x0050: return "VarR8FromI4";
- case 0x016a: return "VarR8FromI8";
- case 0x0051: return "VarR8FromR4";
- case 0x0054: return "VarR8FromStr";
- case 0x004e: return "VarR8FromUI1";
- case 0x00da: return "VarR8FromUI2";
- case 0x00db: return "VarR8FromUI4";
- case 0x016b: return "VarR8FromUI8";
- case 0x013b: return "VarR8Pow";
- case 0x013d: return "VarR8Round";
- case 0x00af: return "VarRound";
- case 0x009f: return "VarSub";
- case 0x008c: return "VarTokenizeFormatString";
- case 0x008a: return "VarUI1FromBool";
- case 0x0086: return "VarUI1FromCy";
- case 0x0087: return "VarUI1FromDate";
- case 0x00f0: return "VarUI1FromDec";
- case 0x0089: return "VarUI1FromDisp";
- case 0x00ed: return "VarUI1FromI1";
- case 0x0082: return "VarUI1FromI2";
- case 0x0083: return "VarUI1FromI4";
- case 0x0174: return "VarUI1FromI8";
- case 0x0084: return "VarUI1FromR4";
- case 0x0085: return "VarUI1FromR8";
- case 0x0088: return "VarUI1FromStr";
- case 0x00ee: return "VarUI1FromUI2";
- case 0x00ef: return "VarUI1FromUI4";
- case 0x0175: return "VarUI1FromUI8";
- case 0x010a: return "VarUI2FromBool";
- case 0x0107: return "VarUI2FromCy";
- case 0x0106: return "VarUI2FromDate";
- case 0x010d: return "VarUI2FromDec";
- case 0x0109: return "VarUI2FromDisp";
- case 0x010b: return "VarUI2FromI1";
- case 0x0102: return "VarUI2FromI2";
- case 0x0103: return "VarUI2FromI4";
- case 0x017a: return "VarUI2FromI8";
- case 0x0104: return "VarUI2FromR4";
- case 0x0105: return "VarUI2FromR8";
- case 0x0108: return "VarUI2FromStr";
- case 0x0101: return "VarUI2FromUI1";
- case 0x010c: return "VarUI2FromUI4";
- case 0x017b: return "VarUI2FromUI8";
- case 0x0117: return "VarUI4FromBool";
- case 0x0114: return "VarUI4FromCy";
- case 0x0113: return "VarUI4FromDate";
- case 0x011a: return "VarUI4FromDec";
- case 0x0116: return "VarUI4FromDisp";
- case 0x0118: return "VarUI4FromI1";
- case 0x010f: return "VarUI4FromI2";
- case 0x0110: return "VarUI4FromI4";
- case 0x01a9: return "VarUI4FromI8";
- case 0x0111: return "VarUI4FromR4";
- case 0x0112: return "VarUI4FromR8";
- case 0x0115: return "VarUI4FromStr";
- case 0x010e: return "VarUI4FromUI1";
- case 0x0119: return "VarUI4FromUI2";
- case 0x01aa: return "VarUI4FromUI8";
- case 0x01b5: return "VarUI8FromBool";
- case 0x01b1: return "VarUI8FromCy";
- case 0x01b2: return "VarUI8FromDate";
- case 0x01b9: return "VarUI8FromDec";
- case 0x01b4: return "VarUI8FromDisp";
- case 0x01b6: return "VarUI8FromI1";
- case 0x01ae: return "VarUI8FromI2";
- case 0x01ac: return "VarUI8FromI8";
- case 0x01af: return "VarUI8FromR4";
- case 0x01b0: return "VarUI8FromR8";
- case 0x01b3: return "VarUI8FromStr";
- case 0x01ad: return "VarUI8FromUI1";
- case 0x01b7: return "VarUI8FromUI2";
- case 0x01b8: return "VarUI8FromUI4";
- case 0x014b: return "VarUdateFromDate";
- case 0x0080: return "VarWeekdayName";
- case 0x00a7: return "VarXor";
- case 0x000c: return "VariantChangeType";
- case 0x0093: return "VariantChangeTypeEx";
- case 0x0009: return "VariantClear";
- case 0x000a: return "VariantCopy";
- case 0x000b: return "VariantCopyInd";
- case 0x0008: return "VariantInit";
- case 0x000d: return "VariantTimeToDosDateTime";
- case 0x00b9: return "VariantTimeToSystemTime";
- case 0x019d: return "VectorFromBstr";
+ switch (i) {
+ case 0x011e: return "BSTR_UserFree";
+ case 0x011c: return "BSTR_UserMarshal";
+ case 0x011b: return "BSTR_UserSize";
+ case 0x011d: return "BSTR_UserUnmarshal";
+ case 0x019e: return "BstrFromVector";
+ case 0x00ab: return "ClearCustData";
+ case 0x001f: return "CreateDispTypeInfo";
+ case 0x00ca: return "CreateErrorInfo";
+ case 0x0020: return "CreateStdDispatch";
+ case 0x00a0: return "CreateTypeLib";
+ case 0x00b4: return "CreateTypeLib2";
+ case 0x0092: return "DispCallFunc";
+ case 0x001d: return "DispGetIDsOfNames";
+ case 0x001c: return "DispGetParam";
+ case 0x001e: return "DispInvoke";
+ case 0x0090: return "DllCanUnloadNow";
+ case 0x0091: return "DllGetClassObject";
+ case 0x0097: return "DllRegisterServer";
+ case 0x012c: return "DllUnregisterServer";
+ case 0x000e: return "DosDateTimeToVariantTime";
+ case 0x0023: return "GetActiveObject";
+ case 0x014c: return "GetAltMonthNames";
+ case 0x00c8: return "GetErrorInfo";
+ case 0x0142: return "GetRecordInfoFromGuids";
+ case 0x0143: return "GetRecordInfoFromTypeInfo";
+ case 0x0146: return "GetVarConversionLocaleSetting";
+ case 0x00a5: return "LHashValOfNameSys";
+ case 0x00a6: return "LHashValOfNameSysA";
+ case 0x0128: return "LPSAFEARRAY_Marshal";
+ case 0x0127: return "LPSAFEARRAY_Size";
+ case 0x0129: return "LPSAFEARRAY_Unmarshal";
+ case 0x0126: return "LPSAFEARRAY_UserFree";
+ case 0x0124: return "LPSAFEARRAY_UserMarshal";
+ case 0x0123: return "LPSAFEARRAY_UserSize";
+ case 0x0125: return "LPSAFEARRAY_UserUnmarshal";
+ case 0x00a2: return "LoadRegTypeLib";
+ case 0x00a1: return "LoadTypeLib";
+ case 0x00b7: return "LoadTypeLibEx";
+ case 0x012d: return "OACreateTypeLib2";
+ case 0x00aa: return "OaBuildVersion";
+ case 0x01a4: return "OleCreateFontIndirect";
+ case 0x01a3: return "OleCreatePictureIndirect";
+ case 0x01a1: return "OleCreatePropertyFrame";
+ case 0x01a0: return "OleCreatePropertyFrameIndirect";
+ case 0x019f: return "OleIconToCursor";
+ case 0x01a2: return "OleLoadPicture";
+ case 0x0191: return "OleLoadPictureEx";
+ case 0x01a6: return "OleLoadPictureFile";
+ case 0x0192: return "OleLoadPictureFileEx";
+ case 0x01a8: return "OleLoadPicturePath";
+ case 0x01a7: return "OleSavePictureFile";
+ case 0x01a5: return "OleTranslateColor";
+ case 0x00a4: return "QueryPathOfRegTypeLib";
+ case 0x0021: return "RegisterActiveObject";
+ case 0x00a3: return "RegisterTypeLib";
+ case 0x01ba: return "RegisterTypeLibForUser";
+ case 0x0022: return "RevokeActiveObject";
+ case 0x0017: return "SafeArrayAccessData";
+ case 0x0025: return "SafeArrayAllocData";
+ case 0x0024: return "SafeArrayAllocDescriptor";
+ case 0x0029: return "SafeArrayAllocDescriptorEx";
+ case 0x001b: return "SafeArrayCopy";
+ case 0x019c: return "SafeArrayCopyData";
+ case 0x000f: return "SafeArrayCreate";
+ case 0x002a: return "SafeArrayCreateEx";
+ case 0x019b: return "SafeArrayCreateVector";
+ case 0x002b: return "SafeArrayCreateVectorEx";
+ case 0x0010: return "SafeArrayDestroy";
+ case 0x0027: return "SafeArrayDestroyData";
+ case 0x0026: return "SafeArrayDestroyDescriptor";
+ case 0x0011: return "SafeArrayGetDim";
+ case 0x0019: return "SafeArrayGetElement";
+ case 0x0012: return "SafeArrayGetElemsize";
+ case 0x0043: return "SafeArrayGetIID";
+ case 0x0014: return "SafeArrayGetLBound";
+ case 0x002d: return "SafeArrayGetRecordInfo";
+ case 0x0013: return "SafeArrayGetUBound";
+ case 0x004d: return "SafeArrayGetVartype";
+ case 0x0015: return "SafeArrayLock";
+ case 0x0094: return "SafeArrayPtrOfIndex";
+ case 0x001a: return "SafeArrayPutElement";
+ case 0x0028: return "SafeArrayRedim";
+ case 0x0039: return "SafeArraySetIID";
+ case 0x002c: return "SafeArraySetRecordInfo";
+ case 0x0018: return "SafeArrayUnaccessData";
+ case 0x0016: return "SafeArrayUnlock";
+ case 0x00c9: return "SetErrorInfo";
+ case 0x0147: return "SetOaNoCache";
+ case 0x0145: return "SetVarConversionLocaleSetting";
+ case 0x0002: return "SysAllocString";
+ case 0x0096: return "SysAllocStringByteLen";
+ case 0x0004: return "SysAllocStringLen";
+ case 0x0006: return "SysFreeString";
+ case 0x0003: return "SysReAllocString";
+ case 0x0005: return "SysReAllocStringLen";
+ case 0x0095: return "SysStringByteLen";
+ case 0x0007: return "SysStringLen";
+ case 0x00b8: return "SystemTimeToVariantTime";
+ case 0x00ba: return "UnRegisterTypeLib";
+ case 0x01bb: return "UnRegisterTypeLibForUser";
+ case 0x0122: return "VARIANT_UserFree";
+ case 0x0120: return "VARIANT_UserMarshal";
+ case 0x011f: return "VARIANT_UserSize";
+ case 0x0121: return "VARIANT_UserUnmarshal";
+ case 0x00a8: return "VarAbs";
+ case 0x008d: return "VarAdd";
+ case 0x008e: return "VarAnd";
+ case 0x007c: return "VarBoolFromCy";
+ case 0x007b: return "VarBoolFromDate";
+ case 0x00ec: return "VarBoolFromDec";
+ case 0x007e: return "VarBoolFromDisp";
+ case 0x00e9: return "VarBoolFromI1";
+ case 0x0077: return "VarBoolFromI2";
+ case 0x0078: return "VarBoolFromI4";
+ case 0x0172: return "VarBoolFromI8";
+ case 0x0079: return "VarBoolFromR4";
+ case 0x007a: return "VarBoolFromR8";
+ case 0x007d: return "VarBoolFromStr";
+ case 0x0076: return "VarBoolFromUI1";
+ case 0x00ea: return "VarBoolFromUI2";
+ case 0x00eb: return "VarBoolFromUI4";
+ case 0x0173: return "VarBoolFromUI8";
+ case 0x0139: return "VarBstrCat";
+ case 0x013a: return "VarBstrCmp";
+ case 0x0074: return "VarBstrFromBool";
+ case 0x0071: return "VarBstrFromCy";
+ case 0x0072: return "VarBstrFromDate";
+ case 0x00e8: return "VarBstrFromDec";
+ case 0x0073: return "VarBstrFromDisp";
+ case 0x00e5: return "VarBstrFromI1";
+ case 0x006d: return "VarBstrFromI2";
+ case 0x006e: return "VarBstrFromI4";
+ case 0x0170: return "VarBstrFromI8";
+ case 0x006f: return "VarBstrFromR4";
+ case 0x0070: return "VarBstrFromR8";
+ case 0x006c: return "VarBstrFromUI1";
+ case 0x00e6: return "VarBstrFromUI2";
+ case 0x00e7: return "VarBstrFromUI4";
+ case 0x0171: return "VarBstrFromUI8";
+ case 0x013e: return "VarCat";
+ case 0x00b0: return "VarCmp";
+ case 0x0132: return "VarCyAbs";
+ case 0x012b: return "VarCyAdd";
+ case 0x0137: return "VarCyCmp";
+ case 0x0138: return "VarCyCmpR8";
+ case 0x0133: return "VarCyFix";
+ case 0x006a: return "VarCyFromBool";
+ case 0x0067: return "VarCyFromDate";
+ case 0x00e4: return "VarCyFromDec";
+ case 0x0069: return "VarCyFromDisp";
+ case 0x00e1: return "VarCyFromI1";
+ case 0x0063: return "VarCyFromI2";
+ case 0x0064: return "VarCyFromI4";
+ case 0x016e: return "VarCyFromI8";
+ case 0x0065: return "VarCyFromR4";
+ case 0x0066: return "VarCyFromR8";
+ case 0x0068: return "VarCyFromStr";
+ case 0x0062: return "VarCyFromUI1";
+ case 0x00e2: return "VarCyFromUI2";
+ case 0x00e3: return "VarCyFromUI4";
+ case 0x016f: return "VarCyFromUI8";
+ case 0x0134: return "VarCyInt";
+ case 0x012f: return "VarCyMul";
+ case 0x0130: return "VarCyMulI4";
+ case 0x0149: return "VarCyMulI8";
+ case 0x0135: return "VarCyNeg";
+ case 0x0136: return "VarCyRound";
+ case 0x0131: return "VarCySub";
+ case 0x0060: return "VarDateFromBool";
+ case 0x005d: return "VarDateFromCy";
+ case 0x00e0: return "VarDateFromDec";
+ case 0x005f: return "VarDateFromDisp";
+ case 0x00dd: return "VarDateFromI1";
+ case 0x0059: return "VarDateFromI2";
+ case 0x005a: return "VarDateFromI4";
+ case 0x016c: return "VarDateFromI8";
+ case 0x005b: return "VarDateFromR4";
+ case 0x005c: return "VarDateFromR8";
+ case 0x005e: return "VarDateFromStr";
+ case 0x0058: return "VarDateFromUI1";
+ case 0x00de: return "VarDateFromUI2";
+ case 0x00df: return "VarDateFromUI4";
+ case 0x016d: return "VarDateFromUI8";
+ case 0x014a: return "VarDateFromUdate";
+ case 0x013f: return "VarDateFromUdateEx";
+ case 0x00b6: return "VarDecAbs";
+ case 0x00b1: return "VarDecAdd";
+ case 0x00cc: return "VarDecCmp";
+ case 0x012a: return "VarDecCmpR8";
+ case 0x00b2: return "VarDecDiv";
+ case 0x00bb: return "VarDecFix";
+ case 0x00c7: return "VarDecFromBool";
+ case 0x00c4: return "VarDecFromCy";
+ case 0x00c3: return "VarDecFromDate";
+ case 0x00c6: return "VarDecFromDisp";
+ case 0x00f1: return "VarDecFromI1";
+ case 0x00bf: return "VarDecFromI2";
+ case 0x00c0: return "VarDecFromI4";
+ case 0x0176: return "VarDecFromI8";
+ case 0x00c1: return "VarDecFromR4";
+ case 0x00c2: return "VarDecFromR8";
+ case 0x00c5: return "VarDecFromStr";
+ case 0x00be: return "VarDecFromUI1";
+ case 0x00f2: return "VarDecFromUI2";
+ case 0x00f3: return "VarDecFromUI4";
+ case 0x0177: return "VarDecFromUI8";
+ case 0x00bc: return "VarDecInt";
+ case 0x00b3: return "VarDecMul";
+ case 0x00bd: return "VarDecNeg";
+ case 0x00cb: return "VarDecRound";
+ case 0x00b5: return "VarDecSub";
+ case 0x008f: return "VarDiv";
+ case 0x0098: return "VarEqv";
+ case 0x00a9: return "VarFix";
+ case 0x0057: return "VarFormat";
+ case 0x007f: return "VarFormatCurrency";
+ case 0x0061: return "VarFormatDateTime";
+ case 0x008b: return "VarFormatFromTokens";
+ case 0x006b: return "VarFormatNumber";
+ case 0x0075: return "VarFormatPercent";
+ case 0x00fd: return "VarI1FromBool";
+ case 0x00fa: return "VarI1FromCy";
+ case 0x00f9: return "VarI1FromDate";
+ case 0x0100: return "VarI1FromDec";
+ case 0x00fc: return "VarI1FromDisp";
+ case 0x00f5: return "VarI1FromI2";
+ case 0x00f6: return "VarI1FromI4";
+ case 0x0178: return "VarI1FromI8";
+ case 0x00f7: return "VarI1FromR4";
+ case 0x00f8: return "VarI1FromR8";
+ case 0x00fb: return "VarI1FromStr";
+ case 0x00f4: return "VarI1FromUI1";
+ case 0x00fe: return "VarI1FromUI2";
+ case 0x00ff: return "VarI1FromUI4";
+ case 0x0179: return "VarI1FromUI8";
+ case 0x0038: return "VarI2FromBool";
+ case 0x0034: return "VarI2FromCy";
+ case 0x0035: return "VarI2FromDate";
+ case 0x00d0: return "VarI2FromDec";
+ case 0x0037: return "VarI2FromDisp";
+ case 0x00cd: return "VarI2FromI1";
+ case 0x0031: return "VarI2FromI4";
+ case 0x015a: return "VarI2FromI8";
+ case 0x0032: return "VarI2FromR4";
+ case 0x0033: return "VarI2FromR8";
+ case 0x0036: return "VarI2FromStr";
+ case 0x0030: return "VarI2FromUI1";
+ case 0x00ce: return "VarI2FromUI2";
+ case 0x00cf: return "VarI2FromUI4";
+ case 0x015b: return "VarI2FromUI8";
+ case 0x0042: return "VarI4FromBool";
+ case 0x003e: return "VarI4FromCy";
+ case 0x003f: return "VarI4FromDate";
+ case 0x00d4: return "VarI4FromDec";
+ case 0x0041: return "VarI4FromDisp";
+ case 0x00d1: return "VarI4FromI1";
+ case 0x003b: return "VarI4FromI2";
+ case 0x015c: return "VarI4FromI8";
+ case 0x003c: return "VarI4FromR4";
+ case 0x003d: return "VarI4FromR8";
+ case 0x0040: return "VarI4FromStr";
+ case 0x003a: return "VarI4FromUI1";
+ case 0x00d2: return "VarI4FromUI2";
+ case 0x00d3: return "VarI4FromUI4";
+ case 0x015d: return "VarI4FromUI8";
+ case 0x0155: return "VarI8FromBool";
+ case 0x0151: return "VarI8FromCy";
+ case 0x0152: return "VarI8FromDate";
+ case 0x0159: return "VarI8FromDec";
+ case 0x0154: return "VarI8FromDisp";
+ case 0x0156: return "VarI8FromI1";
+ case 0x014e: return "VarI8FromI2";
+ case 0x014f: return "VarI8FromR4";
+ case 0x0150: return "VarI8FromR8";
+ case 0x0153: return "VarI8FromStr";
+ case 0x014d: return "VarI8FromUI1";
+ case 0x0157: return "VarI8FromUI2";
+ case 0x0158: return "VarI8FromUI4";
+ case 0x01ab: return "VarI8FromUI8";
+ case 0x0099: return "VarIdiv";
+ case 0x009a: return "VarImp";
+ case 0x00ac: return "VarInt";
+ case 0x009b: return "VarMod";
+ case 0x0081: return "VarMonthName";
+ case 0x009c: return "VarMul";
+ case 0x00ad: return "VarNeg";
+ case 0x00ae: return "VarNot";
+ case 0x002f: return "VarNumFromParseNum";
+ case 0x009d: return "VarOr";
+ case 0x002e: return "VarParseNumFromStr";
+ case 0x009e: return "VarPow";
+ case 0x013c: return "VarR4CmpR8";
+ case 0x004c: return "VarR4FromBool";
+ case 0x0048: return "VarR4FromCy";
+ case 0x0049: return "VarR4FromDate";
+ case 0x00d8: return "VarR4FromDec";
+ case 0x004b: return "VarR4FromDisp";
+ case 0x00d5: return "VarR4FromI1";
+ case 0x0045: return "VarR4FromI2";
+ case 0x0046: return "VarR4FromI4";
+ case 0x0168: return "VarR4FromI8";
+ case 0x0047: return "VarR4FromR8";
+ case 0x004a: return "VarR4FromStr";
+ case 0x0044: return "VarR4FromUI1";
+ case 0x00d6: return "VarR4FromUI2";
+ case 0x00d7: return "VarR4FromUI4";
+ case 0x0169: return "VarR4FromUI8";
+ case 0x0056: return "VarR8FromBool";
+ case 0x0052: return "VarR8FromCy";
+ case 0x0053: return "VarR8FromDate";
+ case 0x00dc: return "VarR8FromDec";
+ case 0x0055: return "VarR8FromDisp";
+ case 0x00d9: return "VarR8FromI1";
+ case 0x004f: return "VarR8FromI2";
+ case 0x0050: return "VarR8FromI4";
+ case 0x016a: return "VarR8FromI8";
+ case 0x0051: return "VarR8FromR4";
+ case 0x0054: return "VarR8FromStr";
+ case 0x004e: return "VarR8FromUI1";
+ case 0x00da: return "VarR8FromUI2";
+ case 0x00db: return "VarR8FromUI4";
+ case 0x016b: return "VarR8FromUI8";
+ case 0x013b: return "VarR8Pow";
+ case 0x013d: return "VarR8Round";
+ case 0x00af: return "VarRound";
+ case 0x009f: return "VarSub";
+ case 0x008c: return "VarTokenizeFormatString";
+ case 0x008a: return "VarUI1FromBool";
+ case 0x0086: return "VarUI1FromCy";
+ case 0x0087: return "VarUI1FromDate";
+ case 0x00f0: return "VarUI1FromDec";
+ case 0x0089: return "VarUI1FromDisp";
+ case 0x00ed: return "VarUI1FromI1";
+ case 0x0082: return "VarUI1FromI2";
+ case 0x0083: return "VarUI1FromI4";
+ case 0x0174: return "VarUI1FromI8";
+ case 0x0084: return "VarUI1FromR4";
+ case 0x0085: return "VarUI1FromR8";
+ case 0x0088: return "VarUI1FromStr";
+ case 0x00ee: return "VarUI1FromUI2";
+ case 0x00ef: return "VarUI1FromUI4";
+ case 0x0175: return "VarUI1FromUI8";
+ case 0x010a: return "VarUI2FromBool";
+ case 0x0107: return "VarUI2FromCy";
+ case 0x0106: return "VarUI2FromDate";
+ case 0x010d: return "VarUI2FromDec";
+ case 0x0109: return "VarUI2FromDisp";
+ case 0x010b: return "VarUI2FromI1";
+ case 0x0102: return "VarUI2FromI2";
+ case 0x0103: return "VarUI2FromI4";
+ case 0x017a: return "VarUI2FromI8";
+ case 0x0104: return "VarUI2FromR4";
+ case 0x0105: return "VarUI2FromR8";
+ case 0x0108: return "VarUI2FromStr";
+ case 0x0101: return "VarUI2FromUI1";
+ case 0x010c: return "VarUI2FromUI4";
+ case 0x017b: return "VarUI2FromUI8";
+ case 0x0117: return "VarUI4FromBool";
+ case 0x0114: return "VarUI4FromCy";
+ case 0x0113: return "VarUI4FromDate";
+ case 0x011a: return "VarUI4FromDec";
+ case 0x0116: return "VarUI4FromDisp";
+ case 0x0118: return "VarUI4FromI1";
+ case 0x010f: return "VarUI4FromI2";
+ case 0x0110: return "VarUI4FromI4";
+ case 0x01a9: return "VarUI4FromI8";
+ case 0x0111: return "VarUI4FromR4";
+ case 0x0112: return "VarUI4FromR8";
+ case 0x0115: return "VarUI4FromStr";
+ case 0x010e: return "VarUI4FromUI1";
+ case 0x0119: return "VarUI4FromUI2";
+ case 0x01aa: return "VarUI4FromUI8";
+ case 0x01b5: return "VarUI8FromBool";
+ case 0x01b1: return "VarUI8FromCy";
+ case 0x01b2: return "VarUI8FromDate";
+ case 0x01b9: return "VarUI8FromDec";
+ case 0x01b4: return "VarUI8FromDisp";
+ case 0x01b6: return "VarUI8FromI1";
+ case 0x01ae: return "VarUI8FromI2";
+ case 0x01ac: return "VarUI8FromI8";
+ case 0x01af: return "VarUI8FromR4";
+ case 0x01b0: return "VarUI8FromR8";
+ case 0x01b3: return "VarUI8FromStr";
+ case 0x01ad: return "VarUI8FromUI1";
+ case 0x01b7: return "VarUI8FromUI2";
+ case 0x01b8: return "VarUI8FromUI4";
+ case 0x014b: return "VarUdateFromDate";
+ case 0x0080: return "VarWeekdayName";
+ case 0x00a7: return "VarXor";
+ case 0x000c: return "VariantChangeType";
+ case 0x0093: return "VariantChangeTypeEx";
+ case 0x0009: return "VariantClear";
+ case 0x000a: return "VariantCopy";
+ case 0x000b: return "VariantCopyInd";
+ case 0x0008: return "VariantInit";
+ case 0x000d: return "VariantTimeToDosDateTime";
+ case 0x00b9: return "VariantTimeToSystemTime";
+ case 0x019d: return "VectorFromBstr";
}
return nullptr;
}
-}
}
-#endif
+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/shcore_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/shcore_dll_lookup.hpp
index ab2d42eb85c..957a2b20993 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/shcore_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/shcore_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,106 +17,105 @@
#define LIEF_PE_SHCORE_DLL_LOOKUP_H
#include <cstdint>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
inline const char* shcore_dll_lookup(uint32_t i) {
- switch(i) {
- case 0x0002: return "CommandLineToArgvW";
- case 0x0003: return "CreateRandomAccessStreamOnFile";
- case 0x0004: return "CreateRandomAccessStreamOverStream";
- case 0x0005: return "CreateStreamOverRandomAccessStream";
- case 0x0006: return "DllCanUnloadNow";
- case 0x0007: return "DllGetActivationFactory";
- case 0x0008: return "DllGetClassObject";
- case 0x0009: return "GetCurrentProcessExplicitAppUserModelID";
- case 0x000a: return "GetDpiForMonitor";
- case 0x000b: return "GetDpiForShellUIComponent";
- case 0x000c: return "GetFeatureEnabledState";
- case 0x000d: return "GetProcessDpiAwareness";
- case 0x000e: return "GetProcessReference";
- case 0x000f: return "GetScaleFactorForDevice";
- case 0x0010: return "GetScaleFactorForMonitor";
- case 0x0011: return "IStream_Copy";
- case 0x0012: return "IStream_Read";
- case 0x0013: return "IStream_ReadStr";
- case 0x0014: return "IStream_Reset";
- case 0x0015: return "IStream_Size";
- case 0x0016: return "IStream_Write";
- case 0x0017: return "IStream_WriteStr";
- case 0x0018: return "IUnknown_AtomicRelease";
- case 0x0019: return "IUnknown_GetSite";
- case 0x001a: return "IUnknown_QueryService";
- case 0x001b: return "IUnknown_Set";
- case 0x001c: return "IUnknown_SetSite";
- case 0x001d: return "IsOS";
- case 0x001e: return "RecordFeatureError";
- case 0x001f: return "RecordFeatureUsage";
- case 0x0020: return "RegisterScaleChangeEvent";
- case 0x0021: return "RegisterScaleChangeNotifications";
- case 0x0022: return "RevokeScaleChangeNotifications";
- case 0x0023: return "SHAnsiToAnsi";
- case 0x0024: return "SHAnsiToUnicode";
- case 0x0025: return "SHCopyKeyA";
- case 0x0026: return "SHCopyKeyW";
- case 0x0027: return "SHCreateMemStream";
- case 0x0028: return "SHCreateStreamOnFileA";
- case 0x0029: return "SHCreateStreamOnFileEx";
- case 0x002a: return "SHCreateStreamOnFileW";
- case 0x002b: return "SHCreateThread";
- case 0x002c: return "SHCreateThreadRef";
- case 0x002d: return "SHCreateThreadWithHandle";
- case 0x002e: return "SHDeleteEmptyKeyA";
- case 0x002f: return "SHDeleteEmptyKeyW";
- case 0x0030: return "SHDeleteKeyA";
- case 0x0031: return "SHDeleteKeyW";
- case 0x0032: return "SHDeleteValueA";
- case 0x0033: return "SHDeleteValueW";
- case 0x0034: return "SHEnumKeyExA";
- case 0x0035: return "SHEnumKeyExW";
- case 0x0036: return "SHEnumValueA";
- case 0x0037: return "SHEnumValueW";
- case 0x0038: return "SHGetThreadRef";
- case 0x0039: return "SHGetValueA";
- case 0x003a: return "SHGetValueW";
- case 0x003b: return "SHOpenRegStream2A";
- case 0x003c: return "SHOpenRegStream2W";
- case 0x003d: return "SHOpenRegStreamA";
- case 0x003e: return "SHOpenRegStreamW";
- case 0x003f: return "SHQueryInfoKeyA";
- case 0x0040: return "SHQueryInfoKeyW";
- case 0x0041: return "SHQueryValueExA";
- case 0x0042: return "SHQueryValueExW";
- case 0x0043: return "SHRegDuplicateHKey";
- case 0x0044: return "SHRegGetIntW";
- case 0x0045: return "SHRegGetPathA";
- case 0x0046: return "SHRegGetPathW";
- case 0x0047: return "SHRegGetValueA";
- case 0x007a: return "SHRegGetValueFromHKCUHKLM";
- case 0x0048: return "SHRegGetValueW";
- case 0x0049: return "SHRegSetPathA";
- case 0x004a: return "SHRegSetPathW";
- case 0x004b: return "SHReleaseThreadRef";
- case 0x004c: return "SHSetThreadRef";
- case 0x004d: return "SHSetValueA";
- case 0x004e: return "SHSetValueW";
- case 0x004f: return "SHStrDupA";
- case 0x0050: return "SHStrDupW";
- case 0x0051: return "SHUnicodeToAnsi";
- case 0x0052: return "SHUnicodeToUnicode";
- case 0x0053: return "SetCurrentProcessExplicitAppUserModelID";
- case 0x0054: return "SetProcessDpiAwareness";
- case 0x0055: return "SetProcessReference";
- case 0x0056: return "SubscribeFeatureStateChangeNotification";
- case 0x0057: return "UnregisterScaleChangeEvent";
- case 0x0058: return "UnsubscribeFeatureStateChangeNotification";
+ switch (i) {
+ case 0x0002: return "CommandLineToArgvW";
+ case 0x0003: return "CreateRandomAccessStreamOnFile";
+ case 0x0004: return "CreateRandomAccessStreamOverStream";
+ case 0x0005: return "CreateStreamOverRandomAccessStream";
+ case 0x0006: return "DllCanUnloadNow";
+ case 0x0007: return "DllGetActivationFactory";
+ case 0x0008: return "DllGetClassObject";
+ case 0x0009: return "GetCurrentProcessExplicitAppUserModelID";
+ case 0x000a: return "GetDpiForMonitor";
+ case 0x000b: return "GetDpiForShellUIComponent";
+ case 0x000c: return "GetFeatureEnabledState";
+ case 0x000d: return "GetProcessDpiAwareness";
+ case 0x000e: return "GetProcessReference";
+ case 0x000f: return "GetScaleFactorForDevice";
+ case 0x0010: return "GetScaleFactorForMonitor";
+ case 0x0011: return "IStream_Copy";
+ case 0x0012: return "IStream_Read";
+ case 0x0013: return "IStream_ReadStr";
+ case 0x0014: return "IStream_Reset";
+ case 0x0015: return "IStream_Size";
+ case 0x0016: return "IStream_Write";
+ case 0x0017: return "IStream_WriteStr";
+ case 0x0018: return "IUnknown_AtomicRelease";
+ case 0x0019: return "IUnknown_GetSite";
+ case 0x001a: return "IUnknown_QueryService";
+ case 0x001b: return "IUnknown_Set";
+ case 0x001c: return "IUnknown_SetSite";
+ case 0x001d: return "IsOS";
+ case 0x001e: return "RecordFeatureError";
+ case 0x001f: return "RecordFeatureUsage";
+ case 0x0020: return "RegisterScaleChangeEvent";
+ case 0x0021: return "RegisterScaleChangeNotifications";
+ case 0x0022: return "RevokeScaleChangeNotifications";
+ case 0x0023: return "SHAnsiToAnsi";
+ case 0x0024: return "SHAnsiToUnicode";
+ case 0x0025: return "SHCopyKeyA";
+ case 0x0026: return "SHCopyKeyW";
+ case 0x0027: return "SHCreateMemStream";
+ case 0x0028: return "SHCreateStreamOnFileA";
+ case 0x0029: return "SHCreateStreamOnFileEx";
+ case 0x002a: return "SHCreateStreamOnFileW";
+ case 0x002b: return "SHCreateThread";
+ case 0x002c: return "SHCreateThreadRef";
+ case 0x002d: return "SHCreateThreadWithHandle";
+ case 0x002e: return "SHDeleteEmptyKeyA";
+ case 0x002f: return "SHDeleteEmptyKeyW";
+ case 0x0030: return "SHDeleteKeyA";
+ case 0x0031: return "SHDeleteKeyW";
+ case 0x0032: return "SHDeleteValueA";
+ case 0x0033: return "SHDeleteValueW";
+ case 0x0034: return "SHEnumKeyExA";
+ case 0x0035: return "SHEnumKeyExW";
+ case 0x0036: return "SHEnumValueA";
+ case 0x0037: return "SHEnumValueW";
+ case 0x0038: return "SHGetThreadRef";
+ case 0x0039: return "SHGetValueA";
+ case 0x003a: return "SHGetValueW";
+ case 0x003b: return "SHOpenRegStream2A";
+ case 0x003c: return "SHOpenRegStream2W";
+ case 0x003d: return "SHOpenRegStreamA";
+ case 0x003e: return "SHOpenRegStreamW";
+ case 0x003f: return "SHQueryInfoKeyA";
+ case 0x0040: return "SHQueryInfoKeyW";
+ case 0x0041: return "SHQueryValueExA";
+ case 0x0042: return "SHQueryValueExW";
+ case 0x0043: return "SHRegDuplicateHKey";
+ case 0x0044: return "SHRegGetIntW";
+ case 0x0045: return "SHRegGetPathA";
+ case 0x0046: return "SHRegGetPathW";
+ case 0x0047: return "SHRegGetValueA";
+ case 0x007a: return "SHRegGetValueFromHKCUHKLM";
+ case 0x0048: return "SHRegGetValueW";
+ case 0x0049: return "SHRegSetPathA";
+ case 0x004a: return "SHRegSetPathW";
+ case 0x004b: return "SHReleaseThreadRef";
+ case 0x004c: return "SHSetThreadRef";
+ case 0x004d: return "SHSetValueA";
+ case 0x004e: return "SHSetValueW";
+ case 0x004f: return "SHStrDupA";
+ case 0x0050: return "SHStrDupW";
+ case 0x0051: return "SHUnicodeToAnsi";
+ case 0x0052: return "SHUnicodeToUnicode";
+ case 0x0053: return "SetCurrentProcessExplicitAppUserModelID";
+ case 0x0054: return "SetProcessDpiAwareness";
+ case 0x0055: return "SetProcessReference";
+ case 0x0056: return "SubscribeFeatureStateChangeNotification";
+ case 0x0057: return "UnregisterScaleChangeEvent";
+ case 0x0058: return "UnsubscribeFeatureStateChangeNotification";
}
return nullptr;
}
-}
}
-#endif
+#endif
diff --git a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/shell32_dll_lookup.hpp b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/shell32_dll_lookup.hpp
index 1305ca7bdc1..dd017453168 100644
--- a/deps/LIEF/src/PE/utils/ordinals_lookup_tables/shell32_dll_lookup.hpp
+++ b/deps/LIEF/src/PE/utils/ordinals_lookup_tables/shell32_dll_lookup.hpp
@@ -1,5 +1,5 @@
-/* Copyright 2017 - 2025 R. Thomas
- * Copyright 2017 - 2025 Quarkslab
+/* Copyright 2017 - 2026 R. Thomas
+ * Copyright 2017 - 2026 Quarkslab
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,367 +17,366 @@
#define LIEF_PE_SHELL32_DLL_LOOKUP_H
#include <cstdint>
-namespace LIEF {
-namespace PE {
+
+namespace LIEF::PE {
inline const char* shell32_dll_lookup(uint32_t i) {
- switch(i) {
- case 0x00ff: return "AppCompat_RunDLLW";
- case 0x0107: return "AssocCreateForClasses";
- case 0x010b: return "AssocGetDetailsOfPropKey";
- case 0x02bd: return "CDefFolderMenu_Create2";
- case 0x0053: return "CIDLData_CreateFromIDArray";
- case 0x010c: return "CheckEscapesW";
- case 0x010d: return "CommandLineToArgvW";
- case 0x0110: return "Control_RunDLL";
- case 0x0111: return "Control_RunDLLA";
- case 0x0112: return "Control_RunDLLAsUserW";
- case 0x0113: return "Control_RunDLLW";
- case 0x0081: return "DAD_AutoScroll";
- case 0x0083: return "DAD_DragEnterEx";
- case 0x0016: return "DAD_DragEnterEx2";
- case 0x0084: return "DAD_DragLeave";
- case 0x0086: return "DAD_DragMove";
- case 0x0088: return "DAD_SetDragImage";
- case 0x0089: return "DAD_ShowDragImage";
- case 0x0114: return "DllCanUnloadNow";
- case 0x0115: return "DllGetActivationFactory";
- case 0x0116: return "DllGetClassObject";
- case 0x0117: return "DllGetVersion";
- case 0x0118: return "DllInstall";
- case 0x0119: return "DllRegisterServer";
- case 0x011a: return "DllUnregisterServer";
- case 0x011b: return "DoEnvironmentSubstA";
- case 0x011c: return "DoEnvironmentSubstW";
- case 0x011d: return "DragAcceptFiles";
- case 0x011e: return "DragFinish";
- case 0x011f: return "DragQueryFile";
- case 0x0120: return "DragQueryFileA";
- case 0x0121: return "DragQueryFileAorW";
- case 0x0122: return "DragQueryFileW";
- case 0x0123: return "DragQueryPoint";
- case 0x0040: return "DriveType";
- case 0x0124: return "DuplicateIcon";
- case 0x0125: return "ExtractAssociatedIconA";
- case 0x0126: return "ExtractAssociatedIconExA";
- case 0x0127: return "ExtractAssociatedIconExW";
- case 0x0128: return "ExtractAssociatedIconW";
- case 0x0129: return "ExtractIconA";
- case 0x012a: return "ExtractIconEx";
- case 0x012b: return "ExtractIconExA";
- case 0x012c: return "ExtractIconExW";
- case 0x012d: return "ExtractIconW";
- case 0x012e: return "FindExecutableA";
- case 0x012f: return "FindExecutableW";
- case 0x0130: return "FreeIconList";
- case 0x0131: return "GetCurrentProcessExplicitAppUserModelID";
- case 0x003f: return "GetFileNameFromBrowse";
- case 0x009a: return "ILAppendID";
- case 0x0012: return "ILClone";
- case 0x0013: return "ILCloneFirst";
- case 0x0019: return "ILCombine";
- case 0x009d: return "ILCreateFromPath";
- case 0x00bd: return "ILCreateFromPathA";
- case 0x00be: return "ILCreateFromPathW";
- case 0x0018: return "ILFindChild";
- case 0x0010: return "ILFindLastID";
- case 0x009b: return "ILFree";
- case 0x0099: return "ILGetNext";
- case 0x0098: return "ILGetSize";
- case 0x0015: return "ILIsEqual";
- case 0x0017: return "ILIsParent";
- case 0x034e: return "ILLoadFromStreamEx";
- case 0x0011: return "ILRemoveLastID";
- case 0x001b: return "ILSaveToStream";
- case 0x0132: return "InitNetworkAddressControl";
- case 0x0133: return "InternalExtractIconListA";
- case 0x0134: return "InternalExtractIconListW";
- case 0x0077: return "IsLFNDrive";
- case 0x0029: return "IsLFNDriveA";
- case 0x002a: return "IsLFNDriveW";
- case 0x0042: return "IsNetDrive";
- case 0x02a8: return "IsUserAnAdmin";
- case 0x0135: return "LaunchMSHelp_RunDLLW";
- case 0x0051: return "OpenAs_RunDLL";
- case 0x007d: return "OpenAs_RunDLLA";
- case 0x0085: return "OpenAs_RunDLLW";
- case 0x0055: return "OpenRegStream";
- case 0x0136: return "Options_RunDLL";
- case 0x0137: return "Options_RunDLLA";
- case 0x0138: return "Options_RunDLLW";
- case 0x00ab: return "PathCleanupSpec";
- case 0x0139: return "PathCleanupSpecWorker";
- case 0x005c: return "PathGetShortPath";
- case 0x002b: return "PathIsExe";
- case 0x013a: return "PathIsExeWorker";
- case 0x00f0: return "PathIsSlowA";
- case 0x00ef: return "PathIsSlowW";
- case 0x002f: return "PathMakeUniqueName";
- case 0x0031: return "PathQualify";
- case 0x0033: return "PathResolve";
- case 0x004b: return "PathYetAnotherMakeUniqueName";
- case 0x003e: return "PickIconDlg";
- case 0x000d: return "PifMgr_CloseProperties";
- case 0x000a: return "PifMgr_GetProperties";
- case 0x0009: return "PifMgr_OpenProperties";
- case 0x000b: return "PifMgr_SetProperties";
- case 0x0087: return "PrepareDiscForBurnRunDllW";
- case 0x008a: return "PrintersGetCommand_RunDLL";
- case 0x008b: return "PrintersGetCommand_RunDLLA";
- case 0x0096: return "PrintersGetCommand_RunDLLW";
- case 0x028e: return "ReadCabinetState";
- case 0x020c: return "RealDriveType";
- case 0x00c7: return "RealShellExecuteA";
- case 0x00cf: return "RealShellExecuteExA";
- case 0x00d0: return "RealShellExecuteExW";
- case 0x00e2: return "RealShellExecuteW";
- case 0x013b: return "RegenerateUserEnvironment";
- case 0x003b: return "RestartDialog";
- case 0x02da: return "RestartDialogEx";
- case 0x013c: return "RunAsNewUser_RunDLLW";
- case 0x013d: return "SHAddDefaultPropertiesByExt";
- case 0x00a7: return "SHAddFromPropSheetExtArray";
- case 0x013e: return "SHAddToRecentDocs";
- case 0x00c4: return "SHAlloc";
- case 0x013f: return "SHAppBarMessage";
- case 0x0140: return "SHAssocEnumHandlers";
- case 0x0141: return "SHAssocEnumHandlersForProtocolByApplication";
- case 0x0142: return "SHBindToFolderIDListParent";
- case 0x0143: return "SHBindToFolderIDListParentEx";
- case 0x0144: return "SHBindToObject";
- case 0x0145: return "SHBindToParent";
- case 0x0146: return "SHBrowseForFolder";
- case 0x0147: return "SHBrowseForFolderA";
- case 0x0148: return "SHBrowseForFolderW";
- case 0x0093: return "SHCLSIDFromString";
- case 0x0284: return "SHChangeNotification_Lock";
- case 0x0285: return "SHChangeNotification_Unlock";
- case 0x0149: return "SHChangeNotify";
- case 0x0004: return "SHChangeNotifyDeregister";
- case 0x0002: return "SHChangeNotifyRegister";
- case 0x014a: return "SHChangeNotifyRegisterThread";
- case 0x014b: return "SHChangeNotifySuspendResume";
- case 0x0059: return "SHCloneSpecialIDList";
- case 0x0066: return "SHCoCreateInstance";
- case 0x014c: return "SHCoCreateInstanceWorker";
- case 0x014d: return "SHCreateAssociationRegistration";
- case 0x014e: return "SHCreateDataObject";
- case 0x014f: return "SHCreateDefaultContextMenu";
- case 0x0150: return "SHCreateDefaultExtractIcon";
- case 0x0151: return "SHCreateDefaultPropertiesOp";
- case 0x00a5: return "SHCreateDirectory";
- case 0x0152: return "SHCreateDirectoryExA";
- case 0x0153: return "SHCreateDirectoryExW";
- case 0x0154: return "SHCreateDirectoryExWWorker";
- case 0x02e7: return "SHCreateFileExtractIconW";
- case 0x0155: return "SHCreateItemFromIDList";
- case 0x0156: return "SHCreateItemFromParsingName";
- case 0x0157: return "SHCreateItemFromRelativeName";
- case 0x0158: return "SHCreateItemInKnownFolder";
- case 0x0159: return "SHCreateItemWithParent";
- case 0x015a: return "SHCreateLocalServerRunDll";
- case 0x015b: return "SHCreateProcessAsUserW";
- case 0x00a8: return "SHCreatePropSheetExtArray";
- case 0x015c: return "SHCreateQueryCancelAutoPlayMoniker";
- case 0x0100: return "SHCreateShellFolderView";
- case 0x00ae: return "SHCreateShellFolderViewEx";
- case 0x015d: return "SHCreateShellItem";
- case 0x015e: return "SHCreateShellItemArray";
- case 0x015f: return "SHCreateShellItemArrayFromDataObject";
- case 0x0160: return "SHCreateShellItemArrayFromIDLists";
- case 0x0161: return "SHCreateShellItemArrayFromShellItem";
- case 0x004a: return "SHCreateStdEnumFmtEtc";
- case 0x0003: return "SHDefExtractIconA";
- case 0x0006: return "SHDefExtractIconW";
- case 0x00a9: return "SHDestroyPropSheetExtArray";
- case 0x0058: return "SHDoDragDrop";
- case 0x0162: return "SHEmptyRecycleBinA";
- case 0x0163: return "SHEmptyRecycleBinW";
- case 0x0164: return "SHEnableServiceObject";
- case 0x0165: return "SHEnumerateUnreadMailAccountsW";
- case 0x0166: return "SHEvaluateSystemCommandTemplate";
- case 0x0167: return "SHExtractIconsW";
- case 0x0168: return "SHFileOperation";
- case 0x0169: return "SHFileOperationA";
- case 0x016a: return "SHFileOperationW";
- case 0x005a: return "SHFindFiles";
- case 0x0095: return "SHFind_InitMenuPopup";
- case 0x020e: return "SHFlushSFCache";
- case 0x016b: return "SHFormatDrive";
- case 0x00c3: return "SHFree";
- case 0x016c: return "SHFreeNameMappings";
- case 0x02ee: return "SHGetAttributesFromDataObject";
- case 0x016d: return "SHGetDataFromIDListA";
- case 0x016e: return "SHGetDataFromIDListW";
- case 0x016f: return "SHGetDesktopFolder";
- case 0x0170: return "SHGetDesktopFolderWorker";
- case 0x0171: return "SHGetDiskFreeSpaceA";
- case 0x0172: return "SHGetDiskFreeSpaceExA";
- case 0x0173: return "SHGetDiskFreeSpaceExW";
- case 0x0174: return "SHGetDriveMedia";
- case 0x0175: return "SHGetFileInfo";
- case 0x0176: return "SHGetFileInfoA";
- case 0x0177: return "SHGetFileInfoW";
- case 0x0178: return "SHGetFileInfoWWorker";
- case 0x0179: return "SHGetFolderLocation";
- case 0x017a: return "SHGetFolderLocationWorker";
- case 0x017b: return "SHGetFolderPathA";
- case 0x017c: return "SHGetFolderPathAWorker";
- case 0x017d: return "SHGetFolderPathAndSubDirA";
- case 0x017e: return "SHGetFolderPathAndSubDirW";
- case 0x017f: return "SHGetFolderPathAndSubDirWWorker";
- case 0x0180: return "SHGetFolderPathEx";
- case 0x0181: return "SHGetFolderPathW";
- case 0x0182: return "SHGetFolderPathWWorker";
- case 0x0183: return "SHGetIDListFromObject";
- case 0x0184: return "SHGetIconOverlayIndexA";
- case 0x0185: return "SHGetIconOverlayIndexW";
- case 0x02d7: return "SHGetImageList";
- case 0x0186: return "SHGetInstanceExplorer";
- case 0x0187: return "SHGetInstanceExplorerWorker";
- case 0x0188: return "SHGetItemFromDataObject";
- case 0x0189: return "SHGetItemFromObject";
- case 0x018a: return "SHGetKnownFolderIDList";
- case 0x018b: return "SHGetKnownFolderItem";
- case 0x018c: return "SHGetKnownFolderPath";
- case 0x018d: return "SHGetKnownFolderPathWorker";
- case 0x018e: return "SHGetLocalizedName";
- case 0x018f: return "SHGetMalloc";
- case 0x0190: return "SHGetNameFromIDList";
- case 0x0191: return "SHGetNewLinkInfo";
- case 0x00b3: return "SHGetNewLinkInfoA";
- case 0x00b4: return "SHGetNewLinkInfoW";
- case 0x0192: return "SHGetPathFromIDList";
- case 0x0193: return "SHGetPathFromIDListA";
- case 0x0194: return "SHGetPathFromIDListEx";
- case 0x0195: return "SHGetPathFromIDListW";
- case 0x0196: return "SHGetPropertyStoreForWindow";
- case 0x0197: return "SHGetPropertyStoreFromIDList";
- case 0x0198: return "SHGetPropertyStoreFromParsingName";
- case 0x0062: return "SHGetRealIDL";
- case 0x02c5: return "SHGetSetFolderCustomSettings";
- case 0x0044: return "SHGetSetSettings";
- case 0x0199: return "SHGetSettings";
- case 0x019a: return "SHGetSpecialFolderLocation";
- case 0x019b: return "SHGetSpecialFolderPathA";
- case 0x019c: return "SHGetSpecialFolderPathAWorker";
- case 0x019d: return "SHGetSpecialFolderPathW";
- case 0x019e: return "SHGetSpecialFolderPathWWorker";
- case 0x019f: return "SHGetStockIconInfo";
- case 0x01a0: return "SHGetTemporaryPropertyForItem";
- case 0x01a1: return "SHGetUnreadMailCountW";
- case 0x00c1: return "SHHandleUpdateImage";
- case 0x00e4: return "SHHelpShortcuts_RunDLL";
- case 0x00e5: return "SHHelpShortcuts_RunDLLA";
- case 0x00ee: return "SHHelpShortcuts_RunDLLW";
- case 0x001c: return "SHILCreateFromPath";
- case 0x01a2: return "SHInvokePrinterCommandA";
- case 0x01a3: return "SHInvokePrinterCommandW";
- case 0x01a4: return "SHIsFileAvailableOffline";
- case 0x02eb: return "SHLimitInputEdit";
- case 0x01a5: return "SHLoadInProc";
- case 0x01a6: return "SHLoadNonloadedIconOverlayIdentifiers";
- case 0x004d: return "SHMapPIDLToSystemImageListIndex";
- case 0x02cc: return "SHMultiFileProperties";
- case 0x00b2: return "SHObjectProperties";
- case 0x01a7: return "SHOpenFolderAndSelectItems";
- case 0x0050: return "SHOpenPropSheetW";
- case 0x01a8: return "SHOpenWithDialog";
- case 0x01a9: return "SHParseDisplayName";
- case 0x01aa: return "SHPathPrepareForWriteA";
- case 0x01ab: return "SHPathPrepareForWriteW";
- case 0x02ad: return "SHPropStgCreate";
- case 0x02b0: return "SHPropStgReadMultiple";
- case 0x02b1: return "SHPropStgWriteMultiple";
- case 0x01ac: return "SHQueryRecycleBinA";
- case 0x01ad: return "SHQueryRecycleBinW";
- case 0x01ae: return "SHQueryUserNotificationState";
- case 0x01af: return "SHRemoveLocalizedName";
- case 0x00aa: return "SHReplaceFromPropSheetExtArray";
- case 0x01b0: return "SHResolveLibrary";
- case 0x0064: return "SHRestricted";
- case 0x01b1: return "SHSetDefaultProperties";
- case 0x00e7: return "SHSetFolderPathA";
- case 0x00e8: return "SHSetFolderPathW";
- case 0x00b0: return "SHSetInstanceExplorer";
- case 0x01b2: return "SHSetKnownFolderPath";
- case 0x01b3: return "SHSetKnownFolderPathWorker";
- case 0x01b4: return "SHSetLocalizedName";
- case 0x01b5: return "SHSetTemporaryPropertyForItem";
- case 0x01b6: return "SHSetUnreadMailCountW";
- case 0x0049: return "SHShellFolderView_Message";
- case 0x01b7: return "SHShowManageLibraryUI";
- case 0x00a2: return "SHSimpleIDListFromPath";
- case 0x000e: return "SHStartNetConnectionDialogW";
- case 0x00f5: return "SHTestTokenMembership";
- case 0x00bf: return "SHUpdateImageA";
- case 0x00c0: return "SHUpdateImageW";
- case 0x01b8: return "SHUpdateRecycleBinIcon";
- case 0x00ad: return "SHValidateUNC";
- case 0x01b9: return "SetCurrentProcessExplicitAppUserModelID";
- case 0x01ba: return "SheChangeDirA";
- case 0x01bb: return "SheChangeDirExW";
- case 0x01bc: return "SheGetDirA";
- case 0x01bd: return "SheSetCurDrive";
- case 0x01be: return "ShellAboutA";
- case 0x01bf: return "ShellAboutW";
- case 0x01c0: return "ShellExec_RunDLL";
- case 0x01c1: return "ShellExec_RunDLLA";
- case 0x01c2: return "ShellExec_RunDLLW";
- case 0x01c3: return "ShellExecuteA";
- case 0x01c4: return "ShellExecuteEx";
- case 0x01c5: return "ShellExecuteExA";
- case 0x01c6: return "ShellExecuteExW";
- case 0x01c7: return "ShellExecuteW";
- case 0x01c8: return "ShellHookProc";
- case 0x00b7: return "ShellMessageBoxA";
- case 0x00b6: return "ShellMessageBoxW";
- case 0x0048: return "Shell_GetCachedImageIndex";
- case 0x01c9: return "Shell_GetCachedImageIndexA";
- case 0x01ca: return "Shell_GetCachedImageIndexW";
- case 0x0047: return "Shell_GetImageLists";
- case 0x0043: return "Shell_MergeMenus";
- case 0x01cb: return "Shell_NotifyIcon";
- case 0x01cc: return "Shell_NotifyIconA";
- case 0x01cd: return "Shell_NotifyIconGetRect";
- case 0x01ce: return "Shell_NotifyIconW";
- case 0x0067: return "SignalFileOpen";
- case 0x02aa: return "StgMakeUniqueName";
- case 0x01cf: return "StrChrA";
- case 0x01d0: return "StrChrIA";
- case 0x01d1: return "StrChrIW";
- case 0x01d2: return "StrChrW";
- case 0x01d3: return "StrCmpNA";
- case 0x01d4: return "StrCmpNIA";
- case 0x01d5: return "StrCmpNIW";
- case 0x01d6: return "StrCmpNW";
- case 0x01d7: return "StrNCmpA";
- case 0x01d8: return "StrNCmpIA";
- case 0x01d9: return "StrNCmpIW";
- case 0x01da: return "StrNCmpW";
- case 0x01db: return "StrRChrA";
- case 0x01dc: return "StrRChrIA";
- case 0x01dd: return "StrRChrIW";
- case 0x01de: return "StrRChrW";
- case 0x01df: return "StrRStrA";
- case 0x01e0: return "StrRStrIA";
- case 0x01e1: return "StrRStrIW";
- case 0x01e2: return "StrRStrW";
- case 0x01e3: return "StrStrA";
- case 0x01e4: return "StrStrIA";
- case 0x01e5: return "StrStrIW";
- case 0x01e6: return "StrStrW";
- case 0x01e7: return "WOWShellExecute";
- case 0x01e8: return "WaitForExplorerRestartW";
- case 0x00a4: return "Win32DeleteFile";
- case 0x028c: return "WriteCabinetState";
+ switch (i) {
+ case 0x00ff: return "AppCompat_RunDLLW";
+ case 0x0107: return "AssocCreateForClasses";
+ case 0x010b: return "AssocGetDetailsOfPropKey";
+ case 0x02bd: return "CDefFolderMenu_Create2";
+ case 0x0053: return "CIDLData_CreateFromIDArray";
+ case 0x010c: return "CheckEscapesW";
+ case 0x010d: return "CommandLineToArgvW";
+ case 0x0110: return "Control_RunDLL";
+ case 0x0111: return "Control_RunDLLA";
+ case 0x0112: return "Control_RunDLLAsUserW";
+ case 0x0113: return "Control_RunDLLW";
+ case 0x0081: return "DAD_AutoScroll";
+ case 0x0083: return "DAD_DragEnterEx";
+ case 0x0016: return "DAD_DragEnterEx2";
+ case 0x0084: return "DAD_DragLeave";
+ case 0x0086: return "DAD_DragMove";
+ case 0x0088: return "DAD_SetDragImage";
+ case 0x0089: return "DAD_ShowDragImage";
+ case 0x0114: return "DllCanUnloadNow";
+ case 0x0115: return "DllGetActivationFactory";
+ case 0x0116: return "DllGetClassObject";
+ case 0x0117: return "DllGetVersion";
+ case 0x0118: return "DllInstall";
+ case 0x0119: return "DllRegisterServer";
+ case 0x011a: return "DllUnregisterServer";
+ case 0x011b: return "DoEnvironmentSubstA";
+ case 0x011c: return "DoEnvironmentSubstW";
+ case 0x011d: return "DragAcceptFiles";
+ case 0x011e: return "DragFinish";
+ case 0x011f: return "DragQueryFile";
+ case 0x0120: return "DragQueryFileA";
+ case 0x0121: return "DragQueryFileAorW";
+ case 0x0122: return "DragQueryFileW";
+ case 0x0123: return "DragQueryPoint";
+ case 0x0040: return "DriveType";
+ case 0x0124: return "DuplicateIcon";
+ case 0x0125: return "ExtractAssociatedIconA";
+ case 0x0126: return "ExtractAssociatedIconExA";
+ case 0x0127: return "ExtractAssociatedIconExW";
+ case 0x0128: return "ExtractAssociatedIconW";
+ case 0x0129: return "ExtractIconA";
+ case 0x012a: return "ExtractIconEx";
+ case 0x012b: return "ExtractIconExA";
+ case 0x012c: return "ExtractIconExW";
+ case 0x012d: return "ExtractIconW";
+ case 0x012e: return "FindExecutableA";
+ case 0x012f: return "FindExecutableW";
+ case 0x0130: return "FreeIconList";
+ case 0x0131: return "GetCurrentProcessExplicitAppUserModelID";
+ case 0x003f: return "GetFileNameFromBrowse";
+ case 0x009a: return "ILAppendID";
+ case 0x0012: return "ILClone";
+ case 0x0013: return "ILCloneFirst";
+ case 0x0019: return "ILCombine";
+ case 0x009d: return "ILCreateFromPath";
+ case 0x00bd: return "ILCreateFromPathA";
+ case 0x00be: return "ILCreateFromPathW";
+ case 0x0018: return "ILFindChild";
+ case 0x0010: return "ILFindLastID";
+ case 0x009b: return "ILFree";
+ case 0x0099: return "ILGetNext";
+ case 0x0098: return "ILGetSize";
+ case 0x0015: return "ILIsEqual";
+ case 0x0017: return "ILIsParent";
+ case 0x034e: return "ILLoadFromStreamEx";
+ case 0x0011: return "ILRemoveLastID";
+ case 0x001b: return "ILSaveToStream";
+ case 0x0132: return "InitNetworkAddressControl";
+ case 0x0133: return "InternalExtractIconListA";
+ case 0x0134: return "InternalExtractIconListW";
+ case 0x0077: return "IsLFNDrive";
+ case 0x0029: return "IsLFNDriveA";
+ case 0x002a: return "IsLFNDriveW";
+ case 0x0042: return "IsNetDrive";
+ case 0x02a8: return "IsUserAnAdmin";
+ case 0x0135: return "LaunchMSHelp_RunDLLW";
+ case 0x0051: return "OpenAs_RunDLL";
+ case 0x007d: return "OpenAs_RunDLLA";
+ case 0x0085: return "OpenAs_RunDLLW";
+ case 0x0055: return "OpenRegStream";
+ case 0x0136: return "Options_RunDLL";
+ case 0x0137: return "Options_RunDLLA";
+ case 0x0138: return "Options_RunDLLW";
+ case 0x00ab: return "PathCleanupSpec";
+ case 0x0139: return "PathCleanupSpecWorker";
+ case 0x005c: return "PathGetShortPath";
+ case 0x002b: return "PathIsExe";
+ case 0x013a: return "PathIsExeWorker";
+ case 0x00f0: return "PathIsSlowA";
+ case 0x00ef: return "PathIsSlowW";
+ case 0x002f: return "PathMakeUniqueName";
+ case 0x0031: return "PathQualify";
+ case 0x0033: return "PathResolve";
+ case 0x004b: return "PathYetAnotherMakeUniqueName";
+ case 0x003e: return "PickIconDlg";
+ case 0x000d: return "PifMgr_CloseProperties";
+ case 0x000a: return "PifMgr_GetProperties";
+ case 0x0009: return "PifMgr_OpenProperties";
+ case 0x000b: return "PifMgr_SetProperties";
+ case 0x0087: return "PrepareDiscForBurnRunDllW";
+ case 0x008a: return "PrintersGetCommand_RunDLL";
+ case 0x008b: return "PrintersGetCommand_RunDLLA";
+ case 0x0096: return "PrintersGetCommand_RunDLLW";
+ case 0x028e: return "ReadCabinetState";
+ case 0x020c: return "RealDriveType";
+ case 0x00c7: return "RealShellExecuteA";
+ case 0x00cf: return "RealShellExecuteExA";
+ case 0x00d0: return "RealShellExecuteExW";
+ case 0x00e2: return "RealShellExecuteW";
+ case 0x013b: return "RegenerateUserEnvironment";
+ case 0x003b: return "RestartDialog";
+ case 0x02da: return "RestartDialogEx";
+ case 0x013c: return "RunAsNewUser_RunDLLW";
+ case 0x013d: return "SHAddDefaultPropertiesByExt";
+ case 0x00a7: return "SHAddFromPropSheetExtArray";
+ case 0x013e: return "SHAddToRecentDocs";
+ case 0x00c4: return "SHAlloc";
+ case 0x013f: return "SHAppBarMessage";
+ case 0x0140: return "SHAssocEnumHandlers";
+ case 0x0141: return "SHAssocEnumHandlersForProtocolByApplication";
+ case 0x0142: return "SHBindToFolderIDListParent";
+ case 0x0143: return "SHBindToFolderIDListParentEx";
+ case 0x0144: return "SHBindToObject";
+ case 0x0145: return "SHBindToParent";
+ case 0x0146: return "SHBrowseForFolder";
+ case 0x0147: return "SHBrowseForFolderA";
+ case 0x0148: return "SHBrowseForFolderW";
+ case 0x0093: return "SHCLSIDFromString";
+ case 0x0284: return "SHChangeNotification_Lock";
+ case 0x0285: return "SHChangeNotification_Unlock";
+ case 0x0149: return "SHChangeNotify";
+ case 0x0004: return "SHChangeNotifyDeregister";
+ case 0x0002: return "SHChangeNotifyRegister";
+ case 0x014a: return "SHChangeNotifyRegisterThread";
+ case 0x014b: return "SHChangeNotifySuspendResume";
+ case 0x0059: return "SHCloneSpecialIDList";
+ case 0x0066: return "SHCoCreateInstance";
+ case 0x014c: return "SHCoCreateInstanceWorker";
+ case 0x014d: return "SHCreateAssociationRegistration";
+ case 0x014e: return "SHCreateDataObject";
+ case 0x014f: return "SHCreateDefaultContextMenu";
+ case 0x0150: return "SHCreateDefaultExtractIcon";
+ case 0x0151: return "SHCreateDefaultPropertiesOp";
+ case 0x00a5: return "SHCreateDirectory";
+ case 0x0152: return "SHCreateDirectoryExA";
+ case 0x0153: return "SHCreateDirectoryExW";
+ case 0x0154: return "SHCreateDirectoryExWWorker";
+ case 0x02e7: return "SHCreateFileExtractIconW";
+ case 0x0155: return "SHCreateItemFromIDList";
+ case 0x0156: return "SHCreateItemFromParsingName";
+ case 0x0157: return "SHCreateItemFromRelativeName";
+ case 0x0158: return "SHCreateItemInKnownFolder";
+ case 0x0159: return "SHCreateItemWithParent";
+ case 0x015a: return "SHCreateLocalServerRunDll";
+ case 0x015b: return "SHCreateProcessAsUserW";
+ case 0x00a8: return "SHCreatePropSheetExtArray";
+ case 0x015c: return "SHCreateQueryCancelAutoPlayMoniker";
+ case 0x0100: return "SHCreateShellFolderView";
+ case 0x00ae: return "SHCreateShellFolderViewEx";
+ case 0x015d: return "SHCreateShellItem";
+ case 0x015e: return "SHCreateShellItemArray";
+ case 0x015f: return "SHCreateShellItemArrayFromDataObject";
+ case 0x0160: return "SHCreateShellItemArrayFromIDLists";
+ case 0x0161: return "SHCreateShellItemArrayFromShellItem";
+ case 0x004a: return "SHCreateStdEnumFmtEtc";
+ case 0x0003: return "SHDefExtractIconA";
+ case 0x0006: return "SHDefExtractIconW";
+ case 0x00a9: return "SHDestroyPropSheetExtArray";
+ case 0x0058: return "SHDoDragDrop";
+ case 0x0162: return "SHEmptyRecycleBinA";
+ case 0x0163: return "SHEmptyRecycleBinW";
+ case 0x0164: return "SHEnableServiceObject";
+ case 0x0165: return "SHEnumerateUnreadMailAccountsW";
+ case 0x0166: return "SHEvaluateSystemCommandTemplate";
+ case 0x0167: return "SHExtractIconsW";
+ case 0x0168: return "SHFileOperation";
+ case 0x0169: return "SHFileOperationA";
+ case 0x016a: return "SHFileOperationW";
+ case 0x005a: return "SHFindFiles";
+ case 0x0095: return "SHFind_InitMenuPopup";
+ case 0x020e: return "SHFlushSFCache";
+ case 0x016b: return "SHFormatDrive";
+ case 0x00c3: return "SHFree";
+ case 0x016c: return "SHFreeNameMappings";
+ case 0x02ee: return "SHGetAttributesFromDataObject";
+ case 0x016d: return "SHGetDataFromIDListA";
+ case 0x016e: return "SHGetDataFromIDListW";
+ case 0x016f: return "SHGetDesktopFolder";
+ case 0x0170: return "SHGetDesktopFolderWorker";
+ case 0x0171: return "SHGetDiskFreeSpaceA";
+ case 0x0172: return "SHGetDiskFreeSpaceExA";
+ case 0x0173: return "SHGetDiskFreeSpaceExW";
+ case 0x0174: return "SHGetDriveMedia";
+ case 0x0175: return "SHGetFileInfo";
+ case 0x0176: return "SHGetFileInfoA";
+ case 0x0177: return "SHGetFileInfoW";
+ case 0x0178: return "SHGetFileInfoWWorker";
+ case 0x0179: return "SHGetFolderLocation";
+ case 0x017a: return "SHGetFolderLocationWorker";
+ case 0x017b: return "SHGetFolderPathA";
+ case 0x017c: return "SHGetFolderPathAWorker";
+ case 0x017d: return "SHGetFolderPathAndSubDirA";
+ case 0x017e: return "SHGetFolderPathAndSubDirW";
+ case 0x017f: return "SHGetFolderPathAndSubDirWWorker";
+ case 0x0180: return "SHGetFolderPathEx";
+ case 0x0181: return "SHGetFolderPathW";
+ case 0x0182: return "SHGetFolderPathWWorker";
+ case 0x0183: return "SHGetIDListFromObject";
+ case 0x0184: return "SHGetIconOverlayIndexA";
+ case 0x0185: return "SHGetIconOverlayIndexW";
+ case 0x02d7: return "SHGetImageList";
+ case 0x0186: return "SHGetInstanceExplorer";
+ case 0x0187: return "SHGetInstanceExplorerWorker";
+ case 0x0188: return "SHGetItemFromDataObject";
+ case 0x0189: return "SHGetItemFromObject";
+ case 0x018a: return "SHGetKnownFolderIDList";
+ case 0x018b: return "SHGetKnownFolderItem";
+ case 0x018c: return "SHGetKnownFolderPath";
+ case 0x018d: return "SHGetKnownFolderPathWorker";
+ case 0x018e: return "SHGetLocalizedName";
+ case 0x018f: return "SHGetMalloc";
+ case 0x0190: return "SHGetNameFromIDList";
+ case 0x0191: return "SHGetNewLinkInfo";
+ case 0x00b3: return "SHGetNewLinkInfoA";
+ case 0x00b4: return "SHGetNewLinkInfoW";
+ case 0x0192: return "SHGetPathFromIDList";
+ case 0x0193: return "SHGetPathFromIDListA";
+ case 0x0194: return "SHGetPathFromIDListEx";
+ case 0x0195: return "SHGetPathFromIDListW";
+ case 0x0196: return "SHGetPropertyStoreForWindow";
+ case 0x0197: return "SHGetPropertyStoreFromIDList";
+ case 0x0198: return "SHGetPropertyStoreFromParsingName";
+ case 0x0062: return "SHGetRealIDL";
+ case 0x02c5: return "SHGetSetFolderCustomSettings";
+ case 0x0044: return "SHGetSetSettings";
+ case 0x0199: return "SHGetSettings";
+ case 0x019a: return "SHGetSpecialFolderLocation";
+ case 0x019b: return "SHGetSpecialFolderPathA";
+ case 0x019c: return "SHGetSpecialFolderPathAWorker";
+ case 0x019d: return "SHGetSpecialFolderPathW";
+ case 0x019e: return "SHGetSpecialFolderPathWWorker";
+ case 0x019f: return "SHGetStockIconInfo";
+ case 0x01a0: return "SHGetTemporaryPropertyForItem";
+ case 0x01a1: return "SHGetUnreadMailCountW";
+ case 0x00c1: return "SHHandleUpdateImage";
+ case 0x00e4: return "SHHelpShortcuts_RunDLL";
+ case 0x00e5: return "SHHelpShortcuts_RunDLLA";
+ case 0x00ee: return "SHHelpShortcuts_RunDLLW";
+ case 0x001c: return "SHILCreateFromPath";
+ case 0x01a2: return "SHInvokePrinterCommandA";
+ case 0x01a3: return "SHInvokePrinterCommandW";
+ case 0x01a4: return "SHIsFileAvailableOffline";
+ case 0x02eb: return "SHLimitInputEdit";
+ case 0x01a5: return "SHLoadInProc";
+ case 0x01a6: return "SHLoadNonloadedIconOverlayIdentifiers";
+ case 0x004d: return "SHMapPIDLToSystemImageListIndex";
+ case 0x02cc: return "SHMultiFileProperties";
+ case 0x00b2: return "SHObjectProperties";
+ case 0x01a7: return "SHOpenFolderAndSelectItems";
+ case 0x0050: return "SHOpenPropSheetW";
+ case 0x01a8: return "SHOpenWithDialog";
+ case 0x01a9: return "SHParseDisplayName";
+ case 0x01aa: return "SHPathPrepareForWriteA";
+ case 0x01ab: return "SHPathPrepareForWriteW";
+ case 0x02ad: return "SHPropStgCreate";
+ case 0x02b0: return "SHPropStgReadMultiple";
+ case 0x02b1: return "SHPropStgWriteMultiple";
+ case 0x01ac: return "SHQueryRecycleBinA";
+ case 0x01ad: return "SHQueryRecycleBinW";
+ case 0x01ae: return "SHQueryUserNotificationState";
+ case 0x01af: return "SHRemoveLocalizedName";
+ case 0x00aa: return "SHReplaceFromPropSheetExtArray";
+ case 0x01b0: return "SHResolveLibrary";
+ case 0x0064: return "SHRestricted";
+ case 0x01b1: return "SHSetDefaultProperties";
+ case 0x00e7: return "SHSetFolderPathA";
+ case 0x00e8: return "SHSetFolderPathW";
+ case 0x00b0: return "SHSetInstanceExplorer";
+ case 0x01b2: return "SHSetKnownFolderPath";
+ case 0x01b3: return "SHSetKnownFolderPathWorker";
+ case 0x01b4: return "SHSetLocalizedName";
+ case 0x01b5: return "SHSetTemporaryPropertyForItem";
+ case 0x01b6: return "SHSetUnreadMailCountW";
+ case 0x0049: return "SHShellFolderView_Message";
+ case 0x01b7: return "SHShowManageLibraryUI";
+ case 0x00a2: return "SHSimpleIDListFromPath";
+ case 0x000e: return "SHStartNetConnectionDialogW";
+ case 0x00f5: return "SHTestTokenMembership";
+ case 0x00bf: return "SHUpdateImageA";
+ case 0x00c0: return "SHUpdateImageW";
+ case 0x01b8: return "SHUpdateRecycleBinIcon";
+ case 0x00ad: return "SHValidateUNC";
+ case 0x01b9: return "SetCurrentProcessExplicitAppUserModelID";
+ case 0x01ba: return "SheChangeDirA";
+ case 0x01bb: return "SheChangeDirExW";
+ case 0x01bc: return "SheGetDirA";
+ case 0x01bd: return "SheSetCurDrive";
+ case 0x01be: return "ShellAboutA";
+ case 0x01bf: return "ShellAboutW";
+ case 0x01c0: return "ShellExec_RunDLL";
+ case 0x01c1: return "ShellExec_RunDLLA";
+ case 0x01c2: return "ShellExec_RunDLLW";
+ case 0x01c3: return "ShellExecuteA";
+ case 0x01c4: return "ShellExecuteEx";
+ case 0x01c5: return "ShellExecuteExA";
+ case 0x01c6: return "ShellExecuteExW";
+ case 0x01c7: return "ShellExecuteW";
+ case 0x01c8: return "ShellHookProc";
+ case 0x00b7: return "ShellMessageBoxA";
+ case 0x00b6: return "ShellMessageBoxW";
+ case 0x0048: return "Shell_GetCachedImageIndex";
+ case 0x01c9: return "Shell_GetCachedImageIndexA";
+ case 0x01ca: return "Shell_GetCachedImageIndexW";
+ case 0x0047: return "Shell_GetImageLists";
+ case 0x0043: return "Shell_MergeMenus";
+ case 0x01cb: return "Shell_NotifyIcon";
+ case 0x01cc: return "Shell_NotifyIconA";
+ case 0x01cd: return "Shell_NotifyIconGetRect";
+ case 0x01ce: return "Shell_NotifyIconW";
+ case 0x0067: return "SignalFileOpen";
+ case 0x02aa: return "StgMakeUniqueName";
+ case 0x01cf: return "StrChrA";
+ case 0x01d0: return "StrChrIA";
+ case 0x01d1: return "StrChrIW";
+ case 0x01d2: return "StrChrW";
+ case 0x01d3: return "StrCmpNA";
+ case 0x01d4: return "StrCmpNIA";
+ case 0x01d5: return "StrCmpNIW";
+ case 0x01d6: return "StrCmpNW";
+ case 0x01d7: return "StrNCmpA";
+ case 0x01d8: return "StrNCmpIA";
+ case 0x01d9: return "StrNCmpIW";
+ case 0x01da: return "StrNCmpW";
+ case 0x01db: return "StrRChrA";
+ case 0x01dc: return "StrRChrIA";
+ case 0x01dd: return "StrRChrIW"